All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: in_place_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean in_place_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/tools/crm_simulate.c:131,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_simulate.c:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: op_inject_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_strdup
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean op_inject_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: utilization_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean utilization_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/tools/crm_simulate.c:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: live_check_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean live_check_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: pending_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean pending_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_simulate.c:211,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: watchdog_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean watchdog_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/tools/crm_simulate.c:118,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_simulate.c:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: node_up_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_strdup
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean node_up_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: process_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean process_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: show_scores_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean show_scores_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: all_actions_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean all_actions_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/tools/crm_simulate.c:125,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_simulate.c:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: op_fail_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_strdup
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean op_fail_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_simulate.c:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: quorum_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean quorum_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: simulate_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean simulate_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/tools/crm_simulate.c:464,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/tools/crm_simulate.c:478,1
    - Dst: pe__register_messages
      Src: /src/pacemaker/tools/crm_simulate.c:498,1
    - Dst: pcmk__output_text_set_fancy
      Src: /src/pacemaker/tools/crm_simulate.c:495,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/tools/crm_simulate.c:551,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/tools/crm_simulate.c:569,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_simulate.c:546,1
    - Dst: strdup
      Src: /src/pacemaker/tools/crm_simulate.c:475,1
    - Dst: build_arg_context
      Src: /src/pacemaker/tools/crm_simulate.c:466,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/tools/crm_simulate.c:483,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/crm_simulate.c:487,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_simulate.c:488,1
    - Dst: pcmk__profile_dir
      Src: /src/pacemaker/tools/crm_simulate.c:513,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/tools/crm_simulate.c:499,1
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/tools/crm_simulate.c:519,1
    - Dst: setup_input
      Src: /src/pacemaker/tools/crm_simulate.c:527,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_simulate.c:564,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/tools/crm_simulate.c:572,1
    - Dst: pcmk_free_injections
      Src: /src/pacemaker/tools/crm_simulate.c:550,1
    - Dst: calloc
      Src: /src/pacemaker/tools/crm_simulate.c:468,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/tools/crm_simulate.c:477,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/tools/crm_simulate.c:485,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_simulate.c:493,1
    - Dst: QB_MAX
      Src: /src/pacemaker/tools/crm_simulate.c:514,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_simulate.c:522,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/tools/crm_simulate.c:539,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_simulate.c:543,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_simulate.c:544,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_simulate.c:545,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_simulate.c:542,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/crm_simulate.c:552,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_simulate.c:548,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/tools/crm_simulate.c:465,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_simulate.c:494,1
    - Dst: pcmk__simulate
      Src: /src/pacemaker/tools/crm_simulate.c:534,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/tools/crm_simulate.c:554,1
    - Dst: fflush
      Src: /src/pacemaker/tools/crm_simulate.c:556,1
    - Dst: unlink
      Src: /src/pacemaker/tools/crm_simulate.c:559,1
    - Dst: crm_exit
      Src: /src/pacemaker/tools/crm_simulate.c:573,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_simulate.c:547,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_simulate.c:560,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 82
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 574
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 574
    functionName: main
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - pcmk__register_formats
    - crm_exit
    - pe__register_messages
    - free
    - setup_input
    - strdup
    - pcmk__cli_init_logging
    - build_arg_context
    - pcmk__profile_dir
    - pcmk_free_scheduler
    - pcmk__output_text_set_fancy
    - unlink
    - pcmk_is_set
    - pcmk_rc_str
    - g_free
    - QB_MAX
    - pcmk__cmdline_preproc
    - pcmk__free_arg_context
    - pcmk__unregister_formats
    - pcmk__output_and_clear_error
    - pcmk__str_eq
    - pcmk_free_injections
    - pcmk_new_scheduler
    - pcmk__output_new
    - g_strfreev
    - calloc
    - pcmk_rc2exitc
    - g_set_error
    - pcmk__output_free
    - pcmk__new_common_args
    - pcmk__simulate
    - pcmk__register_lib_messages
    - fflush
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/tools/crm_simulate.c:105,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_simulate.c:105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: node_down_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_strdup
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean node_down_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_read
      Src: /src/pacemaker/tools/crm_simulate.c:361,1
    - Dst: pcmk__xml_read
      Src: /src/pacemaker/tools/crm_simulate.c:364,1
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/tools/crm_simulate.c:374,1
    - Dst: strdup
      Src: /src/pacemaker/tools/crm_simulate.c:393,1
    - Dst: get_shadow_file
      Src: /src/pacemaker/tools/crm_simulate.c:392,1
    - Dst: pcmk__xml_write_file
      Src: /src/pacemaker/tools/crm_simulate.c:398,1
    - Dst: pcmk__getpid_s
      Src: /src/pacemaker/tools/crm_simulate.c:390,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_simulate.c:395,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_simulate.c:380,1
    - Dst: setenv
      Src: /src/pacemaker/tools/crm_simulate.c:403,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_simulate.c:360,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_simulate.c:369,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_simulate.c:370,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_simulate.c:375,1
    - Dst: pcmk__update_configured_schema
      Src: /src/pacemaker/tools/crm_simulate.c:378,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_simulate.c:385,1
    - Dst: cib__signon_query
      Src: /src/pacemaker/tools/crm_simulate.c:354,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_simulate.c:369,1
    - Dst: pcmk__validate_xml
      Src: /src/pacemaker/tools/crm_simulate.c:384,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_simulate.c:400,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_simulate.c:401,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_simulate.c:406,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_simulate.c:407,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 4
    argNames:
    - out
    - input
    - output
    - error
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    - GError**
    constantsTouched: []
    func_position:
      end: 409
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 409
    functionName: setup_input
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__update_configured_schema
    - pcmk__xml_write_file
    - setenv
    - strdup
    - pcmk_rc2exitc
    - pcmk__getpid_s
    - pcmk__str_eq
    - pcmk_find_cib_element
    - g_set_error
    - get_shadow_file
    - pcmk__xml_read
    - pcmk__xml_free
    - free
    - pcmk_rc_str
    - pcmk__validate_xml
    - cib__signon_query
    linkageType: ''
    returnType: int
    signature: 'static int setup_input(pcmk__output_t *out, const char *input, const
      char *output, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/tools/crm_simulate.c:111,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_simulate.c:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: node_fail_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_strdup
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean node_fail_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/tools/crm_simulate.c:438,1
    - Dst: pcmk__add_main_args
      Src: /src/pacemaker/tools/crm_simulate.c:439,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_simulate.c:444,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_simulate.c:442,1
    - Dst: g_option_context_set_description
      Src: /src/pacemaker/tools/crm_simulate.c:440,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_simulate.c:446,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_simulate.c:448,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 452
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 452
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - pcmk__add_arg_group
    - g_option_context_set_description
    - pcmk__add_main_args
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: attrs_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean attrs_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_simulate.c:156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: save_dotfile_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean save_dotfile_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/tools/crm_simulate.c:181,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_simulate.c:181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: ticket_activate_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_strdup
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean ticket_activate_cb(const gchar *option_name, const
      gchar *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/tools/crm_simulate.c:193,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_simulate.c:193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: ticket_revoke_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_strdup
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean ticket_revoke_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_simulate.c:217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: xml_file_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean xml_file_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: failcounts_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean failcounts_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_simulate.c:163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: save_graph_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean save_graph_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/tools/crm_simulate.c:187,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_simulate.c:187,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: ticket_grant_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_strdup
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean ticket_grant_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/tools/crm_simulate.c:199,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_simulate.c:199,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: ticket_standby_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_strdup
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean ticket_standby_cb(const gchar *option_name, const
      gchar *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_simulate.c:224,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 227
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 227
    functionName: xml_pipe_cb
    functionSourceFile: /src/pacemaker/tools/crm_simulate.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean xml_pipe_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: crm_mon_disconnected_default
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int crm_mon_disconnected_default(pcmk__output_t *out, va_list
      args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_mon.c:115,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_mon.c:117,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/tools/crm_mon.c:127,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/tools/crm_mon.c:123,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/tools/crm_mon.c:128,1
    - Dst: pcmk__pcmkd_state_enum2friendly
      Src: /src/pacemaker/tools/crm_mon.c:132,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/tools/crm_mon.c:134,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/tools/crm_mon.c:135,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/tools/crm_mon.c:136,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 141
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 141
    functionName: crm_mon_disconnected_html
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__pcmkd_state_enum2friendly
    - pcmk__output_create_xml_text_node
    linkageType: ''
    returnType: int
    signature: 'static int crm_mon_disconnected_html(pcmk__output_t *out, va_list
      args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 486
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 486
    functionName: print_brief_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean print_brief_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: user_include_exclude_cb
      Src: /src/pacemaker/tools/crm_mon.c:473,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: hide_headers_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - user_include_exclude_cb
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean hide_headers_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/tools/crm_mon.c:432,1
    - Dst: include_exclude_cb
      Src: /src/pacemaker/tools/crm_mon.c:439,1
    - Dst: include_exclude_cb
      Src: /src/pacemaker/tools/crm_mon.c:456,1
    - Dst: include_exclude_cb
      Src: /src/pacemaker/tools/crm_mon.c:451,1
    - Dst: include_exclude_cb
      Src: /src/pacemaker/tools/crm_mon.c:445,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_mon.c:460,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 463
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 463
    functionName: fence_history_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - include_exclude_cb
    - pcmk__scan_min_int
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean fence_history_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/tools/crm_mon.c:894,1
    - Dst: cib__signon_query
      Src: /src/pacemaker/tools/crm_mon.c:901,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_mon.c:904,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_mon.c:919,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/tools/crm_mon.c:932,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/tools/crm_mon.c:933,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 938
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 938
    functionName: setup_cib_connection
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - CRM_CHECK
    - cib__signon_query
    - stonith__api_free
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int setup_cib_connection(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/pacemaker/tools/crm_mon.c:1174,1
    - Dst: sigemptyset
      Src: /src/pacemaker/tools/crm_mon.c:1175,1
    - Dst: sigaction
      Src: /src/pacemaker/tools/crm_mon.c:1181,1
    - Dst: crm_warn
      Src: /src/pacemaker/tools/crm_mon.c:1176,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_mon.c:1176,1
    - Dst: crm_warn
      Src: /src/pacemaker/tools/crm_mon.c:1182,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_mon.c:1182,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1184
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1184
    functionName: avoid_zombies
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - memset
    - crm_warn
    - pcmk_rc_str
    - sigaction
    - sigemptyset
    linkageType: ''
    returnType: void
    signature: 'static void avoid_zombies(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_mon.c:1292,1
    - Dst: umask
      Src: /src/pacemaker/tools/crm_mon.c:1297,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_mon.c:1303,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_mon.c:1295,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_mon.c:1299,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_mon.c:1317,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_mon.c:1319,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_mon.c:1322,1
    - Dst: crm_enable_stderr
      Src: /src/pacemaker/tools/crm_mon.c:1324,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_mon.c:1328,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_mon.c:1332,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 1
    argNames:
    - args
    argTypes:
    - pcmk__common_args_t*
    constantsTouched: []
    func_position:
      end: 1337
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1337
    functionName: reconcile_output_format
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - umask
    - crm_enable_stderr
    - pcmk__str_eq
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'static void reconcile_output_format(pcmk__common_args_t *args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 469
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 469
    functionName: group_by_node_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean group_by_node_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: inactive_resources_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean inactive_resources_cb(const gchar *option_name, const
      gchar *optarg, gpointer data, GError **err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 492
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 492
    functionName: print_detail_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean print_detail_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/tools/crm_mon.c:1258,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_mon.c:1264,1
    - Dst: pcmk__add_main_args
      Src: /src/pacemaker/tools/crm_mon.c:1259,1
    - Dst: g_option_context_set_description
      Src: /src/pacemaker/tools/crm_mon.c:1260,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_mon.c:1262,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_mon.c:1266,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 1270
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1270
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - pcmk__add_arg_group
    - g_option_context_set_description
    - pcmk__add_main_args
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__status
      Src: /src/pacemaker/tools/crm_mon.c:1385,1
    - Dst: clean_up_on_connection_failure
      Src: /src/pacemaker/tools/crm_mon.c:1392,1
    - Dst: clean_up
      Src: /src/pacemaker/tools/crm_mon.c:1390,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_mon.c:1390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1394
      start: 1382
    functionDepth: 0
    functionLinenumber: 1382
    functionLinenumberEnd: 1394
    functionName: one_shot
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - clean_up
    - clean_up_on_connection_failure
    - pcmk__status
    linkageType: ''
    returnType: void
    signature: 'static void one_shot(void) '
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: g_get_prgname
      Src: /src/pacemaker/tools/crm_mon.c:1433,1
    - Dst: clean_up
      Src: /src/pacemaker/tools/crm_mon.c:1438,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_mon.c:1492,1
    - Dst: set_default_exec_mode
      Src: /src/pacemaker/tools/crm_mon.c:1500,1
    - Dst: set_fencing_options
      Src: /src/pacemaker/tools/crm_mon.c:1638,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_mon.c:1560,1
    - Dst: g_main_loop_run
      Src: /src/pacemaker/tools/crm_mon.c:1663,1
    - Dst: fence_history_cb
      Src: /src/pacemaker/tools/crm_mon.c:1479,1
    - Dst: crm_enable_stderr
      Src: /src/pacemaker/tools/crm_mon.c:1532,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/tools/crm_mon.c:1558,1
    - Dst: apply_include_exclude
      Src: /src/pacemaker/tools/crm_mon.c:1551,1
    - Dst: pe__register_messages
      Src: /src/pacemaker/tools/crm_mon.c:1570,1
    - Dst: g_main_loop_new
      Src: /src/pacemaker/tools/crm_mon.c:1641,1
    - Dst: include_exclude_cb
      Src: /src/pacemaker/tools/crm_mon.c:1447,1
    - Dst: clean_up
      Src: /src/pacemaker/tools/crm_mon.c:1495,1
    - Dst: clean_up
      Src: /src/pacemaker/tools/crm_mon.c:1578,1
    - Dst: clean_up
      Src: /src/pacemaker/tools/crm_mon.c:1530,1
    - Dst: crm_info
      Src: /src/pacemaker/tools/crm_mon.c:1666,1
    - Dst: cib_new
      Src: /src/pacemaker/tools/crm_mon.c:1458,1
    - Dst: fence_history_cb
      Src: /src/pacemaker/tools/crm_mon.c:1469,1
    - Dst: apply_include_exclude
      Src: /src/pacemaker/tools/crm_mon.c:1545,1
    - Dst: pcmk__force_args
      Src: /src/pacemaker/tools/crm_mon.c:1432,1
    - Dst: crm_info
      Src: /src/pacemaker/tools/crm_mon.c:1595,1
    - Dst: refresh
      Src: /src/pacemaker/tools/crm_mon.c:1628,1
    - Dst: exit_on_invalid_cib
      Src: /src/pacemaker/tools/crm_mon.c:1537,1
    - Dst: pcmk__sleep_ms
      Src: /src/pacemaker/tools/crm_mon.c:1624,1
    - Dst: crm_bump_log_level
      Src: /src/pacemaker/tools/crm_mon.c:1442,1
    - Dst: reconcile_output_format
      Src: /src/pacemaker/tools/crm_mon.c:1499,1
    - Dst: pcmk__output_set_legacy_xml
      Src: /src/pacemaker/tools/crm_mon.c:1511,1
    - Dst: one_shot
      Src: /src/pacemaker/tools/crm_mon.c:1600,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_mon.c:1527,1
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/tools/crm_mon.c:1574,1
    - Dst: build_arg_context
      Src: /src/pacemaker/tools/crm_mon.c:1415,1
    - Dst: clean_up
      Src: /src/pacemaker/tools/crm_mon.c:1434,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/tools/crm_mon.c:1437,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_mon.c:1490,1
    - Dst: g_io_channel_unix_new
      Src: /src/pacemaker/tools/crm_mon.c:1652,1
    - Dst: avoid_zombies
      Src: /src/pacemaker/tools/crm_mon.c:1422,1
    - Dst: crm_mon_register_messages
      Src: /src/pacemaker/tools/crm_mon.c:1569,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon.c:1592,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_mon.c:1606,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/tools/crm_mon.c:1419,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/tools/crm_mon.c:1424,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/tools/crm_mon.c:1568,1
    - Dst: mon_refresh_display
      Src: /src/pacemaker/tools/crm_mon.c:1639,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_mon.c:1505,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/tools/crm_mon.c:1414,1
    - Dst: strdup
      Src: /src/pacemaker/tools/crm_mon.c:1418,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon.c:1519,1
    - Dst: stonith__register_messages
      Src: /src/pacemaker/tools/crm_mon.c:1571,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/tools/crm_mon.c:1562,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/tools/crm_mon.c:1644,1
    - Dst: exit_on_invalid_cib
      Src: /src/pacemaker/tools/crm_mon.c:1484,1
    - Dst: default_includes
      Src: /src/pacemaker/tools/crm_mon.c:1540,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/tools/crm_mon.c:1586,1
    - Dst: clear
      Src: /src/pacemaker/tools/crm_mon.c:1627,1
    - Dst: pcmk__daemonize
      Src: /src/pacemaker/tools/crm_mon.c:1535,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/tools/crm_mon.c:1643,1
    - Dst: fence_history_cb
      Src: /src/pacemaker/tools/crm_mon.c:1426,1
    - Dst: fence_history_cb
      Src: /src/pacemaker/tools/crm_mon.c:1451,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/tools/crm_mon.c:1502,1
    - Dst: cib__set_output
      Src: /src/pacemaker/tools/crm_mon.c:1597,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/tools/crm_mon.c:1586,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_mon.c:1504,1
    - Dst: clean_up
      Src: /src/pacemaker/tools/crm_mon.c:1552,1
    - Dst: cib_new
      Src: /src/pacemaker/tools/crm_mon.c:1536,1
    - Dst: setup_api_connections
      Src: /src/pacemaker/tools/crm_mon.c:1615,1
    - Dst: cib_delete
      Src: /src/pacemaker/tools/crm_mon.c:1533,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/tools/crm_mon.c:1604,1
    - Dst: pcmk__html_add_header
      Src: /src/pacemaker/tools/crm_mon.c:1588,1
    - Dst: crm_signal_handler
      Src: /src/pacemaker/tools/crm_mon.c:1647,1
    - Dst: clean_up
      Src: /src/pacemaker/tools/crm_mon.c:1668,1
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/tools/crm_mon.c:1603,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/tools/crm_mon.c:1416,1
    - Dst: exit_on_invalid_cib
      Src: /src/pacemaker/tools/crm_mon.c:1460,1
    - Dst: clean_up
      Src: /src/pacemaker/tools/crm_mon.c:1506,1
    - Dst: g_io_add_watch
      Src: /src/pacemaker/tools/crm_mon.c:1653,1
    - Dst: mainloop_add_trigger
      Src: /src/pacemaker/tools/crm_mon.c:1661,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/tools/crm_mon.c:1620,1
    - Dst: clean_up_on_connection_failure
      Src: /src/pacemaker/tools/crm_mon.c:1635,1
    - Dst: pcmk__output_text_set_fancy
      Src: /src/pacemaker/tools/crm_mon.c:1522,1
    - Dst: pcmk__query_node_name
      Src: /src/pacemaker/tools/crm_mon.c:1608,1
    - Dst: g_main_loop_unref
      Src: /src/pacemaker/tools/crm_mon.c:1664,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 186
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 1669
      start: 1408
    functionDepth: 0
    functionLinenumber: 1408
    functionLinenumberEnd: 1669
    functionName: main
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - pcmk__daemonize
    - g_option_context_parse_strv
    - stonith__register_messages
    - pcmk__register_formats
    - pcmk__timeout_ms2s
    - include_exclude_cb
    - fence_history_cb
    - pe__register_messages
    - pcmk__sleep_ms
    - reconcile_output_format
    - mainloop_add_trigger
    - free
    - strdup
    - default_includes
    - pcmk__cli_init_logging
    - build_arg_context
    - avoid_zombies
    - g_io_channel_unix_new
    - pcmk__output_text_set_fancy
    - pcmk__force_args
    - g_get_prgname
    - crm_bump_log_level
    - set_default_exec_mode
    - pcmk__output_set_legacy_xml
    - pcmk_rc_str
    - pcmk__assert
    - pcmk_all_flags_set
    - pcmk_is_set
    - exit_on_invalid_cib
    - setup_api_connections
    - pcmk__cmdline_preproc
    - apply_include_exclude
    - pcmk_any_flags_set
    - one_shot
    - g_main_loop_unref
    - crm_mon_register_messages
    - pcmk__register_messages
    - pcmk__itoa
    - cib__set_output
    - clear
    - pcmk__str_eq
    - mon_refresh_display
    - cib_delete
    - pcmk_new_scheduler
    - crm_info
    - crm_enable_stderr
    - pcmk__readable_interval
    - pcmk__output_new
    - refresh
    - g_main_loop_new
    - pcmk__mem_assert
    - pcmk__query_node_name
    - pcmk__html_add_header
    - g_set_error
    - set_fencing_options
    - mainloop_add_signal
    - cib_new
    - crm_signal_handler
    - clean_up
    - pcmk__new_common_args
    - g_io_add_watch
    - g_main_loop_run
    - pcmk__register_lib_messages
    - clean_up_on_connection_failure
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mon_cib_connection_destroy
      Src: /src/pacemaker/tools/crm_mon.c:2031,1
    - Dst: send_custom_trap
      Src: /src/pacemaker/tools/crm_mon.c:2035,1
    - Dst: stonith__event_description
      Src: /src/pacemaker/tools/crm_mon.c:2033,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon.c:2036,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - stonith_t*
    - stonith_event_t*
    constantsTouched: []
    func_position:
      end: 2038
      start: 2026
    functionDepth: 0
    functionLinenumber: 2026
    functionLinenumberEnd: 2038
    functionName: mon_st_callback_event
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - free
    - mon_cib_connection_destroy
    - stonith__event_description
    - send_custom_trap
    linkageType: ''
    returnType: void
    signature: 'static void mon_st_callback_event(stonith_t * st, stonith_event_t
      * e) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: resizeterm
      Src: /src/pacemaker/tools/crm_mon.c:842,1
    - Dst: getmaxyx
      Src: /src/pacemaker/tools/crm_mon.c:841,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/tools/crm_mon.c:846,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - nsig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 849
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 849
    functionName: mon_winresize
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - resizeterm
    - mainloop_set_trigger
    - getmaxyx
    linkageType: ''
    returnType: void
    signature: 'static void mon_winresize(int nsig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - mon_output_format_t
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: all_includes
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t all_includes(mon_output_format_t fmt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_strsplit
      Src: /src/pacemaker/tools/crm_mon.c:309,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_mon.c:313,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_mon.c:315,1
    - Dst: all_includes
      Src: /src/pacemaker/tools/crm_mon.c:316,1
    - Dst: find_section_bit
      Src: /src/pacemaker/tools/crm_mon.c:311,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_mon.c:320,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/crm_mon.c:330,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 2
    argNames:
    - excludes
    - error
    argTypes:
    - gchar*
    - GError**
    constantsTouched: []
    func_position:
      end: 332
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 332
    functionName: apply_exclude
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - g_strsplit
    - find_section_bit
    - g_strfreev
    - all_includes
    - pcmk__str_eq
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean apply_exclude(const gchar *excludes, GError **error) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/tools/crm_mon.c:384,1
    - Dst: apply_include
      Src: /src/pacemaker/tools/crm_mon.c:385,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/tools/crm_mon.c:386,1
    - Dst: apply_include
      Src: /src/pacemaker/tools/crm_mon.c:387,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/tools/crm_mon.c:388,1
    - Dst: apply_exclude
      Src: /src/pacemaker/tools/crm_mon.c:389,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/tools/crm_mon.c:390,1
    - Dst: apply_exclude
      Src: /src/pacemaker/tools/crm_mon.c:391,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 2
    argNames:
    - lst
    - error
    argTypes:
    - GSList*
    - GError**
    constantsTouched: []
    func_position:
      end: 402
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 402
    functionName: apply_include_exclude
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - apply_exclude
    - apply_include
    - pcmk__starts_with
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean apply_include_exclude(GSList *lst, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_mon.c:414,1
    - Dst: g_slist_append
      Src: /src/pacemaker/tools/crm_mon.c:416,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 418
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 418
    functionName: include_exclude_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - g_slist_append
    - crm_strdup_printf
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean include_exclude_cb(const gchar *option_name, const
      gchar *optarg, gpointer data, GError **err) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_mon.c:567,1
    - Dst: user_include_exclude_cb
      Src: /src/pacemaker/tools/crm_mon.c:572,1
    - Dst: user_include_exclude_cb
      Src: /src/pacemaker/tools/crm_mon.c:568,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon.c:569,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 574
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 574
    functionName: show_bans_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - user_include_exclude_cb
    - free
    - crm_strdup_printf
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean show_bans_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clean_up
      Src: /src/pacemaker/tools/crm_mon.c:819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - nsig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 820
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 820
    functionName: mon_shutdown
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - clean_up
    linkageType: ''
    returnType: void
    signature: 'static void mon_shutdown(int nsig) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/tools/crm_mon.c:981,1
    - Dst: pcmk__pacemakerd_status
      Src: /src/pacemaker/tools/crm_mon.c:988,1
    - Dst: setup_fencer_connection
      Src: /src/pacemaker/tools/crm_mon.c:1008,1
    - Dst: setup_cib_connection
      Src: /src/pacemaker/tools/crm_mon.c:1011,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1013
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 1013
    functionName: setup_api_connections
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - setup_cib_connection
    - setup_fencer_connection
    - pcmk__pacemakerd_status
    linkageType: ''
    returnType: int
    signature: 'static int setup_api_connections(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/tools/crm_mon.c:1814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 1816
      start: 1811
    functionDepth: 0
    functionLinenumber: 1811
    functionLinenumberEnd: 1816
    functionName: mon_trigger_refresh
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - mainloop_set_trigger
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean mon_trigger_refresh(gpointer user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: all_includes
      Src: /src/pacemaker/tools/crm_mon.c:260,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - mon_output_format_t
    constantsTouched: []
    func_position:
      end: 265
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 265
    functionName: default_includes
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - all_includes
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t default_includes(mon_output_format_t fmt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_mon.c:296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: find_section_bit
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t find_section_bit(const char *name) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_strsplit
      Src: /src/pacemaker/tools/crm_mon.c:339,1
    - Dst: find_section_bit
      Src: /src/pacemaker/tools/crm_mon.c:341,1
    - Dst: all_includes
      Src: /src/pacemaker/tools/crm_mon.c:344,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_mon.c:343,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/tools/crm_mon.c:345,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon.c:348,1
    - Dst: strlen
      Src: /src/pacemaker/tools/crm_mon.c:352,1
    - Dst: strdup
      Src: /src/pacemaker/tools/crm_mon.c:353,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_mon.c:355,1
    - Dst: default_includes
      Src: /src/pacemaker/tools/crm_mon.c:356,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_mon.c:357,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_mon.c:362,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/crm_mon.c:372,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 2
    argNames:
    - includes
    - error
    argTypes:
    - gchar*
    - GError**
    constantsTouched: []
    func_position:
      end: 374
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 374
    functionName: apply_include
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - g_strsplit
    - find_section_bit
    - g_strfreev
    - all_includes
    - pcmk__str_eq
    - g_set_error
    - free
    - strdup
    - strlen
    - pcmk__str_any_of
    - default_includes
    - pcmk__starts_with
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean apply_include(const gchar *includes, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_mon.c:406,1
    - Dst: g_slist_append
      Src: /src/pacemaker/tools/crm_mon.c:408,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 410
    functionName: user_include_exclude_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - g_slist_append
    - crm_strdup_printf
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean user_include_exclude_cb(const gchar *option_name,
      const gchar *optarg, gpointer data, GError **err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_mon.c:422,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: as_xml_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean as_xml_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: user_include_exclude_cb
      Src: /src/pacemaker/tools/crm_mon.c:578,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 579
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 579
    functionName: show_failcounts_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - user_include_exclude_cb
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean show_failcounts_cb(const gchar *option_name, const
      gchar *optarg, gpointer data, GError **err) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stonith__api_new
      Src: /src/pacemaker/tools/crm_mon.c:858,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crm_mon.c:867,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/tools/crm_mon.c:882,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 887
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 887
    functionName: setup_fencer_connection
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - stonith__api_new
    - crm_trace
    - stonith__api_free
    linkageType: ''
    returnType: int
    signature: 'static int setup_fencer_connection(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_mon.c:1821,1
    - Dst: handle_rsc_op
      Src: /src/pacemaker/tools/crm_mon.c:1827,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/tools/crm_mon.c:1824,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - xml
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 1829
      start: 1818
    functionDepth: 0
    functionLinenumber: 1818
    functionLinenumberEnd: 1829
    functionName: handle_op_for_node
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - pcmk__xe_id
    - handle_rsc_op
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'static int handle_op_for_node(xmlNode *xml, void *userdata) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_timer_stop
      Src: /src/pacemaker/tools/crm_mon.c:790,1
    - Dst: g_source_remove
      Src: /src/pacemaker/tools/crm_mon.c:794,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/tools/crm_mon.c:810,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 813
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 813
    functionName: mon_cib_connection_destroy
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - mainloop_timer_stop
    - g_source_remove
    - pcmk__create_timer
    linkageType: ''
    returnType: void
    signature: 'static void mon_cib_connection_destroy(gpointer user_data) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: crm_notice
      Src: /src/pacemaker/tools/crm_mon.c:1939,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/tools/crm_mon.c:1959,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crm_mon.c:1945,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/tools/crm_mon.c:1920,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/tools/crm_mon.c:1939,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_mon.c:1940,1
    - Dst: crm_err
      Src: /src/pacemaker/tools/crm_mon.c:1962,1
    - Dst: crm_notice
      Src: /src/pacemaker/tools/crm_mon.c:1932,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/tools/crm_mon.c:1922,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/tools/crm_mon.c:1957,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/tools/crm_mon.c:1954,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/tools/crm_mon.c:1951,1
    - Dst: xml_apply_patchset
      Src: /src/pacemaker/tools/crm_mon.c:1927,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/tools/crm_mon.c:1932,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_mon.c:1933,1
    - Dst: refresh_after_event
      Src: /src/pacemaker/tools/crm_mon.c:1975,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 2
    argNames:
    - event
    - msg
    argTypes:
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1976
      start: 1914
    functionDepth: 0
    functionLinenumber: 1914
    functionLinenumberEnd: 1976
    functionName: crm_diff_update
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - crm_trace
    - pcmk__xe_first_child
    - pcmk__xe_foreach_child
    - crm_notice
    - pcmk__xml_free
    - crm_err
    - refresh_after_event
    - pcmk_strerror
    - xml_apply_patchset
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'static void crm_diff_update(const char *event, xmlNode * msg) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/tools/crm_mon.c:1983,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/tools/crm_mon.c:1990,1
    - Dst: pcmk__pacemakerd_status
      Src: /src/pacemaker/tools/crm_mon.c:1997,1
    - Dst: pcmk__output_cluster_status
      Src: /src/pacemaker/tools/crm_mon.c:2005,1
    - Dst: clean_up
      Src: /src/pacemaker/tools/crm_mon.c:2012,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 2021
      start: 1978
    functionDepth: 0
    functionLinenumber: 1978
    functionLinenumberEnd: 2021
    functionName: mon_refresh_display
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - pcmk__pacemakerd_status
    - time
    - clean_up
    - pcmk_all_flags_set
    - pcmk__output_cluster_status
    linkageType: ''
    returnType: int
    signature: 'static int mon_refresh_display(gpointer user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/tools/crm_mon.c:2054,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/tools/crm_mon.c:2077,1
    - Dst: setup_fencer_connection
      Src: /src/pacemaker/tools/crm_mon.c:2074,1
    - Dst: mainloop_timer_stop
      Src: /src/pacemaker/tools/crm_mon.c:2066,1
    - Dst: mainloop_timer_add
      Src: /src/pacemaker/tools/crm_mon.c:2061,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/tools/crm_mon.c:2079,1
    - Dst: mainloop_timer_stop
      Src: /src/pacemaker/tools/crm_mon.c:2080,1
    - Dst: mainloop_timer_start
      Src: /src/pacemaker/tools/crm_mon.c:2084,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - data_updated
    - enforce
    argTypes:
    - gboolean
    - gboolean
    constantsTouched: []
    func_position:
      end: 2086
      start: 2050
    functionDepth: 0
    functionLinenumber: 2050
    functionLinenumberEnd: 2086
    functionName: refresh_after_event
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - mainloop_timer_stop
    - pcmk__timeout_ms2s
    - time
    - mainloop_timer_add
    - mainloop_timer_start
    - setup_fencer_connection
    - mainloop_set_trigger
    linkageType: ''
    returnType: void
    signature: 'static void refresh_after_event(gboolean data_updated, gboolean enforce) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mon_cib_connection_destroy
      Src: /src/pacemaker/tools/crm_mon.c:2096,1
    - Dst: refresh_after_event
      Src: /src/pacemaker/tools/crm_mon.c:2099,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - stonith_t*
    - stonith_event_t*
    constantsTouched: []
    func_position:
      end: 2101
      start: 2091
    functionDepth: 0
    functionLinenumber: 2091
    functionLinenumberEnd: 2101
    functionName: mon_st_callback_display
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - mon_cib_connection_destroy
    - refresh_after_event
    linkageType: ''
    returnType: void
    signature: 'static void mon_st_callback_display(stonith_t * st, stonith_event_t
      * e) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_mon.c:175,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/tools/crm_mon.c:188,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_mon.c:177,1
    - Dst: pcmk_pacemakerd_api_daemon_state_enum2text
      Src: /src/pacemaker/tools/crm_mon.c:185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 195
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 195
    functionName: crm_mon_disconnected_xml
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    - pcmk_pacemakerd_api_daemon_state_enum2text
    linkageType: ''
    returnType: int
    signature: 'static int crm_mon_disconnected_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 557
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 557
    functionName: daemonize_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean daemonize_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 1028
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1028
    functionName: get_option_desc
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *get_option_desc(char c) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__itoa
      Src: /src/pacemaker/tools/crm_mon.c:1679,1
    - Dst: setenv
      Src: /src/pacemaker/tools/crm_mon.c:1692,1
    - Dst: setenv
      Src: /src/pacemaker/tools/crm_mon.c:1685,1
    - Dst: setenv
      Src: /src/pacemaker/tools/crm_mon.c:1693,1
    - Dst: strerror
      Src: /src/pacemaker/tools/crm_mon.c:1699,1
    - Dst: execl
      Src: /src/pacemaker/tools/crm_mon.c:1703,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crm_mon.c:1707,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon.c:1710,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/tools/crm_mon.c:1680,1
    - Dst: setenv
      Src: /src/pacemaker/tools/crm_mon.c:1690,1
    - Dst: crm_exit
      Src: /src/pacemaker/tools/crm_mon.c:1704,1
    - Dst: fork
      Src: /src/pacemaker/tools/crm_mon.c:1697,1
    - Dst: setenv
      Src: /src/pacemaker/tools/crm_mon.c:1694,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon.c:1709,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/tools/crm_mon.c:1678,1
    - Dst: crm_debug
      Src: /src/pacemaker/tools/crm_mon.c:1682,1
    - Dst: setenv
      Src: /src/pacemaker/tools/crm_mon.c:1688,1
    - Dst: setenv
      Src: /src/pacemaker/tools/crm_mon.c:1691,1
    - Dst: setenv
      Src: /src/pacemaker/tools/crm_mon.c:1695,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon.c:1708,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 7
    argNames:
    - node
    - rsc
    - task
    - target_rc
    - rc
    - status
    - desc
    argTypes:
    - char*
    - char*
    - char*
    - int
    - int
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 1712
      start: 1671
    functionDepth: 0
    functionLinenumber: 1671
    functionLinenumberEnd: 1712
    functionName: send_custom_trap
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - crm_debug
    - setenv
    - fork
    - pcmk__itoa
    - crm_exit
    - strerror
    - execl
    - free
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int send_custom_trap(const char *node, const char *rsc, const
      char *task, int target_rc, int rc, int status, const char *desc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: user_include_exclude_cb
      Src: /src/pacemaker/tools/crm_mon.c:561,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 562
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 562
    functionName: show_attributes_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - user_include_exclude_cb
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean show_attributes_cb(const gchar *option_name, const
      gchar *optarg, gpointer data, GError **err) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/tools/crm_mon.c:1733,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/tools/crm_mon.c:1734,1
    - Dst: pcmk__xe_history_key
      Src: /src/pacemaker/tools/crm_mon.c:1738,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_mon.c:1764,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/tools/crm_mon.c:1768,1
    - Dst: send_custom_trap
      Src: /src/pacemaker/tools/crm_mon.c:1798,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon.c:1803,1
    - Dst: decode_transition_magic
      Src: /src/pacemaker/tools/crm_mon.c:1746,1
    - Dst: crm_err
      Src: /src/pacemaker/tools/crm_mon.c:1748,1
    - Dst: crm_err
      Src: /src/pacemaker/tools/crm_mon.c:1753,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/tools/crm_mon.c:1759,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon.c:1802,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_mon.c:1740,1
    - Dst: parse_op_key
      Src: /src/pacemaker/tools/crm_mon.c:1752,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_mon.c:1757,1
    - Dst: crm_notice
      Src: /src/pacemaker/tools/crm_mon.c:1783,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/tools/crm_mon.c:1789,1
    - Dst: crm_warn
      Src: /src/pacemaker/tools/crm_mon.c:1794,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_mon.c:1781,1
    - Dst: crm_warn
      Src: /src/pacemaker/tools/crm_mon.c:1790,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/tools/crm_mon.c:1793,1
    - Dst: crm_err
      Src: /src/pacemaker/tools/crm_mon.c:1776,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 67
    argCount: 2
    argNames:
    - xml
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 1805
      start: 1714
    functionDepth: 0
    functionLinenumber: 1714
    functionLinenumberEnd: 1805
    functionName: handle_rsc_op
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - pcmk_exec_status_str
    - crm_exit_str
    - pcmk__xe_foreach_child
    - strcmp
    - decode_transition_magic
    - pcmk_rc_str
    - pcmk__xe_is
    - crm_notice
    - free
    - send_custom_trap
    - crm_element_value
    - crm_warn
    - pcmk__xe_history_key
    - pcmk__xe_id
    - crm_err
    - parse_op_key
    linkageType: ''
    returnType: int
    signature: 'static int handle_rsc_op(xmlNode *xml, void *userdata) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: refresh
      Src: /src/pacemaker/tools/crm_mon.c:1142,1
    - Dst: print_option_help
      Src: /src/pacemaker/tools/crm_mon.c:1145,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_mon.c:1145,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_mon.c:1149,1
    - Dst: print_option_help
      Src: /src/pacemaker/tools/crm_mon.c:1149,1
    - Dst: print_option_help
      Src: /src/pacemaker/tools/crm_mon.c:1151,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_mon.c:1151,1
    - Dst: print_option_help
      Src: /src/pacemaker/tools/crm_mon.c:1153,1
    - Dst: get_option_desc
      Src: /src/pacemaker/tools/crm_mon.c:1157,1
    - Dst: clean_up
      Src: /src/pacemaker/tools/crm_mon.c:1053,1
    - Dst: getchar
      Src: /src/pacemaker/tools/crm_mon.c:1070,1
    - Dst: clear
      Src: /src/pacemaker/tools/crm_mon.c:1141,1
    - Dst: print_option_help
      Src: /src/pacemaker/tools/crm_mon.c:1146,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_mon.c:1146,1
    - Dst: print_option_help
      Src: /src/pacemaker/tools/crm_mon.c:1150,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_mon.c:1150,1
    - Dst: print_option_help
      Src: /src/pacemaker/tools/crm_mon.c:1152,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_mon.c:1152,1
    - Dst: print_option_help
      Src: /src/pacemaker/tools/crm_mon.c:1154,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/tools/crm_mon.c:1154,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_mon.c:1092,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_mon.c:1104,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_mon.c:1147,1
    - Dst: print_option_help
      Src: /src/pacemaker/tools/crm_mon.c:1147,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_mon.c:1153,1
    - Dst: print_option_help
      Src: /src/pacemaker/tools/crm_mon.c:1155,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_mon.c:1155,1
    - Dst: curses_formatted_printf
      Src: /src/pacemaker/tools/crm_mon.c:1158,1
    - Dst: set_fencing_options
      Src: /src/pacemaker/tools/crm_mon.c:1079,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/tools/crm_mon.c:1116,1
    - Dst: curses_formatted_printf
      Src: /src/pacemaker/tools/crm_mon.c:1144,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_mon.c:1148,1
    - Dst: print_option_help
      Src: /src/pacemaker/tools/crm_mon.c:1148,1
    - Dst: print_option_help
      Src: /src/pacemaker/tools/crm_mon.c:1156,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_mon.c:1156,1
    - Dst: refresh_after_event
      Src: /src/pacemaker/tools/crm_mon.c:1162,1
    - Dst: curses_formatted_printf
      Src: /src/pacemaker/tools/crm_mon.c:1157,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 83
    argCount: 3
    argNames:
    - channel
    - condition
    - user_data
    argTypes:
    - GIOChannel*
    - GIOCondition
    - gpointer
    constantsTouched: []
    func_position:
      end: 1165
      start: 1039
    functionDepth: 0
    functionLinenumber: 1039
    functionLinenumberEnd: 1165
    functionName: detect_user_input
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - print_option_help
    - refresh
    - getchar
    - clear
    - curses_formatted_printf
    - set_fencing_options
    - pcmk_is_set
    - get_option_desc
    - clean_up
    - refresh_after_event
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean detect_user_input(GIOChannel *channel, GIOCondition
      condition, gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/pacemaker/tools/crm_mon.c:749,1
    - Dst: refresh_after_event
      Src: /src/pacemaker/tools/crm_mon.c:758,1
    - Dst: setup_api_connections
      Src: /src/pacemaker/tools/crm_mon.c:755,1
    - Dst: refresh
      Src: /src/pacemaker/tools/crm_mon.c:750,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/tools/crm_mon.c:765,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 768
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 768
    functionName: reconnect_after_timeout
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - refresh
    - clear
    - refresh_after_event
    - setup_api_connections
    - pcmk__create_timer
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean reconnect_after_timeout(gpointer data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_mon.c:148,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_mon.c:159,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_mon.c:150,1
    - Dst: pcmk__pcmkd_state_enum2friendly
      Src: /src/pacemaker/tools/crm_mon.c:160,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_mon.c:163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 168
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 168
    functionName: crm_mon_disconnected_text
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__pcmkd_state_enum2friendly
    - pcmk__s
    linkageType: ''
    returnType: int
    signature: 'static int crm_mon_disconnected_text(pcmk__output_t *out, va_list
      args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 498
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 498
    functionName: print_description_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean print_description_cb(const gchar *option_name, const
      gchar *optarg, gpointer data, GError **err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 540
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 540
    functionName: one_shot_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean one_shot_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: user_include_exclude_cb
      Src: /src/pacemaker/tools/crm_mon.c:583,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 584
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 584
    functionName: show_operations_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - user_include_exclude_cb
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean show_operations_cb(const gchar *option_name, const
      gchar *optarg, gpointer data, GError **err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/pacemaker/tools/crm_mon.c:593,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 596
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 596
    functionName: use_cib_file_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - setenv
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean use_cib_file_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_mon.c:1404,1
    - Dst: clean_up
      Src: /src/pacemaker/tools/crm_mon.c:1405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1406
      start: 1396
    functionDepth: 0
    functionLinenumber: 1396
    functionLinenumberEnd: 1406
    functionName: exit_on_invalid_cib
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - clean_up
    - g_set_error
    linkageType: ''
    returnType: void
    signature: 'static void exit_on_invalid_cib(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: user_include_exclude_cb
      Src: /src/pacemaker/tools/crm_mon.c:503,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 504
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 504
    functionName: print_timing_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - user_include_exclude_cb
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean print_timing_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: user_include_exclude_cb
      Src: /src/pacemaker/tools/crm_mon.c:588,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 589
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 589
    functionName: show_tickets_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - user_include_exclude_cb
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean show_tickets_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon.c:2124,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon.c:2125,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon.c:2126,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/crm_mon.c:2129,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/tools/crm_mon.c:2143,1
    - Dst: g_get_prgname
      Src: /src/pacemaker/tools/crm_mon.c:2165,1
    - Dst: g_clear_error
      Src: /src/pacemaker/tools/crm_mon.c:2172,1
    - Dst: g_io_channel_shutdown
      Src: /src/pacemaker/tools/crm_mon.c:2118,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon.c:2123,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/tools/crm_mon.c:2121,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_mon.c:2154,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/crm_mon.c:2153,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/crm_mon.c:2169,1
    - Dst: g_get_prgname
      Src: /src/pacemaker/tools/crm_mon.c:2169,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/tools/crm_mon.c:2184,1
    - Dst: crm_exit
      Src: /src/pacemaker/tools/crm_mon.c:2188,1
    - Dst: g_slist_free_full
      Src: /src/pacemaker/tools/crm_mon.c:2127,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/tools/crm_mon.c:2157,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/tools/crm_mon.c:2167,1
    - Dst: crm_exit
      Src: /src/pacemaker/tools/crm_mon.c:2173,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/tools/crm_mon.c:2122,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/tools/crm_mon.c:2131,1
    - Dst: g_option_context_get_help
      Src: /src/pacemaker/tools/crm_mon.c:2151,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/tools/crm_mon.c:2185,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 1
    argNames:
    - exit_code
    argTypes:
    - crm_exit_t
    constantsTouched: []
    func_position:
      end: 2189
      start: 2111
    functionDepth: 0
    functionLinenumber: 2111
    functionLinenumberEnd: 2189
    functionName: clean_up
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - g_strfreev
    - g_option_context_get_help
    - g_clear_error
    - crm_exit
    - pcmk__unregister_formats
    - pcmk_free_scheduler
    - g_get_prgname
    - free
    - g_io_channel_shutdown
    - pcmk__output_free
    - g_free
    - g_slist_free_full
    - pcmk__free_arg_context
    - fprintf
    - stonith__api_free
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t clean_up(crm_exit_t exit_code) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_get_msec
      Src: /src/pacemaker/tools/crm_mon.c:508,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/tools/crm_mon.c:514,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_mon.c:511,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 523
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 523
    functionName: reconnect_cb
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - crm_get_msec
    - pcmk_parse_interval_spec
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean reconnect_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 974
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 974
    functionName: set_fencing_options
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void set_fencing_options(int level) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_mon.c:1359,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - args
    argTypes:
    - pcmk__common_args_t*
    constantsTouched: []
    func_position:
      end: 1364
      start: 1345
    functionDepth: 0
    functionLinenumber: 1345
    functionLinenumberEnd: 1364
    functionName: set_default_exec_mode
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: void
    signature: 'static void set_default_exec_mode(const pcmk__common_args_t *args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_mon.c:1371,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_mon.c:1376,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_mon.c:1373,1
    - Dst: clean_up
      Src: /src/pacemaker/tools/crm_mon.c:1379,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_mon.c:1376,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_mon.c:1379,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1380
      start: 1366
    functionDepth: 0
    functionLinenumber: 1366
    functionLinenumberEnd: 1380
    functionName: clean_up_on_connection_failure
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - pcmk_rc_str
    - clean_up
    - pcmk_rc2exitc
    - g_set_error
    linkageType: ''
    returnType: void
    signature: 'static void clean_up_on_connection_failure(int rc) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_mon.c:1835,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crm_mon.c:1843,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon.c:1867,1
    - Dst: handle_rsc_op
      Src: /src/pacemaker/tools/crm_mon.c:1883,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_mon.c:1879,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crm_mon.c:1878,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crm_mon.c:1885,1
    - Dst: handle_rsc_op
      Src: /src/pacemaker/tools/crm_mon.c:1887,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crm_mon.c:1908,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_mon.c:1846,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_mon.c:1836,1
    - Dst: crm_debug
      Src: /src/pacemaker/tools/crm_mon.c:1866,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_mon.c:1867,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crm_mon.c:1895,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crm_mon.c:1901,1
    - Dst: pcmk__xpath_node_id
      Src: /src/pacemaker/tools/crm_mon.c:1902,1
    - Dst: handle_rsc_op
      Src: /src/pacemaker/tools/crm_mon.c:1904,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crm_mon.c:1850,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/tools/crm_mon.c:1851,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/tools/crm_mon.c:1871,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/tools/crm_mon.c:1871,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/tools/crm_mon.c:1886,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crm_mon.c:1889,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon.c:1899,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crm_mon.c:1861,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crm_mon.c:1870,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/tools/crm_mon.c:1876,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crm_mon.c:1875,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/tools/crm_mon.c:1881,1
    - Dst: pcmk__xpath_node_id
      Src: /src/pacemaker/tools/crm_mon.c:1890,1
    - Dst: handle_rsc_op
      Src: /src/pacemaker/tools/crm_mon.c:1892,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon.c:1893,1
    - Dst: pcmk__xpath_node_id
      Src: /src/pacemaker/tools/crm_mon.c:1896,1
    - Dst: handle_rsc_op
      Src: /src/pacemaker/tools/crm_mon.c:1898,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon.c:1905,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 73
    argCount: 2
    argNames:
    - change
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 1912
      start: 1831
    functionDepth: 0
    functionLinenumber: 1831
    functionLinenumberEnd: 1912
    functionName: crm_diff_update_element
    functionSourceFile: /src/pacemaker/tools/crm_mon.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__xe_first_child
    - pcmk__xe_foreach_child
    - handle_rsc_op
    - strcmp
    - free
    - crm_element_value
    - pcmk__assert
    - pcmk__str_any_of
    - pcmk__xpath_node_id
    - pcmk__xe_id
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int crm_diff_update_element(xmlNode *change, void *userdata) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/tools/crm_verify.c:100,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_verify.c:106,1
    - Dst: g_option_context_set_description
      Src: /src/pacemaker/tools/crm_verify.c:104,1
    - Dst: pcmk__add_main_args
      Src: /src/pacemaker/tools/crm_verify.c:102,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_verify.c:108,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 112
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 112
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/tools/crm_verify.c
    functionUses: []
    functionsReached:
    - pcmk__add_arg_group
    - g_option_context_set_description
    - pcmk__add_main_args
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/pacemaker/tools/crm_verify.c:130,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_verify.c:131,1
    - Dst: va_end
      Src: /src/pacemaker/tools/crm_verify.c:135,1
    - Dst: vasprintf
      Src: /src/pacemaker/tools/crm_verify.c:131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: output_config_error
    functionSourceFile: /src/pacemaker/tools/crm_verify.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - va_start
    - vasprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: 'static void output_config_error(void *ctx, const char *msg, ...) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/tools/crm_verify.c:184,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_verify.c:230,1
    - Dst: pcmk__set_config_warning_handler
      Src: /src/pacemaker/tools/crm_verify.c:213,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_verify.c:215,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_verify.c:248,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_verify.c:249,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/tools/crm_verify.c:276,1
    - Dst: crm_exit
      Src: /src/pacemaker/tools/crm_verify.c:297,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_verify.c:277,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/tools/crm_verify.c:181,1
    - Dst: build_arg_context
      Src: /src/pacemaker/tools/crm_verify.c:182,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/tools/crm_verify.c:185,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/tools/crm_verify.c:194,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/tools/crm_verify.c:210,1
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/tools/crm_verify.c:245,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_verify.c:282,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_verify.c:286,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/tools/crm_verify.c:293,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/tools/crm_verify.c:180,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/tools/crm_verify.c:196,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_verify.c:199,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_verify.c:201,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_verify.c:236,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_verify.c:237,1
    - Dst: pcmk__parse_cib
      Src: /src/pacemaker/tools/crm_verify.c:234,1
    - Dst: pcmk__xml_write_file
      Src: /src/pacemaker/tools/crm_verify.c:242,1
    - Dst: pcmk__verify
      Src: /src/pacemaker/tools/crm_verify.c:255,1
    - Dst: pcmk__set_config_error_handler
      Src: /src/pacemaker/tools/crm_verify.c:212,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/tools/crm_verify.c:272,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/crm_verify.c:275,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_verify.c:278,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_verify.c:279,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/tools/crm_verify.c:289,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/tools/crm_verify.c:296,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 93
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 298
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 298
    functionName: main
    functionSourceFile: /src/pacemaker/tools/crm_verify.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - pcmk__register_formats
    - crm_exit
    - free
    - pcmk__set_config_warning_handler
    - pcmk__cli_init_logging
    - build_arg_context
    - pcmk__parse_cib
    - pcmk_free_scheduler
    - pcmk_rc_str
    - pcmk__cmdline_preproc
    - pcmk__free_arg_context
    - pcmk__unregister_formats
    - pcmk__output_and_clear_error
    - pcmk__set_config_error_handler
    - pcmk__str_eq
    - pcmk_new_scheduler
    - pcmk__output_new
    - g_strfreev
    - pcmk__xml_write_file
    - pcmk_rc2exitc
    - g_set_error
    - pcmk__xml_free
    - pcmk__output_free
    - pcmk__new_common_args
    - pcmk__verify
    - pcmk__register_lib_messages
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/pacemaker/tools/crm_verify.c:154,1
    - Dst: va_end
      Src: /src/pacemaker/tools/crm_verify.c:159,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_verify.c:155,1
    - Dst: vasprintf
      Src: /src/pacemaker/tools/crm_verify.c:155,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 160
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 160
    functionName: output_config_warning
    functionSourceFile: /src/pacemaker/tools/crm_verify.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - va_start
    - vasprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: 'static void output_config_warning(void *ctx, const char *msg, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_diff.c:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: new_string_cb
    functionSourceFile: /src/pacemaker/tools/crm_diff.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean new_string_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_diff.c:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: patch_cb
    functionSourceFile: /src/pacemaker/tools/crm_diff.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean patch_cb(const gchar *option_name, const gchar *optarg, gpointer
      data, GError **error) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/tools/crm_diff.c:120,1
    - Dst: xml_apply_patchset
      Src: /src/pacemaker/tools/crm_diff.c:121,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_diff.c:123,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_diff.c:125,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/crm_diff.c:125,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_diff.c:126,1
    - Dst: print_patch
      Src: /src/pacemaker/tools/crm_diff.c:133,1
    - Dst: pcmk__digest_xml
      Src: /src/pacemaker/tools/crm_diff.c:135,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crm_diff.c:136,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_diff.c:136,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_diff.c:137,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_diff.c:138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - input
    - patch
    - as_cib
    argTypes:
    - xmlNode*
    - xmlNode*
    - gboolean
    constantsTouched: []
    func_position:
      end: 141
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 141
    functionName: apply_patch
    functionSourceFile: /src/pacemaker/tools/crm_diff.c
    functionUses: []
    functionsReached:
    - pcmk__digest_xml
    - pcmk__xml_copy
    - crm_trace
    - pcmk__s
    - pcmk__xml_free
    - free
    - pcmk_rc_str
    - print_patch
    - fprintf
    - xml_apply_patchset
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int apply_patch(xmlNode *input, xmlNode *patch, gboolean as_cib) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/tools/crm_diff.c:180,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/tools/crm_diff.c:189,1
    - Dst: pcmk__xml_mark_changes
      Src: /src/pacemaker/tools/crm_diff.c:188,1
    - Dst: pcmk__xml_doc_set_flags
      Src: /src/pacemaker/tools/crm_diff.c:186,1
    - Dst: crm_copy_xml_element
      Src: /src/pacemaker/tools/crm_diff.c:181,1
    - Dst: xml_create_patchset
      Src: /src/pacemaker/tools/crm_diff.c:191,1
    - Dst: pcmk__log_xml_changes
      Src: /src/pacemaker/tools/crm_diff.c:193,1
    - Dst: pcmk__xml_commit_changes
      Src: /src/pacemaker/tools/crm_diff.c:194,1
    - Dst: patchset_process_digest
      Src: /src/pacemaker/tools/crm_diff.c:200,1
    - Dst: log_patch_cib_versions
      Src: /src/pacemaker/tools/crm_diff.c:203,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/tools/crm_diff.c:206,1
    - Dst: print_patch
      Src: /src/pacemaker/tools/crm_diff.c:211,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_diff.c:212,1
    - Dst: pcmk__log_xml_patchset
      Src: /src/pacemaker/tools/crm_diff.c:210,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_diff.c:206,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 5
    argNames:
    - object_original
    - object_new
    - xml_file_new
    - as_cib
    - no_version
    argTypes:
    - xmlNode*
    - xmlNode*
    - char*
    - gboolean
    - gboolean
    constantsTouched: []
    func_position:
      end: 219
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 219
    functionName: generate_patch
    functionSourceFile: /src/pacemaker/tools/crm_diff.c
    functionUses: []
    functionsReached:
    - pcmk__log_xml_patchset
    - crm_log_xml_debug
    - pcmk__xe_first_child
    - pcmk__xml_commit_changes
    - PCMK__NELEM
    - print_patch
    - pcmk__log_xml_changes
    - pcmk__xml_doc_set_flags
    - log_patch_cib_versions
    - crm_copy_xml_element
    - pcmk__xml_free
    - patchset_process_digest
    - pcmk__xml_mark_changes
    - xml_create_patchset
    linkageType: ''
    returnType: int
    signature: 'static int generate_patch(xmlNode *object_original, xmlNode *object_new,
      const char *xml_file_new, gboolean as_cib, gboolean no_version) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_sized_new
      Src: /src/pacemaker/tools/crm_diff.c:107,1
    - Dst: g_string_free
      Src: /src/pacemaker/tools/crm_diff.c:112,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/tools/crm_diff.c:109,1
    - Dst: fflush
      Src: /src/pacemaker/tools/crm_diff.c:113,1
    - Dst: printf
      Src: /src/pacemaker/tools/crm_diff.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - patch
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 114
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 114
    functionName: print_patch
    functionSourceFile: /src/pacemaker/tools/crm_diff.c
    functionUses: []
    functionsReached:
    - g_string_free
    - g_string_sized_new
    - pcmk__xml_string
    - fflush
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void print_patch(xmlNode *patch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_diff.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: original_string_cb
    functionSourceFile: /src/pacemaker/tools/crm_diff.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean original_string_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xml_patch_versions
      Src: /src/pacemaker/tools/crm_diff.c:152,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_diff.c:154,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_diff.c:153,1
    - Dst: crm_info
      Src: /src/pacemaker/tools/crm_diff.c:157,1
    - Dst: crm_info
      Src: /src/pacemaker/tools/crm_diff.c:158,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - patch
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 160
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 160
    functionName: log_patch_cib_versions
    functionSourceFile: /src/pacemaker/tools/crm_diff.c
    functionUses: []
    functionsReached:
    - crm_info
    - xml_patch_versions
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void log_patch_cib_versions(xmlNode *patch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/tools/crm_diff.c:236,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_diff.c:241,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_diff.c:243,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_diff.c:239,1
    - Dst: g_option_context_set_description
      Src: /src/pacemaker/tools/crm_diff.c:237,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - args
    argTypes:
    - pcmk__common_args_t*
    constantsTouched: []
    func_position:
      end: 246
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 246
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/tools/crm_diff.c
    functionUses: []
    functionsReached:
    - pcmk__add_arg_group
    - g_option_context_set_description
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/tools/crm_diff.c:272,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/crm_diff.c:300,1
    - Dst: pcmk__xml_read
      Src: /src/pacemaker/tools/crm_diff.c:293,1
    - Dst: pcmk__xml_read
      Src: /src/pacemaker/tools/crm_diff.c:304,1
    - Dst: generate_patch
      Src: /src/pacemaker/tools/crm_diff.c:321,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/tools/crm_diff.c:327,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/tools/crm_diff.c:333,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/tools/crm_diff.c:297,1
    - Dst: pcmk__xml_read
      Src: /src/pacemaker/tools/crm_diff.c:301,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/crm_diff.c:326,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_diff.c:329,1
    - Dst: crm_exit
      Src: /src/pacemaker/tools/crm_diff.c:334,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_diff.c:328,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/tools/crm_diff.c:257,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/tools/crm_diff.c:268,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/crm_diff.c:271,1
    - Dst: pcmk__cli_help
      Src: /src/pacemaker/tools/crm_diff.c:274,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/crm_diff.c:278,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/crm_diff.c:280,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/crm_diff.c:289,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/crm_diff.c:308,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/crm_diff.c:313,1
    - Dst: apply_patch
      Src: /src/pacemaker/tools/crm_diff.c:319,1
    - Dst: build_arg_context
      Src: /src/pacemaker/tools/crm_diff.c:259,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/tools/crm_diff.c:258,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/tools/crm_diff.c:263,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/tools/crm_diff.c:286,1
    - Dst: pcmk__xml_read
      Src: /src/pacemaker/tools/crm_diff.c:290,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_diff.c:323,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_diff.c:330,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_diff.c:331,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 66
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 335
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 335
    functionName: main
    functionSourceFile: /src/pacemaker/tools/crm_diff.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - pcmk__cli_init_logging
    - g_strfreev
    - build_arg_context
    - crm_exit
    - pcmk_rc2exitc
    - pcmk__output_and_clear_error
    - pcmk__xml_read
    - pcmk__cli_help
    - free
    - pcmk__new_common_args
    - pcmk__xml_parse
    - pcmk__xml_free
    - generate_patch
    - pcmk__free_arg_context
    - fprintf
    - pcmk__cmdline_preproc
    - apply_patch
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_resource_ban.c:265,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_resource_ban.c:272,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_ban.c:275,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - rsc_id
    - host
    - cib_conn
    argTypes:
    - char*
    - char*
    - cib_t*
    constantsTouched: []
    func_position:
      end: 277
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 277
    functionName: resource_clear_node_in_expr
    functionSourceFile: /src/pacemaker/tools/crm_resource_ban.c
    functionUses: []
    functionsReached:
    - free
    - pcmk_legacy2rc
    - crm_strdup_printf
    linkageType: ''
    returnType: int
    signature: 'static int resource_clear_node_in_expr(const char *rsc_id, const char
      *host, cib_t *cib_conn) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_resource_ban.c:170,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/tools/crm_resource_ban.c:171,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:173,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:182,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_resource_ban.c:187,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:190,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:191,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_resource_ban.c:199,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_ban.c:210,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_resource_ban.c:168,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:175,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:177,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/tools/crm_resource_ban.c:193,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:194,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/tools/crm_resource_ban.c:189,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_resource_ban.c:186,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_resource_ban.c:208,1
    - Dst: cli_resource_prefer
      Src: /src/pacemaker/tools/crm_resource_ban.c:217,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_ban.c:164,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/tools/crm_resource_ban.c:200,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:201,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:202,1
    - Dst: crm_log_xml_info
      Src: /src/pacemaker/tools/crm_resource_ban.c:205,1
    - Dst: parse_cli_lifetime
      Src: /src/pacemaker/tools/crm_resource_ban.c:154,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:183,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:195,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:196,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:197,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_ban.c:211,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crm_resource_ban.c:215,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 7
    argNames:
    - out
    - rsc_id
    - host
    - move_lifetime
    - cib_conn
    - promoted_role_only
    - promoted_role
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    - char*
    - cib_t*
    - gboolean
    - char*
    constantsTouched: []
    func_position:
      end: 226
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 226
    functionName: cli_resource_prefer
    functionSourceFile: /src/pacemaker/tools/crm_resource_ban.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_set_id
    - crm_xml_add
    - crm_log_xml_info
    - strcmp
    - free
    - pcmk__xml_free
    - cli_resource_prefer
    - parse_cli_lifetime
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int cli_resource_prefer(pcmk__output_t *out,const char *rsc_id, const
      char *host, const char *move_lifetime, cib_t *cib_conn, gboolean promoted_role_only,
      const char *promoted_role) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: resource_clear_node_in_expr
      Src: /src/pacemaker/tools/crm_resource_ban.c:326,1
    - Dst: resource_clear_node_in_location
      Src: /src/pacemaker/tools/crm_resource_ban.c:333,1
    - Dst: cli_resource_clear
      Src: /src/pacemaker/tools/crm_resource_ban.c:346,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 6
    argNames:
    - rsc_id
    - host
    - allnodes
    - cib_conn
    - clear_ban_constraints
    - force
    argTypes:
    - char*
    - char*
    - GList*
    - cib_t*
    - bool
    - gboolean
    constantsTouched: []
    func_position:
      end: 355
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 355
    functionName: cli_resource_clear
    functionSourceFile: /src/pacemaker/tools/crm_resource_ban.c
    functionUses: []
    functionsReached:
    - cli_resource_clear
    - resource_clear_node_in_expr
    - resource_clear_node_in_location
    linkageType: ''
    returnType: int
    signature: 'int cli_resource_clear(const char *rsc_id, const char *host, GList
      *allnodes, cib_t * cib_conn, bool clear_ban_constraints, gboolean force) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/tools/crm_resource_ban.c:28,1
    - Dst: crm_time_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:37,1
    - Dst: crm_time_new
      Src: /src/pacemaker/tools/crm_resource_ban.c:36,1
    - Dst: crm_time_free
      Src: /src/pacemaker/tools/crm_resource_ban.c:42,1
    - Dst: crm_time_free
      Src: /src/pacemaker/tools/crm_resource_ban.c:43,1
    - Dst: crm_time_log
      Src: /src/pacemaker/tools/crm_resource_ban.c:47,1
    - Dst: crm_time_log
      Src: /src/pacemaker/tools/crm_resource_ban.c:49,1
    - Dst: crm_time_log
      Src: /src/pacemaker/tools/crm_resource_ban.c:51,1
    - Dst: crm_time_free
      Src: /src/pacemaker/tools/crm_resource_ban.c:55,1
    - Dst: crm_time_free
      Src: /src/pacemaker/tools/crm_resource_ban.c:56,1
    - Dst: crm_time_free
      Src: /src/pacemaker/tools/crm_resource_ban.c:57,1
    - Dst: crm_time_as_string
      Src: /src/pacemaker/tools/crm_resource_ban.c:52,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - out
    - move_lifetime
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 59
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 59
    functionName: parse_cli_lifetime
    functionSourceFile: /src/pacemaker/tools/crm_resource_ban.c
    functionUses: []
    functionsReached:
    - crm_time_parse_duration
    - crm_time_log
    - crm_time_as_string
    - crm_time_new
    - crm_time_add
    - crm_time_free
    linkageType: ''
    returnType: char*
    signature: 'static char *parse_cli_lifetime(pcmk__output_t *out, const char *move_lifetime) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_string_append
      Src: /src/pacemaker/tools/crm_resource_ban.c:377,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/tools/crm_resource_ban.c:391,1
    - Dst: g_string_append
      Src: /src/pacemaker/tools/crm_resource_ban.c:407,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/tools/crm_resource_ban.c:402,1
    - Dst: g_string_append
      Src: /src/pacemaker/tools/crm_resource_ban.c:413,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/tools/crm_resource_ban.c:416,1
    - Dst: g_string_free
      Src: /src/pacemaker/tools/crm_resource_ban.c:434,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/tools/crm_resource_ban.c:362,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_ban.c:363,1
    - Dst: g_string_append
      Src: /src/pacemaker/tools/crm_resource_ban.c:424,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/tools/crm_resource_ban.c:426,1
    - Dst: g_string_truncate
      Src: /src/pacemaker/tools/crm_resource_ban.c:370,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/tools/crm_resource_ban.c:372,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/tools/crm_resource_ban.c:380,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/tools/crm_resource_ban.c:429,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/tools/crm_resource_ban.c:425,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_resource_ban.c:369,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/tools/crm_resource_ban.c:373,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/tools/crm_resource_ban.c:383,1
    - Dst: g_string_append
      Src: /src/pacemaker/tools/crm_resource_ban.c:386,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/tools/crm_resource_ban.c:392,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/tools/crm_resource_ban.c:397,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/tools/crm_resource_ban.c:398,1
    - Dst: g_string_append
      Src: /src/pacemaker/tools/crm_resource_ban.c:403,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/tools/crm_resource_ban.c:409,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/tools/crm_resource_ban.c:418,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 61
    argCount: 5
    argNames:
    - buf
    - constraint_node
    - rsc
    - node
    - promoted_role_only
    argTypes:
    - GString*
    - xmlNode*
    - char*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 436
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 436
    functionName: build_clear_xpath_string
    functionSourceFile: /src/pacemaker/tools/crm_resource_ban.c
    functionUses: []
    functionsReached:
    - g_string_truncate
    - g_string_append_c
    - g_string_append
    - g_string_sized_new
    - crm_element_value
    - pcmk__assert
    - g_string_free
    - pcmk__xe_id
    - pcmk__g_strcat
    - pcmk__starts_with
    linkageType: ''
    returnType: void
    signature: 'static void build_clear_xpath_string(GString *buf, const xmlNode *constraint_node,
      const char *rsc, const char *node, bool promoted_role_only) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_resource_ban.c:288,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/tools/crm_resource_ban.c:292,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_resource_ban.c:291,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/tools/crm_resource_ban.c:296,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_resource_ban.c:295,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:298,1
    - Dst: crm_log_xml_info
      Src: /src/pacemaker/tools/crm_resource_ban.c:301,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_resource_ban.c:307,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_ban.c:310,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 5
    argNames:
    - rsc_id
    - host
    - cib_conn
    - clear_ban_constraints
    - force
    argTypes:
    - char*
    - char*
    - cib_t*
    - bool
    - gboolean
    constantsTouched: []
    func_position:
      end: 312
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 312
    functionName: resource_clear_node_in_location
    functionSourceFile: /src/pacemaker/tools/crm_resource_ban.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_set_id
    - crm_log_xml_info
    - crm_xml_add
    - pcmk__xml_free
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int resource_clear_node_in_location(const char *rsc_id, const
      char *host, cib_t * cib_conn, bool clear_ban_constraints, gboolean force) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_resource_ban.c:77,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:103,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_resource_ban.c:119,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_resource_ban.c:128,1
    - Dst: cli_resource_ban
      Src: /src/pacemaker/tools/crm_resource_ban.c:137,1
    - Dst: crm_log_xml_notice
      Src: /src/pacemaker/tools/crm_resource_ban.c:125,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:93,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:102,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:110,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:111,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_resource_ban.c:107,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/tools/crm_resource_ban.c:113,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/tools/crm_resource_ban.c:120,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:121,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:122,1
    - Dst: parse_cli_lifetime
      Src: /src/pacemaker/tools/crm_resource_ban.c:72,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_resource_ban.c:79,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:95,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:97,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_resource_ban.c:106,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_ban.c:131,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crm_resource_ban.c:135,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/tools/crm_resource_ban.c:80,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/tools/crm_resource_ban.c:90,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/tools/crm_resource_ban.c:109,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:114,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:115,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:116,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_ban.c:117,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_ban.c:130,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 7
    argNames:
    - out
    - rsc_id
    - host
    - move_lifetime
    - cib_conn
    - promoted_role_only
    - promoted_role
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    - char*
    - cib_t*
    - gboolean
    - char*
    constantsTouched: []
    func_position:
      end: 146
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 146
    functionName: cli_resource_ban
    functionSourceFile: /src/pacemaker/tools/crm_resource_ban.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_set_id
    - cli_resource_ban
    - crm_xml_add
    - strcmp
    - crm_log_xml_notice
    - pcmk__xml_free
    - free
    - parse_cli_lifetime
    - pcmk__xe_id
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int cli_resource_ban(pcmk__output_t *out, const char *rsc_id, const
      char *host, const char *move_lifetime, cib_t *cib_conn, gboolean promoted_role_only,
      const char *promoted_role) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/tools/crm_resource_ban.c:446,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/tools/crm_resource_ban.c:487,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/tools/crm_resource_ban.c:492,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_ban.c:509,1
    - Dst: crm_time_free
      Src: /src/pacemaker/tools/crm_resource_ban.c:512,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/tools/crm_resource_ban.c:466,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/tools/crm_resource_ban.c:475,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_resource_ban.c:487,1
    - Dst: crm_time_free
      Src: /src/pacemaker/tools/crm_resource_ban.c:520,1
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/tools/crm_resource_ban.c:450,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/tools/crm_resource_ban.c:453,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/tools/crm_resource_ban.c:456,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/tools/crm_resource_ban.c:451,1
    - Dst: build_clear_xpath_string
      Src: /src/pacemaker/tools/crm_resource_ban.c:469,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crm_resource_ban.c:486,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource_ban.c:488,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_resource_ban.c:497,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_resource_ban.c:503,1
    - Dst: pcmk__xe_get_datetime
      Src: /src/pacemaker/tools/crm_resource_ban.c:484,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/tools/crm_resource_ban.c:498,1
    - Dst: crm_log_xml_info
      Src: /src/pacemaker/tools/crm_resource_ban.c:499,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/tools/crm_resource_ban.c:498,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_resource_ban.c:496,1
    - Dst: g_string_free
      Src: /src/pacemaker/tools/crm_resource_ban.c:517,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/tools/crm_resource_ban.c:519,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 55
    argCount: 5
    argNames:
    - root
    - cib_conn
    - rsc
    - node
    - promoted_role_only
    argTypes:
    - xmlNode*
    - cib_t*
    - char*
    - char*
    - gboolean
    constantsTouched: []
    func_position:
      end: 522
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 522
    functionName: cli_resource_clear_all_expired
    functionSourceFile: /src/pacemaker/tools/crm_resource_ban.c
    functionUses: []
    functionsReached:
    - pcmk__xe_set_id
    - pcmk__xpath_num_results
    - g_string_free
    - pcmk__xpath_search
    - crm_time_free
    - pcmk_legacy2rc
    - pcmk__xe_create
    - crm_time_compare
    - pcmk__s
    - pcmk__xpath_result
    - pcmk__xe_get_datetime
    - pcmk__xpath_find_one
    - xmlXPathFreeObject
    - pcmk_rc_str
    - build_clear_xpath_string
    - pcmk__xe_id
    - crm_log_xml_info
    - pcmk_find_cib_element
    - g_string_sized_new
    - crm_time_new
    - crm_trace
    - pcmk__xml_free
    linkageType: ''
    returnType: int
    signature: 'int cli_resource_clear_all_expired(xmlNode *root, cib_t *cib_conn,
      const char *rsc, const char *node, gboolean promoted_role_only) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/tools/crm_rule.c:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: mode_cb
    functionSourceFile: /src/pacemaker/tools/crm_rule.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean mode_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: build_arg_context
      Src: /src/pacemaker/tools/crm_rule.c:111,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/tools/crm_rule.c:130,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_rule.c:152,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_rule.c:162,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_rule.c:203,1
    - Dst: crm_time_free
      Src: /src/pacemaker/tools/crm_rule.c:214,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/tools/crm_rule.c:115,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_rule.c:168,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_rule.c:189,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_rule.c:215,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/tools/crm_rule.c:221,1
    - Dst: crm_exit
      Src: /src/pacemaker/tools/crm_rule.c:225,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/tools/crm_rule.c:110,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/tools/crm_rule.c:114,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/tools/crm_rule.c:120,1
    - Dst: pcmk__xml_read
      Src: /src/pacemaker/tools/crm_rule.c:176,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_rule.c:180,1
    - Dst: pcmk__check_rules
      Src: /src/pacemaker/tools/crm_rule.c:201,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/crm_rule.c:211,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/tools/crm_rule.c:217,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/tools/crm_rule.c:112,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/tools/crm_rule.c:122,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_rule.c:125,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_rule.c:126,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_rule.c:144,1
    - Dst: crm_time_new
      Src: /src/pacemaker/tools/crm_rule.c:158,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_rule.c:175,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/tools/crm_rule.c:185,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/tools/crm_rule.c:212,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/tools/crm_rule.c:224,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 70
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 226
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 226
    functionName: main
    functionSourceFile: /src/pacemaker/tools/crm_rule.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - pcmk__register_formats
    - crm_exit
    - crm_time_free
    - pcmk__cli_init_logging
    - build_arg_context
    - pcmk_rc_str
    - pcmk__cmdline_preproc
    - pcmk__unregister_formats
    - pcmk__output_and_clear_error
    - pcmk__str_eq
    - pcmk__xml_read
    - pcmk__register_lib_messages
    - pcmk__xml_parse
    - crm_time_new
    - pcmk__output_new
    - g_strfreev
    - pcmk_rc2exitc
    - g_set_error
    - pcmk__xml_free
    - pcmk__output_free
    - pcmk__new_common_args
    - pcmk__check_rules
    - pcmk__free_arg_context
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/tools/crm_rule.c:85,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_rule.c:91,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_rule.c:89,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_rule.c:87,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/tools/crm_rule.c
    functionUses: []
    functionsReached:
    - pcmk__add_arg_group
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/attrd_updater.c:60,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/attrd_updater.c:62,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/attrd_updater.c:64,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/attrd_updater.c:66,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/attrd_updater.c:68,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/attrd_updater.c:70,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/attrd_updater.c:72,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 77
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 77
    functionName: command_cb
    functionSourceFile: /src/pacemaker/tools/attrd_updater.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean command_cb (const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/attrd_updater.c:112,1
    - Dst: pcmk__clear_node_attr_flags
      Src: /src/pacemaker/tools/attrd_updater.c:113,1
    - Dst: pcmk__clear_node_attr_flags
      Src: /src/pacemaker/tools/attrd_updater.c:116,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/attrd_updater.c:115,1
    - Dst: pcmk__set_node_attr_flags
      Src: /src/pacemaker/tools/attrd_updater.c:117,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/attrd_updater.c:119,1
    - Dst: pcmk__clear_node_attr_flags
      Src: /src/pacemaker/tools/attrd_updater.c:120,1
    - Dst: pcmk__set_node_attr_flags
      Src: /src/pacemaker/tools/attrd_updater.c:121,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/attrd_updater.c:124,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 128
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 128
    functionName: wait_cb
    functionSourceFile: /src/pacemaker/tools/attrd_updater.c
    functionUses: []
    functionsReached:
    - pcmk__set_node_attr_flags
    - pcmk__str_eq
    - pcmk__clear_node_attr_flags
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean wait_cb (const gchar *option_name, const gchar *optarg,
      gpointer data, GError **err) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/attrd_updater.c:87,1
    - Dst: pcmk__clear_node_attr_flags
      Src: /src/pacemaker/tools/attrd_updater.c:91,1
    - Dst: pcmk__set_node_attr_flags
      Src: /src/pacemaker/tools/attrd_updater.c:88,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/attrd_updater.c:89,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/attrd_updater.c:93,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 99
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 99
    functionName: section_cb
    functionSourceFile: /src/pacemaker/tools/attrd_updater.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - pcmk__set_node_attr_flags
    - pcmk__clear_node_attr_flags
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean section_cb (const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: pattern_used_correctly
    functionSourceFile: /src/pacemaker/tools/attrd_updater.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool pattern_used_correctly(void) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/tools/attrd_updater.c:304,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/attrd_updater.c:314,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/attrd_updater.c:315,1
    - Dst: g_free
      Src: /src/pacemaker/tools/attrd_updater.c:339,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/attrd_updater.c:346,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/attrd_updater.c:356,1
    - Dst: send_attrd_query
      Src: /src/pacemaker/tools/attrd_updater.c:355,1
    - Dst: send_attrd_update
      Src: /src/pacemaker/tools/attrd_updater.c:363,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/attrd_updater.c:367,1
    - Dst: g_free
      Src: /src/pacemaker/tools/attrd_updater.c:375,1
    - Dst: build_arg_context
      Src: /src/pacemaker/tools/attrd_updater.c:300,1
    - Dst: g_free
      Src: /src/pacemaker/tools/attrd_updater.c:373,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/tools/attrd_updater.c:386,1
    - Dst: g_free
      Src: /src/pacemaker/tools/attrd_updater.c:374,1
    - Dst: crm_exit
      Src: /src/pacemaker/tools/attrd_updater.c:387,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/tools/attrd_updater.c:301,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/tools/attrd_updater.c:311,1
    - Dst: pattern_used_correctly
      Src: /src/pacemaker/tools/attrd_updater.c:332,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/tools/attrd_updater.c:352,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/attrd_updater.c:371,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/tools/attrd_updater.c:299,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/tools/attrd_updater.c:303,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/tools/attrd_updater.c:309,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/attrd_updater.c:327,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/attrd_updater.c:334,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/tools/attrd_updater.c:372,1
    - Dst: free
      Src: /src/pacemaker/tools/attrd_updater.c:377,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/tools/attrd_updater.c:379,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/tools/attrd_updater.c:383,1
    - Dst: g_free
      Src: /src/pacemaker/tools/attrd_updater.c:376,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 68
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 388
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 388
    functionName: main
    functionSourceFile: /src/pacemaker/tools/attrd_updater.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - pcmk__register_formats
    - crm_exit
    - free
    - pcmk__cli_init_logging
    - build_arg_context
    - pcmk_rc_str
    - g_free
    - pattern_used_correctly
    - pcmk__cmdline_preproc
    - send_attrd_update
    - pcmk__unregister_formats
    - pcmk__output_and_clear_error
    - pcmk__register_lib_messages
    - send_attrd_query
    - pcmk__output_new
    - g_strfreev
    - pcmk_rc2exitc
    - g_set_error
    - pcmk__output_free
    - pcmk__new_common_args
    - pcmk__free_arg_context
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_new_ipc_api
      Src: /src/pacemaker/tools/attrd_updater.c:446,1
    - Dst: pcmk__connect_ipc
      Src: /src/pacemaker/tools/attrd_updater.c:456,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/attrd_updater.c:448,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/attrd_updater.c:449,1
    - Dst: pcmk_register_ipc_callback
      Src: /src/pacemaker/tools/attrd_updater.c:453,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/attrd_updater.c:458,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/tools/attrd_updater.c:460,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/attrd_updater.c:460,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/tools/attrd_updater.c:461,1
    - Dst: pcmk__attrd_api_query
      Src: /src/pacemaker/tools/attrd_updater.c:470,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/attrd_updater.c:474,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/attrd_updater.c:477,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/attrd_updater.c:473,1
    - Dst: pcmk_disconnect_ipc
      Src: /src/pacemaker/tools/attrd_updater.c:481,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/tools/attrd_updater.c:482,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - out
    - attr_name
    - attr_node
    - query_all
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    - gboolean
    constantsTouched: []
    func_position:
      end: 485
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 485
    functionName: send_attrd_query
    functionSourceFile: /src/pacemaker/tools/attrd_updater.c
    functionUses: []
    functionsReached:
    - pcmk_ipc_name
    - pcmk__connect_ipc
    - pcmk_disconnect_ipc
    - pcmk_new_ipc_api
    - g_set_error
    - pcmk_rc_str
    - pcmk_register_ipc_callback
    - pcmk__attrd_api_query
    - pcmk_free_ipc_api
    linkageType: ''
    returnType: int
    signature: 'static int send_attrd_query(pcmk__output_t *out, const char *attr_name,
      const char *attr_node, gboolean query_all) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_node_attr_flags
      Src: /src/pacemaker/tools/attrd_updater.c:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: private_cb
    functionSourceFile: /src/pacemaker/tools/attrd_updater.c
    functionUses: []
    functionsReached:
    - pcmk__set_node_attr_flags
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean private_cb (const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/attrd_updater.c:103,1
    - Dst: pcmk__set_node_attr_flags
      Src: /src/pacemaker/tools/attrd_updater.c:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: attr_set_type_cb
    functionSourceFile: /src/pacemaker/tools/attrd_updater.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - pcmk__set_node_attr_flags
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean attr_set_type_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/tools/attrd_updater.c:276,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/attrd_updater.c:284,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/attrd_updater.c:278,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/attrd_updater.c:280,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/attrd_updater.c:282,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 288
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 288
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/tools/attrd_updater.c
    functionUses: []
    functionsReached:
    - pcmk__add_arg_group
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__attrd_api_update
      Src: /src/pacemaker/tools/attrd_updater.c:496,1
    - Dst: pcmk__attrd_api_update
      Src: /src/pacemaker/tools/attrd_updater.c:516,1
    - Dst: pcmk__attrd_api_delete
      Src: /src/pacemaker/tools/attrd_updater.c:502,1
    - Dst: pcmk__attrd_api_refresh
      Src: /src/pacemaker/tools/attrd_updater.c:506,1
    - Dst: pcmk__attrd_api_update
      Src: /src/pacemaker/tools/attrd_updater.c:510,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/attrd_updater.c:523,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/attrd_updater.c:524,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 7
    argNames:
    - command
    - attr_node
    - attr_name
    - attr_value
    - attr_set
    - attr_dampen
    - attr_options
    argTypes:
    - char
    - char*
    - char*
    - char*
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 528
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 528
    functionName: send_attrd_update
    functionSourceFile: /src/pacemaker/tools/attrd_updater.c
    functionUses: []
    functionsReached:
    - pcmk__attrd_api_refresh
    - pcmk__attrd_api_delete
    - g_set_error
    - pcmk__attrd_api_update
    - pcmk_rc_str
    linkageType: ''
    returnType: int
    signature: 'static int send_attrd_update(char command, const char *attr_node,
      const char *attr_name, const char *attr_value, const char *attr_set, const char
      *attr_dampen, uint32_t attr_options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - out
    - reply
    argTypes:
    - pcmk__output_t*
    - GList*
    constantsTouched: []
    func_position:
      end: 408
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 408
    functionName: print_attrd_values
    functionSourceFile: /src/pacemaker/tools/attrd_updater.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void print_attrd_values(pcmk__output_t *out, const GList *reply) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: print_attrd_values
      Src: /src/pacemaker/tools/attrd_updater.c:423,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 5
    argNames:
    - attrd_api
    - event_type
    - status
    - event_data
    - user_data
    argTypes:
    - pcmk_ipc_api_t*
    - enum pcmk_ipc_event
    - crm_exit_t
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 425
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 425
    functionName: attrd_event_cb
    functionSourceFile: /src/pacemaker/tools/attrd_updater.c
    functionUses: []
    functionsReached:
    - print_attrd_values
    linkageType: ''
    returnType: void
    signature: 'static void attrd_event_cb(pcmk_ipc_api_t *attrd_api, enum pcmk_ipc_event
      event_type, crm_exit_t status, void *event_data, void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon_curses.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - out
    - extended
    argTypes:
    - pcmk__output_t*
    - bool
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: curses_ver
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'static void curses_ver(pcmk__output_t *out, bool extended) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon_curses.c:300,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/tools/crm_mon_curses.c:317,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon_curses.c:314,1
    - Dst: echo
      Src: /src/pacemaker/tools/crm_mon_curses.c:307,1
    - Dst: printw
      Src: /src/pacemaker/tools/crm_mon_curses.c:311,1
    - Dst: scanw
      Src: /src/pacemaker/tools/crm_mon_curses.c:322,1
    - Dst: addch
      Src: /src/pacemaker/tools/crm_mon_curses.c:323,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon_curses.c:327,1
    - Dst: noecho
      Src: /src/pacemaker/tools/crm_mon_curses.c:332,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - prompt
    - do_echo
    - dest
    argTypes:
    - char*
    - bool
    - char**
    constantsTouched: []
    func_position:
      end: 334
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 334
    functionName: curses_prompt
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - echo
    - noecho
    - scanw
    - pcmk__assert_alloc
    - addch
    - printw
    - free
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'static void curses_prompt(const char *prompt, bool do_echo, char **dest) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon_curses.c:40,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon_curses.c:41,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon_curses.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: free_list_data
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void free_list_data(gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon_curses.c:135,1
    - Dst: va_end
      Src: /src/pacemaker/tools/crm_mon_curses.c:142,1
    - Dst: va_start
      Src: /src/pacemaker/tools/crm_mon_curses.c:140,1
    - Dst: vw_printw
      Src: /src/pacemaker/tools/crm_mon_curses.c:141,1
    - Dst: addch
      Src: /src/pacemaker/tools/crm_mon_curses.c:145,1
    - Dst: clrtoeol
      Src: /src/pacemaker/tools/crm_mon_curses.c:147,1
    - Dst: refresh
      Src: /src/pacemaker/tools/crm_mon_curses.c:148,1
    - Dst: sleep
      Src: /src/pacemaker/tools/crm_mon_curses.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 150
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 150
    functionName: curses_error
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - sleep
    - refresh
    - addch
    - va_end
    - clrtoeol
    - va_start
    - pcmk__assert
    - vw_printw
    linkageType: ''
    returnType: void
    signature: 'static void curses_error(pcmk__output_t *out, const char *format,
      ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon_curses.c:157,1
    - Dst: va_end
      Src: /src/pacemaker/tools/crm_mon_curses.c:168,1
    - Dst: va_start
      Src: /src/pacemaker/tools/crm_mon_curses.c:166,1
    - Dst: vw_printw
      Src: /src/pacemaker/tools/crm_mon_curses.c:167,1
    - Dst: addch
      Src: /src/pacemaker/tools/crm_mon_curses.c:171,1
    - Dst: clrtoeol
      Src: /src/pacemaker/tools/crm_mon_curses.c:173,1
    - Dst: refresh
      Src: /src/pacemaker/tools/crm_mon_curses.c:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 176
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 176
    functionName: curses_info
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - refresh
    - addch
    - va_end
    - clrtoeol
    - va_start
    - pcmk__assert
    - vw_printw
    linkageType: ''
    returnType: int
    signature: 'static int curses_info(pcmk__output_t *out, const char *format, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/tools/crm_mon_curses.c:338,1
    - Dst: pcmk__quote_cmdline
      Src: /src/pacemaker/tools/crm_mon_curses.c:345,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 373
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 373
    functionName: crm_mon_mk_curses_output
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - calloc
    - pcmk__quote_cmdline
    linkageType: ''
    returnType: pcmk__output_t*
    signature: 'pcmk__output_t *crm_mon_mk_curses_output(char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vw_printw
      Src: /src/pacemaker/tools/crm_mon_curses.c:378,1
    - Dst: refresh
      Src: /src/pacemaker/tools/crm_mon_curses.c:381,1
    - Dst: clrtoeol
      Src: /src/pacemaker/tools/crm_mon_curses.c:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - out
    - format
    - args
    argTypes:
    - pcmk__output_t*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 382
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 382
    functionName: curses_formatted_vprintf
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - clrtoeol
    - refresh
    - vw_printw
    linkageType: ''
    returnType: void
    signature: 'void curses_formatted_vprintf(pcmk__output_t *out, const char *format,
      va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/pacemaker/tools/crm_mon_curses.c:422,1
    - Dst: curses_indented_vprintf
      Src: /src/pacemaker/tools/crm_mon_curses.c:423,1
    - Dst: va_end
      Src: /src/pacemaker/tools/crm_mon_curses.c:424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 425
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 425
    functionName: curses_indented_printf
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - curses_indented_vprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: 'void curses_indented_printf(pcmk__output_t *out, const char *format,
      ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon_curses.c:107,1
    - Dst: printw
      Src: /src/pacemaker/tools/crm_mon_curses.c:114,1
    - Dst: printw
      Src: /src/pacemaker/tools/crm_mon_curses.c:110,1
    - Dst: clrtoeol
      Src: /src/pacemaker/tools/crm_mon_curses.c:117,1
    - Dst: refresh
      Src: /src/pacemaker/tools/crm_mon_curses.c:118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - out
    - exit_status
    - proc_stdout
    - proc_stderr
    argTypes:
    - pcmk__output_t*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 119
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 119
    functionName: curses_subprocess_output
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - printw
    - refresh
    - clrtoeol
    linkageType: ''
    returnType: void
    signature: 'static void curses_subprocess_output(pcmk__output_t *out, int exit_status,
      const char *proc_stdout, const char *proc_stderr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_queue_free_full
      Src: /src/pacemaker/tools/crm_mon_curses.c:55,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_mon_curses.c:56,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: curses_free_priv
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - free
    - g_queue_free_full
    linkageType: ''
    returnType: void
    signature: 'static void curses_free_priv(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon_curses.c:89,1
    - Dst: nocbreak
      Src: /src/pacemaker/tools/crm_mon_curses.c:92,1
    - Dst: endwin
      Src: /src/pacemaker/tools/crm_mon_curses.c:93,1
    - Dst: echo
      Src: /src/pacemaker/tools/crm_mon_curses.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - out
    - exit_status
    - print
    - copy_dest
    argTypes:
    - pcmk__output_t*
    - crm_exit_t
    - bool
    - void**
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: curses_finish
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - endwin
    - nocbreak
    - echo
    linkageType: ''
    returnType: void
    signature: 'static void curses_finish(pcmk__output_t *out, crm_exit_t exit_status,
      bool print, void **copy_dest) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon_curses.c:180,1
    - Dst: curses_indented_printf
      Src: /src/pacemaker/tools/crm_mon_curses.c:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - out
    - name
    - buf
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: curses_output_xml
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - curses_indented_printf
    linkageType: ''
    returnType: void
    signature: 'static void curses_output_xml(pcmk__output_t *out, const char *name,
      const char *buf) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon_curses.c:280,1
    - Dst: addch
      Src: /src/pacemaker/tools/crm_mon_curses.c:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: curses_spacer
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - addch
    linkageType: ''
    returnType: void
    signature: 'static void curses_spacer(pcmk__output_t *out) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon_curses.c:64,1
    - Dst: g_queue_new
      Src: /src/pacemaker/tools/crm_mon_curses.c:78,1
    - Dst: cbreak
      Src: /src/pacemaker/tools/crm_mon_curses.c:81,1
    - Dst: initscr
      Src: /src/pacemaker/tools/crm_mon_curses.c:80,1
    - Dst: calloc
      Src: /src/pacemaker/tools/crm_mon_curses.c:70,1
    - Dst: noecho
      Src: /src/pacemaker/tools/crm_mon_curses.c:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 85
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 85
    functionName: curses_init
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - noecho
    - calloc
    - cbreak
    - initscr
    - g_queue_new
    - pcmk__assert
    linkageType: ''
    returnType: bool
    signature: 'static bool curses_init(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon_curses.c:98,1
    - Dst: curses_free_priv
      Src: /src/pacemaker/tools/crm_mon_curses.c:100,1
    - Dst: curses_init
      Src: /src/pacemaker/tools/crm_mon_curses.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: curses_reset
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - curses_free_priv
    - curses_init
    linkageType: ''
    returnType: void
    signature: 'static void curses_reset(pcmk__output_t *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon_curses.c:286,1
    - Dst: addch
      Src: /src/pacemaker/tools/crm_mon_curses.c:291,1
    - Dst: printw
      Src: /src/pacemaker/tools/crm_mon_curses.c:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - out
    - end
    argTypes:
    - pcmk__output_t*
    - bool
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: curses_progress
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - printw
    - addch
    linkageType: ''
    returnType: void
    signature: 'static void curses_progress(pcmk__output_t *out, bool end) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_mon_curses.c:430,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_mon_curses.c:436,1
    - Dst: curses_formatted_printf
      Src: /src/pacemaker/tools/crm_mon_curses.c:433,1
    - Dst: curses_formatted_printf
      Src: /src/pacemaker/tools/crm_mon_curses.c:434,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_mon_curses.c:432,1
    - Dst: curses_formatted_printf
      Src: /src/pacemaker/tools/crm_mon_curses.c:437,1
    - Dst: curses_formatted_printf
      Src: /src/pacemaker/tools/crm_mon_curses.c:438,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 443
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 443
    functionName: cluster_maint_mode_console
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk_is_set
    - curses_formatted_printf
    linkageType: ''
    returnType: int
    signature: 'static int cluster_maint_mode_console(pcmk__output_t *out, va_list
      args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon_curses.c:192,1
    - Dst: printw
      Src: /src/pacemaker/tools/crm_mon_curses.c:203,1
    - Dst: va_start
      Src: /src/pacemaker/tools/crm_mon_curses.c:200,1
    - Dst: curses_indented_vprintf
      Src: /src/pacemaker/tools/crm_mon_curses.c:202,1
    - Dst: va_end
      Src: /src/pacemaker/tools/crm_mon_curses.c:205,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/tools/crm_mon_curses.c:208,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/tools/crm_mon_curses.c:210,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/tools/crm_mon_curses.c:211,1
    - Dst: g_queue_push_tail
      Src: /src/pacemaker/tools/crm_mon_curses.c:213,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - out
    - singular_noun
    - plural_noun
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 214
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 214
    functionName: curses_begin_list
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - g_queue_push_tail
    - pcmk__assert_alloc
    - va_end
    - pcmk__str_copy
    - printw
    - va_start
    - pcmk__assert
    - curses_indented_vprintf
    linkageType: ''
    returnType: void
    signature: 'static void curses_begin_list(pcmk__output_t *out, const char *singular_noun,
      const char *plural_noun, const char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/pacemaker/tools/crm_mon_curses.c:389,1
    - Dst: va_end
      Src: /src/pacemaker/tools/crm_mon_curses.c:391,1
    - Dst: curses_formatted_vprintf
      Src: /src/pacemaker/tools/crm_mon_curses.c:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 392
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 392
    functionName: curses_formatted_printf
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - curses_formatted_vprintf
    linkageType: ''
    returnType: void
    signature: 'void curses_formatted_printf(pcmk__output_t *out, const char *format,
      ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon_curses.c:400,1
    - Dst: curses_formatted_vprintf
      Src: /src/pacemaker/tools/crm_mon_curses.c:414,1
    - Dst: printw
      Src: /src/pacemaker/tools/crm_mon_curses.c:407,1
    - Dst: g_queue_get_length
      Src: /src/pacemaker/tools/crm_mon_curses.c:404,1
    - Dst: printw
      Src: /src/pacemaker/tools/crm_mon_curses.c:411,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - out
    - format
    - args
    argTypes:
    - pcmk__output_t*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 415
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 415
    functionName: curses_indented_vprintf
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - printw
    - g_queue_get_length
    - curses_formatted_vprintf
    linkageType: ''
    returnType: void
    signature: 'void curses_indented_vprintf(pcmk__output_t *out, const char *format,
      va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon_curses.c:221,1
    - Dst: curses_indented_vprintf
      Src: /src/pacemaker/tools/crm_mon_curses.c:229,1
    - Dst: vw_printw
      Src: /src/pacemaker/tools/crm_mon_curses.c:227,1
    - Dst: curses_indented_printf
      Src: /src/pacemaker/tools/crm_mon_curses.c:226,1
    - Dst: va_start
      Src: /src/pacemaker/tools/crm_mon_curses.c:223,1
    - Dst: addch
      Src: /src/pacemaker/tools/crm_mon_curses.c:232,1
    - Dst: va_end
      Src: /src/pacemaker/tools/crm_mon_curses.c:233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - out
    - id
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 236
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 236
    functionName: curses_list_item
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - addch
    - va_end
    - va_start
    - pcmk__assert
    - curses_indented_printf
    - curses_indented_vprintf
    - vw_printw
    linkageType: ''
    returnType: void
    signature: 'static void curses_list_item(pcmk__output_t *out, const char *id,
      const char *format, ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon_curses.c:256,1
    - Dst: free_list_data
      Src: /src/pacemaker/tools/crm_mon_curses.c:269,1
    - Dst: curses_indented_printf
      Src: /src/pacemaker/tools/crm_mon_curses.c:265,1
    - Dst: curses_indented_printf
      Src: /src/pacemaker/tools/crm_mon_curses.c:263,1
    - Dst: g_queue_pop_tail
      Src: /src/pacemaker/tools/crm_mon_curses.c:259,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 270
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 270
    functionName: curses_end_list
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - curses_indented_printf
    - free_list_data
    - g_queue_pop_tail
    linkageType: ''
    returnType: void
    signature: 'static void curses_end_list(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon_curses.c:243,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon_curses.c:247,1
    - Dst: g_queue_peek_tail
      Src: /src/pacemaker/tools/crm_mon_curses.c:246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 249
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 249
    functionName: curses_increment_list
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_queue_peek_tail
    linkageType: ''
    returnType: void
    signature: 'static void curses_increment_list(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_mon_curses.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: curses_is_quiet
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    linkageType: ''
    returnType: bool
    signature: 'static bool curses_is_quiet(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/pacemaker/tools/crm_mon_curses.c:453,1
    - Dst: pcmk__cluster_status_text
      Src: /src/pacemaker/tools/crm_mon_curses.c:454,1
    - Dst: refresh
      Src: /src/pacemaker/tools/crm_mon_curses.c:455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 457
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 457
    functionName: cluster_status_console
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - pcmk__cluster_status_text
    - refresh
    - clear
    linkageType: ''
    returnType: int
    signature: 'static int cluster_status_console(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_mon_curses.c:464,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_mon_curses.c:467,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_mon_curses.c:465,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_mon_curses.c:468,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_mon_curses.c:466,1
    - Dst: stonith__history_description
      Src: /src/pacemaker/tools/crm_mon_curses.c:470,1
    - Dst: curses_indented_printf
      Src: /src/pacemaker/tools/crm_mon_curses.c:474,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_mon_curses.c:475,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 477
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 477
    functionName: stonith_event_console
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - va_arg
    - stonith__history_description
    - g_free
    - curses_indented_printf
    linkageType: ''
    returnType: int
    signature: 'static int stonith_event_console(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/tools/crm_mon_curses.c:492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 494
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 494
    functionName: crm_mon_register_messages
    functionSourceFile: /src/pacemaker/tools/crm_mon_curses.c
    functionUses: []
    functionsReached:
    - pcmk__register_messages
    linkageType: ''
    returnType: void
    signature: 'void crm_mon_register_messages(pcmk__output_t *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_ticket.c:73,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_ticket.c:80,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_ticket.c:81,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/tools/crm_ticket.c:79,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 86
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 86
    functionName: attr_value_cb
    functionSourceFile: /src/pacemaker/tools/crm_ticket.c
    functionUses: []
    functionsReached:
    - pcmk__insert_dup
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean attr_value_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_ticket.c:123,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/tools/crm_ticket.c:124,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/tools/crm_ticket.c:127,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_ticket.c:126,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_ticket.c:129,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/tools/crm_ticket.c:130,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_ticket.c:132,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/tools/crm_ticket.c:133,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 138
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 138
    functionName: grant_standby_cb
    functionSourceFile: /src/pacemaker/tools/crm_ticket.c
    functionUses: []
    functionsReached:
    - pcmk__insert_dup
    - pcmk__str_any_of
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean grant_standby_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/tools/crm_ticket.c:109,1
    - Dst: strdup
      Src: /src/pacemaker/tools/crm_ticket.c:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: delete_attr_cb
    functionSourceFile: /src/pacemaker/tools/crm_ticket.c
    functionUses: []
    functionsReached:
    - strdup
    - g_list_append
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean delete_attr_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ticket_id
    argTypes:
    - gchar*
    constantsTouched: []
    func_position:
      end: 288
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 288
    functionName: ticket_revoke_warning
    functionSourceFile: /src/pacemaker/tools/crm_ticket.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void ticket_revoke_warning(gchar *ticket_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_ticket.c:116,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: get_attr_cb
    functionSourceFile: /src/pacemaker/tools/crm_ticket.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean get_attr_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_ticket.c:90,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_ticket.c:98,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_ticket.c:92,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_ticket.c:94,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_ticket.c:96,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_ticket.c:100,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 105
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 105
    functionName: command_cb
    functionSourceFile: /src/pacemaker/tools/crm_ticket.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean command_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **err) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_ticket.c:142,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/tools/crm_ticket.c:148,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_ticket.c:149,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_ticket.c:150,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 155
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 155
    functionName: set_attr_cb
    functionSourceFile: /src/pacemaker/tools/crm_ticket.c
    functionUses: []
    functionsReached:
    - pcmk__insert_dup
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean set_attr_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ticket_id
    argTypes:
    - gchar*
    constantsTouched: []
    func_position:
      end: 271
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 271
    functionName: ticket_grant_warning
    functionSourceFile: /src/pacemaker/tools/crm_ticket.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void ticket_grant_warning(gchar *ticket_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/tools/crm_ticket.c:324,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_ticket.c:329,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_ticket.c:331,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_ticket.c:327,1
    - Dst: g_option_context_set_description
      Src: /src/pacemaker/tools/crm_ticket.c:325,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_ticket.c:333,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_ticket.c:335,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 339
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 339
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/tools/crm_ticket.c
    functionUses: []
    functionsReached:
    - pcmk__add_arg_group
    - g_option_context_set_description
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_read
      Src: /src/pacemaker/tools/crm_ticket.c:416,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_ticket.c:474,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_ticket.c:512,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_ticket.c:530,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:505,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/tools/crm_ticket.c:646,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/tools/crm_ticket.c:663,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/tools/crm_ticket.c:359,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_ticket.c:376,1
    - Dst: ticket_revoke_warning
      Src: /src/pacemaker/tools/crm_ticket.c:563,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/tools/crm_ticket.c:636,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_ticket.c:483,1
    - Dst: crm_is_true
      Src: /src/pacemaker/tools/crm_ticket.c:577,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_ticket.c:411,1
    - Dst: cluster_status
      Src: /src/pacemaker/tools/crm_ticket.c:442,1
    - Dst: pcmk__ticket_remove_attr
      Src: /src/pacemaker/tools/crm_ticket.c:559,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:553,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:529,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:605,1
    - Dst: ticket_grant_warning
      Src: /src/pacemaker/tools/crm_ticket.c:578,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_ticket.c:500,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:425,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/tools/crm_ticket.c:361,1
    - Dst: pe__register_messages
      Src: /src/pacemaker/tools/crm_ticket.c:380,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:392,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_ticket.c:421,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:466,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/tools/crm_ticket.c:631,1
    - Dst: build_arg_context
      Src: /src/pacemaker/tools/crm_ticket.c:360,1
    - Dst: cib_new
      Src: /src/pacemaker/tools/crm_ticket.c:398,1
    - Dst: pcmk__unpack_constraints
      Src: /src/pacemaker/tools/crm_ticket.c:447,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:584,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_ticket.c:460,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:565,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/tools/crm_ticket.c:551,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_ticket.c:590,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/tools/crm_ticket.c:602,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_ticket.c:649,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/tools/crm_ticket.c:356,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/tools/crm_ticket.c:364,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_ticket.c:409,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:434,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:486,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/tools/crm_ticket.c:616,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_ticket.c:647,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/tools/crm_ticket.c:660,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_ticket.c:653,1
    - Dst: crm_time_new
      Src: /src/pacemaker/tools/crm_ticket.c:440,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:463,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:537,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_ticket.c:406,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_ticket.c:426,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/tools/crm_ticket.c:643,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_ticket.c:393,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/tools/crm_ticket.c:396,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_ticket.c:467,1
    - Dst: pcmk__ticket_delete
      Src: /src/pacemaker/tools/crm_ticket.c:510,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:475,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_ticket.c:373,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:618,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:625,1
    - Dst: pcmk__ticket_state
      Src: /src/pacemaker/tools/crm_ticket.c:471,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:545,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:593,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/tools/crm_ticket.c:371,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:401,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/tools/crm_ticket.c:576,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_ticket.c:487,1
    - Dst: ticket_revoke_warning
      Src: /src/pacemaker/tools/crm_ticket.c:580,1
    - Dst: pcmk__ticket_get_attr
      Src: /src/pacemaker/tools/crm_ticket.c:498,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_ticket.c:424,1
    - Dst: crm_exit
      Src: /src/pacemaker/tools/crm_ticket.c:664,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/tools/crm_ticket.c:363,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_ticket.c:433,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_ticket.c:476,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/tools/crm_ticket.c:656,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_ticket.c:651,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/tools/crm_ticket.c:369,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:374,1
    - Dst: pcmk__ticket_info
      Src: /src/pacemaker/tools/crm_ticket.c:459,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/tools/crm_ticket.c:543,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:516,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:611,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/crm_ticket.c:645,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_ticket.c:648,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_ticket.c:650,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_ticket.c:652,1
    - Dst: pcmk__ticket_set_attr
      Src: /src/pacemaker/tools/crm_ticket.c:570,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:410,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_ticket.c:493,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_ticket.c:594,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_ticket.c:654,1
    - Dst: ticket_revoke_warning
      Src: /src/pacemaker/tools/crm_ticket.c:521,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/tools/crm_ticket.c:381,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_ticket.c:391,1
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/tools/crm_ticket.c:388,1
    - Dst: cib__signon_attempts
      Src: /src/pacemaker/tools/crm_ticket.c:405,1
    - Dst: pcmk__update_configured_schema
      Src: /src/pacemaker/tools/crm_ticket.c:431,1
    - Dst: pcmk__ticket_constraints
      Src: /src/pacemaker/tools/crm_ticket.c:482,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/tools/crm_ticket.c:640,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 242
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 665
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 665
    functionName: main
    functionSourceFile: /src/pacemaker/tools/crm_ticket.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - pcmk__register_formats
    - pcmk__str_empty
    - crm_exit
    - g_hash_table_destroy
    - pe__register_messages
    - g_list_free_full
    - pcmk__set_scheduler_flags
    - pcmk__ticket_remove_attr
    - free
    - cib__signon_attempts
    - cluster_status
    - pcmk_legacy2rc
    - pcmk__cli_init_logging
    - build_arg_context
    - crm_is_true
    - g_hash_table_lookup
    - pcmk__ticket_constraints
    - ticket_revoke_warning
    - ticket_grant_warning
    - pcmk_free_scheduler
    - pcmk__ticket_delete
    - pcmk_rc_str
    - g_free
    - pcmk__cmdline_preproc
    - cib__clean_up_connection
    - pcmk__update_configured_schema
    - pcmk__free_arg_context
    - pcmk__unregister_formats
    - pcmk__output_and_clear_error
    - pcmk__ticket_info
    - pcmk__ticket_get_attr
    - pcmk__xml_read
    - crm_time_new
    - pcmk_new_scheduler
    - pcmk__unpack_constraints
    - pcmk__output_new
    - g_strfreev
    - pcmk_rc2exitc
    - pcmk__strkey_table
    - g_set_error
    - cib_new
    - pcmk__output_free
    - pcmk__new_common_args
    - pcmk__ticket_state
    - pcmk__register_lib_messages
    - pcmk__ticket_set_attr
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/iso8601.c:37,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/iso8601.c:40,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/iso8601.c:38,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/iso8601.c:39,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: date_now_cb
    functionSourceFile: /src/pacemaker/tools/iso8601.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean date_now_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/tools/iso8601.c:285,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/iso8601.c:290,1
    - Dst: g_option_context_set_description
      Src: /src/pacemaker/tools/iso8601.c:286,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/iso8601.c:288,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 294
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 294
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/tools/iso8601.c
    functionUses: []
    functionsReached:
    - pcmk__add_arg_group
    - g_option_context_set_description
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/iso8601.c:118,1
    - Dst: crm_time_as_string
      Src: /src/pacemaker/tools/iso8601.c:125,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/iso8601.c:120,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/iso8601.c:119,1
    - Dst: free
      Src: /src/pacemaker/tools/iso8601.c:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: date_default
    functionSourceFile: /src/pacemaker/tools/iso8601.c
    functionUses: []
    functionsReached:
    - va_arg
    - free
    - crm_time_as_string
    linkageType: ''
    returnType: int
    signature: 'static int date_default(pcmk__output_t *out, va_list args) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/iso8601.c:48,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/iso8601.c:50,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/iso8601.c:52,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/iso8601.c:54,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/iso8601.c:56,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: modifier_cb
    functionSourceFile: /src/pacemaker/tools/iso8601.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean modifier_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/iso8601.c:137,1
    - Dst: crm_time_as_string
      Src: /src/pacemaker/tools/iso8601.c:144,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/tools/iso8601.c:146,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/iso8601.c:139,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/iso8601.c:138,1
    - Dst: free
      Src: /src/pacemaker/tools/iso8601.c:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: date_xml
    functionSourceFile: /src/pacemaker/tools/iso8601.c
    functionUses: []
    functionsReached:
    - va_arg
    - free
    - crm_time_as_string
    - pcmk__output_create_xml_text_node
    linkageType: ''
    returnType: int
    signature: 'static int date_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/iso8601.c:155,1
    - Dst: free
      Src: /src/pacemaker/tools/iso8601.c:162,1
    - Dst: crm_time_as_string
      Src: /src/pacemaker/tools/iso8601.c:158,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/iso8601.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 164
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 164
    functionName: duration_default
    functionSourceFile: /src/pacemaker/tools/iso8601.c
    functionUses: []
    functionsReached:
    - va_arg
    - free
    - crm_time_as_string
    linkageType: ''
    returnType: int
    signature: 'static int duration_default(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/iso8601.c:170,1
    - Dst: crm_time_as_string
      Src: /src/pacemaker/tools/iso8601.c:173,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/iso8601.c:171,1
    - Dst: free
      Src: /src/pacemaker/tools/iso8601.c:176,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/tools/iso8601.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 178
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 178
    functionName: duration_xml
    functionSourceFile: /src/pacemaker/tools/iso8601.c
    functionUses: []
    functionsReached:
    - va_arg
    - free
    - crm_time_as_string
    - pcmk__output_create_xml_text_node
    linkageType: ''
    returnType: int
    signature: 'static int duration_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/iso8601.c:184,1
    - Dst: crm_time_as_string
      Src: /src/pacemaker/tools/iso8601.c:190,1
    - Dst: free
      Src: /src/pacemaker/tools/iso8601.c:194,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/iso8601.c:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 196
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 196
    functionName: duration_ends_default
    functionSourceFile: /src/pacemaker/tools/iso8601.c
    functionUses: []
    functionsReached:
    - va_arg
    - free
    - crm_time_as_string
    linkageType: ''
    returnType: int
    signature: 'static int duration_ends_default(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/iso8601.c:202,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/tools/iso8601.c:210,1
    - Dst: free
      Src: /src/pacemaker/tools/iso8601.c:211,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/iso8601.c:203,1
    - Dst: crm_time_as_string
      Src: /src/pacemaker/tools/iso8601.c:208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 213
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 213
    functionName: duration_ends_xml
    functionSourceFile: /src/pacemaker/tools/iso8601.c
    functionUses: []
    functionsReached:
    - va_arg
    - free
    - crm_time_as_string
    - pcmk__output_create_xml_text_node
    linkageType: ''
    returnType: int
    signature: 'static int duration_ends_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/iso8601.c:219,1
    - Dst: free
      Src: /src/pacemaker/tools/iso8601.c:234,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/iso8601.c:220,1
    - Dst: crm_time_as_string
      Src: /src/pacemaker/tools/iso8601.c:227,1
    - Dst: crm_time_as_string
      Src: /src/pacemaker/tools/iso8601.c:232,1
    - Dst: free
      Src: /src/pacemaker/tools/iso8601.c:240,1
    - Dst: free
      Src: /src/pacemaker/tools/iso8601.c:241,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 243
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 243
    functionName: period_default
    functionSourceFile: /src/pacemaker/tools/iso8601.c
    functionUses: []
    functionsReached:
    - va_arg
    - free
    - crm_time_as_string
    linkageType: ''
    returnType: int
    signature: 'static int period_default(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/iso8601.c:249,1
    - Dst: free
      Src: /src/pacemaker/tools/iso8601.c:264,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/iso8601.c:250,1
    - Dst: crm_time_as_string
      Src: /src/pacemaker/tools/iso8601.c:257,1
    - Dst: crm_time_as_string
      Src: /src/pacemaker/tools/iso8601.c:262,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/tools/iso8601.c:268,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/tools/iso8601.c:269,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/tools/iso8601.c:270,1
    - Dst: free
      Src: /src/pacemaker/tools/iso8601.c:272,1
    - Dst: free
      Src: /src/pacemaker/tools/iso8601.c:273,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 275
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 275
    functionName: period_xml
    functionSourceFile: /src/pacemaker/tools/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_as_string
    - pcmk__output_create_xml_text_node
    - va_arg
    - free
    - pcmk__output_xml_create_parent
    linkageType: ''
    returnType: int
    signature: 'static int period_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/tools/iso8601.c:326,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/tools/iso8601.c:333,1
    - Dst: crm_time_new
      Src: /src/pacemaker/tools/iso8601.c:350,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/iso8601.c:367,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/iso8601.c:380,1
    - Dst: crm_time_parse_period
      Src: /src/pacemaker/tools/iso8601.c:389,1
    - Dst: free
      Src: /src/pacemaker/tools/iso8601.c:423,1
    - Dst: crm_time_as_string
      Src: /src/pacemaker/tools/iso8601.c:428,1
    - Dst: free
      Src: /src/pacemaker/tools/iso8601.c:435,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/iso8601.c:442,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/tools/iso8601.c:454,1
    - Dst: crm_time_free
      Src: /src/pacemaker/tools/iso8601.c:440,1
    - Dst: build_arg_context
      Src: /src/pacemaker/tools/iso8601.c:322,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/tools/iso8601.c:331,1
    - Dst: crm_time_as_string
      Src: /src/pacemaker/tools/iso8601.c:416,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/iso8601.c:419,1
    - Dst: crm_time_free
      Src: /src/pacemaker/tools/iso8601.c:425,1
    - Dst: crm_time_free
      Src: /src/pacemaker/tools/iso8601.c:439,1
    - Dst: crm_exit
      Src: /src/pacemaker/tools/iso8601.c:458,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/tools/iso8601.c:323,1
    - Dst: crm_time_new
      Src: /src/pacemaker/tools/iso8601.c:363,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/iso8601.c:354,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/tools/iso8601.c:376,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/iso8601.c:393,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/iso8601.c:431,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/tools/iso8601.c:443,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/tools/iso8601.c:450,1
    - Dst: free
      Src: /src/pacemaker/tools/iso8601.c:445,1
    - Dst: crm_time_add
      Src: /src/pacemaker/tools/iso8601.c:403,1
    - Dst: g_free
      Src: /src/pacemaker/tools/iso8601.c:447,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/iso8601.c:407,1
    - Dst: g_free
      Src: /src/pacemaker/tools/iso8601.c:446,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/tools/iso8601.c:457,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/tools/iso8601.c:321,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/tools/iso8601.c:325,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/iso8601.c:335,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/iso8601.c:336,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/iso8601.c:338,1
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/tools/iso8601.c:347,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/iso8601.c:349,1
    - Dst: crm_time_free_period
      Src: /src/pacemaker/tools/iso8601.c:399,1
    - Dst: g_free
      Src: /src/pacemaker/tools/iso8601.c:448,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 97
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 459
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 459
    functionName: main
    functionSourceFile: /src/pacemaker/tools/iso8601.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - pcmk__register_formats
    - crm_exit
    - free
    - crm_time_free
    - pcmk__cli_init_logging
    - build_arg_context
    - crm_time_as_string
    - crm_time_parse_period
    - pcmk_rc_str
    - g_free
    - crm_time_add
    - pcmk__cmdline_preproc
    - crm_time_parse_duration
    - pcmk__register_messages
    - pcmk__unregister_formats
    - pcmk__output_and_clear_error
    - pcmk__str_eq
    - crm_time_new
    - pcmk__output_new
    - crm_time_free_period
    - g_strfreev
    - pcmk_rc2exitc
    - g_set_error
    - pcmk__output_free
    - pcmk__new_common_args
    - pcmk__free_arg_context
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_error.c:33,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_error.c:35,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 40
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 40
    functionName: result_type_cb
    functionSourceFile: /src/pacemaker/tools/crm_error.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean result_type_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/tools/crm_error.c:71,1
    - Dst: pcmk__add_main_args
      Src: /src/pacemaker/tools/crm_error.c:73,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/tools/crm_error.c
    functionUses: []
    functionsReached:
    - pcmk__add_main_args
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__output_new
      Src: /src/pacemaker/tools/crm_error.c:100,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_error.c:103,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_error.c:105,1
    - Dst: g_strv_length
      Src: /src/pacemaker/tools/crm_error.c:109,1
    - Dst: pcmk__list_result_codes
      Src: /src/pacemaker/tools/crm_error.c:130,1
    - Dst: pcmk__show_result_code
      Src: /src/pacemaker/tools/crm_error.c:158,1
    - Dst: pcmk__set_flags_as
      Src: /src/pacemaker/tools/crm_error.c:125,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/tools/crm_error.c:164,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/tools/crm_error.c:172,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/tools/crm_error.c:88,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/tools/crm_error.c:98,1
    - Dst: pcmk__set_flags_as
      Src: /src/pacemaker/tools/crm_error.c:144,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/crm_error.c:163,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/tools/crm_error.c:166,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/tools/crm_error.c:93,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/tools/crm_error.c:89,1
    - Dst: build_arg_context
      Src: /src/pacemaker/tools/crm_error.c:90,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_error.c:154,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/tools/crm_error.c:157,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/tools/crm_error.c:170,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/tools/crm_error.c:92,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/tools/crm_error.c:119,1
    - Dst: pcmk__set_flags_as
      Src: /src/pacemaker/tools/crm_error.c:137,1
    - Dst: crm_exit
      Src: /src/pacemaker/tools/crm_error.c:173,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 53
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 174
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 174
    functionName: main
    functionSourceFile: /src/pacemaker/tools/crm_error.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - pcmk__register_formats
    - crm_exit
    - pcmk__cli_init_logging
    - build_arg_context
    - pcmk_rc_str
    - pcmk__cmdline_preproc
    - g_strv_length
    - pcmk__set_flags_as
    - pcmk__unregister_formats
    - pcmk__output_and_clear_error
    - pcmk__str_eq
    - pcmk__show_result_code
    - pcmk__register_lib_messages
    - pcmk__scan_min_int
    - pcmk__output_new
    - g_strfreev
    - g_set_error
    - pcmk__output_free
    - pcmk__new_common_args
    - pcmk__list_result_codes
    - pcmk__free_arg_context
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_shadow_prompt
      Src: /src/pacemaker/tools/crm_shadow.c:578,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_shadow.c:581,1
    - Dst: execl
      Src: /src/pacemaker/tools/crm_shadow.c:595,1
    - Dst: getenv
      Src: /src/pacemaker/tools/crm_shadow.c:575,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_shadow.c:580,1
    - Dst: setenv
      Src: /src/pacemaker/tools/crm_shadow.c:588,1
    - Dst: setenv
      Src: /src/pacemaker/tools/crm_shadow.c:589,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_shadow.c:600,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_shadow.c:614,1
    - Dst: getenv
      Src: /src/pacemaker/tools/crm_shadow.c:576,1
    - Dst: getenv
      Src: /src/pacemaker/tools/crm_shadow.c:577,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_shadow.c:618,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_shadow.c:594,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_shadow.c:622,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_shadow.c:603,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_shadow.c:601,1
    - Dst: execl
      Src: /src/pacemaker/tools/crm_shadow.c:597,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 3
    argNames:
    - out
    - do_switch
    - error
    argTypes:
    - pcmk__output_t*
    - bool
    - GError**
    constantsTouched: []
    func_position:
      end: 623
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 623
    functionName: shadow_setup
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - setenv
    - crm_strdup_printf
    - pcmk_rc2exitc
    - pcmk__str_eq
    - get_shadow_prompt
    - g_set_error
    - execl
    - free
    - pcmk_rc_str
    - getenv
    linkageType: ''
    returnType: void
    signature: 'static void shadow_setup(pcmk__output_t *out, bool do_switch, GError
      **error) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_instance_from_env
      Src: /src/pacemaker/tools/crm_shadow.c:849,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_shadow.c:861,1
    - Dst: getenv
      Src: /src/pacemaker/tools/crm_shadow.c:858,1
    - Dst: get_shadow_file
      Src: /src/pacemaker/tools/crm_shadow.c:853,1
    - Dst: check_file_exists
      Src: /src/pacemaker/tools/crm_shadow.c:854,1
    - Dst: execlp
      Src: /src/pacemaker/tools/crm_shadow.c:866,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_shadow.c:868,1
    - Dst: strerror
      Src: /src/pacemaker/tools/crm_shadow.c:870,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_shadow.c:873,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    constantsTouched: []
    func_position:
      end: 874
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 874
    functionName: edit_shadow_file
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - check_file_exists
    - strerror
    - g_set_error
    - get_shadow_file
    - execlp
    - free
    - getenv
    - get_instance_from_env
    linkageType: ''
    returnType: void
    signature: 'static void edit_shadow_file(GError **error) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_instance_from_env
      Src: /src/pacemaker/tools/crm_shadow.c:888,1
    - Dst: get_shadow_file
      Src: /src/pacemaker/tools/crm_shadow.c:892,1
    - Dst: read_xml
      Src: /src/pacemaker/tools/crm_shadow.c:898,1
    - Dst: check_file_exists
      Src: /src/pacemaker/tools/crm_shadow.c:894,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_shadow.c:907,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_shadow.c:911,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 2
    argNames:
    - out
    - error
    argTypes:
    - pcmk__output_t*
    - GError**
    constantsTouched: []
    func_position:
      end: 912
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 912
    functionName: show_shadow_contents
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - read_xml
    - check_file_exists
    - get_shadow_file
    - pcmk__xml_free
    - free
    - get_instance_from_env
    linkageType: ''
    returnType: void
    signature: 'static void show_shadow_contents(pcmk__output_t *out, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/tools/crm_shadow.c:1163,1
    - Dst: g_option_context_set_description
      Src: /src/pacemaker/tools/crm_shadow.c:1165,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_shadow.c:1169,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_shadow.c:1167,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_shadow.c:1171,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 1174
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1174
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - pcmk__add_arg_group
    - g_option_context_set_description
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/tools/crm_shadow.c:1191,1
    - Dst: g_option_context_get_help
      Src: /src/pacemaker/tools/crm_shadow.c:1235,1
    - Dst: delete_shadow_file
      Src: /src/pacemaker/tools/crm_shadow.c:1266,1
    - Dst: show_shadow_contents
      Src: /src/pacemaker/tools/crm_shadow.c:1272,1
    - Dst: edit_shadow_file
      Src: /src/pacemaker/tools/crm_shadow.c:1275,1
    - Dst: switch_shadow_instance
      Src: /src/pacemaker/tools/crm_shadow.c:1281,1
    - Dst: show_shadow_instance
      Src: /src/pacemaker/tools/crm_shadow.c:1284,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/tools/crm_shadow.c:1293,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_shadow.c:1297,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_shadow.c:1298,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_shadow.c:1240,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_shadow.c:1221,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/tools/crm_shadow.c:1213,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_shadow.c:1238,1
    - Dst: commit_shadow_file
      Src: /src/pacemaker/tools/crm_shadow.c:1254,1
    - Dst: create_shadow_from_cib
      Src: /src/pacemaker/tools/crm_shadow.c:1257,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/tools/crm_shadow.c:1185,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/tools/crm_shadow.c:1193,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/tools/crm_shadow.c:1209,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/tools/crm_shadow.c:1244,1
    - Dst: create_shadow_from_cib
      Src: /src/pacemaker/tools/crm_shadow.c:1263,1
    - Dst: show_shadow_diff
      Src: /src/pacemaker/tools/crm_shadow.c:1269,1
    - Dst: show_shadow_filename
      Src: /src/pacemaker/tools/crm_shadow.c:1278,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/tools/crm_shadow.c:1302,1
    - Dst: crm_exit
      Src: /src/pacemaker/tools/crm_shadow.c:1305,1
    - Dst: cib__set_call_options
      Src: /src/pacemaker/tools/crm_shadow.c:1247,1
    - Dst: create_shadow_empty
      Src: /src/pacemaker/tools/crm_shadow.c:1260,1
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/tools/crm_shadow.c:1231,1
    - Dst: crm_log_preinit
      Src: /src/pacemaker/tools/crm_shadow.c:1189,1
    - Dst: build_arg_context
      Src: /src/pacemaker/tools/crm_shadow.c:1187,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/tools/crm_shadow.c:1186,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/tools/crm_shadow.c:1198,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_shadow.c:1201,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_shadow.c:1203,1
    - Dst: g_strv_length
      Src: /src/pacemaker/tools/crm_shadow.c:1207,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_shadow.c:1219,1
    - Dst: g_option_context_get_help
      Src: /src/pacemaker/tools/crm_shadow.c:1208,1
    - Dst: g_string_append
      Src: /src/pacemaker/tools/crm_shadow.c:1215,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/tools/crm_shadow.c:1295,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/crm_shadow.c:1292,1
    - Dst: g_string_free
      Src: /src/pacemaker/tools/crm_shadow.c:1222,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 67
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 1306
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1306
    functionName: main
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - pcmk__register_formats
    - crm_exit
    - switch_shadow_instance
    - free
    - g_string_free
    - show_shadow_filename
    - cib__set_call_options
    - pcmk__cli_init_logging
    - g_option_context_get_help
    - crm_log_preinit
    - build_arg_context
    - edit_shadow_file
    - delete_shadow_file
    - create_shadow_empty
    - show_shadow_diff
    - pcmk_rc_str
    - g_free
    - pcmk__cmdline_preproc
    - commit_shadow_file
    - g_strv_length
    - g_string_append_c
    - g_string_append
    - pcmk__register_messages
    - pcmk__output_and_clear_error
    - show_shadow_instance
    - g_string_sized_new
    - pcmk__output_new
    - g_strfreev
    - show_shadow_contents
    - g_set_error
    - pcmk__output_free
    - pcmk__new_common_args
    - pcmk__free_arg_context
    - create_shadow_from_cib
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/pacemaker/tools/crm_shadow.c:411,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_shadow.c:417,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_shadow.c:412,1
    - Dst: stat
      Src: /src/pacemaker/tools/crm_shadow.c:421,1
    - Dst: set_danger_error
      Src: /src/pacemaker/tools/crm_shadow.c:416,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_shadow.c:424,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_shadow.c:425,1
    - Dst: strerror
      Src: /src/pacemaker/tools/crm_shadow.c:427,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 3
    argNames:
    - filename
    - should_exist
    - error
    argTypes:
    - char*
    - bool
    - GError**
    constantsTouched: []
    func_position:
      end: 432
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 432
    functionName: check_file_exists
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - stat
    - pcmk_rc2exitc
    - set_danger_error
    - strerror
    - g_set_error
    - free
    linkageType: ''
    returnType: int
    signature: 'static int check_file_exists(const char *filename, bool should_exist,
      GError **error) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: connect_real_cib
      Src: /src/pacemaker/tools/crm_shadow.c:480,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_shadow.c:490,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_shadow.c:487,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_shadow.c:489,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_shadow.c:491,1
    - Dst: cib_delete
      Src: /src/pacemaker/tools/crm_shadow.c:495,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - output
    - error
    argTypes:
    - xmlNode**
    - GError**
    constantsTouched: []
    func_position:
      end: 497
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 497
    functionName: query_real_cib
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - g_set_error
    - cib_delete
    - pcmk_rc_str
    - connect_real_cib
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int query_real_cib(xmlNode **output, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_shadow.c:560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 561
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 561
    functionName: get_shadow_prompt
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'static inline char *get_shadow_prompt(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_danger_error
      Src: /src/pacemaker/tools/crm_shadow.c:818,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_shadow.c:825,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_shadow.c:826,1
    - Dst: unlink
      Src: /src/pacemaker/tools/crm_shadow.c:824,1
    - Dst: get_shadow_file
      Src: /src/pacemaker/tools/crm_shadow.c:822,1
    - Dst: strerror
      Src: /src/pacemaker/tools/crm_shadow.c:828,1
    - Dst: shadow_teardown
      Src: /src/pacemaker/tools/crm_shadow.c:830,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_shadow.c:832,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - out
    - error
    argTypes:
    - pcmk__output_t*
    - GError**
    constantsTouched: []
    func_position:
      end: 833
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 833
    functionName: delete_shadow_file
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - set_danger_error
    - strerror
    - g_set_error
    - unlink
    - get_shadow_file
    - free
    - shadow_teardown
    linkageType: ''
    returnType: void
    signature: 'static void delete_shadow_file(pcmk__output_t *out, GError **error) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/pacemaker/tools/crm_shadow.c:352,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_shadow.c:358,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_shadow.c:365,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_shadow.c:356,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_shadow.c:368,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_shadow.c:370,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 4
    argNames:
    - reason
    - for_shadow
    - show_mismatch
    - error
    argTypes:
    - char*
    - bool
    - bool
    - GError**
    constantsTouched: []
    func_position:
      end: 371
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 371
    functionName: set_danger_error
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - crm_strdup_printf
    - pcmk__str_eq
    - g_set_error
    - free
    - getenv
    linkageType: ''
    returnType: void
    signature: 'static void set_danger_error(const char *reason, bool for_shadow,
      bool show_mismatch, GError **error) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_write_file
      Src: /src/pacemaker/tools/crm_shadow.c:537,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_shadow.c:540,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_shadow.c:541,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_shadow.c:544,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 4
    argNames:
    - xml
    - filename
    - reset
    - error
    argTypes:
    - xmlNode*
    - char*
    - bool
    - GError**
    constantsTouched: []
    func_position:
      end: 547
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 547
    functionName: write_shadow_file
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - pcmk__xml_write_file
    - pcmk_rc_str
    - g_set_error
    linkageType: ''
    returnType: int
    signature: 'static int write_shadow_file(const xmlNode *xml, const char *filename,
      bool reset, GError **error) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_shadow_file
      Src: /src/pacemaker/tools/crm_shadow.c:731,1
    - Dst: check_file_exists
      Src: /src/pacemaker/tools/crm_shadow.c:735,1
    - Dst: createEmptyCib
      Src: /src/pacemaker/tools/crm_shadow.c:739,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_shadow.c:740,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_shadow.c:742,1
    - Dst: write_shadow_file
      Src: /src/pacemaker/tools/crm_shadow.c:744,1
    - Dst: shadow_setup
      Src: /src/pacemaker/tools/crm_shadow.c:747,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_shadow.c:750,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_shadow.c:751,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 2
    argNames:
    - out
    - error
    argTypes:
    - pcmk__output_t*
    - GError**
    constantsTouched: []
    func_position:
      end: 752
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 752
    functionName: create_shadow_empty
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - shadow_setup
    - createEmptyCib
    - crm_xml_add
    - check_file_exists
    - get_shadow_file
    - free
    - pcmk__xml_free
    - write_shadow_file
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void create_shadow_empty(pcmk__output_t *out, GError **error) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_instance_from_env
      Src: /src/pacemaker/tools/crm_shadow.c:1005,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - out
    - error
    argTypes:
    - pcmk__output_t*
    - GError**
    constantsTouched: []
    func_position:
      end: 1013
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1013
    functionName: show_shadow_instance
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - get_instance_from_env
    linkageType: ''
    returnType: void
    signature: 'static void show_shadow_instance(pcmk__output_t *out, GError **error) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_shadow.c:152,1
    - Dst: g_string_free
      Src: /src/pacemaker/tools/crm_shadow.c:176,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_shadow.c:155,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_shadow.c:160,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_shadow.c:164,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_shadow.c:166,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_shadow.c:181,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_shadow.c:187,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_shadow.c:153,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_shadow.c:154,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_shadow.c:156,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_shadow.c:161,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_shadow.c:163,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/tools/crm_shadow.c:178,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/tools/crm_shadow.c:170,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/tools/crm_shadow.c:173,1
    - Dst: pcmk__trim
      Src: /src/pacemaker/tools/crm_shadow.c:177,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 198
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 198
    functionName: shadow_default
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - pcmk__str_empty
    - va_arg
    - pcmk_is_set
    - g_string_sized_new
    - g_string_free
    - pcmk__trim
    - g_free
    - pcmk__xml_string
    linkageType: ''
    returnType: int
    signature: 'static int shadow_default(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_read
      Src: /src/pacemaker/tools/crm_shadow.c:514,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_shadow.c:518,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_shadow.c:517,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - filename
    - output
    - error
    argTypes:
    - char*
    - xmlNode**
    - GError**
    constantsTouched: []
    func_position:
      end: 522
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 522
    functionName: read_xml
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - pcmk__xml_read
    - pcmk_rc2exitc
    - g_set_error
    linkageType: ''
    returnType: int
    signature: 'static int read_xml(const char *filename, xmlNode **output, GError
      **error) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_instance_from_env
      Src: /src/pacemaker/tools/crm_shadow.c:930,1
    - Dst: check_file_exists
      Src: /src/pacemaker/tools/crm_shadow.c:935,1
    - Dst: get_shadow_file
      Src: /src/pacemaker/tools/crm_shadow.c:934,1
    - Dst: read_xml
      Src: /src/pacemaker/tools/crm_shadow.c:943,1
    - Dst: query_real_cib
      Src: /src/pacemaker/tools/crm_shadow.c:939,1
    - Dst: pcmk__xml_mark_changes
      Src: /src/pacemaker/tools/crm_shadow.c:946,1
    - Dst: xml_create_patchset
      Src: /src/pacemaker/tools/crm_shadow.c:947,1
    - Dst: pcmk__log_xml_changes
      Src: /src/pacemaker/tools/crm_shadow.c:949,1
    - Dst: pcmk__xml_commit_changes
      Src: /src/pacemaker/tools/crm_shadow.c:950,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_shadow.c:968,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_shadow.c:969,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_shadow.c:966,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_shadow.c:967,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - out
    - error
    argTypes:
    - pcmk__output_t*
    - GError**
    constantsTouched: []
    func_position:
      end: 970
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 970
    functionName: show_shadow_diff
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - read_xml
    - pcmk__xml_commit_changes
    - check_file_exists
    - query_real_cib
    - pcmk__log_xml_changes
    - get_shadow_file
    - free
    - pcmk__xml_free
    - pcmk__xml_mark_changes
    - xml_create_patchset
    - get_instance_from_env
    linkageType: ''
    returnType: void
    signature: 'static void show_shadow_diff(pcmk__output_t *out, GError **error) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_instance_from_env
      Src: /src/pacemaker/tools/crm_shadow.c:982,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_shadow.c:991,1
    - Dst: get_shadow_file
      Src: /src/pacemaker/tools/crm_shadow.c:983,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - out
    - error
    argTypes:
    - pcmk__output_t*
    - GError**
    constantsTouched: []
    func_position:
      end: 993
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 993
    functionName: show_shadow_filename
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - free
    - get_instance_from_env
    - get_shadow_file
    linkageType: ''
    returnType: void
    signature: 'static void show_shadow_filename(pcmk__output_t *out, GError **error) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_shadow.c:288,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_shadow.c:289,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_shadow.c:293,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_shadow.c:291,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_shadow.c:290,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/tools/crm_shadow.c:295,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/tools/crm_shadow.c:301,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/tools/crm_shadow.c:303,1
    - Dst: g_string_free
      Src: /src/pacemaker/tools/crm_shadow.c:307,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/tools/crm_shadow.c:314,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 316
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 316
    functionName: shadow_xml
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - pcmk__output_xml_pop_parent
    - va_arg
    - g_string_free
    - g_string_sized_new
    - pcmk__output_xml_create_parent
    - pcmk__xml_string
    linkageType: ''
    returnType: int
    signature: 'static int shadow_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: set_danger_error
      Src: /src/pacemaker/tools/crm_shadow.c:677,1
    - Dst: get_shadow_file
      Src: /src/pacemaker/tools/crm_shadow.c:681,1
    - Dst: read_xml
      Src: /src/pacemaker/tools/crm_shadow.c:690,1
    - Dst: connect_real_cib
      Src: /src/pacemaker/tools/crm_shadow.c:686,1
    - Dst: check_file_exists
      Src: /src/pacemaker/tools/crm_shadow.c:682,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/tools/crm_shadow.c:698,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_shadow.c:703,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_shadow.c:706,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_shadow.c:707,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_shadow.c:715,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_shadow.c:709,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_shadow.c:713,1
    - Dst: cib_delete
      Src: /src/pacemaker/tools/crm_shadow.c:714,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    constantsTouched: []
    func_position:
      end: 716
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 716
    functionName: commit_shadow_file
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - read_xml
    - pcmk__xe_first_child
    - pcmk_rc2exitc
    - check_file_exists
    - set_danger_error
    - get_shadow_file
    - g_set_error
    - free
    - pcmk__xml_free
    - cib_delete
    - pcmk_rc_str
    - connect_real_cib
    - pcmk_legacy2rc
    linkageType: ''
    returnType: void
    signature: 'static void commit_shadow_file(GError **error) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_shadow_file
      Src: /src/pacemaker/tools/crm_shadow.c:1027,1
    - Dst: shadow_setup
      Src: /src/pacemaker/tools/crm_shadow.c:1029,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_shadow.c:1031,1
    - Dst: check_file_exists
      Src: /src/pacemaker/tools/crm_shadow.c:1028,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - out
    - error
    argTypes:
    - pcmk__output_t*
    - GError**
    constantsTouched: []
    func_position:
      end: 1032
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1032
    functionName: switch_shadow_instance
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - shadow_setup
    - free
    - check_file_exists
    - get_shadow_file
    linkageType: ''
    returnType: void
    signature: 'static void switch_shadow_instance(pcmk__output_t *out, GError **error) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_shadow.c:1038,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_shadow.c:1044,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_shadow.c:1047,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_shadow.c:1050,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_shadow.c:1041,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_shadow.c:1053,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_shadow.c:1056,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_shadow.c:1059,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_shadow.c:1062,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_shadow.c:1065,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_shadow.c:1077,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_shadow.c:1068,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 1079
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1079
    functionName: command_cb
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean command_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_shadow.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: instruction_default
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int instruction_default(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/pacemaker/tools/crm_shadow.c:634,1
    - Dst: getenv
      Src: /src/pacemaker/tools/crm_shadow.c:635,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_shadow.c:637,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_shadow.c:640,1
    - Dst: get_shadow_prompt
      Src: /src/pacemaker/tools/crm_shadow.c:638,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_shadow.c:650,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 652
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 652
    functionName: shadow_teardown
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - getenv
    - free
    - pcmk__str_eq
    - get_shadow_prompt
    linkageType: ''
    returnType: void
    signature: 'static void shadow_teardown(pcmk__output_t *out) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_shadow_file
      Src: /src/pacemaker/tools/crm_shadow.c:770,1
    - Dst: check_file_exists
      Src: /src/pacemaker/tools/crm_shadow.c:782,1
    - Dst: write_shadow_file
      Src: /src/pacemaker/tools/crm_shadow.c:791,1
    - Dst: set_danger_error
      Src: /src/pacemaker/tools/crm_shadow.c:779,1
    - Dst: query_real_cib
      Src: /src/pacemaker/tools/crm_shadow.c:787,1
    - Dst: shadow_setup
      Src: /src/pacemaker/tools/crm_shadow.c:794,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_shadow.c:797,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_shadow.c:798,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 19
    argCount: 3
    argNames:
    - out
    - reset
    - error
    argTypes:
    - pcmk__output_t*
    - bool
    - GError**
    constantsTouched: []
    func_position:
      end: 799
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 799
    functionName: create_shadow_from_cib
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - shadow_setup
    - check_file_exists
    - set_danger_error
    - query_real_cib
    - get_shadow_file
    - free
    - pcmk__xml_free
    - write_shadow_file
    linkageType: ''
    returnType: void
    signature: 'static void create_shadow_from_cib(pcmk__output_t *out, bool reset,
      GError **error) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_shadow.c:225,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_shadow.c:227,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_shadow.c:255,1
    - Dst: shadow_default
      Src: /src/pacemaker/tools/crm_shadow.c:222,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_shadow.c:242,1
    - Dst: pcmk__trim
      Src: /src/pacemaker/tools/crm_shadow.c:253,1
    - Dst: g_string_free
      Src: /src/pacemaker/tools/crm_shadow.c:252,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_shadow.c:245,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_shadow.c:226,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_shadow.c:228,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_shadow.c:229,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_shadow.c:239,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_shadow.c:257,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/tools/crm_shadow.c:246,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/tools/crm_shadow.c:249,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 264
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 264
    functionName: shadow_text
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - shadow_default
    - va_arg
    - pcmk_is_set
    - g_string_sized_new
    - g_string_free
    - pcmk__trim
    - g_free
    - pcmk__xml_string
    linkageType: ''
    returnType: int
    signature: 'static int shadow_text(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_shadow.c:122,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/tools/crm_shadow.c:127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 129
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 129
    functionName: instruction_xml
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_text_node
    linkageType: ''
    returnType: int
    signature: 'static int instruction_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_shadow.c:386,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_shadow.c:389,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_shadow.c:390,1
    - Dst: getenv
      Src: /src/pacemaker/tools/crm_shadow.c:386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    constantsTouched: []
    func_position:
      end: 394
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 394
    functionName: get_instance_from_env
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - getenv
    - pcmk__str_update
    - g_set_error
    linkageType: ''
    returnType: int
    signature: 'static int get_instance_from_env(GError **error) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cib_new_no_shadow
      Src: /src/pacemaker/tools/crm_shadow.c:448,1
    - Dst: cib__signon_attempts
      Src: /src/pacemaker/tools/crm_shadow.c:457,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_shadow.c:451,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_shadow.c:452,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_shadow.c:458,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_shadow.c:460,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_shadow.c:461,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_shadow.c:462,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - real_cib
    - error
    argTypes:
    - cib_t**
    - GError**
    constantsTouched: []
    func_position:
      end: 465
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 465
    functionName: connect_real_cib
    functionSourceFile: /src/pacemaker/tools/crm_shadow.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - g_set_error
    - cib_new_no_shadow
    - pcmk_rc_str
    - cib__signon_attempts
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int connect_real_cib(cib_t **real_cib, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/tools/crm_resource_print.c:49,1
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/tools/crm_resource_print.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: cli_resource_print_cts_constraints
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - pcmk_find_cib_element
    - pcmk__xe_foreach_child
    linkageType: ''
    returnType: void
    signature: 'void cli_resource_print_cts_constraints(pcmk_scheduler_t *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:847,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/tools/crm_resource_print.c:855,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 858
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 858
    functionName: resource_names
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - g_list_foreach
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int resource_names(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_print.c:24,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_print.c:36,1
    - Dst: cons_string
      Src: /src/pacemaker/tools/crm_resource_print.c:36,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/tools/crm_resource_print.c:30,1
    - Dst: cons_string
      Src: /src/pacemaker/tools/crm_resource_print.c:37,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_print.c:37,1
    - Dst: cons_string
      Src: /src/pacemaker/tools/crm_resource_print.c:38,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_print.c:38,1
    - Dst: cons_string
      Src: /src/pacemaker/tools/crm_resource_print.c:39,1
    - Dst: cons_string
      Src: /src/pacemaker/tools/crm_resource_print.c:40,1
    - Dst: cons_string
      Src: /src/pacemaker/tools/crm_resource_print.c:41,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_print.c:39,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_print.c:40,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_print.c:41,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - xml_obj
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 44
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 44
    functionName: print_constraint
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - pcmk__xe_is
    - cons_string
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'static int print_constraint(xmlNode *xml_obj, void *userdata) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_print.c:59,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_print.c:64,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/tools/crm_resource_print.c:62,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_print.c:61,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_print.c:60,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_resource_print.c:76,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/tools/crm_resource_print.c:81,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 2
    argNames:
    - rsc
    - out
    argTypes:
    - pcmk_resource_t*
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 82
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 82
    functionName: cli_resource_print_cts
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - g_list_foreach
    - pcmk_is_set
    - crm_element_value
    - pcmk__current_node
    linkageType: ''
    returnType: void
    signature: 'void cli_resource_print_cts(pcmk_resource_t *rsc, pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:137,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_resource_print.c:145,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_resource_print.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 148
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 148
    functionName: attribute_changed_default
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__s
    linkageType: ''
    returnType: int
    signature: 'static int attribute_changed_default(pcmk__output_t *out, va_list
      args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:154,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:161,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/tools/crm_resource_print.c:165,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:171,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:156,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 175
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 175
    functionName: attribute_changed_xml
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    - pcmk__output_xml_pop_parent
    - pcmk__output_xml_create_parent
    linkageType: ''
    returnType: int
    signature: 'static int attribute_changed_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:735,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:736,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:757,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:789,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_print.c:772,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:796,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_print.c:815,1
    - Dst: cli_resource_check
      Src: /src/pacemaker/tools/crm_resource_print.c:822,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:748,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:741,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:763,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:768,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:802,1
    - Dst: cli_resource_check
      Src: /src/pacemaker/tools/crm_resource_print.c:808,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:812,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_print.c:821,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/tools/crm_resource_print.c:821,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:737,1
    - Dst: cli_resource_check
      Src: /src/pacemaker/tools/crm_resource_print.c:762,1
    - Dst: cli_resource_check
      Src: /src/pacemaker/tools/crm_resource_print.c:795,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_print.c:813,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_print.c:823,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:826,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/tools/crm_resource_print.c:755,1
    - Dst: resource_is_running_on
      Src: /src/pacemaker/tools/crm_resource_print.c:771,1
    - Dst: pcmk__subtract_lists
      Src: /src/pacemaker/tools/crm_resource_print.c:781,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:784,1
    - Dst: cli_resource_check
      Src: /src/pacemaker/tools/crm_resource_print.c:775,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_print.c:764,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:809,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_print.c:814,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 68
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 828
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 828
    functionName: resource_reasons_list_xml
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - g_list_free
    - pcmk__output_xml_create_parent
    - pcmk__btoa
    - crm_xml_add
    - resource_is_running_on
    - va_arg
    - cli_resource_check
    - pcmk__output_xml_pop_parent
    - pcmk__subtract_lists
    linkageType: ''
    returnType: int
    signature: 'static int resource_reasons_list_xml(pcmk__output_t *out, va_list
      args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/tools/crm_resource_print.c:886,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 887
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 887
    functionName: crm_resource_register_messages
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - pcmk__register_messages
    linkageType: ''
    returnType: void
    signature: 'void crm_resource_register_messages(pcmk__output_t *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:625,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:628,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/tools/crm_resource_print.c:634,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:626,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_print.c:639,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:643,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 645
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 645
    functionName: resource_search_list_xml
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - pcmk__output_xml_create_parent
    - crm_xml_add
    - pcmk__output_create_xml_text_node
    - va_arg
    - pcmk__output_xml_pop_parent
    linkageType: ''
    returnType: int
    signature: 'static int resource_search_list_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: resource_is_running_on
      Src: /src/pacemaker/tools/crm_resource_print.c:681,1
    - Dst: pcmk__subtract_lists
      Src: /src/pacemaker/tools/crm_resource_print.c:695,1
    - Dst: cli_resource_check
      Src: /src/pacemaker/tools/crm_resource_print.c:722,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:654,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_print.c:712,1
    - Dst: cli_resource_check
      Src: /src/pacemaker/tools/crm_resource_print.c:689,1
    - Dst: cli_resource_check
      Src: /src/pacemaker/tools/crm_resource_print.c:709,1
    - Dst: cli_resource_check
      Src: /src/pacemaker/tools/crm_resource_print.c:702,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_print.c:713,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_print.c:723,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:652,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:653,1
    - Dst: cli_resource_check
      Src: /src/pacemaker/tools/crm_resource_print.c:675,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_print.c:676,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_print.c:714,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 62
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 728
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 728
    functionName: resource_reasons_list_default
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - g_list_free
    - resource_is_running_on
    - va_arg
    - cli_resource_check
    - pcmk__subtract_lists
    linkageType: ''
    returnType: int
    signature: 'static int resource_reasons_list_default(pcmk__output_t *out, va_list
      args) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:581,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:582,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 619
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 619
    functionName: resource_search_list_default
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int resource_search_list_default(pcmk__output_t *out, va_list
      args) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:546,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/tools/crm_resource_print.c:555,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/tools/crm_resource_print.c:548,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/tools/crm_resource_print.c:550,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_print.c:554,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_print.c:558,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/tools/crm_resource_print.c:559,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_print.c:562,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/tools/crm_resource_print.c:563,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_print.c:566,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/tools/crm_resource_print.c:571,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_print.c:570,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_print.c:567,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 575
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 575
    functionName: resource_check_list_xml
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - crm_xml_add
    - pcmk__xe_set_bool_attr
    - va_arg
    - pcmk_is_set
    - pe__const_top_resource
    linkageType: ''
    returnType: int
    signature: 'static int resource_check_list_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:316,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:317,1
    - Dst: pcmk__formatted_printf
      Src: /src/pacemaker/tools/crm_resource_print.c:321,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:318,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 327
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 327
    functionName: attribute_list_text
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__formatted_printf
    linkageType: ''
    returnType: int
    signature: 'static int attribute_list_text(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 193
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 193
    functionName: attribute_changed_list_default
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int attribute_changed_list_default(pcmk__output_t *out, va_list
      args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:199,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:212,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:205,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 214
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 214
    functionName: attribute_changed_list_xml
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_xml_pop_parent
    - pcmk__output_xml_create_parent
    linkageType: ''
    returnType: int
    signature: 'static int attribute_changed_list_xml(pcmk__output_t *out, va_list
      args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:239,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:242,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:241,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:240,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:243,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:244,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:245,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:246,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/tools/crm_resource_print.c:258,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/tools/crm_resource_print.c:272,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 278
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 278
    functionName: agent_status_default
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk_exec_status_str
    - crm_exit_str
    linkageType: ''
    returnType: int
    signature: 'static int agent_status_default(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:284,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:288,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:287,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:285,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:286,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:289,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:290,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:291,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/tools/crm_resource_print.c:293,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/tools/crm_resource_print.c:294,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/tools/crm_resource_print.c:295,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/tools/crm_resource_print.c:296,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/tools/crm_resource_print.c:298,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_print.c:307,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_print.c:306,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 310
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 310
    functionName: agent_status_xml
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - pcmk_exec_status_str
    - pcmk__output_create_xml_node
    - crm_exit_str
    - pcmk__itoa
    - va_arg
    - free
    linkageType: ''
    returnType: int
    signature: 'static int agent_status_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:331,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:333,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 344
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 344
    functionName: override_default
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int override_default(pcmk__output_t *out, va_list args) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:499,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/tools/crm_resource_print.c:501,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_print.c:510,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_print.c:515,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_print.c:520,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_print.c:525,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_print.c:530,1
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/tools/crm_resource_print.c:535,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 541
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 541
    functionName: resource_check_list_default
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk_is_set
    - pcmk__cluster_option
    - pe__const_top_resource
    linkageType: ''
    returnType: int
    signature: 'static int resource_check_list_default(pcmk__output_t *out, va_list
      args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:349,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:350,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/tools/crm_resource_print.c:353,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_print.c:359,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:351,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 363
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 363
    functionName: override_xml
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    - crm_xml_add
    linkageType: ''
    returnType: int
    signature: 'static int override_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:432,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:436,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_print.c:455,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:444,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:492,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:437,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:435,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:439,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/tools/crm_resource_print.c:468,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/tools/crm_resource_print.c:467,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/tools/crm_resource_print.c:482,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:438,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:442,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/tools/crm_resource_print.c:448,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_print.c:458,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_print.c:486,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:434,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:440,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:441,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:443,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 39
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 494
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 494
    functionName: resource_agent_action_xml
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - pcmk__output_xml_pop_parent
    - crm_xml_add
    - va_arg
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk__output_xml_create_parent
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: int
    signature: 'static int resource_agent_action_xml(pcmk__output_t *out, va_list
      args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_resource_print.c:117,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/tools/crm_resource_print.c:121,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_print.c:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - rsc
    - expanded
    argTypes:
    - pcmk_resource_t*
    - bool
    constantsTouched: []
    func_position:
      end: 131
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 131
    functionName: cli_resource_print
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_list_prepend
    - g_list_free
    linkageType: ''
    returnType: int
    signature: 'int cli_resource_print(pcmk_resource_t *rsc, bool expanded) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_foreach
      Src: /src/pacemaker/tools/crm_resource_print.c:840,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - rsc
    - out
    argTypes:
    - pcmk_resource_t*
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 842
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 842
    functionName: add_resource_name
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - g_list_foreach
    linkageType: ''
    returnType: void
    signature: 'static void add_resource_name(pcmk_resource_t *rsc, pcmk__output_t
      *out) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:371,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:374,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:379,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:380,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:382,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:375,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:383,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/tools/crm_resource_print.c:413,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:376,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:378,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource_print.c:405,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_print.c:417,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:373,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:377,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:381,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/tools/crm_resource_print.c:392,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/tools/crm_resource_print.c:393,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 37
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 424
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 424
    functionName: resource_agent_action_default
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - va_arg
    - pcmk__xml_free
    - pcmk__xml_parse
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: int
    signature: 'static int resource_agent_action_default(pcmk__output_t *out, va_list
      args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:220,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:222,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_resource_print.c:221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 233
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 233
    functionName: attribute_list_default
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int attribute_list_default(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_operations
      Src: /src/pacemaker/tools/crm_resource_print.c:91,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 4
    argNames:
    - rsc_id
    - host_uname
    - active
    - scheduler
    argTypes:
    - char*
    - char*
    - bool
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 107
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 107
    functionName: cli_resource_print_operations
    functionSourceFile: /src/pacemaker/tools/crm_resource_print.c
    functionUses: []
    functionsReached:
    - find_operations
    linkageType: ''
    returnType: int
    signature: 'int cli_resource_print_operations(const char *rsc_id, const char *host_uname,
      bool active, pcmk_scheduler_t *scheduler) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/tools/crmadmin.c:103,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crmadmin.c:105,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crmadmin.c:108,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crmadmin.c:103,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crmadmin.c:108,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crmadmin.c:112,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crmadmin.c:112,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crmadmin.c:116,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crmadmin.c:116,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crmadmin.c:120,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/crmadmin.c:120,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/tools/crmadmin.c:121,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crmadmin.c:124,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 126
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 126
    functionName: command_cb
    functionSourceFile: /src/pacemaker/tools/crmadmin.c
    functionUses: []
    functionsReached:
    - pcmk_parse_interval_spec
    - strcmp
    - crm_trace
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean command_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/tools/crmadmin.c:155,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crmadmin.c:165,1
    - Dst: pcmk__add_main_args
      Src: /src/pacemaker/tools/crmadmin.c:161,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crmadmin.c:163,1
    - Dst: g_option_context_set_description
      Src: /src/pacemaker/tools/crmadmin.c:156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 168
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 168
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/tools/crmadmin.c
    functionUses: []
    functionsReached:
    - pcmk__add_arg_group
    - g_option_context_set_description
    - pcmk__add_main_args
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/tools/crmadmin.c:186,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/tools/crmadmin.c:192,1
    - Dst: pcmk__list_nodes
      Src: /src/pacemaker/tools/crmadmin.c:241,1
    - Dst: g_option_context_get_help
      Src: /src/pacemaker/tools/crmadmin.c:222,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/crmadmin.c:258,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/tools/crmadmin.c:261,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/tools/crmadmin.c:265,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crmadmin.c:254,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/tools/crmadmin.c:267,1
    - Dst: crm_exit
      Src: /src/pacemaker/tools/crmadmin.c:268,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/tools/crmadmin.c:182,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/tools/crmadmin.c:202,1
    - Dst: pcmk__controller_status
      Src: /src/pacemaker/tools/crmadmin.c:232,1
    - Dst: pcmk__pacemakerd_status
      Src: /src/pacemaker/tools/crmadmin.c:236,1
    - Dst: pcmk__designated_controller
      Src: /src/pacemaker/tools/crmadmin.c:244,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/tools/crmadmin.c:187,1
    - Dst: build_arg_context
      Src: /src/pacemaker/tools/crmadmin.c:184,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/tools/crmadmin.c:183,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/tools/crmadmin.c:194,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crmadmin.c:197,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crmadmin.c:198,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crmadmin.c:225,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/tools/crmadmin.c:259,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crmadmin.c:253,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 56
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 269
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 269
    functionName: main
    functionSourceFile: /src/pacemaker/tools/crmadmin.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - pcmk__register_formats
    - crm_exit
    - pcmk__controller_status
    - pcmk__cli_init_logging
    - g_option_context_get_help
    - build_arg_context
    - pcmk__list_nodes
    - pcmk_rc_str
    - g_free
    - pcmk__cmdline_preproc
    - pcmk__unregister_formats
    - pcmk__output_and_clear_error
    - pcmk__pacemakerd_status
    - pcmk__register_lib_messages
    - pcmk__output_new
    - g_strfreev
    - pcmk__designated_controller
    - pcmk_rc2exitc
    - g_set_error
    - pcmk__output_free
    - pcmk__new_common_args
    - pcmk__free_arg_context
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_cib_xpath_for
      Src: /src/pacemaker/tools/crm_resource_runtime.c:129,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/tools/crm_resource_runtime.c:135,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/tools/crm_resource_runtime.c:140,1
    - Dst: crm_err
      Src: /src/pacemaker/tools/crm_resource_runtime.c:131,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/tools/crm_resource_runtime.c:136,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/tools/crm_resource_runtime.c:142,1
    - Dst: g_string_append
      Src: /src/pacemaker/tools/crm_resource_runtime.c:147,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/tools/crm_resource_runtime.c:150,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/tools/crm_resource_runtime.c:155,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/tools/crm_resource_runtime.c:158,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:177,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_resource_runtime.c:163,1
    - Dst: g_string_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:180,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/tools/crm_resource_runtime.c:166,1
    - Dst: pcmk__warn_multiple_name_matches
      Src: /src/pacemaker/tools/crm_resource_runtime.c:169,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 49
    argCount: 9
    argNames:
    - out
    - the_cib
    - attr
    - rsc
    - attr_set_type
    - set_name
    - attr_id
    - attr_name
    - result
    argTypes:
    - pcmk__output_t*
    - cib_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 182
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 182
    functionName: find_resource_attr
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - crm_log_xml_debug
    - g_string_append
    - pcmk__warn_multiple_name_matches
    - g_string_sized_new
    - pcmk_cib_xpath_for
    - pcmk__xml_free
    - g_string_free
    - crm_err
    - pcmk__g_strcat
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int find_resource_attr(pcmk__output_t *out, cib_t * the_cib,
      const char *attr, const char *rsc, const char *attr_set_type, const char *set_name,
      const char *attr_id, const char *attr_name, xmlNode **result) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_resource_runtime.c:583,1
    - Dst: update_element_attribute
      Src: /src/pacemaker/tools/crm_resource_runtime.c:589,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource_runtime.c:588,1
    - Dst: pe__clear_resource_flags_on_all
      Src: /src/pacemaker/tools/crm_resource_runtime.c:597,1
    - Dst: pcmk__unpack_constraints
      Src: /src/pacemaker/tools/crm_resource_runtime.c:596,1
    - Dst: update_attribute
      Src: /src/pacemaker/tools/crm_resource_runtime.c:601,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/tools/crm_resource_runtime.c:611,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 18
    argCount: 11
    argNames:
    - rsc
    - requested_name
    - attr_set
    - attr_set_type
    - attr_id
    - attr_name
    - attr_value
    - recursive
    - cib
    - cib_xml_orig
    - force
    argTypes:
    - pcmk_resource_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - gboolean
    - cib_t*
    - xmlNode*
    - gboolean
    constantsTouched: []
    func_position:
      end: 615
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 615
    functionName: cli_resource_update_attribute
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - update_element_attribute
    - pe__clear_resource_flags_on_all
    - pcmk__str_eq
    - g_list_free_full
    - update_attribute
    - pcmk__assert
    - pcmk__unpack_constraints
    linkageType: ''
    returnType: int
    signature: 'int cli_resource_update_attribute(pcmk_resource_t *rsc, const char
      *requested_name, const char *attr_set, const char *attr_set_type, const char
      *attr_id, const char *attr_name, const char *attr_value, gboolean recursive,
      cib_t *cib, xmlNode *cib_xml_orig, gboolean force) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/tools/crm_resource_runtime.c:632,1
    - Dst: get_cib_rsc
      Src: /src/pacemaker/tools/crm_resource_runtime.c:639,1
    - Dst: find_resource_attr
      Src: /src/pacemaker/tools/crm_resource_runtime.c:631,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource_runtime.c:653,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:690,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/tools/crm_resource_runtime.c:700,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_resource_runtime.c:704,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/tools/crm_resource_runtime.c:644,1
    - Dst: find_resource_attr
      Src: /src/pacemaker/tools/crm_resource_runtime.c:676,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:680,1
    - Dst: g_list_append
      Src: /src/pacemaker/tools/crm_resource_runtime.c:659,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:685,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:691,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/tools/crm_resource_runtime.c:701,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_resource_runtime.c:712,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:715,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource_runtime.c:636,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_resource_runtime.c:646,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:686,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_resource_runtime.c:710,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:720,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:716,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_resource_runtime.c:628,1
    - Dst: clone_strip
      Src: /src/pacemaker/tools/crm_resource_runtime.c:675,1
    - Dst: find_matching_attr_resources
      Src: /src/pacemaker/tools/crm_resource_runtime.c:654,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:681,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:692,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:717,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 70
    argCount: 9
    argNames:
    - rsc
    - requested_name
    - attr_set
    - attr_set_type
    - attr_id
    - attr_name
    - cib
    - cib_xml_orig
    - force
    argTypes:
    - pcmk_resource_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - cib_t*
    - xmlNode*
    - gboolean
    constantsTouched: []
    func_position:
      end: 722
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 722
    functionName: cli_resource_delete_attribute
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - crm_log_xml_debug
    - pcmk__xe_remove_attr
    - g_list_append
    - g_list_free
    - pcmk__s
    - find_resource_attr
    - crm_create_nvpair_xml
    - pcmk__str_eq
    - find_matching_attr_resources
    - pcmk__xml_free
    - free
    - pe__const_top_resource
    - clone_strip
    - pcmk__assert
    - crm_element_value_copy
    - get_cib_rsc
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int cli_resource_delete_attribute(pcmk_resource_t *rsc, const char
      *requested_name, const char *attr_set, const char *attr_set_type, const char
      *attr_id, const char *attr_name, cib_t *cib, xmlNode *cib_xml_orig, gboolean
      force) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1268,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1274,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1277,1
    - Dst: crm_notice
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1277,1
    - Dst: send_lrm_rsc_op
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1278,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 4
    argNames:
    - controld_api
    - rsc
    - rsc_id
    - node
    argTypes:
    - pcmk_ipc_api_t*
    - pcmk_resource_t*
    - char*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1279
      start: 1264
    functionDepth: 0
    functionLinenumber: 1264
    functionLinenumberEnd: 1279
    functionName: cli_resource_fail
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__node_name
    - send_lrm_rsc_op
    - crm_notice
    linkageType: ''
    returnType: int
    signature: 'int cli_resource_fail(pcmk_ipc_api_t *controld_api, pcmk_resource_t
      *rsc, const char *rsc_id, const pcmk_node_t *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pe_find_resource
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1630,1
    - Dst: max_rsc_stop_timeout
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1632,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1635,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1637,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1642,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - scheduler
    - resources
    argTypes:
    - pcmk_scheduler_t*
    - GList*
    constantsTouched: []
    func_position:
      end: 1643
      start: 1623
    functionDepth: 0
    functionLinenumber: 1623
    functionLinenumberEnd: 1643
    functionName: wait_time_estimate
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk__timeout_ms2s
    - max_rsc_stop_timeout
    - pe_find_resource
    - pcmk__readable_interval
    linkageType: ''
    returnType: guint
    signature: 'static guint wait_time_estimate(pcmk_scheduler_t *scheduler, const
      GList *resources) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1291,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1295,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1296,1
    - Dst: pe_rsc_params
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1293,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1297,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1301,1
    - Dst: get_meta_attributes
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1302,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1304,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1305,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1306,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1310,1
    - Dst: strdup
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1308,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1308,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1314
      start: 1281
    functionDepth: 0
    functionLinenumber: 1281
    functionLinenumberEnd: 1314
    functionName: generate_resource_params
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - pcmk__insert_dup
    - pcmk__strkey_table
    - g_hash_table_destroy
    - pe_rsc_params
    - crm_meta_name
    - strdup
    - g_hash_table_insert
    - get_meta_attributes
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: GHashTable*
    signature: 'static GHashTable *generate_resource_params(pcmk_resource_t *rsc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_resource_runtime.c:74,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_runtime.c:83,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/tools/crm_resource_runtime.c:82,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/tools/crm_resource_runtime.c:76,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/tools/crm_resource_runtime.c:80,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource_runtime.c:85,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource_runtime.c:87,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/tools/crm_resource_runtime.c:95,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/tools/crm_resource_runtime.c:105,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 29
    argCount: 2
    argNames:
    - rsc
    - requested_name
    argTypes:
    - pcmk_resource_t*
    - char*
    constantsTouched: []
    func_position:
      end: 108
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 108
    functionName: cli_resource_search
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - g_list_foreach
    - pcmk__str_eq
    - pcmk__is_clone
    - pcmk_is_set
    - pe__const_top_resource
    - pcmk__assert
    linkageType: ''
    returnType: GList*
    signature: 'GList *cli_resource_search(const pcmk_resource_t *rsc, const char
      *requested_name) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: resources_with_attr
      Src: /src/pacemaker/tools/crm_resource_runtime.c:422,1
    - Dst: find_resource_attr
      Src: /src/pacemaker/tools/crm_resource_runtime.c:418,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_resource_runtime.c:463,1
    - Dst: get_cib_rsc
      Src: /src/pacemaker/tools/crm_resource_runtime.c:468,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_resource_runtime.c:485,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_resource_runtime.c:482,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_runtime.c:486,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:476,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:478,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_runtime.c:483,1
    - Dst: update_attribute
      Src: /src/pacemaker/tools/crm_resource_runtime.c:558,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:534,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/tools/crm_resource_runtime.c:508,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource_runtime.c:537,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:492,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:518,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:522,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:530,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/tools/crm_resource_runtime.c:544,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:532,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_runtime.c:551,1
    - Dst: crm_debug
      Src: /src/pacemaker/tools/crm_resource_runtime.c:556,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/tools/crm_resource_runtime.c:415,1
    - Dst: clone_strip
      Src: /src/pacemaker/tools/crm_resource_runtime.c:444,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:450,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:475,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:490,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_runtime.c:515,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:519,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:523,1
    - Dst: g_list_append
      Src: /src/pacemaker/tools/crm_resource_runtime.c:526,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_resource_runtime.c:506,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:521,1
    - Dst: crm_debug
      Src: /src/pacemaker/tools/crm_resource_runtime.c:549,1
    - Dst: find_resource_attr
      Src: /src/pacemaker/tools/crm_resource_runtime.c:445,1
    - Dst: crm_debug
      Src: /src/pacemaker/tools/crm_resource_runtime.c:451,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_resource_runtime.c:458,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:477,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:491,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:493,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/tools/crm_resource_runtime.c:497,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/tools/crm_resource_runtime.c:503,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:520,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:533,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:565,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:529,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 107
    argCount: 12
    argNames:
    - rsc
    - requested_name
    - attr_set
    - attr_set_type
    - attr_id
    - attr_name
    - attr_value
    - recursive
    - cib
    - cib_xml_orig
    - force
    - results
    argTypes:
    - pcmk_resource_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - gboolean
    - cib_t*
    - xmlNode*
    - gboolean
    - GList**
    constantsTouched: []
    func_position:
      end: 567
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 567
    functionName: update_attribute
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - pcmk__set_rsc_flags
    - free
    - clone_strip
    - resources_with_attr
    - pcmk_legacy2rc
    - pcmk__xe_create
    - g_list_free
    - crm_strdup_printf
    - find_resource_attr
    - crm_create_nvpair_xml
    - update_attribute
    - pcmk_is_set
    - crm_element_value
    - g_list_append
    - pcmk__assert_alloc
    - pcmk__str_eq
    - pcmk__str_copy
    - get_cib_rsc
    - crm_debug
    - crm_log_xml_debug
    - crm_xml_add
    - pcmk__xml_free
    - pe__const_top_resource
    - crm_element_value_copy
    linkageType: ''
    returnType: int
    signature: 'static int update_attribute(pcmk_resource_t *rsc, const char *requested_name,
      const char *attr_set, const char *attr_set_type, const char *attr_id, const
      char *attr_name, const char *attr_value, gboolean recursive, cib_t *cib, xmlNode
      *cib_xml_orig, gboolean force, GList **results) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_resource_runtime.c:824,1
    - Dst: send_lrm_rsc_op
      Src: /src/pacemaker/tools/crm_resource_runtime.c:831,1
    - Dst: pcmk_controld_api_replies_expected
      Src: /src/pacemaker/tools/crm_resource_runtime.c:837,1
    - Dst: g_main_context_iteration
      Src: /src/pacemaker/tools/crm_resource_runtime.c:838,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crm_resource_runtime.c:836,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crm_resource_runtime.c:839,1
    - Dst: pcmk_controld_api_replies_expected
      Src: /src/pacemaker/tools/crm_resource_runtime.c:840,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - controld_api
    - rsc
    - rsc_id
    - node
    argTypes:
    - pcmk_ipc_api_t*
    - pcmk_resource_t*
    - char*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 843
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 843
    functionName: clear_rsc_history
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - send_lrm_rsc_op
    - g_main_context_iteration
    - pcmk__assert
    - pcmk_controld_api_replies_expected
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int clear_rsc_history(pcmk_ipc_api_t *controld_api, pcmk_resource_t
      *rsc, const char *rsc_id, const pcmk_node_t *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rsc_fail_name
      Src: /src/pacemaker/tools/crm_resource_runtime.c:955,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:964,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/tools/crm_resource_runtime.c:957,1
    - Dst: pcmk__attrd_api_clear_failures
      Src: /src/pacemaker/tools/crm_resource_runtime.c:961,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 4
    argNames:
    - rsc
    - operation
    - interval_spec
    - node
    argTypes:
    - pcmk_resource_t*
    - char*
    - char*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 966
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 966
    functionName: clear_rsc_fail_attrs
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - pcmk__is_pacemaker_remote_node
    - free
    - pcmk__attrd_api_clear_failures
    - rsc_fail_name
    linkageType: ''
    returnType: int
    signature: 'static int clear_rsc_fail_attrs(const pcmk_resource_t *rsc, const
      char *operation, const char *interval_spec, const pcmk_node_t *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_role
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1255,1
    - Dst: check_managed
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1256,1
    - Dst: check_locked
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1257,1
    - Dst: check_node_health
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - out
    - rsc
    - node
    argTypes:
    - pcmk__output_t*
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1261
      start: 1250
    functionDepth: 0
    functionLinenumber: 1250
    functionLinenumberEnd: 1261
    functionName: cli_resource_check
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - check_role
    - check_locked
    - check_managed
    - check_node_health
    linkageType: ''
    returnType: int
    signature: 'int cli_resource_check(pcmk__output_t *out, pcmk_resource_t *rsc,
      pcmk_node_t *node) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_write_file
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1500,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1511,1
    - Dst: update_dataset
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1522,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1480,1
    - Dst: pcmk__getpid_s
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1490,1
    - Dst: cib_shadow_new
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1491,1
    - Dst: get_shadow_file
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1492,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1502,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1540,1
    - Dst: unlink
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1543,1
    - Dst: update_scheduler_input
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1485,1
    - Dst: pcmk__schedule_actions
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1515,1
    - Dst: cluster_status
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1534,1
    - Dst: cib_delete
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1539,1
    - Dst: pcmk_reset_scheduler
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1479,1
    - Dst: pcmk__simulate_transition
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1519,1
    - Dst: update_scheduler_input
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1527,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1507,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1532,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1544,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 53
    argCount: 4
    argNames:
    - cib
    - scheduler
    - cib_xml_orig
    - simulate
    argTypes:
    - cib_t*
    - pcmk_scheduler_t*
    - xmlNode**
    - bool
    constantsTouched: []
    func_position:
      end: 1548
      start: 1468
    functionDepth: 0
    functionLinenumber: 1468
    functionLinenumberEnd: 1548
    functionName: update_dataset
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - cib_shadow_new
    - pcmk__xml_write_file
    - update_scheduler_input
    - pcmk__getpid_s
    - pcmk__simulate_transition
    - pcmk__set_scheduler_flags
    - get_shadow_file
    - pcmk__schedule_actions
    - update_dataset
    - unlink
    - pcmk__xml_free
    - free
    - cib_delete
    - pcmk_rc_str
    - pcmk_reset_scheduler
    - cluster_status
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int update_dataset(cib_t *cib, pcmk_scheduler_t *scheduler,
      xmlNode **cib_xml_orig, bool simulate) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: max_rsc_stop_timeout
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1577,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1583,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1580,1
    - Dst: pcmk__unpack_action_meta
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1598,1
    - Dst: pcmk__find_action_config
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1591,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1599,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1599,1
    - Dst: QB_MIN
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1601,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1603,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1606
      start: 1558
    functionDepth: 0
    functionLinenumber: 1558
    functionLinenumberEnd: 1606
    functionName: max_rsc_stop_timeout
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - g_hash_table_lookup
    - g_hash_table_destroy
    - pcmk__unpack_action_meta
    - max_rsc_stop_timeout
    - QB_MIN
    - pcmk__scan_ll
    - pcmk__readable_interval
    - pcmk__find_action_config
    linkageType: ''
    returnType: guint
    signature: 'static guint max_rsc_stop_timeout(pcmk_resource_t *rsc) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2115,1
    - Dst: print_pending_actions
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2131,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2172,1
    - Dst: actions_are_pending
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2175,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2178,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2112,1
    - Dst: time
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2129,1
    - Dst: crm_info
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2136,1
    - Dst: time
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2104,1
    - Dst: sleep
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2140,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2173,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2174,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2163,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2120,1
    - Dst: pcmk_reset_scheduler
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2144,1
    - Dst: update_scheduler_input
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2145,1
    - Dst: pcmk__schedule_actions
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2150,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2165,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2149,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2179,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 3
    argNames:
    - out
    - timeout_ms
    - cib
    argTypes:
    - pcmk__output_t*
    - guint
    - cib_t*
    constantsTouched: []
    func_position:
      end: 2181
      start: 2096
    functionDepth: 0
    functionLinenumber: 2096
    functionLinenumberEnd: 2181
    functionName: wait_till_stable
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - pcmk__timeout_ms2s
    - actions_are_pending
    - pcmk__set_scheduler_flags
    - free
    - pcmk__xpath_num_results
    - pcmk__schedule_actions
    - pcmk__xpath_search
    - update_scheduler_input
    - crm_strdup_printf
    - g_hash_table_lookup
    - print_pending_actions
    - pcmk_free_scheduler
    - xmlXPathFreeObject
    - pcmk_reset_scheduler
    - pcmk__str_eq
    - pcmk_new_scheduler
    - crm_info
    - sleep
    - time
    linkageType: ''
    returnType: int
    signature: 'int wait_till_stable(pcmk__output_t *out, guint timeout_ms, cib_t
      * cib) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_resource_runtime.c:289,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/tools/crm_resource_runtime.c:291,1
    - Dst: pcmk_cib_xpath_for
      Src: /src/pacemaker/tools/crm_resource_runtime.c:290,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/tools/crm_resource_runtime.c:292,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:294,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - cib_xml
    - rsc
    argTypes:
    - xmlNode*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 296
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 296
    functionName: get_cib_rsc
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pcmk__xpath_find_one
    - free
    - pcmk__xe_id
    - pcmk_cib_xpath_for
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *get_cib_rsc(xmlNode *cib_xml, const pcmk_resource_t
      *rsc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_resource_runtime.c:809,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_runtime.c:811,1
    - Dst: clone_strip
      Src: /src/pacemaker/tools/crm_resource_runtime.c:814,1
    - Dst: strdup
      Src: /src/pacemaker/tools/crm_resource_runtime.c:812,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 815
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 815
    functionName: rsc_fail_name
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - strdup
    - pcmk_is_set
    - pcmk__s
    - clone_strip
    linkageType: ''
    returnType: char*
    signature: 'static inline char *rsc_fail_name(const pcmk_resource_t *rsc) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/tools/crm_resource_runtime.c:877,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/tools/crm_resource_runtime.c:879,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_runtime.c:881,1
    - Dst: pe_find_resource_with_flags
      Src: /src/pacemaker/tools/crm_resource_runtime.c:891,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource_runtime.c:896,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_runtime.c:902,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_runtime.c:909,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource_runtime.c:910,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/tools/crm_resource_runtime.c:867,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/tools/crm_resource_runtime.c:873,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_runtime.c:915,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource_runtime.c:916,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:924,1
    - Dst: g_hash_table_add
      Src: /src/pacemaker/tools/crm_resource_runtime.c:921,1
    - Dst: clear_rsc_history
      Src: /src/pacemaker/tools/crm_resource_runtime.c:939,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource_runtime.c:903,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/tools/crm_resource_runtime.c:926,1
    - Dst: crm_debug
      Src: /src/pacemaker/tools/crm_resource_runtime.c:930,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/tools/crm_resource_runtime.c:931,1
    - Dst: pe_find_resource
      Src: /src/pacemaker/tools/crm_resource_runtime.c:933,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_resource_runtime.c:859,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_resource_runtime.c:874,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/tools/crm_resource_runtime.c:927,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:944,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 61
    argCount: 6
    argNames:
    - out
    - controld_api
    - node
    - rsc_id
    - operation
    - interval_spec
    argTypes:
    - pcmk__output_t*
    - pcmk_ipc_api_t*
    - pcmk_node_t*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 946
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 946
    functionName: clear_rsc_failures
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pe_find_resource_with_flags
    - pcmk__xe_first_child
    - crm_strdup_printf
    - pe_find_resource
    - pcmk__strkey_table
    - clear_rsc_history
    - pcmk__str_eq
    - g_hash_table_destroy
    - pcmk__node_name
    - free
    - pcmk_parse_interval_spec
    - pcmk__xe_next
    - crm_element_value
    - pcmk__assert
    - g_hash_table_add
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: int
    signature: 'static int clear_rsc_failures(pcmk__output_t *out, pcmk_ipc_api_t
      *controld_api, pcmk_node_t *node, const char *rsc_id, const char *operation,
      const char *interval_spec) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - checks
    argTypes:
    - resource_checks_t*
    constantsTouched: []
    func_position:
      end: 1190
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1190
    functionName: check_locked
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void check_locked(resource_checks_t *checks) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1230,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1231,1
    - Dst: node_is_unhealthy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1233,1
    - Dst: node_is_unhealthy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1242,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - checks
    - node
    argTypes:
    - resource_checks_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1245
      start: 1222
    functionDepth: 0
    functionLinenumber: 1222
    functionLinenumberEnd: 1245
    functionName: check_node_health
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - node_is_unhealthy
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void check_node_health(resource_checks_t *checks, pcmk_node_t
      *node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1427,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1435,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1433,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1440,1
    - Dst: pcmk__update_configured_schema
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1447,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1450,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1451,1
    - Dst: crm_time_new
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1456,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1462,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 47
    argCount: 4
    argNames:
    - out
    - scheduler
    - cib
    - cib_xml_orig
    argTypes:
    - pcmk__output_t*
    - pcmk_scheduler_t*
    - cib_t*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 1465
      start: 1419
    functionDepth: 0
    functionLinenumber: 1419
    functionLinenumberEnd: 1465
    functionName: update_scheduler_input
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - pcmk__update_configured_schema
    - pcmk__xml_copy
    - crm_time_new
    - pcmk__xml_free
    - pcmk_rc_str
    - pcmk__assert
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int update_scheduler_input(pcmk__output_t *out, pcmk_scheduler_t *scheduler,
      cib_t *cib, xmlNode **cib_xml_orig) '
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_unique_clone
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1743,1
    - Dst: update_dataset
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1840,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2010,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2014,1
    - Dst: wait_time_estimate
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1857,1
    - Dst: strdup
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1744,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1830,1
    - Dst: pcmk__subtract_lists
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1928,1
    - Dst: dump_list
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1883,1
    - Dst: get_active_resources
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1877,1
    - Dst: dump_list
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1967,1
    - Dst: g_list_length
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1850,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1866,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1875,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1723,1
    - Dst: get_active_resources
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1794,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1959,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2001,1
    - Dst: cli_resource_update_attribute
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1902,1
    - Dst: g_list_length
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1888,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1701,1
    - Dst: g_list_length
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1934,1
    - Dst: get_active_resources
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1961,1
    - Dst: dump_list
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1966,1
    - Dst: resource_is_running_on
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1711,1
    - Dst: pcmk__is_unique_clone
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1714,1
    - Dst: resource_is_running_on
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1724,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1815,1
    - Dst: pcmk__subtract_lists
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1881,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1946,1
    - Dst: strdup
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1715,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1736,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1919,1
    - Dst: g_list_length
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1970,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2007,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1780,1
    - Dst: pcmk__subtract_lists
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1965,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2012,1
    - Dst: sleep
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1863,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1924,1
    - Dst: dump_list
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1847,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1754,1
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1777,1
    - Dst: display_list
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1851,1
    - Dst: waiting_for_starts
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1933,1
    - Dst: wait_time_estimate
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1936,1
    - Dst: strdup
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1741,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1752,1
    - Dst: find_resource_attr
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1811,1
    - Dst: update_dataset
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1868,1
    - Dst: pcmk__subtract_lists
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1849,1
    - Dst: update_dataset
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1949,1
    - Dst: strdup
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1755,1
    - Dst: cli_resource_update_attribute
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1820,1
    - Dst: g_list_length
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1887,1
    - Dst: sleep
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1943,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2004,1
    - Dst: get_active_resources
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1846,1
    - Dst: pcmk__is_bundled
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1707,1
    - Dst: clone_strip
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1746,1
    - Dst: pe_bundle_replicas
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1750,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1818,1
    - Dst: waiting_for_starts
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1941,1
    - Dst: cli_resource_delete_attribute
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1993,1
    - Dst: cli_resource_clear
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1899,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1887,1
    - Dst: update_dataset
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1785,1
    - Dst: g_list_length
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1929,1
    - Dst: cli_resource_update_attribute
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1987,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1713,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1788,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1828,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1880,1
    - Dst: display_list
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1930,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1991,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1684,1
    - Dst: uber_parent
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1698,1
    - Dst: g_list_length
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1890,1
    - Dst: cli_resource_delete_attribute
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1910,1
    - Dst: g_list_length
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1855,1
    - Dst: display_list
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1891,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1907,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2013,1
    - Dst: clone_strip
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1717,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1750,1
    - Dst: get_active_resources
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1792,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1834,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1964,1
    - Dst: cli_resource_clear
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1985,1
    - Dst: dump_list
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1884,1
    - Dst: dump_list
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1796,1
    - Dst: cli_resource_ban
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1801,1
    - Dst: g_list_length
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1972,1
    - Dst: display_list
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1973,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 250
    argCount: 8
    argNames:
    - out
    - rsc
    - node
    - move_lifetime
    - timeout_ms
    - cib
    - promoted_role_only
    - force
    argTypes:
    - pcmk__output_t*
    - pcmk_resource_t*
    - pcmk_node_t*
    - char*
    - guint
    - cib_t*
    - gboolean
    - gboolean
    constantsTouched: []
    func_position:
      end: 2016
      start: 1669
    functionDepth: 0
    functionLinenumber: 1669
    functionLinenumberEnd: 2016
    functionName: cli_resource_restart
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - pcmk__timeout_ms2s
    - pcmk__is_bundled
    - cli_resource_ban
    - g_list_free_full
    - pcmk__is_clone
    - free
    - clone_strip
    - strdup
    - uber_parent
    - waiting_for_starts
    - wait_time_estimate
    - g_list_free
    - pcmk__s
    - find_resource_attr
    - g_list_length
    - resource_is_running_on
    - update_dataset
    - pcmk_free_scheduler
    - pcmk_is_set
    - pcmk__is_unique_clone
    - pcmk_rc_str
    - pe_bundle_replicas
    - get_active_resources
    - display_list
    - cli_resource_delete_attribute
    - pcmk_new_scheduler
    - crm_trace
    - sleep
    - dump_list
    - cli_resource_clear
    - cli_resource_update_attribute
    - pcmk__xml_free
    - crm_element_value_copy
    - pcmk__subtract_lists
    linkageType: ''
    returnType: int
    signature: 'int cli_resource_restart(pcmk__output_t *out, pcmk_resource_t *rsc,
      const pcmk_node_t *node, const char *move_lifetime, guint timeout_ms, cib_t
      *cib, gboolean promoted_role_only, gboolean force) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cli_resource_search
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2387,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2403,1
    - Dst: get_action_timeout
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2423,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2416,1
    - Dst: generate_resource_params
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2420,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2417,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2418,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2399,1
    - Dst: get_action
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2423,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2379,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2384,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2386,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2408,1
    - Dst: pcmk__is_anonymous_clone
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2426,1
    - Dst: pcmk__is_bundled
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2411,1
    - Dst: cli_resource_execute_from_params
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2430,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 45
    argCount: 9
    argNames:
    - rsc
    - requested_name
    - rsc_action
    - override_hash
    - timeout_ms
    - cib
    - resource_verbose
    - force
    - check_level
    argTypes:
    - pcmk_resource_t*
    - char*
    - char*
    - GHashTable*
    - guint
    - cib_t*
    - int
    - bool
    - int
    constantsTouched: []
    func_position:
      end: 2434
      start: 2364
    functionDepth: 0
    functionLinenumber: 2364
    functionLinenumberEnd: 2434
    functionName: cli_resource_execute
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - cli_resource_execute_from_params
    - pcmk__is_bundled
    - get_action_timeout
    - g_list_free_full
    - pcmk__strcase_any_of
    - pcmk__is_clone
    - pcmk__is_anonymous_clone
    - crm_element_value
    - pcmk__assert
    - pcmk__is_group
    - get_action
    - generate_resource_params
    - cli_resource_search
    linkageType: ''
    returnType: crm_exit_t
    signature: 'crm_exit_t cli_resource_execute(pcmk_resource_t *rsc, const char *requested_name,
      const char *rsc_action, GHashTable *override_hash, guint timeout_ms, cib_t *cib,
      int resource_verbose, bool force, int check_level) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_cib_rsc
      Src: /src/pacemaker/tools/crm_resource_runtime.c:306,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_resource_runtime.c:311,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_resource_runtime.c:314,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 6
    argNames:
    - out
    - rsc
    - cib
    - cib_xml_orig
    - attr_name
    - attr_value
    argTypes:
    - pcmk__output_t*
    - pcmk_resource_t*
    - cib_t*
    - xmlNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 321
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 321
    functionName: update_element_attribute
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - crm_xml_add
    - get_cib_rsc
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int update_element_attribute(pcmk__output_t *out, pcmk_resource_t
      *rsc, cib_t *cib, xmlNode *cib_xml_orig, const char *attr_name, const char *attr_value) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pe__health_strategy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1195,1
    - Dst: pe__node_health
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1200,1
    - Dst: pe__node_health
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1206,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1220
      start: 1192
    functionDepth: 0
    functionLinenumber: 1192
    functionLinenumberEnd: 1220
    functionName: node_is_unhealthy
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - pe__health_strategy
    - pe__node_health
    linkageType: ''
    returnType: bool
    signature: 'static bool node_is_unhealthy(pcmk_node_t *node) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/tools/crm_resource_runtime.c:237,1
    - Dst: find_resource_attr
      Src: /src/pacemaker/tools/crm_resource_runtime.c:240,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/tools/crm_resource_runtime.c:239,1
    - Dst: g_list_append
      Src: /src/pacemaker/tools/crm_resource_runtime.c:248,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/tools/crm_resource_runtime.c:251,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/tools/crm_resource_runtime.c:255,1
    - Dst: clone_strip
      Src: /src/pacemaker/tools/crm_resource_runtime.c:256,1
    - Dst: find_resource_attr
      Src: /src/pacemaker/tools/crm_resource_runtime.c:257,1
    - Dst: g_list_append
      Src: /src/pacemaker/tools/crm_resource_runtime.c:268,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:266,1
    - Dst: find_matching_attr_resources_recursive
      Src: /src/pacemaker/tools/crm_resource_runtime.c:271,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 31
    argCount: 10
    argNames:
    - out
    - rsc
    - rsc_id
    - attr_set
    - attr_set_type
    - attr_id
    - attr_name
    - cib
    - cmd
    - force
    argTypes:
    - pcmk__output_t*
    - pcmk_resource_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - cib_t*
    - char*
    - gboolean
    constantsTouched: []
    func_position:
      end: 275
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 275
    functionName: find_matching_attr_resources
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - g_list_append
    - find_resource_attr
    - pcmk__is_clone
    - free
    - find_matching_attr_resources_recursive
    - clone_strip
    - pcmk__is_primitive
    linkageType: ''
    returnType: GList*
    signature: 'static GList /*<pcmk_resource_t*>*/ *find_matching_attr_resources(pcmk__output_t
      *out, pcmk_resource_t *rsc, const char * rsc_id, const char * attr_set, const
      char * attr_set_type, const char * attr_id, const char * attr_name, cib_t *
      cib, const char * cmd, gboolean force) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2220,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2226,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2223,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2221,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2220,1
    - Dst: setenv
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2228,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2229,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2232,1
    - Dst: setenv
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2234,1
    - Dst: setenv
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2241,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - params
    - timeout_ms
    - check_level
    - verbosity
    argTypes:
    - GHashTable*
    - guint
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2242
      start: 2216
    functionDepth: 0
    functionLinenumber: 2216
    functionLinenumberEnd: 2242
    functionName: set_agent_environment
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - setenv
    - crm_strdup_printf
    - pcmk__insert_dup
    - free
    - crm_meta_name
    - g_hash_table_insert
    - pcmk__set_env_option
    linkageType: ''
    returnType: void
    signature: 'static void set_agent_environment(GHashTable *params, guint timeout_ms,
      int check_level, int verbosity) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: QB_MIN
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2294,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2300,1
    - Dst: apply_overrides
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2289,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2310,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2313,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2310,1
    - Dst: services_result2ocf
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2325,1
    - Dst: services__format_result
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2311,1
    - Dst: services__create_resource_action
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2292,1
    - Dst: set_agent_environment
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2288,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2305,1
    - Dst: resources_find_service_class
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2306,1
    - Dst: services_action_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2336,1
    - Dst: get_action
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2279,1
    - Dst: strerror
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2299,1
    - Dst: services_action_sync
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2321,1
    - Dst: services__exit_reason
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2334,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 12
    argNames:
    - out
    - rsc_name
    - rsc_class
    - rsc_prov
    - rsc_type
    - rsc_action
    - params
    - override_hash
    - timeout_ms
    - resource_verbose
    - force
    - check_level
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - GHashTable*
    - GHashTable*
    - guint
    - int
    - gboolean
    - int
    constantsTouched: []
    func_position:
      end: 2338
      start: 2270
    functionDepth: 0
    functionLinenumber: 2270
    functionLinenumberEnd: 2338
    functionName: cli_resource_execute_from_params
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - services_action_free
    - pcmk__s
    - services__format_result
    - services_action_sync
    - g_hash_table_destroy
    - resources_find_service_class
    - services__exit_reason
    - strerror
    - pcmk__str_eq
    - QB_MIN
    - apply_overrides
    - pcmk_is_set
    - services__create_resource_action
    - set_agent_environment
    - services_result2ocf
    - pcmk_get_ra_caps
    - get_action
    linkageType: ''
    returnType: crm_exit_t
    signature: 'crm_exit_t cli_resource_execute_from_params(pcmk__output_t *out, const
      char *rsc_name, const char *rsc_class, const char *rsc_prov, const char *rsc_type,
      const char *rsc_action, GHashTable *params, GHashTable *override_hash, guint
      timeout_ms, int resource_verbose, gboolean force, int check_level) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_action_config
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2351,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2354,1
    - Dst: pcmk__unpack_action_meta
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2352,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2354,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2359,1
    - Dst: QB_MIN
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2360,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - rsc
    - action
    argTypes:
    - pcmk_resource_t*
    - char*
    constantsTouched: []
    func_position:
      end: 2361
      start: 2347
    functionDepth: 0
    functionLinenumber: 2347
    functionLinenumberEnd: 2361
    functionName: get_action_timeout
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - g_hash_table_destroy
    - pcmk__unpack_action_meta
    - QB_MIN
    - pcmk__scan_ll
    - pcmk__find_action_config
    linkageType: ''
    returnType: guint
    signature: 'static guint get_action_timeout(pcmk_resource_t *rsc, const char *action) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clone_strip
      Src: /src/pacemaker/tools/crm_resource_runtime.c:193,1
    - Dst: find_resource_attr
      Src: /src/pacemaker/tools/crm_resource_runtime.c:208,1
    - Dst: g_list_append
      Src: /src/pacemaker/tools/crm_resource_runtime.c:214,1
    - Dst: find_matching_attr_resources_recursive
      Src: /src/pacemaker/tools/crm_resource_runtime.c:198,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/tools/crm_resource_runtime.c:203,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:217,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 18
    argCount: 9
    argNames:
    - out
    - result
    - rsc
    - attr_set
    - attr_set_type
    - attr_id
    - attr_name
    - cib
    - depth
    argTypes:
    - pcmk__output_t*
    - GList**
    - pcmk_resource_t*
    - char*
    - char*
    - char*
    - char*
    - cib_t*
    - int
    constantsTouched: []
    func_position:
      end: 218
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 218
    functionName: find_matching_attr_resources_recursive
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - g_list_append
    - find_resource_attr
    - pcmk__is_clone
    - find_matching_attr_resources_recursive
    - free
    - clone_strip
    linkageType: ''
    returnType: void
    signature: 'static void find_matching_attr_resources_recursive(pcmk__output_t
      *out, GList /* <pcmk_resource_t*> */ **result, pcmk_resource_t *rsc, const char
      * attr_set, const char * attr_set_type, const char * attr_id, const char * attr_name,
      cib_t * cib, int depth) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1391,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - items
    - tag
    argTypes:
    - GList*
    - char*
    constantsTouched: []
    func_position:
      end: 1394
      start: 1385
    functionDepth: 0
    functionLinenumber: 1385
    functionLinenumberEnd: 1394
    functionName: dump_list
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void dump_list(GList *items, const char *tag) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2187,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2190,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2193,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - rsc_action
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2201
      start: 2183
    functionDepth: 0
    functionLinenumber: 2183
    functionLinenumberEnd: 2201
    functionName: get_action
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - pcmk__strcase_any_of
    linkageType: ''
    returnType: char*
    signature: 'static const char *get_action(const char *rsc_action) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2259,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2260,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2262,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 2
    argNames:
    - params
    - overrides
    argTypes:
    - GHashTable*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 2265
      start: 2251
    functionDepth: 0
    functionLinenumber: 2251
    functionLinenumberEnd: 2265
    functionName: apply_overrides
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - pcmk__insert_dup
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void apply_overrides(GHashTable *params, GHashTable *overrides) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - out
    - items
    - tag
    argTypes:
    - pcmk__output_t*
    - GList*
    - char*
    constantsTouched: []
    func_position:
      end: 1403
      start: 1396
    functionDepth: 0
    functionLinenumber: 1396
    functionLinenumberEnd: 1403
    functionName: display_list
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void display_list(pcmk__output_t *out, GList *items, const
      char *tag) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_group
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1373,1
    - Dst: get_active_resources
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1376,1
    - Dst: g_list_append
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1379,1
    - Dst: resource_is_running_on
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1378,1
    - Dst: g_list_concat
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1377,1
    - Dst: strdup
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1379,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 2
    argNames:
    - host
    - rsc_list
    argTypes:
    - char*
    - GList*
    constantsTouched: []
    func_position:
      end: 1383
      start: 1360
    functionDepth: 0
    functionLinenumber: 1360
    functionLinenumberEnd: 1383
    functionName: get_active_resources
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_list_concat
    - resource_is_running_on
    - strdup
    - pcmk__is_group
    - get_active_resources
    linkageType: ''
    returnType: GList*
    signature: 'static GList *get_active_resources(const char *host, GList *rsc_list) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: action_is_pending
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2044,1
    - Dst: crm_notice
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2045,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - actions
    argTypes:
    - GList*
    constantsTouched: []
    func_position:
      end: 2050
      start: 2038
    functionDepth: 0
    functionLinenumber: 2038
    functionLinenumberEnd: 2050
    functionName: actions_are_pending
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - action_is_pending
    - crm_notice
    linkageType: ''
    returnType: bool
    signature: 'static bool actions_are_pending(const GList *actions) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__node_name
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2067,1
    - Dst: action_is_pending
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2061,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - out
    - actions
    argTypes:
    - pcmk__output_t*
    - GList*
    constantsTouched: []
    func_position:
      end: 2072
      start: 2052
    functionDepth: 0
    functionLinenumber: 2052
    functionLinenumberEnd: 2072
    functionName: print_pending_actions
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - action_is_pending
    - pcmk__node_name
    linkageType: ''
    returnType: void
    signature: 'static void print_pending_actions(pcmk__output_t *out, GList *actions) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource_runtime.c:330,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:343,1
    - Dst: find_resource_attr
      Src: /src/pacemaker/tools/crm_resource_runtime.c:336,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:355,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:356,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:360,1
    - Dst: g_list_append
      Src: /src/pacemaker/tools/crm_resource_runtime.c:363,1
    - Dst: g_list_last
      Src: /src/pacemaker/tools/crm_resource_runtime.c:376,1
    - Dst: find_matching_attr_resources
      Src: /src/pacemaker/tools/crm_resource_runtime.c:366,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:379,1
    - Dst: g_list_remove_link
      Src: /src/pacemaker/tools/crm_resource_runtime.c:378,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 35
    argCount: 11
    argNames:
    - out
    - cib
    - rsc
    - requested_name
    - attr_set
    - attr_set_type
    - attr_id
    - attr_name
    - top_id
    - force
    - resources
    argTypes:
    - pcmk__output_t*
    - cib_t*
    - pcmk_resource_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - gboolean
    - GList**
    constantsTouched: []
    func_position:
      end: 384
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 384
    functionName: resources_with_attr
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_list_remove_link
    - g_list_free
    - find_resource_attr
    - g_list_last
    - pcmk__str_eq
    - find_matching_attr_resources
    - free
    - pcmk__xml_free
    - crm_element_value_copy
    linkageType: ''
    returnType: int
    signature: 'static int resources_with_attr(pcmk__output_t *out, cib_t *cib, pcmk_resource_t
      *rsc, const char *requested_name, const char *attr_set, const char *attr_set_type,
      const char *attr_id, const char *attr_name, const char *top_id, gboolean force,
      GList **resources) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1089,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1095,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1104,1
    - Dst: pcmk__set_node_attr_flags
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1105,1
    - Dst: pcmk__attrd_api_clear_failures
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1108,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1112,1
    - Dst: clear_rsc_failures
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1117,1
    - Dst: clear_rsc_failures
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1124,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1139,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 5
    argNames:
    - controld_api
    - node
    - operation
    - interval_spec
    - scheduler
    argTypes:
    - pcmk_ipc_api_t*
    - pcmk_node_t*
    - char*
    - char*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1142
      start: 1078
    functionDepth: 0
    functionLinenumber: 1078
    functionLinenumberEnd: 1142
    functionName: cli_cleanup_all
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - pcmk__is_pacemaker_remote_node
    - pcmk__node_name
    - clear_rsc_failures
    - pcmk_rc_str
    - pcmk__assert
    - pcmk__set_node_attr_flags
    - pcmk__attrd_api_clear_failures
    linkageType: ''
    returnType: int
    signature: 'int cli_cleanup_all(pcmk_ipc_api_t *controld_api, pcmk_node_t *node,
      const char *operation, const char *interval_spec, pcmk_scheduler_t *scheduler) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1147,1
    - Dst: pcmk_parse_role
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1153,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1159,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1159,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 1
    argNames:
    - checks
    argTypes:
    - resource_checks_t*
    constantsTouched: []
    func_position:
      end: 1168
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1168
    functionName: check_role
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk_parse_role
    - pe__const_top_resource
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: 'static void check_role(resource_checks_t *checks) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1332,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1342,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1330,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1338,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1347,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 2
    argNames:
    - rsc
    - host
    argTypes:
    - pcmk_resource_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1349
      start: 1316
    functionDepth: 0
    functionLinenumber: 1316
    functionLinenumberEnd: 1349
    functionName: resource_is_running_on
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - g_list_free
    - crm_trace
    - pcmk__strcase_any_of
    linkageType: ''
    returnType: bool
    signature: 'bool resource_is_running_on(pcmk_resource_t *rsc, const char *host) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2021,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2023,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2024,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - action
    argTypes:
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 2028
      start: 2018
    functionDepth: 0
    functionLinenumber: 2018
    functionLinenumberEnd: 2028
    functionName: action_is_pending
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - pcmk_is_set
    - pcmk__str_eq
    linkageType: ''
    returnType: bool
    signature: 'static inline bool action_is_pending(const pcmk_action_t *action) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:395,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:396,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:398,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:397,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:399,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:400,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 402
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 402
    functionName: free_attr_update_data
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void free_attr_update_data(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1173,1
    - Dst: crm_is_true
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - checks
    argTypes:
    - resource_checks_t*
    constantsTouched: []
    func_position:
      end: 1179
      start: 1170
    functionDepth: 0
    functionLinenumber: 1170
    functionLinenumberEnd: 1179
    functionName: check_managed
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - crm_is_true
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: 'static void check_managed(resource_checks_t *checks) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_resource_runtime.c:54,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/tools/crm_resource_runtime.c:62,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_runtime.c:58,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/tools/crm_resource_runtime.c:56,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: prepend_node_info
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__assert_alloc
    - g_list_prepend
    - pcmk_is_set
    linkageType: ''
    returnType: void
    signature: 'static void prepend_node_info(gpointer data, gpointer user_data) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_resource_runtime.c:739,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_runtime.c:749,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_runtime.c:750,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/tools/crm_resource_runtime.c:743,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource_runtime.c:751,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/tools/crm_resource_runtime.c:761,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/tools/crm_resource_runtime.c:766,1
    - Dst: pcmk_controld_api_fail
      Src: /src/pacemaker/tools/crm_resource_runtime.c:787,1
    - Dst: pcmk_controld_api_refresh
      Src: /src/pacemaker/tools/crm_resource_runtime.c:791,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/tools/crm_resource_runtime.c:767,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/tools/crm_resource_runtime.c:773,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 47
    argCount: 5
    argNames:
    - controld_api
    - do_fail_resource
    - rsc
    - rsc_id
    - node
    argTypes:
    - pcmk_ipc_api_t*
    - bool
    - pcmk_resource_t*
    - char*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 795
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 795
    functionName: send_lrm_rsc_op
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - pcmk_controld_api_refresh
    - pcmk__is_pacemaker_remote_node
    - pcmk__node_name
    - pcmk_controld_api_fail
    - crm_element_value
    - pcmk__assert
    - pcmk__is_primitive
    - pcmk__current_node
    linkageType: ''
    returnType: int
    signature: 'static int send_lrm_rsc_op(pcmk_ipc_api_t *controld_api, bool do_fail_resource,
      pcmk_resource_t *rsc, const char *rsc_id, const pcmk_node_t *node) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_list_copy
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1003,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1008,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1056,1
    - Dst: g_hash_table_get_values
      Src: /src/pacemaker/tools/crm_resource_runtime.c:999,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1049,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1035,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1070,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1009,1
    - Dst: g_hash_table_get_values
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1017,1
    - Dst: cli_resource_delete
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1028,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1056,1
    - Dst: clear_rsc_failures
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1061,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1072,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_resource_runtime.c:978,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1005,1
    - Dst: cli_resource_delete
      Src: /src/pacemaker/tools/crm_resource_runtime.c:989,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1012,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1043,1
    - Dst: clear_rsc_fail_attrs
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1053,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1039,1
    - Dst: clear_rsc_history
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1064,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/tools/crm_resource_runtime.c:1070,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 77
    argCount: 7
    argNames:
    - controld_api
    - rsc
    - node
    - operation
    - interval_spec
    - just_failures
    - force
    argTypes:
    - pcmk_ipc_api_t*
    - pcmk_resource_t*
    - pcmk_node_t*
    - char*
    - char*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1075
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 1075
    functionName: cli_resource_delete
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - g_list_free
    - clear_rsc_history
    - g_list_copy
    - g_hash_table_get_values
    - cli_resource_delete
    - clear_rsc_failures
    - pcmk__node_name
    - pcmk_is_set
    - clear_rsc_fail_attrs
    - g_list_prepend
    - pcmk_rc_str
    - pcmk__assert
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: int
    signature: 'int cli_resource_delete(pcmk_ipc_api_t *controld_api, pcmk_resource_t
      *rsc, pcmk_node_t *node, const char *operation, const char *interval_spec, bool
      just_failures, bool force) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2456,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2492,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2548,1
    - Dst: cli_resource_clear
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2541,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2566,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2450,1
    - Dst: pe__find_active_requires
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2490,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2504,1
    - Dst: cli_resource_prefer
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2545,1
    - Dst: cli_resource_clear
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2538,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2550,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2515,1
    - Dst: uber_parent
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2458,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2460,1
    - Dst: crm_info
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2527,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2521,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2529,1
    - Dst: cli_resource_ban
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2559,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/crm_resource_runtime.c:2573,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 70
    argCount: 7
    argNames:
    - rsc
    - rsc_id
    - dest
    - move_lifetime
    - cib
    - promoted_role_only
    - force
    argTypes:
    - pcmk_resource_t*
    - char*
    - pcmk_node_t*
    - char*
    - cib_t*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 2579
      start: 2437
    functionDepth: 0
    functionLinenumber: 2437
    functionLinenumberEnd: 2579
    functionName: cli_resource_move
    functionSourceFile: /src/pacemaker/tools/crm_resource_runtime.c
    functionUses: []
    functionsReached:
    - cli_resource_ban
    - cli_resource_clear
    - cli_resource_prefer
    - pcmk__same_node
    - pcmk__is_clone
    - pcmk_is_set
    - pcmk__node_name
    - pe__find_active_requires
    - pcmk__assert
    - uber_parent
    - crm_info
    - crm_trace
    - pcmk__current_node
    linkageType: ''
    returnType: int
    signature: 'int cli_resource_move(pcmk_resource_t *rsc, const char *rsc_id, const
      pcmk_node_t *dest, const char *move_lifetime, cib_t *cib, bool promoted_role_only,
      bool force) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/cibadmin.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - scope
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 157
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 157
    functionName: scope_is_valid
    functionSourceFile: /src/pacemaker/tools/cibadmin.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    linkageType: ''
    returnType: bool
    signature: 'static inline bool scope_is_valid(const char *scope) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/cibadmin.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 129
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 129
    functionName: cib_action_is_dangerous
    functionSourceFile: /src/pacemaker/tools/cibadmin.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    linkageType: ''
    returnType: bool
    signature: 'static inline bool cib_action_is_dangerous(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/cibadmin.c:219,1
    - Dst: g_strcmp0
      Src: /src/pacemaker/tools/cibadmin.c:222,1
    - Dst: g_strcmp0
      Src: /src/pacemaker/tools/cibadmin.c:225,1
    - Dst: g_strcmp0
      Src: /src/pacemaker/tools/cibadmin.c:228,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/cibadmin.c:232,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 238
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 238
    functionName: show_access_cb
    functionSourceFile: /src/pacemaker/tools/cibadmin.c
    functionUses: []
    functionsReached:
    - g_strcmp0
    - pcmk__str_eq
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean show_access_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: set_crm_log_level
      Src: /src/pacemaker/tools/cibadmin.c:567,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/cibadmin.c:589,1
    - Dst: cib__set_call_options
      Src: /src/pacemaker/tools/cibadmin.c:652,1
    - Dst: free
      Src: /src/pacemaker/tools/cibadmin.c:736,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/cibadmin.c:766,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/cibadmin.c:750,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/cibadmin.c:790,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/cibadmin.c:857,1
    - Dst: free
      Src: /src/pacemaker/tools/cibadmin.c:849,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/cibadmin.c:539,1
    - Dst: g_free
      Src: /src/pacemaker/tools/cibadmin.c:851,1
    - Dst: do_work
      Src: /src/pacemaker/tools/cibadmin.c:776,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/cibadmin.c:684,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/cibadmin.c:770,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/cibadmin.c:818,1
    - Dst: pcmk__digest_xml
      Src: /src/pacemaker/tools/cibadmin.c:749,1
    - Dst: report_schema_unchanged
      Src: /src/pacemaker/tools/cibadmin.c:782,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/cibadmin.c:769,1
    - Dst: crm_err
      Src: /src/pacemaker/tools/cibadmin.c:785,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/tools/cibadmin.c:519,1
    - Dst: crm_bump_log_level
      Src: /src/pacemaker/tools/cibadmin.c:574,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/tools/cibadmin.c:548,1
    - Dst: pcmk_acl_required
      Src: /src/pacemaker/tools/cibadmin.c:670,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/cibadmin.c:786,1
    - Dst: printf
      Src: /src/pacemaker/tools/cibadmin.c:823,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/tools/cibadmin.c:596,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/cibadmin.c:604,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/cibadmin.c:734,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/cibadmin.c:750,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/cibadmin.c:797,1
    - Dst: pcmk__validate_xml
      Src: /src/pacemaker/tools/cibadmin.c:801,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/cibadmin.c:852,1
    - Dst: g_option_context_get_help
      Src: /src/pacemaker/tools/cibadmin.c:528,1
    - Dst: g_string_append
      Src: /src/pacemaker/tools/cibadmin.c:535,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/tools/cibadmin.c:566,1
    - Dst: g_string_free
      Src: /src/pacemaker/tools/cibadmin.c:542,1
    - Dst: g_string_free
      Src: /src/pacemaker/tools/cibadmin.c:598,1
    - Dst: cib__set_call_options
      Src: /src/pacemaker/tools/cibadmin.c:759,1
    - Dst: pcmk__acl_annotate_permissions
      Src: /src/pacemaker/tools/cibadmin.c:810,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/cibadmin.c:735,1
    - Dst: geteuid
      Src: /src/pacemaker/tools/cibadmin.c:669,1
    - Dst: g_option_context_get_help
      Src: /src/pacemaker/tools/cibadmin.c:580,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/cibadmin.c:772,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/cibadmin.c:787,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/cibadmin.c:820,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/cibadmin.c:828,1
    - Dst: print_xml_output
      Src: /src/pacemaker/tools/cibadmin.c:835,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/cibadmin.c:739,1
    - Dst: free
      Src: /src/pacemaker/tools/cibadmin.c:672,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/cibadmin.c:754,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/cibadmin.c:728,1
    - Dst: g_free
      Src: /src/pacemaker/tools/cibadmin.c:585,1
    - Dst: createEmptyCib
      Src: /src/pacemaker/tools/cibadmin.c:593,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/cibadmin.c:786,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/cibadmin.c:841,1
    - Dst: g_free
      Src: /src/pacemaker/tools/cibadmin.c:845,1
    - Dst: g_free
      Src: /src/pacemaker/tools/cibadmin.c:847,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/tools/cibadmin.c:529,1
    - Dst: pcmk__cli_help
      Src: /src/pacemaker/tools/cibadmin.c:556,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/cibadmin.c:624,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/cibadmin.c:785,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/cibadmin.c:838,1
    - Dst: g_strv_length
      Src: /src/pacemaker/tools/cibadmin.c:527,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/cibadmin.c:547,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/cibadmin.c:594,1
    - Dst: cib__set_call_options
      Src: /src/pacemaker/tools/cibadmin.c:632,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/cibadmin.c:744,1
    - Dst: pcmk__acl_evaled_render
      Src: /src/pacemaker/tools/cibadmin.c:814,1
    - Dst: crm_exit
      Src: /src/pacemaker/tools/cibadmin.c:861,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/cibadmin.c:735,1
    - Dst: crm_err
      Src: /src/pacemaker/tools/cibadmin.c:768,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/cibadmin.c:777,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/tools/cibadmin.c:522,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/tools/cibadmin.c:591,1
    - Dst: cib__set_call_options
      Src: /src/pacemaker/tools/cibadmin.c:618,1
    - Dst: cib__set_call_options
      Src: /src/pacemaker/tools/cibadmin.c:638,1
    - Dst: do_init
      Src: /src/pacemaker/tools/cibadmin.c:763,1
    - Dst: free
      Src: /src/pacemaker/tools/cibadmin.c:751,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/cibadmin.c:830,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/cibadmin.c:780,1
    - Dst: build_arg_context
      Src: /src/pacemaker/tools/cibadmin.c:520,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/tools/cibadmin.c:533,1
    - Dst: g_free
      Src: /src/pacemaker/tools/cibadmin.c:541,1
    - Dst: pcmk__digest_on_disk_cib
      Src: /src/pacemaker/tools/cibadmin.c:733,1
    - Dst: pcmk__update_schema
      Src: /src/pacemaker/tools/cibadmin.c:795,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/cibadmin.c:853,1
    - Dst: pcmk__uid2username
      Src: /src/pacemaker/tools/cibadmin.c:669,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/cibadmin.c:718,1
    - Dst: g_free
      Src: /src/pacemaker/tools/cibadmin.c:844,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/tools/cibadmin.c:842,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/cibadmin.c:583,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/tools/cibadmin.c:661,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/cibadmin.c:696,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/cibadmin.c:723,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/cibadmin.c:765,1
    - Dst: free
      Src: /src/pacemaker/tools/cibadmin.c:824,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/tools/cibadmin.c:855,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/tools/cibadmin.c:518,1
    - Dst: cib__set_call_options
      Src: /src/pacemaker/tools/cibadmin.c:570,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/cibadmin.c:597,1
    - Dst: scope_is_valid
      Src: /src/pacemaker/tools/cibadmin.c:622,1
    - Dst: pcmk__xml_read
      Src: /src/pacemaker/tools/cibadmin.c:665,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/cibadmin.c:676,1
    - Dst: pcmk__xml_read
      Src: /src/pacemaker/tools/cibadmin.c:657,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/tools/cibadmin.c:714,1
    - Dst: cib_action_is_dangerous
      Src: /src/pacemaker/tools/cibadmin.c:602,1
    - Dst: cib__set_call_options
      Src: /src/pacemaker/tools/cibadmin.c:646,1
    - Dst: g_free
      Src: /src/pacemaker/tools/cibadmin.c:846,1
    - Dst: free
      Src: /src/pacemaker/tools/cibadmin.c:848,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/tools/cibadmin.c:860,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 231
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 862
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 862
    functionName: main
    functionSourceFile: /src/pacemaker/tools/cibadmin.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - pcmk__acl_evaled_render
    - crm_exit
    - do_init
    - free
    - report_schema_unchanged
    - set_crm_log_level
    - g_string_free
    - printf
    - pcmk_acl_required
    - cib__set_call_options
    - pcmk_legacy2rc
    - pcmk__cli_init_logging
    - g_option_context_get_help
    - build_arg_context
    - pcmk__s
    - pcmk__xml_string
    - do_work
    - pcmk__acl_annotate_permissions
    - print_xml_output
    - crm_bump_log_level
    - g_free
    - pcmk_rc_str
    - crm_err
    - pcmk__cmdline_preproc
    - cib__clean_up_connection
    - g_strv_length
    - pcmk__digest_xml
    - g_string_append_c
    - g_string_append
    - createEmptyCib
    - pcmk__update_schema
    - strcmp
    - pcmk__str_eq
    - pcmk__output_and_clear_error
    - pcmk__xml_read
    - g_string_sized_new
    - pcmk__cli_help
    - scope_is_valid
    - pcmk__xml_parse
    - pcmk__digest_on_disk_cib
    - pcmk__validate_xml
    - crm_trace
    - g_strfreev
    - crm_log_xml_debug
    - pcmk_rc2exitc
    - crm_xml_add
    - g_set_error
    - pcmk__xml_free
    - pcmk__new_common_args
    - pcmk__free_arg_context
    - geteuid
    - fprintf
    - cib_action_is_dangerous
    - pcmk__uid2username
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/cibadmin.c:78,1
    - Dst: printf
      Src: /src/pacemaker/tools/cibadmin.c:89,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/tools/cibadmin.c:81,1
    - Dst: print_xml_output
      Src: /src/pacemaker/tools/cibadmin.c:85,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/cibadmin.c:79,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/tools/cibadmin.c:93,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/tools/cibadmin.c:95,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/cibadmin.c:97,1
    - Dst: g_string_free
      Src: /src/pacemaker/tools/cibadmin.c:98,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 100
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 100
    functionName: print_xml_output
    functionSourceFile: /src/pacemaker/tools/cibadmin.c
    functionUses: []
    functionsReached:
    - fprintf
    - print_xml_output
    - pcmk_is_set
    - pcmk__xe_is
    - g_string_sized_new
    - g_string_free
    - crm_element_value
    - pcmk__xml_string
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void print_xml_output(xmlNode * xml) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/cibadmin.c:165,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/cibadmin.c:174,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/cibadmin.c:168,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/cibadmin.c:177,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/cibadmin.c:171,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/cibadmin.c:180,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/cibadmin.c:183,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/cibadmin.c:186,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/cibadmin.c:189,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/cibadmin.c:192,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/cibadmin.c:196,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/cibadmin.c:200,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/cibadmin.c:203,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/cibadmin.c:198,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 213
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 213
    functionName: command_cb
    functionSourceFile: /src/pacemaker/tools/cibadmin.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean command_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/cibadmin.c:244,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/cibadmin.c:255,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/cibadmin.c:247,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 257
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 257
    functionName: section_cb
    functionSourceFile: /src/pacemaker/tools/cibadmin.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean section_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/tools/cibadmin.c:493,1
    - Dst: g_option_context_set_description
      Src: /src/pacemaker/tools/cibadmin.c:494,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/cibadmin.c:498,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/cibadmin.c:500,1
    - Dst: pcmk__add_main_args
      Src: /src/pacemaker/tools/cibadmin.c:496,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/cibadmin.c:502,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - args
    argTypes:
    - pcmk__common_args_t*
    constantsTouched: []
    func_position:
      end: 505
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 505
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/tools/cibadmin.c
    functionUses: []
    functionsReached:
    - pcmk__add_arg_group
    - g_option_context_set_description
    - pcmk__add_main_args
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/tools/cibadmin.c:869,1
    - Dst: crm_trace
      Src: /src/pacemaker/tools/cibadmin.c:878,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/cibadmin.c:874,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/tools/cibadmin.c:870,1
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/tools/cibadmin.c:871,1
    - Dst: cib_internal_op
      Src: /src/pacemaker/tools/cibadmin.c:879,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - xmlNode*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 882
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 882
    functionName: do_work
    functionSourceFile: /src/pacemaker/tools/cibadmin.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - cib_internal_op
    - pcmk_find_cib_element
    - strcmp
    - pcmk__xe_is
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int do_work(xmlNode *input, xmlNode **output) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cib_new
      Src: /src/pacemaker/tools/cibadmin.c:889,1
    - Dst: cib__signon_attempts
      Src: /src/pacemaker/tools/cibadmin.c:890,1
    - Dst: crm_err
      Src: /src/pacemaker/tools/cibadmin.c:892,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/tools/cibadmin.c:892,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/cibadmin.c:893,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/tools/cibadmin.c:894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 898
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 898
    functionName: do_init
    functionSourceFile: /src/pacemaker/tools/cibadmin.c
    functionUses: []
    functionsReached:
    - cib_new
    - cib__signon_attempts
    - pcmk_strerror
    - fprintf
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int do_init(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/cibadmin.c:106,1
    - Dst: crm_info
      Src: /src/pacemaker/tools/cibadmin.c:108,1
    - Dst: printf
      Src: /src/pacemaker/tools/cibadmin.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: report_schema_unchanged
    functionSourceFile: /src/pacemaker/tools/cibadmin.c
    functionUses: []
    functionsReached:
    - crm_info
    - printf
    - pcmk_rc_str
    linkageType: ''
    returnType: void
    signature: 'static void report_schema_unchanged(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/tools/stonith_admin.c:292,1
    - Dst: pcmk__scan_nvpair
      Src: /src/pacemaker/tools/stonith_admin.c:294,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/stonith_admin.c:297,1
    - Dst: crm_info
      Src: /src/pacemaker/tools/stonith_admin.c:300,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/stonith_admin.c:297,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/tools/stonith_admin.c:303,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/tools/stonith_admin.c:306,1
    - Dst: g_free
      Src: /src/pacemaker/tools/stonith_admin.c:309,1
    - Dst: g_free
      Src: /src/pacemaker/tools/stonith_admin.c:310,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 312
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 312
    functionName: add_stonith_params
    functionSourceFile: /src/pacemaker/tools/stonith_admin.c
    functionUses: []
    functionsReached:
    - pcmk__insert_dup
    - pcmk__strkey_table
    - g_set_error
    - pcmk__scan_nvpair
    - pcmk_rc_str
    - crm_info
    - g_free
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean add_stonith_params(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/tools/stonith_admin.c:267,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/tools/stonith_admin.c:267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: add_stonith_device
    functionSourceFile: /src/pacemaker/tools/stonith_admin.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - g_list_append
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean add_stonith_device(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/tools/stonith_admin.c:333,1
    - Dst: pcmk__add_main_args
      Src: /src/pacemaker/tools/stonith_admin.c:338,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/stonith_admin.c:344,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/stonith_admin.c:340,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/stonith_admin.c:342,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/stonith_admin.c:346,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 349
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 349
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/tools/stonith_admin.c
    functionUses: []
    functionsReached:
    - pcmk__add_arg_group
    - pcmk__add_main_args
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/stonith_admin.c:244,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/tools/stonith_admin.c:255,1
    - Dst: getenv
      Src: /src/pacemaker/tools/stonith_admin.c:245,1
    - Dst: crm_info
      Src: /src/pacemaker/tools/stonith_admin.c:252,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/stonith_admin.c:249,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/tools/stonith_admin.c:258,1
    - Dst: free
      Src: /src/pacemaker/tools/stonith_admin.c:261,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 263
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 263
    functionName: add_env_params
    functionSourceFile: /src/pacemaker/tools/stonith_admin.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pcmk__insert_dup
    - pcmk__strkey_table
    - crm_info
    - g_set_error
    - free
    - getenv
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean add_env_params(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_get_msec
      Src: /src/pacemaker/tools/stonith_admin.c:274,1
    - Dst: crm_warn
      Src: /src/pacemaker/tools/stonith_admin.c:277,1
    - Dst: QB_MIN
      Src: /src/pacemaker/tools/stonith_admin.c:280,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 283
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 283
    functionName: add_tolerance
    functionSourceFile: /src/pacemaker/tools/stonith_admin.c
    functionUses: []
    functionsReached:
    - crm_warn
    - QB_MIN
    - crm_get_msec
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean add_tolerance(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/tools/stonith_admin.c:316,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/stonith_admin.c:317,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: set_tag
    functionSourceFile: /src/pacemaker/tools/stonith_admin.c
    functionUses: []
    functionsReached:
    - free
    - crm_strdup_printf
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean set_tag(const gchar *option_name, const gchar *optarg, gpointer
      data, GError **error) '
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/tools/stonith_admin.c:408,1
    - Dst: free
      Src: /src/pacemaker/tools/stonith_admin.c:712,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/tools/stonith_admin.c:716,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/stonith_admin.c:656,1
    - Dst: crm_info
      Src: /src/pacemaker/tools/stonith_admin.c:698,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/stonith_admin.c:592,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/stonith_admin.c:632,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/stonith_admin.c:619,1
    - Dst: pcmk__fence_last
      Src: /src/pacemaker/tools/stonith_admin.c:679,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/tools/stonith_admin.c:713,1
    - Dst: pcmk__fence_validate
      Src: /src/pacemaker/tools/stonith_admin.c:693,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/stonith_admin.c:698,1
    - Dst: build_arg_context
      Src: /src/pacemaker/tools/stonith_admin.c:406,1
    - Dst: request_fencing
      Src: /src/pacemaker/tools/stonith_admin.c:667,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/tools/stonith_admin.c:709,1
    - Dst: pcmk__output_enable_list_element
      Src: /src/pacemaker/tools/stonith_admin.c:428,1
    - Dst: request_fencing
      Src: /src/pacemaker/tools/stonith_admin.c:671,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/stonith_admin.c:648,1
    - Dst: g_option_context_get_help
      Src: /src/pacemaker/tools/stonith_admin.c:547,1
    - Dst: request_fencing
      Src: /src/pacemaker/tools/stonith_admin.c:675,1
    - Dst: pcmk__fence_installed
      Src: /src/pacemaker/tools/stonith_admin.c:572,1
    - Dst: pcmk__fence_registered
      Src: /src/pacemaker/tools/stonith_admin.c:580,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/tools/stonith_admin.c:703,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/tools/stonith_admin.c:711,1
    - Dst: g_option_context_get_help
      Src: /src/pacemaker/tools/stonith_admin.c:538,1
    - Dst: stonith__api_new
      Src: /src/pacemaker/tools/stonith_admin.c:558,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/tools/stonith_admin.c:611,1
    - Dst: pcmk__fence_register_level
      Src: /src/pacemaker/tools/stonith_admin.c:645,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/stonith_admin.c:663,1
    - Dst: stonith__key_value_freeall
      Src: /src/pacemaker/tools/stonith_admin.c:617,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/tools/stonith_admin.c:690,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/tools/stonith_admin.c:409,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/tools/stonith_admin.c:405,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/stonith_admin.c:574,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/stonith_admin.c:582,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/stonith_admin.c:640,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/stonith_admin.c:424,1
    - Dst: g_free
      Src: /src/pacemaker/tools/stonith_admin.c:551,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/tools/stonith_admin.c:404,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/stonith_admin.c:629,1
    - Dst: pcmk__fence_unregister_level
      Src: /src/pacemaker/tools/stonith_admin.c:637,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/stonith_admin.c:699,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/stonith_admin.c:622,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/stonith_admin.c:702,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/tools/stonith_admin.c:612,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/tools/stonith_admin.c:610,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/tools/stonith_admin.c:420,1
    - Dst: g_free
      Src: /src/pacemaker/tools/stonith_admin.c:541,1
    - Dst: crm_log_args
      Src: /src/pacemaker/tools/stonith_admin.c:508,1
    - Dst: pcmk__fence_history
      Src: /src/pacemaker/tools/stonith_admin.c:683,1
    - Dst: pcmk__fence_list_targets
      Src: /src/pacemaker/tools/stonith_admin.c:596,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/tools/stonith_admin.c:721,1
    - Dst: strdup
      Src: /src/pacemaker/tools/stonith_admin.c:417,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/stonith_admin.c:423,1
    - Dst: crm_log_args
      Src: /src/pacemaker/tools/stonith_admin.c:488,1
    - Dst: crm_log_args
      Src: /src/pacemaker/tools/stonith_admin.c:495,1
    - Dst: crm_log_args
      Src: /src/pacemaker/tools/stonith_admin.c:502,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/tools/stonith_admin.c:565,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/tools/stonith_admin.c:705,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/tools/stonith_admin.c:414,1
    - Dst: pcmk__fence_metadata
      Src: /src/pacemaker/tools/stonith_admin.c:653,1
    - Dst: stonith__register_messages
      Src: /src/pacemaker/tools/stonith_admin.c:430,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/stonith_admin.c:598,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 252
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 725
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 725
    functionName: main
    functionSourceFile: /src/pacemaker/tools/stonith_admin.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - stonith__register_messages
    - pcmk__register_formats
    - g_hash_table_destroy
    - request_fencing
    - g_list_free_full
    - free
    - strdup
    - pcmk__fence_last
    - crm_log_args
    - pcmk__fence_metadata
    - stonith__api_free
    - pcmk__fence_registered
    - pcmk_legacy2rc
    - pcmk__cli_init_logging
    - g_option_context_get_help
    - build_arg_context
    - pcmk__fence_validate
    - pcmk_rc_str
    - g_free
    - pcmk__cmdline_preproc
    - g_hash_table_iter_next
    - pcmk__unregister_formats
    - pcmk__output_and_clear_error
    - pcmk__fence_installed
    - pcmk__output_enable_list_element
    - pcmk__fence_unregister_level
    - stonith__key_value_freeall
    - pcmk_strerror
    - crm_info
    - stonith__key_value_add
    - pcmk__output_new
    - g_strfreev
    - pcmk__fence_register_level
    - g_list_nth_data
    - pcmk_rc2exitc
    - g_set_error
    - stonith__api_new
    - pcmk__output_free
    - pcmk__new_common_args
    - pcmk__free_arg_context
    - pcmk__fence_list_targets
    - g_hash_table_iter_init
    - pcmk__fence_history
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__request_fencing
      Src: /src/pacemaker/tools/stonith_admin.c:357,1
    - Dst: free
      Src: /src/pacemaker/tools/stonith_admin.c:372,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/stonith_admin.c:363,1
    - Dst: strcmp
      Src: /src/pacemaker/tools/stonith_admin.c:366,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/stonith_admin.c:371,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/stonith_admin.c:376,1
    - Dst: free
      Src: /src/pacemaker/tools/stonith_admin.c:383,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 4
    argNames:
    - st
    - target
    - command
    - error
    argTypes:
    - stonith_t*
    - char*
    - char*
    - GError**
    constantsTouched: []
    func_position:
      end: 385
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 385
    functionName: request_fencing
    functionSourceFile: /src/pacemaker/tools/stonith_admin.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - strcmp
    - g_set_error
    - free
    - pcmk_rc_str
    - pcmk__request_fencing
    linkageType: ''
    returnType: int
    signature: 'static int request_fencing(stonith_t *st, const char *target, const
      char *command, GError **error) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_node.c:135,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_node.c:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: remove_cb
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean remove_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_node.c:213,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_node.c:214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: node_name_default
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int node_name_default(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_node.c:223,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_node.c:233,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_node.c:226,1
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_node.c:224,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/tools/crm_node.c:228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 235
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 235
    functionName: node_name_xml
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - free
    - va_arg
    - pcmk__output_create_xml_node
    - crm_strdup_printf
    linkageType: ''
    returnType: int
    signature: 'static int node_name_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_node.c:241,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_node.c:247,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_node.c:248,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/tools/crm_node.c:248,1
    - Dst: g_string_free
      Src: /src/pacemaker/tools/crm_node.c:254,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 259
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 259
    functionName: partition_list_default
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - pcmk__add_separated_word
    - pcmk__s
    - pcmk__str_eq
    - va_arg
    - g_string_free
    linkageType: ''
    returnType: int
    signature: 'static int partition_list_default(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_node.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 295
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 295
    functionName: quorum_default
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int quorum_default(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_node.c:300,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/tools/crm_node.c:302,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/tools/crm_node.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 306
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 306
    functionName: quorum_xml
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__btoa
    - pcmk__output_create_xml_node
    linkageType: ''
    returnType: int
    signature: 'static int quorum_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_new_ipc_api
      Src: /src/pacemaker/tools/crm_node.c:396,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_node.c:398,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_node.c:400,1
    - Dst: pcmk__connect_ipc
      Src: /src/pacemaker/tools/crm_node.c:406,1
    - Dst: pcmk_register_ipc_callback
      Src: /src/pacemaker/tools/crm_node.c:403,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_node.c:408,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_node.c:409,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/tools/crm_node.c:411,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_node.c:411,1
    - Dst: pcmk_controld_api_list_nodes
      Src: /src/pacemaker/tools/crm_node.c:415,1
    - Dst: pcmk_disconnect_ipc
      Src: /src/pacemaker/tools/crm_node.c:418,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_node.c:421,1
    - Dst: g_main_loop_run
      Src: /src/pacemaker/tools/crm_node.c:427,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/tools/crm_node.c:430,1
    - Dst: g_main_loop_new
      Src: /src/pacemaker/tools/crm_node.c:426,1
    - Dst: g_main_loop_unref
      Src: /src/pacemaker/tools/crm_node.c:428,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_node.c:419,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_node.c:420,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 431
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 431
    functionName: run_controller_mainloop
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - pcmk_ipc_name
    - g_main_loop_unref
    - g_main_loop_new
    - pcmk_rc2exitc
    - pcmk__connect_ipc
    - pcmk_disconnect_ipc
    - pcmk_new_ipc_api
    - g_set_error
    - g_main_loop_run
    - pcmk_controld_api_list_nodes
    - pcmk_rc_str
    - pcmk_register_ipc_callback
    - pcmk_free_ipc_api
    linkageType: ''
    returnType: void
    signature: 'static void run_controller_mainloop(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_new_ipc_api
      Src: /src/pacemaker/tools/crm_node.c:629,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_node.c:642,1
    - Dst: pcmk_ipc_purge_node
      Src: /src/pacemaker/tools/crm_node.c:639,1
    - Dst: pcmk__connect_ipc
      Src: /src/pacemaker/tools/crm_node.c:634,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_node.c:644,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/tools/crm_node.c:644,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_node.c:645,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/tools/crm_node.c:647,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - server
    - node_name
    - node_id
    argTypes:
    - enum pcmk_ipc_server
    - char*
    - long
    constantsTouched: []
    func_position:
      end: 649
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 649
    functionName: purge_node_from
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - pcmk_ipc_name
    - pcmk__s
    - pcmk__connect_ipc
    - pcmk_new_ipc_api
    - g_set_error
    - pcmk_rc_str
    - pcmk_free_ipc_api
    - pcmk_ipc_purge_node
    linkageType: ''
    returnType: int
    signature: 'static int purge_node_from(enum pcmk_ipc_server server, const char
      *node_name, long node_id) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__query_node_info
      Src: /src/pacemaker/tools/crm_node.c:437,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_node.c:452,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_node.c:445,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_node.c:453,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_node.c:456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 457
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 457
    functionName: print_node_id
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - pcmk__query_node_info
    - pcmk_rc_str
    - pcmk_rc2exitc
    - g_set_error
    linkageType: ''
    returnType: void
    signature: 'static void print_node_id(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_node.c:107,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_node.c:111,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_node.c:109,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_node.c:109,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_node.c:107,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_node.c:111,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_node.c:113,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_node.c:113,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_node.c:115,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_node.c:115,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_node.c:118,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 123
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 123
    functionName: command_cb
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean command_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_node.c:188,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_node.c:202,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_node.c:194,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/tools/crm_node.c:196,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 208
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 208
    functionName: simple_node_list_xml
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - free
    - va_arg
    - pcmk__output_create_xml_node
    - crm_strdup_printf
    linkageType: ''
    returnType: int
    signature: 'static int simple_node_list_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_node.c:265,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_node.c:273,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_node.c:272,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/tools/crm_node.c:275,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_node.c:280,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 286
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 286
    functionName: partition_list_xml
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - crm_strdup_printf
    - pcmk__str_eq
    - va_arg
    - free
    linkageType: ''
    returnType: int
    signature: 'static int partition_list_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/tools/crm_node.c:329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 331
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 331
    functionName: sort_node
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - pcmk__numeric_strcasecmp
    linkageType: ''
    returnType: gint
    signature: 'static gint sort_node(gconstpointer a, gconstpointer b) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/pacemaker/tools/crm_node.c:467,1
    - Dst: pcmk__query_node_name
      Src: /src/pacemaker/tools/crm_node.c:482,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_node.c:484,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_node.c:492,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_node.c:496,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_node.c:497,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_node.c:500,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - nodeid
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 501
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 501
    functionName: print_node_name
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - pcmk__query_node_name
    - g_set_error
    - free
    - pcmk_rc_str
    - getenv
    linkageType: ''
    returnType: void
    signature: 'static void print_node_name(uint32_t nodeid) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/tools/crm_node.c:547,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_node.c:555,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_node.c:549,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/tools/crm_node.c:551,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_node.c:556,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 5
    argNames:
    - cib
    - element
    - section
    - node_name
    - node_id
    argTypes:
    - cib_t*
    - char*
    - char*
    - char*
    - long
    constantsTouched: []
    func_position:
      end: 557
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 557
    functionName: remove_from_section
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - pcmk__xml_free
    - crm_xml_add_ll
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int remove_from_section(cib_t *cib, const char *element, const
      char *section, const char *node_name, long node_id) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/pacemaker/tools/crm_node.c:725,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_node.c:736,1
    - Dst: purge_node_from_fencer
      Src: /src/pacemaker/tools/crm_node.c:742,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/tools/crm_node.c:733,1
    - Dst: purge_node_from
      Src: /src/pacemaker/tools/crm_node.c:734,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_node.c:744,1
    - Dst: purge_node_from_cib
      Src: /src/pacemaker/tools/crm_node.c:749,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_node.c:750,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - target_uname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 751
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 751
    functionName: remove_node
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - purge_node_from_fencer
    - purge_node_from_cib
    - pcmk_rc2exitc
    - PCMK__NELEM
    - purge_node_from
    - strtol
    linkageType: ''
    returnType: void
    signature: 'static void remove_node(const char *target_uname) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/tools/crm_node.c:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: name_cb
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - pcmk__scan_min_int
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean name_cb(const gchar *option_name, const gchar *optarg, gpointer
      data, GError **error) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_node.c:343,1
    - Dst: g_list_sort
      Src: /src/pacemaker/tools/crm_node.c:371,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_node.c:358,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_node.c:365,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/tools/crm_node.c:360,1
    - Dst: pcmk_disconnect_ipc
      Src: /src/pacemaker/tools/crm_node.c:382,1
    - Dst: pcmk_quit_main_loop
      Src: /src/pacemaker/tools/crm_node.c:383,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 24
    argCount: 5
    argNames:
    - controld_api
    - event_type
    - status
    - event_data
    - user_data
    argTypes:
    - pcmk_ipc_api_t*
    - enum pcmk_ipc_event
    - crm_exit_t
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 384
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 384
    functionName: controller_event_cb
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - g_list_sort
    - crm_exit_str
    - pcmk_disconnect_ipc
    - pcmk_quit_main_loop
    - g_set_error
    linkageType: ''
    returnType: void
    signature: 'static void controller_event_cb(pcmk_ipc_api_t *controld_api, enum
      pcmk_ipc_event event_type, crm_exit_t status, void *event_data, void *user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__query_node_info
      Src: /src/pacemaker/tools/crm_node.c:507,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_node.c:522,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_node.c:515,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_node.c:523,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_node.c:526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 527
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 527
    functionName: print_quorum
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - pcmk__query_node_info
    - pcmk_rc_str
    - pcmk_rc2exitc
    - g_set_error
    linkageType: ''
    returnType: void
    signature: 'static void print_quorum(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/tools/crm_node.c:765,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_node.c:772,1
    - Dst: pcmk__add_main_args
      Src: /src/pacemaker/tools/crm_node.c:770,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_node.c:774,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 777
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 777
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - pcmk__add_arg_group
    - pcmk__add_main_args
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/tools/crm_node.c:785,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/tools/crm_node.c:795,1
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/tools/crm_node.c:830,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_node.c:815,1
    - Dst: print_node_name
      Src: /src/pacemaker/tools/crm_node.c:846,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/crm_node.c:863,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/tools/crm_node.c:866,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/tools/crm_node.c:797,1
    - Dst: g_option_context_get_help
      Src: /src/pacemaker/tools/crm_node.c:812,1
    - Dst: print_node_name
      Src: /src/pacemaker/tools/crm_node.c:838,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_node.c:822,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/tools/crm_node.c:864,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/tools/crm_node.c:872,1
    - Dst: crm_exit
      Src: /src/pacemaker/tools/crm_node.c:873,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/tools/crm_node.c:789,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_node.c:799,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_node.c:800,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_node.c:802,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/tools/crm_node.c:829,1
    - Dst: print_node_id
      Src: /src/pacemaker/tools/crm_node.c:834,1
    - Dst: run_controller_mainloop
      Src: /src/pacemaker/tools/crm_node.c:855,1
    - Dst: build_arg_context
      Src: /src/pacemaker/tools/crm_node.c:787,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/tools/crm_node.c:786,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/tools/crm_node.c:790,1
    - Dst: print_quorum
      Src: /src/pacemaker/tools/crm_node.c:842,1
    - Dst: remove_node
      Src: /src/pacemaker/tools/crm_node.c:850,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/tools/crm_node.c:870,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 49
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 874
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 874
    functionName: main
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - pcmk__register_formats
    - crm_exit
    - print_node_name
    - pcmk__cli_init_logging
    - g_option_context_get_help
    - build_arg_context
    - pcmk_rc_str
    - g_free
    - pcmk__cmdline_preproc
    - pcmk__free_arg_context
    - pcmk__register_messages
    - pcmk__unregister_formats
    - run_controller_mainloop
    - pcmk__output_and_clear_error
    - print_node_id
    - pcmk__output_new
    - g_strfreev
    - pcmk_rc2exitc
    - print_quorum
    - g_set_error
    - pcmk__output_free
    - pcmk__new_common_args
    - pcmk__register_lib_messages
    - remove_node
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__connect_generic_ipc
      Src: /src/pacemaker/tools/crm_node.c:678,1
    - Dst: crm_ipc_destroy
      Src: /src/pacemaker/tools/crm_node.c:684,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/tools/crm_node.c:693,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_node.c:699,1
    - Dst: fprintf
      Src: /src/pacemaker/tools/crm_node.c:702,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_node.c:703,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_node.c:705,1
    - Dst: crm_ipc_new
      Src: /src/pacemaker/tools/crm_node.c:668,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_node.c:674,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_node.c:672,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_node.c:671,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_node.c:680,1
    - Dst: crm_ipc_send
      Src: /src/pacemaker/tools/crm_node.c:695,1
    - Dst: crm_ipc_close
      Src: /src/pacemaker/tools/crm_node.c:706,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_node.c:681,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_node.c:683,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_node.c:683,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/tools/crm_node.c:691,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_node.c:703,1
    - Dst: crm_debug
      Src: /src/pacemaker/tools/crm_node.c:698,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_node.c:701,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/tools/crm_node.c:688,1
    - Dst: crm_ipc_destroy
      Src: /src/pacemaker/tools/crm_node.c:707,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 2
    argNames:
    - node_name
    - node_id
    argTypes:
    - char*
    - long
    constantsTouched: []
    func_position:
      end: 709
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 709
    functionName: purge_node_from_fencer
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_ipc_close
    - crm_ipc_destroy
    - crm_ipc_new
    - pcmk__s
    - pcmk_rc2exitc
    - crm_xml_add_ll
    - crm_xml_add
    - crm_ipc_send
    - g_set_error
    - pcmk__xml_free
    - pcmk_rc_str
    - pcmk__new_request
    - pcmk__connect_generic_ipc
    - fprintf
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int purge_node_from_fencer(const char *node_name, long node_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_node.c:157,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_node.c:159,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_node.c:165,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/tools/crm_node.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: node_id_xml
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - free
    - va_arg
    - pcmk__output_create_xml_node
    - crm_strdup_printf
    linkageType: ''
    returnType: int
    signature: 'static int node_id_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_node.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: node_id_default
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int node_id_default(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/tools/crm_node.c:173,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_node.c:178,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_node.c:177,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 182
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 182
    functionName: simple_node_list_default
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__s
    linkageType: ''
    returnType: int
    signature: 'static int simple_node_list_default(pcmk__output_t *out, va_list args) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cib_new
      Src: /src/pacemaker/tools/crm_node.c:577,1
    - Dst: cib__signon_attempts
      Src: /src/pacemaker/tools/crm_node.c:581,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_node.c:586,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/tools/crm_node.c:587,1
    - Dst: remove_from_section
      Src: /src/pacemaker/tools/crm_node.c:592,1
    - Dst: remove_from_section
      Src: /src/pacemaker/tools/crm_node.c:595,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/tools/crm_node.c:602,1
    - Dst: crm_debug
      Src: /src/pacemaker/tools/crm_node.c:605,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_node.c:606,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - node_name
    - node_id
    argTypes:
    - char*
    - long
    constantsTouched: []
    func_position:
      end: 609
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 609
    functionName: purge_node_from_cib
    functionSourceFile: /src/pacemaker/tools/crm_node.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - crm_debug
    - pcmk__s
    - cib_new
    - cib__signon_attempts
    - remove_from_section
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int purge_node_from_cib(const char *node_name, long node_id) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__scan_nvpair
      Src: /src/pacemaker/tools/crm_resource.c:502,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_resource.c:515,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_resource.c:516,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/tools/crm_resource.c:514,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/tools/crm_resource.c:512,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 518
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 518
    functionName: option_cb
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk__scan_nvpair
    - pcmk__strkey_table
    - pcmk__insert_dup
    - g_free
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean option_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__node_name
      Src: /src/pacemaker/tools/crm_resource.c:1003,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/tools/crm_resource.c:1007,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:1013,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/tools/crm_resource.c:1008,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:1012,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1016,1
    - Dst: pcmk__set_node_attr_flags
      Src: /src/pacemaker/tools/crm_resource.c:1019,1
    - Dst: crm_debug
      Src: /src/pacemaker/tools/crm_resource.c:1028,1
    - Dst: pcmk__attrd_api_clear_failures
      Src: /src/pacemaker/tools/crm_resource.c:1031,1
    - Dst: pcmk_controld_api_reprobe
      Src: /src/pacemaker/tools/crm_resource.c:1037,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1043,1
    - Dst: start_mainloop
      Src: /src/pacemaker/tools/crm_resource.c:1039,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 3
    argNames:
    - out
    - node
    - controld_api
    argTypes:
    - pcmk__output_t*
    - pcmk_node_t*
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 1044
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 1044
    functionName: refresh
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - crm_debug
    - start_mainloop
    - pcmk_rc2exitc
    - g_set_error
    - pcmk__is_pacemaker_remote_node
    - pcmk__node_name
    - pcmk_controld_api_reprobe
    - _
    - pcmk__set_node_attr_flags
    - pcmk__attrd_api_clear_failures
    - pcmk__current_node
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t refresh(pcmk__output_t *out, const pcmk_node_t *node,
      pcmk_ipc_api_t *controld_api) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__list_agents
      Src: /src/pacemaker/tools/crm_resource.c:1487,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1489,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1490
      start: 1482
    functionDepth: 0
    functionLinenumber: 1482
    functionLinenumberEnd: 1490
    functionName: handle_list_agents
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk__list_agents
    - pcmk_rc2exitc
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_list_agents(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__list_alternatives
      Src: /src/pacemaker/tools/crm_resource.c:1509,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1511,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1512
      start: 1504
    functionDepth: 0
    functionLinenumber: 1504
    functionLinenumberEnd: 1512
    functionName: handle_list_alternatives
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - pcmk__list_alternatives
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_list_alternatives(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__list_fencing_params
      Src: /src/pacemaker/tools/crm_resource.c:1539,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1544,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1540,1
    - Dst: pcmk__list_primitive_meta
      Src: /src/pacemaker/tools/crm_resource.c:1543,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:1548,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 10
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1552
      start: 1529
    functionDepth: 0
    functionLinenumber: 1529
    functionLinenumberEnd: 1552
    functionName: handle_list_options
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - g_set_error
    - pcmk_rc2exitc
    - pcmk__list_primitive_meta
    - pcmk__list_fencing_params
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_list_options(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cli_resource_print
      Src: /src/pacemaker/tools/crm_resource.c:1697,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1699,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1700
      start: 1692
    functionDepth: 0
    functionLinenumber: 1692
    functionLinenumberEnd: 1700
    functionName: handle_query_xml_raw
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - cli_resource_print
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_query_xml_raw(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_get_msec
      Src: /src/pacemaker/tools/crm_resource.c:524,1
    - Dst: QB_MIN
      Src: /src/pacemaker/tools/crm_resource.c:529,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 531
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 531
    functionName: timeout_cb
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - QB_MIN
    - crm_get_msec
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean timeout_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/tools/crm_resource.c:860,1
    - Dst: pe__find_active_requires
      Src: /src/pacemaker/tools/crm_resource.c:862,1
    - Dst: cli_resource_ban
      Src: /src/pacemaker/tools/crm_resource.c:865,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource.c:869,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/tools/crm_resource.c:880,1
    - Dst: cli_resource_ban
      Src: /src/pacemaker/tools/crm_resource.c:885,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:892,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:893,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:903,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:904,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 4
    argNames:
    - out
    - rsc
    - cib_conn
    - move_lifetime
    argTypes:
    - pcmk__output_t*
    - pcmk_resource_t*
    - cib_t*
    - char*
    constantsTouched: []
    func_position:
      end: 911
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 911
    functionName: ban_or_move
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - cli_resource_ban
    - g_set_error
    - pcmk_is_set
    - _
    - pe__find_active_requires
    - pcmk__current_node
    linkageType: ''
    returnType: int
    signature: 'static int ban_or_move(pcmk__output_t *out, pcmk_resource_t *rsc,
      cib_t *cib_conn, const char *move_lifetime) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uber_parent
      Src: /src/pacemaker/tools/crm_resource.c:1053,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/tools/crm_resource.c:1058,1
    - Dst: cli_resource_delete
      Src: /src/pacemaker/tools/crm_resource.c:1059,1
    - Dst: crm_debug
      Src: /src/pacemaker/tools/crm_resource.c:1056,1
    - Dst: cli_resource_check
      Src: /src/pacemaker/tools/crm_resource.c:1064,1
    - Dst: start_mainloop
      Src: /src/pacemaker/tools/crm_resource.c:1071,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - out
    - rsc
    - node
    - controld_api
    argTypes:
    - pcmk__output_t*
    - pcmk_resource_t*
    - pcmk_node_t*
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 1073
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1073
    functionName: refresh_resource
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - crm_debug
    - start_mainloop
    - cli_resource_delete
    - pcmk__node_name
    - cli_resource_check
    - uber_parent
    linkageType: ''
    returnType: void
    signature: 'static void refresh_resource(pcmk__output_t *out, pcmk_resource_t
      *rsc, pcmk_node_t *node, pcmk_ipc_api_t *controld_api) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cli_resource_print_operations
      Src: /src/pacemaker/tools/crm_resource.c:1498,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1501,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1502
      start: 1492
    functionDepth: 0
    functionLinenumber: 1492
    functionLinenumberEnd: 1502
    functionName: handle_list_all_ops
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - cli_resource_print_operations
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_list_all_ops(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1526,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1527
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1527
    functionName: handle_list_instances
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_list_instances(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__list_providers
      Src: /src/pacemaker/tools/crm_resource.c:1559,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1561,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1562
      start: 1554
    functionDepth: 0
    functionLinenumber: 1554
    functionLinenumberEnd: 1562
    functionName: handle_list_providers
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - pcmk__list_providers
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_list_providers(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: refresh
      Src: /src/pacemaker/tools/crm_resource.c:1708,1
    - Dst: refresh_resource
      Src: /src/pacemaker/tools/crm_resource.c:1710,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1719
      start: 1702
    functionDepth: 0
    functionLinenumber: 1702
    functionLinenumberEnd: 1719
    functionName: handle_refresh
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - refresh
    - refresh_resource
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_refresh(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/tools/crm_resource.c:2071,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:2213,1
    - Dst: getenv
      Src: /src/pacemaker/tools/crm_resource.c:2262,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource.c:2334,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource.c:2357,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/tools/crm_resource.c:2391,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource.c:2280,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:2085,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:2106,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:2123,1
    - Dst: pcmk__scan_nvpair
      Src: /src/pacemaker/tools/crm_resource.c:2131,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/tools/crm_resource.c:2201,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:2223,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource.c:2206,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:2340,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:2360,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_resource.c:2373,1
    - Dst: lrmd__register_messages
      Src: /src/pacemaker/tools/crm_resource.c:2092,1
    - Dst: g_string_append
      Src: /src/pacemaker/tools/crm_resource.c:2116,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:2135,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:2160,1
    - Dst: initialize_scheduler_data
      Src: /src/pacemaker/tools/crm_resource.c:2252,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource.c:2316,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/tools/crm_resource.c:2389,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_resource.c:2375,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/tools/crm_resource.c:2298,1
    - Dst: pcmk_register_ipc_callback
      Src: /src/pacemaker/tools/crm_resource.c:2272,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/tools/crm_resource.c:2280,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource.c:2261,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/tools/crm_resource.c:2070,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource.c:2086,1
    - Dst: g_strv_length
      Src: /src/pacemaker/tools/crm_resource.c:2114,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:2359,1
    - Dst: build_arg_context
      Src: /src/pacemaker/tools/crm_resource.c:2072,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/tools/crm_resource.c:2082,1
    - Dst: pe__register_messages
      Src: /src/pacemaker/tools/crm_resource.c:2090,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:2277,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_resource.c:2239,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:2302,1
    - Dst: g_option_context_free
      Src: /src/pacemaker/tools/crm_resource.c:2386,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_resource.c:2377,1
    - Dst: has_cmdline_config
      Src: /src/pacemaker/tools/crm_resource.c:2250,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:2106,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:2183,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:2266,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:2241,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/tools/crm_resource.c:2353,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/tools/crm_resource.c:2075,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/tools/crm_resource.c:2335,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/crm_resource.c:2385,1
    - Dst: has_cmdline_config
      Src: /src/pacemaker/tools/crm_resource.c:2229,1
    - Dst: pcmk__connect_ipc
      Src: /src/pacemaker/tools/crm_resource.c:2275,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/tools/crm_resource.c:2093,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:2136,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_resource.c:2323,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:2329,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/tools/crm_resource.c:2360,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_resource.c:2365,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_resource.c:2367,1
    - Dst: crm_log_args
      Src: /src/pacemaker/tools/crm_resource.c:2097,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/tools/crm_resource.c:2113,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:2268,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:2243,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource.c:2319,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/crm_resource.c:2381,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource.c:2249,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:2234,1
    - Dst: crm_resource_register_messages
      Src: /src/pacemaker/tools/crm_resource.c:2091,1
    - Dst: pcmk__output_text_set_fancy
      Src: /src/pacemaker/tools/crm_resource.c:2164,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:2199,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:2339,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/tools/crm_resource.c:2354,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_resource.c:2364,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource.c:2388,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/tools/crm_resource.c:2390,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource.c:2218,1
    - Dst: validate_cmdline_config
      Src: /src/pacemaker/tools/crm_resource.c:2191,1
    - Dst: g_string_free
      Src: /src/pacemaker/tools/crm_resource.c:2124,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/tools/crm_resource.c:2140,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:2182,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:2267,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:2242,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:2356,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/tools/crm_resource.c:2400,1
    - Dst: pcmk_new_ipc_api
      Src: /src/pacemaker/tools/crm_resource.c:2264,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:2279,1
    - Dst: pcmk__output_enable_list_element
      Src: /src/pacemaker/tools/crm_resource.c:2153,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource.c:2228,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/tools/crm_resource.c:2313,1
    - Dst: g_clear_error
      Src: /src/pacemaker/tools/crm_resource.c:2355,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/tools/crm_resource.c:2403,1
    - Dst: crm_exit
      Src: /src/pacemaker/tools/crm_resource.c:2404,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/tools/crm_resource.c:2074,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:2212,1
    - Dst: cib__signon_attempts
      Src: /src/pacemaker/tools/crm_resource.c:2238,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:2255,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:2303,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/tools/crm_resource.c:2396,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:2235,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:2200,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:2278,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:2222,1
    - Dst: has_cmdline_config
      Src: /src/pacemaker/tools/crm_resource.c:2207,1
    - Dst: pe_find_resource_with_flags
      Src: /src/pacemaker/tools/crm_resource.c:2325,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/tools/crm_resource.c:2119,1
    - Dst: has_cmdline_config
      Src: /src/pacemaker/tools/crm_resource.c:2190,1
    - Dst: cib_new
      Src: /src/pacemaker/tools/crm_resource.c:2231,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource.c:2268,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource.c:2243,1
    - Dst: strchr
      Src: /src/pacemaker/tools/crm_resource.c:2336,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/tools/crm_resource.c:2379,1
    - Dst: g_main_loop_unref
      Src: /src/pacemaker/tools/crm_resource.c:2393,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource.c:2369,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/tools/crm_resource.c:2080,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:2085,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:2144,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:2330,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_resource.c:2366,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_resource.c:2368,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_resource.c:2370,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_resource.c:2372,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource.c:2374,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_resource.c:2376,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_resource.c:2371,1
    CyclomaticComplexity: 102
    EdgeCount: 102
    ICount: 262
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 2405
      start: 2049
    functionDepth: 0
    functionLinenumber: 2049
    functionLinenumberEnd: 2405
    functionName: main
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - pe_find_resource_with_flags
    - pcmk__register_formats
    - crm_exit
    - has_cmdline_config
    - g_hash_table_destroy
    - pe__register_messages
    - pcmk__is_clone
    - free
    - _
    - cib__signon_attempts
    - g_string_free
    - pcmk_register_ipc_callback
    - crm_log_args
    - g_hash_table_insert
    - pcmk_legacy2rc
    - pcmk__cli_init_logging
    - build_arg_context
    - crm_strdup_printf
    - g_string_append_printf
    - pcmk__connect_ipc
    - g_option_context_free
    - strchr
    - pcmk_free_scheduler
    - pcmk__output_text_set_fancy
    - pcmk__scan_nvpair
    - pcmk_is_set
    - validate_cmdline_config
    - pcmk_rc_str
    - pcmk__assert
    - g_free
    - pcmk_free_ipc_api
    - pcmk__cmdline_preproc
    - lrmd__register_messages
    - cib__clean_up_connection
    - g_strv_length
    - g_main_loop_unref
    - g_string_append
    - crm_exit_str
    - pcmk__unregister_formats
    - pcmk__output_and_clear_error
    - pcmk__str_eq
    - pcmk_new_ipc_api
    - crm_resource_register_messages
    - initialize_scheduler_data
    - g_string_sized_new
    - pcmk_find_node
    - pcmk__output_enable_list_element
    - pcmk__output_new
    - pcmk_ipc_name
    - g_strfreev
    - pcmk_rc2exitc
    - g_set_error
    - cib_new
    - pcmk__xml_free
    - pcmk__output_free
    - pcmk__new_common_args
    - pcmk__register_lib_messages
    - getenv
    - g_clear_error
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_resource.c:968,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/tools/crm_resource.c:977,1
    - Dst: update_scheduler_input
      Src: /src/pacemaker/tools/crm_resource.c:980,1
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/tools/crm_resource.c:972,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/tools/crm_resource.c:982,1
    - Dst: cluster_status
      Src: /src/pacemaker/tools/crm_resource.c:987,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 4
    argNames:
    - scheduler
    - cib_conn
    - out
    - cib_xml_orig
    argTypes:
    - pcmk_scheduler_t**
    - cib_t*
    - pcmk__output_t*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 989
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 989
    functionName: initialize_scheduler_data
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - update_scheduler_input
    - pcmk__set_scheduler_flags
    - pcmk_free_scheduler
    - pcmk__assert
    - pcmk_new_scheduler
    - cluster_status
    linkageType: ''
    returnType: int
    signature: 'static int initialize_scheduler_data(pcmk_scheduler_t **scheduler,
      cib_t *cib_conn, pcmk__output_t *out, xmlNode **cib_xml_orig) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ban_or_move
      Src: /src/pacemaker/tools/crm_resource.c:1197,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1207,1
    - Dst: cli_resource_ban
      Src: /src/pacemaker/tools/crm_resource.c:1199,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1208
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1208
    functionName: handle_ban
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - cli_resource_ban
    - pcmk_rc2exitc
    - ban_or_move
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_ban(pcmk_resource_t *rsc, pcmk_node_t *node,
      cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cli_resource_clear_all_expired
      Src: /src/pacemaker/tools/crm_resource.c:1251,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:1271,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_resource.c:1274,1
    - Dst: build_constraint_list
      Src: /src/pacemaker/tools/crm_resource.c:1281,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource.c:1272,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource.c:1291,1
    - Dst: cli_resource_clear
      Src: /src/pacemaker/tools/crm_resource.c:1260,1
    - Dst: pcmk__subtract_lists
      Src: /src/pacemaker/tools/crm_resource.c:1282,1
    - Dst: build_constraint_list
      Src: /src/pacemaker/tools/crm_resource.c:1247,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_resource.c:1268,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:1272,1
    - Dst: cluster_status
      Src: /src/pacemaker/tools/crm_resource.c:1279,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1295,1
    - Dst: cli_resource_clear
      Src: /src/pacemaker/tools/crm_resource.c:1256,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource.c:1273,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource.c:1290,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1275,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource.c:1292,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1296
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1296
    functionName: handle_clear
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - build_constraint_list
    - g_list_free
    - cli_resource_clear
    - pcmk_rc2exitc
    - g_set_error
    - pcmk__xml_free
    - _
    - cluster_status
    - pcmk_rc_str
    - pcmk__subtract_lists
    - cli_resource_clear_all_expired
    - pcmk_legacy2rc
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_clear(pcmk_resource_t *rsc, pcmk_node_t *node,
      cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_foreach
      Src: /src/pacemaker/tools/crm_resource.c:1314,1
    - Dst: cli_resource_print_cts_constraints
      Src: /src/pacemaker/tools/crm_resource.c:1316,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1318
      start: 1309
    functionDepth: 0
    functionLinenumber: 1309
    functionLinenumberEnd: 1318
    functionName: handle_cts
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - g_list_foreach
    - cli_resource_print_cts_constraints
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_cts(pcmk_resource_t *rsc, pcmk_node_t *node,
      cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_cmdline_config
      Src: /src/pacemaker/tools/crm_resource.c:1378,1
    - Dst: cli_resource_execute_from_params
      Src: /src/pacemaker/tools/crm_resource.c:1379,1
    - Dst: cli_resource_execute
      Src: /src/pacemaker/tools/crm_resource.c:1388,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1392
      start: 1373
    functionDepth: 0
    functionLinenumber: 1373
    functionLinenumberEnd: 1392
    functionName: handle_execute_agent
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - has_cmdline_config
    - cli_resource_execute_from_params
    - cli_resource_execute
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_execute_agent(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wait_till_stable
      Src: /src/pacemaker/tools/crm_resource.c:1765,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1767,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1768
      start: 1760
    functionDepth: 0
    functionLinenumber: 1760
    functionLinenumberEnd: 1768
    functionName: handle_wait
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - wait_till_stable
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_wait(pcmk_resource_t *rsc, pcmk_node_t *node,
      cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cli_cleanup_all
      Src: /src/pacemaker/tools/crm_resource.c:1216,1
    - Dst: start_mainloop
      Src: /src/pacemaker/tools/crm_resource.c:1220,1
    - Dst: cleanup
      Src: /src/pacemaker/tools/crm_resource.c:1224,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1233
      start: 1210
    functionDepth: 0
    functionLinenumber: 1210
    functionLinenumberEnd: 1233
    functionName: handle_cleanup
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - cli_cleanup_all
    - cleanup
    - start_mainloop
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_cleanup(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1306,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1307
      start: 1298
    functionDepth: 0
    functionLinenumber: 1298
    functionLinenumberEnd: 1307
    functionName: handle_colocations
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_colocations(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:1333,1
    - Dst: pcmk__resource_delete
      Src: /src/pacemaker/tools/crm_resource.c:1338,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:1341,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:1342,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:1334,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource.c:1343,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1345,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1346
      start: 1320
    functionDepth: 0
    functionLinenumber: 1320
    functionLinenumberEnd: 1346
    functionName: handle_delete
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - g_set_error
    - _
    - pcmk_rc_str
    - pcmk__resource_delete
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_delete(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cli_resource_fail
      Src: /src/pacemaker/tools/crm_resource.c:1399,1
    - Dst: start_mainloop
      Src: /src/pacemaker/tools/crm_resource.c:1403,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1406,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1407
      start: 1394
    functionDepth: 0
    functionLinenumber: 1394
    functionLinenumberEnd: 1407
    functionName: handle_fail
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - cli_resource_fail
    - pcmk_rc2exitc
    - start_mainloop
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_fail(pcmk_resource_t *rsc, pcmk_node_t *node,
      cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1778,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1779
      start: 1770
    functionDepth: 0
    functionLinenumber: 1770
    functionLinenumberEnd: 1779
    functionName: handle_why
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_why(pcmk_resource_t *rsc, pcmk_node_t *node,
      cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_quit_main_loop
      Src: /src/pacemaker/tools/crm_resource.c:199,1
    - Dst: g_main_loop_unref
      Src: /src/pacemaker/tools/crm_resource.c:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ec
    argTypes:
    - crm_exit_t
    constantsTouched: []
    func_position:
      end: 202
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 202
    functionName: quit_main_loop
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - g_main_loop_unref
    - pcmk_quit_main_loop
    linkageType: ''
    returnType: void
    signature: 'static void quit_main_loop(crm_exit_t ec) '
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:374,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:381,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_resource.c:402,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:412,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/tools/crm_resource.c:393,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_resource.c:430,1
    - Dst: validate_opt_list
      Src: /src/pacemaker/tools/crm_resource.c:443,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_resource.c:464,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:469,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:475,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:459,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:371,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:378,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_resource.c:387,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/tools/crm_resource.c:410,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_resource.c:423,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:432,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:436,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:441,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:466,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_resource.c:483,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:362,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:368,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:396,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:418,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_resource.c:403,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/tools/crm_resource.c:406,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:425,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:428,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:445,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:448,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:462,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:485,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:478,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:365,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:384,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:389,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:413,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:421,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_resource.c:439,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_resource.c:451,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:453,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:456,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:472,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:488,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:481,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 122
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 493
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 493
    functionName: command_cb
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - validate_opt_list
    - pcmk__strkey_table
    - pcmk__str_eq
    - g_set_error
    - g_strdup
    - _
    - g_free
    - pcmk__str_any_of
    - pcmk__scan_min_int
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean command_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_resource.c:1425,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:1445,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/tools/crm_resource.c:1455,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1467,1
    - Dst: pe_rsc_params
      Src: /src/pacemaker/tools/crm_resource.c:1433,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/tools/crm_resource.c:1440,1
    - Dst: get_meta_attributes
      Src: /src/pacemaker/tools/crm_resource.c:1441,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/tools/crm_resource.c:1459,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:1431,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/tools/crm_resource.c:1436,1
    - Dst: crm_debug
      Src: /src/pacemaker/tools/crm_resource.c:1429,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:1438,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_resource.c:1447,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/tools/crm_resource.c:1464,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/tools/crm_resource.c:1443,1
    - Dst: pe__unpack_dataset_nvpairs
      Src: /src/pacemaker/tools/crm_resource.c:1456,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1468
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1468
    functionName: handle_get_param
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__s
    - g_hash_table_lookup
    - pe__unpack_dataset_nvpairs
    - g_hash_table_destroy
    - pcmk__strkey_table
    - pcmk_rc2exitc
    - pcmk__str_eq
    - pe_rsc_params
    - crm_element_value
    - get_meta_attributes
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_get_param(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_prepend
      Src: /src/pacemaker/tools/crm_resource.c:1569,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1582,1
    - Dst: g_list_free
      Src: /src/pacemaker/tools/crm_resource.c:1576,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1583
      start: 1564
    functionDepth: 0
    functionLinenumber: 1564
    functionLinenumberEnd: 1583
    functionName: handle_list_resources
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - g_list_prepend
    - g_list_free
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_list_resources(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ban_or_move
      Src: /src/pacemaker/tools/crm_resource.c:1669,1
    - Dst: cli_resource_move
      Src: /src/pacemaker/tools/crm_resource.c:1671,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1679,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1680
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1680
    functionName: handle_move
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - ban_or_move
    - cli_resource_move
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_move(pcmk_resource_t *rsc, pcmk_node_t *node,
      cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cli_resource_restart
      Src: /src/pacemaker/tools/crm_resource.c:1730,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1734,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1735
      start: 1721
    functionDepth: 0
    functionLinenumber: 1721
    functionLinenumberEnd: 1735
    functionName: handle_restart
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - cli_resource_restart
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_restart(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_clear_error
      Src: /src/pacemaker/tools/crm_resource.c:209,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:212,1
    - Dst: quit_main_loop
      Src: /src/pacemaker/tools/crm_resource.c:215,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 217
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 217
    functionName: resource_ipc_timeout
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - quit_main_loop
    - g_clear_error
    - _
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean resource_ipc_timeout(gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cli_resource_print_operations
      Src: /src/pacemaker/tools/crm_resource.c:1476,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1479,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1480
      start: 1470
    functionDepth: 0
    functionLinenumber: 1470
    functionLinenumberEnd: 1480
    functionName: handle_list_active_ops
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - cli_resource_print_operations
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_list_active_ops(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__list_standards
      Src: /src/pacemaker/tools/crm_resource.c:1590,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1592,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1593
      start: 1585
    functionDepth: 0
    functionLinenumber: 1585
    functionLinenumberEnd: 1593
    functionName: handle_list_standards
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - pcmk__list_standards
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_list_standards(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cli_resource_print
      Src: /src/pacemaker/tools/crm_resource.c:1687,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1689,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1690
      start: 1682
    functionDepth: 0
    functionLinenumber: 1682
    functionLinenumberEnd: 1690
    functionName: handle_query_xml
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - cli_resource_print
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_query_xml(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/tools/crm_resource.c:1744,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:1747,1
    - Dst: cli_resource_update_attribute
      Src: /src/pacemaker/tools/crm_resource.c:1752,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1757,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:1748,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1758
      start: 1737
    functionDepth: 0
    functionLinenumber: 1737
    functionLinenumberEnd: 1758
    functionName: handle_set_param
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk__str_empty
    - pcmk_rc2exitc
    - cli_resource_update_attribute
    - g_set_error
    - _
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_set_param(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/tools/crm_resource.c:2028,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_resource.c:2038,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_resource.c:2036,1
    - Dst: pcmk__add_main_args
      Src: /src/pacemaker/tools/crm_resource.c:2034,1
    - Dst: g_option_context_set_description
      Src: /src/pacemaker/tools/crm_resource.c:2029,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_resource.c:2040,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_resource.c:2042,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_resource.c:2044,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 2047
      start: 1984
    functionDepth: 0
    functionLinenumber: 1984
    functionLinenumberEnd: 2047
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk__add_arg_group
    - g_option_context_set_description
    - pcmk__add_main_args
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:333,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/tools/crm_resource.c:335,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:337,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 341
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 341
    functionName: attr_set_type_cb
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - pcmk__str_eq
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean attr_set_type_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/tools/crm_resource.c:294,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/tools/crm_resource.c:295,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/tools/crm_resource.c:297,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/tools/crm_resource.c:300,1
    - Dst: g_list_insert_sorted
      Src: /src/pacemaker/tools/crm_resource.c:303,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/tools/crm_resource.c:303,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/tools/crm_resource.c:308,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 1
    argNames:
    - root
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 310
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 310
    functionName: build_constraint_list
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk__xe_id
    - pcmk__xpath_result
    - pcmk_find_cib_element
    - xmlXPathFreeObject
    - g_list_insert_sorted
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    linkageType: ''
    returnType: GList*
    signature: 'static GList *build_constraint_list(xmlNode *root) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/tools/crm_resource.c:225,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/tools/crm_resource.c:240,1
    - Dst: quit_main_loop
      Src: /src/pacemaker/tools/crm_resource.c:234,1
    - Dst: crm_info
      Src: /src/pacemaker/tools/crm_resource.c:230,1
    - Dst: pcmk_disconnect_ipc
      Src: /src/pacemaker/tools/crm_resource.c:241,1
    - Dst: quit_main_loop
      Src: /src/pacemaker/tools/crm_resource.c:244,1
    - Dst: pcmk_controld_api_replies_expected
      Src: /src/pacemaker/tools/crm_resource.c:247,1
    - Dst: g_main_loop_is_running
      Src: /src/pacemaker/tools/crm_resource.c:249,1
    - Dst: pcmk_disconnect_ipc
      Src: /src/pacemaker/tools/crm_resource.c:253,1
    - Dst: crm_debug
      Src: /src/pacemaker/tools/crm_resource.c:252,1
    - Dst: quit_main_loop
      Src: /src/pacemaker/tools/crm_resource.c:256,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 5
    argNames:
    - api
    - event_type
    - status
    - event_data
    - user_data
    argTypes:
    - pcmk_ipc_api_t*
    - enum pcmk_ipc_event
    - crm_exit_t
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 267
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 267
    functionName: controller_event_callback
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_exit_str
    - pcmk_disconnect_ipc
    - g_main_loop_is_running
    - pcmk__assert
    - quit_main_loop
    - crm_info
    - pcmk_controld_api_replies_expected
    linkageType: ''
    returnType: void
    signature: 'static void controller_event_callback(pcmk_ipc_api_t *api, enum pcmk_ipc_event
      event_type, crm_exit_t status, void *event_data, void *user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uber_parent
      Src: /src/pacemaker/tools/crm_resource.c:920,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/tools/crm_resource.c:925,1
    - Dst: cli_resource_delete
      Src: /src/pacemaker/tools/crm_resource.c:926,1
    - Dst: crm_debug
      Src: /src/pacemaker/tools/crm_resource.c:923,1
    - Dst: cli_resource_check
      Src: /src/pacemaker/tools/crm_resource.c:931,1
    - Dst: start_mainloop
      Src: /src/pacemaker/tools/crm_resource.c:938,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - out
    - rsc
    - node
    - controld_api
    argTypes:
    - pcmk__output_t*
    - pcmk_resource_t*
    - pcmk_node_t*
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 940
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 940
    functionName: cleanup
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - crm_debug
    - start_mainloop
    - cli_resource_delete
    - pcmk__node_name
    - cli_resource_check
    - uber_parent
    linkageType: ''
    returnType: void
    signature: 'static void cleanup(pcmk__output_t *out, pcmk_resource_t *rsc, pcmk_node_t
      *node, pcmk_ipc_api_t *controld_api) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1087
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1087
    functionName: has_cmdline_config
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static inline bool has_cmdline_config(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cli_resource_delete_attribute
      Src: /src/pacemaker/tools/crm_resource.c:1353,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1360,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1361
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1361
    functionName: handle_delete_param
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - cli_resource_delete_attribute
    - pcmk_rc2exitc
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_delete_param(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cli_resource_search
      Src: /src/pacemaker/tools/crm_resource.c:1600,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1604,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/tools/crm_resource.c:1603,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1605
      start: 1595
    functionDepth: 0
    functionLinenumber: 1595
    functionLinenumberEnd: 1605
    functionName: handle_locate
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - g_list_free_full
    - cli_resource_search
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_locate(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_controld_api_replies_expected
      Src: /src/pacemaker/tools/crm_resource.c:273,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/tools/crm_resource.c:280,1
    - Dst: pcmk__plural_alt
      Src: /src/pacemaker/tools/crm_resource.c:277,1
    - Dst: g_main_loop_new
      Src: /src/pacemaker/tools/crm_resource.c:279,1
    - Dst: g_main_loop_run
      Src: /src/pacemaker/tools/crm_resource.c:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - capi
    argTypes:
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 283
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 283
    functionName: start_mainloop
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - g_main_loop_new
    - pcmk__plural_alt
    - g_main_loop_run
    - pcmk_controld_api_replies_expected
    - pcmk__create_timer
    linkageType: ''
    returnType: void
    signature: 'static void start_mainloop(pcmk_ipc_api_t *capi) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:315,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - optarg
    argTypes:
    - gchar*
    constantsTouched: []
    func_position:
      end: 326
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 326
    functionName: validate_opt_list
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean validate_opt_list(const gchar *optarg) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:1126,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:1127,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:1156,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:1155,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:1177,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:1102,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:1103,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:1135,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:1136,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:1173,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:1174,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:1092,1
    - Dst: has_cmdline_config
      Src: /src/pacemaker/tools/crm_resource.c:1096,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:1143,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:1144,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:1151,1
    - Dst: stonith__agent_exists
      Src: /src/pacemaker/tools/crm_resource.c:1164,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:1165,1
    - Dst: resources_agent_exists
      Src: /src/pacemaker/tools/crm_resource.c:1170,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:1150,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:1166,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/tools/crm_resource.c:1185,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:1178,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_resource.c:1162,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1187
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1187
    functionName: validate_cmdline_config
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - stonith__agent_exists
    - has_cmdline_config
    - pcmk__strkey_table
    - pcmk__str_eq
    - g_set_error
    - resources_agent_exists
    - _
    linkageType: ''
    returnType: void
    signature: 'static void validate_cmdline_config(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__resource_digests
      Src: /src/pacemaker/tools/crm_resource.c:1368,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1370,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1371
      start: 1363
    functionDepth: 0
    functionLinenumber: 1363
    functionLinenumberEnd: 1371
    functionName: handle_digests
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - pcmk__resource_digests
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_digests(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lrmd__new
      Src: /src/pacemaker/tools/crm_resource.c:1619,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:1622,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1624,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:1621,1
    - Dst: lrmd_api_delete
      Src: /src/pacemaker/tools/crm_resource.c:1623,1
    - Dst: crm_parse_agent_spec
      Src: /src/pacemaker/tools/crm_resource.c:1627,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_resource.c:1628,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_resource.c:1634,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:1652,1
    - Dst: lrmd_api_delete
      Src: /src/pacemaker/tools/crm_resource.c:1657,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_resource.c:1658,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_resource.c:1646,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:1653,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_resource.c:1648,1
    - Dst: _
      Src: /src/pacemaker/tools/crm_resource.c:1647,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_resource.c:1638,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 6
    argNames:
    - rsc
    - node
    - cib_conn
    - scheduler
    - controld_api
    - cib_xml_orig
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - cib_t*
    - pcmk_scheduler_t*
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1659
      start: 1607
    functionDepth: 0
    functionLinenumber: 1607
    functionLinenumberEnd: 1659
    functionName: handle_metadata
    functionSourceFile: /src/pacemaker/tools/crm_resource.c
    functionUses: []
    functionsReached:
    - crm_parse_agent_spec
    - lrmd_api_delete
    - pcmk_rc2exitc
    - g_set_error
    - free
    - lrmd__new
    - _
    - pcmk_rc_str
    - pcmk_legacy2rc
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t handle_metadata(pcmk_resource_t *rsc, pcmk_node_t
      *node, cib_t *cib_conn, pcmk_scheduler_t *scheduler, pcmk_ipc_api_t *controld_api,
      xmlNode *cib_xml_orig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_attribute.c:144,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_attribute.c:147,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_attribute.c:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 150
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 150
    functionName: utilization_cb
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - g_strdup
    - pcmk__str_update
    - g_free
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean utilization_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_attribute.c:411,1
    - Dst: cib__delete_node_attr
      Src: /src/pacemaker/tools/crm_attribute.c:418,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_attribute.c:414,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 2
    argNames:
    - child
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 428
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 428
    functionName: delete_attr_on_node
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - cib__delete_node_attr
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'static int delete_attr_on_node(xmlNode *child, void *userdata) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cib__get_node_attrs
      Src: /src/pacemaker/tools/crm_attribute.c:597,1
    - Dst: cib__get_node_attrs
      Src: /src/pacemaker/tools/crm_attribute.c:601,1
    - Dst: output_one_attribute
      Src: /src/pacemaker/tools/crm_attribute.c:631,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/tools/crm_attribute.c:623,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_attribute.c:634,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 24
    argCount: 2
    argNames:
    - out
    - cib
    argTypes:
    - pcmk__output_t*
    - cib_t*
    constantsTouched: []
    func_position:
      end: 636
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 636
    functionName: command_query
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - output_one_attribute
    - cib__get_node_attrs
    - pcmk__xml_free
    - pcmk__xe_foreach_child
    linkageType: ''
    returnType: int
    signature: 'static int command_query(pcmk__output_t *out, cib_t *cib) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 695
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 695
    functionName: pattern_used_correctly
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool pattern_used_correctly(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_attribute.c:155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: value_cb
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean value_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_attribute.c:433,1
    - Dst: pcmk__list_cluster_options
      Src: /src/pacemaker/tools/crm_attribute.c:434,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_attribute.c:434,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_attribute.c:442,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_attribute.c:439,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 444
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 444
    functionName: command_list
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - pcmk_rc2exitc
    - pcmk__str_eq
    - g_set_error
    - pcmk__list_cluster_options
    linkageType: ''
    returnType: void
    signature: 'static void command_list(pcmk__output_t *out) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_attribute.c:644,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_attribute.c:656,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_attribute.c:648,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_attribute.c:652,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_attribute.c:655,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_attribute.c:658,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_attribute.c:659,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 661
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 661
    functionName: set_type
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - g_strdup
    linkageType: ''
    returnType: void
    signature: 'static void set_type(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 703
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 703
    functionName: delete_used_correctly
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool delete_used_correctly(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__attrd_api_delete
      Src: /src/pacemaker/tools/crm_attribute.c:380,1
    - Dst: pcmk__attrd_api_update
      Src: /src/pacemaker/tools/crm_attribute.c:384,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_attribute.c:395,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_attribute.c:394,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 7
    argNames:
    - command
    - attr_node
    - attr_name
    - attr_value
    - attr_set
    - attr_dampen
    - attr_options
    argTypes:
    - enum attr_cmd
    - char*
    - char*
    - char*
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 399
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 399
    functionName: send_attrd_update
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - pcmk__attrd_api_update
    - pcmk__attrd_api_delete
    - pcmk_rc_str
    - g_set_error
    linkageType: ''
    returnType: int
    signature: 'static int send_attrd_update(enum attr_cmd command, const char *attr_node,
      const char *attr_name, const char *attr_value, const char *attr_set, const char
      *attr_dampen, uint32_t attr_options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_attribute.c:499,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_attribute.c:501,1
    - Dst: cib__update_node_attr
      Src: /src/pacemaker/tools/crm_attribute.c:505,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 2
    argNames:
    - child
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 510
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 510
    functionName: update_attr_on_node
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - cib__update_node_attr
    - pcmk__str_eq
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'static int update_attr_on_node(xmlNode *child, void *userdata) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_attribute.c:89,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: list_cb
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean list_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cib__set_call_options
      Src: /src/pacemaker/tools/crm_attribute.c:523,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_attribute.c:548,1
    - Dst: cib__get_node_attrs
      Src: /src/pacemaker/tools/crm_attribute.c:529,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/tools/crm_attribute.c:537,1
    - Dst: cib__update_node_attr
      Src: /src/pacemaker/tools/crm_attribute.c:540,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - out
    - cib
    - is_remote_node
    argTypes:
    - pcmk__output_t*
    - cib_t*
    - int
    constantsTouched: []
    func_position:
      end: 550
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 550
    functionName: command_update
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - cib__update_node_attr
    - pcmk__xe_foreach_child
    - cib__get_node_attrs
    - pcmk__xml_free
    - cib__set_call_options
    linkageType: ''
    returnType: int
    signature: 'static int command_update(pcmk__output_t *out, cib_t *cib, int is_remote_node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_attribute.c:563,1
    - Dst: crm_info
      Src: /src/pacemaker/tools/crm_attribute.c:576,1
    - Dst: crm_element_value
      Src: /src/pacemaker/tools/crm_attribute.c:564,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_attribute.c:569,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_attribute.c:577,1
    - Dst: pcmk__s
      Src: /src/pacemaker/tools/crm_attribute.c:577,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 12
    argCount: 2
    argNames:
    - node
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 581
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 581
    functionName: output_one_attribute
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - crm_info
    - pcmk__str_eq
    - pcmk__s
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'static int output_one_attribute(xmlNode *node, void *userdata) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_attribute.c:120,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_attribute.c:125,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_attribute.c:126,1
    - Dst: pcmk_promotion_score_name
      Src: /src/pacemaker/tools/crm_attribute.c:123,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 132
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 132
    functionName: promotion_cb
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - free
    - pcmk_promotion_score_name
    - g_strdup
    - g_free
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean promotion_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_attribute.c:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: delete_cb
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean delete_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cib__get_node_attrs
      Src: /src/pacemaker/tools/crm_attribute.c:458,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/tools/crm_attribute.c:475,1
    - Dst: cib__delete_node_attr
      Src: /src/pacemaker/tools/crm_attribute.c:469,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/tools/crm_attribute.c:466,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - out
    - cib
    argTypes:
    - pcmk__output_t*
    - cib_t*
    constantsTouched: []
    func_position:
      end: 486
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 486
    functionName: command_delete
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - cib__get_node_attrs
    - pcmk__xml_free
    - cib__delete_node_attr
    - pcmk__xe_foreach_child
    linkageType: ''
    returnType: int
    signature: 'static int command_delete(pcmk__output_t *out, cib_t *cib) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 711
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 711
    functionName: update_used_correctly
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool update_used_correctly(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/tools/crm_attribute.c:137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: update_cb
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean update_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_attribute.c:107,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_attribute.c:109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: attr_name_cb
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - g_strdup
    - g_free
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean attr_name_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_attribute.c:360,1
    - Dst: uname
      Src: /src/pacemaker/tools/crm_attribute.c:362,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_attribute.c:363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 367
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 367
    functionName: get_node_name_from_local
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - g_strdup
    - uname
    - g_free
    linkageType: ''
    returnType: void
    signature: 'static void get_node_name_from_local(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/tools/crm_attribute.c:748,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_attribute.c:754,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_attribute.c:752,1
    - Dst: g_option_context_set_description
      Src: /src/pacemaker/tools/crm_attribute.c:750,1
    - Dst: pcmk__add_main_args
      Src: /src/pacemaker/tools/crm_attribute.c:749,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_attribute.c:756,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/tools/crm_attribute.c:758,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 762
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 762
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - pcmk__add_arg_group
    - g_option_context_set_description
    - pcmk__add_main_args
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_attribute.c:161,1
    - Dst: pcmk__clear_node_attr_flags
      Src: /src/pacemaker/tools/crm_attribute.c:162,1
    - Dst: pcmk__clear_node_attr_flags
      Src: /src/pacemaker/tools/crm_attribute.c:165,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_attribute.c:164,1
    - Dst: pcmk__set_node_attr_flags
      Src: /src/pacemaker/tools/crm_attribute.c:166,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_attribute.c:168,1
    - Dst: pcmk__clear_node_attr_flags
      Src: /src/pacemaker/tools/crm_attribute.c:169,1
    - Dst: pcmk__set_node_attr_flags
      Src: /src/pacemaker/tools/crm_attribute.c:170,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_attribute.c:173,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 177
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 177
    functionName: wait_cb
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - pcmk__set_node_attr_flags
    - pcmk__str_eq
    - pcmk__clear_node_attr_flags
    - g_set_error
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean wait_cb (const gchar *option_name, const gchar *optarg,
      gpointer data, GError **err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_attribute.c:669,1
    - Dst: getenv
      Src: /src/pacemaker/tools/crm_attribute.c:670,1
    - Dst: getenv
      Src: /src/pacemaker/tools/crm_attribute.c:670,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 671
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 671
    functionName: use_attrd
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - getenv
    - pcmk__str_eq
    linkageType: ''
    returnType: bool
    signature: 'static bool use_attrd(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: use_attrd
      Src: /src/pacemaker/tools/crm_attribute.c:676,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 679
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 679
    functionName: try_ipc_update
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - use_attrd
    linkageType: ''
    returnType: bool
    signature: 'static bool try_ipc_update(void) '
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/tools/crm_attribute.c:780,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_attribute.c:827,1
    - Dst: cib_new
      Src: /src/pacemaker/tools/crm_attribute.c:822,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_attribute.c:828,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_attribute.c:829,1
    - Dst: set_type
      Src: /src/pacemaker/tools/crm_attribute.c:833,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_attribute.c:858,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_attribute.c:873,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_attribute.c:893,1
    - Dst: update_used_correctly
      Src: /src/pacemaker/tools/crm_attribute.c:898,1
    - Dst: send_attrd_update
      Src: /src/pacemaker/tools/crm_attribute.c:934,1
    - Dst: command_delete
      Src: /src/pacemaker/tools/crm_attribute.c:946,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_attribute.c:976,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/tools/crm_attribute.c:982,1
    - Dst: crm_exit
      Src: /src/pacemaker/tools/crm_attribute.c:990,1
    - Dst: command_query
      Src: /src/pacemaker/tools/crm_attribute.c:952,1
    - Dst: try_ipc_update
      Src: /src/pacemaker/tools/crm_attribute.c:933,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_attribute.c:975,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/tools/crm_attribute.c:779,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/tools/crm_attribute.c:785,1
    - Dst: crm_warn
      Src: /src/pacemaker/tools/crm_attribute.c:818,1
    - Dst: command_list
      Src: /src/pacemaker/tools/crm_attribute.c:805,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_attribute.c:859,1
    - Dst: getenv
      Src: /src/pacemaker/tools/crm_attribute.c:862,1
    - Dst: pcmk__query_node_name
      Src: /src/pacemaker/tools/crm_attribute.c:869,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_attribute.c:885,1
    - Dst: pattern_used_correctly
      Src: /src/pacemaker/tools/crm_attribute.c:913,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/tools/crm_attribute.c:929,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_attribute.c:972,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_attribute.c:920,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_attribute.c:977,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_attribute.c:915,1
    - Dst: delete_used_correctly
      Src: /src/pacemaker/tools/crm_attribute.c:891,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_attribute.c:961,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/tools/crm_attribute.c:968,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/tools/crm_attribute.c:986,1
    - Dst: command_update
      Src: /src/pacemaker/tools/crm_attribute.c:949,1
    - Dst: crm_info
      Src: /src/pacemaker/tools/crm_attribute.c:942,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_attribute.c:971,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/tools/crm_attribute.c:776,1
    - Dst: build_arg_context
      Src: /src/pacemaker/tools/crm_attribute.c:777,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/tools/crm_attribute.c:787,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_attribute.c:790,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_attribute.c:791,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_attribute.c:811,1
    - Dst: cib__set_call_options
      Src: /src/pacemaker/tools/crm_attribute.c:819,1
    - Dst: pcmk__node_attr_target
      Src: /src/pacemaker/tools/crm_attribute.c:842,1
    - Dst: get_node_name_from_local
      Src: /src/pacemaker/tools/crm_attribute.c:863,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_attribute.c:872,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/tools/crm_attribute.c:989,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_attribute.c:973,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_attribute.c:908,1
    - Dst: g_free
      Src: /src/pacemaker/tools/crm_attribute.c:978,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_attribute.c:900,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/tools/crm_attribute.c:980,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/tools/crm_attribute.c:775,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/tools/crm_attribute.c:795,1
    - Dst: cib__signon_attempts
      Src: /src/pacemaker/tools/crm_attribute.c:823,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_attribute.c:824,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/tools/crm_attribute.c:836,1
    - Dst: g_strdup
      Src: /src/pacemaker/tools/crm_attribute.c:876,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_attribute.c:877,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/tools/crm_attribute.c:881,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_attribute.c:884,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_attribute.c:970,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_attribute.c:962,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/tools/crm_attribute.c:956,1
    - Dst: g_strfreev
      Src: /src/pacemaker/tools/crm_attribute.c:967,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/tools/crm_attribute.c:963,1
    - Dst: free
      Src: /src/pacemaker/tools/crm_attribute.c:974,1
    - Dst: g_set_error
      Src: /src/pacemaker/tools/crm_attribute.c:957,1
    - Dst: query_node_uuid
      Src: /src/pacemaker/tools/crm_attribute.c:880,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 160
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 991
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 991
    functionName: main
    functionSourceFile: /src/pacemaker/tools/crm_attribute.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - pcmk__register_formats
    - crm_exit
    - free
    - g_strdup
    - command_list
    - cib__signon_attempts
    - cib__set_call_options
    - pcmk_legacy2rc
    - pcmk__cli_init_logging
    - build_arg_context
    - pcmk_rc_str
    - g_free
    - pattern_used_correctly
    - pcmk__cmdline_preproc
    - cib__clean_up_connection
    - pcmk__free_arg_context
    - query_node_uuid
    - send_attrd_update
    - pcmk__unregister_formats
    - command_delete
    - pcmk__node_attr_target
    - pcmk__str_eq
    - pcmk__output_and_clear_error
    - pcmk__strcase_any_of
    - set_type
    - update_used_correctly
    - command_update
    - crm_warn
    - crm_info
    - pcmk__output_new
    - g_strfreev
    - pcmk_rc2exitc
    - delete_used_correctly
    - get_node_name_from_local
    - pcmk__query_node_name
    - g_set_error
    - cib_new
    - command_query
    - pcmk__new_common_args
    - try_ipc_update
    - pcmk__output_free
    - pcmk__register_lib_messages
    - getenv
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_log_init
      Src: /src/pacemaker/devel/scratch.c:33,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/devel/scratch.c:50,1
    - Dst: getopt
      Src: /src/pacemaker/devel/scratch.c:35,1
    - Dst: pcmk__xml_read
      Src: /src/pacemaker/devel/scratch.c:49,1
    - Dst: printf
      Src: /src/pacemaker/devel/scratch.c:44,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 52
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 52
    functionName: main
    functionSourceFile: /src/pacemaker/devel/scratch.c
    functionUses: []
    functionsReached:
    - getopt
    - crm_log_init
    - pcmk__xml_read
    - pcmk__xml_free
    - printf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - z
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 2
      start: 0
    functionDepth: 0
    functionLinenumber: 0
    functionLinenumberEnd: 2
    functionName: foo
    functionSourceFile: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void foo(int *z) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 1
    argNames:
    - z
    argTypes:
    - int***
    constantsTouched: []
    func_position:
      end: 11
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 11
    functionName: zob2
    functionSourceFile: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void zob2(int ***z) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:21,1
    - Dst: foo
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: bar1
    functionSourceFile: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c
    functionUses: []
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: 'void bar1(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - w
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: bar3
    functionSourceFile: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c
    functionUses: []
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: 'void bar3(int *w) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zob
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:49,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 1
    argNames:
    - w
    argTypes:
    - int***
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: bar5
    functionSourceFile: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c
    functionUses: []
    functionsReached:
    - zob
    linkageType: ''
    returnType: void
    signature: 'void bar5(int ***w) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zob1
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:61,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 1
    argNames:
    - w
    argTypes:
    - int****
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: bar7
    functionSourceFile: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c
    functionUses: []
    functionsReached:
    - zob1
    linkageType: ''
    returnType: void
    signature: 'void bar7(int ****w) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: not0
    functionSourceFile: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c
    functionUses: []
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: 'void not0(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: not2
    functionSourceFile: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c
    functionUses: []
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: 'void not2(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:15,1
    - Dst: baz
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: bar0
    functionSourceFile: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c
    functionUses: []
    functionsReached:
    - foo
    - baz
    linkageType: ''
    returnType: void
    signature: 'void bar0(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - z
    argTypes:
    - int**
    constantsTouched: []
    func_position:
      end: 8
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 8
    functionName: zob1
    functionSourceFile: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void zob1(int **z) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - z
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 5
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 5
    functionName: baz
    functionSourceFile: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void baz(int z) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:27,1
    - Dst: baz
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:30,1
    - Dst: foo
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:31,1
    - Dst: foo
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:29,1
    - Dst: baz
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:28,1
    - Dst: baz
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: bar2
    functionSourceFile: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c
    functionUses: []
    functionsReached:
    - foo
    - baz
    linkageType: ''
    returnType: void
    signature: 'void bar2(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - w
    argTypes:
    - int**
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: bar4
    functionSourceFile: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c
    functionUses: []
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: 'void bar4(int **w) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zob1
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 1
    argNames:
    - w
    argTypes:
    - int***
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: bar6
    functionSourceFile: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c
    functionUses: []
    functionsReached:
    - zob1
    linkageType: ''
    returnType: void
    signature: 'void bar6(int ***w) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: bar8
    functionSourceFile: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c
    functionUses: []
    functionsReached:
    - foo
    linkageType: ''
    returnType: int
    signature: 'int bar8(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: not1
    functionSourceFile: /src/pacemaker/devel/coccinelle/test/ref-passed-variables-inited.input.c
    functionUses: []
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: 'void not1(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dcgettext
      Src: /src/pacemaker/include/gettext.h:151,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 4
    argNames:
    - domain
    - msg_ctxt_id
    - msgid
    - category
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 156
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 156
    functionName: pgettext_aux
    functionSourceFile: /src/pacemaker/include/gettext.h
    functionUses: []
    functionsReached:
    - dcgettext
    linkageType: ''
    returnType: char*
    signature: 'static const char *pgettext_aux (const char *domain, const char *msg_ctxt_id,
      const char *msgid, int category) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dcngettext
      Src: /src/pacemaker/include/gettext.h:172,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 6
    argCount: 6
    argNames:
    - domain
    - msg_ctxt_id
    - msgid
    - msgid_plural
    - n
    - category
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - unsigned long int
    - int
    constantsTouched: []
    func_position:
      end: 177
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 177
    functionName: npgettext_aux
    functionSourceFile: /src/pacemaker/include/gettext.h
    functionUses: []
    functionsReached:
    - dcngettext
    linkageType: ''
    returnType: char*
    signature: 'static const char *npgettext_aux (const char *domain, const char *msg_ctxt_id,
      const char *msgid, const char *msgid_plural, unsigned long int n, int category) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/pacemaker/include/gettext.h:213,1
    - Dst: memcpy
      Src: /src/pacemaker/include/gettext.h:228,1
    - Dst: strlen
      Src: /src/pacemaker/include/gettext.h:214,1
    - Dst: memcpy
      Src: /src/pacemaker/include/gettext.h:230,1
    - Dst: malloc
      Src: /src/pacemaker/include/gettext.h:223,1
    - Dst: dcgettext
      Src: /src/pacemaker/include/gettext.h:231,1
    - Dst: free
      Src: /src/pacemaker/include/gettext.h:235,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - domain
    - msgctxt
    - msgid
    - category
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 241
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 241
    functionName: dcpgettext_expr
    functionSourceFile: /src/pacemaker/include/gettext.h
    functionUses: []
    functionsReached:
    - malloc
    - memcpy
    - dcgettext
    - free
    - strlen
    linkageType: ''
    returnType: char*
    signature: 'static const char *dcpgettext_expr (const char *domain, const char
      *msgctxt, const char *msgid, int category) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/pacemaker/include/gettext.h:261,1
    - Dst: memcpy
      Src: /src/pacemaker/include/gettext.h:276,1
    - Dst: strlen
      Src: /src/pacemaker/include/gettext.h:262,1
    - Dst: malloc
      Src: /src/pacemaker/include/gettext.h:271,1
    - Dst: memcpy
      Src: /src/pacemaker/include/gettext.h:278,1
    - Dst: dcngettext
      Src: /src/pacemaker/include/gettext.h:279,1
    - Dst: free
      Src: /src/pacemaker/include/gettext.h:283,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 6
    argNames:
    - domain
    - msgctxt
    - msgid
    - msgid_plural
    - n
    - category
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - unsigned long int
    - int
    constantsTouched: []
    func_position:
      end: 289
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 289
    functionName: dcnpgettext_expr
    functionSourceFile: /src/pacemaker/include/gettext.h
    functionUses: []
    functionsReached:
    - malloc
    - memcpy
    - free
    - strlen
    - dcngettext
    linkageType: ''
    returnType: char*
    signature: 'static const char *dcnpgettext_expr (const char *domain, const char
      *msgctxt, const char *msgid, const char *msgid_plural, unsigned long int n,
      int category) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_query_node_info
      Src: /src/pacemaker/include/pacemaker.h:178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - xml
    - node_id
    - node_name
    - message_timeout_ms
    argTypes:
    - xmlNodePtr*
    - uint32_t
    - char**
    - unsigned int
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: pcmk_query_node_name
    functionSourceFile: /src/pacemaker/include/pacemaker.h
    functionUses: []
    functionsReached:
    - pcmk_query_node_info
    linkageType: ''
    returnType: int
    signature: 'static inline int pcmk_query_node_name(xmlNodePtr *xml, uint32_t node_id,
      char **node_name, unsigned int message_timeout_ms) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_check_rules
      Src: /src/pacemaker/include/pacemaker.h:324,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - xml
    - input
    - date
    - rule_id
    argTypes:
    - xmlNodePtr*
    - xmlNodePtr
    - crm_time_t*
    - char*
    constantsTouched: []
    func_position:
      end: 325
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 325
    functionName: pcmk_check_rule
    functionSourceFile: /src/pacemaker/include/pacemaker.h
    functionUses: []
    functionsReached:
    - pcmk_check_rules
    linkageType: ''
    returnType: int
    signature: 'static inline int pcmk_check_rule(xmlNodePtr *xml, xmlNodePtr input,
      const crm_time_t *date, const char *rule_id) '
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - enum ocf_exitcode
    constantsTouched: []
    func_position:
      end: 50
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 50
    functionName: services_ocf_exitcode_str
    functionSourceFile: /src/pacemaker/include/crm/services_compat.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *services_ocf_exitcode_str(enum ocf_exitcode
      code) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/pacemaker/include/crm/stonith-ng.h:727,1
    - Dst: dlsym
      Src: /src/pacemaker/include/crm/stonith-ng.h:730,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - nodeid
    - timeout
    - 'off'
    argTypes:
    - uint32_t
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 741
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 741
    functionName: stonith_api_kick_helper
    functionSourceFile: /src/pacemaker/include/crm/stonith-ng.h
    functionUses: []
    functionsReached:
    - dlopen
    - dlsym
    linkageType: ''
    returnType: int
    signature: 'static inline int stonith_api_kick_helper(uint32_t nodeid, int timeout,
      bool off) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/pacemaker/include/crm/stonith-ng.h:751,1
    - Dst: dlsym
      Src: /src/pacemaker/include/crm/stonith-ng.h:754,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - nodeid
    - in_progress
    argTypes:
    - uint32_t
    - bool
    constantsTouched: []
    func_position:
      end: 761
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 761
    functionName: stonith_api_time_helper
    functionSourceFile: /src/pacemaker/include/crm/stonith-ng.h
    functionUses: []
    functionsReached:
    - dlopen
    - dlsym
    linkageType: ''
    returnType: time_t
    signature: 'static inline time_t stonith_api_time_helper(uint32_t nodeid, bool
      in_progress) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum lrmd_callback_event
    constantsTouched: []
    func_position:
      end: 497
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 497
    functionName: lrmd_event_type2str
    functionSourceFile: /src/pacemaker/include/crm/lrmd.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *lrmd_event_type2str(enum lrmd_callback_event
      type) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pe_base_name_end
      Src: /src/pacemaker/include/crm/pengine/internal.h:249,1
    - Dst: strlen
      Src: /src/pacemaker/include/crm/pengine/internal.h:251,1
    - Dst: strncmp
      Src: /src/pacemaker/include/crm/pengine/internal.h:251,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - rsc
    - id
    argTypes:
    - pcmk_resource_t*
    - char*
    constantsTouched: []
    func_position:
      end: 254
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 254
    functionName: pe_base_name_eq
    functionSourceFile: /src/pacemaker/include/crm/pengine/internal.h
    functionUses: []
    functionsReached:
    - strncmp
    - strlen
    - pe_base_name_end
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pe_base_name_eq(const pcmk_resource_t *rsc, const
      char *id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/include/crm/pengine/internal.h:384,1
    - Dst: pcmk__parse_health_strategy
      Src: /src/pacemaker/include/crm/pengine/internal.h:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 388
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 388
    functionName: pe__health_strategy
    functionSourceFile: /src/pacemaker/include/crm/pengine/internal.h
    functionUses: []
    functionsReached:
    - pcmk__cluster_option
    - pcmk__parse_health_strategy
    linkageType: ''
    returnType: enum pcmk__health_strategy
    signature: 'static inline enum pcmk__health_strategy pe__health_strategy(pcmk_scheduler_t
      *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum op_state
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: stonith__op_state_pending
    functionSourceFile: /src/pacemaker/include/crm/fencing/internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static inline bool stonith__op_state_pending(enum op_state state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/include/crm/common/xml_element.h:56,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/include/crm/common/xml_element.h:58,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 3
    argNames:
    - obj1
    - obj2
    - element
    argTypes:
    - xmlNode*
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: crm_copy_xml_element
    functionSourceFile: /src/pacemaker/include/crm/common/xml_element.h
    functionUses: []
    functionsReached:
    - crm_xml_add
    - crm_element_value
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *crm_copy_xml_element(const xmlNode *obj1,
      xmlNode *obj2, const char *element) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 196
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 196
    functionName: pcmk__request_origin_type
    functionSourceFile: /src/pacemaker/include/crm/common/messages_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *pcmk__request_origin_type(const pcmk__request_t
      *request) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__client_name
      Src: /src/pacemaker/include/crm/common/messages_internal.h:211,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 217
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 217
    functionName: pcmk__request_origin
    functionSourceFile: /src/pacemaker/include/crm/common/messages_internal.h
    functionUses: []
    functionsReached:
    - pcmk__client_name
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *pcmk__request_origin(const pcmk__request_t
      *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 447
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 447
    functionName: pcmk__current_node
    functionSourceFile: /src/pacemaker/include/crm/common/resources_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'static inline pcmk_node_t *pcmk__current_node(const pcmk_resource_t
      *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/include/crm/common/acl_internal.h:30,1
    - Dst: strcmp
      Src: /src/pacemaker/include/crm/common/acl_internal.h:30,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - user
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: pcmk__is_privileged
    functionSourceFile: /src/pacemaker/include/crm/common/acl_internal.h
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__is_privileged(const char *user) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: pcmk__clip_log_level
    functionSourceFile: /src/pacemaker/include/crm/common/logging.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: 'static inline uint8_t pcmk__clip_log_level(int level) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/include/crm/common/internal.h:266,1
    - Dst: free
      Src: /src/pacemaker/include/crm/common/internal.h:270,1
    - Dst: abort
      Src: /src/pacemaker/include/crm/common/internal.h:271,1
    - Dst: realloc
      Src: /src/pacemaker/include/crm/common/internal.h:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 274
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 274
    functionName: pcmk__realloc
    functionSourceFile: /src/pacemaker/include/crm/common/internal.h
    functionUses: []
    functionsReached:
    - pcmk__assert
    - realloc
    - abort
    - free
    linkageType: ''
    returnType: void*
    signature: 'static inline void *pcmk__realloc(void *ptr, size_t size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_crm_log_unlikely
      Src: /src/pacemaker/include/crm/common/internal.h:166,1
    - Dst: pcmk__s
      Src: /src/pacemaker/include/crm/common/internal.h:169,1
    - Dst: pcmk__s
      Src: /src/pacemaker/include/crm/common/internal.h:171,1
    - Dst: pcmk__s
      Src: /src/pacemaker/include/crm/common/internal.h:170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 8
    argNames:
    - function
    - line
    - log_level
    - flag_type
    - target
    - flag_group
    - flags
    - flags_str
    argTypes:
    - char*
    - int
    - uint8_t
    - char*
    - char*
    - uint64_t
    - uint64_t
    - char*
    constantsTouched: []
    func_position:
      end: 174
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 174
    functionName: pcmk__clear_flags_as
    functionSourceFile: /src/pacemaker/include/crm/common/internal.h
    functionUses: []
    functionsReached:
    - do_crm_log_unlikely
    - pcmk__s
    linkageType: ''
    returnType: uint64_t
    signature: 'static inline uint64_t pcmk__clear_flags_as(const char *function,
      int line, uint8_t log_level, const char *flag_type, const char *target, uint64_t
      flag_group, uint64_t flags, const char *flags_str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - GList*
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: pcmk__list_of_1
    functionSourceFile: /src/pacemaker/include/crm/common/internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__list_of_1(GList *list) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/include/crm/common/internal.h:322,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/include/crm/common/internal.h:323,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 4
    argNames:
    - prefix
    - rsc_id
    - op
    - interval_ms
    argTypes:
    - char*
    - char*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 324
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 324
    functionName: pcmk__fail_attr_name
    functionSourceFile: /src/pacemaker/include/crm/common/internal.h
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'static inline char *pcmk__fail_attr_name(const char *prefix, const
      char *rsc_id, const char *op, guint interval_ms) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/include/crm/common/internal.h:279,1
    - Dst: getpid
      Src: /src/pacemaker/include/crm/common/internal.h:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: pcmk__getpid_s
    functionSourceFile: /src/pacemaker/include/crm/common/internal.h
    functionUses: []
    functionsReached:
    - getpid
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'static inline char *pcmk__getpid_s(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__fail_attr_name
      Src: /src/pacemaker/include/crm/common/internal.h:329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - rsc_id
    - op
    - interval_ms
    argTypes:
    - char*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 331
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 331
    functionName: pcmk__failcount_name
    functionSourceFile: /src/pacemaker/include/crm/common/internal.h
    functionUses: []
    functionsReached:
    - pcmk__fail_attr_name
    linkageType: ''
    returnType: char*
    signature: 'static inline char *pcmk__failcount_name(const char *rsc_id, const
      char *op, guint interval_ms) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_crm_log_unlikely
      Src: /src/pacemaker/include/crm/common/internal.h:134,1
    - Dst: pcmk__s
      Src: /src/pacemaker/include/crm/common/internal.h:138,1
    - Dst: pcmk__s
      Src: /src/pacemaker/include/crm/common/internal.h:137,1
    - Dst: pcmk__s
      Src: /src/pacemaker/include/crm/common/internal.h:136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 8
    argNames:
    - function
    - line
    - log_level
    - flag_type
    - target
    - flag_group
    - flags
    - flags_str
    argTypes:
    - char*
    - int
    - uint8_t
    - char*
    - char*
    - uint64_t
    - uint64_t
    - char*
    constantsTouched: []
    func_position:
      end: 141
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 141
    functionName: pcmk__set_flags_as
    functionSourceFile: /src/pacemaker/include/crm/common/internal.h
    functionUses: []
    functionsReached:
    - do_crm_log_unlikely
    - pcmk__s
    linkageType: ''
    returnType: uint64_t
    signature: 'static inline uint64_t pcmk__set_flags_as(const char *function, int
      line, uint8_t log_level, const char *flag_type, const char *target, uint64_t
      flag_group, uint64_t flags, const char *flags_str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__btoa
      Src: /src/pacemaker/include/crm/common/internal.h:188,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/include/crm/common/internal.h:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - flag_group
    - flags
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: pcmk__flag_text
    functionSourceFile: /src/pacemaker/include/crm/common/internal.h
    functionUses: []
    functionsReached:
    - pcmk__btoa
    - pcmk_all_flags_set
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *pcmk__flag_text(uint64_t flag_group, uint64_t
      flags) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/include/crm/common/internal.h:224,1
    - Dst: crm_exit
      Src: /src/pacemaker/include/crm/common/internal.h:228,1
    - Dst: crm_abort
      Src: /src/pacemaker/include/crm/common/internal.h:227,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 5
    argNames:
    - file
    - function
    - line
    - nmemb
    - size
    argTypes:
    - char*
    - char*
    - uint32_t
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 231
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 231
    functionName: pcmk__assert_alloc_as
    functionSourceFile: /src/pacemaker/include/crm/common/internal.h
    functionUses: []
    functionsReached:
    - calloc
    - crm_abort
    - crm_exit
    linkageType: ''
    returnType: void*
    signature: 'static inline void *pcmk__assert_alloc_as(const char *file, const
      char *function, uint32_t line, size_t nmemb, size_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - GList*
    constantsTouched: []
    func_position:
      end: 294
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 294
    functionName: pcmk__list_of_multiple
    functionSourceFile: /src/pacemaker/include/crm/common/internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__list_of_multiple(GList *list) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__fail_attr_name
      Src: /src/pacemaker/include/crm/common/internal.h:336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - rsc_id
    - op
    - interval_ms
    argTypes:
    - char*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 338
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 338
    functionName: pcmk__lastfailure_name
    functionSourceFile: /src/pacemaker/include/crm/common/internal.h
    functionUses: []
    functionsReached:
    - pcmk__fail_attr_name
    linkageType: ''
    returnType: char*
    signature: 'static inline char *pcmk__lastfailure_name(const char *rsc_id, const
      char *op, guint interval_ms) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/pacemaker/include/crm/common/io_internal.h:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: pcmk__open_devnull
    functionSourceFile: /src/pacemaker/include/crm/common/io_internal.h
    functionUses: []
    functionsReached:
    - open
    linkageType: ''
    returnType: void
    signature: 'static inline void pcmk__open_devnull(int flags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - result
    argTypes:
    - pcmk__action_result_t*
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: pcmk__result_ok
    functionSourceFile: /src/pacemaker/include/crm/common/results_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__result_ok(const pcmk__action_result_t *result) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/include/crm/common/xml_element_internal.h:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: pcmk__xe_id
    functionSourceFile: /src/pacemaker/include/crm/common/xml_element_internal.h
    functionUses: []
    functionsReached:
    - crm_element_value
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *pcmk__xe_id(const xmlNode *xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/include/crm/common/xml_element_internal.h:73,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - xml
    - name
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: pcmk__xe_is
    functionSourceFile: /src/pacemaker/include/crm/common/xml_element_internal.h
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__xe_is(const xmlNode *xml, const char *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - xe
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: pcmk__xe_first_attr
    functionSourceFile: /src/pacemaker/include/crm/common/xml_element_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlAttr*
    signature: 'static inline xmlAttr *pcmk__xe_first_attr(const xmlNode *xe) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: crm_element_name
    functionSourceFile: /src/pacemaker/include/crm/common/xml_compat.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *crm_element_name(const xmlNode *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - xpathObj
    argTypes:
    - xmlXPathObjectPtr
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: numXpathResults
    functionSourceFile: /src/pacemaker/include/crm/common/xml_compat.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static inline int numXpathResults(xmlXPathObjectPtr xpathObj) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - s
    - default_value
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: pcmk__s
    functionSourceFile: /src/pacemaker/include/crm/common/strings_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *pcmk__s(const char *s, const char *default_value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/include/crm/common/strings_internal.h:111,1
    - Dst: GINT_TO_POINTER
      Src: /src/pacemaker/include/crm/common/strings_internal.h:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - hash_table
    - key
    - value
    argTypes:
    - GHashTable*
    - int
    - gpointer
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: pcmk__intkey_table_insert
    functionSourceFile: /src/pacemaker/include/crm/common/strings_internal.h
    functionUses: []
    functionsReached:
    - GINT_TO_POINTER
    - g_hash_table_insert
    linkageType: ''
    returnType: gboolean
    signature: 'static inline gboolean pcmk__intkey_table_insert(GHashTable *hash_table,
      int key, gpointer value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/include/crm/common/strings_internal.h:141,1
    - Dst: GINT_TO_POINTER
      Src: /src/pacemaker/include/crm/common/strings_internal.h:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - hash_table
    - key
    argTypes:
    - GHashTable*
    - int
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: pcmk__intkey_table_remove
    functionSourceFile: /src/pacemaker/include/crm/common/strings_internal.h
    functionUses: []
    functionsReached:
    - GINT_TO_POINTER
    - g_hash_table_remove
    linkageType: ''
    returnType: gboolean
    signature: 'static inline gboolean pcmk__intkey_table_remove(GHashTable *hash_table,
      int key) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/include/crm/common/strings_internal.h:182,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - list
    - init_size
    - word
    argTypes:
    - GString**
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: pcmk__add_word
    functionSourceFile: /src/pacemaker/include/crm/common/strings_internal.h
    functionUses: []
    functionsReached:
    - pcmk__add_separated_word
    linkageType: ''
    returnType: void
    signature: 'static inline void pcmk__add_word(GString **list, size_t init_size,
      const char *word) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/include/crm/common/strings_internal.h:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - an_int
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: pcmk__itoa
    functionSourceFile: /src/pacemaker/include/crm/common/strings_internal.h
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'static inline char *pcmk__itoa(int an_int) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/include/crm/common/strings_internal.h:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - epoch_time
    argTypes:
    - time_t
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: pcmk__ttoa
    functionSourceFile: /src/pacemaker/include/crm/common/strings_internal.h
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'static inline char *pcmk__ttoa(time_t epoch_time) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/include/crm/common/strings_internal.h:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 3
    argNames:
    - s1
    - s2
    - flags
    argTypes:
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: pcmk__str_eq
    functionSourceFile: /src/pacemaker/include/crm/common/strings_internal.h
    functionUses: []
    functionsReached:
    - pcmk__strcmp
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__str_eq(const char *s1, const char *s2, uint32_t
      flags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: pcmk__str_empty
    functionSourceFile: /src/pacemaker/include/crm/common/strings_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static inline int pcmk__str_empty(const char *s) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/include/crm/common/strings_internal.h:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - a_float
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: pcmk__ftoa
    functionSourceFile: /src/pacemaker/include/crm/common/strings_internal.h
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'static inline char *pcmk__ftoa(double a_float) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_new_full
      Src: /src/pacemaker/include/crm/common/strings_internal.h:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - value_destroy_func
    argTypes:
    - GDestroyNotify
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: pcmk__intkey_table
    functionSourceFile: /src/pacemaker/include/crm/common/strings_internal.h
    functionUses: []
    functionsReached:
    - g_hash_table_new_full
    linkageType: ''
    returnType: GHashTable*
    signature: 'static inline GHashTable *pcmk__intkey_table(GDestroyNotify value_destroy_func) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/include/crm/common/strings_internal.h:126,1
    - Dst: GINT_TO_POINTER
      Src: /src/pacemaker/include/crm/common/strings_internal.h:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - hash_table
    - key
    argTypes:
    - GHashTable*
    - int
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: pcmk__intkey_table_lookup
    functionSourceFile: /src/pacemaker/include/crm/common/strings_internal.h
    functionUses: []
    functionsReached:
    - GINT_TO_POINTER
    - g_hash_table_lookup
    linkageType: ''
    returnType: gpointer
    signature: 'static inline gpointer pcmk__intkey_table_lookup(GHashTable *hash_table,
      int key) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - condition
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: pcmk__btoa
    functionSourceFile: /src/pacemaker/include/crm/common/strings_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *pcmk__btoa(bool condition) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - flag_group
    - flags_to_check
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: pcmk_any_flags_set
    functionSourceFile: /src/pacemaker/include/crm/common/util.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk_any_flags_set(uint64_t flag_group, uint64_t
      flags_to_check) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - flag_group
    - flags_to_check
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: pcmk_all_flags_set
    functionSourceFile: /src/pacemaker/include/crm/common/util.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk_all_flags_set(uint64_t flag_group, uint64_t
      flags_to_check) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 3
    argCount: 2
    argNames:
    - old_rc
    - new_rc
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 987
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 987
    functionName: pcmk__output_select_rc
    functionSourceFile: /src/pacemaker/include/crm/common/output_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static inline int pcmk__output_select_rc(int old_rc, int new_rc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/include/crm/common/nvpair_internal.h:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames:
    - value
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: if
    functionSourceFile: /src/pacemaker/include/crm/common/nvpair_internal.h
    functionUses: []
    functionsReached:
    - pcmk__insert_dup
    linkageType: ''
    returnType: else
    signature: 'else if ((value) != NULL) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 181
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 181
    functionName: pcmk__node_name
    functionSourceFile: /src/pacemaker/include/crm/common/nodes_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *pcmk__node_name(const pcmk_node_t *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - node1
    - node2
    argTypes:
    - pcmk_node_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: pcmk__same_node
    functionSourceFile: /src/pacemaker/include/crm/common/nodes_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__same_node(const pcmk_node_t *node1, const
      pcmk_node_t *node2) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: pcmk__is_primitive
    functionSourceFile: /src/pacemaker/include/crm/common/primitive_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__is_primitive(const pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: pcmk__is_group
    functionSourceFile: /src/pacemaker/include/crm/common/group_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__is_group(const pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: pcmk__is_pacemaker_remote_node
    functionSourceFile: /src/pacemaker/include/crm/common/remote_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__is_pacemaker_remote_node(const pcmk_node_t
      *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/include/crm/common/remote_internal.h:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: pcmk__is_guest_or_bundle_node
    functionSourceFile: /src/pacemaker/include/crm/common/remote_internal.h
    functionUses: []
    functionsReached:
    - pcmk__is_pacemaker_remote_node
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__is_guest_or_bundle_node(const pcmk_node_t
      *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/include/crm/common/remote_internal.h:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: pcmk__is_remote_node
    functionSourceFile: /src/pacemaker/include/crm/common/remote_internal.h
    functionUses: []
    functionsReached:
    - pcmk__is_pacemaker_remote_node
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__is_remote_node(const pcmk_node_t *node) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - enum pcmk__alert_flags
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: pcmk__alert_flag2text
    functionSourceFile: /src/pacemaker/include/crm/common/alerts_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *pcmk__alert_flag2text(enum pcmk__alert_flags
      flag) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 2
    argNames:
    - ipc_name
    - fallback
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: pcmk__ipc_sys_name
    functionSourceFile: /src/pacemaker/include/crm/common/ipc_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *pcmk__ipc_sys_name(const char *ipc_name,
      const char *fallback) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/include/crm/common/actions_internal.h:261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - action_name
    - interval_ms
    argTypes:
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: pcmk__readable_action
    functionSourceFile: /src/pacemaker/include/crm/common/actions_internal.h
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *pcmk__readable_action(const char *action_name,
      guint interval_ms) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/include/crm/common/actions_internal.h:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - action
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: pcmk__is_down_action
    functionSourceFile: /src/pacemaker/include/crm/common/actions_internal.h
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__is_down_action(const char *action) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/include/crm/common/actions_internal.h:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - action
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: pcmk__is_up_action
    functionSourceFile: /src/pacemaker/include/crm/common/actions_internal.h
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__is_up_action(const char *action) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - word
    - bit
    argTypes:
    - long long
    - long long
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: is_set
    functionSourceFile: /src/pacemaker/include/crm/common/util_compat.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static inline gboolean is_set(long long word, long long bit) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 1
    argNames:
    - parent
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 299
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 299
    functionName: pcmk__xml_first_child
    functionSourceFile: /src/pacemaker/include/crm/common/xml_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNode*
    signature: 'static inline xmlNode *pcmk__xml_first_child(const xmlNode *parent) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - attr
    argTypes:
    - xmlAttr*
    constantsTouched: []
    func_position:
      end: 433
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 433
    functionName: pcmk__xml_attr_value
    functionSourceFile: /src/pacemaker/include/crm/common/xml_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *pcmk__xml_attr_value(const xmlAttr *attr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 1
    argNames:
    - child
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 318
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 318
    functionName: pcmk__xml_next
    functionSourceFile: /src/pacemaker/include/crm/common/xml_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNode*
    signature: 'static inline xmlNode *pcmk__xml_next(const xmlNode *child) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/include/crm/common/history_internal.h:42,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/include/crm/common/history_internal.h:44,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/include/crm/common/history_internal.h:44,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 46
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 46
    functionName: pcmk__xe_history_key
    functionSourceFile: /src/pacemaker/include/crm/common/history_internal.h
    functionUses: []
    functionsReached:
    - pcmk__str_empty
    - pcmk__xe_id
    - crm_element_value
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *pcmk__xe_history_key(const xmlNode *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetGetLength
      Src: /src/pacemaker/include/crm/common/xpath_internal.h:69,1
    - Dst: QB_MAX
      Src: /src/pacemaker/include/crm/common/xpath_internal.h:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - xpath_obj
    argTypes:
    - xmlXPathObject*
    constantsTouched: []
    func_position:
      end: 74
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 74
    functionName: pcmk__xpath_num_results
    functionSourceFile: /src/pacemaker/include/crm/common/xpath_internal.h
    functionUses: []
    functionsReached:
    - QB_MAX
    - xmlXPathNodeSetGetLength
    linkageType: ''
    returnType: int
    signature: 'static inline int pcmk__xpath_num_results(const xmlXPathObject *xpath_obj) '
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 2
    argCount: 1
    argNames:
    - status
    argTypes:
    - enum pcmk_exec_status
    constantsTouched: []
    func_position:
      end: 393
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 393
    functionName: pcmk_exec_status_str
    functionSourceFile: /src/pacemaker/include/crm/common/results.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *pcmk_exec_status_str(enum pcmk_exec_status
      status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: pcmk__is_bundle
    functionSourceFile: /src/pacemaker/include/crm/common/bundles_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__is_bundle(const pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/include/crm/common/bundles_internal.h:82,1
    - Dst: pcmk__is_bundled
      Src: /src/pacemaker/include/crm/common/bundles_internal.h:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: pcmk__is_bundle_node
    functionSourceFile: /src/pacemaker/include/crm/common/bundles_internal.h
    functionUses: []
    functionsReached:
    - pcmk__is_guest_or_bundle_node
    - pcmk__is_bundled
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__is_bundle_node(const pcmk_node_t *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: pcmk__is_bundled
    functionSourceFile: /src/pacemaker/include/crm/common/bundles_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__is_bundled(const pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: pcmk__is_clone
    functionSourceFile: /src/pacemaker/include/crm/common/clone_internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__is_clone(const pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/include/crm/common/clone_internal.h:76,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/include/crm/common/clone_internal.h:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: pcmk__is_anonymous_clone
    functionSourceFile: /src/pacemaker/include/crm/common/clone_internal.h
    functionUses: []
    functionsReached:
    - pcmk__is_clone
    - pcmk_is_set
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__is_anonymous_clone(const pcmk_resource_t
      *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/include/crm/common/clone_internal.h:62,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/include/crm/common/clone_internal.h:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: pcmk__is_unique_clone
    functionSourceFile: /src/pacemaker/include/crm/common/clone_internal.h
    functionUses: []
    functionsReached:
    - pcmk__is_clone
    - pcmk_is_set
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pcmk__is_unique_clone(const pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__parse_server
      Src: /src/pacemaker/include/crm/cib/internal.h:162,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/include/crm/cib/internal.h:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: cib__client_triggers_refresh
    functionSourceFile: /src/pacemaker/include/crm/cib/internal.h
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - pcmk__parse_server
    linkageType: ''
    returnType: bool
    signature: 'static inline bool cib__client_triggers_refresh(const char *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/include/crm/cluster/internal.h:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 185
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 185
    functionName: crm_get_cluster_proc
    functionSourceFile: /src/pacemaker/include/crm/cluster/internal.h
    functionUses: []
    functionsReached:
    - pcmk_get_cluster_layer
    linkageType: ''
    returnType: uint32_t
    signature: 'static inline uint32_t crm_get_cluster_proc(void) '
  - BBCount: 28
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 230
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 230
    functionName: pcmk__cs_err_str
    functionSourceFile: /src/pacemaker/include/crm/cluster/internal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *pcmk__cs_err_str(int error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__query_node_info
      Src: /src/pacemaker/include/pcmki/pcmki_cluster_queries.h:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - out
    - nodeid
    - node_name
    - message_timeout_ms
    argTypes:
    - pcmk__output_t*
    - uint32_t
    - char**
    - unsigned int
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: pcmk__query_node_name
    functionSourceFile: /src/pacemaker/include/pcmki/pcmki_cluster_queries.h
    functionUses: []
    functionsReached:
    - pcmk__query_node_info
    linkageType: ''
    returnType: int
    signature: 'static inline int pcmk__query_node_name(pcmk__output_t *out, uint32_t
      nodeid, char **node_name, unsigned int message_timeout_ms) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__check_rules
      Src: /src/pacemaker/include/pcmki/pcmki_rule.h:40,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - out
    - input
    - date
    - rule_id
    argTypes:
    - pcmk__output_t*
    - xmlNodePtr
    - crm_time_t*
    - char*
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: pcmk__check_rule
    functionSourceFile: /src/pacemaker/include/pcmki/pcmki_rule.h
    functionUses: []
    functionsReached:
    - pcmk__check_rules
    linkageType: ''
    returnType: int
    signature: 'static inline int pcmk__check_rule(pcmk__output_t *out, xmlNodePtr
      input, const crm_time_t *date, const char *rule_id) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:196,1
    - Dst: find_exact_action_config
      Src: /src/pacemaker/lib/pengine/pe_actions.c:212,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_actions.c:223,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/pe_actions.c:230,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/pe_actions.c:219,1
    - Dst: pe__copy_node
      Src: /src/pacemaker/lib/pengine/pe_actions.c:184,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/pengine/pe_actions.c:179,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:194,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/pe_actions.c:200,1
    - Dst: add_singleton
      Src: /src/pacemaker/lib/pengine/pe_actions.c:228,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/pe_actions.c:226,1
    - Dst: unpack_operation
      Src: /src/pacemaker/lib/pengine/pe_actions.c:216,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:189,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:187,1
    - Dst: strstr
      Src: /src/pacemaker/lib/pengine/pe_actions.c:211,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/pe_actions.c:176,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:192,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/pengine/pe_actions.c:204,1
    - Dst: pcmk__find_action_config
      Src: /src/pacemaker/lib/pengine/pe_actions.c:205,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 6
    argNames:
    - key
    - task
    - rsc
    - node
    - optional
    - scheduler
    argTypes:
    - char*
    - char*
    - pcmk_resource_t*
    - pcmk_node_t*
    - bool
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 233
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 233
    functionName: new_action
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - unpack_operation
    - pcmk__assert_alloc
    - pcmk__strkey_table
    - pe__copy_node
    - pcmk__str_eq
    - find_exact_action_config
    - pcmk__set_action_flags
    - pcmk__str_copy
    - pcmk__node_name
    - g_list_prepend
    - add_singleton
    - strstr
    - pcmk__clear_action_flags
    - pcmk__find_action_config
    - parse_op_key
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'static pcmk_action_t *new_action(char *key, const char *task, pcmk_resource_t
      *rsc, const pcmk_node_t *node, bool optional, pcmk_scheduler_t *scheduler) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:295,1
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pengine/pe_actions.c:303,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 2
    argNames:
    - rsc
    - scheduler
    argTypes:
    - pcmk_resource_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 314
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 314
    functionName: effective_quorum_policy
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pe__set_next_role
    linkageType: ''
    returnType: enum pe_quorum_policy
    signature: 'static enum pe_quorum_policy effective_quorum_policy(pcmk_resource_t
      *rsc, pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pengine/pe_actions.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 415
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 415
    functionName: valid_stop_on_fail
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__strcase_any_of
    linkageType: ''
    returnType: bool
    signature: 'static bool valid_stop_on_fail(const char *value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/pengine/pe_actions.c:539,1
    - Dst: QB_MIN
      Src: /src/pacemaker/lib/pengine/pe_actions.c:544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 545
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 545
    functionName: unpack_timeout
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - QB_MIN
    - crm_get_msec
    linkageType: ''
    returnType: int
    signature: 'static int unpack_timeout(const char *value) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1026,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1032,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1033,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 4
    argNames:
    - rsc
    - action_name
    - on_fail
    - meta
    argTypes:
    - pcmk_resource_t*
    - char*
    - enum pcmk__on_fail
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 1035
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1035
    functionName: pcmk__role_after_failure
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - pcmk__rsc_trace
    - pcmk_role_text
    linkageType: ''
    returnType: enum rsc_role_e
    signature: 'enum rsc_role_e pcmk__role_after_failure(const pcmk_resource_t *rsc,
      const char *action_name, enum pcmk__on_fail on_fail, GHashTable *meta) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1419,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1428,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1432,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1424,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1429,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1433,1
    - Dst: pe__copy_node
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1435,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1436,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1438,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1439,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1440,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1439,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - input
    - key
    - on_node
    argTypes:
    - GList*
    - char*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1445
      start: 1413
    functionDepth: 0
    functionLinenumber: 1413
    functionLinenumberEnd: 1445
    functionName: find_actions
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__str_eq
    - pe__copy_node
    - pcmk__same_node
    - pcmk__node_name
    - g_list_prepend
    - crm_trace
    linkageType: ''
    returnType: GList*
    signature: 'GList *find_actions(GList *input, const char *key, const pcmk_node_t
      *on_node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1490,1
    - Dst: find_actions
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1495,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1497,1
    - Dst: find_actions_exact
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1493,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 4
    argNames:
    - rsc
    - node
    - task
    - require_node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 1499
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1499
    functionName: pe__resource_actions
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - find_actions
    - pcmk__op_key
    - free
    - find_actions_exact
    linkageType: ''
    returnType: GList*
    signature: 'GList *pe__resource_actions(const pcmk_resource_t *rsc, const pcmk_node_t
      *node, const char *task, bool require_node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1724,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1726,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1728,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1726,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1730,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 4
    argNames:
    - rsc
    - task
    - optional
    - runnable
    argTypes:
    - pcmk_resource_t*
    - char*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1733
      start: 1718
    functionDepth: 0
    functionLinenumber: 1718
    functionLinenumberEnd: 1733
    functionName: pe__new_rsc_pseudo_action
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__op_key
    - custom_action
    - pcmk__set_action_flags
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'pcmk_action_t *pe__new_rsc_pseudo_action(pcmk_resource_t *rsc, const
      char *task, bool optional, bool runnable) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1452,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1465,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1462,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1465,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1463,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1466,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 18
    argCount: 3
    argNames:
    - input
    - key
    - on_node
    argTypes:
    - GList*
    - char*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1471
      start: 1447
    functionDepth: 0
    functionLinenumber: 1447
    functionLinenumberEnd: 1471
    functionName: find_actions_exact
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__str_eq
    - pcmk__same_node
    - pcmk__node_name
    - g_list_prepend
    - crm_trace
    linkageType: ''
    returnType: GList*
    signature: 'GList *find_actions_exact(GList *input, const char *key, const pcmk_node_t
      *on_node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_exact_action_config
      Src: /src/pacemaker/lib/pengine/pe_actions.c:142,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/pengine/pe_actions.c:148,1
    - Dst: find_exact_action_config
      Src: /src/pacemaker/lib/pengine/pe_actions.c:150,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 4
    argNames:
    - rsc
    - action_name
    - interval_ms
    - include_disabled
    argTypes:
    - pcmk_resource_t*
    - char*
    - guint
    - bool
    constantsTouched: []
    func_position:
      end: 155
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 155
    functionName: pcmk__find_action_config
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - find_exact_action_config
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__find_action_config(const pcmk_resource_t *rsc, const
      char *action_name, guint interval_ms, bool include_disabled) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:946,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:972,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/pe_actions.c:985,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/pe_actions.c:866,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:877,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/pe_actions.c:881,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:906,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:910,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:914,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:944,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/pe_actions.c:931,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pengine/pe_actions.c:917,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:959,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:960,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:971,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pengine/pe_actions.c:986,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:872,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:876,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:893,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pengine/pe_actions.c:897,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:902,1
    - Dst: pcmk__is_remote_node
      Src: /src/pacemaker/lib/pengine/pe_actions.c:942,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:941,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/pe_actions.c:942,1
    - Dst: pcmk_is_probe
      Src: /src/pacemaker/lib/pengine/pe_actions.c:943,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:926,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 103
    argCount: 4
    argNames:
    - rsc
    - action_name
    - interval_ms
    - value
    argTypes:
    - pcmk_resource_t*
    - char*
    - guint
    - char*
    constantsTouched: []
    func_position:
      end: 989
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 989
    functionName: pcmk__parse_on_fail
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__config_err
    - pcmk__rsc_debug
    - pcmk__rsc_trace
    - pcmk__is_remote_node
    - pcmk__str_eq
    - pcmk_is_probe
    - pcmk__strcase_any_of
    - pcmk_is_set
    - pcmk_find_node
    - pcmk__assert
    - pcmk__readable_interval
    linkageType: ''
    returnType: enum pcmk__on_fail
    signature: 'enum pcmk__on_fail pcmk__parse_on_fail(const pcmk_resource_t *rsc,
      const char *action_name, guint interval_ms, const char *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1565,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1567,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1567,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - rsc
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1569
      start: 1562
    functionDepth: 0
    functionLinenumber: 1562
    functionLinenumberEnd: 1569
    functionName: pe__clear_resource_history
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__op_key
    - custom_action
    linkageType: ''
    returnType: void
    signature: 'void pe__clear_resource_history(pcmk_resource_t *rsc, const pcmk_node_t
      *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pe__is_newer_op
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 1705
      start: 1701
    functionDepth: 0
    functionLinenumber: 1701
    functionLinenumberEnd: 1705
    functionName: sort_op_by_callid
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pe__is_newer_op
    linkageType: ''
    returnType: gint
    signature: 'gint sort_op_by_callid(gconstpointer a, gconstpointer b) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/pe_actions.c:28,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/pe_actions.c:30,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - scheduler
    - action
    argTypes:
    - pcmk_scheduler_t*
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: add_singleton
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__strkey_table
    - g_hash_table_insert
    linkageType: ''
    returnType: void
    signature: 'static void add_singleton(pcmk_scheduler_t *scheduler, pcmk_action_t
      *action) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/pe_actions.c:250,1
    - Dst: pe__unpack_dataset_nvpairs
      Src: /src/pacemaker/lib/pengine/pe_actions.c:257,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 3
    argNames:
    - action_xml
    - node_attrs
    - scheduler
    argTypes:
    - xmlNode*
    - GHashTable*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 260
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 260
    functionName: pcmk__unpack_action_rsc_params
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pe__unpack_dataset_nvpairs
    - pcmk__strkey_table
    linkageType: ''
    returnType: GHashTable*
    signature: 'GHashTable *pcmk__unpack_action_rsc_params(const xmlNode *action_xml,
      GHashTable *node_attrs, pcmk_scheduler_t *scheduler) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1090,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1096,1
    - Dst: find_existing_action
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1092,1
    - Dst: update_action_optional
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1099,1
    - Dst: new_action
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1094,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1108,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1113,1
    - Dst: pcmk__unpack_action_rsc_params
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1115,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1117,1
    - Dst: update_resource_action_runnable
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1120,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1124,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 6
    argNames:
    - rsc
    - key
    - task
    - on_node
    - optional
    - scheduler
    argTypes:
    - pcmk_resource_t*
    - char*
    - char*
    - pcmk_node_t*
    - gboolean
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1128
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1128
    functionName: custom_action
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - pcmk__strkey_table
    - find_existing_action
    - pcmk__set_action_flags
    - pcmk_is_set
    - free
    - update_action_optional
    - pcmk__assert
    - pcmk__unpack_action_rsc_params
    - update_resource_action_runnable
    - new_action
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'pcmk_action_t *custom_action(pcmk_resource_t *rsc, char *key, const
      char *task, const pcmk_node_t *on_node, gboolean optional, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_singleton
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1133,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1137,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1136,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - name
    - scheduler
    argTypes:
    - char*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1140
      start: 1130
    functionDepth: 0
    functionLinenumber: 1130
    functionLinenumberEnd: 1140
    functionName: get_pseudo_op
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - strdup
    - lookup_singleton
    - custom_action
    - pcmk__set_action_flags
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'pcmk_action_t *get_pseudo_op(const char *name, pcmk_scheduler_t *scheduler) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1388,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1405,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1396,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1393,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 22
    argCount: 4
    argNames:
    - input
    - uuid
    - task
    - on_node
    argTypes:
    - GList*
    - char*
    - char*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1411
      start: 1384
    functionDepth: 0
    functionLinenumber: 1384
    functionLinenumberEnd: 1411
    functionName: find_first_action
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__same_node
    - pcmk__str_eq
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'pcmk_action_t *find_first_action(const GList *input, const char *uuid,
      const char *task, const pcmk_node_t *on_node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:44,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - scheduler
    - action_uuid
    argTypes:
    - pcmk_scheduler_t*
    - char*
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: lookup_singleton
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'static pcmk_action_t *lookup_singleton(pcmk_scheduler_t *scheduler,
      const char *action_uuid) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_unfencing_devices
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1149,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1152,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1158,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1155,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1156,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1158,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1161,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - candidates
    - matches
    argTypes:
    - GList*
    - GList*
    constantsTouched: []
    func_position:
      end: 1165
      start: 1142
    functionDepth: 0
    functionLinenumber: 1142
    functionLinenumberEnd: 1165
    functionName: find_unfencing_devices
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - find_unfencing_devices
    - g_hash_table_lookup
    - pcmk__str_eq
    - pcmk_is_set
    - g_list_prepend
    linkageType: ''
    returnType: GList*
    signature: 'static GList *find_unfencing_devices(GList *candidates, GList *matches) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1633,1
    - Dst: sort_return
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1683,1
    - Dst: sort_return
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1690,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1698,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1593,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1608,1
    - Dst: sort_return
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1614,1
    - Dst: sort_return
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1617,1
    - Dst: crm_element_value_epoch
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1631,1
    - Dst: sort_return
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1639,1
    - Dst: sort_return
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1636,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1654,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1657,1
    - Dst: sort_return
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1693,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1589,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1594,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1590,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1596,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1607,1
    - Dst: crm_element_value_epoch
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1630,1
    - Dst: sort_return
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1657,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1672,1
    - Dst: sort_return
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1698,1
    - Dst: sort_return
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1686,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1592,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1602,1
    - Dst: sort_return
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1604,1
    - Dst: sort_return
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1620,1
    - Dst: sort_return
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1641,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1652,1
    - Dst: decode_transition_magic
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1658,1
    - Dst: sort_return
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1660,1
    - Dst: decode_transition_magic
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1662,1
    - Dst: sort_return
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1664,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 95
    argCount: 2
    argNames:
    - xml_a
    - xml_b
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1699
      start: 1580
    functionDepth: 0
    functionLinenumber: 1580
    functionLinenumberEnd: 1699
    functionName: pe__is_newer_op
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_element_value_epoch
    - pcmk__str_eq
    - decode_transition_magic
    - sort_return
    - crm_element_value
    - pcmk__config_err
    - crm_trace
    - crm_element_value_int
    linkageType: ''
    returnType: int
    signature: 'int pe__is_newer_op(const xmlNode *xml_a, const xmlNode *xml_b) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:331,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/pe_actions.c:336,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:344,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:347,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:373,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/pe_actions.c:375,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_actions.c:377,1
    - Dst: pe_action_set_reason
      Src: /src/pacemaker/lib/pengine/pe_actions.c:387,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:396,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_actions.c:395,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:339,1
    - Dst: pe_action_set_reason
      Src: /src/pacemaker/lib/pengine/pe_actions.c:361,1
    - Dst: pe_action_set_reason
      Src: /src/pacemaker/lib/pengine/pe_actions.c:397,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:403,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:386,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pengine/pe_actions.c:341,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:337,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/pengine/pe_actions.c:345,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_actions.c:346,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:348,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:353,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pengine/pe_actions.c:362,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pengine/pe_actions.c:369,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_actions.c:372,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:378,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:342,1
    - Dst: pe_fence_node
      Src: /src/pacemaker/lib/pengine/pe_actions.c:350,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:355,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_actions.c:358,1
    - Dst: pe_can_fence
      Src: /src/pacemaker/lib/pengine/pe_actions.c:363,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/pengine/pe_actions.c:356,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pengine/pe_actions.c:384,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_actions.c:385,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pengine/pe_actions.c:393,1
    - Dst: effective_quorum_policy
      Src: /src/pacemaker/lib/pengine/pe_actions.c:382,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 2
    argNames:
    - action
    - scheduler
    argTypes:
    - pcmk_action_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 407
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 407
    functionName: update_resource_action_runnable
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_debug
    - pcmk__rsc_trace
    - effective_quorum_policy
    - pe_action_set_reason
    - pcmk__str_eq
    - do_crm_log
    - pcmk__set_action_flags
    - pcmk__node_name
    - pcmk_is_set
    - pcmk__is_guest_or_bundle_node
    - pe_fence_node
    - pe_can_fence
    - pcmk__clear_action_flags
    linkageType: ''
    returnType: void
    signature: 'static void update_resource_action_runnable(pcmk_action_t *action,
      pcmk_scheduler_t *scheduler) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:433,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/lib/pengine/pe_actions.c:443,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/pe_actions.c:460,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/lib/pengine/pe_actions.c:482,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:507,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:475,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:481,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:516,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:523,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pengine/pe_actions.c:524,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:437,1
    - Dst: valid_stop_on_fail
      Src: /src/pacemaker/lib/pengine/pe_actions.c:438,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:450,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:474,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:502,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:476,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/lib/pengine/pe_actions.c:530,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/pe_actions.c:440,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pengine/pe_actions.c:477,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/pengine/pe_actions.c:488,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:496,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:515,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/pe_actions.c:457,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:468,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:508,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:510,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:517,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:518,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/lib/pengine/pe_actions.c:519,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:521,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/pe_actions.c:527,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 73
    argCount: 4
    argNames:
    - rsc
    - action_name
    - action_config
    - meta
    argTypes:
    - pcmk_resource_t*
    - char*
    - xmlNode*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 534
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 534
    functionName: validate_on_fail
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - pcmk__xe_first_child
    - pcmk__insert_dup
    - g_hash_table_remove
    - pcmk__str_eq
    - pcmk__strcase_any_of
    - pcmk__xe_next
    - valid_stop_on_fail
    - crm_element_value
    - pcmk__config_err
    - pcmk_parse_interval_spec
    - pcmk__xe_get_bool_attr
    linkageType: ''
    returnType: void
    signature: 'static void validate_on_fail(const pcmk_resource_t *rsc, const char
      *action_name, const xmlNode *action_config, GHashTable *meta) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/pengine/pe_actions.c:554,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/pe_actions.c:565,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/pengine/pe_actions.c:563,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/pe_actions.c:567,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_actions.c:567,1
    - Dst: crm_time_get_seconds
      Src: /src/pacemaker/lib/pengine/pe_actions.c:572,1
    - Dst: crm_time_get_seconds
      Src: /src/pacemaker/lib/pengine/pe_actions.c:572,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/pengine/pe_actions.c:573,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/pe_actions.c:580,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_actions.c:581,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/pe_actions.c:581,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 5
    argNames:
    - value
    - xml_obj
    - interval_ms
    - now
    - start_delay
    argTypes:
    - char*
    - xmlNode*
    - guint
    - crm_time_t*
    - long long*
    constantsTouched: []
    func_position:
      end: 587
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 587
    functionName: unpack_interval_origin
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__config_err
    - pcmk__s
    - pcmk__timeout_ms2s
    - crm_time_get_seconds
    - crm_time_new
    - crm_info
    - pcmk__xe_id
    - crm_time_free
    linkageType: ''
    returnType: bool
    signature: 'static bool unpack_interval_origin(const char *value, const xmlNode
      *xml_obj, guint interval_ms, const crm_time_t *now, long long *start_delay) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__unpack_action_meta
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1055,1
    - Dst: pcmk__action_requires
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1057,1
    - Dst: pcmk__role_after_failure
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1063,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1059,1
    - Dst: pcmk__parse_on_fail
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1060,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - action
    - xml_obj
    - interval_ms
    argTypes:
    - pcmk_action_t*
    - xmlNode*
    - guint
    constantsTouched: []
    func_position:
      end: 1065
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1065
    functionName: unpack_operation
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - pcmk__unpack_action_meta
    - pcmk__parse_on_fail
    - pcmk__role_after_failure
    - pcmk__action_requires
    linkageType: ''
    returnType: void
    signature: 'static void unpack_operation(pcmk_action_t *action, const xmlNode
      *xml_obj, guint interval_ms) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__parse_action
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1354,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1362,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1356,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 6
    argCount: 2
    argNames:
    - rsc
    - name
    argTypes:
    - pcmk_resource_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1371
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1371
    functionName: get_complex_task
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__parse_action
    - crm_trace
    - pcmk__is_primitive
    linkageType: ''
    returnType: enum pcmk__action_type
    signature: 'enum pcmk__action_type get_complex_task(const pcmk_resource_t *rsc,
      const char *name) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1528,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1531,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 2
    argNames:
    - action
    - flag
    argTypes:
    - pcmk_action_t*
    - enum pcmk__action_flags
    constantsTouched: []
    func_position:
      end: 1535
      start: 1511
    functionDepth: 0
    functionLinenumber: 1511
    functionLinenumberEnd: 1535
    functionName: pe__action2reason
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'char *pe__action2reason(const pcmk_action_t *action, enum pcmk__action_flags
      flag) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1747,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1750,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1749,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1749,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - action
    - expected_result
    argTypes:
    - pcmk_action_t*
    - int
    constantsTouched: []
    func_position:
      end: 1751
      start: 1744
    functionDepth: 0
    functionLinenumber: 1744
    functionLinenumberEnd: 1751
    functionName: pe__add_action_expected_result
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__str_copy
    - g_hash_table_insert
    - pcmk__itoa
    linkageType: ''
    returnType: void
    signature: 'void pe__add_action_expected_result(pcmk_action_t *action, int expected_result) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_actions
      Src: /src/pacemaker/lib/pengine/pe_actions.c:67,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/pengine/pe_actions.c:73,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/pe_actions.c:76,1
    - Dst: pcmk__list_of_multiple
      Src: /src/pacemaker/lib/pengine/pe_actions.c:73,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 4
    argNames:
    - key
    - rsc
    - node
    - scheduler
    argTypes:
    - char*
    - pcmk_resource_t*
    - pcmk_node_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 78
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 78
    functionName: find_existing_action
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__list_of_multiple
    - find_actions
    - g_list_free
    - CRM_LOG_ASSERT
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'static pcmk_action_t *find_existing_action(const char *key, const
      pcmk_resource_t *rsc, const pcmk_node_t *node, const pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:274,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:275,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_actions.c:279,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:276,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pengine/pe_actions.c:277,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:281,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:286,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - action
    - optional
    argTypes:
    - pcmk_action_t*
    - gboolean
    constantsTouched: []
    func_position:
      end: 288
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 288
    functionName: update_action_optional
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_debug
    - g_hash_table_lookup
    - pcmk__set_action_flags
    - pcmk__node_name
    - pcmk_is_set
    - pcmk__clear_action_flags
    linkageType: ''
    returnType: void
    signature: 'static void update_action_optional(pcmk_action_t *action, gboolean
      optional) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/pe_actions.c:627,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:637,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:637,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:633,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/pe_actions.c:629,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/lib/pengine/pe_actions.c:642,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/pengine/pe_actions.c:648,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 659
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 659
    functionName: most_frequent_monitor
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - pcmk__str_eq
    - pcmk_parse_interval_spec
    - pcmk__xe_next
    - crm_element_value
    - pcmk__xe_get_bool_attr
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *most_frequent_monitor(const pcmk_resource_t *rsc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/pe_actions.c:824,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/pe_actions.c:841,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pengine/pe_actions.c:826,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:834,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:830,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - rsc
    - action_name
    argTypes:
    - pcmk_resource_t*
    - char*
    constantsTouched: []
    func_position:
      end: 843
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 843
    functionName: pcmk__action_requires
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - CRM_CHECK
    - pcmk__rsc_trace
    - pcmk__strcase_any_of
    linkageType: ''
    returnType: enum pcmk__requires
    signature: 'enum pcmk__requires pcmk__action_requires(const pcmk_resource_t *rsc,
      const char *action_name) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1232,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 31
    argCount: 2
    argNames:
    - node
    - scheduler
    argTypes:
    - pcmk_node_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1233
      start: 1167
    functionDepth: 0
    functionLinenumber: 1167
    functionLinenumberEnd: 1233
    functionName: node_priority_fencing_delay
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__timeout_ms2s
    linkageType: ''
    returnType: int
    signature: 'static int node_priority_fencing_delay(const pcmk_node_t *node, const
      pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1541,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1543,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1552,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1545,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1546,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - action
    - reason
    - overwrite
    argTypes:
    - pcmk_action_t*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 1553
      start: 1537
    functionDepth: 0
    functionLinenumber: 1537
    functionLinenumberEnd: 1553
    functionName: pe_action_set_reason
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    - pcmk__rsc_trace
    - pcmk__s
    linkageType: ''
    returnType: void
    signature: 'void pe_action_set_reason(pcmk_action_t *action, const char *reason,
      bool overwrite) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1247,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1264,1
    - Dst: find_unfencing_devices
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1266,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1280,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1310,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1336,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1255,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1260,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1263,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1287,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1294,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1298,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1279,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1271,1
    - Dst: node_priority_fencing_delay
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1332,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1345,1
    - Dst: lookup_singleton
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1250,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1291,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1300,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1302,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1335,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1341,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1252,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1256,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1258,1
    - Dst: pe__compare_fencing_digest
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1275,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1304,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1306,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1325,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1332,1
    - Dst: pe_can_fence
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1340,1
    - Dst: pe_action_set_reason
      Src: /src/pacemaker/lib/pengine/pe_actions.c:1342,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 67
    argCount: 6
    argNames:
    - node
    - op
    - optional
    - reason
    - priority_delay
    - scheduler
    argTypes:
    - pcmk_node_t*
    - char*
    - bool
    - char*
    - bool
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1349
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1349
    functionName: pe_fence_op
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__insert_meta
    - crm_notice
    - free
    - custom_action
    - strdup
    - g_string_free
    - g_hash_table_insert
    - g_list_free
    - crm_strdup_printf
    - g_hash_table_lookup
    - pcmk__node_name
    - pcmk_is_set
    - lookup_singleton
    - pcmk__g_strcat
    - pe__compare_fencing_digest
    - pcmk__itoa
    - pe_action_set_reason
    - g_string_sized_new
    - pe_can_fence
    - find_unfencing_devices
    - node_priority_fencing_delay
    - pcmk__insert_dup
    - pcmk__clear_action_flags
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'pcmk_action_t *pe_fence_op(pcmk_node_t *node, const char *op, bool
      optional, const char *reason, bool priority_delay, pcmk_scheduler_t *scheduler) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/pe_actions.c:94,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/pe_actions.c:96,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/pengine/pe_actions.c:105,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:110,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/lib/pengine/pe_actions.c:111,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:116,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:117,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 4
    argNames:
    - rsc
    - action_name
    - interval_ms
    - include_disabled
    argTypes:
    - pcmk_resource_t*
    - char*
    - guint
    - bool
    constantsTouched: []
    func_position:
      end: 122
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 122
    functionName: find_exact_action_config
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - pcmk__str_eq
    - pcmk_parse_interval_spec
    - pcmk__xe_next
    - crm_element_value
    - pcmk__xe_get_bool_attr
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *find_exact_action_config(const pcmk_resource_t *rsc,
      const char *action_name, guint interval_ms, bool include_disabled) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/pengine/pe_actions.c:598,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:605,1
    - Dst: QB_MIN
      Src: /src/pacemaker/lib/pengine/pe_actions.c:599,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/pe_actions.c:606,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/lib/pengine/pe_actions.c:605,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - value
    - meta
    argTypes:
    - char*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 610
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 610
    functionName: unpack_start_delay
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - crm_get_msec
    - pcmk__itoa
    - QB_MIN
    - strdup
    - g_hash_table_replace
    linkageType: ''
    returnType: int
    signature: 'static int unpack_start_delay(const char *value, GHashTable *meta) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/pe_actions.c:698,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:692,1
    - Dst: pcmk_is_probe
      Src: /src/pacemaker/lib/pengine/pe_actions.c:718,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:735,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/pengine/pe_actions.c:749,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/lib/pengine/pe_actions.c:745,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_actions.c:768,1
    - Dst: pcmk_is_probe
      Src: /src/pacemaker/lib/pengine/pe_actions.c:769,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/pe_actions.c:785,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/pe_actions.c:786,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_actions.c:803,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/pe_actions.c:802,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:693,1
    - Dst: pe__unpack_dataset_nvpairs
      Src: /src/pacemaker/lib/pengine/pe_actions.c:702,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:712,1
    - Dst: pcmk__xml_attr_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:713,1
    - Dst: most_frequent_monitor
      Src: /src/pacemaker/lib/pengine/pe_actions.c:721,1
    - Dst: pe_rsc_params
      Src: /src/pacemaker/lib/pengine/pe_actions.c:771,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:773,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:784,1
    - Dst: validate_on_fail
      Src: /src/pacemaker/lib/pengine/pe_actions.c:789,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:792,1
    - Dst: unpack_start_delay
      Src: /src/pacemaker/lib/pengine/pe_actions.c:794,1
    - Dst: unpack_timeout
      Src: /src/pacemaker/lib/pengine/pe_actions.c:786,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:691,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:719,1
    - Dst: pe__unpack_dataset_nvpairs
      Src: /src/pacemaker/lib/pengine/pe_actions.c:741,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/pe_actions.c:749,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_actions.c:728,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_actions.c:750,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_actions.c:766,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/pengine/pe_actions.c:766,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/pe_actions.c:775,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/pengine/pe_actions.c:785,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/pe_actions.c:731,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/lib/pengine/pe_actions.c:752,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:779,1
    - Dst: unpack_interval_origin
      Src: /src/pacemaker/lib/pengine/pe_actions.c:799,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/pengine/pe_actions.c:802,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_actions.c:798,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 71
    argCount: 5
    argNames:
    - rsc
    - node
    - action_name
    - interval_ms
    - action_config
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - char*
    - guint
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 807
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 807
    functionName: pcmk__unpack_action_meta
    functionSourceFile: /src/pacemaker/lib/pengine/pe_actions.c
    functionUses: []
    functionsReached:
    - pcmk__xml_attr_value
    - unpack_interval_origin
    - validate_on_fail
    - g_hash_table_insert
    - g_hash_table_lookup
    - pe__unpack_dataset_nvpairs
    - crm_strdup_printf
    - unpack_timeout
    - pcmk_is_set
    - crm_element_value
    - pcmk__rsc_trace
    - pcmk__itoa
    - most_frequent_monitor
    - pcmk__str_eq
    - pcmk__str_copy
    - pe_rsc_params
    - unpack_start_delay
    - pcmk__insert_dup
    - pcmk__strkey_table
    - g_hash_table_remove
    - pcmk_is_probe
    - pcmk_get_ra_caps
    linkageType: ''
    returnType: GHashTable*
    signature: 'GHashTable *pcmk__unpack_action_meta(pcmk_resource_t *rsc, const pcmk_node_t
      *node, const char *action_name, guint interval_ms, const xmlNode *action_config) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/unpack.c:929,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:931,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/unpack.c:932,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:938,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:935,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:943,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/unpack.c:946,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:948,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:951,1
    - Dst: pcmk__add_idref
      Src: /src/pacemaker/lib/pengine/unpack.c:956,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - xml_tags
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 961
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 961
    functionName: unpack_tags
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - pcmk__strkey_table
    - pcmk__xe_next
    - pcmk__config_err
    - pcmk__xe_id
    - pcmk__add_idref
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean unpack_tags(xmlNode *xml_tags, pcmk_scheduler_t *scheduler) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1677,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:1679,1
    - Dst: pe_fence_node
      Src: /src/pacemaker/lib/pengine/unpack.c:1705,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1702,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1683,1
    - Dst: pe_fence_node
      Src: /src/pacemaker/lib/pengine/unpack.c:1711,1
    - Dst: pcmk__set_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1718,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1723,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1738,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/pengine/unpack.c:1740,1
    - Dst: unpack_node_member
      Src: /src/pacemaker/lib/pengine/unpack.c:1656,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:1655,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:1679,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pengine/unpack.c:1683,1
    - Dst: pe_fence_node
      Src: /src/pacemaker/lib/pengine/unpack.c:1696,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1717,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1722,1
    - Dst: pe_fence_node
      Src: /src/pacemaker/lib/pengine/unpack.c:1728,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1743,1
    - Dst: pcmk__set_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1744,1
    - Dst: unpack_node_terminate
      Src: /src/pacemaker/lib/pengine/unpack.c:1653,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:1654,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:1695,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1716,1
    - Dst: pe_fence_node
      Src: /src/pacemaker/lib/pengine/unpack.c:1732,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:1737,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1742,1
    - Dst: unpack_node_online
      Src: /src/pacemaker/lib/pengine/unpack.c:1657,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1678,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1702,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:1701,1
    - Dst: pe_fence_node
      Src: /src/pacemaker/lib/pengine/unpack.c:1690,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:1707,1
    - Dst: pending_too_long
      Src: /src/pacemaker/lib/pengine/unpack.c:1710,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1738,1
    - Dst: pe_fence_node
      Src: /src/pacemaker/lib/pengine/unpack.c:1748,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 3
    argNames:
    - scheduler
    - node_state
    - this_node
    argTypes:
    - pcmk_scheduler_t*
    - xmlNode*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1753
      start: 1648
    functionDepth: 0
    functionLinenumber: 1648
    functionLinenumberEnd: 1753
    functionName: determine_online_status_fencing
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - crm_debug
    - unpack_node_terminate
    - pending_too_long
    - pcmk__set_node_flags
    - pcmk__s
    - unpack_node_online
    - pcmk__str_eq
    - crm_info
    - pcmk__node_name
    - unpack_node_member
    - crm_element_value
    - pcmk__str_any_of
    - pe_fence_node
    - crm_trace
    linkageType: ''
    returnType: bool
    signature: 'static bool determine_online_status_fencing(pcmk_scheduler_t *scheduler,
      const xmlNode *node_state, pcmk_node_t *this_node) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1768,1
    - Dst: pcmk__list_of_1
      Src: /src/pacemaker/lib/pengine/unpack.c:1778,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1799,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1792,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:1798,1
    - Dst: pcmk__set_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1802,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:1804,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1805,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1813,1
    - Dst: pcmk__clear_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1816,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1826,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1820,1
    - Dst: pcmk__set_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1823,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 50
    argCount: 2
    argNames:
    - scheduler
    - this_node
    argTypes:
    - pcmk_scheduler_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1830
      start: 1755
    functionDepth: 0
    functionLinenumber: 1755
    functionLinenumberEnd: 1830
    functionName: determine_remote_online_status
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__list_of_1
    - pcmk__clear_node_flags
    - pcmk_is_set
    - pcmk__set_node_flags
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void determine_remote_online_status(pcmk_scheduler_t *scheduler,
      pcmk_node_t *this_node) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:1146,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/unpack.c:1152,1
    - Dst: add_node_attrs
      Src: /src/pacemaker/lib/pengine/unpack.c:1150,1
    - Dst: pcmk__node_attr
      Src: /src/pacemaker/lib/pengine/unpack.c:1152,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1154,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1154,1
    - Dst: pcmk__set_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1155,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/unpack.c:1158,1
    - Dst: pcmk__node_attr
      Src: /src/pacemaker/lib/pengine/unpack.c:1158,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1160,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1160,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/unpack.c:1167,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/unpack.c:1168,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1172,1
    - Dst: pcmk__node_attr
      Src: /src/pacemaker/lib/pengine/unpack.c:1164,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - state
    - node
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_node_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1174
      start: 1141
    functionDepth: 0
    functionLinenumber: 1141
    functionLinenumberEnd: 1174
    functionName: unpack_transient_attributes
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__node_attr
    - add_node_attrs
    - crm_is_true
    - pcmk__xe_first_child
    - pcmk__config_warn
    - pcmk__node_name
    - pcmk__set_node_flags
    - crm_info
    linkageType: ''
    returnType: void
    signature: 'static void unpack_transient_attributes(const xmlNode *state, pcmk_node_t
      *node, pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pe__create_clone_child
      Src: /src/pacemaker/lib/pengine/unpack.c:2039,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pengine/unpack.c:2046,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:2047,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 4
    argNames:
    - parent
    - rsc_id
    - node
    - scheduler
    argTypes:
    - pcmk_resource_t*
    - char*
    - pcmk_node_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 2049
      start: 2035
    functionDepth: 0
    functionLinenumber: 2035
    functionLinenumberEnd: 2049
    functionName: create_anonymous_orphan
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__node_name
    - pcmk__rsc_debug
    - pe__create_clone_child
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'static pcmk_resource_t *create_anonymous_orphan(pcmk_resource_t *parent,
      const char *rsc_id, const pcmk_node_t *node, pcmk_scheduler_t *scheduler) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uber_parent
      Src: /src/pacemaker/lib/pengine/unpack.c:3560,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/unpack.c:3574,1
    - Dst: pe__node_list2table
      Src: /src/pacemaker/lib/pengine/unpack.c:3576,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pengine/unpack.c:3572,1
    - Dst: pcmk__is_anonymous_clone
      Src: /src/pacemaker/lib/pengine/unpack.c:3562,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pengine/unpack.c:3577,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 3578
      start: 3553
    functionDepth: 0
    functionLinenumber: 3553
    functionLinenumberEnd: 3578
    functionName: ban_from_all_nodes
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pe__node_list2table
    - g_hash_table_foreach
    - g_hash_table_destroy
    - pcmk__is_anonymous_clone
    - crm_notice
    - uber_parent
    linkageType: ''
    returnType: void
    signature: 'static void ban_from_all_nodes(pcmk_resource_t *rsc) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:4702,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4703,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:4710,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4712,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:4740,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4743,1
    - Dst: remap_operation
      Src: /src/pacemaker/lib/pengine/unpack.c:4749,1
    - Dst: process_expired_result
      Src: /src/pacemaker/lib/pengine/unpack.c:4751,1
    - Dst: pcmk__is_bundled
      Src: /src/pacemaker/lib/pengine/unpack.c:4755,1
    - Dst: process_pending_action
      Src: /src/pacemaker/lib/pengine/unpack.c:4766,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/unpack.c:4862,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pengine/unpack.c:4884,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/pengine/unpack.c:4858,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pengine/unpack.c:4883,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:4864,1
    - Dst: unpack_rsc_op_failure
      Src: /src/pacemaker/lib/pengine/unpack.c:4790,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/unpack.c:4863,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:4708,1
    - Dst: unpack_action_result
      Src: /src/pacemaker/lib/pengine/unpack.c:4725,1
    - Dst: pe__target_rc_from_xml
      Src: /src/pacemaker/lib/pengine/unpack.c:4729,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4735,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/pengine/unpack.c:4731,1
    - Dst: check_operation_expiry
      Src: /src/pacemaker/lib/pengine/unpack.c:4746,1
    - Dst: mask_probe_failure
      Src: /src/pacemaker/lib/pengine/unpack.c:4756,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:4760,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pengine/unpack.c:4777,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4780,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:4832,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/unpack.c:4834,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pengine/unpack.c:4875,1
    - Dst: unpack_rsc_op_failure
      Src: /src/pacemaker/lib/pengine/unpack.c:4849,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:4804,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:4839,1
    - Dst: unpack_failure_handling
      Src: /src/pacemaker/lib/pengine/unpack.c:4821,1
    - Dst: last_change_str
      Src: /src/pacemaker/lib/pengine/unpack.c:4826,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pengine/unpack.c:4788,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/unpack.c:4838,1
    - Dst: can_affect_state
      Src: /src/pacemaker/lib/pengine/unpack.c:4716,1
    - Dst: pcmk__xe_history_key
      Src: /src/pacemaker/lib/pengine/unpack.c:4730,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/lib/pengine/unpack.c:4736,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/pengine/unpack.c:4755,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/unpack.c:4824,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/unpack.c:4831,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4833,1
    - Dst: update_resource_state
      Src: /src/pacemaker/lib/pengine/unpack.c:4836,1
    - Dst: record_failed_op
      Src: /src/pacemaker/lib/pengine/unpack.c:4841,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pengine/unpack.c:4865,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4882,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:4796,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/unpack.c:4830,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/unpack.c:4872,1
    - Dst: pcmk__sched_err
      Src: /src/pacemaker/lib/pengine/unpack.c:4869,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/unpack.c:4698,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:4700,1
    - Dst: crm_element_value_ms
      Src: /src/pacemaker/lib/pengine/unpack.c:4715,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:4717,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4720,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/unpack.c:4737,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:4733,1
    - Dst: uber_parent
      Src: /src/pacemaker/lib/pengine/unpack.c:4761,1
    - Dst: update_resource_state
      Src: /src/pacemaker/lib/pengine/unpack.c:4770,1
    - Dst: unpack_failure_handling
      Src: /src/pacemaker/lib/pengine/unpack.c:4775,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pengine/unpack.c:4828,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:4874,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/unpack.c:4873,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4861,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/pengine/unpack.c:4795,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:4881,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 124
    argCount: 5
    argNames:
    - rsc
    - node
    - xml_op
    - last_failure
    - on_fail
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - xmlNode*
    - xmlNode**
    - enum pcmk__on_fail*
    constantsTouched: []
    func_position:
      end: 4885
      start: 4681
    functionDepth: 0
    functionLinenumber: 4681
    functionLinenumberEnd: 4885
    functionName: unpack_rsc_op
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - record_failed_op
    - unpack_rsc_op_failure
    - pcmk__set_rsc_flags
    - process_expired_result
    - pcmk__is_bundled
    - pcmk__str_empty
    - mask_probe_failure
    - update_resource_state
    - do_crm_log
    - free
    - uber_parent
    - pcmk_xe_mask_probe_failure
    - pcmk__s
    - remap_operation
    - pcmk__node_name
    - pcmk_is_set
    - unpack_failure_handling
    - crm_element_value
    - pcmk__xe_history_key
    - pcmk__xe_id
    - pcmk_role_text
    - pcmk_exec_status_str
    - CRM_CHECK
    - pcmk__rsc_trace
    - crm_exit_str
    - crm_element_value_ms
    - unpack_action_result
    - process_pending_action
    - strcmp
    - pcmk__is_pacemaker_remote_node
    - pcmk__config_err
    - can_affect_state
    - check_operation_expiry
    - crm_warn
    - pcmk__sched_err
    - last_change_str
    - crm_xml_add
    - pe__target_rc_from_xml
    - resource_location
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'static void unpack_rsc_op(pcmk_resource_t *rsc, pcmk_node_t *node,
      xmlNode *xml_op, xmlNode **last_failure, enum pcmk__on_fail *on_fail) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_lrm_op
      Src: /src/pacemaker/lib/pengine/unpack.c:3055,1
    - Dst: pe__is_newer_op
      Src: /src/pacemaker/lib/pengine/unpack.c:3058,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 4
    argNames:
    - rsc_id
    - node_name
    - xml_op
    - scheduler
    argTypes:
    - char*
    - char*
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 3059
      start: 3048
    functionDepth: 0
    functionLinenumber: 3048
    functionLinenumberEnd: 3059
    functionName: monitor_not_running_after
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - find_lrm_op
    - pe__is_newer_op
    linkageType: ''
    returnType: bool
    signature: 'static bool monitor_not_running_after(const char *rsc_id, const char
      *node_name, const xmlNode *xml_op, pcmk_scheduler_t *scheduler) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:985,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/unpack.c:992,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/unpack.c:1012,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/pengine/unpack.c:1023,1
    - Dst: pcmk__clear_ticket_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1041,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:1005,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/unpack.c:1011,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/unpack.c:1020,1
    - Dst: pcmk__set_ticket_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1036,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1044,1
    - Dst: ticket_new
      Src: /src/pacemaker/lib/pengine/unpack.c:995,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/unpack.c:1008,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/unpack.c:1035,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:1037,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1038,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/unpack.c:986,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:990,1
    - Dst: pcmk__xml_attr_value
      Src: /src/pacemaker/lib/pengine/unpack.c:1003,1
    - Dst: pcmk__clear_ticket_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1016,1
    - Dst: pcmk__set_ticket_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1013,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1017,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pengine/unpack.c:1026,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1014,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/unpack.c:1034,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pengine/unpack.c:1029,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 52
    argCount: 2
    argNames:
    - xml_ticket
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 1047
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 1047
    functionName: unpack_ticket_state
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - crm_is_true
    - g_hash_table_lookup
    - pcmk__str_empty
    - pcmk__insert_dup
    - pcmk__set_ticket_flags
    - pcmk__str_eq
    - crm_info
    - pcmk__xml_attr_value
    - pcmk__clear_ticket_flags
    - pcmk_is_set
    - pcmk__scan_ll
    - pcmk_rc_str
    - crm_warn
    - ticket_new
    - pcmk__xe_id
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int unpack_ticket_state(xmlNode *xml_ticket, void *userdata) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:2827,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/unpack.c:2831,1
    - Dst: pe_find_resource
      Src: /src/pacemaker/lib/pengine/unpack.c:2844,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:2839,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:2838,1
    - Dst: pe_find_resource
      Src: /src/pacemaker/lib/pengine/unpack.c:2849,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2851,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2855,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/unpack.c:2858,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 2
    argNames:
    - lrm_rsc_list
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 2861
      start: 2823
    functionDepth: 0
    functionLinenumber: 2823
    functionLinenumberEnd: 2861
    functionName: handle_removed_launched_resources
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - g_list_append
    - pcmk__rsc_trace
    - pcmk__xe_first_child
    - pcmk_is_set
    - pcmk__xe_next
    - crm_element_value
    - pe_find_resource
    linkageType: ''
    returnType: void
    signature: 'static void handle_removed_launched_resources(const xmlNode *lrm_rsc_list,
      pcmk_scheduler_t *scheduler) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_migration_node_names
      Src: /src/pacemaker/lib/pengine/unpack.c:3383,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/unpack.c:3413,1
    - Dst: unknown_on_node
      Src: /src/pacemaker/lib/pengine/unpack.c:3403,1
    - Dst: find_lrm_op
      Src: /src/pacemaker/lib/pengine/unpack.c:3394,1
    - Dst: newer_state_after_migrate
      Src: /src/pacemaker/lib/pengine/unpack.c:3407,1
    - Dst: native_add_running
      Src: /src/pacemaker/lib/pengine/unpack.c:3416,1
    - Dst: non_monitor_after
      Src: /src/pacemaker/lib/pengine/unpack.c:3419,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/unpack.c:3428,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 1
    argNames:
    - history
    argTypes:
    - struct action_history*
    constantsTouched: []
    func_position:
      end: 3431
      start: 3374
    functionDepth: 0
    functionLinenumber: 3374
    functionLinenumberEnd: 3431
    functionName: unpack_migrate_to_failure
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - native_add_running
    - get_migration_node_names
    - non_monitor_after
    - pcmk_find_node
    - g_list_prepend
    - find_lrm_op
    - unknown_on_node
    - newer_state_after_migrate
    linkageType: ''
    returnType: void
    signature: 'static void unpack_migrate_to_failure(struct action_history *history) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/unpack.c:4932,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/unpack.c:4935,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/unpack.c:4943,1
    - Dst: pcmk__node_attr
      Src: /src/pacemaker/lib/pengine/unpack.c:4961,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/unpack.c:4965,1
    - Dst: g_hash_table_foreach_steal
      Src: /src/pacemaker/lib/pengine/unpack.c:4947,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:4910,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/unpack.c:4924,1
    - Dst: pe__unpack_dataset_nvpairs
      Src: /src/pacemaker/lib/pengine/unpack.c:4956,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/unpack.c:4970,1
    - Dst: pcmk__node_attr
      Src: /src/pacemaker/lib/pengine/unpack.c:4959,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/unpack.c:4918,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:4921,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/unpack.c:4915,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pengine/unpack.c:4927,1
    - Dst: pe__unpack_dataset_nvpairs
      Src: /src/pacemaker/lib/pengine/unpack.c:4951,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/unpack.c:4948,1
    - Dst: pe__unpack_dataset_nvpairs
      Src: /src/pacemaker/lib/pengine/unpack.c:4945,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/unpack.c:4928,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 4
    argNames:
    - xml_obj
    - node
    - overwrite
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_node_t*
    - bool
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 4974
      start: 4905
    functionDepth: 0
    functionLinenumber: 4905
    functionLinenumberEnd: 4974
    functionName: add_node_attrs
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__node_attr
    - g_hash_table_lookup
    - pe__unpack_dataset_nvpairs
    - pcmk__insert_dup
    - pcmk__strkey_table
    - g_hash_table_destroy
    - pcmk__str_eq
    - pcmk__same_node
    - g_hash_table_foreach_steal
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void add_node_attrs(const xmlNode *xml_obj, pcmk_node_t *node,
      bool overwrite, pcmk_scheduler_t *scheduler) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:4993,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/unpack.c:4999,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/unpack.c:4997,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/unpack.c:4998,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/unpack.c:4995,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pengine/unpack.c:5007,1
    - Dst: calculate_active_ops
      Src: /src/pacemaker/lib/pengine/unpack.c:5016,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:5024,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:5024,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:5028,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:5028,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/unpack.c:5031,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/unpack.c:5034,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 4
    argNames:
    - node
    - rsc
    - rsc_entry
    - active_filter
    argTypes:
    - char*
    - char*
    - xmlNode*
    - gboolean
    constantsTouched: []
    func_position:
      end: 5036
      start: 4976
    functionDepth: 0
    functionLinenumber: 4976
    functionLinenumberEnd: 5036
    functionName: extract_operations
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - g_list_sort
    - g_list_append
    - g_list_free
    - pcmk__xe_first_child
    - crm_xml_add
    - g_list_prepend
    - pcmk__xe_next
    - pcmk__xe_id
    - crm_trace
    - calculate_active_ops
    linkageType: ''
    returnType: GList*
    signature: 'static GList *extract_operations(const char *node, const char *rsc,
      xmlNode * rsc_entry, gboolean active_filter) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_lrm_resource
      Src: /src/pacemaker/lib/pengine/unpack.c:3079,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/pengine/unpack.c:3096,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/unpack.c:3086,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:3084,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:3094,1
    - Dst: pe__is_newer_op
      Src: /src/pacemaker/lib/pengine/unpack.c:3099,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 4
    argNames:
    - rsc_id
    - node_name
    - xml_op
    - scheduler
    argTypes:
    - char*
    - char*
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 3105
      start: 3073
    functionDepth: 0
    functionLinenumber: 3073
    functionLinenumberEnd: 3105
    functionName: non_monitor_after
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - pe__is_newer_op
    - find_lrm_resource
    - pcmk__xe_next
    - crm_element_value
    - pcmk__str_any_of
    linkageType: ''
    returnType: bool
    signature: 'static bool non_monitor_after(const char *rsc_id, const char *node_name,
      const xmlNode *xml_op, pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_action_config
      Src: /src/pacemaker/lib/pengine/unpack.c:3593,1
    - Dst: pcmk__parse_on_fail
      Src: /src/pacemaker/lib/pengine/unpack.c:3602,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/unpack.c:3600,1
    - Dst: pcmk__role_after_failure
      Src: /src/pacemaker/lib/pengine/unpack.c:3604,1
    - Dst: pcmk__unpack_action_meta
      Src: /src/pacemaker/lib/pengine/unpack.c:3596,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/unpack.c:3606,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 3
    argNames:
    - history
    - on_fail
    - fail_role
    argTypes:
    - struct action_history*
    - enum pcmk__on_fail*
    - enum rsc_role_e*
    constantsTouched: []
    func_position:
      end: 3607
      start: 3588
    functionDepth: 0
    functionLinenumber: 3588
    functionLinenumberEnd: 3607
    functionName: unpack_failure_handling
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - g_hash_table_destroy
    - pcmk__unpack_action_meta
    - pcmk__parse_on_fail
    - pcmk__role_after_failure
    - pcmk__find_action_config
    linkageType: ''
    returnType: void
    signature: 'static void unpack_failure_handling(struct action_history *history,
      enum pcmk__on_fail *on_fail, enum rsc_role_e *fail_role) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/unpack.c:4901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 4903
      start: 4896
    functionDepth: 0
    functionLinenumber: 4896
    functionLinenumberEnd: 4903
    functionName: insert_attr
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - g_hash_table_insert
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean insert_attr(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/unpack.c:118,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:125,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pengine/unpack.c:120,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:129,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:160,1
    - Dst: pcmk__sched_warn
      Src: /src/pacemaker/lib/pengine/unpack.c:163,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:164,1
    - Dst: pe_can_fence
      Src: /src/pacemaker/lib/pengine/unpack.c:165,1
    - Dst: pe_fence_op
      Src: /src/pacemaker/lib/pengine/unpack.c:170,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:173,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:124,1
    - Dst: pcmk__sched_warn
      Src: /src/pacemaker/lib/pengine/unpack.c:131,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:150,1
    - Dst: pcmk__set_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:162,1
    - Dst: pe_can_fence
      Src: /src/pacemaker/lib/pengine/unpack.c:175,1
    - Dst: pcmk__sched_warn
      Src: /src/pacemaker/lib/pengine/unpack.c:179,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pengine/unpack.c:126,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:134,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:147,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:151,1
    - Dst: pcmk__is_remote_node
      Src: /src/pacemaker/lib/pengine/unpack.c:154,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pengine/unpack.c:158,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:157,1
    - Dst: is_dangling_guest_node
      Src: /src/pacemaker/lib/pengine/unpack.c:146,1
    - Dst: pe_fence_op
      Src: /src/pacemaker/lib/pengine/unpack.c:184,1
    - Dst: pe_can_fence
      Src: /src/pacemaker/lib/pengine/unpack.c:181,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:180,1
    - Dst: pcmk__set_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:140,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:141,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:161,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:174,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 4
    argNames:
    - scheduler
    - node
    - reason
    - priority_delay
    argTypes:
    - pcmk_scheduler_t*
    - pcmk_node_t*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 186
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 186
    functionName: pe_fence_node
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pe_fence_op
    - CRM_CHECK
    - pcmk__set_rsc_flags
    - pcmk__sched_warn
    - pcmk__is_remote_node
    - crm_notice
    - pcmk_is_set
    - pcmk__node_name
    - pe_can_fence
    - pcmk__set_node_flags
    - pcmk__is_guest_or_bundle_node
    - crm_info
    - is_dangling_guest_node
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void pe_fence_node(pcmk_scheduler_t *scheduler, pcmk_node_t *node,
      const char *reason, bool priority_delay) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:609,1
    - Dst: pcmk__xe_get_score
      Src: /src/pacemaker/lib/pengine/unpack.c:613,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:618,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:617,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/unpack.c:610,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:619,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:620,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:623,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/unpack.c:629,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:631,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:632,1
    - Dst: add_node_attrs
      Src: /src/pacemaker/lib/pengine/unpack.c:643,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:646,1
    - Dst: handle_startup_fencing
      Src: /src/pacemaker/lib/pengine/unpack.c:641,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:645,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pengine/unpack.c:633,1
    - Dst: pe_create_node
      Src: /src/pacemaker/lib/pengine/unpack.c:635,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - xml_nodes
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 650
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 650
    functionName: unpack_nodes
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - handle_startup_fencing
    - add_node_attrs
    - pcmk__config_warn
    - pcmk__xe_first_child
    - pcmk__s
    - pe_create_node
    - pcmk__xe_get_score
    - pcmk_rc_str
    - pcmk__xe_next
    - crm_element_value
    - pcmk__config_err
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean unpack_nodes(xmlNode *xml_nodes, pcmk_scheduler_t *scheduler) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pengine/unpack.c:658,1
    - Dst: pe_find_resource
      Src: /src/pacemaker/lib/pengine/unpack.c:666,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/unpack.c:672,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/unpack.c:663,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:665,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:673,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:676,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - rsc
    - scheduler
    argTypes:
    - pcmk_resource_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 680
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 680
    functionName: unpack_launcher
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__config_err
    - g_list_append
    - pcmk__rsc_trace
    - g_hash_table_lookup
    - g_list_foreach
    - pcmk__str_eq
    - pe_find_resource
    linkageType: ''
    returnType: void
    signature: 'static void unpack_launcher(pcmk_resource_t *rsc, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:2878,1
    - Dst: unpack_lrm_resource
      Src: /src/pacemaker/lib/pengine/unpack.c:2894,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:2888,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:2882,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/unpack.c:2892,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2897,1
    - Dst: handle_removed_launched_resources
      Src: /src/pacemaker/lib/pengine/unpack.c:2906,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 3
    argNames:
    - node
    - xml
    - scheduler
    argTypes:
    - pcmk_node_t*
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 2908
      start: 2871
    functionDepth: 0
    functionLinenumber: 2871
    functionLinenumberEnd: 2908
    functionName: unpack_node_lrm
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - unpack_lrm_resource
    - pcmk__xe_first_child
    - pcmk_is_set
    - pcmk__xe_next
    - handle_removed_launched_resources
    linkageType: ''
    returnType: void
    signature: 'static void unpack_node_lrm(pcmk_node_t *node, const xmlNode *xml,
      pcmk_scheduler_t *scheduler) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_migration_node_names
      Src: /src/pacemaker/lib/pengine/unpack.c:3448,1
    - Dst: newer_state_after_migrate
      Src: /src/pacemaker/lib/pengine/unpack.c:3471,1
    - Dst: unknown_on_node
      Src: /src/pacemaker/lib/pengine/unpack.c:3467,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/unpack.c:3477,1
    - Dst: find_lrm_op
      Src: /src/pacemaker/lib/pengine/unpack.c:3459,1
    - Dst: native_add_running
      Src: /src/pacemaker/lib/pengine/unpack.c:3480,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 1
    argNames:
    - history
    argTypes:
    - struct action_history*
    constantsTouched: []
    func_position:
      end: 3483
      start: 3439
    functionDepth: 0
    functionLinenumber: 3439
    functionLinenumberEnd: 3483
    functionName: unpack_migrate_from_failure
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - native_add_running
    - get_migration_node_names
    - pcmk_find_node
    - find_lrm_op
    - unknown_on_node
    - newer_state_after_migrate
    linkageType: ''
    returnType: void
    signature: 'static void unpack_migrate_from_failure(struct action_history *history) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:3652,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/unpack.c:3680,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/unpack.c:3684,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:3714,1
    - Dst: pcmk__on_fail_text
      Src: /src/pacemaker/lib/pengine/unpack.c:3727,1
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pengine/unpack.c:3732,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/unpack.c:3639,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:3650,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pengine/unpack.c:3662,1
    - Dst: pcmk__on_fail_text
      Src: /src/pacemaker/lib/pengine/unpack.c:3675,1
    - Dst: record_failed_op
      Src: /src/pacemaker/lib/pengine/unpack.c:3668,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:3665,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/unpack.c:3687,1
    - Dst: unpack_migrate_from_failure
      Src: /src/pacemaker/lib/pengine/unpack.c:3688,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/unpack.c:3693,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pengine/unpack.c:3725,1
    - Dst: ban_from_all_nodes
      Src: /src/pacemaker/lib/pengine/unpack.c:3736,1
    - Dst: set_active
      Src: /src/pacemaker/lib/pengine/unpack.c:3719,1
    - Dst: last_change_str
      Src: /src/pacemaker/lib/pengine/unpack.c:3632,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:3642,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/unpack.c:3648,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/unpack.c:3671,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pengine/unpack.c:3681,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:3718,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:3722,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pengine/unpack.c:3726,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pengine/unpack.c:3728,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/unpack.c:3690,1
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pengine/unpack.c:3696,1
    - Dst: pcmk_xe_is_probe
      Src: /src/pacemaker/lib/pengine/unpack.c:3631,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/unpack.c:3638,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:3634,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:3636,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:3640,1
    - Dst: pcmk__sched_warn
      Src: /src/pacemaker/lib/pengine/unpack.c:3645,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:3674,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/unpack.c:3649,1
    - Dst: pcmk__on_fail_text
      Src: /src/pacemaker/lib/pengine/unpack.c:3676,1
    - Dst: unpack_migrate_to_failure
      Src: /src/pacemaker/lib/pengine/unpack.c:3685,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 90
    argCount: 5
    argNames:
    - history
    - config_on_fail
    - fail_role
    - last_failure
    - on_fail
    argTypes:
    - struct action_history*
    - enum pcmk__on_fail
    - enum rsc_role_e
    - xmlNode**
    - enum pcmk__on_fail*
    constantsTouched: []
    func_position:
      end: 3738
      start: 3619
    functionDepth: 0
    functionLinenumber: 3619
    functionLinenumberEnd: 3738
    functionName: unpack_rsc_op_failure
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - record_failed_op
    - pcmk__str_empty
    - ban_from_all_nodes
    - pcmk__btoa
    - crm_notice
    - free
    - pcmk__on_fail_text
    - pcmk__s
    - pcmk__node_name
    - pcmk_is_set
    - set_active
    - unpack_migrate_to_failure
    - pcmk_role_text
    - pcmk_xe_is_probe
    - crm_exit_str
    - pcmk__rsc_trace
    - strcmp
    - crm_trace
    - last_change_str
    - pcmk__sched_warn
    - unpack_migrate_from_failure
    - resource_location
    - pe__set_next_role
    linkageType: ''
    returnType: void
    signature: 'static void unpack_rsc_op_failure(struct action_history *history,
      enum pcmk__on_fail config_on_fail, enum rsc_role_e fail_role, xmlNode **last_failure,
      enum pcmk__on_fail *on_fail) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 4
    argNames:
    - history
    - why
    - value
    - reason
    argTypes:
    - struct action_history*
    - char**
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 3796
      start: 3788
    functionDepth: 0
    functionLinenumber: 3788
    functionLinenumberEnd: 3796
    functionName: remap_because
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static inline void remap_because(struct action_history *history, const
      char **why, int value, const char *reason) '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/pengine/unpack.c:4313,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:4343,1
    - Dst: pcmk__on_fail_text
      Src: /src/pacemaker/lib/pengine/unpack.c:4379,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4364,1
    - Dst: unpack_migrate_to_success
      Src: /src/pacemaker/lib/pengine/unpack.c:4360,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:4363,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:4377,1
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pengine/unpack.c:4402,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:4322,1
    - Dst: set_active
      Src: /src/pacemaker/lib/pengine/unpack.c:4327,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:4330,1
    - Dst: set_active
      Src: /src/pacemaker/lib/pengine/unpack.c:4365,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:4334,1
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pengine/unpack.c:4389,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:4353,1
    - Dst: pcmk__is_bundled
      Src: /src/pacemaker/lib/pengine/unpack.c:4312,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:4319,1
    - Dst: pcmk__xe_history_key
      Src: /src/pacemaker/lib/pengine/unpack.c:4322,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:4338,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:4358,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 64
    argCount: 4
    argNames:
    - history
    - exit_status
    - last_failure
    - on_fail
    argTypes:
    - struct action_history*
    - int
    - xmlNode*
    - enum pcmk__on_fail*
    constantsTouched: []
    func_position:
      end: 4407
      start: 4304
    functionDepth: 0
    functionLinenumber: 4304
    functionLinenumberEnd: 4407
    functionName: update_resource_state
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__on_fail_text
    - pcmk__rsc_trace
    - pcmk__is_bundled
    - pcmk__str_eq
    - pcmk__node_name
    - set_active
    - unpack_migrate_to_success
    - pcmk__xe_history_key
    - pe__set_next_role
    - pcmk_xe_mask_probe_failure
    linkageType: ''
    returnType: void
    signature: 'static void update_resource_state(struct action_history *history,
      int exit_status, const xmlNode *last_failure, enum pcmk__on_fail *on_fail) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/pengine/unpack.c:98,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: is_dangling_guest_node
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__is_pacemaker_remote_node
    - pcmk_is_set
    linkageType: ''
    returnType: bool
    signature: 'static bool is_dangling_guest_node(pcmk_node_t *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/unpack.c:3754,1
    - Dst: pcmk__sched_err
      Src: /src/pacemaker/lib/pengine/unpack.c:3762,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:3767,1
    - Dst: last_change_str
      Src: /src/pacemaker/lib/pengine/unpack.c:3761,1
    - Dst: pe_can_fence
      Src: /src/pacemaker/lib/pengine/unpack.c:3757,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/unpack.c:3768,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/unpack.c:3769,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:3770,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/unpack.c:3773,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:3775,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:3776,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - history
    argTypes:
    - struct action_history*
    constantsTouched: []
    func_position:
      end: 3777
      start: 3749
    functionDepth: 0
    functionLinenumber: 3749
    functionLinenumberEnd: 3777
    functionName: block_if_unrecoverable
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__set_rsc_flags
    - crm_exit_str
    - pcmk__s
    - pcmk__str_empty
    - strcmp
    - pcmk__clear_rsc_flags
    - pcmk__node_name
    - free
    - pe_can_fence
    - pcmk__sched_err
    - last_change_str
    linkageType: ''
    returnType: void
    signature: 'static void block_if_unrecoverable(struct action_history *history) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:4286,1
    - Dst: decode_transition_key
      Src: /src/pacemaker/lib/pengine/unpack.c:4291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - xml_op
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 4293
      start: 4282
    functionDepth: 0
    functionLinenumber: 4282
    functionLinenumberEnd: 4293
    functionName: pe__target_rc_from_xml
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - decode_transition_key
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'int pe__target_rc_from_xml(const xmlNode *xml_op) '
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: set_config_flag
      Src: /src/pacemaker/lib/pengine/unpack.c:235,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/lib/pengine/unpack.c:256,1
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/lib/pengine/unpack.c:270,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pengine/unpack.c:278,1
    - Dst: set_config_flag
      Src: /src/pacemaker/lib/pengine/unpack.c:387,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:285,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:368,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/pengine/unpack.c:316,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:308,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/lib/pengine/unpack.c:417,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:237,1
    - Dst: set_config_flag
      Src: /src/pacemaker/lib/pengine/unpack.c:261,1
    - Dst: set_config_flag
      Src: /src/pacemaker/lib/pengine/unpack.c:294,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:319,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:367,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/unpack.c:242,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pengine/unpack.c:322,1
    - Dst: set_config_flag
      Src: /src/pacemaker/lib/pengine/unpack.c:365,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:391,1
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/lib/pengine/unpack.c:255,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:305,1
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/lib/pengine/unpack.c:416,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/unpack.c:221,1
    - Dst: pcmk__validate_cluster_options
      Src: /src/pacemaker/lib/pengine/unpack.c:233,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:243,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pengine/unpack.c:259,1
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/lib/pengine/unpack.c:281,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:362,1
    - Dst: pe__unpack_node_health_scores
      Src: /src/pacemaker/lib/pengine/unpack.c:397,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/unpack.c:292,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:390,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:408,1
    - Dst: set_config_flag
      Src: /src/pacemaker/lib/pengine/unpack.c:373,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:327,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:386,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:375,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:381,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:238,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:246,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pengine/unpack.c:266,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/lib/pengine/unpack.c:283,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:302,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/lib/pengine/unpack.c:407,1
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/lib/pengine/unpack.c:241,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:271,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pengine/unpack.c:286,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:380,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:419,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:421,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pengine/unpack.c:276,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:370,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:401,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:275,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pengine/unpack.c:311,1
    - Dst: set_config_flag
      Src: /src/pacemaker/lib/pengine/unpack.c:378,1
    - Dst: pe__unpack_dataset_nvpairs
      Src: /src/pacemaker/lib/pengine/unpack.c:229,1
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/lib/pengine/unpack.c:400,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:405,1
    - Dst: pcmk__warn_once
      Src: /src/pacemaker/lib/pengine/unpack.c:393,1
    - Dst: set_if_xpath
      Src: /src/pacemaker/lib/pengine/unpack.c:252,1
    - Dst: set_config_flag
      Src: /src/pacemaker/lib/pengine/unpack.c:273,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pengine/unpack.c:410,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pengine/unpack.c:422,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:360,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/unpack.c:376,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pengine/unpack.c:342,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pengine/unpack.c:258,1
    - Dst: set_config_flag
      Src: /src/pacemaker/lib/pengine/unpack.c:289,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pengine/unpack.c:291,1
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/lib/pengine/unpack.c:406,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:359,1
    - Dst: set_config_flag
      Src: /src/pacemaker/lib/pengine/unpack.c:403,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pengine/unpack.c:346,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:383,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pengine/unpack.c:264,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pengine/unpack.c:297,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:313,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pengine/unpack.c:338,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pengine/unpack.c:350,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pengine/unpack.c:353,1
    - Dst: set_config_flag
      Src: /src/pacemaker/lib/pengine/unpack.c:357,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:263,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:296,1
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/lib/pengine/unpack.c:300,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:412,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 137
    argCount: 2
    argNames:
    - config
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 426
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 426
    functionName: unpack_config
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__set_scheduler_flags
    - pcmk__validate_cluster_options
    - crm_notice
    - pcmk__flag_text
    - pcmk__cluster_option
    - crm_is_true
    - pe__unpack_dataset_nvpairs
    - set_config_flag
    - pcmk_is_set
    - pe__unpack_node_health_scores
    - set_if_xpath
    - pcmk__str_eq
    - pcmk__strcase_any_of
    - pcmk__config_err
    - pcmk__readable_interval
    - crm_info
    - crm_trace
    - crm_debug
    - pcmk__warn_once
    - pcmk__strkey_table
    - pcmk_parse_interval_spec
    - crm_element_value_int
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean unpack_config(xmlNode *config, pcmk_scheduler_t *scheduler) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:771,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:775,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:783,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/unpack.c:781,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/unpack.c:780,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:784,1
    - Dst: handle_startup_fencing
      Src: /src/pacemaker/lib/pengine/unpack.c:791,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/unpack.c:797,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - scheduler
    - new_rsc
    argTypes:
    - pcmk_scheduler_t*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 800
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 800
    functionName: link_rsc2remotenode
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - handle_startup_fencing
    - CRM_CHECK
    - pcmk__rsc_trace
    - pcmk__insert_dup
    - pcmk__node_name
    - pcmk_is_set
    - pcmk_find_node
    linkageType: ''
    returnType: void
    signature: 'static void link_rsc2remotenode(pcmk_scheduler_t *scheduler, pcmk_resource_t
      *new_rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_history_key
      Src: /src/pacemaker/lib/pengine/unpack.c:3503,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:3509,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:3507,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:3504,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:3506,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:3510,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:3515,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:3516,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/unpack.c:3517,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/unpack.c:3518,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/pengine/unpack.c:3519,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 1
    argNames:
    - history
    argTypes:
    - struct action_history*
    constantsTouched: []
    func_position:
      end: 3520
      start: 3491
    functionDepth: 0
    functionLinenumber: 3491
    functionLinenumberEnd: 3520
    functionName: record_failed_op
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__xml_copy
    - crm_xml_add
    - pcmk__str_eq
    - pcmk__node_name
    - crm_element_value
    - pcmk__xe_history_key
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void record_failed_op(struct action_history *history) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_epoch
      Src: /src/pacemaker/lib/pengine/unpack.c:3528,1
    - Dst: pcmk__epoch2str
      Src: /src/pacemaker/lib/pengine/unpack.c:3530,1
    - Dst: strchr
      Src: /src/pacemaker/lib/pengine/unpack.c:3531,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/unpack.c:3537,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/pengine/unpack.c:3535,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/pengine/unpack.c:3541,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 1
    argNames:
    - xml_op
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3545
      start: 3522
    functionDepth: 0
    functionLinenumber: 3522
    functionLinenumberEnd: 3545
    functionName: last_change_str
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - crm_element_value_epoch
    - strchr
    - pcmk__str_copy
    - free
    - pcmk__epoch2str
    linkageType: ''
    returnType: char*
    signature: 'static char *last_change_str(const xmlNode *xml_op) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/unpack.c:739,1
    - Dst: pe_create_node
      Src: /src/pacemaker/lib/pengine/unpack.c:727,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/unpack.c:745,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:746,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:748,1
    - Dst: xml_contains_remote_node
      Src: /src/pacemaker/lib/pengine/unpack.c:698,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/unpack.c:704,1
    - Dst: expand_remote_rsc_meta
      Src: /src/pacemaker/lib/pengine/unpack.c:721,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:726,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:725,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:690,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/unpack.c:691,1
    - Dst: pe_create_node
      Src: /src/pacemaker/lib/pengine/unpack.c:707,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/pengine/unpack.c:716,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:738,1
    - Dst: expand_remote_rsc_meta
      Src: /src/pacemaker/lib/pengine/unpack.c:741,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:747,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:699,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:705,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:706,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/pengine/unpack.c:736,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/unpack.c:724,1
    - Dst: pe_create_node
      Src: /src/pacemaker/lib/pengine/unpack.c:749,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 2
    argNames:
    - xml_resources
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 756
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 756
    functionName: unpack_remote_nodes
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__xe_id
    - pcmk__xe_first_child
    - expand_remote_rsc_meta
    - pe_create_node
    - pcmk__xe_is
    - pcmk_find_node
    - pcmk__xe_next
    - xml_contains_remote_node
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean unpack_remote_nodes(xmlNode *xml_resources, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__effective_rc
      Src: /src/pacemaker/lib/pengine/unpack.c:3836,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/pengine/unpack.c:3846,1
    - Dst: remap_because
      Src: /src/pacemaker/lib/pengine/unpack.c:3867,1
    - Dst: pcmk_xe_is_probe
      Src: /src/pacemaker/lib/pengine/unpack.c:3875,1
    - Dst: remap_because
      Src: /src/pacemaker/lib/pengine/unpack.c:3889,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/unpack.c:3906,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:3929,1
    - Dst: remap_because
      Src: /src/pacemaker/lib/pengine/unpack.c:3948,1
    - Dst: block_if_unrecoverable
      Src: /src/pacemaker/lib/pengine/unpack.c:3980,1
    - Dst: remap_because
      Src: /src/pacemaker/lib/pengine/unpack.c:3985,1
    - Dst: record_failed_op
      Src: /src/pacemaker/lib/pengine/unpack.c:3841,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/unpack.c:3891,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:3893,1
    - Dst: remap_because
      Src: /src/pacemaker/lib/pengine/unpack.c:3896,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/unpack.c:3907,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/unpack.c:3922,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:3952,1
    - Dst: remap_because
      Src: /src/pacemaker/lib/pengine/unpack.c:3969,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4007,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/lib/pengine/unpack.c:4020,1
    - Dst: block_if_unrecoverable
      Src: /src/pacemaker/lib/pengine/unpack.c:3995,1
    - Dst: remap_because
      Src: /src/pacemaker/lib/pengine/unpack.c:3997,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:3902,1
    - Dst: last_change_str
      Src: /src/pacemaker/lib/pengine/unpack.c:3915,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:3920,1
    - Dst: remap_because
      Src: /src/pacemaker/lib/pengine/unpack.c:3935,1
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pengine/unpack.c:3938,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pengine/unpack.c:3949,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/unpack.c:3953,1
    - Dst: remap_because
      Src: /src/pacemaker/lib/pengine/unpack.c:3982,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:4004,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/unpack.c:4010,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/unpack.c:4021,1
    - Dst: pcmk__is_bundled
      Src: /src/pacemaker/lib/pengine/unpack.c:3845,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pengine/unpack.c:3900,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/unpack.c:3904,1
    - Dst: remap_because
      Src: /src/pacemaker/lib/pengine/unpack.c:3899,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:3908,1
    - Dst: remap_because
      Src: /src/pacemaker/lib/pengine/unpack.c:3917,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pengine/unpack.c:3918,1
    - Dst: last_change_str
      Src: /src/pacemaker/lib/pengine/unpack.c:3946,1
    - Dst: remap_because
      Src: /src/pacemaker/lib/pengine/unpack.c:3965,1
    - Dst: crm_element_value_ms
      Src: /src/pacemaker/lib/pengine/unpack.c:3975,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/unpack.c:4023,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/lib/pengine/unpack.c:4022,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:4017,1
    - Dst: last_change_str
      Src: /src/pacemaker/lib/pengine/unpack.c:4002,1
    - Dst: remap_because
      Src: /src/pacemaker/lib/pengine/unpack.c:4008,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 111
    argCount: 3
    argNames:
    - history
    - on_fail
    - expired
    argTypes:
    - struct action_history*
    - enum pcmk__on_fail*
    - bool
    constantsTouched: []
    func_position:
      end: 4025
      start: 3820
    functionDepth: 0
    functionLinenumber: 3820
    functionLinenumberEnd: 4025
    functionName: remap_operation
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - record_failed_op
    - remap_because
    - pcmk__config_warn
    - pcmk__str_empty
    - pcmk__is_bundled
    - free
    - pcmk_xe_mask_probe_failure
    - pcmk__s
    - pcmk__node_name
    - pcmk_is_set
    - pcmk__rsc_info
    - pcmk_xe_is_probe
    - pcmk_exec_status_str
    - pcmk__rsc_debug
    - crm_exit_str
    - pcmk__rsc_trace
    - crm_element_value_ms
    - pcmk__effective_rc
    - block_if_unrecoverable
    - crm_info
    - last_change_str
    - pe__set_next_role
    linkageType: ''
    returnType: void
    signature: 'static void remap_operation(struct action_history *history, enum pcmk__on_fail
      *on_fail, bool expired) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/unpack.c:1907,1
    - Dst: strlen
      Src: /src/pacemaker/lib/pengine/unpack.c:1908,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 12
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1932
      start: 1904
    functionDepth: 0
    functionLinenumber: 1904
    functionLinenumberEnd: 1932
    functionName: pe_base_name_end
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - strlen
    - pcmk__str_empty
    linkageType: ''
    returnType: char*
    signature: 'const char *pe_base_name_end(const char *id) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:2268,1
    - Dst: create_fake_resource
      Src: /src/pacemaker/lib/pengine/unpack.c:2272,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2277,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:2271,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pengine/unpack.c:2270,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:2278,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/unpack.c:2281,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2282,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pengine/unpack.c:2283,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - rsc_entry
    - node
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_node_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 2287
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2287
    functionName: process_orphan_resource
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - crm_debug
    - CRM_CHECK
    - pcmk__rsc_trace
    - create_fake_resource
    - pcmk__clear_rsc_flags
    - pcmk__node_name
    - pcmk_is_set
    - crm_element_value
    - resource_location
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'static pcmk_resource_t *process_orphan_resource(const xmlNode *rsc_entry,
      const pcmk_node_t *node, pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_epoch
      Src: /src/pacemaker/lib/pengine/unpack.c:2690,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/pengine/unpack.c:2695,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pengine/unpack.c:2696,1
    - Dst: pcmk__scheduler_epoch_time
      Src: /src/pacemaker/lib/pengine/unpack.c:2694,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:2697,1
    - Dst: pe__clear_resource_history
      Src: /src/pacemaker/lib/pengine/unpack.c:2698,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - rsc_entry
    - rsc
    - node
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_resource_t*
    - pcmk_node_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 2704
      start: 2684
    functionDepth: 0
    functionLinenumber: 2684
    functionLinenumberEnd: 2704
    functionName: unpack_shutdown_lock
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__timeout_ms2s
    - crm_element_value_epoch
    - pcmk__node_name
    - pcmk__scheduler_epoch_time
    - pe__clear_resource_history
    - pcmk__rsc_info
    linkageType: ''
    returnType: void
    signature: 'static void unpack_shutdown_lock(const xmlNode *rsc_entry, pcmk_resource_t
      *rsc, const pcmk_node_t *node, pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/pengine/unpack.c:4420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - history
    argTypes:
    - struct action_history*
    constantsTouched: []
    func_position:
      end: 4425
      start: 4417
    functionDepth: 0
    functionLinenumber: 4417
    functionLinenumberEnd: 4425
    functionName: can_affect_state
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    linkageType: ''
    returnType: bool
    signature: 'static inline bool can_affect_state(struct action_history *history) '
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__clear_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:2358,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/unpack.c:2402,1
    - Dst: pcmk__set_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:2406,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:2440,1
    - Dst: stop_action
      Src: /src/pacemaker/lib/pengine/unpack.c:2451,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2459,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:2414,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2461,1
    - Dst: pe_fence_node
      Src: /src/pacemaker/lib/pengine/unpack.c:2470,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:2506,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:2521,1
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pengine/unpack.c:2544,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:2524,1
    - Dst: pcmk__set_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:2497,1
    - Dst: pe_fence_node
      Src: /src/pacemaker/lib/pengine/unpack.c:2371,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/unpack.c:2554,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/unpack.c:2400,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/unpack.c:2299,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2302,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:2304,1
    - Dst: pcmk__on_fail_text
      Src: /src/pacemaker/lib/pengine/unpack.c:2304,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pengine/unpack.c:2303,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2315,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:2317,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:2318,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2349,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pengine/unpack.c:2342,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/unpack.c:2359,1
    - Dst: stop_action
      Src: /src/pacemaker/lib/pengine/unpack.c:2477,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/unpack.c:2495,1
    - Dst: pe_fence_node
      Src: /src/pacemaker/lib/pengine/unpack.c:2401,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pengine/unpack.c:2422,1
    - Dst: stop_action
      Src: /src/pacemaker/lib/pengine/unpack.c:2453,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/unpack.c:2462,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/unpack.c:2373,1
    - Dst: pcmk__is_remote_node
      Src: /src/pacemaker/lib/pengine/unpack.c:2464,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pengine/unpack.c:2563,1
    - Dst: pe__copy_node
      Src: /src/pacemaker/lib/pengine/unpack.c:2313,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:2392,1
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pengine/unpack.c:2427,1
    - Dst: pcmk__is_bundled
      Src: /src/pacemaker/lib/pengine/unpack.c:2441,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2493,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2503,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/unpack.c:2448,1
    - Dst: native_add_running
      Src: /src/pacemaker/lib/pengine/unpack.c:2514,1
    - Dst: strchr
      Src: /src/pacemaker/lib/pengine/unpack.c:2530,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2538,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:2415,1
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pengine/unpack.c:2483,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:2551,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:2458,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2331,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/unpack.c:2311,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2322,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:2343,1
    - Dst: pcmk__is_remote_node
      Src: /src/pacemaker/lib/pengine/unpack.c:2347,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/unpack.c:2319,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2346,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/unpack.c:2369,1
    - Dst: demote_action
      Src: /src/pacemaker/lib/pengine/unpack.c:2393,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:2433,1
    - Dst: stop_action
      Src: /src/pacemaker/lib/pengine/unpack.c:2435,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pengine/unpack.c:2508,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:2510,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/unpack.c:2540,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2465,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2502,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pengine/unpack.c:2504,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 158
    argCount: 3
    argNames:
    - rsc
    - node
    - on_fail
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - enum pcmk__on_fail
    constantsTouched: []
    func_position:
      end: 2567
      start: 2289
    functionDepth: 0
    functionLinenumber: 2289
    functionLinenumberEnd: 2567
    functionName: process_rsc_state
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__set_rsc_flags
    - pcmk__is_bundled
    - pcmk__is_remote_node
    - pcmk__set_action_flags
    - crm_notice
    - free
    - g_hash_table_insert
    - pcmk__on_fail_text
    - g_list_free
    - pcmk__s
    - g_hash_table_lookup
    - pcmk__clear_node_flags
    - crm_strdup_printf
    - strchr
    - pcmk__clear_rsc_flags
    - pcmk__same_node
    - pcmk__node_name
    - pcmk_is_set
    - pcmk_all_flags_set
    - pcmk__is_guest_or_bundle_node
    - pcmk__assert
    - pcmk_role_text
    - pcmk__rsc_trace
    - demote_action
    - pe__copy_node
    - pcmk_find_node
    - pe_fence_node
    - native_add_running
    - stop_action
    - g_list_prepend
    - pe__resource_actions
    - pcmk__set_node_flags
    - resource_location
    - pe__set_next_role
    linkageType: ''
    returnType: void
    signature: 'static void process_rsc_state(pcmk_resource_t *rsc, pcmk_node_t *node,
      enum pcmk__on_fail on_fail) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/unpack.c:2945,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/unpack.c:2949,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/unpack.c:2956,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/unpack.c:2957,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pengine/unpack.c:2948,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/unpack.c:2962,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/unpack.c:2963,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/pengine/unpack.c:2967,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pengine/unpack.c:2970,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/unpack.c:2971,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/pengine/unpack.c:2978,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/pengine/unpack.c:2977,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 36
    argCount: 6
    argNames:
    - resource
    - op
    - node
    - source
    - target_rc
    - scheduler
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - int
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 2984
      start: 2938
    functionDepth: 0
    functionLinenumber: 2938
    functionLinenumberEnd: 2984
    functionName: find_lrm_op
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - g_string_append_c
    - CRM_CHECK
    - crm_element_value_int
    - strcmp
    - pcmk__xpath_find_one
    - g_string_sized_new
    - g_string_free
    - pcmk__g_strcat
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *find_lrm_op(const char *resource, const char *op,
      const char *node, const char *source, int target_rc, pcmk_scheduler_t *scheduler) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/unpack.c:449,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:457,1
    - Dst: pcmk__sched_err
      Src: /src/pacemaker/lib/pengine/unpack.c:468,1
    - Dst: pcmk__sched_err
      Src: /src/pacemaker/lib/pengine/unpack.c:482,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/unpack.c:497,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:503,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:462,1
    - Dst: calloc
      Src: /src/pacemaker/lib/pengine/unpack.c:473,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/unpack.c:481,1
    - Dst: g_list_insert_sorted
      Src: /src/pacemaker/lib/pengine/unpack.c:508,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:453,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/unpack.c:450,1
    - Dst: calloc
      Src: /src/pacemaker/lib/pengine/unpack.c:466,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/unpack.c:478,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/unpack.c:498,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/unpack.c:499,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/pengine/unpack.c:501,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/unpack.c:502,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/unpack.c:505,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:461,1
    - Dst: calloc
      Src: /src/pacemaker/lib/pengine/unpack.c:474,1
    - Dst: calloc
      Src: /src/pacemaker/lib/pengine/unpack.c:475,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:487,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/unpack.c:480,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/unpack.c:479,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 5
    argNames:
    - id
    - uname
    - type
    - score
    - scheduler
    argTypes:
    - char*
    - char*
    - char*
    - int
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 511
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 511
    functionName: pe_create_node
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - pcmk__config_warn
    - calloc
    - pcmk__insert_dup
    - pcmk__strkey_table
    - pcmk__str_eq
    - pcmk__set_scheduler_flags
    - pcmk__is_pacemaker_remote_node
    - pcmk_find_node
    - free
    - g_list_insert_sorted
    - pcmk__config_err
    - pcmk__sched_err
    - crm_trace
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'pcmk_node_t *pe_create_node(const char *id, const char *uname, const
      char *type, int score, pcmk_scheduler_t *scheduler) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:1837,1
    - Dst: pcmk__set_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1847,1
    - Dst: pe__shutdown_requested
      Src: /src/pacemaker/lib/pengine/unpack.c:1843,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:1846,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:1850,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1880,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1877,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1883,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1886,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1889,1
    - Dst: determine_online_status_no_fencing
      Src: /src/pacemaker/lib/pengine/unpack.c:1851,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1880,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1883,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1877,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1892,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/unpack.c:1839,1
    - Dst: determine_online_status_fencing
      Src: /src/pacemaker/lib/pengine/unpack.c:1855,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:1885,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1892,1
    - Dst: pcmk__sched_warn
      Src: /src/pacemaker/lib/pengine/unpack.c:1873,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1874,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1886,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1889,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 3
    argNames:
    - node_state
    - this_node
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_node_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1894
      start: 1832
    functionDepth: 0
    functionLinenumber: 1832
    functionLinenumberEnd: 1894
    functionName: determine_online_status
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - determine_online_status_fencing
    - CRM_CHECK
    - crm_element_value
    - determine_online_status_no_fencing
    - pcmk__sched_warn
    - pcmk__str_eq
    - pcmk__node_name
    - pcmk_is_set
    - pcmk__set_node_flags
    - crm_info
    - pe__shutdown_requested
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void determine_online_status(const xmlNode *node_state, pcmk_node_t
      *this_node, pcmk_scheduler_t *scheduler) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: unpack_find_resource
      Src: /src/pacemaker/lib/pengine/unpack.c:2764,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2776,1
    - Dst: unpack_shutdown_lock
      Src: /src/pacemaker/lib/pengine/unpack.c:2777,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pengine/unpack.c:2808,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pengine/unpack.c:2812,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:2738,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:2749,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pengine/unpack.c:2783,1
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pengine/unpack.c:2805,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2743,1
    - Dst: crm_log_xml_info
      Src: /src/pacemaker/lib/pengine/unpack.c:2740,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:2744,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/unpack.c:2751,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/unpack.c:2773,1
    - Dst: calculate_active_ops
      Src: /src/pacemaker/lib/pengine/unpack.c:2792,1
    - Dst: process_recurring
      Src: /src/pacemaker/lib/pengine/unpack.c:2793,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/unpack.c:2797,1
    - Dst: process_orphan_resource
      Src: /src/pacemaker/lib/pengine/unpack.c:2770,1
    - Dst: process_rsc_state
      Src: /src/pacemaker/lib/pengine/unpack.c:2799,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:2725,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/unpack.c:2753,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2756,1
    - Dst: unpack_rsc_op
      Src: /src/pacemaker/lib/pengine/unpack.c:2788,1
    - Dst: get_target_role
      Src: /src/pacemaker/lib/pengine/unpack.c:2801,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pengine/unpack.c:2811,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 63
    argCount: 3
    argNames:
    - node
    - lrm_resource
    - scheduler
    argTypes:
    - pcmk_node_t*
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 2821
      start: 2716
    functionDepth: 0
    functionLinenumber: 2716
    functionLinenumberEnd: 2821
    functionName: unpack_lrm_resource
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - get_target_role
    - pcmk__xe_first_child
    - process_orphan_resource
    - unpack_find_resource
    - calculate_active_ops
    - g_list_free
    - unpack_rsc_op
    - pcmk__node_name
    - pcmk_is_set
    - pcmk__assert
    - process_recurring
    - pcmk__rsc_info
    - pcmk__xe_id
    - pcmk_role_text
    - g_list_sort
    - crm_log_xml_info
    - pcmk__xe_next
    - unpack_shutdown_lock
    - pcmk__config_err
    - process_rsc_state
    - crm_trace
    - g_list_prepend
    - pe__set_next_role
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'static pcmk_resource_t *unpack_lrm_resource(pcmk_node_t *node, const
      xmlNode *lrm_resource, pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/pengine/unpack.c:4438,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:4443,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:4447,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:4447,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4446,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/pengine/unpack.c:4452,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:4455,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4458,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:4459,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:4459,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:4464,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - history
    argTypes:
    - struct action_history*
    constantsTouched: []
    func_position:
      end: 4466
      start: 4435
    functionDepth: 0
    functionLinenumber: 4435
    functionLinenumberEnd: 4466
    functionName: unpack_action_result
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - pcmk__node_name
    - crm_element_value
    - pcmk__config_err
    - crm_element_value_int
    linkageType: ''
    returnType: int
    signature: 'static int unpack_action_result(struct action_history *history) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: failure_is_newer
      Src: /src/pacemaker/lib/pengine/unpack.c:4630,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/unpack.c:4634,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/unpack.c:4638,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:4635,1
    - Dst: set_active
      Src: /src/pacemaker/lib/pengine/unpack.c:4636,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/unpack.c:4641,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:4649,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/unpack.c:4651,1
    - Dst: stop_action
      Src: /src/pacemaker/lib/pengine/unpack.c:4654,1
    - Dst: pcmk_is_probe
      Src: /src/pacemaker/lib/pengine/unpack.c:4665,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/unpack.c:4676,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/unpack.c:4672,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 2
    argNames:
    - history
    - last_failure
    argTypes:
    - struct action_history*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 4679
      start: 4617
    functionDepth: 0
    functionLinenumber: 4617
    functionLinenumberEnd: 4679
    functionName: process_pending_action
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__set_rsc_flags
    - failure_is_newer
    - strcmp
    - pcmk_is_probe
    - stop_action
    - pcmk_find_node
    - set_active
    - crm_element_value
    - strdup
    linkageType: ''
    returnType: void
    signature: 'static void process_pending_action(struct action_history *history,
      const xmlNode *last_failure) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:208,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pengine/unpack.c:210,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:211,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pengine/unpack.c:209,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pengine/unpack.c:213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - flag
    - xpath
    - scheduler
    argTypes:
    - uint64_t
    - char*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 215
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 215
    functionName: set_if_xpath
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__set_scheduler_flags
    - xmlXPathFreeObject
    - pcmk_is_set
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    linkageType: ''
    returnType: void
    signature: 'static void set_if_xpath(uint64_t flag, const char *xpath, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:5055,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/unpack.c:5058,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:5062,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/unpack.c:5066,1
    - Dst: determine_online_status
      Src: /src/pacemaker/lib/pengine/unpack.c:5075,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:5091,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:5079,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/unpack.c:5094,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:5088,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/unpack.c:5053,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:5046,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:5060,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/pengine/unpack.c:5068,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/pengine/unpack.c:5071,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:5096,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:5099,1
    - Dst: extract_operations
      Src: /src/pacemaker/lib/pengine/unpack.c:5103,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:5086,1
    - Dst: g_list_concat
      Src: /src/pacemaker/lib/pengine/unpack.c:5104,1
    - Dst: determine_remote_online_status
      Src: /src/pacemaker/lib/pengine/unpack.c:5072,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 50
    argCount: 4
    argNames:
    - rsc
    - node
    - active_filter
    - scheduler
    argTypes:
    - char*
    - char*
    - gboolean
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 5110
      start: 5038
    functionDepth: 0
    functionLinenumber: 5038
    functionLinenumberEnd: 5110
    functionName: find_operations
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__xe_first_child
    - CRM_LOG_ASSERT
    - g_list_concat
    - determine_online_status
    - pcmk__str_eq
    - pcmk__is_pacemaker_remote_node
    - pcmk_is_set
    - pcmk_find_node
    - pcmk__xe_next
    - crm_element_value
    - extract_operations
    - determine_remote_online_status
    linkageType: ''
    returnType: GList*
    signature: 'GList *find_operations(const char *rsc, const char *node, gboolean
      active_filter, pcmk_scheduler_t *scheduler) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:4586,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/pengine/unpack.c:4598,1
    - Dst: crm_element_value_ms
      Src: /src/pacemaker/lib/pengine/unpack.c:4592,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:4587,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:4598,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/pengine/unpack.c:4600,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:4600,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 2
    argNames:
    - history
    - last_failure
    argTypes:
    - struct action_history*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 4608
      start: 4574
    functionDepth: 0
    functionLinenumber: 4574
    functionLinenumberEnd: 4608
    functionName: failure_is_newer
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - crm_element_value_ms
    - pcmk__str_eq
    - pcmk__scan_ll
    - crm_element_value
    linkageType: ''
    returnType: bool
    signature: 'static bool failure_is_newer(const struct action_history *history,
      const xmlNode *last_failure) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__node_attr
      Src: /src/pacemaker/lib/pengine/unpack.c:1557,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pengine/unpack.c:1568,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/pengine/unpack.c:1561,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1570,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/pengine/unpack.c:1564,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pengine/unpack.c:1570,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - node
    - node_state
    argTypes:
    - pcmk_node_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1572
      start: 1551
    functionDepth: 0
    functionLinenumber: 1551
    functionLinenumberEnd: 1572
    functionName: unpack_node_terminate
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__node_attr
    - crm_str_to_boolean
    - pcmk__node_name
    - pcmk__scan_ll
    - pcmk_rc_str
    - crm_warn
    linkageType: ''
    returnType: bool
    signature: 'static bool unpack_node_terminate(const pcmk_node_t *node, const xmlNode
      *node_state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/unpack.c:2913,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2915,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 2920
      start: 2910
    functionDepth: 0
    functionLinenumber: 2910
    functionLinenumberEnd: 2920
    functionName: set_active
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pe__const_top_resource
    linkageType: ''
    returnType: void
    signature: 'static void set_active(pcmk_resource_t *rsc) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_migration_node_names
      Src: /src/pacemaker/lib/pengine/unpack.c:3270,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/pengine/unpack.c:3291,1
    - Dst: find_lrm_op
      Src: /src/pacemaker/lib/pengine/unpack.c:3280,1
    - Dst: non_monitor_after
      Src: /src/pacemaker/lib/pengine/unpack.c:3276,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/pengine/unpack.c:3290,1
    - Dst: newer_state_after_migrate
      Src: /src/pacemaker/lib/pengine/unpack.c:3297,1
    - Dst: add_dangling_migration
      Src: /src/pacemaker/lib/pengine/unpack.c:3309,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/unpack.c:3318,1
    - Dst: native_add_running
      Src: /src/pacemaker/lib/pengine/unpack.c:3324,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:3327,1
    - Dst: unknown_on_node
      Src: /src/pacemaker/lib/pengine/unpack.c:3341,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/unpack.c:3346,1
    - Dst: native_add_running
      Src: /src/pacemaker/lib/pengine/unpack.c:3348,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:3362,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:3364,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:3329,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 56
    argCount: 1
    argNames:
    - history
    argTypes:
    - struct action_history*
    constantsTouched: []
    func_position:
      end: 3366
      start: 3224
    functionDepth: 0
    functionLinenumber: 3224
    functionLinenumberEnd: 3366
    functionName: unpack_migrate_to_success
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - native_add_running
    - pcmk__set_rsc_flags
    - get_migration_node_names
    - pcmk__clear_rsc_flags
    - non_monitor_after
    - pcmk_find_node
    - find_lrm_op
    - add_dangling_migration
    - unknown_on_node
    - crm_element_value_int
    - newer_state_after_migrate
    linkageType: ''
    returnType: void
    signature: 'static void unpack_migrate_to_success(struct action_history *history) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:4102,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:4110,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/unpack.c:4107,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:4105,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:4113,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 4
    argNames:
    - rsc
    - task
    - interval_ms
    - is_last_failure
    argTypes:
    - pcmk_resource_t*
    - char*
    - guint
    - bool
    constantsTouched: []
    func_position:
      end: 4120
      start: 4077
    functionDepth: 0
    functionLinenumber: 4077
    functionLinenumberEnd: 4120
    functionName: should_ignore_failure_timeout
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk_find_node
    - pcmk__str_eq
    - crm_info
    linkageType: ''
    returnType: bool
    signature: 'static bool should_ignore_failure_timeout(const pcmk_resource_t *rsc,
      const char *task, guint interval_ms, bool is_last_failure) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 2929
      start: 2922
    functionDepth: 0
    functionLinenumber: 2922
    functionLinenumberEnd: 2929
    functionName: set_node_score
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void set_node_score(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:1519,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:1526,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pengine/unpack.c:1534,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/pengine/unpack.c:1532,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:1522,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - node_state
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1540
      start: 1516
    functionDepth: 0
    functionLinenumber: 1516
    functionLinenumberEnd: 1540
    functionName: unpack_node_online
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - crm_warn
    - pcmk__str_eq
    - pcmk__scan_ll
    - crm_element_value
    linkageType: ''
    returnType: long long
    signature: 'static long long unpack_node_online(const xmlNode *node_state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:3210,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/unpack.c:3214,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:3211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - rsc
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 3216
      start: 3207
    functionDepth: 0
    functionLinenumber: 3207
    functionLinenumberEnd: 3216
    functionName: add_dangling_migration
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__node_name
    - g_list_prepend
    - pcmk__rsc_trace
    linkageType: ''
    returnType: void
    signature: 'static void add_dangling_migration(pcmk_resource_t *rsc, const pcmk_node_t
      *node) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:519,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/unpack.c:534,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:533,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:528,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/unpack.c:531,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:536,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:537,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/unpack.c:543,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/unpack.c:546,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/unpack.c:549,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/unpack.c:552,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/unpack.c:555,1
    - Dst: pe_find_resource
      Src: /src/pacemaker/lib/pengine/unpack.c:568,1
    - Dst: pe_create_remote_xml
      Src: /src/pacemaker/lib/pengine/unpack.c:572,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/unpack.c:558,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 48
    argCount: 3
    argNames:
    - xml_obj
    - parent
    - data
    argTypes:
    - xmlNode*
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 576
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 576
    functionName: expand_remote_rsc_meta
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - strcmp
    - pe_create_remote_xml
    - pcmk__xe_next
    - crm_element_value
    - pe_find_resource
    - pcmk__xe_id
    linkageType: ''
    returnType: char*
    signature: 'static const char *expand_remote_rsc_meta(xmlNode *xml_obj, xmlNode
      *parent, pcmk_scheduler_t *data) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1392,1
    - Dst: unpack_node_state
      Src: /src/pacemaker/lib/pengine/unpack.c:1407,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1412,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/pengine/unpack.c:1446,1
    - Dst: determine_remote_online_status
      Src: /src/pacemaker/lib/pengine/unpack.c:1455,1
    - Dst: unpack_node_history
      Src: /src/pacemaker/lib/pengine/unpack.c:1416,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/unpack.c:1435,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/unpack.c:1400,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:1399,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/pengine/unpack.c:1406,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/pengine/unpack.c:1402,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/unpack.c:1396,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/lib/pengine/unpack.c:1403,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:1417,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pengine/unpack.c:1429,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:1454,1
    - Dst: stop_action
      Src: /src/pacemaker/lib/pengine/unpack.c:1432,1
    - Dst: unpack_node_history
      Src: /src/pacemaker/lib/pengine/unpack.c:1411,1
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pengine/unpack.c:1451,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 48
    argCount: 2
    argNames:
    - status
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1460
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1460
    functionName: unpack_status
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - g_list_free
    - pcmk__xe_first_child
    - pcmk__xe_foreach_child
    - pcmk__strkey_table
    - unpack_node_history
    - pcmk__is_pacemaker_remote_node
    - stop_action
    - pcmk__xe_is
    - pcmk_is_set
    - pcmk__xe_next
    - determine_remote_online_status
    - pe__set_next_role
    - crm_trace
    - unpack_node_state
    - pcmk__current_node
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean unpack_status(xmlNode *status, pcmk_scheduler_t *scheduler) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1586,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1586,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:1602,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:1609,1
    - Dst: unpack_node_member
      Src: /src/pacemaker/lib/pengine/unpack.c:1582,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:1581,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:1590,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pengine/unpack.c:1593,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:1580,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1608,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1601,1
    - Dst: unpack_node_online
      Src: /src/pacemaker/lib/pengine/unpack.c:1583,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1594,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:1597,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1607,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1599,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:1609,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:1602,1
    - Dst: pe_fence_node
      Src: /src/pacemaker/lib/pengine/unpack.c:1606,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - scheduler
    - node_state
    - this_node
    argTypes:
    - pcmk_scheduler_t*
    - xmlNode*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1612
      start: 1574
    functionDepth: 0
    functionLinenumber: 1574
    functionLinenumberEnd: 1612
    functionName: determine_online_status_no_fencing
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__s
    - unpack_node_online
    - pcmk__str_eq
    - crm_info
    - pcmk__node_name
    - pcmk_is_set
    - unpack_node_member
    - crm_element_value
    - pe_fence_node
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean determine_online_status_no_fencing(pcmk_scheduler_t
      *scheduler, const xmlNode *node_state, pcmk_node_t *this_node) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_anonymous_clone
      Src: /src/pacemaker/lib/pengine/unpack.c:2075,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2145,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2143,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pengine/unpack.c:2159,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/unpack.c:2140,1
    - Dst: pe__is_universal_clone
      Src: /src/pacemaker/lib/pengine/unpack.c:2189,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2196,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/unpack.c:2075,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pengine/unpack.c:2111,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pengine/unpack.c:2188,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2168,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:2079,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2078,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2136,1
    - Dst: create_anonymous_orphan
      Src: /src/pacemaker/lib/pengine/unpack.c:2195,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/pengine/unpack.c:2109,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pengine/unpack.c:2130,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:2132,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2186,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 78
    argCount: 4
    argNames:
    - scheduler
    - node
    - parent
    - rsc_id
    argTypes:
    - pcmk_scheduler_t*
    - pcmk_node_t*
    - pcmk_resource_t*
    - char*
    constantsTouched: []
    func_position:
      end: 2199
      start: 2066
    functionDepth: 0
    functionLinenumber: 2066
    functionLinenumberEnd: 2199
    functionName: find_anonymous_clone
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - g_list_free
    - pcmk__rsc_trace
    - CRM_LOG_ASSERT
    - create_anonymous_orphan
    - pcmk__same_node
    - pcmk__is_guest_or_bundle_node
    - pcmk__is_anonymous_clone
    - pcmk__node_name
    - crm_notice
    - pcmk_is_set
    - pe__is_universal_clone
    - pcmk__assert
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'static pcmk_resource_t *find_anonymous_clone(pcmk_scheduler_t *scheduler,
      const pcmk_node_t *node, pcmk_resource_t *parent, const char *rsc_id) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:590,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - scheduler
    - new_node
    argTypes:
    - pcmk_scheduler_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 598
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 598
    functionName: handle_startup_fencing
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: void
    signature: 'static void handle_startup_fencing(pcmk_scheduler_t *scheduler, pcmk_node_t
      *new_node) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: clone_zero
      Src: /src/pacemaker/lib/pengine/unpack.c:2216,1
    - Dst: pe_find_resource
      Src: /src/pacemaker/lib/pengine/unpack.c:2217,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:2252,1
    - Dst: clone_strip
      Src: /src/pacemaker/lib/pengine/unpack.c:2244,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/pengine/unpack.c:2255,1
    - Dst: pe_find_resource
      Src: /src/pacemaker/lib/pengine/unpack.c:2209,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2223,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2231,1
    - Dst: pcmk__is_anonymous_clone
      Src: /src/pacemaker/lib/pengine/unpack.c:2239,1
    - Dst: pe__find_bundle_replica
      Src: /src/pacemaker/lib/pengine/unpack.c:2242,1
    - Dst: pcmk__is_bundled
      Src: /src/pacemaker/lib/pengine/unpack.c:2241,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/unpack.c:2248,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2258,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2208,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:2220,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/unpack.c:2228,1
    - Dst: uber_parent
      Src: /src/pacemaker/lib/pengine/unpack.c:2236,1
    - Dst: find_anonymous_clone
      Src: /src/pacemaker/lib/pengine/unpack.c:2246,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:2253,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:2257,1
    - Dst: uber_parent
      Src: /src/pacemaker/lib/pengine/unpack.c:2222,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2225,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/unpack.c:2247,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pengine/unpack.c:2256,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 3
    argNames:
    - scheduler
    - node
    - rsc_id
    argTypes:
    - pcmk_scheduler_t*
    - pcmk_node_t*
    - char*
    constantsTouched: []
    func_position:
      end: 2261
      start: 2201
    functionDepth: 0
    functionLinenumber: 2201
    functionLinenumberEnd: 2261
    functionName: unpack_find_resource
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__rsc_debug
    - pe__find_bundle_replica
    - clone_zero
    - pcmk__is_bundled
    - find_anonymous_clone
    - pcmk__str_eq
    - pcmk__is_anonymous_clone
    - pcmk_is_set
    - free
    - pcmk__node_name
    - clone_strip
    - pe_find_resource
    - uber_parent
    - crm_trace
    - pcmk__str_update
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'static pcmk_resource_t *unpack_find_resource(pcmk_scheduler_t *scheduler,
      const pcmk_node_t *node, const char *rsc_id) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:4186,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pengine/unpack.c:4190,1
    - Dst: should_clear_for_param_change
      Src: /src/pacemaker/lib/pengine/unpack.c:4232,1
    - Dst: crm_element_value_epoch
      Src: /src/pacemaker/lib/pengine/unpack.c:4161,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:4153,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4156,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:4244,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:4262,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4273,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/pengine/unpack.c:4144,1
    - Dst: pcmk__scheduler_epoch_time
      Src: /src/pacemaker/lib/pengine/unpack.c:4168,1
    - Dst: pe_get_failcount
      Src: /src/pacemaker/lib/pengine/unpack.c:4180,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/pengine/unpack.c:4149,1
    - Dst: should_ignore_failure_timeout
      Src: /src/pacemaker/lib/pengine/unpack.c:4173,1
    - Dst: pe_get_failcount
      Src: /src/pacemaker/lib/pengine/unpack.c:4200,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4218,1
    - Dst: order_after_remote_fencing
      Src: /src/pacemaker/lib/pengine/unpack.c:4257,1
    - Dst: pcmk__update_recheck_time
      Src: /src/pacemaker/lib/pengine/unpack.c:4194,1
    - Dst: pe__clear_failcount
      Src: /src/pacemaker/lib/pengine/unpack.c:4241,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:4215,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:4254,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:4270,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 70
    argCount: 1
    argNames:
    - history
    argTypes:
    - struct action_history*
    constantsTouched: []
    func_position:
      end: 4280
      start: 4140
    functionDepth: 0
    functionLinenumber: 4140
    functionLinenumberEnd: 4280
    functionName: check_operation_expiry
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk__ends_with
    - pcmk__timeout_ms2s
    - should_clear_for_param_change
    - crm_element_value_epoch
    - pcmk__str_eq
    - crm_info
    - should_ignore_failure_timeout
    - pe_get_failcount
    - pcmk__node_name
    - pcmk_is_set
    - pcmk__update_recheck_time
    - pcmk__scheduler_epoch_time
    - order_after_remote_fencing
    - pe__clear_failcount
    - pcmk__readable_interval
    - crm_trace
    linkageType: ''
    returnType: bool
    signature: 'static bool check_operation_expiry(struct action_history *history) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:829,1
    - Dst: pe__unpack_resource
      Src: /src/pacemaker/lib/pengine/unpack.c:844,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/unpack.c:847,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pengine/unpack.c:866,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:872,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:874,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:868,1
    - Dst: unpack_launcher
      Src: /src/pacemaker/lib/pengine/unpack.c:862,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:826,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/pengine/unpack.c:834,1
    - Dst: g_hash_table_lookup_extended
      Src: /src/pacemaker/lib/pengine/unpack.c:835,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/unpack.c:838,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:843,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:848,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:875,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:877,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/unpack.c:820,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/unpack.c:828,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:822,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/unpack.c:823,1
    - Dst: link_rsc2remotenode
      Src: /src/pacemaker/lib/pengine/unpack.c:863,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:871,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:851,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 2
    argNames:
    - xml_resources
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 881
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 881
    functionName: unpack_resources
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - unpack_launcher
    - link_rsc2remotenode
    - g_list_append
    - pcmk__rsc_trace
    - g_list_sort
    - pcmk__str_empty
    - pcmk__xe_first_child
    - pcmk__insert_dup
    - pcmk__strkey_table
    - pcmk__xe_is
    - pcmk_is_set
    - pcmk__xe_next
    - pcmk__config_err
    - g_hash_table_lookup_extended
    - pcmk__xe_id
    - crm_trace
    - pe__unpack_resource
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean unpack_resources(const xmlNode *xml_resources, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/unpack.c:1292,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1308,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:1313,1
    - Dst: unpack_handle_remote_attrs
      Src: /src/pacemaker/lib/pengine/unpack.c:1370,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1349,1
    - Dst: pcmk__set_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1376,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:1295,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1300,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:1294,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1314,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pengine/unpack.c:1322,1
    - Dst: determine_remote_online_status
      Src: /src/pacemaker/lib/pengine/unpack.c:1369,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/pengine/unpack.c:1368,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:1289,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:1347,1
    - Dst: pcmk__is_remote_node
      Src: /src/pacemaker/lib/pengine/unpack.c:1338,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pengine/unpack.c:1359,1
    - Dst: unpack_node_lrm
      Src: /src/pacemaker/lib/pengine/unpack.c:1377,1
    - Dst: pe_find_node_any
      Src: /src/pacemaker/lib/pengine/unpack.c:1305,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1332,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1363,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1373,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 54
    argCount: 3
    argNames:
    - status
    - fence
    - scheduler
    argTypes:
    - xmlNode*
    - bool
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1382
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1382
    functionName: unpack_node_history
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - pcmk__set_node_flags
    - pcmk__xe_first_child
    - pcmk__is_remote_node
    - pcmk__is_pacemaker_remote_node
    - pe_find_node_any
    - pcmk_is_set
    - unpack_handle_remote_attrs
    - pcmk__xe_next
    - crm_element_value
    - pcmk__is_guest_or_bundle_node
    - unpack_node_lrm
    - pcmk__xe_id
    - crm_trace
    - determine_remote_online_status
    linkageType: ''
    returnType: int
    signature: 'static int unpack_node_history(const xmlNode *status, bool fence,
      pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pe_base_name_end
      Src: /src/pacemaker/lib/pengine/unpack.c:1947,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/unpack.c:1950,1
    - Dst: strndup
      Src: /src/pacemaker/lib/pengine/unpack.c:1951,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/unpack.c:1952,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - last_rsc_id
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1954
      start: 1944
    functionDepth: 0
    functionLinenumber: 1944
    functionLinenumberEnd: 1954
    functionName: clone_strip
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - strndup
    - pe_base_name_end
    linkageType: ''
    returnType: char*
    signature: 'char *clone_strip(const char *last_rsc_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/unpack.c:2993,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/unpack.c:3003,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pengine/unpack.c:3001,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pengine/unpack.c:2995,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/unpack.c:2996,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 3
    argNames:
    - rsc_id
    - node_name
    - scheduler
    argTypes:
    - char*
    - char*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 3005
      start: 2986
    functionDepth: 0
    functionLinenumber: 2986
    functionLinenumberEnd: 3005
    functionName: find_lrm_resource
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__xpath_find_one
    - g_string_sized_new
    - g_string_free
    - pcmk__g_strcat
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *find_lrm_resource(const char *rsc_id, const char *node_name,
      pcmk_scheduler_t *scheduler) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:3163,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:3164,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:3166,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:3173,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:3168,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:3175,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:3177,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:3178,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:3183,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:3185,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:3187,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:3188,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 5
    argNames:
    - entry
    - source_node
    - target_node
    - source_name
    - target_name
    argTypes:
    - xmlNode*
    - pcmk_node_t*
    - pcmk_node_t*
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 3193
      start: 3158
    functionDepth: 0
    functionLinenumber: 3158
    functionLinenumberEnd: 3193
    functionName: get_migration_node_names
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - pcmk__node_name
    - crm_element_value
    - pcmk__config_err
    - pcmk__xe_id
    linkageType: ''
    returnType: int
    signature: 'static int get_migration_node_names(const xmlNode *entry, const pcmk_node_t
      *source_node, const pcmk_node_t *target_node, const char **source_name, const
      char **target_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/unpack.c:4067,1
    - Dst: pe_fence_op
      Src: /src/pacemaker/lib/pengine/unpack.c:4070,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pengine/unpack.c:4073,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 3
    argNames:
    - action
    - remote_conn
    - scheduler
    argTypes:
    - pcmk_action_t*
    - pcmk_resource_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 4075
      start: 4063
    functionDepth: 0
    functionLinenumber: 4063
    functionLinenumberEnd: 4075
    functionName: order_after_remote_fencing
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - order_actions
    - pe_fence_op
    - pcmk_find_node
    linkageType: ''
    returnType: void
    signature: 'static void order_after_remote_fencing(pcmk_action_t *action, pcmk_resource_t
      *remote_conn, pcmk_scheduler_t *scheduler) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_bundled
      Src: /src/pacemaker/lib/pengine/unpack.c:4481,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pengine/unpack.c:4500,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:4488,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/pengine/unpack.c:4482,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4491,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4503,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pengine/unpack.c:4518,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pengine/unpack.c:4520,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4521,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/unpack.c:4522,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - history
    - orig_exit_status
    argTypes:
    - struct action_history*
    - int
    constantsTouched: []
    func_position:
      end: 4528
      start: 4478
    functionDepth: 0
    functionLinenumber: 4478
    functionLinenumberEnd: 4528
    functionName: process_expired_result
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__is_bundled
    - crm_xml_add
    - pcmk__node_name
    - crm_notice
    - pcmk__readable_interval
    - crm_trace
    - pcmk_xe_mask_probe_failure
    linkageType: ''
    returnType: int
    signature: 'static int process_expired_result(struct action_history *history,
      int orig_exit_status) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:1197,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:1203,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1211,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pengine/unpack.c:1218,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/pengine/unpack.c:1223,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/unpack.c:1231,1
    - Dst: pcmk__set_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1234,1
    - Dst: pcmk__set_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1247,1
    - Dst: pcmk__clear_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1236,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1250,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:1195,1
    - Dst: crm_log_xml_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1199,1
    - Dst: pe_find_node_any
      Src: /src/pacemaker/lib/pengine/unpack.c:1216,1
    - Dst: unpack_transient_attributes
      Src: /src/pacemaker/lib/pengine/unpack.c:1241,1
    - Dst: pe_fence_node
      Src: /src/pacemaker/lib/pengine/unpack.c:1260,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/unpack.c:1219,1
    - Dst: determine_online_status
      Src: /src/pacemaker/lib/pengine/unpack.c:1251,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1249,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:1253,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:1231,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - state
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1263
      start: 1188
    functionDepth: 0
    functionLinenumber: 1188
    functionLinenumberEnd: 1263
    functionName: unpack_node_state
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__set_node_flags
    - pcmk__s
    - pcmk__clear_node_flags
    - crm_log_xml_info
    - determine_online_status
    - pcmk__is_pacemaker_remote_node
    - pe_find_node_any
    - crm_notice
    - unpack_transient_attributes
    - pcmk__node_name
    - pcmk_is_set
    - crm_element_value
    - pcmk__config_err
    - pe_fence_node
    - pcmk__scan_min_int
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void unpack_node_state(const xmlNode *state, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:1476,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pengine/unpack.c:1499,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/pengine/unpack.c:1482,1
    - Dst: pcmk__scheduler_epoch_time
      Src: /src/pacemaker/lib/pengine/unpack.c:1492,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/pengine/unpack.c:1497,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - node_state
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1505
      start: 1473
    functionDepth: 0
    functionLinenumber: 1473
    functionLinenumberEnd: 1505
    functionName: unpack_node_member
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - crm_str_to_boolean
    - pcmk__scan_ll
    - pcmk__scheduler_epoch_time
    - crm_element_value
    - crm_warn
    linkageType: ''
    returnType: long long
    signature: 'static long long unpack_node_member(const xmlNode *node_state, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/pengine/unpack.c:1636,1
    - Dst: pcmk__scheduler_epoch_time
      Src: /src/pacemaker/lib/pengine/unpack.c:1638,1
    - Dst: pcmk__update_recheck_time
      Src: /src/pacemaker/lib/pengine/unpack.c:1643,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - scheduler
    - node
    - when_member
    - when_online
    argTypes:
    - pcmk_scheduler_t*
    - pcmk_node_t*
    - long long
    - long long
    constantsTouched: []
    func_position:
      end: 1646
      start: 1627
    functionDepth: 0
    functionLinenumber: 1627
    functionLinenumberEnd: 1646
    functionName: pending_too_long
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__update_recheck_time
    - pcmk__scheduler_epoch_time
    - pcmk__timeout_ms2s
    linkageType: ''
    returnType: bool
    signature: 'static inline bool pending_too_long(pcmk_scheduler_t *scheduler, const
      pcmk_node_t *node, long long when_member, long long when_online) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:3127,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:3133,1
    - Dst: non_monitor_after
      Src: /src/pacemaker/lib/pengine/unpack.c:3142,1
    - Dst: monitor_not_running_after
      Src: /src/pacemaker/lib/pengine/unpack.c:3143,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 13
    argCount: 5
    argNames:
    - rsc_id
    - node_name
    - migrate_to
    - migrate_from
    - scheduler
    argTypes:
    - char*
    - char*
    - xmlNode*
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 3144
      start: 3120
    functionDepth: 0
    functionLinenumber: 3120
    functionLinenumberEnd: 3144
    functionName: newer_state_after_migrate
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - non_monitor_after
    - pcmk__str_eq
    - monitor_not_running_after
    - crm_element_value
    linkageType: ''
    returnType: bool
    signature: 'static bool newer_state_after_migrate(const char *rsc_id, const char
      *node_name, const xmlNode *migrate_to, const xmlNode *migrate_from, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/pengine/unpack.c:4032,1
    - Dst: pcmk__add_param_check
      Src: /src/pacemaker/lib/pengine/unpack.c:4038,1
    - Dst: pe__bundle_needs_remote_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4033,1
    - Dst: rsc_action_digest_cmp
      Src: /src/pacemaker/lib/pengine/unpack.c:4043,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:4047,1
    - Dst: pcmk__xe_history_key
      Src: /src/pacemaker/lib/pengine/unpack.c:4049,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 12
    argCount: 4
    argNames:
    - xml_op
    - task
    - rsc
    - node
    argTypes:
    - xmlNode*
    - char*
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 4060
      start: 4028
    functionDepth: 0
    functionLinenumber: 4028
    functionLinenumberEnd: 4060
    functionName: should_clear_for_param_change
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pe__bundle_needs_remote_name
    - pcmk__add_param_check
    - pcmk__xe_history_key
    - rsc_action_digest_cmp
    - pcmk__str_any_of
    - crm_trace
    linkageType: ''
    returnType: bool
    signature: 'static bool should_clear_for_param_change(const xmlNode *xml_op, const
      char *task, pcmk_resource_t *rsc, pcmk_node_t *node) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/unpack.c:1068,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:1077,1
    - Dst: pcmk__set_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1079,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1086,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1092,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1099,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1127,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/pengine/unpack.c:1058,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/pengine/unpack.c:1062,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1092,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1086,1
    - Dst: pcmk__node_attr
      Src: /src/pacemaker/lib/pengine/unpack.c:1090,1
    - Dst: pcmk__node_attr
      Src: /src/pacemaker/lib/pengine/unpack.c:1096,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1119,1
    - Dst: pcmk__clear_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1128,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:1114,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1066,1
    - Dst: pcmk__set_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1071,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:1081,1
    - Dst: add_node_attrs
      Src: /src/pacemaker/lib/pengine/unpack.c:1083,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/unpack.c:1106,1
    - Dst: pcmk__warn_once
      Src: /src/pacemaker/lib/pengine/unpack.c:1107,1
    - Dst: pcmk__is_remote_node
      Src: /src/pacemaker/lib/pengine/unpack.c:1113,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/unpack.c:1115,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/unpack.c:1126,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:1065,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:1068,1
    - Dst: pcmk__clear_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1073,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/unpack.c:1090,1
    - Dst: pe__shutdown_requested
      Src: /src/pacemaker/lib/pengine/unpack.c:1085,1
    - Dst: pcmk__set_node_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:1093,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/unpack.c:1096,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:1098,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:1099,1
    - Dst: pcmk__node_attr
      Src: /src/pacemaker/lib/pengine/unpack.c:1103,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 3
    argNames:
    - this_node
    - state
    - scheduler
    argTypes:
    - pcmk_node_t*
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1131
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1131
    functionName: unpack_handle_remote_attrs
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__node_attr
    - pcmk__set_node_flags
    - add_node_attrs
    - crm_is_true
    - pcmk__xe_first_child
    - pcmk__clear_node_flags
    - pcmk__warn_once
    - pcmk__is_remote_node
    - pcmk__config_warn
    - pcmk__is_pacemaker_remote_node
    - pcmk__node_name
    - pcmk__xe_is
    - pcmk_is_set
    - crm_element_value
    - crm_info
    - pe__shutdown_requested
    - pcmk__scan_min_int
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void unpack_handle_remote_attrs(pcmk_node_t *this_node, const
      xmlNode *state, pcmk_scheduler_t *scheduler) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pengine/unpack.c:1986,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/pengine/unpack.c:1988,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/unpack.c:1989,1
    - Dst: pe__unpack_resource
      Src: /src/pacemaker/lib/pengine/unpack.c:1992,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/pengine/unpack.c:1990,1
    - Dst: xml_contains_remote_node
      Src: /src/pacemaker/lib/pengine/unpack.c:1996,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pengine/unpack.c:1999,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/unpack.c:2000,1
    - Dst: pe_create_node
      Src: /src/pacemaker/lib/pengine/unpack.c:2002,1
    - Dst: link_rsc2remotenode
      Src: /src/pacemaker/lib/pengine/unpack.c:2005,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:2017,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/unpack.c:2019,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2015,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/unpack.c:2020,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:2013,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2008,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - rsc_id
    - rsc_entry
    - scheduler
    argTypes:
    - char*
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 2022
      start: 1981
    functionDepth: 0
    functionLinenumber: 1981
    functionLinenumberEnd: 2022
    functionName: create_fake_resource
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_debug
    - crm_log_xml_debug
    - link_rsc2remotenode
    - crm_trace
    - pcmk__set_rsc_flags
    - g_list_append
    - crm_xml_add
    - pe_create_node
    - pcmk_find_node
    - pcmk__xe_copy_attrs
    - crm_element_value
    - xml_contains_remote_node
    - pe__unpack_resource
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'static pcmk_resource_t *create_fake_resource(const char *rsc_id, const
      xmlNode *rsc_entry, pcmk_scheduler_t *scheduler) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/unpack.c:2580,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2581,1
    - Dst: crm_element_value_ms
      Src: /src/pacemaker/lib/pengine/unpack.c:2610,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:2617,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:2623,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pengine/unpack.c:2627,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2626,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:2626,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:2595,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2594,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:2606,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2612,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:2618,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2619,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:2613,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pengine/unpack.c:2625,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:2620,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:2589,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2600,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:2601,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/unpack.c:2605,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 40
    argCount: 6
    argNames:
    - node
    - rsc
    - start_index
    - stop_index
    - sorted_op_list
    - scheduler
    argTypes:
    - pcmk_node_t*
    - pcmk_resource_t*
    - int
    - int
    - GList*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 2629
      start: 2570
    functionDepth: 0
    functionLinenumber: 2570
    functionLinenumberEnd: 2629
    functionName: process_recurring
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - crm_element_value_ms
    - pcmk__str_eq
    - pcmk__node_name
    - custom_action
    - crm_element_value
    - pcmk__assert
    - pcmk__op_key
    - pcmk__xe_id
    linkageType: ''
    returnType: void
    signature: 'static void process_recurring(pcmk_node_t *node, pcmk_resource_t *rsc,
      int start_index, int stop_index, GList *sorted_op_list, pcmk_scheduler_t *scheduler) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:2649,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pengine/unpack.c:2656,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:2653,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:2650,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:2652,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/unpack.c:2661,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/unpack.c:2663,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pengine/unpack.c:2665,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pengine/unpack.c:2668,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 37
    argCount: 3
    argNames:
    - sorted_op_list
    - start_index
    - stop_index
    argTypes:
    - GList*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 2681
      start: 2631
    functionDepth: 0
    functionLinenumber: 2631
    functionLinenumberEnd: 2681
    functionName: calculate_active_ops
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__strcase_any_of
    - pcmk__str_eq
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'void calculate_active_ops(const GList *sorted_op_list, int *start_index,
      int *stop_index) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/unpack.c:896,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/unpack.c:902,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/unpack.c:898,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/pengine/unpack.c:896,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/unpack.c:900,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/unpack.c:905,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:906,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/pengine/unpack.c:910,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:911,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/unpack.c:917,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 922
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 922
    functionName: pcmk__validate_fencing_topology
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__xe_first_child
    - pcmk__str_empty
    - pcmk__xe_is
    - pcmk__xe_next
    - pcmk__config_err
    - pcmk__xe_id
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'void pcmk__validate_fencing_topology(const xmlNode *xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pe_base_name_end
      Src: /src/pacemaker/lib/pengine/unpack.c:1969,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/unpack.c:1973,1
    - Dst: memcpy
      Src: /src/pacemaker/lib/pengine/unpack.c:1975,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/unpack.c:1974,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - last_rsc_id
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1979
      start: 1966
    functionDepth: 0
    functionLinenumber: 1966
    functionLinenumberEnd: 1979
    functionName: clone_zero
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__assert_alloc
    - memcpy
    - pe_base_name_end
    linkageType: ''
    returnType: char*
    signature: 'char *clone_zero(const char *last_rsc_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/unpack.c:3023,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pengine/unpack.c:3030,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/unpack.c:3032,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pengine/unpack.c:3031,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pengine/unpack.c:3029,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - rsc
    - node_name
    argTypes:
    - pcmk_resource_t*
    - char*
    constantsTouched: []
    func_position:
      end: 3034
      start: 3016
    functionDepth: 0
    functionLinenumber: 3016
    functionLinenumberEnd: 3034
    functionName: unknown_on_node
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - xmlXPathFreeObject
    - free
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    linkageType: ''
    returnType: bool
    signature: 'static bool unknown_on_node(pcmk_resource_t *rsc, const char *node_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/unpack.c:4546,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/unpack.c:4551,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/unpack.c:4552,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pengine/unpack.c:4550,1
    - Dst: uber_parent
      Src: /src/pacemaker/lib/pengine/unpack.c:4547,1
    - Dst: update_resource_state
      Src: /src/pacemaker/lib/pengine/unpack.c:4553,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/unpack.c:4555,1
    - Dst: record_failed_op
      Src: /src/pacemaker/lib/pengine/unpack.c:4557,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pengine/unpack.c:4558,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - history
    - orig_exit_status
    - last_failure
    - on_fail
    argTypes:
    - struct action_history*
    - int
    - xmlNode*
    - enum pcmk__on_fail*
    constantsTouched: []
    func_position:
      end: 4560
      start: 4539
    functionDepth: 0
    functionLinenumber: 4539
    functionLinenumberEnd: 4560
    functionName: mask_probe_failure
    functionSourceFile: /src/pacemaker/lib/pengine/unpack.c
    functionUses: []
    functionsReached:
    - record_failed_op
    - crm_exit_str
    - crm_xml_add
    - update_resource_state
    - pcmk__node_name
    - pcmk_is_set
    - crm_notice
    - resource_location
    - uber_parent
    linkageType: ''
    returnType: void
    signature: 'static void mask_probe_failure(struct action_history *history, int
      orig_exit_status, const xmlNode *last_failure, enum pcmk__on_fail *on_fail) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:423,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/complex.c:432,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:427,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/complex.c:439,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 440
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 440
    functionName: detect_unique
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - pcmk__scan_min_int
    - crm_is_true
    - g_hash_table_lookup
    linkageType: ''
    returnType: bool
    signature: 'static bool detect_unique(const pcmk_resource_t *rsc) '
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/complex.c:773,1
    - Dst: unpack_stickiness
      Src: /src/pacemaker/lib/pengine/complex.c:900,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:817,1
    - Dst: add_template_rsc
      Src: /src/pacemaker/lib/pengine/complex.c:971,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pengine/complex.c:959,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:801,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/complex.c:816,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/complex.c:869,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/complex.c:833,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:860,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:877,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/complex.c:767,1
    - Dst: get_meta_attributes
      Src: /src/pacemaker/lib/pengine/complex.c:782,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:807,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/complex.c:942,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/complex.c:880,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:903,1
    - Dst: xml_contains_remote_node
      Src: /src/pacemaker/lib/pengine/complex.c:806,1
    - Dst: calloc
      Src: /src/pacemaker/lib/pengine/complex.c:720,1
    - Dst: pcmk__xe_resolve_idref
      Src: /src/pacemaker/lib/pengine/complex.c:754,1
    - Dst: get_resource_type
      Src: /src/pacemaker/lib/pengine/complex.c:756,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:788,1
    - Dst: unpack_priority
      Src: /src/pacemaker/lib/pengine/complex.c:794,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pengine/complex.c:944,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/complex.c:709,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/complex.c:701,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/complex.c:711,1
    - Dst: calloc
      Src: /src/pacemaker/lib/pengine/complex.c:727,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/pengine/complex.c:739,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:886,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:831,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/complex.c:854,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:858,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/complex.c:952,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/complex.c:888,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/complex.c:700,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/complex.c:759,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/complex.c:766,1
    - Dst: pcmk__sched_err
      Src: /src/pacemaker/lib/pengine/complex.c:729,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/complex.c:787,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/complex.c:845,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/complex.c:903,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/lib/pengine/complex.c:930,1
    - Dst: pcmk__free_resource
      Src: /src/pacemaker/lib/pengine/complex.c:972,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:796,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:863,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/complex.c:895,1
    - Dst: unpack_migration_threshold
      Src: /src/pacemaker/lib/pengine/complex.c:901,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:866,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/pengine/complex.c:707,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/complex.c:752,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/pengine/complex.c:905,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/complex.c:777,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:803,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:872,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:926,1
    - Dst: get_target_role
      Src: /src/pacemaker/lib/pengine/complex.c:941,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:846,1
    - Dst: pcmk__sched_err
      Src: /src/pacemaker/lib/pengine/complex.c:722,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/complex.c:802,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:815,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:829,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/lib/pengine/complex.c:914,1
    - Dst: pcmk__free_resource
      Src: /src/pacemaker/lib/pengine/complex.c:947,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/complex.c:964,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:840,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:851,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/complex.c:769,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:826,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/complex.c:837,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:850,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:906,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:909,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/complex.c:849,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/complex.c:874,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:847,1
    - Dst: common_free
      Src: /src/pacemaker/lib/pengine/complex.c:761,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/complex.c:771,1
    - Dst: pe_rsc_params
      Src: /src/pacemaker/lib/pengine/complex.c:918,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pengine/complex.c:954,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/complex.c:731,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/complex.c:774,1
    - Dst: detect_unique
      Src: /src/pacemaker/lib/pengine/complex.c:855,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:798,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/complex.c:963,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:838,1
    - Dst: unpack_template
      Src: /src/pacemaker/lib/pengine/complex.c:716,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:867,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/complex.c:858,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/complex.c:768,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/complex.c:797,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:808,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:844,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pengine/complex.c:854,1
    - Dst: pe__unpack_dataset_nvpairs
      Src: /src/pacemaker/lib/pengine/complex.c:966,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:856,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:785,1
    - Dst: unpack_requires
      Src: /src/pacemaker/lib/pengine/complex.c:910,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:912,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 208
    argCount: 4
    argNames:
    - xml_obj
    - rsc
    - parent
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_resource_t**
    - pcmk_resource_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 978
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 978
    functionName: pe__unpack_resource
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - get_target_role
    - add_template_rsc
    - pcmk__set_rsc_flags
    - pcmk__config_warn
    - pcmk__xe_first_child
    - pcmk__insert_meta
    - unpack_stickiness
    - pcmk__set_scheduler_flags
    - pcmk__is_clone
    - free
    - detect_unique
    - strdup
    - crm_log_xml_trace
    - unpack_priority
    - xml_contains_remote_node
    - crm_is_true
    - crm_strdup_printf
    - g_hash_table_lookup
    - pcmk__free_resource
    - pe__unpack_dataset_nvpairs
    - pcmk__clear_rsc_flags
    - unpack_migration_threshold
    - pcmk__xe_resolve_idref
    - pcmk_is_set
    - crm_element_value
    - get_meta_attributes
    - pcmk_role_text
    - unpack_template
    - unpack_requires
    - CRM_CHECK
    - pcmk__rsc_trace
    - pcmk__str_eq
    - pe_rsc_params
    - pcmk__config_err
    - pcmk__sched_err
    - get_resource_type
    - calloc
    - pcmk__strkey_table
    - common_free
    - pe__const_top_resource
    - pcmk_parse_interval_spec
    - resource_location
    linkageType: ''
    returnType: int
    signature: 'int pe__unpack_resource(xmlNode *xml_obj, pcmk_resource_t **rsc, pcmk_resource_t
      *parent, pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - child
    - rsc
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 995
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 995
    functionName: is_parent
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean is_parent(pcmk_resource_t *child, pcmk_resource_t *rsc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/complex.c:1248,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pengine/complex.c:1251,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/complex.c:1250,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pengine/complex.c:1252,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - rsc
    - role
    - why
    argTypes:
    - pcmk_resource_t*
    - enum rsc_role_e
    - char*
    constantsTouched: []
    func_position:
      end: 1255
      start: 1245
    functionDepth: 0
    functionLinenumber: 1245
    functionLinenumberEnd: 1255
    functionName: pe__set_next_role
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__rsc_trace
    - pcmk_role_text
    linkageType: ''
    returnType: void
    signature: 'void pe__set_next_role(pcmk_resource_t *rsc, enum rsc_role_e role,
      const char *why) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/complex.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: free_params_table
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: 'static void free_params_table(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pengine/complex.c:1006,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1010
      start: 997
    functionDepth: 0
    functionLinenumber: 997
    functionLinenumberEnd: 1010
    functionName: uber_parent
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - pcmk__is_bundle
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'pcmk_resource_t *uber_parent(pcmk_resource_t *rsc) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:515,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:514,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/complex.c:526,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/complex.c:554,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/complex.c:547,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/complex.c:557,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/complex.c:568,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/complex.c:520,1
    - Dst: unpack_requires
      Src: /src/pacemaker/lib/pengine/complex.c:529,1
    - Dst: xml_contains_remote_node
      Src: /src/pacemaker/lib/pengine/complex.c:551,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:518,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:517,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:524,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/complex.c:533,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/complex.c:540,1
    - Dst: unpack_requires
      Src: /src/pacemaker/lib/pengine/complex.c:572,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:512,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/complex.c:519,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/complex.c:525,1
    - Dst: unpack_requires
      Src: /src/pacemaker/lib/pengine/complex.c:536,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pengine/complex.c:550,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/complex.c:532,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/complex.c:576,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 3
    argNames:
    - rsc
    - value
    - is_default
    argTypes:
    - pcmk_resource_t*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 578
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 578
    functionName: unpack_requires
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - unpack_requires
    - pcmk__set_rsc_flags
    - pcmk__rsc_trace
    - pcmk__config_warn
    - pcmk__str_eq
    - pcmk_is_set
    - pcmk__config_err
    - xml_contains_remote_node
    - pcmk__is_primitive
    linkageType: ''
    returnType: void
    signature: 'static void unpack_requires(pcmk_resource_t *rsc, const char *value,
      bool is_default) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:641,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/pengine/complex.c:653,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/complex.c:657,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:644,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/complex.c:646,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pengine/complex.c:661,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 665
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 665
    functionName: unpack_migration_threshold
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - pcmk__config_warn
    - g_hash_table_lookup
    - pcmk__str_eq
    - pcmk_parse_score
    - pcmk_rc_str
    linkageType: ''
    returnType: void
    signature: 'static void unpack_migration_threshold(pcmk_resource_t *rsc) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pe__count_active_node
      Src: /src/pacemaker/lib/pengine/complex.c:1176,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 15
    argCount: 3
    argNames:
    - rsc
    - count_all
    - count_clean
    argTypes:
    - pcmk_resource_t*
    - unsigned int*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 1182
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1182
    functionName: active_node
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - pe__count_active_node
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'static pcmk_node_t *active_node(const pcmk_resource_t *rsc, unsigned
      int *count_all, unsigned int *count_clean) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/complex.c:129,1
    - Dst: pe__unpack_dataset_nvpairs
      Src: /src/pacemaker/lib/pengine/complex.c:143,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/complex.c:155,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pengine/complex.c:151,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 4
    argNames:
    - rsc
    - rule_input
    - meta_hash
    - scheduler
    argTypes:
    - pcmk_resource_t*
    - pcmk_rule_input_t*
    - GHashTable*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 160
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 160
    functionName: expand_parents_fixed_nvpairs
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - pe__unpack_dataset_nvpairs
    - g_hash_table_destroy
    - pcmk__strkey_table
    - g_hash_table_foreach
    linkageType: ''
    returnType: void
    signature: 'static void expand_parents_fixed_nvpairs(pcmk_resource_t *rsc, const
      pcmk_rule_input_t *rule_input, GHashTable *meta_hash, pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:610,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/pengine/complex.c:621,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/complex.c:624,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:613,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/complex.c:615,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pengine/complex.c:627,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 630
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 630
    functionName: unpack_stickiness
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - pcmk__config_warn
    - g_hash_table_lookup
    - pcmk__str_eq
    - pcmk_parse_score
    - pcmk_rc_str
    linkageType: ''
    returnType: void
    signature: 'static void unpack_stickiness(pcmk_resource_t *rsc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/complex.c:1207,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - rsc
    - count
    argTypes:
    - pcmk_resource_t*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 1212
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1212
    functionName: pe__find_active_requires
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'pcmk_node_t *pe__find_active_requires(const pcmk_resource_t *rsc,
      unsigned int *count) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pe__resource_is_disabled
      Src: /src/pacemaker/lib/pengine/complex.c:1228,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/complex.c:1225,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/complex.c:1231,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1235
      start: 1214
    functionDepth: 0
    functionLinenumber: 1214
    functionLinenumberEnd: 1235
    functionName: pe__count_common
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pe__resource_is_disabled
    linkageType: ''
    returnType: void
    signature: 'void pe__count_common(pcmk_resource_t *rsc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:589,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/pengine/complex.c:591,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pengine/complex.c:597,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/complex.c:594,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 599
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 599
    functionName: unpack_priority
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - pcmk_rc_str
    - pcmk_parse_score
    - pcmk__config_warn
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: 'static void unpack_priority(pcmk_resource_t *rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/complex.c:112,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/complex.c:120,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:113,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:119,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/complex.c:115,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: dup_attr
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__config_warn
    - g_hash_table_lookup
    - pcmk__insert_dup
    - pcmk__str_eq
    linkageType: ''
    returnType: void
    signature: 'static void dup_attr(gpointer key, gpointer value, gpointer user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:80,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:86,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:83,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:89,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 94
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 94
    functionName: get_resource_type
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: enum pcmk__rsc_variant
    signature: 'static enum pcmk__rsc_variant get_resource_type(const char *name) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/complex.c:176,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/complex.c:178,1
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/pengine/complex.c:181,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/complex.c:177,1
    - Dst: dup_attr
      Src: /src/pacemaker/lib/pengine/complex.c:185,1
    - Dst: pe__unpack_dataset_nvpairs
      Src: /src/pacemaker/lib/pengine/complex.c:190,1
    - Dst: expand_parents_fixed_nvpairs
      Src: /src/pacemaker/lib/pengine/complex.c:198,1
    - Dst: pe__unpack_dataset_nvpairs
      Src: /src/pacemaker/lib/pengine/complex.c:202,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pengine/complex.c:211,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - meta_hash
    - rsc
    - node
    - scheduler
    argTypes:
    - GHashTable*
    - pcmk_resource_t*
    - pcmk_node_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 214
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 214
    functionName: get_meta_attributes
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_attr
    - g_hash_table_foreach
    - pe__unpack_dataset_nvpairs
    - crm_element_value
    - expand_parents_fixed_nvpairs
    - dup_attr
    linkageType: ''
    returnType: void
    signature: 'void get_meta_attributes(GHashTable * meta_hash, pcmk_resource_t *
      rsc, pcmk_node_t *node, pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/complex.c:232,1
    - Dst: get_rsc_attributes
      Src: /src/pacemaker/lib/pengine/complex.c:244,1
    - Dst: pe__unpack_dataset_nvpairs
      Src: /src/pacemaker/lib/pengine/complex.c:241,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 4
    argNames:
    - instance_attrs
    - rsc
    - node
    - scheduler
    argTypes:
    - GHashTable*
    - pcmk_resource_t*
    - pcmk_node_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 246
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 246
    functionName: get_rsc_attributes
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - pe__unpack_dataset_nvpairs
    - get_rsc_attributes
    - CRM_CHECK
    linkageType: ''
    returnType: void
    signature: 'void get_rsc_attributes(GHashTable *instance_attrs, const pcmk_resource_t
      *rsc, const pcmk_node_t *node, pcmk_scheduler_t *scheduler) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/complex.c:279,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/complex.c:323,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/pengine/complex.c:314,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/complex.c:317,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/complex.c:318,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/pengine/complex.c:328,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/complex.c:338,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/complex.c:345,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/complex.c:346,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:350,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/complex.c:288,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/complex.c:290,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/complex.c:316,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/complex.c:342,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/pengine/complex.c:351,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/complex.c:354,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pengine/complex.c:361,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pengine/complex.c:369,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/complex.c:283,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:294,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/complex.c:303,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/complex.c:307,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/complex.c:324,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/complex.c:335,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/complex.c:337,1
    - Dst: template_op_key
      Src: /src/pacemaker/lib/pengine/complex.c:340,1
    - Dst: template_op_key
      Src: /src/pacemaker/lib/pengine/complex.c:348,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/complex.c:358,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/complex.c:295,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pengine/complex.c:300,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/complex.c:310,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/complex.c:320,1
    - Dst: xmlNodeSetName
      Src: /src/pacemaker/lib/pengine/complex.c:315,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/pengine/complex.c:326,1
    - Dst: unpack_template
      Src: /src/pacemaker/lib/pengine/complex.c:368,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 76
    argCount: 3
    argNames:
    - xml_obj
    - expanded_xml
    - scheduler
    argTypes:
    - xmlNode*
    - xmlNode**
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 376
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 376
    functionName: unpack_template
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - g_hash_table_destroy
    - pcmk__xe_is
    - free
    - g_hash_table_insert
    - g_hash_table_lookup
    - pcmk__xpath_find_one
    - crm_element_value
    - xmlNodeSetName
    - pcmk__xe_id
    - unpack_template
    - pcmk__xml_copy
    - pcmk__str_eq
    - pcmk__xe_next
    - pcmk__config_err
    - template_op_key
    - pcmk__strkey_table
    - crm_xml_add
    - pcmk__xml_free
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean unpack_template(xmlNode *xml_obj, xmlNode **expanded_xml,
      pcmk_scheduler_t *scheduler) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strikey_table
      Src: /src/pacemaker/lib/pengine/complex.c:482,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/complex.c:493,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/complex.c:491,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/complex.c:485,1
    - Dst: get_rsc_attributes
      Src: /src/pacemaker/lib/pengine/complex.c:492,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/complex.c:493,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 3
    argNames:
    - rsc
    - node
    - scheduler
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 497
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 497
    functionName: pe_rsc_params
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - pcmk__strikey_table
    - pcmk__strkey_table
    - strdup
    - get_rsc_attributes
    - g_hash_table_insert
    linkageType: ''
    returnType: GHashTable*
    signature: 'GHashTable *pe_rsc_params(pcmk_resource_t *rsc, const pcmk_node_t
      *node, pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pengine/complex.c:1032,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - rsc
    - include_bundle
    argTypes:
    - pcmk_resource_t*
    - bool
    constantsTouched: []
    func_position:
      end: 1038
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1038
    functionName: pe__const_top_resource
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - pcmk__is_bundle
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'const pcmk_resource_t *pe__const_top_resource(const pcmk_resource_t
      *rsc, bool include_bundle) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/complex.c:1122,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/complex.c:1143,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pengine/complex.c:1138,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 42
    argCount: 5
    argNames:
    - rsc
    - node
    - active
    - count_all
    - count_clean
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - pcmk_node_t**
    - unsigned int*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 1155
      start: 1114
    functionDepth: 0
    functionLinenumber: 1114
    functionLinenumberEnd: 1155
    functionName: pe__count_active_node
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - CRM_CHECK
    - pcmk__same_node
    linkageType: ''
    returnType: bool
    signature: 'bool pe__count_active_node(const pcmk_resource_t *rsc, pcmk_node_t
      *node, pcmk_node_t **active, unsigned int *count_all, unsigned int *count_clean) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/complex.c:251,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pengine/complex.c:256,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/complex.c:252,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/complex.c:261,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 263
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 263
    functionName: template_op_key
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pcmk__strcase_any_of
    - crm_element_value
    linkageType: ''
    returnType: char*
    signature: 'static char *template_op_key(xmlNode * op) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/complex.c:385,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/complex.c:401,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/complex.c:395,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/complex.c:390,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/complex.c:397,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/complex.c:402,1
    - Dst: pcmk__add_idref
      Src: /src/pacemaker/lib/pengine/complex.c:407,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - xml_obj
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 409
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 409
    functionName: add_template_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - crm_element_value
    - pcmk__config_err
    - pcmk__xe_id
    - pcmk__add_idref
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean add_template_rsc(xmlNode *xml_obj, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/complex.c:1054,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/complex.c:1068,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/complex.c:1075,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/complex.c:1079,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/complex.c:1083,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pengine/complex.c:1056,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pengine/complex.c:1058,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pengine/complex.c:1063,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/complex.c:1066,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/complex.c:1074,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/complex.c:1078,1
    - Dst: pcmk__free_node_copy
      Src: /src/pacemaker/lib/pengine/complex.c:1071,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/complex.c:1092,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/complex.c:1097,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/complex.c:1047,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/complex.c:1070,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/complex.c:1077,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/complex.c:1073,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/complex.c:1089,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/complex.c:1050,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/complex.c:1069,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/complex.c:1076,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/complex.c:1080,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/complex.c:1086,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/complex.c:1095,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1098
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1098
    functionName: common_free
    functionSourceFile: /src/pacemaker/lib/pengine/complex.c
    functionUses: []
    functionsReached:
    - pcmk__free_node_copy
    - g_list_free
    - pcmk__rsc_trace
    - g_hash_table_destroy
    - pcmk_is_set
    - free
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'void common_free(pcmk_resource_t * rsc) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1792,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1809,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1828,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/pe_output.c:1835,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1857,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1850,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1795,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1797,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1803,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1808,1
    - Dst: status_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:1810,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1829,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pengine/pe_output.c:1843,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:1847,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1848,1
    - Dst: status_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:1851,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1791,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1794,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1793,1
    - Dst: pe__filter_rsc_list
      Src: /src/pacemaker/lib/pengine/pe_output.c:1804,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pengine/pe_output.c:1819,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/pengine/pe_output.c:1827,1
    - Dst: pe__node_display_name
      Src: /src/pacemaker/lib/pengine/pe_output.c:1797,1
    - Dst: pe__rscs_brief_output
      Src: /src/pacemaker/lib/pengine/pe_output.c:1815,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/pengine/pe_output.c:1807,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1822,1
    - Dst: status_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:1830,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pengine/pe_output.c:1842,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1859
      start: 1789
    functionDepth: 0
    functionLinenumber: 1789
    functionLinenumberEnd: 1859
    functionName: node_html
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk_all_flags_set
    - pcmk__output_create_xml_node
    - status_node
    - pcmk__output_xml_create_parent
    - pcmk__output_xml_pop_parent
    - pe__node_display_name
    - PCMK__OUTPUT_LIST_FOOTER
    - pcmk__html_create
    - va_arg
    - pcmk_is_set
    - free
    - pcmk__xe_set_content
    - pe__filter_rsc_list
    - PCMK__OUTPUT_LIST_HEADER
    - pe__rscs_brief_output
    linkageType: ''
    returnType: int
    signature: 'static int node_html(pcmk__output_t *out, va_list args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:1598,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/pengine/pe_output.c:1608,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:1612,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/lib/pengine/pe_output.c:1621,1
    - Dst: crm_element_value_epoch
      Src: /src/pacemaker/lib/pengine/pe_output.c:1633,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:1637,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:1647,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1658,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1589,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:1596,1
    - Dst: pcmk__xe_history_key
      Src: /src/pacemaker/lib/pengine/pe_output.c:1591,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/pe_output.c:1612,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:1620,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:1636,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:1638,1
    - Dst: crm_element_value_ms
      Src: /src/pacemaker/lib/pengine/pe_output.c:1646,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/pengine/pe_output.c:1649,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1588,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:1595,1
    - Dst: pcmk__xml_escape
      Src: /src/pacemaker/lib/pengine/pe_output.c:1609,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:1622,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/pe_output.c:1613,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/pe_output.c:1619,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:1613,1
    - Dst: g_free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1661,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_output.c:1598,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1631,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:1616,1
    - Dst: pcmk__epoch2str
      Src: /src/pacemaker/lib/pengine/pe_output.c:1641,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1657,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1663
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1663
    functionName: failed_action_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk_exec_status_str
    - pcmk__output_create_xml_node
    - crm_exit_str
    - pcmk__s
    - pcmk__itoa
    - crm_strdup_printf
    - crm_element_value_epoch
    - crm_element_value_ms
    - pcmk__xe_set_props
    - pcmk__xml_needs_escape
    - va_arg
    - pcmk__xml_escape
    - free
    - pcmk__epoch2str
    - crm_element_value
    - pcmk__xe_history_key
    - pcmk__scan_min_int
    - g_free
    linkageType: ''
    returnType: int
    signature: 'static int failed_action_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2452,1
    - Dst: pe_find_resource
      Src: /src/pacemaker/lib/pengine/pe_output.c:2475,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/pe_output.c:2490,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/pe_output.c:2465,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:2500,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2450,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2448,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/pe_output.c:2492,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/pe_output.c:2490,1
    - Dst: pe_find_resource
      Src: /src/pacemaker/lib/pengine/pe_output.c:2525,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/pe_output.c:2458,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/pe_output.c:2459,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/pe_output.c:2462,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2467,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/pe_output.c:2492,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/lib/pengine/pe_output.c:2489,1
    - Dst: get_operation_list
      Src: /src/pacemaker/lib/pengine/pe_output.c:2518,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2526,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2446,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2449,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2447,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2451,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/pe_output.c:2488,1
    - Dst: pe_get_failcount
      Src: /src/pacemaker/lib/pengine/pe_output.c:2502,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pengine/pe_output.c:2539,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 63
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2541
      start: 2444
    functionDepth: 0
    functionLinenumber: 2444
    functionLinenumberEnd: 2541
    functionName: node_history_list
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - pcmk__str_in_list
    - get_operation_list
    - PCMK__OUTPUT_LIST_FOOTER
    - pe_get_failcount
    - va_arg
    - pcmk_is_set
    - rsc_printable_id
    - pcmk__xe_next
    - pe__const_top_resource
    - crm_element_value
    - pe_find_resource
    - pcmk__is_group
    linkageType: ''
    returnType: int
    signature: 'static int node_history_list(pcmk__output_t *out, va_list args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:906,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:917,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:918,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_output.c:919,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:931,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:932,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:941,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:904,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:928,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/pe_output.c:930,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:924,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:907,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:913,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:922,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:927,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:940,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:946,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:905,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:908,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:910,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:914,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:935,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:937,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:944,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 950
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 950
    functionName: cluster_dc_html
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk__s
    - crm_is_true
    - pcmk__html_create
    - va_arg
    - pcmk__xe_set_content
    linkageType: ''
    returnType: int
    signature: 'static int cluster_dc_html(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1109,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1111,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1118
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1118
    functionName: cluster_options_log
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk_is_set
    linkageType: ''
    returnType: int
    signature: 'static int cluster_options_log(pcmk__output_t *out, va_list args) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pe__node_health
      Src: /src/pacemaker/lib/pengine/pe_output.c:1720,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1725,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1727,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1737,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1748,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1774,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1772,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1740,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1752,1
    - Dst: get_node_feature_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1779,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1781,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1769,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1767,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1782,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1730,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1732,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1736,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1743,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1749,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1754,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1760,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1762,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1778,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 3
    argNames:
    - node
    - parent
    - show_opts
    argTypes:
    - pcmk_node_t*
    - xmlNodePtr
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1785
      start: 1717
    functionDepth: 0
    functionLinenumber: 1717
    functionLinenumberEnd: 1785
    functionName: status_node
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - get_node_feature_set
    - pcmk__html_create
    - pe__node_health
    - pcmk_is_set
    - pcmk__xe_set_content
    linkageType: ''
    returnType: void
    signature: 'static void status_node(pcmk_node_t *node, xmlNodePtr parent, uint32_t
      show_opts) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2779,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2780,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2782,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2781,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:2784,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/pe_output.c:2791,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2795
      start: 2776
    functionDepth: 0
    functionLinenumber: 2776
    functionLinenumberEnd: 2795
    functionName: node_weight_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    - crm_xml_add
    linkageType: ''
    returnType: int
    signature: 'static int node_weight_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:408,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:417,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/pe_output.c:418,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:422,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:439,1
    - Dst: is_mixed_version
      Src: /src/pacemaker/lib/pengine/pe_output.c:431,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:444,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/pe_output.c:449,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pengine/pe_output.c:423,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:430,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:436,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:454,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/pengine/pe_output.c:456,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/pe_output.c:463,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:412,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:411,1
    - Dst: get_cluster_stack
      Src: /src/pacemaker/lib/pengine/pe_output.c:415,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:410,1
    - Dst: pe__node_display_name
      Src: /src/pacemaker/lib/pengine/pe_output.c:430,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:428,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/pe_output.c:433,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:440,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:442,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:446,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:469,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:426,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/pe_output.c:455,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:462,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pengine/pe_output.c:467,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 476
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 476
    functionName: cluster_summary
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - is_mixed_version
    - pe__node_display_name
    - g_list_length
    - PCMK__OUTPUT_LIST_FOOTER
    - va_arg
    - pcmk_is_set
    - pcmk__xpath_find_one
    - free
    - crm_element_value
    - PCMK__OUTPUT_LIST_HEADER
    - get_cluster_stack
    linkageType: ''
    returnType: int
    signature: 'static int cluster_summary(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1199,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/pe_output.c:1204,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/pe_output.c:1207,1
    - Dst: no_quorum_policy_text
      Src: /src/pacemaker/lib/pengine/pe_output.c:1206,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/pe_output.c:1201,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/pe_output.c:1209,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:1212,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:1215,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:1217,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1228,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1229,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1232
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1232
    functionName: cluster_options_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - no_quorum_policy_text
    - crm_strdup_printf
    - va_arg
    - free
    - pcmk__flag_text
    linkageType: ''
    returnType: int
    signature: 'static int cluster_options_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2546,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2547,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2549,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2548,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2550,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/pe_output.c:2557,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/pe_output.c:2562,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pengine/pe_output.c:2567,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2569
      start: 2544
    functionDepth: 0
    functionLinenumber: 2544
    functionLinenumberEnd: 2569
    functionName: node_list_html
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - PCMK__OUTPUT_LIST_HEADER
    - va_arg
    - pcmk__str_in_list
    - PCMK__OUTPUT_LIST_FOOTER
    linkageType: ''
    returnType: int
    signature: 'static int node_list_html(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2800,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2801,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2803,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2802,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2804,1
    - Dst: op_history_string
      Src: /src/pacemaker/lib/pengine/pe_output.c:2806,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:2807,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2811,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2813
      start: 2798
    functionDepth: 0
    functionLinenumber: 2798
    functionLinenumberEnd: 2813
    functionName: op_history_text
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - op_history_string
    - va_arg
    - pcmk_is_set
    - free
    linkageType: ''
    returnType: int
    signature: 'static int op_history_text(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3193,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:3197,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3194,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_output.c:3198,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3195,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pengine/pe_output.c:3200,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:3203,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 3206
      start: 3190
    functionDepth: 0
    functionLinenumber: 3190
    functionLinenumberEnd: 3206
    functionName: resource_util
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    - crm_strdup_printf
    - va_arg
    - pcmk__node_name
    - free
    linkageType: ''
    returnType: int
    signature: 'static int resource_util(pcmk__output_t *out, va_list args) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2820,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2824,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:2829,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:2843,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2840,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2858,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2860,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2821,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2819,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/pe_output.c:2826,1
    - Dst: crm_element_value_epoch
      Src: /src/pacemaker/lib/pengine/pe_output.c:2847,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:2838,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2851,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2854,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2864,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2818,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:2825,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_output.c:2837,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/pe_output.c:2839,1
    - Dst: pcmk__epoch2str
      Src: /src/pacemaker/lib/pengine/pe_output.c:2849,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/pe_output.c:2857,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:2862,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2822,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2835,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/pe_output.c:2850,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:2856,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/pe_output.c:2863,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2869
      start: 2816
    functionDepth: 0
    functionLinenumber: 2816
    functionLinenumberEnd: 2869
    functionName: op_history_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - crm_exit_str
    - pcmk__itoa
    - crm_strdup_printf
    - crm_element_value_epoch
    - crm_xml_add
    - pcmk__str_eq
    - va_arg
    - pcmk_is_set
    - free
    - pcmk__epoch2str
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'static int op_history_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:1688,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1703,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1669,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1670,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1672,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1673,1
    - Dst: xmlChildElementCount
      Src: /src/pacemaker/lib/pengine/pe_output.c:1678,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/pe_output.c:1682,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/pe_output.c:1684,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/pe_output.c:1688,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/pengine/pe_output.c:1694,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1707,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/pe_output.c:1709,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pengine/pe_output.c:1713,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1671,1
    - Dst: pcmk__xe_history_key
      Src: /src/pacemaker/lib/pengine/pe_output.c:1698,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/pengine/pe_output.c:1698,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/pe_output.c:1702,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1715
      start: 1667
    functionDepth: 0
    functionLinenumber: 1667
    functionLinenumberEnd: 1715
    functionName: failed_action_list
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - xmlChildElementCount
    - pcmk__xe_first_child
    - pcmk__xe_history_key
    - PCMK__OUTPUT_LIST_FOOTER
    - va_arg
    - free
    - pcmk__xe_next
    - crm_element_value
    - PCMK__OUTPUT_LIST_HEADER
    - pcmk__str_in_list
    - pcmk_xe_mask_probe_failure
    - parse_op_key
    linkageType: ''
    returnType: int
    signature: 'static int failed_action_list(pcmk__output_t *out, va_list args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2205,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2199,1
    - Dst: pe_find_resource
      Src: /src/pacemaker/lib/pengine/pe_output.c:2212,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:2215,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_output.c:2216,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/lib/pengine/pe_output.c:2246,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2209,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2232,1
    - Dst: ctime
      Src: /src/pacemaker/lib/pengine/pe_output.c:2236,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2249,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2198,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/pe_output.c:2209,1
    - Dst: pcmk__native_output_string
      Src: /src/pacemaker/lib/pengine/pe_output.c:2224,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/pe_output.c:2224,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2242,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:2234,1
    - Dst: pcmk__xe_history_key
      Src: /src/pacemaker/lib/pengine/pe_output.c:2241,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2243,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2244,1
    - Dst: g_free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2248,1
    - Dst: pcmk__trim
      Src: /src/pacemaker/lib/pengine/pe_output.c:2236,1
    - Dst: crm_element_value_epoch
      Src: /src/pacemaker/lib/pengine/pe_output.c:2230,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:2227,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2251
      start: 2196
    functionDepth: 0
    functionLinenumber: 2196
    functionLinenumberEnd: 2251
    functionName: node_and_op
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk_exec_status_str
    - g_hash_table_lookup
    - crm_strdup_printf
    - crm_element_value_epoch
    - ctime
    - pcmk__native_output_string
    - va_arg
    - pcmk__trim
    - free
    - rsc_printable_id
    - crm_element_value
    - pe_find_resource
    - pcmk__xe_history_key
    - pcmk__scan_min_int
    - g_free
    - pcmk__current_node
    linkageType: ''
    returnType: int
    signature: 'static int node_and_op(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - role
    argTypes:
    - enum rsc_role_e
    constantsTouched: []
    func_position:
      end: 647
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 647
    functionName: role_desc
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *role_desc(enum rsc_role_e role) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:956,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:960,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:959,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:957,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:958,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/pe_output.c:967,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 973
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 973
    functionName: cluster_dc_text
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - crm_is_true
    linkageType: ''
    returnType: int
    signature: 'static int cluster_dc_text(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:3242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ticket
    argTypes:
    - pcmk__ticket_t*
    constantsTouched: []
    func_position:
      end: 3243
      start: 3239
    functionDepth: 0
    functionLinenumber: 3239
    functionLinenumberEnd: 3243
    functionName: ticket_standby_text
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *ticket_standby_text(pcmk__ticket_t *ticket) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2759,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2760,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2762,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2761,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2772
      start: 2756
    functionDepth: 0
    functionLinenumber: 2756
    functionLinenumberEnd: 2772
    functionName: node_weight
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int node_weight(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:28,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:29,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - rsc
    - show_opts
    argTypes:
    - pcmk_resource_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 32
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 32
    functionName: pe__resource_description
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - crm_element_value
    linkageType: ''
    returnType: char*
    signature: 'const char *pe__resource_description(const pcmk_resource_t *rsc, uint32_t
      show_opts) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:484,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:486,1
    - Dst: get_cluster_stack
      Src: /src/pacemaker/lib/pengine/pe_output.c:489,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:485,1
    - Dst: is_mixed_version
      Src: /src/pacemaker/lib/pengine/pe_output.c:507,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:512,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:520,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:522,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/pengine/pe_output.c:532,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:551,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:506,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:502,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:516,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:482,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:491,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/pe_output.c:492,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:498,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pengine/pe_output.c:499,1
    - Dst: pe__node_display_name
      Src: /src/pacemaker/lib/pengine/pe_output.c:506,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:504,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/pe_output.c:509,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:515,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/pe_output.c:531,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:538,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:530,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pengine/pe_output.c:543,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pengine/pe_output.c:549,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:518,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/pe_output.c:525,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 558
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 558
    functionName: cluster_summary_html
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - is_mixed_version
    - pe__node_display_name
    - g_list_length
    - PCMK__OUTPUT_LIST_FOOTER
    - va_arg
    - pcmk_is_set
    - pcmk__xpath_find_one
    - free
    - crm_element_value
    - PCMK__OUTPUT_LIST_HEADER
    - get_cluster_stack
    linkageType: ''
    returnType: int
    signature: 'static int cluster_summary_html(pcmk__output_t *out, va_list args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2049,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2050,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/pe_output.c:2067,1
    - Dst: pe__name_and_nvpairs_xml
      Src: /src/pacemaker/lib/pengine/pe_output.c:2077,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:2090,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/pe_output.c:2096,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:2098,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2052,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2053,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2051,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/pe_output.c:2059,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:2062,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:2063,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:2066,1
    - Dst: pe__node_health
      Src: /src/pacemaker/lib/pengine/pe_output.c:2064,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:2072,1
    - Dst: health_text
      Src: /src/pacemaker/lib/pengine/pe_output.c:2064,1
    - Dst: node_variant_text
      Src: /src/pacemaker/lib/pengine/pe_output.c:2073,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/pengine/pe_output.c:2118,1
    - Dst: pcmk__output_xml_peek_parent
      Src: /src/pacemaker/lib/pengine/pe_output.c:2099,1
    - Dst: get_node_feature_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:2065,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:2056,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/pe_output.c:2057,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:2061,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/pengine/pe_output.c:2071,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:2069,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2095,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/pe_output.c:2100,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:2104,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 43
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2124
      start: 2047
    functionDepth: 0
    functionLinenumber: 2047
    functionLinenumberEnd: 2124
    functionName: node_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - node_variant_text
    - pcmk__itoa
    - pe__name_and_nvpairs_xml
    - pcmk__btoa
    - crm_xml_add
    - health_text
    - g_list_length
    - pcmk__same_node
    - get_node_feature_set
    - pcmk__is_guest_or_bundle_node
    - va_arg
    - pe__node_health
    - free
    - pcmk_is_set
    - pcmk__output_xml_create_parent
    - pcmk__assert
    - pcmk__output_xml_peek_parent
    - pcmk__flag_text
    linkageType: ''
    returnType: int
    signature: 'static int node_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/lib/pengine/pe_output.c:3482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 3483
      start: 3480
    functionDepth: 0
    functionLinenumber: 3480
    functionLinenumberEnd: 3483
    functionName: pe__register_messages
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__register_messages
    linkageType: ''
    returnType: void
    signature: 'void pe__register_messages(pcmk__output_t *out) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1886,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1890,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 20
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1911
      start: 1869
    functionDepth: 0
    functionLinenumber: 1869
    functionLinenumberEnd: 1911
    functionName: node_text_status
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: char*
    signature: 'static const char *node_text_status(const pcmk_node_t *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:190,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 195
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 195
    functionName: append_dump_text
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - free
    - crm_strdup_printf
    linkageType: ''
    returnType: void
    signature: 'static void append_dump_text(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pengine/pe_output.c:204,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: get_cluster_stack
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__xpath_find_one
    - crm_element_value
    linkageType: ''
    returnType: char*
    signature: 'static const char *get_cluster_stack(pcmk_scheduler_t *scheduler) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:719,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:722,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:723,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:721,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:720,1
    - Dst: g_str_has_prefix
      Src: /src/pacemaker/lib/pengine/pe_output.c:734,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/pe_output.c:738,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/pe_output.c:738,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/pe_output.c:740,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/pe_output.c:740,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/pe_output.c:740,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pengine/pe_output.c:755,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/pe_output.c:749,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 757
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 757
    functionName: ban_list
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - PCMK__OUTPUT_LIST_FOOTER
    - va_arg
    - rsc_printable_id
    - pe__const_top_resource
    - PCMK__OUTPUT_LIST_HEADER
    - pcmk__str_in_list
    - g_str_has_prefix
    linkageType: ''
    returnType: int
    signature: 'static int ban_list(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:866,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:869,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:867,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:868,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:875,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:877,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:881,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/pe_output.c:882,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:883,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:885,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:887,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:889,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:891,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:893,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:895,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/pe_output.c:886,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/pe_output.c:890,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/pe_output.c:894,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 898
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 898
    functionName: cluster_counts_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk__itoa
    - crm_xml_add
    - va_arg
    - free
    linkageType: ''
    returnType: int
    signature: 'static int cluster_counts_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - variant
    argTypes:
    - enum pcmk__node_variant
    constantsTouched: []
    func_position:
      end: 2043
      start: 2032
    functionDepth: 0
    functionLinenumber: 2032
    functionLinenumberEnd: 2043
    functionName: node_variant_text
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *node_variant_text(enum pcmk__node_variant variant) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:3045,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:3046,1
    - Dst: print_resource_header
      Src: /src/pacemaker/lib/pengine/pe_output.c:3050,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pengine/pe_output.c:3080,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:3119,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3025,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3029,1
    - Dst: pe__filter_rsc_list
      Src: /src/pacemaker/lib/pengine/pe_output.c:3047,1
    - Dst: PCMK__OUTPUT_SPACER_IF
      Src: /src/pacemaker/lib/pengine/pe_output.c:3109,1
    - Dst: print_resource_header
      Src: /src/pacemaker/lib/pengine/pe_output.c:3110,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3028,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:3038,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:3039,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/pe_output.c:3054,1
    - Dst: pe__rscs_brief_output
      Src: /src/pacemaker/lib/pengine/pe_output.c:3053,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:3069,1
    - Dst: print_resource_header
      Src: /src/pacemaker/lib/pengine/pe_output.c:3095,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3024,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3026,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3027,1
    - Dst: PCMK__OUTPUT_SPACER_IF
      Src: /src/pacemaker/lib/pengine/pe_output.c:3049,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:3073,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:3079,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:3086,1
    - Dst: pe__rsc_running_on_any
      Src: /src/pacemaker/lib/pengine/pe_output.c:3089,1
    - Dst: PCMK__OUTPUT_SPACER_IF
      Src: /src/pacemaker/lib/pengine/pe_output.c:3094,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:3117,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 78
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 3131
      start: 3021
    functionDepth: 0
    functionLinenumber: 3021
    functionLinenumberEnd: 3131
    functionName: resource_list
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - g_list_free
    - pe__rsc_running_on_any
    - print_resource_header
    - va_arg
    - pcmk_is_set
    - PCMK__OUTPUT_SPACER_IF
    - pe__filter_rsc_list
    - pe__rscs_brief_output
    - pcmk__is_primitive
    linkageType: ''
    returnType: int
    signature: 'static int resource_list(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:217,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/pe_output.c:226,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 4
    argNames:
    - last_written
    - user
    - client
    - origin
    argTypes:
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 228
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 228
    functionName: last_changed_string
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - strdup
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'static char *last_changed_string(const char *last_written, const char
      *user, const char *client, const char *origin) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2937,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2941,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2938,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2940,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2939,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2942,1
    - Dst: resource_history_string
      Src: /src/pacemaker/lib/pengine/pe_output.c:2944,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2952,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2954
      start: 2935
    functionDepth: 0
    functionLinenumber: 2935
    functionLinenumberEnd: 2954
    functionName: resource_history_text
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - free
    - resource_history_string
    linkageType: ''
    returnType: int
    signature: 'static int resource_history_text(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - health
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2020
      start: 2010
    functionDepth: 0
    functionLinenumber: 2010
    functionLinenumberEnd: 2020
    functionName: health_text
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *health_text(int health) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1306,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1309,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:1313,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1322,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1331,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1308,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:1312,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1329,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1335,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1328,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1324,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1339,1
    - Dst: last_changed_string
      Src: /src/pacemaker/lib/pengine/pe_output.c:1340,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1341,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1307,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1318,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1332,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1337,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1310,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1320,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1325,1
    - Dst: pcmk__epoch2str
      Src: /src/pacemaker/lib/pengine/pe_output.c:1323,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1342,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1345
      start: 1304
    functionDepth: 0
    functionLinenumber: 1304
    functionLinenumberEnd: 1345
    functionName: cluster_times_html
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - last_changed_string
    - pcmk__html_create
    - va_arg
    - free
    - pcmk__epoch2str
    - pcmk__xe_set_content
    linkageType: ''
    returnType: int
    signature: 'static int cluster_times_html(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1379,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1380,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1381,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1383,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1382,1
    - Dst: pcmk__epoch2str
      Src: /src/pacemaker/lib/pengine/pe_output.c:1385,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_output.c:1389,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1391,1
    - Dst: last_changed_string
      Src: /src/pacemaker/lib/pengine/pe_output.c:1392,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1396,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1398
      start: 1377
    functionDepth: 0
    functionLinenumber: 1377
    functionLinenumberEnd: 1398
    functionName: cluster_times_text
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - last_changed_string
    - va_arg
    - free
    - pcmk__epoch2str
    linkageType: ''
    returnType: int
    signature: 'static int cluster_times_text(pcmk__output_t *out, va_list args) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2159,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2162,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2160,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2161,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:2166,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/pe_output.c:2170,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:2173,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:2174,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:2177,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:2179,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:2182,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:2184,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2193
      start: 2157
    functionDepth: 0
    functionLinenumber: 2157
    functionLinenumberEnd: 2193
    functionName: node_attribute_html
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk__html_create
    - va_arg
    - pcmk__xe_set_content
    - pcmk__scan_min_int
    linkageType: ''
    returnType: int
    signature: 'static int node_attribute_html(pcmk__output_t *out, va_list args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:832,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:835,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:833,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:834,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pengine/pe_output.c:838,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pengine/pe_output.c:844,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pengine/pe_output.c:849,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pengine/pe_output.c:854,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pengine/pe_output.c:857,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 861
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 861
    functionName: cluster_counts_text
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__plural_s
    linkageType: ''
    returnType: int
    signature: 'static int cluster_counts_text(pcmk__output_t *out, va_list args) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1123,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1131,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1125,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1162
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1162
    functionName: cluster_options_text
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk_is_set
    linkageType: ''
    returnType: int
    signature: 'static int cluster_options_text(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3138,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3141,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3140,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3142,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3143,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:3151,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:3152,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:3154,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/pe_output.c:3157,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_output.c:3160,1
    - Dst: pe_get_failcount
      Src: /src/pacemaker/lib/pengine/pe_output.c:3168,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pengine/pe_output.c:3184,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_output.c:3161,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/pe_output.c:3171,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/pe_output.c:3182,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 3186
      start: 3135
    functionDepth: 0
    functionLinenumber: 3135
    functionLinenumberEnd: 3186
    functionName: resource_operation_list
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - g_list_free
    - pcmk__str_eq
    - PCMK__OUTPUT_LIST_FOOTER
    - pe_get_failcount
    - va_arg
    - rsc_printable_id
    - crm_element_value
    - pcmk__scan_min_int
    linkageType: ''
    returnType: int
    signature: 'static int resource_operation_list(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2680,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2681,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2683,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2682,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2684,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/pe_output.c:2694,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2704
      start: 2678
    functionDepth: 0
    functionLinenumber: 2678
    functionLinenumberEnd: 2704
    functionName: node_list_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__str_in_list
    linkageType: ''
    returnType: int
    signature: 'static int node_list_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/pe_output.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: compare_attribute
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: 'static int compare_attribute(gconstpointer a, gconstpointer b) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1921,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1919,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1943,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1951,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1965,1
    - Dst: pe__node_display_name
      Src: /src/pacemaker/lib/pengine/pe_output.c:1992,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1920,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1924,1
    - Dst: pe__node_health
      Src: /src/pacemaker/lib/pengine/pe_output.c:1926,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:1936,1
    - Dst: node_text_status
      Src: /src/pacemaker/lib/pengine/pe_output.c:1936,1
    - Dst: get_node_feature_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1944,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1952,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1989,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1917,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1918,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pengine/pe_output.c:1925,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/pengine/pe_output.c:1930,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/pengine/pe_output.c:1934,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/pengine/pe_output.c:1932,1
    - Dst: pe__rscs_brief_output
      Src: /src/pacemaker/lib/pengine/pe_output.c:1960,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1990,1
    - Dst: pe__node_display_name
      Src: /src/pacemaker/lib/pengine/pe_output.c:1924,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:1929,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/pengine/pe_output.c:1941,1
    - Dst: pcmk__is_remote_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:1931,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/pengine/pe_output.c:1939,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:1946,1
    - Dst: pe__filter_rsc_list
      Src: /src/pacemaker/lib/pengine/pe_output.c:1953,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1992,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1994,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1998
      start: 1915
    functionDepth: 0
    functionLinenumber: 1915
    functionLinenumberEnd: 1998
    functionName: node_text
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - g_list_free
    - g_string_append
    - pcmk__is_remote_node
    - pe__node_display_name
    - get_node_feature_set
    - va_arg
    - pe__node_health
    - pcmk_is_set
    - g_string_sized_new
    - node_text_status
    - free
    - pe__filter_rsc_list
    - pcmk__is_guest_or_bundle_node
    - g_string_free
    - pe__rscs_brief_output
    - pcmk__g_strcat
    linkageType: ''
    returnType: int
    signature: 'static int node_text(pcmk__output_t *out, va_list args) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2129,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/pe_output.c:2140,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2131,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2130,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2132,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2154
      start: 2127
    functionDepth: 0
    functionLinenumber: 2127
    functionLinenumberEnd: 2154
    functionName: node_attribute_text
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__scan_min_int
    linkageType: ''
    returnType: int
    signature: 'static int node_attribute_text(pcmk__output_t *out, va_list args) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/pe_output.c:1506,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/pe_output.c:1511,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:1535,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/pe_output.c:1540,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:1504,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:1505,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/pe_output.c:1514,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/pe_output.c:1517,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pengine/pe_output.c:1521,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/pe_output.c:1527,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:1541,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:1523,1
    - Dst: pcmk__epoch2str
      Src: /src/pacemaker/lib/pengine/pe_output.c:1533,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1538,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/pe_output.c:1543,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:1544,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1548,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/lib/pengine/pe_output.c:1507,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:1528,1
    - Dst: crm_element_value_epoch
      Src: /src/pacemaker/lib/pengine/pe_output.c:1531,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 37
    argCount: 8
    argNames:
    - out
    - xml_op
    - op_key
    - node_name
    - rc
    - status
    - exit_reason
    - exec_time
    argTypes:
    - pcmk__output_t*
    - xmlNode*
    - char*
    - char*
    - int
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1549
      start: 1498
    functionDepth: 0
    functionLinenumber: 1498
    functionLinenumberEnd: 1549
    functionName: failed_action_technical
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk_exec_status_str
    - crm_exit_str
    - pcmk__str_empty
    - g_string_append_printf
    - crm_element_value_epoch
    - g_string_sized_new
    - free
    - pcmk__epoch2str
    - crm_element_value
    - g_string_free
    - pcmk__g_strcat
    linkageType: ''
    returnType: void
    signature: 'static void failed_action_technical(pcmk__output_t *out, const xmlNode
      *xml_op, const char *op_key, const char *node_name, int rc, int status, const
      char *exit_reason, const char *exec_time) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/pe_output.c:149,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:153,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/pe_output.c:151,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/pe_output.c:160,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_output.c:155,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:160,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_output.c:163,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_output.c:164,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:164,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/pe_output.c:170,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pengine/pe_output.c:173,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - rsc_entry
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 175
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 175
    functionName: get_operation_list
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_list_sort
    - pcmk__xe_first_child
    - pcmk__str_eq
    - pcmk__xe_next
    - crm_element_value
    - pcmk__scan_min_int
    linkageType: ''
    returnType: GList*
    signature: 'static GList *get_operation_list(xmlNode *rsc_entry) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:358,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:359,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_output.c:367,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_output.c:361,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 370
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 370
    functionName: get_node_feature_set
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__is_pacemaker_remote_node
    - pcmk_is_set
    - pcmk__s
    - g_hash_table_lookup
    linkageType: ''
    returnType: char*
    signature: 'static const char *get_node_feature_set(const pcmk_node_t *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/lib/pengine/pe_output.c:394,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/lib/pengine/pe_output.c:397,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - rsc
    - xml_buf
    - raw
    argTypes:
    - pcmk_resource_t*
    - GString*
    - bool
    constantsTouched: []
    func_position:
      end: 399
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 399
    functionName: formatted_xml_buf
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__xml_string
    linkageType: ''
    returnType: void
    signature: 'static void formatted_xml_buf(const pcmk_resource_t *rsc, GString
      *xml_buf, bool raw) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:672,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:677,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:674,1
    - Dst: pe__node_display_name
      Src: /src/pacemaker/lib/pengine/pe_output.c:676,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:673,1
    - Dst: role_desc
      Src: /src/pacemaker/lib/pengine/pe_output.c:680,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:682,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 684
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 684
    functionName: ban_text
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pe__node_display_name
    - role_desc
    - va_arg
    - pcmk_is_set
    - free
    linkageType: ''
    returnType: int
    signature: 'static int ban_text(pcmk__output_t *out, va_list args) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1074,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1078,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1090,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:1086,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1035,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1029,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1070,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1075,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1080,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:1071,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1081,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1092,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1095,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1027,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1077,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1085,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1089,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1093,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1096,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1104
      start: 1025
    functionDepth: 0
    functionLinenumber: 1025
    functionLinenumberEnd: 1104
    functionName: cluster_options_html
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk__html_create
    - va_arg
    - pcmk_is_set
    - pcmk__xe_set_content
    linkageType: ''
    returnType: int
    signature: 'static int cluster_options_html(pcmk__output_t *out, va_list args) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/pengine/pe_output.c:1428,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/pengine/pe_output.c:1426,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/pe_output.c:1432,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:1442,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:1452,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/lib/pengine/pe_output.c:1453,1
    - Dst: pcmk__epoch2str
      Src: /src/pacemaker/lib/pengine/pe_output.c:1463,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1466,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/pe_output.c:1471,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1480,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1481,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/pe_output.c:1425,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:1436,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:1439,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:1448,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/pe_output.c:1447,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:1474,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pengine/pe_output.c:1475,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pengine/pe_output.c:1439,1
    - Dst: pcmk__readable_action
      Src: /src/pacemaker/lib/pengine/pe_output.c:1442,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/pe_output.c:1454,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:1455,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:1465,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/pe_output.c:1468,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/pengine/pe_output.c:1429,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pengine/pe_output.c:1434,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:1446,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/pe_output.c:1446,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/pengine/pe_output.c:1457,1
    - Dst: crm_element_value_epoch
      Src: /src/pacemaker/lib/pengine/pe_output.c:1461,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1482,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 8
    argNames:
    - out
    - xml_op
    - op_key
    - node_name
    - rc
    - status
    - exit_reason
    - exec_time
    argTypes:
    - pcmk__output_t*
    - xmlNode*
    - char*
    - char*
    - int
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1483
      start: 1413
    functionDepth: 0
    functionLinenumber: 1413
    functionLinenumberEnd: 1483
    functionName: failed_action_friendly
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__readable_action
    - pcmk_exec_status_str
    - g_string_append_c
    - crm_exit_str
    - pcmk__str_empty
    - pcmk__g_strcat
    - crm_element_value_epoch
    - g_string_sized_new
    - free
    - pcmk__epoch2str
    - pcmk__assert
    - g_string_free
    - pcmk__readable_interval
    - pcmk__scan_min_int
    - pcmk__str_update
    - parse_op_key
    linkageType: ''
    returnType: void
    signature: 'static void failed_action_friendly(pcmk__output_t *out, const xmlNode
      *xml_op, const char *op_key, const char *node_name, int rc, int status, const
      char *exit_reason, const char *exec_time) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3377,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3379,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3380,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/pengine/pe_output.c:3385,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3378,1
    - Dst: PCMK__OUTPUT_SPACER_IF
      Src: /src/pacemaker/lib/pengine/pe_output.c:3389,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pengine/pe_output.c:3395,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pengine/pe_output.c:3396,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 3404
      start: 3375
    functionDepth: 0
    functionLinenumber: 3375
    functionLinenumberEnd: 3404
    functionName: ticket_list
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - PCMK__OUTPUT_SPACER_IF
    - g_hash_table_size
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: int
    signature: 'static int ticket_list(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:182,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: add_dump_node
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_set_content
    linkageType: ''
    returnType: void
    signature: 'static void add_dump_node(gpointer key, gpointer value, gpointer user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_node_feature_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:378,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/pe_output.c:382,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 388
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 388
    functionName: is_mixed_version
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - strcmp
    - get_node_feature_set
    linkageType: ''
    returnType: bool
    signature: 'static bool is_mixed_version(pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2260,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2262,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2257,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2264,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/pe_output.c:2269,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/lib/pengine/pe_output.c:2271,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2284,1
    - Dst: pe_find_resource
      Src: /src/pacemaker/lib/pengine/pe_output.c:2281,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/pe_output.c:2297,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2300,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/pengine/pe_output.c:2288,1
    - Dst: ctime
      Src: /src/pacemaker/lib/pengine/pe_output.c:2305,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2306,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/pengine/pe_output.c:2308,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2256,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2261,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:2273,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:2288,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/pengine/pe_output.c:2296,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2287,1
    - Dst: pcmk__xe_history_key
      Src: /src/pacemaker/lib/pengine/pe_output.c:2274,1
    - Dst: crm_element_value_epoch
      Src: /src/pacemaker/lib/pengine/pe_output.c:2303,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2269,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:2285,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:2291,1
    - Dst: pcmk__trim
      Src: /src/pacemaker/lib/pengine/pe_output.c:2305,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 33
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2315
      start: 2254
    functionDepth: 0
    functionLinenumber: 2254
    functionLinenumberEnd: 2315
    functionName: node_and_op_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk_exec_status_str
    - pcmk__output_create_xml_node
    - crm_strdup_printf
    - crm_element_value_epoch
    - ctime
    - pcmk__xe_set_props
    - va_arg
    - pcmk_is_set
    - free
    - rsc_printable_id
    - pcmk__trim
    - pcmk_get_ra_caps
    - crm_element_value
    - pe_find_resource
    - pcmk__xe_history_key
    - pcmk__scan_min_int
    linkageType: ''
    returnType: int
    signature: 'static int node_and_op_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3213,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3216,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pengine/pe_output.c:3225,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:3220,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 3228
      start: 3210
    functionDepth: 0
    functionLinenumber: 3210
    functionLinenumberEnd: 3228
    functionName: resource_util_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    - g_hash_table_foreach
    linkageType: ''
    returnType: int
    signature: 'static int resource_util_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2411,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pengine/pe_output.c:2417,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2412,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_output.c:2415,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:2414,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2420,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2423
      start: 2408
    functionDepth: 0
    functionLinenumber: 2408
    functionLinenumberEnd: 2423
    functionName: node_capacity
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    - crm_strdup_printf
    - va_arg
    - pcmk__node_name
    - free
    linkageType: ''
    returnType: int
    signature: 'static int node_capacity(pcmk__output_t *out, va_list args) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:2591,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:2605,1
    - Dst: pe__node_health
      Src: /src/pacemaker/lib/pengine/pe_output.c:2609,1
    - Dst: pcmk__is_remote_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:2628,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2650,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2643,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2574,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2576,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2578,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2575,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:2608,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:2603,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/pengine/pe_output.c:2615,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:2607,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/pengine/pe_output.c:2621,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:2631,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2665,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2577,1
    - Dst: pe__node_display_name
      Src: /src/pacemaker/lib/pengine/pe_output.c:2591,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2595,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/pe_output.c:2599,1
    - Dst: pcmk__is_remote_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:2617,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:2614,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/pengine/pe_output.c:2629,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2655,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2660,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/pengine/pe_output.c:2635,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/pe_output.c:2593,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/pengine/pe_output.c:2618,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2623,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2637,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2670,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pengine/pe_output.c:2673,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 72
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2675
      start: 2572
    functionDepth: 0
    functionLinenumber: 2572
    functionLinenumberEnd: 2675
    functionName: node_list_text
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__is_remote_node
    - pe__node_display_name
    - pcmk__is_guest_or_bundle_node
    - PCMK__OUTPUT_LIST_FOOTER
    - va_arg
    - pcmk_is_set
    - free
    - pe__node_health
    - PCMK__OUTPUT_LIST_HEADER
    - g_string_free
    - pcmk__str_in_list
    - pcmk__add_word
    linkageType: ''
    returnType: int
    signature: 'static int node_list_text(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2914,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pengine/pe_output.c:2915,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2916,1
    - Dst: formatted_xml_buf
      Src: /src/pacemaker/lib/pengine/pe_output.c:2918,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2922,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2924
      start: 2912
    functionDepth: 0
    functionLinenumber: 2912
    functionLinenumberEnd: 2924
    functionName: resource_config
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - formatted_xml_buf
    - va_arg
    - g_string_free
    - g_string_sized_new
    linkageType: ''
    returnType: int
    signature: 'static int resource_config(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:3233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - ticket
    argTypes:
    - pcmk__ticket_t*
    constantsTouched: []
    func_position:
      end: 3237
      start: 3230
    functionDepth: 0
    functionLinenumber: 3230
    functionLinenumberEnd: 3237
    functionName: ticket_status
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *ticket_status(pcmk__ticket_t *ticket) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/pe_output.c:568,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:571,1
    - Dst: strlen
      Src: /src/pacemaker/lib/pengine/pe_output.c:594,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:576,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_output.c:588,1
    - Dst: strlen
      Src: /src/pacemaker/lib/pengine/pe_output.c:596,1
    - Dst: strlen
      Src: /src/pacemaker/lib/pengine/pe_output.c:599,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/pe_output.c:603,1
    - Dst: strcpy
      Src: /src/pacemaker/lib/pengine/pe_output.c:604,1
    - Dst: strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:606,1
    - Dst: strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:607,1
    - Dst: strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:611,1
    - Dst: strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:612,1
    - Dst: strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:610,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 2
    argNames:
    - node
    - print_detail
    argTypes:
    - pcmk_node_t*
    - bool
    constantsTouched: []
    func_position:
      end: 615
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 615
    functionName: pe__node_display_name
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__assert_alloc
    - pcmk__str_eq
    - strcpy
    - pcmk__is_guest_or_bundle_node
    - pcmk__assert
    - strlen
    - strcat
    - pcmk__current_node
    linkageType: ''
    returnType: char*
    signature: 'char *pe__node_display_name(pcmk_node_t *node, bool print_detail) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:762,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:764,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:765,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:763,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:768,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:771,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:772,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pengine/pe_output.c:773,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:776,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:777,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:822,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:789,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:782,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:804,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:808,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:809,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:767,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:780,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:784,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pengine/pe_output.c:778,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:787,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:785,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:795,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:800,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:802,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:791,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:815,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pengine/pe_output.c:797,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:821,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pengine/pe_output.c:823,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:792,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:796,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:813,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:817,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pengine/pe_output.c:810,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:818,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:805,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 60
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 827
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 827
    functionName: cluster_counts_html
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk__plural_s
    - pcmk__html_create
    - va_arg
    - pcmk__xe_set_content
    linkageType: ''
    returnType: int
    signature: 'static int cluster_counts_html(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1009,1
    - Dst: pcmk__formatted_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:1013,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1011,1
    - Dst: pcmk__formatted_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:1012,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1015,1
    - Dst: pcmk__formatted_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:1016,1
    - Dst: pcmk__formatted_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:1017,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1022
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1022
    functionName: cluster_maint_mode_text
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk_is_set
    - pcmk__formatted_printf
    linkageType: ''
    returnType: int
    signature: 'static int cluster_maint_mode_text(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/pe_output.c:624,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:628,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/pe_output.c:627,1
    - Dst: va_start
      Src: /src/pacemaker/lib/pengine/pe_output.c:630,1
    - Dst: pcmk__output_xml_peek_parent
      Src: /src/pacemaker/lib/pengine/pe_output.c:626,1
    - Dst: pcmk__xe_set_propv
      Src: /src/pacemaker/lib/pengine/pe_output.c:631,1
    - Dst: va_end
      Src: /src/pacemaker/lib/pengine/pe_output.c:632,1
    - Dst: pcmk__output_xml_push_parent
      Src: /src/pacemaker/lib/pengine/pe_output.c:635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - out
    - is_list
    - tag_name
    - '...'
    argTypes:
    - pcmk__output_t*
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 638
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 638
    functionName: pe__name_and_nvpairs_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_set_propv
    - va_end
    - va_start
    - pcmk__output_xml_push_parent
    - pcmk__assert
    - pcmk__output_xml_peek_parent
    linkageType: ''
    returnType: int
    signature: 'int pe__name_and_nvpairs_xml(pcmk__output_t *out, bool is_list, const
      char *tag_name, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1284,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1286,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:1294,1
    - Dst: pcmk_pacemakerd_api_daemon_state_enum2text
      Src: /src/pacemaker/lib/pengine/pe_output.c:1291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1300
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1300
    functionName: cluster_stack_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    - pcmk_pacemakerd_api_daemon_state_enum2text
    linkageType: ''
    returnType: int
    signature: 'static int cluster_stack_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1351,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1354,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1355,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1353,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1352,1
    - Dst: pcmk__epoch2str
      Src: /src/pacemaker/lib/pengine/pe_output.c:1357,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:1359,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:1364,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_output.c:1365,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_output.c:1366,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_output.c:1367,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_output.c:1368,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:1371,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1373
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1373
    functionName: cluster_times_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk__s
    - va_arg
    - free
    - pcmk__epoch2str
    linkageType: ''
    returnType: int
    signature: 'static int cluster_times_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 1
    argNames:
    - policy
    argTypes:
    - enum pe_quorum_policy
    constantsTouched: []
    func_position:
      end: 1194
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1194
    functionName: no_quorum_policy_text
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *no_quorum_policy_text(enum pe_quorum_policy policy) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_output.c:73,1
    - Dst: pe_rsc_params
      Src: /src/pacemaker/lib/pengine/pe_output.c:89,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_output.c:90,1
    - Dst: add_extra_info
      Src: /src/pacemaker/lib/pengine/pe_output.c:79,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pengine/pe_output.c:85,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_output.c:97,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_output.c:99,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_output.c:100,1
    - Dst: g_strsplit
      Src: /src/pacemaker/lib/pengine/pe_output.c:104,1
    - Dst: g_strv_length
      Src: /src/pacemaker/lib/pengine/pe_output.c:105,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/pengine/pe_output.c:106,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/pe_output.c:110,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 37
    argCount: 5
    argNames:
    - node
    - rsc_list
    - scheduler
    - attrname
    - expected_score
    argTypes:
    - pcmk_node_t*
    - GList*
    - pcmk_scheduler_t*
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 124
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 124
    functionName: add_extra_info
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - g_strsplit
    - g_strfreev
    - g_strv_length
    - g_hash_table_lookup
    - pcmk__str_eq
    - pcmk__strcase_any_of
    - pe_rsc_params
    - add_extra_info
    - pcmk__scan_min_int
    linkageType: ''
    returnType: bool
    signature: 'static bool add_extra_info(const pcmk_node_t *node, GList *rsc_list,
      pcmk_scheduler_t *scheduler, const char *attrname, int *expected_score) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2895,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2896,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2897,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:2899,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/pe_output.c:2905,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2909
      start: 2892
    functionDepth: 0
    functionLinenumber: 2892
    functionLinenumberEnd: 2909
    functionName: promotion_score_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    - crm_xml_add
    linkageType: ''
    returnType: int
    signature: 'static int promotion_score_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/pe_output.c:132,1
    - Dst: g_str_has_prefix
      Src: /src/pacemaker/lib/pengine/pe_output.c:136,1
    - Dst: g_list_insert_sorted
      Src: /src/pacemaker/lib/pengine/pe_output.c:141,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - attr_list
    - name
    argTypes:
    - GList*
    - char*
    constantsTouched: []
    func_position:
      end: 142
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 142
    functionName: filter_attr_list
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - g_list_insert_sorted
    - CRM_CHECK
    - g_str_has_prefix
    linkageType: ''
    returnType: GList*
    signature: 'static GList *filter_attr_list(GList *attr_list, char *name) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3248,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3250,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pengine/pe_output.c:3265,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:3266,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:3273,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/pengine/pe_output.c:3277,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:3283,1
    - Dst: ticket_status
      Src: /src/pacemaker/lib/pengine/pe_output.c:3314,1
    - Dst: ticket_standby_text
      Src: /src/pacemaker/lib/pengine/pe_output.c:3315,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:3290,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/pe_output.c:3286,1
    - Dst: ticket_status
      Src: /src/pacemaker/lib/pengine/pe_output.c:3309,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_output.c:3310,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/pengine/pe_output.c:3259,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3249,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pengine/pe_output.c:3269,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:3271,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:3284,1
    - Dst: pcmk__epoch2str
      Src: /src/pacemaker/lib/pengine/pe_output.c:3306,1
    - Dst: pcmk__epoch2str
      Src: /src/pacemaker/lib/pengine/pe_output.c:3282,1
    - Dst: ticket_status
      Src: /src/pacemaker/lib/pengine/pe_output.c:3319,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/pe_output.c:3325,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pengine/pe_output.c:3268,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/pengine/pe_output.c:3281,1
    - Dst: ticket_standby_text
      Src: /src/pacemaker/lib/pengine/pe_output.c:3310,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:3311,1
    - Dst: ticket_standby_text
      Src: /src/pacemaker/lib/pengine/pe_output.c:3320,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 3329
      start: 3246
    functionDepth: 0
    functionLinenumber: 3246
    functionLinenumberEnd: 3329
    functionName: ticket_default
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - ticket_status
    - ticket_standby_text
    - pcmk__s
    - g_hash_table_iter_next
    - g_string_append_printf
    - va_arg
    - g_string_sized_new
    - free
    - pcmk__scan_ll
    - pcmk__epoch2str
    - g_string_free
    - pcmk__str_any_of
    - g_hash_table_iter_init
    - pcmk__g_strcat
    - g_hash_table_size
    linkageType: ''
    returnType: int
    signature: 'static int ticket_default(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__formatted_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:2929,1
    - Dst: resource_config
      Src: /src/pacemaker/lib/pengine/pe_output.c:2930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2931
      start: 2927
    functionDepth: 0
    functionLinenumber: 2927
    functionLinenumberEnd: 2931
    functionName: resource_config_text
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__formatted_printf
    - resource_config
    linkageType: ''
    returnType: int
    signature: 'static int resource_config_text(pcmk__output_t *out, va_list args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2710,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2714,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2712,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2713,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2711,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2715,1
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/lib/pengine/pe_output.c:2718,1
    - Dst: xmlChildElementCount
      Src: /src/pacemaker/lib/pengine/pe_output.c:2722,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/pe_output.c:2726,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/pe_output.c:2729,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/pe_output.c:2732,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/pe_output.c:2738,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:2744,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pengine/pe_output.c:2750,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/pe_output.c:2743,1
    - Dst: pe_find_node_id
      Src: /src/pacemaker/lib/pengine/pe_output.c:2731,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2752
      start: 2708
    functionDepth: 0
    functionLinenumber: 2708
    functionLinenumberEnd: 2752
    functionName: node_summary
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - pcmk__str_in_list
    - pe_find_node_id
    - pcmk_find_cib_element
    - PCMK__OUTPUT_LIST_FOOTER
    - va_arg
    - pcmk_is_set
    - pcmk__xe_next
    - PCMK__OUTPUT_LIST_HEADER
    - xmlChildElementCount
    - pcmk__xe_id
    linkageType: ''
    returnType: int
    signature: 'static int node_summary(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3334,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/pe_output.c:3338,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3335,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:3345,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:3336,1
    - Dst: ticket_status
      Src: /src/pacemaker/lib/pengine/pe_output.c:3347,1
    - Dst: pcmk__epoch2str
      Src: /src/pacemaker/lib/pengine/pe_output.c:3352,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/pe_output.c:3354,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:3355,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pengine/pe_output.c:3358,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pengine/pe_output.c:3359,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/pe_output.c:3368,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/pengine/pe_output.c:3363,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 3372
      start: 3332
    functionDepth: 0
    functionLinenumber: 3332
    functionLinenumberEnd: 3372
    functionName: ticket_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - ticket_status
    - crm_xml_add
    - va_arg
    - free
    - pcmk__epoch2str
    - pcmk__str_any_of
    - pcmk__flag_text
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: int
    signature: 'static int ticket_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2876,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2878,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2877,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_output.c:2885,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2888
      start: 2873
    functionDepth: 0
    functionLinenumber: 2873
    functionLinenumberEnd: 2888
    functionName: promotion_score
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__node_name
    linkageType: ''
    returnType: int
    signature: 'static int promotion_score(pcmk__output_t *out, va_list args) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2960,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2962,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2964,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2961,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2963,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2965,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/pengine/pe_output.c:2967,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/lib/pengine/pe_output.c:2973,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:2975,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/pengine/pe_output.c:2977,1
    - Dst: pcmk__epoch2str
      Src: /src/pacemaker/lib/pengine/pe_output.c:2991,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2994,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/pe_output.c:2986,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:2984,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pengine/pe_output.c:2999,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2987,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2981,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/pe_output.c:2993,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 3003
      start: 2958
    functionDepth: 0
    functionLinenumber: 2958
    functionLinenumberEnd: 3003
    functionName: resource_history_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__itoa
    - pcmk__output_xml_pop_parent
    - pcmk__xe_set_props
    - crm_xml_add
    - pcmk__xe_set_bool_attr
    - va_arg
    - free
    - pcmk__epoch2str
    - pcmk__output_xml_create_parent
    linkageType: ''
    returnType: int
    signature: 'static int resource_history_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:652,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:654,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:653,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:657,1
    - Dst: pe__node_display_name
      Src: /src/pacemaker/lib/pengine/pe_output.c:656,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:658,1
    - Dst: role_desc
      Src: /src/pacemaker/lib/pengine/pe_output.c:660,1
    - Dst: pcmk__output_create_html_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:662,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:664,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:665,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 667
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 667
    functionName: ban_html
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_html_node
    - crm_strdup_printf
    - pe__node_display_name
    - role_desc
    - va_arg
    - pcmk_is_set
    - free
    linkageType: ''
    returnType: int
    signature: 'static int ban_html(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:979,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:981,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:983,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:982,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:980,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:986,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/pe_output.c:986,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:987,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:989,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_output.c:991,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:998,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1004
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 1004
    functionName: cluster_dc_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk__s
    - crm_is_true
    - pcmk__btoa
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int cluster_dc_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2320,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2323,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2322,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:2325,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2321,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:2331,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/pe_output.c:2332,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2333,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2337
      start: 2318
    functionDepth: 0
    functionLinenumber: 2318
    functionLinenumberEnd: 2337
    functionName: node_attribute_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk__itoa
    - crm_xml_add
    - va_arg
    - free
    linkageType: ''
    returnType: int
    signature: 'static int node_attribute_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:689,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:691,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:690,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:693,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/pe_output.c:694,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:696,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:711,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 713
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 713
    functionName: ban_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk__itoa
    - pcmk__btoa
    - va_arg
    - free
    linkageType: ''
    returnType: int
    signature: 'static int ban_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:3008,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:3011,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - out
    - show_opts
    argTypes:
    - pcmk__output_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 3016
      start: 3005
    functionDepth: 0
    functionLinenumber: 3005
    functionLinenumberEnd: 3016
    functionName: print_resource_header
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: void
    signature: 'static void print_resource_header(pcmk__output_t *out, uint32_t show_opts) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1237,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1239,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:1241,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1244,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1245,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1247,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1248,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1251,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1252,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1254,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1259,1
    - Dst: pcmk__pcmkd_state_enum2friendly
      Src: /src/pacemaker/lib/pengine/pe_output.c:1256,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/pe_output.c:1258,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/pe_output.c:1255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1262
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1262
    functionName: cluster_stack_html
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk__pcmkd_state_enum2friendly
    - pcmk__html_create
    - va_arg
    - pcmk__xe_set_content
    linkageType: ''
    returnType: int
    signature: 'static int cluster_stack_html(pcmk__output_t *out, va_list args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2343,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2347,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2346,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2344,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2345,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pengine/pe_output.c:2364,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pengine/pe_output.c:2365,1
    - Dst: filter_attr_list
      Src: /src/pacemaker/lib/pengine/pe_output.c:2366,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/pe_output.c:2373,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2375,1
    - Dst: pcmk__node_attr
      Src: /src/pacemaker/lib/pengine/pe_output.c:2389,1
    - Dst: add_extra_info
      Src: /src/pacemaker/lib/pengine/pe_output.c:2391,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/pe_output.c:2399,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/pe_output.c:2379,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pengine/pe_output.c:2403,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2405
      start: 2341
    functionDepth: 0
    functionLinenumber: 2341
    functionLinenumberEnd: 2405
    functionName: node_attribute_list
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__node_attr
    - g_list_free
    - filter_attr_list
    - PCMK__OUTPUT_LIST_FOOTER
    - va_arg
    - add_extra_info
    - PCMK__OUTPUT_LIST_HEADER
    - pcmk__str_in_list
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: int
    signature: 'static int node_attribute_list(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2429,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:2431,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pengine/pe_output.c:2437,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pengine/pe_output.c:2433,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2440
      start: 2426
    functionDepth: 0
    functionLinenumber: 2426
    functionLinenumberEnd: 2440
    functionName: node_capacity_xml
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    - g_hash_table_foreach
    linkageType: ''
    returnType: int
    signature: 'static int node_capacity_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_output.c:237,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:240,1
    - Dst: crm_element_value_epoch
      Src: /src/pacemaker/lib/pengine/pe_output.c:252,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:260,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:274,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:302,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:239,1
    - Dst: pcmk__epoch2str
      Src: /src/pacemaker/lib/pengine/pe_output.c:255,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:257,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_output.c:259,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:270,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:267,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:273,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:263,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:296,1
    - Dst: pcmk__format_nvpair
      Src: /src/pacemaker/lib/pengine/pe_output.c:238,1
    - Dst: pcmk__format_nvpair
      Src: /src/pacemaker/lib/pengine/pe_output.c:272,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:266,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:277,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/pe_output.c:282,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:285,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:233,1
    - Dst: pcmk__format_nvpair
      Src: /src/pacemaker/lib/pengine/pe_output.c:265,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:289,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:293,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 49
    argCount: 5
    argNames:
    - xml_op
    - task
    - interval_ms_s
    - rc
    - print_timing
    argTypes:
    - xmlNode*
    - char*
    - char*
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 306
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 306
    functionName: op_history_string
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__format_nvpair
    - pcmk__s
    - crm_strdup_printf
    - crm_exit_str
    - crm_element_value_epoch
    - pcmk__str_eq
    - free
    - pcmk__epoch2str
    - crm_element_value
    linkageType: ''
    returnType: char*
    signature: 'static char *op_history_string(xmlNode *xml_op, const char *task,
      const char *interval_ms_s, int rc, bool print_timing) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:314,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/pe_output.c:323,1
    - Dst: pcmk__epoch2str
      Src: /src/pacemaker/lib/pengine/pe_output.c:326,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:320,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:327,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:329,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:332,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_output.c:334,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:335,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_output.c:336,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_output.c:338,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 5
    argNames:
    - rsc
    - rsc_id
    - all
    - failcount
    - last_failure
    argTypes:
    - pcmk_resource_t*
    - char*
    - bool
    - int
    - time_t
    constantsTouched: []
    func_position:
      end: 342
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 342
    functionName: resource_history_string
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - crm_strdup_printf
    - free
    - pcmk__epoch2str
    - strdup
    linkageType: ''
    returnType: char*
    signature: 'static char *resource_history_string(pcmk_resource_t *rsc, const char
      *rsc_id, bool all, int failcount, time_t last_failure) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1267,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1269,1
    - Dst: pcmk__pcmkd_state_enum2friendly
      Src: /src/pacemaker/lib/pengine/pe_output.c:1273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1279
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1279
    functionName: cluster_stack_text
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__pcmkd_state_enum2friendly
    linkageType: ''
    returnType: int
    signature: 'static int cluster_stack_text(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1555,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:1559,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:1560,1
    - Dst: pcmk__xe_history_key
      Src: /src/pacemaker/lib/pengine/pe_output.c:1558,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/pe_output.c:1556,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:1561,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/pe_output.c:1566,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:1566,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/pe_output.c:1568,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_output.c:1568,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/pe_output.c:1571,1
    - Dst: failed_action_friendly
      Src: /src/pacemaker/lib/pengine/pe_output.c:1579,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_output.c:1575,1
    - Dst: failed_action_technical
      Src: /src/pacemaker/lib/pengine/pe_output.c:1576,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1583
      start: 1552
    functionDepth: 0
    functionLinenumber: 1552
    functionLinenumberEnd: 1583
    functionName: failed_action_default
    functionSourceFile: /src/pacemaker/lib/pengine/pe_output.c
    functionUses: []
    functionsReached:
    - pcmk__str_empty
    - failed_action_friendly
    - va_arg
    - pcmk_is_set
    - crm_element_value
    - pcmk__xe_history_key
    - failed_action_technical
    - pcmk__scan_min_int
    linkageType: ''
    returnType: int
    signature: 'static int failed_action_default(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:99,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: pe__bundle_max
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - get_bundle_variant_data
    - pe__const_top_resource
    linkageType: ''
    returnType: int
    signature: 'int pe__bundle_max(const pcmk_resource_t *rsc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:191,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 1
    argNames:
    - bundle
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 197
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 197
    functionName: pe__first_container
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - get_bundle_variant_data
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'pcmk_resource_t *pe__first_container(const pcmk_resource_t *bundle) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:215,1
    - Dst: fn
      Src: /src/pacemaker/lib/pengine/bundle.c:217,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 3
    argNames:
    - bundle
    - (*fn)
    - user_data
    argTypes:
    - pcmk_resource_t*
    - bool
    - void*
    constantsTouched: []
    func_position:
      end: 221
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 221
    functionName: pe__foreach_bundle_replica
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - fn
    - get_bundle_variant_data
    linkageType: ''
    returnType: void
    signature: 'void pe__foreach_bundle_replica(pcmk_resource_t *bundle, bool (*fn)(pcmk__bundle_replica_t
      *, void *), void *user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pe_rsc_params
      Src: /src/pacemaker/lib/pengine/bundle.c:902,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/bundle.c:903,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/bundle.c:905,1
    - Dst: xml_contains_remote_node
      Src: /src/pacemaker/lib/pengine/bundle.c:906,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 907
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 907
    functionName: pe__bundle_needs_remote_name
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - pe_rsc_params
    - pcmk__str_eq
    - xml_contains_remote_node
    - g_hash_table_lookup
    linkageType: ''
    returnType: bool
    signature: 'bool pe__bundle_needs_remote_name(pcmk_resource_t *rsc) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pe__bundle_needs_remote_name
      Src: /src/pacemaker/lib/pengine/bundle.c:918,1
    - Dst: replica_for_remote
      Src: /src/pacemaker/lib/pengine/bundle.c:922,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/bundle.c:940,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/bundle.c:936,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pengine/bundle.c:932,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/bundle.c:941,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/bundle.c:943,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 3
    argNames:
    - rsc
    - xml
    - field
    argTypes:
    - pcmk_resource_t*
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 947
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 947
    functionName: pe__add_bundle_remote_name
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - pe__bundle_needs_remote_name
    - crm_xml_add
    - pcmk__node_name
    - replica_for_remote
    - crm_trace
    - pcmk__current_node
    linkageType: ''
    returnType: char*
    signature: 'const char *pe__add_bundle_remote_name(pcmk_resource_t *rsc, xmlNode
      *xml, const char *field) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/bundle.c:1709,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/bundle.c:1757,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pengine/bundle.c:1809,1
    - Dst: pe__resource_description
      Src: /src/pacemaker/lib/pengine/bundle.c:1719,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/bundle.c:1710,1
    - Dst: get_unmanaged_str
      Src: /src/pacemaker/lib/pengine/bundle.c:1769,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/bundle.c:1764,1
    - Dst: pcmk__list_of_multiple
      Src: /src/pacemaker/lib/pengine/bundle.c:1771,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/bundle.c:1711,1
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:1722,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/bundle.c:1801,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/bundle.c:1804,1
    - Dst: get_unmanaged_str
      Src: /src/pacemaker/lib/pengine/bundle.c:1806,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/bundle.c:1712,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/bundle.c:1721,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/bundle.c:1728,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/bundle.c:1739,1
    - Dst: pcmk__rsc_filtered_by_node
      Src: /src/pacemaker/lib/pengine/bundle.c:1741,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/bundle.c:1767,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pengine/bundle.c:1814,1
    - Dst: pe__bundle_replica_output_text
      Src: /src/pacemaker/lib/pengine/bundle.c:1808,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 80
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1816
      start: 1706
    functionDepth: 0
    functionLinenumber: 1706
    functionLinenumberEnd: 1816
    functionName: pe__bundle_text
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - PCMK__OUTPUT_LIST_HEADER
    - get_unmanaged_str
    - pe__bundle_replica_output_text
    - pcmk__rsc_filtered_by_node
    - PCMK__OUTPUT_LIST_FOOTER
    - va_arg
    - pcmk_is_set
    - pcmk__assert
    - pcmk__str_in_list
    - pcmk__list_of_multiple
    - pe__resource_description
    - get_bundle_variant_data
    - pcmk__current_node
    linkageType: ''
    returnType: int
    signature: 'int pe__bundle_text(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:165,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pengine/bundle.c:169,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 2
    argNames:
    - bundle
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 174
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 174
    functionName: pe__node_is_bundle_instance
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - get_bundle_variant_data
    - pcmk__same_node
    linkageType: ''
    returnType: bool
    signature: 'bool pe__node_is_bundle_instance(const pcmk_resource_t *bundle, const
      pcmk_node_t *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pengine/bundle.c:1898,1
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:1901,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1905
      start: 1895
    functionDepth: 0
    functionLinenumber: 1895
    functionLinenumberEnd: 1905
    functionName: pe_bundle_replicas
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - get_bundle_variant_data
    - pcmk__is_bundle
    linkageType: ''
    returnType: int
    signature: 'int pe_bundle_replicas(const pcmk_resource_t *rsc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/pacemaker/lib/pengine/bundle.c:257,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/bundle.c:274,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - last_ip
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 275
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 275
    functionName: next_ip
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - sscanf
    linkageType: ''
    returnType: char*
    signature: 'static char *next_ip(const char *last_ip) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pengine/bundle.c:314,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/bundle.c:316,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/bundle.c:318,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/bundle.c:317,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/bundle.c:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - name
    - provider
    - kind
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 322
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 322
    functionName: create_resource
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *create_resource(const char *name, const char *provider,
      const char *kind) '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: container_agent_str
      Src: /src/pacemaker/lib/pengine/bundle.c:443,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pengine/bundle.c:445,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pengine/bundle.c:453,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:456,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/bundle.c:477,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/bundle.c:501,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/bundle.c:552,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/bundle.c:556,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/bundle.c:561,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:574,1
    - Dst: create_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:450,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/bundle.c:447,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/bundle.c:481,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:459,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/bundle.c:474,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/pengine/bundle.c:462,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/pengine/bundle.c:495,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/bundle.c:529,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:594,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/bundle.c:621,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:571,1
    - Dst: pe__unpack_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:616,1
    - Dst: pcmk__xml_sanitize_id
      Src: /src/pacemaker/lib/pengine/bundle.c:449,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/pengine/bundle.c:454,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:458,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/lib/pengine/bundle.c:484,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/bundle.c:502,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/bundle.c:526,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:563,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:583,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:592,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pengine/bundle.c:611,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:608,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/bundle.c:612,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:451,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:457,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/bundle.c:492,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/lib/pengine/bundle.c:471,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/bundle.c:493,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/bundle.c:506,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:512,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/bundle.c:522,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:559,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/bundle.c:566,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:599,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/bundle.c:620,1
    - Dst: crm_create_op_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:612,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 103
    argCount: 3
    argNames:
    - parent
    - data
    - replica
    argTypes:
    - pcmk_resource_t*
    - pe__bundle_variant_data_t*
    - pcmk__bundle_replica_t*
    constantsTouched: []
    func_position:
      end: 625
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 625
    functionName: create_container_resource
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - pcmk__add_separated_word
    - pcmk__xe_set_id
    - pcmk__set_rsc_flags
    - pcmk__xml_sanitize_id
    - free
    - g_string_free
    - pcmk__xe_create
    - pcmk__s
    - crm_strdup_printf
    - crm_create_nvpair_xml
    - g_string_append_printf
    - container_agent_str
    - pcmk_is_set
    - pcmk__xe_id
    - pe__unpack_resource
    - pcmk__g_strcat
    - g_list_append
    - g_string_append
    - pcmk__str_eq
    - g_string_sized_new
    - create_resource
    - crm_create_op_xml
    linkageType: ''
    returnType: int
    signature: 'static int create_container_resource(pcmk_resource_t *parent, const
      pe__bundle_variant_data_t *data, pcmk__bundle_replica_t *replica) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/bundle.c:838,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/pengine/bundle.c:843,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/pengine/bundle.c:841,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/pengine/bundle.c:842,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/bundle.c:845,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 5
    argNames:
    - bundle_data
    - source
    - target
    - options
    - flags
    argTypes:
    - pe__bundle_variant_data_t*
    - char*
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 846
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 846
    functionName: mount_add
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - pcmk__assert_alloc
    - g_list_append
    linkageType: ''
    returnType: void
    signature: 'static void mount_add(pe__bundle_variant_data_t *bundle_data, const
      char *source, const char *target, const char *options, uint32_t flags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:860,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:862,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - port
    argTypes:
    - pe__bundle_port_t*
    constantsTouched: []
    func_position:
      end: 863
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 863
    functionName: port_free
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void port_free(pe__bundle_port_t *port) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/bundle.c:1375,1
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:1377,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/bundle.c:1382,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pengine/bundle.c:1383,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 2
    argNames:
    - bundle
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1388
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1388
    functionName: pe__find_bundle_replica
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - get_bundle_variant_data
    - pcmk__same_node
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'pcmk_resource_t *pe__find_bundle_replica(const pcmk_resource_t *bundle,
      const pcmk_node_t *node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:1912,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1929
      start: 1907
    functionDepth: 0
    functionLinenumber: 1907
    functionLinenumberEnd: 1929
    functionName: pe__count_bundle
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - get_bundle_variant_data
    linkageType: ''
    returnType: void
    signature: 'void pe__count_bundle(pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:1995,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/bundle.c:1999,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 1
    argNames:
    - bundle
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 2002
      start: 1986
    functionDepth: 0
    functionLinenumber: 1986
    functionLinenumberEnd: 2002
    functionName: pe__bundle_containers
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - g_list_append
    - get_bundle_variant_data
    linkageType: ''
    returnType: GList*
    signature: 'GList *pe__bundle_containers(const pcmk_resource_t *bundle) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: next_ip
      Src: /src/pacemaker/lib/pengine/bundle.c:285,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/bundle.c:288,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/lib/pengine/bundle.c:300,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/lib/pengine/bundle.c:296,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 3
    argNames:
    - data
    - replica
    - buffer
    argTypes:
    - pe__bundle_variant_data_t*
    - pcmk__bundle_replica_t*
    - GString*
    constantsTouched: []
    func_position:
      end: 309
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 309
    functionName: allocate_ip
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - strdup
    - g_string_append_printf
    - next_ip
    linkageType: ''
    returnType: void
    signature: 'static void allocate_ip(pe__bundle_variant_data_t *data, pcmk__bundle_replica_t
      *replica, GString *buffer) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:851,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:854,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:853,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - mount
    argTypes:
    - pe__bundle_mount_t*
    constantsTouched: []
    func_position:
      end: 855
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 855
    functionName: mount_free
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void mount_free(pe__bundle_mount_t *mount) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:878,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/pengine/bundle.c:887,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 1
    argNames:
    - remote
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 889
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 889
    functionName: replica_for_remote
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - get_bundle_variant_data
    - CRM_LOG_ASSERT
    linkageType: ''
    returnType: pcmk__bundle_replica_t*
    signature: 'static pcmk__bundle_replica_t *replica_for_remote(pcmk_resource_t
      *remote) '
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/pengine/bundle.c:1047,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/bundle.c:1070,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/pengine/bundle.c:1016,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/bundle.c:1141,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/bundle.c:1211,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/bundle.c:1227,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/bundle.c:1090,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:1123,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/bundle.c:1078,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/bundle.c:997,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/pengine/bundle.c:1017,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/bundle.c:1023,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/pengine/bundle.c:1120,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/bundle.c:1243,1
    - Dst: mount_add
      Src: /src/pacemaker/lib/pengine/bundle.c:1188,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/bundle.c:1150,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/bundle.c:1039,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/bundle.c:1222,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/bundle.c:965,1
    - Dst: strlen
      Src: /src/pacemaker/lib/pengine/bundle.c:1056,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:1138,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/pengine/bundle.c:1147,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/bundle.c:1226,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/bundle.c:970,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/bundle.c:1060,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:1131,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:1127,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pengine/bundle.c:1214,1
    - Dst: pcmk__free_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:1270,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/bundle.c:1077,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/pengine/bundle.c:1117,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/bundle.c:1064,1
    - Dst: pe__unpack_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:1162,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/bundle.c:968,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:1143,1
    - Dst: port_free
      Src: /src/pacemaker/lib/pengine/bundle.c:1065,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/bundle.c:1094,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/bundle.c:1198,1
    - Dst: mount_add
      Src: /src/pacemaker/lib/pengine/bundle.c:1192,1
    - Dst: pe__set_bundle_mount_flags
      Src: /src/pacemaker/lib/pengine/bundle.c:1084,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/bundle.c:1196,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/bundle.c:1237,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/bundle.c:1301,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/pengine/bundle.c:1050,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pengine/bundle.c:1135,1
    - Dst: allocate_ip
      Src: /src/pacemaker/lib/pengine/bundle.c:1230,1
    - Dst: create_replica_resources
      Src: /src/pacemaker/lib/pengine/bundle.c:1268,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pengine/bundle.c:1119,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/bundle.c:972,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/bundle.c:1009,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/pengine/bundle.c:1052,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/bundle.c:1130,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/bundle.c:1099,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/bundle.c:1231,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/bundle.c:1045,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/bundle.c:1209,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/bundle.c:1126,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/bundle.c:991,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/pengine/bundle.c:1035,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/bundle.c:1079,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/bundle.c:1083,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pengine/bundle.c:1250,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/pengine/bundle.c:1029,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/bundle.c:1034,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/bundle.c:1042,1
    - Dst: valid_network
      Src: /src/pacemaker/lib/pengine/bundle.c:1101,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:1134,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:1142,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pengine/bundle.c:1106,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/bundle.c:1255,1
    - Dst: allocate_ip
      Src: /src/pacemaker/lib/pengine/bundle.c:1257,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/bundle.c:1001,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/pengine/bundle.c:1019,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/pengine/bundle.c:1031,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/bundle.c:1095,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/bundle.c:1212,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/bundle.c:1234,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/bundle.c:1240,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/bundle.c:1258,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/bundle.c:966,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/bundle.c:1010,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/pengine/bundle.c:1027,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/pengine/bundle.c:1020,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/pengine/bundle.c:1033,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/bundle.c:1072,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/bundle.c:1058,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/bundle.c:1220,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/bundle.c:1269,1
    - Dst: mount_add
      Src: /src/pacemaker/lib/pengine/bundle.c:1089,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:1132,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/bundle.c:1152,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:1128,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/bundle.c:979,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/bundle.c:992,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pengine/bundle.c:1012,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/bundle.c:1063,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/bundle.c:1075,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/bundle.c:1261,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 230
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1305
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 1305
    functionName: pe__unpack_bundle
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - pcmk__xe_set_id
    - pcmk__set_rsc_flags
    - pcmk__xe_first_child
    - pcmk__btoa
    - free
    - create_replica_resources
    - valid_network
    - strdup
    - g_string_free
    - pcmk__xe_create
    - g_hash_table_lookup
    - crm_create_nvpair_xml
    - pcmk__free_resource
    - pcmk__clear_rsc_flags
    - crm_str_to_boolean
    - pcmk_is_set
    - crm_element_value
    - pcmk__assert
    - pcmk__xe_id
    - pe__unpack_resource
    - g_list_append
    - pcmk__rsc_trace
    - port_free
    - pcmk__itoa
    - pcmk__xml_copy
    - allocate_ip
    - pcmk__assert_alloc
    - strcmp
    - mount_add
    - pe__set_bundle_mount_flags
    - pcmk__xe_next
    - g_string_sized_new
    - pcmk__config_err
    - pcmk__scan_min_int
    - pcmk__insert_dup
    - strlen
    - crm_element_value_copy
    linkageType: ''
    returnType: bool
    signature: 'bool pe__unpack_bundle(pcmk_resource_t *rsc) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/bundle.c:1938,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/bundle.c:1938,1
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:1941,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 33
    argCount: 3
    argNames:
    - rsc
    - only_rsc
    - check_parent
    argTypes:
    - pcmk_resource_t*
    - GList*
    - bool
    constantsTouched: []
    func_position:
      end: 1974
      start: 1931
    functionDepth: 0
    functionLinenumber: 1931
    functionLinenumberEnd: 1974
    functionName: pe__bundle_is_filtered
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - pcmk__str_in_list
    - rsc_printable_id
    - get_bundle_variant_data
    linkageType: ''
    returnType: bool
    signature: 'bool pe__bundle_is_filtered(const pcmk_resource_t *rsc, const GList
      *only_rsc, bool check_parent) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:240,1
    - Dst: fn
      Src: /src/pacemaker/lib/pengine/bundle.c:244,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 3
    argNames:
    - bundle
    - (*fn)
    - user_data
    argTypes:
    - pcmk_resource_t*
    - bool
    - void*
    constantsTouched: []
    func_position:
      end: 248
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 248
    functionName: pe__foreach_const_bundle_replica
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - fn
    - get_bundle_variant_data
    linkageType: ''
    returnType: void
    signature: 'void pe__foreach_const_bundle_replica(const pcmk_resource_t *bundle,
      bool (*fn)(const pcmk__bundle_replica_t *, void *), void *user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:133,1
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pengine/bundle.c:135,1
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:138,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 1
    argNames:
    - instance
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 148
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 148
    functionName: pe__get_rsc_in_container
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - pcmk__is_bundle
    - pe__const_top_resource
    - get_bundle_variant_data
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'const pcmk_resource_t *pe__get_rsc_in_container(const pcmk_resource_t
      *instance) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/bundle.c:365,1
    - Dst: pcmk__xml_sanitize_id
      Src: /src/pacemaker/lib/pengine/bundle.c:366,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:368,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pengine/bundle.c:370,1
    - Dst: create_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:367,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/pengine/bundle.c:371,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:374,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:376,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:380,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:384,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pengine/bundle.c:387,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/bundle.c:398,1
    - Dst: crm_create_op_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:388,1
    - Dst: pe__unpack_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:393,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/bundle.c:388,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - parent
    - data
    - replica
    argTypes:
    - pcmk_resource_t*
    - pe__bundle_variant_data_t*
    - pcmk__bundle_replica_t*
    constantsTouched: []
    func_position:
      end: 402
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 402
    functionName: create_ip_resource
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_set_id
    - g_list_append
    - pcmk__xml_sanitize_id
    - crm_strdup_printf
    - crm_create_nvpair_xml
    - crm_create_op_xml
    - free
    - create_resource
    - pcmk__xe_id
    - pe__unpack_resource
    linkageType: ''
    returnType: int
    signature: 'static int create_ip_resource(pcmk_resource_t *parent, pe__bundle_variant_data_t
      *data, pcmk__bundle_replica_t *replica) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/bundle.c:1552,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/bundle.c:1555,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1559
      start: 1549
    functionDepth: 0
    functionLinenumber: 1549
    functionLinenumberEnd: 1559
    functionName: get_unmanaged_str
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: char*
    signature: 'static const char *get_unmanaged_str(const pcmk_resource_t *rsc) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/bundle.c:1568,1
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:1577,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/bundle.c:1661,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pengine/bundle.c:1666,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/bundle.c:1569,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/bundle.c:1576,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/bundle.c:1567,1
    - Dst: pe__resource_description
      Src: /src/pacemaker/lib/pengine/bundle.c:1579,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/bundle.c:1596,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/bundle.c:1621,1
    - Dst: get_unmanaged_str
      Src: /src/pacemaker/lib/pengine/bundle.c:1626,1
    - Dst: pcmk__list_of_multiple
      Src: /src/pacemaker/lib/pengine/bundle.c:1628,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/bundle.c:1566,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/bundle.c:1614,1
    - Dst: pcmk__list_of_multiple
      Src: /src/pacemaker/lib/pengine/bundle.c:1652,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/bundle.c:1658,1
    - Dst: get_unmanaged_str
      Src: /src/pacemaker/lib/pengine/bundle.c:1663,1
    - Dst: pe__bundle_replica_output_html
      Src: /src/pacemaker/lib/pengine/bundle.c:1665,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/bundle.c:1585,1
    - Dst: pcmk__rsc_filtered_by_node
      Src: /src/pacemaker/lib/pengine/bundle.c:1598,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/bundle.c:1624,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pengine/bundle.c:1671,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 81
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1673
      start: 1563
    functionDepth: 0
    functionLinenumber: 1563
    functionLinenumberEnd: 1673
    functionName: pe__bundle_html
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - PCMK__OUTPUT_LIST_HEADER
    - get_unmanaged_str
    - pcmk__rsc_filtered_by_node
    - PCMK__OUTPUT_LIST_FOOTER
    - va_arg
    - pcmk_is_set
    - pcmk__assert
    - pe__bundle_replica_output_html
    - pcmk__str_in_list
    - pcmk__list_of_multiple
    - pe__resource_description
    - get_bundle_variant_data
    - pcmk__current_node
    linkageType: ''
    returnType: int
    signature: 'int pe__bundle_html(pcmk__output_t *out, va_list args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum pe__container_agent
    constantsTouched: []
    func_position:
      end: 414
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 414
    functionName: container_agent_str
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *container_agent_str(enum pe__container_agent t) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/pacemaker/lib/pengine/bundle.c:1690,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/pengine/bundle.c:1697,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/pengine/bundle.c:1693,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/bundle.c:1691,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/bundle.c:1694,1
    - Dst: pe__common_output_text
      Src: /src/pacemaker/lib/pengine/bundle.c:1701,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - out
    - replica
    - node
    - show_opts
    argTypes:
    - pcmk__output_t*
    - pcmk__bundle_replica_t*
    - pcmk_node_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1702
      start: 1675
    functionDepth: 0
    functionLinenumber: 1675
    functionLinenumberEnd: 1702
    functionName: pe__bundle_replica_output_text
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - snprintf
    - rsc_printable_id
    - pe__common_output_text
    linkageType: ''
    returnType: void
    signature: 'static void pe__bundle_replica_output_text(pcmk__output_t *out, pcmk__bundle_replica_t
      *replica, pcmk_node_t *node, uint32_t show_opts) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:116,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: pe__bundled_resource
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - get_bundle_variant_data
    - pe__const_top_resource
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'pcmk_resource_t *pe__bundled_resource(const pcmk_resource_t *rsc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/bundle.c:344,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - pe__bundle_variant_data_t*
    constantsTouched: []
    func_position:
      end: 354
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 354
    functionName: valid_network
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - pcmk__config_err
    linkageType: ''
    returnType: bool
    signature: 'static bool valid_network(pe__bundle_variant_data_t *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/bundle.c:636,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pengine/bundle.c:642,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - rsc
    - uname
    argTypes:
    - pcmk_resource_t*
    - char*
    constantsTouched: []
    func_position:
      end: 644
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 644
    functionName: disallow_node
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - g_list_foreach
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: 'static void disallow_node(pcmk_resource_t *rsc, const char *uname) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:2030,1
    - Dst: pcmk__list_of_1
      Src: /src/pacemaker/lib/pengine/bundle.c:2048,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/bundle.c:2035,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/bundle.c:2052,1
    - Dst: g_hash_table_new
      Src: /src/pacemaker/lib/pengine/bundle.c:2057,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/bundle.c:2066,1
    - Dst: pe__count_active_node
      Src: /src/pacemaker/lib/pengine/bundle.c:2068,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/bundle.c:2076,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/bundle.c:2077,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 44
    argCount: 3
    argNames:
    - rsc
    - count_all
    - count_clean
    argTypes:
    - pcmk_resource_t*
    - unsigned int*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 2079
      start: 2005
    functionDepth: 0
    functionLinenumber: 2005
    functionLinenumberEnd: 2079
    functionName: pe__bundle_active_node
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - pe__count_active_node
    - g_list_free
    - g_list_append
    - pcmk__list_of_1
    - g_hash_table_destroy
    - g_hash_table_insert
    - get_bundle_variant_data
    - g_hash_table_new
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'pcmk_node_t *pe__bundle_active_node(const pcmk_resource_t *rsc, unsigned
      int *count_all, unsigned int *count_clean) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/bundle.c:666,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/bundle.c:741,1
    - Dst: pe__copy_node
      Src: /src/pacemaker/lib/pengine/bundle.c:732,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/bundle.c:742,1
    - Dst: pe__copy_node
      Src: /src/pacemaker/lib/pengine/bundle.c:744,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pengine/bundle.c:759,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pengine/bundle.c:760,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/pengine/bundle.c:761,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:661,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/bundle.c:663,1
    - Dst: pe_create_remote_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:685,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:689,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/bundle.c:697,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/bundle.c:775,1
    - Dst: valid_network
      Src: /src/pacemaker/lib/pengine/bundle.c:650,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:695,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/bundle.c:738,1
    - Dst: pe__copy_node
      Src: /src/pacemaker/lib/pengine/bundle.c:748,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/bundle.c:751,1
    - Dst: pe__unpack_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:754,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/bundle.c:788,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/bundle.c:654,1
    - Dst: pe_find_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:660,1
    - Dst: pe_find_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:666,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/bundle.c:677,1
    - Dst: pe_create_node
      Src: /src/pacemaker/lib/pengine/bundle.c:705,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/bundle.c:703,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pengine/bundle.c:729,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 3
    argNames:
    - parent
    - data
    - replica
    argTypes:
    - pcmk_resource_t*
    - pe__bundle_variant_data_t*
    - pcmk__bundle_replica_t*
    constantsTouched: []
    func_position:
      end: 792
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 792
    functionName: create_remote_resource
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - pe_create_remote_xml
    - free
    - valid_network
    - g_hash_table_insert
    - pe_create_node
    - crm_strdup_printf
    - pcmk__assert
    - pcmk__xe_id
    - pe__unpack_resource
    - g_hash_table_iter_next
    - g_list_append
    - pcmk__itoa
    - pe__copy_node
    - pcmk__is_pacemaker_remote_node
    - pcmk_find_node
    - g_list_foreach
    - pcmk__insert_dup
    - pcmk__strkey_table
    - pe_find_resource
    - g_hash_table_iter_init
    linkageType: ''
    returnType: int
    signature: 'static int create_remote_resource(pcmk_resource_t *parent, pe__bundle_variant_data_t
      *data, pcmk__bundle_replica_t *replica) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - rsc
    - all
    argTypes:
    - pcmk_resource_t*
    - gboolean
    constantsTouched: []
    func_position:
      end: 1320
      start: 1307
    functionDepth: 0
    functionLinenumber: 1307
    functionLinenumberEnd: 1320
    functionName: replica_resource_active
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int replica_resource_active(pcmk_resource_t *rsc, gboolean
      all) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/bundle.c:1396,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/bundle.c:1414,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/bundle.c:1471,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/bundle.c:1395,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/bundle.c:1398,1
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:1408,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/bundle.c:1450,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/bundle.c:1455,1
    - Dst: pe__resource_description
      Src: /src/pacemaker/lib/pengine/bundle.c:1459,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/bundle.c:1474,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pengine/bundle.c:1501,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/bundle.c:1407,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/bundle.c:1426,1
    - Dst: pcmk__rsc_filtered_by_node
      Src: /src/pacemaker/lib/pengine/bundle.c:1428,1
    - Dst: container_agent_str
      Src: /src/pacemaker/lib/pengine/bundle.c:1449,1
    - Dst: pe__name_and_nvpairs_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:1461,1
    - Dst: pe__name_and_nvpairs_xml
      Src: /src/pacemaker/lib/pengine/bundle.c:1475,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/bundle.c:1479,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/bundle.c:1397,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/bundle.c:1451,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/bundle.c:1453,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:1478,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pengine/bundle.c:1505,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 79
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1509
      start: 1392
    functionDepth: 0
    functionLinenumber: 1392
    functionLinenumberEnd: 1509
    functionName: pe__bundle_xml
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - pcmk__itoa
    - pe__name_and_nvpairs_xml
    - pcmk__rsc_filtered_by_node
    - container_agent_str
    - va_arg
    - free
    - pcmk__output_xml_pop_parent
    - pcmk__assert
    - pcmk__str_in_list
    - pcmk__flag_text
    - pe__resource_description
    - get_bundle_variant_data
    linkageType: ''
    returnType: int
    signature: 'int pe__bundle_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__free_node_copy
      Src: /src/pacemaker/lib/pengine/bundle.c:1825,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pengine/bundle.c:1834,1
    - Dst: pcmk__free_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:1831,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pengine/bundle.c:1829,1
    - Dst: pcmk__free_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:1836,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pengine/bundle.c:1839,1
    - Dst: pcmk__free_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:1841,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:1843,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:1844,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - replica
    argTypes:
    - pcmk__bundle_replica_t*
    constantsTouched: []
    func_position:
      end: 1845
      start: 1818
    functionDepth: 0
    functionLinenumber: 1818
    functionLinenumberEnd: 1845
    functionName: free_bundle_replica
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - pcmk__free_node_copy
    - pcmk__free_resource
    - pcmk__xml_free
    - free
    linkageType: ''
    returnType: void
    signature: 'static void free_bundle_replica(pcmk__bundle_replica_t *replica) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - rsc
    - current
    argTypes:
    - pcmk_resource_t*
    - bool
    constantsTouched: []
    func_position:
      end: 1886
      start: 1881
    functionDepth: 0
    functionLinenumber: 1881
    functionLinenumberEnd: 1886
    functionName: pe__bundle_resource_state
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: enum rsc_role_e
    signature: 'enum rsc_role_e pe__bundle_resource_state(const pcmk_resource_t *rsc,
      bool current) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:2094,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/bundle.c:2095,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 2097
      start: 2089
    functionDepth: 0
    functionLinenumber: 2089
    functionLinenumberEnd: 2097
    functionName: pe__bundle_max_per_node
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - get_bundle_variant_data
    linkageType: ''
    returnType: unsigned int
    signature: 'unsigned int pe__bundle_max_per_node(const pcmk_resource_t *rsc) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: create_container_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:801,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/bundle.c:829,1
    - Dst: create_remote_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:811,1
    - Dst: create_ip_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:806,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/bundle.c:817,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - parent
    - data
    - replica
    argTypes:
    - pcmk_resource_t*
    - pe__bundle_variant_data_t*
    - pcmk__bundle_replica_t*
    constantsTouched: []
    func_position:
      end: 832
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 832
    functionName: create_replica_resources
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - pcmk__set_rsc_flags
    - create_remote_resource
    - pcmk__insert_meta
    - create_ip_resource
    - create_container_resource
    linkageType: ''
    returnType: int
    signature: 'static int create_replica_resources(pcmk_resource_t *parent, pe__bundle_variant_data_t
      *data, pcmk__bundle_replica_t *replica) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:1328,1
    - Dst: replica_resource_active
      Src: /src/pacemaker/lib/pengine/bundle.c:1338,1
    - Dst: replica_resource_active
      Src: /src/pacemaker/lib/pengine/bundle.c:1333,1
    - Dst: replica_resource_active
      Src: /src/pacemaker/lib/pengine/bundle.c:1343,1
    - Dst: replica_resource_active
      Src: /src/pacemaker/lib/pengine/bundle.c:1348,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - rsc
    - all
    argTypes:
    - pcmk_resource_t*
    - bool
    constantsTouched: []
    func_position:
      end: 1359
      start: 1322
    functionDepth: 0
    functionLinenumber: 1322
    functionLinenumberEnd: 1359
    functionName: pe__bundle_active
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - replica_resource_active
    - get_bundle_variant_data
    linkageType: ''
    returnType: bool
    signature: 'bool pe__bundle_active(const pcmk_resource_t *rsc, bool all) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/pacemaker/lib/pengine/bundle.c:1526,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/bundle.c:1527,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/pengine/bundle.c:1533,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/bundle.c:1530,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/pengine/bundle.c:1529,1
    - Dst: pe__common_output_html
      Src: /src/pacemaker/lib/pengine/bundle.c:1537,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - out
    - replica
    - node
    - show_opts
    argTypes:
    - pcmk__output_t*
    - pcmk__bundle_replica_t*
    - pcmk_node_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1538
      start: 1511
    functionDepth: 0
    functionLinenumber: 1511
    functionLinenumberEnd: 1538
    functionName: pe__bundle_replica_output_html
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - pe__common_output_html
    - snprintf
    - rsc_printable_id
    linkageType: ''
    returnType: void
    signature: 'static void pe__bundle_replica_output_html(pcmk__output_t *out, pcmk__bundle_replica_t
      *replica, pcmk_node_t *node, uint32_t show_opts) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/bundle.c:1851,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/bundle.c:1854,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:1856,1
    - Dst: get_bundle_variant_data
      Src: /src/pacemaker/lib/pengine/bundle.c:1853,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:1857,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:1858,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:1859,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:1860,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:1861,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:1862,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:1863,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pengine/bundle.c:1869,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/bundle.c:1864,1
    - Dst: common_free
      Src: /src/pacemaker/lib/pengine/bundle.c:1878,1
    - Dst: g_free
      Src: /src/pacemaker/lib/pengine/bundle.c:1865,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/bundle.c:1871,1
    - Dst: pcmk__free_resource
      Src: /src/pacemaker/lib/pengine/bundle.c:1876,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pengine/bundle.c:1874,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pengine/bundle.c:1870,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pengine/bundle.c:1867,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1879
      start: 1847
    functionDepth: 0
    functionLinenumber: 1847
    functionLinenumberEnd: 1879
    functionName: pe__free_bundle
    functionSourceFile: /src/pacemaker/lib/pengine/bundle.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__rsc_trace
    - g_list_free
    - pcmk__free_resource
    - g_list_free_full
    - free
    - pcmk__xml_free
    - common_free
    - g_free
    - get_bundle_variant_data
    linkageType: ''
    returnType: void
    signature: 'void pe__free_bundle(pcmk_resource_t *rsc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/native.c:56,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/native.c:80,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/native.c:74,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/native.c:57,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/native.c:77,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 3
    argNames:
    - rsc
    - node
    - failed
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - gboolean
    constantsTouched: []
    func_position:
      end: 83
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 83
    functionName: native_priority_to_node
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - pcmk__node_name
    - pcmk__rsc_trace
    linkageType: ''
    returnType: void
    signature: 'static void native_priority_to_node(pcmk_resource_t *rsc, pcmk_node_t
      *node, gboolean failed) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/native.c:332,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:336,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/native.c:338,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/native.c:337,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/native.c:333,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/native.c:340,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/native.c:341,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - rsc
    - all
    argTypes:
    - pcmk_resource_t*
    - bool
    constantsTouched: []
    func_position:
      end: 346
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 346
    functionName: native_active
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - pcmk__node_name
    - pcmk_is_set
    - pcmk__rsc_trace
    linkageType: ''
    returnType: bool
    signature: 'bool native_active(const pcmk_resource_t *rsc, bool all) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_append
      Src: /src/pacemaker/lib/pengine/native.c:443,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/pengine/native.c:444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 3
    argNames:
    - s
    - flag_desc
    - have_flags
    argTypes:
    - GString*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 446
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 446
    functionName: add_output_flag
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - g_string_append
    linkageType: ''
    returnType: bool
    signature: 'static bool add_output_flag(GString *s, const char *flag_desc, bool
      have_flags) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/native.c:737,1
    - Dst: pe__resource_description
      Src: /src/pacemaker/lib/pengine/native.c:754,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/native.c:746,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/native.c:749,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pengine/native.c:756,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/pengine/native.c:763,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/native.c:765,1
    - Dst: pe__name_and_nvpairs_xml
      Src: /src/pacemaker/lib/pengine/native.c:776,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/native.c:795,1
    - Dst: pe__name_and_nvpairs_xml
      Src: /src/pacemaker/lib/pengine/native.c:803,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/native.c:733,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/native.c:731,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/native.c:750,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/native.c:756,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/native.c:745,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/native.c:770,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/native.c:793,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/native.c:808,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pengine/native.c:801,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/native.c:730,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:736,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/native.c:732,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/native.c:738,1
    - Dst: native_displayable_state
      Src: /src/pacemaker/lib/pengine/native.c:741,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pengine/native.c:743,1
    - Dst: native_pending_action
      Src: /src/pacemaker/lib/pengine/native.c:752,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/native.c:744,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/native.c:767,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/native.c:777,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pengine/native.c:811,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/native.c:748,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/pengine/native.c:770,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 52
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 813
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 813
    functionName: pe__resource_xml
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - crm_element_value
    - pcmk__itoa
    - g_hash_table_lookup
    - pe__name_and_nvpairs_xml
    - pcmk__output_xml_pop_parent
    - pcmk__btoa
    - g_list_length
    - va_arg
    - pcmk_is_set
    - free
    - rsc_printable_id
    - native_pending_action
    - native_displayable_state
    - pcmk__assert
    - snprintf
    - pcmk__flag_text
    - pe__resource_description
    - pcmk__is_primitive
    linkageType: ''
    returnType: int
    signature: 'int pe__resource_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/native.c:820,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pengine/native.c:825,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/native.c:823,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/native.c:821,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/native.c:822,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/native.c:831,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pengine/native.c:831,1
    - Dst: pe__common_output_html
      Src: /src/pacemaker/lib/pengine/native.c:837,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/native.c:837,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 838
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 838
    functionName: pe__resource_html
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - pe__common_output_html
    - va_arg
    - rsc_printable_id
    - pcmk__assert
    - pcmk__is_primitive
    - pcmk__current_node
    linkageType: ''
    returnType: int
    signature: 'int pe__resource_html(pcmk__output_t *out, va_list args) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/native.c:956,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/pengine/native.c:968,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pengine/native.c:964,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/pengine/native.c:974,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/pengine/native.c:978,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/native.c:1006,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/native.c:982,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/native.c:1003,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/native.c:955,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/native.c:970,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/native.c:1008,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/native.c:984,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/native.c:1016,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/native.c:1016,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/pengine/native.c:979,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:999,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:969,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/pengine/native.c:969,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/native.c:986,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/native.c:1007,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/native.c:986,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/native.c:1012,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/native.c:1014,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 66
    argCount: 3
    argNames:
    - rsc_list
    - rsc_table
    - active_table
    argTypes:
    - GList*
    - GHashTable*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 1022
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 1022
    functionName: get_rscs_brief
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - CRM_LOG_ASSERT
    - g_hash_table_lookup
    - pcmk__assert_alloc
    - pcmk__strkey_table
    - snprintf
    - pcmk_is_set
    - crm_element_value
    - strdup
    - pcmk_get_ra_caps
    - g_hash_table_insert
    - pcmk__is_primitive
    linkageType: ''
    returnType: void
    signature: 'static void get_rscs_brief(GList *rsc_list, GHashTable * rsc_table,
      GHashTable * active_table) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/native.c:103,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pengine/native.c:144,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pengine/native.c:119,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pengine/native.c:145,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/lib/pengine/native.c:158,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/native.c:184,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/native.c:185,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/native.c:103,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/native.c:108,1
    - Dst: native_priority_to_node
      Src: /src/pacemaker/lib/pengine/native.c:109,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:116,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/native.c:140,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/native.c:125,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pengine/native.c:151,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pengine/native.c:179,1
    - Dst: pcmk__multiply_active_text
      Src: /src/pacemaker/lib/pengine/native.c:181,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/native.c:91,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:104,1
    - Dst: is_multiply_active
      Src: /src/pacemaker/lib/pengine/native.c:131,1
    - Dst: pe__node_list2table
      Src: /src/pacemaker/lib/pengine/native.c:143,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/native.c:152,1
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pengine/native.c:158,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/native.c:167,1
    - Dst: native_add_running
      Src: /src/pacemaker/lib/pengine/native.c:189,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pengine/native.c:98,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/native.c:106,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pengine/native.c:107,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pengine/native.c:111,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/native.c:112,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pengine/native.c:120,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pengine/native.c:166,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/native.c:180,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 66
    argCount: 4
    argNames:
    - rsc
    - node
    - scheduler
    - failed
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - pcmk_scheduler_t*
    - gboolean
    constantsTouched: []
    func_position:
      end: 191
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 191
    functionName: native_add_running
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - pe__node_list2table
    - pcmk__set_rsc_flags
    - g_hash_table_destroy
    - native_priority_to_node
    - pcmk__multiply_active_text
    - pcmk__clear_rsc_flags
    - pcmk__same_node
    - pcmk__node_name
    - pcmk_is_set
    - pcmk__rsc_info
    - g_hash_table_iter_next
    - CRM_CHECK
    - pcmk__rsc_trace
    - g_list_append
    - is_multiply_active
    - pcmk__is_bundle
    - pcmk__is_group
    - native_add_running
    - crm_debug
    - resource_location
    - g_hash_table_iter_init
    - pcmk__is_primitive
    linkageType: ''
    returnType: void
    signature: 'void native_add_running(pcmk_resource_t *rsc, pcmk_node_t *node, pcmk_scheduler_t
      *scheduler, gboolean failed) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/native.c:1030,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 1032
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1032
    functionName: destroy_node_table
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: 'static void destroy_node_table(gpointer data) '
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pengine/native.c:497,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:510,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:521,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/pengine/native.c:523,1
    - Dst: native_displayable_state
      Src: /src/pacemaker/lib/pengine/native.c:523,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/native.c:536,1
    - Dst: native_pending_action
      Src: /src/pacemaker/lib/pengine/native.c:550,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/native.c:568,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pengine/native.c:587,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:592,1
    - Dst: add_output_flag
      Src: /src/pacemaker/lib/pengine/native.c:564,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:599,1
    - Dst: pcmk__list_of_multiple
      Src: /src/pacemaker/lib/pengine/native.c:610,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/native.c:486,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/native.c:487,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/native.c:478,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pengine/native.c:502,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/pengine/native.c:516,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/native.c:507,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/native.c:505,1
    - Dst: native_displayable_role
      Src: /src/pacemaker/lib/pengine/native.c:530,1
    - Dst: pe__failed_probe_for_rsc
      Src: /src/pacemaker/lib/pengine/native.c:531,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/native.c:536,1
    - Dst: add_output_flag
      Src: /src/pacemaker/lib/pengine/native.c:547,1
    - Dst: add_output_node
      Src: /src/pacemaker/lib/pengine/native.c:631,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/pengine/native.c:617,1
    - Dst: add_output_flag
      Src: /src/pacemaker/lib/pengine/native.c:596,1
    - Dst: pcmk__list_of_multiple
      Src: /src/pacemaker/lib/pengine/native.c:623,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/pengine/native.c:615,1
    - Dst: add_output_flag
      Src: /src/pacemaker/lib/pengine/native.c:600,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/native.c:559,1
    - Dst: pcmk_parse_role
      Src: /src/pacemaker/lib/pengine/native.c:557,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:589,1
    - Dst: add_output_flag
      Src: /src/pacemaker/lib/pengine/native.c:593,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/native.c:476,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/native.c:488,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:490,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/pengine/native.c:490,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/native.c:491,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:513,1
    - Dst: pcmk__list_of_multiple
      Src: /src/pacemaker/lib/pengine/native.c:498,1
    - Dst: native_displayable_role
      Src: /src/pacemaker/lib/pengine/native.c:514,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/pengine/native.c:526,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/native.c:526,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/native.c:538,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:549,1
    - Dst: add_output_flag
      Src: /src/pacemaker/lib/pengine/native.c:570,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pengine/native.c:609,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/pengine/native.c:616,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/native.c:638,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pengine/native.c:546,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pengine/native.c:482,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/pengine/native.c:511,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/pengine/native.c:518,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pengine/native.c:518,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pengine/native.c:538,1
    - Dst: add_output_flag
      Src: /src/pacemaker/lib/pengine/native.c:544,1
    - Dst: add_output_flag
      Src: /src/pacemaker/lib/pengine/native.c:553,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:568,1
    - Dst: add_output_flag
      Src: /src/pacemaker/lib/pengine/native.c:590,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:595,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/native.c:611,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/pengine/native.c:634,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:622,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/pengine/native.c:605,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/pengine/native.c:573,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 141
    argCount: 6
    argNames:
    - rsc
    - name
    - node
    - show_opts
    - target_role
    - show_nodes
    argTypes:
    - pcmk_resource_t*
    - char*
    - pcmk_node_t*
    - uint32_t
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 639
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 639
    functionName: pcmk__native_output_string
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - native_displayable_state
    - g_string_free
    - pcmk__s
    - add_output_flag
    - pcmk__same_node
    - pcmk__node_name
    - pcmk_is_set
    - crm_element_value
    - pcmk_role_text
    - pcmk__g_strcat
    - pcmk_any_flags_set
    - pcmk__add_word
    - CRM_CHECK
    - g_string_append
    - crm_exit_str
    - g_string_append_c
    - add_output_node
    - g_string_sized_new
    - pcmk__config_err
    - pcmk__scan_min_int
    - native_displayable_role
    - pe__failed_probe_for_rsc
    - pcmk_parse_role
    - native_pending_action
    - pe__const_top_resource
    - pcmk_get_ra_caps
    - pcmk__list_of_multiple
    - pcmk__is_primitive
    linkageType: ''
    returnType: gchar*
    signature: 'gchar *pcmk__native_output_string(const pcmk_resource_t *rsc, const
      char *name, const pcmk_node_t *node, uint32_t show_opts, const char *target_role,
      bool show_nodes) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/native.c:880,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pengine/native.c:880,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - rsc
    - current
    argTypes:
    - pcmk_resource_t*
    - bool
    constantsTouched: []
    func_position:
      end: 882
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 882
    functionName: native_resource_state
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk_role_text
    linkageType: ''
    returnType: enum rsc_role_e
    signature: 'enum rsc_role_e native_resource_state(const pcmk_resource_t *rsc,
      bool current) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_rscs_brief
      Src: /src/pacemaker/lib/pengine/native.c:1042,1
    - Dst: g_hash_table_get_keys
      Src: /src/pacemaker/lib/pengine/native.c:1061,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pengine/native.c:1062,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:1086,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/native.c:1113,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/native.c:1117,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/native.c:1121,1
    - Dst: g_hash_table_get_keys
      Src: /src/pacemaker/lib/pengine/native.c:1047,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pengine/native.c:1048,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:1100,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/native.c:1038,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/native.c:1052,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/native.c:1066,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:1082,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/native.c:1037,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/native.c:1073,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/native.c:1108,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 57
    argCount: 3
    argNames:
    - out
    - rsc_list
    - show_opts
    argTypes:
    - pcmk__output_t*
    - GList*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1125
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1125
    functionName: pe__rscs_brief_output
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - get_rscs_brief
    - g_list_sort
    - g_list_free
    - g_hash_table_lookup
    - g_hash_table_destroy
    - pcmk__strkey_table
    - pcmk_is_set
    - g_hash_table_get_keys
    linkageType: ''
    returnType: int
    signature: 'int pe__rscs_brief_output(pcmk__output_t *out, GList *rsc_list, uint32_t
      show_opts) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/native.c:646,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/native.c:653,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pengine/native.c:653,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/native.c:655,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/native.c:655,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:657,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/native.c:659,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/native.c:662,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:665,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:668,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pengine/native.c:671,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:678,1
    - Dst: pcmk__native_output_string
      Src: /src/pacemaker/lib/pengine/native.c:687,1
    - Dst: g_free
      Src: /src/pacemaker/lib/pengine/native.c:690,1
    - Dst: pcmk__html_create
      Src: /src/pacemaker/lib/pengine/native.c:686,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/pengine/native.c:689,1
    - Dst: pcmk__list_of_multiple
      Src: /src/pacemaker/lib/pengine/native.c:675,1
    - Dst: pcmk__output_create_html_node
      Src: /src/pacemaker/lib/pengine/native.c:685,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 5
    argNames:
    - out
    - rsc
    - name
    - node
    - show_opts
    argTypes:
    - pcmk__output_t*
    - pcmk_resource_t*
    - char*
    - pcmk_node_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 693
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 693
    functionName: pe__common_output_html
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_html_node
    - crm_is_true
    - g_hash_table_lookup
    - pcmk__html_create
    - pcmk__native_output_string
    - pcmk_is_set
    - g_free
    - pcmk__xe_set_content
    - crm_element_value
    - pcmk__assert
    - pcmk__list_of_multiple
    - crm_trace
    - pcmk__is_primitive
    linkageType: ''
    returnType: int
    signature: 'int pe__common_output_html(pcmk__output_t *out, const pcmk_resource_t
      *rsc, const char *name, const pcmk_node_t *node, uint32_t show_opts) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/native.c:1131,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/native.c:1131,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/native.c:1135,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/native.c:1132,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 3
    argNames:
    - rsc
    - only_rsc
    - check_parent
    argTypes:
    - pcmk_resource_t*
    - GList*
    - bool
    constantsTouched: []
    func_position:
      end: 1141
      start: 1127
    functionDepth: 0
    functionLinenumber: 1127
    functionLinenumberEnd: 1141
    functionName: pe__native_is_filtered
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - pcmk__str_in_list
    - rsc_printable_id
    - pe__const_top_resource
    linkageType: ''
    returnType: bool
    signature: 'bool pe__native_is_filtered(const pcmk_resource_t *rsc, const GList
      *only_rsc, bool check_parent) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_append
      Src: /src/pacemaker/lib/pengine/native.c:452,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/pengine/native.c:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 3
    argNames:
    - s
    - node
    - have_nodes
    argTypes:
    - GString*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 455
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 455
    functionName: add_output_node
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - g_string_append
    linkageType: ''
    returnType: bool
    signature: 'static bool add_output_node(GString *s, const char *node, bool have_nodes) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pengine/native.c:196,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pengine/native.c:199,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/native.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - rsc
    - user_data
    argTypes:
    - pcmk_resource_t*
    - gpointer
    constantsTouched: []
    func_position:
      end: 201
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 201
    functionName: recursive_clear_unique
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - g_list_foreach
    - pcmk__insert_meta
    - pcmk__clear_rsc_flags
    linkageType: ''
    returnType: void
    signature: 'static void recursive_clear_unique(pcmk_resource_t *rsc, gpointer
      user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:417,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/native.c:417,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 423
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 423
    functionName: native_displayable_role
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pe__const_top_resource
    linkageType: ''
    returnType: enum rsc_role_e
    signature: 'static enum rsc_role_e native_displayable_role(const pcmk_resource_t
      *rsc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/native.c:702,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/native.c:704,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pengine/native.c:702,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:706,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/native.c:704,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/native.c:708,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/native.c:711,1
    - Dst: pcmk__native_output_string
      Src: /src/pacemaker/lib/pengine/native.c:715,1
    - Dst: g_free
      Src: /src/pacemaker/lib/pengine/native.c:719,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 5
    argNames:
    - out
    - rsc
    - name
    - node
    - show_opts
    argTypes:
    - pcmk__output_t*
    - pcmk_resource_t*
    - char*
    - pcmk_node_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 723
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 723
    functionName: pe__common_output_text
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - crm_is_true
    - g_hash_table_lookup
    - pcmk__native_output_string
    - pcmk_is_set
    - g_free
    - pcmk__assert
    - crm_trace
    - pcmk__is_primitive
    linkageType: ''
    returnType: int
    signature: 'int pe__common_output_text(pcmk__output_t *out, const pcmk_resource_t
      *rsc, const char *name, const pcmk_node_t *node, uint32_t show_opts) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/native.c:845,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/native.c:847,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/native.c:846,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pengine/native.c:850,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/native.c:848,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/native.c:852,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pengine/native.c:852,1
    - Dst: pe__common_output_text
      Src: /src/pacemaker/lib/pengine/native.c:862,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/native.c:862,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 863
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 863
    functionName: pe__resource_text
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - va_arg
    - pe__common_output_text
    - rsc_printable_id
    - pcmk__assert
    - pcmk__is_primitive
    - pcmk__current_node
    linkageType: ''
    returnType: int
    signature: 'int pe__resource_text(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uber_parent
      Src: /src/pacemaker/lib/pengine/native.c:206,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/pengine/native.c:208,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/native.c:210,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/native.c:207,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:213,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:214,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pengine/native.c:215,1
    - Dst: pe__force_anon
      Src: /src/pacemaker/lib/pengine/native.c:222,1
    - Dst: recursive_clear_unique
      Src: /src/pacemaker/lib/pengine/native.c:229,1
    - Dst: recursive_clear_unique
      Src: /src/pacemaker/lib/pengine/native.c:230,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:232,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:233,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/native.c:235,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 241
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 241
    functionName: native_unpack
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - recursive_clear_unique
    - pcmk__rsc_trace
    - pe__force_anon
    - pcmk__is_clone
    - pcmk_is_set
    - crm_element_value
    - pcmk__config_err
    - uber_parent
    - pcmk_get_ra_caps
    linkageType: ''
    returnType: bool
    signature: 'bool native_unpack(pcmk_resource_t *rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: native_pending_state
      Src: /src/pacemaker/lib/pengine/native.c:431,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pengine/native.c:434,1
    - Dst: native_displayable_role
      Src: /src/pacemaker/lib/pengine/native.c:434,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - rsc
    - print_pending
    argTypes:
    - pcmk_resource_t*
    - bool
    constantsTouched: []
    func_position:
      end: 437
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 437
    functionName: native_displayable_state
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - native_displayable_role
    - pcmk_role_text
    - native_pending_state
    linkageType: ''
    returnType: char*
    signature: 'static const char *native_displayable_state(const pcmk_resource_t
      *rsc, bool print_pending) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/native.c:868,1
    - Dst: common_free
      Src: /src/pacemaker/lib/pengine/native.c:869,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 870
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 870
    functionName: native_free
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - common_free
    linkageType: ''
    returnType: void
    signature: 'void native_free(pcmk_resource_t * rsc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pengine/native.c:30,1
    - Dst: pe__find_active_requires
      Src: /src/pacemaker/lib/pengine/native.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: is_multiply_active
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - pe__find_active_requires
    - pcmk__is_primitive
    linkageType: ''
    returnType: bool
    signature: 'static bool is_multiply_active(const pcmk_resource_t *rsc) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:912,1
    - Dst: g_list_copy
      Src: /src/pacemaker/lib/pengine/native.c:913,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:915,1
    - Dst: pe_find_node_id
      Src: /src/pacemaker/lib/pengine/native.c:917,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/native.c:918,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:920,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/native.c:922,1
    - Dst: pe_find_node_id
      Src: /src/pacemaker/lib/pengine/native.c:937,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/native.c:938,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/native.c:943,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 43
    argCount: 3
    argNames:
    - rsc
    - list
    - target
    argTypes:
    - pcmk_resource_t*
    - GList**
    - uint32_t
    constantsTouched: []
    func_position:
      end: 945
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 945
    functionName: native_location
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_list_free
    - pe_find_node_id
    - g_list_copy
    - pcmk_is_set
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'pcmk_node_t *native_location(const pcmk_resource_t *rsc, GList **list,
      uint32_t target) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/native.c:1154,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pengine/native.c:1154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1156
      start: 1151
    functionDepth: 0
    functionLinenumber: 1151
    functionLinenumberEnd: 1156
    functionName: pe__primitive_max_per_node
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__is_primitive
    linkageType: ''
    returnType: unsigned int
    signature: 'unsigned int pe__primitive_max_per_node(const pcmk_resource_t *rsc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/native.c:246,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pengine/native.c:255,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/native.c:247,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:249,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:260,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pengine/native.c:262,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 3
    argNames:
    - rsc
    - node
    - flags
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - int
    constantsTouched: []
    func_position:
      end: 266
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 266
    functionName: rsc_is_on_node
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - pcmk__node_name
    - pcmk_is_set
    - pcmk__rsc_trace
    - pcmk__same_node
    linkageType: ''
    returnType: bool
    signature: 'static bool rsc_is_on_node(pcmk_resource_t *rsc, const pcmk_node_t
      *node, int flags) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/native.c:358,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/native.c:370,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/native.c:366,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/native.c:375,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/native.c:362,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/native.c:379,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 385
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 385
    functionName: native_pending_state
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: char*
    signature: 'static const char *native_pending_state(const pcmk_resource_t *rsc) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/native.c:275,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pengine/native.c:280,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/native.c:280,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/native.c:278,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:277,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/native.c:283,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/native.c:283,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/native.c:287,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:290,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/native.c:291,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:296,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/native.c:297,1
    - Dst: rsc_is_on_node
      Src: /src/pacemaker/lib/pengine/native.c:301,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:295,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/native.c:294,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 49
    argCount: 4
    argNames:
    - rsc
    - id
    - on_node
    - flags
    argTypes:
    - pcmk_resource_t*
    - char*
    - pcmk_node_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 321
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 321
    functionName: native_find_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - rsc_is_on_node
    - strcmp
    - pcmk__str_eq
    - pcmk__is_clone
    - pcmk_is_set
    - pe__const_top_resource
    - pcmk__xe_id
    - pe_base_name_eq
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'pcmk_resource_t *native_find_rsc(pcmk_resource_t *rsc, const char
      *id, const pcmk_node_t *on_node, uint32_t flags) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/native.c:392,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/native.c:402,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 409
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 409
    functionName: native_pending_action
    functionSourceFile: /src/pacemaker/lib/pengine/native.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: char*
    signature: 'static const char *native_pending_action(const pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/pengine/rules_compat.c:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 4
    argNames:
    - rule
    - node_hash
    - role
    - now
    argTypes:
    - xmlNode*
    - GHashTable*
    - enum rsc_role_e
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: test_rule
    functionSourceFile: /src/pacemaker/lib/pengine/rules_compat.c
    functionUses: []
    functionsReached:
    - pcmk_evaluate_rule
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean test_rule(xmlNode * rule, GHashTable * node_hash, enum rsc_role_e
      role, crm_time_t * now) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pe_eval_nvpairs
      Src: /src/pacemaker/lib/pengine/rules_compat.c:115,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 9
    argNames:
    - top
    - xml_obj
    - set_name
    - node_hash
    - hash
    - always_first
    - overwrite
    - now
    - next_change
    argTypes:
    - xmlNode*
    - xmlNode*
    - char*
    - GHashTable*
    - GHashTable*
    - char*
    - gboolean
    - crm_time_t*
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 117
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 117
    functionName: pe_unpack_nvpairs
    functionSourceFile: /src/pacemaker/lib/pengine/rules_compat.c
    functionUses: []
    functionsReached:
    - pe_eval_nvpairs
    linkageType: ''
    returnType: void
    signature: 'void pe_unpack_nvpairs(xmlNode *top, const xmlNode *xml_obj, const
      char *set_name, GHashTable *node_hash, GHashTable *hash, const char *always_first,
      gboolean overwrite, crm_time_t *now, crm_time_t *next_change) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - new
    - old
    argTypes:
    - pcmk_rule_input_t*
    - pe_rule_eval_data_t*
    constantsTouched: []
    func_position:
      end: 75
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 75
    functionName: map_rule_input
    functionSourceFile: /src/pacemaker/lib/pengine/rules_compat.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void map_rule_input(pcmk_rule_input_t *new, const pe_rule_eval_data_t
      *old) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_dereference_children
      Src: /src/pacemaker/lib/pengine/rules_compat.c:83,1
    - Dst: map_rule_input
      Src: /src/pacemaker/lib/pengine/rules_compat.c:93,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/rules_compat.c:97,1
    - Dst: g_list_sort_with_data
      Src: /src/pacemaker/lib/pengine/rules_compat.c:95,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pengine/rules_compat.c:96,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 8
    argCount: 8
    argNames:
    - top
    - xml_obj
    - set_name
    - rule_data
    - hash
    - always_first
    - overwrite
    - next_change
    argTypes:
    - xmlNode*
    - xmlNode*
    - char*
    - pe_rule_eval_data_t*
    - GHashTable*
    - char*
    - gboolean
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 99
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 99
    functionName: pe_eval_nvpairs
    functionSourceFile: /src/pacemaker/lib/pengine/rules_compat.c
    functionUses: []
    functionsReached:
    - g_list_sort_with_data
    - g_list_free
    - g_list_foreach
    - map_rule_input
    - pcmk__xe_dereference_children
    linkageType: ''
    returnType: void
    signature: 'void pe_eval_nvpairs(xmlNode *top, const xmlNode *xml_obj, const char
      *set_name, const pe_rule_eval_data_t *rule_data, GHashTable *hash, const char
      *always_first, gboolean overwrite, crm_time_t *next_change) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: inactive_resources
    functionSourceFile: /src/pacemaker/lib/pengine/group.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int inactive_resources(pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/group.c:62,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/lib/pengine/group.c:62,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/pengine/group.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - group
    - flags
    argTypes:
    - pcmk_resource_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: pe__group_flag_is_set
    functionSourceFile: /src/pacemaker/lib/pengine/group.c
    functionUses: []
    functionsReached:
    - pcmk__is_group
    - CRM_CHECK
    - pcmk_all_flags_set
    linkageType: ''
    returnType: bool
    signature: 'bool pe__group_flag_is_set(const pcmk_resource_t *group, uint32_t
      flags) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__list_of_1
      Src: /src/pacemaker/lib/pengine/group.c:159,1
    - Dst: g_list_first
      Src: /src/pacemaker/lib/pengine/group.c:160,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/group.c:160,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/group.c:163,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 5
    argNames:
    - rsc
    - child
    - parent_passes
    - only_rsc
    - show_opts
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - gboolean
    - GList*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 180
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 180
    functionName: skip_child_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/group.c
    functionUses: []
    functionsReached:
    - g_list_first
    - pcmk_is_set
    - pcmk__str_eq
    - pcmk__list_of_1
    linkageType: ''
    returnType: bool
    signature: 'static bool skip_child_rsc(pcmk_resource_t *rsc, pcmk_resource_t *child,
      gboolean parent_passes, GList *only_rsc, uint32_t show_opts) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - rsc
    - all
    argTypes:
    - pcmk_resource_t*
    - bool
    constantsTouched: []
    func_position:
      end: 257
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 257
    functionName: group_active
    functionSourceFile: /src/pacemaker/lib/pengine/group.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool group_active(const pcmk_resource_t *rsc, bool all) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pe__name_and_nvpairs_xml
      Src: /src/pacemaker/lib/pengine/group.c:299,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/group.c:273,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/group.c:265,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/group.c:273,1
    - Dst: pe__resource_description
      Src: /src/pacemaker/lib/pengine/group.c:276,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/pengine/group.c:292,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pengine/group.c:297,1
    - Dst: skip_child_rsc
      Src: /src/pacemaker/lib/pengine/group.c:287,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/group.c:292,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/group.c:308,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pengine/group.c:316,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/group.c:266,1
    - Dst: strstr
      Src: /src/pacemaker/lib/pengine/group.c:274,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/group.c:274,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/group.c:293,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/group.c:264,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/group.c:267,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/group.c:295,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/group.c:307,1
    - Dst: pe__resource_is_disabled
      Src: /src/pacemaker/lib/pengine/group.c:297,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 320
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 320
    functionName: pe__group_xml
    functionSourceFile: /src/pacemaker/lib/pengine/group.c
    functionUses: []
    functionsReached:
    - strstr
    - pcmk__itoa
    - pcmk__output_xml_pop_parent
    - pe__name_and_nvpairs_xml
    - skip_child_rsc
    - pcmk__btoa
    - g_list_length
    - va_arg
    - free
    - rsc_printable_id
    - pe__resource_is_disabled
    - pcmk__assert
    - pcmk__str_in_list
    - pcmk__flag_text
    - pe__resource_description
    linkageType: ''
    returnType: int
    signature: 'int pe__group_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pe__resource_description
      Src: /src/pacemaker/lib/pengine/group.c:341,1
    - Dst: pe__rscs_brief_output
      Src: /src/pacemaker/lib/pengine/group.c:353,1
    - Dst: group_header
      Src: /src/pacemaker/lib/pengine/group.c:368,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pengine/group.c:375,1
    - Dst: pe__filter_rsc_list
      Src: /src/pacemaker/lib/pengine/group.c:348,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/group.c:327,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/group.c:329,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/group.c:356,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/group.c:335,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/group.c:330,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/group.c:328,1
    - Dst: strstr
      Src: /src/pacemaker/lib/pengine/group.c:336,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/group.c:336,1
    - Dst: group_header
      Src: /src/pacemaker/lib/pengine/group.c:351,1
    - Dst: inactive_resources
      Src: /src/pacemaker/lib/pengine/group.c:351,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/group.c:352,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/group.c:369,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/group.c:335,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/group.c:347,1
    - Dst: skip_child_rsc
      Src: /src/pacemaker/lib/pengine/group.c:364,1
    - Dst: inactive_resources
      Src: /src/pacemaker/lib/pengine/group.c:368,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 378
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 378
    functionName: pe__group_default
    functionSourceFile: /src/pacemaker/lib/pengine/group.c
    functionUses: []
    functionsReached:
    - group_header
    - strstr
    - g_list_free
    - skip_child_rsc
    - inactive_resources
    - PCMK__OUTPUT_LIST_FOOTER
    - va_arg
    - pcmk_is_set
    - rsc_printable_id
    - pe__filter_rsc_list
    - pe__rscs_brief_output
    - pcmk__str_in_list
    - pe__resource_description
    linkageType: ''
    returnType: int
    signature: 'int pe__group_default(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/group.c:420,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pengine/group.c:420,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - rsc
    - current
    argTypes:
    - pcmk_resource_t*
    - bool
    constantsTouched: []
    func_position:
      end: 422
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 422
    functionName: group_resource_state
    functionSourceFile: /src/pacemaker/lib/pengine/group.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk_role_text
    linkageType: ''
    returnType: enum rsc_role_e
    signature: 'enum rsc_role_e group_resource_state(const pcmk_resource_t *rsc, bool
      current) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pengine/group.c:125,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pengine/group.c:127,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/pengine/group.c:131,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/lib/pengine/group.c:126,1
    - Dst: pe__resource_is_disabled
      Src: /src/pacemaker/lib/pengine/group.c:130,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/group.c:134,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/pengine/group.c:135,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/group.c:137,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/pengine/group.c:138,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/group.c:142,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/group.c:146,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/group.c:148,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 6
    argNames:
    - out
    - rc
    - rsc
    - n_inactive
    - show_inactive
    - desc
    argTypes:
    - pcmk__output_t*
    - int*
    - pcmk_resource_t*
    - int
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 153
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 153
    functionName: group_header
    functionSourceFile: /src/pacemaker/lib/pengine/group.c
    functionUses: []
    functionsReached:
    - pcmk__add_separated_word
    - g_string_append_printf
    - pcmk__plural_s
    - pcmk_is_set
    - g_string_sized_new
    - pe__resource_is_disabled
    - PCMK__OUTPUT_LIST_HEADER
    - g_string_free
    linkageType: ''
    returnType: void
    signature: 'static void group_header(pcmk__output_t *out, int *rc, const pcmk_resource_t
      *rsc, int n_inactive, bool show_inactive, const char *desc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/group.c:190,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/group.c:192,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/group.c:202,1
    - Dst: set_group_flag
      Src: /src/pacemaker/lib/pengine/group.c:197,1
    - Dst: set_group_flag
      Src: /src/pacemaker/lib/pengine/group.c:199,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/group.c:204,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/group.c:207,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/group.c:211,1
    - Dst: pe__unpack_resource
      Src: /src/pacemaker/lib/pengine/group.c:212,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/group.c:217,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/group.c:219,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/group.c:224,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/group.c:226,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 231
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 231
    functionName: group_unpack
    functionSourceFile: /src/pacemaker/lib/pengine/group.c
    functionUses: []
    functionsReached:
    - g_list_append
    - pcmk__rsc_trace
    - pcmk__xe_first_child
    - pcmk__assert_alloc
    - crm_xml_add
    - set_group_flag
    - free
    - pcmk__xe_next
    - crm_element_value
    - pcmk__config_err
    - pe__unpack_resource
    linkageType: ''
    returnType: bool
    signature: 'bool group_unpack(pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/group.c:383,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/group.c:393,1
    - Dst: pcmk__free_resource
      Src: /src/pacemaker/lib/pengine/group.c:394,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/group.c:385,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/group.c:392,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/group.c:397,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/group.c:398,1
    - Dst: common_free
      Src: /src/pacemaker/lib/pengine/group.c:400,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 401
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 401
    functionName: group_free
    functionSourceFile: /src/pacemaker/lib/pengine/group.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__rsc_trace
    - g_list_free
    - pcmk__free_resource
    - common_free
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'void group_free(pcmk_resource_t * rsc) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/group.c:431,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/group.c:435,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/group.c:435,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/group.c:431,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/group.c:431,1
    - Dst: strstr
      Src: /src/pacemaker/lib/pengine/group.c:437,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/group.c:437,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 3
    argNames:
    - rsc
    - only_rsc
    - check_parent
    argTypes:
    - pcmk_resource_t*
    - GList*
    - bool
    constantsTouched: []
    func_position:
      end: 454
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 454
    functionName: pe__group_is_filtered
    functionSourceFile: /src/pacemaker/lib/pengine/group.c
    functionUses: []
    functionsReached:
    - pcmk__str_in_list
    - strstr
    - rsc_printable_id
    - pe__const_top_resource
    linkageType: ''
    returnType: bool
    signature: 'bool pe__group_is_filtered(const pcmk_resource_t *rsc, const GList
      *only_rsc, bool check_parent) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/group.c:41,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/lib/pengine/group.c:41,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - group
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: pe__last_group_member
    functionSourceFile: /src/pacemaker/lib/pengine/group.c
    functionUses: []
    functionsReached:
    - pcmk__is_group
    - CRM_CHECK
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'pcmk_resource_t *pe__last_group_member(const pcmk_resource_t *group) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/group.c:83,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/pengine/group.c:86,1
    - Dst: pcmk__warn_once
      Src: /src/pacemaker/lib/pengine/group.c:93,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 4
    argNames:
    - group
    - option
    - flag
    - wo_bit
    argTypes:
    - pcmk_resource_t*
    - char*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 98
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 98
    functionName: set_group_flag
    functionSourceFile: /src/pacemaker/lib/pengine/group.c
    functionUses: []
    functionsReached:
    - crm_str_to_boolean
    - pcmk__warn_once
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: 'static void set_group_flag(pcmk_resource_t *group, const char *option,
      uint32_t flag, uint32_t wo_bit) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/group.c:467,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/lib/pengine/group.c:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 469
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 469
    functionName: pe__group_max_per_node
    functionSourceFile: /src/pacemaker/lib/pengine/group.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__is_group
    linkageType: ''
    returnType: unsigned int
    signature: 'unsigned int pe__group_max_per_node(const pcmk_resource_t *rsc) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 321
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 321
    functionName: pe__cmp_rsc_priority
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gint
    signature: 'gint pe__cmp_rsc_priority(gconstpointer a, gconstpointer b) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/utils.c:329,1
    - Dst: pe__copy_node
      Src: /src/pacemaker/lib/pengine/utils.c:350,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/utils.c:348,1
    - Dst: resource_node_score
      Src: /src/pacemaker/lib/pengine/utils.c:344,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/utils.c:331,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/utils.c:351,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pengine/utils.c:354,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/utils.c:355,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pengine/utils.c:357,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/utils.c:358,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pengine/utils.c:359,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 4
    argNames:
    - rsc
    - node
    - score
    - tag
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 360
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 360
    functionName: resource_node_score
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - g_hash_table_lookup
    - pcmk__add_scores
    - pe__copy_node
    - pcmk__str_eq
    - pcmk__node_name
    - pcmk_is_set
    - resource_node_score
    - pcmk_readable_score
    - g_hash_table_insert
    linkageType: ''
    returnType: void
    signature: 'static void resource_node_score(pcmk_resource_t *rsc, const pcmk_node_t
      *node, int score, const char *tag) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/utils.c:596,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pengine/utils.c:613,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pengine/utils.c:619,1
    - Dst: pe_fence_op
      Src: /src/pacemaker/lib/pengine/utils.c:609,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/utils.c:601,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pengine/utils.c:620,1
    - Dst: trigger_unfencing
      Src: /src/pacemaker/lib/pengine/utils.c:622,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 28
    argCount: 5
    argNames:
    - rsc
    - node
    - reason
    - dependency
    - scheduler
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - char*
    - pcmk_action_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 626
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 626
    functionName: trigger_unfencing
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - order_actions
    - pcmk_is_set
    - trigger_unfencing
    - pe_fence_op
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void trigger_unfencing(pcmk_resource_t *rsc, pcmk_node_t *node, const
      char *reason, pcmk_action_t *dependency, pcmk_scheduler_t *scheduler) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: resource_node_score
      Src: /src/pacemaker/lib/pengine/utils.c:367,1
    - Dst: resource_node_score
      Src: /src/pacemaker/lib/pengine/utils.c:384,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pengine/utils.c:382,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pengine/utils.c:383,1
    - Dst: resource_node_score
      Src: /src/pacemaker/lib/pengine/utils.c:375,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/utils.c:392,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/utils.c:393,1
    - Dst: pcmk__free_node_copy
      Src: /src/pacemaker/lib/pengine/utils.c:394,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 5
    argNames:
    - rsc
    - node
    - score
    - tag
    - scheduler
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - int
    - char*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 397
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 397
    functionName: resource_location
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pcmk__free_node_copy
    - pcmk__node_name
    - resource_node_score
    - crm_info
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void resource_location(pcmk_resource_t *rsc, const pcmk_node_t *node,
      int score, const char *tag, pcmk_scheduler_t *scheduler) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/utils.c:255,1
    - Dst: pe__show_node_scores_as
      Src: /src/pacemaker/lib/pengine/utils.c:280,1
    - Dst: pe__log_node_weights
      Src: /src/pacemaker/lib/pengine/utils.c:265,1
    - Dst: pe__output_node_weights
      Src: /src/pacemaker/lib/pengine/utils.c:267,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 17
    argCount: 8
    argNames:
    - file
    - function
    - line
    - to_log
    - rsc
    - comment
    - nodes
    - scheduler
    argTypes:
    - char*
    - char*
    - int
    - bool
    - pcmk_resource_t*
    - char*
    - GHashTable*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 283
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 283
    functionName: pe__show_node_scores_as
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pe__output_node_weights
    - pcmk_is_set
    - pe__show_node_scores_as
    - pe__log_node_weights
    linkageType: ''
    returnType: void
    signature: 'void pe__show_node_scores_as(const char *file, const char *function,
      int line, bool to_log, const pcmk_resource_t *rsc, const char *comment, GHashTable
      *nodes, pcmk_scheduler_t *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/utils.c:548,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/utils.c:551,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 552
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 552
    functionName: rsc_printable_id
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk__xe_id
    linkageType: ''
    returnType: char*
    signature: 'const char *rsc_printable_id(const pcmk_resource_t *rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/utils.c:670,1
    - Dst: crm_time_new_undefined
      Src: /src/pacemaker/lib/pengine/utils.c:681,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/utils.c:674,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/utils.c:675,1
    - Dst: pcmk_unpack_nvpair_blocks
      Src: /src/pacemaker/lib/pengine/utils.c:682,1
    - Dst: crm_time_is_defined
      Src: /src/pacemaker/lib/pengine/utils.c:684,1
    - Dst: crm_time_get_seconds_since_epoch
      Src: /src/pacemaker/lib/pengine/utils.c:685,1
    - Dst: pcmk__update_recheck_time
      Src: /src/pacemaker/lib/pengine/utils.c:687,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/pengine/utils.c:689,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 6
    argNames:
    - xml_obj
    - set_name
    - rule_input
    - hash
    - always_first
    - scheduler
    argTypes:
    - xmlNode*
    - char*
    - pcmk_rule_input_t*
    - GHashTable*
    - char*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 690
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 690
    functionName: pe__unpack_dataset_nvpairs
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_time_get_seconds_since_epoch
    - crm_time_new_undefined
    - strcmp
    - pcmk_unpack_nvpair_blocks
    - pcmk__update_recheck_time
    - crm_time_is_defined
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'void pe__unpack_dataset_nvpairs(const xmlNode *xml_obj, const char
      *set_name, const pcmk_rule_input_t *rule_input, GHashTable *hash, const char
      *always_first, pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__list_of_1
      Src: /src/pacemaker/lib/pengine/utils.c:726,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pengine/utils.c:727,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - rsc
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 729
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 729
    functionName: pe__rsc_running_on_only
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pcmk__list_of_1
    - pcmk__same_node
    linkageType: ''
    returnType: bool
    signature: 'bool pe__rsc_running_on_only(const pcmk_resource_t *rsc, const pcmk_node_t
      *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pengine/utils.c:557,1
    - Dst: pe__clear_resource_flags_recursive
      Src: /src/pacemaker/lib/pengine/utils.c:562,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - rsc
    - flags
    argTypes:
    - pcmk_resource_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 565
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 565
    functionName: pe__clear_resource_flags_recursive
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pe__clear_resource_flags_recursive
    - pcmk__clear_rsc_flags
    linkageType: ''
    returnType: void
    signature: 'void pe__clear_resource_flags_recursive(pcmk_resource_t *rsc, uint64_t
      flags) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/utils.c:697,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/utils.c:698,1
    - Dst: pcmk_parse_role
      Src: /src/pacemaker/lib/pengine/utils.c:702,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/utils.c:706,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/utils.c:706,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 712
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 712
    functionName: pe__resource_is_disabled
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - g_hash_table_lookup
    - pcmk_is_set
    - pcmk_parse_role
    - pe__const_top_resource
    linkageType: ''
    returnType: bool
    signature: 'bool pe__resource_is_disabled(const pcmk_resource_t *rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/utils.c:737,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 2
    argNames:
    - rsc
    - node_list
    argTypes:
    - pcmk_resource_t*
    - GList*
    constantsTouched: []
    func_position:
      end: 744
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 744
    functionName: pe__rsc_running_on_any
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pcmk__str_in_list
    linkageType: ''
    returnType: bool
    signature: 'bool pe__rsc_running_on_any(pcmk_resource_t *rsc, GList *node_list) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/utils.c:846,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/utils.c:856,1
    - Dst: pe__clone_child_id
      Src: /src/pacemaker/lib/pengine/utils.c:851,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/utils.c:854,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pengine/utils.c:850,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/pengine/utils.c:862,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/utils.c:869,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/utils.c:870,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/pengine/utils.c:874,1
    - Dst: pcmk__xe_history_key
      Src: /src/pacemaker/lib/pengine/utils.c:874,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/utils.c:879,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/utils.c:880,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/utils.c:884,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 2
    argNames:
    - rsc
    - name
    argTypes:
    - pcmk_resource_t*
    - char*
    constantsTouched: []
    func_position:
      end: 889
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 889
    functionName: pe__failed_probe_for_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - pe__clone_child_id
    - pcmk__str_eq
    - pcmk__is_clone
    - free
    - pcmk__xe_next
    - pe__const_top_resource
    - crm_element_value
    - pcmk__xe_history_key
    - pcmk_xe_mask_probe_failure
    - parse_op_key
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pe__failed_probe_for_rsc(const pcmk_resource_t *rsc, const
      char *name) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/pengine/utils.c:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 165
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 165
    functionName: pe__cmp_node_name
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pcmk__numeric_strcasecmp
    linkageType: ''
    returnType: gint
    signature: 'gint pe__cmp_node_name(gconstpointer a, gconstpointer b) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/utils.c:403,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/utils.c:412,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/utils.c:408,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/utils.c:414,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/utils.c:406,1
    - Dst: pcmk_parse_role
      Src: /src/pacemaker/lib/pengine/utils.c:421,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/utils.c:423,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/utils.c:428,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/utils.c:428,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/utils.c:436,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - rsc
    - role
    argTypes:
    - pcmk_resource_t*
    - enum rsc_role_e*
    constantsTouched: []
    func_position:
      end: 445
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 445
    functionName: get_target_role
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__config_warn
    - g_hash_table_lookup
    - pcmk__str_eq
    - pcmk_is_set
    - pcmk_parse_role
    - pe__const_top_resource
    - pcmk__config_err
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean get_target_role(const pcmk_resource_t *rsc, enum rsc_role_e
      *role) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/utils.c:501,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/utils.c:503,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/utils.c:504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 505
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 505
    functionName: destroy_ticket
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - free
    linkageType: ''
    returnType: void
    signature: 'void destroy_ticket(gpointer data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/utils.c:780,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/utils.c:793,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/utils.c:787,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/utils.c:785,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/utils.c:785,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/utils.c:793,1
    - Dst: pe__unames_with_tag
      Src: /src/pacemaker/lib/pengine/utils.c:801,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - scheduler
    - s
    argTypes:
    - pcmk_scheduler_t*
    - char*
    constantsTouched: []
    func_position:
      end: 806
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 806
    functionName: pe__build_node_name_list
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pe__unames_with_tag
    - pcmk__str_eq
    - pcmk_find_node
    - g_list_prepend
    - strdup
    linkageType: ''
    returnType: GList*
    signature: 'GList *pe__build_node_name_list(pcmk_scheduler_t *scheduler, const
      char *s) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/utils.c:462,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/utils.c:483,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/utils.c:466,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/utils.c:479,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pengine/utils.c:474,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/utils.c:486,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/utils.c:490,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - first
    - then
    - flags
    argTypes:
    - pcmk_action_t*
    - pcmk_action_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 493
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 493
    functionName: order_actions
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - pcmk__assert_alloc
    - g_list_prepend
    - pcmk__assert
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean order_actions(pcmk_action_t *first, pcmk_action_t *then,
      uint32_t flags) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pengine/utils.c:512,1
    - Dst: pcmk__sched_err
      Src: /src/pacemaker/lib/pengine/utils.c:527,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/utils.c:521,1
    - Dst: calloc
      Src: /src/pacemaker/lib/pengine/utils.c:525,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/utils.c:518,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/utils.c:532,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/utils.c:534,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/utils.c:536,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/utils.c:538,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/pengine/utils.c:539,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - ticket_id
    - scheduler
    argTypes:
    - char*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 543
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 543
    functionName: ticket_new
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - calloc
    - pcmk__str_empty
    - pcmk__strkey_table
    - pcmk__str_copy
    - strdup
    - g_hash_table_insert
    - pcmk__sched_err
    - crm_trace
    linkageType: ''
    returnType: pcmk__ticket_t*
    signature: 'pcmk__ticket_t *ticket_new(const char *ticket_id, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/utils.c:813,1
    - Dst: strstr
      Src: /src/pacemaker/lib/pengine/utils.c:826,1
    - Dst: pe_find_resource_with_flags
      Src: /src/pacemaker/lib/pengine/utils.c:818,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/utils.c:814,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/utils.c:814,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/utils.c:827,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/utils.c:827,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/utils.c:829,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/utils.c:829,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/utils.c:829,1
    - Dst: pe__rscs_with_tag
      Src: /src/pacemaker/lib/pengine/utils.c:836,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - scheduler
    - s
    argTypes:
    - pcmk_scheduler_t*
    - char*
    constantsTouched: []
    func_position:
      end: 841
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 841
    functionName: pe__build_rsc_list
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pe_find_resource_with_flags
    - pcmk__str_eq
    - pe__rscs_with_tag
    - g_list_prepend
    - rsc_printable_id
    - strdup
    - strstr
    linkageType: ''
    returnType: GList*
    signature: 'GList *pe__build_rsc_list(pcmk_scheduler_t *scheduler, const char
      *s) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/utils.c:121,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/utils.c:126,1
    - Dst: pe__copy_node
      Src: /src/pacemaker/lib/pengine/utils.c:125,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - list
    argTypes:
    - GList*
    constantsTouched: []
    func_position:
      end: 129
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 129
    functionName: pe__node_list2table
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - g_hash_table_insert
    - pcmk__strkey_table
    - pe__copy_node
    linkageType: ''
    returnType: GHashTable*
    signature: 'GHashTable *pe__node_list2table(const GList *list) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/utils.c:93,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/utils.c:96,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/utils.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - this_node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: pe__copy_node
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__assert_alloc
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'pcmk_node_t *pe__copy_node(const pcmk_node_t *this_node) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pengine/utils.c:36,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/utils.c:52,1
    - Dst: pe_can_fence
      Src: /src/pacemaker/lib/pengine/utils.c:46,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/utils.c:58,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/utils.c:55,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pengine/utils.c:68,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/utils.c:69,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/utils.c:73,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/utils.c:73,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 2
    argNames:
    - scheduler
    - node
    argTypes:
    - pcmk_scheduler_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 75
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 75
    functionName: pe_can_fence
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - crm_notice
    - pcmk_is_set
    - pcmk__node_name
    - pcmk__is_guest_or_bundle_node
    - pe_can_fence
    - crm_trace
    linkageType: ''
    returnType: bool
    signature: 'bool pe_can_fence(const pcmk_scheduler_t *scheduler, const pcmk_node_t
      *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__if_tracing
      Src: /src/pacemaker/lib/pengine/utils.c:215,1
    - Dst: qb_log_from_external_source
      Src: /src/pacemaker/lib/pengine/utils.c:220,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pengine/utils.c:217,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/utils.c:224,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pengine/utils.c:218,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pengine/utils.c:225,1
    - Dst: qb_log_from_external_source
      Src: /src/pacemaker/lib/pengine/utils.c:227,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/utils.c:229,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pengine/utils.c:230,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 6
    argNames:
    - file
    - function
    - line
    - rsc
    - comment
    - nodes
    argTypes:
    - char*
    - char*
    - int
    - pcmk_resource_t*
    - char*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 233
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 233
    functionName: pe__log_node_weights
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pcmk__if_tracing
    - qb_log_from_external_source
    - pcmk__node_name
    - pcmk_readable_score
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void pe__log_node_weights(const char *file, const char *function,
      int line, const pcmk_resource_t *rsc, const char *comment, GHashTable *nodes) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pe__clear_resource_flags_recursive
      Src: /src/pacemaker/lib/pengine/utils.c:575,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - scheduler
    - flag
    argTypes:
    - pcmk_scheduler_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 577
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 577
    functionName: pe__clear_resource_flags_on_all
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pe__clear_resource_flags_recursive
    linkageType: ''
    returnType: void
    signature: 'void pe__clear_resource_flags_on_all(pcmk_scheduler_t *scheduler,
      uint64_t flag) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pe__rsc_running_on_any
      Src: /src/pacemaker/lib/pengine/utils.c:750,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - rsc
    - only_node
    argTypes:
    - pcmk_resource_t*
    - GList*
    constantsTouched: []
    func_position:
      end: 751
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 751
    functionName: pcmk__rsc_filtered_by_node
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pe__rsc_running_on_any
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__rsc_filtered_by_node(pcmk_resource_t *rsc, GList *only_node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pengine/utils.c:582,1
    - Dst: pe__set_resource_flags_recursive
      Src: /src/pacemaker/lib/pengine/utils.c:587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - rsc
    - flags
    argTypes:
    - pcmk_resource_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 590
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 590
    functionName: pe__set_resource_flags_recursive
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pcmk__set_rsc_flags
    - pe__set_resource_flags_recursive
    linkageType: ''
    returnType: void
    signature: 'void pe__set_resource_flags_recursive(pcmk_resource_t *rsc, uint64_t
      flags) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/utils.c:764,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/utils.c:766,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/utils.c:766,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/utils.c:764,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/utils.c:768,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 2
    argNames:
    - rscs
    - filter
    argTypes:
    - GList*
    - GList*
    constantsTouched: []
    func_position:
      end: 773
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 773
    functionName: pe__filter_rsc_list
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pcmk__str_in_list
    - g_list_prepend
    - rsc_printable_id
    linkageType: ''
    returnType: GList*
    signature: 'GList *pe__filter_rsc_list(GList *rscs, GList *filter) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pengine/utils.c:183,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pengine/utils.c:190,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/utils.c:192,1
    - Dst: g_hash_table_get_values
      Src: /src/pacemaker/lib/pengine/utils.c:183,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 4
    argNames:
    - rsc
    - comment
    - nodes
    - scheduler
    argTypes:
    - pcmk_resource_t*
    - char*
    - GHashTable*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 193
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 193
    functionName: pe__output_node_weights
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - g_list_free
    - g_list_sort
    - pcmk_readable_score
    - g_hash_table_get_values
    linkageType: ''
    returnType: void
    signature: 'static void pe__output_node_weights(const pcmk_resource_t *rsc, const
      char *comment, GHashTable *nodes, pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__node_attr
      Src: /src/pacemaker/lib/pengine/utils.c:643,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/utils.c:646,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 647
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 647
    functionName: pe__shutdown_requested
    functionSourceFile: /src/pacemaker/lib/pengine/utils.c
    functionUses: []
    functionsReached:
    - pcmk__node_attr
    - pcmk__str_eq
    linkageType: ''
    returnType: bool
    signature: 'bool pe__shutdown_requested(const pcmk_node_t *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_digest.c:54,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_digest.c:61,1
    - Dst: strstr
      Src: /src/pacemaker/lib/pengine/pe_digest.c:56,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/pe_digest.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - a
    - user_data
    argTypes:
    - xmlAttrPtr
    - void*
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: attr_not_in_string
    functionSourceFile: /src/pacemaker/lib/pengine/pe_digest.c
    functionUses: []
    functionsReached:
    - strstr
    - free
    - crm_trace
    - crm_strdup_printf
    linkageType: ''
    returnType: bool
    signature: 'static bool attr_not_in_string(xmlAttrPtr a, void *user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pengine/pe_digest.c:105,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_digest.c:116,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pengine/pe_digest.c:128,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/pengine/pe_digest.c:121,1
    - Dst: pe__add_bundle_remote_name
      Src: /src/pacemaker/lib/pengine/pe_digest.c:110,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pengine/pe_digest.c:132,1
    - Dst: pcmk__find_action_config
      Src: /src/pacemaker/lib/pengine/pe_digest.c:135,1
    - Dst: pcmk__unpack_action_rsc_params
      Src: /src/pacemaker/lib/pengine/pe_digest.c:147,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/pengine/pe_digest.c:149,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pengine/pe_digest.c:152,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pengine/pe_digest.c:158,1
    - Dst: pcmk__filter_op_for_digest
      Src: /src/pacemaker/lib/pengine/pe_digest.c:161,1
    - Dst: pcmk__digest_operation
      Src: /src/pacemaker/lib/pengine/pe_digest.c:163,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/pe_digest.c:153,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/pe_digest.c:159,1
    - Dst: pcmk__unpack_action_meta
      Src: /src/pacemaker/lib/pengine/pe_digest.c:156,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 38
    argCount: 10
    argNames:
    - data
    - rsc
    - node
    - params
    - task
    - interval_ms
    - xml_op
    - op_version
    - overrides
    - scheduler
    argTypes:
    - pcmk__op_digest_t*
    - pcmk_resource_t*
    - pcmk_node_t*
    - GHashTable*
    - char*
    - guint*
    - xmlNode*
    - char*
    - GHashTable*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 164
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 164
    functionName: calculate_main_digest
    functionSourceFile: /src/pacemaker/lib/pengine/pe_digest.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pe__add_bundle_remote_name
    - g_hash_table_foreach
    - g_hash_table_lookup
    - g_hash_table_destroy
    - pcmk__filter_op_for_digest
    - pcmk__unpack_action_meta
    - pcmk__digest_operation
    - pcmk__scan_ll
    - pcmk__unpack_action_rsc_params
    - pcmk__find_action_config
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void calculate_main_digest(pcmk__op_digest_t *data, pcmk_resource_t
      *rsc, const pcmk_node_t *node, GHashTable *params, const char *task, guint *interval_ms,
      const xmlNode *xml_op, const char *op_version, GHashTable *overrides, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_digest.c:266,1
    - Dst: pcmk__xe_remove_matching_attrs
      Src: /src/pacemaker/lib/pengine/pe_digest.c:276,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/pengine/pe_digest.c:271,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_digest.c:274,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_digest.c:280,1
    - Dst: pcmk__digest_operation
      Src: /src/pacemaker/lib/pengine/pe_digest.c:281,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - data
    - xml_op
    - op_version
    argTypes:
    - pcmk__op_digest_t*
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 282
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 282
    functionName: calculate_restart_digest
    functionSourceFile: /src/pacemaker/lib/pengine/pe_digest.c
    functionUses: []
    functionsReached:
    - pcmk__xe_remove_matching_attrs
    - pcmk__digest_operation
    - pcmk__xml_copy
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void calculate_restart_digest(pcmk__op_digest_t *data, const
      xmlNode *xml_op, const char *op_version) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pengine/pe_digest.c:366,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/pe_digest.c:372,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/pe_digest.c:373,1
    - Dst: pe__calculate_digests
      Src: /src/pacemaker/lib/pengine/pe_digest.c:370,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_digest.c:368,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/pe_digest.c:373,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_digest.c:375,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 7
    argNames:
    - rsc
    - task
    - interval_ms
    - node
    - xml_op
    - calc_secure
    - scheduler
    argTypes:
    - pcmk_resource_t*
    - char*
    - guint
    - pcmk_node_t*
    - xmlNode*
    - bool
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 377
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 377
    functionName: rsc_action_digest
    functionSourceFile: /src/pacemaker/lib/pengine/pe_digest.c
    functionUses: []
    functionsReached:
    - strdup
    - g_hash_table_lookup
    - pe__calculate_digests
    - free
    - pcmk__assert
    - pcmk__op_key
    - g_hash_table_insert
    linkageType: ''
    returnType: pcmk__op_digest_t*
    signature: 'static pcmk__op_digest_t *rsc_action_digest(pcmk_resource_t *rsc,
      const char *task, guint interval_ms, pcmk_node_t *node, const xmlNode *xml_op,
      bool calc_secure, pcmk_scheduler_t *scheduler) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_digest.c:460,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_digest.c:406,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_digest.c:405,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_digest.c:404,1
    - Dst: rsc_action_digest
      Src: /src/pacemaker/lib/pengine/pe_digest.c:409,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_digest.c:414,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_digest.c:448,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/pe_digest.c:430,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_digest.c:446,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_digest.c:422,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pengine/pe_digest.c:452,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_digest.c:445,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/pe_digest.c:456,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_digest.c:398,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/pe_digest.c:402,1
    - Dst: crm_element_value_ms
      Src: /src/pacemaker/lib/pengine/pe_digest.c:408,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_digest.c:410,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pengine/pe_digest.c:416,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_digest.c:423,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pengine/pe_digest.c:441,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_digest.c:421,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pengine/pe_digest.c:420,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_digest.c:455,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - rsc
    - xml_op
    - node
    - scheduler
    argTypes:
    - pcmk_resource_t*
    - xmlNode*
    - pcmk_node_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 469
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 469
    functionName: rsc_action_digest_cmp
    functionSourceFile: /src/pacemaker/lib/pengine/pe_digest.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - crm_element_value_ms
    - pcmk__str_eq
    - strcmp
    - pcmk__node_name
    - pcmk_is_set
    - rsc_action_digest
    - crm_element_value
    - pcmk__assert
    - pcmk__readable_interval
    - pcmk__rsc_info
    linkageType: ''
    returnType: pcmk__op_digest_t*
    signature: 'pcmk__op_digest_t *rsc_action_digest_cmp(pcmk_resource_t *rsc, const
      xmlNode *xml_op, pcmk_node_t *node, pcmk_scheduler_t *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_unfencing_summary
      Src: /src/pacemaker/lib/pengine/pe_digest.c:518,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_digest.c:527,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/pe_digest.c:525,1
    - Dst: strstr
      Src: /src/pacemaker/lib/pengine/pe_digest.c:524,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 4
    argNames:
    - rsc_id
    - agent
    - digest_calc
    - node_summary
    argTypes:
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 530
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 530
    functionName: unfencing_digest_matches
    functionSourceFile: /src/pacemaker/lib/pengine/pe_digest.c
    functionUses: []
    functionsReached:
    - free
    - strstr
    - create_unfencing_summary
    - crm_trace
    linkageType: ''
    returnType: bool
    signature: 'static bool unfencing_digest_matches(const char *rsc_id, const char
      *agent, const char *digest_calc, const char *node_summary) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rsc_action_digest
      Src: /src/pacemaker/lib/pengine/pe_digest.c:556,1
    - Dst: pcmk__node_attr
      Src: /src/pacemaker/lib/pengine/pe_digest.c:560,1
    - Dst: unfencing_digest_matches
      Src: /src/pacemaker/lib/pengine/pe_digest.c:577,1
    - Dst: unfencing_digest_matches
      Src: /src/pacemaker/lib/pengine/pe_digest.c:568,1
    - Dst: pcmk__node_attr
      Src: /src/pacemaker/lib/pengine/pe_digest.c:575,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_digest.c:585,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_digest.c:592,1
    - Dst: create_unfencing_summary
      Src: /src/pacemaker/lib/pengine/pe_digest.c:597,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_digest.c:603,1
    - Dst: create_unfencing_summary
      Src: /src/pacemaker/lib/pengine/pe_digest.c:605,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_digest.c:609,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_digest.c:610,1
    - Dst: printf
      Src: /src/pacemaker/lib/pengine/pe_digest.c:608,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_digest.c:602,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 38
    argCount: 4
    argNames:
    - rsc
    - agent
    - node
    - scheduler
    argTypes:
    - pcmk_resource_t*
    - char*
    - pcmk_node_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 614
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 614
    functionName: pe__compare_fencing_digest
    functionSourceFile: /src/pacemaker/lib/pengine/pe_digest.c
    functionUses: []
    functionsReached:
    - pcmk__node_attr
    - create_unfencing_summary
    - pcmk__node_name
    - pcmk_is_set
    - rsc_action_digest
    - free
    - unfencing_digest_matches
    - printf
    linkageType: ''
    returnType: pcmk__op_digest_t*
    signature: 'pcmk__op_digest_t *pe__compare_fencing_digest(pcmk_resource_t *rsc,
      const char *agent, pcmk_node_t *node, pcmk_scheduler_t *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pengine/pe_digest.c:37,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_digest.c:41,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pengine/pe_digest.c:39,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pengine/pe_digest.c:38,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_digest.c:42,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_digest.c:43,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_digest.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: pe__free_digests
    functionSourceFile: /src/pacemaker/lib/pengine/pe_digest.c
    functionUses: []
    functionsReached:
    - free
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'void pe__free_digests(gpointer ptr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/pengine/pe_digest.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - attr
    - user_data
    argTypes:
    - xmlAttrPtr
    - void*
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: is_fence_param
    functionSourceFile: /src/pacemaker/lib/pengine/pe_digest.c
    functionUses: []
    functionsReached:
    - pcmk_stonith_param
    linkageType: ''
    returnType: bool
    signature: 'static bool is_fence_param(xmlAttrPtr attr, void *user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_digest.c:70,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/pe_digest.c:73,1
    - Dst: strstr
      Src: /src/pacemaker/lib/pengine/pe_digest.c:72,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_digest.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - a
    - user_data
    argTypes:
    - xmlAttrPtr
    - void*
    constantsTouched: []
    func_position:
      end: 79
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: attr_in_string
    functionSourceFile: /src/pacemaker/lib/pengine/pe_digest.c
    functionUses: []
    functionsReached:
    - strstr
    - free
    - crm_trace
    - crm_strdup_printf
    linkageType: ''
    returnType: bool
    signature: 'static bool attr_in_string(xmlAttrPtr a, void *user_data) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_digest.c:189,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_digest.c:196,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pengine/pe_digest.c:202,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pengine/pe_digest.c:200,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/pengine/pe_digest.c:191,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pengine/pe_digest.c:205,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/pengine/pe_digest.c:209,1
    - Dst: pcmk__xe_remove_matching_attrs
      Src: /src/pacemaker/lib/pengine/pe_digest.c:213,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_digest.c:217,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/pengine/pe_digest.c:217,1
    - Dst: pcmk__xe_remove_matching_attrs
      Src: /src/pacemaker/lib/pengine/pe_digest.c:224,1
    - Dst: pcmk__filter_op_for_digest
      Src: /src/pacemaker/lib/pengine/pe_digest.c:227,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/lib/pengine/pe_digest.c:236,1
    - Dst: pcmk__digest_operation
      Src: /src/pacemaker/lib/pengine/pe_digest.c:240,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 6
    argNames:
    - data
    - rsc
    - params
    - xml_op
    - op_version
    - overrides
    argTypes:
    - pcmk__op_digest_t*
    - pcmk_resource_t*
    - GHashTable*
    - xmlNode*
    - char*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 241
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 241
    functionName: calculate_secure_digest
    functionSourceFile: /src/pacemaker/lib/pengine/pe_digest.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - g_hash_table_foreach
    - pcmk__xml_copy
    - pcmk__xe_remove_attr
    - pcmk__xe_remove_matching_attrs
    - compare_version
    - pcmk__filter_op_for_digest
    - pcmk_is_set
    - pcmk__digest_operation
    - crm_element_value
    - pcmk_get_ra_caps
    linkageType: ''
    returnType: void
    signature: 'static void calculate_secure_digest(pcmk__op_digest_t *data, const
      pcmk_resource_t *rsc, GHashTable *params, const xmlNode *xml_op, const char
      *op_version, GHashTable *overrides) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/pe_digest.c:311,1
    - Dst: pcmk__sched_err
      Src: /src/pacemaker/lib/pengine/pe_digest.c:315,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_digest.c:323,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/pe_digest.c:327,1
    - Dst: calloc
      Src: /src/pacemaker/lib/pengine/pe_digest.c:313,1
    - Dst: pe_rsc_params
      Src: /src/pacemaker/lib/pengine/pe_digest.c:335,1
    - Dst: calculate_main_digest
      Src: /src/pacemaker/lib/pengine/pe_digest.c:336,1
    - Dst: calculate_secure_digest
      Src: /src/pacemaker/lib/pengine/pe_digest.c:339,1
    - Dst: calculate_restart_digest
      Src: /src/pacemaker/lib/pengine/pe_digest.c:342,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 28
    argCount: 8
    argNames:
    - rsc
    - task
    - interval_ms
    - node
    - xml_op
    - overrides
    - calc_secure
    - scheduler
    argTypes:
    - pcmk_resource_t*
    - char*
    - guint*
    - pcmk_node_t*
    - xmlNode*
    - GHashTable*
    - bool
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 344
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 344
    functionName: pe__calculate_digests
    functionSourceFile: /src/pacemaker/lib/pengine/pe_digest.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - calloc
    - calculate_main_digest
    - calculate_restart_digest
    - calculate_secure_digest
    - pe_rsc_params
    - crm_element_value
    - pcmk__sched_err
    linkageType: ''
    returnType: pcmk__op_digest_t*
    signature: 'pcmk__op_digest_t *pe__calculate_digests(pcmk_resource_t *rsc, const
      char *task, guint *interval_ms, const pcmk_node_t *node, const xmlNode *xml_op,
      GHashTable *overrides, bool calc_secure, pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/pe_digest.c:492,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - rsc_id
    - agent_type
    - param_digest
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 493
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 493
    functionName: create_unfencing_summary
    functionSourceFile: /src/pacemaker/lib/pengine/pe_digest.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'static inline char *create_unfencing_summary(const char *rsc_id, const
      char *agent_type, const char *param_digest) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/failcounts.c:38,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/failcounts.c:43,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/lib/pengine/failcounts.c:40,1
    - Dst: crm_element_value_ms
      Src: /src/pacemaker/lib/pengine/failcounts.c:44,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/failcounts.c:39,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/failcounts.c:47,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/failcounts.c:51,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pengine/failcounts.c:52,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/failcounts.c:54,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pengine/failcounts.c:58,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/failcounts.c:61,1
    - Dst: pe__target_rc_from_xml
      Src: /src/pacemaker/lib/pengine/failcounts.c:63,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/pengine/failcounts.c:65,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/failcounts.c:73,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/failcounts.c:70,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 3
    argNames:
    - rsc_id
    - conf_op_xml
    - lrm_op_xml
    argTypes:
    - char*
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 75
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 75
    functionName: is_matched_failure
    functionSourceFile: /src/pacemaker/lib/pengine/failcounts.c
    functionUses: []
    functionsReached:
    - crm_element_value_ms
    - pcmk__str_eq
    - pe__target_rc_from_xml
    - free
    - pcmk_parse_interval_spec
    - crm_element_value
    - pcmk__op_key
    - pcmk__xe_id
    - crm_element_value_int
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean is_matched_failure(const char *rsc_id, const xmlNode
      *conf_op_xml, const xmlNode *lrm_op_xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pengine/failcounts.c:189,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/failcounts.c:191,1
    - Dst: clone_strip
      Src: /src/pacemaker/lib/pengine/failcounts.c:191,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/failcounts.c:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: rsc_fail_name
    functionSourceFile: /src/pacemaker/lib/pengine/failcounts.c
    functionUses: []
    functionsReached:
    - strdup
    - pcmk_is_set
    - pcmk__s
    - clone_strip
    linkageType: ''
    returnType: char*
    signature: 'static inline char *rsc_fail_name(const pcmk_resource_t *rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rsc_fail_name
      Src: /src/pacemaker/lib/pengine/failcounts.c:248,1
    - Dst: generate_fail_regex
      Src: /src/pacemaker/lib/pengine/failcounts.c:250,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/failcounts.c:251,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/failcounts.c:256,1
    - Dst: generate_fail_regex
      Src: /src/pacemaker/lib/pengine/failcounts.c:255,1
    - Dst: regfree
      Src: /src/pacemaker/lib/pengine/failcounts.c:259,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/failcounts.c:262,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - rsc
    - failcount_re
    - lastfailure_re
    argTypes:
    - pcmk_resource_t*
    - regex_t*
    - regex_t*
    constantsTouched: []
    func_position:
      end: 264
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 264
    functionName: generate_fail_regexes
    functionSourceFile: /src/pacemaker/lib/pengine/failcounts.c
    functionUses: []
    functionsReached:
    - rsc_fail_name
    - regfree
    - pcmk_is_set
    - free
    - generate_fail_regex
    linkageType: ''
    returnType: int
    signature: 'static int generate_fail_regexes(const pcmk_resource_t *rsc, regex_t
      *failcount_re, regex_t *lastfailure_re) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pe_get_failcount
      Src: /src/pacemaker/lib/pengine/failcounts.c:340,1
    - Dst: QB_MAX
      Src: /src/pacemaker/lib/pengine/failcounts.c:343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 344
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 344
    functionName: update_launched_failcount
    functionSourceFile: /src/pacemaker/lib/pengine/failcounts.c
    functionUses: []
    functionsReached:
    - pe_get_failcount
    - QB_MAX
    linkageType: ''
    returnType: void
    signature: 'static void update_launched_failcount(gpointer data, gpointer user_data) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pengine/failcounts.c:100,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/failcounts.c:145,1
    - Dst: is_matched_failure
      Src: /src/pacemaker/lib/pengine/failcounts.c:155,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/failcounts.c:127,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pengine/failcounts.c:154,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pengine/failcounts.c:172,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/failcounts.c:103,1
    - Dst: is_matched_failure
      Src: /src/pacemaker/lib/pengine/failcounts.c:113,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/failcounts.c:128,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/lib/pengine/failcounts.c:130,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/failcounts.c:171,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pengine/failcounts.c:148,1
    - Dst: clone_strip
      Src: /src/pacemaker/lib/pengine/failcounts.c:81,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pengine/failcounts.c:106,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/failcounts.c:93,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pengine/failcounts.c:110,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/failcounts.c:138,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pengine/failcounts.c:162,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pengine/failcounts.c:142,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 40
    argCount: 3
    argNames:
    - node
    - rsc
    - xml_op
    argTypes:
    - pcmk_node_t*
    - pcmk_resource_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 175
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 175
    functionName: block_failure
    functionSourceFile: /src/pacemaker/lib/pengine/failcounts.c
    functionUses: []
    functionsReached:
    - crm_element_value
    - crm_strdup_printf
    - pcmk__xpath_result
    - xmlXPathFreeObject
    - free
    - is_matched_failure
    - clone_strip
    - pcmk__xpath_num_results
    - pcmk_parse_interval_spec
    - pcmk__xpath_search
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean block_failure(const pcmk_node_t *node, pcmk_resource_t
      *rsc, const xmlNode *xml_op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/failcounts.c:220,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/failcounts.c:223,1
    - Dst: regcomp
      Src: /src/pacemaker/lib/pengine/failcounts.c:222,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/failcounts.c:227,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 4
    argNames:
    - prefix
    - rsc_name
    - is_unique
    - re
    argTypes:
    - char*
    - char*
    - bool
    - regex_t*
    constantsTouched: []
    func_position:
      end: 229
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 229
    functionName: generate_fail_regex
    functionSourceFile: /src/pacemaker/lib/pengine/failcounts.c
    functionUses: []
    functionsReached:
    - regcomp
    - free
    - crm_strdup_printf
    linkageType: ''
    returnType: int
    signature: 'static int generate_fail_regex(const char *prefix, const char *rsc_name,
      bool is_unique, regex_t *re) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: regexec
      Src: /src/pacemaker/lib/pengine/failcounts.c:292,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pengine/failcounts.c:300,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/pengine/failcounts.c:294,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/failcounts.c:299,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pengine/failcounts.c:297,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pengine/failcounts.c:303,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/failcounts.c:304,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pengine/failcounts.c:307,1
    - Dst: regexec
      Src: /src/pacemaker/lib/pengine/failcounts.c:312,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/pengine/failcounts.c:315,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/failcounts.c:318,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pengine/failcounts.c:319,1
    - Dst: QB_MAX
      Src: /src/pacemaker/lib/pengine/failcounts.c:322,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 324
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 324
    functionName: update_failcount_for_attr
    functionSourceFile: /src/pacemaker/lib/pengine/failcounts.c
    functionUses: []
    functionsReached:
    - regexec
    - pcmk__rsc_trace
    - pcmk__add_scores
    - pcmk__node_name
    - pcmk_parse_score
    - pcmk_readable_score
    - pcmk__scan_ll
    - pcmk_rc_str
    - QB_MAX
    - crm_warn
    - crm_info
    linkageType: ''
    returnType: void
    signature: 'static void update_failcount_for_attr(gpointer key, gpointer value,
      gpointer user_data) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/failcounts.c:379,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pengine/failcounts.c:382,1
    - Dst: regfree
      Src: /src/pacemaker/lib/pengine/failcounts.c:385,1
    - Dst: block_failure
      Src: /src/pacemaker/lib/pengine/failcounts.c:389,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/failcounts.c:391,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/failcounts.c:399,1
    - Dst: pcmk__scheduler_epoch_time
      Src: /src/pacemaker/lib/pengine/failcounts.c:403,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/pengine/failcounts.c:404,1
    - Dst: pcmk__is_bundled
      Src: /src/pacemaker/lib/pengine/failcounts.c:425,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pengine/failcounts.c:427,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pengine/failcounts.c:440,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pengine/failcounts.c:433,1
    - Dst: regfree
      Src: /src/pacemaker/lib/pengine/failcounts.c:384,1
    - Dst: generate_fail_regexes
      Src: /src/pacemaker/lib/pengine/failcounts.c:379,1
    - Dst: readable_expiration
      Src: /src/pacemaker/lib/pengine/failcounts.c:394,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pengine/failcounts.c:407,1
    - Dst: readable_expiration
      Src: /src/pacemaker/lib/pengine/failcounts.c:409,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/failcounts.c:408,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/failcounts.c:424,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pengine/failcounts.c:439,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pengine/failcounts.c:441,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/failcounts.c:442,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pengine/failcounts.c:430,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pengine/failcounts.c:434,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/failcounts.c:435,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 5
    argNames:
    - node
    - rsc
    - last_failure
    - flags
    - xml_op
    argTypes:
    - pcmk_node_t*
    - pcmk_resource_t*
    - time_t*
    - uint32_t
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 453
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 453
    functionName: pe_get_failcount
    functionSourceFile: /src/pacemaker/lib/pengine/failcounts.c
    functionUses: []
    functionsReached:
    - block_failure
    - g_hash_table_foreach
    - CRM_CHECK
    - pcmk__config_warn
    - readable_expiration
    - pcmk__timeout_ms2s
    - pcmk__rsc_debug
    - pcmk__is_bundled
    - g_list_foreach
    - pcmk__plural_s
    - regfree
    - generate_fail_regexes
    - pcmk_is_set
    - pcmk__node_name
    - pcmk__scheduler_epoch_time
    - pcmk_readable_score
    - pcmk__rsc_info
    linkageType: ''
    returnType: int
    signature: 'int pe_get_failcount(const pcmk_node_t *node, pcmk_resource_t *rsc,
      time_t *last_failure, uint32_t flags, const xmlNode *xml_op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/failcounts.c:472,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/failcounts.c:477,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pengine/failcounts.c:475,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pengine/failcounts.c:478,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pengine/failcounts.c:474,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/failcounts.c:479,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 4
    argNames:
    - rsc
    - node
    - reason
    - scheduler
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - char*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 481
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 481
    functionName: pe__clear_failcount
    functionSourceFile: /src/pacemaker/lib/pengine/failcounts.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__insert_meta
    - crm_notice
    - pcmk__node_name
    - custom_action
    - pcmk__op_key
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'pcmk_action_t *pe__clear_failcount(pcmk_resource_t *rsc, const pcmk_node_t
      *node, const char *reason, pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/remote.c:32,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/remote.c:39,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 2
    argNames:
    - scheduler
    - rsc
    argTypes:
    - pcmk_scheduler_t*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 45
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 45
    functionName: pe__resource_contains_guest_node
    functionSourceFile: /src/pacemaker/lib/pengine/remote.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'pcmk_resource_t *pe__resource_contains_guest_node(const pcmk_scheduler_t
      *scheduler, const pcmk_resource_t *rsc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/remote.c:91,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/remote.c:92,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/remote.c:98,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/remote.c:100,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 19
    argCount: 4
    argNames:
    - scheduler
    - host
    - (*helper)
    - user_data
    argTypes:
    - pcmk_scheduler_t*
    - pcmk_node_t*
    - void
    - void*
    constantsTouched: []
    func_position:
      end: 107
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 107
    functionName: pe_foreach_guest_node
    functionSourceFile: /src/pacemaker/lib/pengine/remote.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk_find_node
    - CRM_CHECK
    linkageType: ''
    returnType: void
    signature: 'void pe_foreach_guest_node(const pcmk_scheduler_t *scheduler, const
      pcmk_node_t *host, void (*helper)(const pcmk_node_t*, void*), void *user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/remote.c:56,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/remote.c:61,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/remote.c:62,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/remote.c:57,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/remote.c:66,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/remote.c:67,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 72
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 72
    functionName: xml_contains_remote_node
    functionSourceFile: /src/pacemaker/lib/pengine/remote.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - crm_element_value
    linkageType: ''
    returnType: bool
    signature: 'bool xml_contains_remote_node(xmlNode *xml) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pengine/remote.c:135,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/remote.c:139,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/remote.c:138,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/remote.c:140,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/remote.c:141,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pengine/remote.c:144,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/pengine/remote.c:145,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/remote.c:146,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/remote.c:149,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/remote.c:153,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/remote.c:157,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/pengine/remote.c:163,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/remote.c:165,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pengine/remote.c:168,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pengine/remote.c:173,1
    - Dst: crm_create_op_xml
      Src: /src/pacemaker/lib/pengine/remote.c:176,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pengine/remote.c:162,1
    - Dst: crm_create_op_xml
      Src: /src/pacemaker/lib/pengine/remote.c:174,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 31
    argCount: 8
    argNames:
    - parent
    - uname
    - container_id
    - migrateable
    - is_managed
    - start_timeout
    - server
    - port
    argTypes:
    - xmlNode*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 180
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 180
    functionName: pe_create_remote_xml
    functionSourceFile: /src/pacemaker/lib/pengine/remote.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_set_id
    - crm_create_nvpair_xml
    - crm_xml_add
    - crm_create_op_xml
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pe_create_remote_xml(xmlNode *parent, const char *uname,
      const char *container_id, const char *migrateable, const char *is_managed, const
      char *start_timeout, const char *server, const char *port) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/pe_notif.c:65,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/pe_notif.c:82,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 83
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 83
    functionName: compare_notify_entries
    functionSourceFile: /src/pacemaker/lib/pengine/pe_notif.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: gint
    signature: 'static gint compare_notify_entries(gconstpointer a, gconstpointer
      b) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_notif.c:258,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/pe_notif.c:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 263
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 263
    functionName: copy_meta_to_notify
    functionSourceFile: /src/pacemaker/lib/pengine/pe_notif.c
    functionUses: []
    functionsReached:
    - pcmk__insert_dup
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: 'static void copy_meta_to_notify(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pengine/pe_notif.c:198,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_notif.c:218,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/pengine/pe_notif.c:212,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/pengine/pe_notif.c:204,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/pengine/pe_notif.c:224,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/pengine/pe_notif.c:227,1
    - Dst: g_string_new
      Src: /src/pacemaker/lib/pengine/pe_notif.c:233,1
    - Dst: g_string_new
      Src: /src/pacemaker/lib/pengine/pe_notif.c:236,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 55
    argCount: 3
    argNames:
    - list
    - rsc_names
    - node_names
    argTypes:
    - GList*
    - GString**
    - GString**
    constantsTouched: []
    func_position:
      end: 240
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 240
    functionName: notify_entries_to_strings
    functionSourceFile: /src/pacemaker/lib/pengine/pe_notif.c
    functionUses: []
    functionsReached:
    - g_list_sort
    - CRM_LOG_ASSERT
    - pcmk__str_eq
    - g_string_new
    - pcmk__add_word
    linkageType: ''
    returnType: GList*
    signature: 'static GList *notify_entries_to_strings(GList *list, GString **rsc_names,
      GString **node_names) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: custom_action
      Src: /src/pacemaker/lib/pengine/pe_notif.c:293,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pengine/pe_notif.c:298,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_notif.c:296,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/pe_notif.c:299,1
    - Dst: pcmk__notify_key
      Src: /src/pacemaker/lib/pengine/pe_notif.c:294,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/pe_notif.c:300,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 4
    argNames:
    - rsc
    - action
    - notif_action
    - notif_type
    argTypes:
    - pcmk_resource_t*
    - pcmk_action_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 302
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 302
    functionName: new_notify_pseudo_action
    functionSourceFile: /src/pacemaker/lib/pengine/pe_notif.c
    functionUses: []
    functionsReached:
    - pcmk__notify_key
    - pcmk__insert_meta
    - pcmk__set_action_flags
    - pcmk_is_set
    - custom_action
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'static pcmk_action_t *new_notify_pseudo_action(pcmk_resource_t *rsc,
      const pcmk_action_t *action, const char *notif_action, const char *notif_type) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/pe_notif.c:381,1
    - Dst: new_notify_action
      Src: /src/pacemaker/lib/pengine/pe_notif.c:384,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_notif.c:398,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_notif.c:400,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_notif.c:399,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pengine/pe_notif.c:403,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 3
    argNames:
    - rsc
    - node
    - n_data
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - notify_data_t*
    constantsTouched: []
    func_position:
      end: 405
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 405
    functionName: new_post_notify_action
    functionSourceFile: /src/pacemaker/lib/pengine/pe_notif.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - order_actions
    - pcmk__str_eq
    - new_notify_action
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'static void new_post_notify_action(pcmk_resource_t *rsc, const pcmk_node_t
      *node, notify_data_t *n_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/pe_notif.c:535,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - rsc
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 540
    functionName: new_notify_entry
    functionSourceFile: /src/pacemaker/lib/pengine/pe_notif.c
    functionUses: []
    functionsReached:
    - pcmk__assert_alloc
    linkageType: ''
    returnType: notify_entry_t*
    signature: 'static notify_entry_t *new_notify_entry(const pcmk_resource_t *rsc,
      const pcmk_node_t *node) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: add_notify_env_free_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:698,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/pe_notif.c:693,1
    - Dst: notify_entries_to_strings
      Src: /src/pacemaker/lib/pengine/pe_notif.c:704,1
    - Dst: add_notify_env_free_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:716,1
    - Dst: add_notify_env_free_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:724,1
    - Dst: add_notify_env_free_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:730,1
    - Dst: add_notify_env_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:734,1
    - Dst: notify_entries_to_strings
      Src: /src/pacemaker/lib/pengine/pe_notif.c:741,1
    - Dst: get_node_names
      Src: /src/pacemaker/lib/pengine/pe_notif.c:762,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_notif.c:766,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pengine/pe_notif.c:783,1
    - Dst: get_node_names
      Src: /src/pacemaker/lib/pengine/pe_notif.c:769,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pengine/pe_notif.c:777,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_notif.c:694,1
    - Dst: notify_entries_to_strings
      Src: /src/pacemaker/lib/pengine/pe_notif.c:727,1
    - Dst: notify_entries_to_strings
      Src: /src/pacemaker/lib/pengine/pe_notif.c:713,1
    - Dst: add_notify_env_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:735,1
    - Dst: add_notify_env_free_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:752,1
    - Dst: g_hash_table_get_values
      Src: /src/pacemaker/lib/pengine/pe_notif.c:754,1
    - Dst: add_notify_env_free_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:763,1
    - Dst: get_node_names
      Src: /src/pacemaker/lib/pengine/pe_notif.c:772,1
    - Dst: add_notify_env_free_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:774,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pengine/pe_notif.c:782,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pengine/pe_notif.c:778,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_notif.c:768,1
    - Dst: add_notify_env_free_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:706,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_notif.c:710,1
    - Dst: notify_entries_to_strings
      Src: /src/pacemaker/lib/pengine/pe_notif.c:722,1
    - Dst: notify_entries_to_strings
      Src: /src/pacemaker/lib/pengine/pe_notif.c:732,1
    - Dst: add_notify_env_free_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:738,1
    - Dst: add_notify_env_free_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:739,1
    - Dst: add_notify_env_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:743,1
    - Dst: add_notify_env_free_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:747,1
    - Dst: add_notify_env_free_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:748,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pengine/pe_notif.c:760,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/pe_notif.c:764,1
    - Dst: add_notify_env_free_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:770,1
    - Dst: notify_entries_to_strings
      Src: /src/pacemaker/lib/pengine/pe_notif.c:691,1
    - Dst: add_notify_env_free_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:697,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_notif.c:701,1
    - Dst: add_notify_env_free_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:707,1
    - Dst: add_notify_env_free_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:715,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_notif.c:719,1
    - Dst: add_notify_env_free_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:729,1
    - Dst: add_notify_env_free_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:725,1
    - Dst: add_notify_env_gs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:744,1
    - Dst: notify_entries_to_strings
      Src: /src/pacemaker/lib/pengine/pe_notif.c:750,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 85
    argCount: 2
    argNames:
    - rsc
    - n_data
    argTypes:
    - pcmk_resource_t*
    - notify_data_t*
    constantsTouched: []
    func_position:
      end: 785
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 785
    functionName: add_notif_keys
    functionSourceFile: /src/pacemaker/lib/pengine/pe_notif.c
    functionUses: []
    functionsReached:
    - add_notify_env_gs
    - g_list_sort
    - g_list_free
    - g_hash_table_lookup
    - pcmk__str_eq
    - strcmp
    - g_hash_table_get_values
    - notify_entries_to_strings
    - get_node_names
    - pcmk__clear_action_flags
    - add_notify_env_free_gs
    linkageType: ''
    returnType: void
    signature: 'static void add_notif_keys(const pcmk_resource_t *rsc, notify_data_t
      *n_data) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__parse_action
      Src: /src/pacemaker/lib/pengine/pe_notif.c:838,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/pe_notif.c:871,1
    - Dst: pcmk__sched_err
      Src: /src/pacemaker/lib/pengine/pe_notif.c:938,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pengine/pe_notif.c:940,1
    - Dst: add_notify_data_to_action_meta
      Src: /src/pacemaker/lib/pengine/pe_notif.c:843,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/pe_notif.c:855,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/pe_notif.c:863,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/pe_notif.c:882,1
    - Dst: find_first_action
      Src: /src/pacemaker/lib/pengine/pe_notif.c:889,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_notif.c:901,1
    - Dst: new_notify_action
      Src: /src/pacemaker/lib/pengine/pe_notif.c:908,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_notif.c:903,1
    - Dst: find_remote_start
      Src: /src/pacemaker/lib/pengine/pe_notif.c:925,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_notif.c:912,1
    - Dst: pcmk__parse_action
      Src: /src/pacemaker/lib/pengine/pe_notif.c:823,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_notif.c:836,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_notif.c:928,1
    - Dst: find_first_action
      Src: /src/pacemaker/lib/pengine/pe_notif.c:922,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pengine/pe_notif.c:827,1
    - Dst: new_post_notify_action
      Src: /src/pacemaker/lib/pengine/pe_notif.c:913,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_notif.c:944,1
    - Dst: new_notify_action
      Src: /src/pacemaker/lib/pengine/pe_notif.c:946,1
    - Dst: new_post_notify_action
      Src: /src/pacemaker/lib/pengine/pe_notif.c:949,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 83
    argCount: 2
    argNames:
    - rsc
    - n_data
    argTypes:
    - pcmk_resource_t*
    - notify_data_t*
    constantsTouched: []
    func_position:
      end: 951
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 951
    functionName: create_notify_actions
    functionSourceFile: /src/pacemaker/lib/pengine/pe_notif.c
    functionUses: []
    functionsReached:
    - add_notify_data_to_action_meta
    - pcmk__rsc_trace
    - g_list_foreach
    - new_notify_action
    - pcmk_is_set
    - find_first_action
    - new_post_notify_action
    - pcmk__sched_err
    - pcmk__parse_action
    - find_remote_start
    - pcmk_role_text
    linkageType: ''
    returnType: void
    signature: 'static void create_notify_actions(pcmk_resource_t *rsc, notify_data_t
      *n_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/pe_notif.c:272,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - n_data
    - action
    argTypes:
    - notify_data_t*
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 274
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 274
    functionName: add_notify_data_to_action_meta
    functionSourceFile: /src/pacemaker/lib/pengine/pe_notif.c
    functionUses: []
    functionsReached:
    - pcmk__insert_meta
    linkageType: ''
    returnType: void
    signature: 'static void add_notify_data_to_action_meta(const notify_data_t *n_data,
      pcmk_action_t *action) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: collect_resource_data
      Src: /src/pacemaker/lib/pengine/pe_notif.c:966,1
    - Dst: add_notif_keys
      Src: /src/pacemaker/lib/pengine/pe_notif.c:967,1
    - Dst: create_notify_actions
      Src: /src/pacemaker/lib/pengine/pe_notif.c:968,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - rsc
    - n_data
    argTypes:
    - pcmk_resource_t*
    - notify_data_t*
    constantsTouched: []
    func_position:
      end: 969
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 969
    functionName: pe__create_action_notifications
    functionSourceFile: /src/pacemaker/lib/pengine/pe_notif.c
    functionUses: []
    functionsReached:
    - create_notify_actions
    - collect_resource_data
    - add_notif_keys
    linkageType: ''
    returnType: void
    signature: 'void pe__create_action_notifications(pcmk_resource_t *rsc, notify_data_t
      *n_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/pe_notif.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - entry
    argTypes:
    - notify_entry_t*
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: dup_notify_entry
    functionSourceFile: /src/pacemaker/lib/pengine/pe_notif.c
    functionUses: []
    functionsReached:
    - pcmk__assert_alloc
    linkageType: ''
    returnType: notify_entry_t*
    signature: 'static notify_entry_t *dup_notify_entry(const notify_entry_t *entry) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/pengine/pe_notif.c:141,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/pengine/pe_notif.c:157,1
    - Dst: g_string_new
      Src: /src/pacemaker/lib/pengine/pe_notif.c:162,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pengine/pe_notif.c:146,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pengine/pe_notif.c:151,1
    - Dst: g_string_new
      Src: /src/pacemaker/lib/pengine/pe_notif.c:165,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 39
    argCount: 3
    argNames:
    - list
    - all_node_names
    - host_node_names
    argTypes:
    - GList*
    - GString**
    - GString**
    constantsTouched: []
    func_position:
      end: 167
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 167
    functionName: get_node_names
    functionSourceFile: /src/pacemaker/lib/pengine/pe_notif.c
    functionUses: []
    functionsReached:
    - pcmk__is_guest_or_bundle_node
    - g_string_new
    - pcmk__add_word
    - pcmk__current_node
    linkageType: ''
    returnType: void
    signature: 'static void get_node_names(const GList *list, GString **all_node_names,
      GString **host_node_names) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/pe_notif.c:327,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/pe_notif.c:340,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_notif.c:341,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_notif.c:345,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_notif.c:336,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/pe_notif.c:346,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/pe_notif.c:348,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_notif.c:349,1
    - Dst: pcmk__notify_key
      Src: /src/pacemaker/lib/pengine/pe_notif.c:352,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pengine/pe_notif.c:353,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_notif.c:354,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pengine/pe_notif.c:362,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pengine/pe_notif.c:363,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pengine/pe_notif.c:358,1
    - Dst: add_notify_data_to_action_meta
      Src: /src/pacemaker/lib/pengine/pe_notif.c:359,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 5
    argNames:
    - rsc
    - node
    - op
    - notify_done
    - n_data
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - pcmk_action_t*
    - pcmk_action_t*
    - notify_data_t*
    constantsTouched: []
    func_position:
      end: 365
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 365
    functionName: new_notify_action
    functionSourceFile: /src/pacemaker/lib/pengine/pe_notif.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    - CRM_CHECK
    - pcmk__rsc_trace
    - add_notify_data_to_action_meta
    - g_hash_table_lookup
    - pcmk__notify_key
    - order_actions
    - pcmk__node_name
    - pcmk_is_set
    - custom_action
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'static pcmk_action_t *new_notify_action(pcmk_resource_t *rsc, const
      pcmk_node_t *node, pcmk_action_t *op, pcmk_action_t *notify_done, const notify_data_t
      *n_data) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/pe_notif.c:448,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/pe_notif.c:467,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_notif.c:493,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/pe_notif.c:498,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pengine/pe_notif.c:517,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/pe_notif.c:459,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pengine/pe_notif.c:470,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_notif.c:480,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pengine/pe_notif.c:481,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pengine/pe_notif.c:471,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pengine/pe_notif.c:496,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/pe_notif.c:499,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pengine/pe_notif.c:511,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/pe_notif.c:466,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/pe_notif.c:485,1
    - Dst: new_notify_pseudo_action
      Src: /src/pacemaker/lib/pengine/pe_notif.c:477,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pengine/pe_notif.c:494,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_notif.c:444,1
    - Dst: new_notify_pseudo_action
      Src: /src/pacemaker/lib/pengine/pe_notif.c:455,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/pe_notif.c:458,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pengine/pe_notif.c:457,1
    - Dst: new_notify_pseudo_action
      Src: /src/pacemaker/lib/pengine/pe_notif.c:462,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pengine/pe_notif.c:465,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pengine/pe_notif.c:483,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/pe_notif.c:486,1
    - Dst: new_notify_pseudo_action
      Src: /src/pacemaker/lib/pengine/pe_notif.c:489,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pengine/pe_notif.c:510,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 4
    argNames:
    - rsc
    - task
    - action
    - complete
    argTypes:
    - pcmk_resource_t*
    - char*
    - pcmk_action_t*
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 520
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 520
    functionName: pe__action_notif_pseudo_ops
    functionSourceFile: /src/pacemaker/lib/pengine/pe_notif.c
    functionUses: []
    functionsReached:
    - order_actions
    - pcmk__assert_alloc
    - pcmk__insert_meta
    - pcmk__set_action_flags
    - pcmk_is_set
    - pcmk__clear_action_flags
    - new_notify_pseudo_action
    linkageType: ''
    returnType: notify_data_t*
    signature: 'notify_data_t *pe__action_notif_pseudo_ops(pcmk_resource_t *rsc, const
      char *task, pcmk_action_t *action, pcmk_action_t *complete) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: dup_notify_entry
      Src: /src/pacemaker/lib/pengine/pe_notif.c:602,1
    - Dst: pcmk__parse_action
      Src: /src/pacemaker/lib/pengine/pe_notif.c:625,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/pe_notif.c:643,1
    - Dst: collect_resource_data
      Src: /src/pacemaker/lib/pengine/pe_notif.c:571,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/pe_notif.c:594,1
    - Dst: pcmk__sched_err
      Src: /src/pacemaker/lib/pengine/pe_notif.c:606,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_notif.c:609,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_notif.c:629,1
    - Dst: new_notify_entry
      Src: /src/pacemaker/lib/pengine/pe_notif.c:633,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pengine/pe_notif.c:610,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/pe_notif.c:640,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_notif.c:649,1
    - Dst: new_notify_entry
      Src: /src/pacemaker/lib/pengine/pe_notif.c:581,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/pe_notif.c:595,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/pe_notif.c:600,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_notif.c:611,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/pe_notif.c:623,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/pe_notif.c:590,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/pe_notif.c:586,1
    - Dst: dup_notify_entry
      Src: /src/pacemaker/lib/pengine/pe_notif.c:596,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/pe_notif.c:601,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/pe_notif.c:637,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/pe_notif.c:646,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 67
    argCount: 3
    argNames:
    - rsc
    - activity
    - n_data
    argTypes:
    - pcmk_resource_t*
    - bool
    - notify_data_t*
    constantsTouched: []
    func_position:
      end: 654
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 654
    functionName: collect_resource_data
    functionSourceFile: /src/pacemaker/lib/pengine/pe_notif.c
    functionUses: []
    functionsReached:
    - pcmk__node_name
    - pcmk_is_set
    - free
    - g_list_prepend
    - pcmk__parse_action
    - new_notify_entry
    - collect_resource_data
    - dup_notify_entry
    - pcmk__sched_err
    - pcmk_role_text
    linkageType: ''
    returnType: void
    signature: 'static void collect_resource_data(pcmk_resource_t *rsc, bool activity,
      notify_data_t *n_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_first_action
      Src: /src/pacemaker/lib/pengine/pe_notif.c:802,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - action
    argTypes:
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 808
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 808
    functionName: find_remote_start
    functionSourceFile: /src/pacemaker/lib/pengine/pe_notif.c
    functionUses: []
    functionsReached:
    - find_first_action
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'static pcmk_action_t *find_remote_start(pcmk_action_t *action) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pengine/pe_notif.c:983,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pengine/pe_notif.c:986,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pengine/pe_notif.c:987,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pengine/pe_notif.c:984,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pengine/pe_notif.c:985,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pengine/pe_notif.c:988,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pengine/pe_notif.c:989,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pengine/pe_notif.c:990,1
    - Dst: pcmk_free_nvpairs
      Src: /src/pacemaker/lib/pengine/pe_notif.c:991,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/pe_notif.c:992,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - n_data
    argTypes:
    - notify_data_t*
    constantsTouched: []
    func_position:
      end: 993
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 993
    functionName: pe__free_action_notification_data
    functionSourceFile: /src/pacemaker/lib/pengine/pe_notif.c
    functionUses: []
    functionsReached:
    - pcmk_free_nvpairs
    - free
    - g_list_free_full
    linkageType: ''
    returnType: void
    signature: 'void pe__free_action_notification_data(notify_data_t *n_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/pe_notif.c:1015,1
    - Dst: pe__action_notif_pseudo_ops
      Src: /src/pacemaker/lib/pengine/pe_notif.c:1016,1
    - Dst: collect_resource_data
      Src: /src/pacemaker/lib/pengine/pe_notif.c:1020,1
    - Dst: add_notify_env
      Src: /src/pacemaker/lib/pengine/pe_notif.c:1021,1
    - Dst: add_notify_env
      Src: /src/pacemaker/lib/pengine/pe_notif.c:1022,1
    - Dst: create_notify_actions
      Src: /src/pacemaker/lib/pengine/pe_notif.c:1023,1
    - Dst: uber_parent
      Src: /src/pacemaker/lib/pengine/pe_notif.c:1023,1
    - Dst: pe__free_action_notification_data
      Src: /src/pacemaker/lib/pengine/pe_notif.c:1024,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - stop
    - rsc
    - stonith_op
    argTypes:
    - pcmk_action_t*
    - pcmk_resource_t*
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 1026
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1026
    functionName: pe__order_notifs_after_fencing
    functionSourceFile: /src/pacemaker/lib/pengine/pe_notif.c
    functionUses: []
    functionsReached:
    - collect_resource_data
    - create_notify_actions
    - pe__free_action_notification_data
    - add_notify_env
    - pe__action_notif_pseudo_ops
    - uber_parent
    - crm_info
    linkageType: ''
    returnType: void
    signature: 'void pe__order_notifs_after_fencing(const pcmk_action_t *stop, pcmk_resource_t
      *rsc, pcmk_action_t *stonith_op) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/tags.c:28,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/tags.c:46,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/tags.c:46,1
    - Dst: pe_find_resource_with_flags
      Src: /src/pacemaker/lib/pengine/tags.c:40,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/tags.c:46,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 2
    argNames:
    - scheduler
    - tag_name
    argTypes:
    - pcmk_scheduler_t*
    - char*
    constantsTouched: []
    func_position:
      end: 50
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 50
    functionName: pe__rscs_with_tag
    functionSourceFile: /src/pacemaker/lib/pengine/tags.c
    functionUses: []
    functionsReached:
    - pe_find_resource_with_flags
    - g_list_append
    - g_hash_table_lookup
    - rsc_printable_id
    - strdup
    linkageType: ''
    returnType: GList*
    signature: 'GList *pe__rscs_with_tag(pcmk_scheduler_t *scheduler, const char *tag_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pe__rscs_with_tag
      Src: /src/pacemaker/lib/pengine/tags.c:91,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pengine/tags.c:99,1
    - Dst: g_list_find_custom
      Src: /src/pacemaker/lib/pengine/tags.c:98,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - scheduler
    - rsc_name
    - tag_name
    argTypes:
    - pcmk_scheduler_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 101
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 101
    functionName: pe__rsc_has_tag
    functionSourceFile: /src/pacemaker/lib/pengine/tags.c
    functionUses: []
    functionsReached:
    - pe__rscs_with_tag
    - g_list_find_custom
    - g_list_free_full
    linkageType: ''
    returnType: bool
    signature: 'bool pe__rsc_has_tag(pcmk_scheduler_t *scheduler, const char *rsc_name,
      const char *tag_name) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/tags.c:62,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/tags.c:81,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/tags.c:81,1
    - Dst: pe_find_node_id
      Src: /src/pacemaker/lib/pengine/tags.c:74,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 2
    argNames:
    - scheduler
    - tag_name
    argTypes:
    - pcmk_scheduler_t*
    - char*
    constantsTouched: []
    func_position:
      end: 85
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 85
    functionName: pe__unames_with_tag
    functionSourceFile: /src/pacemaker/lib/pengine/tags.c
    functionUses: []
    functionsReached:
    - strdup
    - pe_find_node_id
    - g_list_append
    - g_hash_table_lookup
    linkageType: ''
    returnType: GList*
    signature: 'GList *pe__unames_with_tag(pcmk_scheduler_t *scheduler, const char
      *tag_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pe__unames_with_tag
      Src: /src/pacemaker/lib/pengine/tags.c:107,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pengine/tags.c:115,1
    - Dst: g_list_find_custom
      Src: /src/pacemaker/lib/pengine/tags.c:114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - scheduler
    - node_name
    - tag_name
    argTypes:
    - pcmk_scheduler_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 117
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 117
    functionName: pe__uname_has_tag
    functionSourceFile: /src/pacemaker/lib/pengine/tags.c
    functionUses: []
    functionsReached:
    - pe__unames_with_tag
    - g_list_find_custom
    - g_list_free_full
    linkageType: ''
    returnType: bool
    signature: 'bool pe__uname_has_tag(pcmk_scheduler_t *scheduler, const char *node_name,
      const char *tag_name) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pe__health_strategy
      Src: /src/pacemaker/lib/pengine/pe_health.c:25,1
    - Dst: pcmk__health_score
      Src: /src/pacemaker/lib/pengine/pe_health.c:47,1
    - Dst: pcmk__health_score
      Src: /src/pacemaker/lib/pengine/pe_health.c:45,1
    - Dst: pcmk__health_score
      Src: /src/pacemaker/lib/pengine/pe_health.c:49,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pengine/pe_health.c:56,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 62
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 62
    functionName: pe__unpack_node_health_scores
    functionSourceFile: /src/pacemaker/lib/pengine/pe_health.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pe__health_strategy
    - pcmk__health_score
    linkageType: ''
    returnType: void
    signature: 'void pe__unpack_node_health_scores(pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/pe_health.c:113,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pengine/pe_health.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - node
    - base_health
    argTypes:
    - pcmk_node_t*
    - int
    constantsTouched: []
    func_position:
      end: 117
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 117
    functionName: pe__sum_node_health_scores
    functionSourceFile: /src/pacemaker/lib/pengine/pe_health.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_hash_table_foreach
    linkageType: ''
    returnType: int
    signature: 'int pe__sum_node_health_scores(const pcmk_node_t *node, int base_health) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/pe_health.c:138,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pengine/pe_health.c:146,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pengine/pe_health.c:145,1
    - Dst: pe__health_strategy
      Src: /src/pacemaker/lib/pengine/pe_health.c:140,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/pengine/pe_health.c:148,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_health.c:155,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/pe_health.c:157,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/pengine/pe_health.c:163,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pengine/pe_health.c:165,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_health.c:167,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pengine/pe_health.c:168,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 182
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 182
    functionName: pe__node_health
    functionSourceFile: /src/pacemaker/lib/pengine/pe_health.c
    functionUses: []
    functionsReached:
    - g_hash_table_iter_next
    - pcmk__str_eq
    - pcmk__node_name
    - pcmk_parse_score
    - crm_warn
    - pcmk_rc_str
    - pcmk__assert
    - pe__health_strategy
    - g_hash_table_iter_init
    - pcmk__starts_with
    linkageType: ''
    returnType: int
    signature: 'int pe__node_health(pcmk_node_t *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/pengine/pe_health.c:81,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pengine/pe_health.c:87,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/pengine/pe_health.c:84,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pengine/pe_health.c:89,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pengine/pe_health.c:88,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pengine/pe_health.c:93,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/pe_health.c:94,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pengine/pe_health.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 97
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 97
    functionName: add_node_health_value
    functionSourceFile: /src/pacemaker/lib/pengine/pe_health.c
    functionUses: []
    functionsReached:
    - pcmk__add_scores
    - pcmk__node_name
    - pcmk_parse_score
    - pcmk_readable_score
    - pcmk_rc_str
    - crm_warn
    - crm_trace
    - pcmk__starts_with
    linkageType: ''
    returnType: void
    signature: 'static void add_node_health_value(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pengine/status.c:38,1
    - Dst: pcmk__warn_once
      Src: /src/pacemaker/lib/pengine/status.c:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 48
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 48
    functionName: check_for_deprecated_rules
    functionSourceFile: /src/pacemaker/lib/pengine/status.c
    functionUses: []
    functionsReached:
    - pcmk__xpath_find_one
    - pcmk__warn_once
    linkageType: ''
    returnType: void
    signature: 'static void check_for_deprecated_rules(pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pe_find_node_id
      Src: /src/pacemaker/lib/pengine/status.c:220,1
    - Dst: pcmk__find_node_in_list
      Src: /src/pacemaker/lib/pengine/status.c:223,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 3
    argNames:
    - nodes
    - id
    - uname
    argTypes:
    - GList*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 226
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 226
    functionName: pe_find_node_any
    functionSourceFile: /src/pacemaker/lib/pengine/status.c
    functionUses: []
    functionsReached:
    - pe_find_node_id
    - pcmk__find_node_in_list
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'pcmk_node_t *pe_find_node_any(const GList *nodes, const char *id,
      const char *uname) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pe_find_resource_with_flags
      Src: /src/pacemaker/lib/pengine/status.c:182,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - rsc_list
    - id
    argTypes:
    - GList*
    - char*
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: pe_find_resource
    functionSourceFile: /src/pacemaker/lib/pengine/status.c
    functionUses: []
    functionsReached:
    - pe_find_resource_with_flags
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'pcmk_resource_t *pe_find_resource(GList *rsc_list, const char *id) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_reset_scheduler
      Src: /src/pacemaker/lib/pengine/status.c:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: pe_reset_working_set
    functionSourceFile: /src/pacemaker/lib/pengine/status.c
    functionUses: []
    functionsReached:
    - pcmk_reset_scheduler
    linkageType: ''
    returnType: void
    signature: 'void pe_reset_working_set(pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/pacemaker/lib/pengine/status.c:333,1
    - Dst: memset
      Src: /src/pacemaker/lib/pengine/status.c:334,1
    - Dst: pcmk__set_scheduler_defaults
      Src: /src/pacemaker/lib/pengine/status.c:342,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 343
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 343
    functionName: set_working_set_defaults
    functionSourceFile: /src/pacemaker/lib/pengine/status.c
    functionUses: []
    functionsReached:
    - pcmk__set_scheduler_defaults
    - memset
    linkageType: ''
    returnType: void
    signature: 'void set_working_set_defaults(pcmk_scheduler_t *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/status.c:199,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 3
    argNames:
    - rsc_list
    - id
    - flags
    argTypes:
    - GList*
    - char*
    - enum pe_find
    constantsTouched: []
    func_position:
      end: 201
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 201
    functionName: pe_find_resource_with_flags
    functionSourceFile: /src/pacemaker/lib/pengine/status.c
    functionUses: []
    functionsReached:
    - crm_trace
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'pcmk_resource_t *pe_find_resource_with_flags(GList *rsc_list, const
      char *id, enum pe_find flags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/lib/pengine/status.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: pe_new_working_set
    functionSourceFile: /src/pacemaker/lib/pengine/status.c
    functionUses: []
    functionsReached:
    - pcmk_new_scheduler
    linkageType: ''
    returnType: pcmk_scheduler_t*
    signature: 'pcmk_scheduler_t *pe_new_working_set(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__clear_scheduler_flags
      Src: /src/pacemaker/lib/pengine/status.c:280,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/status.c:294,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pengine/status.c:302,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/status.c:304,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/status.c:282,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/status.c:298,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pengine/status.c:308,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/pengine/status.c:313,1
    - Dst: set_working_set_defaults
      Src: /src/pacemaker/lib/pengine/status.c:318,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pengine/status.c:314,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/status.c:286,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pengine/status.c:315,1
    - Dst: pcmk__free_param_checks
      Src: /src/pacemaker/lib/pengine/status.c:311,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/status.c:290,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/status.c:301,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pengine/status.c:305,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pengine/status.c:316,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/status.c:312,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/status.c:307,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/pengine/status.c:320,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 322
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 322
    functionName: cleanup_calculations
    functionSourceFile: /src/pacemaker/lib/pengine/status.c
    functionUses: []
    functionsReached:
    - g_list_free
    - CRM_LOG_ASSERT
    - g_hash_table_destroy
    - pcmk__free_param_checks
    - g_list_free_full
    - crm_time_free
    - set_working_set_defaults
    - pcmk__xml_free
    - pcmk__clear_scheduler_flags
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void cleanup_calculations(pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/lib/pengine/status.c:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: pe_free_working_set
    functionSourceFile: /src/pacemaker/lib/pengine/status.c
    functionUses: []
    functionsReached:
    - pcmk_free_scheduler
    linkageType: ''
    returnType: void
    signature: 'void pe_free_working_set(pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_node_in_list
      Src: /src/pacemaker/lib/pengine/status.c:354,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - nodes
    - node_name
    argTypes:
    - GList*
    - char*
    constantsTouched: []
    func_position:
      end: 355
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 355
    functionName: pe_find_node
    functionSourceFile: /src/pacemaker/lib/pengine/status.c
    functionUses: []
    functionsReached:
    - pcmk__find_node_in_list
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'pcmk_node_t *pe_find_node(const GList *nodes, const char *node_name) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/status.c:91,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/lib/pengine/status.c:100,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pengine/status.c:119,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pengine/status.c:127,1
    - Dst: check_for_deprecated_rules
      Src: /src/pacemaker/lib/pengine/status.c:109,1
    - Dst: unpack_nodes
      Src: /src/pacemaker/lib/pengine/status.c:129,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/status.c:133,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pengine/status.c:138,1
    - Dst: unpack_status
      Src: /src/pacemaker/lib/pengine/status.c:149,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pengine/status.c:93,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/pengine/status.c:101,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pengine/status.c:107,1
    - Dst: pcmk__sched_warn
      Src: /src/pacemaker/lib/pengine/status.c:122,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pengine/status.c:131,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pengine/status.c:147,1
    - Dst: pe_create_node
      Src: /src/pacemaker/lib/pengine/status.c:171,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pengine/status.c:94,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pengine/status.c:115,1
    - Dst: unpack_config
      Src: /src/pacemaker/lib/pengine/status.c:117,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pengine/status.c:112,1
    - Dst: unpack_remote_nodes
      Src: /src/pacemaker/lib/pengine/status.c:134,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pengine/status.c:160,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/status.c:167,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/status.c:146,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pengine/status.c:169,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/status.c:72,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/status.c:86,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/status.c:83,1
    - Dst: pcmk__check_feature_set
      Src: /src/pacemaker/lib/pengine/status.c:85,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/pengine/status.c:97,1
    - Dst: pcmk__clear_scheduler_flags
      Src: /src/pacemaker/lib/pengine/status.c:103,1
    - Dst: unpack_resources
      Src: /src/pacemaker/lib/pengine/status.c:136,1
    - Dst: pcmk__validate_fencing_topology
      Src: /src/pacemaker/lib/pengine/status.c:140,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pengine/status.c:142,1
    - Dst: unpack_tags
      Src: /src/pacemaker/lib/pengine/status.c:144,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/status.c:152,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/pengine/status.c:175,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 79
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 177
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 177
    functionName: cluster_status
    functionSourceFile: /src/pacemaker/lib/pengine/status.c
    functionUses: []
    functionsReached:
    - unpack_nodes
    - pcmk__set_scheduler_flags
    - unpack_status
    - pcmk__xe_attr_is_true
    - pcmk__check_feature_set
    - pe_create_node
    - pcmk__xe_create
    - unpack_config
    - pcmk_is_set
    - pcmk__xpath_find_one
    - crm_element_value
    - unpack_remote_nodes
    - pcmk_any_flags_set
    - unpack_tags
    - pcmk_find_node
    - unpack_resources
    - pcmk__config_err
    - crm_time_new
    - crm_info
    - crm_trace
    - pcmk__sched_warn
    - check_for_deprecated_rules
    - pcmk__xml_free
    - pcmk__clear_scheduler_flags
    - pcmk__validate_fencing_topology
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean cluster_status(pcmk_scheduler_t * scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/status.c:246,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 2
    argNames:
    - nodes
    - id
    argTypes:
    - GList*
    - char*
    constantsTouched: []
    func_position:
      end: 251
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 251
    functionName: pe_find_node_id
    functionSourceFile: /src/pacemaker/lib/pengine/status.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'pcmk_node_t *pe_find_node_id(const GList *nodes, const char *id) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pengine/clone.c:121,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/clone.c:124,1
    - Dst: g_list_find_custom
      Src: /src/pacemaker/lib/pengine/clone.c:123,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pengine/clone.c:128,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pengine/clone.c:122,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - table
    argTypes:
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 130
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 130
    functionName: sorted_hash_table_values
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - g_list_sort
    - g_list_prepend
    - g_hash_table_iter_init
    - g_list_find_custom
    - g_hash_table_iter_next
    linkageType: ''
    returnType: GList*
    signature: 'static GList *sorted_hash_table_values(GHashTable *table) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_clone_variant_data
      Src: /src/pacemaker/lib/pengine/clone.c:110,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/clone.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - clone
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: pe__clone_promoted_node_max
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - get_clone_variant_data
    - pe__const_top_resource
    linkageType: ''
    returnType: int
    signature: 'int pe__clone_promoted_node_max(const pcmk_resource_t *clone) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/clone.c:290,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/clone.c:296,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/clone.c:293,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pengine/clone.c:304,1
    - Dst: pcmk__warn_once
      Src: /src/pacemaker/lib/pengine/clone.c:298,1
    - Dst: pcmk__warn_once
      Src: /src/pacemaker/lib/pengine/clone.c:306,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/clone.c:316,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 4
    argNames:
    - rsc
    - meta_name
    - deprecated_name
    - default_value
    argTypes:
    - pcmk_resource_t*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 319
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 319
    functionName: unpack_meta_int
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - pcmk__scan_min_int
    - pcmk__str_eq
    - pcmk__warn_once
    - g_hash_table_lookup
    linkageType: ''
    returnType: int
    signature: 'static int unpack_meta_int(const pcmk_resource_t *rsc, const char
      *meta_name, const char *deprecated_name, int default_value) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_clone_variant_data
      Src: /src/pacemaker/lib/pengine/clone.c:1111,1
    - Dst: pe__action_notif_pseudo_ops
      Src: /src/pacemaker/lib/pengine/clone.c:1124,1
    - Dst: pe__new_rsc_pseudo_action
      Src: /src/pacemaker/lib/pengine/clone.c:1114,1
    - Dst: pe__new_rsc_pseudo_action
      Src: /src/pacemaker/lib/pengine/clone.c:1118,1
    - Dst: pe__new_rsc_pseudo_action
      Src: /src/pacemaker/lib/pengine/clone.c:1131,1
    - Dst: pe__new_rsc_pseudo_action
      Src: /src/pacemaker/lib/pengine/clone.c:1135,1
    - Dst: pe__action_notif_pseudo_ops
      Src: /src/pacemaker/lib/pengine/clone.c:1141,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pengine/clone.c:1147,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pengine/clone.c:1149,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pengine/clone.c:1151,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pengine/clone.c:1153,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pengine/clone.c:1155,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - clone
    - any_promoting
    - any_demoting
    argTypes:
    - pcmk_resource_t*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1159
      start: 1103
    functionDepth: 0
    functionLinenumber: 1103
    functionLinenumberEnd: 1159
    functionName: pe__create_promotable_pseudo_ops
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - order_actions
    - pe__new_rsc_pseudo_action
    - pe__action_notif_pseudo_ops
    - get_clone_variant_data
    linkageType: ''
    returnType: void
    signature: 'void pe__create_promotable_pseudo_ops(pcmk_resource_t *clone, bool
      any_promoting, bool any_demoting) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pengine/clone.c:139,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/clone.c:142,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/clone.c:141,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pengine/clone.c:146,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pengine/clone.c:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - table
    - status
    argTypes:
    - GHashTable*
    - char*
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: nodes_with_status
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - g_list_sort
    - strcmp
    - g_list_prepend
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: GList*
    signature: 'static GList *nodes_with_status(GHashTable *table, const char *status) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/clone.c:409,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/clone.c:379,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/clone.c:373,1
    - Dst: unpack_meta_int
      Src: /src/pacemaker/lib/pengine/clone.c:339,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/clone.c:332,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/clone.c:381,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/clone.c:382,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/clone.c:383,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:370,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/clone.c:380,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/clone.c:384,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/clone.c:385,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pengine/clone.c:388,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/clone.c:399,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pengine/clone.c:389,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/clone.c:418,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/pengine/clone.c:391,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/clone.c:419,1
    - Dst: pe__create_clone_child
      Src: /src/pacemaker/lib/pengine/clone.c:432,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/pengine/clone.c:325,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:335,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/clone.c:330,1
    - Dst: unpack_meta_int
      Src: /src/pacemaker/lib/pengine/clone.c:345,1
    - Dst: unpack_meta_int
      Src: /src/pacemaker/lib/pengine/clone.c:350,1
    - Dst: unpack_meta_int
      Src: /src/pacemaker/lib/pengine/clone.c:358,1
    - Dst: QB_MAX
      Src: /src/pacemaker/lib/pengine/clone.c:359,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pengine/clone.c:361,1
    - Dst: pcmk__set_flags_as
      Src: /src/pacemaker/lib/pengine/clone.c:363,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/clone.c:361,1
    - Dst: pe__create_clone_child
      Src: /src/pacemaker/lib/pengine/clone.c:425,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/clone.c:438,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/clone.c:411,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 441
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 441
    functionName: clone_unpack
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - unpack_meta_int
    - pcmk__rsc_trace
    - crm_is_true
    - g_hash_table_lookup
    - pcmk__set_flags_as
    - pcmk__assert_alloc
    - pcmk__xe_first_child
    - g_list_length
    - pcmk__insert_meta
    - pe__create_clone_child
    - pcmk_is_set
    - pcmk__xe_next
    - pcmk__config_err
    - pcmk__str_any_of
    - QB_MAX
    - pcmk__flag_text
    linkageType: ''
    returnType: bool
    signature: 'bool clone_unpack(pcmk_resource_t *rsc) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/clone.c:538,1
    - Dst: strstr
      Src: /src/pacemaker/lib/pengine/clone.c:550,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/clone.c:552,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/clone.c:572,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pengine/clone.c:605,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/clone.c:549,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/clone.c:549,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/clone.c:571,1
    - Dst: pe__resource_is_disabled
      Src: /src/pacemaker/lib/pengine/clone.c:576,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pengine/clone.c:576,1
    - Dst: pcmk__rsc_filtered_by_node
      Src: /src/pacemaker/lib/pengine/clone.c:559,1
    - Dst: configured_role_str
      Src: /src/pacemaker/lib/pengine/clone.c:580,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/clone.c:535,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/clone.c:537,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/clone.c:550,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/clone.c:569,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/clone.c:608,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/clone.c:536,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/clone.c:574,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/clone.c:577,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pengine/clone.c:578,1
    - Dst: pe__resource_description
      Src: /src/pacemaker/lib/pengine/clone.c:581,1
    - Dst: pe__name_and_nvpairs_xml
      Src: /src/pacemaker/lib/pengine/clone.c:585,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/clone.c:597,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 45
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 610
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 610
    functionName: pe__clone_xml
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - strstr
    - g_list_free
    - pcmk__output_xml_pop_parent
    - pe__name_and_nvpairs_xml
    - pcmk__rsc_filtered_by_node
    - pcmk__btoa
    - va_arg
    - rsc_printable_id
    - g_list_prepend
    - configured_role_str
    - pe__resource_is_disabled
    - pcmk__assert
    - pcmk__str_in_list
    - pcmk__flag_text
    - pe__resource_description
    linkageType: ''
    returnType: int
    signature: 'int pe__clone_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:675,1
    - Dst: g_hash_table_get_values
      Src: /src/pacemaker/lib/pengine/clone.c:834,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:817,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:686,1
    - Dst: is_set_recursive
      Src: /src/pacemaker/lib/pengine/clone.c:693,1
    - Dst: pcmk__find_node_in_list
      Src: /src/pacemaker/lib/pengine/clone.c:841,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/clone.c:788,1
    - Dst: clone_header
      Src: /src/pacemaker/lib/pengine/clone.c:905,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/clone.c:843,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/clone.c:688,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/clone.c:690,1
    - Dst: sorted_hash_table_values
      Src: /src/pacemaker/lib/pengine/clone.c:877,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pengine/clone.c:753,1
    - Dst: g_hash_table_get_values
      Src: /src/pacemaker/lib/pengine/clone.c:821,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pengine/clone.c:748,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/clone.c:619,1
    - Dst: get_clone_variant_data
      Src: /src/pacemaker/lib/pengine/clone.c:639,1
    - Dst: strstr
      Src: /src/pacemaker/lib/pengine/clone.c:646,1
    - Dst: node_list_to_str
      Src: /src/pacemaker/lib/pengine/clone.c:884,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pengine/clone.c:906,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/clone.c:645,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:684,1
    - Dst: configured_role
      Src: /src/pacemaker/lib/pengine/clone.c:794,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/clone.c:866,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/clone.c:721,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/clone.c:897,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/clone.c:898,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/clone.c:765,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pengine/clone.c:865,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/clone.c:618,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:669,1
    - Dst: is_set_recursive
      Src: /src/pacemaker/lib/pengine/clone.c:695,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/clone.c:718,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/clone.c:894,1
    - Dst: g_string_truncate
      Src: /src/pacemaker/lib/pengine/clone.c:772,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pengine/clone.c:854,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pengine/clone.c:862,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/clone.c:743,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/clone.c:757,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pengine/clone.c:911,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/clone.c:617,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:662,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:666,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/clone.c:873,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pengine/clone.c:865,1
    - Dst: pcmk__rsc_filtered_by_node
      Src: /src/pacemaker/lib/pengine/clone.c:653,1
    - Dst: clone_header
      Src: /src/pacemaker/lib/pengine/clone.c:737,1
    - Dst: pe__failed_probe_for_rsc
      Src: /src/pacemaker/lib/pengine/clone.c:857,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pengine/clone.c:776,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/pengine/clone.c:785,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:816,1
    - Dst: is_set_recursive
      Src: /src/pacemaker/lib/pengine/clone.c:694,1
    - Dst: clone_header
      Src: /src/pacemaker/lib/pengine/clone.c:791,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pengine/clone.c:825,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pengine/clone.c:862,1
    - Dst: pe__resource_description
      Src: /src/pacemaker/lib/pengine/clone.c:637,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pengine/clone.c:740,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:685,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:793,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/pengine/clone.c:762,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pengine/clone.c:837,1
    - Dst: clone_header
      Src: /src/pacemaker/lib/pengine/clone.c:879,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pengine/clone.c:620,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/clone.c:677,1
    - Dst: clone_header
      Src: /src/pacemaker/lib/pengine/clone.c:768,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pengine/clone.c:867,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/clone.c:780,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/clone.c:813,1
    - Dst: nodes_with_status
      Src: /src/pacemaker/lib/pengine/clone.c:883,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/clone.c:645,1
    - Dst: configured_role
      Src: /src/pacemaker/lib/pengine/clone.c:849,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pengine/clone.c:869,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/clone.c:646,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:747,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/clone.c:891,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 218
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 913
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 913
    functionName: pe__clone_default
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_filtered_by_node
    - g_hash_table_destroy
    - clone_header
    - strdup
    - g_string_free
    - strstr
    - g_hash_table_insert
    - g_string_truncate
    - g_list_free
    - crm_strdup_printf
    - va_arg
    - pcmk_is_set
    - crm_element_value
    - pe__resource_description
    - get_clone_variant_data
    - pcmk__add_word
    - g_list_append
    - g_list_sort
    - crm_exit_str
    - strcmp
    - PCMK__OUTPUT_LIST_FOOTER
    - g_hash_table_get_values
    - nodes_with_status
    - configured_role
    - pcmk__scan_min_int
    - is_set_recursive
    - node_list_to_str
    - pe__failed_probe_for_rsc
    - pcmk__insert_dup
    - pcmk__strkey_table
    - pcmk__find_node_in_list
    - rsc_printable_id
    - g_list_prepend
    - sorted_hash_table_values
    - pcmk__str_in_list
    linkageType: ''
    returnType: int
    signature: 'int pe__clone_default(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_clone_variant_data
      Src: /src/pacemaker/lib/pengine/clone.c:93,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/clone.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - clone
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: pe__clone_promoted_max
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - get_clone_variant_data
    - pe__const_top_resource
    linkageType: ''
    returnType: int
    signature: 'int pe__clone_promoted_max(const pcmk_resource_t *clone) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/pengine/clone.c:156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - GList*
    constantsTouched: []
    func_position:
      end: 160
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 160
    functionName: node_list_to_str
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - pcmk__add_word
    linkageType: ''
    returnType: GString*
    signature: 'static GString *node_list_to_str(const GList *list) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 2
    argNames:
    - rsc
    - all
    argTypes:
    - pcmk_resource_t*
    - bool
    constantsTouched: []
    func_position:
      end: 464
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 464
    functionName: clone_active
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool clone_active(const pcmk_resource_t *rsc, bool all) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_clone_variant_data
      Src: /src/pacemaker/lib/pengine/clone.c:920,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/clone.c:929,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/clone.c:922,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pengine/clone.c:931,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/clone.c:930,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pengine/clone.c:934,1
    - Dst: pcmk__free_resource
      Src: /src/pacemaker/lib/pengine/clone.c:936,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/clone.c:939,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/clone.c:942,1
    - Dst: common_free
      Src: /src/pacemaker/lib/pengine/clone.c:948,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 949
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 949
    functionName: clone_free
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - g_list_free
    - pcmk__rsc_trace
    - pcmk__free_resource
    - pcmk__xml_free
    - common_free
    - pcmk__assert
    - get_clone_variant_data
    linkageType: ''
    returnType: void
    signature: 'void clone_free(pcmk_resource_t * rsc) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:168,1
    - Dst: pe__resource_is_disabled
      Src: /src/pacemaker/lib/pengine/clone.c:176,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:172,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/pengine/clone.c:173,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/pengine/clone.c:169,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/pengine/clone.c:177,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:180,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/pengine/clone.c:181,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:183,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/pengine/clone.c:184,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/clone.c:188,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pengine/clone.c:195,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/clone.c:197,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/clone.c:190,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pengine/clone.c:193,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 5
    argNames:
    - out
    - rc
    - rsc
    - clone_data
    - desc
    argTypes:
    - pcmk__output_t*
    - int*
    - pcmk_resource_t*
    - clone_variant_data_t*
    - char*
    constantsTouched: []
    func_position:
      end: 201
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 201
    functionName: clone_header
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - pcmk__add_separated_word
    - pcmk_is_set
    - pe__resource_is_disabled
    - PCMK__OUTPUT_LIST_HEADER
    - g_string_free
    - pcmk__xe_id
    linkageType: ''
    returnType: void
    signature: 'static void clone_header(pcmk__output_t *out, int *rc, const pcmk_resource_t
      *rsc, clone_variant_data_t *clone_data, const char *desc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/clone.c:469,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pengine/clone.c:476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 480
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 480
    functionName: configured_role_str
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    linkageType: ''
    returnType: char*
    signature: 'static const char *configured_role_str(pcmk_resource_t * rsc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/clone.c:968,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pengine/clone.c:968,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - rsc
    - current
    argTypes:
    - pcmk_resource_t*
    - bool
    constantsTouched: []
    func_position:
      end: 970
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 970
    functionName: clone_resource_state
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk_role_text
    linkageType: ''
    returnType: enum rsc_role_e
    signature: 'enum rsc_role_e clone_resource_state(const pcmk_resource_t *rsc, bool
      current) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_clone_variant_data
      Src: /src/pacemaker/lib/pengine/clone.c:1223,1
    - Dst: pe__action_notif_pseudo_ops
      Src: /src/pacemaker/lib/pengine/clone.c:1226,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pengine/clone.c:1237,1
    - Dst: pe__action_notif_pseudo_ops
      Src: /src/pacemaker/lib/pengine/clone.c:1232,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 5
    argNames:
    - clone
    - start
    - started
    - stop
    - stopped
    argTypes:
    - pcmk_resource_t*
    - pcmk_action_t*
    - pcmk_action_t*
    - pcmk_action_t*
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 1241
      start: 1216
    functionDepth: 0
    functionLinenumber: 1216
    functionLinenumberEnd: 1241
    functionName: pe__create_clone_notif_pseudo_ops
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - order_actions
    - pe__action_notif_pseudo_ops
    - get_clone_variant_data
    linkageType: ''
    returnType: void
    signature: 'void pe__create_clone_notif_pseudo_ops(pcmk_resource_t *clone, pcmk_action_t
      *start, pcmk_action_t *started, pcmk_action_t *stop, pcmk_action_t *stopped) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_clone_variant_data
      Src: /src/pacemaker/lib/pengine/clone.c:76,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/clone.c:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - clone
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: pe__clone_node_max
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - get_clone_variant_data
    - pe__const_top_resource
    linkageType: ''
    returnType: int
    signature: 'int pe__clone_node_max(const pcmk_resource_t *clone) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: configured_role_str
      Src: /src/pacemaker/lib/pengine/clone.c:486,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pengine/clone.c:491,1
    - Dst: pcmk_parse_role
      Src: /src/pacemaker/lib/pengine/clone.c:489,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 496
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 496
    functionName: configured_role
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - pcmk__config_err
    - pcmk_parse_role
    - configured_role_str
    linkageType: ''
    returnType: enum rsc_role_e
    signature: 'static enum rsc_role_e configured_role(pcmk_resource_t *rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pengine/clone.c:983,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/pengine/clone.c:986,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - rsc
    - scheduler
    argTypes:
    - pcmk_resource_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 991
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 991
    functionName: pe__is_universal_clone
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - pcmk__is_clone
    - g_list_length
    linkageType: ''
    returnType: bool
    signature: 'bool pe__is_universal_clone(const pcmk_resource_t *rsc, const pcmk_scheduler_t
      *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_clone_variant_data
      Src: /src/pacemaker/lib/pengine/clone.c:1191,1
    - Dst: pe__free_action_notification_data
      Src: /src/pacemaker/lib/pengine/clone.c:1196,1
    - Dst: pe__free_action_notification_data
      Src: /src/pacemaker/lib/pengine/clone.c:1202,1
    - Dst: pe__free_action_notification_data
      Src: /src/pacemaker/lib/pengine/clone.c:1199,1
    - Dst: pe__free_action_notification_data
      Src: /src/pacemaker/lib/pengine/clone.c:1193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - clone
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1204
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1204
    functionName: pe__free_clone_notification_data
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - pe__free_action_notification_data
    - get_clone_variant_data
    linkageType: ''
    returnType: void
    signature: 'void pe__free_clone_notification_data(pcmk_resource_t *clone) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_clone_variant_data
      Src: /src/pacemaker/lib/pengine/clone.c:1256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1258
      start: 1251
    functionDepth: 0
    functionLinenumber: 1251
    functionLinenumberEnd: 1258
    functionName: pe__clone_max_per_node
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - get_clone_variant_data
    linkageType: ''
    returnType: unsigned int
    signature: 'unsigned int pe__clone_max_per_node(const pcmk_resource_t *rsc) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:503,1
    - Dst: is_set_recursive
      Src: /src/pacemaker/lib/pengine/clone.c:514,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 3
    argNames:
    - rsc
    - flag
    - any
    argTypes:
    - pcmk_resource_t*
    - long long
    - bool
    constantsTouched: []
    func_position:
      end: 528
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 528
    functionName: is_set_recursive
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - is_set_recursive
    - pcmk_is_set
    linkageType: ''
    returnType: bool
    signature: 'bool is_set_recursive(const pcmk_resource_t *rsc, long long flag,
      bool any) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/clone.c:1000,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/pengine/clone.c:1004,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/clone.c:1004,1
    - Dst: rsc_printable_id
      Src: /src/pacemaker/lib/pengine/clone.c:1000,1
    - Dst: get_clone_variant_data
      Src: /src/pacemaker/lib/pengine/clone.c:1003,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - rsc
    - only_rsc
    - check_parent
    argTypes:
    - pcmk_resource_t*
    - GList*
    - bool
    constantsTouched: []
    func_position:
      end: 1023
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 1023
    functionName: pe__clone_is_filtered
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - pcmk__str_in_list
    - rsc_printable_id
    - get_clone_variant_data
    - pcmk__xe_id
    linkageType: ''
    returnType: bool
    signature: 'bool pe__clone_is_filtered(const pcmk_resource_t *rsc, const GList
      *only_rsc, bool check_parent) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_clone_variant_data
      Src: /src/pacemaker/lib/pengine/clone.c:59,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pengine/clone.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - clone
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: pe__clone_max
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - get_clone_variant_data
    - pe__const_top_resource
    linkageType: ''
    returnType: int
    signature: 'int pe__clone_max(const pcmk_resource_t *clone) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_clone_variant_data
      Src: /src/pacemaker/lib/pengine/clone.c:1046,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:1047,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - clone
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1048
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1048
    functionName: pe__clone_is_ordered
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - get_clone_variant_data
    linkageType: ''
    returnType: bool
    signature: 'bool pe__clone_is_ordered(const pcmk_resource_t *clone) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_clone_variant_data
      Src: /src/pacemaker/lib/pengine/clone.c:1089,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/pengine/clone.c:1092,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/clone.c:1090,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - clone
    - flags
    argTypes:
    - pcmk_resource_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1093
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1093
    functionName: pe__clone_flag_is_set
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - get_clone_variant_data
    - pcmk_all_flags_set
    linkageType: ''
    returnType: bool
    signature: 'bool pe__clone_flag_is_set(const pcmk_resource_t *clone, uint32_t
      flags) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pengine/clone.c:207,1
    - Dst: QB_MIN
      Src: /src/pacemaker/lib/pengine/clone.c:215,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/pengine/clone.c:216,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pengine/clone.c:210,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 4
    argNames:
    - standard
    - rsc
    - rid
    - scheduler
    argTypes:
    - char*
    - pcmk_resource_t*
    - char*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 218
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 218
    functionName: pe__force_anon
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - pcmk__is_clone
    - QB_MIN
    - g_list_length
    - pcmk__config_warn
    linkageType: ''
    returnType: void
    signature: 'void pe__force_anon(const char *standard, pcmk_resource_t *rsc, const
      char *rid, pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_clone_variant_data
      Src: /src/pacemaker/lib/pengine/clone.c:1029,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pengine/clone.c:1030,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1031
      start: 1025
    functionDepth: 0
    functionLinenumber: 1025
    functionLinenumberEnd: 1031
    functionName: pe__clone_child_id
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - pcmk__xe_id
    - get_clone_variant_data
    linkageType: ''
    returnType: char*
    signature: 'const char *pe__clone_child_id(const pcmk_resource_t *rsc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_clone_variant_data
      Src: /src/pacemaker/lib/pengine/clone.c:1065,1
    - Dst: pcmk__set_flags_as
      Src: /src/pacemaker/lib/pengine/clone.c:1069,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pengine/clone.c:1066,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - clone
    - flag
    argTypes:
    - pcmk_resource_t*
    - enum pcmk__clone_flags
    constantsTouched: []
    func_position:
      end: 1073
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1073
    functionName: pe__set_clone_flag
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk__set_flags_as
    - get_clone_variant_data
    linkageType: ''
    returnType: int
    signature: 'int pe__set_clone_flag(pcmk_resource_t *clone, enum pcmk__clone_flags
      flag) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_clone_variant_data
      Src: /src/pacemaker/lib/pengine/clone.c:230,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/clone.c:240,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pengine/clone.c:232,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/pengine/clone.c:243,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pengine/clone.c:241,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pengine/clone.c:245,1
    - Dst: pe__unpack_resource
      Src: /src/pacemaker/lib/pengine/clone.c:247,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pengine/clone.c:253,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/clone.c:255,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/clone.c:257,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pengine/clone.c:262,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/clone.c:266,1
    - Dst: pe__set_resource_flags_recursive
      Src: /src/pacemaker/lib/pengine/clone.c:259,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/clone.c:267,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pengine/clone.c:263,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 2
    argNames:
    - rsc
    - scheduler
    argTypes:
    - pcmk_resource_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 270
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 270
    functionName: pe__create_clone_child
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - pe__set_resource_flags_recursive
    - CRM_CHECK
    - pcmk__itoa
    - pcmk__xml_copy
    - pcmk__rsc_trace
    - g_list_append
    - crm_xml_add
    - pcmk__insert_meta
    - free
    - pcmk__assert
    - pe__unpack_resource
    - get_clone_variant_data
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'pcmk_resource_t *pe__create_clone_child(pcmk_resource_t *rsc, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_clone_variant_data
      Src: /src/pacemaker/lib/pengine/clone.c:1172,1
    - Dst: pe__create_action_notifications
      Src: /src/pacemaker/lib/pengine/clone.c:1177,1
    - Dst: pe__create_action_notifications
      Src: /src/pacemaker/lib/pengine/clone.c:1176,1
    - Dst: pe__create_action_notifications
      Src: /src/pacemaker/lib/pengine/clone.c:1174,1
    - Dst: pe__create_action_notifications
      Src: /src/pacemaker/lib/pengine/clone.c:1175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - clone
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1178
      start: 1167
    functionDepth: 0
    functionLinenumber: 1167
    functionLinenumberEnd: 1178
    functionName: pe__create_clone_notifications
    functionSourceFile: /src/pacemaker/lib/pengine/clone.c
    functionUses: []
    functionsReached:
    - pe__create_action_notifications
    - get_clone_variant_data
    linkageType: ''
    returnType: void
    signature: 'void pe__create_clone_notifications(pcmk_resource_t *clone) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/unpack/pe_base_name_end_test.c:16,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/unpack/pe_base_name_end_test.c:17,1
    - Dst: pe_base_name_end
      Src: /src/pacemaker/lib/pengine/tests/unpack/pe_base_name_end_test.c:17,1
    - Dst: pe_base_name_end
      Src: /src/pacemaker/lib/pengine/tests/unpack/pe_base_name_end_test.c:16,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: bad_args
    functionSourceFile: /src/pacemaker/lib/pengine/tests/unpack/pe_base_name_end_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - pe_base_name_end
    linkageType: ''
    returnType: void
    signature: 'static void bad_args(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pengine/tests/unpack/pe_base_name_end_test.c:28,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pengine/tests/unpack/pe_base_name_end_test.c:29,1
    - Dst: pe_base_name_end
      Src: /src/pacemaker/lib/pengine/tests/unpack/pe_base_name_end_test.c:29,1
    - Dst: pe_base_name_end
      Src: /src/pacemaker/lib/pengine/tests/unpack/pe_base_name_end_test.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: has_suffix
    functionSourceFile: /src/pacemaker/lib/pengine/tests/unpack/pe_base_name_end_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pe_base_name_end
    linkageType: ''
    returnType: void
    signature: 'static void has_suffix(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pengine/tests/unpack/pe_base_name_end_test.c:22,1
    - Dst: pe_base_name_end
      Src: /src/pacemaker/lib/pengine/tests/unpack/pe_base_name_end_test.c:23,1
    - Dst: pe_base_name_end
      Src: /src/pacemaker/lib/pengine/tests/unpack/pe_base_name_end_test.c:22,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pengine/tests/unpack/pe_base_name_end_test.c:23,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: no_suffix
    functionSourceFile: /src/pacemaker/lib/pengine/tests/unpack/pe_base_name_end_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pe_base_name_end
    linkageType: ''
    returnType: void
    signature: 'static void no_suffix(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_node_name_test.c:23,1
    - Dst: pe__cmp_node_name
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_node_name_test.c:23,1
    - Dst: pe__cmp_node_name
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_node_name_test.c:27,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_node_name_test.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: nodes_equal
    functionSourceFile: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_node_name_test.c
    functionUses: []
    functionsReached:
    - pe__cmp_node_name
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void nodes_equal(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_node_name_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_node_name_test.c:38,1
    - Dst: pe__cmp_node_name
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_node_name_test.c:33,1
    - Dst: pe__cmp_node_name
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_node_name_test.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: node1_first
    functionSourceFile: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_node_name_test.c
    functionUses: []
    functionsReached:
    - pe__cmp_node_name
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void node1_first(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_node_name_test.c:44,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_node_name_test.c:48,1
    - Dst: pe__cmp_node_name
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_node_name_test.c:44,1
    - Dst: pe__cmp_node_name
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_node_name_test.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: node2_first
    functionSourceFile: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_node_name_test.c
    functionUses: []
    functionsReached:
    - pe__cmp_node_name
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void node2_first(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_rsc_priority_test.c:26,1
    - Dst: pe__cmp_rsc_priority
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_rsc_priority_test.c:26,1
    - Dst: pe__cmp_rsc_priority
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_rsc_priority_test.c:27,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_rsc_priority_test.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: rscs_equal
    functionSourceFile: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_rsc_priority_test.c
    functionUses: []
    functionsReached:
    - pe__cmp_rsc_priority
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void rscs_equal(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_rsc_priority_test.c:35,1
    - Dst: pe__cmp_rsc_priority
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_rsc_priority_test.c:36,1
    - Dst: pe__cmp_rsc_priority
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_rsc_priority_test.c:35,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_rsc_priority_test.c:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: rsc1_first
    functionSourceFile: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_rsc_priority_test.c
    functionUses: []
    functionsReached:
    - pe__cmp_rsc_priority
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void rsc1_first(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_rsc_priority_test.c:44,1
    - Dst: pe__cmp_rsc_priority
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_rsc_priority_test.c:44,1
    - Dst: pe__cmp_rsc_priority
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_rsc_priority_test.c:45,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_rsc_priority_test.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: rsc2_first
    functionSourceFile: /src/pacemaker/lib/pengine/tests/utils/pe__cmp_rsc_priority_test.c
    functionUses: []
    functionsReached:
    - pe__cmp_rsc_priority
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void rsc2_first(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:16,1
    - Dst: pe_find_node_id
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:17,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:17,1
    - Dst: pe_find_node_id
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:16,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: empty_list
    functionSourceFile: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c
    functionUses: []
    functionsReached:
    - pe_find_node_id
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void empty_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:28,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:34,1
    - Dst: pe_find_node_id
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:39,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:42,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:44,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:46,1
    - Dst: pe_find_node_id
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:36,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:39,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:24,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:27,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:25,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:33,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:36,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:40,1
    - Dst: pe_find_node_id
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:40,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:43,1
    - Dst: pe_find_node_id
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:38,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:38,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:37,1
    - Dst: pe_find_node_id
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:37,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c:45,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 47
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 47
    functionName: non_null_list
    functionSourceFile: /src/pacemaker/lib/pengine/tests/status/pe_find_node_id_test.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_list_free
    - pe_find_node_id
    - pcmk__assert_alloc
    - assert_ptr_equal
    - free
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void non_null_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:16,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:17,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:18,1
    - Dst: pe_find_node_any
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:17,1
    - Dst: pe_find_node_any
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:16,1
    - Dst: pe_find_node_any
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:18,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:19,1
    - Dst: pe_find_node_any
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:19,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 20
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 20
    functionName: empty_list
    functionSourceFile: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c
    functionUses: []
    functionsReached:
    - pe_find_node_any
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void empty_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:26,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:29,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:27,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:38,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:39,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:41,1
    - Dst: pe_find_node_any
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:42,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:48,1
    - Dst: pe_find_node_any
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:49,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:50,1
    - Dst: pe_find_node_any
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:41,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:45,1
    - Dst: pe_find_node_any
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:47,1
    - Dst: pe_find_node_any
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:50,1
    - Dst: pe_find_node_any
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:51,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:52,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:55,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:58,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:30,1
    - Dst: pe_find_node_any
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:45,1
    - Dst: pe_find_node_any
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:48,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:44,1
    - Dst: pe_find_node_any
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:52,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:56,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:57,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:42,1
    - Dst: pe_find_node_any
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:44,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:47,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:49,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:51,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c:54,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 59
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 59
    functionName: non_null_list
    functionSourceFile: /src/pacemaker/lib/pengine/tests/status/pe_find_node_any_test.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_list_free
    - pcmk__assert_alloc
    - assert_ptr_equal
    - pe_find_node_any
    - free
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void non_null_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:116,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:117,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:116,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:118,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:117,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:118,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:119,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:119,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:120,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: primitive_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - assert_false
    - pe_base_name_eq
    linkageType: ''
    returnType: void
    signature: 'static void primitive_rsc(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:97,1
    - Dst: pcmk__xml_test_teardown_group
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: teardown
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_test_teardown_group
    - pcmk_free_scheduler
    linkageType: ''
    returnType: int
    signature: 'static int teardown(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:134,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:137,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:135,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:134,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:135,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:137,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:138,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:138,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:139,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:139,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:140,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:142,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:141,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:140,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:141,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: clone_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - assert_false
    - pe_base_name_eq
    linkageType: ''
    returnType: void
    signature: 'static void clone_rsc(void **state) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_test_setup_group
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:28,1
    - Dst: pcmk__xml_read
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:31,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:32,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:30,1
    - Dst: getenv
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:30,1
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:38,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:43,1
    - Dst: cluster_status
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:46,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:54,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:57,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:60,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:71,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:76,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:82,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:69,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:63,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:84,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 60
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 92
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 92
    functionName: setup
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - strcmp
    - pcmk__xml_test_setup_group
    - pcmk__set_scheduler_flags
    - pcmk__xml_read
    - free
    - pcmk_new_scheduler
    - getenv
    - cluster_status
    linkageType: ''
    returnType: int
    signature: 'static int setup(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:125,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:125,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:127,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:126,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:126,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:127,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:128,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:128,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:129,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: group_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - assert_false
    - pe_base_name_eq
    linkageType: ''
    returnType: void
    signature: 'static void group_rsc(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:106,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:106,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:107,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:107,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:110,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: bad_args
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c
    functionUses: []
    functionsReached:
    - assert_false
    - pe_base_name_eq
    linkageType: ''
    returnType: void
    signature: 'static void bad_args(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:147,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:148,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:148,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:147,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:149,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:149,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:150,1
    - Dst: pe_base_name_eq
      Src: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: bundle_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/pe_base_name_eq_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - assert_false
    - pe_base_name_eq
    linkageType: ''
    returnType: void
    signature: 'static void bundle_rsc(void **state) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_test_setup_group
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:29,1
    - Dst: pcmk__xml_read
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:32,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:33,1
    - Dst: getenv
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:31,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:31,1
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:39,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:44,1
    - Dst: cluster_status
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:47,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:50,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:51,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:66,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:70,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:60,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:52,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:64,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:68,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:62,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 76
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 76
    functionName: setup
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - strcmp
    - pcmk__xml_test_setup_group
    - pcmk__set_scheduler_flags
    - pcmk__xml_read
    - free
    - pcmk_find_node
    - pcmk_new_scheduler
    - getenv
    - cluster_status
    linkageType: ''
    returnType: int
    signature: 'static int setup(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:161,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:164,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:164,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:166,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:165,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:170,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:170,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:172,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:172,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:176,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:176,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:180,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:180,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:183,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 186
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 186
    functionName: group_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - assert_null
    - native_find_rsc
    - assert_ptr_equal
    linkageType: ''
    returnType: void
    signature: 'static void group_rsc(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:94,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:100,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:103,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:103,1
    - Dst: g_ascii_strup
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:106,1
    - Dst: g_list_first
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:88,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:94,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:95,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:95,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:98,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:112,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:92,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:99,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:99,1
    - Dst: free
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:104,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:112,1
    - Dst: g_free
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:108,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:102,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:107,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:107,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 114
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 114
    functionName: bad_args
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c
    functionUses: []
    functionsReached:
    - g_ascii_strup
    - crm_strdup_printf
    - assert_non_null
    - g_list_first
    - free
    - native_find_rsc
    - g_free
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void bad_args(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:221,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:230,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:230,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:231,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:227,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:232,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:236,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:236,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:238,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:238,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:246,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:249,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:246,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:250,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:242,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:242,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 252
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 252
    functionName: group_member_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - strcmp
    - assert_ptr_equal
    - native_find_rsc
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void group_member_rsc(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:305,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:327,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:317,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:293,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:298,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:301,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:313,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:326,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:316,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:297,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:296,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:300,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:313,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:309,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:322,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:296,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:305,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:308,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 331
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 331
    functionName: clone_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - assert_null
    - native_find_rsc
    - assert_ptr_equal
    linkageType: ''
    returnType: void
    signature: 'static void clone_rsc(void **state) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:368,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:374,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:377,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:378,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:382,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:388,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:391,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:397,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:403,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:416,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:432,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:456,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:489,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:465,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:456,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:482,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:446,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:472,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:469,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:377,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:381,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:387,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:396,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:412,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:419,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:425,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:432,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:438,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:446,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:464,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:484,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:417,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:454,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:471,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:485,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:468,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:454,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:449,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:381,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:387,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:394,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:399,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:409,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:411,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:420,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:424,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:435,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:439,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:443,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:429,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:481,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:465,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:366,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:373,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:379,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:392,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:383,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:388,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:394,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:399,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:404,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:408,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:428,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:435,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:464,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:490,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:476,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:449,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:442,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:477,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 92
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 494
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 494
    functionName: clone_instance_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - strcmp
    - assert_ptr_equal
    - native_find_rsc
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void clone_instance_rsc(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:528,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:533,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:531,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:532,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:531,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:537,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:537,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:539,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:539,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:543,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:547,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:543,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:546,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 549
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 549
    functionName: bundle_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - assert_null
    - native_find_rsc
    - assert_ptr_equal
    linkageType: ''
    returnType: void
    signature: 'static void bundle_rsc(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pe__foreach_bundle_replica
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 673
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 673
    functionName: bundle_replica_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c
    functionUses: []
    functionsReached:
    - pe__foreach_bundle_replica
    linkageType: ''
    returnType: void
    signature: 'static void bundle_replica_rsc(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:126,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:136,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:135,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:132,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:135,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:137,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:141,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:141,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:143,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:143,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:147,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:151,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:151,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:154,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:155,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:147,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 157
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 157
    functionName: primitive_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - strcmp
    - assert_ptr_equal
    - native_find_rsc
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void primitive_rsc(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:81,1
    - Dst: pcmk__xml_test_teardown_group
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: teardown
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_test_teardown_group
    - pcmk_free_scheduler
    linkageType: ''
    returnType: int
    signature: 'static int teardown(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:190,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:193,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:195,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:194,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:193,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:199,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:199,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:201,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:201,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:205,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:205,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:207,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 209
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 209
    functionName: inactive_group_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - assert_null
    - native_find_rsc
    - assert_ptr_equal
    linkageType: ''
    returnType: void
    signature: 'static void inactive_group_rsc(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:264,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:270,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:273,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:274,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:273,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:275,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:279,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:279,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:281,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:281,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:285,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:285,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:287,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:287,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 289
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 289
    functionName: inactive_group_member_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - strcmp
    - assert_ptr_equal
    - native_find_rsc
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void inactive_group_member_rsc(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:335,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:339,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:338,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:338,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:340,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:342,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:343,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:347,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:347,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:350,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 353
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 353
    functionName: inactive_clone_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - assert_null
    - native_find_rsc
    - assert_ptr_equal
    linkageType: ''
    returnType: void
    signature: 'static void inactive_clone_rsc(void **state) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:507,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:514,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:518,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:515,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:509,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:519,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:521,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:522,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 524
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 524
    functionName: renamed_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - strcmp
    - native_find_rsc
    - assert_ptr_equal
    linkageType: ''
    returnType: void
    signature: 'static void renamed_rsc(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:568,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:585,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:658,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:648,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:574,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:580,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:607,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:628,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:650,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:567,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:639,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:596,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:664,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:625,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:661,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:603,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:560,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:572,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:582,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:566,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:574,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:591,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:648,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:634,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:622,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:598,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:565,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:589,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:653,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:631,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:559,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:572,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:582,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:594,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:649,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:618,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:577,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:601,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:573,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:660,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:608,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:613,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:562,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:568,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:571,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:584,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:657,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:639,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:647,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:621,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:565,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:580,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:601,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:663,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:567,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:587,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:561,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:571,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:599,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:603,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:654,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:617,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:628,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:566,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:594,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:649,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:625,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:612,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:578,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:587,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:589,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:634,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:647,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:631,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:573,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:592,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:596,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:650,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 85
    argCount: 2
    argNames:
    - replica
    - user_data
    argTypes:
    - pcmk__bundle_replica_t*
    - void*
    constantsTouched: []
    func_position:
      end: 667
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 667
    functionName: bundle_first_replica
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - assert_null
    - native_find_rsc
    - assert_ptr_equal
    linkageType: ''
    returnType: bool
    signature: 'static bool bundle_first_replica(pcmk__bundle_replica_t *replica,
      void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:680,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:685,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:700,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:705,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:697,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:684,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:693,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:711,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:697,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:677,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:682,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:689,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:692,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:710,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:681,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:680,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:689,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:706,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:701,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 715
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 715
    functionName: clone_group_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - assert_null
    - native_find_rsc
    - assert_ptr_equal
    linkageType: ''
    returnType: void
    signature: 'static void clone_group_rsc(void **rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:730,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:736,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:739,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:743,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:753,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:749,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:759,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:761,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:771,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:773,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:811,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:830,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:833,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:794,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:787,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:826,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:739,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:735,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:741,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:745,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:750,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:758,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:761,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:766,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:770,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:779,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:782,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:818,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:790,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:797,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:843,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:846,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:852,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:740,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:750,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:756,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:744,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:765,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:778,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:786,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:797,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:804,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:811,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:839,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:847,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:816,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:805,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:827,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:818,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:851,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:781,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:728,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:743,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:754,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:749,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:756,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:774,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:791,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:794,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:808,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:816,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:808,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:827,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:834,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:831,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:800,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:844,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:801,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:826,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:838,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 92
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 856
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 856
    functionName: clone_group_instance_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - strcmp
    - assert_ptr_equal
    - native_find_rsc
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void clone_group_instance_rsc(void **rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:868,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:886,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:873,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:883,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:886,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:887,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:888,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:892,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:893,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:895,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:896,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:905,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:905,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:908,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:909,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:901,1
    - Dst: native_find_rsc
      Src: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c:901,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 911
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 911
    functionName: clone_group_member_rsc
    functionSourceFile: /src/pacemaker/lib/pengine/tests/native/native_find_rsc_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - strcmp
    - assert_ptr_equal
    - native_find_rsc
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void clone_group_member_rsc(void **state) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/services/services.c:260,1
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/services/services.c:307,1
    - Dst: crm_crit
      Src: /src/pacemaker/lib/services/services.c:265,1
    - Dst: crm_crit
      Src: /src/pacemaker/lib/services/services.c:297,1
    - Dst: strerror
      Src: /src/pacemaker/lib/services/services.c:298,1
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/services/services.c:303,1
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/services/services.c:311,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services.c:315,1
    - Dst: services__handle_exec_error
      Src: /src/pacemaker/lib/services/services.c:322,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/services/services.c:267,1
    - Dst: strerror
      Src: /src/pacemaker/lib/services/services.c:265,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/services/services.c:278,1
    - Dst: required_argument_missing
      Src: /src/pacemaker/lib/services/services.c:285,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/services.c:287,1
    - Dst: services__generic_error
      Src: /src/pacemaker/lib/services/services.c:287,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/services/services.c:293,1
    - Dst: services__lsb_prepare
      Src: /src/pacemaker/lib/services/services.c:308,1
    - Dst: new_action
      Src: /src/pacemaker/lib/services/services.c:263,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/services/services.c:281,1
    - Dst: copy_action_arguments
      Src: /src/pacemaker/lib/services/services.c:295,1
    - Dst: services__ocf_prepare
      Src: /src/pacemaker/lib/services/services.c:304,1
    - Dst: services__handle_exec_error
      Src: /src/pacemaker/lib/services/services.c:299,1
    - Dst: services__systemd_prepare
      Src: /src/pacemaker/lib/services/services.c:312,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services.c:320,1
    - Dst: strerror
      Src: /src/pacemaker/lib/services/services.c:321,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 9
    argNames:
    - name
    - standard
    - provider
    - agent
    - action
    - interval_ms
    - timeout
    - params
    - flags
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - guint
    - int
    - GHashTable*
    - enum svc_action_flags
    constantsTouched: []
    func_position:
      end: 325
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 325
    functionName: services__create_resource_action
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - services__generic_error
    - strcasecmp
    - services__ocf_prepare
    - services__lsb_prepare
    - pcmk__op_key
    - g_hash_table_destroy
    - strerror
    - copy_action_arguments
    - crm_info
    - pcmk_is_set
    - services__set_result
    - services__systemd_prepare
    - services__handle_exec_error
    - required_argument_missing
    - pcmk_get_ra_caps
    - crm_crit
    - new_action
    linkageType: ''
    returnType: svc_action_t*
    signature: 'svc_action_t *services__create_resource_action(const char *name, const
      char *standard, const char *provider, const char *agent, const char *action,
      guint interval_ms, int timeout, GHashTable *params, enum svc_action_flags flags) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services.c:542,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services.c:552,1
    - Dst: services__systemd2ocf
      Src: /src/pacemaker/lib/services/services.c:548,1
    - Dst: services__ocf2ocf
      Src: /src/pacemaker/lib/services/services.c:543,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services.c:546,1
    - Dst: services__lsb2ocf
      Src: /src/pacemaker/lib/services/services.c:554,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/services/services.c:558,1
    - Dst: services__ocf2ocf
      Src: /src/pacemaker/lib/services/services.c:560,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - standard
    - action
    - exit_status
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 562
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 562
    functionName: services_result2ocf
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - services__systemd2ocf
    - services__lsb2ocf
    - pcmk__str_eq
    - services__ocf2ocf
    - crm_warn
    linkageType: ''
    returnType: enum ocf_exitcode
    signature: 'enum ocf_exitcode services_result2ocf(const char *standard, const
      char *action, int exit_status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: services_action_async_fork_notify
      Src: /src/pacemaker/lib/services/services.c:882,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - op
    - (*action_callback)
    argTypes:
    - svc_action_t*
    - void
    constantsTouched: []
    func_position:
      end: 883
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 883
    functionName: services_action_async
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - services_action_async_fork_notify
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean services_action_async(svc_action_t * op, void (*action_callback)
      (svc_action_t *)) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/services/services.c:1068,1
    - Dst: resources_os_list_ocf_providers
      Src: /src/pacemaker/lib/services/services.c:1069,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/services/services.c:1068,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - standard
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1073
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1073
    functionName: resources_list_providers
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - resources_os_list_ocf_providers
    - pcmk_is_set
    - pcmk_get_ra_caps
    linkageType: ''
    returnType: GList*
    signature: 'GList *resources_list_providers(const char *standard) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services.c:1227,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:1229,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services.c:1230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - action
    - agent_status
    - exec_status
    - reason
    argTypes:
    - svc_action_t*
    - int
    - enum pcmk_exec_status
    - char*
    constantsTouched: []
    func_position:
      end: 1232
      start: 1216
    functionDepth: 0
    functionLinenumber: 1216
    functionLinenumberEnd: 1232
    functionName: services__set_result
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - strdup
    - free
    - pcmk__str_eq
    linkageType: ''
    returnType: void
    signature: 'void services__set_result(svc_action_t *action, int agent_status,
      enum pcmk_exec_status exec_status, const char *reason) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: services__create_resource_action
      Src: /src/pacemaker/lib/services/services.c:333,1
    - Dst: services_action_free
      Src: /src/pacemaker/lib/services/services.c:337,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 10
    argCount: 9
    argNames:
    - name
    - standard
    - provider
    - agent
    - action
    - interval_ms
    - timeout
    - params
    - flags
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - guint
    - int
    - GHashTable*
    - enum svc_action_flags
    constantsTouched: []
    func_position:
      end: 346
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 346
    functionName: resources_action_create
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - services_action_free
    - services__create_resource_action
    linkageType: ''
    returnType: svc_action_t*
    signature: 'svc_action_t *resources_action_create(const char *name, const char
      *standard, const char *provider, const char *agent, const char *action, guint
      interval_ms, int timeout, GHashTable *params, enum svc_action_flags flags) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services.c:499,1
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/services/services.c:500,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/services/services.c:507,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/services/services.c:510,1
    - Dst: dbus_pending_call_get_completed
      Src: /src/pacemaker/lib/services/services.c:505,1
    - Dst: dbus_pending_call_cancel
      Src: /src/pacemaker/lib/services/services.c:513,1
    - Dst: services_set_op_pending
      Src: /src/pacemaker/lib/services/services.c:514,1
    - Dst: mainloop_del_fd
      Src: /src/pacemaker/lib/services/services.c:519,1
    - Dst: mainloop_del_fd
      Src: /src/pacemaker/lib/services/services.c:524,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 527
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 527
    functionName: services_action_cleanup
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - crm_debug
    - dbus_pending_call_get_completed
    - mainloop_del_fd
    - services_set_op_pending
    - crm_warn
    - crm_trace
    - g_source_remove
    - dbus_pending_call_cancel
    linkageType: ''
    returnType: void
    signature: 'void services_action_cleanup(svc_action_t * op) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_list_find
      Src: /src/pacemaker/lib/services/services.c:577,1
    - Dst: g_list_find
      Src: /src/pacemaker/lib/services/services.c:578,1
    - Dst: services_action_cleanup
      Src: /src/pacemaker/lib/services/services.c:583,1
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/services/services.c:586,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:600,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/services/services.c:578,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:604,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:605,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:607,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:608,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:609,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:611,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:612,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/services/services.c:579,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/services/services.c:580,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:590,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:597,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:603,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:619,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/services/services.c:577,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:591,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:594,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/services/services.c:593,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/services/services.c:615,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 620
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 620
    functionName: services_action_free
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - g_list_find
    - g_hash_table_lookup
    - g_hash_table_destroy
    - PCMK__NELEM
    - services_action_cleanup
    - free
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: 'void services_action_free(svc_action_t * op) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/services/services.c:1080,1
    - Dst: resources_os_list_ocf_agents
      Src: /src/pacemaker/lib/services/services.c:1090,1
    - Dst: g_list_concat
      Src: /src/pacemaker/lib/services/services.c:1092,1
    - Dst: g_list_concat
      Src: /src/pacemaker/lib/services/services.c:1097,1
    - Dst: services__list_lsb_agents
      Src: /src/pacemaker/lib/services/services.c:1097,1
    - Dst: systemd_unit_listall
      Src: /src/pacemaker/lib/services/services.c:1102,1
    - Dst: g_list_concat
      Src: /src/pacemaker/lib/services/services.c:1104,1
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/services/services.c:1110,1
    - Dst: resources_os_list_ocf_agents
      Src: /src/pacemaker/lib/services/services.c:1111,1
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/services/services.c:1113,1
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/services/services.c:1117,1
    - Dst: systemd_unit_listall
      Src: /src/pacemaker/lib/services/services.c:1118,1
    - Dst: services__list_lsb_agents
      Src: /src/pacemaker/lib/services/services.c:1114,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 2
    argNames:
    - standard
    - provider
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1123
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1123
    functionName: resources_list_agents
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - strcasecmp
    - resources_os_list_ocf_agents
    - g_list_concat
    - services__list_lsb_agents
    - systemd_unit_listall
    linkageType: ''
    returnType: GList*
    signature: 'GList *resources_list_agents(const char *standard, const char *provider) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services.c:98,1
    - Dst: g_list_find
      Src: /src/pacemaker/lib/services/services.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: inflight_systemd
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - g_list_find
    linkageType: ''
    returnType: gboolean
    signature: 'static inline gboolean inflight_systemd(const svc_action_t *op) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services.c:219,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services.c:235,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services.c:224,1
    - Dst: expand_resource_class
      Src: /src/pacemaker/lib/services/services.c:229,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/services/services.c:234,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services.c:238,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/services/services.c:243,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services.c:244,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 7
    argNames:
    - op
    - ra_caps
    - name
    - standard
    - provider
    - agent
    - action
    argTypes:
    - svc_action_t*
    - uint32_t
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 250
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 250
    functionName: copy_action_arguments
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - strdup
    - pcmk_is_set
    - pcmk__str_eq
    - expand_resource_class
    linkageType: ''
    returnType: int
    signature: 'static int copy_action_arguments(svc_action_t *op, uint32_t ra_caps,
      const char *name, const char *standard, const char *provider, const char *agent,
      const char *action) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/services/services.c:652,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/services/services.c:657,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services.c:675,1
    - Dst: init_recurring_actions
      Src: /src/pacemaker/lib/services/services.c:656,1
    - Dst: cancel_recurring_action
      Src: /src/pacemaker/lib/services/services.c:666,1
    - Dst: mainloop_child_kill
      Src: /src/pacemaker/lib/services/services.c:677,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/services.c:679,1
    - Dst: inflight_systemd
      Src: /src/pacemaker/lib/services/services.c:686,1
    - Dst: g_list_remove
      Src: /src/pacemaker/lib/services/services.c:687,1
    - Dst: services_action_cleanup
      Src: /src/pacemaker/lib/services/services.c:692,1
    - Dst: services_action_free
      Src: /src/pacemaker/lib/services/services.c:707,1
    - Dst: g_list_remove
      Src: /src/pacemaker/lib/services/services.c:706,1
    - Dst: services__set_cancelled
      Src: /src/pacemaker/lib/services/services.c:701,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:712,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - name
    - action
    - interval_ms
    argTypes:
    - char*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 714
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 714
    functionName: services_action_cancel
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - services_action_free
    - g_hash_table_lookup
    - crm_info
    - cancel_recurring_action
    - mainloop_child_kill
    - init_recurring_actions
    - services_action_cleanup
    - free
    - services__set_cancelled
    - g_list_remove
    - pcmk__op_key
    - inflight_systemd
    - crm_err
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean services_action_cancel(const char *name, const char *action,
      guint interval_ms) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: resources_list_standards
      Src: /src/pacemaker/lib/services/services.c:1134,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/services/services.c:1148,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services.c:1136,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/services/services.c:1148,1
    - Dst: resources_list_providers
      Src: /src/pacemaker/lib/services/services.c:1150,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services.c:1152,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services.c:1166,1
    - Dst: services__lsb_agent_exists
      Src: /src/pacemaker/lib/services/services.c:1168,1
    - Dst: systemd_unit_exists
      Src: /src/pacemaker/lib/services/services.c:1174,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services.c:1184,1
    - Dst: services__lsb_agent_exists
      Src: /src/pacemaker/lib/services/services.c:1189,1
    - Dst: systemd_unit_exists
      Src: /src/pacemaker/lib/services/services.c:1194,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/services/services.c:1202,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services.c:1188,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services.c:1193,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/services/services.c:1203,1
    - Dst: services__ocf_agent_exists
      Src: /src/pacemaker/lib/services/services.c:1185,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 61
    argCount: 3
    argNames:
    - standard
    - provider
    - agent
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1205
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1205
    functionName: resources_agent_exists
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - resources_list_providers
    - g_list_free
    - services__ocf_agent_exists
    - pcmk__str_eq
    - resources_list_standards
    - pcmk_is_set
    - services__lsb_agent_exists
    - pcmk_get_ra_caps
    - systemd_unit_exists
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean resources_agent_exists(const char *standard, const char *provider,
      const char *agent) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/pacemaker/lib/services/services.c:1276,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/services/services.c:1278,1
    - Dst: vasprintf
      Src: /src/pacemaker/lib/services/services.c:1277,1
    - Dst: va_end
      Src: /src/pacemaker/lib/services/services.c:1279,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:1281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - action
    - agent_status
    - exec_status
    - format
    - '...'
    argTypes:
    - svc_action_t*
    - int
    - enum pcmk_exec_status
    - char*
    constantsTouched: []
    func_position:
      end: 1283
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1283
    functionName: services__format_result
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - va_end
    - free
    - va_start
    - vasprintf
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'void services__format_result(svc_action_t *action, int agent_status,
      enum pcmk_exec_status exec_status, const char *format, ...) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services.c:1316,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services.c:1319,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - action
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 1325
      start: 1311
    functionDepth: 0
    functionLinenumber: 1311
    functionLinenumberEnd: 1325
    functionName: services__action_kind
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: char*
    signature: 'const char *services__action_kind(const svc_action_t *action) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/services/services.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: init_recurring_actions
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - pcmk__strkey_table
    linkageType: ''
    returnType: void
    signature: 'static inline void init_recurring_actions(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/services/services.c:181,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/services/services.c:192,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services.c:187,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/services/services.c:186,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services.c:182,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/services/services.c:193,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services.c:194,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/services/services.c:199,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services.c:200,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/services/services.c:205,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services.c:206,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 6
    argNames:
    - ra_caps
    - name
    - standard
    - provider
    - agent
    - action
    argTypes:
    - uint32_t
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 211
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 211
    functionName: required_argument_missing
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - crm_info
    - pcmk_is_set
    - pcmk__str_empty
    linkageType: ''
    returnType: bool
    signature: 'static bool required_argument_missing(uint32_t ra_caps, const char
      *name, const char *standard, const char *provider, const char *agent, const
      char *action) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services.c:625,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/lib/services/services.c:628,1
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/services/services.c:632,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 637
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 637
    functionName: cancel_recurring_action
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - crm_info
    - g_hash_table_remove
    - g_source_remove
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean cancel_recurring_action(svc_action_t * op) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/services/services.c:758,1
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/services/services.c:770,1
    - Dst: recurring_action_timer
      Src: /src/pacemaker/lib/services/services.c:773,1
    - Dst: services_action_free
      Src: /src/pacemaker/lib/services/services.c:776,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 781
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 781
    functionName: handle_duplicate_recurring
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - recurring_action_timer
    - services_action_free
    - g_source_remove
    - g_hash_table_lookup
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean handle_duplicate_recurring(svc_action_t *op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services.c:803,1
    - Dst: services__execute_systemd
      Src: /src/pacemaker/lib/services/services.c:805,1
    - Dst: services__execute_file
      Src: /src/pacemaker/lib/services/services.c:809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 810
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 810
    functionName: execute_action
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - services__execute_systemd
    - pcmk__str_eq
    - services__execute_file
    linkageType: ''
    returnType: int
    signature: 'static int execute_action(svc_action_t *op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_result
      Src: /src/pacemaker/lib/services/services.c:1244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - action
    - result
    argTypes:
    - svc_action_t*
    - pcmk__action_result_t*
    constantsTouched: []
    func_position:
      end: 1246
      start: 1241
    functionDepth: 0
    functionLinenumber: 1241
    functionLinenumberEnd: 1246
    functionName: services__copy_result
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    linkageType: ''
    returnType: void
    signature: 'void services__copy_result(const svc_action_t *action, pcmk__action_result_t
      *result) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:1298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - action
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 1301
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1301
    functionName: services__set_cancelled
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void services__set_cancelled(svc_action_t *action) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - action
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 1358
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1358
    functionName: services__grab_stdout
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'char *services__grab_stdout(svc_action_t *action) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/services/services.c:819,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/services/services.c:823,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 825
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 825
    functionName: services_add_inflight_op
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_list_append
    linkageType: ''
    returnType: void
    signature: 'void services_add_inflight_op(svc_action_t * op) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/services/services.c:159,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/services.c:172,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:167,1
    - Dst: calloc
      Src: /src/pacemaker/lib/services/services.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 174
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 174
    functionName: new_action
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - calloc
    - services__set_result
    - free
    linkageType: ''
    returnType: svc_action_t*
    signature: 'static svc_action_t *new_action(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/services/services.c:720,1
    - Dst: inflight_systemd
      Src: /src/pacemaker/lib/services/services.c:731,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/services/services.c:723,1
    - Dst: init_recurring_actions
      Src: /src/pacemaker/lib/services/services.c:722,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services.c:724,1
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/services/services.c:735,1
    - Dst: recurring_action_timer
      Src: /src/pacemaker/lib/services/services.c:738,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - name
    - action
    - interval_ms
    argTypes:
    - char*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 742
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 742
    functionName: services_action_kick
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - recurring_action_timer
    - init_recurring_actions
    - free
    - pcmk__op_key
    - inflight_systemd
    - g_source_remove
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean services_action_kick(const char *name, const char *action,
      guint interval_ms) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - action
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 1339
      start: 1335
    functionDepth: 0
    functionLinenumber: 1335
    functionLinenumberEnd: 1339
    functionName: services__exit_reason
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *services__exit_reason(const svc_action_t *action) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/services/services.c:121,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/services/services.c:126,1
    - Dst: resources_find_service_class
      Src: /src/pacemaker/lib/services/services.c:122,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services.c:137,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/services/services.c:125,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/services/services.c:139,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/services/services.c:145,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 3
    argNames:
    - rsc
    - standard
    - agent
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 148
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 148
    functionName: expand_resource_class
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - crm_debug
    - strcasecmp
    - resources_find_service_class
    - pcmk__str_copy
    - crm_info
    linkageType: ''
    returnType: char*
    signature: 'static char *expand_resource_class(const char *rsc, const char *standard,
      const char *agent) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: services_action_create_generic
      Src: /src/pacemaker/lib/services/services.c:409,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/services/services.c:412,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/services/services.c:411,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 6
    argNames:
    - id
    - exec
    - timeout
    - params
    - sequence
    - cb_data
    argTypes:
    - char*
    - char*
    - int
    - GHashTable*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 418
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 418
    functionName: services_alert_create
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - services_action_create_generic
    linkageType: ''
    returnType: svc_action_t*
    signature: 'svc_action_t *services_alert_create(const char *id, const char *exec,
      int timeout, GHashTable *params, int sequence, void *cb_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_remove
      Src: /src/pacemaker/lib/services/services.c:837,1
    - Dst: g_list_remove
      Src: /src/pacemaker/lib/services/services.c:838,1
    - Dst: handle_blocked_ops
      Src: /src/pacemaker/lib/services/services.c:841,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 842
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 842
    functionName: services_untrack_op
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - g_list_remove
    - handle_blocked_ops
    linkageType: ''
    returnType: void
    signature: 'void services_untrack_op(const svc_action_t *op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services.c:895,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 901
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 901
    functionName: is_op_blocked
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean is_op_blocked(const char *rsc) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services.c:955,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/services.c:964,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/services.c:956,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services.c:962,1
    - Dst: services__generic_error
      Src: /src/pacemaker/lib/services/services.c:956,1
    - Dst: services__generic_error
      Src: /src/pacemaker/lib/services/services.c:964,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/services/services.c:971,1
    - Dst: resources_find_service_class
      Src: /src/pacemaker/lib/services/services.c:972,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services.c:975,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/services.c:977,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/services/services.c:986,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services.c:985,1
    - Dst: services__get_lsb_metadata
      Src: /src/pacemaker/lib/services/services.c:986,1
    - Dst: execute_action
      Src: /src/pacemaker/lib/services/services.c:991,1
    - Dst: services__generic_error
      Src: /src/pacemaker/lib/services/services.c:977,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 992
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 992
    functionName: execute_metadata_action
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - services__generic_error
    - execute_action
    - resources_find_service_class
    - strcmp
    - pcmk__str_eq
    - services__get_lsb_metadata
    - services__set_result
    - crm_info
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int execute_metadata_action(svc_action_t *op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: services_os_get_directory_list
      Src: /src/pacemaker/lib/services/services.c:1032,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - root
    - files
    - executable
    argTypes:
    - char*
    - gboolean
    - gboolean
    constantsTouched: []
    func_position:
      end: 1033
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1033
    functionName: get_directory_list
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - services_os_get_directory_list
    linkageType: ''
    returnType: GList*
    signature: 'GList *get_directory_list(const char *root, gboolean files, gboolean
      executable) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - action
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 1377
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1377
    functionName: services__grab_stderr
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'char *services__grab_stderr(svc_action_t *action) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/services/services.c:849,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/lib/services/services.c:866,1
    - Dst: init_recurring_actions
      Src: /src/pacemaker/lib/services/services.c:860,1
    - Dst: handle_duplicate_recurring
      Src: /src/pacemaker/lib/services/services.c:861,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/services/services.c:869,1
    - Dst: is_op_blocked
      Src: /src/pacemaker/lib/services/services.c:870,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/services/services.c:871,1
    - Dst: execute_action
      Src: /src/pacemaker/lib/services/services.c:875,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 3
    argNames:
    - op
    - (*action_callback)
    - (*action_fork_callback)
    argTypes:
    - svc_action_t*
    - void
    - void
    constantsTouched: []
    func_position:
      end: 876
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 876
    functionName: services_action_async_fork_notify
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - handle_duplicate_recurring
    - execute_action
    - CRM_CHECK
    - g_list_append
    - is_op_blocked
    - init_recurring_actions
    - pcmk_is_set
    - g_hash_table_replace
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean services_action_async_fork_notify(svc_action_t * op, void
      (*action_callback) (svc_action_t *), void (*action_fork_callback) (svc_action_t
      *)) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_op_blocked
      Src: /src/pacemaker/lib/services/services.c:921,1
    - Dst: services__finalize_async_op
      Src: /src/pacemaker/lib/services/services.c:928,1
    - Dst: g_list_remove
      Src: /src/pacemaker/lib/services/services.c:934,1
    - Dst: execute_action
      Src: /src/pacemaker/lib/services/services.c:925,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/services/services.c:924,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/services/services.c:936,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 939
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 939
    functionName: handle_blocked_ops
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - execute_action
    - g_list_append
    - g_list_free
    - is_op_blocked
    - services__finalize_async_op
    - g_list_remove
    linkageType: ''
    returnType: void
    signature: 'static void handle_blocked_ops(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services.c:1000,1
    - Dst: execute_metadata_action
      Src: /src/pacemaker/lib/services/services.c:1014,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services.c:1006,1
    - Dst: execute_action
      Src: /src/pacemaker/lib/services/services.c:1016,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services.c:1018,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services.c:1021,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services.c:1024,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 1027
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 1027
    functionName: services_action_sync
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - execute_action
    - execute_metadata_action
    - pcmk__str_eq
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean services_action_sync(svc_action_t * op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/lib/services/services.c:1040,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services.c:1040,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/services/services.c:1047,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services.c:1043,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/services/services.c:1043,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services.c:1047,1
    - Dst: systemd_unit_listall
      Src: /src/pacemaker/lib/services/services.c:1052,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/services/services.c:1055,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services.c:1056,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/services/services.c:1057,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1063
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1063
    functionName: resources_list_standards
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - strdup
    - g_list_append
    - g_list_free_full
    - systemd_unit_listall
    linkageType: ''
    returnType: GList*
    signature: 'GList *resources_list_standards(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: services__lsb_agent_exists
      Src: /src/pacemaker/lib/services/services.c:65,1
    - Dst: systemd_unit_exists
      Src: /src/pacemaker/lib/services/services.c:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - agent
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 77
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 77
    functionName: resources_find_service_class
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - services__lsb_agent_exists
    - systemd_unit_exists
    linkageType: ''
    returnType: char*
    signature: 'const char *resources_find_service_class(const char *agent) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: new_action
      Src: /src/pacemaker/lib/services/services.c:351,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services.c:356,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/lib/services/services.c:353,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services.c:355,1
    - Dst: crm_crit
      Src: /src/pacemaker/lib/services/services.c:358,1
    - Dst: strerror
      Src: /src/pacemaker/lib/services/services.c:358,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/services.c:359,1
    - Dst: strerror
      Src: /src/pacemaker/lib/services/services.c:360,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/services/services.c:370,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services.c:371,1
    - Dst: crm_crit
      Src: /src/pacemaker/lib/services/services.c:380,1
    - Dst: strerror
      Src: /src/pacemaker/lib/services/services.c:383,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services.c:378,1
    - Dst: strerror
      Src: /src/pacemaker/lib/services/services.c:381,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/services.c:373,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/services.c:382,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - exec
    - args
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 389
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 389
    functionName: services_action_create_generic
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - pcmk__mem_assert
    - PCMK__NELEM
    - strerror
    - services__set_result
    - strdup
    - crm_info
    - crm_crit
    - new_action
    linkageType: ''
    returnType: svc_action_t*
    signature: 'svc_action_t *services_action_create_generic(const char *exec, const
      char *args[]) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: services__execute_file
      Src: /src/pacemaker/lib/services/services.c:459,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - action
    - (*cb)
    argTypes:
    - svc_action_t*
    - void
    constantsTouched: []
    func_position:
      end: 460
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 460
    functionName: services_alert_async
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - services__execute_file
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean services_alert_async(svc_action_t *action, void (*cb)(svc_action_t
      *op)) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/services/services.c:437,1
    - Dst: crm_user_lookup
      Src: /src/pacemaker/lib/services/services.c:438,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - op
    - user
    argTypes:
    - svc_action_t*
    - char*
    constantsTouched: []
    func_position:
      end: 439
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 439
    functionName: services_action_user
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - crm_user_lookup
    - CRM_CHECK
    linkageType: ''
    returnType: int
    signature: 'int services_action_user(svc_action_t *op, const char *user) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services.c:475,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services.c:477,1
    - Dst: dbus_pending_call_unref
      Src: /src/pacemaker/lib/services/services.c:479,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services.c:483,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services.c:485,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - op
    - pending
    argTypes:
    - svc_action_t*
    - DBusPendingCall*
    constantsTouched: []
    func_position:
      end: 487
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 487
    functionName: services_set_op_pending
    functionSourceFile: /src/pacemaker/lib/services/services.c
    functionUses: []
    functionsReached:
    - crm_info
    - crm_trace
    - dbus_pending_call_unref
    linkageType: ''
    returnType: void
    signature: 'void services_set_op_pending(svc_action_t *op, DBusPendingCall *pending) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/services/services_lsb.c:94,1
    - Dst: pcmk__xml_escape
      Src: /src/pacemaker/lib/services/services_lsb.c:95,1
    - Dst: strlen
      Src: /src/pacemaker/lib/services/services_lsb.c:95,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - line
    - value
    - prefix
    argTypes:
    - char*
    - gchar**
    - char*
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: lsb_meta_helper_get_value
    functionSourceFile: /src/pacemaker/lib/services/services_lsb.c
    functionUses: []
    functionsReached:
    - strlen
    - pcmk__xml_escape
    - pcmk__starts_with
    linkageType: ''
    returnType: gboolean
    signature: 'static inline gboolean lsb_meta_helper_get_value(const char *line,
      gchar **value, const char *prefix) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services_lsb.c:125,1
    - Dst: lsb_meta_helper_get_value
      Src: /src/pacemaker/lib/services/services_lsb.c:151,1
    - Dst: lsb_meta_helper_get_value
      Src: /src/pacemaker/lib/services/services_lsb.c:154,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/services/services_lsb.c:177,1
    - Dst: lsb_meta_helper_get_value
      Src: /src/pacemaker/lib/services/services_lsb.c:157,1
    - Dst: lsb_meta_helper_get_value
      Src: /src/pacemaker/lib/services/services_lsb.c:163,1
    - Dst: lsb_meta_helper_get_value
      Src: /src/pacemaker/lib/services/services_lsb.c:166,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/services/services_lsb.c:172,1
    - Dst: fgets
      Src: /src/pacemaker/lib/services/services_lsb.c:181,1
    - Dst: lsb_meta_helper_get_value
      Src: /src/pacemaker/lib/services/services_lsb.c:160,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/services/services_lsb.c:199,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/services/services_lsb.c:119,1
    - Dst: fgets
      Src: /src/pacemaker/lib/services/services_lsb.c:132,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/services/services_lsb.c:174,1
    - Dst: pcmk__xml_escape
      Src: /src/pacemaker/lib/services/services_lsb.c:198,1
    - Dst: g_free
      Src: /src/pacemaker/lib/services/services_lsb.c:228,1
    - Dst: g_free
      Src: /src/pacemaker/lib/services/services_lsb.c:232,1
    - Dst: g_free
      Src: /src/pacemaker/lib/services/services_lsb.c:236,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/services_lsb.c:224,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/services_lsb.c:226,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/services_lsb.c:220,1
    - Dst: g_free
      Src: /src/pacemaker/lib/services/services_lsb.c:229,1
    - Dst: fopen
      Src: /src/pacemaker/lib/services/services_lsb.c:126,1
    - Dst: lsb_meta_helper_get_value
      Src: /src/pacemaker/lib/services/services_lsb.c:147,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/services/services_lsb.c:187,1
    - Dst: fclose
      Src: /src/pacemaker/lib/services/services_lsb.c:215,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/services/services_lsb.c:217,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/services_lsb.c:218,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/services_lsb.c:219,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/services_lsb.c:221,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/services_lsb.c:223,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/services_lsb.c:225,1
    - Dst: g_free
      Src: /src/pacemaker/lib/services/services_lsb.c:231,1
    - Dst: g_free
      Src: /src/pacemaker/lib/services/services_lsb.c:233,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/services/services_lsb.c:121,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/services/services_lsb.c:135,1
    - Dst: lsb_meta_helper_get_value
      Src: /src/pacemaker/lib/services/services_lsb.c:144,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/services/services_lsb.c:182,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/services/services_lsb.c:183,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/services/services_lsb.c:208,1
    - Dst: g_free
      Src: /src/pacemaker/lib/services/services_lsb.c:230,1
    - Dst: g_free
      Src: /src/pacemaker/lib/services/services_lsb.c:234,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/services_lsb.c:222,1
    - Dst: g_free
      Src: /src/pacemaker/lib/services/services_lsb.c:235,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 83
    argCount: 2
    argNames:
    - type
    - output
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 238
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 238
    functionName: services__get_lsb_metadata
    functionSourceFile: /src/pacemaker/lib/services/services_lsb.c
    functionUses: []
    functionsReached:
    - lsb_meta_helper_get_value
    - fclose
    - g_string_append
    - fgets
    - fopen
    - crm_strdup_printf
    - pcmk__s
    - pcmk__xml_escape
    - g_string_sized_new
    - g_free
    - g_string_free
    - snprintf
    - crm_trace
    - pcmk__starts_with
    linkageType: ''
    returnType: int
    signature: 'int services__get_lsb_metadata(const char *type, char **output) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__full_path
      Src: /src/pacemaker/lib/services/services_lsb.c:269,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services_lsb.c:270,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services_lsb.c:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 276
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 276
    functionName: services__lsb_prepare
    functionSourceFile: /src/pacemaker/lib/services/services_lsb.c
    functionUses: []
    functionsReached:
    - pcmk__full_path
    - strdup
    linkageType: ''
    returnType: int
    signature: 'int services__lsb_prepare(svc_action_t *op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: services_os_get_directory_list
      Src: /src/pacemaker/lib/services/services_lsb.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: services__list_lsb_agents
    functionSourceFile: /src/pacemaker/lib/services/services_lsb.c
    functionUses: []
    functionsReached:
    - services_os_get_directory_list
    linkageType: ''
    returnType: GList*
    signature: 'GList *services__list_lsb_agents(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__full_path
      Src: /src/pacemaker/lib/services/services_lsb.c:251,1
    - Dst: stat
      Src: /src/pacemaker/lib/services/services_lsb.c:253,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_lsb.c:254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - agent
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 256
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 256
    functionName: services__lsb_agent_exists
    functionSourceFile: /src/pacemaker/lib/services/services_lsb.c
    functionUses: []
    functionsReached:
    - pcmk__full_path
    - free
    - stat
    linkageType: ''
    returnType: bool
    signature: 'bool services__lsb_agent_exists(const char *agent) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/services/services_lsb.c:291,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 9
    argCount: 2
    argNames:
    - action
    - exit_status
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 318
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 318
    functionName: services__lsb2ocf
    functionSourceFile: /src/pacemaker/lib/services/services_lsb.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    linkageType: ''
    returnType: enum ocf_exitcode
    signature: 'enum ocf_exitcode services__lsb2ocf(const char *action, int exit_status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/dbus.c:40,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/dbus.c:43,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/services/dbus.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - connection
    - new_status
    - data
    argTypes:
    - DBusConnection*
    - DBusDispatchStatus
    - void*
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: update_dispatch_status
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - g_list_prepend
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void update_dispatch_status(DBusConnection *connection, DBusDispatchStatus
      new_status, void *data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/services/dbus.c:482,1
    - Dst: dbus_message_get_member
      Src: /src/pacemaker/lib/services/dbus.c:484,1
    - Dst: dbus_message_get_type
      Src: /src/pacemaker/lib/services/dbus.c:483,1
    - Dst: dbus_connection_send_with_reply
      Src: /src/pacemaker/lib/services/dbus.c:492,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/services/dbus.c:483,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/dbus.c:493,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/dbus.c:497,1
    - Dst: dbus_pending_call_get_completed
      Src: /src/pacemaker/lib/services/dbus.c:502,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/dbus.c:503,1
    - Dst: dbus_pending_call_set_notify
      Src: /src/pacemaker/lib/services/dbus.c:508,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 24
    argCount: 5
    argNames:
    - msg
    - connection
    - (*done)
    - user_data
    - timeout
    argTypes:
    - DBusMessage*
    - DBusConnection*
    - void
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 512
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 512
    functionName: pcmk_dbus_send
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - dbus_pending_call_set_notify
    - dbus_message_get_member
    - dbus_pending_call_get_completed
    - dbus_connection_send_with_reply
    - dbus_message_get_type
    - pcmk__assert
    - crm_info
    - crm_err
    linkageType: ''
    returnType: DBusPendingCall*
    signature: 'DBusPendingCall *pcmk_dbus_send(DBusMessage *msg, DBusConnection *connection,
      void (*done)(DBusPendingCall *pending, void *user_data), void *user_data, int
      timeout) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dbus_message_iter_init
      Src: /src/pacemaker/lib/services/dbus.c:522,1
    - Dst: dbus_message_iter_get_arg_type
      Src: /src/pacemaker/lib/services/dbus.c:534,1
    - Dst: dbus_message_iter_get_signature
      Src: /src/pacemaker/lib/services/dbus.c:541,1
    - Dst: do_crm_log_alias
      Src: /src/pacemaker/lib/services/dbus.c:528,1
    - Dst: dbus_message_iter_init
      Src: /src/pacemaker/lib/services/dbus.c:540,1
    - Dst: do_crm_log_alias
      Src: /src/pacemaker/lib/services/dbus.c:542,1
    - Dst: dbus_free
      Src: /src/pacemaker/lib/services/dbus.c:546,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 5
    argNames:
    - msg
    - field
    - expected
    - function
    - line
    argTypes:
    - DBusMessage*
    - DBusMessageIter*
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 551
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 551
    functionName: pcmk_dbus_type_check
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - dbus_message_iter_get_arg_type
    - dbus_free
    - dbus_message_iter_get_signature
    - do_crm_log_alias
    - dbus_message_iter_init
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk_dbus_type_check(DBusMessage *msg, DBusMessageIter *field,
      int expected, const char *function, int line) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/services/dbus.c:418,1
    - Dst: dbus_message_get_member
      Src: /src/pacemaker/lib/services/dbus.c:419,1
    - Dst: dbus_message_get_type
      Src: /src/pacemaker/lib/services/dbus.c:418,1
    - Dst: dbus_error_init
      Src: /src/pacemaker/lib/services/dbus.c:423,1
    - Dst: dbus_connection_send_with_reply
      Src: /src/pacemaker/lib/services/dbus.c:432,1
    - Dst: dbus_set_error
      Src: /src/pacemaker/lib/services/dbus.c:434,1
    - Dst: dbus_connection_flush
      Src: /src/pacemaker/lib/services/dbus.c:440,1
    - Dst: dbus_pending_call_block
      Src: /src/pacemaker/lib/services/dbus.c:444,1
    - Dst: dbus_pending_call_steal_reply
      Src: /src/pacemaker/lib/services/dbus.c:447,1
    - Dst: pcmk_dbus_find_error
      Src: /src/pacemaker/lib/services/dbus.c:450,1
    - Dst: dbus_pending_call_unref
      Src: /src/pacemaker/lib/services/dbus.c:454,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 4
    argNames:
    - msg
    - connection
    - error
    - timeout
    argTypes:
    - DBusMessage*
    - DBusConnection*
    - DBusError*
    - int
    constantsTouched: []
    func_position:
      end: 458
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 458
    functionName: pcmk_dbus_send_recv
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - dbus_message_get_member
    - dbus_set_error
    - dbus_error_init
    - dbus_connection_flush
    - dbus_pending_call_steal_reply
    - dbus_connection_send_with_reply
    - dbus_pending_call_block
    - pcmk_dbus_find_error
    - pcmk__assert
    - dbus_pending_call_unref
    - dbus_message_get_type
    linkageType: ''
    returnType: DBusMessage*
    signature: 'DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection
      *connection, DBusError *error, int timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbus_watch_get_unix_fd
      Src: /src/pacemaker/lib/services/dbus.c:154,1
    - Dst: dbus_watch_set_data
      Src: /src/pacemaker/lib/services/dbus.c:160,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/dbus.c:159,1
    - Dst: mainloop_add_fd
      Src: /src/pacemaker/lib/services/dbus.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - watch
    - data
    argTypes:
    - DBusWatch*
    - void*
    constantsTouched: []
    func_position:
      end: 162
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 162
    functionName: add_dbus_watch
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - dbus_watch_set_data
    - mainloop_add_fd
    - crm_trace
    - dbus_watch_get_unix_fd
    linkageType: ''
    returnType: dbus_bool_t
    signature: 'static dbus_bool_t add_dbus_watch(DBusWatch *watch, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/dbus.c:176,1
    - Dst: dbus_watch_get_unix_fd
      Src: /src/pacemaker/lib/services/dbus.c:177,1
    - Dst: dbus_watch_get_data
      Src: /src/pacemaker/lib/services/dbus.c:178,1
    - Dst: mainloop_del_fd
      Src: /src/pacemaker/lib/services/dbus.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - watch
    - data
    argTypes:
    - DBusWatch*
    - void*
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: remove_dbus_watch
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - dbus_watch_get_data
    - mainloop_del_fd
    - crm_trace
    - dbus_watch_get_unix_fd
    linkageType: ''
    returnType: void
    signature: 'static void remove_dbus_watch(DBusWatch *watch, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/services/dbus.c:168,1
    - Dst: dbus_watch_get_unix_fd
      Src: /src/pacemaker/lib/services/dbus.c:169,1
    - Dst: dbus_watch_get_enabled
      Src: /src/pacemaker/lib/services/dbus.c:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - watch
    - data
    argTypes:
    - DBusWatch*
    - void*
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 171
    functionName: toggle_dbus_watch
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - crm_debug
    - dbus_watch_get_enabled
    - dbus_watch_get_unix_fd
    linkageType: ''
    returnType: void
    signature: 'static void toggle_dbus_watch(DBusWatch *watch, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbus_connection_set_watch_functions
      Src: /src/pacemaker/lib/services/dbus.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - connection
    argTypes:
    - DBusConnection*
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: register_watch_functions
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - dbus_connection_set_watch_functions
    linkageType: ''
    returnType: void
    signature: 'static void register_watch_functions(DBusConnection *connection) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbus_connection_get_dispatch_status
      Src: /src/pacemaker/lib/services/dbus.c:58,1
    - Dst: dbus_connection_dispatch
      Src: /src/pacemaker/lib/services/dbus.c:61,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/services/dbus.c:64,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/dbus.c:60,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: dispatch_messages
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - dbus_connection_get_dispatch_status
    - g_list_free
    - crm_trace
    - dbus_connection_dispatch
    linkageType: ''
    returnType: void
    signature: 'static void dispatch_messages(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/dbus.c:142,1
    - Dst: dbus_watch_get_unix_fd
      Src: /src/pacemaker/lib/services/dbus.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: watch_fd_closed
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - crm_trace
    - dbus_watch_get_unix_fd
    linkageType: ''
    returnType: void
    signature: 'static void watch_fd_closed(gpointer userdata) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/services/dbus.c:199,1
    - Dst: dbus_timeout_handle
      Src: /src/pacemaker/lib/services/dbus.c:201,1
    - Dst: dbus_timeout_get_interval
      Src: /src/pacemaker/lib/services/dbus.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 203
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 203
    functionName: timer_popped
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - crm_debug
    - dbus_timeout_get_interval
    - dbus_timeout_handle
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean timer_popped(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbus_timeout_get_data
      Src: /src/pacemaker/lib/services/dbus.c:221,1
    - Dst: GPOINTER_TO_UINT
      Src: /src/pacemaker/lib/services/dbus.c:222,1
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/services/dbus.c:226,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/dbus.c:224,1
    - Dst: dbus_timeout_get_interval
      Src: /src/pacemaker/lib/services/dbus.c:224,1
    - Dst: dbus_timeout_set_data
      Src: /src/pacemaker/lib/services/dbus.c:227,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - timeout
    - data
    argTypes:
    - DBusTimeout*
    - void*
    constantsTouched: []
    func_position:
      end: 229
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 229
    functionName: remove_dbus_timer
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - GPOINTER_TO_UINT
    - dbus_timeout_get_data
    - dbus_timeout_set_data
    - dbus_timeout_get_interval
    - crm_trace
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: 'static void remove_dbus_timer(DBusTimeout *timeout, void *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dbus_error_init
      Src: /src/pacemaker/lib/services/dbus.c:263,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/dbus.c:266,1
    - Dst: dbus_bus_get
      Src: /src/pacemaker/lib/services/dbus.c:264,1
    - Dst: dbus_error_is_set
      Src: /src/pacemaker/lib/services/dbus.c:265,1
    - Dst: dbus_error_free
      Src: /src/pacemaker/lib/services/dbus.c:267,1
    - Dst: dbus_connection_set_exit_on_disconnect
      Src: /src/pacemaker/lib/services/dbus.c:277,1
    - Dst: register_timer_functions
      Src: /src/pacemaker/lib/services/dbus.c:280,1
    - Dst: register_watch_functions
      Src: /src/pacemaker/lib/services/dbus.c:281,1
    - Dst: dbus_connection_set_dispatch_status_function
      Src: /src/pacemaker/lib/services/dbus.c:282,1
    - Dst: update_dispatch_status
      Src: /src/pacemaker/lib/services/dbus.c:287,1
    - Dst: dbus_connection_get_dispatch_status
      Src: /src/pacemaker/lib/services/dbus.c:288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 291
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 291
    functionName: pcmk_dbus_connect
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - update_dispatch_status
    - dbus_connection_set_exit_on_disconnect
    - dbus_error_init
    - register_timer_functions
    - register_watch_functions
    - dbus_error_free
    - dbus_error_is_set
    - dbus_connection_get_dispatch_status
    - crm_err
    - dbus_connection_set_dispatch_status_function
    - dbus_bus_get
    linkageType: ''
    returnType: DBusConnection*
    signature: 'DBusConnection *pcmk_dbus_connect(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dbus_message_iter_recurse
      Src: /src/pacemaker/lib/services/dbus.c:616,1
    - Dst: dbus_message_iter_get_basic
      Src: /src/pacemaker/lib/services/dbus.c:623,1
    - Dst: dbus_message_iter_next
      Src: /src/pacemaker/lib/services/dbus.c:633,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/dbus.c:647,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/dbus.c:600,1
    - Dst: dbus_error_free
      Src: /src/pacemaker/lib/services/dbus.c:602,1
    - Dst: pcmk_dbus_find_error
      Src: /src/pacemaker/lib/services/dbus.c:599,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/dbus.c:610,1
    - Dst: pcmk_dbus_type_check
      Src: /src/pacemaker/lib/services/dbus.c:617,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/dbus.c:635,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/dbus.c:628,1
    - Dst: free_property_query
      Src: /src/pacemaker/lib/services/dbus.c:651,1
    - Dst: dbus_error_init
      Src: /src/pacemaker/lib/services/dbus.c:596,1
    - Dst: dbus_message_iter_init
      Src: /src/pacemaker/lib/services/dbus.c:607,1
    - Dst: pcmk_dbus_type_check
      Src: /src/pacemaker/lib/services/dbus.c:608,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/dbus.c:619,1
    - Dst: dbus_message_iter_get_arg_type
      Src: /src/pacemaker/lib/services/dbus.c:627,1
    - Dst: dbus_message_iter_next
      Src: /src/pacemaker/lib/services/dbus.c:626,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/dbus.c:640,1
    - Dst: dbus_message_iter_get_arg_type
      Src: /src/pacemaker/lib/services/dbus.c:634,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 2
    argNames:
    - reply
    - data
    argTypes:
    - DBusMessage*
    - struct property_query*
    constantsTouched: []
    func_position:
      end: 653
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 653
    functionName: handle_query_result
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - dbus_message_iter_get_arg_type
    - dbus_message_iter_get_basic
    - crm_trace
    - free_property_query
    - dbus_error_init
    - dbus_message_iter_recurse
    - dbus_error_free
    - pcmk_dbus_type_check
    - pcmk_dbus_find_error
    - dbus_message_iter_next
    - strdup
    - dbus_message_iter_init
    - crm_err
    linkageType: ''
    returnType: char*
    signature: 'static char *handle_query_result(DBusMessage *reply, struct property_query
      *data) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/services/dbus.c:703,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/services/dbus.c:741,1
    - Dst: handle_query_result
      Src: /src/pacemaker/lib/services/dbus.c:767,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/dbus.c:770,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/dbus.c:706,1
    - Dst: dbus_message_new_method_call
      Src: /src/pacemaker/lib/services/dbus.c:710,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/dbus.c:736,1
    - Dst: free_property_query
      Src: /src/pacemaker/lib/services/dbus.c:744,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/dbus.c:745,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/dbus.c:737,1
    - Dst: free_property_query
      Src: /src/pacemaker/lib/services/dbus.c:755,1
    - Dst: pcmk_dbus_send
      Src: /src/pacemaker/lib/services/dbus.c:751,1
    - Dst: dbus_message_append_args
      Src: /src/pacemaker/lib/services/dbus.c:718,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/dbus.c:712,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/dbus.c:722,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/dbus.c:724,1
    - Dst: malloc
      Src: /src/pacemaker/lib/services/dbus.c:728,1
    - Dst: crm_crit
      Src: /src/pacemaker/lib/services/dbus.c:730,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/dbus.c:732,1
    - Dst: pcmk_dbus_send_recv
      Src: /src/pacemaker/lib/services/dbus.c:764,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/dbus.c:740,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/dbus.c:774,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 60
    argCount: 9
    argNames:
    - connection
    - target
    - obj
    - iface
    - name
    - callback
    - userdata
    - pending
    - timeout
    argTypes:
    - DBusConnection*
    - char*
    - char*
    - gchar*
    - char*
    - property_callback_func
    - void*
    - DBusPendingCall**
    - int
    constantsTouched: []
    func_position:
      end: 777
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 777
    functionName: pcmk_dbus_get_property
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - malloc
    - CRM_CHECK
    - dbus_message_append_args
    - crm_trace
    - free_property_query
    - pcmk_dbus_send_recv
    - dbus_message_unref
    - handle_query_result
    - pcmk_dbus_send
    - strdup
    - crm_crit
    - crm_err
    - dbus_message_new_method_call
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk_dbus_get_property(DBusConnection *connection, const char
      *target, const char *obj, const gchar * iface, const char *name, property_callback_func
      callback, void *userdata, DBusPendingCall **pending, int timeout) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbus_timeout_get_interval
      Src: /src/pacemaker/lib/services/dbus.c:208,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/dbus.c:214,1
    - Dst: dbus_timeout_set_data
      Src: /src/pacemaker/lib/services/dbus.c:212,1
    - Dst: GUINT_TO_POINTER
      Src: /src/pacemaker/lib/services/dbus.c:212,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/lib/services/dbus.c:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - timeout
    - data
    argTypes:
    - DBusTimeout*
    - void*
    constantsTouched: []
    func_position:
      end: 216
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 216
    functionName: add_dbus_timer
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - GUINT_TO_POINTER
    - dbus_timeout_set_data
    - dbus_timeout_get_interval
    - crm_trace
    - pcmk__create_timer
    linkageType: ''
    returnType: dbus_bool_t
    signature: 'static dbus_bool_t add_dbus_timer(DBusTimeout *timeout, void *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbus_timeout_get_enabled
      Src: /src/pacemaker/lib/services/dbus.c:234,1
    - Dst: dbus_timeout_get_interval
      Src: /src/pacemaker/lib/services/dbus.c:237,1
    - Dst: add_dbus_timer
      Src: /src/pacemaker/lib/services/dbus.c:239,1
    - Dst: remove_dbus_timer
      Src: /src/pacemaker/lib/services/dbus.c:241,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/dbus.c:236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - timeout
    - data
    argTypes:
    - DBusTimeout*
    - void*
    constantsTouched: []
    func_position:
      end: 243
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 243
    functionName: toggle_dbus_timer
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - dbus_timeout_get_enabled
    - remove_dbus_timer
    - dbus_timeout_get_interval
    - add_dbus_timer
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void toggle_dbus_timer(DBusTimeout *timeout, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/services/dbus.c:581,1
    - Dst: free
      Src: /src/pacemaker/lib/services/dbus.c:583,1
    - Dst: free
      Src: /src/pacemaker/lib/services/dbus.c:584,1
    - Dst: free
      Src: /src/pacemaker/lib/services/dbus.c:582,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct property_query*
    constantsTouched: []
    func_position:
      end: 585
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 585
    functionName: free_property_query
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void free_property_query(struct property_query *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dbus_pending_call_steal_reply
      Src: /src/pacemaker/lib/services/dbus.c:662,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/dbus.c:669,1
    - Dst: free
      Src: /src/pacemaker/lib/services/dbus.c:666,1
    - Dst: handle_query_result
      Src: /src/pacemaker/lib/services/dbus.c:665,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - pending
    - user_data
    argTypes:
    - DBusPendingCall*
    - void*
    constantsTouched: []
    func_position:
      end: 671
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 671
    functionName: async_query_result_cb
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - dbus_pending_call_steal_reply
    - dbus_message_unref
    - free
    - handle_query_result
    linkageType: ''
    returnType: void
    signature: 'static void async_query_result_cb(DBusPendingCall *pending, void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbus_connection_set_timeout_functions
      Src: /src/pacemaker/lib/services/dbus.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - connection
    argTypes:
    - DBusConnection*
    constantsTouched: []
    func_position:
      end: 251
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 251
    functionName: register_timer_functions
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - dbus_connection_set_timeout_functions
    linkageType: ''
    returnType: void
    signature: 'static void register_timer_functions(DBusConnection *connection) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dbus_watch_get_flags
      Src: /src/pacemaker/lib/services/dbus.c:110,1
    - Dst: dbus_watch_flags_to_string
      Src: /src/pacemaker/lib/services/dbus.c:116,1
    - Dst: dbus_watch_get_enabled
      Src: /src/pacemaker/lib/services/dbus.c:111,1
    - Dst: dbus_watch_get_unix_fd
      Src: /src/pacemaker/lib/services/dbus.c:115,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/dbus.c:113,1
    - Dst: dbus_watch_handle
      Src: /src/pacemaker/lib/services/dbus.c:119,1
    - Dst: dbus_watch_handle
      Src: /src/pacemaker/lib/services/dbus.c:122,1
    - Dst: dbus_watch_get_flags
      Src: /src/pacemaker/lib/services/dbus.c:125,1
    - Dst: dbus_watch_get_flags
      Src: /src/pacemaker/lib/services/dbus.c:126,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/dbus.c:127,1
    - Dst: crm_crit
      Src: /src/pacemaker/lib/services/dbus.c:132,1
    - Dst: dbus_watch_flags_to_string
      Src: /src/pacemaker/lib/services/dbus.c:128,1
    - Dst: dispatch_messages
      Src: /src/pacemaker/lib/services/dbus.c:134,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 137
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 137
    functionName: dispatch_fd_data
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - dbus_watch_get_flags
    - dbus_watch_get_enabled
    - dbus_watch_handle
    - dbus_watch_flags_to_string
    - crm_crit
    - crm_trace
    - dispatch_messages
    - dbus_watch_get_unix_fd
    linkageType: ''
    returnType: int
    signature: 'static int dispatch_fd_data(gpointer userdata) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbus_connection_unref
      Src: /src/pacemaker/lib/services/dbus.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - connection
    argTypes:
    - DBusConnection*
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: pcmk_dbus_disconnect
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - dbus_connection_unref
    linkageType: ''
    returnType: void
    signature: 'void pcmk_dbus_disconnect(DBusConnection *connection) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: dbus_error_init
      Src: /src/pacemaker/lib/services/dbus.c:334,1
    - Dst: dbus_message_iter_init
      Src: /src/pacemaker/lib/services/dbus.c:351,1
    - Dst: dbus_message_get_type
      Src: /src/pacemaker/lib/services/dbus.c:344,1
    - Dst: dbus_set_error_const
      Src: /src/pacemaker/lib/services/dbus.c:340,1
    - Dst: dbus_set_error_const
      Src: /src/pacemaker/lib/services/dbus.c:337,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/dbus.c:352,1
    - Dst: dbus_message_iter_get_signature
      Src: /src/pacemaker/lib/services/dbus.c:353,1
    - Dst: dbus_free
      Src: /src/pacemaker/lib/services/dbus.c:355,1
    - Dst: dbus_set_error_const
      Src: /src/pacemaker/lib/services/dbus.c:360,1
    - Dst: dbus_set_error_const
      Src: /src/pacemaker/lib/services/dbus.c:364,1
    - Dst: dbus_error_free
      Src: /src/pacemaker/lib/services/dbus.c:387,1
    - Dst: dbus_error_is_set
      Src: /src/pacemaker/lib/services/dbus.c:380,1
    - Dst: dbus_set_error_from_message
      Src: /src/pacemaker/lib/services/dbus.c:372,1
    - Dst: dbus_set_error_const
      Src: /src/pacemaker/lib/services/dbus.c:368,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/dbus.c:381,1
    - Dst: dbus_error_init
      Src: /src/pacemaker/lib/services/dbus.c:384,1
    - Dst: dbus_move_error
      Src: /src/pacemaker/lib/services/dbus.c:385,1
    - Dst: dbus_set_error
      Src: /src/pacemaker/lib/services/dbus.c:375,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 3
    argNames:
    - pending
    - reply
    - ret
    argTypes:
    - DBusPendingCall*
    - DBusMessage*
    - DBusError*
    constantsTouched: []
    func_position:
      end: 393
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 393
    functionName: pcmk_dbus_find_error
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached:
    - dbus_move_error
    - dbus_free
    - dbus_set_error
    - dbus_error_init
    - dbus_message_iter_get_signature
    - dbus_set_error_from_message
    - dbus_set_error_const
    - dbus_error_free
    - dbus_message_get_type
    - dbus_error_is_set
    - dbus_message_iter_init
    - crm_trace
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk_dbus_find_error(const DBusPendingCall *pending, DBusMessage
      *reply, DBusError *ret) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: dbus_watch_flags_to_string
    functionSourceFile: /src/pacemaker/lib/services/dbus.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *dbus_watch_flags_to_string(int flags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - exit_status
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: services__systemd2ocf
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: enum ocf_exitcode
    signature: 'enum ocf_exitcode services__systemd2ocf(int exit_status) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/services/systemd.c:117,1
    - Dst: dbus_error_init
      Src: /src/pacemaker/lib/services/systemd.c:126,1
    - Dst: systemd_send_recv
      Src: /src/pacemaker/lib/services/systemd.c:127,1
    - Dst: systemd_new_method
      Src: /src/pacemaker/lib/services/systemd.c:119,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/systemd.c:122,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/systemd.c:128,1
    - Dst: dbus_error_is_set
      Src: /src/pacemaker/lib/services/systemd.c:130,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/systemd.c:131,1
    - Dst: dbus_error_free
      Src: /src/pacemaker/lib/services/systemd.c:133,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/systemd.c:137,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - method
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 142
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 142
    functionName: systemd_call_simple_method
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - dbus_error_init
    - systemd_send_recv
    - systemd_new_method
    - dbus_message_unref
    - dbus_error_free
    - dbus_error_is_set
    - crm_err
    linkageType: ''
    returnType: DBusMessage*
    signature: 'static DBusMessage *systemd_call_simple_method(const char *method) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dbus_error_init
      Src: /src/pacemaker/lib/services/systemd.c:167,1
    - Dst: dbus_error_is_set
      Src: /src/pacemaker/lib/services/systemd.c:170,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/systemd.c:171,1
    - Dst: dbus_bus_add_match
      Src: /src/pacemaker/lib/services/systemd.c:168,1
    - Dst: dbus_error_free
      Src: /src/pacemaker/lib/services/systemd.c:173,1
    - Dst: systemd_call_simple_method
      Src: /src/pacemaker/lib/services/systemd.c:178,1
    - Dst: dbus_bus_remove_match
      Src: /src/pacemaker/lib/services/systemd.c:180,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/systemd.c:184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 186
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 186
    functionName: subscribe_to_signals
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - systemd_call_simple_method
    - dbus_bus_remove_match
    - dbus_error_init
    - dbus_bus_add_match
    - dbus_message_unref
    - dbus_error_free
    - dbus_error_is_set
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int subscribe_to_signals(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/services/systemd.c:607,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 608
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 608
    functionName: sort_str
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: gint
    signature: 'static gint sort_str(gconstpointer a, gconstpointer b) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/services/systemd.c:806,1
    - Dst: dbus_error_init
      Src: /src/pacemaker/lib/services/systemd.c:810,1
    - Dst: pcmk_dbus_find_error
      Src: /src/pacemaker/lib/services/systemd.c:815,1
    - Dst: dbus_error_free
      Src: /src/pacemaker/lib/services/systemd.c:817,1
    - Dst: set_result_from_method_error
      Src: /src/pacemaker/lib/services/systemd.c:816,1
    - Dst: pcmk_dbus_type_check
      Src: /src/pacemaker/lib/services/systemd.c:819,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/systemd.c:823,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/systemd.c:825,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:831,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:838,1
    - Dst: dbus_message_get_args
      Src: /src/pacemaker/lib/services/systemd.c:844,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/services/systemd.c:848,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:853,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:857,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/services/systemd.c:854,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/systemd.c:849,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - reply
    - op
    argTypes:
    - DBusMessage*
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 860
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 860
    functionName: process_unit_method_reply
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - set_result_from_method_error
    - pcmk__s
    - dbus_error_init
    - pcmk__strcase_any_of
    - services__set_result
    - dbus_error_free
    - pcmk_dbus_type_check
    - crm_info
    - pcmk_dbus_find_error
    - pcmk__str_update
    - dbus_message_get_args
    linkageType: ''
    returnType: void
    signature: 'static void process_unit_method_reply(DBusMessage *reply, svc_action_t
      *op) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/services/systemd.c:893,1
    - Dst: dbus_message_get_args
      Src: /src/pacemaker/lib/services/systemd.c:903,1
    - Dst: dbus_error_init
      Src: /src/pacemaker/lib/services/systemd.c:902,1
    - Dst: dbus_message_is_signal
      Src: /src/pacemaker/lib/services/systemd.c:898,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/systemd.c:909,1
    - Dst: dbus_error_free
      Src: /src/pacemaker/lib/services/systemd.c:911,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/systemd.c:915,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/systemd.c:920,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/systemd.c:922,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/systemd.c:925,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/systemd.c:928,1
    - Dst: services__format_result
      Src: /src/pacemaker/lib/services/systemd.c:934,1
    - Dst: services__format_result
      Src: /src/pacemaker/lib/services/systemd.c:929,1
    - Dst: dbus_connection_remove_filter
      Src: /src/pacemaker/lib/services/systemd.c:944,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:926,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 3
    argNames:
    - connection
    - message
    - user_data
    argTypes:
    - DBusConnection*
    - DBusMessage*
    - void*
    constantsTouched: []
    func_position:
      end: 946
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 946
    functionName: job_removed_filter
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_trace
    - pcmk__s
    - dbus_error_init
    - pcmk__str_eq
    - dbus_connection_remove_filter
    - services__set_result
    - dbus_error_free
    - dbus_message_is_signal
    - services__format_result
    - crm_err
    - dbus_message_get_args
    linkageType: ''
    returnType: DBusHandlerResult
    signature: 'static DBusHandlerResult job_removed_filter(DBusConnection *connection,
      DBusMessage *message, void *user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/systemd.c:1202,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:1207,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/systemd.c:1206,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/systemd.c:1204,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/systemd.c:1203,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/systemd.c:1209,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:1210,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/systemd.c:1212,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:1213,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/systemd.c:1215,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:1216,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:1219,1
    - Dst: services__finalize_async_op
      Src: /src/pacemaker/lib/services/systemd.c:1224,1
    - Dst: services_set_op_pending
      Src: /src/pacemaker/lib/services/systemd.c:1223,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - name
    - state
    - userdata
    argTypes:
    - char*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 1226
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1226
    functionName: parse_status_result
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - pcmk__str_eq
    - services__finalize_async_op
    - services__set_result
    - services_set_op_pending
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void parse_status_result(const char *name, const char *state,
      void *userdata) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/systemd.c:73,1
    - Dst: dbus_message_new_method_call
      Src: /src/pacemaker/lib/services/systemd.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - method
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: systemd_new_method
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - crm_trace
    - dbus_message_new_method_call
    linkageType: ''
    returnType: DBusMessage*
    signature: 'static inline DBusMessage *systemd_new_method(const char *method) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dbus_connection_get_is_connected
      Src: /src/pacemaker/lib/services/systemd.c:195,1
    - Dst: pcmk_dbus_connect
      Src: /src/pacemaker/lib/services/systemd.c:204,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/services/systemd.c:196,1
    - Dst: subscribe_to_signals
      Src: /src/pacemaker/lib/services/systemd.c:206,1
    - Dst: pcmk_dbus_disconnect
      Src: /src/pacemaker/lib/services/systemd.c:197,1
    - Dst: pcmk_dbus_disconnect
      Src: /src/pacemaker/lib/services/systemd.c:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 213
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 213
    functionName: systemd_init
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - subscribe_to_signals
    - pcmk_dbus_connect
    - dbus_connection_get_is_connected
    - crm_warn
    - pcmk_dbus_disconnect
    linkageType: ''
    returnType: bool
    signature: 'static bool systemd_init(void) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: systemd_init
      Src: /src/pacemaker/lib/services/systemd.c:620,1
    - Dst: systemd_call_simple_method
      Src: /src/pacemaker/lib/services/systemd.c:630,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/systemd.c:635,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/systemd.c:641,1
    - Dst: pcmk_dbus_type_check
      Src: /src/pacemaker/lib/services/systemd.c:655,1
    - Dst: dbus_message_iter_get_basic
      Src: /src/pacemaker/lib/services/systemd.c:666,1
    - Dst: strrchr
      Src: /src/pacemaker/lib/services/systemd.c:682,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/systemd.c:700,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/services/systemd.c:703,1
    - Dst: dbus_message_iter_init
      Src: /src/pacemaker/lib/services/systemd.c:634,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/systemd.c:636,1
    - Dst: pcmk_dbus_type_check
      Src: /src/pacemaker/lib/services/systemd.c:639,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/systemd.c:642,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/systemd.c:671,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/services/systemd.c:668,1
    - Dst: systemd_unit_extension
      Src: /src/pacemaker/lib/services/systemd.c:673,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/services/systemd.c:676,1
    - Dst: strndup
      Src: /src/pacemaker/lib/services/systemd.c:691,1
    - Dst: dbus_message_iter_recurse
      Src: /src/pacemaker/lib/services/systemd.c:646,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/services/systemd.c:662,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/services/systemd.c:697,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/systemd.c:702,1
    - Dst: dbus_message_iter_get_arg_type
      Src: /src/pacemaker/lib/services/systemd.c:647,1
    - Dst: dbus_message_iter_recurse
      Src: /src/pacemaker/lib/services/systemd.c:660,1
    - Dst: pcmk_dbus_type_check
      Src: /src/pacemaker/lib/services/systemd.c:661,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/services/systemd.c:656,1
    - Dst: dbus_message_iter_next
      Src: /src/pacemaker/lib/services/systemd.c:648,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/services/systemd.c:689,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/systemd.c:693,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 705
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 705
    functionName: systemd_unit_listall
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - dbus_message_iter_recurse
    - strdup
    - systemd_call_simple_method
    - dbus_message_iter_get_basic
    - systemd_unit_extension
    - strndup
    - dbus_message_iter_init
    - crm_err
    - g_list_sort
    - dbus_message_unref
    - strrchr
    - strcmp
    - systemd_init
    - dbus_message_iter_next
    - crm_warn
    - crm_trace
    - dbus_message_iter_get_arg_type
    - crm_debug
    - pcmk_dbus_type_check
    - g_list_prepend
    linkageType: ''
    returnType: GList*
    signature: 'GList *systemd_unit_listall(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_dbus_send_recv
      Src: /src/pacemaker/lib/services/systemd.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - msg
    - error
    - timeout
    argTypes:
    - DBusMessage*
    - DBusError*
    - int
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: systemd_send_recv
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - pcmk_dbus_send_recv
    linkageType: ''
    returnType: DBusMessage*
    signature: 'static inline DBusMessage *systemd_send_recv(DBusMessage *msg, DBusError
      *error, int timeout) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: invoke_unit_by_name
      Src: /src/pacemaker/lib/services/systemd.c:773,1
    - Dst: pcmk__xml_escape
      Src: /src/pacemaker/lib/services/systemd.c:782,1
    - Dst: systemd_get_property
      Src: /src/pacemaker/lib/services/systemd.c:775,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/services/systemd.c:778,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/services/systemd.c:781,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/services/systemd.c:784,1
    - Dst: g_free
      Src: /src/pacemaker/lib/services/systemd.c:785,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/services/systemd.c:788,1
    - Dst: free
      Src: /src/pacemaker/lib/services/systemd.c:791,1
    - Dst: free
      Src: /src/pacemaker/lib/services/systemd.c:792,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - name
    - timeout
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 794
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 794
    functionName: systemd_unit_metadata
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - systemd_get_property
    - pcmk__xml_needs_escape
    - pcmk__xml_escape
    - free
    - invoke_unit_by_name
    - g_free
    linkageType: ''
    returnType: char*
    signature: 'static char *systemd_unit_metadata(const char *name, int timeout) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: systemd_unit_name
      Src: /src/pacemaker/lib/services/systemd.c:1156,1
    - Dst: get_override_dir
      Src: /src/pacemaker/lib/services/systemd.c:1161,1
    - Dst: append_override_basename
      Src: /src/pacemaker/lib/services/systemd.c:1162,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/services/systemd.c:1159,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/services/systemd.c:1159,1
    - Dst: unlink
      Src: /src/pacemaker/lib/services/systemd.c:1164,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/services/systemd.c:1169,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/systemd.c:1170,1
    - Dst: systemd_daemon_reload
      Src: /src/pacemaker/lib/services/systemd.c:1174,1
    - Dst: free
      Src: /src/pacemaker/lib/services/systemd.c:1178,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/services/systemd.c:1182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - agent
    - timeout
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1184
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1184
    functionName: systemd_remove_override
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__str_empty
    - systemd_daemon_reload
    - systemd_unit_name
    - unlink
    - g_string_free
    - free
    - get_override_dir
    - pcmk_rc_str
    - crm_warn
    - append_override_basename
    linkageType: ''
    returnType: void
    signature: 'static void systemd_remove_override(const char *agent, int timeout) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/services/systemd.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: services__systemd_prepare
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - strdup
    linkageType: ''
    returnType: int
    signature: 'int services__systemd_prepare(svc_action_t *op) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/pacemaker/lib/services/systemd.c:251,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/services/systemd.c:255,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/services/systemd.c:256,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/services/systemd.c:254,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/services/systemd.c:253,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/services/systemd.c:257,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 262
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 262
    functionName: systemd_unit_extension
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - strrchr
    - strcmp
    linkageType: ''
    returnType: char*
    signature: 'static const char *systemd_unit_extension(const char *name) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:579,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:572,1
    - Dst: systemd_new_method
      Src: /src/pacemaker/lib/services/systemd.c:529,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/services/systemd.c:537,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/systemd.c:564,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/systemd.c:557,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/systemd.c:574,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/services/systemd.c:509,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:515,1
    - Dst: systemd_send
      Src: /src/pacemaker/lib/services/systemd.c:570,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/systemd.c:548,1
    - Dst: services_set_op_pending
      Src: /src/pacemaker/lib/services/systemd.c:580,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/systemd.c:581,1
    - Dst: systemd_init
      Src: /src/pacemaker/lib/services/systemd.c:513,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/services/systemd.c:530,1
    - Dst: systemd_unit_name
      Src: /src/pacemaker/lib/services/systemd.c:533,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/systemd.c:535,1
    - Dst: dbus_message_append_args
      Src: /src/pacemaker/lib/services/systemd.c:537,1
    - Dst: free
      Src: /src/pacemaker/lib/services/systemd.c:539,1
    - Dst: execute_after_loadunit
      Src: /src/pacemaker/lib/services/systemd.c:550,1
    - Dst: systemd_send_recv
      Src: /src/pacemaker/lib/services/systemd.c:546,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 3
    argNames:
    - arg_name
    - op
    - path
    argTypes:
    - char*
    - svc_action_t*
    - char**
    constantsTouched: []
    func_position:
      end: 583
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 583
    functionName: invoke_unit_by_name
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - dbus_message_append_args
    - strdup
    - pcmk__str_empty
    - CRM_LOG_ASSERT
    - systemd_send_recv
    - systemd_new_method
    - dbus_message_unref
    - pcmk__str_eq
    - execute_after_loadunit
    - systemd_unit_name
    - services__set_result
    - free
    - systemd_init
    - systemd_send
    - pcmk__assert
    - services_set_op_pending
    linkageType: ''
    returnType: int
    signature: 'static int invoke_unit_by_name(const char *arg_name, svc_action_t
      *op, char **path) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/systemd.c:973,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/services/systemd.c:981,1
    - Dst: services_set_op_pending
      Src: /src/pacemaker/lib/services/systemd.c:982,1
    - Dst: dbus_pending_call_steal_reply
      Src: /src/pacemaker/lib/services/systemd.c:977,1
    - Dst: process_unit_method_reply
      Src: /src/pacemaker/lib/services/systemd.c:984,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/systemd.c:987,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/services/systemd.c:991,1
    - Dst: dbus_connection_add_filter
      Src: /src/pacemaker/lib/services/systemd.c:1002,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/systemd.c:1006,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:1007,1
    - Dst: services__finalize_async_op
      Src: /src/pacemaker/lib/services/systemd.c:1011,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - pending
    - user_data
    argTypes:
    - DBusPendingCall*
    - void*
    constantsTouched: []
    func_position:
      end: 1012
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 1012
    functionName: unit_method_complete
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - dbus_connection_add_filter
    - CRM_LOG_ASSERT
    - dbus_pending_call_steal_reply
    - dbus_message_unref
    - services__finalize_async_op
    - pcmk__strcase_any_of
    - services__set_result
    - process_unit_method_reply
    - crm_err
    - services_set_op_pending
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void unit_method_complete(DBusPendingCall *pending, void *user_data) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: services_set_op_pending
      Src: /src/pacemaker/lib/services/systemd.c:1262,1
    - Dst: services__format_result
      Src: /src/pacemaker/lib/services/systemd.c:1272,1
    - Dst: services__finalize_async_op
      Src: /src/pacemaker/lib/services/systemd.c:1296,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/systemd.c:1275,1
    - Dst: systemd_new_method
      Src: /src/pacemaker/lib/services/systemd.c:1305,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/systemd.c:1312,1
    - Dst: services_set_op_pending
      Src: /src/pacemaker/lib/services/systemd.c:1341,1
    - Dst: services__format_result
      Src: /src/pacemaker/lib/services/systemd.c:1256,1
    - Dst: systemd_create_override
      Src: /src/pacemaker/lib/services/systemd.c:1270,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/systemd.c:1282,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/systemd.c:1286,1
    - Dst: pcmk_rc2ocf
      Src: /src/pacemaker/lib/services/systemd.c:1272,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/systemd.c:1301,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/systemd.c:1303,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/services/systemd.c:1316,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/services/systemd.c:1317,1
    - Dst: systemd_send_recv
      Src: /src/pacemaker/lib/services/systemd.c:1323,1
    - Dst: process_unit_method_reply
      Src: /src/pacemaker/lib/services/systemd.c:1325,1
    - Dst: systemd_send
      Src: /src/pacemaker/lib/services/systemd.c:1331,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:1336,1
    - Dst: parse_status_result
      Src: /src/pacemaker/lib/services/systemd.c:1252,1
    - Dst: systemd_get_property
      Src: /src/pacemaker/lib/services/systemd.c:1247,1
    - Dst: services__finalize_async_op
      Src: /src/pacemaker/lib/services/systemd.c:1259,1
    - Dst: systemd_remove_override
      Src: /src/pacemaker/lib/services/systemd.c:1284,1
    - Dst: services__format_result
      Src: /src/pacemaker/lib/services/systemd.c:1290,1
    - Dst: services__finalize_async_op
      Src: /src/pacemaker/lib/services/systemd.c:1277,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/systemd.c:1294,1
    - Dst: services__finalize_async_op
      Src: /src/pacemaker/lib/services/systemd.c:1338,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/systemd.c:1334,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/services/systemd.c:1242,1
    - Dst: free
      Src: /src/pacemaker/lib/services/systemd.c:1253,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/systemd.c:1266,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/services/systemd.c:1306,1
    - Dst: systemd_unit_name
      Src: /src/pacemaker/lib/services/systemd.c:1311,1
    - Dst: dbus_message_append_args
      Src: /src/pacemaker/lib/services/systemd.c:1316,1
    - Dst: dbus_message_append_args
      Src: /src/pacemaker/lib/services/systemd.c:1317,1
    - Dst: free
      Src: /src/pacemaker/lib/services/systemd.c:1319,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/systemd.c:1324,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/systemd.c:1327,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 2
    argNames:
    - op
    - unit
    argTypes:
    - svc_action_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1344
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1344
    functionName: invoke_unit_by_path
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - systemd_new_method
    - parse_status_result
    - services__set_result
    - free
    - pcmk_rc2ocf
    - systemd_create_override
    - pcmk__s
    - systemd_send_recv
    - pcmk__assert
    - systemd_remove_override
    - dbus_message_append_args
    - dbus_message_unref
    - pcmk__str_eq
    - services__finalize_async_op
    - process_unit_method_reply
    - systemd_send
    - services__format_result
    - pcmk__str_any_of
    - crm_trace
    - CRM_LOG_ASSERT
    - systemd_get_property
    - systemd_unit_name
    - services_set_op_pending
    linkageType: ''
    returnType: void
    signature: 'static void invoke_unit_by_path(svc_action_t *op, const char *unit) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/services/systemd.c:1387,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:1390,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/services/systemd.c:1389,1
    - Dst: systemd_init
      Src: /src/pacemaker/lib/services/systemd.c:1395,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/services/systemd.c:1389,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:1396,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/services/systemd.c:1401,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/systemd.c:1403,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/systemd.c:1405,1
    - Dst: systemd_unit_metadata
      Src: /src/pacemaker/lib/services/systemd.c:1406,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:1407,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:1414,1
    - Dst: invoke_unit_by_name
      Src: /src/pacemaker/lib/services/systemd.c:1417,1
    - Dst: services_add_inflight_op
      Src: /src/pacemaker/lib/services/systemd.c:1421,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/lib/services/systemd.c:1419,1
    - Dst: services__finalize_async_op
      Src: /src/pacemaker/lib/services/systemd.c:1429,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 1431
      start: 1384
    functionDepth: 0
    functionLinenumber: 1384
    functionLinenumberEnd: 1431
    functionName: services__execute_systemd
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__s
    - pcmk__str_empty
    - pcmk__str_eq
    - systemd_unit_metadata
    - services__finalize_async_op
    - services__set_result
    - invoke_unit_by_name
    - systemd_init
    - pcmk__assert
    - services_add_inflight_op
    - pcmk__create_timer
    linkageType: ''
    returnType: int
    signature: 'int services__execute_systemd(svc_action_t *op) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/services/systemd.c:269,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/services/systemd.c:289,1
    - Dst: systemd_unit_extension
      Src: /src/pacemaker/lib/services/systemd.c:282,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/services/systemd.c:286,1
    - Dst: strlen
      Src: /src/pacemaker/lib/services/systemd.c:292,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/services/systemd.c:293,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/services/systemd.c:296,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - name
    - add_instance_name
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 298
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 298
    functionName: systemd_unit_name
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pcmk__str_empty
    - systemd_unit_extension
    - pcmk__str_copy
    - strlen
    linkageType: ''
    returnType: char*
    signature: 'static char *systemd_unit_name(const char *name, bool add_instance_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/systemd.c:1352,1
    - Dst: dbus_connection_remove_filter
      Src: /src/pacemaker/lib/services/systemd.c:1360,1
    - Dst: services__format_result
      Src: /src/pacemaker/lib/services/systemd.c:1354,1
    - Dst: services__finalize_async_op
      Src: /src/pacemaker/lib/services/systemd.c:1363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 1366
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1366
    functionName: systemd_timeout_callback
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - services__format_result
    - crm_info
    - services__finalize_async_op
    - dbus_connection_remove_filter
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean systemd_timeout_callback(gpointer p) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_dbus_find_error
      Src: /src/pacemaker/lib/services/systemd.c:412,1
    - Dst: set_result_from_method_error
      Src: /src/pacemaker/lib/services/systemd.c:414,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:421,1
    - Dst: pcmk_dbus_type_check
      Src: /src/pacemaker/lib/services/systemd.c:418,1
    - Dst: dbus_error_free
      Src: /src/pacemaker/lib/services/systemd.c:416,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/systemd.c:423,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/systemd.c:426,1
    - Dst: dbus_message_get_args
      Src: /src/pacemaker/lib/services/systemd.c:431,1
    - Dst: invoke_unit_by_path
      Src: /src/pacemaker/lib/services/systemd.c:438,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/services/systemd.c:441,1
    - Dst: services__finalize_async_op
      Src: /src/pacemaker/lib/services/systemd.c:448,1
    - Dst: services__format_result
      Src: /src/pacemaker/lib/services/systemd.c:444,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 2
    argNames:
    - reply
    - op
    argTypes:
    - DBusMessage*
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 453
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 453
    functionName: execute_after_loadunit
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - set_result_from_method_error
    - services__finalize_async_op
    - services__set_result
    - invoke_unit_by_path
    - pcmk_dbus_type_check
    - dbus_error_free
    - services__format_result
    - pcmk__str_any_of
    - crm_info
    - pcmk_dbus_find_error
    - dbus_message_get_args
    linkageType: ''
    returnType: char*
    signature: 'static const char *execute_after_loadunit(DBusMessage *reply, svc_action_t
      *op) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/systemd.c:468,1
    - Dst: dbus_pending_call_steal_reply
      Src: /src/pacemaker/lib/services/systemd.c:472,1
    - Dst: services_set_op_pending
      Src: /src/pacemaker/lib/services/systemd.c:477,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/services/systemd.c:476,1
    - Dst: execute_after_loadunit
      Src: /src/pacemaker/lib/services/systemd.c:480,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/systemd.c:482,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - pending
    - user_data
    argTypes:
    - DBusPendingCall*
    - void*
    constantsTouched: []
    func_position:
      end: 484
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 484
    functionName: loadunit_completed
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - CRM_LOG_ASSERT
    - dbus_pending_call_steal_reply
    - dbus_message_unref
    - execute_after_loadunit
    - services_set_op_pending
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void loadunit_completed(DBusPendingCall *pending, void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_dbus_get_property
      Src: /src/pacemaker/lib/services/systemd.c:221,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 2
    argCount: 6
    argNames:
    - unit
    - name
    - (*callback)
    - userdata
    - pending
    - timeout
    argTypes:
    - char*
    - char*
    - void
    - void*
    - DBusPendingCall**
    - int
    constantsTouched: []
    func_position:
      end: 224
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 224
    functionName: systemd_get_property
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - pcmk_dbus_get_property
    linkageType: ''
    returnType: char*
    signature: 'static inline char *systemd_get_property(const char *unit, const char
      *name, void (*callback)(const char *name, const char *value, void *userdata),
      void *userdata, DBusPendingCall **pending, int timeout) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GPOINTER_TO_UINT
      Src: /src/pacemaker/lib/services/systemd.c:305,1
    - Dst: dbus_error_init
      Src: /src/pacemaker/lib/services/systemd.c:307,1
    - Dst: pcmk_dbus_find_error
      Src: /src/pacemaker/lib/services/systemd.c:312,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/services/systemd.c:313,1
    - Dst: dbus_pending_call_steal_reply
      Src: /src/pacemaker/lib/services/systemd.c:309,1
    - Dst: dbus_error_free
      Src: /src/pacemaker/lib/services/systemd.c:315,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/systemd.c:318,1
    - Dst: dbus_pending_call_unref
      Src: /src/pacemaker/lib/services/systemd.c:322,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/systemd.c:325,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - pending
    - user_data
    argTypes:
    - DBusPendingCall*
    - void*
    constantsTouched: []
    func_position:
      end: 327
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 327
    functionName: systemd_daemon_reload_complete
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - crm_trace
    - GPOINTER_TO_UINT
    - dbus_error_init
    - dbus_pending_call_steal_reply
    - dbus_message_unref
    - dbus_error_free
    - crm_warn
    - dbus_pending_call_unref
    - pcmk_dbus_find_error
    linkageType: ''
    returnType: void
    signature: 'static void systemd_daemon_reload_complete(DBusPendingCall *pending,
      void *user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:354,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/systemd.c:361,1
    - Dst: strstr
      Src: /src/pacemaker/lib/services/systemd.c:358,1
    - Dst: strstr
      Src: /src/pacemaker/lib/services/systemd.c:357,1
    - Dst: strstr
      Src: /src/pacemaker/lib/services/systemd.c:359,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/systemd.c:362,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/systemd.c:364,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:365,1
    - Dst: services__format_result
      Src: /src/pacemaker/lib/services/systemd.c:369,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/services/systemd.c:380,1
    - Dst: strstr
      Src: /src/pacemaker/lib/services/systemd.c:383,1
    - Dst: strstr
      Src: /src/pacemaker/lib/services/systemd.c:382,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/systemd.c:387,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/services/systemd.c:389,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/systemd.c:384,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - op
    - error
    argTypes:
    - svc_action_t*
    - DBusError*
    constantsTouched: []
    func_position:
      end: 391
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 391
    functionName: set_result_from_method_error
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - pcmk__str_eq
    - crm_info
    - services__set_result
    - services__format_result
    - pcmk__str_any_of
    - strstr
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void set_result_from_method_error(svc_action_t *op, const DBusError
      *error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_dbus_send
      Src: /src/pacemaker/lib/services/systemd.c:89,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 4
    argNames:
    - msg
    - (*done)
    - user_data
    - timeout
    argTypes:
    - DBusMessage*
    - void
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: systemd_send
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - pcmk_dbus_send
    linkageType: ''
    returnType: DBusPendingCall*
    signature: 'static inline DBusPendingCall *systemd_send(DBusMessage *msg, void(*done)(DBusPendingCall
      *pending, void *user_data), void *user_data, int timeout) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_dbus_disconnect
      Src: /src/pacemaker/lib/services/systemd.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 233
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 233
    functionName: systemd_cleanup
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - pcmk_dbus_disconnect
    linkageType: ''
    returnType: void
    signature: 'void systemd_cleanup(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: systemd_new_method
      Src: /src/pacemaker/lib/services/systemd.c:333,1
    - Dst: GUINT_TO_POINTER
      Src: /src/pacemaker/lib/services/systemd.c:338,1
    - Dst: dbus_message_unref
      Src: /src/pacemaker/lib/services/systemd.c:339,1
    - Dst: systemd_send
      Src: /src/pacemaker/lib/services/systemd.c:337,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/services/systemd.c:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 342
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 342
    functionName: systemd_daemon_reload
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - systemd_new_method
    - dbus_message_unref
    - GUINT_TO_POINTER
    - systemd_send
    - pcmk__assert
    linkageType: ''
    returnType: bool
    signature: 'static bool systemd_daemon_reload(int timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/services/systemd.c:1044,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/services/systemd.c:1046,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - unit_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1048
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1048
    functionName: get_override_dir
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - g_string_sized_new
    - pcmk__g_strcat
    linkageType: ''
    returnType: GString*
    signature: 'static GString *get_override_dir(const char *unit_name) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/services/systemd.c:1087,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/systemd.c:1093,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/systemd.c:1094,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/systemd.c:1102,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/systemd.c:1103,1
    - Dst: fileno
      Src: /src/pacemaker/lib/services/systemd.c:1108,1
    - Dst: fclose
      Src: /src/pacemaker/lib/services/systemd.c:1129,1
    - Dst: free
      Src: /src/pacemaker/lib/services/systemd.c:1141,1
    - Dst: pcmk__build_path
      Src: /src/pacemaker/lib/services/systemd.c:1091,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/systemd.c:1111,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/systemd.c:1112,1
    - Dst: pcmk__ends_with_ext
      Src: /src/pacemaker/lib/services/systemd.c:1118,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/services/systemd.c:1119,1
    - Dst: fputs
      Src: /src/pacemaker/lib/services/systemd.c:1122,1
    - Dst: systemd_daemon_reload
      Src: /src/pacemaker/lib/services/systemd.c:1134,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/services/systemd.c:1145,1
    - Dst: get_override_dir
      Src: /src/pacemaker/lib/services/systemd.c:1090,1
    - Dst: append_override_basename
      Src: /src/pacemaker/lib/services/systemd.c:1098,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/services/systemd.c:1116,1
    - Dst: unlink
      Src: /src/pacemaker/lib/services/systemd.c:1138,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/services/systemd.c:1148,1
    - Dst: systemd_unit_name
      Src: /src/pacemaker/lib/services/systemd.c:1086,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/services/systemd.c:1087,1
    - Dst: fopen
      Src: /src/pacemaker/lib/services/systemd.c:1099,1
    - Dst: g_string_printf
      Src: /src/pacemaker/lib/services/systemd.c:1117,1
    - Dst: fchmod
      Src: /src/pacemaker/lib/services/systemd.c:1109,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/systemd.c:1124,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 2
    argNames:
    - agent
    - timeout
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1151
      start: 1076
    functionDepth: 0
    functionLinenumber: 1076
    functionLinenumberEnd: 1151
    functionName: systemd_create_override
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - fclose
    - pcmk__str_empty
    - free
    - fputs
    - g_string_free
    - fchmod
    - fopen
    - fileno
    - unlink
    - pcmk__build_path
    - pcmk_rc_str
    - crm_err
    - g_string_printf
    - CRM_CHECK
    - g_string_append
    - systemd_daemon_reload
    - g_string_sized_new
    - get_override_dir
    - append_override_basename
    - systemd_unit_name
    - pcmk__ends_with_ext
    linkageType: ''
    returnType: int
    signature: 'static int systemd_create_override(const char *agent, int timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_append
      Src: /src/pacemaker/lib/services/systemd.c:1059,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - GString*
    constantsTouched: []
    func_position:
      end: 1060
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1060
    functionName: append_override_basename
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - g_string_append
    linkageType: ''
    returnType: void
    signature: 'static inline void append_override_basename(GString *buf) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invoke_unit_by_name
      Src: /src/pacemaker/lib/services/systemd.c:717,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/services/systemd.c:728,1
    - Dst: free
      Src: /src/pacemaker/lib/services/systemd.c:732,1
    - Dst: systemd_get_property
      Src: /src/pacemaker/lib/services/systemd.c:726,1
    - Dst: free
      Src: /src/pacemaker/lib/services/systemd.c:731,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 734
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 734
    functionName: systemd_unit_exists
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - systemd_get_property
    - pcmk__str_any_of
    - free
    - invoke_unit_by_name
    linkageType: ''
    returnType: bool
    signature: 'bool systemd_unit_exists(const char *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: services__finalize_async_op
      Src: /src/pacemaker/lib/services/systemd.c:957,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - action
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 958
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 958
    functionName: finalize_async_action_dbus
    functionSourceFile: /src/pacemaker/lib/services/systemd.c
    functionUses: []
    functionsReached:
    - services__finalize_async_op
    linkageType: ''
    returnType: void
    signature: 'static void finalize_async_action_dbus(void *action) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/pacemaker/lib/services/services_linux.c:590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 592
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 592
    functionName: close_op_input
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: 'static void close_op_input(svc_action_t *op) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: services__format_result
      Src: /src/pacemaker/lib/services/services_linux.c:900,1
    - Dst: services__not_installed_error
      Src: /src/pacemaker/lib/services/services_linux.c:900,1
    - Dst: services__authorization_error
      Src: /src/pacemaker/lib/services/services_linux.c:906,1
    - Dst: services__format_result
      Src: /src/pacemaker/lib/services/services_linux.c:906,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:902,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:908,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/services_linux.c:911,1
    - Dst: services__generic_error
      Src: /src/pacemaker/lib/services/services_linux.c:911,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:912,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 2
    argNames:
    - op
    - error
    argTypes:
    - svc_action_t*
    - int
    constantsTouched: []
    func_position:
      end: 914
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 914
    functionName: services__handle_exec_error
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - services__generic_error
    - services__not_installed_error
    - services__set_result
    - services__authorization_error
    - pcmk_rc_str
    - services__format_result
    linkageType: ''
    returnType: void
    signature: 'void services__handle_exec_error(svc_action_t * op, int error) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services_linux.c:609,1
    - Dst: svc_read_output
      Src: /src/pacemaker/lib/services/services_linux.c:611,1
    - Dst: mainloop_del_fd
      Src: /src/pacemaker/lib/services/services_linux.c:615,1
    - Dst: close
      Src: /src/pacemaker/lib/services/services_linux.c:613,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - op
    - is_stderr
    argTypes:
    - svc_action_t*
    - bool
    constantsTouched: []
    func_position:
      end: 619
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 619
    functionName: finish_op_output
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - close
    - mainloop_del_fd
    - crm_trace
    - svc_read_output
    linkageType: ''
    returnType: void
    signature: 'static void finish_op_output(svc_action_t *op, bool is_stderr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/services/services_linux.c:79,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:84,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:83,1
    - Dst: signalfd
      Src: /src/pacemaker/lib/services/services_linux.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct sigchld_data_s*
    constantsTouched: []
    func_position:
      end: 87
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 87
    functionName: sigchld_open
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - signalfd
    - CRM_CHECK
    - crm_info
    - pcmk_rc_str
    linkageType: ''
    returnType: int
    signature: 'static int sigchld_open(struct sigchld_data_s *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/pacemaker/lib/services/services_linux.c:56,1
    - Dst: sigemptyset
      Src: /src/pacemaker/lib/services/services_linux.c:59,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:63,1
    - Dst: sigprocmask
      Src: /src/pacemaker/lib/services/services_linux.c:62,1
    - Dst: sigaddset
      Src: /src/pacemaker/lib/services/services_linux.c:57,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct sigchld_data_s*
    constantsTouched: []
    func_position:
      end: 71
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 71
    functionName: sigchld_setup
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - sigaddset
    - sigprocmask
    - pcmk_rc_str
    - crm_info
    - sigemptyset
    linkageType: ''
    returnType: bool
    signature: 'static bool sigchld_setup(struct sigchld_data_s *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sigismember
      Src: /src/pacemaker/lib/services/services_linux.c:135,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/services/services_linux.c:137,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:138,1
    - Dst: kill
      Src: /src/pacemaker/lib/services/services_linux.c:142,1
    - Dst: sigprocmask
      Src: /src/pacemaker/lib/services/services_linux.c:136,1
    - Dst: getpid
      Src: /src/pacemaker/lib/services/services_linux.c:142,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/services/services_linux.c:143,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:144,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct sigchld_data_s*
    constantsTouched: []
    func_position:
      end: 146
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 146
    functionName: sigchld_cleanup
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - kill
    - sigprocmask
    - getpid
    - sigismember
    - pcmk_rc_str
    - crm_warn
    linkageType: ''
    returnType: void
    signature: 'static void sigchld_cleanup(struct sigchld_data_s *data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_child_userdata
      Src: /src/pacemaker/lib/services/services_linux.c:695,1
    - Dst: mainloop_clear_child_userdata
      Src: /src/pacemaker/lib/services/services_linux.c:697,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/services/services_linux.c:698,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/services_linux.c:714,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/services/services_linux.c:722,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:721,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:732,1
    - Dst: strsignal
      Src: /src/pacemaker/lib/services/services_linux.c:733,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:737,1
    - Dst: strsignal
      Src: /src/pacemaker/lib/services/services_linux.c:738,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/services_linux.c:699,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/services/services_linux.c:713,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/services/services_linux.c:726,1
    - Dst: services__format_result
      Src: /src/pacemaker/lib/services/services_linux.c:723,1
    - Dst: parse_exit_reason_from_stderr
      Src: /src/pacemaker/lib/services/services_linux.c:716,1
    - Dst: services__action_kind
      Src: /src/pacemaker/lib/services/services_linux.c:741,1
    - Dst: services__finalize_async_op
      Src: /src/pacemaker/lib/services/services_linux.c:744,1
    - Dst: services__generic_error
      Src: /src/pacemaker/lib/services/services_linux.c:699,1
    - Dst: log_op_output
      Src: /src/pacemaker/lib/services/services_linux.c:715,1
    - Dst: services__action_kind
      Src: /src/pacemaker/lib/services/services_linux.c:719,1
    - Dst: finish_op_output
      Src: /src/pacemaker/lib/services/services_linux.c:707,1
    - Dst: finish_op_output
      Src: /src/pacemaker/lib/services/services_linux.c:708,1
    - Dst: close_op_input
      Src: /src/pacemaker/lib/services/services_linux.c:710,1
    - Dst: services__generic_error
      Src: /src/pacemaker/lib/services/services_linux.c:723,1
    - Dst: mainloop_child_timeout
      Src: /src/pacemaker/lib/services/services_linux.c:718,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/services_linux.c:734,1
    - Dst: services__format_result
      Src: /src/pacemaker/lib/services/services_linux.c:739,1
    - Dst: strsignal
      Src: /src/pacemaker/lib/services/services_linux.c:741,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 5
    argNames:
    - p
    - pid
    - core
    - signo
    - exitcode
    argTypes:
    - mainloop_child_t*
    - pid_t
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 745
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 745
    functionName: async_action_complete
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - services__generic_error
    - crm_debug
    - CRM_CHECK
    - mainloop_child_timeout
    - strsignal
    - mainloop_clear_child_userdata
    - log_op_output
    - services__finalize_async_op
    - mainloop_child_userdata
    - services__action_kind
    - parse_exit_reason_from_stderr
    - services__set_result
    - finish_op_output
    - services__format_result
    - pcmk__readable_interval
    - crm_info
    - close_op_input
    linkageType: ''
    returnType: void
    signature: 'static void async_action_complete(mainloop_child_t *p, pid_t pid,
      int core, int signo, int exitcode) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/pacemaker/lib/services/services_linux.c:168,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:169,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 172
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 172
    functionName: sigchld_handler
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - crm_info
    - write
    - pcmk_rc_str
    linkageType: ''
    returnType: void
    signature: 'static void sigchld_handler(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/pacemaker/lib/services/services_linux.c:108,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:111,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:110,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 3
    argNames:
    - fd
    - pid
    - data
    argTypes:
    - int
    - int
    - struct sigchld_data_s*
    constantsTouched: []
    func_position:
      end: 128
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 128
    functionName: sigchld_received
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - crm_info
    - read
    - pcmk_rc_str
    linkageType: ''
    returnType: bool
    signature: 'static bool sigchld_received(int fd, int pid, struct sigchld_data_s
      *data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/pacemaker/lib/services/services_linux.c:645,1
    - Dst: strstr
      Src: /src/pacemaker/lib/services/services_linux.c:654,1
    - Dst: strchr
      Src: /src/pacemaker/lib/services/services_linux.c:667,1
    - Dst: strstr
      Src: /src/pacemaker/lib/services/services_linux.c:655,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services_linux.c:649,1
    - Dst: strlen
      Src: /src/pacemaker/lib/services/services_linux.c:669,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_linux.c:677,1
    - Dst: strndup
      Src: /src/pacemaker/lib/services/services_linux.c:678,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 679
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 679
    functionName: parse_exit_reason_from_stderr
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - strchr
    - strndup
    - free
    - strlen
    - strstr
    linkageType: ''
    returnType: void
    signature: 'static void parse_exit_reason_from_stderr(svc_action_t *op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/pacemaker/lib/services/services_linux.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: sigchld_close
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: 'static void sigchld_close(int fd) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/pacemaker/lib/services/services_linux.c:272,1
    - Dst: close
      Src: /src/pacemaker/lib/services/services_linux.c:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - fildes
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 279
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 279
    functionName: close_pipe
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: 'static void close_pipe(int fildes[]) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: svc_read_output
      Src: /src/pacemaker/lib/services/services_linux.c:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 356
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 356
    functionName: dispatch_stdout
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - svc_read_output
    linkageType: ''
    returnType: int
    signature: 'static int dispatch_stdout(gpointer userdata) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/pacemaker/lib/services/services_linux.c:405,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/services/services_linux.c:406,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - char*
    - char*
    - gpointer
    constantsTouched: []
    func_position:
      end: 408
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 408
    functionName: set_ocf_env
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - setenv
    - crm_perror
    linkageType: ''
    returnType: void
    signature: 'static void set_ocf_env(const char *key, const char *value, gpointer
      user_data) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services_linux.c:451,1
    - Dst: set_ocf_env
      Src: /src/pacemaker/lib/services/services_linux.c:464,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/services/services_linux.c:456,1
    - Dst: set_ocf_env
      Src: /src/pacemaker/lib/services/services_linux.c:465,1
    - Dst: set_ocf_env
      Src: /src/pacemaker/lib/services/services_linux.c:463,1
    - Dst: set_ocf_env
      Src: /src/pacemaker/lib/services/services_linux.c:466,1
    - Dst: set_ocf_env
      Src: /src/pacemaker/lib/services/services_linux.c:469,1
    - Dst: set_ocf_env
      Src: /src/pacemaker/lib/services/services_linux.c:473,1
    - Dst: set_ocf_env
      Src: /src/pacemaker/lib/services/services_linux.c:478,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 480
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 480
    functionName: add_action_env_vars
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    - pcmk__str_eq
    - set_ocf_env
    linkageType: ''
    returnType: void
    signature: 'static void add_action_env_vars(const svc_action_t *op) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services_linux.c:799,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services_linux.c:800,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 807
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 807
    functionName: services__not_installed_error
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: int
    signature: 'int services__not_installed_error(const svc_action_t *op) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services_linux.c:862,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services_linux.c:863,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - op
    - is_fatal
    argTypes:
    - svc_action_t*
    - bool
    constantsTouched: []
    func_position:
      end: 870
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 870
    functionName: services__configuration_error
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: int
    signature: 'int services__configuration_error(const svc_action_t *op, bool is_fatal) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: svc_read_output
      Src: /src/pacemaker/lib/services/services_linux.c:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 364
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 364
    functionName: dispatch_stderr
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - svc_read_output
    linkageType: ''
    returnType: int
    signature: 'static int dispatch_stderr(gpointer userdata) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/pacemaker/lib/services/services_linux.c:415,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/services/services_linux.c:415,1
    - Dst: set_ocf_env
      Src: /src/pacemaker/lib/services/services_linux.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 417
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 417
    functionName: set_ocf_env_with_prefix
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - snprintf
    - strcmp
    - set_ocf_env
    linkageType: ''
    returnType: void
    signature: 'static void set_ocf_env_with_prefix(gpointer key, gpointer value,
      gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services_linux.c:1459,1
    - Dst: strtok
      Src: /src/pacemaker/lib/services/services_linux.c:1467,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/services/services_linux.c:1462,1
    - Dst: strtok
      Src: /src/pacemaker/lib/services/services_linux.c:1467,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_linux.c:1463,1
    - Dst: services_os_get_single_directory_list
      Src: /src/pacemaker/lib/services/services_linux.c:1468,1
    - Dst: g_list_concat
      Src: /src/pacemaker/lib/services/services_linux.c:1471,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_linux.c:1475,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 3
    argNames:
    - root
    - files
    - executable
    argTypes:
    - char*
    - gboolean
    - gboolean
    constantsTouched: []
    func_position:
      end: 1478
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1478
    functionName: services_os_get_directory_list
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - pcmk__str_empty
    - strtok
    - g_list_concat
    - services_os_get_single_directory_list
    - free
    - strdup
    linkageType: ''
    returnType: GList*
    signature: 'GList *services_os_get_directory_list(const char *root, gboolean files,
      gboolean executable) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/pacemaker/lib/services/services_linux.c:425,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services_linux.c:434,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/services/services_linux.c:431,1
    - Dst: unsetenv
      Src: /src/pacemaker/lib/services/services_linux.c:427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 436
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 436
    functionName: set_alert_env
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - unsetenv
    - setenv
    - crm_trace
    - crm_perror
    linkageType: ''
    returnType: void
    signature: 'static void set_alert_env(gpointer key, gpointer value, gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/services/services_linux.c:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 513
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 513
    functionName: pipe_in_action_stdin_parameters
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    linkageType: ''
    returnType: void
    signature: 'static void pipe_in_action_stdin_parameters(const svc_action_t *op) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/services/services_linux.c:554,1
    - Dst: cancel_recurring_action
      Src: /src/pacemaker/lib/services/services_linux.c:560,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/lib/services/services_linux.c:562,1
    - Dst: services__set_cancelled
      Src: /src/pacemaker/lib/services/services_linux.c:559,1
    - Dst: services_untrack_op
      Src: /src/pacemaker/lib/services/services_linux.c:574,1
    - Dst: services_action_cleanup
      Src: /src/pacemaker/lib/services/services_linux.c:578,1
    - Dst: services_action_free
      Src: /src/pacemaker/lib/services/services_linux.c:582,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 584
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 584
    functionName: services__finalize_async_op
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - services_action_free
    - cancel_recurring_action
    - services_action_cleanup
    - services_untrack_op
    - services__set_cancelled
    - pcmk__create_timer
    linkageType: ''
    returnType: int
    signature: 'int services__finalize_async_op(svc_action_t *op) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services_linux.c:768,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services_linux.c:769,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 776
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 776
    functionName: services__generic_error
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: int
    signature: 'int services__generic_error(const svc_action_t *op) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services_linux.c:830,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services_linux.c:831,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 838
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 838
    functionName: services__authorization_error
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: int
    signature: 'int services__authorization_error(const svc_action_t *op) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/pacemaker/lib/services/services_linux.c:1072,1
    - Dst: sigchld_received
      Src: /src/pacemaker/lib/services/services_linux.c:1086,1
    - Dst: finish_op_output
      Src: /src/pacemaker/lib/services/services_linux.c:1130,1
    - Dst: services__format_result
      Src: /src/pacemaker/lib/services/services_linux.c:1138,1
    - Dst: services__generic_error
      Src: /src/pacemaker/lib/services/services_linux.c:1138,1
    - Dst: services__action_kind
      Src: /src/pacemaker/lib/services/services_linux.c:1141,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:1167,1
    - Dst: WIFSIGNALED
      Src: /src/pacemaker/lib/services/services_linux.c:1169,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/services_linux.c:1186,1
    - Dst: services__generic_error
      Src: /src/pacemaker/lib/services/services_linux.c:1186,1
    - Dst: strsignal
      Src: /src/pacemaker/lib/services/services_linux.c:1176,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services_linux.c:1070,1
    - Dst: waitpid
      Src: /src/pacemaker/lib/services/services_linux.c:1087,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:1094,1
    - Dst: time
      Src: /src/pacemaker/lib/services/services_linux.c:1125,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services_linux.c:1129,1
    - Dst: finish_op_output
      Src: /src/pacemaker/lib/services/services_linux.c:1131,1
    - Dst: close_op_input
      Src: /src/pacemaker/lib/services/services_linux.c:1132,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/services_linux.c:1146,1
    - Dst: kill
      Src: /src/pacemaker/lib/services/services_linux.c:1153,1
    - Dst: WIFEXITED
      Src: /src/pacemaker/lib/services/services_linux.c:1164,1
    - Dst: services__action_kind
      Src: /src/pacemaker/lib/services/services_linux.c:1174,1
    - Dst: time
      Src: /src/pacemaker/lib/services/services_linux.c:1053,1
    - Dst: svc_read_output
      Src: /src/pacemaker/lib/services/services_linux.c:1078,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:1095,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:1119,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:1142,1
    - Dst: services__generic_error
      Src: /src/pacemaker/lib/services/services_linux.c:1146,1
    - Dst: waitpid
      Src: /src/pacemaker/lib/services/services_linux.c:1152,1
    - Dst: parse_exit_reason_from_stderr
      Src: /src/pacemaker/lib/services/services_linux.c:1166,1
    - Dst: WCOREDUMP
      Src: /src/pacemaker/lib/services/services_linux.c:1179,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/services/services_linux.c:1180,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/services_linux.c:1165,1
    - Dst: strsignal
      Src: /src/pacemaker/lib/services/services_linux.c:1174,1
    - Dst: sigchld_open
      Src: /src/pacemaker/lib/services/services_linux.c:1066,1
    - Dst: svc_read_output
      Src: /src/pacemaker/lib/services/services_linux.c:1082,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:1120,1
    - Dst: sigchld_close
      Src: /src/pacemaker/lib/services/services_linux.c:1133,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/services/services_linux.c:1154,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:1155,1
    - Dst: waitpid
      Src: /src/pacemaker/lib/services/services_linux.c:1158,1
    - Dst: WTERMSIG
      Src: /src/pacemaker/lib/services/services_linux.c:1170,1
    - Dst: services__format_result
      Src: /src/pacemaker/lib/services/services_linux.c:1172,1
    - Dst: services__generic_error
      Src: /src/pacemaker/lib/services/services_linux.c:1172,1
    - Dst: WEXITSTATUS
      Src: /src/pacemaker/lib/services/services_linux.c:1165,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:1175,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 116
    argCount: 2
    argNames:
    - op
    - data
    argTypes:
    - svc_action_t*
    - struct sigchld_data_s*
    constantsTouched: []
    func_position:
      end: 1189
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1189
    functionName: wait_for_sync_result
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - services__generic_error
    - WTERMSIG
    - services__set_result
    - strsignal
    - close_op_input
    - waitpid
    - WCOREDUMP
    - parse_exit_reason_from_stderr
    - finish_op_output
    - WEXITSTATUS
    - pcmk_rc_str
    - sigchld_open
    - kill
    - WIFSIGNALED
    - poll
    - services__format_result
    - crm_warn
    - crm_info
    - crm_trace
    - sigchld_close
    - sigchld_received
    - svc_read_output
    - time
    - services__action_kind
    - WIFEXITED
    linkageType: ''
    returnType: void
    signature: 'static void wait_for_sync_result(svc_action_t *op, struct sigchld_data_s
      *data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/pacemaker/lib/services/services_linux.c:181,1
    - Dst: pcmk__set_nonblocking
      Src: /src/pacemaker/lib/services/services_linux.c:187,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:182,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:183,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:189,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:190,1
    - Dst: pcmk__set_nonblocking
      Src: /src/pacemaker/lib/services/services_linux.c:192,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:194,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:195,1
    - Dst: sigemptyset
      Src: /src/pacemaker/lib/services/services_linux.c:201,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:203,1
    - Dst: sigaction
      Src: /src/pacemaker/lib/services/services_linux.c:202,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:204,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct sigchld_data_s*
    constantsTouched: []
    func_position:
      end: 212
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 212
    functionName: sigchld_setup
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - pipe
    - pcmk__set_nonblocking
    - pcmk_rc_str
    - sigaction
    - crm_info
    - sigemptyset
    linkageType: ''
    returnType: bool
    signature: 'static bool sigchld_setup(struct sigchld_data_s *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 226
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 226
    functionName: sigchld_close
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void sigchld_close(int fd) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services_linux.c:371,1
    - Dst: close
      Src: /src/pacemaker/lib/services/services_linux.c:375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 378
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 378
    functionName: pipe_out_done
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - crm_trace
    - close
    linkageType: ''
    returnType: void
    signature: 'static void pipe_out_done(gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/services/services_linux.c:486,1
    - Dst: strlen
      Src: /src/pacemaker/lib/services/services_linux.c:487,1
    - Dst: write
      Src: /src/pacemaker/lib/services/services_linux.c:493,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_linux.c:498,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 499
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 499
    functionName: pipe_in_single_parameter
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - strlen
    - free
    - write
    - crm_strdup_printf
    linkageType: ''
    returnType: void
    signature: 'static void pipe_in_single_parameter(gpointer key, gpointer value,
      gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/services/services_linux.c:520,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_linux.c:525,1
    - Dst: services_action_async
      Src: /src/pacemaker/lib/services/services_linux.c:529,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_linux.c:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 531
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 531
    functionName: recurring_action_timer
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - crm_debug
    - free
    - services_action_async
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean recurring_action_timer(gpointer data) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/pacemaker/lib/services/services_linux.c:946,1
    - Dst: sched_getscheduler
      Src: /src/pacemaker/lib/services/services_linux.c:948,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:955,1
    - Dst: exit_child
      Src: /src/pacemaker/lib/services/services_linux.c:993,1
    - Dst: add_action_env_vars
      Src: /src/pacemaker/lib/services/services_linux.c:999,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services_linux.c:985,1
    - Dst: geteuid
      Src: /src/pacemaker/lib/services/services_linux.c:1002,1
    - Dst: exit_child
      Src: /src/pacemaker/lib/services/services_linux.c:1009,1
    - Dst: setgroups
      Src: /src/pacemaker/lib/services/services_linux.c:1015,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/services_linux.c:1016,1
    - Dst: execvp
      Src: /src/pacemaker/lib/services/services_linux.c:1032,1
    - Dst: setpriority
      Src: /src/pacemaker/lib/services/services_linux.c:959,1
    - Dst: services__configuration_error
      Src: /src/pacemaker/lib/services/services_linux.c:993,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/services_linux.c:1006,1
    - Dst: strerror
      Src: /src/pacemaker/lib/services/services_linux.c:1008,1
    - Dst: strerror
      Src: /src/pacemaker/lib/services/services_linux.c:1017,1
    - Dst: services__authorization_error
      Src: /src/pacemaker/lib/services/services_linux.c:1026,1
    - Dst: services__handle_exec_error
      Src: /src/pacemaker/lib/services/services_linux.c:1036,1
    - Dst: exit_child
      Src: /src/pacemaker/lib/services/services_linux.c:1038,1
    - Dst: sched_setscheduler
      Src: /src/pacemaker/lib/services/services_linux.c:954,1
    - Dst: setpgid
      Src: /src/pacemaker/lib/services/services_linux.c:967,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:988,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:986,1
    - Dst: setgid
      Src: /src/pacemaker/lib/services/services_linux.c:1005,1
    - Dst: services__authorization_error
      Src: /src/pacemaker/lib/services/services_linux.c:1018,1
    - Dst: setuid
      Src: /src/pacemaker/lib/services/services_linux.c:1023,1
    - Dst: exit_child
      Src: /src/pacemaker/lib/services/services_linux.c:1026,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/services_linux.c:1037,1
    - Dst: strerror
      Src: /src/pacemaker/lib/services/services_linux.c:1037,1
    - Dst: memset
      Src: /src/pacemaker/lib/services/services_linux.c:951,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:960,1
    - Dst: pcmk__close_fds_in_child
      Src: /src/pacemaker/lib/services/services_linux.c:969,1
    - Dst: pcmk__substitute_secrets
      Src: /src/pacemaker/lib/services/services_linux.c:983,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/services_linux.c:990,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:992,1
    - Dst: services__authorization_error
      Src: /src/pacemaker/lib/services/services_linux.c:1009,1
    - Dst: exit_child
      Src: /src/pacemaker/lib/services/services_linux.c:1018,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/services/services_linux.c:1024,1
    - Dst: strerror
      Src: /src/pacemaker/lib/services/services_linux.c:1025,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 63
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 1039
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 1039
    functionName: action_launch_child
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - setpgid
    - services__authorization_error
    - signal
    - sched_setscheduler
    - setgroups
    - pcmk_rc_str
    - services__handle_exec_error
    - crm_err
    - execvp
    - exit_child
    - memset
    - pcmk__str_eq
    - strerror
    - pcmk__close_fds_in_child
    - crm_info
    - setuid
    - setgid
    - sched_getscheduler
    - services__configuration_error
    - add_action_env_vars
    - setpriority
    - pcmk__substitute_secrets
    - geteuid
    linkageType: ''
    returnType: void
    signature: 'static void action_launch_child(svc_action_t *op) '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/pacemaker/lib/services/services_linux.c:1226,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:1229,1
    - Dst: close_pipe
      Src: /src/pacemaker/lib/services/services_linux.c:1249,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:1304,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:1338,1
    - Dst: close
      Src: /src/pacemaker/lib/services/services_linux.c:1327,1
    - Dst: mainloop_add_fd
      Src: /src/pacemaker/lib/services/services_linux.c:1381,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services_linux.c:1376,1
    - Dst: stat
      Src: /src/pacemaker/lib/services/services_linux.c:1218,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:1221,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/services/services_linux.c:1245,1
    - Dst: dup2
      Src: /src/pacemaker/lib/services/services_linux.c:1293,1
    - Dst: close
      Src: /src/pacemaker/lib/services/services_linux.c:1330,1
    - Dst: close_pipe
      Src: /src/pacemaker/lib/services/services_linux.c:1262,1
    - Dst: sigchld_cleanup
      Src: /src/pacemaker/lib/services/services_linux.c:1372,1
    - Dst: pcmk__set_nonblocking
      Src: /src/pacemaker/lib/services/services_linux.c:1342,1
    - Dst: action_launch_child
      Src: /src/pacemaker/lib/services/services_linux.c:1322,1
    - Dst: services__handle_exec_error
      Src: /src/pacemaker/lib/services/services_linux.c:1254,1
    - Dst: close_pipe
      Src: /src/pacemaker/lib/services/services_linux.c:1261,1
    - Dst: dup2
      Src: /src/pacemaker/lib/services/services_linux.c:1310,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:1220,1
    - Dst: pipe
      Src: /src/pacemaker/lib/services/services_linux.c:1234,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:1253,1
    - Dst: fork
      Src: /src/pacemaker/lib/services/services_linux.c:1269,1
    - Dst: close
      Src: /src/pacemaker/lib/services/services_linux.c:1287,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:1346,1
    - Dst: close
      Src: /src/pacemaker/lib/services/services_linux.c:1306,1
    - Dst: sigchld_cleanup
      Src: /src/pacemaker/lib/services/services_linux.c:1281,1
    - Dst: services__handle_exec_error
      Src: /src/pacemaker/lib/services/services_linux.c:1241,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/services/services_linux.c:1245,1
    - Dst: services__generic_error
      Src: /src/pacemaker/lib/services/services_linux.c:1264,1
    - Dst: mainloop_child_add_with_flags
      Src: /src/pacemaker/lib/services/services_linux.c:1377,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:1296,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/services/services_linux.c:1323,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:1240,1
    - Dst: close_pipe
      Src: /src/pacemaker/lib/services/services_linux.c:1273,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:1278,1
    - Dst: sigchld_cleanup
      Src: /src/pacemaker/lib/services/services_linux.c:1319,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:1357,1
    - Dst: pcmk__set_nonblocking
      Src: /src/pacemaker/lib/services/services_linux.c:1353,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/services/services_linux.c:1378,1
    - Dst: close
      Src: /src/pacemaker/lib/services/services_linux.c:1361,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:1228,1
    - Dst: close_pipe
      Src: /src/pacemaker/lib/services/services_linux.c:1250,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/services/services_linux.c:1302,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:1336,1
    - Dst: close_pipe
      Src: /src/pacemaker/lib/services/services_linux.c:1274,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/services/services_linux.c:1294,1
    - Dst: close
      Src: /src/pacemaker/lib/services/services_linux.c:1328,1
    - Dst: services__finalize_async_op
      Src: /src/pacemaker/lib/services/services_linux.c:1396,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:1313,1
    - Dst: close_pipe
      Src: /src/pacemaker/lib/services/services_linux.c:1237,1
    - Dst: close_pipe
      Src: /src/pacemaker/lib/services/services_linux.c:1260,1
    - Dst: close
      Src: /src/pacemaker/lib/services/services_linux.c:1298,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:1355,1
    - Dst: services__handle_exec_error
      Src: /src/pacemaker/lib/services/services_linux.c:1230,1
    - Dst: close_pipe
      Src: /src/pacemaker/lib/services/services_linux.c:1275,1
    - Dst: pipe_in_action_stdin_parameters
      Src: /src/pacemaker/lib/services/services_linux.c:1359,1
    - Dst: wait_for_sync_result
      Src: /src/pacemaker/lib/services/services_linux.c:1371,1
    - Dst: services__handle_exec_error
      Src: /src/pacemaker/lib/services/services_linux.c:1222,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:1252,1
    - Dst: dup2
      Src: /src/pacemaker/lib/services/services_linux.c:1301,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/services/services_linux.c:1311,1
    - Dst: close
      Src: /src/pacemaker/lib/services/services_linux.c:1288,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:1344,1
    - Dst: pipe
      Src: /src/pacemaker/lib/services/services_linux.c:1246,1
    - Dst: sigchld_cleanup
      Src: /src/pacemaker/lib/services/services_linux.c:1263,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:1277,1
    - Dst: close
      Src: /src/pacemaker/lib/services/services_linux.c:1315,1
    - Dst: services_add_inflight_op
      Src: /src/pacemaker/lib/services/services_linux.c:1389,1
    - Dst: mainloop_add_fd
      Src: /src/pacemaker/lib/services/services_linux.c:1385,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/services/services_linux.c:1239,1
    - Dst: pcmk__set_nonblocking
      Src: /src/pacemaker/lib/services/services_linux.c:1334,1
    - Dst: sigchld_setup
      Src: /src/pacemaker/lib/services/services_linux.c:1259,1
    - Dst: services__set_result
      Src: /src/pacemaker/lib/services/services_linux.c:1264,1
    - Dst: services__handle_exec_error
      Src: /src/pacemaker/lib/services/services_linux.c:1279,1
    - Dst: close
      Src: /src/pacemaker/lib/services/services_linux.c:1290,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 140
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 1398
      start: 1207
    functionDepth: 0
    functionLinenumber: 1207
    functionLinenumberEnd: 1398
    functionName: services__execute_file
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - services__generic_error
    - fork
    - dup2
    - action_launch_child
    - services__set_result
    - sigchld_cleanup
    - wait_for_sync_result
    - stat
    - pipe
    - pcmk_is_set
    - pcmk__set_nonblocking
    - pcmk_rc_str
    - pcmk__assert
    - services__handle_exec_error
    - services__finalize_async_op
    - close_pipe
    - crm_warn
    - crm_info
    - sigchld_setup
    - close
    - crm_trace
    - pipe_in_action_stdin_parameters
    - mainloop_add_fd
    - pcmk_get_ra_caps
    - services_add_inflight_op
    - mainloop_child_add_with_flags
    linkageType: ''
    returnType: int
    signature: 'int services__execute_file(svc_action_t *op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/services/services_linux.c:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct sigchld_data_s*
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: sigchld_open
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    linkageType: ''
    returnType: int
    signature: 'static int sigchld_open(struct sigchld_data_s *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/pacemaker/lib/services/services_linux.c:238,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - pid
    - data
    argTypes:
    - int
    - int
    - struct sigchld_data_s*
    constantsTouched: []
    func_position:
      end: 240
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 240
    functionName: sigchld_received
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - read
    linkageType: ''
    returnType: bool
    signature: 'static bool sigchld_received(int fd, int pid, struct sigchld_data_s
      *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sigaction
      Src: /src/pacemaker/lib/services/services_linux.c:246,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:248,1
    - Dst: close_pipe
      Src: /src/pacemaker/lib/services/services_linux.c:251,1
    - Dst: kill
      Src: /src/pacemaker/lib/services/services_linux.c:254,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/services/services_linux.c:247,1
    - Dst: getpid
      Src: /src/pacemaker/lib/services/services_linux.c:254,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/services/services_linux.c:255,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/services/services_linux.c:256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct sigchld_data_s*
    constantsTouched: []
    func_position:
      end: 258
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 258
    functionName: sigchld_cleanup
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - kill
    - close_pipe
    - crm_warn
    - getpid
    - pcmk_rc_str
    - sigaction
    linkageType: ''
    returnType: void
    signature: 'static void sigchld_cleanup(struct sigchld_data_s *data) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services_linux.c:297,1
    - Dst: strlen
      Src: /src/pacemaker/lib/services/services_linux.c:302,1
    - Dst: strlen
      Src: /src/pacemaker/lib/services/services_linux.c:307,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services_linux.c:309,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services_linux.c:304,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services_linux.c:312,1
    - Dst: out_type
      Src: /src/pacemaker/lib/services/services_linux.c:312,1
    - Dst: read
      Src: /src/pacemaker/lib/services/services_linux.c:317,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/services/services_linux.c:321,1
    - Dst: out_type
      Src: /src/pacemaker/lib/services/services_linux.c:322,1
    - Dst: pcmk__realloc
      Src: /src/pacemaker/lib/services/services_linux.c:323,1
    - Dst: strcpy
      Src: /src/pacemaker/lib/services/services_linux.c:324,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/services/services_linux.c:337,1
    - Dst: out_type
      Src: /src/pacemaker/lib/services/services_linux.c:338,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 3
    argNames:
    - fd
    - op
    - is_stderr
    argTypes:
    - int
    - svc_action_t*
    - bool
    constantsTouched: []
    func_position:
      end: 348
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 348
    functionName: svc_read_output
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - strcpy
    - out_type
    - pcmk__realloc
    - crm_warn
    - strlen
    - read
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean svc_read_output(int fd, svc_action_t * op, bool is_stderr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/pacemaker/lib/services/services_linux.c:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 390
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 390
    functionName: pipe_err_done
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: 'static void pipe_err_done(gpointer user_data) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: scandir
      Src: /src/pacemaker/lib/services/services_linux.c:1408,1
    - Dst: S_ISDIR
      Src: /src/pacemaker/lib/services/services_linux.c:1427,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/services/services_linux.c:1421,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_linux.c:1417,1
    - Dst: stat
      Src: /src/pacemaker/lib/services/services_linux.c:1423,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_linux.c:1429,1
    - Dst: S_ISREG
      Src: /src/pacemaker/lib/services/services_linux.c:1433,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_linux.c:1435,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_linux.c:1441,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/services/services_linux.c:1446,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_linux.c:1451,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_linux.c:1448,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services_linux.c:1446,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 39
    argCount: 3
    argNames:
    - root
    - files
    - executable
    argTypes:
    - char*
    - gboolean
    - gboolean
    constantsTouched: []
    func_position:
      end: 1453
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1453
    functionName: services_os_get_single_directory_list
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - g_list_append
    - stat
    - S_ISDIR
    - free
    - strdup
    - scandir
    - snprintf
    - S_ISREG
    linkageType: ''
    returnType: GList*
    signature: 'GList *services_os_get_single_directory_list(const char *root, gboolean
      files, gboolean executable) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/services/services_linux.c:625,1
    - Dst: strcpy
      Src: /src/pacemaker/lib/services/services_linux.c:632,1
    - Dst: crm_log_output
      Src: /src/pacemaker/lib/services/services_linux.c:631,1
    - Dst: strlen
      Src: /src/pacemaker/lib/services/services_linux.c:632,1
    - Dst: strlen
      Src: /src/pacemaker/lib/services/services_linux.c:632,1
    - Dst: crm_log_output
      Src: /src/pacemaker/lib/services/services_linux.c:633,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_linux.c:634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 635
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 635
    functionName: log_op_output
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - strcpy
    - free
    - crm_log_output
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void log_op_output(svc_action_t *op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/services/services_linux.c:928,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/services/services_linux.c:930,1
    - Dst: pcmk_common_cleanup
      Src: /src/pacemaker/lib/services/services_linux.c:932,1
    - Dst: _exit
      Src: /src/pacemaker/lib/services/services_linux.c:933,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - op
    - exit_status
    - exit_reason
    argTypes:
    - svc_action_t*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 934
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 934
    functionName: exit_child
    functionSourceFile: /src/pacemaker/lib/services/services_linux.c
    functionUses: []
    functionsReached:
    - _exit
    - pcmk__str_eq
    - pcmk_common_cleanup
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void exit_child(const svc_action_t *op, int exit_status, const
      char *exit_reason) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services_ocf.c:33,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/services/services_ocf.c:37,1
    - Dst: strtok
      Src: /src/pacemaker/lib/services/services_ocf.c:42,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_ocf.c:38,1
    - Dst: strtok
      Src: /src/pacemaker/lib/services/services_ocf.c:42,1
    - Dst: sprintf
      Src: /src/pacemaker/lib/services/services_ocf.c:45,1
    - Dst: services_os_get_single_directory_list
      Src: /src/pacemaker/lib/services/services_ocf.c:46,1
    - Dst: g_list_concat
      Src: /src/pacemaker/lib/services/services_ocf.c:49,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_ocf.c:53,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 4
    argNames:
    - root
    - provider
    - files
    - executable
    argTypes:
    - char*
    - char*
    - gboolean
    - gboolean
    constantsTouched: []
    func_position:
      end: 56
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 56
    functionName: services_os_get_directory_list_provider
    functionSourceFile: /src/pacemaker/lib/services/services_ocf.c
    functionUses: []
    functionsReached:
    - sprintf
    - pcmk__str_empty
    - strtok
    - g_list_concat
    - services_os_get_single_directory_list
    - free
    - strdup
    linkageType: ''
    returnType: GList*
    signature: 'static GList *services_os_get_directory_list_provider(const char *root,
      const char *provider, gboolean files, gboolean executable) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services_ocf.c:124,1
    - Dst: strtok
      Src: /src/pacemaker/lib/services/services_ocf.c:132,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/services/services_ocf.c:133,1
    - Dst: strtok
      Src: /src/pacemaker/lib/services/services_ocf.c:132,1
    - Dst: stat
      Src: /src/pacemaker/lib/services/services_ocf.c:135,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_ocf.c:139,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_ocf.c:141,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services_ocf.c:147,1
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services_ocf.c:148,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 1
    argNames:
    - op
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 154
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 154
    functionName: services__ocf_prepare
    functionSourceFile: /src/pacemaker/lib/services/services_ocf.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - stat
    - strtok
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: 'int services__ocf_prepare(svc_action_t *op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_directory_list
      Src: /src/pacemaker/lib/services/services_ocf.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: resources_os_list_ocf_providers
    functionSourceFile: /src/pacemaker/lib/services/services_ocf.c
    functionUses: []
    functionsReached:
    - get_directory_list
    linkageType: ''
    returnType: GList*
    signature: 'GList *resources_os_list_ocf_providers(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: services_os_get_directory_list_provider
      Src: /src/pacemaker/lib/services/services_ocf.c:66,1
    - Dst: g_list_concat
      Src: /src/pacemaker/lib/services/services_ocf.c:76,1
    - Dst: resources_os_list_ocf_providers
      Src: /src/pacemaker/lib/services/services_ocf.c:70,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/services/services_ocf.c:79,1
    - Dst: resources_os_list_ocf_agents
      Src: /src/pacemaker/lib/services/services_ocf.c:73,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 1
    argNames:
    - provider
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 81
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 81
    functionName: resources_os_list_ocf_agents
    functionSourceFile: /src/pacemaker/lib/services/services_ocf.c
    functionUses: []
    functionsReached:
    - resources_os_list_ocf_providers
    - resources_os_list_ocf_agents
    - g_list_concat
    - g_list_free_full
    - services_os_get_directory_list_provider
    linkageType: ''
    returnType: GList*
    signature: 'GList *resources_os_list_ocf_agents(const char *provider) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/services/services_ocf.c:88,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_ocf.c:93,1
    - Dst: strtok
      Src: /src/pacemaker/lib/services/services_ocf.c:97,1
    - Dst: strtok
      Src: /src/pacemaker/lib/services/services_ocf.c:97,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/services/services_ocf.c:92,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/services/services_ocf.c:98,1
    - Dst: stat
      Src: /src/pacemaker/lib/services/services_ocf.c:99,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_ocf.c:100,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_ocf.c:105,1
    - Dst: free
      Src: /src/pacemaker/lib/services/services_ocf.c:108,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 2
    argNames:
    - provider
    - agent
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 111
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 111
    functionName: services__ocf_agent_exists
    functionSourceFile: /src/pacemaker/lib/services/services_ocf.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pcmk__str_empty
    - stat
    - strtok
    - free
    - strdup
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean services__ocf_agent_exists(const char *provider, const char
      *agent) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 1
    argNames:
    - exit_status
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 178
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 178
    functionName: services__ocf2ocf
    functionSourceFile: /src/pacemaker/lib/services/services_ocf.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: enum ocf_exitcode
    signature: 'enum ocf_exitcode services__ocf2ocf(int exit_status) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/fencing/st_client.c:1074,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1086,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/fencing/st_client.c:1085,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/fencing/st_client.c:1078,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/fencing/st_client.c:1080,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:1088,1
    - Dst: invoke_registered_callbacks
      Src: /src/pacemaker/lib/fencing/st_client.c:1089,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:1091,1
    - Dst: foreach_notify_entry
      Src: /src/pacemaker/lib/fencing/st_client.c:1092,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:1094,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/fencing/st_client.c:1100,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_client.c:1104,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/lib/fencing/st_client.c:1105,1
    - Dst: update_callback_timeout
      Src: /src/pacemaker/lib/fencing/st_client.c:1102,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:1108,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/fencing/st_client.c:1099,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - buffer
    - length
    - userdata
    argTypes:
    - char*
    - ssize_t
    - gpointer
    constantsTouched: []
    func_position:
      end: 1110
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1110
    functionName: stonith_dispatch_internal
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - update_callback_timeout
    - foreach_notify_entry
    - pcmk__str_eq
    - invoke_registered_callbacks
    - crm_log_xml_warn
    - crm_err
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_element_value
    - pcmk__assert
    - crm_warn
    - crm_trace
    - crm_element_value_int
    linkageType: ''
    returnType: int
    signature: 'static int stonith_dispatch_internal(const char *buffer, ssize_t length,
      gpointer userdata) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith__history_free
      Src: /src/pacemaker/lib/fencing/st_client.c:2869,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - stonith_history_t*
    constantsTouched: []
    func_position:
      end: 2870
      start: 2866
    functionDepth: 0
    functionLinenumber: 2866
    functionLinenumberEnd: 2870
    functionName: stonith_history_free
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith__history_free
    linkageType: ''
    returnType: void
    signature: 'void stonith_history_free(stonith_history_t *head) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_client.c:1124,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/fencing/st_client.c:1127,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/fencing/st_client.c:1129,1
    - Dst: pcmk__ipc_fd
      Src: /src/pacemaker/lib/fencing/st_client.c:1139,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/fencing/st_client.c:1141,1
    - Dst: crm_ipc_close
      Src: /src/pacemaker/lib/fencing/st_client.c:1146,1
    - Dst: crm_ipc_send
      Src: /src/pacemaker/lib/fencing/st_client.c:1168,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/fencing/st_client.c:1184,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/fencing/st_client.c:1206,1
    - Dst: pcmk__connect_generic_ipc
      Src: /src/pacemaker/lib/fencing/st_client.c:1137,1
    - Dst: crm_ipc_destroy
      Src: /src/pacemaker/lib/fencing/st_client.c:1147,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/fencing/st_client.c:1163,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/fencing/st_client.c:1171,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:1167,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:1166,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/fencing/st_client.c:1186,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:1201,1
    - Dst: crm_ipc_new
      Src: /src/pacemaker/lib/fencing/st_client.c:1135,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:1165,1
    - Dst: mainloop_get_ipc_client
      Src: /src/pacemaker/lib/fencing/st_client.c:1156,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/fencing/st_client.c:1176,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/fencing/st_client.c:1180,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:1183,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/fencing/st_client.c:1190,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:1202,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/fencing/st_client.c:1142,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/fencing/st_client.c:1172,1
    - Dst: mainloop_add_ipc_client
      Src: /src/pacemaker/lib/fencing/st_client.c:1155,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:1182,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/fencing/st_client.c:1191,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/fencing/st_client.c:1195,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/fencing/st_client.c:1207,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 83
    argCount: 3
    argNames:
    - stonith
    - name
    - stonith_fd
    argTypes:
    - stonith_t*
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 1211
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1211
    functionName: stonith_api_signon
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - crm_ipc_destroy
    - crm_ipc_new
    - pcmk__xe_create
    - crm_ipc_send
    - crm_element_value
    - pcmk_rc_str
    - pcmk__assert
    - pcmk__connect_generic_ipc
    - mainloop_add_ipc_client
    - crm_ipc_close
    - CRM_CHECK
    - pcmk__str_eq
    - pcmk_strerror
    - crm_debug
    - crm_log_xml_debug
    - crm_xml_add
    - pcmk__ipc_fd
    - pcmk__xml_free
    - mainloop_get_ipc_client
    - crm_element_value_copy
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_signon(stonith_t * stonith, const char *name,
      int *stonith_fd) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:2349,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:2355,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:2350,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 26
    argCount: 2
    argNames:
    - event
    - top_history
    argTypes:
    - stonith_history_t*
    - stonith_history_t*
    constantsTouched: []
    func_position:
      end: 2367
      start: 2337
    functionDepth: 0
    functionLinenumber: 2337
    functionLinenumberEnd: 2367
    functionName: stonith__later_succeeded
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: char*
    signature: 'const char *stonith__later_succeeded(const stonith_history_t *event,
      const stonith_history_t *top_history) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:109,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/fencing/st_client.c:115,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:121,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - namespace_s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 125
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 125
    functionName: parse_namespace
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - pcmk__str_eq
    linkageType: ''
    returnType: enum stonith_namespace
    signature: 'static enum stonith_namespace parse_namespace(const char *namespace_s) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: stonith__api_new
      Src: /src/pacemaker/lib/fencing/st_client.c:184,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_client.c:192,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/fencing/st_client.c:207,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/fencing/st_client.c:209,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/fencing/st_client.c:210,1
    - Dst: stonith__parse_targets
      Src: /src/pacemaker/lib/fencing/st_client.c:215,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/fencing/st_client.c:216,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/fencing/st_client.c:217,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/lib/fencing/st_client.c:229,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_client.c:232,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:234,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:219,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 2
    argNames:
    - st
    - node
    argTypes:
    - stonith_t*
    - char*
    constantsTouched: []
    func_position:
      end: 237
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 237
    functionName: stonith__watchdog_fencing_enabled_for_node_api
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - crm_trace
    - pcmk__str_in_list
    - g_list_free_full
    - crm_notice
    - stonith__api_new
    - stonith__parse_targets
    - free
    - crm_warn
    - pcmk_strerror
    - crm_err
    - stonith__api_free
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean stonith__watchdog_fencing_enabled_for_node_api(stonith_t
      *st, const char *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith_api_call
      Src: /src/pacemaker/lib/fencing/st_client.c:668,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 5
    argNames:
    - stonith
    - call_options
    - id
    - port
    - timeout
    argTypes:
    - stonith_t*
    - int
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 670
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 670
    functionName: stonith_api_status
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith_api_call
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_status(stonith_t * stonith, int call_options,
      const char *id, const char *port, int timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GPOINTER_TO_INT
      Src: /src/pacemaker/lib/fencing/st_client.c:2818,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/fencing/st_client.c:2821,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/fencing/st_client.c:2821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 2822
      start: 2815
    functionDepth: 0
    functionLinenumber: 2815
    functionLinenumberEnd: 2822
    functionName: stonith_dump_pending_op
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - GPOINTER_TO_INT
    - crm_debug
    - pcmk__s
    linkageType: ''
    returnType: void
    signature: 'static void stonith_dump_pending_op(gpointer key, gpointer value,
      gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith__watchdog_fencing_enabled_for_node_api
      Src: /src/pacemaker/lib/fencing/st_client.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: stonith__watchdog_fencing_enabled_for_node
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith__watchdog_fencing_enabled_for_node_api
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean stonith__watchdog_fencing_enabled_for_node(const char *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/fencing/st_client.c:679,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:680,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/fencing/st_client.c:683,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:681,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/fencing/st_client.c:682,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/fencing/st_client.c:684,1
    - Dst: stonith_send_command
      Src: /src/pacemaker/lib/fencing/st_client.c:686,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:687,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 7
    argNames:
    - stonith
    - call_options
    - node
    - action
    - timeout
    - tolerance
    - delay
    argTypes:
    - stonith_t*
    - int
    - char*
    - char*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 690
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 690
    functionName: stonith_api_fence_with_delay
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - pcmk__xml_free
    - crm_xml_add_int
    - stonith_send_command
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_fence_with_delay(stonith_t * stonith, int call_options,
      const char *node, const char *action, int timeout, int tolerance, int delay) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/pacemaker/lib/fencing/st_client.c:2299,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:2314,1
    - Dst: parse_list_line
      Src: /src/pacemaker/lib/fencing/st_client.c:2313,1
    - Dst: strndup
      Src: /src/pacemaker/lib/fencing/st_client.c:2310,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 1
    argNames:
    - target_spec
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2324
      start: 2293
    functionDepth: 0
    functionLinenumber: 2293
    functionLinenumberEnd: 2324
    functionName: stonith__parse_targets
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - strlen
    - free
    - strndup
    - parse_list_line
    linkageType: ''
    returnType: GList*
    signature: 'GList *stonith__parse_targets(const char *target_spec) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_client.c:954,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_client.c:955,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/fencing/st_client.c:967,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:981,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/fencing/st_client.c:992,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/lib/fencing/st_client.c:1004,1
    - Dst: stonith__xe_get_result
      Src: /src/pacemaker/lib/fencing/st_client.c:971,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/fencing/st_client.c:982,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/lib/fencing/st_client.c:961,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/fencing/st_client.c:963,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/lib/fencing/st_client.c:969,1
    - Dst: pcmk__intkey_table_lookup
      Src: /src/pacemaker/lib/fencing/st_client.c:975,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/lib/fencing/st_client.c:980,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/lib/fencing/st_client.c:989,1
    - Dst: stonith_api_del_callback
      Src: /src/pacemaker/lib/fencing/st_client.c:1002,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:996,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/lib/fencing/st_client.c:986,1
    - Dst: invoke_fence_action_callback
      Src: /src/pacemaker/lib/fencing/st_client.c:983,1
    - Dst: invoke_fence_action_callback
      Src: /src/pacemaker/lib/fencing/st_client.c:997,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/fencing/st_client.c:987,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 3
    argNames:
    - stonith
    - msg
    - call_id
    argTypes:
    - stonith_t*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 1005
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 1005
    functionName: invoke_registered_callbacks
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - pcmk_exec_status_str
    - crm_log_xml_debug
    - CRM_CHECK
    - pcmk__result_ok
    - pcmk__s
    - CRM_LOG_ASSERT
    - stonith_api_del_callback
    - invoke_fence_action_callback
    - crm_log_xml_warn
    - stonith__xe_get_result
    - pcmk__reset_result
    - pcmk__intkey_table_lookup
    - crm_warn
    - crm_trace
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'static void invoke_registered_callbacks(stonith_t *stonith, const
      xmlNode *msg, int call_id) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - event
    argTypes:
    - stonith_event_t*
    constantsTouched: []
    func_position:
      end: 2724
      start: 2714
    functionDepth: 0
    functionLinenumber: 2714
    functionLinenumberEnd: 2724
    functionName: stonith__event_exit_reason
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *stonith__event_exit_reason(const stonith_event_t *event) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_client.c:1012,1
    - Dst: invoke_registered_callbacks
      Src: /src/pacemaker/lib/fencing/st_client.c:1013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 1019
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1019
    functionName: stonith_async_timeout_handler
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - invoke_registered_callbacks
    - crm_err
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean stonith_async_timeout_handler(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/fencing/st_client.c:856,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:858,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:859,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 860
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 860
    functionName: stonith_destroy_op_callback
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - free
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: 'static void stonith_destroy_op_callback(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/fencing/st_client.c:2834,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - stonith
    argTypes:
    - stonith_t*
    constantsTouched: []
    func_position:
      end: 2836
      start: 2826
    functionDepth: 0
    functionLinenumber: 2826
    functionLinenumberEnd: 2836
    functionName: stonith_dump_pending_callbacks
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    linkageType: ''
    returnType: void
    signature: 'void stonith_dump_pending_callbacks(stonith_t *stonith) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith__agent_exists
      Src: /src/pacemaker/lib/fencing/st_client.c:2894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - agent
    - timeout
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2895
      start: 2891
    functionDepth: 0
    functionLinenumber: 2891
    functionLinenumberEnd: 2895
    functionName: stonith_agent_exists
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith__agent_exists
    linkageType: ''
    returnType: bool
    signature: 'bool stonith_agent_exists(const char *agent, int timeout) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/fencing/st_client.c:867,1
    - Dst: mainloop_del_ipc_client
      Src: /src/pacemaker/lib/fencing/st_client.c:871,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:884,1
    - Dst: crm_ipc_destroy
      Src: /src/pacemaker/lib/fencing/st_client.c:881,1
    - Dst: crm_ipc_close
      Src: /src/pacemaker/lib/fencing/st_client.c:880,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - stonith
    argTypes:
    - stonith_t*
    constantsTouched: []
    func_position:
      end: 887
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 887
    functionName: stonith_api_signoff
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_ipc_close
    - crm_ipc_destroy
    - mainloop_del_ipc_client
    - free
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_signoff(stonith_t * stonith) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/fencing/st_client.c:2740,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/fencing/st_client.c:2741,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/fencing/st_client.c:2744,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/fencing/st_client.c:2742,1
    - Dst: stonith__event_execution_status
      Src: /src/pacemaker/lib/fencing/st_client.c:2754,1
    - Dst: stonith__event_exit_status
      Src: /src/pacemaker/lib/fencing/st_client.c:2755,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_client.c:2767,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:2761,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/lib/fencing/st_client.c:2754,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/fencing/st_client.c:2758,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_client.c:2771,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_client.c:2775,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_client.c:2780,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_client.c:2786,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/fencing/st_client.c:2789,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/fencing/st_client.c:2791,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/fencing/st_client.c:2743,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/fencing/st_client.c:2745,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/lib/fencing/st_client.c:2756,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_client.c:2763,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:2769,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:2773,1
    - Dst: stonith__event_exit_reason
      Src: /src/pacemaker/lib/fencing/st_client.c:2746,1
    - Dst: stonith__event_execution_status
      Src: /src/pacemaker/lib/fencing/st_client.c:2753,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:2765,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:2778,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 1
    argNames:
    - event
    argTypes:
    - stonith_event_t*
    constantsTouched: []
    func_position:
      end: 2792
      start: 2736
    functionDepth: 0
    functionLinenumber: 2736
    functionLinenumberEnd: 2792
    functionName: stonith__event_description
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk_exec_status_str
    - stonith__event_exit_reason
    - pcmk__s
    - crm_exit_str
    - crm_strdup_printf
    - pcmk__str_eq
    - stonith__event_execution_status
    - stonith__event_exit_status
    linkageType: ''
    returnType: char*
    signature: 'char *stonith__event_description(const stonith_event_t *event) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/fencing/st_client.c:896,1
    - Dst: pcmk__intkey_table
      Src: /src/pacemaker/lib/fencing/st_client.c:897,1
    - Dst: pcmk__intkey_table_remove
      Src: /src/pacemaker/lib/fencing/st_client.c:903,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - stonith
    - call_id
    - all_callbacks
    argTypes:
    - stonith_t*
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 906
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 906
    functionName: stonith_api_del_callback
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - pcmk__intkey_table_remove
    - pcmk__intkey_table
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_del_callback(stonith_t * stonith, int call_id,
      bool all_callbacks) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_client.c:1388,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1391,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/fencing/st_client.c:1389,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - msg
    - ntype
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 1393
      start: 1385
    functionDepth: 0
    functionLinenumber: 1385
    functionLinenumberEnd: 1393
    functionName: get_event_data_xml
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__xpath_find_one
    - free
    - crm_strdup_printf
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *get_event_data_xml(xmlNode *msg, const char *ntype) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: stonith_create_op
      Src: /src/pacemaker/lib/fencing/st_client.c:1576,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/fencing/st_client.c:1581,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:1602,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1623,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:1659,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/fencing/st_client.c:1555,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/fencing/st_client.c:1585,1
    - Dst: pcmk__set_ipc_flags
      Src: /src/pacemaker/lib/fencing/st_client.c:1596,1
    - Dst: crm_ipc_send
      Src: /src/pacemaker/lib/fencing/st_client.c:1599,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/fencing/st_client.c:1605,1
    - Dst: stonith__xe_get_result
      Src: /src/pacemaker/lib/fencing/st_client.c:1625,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/fencing/st_client.c:1626,1
    - Dst: crm_ipc_connected
      Src: /src/pacemaker/lib/fencing/st_client.c:1653,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/fencing/st_client.c:1618,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:1614,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1610,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1630,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_client.c:1638,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_client.c:1645,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_client.c:1654,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1582,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:1588,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/lib/fencing/st_client.c:1627,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1613,1
    - Dst: stonith__result2rc
      Src: /src/pacemaker/lib/fencing/st_client.c:1626,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/lib/fencing/st_client.c:1639,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:1640,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/lib/fencing/st_client.c:1646,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:1647,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1655,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 90
    argCount: 6
    argNames:
    - stonith
    - op
    - data
    - output_data
    - call_options
    - timeout
    argTypes:
    - stonith_t*
    - char*
    - xmlNode*
    - xmlNode**
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1661
      start: 1544
    functionDepth: 0
    functionLinenumber: 1544
    functionLinenumberEnd: 1661
    functionName: stonith_send_command
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith__result2rc
    - free
    - crm_ipc_connected
    - crm_log_xml_trace
    - crm_perror
    - crm_ipc_send
    - pcmk_rc2legacy
    - stonith__xe_get_result
    - crm_element_value
    - pcmk__assert
    - pcmk__reset_result
    - crm_err
    - crm_xml_add_int
    - stonith_create_op
    - crm_log_xml_err
    - crm_trace
    - crm_xml_add
    - pcmk__set_ipc_flags
    - pcmk__xml_free
    - crm_element_value_int
    linkageType: ''
    returnType: int
    signature: 'static int stonith_send_command(stonith_t * stonith, const char *op,
      xmlNode * data, xmlNode ** output_data, int call_options, int timeout) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_client.c:1338,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/fencing/st_client.c:1349,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_client.c:1339,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1349,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/lib/fencing/st_client.c:1350,1
    - Dst: stonith__legacy2status
      Src: /src/pacemaker/lib/fencing/st_client.c:1351,1
    - Dst: invoke_fence_action_callback
      Src: /src/pacemaker/lib/fencing/st_client.c:1352,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/fencing/st_client.c:1355,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/fencing/st_client.c:1355,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/fencing/st_client.c:1360,1
    - Dst: pcmk__intkey_table_insert
      Src: /src/pacemaker/lib/fencing/st_client.c:1371,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1373,1
    - Dst: set_callback_timeout
      Src: /src/pacemaker/lib/fencing/st_client.c:1368,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 7
    argNames:
    - stonith
    - call_id
    - timeout
    - options
    - user_data
    - callback_name
    - (*callback)
    argTypes:
    - stonith_t*
    - int
    - int
    - int
    - void*
    - char*
    - void
    constantsTouched: []
    func_position:
      end: 1376
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1376
    functionName: stonith_api_add_callback
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - stonith__legacy2status
    - CRM_CHECK
    - set_callback_timeout
    - pcmk__assert_alloc
    - invoke_fence_action_callback
    - pcmk__intkey_table_insert
    - crm_warn
    - pcmk_strerror
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_add_callback(stonith_t * stonith, int call_id,
      int timeout, int options, void *user_data, const char *callback_name, void (*callback)
      (stonith_t * st, stonith_callback_data_t * data)) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_warn
      Src: /src/pacemaker/lib/fencing/st_client.c:1498,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/fencing/st_client.c:1505,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/fencing/st_client.c:1502,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1509,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/fencing/st_client.c:1513,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:1516,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1517,1
    - Dst: xml_to_event
      Src: /src/pacemaker/lib/fencing/st_client.c:1521,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1523,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1525,1
    - Dst: event_free
      Src: /src/pacemaker/lib/fencing/st_client.c:1527,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 1528
      start: 1489
    functionDepth: 0
    functionLinenumber: 1489
    functionLinenumberEnd: 1528
    functionName: stonith_send_notification
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - event_free
    - xml_to_event
    - pcmk__str_eq
    - crm_element_value
    - crm_warn
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void stonith_send_notification(gpointer data, gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_notice
      Src: /src/pacemaker/lib/fencing/st_client.c:1969,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/fencing/st_client.c:1963,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/fencing/st_client.c:1971,1
    - Dst: sleep
      Src: /src/pacemaker/lib/fencing/st_client.c:1972,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/fencing/st_client.c:1975,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/fencing/st_client.c:1976,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - stonith_api
    - name
    - max_attempts
    argTypes:
    - stonith_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1978
      start: 1955
    functionDepth: 0
    functionLinenumber: 1955
    functionLinenumberEnd: 1978
    functionName: stonith__api_connect_retry
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - crm_notice
    - pcmk_rc_str
    - sleep
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int stonith__api_connect_retry(stonith_t *stonith_api, const char
      *name, int max_attempts) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/pacemaker/lib/fencing/st_client.c:2217,1
    - Dst: strstr
      Src: /src/pacemaker/lib/fencing/st_client.c:2217,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/fencing/st_client.c:2218,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/fencing/st_client.c:2238,1
    - Dst: isspace
      Src: /src/pacemaker/lib/fencing/st_client.c:2225,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/fencing/st_client.c:2244,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/fencing/st_client.c:2246,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:2249,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/fencing/st_client.c:2251,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:2261,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/fencing/st_client.c:2265,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 3
    argNames:
    - line
    - len
    - output
    argTypes:
    - char*
    - int
    - GList**
    constantsTouched: []
    func_position:
      end: 2270
      start: 2207
    functionDepth: 0
    functionLinenumber: 2207
    functionLinenumberEnd: 2270
    functionName: parse_list_line
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - isspace
    - g_list_append
    - pcmk__assert_alloc
    - pcmk__strcase_any_of
    - free
    - crm_warn
    - strstr
    - sscanf
    linkageType: ''
    returnType: void
    signature: 'static void parse_list_line(const char *line, int len, GList **output) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/fencing/st_client.c:1840,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/fencing/st_client.c:1852,1
    - Dst: stonith__validate
      Src: /src/pacemaker/lib/fencing/st_client.c:1849,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/fencing/st_client.c:1845,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/fencing/st_client.c:1844,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 11
    argCount: 9
    argNames:
    - st
    - call_options
    - rsc_id
    - namespace_s
    - agent
    - params
    - timeout_sec
    - output
    - error_output
    argTypes:
    - stonith_t*
    - int
    - char*
    - char*
    - char*
    - stonith_key_value_t*
    - int
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 1854
      start: 1827
    functionDepth: 0
    functionLinenumber: 1827
    functionLinenumberEnd: 1854
    functionName: stonith_api_validate
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk_stonith_param
    - stonith__validate
    - g_hash_table_destroy
    - pcmk__insert_dup
    - pcmk__strkey_table
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_validate(stonith_t *st, int call_options, const
      char *rsc_id, const char *namespace_s, const char *agent, const stonith_key_value_t
      *params, int timeout_sec, char **output, char **error_output) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GPOINTER_TO_INT
      Src: /src/pacemaker/lib/fencing/st_client.c:2475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - history
    - user_data
    argTypes:
    - stonith_history_t*
    - void*
    constantsTouched: []
    func_position:
      end: 2476
      start: 2472
    functionDepth: 0
    functionLinenumber: 2472
    functionLinenumberEnd: 2476
    functionName: stonith__event_state_eq
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - GPOINTER_TO_INT
    linkageType: ''
    returnType: bool
    signature: 'bool stonith__event_state_eq(stonith_history_t *history, void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_client.c:2497,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/fencing/st_client.c:2501,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/fencing/st_client.c:2504,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:2503,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/fencing/st_client.c:2500,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - metadata
    - name
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 2506
      start: 2494
    functionDepth: 0
    functionLinenumber: 2494
    functionLinenumberEnd: 2506
    functionName: param_is_supported
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - xmlXPathFreeObject
    - free
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    linkageType: ''
    returnType: bool
    signature: 'static bool param_is_supported(xmlNode *metadata, const char *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_namespace
      Src: /src/pacemaker/lib/fencing/st_client.c:2918,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - namespace_s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2919
      start: 2915
    functionDepth: 0
    functionLinenumber: 2915
    functionLinenumberEnd: 2919
    functionName: stonith_text2namespace
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - parse_namespace
    linkageType: ''
    returnType: enum stonith_namespace
    signature: 'enum stonith_namespace stonith_text2namespace(const char *namespace_s) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GPOINTER_TO_INT
      Src: /src/pacemaker/lib/fencing/st_client.c:2481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - history
    - user_data
    argTypes:
    - stonith_history_t*
    - void*
    constantsTouched: []
    func_position:
      end: 2482
      start: 2478
    functionDepth: 0
    functionLinenumber: 2478
    functionLinenumberEnd: 2482
    functionName: stonith__event_state_neq
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - GPOINTER_TO_INT
    linkageType: ''
    returnType: bool
    signature: 'bool stonith__event_state_neq(stonith_history_t *history, void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/fencing/st_client.c:929,1
    - Dst: stonith__result2rc
      Src: /src/pacemaker/lib/fencing/st_client.c:929,1
    - Dst: callback
      Src: /src/pacemaker/lib/fencing/st_client.c:933,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 5
    argNames:
    - st
    - call_id
    - result
    - userdata
    - (*callback)
    argTypes:
    - stonith_t*
    - int
    - pcmk__action_result_t*
    - void*
    - void
    constantsTouched: []
    func_position:
      end: 934
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 934
    functionName: invoke_fence_action_callback
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk_rc2legacy
    - stonith__result2rc
    - callback
    linkageType: ''
    returnType: void
    signature: 'static void invoke_fence_action_callback(stonith_t *st, int call_id,
      pcmk__action_result_t *result, void *userdata, void (*callback) (stonith_t *st,
      stonith_callback_data_t *data)) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:784,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:787,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:788,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:785,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:786,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:789,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:790,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - head
    argTypes:
    - stonith_history_t*
    constantsTouched: []
    func_position:
      end: 793
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 793
    functionName: stonith__history_free
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void stonith__history_free(stonith_history_t *head) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_client.c:806,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_client.c:820,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/fencing/st_client.c:807,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_client.c:816,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 825
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 825
    functionName: stonithlib_GCompareFunc
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_err
    - strcmp
    linkageType: ''
    returnType: gint
    signature: 'static gint stonithlib_GCompareFunc(gconstpointer a, gconstpointer
      b) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 41
    argCount: 1
    argNames:
    - history
    argTypes:
    - stonith_history_t*
    constantsTouched: []
    func_position:
      end: 2422
      start: 2377
    functionDepth: 0
    functionLinenumber: 2377
    functionLinenumberEnd: 2422
    functionName: stonith__sort_history
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: stonith_history_t*
    signature: 'stonith_history_t *stonith__sort_history(stonith_history_t *history) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith__api_dispatch
      Src: /src/pacemaker/lib/fencing/st_client.c:2843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - stonith_api
    argTypes:
    - stonith_t*
    constantsTouched: []
    func_position:
      end: 2844
      start: 2840
    functionDepth: 0
    functionLinenumber: 2840
    functionLinenumberEnd: 2844
    functionName: stonith_dispatch
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith__api_dispatch
    linkageType: ''
    returnType: bool
    signature: 'bool stonith_dispatch(stonith_t *stonith_api) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/lib/fencing/st_client.c:2853,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - head
    - key
    - value
    argTypes:
    - stonith_key_value_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2854
      start: 2849
    functionDepth: 0
    functionLinenumber: 2849
    functionLinenumberEnd: 2854
    functionName: stonith_key_value_add
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith__key_value_add
    linkageType: ''
    returnType: stonith_key_value_t*
    signature: 'stonith_key_value_t *stonith_key_value_add(stonith_key_value_t *head,
      const char *key, const char *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith__op_state_text
      Src: /src/pacemaker/lib/fencing/st_client.c:2886,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum op_state
    constantsTouched: []
    func_position:
      end: 2887
      start: 2883
    functionDepth: 0
    functionLinenumber: 2883
    functionLinenumberEnd: 2887
    functionName: stonith_op_state_str
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith__op_state_text
    linkageType: ''
    returnType: char*
    signature: 'const char *stonith_op_state_str(enum op_state state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_client.c:832,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:836,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/fencing/st_client.c:834,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:835,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/fencing/st_client.c:837,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:838,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/fencing/st_client.c:839,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/fencing/st_client.c:842,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:844,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 5
    argNames:
    - call_id
    - token
    - op
    - data
    - call_options
    argTypes:
    - int
    - char*
    - char*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 848
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 848
    functionName: stonith_create_op
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - CRM_CHECK
    - pcmk__xml_copy
    - crm_xml_add
    - crm_xml_add_int
    - crm_trace
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *stonith_create_op(int call_id, const char *token, const char
      *op, xmlNode * data, int call_options) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:727,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/fencing/st_client.c:731,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/fencing/st_client.c:735,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:752,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:745,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:743,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/fencing/st_client.c:720,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:721,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:763,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:746,1
    - Dst: stonith__set_call_options
      Src: /src/pacemaker/lib/fencing/st_client.c:724,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/fencing/st_client.c:736,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/fencing/st_client.c:741,1
    - Dst: crm_element_value_ll
      Src: /src/pacemaker/lib/fencing/st_client.c:747,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/fencing/st_client.c:751,1
    - Dst: stonith_send_command
      Src: /src/pacemaker/lib/fencing/st_client.c:725,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:742,1
    - Dst: crm_element_value_ll
      Src: /src/pacemaker/lib/fencing/st_client.c:749,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:744,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 5
    argNames:
    - stonith
    - call_options
    - node
    - history
    - timeout
    argTypes:
    - stonith_t*
    - int
    - char*
    - stonith_history_t**
    - int
    constantsTouched: []
    func_position:
      end: 766
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 766
    functionName: stonith_api_history
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_first_child
    - stonith__set_call_options
    - pcmk__assert_alloc
    - crm_xml_add
    - crm_element_value_ll
    - pcmk__xpath_find_one
    - pcmk__xml_free
    - pcmk__xe_next
    - crm_element_value_copy
    - stonith_send_command
    - crm_element_value_int
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_history(stonith_t * stonith, int call_options,
      const char *node, stonith_history_t ** history, int timeout) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/fencing/st_client.c:1869,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1876,1
    - Dst: calloc
      Src: /src/pacemaker/lib/fencing/st_client.c:1889,1
    - Dst: calloc
      Src: /src/pacemaker/lib/fencing/st_client.c:1874,1
    - Dst: pcmk__intkey_table
      Src: /src/pacemaker/lib/fencing/st_client.c:1881,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1891,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1892,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1928
      start: 1863
    functionDepth: 0
    functionLinenumber: 1863
    functionLinenumberEnd: 1928
    functionName: stonith__api_new
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - calloc
    - free
    - pcmk__intkey_table
    linkageType: ''
    returnType: stonith_t*
    signature: 'stonith_t *stonith__api_new(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_client.c:2522,1
    - Dst: param_is_supported
      Src: /src/pacemaker/lib/fencing/st_client.c:2524,1
    - Dst: param_is_supported
      Src: /src/pacemaker/lib/fencing/st_client.c:2527,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - metadata
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2531
      start: 2519
    functionDepth: 0
    functionLinenumber: 2519
    functionLinenumberEnd: 2531
    functionName: stonith__default_host_arg
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - param_is_supported
    - CRM_CHECK
    linkageType: ''
    returnType: char*
    signature: 'const char *stonith__default_host_arg(xmlNode *metadata) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - stonith_callback_data_t*
    constantsTouched: []
    func_position:
      end: 2630
      start: 2623
    functionDepth: 0
    functionLinenumber: 2623
    functionLinenumberEnd: 2630
    functionName: stonith__exit_status
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int stonith__exit_status(const stonith_callback_data_t *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/fencing/st_client.c:255,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:268,1
    - Dst: g_list_delete_link
      Src: /src/pacemaker/lib/fencing/st_client.c:270,1
    - Dst: g_list_next
      Src: /src/pacemaker/lib/fencing/st_client.c:265,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 3
    argNames:
    - private
    - func
    - user_data
    argTypes:
    - stonith_private_t*
    - GFunc
    - gpointer
    constantsTouched: []
    func_position:
      end: 275
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 275
    functionName: foreach_notify_entry
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - g_list_foreach
    - free
    - g_list_delete_link
    - g_list_next
    linkageType: ''
    returnType: void
    signature: 'static void foreach_notify_entry (stonith_private_t *private, GFunc
      func, gpointer user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_client.c:431,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:435,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/fencing/st_client.c:436,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/fencing/st_client.c:433,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/fencing/st_client.c:437,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:440,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:443,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:446,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:447,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/fencing/st_client.c:451,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/fencing/st_client.c:456,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:455,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 24
    argCount: 6
    argNames:
    - node
    - pattern
    - attr
    - value
    - level
    - device_list
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - int
    - stonith_key_value_t*
    constantsTouched: []
    func_position:
      end: 459
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 459
    functionName: create_level_registration_xml
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__add_separated_word
    - CRM_CHECK
    - crm_xml_add
    - crm_xml_add_int
    - g_string_free
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *create_level_registration_xml(const char *node, const char
      *pattern, const char *attr, const char *value, int level, const stonith_key_value_t
      *device_list) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/fencing/st_client.c:1679,1
    - Dst: stonith_dispatch_internal
      Src: /src/pacemaker/lib/fencing/st_client.c:1686,1
    - Dst: crm_ipc_buffer
      Src: /src/pacemaker/lib/fencing/st_client.c:1684,1
    - Dst: crm_ipc_read
      Src: /src/pacemaker/lib/fencing/st_client.c:1683,1
    - Dst: crm_ipc_ready
      Src: /src/pacemaker/lib/fencing/st_client.c:1682,1
    - Dst: strlen
      Src: /src/pacemaker/lib/fencing/st_client.c:1686,1
    - Dst: pcmk__ipc_free_client_buffer
      Src: /src/pacemaker/lib/fencing/st_client.c:1687,1
    - Dst: crm_ipc_connected
      Src: /src/pacemaker/lib/fencing/st_client.c:1690,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_client.c:1691,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - stonith_api
    argTypes:
    - stonith_t*
    constantsTouched: []
    func_position:
      end: 1697
      start: 1674
    functionDepth: 0
    functionLinenumber: 1674
    functionLinenumberEnd: 1697
    functionName: stonith__api_dispatch
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - crm_ipc_ready
    - crm_ipc_buffer
    - crm_ipc_read
    - pcmk__ipc_free_client_buffer
    - crm_ipc_connected
    - pcmk__assert
    - strlen
    - stonith_dispatch_internal
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int stonith__api_dispatch(stonith_t *stonith_api) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stonith__api_new
      Src: /src/pacemaker/lib/fencing/st_client.c:2054,1
    - Dst: api_log
      Src: /src/pacemaker/lib/fencing/st_client.c:2059,1
    - Dst: api_log
      Src: /src/pacemaker/lib/fencing/st_client.c:2066,1
    - Dst: api_log_open
      Src: /src/pacemaker/lib/fencing/st_client.c:2057,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/fencing/st_client.c:2067,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/fencing/st_client.c:2069,1
    - Dst: strdup
      Src: /src/pacemaker/lib/fencing/st_client.c:2069,1
    - Dst: stonith__set_call_options
      Src: /src/pacemaker/lib/fencing/st_client.c:2072,1
    - Dst: stonith__set_call_options
      Src: /src/pacemaker/lib/fencing/st_client.c:2075,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:2078,1
    - Dst: api_log
      Src: /src/pacemaker/lib/fencing/st_client.c:2084,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/lib/fencing/st_client.c:2088,1
    - Dst: api_log
      Src: /src/pacemaker/lib/fencing/st_client.c:2081,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/fencing/st_client.c:2082,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - nodeid
    - uname
    - timeout
    - 'off'
    argTypes:
    - uint32_t
    - char*
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 2090
      start: 2050
    functionDepth: 0
    functionLinenumber: 2050
    functionLinenumberEnd: 2090
    functionName: stonith_api_kick
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__itoa
    - stonith__set_call_options
    - stonith__api_new
    - free
    - stonith__api_free
    - strdup
    - pcmk_strerror
    - api_log
    - api_log_open
    linkageType: ''
    returnType: int
    signature: 'int stonith_api_kick(uint32_t nodeid, const char *uname, int timeout,
      bool off) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/fencing/st_client.c:2878,1
    - Dst: stonith__api_connect_retry
      Src: /src/pacemaker/lib/fencing/st_client.c:2878,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 3
    argNames:
    - st
    - name
    - max_attempts
    argTypes:
    - stonith_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2879
      start: 2875
    functionDepth: 0
    functionLinenumber: 2875
    functionLinenumberEnd: 2879
    functionName: stonith_api_connect_retry
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk_rc2legacy
    - stonith__api_connect_retry
    linkageType: ''
    returnType: int
    signature: 'int stonith_api_connect_retry(stonith_t *st, const char *name, int
      max_attempts) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:284,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:294,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:292,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/fencing/st_client.c:286,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:295,1
    - Dst: foreach_notify_entry
      Src: /src/pacemaker/lib/fencing/st_client.c:297,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 299
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 299
    functionName: stonith_connection_destroy
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - foreach_notify_entry
    - crm_xml_add
    - free
    - pcmk__xml_free
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void stonith_connection_destroy(gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1704,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1716,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1707,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/fencing/st_client.c:1716,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/fencing/st_client.c:1717,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1719,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/fencing/st_client.c:1719,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/fencing/st_client.c:1720,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1723,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/fencing/st_client.c:1727,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1722,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_client.c:1727,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1724,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - stonith
    argTypes:
    - stonith_t*
    constantsTouched: []
    func_position:
      end: 1731
      start: 1699
    functionDepth: 0
    functionLinenumber: 1699
    functionLinenumberEnd: 1731
    functionName: free_stonith_api
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - g_list_length
    - g_list_free_full
    - free
    - crm_err
    - pcmk_strerror
    - crm_trace
    - g_hash_table_size
    linkageType: ''
    returnType: int
    signature: 'static int free_stonith_api(stonith_t *stonith) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: stonith__api_new
      Src: /src/pacemaker/lib/fencing/st_client.c:2097,1
    - Dst: api_log
      Src: /src/pacemaker/lib/fencing/st_client.c:2101,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/fencing/st_client.c:2108,1
    - Dst: api_log
      Src: /src/pacemaker/lib/fencing/st_client.c:2108,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/fencing/st_client.c:2114,1
    - Dst: strdup
      Src: /src/pacemaker/lib/fencing/st_client.c:2114,1
    - Dst: stonith__set_call_options
      Src: /src/pacemaker/lib/fencing/st_client.c:2116,1
    - Dst: stonith__set_call_options
      Src: /src/pacemaker/lib/fencing/st_client.c:2118,1
    - Dst: time
      Src: /src/pacemaker/lib/fencing/st_client.c:2128,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/lib/fencing/st_client.c:2148,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/fencing/st_client.c:2144,1
    - Dst: api_log
      Src: /src/pacemaker/lib/fencing/st_client.c:2144,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:2121,1
    - Dst: api_log
      Src: /src/pacemaker/lib/fencing/st_client.c:2151,1
    - Dst: api_log
      Src: /src/pacemaker/lib/fencing/st_client.c:2142,1
    - Dst: stonith__history_free
      Src: /src/pacemaker/lib/fencing/st_client.c:2139,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 3
    argNames:
    - nodeid
    - uname
    - in_progress
    argTypes:
    - uint32_t
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 2154
      start: 2092
    functionDepth: 0
    functionLinenumber: 2092
    functionLinenumberEnd: 2154
    functionName: stonith_api_time
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__itoa
    - stonith__set_call_options
    - stonith__history_free
    - time
    - stonith__api_new
    - free
    - strdup
    - pcmk_strerror
    - api_log
    - stonith__api_free
    linkageType: ''
    returnType: time_t
    signature: 'time_t stonith_api_time(uint32_t nodeid, const char *uname, bool in_progress) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith_api_remove_level_full
      Src: /src/pacemaker/lib/fencing/st_client.c:404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 4
    argNames:
    - st
    - options
    - node
    - level
    argTypes:
    - stonith_t*
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: stonith_api_remove_level
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith_api_remove_level_full
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_remove_level(stonith_t * st, int options, const
      char *node, int level) '
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum op_state
    constantsTouched: []
    func_position:
      end: 2450
      start: 2432
    functionDepth: 0
    functionLinenumber: 2432
    functionLinenumberEnd: 2450
    functionName: stonith__op_state_text
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *stonith__op_state_text(enum op_state state) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_namespace_from_agent
      Src: /src/pacemaker/lib/fencing/st_client.c:2559,1
    - Dst: callback
      Src: /src/pacemaker/lib/fencing/st_client.c:2571,1
    - Dst: stonith__action_create
      Src: /src/pacemaker/lib/fencing/st_client.c:2565,1
    - Dst: stonith__execute_async
      Src: /src/pacemaker/lib/fencing/st_client.c:2569,1
    - Dst: stonith__action_result
      Src: /src/pacemaker/lib/fencing/st_client.c:2571,1
    - Dst: stonith__destroy_action
      Src: /src/pacemaker/lib/fencing/st_client.c:2572,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/fencing/st_client.c:2574,1
    - Dst: stonith__lha_metadata
      Src: /src/pacemaker/lib/fencing/st_client.c:2589,1
    - Dst: callback
      Src: /src/pacemaker/lib/fencing/st_client.c:2591,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/lib/fencing/st_client.c:2592,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_client.c:2602,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/lib/fencing/st_client.c:2609,1
    - Dst: callback
      Src: /src/pacemaker/lib/fencing/st_client.c:2608,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 4
    argNames:
    - agent
    - timeout_sec
    - (*callback)
    - user_data
    argTypes:
    - char*
    - int
    - void
    - void*
    constantsTouched: []
    func_position:
      end: 2613
      start: 2552
    functionDepth: 0
    functionLinenumber: 2552
    functionLinenumberEnd: 2613
    functionName: stonith__metadata_async
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - callback
    - stonith__action_create
    - stonith__lha_metadata
    - stonith__execute_async
    - stonith__destroy_action
    - pcmk__reset_result
    - get_namespace_from_agent
    - stonith__action_result
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int stonith__metadata_async(const char *agent, int timeout_sec, void
      (*callback)(int pid, const pcmk__action_result_t *result, void *user_data),
      void *user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/fencing/st_client.c:1032,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/lib/fencing/st_client.c:1046,1
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/fencing/st_client.c:1043,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 4
    argNames:
    - callback
    - stonith
    - call_id
    - timeout
    argTypes:
    - stonith_callback_client_t*
    - stonith_t*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1048
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1048
    functionName: set_callback_timeout
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__assert_alloc
    - g_source_remove
    - pcmk__create_timer
    linkageType: ''
    returnType: void
    signature: 'static void set_callback_timeout(stonith_callback_client_t * callback,
      stonith_t * stonith, int call_id, int timeout) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stonith__xe_get_result
      Src: /src/pacemaker/lib/fencing/st_client.c:1426,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/fencing/st_client.c:1430,1
    - Dst: get_event_data_xml
      Src: /src/pacemaker/lib/fencing/st_client.c:1436,1
    - Dst: crm_log_xml_notice
      Src: /src/pacemaker/lib/fencing/st_client.c:1440,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:1445,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:1451,1
    - Dst: get_event_data_xml
      Src: /src/pacemaker/lib/fencing/st_client.c:1458,1
    - Dst: crm_log_xml_notice
      Src: /src/pacemaker/lib/fencing/st_client.c:1462,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:1464,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:1446,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1423,1
    - Dst: stonith__result2rc
      Src: /src/pacemaker/lib/fencing/st_client.c:1430,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:1448,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/fencing/st_client.c:1417,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/fencing/st_client.c:1420,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:1427,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:1434,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_client.c:1439,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:1443,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:1450,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/fencing/st_client.c:1454,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:1442,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_client.c:1461,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 1
    argNames:
    - msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1469
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1469
    functionName: xml_to_event
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__assert_alloc
    - stonith__result2rc
    - pcmk__str_eq
    - pcmk__str_any_of
    - pcmk_rc2legacy
    - crm_log_xml_notice
    - stonith__xe_get_result
    - crm_log_xml_trace
    - crm_element_value_copy
    - get_event_data_xml
    - crm_err
    linkageType: ''
    returnType: stonith_event_t*
    signature: 'static stonith_event_t *xml_to_event(xmlNode *msg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: namespace_text
      Src: /src/pacemaker/lib/fencing/st_client.c:2926,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - st_namespace
    argTypes:
    - enum stonith_namespace
    constantsTouched: []
    func_position:
      end: 2927
      start: 2923
    functionDepth: 0
    functionLinenumber: 2923
    functionLinenumberEnd: 2927
    functionName: stonith_namespace2text
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - namespace_text
    linkageType: ''
    returnType: char*
    signature: 'const char *stonith_namespace2text(enum stonith_namespace st_namespace) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__intkey_table_lookup
      Src: /src/pacemaker/lib/fencing/st_client.c:1056,1
    - Dst: set_callback_timeout
      Src: /src/pacemaker/lib/fencing/st_client.c:1062,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - call_id
    - timeout
    - st
    argTypes:
    - int
    - int
    - stonith_t*
    constantsTouched: []
    func_position:
      end: 1063
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1063
    functionName: update_callback_timeout
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__intkey_table_lookup
    - set_callback_timeout
    linkageType: ''
    returnType: void
    signature: 'static void update_callback_timeout(int call_id, int timeout, stonith_t
      * st) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1476,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1479,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1478,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1480,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1477,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1481,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1482,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1483,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/lib/fencing/st_client.c:1484,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1485,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1486,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - event
    argTypes:
    - stonith_event_t*
    constantsTouched: []
    func_position:
      end: 1487
      start: 1471
    functionDepth: 0
    functionLinenumber: 1471
    functionLinenumberEnd: 1487
    functionName: event_free
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - free
    - pcmk__reset_result
    linkageType: ''
    returnType: void
    signature: 'static void event_free(stonith_event_t * event) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_client.c:559,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/fencing/st_client.c:561,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:562,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:564,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:563,1
    - Dst: stonith_send_command
      Src: /src/pacemaker/lib/fencing/st_client.c:565,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/fencing/st_client.c:571,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/fencing/st_client.c:573,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/fencing/st_client.c:576,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/fencing/st_client.c:578,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/fencing/st_client.c:580,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/fencing/st_client.c:589,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:592,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:593,1
    - Dst: xmlGetNodePath
      Src: /src/pacemaker/lib/fencing/st_client.c:581,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:584,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/lib/fencing/st_client.c:585,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/fencing/st_client.c:583,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 5
    argNames:
    - stonith
    - call_options
    - target
    - devices
    - timeout
    argTypes:
    - stonith_t*
    - int
    - char*
    - stonith_key_value_t**
    - int
    constantsTouched: []
    func_position:
      end: 595
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 595
    functionName: stonith_api_query
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - CRM_CHECK
    - crm_element_value
    - pcmk__xpath_result
    - CRM_LOG_ASSERT
    - crm_xml_add
    - xmlXPathFreeObject
    - free
    - pcmk__xml_free
    - xmlGetNodePath
    - pcmk__xpath_num_results
    - crm_info
    - stonith_send_command
    - pcmk__xpath_search
    - stonith__key_value_add
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_query(stonith_t * stonith, int call_options,
      const char *target, stonith_key_value_t ** devices, int timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith_api_fence_with_delay
      Src: /src/pacemaker/lib/fencing/st_client.c:696,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 6
    argNames:
    - stonith
    - call_options
    - node
    - action
    - timeout
    - tolerance
    argTypes:
    - stonith_t*
    - int
    - char*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 698
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 698
    functionName: stonith_api_fence
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith_api_fence_with_delay
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_fence(stonith_t * stonith, int call_options,
      const char *node, const char *action, int timeout, int tolerance) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - stonith_callback_data_t*
    constantsTouched: []
    func_position:
      end: 2664
      start: 2657
    functionDepth: 0
    functionLinenumber: 2657
    functionLinenumberEnd: 2664
    functionName: stonith__exit_reason
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *stonith__exit_reason(const stonith_callback_data_t *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - event
    argTypes:
    - stonith_event_t*
    constantsTouched: []
    func_position:
      end: 2704
      start: 2694
    functionDepth: 0
    functionLinenumber: 2694
    functionLinenumberEnd: 2704
    functionName: stonith__event_execution_status
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int stonith__event_execution_status(const stonith_event_t *event) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith__set_call_options
      Src: /src/pacemaker/lib/fencing/st_client.c:703,1
    - Dst: stonith_api_fence
      Src: /src/pacemaker/lib/fencing/st_client.c:704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 3
    argNames:
    - stonith
    - call_options
    - target
    argTypes:
    - stonith_t*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 706
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 706
    functionName: stonith_api_confirm
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith__set_call_options
    - stonith_api_fence
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_confirm(stonith_t * stonith, int call_options,
      const char *target) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith__api_free
      Src: /src/pacemaker/lib/fencing/st_client.c:2812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - stonith
    argTypes:
    - stonith_t*
    constantsTouched: []
    func_position:
      end: 2813
      start: 2809
    functionDepth: 0
    functionLinenumber: 2809
    functionLinenumberEnd: 2813
    functionName: stonith_api_delete
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith__api_free
    linkageType: ''
    returnType: void
    signature: 'void stonith_api_delete(stonith_t *stonith) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - stonith_callback_data_t*
    constantsTouched: []
    func_position:
      end: 2647
      start: 2640
    functionDepth: 0
    functionLinenumber: 2640
    functionLinenumberEnd: 2647
    functionName: stonith__execution_status
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int stonith__execution_status(const stonith_callback_data_t *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - event
    argTypes:
    - stonith_event_t*
    constantsTouched: []
    func_position:
      end: 2684
      start: 2674
    functionDepth: 0
    functionLinenumber: 2674
    functionLinenumberEnd: 2684
    functionName: stonith__event_exit_status
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int stonith__event_exit_status(const stonith_event_t *event) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith__key_value_freeall
      Src: /src/pacemaker/lib/fencing/st_client.c:2861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - head
    - keys
    - values
    argTypes:
    - stonith_key_value_t*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2862
      start: 2858
    functionDepth: 0
    functionLinenumber: 2858
    functionLinenumberEnd: 2862
    functionName: stonith_key_value_freeall
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith__key_value_freeall
    linkageType: ''
    returnType: void
    signature: 'void stonith_key_value_freeall(stonith_key_value_t *head, int keys,
      int values) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/lib/fencing/st_client.c:2904,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/fencing/st_client.c:2906,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - action
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2911
      start: 2899
    functionDepth: 0
    functionLinenumber: 2899
    functionLinenumberEnd: 2911
    functionName: stonith_action_str
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: char*
    signature: 'const char *stonith_action_str(const char *action) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/fencing/st_client.c:617,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:619,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:618,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:621,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:620,1
    - Dst: stonith_send_command
      Src: /src/pacemaker/lib/fencing/st_client.c:623,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:625,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 7
    argNames:
    - stonith
    - call_options
    - id
    - action
    - target
    - timeout_sec
    - output
    argTypes:
    - stonith_t*
    - int
    - char*
    - char*
    - char*
    - int
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 628
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 628
    functionName: stonith_api_call
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - pcmk__xml_free
    - stonith_send_command
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_call(stonith_t *stonith, int call_options,
      const char *id, const char *action, const char *target, int timeout_sec, xmlNode
      **output) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: matching_fn
      Src: /src/pacemaker/lib/fencing/st_client.c:2458,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 5
    argCount: 3
    argNames:
    - history
    - (*matching_fn)
    - user_data
    argTypes:
    - stonith_history_t*
    - bool
    - void*
    constantsTouched: []
    func_position:
      end: 2464
      start: 2452
    functionDepth: 0
    functionLinenumber: 2452
    functionLinenumberEnd: 2464
    functionName: stonith__first_matching_event
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - matching_fn
    linkageType: ''
    returnType: stonith_history_t*
    signature: 'stonith_history_t *stonith__first_matching_event(stonith_history_t
      *history, bool (*matching_fn)(stonith_history_t *, void *), void *user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1939,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - stonith_api
    argTypes:
    - stonith_t*
    constantsTouched: []
    func_position:
      end: 1943
      start: 1936
    functionDepth: 0
    functionLinenumber: 1936
    functionLinenumberEnd: 1943
    functionName: stonith__api_free
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void stonith__api_free(stonith_t *stonith_api) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stonith__api_new
      Src: /src/pacemaker/lib/fencing/st_client.c:2176,1
    - Dst: stonith__key_value_freeall
      Src: /src/pacemaker/lib/fencing/st_client.c:2194,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:2188,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_client.c:2178,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/lib/fencing/st_client.c:2195,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2197
      start: 2165
    functionDepth: 0
    functionLinenumber: 2165
    functionLinenumberEnd: 2197
    functionName: stonith__agent_exists
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - stonith__api_new
    - stonith__key_value_freeall
    - crm_err
    - stonith__api_free
    linkageType: ''
    returnType: bool
    signature: 'bool stonith__agent_exists(const char *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - history
    - user_data
    argTypes:
    - stonith_history_t*
    - void*
    constantsTouched: []
    func_position:
      end: 2470
      start: 2466
    functionDepth: 0
    functionLinenumber: 2466
    functionLinenumberEnd: 2470
    functionName: stonith__event_state_pending
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool stonith__event_state_pending(stonith_history_t *history, void
      *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_level_registration_xml
      Src: /src/pacemaker/lib/fencing/st_client.c:468,1
    - Dst: stonith_send_command
      Src: /src/pacemaker/lib/fencing/st_client.c:472,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:473,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_client.c:470,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 8
    argNames:
    - st
    - options
    - node
    - pattern
    - attr
    - value
    - level
    - device_list
    argTypes:
    - stonith_t*
    - int
    - char*
    - char*
    - char*
    - char*
    - int
    - stonith_key_value_t*
    constantsTouched: []
    func_position:
      end: 476
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 476
    functionName: stonith_api_register_level_full
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - create_level_registration_xml
    - stonith_send_command
    - CRM_CHECK
    - pcmk__xml_free
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_register_level_full(stonith_t *st, int options,
      const char *node, const char *pattern, const char *attr, const char *value,
      int level, const stonith_key_value_t *device_list) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stonith_api_call
      Src: /src/pacemaker/lib/fencing/st_client.c:637,1
    - Dst: strdup
      Src: /src/pacemaker/lib/fencing/st_client.c:646,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/fencing/st_client.c:643,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:651,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 5
    argNames:
    - stonith
    - call_options
    - id
    - list_info
    - timeout
    argTypes:
    - stonith_t*
    - int
    - char*
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 655
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 655
    functionName: stonith_api_list
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - strdup
    - stonith_api_call
    - pcmk__xml_free
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_list(stonith_t * stonith, int call_options,
      const char *id, char **list_info, int timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith_api_register_level_full
      Src: /src/pacemaker/lib/fencing/st_client.c:482,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 5
    argNames:
    - st
    - options
    - node
    - level
    - device_list
    argTypes:
    - stonith_t*
    - int
    - char*
    - int
    - stonith_key_value_t*
    constantsTouched: []
    func_position:
      end: 484
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 484
    functionName: stonith_api_register_level
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith_api_register_level_full
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_register_level(stonith_t * st, int options,
      const char *node, int level, const stonith_key_value_t * device_list) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith_api_call
      Src: /src/pacemaker/lib/fencing/st_client.c:660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 4
    argNames:
    - stonith
    - call_options
    - id
    - timeout
    argTypes:
    - stonith_t*
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 662
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 662
    functionName: stonith_api_monitor
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith_api_call
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_monitor(stonith_t * stonith, int call_options,
      const char *id, int timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith__api_new
      Src: /src/pacemaker/lib/fencing/st_client.c:2804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2805
      start: 2801
    functionDepth: 0
    functionLinenumber: 2801
    functionLinenumberEnd: 2805
    functionName: stonith_api_new
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith__api_new
    linkageType: ''
    returnType: stonith_t*
    signature: 'stonith_t *stonith_api_new(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/fencing/st_client.c:307,1
    - Dst: hash2field
      Src: /src/pacemaker/lib/fencing/st_client.c:315,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/fencing/st_client.c:308,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:320,1
    - Dst: get_namespace_from_agent
      Src: /src/pacemaker/lib/fencing/st_client.c:312,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:321,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:322,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:324,1
    - Dst: namespace_text
      Src: /src/pacemaker/lib/fencing/st_client.c:324,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:327,1
    - Dst: hash2field
      Src: /src/pacemaker/lib/fencing/st_client.c:331,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 5
    argNames:
    - id
    - standard
    - agent
    - params
    - rsc_provides
    argTypes:
    - char*
    - enum stonith_namespace
    - char*
    - stonith_key_value_t*
    - char*
    constantsTouched: []
    func_position:
      end: 335
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 335
    functionName: create_device_registration_xml
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - hash2field
    - get_namespace_from_agent
    - namespace_text
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *create_device_registration_xml(const char *id, enum stonith_namespace
      standard, const char *agent, const stonith_key_value_t *params, const char *rsc_provides) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:2037,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:2040,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:2042,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - head
    - keys
    - values
    argTypes:
    - stonith_key_value_t*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 2045
      start: 2030
    functionDepth: 0
    functionLinenumber: 2030
    functionLinenumberEnd: 2045
    functionName: stonith__key_value_freeall
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void stonith__key_value_freeall(stonith_key_value_t *head, bool keys,
      bool values) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_device_registration_xml
      Src: /src/pacemaker/lib/fencing/st_client.c:346,1
    - Dst: parse_namespace
      Src: /src/pacemaker/lib/fencing/st_client.c:346,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:350,1
    - Dst: stonith_send_command
      Src: /src/pacemaker/lib/fencing/st_client.c:349,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 6
    argNames:
    - st
    - call_options
    - id
    - namespace_s
    - agent
    - params
    argTypes:
    - stonith_t*
    - int
    - char*
    - char*
    - char*
    - stonith_key_value_t*
    constantsTouched: []
    func_position:
      end: 353
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 353
    functionName: stonith_api_register_device
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith_send_command
    - create_device_registration_xml
    - parse_namespace
    - pcmk__xml_free
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_register_device(stonith_t *st, int call_options,
      const char *id, const char *namespace_s, const char *agent, const stonith_key_value_t
      *params) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/fencing/st_client.c:2000,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:2004,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:2003,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 3
    argNames:
    - head
    - key
    - value
    argTypes:
    - stonith_key_value_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2017
      start: 1992
    functionDepth: 0
    functionLinenumber: 1992
    functionLinenumberEnd: 2017
    functionName: stonith__key_value_add
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - pcmk__assert_alloc
    linkageType: ''
    returnType: stonith_key_value_t*
    signature: 'stonith_key_value_t *stonith__key_value_add(stonith_key_value_t *head,
      const char *key, const char *value) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stonith__agent_is_rhcs
      Src: /src/pacemaker/lib/fencing/st_client.c:167,1
    - Dst: stonith__agent_is_lha
      Src: /src/pacemaker/lib/fencing/st_client.c:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - agent
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 178
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 178
    functionName: get_namespace_from_agent
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith__agent_is_lha
    - stonith__agent_is_rhcs
    linkageType: ''
    returnType: enum stonith_namespace
    signature: 'static enum stonith_namespace get_namespace_from_agent(const char
      *agent) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_namespace
      Src: /src/pacemaker/lib/fencing/st_client.c:492,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_client.c:495,1
    - Dst: stonith__list_lha_agents
      Src: /src/pacemaker/lib/fencing/st_client.c:502,1
    - Dst: stonith__list_rhcs_agents
      Src: /src/pacemaker/lib/fencing/st_client.c:508,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 5
    argNames:
    - stonith
    - call_options
    - namespace_s
    - devices
    - timeout
    argTypes:
    - stonith_t*
    - int
    - char*
    - stonith_key_value_t**
    - int
    constantsTouched: []
    func_position:
      end: 512
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 512
    functionName: stonith_api_device_list
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith__list_rhcs_agents
    - stonith__list_lha_agents
    - crm_err
    - parse_namespace
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_device_list(stonith_t *stonith, int call_options,
      const char *namespace_s, stonith_key_value_t **devices, int timeout) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/fencing/st_client.c:1217,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:1222,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:1226,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:1224,1
    - Dst: crm_ipc_send
      Src: /src/pacemaker/lib/fencing/st_client.c:1229,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/fencing/st_client.c:1231,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:1238,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - stonith
    - callback
    - enabled
    argTypes:
    - stonith_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1240
      start: 1213
    functionDepth: 0
    functionLinenumber: 1213
    functionLinenumberEnd: 1240
    functionName: stonith_set_notification
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_perror
    - crm_ipc_send
    - crm_xml_add
    - pcmk__xml_free
    linkageType: ''
    returnType: int
    signature: 'static int stonith_set_notification(stonith_t * stonith, const char
      *callback, int enabled) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/fencing/st_client.c:1281,1
    - Dst: stonith_api_del_notification
      Src: /src/pacemaker/lib/fencing/st_client.c:1282,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 1284
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1284
    functionName: del_notify_entry
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - stonith_api_del_notification
    linkageType: ''
    returnType: void
    signature: 'static void del_notify_entry(gpointer data, gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/fencing/st_client.c:1736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 1737
      start: 1733
    functionDepth: 0
    functionLinenumber: 1733
    functionLinenumberEnd: 1737
    functionName: is_stonith_param
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk_stonith_param
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean is_stonith_param(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1251,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/fencing/st_client.c:1260,1
    - Dst: g_list_find_custom
      Src: /src/pacemaker/lib/fencing/st_client.c:1257,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/fencing/st_client.c:1251,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/fencing/st_client.c:1253,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1261,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/fencing/st_client.c:1265,1
    - Dst: stonith_set_notification
      Src: /src/pacemaker/lib/fencing/st_client.c:1267,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1269,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/fencing/st_client.c:1269,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 3
    argNames:
    - stonith
    - event
    - (*callback)
    argTypes:
    - stonith_t*
    - char*
    - void
    constantsTouched: []
    func_position:
      end: 1272
      start: 1242
    functionDepth: 0
    functionLinenumber: 1242
    functionLinenumberEnd: 1272
    functionName: stonith_api_add_notification
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - crm_trace
    - g_list_append
    - pcmk__assert_alloc
    - g_list_length
    - free
    - crm_warn
    - g_list_find_custom
    - stonith_set_notification
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_add_notification(stonith_t * stonith, const
      char *event, void (*callback) (stonith_t * stonith, stonith_event_t * e)) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: foreach_notify_entry
      Src: /src/pacemaker/lib/fencing/st_client.c:1294,1
    - Dst: g_list_find_custom
      Src: /src/pacemaker/lib/fencing/st_client.c:1306,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1295,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/fencing/st_client.c:1300,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/fencing/st_client.c:1302,1
    - Dst: stonith_set_notification
      Src: /src/pacemaker/lib/fencing/st_client.c:1308,1
    - Dst: g_list_remove
      Src: /src/pacemaker/lib/fencing/st_client.c:1317,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1318,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1321,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:1324,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1326,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - stonith
    - event
    argTypes:
    - stonith_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1328
      start: 1286
    functionDepth: 0
    functionLinenumber: 1286
    functionLinenumberEnd: 1328
    functionName: stonith_api_del_notification
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_trace
    - foreach_notify_entry
    - pcmk__assert_alloc
    - free
    - g_list_remove
    - g_list_find_custom
    - stonith_set_notification
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_del_notification(stonith_t * stonith, const
      char *event) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/fencing/st_client.c:1754,1
    - Dst: g_hash_table_foreach_remove
      Src: /src/pacemaker/lib/fencing/st_client.c:1757,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/fencing/st_client.c:1754,1
    - Dst: pcmk__substitute_secrets
      Src: /src/pacemaker/lib/fencing/st_client.c:1761,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/fencing/st_client.c:1763,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/fencing/st_client.c:1764,1
    - Dst: get_namespace_from_agent
      Src: /src/pacemaker/lib/fencing/st_client.c:1780,1
    - Dst: stonith__rhcs_validate
      Src: /src/pacemaker/lib/fencing/st_client.c:1782,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/fencing/st_client.c:1785,1
    - Dst: stonith__lha_validate
      Src: /src/pacemaker/lib/fencing/st_client.c:1790,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_client.c:1814,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_client.c:1817,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_client.c:1823,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/fencing/st_client.c:1793,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_client.c:1802,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_client.c:1804,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 45
    argCount: 8
    argNames:
    - st
    - call_options
    - rsc_id
    - agent
    - params
    - timeout_sec
    - output
    - error_output
    argTypes:
    - stonith_t*
    - int
    - char*
    - char*
    - GHashTable*
    - int
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 1825
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1825
    functionName: stonith__validate
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - crm_strdup_printf
    - g_hash_table_foreach_remove
    - stonith__rhcs_validate
    - pcmk__str_copy
    - free
    - pcmk_rc_str
    - stonith__lha_validate
    - crm_warn
    - pcmk__substitute_secrets
    - get_namespace_from_agent
    - crm_err
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int stonith__validate(stonith_t *st, int call_options, const char
      *rsc_id, const char *agent, GHashTable *params, int timeout_sec, char **output,
      char **error_output) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_client.c:2935,1
    - Dst: get_namespace_from_agent
      Src: /src/pacemaker/lib/fencing/st_client.c:2938,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - agent
    - namespace_s
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2939
      start: 2932
    functionDepth: 0
    functionLinenumber: 2932
    functionLinenumberEnd: 2939
    functionName: stonith_get_namespace
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - get_namespace_from_agent
    - pcmk__str_eq
    linkageType: ''
    returnType: enum stonith_namespace
    signature: 'enum stonith_namespace stonith_get_namespace(const char *agent, const
      char *namespace_s) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 1
    argNames:
    - st_namespace
    argTypes:
    - enum stonith_namespace
    constantsTouched: []
    func_position:
      end: 150
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 150
    functionName: namespace_text
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *namespace_text(enum stonith_namespace st_namespace) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/fencing/st_client.c:361,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:362,1
    - Dst: stonith_send_command
      Src: /src/pacemaker/lib/fencing/st_client.c:364,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:363,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - st
    - call_options
    - name
    argTypes:
    - stonith_t*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 368
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 368
    functionName: stonith_api_remove_device
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - pcmk__xml_free
    - stonith_send_command
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_remove_device(stonith_t * st, int call_options,
      const char *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_client.c:378,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:387,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:384,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:381,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/fencing/st_client.c:380,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:390,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_client.c:391,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/fencing/st_client.c:394,1
    - Dst: stonith_send_command
      Src: /src/pacemaker/lib/fencing/st_client.c:395,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_client.c:396,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 7
    argNames:
    - st
    - options
    - node
    - pattern
    - attr
    - value
    - level
    argTypes:
    - stonith_t*
    - int
    - char*
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 399
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 399
    functionName: stonith_api_remove_level_full
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - CRM_CHECK
    - crm_xml_add
    - pcmk__xml_free
    - crm_xml_add_int
    - stonith_send_command
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_remove_level_full(stonith_t *st, int options,
      const char *node, const char *pattern, const char *attr, const char *value,
      int level) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_namespace_from_agent
      Src: /src/pacemaker/lib/fencing/st_client.c:524,1
    - Dst: stonith__rhcs_metadata
      Src: /src/pacemaker/lib/fencing/st_client.c:534,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_client.c:530,1
    - Dst: stonith__lha_metadata
      Src: /src/pacemaker/lib/fencing/st_client.c:538,1
    - Dst: namespace_text
      Src: /src/pacemaker/lib/fencing/st_client.c:530,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_client.c:542,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 6
    argNames:
    - stonith
    - call_options
    - agent
    - namespace_s
    - output
    - timeout_sec
    argTypes:
    - stonith_t*
    - int
    - char*
    - char*
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 547
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 547
    functionName: stonith_api_device_metadata
    functionSourceFile: /src/pacemaker/lib/fencing/st_client.c
    functionUses: []
    functionsReached:
    - stonith__lha_metadata
    - stonith__rhcs_metadata
    - crm_err
    - get_namespace_from_agent
    - crm_trace
    - namespace_text
    linkageType: ''
    returnType: int
    signature: 'static int stonith_api_device_metadata(stonith_t *stonith, int call_options,
      const char *agent, const char *namespace_s, char **output, int timeout_sec) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:42,1
    - Dst: stat
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:48,1
    - Dst: S_ISREG
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:48,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:47,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:55,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct dirent*
    constantsTouched: []
    func_position:
      end: 57
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 57
    functionName: rhcs_agent_filter
    functionSourceFile: /src/pacemaker/lib/fencing/st_rhcs.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - stat
    - free
    - S_ISREG
    - pcmk__starts_with
    linkageType: ''
    returnType: int
    signature: 'static int rhcs_agent_filter(const struct dirent *entry) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:96,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:103,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:99,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:97,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:104,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:105,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:108,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:111,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:112,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - metadata
    - parameter
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 113
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 113
    functionName: stonith_rhcs_parameter_not_required
    functionSourceFile: /src/pacemaker/lib/fencing/st_rhcs.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__xpath_result
    - crm_strdup_printf
    - crm_xml_add
    - xmlXPathFreeObject
    - free
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    linkageType: ''
    returnType: void
    signature: 'static void stonith_rhcs_parameter_not_required(xmlNode *metadata,
      const char *parameter) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stonith__rhcs_get_metadata
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:229,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:244,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:235,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:236,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:238,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:249,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:251,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 3
    argNames:
    - agent
    - timeout_sec
    - output
    argTypes:
    - char*
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 253
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 253
    functionName: stonith__rhcs_metadata
    functionSourceFile: /src/pacemaker/lib/fencing/st_rhcs.c
    functionUses: []
    functionsReached:
    - pcmk__str_empty
    - stonith__rhcs_get_metadata
    - g_string_free
    - g_string_sized_new
    - pcmk__xml_free
    - pcmk__xml_string
    - pcmk__str_update
    linkageType: ''
    returnType: int
    signature: 'int stonith__rhcs_metadata(const char *agent, int timeout_sec, char
      **output) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:259,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:262,1
    - Dst: S_ISREG
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:263,1
    - Dst: stat
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - agent
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 264
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 264
    functionName: stonith__agent_is_rhcs
    functionSourceFile: /src/pacemaker/lib/fencing/st_rhcs.c
    functionUses: []
    functionsReached:
    - stat
    - free
    - S_ISREG
    - crm_strdup_printf
    linkageType: ''
    returnType: bool
    signature: 'bool stonith__agent_is_rhcs(const char *agent) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:279,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:285,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:287,1
    - Dst: stonith__default_host_arg
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:284,1
    - Dst: stonith__rhcs_get_metadata
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:281,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:290,1
    - Dst: time
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:292,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:298,1
    - Dst: stonith__action_create
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:302,1
    - Dst: stonith__execute
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:305,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:309,1
    - Dst: stonith__result2rc
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:309,1
    - Dst: stonith__action_result
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:306,1
    - Dst: stonith__destroy_action
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:321,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 9
    argNames:
    - st
    - call_options
    - target
    - agent
    - params
    - host_arg
    - timeout
    - output
    - error_output
    argTypes:
    - stonith_t*
    - int
    - char*
    - char*
    - GHashTable*
    - char*
    - int
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 323
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 323
    functionName: stonith__rhcs_validate
    functionSourceFile: /src/pacemaker/lib/fencing/st_rhcs.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - stonith__rhcs_get_metadata
    - pcmk__str_eq
    - time
    - stonith__action_create
    - stonith__execute
    - stonith__result2rc
    - pcmk_rc2legacy
    - pcmk__xml_free
    - stonith__destroy_action
    - stonith__default_host_arg
    - crm_trace
    - stonith__action_result
    linkageType: ''
    returnType: int
    signature: 'int stonith__rhcs_validate(stonith_t *st, int call_options, const
      char *target, const char *agent, GHashTable *params, const char * host_arg,
      int timeout, char **output, char **error_output) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: crm_warn
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:138,1
    - Dst: stonith__action_result
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:134,1
    - Dst: stonith__result2rc
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:148,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:167,1
    - Dst: stonith__destroy_action
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:157,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:154,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:175,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:176,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:177,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:196,1
    - Dst: stonith_rhcs_parameter_not_required
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:204,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:197,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:139,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:156,1
    - Dst: stonith__destroy_action
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:149,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:185,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:191,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:199,1
    - Dst: stonith__action_create
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:129,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:148,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:153,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:162,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:171,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:182,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:189,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:192,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:193,1
    - Dst: stonith_rhcs_parameter_not_required
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:203,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:210,1
    - Dst: stonith__execute
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:133,1
    - Dst: stonith__destroy_action
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:141,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:146,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:147,1
    - Dst: stonith__result2rc
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:156,1
    - Dst: stonith__destroy_action
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:163,1
    - Dst: stonith__destroy_action
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:168,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:179,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:195,1
    - Dst: stonith_rhcs_parameter_not_required
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:202,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 3
    argNames:
    - agent
    - timeout_sec
    - metadata
    argTypes:
    - char*
    - int
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 214
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 214
    functionName: stonith__rhcs_get_metadata
    functionSourceFile: /src/pacemaker/lib/fencing/st_rhcs.c
    functionUses: []
    functionsReached:
    - pcmk__result_ok
    - stonith__result2rc
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    - pcmk__xe_create
    - pcmk__xpath_result
    - stonith__action_create
    - stonith__execute
    - pcmk_rc2legacy
    - xmlXPathFreeObject
    - stonith__destroy_action
    - pcmk_exec_status_str
    - pcmk__xml_parse
    - crm_warn
    - pcmk__readable_interval
    - pcmk_strerror
    - stonith__action_result
    - crm_xml_add
    - pcmk__xml_free
    - stonith_rhcs_parameter_not_required
    linkageType: ''
    returnType: int
    signature: 'static int stonith__rhcs_get_metadata(const char *agent, int timeout_sec,
      xmlNode **metadata) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: scandir
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:71,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:77,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:77,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:78,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:83,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:84,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_rhcs.c:86,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - devices
    argTypes:
    - stonith_key_value_t**
    constantsTouched: []
    func_position:
      end: 88
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 88
    functionName: stonith__list_rhcs_agents
    functionSourceFile: /src/pacemaker/lib/fencing/st_rhcs.c
    functionUses: []
    functionsReached:
    - free
    - crm_err
    - pcmk_rc_str
    - scandir
    - stonith__key_value_add
    linkageType: ''
    returnType: int
    signature: 'int stonith__list_rhcs_agents(stonith_key_value_t **devices) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_library_function
      Src: /src/pacemaker/lib/fencing/st_lha.c:101,1
    - Dst: find_library_function
      Src: /src/pacemaker/lib/fencing/st_lha.c:103,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 14
    argCount: 1
    argNames:
    - agent
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 115
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 115
    functionName: stonith__agent_is_lha
    functionSourceFile: /src/pacemaker/lib/fencing/st_lha.c
    functionUses: []
    functionsReached:
    - find_library_function
    linkageType: ''
    returnType: bool
    signature: 'bool stonith__agent_is_lha(const char *agent) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: st_new_fn
      Src: /src/pacemaker/lib/fencing/st_lha.c:213,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/fencing/st_lha.c:234,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/fencing/st_lha.c:231,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/fencing/st_lha.c:249,1
    - Dst: pcmk__xml_escape
      Src: /src/pacemaker/lib/fencing/st_lha.c:254,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_lha.c:274,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_lha.c:281,1
    - Dst: find_library_function
      Src: /src/pacemaker/lib/fencing/st_lha.c:194,1
    - Dst: st_log_fn
      Src: /src/pacemaker/lib/fencing/st_lha.c:215,1
    - Dst: st_info_fn
      Src: /src/pacemaker/lib/fencing/st_lha.c:220,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/fencing/st_lha.c:223,1
    - Dst: st_del_fn
      Src: /src/pacemaker/lib/fencing/st_lha.c:241,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/fencing/st_lha.c:237,1
    - Dst: st_info_fn
      Src: /src/pacemaker/lib/fencing/st_lha.c:227,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_lha.c:263,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_lha.c:275,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/fencing/st_lha.c:230,1
    - Dst: st_info_fn
      Src: /src/pacemaker/lib/fencing/st_lha.c:234,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/fencing/st_lha.c:245,1
    - Dst: pcmk__xml_escape
      Src: /src/pacemaker/lib/fencing/st_lha.c:250,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/fencing/st_lha.c:253,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/fencing/st_lha.c:262,1
    - Dst: g_free
      Src: /src/pacemaker/lib/fencing/st_lha.c:271,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_lha.c:276,1
    - Dst: find_library_function
      Src: /src/pacemaker/lib/fencing/st_lha.c:198,1
    - Dst: find_library_function
      Src: /src/pacemaker/lib/fencing/st_lha.c:200,1
    - Dst: find_library_function
      Src: /src/pacemaker/lib/fencing/st_lha.c:196,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/fencing/st_lha.c:220,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/fencing/st_lha.c:224,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/fencing/st_lha.c:238,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/fencing/st_lha.c:227,1
    - Dst: g_free
      Src: /src/pacemaker/lib/fencing/st_lha.c:272,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 74
    argCount: 3
    argNames:
    - agent
    - timeout
    - output
    argTypes:
    - char*
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 284
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 284
    functionName: stonith__lha_metadata
    functionSourceFile: /src/pacemaker/lib/fencing/st_lha.c
    functionUses: []
    functionsReached:
    - st_info_fn
    - crm_perror
    - crm_strdup_printf
    - st_new_fn
    - st_del_fn
    - pcmk__xml_needs_escape
    - pcmk__str_copy
    - pcmk__xml_escape
    - free
    - crm_warn
    - g_free
    - find_library_function
    - pcmk__readable_interval
    - st_log_fn
    linkageType: ''
    returnType: int
    signature: 'int stonith__lha_metadata(const char *agent, int timeout, char **output) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/pacemaker/lib/fencing/st_lha.c:67,1
    - Dst: dlerror
      Src: /src/pacemaker/lib/fencing/st_lha.c:69,1
    - Dst: dlsym
      Src: /src/pacemaker/lib/fencing/st_lha.c:74,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_lha.c:76,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/fencing/st_lha.c:69,1
    - Dst: dlerror
      Src: /src/pacemaker/lib/fencing/st_lha.c:76,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 3
    argNames:
    - handle
    - lib
    - fn
    argTypes:
    - void**
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 80
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 80
    functionName: find_library_function
    functionSourceFile: /src/pacemaker/lib/fencing/st_lha.c
    functionUses: []
    functionsReached:
    - dlopen
    - dlerror
    - crm_err
    - dlsym
    linkageType: ''
    returnType: void*
    signature: 'static void *find_library_function(void **handle, const char *lib,
      const char *fn) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_library_function
      Src: /src/pacemaker/lib/fencing/st_lha.c:130,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_lha.c:143,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/lib/fencing/st_lha.c:144,1
    - Dst: find_library_function
      Src: /src/pacemaker/lib/fencing/st_lha.c:133,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 20
    argCount: 1
    argNames:
    - devices
    argTypes:
    - stonith_key_value_t**
    constantsTouched: []
    func_position:
      end: 151
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 151
    functionName: stonith__list_lha_agents
    functionSourceFile: /src/pacemaker/lib/fencing/st_lha.c
    functionUses: []
    functionsReached:
    - find_library_function
    - stonith__key_value_add
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int stonith__list_lha_agents(stonith_key_value_t **devices) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/pacemaker/lib/fencing/st_lha.c:165,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/fencing/st_lha.c:169,1
    - Dst: va_end
      Src: /src/pacemaker/lib/fencing/st_lha.c:168,1
    - Dst: do_crm_log_alias
      Src: /src/pacemaker/lib/fencing/st_lha.c:171,1
    - Dst: vasprintf
      Src: /src/pacemaker/lib/fencing/st_lha.c:167,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_lha.c:173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - priority
    - format
    - '...'
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 175
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 175
    functionName: stonith_plugin
    functionSourceFile: /src/pacemaker/lib/fencing/st_lha.c
    functionUses: []
    functionsReached:
    - va_end
    - do_crm_log_alias
    - va_start
    - vasprintf
    - free
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'static void stonith_plugin(int priority, const char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PIL_strerror
      Src: /src/pacemaker/lib/fencing/st_lha.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: i_hate_pils
    functionSourceFile: /src/pacemaker/lib/fencing/st_lha.c
    functionUses: []
    functionsReached:
    - PIL_strerror
    linkageType: ''
    returnType: char*
    signature: 'const char *i_hate_pils(int rc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_perror
      Src: /src/pacemaker/lib/fencing/st_lha.c:306,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 4
    argCount: 8
    argNames:
    - st
    - call_options
    - target
    - agent
    - params
    - timeout
    - output
    - error_output
    argTypes:
    - stonith_t*
    - int
    - char*
    - char*
    - GHashTable*
    - int
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 308
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 308
    functionName: stonith__lha_validate
    functionSourceFile: /src/pacemaker/lib/fencing/st_lha.c
    functionUses: []
    functionsReached:
    - crm_perror
    linkageType: ''
    returnType: int
    signature: 'int stonith__lha_validate(stonith_t *st, int call_options, const char
      *target, const char *agent, GHashTable *params, int timeout, char **output,
      char **error_output) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 1
    argNames:
    - history
    argTypes:
    - stonith_history_t*
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: state_str
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *state_str(const stonith_history_t *history) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:192,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:196,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:194,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:193,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:195,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/fencing/st_output.c:205,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/fencing/st_output.c:209,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/fencing/st_output.c:211,1
    - Dst: stonith__later_succeeded
      Src: /src/pacemaker/lib/fencing/st_output.c:212,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/fencing/st_output.c:216,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 218
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 218
    functionName: failed_history
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached:
    - PCMK__OUTPUT_LIST_FOOTER
    - va_arg
    - pcmk_all_flags_set
    - PCMK__OUTPUT_LIST_HEADER
    - pcmk__str_in_list
    - stonith__later_succeeded
    linkageType: ''
    returnType: int
    signature: 'static int failed_history(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:287,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:291,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:289,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:290,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:288,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:292,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/fencing/st_output.c:298,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/fencing/st_output.c:302,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/fencing/st_output.c:304,1
    - Dst: stonith__later_succeeded
      Src: /src/pacemaker/lib/fencing/st_output.c:306,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/fencing/st_output.c:310,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/fencing/st_output.c:312,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/fencing/st_output.c:314,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_output.c:317,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 323
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 323
    functionName: full_history_xml
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk__itoa
    - PCMK__OUTPUT_LIST_FOOTER
    - va_arg
    - free
    - pcmk_all_flags_set
    - PCMK__OUTPUT_LIST_HEADER
    - pcmk__str_in_list
    - stonith__later_succeeded
    linkageType: ''
    returnType: int
    signature: 'static int full_history_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:471,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:473,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:474,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:475,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:472,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/fencing/st_output.c:479,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/fencing/st_output.c:488,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_output.c:495,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/fencing/st_output.c:499,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/fencing/st_output.c:500,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_output.c:517,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_output.c:518,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_output.c:510,1
    - Dst: timespec_string
      Src: /src/pacemaker/lib/fencing/st_output.c:514,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_output.c:504,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 522
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 522
    functionName: stonith_event_xml
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk__itoa
    - pcmk__xe_set_props
    - crm_xml_add
    - va_arg
    - free
    - timespec_string
    linkageType: ''
    returnType: int
    signature: 'static int stonith_event_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:576,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:580,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:577,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:579,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:578,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/fencing/st_output.c:582,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/fencing/st_output.c:583,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_output.c:589,1
    - Dst: pcmk__output_xml_push_parent
      Src: /src/pacemaker/lib/fencing/st_output.c:592,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/fencing/st_output.c:594,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 597
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 597
    functionName: validate_agent_xml
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk__output_xml_pop_parent
    - pcmk__btoa
    - crm_xml_add
    - va_arg
    - pcmk__output_xml_push_parent
    linkageType: ''
    returnType: int
    signature: 'static int validate_agent_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:382,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:383,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:385,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:386,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:384,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/fencing/st_output.c:391,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/fencing/st_output.c:400,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/fencing/st_output.c:402,1
    - Dst: stonith__later_succeeded
      Src: /src/pacemaker/lib/fencing/st_output.c:403,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/fencing/st_output.c:407,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 409
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 409
    functionName: pending_actions
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached:
    - PCMK__OUTPUT_LIST_FOOTER
    - va_arg
    - pcmk_all_flags_set
    - PCMK__OUTPUT_LIST_HEADER
    - pcmk__str_in_list
    - stonith__later_succeeded
    linkageType: ''
    returnType: int
    signature: 'static int pending_actions(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:528,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:531,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:529,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:530,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:532,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_output.c:535,1
    - Dst: pcmk__output_create_html_node
      Src: /src/pacemaker/lib/fencing/st_output.c:537,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_output.c:538,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_output.c:540,1
    - Dst: pcmk__output_create_html_node
      Src: /src/pacemaker/lib/fencing/st_output.c:542,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_output.c:543,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 548
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 548
    functionName: validate_agent_html
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - free
    - pcmk__output_create_html_node
    - crm_strdup_printf
    linkageType: ''
    returnType: int
    signature: 'static int validate_agent_html(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/lib/fencing/st_output.c:623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 624
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 624
    functionName: stonith__register_messages
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached:
    - pcmk__register_messages
    linkageType: ''
    returnType: void
    signature: 'void stonith__register_messages(pcmk__output_t *out) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_output.c:61,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_output.c:64,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/fencing/st_output.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - history
    argTypes:
    - stonith_history_t*
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: history_action_text
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - pcmk__s
    linkageType: ''
    returnType: char*
    signature: 'static const char *history_action_text(const stonith_history_t *history) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__timespec2str
      Src: /src/pacemaker/lib/fencing/st_output.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - sec
    - nsec
    - show_usec
    argTypes:
    - time_t
    - long
    - bool
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: timespec_string
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached:
    - pcmk__timespec2str
    linkageType: ''
    returnType: char*
    signature: 'static char *timespec_string(time_t sec, long nsec, bool show_usec) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/fencing/st_output.c:120,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/fencing/st_output.c:164,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/fencing/st_output.c:168,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/fencing/st_output.c:152,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/fencing/st_output.c:184,1
    - Dst: timespec_string
      Src: /src/pacemaker/lib/fencing/st_output.c:116,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/fencing/st_output.c:123,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/fencing/st_output.c:128,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/fencing/st_output.c:133,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/fencing/st_output.c:137,1
    - Dst: state_str
      Src: /src/pacemaker/lib/fencing/st_output.c:137,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/fencing/st_output.c:144,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/fencing/st_output.c:130,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/fencing/st_output.c:157,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/fencing/st_output.c:166,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/fencing/st_output.c:146,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/fencing/st_output.c:112,1
    - Dst: history_action_text
      Src: /src/pacemaker/lib/fencing/st_output.c:120,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/fencing/st_output.c:141,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/fencing/st_output.c:170,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/fencing/st_output.c:174,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/fencing/st_output.c:178,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_output.c:183,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 62
    argCount: 4
    argNames:
    - history
    - full_history
    - later_succeeded
    - show_opts
    argTypes:
    - stonith_history_t*
    - bool
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 185
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 185
    functionName: stonith__history_description
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached:
    - g_string_append
    - history_action_text
    - pcmk_is_set
    - g_string_sized_new
    - pcmk__add_word
    - timespec_string
    - state_str
    - free
    - g_string_free
    - pcmk__g_strcat
    linkageType: ''
    returnType: gchar*
    signature: 'gchar *stonith__history_description(const stonith_history_t *history,
      bool full_history, const char *later_succeeded, uint32_t show_opts) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:225,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:226,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:227,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:228,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:229,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/fencing/st_output.c:234,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/fencing/st_output.c:239,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/fencing/st_output.c:241,1
    - Dst: stonith__later_succeeded
      Src: /src/pacemaker/lib/fencing/st_output.c:243,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/fencing/st_output.c:248,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 250
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 250
    functionName: stonith_history
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached:
    - PCMK__OUTPUT_LIST_FOOTER
    - va_arg
    - pcmk_all_flags_set
    - PCMK__OUTPUT_LIST_HEADER
    - pcmk__str_in_list
    - stonith__later_succeeded
    linkageType: ''
    returnType: int
    signature: 'static int stonith_history(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:344,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:345,1
    - Dst: pcmk__indented_printf
      Src: /src/pacemaker/lib/fencing/st_output.c:348,1
    - Dst: ctime
      Src: /src/pacemaker/lib/fencing/st_output.c:348,1
    - Dst: pcmk__indented_printf
      Src: /src/pacemaker/lib/fencing/st_output.c:350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 354
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 354
    functionName: last_fenced_text
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - ctime
    - pcmk__indented_printf
    linkageType: ''
    returnType: int
    signature: 'static int last_fenced_text(pcmk__output_t *out, va_list args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:416,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:420,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:419,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:417,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:418,1
    - Dst: stonith__history_description
      Src: /src/pacemaker/lib/fencing/st_output.c:422,1
    - Dst: g_free
      Src: /src/pacemaker/lib/fencing/st_output.c:438,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 440
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 440
    functionName: stonith_event_html
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - stonith__history_description
    - g_free
    linkageType: ''
    returnType: int
    signature: 'static int stonith_event_html(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:447,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:449,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:450,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:451,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:448,1
    - Dst: pcmk__formatted_printf
      Src: /src/pacemaker/lib/fencing/st_output.c:454,1
    - Dst: stonith__history_description
      Src: /src/pacemaker/lib/fencing/st_output.c:456,1
    - Dst: pcmk__indented_printf
      Src: /src/pacemaker/lib/fencing/st_output.c:459,1
    - Dst: g_free
      Src: /src/pacemaker/lib/fencing/st_output.c:460,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 464
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 464
    functionName: stonith_event_text
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached:
    - stonith__history_description
    - pcmk__indented_printf
    - va_arg
    - pcmk__formatted_printf
    - g_free
    linkageType: ''
    returnType: int
    signature: 'static int stonith_event_text(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:328,1
    - Dst: pcmk__output_create_html_node
      Src: /src/pacemaker/lib/fencing/st_output.c:333,1
    - Dst: ctime
      Src: /src/pacemaker/lib/fencing/st_output.c:332,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:329,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_output.c:332,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_output.c:334,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 339
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 339
    functionName: last_fenced_html
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_html_node
    - crm_strdup_printf
    - ctime
    - va_arg
    - free
    linkageType: ''
    returnType: int
    signature: 'static int last_fenced_html(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:554,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:557,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:555,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:558,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:556,1
    - Dst: pcmk__indented_printf
      Src: /src/pacemaker/lib/fencing/st_output.c:561,1
    - Dst: pcmk__indented_printf
      Src: /src/pacemaker/lib/fencing/st_output.c:564,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 570
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 570
    functionName: validate_agent_text
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__indented_printf
    linkageType: ''
    returnType: int
    signature: 'static int validate_agent_text(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:257,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:259,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:261,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:258,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:260,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:262,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/fencing/st_output.c:267,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/fencing/st_output.c:271,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/fencing/st_output.c:273,1
    - Dst: stonith__later_succeeded
      Src: /src/pacemaker/lib/fencing/st_output.c:274,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/fencing/st_output.c:278,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 280
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 280
    functionName: full_history
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached:
    - PCMK__OUTPUT_LIST_FOOTER
    - va_arg
    - pcmk_all_flags_set
    - PCMK__OUTPUT_LIST_HEADER
    - pcmk__str_in_list
    - stonith__later_succeeded
    linkageType: ''
    returnType: int
    signature: 'static int full_history(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:359,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/fencing/st_output.c:360,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_output.c:370,1
    - Dst: timespec_string
      Src: /src/pacemaker/lib/fencing/st_output.c:363,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/fencing/st_output.c:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 375
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 375
    functionName: last_fenced_xml
    functionSourceFile: /src/pacemaker/lib/fencing/st_output.c
    functionUses: []
    functionsReached:
    - free
    - va_arg
    - pcmk__output_create_xml_node
    - timespec_string
    linkageType: ''
    returnType: int
    signature: 'static int last_fenced_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: services__copy_result
      Src: /src/pacemaker/lib/fencing/st_actions.c:67,1
    - Dst: pcmk__set_result_output
      Src: /src/pacemaker/lib/fencing/st_actions.c:68,1
    - Dst: services__grab_stdout
      Src: /src/pacemaker/lib/fencing/st_actions.c:69,1
    - Dst: services__grab_stderr
      Src: /src/pacemaker/lib/fencing/st_actions.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - action
    - svc_action
    argTypes:
    - stonith_action_t*
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: set_result_from_svc_action
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached:
    - pcmk__set_result_output
    - services__grab_stdout
    - services__copy_result
    - services__grab_stderr
    linkageType: ''
    returnType: void
    signature: 'static void set_result_from_svc_action(stonith_action_t *action, svc_action_t
      *svc_action) '
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 5
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 409
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 409
    functionName: stonith__legacy2status
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int stonith__legacy2status(int rc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_actions.c:562,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/lib/fencing/st_actions.c:559,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - svc_action
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 564
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 564
    functionName: stonith_action_async_forked
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void stonith_action_async_forked(svc_action_t *svc_action) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_actions.c:709,1
    - Dst: internal_stonith_action_execute
      Src: /src/pacemaker/lib/fencing/st_actions.c:713,1
    - Dst: update_remaining_timeout
      Src: /src/pacemaker/lib/fencing/st_actions.c:714,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - action
    argTypes:
    - stonith_action_t*
    constantsTouched: []
    func_position:
      end: 717
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 717
    functionName: stonith__execute
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached:
    - update_remaining_timeout
    - internal_stonith_action_execute
    - CRM_CHECK
    linkageType: ''
    returnType: int
    signature: 'int stonith__execute(stonith_action_t *action) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/lib/fencing/st_actions.c:317,1
    - Dst: strcasestr
      Src: /src/pacemaker/lib/fencing/st_actions.c:365,1
    - Dst: strcasestr
      Src: /src/pacemaker/lib/fencing/st_actions.c:361,1
    - Dst: strcasestr
      Src: /src/pacemaker/lib/fencing/st_actions.c:366,1
    - Dst: strcasestr
      Src: /src/pacemaker/lib/fencing/st_actions.c:362,1
    - Dst: strcasestr
      Src: /src/pacemaker/lib/fencing/st_actions.c:367,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 17
    argCount: 1
    argNames:
    - result
    argTypes:
    - pcmk__action_result_t*
    constantsTouched: []
    func_position:
      end: 373
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 373
    functionName: stonith__result2rc
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached:
    - strcasestr
    - pcmk__result_ok
    linkageType: ''
    returnType: int
    signature: 'int stonith__result2rc(const pcmk__action_result_t *result) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_actions.c:81,1
    - Dst: crm_log_output
      Src: /src/pacemaker/lib/fencing/st_actions.c:83,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_actions.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - action
    - pid
    argTypes:
    - stonith_action_t*
    - pid_t
    constantsTouched: []
    func_position:
      end: 86
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 86
    functionName: log_action
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached:
    - free
    - crm_log_output
    - crm_strdup_printf
    linkageType: ''
    returnType: void
    signature: 'static void log_action(stonith_action_t *action, pid_t pid) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_actions.c:97,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_actions.c:100,1
    - Dst: strstr
      Src: /src/pacemaker/lib/fencing/st_actions.c:99,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/fencing/st_actions.c:102,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/fencing/st_actions.c:98,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/fencing/st_actions.c:104,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/fencing/st_actions.c:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: append_config_arg
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached:
    - pcmk_stonith_param
    - pcmk__s
    - pcmk__insert_dup
    - pcmk__str_eq
    - strstr
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void append_config_arg(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/fencing/st_actions.c:460,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/fencing/st_actions.c:468,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 472
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 472
    functionName: stonith__find_xe_with_result
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached:
    - pcmk__xpath_find_one
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *stonith__find_xe_with_result(xmlNode *xml) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_actions.c:208,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_actions.c:212,1
    - Dst: services_action_free
      Src: /src/pacemaker/lib/fencing/st_actions.c:214,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/lib/fencing/st_actions.c:216,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/fencing/st_actions.c:210,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_actions.c:217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - action
    argTypes:
    - stonith_action_t*
    constantsTouched: []
    func_position:
      end: 219
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 219
    functionName: stonith__destroy_action
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - free
    - services_action_free
    - pcmk__reset_result
    linkageType: ''
    returnType: void
    signature: 'void stonith__destroy_action(stonith_action_t *action) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - action
    argTypes:
    - stonith_action_t*
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: stonith__action_result
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: pcmk__action_result_t*
    signature: 'pcmk__action_result_t *stonith__action_result(stonith_action_t *action) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_actions.c:427,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/fencing/st_actions.c:438,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/fencing/st_actions.c:434,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/fencing/st_actions.c:437,1
    - Dst: stonith__result2rc
      Src: /src/pacemaker/lib/fencing/st_actions.c:434,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_actions.c:439,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/fencing/st_actions.c:440,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/fencing/st_actions.c:446,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - xml
    - result
    argTypes:
    - xmlNode*
    - pcmk__action_result_t*
    constantsTouched: []
    func_position:
      end: 447
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 447
    functionName: stonith__xe_set_result
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_xml_add
    - stonith__result2rc
    - pcmk_rc2legacy
    - crm_xml_add_int
    linkageType: ''
    returnType: void
    signature: 'void stonith__xe_set_result(xmlNode *xml, const pcmk__action_result_t
      *result) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_actions.c:489,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/fencing/st_actions.c:491,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/fencing/st_actions.c:492,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/fencing/st_actions.c:496,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/fencing/st_actions.c:495,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/fencing/st_actions.c:504,1
    - Dst: stonith__legacy2status
      Src: /src/pacemaker/lib/fencing/st_actions.c:508,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/fencing/st_actions.c:509,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/lib/fencing/st_actions.c:517,1
    - Dst: pcmk__set_result_output
      Src: /src/pacemaker/lib/fencing/st_actions.c:518,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - xml
    - result
    argTypes:
    - xmlNode*
    - pcmk__action_result_t*
    constantsTouched: []
    func_position:
      end: 519
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 519
    functionName: stonith__xe_get_result
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - stonith__legacy2status
    - pcmk__set_result_output
    - CRM_CHECK
    - pcmk_strerror
    - crm_element_value
    - crm_element_value_copy
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'void stonith__xe_get_result(const xmlNode *xml, pcmk__action_result_t
      *result) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: set_result_from_svc_action
      Src: /src/pacemaker/lib/fencing/st_actions.c:526,1
    - Dst: internal_stonith_action_execute
      Src: /src/pacemaker/lib/fencing/st_actions.c:533,1
    - Dst: update_remaining_timeout
      Src: /src/pacemaker/lib/fencing/st_actions.c:531,1
    - Dst: log_action
      Src: /src/pacemaker/lib/fencing/st_actions.c:528,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/lib/fencing/st_actions.c:530,1
    - Dst: stonith__destroy_action
      Src: /src/pacemaker/lib/fencing/st_actions.c:544,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - svc_action
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 545
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 545
    functionName: stonith_action_async_done
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached:
    - internal_stonith_action_execute
    - pcmk__result_ok
    - update_remaining_timeout
    - stonith__destroy_action
    - log_action
    - set_result_from_svc_action
    linkageType: ''
    returnType: void
    signature: 'static void stonith_action_async_done(svc_action_t *svc_action) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_actions.c:129,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/fencing/st_actions.c:131,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/fencing/st_actions.c:140,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/fencing/st_actions.c:137,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/fencing/st_actions.c:138,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/fencing/st_actions.c:141,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/fencing/st_actions.c:147,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/fencing/st_actions.c:158,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/fencing/st_actions.c:161,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_actions.c:167,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/fencing/st_actions.c:179,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_actions.c:168,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/fencing/st_actions.c:185,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/fencing/st_actions.c:186,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/fencing/st_actions.c:192,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/fencing/st_actions.c:170,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/fencing/st_actions.c:184,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/fencing/st_actions.c:171,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 48
    argCount: 6
    argNames:
    - agent
    - action
    - target
    - device_args
    - port_map
    - default_host_arg
    argTypes:
    - char*
    - char*
    - char*
    - GHashTable*
    - GHashTable*
    - char*
    constantsTouched: []
    func_position:
      end: 196
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 196
    functionName: make_args
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached:
    - crm_debug
    - g_hash_table_foreach
    - CRM_CHECK
    - pcmk__s
    - g_hash_table_lookup
    - pcmk__insert_dup
    - pcmk__strkey_table
    - pcmk__str_eq
    - snprintf
    linkageType: ''
    returnType: GHashTable*
    signature: 'static GHashTable *make_args(const char *agent, const char *action,
      const char *target, GHashTable *device_args, GHashTable *port_map, const char
      *default_host_arg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: internal_stonith_action_execute
      Src: /src/pacemaker/lib/fencing/st_actions.c:693,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 9
    argCount: 4
    argNames:
    - action
    - userdata
    - (*done)
    - (*fork_cb)
    argTypes:
    - stonith_action_t*
    - void*
    - void
    - void
    constantsTouched: []
    func_position:
      end: 694
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 694
    functionName: stonith__execute_async
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached:
    - internal_stonith_action_execute
    linkageType: ''
    returnType: int
    signature: 'int stonith__execute_async(stonith_action_t * action, void *userdata,
      void (*done) (int pid, const pcmk__action_result_t *result, void *user_data),
      void (*fork_cb) (int pid, void *user_data)) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/fencing/st_actions.c:257,1
    - Dst: make_args
      Src: /src/pacemaker/lib/fencing/st_actions.c:259,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/fencing/st_actions.c:262,1
    - Dst: strdup
      Src: /src/pacemaker/lib/fencing/st_actions.c:263,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/fencing/st_actions.c:261,1
    - Dst: strdup
      Src: /src/pacemaker/lib/fencing/st_actions.c:264,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/lib/fencing/st_actions.c:268,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/fencing/st_actions.c:275,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/fencing/st_actions.c:276,1
    - Dst: atoi
      Src: /src/pacemaker/lib/fencing/st_actions.c:279,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 7
    argNames:
    - agent
    - action_name
    - target
    - timeout_sec
    - device_args
    - port_map
    - default_host_arg
    argTypes:
    - char*
    - char*
    - char*
    - int
    - GHashTable*
    - GHashTable*
    - char*
    constantsTouched: []
    func_position:
      end: 284
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 284
    functionName: stonith__action_create
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__set_result
    - atoi
    - pcmk__s
    - make_args
    - g_hash_table_lookup
    - pcmk__assert_alloc
    - strdup
    - snprintf
    linkageType: ''
    returnType: stonith_action_t*
    signature: 'stonith_action_t *stonith__action_create(const char *agent, const
      char *action_name, const char *target, int timeout_sec, GHashTable *device_args,
      GHashTable *port_map, const char *default_host_arg) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/fencing/st_actions.c:615,1
    - Dst: time
      Src: /src/pacemaker/lib/fencing/st_actions.c:626,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/lib/fencing/st_actions.c:619,1
    - Dst: stonith_action_to_svc
      Src: /src/pacemaker/lib/fencing/st_actions.c:636,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/fencing/st_actions.c:629,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/lib/fencing/st_actions.c:644,1
    - Dst: sleep
      Src: /src/pacemaker/lib/fencing/st_actions.c:646,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/fencing/st_actions.c:651,1
    - Dst: services_action_async_fork_notify
      Src: /src/pacemaker/lib/fencing/st_actions.c:651,1
    - Dst: services_action_sync
      Src: /src/pacemaker/lib/fencing/st_actions.c:656,1
    - Dst: services_action_free
      Src: /src/pacemaker/lib/fencing/st_actions.c:662,1
    - Dst: set_result_from_svc_action
      Src: /src/pacemaker/lib/fencing/st_actions.c:660,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - action
    argTypes:
    - stonith_action_t*
    constantsTouched: []
    func_position:
      end: 664
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 664
    functionName: internal_stonith_action_execute
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - sleep
    - CRM_CHECK
    - services_action_free
    - services_action_sync
    - CRM_LOG_ASSERT
    - time
    - stonith_action_to_svc
    - pcmk__reset_result
    - services_action_async_fork_notify
    - crm_info
    - set_result_from_svc_action
    linkageType: ''
    returnType: int
    signature: 'static int internal_stonith_action_execute(stonith_action_t * action) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/lib/fencing/st_actions.c:289,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/fencing/st_actions.c:292,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - action
    argTypes:
    - stonith_action_t*
    constantsTouched: []
    func_position:
      end: 304
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 304
    functionName: update_remaining_timeout
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached:
    - crm_info
    - time
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean update_remaining_timeout(stonith_action_t * action) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_actions.c:580,1
    - Dst: services_action_free
      Src: /src/pacemaker/lib/fencing/st_actions.c:586,1
    - Dst: free
      Src: /src/pacemaker/lib/fencing/st_actions.c:583,1
    - Dst: set_result_from_svc_action
      Src: /src/pacemaker/lib/fencing/st_actions.c:585,1
    - Dst: services_action_create_generic
      Src: /src/pacemaker/lib/fencing/st_actions.c:581,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/fencing/st_actions.c:591,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/fencing/st_actions.c:592,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/fencing/st_actions.c:595,1
    - Dst: pcmk__set_flags_as
      Src: /src/pacemaker/lib/fencing/st_actions.c:599,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - action
    argTypes:
    - stonith_action_t*
    constantsTouched: []
    func_position:
      end: 606
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 606
    functionName: stonith_action_to_svc
    functionSourceFile: /src/pacemaker/lib/fencing/st_actions.c
    functionUses: []
    functionsReached:
    - services_action_create_generic
    - services_action_free
    - pcmk__set_flags_as
    - crm_strdup_printf
    - pcmk__str_copy
    - free
    - set_result_from_svc_action
    linkageType: ''
    returnType: svc_action_t*
    signature: 'static svc_action_t *stonith_action_to_svc(stonith_action_t *action) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:48,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:49,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - id
    - xml
    argTypes:
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: add_node_to_xml_by_id
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *add_node_to_xml_by_id(const char *id, xmlNode *xml) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:143,1
    - Dst: add_node_to_xml_by_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:150,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:149,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:146,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:152,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:156,1
    - Dst: pcmk__is_fencing_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:159,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:160,1
    - Dst: add_node_to_xml_by_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:161,1
    - Dst: pe_foreach_guest_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:162,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:182,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:183,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:190,1
    - Dst: add_node_to_xml_by_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:191,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:169,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:167,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 41
    argCount: 2
    argNames:
    - xml
    - action
    argTypes:
    - xmlNode*
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 194
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 194
    functionName: add_downed_nodes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - CRM_CHECK
    - g_hash_table_lookup
    - pcmk__is_fencing_action
    - add_node_to_xml_by_id
    - pcmk__str_eq
    - pcmk_is_set
    - pe_foreach_guest_node
    linkageType: ''
    returnType: void
    signature: 'static void add_downed_nodes(xmlNode *xml, const pcmk_action_t *action) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:503,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:498,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:514,1
    - Dst: pcmk__sched_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:542,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:535,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:558,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:560,1
    - Dst: pcmk__sched_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:571,1
    - Dst: pcmk__log_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:575,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:515,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:524,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:553,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:555,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:551,1
    - Dst: pcmk__sched_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:563,1
    - Dst: pcmk__log_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:567,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:497,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:505,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:525,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:536,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:550,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:556,1
    - Dst: pcmk__log_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:546,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:504,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:526,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 1
    argNames:
    - action
    argTypes:
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 579
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 579
    functionName: should_add_action_to_graph
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - pcmk__str_eq
    - pcmk__strcase_any_of
    - pcmk__log_action
    - pcmk__node_name
    - pcmk_is_set
    - pcmk__is_guest_or_bundle_node
    - pcmk__sched_err
    - crm_trace
    linkageType: ''
    returnType: bool
    signature: 'static bool should_add_action_to_graph(pcmk_action_t *action) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:898,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:903,1
    - Dst: should_add_action_to_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:904,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:900,1
    - Dst: pcmk__deduplicate_action_inputs
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:899,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:907,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:909,1
    - Dst: create_graph_synapse
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:914,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:915,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:916,1
    - Dst: create_graph_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:927,1
    - Dst: create_graph_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:918,1
    - Dst: should_add_input_to_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:923,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:924,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 930
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 930
    functionName: add_action_to_graph
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - create_graph_synapse
    - should_add_input_to_graph
    - create_graph_action
    - pcmk__deduplicate_action_inputs
    - pcmk__set_action_flags
    - pcmk_is_set
    - should_add_action_to_graph
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void add_action_to_graph(gpointer data, gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_maintenance_nodes
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:123,1
    - Dst: get_pseudo_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:124,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: add_maintenance_update
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - add_maintenance_nodes
    - get_pseudo_op
    - pcmk__set_action_flags
    linkageType: ''
    returnType: void
    signature: 'static void add_maintenance_update(pcmk_scheduler_t *scheduler) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:414,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:419,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:420,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:447,1
    - Dst: add_maintenance_nodes
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:482,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:408,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:405,1
    - Dst: clone_op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:445,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:434,1
    - Dst: add_node_details
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:455,1
    - Dst: add_action_attributes
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:474,1
    - Dst: add_downed_nodes
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:478,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:403,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:411,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:416,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:435,1
    - Dst: pcmk__guint_from_hash
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:441,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:446,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:449,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:456,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:458,1
    - Dst: add_resource_details
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:470,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:406,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:422,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:423,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:427,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:431,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:451,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:467,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 4
    argNames:
    - parent
    - action
    - skip_details
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_action_t*
    - bool
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 484
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 484
    functionName: create_graph_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - clone_op_key
    - add_resource_details
    - pcmk__insert_dup
    - pcmk__guint_from_hash
    - crm_xml_add
    - pcmk__str_eq
    - add_node_details
    - add_action_attributes
    - pcmk_is_set
    - free
    - crm_xml_add_int
    - add_downed_nodes
    - add_maintenance_nodes
    - pcmk__str_any_of
    linkageType: ''
    returnType: void
    signature: 'static void create_graph_action(xmlNode *parent, pcmk_action_t *action,
      bool skip_details, const pcmk_scheduler_t *scheduler) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1019,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1022,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1027,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1051,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1053,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1090,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1092,1
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1018,1
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1021,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1043,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1042,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1035,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1066,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1080,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1081,1
    - Dst: crm_crit
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1095,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1106,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1024,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1031,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1045,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1037,1
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1034,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1040,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1054,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1083,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1088,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1014,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1016,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1028,1
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1039,1
    - Dst: add_maintenance_update
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1071,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1097,1
    - Dst: add_action_to_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:1103,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1107
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1107
    functionName: pcmk__create_graph
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - free
    - crm_log_xml_trace
    - pcmk__cluster_option
    - pcmk__xe_create
    - crm_strdup_printf
    - pcmk__node_name
    - pcmk_is_set
    - pcmk_rc_str
    - crm_crit
    - pcmk_any_flags_set
    - add_maintenance_update
    - pcmk__rsc_trace
    - add_action_to_graph
    - pcmk__str_eq
    - crm_xml_add_int
    - crm_warn
    - crm_trace
    - crm_xml_add
    - pcmk__scan_ll
    linkageType: ''
    returnType: void
    signature: 'void pcmk__create_graph(pcmk_scheduler_t *scheduler) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:84,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:96,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:99,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:90,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:94,1
    - Dst: add_node_to_xml_by_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:99,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:107,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 2
    argNames:
    - xml
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 110
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 110
    functionName: add_maintenance_nodes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - add_node_to_xml_by_id
    - pcmk__is_pacemaker_remote_node
    - pcmk_is_set
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int add_maintenance_nodes(xmlNode *xml, const pcmk_scheduler_t
      *scheduler) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:852,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:854,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:863,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - action
    - scheduler
    argTypes:
    - pcmk_action_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 866
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 866
    functionName: create_graph_synapse
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add_int
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *create_graph_synapse(const pcmk_action_t *action,
      pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_node_to_xml_by_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - node
    - xml
    argTypes:
    - pcmk_node_t*
    - void*
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: add_node_to_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - add_node_to_xml_by_id
    linkageType: ''
    returnType: void
    signature: 'static void add_node_to_xml(const pcmk_node_t *node, void *xml) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:618,1
    - Dst: ordering_can_change_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:625,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:633,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:648,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:678,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:679,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:658,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:649,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:689,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:730,1
    - Dst: action_node_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:754,1
    - Dst: should_add_action_to_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:743,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:626,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:634,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:690,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:699,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:700,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:721,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:744,1
    - Dst: action_runnable_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:755,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:734,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:624,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:640,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:641,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:657,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:733,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:739,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:751,1
    - Dst: action_type_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:752,1
    - Dst: action_optional_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:756,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:731,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:632,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:642,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:650,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:659,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:669,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:710,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:711,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:715,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:716,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:720,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:732,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:740,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 99
    argCount: 2
    argNames:
    - action
    - input
    argTypes:
    - pcmk_action_t*
    - pcmk__related_action_t*
    constantsTouched: []
    func_position:
      end: 758
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 758
    functionName: should_add_input_to_graph
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - ordering_can_change_actions
    - pcmk__ends_with
    - action_type_str
    - pcmk__str_eq
    - action_node_str
    - pcmk__same_node
    - pcmk__node_name
    - pcmk_is_set
    - pcmk__is_clone
    - action_runnable_str
    - crm_warn
    - action_optional_str
    - crm_trace
    - should_add_action_to_graph
    linkageType: ''
    returnType: bool
    signature: 'static bool should_add_input_to_graph(const pcmk_action_t *action,
      pcmk__related_action_t *input) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:778,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:802,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:779,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:794,1
    - Dst: should_add_input_to_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:789,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:804,1
    - Dst: pcmk__graph_has_loop
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:818,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:826,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:829,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 3
    argNames:
    - init_action
    - action
    - input
    argTypes:
    - pcmk_action_t*
    - pcmk_action_t*
    - pcmk__related_action_t*
    constantsTouched: []
    func_position:
      end: 837
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 837
    functionName: pcmk__graph_has_loop
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - should_add_input_to_graph
    - crm_debug
    - pcmk__set_action_flags
    - pcmk_is_set
    - pcmk__graph_has_loop
    - pcmk__clear_action_flags
    - crm_trace
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__graph_has_loop(const pcmk_action_t *init_action, const
      pcmk_action_t *action, pcmk__related_action_t *input) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:344,1
    - Dst: pcmk__substitute_remote_addr
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:354,1
    - Dst: pe_rsc_params
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:351,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:346,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:347,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:356,1
    - Dst: pe_rsc_params
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:360,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:362,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:365,1
    - Dst: pcmk__add_guest_meta_to_xml
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:374,1
    - Dst: pcmk__xe_sort_attrs
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:377,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 2
    argNames:
    - action
    - action_xml
    argTypes:
    - pcmk_action_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 378
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 378
    functionName: add_action_attributes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - g_hash_table_foreach
    - pcmk__substitute_remote_addr
    - pcmk__add_guest_meta_to_xml
    - crm_xml_add
    - pe_rsc_params
    - pcmk__xe_sort_attrs
    linkageType: ''
    returnType: void
    signature: 'static void add_action_attributes(pcmk_action_t *action, xmlNode *action_xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ordering
    argTypes:
    - pcmk__related_action_t*
    constantsTouched: []
    func_position:
      end: 596
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 596
    functionName: ordering_can_change_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    linkageType: ''
    returnType: bool
    signature: 'static bool ordering_can_change_actions(const pcmk__related_action_t
      *ordering) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__connection_host_for_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:231,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:234,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:236,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - action
    - xml
    argTypes:
    - pcmk_action_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 238
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 238
    functionName: add_node_details
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - crm_xml_add
    - pcmk__connection_host_for_action
    linkageType: ''
    returnType: void
    signature: 'static void add_node_details(const pcmk_action_t *action, xmlNode
      *xml) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:286,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:307,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:322,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:316,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:321,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:280,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:270,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:283,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:285,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:309,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:317,1
    - Dst: pcmk__action_locks_rsc_to_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:261,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:268,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:288,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:305,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:262,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:282,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:312,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:320,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - action
    - action_xml
    argTypes:
    - pcmk_action_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 325
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 325
    functionName: add_resource_details
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_debug
    - pcmk__action_locks_rsc_to_node
    - g_hash_table_lookup
    - crm_xml_add
    - pcmk__str_eq
    - PCMK__NELEM
    - pcmk_is_set
    - crm_xml_add_ll
    - pcmk__assert
    - pcmk__xe_id
    linkageType: ''
    returnType: void
    signature: 'static void add_resource_details(const pcmk_action_t *action, xmlNode
      *action_xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:982,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:987,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:984,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 996
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 996
    functionName: pcmk__add_rsc_actions_to_graph
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_list_foreach
    - pcmk__rsc_trace
    linkageType: ''
    returnType: void
    signature: 'void pcmk__add_rsc_actions_to_graph(pcmk_resource_t *rsc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:208,1
    - Dst: pcmk__notify_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:213,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:210,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:216,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:209,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - action
    - interval_ms
    argTypes:
    - pcmk_action_t*
    - guint
    constantsTouched: []
    func_position:
      end: 219
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 219
    functionName: clone_op_key
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - g_hash_table_lookup
    - pcmk__notify_key
    - pcmk__str_eq
    - pcmk__op_key
    linkageType: ''
    returnType: char*
    signature: 'static char *clone_op_key(const pcmk_action_t *action, guint interval_ms) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:945,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:947,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:960,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:952,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:954,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c:966,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - scheduler
    - filename
    argTypes:
    - pcmk_scheduler_t*
    - char*
    constantsTouched: []
    func_position:
      end: 969
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 969
    functionName: pcmk__log_transition_summary
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_producer.c
    functionUses: []
    functionsReached:
    - crm_warn
    - pcmk_is_set
    - crm_err
    - crm_notice
    linkageType: ''
    returnType: void
    signature: 'void pcmk__log_transition_summary(const pcmk_scheduler_t *scheduler,
      const char *filename) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:59,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:64,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:82,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:101,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:108,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:100,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:116,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:142,1
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:47,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:78,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:103,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:115,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:83,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:118,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:61,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:60,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:95,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:128,1
    - Dst: pcmk__condition_type
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:134,1
    - Dst: pcmk__evaluate_date_expression
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:136,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:63,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:79,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:80,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:106,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:121,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:133,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 3
    argNames:
    - scheduler
    - rule_id
    - error
    argTypes:
    - pcmk_scheduler_t*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 144
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 144
    functionName: eval_rule
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_rule.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pcmk__xpath_result
    - pcmk_find_cib_element
    - xmlXPathFreeObject
    - free
    - pcmk__xpath_num_results
    - pcmk__assert
    - pcmk__evaluate_date_expression
    - pcmk__xpath_search
    - pcmk__condition_type
    linkageType: ''
    returnType: int
    signature: 'static int eval_rule(pcmk_scheduler_t *scheduler, const char *rule_id,
      const char **error) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:201,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:209,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:206,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:209,1
    - Dst: pcmk__check_rules
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:208,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - xml
    - input
    - date
    - rule_ids
    argTypes:
    - xmlNodePtr*
    - xmlNodePtr
    - crm_time_t*
    - char**
    constantsTouched: []
    func_position:
      end: 211
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 211
    functionName: pcmk_check_rules
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_rule.c
    functionUses: []
    functionsReached:
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - pcmk__xml_output_finish
    - pcmk__check_rules
    - pcmk__register_lib_messages
    linkageType: ''
    returnType: int
    signature: 'int pcmk_check_rules(xmlNodePtr *xml, xmlNodePtr input, const crm_time_t
      *date, const char **rule_ids) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:166,1
    - Dst: eval_rule
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:180,1
    - Dst: pcmk__init_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:173,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_rule.c:189,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 4
    argNames:
    - out
    - input
    - date
    - rule_ids
    argTypes:
    - pcmk__output_t*
    - xmlNodePtr
    - crm_time_t*
    - char**
    constantsTouched: []
    func_position:
      end: 191
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 191
    functionName: pcmk__check_rules
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_rule.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - eval_rule
    - pcmk__init_scheduler
    - pcmk_free_scheduler
    linkageType: ''
    returnType: int
    signature: 'int pcmk__check_rules(pcmk__output_t *out, xmlNodePtr input, const
      crm_time_t *date, const char **rule_ids) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RC
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1827,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1836,1
    - Dst: CHECK_RC
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1843,1
    - Dst: PCMK__OUTPUT_SPACER_IF
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1882,1
    - Dst: CHECK_RC
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1894,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1906,1
    - Dst: CHECK_RC
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1877,1
    - Dst: stonith__first_matching_event
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1919,1
    - Dst: stonith__first_matching_event
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1930,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1812,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1851,1
    - Dst: CHECK_RC
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1863,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1868,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1885,1
    - Dst: stonith__first_matching_event
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1873,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1927,1
    - Dst: GINT_TO_POINTER
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1875,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1913,1
    - Dst: PCMK__OUTPUT_SPACER_IF
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1910,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1818,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1819,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1820,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1822,1
    - Dst: CHECK_RC
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1831,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1842,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1830,1
    - Dst: CHECK_RC
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1837,1
    - Dst: CHECK_RC
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1923,1
    - Dst: CHECK_RC
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1934,1
    - Dst: CHECK_RC
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1901,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1816,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1814,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1815,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1817,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1821,1
    - Dst: CHECK_RC
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1853,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1859,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1893,1
    - Dst: GINT_TO_POINTER
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1921,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1900,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1916,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 106
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1942
      start: 1809
    functionDepth: 0
    functionLinenumber: 1809
    functionLinenumberEnd: 1942
    functionName: pcmk__cluster_status_text
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - crm_exit_str
    - stonith__first_matching_event
    - va_arg
    - CHECK_RC
    - pcmk_is_set
    - GINT_TO_POINTER
    - PCMK__OUTPUT_SPACER_IF
    linkageType: ''
    returnType: int
    signature: 'int pcmk__cluster_status_text(pcmk__output_t *out, va_list args) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:112,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:113,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:153,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:170,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:180,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:184,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:186,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:196,1
    - Dst: strlen
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:209,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:216,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:190,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:195,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:221,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:109,1
    - Dst: strlen
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:133,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:154,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:160,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:156,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:174,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:176,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:197,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:204,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:205,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:222,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:228,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:230,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:111,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:143,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:164,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:166,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:175,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:190,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:191,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:203,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:215,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:219,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:231,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:110,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:114,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:126,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:160,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:165,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:155,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:170,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:180,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:184,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:185,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:198,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:202,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:206,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 120
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 233
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 233
    functionName: rsc_action_item
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - strdup
    - pcmk__s
    - crm_strdup_printf
    - pcmk__same_node
    - va_arg
    - pcmk__node_name
    - pcmk_is_set
    - free
    - pcmk__assert
    - strlen
    - pcmk_role_text
    linkageType: ''
    returnType: int
    signature: 'static int rsc_action_item(pcmk__output_t *out, va_list args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:430,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:443,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:435,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:448,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:431,1
    - Dst: colocations_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:449,1
    - Dst: colocations_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:453,1
    - Dst: do_locations_list_xml
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:454,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 463
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 463
    functionName: rsc_is_colocated_with_list_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - do_locations_list_xml
    - pcmk__set_rsc_flags
    - va_arg
    - pcmk_is_set
    - colocations_xml_node
    linkageType: ''
    returnType: int
    signature: 'static int rsc_is_colocated_with_list_xml(pcmk__output_t *out, va_list
      args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:519,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:524,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:532,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:520,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:537,1
    - Dst: colocations_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:538,1
    - Dst: colocations_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:542,1
    - Dst: do_locations_list_xml
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:543,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 552
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 552
    functionName: rscs_colocated_with_list_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - do_locations_list_xml
    - pcmk__set_rsc_flags
    - va_arg
    - pcmk_is_set
    - colocations_xml_node
    linkageType: ''
    returnType: int
    signature: 'static int rscs_colocated_with_list_xml(pcmk__output_t *out, va_list
      args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:595,1
    - Dst: pcmk__unpack_constraints
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:599,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:597,1
    - Dst: uber_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:603,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:596,1
    - Dst: pe__clear_resource_flags_on_all
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:608,1
    - Dst: pe__clear_resource_flags_on_all
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:612,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 616
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 616
    functionName: locations_and_colocations
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pe__clear_resource_flags_on_all
    - pcmk__unpack_constraints
    - uber_parent
    linkageType: ''
    returnType: int
    signature: 'static int locations_and_colocations(pcmk__output_t *out, va_list
      args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:952,1
    - Dst: crmadmin_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:948,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:951,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:950,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:953,1
    - Dst: pcmk__formatted_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:955,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:955,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 958
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 958
    functionName: crmadmin_node_text
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__formatted_printf
    - pcmk__s
    - crmadmin_node
    linkageType: ''
    returnType: int
    signature: 'static int crmadmin_node_text(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1560,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1570
      start: 1557
    functionDepth: 0
    functionLinenumber: 1557
    functionLinenumberEnd: 1570
    functionName: inject_spec_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    linkageType: ''
    returnType: int
    signature: 'static int inject_spec_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1576,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1577,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1594
      start: 1573
    functionDepth: 0
    functionLinenumber: 1573
    functionLinenumberEnd: 1594
    functionName: inject_modify_config
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int inject_modify_config(pcmk__output_t *out, va_list args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1600,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1612,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1609,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1601,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1616,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1619,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1621
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1621
    functionName: inject_modify_config_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - crm_xml_add
    - pcmk__output_xml_pop_parent
    - pcmk__output_xml_create_parent
    linkageType: ''
    returnType: int
    signature: 'static int inject_modify_config_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1627,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1634,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1628,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1637,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1640,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1646
      start: 1624
    functionDepth: 0
    functionLinenumber: 1624
    functionLinenumberEnd: 1646
    functionName: inject_modify_node
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__str_eq
    linkageType: ''
    returnType: int
    signature: 'static int inject_modify_node(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1652,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1659,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1653,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1664
      start: 1649
    functionDepth: 0
    functionLinenumber: 1649
    functionLinenumberEnd: 1664
    functionName: inject_modify_node_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    linkageType: ''
    returnType: int
    signature: 'static int inject_modify_node_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:983,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:984,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:986,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:985,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:987,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:994,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:996,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:997,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:999,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1010,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1031
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 1031
    functionName: digests_text
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pcmk__str_eq
    - va_arg
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: 'static int digests_text(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1670,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1671,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1677,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1684
      start: 1667
    functionDepth: 0
    functionLinenumber: 1667
    functionLinenumberEnd: 1684
    functionName: inject_modify_ticket
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__str_eq
    linkageType: ''
    returnType: int
    signature: 'static int inject_modify_ticket(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1724,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1725,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1733,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1737,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1741
      start: 1721
    functionDepth: 0
    functionLinenumber: 1721
    functionLinenumberEnd: 1741
    functionName: inject_pseudo_action_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    - crm_xml_add
    linkageType: ''
    returnType: int
    signature: 'static int inject_pseudo_action_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1748,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1750,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1749,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1766
      start: 1745
    functionDepth: 0
    functionLinenumber: 1745
    functionLinenumberEnd: 1766
    functionName: inject_rsc_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int inject_rsc_action(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2329
      start: 2325
    functionDepth: 0
    functionLinenumber: 2325
    functionLinenumberEnd: 2329
    functionName: result_code_none
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int result_code_none(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2421,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2422,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2433,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2432,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2423,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2435,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2439,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2440,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2443
      start: 2418
    functionDepth: 0
    functionLinenumber: 2418
    functionLinenumberEnd: 2443
    functionName: ticket_attribute_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    - pcmk__output_xml_pop_parent
    - pcmk__output_xml_create_parent
    linkageType: ''
    returnType: int
    signature: 'static int ticket_attribute_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2169,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2174,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2203,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2220,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2220,1
    - Dst: g_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2225,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2170,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2198,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2213,1
    - Dst: KV_PAIR
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2208,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2218,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2168,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2171,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2173,1
    - Dst: KV_PAIR
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2204,1
    - Dst: KV_PAIR
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2211,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2226,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2172,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2196,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2207,1
    - Dst: pcmk__xml_escape
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2199,1
    - Dst: KV_PAIR
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2214,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2218,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2228
      start: 2165
    functionDepth: 0
    functionLinenumber: 2165
    functionLinenumberEnd: 2228
    functionName: attribute_default
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - KV_PAIR
    - pcmk__s
    - pcmk__str_empty
    - pcmk__xml_needs_escape
    - va_arg
    - pcmk__xml_escape
    - g_string_sized_new
    - g_free
    - g_string_free
    - pcmk__g_strcat
    linkageType: ''
    returnType: int
    signature: 'static int attribute_default(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2449,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2472,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2471,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2475,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2477,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2479,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2481,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2484,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2488,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2486,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2492
      start: 2446
    functionDepth: 0
    functionLinenumber: 2446
    functionLinenumberEnd: 2492
    functionName: ticket_constraints_default
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - va_arg
    - pcmk__xe_is
    - g_string_sized_new
    - g_string_free
    - pcmk__xe_next
    - pcmk__xml_string
    linkageType: ''
    returnType: int
    signature: 'static int ticket_constraints_default(pcmk__output_t *out, va_list
      args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1326,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1327,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1335,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1328,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1339
      start: 1323
    functionDepth: 0
    functionLinenumber: 1323
    functionLinenumberEnd: 1339
    functionName: node_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - crm_notice
    linkageType: ''
    returnType: int
    signature: 'static int node_action(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:915,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:917,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:918,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 921
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 921
    functionName: dc_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    - pcmk__s
    linkageType: ''
    returnType: int
    signature: 'static int dc_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1038,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1040,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1042,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1040,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1041,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 4
    argNames:
    - parent
    - type
    - digest
    - digest_source
    argTypes:
    - xmlNode*
    - char*
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1044
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1044
    functionName: add_digest_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - pcmk__xml_copy
    - pcmk__s
    linkageType: ''
    returnType: void
    signature: 'static void add_digest_xml(xmlNode *parent, const char *type, const
      char *digest, xmlNode *digest_source) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2603,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2604,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - node
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 2606
      start: 2597
    functionDepth: 0
    functionLinenumber: 2597
    functionLinenumberEnd: 2606
    functionName: add_ticket_element
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk__xe_copy_attrs
    linkageType: ''
    returnType: int
    signature: 'static int add_ticket_element(xmlNode *node, void *userdata) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1554
      start: 1543
    functionDepth: 0
    functionLinenumber: 1543
    functionLinenumberEnd: 1554
    functionName: inject_spec
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int inject_spec(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:654,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:655,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:656,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:657,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:660,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:661,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:662,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 663
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 663
    functionName: health
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__s
    linkageType: ''
    returnType: int
    signature: 'static int health(pcmk__output_t *out, va_list args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:379,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:384,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:380,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:398,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:392,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:401,1
    - Dst: colocations_header
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:407,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:409,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:423,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 425
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 425
    functionName: rsc_is_colocated_with_list
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__set_rsc_flags
    - colocations_header
    - PCMK__OUTPUT_LIST_FOOTER
    - va_arg
    - pcmk_is_set
    - free
    - PCMK__OUTPUT_LIST_HEADER
    linkageType: ''
    returnType: int
    signature: 'static int rsc_is_colocated_with_list(pcmk__output_t *out, va_list
      args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:468,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:469,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:487,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:481,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:473,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:490,1
    - Dst: colocations_header
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:496,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:498,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:512,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 514
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 514
    functionName: rscs_colocated_with_list
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__set_rsc_flags
    - colocations_header
    - PCMK__OUTPUT_LIST_FOOTER
    - va_arg
    - pcmk_is_set
    - free
    - PCMK__OUTPUT_LIST_HEADER
    linkageType: ''
    returnType: int
    signature: 'static int rscs_colocated_with_list(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:557,1
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:571,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:574,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:573,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:579,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 581
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 581
    functionName: locations_list
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - PCMK__OUTPUT_LIST_FOOTER
    - va_arg
    - pcmk__node_name
    - pcmk_readable_score
    - PCMK__OUTPUT_LIST_HEADER
    linkageType: ''
    returnType: int
    signature: 'static int locations_list(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:692,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:693,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:697,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:695,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:694,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:697,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:698,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:699,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:700,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 703
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 703
    functionName: health_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    - pcmk__s
    linkageType: ''
    returnType: int
    signature: 'static int health_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pacemakerd_health
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:795,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:799,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:797,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:800,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:801,1
    - Dst: pcmk_pacemakerd_api_daemon_state_enum2text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:804,1
    - Dst: pcmk__formatted_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:806,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 809
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 809
    functionName: pacemakerd_health_text
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pacemakerd_health
    - pcmk__formatted_printf
    - pcmk_pacemakerd_api_daemon_state_enum2text
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int pacemakerd_health_text(pcmk__output_t *out, va_list args) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:751,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:755,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:754,1
    - Dst: pcmk__pcmkd_state_enum2friendly
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:769,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:753,1
    - Dst: pcmk__epoch2str
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:773,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:779,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:781,1
    - Dst: pcmk__output_create_html_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:782,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:784,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:785,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 787
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 787
    functionName: pacemakerd_health_html
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__pcmkd_state_enum2friendly
    - pcmk__output_create_html_node
    - pcmk__s
    - crm_strdup_printf
    - va_arg
    - free
    - pcmk__epoch2str
    linkageType: ''
    returnType: int
    signature: 'static int pacemakerd_health_html(pcmk__output_t *out, va_list args) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:710,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:713,1
    - Dst: pcmk__pcmkd_state_enum2friendly
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:728,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:714,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:712,1
    - Dst: pcmk__epoch2str
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:732,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:740,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:742,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 744
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 744
    functionName: pacemakerd_health
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__pcmkd_state_enum2friendly
    - pcmk__s
    - va_arg
    - free
    - pcmk__epoch2str
    linkageType: ''
    returnType: int
    signature: 'static int pacemakerd_health(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:855,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:856,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 863
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 863
    functionName: profile_default
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int profile_default(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:887,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:890,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 891
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 891
    functionName: dc
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__s
    linkageType: ''
    returnType: int
    signature: 'static int dc(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1479,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1480,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1486,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1491
      start: 1476
    functionDepth: 0
    functionLinenumber: 1476
    functionLinenumberEnd: 1491
    functionName: inject_fencing_action_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    linkageType: ''
    returnType: int
    signature: 'static int inject_fencing_action_xml(pcmk__output_t *out, va_list
      args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2235,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2238,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2237,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2236,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2239,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2240,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2241,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2245,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2247,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2250,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2251,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2255,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2258,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2254,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2259,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2263
      start: 2232
    functionDepth: 0
    functionLinenumber: 2232
    functionLinenumberEnd: 2263
    functionName: attribute_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk__s
    - pcmk__str_empty
    - crm_xml_add
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int attribute_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2527,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2541,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2545,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2548,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2539,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2562,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2563,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2564,1
    - Dst: add_ticket_element_with_constraints
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2570,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2571,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2575,1
    - Dst: add_resource_element
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2574,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2573,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2579
      start: 2524
    functionDepth: 0
    functionLinenumber: 2524
    functionLinenumberEnd: 2579
    functionName: ticket_constraints_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_xml_create_parent
    - pcmk__xe_foreach_child
    - add_ticket_element_with_constraints
    - va_arg
    - pcmk__xe_is
    - add_resource_element
    - pcmk__output_xml_pop_parent
    linkageType: ''
    returnType: int
    signature: 'static int ticket_constraints_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2409,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2410,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2411,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2415
      start: 2406
    functionDepth: 0
    functionLinenumber: 2406
    functionLinenumberEnd: 2415
    functionName: ticket_attribute_default
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int ticket_attribute_default(pcmk__output_t *out, va_list args) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2335,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2337,1
    - Dst: pcmk__formatted_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2347,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2336,1
    - Dst: pcmk__formatted_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2350,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2361,1
    - Dst: strlen
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2370,1
    - Dst: pcmk_rc_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2370,1
    - Dst: QB_MAX
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2371,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2384
      start: 2332
    functionDepth: 0
    functionLinenumber: 2332
    functionLinenumberEnd: 2384
    functionName: result_code_text
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - QB_MAX
    - va_arg
    - pcmk__formatted_printf
    - pcmk_rc_name
    - strlen
    - snprintf
    linkageType: ''
    returnType: int
    signature: 'static int result_code_text(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2585,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2590,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2587,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2593,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2595
      start: 2582
    functionDepth: 0
    functionLinenumber: 2582
    functionLinenumberEnd: 2595
    functionName: ticket_state_default
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__xml_string
    - va_arg
    - g_string_free
    - g_string_sized_new
    linkageType: ''
    returnType: int
    signature: 'static int ticket_state_default(pcmk__output_t *out, va_list args) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2269,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2271,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2270,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2291
      start: 2266
    functionDepth: 0
    functionLinenumber: 2266
    functionLinenumberEnd: 2291
    functionName: rule_check_default
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int rule_check_default(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:44,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:49,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:55,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:52,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 3
    argNames:
    - out
    - rsc
    - cons
    argTypes:
    - pcmk__output_t*
    - pcmk_resource_t*
    - pcmk__colocation_t*
    constantsTouched: []
    func_position:
      end: 64
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 64
    functionName: colocations_xml_node
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk_readable_score
    - pcmk_role_text
    linkageType: ''
    returnType: void
    signature: 'static void colocations_xml_node(pcmk__output_t *out, pcmk_resource_t
      *rsc, pcmk__colocation_t *cons) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1051,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1053,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1054,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1055,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1052,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1057,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1060,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1061,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1063,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1064,1
    - Dst: add_digest_xml
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1073,1
    - Dst: add_digest_xml
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1071,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1067,1
    - Dst: add_digest_xml
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1069,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1077
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1077
    functionName: digests_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk__s
    - crm_strdup_printf
    - va_arg
    - free
    - add_digest_xml
    linkageType: ''
    returnType: int
    signature: 'static int digests_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1957,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1958,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1961,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1990,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1973,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1956,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1959,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1960,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2013,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1955,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1967,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1982,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1997,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2006,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1951,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1954,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1953,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2019,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2025
      start: 1948
    functionDepth: 0
    functionLinenumber: 1948
    functionLinenumberEnd: 2025
    functionName: cluster_status_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - va_arg
    - pcmk_is_set
    linkageType: ''
    returnType: int
    signature: 'static int cluster_status_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2297,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2301,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2301,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2299,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2298,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2303,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2307,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 11
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2322
      start: 2294
    functionDepth: 0
    functionLinenumber: 2294
    functionLinenumberEnd: 2322
    functionName: rule_check_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk__itoa
    - pcmk_rc2exitc
    - va_arg
    - free
    linkageType: ''
    returnType: int
    signature: 'static int rule_check_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2612,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2626,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2620,1
    - Dst: add_ticket_element
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2629,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2632,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2634
      start: 2609
    functionDepth: 0
    functionLinenumber: 2609
    functionLinenumberEnd: 2634
    functionName: ticket_state_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_xml_create_parent
    - pcmk__xe_foreach_child
    - add_ticket_element
    - va_arg
    - pcmk__output_xml_pop_parent
    linkageType: ''
    returnType: int
    signature: 'static int ticket_state_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1520,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1522,1
    - Dst: xmlGetNodePath
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1530,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1521,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1532,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1536,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1538,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1540
      start: 1517
    functionDepth: 0
    functionLinenumber: 1517
    functionLinenumberEnd: 1540
    functionName: inject_attr_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - va_arg
    - free
    - xmlGetNodePath
    - pcmk__xe_id
    linkageType: ''
    returnType: int
    signature: 'static int inject_attr_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:245,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:246,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:255,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:267,1
    - Dst: g_ascii_strdown
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:275,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:276,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:286,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:338,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:348,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:353,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:243,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:288,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:298,1
    - Dst: g_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:280,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:300,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:306,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:294,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:340,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:359,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:366,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:241,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:242,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:244,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:284,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:318,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:322,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:326,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:342,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:360,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:368,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:310,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:312,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:331,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:350,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:369,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 84
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 374
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 374
    functionName: rsc_action_item_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk_role_text
    - pcmk__output_create_xml_node
    - pcmk__xe_set_props
    - crm_xml_add
    - pcmk__same_node
    - pcmk__xe_set_bool_attr
    - va_arg
    - pcmk_is_set
    - g_free
    - pcmk__assert
    - g_ascii_strdown
    linkageType: ''
    returnType: int
    signature: 'static int rsc_action_item_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PCMK__OUTPUT_LIST_HEADER
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:83,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:91,1
    - Dst: PCMK__OUTPUT_LIST_FOOTER
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:97,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:86,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 3
    argNames:
    - out
    - rsc
    - add_header
    argTypes:
    - pcmk__output_t*
    - pcmk_resource_t*
    - bool
    constantsTouched: []
    func_position:
      end: 101
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 101
    functionName: do_locations_list_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - PCMK__OUTPUT_LIST_HEADER
    - pcmk__output_create_xml_node
    - pcmk_readable_score
    - PCMK__OUTPUT_LIST_FOOTER
    linkageType: ''
    returnType: int
    signature: 'static int do_locations_list_xml(pcmk__output_t *out, pcmk_resource_t
      *rsc, bool add_header) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:586,1
    - Dst: do_locations_list_xml
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 588
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 588
    functionName: locations_list_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - do_locations_list_xml
    linkageType: ''
    returnType: int
    signature: 'static int locations_list_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:816,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:819,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:818,1
    - Dst: pcmk_pacemakerd_api_daemon_state_enum2text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:833,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:820,1
    - Dst: pcmk__epoch2str
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:837,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:843,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:848,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 850
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 850
    functionName: pacemakerd_health_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk_pacemakerd_api_daemon_state_enum2text
    - va_arg
    - free
    - pcmk__epoch2str
    linkageType: ''
    returnType: int
    signature: 'static int pacemakerd_health_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:928,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:931,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:930,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:929,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:935,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:935,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:938,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:938,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 940
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 940
    functionName: crmadmin_node
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__s
    linkageType: ''
    returnType: int
    signature: 'static int crmadmin_node(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1345,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1347,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1358,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1352,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1346,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1362
      start: 1342
    functionDepth: 0
    functionLinenumber: 1342
    functionLinenumberEnd: 1362
    functionName: node_action_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    - crm_notice
    linkageType: ''
    returnType: int
    signature: 'static int node_action_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1389,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1390,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1392,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1393,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1391,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1394,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1396,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1398,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1403,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1404,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1408
      start: 1386
    functionDepth: 0
    functionLinenumber: 1386
    functionLinenumberEnd: 1408
    functionName: node_info_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - crm_strdup_printf
    - pcmk__btoa
    - va_arg
    - free
    linkageType: ''
    returnType: int
    signature: 'static int node_info_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1415,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1417,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1416,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1425,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1431
      start: 1412
    functionDepth: 0
    functionLinenumber: 1412
    functionLinenumberEnd: 1431
    functionName: inject_cluster_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__xe_id
    linkageType: ''
    returnType: int
    signature: 'static int inject_cluster_action(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1497,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1498,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1499,1
    - Dst: xmlGetNodePath
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1507,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1510,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1512,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1514
      start: 1494
    functionDepth: 0
    functionLinenumber: 1494
    functionLinenumberEnd: 1514
    functionName: inject_attr
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - free
    - pcmk__xe_id
    - xmlGetNodePath
    linkageType: ''
    returnType: int
    signature: 'static int inject_attr(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1708,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1716,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1709,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1718
      start: 1705
    functionDepth: 0
    functionLinenumber: 1705
    functionLinenumberEnd: 1718
    functionName: inject_pseudo_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__s
    linkageType: ''
    returnType: int
    signature: 'static int inject_pseudo_action(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2516,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2518,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 2
    argNames:
    - node
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 2521
      start: 2512
    functionDepth: 0
    functionLinenumber: 2512
    functionLinenumberEnd: 2521
    functionName: add_resource_element
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'static int add_resource_element(xmlNode *node, void *userdata) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1369,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1372,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1373,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1371,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1370,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1374,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1379,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1380,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1380,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1381,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1381,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1382
      start: 1366
    functionDepth: 0
    functionLinenumber: 1366
    functionLinenumberEnd: 1382
    functionName: node_info_default
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__btoa
    - pcmk__s
    linkageType: ''
    returnType: int
    signature: 'static int node_info_default(pcmk__output_t *out, va_list args) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2042,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2057,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2063,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2051,1
    - Dst: GINT_TO_POINTER
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2122,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2038,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2037,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2036,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2071,1
    - Dst: GINT_TO_POINTER
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2094,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2108,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2117,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2039,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2040,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2041,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2044,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2078,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2087,1
    - Dst: stonith__first_matching_event
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2092,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2127,1
    - Dst: stonith__first_matching_event
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2130,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2147,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2034,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2043,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2102,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2114,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2141,1
    - Dst: stonith__first_matching_event
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2120,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 80
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2153
      start: 2031
    functionDepth: 0
    functionLinenumber: 2031
    functionLinenumberEnd: 2153
    functionName: cluster_status_html
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - crm_exit_str
    - stonith__first_matching_event
    - va_arg
    - pcmk_is_set
    - GINT_TO_POINTER
    linkageType: ''
    returnType: int
    signature: 'static int cluster_status_html(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2498,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2506,1
    - Dst: pcmk__output_xml_add_node_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2503,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2502,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2500,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2507,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - node
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 2510
      start: 2494
    functionDepth: 0
    functionLinenumber: 2494
    functionLinenumberEnd: 2510
    functionName: add_ticket_element_with_constraints
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_xml_add_node_copy
    - pcmk__output_xml_create_parent
    - pcmk__output_xml_pop_parent
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'static int add_ticket_element_with_constraints(xmlNode *node, void
      *userdata) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2390,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2392,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2396,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2391,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2394,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2401,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 2403
      start: 2387
    functionDepth: 0
    functionLinenumber: 2387
    functionLinenumberEnd: 2403
    functionName: result_code_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - free
    - va_arg
    - pcmk__output_create_xml_node
    - pcmk__itoa
    linkageType: ''
    returnType: int
    signature: 'static int result_code_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:623,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:624,1
    - Dst: uber_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:631,1
    - Dst: pcmk__unpack_constraints
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:627,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:625,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:634,1
    - Dst: do_locations_list_xml
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:635,1
    - Dst: pe__clear_resource_flags_on_all
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:637,1
    - Dst: pe__clear_resource_flags_on_all
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:641,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:645,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 647
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 647
    functionName: locations_and_colocations_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - do_locations_list_xml
    - pe__clear_resource_flags_on_all
    - pcmk__output_xml_pop_parent
    - va_arg
    - pcmk__output_xml_create_parent
    - uber_parent
    - pcmk__unpack_constraints
    linkageType: ''
    returnType: int
    signature: 'static int locations_and_colocations_xml(pcmk__output_t *out, va_list
      args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:28,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:34,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:35,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:29,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:31,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - rsc
    - cons
    - dependents
    argTypes:
    - pcmk_resource_t*
    - pcmk__colocation_t*
    - bool
    constantsTouched: []
    func_position:
      end: 39
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 39
    functionName: colocations_header
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk_readable_score
    - pcmk_role_text
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'static char *colocations_header(pcmk_resource_t *rsc, pcmk__colocation_t
      *cons, bool dependents) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:673,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:674,1
    - Dst: health
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:671,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:675,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:676,1
    - Dst: pcmk__formatted_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:679,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 685
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 685
    functionName: health_text
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - health
    - pcmk__formatted_printf
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int health_text(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:868,1
    - Dst: pcmk__ftoa
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:872,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:869,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:870,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:874,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:879,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 881
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 881
    functionName: profile_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - free
    - va_arg
    - pcmk__output_create_xml_node
    - pcmk__ftoa
    linkageType: ''
    returnType: int
    signature: 'static int profile_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:903,1
    - Dst: dc
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:898,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:900,1
    - Dst: pcmk__formatted_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:903,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 909
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 909
    functionName: dc_text
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__formatted_printf
    - dc
    - pcmk__s
    linkageType: ''
    returnType: int
    signature: 'static int dc_text(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:965,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:970,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:966,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:968,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:967,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:971,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:972,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:973,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 976
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 976
    functionName: crmadmin_node_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    - pcmk__s
    linkageType: ''
    returnType: int
    signature: 'static int crmadmin_node_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1114,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1099,1
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1158,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1144,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1154,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1223,1
    - Dst: find_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1256,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1263,1
    - Dst: STOP_SANITY_ASSERT
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1286,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1277,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1116,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1118,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1125,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1135,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1162,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1169,1
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1177,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1189,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1194,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1259,1
    - Dst: STOP_SANITY_ASSERT
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1301,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1217,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1304,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1119,1
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1127,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1131,1
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1165,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1175,1
    - Dst: STOP_SANITY_ASSERT
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1235,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1239,1
    - Dst: stop_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1248,1
    - Dst: STOP_SANITY_ASSERT
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1264,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1293,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1280,1
    - Dst: STOP_SANITY_ASSERT
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1226,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1246,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1298,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1196,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1098,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1100,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1145,1
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1150,1
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1140,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1185,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1197,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1202,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1203,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1206,1
    - Dst: STOP_SANITY_ASSERT
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1291,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1201,1
    - Dst: STOP_SANITY_ASSERT
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1214,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1309,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 199
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1320
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1320
    functionName: rsc_action_default
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk_all_flags_set
    - g_list_free
    - CRM_CHECK
    - CRM_LOG_ASSERT
    - pcmk__same_node
    - va_arg
    - pcmk_is_set
    - pcmk__node_name
    - find_actions
    - free
    - pe__resource_actions
    - STOP_SANITY_ASSERT
    - stop_key
    - pcmk__rsc_info
    - pcmk_role_text
    linkageType: ''
    returnType: int
    signature: 'static int rsc_action_default(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1438,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1439,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1440,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1448,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1454,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1454,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1458
      start: 1435
    functionDepth: 0
    functionLinenumber: 1435
    functionLinenumberEnd: 1458
    functionName: inject_cluster_action_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    - pcmk__xe_id
    - crm_xml_add
    linkageType: ''
    returnType: int
    signature: 'static int inject_cluster_action_xml(pcmk__output_t *out, va_list
      args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1464,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1465,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1473
      start: 1461
    functionDepth: 0
    functionLinenumber: 1461
    functionLinenumberEnd: 1473
    functionName: inject_fencing_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    linkageType: ''
    returnType: int
    signature: 'static int inject_fencing_action(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1690,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1697,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1691,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1702
      start: 1687
    functionDepth: 0
    functionLinenumber: 1687
    functionLinenumberEnd: 1702
    functionName: inject_modify_ticket_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__output_create_xml_node
    linkageType: ''
    returnType: int
    signature: 'static int inject_modify_ticket_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:2709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 2710
      start: 2707
    functionDepth: 0
    functionLinenumber: 2707
    functionLinenumberEnd: 2710
    functionName: pcmk__register_lib_messages
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__register_messages
    linkageType: ''
    returnType: void
    signature: 'void pcmk__register_lib_messages(pcmk__output_t *out) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1773,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1774,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1776,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1775,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1784,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1791,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1793,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_output.c:1794,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 1798
      start: 1770
    functionDepth: 0
    functionLinenumber: 1770
    functionLinenumberEnd: 1798
    functionName: inject_rsc_action_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - pcmk__itoa
    - crm_xml_add
    - va_arg
    - free
    linkageType: ''
    returnType: int
    signature: 'static int inject_rsc_action_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_result_get_strings
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:42,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:52,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:49,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - out
    - code
    - type
    - flags
    argTypes:
    - pcmk__output_t*
    - int
    - enum pcmk_result_type
    - uint32_t
    constantsTouched: []
    func_position:
      end: 57
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 57
    functionName: pcmk__show_result_code
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_result_code.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk_result_get_strings
    linkageType: ''
    returnType: int
    signature: 'int pcmk__show_result_code(pcmk__output_t *out, int code, enum pcmk_result_type
      type, uint32_t flags) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:156,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:164,1
    - Dst: pcmk__list_result_codes
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:163,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:164,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - xml
    - type
    - flags
    argTypes:
    - xmlNodePtr*
    - enum pcmk_result_type
    - uint32_t
    constantsTouched: []
    func_position:
      end: 166
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 166
    functionName: pcmk_list_result_codes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_result_code.c
    functionUses: []
    functionsReached:
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - pcmk__xml_output_finish
    - pcmk__list_result_codes
    - pcmk__register_lib_messages
    linkageType: ''
    returnType: int
    signature: 'int pcmk_list_result_codes(xmlNodePtr *xml, enum pcmk_result_type
      type, uint32_t flags) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__result_bounds
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:104,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:128,1
    - Dst: pcmk_result_get_strings
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:125,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:135,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:138,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:139,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - out
    - type
    - flags
    argTypes:
    - pcmk__output_t*
    - enum pcmk_result_type
    - uint32_t
    constantsTouched: []
    func_position:
      end: 146
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 146
    functionName: pcmk__list_result_codes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_result_code.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - pcmk__result_bounds
    - pcmk_is_set
    - pcmk_result_get_strings
    linkageType: ''
    returnType: int
    signature: 'int pcmk__list_result_codes(pcmk__output_t *out, enum pcmk_result_type
      type, uint32_t flags) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:67,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:75,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:72,1
    - Dst: pcmk__show_result_code
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:74,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_result_code.c:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - xml
    - code
    - type
    - flags
    argTypes:
    - xmlNodePtr*
    - int
    - enum pcmk_result_type
    - uint32_t
    constantsTouched: []
    func_position:
      end: 77
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 77
    functionName: pcmk_show_result_code
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_result_code.c
    functionUses: []
    functionsReached:
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - pcmk__show_result_code
    - pcmk__xml_output_finish
    - pcmk__register_lib_messages
    linkageType: ''
    returnType: int
    signature: 'int pcmk_show_result_code(xmlNodePtr *xml, int code, enum pcmk_result_type
      type, uint32_t flags) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:550,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:548,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 3
    argNames:
    - clone
    - id
    - node
    argTypes:
    - pcmk_resource_t*
    - char*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 557
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 557
    functionName: anonymous_known_on
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - CRM_LOG_ASSERT
    linkageType: ''
    returnType: bool
    signature: 'static bool anonymous_known_on(const pcmk_resource_t *clone, const
      char *id, const pcmk_node_t *node) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: clone_strip
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:589,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:590,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:595,1
    - Dst: anonymous_known_on
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:607,1
    - Dst: find_active_anon_instance
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:598,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:618,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:626,1
    - Dst: pe_find_node_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:628,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:632,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:635,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:636,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:642,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:643,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:644,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:651,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:650,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:648,1
    - Dst: is_allowed
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:641,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 2
    argNames:
    - rsc
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 653
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 653
    functionName: promotion_score_applies
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - g_hash_table_lookup
    - pe_find_node_id
    - find_active_anon_instance
    - pcmk__node_name
    - pcmk_is_set
    - free
    - pe__const_top_resource
    - clone_strip
    - is_allowed
    - anonymous_known_on
    - g_hash_table_size
    linkageType: ''
    returnType: bool
    signature: 'static bool promotion_score_applies(const pcmk_resource_t *rsc, const
      pcmk_node_t *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:872,1
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:874,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:875,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:877,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 878
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 878
    functionName: set_next_role_unpromoted
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - g_list_foreach
    - pe__set_next_role
    - g_list_free
    linkageType: ''
    returnType: void
    signature: 'static void set_next_role_unpromoted(void *data, void *user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__colocation_node_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1231,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1240,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1239,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1233,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1236,1
    - Dst: pcmk__colocation_node_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1241,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1244,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1245,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1247,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1250,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1252,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1251,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 4
    argNames:
    - dependent
    - primary
    - primary_node
    - colocation
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - pcmk_node_t*
    - pcmk__colocation_t*
    constantsTouched: []
    func_position:
      end: 1255
      start: 1216
    functionDepth: 0
    functionLinenumber: 1216
    functionLinenumberEnd: 1255
    functionName: update_dependent_allowed_nodes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk__add_scores
    - pcmk__str_eq
    - pcmk__node_name
    - pcmk_readable_score
    - pcmk__colocation_node_attr
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void update_dependent_allowed_nodes(pcmk_resource_t *dependent,
      const pcmk_resource_t *primary, const pcmk_node_t *primary_node, const pcmk__colocation_t
      *colocation) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pe_find_node_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:138,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:149,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:142,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:150,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:145,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:151,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:152,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 3
    argNames:
    - child
    - location_constraints
    - chosen
    argTypes:
    - pcmk_resource_t*
    - GList*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 156
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 156
    functionName: apply_promoted_locations
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pe_find_node_id
    - pcmk__add_scores
    - pcmk__node_name
    - pcmk_readable_score
    linkageType: ''
    returnType: void
    signature: 'static void apply_promoted_locations(pcmk_resource_t *child, const
      GList *location_constraints, const pcmk_node_t *chosen) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 8
    argCount: 3
    argNames:
    - clone
    - id
    - node
    argTypes:
    - pcmk_resource_t*
    - char*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 524
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 524
    functionName: find_active_anon_instance
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'static pcmk_resource_t *find_active_anon_instance(const pcmk_resource_t
      *clone, const char *id, const pcmk_node_t *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:571,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - rsc
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 575
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 575
    functionName: is_allowed
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    linkageType: ''
    returnType: bool
    signature: 'static bool is_allowed(const pcmk_resource_t *rsc, const pcmk_node_t
      *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1096,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1102,1
    - Dst: sort_promotable_instances
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1103,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1106,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1097,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1107,1
    - Dst: pe__clone_promoted_max
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1109
      start: 1088
    functionDepth: 0
    functionLinenumber: 1088
    functionLinenumberEnd: 1109
    functionName: pcmk__set_instance_roles
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - pe__clone_promoted_max
    - g_list_foreach
    - sort_promotable_instances
    - pcmk__rsc_info
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void pcmk__set_instance_roles(pcmk_resource_t *rsc) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_for_role_change
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:90,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:102,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:105,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:109,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 3
    argNames:
    - rsc
    - demoting
    - promoting
    argTypes:
    - pcmk_resource_t*
    - bool*
    - bool*
    constantsTouched: []
    func_position:
      end: 114
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 114
    functionName: check_for_role_change
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk__str_eq
    - check_for_role_change
    linkageType: ''
    returnType: void
    signature: 'static void check_for_role_change(const pcmk_resource_t *rsc, bool
      *demoting, bool *promoting) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pe__set_clone_flag
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:453,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:457,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:468,1
    - Dst: pe__show_node_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:470,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:464,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:473,1
    - Dst: pcmk__with_this_colocations
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:477,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:478,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:479,1
    - Dst: pcmk__require_promotion_tickets
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:482,1
    - Dst: pe__show_node_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:484,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:494,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:492,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:488,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - clone
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 495
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 495
    functionName: sort_promotable_instances
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - pcmk__set_rsc_flags
    - pcmk__rsc_trace
    - g_list_free
    - pcmk__require_promotion_tickets
    - g_list_foreach
    - g_list_sort
    - pcmk__clear_rsc_flags
    - pe__set_clone_flag
    - pcmk_readable_score
    - pe__show_node_scores
    - pcmk__with_this_colocations
    linkageType: ''
    returnType: void
    signature: 'static void sort_promotable_instances(pcmk_resource_t *clone) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:709,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:745,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:754,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:758,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:757,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:771,1
    - Dst: promotion_attr_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:755,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:775,1
    - Dst: promotion_attr_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:742,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:740,1
    - Dst: promotion_score_applies
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:732,1
    - Dst: promotion_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:722,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:744,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:746,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:747,1
    - Dst: clone_strip
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:752,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:756,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:760,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:773,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 3
    argNames:
    - rsc
    - node
    - is_default
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - bool*
    constantsTouched: []
    func_position:
      end: 778
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 778
    functionName: promotion_score
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - promotion_attr_value
    - CRM_CHECK
    - pcmk__rsc_trace
    - pcmk__s
    - strcmp
    - pcmk__node_name
    - pcmk_is_set
    - free
    - promotion_score
    - pcmk_parse_score
    - clone_strip
    - promotion_score_applies
    - crm_warn
    linkageType: ''
    returnType: int
    signature: 'static int promotion_score(const pcmk_resource_t *rsc, const pcmk_node_t
      *node, bool *is_default) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1045,1
    - Dst: pe__clone_promoted_max
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1055,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1052,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1056,1
    - Dst: show_promotion_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1049,1
    - Dst: node_to_be_promoted_on
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1057,1
    - Dst: set_next_role_unpromoted
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1061,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1066,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1068,1
    - Dst: set_next_role_unpromoted
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1070,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1077,1
    - Dst: set_next_role_promoted
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1078,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1076,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1075,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 1080
      start: 1039
    functionDepth: 0
    functionLinenumber: 1039
    functionLinenumberEnd: 1080
    functionName: set_instance_role
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - show_promotion_score
    - pcmk__rsc_trace
    - pe__clone_promoted_max
    - node_to_be_promoted_on
    - set_next_role_unpromoted
    - crm_notice
    - pcmk_is_set
    - pcmk__node_name
    - set_next_role_promoted
    - pe__const_top_resource
    - pcmk__rsc_info
    - pcmk_role_text
    linkageType: ''
    returnType: void
    signature: 'static void set_instance_role(gpointer data, gpointer user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:414,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:404,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:407,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:410,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:417,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:420,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:424,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:429,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:432,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:438,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:434,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 440
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 440
    functionName: set_promotion_priority_to_node_score
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - g_hash_table_lookup
    - pcmk_is_set
    - pcmk_readable_score
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'static void set_promotion_priority_to_node_score(gpointer data, gpointer
      user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:674,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:678,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:682,1
    - Dst: pcmk_promotion_score_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:680,1
    - Dst: pcmk__node_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:681,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 3
    argNames:
    - rsc
    - node
    - name
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - char*
    constantsTouched: []
    func_position:
      end: 684
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 684
    functionName: promotion_attr_value
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - pcmk__node_attr
    - g_hash_table_lookup
    - pcmk_is_set
    - free
    - pcmk_promotion_score_name
    linkageType: ''
    returnType: char*
    signature: 'static const char *promotion_attr_value(const pcmk_resource_t *rsc,
      const pcmk_node_t *node, const char *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:854,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 855
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 855
    functionName: set_current_role_unpromoted
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - g_list_foreach
    linkageType: ''
    returnType: void
    signature: 'static void set_current_role_unpromoted(void *data, void *user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_compatible_instance
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1333,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1339,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1347,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1342,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1348,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1349,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1356,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - primary
    - dependent
    - colocation
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - pcmk__colocation_t*
    constantsTouched: []
    func_position:
      end: 1364
      start: 1325
    functionDepth: 0
    functionLinenumber: 1325
    functionLinenumberEnd: 1364
    functionName: pcmk__update_promotable_dependent_priority
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - pcmk__find_compatible_instance
    - pcmk__add_scores
    - pcmk__rsc_trace
    - pcmk_readable_score
    linkageType: ''
    returnType: int
    signature: 'int pcmk__update_promotable_dependent_priority(const pcmk_resource_t
      *primary, pcmk_resource_t *dependent, const pcmk__colocation_t *colocation) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:59,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:62,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:68,1
    - Dst: pe__clone_is_ordered
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - clone
    - child
    - last
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 71
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 71
    functionName: order_instance_demotion
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - pe__clone_is_ordered
    - pcmk__order_resource_actions
    linkageType: ''
    returnType: void
    signature: 'static void order_instance_demotion(pcmk_resource_t *clone, pcmk_resource_t
      *child, pcmk_resource_t *last) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:266,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:270,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:282,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:273,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:279,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:291,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:297,1
    - Dst: pcmk__cmp_instance
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:305,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 306
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 306
    functionName: cmp_promotable_instance
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__rsc_trace
    - pcmk__cmp_instance
    - pcmk_readable_score
    linkageType: ''
    returnType: gint
    signature: 'static gint cmp_promotable_instance(gconstpointer a, gconstpointer
      b) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__colocation_has_influence
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:374,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:381,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:378,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 386
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 386
    functionName: apply_coloc_to_primary
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk__colocation_has_influence
    - pcmk_readable_score
    linkageType: ''
    returnType: void
    signature: 'static void apply_coloc_to_primary(gpointer data, gpointer user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pe__set_clone_flag
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:789,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:804,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:805,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:803,1
    - Dst: promotion_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:812,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:814,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:817,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:820,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:821,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:822,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:827,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 836
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 836
    functionName: pcmk__add_promotion_scores
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk__add_scores
    - pcmk__node_available
    - pcmk__node_name
    - promotion_score
    - pe__set_clone_flag
    - pcmk_readable_score
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void pcmk__add_promotion_scores(pcmk_resource_t *rsc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:31,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:34,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:40,1
    - Dst: pe__clone_is_ordered
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:39,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - clone
    - child
    - last
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 44
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 44
    functionName: order_instance_promotion
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - pe__clone_is_ordered
    - pcmk__order_resource_actions
    linkageType: ''
    returnType: void
    signature: 'static void order_instance_promotion(pcmk_resource_t *clone, pcmk_resource_t
      *child, pcmk_resource_t *last) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:193,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:204,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:218,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:236,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:239,1
    - Dst: node_to_be_promoted_on
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:179,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:198,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:213,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:211,1
    - Dst: pe__clone_promoted_node_max
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:234,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:189,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:217,1
    - Dst: pcmk__sched_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:227,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:210,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:230,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:235,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:180,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:195,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:196,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:226,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 244
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 244
    functionName: node_to_be_promoted_on
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - pe__clone_promoted_node_max
    - pcmk__rsc_trace
    - g_hash_table_lookup
    - node_to_be_promoted_on
    - pcmk__node_available
    - crm_notice
    - pcmk_is_set
    - pcmk__node_name
    - pe__const_top_resource
    - pcmk__sched_err
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'static pcmk_node_t *node_to_be_promoted_on(const pcmk_resource_t *rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:330,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:343,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:338,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:332,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:345,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:347,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:349,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:352,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:353,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 354
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 354
    functionName: add_promotion_priority_to_node_score
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - g_hash_table_lookup
    - pcmk__add_scores
    - pcmk__node_name
    - pcmk_readable_score
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'static void add_promotion_priority_to_node_score(gpointer data, gpointer
      user_data) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:952,1
    - Dst: set_current_role_unpromoted
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:956,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:953,1
    - Dst: pcmk__list_of_multiple
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:962,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:963,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:966,1
    - Dst: promotion_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:979,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1004,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1022,1
    - Dst: pcmk__this_with_colocations
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1015,1
    - Dst: apply_promoted_locations
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1011,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1028,1
    - Dst: apply_promoted_locations
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1009,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1004,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 1030
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 1030
    functionName: set_instance_priority
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - g_list_free
    - pcmk__rsc_trace
    - CRM_CHECK
    - apply_promoted_locations
    - promotion_score
    - pcmk__this_with_colocations
    - set_current_role_unpromoted
    - pcmk__config_err
    - pcmk__list_of_multiple
    - crm_err
    - pcmk_role_text
    linkageType: ''
    returnType: void
    signature: 'static void set_instance_priority(gpointer data, gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - clone
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1154
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1154
    functionName: reset_instance_priorities
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void reset_instance_priorities(pcmk_resource_t *clone) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__promotable_restart_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1189,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1197,1
    - Dst: order_instance_promotion
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1201,1
    - Dst: order_instance_demotion
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1202,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - clone
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1205
      start: 1184
    functionDepth: 0
    functionLinenumber: 1184
    functionLinenumberEnd: 1205
    functionName: pcmk__order_promotable_instances
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - order_instance_promotion
    - pcmk__order_resource_actions
    - pcmk__promotable_restart_ordering
    - order_instance_demotion
    linkageType: ''
    returnType: void
    signature: 'void pcmk__order_promotable_instances(pcmk_resource_t *clone) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:893,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:895,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - void*
    - gpointer
    constantsTouched: []
    func_position:
      end: 896
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 896
    functionName: set_next_role_promoted
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - g_list_foreach
    - pe__set_next_role
    linkageType: ''
    returnType: void
    signature: 'static void set_next_role_promoted(void *data, gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:912,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:913,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:923,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:923,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:928,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:928,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:930,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - instance
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 933
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 933
    functionName: show_promotion_score
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_debug
    - pcmk__node_name
    - pcmk_is_set
    - pcmk_readable_score
    - pe__const_top_resource
    linkageType: ''
    returnType: void
    signature: 'static void show_promotion_score(pcmk_resource_t *instance) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_for_role_change
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1130,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 3
    argNames:
    - clone
    - any_promoting
    - any_demoting
    argTypes:
    - pcmk_resource_t*
    - bool*
    - bool*
    constantsTouched: []
    func_position:
      end: 1132
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1132
    functionName: create_promotable_instance_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - check_for_role_change
    linkageType: ''
    returnType: void
    signature: 'static void create_promotable_instance_actions(pcmk_resource_t *clone,
      bool *any_promoting, bool *any_demoting) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_promotable_instance_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1169,1
    - Dst: reset_instance_priorities
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1175,1
    - Dst: pe__create_promotable_pseudo_ops
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - clone
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1176
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1176
    functionName: pcmk__create_promotable_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - pe__create_promotable_pseudo_ops
    - reset_instance_priorities
    - create_promotable_instance_actions
    linkageType: ''
    returnType: void
    signature: 'void pcmk__create_promotable_actions(pcmk_resource_t *clone) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1305,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1290,1
    - Dst: update_dependent_allowed_nodes
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1288,1
    - Dst: pcmk__colocation_intersect_nodes
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1309,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c:1312,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 3
    argNames:
    - primary
    - dependent
    - colocation
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - pcmk__colocation_t*
    constantsTouched: []
    func_position:
      end: 1313
      start: 1264
    functionDepth: 0
    functionLinenumber: 1264
    functionLinenumberEnd: 1313
    functionName: pcmk__update_dependent_with_promotable
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_promotable.c
    functionUses: []
    functionsReached:
    - g_list_free
    - pcmk__rsc_trace
    - pcmk__colocation_intersect_nodes
    - g_list_prepend
    - update_dependent_allowed_nodes
    linkageType: ''
    returnType: void
    signature: 'void pcmk__update_dependent_with_promotable(const pcmk_resource_t
      *primary, pcmk_resource_t *dependent, const pcmk__colocation_t *colocation) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:41,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:48,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:65,1
    - Dst: pcmk__set_instance_roles
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:86,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:90,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:41,1
    - Dst: pcmk__add_promotion_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:56,1
    - Dst: pcmk__this_with_colocations
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:60,1
    - Dst: pcmk__with_this_colocations
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:72,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:74,1
    - Dst: pe__clone_max
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:82,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:85,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:43,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:49,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:52,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:55,1
    - Dst: pe__show_node_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:76,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:76,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:89,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:69,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:81,1
    - Dst: pcmk__assign_instances
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:82,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:73,1
    - Dst: pe__clone_node_max
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:83,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 3
    argNames:
    - rsc
    - prefer
    - stop_if_fail
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - bool
    constantsTouched: []
    func_position:
      end: 92
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 92
    functionName: pcmk__clone_assign
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_debug
    - pcmk__set_rsc_flags
    - pcmk__rsc_trace
    - g_list_free
    - g_list_foreach
    - g_list_sort
    - pcmk__set_instance_roles
    - pcmk__clear_rsc_flags
    - pcmk__add_promotion_scores
    - pcmk__is_clone
    - pcmk_is_set
    - pe__clone_max
    - pe__clone_node_max
    - pcmk__assign_instances
    - pe__show_node_scores
    - pcmk__assert
    - pcmk__this_with_colocations
    - pcmk__with_this_colocations
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'pcmk_node_t *pcmk__clone_assign(pcmk_resource_t *rsc, const pcmk_node_t
      *prefer, bool stop_if_fail) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:103,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:107,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:105,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:103,1
    - Dst: pcmk__create_instance_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:106,1
    - Dst: pcmk__create_promotable_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 110
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 110
    functionName: pcmk__clone_create_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk__create_promotable_actions
    - pcmk__is_clone
    - pcmk_is_set
    - pcmk__assert
    - pcmk__create_instance_actions
    linkageType: ''
    returnType: void
    signature: 'void pcmk__clone_create_actions(pcmk_resource_t *rsc) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:314,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:343,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:346,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:363,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:351,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:263,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:264,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:267,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:279,1
    - Dst: can_interleave
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:298,1
    - Dst: pcmk__colocation_intersect_nodes
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:349,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:264,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:266,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:282,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:305,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:319,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:274,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:276,1
    - Dst: pcmk__update_dependent_with_promotable
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:284,1
    - Dst: pcmk__assign_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:316,1
    - Dst: pcmk__update_promotable_dependent_priority
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:291,1
    - Dst: pcmk__find_compatible_instance
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:301,1
    - Dst: is_set_recursive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:342,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:344,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 64
    argCount: 4
    argNames:
    - dependent
    - primary
    - colocation
    - for_dependent
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - pcmk__colocation_t*
    - bool
    constantsTouched: []
    func_position:
      end: 366
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 366
    functionName: pcmk__clone_apply_coloc_score
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c
    functionUses: []
    functionsReached:
    - pcmk__is_clone
    - crm_notice
    - g_list_free
    - pcmk__update_promotable_dependent_priority
    - pcmk__node_name
    - pcmk_is_set
    - pcmk_readable_score
    - pcmk__assert
    - pcmk__rsc_debug
    - pcmk__rsc_trace
    - pcmk__update_dependent_with_promotable
    - pcmk__assign_resource
    - pcmk__find_compatible_instance
    - is_set_recursive
    - pcmk__add_scores
    - pcmk__colocation_intersect_nodes
    - g_list_prepend
    - can_interleave
    - pcmk__is_primitive
    linkageType: ''
    returnType: int
    signature: 'int pcmk__clone_apply_coloc_score(pcmk_resource_t *dependent, const
      pcmk_resource_t *primary, const pcmk__colocation_t *colocation, bool for_dependent) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:393,1
    - Dst: pcmk__add_this_with_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:396,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 3
    argNames:
    - rsc
    - orig_rsc
    - list
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - GList**
    constantsTouched: []
    func_position:
      end: 402
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 402
    functionName: pcmk__clone_with_colocations
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c
    functionUses: []
    functionsReached:
    - pcmk__add_this_with_list
    - CRM_CHECK
    linkageType: ''
    returnType: void
    signature: 'void pcmk__clone_with_colocations(const pcmk_resource_t *rsc, const
      pcmk_resource_t *orig_rsc, GList **list) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:432,1
    - Dst: pcmk__apply_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:434,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:432,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - rsc
    - location
    argTypes:
    - pcmk_resource_t*
    - pcmk__location_t*
    constantsTouched: []
    func_position:
      end: 443
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 443
    functionName: pcmk__clone_apply_location
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c
    functionUses: []
    functionsReached:
    - pcmk__is_clone
    - CRM_CHECK
    - pcmk__apply_location
    linkageType: ''
    returnType: void
    signature: 'void pcmk__clone_apply_location(pcmk_resource_t *rsc, pcmk__location_t
      *location) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:463,1
    - Dst: pe__create_clone_notifications
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:466,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:465,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:463,1
    - Dst: pcmk__add_rsc_actions_to_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:476,1
    - Dst: pe__free_clone_notification_data
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:477,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 478
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 478
    functionName: pcmk__clone_add_actions_to_graph
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c
    functionUses: []
    functionsReached:
    - pcmk__add_rsc_actions_to_graph
    - pe__free_clone_notification_data
    - g_list_foreach
    - pe__create_clone_notifications
    - pcmk__is_clone
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'void pcmk__clone_add_actions_to_graph(pcmk_resource_t *rsc) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rsc_probed_on
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:499,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:512,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:510,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:511,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 15
    argCount: 2
    argNames:
    - rsc
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 518
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 518
    functionName: rsc_probed_on
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c
    functionUses: []
    functionsReached:
    - rsc_probed_on
    - g_hash_table_iter_init
    - pcmk__same_node
    - g_hash_table_iter_next
    linkageType: ''
    returnType: bool
    signature: 'static bool rsc_probed_on(const pcmk_resource_t *rsc, const pcmk_node_t
      *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_probed_instance_on
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:556,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:567,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 2
    argNames:
    - clone
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 579
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 579
    functionName: probe_anonymous_clone
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c
    functionUses: []
    functionsReached:
    - find_probed_instance_on
    - pcmk__same_node
    linkageType: ''
    returnType: bool
    signature: 'static bool probe_anonymous_clone(pcmk_resource_t *clone, pcmk_node_t
      *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:646,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:646,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:650,1
    - Dst: pe__clone_promoted_node_max
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:666,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:670,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:684,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:653,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:661,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:664,1
    - Dst: pe__clone_node_max
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:661,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:656,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:658,1
    - Dst: pe__clone_promoted_max
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:665,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:668,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:673,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:679,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:649,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:649,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:652,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:669,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:672,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:685,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:648,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:653,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:654,1
    - Dst: pe__clone_max
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:657,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:662,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:660,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:657,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:674,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:680,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:681,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:683,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 2
    argNames:
    - rsc
    - xml
    argTypes:
    - pcmk_resource_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 687
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 687
    functionName: pcmk__clone_add_graph_meta
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c
    functionUses: []
    functionsReached:
    - pe__clone_promoted_node_max
    - pe__clone_promoted_max
    - crm_xml_add
    - pcmk__is_clone
    - pe__clone_node_max
    - free
    - pcmk_is_set
    - crm_meta_name
    - crm_xml_add_int
    - pcmk__assert
    - pcmk__flag_text
    - pe__clone_max
    linkageType: ''
    returnType: void
    signature: 'void pcmk__clone_add_graph_meta(const pcmk_resource_t *rsc, xmlNode
      *xml) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:123,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:128,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:140,1
    - Dst: pe__clone_is_ordered
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:148,1
    - Dst: pcmk__order_stops
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:186,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:173,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:131,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:125,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:139,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:191,1
    - Dst: pcmk__order_starts
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:165,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:123,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:134,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:143,1
    - Dst: pcmk__order_stops
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:172,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:167,1
    - Dst: pcmk__order_starts
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:184,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:154,1
    - Dst: pcmk__order_promotable_instances
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:192,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 194
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 194
    functionName: pcmk__clone_internal_constraints
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c
    functionUses: []
    functionsReached:
    - g_list_sort
    - pcmk__rsc_trace
    - pcmk__order_stops
    - pe__clone_is_ordered
    - pcmk__order_promotable_instances
    - pcmk__order_starts
    - pcmk__is_clone
    - pcmk_is_set
    - pcmk__assert
    - pcmk__order_resource_actions
    linkageType: ''
    returnType: void
    signature: 'void pcmk__clone_internal_constraints(pcmk_resource_t *rsc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:216,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:226,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:216,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - colocation
    argTypes:
    - pcmk__colocation_t*
    constantsTouched: []
    func_position:
      end: 233
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 233
    functionName: can_interleave
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c
    functionUses: []
    functionsReached:
    - pcmk__config_err
    - crm_is_true
    - g_hash_table_lookup
    linkageType: ''
    returnType: bool
    signature: 'static bool can_interleave(const pcmk__colocation_t *colocation) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:375,1
    - Dst: pcmk__add_with_this_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:378,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 3
    argNames:
    - rsc
    - orig_rsc
    - list
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - GList**
    constantsTouched: []
    func_position:
      end: 384
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 384
    functionName: pcmk__with_clone_colocations
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__add_with_this_list
    linkageType: ''
    returnType: void
    signature: 'void pcmk__with_clone_colocations(const pcmk_resource_t *rsc, const
      pcmk_resource_t *orig_rsc, GList **list) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:416,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:416,1
    - Dst: pcmk__collective_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:418,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - action
    - node
    argTypes:
    - pcmk_action_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 420
    functionName: pcmk__clone_action_flags
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__is_clone
    - pcmk__collective_action_flags
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t pcmk__clone_action_flags(pcmk_action_t *action, const pcmk_node_t
      *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 452
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 452
    functionName: call_action_flags
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void call_action_flags(gpointer data, gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rsc_probed_on
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:538,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 2
    argNames:
    - clone
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 543
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 543
    functionName: find_probed_instance_on
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c
    functionUses: []
    functionsReached:
    - rsc_probed_on
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'static pcmk_resource_t *find_probed_instance_on(const pcmk_resource_t
      *clone, const pcmk_node_t *node) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:593,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:595,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:605,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:593,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:614,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:617,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:618,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:623,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:625,1
    - Dst: pcmk__probe_resource_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:626,1
    - Dst: probe_anonymous_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:628,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - rsc
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 630
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 630
    functionName: pcmk__clone_create_probe
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c
    functionUses: []
    functionsReached:
    - g_list_sort
    - pcmk__rsc_trace
    - g_hash_table_lookup
    - g_hash_table_remove
    - pcmk__is_clone
    - pcmk_is_set
    - pcmk__node_name
    - probe_anonymous_clone
    - pcmk__assert
    - pcmk__probe_resource_list
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__clone_create_probe(pcmk_resource_t *rsc, pcmk_node_t *node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:698,1
    - Dst: g_list_find
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:719,1
    - Dst: g_list_find
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:710,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:698,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:701,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 32
    argCount: 4
    argNames:
    - rsc
    - orig_rsc
    - all_rscs
    - utilization
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - GList*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 737
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 737
    functionName: pcmk__clone_add_utilization
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__is_clone
    - pcmk_is_set
    - g_list_find
    linkageType: ''
    returnType: void
    signature: 'void pcmk__clone_add_utilization(const pcmk_resource_t *rsc, const
      pcmk_resource_t *orig_rsc, GList *all_rscs, GHashTable *utilization) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:743,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c:743,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 745
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 745
    functionName: pcmk__clone_shutdown_lock
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_clone.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__is_clone
    linkageType: ''
    returnType: void
    signature: 'void pcmk__clone_shutdown_lock(pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:30,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 3
    argNames:
    - action
    - source
    - target
    argTypes:
    - pcmk_action_t*
    - pcmk_node_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: add_migration_meta
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c
    functionUses: []
    functionsReached:
    - pcmk__insert_meta
    linkageType: ''
    returnType: void
    signature: 'static void add_migration_meta(pcmk_action_t *action, const pcmk_node_t
      *source, const pcmk_node_t *target) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:243,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:245,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - action
    - key
    argTypes:
    - pcmk_action_t*
    - char*
    constantsTouched: []
    func_position:
      end: 248
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 248
    functionName: task_from_action_or_key
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - parse_op_key
    linkageType: ''
    returnType: char*
    signature: 'static char *task_from_action_or_key(const pcmk_action_t *action,
      const char *key) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:162,1
    - Dst: stop_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:165,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:166,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 167
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 167
    functionName: pcmk__abort_dangling_migration
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c
    functionUses: []
    functionsReached:
    - stop_action
    - pcmk__node_name
    - pcmk__rsc_trace
    - pcmk__set_action_flags
    linkageType: ''
    returnType: void
    signature: 'void pcmk__abort_dangling_migration(void *data, void *user_data) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:278,1
    - Dst: is_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:272,1
    - Dst: task_from_action_or_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:284,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:288,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:296,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:323,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:324,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:299,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:313,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:336,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:379,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:346,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:362,1
    - Dst: pcmk__set_relation_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:329,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:402,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:366,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:345,1
    - Dst: is_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:271,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:277,1
    - Dst: task_from_action_or_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:285,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:287,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:295,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:335,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:317,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:314,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:349,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:355,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:393,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:401,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:354,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:390,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:383,1
    - Dst: pcmk__set_relation_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:306,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:380,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:339,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:372,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:389,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:371,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:363,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 76
    argCount: 1
    argNames:
    - order
    argTypes:
    - pcmk__action_relation_t*
    constantsTouched: []
    func_position:
      end: 403
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 403
    functionName: pcmk__order_migration_equivalents
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - pcmk__set_relation_flags
    - pcmk_is_set
    - free
    - is_parent
    - pcmk__op_key
    - task_from_action_or_key
    - pcmk__new_ordering
    linkageType: ''
    returnType: void
    signature: 'void pcmk__order_migration_equivalents(pcmk__action_relation_t *order) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:181,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:183,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:190,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:191,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:184,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:196,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:197,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:201,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:202,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:208,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:211,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:218,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:221,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - rsc
    - current
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 226
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 226
    functionName: pcmk__rsc_can_migrate
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c
    functionUses: []
    functionsReached:
    - pcmk__node_name
    - pcmk_is_set
    - CRM_CHECK
    - pcmk__rsc_trace
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__rsc_can_migrate(const pcmk_resource_t *rsc, const pcmk_node_t
      *current) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:89,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:80,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:76,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:79,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:84,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:92,1
    - Dst: add_migration_meta
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:144,1
    - Dst: start_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:57,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:61,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:101,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:109,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:109,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:117,1
    - Dst: add_migration_meta
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:125,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:139,1
    - Dst: stop_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:58,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:61,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:66,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:72,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:84,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:87,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:89,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:97,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:127,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:53,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:56,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:55,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:66,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:73,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:101,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:104,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:111,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:115,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c:115,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 2
    argNames:
    - rsc
    - current
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 145
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 145
    functionName: pcmk__create_migration_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_migration.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - start_action
    - pcmk__insert_meta
    - pcmk__set_action_flags
    - stop_action
    - pcmk__node_name
    - pcmk_is_set
    - custom_action
    - pcmk__op_key
    - add_migration_meta
    - pcmk__new_ordering
    linkageType: ''
    returnType: void
    signature: 'void pcmk__create_migration_actions(pcmk_resource_t *rsc, const pcmk_node_t
      *current) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:45,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:51,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:47,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:50,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:45,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:58,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:62,1
    - Dst: pe__show_node_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:66,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:66,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:77,1
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:85,1
    - Dst: pe__group_flag_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:89,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:87,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 3
    argNames:
    - rsc
    - prefer
    - stop_if_fail
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - bool
    constantsTouched: []
    func_position:
      end: 93
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 93
    functionName: pcmk__group_assign
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_debug
    - pcmk__set_rsc_flags
    - pcmk__rsc_trace
    - pcmk__clear_rsc_flags
    - pe__group_flag_is_set
    - pcmk_is_set
    - pe__show_node_scores
    - pcmk__assert
    - pcmk__is_group
    - pe__set_next_role
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'pcmk_node_t *pcmk__group_assign(pcmk_resource_t *rsc, const pcmk_node_t
      *prefer, bool stop_if_fail) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:214,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:228,1
    - Dst: pcmk__order_starts
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:267,1
    - Dst: pcmk__order_stops
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:306,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:194,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:220,1
    - Dst: pcmk__order_stops
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:270,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:235,1
    - Dst: pcmk__order_starts
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:242,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:206,1
    - Dst: pcmk__set_relation_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:187,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:209,1
    - Dst: pcmk__order_starts
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:256,1
    - Dst: pcmk__order_starts
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:233,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:281,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:289,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:294,1
    - Dst: pcmk__new_colocation
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:199,1
    - Dst: pcmk__order_stops
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:227,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:247,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:258,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 313
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 313
    functionName: member_internal_constraints
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c
    functionUses: []
    functionsReached:
    - pcmk__order_stops
    - pcmk__new_colocation
    - pcmk__order_starts
    - pcmk__set_relation_flags
    - pcmk_is_set
    - pcmk__order_resource_actions
    linkageType: ''
    returnType: void
    signature: 'static void member_internal_constraints(gpointer data, gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:124,1
    - Dst: create_group_pseudo_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:138,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:124,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:126,1
    - Dst: create_group_pseudo_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:139,1
    - Dst: create_group_pseudo_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:140,1
    - Dst: create_group_pseudo_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:141,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:142,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:142,1
    - Dst: create_group_pseudo_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:144,1
    - Dst: create_group_pseudo_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:146,1
    - Dst: create_group_pseudo_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:147,1
    - Dst: create_group_pseudo_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 149
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 149
    functionName: pcmk__group_create_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - crm_is_true
    - g_hash_table_lookup
    - create_group_pseudo_op
    - pcmk__assert
    - pcmk__is_group
    linkageType: ''
    returnType: void
    signature: 'void pcmk__group_create_actions(pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:327,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:335,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:338,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:332,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:327,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:342,1
    - Dst: pe__group_flag_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:344,1
    - Dst: pe__group_flag_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:345,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:346,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 349
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 349
    functionName: pcmk__group_internal_constraints
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c
    functionUses: []
    functionsReached:
    - g_list_foreach
    - pe__group_flag_is_set
    - pcmk_is_set
    - pe__const_top_resource
    - pcmk__assert
    - pcmk__order_resource_actions
    - pcmk__is_group
    linkageType: ''
    returnType: void
    signature: 'void pcmk__group_internal_constraints(pcmk_resource_t *rsc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:525,1
    - Dst: colocate_group_with
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:529,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:533,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:533,1
    - Dst: colocate_with_group
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:535,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - dependent
    - primary
    - colocation
    - for_dependent
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - pcmk__colocation_t*
    - bool
    constantsTouched: []
    func_position:
      end: 537
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 537
    functionName: pcmk__group_apply_coloc_score
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - colocate_with_group
    - colocate_group_with
    - pcmk__is_primitive
    linkageType: ''
    returnType: int
    signature: 'int pcmk__group_apply_coloc_score(pcmk_resource_t *dependent, const
      pcmk_resource_t *primary, const pcmk__colocation_t *colocation, bool for_dependent) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:556,1
    - Dst: pcmk__action_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:566,1
    - Dst: get_complex_task
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:565,1
    - Dst: find_first_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:569,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:578,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:579,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:580,1
    - Dst: pcmk__clear_raw_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:582,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:584,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:590,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:588,1
    - Dst: pcmk__clear_raw_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:594,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:592,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:596,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:604,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:589,1
    - Dst: pcmk__clear_raw_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:607,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 2
    argNames:
    - action
    - node
    argTypes:
    - pcmk_action_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 613
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 613
    functionName: pcmk__group_action_flags
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c
    functionUses: []
    functionsReached:
    - get_complex_task
    - pcmk__rsc_trace
    - pcmk__str_eq
    - pcmk_is_set
    - find_first_action
    - pcmk__assert
    - pcmk__action_text
    - pcmk__clear_action_flags
    - pcmk__clear_raw_action_flags
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t pcmk__group_action_flags(pcmk_action_t *action, const pcmk_node_t
      *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:687,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:687,1
    - Dst: pe__group_flag_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:707,1
    - Dst: pcmk__copy_node_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:693,1
    - Dst: pcmk__apply_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:699,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:728,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - rsc
    - location
    argTypes:
    - pcmk_resource_t*
    - pcmk__location_t*
    constantsTouched: []
    func_position:
      end: 729
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 729
    functionName: pcmk__group_apply_location
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c
    functionUses: []
    functionsReached:
    - pcmk__copy_node_list
    - g_list_free_full
    - pe__group_flag_is_set
    - pcmk__apply_location
    - pcmk__assert
    - pcmk__is_group
    linkageType: ''
    returnType: void
    signature: 'void pcmk__group_apply_location(pcmk_resource_t *rsc, pcmk__location_t
      *location) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:834,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:834,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:846,1
    - Dst: pcmk__add_this_with_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:850,1
    - Dst: pe__group_flag_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:858,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:889,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:890,1
    - Dst: pcmk__add_this_with
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:899,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 46
    argCount: 3
    argNames:
    - rsc
    - orig_rsc
    - list
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - GList**
    constantsTouched: []
    func_position:
      end: 906
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 906
    functionName: pcmk__group_with_colocations
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pe__group_flag_is_set
    - pcmk__is_group
    - pcmk_is_set
    - pcmk__add_this_with
    - pcmk__assert
    - pcmk__add_this_with_list
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void pcmk__group_with_colocations(const pcmk_resource_t *rsc, const
      pcmk_resource_t *orig_rsc, GList **list) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:1000,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:1007,1
    - Dst: pe__group_flag_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:1009,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:1001,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:1003,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:1010,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:1018,1
    - Dst: g_list_find
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:1019,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:1029,1
    - Dst: g_list_find
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:1030,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 36
    argCount: 4
    argNames:
    - rsc
    - orig_rsc
    - all_rscs
    - utilization
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - GList*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 1036
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 1036
    functionName: pcmk__group_add_utilization
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - g_list_find
    - pe__group_flag_is_set
    - pcmk__is_clone
    - pcmk_is_set
    - pcmk__assert
    - pcmk__is_group
    linkageType: ''
    returnType: void
    signature: 'void pcmk__group_add_utilization(const pcmk_resource_t *rsc, const
      pcmk_resource_t *orig_rsc, GList *all_rscs, GHashTable *utilization) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:1041,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:1041,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1050
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1050
    functionName: pcmk__group_shutdown_lock
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__is_group
    linkageType: ''
    returnType: void
    signature: 'void pcmk__group_shutdown_lock(pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: custom_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:107,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:107,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - group
    - action
    argTypes:
    - pcmk_resource_t*
    - char*
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: create_group_pseudo_op
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c
    functionUses: []
    functionsReached:
    - pcmk__op_key
    - custom_action
    - pcmk__set_action_flags
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'static pcmk_action_t *create_group_pseudo_op(pcmk_resource_t *group,
      const char *action) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:375,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:387,1
    - Dst: pe__group_flag_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:378,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:410,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:416,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:418,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:422,1
    - Dst: QB_ABS
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:424,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - dependent
    - primary
    - colocation
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - pcmk__colocation_t*
    constantsTouched: []
    func_position:
      end: 427
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 427
    functionName: colocate_group_with
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk__add_scores
    - pe__group_flag_is_set
    - QB_ABS
    - pcmk_readable_score
    - pcmk__config_err
    linkageType: ''
    returnType: int
    signature: 'static int colocate_group_with(pcmk_resource_t *dependent, const pcmk_resource_t
      *primary, const pcmk__colocation_t *colocation) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:450,1
    - Dst: pe__group_flag_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:458,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:454,1
    - Dst: pe__last_group_member
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:465,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:482,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:499,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 3
    argNames:
    - dependent
    - primary
    - colocation
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - pcmk__colocation_t*
    constantsTouched: []
    func_position:
      end: 502
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 502
    functionName: colocate_with_group
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk__add_scores
    - pe__group_flag_is_set
    - pcmk_is_set
    - pcmk__config_err
    - pe__last_group_member
    linkageType: ''
    returnType: int
    signature: 'static int colocate_with_group(pcmk_resource_t *dependent, const pcmk_resource_t
      *primary, const pcmk__colocation_t *colocation) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:646,1
    - Dst: find_first_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:660,1
    - Dst: pcmk__update_ordered_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:650,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 7
    argNames:
    - first
    - then
    - node
    - flags
    - filter
    - type
    - scheduler
    argTypes:
    - pcmk_action_t*
    - pcmk_action_t*
    - pcmk_node_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 672
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 672
    functionName: pcmk__group_update_ordered_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__update_ordered_actions
    - find_first_action
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t pcmk__group_update_ordered_actions(pcmk_action_t *first,
      pcmk_action_t *then, const pcmk_node_t *node, uint32_t flags, uint32_t filter,
      uint32_t type, pcmk_scheduler_t *scheduler) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:737,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:737,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:749,1
    - Dst: pe__group_flag_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:743,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:744,1
    - Dst: pcmk__colocated_resources
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:765,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 3
    argNames:
    - rsc
    - orig_rsc
    - colocated_rscs
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - GList*
    constantsTouched: []
    func_position:
      end: 770
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 770
    functionName: pcmk__group_colocated_resources
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c
    functionUses: []
    functionsReached:
    - pcmk__colocated_resources
    - pe__group_flag_is_set
    - pcmk__is_clone
    - g_list_prepend
    - pcmk__assert
    - pcmk__is_group
    linkageType: ''
    returnType: GList*
    signature: 'GList *pcmk__group_colocated_resources(const pcmk_resource_t *rsc,
      const pcmk_resource_t *orig_rsc, GList *colocated_rscs) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:780,1
    - Dst: pe__last_group_member
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:792,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:780,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:796,1
    - Dst: pcmk__add_with_this_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:800,1
    - Dst: pe__group_flag_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:808,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 29
    argCount: 3
    argNames:
    - rsc
    - orig_rsc
    - list
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - GList**
    constantsTouched: []
    func_position:
      end: 824
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 824
    functionName: pcmk__with_group_colocations
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pe__group_flag_is_set
    - pcmk__add_with_this_list
    - pe__last_group_member
    - pcmk__assert
    - pcmk__is_group
    linkageType: ''
    returnType: void
    signature: 'void pcmk__with_group_colocations(const pcmk_resource_t *rsc, const
      pcmk_resource_t *orig_rsc, GList **list) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:947,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:956,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:957,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:947,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:961,1
    - Dst: pe__last_group_member
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:979,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:984,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c:989,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 7
    argNames:
    - source_rsc
    - target_rsc
    - log_id
    - nodes
    - colocation
    - factor
    - flags
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - char*
    - GHashTable**
    - pcmk__colocation_t*
    - float
    - uint32_t
    constantsTouched: []
    func_position:
      end: 990
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 990
    functionName: pcmk__group_add_colocated_node_scores
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_group.c
    functionUses: []
    functionsReached:
    - pcmk__set_rsc_flags
    - pcmk__rsc_trace
    - pcmk__rsc_info
    - pcmk__clear_rsc_flags
    - pcmk_is_set
    - pe__last_group_member
    - pcmk__assert
    - pcmk__is_group
    linkageType: ''
    returnType: void
    signature: 'void pcmk__group_add_colocated_node_scores(pcmk_resource_t *source_rsc,
      const pcmk_resource_t *target_rsc, const char *log_id, GHashTable **nodes, const
      pcmk__colocation_t *colocation, float factor, uint32_t flags) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:120,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:124,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:122,1
    - Dst: trigger_unfencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:126,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:121,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:129,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:131,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:132,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:132,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:138,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:140,1
    - Dst: stop_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:138,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 4
    argNames:
    - rsc
    - node
    - rsc_entry
    - active_on_node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - xmlNode*
    - bool
    constantsTouched: []
    func_position:
      end: 143
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 143
    functionName: pcmk__rsc_agent_changed
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c
    functionUses: []
    functionsReached:
    - pcmk__set_rsc_flags
    - pcmk__s
    - PCMK__NELEM
    - pcmk__str_eq
    - crm_notice
    - pcmk__node_name
    - trigger_unfencing
    - custom_action
    - crm_element_value
    - stop_key
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__rsc_agent_changed(pcmk_resource_t *rsc, pcmk_node_t *node,
      const xmlNode *rsc_entry, bool active_on_node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:189,1
    - Dst: add_rsc_if_matching
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:194,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - id
    - scheduler
    argTypes:
    - char*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 198
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 198
    functionName: pcmk__rscs_matching_id
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c
    functionUses: []
    functionsReached:
    - add_rsc_if_matching
    - CRM_CHECK
    linkageType: ''
    returnType: GList*
    signature: 'GList *pcmk__rscs_matching_id(const char *id, const pcmk_scheduler_t
      *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 215
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 215
    functionName: set_assignment_methods_for_rsc
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c
    functionUses: []
    functionsReached:
    - g_list_foreach
    linkageType: ''
    returnType: void
    signature: 'static void set_assignment_methods_for_rsc(gpointer data, gpointer
      user_data) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_list_find
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:260,1
    - Dst: pcmk__colocation_affects
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:279,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:266,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:264,1
    - Dst: pcmk__this_with_colocations
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:269,1
    - Dst: add_colocated_resources
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:281,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:284,1
    - Dst: pcmk__with_this_colocations
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:287,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:296,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:296,1
    - Dst: add_colocated_resources
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:303,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:306,1
    - Dst: pcmk__colocation_affects
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:301,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 47
    argCount: 3
    argNames:
    - rsc
    - orig_rsc
    - colocated_rscs
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - GList*
    constantsTouched: []
    func_position:
      end: 309
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 309
    functionName: pcmk__colocated_resources
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c
    functionUses: []
    functionsReached:
    - g_list_free
    - pcmk__rsc_trace
    - g_list_find
    - pcmk__is_clone
    - g_list_prepend
    - pcmk__colocation_affects
    - add_colocated_resources
    - pcmk__this_with_colocations
    - pcmk__with_this_colocations
    linkageType: ''
    returnType: GList*
    signature: 'GList *pcmk__colocated_resources(const pcmk_resource_t *rsc, const
      pcmk_resource_t *orig_rsc, GList *colocated_rscs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:330,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:356,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:347,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 362
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 362
    functionName: pcmk__output_resource_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk_is_set
    - pcmk__current_node
    linkageType: ''
    returnType: void
    signature: 'void pcmk__output_resource_actions(pcmk_resource_t *rsc) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:468,1
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:473,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:495,1
    - Dst: pcmk__consume_node_capacity
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:520,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:420,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:444,1
    - Dst: pcmk__assign_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:430,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:449,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:480,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:463,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:497,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:500,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:503,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:510,1
    - Dst: pe__copy_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:515,1
    - Dst: add_assigned_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:517,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:442,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:448,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:484,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:504,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:514,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:514,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:522,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:441,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:447,1
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:452,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:458,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:483,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:486,1
    - Dst: pcmk__unassign_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:462,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:488,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:506,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 82
    argCount: 4
    argNames:
    - rsc
    - node
    - force
    - stop_if_fail
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 528
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 528
    functionName: pcmk__assign_resource
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c
    functionUses: []
    functionsReached:
    - free
    - pcmk__unassign_resource
    - pcmk__consume_node_capacity
    - g_hash_table_lookup
    - pcmk__clear_rsc_flags
    - pcmk__same_node
    - pcmk__node_name
    - pcmk_is_set
    - pcmk_readable_score
    - add_assigned_resource
    - pcmk__is_guest_or_bundle_node
    - pcmk__assert
    - pcmk__rsc_debug
    - pcmk__itoa
    - pcmk__node_available
    - pcmk__assign_resource
    - pcmk__str_eq
    - pe__copy_node
    - pe__set_next_role
    - pcmk__clear_action_flags
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__assign_resource(pcmk_resource_t *rsc, pcmk_node_t *node,
      bool force, bool stop_if_fail) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:547,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:549,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:552,1
    - Dst: g_list_remove
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:564,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:549,1
    - Dst: pcmk__release_node_capacity
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:566,1
    - Dst: pcmk__free_node_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:567,1
    - Dst: pcmk__unassign_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:574,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 576
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 576
    functionName: pcmk__unassign_resource
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c
    functionUses: []
    functionsReached:
    - pcmk__free_node_copy
    - pcmk__set_rsc_flags
    - pcmk__release_node_capacity
    - pcmk__node_name
    - pcmk__unassign_resource
    - g_list_remove
    - crm_info
    linkageType: ''
    returnType: void
    signature: 'void pcmk__unassign_resource(pcmk_resource_t *rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:657,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - node
    - nodes
    argTypes:
    - pcmk_node_t*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 663
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 663
    functionName: get_node_score
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    linkageType: ''
    returnType: int
    signature: 'static int get_node_score(const pcmk_node_t *node, GHashTable *nodes) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:793,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:798,1
    - Dst: g_list_sort_with_data
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:797,1
    - Dst: pcmk__sort_nodes
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 799
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 799
    functionName: pcmk__sort_resources
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c
    functionUses: []
    functionsReached:
    - g_list_sort_with_data
    - g_list_copy
    - g_list_free
    - pcmk__sort_nodes
    linkageType: ''
    returnType: void
    signature: 'void pcmk__sort_resources(pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: pcmk__set_assignment_methods
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c
    functionUses: []
    functionsReached:
    - g_list_foreach
    linkageType: ''
    returnType: void
    signature: 'void pcmk__set_assignment_methods(pcmk_scheduler_t *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:158,1
    - Dst: add_rsc_if_matching
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:168,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:159,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:160,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 3
    argNames:
    - result
    - rsc
    - id
    argTypes:
    - GList*
    - pcmk_resource_t*
    - char*
    constantsTouched: []
    func_position:
      end: 171
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 171
    functionName: add_rsc_if_matching
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c
    functionUses: []
    functionsReached:
    - add_rsc_if_matching
    - g_list_prepend
    - pcmk__str_eq
    linkageType: ''
    returnType: GList*
    signature: 'static GList *add_rsc_if_matching(GList *result, pcmk_resource_t *rsc,
      const char *id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 3
    argNames:
    - rsc
    - orig_rsc
    - list
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - GList**
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: add_colocated_resources
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static inline void add_colocated_resources(const pcmk_resource_t *rsc,
      const pcmk_resource_t *orig_rsc, GList **list) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - rsc
    - xml
    argTypes:
    - pcmk_resource_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: pcmk__noop_add_graph_meta
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void pcmk__noop_add_graph_meta(const pcmk_resource_t *rsc, xmlNode
      *xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - node
    - rsc
    argTypes:
    - pcmk_node_t*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 376
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 376
    functionName: add_assigned_resource
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c
    functionUses: []
    functionsReached:
    - g_list_prepend
    linkageType: ''
    returnType: void
    signature: 'static inline void add_assigned_resource(pcmk_node_t *node, pcmk_resource_t
      *rsc) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:602,1
    - Dst: pe_get_failcount
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:607,1
    - Dst: uber_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:615,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:614,1
    - Dst: pcmk__sched_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:622,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:627,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:635,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:637,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:638,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - rsc
    - node
    - failed
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - pcmk_resource_t**
    constantsTouched: []
    func_position:
      end: 640
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 640
    functionName: pcmk__threshold_reached
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c
    functionUses: []
    functionsReached:
    - pcmk__sched_warn
    - pcmk__plural_s
    - pe_get_failcount
    - pcmk__node_name
    - pcmk_is_set
    - uber_parent
    - crm_info
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__threshold_reached(pcmk_resource_t *rsc, const pcmk_node_t
      *node, pcmk_resource_t **failed) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pe__show_node_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:726,1
    - Dst: pe__show_node_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:724,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:732,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:735,1
    - Dst: get_node_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:737,1
    - Dst: get_node_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:738,1
    - Dst: get_node_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:753,1
    - Dst: get_node_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:754,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:766,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:779,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c:776,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 65
    argCount: 3
    argNames:
    - a
    - b
    - data
    argTypes:
    - gconstpointer
    - gconstpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 782
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 782
    functionName: cmp_resources
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_resource.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - get_node_score
    - pe__show_node_scores
    - crm_trace
    - pcmk__current_node
    linkageType: ''
    returnType: gint
    signature: 'static gint cmp_resources(gconstpointer a, gconstpointer b, gpointer
      data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:145,1
    - Dst: stonith__execution_status
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:146,1
    - Dst: stonith__exit_status
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:145,1
    - Dst: stonith__exit_reason
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:147,1
    - Dst: g_main_loop_quit
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - stonith
    - data
    argTypes:
    - stonith_t*
    - stonith_callback_data_t*
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: fence_callback
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - g_main_loop_quit
    - stonith__exit_reason
    - stonith__exit_status
    - stonith__execution_status
    linkageType: ''
    returnType: void
    signature: 'static void fence_callback(stonith_t * stonith, stonith_callback_data_t
      * data) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: stonith__set_call_options
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:278,1
    - Dst: stonith__set_call_options
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:271,1
    - Dst: stonith__history_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:324,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:281,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:285,1
    - Dst: stonith__history_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:289,1
    - Dst: stonith__later_succeeded
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:306,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:290,1
    - Dst: stonith__sort_history
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:295,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:325,1
    - Dst: stonith__set_call_options
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:274,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 7
    argNames:
    - out
    - st
    - target
    - timeout
    - verbose
    - broadcast
    - cleanup
    argTypes:
    - pcmk__output_t*
    - stonith_t*
    - char*
    - unsigned int
    - int
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 326
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 326
    functionName: pcmk__fence_history
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - stonith__sort_history
    - pcmk__timeout_ms2s
    - stonith__set_call_options
    - stonith__history_free
    - pcmk__str_eq
    - stonith__later_succeeded
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int pcmk__fence_history(pcmk__output_t *out, stonith_t *st, const
      char *target, unsigned int timeout, int verbose, bool broadcast, bool cleanup) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stonith__parse_targets
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:444,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:439,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:441,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:453,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 4
    argNames:
    - out
    - st
    - device_id
    - timeout
    argTypes:
    - pcmk__output_t*
    - stonith_t*
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 455
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 455
    functionName: pcmk__fence_list_targets
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - stonith__parse_targets
    - free
    - pcmk__timeout_ms2s
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int pcmk__fence_list_targets(pcmk__output_t *out, stonith_t *st, const
      char *device_id, unsigned int timeout) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:486,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:490,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:483,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 4
    argNames:
    - out
    - st
    - agent
    - timeout
    argTypes:
    - pcmk__output_t*
    - stonith_t*
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 492
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 492
    functionName: pcmk__fence_metadata
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - free
    - pcmk__timeout_ms2s
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int pcmk__fence_metadata(pcmk__output_t *out, stonith_t *st, const
      char *agent, unsigned int timeout) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:55,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:70,1
    - Dst: stonith__key_value_freeall
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:75,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:81,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 5
    argNames:
    - st
    - target
    - fence_level
    - devices
    - added
    argTypes:
    - stonith_t*
    - char*
    - int
    - GList*
    - bool
    constantsTouched: []
    func_position:
      end: 82
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 82
    functionName: handle_level
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - stonith__key_value_freeall
    - strchr
    - stonith__key_value_add
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int handle_level(stonith_t *st, const char *target, int fence_level,
      GList *devices, bool added) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stonith__api_connect_retry
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:156,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:161,1
    - Dst: g_main_loop_quit
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:160,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:162,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:173,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:174,1
    - Dst: g_main_loop_quit
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:178,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:179,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:184,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 191
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 191
    functionName: async_fence_helper
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - pcmk_strerror
    - pcmk__timeout_ms2s
    - g_main_loop_quit
    - pcmk_rc_str
    - stonith__api_connect_retry
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean async_fence_helper(gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__setup_output_fencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:336,1
    - Dst: pcmk__fence_history
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:343,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:345,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:345,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:348,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 7
    argNames:
    - xml
    - target
    - timeout
    - quiet
    - verbose
    - broadcast
    - cleanup
    argTypes:
    - xmlNodePtr*
    - char*
    - unsigned int
    - bool
    - int
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 350
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 350
    functionName: pcmk_fence_history
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - pcmk__setup_output_fencing
    - pcmk__xml_output_finish
    - pcmk__fence_history
    - stonith__api_free
    linkageType: ''
    returnType: int
    signature: 'int pcmk_fence_history(xmlNodePtr *xml, const char *target, unsigned
      int timeout, bool quiet, int verbose, bool broadcast, bool cleanup) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__setup_output_fencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:464,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:470,1
    - Dst: pcmk__fence_list_targets
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:469,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:470,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:473,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - xml
    - device_id
    - timeout
    argTypes:
    - xmlNodePtr*
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 475
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 475
    functionName: pcmk_fence_list_targets
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - pcmk__setup_output_fencing
    - pcmk__xml_output_finish
    - pcmk__fence_list_targets
    - stonith__api_free
    linkageType: ''
    returnType: int
    signature: 'int pcmk_fence_list_targets(xmlNodePtr *xml, const char *device_id,
      unsigned int timeout) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__setup_output_fencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:501,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:507,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:507,1
    - Dst: pcmk__fence_metadata
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:506,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:510,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - xml
    - agent
    - timeout
    argTypes:
    - xmlNodePtr*
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 512
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 512
    functionName: pcmk_fence_metadata
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - pcmk__setup_output_fencing
    - pcmk__xml_output_finish
    - pcmk__fence_metadata
    - stonith__api_free
    linkageType: ''
    returnType: int
    signature: 'int pcmk_fence_metadata(xmlNodePtr *xml, const char *agent, unsigned
      int timeout) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stonith_api_time
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:405,1
    - Dst: stonith_api_time
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:407,1
    - Dst: atol
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - out
    - target
    - as_nodeid
    argTypes:
    - pcmk__output_t*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 411
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 411
    functionName: pcmk__fence_last
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - stonith_api_time
    - atol
    linkageType: ''
    returnType: int
    signature: 'int pcmk__fence_last(pcmk__output_t *out, const char *target, bool
      as_nodeid) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_level
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - st
    - target
    - fence_level
    - devices
    argTypes:
    - stonith_t*
    - char*
    - int
    - GList*
    constantsTouched: []
    func_position:
      end: 567
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 567
    functionName: pcmk__fence_register_level
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - handle_level
    linkageType: ''
    returnType: int
    signature: 'int pcmk__fence_register_level(stonith_t *st, const char *target,
      int fence_level, GList *devices) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:419,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:427,1
    - Dst: stonith__register_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:424,1
    - Dst: pcmk__fence_last
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:426,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:427,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - xml
    - target
    - as_nodeid
    argTypes:
    - xmlNodePtr*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 429
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 429
    functionName: pcmk_fence_last
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - stonith__register_messages
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - pcmk__xml_output_finish
    - pcmk__fence_last
    linkageType: ''
    returnType: int
    signature: 'int pcmk_fence_last(xmlNodePtr *xml, const char *target, bool as_nodeid) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__setup_output_fencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:577,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:583,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:583,1
    - Dst: pcmk__fence_register_level
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:582,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:586,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 4
    argNames:
    - xml
    - target
    - fence_level
    - devices
    argTypes:
    - xmlNodePtr*
    - char*
    - int
    - GList*
    constantsTouched: []
    func_position:
      end: 588
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 588
    functionName: pcmk_fence_register_level
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - pcmk__fence_register_level
    - pcmk_rc2exitc
    - pcmk__setup_output_fencing
    - pcmk__xml_output_finish
    - stonith__api_free
    linkageType: ''
    returnType: int
    signature: 'int pcmk_fence_register_level(xmlNodePtr *xml, const char *target,
      int fence_level, GList *devices) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:361,1
    - Dst: stonith__key_value_freeall
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:371,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - out
    - st
    argTypes:
    - pcmk__output_t*
    - stonith_t*
    constantsTouched: []
    func_position:
      end: 373
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 373
    functionName: pcmk__fence_installed
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - stonith__key_value_freeall
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int pcmk__fence_installed(pcmk__output_t *out, stonith_t *st) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:524,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:521,1
    - Dst: stonith__key_value_freeall
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:534,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 4
    argNames:
    - out
    - st
    - target
    - timeout
    argTypes:
    - pcmk__output_t*
    - stonith_t*
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 540
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 540
    functionName: pcmk__fence_registered
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - stonith__key_value_freeall
    - pcmk__timeout_ms2s
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int pcmk__fence_registered(pcmk__output_t *out, stonith_t *st, const
      char *target, unsigned int timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_level
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - st
    - target
    - fence_level
    argTypes:
    - stonith_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 594
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 594
    functionName: pcmk__fence_unregister_level
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - handle_level
    linkageType: ''
    returnType: int
    signature: 'int pcmk__fence_unregister_level(stonith_t *st, const char *target,
      int fence_level) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__setup_output_fencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:382,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:388,1
    - Dst: pcmk__fence_installed
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:387,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:388,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:391,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - xml
    - timeout
    argTypes:
    - xmlNodePtr*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 393
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 393
    functionName: pcmk_fence_installed
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - pcmk__fence_installed
    - pcmk__setup_output_fencing
    - pcmk__xml_output_finish
    - stonith__api_free
    linkageType: ''
    returnType: int
    signature: 'int pcmk_fence_installed(xmlNodePtr *xml, unsigned int timeout) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__setup_output_fencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:549,1
    - Dst: pcmk__fence_registered
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:554,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:555,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:555,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:558,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - xml
    - target
    - timeout
    argTypes:
    - xmlNodePtr*
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 560
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 560
    functionName: pcmk_fence_registered
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - pcmk__setup_output_fencing
    - pcmk__xml_output_finish
    - stonith__api_free
    - pcmk__fence_registered
    linkageType: ''
    returnType: int
    signature: 'int pcmk_fence_registered(xmlNodePtr *xml, const char *target, unsigned
      int timeout) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__setup_output_fencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:603,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:609,1
    - Dst: pcmk__fence_unregister_level
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:608,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:609,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:612,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - xml
    - target
    - fence_level
    argTypes:
    - xmlNodePtr*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 614
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 614
    functionName: pcmk_fence_unregister_level
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - pcmk__setup_output_fencing
    - pcmk__fence_unregister_level
    - pcmk__xml_output_finish
    - stonith__api_free
    linkageType: ''
    returnType: int
    signature: 'int pcmk_fence_unregister_level(xmlNodePtr *xml, const char *target,
      int fence_level) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reduce_fence_history
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:670,1
    - Dst: stonith__sort_history
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:668,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:663,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - st
    - stonith_history
    - fence_history
    argTypes:
    - stonith_t*
    - stonith_history_t**
    - enum pcmk__fence_history
    constantsTouched: []
    func_position:
      end: 675
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 675
    functionName: pcmk__get_fencing_history
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - reduce_fence_history
    - stonith__sort_history
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int pcmk__get_fencing_history(stonith_t *st, stonith_history_t **stonith_history,
      enum pcmk__fence_history fence_history) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:105,1
    - Dst: stonith__history_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:112,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:109,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:106,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 30
    argCount: 1
    argNames:
    - history
    argTypes:
    - stonith_history_t*
    constantsTouched: []
    func_position:
      end: 126
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 126
    functionName: reduce_fence_history
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - stonith__history_free
    - pcmk__str_eq
    linkageType: ''
    returnType: stonith_history_t*
    signature: 'static stonith_history_t *reduce_fence_history(stonith_history_t *history) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:202,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:212,1
    - Dst: mainloop_add_trigger
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:211,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:208,1
    - Dst: g_main_loop_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:214,1
    - Dst: g_main_loop_run
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:215,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:217,1
    - Dst: stonith__result2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:224,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:225,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 8
    argNames:
    - st
    - target
    - action
    - name
    - timeout
    - tolerance
    - delay
    - reason
    argTypes:
    - stonith_t*
    - char*
    - char*
    - char*
    - unsigned int
    - unsigned int
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 227
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 227
    functionName: pcmk__request_fencing
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - g_main_loop_new
    - stonith__result2rc
    - mainloop_add_trigger
    - g_main_loop_run
    - free
    - pcmk__reset_result
    - strdup
    - mainloop_set_trigger
    linkageType: ''
    returnType: int
    signature: 'int pcmk__request_fencing(stonith_t *st, const char *target, const
      char *action, const char *name, unsigned int timeout, unsigned int tolerance,
      int delay, char **reason) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith__validate
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:624,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:627,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:625,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 6
    argNames:
    - out
    - st
    - agent
    - id
    - params
    - timeout
    argTypes:
    - pcmk__output_t*
    - stonith_t*
    - char*
    - char*
    - GHashTable*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 628
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 628
    functionName: pcmk__fence_validate
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - stonith__validate
    - pcmk__timeout_ms2s
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int pcmk__fence_validate(pcmk__output_t *out, stonith_t *st, const
      char *agent, const char *id, GHashTable *params, unsigned int timeout) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:131,1
    - Dst: stonith__event_execution_status
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:136,1
    - Dst: stonith__event_exit_status
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:135,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:134,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:132,1
    - Dst: stonith__event_exit_reason
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:137,1
    - Dst: g_main_loop_quit
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - stonith_t*
    - stonith_event_t*
    constantsTouched: []
    func_position:
      end: 140
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 140
    functionName: notify_callback
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - stonith__event_exit_reason
    - g_main_loop_quit
    - pcmk__str_eq
    - stonith__event_execution_status
    - stonith__event_exit_status
    linkageType: ''
    returnType: void
    signature: 'static void notify_callback(stonith_t * st, stonith_event_t * e) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__setup_output_fencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:238,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:245,1
    - Dst: pcmk__request_fencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:243,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:245,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:248,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 8
    argNames:
    - xml
    - target
    - action
    - name
    - timeout
    - tolerance
    - delay
    - reason
    argTypes:
    - xmlNodePtr*
    - char*
    - char*
    - char*
    - unsigned int
    - unsigned int
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 250
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 250
    functionName: pcmk_request_fencing
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - pcmk__setup_output_fencing
    - pcmk__xml_output_finish
    - pcmk__request_fencing
    - stonith__api_free
    linkageType: ''
    returnType: int
    signature: 'int pcmk_request_fencing(xmlNodePtr *xml, const char *target, const
      char *action, const char *name, unsigned int timeout, unsigned int tolerance,
      int delay, char **reason) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__setup_output_fencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:638,1
    - Dst: pcmk__fence_validate
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:643,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:644,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:644,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_fence.c:647,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 5
    argNames:
    - xml
    - agent
    - id
    - params
    - timeout
    argTypes:
    - xmlNodePtr*
    - char*
    - char*
    - GHashTable*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 649
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 649
    functionName: pcmk_fence_validate
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_fence.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - pcmk__fence_validate
    - pcmk__setup_output_fencing
    - pcmk__xml_output_finish
    - stonith__api_free
    linkageType: ''
    returnType: int
    signature: 'int pcmk_fence_validate(xmlNodePtr *xml, const char *agent, const
      char *id, GHashTable *params, unsigned int timeout) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:34,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:44,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 21
    argCount: 3
    argNames:
    - node
    - consider_score
    - consider_guest
    argTypes:
    - pcmk_node_t*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 54
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 54
    functionName: pcmk__node_available
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c
    functionUses: []
    functionsReached:
    - pcmk__is_guest_or_bundle_node
    - pcmk_is_set
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__node_available(const pcmk_node_t *node, bool consider_score,
      bool consider_guest) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: destroy_node_tables
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: 'static void destroy_node_tables(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pe__copy_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:184,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:188,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 2
    argNames:
    - list
    - reset
    argTypes:
    - GList*
    - bool
    constantsTouched: []
    func_position:
      end: 191
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 191
    functionName: pcmk__copy_node_list
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c
    functionUses: []
    functionsReached:
    - g_list_prepend
    - pe__copy_node
    linkageType: ''
    returnType: GList*
    signature: 'GList *pcmk__copy_node_list(const GList *list, bool reset) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:237,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:243,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:266,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:262,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:276,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:290,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:291,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:292,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:294,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:295,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:236,1
    - Dst: pcmk__compare_node_capacities
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:259,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:276,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:267,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:282,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:292,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:296,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:303,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:309,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:310,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:296,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:314,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:228,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:244,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:267,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:275,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:261,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:282,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:305,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:306,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:310,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:237,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:231,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:244,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:251,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:256,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:262,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:281,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:306,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:314,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:314,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 77
    argCount: 3
    argNames:
    - a
    - b
    - data
    argTypes:
    - gconstpointer
    - gconstpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 316
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 316
    functionName: compare_nodes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c
    functionUses: []
    functionsReached:
    - pcmk__node_available
    - pcmk__str_eq
    - pcmk__same_node
    - strcmp
    - pcmk__node_name
    - pcmk__compare_node_capacities
    - crm_trace
    linkageType: ''
    returnType: gint
    signature: 'static gint compare_nodes(gconstpointer a, gconstpointer b, gpointer
      data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:372,1
    - Dst: pcmk__health_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:383,1
    - Dst: pe__sum_node_health_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:388,1
    - Dst: pcmk__parse_health_strategy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:375,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:379,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:394,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:395,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:407,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:407,1
    - Dst: pcmk__new_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:411,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:413,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:414,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 418
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 418
    functionName: pcmk__apply_node_health
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk__health_score
    - pcmk__parse_health_strategy
    - crm_is_true
    - g_hash_table_lookup
    - pcmk__node_name
    - pe__sum_node_health_scores
    - crm_info
    - pcmk__cluster_option
    - pcmk__new_location
    linkageType: ''
    returnType: void
    signature: 'void pcmk__apply_node_health(pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:444,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 2
    argNames:
    - rsc
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 445
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 445
    functionName: pcmk__top_allowed_node
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'pcmk_node_t *pcmk__top_allowed_node(const pcmk_resource_t *rsc, const
      pcmk_node_t *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:75,1
    - Dst: pe__copy_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:78,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:80,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:76,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:77,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - nodes
    argTypes:
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 84
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 84
    functionName: pcmk__copy_node_table
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c
    functionUses: []
    functionsReached:
    - g_hash_table_iter_init
    - pcmk__strkey_table
    - pe__copy_node
    - g_hash_table_insert
    - g_hash_table_iter_next
    linkageType: ''
    returnType: GHashTable*
    signature: 'GHashTable *pcmk__copy_node_table(GHashTable *nodes) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:151,1
    - Dst: pcmk__copy_node_table
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:157,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:157,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:153,1
    - Dst: pcmk__restore_node_tables
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - rsc
    - backup
    argTypes:
    - pcmk_resource_t*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 164
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 164
    functionName: pcmk__restore_node_tables
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c
    functionUses: []
    functionsReached:
    - pcmk__restore_node_tables
    - g_hash_table_lookup
    - g_hash_table_destroy
    - pcmk__assert
    - pcmk__copy_node_table
    linkageType: ''
    returnType: void
    signature: 'void pcmk__restore_node_tables(pcmk_resource_t *rsc, GHashTable *backup) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:118,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:121,1
    - Dst: pcmk__copy_node_table
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:125,1
    - Dst: pcmk__copy_node_tables
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:130,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:124,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - rsc
    - copy
    argTypes:
    - pcmk_resource_t*
    - GHashTable**
    constantsTouched: []
    func_position:
      end: 132
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 132
    functionName: pcmk__copy_node_tables
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c
    functionUses: []
    functionsReached:
    - pcmk__copy_node_tables
    - pcmk__strkey_table
    - pcmk__assert
    - g_hash_table_insert
    - pcmk__copy_node_table
    linkageType: ''
    returnType: void
    signature: 'void pcmk__copy_node_tables(const pcmk_resource_t *rsc, GHashTable
      **copy) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_sort_with_data
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - nodes
    - active_node
    argTypes:
    - GList*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: pcmk__sort_nodes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c
    functionUses: []
    functionsReached:
    - g_list_sort_with_data
    linkageType: ''
    returnType: GList*
    signature: 'GList *pcmk__sort_nodes(GList *nodes, pcmk_node_t *active_node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:351,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:353,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c:352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - nodes
    argTypes:
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 358
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 358
    functionName: pcmk__any_node_available
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_nodes.c
    functionUses: []
    functionsReached:
    - pcmk__node_available
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__any_node_available(GHashTable *nodes) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:60,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:68,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:64,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:67,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:71,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:74,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:75,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:78,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 4
    argNames:
    - out
    - cib_node
    - name
    - value
    argTypes:
    - pcmk__output_t*
    - xmlNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 79
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 79
    functionName: inject_transient_attr
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_injections.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_first_child
    - crm_create_nvpair_xml
    - crm_xml_add
    - pcmk__xe_id
    linkageType: ''
    returnType: void
    signature: 'static void inject_transient_attr(pcmk__output_t *out, xmlNode *cib_node,
      const char *name, const char *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__create_history_xml
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:238,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - cib_resource
    - op
    - node
    - target_rc
    argTypes:
    - xmlNode*
    - lrmd_event_data_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 240
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 240
    functionName: pcmk__inject_action_result
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_injections.c
    functionUses: []
    functionsReached:
    - pcmk__create_history_xml
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__inject_action_result(xmlNode *cib_resource, lrmd_event_data_t
      *op, const char *node, int target_rc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:160,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:168,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:165,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:167,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:174,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:177,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - cib_conn
    - node
    argTypes:
    - cib_t*
    - char*
    constantsTouched: []
    func_position:
      end: 178
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 178
    functionName: create_node_entry
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_injections.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_strdup_printf
    - crm_xml_add
    - free
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void create_node_entry(cib_t *cib_conn, const char *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:388,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:392,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:389,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:390,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 2
    argNames:
    - cib_node
    - resource
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 394
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 394
    functionName: find_resource_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_injections.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pcmk__xpath_find_one
    - free
    - crm_element_value
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *find_resource_xml(xmlNode *cib_node, const char *resource) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__get_ticket_state
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:511,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:528,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:527,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:520,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:529,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:530,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:537,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:538,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:542,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:544,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 5
    argNames:
    - out
    - ticket_id
    - attr_name
    - attr_value
    - cib
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    - bool
    - cib_t*
    constantsTouched: []
    func_position:
      end: 546
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 546
    functionName: set_ticket_state_attr
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_injections.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__xe_create
    - crm_log_xml_debug
    - crm_xml_add
    - pcmk__get_ticket_state
    - pcmk__xe_set_bool_attr
    - pcmk__xml_free
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int set_ticket_state_attr(pcmk__output_t *out, const char *ticket_id,
      const char *attr_name, bool attr_value, cib_t *cib) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:585,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:610,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:622,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:629,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:632,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:583,1
    - Dst: pcmk__inject_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:604,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:611,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:600,1
    - Dst: create_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:624,1
    - Dst: pcmk__inject_action_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:627,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:635,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:584,1
    - Dst: strlen
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:583,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:592,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:605,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:607,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:625,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:628,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:636,1
    - Dst: strlen
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:584,1
    - Dst: pe_find_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:594,1
    - Dst: pcmk__inject_failcount
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:616,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:602,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:601,1
    - Dst: pcmk__inject_resource_history
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:619,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:637,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 60
    argCount: 4
    argNames:
    - out
    - spec
    - cib
    - scheduler
    argTypes:
    - pcmk__output_t*
    - char*
    - cib_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 638
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 638
    functionName: inject_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_injections.c
    functionUses: []
    functionsReached:
    - pcmk__inject_action_result
    - pcmk__assert
    - pcmk__assert_alloc
    - sscanf
    - pcmk__str_eq
    - create_op
    - pcmk__inject_failcount
    - pcmk_is_set
    - pcmk__inject_resource_history
    - free
    - crm_element_value
    - pe_find_resource
    - strlen
    - pcmk__inject_node
    - lrmd_free_event
    - parse_op_key
    linkageType: ''
    returnType: void
    signature: 'static void inject_action(pcmk__output_t *out, const char *spec, cib_t
      *cib, const pcmk_scheduler_t *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:785,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:787,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:786,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:789,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:788,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:790,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:791,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:792,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:793,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:794,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:795,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:797,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - injections
    argTypes:
    - pcmk_injections_t*
    constantsTouched: []
    func_position:
      end: 798
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 798
    functionName: pcmk_free_injections
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_injections.c
    functionUses: []
    functionsReached:
    - free
    - g_list_free_full
    linkageType: ''
    returnType: void
    signature: 'void pcmk_free_injections(pcmk_injections_t *injections) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:108,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:120,1
    - Dst: cib__get_node_attrs
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:119,1
    - Dst: pcmk__failcount_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:117,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:123,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:129,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:132,1
    - Dst: inject_transient_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:135,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:137,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:138,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:139,1
    - Dst: inject_transient_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:143,1
    - Dst: pcmk__ttoa
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:142,1
    - Dst: time
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:142,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:145,1
    - Dst: pcmk__lastfailure_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:141,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:146,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 8
    argNames:
    - out
    - cib_conn
    - cib_node
    - resource
    - task
    - interval_ms
    - exit_status
    - infinity
    argTypes:
    - pcmk__output_t*
    - cib_t*
    - xmlNode*
    - char*
    - char*
    - guint
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 147
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 147
    functionName: pcmk__inject_failcount
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_injections.c
    functionUses: []
    functionsReached:
    - pcmk__lastfailure_name
    - CRM_CHECK
    - pcmk__failcount_name
    - pcmk__itoa
    - pcmk__ttoa
    - time
    - pcmk__str_copy
    - cib__get_node_attrs
    - free
    - inject_transient_attr
    - pcmk__xml_free
    - pcmk__xe_id
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'void pcmk__inject_failcount(pcmk__output_t *out, cib_t *cib_conn,
      xmlNode *cib_node, const char *resource, const char *task, guint interval_ms,
      int exit_status, bool infinity) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lrmd_new_event
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:200,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:208,1
    - Dst: lrmd__set_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:201,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:200,1
    - Dst: time
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:203,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:209,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:213,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - cib_resource
    - task
    - interval_ms
    - outcome
    argTypes:
    - xmlNode*
    - char*
    - guint
    - int
    constantsTouched: []
    func_position:
      end: 221
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 221
    functionName: create_op
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_injections.c
    functionUses: []
    functionsReached:
    - lrmd_new_event
    - pcmk__xe_first_child
    - time
    - lrmd__set_result
    - pcmk__xe_next
    - pcmk__xe_id
    - crm_element_value_int
    linkageType: ''
    returnType: lrmd_event_data_t*
    signature: 'static lrmd_event_data_t *create_op(const xmlNode *cib_resource, const
      char *task, guint interval_ms, int outcome) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: create_node_entry
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:265,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:272,1
    - Dst: query_node_uuid
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:281,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:315,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:316,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:304,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:300,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:317,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:329,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:337,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:283,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:320,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:324,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:332,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:271,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:310,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:297,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:260,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:287,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:296,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:328,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:333,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 3
    argNames:
    - cib_conn
    - node
    - uuid
    argTypes:
    - cib_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 339
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 339
    functionName: pcmk__inject_node
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_injections.c
    functionUses: []
    functionsReached:
    - create_node_entry
    - pcmk__xe_create
    - pcmk__assert
    - query_node_uuid
    - crm_trace
    - crm_strdup_printf
    - crm_exit
    - crm_xml_add
    - crm_log_xml_warn
    - free
    - pcmk__xml_free
    - strdup
    - pcmk__xe_id
    - crm_err
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__inject_node(cib_t *cib_conn, const char *node, const
      char *uuid) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__inject_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:354,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:364,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:371,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:357,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 3
    argNames:
    - cib_conn
    - node
    - up
    argTypes:
    - cib_t*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 373
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 373
    functionName: pcmk__inject_node_state_change
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_injections.c
    functionUses: []
    functionsReached:
    - pcmk__inject_node
    - pcmk__xe_set_props
    - crm_xml_add
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__inject_node_state_change(cib_t *cib_conn, const char
      *node, bool up) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:469,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:481,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:475,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:478,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:483,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:484,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:485,1
    - Dst: find_resource_xml
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:422,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:446,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:455,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:455,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:465,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:467,1
    - Dst: find_resource_xml
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:432,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:431,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:443,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:463,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:473,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:470,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:462,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 50
    argCount: 7
    argNames:
    - out
    - cib_node
    - resource
    - lrm_name
    - rclass
    - rtype
    - rprovider
    argTypes:
    - pcmk__output_t*
    - xmlNode*
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 488
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 488
    functionName: pcmk__inject_resource_history
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_injections.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - find_resource_xml
    - pcmk__xe_first_child
    - crm_xml_add
    - strcmp
    - crm_info
    - pcmk__strcase_any_of
    - pcmk_is_set
    - pcmk_get_ra_caps
    - pcmk__xe_id
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__inject_resource_history(pcmk__output_t *out, xmlNode
      *cib_node, const char *resource, const char *lrm_name, const char *rclass, const
      char *rtype, const char *rprovider) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:666,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:683,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:700,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:724,1
    - Dst: set_ticket_state_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:737,1
    - Dst: set_ticket_state_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:746,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:757,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:748,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:766,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:660,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:674,1
    - Dst: pcmk__inject_node_state_change
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:682,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:686,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:703,1
    - Dst: pcmk__inject_node_state_change
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:723,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:725,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:663,1
    - Dst: cib__update_node_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:670,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:701,1
    - Dst: pcmk__inject_node_state_change
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:696,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:710,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:715,1
    - Dst: set_ticket_state_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:756,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:687,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:697,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:708,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:728,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:729,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:738,1
    - Dst: inject_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:770,1
    - Dst: set_ticket_state_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_injections.c:765,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 114
    argCount: 3
    argNames:
    - scheduler
    - cib
    - injections
    argTypes:
    - pcmk_scheduler_t*
    - cib_t*
    - pcmk_injections_t*
    constantsTouched: []
    func_position:
      end: 776
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 776
    functionName: pcmk__inject_scheduler_input
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_injections.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - cib__update_node_attr
    - crm_strdup_printf
    - inject_action
    - crm_xml_add
    - set_ticket_state_attr
    - pcmk__xml_free
    - free
    - pcmk__assert
    - pcmk__inject_node_state_change
    linkageType: ''
    returnType: void
    signature: 'void pcmk__inject_scheduler_input(pcmk_scheduler_t *scheduler, cib_t
      *cib, const pcmk_injections_t *injections) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_reset_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:194,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:202,1
    - Dst: set_effective_date
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:198,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:200,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:199,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:203,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:205,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:206,1
    - Dst: cluster_status
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:208,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - scheduler
    - input
    - out
    - use_date
    - flags
    argTypes:
    - pcmk_scheduler_t*
    - xmlNodePtr
    - pcmk__output_t*
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 209
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 209
    functionName: reset
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_simulate.c
    functionUses: []
    functionsReached:
    - pcmk__set_scheduler_flags
    - pcmk_is_set
    - pcmk_reset_scheduler
    - set_effective_date
    - cluster_status
    linkageType: ''
    returnType: void
    signature: 'static void reset(pcmk_scheduler_t *scheduler, xmlNodePtr input, pcmk__output_t
      *out, const char *use_date, unsigned int flags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PCMK__OUTPUT_SPACER_IF
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:174,1
    - Dst: pcmk__output_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - scheduler
    - print_spacer
    argTypes:
    - pcmk_scheduler_t*
    - bool
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 178
    functionName: print_transition_summary
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_simulate.c
    functionUses: []
    functionsReached:
    - PCMK__OUTPUT_SPACER_IF
    - pcmk__output_actions
    linkageType: ''
    returnType: void
    signature: 'static void print_transition_summary(pcmk_scheduler_t *scheduler,
      bool print_spacer) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:337,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:346,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:350,1
    - Dst: pcmk__ends_with_ext
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:345,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:342,1
    - Dst: stat
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:351,1
    - Dst: S_ISREG
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:351,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:352,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:359,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 21
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct dirent*
    constantsTouched: []
    func_position:
      end: 361
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 361
    functionName: profile_filter
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_simulate.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - stat
    - free
    - pcmk__str_any_of
    - S_ISREG
    - crm_trace
    - pcmk__ends_with_ext
    linkageType: ''
    returnType: int
    signature: 'static int profile_filter(const struct dirent *entry) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:500,1
    - Dst: crm_time_log
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:508,1
    - Dst: crm_element_value_epoch
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:502,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:506,1
    - Dst: pcmk__copy_timet
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:512,1
    - Dst: crm_time_as_string
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:515,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:520,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - scheduler
    - print_original
    - use_date
    argTypes:
    - pcmk_scheduler_t*
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 523
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 523
    functionName: set_effective_date
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_simulate.c
    functionUses: []
    functionsReached:
    - crm_time_log
    - crm_time_as_string
    - crm_element_value_epoch
    - pcmk__copy_timet
    - free
    - pcmk__assert
    - crm_time_new
    linkageType: ''
    returnType: void
    signature: 'static void set_effective_date(pcmk_scheduler_t *scheduler, bool print_original,
      const char *use_date) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:590,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:599,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:602,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:607,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:623,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:625,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:636,1
    - Dst: pcmk__inject_resource_history
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:640,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:646,1
    - Dst: strncasecmp
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:668,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:717,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:725,1
    - Dst: strlen
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:679,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:647,1
    - Dst: strlen
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:668,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:568,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:577,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:579,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:584,1
    - Dst: pe_find_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:606,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:633,1
    - Dst: pcmk__inject_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:634,1
    - Dst: pcmk__event_from_graph_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:652,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:671,1
    - Dst: strncasecmp
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:679,1
    - Dst: pcmk__inject_failcount
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:710,1
    - Dst: pcmk_str_is_infinity
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:712,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:675,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:723,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:624,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:637,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:677,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:690,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:699,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:705,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:720,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:724,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:644,1
    - Dst: pcmk__update_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:726,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:682,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:666,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:707,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:574,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:569,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:583,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:589,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:616,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:601,1
    - Dst: pe_find_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:610,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:627,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:629,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:702,1
    - Dst: pcmk__inject_action_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:716,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:703,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 115
    argCount: 2
    argNames:
    - graph
    - action
    argTypes:
    - pcmk__graph_t*
    - pcmk__graph_action_t*
    constantsTouched: []
    func_position:
      end: 728
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 728
    functionName: simulate_resource_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_simulate.c
    functionUses: []
    functionsReached:
    - pcmk__inject_action_result
    - pcmk__xe_first_child
    - pcmk__inject_failcount
    - free
    - pcmk__s
    - crm_strdup_printf
    - crm_element_value
    - pcmk__assert
    - crm_meta_value
    - crm_err
    - pcmk_str_is_infinity
    - pcmk__event_from_graph_action
    - pcmk__set_graph_action_flags
    - pcmk__str_eq
    - strcmp
    - pcmk__strcase_any_of
    - pcmk__inject_node
    - lrmd_free_event
    - pcmk__scan_min_int
    - crm_log_xml_err
    - pcmk__update_graph
    - sscanf
    - crm_debug
    - pcmk__inject_resource_history
    - pcmk__xml_free
    - strncasecmp
    - pe_find_resource
    - strlen
    - crm_element_value_copy
    linkageType: ''
    returnType: int
    signature: 'static int simulate_resource_action(pcmk__graph_t *graph, pcmk__graph_action_t
      *action) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__inject_node_state_change
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:775,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:778,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:779,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:793,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:801,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:772,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:770,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:785,1
    - Dst: g_string_truncate
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:792,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:765,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:766,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:800,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:804,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:782,1
    - Dst: pcmk__update_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:805,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:806,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - graph
    - action
    argTypes:
    - pcmk__graph_t*
    - pcmk__graph_action_t*
    constantsTouched: []
    func_position:
      end: 808
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 808
    functionName: simulate_fencing_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_simulate.c
    functionUses: []
    functionsReached:
    - g_string_truncate
    - pcmk__set_graph_action_flags
    - crm_xml_add
    - pcmk__str_eq
    - g_string_free
    - g_string_sized_new
    - pcmk__xml_free
    - free
    - pcmk__assert
    - crm_meta_value
    - crm_element_value_copy
    - pcmk__inject_node_state_change
    - pcmk__update_graph
    - pcmk__g_strcat
    linkageType: ''
    returnType: int
    signature: 'static int simulate_fencing_action(pcmk__graph_t *graph, pcmk__graph_action_t
      *action) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__log_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:835,1
    - Dst: pcmk__unpack_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:834,1
    - Dst: pcmk__set_graph_functions
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:833,1
    - Dst: pcmk__execute_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:839,1
    - Dst: pcmk__graph_status2text
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:845,1
    - Dst: pcmk__log_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:846,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:857,1
    - Dst: pcmk__free_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:849,1
    - Dst: pcmk_reset_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:858,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - scheduler
    - cib
    - op_fail_list
    argTypes:
    - pcmk_scheduler_t*
    - cib_t*
    - GList*
    constantsTouched: []
    func_position:
      end: 863
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 863
    functionName: pcmk__simulate_transition
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_simulate.c
    functionUses: []
    functionsReached:
    - pcmk__graph_status2text
    - pcmk__set_graph_functions
    - pcmk__free_graph
    - pcmk__unpack_graph
    - pcmk__assert
    - pcmk_reset_scheduler
    - pcmk__log_graph
    - pcmk__execute_graph
    linkageType: ''
    returnType: enum pcmk__graph_status
    signature: 'enum pcmk__graph_status pcmk__simulate_transition(pcmk_scheduler_t
      *scheduler, cib_t *cib, const GList *op_fail_list) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:1055,1
    - Dst: pe__register_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:1060,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:1066,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:1061,1
    - Dst: pcmk__simulate
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:1063,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:1066,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 9
    argNames:
    - xml
    - scheduler
    - injections
    - flags
    - section_opts
    - use_date
    - input_file
    - graph_file
    - dot_file
    argTypes:
    - xmlNodePtr*
    - pcmk_scheduler_t*
    - pcmk_injections_t*
    - unsigned int
    - unsigned int
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1068
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1068
    functionName: pcmk_simulate
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_simulate.c
    functionUses: []
    functionsReached:
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - pe__register_messages
    - pcmk__xml_output_finish
    - pcmk__simulate
    - pcmk__register_lib_messages
    linkageType: ''
    returnType: int
    signature: 'int pcmk_simulate(xmlNodePtr *xml, pcmk_scheduler_t *scheduler, const
      pcmk_injections_t *injections, unsigned int flags, unsigned int section_opts,
      const char *use_date, const char *input_file, const char *graph_file, const
      char *dot_file) '
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: cib__signon_query
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:877,1
    - Dst: pcmk__inject_scheduler_input
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:924,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:943,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:980,1
    - Dst: write_sim_dotfile
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:996,1
    - Dst: pcmk__simulate_transition
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:1017,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:1028,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:1040,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:998,1
    - Dst: print_cluster_status
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:1036,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:887,1
    - Dst: print_cluster_status
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:906,1
    - Dst: PCMK__OUTPUT_SPACER_IF
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:923,1
    - Dst: reset
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:933,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:954,1
    - Dst: PCMK__OUTPUT_SPACER_IF
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:955,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:959,1
    - Dst: PCMK__OUTPUT_SPACER_IF
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:960,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:997,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:1032,1
    - Dst: cluster_status
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:1035,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:1031,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:1029,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:885,1
    - Dst: reset
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:882,1
    - Dst: PCMK__OUTPUT_SPACER_IF
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:894,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:929,1
    - Dst: pcmk__log_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:965,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:970,1
    - Dst: pcmk__schedule_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:974,1
    - Dst: pcmk__xml_write_file
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:987,1
    - Dst: print_transition_summary
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:1006,1
    - Dst: pcmk__xml_write_file
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:937,1
    - Dst: PCMK__OUTPUT_SPACER_IF
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:949,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:946,1
    - Dst: pe__register_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:969,1
    - Dst: PCMK__OUTPUT_SPACER_IF
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:1016,1
    - Dst: set_effective_date
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:1026,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:1012,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 142
    argCount: 9
    argNames:
    - scheduler
    - out
    - injections
    - flags
    - section_opts
    - use_date
    - input_file
    - graph_file
    - dot_file
    argTypes:
    - pcmk_scheduler_t*
    - pcmk__output_t*
    - pcmk_injections_t*
    - uint32_t
    - uint32_t
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1042
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 1042
    functionName: pcmk__simulate
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_simulate.c
    functionUses: []
    functionsReached:
    - pcmk__simulate_transition
    - pe__register_messages
    - pcmk__set_scheduler_flags
    - PCMK__OUTPUT_SPACER_IF
    - pcmk__schedule_actions
    - cib__signon_query
    - cluster_status
    - pcmk_legacy2rc
    - print_transition_summary
    - print_cluster_status
    - pcmk_is_set
    - pcmk_all_flags_set
    - pcmk__inject_scheduler_input
    - set_effective_date
    - pcmk_any_flags_set
    - cib__clean_up_connection
    - pcmk__log_output_new
    - pcmk__xml_write_file
    - pcmk__output_free
    - reset
    - pcmk__register_lib_messages
    - write_sim_dotfile
    linkageType: ''
    returnType: int
    signature: 'int pcmk__simulate(pcmk_scheduler_t *scheduler, pcmk__output_t *out,
      const pcmk_injections_t *injections, uint32_t flags, uint32_t section_opts,
      const char *use_date, const char *input_file, const char *graph_file, const
      char *dot_file) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:54,1
    - Dst: pcmk__guint_from_hash
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:71,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:86,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:90,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:93,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:78,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:97,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:110,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:114,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:58,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:83,1
    - Dst: pcmk__notify_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:84,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:99,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:95,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:106,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:120,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:76,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:80,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:102,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:118,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 61
    argCount: 2
    argNames:
    - action
    - verbose
    argTypes:
    - pcmk_action_t*
    - bool
    constantsTouched: []
    func_position:
      end: 124
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 124
    functionName: create_action_name
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_simulate.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - pcmk__notify_key
    - crm_strdup_printf
    - pcmk__guint_from_hash
    - pcmk__str_eq
    - pcmk__strcase_any_of
    - pcmk_is_set
    - free
    - pcmk__assert
    - pcmk__op_key
    linkageType: ''
    returnType: char*
    signature: 'static char *create_action_name(const pcmk_action_t *action, bool
      verbose) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:259,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:308,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:295,1
    - Dst: create_action_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:303,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:313,1
    - Dst: fflush
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:314,1
    - Dst: fopen
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:229,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:235,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:270,1
    - Dst: create_action_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:304,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:307,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:271,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:247,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:267,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:267,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:274,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:243,1
    - Dst: create_action_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:241,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:252,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:305,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:297,1
    - Dst: fclose
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:315,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 71
    argCount: 4
    argNames:
    - scheduler
    - dot_file
    - all_actions
    - verbose
    argTypes:
    - pcmk_scheduler_t*
    - char*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 317
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 317
    functionName: write_sim_dotfile
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_simulate.c
    functionUses: []
    functionsReached:
    - fclose
    - CRM_LOG_ASSERT
    - fopen
    - pcmk__set_action_flags
    - create_action_name
    - pcmk_is_set
    - free
    - fflush
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int write_sim_dotfile(pcmk_scheduler_t *scheduler, const char
      *dot_file, bool all_actions, bool verbose) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:149,1
    - Dst: PCMK__OUTPUT_SPACER_IF
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:151,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - scheduler
    - show_opts
    - section_opts
    - title
    - print_spacer
    argTypes:
    - pcmk_scheduler_t*
    - uint32_t
    - uint32_t
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 160
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 160
    functionName: print_cluster_status
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_simulate.c
    functionUses: []
    functionsReached:
    - PCMK__OUTPUT_SPACER_IF
    - g_list_prepend
    - g_list_free
    linkageType: ''
    returnType: void
    signature: 'static void print_cluster_status(pcmk_scheduler_t *scheduler, uint32_t
      show_opts, uint32_t section_opts, const char *title, bool print_spacer) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:387,1
    - Dst: pcmk__xml_read
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:389,1
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:392,1
    - Dst: clock
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:390,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:393,1
    - Dst: pcmk__update_configured_schema
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:396,1
    - Dst: pcmk__validate_xml
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:400,1
    - Dst: pcmk_reset_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:405,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:408,1
    - Dst: set_effective_date
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:409,1
    - Dst: pcmk_reset_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:416,1
    - Dst: clock
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:417,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:421,1
    - Dst: pcmk__schedule_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:410,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 5
    argNames:
    - xml_file
    - repeat
    - scheduler
    - flags
    - use_date
    argTypes:
    - char*
    - unsigned int
    - pcmk_scheduler_t*
    - uint64_t
    - char*
    constantsTouched: []
    func_position:
      end: 422
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 422
    functionName: profile_file
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_simulate.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__update_configured_schema
    - pcmk_find_cib_element
    - pcmk__set_scheduler_flags
    - pcmk__schedule_actions
    - pcmk__xml_read
    - pcmk__validate_xml
    - pcmk__xml_free
    - pcmk__assert
    - pcmk_reset_scheduler
    - clock
    - set_effective_date
    linkageType: ''
    returnType: void
    signature: 'static void profile_file(const char *xml_file, unsigned int repeat,
      pcmk_scheduler_t *scheduler, uint64_t flags, const char *use_date) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:434,1
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:436,1
    - Dst: scandir
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:451,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:442,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:445,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:466,1
    - Dst: profile_file
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:468,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:469,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:470,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:475,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:476,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 5
    argNames:
    - out
    - flags
    - dir
    - repeat
    - use_date
    argTypes:
    - pcmk__output_t*
    - uint32_t
    - char*
    - unsigned int
    - char*
    constantsTouched: []
    func_position:
      end: 478
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 478
    functionName: pcmk__profile_dir
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_simulate.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - scandir
    - pcmk_free_scheduler
    - pcmk_is_set
    - free
    - pcmk__assert
    - pcmk_new_scheduler
    - profile_file
    linkageType: ''
    returnType: int
    signature: 'int pcmk__profile_dir(pcmk__output_t *out, uint32_t flags, const char
      *dir, unsigned int repeat, const char *use_date) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:537,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:540,1
    - Dst: pcmk__update_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:543,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:538,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - graph
    - action
    argTypes:
    - pcmk__graph_t*
    - pcmk__graph_action_t*
    constantsTouched: []
    func_position:
      end: 545
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 545
    functionName: simulate_pseudo_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_simulate.c
    functionUses: []
    functionsReached:
    - pcmk__set_graph_action_flags
    - pcmk__update_graph
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'static int simulate_pseudo_action(pcmk__graph_t *graph, pcmk__graph_action_t
      *action) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:742,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:747,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:743,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:744,1
    - Dst: pcmk__update_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_simulate.c:749,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - graph
    - action
    argTypes:
    - pcmk__graph_t*
    - pcmk__graph_action_t*
    constantsTouched: []
    func_position:
      end: 751
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 751
    functionName: simulate_cluster_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_simulate.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - pcmk__set_graph_action_flags
    - pcmk__update_graph
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'static int simulate_cluster_action(pcmk__graph_t *graph, pcmk__graph_action_t
      *action) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewNs
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:63,1
    - Dst: xmlDocGetRootElement
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:73,1
    - Dst: xmlDocGetRootElement
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:63,1
    - Dst: xmlSetNs
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:66,1
    - Dst: xmlNewNs
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:73,1
    - Dst: xmlSetNs
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:76,1
    - Dst: xmlNewNs
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:83,1
    - Dst: xmlDocGetRootElement
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:83,1
    - Dst: xmlSetNs
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:86,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 6
    argNames:
    - i_node
    - ns
    - ret
    - ns_recycle_writable
    - ns_recycle_readable
    - ns_recycle_denied
    argTypes:
    - xmlNode*
    - xmlChar*
    - int*
    - xmlNs**
    - xmlNs**
    - xmlNs**
    constantsTouched: []
    func_position:
      end: 89
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 89
    functionName: pcmk__acl_mark_node_with_namespace
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_acl.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlSetNs
    - xmlNewNs
    linkageType: ''
    returnType: void
    signature: 'static void pcmk__acl_mark_node_with_namespace(xmlNode *i_node, const
      xmlChar *ns, int *ret, xmlNs **ns_recycle_writable, xmlNs **ns_recycle_readable,
      xmlNs **ns_recycle_denied) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_doc_set_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:128,1
    - Dst: pcmk__check_acl
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:130,1
    - Dst: annotate_with_siblings
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:147,1
    - Dst: pcmk__acl_mark_node_with_namespace
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:137,1
    - Dst: pcmk__check_acl
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:132,1
    - Dst: annotate_with_siblings
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:151,1
    - Dst: pcmk__check_acl
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:157,1
    - Dst: pcmk__check_acl
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:161,1
    - Dst: pcmk__acl_mark_node_with_namespace
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:168,1
    - Dst: pcmk__check_acl
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:176,1
    - Dst: pcmk__check_acl
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:180,1
    - Dst: pcmk__acl_mark_node_with_namespace
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:187,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 1
    argNames:
    - xml_modify
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 199
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 199
    functionName: annotate_with_siblings
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_acl.c
    functionUses: []
    functionsReached:
    - pcmk__xml_doc_set_flags
    - pcmk__check_acl
    - pcmk__acl_mark_node_with_namespace
    - annotate_with_siblings
    linkageType: ''
    returnType: int
    signature: 'static int annotate_with_siblings(xmlNode *xml_modify) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:209,1
    - Dst: strpbrk
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:214,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:210,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:211,1
    - Dst: pcmk_acl_required
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:218,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:223,1
    - Dst: xmlDocGetRootElement
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:223,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:226,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:231,1
    - Dst: xmlDocGetRootElement
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:231,1
    - Dst: xmlDocGetRootElement
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:245,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:247,1
    - Dst: annotate_with_siblings
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:238,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:250,1
    - Dst: xmlAddPrevSibling
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:245,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:241,1
    - Dst: pcmk__enable_acl
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:236,1
    - Dst: pcmk__xc_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:244,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 3
    argNames:
    - cred
    - cib_doc
    - acl_evaled_doc
    argTypes:
    - char*
    - xmlDoc*
    - xmlDoc**
    constantsTouched: []
    func_position:
      end: 253
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 253
    functionName: pcmk__acl_annotate_permissions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_acl.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlAddPrevSibling
    - CRM_CHECK
    - pcmk__xml_copy
    - crm_strdup_printf
    - strpbrk
    - pcmk__xc_create
    - pcmk__cmp_schemas_by_name
    - pcmk__enable_acl
    - free
    - pcmk__xml_free
    - crm_element_value
    - annotate_with_siblings
    - pcmk_acl_required
    linkageType: ''
    returnType: int
    signature: 'int pcmk__acl_annotate_permissions(const char *cred, const xmlDoc
      *cib_doc, xmlDoc **acl_evaled_doc) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:320,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:330,1
    - Dst: crm_crit
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:336,1
    - Dst: xsltQuoteUserParams
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:361,1
    - Dst: xsltFreeTransformContext
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:368,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:374,1
    - Dst: isatty
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:306,1
    - Dst: pcmk__xml_free_doc
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:322,1
    - Dst: pcmk__xml_artefact_path
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:325,1
    - Dst: xmlNewParserCtxt
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:327,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:343,1
    - Dst: xsltNewTransformContext
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:342,1
    - Dst: pcmk__xml_free_doc
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:366,1
    - Dst: xsltFreeStylesheet
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:393,1
    - Dst: xmlReadDoc
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:318,1
    - Dst: xmlFree
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:321,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:329,1
    - Dst: xsltApplyStylesheetUser
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:363,1
    - Dst: xmlFreeParserCtxt
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:340,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:376,1
    - Dst: xsltSaveResultToString
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:383,1
    - Dst: pcmk__xml_free_doc
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:385,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:302,1
    - Dst: xmlDocDumpFormatMemory
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:313,1
    - Dst: xmlCtxtReadFile
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:332,1
    - Dst: xsltParseStylesheetDoc
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:334,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_acl.c:395,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 69
    argCount: 3
    argNames:
    - annotated_doc
    - how
    - doc_txt_ptr
    argTypes:
    - xmlDoc*
    - enum pcmk__acl_render_how
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 397
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 397
    functionName: pcmk__acl_evaled_render
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_acl.c
    functionUses: []
    functionsReached:
    - pcmk__xml_artefact_path
    - xsltSaveResultToString
    - free
    - xsltApplyStylesheetUser
    - isatty
    - xsltFreeTransformContext
    - xsltQuoteUserParams
    - xmlFreeParserCtxt
    - pcmk__assert
    - crm_crit
    - xmlNewParserCtxt
    - xmlFree
    - pcmk__xml_free_doc
    - xmlDocDumpFormatMemory
    - xmlReadDoc
    - xmlCtxtReadFile
    - xsltParseStylesheetDoc
    - xsltFreeStylesheet
    - pcmk__mem_assert
    - xsltNewTransformContext
    linkageType: ''
    returnType: int
    signature: 'int pcmk__acl_evaled_render(xmlDoc *annotated_doc, enum pcmk__acl_render_how
      how, xmlChar **doc_txt_ptr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:57,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:60,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:61,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:59,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:63,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:65,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:66,1
    - Dst: pcmk__ttoa
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:68,1
    - Dst: time
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:68,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:70,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:71,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 20
    argCount: 4
    argNames:
    - scheduler
    - ticket_id
    - attr_set
    - ticket_state_xml
    argTypes:
    - pcmk_scheduler_t*
    - char*
    - GHashTable*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 74
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 74
    functionName: add_attribute_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_ticket.c
    functionUses: []
    functionsReached:
    - crm_is_true
    - g_hash_table_lookup
    - crm_xml_add
    - pcmk__str_eq
    - pcmk__ttoa
    - time
    - pcmk_is_set
    - free
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void add_attribute_xml(pcmk_scheduler_t *scheduler, const char
      *ticket_id, GHashTable *attr_set, xmlNode **ticket_state_xml) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:121,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:127,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:124,1
    - Dst: pcmk_cib_xpath_for
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:123,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:130,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:134,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:138,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:141,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - out
    - cib
    - ticket_id
    argTypes:
    - pcmk__output_t*
    - cib_t*
    - char*
    constantsTouched: []
    func_position:
      end: 143
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 143
    functionName: pcmk__ticket_constraints
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_ticket.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pcmk__xml_free
    - free
    - pcmk__assert
    - pcmk_cib_xpath_for
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int pcmk__ticket_constraints(pcmk__output_t *out, cib_t *cib, const
      char *ticket_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - child
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 178
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 178
    functionName: delete_single_ticket
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_ticket.c
    functionUses: []
    functionsReached:
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int delete_single_ticket(xmlNode *child, void *userdata) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__setup_output_cib_sched
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:244,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:253,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:256,1
    - Dst: pcmk__ticket_delete
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:249,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:256,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:257,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 3
    argNames:
    - xml
    - ticket_id
    - force
    argTypes:
    - xmlNodePtr*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 259
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 259
    functionName: pcmk_ticket_delete
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_ticket.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - pcmk_rc2exitc
    - pcmk_free_scheduler
    - pcmk__setup_output_cib_sched
    - pcmk__ticket_delete
    - pcmk__xml_output_finish
    linkageType: ''
    returnType: int
    signature: 'int pcmk_ticket_delete(xmlNodePtr *xml, const char *ticket_id, bool
      force) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__setup_output_cib_sched
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:302,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:311,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:310,1
    - Dst: pcmk__ticket_get_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:307,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:310,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 4
    argNames:
    - xml
    - ticket_id
    - attr_name
    - attr_default
    argTypes:
    - xmlNodePtr*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 313
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 313
    functionName: pcmk_ticket_get_attr
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_ticket.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - pcmk_free_scheduler
    - pcmk__ticket_get_attr
    - pcmk__setup_output_cib_sched
    - pcmk__xml_output_finish
    linkageType: ''
    returnType: int
    signature: 'int pcmk_ticket_get_attr(xmlNodePtr *xml, const char *ticket_id, const
      char *attr_name, const char *attr_default) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__setup_output_cib_sched
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:356,1
    - Dst: pcmk__ticket_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:367,1
    - Dst: pe__register_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:361,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:370,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:370,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:371,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - xml
    - ticket_id
    argTypes:
    - xmlNodePtr*
    - char*
    constantsTouched: []
    func_position:
      end: 373
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 373
    functionName: pcmk_ticket_info
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_ticket.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - pe__register_messages
    - pcmk__ticket_info
    - pcmk_free_scheduler
    - pcmk__setup_output_cib_sched
    - pcmk__xml_output_finish
    linkageType: ''
    returnType: int
    signature: 'int pcmk_ticket_info(xmlNodePtr *xml, const char *ticket_id) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__setup_output_cib_sched
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:430,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:442,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:439,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:442,1
    - Dst: pcmk__ticket_remove_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:435,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:443,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 4
    argNames:
    - xml
    - ticket_id
    - attr_delete
    - force
    argTypes:
    - xmlNodePtr*
    - char*
    - GList*
    - bool
    constantsTouched: []
    func_position:
      end: 445
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 445
    functionName: pcmk_ticket_remove_attr
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_ticket.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - pcmk_rc2exitc
    - pcmk__ticket_remove_attr
    - pcmk_free_scheduler
    - pcmk__setup_output_cib_sched
    - pcmk__xml_output_finish
    linkageType: ''
    returnType: int
    signature: 'int pcmk_ticket_remove_attr(xmlNodePtr *xml, const char *ticket_id,
      GList *attr_delete, bool force) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__setup_output_cib_sched
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:499,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:511,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:508,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:511,1
    - Dst: pcmk__ticket_set_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:504,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:512,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 4
    argNames:
    - xml
    - ticket_id
    - attr_set
    - force
    argTypes:
    - xmlNodePtr*
    - char*
    - GHashTable*
    - bool
    constantsTouched: []
    func_position:
      end: 514
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 514
    functionName: pcmk_ticket_set_attr
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_ticket.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - pcmk_rc2exitc
    - pcmk_free_scheduler
    - pcmk__setup_output_cib_sched
    - pcmk__xml_output_finish
    - pcmk__ticket_set_attr
    linkageType: ''
    returnType: int
    signature: 'int pcmk_ticket_set_attr(xmlNodePtr *xml, const char *ticket_id, GHashTable
      *attr_set, bool force) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__get_ticket_state
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:23,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:34,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:35,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:36,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:33,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:42,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 4
    argNames:
    - cib
    - ticket_id
    - ticket_state_xml
    - xml_top
    argTypes:
    - cib_t*
    - char*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 46
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 46
    functionName: build_ticket_modify_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_ticket.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - pcmk__get_ticket_state
    - pcmk__xml_free
    linkageType: ''
    returnType: int
    signature: 'static int build_ticket_modify_xml(cib_t *cib, const char *ticket_id,
      xmlNode **ticket_state_xml, xmlNode **xml_top) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:83,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:93,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:89,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:97,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:100,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:107,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - cib
    - ticket_id
    - state
    argTypes:
    - cib_t*
    - char*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 111
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 111
    functionName: pcmk__get_ticket_state
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_ticket.c
    functionUses: []
    functionsReached:
    - crm_log_xml_debug
    - crm_strdup_printf
    - free
    - pcmk__assert
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int pcmk__get_ticket_state(cib_t *cib, const char *ticket_id, xmlNode
      **state) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__setup_output_cib_sched
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:152,1
    - Dst: pcmk__ticket_constraints
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:157,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:164,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:164,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:161,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - xml
    - ticket_id
    argTypes:
    - xmlNodePtr*
    - char*
    constantsTouched: []
    func_position:
      end: 166
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 166
    functionName: pcmk_ticket_constraints
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_ticket.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - pcmk_rc2exitc
    - pcmk__ticket_constraints
    - pcmk__setup_output_cib_sched
    - pcmk__xml_output_finish
    linkageType: ''
    returnType: int
    signature: 'int pcmk_ticket_constraints(xmlNodePtr *xml, const char *ticket_id) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:187,1
    - Dst: pcmk__get_ticket_state
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:207,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:202,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:196,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:220,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:223,1
    - Dst: delete_single_ticket
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:225,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:232,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 5
    argNames:
    - out
    - cib
    - scheduler
    - ticket_id
    - force
    argTypes:
    - pcmk__output_t*
    - cib_t*
    - pcmk_scheduler_t*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 234
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 234
    functionName: pcmk__ticket_delete
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_ticket.c
    functionUses: []
    functionsReached:
    - crm_log_xml_debug
    - g_hash_table_lookup
    - pcmk__xe_foreach_child
    - pcmk__get_ticket_state
    - delete_single_ticket
    - pcmk_is_set
    - pcmk__xml_free
    - pcmk__assert
    linkageType: ''
    returnType: int
    signature: 'int pcmk__ticket_delete(pcmk__output_t *out, cib_t *cib, pcmk_scheduler_t
      *scheduler, const char *ticket_id, bool force) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:270,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:276,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:280,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 5
    argNames:
    - out
    - scheduler
    - ticket_id
    - attr_name
    - attr_default
    argTypes:
    - pcmk__output_t*
    - pcmk_scheduler_t*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 292
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 292
    functionName: pcmk__ticket_get_attr
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_ticket.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_hash_table_lookup
    linkageType: ''
    returnType: int
    signature: 'int pcmk__ticket_get_attr(pcmk__output_t *out, pcmk_scheduler_t *scheduler,
      const char *ticket_id, const char *attr_name, const char *attr_default) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:321,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:337,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:337,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:336,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:327,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:339,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 5
    argNames:
    - out
    - scheduler
    - ticket_id
    - details
    - raw
    argTypes:
    - pcmk__output_t*
    - pcmk_scheduler_t*
    - char*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 347
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 347
    functionName: pcmk__ticket_info
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_ticket.c
    functionUses: []
    functionsReached:
    - strdup
    - g_hash_table_lookup
    - g_hash_table_destroy
    - pcmk__strkey_table
    - pcmk__assert
    - g_hash_table_insert
    linkageType: ''
    returnType: int
    signature: 'int pcmk__ticket_info(pcmk__output_t *out, pcmk_scheduler_t *scheduler,
      const char *ticket_id, bool details, bool raw) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:383,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:399,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:406,1
    - Dst: build_ticket_modify_xml
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:394,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:407,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:411,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:414,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:416,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:418,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 34
    argCount: 6
    argNames:
    - out
    - cib
    - scheduler
    - ticket_id
    - attr_delete
    - force
    argTypes:
    - pcmk__output_t*
    - cib_t*
    - pcmk_scheduler_t*
    - char*
    - GList*
    - bool
    constantsTouched: []
    func_position:
      end: 420
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 420
    functionName: pcmk__ticket_remove_attr
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_ticket.c
    functionUses: []
    functionsReached:
    - crm_log_xml_debug
    - pcmk__xe_remove_attr
    - build_ticket_modify_xml
    - pcmk__str_eq
    - pcmk__xml_free
    - pcmk__assert
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int pcmk__ticket_remove_attr(pcmk__output_t *out, cib_t *cib, pcmk_scheduler_t
      *scheduler, const char *ticket_id, GList *attr_delete, bool force) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:455,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:471,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:462,1
    - Dst: build_ticket_modify_xml
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:466,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:475,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:476,1
    - Dst: add_attribute_xml
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:480,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:482,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:484,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:486,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 6
    argNames:
    - out
    - cib
    - scheduler
    - ticket_id
    - attr_set
    - force
    argTypes:
    - pcmk__output_t*
    - cib_t*
    - pcmk_scheduler_t*
    - char*
    - GHashTable*
    - bool
    constantsTouched: []
    func_position:
      end: 488
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 488
    functionName: pcmk__ticket_set_attr
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_ticket.c
    functionUses: []
    functionsReached:
    - crm_log_xml_debug
    - g_hash_table_lookup
    - build_ticket_modify_xml
    - pcmk__xml_free
    - pcmk__assert
    - pcmk_legacy2rc
    - add_attribute_xml
    - g_hash_table_size
    linkageType: ''
    returnType: int
    signature: 'int pcmk__ticket_set_attr(pcmk__output_t *out, cib_t *cib, pcmk_scheduler_t
      *scheduler, const char *ticket_id, GHashTable *attr_set, bool force) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:522,1
    - Dst: pcmk__get_ticket_state
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:524,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:533,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - out
    - cib
    - ticket_id
    argTypes:
    - pcmk__output_t*
    - cib_t*
    - char*
    constantsTouched: []
    func_position:
      end: 537
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 537
    functionName: pcmk__ticket_state
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_ticket.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__xml_free
    - pcmk__get_ticket_state
    linkageType: ''
    returnType: int
    signature: 'int pcmk__ticket_state(pcmk__output_t *out, cib_t *cib, const char
      *ticket_id) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__setup_output_cib_sched
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:546,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:558,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:555,1
    - Dst: pcmk__ticket_state
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:551,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_ticket.c:558,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - xml
    - ticket_id
    argTypes:
    - xmlNodePtr*
    - char*
    constantsTouched: []
    func_position:
      end: 560
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 560
    functionName: pcmk_ticket_state
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_ticket.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - pcmk_rc2exitc
    - pcmk__setup_output_cib_sched
    - pcmk__ticket_state
    - pcmk__xml_output_finish
    linkageType: ''
    returnType: int
    signature: 'int pcmk_ticket_state(xmlNodePtr *xml, const char *ticket_id) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:296,1
    - Dst: pcmk__if_tracing
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:298,1
    - Dst: pcmk__add_with_this
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:310,1
    - Dst: g_list_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:303,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - list
    - addition
    - rsc
    argTypes:
    - GList**
    - GList*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 312
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 312
    functionName: pcmk__add_with_this_list
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_list_copy
    - pcmk__add_with_this
    - pcmk__if_tracing
    linkageType: ''
    returnType: void
    signature: 'void pcmk__add_with_this_list(GList **list, GList *addition, const
      pcmk_resource_t *rsc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:461,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:462,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:469,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 3
    argNames:
    - coloc_id
    - rsc
    - influence_s
    argTypes:
    - char*
    - pcmk_resource_t*
    - char*
    constantsTouched: []
    func_position:
      end: 473
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 473
    functionName: unpack_influence
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk__config_err
    - pcmk_is_set
    - crm_str_to_boolean
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t unpack_influence(const char *coloc_id, const pcmk_resource_t
      *rsc, const char *influence_s) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1005,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1023,1
    - Dst: unpack_simple_colocation
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1042,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1018,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:981,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1000,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:986,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1002,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1012,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1024,1
    - Dst: colocate_rsc_sets
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1031,1
    - Dst: unpack_colocation_tags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:991,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:985,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1013,1
    - Dst: unpack_colocation_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1028,1
    - Dst: pcmk__xe_resolve_idref
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1015,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1023,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1037,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1010,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 50
    argCount: 2
    argNames:
    - xml_obj
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1044
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 1044
    functionName: pcmk__unpack_colocation
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - unpack_simple_colocation
    - pcmk__str_empty
    - pcmk__xe_first_child
    - pcmk__xe_resolve_idref
    - pcmk__xml_free
    - pcmk_parse_score
    - pcmk__xe_next
    - unpack_colocation_set
    - crm_element_value
    - pcmk__config_err
    - colocate_rsc_sets
    - pcmk__xe_id
    - unpack_colocation_tags
    linkageType: ''
    returnType: void
    signature: 'void pcmk__unpack_colocation(xmlNode *xml_obj, pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1078,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1088,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1080,1
    - Dst: pcmk__list_of_1
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1081,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - colocation
    - rsc
    argTypes:
    - pcmk__colocation_t*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1090
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1090
    functionName: pcmk__colocation_has_influence
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk__list_of_1
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__colocation_has_influence(const pcmk__colocation_t *colocation,
      const pcmk_resource_t *rsc) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1273,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1287,1
    - Dst: get_resource_for_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1281,1
    - Dst: get_resource_for_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1283,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1276,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1289,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1298,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1307,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1311,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1313,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1322,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1324,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1319,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 4
    argNames:
    - dependent
    - primary
    - colocation
    - preview
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - pcmk__colocation_t*
    - bool
    constantsTouched: []
    func_position:
      end: 1329
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1329
    functionName: pcmk__colocation_affects
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk__assert
    - get_resource_for_role
    - crm_trace
    - pcmk_role_text
    linkageType: ''
    returnType: enum pcmk__coloc_affects
    signature: 'enum pcmk__coloc_affects pcmk__colocation_affects(const pcmk_resource_t
      *dependent, const pcmk_resource_t *primary, const pcmk__colocation_t *colocation,
      bool preview) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1664,1
    - Dst: best_node_score_matching_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1672,1
    - Dst: pcmk__colocation_node_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1670,1
    - Dst: pcmk__colocation_has_influence
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1709,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1665,1
    - Dst: allowed_on_one
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1710,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1711,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1713,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1720,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1721,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1743,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1746,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1761,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1756,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1761,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1748,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1755,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 62
    argCount: 6
    argNames:
    - nodes
    - source_rsc
    - target_rsc
    - colocation
    - factor
    - only_positive
    argTypes:
    - GHashTable*
    - pcmk_resource_t*
    - pcmk_resource_t*
    - pcmk__colocation_t*
    - float
    - bool
    constantsTouched: []
    func_position:
      end: 1765
      start: 1652
    functionDepth: 0
    functionLinenumber: 1652
    functionLinenumberEnd: 1765
    functionName: add_node_scores_matching_attr
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - crm_trace
    - pcmk__add_scores
    - allowed_on_one
    - pcmk__colocation_has_influence
    - pcmk__node_name
    - pcmk__colocation_node_attr
    - g_hash_table_iter_init
    - best_node_score_matching_attr
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void add_node_scores_matching_attr(GHashTable *nodes, pcmk_resource_t
      *source_rsc, const pcmk_resource_t *target_rsc, const pcmk__colocation_t *colocation,
      float factor, bool only_positive) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:495,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:492,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:542,1
    - Dst: unpack_influence
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:548,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:555,1
    - Dst: pcmk__find_constraint_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:579,1
    - Dst: unpack_influence
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:588,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:592,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:596,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:602,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:483,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:531,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:536,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:550,1
    - Dst: pcmk__new_colocation
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:557,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:570,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:577,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:589,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:595,1
    - Dst: pcmk__new_colocation
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:603,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:482,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:502,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:511,1
    - Dst: pcmk__warn_once
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:516,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:524,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:534,1
    - Dst: pcmk__new_colocation
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:552,1
    - Dst: pcmk__find_constraint_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:538,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:573,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:583,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:489,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:511,1
    - Dst: pcmk__find_constraint_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:600,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 84
    argCount: 5
    argNames:
    - set
    - score
    - coloc_id
    - influence_s
    - scheduler
    argTypes:
    - xmlNode*
    - int
    - char*
    - char*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 608
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 608
    functionName: unpack_colocation_set
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk__find_constraint_resource
    - pcmk__assert
    - pcmk__rsc_trace
    - pcmk__warn_once
    - pcmk__xe_first_child
    - pcmk__new_colocation
    - pcmk__str_eq
    - pcmk_parse_score
    - pcmk__xe_next
    - unpack_influence
    - crm_element_value
    - pcmk__config_err
    - pcmk__xe_id
    - crm_trace
    - pcmk__xe_get_bool_attr
    linkageType: ''
    returnType: void
    signature: 'static void unpack_colocation_set(xmlNode *set, int score, const char
      *coloc_id, const char *influence_s, pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmp_colocation_priority
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: cmp_primary_priority
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - cmp_colocation_priority
    linkageType: ''
    returnType: gint
    signature: 'static gint cmp_primary_priority(gconstpointer a, gconstpointer b) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:236,1
    - Dst: pcmk__if_tracing
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:238,1
    - Dst: g_list_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:243,1
    - Dst: pcmk__add_this_with
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:250,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - list
    - addition
    - rsc
    argTypes:
    - GList**
    - GList*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 252
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 252
    functionName: pcmk__add_this_with_list
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_list_copy
    - pcmk__add_this_with
    - pcmk__if_tracing
    linkageType: ''
    returnType: void
    signature: 'void pcmk__add_this_with_list(GList **list, GList *addition, const
      pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:269,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:276,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:271,1
    - Dst: g_list_insert_sorted
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:277,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 3
    argNames:
    - list
    - colocation
    - rsc
    argTypes:
    - GList**
    - pcmk__colocation_t*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 279
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 279
    functionName: pcmk__add_with_this
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_list_insert_sorted
    - pcmk__rsc_trace
    - pcmk_readable_score
    linkageType: ''
    returnType: void
    signature: 'void pcmk__add_with_this(GList **list, const pcmk__colocation_t *colocation,
      const pcmk_resource_t *rsc) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:876,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:902,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:917,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:908,1
    - Dst: pcmk__tag_to_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:936,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:948,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:955,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:949,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:863,1
    - Dst: pcmk__expand_tags_in_sets
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:869,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:861,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:875,1
    - Dst: pcmk__valid_resource_or_tag
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:881,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:883,1
    - Dst: pcmk__valid_resource_or_tag
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:888,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:890,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:907,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:927,1
    - Dst: pcmk__tag_to_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:915,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:957,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:859,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:871,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:928,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:910,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:938,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 74
    argCount: 3
    argNames:
    - xml_obj
    - expanded_xml
    - scheduler
    argTypes:
    - xmlNode*
    - xmlNode**
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 962
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 962
    functionName: unpack_colocation_tags
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk__xe_remove_attr
    - CRM_CHECK
    - pcmk__xml_copy
    - crm_xml_add
    - pcmk__valid_resource_or_tag
    - pcmk__xml_free
    - crm_element_value
    - pcmk__config_err
    - crm_log_xml_trace
    - pcmk__xe_id
    - pcmk__tag_to_set
    - pcmk__expand_tags_in_sets
    linkageType: ''
    returnType: int
    signature: 'static int unpack_colocation_tags(xmlNode *xml_obj, xmlNode **expanded_xml,
      pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1237,1
    - Dst: pe__get_rsc_in_container
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1238,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1245
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1245
    functionName: get_resource_for_role
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pe__get_rsc_in_container
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'static const pcmk_resource_t *get_resource_for_role(const pcmk_resource_t
      *rsc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1622,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1623,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1629,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1625,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1632
      start: 1615
    functionDepth: 0
    functionLinenumber: 1615
    functionLinenumberEnd: 1632
    functionName: allowed_on_one
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - g_hash_table_iter_init
    - pcmk__rsc_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: bool
    signature: 'static bool allowed_on_one(const pcmk_resource_t *rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__colocation_has_influence
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1934,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1940,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1937,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 1948
      start: 1924
    functionDepth: 0
    functionLinenumber: 1924
    functionLinenumberEnd: 1948
    functionName: pcmk__add_dependent_scores
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk__is_clone
    - pcmk__rsc_trace
    - pcmk__colocation_has_influence
    linkageType: ''
    returnType: void
    signature: 'void pcmk__add_dependent_scores(gpointer data, gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_bundle_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:49,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:54,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:50,1
    - Dst: pcmk__is_bundled
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:49,1
    - Dst: pe__bundled_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:50,1
    - Dst: pcmk__node_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:58,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 3
    argNames:
    - node
    - attr
    - rsc
    argTypes:
    - pcmk_node_t*
    - char*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: pcmk__colocation_node_attr
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk__node_attr
    - pe__bundled_resource
    - pcmk__is_bundle_node
    - g_hash_table_lookup
    - pcmk__is_bundled
    - pe__const_top_resource
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__colocation_node_attr(const pcmk_node_t *node, const
      char *attr, const pcmk_resource_t *rsc) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1462,1
    - Dst: pcmk__colocation_node_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1489,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1493,1
    - Dst: get_resource_for_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1482,1
    - Dst: pcmk__colocation_node_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1491,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1515,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1517,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1520,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 3
    argNames:
    - dependent
    - primary
    - colocation
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - pcmk__colocation_t*
    constantsTouched: []
    func_position:
      end: 1525
      start: 1449
    functionDepth: 0
    functionLinenumber: 1449
    functionLinenumberEnd: 1525
    functionName: pcmk__apply_coloc_to_priority
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk__add_scores
    - pcmk__str_eq
    - pcmk__colocation_node_attr
    - pcmk_readable_score
    - pcmk__assert
    - get_resource_for_role
    linkageType: ''
    returnType: int
    signature: 'int pcmk__apply_coloc_to_priority(pcmk_resource_t *dependent, const
      pcmk_resource_t *primary, const pcmk__colocation_t *colocation) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1105,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1113,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1111,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1110,1
    - Dst: pe_action_set_reason
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1114,1
    - Dst: pcmk__block_colocation_dependents
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1115,1
    - Dst: pcmk__update_action_for_orderings
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1116,1
    - Dst: mark_action_blocked
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1122,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1124,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 3
    argNames:
    - rsc
    - task
    - reason
    argTypes:
    - pcmk_resource_t*
    - char*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1125
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1125
    functionName: mark_action_blocked
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pe_action_set_reason
    - pcmk__update_action_for_orderings
    - pcmk__str_eq
    - mark_action_blocked
    - pcmk__block_colocation_dependents
    - pcmk_is_set
    - free
    - pcmk__clear_action_flags
    linkageType: ''
    returnType: void
    signature: 'static void mark_action_blocked(pcmk_resource_t *rsc, const char *task,
      const pcmk_resource_t *reason) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1369,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1375,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1389,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1409,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1426,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1364,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1365,1
    - Dst: pcmk__copy_node_table
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1362,1
    - Dst: pcmk__any_node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1419,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1396,1
    - Dst: pcmk__colocation_node_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1379,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1395,1
    - Dst: pcmk__colocation_node_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1354,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1367,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1373,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1374,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1379,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1391,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1412,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1397,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1421,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1432,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 3
    argNames:
    - dependent
    - primary
    - colocation
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - pcmk__colocation_t*
    constantsTouched: []
    func_position:
      end: 1434
      start: 1342
    functionDepth: 0
    functionLinenumber: 1342
    functionLinenumberEnd: 1434
    functionName: pcmk__apply_coloc_to_scores
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk__copy_node_table
    - pcmk__add_scores
    - g_hash_table_destroy
    - pcmk__str_eq
    - pcmk__any_node_available
    - pcmk__node_name
    - pcmk_readable_score
    - pcmk__colocation_node_attr
    - pcmk__rsc_info
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void pcmk__apply_coloc_to_scores(pcmk_resource_t *dependent, const
      pcmk_resource_t *primary, const pcmk__colocation_t *colocation) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 2043
      start: 2036
    functionDepth: 0
    functionLinenumber: 2036
    functionLinenumberEnd: 2043
    functionName: pcmk__this_with_colocations
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: GList*
    signature: 'GList *pcmk__this_with_colocations(const pcmk_resource_t *rsc) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:360,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 4
    argNames:
    - first_rsc
    - first_role
    - then_rsc
    - then_role
    argTypes:
    - pcmk_resource_t*
    - int
    - pcmk_resource_t*
    - int
    constantsTouched: []
    func_position:
      end: 365
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 365
    functionName: anti_colocation_order
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk__order_resource_actions
    linkageType: ''
    returnType: void
    signature: 'static void anti_colocation_order(pcmk_resource_t *first_rsc, int
      first_role, pcmk_resource_t *then_rsc, int then_role) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:633,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:642,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:656,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:671,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:658,1
    - Dst: pcmk__new_colocation
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:688,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:693,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:698,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:724,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:726,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:744,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:769,1
    - Dst: pcmk__find_constraint_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:720,1
    - Dst: pcmk__new_colocation
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:732,1
    - Dst: pcmk__find_constraint_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:745,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:761,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:632,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:649,1
    - Dst: unpack_influence
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:687,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:696,1
    - Dst: pcmk__find_constraint_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:699,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:740,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:772,1
    - Dst: pcmk__new_colocation
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:776,1
    - Dst: pcmk__find_constraint_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:765,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:772,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:640,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:642,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:651,1
    - Dst: pcmk__find_constraint_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:675,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:681,1
    - Dst: unpack_influence
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:692,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:703,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:705,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:706,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:714,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:751,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:737,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:719,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:758,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:646,1
    - Dst: pcmk__find_constraint_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:652,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:668,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:665,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:679,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:681,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:673,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:658,1
    - Dst: pcmk__new_colocation
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:709,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:717,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:752,1
    - Dst: unpack_influence
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:757,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:763,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:749,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:773,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:727,1
    - Dst: unpack_influence
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:731,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 132
    argCount: 6
    argNames:
    - id
    - set1
    - set2
    - score
    - influence_s
    - scheduler
    argTypes:
    - char*
    - xmlNode*
    - xmlNode*
    - int
    - char*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 781
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 781
    functionName: colocate_rsc_sets
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk__find_constraint_resource
    - crm_trace
    - pcmk__xe_first_child
    - pcmk__new_colocation
    - pcmk__xe_next
    - unpack_influence
    - crm_element_value
    - pcmk__config_err
    - pcmk__xe_id
    - pcmk__xe_get_bool_attr
    linkageType: ''
    returnType: void
    signature: 'static void colocate_rsc_sets(const char *id, const xmlNode *set1,
      const xmlNode *set2, int score, const char *influence_s, pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 2024
      start: 2017
    functionDepth: 0
    functionLinenumber: 2017
    functionLinenumberEnd: 2024
    functionName: pcmk__with_this_colocations
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: GList*
    signature: 'GList *pcmk__with_this_colocations(const pcmk_resource_t *rsc) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:101,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:128,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:107,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:105,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:129,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:130,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:133,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:134,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:139,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 40
    argCount: 3
    argNames:
    - colocation1
    - colocation2
    - dependent
    argTypes:
    - pcmk__colocation_t*
    - pcmk__colocation_t*
    - bool
    constantsTouched: []
    func_position:
      end: 140
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 140
    functionName: cmp_colocation_priority
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__is_clone
    - pcmk_is_set
    - strcmp
    linkageType: ''
    returnType: gint
    signature: 'static gint cmp_colocation_priority(const pcmk__colocation_t *colocation1,
      const pcmk__colocation_t *colocation2, bool dependent) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1548,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1576,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1549,1
    - Dst: pcmk__copy_node_table
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1563,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1577,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1580,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1581,1
    - Dst: pcmk__colocation_node_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1581,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1589,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1591,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1601,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1594,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 45
    argCount: 4
    argNames:
    - colocation
    - rsc
    - attr
    - value
    argTypes:
    - pcmk__colocation_t*
    - pcmk_resource_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1605
      start: 1536
    functionDepth: 0
    functionLinenumber: 1536
    functionLinenumberEnd: 1605
    functionName: best_node_score_matching_attr
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk__copy_node_table
    - g_hash_table_destroy
    - pcmk__node_available
    - pcmk__str_eq
    - crm_info
    - pcmk_is_set
    - pcmk__colocation_node_attr
    - pcmk__is_group
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: int
    signature: 'static int best_node_score_matching_attr(const pcmk__colocation_t
      *colocation, pcmk_resource_t *rsc, const char *attr, const char *value) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1976,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1979,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1987,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1980,1
    - Dst: pe_find_node_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1983,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1989,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1994,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1996,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:2000,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:2001,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 5
    argNames:
    - dependent
    - primary
    - colocation
    - primary_nodes
    - merge_scores
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - pcmk__colocation_t*
    - GList*
    - bool
    constantsTouched: []
    func_position:
      end: 2005
      start: 1967
    functionDepth: 0
    functionLinenumber: 1967
    functionLinenumberEnd: 2005
    functionName: pcmk__colocation_intersect_nodes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pe_find_node_id
    - pcmk__add_scores
    - pcmk__node_name
    - pcmk_readable_score
    - pcmk__assert
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void pcmk__colocation_intersect_nodes(pcmk_resource_t *dependent,
      const pcmk_resource_t *primary, const pcmk__colocation_t *colocation, const
      GList *primary_nodes, bool merge_scores) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmp_colocation_priority
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: cmp_dependent_priority
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - cmp_colocation_priority
    linkageType: ''
    returnType: gint
    signature: 'static gint cmp_dependent_priority(gconstpointer a, gconstpointer
      b) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:209,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:216,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:211,1
    - Dst: g_list_insert_sorted
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:217,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 3
    argNames:
    - list
    - colocation
    - rsc
    argTypes:
    - GList**
    - pcmk__colocation_t*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 219
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 219
    functionName: pcmk__add_this_with
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_list_insert_sorted
    - pcmk__rsc_trace
    - pcmk_readable_score
    linkageType: ''
    returnType: void
    signature: 'void pcmk__add_this_with(GList **list, const pcmk__colocation_t *colocation,
      const pcmk_resource_t *rsc) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1145,1
    - Dst: uber_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1161,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1151,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1155,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1149,1
    - Dst: find_first_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1171,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1174,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1175,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1182,1
    - Dst: pcmk__with_this_colocations
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1186,1
    - Dst: mark_action_blocked
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1206,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1213,1
    - Dst: mark_action_blocked
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1209,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 1
    argNames:
    - action
    argTypes:
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 1214
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1214
    functionName: pcmk__block_colocation_dependents
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - g_list_free
    - pcmk__str_eq
    - mark_action_blocked
    - pcmk_is_set
    - find_first_action
    - pcmk__assert
    - uber_parent
    - crm_trace
    - pcmk__with_this_colocations
    linkageType: ''
    returnType: void
    signature: 'void pcmk__block_colocation_dependents(pcmk_action_t *action) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__copy_node_table
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1824,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1816,1
    - Dst: add_node_scores_matching_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1832,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1874,1
    - Dst: pe__show_node_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1883,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1888,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1891,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1897,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1910,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1821,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1827,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1837,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1852,1
    - Dst: pcmk__with_this_colocations
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1851,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1855,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1846,1
    - Dst: pcmk__colocation_has_influence
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1868,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1889,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1914,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1817,1
    - Dst: pcmk__copy_node_table
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1831,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1866,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1886,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1892,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1901,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1902,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1807,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1829,1
    - Dst: pcmk__this_with_colocations
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1845,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1849,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1844,1
    - Dst: pcmk__any_node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:1841,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 81
    argCount: 7
    argNames:
    - source_rsc
    - target_rsc
    - log_id
    - nodes
    - colocation
    - factor
    - flags
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - char*
    - GHashTable**
    - pcmk__colocation_t*
    - float
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1915
      start: 1797
    functionDepth: 0
    functionLinenumber: 1797
    functionLinenumberEnd: 1915
    functionName: pcmk__add_colocated_node_scores
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk__set_rsc_flags
    - pcmk__rsc_trace
    - g_list_free
    - g_hash_table_iter_init
    - g_hash_table_destroy
    - g_hash_table_iter_next
    - g_list_length
    - add_node_scores_matching_attr
    - pcmk__clear_rsc_flags
    - pcmk__with_this_colocations
    - pcmk__colocation_has_influence
    - pcmk_is_set
    - pe__show_node_scores
    - pcmk__assert
    - pcmk__rsc_info
    - pcmk__copy_node_table
    - pcmk__this_with_colocations
    - pcmk__any_node_available
    linkageType: ''
    returnType: void
    signature: 'void pcmk__add_colocated_node_scores(pcmk_resource_t *source_rsc,
      const pcmk_resource_t *target_rsc, const char *log_id, GHashTable **nodes, const
      pcmk__colocation_t *colocation, float factor, uint32_t flags) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:392,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:408,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:395,1
    - Dst: pcmk__parse_constraint_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:399,1
    - Dst: pcmk__parse_constraint_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:401,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:414,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:422,1
    - Dst: pcmk__add_this_with
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:425,1
    - Dst: pcmk__add_with_this
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:427,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:431,1
    - Dst: anti_colocation_order
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:437,1
    - Dst: anti_colocation_order
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:435,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 8
    argNames:
    - id
    - node_attr
    - score
    - dependent
    - primary
    - dependent_role_spec
    - primary_role_spec
    - flags
    argTypes:
    - char*
    - char*
    - int
    - pcmk_resource_t*
    - pcmk_resource_t*
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 440
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 440
    functionName: pcmk__new_colocation
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__rsc_trace
    - pcmk__s
    - pcmk__add_with_this
    - pcmk__assert_alloc
    - g_list_prepend
    - pcmk__add_this_with
    - pcmk__config_err
    - anti_colocation_order
    - pcmk__parse_constraint_role
    linkageType: ''
    returnType: void
    signature: 'void pcmk__new_colocation(const char *id, const char *node_attr, int
      score, pcmk_resource_t *dependent, pcmk_resource_t *primary, const char *dependent_role_spec,
      const char *primary_role_spec, uint32_t flags) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:799,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:804,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:802,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:801,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:800,1
    - Dst: pcmk__find_constraint_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:809,1
    - Dst: pcmk__find_constraint_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:811,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:815,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:820,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:825,1
    - Dst: unpack_influence
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:831,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:826,1
    - Dst: pcmk__new_colocation
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c:832,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 5
    argNames:
    - xml_obj
    - id
    - score
    - influence_s
    - scheduler
    argTypes:
    - xmlNode*
    - char*
    - int
    - char*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 834
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 834
    functionName: unpack_simple_colocation
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_colocation.c
    functionUses: []
    functionsReached:
    - pcmk__find_constraint_resource
    - pcmk__xe_attr_is_true
    - pcmk__config_warn
    - pcmk__new_colocation
    - unpack_influence
    - crm_element_value
    - pcmk__config_err
    linkageType: ''
    returnType: void
    signature: 'static void unpack_simple_colocation(const xmlNode *xml_obj, const
      char *id, int score, const char *influence_s, pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cib__signon_query
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:31,1
    - Dst: pcmk__xml_read
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:41,1
    - Dst: isspace
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:34,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:39,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - out
    - cib_source
    - cib_object
    argTypes:
    - pcmk__output_t*
    - char*
    - xmlNodePtr*
    constantsTouched: []
    func_position:
      end: 45
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 45
    functionName: pcmk__parse_cib
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_verify.c
    functionUses: []
    functionsReached:
    - pcmk__xml_read
    - cib__signon_query
    - isspace
    - pcmk__xml_parse
    linkageType: ''
    returnType: int
    signature: 'int pcmk__parse_cib(pcmk__output_t *out, const char *cib_source, xmlNodePtr
      *cib_object) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:63,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:72,1
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:77,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:68,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:79,1
    - Dst: pcmk__validate_xml
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:82,1
    - Dst: pcmk__update_configured_schema
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:89,1
    - Dst: pcmk__highest_schema_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:94,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:110,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:120,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:107,1
    - Dst: pcmk__schedule_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:112,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 3
    argNames:
    - scheduler
    - out
    - cib_object
    argTypes:
    - pcmk_scheduler_t*
    - pcmk__output_t*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 125
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 125
    functionName: pcmk__verify
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_verify.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__update_configured_schema
    - pcmk__config_err
    - pcmk__s
    - pcmk__highest_schema_name
    - pcmk_find_cib_element
    - pcmk__set_scheduler_flags
    - pcmk__xe_is
    - pcmk__assert
    - pcmk__schedule_actions
    - pcmk__validate_xml
    linkageType: ''
    returnType: int
    signature: 'int pcmk__verify(pcmk_scheduler_t *scheduler, pcmk__output_t *out,
      xmlNode **cib_object) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:136,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:142,1
    - Dst: pe__register_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:141,1
    - Dst: pcmk__parse_cib
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:144,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:146,1
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:150,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:153,1
    - Dst: pcmk__verify
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:158,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:161,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:163,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:162,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_verify.c:162,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - xml
    - cib_source
    argTypes:
    - xmlNodePtr*
    - char*
    constantsTouched: []
    func_position:
      end: 165
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 165
    functionName: pcmk_verify
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_verify.c
    functionUses: []
    functionsReached:
    - pcmk_new_scheduler
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - pe__register_messages
    - pcmk__parse_cib
    - pcmk_free_scheduler
    - pcmk__xml_free
    - pcmk__verify
    - pcmk_rc_str
    - pcmk__xml_output_finish
    - pcmk__register_lib_messages
    linkageType: ''
    returnType: int
    signature: 'int pcmk_verify(xmlNodePtr *xml, const char *cib_source) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:53,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:54,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - rsc
    - rsc_ticket
    argTypes:
    - pcmk_resource_t*
    - rsc_ticket_t*
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: ticket_role_matches
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk_role_text
    linkageType: ''
    returnType: bool
    signature: 'static bool ticket_role_matches(const pcmk_resource_t *rsc, const
      rsc_ticket_t *rsc_ticket) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:247,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:248,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:252,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:250,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:257,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:259,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:262,1
    - Dst: pcmk__find_constraint_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:266,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:267,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:269,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:273,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:270,1
    - Dst: rsc_ticket_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:275,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 4
    argNames:
    - set
    - ticket
    - loss_policy
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk__ticket_t*
    - char*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 279
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 279
    functionName: unpack_rsc_ticket_set
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c
    functionUses: []
    functionsReached:
    - pcmk__find_constraint_resource
    - CRM_CHECK
    - pcmk__rsc_trace
    - pcmk__xe_first_child
    - pcmk__xe_next
    - rsc_ticket_new
    - crm_element_value
    - pcmk__config_err
    - pcmk__xe_id
    linkageType: ''
    returnType: int
    signature: 'static int unpack_rsc_ticket_set(xmlNode *set, pcmk__ticket_t *ticket,
      const char *loss_policy, pcmk_scheduler_t *scheduler) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:69,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:71,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:88,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:93,1
    - Dst: pe_fence_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:119,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:144,1
    - Dst: ticket_role_matches
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:108,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:148,1
    - Dst: constraints_for_ticket
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:79,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:140,1
    - Dst: ticket_role_matches
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:126,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:77,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:101,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:131,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:112,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:130,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:72,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:84,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:86,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:136,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 66
    argCount: 2
    argNames:
    - rsc
    - rsc_ticket
    argTypes:
    - pcmk_resource_t*
    - rsc_ticket_t*
    constantsTouched: []
    func_position:
      end: 152
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 152
    functionName: constraints_for_ticket
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__rsc_trace
    - pcmk__set_rsc_flags
    - pcmk__clear_rsc_flags
    - pcmk_is_set
    - resource_location
    - constraints_for_ticket
    - pe_fence_node
    - pcmk_role_text
    - ticket_role_matches
    linkageType: ''
    returnType: void
    signature: 'static void constraints_for_ticket(pcmk_resource_t *rsc, const rsc_ticket_t
      *rsc_ticket) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:352,1
    - Dst: pcmk__expand_tags_in_sets
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:362,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:356,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:364,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:354,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:368,1
    - Dst: pcmk__valid_resource_or_tag
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:373,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:374,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:383,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:385,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:392,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:403,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:407,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:402,1
    - Dst: pcmk__tag_to_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:390,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 3
    argNames:
    - xml_obj
    - expanded_xml
    - scheduler
    argTypes:
    - xmlNode*
    - xmlNode**
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 412
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 412
    functionName: unpack_rsc_ticket_tags
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c
    functionUses: []
    functionsReached:
    - pcmk__xe_remove_attr
    - CRM_CHECK
    - pcmk__xml_copy
    - crm_xml_add
    - pcmk__valid_resource_or_tag
    - pcmk__xml_free
    - crm_element_value
    - pcmk__config_err
    - crm_log_xml_trace
    - pcmk__xe_id
    - pcmk__tag_to_set
    - pcmk__expand_tags_in_sets
    linkageType: ''
    returnType: int
    signature: 'static int unpack_rsc_ticket_tags(xmlNode *xml_obj, xmlNode **expanded_xml,
      pcmk_scheduler_t *scheduler) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:285,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:290,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:286,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:291,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:295,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:297,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:299,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:305,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:309,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:314,1
    - Dst: pcmk__find_constraint_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:323,1
    - Dst: rsc_ticket_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:333,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:320,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:328,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 2
    argNames:
    - xml_obj
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 334
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 334
    functionName: unpack_simple_rsc_ticket
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c
    functionUses: []
    functionsReached:
    - pcmk__find_constraint_resource
    - CRM_CHECK
    - g_hash_table_lookup
    - rsc_ticket_new
    - crm_element_value
    - pcmk__config_err
    - pcmk__xe_id
    linkageType: ''
    returnType: void
    signature: 'static void unpack_simple_rsc_ticket(xmlNode *xml_obj, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:178,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:207,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:200,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:209,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:220,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:222,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:234,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:162,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:177,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:190,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:192,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:194,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:206,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:171,1
    - Dst: pcmk__parse_constraint_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:166,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:195,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:216,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:214,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:197,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:231,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:233,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:182,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:203,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:201,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:227,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:228,1
    - Dst: constraints_for_ticket
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:235,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 5
    argNames:
    - id
    - rsc
    - ticket
    - role_spec
    - loss_policy
    argTypes:
    - char*
    - pcmk_resource_t*
    - pcmk__ticket_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 237
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 237
    functionName: rsc_ticket_new
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c
    functionUses: []
    functionsReached:
    - crm_debug
    - g_list_append
    - pcmk__rsc_trace
    - pcmk__assert_alloc
    - pcmk__str_eq
    - pcmk_is_set
    - pcmk__config_err
    - constraints_for_ticket
    - pcmk_role_text
    - pcmk__parse_constraint_role
    linkageType: ''
    returnType: void
    signature: 'static void rsc_ticket_new(const char *id, pcmk_resource_t *rsc, pcmk__ticket_t
      *ticket, const char *role_spec, const char *loss_policy) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:428,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:430,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:432,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:442,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:439,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:444,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:447,1
    - Dst: ticket_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:452,1
    - Dst: unpack_rsc_ticket_tags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:458,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:467,1
    - Dst: unpack_rsc_ticket_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:477,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:480,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:487,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:474,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:468,1
    - Dst: pcmk__xe_resolve_idref
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:473,1
    - Dst: unpack_simple_rsc_ticket
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:492,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 58
    argCount: 2
    argNames:
    - xml_obj
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 494
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 494
    functionName: pcmk__unpack_rsc_ticket
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - unpack_rsc_ticket_tags
    - g_hash_table_lookup
    - pcmk__xe_first_child
    - pcmk__strkey_table
    - unpack_rsc_ticket_set
    - pcmk__xe_resolve_idref
    - pcmk__xml_free
    - pcmk__xe_next
    - unpack_simple_rsc_ticket
    - crm_element_value
    - pcmk__config_err
    - ticket_new
    - pcmk__xe_id
    linkageType: ''
    returnType: void
    signature: 'void pcmk__unpack_rsc_ticket(xmlNode *xml_obj, pcmk_scheduler_t *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:514,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:515,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c:517,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 522
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 522
    functionName: pcmk__require_promotion_tickets
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_tickets.c
    functionUses: []
    functionsReached:
    - resource_location
    - pcmk_is_set
    linkageType: ''
    returnType: void
    signature: 'void pcmk__require_promotion_tickets(pcmk_resource_t *rsc) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:43,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:49,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:53,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:44,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:46,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:55,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:58,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:60,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:60,1
    - Dst: crm_element_value_ms
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:64,1
    - Dst: pe__is_newer_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:98,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:66,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 46
    argCount: 2
    argNames:
    - rsc
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 110
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 110
    functionName: best_op
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_resource.c
    functionUses: []
    functionsReached:
    - pcmk__ends_with
    - pcmk__xe_first_child
    - crm_strdup_printf
    - crm_element_value_ms
    - pe__is_newer_op
    - pcmk__strcase_any_of
    - pcmk__xpath_find_one
    - free
    - pcmk__xe_next
    - crm_element_value
    - pcmk__xe_id
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *best_op(const pcmk_resource_t *rsc, const pcmk_node_t
      *node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:210,1
    - Dst: best_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:216,1
    - Dst: crm_element_value_ms
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:221,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:220,1
    - Dst: pe__calculate_digests
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:229,1
    - Dst: pe__free_digests
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:233,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 4
    argNames:
    - out
    - rsc
    - node
    - overrides
    argTypes:
    - pcmk__output_t*
    - pcmk_resource_t*
    - pcmk_node_t*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 235
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 235
    functionName: pcmk__resource_digests
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_resource.c
    functionUses: []
    functionsReached:
    - crm_element_value_ms
    - best_op
    - pe__calculate_digests
    - crm_element_value
    - pe__free_digests
    - pcmk__is_primitive
    linkageType: ''
    returnType: int
    signature: 'int pcmk__resource_digests(pcmk__output_t *out, pcmk_resource_t *rsc,
      const pcmk_node_t *node, GHashTable *overrides) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:244,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:250,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:248,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:250,1
    - Dst: pcmk__resource_digests
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - xml
    - rsc
    - node
    - overrides
    argTypes:
    - xmlNodePtr*
    - pcmk_resource_t*
    - pcmk_node_t*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 252
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 252
    functionName: pcmk_resource_digests
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_resource.c
    functionUses: []
    functionsReached:
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - pcmk__xml_output_finish
    - pcmk__resource_digests
    - pcmk__register_lib_messages
    linkageType: ''
    returnType: int
    signature: 'int pcmk_resource_digests(xmlNodePtr *xml, pcmk_resource_t *rsc, const
      pcmk_node_t *node, GHashTable *overrides) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:156,1
    - Dst: pcmk__resource_delete
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:174,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:168,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:161,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:178,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:181,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:181,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 3
    argNames:
    - xml
    - rsc_id
    - rsc_type
    argTypes:
    - xmlNodePtr*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 183
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 183
    functionName: pcmk_resource_delete
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_resource.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - cib_new
    - pcmk__xml_output_finish
    - pcmk__resource_delete
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int pcmk_resource_delete(xmlNodePtr *xml, const char *rsc_id, const
      char *rsc_type) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:138,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:139,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:144,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_resource.c:142,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - cib
    - cib_opts
    - rsc_id
    - rsc_type
    argTypes:
    - cib_t*
    - uint32_t
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 146
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 146
    functionName: pcmk__resource_delete
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_resource.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - pcmk__xml_free
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int pcmk__resource_delete(cib_t *cib, uint32_t cib_opts, const char
      *rsc_id, const char *rsc_type) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_get_values
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:136,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:139,1
    - Dst: pcmk__sort_nodes
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:139,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: sorted_allowed_nodes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - pcmk__sort_nodes
    - g_hash_table_get_values
    - pcmk__current_node
    linkageType: ''
    returnType: GList*
    signature: 'static GList *sorted_allowed_nodes(const pcmk_resource_t *rsc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:880,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:881,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 886
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 886
    functionName: rsc_avoids_remote_nodes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void rsc_avoids_remote_nodes(const pcmk_resource_t *rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1356,1
    - Dst: pcmk__order_vs_unfence
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1363,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1358,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1360,1
    - Dst: start_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1361,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1365,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1366,1
    - Dst: is_expected_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1369,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1373,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1376,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1377,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - rsc
    - node
    - optional
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - bool
    constantsTouched: []
    func_position:
      end: 1379
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1379
    functionName: start_resource
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - is_expected_node
    - start_action
    - pcmk__set_action_flags
    - pcmk__node_name
    - pcmk_is_set
    - pcmk__order_vs_unfence
    - pcmk__assert
    - pcmk__clear_action_flags
    linkageType: ''
    returnType: void
    signature: 'static void start_resource(pcmk_resource_t *rsc, pcmk_node_t *node,
      bool optional) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1396,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1407,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1403,1
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1399,1
    - Dst: promote_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1410,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1412,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1414,1
    - Dst: is_expected_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1416,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1420,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1423,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1427,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1434,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1436,1
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1429,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1428,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1424,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - rsc
    - node
    - optional
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - bool
    constantsTouched: []
    func_position:
      end: 1438
      start: 1389
    functionDepth: 0
    functionLinenumber: 1389
    functionLinenumberEnd: 1438
    functionName: promote_resource
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - promote_action
    - g_list_free
    - pcmk__rsc_trace
    - is_expected_node
    - pcmk__set_action_flags
    - pcmk__node_name
    - pcmk_is_set
    - pe__resource_actions
    - pcmk__assert
    - pcmk__clear_action_flags
    linkageType: ''
    returnType: void
    signature: 'static void promote_resource(pcmk_resource_t *rsc, pcmk_node_t *node,
      bool optional) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - rsc
    - node
    - optional
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - bool
    constantsTouched: []
    func_position:
      end: 1479
      start: 1475
    functionDepth: 0
    functionLinenumber: 1475
    functionLinenumberEnd: 1479
    functionName: assert_role_error
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'static void assert_role_error(pcmk_resource_t *rsc, pcmk_node_t *node,
      bool optional) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__node_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1610,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1623,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1623,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1616,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1621,1
    - Dst: pcmk__scheduler_epoch_time
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1627,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1630
      start: 1607
    functionDepth: 0
    functionLinenumber: 1607
    functionLinenumberEnd: 1630
    functionName: shutdown_time
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - pcmk__node_attr
    - pcmk__node_name
    - pcmk__scan_ll
    - pcmk__scheduler_epoch_time
    - pcmk_rc_str
    - crm_warn
    linkageType: ''
    returnType: time_t
    signature: 'static time_t shutdown_time(pcmk_node_t *node) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1657,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1674,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1657,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1661,1
    - Dst: pe__clear_resource_history
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1677,1
    - Dst: pcmk__list_of_1
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1683,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1688,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1690,1
    - Dst: shutdown_time
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1693,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1705,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1707,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1714,1
    - Dst: pcmk__update_recheck_time
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1710,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1718,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1713,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1708,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1719
      start: 1652
    functionDepth: 0
    functionLinenumber: 1652
    functionLinenumberEnd: 1719
    functionName: pcmk__primitive_shutdown_lock
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - pcmk__rsc_debug
    - pcmk__list_of_1
    - pcmk__timeout_ms2s
    - g_list_foreach
    - pe__clear_resource_history
    - pcmk__node_name
    - pcmk__update_recheck_time
    - shutdown_time
    - pcmk__assert
    - pcmk__rsc_info
    - pcmk__is_primitive
    linkageType: ''
    returnType: void
    signature: 'void pcmk__primitive_shutdown_lock(pcmk_resource_t *rsc) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:708,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:715,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:730,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:728,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:729,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:759,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:763,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:777,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:791,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:825,1
    - Dst: start_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:847,1
    - Dst: pcmk__create_migration_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:864,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:708,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:711,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:716,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:751,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:747,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:769,1
    - Dst: pcmk__sched_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:794,1
    - Dst: pcmk__multiply_active_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:797,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:815,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:826,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:830,1
    - Dst: pcmk__create_recurring_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:861,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:836,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:714,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:742,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:762,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:796,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:808,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:818,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:828,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:848,1
    - Dst: schedule_restart_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:856,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:850,1
    - Dst: set_default_next_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:710,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:721,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:725,1
    - Dst: pcmk__rsc_can_migrate
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:732,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:743,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:750,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:766,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:770,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:798,1
    - Dst: create_pending_start
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:819,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:845,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:837,1
    - Dst: schedule_role_transition_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:859,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 117
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 866
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 866
    functionName: pcmk__primitive_create_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - pcmk__set_rsc_flags
    - schedule_restart_actions
    - schedule_role_transition_actions
    - crm_notice
    - pcmk__multiply_active_text
    - set_default_next_role
    - pcmk__s
    - pcmk__clear_rsc_flags
    - pcmk__same_node
    - pcmk__create_migration_actions
    - pcmk__node_name
    - pcmk_is_set
    - crm_element_value
    - pcmk__assert
    - pcmk_role_text
    - pcmk__create_recurring_actions
    - pcmk__rsc_trace
    - create_pending_start
    - pcmk__sched_err
    - g_list_foreach
    - start_action
    - pcmk__rsc_can_migrate
    - pcmk__is_primitive
    linkageType: ''
    returnType: void
    signature: 'void pcmk__primitive_create_actions(pcmk_resource_t *rsc) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1284,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1293,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1294,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1287,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1333,1
    - Dst: pcmk__sched_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1335,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1337,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1309,1
    - Dst: pe_action_set_reason
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1314,1
    - Dst: stop_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1311,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1315,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1324,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1310,1
    - Dst: pcmk__node_unfenced
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1334,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1295,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1298,1
    - Dst: pe_fence_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1329,1
    - Dst: is_expected_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1279,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1301,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1304,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1325,1
    - Dst: pe_action_set_reason
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1321,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1328,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 3
    argNames:
    - rsc
    - node
    - optional
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - bool
    constantsTouched: []
    func_position:
      end: 1341
      start: 1270
    functionDepth: 0
    functionLinenumber: 1270
    functionLinenumberEnd: 1341
    functionName: stop_resource
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk__sched_err
    - pe_action_set_reason
    - is_expected_node
    - order_actions
    - pcmk__same_node
    - pcmk__node_unfenced
    - stop_action
    - pcmk__node_name
    - pcmk_is_set
    - pcmk_all_flags_set
    - pe_fence_op
    - pcmk__clear_action_flags
    linkageType: ''
    returnType: void
    signature: 'static void stop_resource(pcmk_resource_t *rsc, pcmk_node_t *node,
      bool optional) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:348,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:356,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:359,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:365,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:351,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - connection
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 372
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 372
    functionName: remote_connection_assigned
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk_is_set
    - pcmk_find_node
    - crm_trace
    - pcmk_role_text
    linkageType: ''
    returnType: void
    signature: 'static void remote_connection_assigned(const pcmk_resource_t *connection) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:575,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:582,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:580,1
    - Dst: fn
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:587,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:582,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:594,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:601,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:603,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:603,1
    - Dst: fn
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:608,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:612,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - rsc
    - current
    - need_stop
    - need_promote
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 613
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 613
    functionName: schedule_restart_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - pcmk__set_rsc_flags
    - pcmk__rsc_trace
    - pcmk__clear_rsc_flags
    - pcmk_is_set
    - fn
    - pcmk_role_text
    linkageType: ''
    returnType: void
    signature: 'static void schedule_restart_actions(pcmk_resource_t *rsc, pcmk_node_t
      *current, bool need_stop, bool need_promote) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:177,1
    - Dst: sorted_allowed_nodes
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:183,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:204,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:205,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:241,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:283,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:284,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:288,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:209,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:214,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:218,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:231,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:246,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:210,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:261,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:276,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:208,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:247,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:249,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:274,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:278,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:284,1
    - Dst: pcmk__assign_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:287,1
    - Dst: pcmk__ban_insufficient_capacity
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:171,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:190,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:194,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:195,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:217,1
    - Dst: pcmk__is_unique_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:229,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 81
    argCount: 3
    argNames:
    - rsc
    - prefer
    - stop_if_fail
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - bool
    constantsTouched: []
    func_position:
      end: 290
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 290
    functionName: assign_best_node
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - g_list_free
    - pcmk__rsc_trace
    - g_hash_table_lookup
    - pcmk__node_available
    - g_list_length
    - pcmk__same_node
    - do_crm_log
    - pcmk__assign_resource
    - pcmk__node_name
    - pcmk_is_set
    - pcmk__is_unique_clone
    - pcmk_readable_score
    - pcmk__ban_insufficient_capacity
    - sorted_allowed_nodes
    - pcmk__current_node
    linkageType: ''
    returnType: bool
    signature: 'static bool assign_best_node(pcmk_resource_t *rsc, const pcmk_node_t
      *prefer, bool stop_if_fail) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:403,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:409,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:419,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:426,1
    - Dst: apply_this_with
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:444,1
    - Dst: pcmk__add_dependent_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:452,1
    - Dst: apply_this_with
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:465,1
    - Dst: pcmk__add_dependent_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:473,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:478,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:481,1
    - Dst: pe__show_node_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:498,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:427,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:430,1
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:494,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:498,1
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:513,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:524,1
    - Dst: pcmk__assign_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:527,1
    - Dst: assign_best_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:538,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:547,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:549,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:514,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:540,1
    - Dst: pcmk__assign_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:536,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:408,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:414,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:421,1
    - Dst: pe__show_node_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:456,1
    - Dst: pe__show_node_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:432,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:490,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:492,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:493,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:484,1
    - Dst: remote_connection_assigned
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:550,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:543,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:519,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:505,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:403,1
    - Dst: pcmk__with_this_colocations
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:436,1
    - Dst: pcmk__this_with_colocations
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:435,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:477,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:488,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:504,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:508,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:529,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:532,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:541,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:503,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 140
    argCount: 3
    argNames:
    - rsc
    - prefer
    - stop_if_fail
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - bool
    constantsTouched: []
    func_position:
      end: 554
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 554
    functionName: pcmk__primitive_assign
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - pcmk__set_rsc_flags
    - assign_best_node
    - crm_notice
    - pcmk__this_with_colocations
    - pcmk__current_node
    - g_list_free
    - pcmk__clear_rsc_flags
    - pcmk__node_name
    - pcmk_is_set
    - remote_connection_assigned
    - apply_this_with
    - pcmk__assert
    - pcmk__rsc_info
    - pcmk_role_text
    - pcmk__rsc_debug
    - pcmk__rsc_trace
    - pcmk__assign_resource
    - pe__show_node_scores
    - pcmk__add_dependent_scores
    - resource_location
    - pe__set_next_role
    - pcmk__is_primitive
    - pcmk__with_this_colocations
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'pcmk_node_t *pcmk__primitive_assign(pcmk_resource_t *rsc, const pcmk_node_t
      *prefer, bool stop_if_fail) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__copy_node_table
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:309,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:318,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:313,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:312,1
    - Dst: pcmk__any_node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:325,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:326,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:330,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:335,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - colocation
    - rsc
    argTypes:
    - pcmk__colocation_t*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 337
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 337
    functionName: apply_this_with
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - g_hash_table_destroy
    - pcmk_is_set
    - pcmk__rsc_info
    - pcmk__copy_node_table
    - pcmk_role_text
    - pcmk__any_node_available
    linkageType: ''
    returnType: void
    signature: 'static void apply_this_with(pcmk__colocation_t *colocation, pcmk_resource_t
      *rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_get_values
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:907,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:911,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 915
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 915
    functionName: allowed_nodes_as_list
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - g_list_sort
    - g_hash_table_get_values
    linkageType: ''
    returnType: GList*
    signature: 'static GList *allowed_nodes_as_list(const pcmk_resource_t *rsc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_expected_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1461,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1467,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1465,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1469,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1462,1
    - Dst: demote_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1470,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - rsc
    - node
    - optional
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - bool
    constantsTouched: []
    func_position:
      end: 1473
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1473
    functionName: demote_resource
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - is_expected_node
    - pcmk__node_name
    - pcmk__rsc_trace
    - demote_action
    linkageType: ''
    returnType: void
    signature: 'static void demote_resource(pcmk_resource_t *rsc, pcmk_node_t *node,
      bool optional) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1500,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1502,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1509,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1504,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1503,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1510,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1514,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1515,1
    - Dst: delete_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1516,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1519,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1521,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - rsc
    - node
    - optional
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - bool
    constantsTouched: []
    func_position:
      end: 1523
      start: 1489
    functionDepth: 0
    functionLinenumber: 1489
    functionLinenumberEnd: 1523
    functionName: pcmk__schedule_cleanup
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__rsc_trace
    - delete_action
    - pcmk__node_name
    - pcmk_is_set
    - crm_notice
    - pcmk__order_resource_actions
    linkageType: ''
    returnType: void
    signature: 'void pcmk__schedule_cleanup(pcmk_resource_t *rsc, const pcmk_node_t
      *node, bool optional) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1645,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 1649
      start: 1639
    functionDepth: 0
    functionLinenumber: 1639
    functionLinenumberEnd: 1649
    functionName: ban_if_not_locked
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - resource_location
    - pcmk__same_node
    linkageType: ''
    returnType: void
    signature: 'static void ban_if_not_locked(gpointer data, gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:649,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:653,1
    - Dst: start_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:652,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 654
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 654
    functionName: create_pending_start
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - start_action
    - pcmk__rsc_trace
    - pcmk__set_action_flags
    linkageType: ''
    returnType: void
    signature: 'static void create_pending_start(pcmk_resource_t *rsc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1198,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1216,1
    - Dst: pcmk__add_this_with_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1205,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1198,1
    - Dst: pcmk__add_this_with
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1217,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 3
    argNames:
    - rsc
    - orig_rsc
    - list
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - GList**
    constantsTouched: []
    func_position:
      end: 1221
      start: 1192
    functionDepth: 0
    functionLinenumber: 1192
    functionLinenumberEnd: 1221
    functionName: pcmk__primitive_with_colocations
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk__add_this_with
    - pcmk__assert
    - pcmk__add_this_with_list
    - pcmk__is_primitive
    linkageType: ''
    returnType: void
    signature: 'void pcmk__primitive_with_colocations(const pcmk_resource_t *rsc,
      const pcmk_resource_t *orig_rsc, GList **list) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - action
    - node
    argTypes:
    - pcmk_action_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1237
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1237
    functionName: pcmk__primitive_action_flags
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t pcmk__primitive_action_flags(pcmk_action_t *action, const
      pcmk_node_t *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1586,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1586,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1589,1
    - Dst: pcmk__release_node_capacity
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1596,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1593,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 4
    argNames:
    - rsc
    - orig_rsc
    - all_rscs
    - utilization
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - GList*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 1597
      start: 1581
    functionDepth: 0
    functionLinenumber: 1581
    functionLinenumberEnd: 1597
    functionName: pcmk__primitive_add_utilization
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk__release_node_capacity
    - pcmk_is_set
    - pcmk__assert
    - pcmk__is_primitive
    linkageType: ''
    returnType: void
    signature: 'void pcmk__primitive_add_utilization(const pcmk_resource_t *rsc, const
      pcmk_resource_t *orig_rsc, GList *all_rscs, GHashTable *utilization) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:631,1
    - Dst: pe__set_next_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:633,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 636
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 636
    functionName: set_default_next_role
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - pe__set_next_role
    linkageType: ''
    returnType: char*
    signature: 'static const char *set_default_next_role(pcmk_resource_t *rsc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1164,1
    - Dst: pcmk__add_with_this_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1171,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1164,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1182,1
    - Dst: pcmk__add_with_this
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1183,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 3
    argNames:
    - rsc
    - orig_rsc
    - list
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - GList**
    constantsTouched: []
    func_position:
      end: 1187
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1187
    functionName: pcmk__with_primitive_colocations
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - pcmk__add_with_this
    - pcmk_is_set
    - pcmk__add_with_this_list
    - pcmk__assert
    - pcmk__is_primitive
    linkageType: ''
    returnType: void
    signature: 'void pcmk__with_primitive_colocations(const pcmk_resource_t *rsc,
      const pcmk_resource_t *orig_rsc, GList **list) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1539,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1548,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1539,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1545,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1547,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1549,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1553,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1555,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1556,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1557,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1565,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1576,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1574,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - rsc
    - xml
    argTypes:
    - pcmk_resource_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1578
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1578
    functionName: pcmk__primitive_add_graph_meta
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - crm_xml_add
    - free
    - crm_meta_name
    - pcmk__assert
    - pcmk__is_primitive
    linkageType: ''
    returnType: void
    signature: 'void pcmk__primitive_add_graph_meta(const pcmk_resource_t *rsc, xmlNode
      *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:672,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:675,1
    - Dst: fn
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:682,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:677,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:676,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 685
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 685
    functionName: schedule_role_transition_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - fn
    - pcmk__rsc_trace
    - pcmk_role_text
    linkageType: ''
    returnType: void
    signature: 'static void schedule_role_transition_actions(pcmk_resource_t *rsc) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1124,1
    - Dst: pcmk__apply_coloc_to_priority
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1143,1
    - Dst: pcmk__colocation_affects
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1133,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1135,1
    - Dst: pcmk__apply_coloc_to_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1147,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 4
    argNames:
    - dependent
    - primary
    - colocation
    - for_dependent
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - pcmk__colocation_t*
    - bool
    constantsTouched: []
    func_position:
      end: 1153
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1153
    functionName: pcmk__primitive_apply_coloc_score
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk__apply_coloc_to_priority
    - pcmk__apply_coloc_to_scores
    - pcmk__colocation_affects
    - pcmk__assert
    linkageType: ''
    returnType: int
    signature: 'int pcmk__primitive_apply_coloc_score(pcmk_resource_t *dependent,
      const pcmk_resource_t *primary, const pcmk__colocation_t *colocation, bool for_dependent) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:942,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:970,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:970,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:960,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:966,1
    - Dst: allowed_nodes_as_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:989,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1009,1
    - Dst: rsc_avoids_remote_nodes
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1010,1
    - Dst: pe__resource_contains_guest_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1036,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1063,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1072,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1075,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1091,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1071,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1092,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:934,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:931,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:948,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:953,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:953,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:978,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:980,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:993,1
    - Dst: pcmk__create_utilization_constraints
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:997,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1059,1
    - Dst: rsc_avoids_remote_nodes
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1096,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:931,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:964,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:964,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:972,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1062,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1066,1
    - Dst: pcmk__new_colocation
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1085,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1098,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1079,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:935,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:943,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:945,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:949,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:954,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:960,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:978,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1003,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1019,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1031,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 95
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1099
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 1099
    functionName: pcmk__primitive_internal_constraints
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - allowed_nodes_as_list
    - pcmk__create_utilization_constraints
    - pcmk__rsc_trace
    - g_list_free
    - g_list_foreach
    - rsc_avoids_remote_nodes
    - pcmk__new_colocation
    - pcmk__str_eq
    - pcmk__new_ordering
    - pcmk_is_set
    - pe__resource_contains_guest_node
    - pe__const_top_resource
    - pcmk__assert
    - pcmk__order_resource_actions
    - pcmk__op_key
    - crm_trace
    - pcmk__is_primitive
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'void pcmk__primitive_internal_constraints(pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1256,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c:1259,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - rsc
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1260
      start: 1253
    functionDepth: 0
    functionLinenumber: 1253
    functionLinenumberEnd: 1260
    functionName: is_expected_node
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_primitive.c
    functionUses: []
    functionsReached:
    - pcmk__same_node
    - pcmk_all_flags_set
    linkageType: ''
    returnType: bool
    signature: 'static bool is_expected_node(const pcmk_resource_t *rsc, const pcmk_node_t
      *node) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:43,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:54,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:47,1
    - Dst: pcmk__new_colocation
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:59,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:64,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:74,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:75,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:76,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:83,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:85,1
    - Dst: pcmk__threshold_reached
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:78,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:89,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 2
    argNames:
    - replica
    - user_data
    argTypes:
    - pcmk__bundle_replica_t*
    - void*
    constantsTouched: []
    func_position:
      end: 93
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 93
    functionName: assign_replica
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pcmk__set_rsc_flags
    - pcmk__rsc_trace
    - pcmk__new_colocation
    - pcmk__clear_rsc_flags
    - pcmk__same_node
    - pcmk__is_pacemaker_remote_node
    - pcmk__threshold_reached
    - pe__const_top_resource
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: bool
    signature: 'static bool assign_replica(pcmk__bundle_replica_t *replica, void *user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__instance_matches
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:384,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - replica
    - user_data
    argTypes:
    - pcmk__bundle_replica_t*
    - void*
    constantsTouched: []
    func_position:
      end: 390
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 390
    functionName: match_replica_container
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pcmk__instance_matches
    linkageType: ''
    returnType: bool
    signature: 'static bool match_replica_container(const pcmk__bundle_replica_t *replica,
      void *user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:547,1
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:547,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:551,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:547,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:550,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:557,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:559,1
    - Dst: compatible_container
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:567,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:569,1
    - Dst: pcmk__assign_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:582,1
    - Dst: pcmk__colocation_intersect_nodes
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:596,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:599,1
    - Dst: pe__foreach_const_bundle_replica
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:592,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:585,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:579,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 4
    argNames:
    - dependent
    - primary
    - colocation
    - for_dependent
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - pcmk__colocation_t*
    - bool
    constantsTouched: []
    func_position:
      end: 601
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 601
    functionName: pcmk__bundle_apply_coloc_score
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_debug
    - pcmk__rsc_trace
    - g_list_free
    - pcmk__assign_resource
    - crm_notice
    - pcmk_is_set
    - pcmk__colocation_intersect_nodes
    - pcmk_readable_score
    - pcmk__is_bundle
    - pcmk__assert
    - compatible_container
    - pcmk__is_primitive
    - pe__foreach_const_bundle_replica
    linkageType: ''
    returnType: int
    signature: 'int pcmk__bundle_apply_coloc_score(pcmk_resource_t *dependent, const
      pcmk_resource_t *primary, const pcmk__colocation_t *colocation, bool for_dependent) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:1056,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:1058,1
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:1056,1
    - Dst: pe__first_container
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:1066,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 4
    argNames:
    - rsc
    - orig_rsc
    - all_rscs
    - utilization
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - GList*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 1071
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1071
    functionName: pcmk__bundle_add_utilization
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pe__first_container
    - pcmk_is_set
    - pcmk__is_bundle
    linkageType: ''
    returnType: void
    signature: 'void pcmk__bundle_add_utilization(const pcmk_resource_t *rsc, const
      pcmk_resource_t *orig_rsc, GList *all_rscs, GHashTable *utilization) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:307,1
    - Dst: pe__bundled_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:311,1
    - Dst: pe__foreach_bundle_replica
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:309,1
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:307,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:317,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:322,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:327,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:332,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:338,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:359,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:349,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:354,1
    - Dst: pcmk__promotable_restart_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:341,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:344,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 362
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 362
    functionName: pcmk__bundle_internal_constraints
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pe__foreach_bundle_replica
    - pe__bundled_resource
    - pcmk_is_set
    - pcmk__promotable_restart_ordering
    - pcmk__is_bundle
    - pcmk__assert
    - pcmk__order_resource_actions
    linkageType: ''
    returnType: void
    signature: 'void pcmk__bundle_internal_constraints(pcmk_resource_t *rsc) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:934,1
    - Dst: pe__foreach_bundle_replica
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:956,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:967,1
    - Dst: find_first_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:971,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:973,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:976,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:979,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:978,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:980,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 2
    argNames:
    - replica
    - user_data
    argTypes:
    - pcmk__bundle_replica_t*
    - void*
    constantsTouched: []
    func_position:
      end: 988
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 988
    functionName: create_replica_probes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pe__foreach_bundle_replica
    - pcmk__rsc_trace
    - pcmk__same_node
    - pcmk__node_name
    - free
    - find_first_action
    - pcmk__op_key
    - pcmk__new_ordering
    linkageType: ''
    returnType: bool
    signature: 'static bool create_replica_probes(pcmk__bundle_replica_t *replica,
      void *user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - replica
    - user_data
    argTypes:
    - pcmk__bundle_replica_t*
    - void*
    constantsTouched: []
    func_position:
      end: 1033
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1033
    functionName: output_replica_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool output_replica_actions(pcmk__bundle_replica_t *replica,
      void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:1044,1
    - Dst: pe__foreach_bundle_replica
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:1045,1
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:1044,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1046
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1046
    functionName: pcmk__output_bundle_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pe__foreach_bundle_replica
    - pcmk__is_bundle
    linkageType: ''
    returnType: void
    signature: 'void pcmk__output_bundle_actions(pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:1077,1
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:1077,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1079
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1079
    functionName: pcmk__bundle_shutdown_lock
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__is_bundle
    linkageType: ''
    returnType: void
    signature: 'void pcmk__bundle_shutdown_lock(pcmk_resource_t *rsc) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:256,1
    - Dst: pcmk__order_stops
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:252,1
    - Dst: pcmk__order_stops
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:249,1
    - Dst: pcmk__order_starts
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:243,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:261,1
    - Dst: pcmk__order_starts
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:269,1
    - Dst: pcmk__order_stops
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:272,1
    - Dst: pcmk__new_colocation
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:275,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:290,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - replica
    - user_data
    argTypes:
    - pcmk__bundle_replica_t*
    - void*
    constantsTouched: []
    func_position:
      end: 294
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 294
    functionName: replica_internal_constraints
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pcmk__order_stops
    - pcmk__new_colocation
    - pcmk__order_starts
    - pcmk__assert
    - pcmk__order_resource_actions
    linkageType: ''
    returnType: bool
    signature: 'static bool replica_internal_constraints(pcmk__bundle_replica_t *replica,
      void *user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:774,1
    - Dst: pcmk__apply_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:776,1
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:774,1
    - Dst: pe__bundled_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:779,1
    - Dst: pe__foreach_bundle_replica
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:777,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:787,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - rsc
    - location
    argTypes:
    - pcmk_resource_t*
    - pcmk__location_t*
    constantsTouched: []
    func_position:
      end: 790
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 790
    functionName: pcmk__bundle_apply_location
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pe__foreach_bundle_replica
    - pe__bundled_resource
    - g_list_prepend
    - pcmk__is_bundle
    - pcmk__apply_location
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'void pcmk__bundle_apply_location(pcmk_resource_t *rsc, pcmk__location_t
      *location) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:902,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:903,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:906,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - replica
    - user_data
    argTypes:
    - pcmk__bundle_replica_t*
    - void*
    constantsTouched: []
    func_position:
      end: 911
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 911
    functionName: order_replica_start_after
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pcmk__op_key
    - pcmk__new_ordering
    linkageType: ''
    returnType: bool
    signature: 'static bool order_replica_start_after(pcmk__bundle_replica_t *replica,
      void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:1005,1
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:1005,1
    - Dst: pe__foreach_bundle_replica
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:1006,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - rsc
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1008
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1008
    functionName: pcmk__bundle_create_probe
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pe__foreach_bundle_replica
    - pcmk__is_bundle
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__bundle_create_probe(pcmk_resource_t *rsc, pcmk_node_t *node) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__sort_nodes
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:444,1
    - Dst: get_bundle_node_host
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:435,1
    - Dst: g_hash_table_get_values
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:443,1
    - Dst: pe__foreach_const_bundle_replica
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:437,1
    - Dst: get_bundle_node_host
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:447,1
    - Dst: pe__foreach_const_bundle_replica
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:452,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:458,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - dependent
    - bundle
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 460
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 460
    functionName: compatible_container
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - g_list_free
    - g_hash_table_get_values
    - pcmk__sort_nodes
    - get_bundle_node_host
    - pe__foreach_const_bundle_replica
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'static pcmk_resource_t *compatible_container(const pcmk_resource_t
      *dependent, const pcmk_resource_t *bundle) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_set_recursive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:501,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:511,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:494,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:511,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:513,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:515,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 2
    argNames:
    - replica
    - user_data
    argTypes:
    - pcmk__bundle_replica_t*
    - void*
    constantsTouched: []
    func_position:
      end: 518
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 518
    functionName: replica_apply_coloc_score
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - is_set_recursive
    - pcmk__rsc_trace
    - pcmk__add_scores
    - pcmk__node_name
    - g_list_prepend
    - pe__const_top_resource
    linkageType: ''
    returnType: bool
    signature: 'static bool replica_apply_coloc_score(const pcmk__bundle_replica_t
      *replica, void *user_data) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:713,1
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:713,1
    - Dst: pcmk__collective_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:728,1
    - Dst: get_complex_task
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:720,1
    - Dst: pe__bundled_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:715,1
    - Dst: pe__bundle_containers
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:734,1
    - Dst: pcmk__collective_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:735,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:736,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 17
    argCount: 2
    argNames:
    - action
    - node
    argTypes:
    - pcmk_action_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 738
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 738
    functionName: pcmk__bundle_action_flags
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pe__bundle_containers
    - pe__bundled_resource
    - get_complex_task
    - g_list_free
    - pcmk__collective_action_flags
    - pcmk__is_bundle
    - pcmk__assert
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t pcmk__bundle_action_flags(pcmk_action_t *action, const pcmk_node_t
      *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - replica
    - user_data
    argTypes:
    - pcmk__bundle_replica_t*
    - void*
    constantsTouched: []
    func_position:
      end: 760
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 760
    functionName: apply_location_to_replica
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool apply_location_to_replica(pcmk__bundle_replica_t *replica,
      void *user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:870,1
    - Dst: pe__foreach_bundle_replica
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:876,1
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:870,1
    - Dst: pe__bundled_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:872,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 877
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 877
    functionName: pcmk__bundle_add_actions_to_graph
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pe__bundled_resource
    - pe__foreach_bundle_replica
    - pcmk__is_bundle
    linkageType: ''
    returnType: void
    signature: 'void pcmk__bundle_add_actions_to_graph(pcmk_resource_t *rsc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_bundle_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:404,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 412
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 412
    functionName: get_bundle_node_host
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pcmk__is_bundle_node
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'static const pcmk_node_t *get_bundle_node_host(const pcmk_node_t *node) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:657,1
    - Dst: pcmk__add_this_with_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:663,1
    - Dst: pe__bundled_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:671,1
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:657,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:661,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:673,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:674,1
    - Dst: pe__clone_flag_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:679,1
    - Dst: pcmk__add_this_with_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:684,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:688,1
    - Dst: pcmk__add_this_with_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:692,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 3
    argNames:
    - rsc
    - orig_rsc
    - list
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - GList**
    constantsTouched: []
    func_position:
      end: 695
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 695
    functionName: pcmk__bundle_with_colocations
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pe__bundled_resource
    - pe__clone_flag_is_set
    - pcmk_is_set
    - pcmk__is_bundle
    - pe__const_top_resource
    - pcmk__assert
    - pcmk__add_this_with_list
    linkageType: ''
    returnType: void
    signature: 'void pcmk__bundle_with_colocations(const pcmk_resource_t *rsc, const
      pcmk_resource_t *orig_rsc, GList **list) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:200,1
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:200,1
    - Dst: pe__bundle_containers
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:204,1
    - Dst: pe__foreach_bundle_replica
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:202,1
    - Dst: pcmk__create_instance_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:205,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:206,1
    - Dst: pe__bundled_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:208,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:212,1
    - Dst: pe__new_rsc_pseudo_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:213,1
    - Dst: pe__new_rsc_pseudo_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:219,1
    - Dst: pe__new_rsc_pseudo_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:218,1
    - Dst: pe__new_rsc_pseudo_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:214,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 224
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 224
    functionName: pcmk__bundle_create_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pe__foreach_bundle_replica
    - pe__bundle_containers
    - g_list_free
    - pe__bundled_resource
    - pe__new_rsc_pseudo_action
    - pcmk_is_set
    - pcmk__is_bundle
    - pcmk__assert
    - pcmk__create_instance_actions
    linkageType: ''
    returnType: void
    signature: 'void pcmk__bundle_create_actions(pcmk_resource_t *rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:122,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:127,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:159,1
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:122,1
    - Dst: pe__node_is_bundle_instance
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:149,1
    - Dst: pe__foreach_bundle_replica
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:139,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:136,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:125,1
    - Dst: pe__bundle_max
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:134,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:124,1
    - Dst: pe__show_node_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:127,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:133,1
    - Dst: pe__bundle_containers
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:133,1
    - Dst: pcmk__assign_instances
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:134,1
    - Dst: pe__bundled_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:142,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:148,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:147,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - rsc
    - prefer
    - stop_if_fail
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - bool
    constantsTouched: []
    func_position:
      end: 161
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 161
    functionName: pcmk__bundle_assign
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pe__foreach_bundle_replica
    - pe__bundle_containers
    - pcmk__set_rsc_flags
    - pcmk__rsc_trace
    - g_list_sort
    - g_list_free
    - pe__bundled_resource
    - pe__node_is_bundle_instance
    - pcmk__clear_rsc_flags
    - pcmk_is_set
    - pcmk__is_bundle
    - pe__show_node_scores
    - pcmk__assert
    - pcmk__assign_instances
    - pe__bundle_max
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'pcmk_node_t *pcmk__bundle_assign(pcmk_resource_t *rsc, const pcmk_node_t
      *prefer, bool stop_if_fail) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - replica
    - user_data
    argTypes:
    - pcmk__bundle_replica_t*
    - void*
    constantsTouched: []
    func_position:
      end: 185
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 185
    functionName: create_replica_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool create_replica_actions(pcmk__bundle_replica_t *replica,
      void *user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:610,1
    - Dst: pcmk__add_with_this_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:616,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:614,1
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:610,1
    - Dst: pe__bundled_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:624,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:626,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:627,1
    - Dst: pe__clone_flag_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:632,1
    - Dst: pcmk__add_with_this_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:637,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:641,1
    - Dst: pcmk__add_with_this_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:645,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 3
    argNames:
    - rsc
    - orig_rsc
    - list
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - GList**
    constantsTouched: []
    func_position:
      end: 648
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 648
    functionName: pcmk__with_bundle_colocations
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pe__bundled_resource
    - pe__clone_flag_is_set
    - pcmk_is_set
    - pcmk__add_with_this_list
    - pcmk__is_bundle
    - pe__const_top_resource
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'void pcmk__with_bundle_colocations(const pcmk_resource_t *rsc, const
      pcmk_resource_t *orig_rsc, GList **list) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pe__bundle_needs_remote_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:807,1
    - Dst: pe_rsc_params
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:831,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:815,1
    - Dst: pe__add_bundle_remote_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:820,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:833,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c:844,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - replica
    - user_data
    argTypes:
    - pcmk__bundle_replica_t*
    - void*
    constantsTouched: []
    func_position:
      end: 857
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 857
    functionName: add_replica_actions_to_graph
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_bundle.c
    functionUses: []
    functionsReached:
    - pe__add_bundle_remote_name
    - pe__bundle_needs_remote_name
    - pcmk__insert_dup
    - pcmk__xpath_find_one
    - pe_rsc_params
    - pcmk__rsc_info
    linkageType: ''
    returnType: bool
    signature: 'static bool add_replica_actions_to_graph(pcmk__bundle_replica_t *replica,
      void *user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:97,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:92,1
    - Dst: uber_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:91,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:89,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 2
    argNames:
    - rsc_list
    - id
    argTypes:
    - GList*
    - char*
    constantsTouched: []
    func_position:
      end: 99
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 99
    functionName: pcmk__find_constraint_resource
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c
    functionUses: []
    functionsReached:
    - crm_debug
    - uber_parent
    - pcmk__str_eq
    - crm_trace
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'pcmk_resource_t *pcmk__find_constraint_resource(GList *rsc_list, const
      char *id) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_constraint_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:198,1
    - Dst: find_constraint_tag
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:204,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 4
    argNames:
    - scheduler
    - id
    - rsc
    - tag
    argTypes:
    - pcmk_scheduler_t*
    - char*
    - pcmk_resource_t**
    - pcmk__idref_t**
    constantsTouched: []
    func_position:
      end: 209
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 209
    functionName: pcmk__valid_resource_or_tag
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c
    functionUses: []
    functionsReached:
    - find_constraint_tag
    - pcmk__find_constraint_resource
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__valid_resource_or_tag(const pcmk_scheduler_t *scheduler,
      const char *id, pcmk_resource_t **rsc, pcmk__idref_t **tag) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:361,1
    - Dst: pcmk__valid_resource_or_tag
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:375,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:370,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:365,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:363,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:376,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:385,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:386,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:392,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:393,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:407,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:410,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:418,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:406,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:409,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:397,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 43
    argCount: 5
    argNames:
    - xml_obj
    - rsc_set
    - attr
    - convert_rsc
    - scheduler
    argTypes:
    - xmlNode*
    - xmlNode**
    - char*
    - bool
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 422
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 422
    functionName: pcmk__tag_to_set
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_remove_attr
    - CRM_CHECK
    - pcmk__xe_id
    - crm_xml_add
    - pcmk__xe_set_bool_attr
    - crm_element_value
    - pcmk__config_err
    - pcmk__valid_resource_or_tag
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__tag_to_set(xmlNode *xml_obj, xmlNode **rsc_set, const char
      *attr, bool convert_rsc, const pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:433,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 441
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 441
    functionName: pcmk__create_internal_constraints
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c
    functionUses: []
    functionsReached:
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void pcmk__create_internal_constraints(pcmk_scheduler_t *scheduler) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:40,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:47,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:45,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:51,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:43,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:56,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:58,1
    - Dst: pcmk__unpack_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:59,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:61,1
    - Dst: pcmk__unpack_colocation
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:62,1
    - Dst: pcmk__unpack_rsc_ticket
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:68,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:71,1
    - Dst: pcmk__unpack_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:65,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:67,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:64,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 74
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 74
    functionName: pcmk__unpack_constraints
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c
    functionUses: []
    functionsReached:
    - pcmk__unpack_ordering
    - pcmk__unpack_rsc_ticket
    - pcmk__xe_first_child
    - pcmk_find_cib_element
    - pcmk__str_eq
    - pcmk__unpack_colocation
    - pcmk__xe_next
    - crm_element_value
    - pcmk__config_err
    - pcmk__unpack_location
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void pcmk__unpack_constraints(pcmk_scheduler_t *scheduler) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup_extended
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:119,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:138,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:122,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:132,1
    - Dst: g_hash_table_lookup_extended
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:129,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 3
    argNames:
    - scheduler
    - id
    - tag
    argTypes:
    - pcmk_scheduler_t*
    - char*
    - pcmk__idref_t**
    constantsTouched: []
    func_position:
      end: 140
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 140
    functionName: find_constraint_tag
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c
    functionUses: []
    functionsReached:
    - crm_notice
    - g_hash_table_lookup_extended
    - pcmk__config_warn
    linkageType: ''
    returnType: bool
    signature: 'static bool find_constraint_tag(const pcmk_scheduler_t *scheduler,
      const char *id, pcmk__idref_t **tag) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_parse_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:160,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:164,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 3
    argNames:
    - id
    - role_spec
    - role
    argTypes:
    - char*
    - char*
    - enum rsc_role_e*
    constantsTouched: []
    func_position:
      end: 178
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 178
    functionName: pcmk__parse_constraint_role
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c
    functionUses: []
    functionsReached:
    - pcmk__config_err
    - pcmk_parse_role
    linkageType: ''
    returnType: int
    signature: 'int pcmk__parse_constraint_role(const char *id, const char *role_spec,
      enum rsc_role_e *role) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:235,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:252,1
    - Dst: pcmk__valid_resource_or_tag
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:257,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:326,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:249,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:261,1
    - Dst: xmlAddNextSibling
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:299,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:328,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:332,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:244,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:257,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:259,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:298,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:261,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:309,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:240,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:242,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:262,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c:295,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 47
    argCount: 2
    argNames:
    - xml_obj
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 336
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 336
    functionName: pcmk__expand_tags_in_sets
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_constraints.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xml_copy
    - g_list_append
    - pcmk__xe_id
    - pcmk__xe_first_child
    - xmlAddNextSibling
    - g_list_free
    - crm_xml_add
    - pcmk__xml_free
    - pcmk__xe_next
    - pcmk__config_err
    - pcmk__valid_resource_or_tag
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__expand_tags_in_sets(xmlNode *xml_obj, const pcmk_scheduler_t
      *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stonith__api_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:26,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:37,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: fencing_connect
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_status.c
    functionUses: []
    functionsReached:
    - stonith__api_new
    - stonith__api_free
    linkageType: ''
    returnType: stonith_t*
    signature: 'static stonith_t *fencing_connect(void) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__pacemakerd_status
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:221,1
    - Dst: cib__signon_query
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:249,1
    - Dst: time
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:227,1
    - Dst: fencing_connect
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:245,1
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:259,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:260,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:263,1
    - Dst: pcmk__query_node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:265,1
    - Dst: pcmk__output_cluster_status
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:268,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:277,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:278,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:279,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 41
    argCount: 9
    argNames:
    - out
    - cib
    - fence_history
    - show
    - show_opts
    - only_node
    - only_rsc
    - neg_location_prefix
    - timeout_ms
    argTypes:
    - pcmk__output_t*
    - cib_t*
    - enum pcmk__fence_history
    - uint32_t
    - uint32_t
    - char*
    - char*
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 281
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 281
    functionName: pcmk__status
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_status.c
    functionUses: []
    functionsReached:
    - pcmk__mem_assert
    - pcmk__pacemakerd_status
    - fencing_connect
    - time
    - pcmk__query_node_name
    - pcmk_free_scheduler
    - pcmk_is_set
    - stonith__api_free
    - pcmk__xml_free
    - pcmk_new_scheduler
    - cib__signon_query
    - pcmk__output_cluster_status
    linkageType: ''
    returnType: int
    signature: 'int pcmk__status(pcmk__output_t *out, cib_t *cib, enum pcmk__fence_history
      fence_history, uint32_t show, uint32_t show_opts, const char *only_node, const
      char *only_rsc, const char *neg_location_prefix, unsigned int timeout_ms) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:147,1
    - Dst: pe__register_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:160,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:159,1
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:153,1
    - Dst: cib_delete
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:155,1
    - Dst: stonith__register_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:161,1
    - Dst: pcmk__status
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:163,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:165,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:165,1
    - Dst: cib_delete
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:167,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNodePtr*
    constantsTouched: []
    func_position:
      end: 169
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 169
    functionName: pcmk_status
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_status.c
    functionUses: []
    functionsReached:
    - stonith__register_messages
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - pe__register_messages
    - pcmk__status
    - cib_new
    - cib_delete
    - pcmk__xml_output_finish
    - pcmk__register_lib_messages
    linkageType: ''
    returnType: int
    signature: 'int pcmk_status(xmlNodePtr *xml) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:91,1
    - Dst: cluster_status
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:105,1
    - Dst: pe__build_rsc_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:116,1
    - Dst: pcmk__unpack_constraints
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:112,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:129,1
    - Dst: stonith__history_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:131,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:92,1
    - Dst: pcmk_reset_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:103,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:124,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:128,1
    - Dst: pe__build_node_name_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:115,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:93,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:111,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:75,1
    - Dst: pcmk__update_configured_schema
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:89,1
    - Dst: pcmk__get_fencing_history
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:99,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_status.c:110,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 40
    argCount: 11
    argNames:
    - scheduler
    - stonith
    - cib
    - current_cib
    - pcmkd_state
    - fence_history
    - show
    - show_opts
    - only_node
    - only_rsc
    - neg_location_prefix
    argTypes:
    - pcmk_scheduler_t*
    - stonith_t*
    - cib_t*
    - xmlNode*
    - enum pcmk_pacemakerd_state
    - enum pcmk__fence_history
    - uint32_t
    - uint32_t
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 134
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 134
    functionName: pcmk__output_cluster_status
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_status.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - pcmk__update_configured_schema
    - pcmk__xml_copy
    - pe__build_node_name_list
    - pcmk_rc2exitc
    - stonith__history_free
    - g_list_free_full
    - pcmk__get_fencing_history
    - pcmk_is_set
    - pcmk__xml_free
    - pcmk_rc_str
    - pcmk_reset_scheduler
    - pe__build_rsc_list
    - cluster_status
    - pcmk__unpack_constraints
    linkageType: ''
    returnType: int
    signature: 'int pcmk__output_cluster_status(pcmk_scheduler_t *scheduler, stonith_t
      *stonith, cib_t *cib, xmlNode *current_cib, enum pcmk_pacemakerd_state pcmkd_state,
      enum pcmk__fence_history fence_history, uint32_t show, uint32_t show_opts, const
      char *only_node, const char *only_rsc, const char *neg_location_prefix) '
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:271,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:275,1
    - Dst: pcmk__set_updated_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:287,1
    - Dst: update
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:300,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:289,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:313,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:324,1
    - Dst: update
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:326,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:352,1
    - Dst: pcmk__set_updated_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:355,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:434,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:391,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:445,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:454,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:366,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:488,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:475,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:286,1
    - Dst: pcmk__set_updated_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:316,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:318,1
    - Dst: update
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:340,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:354,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:363,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:392,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:394,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:397,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:370,1
    - Dst: update
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:430,1
    - Dst: update
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:441,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:456,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:460,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:484,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:416,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:463,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:409,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:473,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:474,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:428,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:485,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:261,1
    - Dst: pcmk__set_relation_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:269,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:285,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:308,1
    - Dst: update
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:310,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:315,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:331,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:358,1
    - Dst: update
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:375,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:385,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:422,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:439,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:450,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:461,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:469,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:451,1
    - Dst: update
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:418,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:476,1
    - Dst: pcmk__set_updated_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:395,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:452,1
    - Dst: update
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:405,1
    - Dst: pcmk__clear_relation_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:267,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:278,1
    - Dst: update
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:280,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:284,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:295,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:302,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:314,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:338,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:344,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:379,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:465,1
    - Dst: update
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:387,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:403,1
    - Dst: pcmk__set_updated_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:486,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 165
    argCount: 6
    argNames:
    - first
    - then
    - first_flags
    - then_flags
    - order
    - scheduler
    argTypes:
    - pcmk_action_t*
    - pcmk_action_t*
    - uint32_t
    - uint32_t
    - pcmk__related_action_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 496
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 496
    functionName: update_action_for_ordering_flags
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - pcmk__rsc_trace
    - pcmk__clear_relation_flags
    - update
    - pcmk__set_updated_flags
    - pcmk__str_eq
    - pcmk__set_relation_flags
    - pcmk__set_action_flags
    - pcmk__node_name
    - pcmk_is_set
    - pcmk__clear_action_flags
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t update_action_for_ordering_flags(pcmk_action_t *first,
      pcmk_action_t *then, uint32_t first_flags, uint32_t then_flags, pcmk__related_action_t
      *order, pcmk_scheduler_t *scheduler) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1429,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1433,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1437,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1439,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1435,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1442,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1448,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1451,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1452,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1455,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1455,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1460,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1461,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 35
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1472
      start: 1413
    functionDepth: 0
    functionLinenumber: 1413
    functionLinenumberEnd: 1472
    functionName: pcmk__output_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - g_hash_table_lookup
    - pcmk__str_eq
    - pcmk__is_guest_or_bundle_node
    - pcmk__node_name
    - pcmk_is_set
    - free
    - strdup
    linkageType: ''
    returnType: void
    signature: 'void pcmk__output_actions(pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1546,1
    - Dst: trigger_unfencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1551,1
    - Dst: pe_action_set_reason
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1550,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1547,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 4
    argNames:
    - rsc
    - task
    - interval_ms
    - node
    argTypes:
    - pcmk_resource_t*
    - char*
    - guint
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1553
      start: 1542
    functionDepth: 0
    functionLinenumber: 1542
    functionLinenumberEnd: 1553
    functionName: force_restart
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - pe_action_set_reason
    - trigger_unfencing
    - pcmk__op_key
    - custom_action
    linkageType: ''
    returnType: void
    signature: 'static void force_restart(pcmk_resource_t *rsc, const char *task,
      guint interval_ms, pcmk_node_t *node) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: schedule_reload
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1712,1
    - Dst: pcmk__reschedule_recurring
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1703,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1682,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1711,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1637,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1640,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1648,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1651,1
    - Dst: rsc_action_digest_cmp
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1670,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1660,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1655,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1667,1
    - Dst: task_for_digest
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1669,1
    - Dst: force_restart
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1690,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1702,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1689,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1681,1
    - Dst: force_restart
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1721,1
    - Dst: trigger_unfencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1708,1
    - Dst: only_sanitized_changed
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1673,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1680,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1705,1
    - Dst: crm_element_value_ms
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1643,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1641,1
    - Dst: pcmk__find_action_config
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1647,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1650,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1652,1
    - Dst: pcmk__schedule_cancel
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1654,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1659,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1668,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1666,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1661,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1715,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1719,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 3
    argNames:
    - rsc
    - node
    - xml_op
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1729
      start: 1629
    functionDepth: 0
    functionLinenumber: 1629
    functionLinenumberEnd: 1729
    functionName: pcmk__check_action_config
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - task_for_digest
    - force_restart
    - only_sanitized_changed
    - pcmk__schedule_cancel
    - pcmk__node_name
    - pcmk_is_set
    - rsc_action_digest_cmp
    - crm_element_value
    - pcmk__find_action_config
    - CRM_CHECK
    - pcmk__rsc_trace
    - pcmk__rsc_debug
    - schedule_reload
    - crm_element_value_ms
    - pcmk__reschedule_recurring
    - pcmk__readable_interval
    - crm_trace
    - crm_log_xml_debug
    - trigger_unfencing
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__check_action_config(pcmk_resource_t *rsc, pcmk_node_t *node,
      const xmlNode *xml_op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 8
    argNames:
    - rsc
    - first
    - then
    - node
    - flags
    - filter
    - type
    - scheduler
    argTypes:
    - pcmk_resource_t*
    - pcmk_action_t*
    - pcmk_action_t*
    - pcmk_node_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: update
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static inline uint32_t update(pcmk_resource_t *rsc, pcmk_action_t
      *first, pcmk_action_t *then, const pcmk_node_t *node, uint32_t flags, uint32_t
      filter, uint32_t type, pcmk_scheduler_t *scheduler) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:731,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:748,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:742,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:736,1
    - Dst: pe__rsc_running_on_only
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:749,1
    - Dst: clear_action_flag_because
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:758,1
    - Dst: clear_action_flag_because
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:759,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 2
    argNames:
    - first
    - then
    argTypes:
    - pcmk_action_t*
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 760
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 760
    functionName: handle_asymmetric_ordering
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pe__rsc_running_on_only
    - pcmk__str_eq
    - clear_action_flag_because
    linkageType: ''
    returnType: void
    signature: 'static void handle_asymmetric_ordering(const pcmk_action_t *first,
      pcmk_action_t *then) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1521,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1526,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1530,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 3
    argNames:
    - xml_op
    - digest_data
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk__op_digest_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1531
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1531
    functionName: only_sanitized_changed
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - strcmp
    - crm_element_value
    linkageType: ''
    returnType: bool
    signature: 'static bool only_sanitized_changed(const xmlNode *xml_op, const pcmk__op_digest_t
      *digest_data, const pcmk_scheduler_t *scheduler) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1572,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1579,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1578,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1582,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1580,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1583,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1591,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1592,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1595,1
    - Dst: stop_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1595,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1602,1
    - Dst: reload_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1602,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1607,1
    - Dst: stop_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1607,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1610,1
    - Dst: demote_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1610,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1601,1
    - Dst: pe_action_set_reason
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1604,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 1613
      start: 1562
    functionDepth: 0
    functionLinenumber: 1562
    functionLinenumberEnd: 1613
    functionName: schedule_reload
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - pcmk__set_rsc_flags
    - pcmk__rsc_trace
    - g_list_foreach
    - reload_key
    - pe_action_set_reason
    - pcmk_is_set
    - custom_action
    - stop_key
    - demote_key
    - pcmk__new_ordering
    linkageType: ''
    returnType: void
    signature: 'static void schedule_reload(gpointer data, gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1887,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1892,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1888,1
    - Dst: pcmk__rscs_matching_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1895,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1887,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1895,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1901,1
    - Dst: process_rsc_history
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1902,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1905,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 2
    argNames:
    - node
    - lrm_rscs
    argTypes:
    - pcmk_node_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1908
      start: 1884
    functionDepth: 0
    functionLinenumber: 1884
    functionLinenumberEnd: 1908
    functionName: process_node_history
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - g_list_free
    - pcmk__xe_first_child
    - process_rsc_history
    - pcmk__node_name
    - pcmk__xe_next
    - pcmk__rscs_matching_id
    - pcmk__xe_id
    - crm_trace
    - pcmk__is_primitive
    linkageType: ''
    returnType: void
    signature: 'static void process_node_history(pcmk_node_t *node, const xmlNode
      *lrm_rscs) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: action_uuid_for_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:192,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:200,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:196,1
    - Dst: find_first_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:194,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 1
    argNames:
    - action
    argTypes:
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 203
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 203
    functionName: action_for_ordering
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - crm_warn
    - action_uuid_for_ordering
    - free
    - find_first_action
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'static pcmk_action_t *action_for_ordering(pcmk_action_t *action) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1376,1
    - Dst: g_list_delete_link
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1398,1
    - Dst: pcmk__set_relation_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1392,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1384,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1397,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - action
    argTypes:
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 1405
      start: 1369
    functionDepth: 0
    functionLinenumber: 1369
    functionLinenumberEnd: 1405
    functionName: pcmk__deduplicate_action_inputs
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - g_list_sort
    - g_list_delete_link
    - pcmk__set_relation_flags
    - free
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void pcmk__deduplicate_action_inputs(pcmk_action_t *action) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1931,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1953,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1945,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1951,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1950,1
    - Dst: process_node_history
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1955,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1958
      start: 1928
    functionDepth: 0
    functionLinenumber: 1928
    functionLinenumberEnd: 1958
    functionName: pcmk__handle_rsc_config_changes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - process_node_history
    - crm_strdup_printf
    - pcmk__node_available
    - pcmk__xpath_find_one
    - free
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void pcmk__handle_rsc_config_changes(pcmk_scheduler_t *scheduler) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:106,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:112,1
    - Dst: pcmk__parse_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:117,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:112,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:138,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:146,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:147,1
    - Dst: pcmk__is_bundled
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:147,1
    - Dst: pcmk__notify_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:148,1
    - Dst: pcmk__action_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:149,1
    - Dst: pcmk__action_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:151,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:159,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:160,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:151,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:161,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:153,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 37
    argCount: 2
    argNames:
    - first_uuid
    - first_rsc
    argTypes:
    - char*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 162
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 162
    functionName: action_uuid_for_ordering
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - pcmk__op_key
    - pcmk__rsc_trace
    - pcmk__is_bundled
    - pcmk__notify_key
    - pcmk__is_clone
    - pcmk_is_set
    - free
    - pcmk__str_copy
    - pcmk__assert
    - strstr
    - pcmk__action_text
    - pcmk__parse_action
    - crm_err
    - parse_op_key
    linkageType: ''
    returnType: char*
    signature: 'static char *action_uuid_for_ordering(const char *first_uuid, const
      pcmk_resource_t *first_rsc) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 1361
      start: 1342
    functionDepth: 0
    functionLinenumber: 1342
    functionLinenumberEnd: 1361
    functionName: sort_action_id
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gint
    signature: 'static gint sort_action_id(gconstpointer a, gconstpointer b) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1490,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - task
    - interval_ms
    argTypes:
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 1495
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1495
    functionName: task_for_digest
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    linkageType: ''
    returnType: char*
    signature: 'static const char *task_for_digest(const char *task, guint interval_ms) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:779,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:784,1
    - Dst: is_primitive_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:779,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:785,1
    - Dst: is_primitive_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:779,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:792,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:793,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:794,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:803,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:807,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:812,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:823,1
    - Dst: clear_action_flag_because
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:813,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:817,1
    - Dst: clear_action_flag_because
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:818,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:822,1
    - Dst: clear_action_flag_because
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:824,1
    - Dst: clear_action_flag_because
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:808,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - first
    - then
    - filter
    argTypes:
    - pcmk_action_t*
    - pcmk_action_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 826
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 826
    functionName: handle_restart_ordering
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - clear_action_flag_because
    - pcmk_is_set
    - is_primitive_action
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'static void handle_restart_ordering(pcmk_action_t *first, pcmk_action_t
      *then, uint32_t filter) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1326,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1334,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - action
    argTypes:
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 1339
      start: 1321
    functionDepth: 0
    functionLinenumber: 1321
    functionLinenumberEnd: 1339
    functionName: pcmk__action_locks_rsc_to_node
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - strcmp
    - pcmk__same_node
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__action_locks_rsc_to_node(const pcmk_action_t *action) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:69,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:49,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:56,1
    - Dst: pcmk__set_raw_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:70,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - action
    - node
    argTypes:
    - pcmk_action_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 74
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 74
    functionName: action_flags_for_ordering
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - pcmk__set_raw_action_flags
    - pcmk__is_clone
    - pcmk_is_set
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t action_flags_for_ordering(pcmk_action_t *action, const
      pcmk_node_t *node) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1282,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1298,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1243,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1245,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1242,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1234,1
    - Dst: add_op_digest_to_xml
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1288,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1145,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1166,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1147,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1176,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1196,1
    - Dst: did_rsc_op_fail
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1200,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1198,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1211,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1214,1
    - Dst: pcmk__notify_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1182,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1239,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1245,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1249,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1256,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1285,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1303,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1244,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1144,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1250,1
    - Dst: crm_xml_add_ms
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1251,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1275,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1246,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1282,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1285,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1302,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1267,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1221,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1241,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1175,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1177,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1178,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1180,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1181,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1201,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1206,1
    - Dst: lrmd__set_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1190,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1218,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1225,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1240,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1271,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1272,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1238,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1291,1
    - Dst: pcmk__transition_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1228,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1248,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1264,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1301,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 115
    argCount: 6
    argNames:
    - parent
    - op
    - caller_version
    - target_rc
    - node
    - origin
    argTypes:
    - xmlNode*
    - lrmd_event_data_t*
    - char*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1305
      start: 1129
    functionDepth: 0
    functionLinenumber: 1129
    functionLinenumberEnd: 1305
    functionName: pcmk__create_history_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - crm_xml_add_ms
    - free
    - strdup
    - add_op_digest_to_xml
    - lrmd__set_result
    - pcmk__xe_create
    - pcmk__s
    - crm_strdup_printf
    - crm_xml_add_ll
    - crm_meta_value
    - pcmk__op_key
    - CRM_CHECK
    - pcmk__notify_key
    - pcmk__str_eq
    - did_rsc_op_fail
    - crm_xml_add_int
    - pcmk__readable_interval
    - pcmk__str_any_of
    - crm_trace
    - crm_debug
    - CRM_LOG_ASSERT
    - crm_xml_add
    - pcmk__transition_key
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__create_history_xml(xmlNode *parent, lrmd_event_data_t
      *op, const char *caller_version, int target_rc, const char *node, const char
      *origin) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: action_flags_for_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:628,1
    - Dst: update_action_for_ordering_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:631,1
    - Dst: pcmk__set_updated_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:642,1
    - Dst: pcmk__clear_updated_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:667,1
    - Dst: pcmk__set_updated_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:669,1
    - Dst: pcmk__update_action_for_orderings
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:680,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:527,1
    - Dst: action_type_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:528,1
    - Dst: action_node_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:530,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:544,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:581,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:568,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:586,1
    - Dst: pcmk__clear_updated_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:592,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:595,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:596,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:638,1
    - Dst: pcmk__update_action_for_orderings
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:684,1
    - Dst: action_flags_for_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:629,1
    - Dst: pcmk__clear_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:603,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:676,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:643,1
    - Dst: pcmk__update_action_for_orderings
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:661,1
    - Dst: action_optional_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:529,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:557,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:563,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:573,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:574,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:564,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:602,1
    - Dst: action_for_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:609,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:616,1
    - Dst: action_node_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:619,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:677,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:674,1
    - Dst: is_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:608,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:612,1
    - Dst: pcmk__block_colocation_dependents
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:678,1
    - Dst: action_runnable_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:530,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:558,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:579,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:583,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:569,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:587,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:601,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:653,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:673,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:652,1
    - Dst: pcmk__update_action_for_orderings
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:659,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 121
    argCount: 2
    argNames:
    - then
    - scheduler
    argTypes:
    - pcmk_action_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 687
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 687
    functionName: pcmk__update_action_for_orderings
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - pcmk__set_action_flags
    - is_parent
    - order_actions
    - pcmk__set_updated_flags
    - action_type_str
    - pcmk__update_action_for_orderings
    - pcmk__clear_rsc_flags
    - pcmk__same_node
    - pcmk__node_name
    - pcmk_is_set
    - pcmk__rsc_trace
    - pcmk__str_eq
    - action_node_str
    - strcmp
    - update_action_for_ordering_flags
    - action_runnable_str
    - action_flags_for_ordering
    - action_for_ordering
    - pcmk__is_group
    - action_optional_str
    - crm_trace
    - pcmk__block_colocation_dependents
    - pcmk__clear_updated_flags
    - pcmk__clear_action_flags
    linkageType: ''
    returnType: void
    signature: 'void pcmk__update_action_for_orderings(pcmk_action_t *then, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1072,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1077,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1081,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1074,1
    - Dst: pcmk__order_stops_before_shutdown
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1080,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1083
      start: 1066
    functionDepth: 0
    functionLinenumber: 1066
    functionLinenumberEnd: 1083
    functionName: pcmk__new_shutdown_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pcmk__insert_meta
    - custom_action
    - pcmk__assert
    - pcmk__order_stops_before_shutdown
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'pcmk_action_t *pcmk__new_shutdown_action(pcmk_node_t *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1105,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1106,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1109,1
    - Dst: pcmk__filter_op_for_digest
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1107,1
    - Dst: pcmk__digest_operation
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1108,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1110,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1111,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - op
    - update
    argTypes:
    - lrmd_event_data_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1112
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1112
    functionName: add_op_digest_to_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - g_hash_table_foreach
    - crm_xml_add
    - pcmk__filter_op_for_digest
    - pcmk__digest_operation
    - pcmk__xml_free
    - free
    linkageType: ''
    returnType: void
    signature: 'static void add_op_digest_to_xml(const lrmd_event_data_t *op, xmlNode
      *update) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1778,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1788,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1783,1
    - Dst: pe_find_node_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1796,1
    - Dst: pcmk__schedule_cleanup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1799,1
    - Dst: pcmk__schedule_cleanup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1812,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1834,1
    - Dst: rsc_history_as_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1815,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1808,1
    - Dst: crm_element_value_ms
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1831,1
    - Dst: pe__bundle_needs_remote_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1850,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1868,1
    - Dst: pcmk__add_param_check
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1858,1
    - Dst: pe_get_failcount
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1861,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1842,1
    - Dst: pcmk__is_anonymous_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1779,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1779,1
    - Dst: pcmk__schedule_cleanup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1791,1
    - Dst: pcmk__rsc_agent_changed
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1798,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1801,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1830,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1809,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1804,1
    - Dst: pcmk__rsc_agent_changed
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1811,1
    - Dst: pcmk__schedule_cancel
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1837,1
    - Dst: pcmk__check_action_config
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1860,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1838,1
    - Dst: pe__clear_failcount
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1863,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 3
    argNames:
    - rsc_entry
    - rsc
    - node
    argTypes:
    - xmlNode*
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1869
      start: 1769
    functionDepth: 0
    functionLinenumber: 1769
    functionLinenumberEnd: 1869
    functionName: process_rsc_history
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - pcmk__schedule_cleanup
    - pe__clear_failcount
    - g_list_free
    - rsc_history_as_list
    - pcmk__schedule_cancel
    - pcmk__node_name
    - pcmk_is_set
    - crm_element_value
    - pe__bundle_needs_remote_name
    - pcmk__rsc_trace
    - pe_find_node_id
    - crm_element_value_ms
    - pcmk__rsc_agent_changed
    - pcmk__strcase_any_of
    - pe_get_failcount
    - pcmk__is_anonymous_clone
    - pcmk__add_param_check
    - pcmk__check_action_config
    - pe__const_top_resource
    linkageType: ''
    returnType: void
    signature: 'static void process_rsc_history(const xmlNode *rsc_entry, pcmk_resource_t
      *rsc, pcmk_node_t *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:692,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - action
    argTypes:
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 693
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 693
    functionName: is_primitive_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - pcmk__is_primitive
    linkageType: ''
    returnType: bool
    signature: 'static inline bool is_primitive_action(const pcmk_action_t *action) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:869,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:874,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:878,1
    - Dst: clear_action_flag_because
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:894,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:899,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:906,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:922,1
    - Dst: clear_action_flag_because
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:924,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:932,1
    - Dst: clear_action_flag_because
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:934,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:943,1
    - Dst: pcmk__set_updated_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:956,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:930,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:937,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:946,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:873,1
    - Dst: clear_action_flag_because
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:880,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:892,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:879,1
    - Dst: clear_action_flag_because
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:907,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:912,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:913,1
    - Dst: clear_action_flag_because
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:915,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:919,1
    - Dst: clear_action_flag_because
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:925,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:929,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:957,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:860,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:868,1
    - Dst: clear_action_flag_because
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:875,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:893,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:887,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:888,1
    - Dst: clear_action_flag_because
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:890,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:898,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:901,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:931,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:960,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:864,1
    - Dst: handle_asymmetric_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:865,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:872,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:884,1
    - Dst: clear_action_flag_because
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:903,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:911,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:916,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:920,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:921,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:928,1
    - Dst: handle_restart_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:938,1
    - Dst: pcmk__set_updated_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:942,1
    - Dst: pcmk__update_action_for_orderings
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:951,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 113
    argCount: 7
    argNames:
    - first
    - then
    - node
    - flags
    - filter
    - type
    - scheduler
    argTypes:
    - pcmk_action_t*
    - pcmk_action_t*
    - pcmk_node_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 965
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 965
    functionName: pcmk__update_ordered_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - clear_action_flag_because
    - pcmk__set_updated_flags
    - pcmk__update_action_for_orderings
    - handle_asymmetric_ordering
    - handle_restart_ordering
    - pcmk__node_name
    - pcmk_is_set
    - pcmk_all_flags_set
    - pcmk__assert
    - pcmk__clear_action_flags
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t pcmk__update_ordered_actions(pcmk_action_t *first, pcmk_action_t
      *then, const pcmk_node_t *node, uint32_t flags, uint32_t filter, uint32_t type,
      pcmk_scheduler_t *scheduler) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__parse_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:994,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1017,1
    - Dst: pcmk__log_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1047,1
    - Dst: pcmk__log_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1042,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:983,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1015,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1019,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1053,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1039,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:997,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1001,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1006,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1024,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:999,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:985,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1044,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1054,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1052,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1049,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 3
    argNames:
    - pre_text
    - action
    - details
    argTypes:
    - char*
    - pcmk_action_t*
    - bool
    constantsTouched: []
    func_position:
      end: 1056
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 1056
    functionName: pcmk__log_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - g_list_length
    - pcmk__log_action
    - pcmk_is_set
    - pcmk__parse_action
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void pcmk__log_action(const char *pre_text, const pcmk_action_t *action,
      bool details) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1744,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1750,1
    - Dst: calculate_active_ops
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1751,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1746,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c:1748,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 3
    argNames:
    - rsc_entry
    - start_index
    - stop_index
    argTypes:
    - xmlNode*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 1753
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1753
    functionName: rsc_history_as_list
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_actions.c
    functionUses: []
    functionsReached:
    - g_list_sort
    - pcmk__xe_first_child
    - g_list_prepend
    - pcmk__xe_next
    - calculate_active_ops
    linkageType: ''
    returnType: GList*
    signature: 'static GList *rsc_history_as_list(const xmlNode *rsc_entry, int *start_index,
      int *stop_index) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__output_primitive_meta
      Src: /src/pacemaker/lib/pacemaker/pcmk_options.c:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - out
    - all
    argTypes:
    - pcmk__output_t*
    - bool
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: pcmk__list_primitive_meta
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_options.c
    functionUses: []
    functionsReached:
    - pcmk__output_primitive_meta
    linkageType: ''
    returnType: int
    signature: 'int pcmk__list_primitive_meta(pcmk__output_t *out, bool all) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__output_fencing_params
      Src: /src/pacemaker/lib/pacemaker/pcmk_options.c:91,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 2
    argNames:
    - out
    - all
    argTypes:
    - pcmk__output_t*
    - bool
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: pcmk__list_fencing_params
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_options.c
    functionUses: []
    functionsReached:
    - pcmk__output_fencing_params
    linkageType: ''
    returnType: int
    signature: 'int pcmk__list_fencing_params(pcmk__output_t *out, bool all) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_options.c:141,1
    - Dst: pcmk__list_primitive_meta
      Src: /src/pacemaker/lib/pacemaker/pcmk_options.c:148,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_options.c:146,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_options.c:150,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_options.c:150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - xml
    - all
    argTypes:
    - xmlNode**
    - bool
    constantsTouched: []
    func_position:
      end: 152
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 152
    functionName: pcmk_list_primitive_meta
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_options.c
    functionUses: []
    functionsReached:
    - pcmk__list_primitive_meta
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - pcmk__xml_output_finish
    - pcmk__register_lib_messages
    linkageType: ''
    returnType: int
    signature: 'int pcmk_list_primitive_meta(xmlNode **xml, bool all) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__output_cluster_options
      Src: /src/pacemaker/lib/pacemaker/pcmk_options.c:41,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 2
    argNames:
    - out
    - all
    argTypes:
    - pcmk__output_t*
    - bool
    constantsTouched: []
    func_position:
      end: 43
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 43
    functionName: pcmk__list_cluster_options
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_options.c
    functionUses: []
    functionsReached:
    - pcmk__output_cluster_options
    linkageType: ''
    returnType: int
    signature: 'int pcmk__list_cluster_options(pcmk__output_t *out, bool all) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_options.c:52,1
    - Dst: pcmk__list_cluster_options
      Src: /src/pacemaker/lib/pacemaker/pcmk_options.c:59,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_options.c:57,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_options.c:61,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_options.c:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - xml
    - all
    argTypes:
    - xmlNode**
    - bool
    constantsTouched: []
    func_position:
      end: 63
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 63
    functionName: pcmk_list_cluster_options
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_options.c
    functionUses: []
    functionsReached:
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - pcmk__list_cluster_options
    - pcmk__xml_output_finish
    - pcmk__register_lib_messages
    linkageType: ''
    returnType: int
    signature: 'int pcmk_list_cluster_options(xmlNode **xml, bool all) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_options.c:101,1
    - Dst: pcmk__list_fencing_params
      Src: /src/pacemaker/lib/pacemaker/pcmk_options.c:108,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_options.c:110,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_options.c:106,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_options.c:110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - xml
    - all
    argTypes:
    - xmlNode**
    - bool
    constantsTouched: []
    func_position:
      end: 112
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 112
    functionName: pcmk_list_fencing_params
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_options.c
    functionUses: []
    functionsReached:
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - pcmk__xml_output_finish
    - pcmk__list_fencing_params
    - pcmk__register_lib_messages
    linkageType: ''
    returnType: int
    signature: 'int pcmk_list_fencing_params(xmlNode **xml, bool all) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pe_find_node_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:31,1
    - Dst: pe__add_action_expected_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:39,1
    - Dst: pe__add_action_expected_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:36,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 3
    argNames:
    - probe
    - rsc
    - node
    argTypes:
    - pcmk_action_t*
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 41
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 41
    functionName: add_expected_result
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c
    functionUses: []
    functionsReached:
    - pe_find_node_id
    - pe__add_action_expected_result
    linkageType: ''
    returnType: void
    signature: 'static void add_expected_result(pcmk_action_t *probe, const pcmk_resource_t
      *rsc, const pcmk_node_t *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:80,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:83,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:86,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - rsc1
    - rsc2
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: probe_then_start
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c
    functionUses: []
    functionsReached:
    - pcmk__op_key
    - pcmk__new_ordering
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: 'static void probe_then_start(pcmk_resource_t *rsc1, pcmk_resource_t
      *rsc2) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:207,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:220,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:259,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:262,1
    - Dst: pe__resource_contains_guest_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:186,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:191,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:246,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:221,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:276,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:298,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:174,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:180,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:172,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:203,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:211,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:260,1
    - Dst: probe_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:269,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:283,1
    - Dst: pcmk__set_relation_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:285,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:292,1
    - Dst: reload_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:292,1
    - Dst: uber_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:169,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:181,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:185,1
    - Dst: pcmk__probe_resource_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:199,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:217,1
    - Dst: guest_resource_will_stop
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:255,1
    - Dst: probe_then_start
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:252,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:289,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:290,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 86
    argCount: 2
    argNames:
    - rsc
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 302
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 302
    functionName: pcmk__probe_rsc_on_node
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c
    functionUses: []
    functionsReached:
    - guest_resource_will_stop
    - pcmk__rsc_trace
    - g_hash_table_lookup
    - reload_key
    - probe_then_start
    - pcmk__is_guest_or_bundle_node
    - pcmk__set_relation_flags
    - pcmk__is_pacemaker_remote_node
    - pcmk__is_clone
    - pcmk_is_set
    - pe__resource_contains_guest_node
    - probe_action
    - pcmk__assert
    - uber_parent
    - pcmk__op_key
    - pcmk__probe_resource_list
    - pcmk__new_ordering
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__probe_rsc_on_node(pcmk_resource_t *rsc, pcmk_node_t *node) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:384,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:400,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:388,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:411,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:404,1
    - Dst: pcmk__set_relation_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:412,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:415,1
    - Dst: pcmk__set_relation_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:416,1
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:426,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:434,1
    - Dst: find_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:437,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:468,1
    - Dst: probe_needed_before_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:461,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:445,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:467,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:462,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:440,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 82
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 470
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 470
    functionName: add_probe_orderings_for_stops
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c
    functionUses: []
    functionsReached:
    - g_list_free
    - pcmk__ends_with
    - order_actions
    - probe_needed_before_action
    - pcmk__str_eq
    - pcmk__set_relation_flags
    - pcmk_is_set
    - g_list_prepend
    - find_actions
    - pe__resource_actions
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void add_probe_orderings_for_stops(pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:499,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:501,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:502,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:508,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:503,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:510,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:511,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:519,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:521,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:526,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:528,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:535,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:529,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 2
    argNames:
    - probe
    - after
    argTypes:
    - pcmk_action_t*
    - pcmk__related_action_t*
    constantsTouched: []
    func_position:
      end: 539
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 539
    functionName: add_start_orderings_for_probe
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c
    functionUses: []
    functionsReached:
    - order_actions
    - pcmk__str_eq
    - pcmk__node_name
    - pcmk_is_set
    - pe__const_top_resource
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void add_start_orderings_for_probe(pcmk_action_t *probe, pcmk__related_action_t
      *after) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:693,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 695
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 695
    functionName: clear_actions_tracking_flag
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c
    functionUses: []
    functionsReached:
    - pcmk__clear_action_flags
    linkageType: ''
    returnType: void
    signature: 'static void clear_actions_tracking_flag(pcmk_scheduler_t *scheduler) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:787,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:791,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:795,1
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:799,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:816,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:819,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:824,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:826,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:832,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:833,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:834,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:839,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:843,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:850,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:837,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:837,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:851,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 49
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 856
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 856
    functionName: order_then_probes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c
    functionUses: []
    functionsReached:
    - crm_debug
    - g_list_free
    - order_actions
    - pcmk__str_eq
    - pcmk__is_clone
    - pe__resource_actions
    - pe__const_top_resource
    - pcmk__assert
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void order_then_probes(pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:862,1
    - Dst: order_then_probes
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:866,1
    - Dst: add_probe_orderings_for_stops
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 867
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 867
    functionName: pcmk__order_probes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c
    functionUses: []
    functionsReached:
    - g_list_foreach
    - order_then_probes
    - add_probe_orderings_for_stops
    linkageType: ''
    returnType: void
    signature: 'void pcmk__order_probes(pcmk_scheduler_t *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 2
    argNames:
    - rscs
    - node
    argTypes:
    - GList*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: pcmk__probe_resource_list
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__probe_resource_list(GList *rscs, pcmk_node_t *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:112,1
    - Dst: pcmk__find_node_in_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:120,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:114,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 122
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 122
    functionName: guest_resource_will_stop
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c
    functionUses: []
    functionsReached:
    - pcmk__find_node_in_list
    - pcmk_is_set
    linkageType: ''
    returnType: bool
    signature: 'static bool guest_resource_will_stop(const pcmk_node_t *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:137,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:139,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:143,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:141,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:140,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:145,1
    - Dst: pcmk__order_vs_unfence
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:147,1
    - Dst: add_expected_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - rsc
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 150
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 150
    functionName: probe_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__node_name
    - pcmk__order_vs_unfence
    - custom_action
    - pcmk__op_key
    - pcmk__clear_action_flags
    - pcmk_role_text
    - add_expected_result
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'static pcmk_action_t *probe_action(pcmk_resource_t *rsc, pcmk_node_t
      *node) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:318,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:320,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:319,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:323,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:329,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:331,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 2
    argNames:
    - probe
    - then
    argTypes:
    - pcmk_action_t*
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 337
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 337
    functionName: probe_needed_before_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - pcmk__same_node
    - g_hash_table_lookup
    linkageType: ''
    returnType: bool
    signature: 'static bool probe_needed_before_action(const pcmk_action_t *probe,
      const pcmk_action_t *then) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:562,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:583,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:587,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:610,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:636,1
    - Dst: pcmk__find_compatible_instance
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:613,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:671,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:597,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:570,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:567,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:573,1
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:584,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:610,1
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:589,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:598,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:601,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:561,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:572,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:574,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:579,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:669,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:673,1
    - Dst: add_restart_orderings_for_probe
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:676,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 79
    argCount: 2
    argNames:
    - probe
    - after
    argTypes:
    - pcmk_action_t*
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 678
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 678
    functionName: add_restart_orderings_for_probe
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c
    functionUses: []
    functionsReached:
    - g_list_free
    - crm_is_true
    - g_hash_table_lookup
    - order_actions
    - pcmk__str_eq
    - pcmk__set_action_flags
    - pcmk__node_name
    - pcmk_is_set
    - pe__resource_actions
    - pcmk__find_compatible_instance
    - crm_trace
    - pcmk__is_primitive
    - add_restart_orderings_for_probe
    linkageType: ''
    returnType: void
    signature: 'static void add_restart_orderings_for_probe(pcmk_action_t *probe,
      pcmk_action_t *after) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:711,1
    - Dst: add_start_orderings_for_probe
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:729,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:712,1
    - Dst: add_restart_orderings_for_probe
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:730,1
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:718,1
    - Dst: clear_actions_tracking_flag
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:731,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:735,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 736
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 736
    functionName: add_start_restart_orderings_for_rsc
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c
    functionUses: []
    functionsReached:
    - g_list_free
    - g_list_foreach
    - add_start_orderings_for_probe
    - clear_actions_tracking_flag
    - pe__resource_actions
    - pcmk__is_primitive
    - add_restart_orderings_for_probe
    linkageType: ''
    returnType: void
    signature: 'static void add_start_restart_orderings_for_rsc(gpointer data, gpointer
      user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_failed_remote_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:885,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:896,1
    - Dst: pcmk__probe_resource_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:902,1
    - Dst: pe_fence_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c:886,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 904
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 904
    functionName: pcmk__schedule_probes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_probes.c
    functionUses: []
    functionsReached:
    - pe_fence_node
    - pcmk__probe_resource_list
    - pcmk__is_failed_remote_node
    - pcmk_is_set
    linkageType: ''
    returnType: void
    signature: 'void pcmk__schedule_probes(pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:32,1
    - Dst: pcmk__is_anonymous_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:36,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:37,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:36,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 2
    argNames:
    - rsc
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: rsc_is_known_on
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c
    functionUses: []
    functionsReached:
    - pcmk__is_anonymous_clone
    - pcmk__is_primitive
    - g_hash_table_lookup
    linkageType: ''
    returnType: bool
    signature: 'static bool rsc_is_known_on(const pcmk_resource_t *rsc, const pcmk_node_t
      *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rsc_stonith_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:267,1
    - Dst: order_stop_vs_fencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:277,1
    - Dst: order_start_vs_fencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:276,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:270,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:271,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - rsc
    - stonith_op
    argTypes:
    - pcmk_resource_t*
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 279
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 279
    functionName: rsc_stonith_ordering
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - order_stop_vs_fencing
    - order_start_vs_fencing
    - pcmk_is_set
    - rsc_stonith_ordering
    linkageType: ''
    returnType: void
    signature: 'static void rsc_stonith_ordering(pcmk_resource_t *rsc, pcmk_action_t
      *stonith_op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:295,1
    - Dst: rsc_stonith_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:297,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - stonith_op
    - scheduler
    argTypes:
    - pcmk_action_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 299
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 299
    functionName: pcmk__order_vs_fence
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c
    functionUses: []
    functionsReached:
    - rsc_stonith_ordering
    - CRM_CHECK
    linkageType: ''
    returnType: void
    signature: 'void pcmk__order_vs_fence(pcmk_action_t *stonith_op, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__node_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:458,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 462
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 462
    functionName: pcmk__node_unfenced
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c
    functionUses: []
    functionsReached:
    - pcmk__node_attr
    - pcmk__str_eq
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__node_unfenced(const pcmk_node_t *node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:60,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:78,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:72,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:76,1
    - Dst: rsc_is_known_on
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:80,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:91,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:92,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:93,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 21
    argCount: 2
    argNames:
    - rsc
    - stonith_op
    argTypes:
    - pcmk_resource_t*
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 100
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 100
    functionName: order_start_vs_fencing
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__rsc_debug
    - g_hash_table_lookup
    - order_actions
    - pcmk__str_eq
    - pcmk__node_name
    - rsc_is_known_on
    linkageType: ''
    returnType: void
    signature: 'static void order_start_vs_fencing(pcmk_resource_t *rsc, pcmk_action_t
      *stonith_op) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: uber_parent
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:116,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:132,1
    - Dst: find_first_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:139,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:164,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:179,1
    - Dst: stop_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:204,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:210,1
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:213,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:227,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:228,1
    - Dst: pcmk__is_bundled
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:163,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:174,1
    - Dst: pe__order_notifs_after_fencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:180,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:176,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:205,1
    - Dst: pcmk__is_bundled
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:237,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:241,1
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:133,1
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:124,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:202,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:203,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:169,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:204,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:222,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:225,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:120,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:147,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:166,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:172,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:170,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:219,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:221,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:234,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:247,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 70
    argCount: 2
    argNames:
    - rsc
    - stonith_op
    argTypes:
    - pcmk_resource_t*
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 248
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 248
    functionName: order_stop_vs_fencing
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - strdup
    - g_list_free
    - pcmk__is_bundled
    - order_actions
    - pcmk__rsc_info
    - pcmk__set_action_flags
    - crm_notice
    - pcmk_is_set
    - pcmk__node_name
    - pe__resource_actions
    - find_first_action
    - pcmk__is_guest_or_bundle_node
    - uber_parent
    - crm_info
    - pe__order_notifs_after_fencing
    - stop_key
    - pcmk__new_ordering
    linkageType: ''
    returnType: void
    signature: 'static void order_stop_vs_fencing(pcmk_resource_t *rsc, pcmk_action_t
      *stonith_op) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:322,1
    - Dst: pe_fence_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:331,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:334,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:323,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:325,1
    - Dst: pcmk__node_unfenced
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:336,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:338,1
    - Dst: trigger_unfencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:341,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:343,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 4
    argNames:
    - rsc
    - node
    - action
    - order
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - pcmk_action_t*
    - enum pcmk__action_relation_flags
    constantsTouched: []
    func_position:
      end: 346
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 346
    functionName: pcmk__order_vs_unfence
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - order_actions
    - pcmk__node_unfenced
    - pcmk_is_set
    - free
    - trigger_unfencing
    - pe_fence_op
    linkageType: ''
    returnType: void
    signature: 'void pcmk__order_vs_unfence(const pcmk_resource_t *rsc, pcmk_node_t
      *node, pcmk_action_t *action, enum pcmk__action_relation_flags order) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:369,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:390,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:429,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:437,1
    - Dst: find_first_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:376,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:402,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:404,1
    - Dst: find_first_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:425,1
    - Dst: pcmk__order_vs_fence
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:443,1
    - Dst: find_first_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:379,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:430,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:415,1
    - Dst: pe_fence_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:388,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:397,1
    - Dst: pe_fence_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:398,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:403,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:405,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:413,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:432,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:410,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:438,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 444
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 444
    functionName: pcmk__fence_guest
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c
    functionUses: []
    functionsReached:
    - order_actions
    - pcmk__set_action_flags
    - pcmk__node_name
    - pcmk_is_set
    - find_first_action
    - pcmk__assert
    - crm_info
    - pe_fence_op
    - pcmk__order_vs_fence
    linkageType: ''
    returnType: void
    signature: 'void pcmk__fence_guest(pcmk_node_t *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pe_fence_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:477,1
    - Dst: stop_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:498,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:480,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:498,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:499,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:503,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:503,1
    - Dst: start_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c:504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 508
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 508
    functionName: pcmk__order_restart_vs_unfence
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_fencing.c
    functionUses: []
    functionsReached:
    - crm_debug
    - stop_key
    - strdup
    - pe_fence_op
    - start_key
    - pcmk__new_ordering
    linkageType: ''
    returnType: void
    signature: 'void pcmk__order_restart_vs_unfence(gpointer data, gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:35,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: utilization_value
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c
    functionUses: []
    functionsReached:
    - pcmk__scan_min_int
    - pcmk__config_warn
    linkageType: ''
    returnType: int
    signature: 'static int utilization_value(const char *s) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - current_utilization
    - rsc
    argTypes:
    - GHashTable*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 180
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 180
    functionName: pcmk__consume_node_capacity
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    linkageType: ''
    returnType: void
    signature: 'void pcmk__consume_node_capacity(GHashTable *current_utilization,
      const pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:116,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - node1
    - node2
    argTypes:
    - pcmk_node_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 125
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 125
    functionName: pcmk__compare_node_capacities
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    linkageType: ''
    returnType: int
    signature: 'int pcmk__compare_node_capacities(const pcmk_node_t *node1, const
      pcmk_node_t *node2) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:76,1
    - Dst: utilization_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:84,1
    - Dst: utilization_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:80,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:83,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 91
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 91
    functionName: compare_utilization_value
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c
    functionUses: []
    functionsReached:
    - utilization_value
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: 'static void compare_utilization_value(gpointer key, gpointer value,
      gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - current_utilization
    - rsc
    argTypes:
    - GHashTable*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: pcmk__release_node_capacity
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    linkageType: ''
    returnType: void
    signature: 'void pcmk__release_node_capacity(GHashTable *current_utilization,
      const pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - node
    - rsc_id
    - utilization
    argTypes:
    - pcmk_node_t*
    - char*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 265
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 265
    functionName: have_enough_capacity
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    linkageType: ''
    returnType: bool
    signature: 'static bool have_enough_capacity(const pcmk_node_t *node, const char
      *rsc_id, GHashTable *utilization) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:281,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 2
    argNames:
    - orig_rsc
    - rscs
    argTypes:
    - pcmk_resource_t*
    - GList*
    constantsTouched: []
    func_position:
      end: 289
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 289
    functionName: sum_resource_utilization
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c
    functionUses: []
    functionsReached:
    - pcmk__strkey_table
    linkageType: ''
    returnType: GHashTable*
    signature: 'static GHashTable *sum_resource_utilization(const pcmk_resource_t
      *orig_rsc, GList *rscs) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:405,1
    - Dst: pe__copy_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:411,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:412,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:414,1
    - Dst: get_pseudo_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:407,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 416
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 416
    functionName: new_load_stopped_op
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c
    functionUses: []
    functionsReached:
    - get_pseudo_op
    - crm_strdup_printf
    - pe__copy_node
    - free
    - pcmk__clear_action_flags
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'static pcmk_action_t *new_load_stopped_op(pcmk_node_t *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:149,1
    - Dst: utilization_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:151,1
    - Dst: utilization_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:150,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:159,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:158,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:159,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 160
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 160
    functionName: update_utilization_value
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c
    functionUses: []
    functionsReached:
    - strdup
    - pcmk__itoa
    - g_hash_table_lookup
    - utilization_value
    - g_hash_table_replace
    linkageType: ''
    returnType: void
    signature: 'static void update_utilization_value(gpointer key, gpointer value,
      gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:229,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:237,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:235,1
    - Dst: utilization_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:231,1
    - Dst: utilization_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 241
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 241
    functionName: check_capacity
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c
    functionUses: []
    functionsReached:
    - utilization_value
    - pcmk__node_name
    - crm_debug
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: 'static void check_capacity(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_list_find
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:328,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:325,1
    - Dst: sum_resource_utilization
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:333,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:337,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:338,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:362,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:357,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:356,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:360,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:385,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:377,1
    - Dst: pe__show_node_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:389,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:373,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:387,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:314,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:329,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:336,1
    - Dst: have_enough_capacity
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:358,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:361,1
    - Dst: have_enough_capacity
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:342,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:355,1
    - Dst: pcmk__compare_node_capacities
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:348,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:371,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:372,1
    - Dst: have_enough_capacity
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:374,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:378,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:376,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:311,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:386,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 392
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 392
    functionName: pcmk__ban_insufficient_capacity
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c
    functionUses: []
    functionsReached:
    - g_list_append
    - CRM_CHECK
    - g_list_find
    - crm_strdup_printf
    - have_enough_capacity
    - pcmk__rsc_debug
    - g_hash_table_destroy
    - g_list_free
    - pcmk__str_eq
    - pcmk__node_available
    - sum_resource_utilization
    - pcmk__node_name
    - pcmk__compare_node_capacities
    - free
    - pe__show_node_scores
    - resource_location
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'const pcmk_node_t *pcmk__ban_insufficient_capacity(pcmk_resource_t
      *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:432,1
    - Dst: stop_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:439,1
    - Dst: new_load_stopped_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:438,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:439,1
    - Dst: new_load_stopped_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:446,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:447,1
    - Dst: start_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:447,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:450,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:452,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - rsc
    - allowed_nodes
    argTypes:
    - pcmk_resource_t*
    - GList*
    constantsTouched: []
    func_position:
      end: 457
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 457
    functionName: pcmk__create_utilization_constraints
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - stop_key
    - new_load_stopped_op
    - pcmk__op_key
    - start_key
    - pcmk__new_ordering
    linkageType: ''
    returnType: void
    signature: 'void pcmk__create_utilization_constraints(pcmk_resource_t *rsc, const
      GList *allowed_nodes) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:469,1
    - Dst: pcmk__is_bundle_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c:478,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 2
    argNames:
    - desc
    - scheduler
    argTypes:
    - char*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 484
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 484
    functionName: pcmk__show_node_capacities
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_utilization.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk__is_bundle_node
    linkageType: ''
    returnType: void
    signature: 'void pcmk__show_node_capacities(const char *desc, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_setup.c:46,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/pcmk_setup.c:61,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_setup.c:52,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_setup.c:58,1
    - Dst: pcmk__init_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_setup.c:67,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/pcmk_setup.c:69,1
    - Dst: pcmk__unpack_constraints
      Src: /src/pacemaker/lib/pacemaker/pcmk_setup.c:73,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_setup.c:76,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 4
    argNames:
    - out
    - cib
    - scheduler
    - xml
    argTypes:
    - pcmk__output_t**
    - cib_t**
    - pcmk_scheduler_t**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 78
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 78
    functionName: pcmk__setup_output_cib_sched
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_setup.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - pcmk__xml_output_new
    - cib_new
    - pcmk__init_scheduler
    - pcmk__register_lib_messages
    - pcmk__unpack_constraints
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int pcmk__setup_output_cib_sched(pcmk__output_t **out, cib_t **cib,
      pcmk_scheduler_t **scheduler, xmlNode **xml) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_setup.c:100,1
    - Dst: stonith__api_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_setup.c:105,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/pacemaker/pcmk_setup.c:112,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_setup.c:113,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_setup.c:117,1
    - Dst: stonith__register_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_setup.c:118,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 3
    argNames:
    - out
    - st
    - xml
    argTypes:
    - pcmk__output_t**
    - stonith_t**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 120
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 120
    functionName: pcmk__setup_output_fencing
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_setup.c
    functionUses: []
    functionsReached:
    - stonith__register_messages
    - pcmk__xml_output_new
    - stonith__api_new
    - pcmk__register_lib_messages
    - stonith__api_free
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int pcmk__setup_output_fencing(pcmk__output_t **out, stonith_t **st,
      xmlNode **xml) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__check_action_config
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:50,1
    - Dst: pe_get_failcount
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:51,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:62,1
    - Dst: rsc_action_digest_cmp
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:58,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:64,1
    - Dst: pe__clear_failcount
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:75,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 16
    argCount: 4
    argNames:
    - rsc
    - node
    - rsc_op
    - check
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - xmlNode*
    - enum pcmk__check_parameters
    constantsTouched: []
    func_position:
      end: 77
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 77
    functionName: check_params
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - pe_get_failcount
    - pcmk__check_action_config
    - rsc_action_digest_cmp
    - pe__clear_failcount
    - pcmk__xe_id
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void check_params(pcmk_resource_t *rsc, pcmk_node_t *node,
      const xmlNode *rsc_op, enum pcmk__check_parameters check) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:165,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:166,1
    - Dst: pe__const_top_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:166,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:171,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:174,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 181
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 181
    functionName: apply_exclusive_discovery
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - g_list_foreach
    - pcmk_is_set
    - pe__const_top_resource
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: 'static void apply_exclusive_discovery(gpointer data, gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pe_can_fence
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:471,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - node
    - have_managed
    argTypes:
    - pcmk_node_t*
    - bool
    constantsTouched: []
    func_position:
      end: 472
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 472
    functionName: needs_fencing
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - pe_can_fence
    linkageType: ''
    returnType: bool
    signature: 'static bool needs_fencing(const pcmk_node_t *node, bool have_managed) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:508,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:517,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:515,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 3
    argNames:
    - list
    - action
    - scheduler
    argTypes:
    - GList*
    - pcmk_action_t*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 518
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 518
    functionName: add_nondc_fencing
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - order_actions
    - pcmk_is_set
    - g_list_prepend
    linkageType: ''
    returnType: GList*
    signature: 'static GList *add_nondc_fencing(GList *list, pcmk_action_t *action,
      const pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:425,1
    - Dst: is_managed
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:431,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 436
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 436
    functionName: is_managed
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - is_managed
    linkageType: ''
    returnType: bool
    signature: 'static bool is_managed(const pcmk_resource_t *rsc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_managed
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:451,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 456
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 456
    functionName: any_managed_resources
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - is_managed
    linkageType: ''
    returnType: bool
    signature: 'static bool any_managed_resources(const pcmk_scheduler_t *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 492
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 492
    functionName: needs_shutdown
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - pcmk__is_pacemaker_remote_node
    linkageType: ''
    returnType: bool
    signature: 'static bool needs_shutdown(const pcmk_node_t *node) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:118,1
    - Dst: failcount_clear_action_exists
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:123,1
    - Dst: pcmk__threshold_reached
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:136,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:137,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 141
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 141
    functionName: check_failure_threshold
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - g_list_foreach
    - pcmk__threshold_reached
    - failcount_clear_action_exists
    - resource_location
    linkageType: ''
    returnType: void
    signature: 'static void check_failure_threshold(gpointer data, gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 254
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 254
    functionName: apply_shutdown_locks
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: void
    signature: 'static void apply_shutdown_locks(pcmk_scheduler_t *scheduler) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:198,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:220,1
    - Dst: pcmk__list_of_1
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:207,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:218,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:205,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:222,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:225,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:229,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:230,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:231,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 233
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 233
    functionName: apply_stickiness
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_debug
    - pcmk__list_of_1
    - g_hash_table_lookup
    - g_list_foreach
    - pcmk__node_name
    - pcmk_is_set
    - resource_location
    linkageType: ''
    returnType: void
    signature: 'static void apply_stickiness(gpointer data, gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:93,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - node
    - rsc
    argTypes:
    - pcmk_node_t*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: failcount_clear_action_exists
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - g_list_free
    - pe__resource_actions
    linkageType: ''
    returnType: bool
    signature: 'static bool failcount_clear_action_exists(const pcmk_node_t *node,
      const pcmk_resource_t *rsc) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:808,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:819,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:822,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:813,1
    - Dst: cib__signon_query
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:827,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:830,1
    - Dst: pcmk_copy_time
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:839,1
    - Dst: cluster_status
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:843,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 4
    argNames:
    - out
    - input
    - date
    - scheduler
    argTypes:
    - pcmk__output_t*
    - xmlNodePtr
    - crm_time_t*
    - pcmk_scheduler_t**
    constantsTouched: []
    func_position:
      end: 847
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 847
    functionName: pcmk__init_scheduler
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - pcmk__xml_copy
    - pcmk__set_scheduler_flags
    - pcmk_free_scheduler
    - pcmk_copy_time
    - pcmk_new_scheduler
    - cib__signon_query
    - cluster_status
    linkageType: ''
    returnType: int
    signature: 'int pcmk__init_scheduler(pcmk__output_t *out, xmlNodePtr input, const
      crm_time_t *date, pcmk_scheduler_t **scheduler) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:568,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:569,1
    - Dst: pe_can_fence
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:570,1
    - Dst: pcmk__fence_guest
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:571,1
    - Dst: add_nondc_fencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:583,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:594,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:607,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:644,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:648,1
    - Dst: any_managed_resources
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:549,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:563,1
    - Dst: needs_shutdown
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:587,1
    - Dst: pcmk__new_shutdown_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:588,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:601,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:649,1
    - Dst: needs_fencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:576,1
    - Dst: schedule_fencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:577,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:600,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:606,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:611,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:612,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:633,1
    - Dst: pcmk__order_after_each
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:637,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:553,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:555,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:626,1
    - Dst: pcmk__order_after_each
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:628,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 63
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 650
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 650
    functionName: schedule_fencing_and_shutdowns
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - pcmk__config_warn
    - add_nondc_fencing
    - crm_notice
    - g_list_free
    - order_actions
    - pcmk__same_node
    - pcmk__node_name
    - pcmk_is_set
    - schedule_fencing
    - pcmk__is_guest_or_bundle_node
    - any_managed_resources
    - needs_shutdown
    - pcmk__str_eq
    - pe_can_fence
    - crm_trace
    - needs_fencing
    - pcmk__order_after_each
    - pcmk__fence_guest
    - g_list_prepend
    - pcmk__new_shutdown_action
    linkageType: ''
    returnType: void
    signature: 'static void schedule_fencing_and_shutdowns(pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:267,1
    - Dst: check_failure_threshold
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:278,1
    - Dst: apply_shutdown_locks
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:268,1
    - Dst: pcmk__apply_locations
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:269,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:270,1
    - Dst: apply_exclusive_discovery
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:279,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 282
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 282
    functionName: apply_node_criteria
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - apply_exclusive_discovery
    - pcmk__apply_locations
    - apply_shutdown_locks
    - g_list_foreach
    - check_failure_threshold
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void apply_node_criteria(pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pe_fence_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:529,1
    - Dst: pcmk__sched_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:532,1
    - Dst: pcmk__order_vs_fence
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:534,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:533,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 536
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 536
    functionName: schedule_fencing
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - pcmk__sched_warn
    - pcmk__node_name
    - pe_fence_op
    - pcmk__order_vs_fence
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'static pcmk_action_t *schedule_fencing(pcmk_node_t *node) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:348,1
    - Dst: pe__clear_failcount
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:370,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:351,1
    - Dst: pe_get_failcount
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:366,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:376,1
    - Dst: stop_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:376,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 379
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 379
    functionName: clear_failcounts_if_orphaned
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - pe_get_failcount
    - pcmk_is_set
    - stop_key
    - pe__clear_failcount
    - crm_trace
    - pcmk__new_ordering
    linkageType: ''
    returnType: void
    signature: 'static void clear_failcounts_if_orphaned(gpointer data, gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__foreach_param_check
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:391,1
    - Dst: pcmk__free_param_checks
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:392,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:394,1
    - Dst: pcmk__schedule_probes
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:396,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:395,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:399,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:400,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:404,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 412
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 412
    functionName: schedule_resource_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - pcmk__foreach_param_check
    - g_list_foreach
    - pcmk__free_param_checks
    - pcmk__schedule_probes
    - pcmk_is_set
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void schedule_resource_actions(pcmk_scheduler_t *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:662,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:677,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:670,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 678
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 678
    functionName: log_resource_details
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - g_list_prepend
    - g_list_free
    linkageType: ''
    returnType: void
    signature: 'static void log_resource_details(pcmk_scheduler_t *scheduler) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_assignment_methods
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:742,1
    - Dst: pcmk__unpack_constraints
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:744,1
    - Dst: log_resource_details
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:751,1
    - Dst: pcmk__create_internal_constraints
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:760,1
    - Dst: schedule_fencing_and_shutdowns
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:770,1
    - Dst: pcmk__apply_node_health
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:743,1
    - Dst: schedule_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:763,1
    - Dst: pcmk__apply_orderings
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:771,1
    - Dst: pcmk__handle_rsc_config_changes
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:761,1
    - Dst: cluster_status
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:741,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:756,1
    - Dst: assign_resources
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:762,1
    - Dst: get_crm_log_level
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:775,1
    - Dst: pcmk__order_remote_connection_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:768,1
    - Dst: log_all_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:772,1
    - Dst: log_unrunnable_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:776,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:745,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:749,1
    - Dst: apply_node_criteria
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:754,1
    - Dst: pcmk__create_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:773,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 778
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 778
    functionName: pcmk__schedule_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - get_crm_log_level
    - pcmk__set_assignment_methods
    - pcmk__apply_orderings
    - log_unrunnable_actions
    - log_all_actions
    - pcmk__order_remote_connection_actions
    - log_resource_details
    - assign_resources
    - schedule_fencing_and_shutdowns
    - pcmk__create_graph
    - apply_node_criteria
    - pcmk__handle_rsc_config_changes
    - pcmk_is_set
    - pcmk__apply_node_health
    - schedule_resource_actions
    - pcmk__create_internal_constraints
    - cluster_status
    - pcmk__unpack_constraints
    linkageType: ''
    returnType: void
    signature: 'void pcmk__schedule_actions(pcmk_scheduler_t *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__log_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:689,1
    - Dst: pe__register_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:693,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:694,1
    - Dst: pcmk__output_set_log_level
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:695,1
    - Dst: pcmk__output_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:699,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:702,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 705
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 705
    functionName: log_all_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - pe__register_messages
    - pcmk__log_output_new
    - pcmk__output_actions
    - pcmk__output_free
    - pcmk__register_lib_messages
    - pcmk__output_set_log_level
    linkageType: ''
    returnType: void
    signature: 'static void log_all_actions(pcmk_scheduler_t *scheduler) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:295,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:297,1
    - Dst: pcmk__show_node_capacities
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:301,1
    - Dst: pcmk__sort_resources
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:299,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:303,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:314,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:315,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:326,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:327,1
    - Dst: pcmk__show_node_capacities
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:333,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 334
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 334
    functionName: assign_resources
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - pcmk__sort_resources
    - pcmk__rsc_trace
    - pcmk__str_eq
    - pcmk_is_set
    - crm_trace
    - pcmk__show_node_capacities
    linkageType: ''
    returnType: void
    signature: 'static void assign_resources(pcmk_scheduler_t *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:720,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:726,1
    - Dst: pcmk__log_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c:727,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 730
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 730
    functionName: log_unrunnable_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_scheduler.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - pcmk__log_action
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void log_unrunnable_actions(const pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:201,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:202,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:206,1
    - Dst: new_node_table
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:212,1
    - Dst: new_node_table
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:211,1
    - Dst: apply_parent_colocations
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:215,1
    - Dst: apply_parent_colocations
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:216,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:219,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:220,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:224,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:231,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:230,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:236,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:225,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:226,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:232,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:237,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 2
    argNames:
    - instance1
    - instance2
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 239
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 239
    functionName: cmp_instance_by_colocation
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - g_hash_table_destroy
    - pcmk__node_name
    - new_node_table
    - pcmk__assert
    - crm_trace
    - apply_parent_colocations
    - pcmk__current_node
    linkageType: ''
    returnType: int
    signature: 'static int cmp_instance_by_colocation(const pcmk_resource_t *instance1,
      const pcmk_resource_t *instance2) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1090,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1096,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1094,1
    - Dst: is_set_recursive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1100,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1112,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1119,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1120,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1123,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1124,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - instance
    - node
    - role
    - current
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - enum rsc_role_e
    - bool
    constantsTouched: []
    func_position:
      end: 1129
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1129
    functionName: pcmk__instance_matches
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - is_set_recursive
    - CRM_CHECK
    - pcmk__rsc_trace
    - pcmk__same_node
    - pcmk__node_name
    - pcmk_role_text
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__instance_matches(const pcmk_resource_t *instance, const
      pcmk_node_t *node, enum rsc_role_e role, bool current) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__sort_nodes
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1213,1
    - Dst: find_compatible_instance_on_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1216,1
    - Dst: g_hash_table_get_values
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1213,1
    - Dst: find_compatible_instance_on_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1208,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1222,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1225,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 4
    argNames:
    - match_rsc
    - rsc
    - role
    - current
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - enum rsc_role_e
    - bool
    constantsTouched: []
    func_position:
      end: 1227
      start: 1190
    functionDepth: 0
    functionLinenumber: 1190
    functionLinenumberEnd: 1227
    functionName: pcmk__find_compatible_instance
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - g_list_free
    - pcmk__rsc_debug
    - g_hash_table_get_values
    - find_compatible_instance_on_node
    - pcmk__sort_nodes
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'pcmk_resource_t *pcmk__find_compatible_instance(const pcmk_resource_t
      *match_rsc, const pcmk_resource_t *rsc, enum rsc_role_e role, bool current) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: orig_action_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1652,1
    - Dst: find_first_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1670,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1673,1
    - Dst: pcmk__is_primitive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1666,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1674,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1678,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1680,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1686,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1687,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1702,1
    - Dst: pe__clear_action_summary_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1705,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1707,1
    - Dst: pe__clear_action_summary_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1690,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1696,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1688,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1692,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 3
    argNames:
    - action
    - instances
    - node
    argTypes:
    - pcmk_action_t*
    - GList*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 1712
      start: 1647
    functionDepth: 0
    functionLinenumber: 1647
    functionLinenumberEnd: 1712
    functionName: pcmk__collective_action_flags
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - pcmk__node_name
    - pcmk_is_set
    - pe__clear_action_summary_flags
    - find_first_action
    - orig_action_name
    - pcmk__clear_action_flags
    - pcmk__is_primitive
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t pcmk__collective_action_flags(pcmk_action_t *action, const
      GList *instances, const pcmk_node_t *node) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:90,1
    - Dst: can_run_instance
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:92,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:91,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:93,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:94,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:104,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:107,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:111,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - instance
    - max_per_node
    argTypes:
    - pcmk_resource_t*
    - int
    constantsTouched: []
    func_position:
      end: 118
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 118
    functionName: ban_unavailable_allowed_nodes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - can_run_instance
    - pcmk__rsc_trace
    - g_hash_table_lookup
    - pcmk__node_name
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void ban_unavailable_allowed_nodes(pcmk_resource_t *instance,
      int max_per_node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__this_with_colocations
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:150,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:161,1
    - Dst: pcmk__with_this_colocations
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:162,1
    - Dst: pcmk__colocation_has_influence
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:169,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:176,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 19
    argCount: 2
    argNames:
    - rsc
    - nodes
    argTypes:
    - pcmk_resource_t*
    - GHashTable**
    constantsTouched: []
    func_position:
      end: 177
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 177
    functionName: apply_parent_colocations
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk__colocation_has_influence
    - g_list_free
    - pcmk__this_with_colocations
    - pcmk__with_this_colocations
    linkageType: ''
    returnType: void
    signature: 'static void apply_parent_colocations(const pcmk_resource_t *rsc, GHashTable
      **nodes) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:311,1
    - Dst: strrchr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:314,1
    - Dst: strrchr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:316,1
    - Dst: strrchr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:320,1
    - Dst: strrchr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:318,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:322,1
    - Dst: strtol
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:324,1
    - Dst: strtol
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:324,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 325
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 325
    functionName: pcmk__cmp_instance_number
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - strtol
    - strrchr
    linkageType: ''
    returnType: gint
    signature: 'gint pcmk__cmp_instance_number(gconstpointer a, gconstpointer b) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_instance_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1155,1
    - Dst: pcmk__instance_matches
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1159,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1160,1
    - Dst: display_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1162,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1163,1
    - Dst: free_instance_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1164,1
    - Dst: free_instance_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1168,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1170,1
    - Dst: display_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1172,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1173,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 5
    argNames:
    - match_rsc
    - rsc
    - node
    - role
    - current
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - pcmk_node_t*
    - enum rsc_role_e
    - bool
    constantsTouched: []
    func_position:
      end: 1175
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1175
    functionName: find_compatible_instance_on_node
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - display_role
    - pcmk__rsc_trace
    - pcmk__instance_matches
    - pcmk__node_name
    - free_instance_list
    - get_instance_list
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'static pcmk_resource_t *find_compatible_instance_on_node(const pcmk_resource_t
      *match_rsc, const pcmk_resource_t *rsc, const pcmk_node_t *node, enum rsc_role_e
      role, bool current) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1603,1
    - Dst: pcmk__update_ordered_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1616,1
    - Dst: update_interleaved_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1609,1
    - Dst: get_instance_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1613,1
    - Dst: can_interleave_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1608,1
    - Dst: update_noninterleaved_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1623,1
    - Dst: free_instance_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1626,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 7
    argNames:
    - first
    - then
    - node
    - flags
    - filter
    - type
    - scheduler
    argTypes:
    - pcmk_action_t*
    - pcmk_action_t*
    - pcmk_node_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1629
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1629
    functionName: pcmk__instance_update_ordered_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk__update_ordered_actions
    - update_interleaved_actions
    - update_noninterleaved_actions
    - can_interleave_actions
    - free_instance_list
    - get_instance_list
    - pcmk__assert
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t pcmk__instance_update_ordered_actions(pcmk_action_t *first,
      pcmk_action_t *then, const pcmk_node_t *node, uint32_t flags, uint32_t filter,
      uint32_t type, pcmk_scheduler_t *scheduler) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:34,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:36,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:40,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:35,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:41,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:43,1
    - Dst: pcmk__top_allowed_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:47,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:49,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:50,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:55,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:58,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:65,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:66,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:70,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:71,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:57,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:63,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - instance
    - node
    - max_per_node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - int
    constantsTouched: []
    func_position:
      end: 74
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 74
    functionName: can_run_instance
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk__top_allowed_node
    - pcmk__rsc_trace
    - pcmk__plural_s
    - pcmk__node_available
    - pcmk__node_name
    - pcmk_is_set
    - pcmk_readable_score
    - crm_warn
    linkageType: ''
    returnType: bool
    signature: 'static bool can_run_instance(const pcmk_resource_t *instance, const
      pcmk_node_t *node, int max_per_node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:133,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:136,1
    - Dst: pe__copy_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: new_node_table
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - g_hash_table_insert
    - pcmk__strkey_table
    - pe__copy_node
    linkageType: ''
    returnType: GHashTable*
    signature: 'static GHashTable *new_node_table(pcmk_node_t *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:279,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:283,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:284,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 2
    argNames:
    - rsc
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t**
    constantsTouched: []
    func_position:
      end: 290
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 290
    functionName: node_is_allowed
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk__node_name
    - pcmk__rsc_trace
    - g_hash_table_lookup
    linkageType: ''
    returnType: bool
    signature: 'static bool node_is_allowed(const pcmk_resource_t *rsc, pcmk_node_t
      **node) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:752,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:759,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:760,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:758,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:753,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:761,1
    - Dst: pcmk__top_allowed_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:766,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:769,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:772,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - instance
    - optimal_per_node
    argTypes:
    - pcmk_resource_t*
    - int
    constantsTouched: []
    func_position:
      end: 777
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 777
    functionName: preferred_node
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk__top_allowed_node
    - pcmk__rsc_trace
    - pcmk__node_available
    - pcmk__node_name
    - pcmk_is_set
    - pcmk__current_node
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'static const pcmk_node_t *preferred_node(const pcmk_resource_t *instance,
      int optimal_per_node) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:994,1
    - Dst: pe__new_rsc_pseudo_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1006,1
    - Dst: check_instance_state
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1002,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1007,1
    - Dst: pe__new_rsc_pseudo_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1009,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1010,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1013,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1014,1
    - Dst: pe__new_rsc_pseudo_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1018,1
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1029,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1025,1
    - Dst: pe__create_clone_notif_pseudo_ops
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1030,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1026,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1022,1
    - Dst: pe__new_rsc_pseudo_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1021,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1019,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - collective
    - instances
    argTypes:
    - pcmk_resource_t*
    - GList*
    constantsTouched: []
    func_position:
      end: 1033
      start: 983
    functionDepth: 0
    functionLinenumber: 983
    functionLinenumberEnd: 1033
    functionName: pcmk__create_instance_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - pe__create_clone_notif_pseudo_ops
    - check_instance_state
    - pcmk__rsc_trace
    - pe__new_rsc_pseudo_action
    - pcmk__set_action_flags
    - pcmk__is_clone
    - pcmk_is_set
    linkageType: ''
    returnType: void
    signature: 'void pcmk__create_instance_actions(pcmk_resource_t *collective, GList
      *instances) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1305,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1308,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1327,1
    - Dst: pe__get_rsc_in_container
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1313,1
    - Dst: find_first_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1321,1
    - Dst: pcmk__is_down_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1328,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1329,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1331,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1334,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 5
    argNames:
    - action
    - instance
    - action_name
    - node
    - for_first
    argTypes:
    - pcmk_action_t*
    - pcmk_resource_t*
    - char*
    - pcmk_node_t*
    - bool
    constantsTouched: []
    func_position:
      end: 1338
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1338
    functionName: find_instance_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - crm_err
    - pcmk__is_down_action
    - find_first_action
    - pcmk__str_any_of
    - crm_trace
    - pe__get_rsc_in_container
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'static pcmk_action_t *find_instance_action(const pcmk_action_t *action,
      const pcmk_resource_t *instance, const char *action_name, const pcmk_node_t
      *node, bool for_first) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: orig_action_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1405,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1409,1
    - Dst: pcmk__find_compatible_instance
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1422,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1408,1
    - Dst: get_instance_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1413,1
    - Dst: unassign_if_mandatory
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1428,1
    - Dst: pcmk__set_updated_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1430,1
    - Dst: find_instance_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1435,1
    - Dst: find_instance_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1441,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1447,1
    - Dst: pcmk__set_updated_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1448,1
    - Dst: free_instance_list
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1457,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 33
    argCount: 5
    argNames:
    - first
    - then
    - node
    - filter
    - type
    argTypes:
    - pcmk_action_t*
    - pcmk_action_t*
    - pcmk_node_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1459
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1459
    functionName: update_interleaved_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk__ends_with
    - find_instance_action
    - pcmk__set_updated_flags
    - order_actions
    - free_instance_list
    - get_instance_list
    - pcmk__find_compatible_instance
    - orig_action_name
    - unassign_if_mandatory
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t update_interleaved_actions(pcmk_action_t *first, pcmk_action_t
      *then, const pcmk_node_t *node, uint32_t filter, uint32_t type) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:610,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:611,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:682,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:613,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:671,1
    - Dst: pcmk__restore_node_tables
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:657,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:664,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:676,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:679,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:685,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:697,1
    - Dst: pcmk__unassign_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:690,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:615,1
    - Dst: assign_instance
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:647,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:694,1
    - Dst: increment_parent_count
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:706,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:705,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:704,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:616,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:618,1
    - Dst: pcmk__copy_node_tables
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:641,1
    - Dst: pcmk__copy_node_table
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:644,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:649,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:655,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:661,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:669,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:663,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:672,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:686,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 5
    argNames:
    - rsc
    - instance
    - current
    - max_per_node
    - available
    argTypes:
    - pcmk_resource_t*
    - pcmk_resource_t*
    - pcmk_node_t*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 708
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 708
    functionName: assign_instance_early
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk__copy_node_tables
    - pcmk__restore_node_tables
    - pcmk__rsc_debug
    - pcmk__rsc_trace
    - pcmk__set_rsc_flags
    - g_hash_table_lookup
    - assign_instance
    - g_hash_table_destroy
    - pcmk__node_available
    - pcmk__same_node
    - pcmk__node_name
    - increment_parent_count
    - pcmk__unassign_resource
    - pcmk__rsc_info
    - pcmk__copy_node_table
    linkageType: ''
    returnType: bool
    signature: 'static bool assign_instance_early(const pcmk_resource_t *rsc, pcmk_resource_t
      *instance, const pcmk_node_t *current, int max_per_node, int available) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:725,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:728,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:726,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 733
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 733
    functionName: reset_allowed_node_counts
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk__node_available
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: unsigned int
    signature: 'static unsigned int reset_allowed_node_counts(pcmk_resource_t *rsc) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:812,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:833,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:834,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:848,1
    - Dst: resource_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:861,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:821,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:839,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:857,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:870,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:871,1
    - Dst: reset_allowed_node_counts
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:793,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:808,1
    - Dst: preferred_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:825,1
    - Dst: assign_instance_early
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:827,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:844,1
    - Dst: assign_instance
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:865,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:811,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:851,1
    - Dst: pcmk__top_allowed_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:845,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:852,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 4
    argNames:
    - collective
    - instances
    - max_total
    - max_per_node
    argTypes:
    - pcmk_resource_t*
    - GList*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 873
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 873
    functionName: pcmk__assign_instances
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - reset_allowed_node_counts
    - assign_instance_early
    - pcmk__rsc_debug
    - pcmk__rsc_trace
    - pcmk__top_allowed_node
    - assign_instance
    - pcmk__plural_s
    - preferred_node
    - crm_notice
    - pcmk_is_set
    - pcmk__node_name
    - resource_location
    - pcmk__current_node
    linkageType: ''
    returnType: void
    signature: 'void pcmk__assign_instances(pcmk_resource_t *collective, GList *instances,
      int max_total, int max_per_node) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:906,1
    - Dst: check_instance_state
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:915,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:934,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:913,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:928,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:936,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:938,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:940,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:944,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:949,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:958,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:962,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:956,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:969,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 2
    argNames:
    - instance
    - state
    argTypes:
    - pcmk_resource_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 974
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 974
    functionName: check_instance_state
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - check_instance_state
    - pcmk__rsc_trace
    - pcmk__str_eq
    - pcmk_is_set
    - pcmk_all_flags_set
    linkageType: ''
    returnType: void
    signature: 'static void check_instance_state(const pcmk_resource_t *instance,
      uint32_t *state) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1248,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1258,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1256,1
    - Dst: pcmk__assign_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1262,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 5
    argNames:
    - first
    - then
    - then_instance
    - type
    - current
    argTypes:
    - pcmk_action_t*
    - pcmk_action_t*
    - pcmk_resource_t*
    - uint32_t
    - bool
    constantsTouched: []
    func_position:
      end: 1265
      start: 1241
    functionDepth: 0
    functionLinenumber: 1241
    functionLinenumberEnd: 1265
    functionName: unassign_if_mandatory
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - pcmk__rsc_info
    - pcmk__assign_resource
    - pcmk__rsc_trace
    linkageType: ''
    returnType: bool
    signature: 'static bool unassign_if_mandatory(const pcmk_action_t *first, const
      pcmk_action_t *then, pcmk_resource_t *then_instance, uint32_t type, bool current) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1363,1
    - Dst: strstr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1368,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1366,1
    - Dst: pcmk__action_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1367,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1366,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1369,1
    - Dst: pcmk__action_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1370,1
    - Dst: strlen
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1371,1
    - Dst: get_complex_task
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1373,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1374,1
    - Dst: pcmk__action_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1375,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - action
    argTypes:
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 1376
      start: 1353
    functionDepth: 0
    functionLinenumber: 1353
    functionLinenumberEnd: 1376
    functionName: orig_action_name
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - get_complex_task
    - pcmk__strcase_any_of
    - free
    - strlen
    - strstr
    - pcmk__action_text
    - parse_op_key
    linkageType: ''
    returnType: char*
    signature: 'static const char *orig_action_name(const pcmk_action_t *action) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:567,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:570,1
    - Dst: ban_unavailable_allowed_nodes
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:576,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:571,1
    - Dst: increment_parent_count
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:580,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - instance
    - prefer
    - max_per_node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - int
    constantsTouched: []
    func_position:
      end: 582
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 582
    functionName: assign_instance
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_debug
    - pcmk__rsc_trace
    - increment_parent_count
    - pcmk_is_set
    - ban_unavailable_allowed_nodes
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'static const pcmk_node_t *assign_instance(pcmk_resource_t *instance,
      const pcmk_node_t *prefer, int max_per_node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1067,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - rsc
    - list
    argTypes:
    - pcmk_resource_t*
    - GList*
    constantsTouched: []
    func_position:
      end: 1069
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1069
    functionName: free_instance_list
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - g_list_free
    linkageType: ''
    returnType: void
    signature: 'static inline void free_instance_list(const pcmk_resource_t *rsc,
      GList *list) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__top_allowed_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:535,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:542,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:542,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - instance
    - assigned_to
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 547
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 547
    functionName: increment_parent_count
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk__top_allowed_node
    - CRM_LOG_ASSERT
    linkageType: ''
    returnType: void
    signature: 'static void increment_parent_count(pcmk_resource_t *instance, const
      pcmk_node_t *assigned_to) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_bundle
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1049,1
    - Dst: pe__bundle_containers
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1050,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1054
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1054
    functionName: get_instance_list
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pe__bundle_containers
    - pcmk__is_bundle
    linkageType: ''
    returnType: GList*
    signature: 'static inline GList *get_instance_list(const pcmk_resource_t *rsc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_first_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1543,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1551,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1562,1
    - Dst: pcmk__update_action_for_orderings
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1567,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 18
    argCount: 7
    argNames:
    - instance
    - first
    - then
    - node
    - flags
    - filter
    - type
    argTypes:
    - pcmk_resource_t*
    - pcmk_action_t*
    - pcmk_action_t*
    - pcmk_node_t*
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1572
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1572
    functionName: update_noninterleaved_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk__update_action_for_orderings
    - find_first_action
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t update_noninterleaved_actions(pcmk_resource_t *instance,
      pcmk_action_t *first, const pcmk_action_t *then, const pcmk_node_t *node, uint32_t
      flags, uint32_t filter, uint32_t type) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:252,1
    - Dst: did_fail
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:259,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 264
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 264
    functionName: did_fail
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - did_fail
    - pcmk_is_set
    linkageType: ''
    returnType: bool
    signature: 'static bool did_fail(const pcmk_resource_t *rsc) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: node_is_allowed
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:393,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:396,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:408,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:471,1
    - Dst: did_fail
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:482,1
    - Dst: did_fail
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:483,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:485,1
    - Dst: pcmk__cmp_instance_number
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:501,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:506,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:367,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:383,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:427,1
    - Dst: pcmk__top_allowed_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:450,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:444,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:453,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:464,1
    - Dst: cmp_instance_by_colocation
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:495,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:377,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:439,1
    - Dst: pcmk__top_allowed_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:451,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:503,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:509,1
    - Dst: node_is_allowed
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:394,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:401,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:431,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:437,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:414,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:422,1
    - Dst: pcmk__node_available
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:436,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:459,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:476,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:489,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 107
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 513
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 513
    functionName: pcmk__cmp_instance
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk__top_allowed_node
    - pcmk__node_available
    - node_is_allowed
    - cmp_instance_by_colocation
    - pcmk__cmp_instance_number
    - pcmk__assert
    - crm_trace
    - did_fail
    linkageType: ''
    returnType: gint
    signature: 'gint pcmk__cmp_instance(gconstpointer a, gconstpointer b) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1477,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1483,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1490,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1496,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1495,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1502,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1502,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c:1504,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - first
    - then
    argTypes:
    - pcmk_action_t*
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 1508
      start: 1470
    functionDepth: 0
    functionLinenumber: 1470
    functionLinenumberEnd: 1508
    functionName: can_interleave_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_instances.c
    functionUses: []
    functionsReached:
    - pcmk__rsc_trace
    - crm_is_true
    - g_hash_table_lookup
    - pcmk__ends_with
    - crm_trace
    linkageType: ''
    returnType: bool
    signature: 'static bool can_interleave_actions(const pcmk_action_t *first, const
      pcmk_action_t *then) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_nano_current_get
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:403,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:419,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:418,1
    - Dst: pcmk_poll_ipc
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:409,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:419,1
    - Dst: pcmk_dispatch_ipc
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:424,1
    - Dst: qb_util_nano_current_get
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:430,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:437,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:438,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - data
    - api
    - on_node
    argTypes:
    - data_t*
    - pcmk_ipc_api_t*
    - char*
    constantsTouched: []
    func_position:
      end: 440
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 440
    functionName: poll_until_reply
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - pcmk_ipc_name
    - pcmk__s
    - pcmk_dispatch_ipc
    - pcmk_poll_ipc
    - qb_util_nano_current_get
    - pcmk_rc_str
    linkageType: ''
    returnType: void
    signature: 'static void poll_until_reply(data_t *data, pcmk_ipc_api_t *api, const
      char *on_node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:894,1
    - Dst: pcmk__list_nodes
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:901,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:899,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:902,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:902,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - xml
    - node_types
    argTypes:
    - xmlNodePtr*
    - char*
    constantsTouched: []
    func_position:
      end: 904
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 904
    functionName: pcmk_list_nodes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - pcmk__list_nodes
    - pcmk__xml_output_finish
    - pcmk__register_lib_messages
    linkageType: ''
    returnType: int
    signature: 'int pcmk_list_nodes(xmlNodePtr *xml, const char *node_types) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:790,1
    - Dst: pcmk__pacemakerd_status
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:797,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:798,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:798,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:795,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - xml
    - ipc_name
    - message_timeout_ms
    argTypes:
    - xmlNodePtr*
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 800
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 800
    functionName: pcmk_pacemakerd_status
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - pcmk__pacemakerd_status
    - pcmk__xml_output_finish
    - pcmk__register_lib_messages
    linkageType: ''
    returnType: int
    signature: 'int pcmk_pacemakerd_status(xmlNodePtr *xml, const char *ipc_name,
      unsigned int message_timeout_ms) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: validate_controld_reply
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:260,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:281,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:280,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:279,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 5
    argNames:
    - controld_api
    - event_type
    - status
    - event_data
    - user_data
    argTypes:
    - pcmk_ipc_api_t*
    - enum pcmk_ipc_event
    - crm_exit_t
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 292
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 292
    functionName: node_info_event_cb
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - validate_controld_reply
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'static void node_info_event_cb(pcmk_ipc_api_t *controld_api, enum
      pcmk_ipc_event event_type, crm_exit_t status, void *event_data, void *user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: validate_pcmkd_reply
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:314,1
    - Dst: time
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:338,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 5
    argNames:
    - pacemakerd_api
    - event_type
    - status
    - event_data
    - user_data
    argTypes:
    - pcmk_ipc_api_t*
    - enum pcmk_ipc_event
    - crm_exit_t
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 340
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 340
    functionName: pacemakerd_event_cb
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - validate_pcmkd_reply
    - time
    linkageType: ''
    returnType: void
    signature: 'static void pacemakerd_event_cb(pcmk_ipc_api_t *pacemakerd_api, enum
      pcmk_ipc_event event_type, crm_exit_t status, void *event_data, void *user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ipc_connect
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:542,1
    - Dst: pcmk_controld_api_ping
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:547,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:550,1
    - Dst: poll_until_reply
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:555,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:557,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - out
    - message_timeout_ms
    argTypes:
    - pcmk__output_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 561
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 561
    functionName: pcmk__designated_controller
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - ipc_connect
    - pcmk_controld_api_ping
    - poll_until_reply
    - pcmk_rc_str
    - pcmk_free_ipc_api
    linkageType: ''
    returnType: int
    signature: 'int pcmk__designated_controller(pcmk__output_t *out, unsigned int
      message_timeout_ms) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ipc_connect
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:753,1
    - Dst: pcmk_pacemakerd_api_ping
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:757,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:760,1
    - Dst: poll_until_reply
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:765,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:767,1
    - Dst: time
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:773,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 5
    argNames:
    - out
    - ipc_name
    - message_timeout_ms
    - show_output
    - state
    argTypes:
    - pcmk__output_t*
    - char*
    - unsigned int
    - bool
    - enum pcmk_pacemakerd_state*
    constantsTouched: []
    func_position:
      end: 780
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 780
    functionName: pcmk__pacemakerd_status
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - ipc_connect
    - time
    - pcmk_pacemakerd_api_ping
    - poll_until_reply
    - pcmk_rc_str
    - pcmk_free_ipc_api
    linkageType: ''
    returnType: int
    signature: 'int pcmk__pacemakerd_status(pcmk__output_t *out, const char *ipc_name,
      unsigned int message_timeout_ms, bool show_output, enum pcmk_pacemakerd_state
      *state) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cib__signon_query
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:832,1
    - Dst: strstr
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:847,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:847,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:851,1
    - Dst: strstr
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:851,1
    - Dst: pcmk__xpath_foreach_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:854,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:859,1
    - Dst: strstr
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:859,1
    - Dst: pcmk__xpath_foreach_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:862,1
    - Dst: pcmk__xpath_foreach_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:871,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:882,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:868,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:867,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - out
    - node_types
    - bash_export
    argTypes:
    - pcmk__output_t*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 886
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 886
    functionName: pcmk__list_nodes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - pcmk__xpath_foreach_result
    - pcmk__str_empty
    - pcmk__str_eq
    - pcmk__xml_free
    - strstr
    - cib__signon_query
    linkageType: ''
    returnType: int
    signature: 'int pcmk__list_nodes(pcmk__output_t *out, const char *node_types,
      bool bash_export) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_new_ipc_api
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:350,1
    - Dst: pcmk_register_ipc_callback
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:359,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:353,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:354,1
    - Dst: pcmk__connect_ipc_retry_conrefused
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:362,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:370,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:372,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:376,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:376,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:380,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 5
    argNames:
    - data
    - server
    - cb
    - dispatch_type
    - eremoteio_ok
    argTypes:
    - data_t*
    - enum pcmk_ipc_server
    - pcmk_ipc_callback_t
    - enum pcmk_ipc_dispatch
    - bool
    constantsTouched: []
    func_position:
      end: 385
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 385
    functionName: ipc_connect
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_ipc_name
    - pcmk_new_ipc_api
    - pcmk__connect_ipc_retry_conrefused
    - pcmk_rc_str
    - pcmk_register_ipc_callback
    - pcmk_free_ipc_api
    linkageType: ''
    returnType: pcmk_ipc_api_t*
    signature: 'static pcmk_ipc_api_t *ipc_connect(data_t *data, enum pcmk_ipc_server
      server, pcmk_ipc_callback_t cb, enum pcmk_ipc_dispatch dispatch_type, bool eremoteio_ok) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: validate_reply_event
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:116,1
    - Dst: pcmk__controld_api_reply2str
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:125,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 6
    argNames:
    - data
    - api
    - event_type
    - status
    - event_data
    - expected_type
    argTypes:
    - data_t*
    - pcmk_ipc_api_t*
    - enum pcmk_ipc_event
    - crm_exit_t
    - void*
    - enum pcmk_controld_api_reply
    constantsTouched: []
    func_position:
      end: 131
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 131
    functionName: validate_controld_reply
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - validate_reply_event
    - pcmk__controld_api_reply2str
    linkageType: ''
    returnType: int
    signature: 'static int validate_controld_reply(data_t *data, const pcmk_ipc_api_t
      *api, enum pcmk_ipc_event event_type, crm_exit_t status, const void *event_data,
      enum pcmk_controld_api_reply expected_type) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validate_controld_reply
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:228,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 5
    argNames:
    - controld_api
    - event_type
    - status
    - event_data
    - user_data
    argTypes:
    - pcmk_ipc_api_t*
    - enum pcmk_ipc_event
    - crm_exit_t
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 238
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 238
    functionName: designated_controller_event_cb
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - validate_controld_reply
    linkageType: ''
    returnType: void
    signature: 'static void designated_controller_event_cb(pcmk_ipc_api_t *controld_api,
      enum pcmk_ipc_event event_type, crm_exit_t status, void *event_data, void *user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validate_controld_reply
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:193,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 5
    argNames:
    - controld_api
    - event_type
    - status
    - event_data
    - user_data
    argTypes:
    - pcmk_ipc_api_t*
    - enum pcmk_ipc_event
    - crm_exit_t
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 205
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 205
    functionName: controller_status_event_cb
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - validate_controld_reply
    linkageType: ''
    returnType: void
    signature: 'static void controller_status_event_cb(pcmk_ipc_api_t *controld_api,
      enum pcmk_ipc_event event_type, crm_exit_t status, void *event_data, void *user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:502,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:510,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:507,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:510,1
    - Dst: pcmk__controller_status
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:509,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - xml
    - node_name
    - message_timeout_ms
    argTypes:
    - xmlNodePtr*
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 512
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 512
    functionName: pcmk_controller_status
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - pcmk__controller_status
    - pcmk__xml_output_finish
    - pcmk__register_lib_messages
    linkageType: ''
    returnType: int
    signature: 'int pcmk_controller_status(xmlNodePtr *xml, const char *node_name,
      unsigned int message_timeout_ms) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ipc_connect
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:648,1
    - Dst: pcmk_controld_api_node_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:652,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:658,1
    - Dst: poll_until_reply
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:663,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:665,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 40
    argCount: 9
    argNames:
    - out
    - node_id
    - node_name
    - uuid
    - state
    - have_quorum
    - is_remote
    - show_output
    - message_timeout_ms
    argTypes:
    - pcmk__output_t*
    - uint32_t*
    - char**
    - char**
    - char**
    - bool*
    - bool*
    - bool
    - unsigned int
    constantsTouched: []
    func_position:
      end: 684
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 684
    functionName: pcmk__query_node_info
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - ipc_connect
    - pcmk_controld_api_node_info
    - poll_until_reply
    - pcmk_rc_str
    - pcmk_free_ipc_api
    linkageType: ''
    returnType: int
    signature: 'int pcmk__query_node_info(pcmk__output_t *out, uint32_t *node_id,
      char **node_name, char **uuid, char **state, bool *have_quorum, bool *is_remote,
      bool show_output, unsigned int message_timeout_ms) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:696,1
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:698,1
    - Dst: pcmk__query_node_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:705,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:703,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:708,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:708,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 12
    argCount: 9
    argNames:
    - xml
    - node_id
    - node_name
    - uuid
    - state
    - have_quorum
    - is_remote
    - show_output
    - message_timeout_ms
    argTypes:
    - xmlNodePtr*
    - uint32_t*
    - char**
    - char**
    - char**
    - bool*
    - bool*
    - bool
    - unsigned int
    constantsTouched: []
    func_position:
      end: 710
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 710
    functionName: pcmk_query_node_info
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - pcmk__xml_output_new
    - pcmk__query_node_info
    - pcmk_rc2exitc
    - pcmk__xml_output_finish
    - pcmk__assert
    - pcmk__register_lib_messages
    linkageType: ''
    returnType: int
    signature: 'int pcmk_query_node_info(xmlNodePtr *xml, uint32_t *node_id, char
      **node_name, char **uuid, char **state, bool *have_quorum, bool *is_remote,
      bool show_output, unsigned int message_timeout_ms) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:816,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:817,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:821,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 2
    argNames:
    - result
    - user_data
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 823
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 823
    functionName: remote_node_print_helper
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void remote_node_print_helper(xmlNode *result, void *user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:74,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:86,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:86,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 4
    argNames:
    - data
    - api
    - event_type
    - status
    argTypes:
    - data_t*
    - pcmk_ipc_api_t*
    - enum pcmk_ipc_event
    - crm_exit_t
    constantsTouched: []
    func_position:
      end: 91
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 91
    functionName: validate_reply_event
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - pcmk_ipc_name
    - crm_exit_str
    linkageType: ''
    returnType: int
    signature: 'static int validate_reply_event(data_t *data, const pcmk_ipc_api_t
      *api, enum pcmk_ipc_event event_type, crm_exit_t status) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: validate_reply_event
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:155,1
    - Dst: pcmk__pcmkd_api_reply2str
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:165,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 6
    argNames:
    - data
    - api
    - event_type
    - status
    - event_data
    - expected_type
    argTypes:
    - data_t*
    - pcmk_ipc_api_t*
    - enum pcmk_ipc_event
    - crm_exit_t
    - void*
    - enum pcmk_pacemakerd_api_reply
    constantsTouched: []
    func_position:
      end: 171
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 171
    functionName: validate_pcmkd_reply
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - pcmk__pcmkd_api_reply2str
    - validate_reply_event
    linkageType: ''
    returnType: int
    signature: 'static int validate_pcmkd_reply(data_t *data, const pcmk_ipc_api_t
      *api, enum pcmk_ipc_event event_type, crm_exit_t status, const void *event_data,
      enum pcmk_pacemakerd_api_reply expected_type) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:570,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:578,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:578,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:575,1
    - Dst: pcmk__designated_controller
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - xml
    - message_timeout_ms
    argTypes:
    - xmlNodePtr*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 580
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 580
    functionName: pcmk_designated_controller
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - pcmk__designated_controller
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - pcmk__xml_output_finish
    - pcmk__register_lib_messages
    linkageType: ''
    returnType: int
    signature: 'int pcmk_designated_controller(xmlNodePtr *xml, unsigned int message_timeout_ms) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ipc_connect
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:472,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:480,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:480,1
    - Dst: pcmk_controld_api_ping
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:477,1
    - Dst: poll_until_reply
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:485,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:485,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c:487,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - out
    - node_name
    - message_timeout_ms
    argTypes:
    - pcmk__output_t*
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 491
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 491
    functionName: pcmk__controller_status
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_cluster_queries.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - ipc_connect
    - pcmk_controld_api_ping
    - poll_until_reply
    - pcmk_rc_str
    - pcmk_free_ipc_api
    linkageType: ''
    returnType: int
    signature: 'int pcmk__controller_status(pcmk__output_t *out, const char *node_name,
      unsigned int message_timeout_ms) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:44,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:47,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:53,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:56,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:50,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:59,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:62,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:65,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:68,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 1
    argNames:
    - action
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 71
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 71
    functionName: invert_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - pcmk__config_warn
    linkageType: ''
    returnType: char*
    signature: 'static const char *invert_action(const char *action) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1001,1
    - Dst: get_ordering_type
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1003,1
    - Dst: unpack_order_tags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1009,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1002,1
    - Dst: get_ordering_symmetry
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1005,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1018,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1019,1
    - Dst: pcmk__xe_resolve_idref
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1021,1
    - Dst: unpack_order_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1023,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1026,1
    - Dst: order_rsc_sets
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1042,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1036,1
    - Dst: order_rsc_sets
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1033,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1055,1
    - Dst: unpack_simple_rsc_order
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1061,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1045,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 51
    argCount: 2
    argNames:
    - xml_obj
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1063
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 1063
    functionName: pcmk__unpack_ordering
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - get_ordering_type
    - unpack_simple_rsc_order
    - pcmk__xe_first_child
    - get_ordering_symmetry
    - unpack_order_tags
    - order_rsc_sets
    - pcmk__xe_resolve_idref
    - pcmk__xml_free
    - pcmk__xe_next
    - unpack_order_set
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'void pcmk__unpack_ordering(xmlNode *xml_obj, pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__block_colocation_dependents
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 1371
      start: 1367
    functionDepth: 0
    functionLinenumber: 1367
    functionLinenumberEnd: 1371
    functionName: block_colocation_dependents
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - pcmk__block_colocation_dependents
    linkageType: ''
    returnType: void
    signature: 'static void block_colocation_dependents(gpointer data, gpointer user_data) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:77,1
    - Dst: pcmk__warn_once
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:92,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:80,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:99,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:88,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:102,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:105,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:109,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:111,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:111,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - xml_obj
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 114
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 114
    functionName: get_ordering_type
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - pcmk__warn_once
    - pcmk__s
    - pcmk__str_eq
    - pcmk_parse_score
    - crm_element_value
    - pcmk__config_err
    - pcmk__xe_id
    linkageType: ''
    returnType: enum pe_order_kind
    signature: 'static enum pe_order_kind get_ordering_type(const xmlNode *xml_obj) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:493,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:516,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:495,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:495,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:504,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:520,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:531,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:533,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:534,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:537,1
    - Dst: pcmk__order_migration_equivalents
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:538,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 60
    argCount: 8
    argNames:
    - first_rsc
    - first_action_task
    - first_action
    - then_rsc
    - then_action_task
    - then_action
    - flags
    - sched
    argTypes:
    - pcmk_resource_t*
    - char*
    - pcmk_action_t*
    - pcmk_resource_t*
    - char*
    - pcmk_action_t*
    - uint32_t
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 539
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 539
    functionName: pcmk__new_ordering
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__rsc_trace
    - pcmk__s
    - pcmk__assert_alloc
    - free
    - g_list_prepend
    - strdup
    - pcmk__order_migration_equivalents
    linkageType: ''
    returnType: void
    signature: 'void pcmk__new_ordering(pcmk_resource_t *first_rsc, char *first_action_task,
      pcmk_action_t *first_action, pcmk_resource_t *then_rsc, char *then_action_task,
      pcmk_action_t *then_action, uint32_t flags, pcmk_scheduler_t *sched) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:902,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:917,1
    - Dst: pcmk__tag_to_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:936,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:929,1
    - Dst: pcmk__tag_to_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:957,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:969,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:978,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:897,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:909,1
    - Dst: pcmk__valid_resource_or_tag
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:915,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:949,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:931,1
    - Dst: pcmk__expand_tags_in_sets
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:895,1
    - Dst: pcmk__valid_resource_or_tag
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:907,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:901,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:919,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:938,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:959,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:948,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:928,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:976,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:911,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:970,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 63
    argCount: 3
    argNames:
    - xml_obj
    - expanded_xml
    - scheduler
    argTypes:
    - xmlNode*
    - xmlNode**
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 983
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 983
    functionName: unpack_order_tags
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - pcmk__xe_remove_attr
    - pcmk__xml_copy
    - pcmk__xe_id
    - crm_xml_add
    - pcmk__xml_free
    - crm_element_value
    - pcmk__config_err
    - crm_log_xml_trace
    - pcmk__valid_resource_or_tag
    - pcmk__tag_to_set
    - pcmk__expand_tags_in_sets
    linkageType: ''
    returnType: int
    signature: 'static int unpack_order_tags(xmlNode *xml_obj, xmlNode **expanded_xml,
      const pcmk_scheduler_t *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invert_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:372,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:376,1
    - Dst: invert_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:373,1
    - Dst: ordering_flags_for_kind
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:382,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:384,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 6
    argNames:
    - id
    - kind
    - rsc_first
    - action_first
    - rsc_then
    - action_then
    argTypes:
    - char*
    - enum pe_order_kind
    - pcmk_resource_t*
    - char*
    - pcmk_resource_t*
    - char*
    constantsTouched: []
    func_position:
      end: 386
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 386
    functionName: inverse_ordering
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - invert_action
    - pcmk__order_resource_actions
    - ordering_flags_for_kind
    - pcmk__config_warn
    linkageType: ''
    returnType: void
    signature: 'static void inverse_ordering(const char *id, enum pe_order_kind kind,
      pcmk_resource_t *rsc_first, const char *action_first, pcmk_resource_t *rsc_then,
      const char *action_then) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:402,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:404,1
    - Dst: get_ordering_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:416,1
    - Dst: get_ordering_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:411,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:406,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:421,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:426,1
    - Dst: get_ordering_type
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:431,1
    - Dst: get_ordering_symmetry
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:433,1
    - Dst: ordering_flags_for_kind
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:434,1
    - Dst: get_minimum_first_instances
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:441,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:446,1
    - Dst: clone_min_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:443,1
    - Dst: inverse_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:451,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - xml_obj
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 454
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 454
    functionName: unpack_simple_rsc_order
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - get_ordering_type
    - CRM_CHECK
    - inverse_ordering
    - get_ordering_symmetry
    - get_minimum_first_instances
    - clone_min_ordering
    - get_ordering_resource
    - ordering_flags_for_kind
    - crm_element_value
    - pcmk__config_err
    - pcmk__order_resource_actions
    linkageType: ''
    returnType: void
    signature: 'static void unpack_simple_rsc_order(xmlNode *xml_obj, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1194,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1204,1
    - Dst: find_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1205,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1202,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1202,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1206,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1207,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - rsc
    - original_key
    argTypes:
    - pcmk_resource_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1210
      start: 1190
    functionDepth: 0
    functionLinenumber: 1190
    functionLinenumberEnd: 1210
    functionName: find_actions_by_task
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - free
    - find_actions
    - pcmk__op_key
    - parse_op_key
    linkageType: ''
    returnType: GList*
    signature: 'static GList *find_actions_by_task(const pcmk_resource_t *rsc, const
      char *original_key) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_relation_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:189,1
    - Dst: pcmk__set_relation_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:208,1
    - Dst: pcmk__set_relation_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:201,1
    - Dst: pcmk__set_relation_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:204,1
    - Dst: pcmk__set_relation_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:197,1
    - Dst: pcmk__is_up_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:210,1
    - Dst: pcmk__set_relation_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:211,1
    - Dst: pcmk__set_relation_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:217,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 3
    argNames:
    - kind
    - first
    - symmetry
    argTypes:
    - enum pe_order_kind
    - char*
    - enum ordering_symmetry
    constantsTouched: []
    func_position:
      end: 224
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 224
    functionName: ordering_flags_for_kind
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - pcmk__is_up_action
    - pcmk__set_relation_flags
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t ordering_flags_for_kind(enum pe_order_kind kind, const
      char *first, enum ordering_symmetry symmetry) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:324,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:341,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:328,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:341,1
    - Dst: get_pseudo_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:325,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:349,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:350,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 7
    argNames:
    - id
    - rsc_first
    - action_first
    - rsc_then
    - action_then
    - flags
    - clone_min
    argTypes:
    - char*
    - pcmk_resource_t*
    - char*
    - pcmk_resource_t*
    - char*
    - uint32_t
    - int
    constantsTouched: []
    func_position:
      end: 353
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 353
    functionName: clone_min_ordering
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - get_pseudo_op
    - crm_strdup_printf
    - free
    - pcmk__op_key
    - pcmk__new_ordering
    linkageType: ''
    returnType: void
    signature: 'static void clone_min_ordering(const char *id, pcmk_resource_t *rsc_first,
      const char *action_first, pcmk_resource_t *rsc_then, const char *action_then,
      uint32_t flags, int clone_min) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1133,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1144,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1141,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1140,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1134,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1148,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1151,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1161,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1163,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1166,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1171,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1170,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1172,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1174,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1173,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - node
    - shutdown_op
    argTypes:
    - pcmk_node_t*
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 1178
      start: 1124
    functionDepth: 0
    functionLinenumber: 1124
    functionLinenumberEnd: 1178
    functionName: pcmk__order_stops_before_shutdown
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - pcmk__rsc_trace
    - pcmk__str_eq
    - pcmk__same_node
    - pcmk__node_name
    - pcmk_is_set
    - strdup
    - pcmk__clear_action_flags
    - pcmk__new_ordering
    linkageType: ''
    returnType: void
    signature: 'void pcmk__order_stops_before_shutdown(pcmk_node_t *node, pcmk_action_t
      *shutdown_op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1456,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1459,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1458,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1457,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 2
    argNames:
    - after
    - list
    argTypes:
    - pcmk_action_t*
    - GList*
    constantsTouched: []
    func_position:
      end: 1461
      start: 1447
    functionDepth: 0
    functionLinenumber: 1447
    functionLinenumberEnd: 1461
    functionName: pcmk__order_after_each
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__node_name
    - order_actions
    linkageType: ''
    returnType: void
    signature: 'void pcmk__order_after_each(pcmk_action_t *after, GList *list) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:137,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:138,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:146,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:143,1
    - Dst: get_ordering_type
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:139,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:153,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:156,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - xml_obj
    - parent_kind
    - parent_symmetrical_s
    argTypes:
    - xmlNode*
    - enum pe_order_kind
    - char*
    constantsTouched: []
    func_position:
      end: 169
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 169
    functionName: get_ordering_symmetry
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - get_ordering_type
    - pcmk__config_warn
    - crm_is_true
    - crm_element_value
    - pcmk__xe_id
    - pcmk__xe_get_bool_attr
    linkageType: ''
    returnType: enum ordering_symmetry
    signature: 'static enum ordering_symmetry get_ordering_symmetry(const xmlNode
      *xml_obj, enum pe_order_kind parent_kind, const char *parent_symmetrical_s) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:686,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:742,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:728,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:751,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:771,1
    - Dst: EXPAND_CONSTRAINT_IDREF
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:811,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:811,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:834,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:836,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:855,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:760,1
    - Dst: EXPAND_CONSTRAINT_IDREF
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:836,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:845,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:842,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:808,1
    - Dst: invert_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:705,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:687,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:693,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:708,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:724,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:734,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:748,1
    - Dst: EXPAND_CONSTRAINT_IDREF
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:753,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:753,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:759,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:800,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:820,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:823,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:849,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:792,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:853,1
    - Dst: invert_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:704,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:709,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:725,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:731,1
    - Dst: EXPAND_CONSTRAINT_IDREF
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:736,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:736,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:742,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:784,1
    - Dst: EXPAND_CONSTRAINT_IDREF
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:788,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:797,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:817,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:802,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:825,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:847,1
    - Dst: ordering_flags_for_kind
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:718,1
    - Dst: get_pseudo_op
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:726,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:768,1
    - Dst: EXPAND_CONSTRAINT_IDREF
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:774,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:774,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:781,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:786,1
    - Dst: EXPAND_CONSTRAINT_IDREF
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:804,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:826,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:831,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:837,1
    - Dst: EXPAND_CONSTRAINT_IDREF
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:847,1
    - Dst: EXPAND_CONSTRAINT_IDREF
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:825,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:856,1
    - Dst: EXPAND_CONSTRAINT_IDREF
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:855,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 136
    argCount: 6
    argNames:
    - id
    - set1
    - set2
    - kind
    - scheduler
    - symmetry
    argTypes:
    - char*
    - xmlNode*
    - xmlNode*
    - enum pe_order_kind
    - pcmk_scheduler_t*
    - enum ordering_symmetry
    constantsTouched: []
    func_position:
      end: 863
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 863
    functionName: order_rsc_sets
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - invert_action
    - get_pseudo_op
    - crm_strdup_printf
    - pcmk__xe_first_child
    - pcmk__str_eq
    - EXPAND_CONSTRAINT_IDREF
    - free
    - ordering_flags_for_kind
    - pcmk__xe_next
    - crm_element_value
    - pcmk__xe_attr_is_true
    - pcmk__order_resource_actions
    - pcmk__op_key
    - pcmk__xe_id
    - pcmk__xe_get_bool_attr
    - pcmk__new_ordering
    linkageType: ''
    returnType: int
    signature: 'static int order_rsc_sets(const char *id, const xmlNode *set1, const
      xmlNode *set2, enum pe_order_kind kind, pcmk_scheduler_t *scheduler, enum ordering_symmetry
      symmetry) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1228,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1235,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1231,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1242,1
    - Dst: find_actions_by_task
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1238,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1248,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1250,1
    - Dst: pcmk__clear_relation_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1253,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1257,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1259,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1279,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1270,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1273,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1272,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1262,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - first_action
    - rsc
    - order
    argTypes:
    - pcmk_action_t*
    - pcmk_resource_t*
    - pcmk__action_relation_t*
    constantsTouched: []
    func_position:
      end: 1280
      start: 1220
    functionDepth: 0
    functionLinenumber: 1220
    functionLinenumberEnd: 1280
    functionName: order_resource_actions_after
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__rsc_trace
    - pcmk__clear_relation_flags
    - pcmk__rsc_debug
    - g_list_free
    - order_actions
    - pcmk_is_set
    - g_list_prepend
    - crm_warn
    - find_actions_by_task
    - pcmk__clear_action_flags
    linkageType: ''
    returnType: void
    signature: 'static void order_resource_actions_after(pcmk_action_t *first_action,
      const pcmk_resource_t *rsc, pcmk__action_relation_t *order) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1390,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1423,1
    - Dst: rsc_order_first
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1414,1
    - Dst: g_list_reverse
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1405,1
    - Dst: order_resource_actions_after
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1420,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1425,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1429,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1431,1
    - Dst: pcmk__order_probes
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1432,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1434,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1434,1
    - Dst: pcmk__disable_invalid_orderings
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1437,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1435,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - sched
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1438
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1438
    functionName: pcmk__apply_orderings
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - pcmk__order_probes
    - order_resource_actions_after
    - order_actions
    - g_list_foreach
    - g_list_length
    - rsc_order_first
    - g_list_reverse
    - crm_trace
    - pcmk__disable_invalid_orderings
    linkageType: ''
    returnType: void
    signature: 'void pcmk__apply_orderings(pcmk_scheduler_t *sched) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1341,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1338,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1289,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1294,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1290,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1318,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1326,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1324,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1327,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1312,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1317,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1363,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1301,1
    - Dst: find_actions_by_task
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1297,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1311,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1316,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1336,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1346,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1333,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1356,1
    - Dst: order_resource_actions_after
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1359,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 58
    argCount: 2
    argNames:
    - first_rsc
    - order
    argTypes:
    - pcmk_resource_t*
    - pcmk__action_relation_t*
    constantsTouched: []
    func_position:
      end: 1364
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1364
    functionName: rsc_order_first
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - order_resource_actions_after
    - g_list_free
    - pcmk__rsc_trace
    - order_actions
    - pcmk__str_eq
    - free
    - g_list_prepend
    - custom_action
    - pcmk__assert
    - find_actions_by_task
    - pcmk__op_key
    - parse_op_key
    linkageType: ''
    returnType: void
    signature: 'static void rsc_order_first(pcmk_resource_t *first_rsc, pcmk__action_relation_t
      *order) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:274,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:278,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:282,1
    - Dst: pcmk__warn_once
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:292,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:290,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - rsc
    - xml
    argTypes:
    - pcmk_resource_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 303
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 303
    functionName: get_minimum_first_instances
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - pcmk__warn_once
    - g_hash_table_lookup
    - pcmk__is_clone
    - pcmk__scan_min_int
    - pcmk__xe_get_bool_attr
    linkageType: ''
    returnType: int
    signature: 'static int get_minimum_first_instances(const pcmk_resource_t *rsc,
      const xmlNode *xml) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:601,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:610,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:617,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:569,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:585,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:594,1
    - Dst: pcmk__list_of_1
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:600,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:572,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:570,1
    - Dst: get_ordering_symmetry
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:587,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:597,1
    - Dst: EXPAND_CONSTRAINT_IDREF
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:596,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:619,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:596,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:625,1
    - Dst: ordering_flags_for_kind
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:640,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:658,1
    - Dst: get_ordering_type
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:579,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:571,1
    - Dst: ordering_flags_for_kind
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:588,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:590,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:619,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:630,1
    - Dst: invert_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:638,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:650,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 71
    argCount: 4
    argNames:
    - set
    - parent_kind
    - parent_symmetrical_s
    - scheduler
    argTypes:
    - xmlNode*
    - enum pe_order_kind
    - char*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 660
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 660
    functionName: unpack_order_set
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - get_ordering_type
    - pcmk__list_of_1
    - pcmk__xe_first_child
    - EXPAND_CONSTRAINT_IDREF
    - free
    - ordering_flags_for_kind
    - strdup
    - g_list_free
    - crm_is_true
    - get_ordering_symmetry
    - crm_element_value
    - pcmk__op_key
    - pcmk__xe_id
    - g_list_append
    - pcmk__xe_next
    - crm_trace
    - invert_action
    - pcmk__order_resource_actions
    - pcmk__new_ordering
    linkageType: ''
    returnType: int
    signature: 'static int unpack_order_set(const xmlNode *set, enum pe_order_kind
      parent_kind, const char *parent_symmetrical_s, pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1473,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1481,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1487,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1484,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1476,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1492,1
    - Dst: pcmk__order_resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 1500
      start: 1469
    functionDepth: 0
    functionLinenumber: 1469
    functionLinenumberEnd: 1500
    functionName: pcmk__promotable_restart_ordering
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - pcmk__order_resource_actions
    linkageType: ''
    returnType: void
    signature: 'void pcmk__promotable_restart_ordering(pcmk_resource_t *rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:241,1
    - Dst: pcmk__find_constraint_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:249,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:251,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:244,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:245,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:252,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 3
    argNames:
    - xml
    - resource_attr
    - scheduler
    argTypes:
    - xmlNode*
    - char*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 257
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 257
    functionName: get_ordering_resource
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - pcmk__config_err
    - pcmk__find_constraint_resource
    - pcmk__xe_id
    - crm_element_value
    linkageType: ''
    returnType: pcmk_resource_t*
    signature: 'static pcmk_resource_t *get_ordering_resource(const xmlNode *xml,
      const char *resource_attr, const pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1071,1
    - Dst: pcmk__rsc_corresponds_to_guest
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1073,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1089,1
    - Dst: pcmk__graph_has_loop
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1090,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1075,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 2
    argNames:
    - action
    - input
    argTypes:
    - pcmk_action_t*
    - pcmk__related_action_t*
    constantsTouched: []
    func_position:
      end: 1095
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1095
    functionName: ordering_is_invalid
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - pcmk__config_warn
    - pcmk__rsc_corresponds_to_guest
    - pcmk__str_eq
    - pcmk_is_set
    - pcmk__graph_has_loop
    linkageType: ''
    returnType: bool
    signature: 'static bool ordering_is_invalid(pcmk_action_t *action, pcmk__related_action_t
      *input) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ordering_is_invalid
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1110,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 1115
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1115
    functionName: pcmk__disable_invalid_orderings
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - ordering_is_invalid
    linkageType: ''
    returnType: void
    signature: 'void pcmk__disable_invalid_orderings(pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__update_action_for_orderings
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c:1377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 1379
      start: 1374
    functionDepth: 0
    functionLinenumber: 1374
    functionLinenumberEnd: 1379
    functionName: update_action_for_orderings
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_ordering.c
    functionUses: []
    functionsReached:
    - pcmk__update_action_for_orderings
    linkageType: ''
    returnType: void
    signature: 'static void update_action_for_orderings(gpointer data, gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:54,1
    - Dst: pcmk__list_alternatives
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:61,1
    - Dst: lrmd__register_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:59,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:62,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - xml
    - agent_spec
    argTypes:
    - xmlNodePtr*
    - char*
    constantsTouched: []
    func_position:
      end: 64
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 64
    functionName: pcmk_list_alternatives
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_agents.c
    functionUses: []
    functionsReached:
    - lrmd__register_messages
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - pcmk__list_alternatives
    - pcmk__xml_output_finish
    linkageType: ''
    returnType: int
    signature: 'int pcmk_list_alternatives(xmlNodePtr *xml, const char *agent_spec) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:125,1
    - Dst: lrmd__register_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:130,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:133,1
    - Dst: pcmk__list_agents
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:132,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - xml
    - agent_spec
    argTypes:
    - xmlNodePtr*
    - char*
    constantsTouched: []
    func_position:
      end: 135
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 135
    functionName: pcmk_list_agents
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_agents.c
    functionUses: []
    functionsReached:
    - lrmd__register_messages
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - pcmk__list_agents
    - pcmk__xml_output_finish
    linkageType: ''
    returnType: int
    signature: 'int pcmk_list_agents(xmlNodePtr *xml, char *agent_spec) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:181,1
    - Dst: lrmd__register_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:186,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:189,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:189,1
    - Dst: pcmk__list_providers
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - xml
    - agent_spec
    argTypes:
    - xmlNodePtr*
    - char*
    constantsTouched: []
    func_position:
      end: 191
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 191
    functionName: pcmk_list_providers
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_agents.c
    functionUses: []
    functionsReached:
    - lrmd__register_messages
    - pcmk__xml_output_new
    - pcmk_rc2exitc
    - pcmk__list_providers
    - pcmk__xml_output_finish
    linkageType: ''
    returnType: int
    signature: 'int pcmk_list_providers(xmlNodePtr *xml, const char *agent_spec) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:22,1
    - Dst: lrmd__new
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:24,1
    - Dst: _
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:39,1
    - Dst: lrmd_api_delete
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:43,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - out
    - agent_spec
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 45
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 45
    functionName: pcmk__list_alternatives
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_agents.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - lrmd_api_delete
    - lrmd__new
    - _
    linkageType: ''
    returnType: int
    signature: 'int pcmk__list_alternatives(pcmk__output_t *out, const char *agent_spec) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:144,1
    - Dst: lrmd__new
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:146,1
    - Dst: _
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:162,1
    - Dst: _
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:164,1
    - Dst: lrmd_api_delete
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:170,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - out
    - agent_spec
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 172
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 172
    functionName: pcmk__list_providers
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_agents.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - lrmd_api_delete
    - lrmd__new
    - _
    linkageType: ''
    returnType: int
    signature: 'int pcmk__list_providers(pcmk__output_t *out, const char *agent_spec) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:200,1
    - Dst: lrmd__new
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:202,1
    - Dst: _
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:217,1
    - Dst: lrmd_api_delete
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:221,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 223
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 223
    functionName: pcmk__list_standards
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_agents.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - lrmd_api_delete
    - lrmd__new
    - _
    linkageType: ''
    returnType: int
    signature: 'int pcmk__list_standards(pcmk__output_t *out) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:83,1
    - Dst: strchr
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:90,1
    - Dst: lrmd__new
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:85,1
    - Dst: _
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:107,1
    - Dst: _
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:109,1
    - Dst: lrmd_api_delete
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:114,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - out
    - agent_spec
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 116
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 116
    functionName: pcmk__list_agents
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_agents.c
    functionUses: []
    functionsReached:
    - lrmd_api_delete
    - strchr
    - lrmd__new
    - _
    - pcmk__assert
    linkageType: ''
    returnType: int
    signature: 'int pcmk__list_agents(pcmk__output_t *out, char *agent_spec) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_output_new
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:232,1
    - Dst: lrmd__register_messages
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:237,1
    - Dst: pcmk__list_standards
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:239,1
    - Dst: pcmk__xml_output_finish
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:240,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/pacemaker/pcmk_agents.c:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNodePtr*
    constantsTouched: []
    func_position:
      end: 242
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 242
    functionName: pcmk_list_standards
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_agents.c
    functionUses: []
    functionsReached:
    - lrmd__register_messages
    - pcmk__xml_output_new
    - pcmk__list_standards
    - pcmk_rc2exitc
    - pcmk__xml_output_finish
    linkageType: ''
    returnType: int
    signature: 'int pcmk_list_standards(xmlNodePtr *xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:44,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: xe_interval
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c
    functionUses: []
    functionsReached:
    - pcmk_parse_interval_spec
    - crm_element_value
    linkageType: ''
    returnType: guint
    signature: 'static guint xe_interval(const xmlNode *xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: op_cannot_recur
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    linkageType: ''
    returnType: bool
    signature: 'static bool op_cannot_recur(const char *name) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: stop_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:291,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:327,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:337,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:339,1
    - Dst: pe__add_action_expected_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:344,1
    - Dst: start_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:349,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:350,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:369,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:362,1
    - Dst: active_recurring_should_be_optional
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:266,1
    - Dst: promote_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:288,1
    - Dst: demote_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:296,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:303,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:321,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:324,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:335,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:329,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:348,1
    - Dst: reload_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:355,1
    - Dst: pcmk__new_cancel_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:280,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:309,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:313,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:314,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:338,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:340,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:355,1
    - Dst: promote_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:362,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:356,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:318,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:328,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:333,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:322,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:324,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:349,1
    - Dst: demote_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:369,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 82
    argCount: 4
    argNames:
    - rsc
    - start
    - node
    - op
    argTypes:
    - pcmk_resource_t*
    - pcmk_action_t*
    - pcmk_node_t*
    - struct op_history*
    constantsTouched: []
    func_position:
      end: 376
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 376
    functionName: recurring_op_for_active
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c
    functionUses: []
    functionsReached:
    - do_crm_log
    - custom_action
    - stop_key
    - strdup
    - pcmk__clear_action_flags
    - active_recurring_should_be_optional
    - pcmk__node_name
    - pcmk_is_set
    - pcmk__rsc_info
    - pcmk_role_text
    - pcmk__new_cancel_action
    - pcmk__rsc_trace
    - reload_key
    - pcmk__readable_interval
    - promote_key
    - pe__add_action_expected_result
    - start_key
    - demote_key
    - pcmk__new_ordering
    linkageType: ''
    returnType: void
    signature: 'static void recurring_op_for_active(pcmk_resource_t *rsc, pcmk_action_t
      *start, const pcmk_node_t *node, const struct op_history *op) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_actions_exact
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:392,1
    - Dst: start_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:412,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:399,1
    - Dst: pcmk__new_cancel_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:401,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:411,1
    - Dst: pcmk__rsc_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:419,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:422,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:423,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:424,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 5
    argNames:
    - rsc
    - node
    - key
    - name
    - interval_ms
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - char*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 425
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 425
    functionName: cancel_if_running
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c
    functionUses: []
    functionsReached:
    - g_list_free
    - pcmk__new_cancel_action
    - find_actions_exact
    - pcmk__node_name
    - pcmk__readable_interval
    - pcmk__rsc_info
    - start_key
    - pcmk_role_text
    - pcmk__new_ordering
    linkageType: ''
    returnType: void
    signature: 'static void cancel_if_running(pcmk_resource_t *rsc, const pcmk_node_t
      *node, const char *key, const char *name, guint interval_ms) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:529,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:547,1
    - Dst: pe__add_action_expected_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:550,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:552,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:567,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:547,1
    - Dst: cancel_if_running
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:531,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:510,1
    - Dst: pcmk__rsc_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:562,1
    - Dst: order_after_stops
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:559,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:563,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:568,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:509,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:515,1
    - Dst: find_actions_exact
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:536,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:541,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:545,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:569,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:572,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:539,1
    - Dst: order_after_probes
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:553,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:564,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:571,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 3
    argNames:
    - rsc
    - node
    - op
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - struct op_history*
    constantsTouched: []
    func_position:
      end: 575
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 575
    functionName: recurring_op_for_inactive
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c
    functionUses: []
    functionsReached:
    - order_after_probes
    - g_list_free
    - pcmk__rsc_trace
    - pcmk__rsc_debug
    - pcmk__clear_action_flags
    - pcmk__str_eq
    - find_actions_exact
    - crm_notice
    - pcmk_is_set
    - pcmk__node_name
    - custom_action
    - order_after_stops
    - strdup
    - pcmk__readable_interval
    - cancel_if_running
    - pe__add_action_expected_result
    linkageType: ''
    returnType: void
    signature: 'static void recurring_op_for_inactive(pcmk_resource_t *rsc, const
      pcmk_node_t *node, const struct op_history *op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:660,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:671,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:662,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:667,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:670,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:673,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:674,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:675,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:676,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 4
    argNames:
    - rsc
    - task
    - interval_ms
    - node
    argTypes:
    - pcmk_resource_t*
    - char*
    - guint
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 679
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 679
    functionName: pcmk__new_cancel_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pcmk__insert_meta
    - free
    - custom_action
    - pcmk__assert
    - pcmk__op_key
    - pcmk__str_update
    linkageType: ''
    returnType: pcmk_action_t*
    signature: 'pcmk_action_t *pcmk__new_cancel_action(pcmk_resource_t *rsc, const
      char *task, guint interval_ms, const pcmk_node_t *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trigger_unfencing
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:729,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:733,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:731,1
    - Dst: custom_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:731,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 4
    argNames:
    - rsc
    - task
    - interval_ms
    - node
    argTypes:
    - pcmk_resource_t*
    - char*
    - guint
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 734
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 734
    functionName: pcmk__reschedule_recurring
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c
    functionUses: []
    functionsReached:
    - pcmk__op_key
    - trigger_unfencing
    - custom_action
    - pcmk__set_action_flags
    linkageType: ''
    returnType: void
    signature: 'void pcmk__reschedule_recurring(pcmk_resource_t *rsc, const char *task,
      guint interval_ms, pcmk_node_t *node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:204,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:210,1
    - Dst: find_actions_exact
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:217,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:212,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:219,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:221,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:230,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:231,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:234,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:239,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 4
    argNames:
    - rsc
    - node
    - key
    - start
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - char*
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 241
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 241
    functionName: active_recurring_should_be_optional
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c
    functionUses: []
    functionsReached:
    - g_list_free
    - pcmk__rsc_trace
    - find_actions_exact
    - pcmk__node_name
    - pcmk_is_set
    linkageType: ''
    returnType: bool
    signature: 'static bool active_recurring_should_be_optional(const pcmk_resource_t
      *rsc, const pcmk_node_t *node, const char *key, pcmk_action_t *start) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:65,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:70,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:70,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:67,1
    - Dst: xe_interval
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:72,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:76,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:81,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:83,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:85,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - rsc
    - name
    - interval_ms
    argTypes:
    - pcmk_resource_t*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 90
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 90
    functionName: is_op_dup
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - pcmk__str_eq
    - xe_interval
    - pcmk__xe_next
    - crm_element_value
    - pcmk__config_err
    - pcmk__xe_id
    linkageType: ''
    returnType: bool
    signature: 'static bool is_op_dup(const pcmk_resource_t *rsc, const char *name,
      guint interval_ms) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xe_interval
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:134,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:140,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:141,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:145,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:139,1
    - Dst: op_cannot_recur
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:146,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:147,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:148,1
    - Dst: is_op_dup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:153,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:158,1
    - Dst: pcmk__find_action_config
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:171,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:181,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:164,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:176,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:173,1
    - Dst: pcmk_parse_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:162,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - rsc
    - xml
    - op
    argTypes:
    - pcmk_resource_t*
    - xmlNode*
    - struct op_history*
    constantsTouched: []
    func_position:
      end: 183
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 183
    functionName: is_recurring_history
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c
    functionUses: []
    functionsReached:
    - op_cannot_recur
    - pcmk__op_key
    - pcmk__rsc_trace
    - pcmk__s
    - pcmk__str_empty
    - xe_interval
    - pcmk_parse_role
    - crm_element_value
    - pcmk__config_err
    - pcmk__readable_interval
    - pcmk__xe_id
    - pcmk__find_action_config
    - is_op_dup
    linkageType: ''
    returnType: bool
    signature: 'static bool is_recurring_history(const pcmk_resource_t *rsc, const
      xmlNode *xml, struct op_history *op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:439,1
    - Dst: order_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:442,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:445,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 3
    argNames:
    - rsc
    - node
    - action
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 446
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 446
    functionName: order_after_probes
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c
    functionUses: []
    functionsReached:
    - order_actions
    - g_list_free
    - pe__resource_actions
    linkageType: ''
    returnType: void
    signature: 'static void order_after_probes(pcmk_resource_t *rsc, const pcmk_node_t
      *node, pcmk_action_t *action) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pe__resource_actions
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:460,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:465,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:467,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:468,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:466,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:469,1
    - Dst: pcmk__set_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:470,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:473,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:474,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:475,1
    - Dst: stop_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:480,1
    - Dst: pcmk__clear_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:476,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:479,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:480,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:487,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 3
    argNames:
    - rsc
    - node
    - action
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 488
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 488
    functionName: order_after_stops
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c
    functionUses: []
    functionsReached:
    - crm_debug
    - g_list_free
    - pcmk__rsc_trace
    - pcmk__set_action_flags
    - pcmk__node_name
    - pcmk_is_set
    - pe__resource_actions
    - stop_key
    - pcmk__clear_action_flags
    - pcmk__new_ordering
    linkageType: ''
    returnType: void
    signature: 'static void order_after_stops(pcmk_resource_t *rsc, const pcmk_node_t
      *node, pcmk_action_t *action) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:588,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:595,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:589,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:606,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:596,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:609,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:612,1
    - Dst: start_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:614,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:617,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:620,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:637,1
    - Dst: is_recurring_history
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:626,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:622,1
    - Dst: recurring_op_for_inactive
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:634,1
    - Dst: recurring_op_for_active
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:631,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 639
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 639
    functionName: pcmk__create_recurring_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c
    functionUses: []
    functionsReached:
    - recurring_op_for_active
    - pcmk__rsc_trace
    - pcmk__xe_first_child
    - start_action
    - recurring_op_for_inactive
    - pcmk__node_name
    - pcmk_is_set
    - free
    - is_recurring_history
    - pcmk__xe_next
    linkageType: ''
    returnType: void
    signature: 'void pcmk__create_recurring_actions(pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:699,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:704,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:703,1
    - Dst: pcmk__new_cancel_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:706,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:705,1
    - Dst: pcmk__insert_meta
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:707,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:710,1
    - Dst: stop_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:710,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 6
    argNames:
    - rsc
    - call_id
    - task
    - interval_ms
    - node
    - reason
    argTypes:
    - pcmk_resource_t*
    - char*
    - char*
    - guint
    - pcmk_node_t*
    - char*
    constantsTouched: []
    func_position:
      end: 712
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 712
    functionName: pcmk__schedule_cancel
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__new_cancel_action
    - crm_info
    - pcmk__insert_meta
    - pcmk__node_name
    - stop_key
    - pcmk__readable_interval
    - pcmk__new_ordering
    linkageType: ''
    returnType: void
    signature: 'void pcmk__schedule_cancel(pcmk_resource_t *rsc, const char *call_id,
      const char *task, guint interval_ms, const pcmk_node_t *node, const char *reason) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__guint_from_hash
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c:749,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - action
    argTypes:
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 754
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 754
    functionName: pcmk__action_is_recurring
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_recurring.c
    functionUses: []
    functionsReached:
    - pcmk__guint_from_hash
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__action_is_recurring(const pcmk_action_t *action) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:89,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:98,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:95,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:92,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - synapse
    argTypes:
    - pcmk__graph_synapse_t*
    constantsTouched: []
    func_position:
      end: 102
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 102
    functionName: synapse_state_str
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: char*
    signature: 'static const char *synapse_state_str(pcmk__graph_synapse_t *synapse) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 2
    argNames:
    - graph
    - id
    argTypes:
    - pcmk__graph_t*
    - int
    constantsTouched: []
    func_position:
      end: 84
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 84
    functionName: find_graph_action_by_id
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: pcmk__graph_action_t*
    signature: 'static const pcmk__graph_action_t *find_graph_action_by_id(const pcmk__graph_t
      *graph, int id) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:147,1
    - Dst: actiontype2text
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:153,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:151,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:148,1
    - Dst: find_graph_action_by_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:150,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 3
    argNames:
    - log_level
    - graph
    - synapse
    argTypes:
    - unsigned int
    - pcmk__graph_t*
    - pcmk__graph_synapse_t*
    constantsTouched: []
    func_position:
      end: 157
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 157
    functionName: log_unresolved_inputs
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c
    functionUses: []
    functionsReached:
    - do_crm_log
    - find_graph_action_by_id
    - actiontype2text
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void log_unresolved_inputs(unsigned int log_level, pcmk__graph_t
      *graph, pcmk__graph_synapse_t *synapse) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:183,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:200,1
    - Dst: synapse_pending_inputs
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:184,1
    - Dst: log_synapse_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:192,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:197,1
    - Dst: log_unresolved_inputs
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:201,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 3
    argNames:
    - log_level
    - graph
    - synapse
    argTypes:
    - unsigned int
    - pcmk__graph_t*
    - pcmk__graph_synapse_t*
    constantsTouched: []
    func_position:
      end: 203
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 203
    functionName: log_synapse
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c
    functionUses: []
    functionsReached:
    - synapse_pending_inputs
    - log_unresolved_inputs
    - pcmk_is_set
    - g_string_free
    - log_synapse_action
    linkageType: ''
    returnType: void
    signature: 'static void log_synapse(unsigned int log_level, pcmk__graph_t *graph,
      pcmk__graph_synapse_t *synapse) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:163,1
    - Dst: actiontype2text
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:167,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:164,1
    - Dst: synapse_state_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:166,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:165,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:169,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:173,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 4
    argNames:
    - log_level
    - synapse
    - action
    - pending_inputs
    argTypes:
    - unsigned int
    - pcmk__graph_synapse_t*
    - pcmk__graph_action_t*
    - char*
    constantsTouched: []
    func_position:
      end: 174
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 174
    functionName: log_synapse_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c
    functionUses: []
    functionsReached:
    - actiontype2text
    - crm_strdup_printf
    - do_crm_log
    - free
    - crm_element_value
    - synapse_state_str
    linkageType: ''
    returnType: void
    signature: 'static void log_synapse_action(unsigned int log_level, pcmk__graph_synapse_t
      *synapse, pcmk__graph_action_t *action, const char *pending_inputs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_synapse
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - log_level
    - action
    argTypes:
    - int
    - pcmk__graph_action_t*
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: pcmk__log_graph_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c
    functionUses: []
    functionsReached:
    - log_synapse
    linkageType: ''
    returnType: void
    signature: 'void pcmk__log_graph_action(int log_level, pcmk__graph_action_t *action) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:216,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:221,1
    - Dst: log_synapse
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:228,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - log_level
    - graph
    argTypes:
    - unsigned int
    - pcmk__graph_t*
    constantsTouched: []
    func_position:
      end: 230
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 230
    functionName: pcmk__log_graph
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c
    functionUses: []
    functionsReached:
    - crm_debug
    - log_synapse
    - do_crm_log
    linkageType: ''
    returnType: void
    signature: 'void pcmk__log_graph(unsigned int log_level, pcmk__graph_t *graph) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum pcmk__graph_status
    constantsTouched: []
    func_position:
      end: 37
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 37
    functionName: pcmk__graph_status2text
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__graph_status2text(enum pcmk__graph_status state) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum pcmk__graph_action_type
    constantsTouched: []
    func_position:
      end: 51
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 51
    functionName: actiontype2text
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *actiontype2text(enum pcmk__graph_action_type type) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:126,1
    - Dst: find_graph_action_by_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:132,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:127,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:129,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:127,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:134,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c:134,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 2
    argNames:
    - graph
    - synapse
    argTypes:
    - pcmk__graph_t*
    - pcmk__graph_synapse_t*
    constantsTouched: []
    func_position:
      end: 138
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 138
    functionName: synapse_pending_inputs
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_logging.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk__xe_id
    - find_graph_action_by_id
    - pcmk__add_word
    linkageType: ''
    returnType: GString*
    signature: 'static GString *synapse_pending_inputs(const pcmk__graph_t *graph,
      const pcmk__graph_synapse_t *synapse) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:154,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:158,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:157,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:160,1
    - Dst: pcmk__node_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:156,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:164,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:166,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:168,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:169,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 5
    argNames:
    - constraint_id
    - attr_name
    - node
    - rsc
    - score
    argTypes:
    - char*
    - char*
    - pcmk_node_t*
    - pcmk_resource_t*
    - int*
    constantsTouched: []
    func_position:
      end: 173
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 173
    functionName: score_from_attr
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c
    functionUses: []
    functionsReached:
    - pcmk__node_attr
    - pcmk__str_empty
    - g_hash_table_lookup
    - pcmk__node_name
    - pcmk_parse_score
    - pcmk_rc_str
    - crm_warn
    - crm_info
    linkageType: ''
    returnType: int
    signature: 'static int score_from_attr(const char *constraint_id, const char *attr_name,
      const pcmk_node_t *node, const pcmk_resource_t *rsc, int *score) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__parse_combine
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:233,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:240,1
    - Dst: pe__copy_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:282,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:283,1
    - Dst: pe_rsc_params
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:268,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:285,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:291,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:294,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:215,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:222,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:225,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:227,1
    - Dst: score_from_rule
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:252,1
    - Dst: pcmk__new_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:256,1
    - Dst: pcmk__xe_resolve_idref
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:208,1
    - Dst: score_from_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:277,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:271,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:257,1
    - Dst: score_attribute_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:250,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:287,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:288,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:296,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:297,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:213,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:221,1
    - Dst: parse_location_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:224,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 65
    argCount: 6
    argNames:
    - rsc
    - rule_xml
    - discovery
    - next_change
    - rule_input
    - constraint_id
    argTypes:
    - pcmk_resource_t*
    - xmlNode*
    - char*
    - crm_time_t*
    - pcmk_rule_input_t*
    - char*
    constantsTouched: []
    func_position:
      end: 300
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 300
    functionName: generate_location_rule
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c
    functionUses: []
    functionsReached:
    - score_from_rule
    - free
    - pcmk_evaluate_rule
    - g_list_length
    - pcmk__node_name
    - pcmk__xe_resolve_idref
    - pcmk_readable_score
    - crm_element_value
    - pcmk__new_location
    - score_attribute_name
    - CRM_CHECK
    - pcmk__rsc_trace
    - pcmk__parse_combine
    - pe__copy_node
    - pe_rsc_params
    - pcmk__config_err
    - score_from_attr
    - crm_trace
    - parse_location_role
    - g_list_prepend
    linkageType: ''
    returnType: bool
    signature: 'static bool generate_location_rule(pcmk_resource_t *rsc, xmlNode *rule_xml,
      const char *discovery, crm_time_t *next_change, pcmk_rule_input_t *rule_input,
      const char *constraint_id) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:77,1
    - Dst: pcmk__replace_submatches
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:88,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 3
    argNames:
    - rule_xml
    - allocated
    - rule_input
    argTypes:
    - xmlNode*
    - char**
    - pcmk_rule_input_t*
    constantsTouched: []
    func_position:
      end: 96
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 96
    functionName: score_attribute_name
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c
    functionUses: []
    functionsReached:
    - pcmk__replace_submatches
    - crm_element_value
    linkageType: ''
    returnType: char*
    signature: 'static const char *score_attribute_name(const xmlNode *rule_xml, char
      **allocated, const pcmk_rule_input_t *rule_input) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:476,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:478,1
    - Dst: pcmk__expand_tags_in_sets
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:486,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:488,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:480,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:492,1
    - Dst: pcmk__valid_resource_or_tag
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:497,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:498,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:507,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:509,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:516,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:527,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:533,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:529,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:526,1
    - Dst: pcmk__tag_to_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:514,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 3
    argNames:
    - xml_obj
    - expanded_xml
    - scheduler
    argTypes:
    - xmlNode*
    - xmlNode**
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 538
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 538
    functionName: unpack_location_tags
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c
    functionUses: []
    functionsReached:
    - pcmk__xe_remove_attr
    - CRM_CHECK
    - pcmk__xml_copy
    - crm_xml_add
    - pcmk__valid_resource_or_tag
    - pcmk__xml_free
    - crm_element_value
    - pcmk__config_err
    - crm_log_xml_trace
    - pcmk__xe_id
    - pcmk__tag_to_set
    - pcmk__expand_tags_in_sets
    linkageType: ''
    returnType: int
    signature: 'static int unpack_location_tags(xmlNode *xml_obj, xmlNode **expanded_xml,
      pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:551,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:557,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:555,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:553,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:557,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:561,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:562,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:564,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:566,1
    - Dst: pcmk__find_constraint_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:568,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:569,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:571,1
    - Dst: unpack_rsc_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:576,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:572,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - location
    - set
    - scheduler
    argTypes:
    - xmlNode*
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 581
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 581
    functionName: unpack_location_set
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c
    functionUses: []
    functionsReached:
    - pcmk__find_constraint_resource
    - CRM_CHECK
    - pcmk__s
    - pcmk__xe_first_child
    - unpack_rsc_location
    - pcmk__xe_next
    - crm_element_value
    - pcmk__config_err
    - pcmk__xe_id
    linkageType: ''
    returnType: int
    signature: 'static int unpack_location_set(xmlNode *location, xmlNode *set, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 712
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 712
    functionName: pcmk__apply_locations
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void pcmk__apply_locations(pcmk_scheduler_t *scheduler) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:729,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:737,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:734,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:743,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:738,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:752,1
    - Dst: pcmk__rsc_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:755,1
    - Dst: pcmk_role_text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:758,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:759,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:761,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:776,1
    - Dst: pe__copy_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:764,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:770,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:765,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 2
    argNames:
    - rsc
    - location
    argTypes:
    - pcmk_resource_t*
    - pcmk__location_t*
    constantsTouched: []
    func_position:
      end: 782
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 782
    functionName: pcmk__apply_location
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c
    functionUses: []
    functionsReached:
    - pcmk__set_rsc_flags
    - pcmk__rsc_trace
    - g_hash_table_lookup
    - pcmk__add_scores
    - pe__copy_node
    - pcmk__node_name
    - pcmk_readable_score
    - pcmk__assert
    - g_hash_table_insert
    - pcmk_role_text
    linkageType: ''
    returnType: void
    signature: 'void pcmk__apply_location(pcmk_resource_t *rsc, pcmk__location_t *location) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:308,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:311,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:309,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:321,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:332,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:334,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:338,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:366,1
    - Dst: pcmk__new_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:358,1
    - Dst: pcmk__update_recheck_time
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:385,1
    - Dst: pcmk_find_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:327,1
    - Dst: generate_location_rule
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:376,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:310,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:315,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:340,1
    - Dst: parse_location_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:348,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:349,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:352,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:346,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:388,1
    - Dst: crm_time_new_undefined
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:365,1
    - Dst: crm_time_is_defined
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:382,1
    - Dst: crm_time_get_seconds_since_epoch
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:383,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 49
    argCount: 7
    argNames:
    - xml_obj
    - rsc
    - role_spec
    - score
    - rsc_id_match
    - rsc_id_nmatches
    - rsc_id_submatches
    argTypes:
    - xmlNode*
    - pcmk_resource_t*
    - char*
    - char*
    - char*
    - int
    - regmatch_t*
    constantsTouched: []
    func_position:
      end: 390
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 390
    functionName: unpack_rsc_location
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - pcmk__config_warn
    - pcmk__xe_first_child
    - crm_time_new_undefined
    - generate_location_rule
    - crm_time_get_seconds_since_epoch
    - crm_time_free
    - parse_location_role
    - pcmk_find_node
    - pcmk_parse_score
    - pcmk__update_recheck_time
    - crm_element_value
    - pcmk__config_err
    - crm_info
    - crm_time_is_defined
    - crm_trace
    - pcmk__new_location
    linkageType: ''
    returnType: void
    signature: 'static void unpack_rsc_location(xmlNode *xml_obj, pcmk_resource_t
      *rsc, const char *role_spec, const char *score, char *rsc_id_match, int rsc_id_nmatches,
      regmatch_t *rsc_id_submatches) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unpack_location_tags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:592,1
    - Dst: pcmk__xe_resolve_idref
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:605,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:601,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:602,1
    - Dst: unpack_location_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:607,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:610,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:617,1
    - Dst: unpack_simple_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:622,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 2
    argNames:
    - xml_obj
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 624
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 624
    functionName: pcmk__unpack_location
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - unpack_location_set
    - pcmk__xe_resolve_idref
    - unpack_location_tags
    - pcmk__xml_free
    - pcmk__xe_next
    - unpack_simple_location
    linkageType: ''
    returnType: void
    signature: 'void pcmk__unpack_location(xmlNode *xml_obj, pcmk_scheduler_t *scheduler) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_parse_role
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:38,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 2
    argNames:
    - role_spec
    - role
    argTypes:
    - char*
    - enum rsc_role_e*
    constantsTouched: []
    func_position:
      end: 56
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 56
    functionName: parse_location_role
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c
    functionUses: []
    functionsReached:
    - pcmk_parse_role
    linkageType: ''
    returnType: bool
    signature: 'static bool parse_location_role(const char *role_spec, enum rsc_role_e
      *role) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:111,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:117,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:114,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:123,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:121,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:125,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:125,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - rule_xml
    - score
    argTypes:
    - xmlNode*
    - int*
    constantsTouched: []
    func_position:
      end: 130
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 130
    functionName: score_from_rule
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c
    functionUses: []
    functionsReached:
    - crm_element_value
    - pcmk_parse_score
    - pcmk_rc_str
    - pcmk__config_err
    - pcmk__xe_id
    linkageType: ''
    returnType: int
    signature: 'static int score_from_rule(const xmlNode *rule_xml, int *score) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:395,1
    - Dst: unpack_rsc_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:402,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:396,1
    - Dst: pcmk__find_constraint_resource
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:401,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:405,1
    - Dst: regcomp
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:415,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:416,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:435,1
    - Dst: regexec
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:437,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:440,1
    - Dst: unpack_rsc_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:441,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:450,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:453,1
    - Dst: regfree
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:458,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:445,1
    - Dst: unpack_rsc_location
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:447,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 2
    argNames:
    - xml_obj
    - scheduler
    argTypes:
    - xmlNode*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 460
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 460
    functionName: unpack_simple_location
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__find_constraint_resource
    - regexec
    - pcmk__assert_alloc
    - regfree
    - unpack_rsc_location
    - regcomp
    - free
    - crm_element_value
    - pcmk__config_err
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void unpack_simple_location(xmlNode *xml_obj, pcmk_scheduler_t
      *scheduler) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:646,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:649,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:654,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:658,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:659,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:664,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:668,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:671,1
    - Dst: pcmk__set_rsc_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:674,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:677,1
    - Dst: pe__copy_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:682,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:692,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:689,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c:685,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 5
    argNames:
    - id
    - rsc
    - node_score
    - probe_mode
    - node
    argTypes:
    - char*
    - pcmk_resource_t*
    - int
    - char*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 695
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 695
    functionName: pcmk__new_location
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_location.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__set_rsc_flags
    - pcmk__assert_alloc
    - pcmk__str_eq
    - pe__copy_node
    - pcmk__str_copy
    - g_list_prepend
    - pcmk__config_err
    linkageType: ''
    returnType: pcmk__location_t*
    signature: 'pcmk__location_t *pcmk__new_location(const char *id, pcmk_resource_t
      *rsc, int node_score, const char *probe_mode, pcmk_node_t *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:65,1
    - Dst: start_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - first_rsc
    - then_action
    - extra
    argTypes:
    - pcmk_resource_t*
    - pcmk_action_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: order_start_then_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c
    functionUses: []
    functionsReached:
    - start_key
    - pcmk__new_ordering
    linkageType: ''
    returnType: void
    signature: 'static inline void order_start_then_action(pcmk_resource_t *first_rsc,
      pcmk_action_t *then_action, uint32_t extra) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:92,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:124,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:95,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:97,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:115,1
    - Dst: pe__shutdown_requested
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:125,1
    - Dst: pcmk__list_of_multiple
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:150,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 160
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 160
    functionName: get_remote_node_state
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk__list_of_multiple
    - pcmk__assert
    - pe__shutdown_requested
    - pcmk__current_node
    linkageType: ''
    returnType: enum remote_connection_state
    signature: 'static enum remote_connection_state get_remote_node_state(const pcmk_node_t
      *node) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:313,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:320,1
    - Dst: pcmk__parse_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:304,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:310,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:322,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:348,1
    - Dst: order_start_then_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:343,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:307,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:306,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:315,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:324,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:307,1
    - Dst: pe_fence_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:316,1
    - Dst: pcmk__action_is_recurring
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:370,1
    - Dst: order_start_then_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:376,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:327,1
    - Dst: order_start_then_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:380,1
    - Dst: order_start_then_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:339,1
    - Dst: order_action_then_stop
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:364,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 1
    argNames:
    - action
    argTypes:
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 384
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 384
    functionName: apply_launcher_ordering
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c
    functionUses: []
    functionsReached:
    - order_action_then_stop
    - pcmk__action_is_recurring
    - order_start_then_action
    - pcmk__strcase_any_of
    - pcmk__is_pacemaker_remote_node
    - pcmk_is_set
    - pcmk__assert
    - pe_fence_node
    - pcmk__parse_action
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void apply_launcher_ordering(pcmk_action_t *action) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_remote_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:503,1
    - Dst: get_remote_node_state
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 505
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 505
    functionName: pcmk__is_failed_remote_node
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c
    functionUses: []
    functionsReached:
    - pcmk__is_remote_node
    - get_remote_node_state
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__is_failed_remote_node(const pcmk_node_t *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:653,1
    - Dst: pe_rsc_params
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:656,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:658,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:655,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:660,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - rsc
    - params
    argTypes:
    - pcmk_resource_t*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 663
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 663
    functionName: pcmk__substitute_remote_addr
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c
    functionUses: []
    functionsReached:
    - pcmk__insert_dup
    - pe_rsc_params
    - pcmk__str_eq
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: 'void pcmk__substitute_remote_addr(pcmk_resource_t *rsc, GHashTable
      *params) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum remote_connection_state
    constantsTouched: []
    func_position:
      end: 49
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 49
    functionName: state2text
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *state2text(enum remote_connection_state state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:79,1
    - Dst: stop_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - first_action
    - then_rsc
    - extra
    argTypes:
    - pcmk_action_t*
    - pcmk_resource_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: order_action_then_stop
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c
    functionUses: []
    functionsReached:
    - stop_key
    - pcmk__new_ordering
    linkageType: ''
    returnType: void
    signature: 'static inline void order_action_then_stop(pcmk_action_t *first_action,
      pcmk_resource_t *then_rsc, uint32_t extra) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__parse_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:172,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:181,1
    - Dst: get_remote_node_state
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:173,1
    - Dst: order_start_then_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:266,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:191,1
    - Dst: order_action_then_stop
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:216,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:270,1
    - Dst: pcmk__action_is_recurring
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:261,1
    - Dst: pe_fence_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:278,1
    - Dst: order_action_then_stop
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:288,1
    - Dst: order_start_then_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:292,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:184,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:186,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:188,1
    - Dst: state2text
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:189,1
    - Dst: pcmk__set_relation_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:206,1
    - Dst: order_start_then_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:243,1
    - Dst: order_action_then_stop
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:236,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:181,1
    - Dst: pe_fence_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:226,1
    - Dst: order_start_then_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:211,1
    - Dst: order_start_then_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:255,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 55
    argCount: 1
    argNames:
    - action
    argTypes:
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 297
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 297
    functionName: apply_remote_ordering
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c
    functionUses: []
    functionsReached:
    - order_action_then_stop
    - pcmk__action_is_recurring
    - order_start_then_action
    - pcmk__strcase_any_of
    - pcmk__is_pacemaker_remote_node
    - pcmk__set_relation_flags
    - pcmk_is_set
    - get_remote_node_state
    - pcmk__assert
    - state2text
    - pe_fence_node
    - pcmk__parse_action
    - crm_trace
    - pcmk__current_node
    linkageType: ''
    returnType: void
    signature: 'static void apply_remote_ordering(pcmk_action_t *action) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:395,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:415,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:419,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:399,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:416,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:420,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:432,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:442,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:457,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:462,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:482,1
    - Dst: pcmk__new_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:465,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:486,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:463,1
    - Dst: apply_remote_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:487,1
    - Dst: apply_launcher_ordering
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:483,1
    - Dst: start_key
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:465,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 490
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 490
    functionName: pcmk__order_remote_connection_actions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c
    functionUses: []
    functionsReached:
    - apply_launcher_ordering
    - apply_remote_ordering
    - pcmk__str_eq
    - start_key
    - pcmk__same_node
    - pcmk__is_pacemaker_remote_node
    - pcmk_is_set
    - pcmk__op_key
    - crm_trace
    - pcmk__new_ordering
    linkageType: ''
    returnType: void
    signature: 'void pcmk__order_remote_connection_actions(pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - rsc
    - node
    argTypes:
    - pcmk_resource_t*
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 524
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 524
    functionName: pcmk__rsc_corresponds_to_guest
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__rsc_corresponds_to_guest(const pcmk_resource_t *rsc, const
      pcmk_node_t *node) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:549,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:555,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:565,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:557,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:550,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:574,1
    - Dst: pcmk__same_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:582,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:583,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:598,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:599,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:614,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:618,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:630,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 1
    argNames:
    - action
    argTypes:
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 636
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 636
    functionName: pcmk__connection_host_for_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - pcmk__str_eq
    - pcmk__same_node
    - pcmk__strcase_any_of
    - pcmk__is_pacemaker_remote_node
    - pcmk__assert
    - crm_trace
    - pcmk__current_node
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'pcmk_node_t *pcmk__connection_host_for_action(const pcmk_action_t
      *action) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:688,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:695,1
    - Dst: pcmk__parse_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:695,1
    - Dst: pcmk__current_node
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:705,1
    - Dst: pcmk__parse_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:693,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:723,1
    - Dst: hash2metafield
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:726,1
    - Dst: hash2metafield
      Src: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c:729,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 23
    argCount: 2
    argNames:
    - args_xml
    - action
    argTypes:
    - xmlNode*
    - pcmk_action_t*
    constantsTouched: []
    func_position:
      end: 733
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 733
    functionName: pcmk__add_guest_meta_to_xml
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_sched_remote.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - hash2metafield
    - pcmk__is_guest_or_bundle_node
    - pcmk__parse_action
    - pcmk__current_node
    linkageType: ''
    returnType: void
    signature: 'void pcmk__add_guest_meta_to_xml(xmlNode *args_xml, const pcmk_action_t
      *action) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:73,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:76,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:74,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:75,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - graph
    argTypes:
    - pcmk__graph_t*
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: pcmk__free_graph
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c
    functionUses: []
    functionsReached:
    - free
    - g_list_free_full
    linkageType: ''
    returnType: void
    signature: 'void pcmk__free_graph(pcmk__graph_t *graph) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:106,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:119,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:121,1
    - Dst: pcmk__set_synapse_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:111,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:117,1
    - Dst: pcmk__clear_synapse_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:122,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:123,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:127,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:128,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - synapse
    - action_id
    argTypes:
    - pcmk__graph_synapse_t*
    - int
    constantsTouched: []
    func_position:
      end: 130
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 130
    functionName: update_synapse_ready
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c
    functionUses: []
    functionsReached:
    - pcmk__set_graph_action_flags
    - pcmk_is_set
    - pcmk__set_synapse_flags
    - pcmk__clear_synapse_flags
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void update_synapse_ready(pcmk__graph_synapse_t *synapse, int
      action_id) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:180,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:187,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:184,1
    - Dst: update_synapse_confirmed
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:185,1
    - Dst: update_synapse_ready
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:189,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 2
    argNames:
    - graph
    - action
    argTypes:
    - pcmk__graph_t*
    - pcmk__graph_action_t*
    constantsTouched: []
    func_position:
      end: 192
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 192
    functionName: pcmk__update_graph
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - pcmk_is_set
    - update_synapse_confirmed
    - update_synapse_ready
    linkageType: ''
    returnType: void
    signature: 'void pcmk__update_graph(pcmk__graph_t *graph, const pcmk__graph_action_t
      *action) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:215,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - fns
    argTypes:
    - pcmk__graph_functions_t*
    constantsTouched: []
    func_position:
      end: 219
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 219
    functionName: pcmk__set_graph_functions
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - crm_debug
    linkageType: ''
    returnType: void
    signature: 'void pcmk__set_graph_functions(pcmk__graph_functions_t *fns) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_synapse_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:338,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:347,1
    - Dst: initiate_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:341,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:344,1
    - Dst: pcmk__set_synapse_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:348,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:349,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - graph
    - synapse
    argTypes:
    - pcmk__graph_t*
    - pcmk__graph_synapse_t*
    constantsTouched: []
    func_position:
      end: 356
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 356
    functionName: fire_synapse
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c
    functionUses: []
    functionsReached:
    - pcmk__set_synapse_flags
    - pcmk__set_graph_action_flags
    - pcmk_rc_str
    - initiate_action
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int fire_synapse(pcmk__graph_t *graph, pcmk__graph_synapse_t
      *synapse) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:377,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:390,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:386,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:387,1
    - Dst: getenv
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:377,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:392,1
    - Dst: pcmk__update_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:393,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - graph
    - action
    argTypes:
    - pcmk__graph_t*
    - pcmk__graph_action_t*
    constantsTouched: []
    func_position:
      end: 395
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 395
    functionName: pseudo_action_dummy
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c
    functionUses: []
    functionsReached:
    - crm_trace
    - pcmk__set_graph_action_flags
    - pcmk__update_graph
    - pcmk__scan_ll
    - getenv
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int pseudo_action_dummy(pcmk__graph_t *graph, pcmk__graph_action_t
      *action) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:627,1
    - Dst: free_graph_synapse
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:631,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:638,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:636,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:662,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:664,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:671,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:618,1
    - Dst: calloc
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:620,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:628,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:645,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:657,1
    - Dst: unpack_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:647,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:641,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:643,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:668,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:673,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:625,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:618,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:687,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:675,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:625,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:630,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:635,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:654,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:662,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:666,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:684,1
    - Dst: unpack_action
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:677,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 57
    argCount: 2
    argNames:
    - new_graph
    - xml_synapse
    argTypes:
    - pcmk__graph_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 694
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 694
    functionName: unpack_synapse
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - g_list_append
    - pcmk__xe_id
    - pcmk__xe_first_child
    - calloc
    - free_graph_synapse
    - unpack_action
    - pcmk__xe_next
    - crm_element_value
    - pcmk__scan_min_int
    - crm_trace
    linkageType: ''
    returnType: pcmk__graph_synapse_t*
    signature: 'static pcmk__graph_synapse_t *unpack_synapse(pcmk__graph_t *new_graph,
      const xmlNode *xml_synapse) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:548,1
    - Dst: calloc
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:564,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:579,1
    - Dst: xml2list
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:576,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:566,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:597,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:539,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:544,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:554,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:560,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:567,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:573,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:584,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:551,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:542,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:558,1
    - Dst: pcmk__guint_from_hash
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:592,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:578,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:588,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:571,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 2
    argNames:
    - parent
    - xml_action
    argTypes:
    - pcmk__graph_synapse_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 600
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 600
    functionName: unpack_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c
    functionUses: []
    functionsReached:
    - pcmk__xml_copy
    - crm_trace
    - crm_perror
    - calloc
    - pcmk__guint_from_hash
    - pcmk__xe_is
    - crm_meta_value
    - crm_log_xml_trace
    - pcmk__scan_min_int
    - pcmk__xe_id
    - crm_err
    - xml2list
    linkageType: ''
    returnType: pcmk__graph_action_t*
    signature: 'static pcmk__graph_action_t *unpack_action(pcmk__graph_synapse_t *parent,
      xmlNode *xml_action) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:833,1
    - Dst: lrmd_new_event
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:840,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:841,1
    - Dst: time
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:844,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:859,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:859,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:832,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:840,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:854,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:853,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:850,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:835,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:837,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:858,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:846,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:837,1
    - Dst: lrmd__set_result
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:843,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:849,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:848,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 5
    argNames:
    - resource
    - action
    - status
    - rc
    - exit_reason
    argTypes:
    - xmlNode*
    - pcmk__graph_action_t*
    - int
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 867
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 867
    functionName: pcmk__event_from_graph_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c
    functionUses: []
    functionsReached:
    - crm_debug
    - lrmd_new_event
    - CRM_CHECK
    - pcmk__xe_first_child
    - g_hash_table_iter_init
    - pcmk__insert_dup
    - pcmk__strkey_table
    - time
    - crm_log_xml_warn
    - lrmd__set_result
    - pcmk__xe_next
    - crm_element_value
    - pcmk__xe_id
    - crm_element_value_int
    - g_hash_table_iter_next
    linkageType: ''
    returnType: lrmd_event_data_t*
    signature: 'lrmd_event_data_t *pcmk__event_from_graph_action(const xmlNode *resource,
      const pcmk__graph_action_t *action, int status, int rc, const char *exit_reason) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:148,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:153,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:161,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:155,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:150,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:162,1
    - Dst: pcmk__set_synapse_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:163,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - synapse
    - action_id
    argTypes:
    - pcmk__graph_synapse_t*
    - int
    constantsTouched: []
    func_position:
      end: 165
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 165
    functionName: update_synapse_confirmed
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c
    functionUses: []
    functionsReached:
    - pcmk__set_graph_action_flags
    - pcmk_is_set
    - crm_trace
    - pcmk__set_synapse_flags
    linkageType: ''
    returnType: void
    signature: 'static void update_synapse_confirmed(pcmk__graph_synapse_t *synapse,
      int action_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:58,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:59,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: free_graph_synapse
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c
    functionUses: []
    functionsReached:
    - free
    - g_list_free_full
    linkageType: ''
    returnType: void
    signature: 'static void free_graph_synapse(gpointer user_data) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_synapse_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:235,1
    - Dst: pcmk__clear_synapse_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:242,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:239,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:245,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:240,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:246,1
    - Dst: pcmk__clear_synapse_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:248,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:252,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:253,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:265,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:272,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 2
    argNames:
    - graph
    - synapse
    argTypes:
    - pcmk__graph_t*
    - pcmk__graph_synapse_t*
    constantsTouched: []
    func_position:
      end: 278
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 278
    functionName: should_fire_synapse
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk__clear_synapse_flags
    - crm_trace
    - pcmk__set_synapse_flags
    linkageType: ''
    returnType: bool
    signature: 'static bool should_fire_synapse(pcmk__graph_t *graph, pcmk__graph_synapse_t
      *synapse) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:292,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:298,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:295,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:294,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:295,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:301,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:305,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:309,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:311,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:315,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:319,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:309,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - graph
    - action
    argTypes:
    - pcmk__graph_t*
    - pcmk__graph_action_t*
    constantsTouched: []
    func_position:
      end: 324
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 324
    functionName: initiate_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__set_graph_action_flags
    - pcmk__str_eq
    - pcmk_is_set
    - crm_err
    - crm_element_value
    - pcmk__xe_id
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int initiate_action(pcmk__graph_t *graph, pcmk__graph_action_t
      *action) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:437,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:455,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:440,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:441,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:445,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:459,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:463,1
    - Dst: should_fire_synapse
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:468,1
    - Dst: fire_synapse
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:470,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:471,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:511,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:483,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:478,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 75
    argCount: 1
    argNames:
    - graph
    argTypes:
    - pcmk__graph_t*
    constantsTouched: []
    func_position:
      end: 518
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 518
    functionName: pcmk__execute_graph
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_any_flags_set
    - fire_synapse
    - do_crm_log
    - pcmk_is_set
    - crm_err
    - should_fire_synapse
    - crm_trace
    linkageType: ''
    returnType: enum pcmk__graph_status
    signature: 'enum pcmk__graph_status pcmk__execute_graph(pcmk__graph_t *graph) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:731,1
    - Dst: pcmk__free_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:744,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:767,1
    - Dst: crm_element_value_epoch
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:775,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:782,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:797,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:745,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:768,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:750,1
    - Dst: unpack_synapse
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:788,1
    - Dst: calloc
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:726,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:731,1
    - Dst: pcmk__free_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:733,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:747,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:748,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:762,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:752,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:773,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:786,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:792,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:741,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:743,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:756,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:760,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:771,1
    - Dst: pcmk__free_graph
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:749,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 2
    argNames:
    - xml_graph
    - reference
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 802
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 802
    functionName: pcmk__unpack_graph
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c
    functionUses: []
    functionsReached:
    - crm_debug
    - unpack_synapse
    - CRM_CHECK
    - g_list_append
    - pcmk__s
    - pcmk__xe_first_child
    - calloc
    - crm_element_value_epoch
    - pcmk__free_graph
    - pcmk_parse_interval_spec
    - pcmk__xe_next
    - crm_element_value
    - strdup
    - crm_element_value_copy
    - pcmk__scan_min_int
    linkageType: ''
    returnType: pcmk__graph_t*
    signature: 'pcmk__graph_t *pcmk__unpack_graph(const xmlNode *xml_graph, const
      char *reference) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_warn
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:37,1
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:38,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:43,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:41,1
    - Dst: free
      Src: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: free_graph_action
    functionSourceFile: /src/pacemaker/lib/pacemaker/pcmk_graph_consumer.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - free
    - pcmk__xml_free
    - crm_warn
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: 'static void free_graph_action(gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:27,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:29,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:28,1
    - Dst: pcmk_resource_delete
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:27,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 30
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 30
    functionName: cib_not_connected
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - pcmk__xml_free
    - pcmk_resource_delete
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void cib_not_connected(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_test_cleanup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: teardown_test
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c
    functionUses: []
    functionsReached:
    - pcmk__cib_test_cleanup
    linkageType: ''
    returnType: int
    signature: 'static int teardown_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:73,1
    - Dst: pcmk_cib_xpath_for
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:81,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:80,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:77,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:86,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:87,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 89
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 89
    functionName: find_rsc
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - pcmk__g_strcat
    - cib_new
    - g_string_sized_new
    - g_string_free
    - pcmk_cib_xpath_for
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *find_rsc(const char *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:117,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:118,1
    - Dst: find_rsc
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:121,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:119,1
    - Dst: pcmk_resource_delete
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:117,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:122,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 125
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 125
    functionName: correct_type
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - find_rsc
    - pcmk_resource_delete
    - assert_int_equal
    - pcmk__xml_free
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void correct_type(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_test_copy_cib
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: setup_test
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c
    functionUses: []
    functionsReached:
    - pcmk__cib_test_copy_cib
    linkageType: ''
    returnType: int
    signature: 'static int setup_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:60,1
    - Dst: pcmk_resource_delete
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:60,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:65,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:61,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:62,1
    - Dst: pcmk_resource_delete
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:65,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:66,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 68
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 68
    functionName: bad_input
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - pcmk__xml_free
    - pcmk_resource_delete
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void bad_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:101,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:102,1
    - Dst: find_rsc
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:105,1
    - Dst: pcmk_resource_delete
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:101,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:103,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:106,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 109
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 109
    functionName: incorrect_type
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - find_rsc
    - pcmk_resource_delete
    - assert_non_null
    - assert_int_equal
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void incorrect_type(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:135,1
    - Dst: pcmk_resource_delete
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:135,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:136,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: unknown_resource
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - pcmk__xml_free
    - pcmk_resource_delete
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void unknown_resource(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:26,1
    - Dst: pcmk__get_ticket_state
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:32,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:32,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: cib_not_connected
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - cib_new
    - pcmk__get_ticket_state
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void cib_not_connected(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:74,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:80,1
    - Dst: pcmk__get_ticket_state
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:78,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:78,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 82
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 82
    functionName: unknown_ticket
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - pcmk__get_ticket_state
    - assert_int_equal
    - cib_new
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void unknown_ticket(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_test_cleanup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: teardown_test
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c
    functionUses: []
    functionsReached:
    - pcmk__cib_test_cleanup
    linkageType: ''
    returnType: int
    signature: 'static int teardown_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:118,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:127,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:129,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:133,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:137,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:143,1
    - Dst: pcmk__get_ticket_state
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:118,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:123,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:128,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:129,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:132,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:133,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:136,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:137,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:140,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:145,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:114,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:141,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:141,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:144,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:125,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:125,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:131,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:135,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:139,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 146
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 146
    functionName: multiple_tickets
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - cib__clean_up_connection
    - crm_element_value
    - pcmk__xpath_result
    - assert_non_null
    - pcmk__get_ticket_state
    - assert_int_equal
    - cib_new
    - xmlXPathFreeObject
    - pcmk__xml_free
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    linkageType: ''
    returnType: void
    signature: 'static void multiple_tickets(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_test_copy_cib
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: setup_test
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c
    functionUses: []
    functionsReached:
    - pcmk__cib_test_copy_cib
    linkageType: ''
    returnType: int
    signature: 'static int setup_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:60,1
    - Dst: pcmk__get_ticket_state
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:64,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:64,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:65,1
    - Dst: pcmk__get_ticket_state
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:65,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: bad_arguments
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - pcmk__assert_asserts
    - cib_new
    - pcmk__get_ticket_state
    linkageType: ''
    returnType: void
    signature: 'static void bad_arguments(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:89,1
    - Dst: pcmk__get_ticket_state
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:93,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:93,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:98,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:101,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:101,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:103,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:104,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 106
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 106
    functionName: ticket_exists
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - pcmk__get_ticket_state
    - assert_int_equal
    - cib_new
    - xmlXPathFreeObject
    - pcmk__xml_free
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    linkageType: ''
    returnType: void
    signature: 'static void ticket_exists(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:153,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:162,1
    - Dst: pcmk__get_ticket_state
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:157,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:157,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:166,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:166,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:167,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:168,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c:169,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 170
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 170
    functionName: duplicate_tickets
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk__get_ticket_state_test.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - pcmk__get_ticket_state
    - assert_int_equal
    - cib_new
    - xmlXPathFreeObject
    - pcmk__xml_free
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    linkageType: ''
    returnType: void
    signature: 'static void duplicate_tickets(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_test_copy_cib
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:23,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: setup_test
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c
    functionUses: []
    functionsReached:
    - pcmk__cib_test_copy_cib
    linkageType: ''
    returnType: int
    signature: 'static int setup_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:43,1
    - Dst: pcmk_ticket_info
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: bad_arguments
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c
    functionUses: []
    functionsReached:
    - pcmk_ticket_info
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void bad_arguments(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:71,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:75,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:77,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:84,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:84,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:95,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:97,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:101,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:111,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:112,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:113,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:63,1
    - Dst: pcmk_ticket_info
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:63,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:85,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:87,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:86,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:88,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:98,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:99,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:103,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:110,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:110,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:116,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:111,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:82,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:85,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:90,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:97,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:98,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:100,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:109,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:112,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:113,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:115,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:64,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:74,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:74,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:83,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:86,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:87,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:96,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:99,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:100,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:108,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 117
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 117
    functionName: all_tickets
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__assert_validates
    - pcmk_ticket_info
    - crm_element_value
    - pcmk__xpath_result
    - assert_non_null
    - assert_int_equal
    - xmlXPathFreeObject
    - pcmk__xml_free
    - pcmk__xpath_num_results
    - assert_null
    - pcmk__xpath_search
    linkageType: ''
    returnType: void
    signature: 'static void all_tickets(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:51,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:53,1
    - Dst: pcmk_ticket_info
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:51,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: unknown_ticket
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - pcmk_ticket_info
    - pcmk__xml_free
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void unknown_ticket(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_test_cleanup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: teardown_test
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c
    functionUses: []
    functionsReached:
    - pcmk__cib_test_cleanup
    linkageType: ''
    returnType: int
    signature: 'static int teardown_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:126,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:132,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:136,1
    - Dst: pcmk_ticket_info
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:126,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:127,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:136,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:138,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:139,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:140,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:140,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:142,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:143,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:141,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:142,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:145,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:143,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:141,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c:146,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 147
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 147
    functionName: single_ticket
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_info_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__assert_validates
    - pcmk_ticket_info
    - crm_element_value
    - pcmk__xpath_result
    - assert_non_null
    - assert_int_equal
    - xmlXPathFreeObject
    - pcmk__xml_free
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    linkageType: ''
    returnType: void
    signature: 'static void single_ticket(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_test_copy_cib
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:24,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: setup_test
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c
    functionUses: []
    functionsReached:
    - pcmk__cib_test_copy_cib
    linkageType: ''
    returnType: int
    signature: 'static int setup_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:87,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:90,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:92,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:90,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:93,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:94,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:94,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:95,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:100,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:104,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:108,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:109,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:104,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:111,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:108,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:107,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:109,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - xml
    - ticket_id
    - attr_name
    - attr_value
    argTypes:
    - xmlNode*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 112
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 112
    functionName: verify_results
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - crm_element_value
    - pcmk__xpath_result
    - assert_non_null
    - assert_int_equal
    - xmlXPathFreeObject
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    linkageType: ''
    returnType: void
    signature: 'static void verify_results(xmlNode *xml, const char *ticket_id, const
      char *attr_name, const char *attr_value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:46,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:48,1
    - Dst: pcmk_ticket_get_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:46,1
    - Dst: pcmk_ticket_get_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:48,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:49,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:50,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:53,1
    - Dst: pcmk_ticket_get_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:53,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:54,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: bad_arguments
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - pcmk__xml_free
    - pcmk_ticket_get_attr
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void bad_arguments(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:132,1
    - Dst: verify_results
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:135,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:133,1
    - Dst: pcmk_ticket_get_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:132,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: default_no_ticket
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - verify_results
    - assert_int_equal
    - pcmk__xml_free
    - pcmk_ticket_get_attr
    linkageType: ''
    returnType: void
    signature: 'static void default_no_ticket(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_test_cleanup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: teardown_test
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c
    functionUses: []
    functionsReached:
    - pcmk__cib_test_cleanup
    linkageType: ''
    returnType: int
    signature: 'static int teardown_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:67,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:72,1
    - Dst: pcmk_ticket_get_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:67,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:69,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:68,1
    - Dst: pcmk_ticket_get_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:72,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:73,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 75
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 75
    functionName: unknown_ticket
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - pcmk__xml_free
    - pcmk_ticket_get_attr
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void unknown_ticket(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:119,1
    - Dst: pcmk_ticket_get_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:119,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:124,1
    - Dst: verify_results
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:122,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 125
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 125
    functionName: attribute_exists
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - verify_results
    - assert_int_equal
    - pcmk__xml_free
    - pcmk_ticket_get_attr
    linkageType: ''
    returnType: void
    signature: 'static void attribute_exists(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:145,1
    - Dst: verify_results
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:148,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:146,1
    - Dst: pcmk_ticket_get_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:145,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: default_no_attribute
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_get_attr_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - verify_results
    - assert_int_equal
    - pcmk__xml_free
    - pcmk_ticket_get_attr
    linkageType: ''
    returnType: void
    signature: 'static void default_no_attribute(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_test_copy_cib
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: setup_test
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c
    functionUses: []
    functionsReached:
    - pcmk__cib_test_copy_cib
    linkageType: ''
    returnType: int
    signature: 'static int setup_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:57,1
    - Dst: pcmk_ticket_delete
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:57,1
    - Dst: pcmk_ticket_delete
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:59,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:59,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:60,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: bad_arguments
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c
    functionUses: []
    functionsReached:
    - pcmk_ticket_delete
    - pcmk__assert_validates
    - pcmk__xml_free
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void bad_arguments(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:84,1
    - Dst: pcmk_ticket_delete
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:84,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:85,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: ticket_granted
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c
    functionUses: []
    functionsReached:
    - pcmk_ticket_delete
    - pcmk__assert_validates
    - pcmk__xml_free
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void ticket_granted(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:117,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:121,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:118,1
    - Dst: pcmk_ticket_delete
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:117,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:125,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:127,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:128,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 129
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 129
    functionName: force_delete_ticket
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c
    functionUses: []
    functionsReached:
    - pcmk_ticket_delete
    - pcmk__assert_validates
    - cib__clean_up_connection
    - assert_int_equal
    - cib_new
    - pcmk__xml_free
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void force_delete_ticket(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:27,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:29,1
    - Dst: pcmk_ticket_delete
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:27,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:28,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 30
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 30
    functionName: cib_not_connected
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c
    functionUses: []
    functionsReached:
    - pcmk_ticket_delete
    - pcmk__assert_validates
    - pcmk__xml_free
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void cib_not_connected(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:69,1
    - Dst: pcmk_ticket_delete
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:69,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:70,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:71,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:74,1
    - Dst: pcmk_ticket_delete
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:74,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:75,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 77
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 77
    functionName: unknown_ticket
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c
    functionUses: []
    functionsReached:
    - pcmk_ticket_delete
    - pcmk__assert_validates
    - pcmk__xml_free
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void unknown_ticket(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_test_cleanup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: teardown_test
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c
    functionUses: []
    functionsReached:
    - pcmk__cib_test_cleanup
    linkageType: ''
    returnType: int
    signature: 'static int teardown_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:96,1
    - Dst: pcmk_ticket_delete
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:96,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:100,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:97,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:104,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:106,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:107,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 108
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 108
    functionName: ticket_exists
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c
    functionUses: []
    functionsReached:
    - pcmk_ticket_delete
    - pcmk__assert_validates
    - cib__clean_up_connection
    - assert_int_equal
    - cib_new
    - pcmk__xml_free
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void ticket_exists(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:138,1
    - Dst: pcmk_ticket_delete
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:138,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:139,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:142,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:147,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:149,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c:150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 151
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 151
    functionName: duplicate_tickets
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_delete_test.c
    functionUses: []
    functionsReached:
    - pcmk_ticket_delete
    - pcmk__assert_validates
    - cib__clean_up_connection
    - assert_int_equal
    - cib_new
    - pcmk__xml_free
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void duplicate_tickets(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_test_copy_cib
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: setup_test
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c
    functionUses: []
    functionsReached:
    - pcmk__cib_test_copy_cib
    linkageType: ''
    returnType: int
    signature: 'static int setup_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:57,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:59,1
    - Dst: pcmk_ticket_set_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:57,1
    - Dst: pcmk_ticket_set_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:59,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:60,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: bad_arguments
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - pcmk_ticket_set_attr
    - pcmk__xml_free
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void bad_arguments(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:100,1
    - Dst: pcmk_ticket_set_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:111,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:106,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:105,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:111,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:112,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:113,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:115,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:120,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:120,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:123,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:125,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:121,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:124,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:121,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 126
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 126
    functionName: unknown_ticket_with_attrs
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__assert_validates
    - cib__clean_up_connection
    - pcmk_ticket_set_attr
    - pcmk__insert_dup
    - pcmk__strkey_table
    - g_hash_table_destroy
    - assert_int_equal
    - cib_new
    - pcmk__xml_free
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void unknown_ticket_with_attrs(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:157,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:164,1
    - Dst: pcmk_ticket_set_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:164,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:162,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:165,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:166,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:168,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:173,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:173,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:174,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:177,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:176,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:174,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:178,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 179
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 179
    functionName: not_granted_to_granted_without_force
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__assert_validates
    - cib__clean_up_connection
    - pcmk_ticket_set_attr
    - pcmk__insert_dup
    - pcmk__strkey_table
    - g_hash_table_destroy
    - assert_int_equal
    - cib_new
    - pcmk__xml_free
    - crm_element_value
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void not_granted_to_granted_without_force(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:211,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:219,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:216,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:218,1
    - Dst: pcmk_ticket_set_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:218,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:220,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:222,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:227,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:228,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:230,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:231,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:227,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:232,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:228,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 233
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 233
    functionName: granted_to_not_granted_without_force
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__assert_validates
    - cib__clean_up_connection
    - pcmk_ticket_set_attr
    - pcmk__insert_dup
    - pcmk__strkey_table
    - g_hash_table_destroy
    - assert_int_equal
    - cib_new
    - pcmk__xml_free
    - crm_element_value
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void granted_to_not_granted_without_force(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:27,1
    - Dst: pcmk_ticket_set_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:27,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:28,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 30
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 30
    functionName: cib_not_connected
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - pcmk_ticket_set_attr
    - pcmk__xml_free
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void cib_not_connected(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:67,1
    - Dst: pcmk_ticket_set_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:75,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:75,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:70,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:76,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:77,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:82,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:85,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:87,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:91,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:86,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:94,1
    - Dst: pcmk_ticket_set_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:85,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:93,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 95
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 95
    functionName: unknown_ticket_no_attrs
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - pcmk__assert_validates
    - pcmk_ticket_set_attr
    - pcmk__strkey_table
    - g_hash_table_destroy
    - assert_int_equal
    - cib_new
    - pcmk__xml_free
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void unknown_ticket_no_attrs(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_test_cleanup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: teardown_test
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c
    functionUses: []
    functionsReached:
    - pcmk__cib_test_cleanup
    linkageType: ''
    returnType: int
    signature: 'static int teardown_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:131,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:139,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:136,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:138,1
    - Dst: pcmk_ticket_set_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:138,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:140,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:142,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:147,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:150,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:147,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:151,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:149,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 152
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 152
    functionName: overwrite_existing_attr
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__assert_validates
    - cib__clean_up_connection
    - pcmk_ticket_set_attr
    - pcmk__insert_dup
    - pcmk__strkey_table
    - g_hash_table_destroy
    - assert_int_equal
    - cib_new
    - pcmk__xml_free
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void overwrite_existing_attr(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:184,1
    - Dst: pcmk_ticket_set_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:191,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:189,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:192,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:191,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:193,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:195,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:200,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:201,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:203,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:205,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:201,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:200,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:204,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 206
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 206
    functionName: not_granted_to_granted_with_force
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__assert_validates
    - cib__clean_up_connection
    - assert_non_null
    - pcmk_ticket_set_attr
    - pcmk__insert_dup
    - pcmk__strkey_table
    - g_hash_table_destroy
    - assert_int_equal
    - cib_new
    - pcmk__xml_free
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void not_granted_to_granted_with_force(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:238,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:246,1
    - Dst: pcmk_ticket_set_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:245,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:243,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:245,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:247,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:249,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:254,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:254,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:258,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:257,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:255,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:259,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c:255,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 260
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 260
    functionName: granted_to_not_granted_with_force
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_set_attr_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__assert_validates
    - cib__clean_up_connection
    - pcmk_ticket_set_attr
    - pcmk__insert_dup
    - pcmk__strkey_table
    - g_hash_table_destroy
    - assert_int_equal
    - cib_new
    - pcmk__xml_free
    - crm_element_value
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void granted_to_not_granted_with_force(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:57,1
    - Dst: pcmk_ticket_constraints
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: invalid_argument
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c
    functionUses: []
    functionsReached:
    - pcmk_ticket_constraints
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void invalid_argument(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_test_copy_cib
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: setup_test
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c
    functionUses: []
    functionsReached:
    - pcmk__cib_test_copy_cib
    linkageType: ''
    returnType: int
    signature: 'static int setup_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:76,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:77,1
    - Dst: pcmk_ticket_constraints
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:76,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:87,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:82,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:87,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:88,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:89,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 90
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 90
    functionName: ticket_exists
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - pcmk_ticket_constraints
    - assert_int_equal
    - xmlXPathFreeObject
    - pcmk__xml_free
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    linkageType: ''
    returnType: void
    signature: 'static void ticket_exists(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:29,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:31,1
    - Dst: pcmk_ticket_constraints
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:29,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:30,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 32
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 32
    functionName: cib_not_connected
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - pcmk_ticket_constraints
    - assert_int_equal
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void cib_not_connected(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:65,1
    - Dst: pcmk_ticket_constraints
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:65,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:67,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: unknown_ticket
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - pcmk_ticket_constraints
    - assert_int_equal
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void unknown_ticket(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_test_cleanup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: teardown_test
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c
    functionUses: []
    functionsReached:
    - pcmk__cib_test_cleanup
    linkageType: ''
    returnType: int
    signature: 'static int teardown_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:99,1
    - Dst: pcmk_ticket_constraints
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:99,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:105,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:100,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:109,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:109,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:111,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:112,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:113,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:113,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:117,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:117,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:115,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:120,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:119,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c:116,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 121
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 121
    functionName: multiple_tickets
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_constraints_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__assert_validates
    - crm_element_value
    - pcmk__xpath_result
    - assert_non_null
    - pcmk_ticket_constraints
    - assert_int_equal
    - xmlXPathFreeObject
    - pcmk__xml_free
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    linkageType: ''
    returnType: void
    signature: 'static void multiple_tickets(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_test_copy_cib
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: setup_test
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c
    functionUses: []
    functionsReached:
    - pcmk__cib_test_copy_cib
    linkageType: ''
    returnType: int
    signature: 'static int setup_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:57,1
    - Dst: pcmk_ticket_remove_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:59,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:60,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:59,1
    - Dst: pcmk_ticket_remove_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:57,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: bad_arguments
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - pcmk_ticket_remove_attr
    - pcmk__xml_free
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void bad_arguments(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:116,1
    - Dst: pcmk_ticket_remove_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:119,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:120,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:119,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:116,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:121,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:123,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:128,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:128,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:129,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:132,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:129,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:133,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:131,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 134
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 134
    functionName: remove_missing_attrs
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__assert_validates
    - cib__clean_up_connection
    - g_list_append
    - assert_null
    - g_list_free_full
    - assert_int_equal
    - cib_new
    - pcmk__xml_free
    - crm_element_value
    - strdup
    - pcmk_ticket_remove_attr
    linkageType: ''
    returnType: void
    signature: 'static void remove_missing_attrs(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:170,1
    - Dst: pcmk_ticket_remove_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:172,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:172,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:173,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:170,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:174,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:176,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:181,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:181,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:184,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:185,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:183,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 186
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 186
    functionName: remove_granted_without_force
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__assert_validates
    - cib__clean_up_connection
    - g_list_append
    - g_list_free_full
    - assert_int_equal
    - cib_new
    - pcmk__xml_free
    - crm_element_value
    - strdup
    - pcmk_ticket_remove_attr
    linkageType: ''
    returnType: void
    signature: 'static void remove_granted_without_force(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:27,1
    - Dst: pcmk_ticket_remove_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:27,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:28,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 30
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 30
    functionName: cib_not_connected
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - pcmk_ticket_remove_attr
    - pcmk__xml_free
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void cib_not_connected(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_ticket_remove_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:96,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:96,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:93,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:98,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:105,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:70,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:75,1
    - Dst: pcmk_ticket_remove_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:75,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:77,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:82,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:97,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:104,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:76,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:85,1
    - Dst: pcmk_ticket_remove_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:85,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:87,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:92,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:102,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:92,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 106
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 106
    functionName: no_attrs
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__assert_validates
    - cib__clean_up_connection
    - g_list_free
    - assert_null
    - assert_int_equal
    - cib_new
    - pcmk__xml_free
    - crm_element_value
    - pcmk_ticket_remove_attr
    linkageType: ''
    returnType: void
    signature: 'static void no_attrs(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_test_cleanup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: teardown_test
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c
    functionUses: []
    functionsReached:
    - pcmk__cib_test_cleanup
    linkageType: ''
    returnType: int
    signature: 'static int teardown_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:144,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:146,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:144,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:147,1
    - Dst: pcmk_ticket_remove_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:146,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:148,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:150,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:155,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:157,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:155,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:158,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:159,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 160
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 160
    functionName: remove_existing_attr
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - pcmk__assert_validates
    - g_list_append
    - assert_null
    - g_list_free_full
    - assert_int_equal
    - cib_new
    - pcmk__xml_free
    - crm_element_value
    - strdup
    - pcmk_ticket_remove_attr
    linkageType: ''
    returnType: void
    signature: 'static void remove_existing_attr(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:196,1
    - Dst: pcmk_ticket_remove_attr
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:198,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:199,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:198,1
    - Dst: strdup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:196,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:200,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:202,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:207,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:209,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:210,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:211,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c:207,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 212
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 212
    functionName: remove_granted_with_force
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_remove_attr_test.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - pcmk__assert_validates
    - g_list_append
    - assert_null
    - g_list_free_full
    - assert_int_equal
    - cib_new
    - pcmk__xml_free
    - crm_element_value
    - strdup
    - pcmk_ticket_remove_attr
    linkageType: ''
    returnType: void
    signature: 'static void remove_granted_with_force(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:29,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:31,1
    - Dst: pcmk_ticket_state
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:29,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:30,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 32
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 32
    functionName: cib_not_connected
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - pcmk__xml_free
    - pcmk_ticket_state
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void cib_not_connected(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:65,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:67,1
    - Dst: pcmk_ticket_state
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:65,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: unknown_ticket
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - pcmk__xml_free
    - pcmk_ticket_state
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void unknown_ticket(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_test_cleanup
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: teardown_test
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c
    functionUses: []
    functionsReached:
    - pcmk__cib_test_cleanup
    linkageType: ''
    returnType: int
    signature: 'static int teardown_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:111,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:113,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:121,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:117,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:127,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:100,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:109,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:109,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:119,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:115,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:123,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:105,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:125,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:128,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:99,1
    - Dst: pcmk_ticket_state
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:99,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:112,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:113,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:116,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:120,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:117,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:121,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:124,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:125,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 129
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 129
    functionName: multiple_tickets
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__assert_validates
    - crm_element_value
    - pcmk__xpath_result
    - assert_non_null
    - assert_int_equal
    - xmlXPathFreeObject
    - pcmk__xml_free
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    - pcmk_ticket_state
    linkageType: ''
    returnType: void
    signature: 'static void multiple_tickets(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_test_copy_cib
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: setup_test
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c
    functionUses: []
    functionsReached:
    - pcmk__cib_test_copy_cib
    linkageType: ''
    returnType: int
    signature: 'static int setup_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:57,1
    - Dst: pcmk_ticket_state
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: bad_arguments
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c
    functionUses: []
    functionsReached:
    - pcmk_ticket_state
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void bad_arguments(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:76,1
    - Dst: pcmk_ticket_state
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:76,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:82,1
    - Dst: pcmk__assert_validates
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:77,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:87,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:87,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:88,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:89,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 90
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 90
    functionName: ticket_exists
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_validates
    - assert_int_equal
    - xmlXPathFreeObject
    - pcmk__xml_free
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    - pcmk_ticket_state
    linkageType: ''
    returnType: void
    signature: 'static void ticket_exists(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:137,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:147,1
    - Dst: pcmk_ticket_state
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:137,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:147,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:142,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:148,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 150
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 150
    functionName: duplicate_tickets
    functionSourceFile: /src/pacemaker/lib/pacemaker/tests/pcmk_ticket/pcmk_ticket_state_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - xmlXPathFreeObject
    - pcmk__xml_free
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    - pcmk_ticket_state
    linkageType: ''
    returnType: void
    signature: 'static void duplicate_tickets(void **state) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 1
    argNames:
    - role
    argTypes:
    - enum rsc_role_e
    constantsTouched: []
    func_position:
      end: 40
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 40
    functionName: pcmk_role_text
    functionSourceFile: /src/pacemaker/lib/common/roles.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk_role_text(enum rsc_role_e role) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/roles.c:52,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/roles.c:57,1
    - Dst: pcmk__warn_once
      Src: /src/pacemaker/lib/common/roles.c:60,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/roles.c:59,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/roles.c:55,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/roles.c:66,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/roles.c:68,1
    - Dst: pcmk__warn_once
      Src: /src/pacemaker/lib/common/roles.c:69,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/roles.c:75,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - role
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 79
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 79
    functionName: pcmk_parse_role
    functionSourceFile: /src/pacemaker/lib/common/roles.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - pcmk__warn_once
    linkageType: ''
    returnType: enum rsc_role_e
    signature: 'enum rsc_role_e pcmk_parse_role(const char *role) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __gcov_dump
      Src: /src/pacemaker/lib/common/mock.c:72,1
    - Dst: __real_abort
      Src: /src/pacemaker/lib/common/mock.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: __wrap_abort
    functionSourceFile: /src/pacemaker/lib/common/mock.c
    functionUses: []
    functionsReached:
    - __real_abort
    - __gcov_dump
    linkageType: ''
    returnType: void
    signature: '_Noreturn void __wrap_abort(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __real_setgrent
      Src: /src/pacemaker/lib/common/mock.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 276
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 276
    functionName: __wrap_setgrent
    functionSourceFile: /src/pacemaker/lib/common/mock.c
    functionUses: []
    functionsReached:
    - __real_setgrent
    linkageType: ''
    returnType: void
    signature: 'void __wrap_setgrent(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __real_getgrent
      Src: /src/pacemaker/lib/common/mock.c:290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 292
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 292
    functionName: __wrap_getgrent
    functionSourceFile: /src/pacemaker/lib/common/mock.c
    functionUses: []
    functionsReached:
    - __real_getgrent
    linkageType: ''
    returnType: struct group*
    signature: 'struct group *__wrap_getgrent(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_expected_ptr
      Src: /src/pacemaker/lib/common/mock.c:342,1
    - Dst: mock_type
      Src: /src/pacemaker/lib/common/mock.c:344,1
    - Dst: check_expected_ptr
      Src: /src/pacemaker/lib/common/mock.c:343,1
    - Dst: __real_fopen64
      Src: /src/pacemaker/lib/common/mock.c:353,1
    - Dst: __real_fopen64
      Src: /src/pacemaker/lib/common/mock.c:349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - pathname
    - mode
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 355
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 355
    functionName: __wrap_fopen64
    functionSourceFile: /src/pacemaker/lib/common/mock.c
    functionUses: []
    functionsReached:
    - check_expected_ptr
    - __real_fopen64
    - mock_type
    linkageType: ''
    returnType: FILE*
    signature: 'FILE *__wrap_fopen64(const char *pathname, const char *mode) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __real_setenv
      Src: /src/pacemaker/lib/common/mock.c:171,1
    - Dst: check_expected
      Src: /src/pacemaker/lib/common/mock.c:175,1
    - Dst: mock_type
      Src: /src/pacemaker/lib/common/mock.c:176,1
    - Dst: check_expected_ptr
      Src: /src/pacemaker/lib/common/mock.c:173,1
    - Dst: check_expected_ptr
      Src: /src/pacemaker/lib/common/mock.c:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - name
    - value
    - overwrite
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 178
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 178
    functionName: __wrap_setenv
    functionSourceFile: /src/pacemaker/lib/common/mock.c
    functionUses: []
    functionsReached:
    - check_expected
    - __real_setenv
    - check_expected_ptr
    - mock_type
    linkageType: ''
    returnType: int
    signature: 'int __wrap_setenv(const char *name, const char *value, int overwrite) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __real_getenv
      Src: /src/pacemaker/lib/common/mock.c:119,1
    - Dst: mock_ptr_type
      Src: /src/pacemaker/lib/common/mock.c:122,1
    - Dst: check_expected_ptr
      Src: /src/pacemaker/lib/common/mock.c:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: __wrap_getenv
    functionSourceFile: /src/pacemaker/lib/common/mock.c
    functionUses: []
    functionsReached:
    - check_expected_ptr
    - mock_ptr_type
    - __real_getenv
    linkageType: ''
    returnType: char*
    signature: 'char *__wrap_getenv(const char *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __real_calloc
      Src: /src/pacemaker/lib/common/mock.c:94,1
    - Dst: check_expected
      Src: /src/pacemaker/lib/common/mock.c:96,1
    - Dst: check_expected
      Src: /src/pacemaker/lib/common/mock.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: __wrap_calloc
    functionSourceFile: /src/pacemaker/lib/common/mock.c
    functionUses: []
    functionsReached:
    - check_expected
    - __real_calloc
    linkageType: ''
    returnType: void*
    signature: 'void *__wrap_calloc(size_t nmemb, size_t size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __real_realloc
      Src: /src/pacemaker/lib/common/mock.c:143,1
    - Dst: check_expected
      Src: /src/pacemaker/lib/common/mock.c:146,1
    - Dst: check_expected_ptr
      Src: /src/pacemaker/lib/common/mock.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: __wrap_realloc
    functionSourceFile: /src/pacemaker/lib/common/mock.c
    functionUses: []
    functionsReached:
    - check_expected
    - check_expected_ptr
    - __real_realloc
    linkageType: ''
    returnType: void*
    signature: 'void *__wrap_realloc(void *ptr, size_t size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __real_unsetenv
      Src: /src/pacemaker/lib/common/mock.c:199,1
    - Dst: check_expected_ptr
      Src: /src/pacemaker/lib/common/mock.c:201,1
    - Dst: mock_type
      Src: /src/pacemaker/lib/common/mock.c:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 204
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 204
    functionName: __wrap_unsetenv
    functionSourceFile: /src/pacemaker/lib/common/mock.c
    functionUses: []
    functionsReached:
    - check_expected_ptr
    - __real_unsetenv
    - mock_type
    linkageType: ''
    returnType: int
    signature: 'int __wrap_unsetenv(const char *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mock_type
      Src: /src/pacemaker/lib/common/mock.c:220,1
    - Dst: __real_getpid
      Src: /src/pacemaker/lib/common/mock.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: __wrap_getpid
    functionSourceFile: /src/pacemaker/lib/common/mock.c
    functionUses: []
    functionsReached:
    - mock_type
    - __real_getpid
    linkageType: ''
    returnType: pid_t
    signature: 'pid_t __wrap_getpid(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __real_endgrent
      Src: /src/pacemaker/lib/common/mock.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 299
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 299
    functionName: __wrap_endgrent
    functionSourceFile: /src/pacemaker/lib/common/mock.c
    functionUses: []
    functionsReached:
    - __real_endgrent
    linkageType: ''
    returnType: void
    signature: 'void __wrap_endgrent(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_expected_ptr
      Src: /src/pacemaker/lib/common/mock.c:322,1
    - Dst: __real_fopen
      Src: /src/pacemaker/lib/common/mock.c:333,1
    - Dst: mock_type
      Src: /src/pacemaker/lib/common/mock.c:324,1
    - Dst: __real_fopen
      Src: /src/pacemaker/lib/common/mock.c:329,1
    - Dst: check_expected_ptr
      Src: /src/pacemaker/lib/common/mock.c:323,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - pathname
    - mode
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 335
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 335
    functionName: __wrap_fopen
    functionSourceFile: /src/pacemaker/lib/common/mock.c
    functionUses: []
    functionsReached:
    - __real_fopen
    - check_expected_ptr
    - mock_type
    linkageType: ''
    returnType: FILE*
    signature: 'FILE *__wrap_fopen(const char *pathname, const char *mode) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mock_type
      Src: /src/pacemaker/lib/common/mock.c:381,1
    - Dst: check_expected_ptr
      Src: /src/pacemaker/lib/common/mock.c:383,1
    - Dst: check_expected_ptr
      Src: /src/pacemaker/lib/common/mock.c:384,1
    - Dst: check_expected
      Src: /src/pacemaker/lib/common/mock.c:386,1
    - Dst: check_expected_ptr
      Src: /src/pacemaker/lib/common/mock.c:385,1
    - Dst: check_expected_ptr
      Src: /src/pacemaker/lib/common/mock.c:387,1
    - Dst: mock_ptr_type
      Src: /src/pacemaker/lib/common/mock.c:388,1
    - Dst: __real_getpwnam_r
      Src: /src/pacemaker/lib/common/mock.c:392,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 5
    argNames:
    - name
    - pwd
    - buf
    - buflen
    - result
    argTypes:
    - char*
    - struct passwd*
    - char*
    - size_t
    - struct passwd**
    constantsTouched: []
    func_position:
      end: 394
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 394
    functionName: __wrap_getpwnam_r
    functionSourceFile: /src/pacemaker/lib/common/mock.c
    functionUses: []
    functionsReached:
    - mock_type
    - check_expected_ptr
    - mock_ptr_type
    - check_expected
    - __real_getpwnam_r
    linkageType: ''
    returnType: int
    signature: 'int __wrap_getpwnam_r(const char *name, struct passwd *pwd, char *buf,
      size_t buflen, struct passwd **result) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_expected_ptr
      Src: /src/pacemaker/lib/common/mock.c:420,1
    - Dst: mock_ptr_type
      Src: /src/pacemaker/lib/common/mock.c:424,1
    - Dst: check_expected
      Src: /src/pacemaker/lib/common/mock.c:421,1
    - Dst: mock_type
      Src: /src/pacemaker/lib/common/mock.c:423,1
    - Dst: check_expected
      Src: /src/pacemaker/lib/common/mock.c:422,1
    - Dst: strncpy
      Src: /src/pacemaker/lib/common/mock.c:427,1
    - Dst: strlen
      Src: /src/pacemaker/lib/common/mock.c:428,1
    - Dst: __real_readlink
      Src: /src/pacemaker/lib/common/mock.c:433,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - path
    - buf
    - bufsize
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 435
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 435
    functionName: __wrap_readlink
    functionSourceFile: /src/pacemaker/lib/common/mock.c
    functionUses: []
    functionsReached:
    - mock_type
    - __real_readlink
    - check_expected_ptr
    - mock_ptr_type
    - strncpy
    - check_expected
    - strlen
    linkageType: ''
    returnType: ssize_t
    signature: 'ssize_t __wrap_readlink(const char *restrict path, char *restrict
      buf, size_t bufsize) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __real_strdup
      Src: /src/pacemaker/lib/common/mock.c:454,1
    - Dst: check_expected_ptr
      Src: /src/pacemaker/lib/common/mock.c:456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 458
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 458
    functionName: __wrap_strdup
    functionSourceFile: /src/pacemaker/lib/common/mock.c
    functionUses: []
    functionsReached:
    - __real_strdup
    - check_expected_ptr
    linkageType: ''
    returnType: char*
    signature: 'char *__wrap_strdup(const char *s) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml.c:284,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/xml.c:296,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/xml.c:308,1
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/xml.c:313,1
    - Dst: pcmk__xml_doc_all_flags_set
      Src: /src/pacemaker/lib/common/xml.c:290,1
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/xml.c:316,1
    - Dst: new_private_data
      Src: /src/pacemaker/lib/common/xml.c:319,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/common/xml.c:330,1
    - Dst: pcmk__mark_xml_node_dirty
      Src: /src/pacemaker/lib/common/xml.c:335,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 28
    argCount: 2
    argNames:
    - node
    - user_data
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 338
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 338
    functionName: new_private_data
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_attr
    - CRM_CHECK
    - pcmk__xml_doc_all_flags_set
    - pcmk__set_xml_flags
    - CRM_LOG_ASSERT
    - pcmk__assert_alloc
    - new_private_data
    - pcmk__mark_xml_node_dirty
    linkageType: ''
    returnType: bool
    signature: 'static bool new_private_data(xmlNode *node, void *user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/xml.c:1356,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/xml.c:1356,1
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/xml.c:1364,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml.c:1360,1
    - Dst: pcmk__mark_xml_node_dirty
      Src: /src/pacemaker/lib/common/xml.c:1363,1
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/xml.c:1374,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - old_child
    - new_child
    - old_pos
    - new_pos
    argTypes:
    - xmlNode*
    - xmlNode*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1375
      start: 1352
    functionDepth: 0
    functionLinenumber: 1352
    functionLinenumberEnd: 1375
    functionName: mark_child_moved
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - pcmk__set_xml_flags
    - pcmk__mark_xml_node_dirty
    - pcmk__xe_id
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void mark_child_moved(xmlNode *old_child, xmlNode *new_child,
      int old_pos, int new_pos) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__schema_init
      Src: /src/pacemaker/lib/common/xml.c:1734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1735
      start: 1731
    functionDepth: 0
    functionLinenumber: 1731
    functionLinenumberEnd: 1735
    functionName: crm_xml_init
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__schema_init
    linkageType: ''
    returnType: void
    signature: 'void crm_xml_init(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_commit_changes
      Src: /src/pacemaker/lib/common/xml.c:1800,1
    - Dst: pcmk__xml_doc_set_flags
      Src: /src/pacemaker/lib/common/xml.c:1803,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml.c:1801,1
    - Dst: pcmk__xml_doc_set_flags
      Src: /src/pacemaker/lib/common/xml.c:1808,1
    - Dst: pcmk__unpack_acl
      Src: /src/pacemaker/lib/common/xml.c:1809,1
    - Dst: pcmk__apply_acl
      Src: /src/pacemaker/lib/common/xml.c:1810,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - xml
    - user
    - acl_source
    - enforce_acls
    argTypes:
    - xmlNode*
    - char*
    - xmlNode*
    - bool
    constantsTouched: []
    func_position:
      end: 1812
      start: 1792
    functionDepth: 0
    functionLinenumber: 1792
    functionLinenumberEnd: 1812
    functionName: xml_track_changes
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xml_commit_changes
    - pcmk__unpack_acl
    - pcmk__xml_doc_set_flags
    - pcmk__apply_acl
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void xml_track_changes(xmlNode *xml, const char *user, xmlNode *acl_source,
      bool enforce_acls) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__schema_cleanup
      Src: /src/pacemaker/lib/common/xml.c:1740,1
    - Dst: xmlCleanupParser
      Src: /src/pacemaker/lib/common/xml.c:1741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1742
      start: 1737
    functionDepth: 0
    functionLinenumber: 1737
    functionLinenumberEnd: 1742
    functionName: crm_xml_cleanup
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__schema_cleanup
    - xmlCleanupParser
    linkageType: ''
    returnType: void
    signature: 'void crm_xml_cleanup(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml.c:1817,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/xml.c:1819,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/xml.c:1818,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/xml.c:1819,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/xml.c:1819,1
    - Dst: pcmk__xml_doc_all_flags_set
      Src: /src/pacemaker/lib/common/xml.c:1823,1
    - Dst: pcmk__xml_commit_changes
      Src: /src/pacemaker/lib/common/xml.c:1825,1
    - Dst: pcmk__xml_mark_changes
      Src: /src/pacemaker/lib/common/xml.c:1828,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - old_xml
    - new_xml
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1829
      start: 1814
    functionDepth: 0
    functionLinenumber: 1814
    functionLinenumberEnd: 1829
    functionName: xml_calculate_changes
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__xml_doc_all_flags_set
    - pcmk__xml_commit_changes
    - pcmk__str_eq
    - pcmk__xe_is
    - pcmk__xml_mark_changes
    - pcmk__xe_id
    linkageType: ''
    returnType: void
    signature: 'void xml_calculate_changes(xmlNode *old_xml, xmlNode *new_xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/xml.c:1320,1
    - Dst: pcmk__xml_tree_foreach
      Src: /src/pacemaker/lib/common/xml.c:1326,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/common/xml.c:1323,1
    - Dst: xmlDocGetRootElement
      Src: /src/pacemaker/lib/common/xml.c:1329,1
    - Dst: pcmk__apply_acl
      Src: /src/pacemaker/lib/common/xml.c:1329,1
    - Dst: free_xml_with_position
      Src: /src/pacemaker/lib/common/xml.c:1334,1
    - Dst: pcmk__xml_free_node
      Src: /src/pacemaker/lib/common/xml.c:1336,1
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/xml.c:1339,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - old_child
    - new_parent
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1341
      start: 1317
    functionDepth: 0
    functionLinenumber: 1317
    functionLinenumberEnd: 1341
    functionName: mark_child_deleted
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - pcmk__xml_copy
    - pcmk__xml_free_node
    - pcmk__set_xml_flags
    - pcmk__xml_position
    - pcmk__xml_tree_foreach
    - free_xml_with_position
    - pcmk__apply_acl
    linkageType: ''
    returnType: void
    signature: 'static void mark_child_deleted(xmlNode *old_child, xmlNode *new_parent) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml.c:1546,1
    - Dst: xml_diff_attrs
      Src: /src/pacemaker/lib/common/xml.c:1552,1
    - Dst: pcmk__xml_doc_set_flags
      Src: /src/pacemaker/lib/common/xml.c:1551,1
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/xml.c:1557,1
    - Dst: find_matching_children
      Src: /src/pacemaker/lib/common/xml.c:1554,1
    - Dst: pcmk__xml_next
      Src: /src/pacemaker/lib/common/xml.c:1558,1
    - Dst: mark_child_deleted
      Src: /src/pacemaker/lib/common/xml.c:1569,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml.c:1579,1
    - Dst: pcmk__xml_mark_changes
      Src: /src/pacemaker/lib/common/xml.c:1586,1
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/xml.c:1593,1
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/xml.c:1614,1
    - Dst: pcmk__xml_next
      Src: /src/pacemaker/lib/common/xml.c:1596,1
    - Dst: mark_child_moved
      Src: /src/pacemaker/lib/common/xml.c:1618,1
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/xml.c:1625,1
    - Dst: pcmk__apply_creation_acl
      Src: /src/pacemaker/lib/common/xml.c:1629,1
    - Dst: mark_xml_tree_dirty_created
      Src: /src/pacemaker/lib/common/xml.c:1626,1
    - Dst: pcmk__xml_next
      Src: /src/pacemaker/lib/common/xml.c:1594,1
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/xml.c:1615,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 49
    argCount: 2
    argNames:
    - old_xml
    - new_xml
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1631
      start: 1535
    functionDepth: 0
    functionLinenumber: 1535
    functionLinenumberEnd: 1631
    functionName: pcmk__xml_mark_changes
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - CRM_CHECK
    - pcmk__set_xml_flags
    - mark_child_deleted
    - pcmk__xml_next
    - pcmk__xml_position
    - mark_xml_tree_dirty_created
    - pcmk__apply_creation_acl
    - pcmk__xml_doc_set_flags
    - find_matching_children
    - xml_diff_attrs
    - pcmk__xml_first_child
    - mark_child_moved
    - pcmk__xml_mark_changes
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xml_mark_changes(xmlNode *old_xml, xmlNode *new_xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_artefact_root
      Src: /src/pacemaker/lib/common/xml.c:1694,1
    - Dst: stat
      Src: /src/pacemaker/lib/common/xml.c:1700,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xml.c:1698,1
    - Dst: S_ISREG
      Src: /src/pacemaker/lib/common/xml.c:1700,1
    - Dst: find_artefact
      Src: /src/pacemaker/lib/common/xml.c:1697,1
    - Dst: pcmk__remote_schema_dir
      Src: /src/pacemaker/lib/common/xml.c:1701,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xml.c:1703,1
    - Dst: find_artefact
      Src: /src/pacemaker/lib/common/xml.c:1704,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - ns
    - filespec
    argTypes:
    - enum pcmk__xml_artefact_ns
    - char*
    constantsTouched: []
    func_position:
      end: 1708
      start: 1690
    functionDepth: 0
    functionLinenumber: 1690
    functionLinenumberEnd: 1708
    functionName: pcmk__xml_artefact_path
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - stat
    - find_artefact
    - free
    - pcmk__remote_schema_dir
    - pcmk__xml_artefact_root
    - S_ISREG
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__xml_artefact_path(enum pcmk__xml_artefact_ns ns, const
      char *filespec) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/pacemaker/lib/common/xml.c:93,1
    - Dst: pcmk__xml_next
      Src: /src/pacemaker/lib/common/xml.c:98,1
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/xml.c:97,1
    - Dst: pcmk__xml_tree_foreach
      Src: /src/pacemaker/lib/common/xml.c:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 3
    argNames:
    - xml
    - (*fn)
    - user_data
    argTypes:
    - xmlNode*
    - bool
    - void*
    constantsTouched: []
    func_position:
      end: 105
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 105
    functionName: pcmk__xml_tree_foreach
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xml_first_child
    - pcmk__xml_next
    - fn
    - pcmk__xml_tree_foreach
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__xml_tree_foreach(xmlNode *xml, bool (*fn)(xmlNode *, void
      *), void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDoc
      Src: /src/pacemaker/lib/common/xml.c:500,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/lib/common/xml.c:502,1
    - Dst: pcmk__xml_new_private_data
      Src: /src/pacemaker/lib/common/xml.c:503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 505
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 505
    functionName: pcmk__xml_new_doc
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - xmlNewDoc
    - pcmk__xml_new_private_data
    - pcmk__mem_assert
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *pcmk__xml_new_doc(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetUTF8Char
      Src: /src/pacemaker/lib/common/xml.c:623,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/common/xml.c:625,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/lib/common/xml.c:628,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/xml.c:630,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/xml.c:631,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/xml.c:632,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 95
    argCount: 2
    argNames:
    - utf8
    - len
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 658
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 658
    functionName: pcmk__xml_is_name_char
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__str_empty
    - g_string_append_printf
    - g_string_sized_new
    - g_string_free
    - crm_info
    - xmlGetUTF8Char
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__xml_is_name_char(const char *utf8, int *len) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocGetRootElement
      Src: /src/pacemaker/lib/common/xml.c:747,1
    - Dst: pcmk__check_acl
      Src: /src/pacemaker/lib/common/xml.c:755,1
    - Dst: pcmk__if_tracing
      Src: /src/pacemaker/lib/common/xml.c:756,1
    - Dst: pcmk__element_xpath
      Src: /src/pacemaker/lib/common/xml.c:758,1
    - Dst: pcmk__xml_free_doc
      Src: /src/pacemaker/lib/common/xml.c:751,1
    - Dst: qb_log_from_external_source
      Src: /src/pacemaker/lib/common/xml.c:760,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/xml.c:764,1
    - Dst: pcmk__xml_doc_all_flags_set
      Src: /src/pacemaker/lib/common/xml.c:771,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml.c:772,1
    - Dst: pcmk__element_xpath
      Src: /src/pacemaker/lib/common/xml.c:775,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml.c:780,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/xml.c:782,1
    - Dst: pcmk__xml_free_node
      Src: /src/pacemaker/lib/common/xml.c:802,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/xml.c:797,1
    - Dst: pcmk__xml_doc_set_flags
      Src: /src/pacemaker/lib/common/xml.c:799,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/xml.c:783,1
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/xml.c:792,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 2
    argNames:
    - node
    - position
    argTypes:
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 804
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 804
    functionName: free_xml_with_position
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - pcmk__element_xpath
    - g_list_append
    - pcmk__xml_doc_all_flags_set
    - pcmk__xml_free_doc
    - pcmk__xml_free_node
    - pcmk__xml_position
    - pcmk__assert_alloc
    - pcmk__if_tracing
    - pcmk__xml_doc_set_flags
    - pcmk__check_acl
    - qb_log_from_external_source
    - pcmk_is_set
    - g_string_free
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int free_xml_with_position(xmlNode *node, int position) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: g_ascii_iscntrl
      Src: /src/pacemaker/lib/common/xml.c:926,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml.c:961,1
    - Dst: g_ascii_iscntrl
      Src: /src/pacemaker/lib/common/xml.c:941,1
    - Dst: g_utf8_next_char
      Src: /src/pacemaker/lib/common/xml.c:965,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 16
    argCount: 2
    argNames:
    - text
    - type
    argTypes:
    - char*
    - enum pcmk__xml_escape_type
    constantsTouched: []
    func_position:
      end: 968
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 968
    functionName: pcmk__xml_needs_escape
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_ascii_iscntrl
    - g_utf8_next_char
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__xml_needs_escape(const char *text, enum pcmk__xml_escape_type
      type) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/xml.c:114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - xml
    - flags
    argTypes:
    - xmlNode*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: pcmk__xml_set_parent_flags
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__set_xml_flags
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xml_set_parent_flags(xmlNode *xml, uint64_t flags) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml.c:354,1
    - Dst: reset_xml_private_data
      Src: /src/pacemaker/lib/common/xml.c:361,1
    - Dst: free_private_data
      Src: /src/pacemaker/lib/common/xml.c:371,1
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/xml.c:368,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml.c:366,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xml.c:374,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - node
    - user_data
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 377
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 377
    functionName: free_private_data
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_attr
    - free_private_data
    - CRM_CHECK
    - reset_xml_private_data
    - free
    - pcmk__assert
    linkageType: ''
    returnType: bool
    signature: 'static bool free_private_data(xmlNode *node, void *user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml.c:480,1
    - Dst: xmlDocGetRootElement
      Src: /src/pacemaker/lib/common/xml.c:481,1
    - Dst: reset_xml_private_data
      Src: /src/pacemaker/lib/common/xml.c:484,1
    - Dst: pcmk__xml_tree_foreach
      Src: /src/pacemaker/lib/common/xml.c:481,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 486
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 486
    functionName: pcmk__xml_commit_changes
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xml_tree_foreach
    - pcmk_is_set
    - reset_xml_private_data
    - xmlDocGetRootElement
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xml_commit_changes(xmlDoc *doc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_free_private_data
      Src: /src/pacemaker/lib/common/xml.c:717,1
    - Dst: xmlFreeNode
      Src: /src/pacemaker/lib/common/xml.c:719,1
    - Dst: xmlUnlinkNode
      Src: /src/pacemaker/lib/common/xml.c:718,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 720
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 720
    functionName: pcmk__xml_free_node
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - xmlUnlinkNode
    - pcmk__xml_free_private_data
    - xmlFreeNode
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xml_free_node(xmlNode *xml) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_free_node
      Src: /src/pacemaker/lib/common/xml.c:878,1
    - Dst: pcmk__strip_xml_text
      Src: /src/pacemaker/lib/common/xml.c:883,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 6
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 893
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 893
    functionName: pcmk__strip_xml_text
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__strip_xml_text
    - pcmk__xml_free_node
    linkageType: ''
    returnType: void
    signature: 'void pcmk__strip_xml_text(xmlNode *xml) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml.c:1398,1
    - Dst: pcmk__xc_matches
      Src: /src/pacemaker/lib/common/xml.c:1408,1
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/xml.c:1404,1
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/xml.c:1405,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - old_comment
    - new_comment
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1409
      start: 1393
    functionDepth: 0
    functionLinenumber: 1393
    functionLinenumberEnd: 1409
    functionName: new_comment_matches
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xml_position
    - pcmk_is_set
    - pcmk__xc_matches
    linkageType: ''
    returnType: bool
    signature: 'static bool new_comment_matches(const xmlNode *old_comment, const
      xmlNode *new_comment) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/xml.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - doc
    - flags
    argTypes:
    - xmlDoc*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: pcmk__xml_doc_set_flags
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__set_xml_flags
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xml_doc_set_flags(xmlDoc *doc, uint32_t flags) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - xml
    - user_data
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 187
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 187
    functionName: pcmk__xml_reset_node_flags
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__xml_reset_node_flags(xmlNode *xml, void *user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/xml.c:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - xml
    - user_data
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 209
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 209
    functionName: mark_xml_dirty_created
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__set_xml_flags
    linkageType: ''
    returnType: bool
    signature: 'static bool mark_xml_dirty_created(xmlNode *xml, void *user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/pacemaker/lib/common/xml.c:242,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xml.c:243,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 245
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 245
    functionName: free_deleted_object
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - free
    - g_free
    linkageType: ''
    returnType: void
    signature: 'static void free_deleted_object(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_tree_foreach
      Src: /src/pacemaker/lib/common/xml.c:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 389
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 389
    functionName: pcmk__xml_new_private_data
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xml_tree_foreach
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xml_new_private_data(xmlNode *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml.c:420,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - xml
    - ignore_if_set
    argTypes:
    - xmlNode*
    - enum pcmk__xml_flags
    constantsTouched: []
    func_position:
      end: 426
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 426
    functionName: pcmk__xml_position
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xml_position(const xmlNode *xml, enum pcmk__xml_flags ignore_if_set) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml.c:843,1
    - Dst: xmlDocSetRootElement
      Src: /src/pacemaker/lib/common/xml.c:849,1
    - Dst: xmlDocCopyNode
      Src: /src/pacemaker/lib/common/xml.c:846,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/lib/common/xml.c:847,1
    - Dst: pcmk__xml_new_doc
      Src: /src/pacemaker/lib/common/xml.c:845,1
    - Dst: xmlDocCopyNode
      Src: /src/pacemaker/lib/common/xml.c:852,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/lib/common/xml.c:853,1
    - Dst: xmlAddChild
      Src: /src/pacemaker/lib/common/xml.c:855,1
    - Dst: pcmk__xml_new_private_data
      Src: /src/pacemaker/lib/common/xml.c:858,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - parent
    - src
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 860
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 860
    functionName: pcmk__xml_copy
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - xmlDocSetRootElement
    - xmlAddChild
    - pcmk__mem_assert
    - pcmk__xml_new_private_data
    - pcmk__xml_new_doc
    - pcmk__assert
    - xmlDocCopyNode
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__xml_copy(xmlNode *parent, xmlNode *src) '
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/xml.c:1016,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/xml.c:1019,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/xml.c:1065,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/xml.c:1071,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml.c:1080,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/xml.c:1086,1
    - Dst: g_utf8_next_char
      Src: /src/pacemaker/lib/common/xml.c:1002,1
    - Dst: strlen
      Src: /src/pacemaker/lib/common/xml.c:997,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/xml.c:1023,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/xml.c:1038,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/xml.c:1062,1
    - Dst: g_ascii_iscntrl
      Src: /src/pacemaker/lib/common/xml.c:1050,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/lib/common/xml.c:1051,1
    - Dst: g_utf8_next_char
      Src: /src/pacemaker/lib/common/xml.c:1084,1
    - Dst: g_string_append_len
      Src: /src/pacemaker/lib/common/xml.c:1004,1
    - Dst: g_ascii_iscntrl
      Src: /src/pacemaker/lib/common/xml.c:1026,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/lib/common/xml.c:1027,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/xml.c:1041,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/xml.c:1044,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/xml.c:1047,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/xml.c:1053,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/xml.c:1068,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/common/xml.c:997,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/xml.c:1013,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/xml.c:1029,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/xml.c:1074,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 46
    argCount: 2
    argNames:
    - text
    - type
    argTypes:
    - char*
    - enum pcmk__xml_escape_type
    constantsTouched: []
    func_position:
      end: 1087
      start: 989
    functionDepth: 0
    functionLinenumber: 989
    functionLinenumberEnd: 1087
    functionName: pcmk__xml_escape
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - g_string_append_c
    - g_string_append
    - g_string_append_printf
    - g_string_append_len
    - g_string_free
    - g_string_sized_new
    - pcmk__assert
    - strlen
    - g_ascii_iscntrl
    - g_utf8_next_char
    linkageType: ''
    returnType: gchar*
    signature: 'gchar *pcmk__xml_escape(const char *text, enum pcmk__xml_escape_type
      type) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/common/xml.c:1139,1
    - Dst: pcmk__clear_xml_flags
      Src: /src/pacemaker/lib/common/xml.c:1145,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml.c:1141,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/xml.c:1146,1
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/xml.c:1147,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/xml.c:1150,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xml.c:1151,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 4
    argNames:
    - new_xml
    - element
    - attr_name
    - old_value
    argTypes:
    - xmlNode*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1152
      start: 1134
    functionDepth: 0
    functionLinenumber: 1134
    functionLinenumberEnd: 1152
    functionName: mark_attr_changed
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__set_xml_flags
    - crm_xml_add
    - pcmk__clear_xml_flags
    - free
    - crm_element_value_copy
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void mark_attr_changed(xmlNode *new_xml, const char *element,
      const char *attr_name, const char *old_value) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/xml.c:1194,1
    - Dst: xmlHasProp
      Src: /src/pacemaker/lib/common/xml.c:1199,1
    - Dst: mark_attr_deleted
      Src: /src/pacemaker/lib/common/xml.c:1204,1
    - Dst: pcmk__xml_attr_value
      Src: /src/pacemaker/lib/common/xml.c:1200,1
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/xml.c:1209,1
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/xml.c:1211,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/xml.c:1213,1
    - Dst: pcmk__clear_xml_flags
      Src: /src/pacemaker/lib/common/xml.c:1216,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/xml.c:1218,1
    - Dst: mark_attr_changed
      Src: /src/pacemaker/lib/common/xml.c:1219,1
    - Dst: pcmk__xml_doc_all_flags_set
      Src: /src/pacemaker/lib/common/xml.c:1223,1
    - Dst: mark_attr_moved
      Src: /src/pacemaker/lib/common/xml.c:1230,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 2
    argNames:
    - old_xml
    - new_xml
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1235
      start: 1191
    functionDepth: 0
    functionLinenumber: 1191
    functionLinenumberEnd: 1235
    functionName: xml_diff_old_attrs
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_attr
    - pcmk__xml_doc_all_flags_set
    - mark_attr_changed
    - pcmk__xml_position
    - pcmk__clear_xml_flags
    - strcmp
    - mark_attr_moved
    - pcmk__xml_attr_value
    - mark_attr_deleted
    - crm_element_value
    - xmlHasProp
    linkageType: ''
    returnType: void
    signature: 'static void xml_diff_old_attrs(xmlNode *old_xml, xmlNode *new_xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_doc_all_flags_set
      Src: /src/pacemaker/lib/common/xml.c:1774,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1775
      start: 1770
    functionDepth: 0
    functionLinenumber: 1770
    functionLinenumberEnd: 1775
    functionName: xml_tracking_changes
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xml_doc_all_flags_set
    linkageType: ''
    returnType: bool
    signature: 'bool xml_tracking_changes(xmlNode *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_doc_set_flags
      Src: /src/pacemaker/lib/common/xml.c:163,1
    - Dst: pcmk__xml_set_parent_flags
      Src: /src/pacemaker/lib/common/xml.c:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 165
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 165
    functionName: pcmk__mark_xml_node_dirty
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xml_doc_set_flags
    - pcmk__xml_set_parent_flags
    linkageType: ''
    returnType: void
    signature: 'void pcmk__mark_xml_node_dirty(xmlNode *xml) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml.c:679,1
    - Dst: pcmk__xml_is_name_char
      Src: /src/pacemaker/lib/common/xml.c:698,1
    - Dst: pcmk__xml_is_name_start_char
      Src: /src/pacemaker/lib/common/xml.c:688,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml.c:689,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/xml.c:679,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml.c:699,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 706
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 706
    functionName: pcmk__xml_sanitize_id
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xml_is_name_start_char
    - CRM_CHECK
    - pcmk__str_empty
    - pcmk__assert
    - pcmk__xml_is_name_char
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xml_sanitize_id(char *id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_xml_with_position
      Src: /src/pacemaker/lib/common/xml.c:817,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 818
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 818
    functionName: pcmk__xml_free
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - free_xml_with_position
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xml_free(xmlNode *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - xmlElementType
    constantsTouched: []
    func_position:
      end: 70
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 70
    functionName: pcmk__xml_element_type_text
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__xml_element_type_text(xmlElementType type) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetUTF8Char
      Src: /src/pacemaker/lib/common/xml.c:562,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/xml.c:569,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/lib/common/xml.c:567,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/xml.c:570,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/common/xml.c:564,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/xml.c:571,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 77
    argCount: 2
    argNames:
    - utf8
    - len
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 591
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 591
    functionName: pcmk__xml_is_name_start_char
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__str_empty
    - g_string_append_printf
    - g_string_sized_new
    - g_string_free
    - crm_info
    - xmlGetUTF8Char
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__xml_is_name_start_char(const char *utf8, int *len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/xml.c:1287,1
    - Dst: xml_diff_old_attrs
      Src: /src/pacemaker/lib/common/xml.c:1294,1
    - Dst: mark_created_attrs
      Src: /src/pacemaker/lib/common/xml.c:1295,1
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/xml.c:1291,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - old_xml
    - new_xml
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1296
      start: 1283
    functionDepth: 0
    functionLinenumber: 1283
    functionLinenumberEnd: 1296
    functionName: xml_diff_attrs
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_attr
    - mark_created_attrs
    - xml_diff_old_attrs
    - pcmk__set_xml_flags
    linkageType: ''
    returnType: void
    signature: 'static void xml_diff_attrs(xmlNode *old_xml, xmlNode *new_xml) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/xml.c:1493,1
    - Dst: new_child_matches
      Src: /src/pacemaker/lib/common/xml.c:1515,1
    - Dst: pcmk__xml_next
      Src: /src/pacemaker/lib/common/xml.c:1504,1
    - Dst: pcmk__xml_next
      Src: /src/pacemaker/lib/common/xml.c:1494,1
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/xml.c:1503,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 2
    argNames:
    - old_xml
    - new_xml
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1522
      start: 1490
    functionDepth: 0
    functionLinenumber: 1490
    functionLinenumberEnd: 1522
    functionName: find_matching_children
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xml_first_child
    - new_child_matches
    - pcmk__xml_next
    linkageType: ''
    returnType: void
    signature: 'static void find_matching_children(xmlNode *old_xml, xmlNode *new_xml) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/xml.c:1640,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/xml.c:1642,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/xml.c:1656,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/xml.c:1649,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/xml.c:1653,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 1
    argNames:
    - ns
    argTypes:
    - enum pcmk__xml_artefact_ns
    constantsTouched: []
    func_position:
      end: 1659
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1659
    functionName: pcmk__xml_artefact_root
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pcmk__str_empty
    - pcmk__env_option
    - strdup
    - crm_err
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__xml_artefact_root(enum pcmk__xml_artefact_ns ns) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_free_node
      Src: /src/pacemaker/lib/common/xml.c:1747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1748
      start: 1744
    functionDepth: 0
    functionLinenumber: 1744
    functionLinenumberEnd: 1748
    functionName: pcmk_free_xml_subtree
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free_node
    linkageType: ''
    returnType: void
    signature: 'void pcmk_free_xml_subtree(xmlNode *xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_doc_all_flags_set
      Src: /src/pacemaker/lib/common/xml.c:1781,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1782
      start: 1777
    functionDepth: 0
    functionLinenumber: 1777
    functionLinenumberEnd: 1782
    functionName: xml_document_dirty
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xml_doc_all_flags_set
    linkageType: ''
    returnType: bool
    signature: 'bool xml_document_dirty(xmlNode *xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/xml.c:1438,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/xml.c:1439,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/xml.c:1439,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/xml.c:1439,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - old_element
    - new_element
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1441
      start: 1435
    functionDepth: 0
    functionLinenumber: 1435
    functionLinenumberEnd: 1441
    functionName: new_element_matches
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xe_is
    - pcmk__str_eq
    - pcmk__xe_id
    linkageType: ''
    returnType: bool
    signature: 'static bool new_element_matches(const xmlNode *old_element, const
      xmlNode *new_element) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/xml.c:1669,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/xml.c:1670,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/xml.c:1672,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/xml.c:1677,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/xml.c:1678,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/xml.c:1680,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/xml.c:1684,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 3
    argNames:
    - ns
    - path
    - filespec
    argTypes:
    - enum pcmk__xml_artefact_ns
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1688
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1688
    functionName: find_artefact
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - crm_err
    - pcmk__ends_with
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'static char *find_artefact(enum pcmk__xml_artefact_ns ns, const char
      *path, const char *filespec) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_new_doc
      Src: /src/pacemaker/lib/common/xml.c:1720,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/lib/common/xml.c:1724,1
    - Dst: xmlDocCopyNode
      Src: /src/pacemaker/lib/common/xml.c:1723,1
    - Dst: xmlDocSetRootElement
      Src: /src/pacemaker/lib/common/xml.c:1726,1
    - Dst: pcmk__xml_new_private_data
      Src: /src/pacemaker/lib/common/xml.c:1727,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - src
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1729
      start: 1717
    functionDepth: 0
    functionLinenumber: 1717
    functionLinenumberEnd: 1729
    functionName: copy_xml
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - xmlDocSetRootElement
    - pcmk__mem_assert
    - pcmk__xml_new_private_data
    - pcmk__xml_new_doc
    - xmlDocCopyNode
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *copy_xml(xmlNode *src) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/xml.c:1753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - child
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1754
      start: 1750
    functionDepth: 0
    functionLinenumber: 1750
    functionLinenumberEnd: 1754
    functionName: free_xml
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'void free_xml(xmlNode *child) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_commit_changes
      Src: /src/pacemaker/lib/common/xml.c:1788,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1790
      start: 1784
    functionDepth: 0
    functionLinenumber: 1784
    functionLinenumberEnd: 1790
    functionName: xml_accept_changes
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xml_commit_changes
    linkageType: ''
    returnType: void
    signature: 'void xml_accept_changes(xmlNode *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml.c:1834,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/xml.c:1835,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/xml.c:1836,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/xml.c:1836,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/xml.c:1836,1
    - Dst: pcmk__xml_doc_set_flags
      Src: /src/pacemaker/lib/common/xml.c:1846,1
    - Dst: pcmk__xml_doc_all_flags_set
      Src: /src/pacemaker/lib/common/xml.c:1848,1
    - Dst: pcmk__xml_commit_changes
      Src: /src/pacemaker/lib/common/xml.c:1850,1
    - Dst: pcmk__xml_mark_changes
      Src: /src/pacemaker/lib/common/xml.c:1853,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - old_xml
    - new_xml
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1854
      start: 1831
    functionDepth: 0
    functionLinenumber: 1831
    functionLinenumberEnd: 1854
    functionName: xml_calculate_significant_changes
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__xml_doc_all_flags_set
    - pcmk__xml_commit_changes
    - pcmk__str_eq
    - pcmk__xml_doc_set_flags
    - pcmk__xe_is
    - pcmk__xml_mark_changes
    - pcmk__xe_id
    linkageType: ''
    returnType: void
    signature: 'void xml_calculate_significant_changes(xmlNode *old_xml, xmlNode *new_xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/common/xml.c:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - doc
    - flags
    argTypes:
    - xmlDoc*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: pcmk__xml_doc_all_flags_set
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk_all_flags_set
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__xml_doc_all_flags_set(const xmlDoc *doc, uint32_t flags) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml.c:222,1
    - Dst: pcmk__xml_tree_foreach
      Src: /src/pacemaker/lib/common/xml.c:232,1
    - Dst: pcmk__mark_xml_node_dirty
      Src: /src/pacemaker/lib/common/xml.c:230,1
    - Dst: pcmk__xml_doc_all_flags_set
      Src: /src/pacemaker/lib/common/xml.c:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 233
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 233
    functionName: mark_xml_tree_dirty_created
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__xml_tree_foreach
    - pcmk__mark_xml_node_dirty
    - pcmk__xml_doc_all_flags_set
    linkageType: ''
    returnType: void
    signature: 'static void mark_xml_tree_dirty_created(xmlNode *xml) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml.c:252,1
    - Dst: pcmk__free_acls
      Src: /src/pacemaker/lib/common/xml.c:257,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/common/xml.c:254,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/xml.c:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - docpriv
    argTypes:
    - xml_doc_private_t*
    constantsTouched: []
    func_position:
      end: 266
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 266
    functionName: reset_xml_private_data
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__free_acls
    - g_list_free_full
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'static void reset_xml_private_data(xml_doc_private_t *docpriv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_tree_foreach
      Src: /src/pacemaker/lib/common/xml.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 401
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 401
    functionName: pcmk__xml_free_private_data
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xml_tree_foreach
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xml_free_private_data(xmlNode *xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_reset_node_flags
      Src: /src/pacemaker/lib/common/xml.c:442,1
    - Dst: pcmk__xe_remove_matching_attrs
      Src: /src/pacemaker/lib/common/xml.c:443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - xml
    - user_data
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 445
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 445
    functionName: commit_attr_deletions
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xe_remove_matching_attrs
    - pcmk__xml_reset_node_flags
    linkageType: ''
    returnType: bool
    signature: 'static bool commit_attr_deletions(xmlNode *xml, void *user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_free_private_data
      Src: /src/pacemaker/lib/common/xml.c:517,1
    - Dst: xmlFreeDoc
      Src: /src/pacemaker/lib/common/xml.c:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 520
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 520
    functionName: pcmk__xml_free_doc
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free_private_data
    - xmlFreeDoc
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xml_free_doc(xmlDoc *doc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__clear_xml_flags
      Src: /src/pacemaker/lib/common/xml.c:1114,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/xml.c:1115,1
    - Dst: pcmk__xa_remove
      Src: /src/pacemaker/lib/common/xml.c:1124,1
    - Dst: xmlHasProp
      Src: /src/pacemaker/lib/common/xml.c:1119,1
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/xml.c:1116,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml.c:1126,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 4
    argNames:
    - new_xml
    - element
    - attr_name
    - old_value
    argTypes:
    - xmlNode*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1128
      start: 1103
    functionDepth: 0
    functionLinenumber: 1103
    functionLinenumberEnd: 1128
    functionName: mark_attr_deleted
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__set_xml_flags
    - crm_xml_add
    - pcmk__clear_xml_flags
    - pcmk__xa_remove
    - crm_trace
    - xmlHasProp
    linkageType: ''
    returnType: void
    signature: 'static void mark_attr_deleted(xmlNode *new_xml, const char *element,
      const char *attr_name, const char *old_value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml.c:1171,1
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/xml.c:1181,1
    - Dst: pcmk__mark_xml_node_dirty
      Src: /src/pacemaker/lib/common/xml.c:1175,1
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/xml.c:1178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 6
    argNames:
    - new_xml
    - element
    - old_attr
    - new_attr
    - p_old
    - p_new
    argTypes:
    - xmlNode*
    - char*
    - xmlAttr*
    - xmlAttr*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1182
      start: 1165
    functionDepth: 0
    functionLinenumber: 1165
    functionLinenumberEnd: 1182
    functionName: mark_attr_moved
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__mark_xml_node_dirty
    - crm_trace
    - pcmk__set_xml_flags
    linkageType: ''
    returnType: void
    signature: 'static void mark_attr_moved(xmlNode *new_xml, const char *element,
      xmlAttr *old_attr, xmlAttr *new_attr, int p_old, int p_new) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/xml.c:1249,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml.c:1259,1
    - Dst: pcmk__check_acl
      Src: /src/pacemaker/lib/common/xml.c:1266,1
    - Dst: pcmk__xml_attr_value
      Src: /src/pacemaker/lib/common/xml.c:1260,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml.c:1256,1
    - Dst: pcmk__mark_xml_attr_dirty
      Src: /src/pacemaker/lib/common/xml.c:1267,1
    - Dst: pcmk__xa_remove
      Src: /src/pacemaker/lib/common/xml.c:1270,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - new_xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1274
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1274
    functionName: mark_created_attrs
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_attr
    - pcmk__mark_xml_attr_dirty
    - pcmk__xml_attr_value
    - pcmk__check_acl
    - pcmk_is_set
    - pcmk__xa_remove
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void mark_created_attrs(xmlNode *new_xml) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: new_comment_matches
      Src: /src/pacemaker/lib/common/xml.c:1472,1
    - Dst: new_element_matches
      Src: /src/pacemaker/lib/common/xml.c:1474,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 2
    argNames:
    - old_child
    - new_child
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1478
      start: 1463
    functionDepth: 0
    functionLinenumber: 1463
    functionLinenumberEnd: 1478
    functionName: new_child_matches
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached:
    - new_comment_matches
    - new_element_matches
    linkageType: ''
    returnType: bool
    signature: 'static bool new_child_matches(const xmlNode *old_child, const xmlNode
      *new_child) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1768
      start: 1756
    functionDepth: 0
    functionLinenumber: 1756
    functionLinenumberEnd: 1768
    functionName: crm_xml_sanitize_id
    functionSourceFile: /src/pacemaker/lib/common/xml.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void crm_xml_sanitize_id(char *id) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:127,1
    - Dst: pcmk__getpid_s
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - api
    argTypes:
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 141
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 141
    functionName: new_data
    functionSourceFile: /src/pacemaker/lib/common/ipc_pacemakerd.c
    functionUses: []
    functionsReached:
    - calloc
    - pcmk__getpid_s
    linkageType: ''
    returnType: int
    signature: 'static int new_data(pcmk_ipc_api_t *api) '
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum pcmk_pacemakerd_state
    constantsTouched: []
    func_position:
      end: 98
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 98
    functionName: pcmk__pcmkd_state_enum2friendly
    functionSourceFile: /src/pacemaker/lib/common/ipc_pacemakerd.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__pcmkd_state_enum2friendly(enum pcmk_pacemakerd_state
      state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:146,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: free_data
    functionSourceFile: /src/pacemaker/lib/common/ipc_pacemakerd.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void free_data(void *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - api
    argTypes:
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 177
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 177
    functionName: post_disconnect
    functionSourceFile: /src/pacemaker/lib/common/ipc_pacemakerd.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void post_disconnect(pcmk_ipc_api_t *api) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:204,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:238,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:237,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:247,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:248,1
    - Dst: pcmk_pacemakerd_api_daemon_state_text2enum
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:255,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:270,1
    - Dst: pcmk__call_ipc_callback
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:276,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:217,1
    - Dst: pcmk__parse_server
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:218,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:223,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:232,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:225,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:230,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:229,1
    - Dst: crm_element_value_ll
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:250,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:252,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:262,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:206,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:210,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:212,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:225,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:228,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:237,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:232,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:244,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:256,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:258,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:258,1
    - Dst: atoi
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:267,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:269,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:207,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:212,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:239,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:263,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:264,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:270,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 2
    argNames:
    - api
    - reply
    argTypes:
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 278
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 278
    functionName: dispatch
    functionSourceFile: /src/pacemaker/lib/common/ipc_pacemakerd.c
    functionUses: []
    functionsReached:
    - pcmk_ipc_name
    - atoi
    - pcmk__s
    - pcmk__str_empty
    - pcmk__xe_first_child
    - pcmk__str_eq
    - crm_element_value_ll
    - pcmk_pacemakerd_api_daemon_state_text2enum
    - pcmk__xe_is
    - pcmk__parse_server
    - pcmk__scan_ll
    - crm_element_value
    - crm_warn
    - crm_info
    - pcmk__call_ipc_callback
    - crm_trace
    linkageType: ''
    returnType: bool
    signature: 'static bool dispatch(pcmk_ipc_api_t *api, xmlNode *reply) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:309,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:313,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:311,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:315,1
    - Dst: pcmk__ipc_sys_name
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:312,1
    - Dst: pcmk__send_ipc_request
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:318,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:320,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:321,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:321,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:323,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - api
    - ipc_name
    - task
    argTypes:
    - pcmk_ipc_api_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 329
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 329
    functionName: do_pacemakerd_api_call
    functionSourceFile: /src/pacemaker/lib/common/ipc_pacemakerd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_ipc_name
    - crm_strdup_printf
    - pcmk__new_request
    - free
    - pcmk__ipc_sys_name
    - pcmk__send_ipc_request
    - pcmk__xml_free
    - pcmk_rc_str
    - pcmk__assert
    linkageType: ''
    returnType: int
    signature: 'static int do_pacemakerd_api_call(pcmk_ipc_api_t *api, const char
      *ipc_name, const char *task) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: pcmk_pacemakerd_api_daemon_state_text2enum
    functionSourceFile: /src/pacemaker/lib/common/ipc_pacemakerd.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: enum pcmk_pacemakerd_state
    signature: 'enum pcmk_pacemakerd_state pcmk_pacemakerd_api_daemon_state_text2enum(const
      char *state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:182,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - api
    - request
    argTypes:
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 190
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 190
    functionName: reply_expected
    functionSourceFile: /src/pacemaker/lib/common/ipc_pacemakerd.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - crm_element_value
    linkageType: ''
    returnType: bool
    signature: 'static bool reply_expected(pcmk_ipc_api_t *api, const xmlNode *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 294
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 294
    functionName: pcmk__pacemakerd_api_methods
    functionSourceFile: /src/pacemaker/lib/common/ipc_pacemakerd.c
    functionUses: []
    functionsReached:
    - calloc
    linkageType: ''
    returnType: pcmk__ipc_methods_t*
    signature: 'pcmk__ipc_methods_t *pcmk__pacemakerd_api_methods(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pacemakerd_api_call
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - api
    - ipc_name
    argTypes:
    - pcmk_ipc_api_t*
    - char*
    constantsTouched: []
    func_position:
      end: 335
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 335
    functionName: pcmk_pacemakerd_api_ping
    functionSourceFile: /src/pacemaker/lib/common/ipc_pacemakerd.c
    functionUses: []
    functionsReached:
    - do_pacemakerd_api_call
    linkageType: ''
    returnType: int
    signature: 'int pcmk_pacemakerd_api_ping(pcmk_ipc_api_t *api, const char *ipc_name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pacemakerd_api_call
      Src: /src/pacemaker/lib/common/ipc_pacemakerd.c:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - api
    - ipc_name
    argTypes:
    - pcmk_ipc_api_t*
    - char*
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: pcmk_pacemakerd_api_shutdown
    functionSourceFile: /src/pacemaker/lib/common/ipc_pacemakerd.c
    functionUses: []
    functionsReached:
    - do_pacemakerd_api_call
    linkageType: ''
    returnType: int
    signature: 'int pcmk_pacemakerd_api_shutdown(pcmk_ipc_api_t *api, const char *ipc_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum pcmk_pacemakerd_state
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: pcmk_pacemakerd_api_daemon_state_enum2text
    functionSourceFile: /src/pacemaker/lib/common/ipc_pacemakerd.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk_pacemakerd_api_daemon_state_enum2text( enum pcmk_pacemakerd_state
      state) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - reply
    argTypes:
    - enum pcmk_pacemakerd_api_reply
    constantsTouched: []
    func_position:
      end: 119
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: pcmk__pcmkd_api_reply2str
    functionSourceFile: /src/pacemaker/lib/common/ipc_pacemakerd.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__pcmkd_api_reply2str(enum pcmk_pacemakerd_api_reply
      reply) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - api
    argTypes:
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 163
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 163
    functionName: post_connect
    functionSourceFile: /src/pacemaker/lib/common/ipc_pacemakerd.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int post_connect(pcmk_ipc_api_t *api) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_io.c:216,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_io.c:217,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/xml_io.c:224,1
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/xml_io.c:226,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/xml_io.c:221,1
    - Dst: pcmk__xa_filterable
      Src: /src/pacemaker/lib/common/xml_io.c:229,1
    - Dst: pcmk__dump_xml_attr
      Src: /src/pacemaker/lib/common/xml_io.c:230,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/xml_io.c:235,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/xml_io.c:238,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/xml_io.c:242,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/lib/common/xml_io.c:248,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/xml_io.c:252,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/xml_io.c:255,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/xml_io.c:258,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 4
    argNames:
    - data
    - options
    - buffer
    - depth
    argTypes:
    - xmlNode*
    - uint32_t
    - GString*
    - int
    constantsTouched: []
    func_position:
      end: 261
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 261
    functionName: dump_xml_element
    functionSourceFile: /src/pacemaker/lib/common/xml_io.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_attr
    - pcmk__xa_filterable
    - g_string_append_c
    - g_string_append
    - pcmk_is_set
    - pcmk__dump_xml_attr
    - pcmk__xml_string
    - pcmk__g_strcat
    linkageType: ''
    returnType: void
    signature: 'static void dump_xml_element(const xmlNode *data, uint32_t options,
      GString *buffer, int depth) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/pacemaker/lib/common/xml_io.c:177,1
    - Dst: pcmk__xml_new_private_data
      Src: /src/pacemaker/lib/common/xml_io.c:188,1
    - Dst: xmlCtxtResetLastError
      Src: /src/pacemaker/lib/common/xml_io.c:182,1
    - Dst: xmlSetGenericErrorFunc
      Src: /src/pacemaker/lib/common/xml_io.c:183,1
    - Dst: xmlCtxtReadDoc
      Src: /src/pacemaker/lib/common/xml_io.c:185,1
    - Dst: xmlDocGetRootElement
      Src: /src/pacemaker/lib/common/xml_io.c:189,1
    - Dst: xmlCtxtGetLastError
      Src: /src/pacemaker/lib/common/xml_io.c:192,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/common/xml_io.c:194,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/xml_io.c:195,1
    - Dst: xmlFreeParserCtxt
      Src: /src/pacemaker/lib/common/xml_io.c:199,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 1
    argNames:
    - input
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 201
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 201
    functionName: pcmk__xml_parse
    functionSourceFile: /src/pacemaker/lib/common/xml_io.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlCtxtReadDoc
    - crm_log_xml_debug
    - xmlSetGenericErrorFunc
    - pcmk__xml_new_private_data
    - xmlCtxtResetLastError
    - pcmk__xml_free
    - xmlFreeParserCtxt
    - xmlCtxtGetLastError
    - xmlNewParserCtxt
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__xml_parse(const char *input) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_io.c:339,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/xml_io.c:343,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/xml_io.c:349,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/xml_io.c:346,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - data
    - options
    - buffer
    - depth
    argTypes:
    - xmlNode*
    - uint32_t
    - GString*
    - int
    constantsTouched: []
    func_position:
      end: 351
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 351
    functionName: dump_xml_comment
    functionSourceFile: /src/pacemaker/lib/common/xml_io.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - g_string_append_c
    - pcmk__g_strcat
    linkageType: ''
    returnType: void
    signature: 'static void dump_xml_comment(const xmlNode *data, uint32_t options,
      GString *buffer, int depth) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml_io.c:373,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml_io.c:377,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_io.c:386,1
    - Dst: dump_xml_element
      Src: /src/pacemaker/lib/common/xml_io.c:383,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_io.c:378,1
    - Dst: dump_xml_text
      Src: /src/pacemaker/lib/common/xml_io.c:387,1
    - Dst: dump_xml_comment
      Src: /src/pacemaker/lib/common/xml_io.c:391,1
    - Dst: dump_xml_cdata
      Src: /src/pacemaker/lib/common/xml_io.c:394,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/xml_io.c:397,1
    - Dst: pcmk__xml_element_type_text
      Src: /src/pacemaker/lib/common/xml_io.c:398,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 4
    argNames:
    - data
    - options
    - buffer
    - depth
    argTypes:
    - xmlNode*
    - uint32_t
    - GString*
    - int
    constantsTouched: []
    func_position:
      end: 401
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 401
    functionName: pcmk__xml_string
    functionSourceFile: /src/pacemaker/lib/common/xml_io.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - dump_xml_comment
    - dump_xml_cdata
    - pcmk_is_set
    - dump_xml_text
    - pcmk__assert
    - crm_warn
    - pcmk__xml_element_type_text
    - crm_trace
    - dump_xml_element
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xml_string(const xmlNode *data, uint32_t options, GString
      *buffer, int depth) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_io.c:538,1
    - Dst: write_xml_stream
      Src: /src/pacemaker/lib/common/xml_io.c:544,1
    - Dst: fdopen
      Src: /src/pacemaker/lib/common/xml_io.c:539,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/xml_io.c:544,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - xml
    - filename
    - fd
    argTypes:
    - xmlNode*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 546
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 546
    functionName: pcmk__xml_write_fd
    functionSourceFile: /src/pacemaker/lib/common/xml_io.c
    functionUses: []
    functionsReached:
    - fdopen
    - pcmk__s
    - CRM_CHECK
    - write_xml_stream
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xml_write_fd(const xmlNode *xml, const char *filename, int
      fd) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_io.c:563,1
    - Dst: write_xml_stream
      Src: /src/pacemaker/lib/common/xml_io.c:569,1
    - Dst: fopen
      Src: /src/pacemaker/lib/common/xml_io.c:564,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - xml
    - filename
    - compress
    argTypes:
    - xmlNode*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 570
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 570
    functionName: pcmk__xml_write_file
    functionSourceFile: /src/pacemaker/lib/common/xml_io.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - write_xml_stream
    - fopen
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xml_write_file(const xmlNode *xml, const char *filename,
      bool compress) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_generate_uuid
      Src: /src/pacemaker/lib/common/xml_io.c:608,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/xml_io.c:610,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xml_io.c:612,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/xml_io.c:615,1
    - Dst: pcmk__get_tmpdir
      Src: /src/pacemaker/lib/common/xml_io.c:610,1
    - Dst: pcmk__xml_write_file
      Src: /src/pacemaker/lib/common/xml_io.c:616,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xml_io.c:617,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - xml
    - desc
    - filename
    argTypes:
    - xmlNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 618
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 618
    functionName: save_xml_to_file
    functionSourceFile: /src/pacemaker/lib/common/xml_io.c
    functionUses: []
    functionsReached:
    - pcmk__xml_write_file
    - crm_strdup_printf
    - crm_info
    - free
    - crm_generate_uuid
    - pcmk__get_tmpdir
    linkageType: ''
    returnType: void
    signature: 'void save_xml_to_file(const xmlNode *xml, const char *desc, const
      char *filename) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/pacemaker/lib/common/xml_io.c:45,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/xml_io.c:55,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/common/xml_io.c:48,1
    - Dst: pcmk__bzlib2rc
      Src: /src/pacemaker/lib/common/xml_io.c:53,1
    - Dst: BZ2_bzReadOpen
      Src: /src/pacemaker/lib/common/xml_io.c:52,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/xml_io.c:56,1
    - Dst: pcmk__realloc
      Src: /src/pacemaker/lib/common/xml_io.c:63,1
    - Dst: BZ2_bzRead
      Src: /src/pacemaker/lib/common/xml_io.c:64,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml_io.c:67,1
    - Dst: pcmk__bzlib2rc
      Src: /src/pacemaker/lib/common/xml_io.c:72,1
    - Dst: pcmk__bzlib2rc
      Src: /src/pacemaker/lib/common/xml_io.c:74,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/xml_io.c:76,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xml_io.c:77,1
    - Dst: fclose
      Src: /src/pacemaker/lib/common/xml_io.c:85,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/xml_io.c:75,1
    - Dst: BZ2_bzReadClose
      Src: /src/pacemaker/lib/common/xml_io.c:84,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 87
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 87
    functionName: decompress_file
    functionSourceFile: /src/pacemaker/lib/common/xml_io.c
    functionUses: []
    functionsReached:
    - pcmk__bzlib2rc
    - BZ2_bzReadOpen
    - crm_trace
    - crm_perror
    - fopen
    - fclose
    - BZ2_bzReadClose
    - pcmk__realloc
    - free
    - pcmk_rc_str
    - crm_err
    - BZ2_bzRead
    linkageType: ''
    returnType: char*
    signature: 'static char *decompress_file(const char *filename) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_io.c:276,1
    - Dst: pcmk__xml_escape
      Src: /src/pacemaker/lib/common/xml_io.c:282,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/xml_io.c:290,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/xml_io.c:287,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/xml_io.c:281,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/xml_io.c:293,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/xml_io.c:295,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - data
    - options
    - buffer
    - depth
    argTypes:
    - xmlNode*
    - uint32_t
    - GString*
    - int
    constantsTouched: []
    func_position:
      end: 296
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 296
    functionName: dump_xml_text
    functionSourceFile: /src/pacemaker/lib/common/xml_io.c
    functionUses: []
    functionsReached:
    - g_string_append_c
    - g_string_append
    - pcmk__xml_needs_escape
    - pcmk_is_set
    - pcmk__xml_escape
    - g_free
    linkageType: ''
    returnType: void
    signature: 'static void dump_xml_text(const xmlNode *data, uint32_t options, GString
      *buffer, int depth) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/xml_io.c:102,1
    - Dst: xmlCtxtResetLastError
      Src: /src/pacemaker/lib/common/xml_io.c:112,1
    - Dst: xmlSetGenericErrorFunc
      Src: /src/pacemaker/lib/common/xml_io.c:113,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_io.c:110,1
    - Dst: xmlNewParserCtxt
      Src: /src/pacemaker/lib/common/xml_io.c:109,1
    - Dst: xmlCtxtReadFd
      Src: /src/pacemaker/lib/common/xml_io.c:116,1
    - Dst: pcmk__ends_with_ext
      Src: /src/pacemaker/lib/common/xml_io.c:119,1
    - Dst: decompress_file
      Src: /src/pacemaker/lib/common/xml_io.c:120,1
    - Dst: xmlCtxtReadDoc
      Src: /src/pacemaker/lib/common/xml_io.c:123,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xml_io.c:125,1
    - Dst: xmlCtxtGetLastError
      Src: /src/pacemaker/lib/common/xml_io.c:146,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/common/xml_io.c:148,1
    - Dst: pcmk__strip_xml_text
      Src: /src/pacemaker/lib/common/xml_io.c:142,1
    - Dst: xmlCtxtReadFile
      Src: /src/pacemaker/lib/common/xml_io.c:129,1
    - Dst: xmlFreeParserCtxt
      Src: /src/pacemaker/lib/common/xml_io.c:153,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/xml_io.c:149,1
    - Dst: xmlDocGetRootElement
      Src: /src/pacemaker/lib/common/xml_io.c:134,1
    - Dst: pcmk__xml_new_private_data
      Src: /src/pacemaker/lib/common/xml_io.c:133,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 155
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 155
    functionName: pcmk__xml_read
    functionSourceFile: /src/pacemaker/lib/common/xml_io.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlCtxtReadDoc
    - xmlCtxtReadFile
    - CRM_CHECK
    - decompress_file
    - crm_log_xml_debug
    - xmlSetGenericErrorFunc
    - pcmk__ends_with_ext
    - pcmk__str_eq
    - pcmk__xml_new_private_data
    - xmlCtxtResetLastError
    - xmlCtxtReadFd
    - free
    - pcmk__xml_free
    - xmlFreeParserCtxt
    - pcmk__strip_xml_text
    - xmlCtxtGetLastError
    - xmlNewParserCtxt
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__xml_read(const char *filename) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_io.c:311,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/xml_io.c:318,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/xml_io.c:315,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/xml_io.c:322,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - data
    - options
    - buffer
    - depth
    argTypes:
    - xmlNode*
    - uint32_t
    - GString*
    - int
    constantsTouched: []
    func_position:
      end: 324
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 324
    functionName: dump_xml_cdata
    functionSourceFile: /src/pacemaker/lib/common/xml_io.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - g_string_append_c
    - pcmk__g_strcat
    linkageType: ''
    returnType: void
    signature: 'static void dump_xml_cdata(const xmlNode *data, uint32_t options,
      GString *buffer, int depth) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BZ2_bzWriteOpen
      Src: /src/pacemaker/lib/common/xml_io.c:422,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/xml_io.c:428,1
    - Dst: pcmk__bzlib2rc
      Src: /src/pacemaker/lib/common/xml_io.c:424,1
    - Dst: BZ2_bzWrite
      Src: /src/pacemaker/lib/common/xml_io.c:432,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/xml_io.c:426,1
    - Dst: strlen
      Src: /src/pacemaker/lib/common/xml_io.c:432,1
    - Dst: pcmk__bzlib2rc
      Src: /src/pacemaker/lib/common/xml_io.c:433,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/xml_io.c:435,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/xml_io.c:437,1
    - Dst: BZ2_bzWriteClose
      Src: /src/pacemaker/lib/common/xml_io.c:441,1
    - Dst: pcmk__bzlib2rc
      Src: /src/pacemaker/lib/common/xml_io.c:443,1
    - Dst: BZ2_bzWriteClose
      Src: /src/pacemaker/lib/common/xml_io.c:456,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/xml_io.c:445,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml_io.c:451,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/xml_io.c:447,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 4
    argNames:
    - text
    - filename
    - stream
    - bytes_out
    argTypes:
    - char*
    - char*
    - FILE*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 459
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 459
    functionName: write_compressed_stream
    functionSourceFile: /src/pacemaker/lib/common/xml_io.c
    functionUses: []
    functionsReached:
    - pcmk__bzlib2rc
    - BZ2_bzWriteClose
    - crm_trace
    - BZ2_bzWrite
    - pcmk_rc_str
    - crm_warn
    - BZ2_bzWriteOpen
    - strlen
    linkageType: ''
    returnType: int
    signature: 'static int write_compressed_stream(char *text, const char *filename,
      FILE *stream, unsigned int *bytes_out) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/common/xml_io.c:477,1
    - Dst: crm_log_xml_info
      Src: /src/pacemaker/lib/common/xml_io.c:483,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/lib/common/xml_io.c:481,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_io.c:482,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/xml_io.c:482,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/common/xml_io.c:487,1
    - Dst: write_compressed_stream
      Src: /src/pacemaker/lib/common/xml_io.c:490,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/xml_io.c:495,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/common/xml_io.c:498,1
    - Dst: fflush
      Src: /src/pacemaker/lib/common/xml_io.c:505,1
    - Dst: fsync
      Src: /src/pacemaker/lib/common/xml_io.c:511,1
    - Dst: fileno
      Src: /src/pacemaker/lib/common/xml_io.c:511,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/xml_io.c:519,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/common/xml_io.c:513,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml_io.c:517,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/common/xml_io.c:507,1
    - Dst: fclose
      Src: /src/pacemaker/lib/common/xml_io.c:516,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 4
    argNames:
    - xml
    - filename
    - stream
    - compress
    argTypes:
    - xmlNode*
    - char*
    - FILE*
    - bool
    constantsTouched: []
    func_position:
      end: 521
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 521
    functionName: write_xml_stream
    functionSourceFile: /src/pacemaker/lib/common/xml_io.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - write_compressed_stream
    - fclose
    - pcmk__str_empty
    - crm_perror
    - fileno
    - crm_log_xml_info
    - fsync
    - crm_log_xml_trace
    - g_string_free
    - g_string_sized_new
    - pcmk__xml_string
    - fflush
    - fprintf
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int write_xml_stream(const xmlNode *xml, const char *filename,
      FILE *stream, bool compress) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferCreateFd
      Src: /src/pacemaker/lib/common/xml_io.c:586,1
    - Dst: xmlOutputBufferClose
      Src: /src/pacemaker/lib/common/xml_io.c:592,1
    - Dst: xmlOutputBufferWrite
      Src: /src/pacemaker/lib/common/xml_io.c:590,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/lib/common/xml_io.c:587,1
    - Dst: xmlNodeDumpOutput
      Src: /src/pacemaker/lib/common/xml_io.c:588,1
    - Dst: fsync
      Src: /src/pacemaker/lib/common/xml_io.c:598,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - fd
    - cur
    argTypes:
    - int
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 600
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 600
    functionName: pcmk__xml2fd
    functionSourceFile: /src/pacemaker/lib/common/xml_io.c
    functionUses: []
    functionsReached:
    - xmlNodeDumpOutput
    - xmlOutputBufferWrite
    - xmlOutputBufferClose
    - pcmk__mem_assert
    - xmlOutputBufferCreateFd
    - fsync
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xml2fd(int fd, xmlNode *cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: crm_ipc_default_buffer_size
    functionSourceFile: /src/pacemaker/lib/common/ipc_common.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: 'unsigned int crm_ipc_default_buffer_size(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_common.c:47,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_common.c:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - header
    argTypes:
    - pcmk__ipc_header_t*
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: pcmk__valid_ipc_header
    functionSourceFile: /src/pacemaker/lib/common/ipc_common.c
    functionUses: []
    functionsReached:
    - crm_err
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__valid_ipc_header(const pcmk__ipc_header_t *header) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 1
    argNames:
    - client_type
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 71
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 71
    functionName: pcmk__client_type_str
    functionSourceFile: /src/pacemaker/lib/common/ipc_common.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__client_type_str(uint64_t client_type) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/ipc_common.c:118,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_common.c:109,1
    - Dst: g_byte_array_append
      Src: /src/pacemaker/lib/common/ipc_common.c:119,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_common.c:125,1
    - Dst: g_byte_array_new
      Src: /src/pacemaker/lib/common/ipc_common.c:132,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/ipc_common.c:155,1
    - Dst: g_byte_array_new
      Src: /src/pacemaker/lib/common/ipc_common.c:171,1
    - Dst: g_byte_array_append
      Src: /src/pacemaker/lib/common/ipc_common.c:156,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_common.c:159,1
    - Dst: g_byte_array_append
      Src: /src/pacemaker/lib/common/ipc_common.c:143,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_common.c:180,1
    - Dst: pcmk__clear_ipc_flags
      Src: /src/pacemaker/lib/common/ipc_common.c:141,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_common.c:175,1
    - Dst: pcmk__valid_ipc_header
      Src: /src/pacemaker/lib/common/ipc_common.c:105,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_common.c:121,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/ipc_common.c:154,1
    - Dst: g_byte_array_append
      Src: /src/pacemaker/lib/common/ipc_common.c:172,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_common.c:179,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/ipc_common.c:116,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/ipc_common.c:131,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/ipc_common.c:170,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 2
    argNames:
    - buffer
    - data
    argTypes:
    - GByteArray**
    - guint8*
    constantsTouched: []
    func_position:
      end: 189
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 189
    functionName: pcmk__ipc_msg_append
    functionSourceFile: /src/pacemaker/lib/common/ipc_common.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - g_byte_array_new
    - pcmk_is_set
    - g_byte_array_append
    - pcmk__clear_ipc_flags
    - crm_trace
    - pcmk__valid_ipc_header
    linkageType: ''
    returnType: int
    signature: 'int pcmk__ipc_msg_append(GByteArray **buffer, guint8 *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_controld.c:155,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_controld.c:159,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_controld.c:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - data
    - msg_data
    argTypes:
    - pcmk_controld_api_reply_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 160
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 160
    functionName: set_ping_data
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void set_ping_data(pcmk_controld_api_reply_t *data, xmlNode
      *msg_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/ipc_controld.c:300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 310
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 310
    functionName: pcmk__controld_api_methods
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - calloc
    linkageType: ''
    returnType: pcmk__ipc_methods_t*
    signature: 'pcmk__ipc_methods_t *pcmk__controld_api_methods(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/ipc_controld.c:168,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/ipc_controld.c:170,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/ipc_controld.c:174,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_controld.c:179,1
    - Dst: crm_element_value_ll
      Src: /src/pacemaker/lib/common/ipc_controld.c:175,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_controld.c:180,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/ipc_controld.c:181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - data
    - msg_data
    argTypes:
    - pcmk_controld_api_reply_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 183
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 183
    functionName: set_nodes_data
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - pcmk__assert_alloc
    - crm_element_value_ll
    - g_list_prepend
    - pcmk__xe_next
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void set_nodes_data(pcmk_controld_api_reply_t *data, xmlNode
      *msg_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/ipc_controld.c:189,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_controld.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - api
    - request
    argTypes:
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 198
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 198
    functionName: reply_expected
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - crm_element_value
    linkageType: ''
    returnType: bool
    signature: 'static bool reply_expected(pcmk_ipc_api_t *api, const xmlNode *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_controller_request
      Src: /src/pacemaker/lib/common/ipc_controld.c:480,1
    - Dst: send_controller_request
      Src: /src/pacemaker/lib/common/ipc_controld.c:483,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_controld.c:484,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - api
    argTypes:
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 487
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 487
    functionName: pcmk_controld_api_list_nodes
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - send_controller_request
    - create_controller_request
    - pcmk__xml_free
    linkageType: ''
    returnType: int
    signature: 'int pcmk_controld_api_list_nodes(pcmk_ipc_api_t *api) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_controld.c:606,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_controld.c:608,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_controld.c:607,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_controld.c:609,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_controld.c:607,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_controld.c:610,1
    - Dst: controller_resource_op
      Src: /src/pacemaker/lib/common/ipc_controld.c:611,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 9
    argNames:
    - api
    - target_node
    - router_node
    - rsc_id
    - rsc_long_id
    - standard
    - provider
    - type
    - cib_only
    argTypes:
    - pcmk_ipc_api_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 614
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 614
    functionName: pcmk_controld_api_refresh
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_ipc_name
    - controller_resource_op
    - pcmk__s
    linkageType: ''
    returnType: int
    signature: 'int pcmk_controld_api_refresh(pcmk_ipc_api_t *api, const char *target_node,
      const char *router_node, const char *rsc_id, const char *rsc_long_id, const
      char *standard, const char *provider, const char *type, bool cib_only) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/ipc_controld.c:212,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_controld.c:233,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/ipc_controld.c:236,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_controld.c:237,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_controld.c:249,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_controld.c:258,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/ipc_controld.c:250,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/ipc_controld.c:261,1
    - Dst: set_ping_data
      Src: /src/pacemaker/lib/common/ipc_controld.c:275,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/ipc_controld.c:227,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_controld.c:226,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_controld.c:243,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/ipc_controld.c:262,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/ipc_controld.c:267,1
    - Dst: set_nodes_data
      Src: /src/pacemaker/lib/common/ipc_controld.c:278,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/ipc_controld.c:290,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/ipc_controld.c:291,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_controld.c:244,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_controld.c:259,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/ipc_controld.c:270,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/ipc_controld.c:274,1
    - Dst: pcmk__call_ipc_callback
      Src: /src/pacemaker/lib/common/ipc_controld.c:287,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_controld.c:238,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/ipc_controld.c:243,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/ipc_controld.c:264,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_controld.c:251,1
    - Dst: set_node_info_data
      Src: /src/pacemaker/lib/common/ipc_controld.c:268,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/ipc_controld.c:277,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_controld.c:281,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 2
    argNames:
    - api
    - reply
    argTypes:
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 295
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 295
    functionName: dispatch
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - set_nodes_data
    - set_node_info_data
    - pcmk__s
    - pcmk__str_empty
    - pcmk__xe_first_child
    - pcmk__str_eq
    - strcmp
    - g_list_free_full
    - pcmk__xe_is
    - set_ping_data
    - crm_element_value
    - crm_info
    - pcmk__call_ipc_callback
    - crm_trace
    linkageType: ''
    returnType: bool
    signature: 'static bool dispatch(pcmk_ipc_api_t *api, xmlNode *reply) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/ipc_controld.c:336,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/ipc_controld.c:341,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_controld.c:345,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/lib/common/ipc_controld.c:343,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_controld.c:342,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 18
    argCount: 4
    argNames:
    - api
    - op
    - node
    - msg_data
    argTypes:
    - pcmk_ipc_api_t*
    - char*
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 347
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 347
    functionName: create_controller_request
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - crm_strdup_printf
    - strcmp
    - free
    - pcmk__new_request
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *create_controller_request(const pcmk_ipc_api_t *api,
      const char *op, const char *node, xmlNode *msg_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_controller_request
      Src: /src/pacemaker/lib/common/ipc_controld.c:457,1
    - Dst: send_controller_request
      Src: /src/pacemaker/lib/common/ipc_controld.c:461,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_controld.c:462,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - api
    - node_name
    argTypes:
    - pcmk_ipc_api_t*
    - char*
    constantsTouched: []
    func_position:
      end: 464
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 464
    functionName: pcmk_controld_api_ping
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - send_controller_request
    - create_controller_request
    - pcmk__xml_free
    linkageType: ''
    returnType: int
    signature: 'int pcmk_controld_api_ping(pcmk_ipc_api_t *api, const char *node_name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/ipc_controld.c:643,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_controld.c:645,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/ipc_controld.c:644,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/ipc_controld.c:644,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/ipc_controld.c:643,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/ipc_controld.c:652,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_controld.c:653,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_controld.c:654,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_controld.c:655,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_controld.c:658,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/ipc_controld.c:660,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_controld.c:671,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/lib/common/ipc_controld.c:661,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_controld.c:666,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_controld.c:664,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_controld.c:663,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 4
    argNames:
    - uuid
    - client_name
    - major_version
    - minor_version
    argTypes:
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 673
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 673
    functionName: create_hello_message
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_trace
    - crm_strdup_printf
    - pcmk__str_empty
    - crm_xml_add
    - free
    - pcmk__xml_free
    - pcmk__new_request
    - crm_err
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *create_hello_message(const char *uuid, const char
      *client_name, const char *major_version, const char *minor_version) '
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 1
    argNames:
    - reply
    argTypes:
    - enum pcmk_controld_api_reply
    constantsTouched: []
    func_position:
      end: 60
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 60
    functionName: pcmk__controld_api_reply2str
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__controld_api_reply2str(enum pcmk_controld_api_reply
      reply) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_controller_request
      Src: /src/pacemaker/lib/common/ipc_controld.c:429,1
    - Dst: send_controller_request
      Src: /src/pacemaker/lib/common/ipc_controld.c:437,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_controld.c:438,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/lib/common/ipc_controld.c:434,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - api
    - nodeid
    argTypes:
    - pcmk_ipc_api_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 440
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 440
    functionName: pcmk_controld_api_node_info
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - send_controller_request
    - create_controller_request
    - pcmk__xml_free
    - crm_xml_add_ll
    linkageType: ''
    returnType: int
    signature: 'int pcmk_controld_api_node_info(pcmk_ipc_api_t *api, uint32_t nodeid) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_controld.c:526,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_controld.c:532,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_controld.c:537,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_controld.c:541,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_controld.c:533,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_controld.c:531,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_controld.c:530,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_controld.c:547,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/ipc_controld.c:508,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_controld.c:516,1
    - Dst: pcmk__transition_key
      Src: /src/pacemaker/lib/common/ipc_controld.c:514,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/ipc_controld.c:529,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/ipc_controld.c:536,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/common/ipc_controld.c:540,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/ipc_controld.c:520,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_controld.c:534,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_controld.c:542,1
    - Dst: send_controller_request
      Src: /src/pacemaker/lib/common/ipc_controld.c:545,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_controld.c:517,1
    - Dst: getpid
      Src: /src/pacemaker/lib/common/ipc_controld.c:514,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_controld.c:519,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_controld.c:521,1
    - Dst: create_controller_request
      Src: /src/pacemaker/lib/common/ipc_controld.c:544,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_controld.c:546,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 10
    argNames:
    - api
    - op
    - target_node
    - router_node
    - cib_only
    - rsc_id
    - rsc_long_id
    - standard
    - provider
    - type
    argTypes:
    - pcmk_ipc_api_t*
    - char*
    - char*
    - char*
    - bool
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 549
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 549
    functionName: controller_resource_op
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - send_controller_request
    - crm_xml_add
    - pcmk__str_eq
    - free
    - pcmk__transition_key
    - getpid
    - crm_meta_name
    - pcmk__xml_free
    - create_controller_request
    linkageType: ''
    returnType: int
    signature: 'static int controller_resource_op(pcmk_ipc_api_t *api, const char
      *op, const char *target_node, const char *router_node, bool cib_only, const
      char *rsc_id, const char *rsc_long_id, const char *standard, const char *provider,
      const char *type) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_controld.c:402,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_controld.c:403,1
    - Dst: create_reprobe_message_data
      Src: /src/pacemaker/lib/common/ipc_controld.c:405,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_controld.c:404,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_controld.c:403,1
    - Dst: create_controller_request
      Src: /src/pacemaker/lib/common/ipc_controld.c:406,1
    - Dst: send_controller_request
      Src: /src/pacemaker/lib/common/ipc_controld.c:408,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_controld.c:409,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_controld.c:410,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - api
    - target_node
    - router_node
    argTypes:
    - pcmk_ipc_api_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 412
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 412
    functionName: pcmk_controld_api_reprobe
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_ipc_name
    - pcmk__s
    - send_controller_request
    - create_reprobe_message_data
    - pcmk__xml_free
    - create_controller_request
    linkageType: ''
    returnType: int
    signature: 'int pcmk_controld_api_reprobe(pcmk_ipc_api_t *api, const char *target_node,
      const char *router_node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 1
    argNames:
    - api
    argTypes:
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 629
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 629
    functionName: pcmk_controld_api_replies_expected
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: 'unsigned int pcmk_controld_api_replies_expected(const pcmk_ipc_api_t
      *api) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_hello_message
      Src: /src/pacemaker/lib/common/ipc_controld.c:110,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_controld.c:114,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_controld.c:116,1
    - Dst: pcmk__send_ipc_request
      Src: /src/pacemaker/lib/common/ipc_controld.c:113,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_controld.c:117,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/ipc_controld.c:117,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_controld.c:119,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_controld.c:119,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - api
    argTypes:
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 122
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 122
    functionName: post_connect
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_ipc_name
    - create_hello_message
    - pcmk__send_ipc_request
    - pcmk__xml_free
    - pcmk_rc_str
    - crm_info
    linkageType: ''
    returnType: int
    signature: 'static int post_connect(pcmk_ipc_api_t *api) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/ipc_controld.c:68,1
    - Dst: pcmk__getpid_s
      Src: /src/pacemaker/lib/common/ipc_controld.c:82,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - api
    argTypes:
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 89
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 89
    functionName: new_data
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - calloc
    - pcmk__getpid_s
    linkageType: ''
    returnType: int
    signature: 'static int new_data(pcmk_ipc_api_t *api) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_controld.c:354,1
    - Dst: pcmk__send_ipc_request
      Src: /src/pacemaker/lib/common/ipc_controld.c:362,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 3
    argNames:
    - api
    - request
    - reply_is_expected
    argTypes:
    - pcmk_ipc_api_t*
    - xmlNode*
    - bool
    constantsTouched: []
    func_position:
      end: 363
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 363
    functionName: send_controller_request
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - pcmk__send_ipc_request
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'static int send_controller_request(pcmk_ipc_api_t *api, const xmlNode
      *request, bool reply_is_expected) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/lib/common/ipc_controld.c:132,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/lib/common/ipc_controld.c:134,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/ipc_controld.c:141,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_controld.c:143,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_controld.c:144,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_controld.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - data
    - msg_data
    argTypes:
    - pcmk_controld_api_reply_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 146
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 146
    functionName: set_node_info_data
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - pcmk__xe_attr_is_true
    - crm_element_value_int
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void set_node_info_data(pcmk_controld_api_reply_t *data, xmlNode
      *msg_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_controld.c:94,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_controld.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: free_data
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void free_data(void *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/ipc_controld.c:370,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_controld.c:373,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_controld.c:371,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/ipc_controld.c:372,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - target_node
    - router_node
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 376
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 376
    functionName: create_reprobe_message_data
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - pcmk__str_eq
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *create_reprobe_message_data(const char *target_node,
      const char *router_node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_controld.c:573,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_controld.c:574,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_controld.c:574,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_controld.c:575,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_controld.c:576,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_controld.c:577,1
    - Dst: controller_resource_op
      Src: /src/pacemaker/lib/common/ipc_controld.c:578,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 8
    argNames:
    - api
    - target_node
    - router_node
    - rsc_id
    - rsc_long_id
    - standard
    - provider
    - type
    argTypes:
    - pcmk_ipc_api_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 581
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 581
    functionName: pcmk_controld_api_fail
    functionSourceFile: /src/pacemaker/lib/common/ipc_controld.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_ipc_name
    - controller_resource_op
    - pcmk__s
    linkageType: ''
    returnType: int
    signature: 'int pcmk_controld_api_fail(pcmk_ipc_api_t *api, const char *target_node,
      const char *router_node, const char *rsc_id, const char *rsc_long_id, const
      char *standard, const char *provider, const char *type) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xml_acl_enabled
      Src: /src/pacemaker/lib/common/acl.c:222,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/common/acl.c:233,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/common/acl.c:236,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:223,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/common/acl.c:232,1
    - Dst: pcmk__xpath_match_element
      Src: /src/pacemaker/lib/common/acl.c:274,1
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/acl.c:280,1
    - Dst: pcmk__if_tracing
      Src: /src/pacemaker/lib/common/acl.c:283,1
    - Dst: pcmk__element_xpath
      Src: /src/pacemaker/lib/common/acl.c:285,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:286,1
    - Dst: acl_to_text
      Src: /src/pacemaker/lib/common/acl.c:294,1
    - Dst: acl_to_text
      Src: /src/pacemaker/lib/common/acl.c:287,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/common/acl.c:296,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:293,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/acl.c:288,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 298
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 298
    functionName: pcmk__apply_acl
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - pcmk__element_xpath
    - pcmk__xpath_result
    - pcmk__xpath_match_element
    - pcmk__set_xml_flags
    - acl_to_text
    - pcmk__if_tracing
    - g_string_free
    - xmlXPathFreeObject
    - pcmk__xpath_num_results
    - xml_acl_enabled
    - pcmk__xpath_search
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void pcmk__apply_acl(xmlNode *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__unpack_acl
      Src: /src/pacemaker/lib/common/acl.c:382,1
    - Dst: pcmk__apply_acl
      Src: /src/pacemaker/lib/common/acl.c:384,1
    - Dst: pcmk__xml_doc_set_flags
      Src: /src/pacemaker/lib/common/acl.c:383,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - acl_source
    - target
    - user
    argTypes:
    - xmlNode*
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 385
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 385
    functionName: pcmk__enable_acl
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - pcmk__xml_doc_set_flags
    - pcmk__unpack_acl
    - pcmk__apply_acl
    linkageType: ''
    returnType: void
    signature: 'void pcmk__enable_acl(xmlNode *acl_source, xmlNode *target, const
      char *user) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/acl.c:706,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 709
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 709
    functionName: xml_acl_enabled
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: bool
    signature: 'bool xml_acl_enabled(const xmlNode *xml) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/acl.c:390,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/common/acl.c:393,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/acl.c:400,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/acl.c:397,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/acl.c:396,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/common/acl.c:401,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - allowed
    - requested
    argTypes:
    - enum pcmk__xml_flags
    - enum pcmk__xml_flags
    constantsTouched: []
    func_position:
      end: 405
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 405
    functionName: test_acl_mode
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - pcmk_is_set
    - pcmk_all_flags_set
    linkageType: ''
    returnType: bool
    signature: 'static inline bool test_acl_mode(enum pcmk__xml_flags allowed, enum
      pcmk__xml_flags requested) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xml_acl_enabled
      Src: /src/pacemaker/lib/common/acl.c:683,1
    - Dst: pcmk__clear_xml_flags
      Src: /src/pacemaker/lib/common/acl.c:689,1
    - Dst: pcmk__apply_creation_acl
      Src: /src/pacemaker/lib/common/acl.c:688,1
    - Dst: pcmk__apply_acl
      Src: /src/pacemaker/lib/common/acl.c:687,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 691
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 691
    functionName: xml_acl_disable
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - xml_acl_enabled
    - pcmk__apply_acl
    - pcmk__clear_xml_flags
    - pcmk__apply_creation_acl
    linkageType: ''
    returnType: void
    signature: 'void xml_acl_disable(xmlNode *xml) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__uid2username
      Src: /src/pacemaker/lib/common/acl.c:860,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/acl.c:862,1
    - Dst: geteuid
      Src: /src/pacemaker/lib/common/acl.c:860,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/acl.c:867,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/acl.c:863,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/acl.c:877,1
    - Dst: pcmk__is_privileged
      Src: /src/pacemaker/lib/common/acl.c:880,1
    - Dst: pcmk__is_privileged
      Src: /src/pacemaker/lib/common/acl.c:896,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/acl.c:912,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/acl.c:913,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/acl.c:917,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/acl.c:916,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 3
    argNames:
    - request
    - field
    - peer_user
    argTypes:
    - xmlNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 921
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 921
    functionName: pcmk__update_acl_user
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - pcmk__is_privileged
    - crm_xml_add
    - pcmk__uid2username
    - pcmk__str_copy
    - crm_element_value
    - crm_err
    - geteuid
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__update_acl_user(xmlNode *request, const char *field,
      const char *peer_user) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/acl.c:202,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/common/acl.c:205,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/acl.c:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - flags
    argTypes:
    - enum pcmk__xml_flags
    constantsTouched: []
    func_position:
      end: 212
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 212
    functionName: acl_to_text
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - pcmk_is_set
    linkageType: ''
    returnType: char*
    signature: 'static const char *acl_to_text(enum pcmk__xml_flags flags) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_acl_required
      Src: /src/pacemaker/lib/common/acl.c:480,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/common/acl.c:504,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/common/acl.c:509,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:545,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:522,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/common/acl.c:487,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/common/acl.c:507,1
    - Dst: pcmk__xpath_match_element
      Src: /src/pacemaker/lib/common/acl.c:516,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/common/acl.c:531,1
    - Dst: purge_xml_attributes
      Src: /src/pacemaker/lib/common/acl.c:535,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/acl.c:547,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:481,1
    - Dst: purge_xml_attributes
      Src: /src/pacemaker/lib/common/acl.c:521,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:536,1
    - Dst: pcmk__enable_acl
      Src: /src/pacemaker/lib/common/acl.c:492,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:486,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:528,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/acl.c:541,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/common/acl.c:524,1
    - Dst: pcmk__plural_alt
      Src: /src/pacemaker/lib/common/acl.c:530,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 59
    argCount: 4
    argNames:
    - user
    - acl_source
    - xml
    - result
    argTypes:
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 556
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 556
    functionName: xml_acl_filtered_copy
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - pcmk__xml_copy
    - pcmk__xpath_result
    - pcmk__xpath_match_element
    - pcmk__plural_alt
    - g_list_free_full
    - xmlXPathFreeObject
    - pcmk__enable_acl
    - pcmk__xml_free
    - pcmk__xpath_num_results
    - pcmk_acl_required
    - pcmk__xpath_search
    - crm_trace
    - purge_xml_attributes
    linkageType: ''
    returnType: bool
    signature: 'bool xml_acl_filtered_copy(const char *user, xmlNode *acl_source,
      xmlNode *xml, xmlNode **result) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/acl.c:576,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/acl.c:582,1
    - Dst: strstr
      Src: /src/pacemaker/lib/common/acl.c:584,1
    - Dst: pcmk__element_xpath
      Src: /src/pacemaker/lib/common/acl.c:581,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/acl.c:585,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/acl.c:589,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 591
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 591
    functionName: implicitly_allowed
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - pcmk__element_xpath
    - strcmp
    - pcmk__assert
    - g_string_free
    - strstr
    linkageType: ''
    returnType: bool
    signature: 'static bool implicitly_allowed(const xmlNode *xml) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/acl.c:809,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:810,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/acl.c:813,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:814,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/acl.c:813,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:817,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - user
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 819
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 819
    functionName: pcmk_acl_required
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - strcmp
    - crm_trace
    - pcmk__str_empty
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk_acl_required(const char *user) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/acl.c:751,1
    - Dst: check_acl_deny
      Src: /src/pacemaker/lib/common/acl.c:760,1
    - Dst: pcmk__xml_doc_all_flags_set
      Src: /src/pacemaker/lib/common/acl.c:753,1
    - Dst: xmlHasProp
      Src: /src/pacemaker/lib/common/acl.c:770,1
    - Dst: xml_acl_enabled
      Src: /src/pacemaker/lib/common/acl.c:754,1
    - Dst: test_acl_mode
      Src: /src/pacemaker/lib/common/acl.c:783,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/acl.c:787,1
    - Dst: check_acl_deny
      Src: /src/pacemaker/lib/common/acl.c:790,1
    - Dst: check_acl_deny
      Src: /src/pacemaker/lib/common/acl.c:795,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 35
    argCount: 3
    argNames:
    - xml
    - attr_name
    - mode
    argTypes:
    - xmlNode*
    - char*
    - enum pcmk__xml_flags
    constantsTouched: []
    func_position:
      end: 797
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 797
    functionName: pcmk__check_acl
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - test_acl_mode
    - pcmk__xml_doc_all_flags_set
    - check_acl_deny
    - pcmk_is_set
    - pcmk__assert
    - xml_acl_enabled
    - xmlHasProp
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__check_acl(xmlNode *xml, const char *attr_name, enum pcmk__xml_flags
      mode) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getpwuid
      Src: /src/pacemaker/lib/common/acl.c:824,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/common/acl.c:827,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/acl.c:830,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uid_t
    constantsTouched: []
    func_position:
      end: 831
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 831
    functionName: pcmk__uid2username
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - getpwuid
    - crm_perror
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__uid2username(uid_t uid) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/acl.c:118,1
    - Dst: create_acl
      Src: /src/pacemaker/lib/common/acl.c:131,1
    - Dst: create_acl
      Src: /src/pacemaker/lib/common/acl.c:137,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/acl.c:143,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/acl.c:125,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/acl.c:133,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/acl.c:152,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/acl.c:158,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/acl.c:154,1
    - Dst: parse_acl_entry
      Src: /src/pacemaker/lib/common/acl.c:167,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/acl.c:123,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/acl.c:122,1
    - Dst: create_acl
      Src: /src/pacemaker/lib/common/acl.c:134,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:146,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/acl.c:144,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/acl.c:162,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:165,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/acl.c:120,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:126,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/acl.c:130,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/acl.c:140,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/acl.c:136,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/acl.c:164,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 3
    argNames:
    - acl_top
    - acl_entry
    - acls
    argTypes:
    - xmlNode*
    - xmlNode*
    - GList*
    constantsTouched: []
    func_position:
      end: 175
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 175
    functionName: parse_acl_entry
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - parse_acl_entry
    - pcmk__str_eq
    - pcmk__xe_is
    - pcmk__xe_next
    - crm_element_value
    - pcmk__assert
    - crm_warn
    - create_acl
    - crm_trace
    linkageType: ''
    returnType: GList*
    signature: 'static GList *parse_acl_entry(const xmlNode *acl_top, const xmlNode
      *acl_entry, GList *acls) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_acl_mode
      Src: /src/pacemaker/lib/common/acl.c:426,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/acl.c:428,1
    - Dst: pcmk__xa_remove
      Src: /src/pacemaker/lib/common/acl.c:442,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:427,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/acl.c:438,1
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/acl.c:445,1
    - Dst: pcmk__xml_next
      Src: /src/pacemaker/lib/common/acl.c:449,1
    - Dst: purge_xml_attributes
      Src: /src/pacemaker/lib/common/acl.c:450,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/acl.c:455,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 458
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 458
    functionName: purge_xml_attributes
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - test_acl_mode
    - pcmk__xml_next
    - strcmp
    - pcmk__xml_free
    - pcmk__xa_remove
    - pcmk__xml_first_child
    - pcmk__xe_id
    - crm_trace
    - purge_xml_attributes
    linkageType: ''
    returnType: bool
    signature: 'static bool purge_xml_attributes(xmlNode *xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/acl.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - acls
    argTypes:
    - GList*
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: pcmk__free_acls
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - g_list_free_full
    linkageType: ''
    returnType: void
    signature: 'void pcmk__free_acls(GList *acls) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/pacemaker/lib/common/acl.c:38,1
    - Dst: free
      Src: /src/pacemaker/lib/common/acl.c:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: free_acl
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - free
    - g_free
    linkageType: ''
    returnType: void
    signature: 'static void free_acl(void *data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/acl.c:57,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/acl.c:66,1
    - Dst: g_strdup
      Src: /src/pacemaker/lib/common/acl.c:70,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/acl.c:90,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/acl.c:90,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/acl.c:87,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/acl.c:95,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/acl.c:83,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/acl.c:54,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/acl.c:55,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:61,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/acl.c:79,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/acl.c:87,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:96,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/acl.c:56,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:71,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/common/acl.c:75,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/acl.c:79,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/acl.c:83,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/acl.c:100,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 3
    argNames:
    - xml
    - acls
    - mode
    argTypes:
    - xmlNode*
    - GList*
    - enum pcmk__xml_flags
    constantsTouched: []
    func_position:
      end: 101
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 101
    functionName: create_acl
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - g_list_append
    - pcmk__s
    - pcmk__assert_alloc
    - g_string_sized_new
    - g_strdup
    - crm_element_value
    - g_string_free
    - crm_trace
    - pcmk__g_strcat
    linkageType: ''
    returnType: GList*
    signature: 'static GList *create_acl(const xmlNode *xml, GList *acls, enum pcmk__xml_flags
      mode) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/acl.c:675,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 678
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 678
    functionName: xml_acl_denied
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: bool
    signature: 'bool xml_acl_denied(const xmlNode *xml) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_acl_required
      Src: /src/pacemaker/lib/common/acl.c:324,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/common/acl.c:329,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:325,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/common/acl.c:332,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/acl.c:337,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/acl.c:338,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/acl.c:340,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/acl.c:341,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/acl.c:344,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/acl.c:347,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/acl.c:351,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/acl.c:359,1
    - Dst: parse_acl_entry
      Src: /src/pacemaker/lib/common/acl.c:349,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/acl.c:348,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/acl.c:352,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/acl.c:355,1
    - Dst: pcmk__is_user_in_group
      Src: /src/pacemaker/lib/common/acl.c:358,1
    - Dst: parse_acl_entry
      Src: /src/pacemaker/lib/common/acl.c:360,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 50
    argCount: 3
    argNames:
    - source
    - target
    - user
    argTypes:
    - xmlNode*
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 366
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 366
    functionName: pcmk__unpack_acl
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__xe_first_child
    - parse_acl_entry
    - strcmp
    - pcmk__xpath_find_one
    - pcmk__xe_is
    - pcmk__is_user_in_group
    - pcmk__xe_next
    - crm_element_value
    - pcmk_acl_required
    - crm_trace
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'void pcmk__unpack_acl(xmlNode *source, xmlNode *target, const char
      *user) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__check_acl
      Src: /src/pacemaker/lib/common/acl.c:621,1
    - Dst: display_id
      Src: /src/pacemaker/lib/common/acl.c:623,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:632,1
    - Dst: display_id
      Src: /src/pacemaker/lib/common/acl.c:635,1
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/acl.c:643,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/acl.c:648,1
    - Dst: display_id
      Src: /src/pacemaker/lib/common/acl.c:651,1
    - Dst: pcmk__apply_creation_acl
      Src: /src/pacemaker/lib/common/acl.c:658,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/acl.c:615,1
    - Dst: implicitly_allowed
      Src: /src/pacemaker/lib/common/acl.c:616,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:622,1
    - Dst: xmlDocGetRootElement
      Src: /src/pacemaker/lib/common/acl.c:629,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/acl.c:639,1
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/acl.c:655,1
    - Dst: display_id
      Src: /src/pacemaker/lib/common/acl.c:619,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/acl.c:617,1
    - Dst: pcmk__clear_xml_flags
      Src: /src/pacemaker/lib/common/acl.c:638,1
    - Dst: xmlDocGetRootElement
      Src: /src/pacemaker/lib/common/acl.c:650,1
    - Dst: pcmk__xml_next
      Src: /src/pacemaker/lib/common/acl.c:657,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - xml
    - check_top
    argTypes:
    - xmlNode*
    - bool
    constantsTouched: []
    func_position:
      end: 660
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 660
    functionName: pcmk__apply_creation_acl
    functionSourceFile: /src/pacemaker/lib/common/acl.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - implicitly_allowed
    - pcmk__set_xml_flags
    - pcmk__xml_next
    - pcmk__clear_xml_flags
    - pcmk__apply_creation_acl
    - pcmk__check_acl
    - display_id
    - pcmk_is_set
    - pcmk__xml_free
    - crm_notice
    - pcmk__xml_first_child
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void pcmk__apply_creation_acl(xmlNode *xml, bool check_top) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml_idref.c:35,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/xml_idref.c:39,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/xml_idref.c:37,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/xml_idref.c:40,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/xml_idref.c:41,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/xml_idref.c:41,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/xml_idref.c:44,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/xml_idref.c:49,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/xml_idref.c:49,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml_idref.c:50,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - table
    - id
    - referrer
    argTypes:
    - GHashTable*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 51
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 51
    functionName: pcmk__add_idref
    functionSourceFile: /src/pacemaker/lib/common/xml_idref.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_hash_table_lookup
    - pcmk__assert_alloc
    - pcmk__str_eq
    - pcmk__str_copy
    - pcmk__assert
    - g_hash_table_insert
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void pcmk__add_idref(GHashTable *table, const char *id, const char
      *referrer) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/xml_idref.c:134,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/xml_idref.c:135,1
    - Dst: pcmk__xe_resolve_idref
      Src: /src/pacemaker/lib/common/xml_idref.c:137,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/xml_idref.c:142,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 2
    argNames:
    - xml
    - element_name
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 145
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 145
    functionName: pcmk__xe_dereference_children
    functionSourceFile: /src/pacemaker/lib/common/xml_idref.c
    functionUses: []
    functionsReached:
    - pcmk__xe_resolve_idref
    - g_list_prepend
    - pcmk__xe_next
    - pcmk__xe_first_child
    linkageType: ''
    returnType: GList*
    signature: 'GList *pcmk__xe_dereference_children(const xmlNode *xml, const char
      *element_name) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/xml_idref.c:94,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/xml_idref.c:103,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/xml_idref.c:107,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xml_idref.c:112,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/common/xml_idref.c:104,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 2
    argNames:
    - xml
    - search
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 114
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 114
    functionName: pcmk__xe_resolve_idref
    functionSourceFile: /src/pacemaker/lib/common/xml_idref.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pcmk__xpath_find_one
    - free
    - crm_element_value
    - pcmk__config_err
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__xe_resolve_idref(xmlNode *xml, xmlNode *search) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/xml_idref.c:65,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/xml_idref.c:66,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xml_idref.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: pcmk__free_idref
    functionSourceFile: /src/pacemaker/lib/common/xml_idref.c
    functionUses: []
    functionsReached:
    - free
    - g_list_free_full
    linkageType: ''
    returnType: void
    signature: 'void pcmk__free_idref(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__alert_new
      Src: /src/pacemaker/lib/common/alerts.c:91,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/alerts.c:97,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/alerts.c:96,1
    - Dst: pcmk__str_table_dup
      Src: /src/pacemaker/lib/common/alerts.c:95,1
    - Dst: g_strdupv
      Src: /src/pacemaker/lib/common/alerts.c:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - entry
    argTypes:
    - pcmk__alert_t*
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: pcmk__dup_alert
    functionSourceFile: /src/pacemaker/lib/common/alerts.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - pcmk__alert_new
    - g_strdupv
    - pcmk__str_table_dup
    linkageType: ''
    returnType: pcmk__alert_t*
    signature: 'pcmk__alert_t *pcmk__dup_alert(const pcmk__alert_t *entry) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/alerts.c:108,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/alerts.c:116,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/alerts.c:111,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/lib/common/alerts.c:112,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/alerts.c:114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - table
    - name
    - value
    argTypes:
    - GHashTable*
    - enum pcmk__alert_keys_e
    - char*
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: pcmk__add_alert_key
    functionSourceFile: /src/pacemaker/lib/common/alerts.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__insert_dup
    - g_hash_table_remove
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void pcmk__add_alert_key(GHashTable *table, enum pcmk__alert_keys_e
      name, const char *value) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/alerts.c:258,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/alerts.c:268,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/alerts.c:263,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/alerts.c:262,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/alerts.c:265,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/alerts.c:271,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/alerts.c:274,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/alerts.c:280,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/alerts.c:282,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/alerts.c:284,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/alerts.c:307,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/alerts.c:308,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/alerts.c:293,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/alerts.c:287,1
    - Dst: pcmk__realloc
      Src: /src/pacemaker/lib/common/alerts.c:291,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/alerts.c:306,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/alerts.c:302,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/alerts.c:304,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 2
    argNames:
    - xml
    - entry
    argTypes:
    - xmlNode*
    - pcmk__alert_t*
    constantsTouched: []
    func_position:
      end: 310
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 310
    functionName: unpack_alert_filter
    functionSourceFile: /src/pacemaker/lib/common/alerts.c
    functionUses: []
    functionsReached:
    - crm_debug
    - g_strfreev
    - pcmk__xe_first_child
    - pcmk__xe_is
    - pcmk__realloc
    - pcmk_is_set
    - pcmk__xe_next
    - crm_element_value
    - strdup
    linkageType: ''
    returnType: void
    signature: 'static void unpack_alert_filter(xmlNode *xml, pcmk__alert_t *entry) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/alerts.c:352,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/alerts.c:357,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/alerts.c:365,1
    - Dst: pcmk__free_alert
      Src: /src/pacemaker/lib/common/alerts.c:375,1
    - Dst: pcmk__dup_alert
      Src: /src/pacemaker/lib/common/alerts.c:394,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/alerts.c:389,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/common/alerts.c:397,1
    - Dst: pcmk__free_alert
      Src: /src/pacemaker/lib/common/alerts.c:404,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/alerts.c:407,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/alerts.c:356,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/alerts.c:374,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/alerts.c:402,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/alerts.c:392,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/common/alerts.c:386,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/alerts.c:384,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/alerts.c:412,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/alerts.c:416,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/alerts.c:361,1
    - Dst: pcmk__alert_new
      Src: /src/pacemaker/lib/common/alerts.c:370,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/alerts.c:381,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/alerts.c:408,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/alerts.c:409,1
    - Dst: pcmk__free_alert
      Src: /src/pacemaker/lib/common/alerts.c:418,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/alerts.c:351,1
    - Dst: unpack_alert
      Src: /src/pacemaker/lib/common/alerts.c:372,1
    - Dst: unpack_alert
      Src: /src/pacemaker/lib/common/alerts.c:400,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 1
    argNames:
    - alerts
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 422
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 422
    functionName: pcmk__unpack_alerts
    functionSourceFile: /src/pacemaker/lib/common/alerts.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__alert_new
    - pcmk__xe_first_child
    - pcmk__str_copy
    - pcmk__free_alert
    - pcmk__dup_alert
    - unpack_alert
    - pcmk__xe_next
    - crm_element_value_copy
    - crm_element_value
    - pcmk__config_err
    - g_list_prepend
    - pcmk__readable_interval
    - pcmk__xe_id
    - g_hash_table_size
    linkageType: ''
    returnType: GList*
    signature: 'GList *pcmk__unpack_alerts(const xmlNode *alerts) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/alerts.c:434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - alert_list
    argTypes:
    - GList*
    constantsTouched: []
    func_position:
      end: 436
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 436
    functionName: pcmk__free_alerts
    functionSourceFile: /src/pacemaker/lib/common/alerts.c
    functionUses: []
    functionsReached:
    - g_list_free_full
    linkageType: ''
    returnType: void
    signature: 'void pcmk__free_alerts(GList *alert_list) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/alerts.c:124,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/alerts.c:127,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/common/alerts.c:128,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/alerts.c:126,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/alerts.c:127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - table
    - name
    - value
    argTypes:
    - GHashTable*
    - enum pcmk__alert_keys_e
    - int
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: pcmk__add_alert_key_int
    functionSourceFile: /src/pacemaker/lib/common/alerts.c
    functionUses: []
    functionsReached:
    - pcmk__itoa
    - pcmk__str_copy
    - pcmk__assert
    - g_hash_table_insert
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void pcmk__add_alert_key_int(GHashTable *table, enum pcmk__alert_keys_e
      name, int value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/alerts.c:53,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/alerts.c:56,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/alerts.c:57,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/alerts.c:55,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - id
    - path
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: pcmk__alert_new
    functionSourceFile: /src/pacemaker/lib/common/alerts.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__str_copy
    - pcmk__assert_alloc
    linkageType: ''
    returnType: pcmk__alert_t*
    signature: 'pcmk__alert_t *pcmk__alert_new(const char *id, const char *path) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/alerts.c:67,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/alerts.c:72,1
    - Dst: free
      Src: /src/pacemaker/lib/common/alerts.c:69,1
    - Dst: free
      Src: /src/pacemaker/lib/common/alerts.c:68,1
    - Dst: free
      Src: /src/pacemaker/lib/common/alerts.c:70,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/alerts.c:74,1
    - Dst: free
      Src: /src/pacemaker/lib/common/alerts.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - entry
    argTypes:
    - pcmk__alert_t*
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: pcmk__free_alert
    functionSourceFile: /src/pacemaker/lib/common/alerts.c
    functionUses: []
    functionsReached:
    - g_strfreev
    - g_hash_table_destroy
    - free
    linkageType: ''
    returnType: void
    signature: 'void pcmk__free_alert(pcmk__alert_t *entry) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/alerts.c:147,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/alerts.c:160,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/alerts.c:148,1
    - Dst: pcmk_unpack_nvpair_blocks
      Src: /src/pacemaker/lib/common/alerts.c:156,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/alerts.c:158,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/alerts.c:161,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/alerts.c:167,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/alerts.c:169,1
    - Dst: QB_MIN
      Src: /src/pacemaker/lib/common/alerts.c:171,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/alerts.c:174,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/alerts.c:190,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/alerts.c:183,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/alerts.c:201,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/alerts.c:195,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/common/alerts.c:177,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/alerts.c:196,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/common/alerts.c:184,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 3
    argNames:
    - xml
    - entry
    - max_timeout
    argTypes:
    - xmlNode*
    - pcmk__alert_t*
    - guint*
    constantsTouched: []
    func_position:
      end: 203
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 203
    functionName: unpack_alert_options
    functionSourceFile: /src/pacemaker/lib/common/alerts.c
    functionUses: []
    functionsReached:
    - crm_get_msec
    - crm_trace
    - strdup
    - crm_is_true
    - g_hash_table_lookup
    - pcmk__config_warn
    - g_hash_table_destroy
    - pcmk__strkey_table
    - pcmk_unpack_nvpair_blocks
    - QB_MIN
    - crm_time_new
    - pcmk__readable_interval
    - crm_time_free
    linkageType: ''
    returnType: int
    signature: 'static int unpack_alert_options(xmlNode *xml, pcmk__alert_t *entry,
      guint *max_timeout) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/alerts.c:222,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/alerts.c:229,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/alerts.c:235,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/alerts.c:232,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/alerts.c:233,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/alerts.c:236,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/alerts.c:241,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/alerts.c:242,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 2
    argNames:
    - xml
    - entry
    argTypes:
    - xmlNode*
    - pcmk__alert_t*
    constantsTouched: []
    func_position:
      end: 245
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 245
    functionName: unpack_alert_parameters
    functionSourceFile: /src/pacemaker/lib/common/alerts.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - pcmk__insert_dup
    - pcmk__strkey_table
    - pcmk__xe_next
    - crm_element_value
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void unpack_alert_parameters(const xmlNode *xml, pcmk__alert_t
      *entry) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unpack_alert_parameters
      Src: /src/pacemaker/lib/common/alerts.c:327,1
    - Dst: unpack_alert_options
      Src: /src/pacemaker/lib/common/alerts.c:328,1
    - Dst: unpack_alert_filter
      Src: /src/pacemaker/lib/common/alerts.c:330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - alert
    - entry
    - max_timeout
    argTypes:
    - xmlNode*
    - pcmk__alert_t*
    - guint*
    constantsTouched: []
    func_position:
      end: 333
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 333
    functionName: unpack_alert
    functionSourceFile: /src/pacemaker/lib/common/alerts.c
    functionUses: []
    functionsReached:
    - unpack_alert_options
    - unpack_alert_parameters
    - unpack_alert_filter
    linkageType: ''
    returnType: int
    signature: 'static int unpack_alert(xmlNode *alert, pcmk__alert_t *entry, guint
      *max_timeout) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/lib/common/options_display.c:229,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/options_display.c:231,1
    - Dst: _
      Src: /src/pacemaker/lib/common/options_display.c:237,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/options_display.c:237,1
    - Dst: strtok
      Src: /src/pacemaker/lib/common/options_display.c:242,1
    - Dst: setlocale
      Src: /src/pacemaker/lib/common/options_display.c:242,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/lib/common/options_display.c:244,1
    - Dst: _
      Src: /src/pacemaker/lib/common/options_display.c:244,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/options_display.c:245,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - out
    - for_long
    - desc
    argTypes:
    - pcmk__output_t*
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 248
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 248
    functionName: add_desc_xml
    functionSourceFile: /src/pacemaker/lib/common/options_display.c
    functionUses: []
    functionsReached:
    - setlocale
    - strtok
    - crm_xml_add
    - strcmp
    - pcmk__output_create_xml_text_node
    - _
    linkageType: ''
    returnType: void
    signature: 'static void add_desc_xml(pcmk__output_t *out, bool for_long, const
      char *desc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/options_display.c:290,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/options_display.c:298,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/options_display.c:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 304
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 304
    functionName: map_legacy_option_type
    functionSourceFile: /src/pacemaker/lib/common/options_display.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - pcmk__str_eq
    linkageType: ''
    returnType: char*
    signature: 'static const char *map_legacy_option_type(const char *type) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/options_display.c:335,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/options_display.c:338,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/options_display.c:351,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/common/options_display.c:398,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/common/options_display.c:411,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/options_display.c:322,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/options_display.c:321,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/common/options_display.c:374,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/common/options_display.c:377,1
    - Dst: free
      Src: /src/pacemaker/lib/common/options_display.c:413,1
    - Dst: add_desc_xml
      Src: /src/pacemaker/lib/common/options_display.c:401,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/common/options_display.c:390,1
    - Dst: add_desc_xml
      Src: /src/pacemaker/lib/common/options_display.c:400,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/common/options_display.c:403,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/options_display.c:415,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/options_display.c:320,1
    - Dst: pcmk__output_get_legacy_xml
      Src: /src/pacemaker/lib/common/options_display.c:330,1
    - Dst: map_legacy_option_type
      Src: /src/pacemaker/lib/common/options_display.c:348,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/options_display.c:366,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/common/options_display.c:370,1
    - Dst: add_possible_values_xml
      Src: /src/pacemaker/lib/common/options_display.c:408,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/common/options_display.c:410,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 56
    argCount: 2
    argNames:
    - out
    - option
    argTypes:
    - pcmk__output_t*
    - pcmk__cluster_option_t*
    constantsTouched: []
    func_position:
      end: 417
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 417
    functionName: add_option_metadata_xml
    functionSourceFile: /src/pacemaker/lib/common/options_display.c
    functionUses: []
    functionsReached:
    - map_legacy_option_type
    - pcmk__add_separated_word
    - pcmk__output_create_xml_node
    - pcmk__output_get_legacy_xml
    - crm_strdup_printf
    - pcmk__s
    - pcmk__output_xml_pop_parent
    - add_possible_values_xml
    - pcmk_is_set
    - free
    - pcmk__output_xml_create_parent
    - pcmk__assert
    - g_string_free
    - add_desc_xml
    linkageType: ''
    returnType: void
    signature: 'static void add_option_metadata_xml(pcmk__output_t *out, const pcmk__cluster_option_t
      *option) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/options_display.c:442,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/options_display.c:443,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/options_display.c:445,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/options_display.c:444,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/options_display.c:447,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/options_display.c:449,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/common/options_display.c:452,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/lib/common/options_display.c:457,1
    - Dst: add_desc_xml
      Src: /src/pacemaker/lib/common/options_display.c:458,1
    - Dst: add_desc_xml
      Src: /src/pacemaker/lib/common/options_display.c:459,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/common/options_display.c:461,1
    - Dst: add_option_metadata_xml
      Src: /src/pacemaker/lib/common/options_display.c:467,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/common/options_display.c:472,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/common/options_display.c:466,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/common/options_display.c:471,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 474
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 474
    functionName: option_list_xml
    functionSourceFile: /src/pacemaker/lib/common/options_display.c
    functionUses: []
    functionsReached:
    - pcmk_all_flags_set
    - pcmk__output_xml_pop_parent
    - pcmk__output_create_xml_text_node
    - va_arg
    - pcmk__output_xml_create_parent
    - pcmk__assert
    - add_option_metadata_xml
    - add_desc_xml
    linkageType: ''
    returnType: int
    signature: 'static int option_list_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/pacemaker/lib/common/options_display.c:26,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/common/options_display.c:27,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/options_display.c:31,1
    - Dst: strtok
      Src: /src/pacemaker/lib/common/options_display.c:40,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/options_display.c:44,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/options_display.c:48,1
    - Dst: _
      Src: /src/pacemaker/lib/common/options_display.c:52,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/options_display.c:50,1
    - Dst: _
      Src: /src/pacemaker/lib/common/options_display.c:63,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/options_display.c:67,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/options_display.c:38,1
    - Dst: strtok
      Src: /src/pacemaker/lib/common/options_display.c:41,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/options_display.c:47,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/options_display.c:58,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/options_display.c:29,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/options_display.c:46,1
    - Dst: _
      Src: /src/pacemaker/lib/common/options_display.c:59,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/options_display.c:63,1
    - Dst: _
      Src: /src/pacemaker/lib/common/options_display.c:32,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/options_display.c:35,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/options_display.c:52,1
    - Dst: free
      Src: /src/pacemaker/lib/common/options_display.c:55,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 2
    argNames:
    - out
    - option
    argTypes:
    - pcmk__output_t*
    - pcmk__cluster_option_t*
    constantsTouched: []
    func_position:
      end: 68
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 68
    functionName: add_possible_values_default
    functionSourceFile: /src/pacemaker/lib/common/options_display.c
    functionUses: []
    functionsReached:
    - g_string_append_c
    - g_string_append
    - strtok
    - strcmp
    - pcmk__str_copy
    - pcmk_is_set
    - g_string_sized_new
    - free
    - _
    - pcmk__assert
    - g_string_free
    - pcmk__g_strcat
    linkageType: ''
    returnType: void
    signature: 'static void add_possible_values_default(pcmk__output_t *out, const
      pcmk__cluster_option_t *option) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/options_display.c:129,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/options_display.c:132,1
    - Dst: pcmk__output_text_set_fancy
      Src: /src/pacemaker/lib/common/options_display.c:147,1
    - Dst: add_option_metadata_default
      Src: /src/pacemaker/lib/common/options_display.c:171,1
    - Dst: g_slist_reverse
      Src: /src/pacemaker/lib/common/options_display.c:192,1
    - Dst: _
      Src: /src/pacemaker/lib/common/options_display.c:196,1
    - Dst: g_slist_free
      Src: /src/pacemaker/lib/common/options_display.c:205,1
    - Dst: pcmk__output_text_set_fancy
      Src: /src/pacemaker/lib/common/options_display.c:209,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/options_display.c:137,1
    - Dst: pcmk__output_text_get_fancy
      Src: /src/pacemaker/lib/common/options_display.c:146,1
    - Dst: _
      Src: /src/pacemaker/lib/common/options_display.c:151,1
    - Dst: _
      Src: /src/pacemaker/lib/common/options_display.c:149,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/options_display.c:164,1
    - Dst: g_slist_prepend
      Src: /src/pacemaker/lib/common/options_display.c:166,1
    - Dst: g_slist_reverse
      Src: /src/pacemaker/lib/common/options_display.c:177,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/options_display.c:127,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/options_display.c:130,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/options_display.c:159,1
    - Dst: g_slist_prepend
      Src: /src/pacemaker/lib/common/options_display.c:161,1
    - Dst: add_option_metadata_default
      Src: /src/pacemaker/lib/common/options_display.c:185,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/options_display.c:128,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/options_display.c:133,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/options_display.c:136,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/options_display.c:143,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/common/options_display.c:158,1
    - Dst: _
      Src: /src/pacemaker/lib/common/options_display.c:180,1
    - Dst: g_slist_free
      Src: /src/pacemaker/lib/common/options_display.c:188,1
    - Dst: add_option_metadata_default
      Src: /src/pacemaker/lib/common/options_display.c:202,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 75
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 211
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 211
    functionName: option_list_default
    functionSourceFile: /src/pacemaker/lib/common/options_display.c
    functionUses: []
    functionsReached:
    - pcmk_all_flags_set
    - g_slist_prepend
    - g_slist_free
    - add_option_metadata_default
    - pcmk__output_text_set_fancy
    - va_arg
    - pcmk_is_set
    - g_slist_reverse
    - _
    - pcmk__output_text_get_fancy
    - pcmk__assert
    linkageType: ''
    returnType: int
    signature: 'static int option_list_default(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/options_display.c:263,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/common/options_display.c:269,1
    - Dst: strtok
      Src: /src/pacemaker/lib/common/options_display.c:272,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/options_display.c:265,1
    - Dst: strtok
      Src: /src/pacemaker/lib/common/options_display.c:266,1
    - Dst: free
      Src: /src/pacemaker/lib/common/options_display.c:274,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - out
    - option
    argTypes:
    - pcmk__output_t*
    - pcmk__cluster_option_t*
    constantsTouched: []
    func_position:
      end: 276
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 276
    functionName: add_possible_values_xml
    functionSourceFile: /src/pacemaker/lib/common/options_display.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - strtok
    - strcmp
    - pcmk__str_copy
    - free
    linkageType: ''
    returnType: void
    signature: 'static void add_possible_values_xml(pcmk__output_t *out, const pcmk__cluster_option_t
      *option) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/options_display.c:84,1
    - Dst: _
      Src: /src/pacemaker/lib/common/options_display.c:91,1
    - Dst: _
      Src: /src/pacemaker/lib/common/options_display.c:96,1
    - Dst: add_possible_values_default
      Src: /src/pacemaker/lib/common/options_display.c:98,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - out
    - option
    argTypes:
    - pcmk__output_t*
    - pcmk__cluster_option_t*
    constantsTouched: []
    func_position:
      end: 100
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 100
    functionName: add_option_metadata_default
    functionSourceFile: /src/pacemaker/lib/common/options_display.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - _
    - add_possible_values_default
    linkageType: ''
    returnType: void
    signature: 'static void add_option_metadata_default(pcmk__output_t *out, const
      pcmk__cluster_option_t *option) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/lib/common/options_display.c:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 492
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 492
    functionName: pcmk__register_option_messages
    functionSourceFile: /src/pacemaker/lib/common/options_display.c
    functionUses: []
    functionsReached:
    - pcmk__register_messages
    linkageType: ''
    returnType: void
    signature: 'void pcmk__register_option_messages(pcmk__output_t *out) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:58,1
    - Dst: g_queue_new
      Src: /src/pacemaker/lib/common/output_text.c:71,1
    - Dst: calloc
      Src: /src/pacemaker/lib/common/output_text.c:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: text_init
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_queue_new
    - calloc
    linkageType: ''
    returnType: bool
    signature: 'static bool text_init(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:139,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_text.c:141,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_text.c:147,1
    - Dst: vfprintf
      Src: /src/pacemaker/lib/common/output_text.c:146,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output_text.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 151
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 151
    functionName: text_err
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - vfprintf
    - va_end
    - va_start
    - pcmk__assert
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void text_err(pcmk__output_t *out, const char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:78,1
    - Dst: fflush
      Src: /src/pacemaker/lib/common/output_text.c:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 4
    argNames:
    - out
    - exit_status
    - print
    - copy_dest
    argTypes:
    - pcmk__output_t*
    - crm_exit_t
    - bool
    - void**
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: text_finish
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - fflush
    linkageType: ''
    returnType: void
    signature: 'static void text_finish(pcmk__output_t *out, crm_exit_t exit_status,
      bool print, void **copy_dest) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/output_text.c:34,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_text.c:35,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_text.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: free_list_data
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void free_list_data(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:87,1
    - Dst: text_init
      Src: /src/pacemaker/lib/common/output_text.c:100,1
    - Dst: freopen
      Src: /src/pacemaker/lib/common/output_text.c:90,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:93,1
    - Dst: text_free_priv
      Src: /src/pacemaker/lib/common/output_text.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 104
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 104
    functionName: text_reset
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - text_init
    - freopen
    - text_free_priv
    linkageType: ''
    returnType: void
    signature: 'static void text_reset(pcmk__output_t *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:158,1
    - Dst: vfprintf
      Src: /src/pacemaker/lib/common/output_text.c:169,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_text.c:170,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_text.c:164,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output_text.c:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 175
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 175
    functionName: text_info
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - vfprintf
    - va_end
    - va_start
    - pcmk__assert
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int text_info(pcmk__output_t *out, const char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:256,1
    - Dst: g_queue_peek_tail
      Src: /src/pacemaker/lib/common/output_text.c:259,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 262
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 262
    functionName: text_increment_list
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_queue_peek_tail
    linkageType: ''
    returnType: void
    signature: 'static void text_increment_list(pcmk__output_t *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_queue_free_full
      Src: /src/pacemaker/lib/common/output_text.c:49,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_text.c:50,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 52
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 52
    functionName: text_free_priv
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - free
    - g_queue_free_full
    linkageType: ''
    returnType: void
    signature: 'static void text_free_priv(pcmk__output_t *out) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:109,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output_text.c:116,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output_text.c:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 4
    argNames:
    - out
    - exit_status
    - proc_stdout
    - proc_stderr
    argTypes:
    - pcmk__output_t*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 118
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 118
    functionName: text_subprocess_output
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void text_subprocess_output(pcmk__output_t *out, int exit_status,
      const char *proc_stdout, const char *proc_stderr) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:269,1
    - Dst: g_queue_pop_tail
      Src: /src/pacemaker/lib/common/output_text.c:272,1
    - Dst: pcmk__indented_printf
      Src: /src/pacemaker/lib/common/output_text.c:276,1
    - Dst: pcmk__indented_printf
      Src: /src/pacemaker/lib/common/output_text.c:278,1
    - Dst: free_list_data
      Src: /src/pacemaker/lib/common/output_text.c:282,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 283
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 283
    functionName: text_end_list
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - free_list_data
    - g_queue_pop_tail
    - pcmk__indented_printf
    linkageType: ''
    returnType: void
    signature: 'static void text_end_list(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:450,1
    - Dst: pcmk__indented_vprintf
      Src: /src/pacemaker/lib/common/output_text.c:453,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_text.c:452,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_text.c:454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 455
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 455
    functionName: pcmk__indented_printf
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - va_start
    - va_end
    - pcmk__indented_vprintf
    linkageType: ''
    returnType: void
    signature: 'void pcmk__indented_printf(pcmk__output_t *out, const char *format,
      ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:123,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output_text.c:128,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output_text.c:129,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output_text.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - out
    - extended
    argTypes:
    - pcmk__output_t*
    - bool
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: text_version
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void text_version(pcmk__output_t *out, bool extended) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: text_transient
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int text_transient(pcmk__output_t *out, const char *format,
      ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:299,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output_text.c:305,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output_text.c:302,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - out
    - end
    argTypes:
    - pcmk__output_t*
    - bool
    constantsTouched: []
    func_position:
      end: 308
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 308
    functionName: text_progress
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void text_progress(pcmk__output_t *out, bool end) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:186,1
    - Dst: pcmk__indented_printf
      Src: /src/pacemaker/lib/common/output_text.c:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - out
    - name
    - buf
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: text_output_xml
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__indented_printf
    linkageType: ''
    returnType: void
    signature: 'static void text_output_xml(pcmk__output_t *out, const char *name,
      const char *buf) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/output_text.c:312,1
    - Dst: pcmk__quote_cmdline
      Src: /src/pacemaker/lib/common/output_text.c:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 347
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 347
    functionName: pcmk__mk_text_output
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - calloc
    - pcmk__quote_cmdline
    linkageType: ''
    returnType: pcmk__output_t*
    signature: 'pcmk__output_t *pcmk__mk_text_output(char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:398,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/output_text.c:399,1
    - Dst: vfprintf
      Src: /src/pacemaker/lib/common/output_text.c:400,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/output_text.c:399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - out
    - format
    - args
    argTypes:
    - pcmk__output_t*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 401
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 401
    functionName: pcmk__formatted_vprintf
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - CRM_CHECK
    - vfprintf
    - pcmk__str_eq
    linkageType: ''
    returnType: void
    signature: 'void pcmk__formatted_vprintf(pcmk__output_t *out, const char *format,
      va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:408,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_text.c:410,1
    - Dst: pcmk__formatted_vprintf
      Src: /src/pacemaker/lib/common/output_text.c:411,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_text.c:412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 413
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 413
    functionName: pcmk__formatted_printf
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - va_start
    - pcmk__formatted_vprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: 'void pcmk__formatted_printf(pcmk__output_t *out, const char *format,
      ...) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:464,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output_text.c:476,1
    - Dst: tcgetattr
      Src: /src/pacemaker/lib/common/output_text.c:467,1
    - Dst: tcsetattr
      Src: /src/pacemaker/lib/common/output_text.c:471,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_text.c:479,1
    - Dst: scanf
      Src: /src/pacemaker/lib/common/output_text.c:484,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/output_text.c:486,1
    - Dst: scanf
      Src: /src/pacemaker/lib/common/output_text.c:487,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output_text.c:489,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_text.c:493,1
    - Dst: tcsetattr
      Src: /src/pacemaker/lib/common/output_text.c:499,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - prompt
    - echo
    - dest
    argTypes:
    - char*
    - bool
    - char**
    constantsTouched: []
    func_position:
      end: 501
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 501
    functionName: pcmk__text_prompt
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - tcsetattr
    - pcmk__assert_alloc
    - scanf
    - tcgetattr
    - free
    - pcmk__assert
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'void pcmk__text_prompt(const char *prompt, bool echo, char **dest) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: text_is_quiet
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    linkageType: ''
    returnType: bool
    signature: 'static bool text_is_quiet(pcmk__output_t *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:385,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/output_text.c:387,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:390,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - out
    - enabled
    argTypes:
    - pcmk__output_t*
    - bool
    constantsTouched: []
    func_position:
      end: 393
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 393
    functionName: pcmk__output_text_set_fancy
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__str_eq
    linkageType: ''
    returnType: void
    signature: 'void pcmk__output_text_set_fancy(pcmk__output_t *out, bool enabled) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:198,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_text.c:208,1
    - Dst: pcmk__indented_vprintf
      Src: /src/pacemaker/lib/common/output_text.c:204,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_text.c:201,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output_text.c:205,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/output_text.c:210,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/output_text.c:212,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/output_text.c:213,1
    - Dst: g_queue_push_tail
      Src: /src/pacemaker/lib/common/output_text.c:215,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 4
    argNames:
    - out
    - singular_noun
    - plural_noun
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 216
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 216
    functionName: text_begin_list
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - g_queue_push_tail
    - pcmk__assert_alloc
    - va_end
    - pcmk__indented_vprintf
    - pcmk__str_copy
    - va_start
    - pcmk__assert
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void text_begin_list(pcmk__output_t *out, const char *singular_noun,
      const char *plural_noun, const char *format, ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:224,1
    - Dst: vfprintf
      Src: /src/pacemaker/lib/common/output_text.c:236,1
    - Dst: pcmk__indented_vprintf
      Src: /src/pacemaker/lib/common/output_text.c:238,1
    - Dst: pcmk__indented_printf
      Src: /src/pacemaker/lib/common/output_text.c:235,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_text.c:227,1
    - Dst: pcmk__indented_vprintf
      Src: /src/pacemaker/lib/common/output_text.c:241,1
    - Dst: fputc
      Src: /src/pacemaker/lib/common/output_text.c:244,1
    - Dst: fflush
      Src: /src/pacemaker/lib/common/output_text.c:245,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_text.c:246,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - out
    - id
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 249
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 249
    functionName: text_list_item
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - fputc
    - vfprintf
    - va_end
    - pcmk__indented_vprintf
    - pcmk__indented_printf
    - va_start
    - pcmk__assert
    - fflush
    linkageType: ''
    returnType: void
    signature: 'static void text_list_item(pcmk__output_t *out, const char *id, const
      char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:293,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output_text.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: text_spacer
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void text_spacer(pcmk__output_t *out) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:420,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/output_text.c:421,1
    - Dst: g_queue_get_length
      Src: /src/pacemaker/lib/common/output_text.c:431,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:429,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/output_text.c:421,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output_text.c:434,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output_text.c:438,1
    - Dst: pcmk__formatted_vprintf
      Src: /src/pacemaker/lib/common/output_text.c:442,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - out
    - format
    - args
    argTypes:
    - pcmk__output_t*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 443
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 443
    functionName: pcmk__indented_vprintf
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__str_eq
    - g_queue_get_length
    - pcmk__formatted_vprintf
    - pcmk__assert
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'void pcmk__indented_vprintf(pcmk__output_t *out, const char *format,
      va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:362,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_text.c:367,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/output_text.c:364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 371
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 371
    functionName: pcmk__output_text_get_fancy
    functionSourceFile: /src/pacemaker/lib/common/output_text.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__str_eq
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__output_text_get_fancy(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/pacemaker/lib/common/xml_display.c:28,1
    - Dst: PCMK__XML_LOG_BASE
      Src: /src/pacemaker/lib/common/xml_display.c:31,1
    - Dst: crm_abort
      Src: /src/pacemaker/lib/common/xml_display.c:32,1
    - Dst: PCMK__XML_LOG_BASE
      Src: /src/pacemaker/lib/common/xml_display.c:38,1
    - Dst: pcmk__if_tracing
      Src: /src/pacemaker/lib/common/xml_display.c:29,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/xml_display.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - fmt
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 42
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 42
    functionName: pcmk__log_xmllib_err
    functionSourceFile: /src/pacemaker/lib/common/xml_display.c
    functionUses: []
    functionsReached:
    - va_end
    - pcmk__if_tracing
    - crm_abort
    - va_start
    - PCMK__XML_LOG_BASE
    linkageType: ''
    returnType: void
    signature: 'void pcmk__log_xmllib_err(void *ctx, const char *fmt, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml_display.c:226,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/xml_display.c:238,1
    - Dst: show_xml_node
      Src: /src/pacemaker/lib/common/xml_display.c:237,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/common/xml_display.c:236,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_display.c:227,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 5
    argNames:
    - out
    - prefix
    - data
    - depth
    - options
    argTypes:
    - pcmk__output_t*
    - char*
    - xmlNode*
    - int
    - uint32_t
    constantsTouched: []
    func_position:
      end: 241
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 241
    functionName: pcmk__xml_show
    functionSourceFile: /src/pacemaker/lib/common/xml_display.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - g_string_sized_new
    - pcmk__assert
    - g_string_free
    - show_xml_node
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xml_show(pcmk__output_t *out, const char *prefix, const
      xmlNode *data, int depth, uint32_t options) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/xml_display.c:104,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/xml_display.c:129,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/xml_display.c:137,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/xml_display.c:141,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_display.c:161,1
    - Dst: strstr
      Src: /src/pacemaker/lib/common/xml_display.c:118,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_display.c:149,1
    - Dst: pcmk__output_select_rc
      Src: /src/pacemaker/lib/common/xml_display.c:157,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/xml_display.c:163,1
    - Dst: pcmk__output_select_rc
      Src: /src/pacemaker/lib/common/xml_display.c:166,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_display.c:93,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/xml_display.c:102,1
    - Dst: pcmk__xml_attr_value
      Src: /src/pacemaker/lib/common/xml_display.c:110,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_display.c:113,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/xml_display.c:128,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/xml_display.c:141,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/xml_display.c:134,1
    - Dst: pcmk__xml_escape
      Src: /src/pacemaker/lib/common/xml_display.c:123,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/xml_display.c:127,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/xml_display.c:97,1
    - Dst: g_string_truncate
      Src: /src/pacemaker/lib/common/xml_display.c:99,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_display.c:96,1
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/xml_display.c:106,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_display.c:133,1
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/xml_display.c:150,1
    - Dst: pcmk__xml_next
      Src: /src/pacemaker/lib/common/xml_display.c:151,1
    - Dst: show_xml_node
      Src: /src/pacemaker/lib/common/xml_display.c:153,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/xml_display.c:164,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 66
    argCount: 6
    argNames:
    - out
    - buffer
    - prefix
    - data
    - depth
    - options
    argTypes:
    - pcmk__output_t*
    - GString*
    - char*
    - xmlNode*
    - int
    - uint32_t
    constantsTouched: []
    func_position:
      end: 170
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 170
    functionName: show_xml_element
    functionSourceFile: /src/pacemaker/lib/common/xml_display.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_attr
    - g_string_truncate
    - pcmk__output_select_rc
    - g_string_append_c
    - g_string_append
    - pcmk__s
    - pcmk__str_empty
    - pcmk__xml_next
    - pcmk__xml_attr_value
    - pcmk_is_set
    - pcmk__xml_escape
    - crm_element_value
    - pcmk__xml_first_child
    - strstr
    - show_xml_node
    - g_free
    - pcmk__g_strcat
    linkageType: ''
    returnType: int
    signature: 'static int show_xml_element(pcmk__output_t *out, GString *buffer,
      const char *prefix, const xmlNode *data, int depth, uint32_t options) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: show_xml_comment
      Src: /src/pacemaker/lib/common/xml_display.c:197,1
    - Dst: show_xml_element
      Src: /src/pacemaker/lib/common/xml_display.c:199,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 4
    argCount: 6
    argNames:
    - out
    - buffer
    - prefix
    - data
    - depth
    - options
    argTypes:
    - pcmk__output_t*
    - GString*
    - char*
    - xmlNode*
    - int
    - uint32_t
    constantsTouched: []
    func_position:
      end: 203
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 203
    functionName: show_xml_node
    functionSourceFile: /src/pacemaker/lib/common/xml_display.c
    functionUses: []
    functionsReached:
    - show_xml_comment
    - show_xml_element
    linkageType: ''
    returnType: int
    signature: 'static int show_xml_node(pcmk__output_t *out, GString *buffer, const
      char *prefix, const xmlNode *data, int depth, uint32_t options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_display.c:61,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_display.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - out
    - data
    - depth
    - options
    argTypes:
    - pcmk__output_t*
    - xmlNode*
    - int
    - uint32_t
    constantsTouched: []
    func_position:
      end: 68
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 68
    functionName: show_xml_comment
    functionSourceFile: /src/pacemaker/lib/common/xml_display.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: int
    signature: 'static int show_xml_comment(pcmk__output_t *out, const xmlNode *data,
      int depth, uint32_t options) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_display.c:276,1
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/xml_display.c:291,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_display.c:304,1
    - Dst: pcmk__output_select_rc
      Src: /src/pacemaker/lib/common/xml_display.c:323,1
    - Dst: pcmk__xml_next
      Src: /src/pacemaker/lib/common/xml_display.c:328,1
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/xml_display.c:327,1
    - Dst: pcmk__output_select_rc
      Src: /src/pacemaker/lib/common/xml_display.c:331,1
    - Dst: pcmk__output_select_rc
      Src: /src/pacemaker/lib/common/xml_display.c:337,1
    - Dst: show_xml_changes_recursive
      Src: /src/pacemaker/lib/common/xml_display.c:343,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_display.c:278,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_display.c:297,1
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/xml_display.c:341,1
    - Dst: pcmk__xml_next
      Src: /src/pacemaker/lib/common/xml_display.c:342,1
    - Dst: pcmk__output_select_rc
      Src: /src/pacemaker/lib/common/xml_display.c:344,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/common/xml_display.c:267,1
    - Dst: pcmk__xml_attr_value
      Src: /src/pacemaker/lib/common/xml_display.c:305,1
    - Dst: pcmk__xml_show
      Src: /src/pacemaker/lib/common/xml_display.c:269,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_display.c:282,1
    - Dst: pcmk__xml_show
      Src: /src/pacemaker/lib/common/xml_display.c:287,1
    - Dst: pcmk__xml_attr_value
      Src: /src/pacemaker/lib/common/xml_display.c:298,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_display.c:313,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_display.c:307,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_display.c:310,1
    - Dst: show_xml_changes_recursive
      Src: /src/pacemaker/lib/common/xml_display.c:329,1
    - Dst: pcmk__xml_show
      Src: /src/pacemaker/lib/common/xml_display.c:335,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 4
    argNames:
    - out
    - data
    - depth
    - options
    argTypes:
    - pcmk__output_t*
    - xmlNode*
    - int
    - uint32_t
    constantsTouched: []
    func_position:
      end: 347
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 347
    functionName: show_xml_changes_recursive
    functionSourceFile: /src/pacemaker/lib/common/xml_display.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_attr
    - pcmk__output_select_rc
    - pcmk__xml_next
    - pcmk__xml_attr_value
    - pcmk_is_set
    - pcmk_all_flags_set
    - pcmk__xml_first_child
    - pcmk__xml_show
    - show_xml_changes_recursive
    linkageType: ''
    returnType: int
    signature: 'static int show_xml_changes_recursive(pcmk__output_t *out, const xmlNode
      *data, int depth, uint32_t options) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml_display.c:367,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_display.c:370,1
    - Dst: pcmk__output_select_rc
      Src: /src/pacemaker/lib/common/xml_display.c:385,1
    - Dst: show_xml_changes_recursive
      Src: /src/pacemaker/lib/common/xml_display.c:388,1
    - Dst: pcmk__output_select_rc
      Src: /src/pacemaker/lib/common/xml_display.c:389,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - out
    - xml
    argTypes:
    - pcmk__output_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 390
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 390
    functionName: pcmk__xml_show_changes
    functionSourceFile: /src/pacemaker/lib/common/xml_display.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__output_select_rc
    - pcmk_is_set
    - show_xml_changes_recursive
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xml_show_changes(pcmk__output_t *out, const xmlNode *xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 4
    argNames:
    - out
    - exit_status
    - proc_stdout
    - proc_stderr
    argTypes:
    - pcmk__output_t*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: log_subprocess_output
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void log_subprocess_output(pcmk__output_t *out, int exit_status,
      const char *proc_stdout, const char *proc_stderr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 4
    argNames:
    - out
    - exit_status
    - print
    - copy_dest
    argTypes:
    - pcmk__output_t*
    - crm_exit_t
    - bool
    - void**
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: log_finish
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void log_finish(pcmk__output_t *out, crm_exit_t exit_status,
      bool print, void **copy_dest) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:244,1
    - Dst: g_queue_pop_tail
      Src: /src/pacemaker/lib/common/output_log.c:253,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_log.c:252,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 254
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 254
    functionName: log_end_list
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - free
    - g_queue_pop_tail
    linkageType: ''
    returnType: void
    signature: 'static void log_end_list(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: log_spacer
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void log_spacer(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 3
    argNames:
    - prompt
    - echo
    - dest
    argTypes:
    - char*
    - bool
    - char**
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: log_prompt
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void log_prompt(const char *prompt, bool echo, char **dest) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:111,1
    - Dst: log_init
      Src: /src/pacemaker/lib/common/output_log.c:117,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:114,1
    - Dst: log_free_priv
      Src: /src/pacemaker/lib/common/output_log.c:116,1
    - Dst: freopen
      Src: /src/pacemaker/lib/common/output_log.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: log_reset
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - log_free_priv
    - log_init
    - freopen
    linkageType: ''
    returnType: void
    signature: 'static void log_reset(pcmk__output_t *out) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:206,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/output_log.c:210,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_log.c:217,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/output_log.c:211,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/output_log.c:213,1
    - Dst: vasprintf
      Src: /src/pacemaker/lib/common/output_log.c:218,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:219,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_log.c:220,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/output_log.c:222,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/output_log.c:223,1
    - Dst: logger
      Src: /src/pacemaker/lib/common/output_log.c:227,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/output_log.c:230,1
    - Dst: logger
      Src: /src/pacemaker/lib/common/output_log.c:233,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_log.c:237,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/output_log.c:224,1
    - Dst: logger
      Src: /src/pacemaker/lib/common/output_log.c:231,1
    - Dst: logger
      Src: /src/pacemaker/lib/common/output_log.c:225,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - out
    - name
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 238
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 238
    functionName: log_list_item
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached:
    - logger
    - strcmp
    - va_end
    - free
    - va_start
    - vasprintf
    - pcmk__assert
    - snprintf
    linkageType: ''
    returnType: void
    signature: 'static void log_list_item(pcmk__output_t *out, const char *name, const
      char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - out
    - end
    argTypes:
    - pcmk__output_t*
    - bool
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: log_progress
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void log_progress(pcmk__output_t *out, bool end) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/output_log.c:315,1
    - Dst: pcmk__quote_cmdline
      Src: /src/pacemaker/lib/common/output_log.c:322,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 349
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 349
    functionName: pcmk__mk_log_output
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached:
    - calloc
    - pcmk__quote_cmdline
    linkageType: ''
    returnType: pcmk__output_t*
    signature: 'pcmk__output_t *pcmk__mk_log_output(char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:283,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_log.c:288,1
    - Dst: logger_va
      Src: /src/pacemaker/lib/common/output_log.c:287,1
    - Dst: QB_MAX
      Src: /src/pacemaker/lib/common/output_log.c:287,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_log.c:286,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 291
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 291
    functionName: log_transient
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached:
    - logger_va
    - va_end
    - va_start
    - pcmk__assert
    - QB_MAX
    linkageType: ''
    returnType: int
    signature: 'static int log_transient(pcmk__output_t *out, const char *format,
      ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: log_is_quiet
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool log_is_quiet(pcmk__output_t *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_queue_free
      Src: /src/pacemaker/lib/common/output_log.c:75,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_log.c:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: log_free_priv
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached:
    - g_queue_free
    - free
    linkageType: ''
    returnType: void
    signature: 'static void log_free_priv(pcmk__output_t *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:124,1
    - Dst: logger
      Src: /src/pacemaker/lib/common/output_log.c:132,1
    - Dst: logger
      Src: /src/pacemaker/lib/common/output_log.c:131,1
    - Dst: logger
      Src: /src/pacemaker/lib/common/output_log.c:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - out
    - extended
    argTypes:
    - pcmk__output_t*
    - bool
    constantsTouched: []
    func_position:
      end: 135
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 135
    functionName: log_version
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - logger
    linkageType: ''
    returnType: void
    signature: 'static void log_version(pcmk__output_t *out, bool extended) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:144,1
    - Dst: logger_va
      Src: /src/pacemaker/lib/common/output_log.c:151,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_log.c:152,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_log.c:150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 153
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 153
    functionName: log_err
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - va_start
    - logger_va
    - va_end
    linkageType: ''
    returnType: void
    signature: 'static void log_err(pcmk__output_t *out, const char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:263,1
    - Dst: logger_va
      Src: /src/pacemaker/lib/common/output_log.c:270,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_log.c:269,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_log.c:271,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 274
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 274
    functionName: log_info
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - va_start
    - logger_va
    - va_end
    linkageType: ''
    returnType: int
    signature: 'static int log_info(pcmk__output_t *out, const char *format, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:391,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:396,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/output_log.c:393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - out
    - log_level
    argTypes:
    - pcmk__output_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 399
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 399
    functionName: pcmk__output_set_log_level
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__str_eq
    linkageType: ''
    returnType: void
    signature: 'void pcmk__output_set_log_level(pcmk__output_t *out, uint8_t log_level) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:84,1
    - Dst: calloc
      Src: /src/pacemaker/lib/common/output_log.c:91,1
    - Dst: g_queue_new
      Src: /src/pacemaker/lib/common/output_log.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 102
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 102
    functionName: log_init
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_queue_new
    - calloc
    linkageType: ''
    returnType: bool
    signature: 'static bool log_init(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:160,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/output_log.c:163,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/common/output_log.c:164,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_log.c:166,1
    - Dst: do_crm_log_xml
      Src: /src/pacemaker/lib/common/output_log.c:165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - out
    - name
    - buf
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: log_output_xml
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - do_crm_log_xml
    - free
    - pcmk__xe_set_content
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'static void log_output_xml(pcmk__output_t *out, const char *name,
      const char *buf) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:178,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_log.c:181,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:183,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_log.c:184,1
    - Dst: vasprintf
      Src: /src/pacemaker/lib/common/output_log.c:182,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/output_log.c:189,1
    - Dst: g_queue_push_tail
      Src: /src/pacemaker/lib/common/output_log.c:193,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - out
    - singular_noun
    - plural_noun
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 194
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 194
    functionName: log_begin_list
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached:
    - g_queue_push_tail
    - strcmp
    - va_end
    - va_start
    - vasprintf
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'static void log_begin_list(pcmk__output_t *out, const char *singular_noun,
      const char *plural_noun, const char *format, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:364,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:369,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/output_log.c:366,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 373
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 373
    functionName: pcmk__output_get_log_level
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__str_eq
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t pcmk__output_get_log_level(const pcmk__output_t *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:421,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/output_log.c:423,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_log.c:426,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 5
    argNames:
    - out
    - file
    - function
    - line
    - tags
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 432
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 432
    functionName: pcmk__output_set_log_filter
    functionSourceFile: /src/pacemaker/lib/common/output_log.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__str_eq
    linkageType: ''
    returnType: void
    signature: 'void pcmk__output_set_log_filter(pcmk__output_t *out, const char *file,
      const char *function, uint32_t line, uint32_t tags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__procfs_pid_of
      Src: /src/pacemaker/lib/common/procfs.c:33,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/procfs.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - server
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: find_cib_loadfile
    functionSourceFile: /src/pacemaker/lib/common/procfs.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pcmk__procfs_pid_of
    linkageType: ''
    returnType: char*
    signature: 'static char *find_cib_loadfile(const char *server) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/procfs.c:208,1
    - Dst: readlink
      Src: /src/pacemaker/lib/common/procfs.c:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - pid
    - path
    - path_size
    argTypes:
    - pid_t
    - char
    - size_t
    constantsTouched: []
    func_position:
      end: 225
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 225
    functionName: pcmk__procfs_pid2path
    functionSourceFile: /src/pacemaker/lib/common/procfs.c
    functionUses: []
    functionsReached:
    - readlink
    - snprintf
    linkageType: ''
    returnType: int
    signature: 'int pcmk__procfs_pid2path(pid_t pid, char path[], size_t path_size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__procfs_pid2path
      Src: /src/pacemaker/lib/common/procfs.c:243,1
    - Dst: getpid
      Src: /src/pacemaker/lib/common/procfs.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 250
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 250
    functionName: pcmk__procfs_has_pids
    functionSourceFile: /src/pacemaker/lib/common/procfs.c
    functionUses: []
    functionsReached:
    - pcmk__procfs_pid2path
    - getpid
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__procfs_has_pids(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/pacemaker/lib/common/procfs.c:285,1
    - Dst: strerror
      Src: /src/pacemaker/lib/common/procfs.c:288,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/procfs.c:288,1
    - Dst: fclose
      Src: /src/pacemaker/lib/common/procfs.c:291,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/procfs.c:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - t
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 294
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 294
    functionName: pcmk__sysrq_trigger
    functionSourceFile: /src/pacemaker/lib/common/procfs.c
    functionUses: []
    functionsReached:
    - fclose
    - fopen
    - strerror
    - crm_warn
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'void pcmk__sysrq_trigger(char t) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/pacemaker/lib/common/procfs.c:369,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/procfs.c:365,1
    - Dst: fopen
      Src: /src/pacemaker/lib/common/procfs.c:373,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/procfs.c:377,1
    - Dst: fclose
      Src: /src/pacemaker/lib/common/procfs.c:420,1
    - Dst: free
      Src: /src/pacemaker/lib/common/procfs.c:392,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/procfs.c:384,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/procfs.c:370,1
    - Dst: find_cib_loadfile
      Src: /src/pacemaker/lib/common/procfs.c:363,1
    - Dst: free
      Src: /src/pacemaker/lib/common/procfs.c:378,1
    - Dst: fgets
      Src: /src/pacemaker/lib/common/procfs.c:383,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/procfs.c:412,1
    - Dst: fclose
      Src: /src/pacemaker/lib/common/procfs.c:396,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/procfs.c:408,1
    - Dst: time
      Src: /src/pacemaker/lib/common/procfs.c:350,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/procfs.c:377,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/procfs.c:389,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/procfs.c:395,1
    - Dst: fclose
      Src: /src/pacemaker/lib/common/procfs.c:424,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 2
    argNames:
    - server
    - load
    argTypes:
    - char*
    - float*
    constantsTouched: []
    func_position:
      end: 427
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 427
    functionName: pcmk__throttle_cib_load
    functionSourceFile: /src/pacemaker/lib/common/procfs.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_trace
    - fclose
    - fgets
    - fopen
    - pcmk__assert_alloc
    - time
    - find_cib_loadfile
    - free
    - crm_err
    - pcmk_rc_str
    - crm_warn
    - sysconf
    - sscanf
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__throttle_cib_load(const char *server, float *load) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/pacemaker/lib/common/procfs.c:441,1
    - Dst: strstr
      Src: /src/pacemaker/lib/common/procfs.c:449,1
    - Dst: fgets
      Src: /src/pacemaker/lib/common/procfs.c:448,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/procfs.c:444,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/procfs.c:444,1
    - Dst: strtof
      Src: /src/pacemaker/lib/common/procfs.c:452,1
    - Dst: fclose
      Src: /src/pacemaker/lib/common/procfs.c:457,1
    - Dst: fclose
      Src: /src/pacemaker/lib/common/procfs.c:461,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - load
    argTypes:
    - float*
    constantsTouched: []
    func_position:
      end: 464
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 464
    functionName: pcmk__throttle_load_avg
    functionSourceFile: /src/pacemaker/lib/common/procfs.c
    functionUses: []
    functionsReached:
    - fclose
    - fgets
    - fopen
    - strtof
    - pcmk_rc_str
    - crm_warn
    - strstr
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__throttle_load_avg(float *load) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/pacemaker/lib/common/procfs.c:171,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/common/procfs.c:173,1
    - Dst: isdigit
      Src: /src/pacemaker/lib/common/procfs.c:178,1
    - Dst: fgets
      Src: /src/pacemaker/lib/common/procfs.c:177,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/common/procfs.c:178,1
    - Dst: fclose
      Src: /src/pacemaker/lib/common/procfs.c:182,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 188
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 188
    functionName: pcmk__procfs_num_cores
    functionSourceFile: /src/pacemaker/lib/common/procfs.c
    functionUses: []
    functionsReached:
    - fclose
    - fgets
    - crm_perror
    - fopen
    - isdigit
    - pcmk__starts_with
    linkageType: ''
    returnType: unsigned int
    signature: 'unsigned int pcmk__procfs_num_cores(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/pacemaker/lib/common/procfs.c:66,1
    - Dst: open
      Src: /src/pacemaker/lib/common/procfs.c:77,1
    - Dst: strlen
      Src: /src/pacemaker/lib/common/procfs.c:67,1
    - Dst: strcpy
      Src: /src/pacemaker/lib/common/procfs.c:75,1
    - Dst: strcat
      Src: /src/pacemaker/lib/common/procfs.c:76,1
    - Dst: fstat
      Src: /src/pacemaker/lib/common/procfs.c:81,1
    - Dst: close
      Src: /src/pacemaker/lib/common/procfs.c:82,1
    - Dst: close
      Src: /src/pacemaker/lib/common/procfs.c:85,1
    - Dst: S_ISDIR
      Src: /src/pacemaker/lib/common/procfs.c:88,1
    - Dst: strcat
      Src: /src/pacemaker/lib/common/procfs.c:97,1
    - Dst: fopen
      Src: /src/pacemaker/lib/common/procfs.c:98,1
    - Dst: fscanf
      Src: /src/pacemaker/lib/common/procfs.c:102,1
    - Dst: fclose
      Src: /src/pacemaker/lib/common/procfs.c:107,1
    - Dst: fclose
      Src: /src/pacemaker/lib/common/procfs.c:103,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 3
    argNames:
    - entry
    - name
    - pid
    argTypes:
    - struct dirent*
    - char*
    - pid_t*
    constantsTouched: []
    func_position:
      end: 111
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 111
    functionName: pcmk__procfs_process_info
    functionSourceFile: /src/pacemaker/lib/common/procfs.c
    functionUses: []
    functionsReached:
    - atoi
    - fclose
    - fopen
    - open
    - strcpy
    - S_ISDIR
    - fscanf
    - strlen
    - strcat
    - fstat
    - close
    linkageType: ''
    returnType: int
    signature: 'static int pcmk__procfs_process_info(const struct dirent *entry, char
      *name, pid_t *pid) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/pacemaker/lib/common/procfs.c:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 272
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 272
    functionName: pcmk__procfs_fd_dir
    functionSourceFile: /src/pacemaker/lib/common/procfs.c
    functionUses: []
    functionsReached:
    - opendir
    linkageType: ''
    returnType: DIR*
    signature: 'DIR *pcmk__procfs_fd_dir(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/pacemaker/lib/common/procfs.c:134,1
    - Dst: pcmk__procfs_process_info
      Src: /src/pacemaker/lib/common/procfs.c:141,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/procfs.c:142,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/procfs.c:136,1
    - Dst: readdir
      Src: /src/pacemaker/lib/common/procfs.c:140,1
    - Dst: pcmk__pid_active
      Src: /src/pacemaker/lib/common/procfs.c:143,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/procfs.c:145,1
    - Dst: closedir
      Src: /src/pacemaker/lib/common/procfs.c:150,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 155
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 155
    functionName: pcmk__procfs_pid_of
    functionSourceFile: /src/pacemaker/lib/common/procfs.c
    functionUses: []
    functionsReached:
    - pcmk__procfs_process_info
    - readdir
    - pcmk__str_eq
    - pcmk__pid_active
    - crm_notice
    - opendir
    - crm_info
    - closedir
    linkageType: ''
    returnType: pid_t
    signature: 'pid_t pcmk__procfs_pid_of(const char *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: pcmk__free_resource
    functionSourceFile: /src/pacemaker/lib/common/resources.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void pcmk__free_resource(gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/resources.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: pcmk_resource_is_managed
    functionSourceFile: /src/pacemaker/lib/common/resources.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk_resource_is_managed(const pcmk_resource_t *rsc) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 82
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 82
    functionName: pcmk__multiply_active_text
    functionSourceFile: /src/pacemaker/lib/common/resources.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__multiply_active_text(const pcmk_resource_t *rsc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: pcmk_resource_id
    functionSourceFile: /src/pacemaker/lib/common/resources.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk_resource_id(const pcmk_resource_t *rsc) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/patchset.c:252,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/patchset.c:260,1
    - Dst: xml_acl_disable
      Src: /src/pacemaker/lib/common/patchset.c:256,1
    - Dst: pcmk__xml_doc_all_flags_set
      Src: /src/pacemaker/lib/common/patchset.c:258,1
    - Dst: is_config_change
      Src: /src/pacemaker/lib/common/patchset.c:267,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/patchset.c:273,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/patchset.c:275,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/common/patchset.c:276,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/patchset.c:279,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/common/patchset.c:280,1
    - Dst: xml_create_patchset_v2
      Src: /src/pacemaker/lib/common/patchset.c:284,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 5
    argNames:
    - format
    - source
    - target
    - config_changed
    - manage_version
    argTypes:
    - int
    - xmlNode*
    - xmlNode*
    - bool*
    - bool
    constantsTouched: []
    func_position:
      end: 285
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 285
    functionName: xml_create_patchset
    functionSourceFile: /src/pacemaker/lib/common/patchset.c
    functionUses: []
    functionsReached:
    - is_config_change
    - pcmk__xml_doc_all_flags_set
    - crm_xml_add
    - xml_create_patchset_v2
    - crm_err
    - crm_xml_add_int
    - xml_acl_disable
    - crm_trace
    - crm_element_value_int
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xml_create_patchset(int format, xmlNode *source, xmlNode
      *target, bool *config_changed, bool manage_version) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/patchset.c:153,1
    - Dst: strstr
      Src: /src/pacemaker/lib/common/patchset.c:168,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/patchset.c:159,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 19
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 175
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 175
    functionName: is_config_change
    functionSourceFile: /src/pacemaker/lib/common/patchset.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - strstr
    - pcmk__xe_first_child
    linkageType: ''
    returnType: bool
    signature: 'static bool is_config_change(xmlNode *xml) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/patchset.c:322,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/patchset.c:326,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/patchset.c:324,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/patchset.c:332,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/patchset.c:330,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/patchset.c:337,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/patchset.c:338,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/patchset.c:339,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/patchset.c:344,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/patchset.c:345,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/patchset.c:346,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - patchset
    - add
    - del
    argTypes:
    - xmlNode*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 350
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 350
    functionName: xml_patch_versions
    functionSourceFile: /src/pacemaker/lib/common/patchset.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - PCMK__NELEM
    - crm_err
    - crm_trace
    - crm_element_value_int
    linkageType: ''
    returnType: bool
    signature: 'bool xml_patch_versions(const xmlNode *patchset, int add[3], int del[3]) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/patchset.c:485,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/patchset.c:494,1
    - Dst: strlen
      Src: /src/pacemaker/lib/common/patchset.c:486,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/patchset.c:492,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/patchset.c:493,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/patchset.c:495,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/patchset.c:499,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/patchset.c:502,1
    - Dst: first_matching_xml_child
      Src: /src/pacemaker/lib/common/patchset.c:514,1
    - Dst: first_matching_xml_child
      Src: /src/pacemaker/lib/common/patchset.c:518,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/patchset.c:533,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/patchset.c:537,1
    - Dst: free
      Src: /src/pacemaker/lib/common/patchset.c:541,1
    - Dst: free
      Src: /src/pacemaker/lib/common/patchset.c:540,1
    - Dst: free
      Src: /src/pacemaker/lib/common/patchset.c:542,1
    - Dst: free
      Src: /src/pacemaker/lib/common/patchset.c:535,1
    - Dst: free
      Src: /src/pacemaker/lib/common/patchset.c:543,1
    - Dst: xmlGetNodePath
      Src: /src/pacemaker/lib/common/patchset.c:534,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 44
    argCount: 3
    argNames:
    - top
    - key
    - target_position
    argTypes:
    - xmlNode*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 545
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 545
    functionName: search_v2_xpath
    functionSourceFile: /src/pacemaker/lib/common/patchset.c
    functionUses: []
    functionsReached:
    - crm_debug
    - CRM_CHECK
    - pcmk__assert_alloc
    - free
    - first_matching_xml_child
    - xmlGetNodePath
    - strlen
    - crm_trace
    - sscanf
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *search_v2_xpath(const xmlNode *top, const char *key,
      int target_position) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/patchset.c:594,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/patchset.c:593,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/patchset.c:601,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/patchset.c:607,1
    - Dst: search_v2_xpath
      Src: /src/pacemaker/lib/common/patchset.c:609,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/patchset.c:625,1
    - Dst: xmlAddNextSibling
      Src: /src/pacemaker/lib/common/patchset.c:635,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/patchset.c:617,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/patchset.c:632,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/patchset.c:630,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/patchset.c:661,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/patchset.c:681,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/patchset.c:682,1
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/common/patchset.c:671,1
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/patchset.c:752,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/patchset.c:759,1
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/patchset.c:656,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/patchset.c:665,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/patchset.c:692,1
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/patchset.c:718,1
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/patchset.c:726,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/patchset.c:686,1
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/patchset.c:732,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/patchset.c:740,1
    - Dst: xmlAddNextSibling
      Src: /src/pacemaker/lib/common/patchset.c:741,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/patchset.c:750,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/patchset.c:745,1
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/patchset.c:590,1
    - Dst: pcmk__xml_next
      Src: /src/pacemaker/lib/common/patchset.c:591,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/patchset.c:606,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/patchset.c:610,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/patchset.c:640,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/patchset.c:613,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/patchset.c:642,1
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/patchset.c:646,1
    - Dst: pcmk__xe_remove_matching_attrs
      Src: /src/pacemaker/lib/common/patchset.c:654,1
    - Dst: pcmk__xml_attr_value
      Src: /src/pacemaker/lib/common/patchset.c:659,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/patchset.c:702,1
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/patchset.c:714,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/common/patchset.c:699,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/patchset.c:612,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/patchset.c:639,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/patchset.c:621,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/patchset.c:706,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/patchset.c:710,1
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/patchset.c:695,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/patchset.c:722,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/patchset.c:730,1
    - Dst: xmlAddPrevSibling
      Src: /src/pacemaker/lib/common/patchset.c:737,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/patchset.c:684,1
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/patchset.c:749,1
    - Dst: xmlAddPrevSibling
      Src: /src/pacemaker/lib/common/patchset.c:703,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/patchset.c:713,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/patchset.c:643,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/patchset.c:751,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 133
    argCount: 2
    argNames:
    - xml
    - patchset
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 761
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 761
    functionName: apply_v2_patchset
    functionSourceFile: /src/pacemaker/lib/common/patchset.c
    functionUses: []
    functionsReached:
    - xmlAddPrevSibling
    - pcmk__xe_first_child
    - g_list_free_full
    - pcmk__xml_attr_value
    - search_v2_xpath
    - crm_element_value
    - xmlAddNextSibling
    - pcmk__xml_first_child
    - pcmk__assert
    - pcmk__xe_id
    - crm_err
    - pcmk__xe_first_attr
    - g_list_append
    - g_list_sort
    - pcmk__xml_copy
    - pcmk__xe_remove_matching_attrs
    - pcmk__assert_alloc
    - strcmp
    - pcmk__str_any_of
    - crm_trace
    - crm_debug
    - pcmk__xml_position
    - pcmk__xml_next
    - crm_xml_add
    - pcmk__xml_free
    - crm_element_value_int
    linkageType: ''
    returnType: int
    signature: 'static int apply_v2_patchset(xmlNode *xml, const xmlNode *patchset) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/patchset.c:207,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/patchset.c:214,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/patchset.c:232,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/patchset.c:224,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/patchset.c:217,1
    - Dst: pcmk__xml_doc_all_flags_set
      Src: /src/pacemaker/lib/common/patchset.c:195,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/patchset.c:199,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/common/patchset.c:203,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/patchset.c:209,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/patchset.c:231,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/common/patchset.c:234,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/patchset.c:219,1
    - Dst: add_xml_changes_to_patchset
      Src: /src/pacemaker/lib/common/patchset.c:238,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/patchset.c:202,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/patchset.c:205,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/patchset.c:193,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/patchset.c:208,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/patchset.c:229,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/patchset.c:218,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 46
    argCount: 2
    argNames:
    - source
    - target
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 240
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 240
    functionName: xml_create_patchset_v2
    functionSourceFile: /src/pacemaker/lib/common/patchset.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xml_doc_all_flags_set
    - PCMK__NELEM
    - crm_xml_add
    - add_xml_changes_to_patchset
    - crm_xml_add_int
    - crm_element_value
    - pcmk__assert
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *xml_create_patchset_v2(xmlNode *source, xmlNode *target) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/common/patchset.c:302,1
    - Dst: free
      Src: /src/pacemaker/lib/common/patchset.c:307,1
    - Dst: pcmk__digest_xml
      Src: /src/pacemaker/lib/common/patchset.c:304,1
    - Dst: pcmk__xml_doc_all_flags_set
      Src: /src/pacemaker/lib/common/patchset.c:302,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/patchset.c:306,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - patch
    - source
    - target
    - with_digest
    argTypes:
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - bool
    constantsTouched: []
    func_position:
      end: 310
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 310
    functionName: patchset_process_digest
    functionSourceFile: /src/pacemaker/lib/common/patchset.c
    functionUses: []
    functionsReached:
    - pcmk__digest_xml
    - pcmk__xml_doc_all_flags_set
    - CRM_LOG_ASSERT
    - crm_xml_add
    - free
    linkageType: ''
    returnType: void
    signature: 'void patchset_process_digest(xmlNode *patch, xmlNode *source, xmlNode
      *target, bool with_digest) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/patchset.c:560,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/patchset.c:561,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 571
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 571
    functionName: sort_change_obj_by_position
    functionSourceFile: /src/pacemaker/lib/common/patchset.c
    functionUses: []
    functionsReached:
    - crm_element_value_int
    linkageType: ''
    returnType: gint
    signature: 'static gint sort_change_obj_by_position(gconstpointer a, gconstpointer
      b) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__log_xml_patchset
      Src: /src/pacemaker/lib/common/patchset.c:775,1
    - Dst: pcmk__if_tracing
      Src: /src/pacemaker/lib/common/patchset.c:789,1
    - Dst: apply_v2_patchset
      Src: /src/pacemaker/lib/common/patchset.c:800,1
    - Dst: pcmk__if_tracing
      Src: /src/pacemaker/lib/common/patchset.c:812,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/patchset.c:827,1
    - Dst: xml_patch_version_check
      Src: /src/pacemaker/lib/common/patchset.c:778,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/patchset.c:809,1
    - Dst: pcmk__digest_xml
      Src: /src/pacemaker/lib/common/patchset.c:807,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/patchset.c:822,1
    - Dst: save_xml_to_file
      Src: /src/pacemaker/lib/common/patchset.c:816,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/common/patchset.c:800,1
    - Dst: save_xml_to_file
      Src: /src/pacemaker/lib/common/patchset.c:814,1
    - Dst: free
      Src: /src/pacemaker/lib/common/patchset.c:825,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/patchset.c:808,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/patchset.c:784,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/common/patchset.c:778,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/common/patchset.c:789,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/patchset.c:793,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/patchset.c:796,1
    - Dst: save_xml_to_file
      Src: /src/pacemaker/lib/common/patchset.c:815,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 3
    argNames:
    - xml
    - patchset
    - check_version
    argTypes:
    - xmlNode*
    - xmlNode*
    - bool
    constantsTouched: []
    func_position:
      end: 829
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 829
    functionName: xml_apply_patchset
    functionSourceFile: /src/pacemaker/lib/common/patchset.c
    functionUses: []
    functionsReached:
    - pcmk__log_xml_patchset
    - pcmk__digest_xml
    - pcmk__xml_copy
    - crm_trace
    - xml_patch_version_check
    - apply_v2_patchset
    - pcmk__str_eq
    - pcmk__if_tracing
    - pcmk_rc2legacy
    - free
    - pcmk__xml_free
    - crm_element_value
    - crm_info
    - save_xml_to_file
    - crm_err
    - crm_element_value_int
    linkageType: ''
    returnType: int
    signature: 'int xml_apply_patchset(xmlNode *xml, xmlNode *patchset, bool check_version) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cib_abs_xpath_for
      Src: /src/pacemaker/lib/common/patchset.c:834,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/patchset.c:840,1
    - Dst: pcmk_cib_parent_name_for
      Src: /src/pacemaker/lib/common/patchset.c:835,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/patchset.c:844,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/patchset.c:842,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/patchset.c:848,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/patchset.c:857,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/patchset.c:859,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/patchset.c:861,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/patchset.c:863,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/patchset.c:864,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/patchset.c:873,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/patchset.c:874,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/patchset.c:874,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/patchset.c:872,1
    - Dst: free
      Src: /src/pacemaker/lib/common/patchset.c:882,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/patchset.c:866,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 2
    argNames:
    - patchset
    - element
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 884
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 884
    functionName: pcmk__cib_element_in_patchset
    functionSourceFile: /src/pacemaker/lib/common/patchset.c
    functionUses: []
    functionsReached:
    - pcmk_cib_parent_name_for
    - CRM_CHECK
    - crm_strdup_printf
    - pcmk__xe_first_child
    - pcmk__str_eq
    - pcmk__xe_is
    - free
    - pcmk__xe_next
    - crm_element_value
    - pcmk__assert
    - crm_warn
    - pcmk__cib_abs_xpath_for
    - crm_element_value_int
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__cib_element_in_patchset(const xmlNode *patchset, const
      char *element) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/patchset.c:57,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/patchset.c:86,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/patchset.c:93,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/patchset.c:87,1
    - Dst: pcmk__xml_attr_value
      Src: /src/pacemaker/lib/common/patchset.c:100,1
    - Dst: pcmk__xml_next
      Src: /src/pacemaker/lib/common/patchset.c:123,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/patchset.c:131,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/patchset.c:138,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/patchset.c:128,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/patchset.c:49,1
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/patchset.c:53,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/common/patchset.c:60,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/common/patchset.c:73,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/patchset.c:81,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/patchset.c:83,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/patchset.c:91,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/patchset.c:95,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/patchset.c:101,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/patchset.c:115,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/patchset.c:58,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/common/patchset.c:59,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/patchset.c:61,1
    - Dst: pcmk__element_xpath
      Src: /src/pacemaker/lib/common/patchset.c:78,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/patchset.c:98,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/patchset.c:108,1
    - Dst: pcmk__element_xpath
      Src: /src/pacemaker/lib/common/patchset.c:129,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/patchset.c:136,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/patchset.c:139,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/patchset.c:142,1
    - Dst: add_xml_changes_to_patchset
      Src: /src/pacemaker/lib/common/patchset.c:124,1
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/patchset.c:141,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/patchset.c:55,1
    - Dst: pcmk__element_xpath
      Src: /src/pacemaker/lib/common/patchset.c:50,1
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/patchset.c:68,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/patchset.c:84,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/patchset.c:109,1
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/patchset.c:111,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/patchset.c:114,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/patchset.c:116,1
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/patchset.c:122,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/patchset.c:132,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/common/patchset.c:140,1
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/patchset.c:133,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 91
    argCount: 2
    argNames:
    - xml
    - patchset
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 145
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 145
    functionName: add_xml_changes_to_patchset
    functionSourceFile: /src/pacemaker/lib/common/patchset.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_first_attr
    - pcmk__element_xpath
    - pcmk_any_flags_set
    - pcmk__xml_copy
    - pcmk__xml_position
    - pcmk__xml_next
    - crm_xml_add
    - add_xml_changes_to_patchset
    - pcmk__xml_attr_value
    - pcmk_is_set
    - crm_xml_add_int
    - crm_element_value
    - pcmk__xml_first_child
    - g_string_free
    - pcmk__xe_id
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void add_xml_changes_to_patchset(xmlNode *xml, xmlNode *patchset) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/patchset.c:377,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/patchset.c:389,1
    - Dst: xml_patch_versions
      Src: /src/pacemaker/lib/common/patchset.c:393,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/patchset.c:378,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/patchset.c:379,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/patchset.c:395,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/patchset.c:397,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/patchset.c:403,1
    - Dst: crm_log_xml_info
      Src: /src/pacemaker/lib/common/patchset.c:406,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/patchset.c:411,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/patchset.c:423,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/patchset.c:418,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - xml
    - patchset
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 426
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 426
    functionName: xml_patch_version_check
    functionSourceFile: /src/pacemaker/lib/common/patchset.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_trace
    - PCMK__NELEM
    - crm_log_xml_info
    - crm_notice
    - crm_info
    - xml_patch_versions
    - crm_element_value_int
    linkageType: ''
    returnType: int
    signature: 'static int xml_patch_version_check(const xmlNode *xml, const xmlNode
      *patchset) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/patchset.c:435,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/patchset.c:437,1
    - Dst: pcmk__xml_next
      Src: /src/pacemaker/lib/common/patchset.c:436,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/patchset.c:440,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/patchset.c:442,1
    - Dst: pcmk__xml_position
      Src: /src/pacemaker/lib/common/patchset.c:450,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 4
    argNames:
    - parent
    - name
    - id
    - position
    argTypes:
    - xmlNode*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 457
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 457
    functionName: first_matching_xml_child
    functionSourceFile: /src/pacemaker/lib/common/patchset.c
    functionUses: []
    functionsReached:
    - pcmk__xml_position
    - pcmk__xml_next
    - strcmp
    - pcmk__xml_first_child
    - pcmk__xe_id
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *first_matching_xml_child(const xmlNode *parent, const
      char *name, const char *id, int position) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: pcmk__output_formatters
    functionSourceFile: /src/pacemaker/lib/common/output.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: GHashTable*
    signature: 'GHashTable *pcmk__output_formatters(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output.c:67,1
    - Dst: create
      Src: /src/pacemaker/lib/common/output.c:82,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/output.c:75,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/output.c:73,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/output.c:87,1
    - Dst: fopen
      Src: /src/pacemaker/lib/common/output.c:90,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/output.c:92,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/output.c:99,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/output.c:102,1
    - Dst: setenv
      Src: /src/pacemaker/lib/common/output.c:106,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 4
    argNames:
    - out
    - fmt_name
    - filename
    - argv
    argTypes:
    - pcmk__output_t**
    - char*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 109
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 109
    functionName: pcmk__bare_output_new
    functionSourceFile: /src/pacemaker/lib/common/output.c
    functionUses: []
    functionsReached:
    - setenv
    - fopen
    - g_hash_table_lookup
    - pcmk__strkey_table
    - pcmk__str_eq
    - pcmk__output_free
    - pcmk__assert
    - create
    linkageType: ''
    returnType: int
    signature: 'int pcmk__bare_output_new(pcmk__output_t **out, const char *fmt_name,
      const char *filename, char **argv) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output.c:132,1
    - Dst: g_option_group_add_entries
      Src: /src/pacemaker/lib/common/output.c:146,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/output.c:142,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/output.c:132,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/output.c:136,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/output.c:149,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 4
    argNames:
    - group
    - name
    - create
    - options
    argTypes:
    - GOptionGroup*
    - char*
    - pcmk__output_factory_t
    - GOptionEntry*
    constantsTouched: []
    func_position:
      end: 151
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 151
    functionName: pcmk__register_format
    functionSourceFile: /src/pacemaker/lib/common/output.c
    functionUses: []
    functionsReached:
    - strdup
    - pcmk__str_empty
    - pcmk__strkey_table
    - g_option_group_add_entries
    - pcmk__assert
    - g_hash_table_insert
    linkageType: ''
    returnType: int
    signature: 'int pcmk__register_format(GOptionGroup *group, const char *name, pcmk__output_factory_t
      create, const GOptionEntry *options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/output.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 172
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 172
    functionName: pcmk__unregister_formats
    functionSourceFile: /src/pacemaker/lib/common/output.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: 'void pcmk__unregister_formats(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output.c:200,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/output.c:201,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/lib/common/output.c:201,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/output.c:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - out
    - message_id
    - fn
    argTypes:
    - pcmk__output_t*
    - char*
    - pcmk__message_fn_t
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: pcmk__register_message
    functionSourceFile: /src/pacemaker/lib/common/output.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__str_copy
    - g_hash_table_replace
    - pcmk__str_empty
    linkageType: ''
    returnType: void
    signature: 'void pcmk__register_message(pcmk__output_t *out, const char *message_id,
      pcmk__message_fn_t fn) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/output.c:256,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/lib/common/output.c:259,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/output.c:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - out
    - xml
    argTypes:
    - pcmk__output_t**
    - xmlNodePtr*
    constantsTouched: []
    func_position:
      end: 261
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 261
    functionName: pcmk__xml_output_new
    functionSourceFile: /src/pacemaker/lib/common/output.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - pcmk__xml_free
    - pcmk__register_formats
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xml_output_new(pcmk__output_t **out, xmlNodePtr *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/lib/common/output.c:301,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/output.c:302,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/output.c:304,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/output.c:305,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t**
    constantsTouched: []
    func_position:
      end: 309
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 309
    functionName: pcmk__log_output_new
    functionSourceFile: /src/pacemaker/lib/common/output.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - crm_err
    - pcmk__register_formats
    - pcmk_rc_str
    linkageType: ''
    returnType: int
    signature: 'int pcmk__log_output_new(pcmk__output_t **out) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/output.c:37,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/output.c:40,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 42
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 42
    functionName: pcmk__output_free
    functionSourceFile: /src/pacemaker/lib/common/output.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - free
    - g_free
    linkageType: ''
    returnType: void
    signature: 'void pcmk__output_free(pcmk__output_t *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__bare_output_new
      Src: /src/pacemaker/lib/common/output.c:115,1
    - Dst: pcmk__register_patchset_messages
      Src: /src/pacemaker/lib/common/output.c:120,1
    - Dst: pcmk__register_option_messages
      Src: /src/pacemaker/lib/common/output.c:119,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 4
    argNames:
    - out
    - fmt_name
    - filename
    - argv
    argTypes:
    - pcmk__output_t**
    - char*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: pcmk__output_new
    functionSourceFile: /src/pacemaker/lib/common/output.c
    functionUses: []
    functionsReached:
    - pcmk__register_patchset_messages
    - pcmk__bare_output_new
    - pcmk__register_option_messages
    linkageType: ''
    returnType: int
    signature: 'int pcmk__output_new(pcmk__output_t **out, const char *fmt_name, const
      char *filename, char **argv) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_format
      Src: /src/pacemaker/lib/common/output.c:162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - group
    - formats
    argTypes:
    - GOptionGroup*
    - pcmk__supported_format_t*
    constantsTouched: []
    func_position:
      end: 164
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 164
    functionName: pcmk__register_formats
    functionSourceFile: /src/pacemaker/lib/common/output.c
    functionUses: []
    functionsReached:
    - pcmk__register_format
    linkageType: ''
    returnType: void
    signature: 'void pcmk__register_formats(GOptionGroup *group, const pcmk__supported_format_t
      *formats) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output.c:180,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/output.c:180,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/output.c:184,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/output.c:182,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output.c:189,1
    - Dst: fn
      Src: /src/pacemaker/lib/common/output.c:190,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output.c:191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - out
    - message_id
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 194
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 194
    functionName: pcmk__call_message
    functionSourceFile: /src/pacemaker/lib/common/output.c
    functionUses: []
    functionsReached:
    - crm_debug
    - g_hash_table_lookup
    - pcmk__str_empty
    - va_end
    - va_start
    - pcmk__assert
    - fn
    linkageType: ''
    returnType: int
    signature: 'int pcmk__call_message(pcmk__output_t *out, const char *message_id,
      ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/common/output.c:209,1
    - Dst: pcmk__register_message
      Src: /src/pacemaker/lib/common/output.c:210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - out
    - table
    argTypes:
    - pcmk__output_t*
    - pcmk__message_entry_t*
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: pcmk__register_messages
    functionSourceFile: /src/pacemaker/lib/common/output.c
    functionUses: []
    functionsReached:
    - pcmk__register_message
    - pcmk__strcase_any_of
    linkageType: ''
    returnType: void
    signature: 'void pcmk__register_messages(pcmk__output_t *out, const pcmk__message_entry_t
      *table) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output.c:225,1
    - Dst: g_get_prgname
      Src: /src/pacemaker/lib/common/output.c:225,1
    - Dst: g_get_prgname
      Src: /src/pacemaker/lib/common/output.c:223,1
    - Dst: g_clear_error
      Src: /src/pacemaker/lib/common/output.c:228,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - error
    - out
    argTypes:
    - GError**
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 229
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 229
    functionName: pcmk__output_and_clear_error
    functionSourceFile: /src/pacemaker/lib/common/output.c
    functionUses: []
    functionsReached:
    - g_clear_error
    - g_get_prgname
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'void pcmk__output_and_clear_error(GError **error, pcmk__output_t *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/output.c:280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - out
    - exit_status
    - xml
    argTypes:
    - pcmk__output_t*
    - crm_exit_t
    - xmlNodePtr*
    constantsTouched: []
    func_position:
      end: 281
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 281
    functionName: pcmk__xml_output_finish
    functionSourceFile: /src/pacemaker/lib/common/output.c
    functionUses: []
    functionsReached:
    - pcmk__output_free
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xml_output_finish(pcmk__output_t *out, crm_exit_t exit_status,
      xmlNodePtr *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/lib/common/output.c:330,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/output.c:331,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/output.c:333,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/output.c:334,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - out
    - filename
    argTypes:
    - pcmk__output_t**
    - char*
    constantsTouched: []
    func_position:
      end: 338
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 338
    functionName: pcmk__text_output_new
    functionSourceFile: /src/pacemaker/lib/common/output.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - crm_err
    - pcmk__register_formats
    - pcmk_rc_str
    linkageType: ''
    returnType: int
    signature: 'int pcmk__text_output_new(pcmk__output_t **out, const char *filename) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:190,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/common/output_xml.c:203,1
    - Dst: add_root_node
      Src: /src/pacemaker/lib/common/output_xml.c:197,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output_xml.c:203,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output_xml.c:207,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/common/output_xml.c:211,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/output_xml.c:213,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/common/output_xml.c:214,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/common/output_xml.c:216,1
    - Dst: g_slist_length
      Src: /src/pacemaker/lib/common/output_xml.c:219,1
    - Dst: g_slist_foreach
      Src: /src/pacemaker/lib/common/output_xml.c:221,1
    - Dst: fileno
      Src: /src/pacemaker/lib/common/output_xml.c:228,1
    - Dst: pcmk__xml2fd
      Src: /src/pacemaker/lib/common/output_xml.c:228,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/common/output_xml.c:232,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/output_xml.c:220,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_xml.c:224,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 4
    argNames:
    - out
    - exit_status
    - print
    - copy_dest
    argTypes:
    - pcmk__output_t*
    - crm_exit_t
    - bool
    - void**
    constantsTouched: []
    func_position:
      end: 234
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 234
    functionName: xml_finish
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - add_root_node
    - pcmk__xe_create
    - pcmk__xml_copy
    - crm_exit_str
    - pcmk__itoa
    - g_slist_length
    - fileno
    - pcmk__xe_set_props
    - pcmk__xml2fd
    - free
    - g_slist_foreach
    - pcmk__assert
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xml_finish(pcmk__output_t *out, crm_exit_t exit_status,
      bool print, void **copy_dest) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:253,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/output_xml.c:262,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/common/output_xml.c:263,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/common/output_xml.c:255,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/common/output_xml.c:257,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/output_xml.c:264,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/output_xml.c:268,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/common/output_xml.c:269,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/output_xml.c:270,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_xml.c:273,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - out
    - exit_status
    - proc_stdout
    - proc_stderr
    argTypes:
    - pcmk__output_t*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 274
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 274
    functionName: xml_subprocess_output
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__itoa
    - crm_xml_add
    - free
    - pcmk__xe_set_content
    - pcmk__output_xml_create_parent
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'static void xml_subprocess_output(pcmk__output_t *out, int exit_status,
      const char *proc_stdout, const char *proc_stderr) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:344,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:349,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_xml.c:347,1
    - Dst: vasprintf
      Src: /src/pacemaker/lib/common/output_xml.c:348,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_xml.c:350,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/output_xml.c:353,1
    - Dst: g_strdup
      Src: /src/pacemaker/lib/common/output_xml.c:354,1
    - Dst: g_ascii_strdown
      Src: /src/pacemaker/lib/common/output_xml.c:360,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/common/output_xml.c:364,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/common/output_xml.c:368,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_xml.c:372,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/output_xml.c:371,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 4
    argNames:
    - out
    - singular_noun
    - plural_noun
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 373
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 373
    functionName: xml_begin_list
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - strcmp
    - va_end
    - free
    - va_start
    - vasprintf
    - g_strdup
    - pcmk__output_xml_create_parent
    - pcmk__assert
    - g_free
    - g_ascii_strdown
    linkageType: ''
    returnType: void
    signature: 'static void xml_begin_list(pcmk__output_t *out, const char *singular_noun,
      const char *plural_noun, const char *format, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/output_xml.c:443,1
    - Dst: pcmk__quote_cmdline
      Src: /src/pacemaker/lib/common/output_xml.c:450,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 478
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 478
    functionName: pcmk__mk_xml_output
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - calloc
    - pcmk__quote_cmdline
    linkageType: ''
    returnType: pcmk__output_t*
    signature: 'pcmk__output_t *pcmk__mk_xml_output(char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:503,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/output_xml.c:504,1
    - Dst: g_queue_peek_tail
      Src: /src/pacemaker/lib/common/output_xml.c:509,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/output_xml.c:504,1
    - Dst: add_root_node
      Src: /src/pacemaker/lib/common/output_xml.c:506,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/output_xml.c:512,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/common/output_xml.c:514,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - out
    - node
    argTypes:
    - pcmk__output_t*
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 515
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 515
    functionName: pcmk__output_xml_add_node_copy
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - add_root_node
    - CRM_CHECK
    - pcmk__xml_copy
    - pcmk__assert
    - pcmk__str_any_of
    - g_queue_peek_tail
    linkageType: ''
    returnType: void
    signature: 'void pcmk__output_xml_add_node_copy(pcmk__output_t *out, xmlNodePtr
      node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:568,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/output_xml.c:569,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:575,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/output_xml.c:569,1
    - Dst: add_root_node
      Src: /src/pacemaker/lib/common/output_xml.c:571,1
    - Dst: g_queue_get_length
      Src: /src/pacemaker/lib/common/output_xml.c:575,1
    - Dst: g_queue_pop_tail
      Src: /src/pacemaker/lib/common/output_xml.c:577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 578
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 578
    functionName: pcmk__output_xml_pop_parent
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - add_root_node
    - CRM_CHECK
    - g_queue_get_length
    - g_queue_pop_tail
    - pcmk__assert
    - pcmk__str_any_of
    linkageType: ''
    returnType: void
    signature: 'void pcmk__output_xml_pop_parent(pcmk__output_t *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:600,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:606,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/output_xml.c:602,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 610
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 610
    functionName: pcmk__output_get_legacy_xml
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__str_eq
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__output_get_legacy_xml(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: has_root_node
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    linkageType: ''
    returnType: bool
    signature: 'static bool has_root_node(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:238,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:241,1
    - Dst: xml_init
      Src: /src/pacemaker/lib/common/output_xml.c:244,1
    - Dst: xml_free_priv
      Src: /src/pacemaker/lib/common/output_xml.c:243,1
    - Dst: freopen
      Src: /src/pacemaker/lib/common/output_xml.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 245
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 245
    functionName: xml_reset
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - xml_free_priv
    - xml_init
    - freopen
    linkageType: ''
    returnType: void
    signature: 'static void xml_reset(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:280,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/common/output_xml.c:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - out
    - extended
    argTypes:
    - pcmk__output_t*
    - bool
    constantsTouched: []
    func_position:
      end: 289
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 289
    functionName: xml_version
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__output_create_xml_node
    linkageType: ''
    returnType: void
    signature: 'static void xml_version(pcmk__output_t *out, bool extended) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:485,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/output_xml.c:486,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/output_xml.c:486,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_xml.c:490,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/common/output_xml.c:488,1
    - Dst: pcmk__xe_set_propv
      Src: /src/pacemaker/lib/common/output_xml.c:491,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_xml.c:492,1
    - Dst: pcmk__output_xml_push_parent
      Src: /src/pacemaker/lib/common/output_xml.c:494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - out
    - name
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 496
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 496
    functionName: pcmk__output_xml_create_parent
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - CRM_CHECK
    - pcmk__xe_set_propv
    - va_end
    - va_start
    - pcmk__output_xml_push_parent
    - pcmk__assert
    - pcmk__str_any_of
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'xmlNodePtr pcmk__output_xml_create_parent(pcmk__output_t *out, const
      char *name, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:523,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/output_xml.c:530,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/output_xml.c:524,1
    - Dst: add_root_node
      Src: /src/pacemaker/lib/common/output_xml.c:526,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/output_xml.c:524,1
    - Dst: g_queue_peek_tail
      Src: /src/pacemaker/lib/common/output_xml.c:530,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_xml.c:531,1
    - Dst: pcmk__xe_set_propv
      Src: /src/pacemaker/lib/common/output_xml.c:532,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_xml.c:533,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - out
    - name
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 536
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 536
    functionName: pcmk__output_create_xml_node
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - add_root_node
    - pcmk__xe_create
    - CRM_CHECK
    - pcmk__xe_set_propv
    - va_end
    - va_start
    - pcmk__assert
    - pcmk__str_any_of
    - g_queue_peek_tail
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'xmlNodePtr pcmk__output_create_xml_node(pcmk__output_t *out, const
      char *name, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:584,1
    - Dst: g_queue_peek_tail
      Src: /src/pacemaker/lib/common/output_xml.c:592,1
    - Dst: add_root_node
      Src: /src/pacemaker/lib/common/output_xml.c:587,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/output_xml.c:585,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/output_xml.c:585,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 593
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 593
    functionName: pcmk__output_xml_peek_parent
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - add_root_node
    - CRM_CHECK
    - pcmk__assert
    - pcmk__str_any_of
    - g_queue_peek_tail
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'xmlNodePtr pcmk__output_xml_peek_parent(pcmk__output_t *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:617,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/output_xml.c:619,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:623,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 627
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 627
    functionName: pcmk__output_set_legacy_xml
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__str_eq
    linkageType: ''
    returnType: void
    signature: 'void pcmk__output_set_legacy_xml(pcmk__output_t *out) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:157,1
    - Dst: calloc
      Src: /src/pacemaker/lib/common/output_xml.c:163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 174
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 174
    functionName: xml_init
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - calloc
    linkageType: ''
    returnType: bool
    signature: 'static bool xml_init(pcmk__output_t *out) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_root_node
      Src: /src/pacemaker/lib/common/output_xml.c:109,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/output_xml.c:119,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/output_xml.c:116,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/output_xml.c:117,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/output_xml.c:120,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/output_xml.c:121,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/output_xml.c:122,1
    - Dst: g_queue_new
      Src: /src/pacemaker/lib/common/output_xml.c:125,1
    - Dst: g_queue_push_tail
      Src: /src/pacemaker/lib/common/output_xml.c:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 127
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 127
    functionName: add_root_node
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__s
    - g_queue_push_tail
    - crm_xml_add
    - g_queue_new
    - has_root_node
    linkageType: ''
    returnType: void
    signature: 'static void add_root_node(pcmk__output_t *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:383,1
    - Dst: vasprintf
      Src: /src/pacemaker/lib/common/output_xml.c:386,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:387,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_xml.c:388,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_xml.c:385,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/lib/common/output_xml.c:390,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/output_xml.c:393,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_xml.c:396,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - out
    - name
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 397
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 397
    functionName: xml_list_item
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - crm_xml_add
    - va_end
    - pcmk__output_create_xml_text_node
    - free
    - va_start
    - vasprintf
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'static void xml_list_item(pcmk__output_t *out, const char *name, const
      char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:542,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/output_xml.c:543,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/output_xml.c:543,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/common/output_xml.c:546,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/common/output_xml.c:545,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - out
    - name
    - content
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 548
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 548
    functionName: pcmk__output_create_xml_text_node
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - CRM_CHECK
    - pcmk__xe_set_content
    - pcmk__assert
    - pcmk__str_any_of
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'xmlNodePtr pcmk__output_create_xml_text_node(pcmk__output_t *out,
      const char *name, const char *content) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/output_xml.c:181,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/common/output_xml.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 183
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 183
    functionName: add_error_node
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_set_content
    linkageType: ''
    returnType: void
    signature: 'static void add_error_node(gpointer data, gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_root_node
      Src: /src/pacemaker/lib/common/output_xml.c:139,1
    - Dst: g_slist_free_full
      Src: /src/pacemaker/lib/common/output_xml.c:148,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/output_xml.c:140,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_xml.c:149,1
    - Dst: g_queue_free
      Src: /src/pacemaker/lib/common/output_xml.c:145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 151
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 151
    functionName: xml_free_priv
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - g_queue_free
    - free
    - pcmk__xml_free
    - g_slist_free_full
    - has_root_node
    linkageType: ''
    returnType: void
    signature: 'static void xml_free_priv(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: xml_info
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xml_info(pcmk__output_t *out, const char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: xml_increment_list
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xml_increment_list(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:554,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/output_xml.c:555,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/output_xml.c:555,1
    - Dst: g_queue_push_tail
      Src: /src/pacemaker/lib/common/output_xml.c:561,1
    - Dst: add_root_node
      Src: /src/pacemaker/lib/common/output_xml.c:557,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - out
    - parent
    argTypes:
    - pcmk__output_t*
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 562
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 562
    functionName: pcmk__output_xml_push_parent
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - add_root_node
    - CRM_CHECK
    - g_queue_push_tail
    - pcmk__assert
    - pcmk__str_any_of
    linkageType: ''
    returnType: void
    signature: 'void pcmk__output_xml_push_parent(pcmk__output_t *out, xmlNodePtr
      parent) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:323,1
    - Dst: strlen
      Src: /src/pacemaker/lib/common/output_xml.c:330,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/common/output_xml.c:325,1
    - Dst: xmlNewCDataBlock
      Src: /src/pacemaker/lib/common/output_xml.c:329,1
    - Dst: xmlAddChild
      Src: /src/pacemaker/lib/common/output_xml.c:331,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - out
    - name
    - buf
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 332
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 332
    functionName: xml_output_xml
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_xml_node
    - xmlAddChild
    - pcmk__assert
    - strlen
    - xmlNewCDataBlock
    linkageType: ''
    returnType: void
    signature: 'static void xml_output_xml(pcmk__output_t *out, const char *name,
      const char *buf) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:408,1
    - Dst: xmlChildElementCount
      Src: /src/pacemaker/lib/common/output_xml.c:417,1
    - Dst: g_queue_pop_tail
      Src: /src/pacemaker/lib/common/output_xml.c:416,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/output_xml.c:417,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/output_xml.c:418,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_xml.c:419,1
    - Dst: g_queue_pop_tail
      Src: /src/pacemaker/lib/common/output_xml.c:422,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 424
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 424
    functionName: xml_end_list
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - crm_xml_add
    - free
    - g_queue_pop_tail
    - pcmk__assert
    - xmlChildElementCount
    linkageType: ''
    returnType: void
    signature: 'static void xml_end_list(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:299,1
    - Dst: vasprintf
      Src: /src/pacemaker/lib/common/output_xml.c:305,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_xml.c:304,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:306,1
    - Dst: add_root_node
      Src: /src/pacemaker/lib/common/output_xml.c:302,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_xml.c:307,1
    - Dst: g_slist_append
      Src: /src/pacemaker/lib/common/output_xml.c:309,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 310
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 310
    functionName: xml_err
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - add_root_node
    - va_end
    - va_start
    - vasprintf
    - g_slist_append
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'static void xml_err(pcmk__output_t *out, const char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: xml_is_quiet
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool xml_is_quiet(pcmk__output_t *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:634,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_xml.c:640,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/output_xml.c:636,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 644
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 644
    functionName: pcmk__output_enable_list_element
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__str_eq
    linkageType: ''
    returnType: void
    signature: 'void pcmk__output_enable_list_element(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: xml_spacer
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xml_spacer(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - out
    - end
    argTypes:
    - pcmk__output_t*
    - bool
    constantsTouched: []
    func_position:
      end: 439
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 439
    functionName: xml_progress
    functionSourceFile: /src/pacemaker/lib/common/output_xml.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xml_progress(pcmk__output_t *out, bool end) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml_comment.c:34,1
    - Dst: xmlNewDocComment
      Src: /src/pacemaker/lib/common/xml_comment.c:36,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/lib/common/xml_comment.c:37,1
    - Dst: pcmk__xml_new_private_data
      Src: /src/pacemaker/lib/common/xml_comment.c:38,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - doc
    - content
    argTypes:
    - xmlDoc*
    - char*
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: pcmk__xc_create
    functionSourceFile: /src/pacemaker/lib/common/xml_comment.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - xmlNewDocComment
    - pcmk__xml_new_private_data
    - pcmk__mem_assert
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__xc_create(xmlDoc *doc, const char *content) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml_comment.c:74,1
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/xml_comment.c:76,1
    - Dst: pcmk__xc_matches
      Src: /src/pacemaker/lib/common/xml_comment.c:83,1
    - Dst: pcmk__xml_next
      Src: /src/pacemaker/lib/common/xml_comment.c:77,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - parent
    - search
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 89
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 89
    functionName: match_xc_child
    functionSourceFile: /src/pacemaker/lib/common/xml_comment.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__xml_first_child
    - pcmk__xml_next
    - pcmk__xc_matches
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *match_xc_child(const xmlNode *parent, const xmlNode
      *search) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml_comment.c:55,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/xml_comment.c:58,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - comment1
    - comment2
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: pcmk__xc_matches
    functionSourceFile: /src/pacemaker/lib/common/xml_comment.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__str_eq
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__xc_matches(const xmlNode *comment1, const xmlNode *comment2) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_comment.c:105,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_comment.c:106,1
    - Dst: match_xc_child
      Src: /src/pacemaker/lib/common/xml_comment.c:109,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/common/xml_comment.c:113,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/xml_comment.c:115,1
    - Dst: xmlFree
      Src: /src/pacemaker/lib/common/xml_comment.c:116,1
    - Dst: xmlStrdup
      Src: /src/pacemaker/lib/common/xml_comment.c:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - parent
    - target
    - update
    argTypes:
    - xmlNode*
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 119
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 119
    functionName: pcmk__xc_update
    functionSourceFile: /src/pacemaker/lib/common/xml_comment.c
    functionUses: []
    functionsReached:
    - xmlFree
    - match_xc_child
    - CRM_CHECK
    - pcmk__xml_copy
    - pcmk__str_eq
    - xmlStrdup
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xc_update(xmlNode *parent, xmlNode *target, xmlNode *update) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/common/io.c:44,1
    - Dst: mkdir
      Src: /src/pacemaker/lib/common/io.c:50,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/io.c:46,1
    - Dst: strlen
      Src: /src/pacemaker/lib/common/io.c:47,1
    - Dst: mkdir
      Src: /src/pacemaker/lib/common/io.c:57,1
    - Dst: free
      Src: /src/pacemaker/lib/common/io.c:61,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - path_c
    - mode
    argTypes:
    - char*
    - mode_t
    constantsTouched: []
    func_position:
      end: 63
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 63
    functionName: pcmk__build_path
    functionSourceFile: /src/pacemaker/lib/common/io.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - mkdir
    - free
    - strdup
    - strlen
    linkageType: ''
    returnType: int
    signature: 'int pcmk__build_path(const char *path_c, mode_t mode) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/io.c:144,1
    - Dst: strerror
      Src: /src/pacemaker/lib/common/io.c:149,1
    - Dst: free
      Src: /src/pacemaker/lib/common/io.c:150,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/io.c:148,1
    - Dst: fopen
      Src: /src/pacemaker/lib/common/io.c:145,1
    - Dst: fscanf
      Src: /src/pacemaker/lib/common/io.c:154,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/io.c:156,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/io.c:157,1
    - Dst: fclose
      Src: /src/pacemaker/lib/common/io.c:158,1
    - Dst: fclose
      Src: /src/pacemaker/lib/common/io.c:161,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/io.c:162,1
    - Dst: free
      Src: /src/pacemaker/lib/common/io.c:164,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - directory
    - series
    - seq
    argTypes:
    - char*
    - char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 166
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 166
    functionName: pcmk__read_series_sequence
    functionSourceFile: /src/pacemaker/lib/common/io.c
    functionUses: []
    functionsReached:
    - crm_debug
    - fclose
    - fopen
    - crm_strdup_printf
    - strerror
    - free
    - fscanf
    - pcmk_rc_str
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int pcmk__read_series_sequence(const char *directory, const char *series,
      unsigned int *seq) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/io.c:117,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/io.c:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 4
    argNames:
    - directory
    - series
    - sequence
    - bzip
    argTypes:
    - char*
    - char*
    - unsigned int
    - bool
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: pcmk__series_filename
    functionSourceFile: /src/pacemaker/lib/common/io.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__series_filename(const char *directory, const char *series,
      unsigned int sequence, bool bzip) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/io.c:240,1
    - Dst: chown
      Src: /src/pacemaker/lib/common/io.c:241,1
    - Dst: free
      Src: /src/pacemaker/lib/common/io.c:244,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 4
    argNames:
    - directory
    - series
    - uid
    - gid
    argTypes:
    - char*
    - char*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 246
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 246
    functionName: pcmk__chown_series_sequence
    functionSourceFile: /src/pacemaker/lib/common/io.c
    functionUses: []
    functionsReached:
    - chown
    - free
    - crm_strdup_printf
    linkageType: ''
    returnType: int
    signature: 'int pcmk__chown_series_sequence(const char *directory, const char
      *series, uid_t uid, gid_t gid) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getgrnam
      Src: /src/pacemaker/lib/common/io.c:282,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/io.c:297,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/io.c:285,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/io.c:290,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/io.c:284,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - target_name
    - target_stat
    argTypes:
    - char*
    - struct stat*
    constantsTouched: []
    func_position:
      end: 304
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 304
    functionName: pcmk__daemon_group_can_write
    functionSourceFile: /src/pacemaker/lib/common/io.c
    functionUses: []
    functionsReached:
    - crm_notice
    - getgrnam
    - pcmk_rc_str
    linkageType: ''
    returnType: bool
    signature: 'static bool pcmk__daemon_group_can_write(const char *target_name,
      struct stat *target_stat) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/pacemaker/lib/common/io.c:394,1
    - Dst: fsync
      Src: /src/pacemaker/lib/common/io.c:406,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/common/io.c:396,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/common/io.c:402,1
    - Dst: dirfd
      Src: /src/pacemaker/lib/common/io.c:400,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/common/io.c:407,1
    - Dst: closedir
      Src: /src/pacemaker/lib/common/io.c:409,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/common/io.c:410,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 412
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 412
    functionName: pcmk__sync_directory
    functionSourceFile: /src/pacemaker/lib/common/io.c
    functionUses: []
    functionsReached:
    - dirfd
    - crm_perror
    - fsync
    - opendir
    - closedir
    linkageType: ''
    returnType: void
    signature: 'void pcmk__sync_directory(const char *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/pacemaker/lib/common/io.c:519,1
    - Dst: fcntl
      Src: /src/pacemaker/lib/common/io.c:524,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 528
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 528
    functionName: pcmk__set_nonblocking
    functionSourceFile: /src/pacemaker/lib/common/io.c
    functionUses: []
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: int
    signature: 'int pcmk__set_nonblocking(int fd) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getrlimit
      Src: /src/pacemaker/lib/common/io.c:568,1
    - Dst: opendir
      Src: /src/pacemaker/lib/common/io.c:582,1
    - Dst: sysconf
      Src: /src/pacemaker/lib/common/io.c:571,1
    - Dst: pcmk__procfs_fd_dir
      Src: /src/pacemaker/lib/common/io.c:580,1
    - Dst: dirfd
      Src: /src/pacemaker/lib/common/io.c:587,1
    - Dst: readdir
      Src: /src/pacemaker/lib/common/io.c:589,1
    - Dst: atoi
      Src: /src/pacemaker/lib/common/io.c:590,1
    - Dst: close
      Src: /src/pacemaker/lib/common/io.c:599,1
    - Dst: closedir
      Src: /src/pacemaker/lib/common/io.c:602,1
    - Dst: close
      Src: /src/pacemaker/lib/common/io.c:610,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 1
    argNames:
    - all
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 612
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 612
    functionName: pcmk__close_fds_in_child
    functionSourceFile: /src/pacemaker/lib/common/io.c
    functionUses: []
    functionsReached:
    - sysconf
    - atoi
    - dirfd
    - getrlimit
    - readdir
    - opendir
    - closedir
    - pcmk__procfs_fd_dir
    - close
    linkageType: ''
    returnType: void
    signature: 'void pcmk__close_fds_in_child(bool all) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getpwnam
      Src: /src/pacemaker/lib/common/io.c:254,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/io.c:257,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/io.c:261,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/io.c:267,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/io.c:256,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - target_name
    - target_stat
    argTypes:
    - char*
    - struct stat*
    constantsTouched: []
    func_position:
      end: 274
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 274
    functionName: pcmk__daemon_user_can_write
    functionSourceFile: /src/pacemaker/lib/common/io.c
    functionUses: []
    functionsReached:
    - crm_notice
    - getpwnam
    - pcmk_rc_str
    linkageType: ''
    returnType: bool
    signature: 'static bool pcmk__daemon_user_can_write(const char *target_name, struct
      stat *target_stat) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/io.c:625,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/io.c:631,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/io.c:630,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/io.c:628,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - filename
    - dirname
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 632
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 632
    functionName: pcmk__full_path
    functionSourceFile: /src/pacemaker/lib/common/io.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__str_copy
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__full_path(const char *filename, const char *dirname) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/io.c:80,1
    - Dst: realpath
      Src: /src/pacemaker/lib/common/io.c:84,1
    - Dst: malloc
      Src: /src/pacemaker/lib/common/io.c:90,1
    - Dst: realpath
      Src: /src/pacemaker/lib/common/io.c:91,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - path
    - resolved_path
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 99
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 99
    functionName: pcmk__real_path
    functionSourceFile: /src/pacemaker/lib/common/io.c
    functionUses: []
    functionsReached:
    - malloc
    - CRM_CHECK
    - realpath
    linkageType: ''
    returnType: int
    signature: 'int pcmk__real_path(const char *path, char **resolved_path) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/io.c:187,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/io.c:197,1
    - Dst: fopen
      Src: /src/pacemaker/lib/common/io.c:198,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/io.c:200,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/io.c:188,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/common/io.c:202,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/io.c:206,1
    - Dst: fflush
      Src: /src/pacemaker/lib/common/io.c:210,1
    - Dst: fclose
      Src: /src/pacemaker/lib/common/io.c:211,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/io.c:214,1
    - Dst: free
      Src: /src/pacemaker/lib/common/io.c:215,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - directory
    - series
    - sequence
    - max
    argTypes:
    - char*
    - char*
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 216
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 216
    functionName: pcmk__write_series_sequence
    functionSourceFile: /src/pacemaker/lib/common/io.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - fclose
    - crm_trace
    - fopen
    - crm_perror
    - crm_strdup_printf
    - free
    - fflush
    - fprintf
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void pcmk__write_series_sequence(const char *directory, const char
      *series, unsigned int sequence, int max) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/io.c:339,1
    - Dst: free
      Src: /src/pacemaker/lib/common/io.c:346,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/io.c:360,1
    - Dst: free
      Src: /src/pacemaker/lib/common/io.c:377,1
    - Dst: pcmk__daemon_user_can_write
      Src: /src/pacemaker/lib/common/io.c:366,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/io.c:329,1
    - Dst: stat
      Src: /src/pacemaker/lib/common/io.c:336,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/io.c:338,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/io.c:338,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/io.c:333,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/io.c:344,1
    - Dst: free
      Src: /src/pacemaker/lib/common/io.c:373,1
    - Dst: S_ISREG
      Src: /src/pacemaker/lib/common/io.c:343,1
    - Dst: stat
      Src: /src/pacemaker/lib/common/io.c:354,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/io.c:356,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/io.c:369,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/io.c:356,1
    - Dst: pcmk__daemon_group_can_write
      Src: /src/pacemaker/lib/common/io.c:367,1
    - Dst: S_ISDIR
      Src: /src/pacemaker/lib/common/io.c:359,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - dir
    - file
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 379
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 379
    functionName: pcmk__daemon_can_write
    functionSourceFile: /src/pacemaker/lib/common/io.c
    functionUses: []
    functionsReached:
    - pcmk__daemon_user_can_write
    - crm_strdup_printf
    - stat
    - S_ISDIR
    - crm_notice
    - pcmk__daemon_group_can_write
    - free
    - pcmk_rc_str
    - pcmk__assert
    - S_ISREG
    - crm_err
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__daemon_can_write(const char *dir, const char *file) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/pacemaker/lib/common/io.c:435,1
    - Dst: rewind
      Src: /src/pacemaker/lib/common/io.c:455,1
    - Dst: calloc
      Src: /src/pacemaker/lib/common/io.c:450,1
    - Dst: fseek
      Src: /src/pacemaker/lib/common/io.c:436,1
    - Dst: ftell
      Src: /src/pacemaker/lib/common/io.c:441,1
    - Dst: fread
      Src: /src/pacemaker/lib/common/io.c:457,1
    - Dst: free
      Src: /src/pacemaker/lib/common/io.c:459,1
    - Dst: fclose
      Src: /src/pacemaker/lib/common/io.c:472,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 2
    argNames:
    - filename
    - contents
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 475
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 475
    functionName: pcmk__file_contents
    functionSourceFile: /src/pacemaker/lib/common/io.c
    functionUses: []
    functionsReached:
    - fclose
    - fopen
    - calloc
    - ftell
    - free
    - fread
    - rewind
    - fseek
    linkageType: ''
    returnType: int
    signature: 'int pcmk__file_contents(const char *filename, char **contents) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fdopen
      Src: /src/pacemaker/lib/common/io.c:490,1
    - Dst: fflush
      Src: /src/pacemaker/lib/common/io.c:498,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/io.c:495,1
    - Dst: fileno
      Src: /src/pacemaker/lib/common/io.c:501,1
    - Dst: fsync
      Src: /src/pacemaker/lib/common/io.c:501,1
    - Dst: fclose
      Src: /src/pacemaker/lib/common/io.c:504,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - fd
    - contents
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 506
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 506
    functionName: pcmk__write_sync
    functionSourceFile: /src/pacemaker/lib/common/io.c
    functionUses: []
    functionsReached:
    - fclose
    - fileno
    - fsync
    - fdopen
    - fflush
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int pcmk__write_sync(int fd, const char *contents) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/pacemaker/lib/common/io.c:542,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 545
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 545
    functionName: pcmk__get_tmpdir
    functionSourceFile: /src/pacemaker/lib/common/io.c
    functionUses: []
    functionsReached:
    - getenv
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__get_tmpdir(void) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:513,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/iso8601.c:510,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/common/iso8601.c:514,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:517,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/common/iso8601.c:518,1
    - Dst: sec_usec_as_string
      Src: /src/pacemaker/lib/common/iso8601.c:528,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:557,1
    - Dst: crm_time_get_sec
      Src: /src/pacemaker/lib/common/iso8601.c:545,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:533,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/common/iso8601.c:534,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:573,1
    - Dst: QB_ABS
      Src: /src/pacemaker/lib/common/iso8601.c:542,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/common/iso8601.c:552,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:548,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/common/iso8601.c:558,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:569,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/common/iso8601.c:570,1
    - Dst: valid_sec_usec
      Src: /src/pacemaker/lib/common/iso8601.c:510,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:521,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/common/iso8601.c:522,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:530,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:551,1
    - Dst: QB_ABS
      Src: /src/pacemaker/lib/common/iso8601.c:538,1
    - Dst: sec_usec_as_string
      Src: /src/pacemaker/lib/common/iso8601.c:564,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:566,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 85
    argCount: 4
    argNames:
    - dt
    - usec
    - show_usec
    - result
    argTypes:
    - crm_time_t*
    - int
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 575
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 575
    functionName: crm_duration_as_string
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - sec_usec_as_string
    - pcmk__plural_s
    - QB_ABS
    - crm_time_get_sec
    - pcmk__assert
    - valid_sec_usec
    - snprintf
    linkageType: ''
    returnType: void
    signature: 'static void crm_duration_as_string(const crm_time_t *dt, int usec,
      bool show_usec, char *result) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tzset
      Src: /src/pacemaker/lib/common/iso8601.c:847,1
    - Dst: isspace
      Src: /src/pacemaker/lib/common/iso8601.c:857,1
    - Dst: strstr
      Src: /src/pacemaker/lib/common/iso8601.c:855,1
    - Dst: strstr
      Src: /src/pacemaker/lib/common/iso8601.c:853,1
    - Dst: crm_time_parse_sec
      Src: /src/pacemaker/lib/common/iso8601.c:850,1
    - Dst: crm_time_parse_offset
      Src: /src/pacemaker/lib/common/iso8601.c:864,1
    - Dst: crm_time_get_sec
      Src: /src/pacemaker/lib/common/iso8601.c:867,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:868,1
    - Dst: crm_time_add_days
      Src: /src/pacemaker/lib/common/iso8601.c:874,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - time_str
    - a_time
    argTypes:
    - char*
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 877
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 877
    functionName: crm_time_parse
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_parse_sec
    - isspace
    - tzset
    - crm_time_get_sec
    - crm_time_parse_offset
    - strstr
    - crm_trace
    - crm_time_add_days
    linkageType: ''
    returnType: bool
    signature: 'static bool crm_time_parse(const char *time_str, crm_time_t *a_time) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_add_years
      Src: /src/pacemaker/lib/common/iso8601.c:1418,1
    - Dst: GMTOFF
      Src: /src/pacemaker/lib/common/iso8601.c:1440,1
    - Dst: GMTOFF
      Src: /src/pacemaker/lib/common/iso8601.c:1438,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:1439,1
    - Dst: GMTOFF
      Src: /src/pacemaker/lib/common/iso8601.c:1437,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - target
    - source
    argTypes:
    - crm_time_t*
    - struct tm*
    constantsTouched: []
    func_position:
      end: 1444
      start: 1401
    functionDepth: 0
    functionLinenumber: 1401
    functionLinenumberEnd: 1444
    functionName: ha_set_tm_time
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - GMTOFF
    - crm_trace
    - crm_time_add_years
    linkageType: ''
    returnType: void
    signature: 'static void ha_set_tm_time(crm_time_t *target, const struct tm *source) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_is_defined
      Src: /src/pacemaker/lib/common/iso8601.c:1463,1
    - Dst: crm_time_set
      Src: /src/pacemaker/lib/common/iso8601.c:1465,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/iso8601.c:1464,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - target
    - source
    argTypes:
    - crm_time_t*
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 1467
      start: 1459
    functionDepth: 0
    functionLinenumber: 1459
    functionLinenumberEnd: 1467
    functionName: pcmk__set_time_if_earlier
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_set
    - crm_time_compare
    - crm_time_is_defined
    linkageType: ''
    returnType: void
    signature: 'void pcmk__set_time_if_earlier(crm_time_t *target, const crm_time_t
      *source) '
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 2
    argCount: 1
    argNames:
    - component
    argTypes:
    - enum pcmk__time_component
    constantsTouched: []
    func_position:
      end: 1560
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1560
    functionName: pcmk__time_component_attr
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__time_component_attr(enum pcmk__time_component component) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/iso8601.c:1937,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - target
    - dt
    argTypes:
    - pcmk__time_hr_t*
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 1951
      start: 1929
    functionDepth: 0
    functionLinenumber: 1929
    functionLinenumberEnd: 1951
    functionName: pcmk__time_hr_convert
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - pcmk__assert_alloc
    linkageType: ''
    returnType: pcmk__time_hr_t*
    signature: 'pcmk__time_hr_t *pcmk__time_hr_convert(pcmk__time_hr_t *target, const
      crm_time_t *dt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_set_tm_time
      Src: /src/pacemaker/lib/common/iso8601.c:1449,1
    - Dst: localtime
      Src: /src/pacemaker/lib/common/iso8601.c:1449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - target
    - source
    argTypes:
    - crm_time_t*
    - time_t*
    constantsTouched: []
    func_position:
      end: 1450
      start: 1446
    functionDepth: 0
    functionLinenumber: 1446
    functionLinenumberEnd: 1450
    functionName: crm_time_set_timet
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - localtime
    - ha_set_tm_time
    linkageType: ''
    returnType: void
    signature: 'void crm_time_set_timet(crm_time_t *target, const time_t *source) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new_undefined
      Src: /src/pacemaker/lib/common/iso8601.c:1472,1
    - Dst: crm_time_set
      Src: /src/pacemaker/lib/common/iso8601.c:1474,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 1476
      start: 1469
    functionDepth: 0
    functionLinenumber: 1469
    functionLinenumberEnd: 1476
    functionName: pcmk_copy_time
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_set
    - crm_time_new_undefined
    linkageType: ''
    returnType: crm_time_t*
    signature: 'crm_time_t *pcmk_copy_time(const crm_time_t *source) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/iso8601.c:1956,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - target
    - hr_dt
    argTypes:
    - crm_time_t*
    - pcmk__time_hr_t*
    constantsTouched: []
    func_position:
      end: 1965
      start: 1953
    functionDepth: 0
    functionLinenumber: 1953
    functionLinenumberEnd: 1965
    functionName: pcmk__time_set_hr_dt
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'void pcmk__time_set_hr_dt(crm_time_t *target, const pcmk__time_hr_t
      *hr_dt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: crm_time_is_defined
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool crm_time_is_defined(const crm_time_t *t) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tzset
      Src: /src/pacemaker/lib/common/iso8601.c:786,1
    - Dst: localtime
      Src: /src/pacemaker/lib/common/iso8601.c:792,1
    - Dst: GMTOFF
      Src: /src/pacemaker/lib/common/iso8601.c:795,1
    - Dst: GMTOFF
      Src: /src/pacemaker/lib/common/iso8601.c:794,1
    - Dst: time
      Src: /src/pacemaker/lib/common/iso8601.c:791,1
    - Dst: isdigit
      Src: /src/pacemaker/lib/common/iso8601.c:811,1
    - Dst: crm_time_parse_sec
      Src: /src/pacemaker/lib/common/iso8601.c:821,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 2
    argNames:
    - offset_str
    - offset
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 829
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 829
    functionName: crm_time_parse_offset
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - localtime
    - crm_time_parse_sec
    - GMTOFF
    - tzset
    - time
    - isdigit
    linkageType: ''
    returnType: bool
    signature: 'static bool crm_time_parse_offset(const char *offset_str, int *offset) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:184,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - year
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 187
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 187
    functionName: crm_time_january1_weekday
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int crm_time_january1_weekday(int year) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_leapyear
      Src: /src/pacemaker/lib/common/iso8601.c:228,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - month
    - year
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 232
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 232
    functionName: crm_time_days_in_month
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_leapyear
    linkageType: ''
    returnType: int
    signature: 'int crm_time_days_in_month(int month, int year) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - year
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 246
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 246
    functionName: crm_time_leapyear
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool crm_time_leapyear(int year) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_as_string
      Src: /src/pacemaker/lib/common/iso8601.c:279,1
    - Dst: do_crm_log_alias
      Src: /src/pacemaker/lib/common/iso8601.c:285,1
    - Dst: free
      Src: /src/pacemaker/lib/common/iso8601.c:288,1
    - Dst: printf
      Src: /src/pacemaker/lib/common/iso8601.c:282,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 7
    argNames:
    - log_level
    - file
    - function
    - line
    - prefix
    - date_time
    - flags
    argTypes:
    - int
    - char*
    - char*
    - int
    - char*
    - crm_time_t*
    - int
    constantsTouched: []
    func_position:
      end: 289
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 289
    functionName: crm_time_log_alias
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - free
    - do_crm_log_alias
    - crm_time_as_string
    - printf
    linkageType: ''
    returnType: void
    signature: 'void crm_time_log_alias(int log_level, const char *file, const char
      *function, int line, const char *prefix, const crm_time_t *date_time, int flags) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/iso8601.c:901,1
    - Dst: strlen
      Src: /src/pacemaker/lib/common/iso8601.c:907,1
    - Dst: isspace
      Src: /src/pacemaker/lib/common/iso8601.c:923,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/iso8601.c:931,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/iso8601.c:935,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:951,1
    - Dst: get_ordinal_days
      Src: /src/pacemaker/lib/common/iso8601.c:957,1
    - Dst: year_days
      Src: /src/pacemaker/lib/common/iso8601.c:972,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:973,1
    - Dst: year_days
      Src: /src/pacemaker/lib/common/iso8601.c:976,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1052,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/iso8601.c:1059,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/iso8601.c:909,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:968,1
    - Dst: crm_time_days_in_month
      Src: /src/pacemaker/lib/common/iso8601.c:950,1
    - Dst: crm_time_add_days
      Src: /src/pacemaker/lib/common/iso8601.c:1028,1
    - Dst: crm_time_parse
      Src: /src/pacemaker/lib/common/iso8601.c:1046,1
    - Dst: crm_time_add_days
      Src: /src/pacemaker/lib/common/iso8601.c:1020,1
    - Dst: crm_time_weeks_in_year
      Src: /src/pacemaker/lib/common/iso8601.c:994,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:991,1
    - Dst: strncasecmp
      Src: /src/pacemaker/lib/common/iso8601.c:920,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/iso8601.c:965,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:940,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:958,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:945,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:997,1
    - Dst: crm_time_january1_weekday
      Src: /src/pacemaker/lib/common/iso8601.c:1013,1
    - Dst: crm_time_add_days
      Src: /src/pacemaker/lib/common/iso8601.c:1023,1
    - Dst: strspn
      Src: /src/pacemaker/lib/common/iso8601.c:1039,1
    - Dst: crm_time_log
      Src: /src/pacemaker/lib/common/iso8601.c:1050,1
    - Dst: crm_time_new_undefined
      Src: /src/pacemaker/lib/common/iso8601.c:918,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:902,1
    - Dst: crm_time_log
      Src: /src/pacemaker/lib/common/iso8601.c:926,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:979,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/iso8601.c:987,1
    - Dst: crm_time_add_days
      Src: /src/pacemaker/lib/common/iso8601.c:1025,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1033,1
    - Dst: crm_time_check
      Src: /src/pacemaker/lib/common/iso8601.c:1051,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:1015,1
    - Dst: crm_time_weeks_in_year
      Src: /src/pacemaker/lib/common/iso8601.c:990,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 142
    argCount: 1
    argNames:
    - date_str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1062
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 1062
    functionName: parse_date
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - isspace
    - pcmk__str_empty
    - crm_time_check
    - year_days
    - crm_time_free
    - crm_time_weeks_in_year
    - crm_err
    - crm_time_add_days
    - get_ordinal_days
    - crm_time_days_in_month
    - crm_time_january1_weekday
    - crm_time_new
    - crm_trace
    - sscanf
    - strspn
    - crm_time_log
    - crm_time_new_undefined
    - crm_time_parse
    - strncasecmp
    - strlen
    linkageType: ''
    returnType: crm_time_t*
    signature: 'static crm_time_t *parse_date(const char *date_str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/iso8601.c:1375,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/iso8601.c:1376,1
    - Dst: free
      Src: /src/pacemaker/lib/common/iso8601.c:1378,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/iso8601.c:1377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - period
    argTypes:
    - crm_time_period_t*
    constantsTouched: []
    func_position:
      end: 1380
      start: 1371
    functionDepth: 0
    functionLinenumber: 1371
    functionLinenumberEnd: 1380
    functionName: crm_time_free_period
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - free
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'void crm_time_free_period(crm_time_period_t *period) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new_undefined
      Src: /src/pacemaker/lib/common/iso8601.c:1489,1
    - Dst: crm_time_set_timet
      Src: /src/pacemaker/lib/common/iso8601.c:1491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - time_t
    constantsTouched: []
    func_position:
      end: 1493
      start: 1486
    functionDepth: 0
    functionLinenumber: 1486
    functionLinenumberEnd: 1493
    functionName: pcmk__copy_timet
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_set_timet
    - crm_time_new_undefined
    linkageType: ''
    returnType: crm_time_t*
    signature: 'crm_time_t *pcmk__copy_timet(time_t source) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__time_component_attr
      Src: /src/pacemaker/lib/common/iso8601.c:1618,1
    - Dst: add
      Src: /src/pacemaker/lib/common/iso8601.c:1639,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/iso8601.c:1629,1
    - Dst: component_fn
      Src: /src/pacemaker/lib/common/iso8601.c:1619,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/iso8601.c:1629,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 3
    argNames:
    - t
    - component
    - xml
    argTypes:
    - crm_time_t*
    - enum pcmk__time_component
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1642
      start: 1613
    functionDepth: 0
    functionLinenumber: 1613
    functionLinenumberEnd: 1642
    functionName: pcmk__add_time_from_xml
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - component_fn
    - add
    - pcmk__time_component_attr
    - pcmk__scan_ll
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'int pcmk__add_time_from_xml(crm_time_t *t, enum pcmk__time_component
      component, const xmlNode *xml) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_january1_weekday
      Src: /src/pacemaker/lib/common/iso8601.c:193,1
    - Dst: crm_time_january1_weekday
      Src: /src/pacemaker/lib/common/iso8601.c:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - year
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 207
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 207
    functionName: crm_time_weeks_in_year
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_january1_weekday
    linkageType: ''
    returnType: int
    signature: 'int crm_time_weeks_in_year(int year) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QB_ABS
      Src: /src/pacemaker/lib/common/iso8601.c:296,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - sec
    - h
    - m
    - s
    argTypes:
    - int
    - uint32_t*
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 310
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 310
    functionName: crm_time_get_sec
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - QB_ABS
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void crm_time_get_sec(int sec, uint32_t *h, uint32_t *m, uint32_t
      *s) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:1385,1
    - Dst: crm_time_log
      Src: /src/pacemaker/lib/common/iso8601.c:1397,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/iso8601.c:1387,1
    - Dst: crm_time_log
      Src: /src/pacemaker/lib/common/iso8601.c:1395,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - target
    - source
    argTypes:
    - crm_time_t*
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 1399
      start: 1382
    functionDepth: 0
    functionLinenumber: 1382
    functionLinenumberEnd: 1399
    functionName: crm_time_set
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_log
    - CRM_CHECK
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void crm_time_set(crm_time_t *target, const crm_time_t *source) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_copy_time
      Src: /src/pacemaker/lib/common/iso8601.c:1506,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/iso8601.c:1510,1
    - Dst: crm_time_add_years
      Src: /src/pacemaker/lib/common/iso8601.c:1514,1
    - Dst: crm_time_add_months
      Src: /src/pacemaker/lib/common/iso8601.c:1515,1
    - Dst: crm_get_utc_time
      Src: /src/pacemaker/lib/common/iso8601.c:1508,1
    - Dst: crm_time_add_days
      Src: /src/pacemaker/lib/common/iso8601.c:1516,1
    - Dst: crm_time_add_seconds
      Src: /src/pacemaker/lib/common/iso8601.c:1517,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/iso8601.c:1519,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - dt
    - value
    argTypes:
    - crm_time_t*
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 1521
      start: 1495
    functionDepth: 0
    functionLinenumber: 1495
    functionLinenumberEnd: 1521
    functionName: crm_time_add
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_add_months
    - crm_time_add_years
    - crm_time_add_seconds
    - crm_get_utc_time
    - pcmk_copy_time
    - crm_time_free
    - crm_time_add_days
    linkageType: ''
    returnType: crm_time_t*
    signature: 'crm_time_t *crm_time_add(const crm_time_t *dt, const crm_time_t *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_add_days
      Src: /src/pacemaker/lib/common/iso8601.c:1886,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - a_time
    - extra
    argTypes:
    - crm_time_t*
    - int
    constantsTouched: []
    func_position:
      end: 1887
      start: 1883
    functionDepth: 0
    functionLinenumber: 1883
    functionLinenumberEnd: 1887
    functionName: crm_time_add_weeks
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_add_days
    linkageType: ''
    returnType: void
    signature: 'void crm_time_add_weeks(crm_time_t * a_time, int extra) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__time_hr_now
      Src: /src/pacemaker/lib/common/iso8601.c:2000,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/iso8601.c:2006,1
    - Dst: parse_date
      Src: /src/pacemaker/lib/common/iso8601.c:2004,1
    - Dst: pcmk__time_hr_convert
      Src: /src/pacemaker/lib/common/iso8601.c:2005,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - date_time
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2009
      start: 1994
    functionDepth: 0
    functionLinenumber: 1994
    functionLinenumberEnd: 2009
    functionName: pcmk__time_hr_new
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - pcmk__time_hr_convert
    - parse_date
    - crm_time_free
    - pcmk__time_hr_now
    linkageType: ''
    returnType: pcmk__time_hr_t*
    signature: 'pcmk__time_hr_t *pcmk__time_hr_new(const char *date_time) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_is_defined
      Src: /src/pacemaker/lib/common/iso8601.c:595,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/iso8601.c:600,1
    - Dst: strcpy
      Src: /src/pacemaker/lib/common/iso8601.c:596,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/iso8601.c:638,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/iso8601.c:621,1
    - Dst: crm_time_get_ordinal
      Src: /src/pacemaker/lib/common/iso8601.c:654,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:655,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:665,1
    - Dst: crm_time_get_sec
      Src: /src/pacemaker/lib/common/iso8601.c:692,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:693,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/iso8601.c:607,1
    - Dst: crm_time_get_seconds_since_epoch
      Src: /src/pacemaker/lib/common/iso8601.c:618,1
    - Dst: crm_get_utc_time
      Src: /src/pacemaker/lib/common/iso8601.c:632,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:645,1
    - Dst: crm_time_get_gregorian
      Src: /src/pacemaker/lib/common/iso8601.c:664,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/iso8601.c:672,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:676,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/iso8601.c:684,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:685,1
    - Dst: QB_ABS
      Src: /src/pacemaker/lib/common/iso8601.c:686,1
    - Dst: valid_sec_usec
      Src: /src/pacemaker/lib/common/iso8601.c:600,1
    - Dst: crm_duration_as_string
      Src: /src/pacemaker/lib/common/iso8601.c:607,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/iso8601.c:639,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:624,1
    - Dst: sec_usec_as_string
      Src: /src/pacemaker/lib/common/iso8601.c:622,1
    - Dst: crm_time_get_isoweek
      Src: /src/pacemaker/lib/common/iso8601.c:644,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/iso8601.c:650,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:680,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/iso8601.c:690,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/iso8601.c:701,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/iso8601.c:606,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/common/iso8601.c:612,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/iso8601.c:615,1
    - Dst: crm_time_get_seconds
      Src: /src/pacemaker/lib/common/iso8601.c:616,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:631,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/iso8601.c:630,1
    - Dst: crm_time_get_timeofday
      Src: /src/pacemaker/lib/common/iso8601.c:679,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:697,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 97
    argCount: 4
    argNames:
    - dt
    - usec
    - flags
    - result
    argTypes:
    - crm_time_t*
    - int
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 702
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 702
    functionName: time_as_string_common
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_get_gregorian
    - crm_get_utc_time
    - QB_ABS
    - crm_time_is_defined
    - crm_time_free
    - sec_usec_as_string
    - crm_duration_as_string
    - strcpy
    - pcmk_is_set
    - pcmk__assert
    - snprintf
    - pcmk_any_flags_set
    - crm_time_get_seconds_since_epoch
    - crm_time_get_isoweek
    - crm_time_get_sec
    - valid_sec_usec
    - crm_trace
    - crm_time_get_timeofday
    - crm_time_get_seconds
    - crm_time_get_ordinal
    linkageType: ''
    returnType: void
    signature: 'static void time_as_string_common(const crm_time_t *dt, int usec,
      uint32_t flags, char *result) '
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 2
    argCount: 1
    argNames:
    - component
    argTypes:
    - enum pcmk__time_component
    constantsTouched: []
    func_position:
      end: 1601
      start: 1572
    functionDepth: 0
    functionLinenumber: 1572
    functionLinenumberEnd: 1601
    functionName: component_fn
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: component_fn_t
    signature: 'static component_fn_t component_fn(enum pcmk__time_component component) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_get_utc_time
      Src: /src/pacemaker/lib/common/iso8601.c:1738,1
    - Dst: do_cmp_field
      Src: /src/pacemaker/lib/common/iso8601.c:1748,1
    - Dst: do_cmp_field
      Src: /src/pacemaker/lib/common/iso8601.c:1749,1
    - Dst: do_cmp_field
      Src: /src/pacemaker/lib/common/iso8601.c:1750,1
    - Dst: crm_get_utc_time
      Src: /src/pacemaker/lib/common/iso8601.c:1739,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/iso8601.c:1753,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/iso8601.c:1754,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - crm_time_t*
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 1756
      start: 1734
    functionDepth: 0
    functionLinenumber: 1734
    functionLinenumberEnd: 1756
    functionName: crm_time_compare
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_get_utc_time
    - do_cmp_field
    - crm_time_free
    linkageType: ''
    returnType: int
    signature: 'int crm_time_compare(const crm_time_t *a, const crm_time_t *b) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_add_seconds
      Src: /src/pacemaker/lib/common/iso8601.c:1880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - a_time
    - extra
    argTypes:
    - crm_time_t*
    - int
    constantsTouched: []
    func_position:
      end: 1881
      start: 1877
    functionDepth: 0
    functionLinenumber: 1877
    functionLinenumberEnd: 1881
    functionName: crm_time_add_hours
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_add_seconds
    linkageType: ''
    returnType: void
    signature: 'void crm_time_add_hours(crm_time_t * a_time, int extra) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/iso8601.c:2014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - hr_dt
    argTypes:
    - pcmk__time_hr_t*
    constantsTouched: []
    func_position:
      end: 2015
      start: 2011
    functionDepth: 0
    functionLinenumber: 2011
    functionLinenumberEnd: 2015
    functionName: pcmk__time_hr_free
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void pcmk__time_hr_free(pcmk__time_hr_t * hr_dt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/iso8601.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - dt
    argTypes:
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: crm_time_free
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void crm_time_free(crm_time_t * dt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_get_sec
      Src: /src/pacemaker/lib/common/iso8601.c:316,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - dt
    - h
    - m
    - s
    argTypes:
    - crm_time_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 318
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 318
    functionName: crm_time_get_timeofday
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_get_sec
    linkageType: ''
    returnType: int
    signature: 'int crm_time_get_timeofday(const crm_time_t *dt, uint32_t *h, uint32_t
      *m, uint32_t *s) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 3
    argNames:
    - dt
    - y
    - d
    argTypes:
    - crm_time_t*
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 417
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 417
    functionName: crm_time_get_ordinal
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int crm_time_get_ordinal(const crm_time_t *dt, uint32_t *y, uint32_t
      *d) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time_as_string_common
      Src: /src/pacemaker/lib/common/iso8601.c:717,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/iso8601.c:718,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - dt
    - flags
    argTypes:
    - crm_time_t*
    - int
    constantsTouched: []
    func_position:
      end: 719
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 719
    functionName: crm_time_as_string
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - time_as_string_common
    linkageType: ''
    returnType: char*
    signature: 'char *crm_time_as_string(const crm_time_t *dt, int flags) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: tzset
      Src: /src/pacemaker/lib/common/iso8601.c:1292,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/iso8601.c:1293,1
    - Dst: parse_date
      Src: /src/pacemaker/lib/common/iso8601.c:1301,1
    - Dst: parse_date
      Src: /src/pacemaker/lib/common/iso8601.c:1322,1
    - Dst: crm_time_check
      Src: /src/pacemaker/lib/common/iso8601.c:1347,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/iso8601.c:1287,1
    - Dst: strstr
      Src: /src/pacemaker/lib/common/iso8601.c:1307,1
    - Dst: crm_time_add
      Src: /src/pacemaker/lib/common/iso8601.c:1344,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/iso8601.c:1296,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1312,1
    - Dst: crm_time_free_period
      Src: /src/pacemaker/lib/common/iso8601.c:1362,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/iso8601.c:1330,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1353,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1288,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/iso8601.c:1317,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1334,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1348,1
    - Dst: crm_time_check
      Src: /src/pacemaker/lib/common/iso8601.c:1352,1
    - Dst: crm_time_subtract
      Src: /src/pacemaker/lib/common/iso8601.c:1341,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 59
    argCount: 1
    argNames:
    - period_str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1364
      start: 1281
    functionDepth: 0
    functionLinenumber: 1281
    functionLinenumberEnd: 1364
    functionName: crm_time_parse_period
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_parse_duration
    - crm_time_free_period
    - pcmk__str_empty
    - pcmk__assert_alloc
    - crm_time_check
    - tzset
    - crm_time_subtract
    - parse_date
    - strstr
    - crm_time_add
    - crm_err
    - crm_time_new
    linkageType: ''
    returnType: crm_time_period_t*
    signature: 'crm_time_period_t *crm_time_parse_period(const char *period_str) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/iso8601.c:1769,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/common/iso8601.c:1772,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:1771,1
    - Dst: crm_time_add_days
      Src: /src/pacemaker/lib/common/iso8601.c:1786,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - a_time
    - extra
    argTypes:
    - crm_time_t*
    - int
    constantsTouched: []
    func_position:
      end: 1787
      start: 1764
    functionDepth: 0
    functionLinenumber: 1764
    functionLinenumberEnd: 1787
    functionName: crm_time_add_seconds
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__plural_s
    - crm_trace
    - crm_time_add_days
    linkageType: ''
    returnType: void
    signature: 'void crm_time_add_seconds(crm_time_t *a_time, int extra) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/iso8601.c:1892,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - a_time
    - extra
    argTypes:
    - crm_time_t*
    - int
    constantsTouched: []
    func_position:
      end: 1901
      start: 1889
    functionDepth: 0
    functionLinenumber: 1889
    functionLinenumberEnd: 1901
    functionName: crm_time_add_years
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'void crm_time_add_years(crm_time_t * a_time, int extra) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_timespec_from_epoch_get
      Src: /src/pacemaker/lib/common/iso8601.c:1982,1
    - Dst: crm_time_set_timet
      Src: /src/pacemaker/lib/common/iso8601.c:1986,1
    - Dst: pcmk__time_hr_convert
      Src: /src/pacemaker/lib/common/iso8601.c:1987,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - epoch
    argTypes:
    - time_t*
    constantsTouched: []
    func_position:
      end: 1992
      start: 1975
    functionDepth: 0
    functionLinenumber: 1975
    functionLinenumberEnd: 1992
    functionName: pcmk__time_hr_now
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_set_timet
    - pcmk__time_hr_convert
    - qb_util_timespec_from_epoch_get
    linkageType: ''
    returnType: pcmk__time_hr_t*
    signature: 'pcmk__time_hr_t *pcmk__time_hr_now(time_t *epoch) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_leapyear
      Src: /src/pacemaker/lib/common/iso8601.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - year
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: year_days
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_leapyear
    linkageType: ''
    returnType: int
    signature: 'static int year_days(int year) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_get_sec
      Src: /src/pacemaker/lib/common/iso8601.c:325,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - dt
    - h
    - m
    argTypes:
    - crm_time_t*
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 327
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 327
    functionName: crm_time_get_timezone
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_get_sec
    linkageType: ''
    returnType: int
    signature: 'int crm_time_get_timezone(const crm_time_t *dt, uint32_t *h, uint32_t
      *m) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_january1_weekday
      Src: /src/pacemaker/lib/common/iso8601.c:428,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:439,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/iso8601.c:431,1
    - Dst: year_days
      Src: /src/pacemaker/lib/common/iso8601.c:449,1
    - Dst: crm_time_weeks_in_year
      Src: /src/pacemaker/lib/common/iso8601.c:441,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:453,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:470,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 4
    argNames:
    - dt
    - y
    - w
    - d
    argTypes:
    - crm_time_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 473
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 473
    functionName: crm_time_get_isoweek
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_time_january1_weekday
    - year_days
    - crm_time_weeks_in_year
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int crm_time_get_isoweek(const crm_time_t *dt, uint32_t *y, uint32_t
      *w, uint32_t *d) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mktime
      Src: /src/pacemaker/lib/common/iso8601.c:1918,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - target
    - source
    argTypes:
    - struct tm*
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 1919
      start: 1903
    functionDepth: 0
    functionLinenumber: 1903
    functionLinenumberEnd: 1919
    functionName: ha_get_tm_time
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - mktime
    linkageType: ''
    returnType: void
    signature: 'static void ha_get_tm_time(struct tm *target, const crm_time_t *source) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__time_set_hr_dt
      Src: /src/pacemaker/lib/common/iso8601.c:2043,1
    - Dst: sprintf
      Src: /src/pacemaker/lib/common/iso8601.c:2045,1
    - Dst: strchr
      Src: /src/pacemaker/lib/common/iso8601.c:2054,1
    - Dst: strlen
      Src: /src/pacemaker/lib/common/iso8601.c:2058,1
    - Dst: ha_get_tm_time
      Src: /src/pacemaker/lib/common/iso8601.c:2044,1
    - Dst: isdigit
      Src: /src/pacemaker/lib/common/iso8601.c:2066,1
    - Dst: atoi
      Src: /src/pacemaker/lib/common/iso8601.c:2079,1
    - Dst: QB_MAX
      Src: /src/pacemaker/lib/common/iso8601.c:2080,1
    - Dst: QB_MIN
      Src: /src/pacemaker/lib/common/iso8601.c:2081,1
    - Dst: strndup
      Src: /src/pacemaker/lib/common/iso8601.c:2097,1
    - Dst: free
      Src: /src/pacemaker/lib/common/iso8601.c:2107,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/iso8601.c:2129,1
    - Dst: strftime
      Src: /src/pacemaker/lib/common/iso8601.c:2102,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:2119,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    argCount: 2
    argNames:
    - format
    - hr_dt
    argTypes:
    - char*
    - pcmk__time_hr_t*
    constantsTouched: []
    func_position:
      end: 2130
      start: 2027
    functionDepth: 0
    functionLinenumber: 2027
    functionLinenumberEnd: 2130
    functionName: pcmk__time_format_hr
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - sprintf
    - pcmk__time_set_hr_dt
    - atoi
    - strchr
    - strndup
    - snprintf
    - pcmk__str_copy
    - QB_MIN
    - free
    - isdigit
    - strftime
    - ha_get_tm_time
    - QB_MAX
    - strlen
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__time_format_hr(const char *format, const pcmk__time_hr_t
      *hr_dt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/iso8601.c:264,1
    - Dst: crm_time_days_in_month
      Src: /src/pacemaker/lib/common/iso8601.c:269,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 272
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 272
    functionName: get_ordinal_days
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_time_days_in_month
    linkageType: ''
    returnType: int
    signature: 'static int get_ordinal_days(uint32_t y, uint32_t m, uint32_t d) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:490,1
    - Dst: QB_ABS
      Src: /src/pacemaker/lib/common/iso8601.c:492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - sec
    - usec
    - buf
    - offset
    argTypes:
    - long long
    - int
    - char*
    - size_t*
    constantsTouched: []
    func_position:
      end: 493
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 493
    functionName: sec_usec_as_string
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - snprintf
    - QB_ABS
    linkageType: ''
    returnType: void
    signature: 'static inline void sec_usec_as_string(long long sec, int usec, char
      *buf, size_t *offset) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/pacemaker/lib/common/iso8601.c:1094,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 2
    argNames:
    - str
    - result
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 1106
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1106
    functionName: parse_int
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: int
    signature: 'static int parse_int(const char *str, int *result) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1130,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1233,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/iso8601.c:1266,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1257,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/iso8601.c:1125,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1135,1
    - Dst: isspace
      Src: /src/pacemaker/lib/common/iso8601.c:1134,1
    - Dst: parse_int
      Src: /src/pacemaker/lib/common/iso8601.c:1159,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1161,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1220,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1244,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1249,1
    - Dst: crm_time_is_defined
      Src: /src/pacemaker/lib/common/iso8601.c:1256,1
    - Dst: crm_time_new_undefined
      Src: /src/pacemaker/lib/common/iso8601.c:1140,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1179,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1207,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1126,1
    - Dst: isspace
      Src: /src/pacemaker/lib/common/iso8601.c:1143,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:1194,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 103
    argCount: 1
    argNames:
    - period_s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1269
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1269
    functionName: crm_time_parse_duration
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - isspace
    - parse_int
    - pcmk__str_empty
    - crm_time_new_undefined
    - crm_time_free
    - crm_time_is_defined
    - crm_err
    linkageType: ''
    returnType: crm_time_t*
    signature: 'crm_time_t *crm_time_parse_duration(const char *period_s) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new_undefined
      Src: /src/pacemaker/lib/common/iso8601.c:90,1
    - Dst: crm_time_log
      Src: /src/pacemaker/lib/common/iso8601.c:105,1
    - Dst: crm_time_add_seconds
      Src: /src/pacemaker/lib/common/iso8601.c:97,1
    - Dst: crm_time_log
      Src: /src/pacemaker/lib/common/iso8601.c:103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - dt
    argTypes:
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 108
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 108
    functionName: crm_get_utc_time
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_new_undefined
    - crm_time_log
    - crm_time_add_seconds
    linkageType: ''
    returnType: crm_time_t*
    signature: 'static crm_time_t *crm_get_utc_time(const crm_time_t *dt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/iso8601.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: crm_time_new_undefined
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - pcmk__assert_alloc
    linkageType: ''
    returnType: crm_time_t*
    signature: 'crm_time_t *crm_time_new_undefined(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_get_seconds
      Src: /src/pacemaker/lib/common/iso8601.c:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - dt
    argTypes:
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 376
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 376
    functionName: crm_time_get_seconds_since_epoch
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_get_seconds
    linkageType: ''
    returnType: long long
    signature: 'long long crm_time_get_seconds_since_epoch(const crm_time_t *dt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_get_utc_time
      Src: /src/pacemaker/lib/common/iso8601.c:341,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/iso8601.c:367,1
    - Dst: year_days
      Src: /src/pacemaker/lib/common/iso8601.c:348,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - dt
    argTypes:
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 369
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 369
    functionName: crm_time_get_seconds
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - year_days
    - crm_get_utc_time
    - crm_time_free
    linkageType: ''
    returnType: long long
    signature: 'long long crm_time_get_seconds(const crm_time_t *dt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_get_utc_time
      Src: /src/pacemaker/lib/common/iso8601.c:1655,1
    - Dst: crm_time_add_years
      Src: /src/pacemaker/lib/common/iso8601.c:1667,1
    - Dst: crm_time_add_months
      Src: /src/pacemaker/lib/common/iso8601.c:1669,1
    - Dst: crm_get_utc_time
      Src: /src/pacemaker/lib/common/iso8601.c:1660,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/iso8601.c:1662,1
    - Dst: crm_time_add_days
      Src: /src/pacemaker/lib/common/iso8601.c:1671,1
    - Dst: crm_time_add_seconds
      Src: /src/pacemaker/lib/common/iso8601.c:1672,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/iso8601.c:1674,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - dt
    - value
    argTypes:
    - crm_time_t*
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 1676
      start: 1644
    functionDepth: 0
    functionLinenumber: 1644
    functionLinenumberEnd: 1676
    functionName: crm_time_calculate_duration
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_add_months
    - crm_time_add_years
    - crm_time_add_seconds
    - crm_get_utc_time
    - crm_time_free
    - crm_time_add_days
    linkageType: ''
    returnType: crm_time_t*
    signature: 'crm_time_t *crm_time_calculate_duration(const crm_time_t *dt, const
      crm_time_t *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: year_days
      Src: /src/pacemaker/lib/common/iso8601.c:1717,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - dt
    argTypes:
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 1719
      start: 1713
    functionDepth: 0
    functionLinenumber: 1713
    functionLinenumberEnd: 1719
    functionName: crm_time_check
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - year_days
    linkageType: ''
    returnType: bool
    signature: 'bool crm_time_check(const crm_time_t *dt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/iso8601.c:1800,1
    - Dst: ydays
      Src: /src/pacemaker/lib/common/iso8601.c:1805,1
    - Dst: ydays
      Src: /src/pacemaker/lib/common/iso8601.c:1807,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:1802,1
    - Dst: ydays
      Src: /src/pacemaker/lib/common/iso8601.c:1810,1
    - Dst: ydays
      Src: /src/pacemaker/lib/common/iso8601.c:1822,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - a_time
    - extra
    argTypes:
    - crm_time_t*
    - int
    constantsTouched: []
    func_position:
      end: 1826
      start: 1797
    functionDepth: 0
    functionLinenumber: 1797
    functionLinenumberEnd: 1826
    functionName: crm_time_add_days
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - crm_trace
    - ydays
    linkageType: ''
    returnType: void
    signature: 'void crm_time_add_days(crm_time_t *a_time, int extra) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_get_gregorian
      Src: /src/pacemaker/lib/common/iso8601.c:1834,1
    - Dst: crm_time_days_in_month
      Src: /src/pacemaker/lib/common/iso8601.c:1856,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:1862,1
    - Dst: get_ordinal_days
      Src: /src/pacemaker/lib/common/iso8601.c:1865,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:1835,1
    - Dst: crm_time_get_gregorian
      Src: /src/pacemaker/lib/common/iso8601.c:1867,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:1868,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - a_time
    - extra
    argTypes:
    - crm_time_t*
    - int
    constantsTouched: []
    func_position:
      end: 1869
      start: 1828
    functionDepth: 0
    functionLinenumber: 1828
    functionLinenumberEnd: 1869
    functionName: crm_time_add_months
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_days_in_month
    - crm_time_get_gregorian
    - crm_trace
    - get_ordinal_days
    linkageType: ''
    returnType: void
    signature: 'void crm_time_add_months(crm_time_t * a_time, int extra) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tzset
      Src: /src/pacemaker/lib/common/iso8601.c:113,1
    - Dst: time
      Src: /src/pacemaker/lib/common/iso8601.c:115,1
    - Dst: parse_date
      Src: /src/pacemaker/lib/common/iso8601.c:117,1
    - Dst: pcmk__copy_timet
      Src: /src/pacemaker/lib/common/iso8601.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - date_time
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: crm_time_new
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - parse_date
    - pcmk__copy_timet
    - tzset
    - time
    linkageType: ''
    returnType: crm_time_t*
    signature: 'crm_time_t *crm_time_new(const char *date_time) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_days_in_month
      Src: /src/pacemaker/lib/common/iso8601.c:387,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:407,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 4
    argNames:
    - dt
    - y
    - m
    - d
    argTypes:
    - crm_time_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 409
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 409
    functionName: crm_time_get_gregorian
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_trace
    - crm_time_days_in_month
    linkageType: ''
    returnType: int
    signature: 'int crm_time_get_gregorian(const crm_time_t *dt, uint32_t *y, uint32_t
      *m, uint32_t *d) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_get_utc_time
      Src: /src/pacemaker/lib/common/iso8601.c:1689,1
    - Dst: crm_time_add_days
      Src: /src/pacemaker/lib/common/iso8601.c:1699,1
    - Dst: crm_time_add_months
      Src: /src/pacemaker/lib/common/iso8601.c:1697,1
    - Dst: crm_time_add_years
      Src: /src/pacemaker/lib/common/iso8601.c:1695,1
    - Dst: pcmk_copy_time
      Src: /src/pacemaker/lib/common/iso8601.c:1694,1
    - Dst: crm_time_add_seconds
      Src: /src/pacemaker/lib/common/iso8601.c:1700,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/iso8601.c:1701,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - dt
    - value
    argTypes:
    - crm_time_t*
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 1704
      start: 1678
    functionDepth: 0
    functionLinenumber: 1678
    functionLinenumberEnd: 1704
    functionName: crm_time_subtract
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_add_months
    - crm_time_add_years
    - crm_time_add_seconds
    - crm_get_utc_time
    - pcmk_copy_time
    - crm_time_free
    - crm_time_add_days
    linkageType: ''
    returnType: crm_time_t*
    signature: 'crm_time_t *crm_time_subtract(const crm_time_t *dt, const crm_time_t
      *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_add_seconds
      Src: /src/pacemaker/lib/common/iso8601.c:1874,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - a_time
    - extra
    argTypes:
    - crm_time_t*
    - int
    constantsTouched: []
    func_position:
      end: 1875
      start: 1871
    functionDepth: 0
    functionLinenumber: 1871
    functionLinenumberEnd: 1875
    functionName: crm_time_add_minutes
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_add_seconds
    linkageType: ''
    returnType: void
    signature: 'void crm_time_add_minutes(crm_time_t * a_time, int extra) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/iso8601.c:743,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:750,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/iso8601.c:746,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/iso8601.c:755,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:761,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:767,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/iso8601.c:773,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - time_str
    - result
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 781
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 781
    functionName: crm_time_parse_sec
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_trace
    - crm_err
    - sscanf
    linkageType: ''
    returnType: bool
    signature: 'static bool crm_time_parse_sec(const char *time_str, int *result) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/lib/common/iso8601.c:2148,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/iso8601.c:2151,1
    - Dst: pcmk__trim
      Src: /src/pacemaker/lib/common/iso8601.c:2151,1
    - Dst: ctime
      Src: /src/pacemaker/lib/common/iso8601.c:2151,1
    - Dst: crm_time_set_timet
      Src: /src/pacemaker/lib/common/iso8601.c:2155,1
    - Dst: crm_time_as_string
      Src: /src/pacemaker/lib/common/iso8601.c:2156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - source
    - flags
    argTypes:
    - time_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2158
      start: 2145
    functionDepth: 0
    functionLinenumber: 2145
    functionLinenumberEnd: 2158
    functionName: pcmk__epoch2str
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_as_string
    - ctime
    - time
    - crm_time_set_timet
    - pcmk__str_copy
    - pcmk__trim
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__epoch2str(const time_t *source, uint32_t flags) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_timespec_from_epoch_get
      Src: /src/pacemaker/lib/common/iso8601.c:2185,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/iso8601.c:2190,1
    - Dst: time_as_string_common
      Src: /src/pacemaker/lib/common/iso8601.c:2189,1
    - Dst: crm_time_set_timet
      Src: /src/pacemaker/lib/common/iso8601.c:2188,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - ts
    - flags
    argTypes:
    - struct timespec*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2191
      start: 2177
    functionDepth: 0
    functionLinenumber: 2177
    functionLinenumberEnd: 2191
    functionName: pcmk__timespec2str
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - crm_time_set_timet
    - time_as_string_common
    - pcmk__str_copy
    - qb_util_timespec_from_epoch_get
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__timespec2str(const struct timespec *ts, uint32_t flags) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:2217,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:2234,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:2238,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:2222,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:2227,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:2241,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/iso8601.c:2244,1
    - Dst: strcpy
      Src: /src/pacemaker/lib/common/iso8601.c:2247,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 59
    argCount: 1
    argNames:
    - interval_ms
    argTypes:
    - guint
    constantsTouched: []
    func_position:
      end: 2250
      start: 2204
    functionDepth: 0
    functionLinenumber: 2204
    functionLinenumberEnd: 2250
    functionName: pcmk__readable_interval
    functionSourceFile: /src/pacemaker/lib/common/iso8601.c
    functionUses: []
    functionsReached:
    - snprintf
    - strcpy
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__readable_interval(guint interval_ms) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/strings.c:120,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/strings.c:123,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/strings.c:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - text
    - result
    - minimum
    argTypes:
    - char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 136
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 136
    functionName: pcmk__scan_min_int
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - crm_warn
    - pcmk__scan_ll
    linkageType: ''
    returnType: int
    signature: 'int pcmk__scan_min_int(const char *text, int *result, int minimum) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/strings.c:196,1
    - Dst: QB_ABS
      Src: /src/pacemaker/lib/common/strings.c:221,1
    - Dst: strtod
      Src: /src/pacemaker/lib/common/strings.c:207,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/strings.c:203,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/strings.c:229,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/strings.c:237,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/strings.c:239,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/strings.c:246,1
    - Dst: QB_ABS
      Src: /src/pacemaker/lib/common/strings.c:250,1
    - Dst: strchr
      Src: /src/pacemaker/lib/common/strings.c:264,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/strings.c:266,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/strings.c:277,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/strings.c:273,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/strings.c:278,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 4
    argNames:
    - text
    - result
    - default_text
    - end_text
    argTypes:
    - char*
    - double*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 288
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 288
    functionName: pcmk__scan_double
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - crm_debug
    - strtod
    - pcmk__str_empty
    - strchr
    - QB_ABS
    - pcmk_rc_str
    - pcmk__assert
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int pcmk__scan_double(const char *text, double *result, const char
      *default_text, char **end_text) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ends_with
      Src: /src/pacemaker/lib/common/strings.c:638,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - s
    - match
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 639
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 639
    functionName: pcmk__ends_with_ext
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - ends_with
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__ends_with_ext(const char *s, const char *match) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/common/strings.c:1254,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/strings.c:1258,1
    - Dst: crm_abort
      Src: /src/pacemaker/lib/common/strings.c:1257,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 4
    argNames:
    - file
    - function
    - line
    - str
    argTypes:
    - char*
    - char*
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 1263
      start: 1249
    functionDepth: 0
    functionLinenumber: 1249
    functionLinenumberEnd: 1263
    functionName: pcmk__str_copy_as
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - strdup
    - crm_abort
    - crm_exit
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__str_copy_as(const char *file, const char *function, uint32_t
      line, const char *str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: scan_ll
      Src: /src/pacemaker/lib/common/strings.c:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - text
    - result
    - default_value
    argTypes:
    - char*
    - long long*
    - long long
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: pcmk__scan_ll
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - scan_ll
    linkageType: ''
    returnType: int
    signature: 'int pcmk__scan_ll(const char *text, long long *result, long long default_value) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/strings.c:152,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/strings.c:155,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/strings.c:159,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/strings.c:155,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - text
    - port
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 168
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 168
    functionName: pcmk__scan_port
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - crm_warn
    - pcmk__scan_ll
    - pcmk_rc_str
    linkageType: ''
    returnType: int
    signature: 'int pcmk__scan_port(const char *text, int *port) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ends_with
      Src: /src/pacemaker/lib/common/strings.c:611,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - s
    - match
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 612
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 612
    functionName: pcmk__ends_with
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - ends_with
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__ends_with(const char *s, const char *match) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/pacemaker/lib/common/strings.c:1057,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/strings.c:1059,1
    - Dst: str_any_of
      Src: /src/pacemaker/lib/common/strings.c:1058,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - s
    - '...'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1061
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1061
    functionName: pcmk__str_any_of
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - str_any_of
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__str_any_of(const char *s, ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 2
    argNames:
    - str
    - prefix
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 571
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 571
    functionName: pcmk__starts_with
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__starts_with(const char *str, const char *prefix) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/pacemaker/lib/common/strings.c:896,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/strings.c:898,1
    - Dst: vasprintf
      Src: /src/pacemaker/lib/common/strings.c:897,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/strings.c:899,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - format
    - '...'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 901
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 901
    functionName: crm_strdup_printf
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - va_start
    - vasprintf
    - va_end
    linkageType: ''
    returnType: char*
    signature: 'char *crm_strdup_printf(char const *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/pacemaker/lib/common/strings.c:1033,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/strings.c:1035,1
    - Dst: str_any_of
      Src: /src/pacemaker/lib/common/strings.c:1034,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - s
    - '...'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1037
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1037
    functionName: pcmk__strcase_any_of
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - str_any_of
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__strcase_any_of(const char *s, ...) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/strings.c:576,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/strings.c:588,1
    - Dst: strlen
      Src: /src/pacemaker/lib/common/strings.c:592,1
    - Dst: strlen
      Src: /src/pacemaker/lib/common/strings.c:591,1
    - Dst: strrchr
      Src: /src/pacemaker/lib/common/strings.c:587,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/strings.c:593,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - s
    - match
    - as_extension
    argTypes:
    - char*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 595
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 595
    functionName: ends_with
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - strlen
    - strcmp
    - strrchr
    - pcmk__str_empty
    linkageType: ''
    returnType: bool
    signature: 'static inline bool ends_with(const char *s, const char *match, bool
      as_extension) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/strings.c:909,1
    - Dst: scan_ll
      Src: /src/pacemaker/lib/common/strings.c:927,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/strings.c:919,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/strings.c:916,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/strings.c:917,1
    - Dst: scan_ll
      Src: /src/pacemaker/lib/common/strings.c:935,1
    - Dst: scan_ll
      Src: /src/pacemaker/lib/common/strings.c:943,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 3
    argNames:
    - srcstring
    - start
    - end
    argTypes:
    - char*
    - long long*
    - long long*
    constantsTouched: []
    func_position:
      end: 964
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 964
    functionName: pcmk__parse_ll_range
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - scan_ll
    - pcmk__str_eq
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int pcmk__parse_ll_range(const char *srcstring, long long *start,
      long long *end) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/pacemaker/lib/common/strings.c:363,1
    - Dst: scan_ll
      Src: /src/pacemaker/lib/common/strings.c:367,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/strings.c:370,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/strings.c:373,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/strings.c:374,1
    - Dst: isdigit
      Src: /src/pacemaker/lib/common/strings.c:386,1
    - Dst: isspace
      Src: /src/pacemaker/lib/common/strings.c:391,1
    - Dst: strncasecmp
      Src: /src/pacemaker/lib/common/strings.c:399,1
    - Dst: strncasecmp
      Src: /src/pacemaker/lib/common/strings.c:400,1
    - Dst: strncasecmp
      Src: /src/pacemaker/lib/common/strings.c:404,1
    - Dst: strncasecmp
      Src: /src/pacemaker/lib/common/strings.c:409,1
    - Dst: strncasecmp
      Src: /src/pacemaker/lib/common/strings.c:419,1
    - Dst: strncasecmp
      Src: /src/pacemaker/lib/common/strings.c:410,1
    - Dst: strncasecmp
      Src: /src/pacemaker/lib/common/strings.c:420,1
    - Dst: strncasecmp
      Src: /src/pacemaker/lib/common/strings.c:414,1
    - Dst: strncasecmp
      Src: /src/pacemaker/lib/common/strings.c:415,1
    - Dst: strncasecmp
      Src: /src/pacemaker/lib/common/strings.c:405,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 1
    argNames:
    - input
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 434
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 434
    functionName: crm_get_msec
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - scan_ll
    - isspace
    - isdigit
    - strncasecmp
    - pcmk_rc_str
    - crm_warn
    linkageType: ''
    returnType: long long
    signature: 'long long crm_get_msec(const char *input) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_new_full
      Src: /src/pacemaker/lib/common/strings.c:743,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - key_destroy_func
    - value_destroy_func
    argTypes:
    - GDestroyNotify
    - GDestroyNotify
    constantsTouched: []
    func_position:
      end: 745
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 745
    functionName: pcmk__strikey_table
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - g_hash_table_new_full
    linkageType: ''
    returnType: GHashTable*
    signature: 'GHashTable *pcmk__strikey_table(GDestroyNotify key_destroy_func, GDestroyNotify
      value_destroy_func) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/strings.c:309,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/strings.c:322,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/strings.c:320,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/strings.c:315,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/strings.c:323,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/strings.c:328,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 4
    argNames:
    - table
    - key
    - default_val
    - result
    argTypes:
    - GHashTable*
    - char*
    - guint
    - guint*
    constantsTouched: []
    func_position:
      end: 337
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 337
    functionName: pcmk__guint_from_hash
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - g_hash_table_lookup
    - pcmk__scan_ll
    - pcmk_rc_str
    - crm_warn
    linkageType: ''
    returnType: int
    signature: 'int pcmk__guint_from_hash(GHashTable *table, const char *key, guint
      default_val, guint *result) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/strings.c:462,1
    - Dst: QB_MIN
      Src: /src/pacemaker/lib/common/strings.c:466,1
    - Dst: crm_time_get_seconds
      Src: /src/pacemaker/lib/common/strings.c:465,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/strings.c:467,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/strings.c:471,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/strings.c:475,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - input
    - result_ms
    argTypes:
    - char*
    - guint*
    constantsTouched: []
    func_position:
      end: 486
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 486
    functionName: pcmk_parse_interval_spec
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - crm_time_parse_duration
    - crm_get_msec
    - crm_time_get_seconds
    - QB_MIN
    - crm_warn
    - crm_time_free
    linkageType: ''
    returnType: int
    signature: 'int pcmk_parse_interval_spec(const char *input, guint *result_ms) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_ascii_tolower
      Src: /src/pacemaker/lib/common/strings.c:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 726
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 726
    functionName: pcmk__strcase_hash
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - g_ascii_tolower
    linkageType: ''
    returnType: guint
    signature: 'static guint pcmk__strcase_hash(gconstpointer v) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/strings.c:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 494
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 494
    functionName: crm_is_true
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - crm_str_to_boolean
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean crm_is_true(const char *s) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/strings.c:713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 714
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 714
    functionName: pcmk__strcase_equal
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean pcmk__strcase_equal(gconstpointer a, gconstpointer
      b) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/strings.c:772,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/common/strings.c:773,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - old_table
    argTypes:
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 776
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 776
    functionName: pcmk__str_table_dup
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - pcmk__strkey_table
    - g_hash_table_foreach
    linkageType: ''
    returnType: GHashTable*
    signature: 'GHashTable *pcmk__str_table_dup(GHashTable *old_table) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/common/strings.c:843,1
    - Dst: BZ2_bzBuffToBuffCompress
      Src: /src/pacemaker/lib/common/strings.c:860,1
    - Dst: clock_gettime
      Src: /src/pacemaker/lib/common/strings.c:854,1
    - Dst: pcmk__bzlib2rc
      Src: /src/pacemaker/lib/common/strings.c:862,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/strings.c:857,1
    - Dst: free
      Src: /src/pacemaker/lib/common/strings.c:864,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/strings.c:867,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/strings.c:868,1
    - Dst: free
      Src: /src/pacemaker/lib/common/strings.c:869,1
    - Dst: clock_gettime
      Src: /src/pacemaker/lib/common/strings.c:874,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/strings.c:876,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/strings.c:881,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 5
    argNames:
    - data
    - length
    - max
    - result
    - result_len
    argTypes:
    - char*
    - unsigned int
    - unsigned int
    - char**
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 887
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 887
    functionName: pcmk__compress
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - pcmk__bzlib2rc
    - crm_trace
    - pcmk__assert_alloc
    - clock_gettime
    - free
    - BZ2_bzBuffToBuffCompress
    - pcmk_rc_str
    - strdup
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int pcmk__compress(const char *data, unsigned int length, unsigned
      int max, char **result, unsigned int *result_len) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/strings.c:1168,1
    - Dst: regcomp
      Src: /src/pacemaker/lib/common/strings.c:1181,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/strings.c:1178,1
    - Dst: strerror
      Src: /src/pacemaker/lib/common/strings.c:1184,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/strings.c:1184,1
    - Dst: regexec
      Src: /src/pacemaker/lib/common/strings.c:1186,1
    - Dst: regfree
      Src: /src/pacemaker/lib/common/strings.c:1187,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/strings.c:1204,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/strings.c:1223,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/strings.c:1224,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/strings.c:1224,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/strings.c:1232,1
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/common/strings.c:1230,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/strings.c:1229,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 3
    argNames:
    - s1
    - s2
    - flags
    argTypes:
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1234
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1234
    functionName: pcmk__strcmp
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - strcasecmp
    - regexec
    - strerror
    - regfree
    - strcmp
    - regcomp
    - pcmk_is_set
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int pcmk__strcmp(const char *s1, const char *s2, uint32_t flags) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/pacemaker/lib/common/strings.c:537,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 542
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 542
    functionName: pcmk__trim
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - strlen
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__trim(char *str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_new_full
      Src: /src/pacemaker/lib/common/strings.c:687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - key_destroy_func
    - value_destroy_func
    argTypes:
    - GDestroyNotify
    - GDestroyNotify
    constantsTouched: []
    func_position:
      end: 689
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 689
    functionName: pcmk__strkey_table
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - g_hash_table_new_full
    linkageType: ''
    returnType: GHashTable*
    signature: 'GHashTable *pcmk__strkey_table(GDestroyNotify key_destroy_func, GDestroyNotify
      value_destroy_func) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/strings.c:704,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/strings.c:706,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/strings.c:706,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/strings.c:706,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - table
    - name
    - value
    argTypes:
    - GHashTable*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 707
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 707
    functionName: pcmk__insert_dup
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__str_copy
    - g_hash_table_insert
    linkageType: ''
    returnType: void
    signature: 'void pcmk__insert_dup(GHashTable *table, const char *name, const char
      *value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/strings.c:751,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 754
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 754
    functionName: copy_str_table_entry
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - pcmk__insert_dup
    linkageType: ''
    returnType: void
    signature: 'static void copy_str_table_entry(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/strings.c:798,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/common/strings.c:806,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/strings.c:821,1
    - Dst: g_string_new
      Src: /src/pacemaker/lib/common/strings.c:808,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/strings.c:800,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/strings.c:822,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 4
    argNames:
    - list
    - init_size
    - word
    - separator
    argTypes:
    - GString**
    - size_t
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 823
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 823
    functionName: pcmk__add_separated_word
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - g_string_append
    - pcmk__str_empty
    - g_string_sized_new
    - pcmk__assert
    - g_string_new
    linkageType: ''
    returnType: void
    signature: 'void pcmk__add_separated_word(GString **list, size_t init_size, const
      char *word, const char *separator) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/strings.c:986,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - s
    - lst
    - flags
    argTypes:
    - gchar*
    - GList*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 992
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 992
    functionName: pcmk__str_in_list
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean pcmk__str_in_list(const gchar *s, const GList *lst, uint32_t
      flags) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/strings.c:1082,1
    - Dst: isdigit
      Src: /src/pacemaker/lib/common/strings.c:1085,1
    - Dst: strtol
      Src: /src/pacemaker/lib/common/strings.c:1090,1
    - Dst: isdigit
      Src: /src/pacemaker/lib/common/strings.c:1085,1
    - Dst: strtol
      Src: /src/pacemaker/lib/common/strings.c:1091,1
    - Dst: tolower
      Src: /src/pacemaker/lib/common/strings.c:1110,1
    - Dst: tolower
      Src: /src/pacemaker/lib/common/strings.c:1111,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 38
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1128
      start: 1079
    functionDepth: 0
    functionLinenumber: 1079
    functionLinenumberEnd: 1128
    functionName: pcmk__numeric_strcasecmp
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - strtol
    - isdigit
    - tolower
    linkageType: ''
    returnType: int
    signature: 'int pcmk__numeric_strcasecmp(const char *s1, const char *s2) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/strings.c:1002,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/strings.c:1006,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - s
    - args
    - flags
    argTypes:
    - char*
    - va_list
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1012
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 1012
    functionName: str_any_of
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - va_arg
    - pcmk__str_eq
    linkageType: ''
    returnType: bool
    signature: 'static bool str_any_of(const char *s, va_list args, uint32_t flags) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strtoll
      Src: /src/pacemaker/lib/common/strings.c:46,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/strings.c:49,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/strings.c:55,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/strings.c:61,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/strings.c:62,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/strings.c:65,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/strings.c:66,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 4
    argNames:
    - text
    - result
    - default_value
    - end_text
    argTypes:
    - char*
    - long long*
    - long long
    - char**
    constantsTouched: []
    func_position:
      end: 78
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 78
    functionName: scan_ll
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - crm_debug
    - strtoll
    - pcmk__str_empty
    - pcmk_rc_str
    linkageType: ''
    returnType: int
    signature: 'static int scan_ll(const char *text, long long *result, long long
      default_value, char **end_text) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/common/strings.c:503,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/common/strings.c:510,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - s
    - ret
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 518
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 518
    functionName: crm_str_to_boolean
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - pcmk__strcase_any_of
    linkageType: ''
    returnType: int
    signature: 'int crm_str_to_boolean(const char *s, int *ret) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 670
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 670
    functionName: pcmk__str_hash
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: guint
    signature: 'static guint pcmk__str_hash(gconstpointer v) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/strings.c:1281,1
    - Dst: free
      Src: /src/pacemaker/lib/common/strings.c:1282,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/strings.c:1283,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - str
    - value
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 1285
      start: 1278
    functionDepth: 0
    functionLinenumber: 1278
    functionLinenumberEnd: 1285
    functionName: pcmk__str_update
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - free
    - pcmk__str_eq
    linkageType: ''
    returnType: void
    signature: 'void pcmk__str_update(char **str, const char *value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/strings.c:1302,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/strings.c:1303,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/strings.c:1306,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/strings.c:1313,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/strings.c:1311,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - buffer
    - '...'
    argTypes:
    - GString*
    constantsTouched: []
    func_position:
      end: 1314
      start: 1297
    functionDepth: 0
    functionLinenumber: 1297
    functionLinenumberEnd: 1314
    functionName: pcmk__g_strcat
    functionSourceFile: /src/pacemaker/lib/common/strings.c
    functionUses: []
    functionsReached:
    - g_string_append
    - va_end
    - va_arg
    - va_start
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'void pcmk__g_strcat(GString *buffer, ...) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: setgrent
      Src: /src/pacemaker/lib/common/utils.c:79,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/utils.c:85,1
    - Dst: getgrent
      Src: /src/pacemaker/lib/common/utils.c:80,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/utils.c:91,1
    - Dst: endgrent
      Src: /src/pacemaker/lib/common/utils.c:92,1
    - Dst: endgrent
      Src: /src/pacemaker/lib/common/utils.c:97,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 2
    argNames:
    - user
    - group
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 99
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 99
    functionName: pcmk__is_user_in_group
    functionSourceFile: /src/pacemaker/lib/common/utils.c
    functionUses: []
    functionsReached:
    - setgrent
    - endgrent
    - getgrent
    - strcmp
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__is_user_in_group(const char *user, const char *group) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_user_lookup
      Src: /src/pacemaker/lib/common/utils.c:150,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - uid
    - gid
    argTypes:
    - uid_t*
    - gid_t*
    constantsTouched: []
    func_position:
      end: 164
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 164
    functionName: pcmk_daemon_user
    functionSourceFile: /src/pacemaker/lib/common/utils.c
    functionUses: []
    functionsReached:
    - crm_user_lookup
    linkageType: ''
    returnType: int
    signature: 'int pcmk_daemon_user(uid_t *uid, gid_t *gid) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__pidfile_matches
      Src: /src/pacemaker/lib/common/utils.c:293,1
    - Dst: printf
      Src: /src/pacemaker/lib/common/utils.c:297,1
    - Dst: fork
      Src: /src/pacemaker/lib/common/utils.c:302,1
    - Dst: pcmk__lock_pidfile
      Src: /src/pacemaker/lib/common/utils.c:312,1
    - Dst: close
      Src: /src/pacemaker/lib/common/utils.c:326,1
    - Dst: umask
      Src: /src/pacemaker/lib/common/utils.c:321,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/utils.c:317,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/utils.c:295,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/utils.c:304,1
    - Dst: printf
      Src: /src/pacemaker/lib/common/utils.c:316,1
    - Dst: pcmk__open_devnull
      Src: /src/pacemaker/lib/common/utils.c:330,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/utils.c:299,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/common/utils.c:305,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/utils.c:306,1
    - Dst: close
      Src: /src/pacemaker/lib/common/utils.c:323,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/utils.c:315,1
    - Dst: pcmk__open_devnull
      Src: /src/pacemaker/lib/common/utils.c:327,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/utils.c:309,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/utils.c:314,1
    - Dst: pcmk__open_devnull
      Src: /src/pacemaker/lib/common/utils.c:324,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/utils.c:318,1
    - Dst: close
      Src: /src/pacemaker/lib/common/utils.c:329,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 2
    argNames:
    - name
    - pidfile
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 331
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 331
    functionName: pcmk__daemonize
    functionSourceFile: /src/pacemaker/lib/common/utils.c
    functionUses: []
    functionsReached:
    - fork
    - fprintf
    - pcmk__pidfile_matches
    - crm_exit
    - crm_perror
    - pcmk__open_devnull
    - umask
    - pcmk__lock_pidfile
    - pcmk_rc_str
    - printf
    - crm_err
    - close
    linkageType: ''
    returnType: void
    signature: 'void pcmk__daemonize(const char *name, const char *pidfile) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sleep
      Src: /src/pacemaker/lib/common/utils.c:365,1
    - Dst: select
      Src: /src/pacemaker/lib/common/utils.c:388,1
    - Dst: nanosleep
      Src: /src/pacemaker/lib/common/utils.c:378,1
    - Dst: usleep
      Src: /src/pacemaker/lib/common/utils.c:382,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ms
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 391
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 391
    functionName: pcmk__sleep_ms
    functionSourceFile: /src/pacemaker/lib/common/utils.c
    functionUses: []
    functionsReached:
    - sleep
    - nanosleep
    - usleep
    - select
    linkageType: ''
    returnType: void
    signature: 'void pcmk__sleep_ms(unsigned int ms) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/utils.c:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - level
    - msg
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 457
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 457
    functionName: _gnutls_log_func
    functionSourceFile: /src/pacemaker/lib/common/utils.c
    functionUses: []
    functionsReached:
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void _gnutls_log_func(int level, const char *msg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/utils.c:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 500
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 500
    functionName: crm_is_daemon_name
    functionSourceFile: /src/pacemaker/lib/common/utils.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    linkageType: ''
    returnType: bool
    signature: 'bool crm_is_daemon_name(const char *name) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/utils.c:109,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/utils.c:126,1
    - Dst: getpwnam_r
      Src: /src/pacemaker/lib/common/utils.c:114,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/utils.c:122,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/common/utils.c:126,1
    - Dst: free
      Src: /src/pacemaker/lib/common/utils.c:129,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 3
    argNames:
    - name
    - uid
    - gid
    argTypes:
    - char*
    - uid_t*
    - gid_t*
    constantsTouched: []
    func_position:
      end: 131
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 131
    functionName: crm_user_lookup
    functionSourceFile: /src/pacemaker/lib/common/utils.c
    functionUses: []
    functionsReached:
    - getpwnam_r
    - pcmk_strerror
    - calloc
    - free
    - crm_info
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int crm_user_lookup(const char *name, uid_t * uid, gid_t * gid) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/pacemaker/lib/common/utils.c:341,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/lib/common/utils.c:343,1
    - Dst: uuid_generate
      Src: /src/pacemaker/lib/common/utils.c:344,1
    - Dst: uuid_unparse
      Src: /src/pacemaker/lib/common/utils.c:345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 347
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 347
    functionName: crm_generate_uuid
    functionSourceFile: /src/pacemaker/lib/common/utils.c
    functionUses: []
    functionsReached:
    - uuid_unparse
    - uuid_generate
    - malloc
    - pcmk__mem_assert
    linkageType: ''
    returnType: char*
    signature: 'char *crm_generate_uuid(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/pacemaker/lib/common/utils.c:462,1
    - Dst: gnutls_global_set_log_level
      Src: /src/pacemaker/lib/common/utils.c:464,1
    - Dst: gnutls_global_set_log_function
      Src: /src/pacemaker/lib/common/utils.c:465,1
    - Dst: gnutls_global_init
      Src: /src/pacemaker/lib/common/utils.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 466
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 466
    functionName: crm_gnutls_global_init
    functionSourceFile: /src/pacemaker/lib/common/utils.c
    functionUses: []
    functionsReached:
    - signal
    - gnutls_global_set_log_function
    - gnutls_global_init
    - gnutls_global_set_log_level
    linkageType: ''
    returnType: void
    signature: 'void crm_gnutls_global_init(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_cleanup
      Src: /src/pacemaker/lib/common/utils.c:57,1
    - Dst: qb_log_fini
      Src: /src/pacemaker/lib/common/utils.c:65,1
    - Dst: pcmk__free_common_logger
      Src: /src/pacemaker/lib/common/utils.c:59,1
    - Dst: pcmk__schema_cleanup
      Src: /src/pacemaker/lib/common/utils.c:58,1
    - Dst: free
      Src: /src/pacemaker/lib/common/utils.c:61,1
    - Dst: xmlCleanupParser
      Src: /src/pacemaker/lib/common/utils.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: pcmk_common_cleanup
    functionSourceFile: /src/pacemaker/lib/common/utils.c
    functionUses: []
    functionsReached:
    - pcmk__free_common_logger
    - pcmk__schema_cleanup
    - qb_log_fini
    - free
    - mainloop_cleanup
    - xmlCleanupParser
    linkageType: ''
    returnType: void
    signature: 'void pcmk_common_cleanup(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/utils.c:178,1
    - Dst: strtol
      Src: /src/pacemaker/lib/common/utils.c:189,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/utils.c:192,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - text
    - end_text
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 197
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 197
    functionName: version_helper
    functionSourceFile: /src/pacemaker/lib/common/utils.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - strtol
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int version_helper(const char *text, const char **end_text) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: version_helper
      Src: /src/pacemaker/lib/common/utils.c:233,1
    - Dst: version_helper
      Src: /src/pacemaker/lib/common/utils.c:237,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/utils.c:265,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/utils.c:267,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/utils.c:269,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 55
    argCount: 2
    argNames:
    - version1
    - version2
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 273
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 273
    functionName: compare_version
    functionSourceFile: /src/pacemaker/lib/common/utils.c
    functionUses: []
    functionsReached:
    - crm_trace
    - version_helper
    linkageType: ''
    returnType: int
    signature: 'int compare_version(const char *version1, const char *version2) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/utils.c:406,1
    - Dst: g_timeout_add_seconds
      Src: /src/pacemaker/lib/common/utils.c:412,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/common/utils.c:412,1
    - Dst: g_timeout_add
      Src: /src/pacemaker/lib/common/utils.c:414,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - interval_ms
    - fn
    - data
    argTypes:
    - guint
    - GSourceFunc
    - gpointer
    constantsTouched: []
    func_position:
      end: 416
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 416
    functionName: pcmk__create_timer
    functionSourceFile: /src/pacemaker/lib/common/utils.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_timeout_add
    - g_timeout_add_seconds
    - pcmk__timeout_ms2s
    linkageType: ''
    returnType: guint
    signature: 'guint pcmk__create_timer(guint interval_ms, GSourceFunc fn, gpointer
      data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - timeout_ms
    argTypes:
    - guint
    constantsTouched: []
    func_position:
      end: 446
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 446
    functionName: pcmk__timeout_ms2s
    functionSourceFile: /src/pacemaker/lib/common/utils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: guint
    signature: 'guint pcmk__timeout_ms2s(guint timeout_ms) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/scores.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: pcmk_str_is_minus_infinity
    functionSourceFile: /src/pacemaker/lib/common/scores.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk_str_is_minus_infinity(const char *s) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/pacemaker/lib/common/scores.c:107,1
    - Dst: strcpy
      Src: /src/pacemaker/lib/common/scores.c:110,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/scores.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - score
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 118
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 118
    functionName: pcmk_readable_score
    functionSourceFile: /src/pacemaker/lib/common/scores.c
    functionUses: []
    functionsReached:
    - snprintf
    - strcpy
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk_readable_score(int score) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - score1
    - score2
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 182
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 182
    functionName: pcmk__add_scores
    functionSourceFile: /src/pacemaker/lib/common/scores.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int pcmk__add_scores(int score1, int score2) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/common/scores.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - score
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 196
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 196
    functionName: char2score
    functionSourceFile: /src/pacemaker/lib/common/scores.c
    functionUses: []
    functionsReached:
    - pcmk_parse_score
    linkageType: ''
    returnType: int
    signature: 'int char2score(const char *score) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: QB_MIN
      Src: /src/pacemaker/lib/common/scores.c:39,1
    - Dst: QB_MAX
      Src: /src/pacemaker/lib/common/scores.c:40,1
    - Dst: pcmk_str_is_minus_infinity
      Src: /src/pacemaker/lib/common/scores.c:45,1
    - Dst: pcmk_str_is_infinity
      Src: /src/pacemaker/lib/common/scores.c:48,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/scores.c:51,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/scores.c:54,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/scores.c:57,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/scores.c:63,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 3
    argNames:
    - score_s
    - score
    - default_score
    argTypes:
    - char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 85
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 85
    functionName: pcmk_parse_score
    functionSourceFile: /src/pacemaker/lib/common/scores.c
    functionUses: []
    functionsReached:
    - pcmk_str_is_infinity
    - pcmk__str_eq
    - QB_MIN
    - pcmk__scan_ll
    - QB_MAX
    - pcmk_str_is_minus_infinity
    linkageType: ''
    returnType: int
    signature: 'int pcmk_parse_score(const char *score_s, int *score, int default_score) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/scores.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: pcmk_str_is_infinity
    functionSourceFile: /src/pacemaker/lib/common/scores.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk_str_is_infinity(const char *s) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/pacemaker/lib/common/mainloop.c:114,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - source
    - callback
    - userdata
    argTypes:
    - GSource*
    - GSourceFunc
    - gpointer
    constantsTouched: []
    func_position:
      end: 124
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 124
    functionName: crm_trigger_dispatch
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - callback
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean crm_trigger_dispatch(GSource *source, GSourceFunc
      callback, gpointer userdata) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/mainloop.c:253,1
    - Dst: strsignal
      Src: /src/pacemaker/lib/common/mainloop.c:254,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - source
    - callback
    - userdata
    argTypes:
    - GSource*
    - GSourceFunc
    - gpointer
    constantsTouched: []
    func_position:
      end: 263
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 263
    functionName: crm_signal_dispatch
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - crm_notice
    - strsignal
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean crm_signal_dispatch(GSource *source, GSourceFunc callback,
      gpointer userdata) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/pacemaker/lib/common/mainloop.c:309,1
    - Dst: sigaction
      Src: /src/pacemaker/lib/common/mainloop.c:320,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/mainloop.c:310,1
    - Dst: memset
      Src: /src/pacemaker/lib/common/mainloop.c:315,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/mainloop.c:311,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/mainloop.c:321,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/mainloop.c:322,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - sig
    - dispatch
    argTypes:
    - int
    - sighandler_t
    constantsTouched: []
    func_position:
      end: 326
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 326
    functionName: crm_signal_handler
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - memset
    - pcmk_rc_str
    - sigaction
    - sigemptyset
    - crm_err
    linkageType: ''
    returnType: sighandler_t
    signature: 'sighandler_t crm_signal_handler(int sig, sighandler_t dispatch) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/mainloop.c:461,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:464,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 467
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 467
    functionName: gio_poll_destroy
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void gio_poll_destroy(gpointer data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - prio
    argTypes:
    - enum qb_loop_priority
    constantsTouched: []
    func_position:
      end: 504
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 504
    functionName: conv_libqb_prio2ratelimit
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: enum qb_ipcs_rate_limit
    signature: 'static enum qb_ipcs_rate_limit conv_libqb_prio2ratelimit(enum qb_loop_priority
      prio) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - timer
    argTypes:
    - mainloop_timer_t*
    constantsTouched: []
    func_position:
      end: 918
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 918
    functionName: pcmk__mainloop_timer_get_period
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: guint
    signature: 'guint pcmk__mainloop_timer_get_period(const mainloop_timer_t *timer) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - child
    argTypes:
    - mainloop_child_t*
    constantsTouched: []
    func_position:
      end: 1042
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1042
    functionName: mainloop_child_userdata
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'void *mainloop_child_userdata(mainloop_child_t * child) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/mainloop.c:1069,1
    - Dst: kill
      Src: /src/pacemaker/lib/common/mainloop.c:1070,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/mainloop.c:1072,1
    - Dst: kill
      Src: /src/pacemaker/lib/common/mainloop.c:1073,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/common/mainloop.c:1078,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - child
    argTypes:
    - mainloop_child_t*
    constantsTouched: []
    func_position:
      end: 1083
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1083
    functionName: child_kill_helper
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - crm_debug
    - kill
    - crm_perror
    linkageType: ''
    returnType: int
    signature: 'static int child_kill_helper(mainloop_child_t *child) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - source
    - timeout
    argTypes:
    - GSource*
    - gint*
    constantsTouched: []
    func_position:
      end: 81
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 81
    functionName: crm_trigger_prepare
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean crm_trigger_prepare(GSource * source, gint * timeout) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:335,1
    - Dst: mainloop_destroy_trigger
      Src: /src/pacemaker/lib/common/mainloop.c:336,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 338
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 338
    functionName: mainloop_destroy_signal_entry
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - mainloop_destroy_trigger
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void mainloop_destroy_signal_entry(int sig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_free
      Src: /src/pacemaker/lib/common/mainloop.c:419,1
    - Dst: mainloop_destroy_signal_entry
      Src: /src/pacemaker/lib/common/mainloop.c:424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 426
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 426
    functionName: mainloop_cleanup
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - mainloop_destroy_signal_entry
    - qb_array_free
    linkageType: ''
    returnType: void
    signature: 'void mainloop_cleanup(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_io_channel_unix_get_fd
      Src: /src/pacemaker/lib/common/mainloop.c:444,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/mainloop.c:450,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:446,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - gio
    - condition
    - data
    argTypes:
    - GIOChannel*
    - GIOCondition
    - gpointer
    constantsTouched: []
    func_position:
      end: 453
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 453
    functionName: gio_read_socket
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_io_channel_unix_get_fd
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean gio_read_socket(GIOChannel * gio, GIOCondition condition,
      gpointer data) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_index
      Src: /src/pacemaker/lib/common/mainloop.c:514,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/mainloop.c:516,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/mainloop.c:523,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:520,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/mainloop.c:527,1
    - Dst: g_io_channel_unix_new
      Src: /src/pacemaker/lib/common/mainloop.c:532,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/mainloop.c:534,1
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/common/mainloop.c:539,1
    - Dst: g_io_add_watch_full
      Src: /src/pacemaker/lib/common/mainloop.c:552,1
    - Dst: conv_prio_libqb2glib
      Src: /src/pacemaker/lib/common/mainloop.c:552,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:566,1
    - Dst: g_io_channel_unref
      Src: /src/pacemaker/lib/common/mainloop.c:564,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 6
    argNames:
    - p
    - fd
    - evts
    - data
    - fn
    - add
    argTypes:
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_ipcs_dispatch_fn_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 572
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 572
    functionName: gio_poll_dispatch_update
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - g_io_add_watch_full
    - qb_array_index
    - g_io_channel_unix_new
    - g_io_channel_unref
    - crm_err
    - conv_prio_libqb2glib
    - crm_trace
    - g_source_remove
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t gio_poll_dispatch_update(enum qb_loop_priority p, int32_t
      fd, int32_t evts, void *data, qb_ipcs_dispatch_fn_t fn, int32_t add) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_ipc_new
      Src: /src/pacemaker/lib/common/mainloop.c:924,1
    - Dst: crm_ipc_destroy
      Src: /src/pacemaker/lib/common/mainloop.c:934,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/mainloop.c:932,1
    - Dst: pcmk__add_mainloop_ipc
      Src: /src/pacemaker/lib/common/mainloop.c:926,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/mainloop.c:931,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 5
    argNames:
    - name
    - priority
    - max_size
    - userdata
    - callbacks
    argTypes:
    - char*
    - int
    - size_t
    - void*
    - struct ipc_client_callbacks*
    constantsTouched: []
    func_position:
      end: 943
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 943
    functionName: mainloop_add_ipc_client
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - crm_ipc_destroy
    - crm_ipc_new
    - pcmk__add_mainloop_ipc
    - pcmk_rc_str
    - fprintf
    linkageType: ''
    returnType: mainloop_io_t*
    signature: 'mainloop_io_t *mainloop_add_ipc_client(const char *name, int priority,
      size_t max_size, void *userdata, struct ipc_client_callbacks *callbacks) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/mainloop.c:1373,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/mainloop.c:1378,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:1385,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/mainloop.c:1376,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 5
    argNames:
    - name
    - period_ms
    - repeat
    - cb
    - userdata
    argTypes:
    - char*
    - guint
    - bool
    - GSourceFunc
    - void*
    constantsTouched: []
    func_position:
      end: 1387
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1387
    functionName: mainloop_timer_add
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - pcmk__assert_alloc
    - crm_trace
    - crm_strdup_printf
    linkageType: ''
    returnType: mainloop_timer_t*
    signature: 'mainloop_timer_t *mainloop_timer_add(const char *name, guint period_ms,
      bool repeat, GSourceFunc cb, void *userdata) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - source
    argTypes:
    - GSource*
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: crm_trigger_check
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean crm_trigger_check(GSource * source) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:1055,1
    - Dst: free
      Src: /src/pacemaker/lib/common/mainloop.c:1060,1
    - Dst: free
      Src: /src/pacemaker/lib/common/mainloop.c:1059,1
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/common/mainloop.c:1056,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - child
    argTypes:
    - mainloop_child_t*
    constantsTouched: []
    func_position:
      end: 1061
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1061
    functionName: child_free
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - free
    - crm_trace
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: 'static void child_free(mainloop_child_t *child) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_main_loop_is_running
      Src: /src/pacemaker/lib/common/mainloop.c:1422,1
    - Dst: g_main_context_dispatch
      Src: /src/pacemaker/lib/common/mainloop.c:1429,1
    - Dst: g_main_context_pending
      Src: /src/pacemaker/lib/common/mainloop.c:1428,1
    - Dst: g_main_loop_quit
      Src: /src/pacemaker/lib/common/mainloop.c:1431,1
    - Dst: g_main_loop_get_context
      Src: /src/pacemaker/lib/common/mainloop.c:1423,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - mloop
    - n
    argTypes:
    - GMainLoop*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1433
      start: 1419
    functionDepth: 0
    functionLinenumber: 1419
    functionLinenumberEnd: 1433
    functionName: pcmk_quit_main_loop
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - g_main_loop_quit
    - g_main_loop_is_running
    - g_main_context_pending
    - g_main_context_dispatch
    - g_main_loop_get_context
    linkageType: ''
    returnType: void
    signature: 'void pcmk_quit_main_loop(GMainLoop *mloop, unsigned int n) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_timer_start
      Src: /src/pacemaker/lib/common/mainloop.c:1365,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - t
    - period_ms
    argTypes:
    - mainloop_timer_t*
    - guint
    constantsTouched: []
    func_position:
      end: 1368
      start: 1354
    functionDepth: 0
    functionLinenumber: 1354
    functionLinenumberEnd: 1368
    functionName: mainloop_timer_set_period
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - mainloop_timer_start
    linkageType: ''
    returnType: guint
    signature: 'guint mainloop_timer_set_period(mainloop_timer_t *t, guint period_ms) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/mainloop.c:187,1
    - Dst: mainloop_setup_trigger
      Src: /src/pacemaker/lib/common/mainloop.c:190,1
    - Dst: g_source_new
      Src: /src/pacemaker/lib/common/mainloop.c:188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - priority
    - (*dispatch)
    - userdata
    argTypes:
    - int
    - int
    - gpointer
    constantsTouched: []
    func_position:
      end: 191
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 191
    functionName: mainloop_add_trigger
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_source_new
    - mainloop_setup_trigger
    linkageType: ''
    returnType: crm_trigger_t*
    signature: 'crm_trigger_t *mainloop_add_trigger(int priority, int (*dispatch)
      (gpointer user_data), gpointer userdata) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/mainloop.c:366,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/mainloop.c:374,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:370,1
    - Dst: g_source_new
      Src: /src/pacemaker/lib/common/mainloop.c:379,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/mainloop.c:378,1
    - Dst: mainloop_setup_trigger
      Src: /src/pacemaker/lib/common/mainloop.c:381,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/mainloop.c:382,1
    - Dst: crm_signal_handler
      Src: /src/pacemaker/lib/common/mainloop.c:387,1
    - Dst: mainloop_destroy_signal_entry
      Src: /src/pacemaker/lib/common/mainloop.c:388,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - sig
    - (*dispatch)
    argTypes:
    - int
    - void
    constantsTouched: []
    func_position:
      end: 393
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 393
    functionName: mainloop_add_signal
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - g_source_new
    - mainloop_destroy_signal_entry
    - mainloop_setup_trigger
    - crm_err
    - crm_signal_handler
    - pcmk__assert
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean mainloop_add_signal(int sig, void (*dispatch) (int sig)) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_create_2
      Src: /src/pacemaker/lib/common/mainloop.c:651,1
    - Dst: pick_ipc_type
      Src: /src/pacemaker/lib/common/mainloop.c:654,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/mainloop.c:657,1
    - Dst: qb_ipcs_create
      Src: /src/pacemaker/lib/common/mainloop.c:654,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/mainloop.c:658,1
    - Dst: qb_ipcs_request_rate_limit
      Src: /src/pacemaker/lib/common/mainloop.c:663,1
    - Dst: conv_libqb_prio2ratelimit
      Src: /src/pacemaker/lib/common/mainloop.c:663,1
    - Dst: qb_ipcs_enforce_buffer_size
      Src: /src/pacemaker/lib/common/mainloop.c:667,1
    - Dst: crm_ipc_default_buffer_size
      Src: /src/pacemaker/lib/common/mainloop.c:667,1
    - Dst: qb_ipcs_poll_handlers_set
      Src: /src/pacemaker/lib/common/mainloop.c:668,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/mainloop.c:672,1
    - Dst: qb_ipcs_run
      Src: /src/pacemaker/lib/common/mainloop.c:670,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/common/mainloop.c:672,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 4
    argNames:
    - name
    - type
    - callbacks
    - prio
    argTypes:
    - char*
    - enum qb_ipc_type
    - struct qb_ipcs_service_handlers*
    - enum qb_loop_priority
    constantsTouched: []
    func_position:
      end: 677
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 677
    functionName: mainloop_add_ipc_server_with_prio
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - qb_ipcs_request_rate_limit
    - qb_ipcs_enforce_buffer_size
    - pick_ipc_type
    - qb_ipcs_create
    - qb_ipcs_poll_handlers_set
    - pcmk_strerror
    - pcmk_rc_str
    - crm_ipc_default_buffer_size
    - qb_ipcs_run
    - qb_array_create_2
    - crm_err
    - conv_libqb_prio2ratelimit
    linkageType: ''
    returnType: qb_ipcs_service_t*
    signature: 'qb_ipcs_service_t *mainloop_add_ipc_server_with_prio(const char *name,
      enum qb_ipc_type type, struct qb_ipcs_service_handlers *callbacks, enum qb_loop_priority
      prio) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - mainloop_timer_t*
    constantsTouched: []
    func_position:
      end: 1332
      start: 1325
    functionDepth: 0
    functionLinenumber: 1325
    functionLinenumberEnd: 1332
    functionName: mainloop_timer_running
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool mainloop_timer_running(mainloop_timer_t *t) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 1411
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1411
    functionName: drain_timeout_cb
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean drain_timeout_cb(gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - crm_trigger_t*
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: mainloop_set_trigger
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void mainloop_set_trigger(crm_trigger_t * source) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/mainloop.c:399,1
    - Dst: crm_signal_handler
      Src: /src/pacemaker/lib/common/mainloop.c:402,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/common/mainloop.c:403,1
    - Dst: mainloop_destroy_signal_entry
      Src: /src/pacemaker/lib/common/mainloop.c:409,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 411
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 411
    functionName: mainloop_destroy_signal
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - mainloop_destroy_signal_entry
    - crm_signal_handler
    - crm_err
    - crm_perror
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean mainloop_destroy_signal(int sig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_destroy
      Src: /src/pacemaker/lib/common/mainloop.c:683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - server
    argTypes:
    - qb_ipcs_service_t*
    constantsTouched: []
    func_position:
      end: 685
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 685
    functionName: mainloop_del_ipc_server
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - qb_ipcs_destroy
    linkageType: ''
    returnType: void
    signature: 'void mainloop_del_ipc_server(qb_ipcs_service_t * server) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_timer_stop
      Src: /src/pacemaker/lib/common/mainloop.c:1337,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:1339,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/lib/common/mainloop.c:1340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - mainloop_timer_t*
    constantsTouched: []
    func_position:
      end: 1342
      start: 1334
    functionDepth: 0
    functionLinenumber: 1334
    functionLinenumberEnd: 1342
    functionName: mainloop_timer_start
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - mainloop_timer_stop
    - crm_trace
    - pcmk__create_timer
    linkageType: ''
    returnType: void
    signature: 'void mainloop_timer_start(mainloop_timer_t *t) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:1393,1
    - Dst: free
      Src: /src/pacemaker/lib/common/mainloop.c:1395,1
    - Dst: mainloop_timer_stop
      Src: /src/pacemaker/lib/common/mainloop.c:1394,1
    - Dst: free
      Src: /src/pacemaker/lib/common/mainloop.c:1396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - mainloop_timer_t*
    constantsTouched: []
    func_position:
      end: 1398
      start: 1389
    functionDepth: 0
    functionLinenumber: 1389
    functionLinenumberEnd: 1398
    functionName: mainloop_timer_del
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - mainloop_timer_stop
    - free
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void mainloop_timer_del(mainloop_timer_t *t) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/mainloop.c:874,1
    - Dst: pcmk__connect_generic_ipc
      Src: /src/pacemaker/lib/common/mainloop.c:877,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/mainloop.c:879,1
    - Dst: crm_ipc_name
      Src: /src/pacemaker/lib/common/mainloop.c:876,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/mainloop.c:876,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/mainloop.c:879,1
    - Dst: pcmk__ipc_fd
      Src: /src/pacemaker/lib/common/mainloop.c:883,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/mainloop.c:885,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/mainloop.c:886,1
    - Dst: crm_ipc_close
      Src: /src/pacemaker/lib/common/mainloop.c:887,1
    - Dst: crm_ipc_close
      Src: /src/pacemaker/lib/common/mainloop.c:894,1
    - Dst: mainloop_add_fd
      Src: /src/pacemaker/lib/common/mainloop.c:891,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 5
    argNames:
    - ipc
    - priority
    - userdata
    - callbacks
    - source
    argTypes:
    - crm_ipc_t*
    - int
    - void*
    - struct ipc_client_callbacks*
    - mainloop_io_t**
    constantsTouched: []
    func_position:
      end: 902
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 902
    functionName: pcmk__add_mainloop_ipc
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_ipc_close
    - CRM_CHECK
    - pcmk__s
    - pcmk__ipc_fd
    - mainloop_add_fd
    - crm_ipc_name
    - pcmk_rc_str
    - pcmk__connect_generic_ipc
    linkageType: ''
    returnType: int
    signature: 'int pcmk__add_mainloop_ipc(crm_ipc_t *ipc, int priority, void *userdata,
      const struct ipc_client_callbacks *callbacks, mainloop_io_t **source) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/mainloop.c:1455,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/lib/common/mainloop.c:1461,1
    - Dst: time
      Src: /src/pacemaker/lib/common/mainloop.c:1459,1
    - Dst: g_main_loop_get_context
      Src: /src/pacemaker/lib/common/mainloop.c:1457,1
    - Dst: check
      Src: /src/pacemaker/lib/common/mainloop.c:1463,1
    - Dst: time
      Src: /src/pacemaker/lib/common/mainloop.c:1463,1
    - Dst: g_main_context_iteration
      Src: /src/pacemaker/lib/common/mainloop.c:1464,1
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/common/mainloop.c:1468,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - mloop
    - timer_ms
    - (*check)
    argTypes:
    - GMainLoop*
    - guint
    - bool
    constantsTouched: []
    func_position:
      end: 1470
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1470
    functionName: pcmk_drain_main_loop
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - g_main_context_iteration
    - time
    - check
    - g_main_loop_get_context
    - g_source_remove
    - pcmk__create_timer
    linkageType: ''
    returnType: void
    signature: 'void pcmk_drain_main_loop(GMainLoop *mloop, guint timer_ms, bool (*check)(guint)) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - source
    argTypes:
    - GSource*
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: crm_trigger_finalize
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void crm_trigger_finalize(GSource * source) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_source_destroy
      Src: /src/pacemaker/lib/common/mainloop.c:212,1
    - Dst: g_source_unref
      Src: /src/pacemaker/lib/common/mainloop.c:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - source
    argTypes:
    - crm_trigger_t*
    constantsTouched: []
    func_position:
      end: 222
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 222
    functionName: mainloop_destroy_trigger
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - g_source_unref
    - g_source_destroy
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean mainloop_destroy_trigger(crm_trigger_t * source) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/lib/common/mainloop.c:278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 280
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 280
    functionName: mainloop_signal_handler
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - mainloop_set_trigger
    linkageType: ''
    returnType: void
    signature: 'static void mainloop_signal_handler(int sig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gio_poll_dispatch_update
      Src: /src/pacemaker/lib/common/mainloop.c:578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - p
    - fd
    - evts
    - data
    - fn
    argTypes:
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_ipcs_dispatch_fn_t
    constantsTouched: []
    func_position:
      end: 579
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 579
    functionName: gio_poll_dispatch_add
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - gio_poll_dispatch_update
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t gio_poll_dispatch_add(enum qb_loop_priority p, int32_t
      fd, int32_t evts, void *data, qb_ipcs_dispatch_fn_t fn) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/mainloop.c:613,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/mainloop.c:615,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/mainloop.c:619,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/mainloop.c:621,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/mainloop.c:617,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 1
    argNames:
    - requested
    argTypes:
    - enum qb_ipc_type
    constantsTouched: []
    func_position:
      end: 633
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 633
    functionName: pick_ipc_type
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - pcmk__env_option
    - strcmp
    linkageType: ''
    returnType: enum qb_ipc_type
    signature: 'static enum qb_ipc_type pick_ipc_type(enum qb_ipc_type requested) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/common/mainloop.c:814,1
    - Dst: crm_ipc_close
      Src: /src/pacemaker/lib/common/mainloop.c:822,1
    - Dst: destroy_fn
      Src: /src/pacemaker/lib/common/mainloop.c:829,1
    - Dst: crm_ipc_destroy
      Src: /src/pacemaker/lib/common/mainloop.c:836,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:819,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:839,1
    - Dst: free
      Src: /src/pacemaker/lib/common/mainloop.c:841,1
    - Dst: free
      Src: /src/pacemaker/lib/common/mainloop.c:842,1
    - Dst: free
      Src: /src/pacemaker/lib/common/mainloop.c:844,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 845
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 845
    functionName: mainloop_gio_destroy
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - crm_ipc_close
    - crm_ipc_destroy
    - destroy_fn
    - free
    - strdup
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void mainloop_gio_destroy(gpointer c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_del_fd
      Src: /src/pacemaker/lib/common/mainloop.c:948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - client
    argTypes:
    - mainloop_io_t*
    constantsTouched: []
    func_position:
      end: 949
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 949
    functionName: mainloop_del_ipc_client
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - mainloop_del_fd
    linkageType: ''
    returnType: void
    signature: 'void mainloop_del_ipc_client(mainloop_io_t * client) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/mainloop.c:967,1
    - Dst: g_io_channel_unix_new
      Src: /src/pacemaker/lib/common/mainloop.c:980,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/mainloop.c:971,1
    - Dst: g_io_add_watch_full
      Src: /src/pacemaker/lib/common/mainloop.c:982,1
    - Dst: g_io_channel_unref
      Src: /src/pacemaker/lib/common/mainloop.c:995,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:996,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 5
    argNames:
    - name
    - priority
    - fd
    - userdata
    - callbacks
    argTypes:
    - char*
    - int
    - int
    - void*
    - struct mainloop_fd_callbacks*
    constantsTouched: []
    func_position:
      end: 1002
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 1002
    functionName: mainloop_add_fd
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - g_io_add_watch_full
    - calloc
    - g_io_channel_unix_new
    - g_io_channel_unref
    - strdup
    - crm_trace
    linkageType: ''
    returnType: mainloop_io_t*
    signature: 'mainloop_io_t *mainloop_add_fd(const char *name, int priority, int
      fd, void *userdata, struct mainloop_fd_callbacks * callbacks) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gio_poll_dispatch_update
      Src: /src/pacemaker/lib/common/mainloop.c:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - p
    - fd
    - evts
    - data
    - fn
    argTypes:
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_ipcs_dispatch_fn_t
    constantsTouched: []
    func_position:
      end: 586
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 586
    functionName: gio_poll_dispatch_mod
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - gio_poll_dispatch_update
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t gio_poll_dispatch_mod(enum qb_loop_priority p, int32_t
      fd, int32_t evts, void *data, qb_ipcs_dispatch_fn_t fn) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_add_ipc_server_with_prio
      Src: /src/pacemaker/lib/common/mainloop.c:639,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - name
    - type
    - callbacks
    argTypes:
    - char*
    - enum qb_ipc_type
    - struct qb_ipcs_service_handlers*
    constantsTouched: []
    func_position:
      end: 640
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 640
    functionName: mainloop_add_ipc_server
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - mainloop_add_ipc_server_with_prio
    linkageType: ''
    returnType: qb_ipcs_service_t*
    signature: 'qb_ipcs_service_t *mainloop_add_ipc_server(const char *name, enum
      qb_ipc_type type, struct qb_ipcs_service_handlers *callbacks) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - client
    argTypes:
    - mainloop_io_t*
    constantsTouched: []
    func_position:
      end: 958
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 958
    functionName: mainloop_get_ipc_client
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: crm_ipc_t*
    signature: 'crm_ipc_t *mainloop_get_ipc_client(mainloop_io_t * client) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:1008,1
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/common/mainloop.c:1013,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - client
    argTypes:
    - mainloop_io_t*
    constantsTouched: []
    func_position:
      end: 1016
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1016
    functionName: mainloop_del_fd
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - crm_trace
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: 'void mainloop_del_fd(mainloop_io_t * client) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - child
    argTypes:
    - mainloop_child_t*
    constantsTouched: []
    func_position:
      end: 1024
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1024
    functionName: mainloop_child_pid
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: pid_t
    signature: 'pid_t mainloop_child_pid(mainloop_child_t * child) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - child
    argTypes:
    - mainloop_child_t*
    constantsTouched: []
    func_position:
      end: 1048
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1048
    functionName: mainloop_clear_child_userdata
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void mainloop_clear_child_userdata(mainloop_child_t * child) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: child_waitpid
      Src: /src/pacemaker/lib/common/mainloop.c:1178,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/mainloop.c:1182,1
    - Dst: child_free
      Src: /src/pacemaker/lib/common/mainloop.c:1183,1
    - Dst: g_list_remove_link
      Src: /src/pacemaker/lib/common/mainloop.c:1181,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:1179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - signal
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1186
      start: 1170
    functionDepth: 0
    functionLinenumber: 1170
    functionLinenumberEnd: 1186
    functionName: child_death_dispatch
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - g_list_free
    - g_list_remove_link
    - child_free
    - child_waitpid
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void child_death_dispatch(int signal) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:1191,1
    - Dst: child_death_dispatch
      Src: /src/pacemaker/lib/common/mainloop.c:1196,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/lib/common/mainloop.c:1193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 1198
      start: 1188
    functionDepth: 0
    functionLinenumber: 1188
    functionLinenumberEnd: 1198
    functionName: child_signal_init
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - child_death_dispatch
    - crm_trace
    - mainloop_add_signal
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean child_signal_init(gpointer p) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: child_kill_helper
      Src: /src/pacemaker/lib/common/mainloop.c:1221,1
    - Dst: child_free
      Src: /src/pacemaker/lib/common/mainloop.c:1245,1
    - Dst: child_waitpid
      Src: /src/pacemaker/lib/common/mainloop.c:1239,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:1228,1
    - Dst: g_list_remove
      Src: /src/pacemaker/lib/common/mainloop.c:1244,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    constantsTouched: []
    func_position:
      end: 1247
      start: 1200
    functionDepth: 0
    functionLinenumber: 1200
    functionLinenumberEnd: 1247
    functionName: mainloop_child_kill
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - child_kill_helper
    - child_free
    - child_waitpid
    - g_list_remove
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean mainloop_child_kill(pid_t pid) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/mainloop.c:1261,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/lib/common/mainloop.c:1272,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/lib/common/mainloop.c:1283,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/mainloop.c:1275,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/mainloop.c:1269,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 6
    argNames:
    - pid
    - timeout
    - desc
    - privatedata
    - flags
    - (*callback)
    argTypes:
    - pid_t
    - int
    - char*
    - void*
    - enum mainloop_child_flags
    - void
    constantsTouched: []
    func_position:
      end: 1285
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1285
    functionName: mainloop_child_add_with_flags
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - pcmk__assert_alloc
    - g_list_append
    - pcmk__create_timer
    linkageType: ''
    returnType: void
    signature: 'void mainloop_child_add_with_flags(pid_t pid, int timeout, const char
      *desc, void *privatedata, enum mainloop_child_flags flags, void (*callback)
      (mainloop_child_t * p, pid_t pid, int core, int signo, int exitcode)) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_source_set_callback
      Src: /src/pacemaker/lib/common/mainloop.c:152,1
    - Dst: g_source_set_priority
      Src: /src/pacemaker/lib/common/mainloop.c:155,1
    - Dst: g_source_set_can_recurse
      Src: /src/pacemaker/lib/common/mainloop.c:156,1
    - Dst: g_source_attach
      Src: /src/pacemaker/lib/common/mainloop.c:158,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 4
    argNames:
    - source
    - priority
    - (*dispatch)
    - userdata
    argTypes:
    - GSource*
    - int
    - int
    - gpointer
    constantsTouched: []
    func_position:
      end: 160
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 160
    functionName: mainloop_setup_trigger
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - g_source_set_priority
    - g_source_set_can_recurse
    - g_source_set_callback
    - g_source_attach
    linkageType: ''
    returnType: crm_trigger_t*
    signature: 'static crm_trigger_t *mainloop_setup_trigger(GSource * source, int
      priority, int (*dispatch) (gpointer user_data), gpointer userdata) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:593,1
    - Dst: qb_array_index
      Src: /src/pacemaker/lib/common/mainloop.c:594,1
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/common/mainloop.c:596,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 601
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 601
    functionName: gio_poll_dispatch_del
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - qb_array_index
    - crm_trace
    - g_source_remove
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t gio_poll_dispatch_del(int32_t fd) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/mainloop.c:718,1
    - Dst: crm_ipc_read
      Src: /src/pacemaker/lib/common/mainloop.c:726,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/common/mainloop.c:729,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:728,1
    - Dst: g_io_channel_unix_get_fd
      Src: /src/pacemaker/lib/common/mainloop.c:718,1
    - Dst: crm_ipc_buffer
      Src: /src/pacemaker/lib/common/mainloop.c:736,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:738,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:742,1
    - Dst: pcmk__ipc_free_client_buffer
      Src: /src/pacemaker/lib/common/mainloop.c:747,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/mainloop.c:764,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:769,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/mainloop.c:801,1
    - Dst: crm_ipc_connected
      Src: /src/pacemaker/lib/common/mainloop.c:763,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:752,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:756,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 3
    argNames:
    - gio
    - condition
    - data
    argTypes:
    - GIOChannel*
    - GIOCondition
    - gpointer
    constantsTouched: []
    func_position:
      end: 808
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 808
    functionName: mainloop_gio_callback
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - crm_ipc_buffer
    - crm_ipc_read
    - g_io_channel_unix_get_fd
    - crm_err
    - pcmk__ipc_free_client_buffer
    - crm_ipc_connected
    - pcmk__assert
    - pcmk_strerror
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean mainloop_gio_callback(GIOChannel *gio, GIOCondition
      condition, gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - child
    argTypes:
    - mainloop_child_t*
    constantsTouched: []
    func_position:
      end: 1030
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1030
    functionName: mainloop_child_name
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *mainloop_child_name(mainloop_child_t * child) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/mainloop.c:1093,1
    - Dst: child_kill_helper
      Src: /src/pacemaker/lib/common/mainloop.c:1097,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/lib/common/mainloop.c:1106,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/mainloop.c:1104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 1108
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1108
    functionName: child_timeout_callback
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_warn
    - child_kill_helper
    - pcmk__create_timer
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean child_timeout_callback(gpointer p) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_child_add_with_flags
      Src: /src/pacemaker/lib/common/mainloop.c:1291,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 5
    argNames:
    - pid
    - timeout
    - desc
    - privatedata
    - (*callback)
    argTypes:
    - pid_t
    - int
    - char*
    - void*
    - void
    constantsTouched: []
    func_position:
      end: 1292
      start: 1287
    functionDepth: 0
    functionLinenumber: 1287
    functionLinenumberEnd: 1292
    functionName: mainloop_child_add
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - mainloop_child_add_with_flags
    linkageType: ''
    returnType: void
    signature: 'void mainloop_child_add(pid_t pid, int timeout, const char *desc,
      void *privatedata, void (*callback) (mainloop_child_t * p, pid_t pid, int core,
      int signo, int exitcode)) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - trig
    argTypes:
    - crm_trigger_t*
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: mainloop_trigger_complete
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void mainloop_trigger_complete(crm_trigger_t * trig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - child
    argTypes:
    - mainloop_child_t*
    constantsTouched: []
    func_position:
      end: 1036
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1036
    functionName: mainloop_child_timeout
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int mainloop_child_timeout(mainloop_child_t * child) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/pacemaker/lib/common/mainloop.c:1120,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:1122,1
    - Dst: WIFEXITED
      Src: /src/pacemaker/lib/common/mainloop.c:1141,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/mainloop.c:1138,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/mainloop.c:1139,1
    - Dst: WEXITSTATUS
      Src: /src/pacemaker/lib/common/mainloop.c:1142,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:1143,1
    - Dst: WIFSIGNALED
      Src: /src/pacemaker/lib/common/mainloop.c:1146,1
    - Dst: WTERMSIG
      Src: /src/pacemaker/lib/common/mainloop.c:1147,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:1148,1
    - Dst: strsignal
      Src: /src/pacemaker/lib/common/mainloop.c:1149,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/mainloop.c:1154,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:1159,1
    - Dst: WCOREDUMP
      Src: /src/pacemaker/lib/common/mainloop.c:1152,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - child
    - flags
    argTypes:
    - mainloop_child_t*
    - int
    constantsTouched: []
    func_position:
      end: 1168
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1168
    functionName: child_waitpid
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - WTERMSIG
    - waitpid
    - WIFSIGNALED
    - WCOREDUMP
    - crm_notice
    - crm_err
    - WIFEXITED
    - WEXITSTATUS
    - pcmk_rc_str
    - strsignal
    - crm_trace
    linkageType: ''
    returnType: bool
    signature: 'static bool child_waitpid(mainloop_child_t *child, int flags) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/mainloop.c:1301,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:1312,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:1309,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 1323
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1323
    functionName: mainloop_timer_cb
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean mainloop_timer_cb(gpointer user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - prio
    argTypes:
    - enum qb_loop_priority
    constantsTouched: []
    func_position:
      end: 485
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 485
    functionName: conv_prio_libqb2glib
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gint
    signature: 'static gint conv_prio_libqb2glib(enum qb_loop_priority prio) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/mainloop.c:1348,1
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/common/mainloop.c:1349,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - t
    argTypes:
    - mainloop_timer_t*
    constantsTouched: []
    func_position:
      end: 1352
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1352
    functionName: mainloop_timer_stop
    functionSourceFile: /src/pacemaker/lib/common/mainloop.c
    functionUses: []
    functionsReached:
    - crm_trace
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: 'void mainloop_timer_stop(mainloop_timer_t *t) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__check_acl
      Src: /src/pacemaker/lib/common/xml_attr.c:54,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml_attr.c:56,1
    - Dst: pcmk__xml_doc_all_flags_set
      Src: /src/pacemaker/lib/common/xml_attr.c:62,1
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/xml_attr.c:66,1
    - Dst: pcmk__xml_set_parent_flags
      Src: /src/pacemaker/lib/common/xml_attr.c:65,1
    - Dst: pcmk__xml_free_private_data
      Src: /src/pacemaker/lib/common/xml_attr.c:69,1
    - Dst: xmlRemoveProp
      Src: /src/pacemaker/lib/common/xml_attr.c:70,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - attr
    - force
    argTypes:
    - xmlAttr*
    - bool
    constantsTouched: []
    func_position:
      end: 73
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 73
    functionName: pcmk__xa_remove
    functionSourceFile: /src/pacemaker/lib/common/xml_attr.c
    functionUses: []
    functionsReached:
    - pcmk__xml_doc_all_flags_set
    - pcmk__set_xml_flags
    - pcmk__xml_set_parent_flags
    - pcmk__xml_free_private_data
    - pcmk__check_acl
    - xmlRemoveProp
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xa_remove(xmlAttr *attr, bool force) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/xml_attr.c:81,1
    - Dst: pcmk__mark_xml_node_dirty
      Src: /src/pacemaker/lib/common/xml_attr.c:83,1
    - Dst: pcmk__clear_xml_flags
      Src: /src/pacemaker/lib/common/xml_attr.c:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - xmlAttr*
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: pcmk__mark_xml_attr_dirty
    functionSourceFile: /src/pacemaker/lib/common/xml_attr.c
    functionUses: []
    functionsReached:
    - pcmk__mark_xml_node_dirty
    - pcmk__clear_xml_flags
    - pcmk__set_xml_flags
    linkageType: ''
    returnType: void
    signature: 'void pcmk__mark_xml_attr_dirty(xmlAttr *a) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_attr.c:119,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/xml_attr.c:133,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/xml_attr.c:138,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/xml_attr.c:139,1
    - Dst: pcmk__xml_escape
      Src: /src/pacemaker/lib/common/xml_attr.c:134,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 2
    argNames:
    - attr
    - buffer
    argTypes:
    - xmlAttr*
    - GString*
    constantsTouched: []
    func_position:
      end: 140
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 140
    functionName: pcmk__dump_xml_attr
    functionSourceFile: /src/pacemaker/lib/common/xml_attr.c
    functionUses: []
    functionsReached:
    - pcmk__xml_needs_escape
    - pcmk_is_set
    - pcmk__xml_escape
    - g_free
    - pcmk__g_strcat
    linkageType: ''
    returnType: void
    signature: 'void pcmk__dump_xml_attr(const xmlAttr *attr, GString *buffer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_attr.c:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - a
    - user_data
    argTypes:
    - xmlAttrPtr
    - void*
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: pcmk__marked_as_deleted
    functionSourceFile: /src/pacemaker/lib/common/xml_attr.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__marked_as_deleted(xmlAttrPtr a, void *user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/nodes.c:29,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/nodes.c:40,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/common/nodes.c:37,1
    - Dst: pcmk__is_pacemaker_remote_node
      Src: /src/pacemaker/lib/common/nodes.c:36,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/nodes.c:36,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/nodes.c:43,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/nodes.c:46,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/nodes.c:48,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/nodes.c:49,1
    - Dst: free
      Src: /src/pacemaker/lib/common/nodes.c:50,1
    - Dst: free
      Src: /src/pacemaker/lib/common/nodes.c:51,1
    - Dst: free
      Src: /src/pacemaker/lib/common/nodes.c:53,1
    - Dst: free
      Src: /src/pacemaker/lib/common/nodes.c:52,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 54
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 54
    functionName: pcmk__free_node
    functionSourceFile: /src/pacemaker/lib/common/nodes.c
    functionUses: []
    functionsReached:
    - g_list_free
    - g_hash_table_destroy
    - pcmk__is_pacemaker_remote_node
    - pcmk__node_name
    - free
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void pcmk__free_node(gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: pcmk_node_is_online
    functionSourceFile: /src/pacemaker/lib/common/nodes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk_node_is_online(const pcmk_node_t *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: pcmk_node_is_shutting_down
    functionSourceFile: /src/pacemaker/lib/common/nodes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk_node_is_shutting_down(const pcmk_node_t *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/pacemaker/lib/common/nodes.c:178,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 3
    argNames:
    - node
    - (*fn)
    - user_data
    argTypes:
    - pcmk_node_t*
    - bool
    - void*
    constantsTouched: []
    func_position:
      end: 185
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 185
    functionName: pcmk_foreach_active_resource
    functionSourceFile: /src/pacemaker/lib/common/nodes.c
    functionUses: []
    functionsReached:
    - fn
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk_foreach_active_resource(pcmk_node_t *node, bool (*fn)(pcmk_resource_t
      *, void *), void *user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/nodes.c:203,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 2
    argNames:
    - nodes
    - node_name
    argTypes:
    - GList*
    - char*
    constantsTouched: []
    func_position:
      end: 209
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 209
    functionName: pcmk__find_node_in_list
    functionSourceFile: /src/pacemaker/lib/common/nodes.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'pcmk_node_t *pcmk__find_node_in_list(const GList *nodes, const char
      *node_name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: pcmk_node_is_clean
    functionSourceFile: /src/pacemaker/lib/common/nodes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk_node_is_clean(const pcmk_node_t *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: pcmk_node_is_pending
    functionSourceFile: /src/pacemaker/lib/common/nodes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk_node_is_pending(const pcmk_node_t *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/nodes.c:70,1
    - Dst: free
      Src: /src/pacemaker/lib/common/nodes.c:72,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: pcmk__free_node_copy
    functionSourceFile: /src/pacemaker/lib/common/nodes.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void pcmk__free_node_copy(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk_node_t*
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: pcmk_node_is_in_maintenance
    functionSourceFile: /src/pacemaker/lib/common/nodes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk_node_is_in_maintenance(const pcmk_node_t *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/nodes.c:230,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/common/nodes.c:231,1
    - Dst: free
      Src: /src/pacemaker/lib/common/nodes.c:233,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/nodes.c:235,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 2
    argNames:
    - cib
    - node
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 239
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 239
    functionName: pcmk_cib_node_shutdown
    functionSourceFile: /src/pacemaker/lib/common/nodes.c
    functionUses: []
    functionsReached:
    - pcmk__xpath_find_one
    - free
    - crm_element_value
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk_cib_node_shutdown(xmlNode *cib, const char *node) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/common/agents.c:34,1
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/common/agents.c:39,1
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/common/agents.c:54,1
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/common/agents.c:55,1
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/common/agents.c:51,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - standard
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 59
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 59
    functionName: pcmk_get_ra_caps
    functionSourceFile: /src/pacemaker/lib/common/agents.c
    functionUses: []
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t pcmk_get_ra_caps(const char *standard) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/agents.c:170,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/common/agents.c:174,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/agents.c:177,1
    - Dst: strchr
      Src: /src/pacemaker/lib/common/agents.c:188,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/agents.c:189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - param
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 190
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 190
    functionName: pcmk_stonith_param
    functionSourceFile: /src/pacemaker/lib/common/agents.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - strchr
    - pcmk__starts_with
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk_stonith_param(const char *param) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/agents.c:86,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/agents.c:94,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/agents.c:88,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/agents.c:87,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 3
    argNames:
    - standard
    - provider
    - type
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: crm_generate_ra_key
    functionSourceFile: /src/pacemaker/lib/common/agents.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pcmk__str_empty
    linkageType: ''
    returnType: char*
    signature: 'char *crm_generate_ra_key(const char *standard, const char *provider,
      const char *type) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 80
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 80
    functionName: pcmk__effective_rc
    functionSourceFile: /src/pacemaker/lib/common/agents.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int pcmk__effective_rc(int rc) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/agents.c:120,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/common/agents.c:133,1
    - Dst: strndup
      Src: /src/pacemaker/lib/common/agents.c:130,1
    - Dst: strchr
      Src: /src/pacemaker/lib/common/agents.c:125,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/agents.c:133,1
    - Dst: strchr
      Src: /src/pacemaker/lib/common/agents.c:134,1
    - Dst: free
      Src: /src/pacemaker/lib/common/agents.c:136,1
    - Dst: strndup
      Src: /src/pacemaker/lib/common/agents.c:139,1
    - Dst: free
      Src: /src/pacemaker/lib/common/agents.c:144,1
    - Dst: free
      Src: /src/pacemaker/lib/common/agents.c:145,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/agents.c:149,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 4
    argNames:
    - spec
    - standard
    - provider
    - type
    argTypes:
    - char*
    - char**
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 151
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 151
    functionName: crm_parse_agent_spec
    functionSourceFile: /src/pacemaker/lib/common/agents.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - strchr
    - strndup
    - pcmk_is_set
    - free
    - strdup
    - pcmk_get_ra_caps
    linkageType: ''
    returnType: int
    signature: 'int crm_parse_agent_spec(const char *spec, char **standard, char **provider,
      char **type) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strerror
      Src: /src/pacemaker/lib/common/unittest.c:36,1
    - Dst: pcmk__get_tmpdir
      Src: /src/pacemaker/lib/common/unittest.c:30,1
    - Dst: mkstemp
      Src: /src/pacemaker/lib/common/unittest.c:34,1
    - Dst: unlink
      Src: /src/pacemaker/lib/common/unittest.c:41,1
    - Dst: free
      Src: /src/pacemaker/lib/common/unittest.c:67,1
    - Dst: free
      Src: /src/pacemaker/lib/common/unittest.c:71,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/unittest.c:29,1
    - Dst: fail_msg
      Src: /src/pacemaker/lib/common/unittest.c:36,1
    - Dst: close
      Src: /src/pacemaker/lib/common/unittest.c:45,1
    - Dst: WEXITSTATUS
      Src: /src/pacemaker/lib/common/unittest.c:62,1
    - Dst: fail_msg
      Src: /src/pacemaker/lib/common/unittest.c:64,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/unittest.c:68,1
    - Dst: pcmk__xml2fd
      Src: /src/pacemaker/lib/common/unittest.c:39,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/unittest.c:42,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/unittest.c:54,1
    - Dst: unlink
      Src: /src/pacemaker/lib/common/unittest.c:58,1
    - Dst: unlink
      Src: /src/pacemaker/lib/common/unittest.c:50,1
    - Dst: fail_msg
      Src: /src/pacemaker/lib/common/unittest.c:51,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/unittest.c:69,1
    - Dst: fail_msg
      Src: /src/pacemaker/lib/common/unittest.c:42,1
    - Dst: fail_msg
      Src: /src/pacemaker/lib/common/unittest.c:59,1
    - Dst: WIFEXITED
      Src: /src/pacemaker/lib/common/unittest.c:62,1
    - Dst: g_spawn_command_line_sync
      Src: /src/pacemaker/lib/common/unittest.c:57,1
    - Dst: getenv
      Src: /src/pacemaker/lib/common/unittest.c:48,1
    - Dst: unlink
      Src: /src/pacemaker/lib/common/unittest.c:63,1
    - Dst: unlink
      Src: /src/pacemaker/lib/common/unittest.c:70,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 72
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 72
    functionName: pcmk__assert_validates
    functionSourceFile: /src/pacemaker/lib/common/unittest.c
    functionUses: []
    functionsReached:
    - fail_msg
    - crm_strdup_printf
    - g_spawn_command_line_sync
    - strerror
    - getenv
    - unlink
    - free
    - WIFEXITED
    - mkstemp
    - pcmk_rc_str
    - WEXITSTATUS
    - pcmk__get_tmpdir
    - pcmk__xml2fd
    - g_free
    - close
    linkageType: ''
    returnType: void
    signature: 'void pcmk__assert_validates(xmlNode *xml) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/unittest.c:114,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/unittest.c:120,1
    - Dst: mkstemp
      Src: /src/pacemaker/lib/common/unittest.c:122,1
    - Dst: pcmk__get_tmpdir
      Src: /src/pacemaker/lib/common/unittest.c:120,1
    - Dst: getenv
      Src: /src/pacemaker/lib/common/unittest.c:114,1
    - Dst: free
      Src: /src/pacemaker/lib/common/unittest.c:124,1
    - Dst: pcmk__file_contents
      Src: /src/pacemaker/lib/common/unittest.c:128,1
    - Dst: free
      Src: /src/pacemaker/lib/common/unittest.c:129,1
    - Dst: close
      Src: /src/pacemaker/lib/common/unittest.c:130,1
    - Dst: pcmk__write_sync
      Src: /src/pacemaker/lib/common/unittest.c:134,1
    - Dst: free
      Src: /src/pacemaker/lib/common/unittest.c:135,1
    - Dst: close
      Src: /src/pacemaker/lib/common/unittest.c:138,1
    - Dst: free
      Src: /src/pacemaker/lib/common/unittest.c:136,1
    - Dst: free
      Src: /src/pacemaker/lib/common/unittest.c:137,1
    - Dst: setenv
      Src: /src/pacemaker/lib/common/unittest.c:142,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - in_file
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 144
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 144
    functionName: pcmk__cib_test_copy_cib
    functionSourceFile: /src/pacemaker/lib/common/unittest.c
    functionUses: []
    functionsReached:
    - setenv
    - crm_strdup_printf
    - pcmk__write_sync
    - free
    - mkstemp
    - getenv
    - pcmk__get_tmpdir
    - pcmk__file_contents
    - close
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__cib_test_copy_cib(const char *in_file) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__schema_init
      Src: /src/pacemaker/lib/common/unittest.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: pcmk__xml_test_setup_group
    functionSourceFile: /src/pacemaker/lib/common/unittest.c
    functionUses: []
    functionsReached:
    - pcmk__schema_init
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xml_test_setup_group(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/pacemaker/lib/common/unittest.c:149,1
    - Dst: free
      Src: /src/pacemaker/lib/common/unittest.c:150,1
    - Dst: unsetenv
      Src: /src/pacemaker/lib/common/unittest.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - out_path
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: pcmk__cib_test_cleanup
    functionSourceFile: /src/pacemaker/lib/common/unittest.c
    functionUses: []
    functionsReached:
    - unsetenv
    - free
    - unlink
    linkageType: ''
    returnType: void
    signature: 'void pcmk__cib_test_cleanup(char *out_path) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__schema_cleanup
      Src: /src/pacemaker/lib/common/unittest.c:106,1
    - Dst: xmlCleanupParser
      Src: /src/pacemaker/lib/common/unittest.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: pcmk__xml_test_teardown_group
    functionSourceFile: /src/pacemaker/lib/common/unittest.c
    functionUses: []
    functionsReached:
    - pcmk__schema_cleanup
    - xmlCleanupParser
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xml_test_teardown_group(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/lib/common/unittest.c:166,1
    - Dst: set_crm_log_level
      Src: /src/pacemaker/lib/common/unittest.c:169,1
    - Dst: pcmk__add_logfile
      Src: /src/pacemaker/lib/common/unittest.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - name
    - filename
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 171
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 171
    functionName: pcmk__test_init_logging
    functionSourceFile: /src/pacemaker/lib/common/unittest.c
    functionUses: []
    functionsReached:
    - pcmk__add_logfile
    - pcmk__cli_init_logging
    - set_crm_log_level
    linkageType: ''
    returnType: void
    signature: 'void pcmk__test_init_logging(const char *name, const char *filename) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_highest_schema
      Src: /src/pacemaker/lib/common/schemas.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: pcmk__highest_schema_name
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - get_highest_schema
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__highest_schema_name(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/schemas.c:229,1
    - Dst: schema_strdup_printf
      Src: /src/pacemaker/lib/common/schemas.c:238,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/schemas.c:243,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/schemas.c:240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - validator
    - version
    - name
    - transforms
    argTypes:
    - enum pcmk__schema_validator
    - pcmk__schema_version_t*
    - char*
    - GList*
    constantsTouched: []
    func_position:
      end: 244
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 244
    functionName: add_schema
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - pcmk__assert_alloc
    - g_list_prepend
    - schema_strdup_printf
    linkageType: ''
    returnType: void
    signature: 'static void add_schema(enum pcmk__schema_validator validator, const
      pcmk__schema_version_t *version, const char *name, GList *transforms) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/schemas.c:714,1
    - Dst: wrap_libxslt
      Src: /src/pacemaker/lib/common/schemas.c:719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 720
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 720
    functionName: pcmk__schema_cleanup
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - g_list_free_full
    - wrap_libxslt
    linkageType: ''
    returnType: void
    signature: 'void pcmk__schema_cleanup(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/schemas.c:760,1
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/schemas.c:761,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 2
    argNames:
    - schema1_name
    - schema2_name
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 775
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 775
    functionName: pcmk__cmp_schemas_by_name
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - pcmk__get_schema
    linkageType: ''
    returnType: int
    signature: 'int pcmk__cmp_schemas_by_name(const char *schema1_name, const char
      *schema2_name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/schemas.c:1122,1
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/schemas.c:1125,1
    - Dst: pcmk__warn_if_schema_deprecated
      Src: /src/pacemaker/lib/common/schemas.c:1124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1126
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1126
    functionName: get_configured_schema
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - pcmk__get_schema
    - pcmk__warn_if_schema_deprecated
    - crm_element_value
    linkageType: ''
    returnType: GList*
    signature: 'static GList *get_configured_schema(const xmlNode *xml) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xml_latest_schema_index
      Src: /src/pacemaker/lib/common/schemas.c:1146,1
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/schemas.c:1159,1
    - Dst: get_configured_schema
      Src: /src/pacemaker/lib/common/schemas.c:1171,1
    - Dst: validate_with
      Src: /src/pacemaker/lib/common/schemas.c:1188,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/schemas.c:1155,1
    - Dst: GUINT_TO_POINTER
      Src: /src/pacemaker/lib/common/schemas.c:1189,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/schemas.c:1190,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/schemas.c:1199,1
    - Dst: validate_with_silent
      Src: /src/pacemaker/lib/common/schemas.c:1207,1
    - Dst: apply_upgrade
      Src: /src/pacemaker/lib/common/schemas.c:1215,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/schemas.c:1224,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/schemas.c:1231,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/schemas.c:1234,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 65
    argCount: 4
    argNames:
    - xml
    - max_schema_name
    - transform
    - to_logs
    argTypes:
    - xmlNode**
    - char*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1237
      start: 1142
    functionDepth: 0
    functionLinenumber: 1142
    functionLinenumberEnd: 1237
    functionName: pcmk__update_schema
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - crm_debug
    - validate_with_silent
    - CRM_CHECK
    - get_configured_schema
    - pcmk__get_schema
    - crm_xml_add
    - validate_with
    - GUINT_TO_POINTER
    - xml_latest_schema_index
    - apply_upgrade
    - pcmk__xml_free
    - crm_info
    linkageType: ''
    returnType: int
    signature: 'int pcmk__update_schema(xmlNode **xml, const char *max_schema_name,
      bool transform, bool to_logs) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: version_from_filename
      Src: /src/pacemaker/lib/common/schemas.c:1385,1
    - Dst: g_list_nth
      Src: /src/pacemaker/lib/common/schemas.c:1389,1
    - Dst: schema_cmp
      Src: /src/pacemaker/lib/common/schemas.c:1393,1
    - Dst: g_list_last
      Src: /src/pacemaker/lib/common/schemas.c:1397,1
    - Dst: xml_latest_schema_index
      Src: /src/pacemaker/lib/common/schemas.c:1389,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/schemas.c:1402,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/schemas.c:1402,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/schemas.c:1405,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/schemas.c:1405,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1409
      start: 1379
    functionDepth: 0
    functionLinenumber: 1379
    functionLinenumberEnd: 1409
    functionName: pcmk__schema_files_later_than
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - g_list_nth
    - crm_strdup_printf
    - schema_cmp
    - g_list_last
    - version_from_filename
    - xml_latest_schema_index
    - pcmk__str_copy
    - g_list_prepend
    linkageType: ''
    returnType: GList*
    signature: 'GList *pcmk__schema_files_later_than(const char *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__update_configured_schema
      Src: /src/pacemaker/lib/common/schemas.c:1242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 1243
      start: 1239
    functionDepth: 0
    functionLinenumber: 1239
    functionLinenumberEnd: 1243
    functionName: pcmk_update_configured_schema
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - pcmk__update_configured_schema
    linkageType: ''
    returnType: int
    signature: 'int pcmk_update_configured_schema(xmlNode **xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/schemas.c:87,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/schemas.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: get_highest_schema
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - pcmk__get_schema
    - pcmk__assert
    linkageType: ''
    returnType: GList*
    signature: 'static GList *get_highest_schema(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: version_from_filename
      Src: /src/pacemaker/lib/common/schemas.c:209,1
    - Dst: version_from_filename
      Src: /src/pacemaker/lib/common/schemas.c:210,1
    - Dst: schema_cmp
      Src: /src/pacemaker/lib/common/schemas.c:215,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct dirent**
    - struct dirent**
    constantsTouched: []
    func_position:
      end: 216
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 216
    functionName: schema_cmp_directory
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - schema_cmp
    - version_from_filename
    linkageType: ''
    returnType: int
    signature: 'static int schema_cmp_directory(const struct dirent **a, const struct
      dirent **b) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_sort
      Src: /src/pacemaker/lib/common/schemas.c:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 539
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 539
    functionName: pcmk__sort_schemas
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - g_list_sort
    linkageType: ''
    returnType: void
    signature: 'void pcmk__sort_schemas(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGFreeParserCtxt
      Src: /src/pacemaker/lib/common/schemas.c:685,1
    - Dst: free
      Src: /src/pacemaker/lib/common/schemas.c:701,1
    - Dst: xmlRelaxNGFreeValidCtxt
      Src: /src/pacemaker/lib/common/schemas.c:689,1
    - Dst: free
      Src: /src/pacemaker/lib/common/schemas.c:696,1
    - Dst: xmlRelaxNGFree
      Src: /src/pacemaker/lib/common/schemas.c:693,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/schemas.c:702,1
    - Dst: free
      Src: /src/pacemaker/lib/common/schemas.c:703,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 704
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 704
    functionName: free_schema
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGFreeValidCtxt
    - g_list_free_full
    - free
    - xmlRelaxNGFreeParserCtxt
    - xmlRelaxNGFree
    linkageType: ''
    returnType: void
    signature: 'static void free_schema(gpointer data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/schemas.c:739,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 744
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 744
    functionName: pcmk__get_schema
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: GList*
    signature: 'GList *pcmk__get_schema(const char *name) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/schemas.c:1060,1
    - Dst: apply_transformation
      Src: /src/pacemaker/lib/common/schemas.c:1081,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/schemas.c:1078,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/schemas.c:1061,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/schemas.c:1068,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/schemas.c:1082,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/schemas.c:1085,1
    - Dst: pcmk__xml_new_private_data
      Src: /src/pacemaker/lib/common/schemas.c:1093,1
    - Dst: validate_with
      Src: /src/pacemaker/lib/common/schemas.c:1096,1
    - Dst: GUINT_TO_POINTER
      Src: /src/pacemaker/lib/common/schemas.c:1097,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/schemas.c:1098,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/schemas.c:1106,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/schemas.c:1102,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/common/schemas.c:1101,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 3
    argNames:
    - input_xml
    - schema_index
    - to_logs
    argTypes:
    - xmlNode*
    - int
    - gboolean
    constantsTouched: []
    func_position:
      end: 1109
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1109
    functionName: apply_upgrade
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_log_xml_debug
    - g_list_nth_data
    - validate_with
    - pcmk__xml_new_private_data
    - apply_transformation
    - GUINT_TO_POINTER
    - pcmk__xml_free
    - pcmk__assert
    - crm_info
    - crm_err
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *apply_upgrade(const xmlNode *input_xml, int schema_index,
      gboolean to_logs) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/schemas.c:1294,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/schemas.c:1325,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/schemas.c:1342,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/schemas.c:1331,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/schemas.c:1357,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/schemas.c:1280,1
    - Dst: pcmk__update_schema
      Src: /src/pacemaker/lib/common/schemas.c:1279,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/schemas.c:1321,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/schemas.c:1317,1
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/schemas.c:1351,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/schemas.c:1352,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/common/schemas.c:1278,1
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/schemas.c:1282,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/schemas.c:1311,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/schemas.c:1315,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/common/schemas.c:1336,1
    - Dst: xml_latest_schema_index
      Src: /src/pacemaker/lib/common/schemas.c:1334,1
    - Dst: pcmk__find_x_0_schema
      Src: /src/pacemaker/lib/common/schemas.c:1257,1
    - Dst: get_configured_schema
      Src: /src/pacemaker/lib/common/schemas.c:1265,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/schemas.c:1301,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 66
    argCount: 2
    argNames:
    - xml
    - to_logs
    argTypes:
    - xmlNode**
    - bool
    constantsTouched: []
    func_position:
      end: 1365
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1365
    functionName: pcmk__update_configured_schema
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__xml_copy
    - get_configured_schema
    - pcmk__s
    - pcmk__get_schema
    - pcmk__config_warn
    - pcmk__find_x_0_schema
    - xml_latest_schema_index
    - pcmk__xml_free
    - crm_element_value
    - pcmk__config_err
    - crm_info
    - fprintf
    - pcmk__update_schema
    linkageType: ''
    returnType: int
    signature: 'int pcmk__update_configured_schema(xmlNode **xml, bool to_logs) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/pacemaker/lib/common/schemas.c:173,1
    - Dst: pcmk__ends_with_ext
      Src: /src/pacemaker/lib/common/schemas.c:176,1
    - Dst: version_from_filename
      Src: /src/pacemaker/lib/common/schemas.c:179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct dirent*
    constantsTouched: []
    func_position:
      end: 188
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 188
    functionName: schema_filter
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - version_from_filename
    - strstr
    - pcmk__ends_with_ext
    linkageType: ''
    returnType: int
    signature: 'static int schema_filter(const struct dirent *a) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/schemas.c:517,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/schemas.c:519,1
    - Dst: schema_cmp
      Src: /src/pacemaker/lib/common/schemas.c:522,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 524
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 524
    functionName: schema_sort_GCompareFunc
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - schema_cmp
    - pcmk__str_eq
    linkageType: ''
    returnType: gint
    signature: 'static gint schema_sort_GCompareFunc(gconstpointer a, gconstpointer
      b) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - a_version
    - b_version
    argTypes:
    - pcmk__schema_version_t
    - pcmk__schema_version_t
    constantsTouched: []
    func_position:
      end: 201
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 201
    functionName: schema_cmp
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int schema_cmp(pcmk__schema_version_t a_version, pcmk__schema_version_t
      b_version) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/schemas.c:301,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/schemas.c:308,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct dirent*
    constantsTouched: []
    func_position:
      end: 317
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 317
    functionName: transform_filter
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - sscanf
    linkageType: ''
    returnType: int
    signature: 'static int transform_filter(const struct dirent *entry) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PCMK__XML_LOG_BASE
      Src: /src/pacemaker/lib/common/schemas.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames:
    - 2, 3
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: G_GNUC_PRINTF
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - PCMK__XML_LOG_BASE
    linkageType: ''
    returnType: void
    signature: 'static void G_GNUC_PRINTF(2, 3) xml_log(int priority, const char *fmt,
      ...){ va_list ap; va_start(ap, fmt); if (silent_logging == FALSE) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_length
      Src: /src/pacemaker/lib/common/schemas.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: xml_latest_schema_index
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - g_list_length
    linkageType: ''
    returnType: int
    signature: 'static int xml_latest_schema_index(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/schemas.c:254,1
    - Dst: xsltSetSecurityPrefs
      Src: /src/pacemaker/lib/common/schemas.c:258,1
    - Dst: xsltSetSecurityPrefs
      Src: /src/pacemaker/lib/common/schemas.c:260,1
    - Dst: xsltSetSecurityPrefs
      Src: /src/pacemaker/lib/common/schemas.c:256,1
    - Dst: xsltNewSecurityPrefs
      Src: /src/pacemaker/lib/common/schemas.c:255,1
    - Dst: xsltSetSecurityPrefs
      Src: /src/pacemaker/lib/common/schemas.c:262,1
    - Dst: xsltFreeSecurityPrefs
      Src: /src/pacemaker/lib/common/schemas.c:268,1
    - Dst: xsltCleanupGlobals
      Src: /src/pacemaker/lib/common/schemas.c:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - finalize
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 276
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 276
    functionName: wrap_libxslt
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - xsltNewSecurityPrefs
    - xsltSetSecurityPrefs
    - xsltFreeSecurityPrefs
    - pcmk__assert
    - xsltCleanupGlobals
    linkageType: ''
    returnType: void
    signature: 'static void wrap_libxslt(bool finalize) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/schemas.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: free_transform_list
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - g_list_free_full
    linkageType: ''
    returnType: void
    signature: 'static void free_transform_list(void *data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: scandir
      Src: /src/pacemaker/lib/common/schemas.c:401,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/schemas.c:407,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/schemas.c:417,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/schemas.c:407,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/schemas.c:411,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/schemas.c:420,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/schemas.c:422,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/schemas.c:432,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/schemas.c:433,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/schemas.c:436,1
    - Dst: free
      Src: /src/pacemaker/lib/common/schemas.c:442,1
    - Dst: free
      Src: /src/pacemaker/lib/common/schemas.c:447,1
    - Dst: free
      Src: /src/pacemaker/lib/common/schemas.c:437,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 1
    argNames:
    - dir
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 449
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 449
    functionName: load_transforms_from_dir
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - g_list_append
    - crm_strdup_printf
    - g_hash_table_lookup
    - pcmk__strkey_table
    - free
    - crm_warn
    - pcmk_rc_str
    - scandir
    - g_hash_table_insert
    - sscanf
    linkageType: ''
    returnType: GHashTable*
    signature: 'static GHashTable *load_transforms_from_dir(const char *dir) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__remote_schema_dir
      Src: /src/pacemaker/lib/common/schemas.c:552,1
    - Dst: pcmk__load_schemas_from_dir
      Src: /src/pacemaker/lib/common/schemas.c:561,1
    - Dst: pcmk__xml_artefact_root
      Src: /src/pacemaker/lib/common/schemas.c:553,1
    - Dst: pcmk__load_schemas_from_dir
      Src: /src/pacemaker/lib/common/schemas.c:562,1
    - Dst: wrap_libxslt
      Src: /src/pacemaker/lib/common/schemas.c:559,1
    - Dst: free
      Src: /src/pacemaker/lib/common/schemas.c:563,1
    - Dst: add_schema
      Src: /src/pacemaker/lib/common/schemas.c:566,1
    - Dst: pcmk__sort_schemas
      Src: /src/pacemaker/lib/common/schemas.c:572,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/schemas.c:578,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 582
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 582
    functionName: pcmk__schema_init
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - crm_debug
    - wrap_libxslt
    - pcmk__load_schemas_from_dir
    - pcmk__sort_schemas
    - free
    - add_schema
    - pcmk__remote_schema_dir
    - pcmk__xml_artefact_root
    linkageType: ''
    returnType: void
    signature: 'void pcmk__schema_init(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__validate_xml
      Src: /src/pacemaker/lib/common/schemas.c:862,1
    - Dst: GUINT_TO_POINTER
      Src: /src/pacemaker/lib/common/schemas.c:864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 865
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 865
    functionName: pcmk__configured_schema_validates
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - pcmk__validate_xml
    - GUINT_TO_POINTER
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__configured_schema_validates(xmlNode *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/common/schemas.c:1415,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/schemas.c:1420,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 2
    argNames:
    - xml
    - user_data
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 1421
      start: 1411
    functionDepth: 0
    functionLinenumber: 1411
    functionLinenumberEnd: 1421
    functionName: append_href
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - crm_element_value_copy
    - g_list_prepend
    linkageType: ''
    returnType: void
    signature: 'static void append_href(xmlNode *xml, void *user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: scandir
      Src: /src/pacemaker/lib/common/schemas.c:458,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/schemas.c:462,1
    - Dst: version_from_filename
      Src: /src/pacemaker/lib/common/schemas.c:472,1
    - Dst: load_transforms_from_dir
      Src: /src/pacemaker/lib/common/schemas.c:467,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/schemas.c:462,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/schemas.c:473,1
    - Dst: g_hash_table_lookup_extended
      Src: /src/pacemaker/lib/common/schemas.c:480,1
    - Dst: g_hash_table_steal
      Src: /src/pacemaker/lib/common/schemas.c:483,1
    - Dst: add_schema
      Src: /src/pacemaker/lib/common/schemas.c:486,1
    - Dst: free
      Src: /src/pacemaker/lib/common/schemas.c:489,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/schemas.c:494,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/schemas.c:506,1
    - Dst: free
      Src: /src/pacemaker/lib/common/schemas.c:500,1
    - Dst: free
      Src: /src/pacemaker/lib/common/schemas.c:490,1
    - Dst: free
      Src: /src/pacemaker/lib/common/schemas.c:504,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 1
    argNames:
    - dir
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 508
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 508
    functionName: pcmk__load_schemas_from_dir
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - g_hash_table_destroy
    - g_hash_table_steal
    - load_transforms_from_dir
    - version_from_filename
    - free
    - crm_warn
    - add_schema
    - pcmk_rc_str
    - scandir
    - g_hash_table_lookup_extended
    linkageType: ''
    returnType: void
    signature: 'void pcmk__load_schemas_from_dir(const char *dir) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/schemas.c:593,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/schemas.c:600,1
    - Dst: xmlRelaxNGNewParserCtxt
      Src: /src/pacemaker/lib/common/schemas.c:603,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/schemas.c:601,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/schemas.c:604,1
    - Dst: xmlRelaxNGSetParserErrors
      Src: /src/pacemaker/lib/common/schemas.c:612,1
    - Dst: xmlRelaxNGParse
      Src: /src/pacemaker/lib/common/schemas.c:618,1
    - Dst: xmlRelaxNGNewValidCtxt
      Src: /src/pacemaker/lib/common/schemas.c:623,1
    - Dst: xmlRelaxNGSetValidErrors
      Src: /src/pacemaker/lib/common/schemas.c:632,1
    - Dst: xmlRelaxNGSetValidErrors
      Src: /src/pacemaker/lib/common/schemas.c:627,1
    - Dst: xmlRelaxNGFree
      Src: /src/pacemaker/lib/common/schemas.c:660,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/schemas.c:624,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/schemas.c:594,1
    - Dst: xmlRelaxNGSetParserErrors
      Src: /src/pacemaker/lib/common/schemas.c:607,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/schemas.c:620,1
    - Dst: free
      Src: /src/pacemaker/lib/common/schemas.c:662,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/schemas.c:619,1
    - Dst: xmlRelaxNGFreeValidCtxt
      Src: /src/pacemaker/lib/common/schemas.c:657,1
    - Dst: xmlRelaxNGFreeParserCtxt
      Src: /src/pacemaker/lib/common/schemas.c:654,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/schemas.c:644,1
    - Dst: xmlRelaxNGValidateDoc
      Src: /src/pacemaker/lib/common/schemas.c:639,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 5
    argNames:
    - doc
    - error_handler
    - error_handler_context
    - relaxng_file
    - cached_ctx
    argTypes:
    - xmlDocPtr
    - xmlRelaxNGValidityErrorFunc
    - void*
    - char*
    - relaxng_ctx_cache_t**
    constantsTouched: []
    func_position:
      end: 666
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 666
    functionName: validate_with_relaxng
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - crm_debug
    - xmlRelaxNGSetValidErrors
    - xmlRelaxNGFreeParserCtxt
    - CRM_CHECK
    - xmlRelaxNGNewValidCtxt
    - xmlRelaxNGFreeValidCtxt
    - xmlRelaxNGValidateDoc
    - pcmk__assert_alloc
    - free
    - xmlRelaxNGNewParserCtxt
    - xmlRelaxNGSetParserErrors
    - xmlRelaxNGParse
    - crm_err
    - xmlRelaxNGFree
    linkageType: ''
    returnType: bool
    signature: 'static bool validate_with_relaxng(xmlDocPtr doc, xmlRelaxNGValidityErrorFunc
      error_handler, void *error_handler_context, const char *relaxng_file, relaxng_ctx_cache_t
      **cached_ctx) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/schemas.c:1430,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/schemas.c:1433,1
    - Dst: pcmk__xpath_foreach_result
      Src: /src/pacemaker/lib/common/schemas.c:1432,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - list
    - contents
    argTypes:
    - GList**
    - char*
    constantsTouched: []
    func_position:
      end: 1434
      start: 1423
    functionDepth: 0
    functionLinenumber: 1423
    functionLinenumberEnd: 1434
    functionName: external_refs_in_schema
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - pcmk__xpath_foreach_result
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void external_refs_in_schema(GList **list, const char *contents) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__update_configured_schema
      Src: /src/pacemaker/lib/common/schemas.c:1584,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/schemas.c:1587,1
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/schemas.c:1592,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 3
    argNames:
    - xml
    - best_version
    - to_logs
    argTypes:
    - xmlNode**
    - int*
    - gboolean
    constantsTouched: []
    func_position:
      end: 1599
      start: 1581
    functionDepth: 0
    functionLinenumber: 1581
    functionLinenumberEnd: 1599
    functionName: cli_config_update
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - pcmk__get_schema
    - pcmk__update_configured_schema
    - crm_element_value
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean cli_config_update(xmlNode **xml, int *best_version, gboolean
      to_logs) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/common/schemas.c:344,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/schemas.c:346,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/schemas.c:344,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/common/schemas.c:346,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 2
    argNames:
    - entry1
    - entry2
    argTypes:
    - struct dirent**
    - struct dirent**
    constantsTouched: []
    func_position:
      end: 368
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 368
    functionName: compare_transforms
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - sscanf
    - CRM_LOG_ASSERT
    linkageType: ''
    returnType: int
    signature: 'static int compare_transforms(const struct dirent **entry1, const
      struct dirent **entry2) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/schemas.c:831,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/schemas.c:834,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/schemas.c:840,1
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/schemas.c:838,1
    - Dst: pcmk__warn_if_schema_deprecated
      Src: /src/pacemaker/lib/common/schemas.c:836,1
    - Dst: validate_with
      Src: /src/pacemaker/lib/common/schemas.c:847,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 4
    argNames:
    - xml_blob
    - validation
    - error_handler
    - error_handler_context
    argTypes:
    - xmlNode*
    - char*
    - xmlRelaxNGValidityErrorFunc
    - void*
    constantsTouched: []
    func_position:
      end: 849
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 849
    functionName: pcmk__validate_xml
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__get_schema
    - validate_with
    - pcmk__warn_if_schema_deprecated
    - crm_element_value
    - pcmk__config_err
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__validate_xml(xmlNode *xml_blob, const char *validation,
      xmlRelaxNGValidityErrorFunc error_handler, void *error_handler_context) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/schemas.c:1547,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/schemas.c:1549,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1554
      start: 1544
    functionDepth: 0
    functionLinenumber: 1544
    functionLinenumberEnd: 1554
    functionName: pcmk__remote_schema_dir
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - pcmk__env_option
    - pcmk__str_empty
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__remote_schema_dir(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_highest_schema
      Src: /src/pacemaker/lib/common/schemas.c:131,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 155
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 155
    functionName: pcmk__find_x_0_schema
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - get_highest_schema
    linkageType: ''
    returnType: GList*
    signature: 'GList *pcmk__find_x_0_schema(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_artefact_path
      Src: /src/pacemaker/lib/common/schemas.c:794,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/schemas.c:798,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/schemas.c:797,1
    - Dst: validate_with_relaxng
      Src: /src/pacemaker/lib/common/schemas.c:802,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/schemas.c:805,1
    - Dst: free
      Src: /src/pacemaker/lib/common/schemas.c:809,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 15
    argCount: 4
    argNames:
    - xml
    - schema
    - error_handler
    - error_handler_context
    argTypes:
    - xmlNode*
    - pcmk__schema_t*
    - xmlRelaxNGValidityErrorFunc
    - void*
    constantsTouched: []
    func_position:
      end: 811
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 811
    functionName: validate_with
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - validate_with_relaxng
    - crm_trace
    - pcmk__s
    - pcmk__xml_artefact_path
    - free
    - crm_err
    linkageType: ''
    returnType: bool
    signature: 'static bool validate_with(xmlNode *xml, pcmk__schema_t *schema, xmlRelaxNGValidityErrorFunc
      error_handler, void *error_handler_context) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_artefact_path
      Src: /src/pacemaker/lib/common/schemas.c:1012,1
    - Dst: xsltSetGenericErrorFunc
      Src: /src/pacemaker/lib/common/schemas.c:1017,1
    - Dst: xsltParseStylesheetFile
      Src: /src/pacemaker/lib/common/schemas.c:1022,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/schemas.c:1023,1
    - Dst: xsltSetGenericErrorFunc
      Src: /src/pacemaker/lib/common/schemas.c:1019,1
    - Dst: xsltApplyStylesheet
      Src: /src/pacemaker/lib/common/schemas.c:1028,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/schemas.c:1029,1
    - Dst: xsltSetGenericErrorFunc
      Src: /src/pacemaker/lib/common/schemas.c:1031,1
    - Dst: xmlDocGetRootElement
      Src: /src/pacemaker/lib/common/schemas.c:1033,1
    - Dst: xsltFreeStylesheet
      Src: /src/pacemaker/lib/common/schemas.c:1037,1
    - Dst: free
      Src: /src/pacemaker/lib/common/schemas.c:1040,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - xml
    - transform
    - to_logs
    argTypes:
    - xmlNode*
    - char*
    - gboolean
    constantsTouched: []
    func_position:
      end: 1043
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1043
    functionName: apply_transformation
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xsltParseStylesheetFile
    - CRM_CHECK
    - xsltFreeStylesheet
    - pcmk__xml_artefact_path
    - free
    - xsltApplyStylesheet
    - xsltSetGenericErrorFunc
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *apply_transformation(const xmlNode *xml, const char
      *transform, gboolean to_logs) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/schemas.c:1442,1
    - Dst: pcmk__xml_artefact_path
      Src: /src/pacemaker/lib/common/schemas.c:1443,1
    - Dst: pcmk__xml_artefact_path
      Src: /src/pacemaker/lib/common/schemas.c:1445,1
    - Dst: pcmk__file_contents
      Src: /src/pacemaker/lib/common/schemas.c:1448,1
    - Dst: free
      Src: /src/pacemaker/lib/common/schemas.c:1450,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - file
    - contents
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1452
      start: 1436
    functionDepth: 0
    functionLinenumber: 1436
    functionLinenumberEnd: 1452
    functionName: read_file_contents
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - pcmk__file_contents
    - pcmk__xml_artefact_path
    - free
    - pcmk__ends_with
    linkageType: ''
    returnType: int
    signature: 'static int read_file_contents(const char *file, char **contents) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/schemas.c:1528,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/schemas.c:1530,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/schemas.c:1535,1
    - Dst: add_schema_file_to_xml
      Src: /src/pacemaker/lib/common/schemas.c:1531,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 3
    argNames:
    - parent
    - name
    - already_included
    argTypes:
    - xmlNode*
    - char*
    - GList**
    constantsTouched: []
    func_position:
      end: 1537
      start: 1525
    functionDepth: 0
    functionLinenumber: 1525
    functionLinenumberEnd: 1537
    functionName: pcmk__build_schema_xml_node
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - add_schema_file_to_xml
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'void pcmk__build_schema_xml_node(xmlNode *parent, const char *name,
      GList **already_included) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/schemas.c:160,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/schemas.c:163,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/schemas.c:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - filename
    - version
    argTypes:
    - char*
    - pcmk__schema_version_t*
    constantsTouched: []
    func_position:
      end: 165
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 165
    functionName: version_from_filename
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - pcmk__ends_with
    - sscanf
    linkageType: ''
    returnType: bool
    signature: 'static inline bool version_from_filename(const char *filename, pcmk__schema_version_t
      *version) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate_with
      Src: /src/pacemaker/lib/common/schemas.c:818,1
    - Dst: GUINT_TO_POINTER
      Src: /src/pacemaker/lib/common/schemas.c:818,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - xml
    - schema
    argTypes:
    - xmlNode*
    - pcmk__schema_t*
    constantsTouched: []
    func_position:
      end: 821
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 821
    functionName: validate_with_silent
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - validate_with
    - GUINT_TO_POINTER
    linkageType: ''
    returnType: bool
    signature: 'static bool validate_with_silent(xmlNode *xml, pcmk__schema_t *schema) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_list_find_custom
      Src: /src/pacemaker/lib/common/schemas.c:1464,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/schemas.c:1479,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/schemas.c:1479,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/schemas.c:1489,1
    - Dst: xmlNewCDataBlock
      Src: /src/pacemaker/lib/common/schemas.c:1492,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/schemas.c:1508,1
    - Dst: strlen
      Src: /src/pacemaker/lib/common/schemas.c:1493,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/schemas.c:1474,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/schemas.c:1472,1
    - Dst: free
      Src: /src/pacemaker/lib/common/schemas.c:1480,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/schemas.c:1487,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/schemas.c:1471,1
    - Dst: add_schema_file_to_xml
      Src: /src/pacemaker/lib/common/schemas.c:1504,1
    - Dst: free
      Src: /src/pacemaker/lib/common/schemas.c:1507,1
    - Dst: external_refs_in_schema
      Src: /src/pacemaker/lib/common/schemas.c:1498,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/schemas.c:1471,1
    - Dst: read_file_contents
      Src: /src/pacemaker/lib/common/schemas.c:1477,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/schemas.c:1488,1
    - Dst: xmlAddChild
      Src: /src/pacemaker/lib/common/schemas.c:1491,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 3
    argNames:
    - parent
    - file
    - already_included
    argTypes:
    - xmlNode*
    - char*
    - GList**
    constantsTouched: []
    func_position:
      end: 1509
      start: 1454
    functionDepth: 0
    functionLinenumber: 1454
    functionLinenumberEnd: 1509
    functionName: add_schema_file_to_xml
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - read_file_contents
    - pcmk__ends_with
    - crm_strdup_printf
    - xmlAddChild
    - crm_xml_add
    - strlen
    - g_list_free_full
    - pcmk__str_copy
    - free
    - g_list_prepend
    - add_schema_file_to_xml
    - pcmk_rc_str
    - crm_warn
    - xmlNewCDataBlock
    - g_list_find_custom
    - external_refs_in_schema
    linkageType: ''
    returnType: void
    signature: 'static void add_schema_file_to_xml(xmlNode *parent, const char *file,
      GList **already_included) '
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/common/schemas.c:925,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/schemas.c:905,1
    - Dst: va_copy
      Src: /src/pacemaker/lib/common/schemas.c:906,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/schemas.c:923,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/common/schemas.c:929,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/common/schemas.c:933,1
    - Dst: memmove
      Src: /src/pacemaker/lib/common/schemas.c:943,1
    - Dst: strlen
      Src: /src/pacemaker/lib/common/schemas.c:944,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/schemas.c:968,1
    - Dst: vfprintf
      Src: /src/pacemaker/lib/common/schemas.c:982,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/schemas.c:989,1
    - Dst: cib_upgrade_err
      Src: /src/pacemaker/lib/common/schemas.c:891,1
    - Dst: PCMK__XML_LOG_BASE
      Src: /src/pacemaker/lib/common/schemas.c:985,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/schemas.c:988,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 61
    argCount: 0
    argNames:
    - 2, 3
    argTypes: []
    constantsTouched: []
    func_position:
      end: 990
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 990
    functionName: G_GNUC_PRINTF
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - vfprintf
    - va_copy
    - va_end
    - va_arg
    - memmove
    - va_start
    - PCMK__XML_LOG_BASE
    - strlen
    - cib_upgrade_err
    - pcmk__starts_with
    linkageType: ''
    returnType: void
    signature: 'static void G_GNUC_PRINTF(2, 3)cib_upgrade_err(void *ctx, const char
      *fmt, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/schemas.c:1568,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/common/schemas.c:1569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - schema
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1574
      start: 1562
    functionDepth: 0
    functionLinenumber: 1562
    functionLinenumberEnd: 1574
    functionName: pcmk__warn_if_schema_deprecated
    functionSourceFile: /src/pacemaker/lib/common/schemas.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - pcmk__config_warn
    linkageType: ''
    returnType: void
    signature: 'void pcmk__warn_if_schema_deprecated(const char *schema) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:31,1
    - Dst: pcmk__getpid_s
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:39,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - api
    argTypes:
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 42
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 42
    functionName: new_data
    functionSourceFile: /src/pacemaker/lib/common/ipc_schedulerd.c
    functionUses: []
    functionsReached:
    - calloc
    - pcmk__getpid_s
    linkageType: ''
    returnType: int
    signature: 'static int new_data(pcmk_ipc_api_t *api) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:47,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: free_data
    functionSourceFile: /src/pacemaker/lib/common/ipc_schedulerd.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void free_data(void *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:65,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:72,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - api
    - request
    argTypes:
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: reply_expected
    functionSourceFile: /src/pacemaker/lib/common/ipc_schedulerd.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - crm_element_value
    linkageType: ''
    returnType: bool
    signature: 'static bool reply_expected(pcmk_ipc_api_t *api, const xmlNode *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 152
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 152
    functionName: pcmk__schedulerd_api_methods
    functionSourceFile: /src/pacemaker/lib/common/ipc_schedulerd.c
    functionUses: []
    functionsReached:
    - calloc
    linkageType: ''
    returnType: pcmk__ipc_methods_t*
    signature: 'pcmk__ipc_methods_t *pcmk__schedulerd_api_methods(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:109,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:116,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:99,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:103,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:108,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:120,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:128,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:86,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:94,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:100,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:101,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:124,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:118,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:115,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:129,1
    - Dst: pcmk__call_ipc_callback
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:135,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:90,1
    - Dst: pcmk__parse_server
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:91,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:92,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:122,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:108,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 2
    argNames:
    - api
    - reply
    argTypes:
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 137
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 137
    functionName: dispatch
    functionSourceFile: /src/pacemaker/lib/common/ipc_schedulerd.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - pcmk__str_empty
    - pcmk__xe_first_child
    - pcmk__str_eq
    - pcmk__xe_is
    - pcmk__parse_server
    - crm_element_value
    - crm_info
    - pcmk__call_ipc_callback
    linkageType: ''
    returnType: bool
    signature: 'static bool dispatch(pcmk_ipc_api_t *api, xmlNode *reply) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_ipc_is_connected
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:162,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:167,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:171,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:169,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:170,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:173,1
    - Dst: pcmk__send_ipc_request
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:176,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:178,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:179,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:182,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:182,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:183,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 4
    argNames:
    - api
    - task
    - cib
    - ref
    argTypes:
    - pcmk_ipc_api_t*
    - char*
    - xmlNode*
    - char**
    constantsTouched: []
    func_position:
      end: 189
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 189
    functionName: do_schedulerd_api_call
    functionSourceFile: /src/pacemaker/lib/common/ipc_schedulerd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - strdup
    - pcmk__s
    - crm_strdup_printf
    - crm_element_value
    - pcmk__new_request
    - free
    - pcmk__send_ipc_request
    - pcmk__xml_free
    - pcmk_rc_str
    - pcmk__assert
    - pcmk_ipc_is_connected
    linkageType: ''
    returnType: int
    signature: 'static int do_schedulerd_api_call(pcmk_ipc_api_t *api, const char
      *task, xmlNode *cib, char **ref) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_schedulerd_api_call
      Src: /src/pacemaker/lib/common/ipc_schedulerd.c:194,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - api
    - cib
    - ref
    argTypes:
    - pcmk_ipc_api_t*
    - xmlNode*
    - char**
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: pcmk_schedulerd_api_graph
    functionSourceFile: /src/pacemaker/lib/common/ipc_schedulerd.c
    functionUses: []
    functionsReached:
    - do_schedulerd_api_call
    linkageType: ''
    returnType: int
    signature: 'int pcmk_schedulerd_api_graph(pcmk_ipc_api_t *api, xmlNode *cib, char
      **ref) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - api
    argTypes:
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: post_connect
    functionSourceFile: /src/pacemaker/lib/common/ipc_schedulerd.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int post_connect(pcmk_ipc_api_t *api) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xml_patch_versions
      Src: /src/pacemaker/lib/common/patchset_display.c:46,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/patchset_display.c:49,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/patchset_display.c:50,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 2
    argNames:
    - out
    - patchset
    argTypes:
    - pcmk__output_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 62
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 62
    functionName: xml_show_patchset_header
    functionSourceFile: /src/pacemaker/lib/common/patchset_display.c
    functionUses: []
    functionsReached:
    - xml_patch_versions
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'static int xml_show_patchset_header(pcmk__output_t *out, const xmlNode
      *patchset) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/patchset_display.c:292,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/common/patchset_display.c:295,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/lib/common/patchset_display.c:297,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/patchset_display.c:301,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/patchset_display.c:304,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 306
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 306
    functionName: xml_patchset_xml
    functionSourceFile: /src/pacemaker/lib/common/patchset_display.c
    functionUses: []
    functionsReached:
    - va_arg
    - g_string_free
    - g_string_sized_new
    - pcmk__xml_string
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int xml_patchset_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/patchset_display.c:200,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/patchset_display.c:209,1
    - Dst: xml_show_patchset
      Src: /src/pacemaker/lib/common/patchset_display.c:215,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/patchset_display.c:211,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/patchset_display.c:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 216
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 216
    functionName: xml_patchset_default
    functionSourceFile: /src/pacemaker/lib/common/patchset_display.c
    functionUses: []
    functionsReached:
    - crm_trace
    - va_arg
    - xml_show_patchset
    - crm_err
    - crm_element_value_int
    linkageType: ''
    returnType: int
    signature: 'static int xml_patchset_default(pcmk__output_t *out, va_list args) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/patchset_display.c:86,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/patchset_display.c:123,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/patchset_display.c:124,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/patchset_display.c:115,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/patchset_display.c:146,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/patchset_display.c:148,1
    - Dst: pcmk__output_select_rc
      Src: /src/pacemaker/lib/common/patchset_display.c:161,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/patchset_display.c:165,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/patchset_display.c:168,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/patchset_display.c:155,1
    - Dst: xml_show_patchset_header
      Src: /src/pacemaker/lib/common/patchset_display.c:81,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/patchset_display.c:95,1
    - Dst: pcmk__xml_show
      Src: /src/pacemaker/lib/common/patchset_display.c:99,1
    - Dst: pcmk__output_select_rc
      Src: /src/pacemaker/lib/common/patchset_display.c:121,1
    - Dst: pcmk__output_select_rc
      Src: /src/pacemaker/lib/common/patchset_display.c:112,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/patchset_display.c:116,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/patchset_display.c:129,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/patchset_display.c:133,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/patchset_display.c:141,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/common/patchset_display.c:143,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/patchset_display.c:144,1
    - Dst: free
      Src: /src/pacemaker/lib/common/patchset_display.c:113,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/patchset_display.c:131,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/common/patchset_display.c:147,1
    - Dst: pcmk__output_select_rc
      Src: /src/pacemaker/lib/common/patchset_display.c:174,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/patchset_display.c:88,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/patchset_display.c:84,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/patchset_display.c:89,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/patchset_display.c:96,1
    - Dst: pcmk__output_select_rc
      Src: /src/pacemaker/lib/common/patchset_display.c:101,1
    - Dst: pcmk__xml_show
      Src: /src/pacemaker/lib/common/patchset_display.c:108,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/patchset_display.c:135,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/patchset_display.c:140,1
    - Dst: pcmk__output_select_rc
      Src: /src/pacemaker/lib/common/patchset_display.c:154,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/patchset_display.c:162,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 91
    argCount: 2
    argNames:
    - out
    - patchset
    argTypes:
    - pcmk__output_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 179
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 179
    functionName: xml_show_patchset
    functionSourceFile: /src/pacemaker/lib/common/patchset_display.c
    functionUses: []
    functionsReached:
    - xml_show_patchset_header
    - pcmk__output_select_rc
    - pcmk__add_separated_word
    - g_string_append
    - pcmk__xe_first_child
    - crm_strdup_printf
    - crm_element_value_int
    - strcmp
    - g_string_free
    - free
    - pcmk__xe_next
    - crm_element_value
    - pcmk__xml_show
    - pcmk__g_strcat
    linkageType: ''
    returnType: int
    signature: 'static int xml_show_patchset(pcmk__output_t *out, const xmlNode *patchset) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/patchset_display.c:239,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/patchset_display.c:249,1
    - Dst: qb_log_callsite_get
      Src: /src/pacemaker/lib/common/patchset_display.c:254,1
    - Dst: pcmk__output_get_log_level
      Src: /src/pacemaker/lib/common/patchset_display.c:241,1
    - Dst: crm_is_callsite_active
      Src: /src/pacemaker/lib/common/patchset_display.c:259,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/patchset_display.c:264,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/patchset_display.c:266,1
    - Dst: xml_show_patchset
      Src: /src/pacemaker/lib/common/patchset_display.c:270,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 271
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 271
    functionName: xml_patchset_log
    functionSourceFile: /src/pacemaker/lib/common/patchset_display.c
    functionUses: []
    functionsReached:
    - qb_log_callsite_get
    - pcmk__output_get_log_level
    - crm_is_callsite_active
    - va_arg
    - crm_err
    - xml_show_patchset
    - crm_trace
    - crm_element_value_int
    linkageType: ''
    returnType: int
    signature: 'static int xml_patchset_log(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/lib/common/patchset_display.c:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: pcmk__register_patchset_messages
    functionSourceFile: /src/pacemaker/lib/common/patchset_display.c
    functionUses: []
    functionsReached:
    - pcmk__register_messages
    linkageType: ''
    returnType: void
    signature: 'void pcmk__register_patchset_messages(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/probes.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - task
    - interval_ms
    argTypes:
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: pcmk_is_probe
    functionSourceFile: /src/pacemaker/lib/common/probes.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk_is_probe(const char *task, guint interval_ms) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_xe_is_probe
      Src: /src/pacemaker/lib/common/probes.c:74,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/probes.c:78,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/common/probes.c:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 84
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 84
    functionName: pcmk_xe_mask_probe_failure
    functionSourceFile: /src/pacemaker/lib/common/probes.c
    functionUses: []
    functionsReached:
    - pcmk_xe_is_probe
    - crm_element_value_int
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk_xe_mask_probe_failure(const xmlNode *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/common/probes.c:53,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/probes.c:53,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/probes.c:56,1
    - Dst: pcmk_is_probe
      Src: /src/pacemaker/lib/common/probes.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: pcmk_xe_is_probe
    functionSourceFile: /src/pacemaker/lib/common/probes.c
    functionUses: []
    functionsReached:
    - pcmk_is_probe
    - pcmk__scan_min_int
    - crm_element_value
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk_xe_is_probe(const xmlNode *xml) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/pacemaker/lib/common/options.c:24,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/options.c:32,1
    - Dst: printf
      Src: /src/pacemaker/lib/common/options.c:25,1
    - Dst: printf
      Src: /src/pacemaker/lib/common/options.c:29,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 34
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 34
    functionName: pcmk__cli_help
    functionSourceFile: /src/pacemaker/lib/common/options.c
    functionUses: []
    functionsReached:
    - crm_exit
    - printf
    linkageType: ''
    returnType: void
    signature: 'void pcmk__cli_help(char cmd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/options.c:1183,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/options.c:1186,1
    - Dst: strstr
      Src: /src/pacemaker/lib/common/options.c:1187,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - daemon
    - option
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1188
      start: 1180
    functionDepth: 0
    functionLinenumber: 1180
    functionLinenumberEnd: 1188
    functionName: pcmk__env_option_enabled
    functionSourceFile: /src/pacemaker/lib/common/options.c
    functionUses: []
    functionsReached:
    - pcmk__env_option
    - strstr
    - crm_is_true
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__env_option_enabled(const char *daemon, const char *option) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/options.c:1130,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/options.c:1130,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/options.c:1134,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/options.c:1133,1
    - Dst: strchr
      Src: /src/pacemaker/lib/common/options.c:1130,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/options.c:1137,1
    - Dst: strerror
      Src: /src/pacemaker/lib/common/options.c:1138,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/options.c:1143,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/options.c:1148,1
    - Dst: setenv
      Src: /src/pacemaker/lib/common/options.c:1149,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/options.c:1151,1
    - Dst: unsetenv
      Src: /src/pacemaker/lib/common/options.c:1152,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/options.c:1156,1
    - Dst: strerror
      Src: /src/pacemaker/lib/common/options.c:1157,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - option
    - value
    - compat
    argTypes:
    - char*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 1165
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1165
    functionName: pcmk__set_env_option
    functionSourceFile: /src/pacemaker/lib/common/options.c
    functionUses: []
    functionsReached:
    - unsetenv
    - setenv
    - CRM_CHECK
    - crm_trace
    - pcmk__str_empty
    - PCMK__NELEM
    - strchr
    - strerror
    - snprintf
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void pcmk__set_env_option(const char *option, const char *value, bool
      compat) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/options.c:1221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1222
      start: 1218
    functionDepth: 0
    functionLinenumber: 1218
    functionLinenumberEnd: 1222
    functionName: pcmk__valid_boolean
    functionSourceFile: /src/pacemaker/lib/common/options.c
    functionUses: []
    functionsReached:
    - crm_str_to_boolean
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__valid_boolean(const char *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/common/options.c:1277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1282
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1282
    functionName: pcmk__valid_no_quorum_policy
    functionSourceFile: /src/pacemaker/lib/common/options.c
    functionUses: []
    functionsReached:
    - pcmk__strcase_any_of
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__valid_no_quorum_policy(const char *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/common/options.c:1317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1320
      start: 1314
    functionDepth: 0
    functionLinenumber: 1314
    functionLinenumberEnd: 1320
    functionName: pcmk__valid_placement_strategy
    functionSourceFile: /src/pacemaker/lib/common/options.c
    functionUses: []
    functionsReached:
    - pcmk__strcase_any_of
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__valid_placement_strategy(const char *value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/options.c:1404,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/options.c:1408,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/options.c:1408,1
    - Dst: cluster_option_value
      Src: /src/pacemaker/lib/common/options.c:1405,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - options
    - name
    argTypes:
    - GHashTable*
    - char*
    constantsTouched: []
    func_position:
      end: 1410
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1410
    functionName: pcmk__cluster_option
    functionSourceFile: /src/pacemaker/lib/common/options.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__str_eq
    - crm_err
    - cluster_option_value
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__cluster_option(GHashTable *options, const char *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 5
    argNames:
    - out
    - name
    - desc_short
    - desc_long
    - all
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 1461
      start: 1454
    functionDepth: 0
    functionLinenumber: 1454
    functionLinenumberEnd: 1461
    functionName: pcmk__output_primitive_meta
    functionSourceFile: /src/pacemaker/lib/common/options.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int pcmk__output_primitive_meta(pcmk__output_t *out, const char *name,
      const char *desc_short, const char *desc_long, bool all) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 5
    argNames:
    - out
    - name
    - desc_short
    - desc_long
    - all
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 1488
      start: 1481
    functionDepth: 0
    functionLinenumber: 1481
    functionLinenumberEnd: 1488
    functionName: pcmk__output_fencing_params
    functionSourceFile: /src/pacemaker/lib/common/options.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int pcmk__output_fencing_params(pcmk__output_t *out, const char *name,
      const char *desc_short, const char *desc_long, bool all) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cluster_option_value
      Src: /src/pacemaker/lib/common/options.c:1550,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - options
    argTypes:
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 1552
      start: 1544
    functionDepth: 0
    functionLinenumber: 1544
    functionLinenumberEnd: 1552
    functionName: pcmk__validate_cluster_options
    functionSourceFile: /src/pacemaker/lib/common/options.c
    functionUses: []
    functionsReached:
    - cluster_option_value
    linkageType: ''
    returnType: void
    signature: 'void pcmk__validate_cluster_options(GHashTable *options) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/options.c:1080,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/options.c:1086,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/options.c:1082,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/options.c:1080,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/options.c:1083,1
    - Dst: strerror
      Src: /src/pacemaker/lib/common/options.c:1087,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/options.c:1092,1
    - Dst: getenv
      Src: /src/pacemaker/lib/common/options.c:1096,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/options.c:1098,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/options.c:1103,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - option
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1105
      start: 1073
    functionDepth: 0
    functionLinenumber: 1073
    functionLinenumberEnd: 1105
    functionName: pcmk__env_option
    functionSourceFile: /src/pacemaker/lib/common/options.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_trace
    - pcmk__str_empty
    - PCMK__NELEM
    - strerror
    - snprintf
    - crm_err
    - getenv
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__env_option(const char *option) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_str_is_infinity
      Src: /src/pacemaker/lib/common/options.c:1238,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/options.c:1240,1
    - Dst: pcmk_str_is_minus_infinity
      Src: /src/pacemaker/lib/common/options.c:1239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1241
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1241
    functionName: pcmk__valid_int
    functionSourceFile: /src/pacemaker/lib/common/options.c
    functionUses: []
    functionsReached:
    - pcmk_str_is_infinity
    - pcmk_str_is_minus_infinity
    - pcmk__scan_ll
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__valid_int(const char *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_str_is_infinity
      Src: /src/pacemaker/lib/common/options.c:1259,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/options.c:1260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1262
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1262
    functionName: pcmk__valid_positive_int
    functionSourceFile: /src/pacemaker/lib/common/options.c
    functionUses: []
    functionsReached:
    - pcmk_str_is_infinity
    - pcmk__scan_ll
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__valid_positive_int(const char *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strtof
      Src: /src/pacemaker/lib/common/options.c:1300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1303
      start: 1296
    functionDepth: 0
    functionLinenumber: 1296
    functionLinenumberEnd: 1303
    functionName: pcmk__valid_percentage
    functionSourceFile: /src/pacemaker/lib/common/options.c
    functionUses: []
    functionsReached:
    - strtof
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__valid_percentage(const char *value) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/options.c:1336,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/common/options.c:1344,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/options.c:1342,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/options.c:1350,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/options.c:1339,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/options.c:1357,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/options.c:1371,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/options.c:1376,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/options.c:1384,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/options.c:1377,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/options.c:1381,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 2
    argNames:
    - table
    - option
    argTypes:
    - GHashTable*
    - pcmk__cluster_option_t*
    constantsTouched: []
    func_position:
      end: 1387
      start: 1331
    functionDepth: 0
    functionLinenumber: 1331
    functionLinenumberEnd: 1387
    functionName: cluster_option_value
    functionSourceFile: /src/pacemaker/lib/common/options.c
    functionUses: []
    functionsReached:
    - pcmk__config_err
    - CRM_CHECK
    - pcmk__config_warn
    - g_hash_table_lookup
    - pcmk__insert_dup
    - crm_err
    - pcmk__assert
    - crm_trace
    linkageType: ''
    returnType: char*
    signature: 'static const char *cluster_option_value(GHashTable *table, const pcmk__cluster_option_t
      *option) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 6
    argNames:
    - out
    - name
    - desc_short
    - desc_long
    - filter
    - all
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    - char*
    - uint32_t
    - bool
    constantsTouched: []
    func_position:
      end: 1438
      start: 1431
    functionDepth: 0
    functionLinenumber: 1431
    functionLinenumberEnd: 1438
    functionName: pcmk__output_cluster_options
    functionSourceFile: /src/pacemaker/lib/common/options.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int pcmk__output_cluster_options(pcmk__output_t *out, const char *name,
      const char *desc_short, const char *desc_long, uint32_t filter, bool all) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/options.c:1514,1
    - Dst: pcmk__output_cluster_options
      Src: /src/pacemaker/lib/common/options.c:1525,1
    - Dst: pcmk__output_fencing_params
      Src: /src/pacemaker/lib/common/options.c:1523,1
    - Dst: pcmk__output_set_legacy_xml
      Src: /src/pacemaker/lib/common/options.c:1520,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/options.c:1530,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/common/options.c:1532,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/lib/common/options.c:1533,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/options.c:1538,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/options.c:1540,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/options.c:1539,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 5
    argNames:
    - out
    - name
    - desc_short
    - desc_long
    - filter
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    - char*
    - enum pcmk__opt_flags
    constantsTouched: []
    func_position:
      end: 1542
      start: 1503
    functionDepth: 0
    functionLinenumber: 1503
    functionLinenumberEnd: 1542
    functionName: pcmk__daemon_metadata
    functionSourceFile: /src/pacemaker/lib/common/options.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - pcmk__output_fencing_params
    - pcmk__xe_first_child
    - pcmk__output_cluster_options
    - g_string_free
    - g_string_sized_new
    - pcmk__output_set_legacy_xml
    - pcmk__output_free
    - pcmk__xml_free
    - pcmk__xml_string
    linkageType: ''
    returnType: int
    signature: 'int pcmk__daemon_metadata(pcmk__output_t *out, const char *name, const
      char *desc_short, const char *desc_long, enum pcmk__opt_flags filter) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/lib/common/options.c:1207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1208
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1208
    functionName: pcmk__valid_interval_spec
    functionSourceFile: /src/pacemaker/lib/common/options.c
    functionUses: []
    functionsReached:
    - pcmk_parse_interval_spec
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__valid_interval_spec(const char *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/location.c:27,1
    - Dst: free
      Src: /src/pacemaker/lib/common/location.c:29,1
    - Dst: free
      Src: /src/pacemaker/lib/common/location.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: pcmk__free_location
    functionSourceFile: /src/pacemaker/lib/common/location.c
    functionUses: []
    functionsReached:
    - free
    - g_list_free_full
    linkageType: ''
    returnType: void
    signature: 'void pcmk__free_location(gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_slist_prepend
      Src: /src/pacemaker/lib/common/nvpair.c:93,1
    - Dst: pcmk__new_nvpair
      Src: /src/pacemaker/lib/common/nvpair.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 3
    argNames:
    - nvpairs
    - name
    - value
    argTypes:
    - GSList*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: pcmk_prepend_nvpair
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - g_slist_prepend
    - pcmk__new_nvpair
    linkageType: ''
    returnType: GSList*
    signature: 'GSList *pcmk_prepend_nvpair(GSList *nvpairs, const char *name, const
      char *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_slist_free_full
      Src: /src/pacemaker/lib/common/nvpair.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - nvpairs
    argTypes:
    - GSList*
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: pcmk_free_nvpairs
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - g_slist_free_full
    linkageType: ''
    returnType: void
    signature: 'void pcmk_free_nvpairs(GSList *nvpairs) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_dereference_children
      Src: /src/pacemaker/lib/common/nvpair.c:487,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/nvpair.c:505,1
    - Dst: g_list_sort_with_data
      Src: /src/pacemaker/lib/common/nvpair.c:503,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/common/nvpair.c:504,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 6
    argNames:
    - xml
    - element_name
    - first_id
    - rule_input
    - values
    - next_change
    argTypes:
    - xmlNode*
    - char*
    - char*
    - pcmk_rule_input_t*
    - GHashTable*
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 507
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 507
    functionName: pcmk_unpack_nvpair_blocks
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - g_list_sort_with_data
    - g_list_foreach
    - g_list_free
    - pcmk__xe_dereference_children
    linkageType: ''
    returnType: void
    signature: 'void pcmk_unpack_nvpair_blocks(const xmlNode *xml, const char *element_name,
      const char *first_id, const pcmk_rule_input_t *rule_input, GHashTable *values,
      crm_time_t *next_change) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_slist_sort
      Src: /src/pacemaker/lib/common/nvpair.c:682,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - GSList*
    constantsTouched: []
    func_position:
      end: 683
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 683
    functionName: pcmk_sort_nvpairs
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - g_slist_sort
    linkageType: ''
    returnType: GSList*
    signature: 'GSList *pcmk_sort_nvpairs(GSList *list) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/nvpair.c:706,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 707
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 707
    functionName: pcmk__nvpair_add_xml_attr
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - crm_xml_add
    linkageType: ''
    returnType: void
    signature: 'static void pcmk__nvpair_add_xml_attr(gpointer data, gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/nvpair.c:667,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/nvpair.c:670,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 677
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 677
    functionName: pcmk__compare_nvpair
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - strcmp
    linkageType: ''
    returnType: gint
    signature: 'static gint pcmk__compare_nvpair(gconstpointer a, gconstpointer b) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/nvpair.c:690,1
    - Dst: pcmk__xml_attr_value
      Src: /src/pacemaker/lib/common/nvpair.c:695,1
    - Dst: pcmk_prepend_nvpair
      Src: /src/pacemaker/lib/common/nvpair.c:693,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 698
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 698
    functionName: pcmk_xml_attrs2nvpairs
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_attr
    - pcmk__xml_attr_value
    - pcmk_prepend_nvpair
    linkageType: ''
    returnType: GSList*
    signature: 'GSList *pcmk_xml_attrs2nvpairs(const xmlNode *xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_slist_foreach
      Src: /src/pacemaker/lib/common/nvpair.c:712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - list
    - xml
    argTypes:
    - GSList*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 713
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 713
    functionName: pcmk_nvpairs2xml_attrs
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - g_slist_foreach
    linkageType: ''
    returnType: void
    signature: 'void pcmk_nvpairs2xml_attrs(GSList *list, xmlNode *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/nvpair.c:73,1
    - Dst: free
      Src: /src/pacemaker/lib/common/nvpair.c:75,1
    - Dst: free
      Src: /src/pacemaker/lib/common/nvpair.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: pcmk__free_nvpair
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void pcmk__free_nvpair(gpointer data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/common/nvpair.c:282,1
    - Dst: free
      Src: /src/pacemaker/lib/common/nvpair.c:284,1
    - Dst: hash2field
      Src: /src/pacemaker/lib/common/nvpair.c:283,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 285
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 285
    functionName: hash2metafield
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - free
    - crm_meta_name
    - hash2field
    linkageType: ''
    returnType: void
    signature: 'void hash2metafield(gpointer key, gpointer value, gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/nvpair.c:343,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/common/nvpair.c:350,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/nvpair.c:347,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/nvpair.c:345,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/nvpair.c:349,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/common/nvpair.c:353,1
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/nvpair.c:355,1
    - Dst: pcmk__xml_attr_value
      Src: /src/pacemaker/lib/common/nvpair.c:359,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/nvpair.c:361,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/nvpair.c:363,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/nvpair.c:366,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/nvpair.c:367,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/nvpair.c:372,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/nvpair.c:370,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/nvpair.c:374,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/nvpair.c:369,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 1
    argNames:
    - parent
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 379
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 379
    functionName: xml2list
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_attr
    - CRM_CHECK
    - pcmk__xe_first_child
    - pcmk__insert_dup
    - pcmk__strkey_table
    - pcmk__xml_attr_value
    - pcmk__xe_next
    - crm_element_value
    - crm_log_xml_trace
    - crm_trace
    linkageType: ''
    returnType: GHashTable*
    signature: 'GHashTable *xml2list(const xmlNode *parent) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/nvpair.c:451,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/nvpair.c:461,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/nvpair.c:462,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/nvpair.c:456,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/nvpair.c:454,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/nvpair.c:463,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/lib/common/nvpair.c:466,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 467
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 467
    functionName: pcmk__unpack_nvpair_block
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - pcmk__xe_foreach_child
    - pcmk_evaluate_rule
    - pcmk__xe_is
    - pcmk__assert
    - pcmk__xe_id
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void pcmk__unpack_nvpair_block(gpointer data, gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/nvpair.c:52,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/nvpair.c:56,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/nvpair.c:54,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/nvpair.c:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: pcmk__new_nvpair
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__str_copy
    - pcmk__assert_alloc
    linkageType: ''
    returnType: pcmk_nvpair_t*
    signature: 'static pcmk_nvpair_t *pcmk__new_nvpair(const char *name, const char
      *value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/nvpair.c:244,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/nvpair.c:245,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/nvpair.c:248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 250
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 250
    functionName: hash2field
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - crm_xml_add
    - crm_trace
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'void hash2field(gpointer key, gpointer value, gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/nvpair.c:308,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/nvpair.c:313,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/nvpair.c:310,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/nvpair.c:316,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/common/nvpair.c:315,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/nvpair.c:316,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/nvpair.c:318,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/nvpair.c:319,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 4
    argNames:
    - parent
    - id
    - name
    - value
    argTypes:
    - xmlNode*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 321
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 321
    functionName: crm_create_nvpair_xml
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_set_id
    - CRM_CHECK
    - pcmk__s
    - crm_xml_add
    - pcmk__xe_id
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *crm_create_nvpair_xml(xmlNode *parent, const char *id, const
      char *name, const char *value) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_resolve_idref
      Src: /src/pacemaker/lib/common/nvpair.c:398,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/nvpair.c:407,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/nvpair.c:415,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/nvpair.c:408,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/nvpair.c:413,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/common/nvpair.c:417,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/lib/common/nvpair.c:422,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/nvpair.c:426,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/nvpair.c:427,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/nvpair.c:428,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 2
    argNames:
    - nvpair
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 431
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 431
    functionName: unpack_nvpair
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - pcmk__config_warn
    - g_hash_table_lookup
    - pcmk__s
    - pcmk__insert_dup
    - g_hash_table_remove
    - pcmk__str_eq
    - pcmk__xe_resolve_idref
    - crm_element_value
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int unpack_nvpair(xmlNode *nvpair, void *userdata) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/nvpair.c:130,1
    - Dst: g_strsplit
      Src: /src/pacemaker/lib/common/nvpair.c:134,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/nvpair.c:132,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/nvpair.c:131,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/nvpair.c:139,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/nvpair.c:139,1
    - Dst: pcmk__trim
      Src: /src/pacemaker/lib/common/nvpair.c:146,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/nvpair.c:153,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 3
    argNames:
    - input
    - name
    - value
    argTypes:
    - gchar*
    - gchar**
    - gchar**
    constantsTouched: []
    func_position:
      end: 155
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 155
    functionName: pcmk__scan_nvpair
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - g_strsplit
    - g_strfreev
    - pcmk__str_empty
    - pcmk__trim
    - pcmk__assert
    linkageType: ''
    returnType: int
    signature: 'int pcmk__scan_nvpair(const gchar *input, gchar **name, gchar **value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/common/nvpair.c:722,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/nvpair.c:723,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 724
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 724
    functionName: hash2nvpair
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - crm_create_nvpair_xml
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void hash2nvpair(gpointer key, gpointer value, gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/pacemaker/lib/common/nvpair.c:210,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/nvpair.c:211,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/nvpair.c:216,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/nvpair.c:214,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/nvpair.c:213,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/nvpair.c:217,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/nvpair.c:218,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/nvpair.c:221,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 223
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 223
    functionName: hash2smartfield
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - isdigit
    - crm_element_value
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void hash2smartfield(gpointer key, gpointer value, gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/nvpair.c:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - name
    - value
    - units
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: pcmk__format_nvpair
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__format_nvpair(const char *name, const char *value, const
      char *units) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/nvpair.c:616,1
    - Dst: pcmk__xe_get_score
      Src: /src/pacemaker/lib/common/nvpair.c:628,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/nvpair.c:616,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/nvpair.c:620,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/nvpair.c:620,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/common/nvpair.c:630,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/nvpair.c:632,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/nvpair.c:633,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/nvpair.c:634,1
    - Dst: pcmk__xe_get_score
      Src: /src/pacemaker/lib/common/nvpair.c:637,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/common/nvpair.c:639,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/nvpair.c:642,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/nvpair.c:643,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/nvpair.c:641,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 3
    argNames:
    - a
    - b
    - user_data
    argTypes:
    - gconstpointer
    - gconstpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 653
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 653
    functionName: pcmk__cmp_nvpair_blocks
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - pcmk__config_warn
    - pcmk__str_eq
    - pcmk__xe_get_score
    - pcmk_rc_str
    - crm_element_value
    - pcmk__xe_id
    linkageType: ''
    returnType: gint
    signature: 'gint pcmk__cmp_nvpair_blocks(gconstpointer a, gconstpointer b, gpointer
      user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/common/nvpair.c:555,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/nvpair.c:556,1
    - Dst: free
      Src: /src/pacemaker/lib/common/nvpair.c:558,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 2
    argNames:
    - meta
    - attr_name
    argTypes:
    - GHashTable*
    - char*
    constantsTouched: []
    func_position:
      end: 562
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 562
    functionName: crm_meta_value
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - free
    - crm_meta_name
    - g_hash_table_lookup
    linkageType: ''
    returnType: char*
    signature: 'const char *crm_meta_value(GHashTable *meta, const char *attr_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/nvpair.c:528,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/nvpair.c:530,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/nvpair.c:528,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - attr_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 537
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 537
    functionName: crm_meta_name
    functionSourceFile: /src/pacemaker/lib/common/nvpair.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - crm_strdup_printf
    - pcmk__str_empty
    linkageType: ''
    returnType: char*
    signature: 'char *crm_meta_name(const char *attr_name) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/remote.c:176,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:192,1
    - Dst: write
      Src: /src/pacemaker/lib/common/remote.c:179,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/remote.c:191,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:185,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:196,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:201,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - sock
    - iov
    argTypes:
    - int
    - struct iovec*
    constantsTouched: []
    func_position:
      end: 206
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 206
    functionName: send_plaintext
    functionSourceFile: /src/pacemaker/lib/common/remote.c
    functionUses: []
    functionsReached:
    - crm_debug
    - write
    - pcmk_rc_str
    - crm_info
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int send_plaintext(int sock, struct iovec *iov) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: send_tls
      Src: /src/pacemaker/lib/common/remote.c:216,1
    - Dst: send_plaintext
      Src: /src/pacemaker/lib/common/remote.c:220,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - remote
    - iov
    - iovs
    argTypes:
    - pcmk__remote_t*
    - struct iovec*
    - int
    constantsTouched: []
    func_position:
      end: 226
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 226
    functionName: remote_send_iovs
    functionSourceFile: /src/pacemaker/lib/common/remote.c
    functionUses: []
    functionsReached:
    - send_tls
    - send_plaintext
    linkageType: ''
    returnType: int
    signature: 'static int remote_send_iovs(pcmk__remote_t *remote, struct iovec *iov,
      int iovs) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/remote.c:305,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:307,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/remote.c:343,1
    - Dst: free
      Src: /src/pacemaker/lib/common/remote.c:333,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/remote.c:345,1
    - Dst: memcpy
      Src: /src/pacemaker/lib/common/remote.c:330,1
    - Dst: localized_remote_header
      Src: /src/pacemaker/lib/common/remote.c:294,1
    - Dst: BZ2_bzBuffToBuffDecompress
      Src: /src/pacemaker/lib/common/remote.c:310,1
    - Dst: pcmk__bzlib2rc
      Src: /src/pacemaker/lib/common/remote.c:313,1
    - Dst: free
      Src: /src/pacemaker/lib/common/remote.c:318,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/remote.c:316,1
    - Dst: free
      Src: /src/pacemaker/lib/common/remote.c:324,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/remote.c:349,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/common/remote.c:352,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/remote.c:328,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/remote.c:322,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:323,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/common/remote.c:341,1
    - Dst: localized_remote_header
      Src: /src/pacemaker/lib/common/remote.c:335,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 1
    argNames:
    - remote
    argTypes:
    - pcmk__remote_t*
    constantsTouched: []
    func_position:
      end: 354
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 354
    functionName: pcmk__remote_message_xml
    functionSourceFile: /src/pacemaker/lib/common/remote.c
    functionUses: []
    functionsReached:
    - pcmk__bzlib2rc
    - memcpy
    - CRM_LOG_ASSERT
    - pcmk__assert_alloc
    - localized_remote_header
    - BZ2_bzBuffToBuffDecompress
    - crm_log_xml_trace
    - free
    - crm_err
    - pcmk__xml_parse
    - pcmk_rc_str
    - pcmk__assert
    - crm_warn
    - crm_trace
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__remote_message_xml(pcmk__remote_t *remote) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_remote_socket
      Src: /src/pacemaker/lib/common/remote.c:389,1
    - Dst: poll
      Src: /src/pacemaker/lib/common/remote.c:411,1
    - Dst: time
      Src: /src/pacemaker/lib/common/remote.c:395,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:391,1
    - Dst: time
      Src: /src/pacemaker/lib/common/remote.c:405,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - remote
    - timeout_ms
    argTypes:
    - pcmk__remote_t*
    - int
    constantsTouched: []
    func_position:
      end: 418
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 418
    functionName: pcmk__remote_ready
    functionSourceFile: /src/pacemaker/lib/common/remote.c
    functionUses: []
    functionsReached:
    - poll
    - get_remote_socket
    - time
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int pcmk__remote_ready(const pcmk__remote_t *remote, int timeout_ms) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/lib/common/remote.c:529,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:541,1
    - Dst: pcmk__remote_ready
      Src: /src/pacemaker/lib/common/remote.c:543,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/remote.c:551,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/remote.c:546,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:552,1
    - Dst: pcmk__read_available_remote_data
      Src: /src/pacemaker/lib/common/remote.c:555,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:559,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/remote.c:561,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:562,1
    - Dst: time
      Src: /src/pacemaker/lib/common/remote.c:571,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - remote
    - timeout_ms
    argTypes:
    - pcmk__remote_t*
    - int
    constantsTouched: []
    func_position:
      end: 574
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 574
    functionName: pcmk__read_remote_message
    functionSourceFile: /src/pacemaker/lib/common/remote.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_trace
    - pcmk__read_available_remote_data
    - time
    - pcmk_rc_str
    - pcmk__remote_ready
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int pcmk__read_remote_message(pcmk__remote_t *remote, int timeout_ms) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_nonblocking
      Src: /src/pacemaker/lib/common/remote.c:696,1
    - Dst: connect
      Src: /src/pacemaker/lib/common/remote.c:703,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:699,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/remote.c:713,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/remote.c:698,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:714,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/remote.c:719,1
    - Dst: time
      Src: /src/pacemaker/lib/common/remote.c:733,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:745,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/lib/common/remote.c:747,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 7
    argNames:
    - sock
    - addr
    - addrlen
    - timeout_ms
    - timer_id
    - userdata
    - (*callback)
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t
    - int
    - int*
    - void*
    - void
    constantsTouched: []
    func_position:
      end: 753
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 753
    functionName: connect_socket_retry
    functionSourceFile: /src/pacemaker/lib/common/remote.c
    functionUses: []
    functionsReached:
    - connect
    - pcmk__assert_alloc
    - time
    - pcmk__set_nonblocking
    - pcmk_rc_str
    - crm_warn
    - crm_trace
    - pcmk__create_timer
    linkageType: ''
    returnType: int
    signature: 'static int connect_socket_retry(int sock, const struct sockaddr *addr,
      socklen_t addrlen, int timeout_ms, int *timer_id, void *userdata, void (*callback)
      (void *userdata, int rc, int sock)) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/pacemaker/lib/common/remote.c:768,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/remote.c:779,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:773,1
    - Dst: pcmk__set_nonblocking
      Src: /src/pacemaker/lib/common/remote.c:777,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/remote.c:772,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:780,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - sock
    - addr
    - addrlen
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t
    constantsTouched: []
    func_position:
      end: 785
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 785
    functionName: connect_socket_once
    functionSourceFile: /src/pacemaker/lib/common/remote.c
    functionUses: []
    functionsReached:
    - connect
    - pcmk__set_nonblocking
    - crm_warn
    - pcmk_rc_str
    linkageType: ''
    returnType: int
    signature: 'static int connect_socket_once(int sock, const struct sockaddr *addr,
      socklen_t addrlen) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/pacemaker/lib/common/remote.c:914,1
    - Dst: strcpy
      Src: /src/pacemaker/lib/common/remote.c:925,1
    - Dst: inet_ntop
      Src: /src/pacemaker/lib/common/remote.c:919,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 5
    argCount: 2
    argNames:
    - sa
    - s
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 927
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 927
    functionName: pcmk__sockaddr2str
    functionSourceFile: /src/pacemaker/lib/common/remote.c
    functionUses: []
    functionsReached:
    - strcpy
    - inet_ntop
    linkageType: ''
    returnType: void
    signature: 'void pcmk__sockaddr2str(const void *sa, char *s) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__tls_get_client_sock
      Src: /src/pacemaker/lib/common/remote.c:360,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/remote.c:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - remote
    argTypes:
    - pcmk__remote_t*
    constantsTouched: []
    func_position:
      end: 367
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 367
    functionName: get_remote_socket
    functionSourceFile: /src/pacemaker/lib/common/remote.c
    functionUses: []
    functionsReached:
    - pcmk__tls_get_client_sock
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int get_remote_socket(const pcmk__remote_t *remote) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __swab32
      Src: /src/pacemaker/lib/common/remote.c:103,1
    - Dst: __swab64
      Src: /src/pacemaker/lib/common/remote.c:114,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/common/remote.c:105,1
    - Dst: __swab64
      Src: /src/pacemaker/lib/common/remote.c:113,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/remote.c:107,1
    - Dst: __swab32
      Src: /src/pacemaker/lib/common/remote.c:115,1
    - Dst: __swab32
      Src: /src/pacemaker/lib/common/remote.c:117,1
    - Dst: __swab32
      Src: /src/pacemaker/lib/common/remote.c:118,1
    - Dst: __swab32
      Src: /src/pacemaker/lib/common/remote.c:119,1
    - Dst: __swab32
      Src: /src/pacemaker/lib/common/remote.c:120,1
    - Dst: __swab32
      Src: /src/pacemaker/lib/common/remote.c:121,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - remote
    argTypes:
    - pcmk__remote_t*
    constantsTouched: []
    func_position:
      end: 125
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 125
    functionName: localized_remote_header
    functionSourceFile: /src/pacemaker/lib/common/remote.c
    functionUses: []
    functionsReached:
    - __swab64
    - crm_err
    - __swab32
    - CRM_LOG_ASSERT
    linkageType: ''
    returnType: struct remote_header_v0*
    signature: 'static struct remote_header_v0 *localized_remote_header(pcmk__remote_t
      *remote) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/remote.c:247,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/common/remote.c:249,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/remote.c:252,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/remote.c:251,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/lib/common/remote.c:250,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/remote.c:254,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/remote.c:260,1
    - Dst: remote_send_iovs
      Src: /src/pacemaker/lib/common/remote.c:270,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/remote.c:272,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:273,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/remote.c:277,1
    - Dst: free
      Src: /src/pacemaker/lib/common/remote.c:276,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - remote
    - msg
    argTypes:
    - pcmk__remote_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 279
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 279
    functionName: pcmk__remote_send_xml
    functionSourceFile: /src/pacemaker/lib/common/remote.c
    functionUses: []
    functionsReached:
    - remote_send_iovs
    - CRM_CHECK
    - pcmk__assert_alloc
    - g_string_free
    - g_string_sized_new
    - free
    - g_free
    - pcmk_rc_str
    - pcmk__xml_string
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int pcmk__remote_send_xml(pcmk__remote_t *remote, const xmlNode *msg) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:139,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/remote.c:149,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:145,1
    - Dst: gnutls_strerror
      Src: /src/pacemaker/lib/common/remote.c:150,1
    - Dst: gnutls_record_send
      Src: /src/pacemaker/lib/common/remote.c:142,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:154,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:158,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - session
    - iov
    argTypes:
    - gnutls_session_t
    - struct iovec*
    constantsTouched: []
    func_position:
      end: 163
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 163
    functionName: send_tls
    functionSourceFile: /src/pacemaker/lib/common/remote.c
    functionUses: []
    functionsReached:
    - crm_info
    - gnutls_record_send
    - gnutls_strerror
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int send_tls(gnutls_session_t session, struct iovec *iov) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: localized_remote_header
      Src: /src/pacemaker/lib/common/remote.c:437,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:448,1
    - Dst: pcmk__realloc
      Src: /src/pacemaker/lib/common/remote.c:449,1
    - Dst: gnutls_record_recv
      Src: /src/pacemaker/lib/common/remote.c:453,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/remote.c:461,1
    - Dst: gnutls_strerror
      Src: /src/pacemaker/lib/common/remote.c:462,1
    - Dst: read
      Src: /src/pacemaker/lib/common/remote.c:466,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/remote.c:473,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:482,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/remote.c:486,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:491,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/remote.c:495,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:496,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:503,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:492,1
    - Dst: localized_remote_header
      Src: /src/pacemaker/lib/common/remote.c:500,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:506,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 1
    argNames:
    - remote
    argTypes:
    - pcmk__remote_t*
    constantsTouched: []
    func_position:
      end: 513
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 513
    functionName: pcmk__read_available_remote_data
    functionSourceFile: /src/pacemaker/lib/common/remote.c
    functionUses: []
    functionsReached:
    - crm_debug
    - localized_remote_header
    - gnutls_strerror
    - pcmk__realloc
    - crm_err
    - pcmk_rc_str
    - gnutls_record_recv
    - read
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int pcmk__read_available_remote_data(pcmk__remote_t *remote) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/pacemaker/lib/common/remote.c:601,1
    - Dst: select
      Src: /src/pacemaker/lib/common/remote.c:604,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/common/remote.c:619,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:637,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:641,1
    - Dst: FD_ISSET
      Src: /src/pacemaker/lib/common/remote.c:629,1
    - Dst: time
      Src: /src/pacemaker/lib/common/remote.c:609,1
    - Dst: FD_SET
      Src: /src/pacemaker/lib/common/remote.c:602,1
    - Dst: time
      Src: /src/pacemaker/lib/common/remote.c:619,1
    - Dst: FD_ISSET
      Src: /src/pacemaker/lib/common/remote.c:628,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:655,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:648,1
    - Dst: close
      Src: /src/pacemaker/lib/common/remote.c:657,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/common/remote.c:609,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:616,1
    - Dst: free
      Src: /src/pacemaker/lib/common/remote.c:664,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/remote.c:615,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/remote.c:622,1
    - Dst: getsockopt
      Src: /src/pacemaker/lib/common/remote.c:635,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:642,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:638,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 666
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 666
    functionName: check_connect_finished
    functionSourceFile: /src/pacemaker/lib/common/remote.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__timeout_ms2s
    - FD_SET
    - FD_ZERO
    - time
    - select
    - free
    - pcmk_rc_str
    - getsockopt
    - crm_trace
    - close
    - FD_ISSET
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean check_connect_finished(gpointer userdata) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/remote.c:816,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/remote.c:850,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/remote.c:868,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:856,1
    - Dst: memset
      Src: /src/pacemaker/lib/common/remote.c:868,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/remote.c:870,1
    - Dst: connect_socket_once
      Src: /src/pacemaker/lib/common/remote.c:878,1
    - Dst: close
      Src: /src/pacemaker/lib/common/remote.c:884,1
    - Dst: memset
      Src: /src/pacemaker/lib/common/remote.c:819,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/remote.c:828,1
    - Dst: pcmk__gaierror2rc
      Src: /src/pacemaker/lib/common/remote.c:825,1
    - Dst: getaddrinfo
      Src: /src/pacemaker/lib/common/remote.c:824,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:829,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/remote.c:855,1
    - Dst: connect_socket_retry
      Src: /src/pacemaker/lib/common/remote.c:873,1
    - Dst: freeaddrinfo
      Src: /src/pacemaker/lib/common/remote.c:892,1
    - Dst: htons
      Src: /src/pacemaker/lib/common/remote.c:865,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/remote.c:834,1
    - Dst: socket
      Src: /src/pacemaker/lib/common/remote.c:852,1
    - Dst: pcmk__sockaddr2str
      Src: /src/pacemaker/lib/common/remote.c:869,1
    - Dst: htons
      Src: /src/pacemaker/lib/common/remote.c:863,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 63
    argCount: 7
    argNames:
    - host
    - port
    - timeout
    - timer_id
    - sock_fd
    - userdata
    - (*callback)
    argTypes:
    - char*
    - int
    - int
    - int*
    - int*
    - void*
    - void
    constantsTouched: []
    func_position:
      end: 896
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 896
    functionName: pcmk__connect_remote
    functionSourceFile: /src/pacemaker/lib/common/remote.c
    functionUses: []
    functionsReached:
    - crm_debug
    - CRM_CHECK
    - socket
    - freeaddrinfo
    - htons
    - memset
    - connect_socket_retry
    - PCMK__NELEM
    - close
    - getaddrinfo
    - connect_socket_once
    - pcmk__sockaddr2str
    - pcmk_rc_str
    - crm_warn
    - crm_info
    - crm_err
    - pcmk__gaierror2rc
    linkageType: ''
    returnType: int
    signature: 'int pcmk__connect_remote(const char *host, int port, int timeout,
      int *timer_id, int *sock_fd, void *userdata, void (*callback) (void *userdata,
      int rc, int sock)) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/pacemaker/lib/common/remote.c:950,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/remote.c:954,1
    - Dst: pcmk__sockaddr2str
      Src: /src/pacemaker/lib/common/remote.c:958,1
    - Dst: accept
      Src: /src/pacemaker/lib/common/remote.c:951,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:955,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/remote.c:959,1
    - Dst: pcmk__set_nonblocking
      Src: /src/pacemaker/lib/common/remote.c:961,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/remote.c:963,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:964,1
    - Dst: close
      Src: /src/pacemaker/lib/common/remote.c:965,1
    - Dst: pcmk__get_sbd_watchdog_timeout
      Src: /src/pacemaker/lib/common/remote.c:971,1
    - Dst: setsockopt
      Src: /src/pacemaker/lib/common/remote.c:977,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/remote.c:981,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/remote.c:982,1
    - Dst: close
      Src: /src/pacemaker/lib/common/remote.c:983,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - ssock
    - csock
    argTypes:
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 991
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 991
    functionName: pcmk__accept_remote_connection
    functionSourceFile: /src/pacemaker/lib/common/remote.c
    functionUses: []
    functionsReached:
    - memset
    - pcmk__get_sbd_watchdog_timeout
    - accept
    - pcmk__set_nonblocking
    - pcmk__sockaddr2str
    - pcmk_rc_str
    - crm_info
    - crm_err
    - close
    - setsockopt
    linkageType: ''
    returnType: int
    signature: 'int pcmk__accept_remote_connection(int ssock, int *csock) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/remote.c:1004,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/remote.c:1010,1
    - Dst: strtol
      Src: /src/pacemaker/lib/common/remote.c:1008,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1020
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1020
    functionName: crm_default_remote_port
    functionSourceFile: /src/pacemaker/lib/common/remote.c
    functionUses: []
    functionsReached:
    - pcmk__env_option
    - strtol
    - crm_warn
    linkageType: ''
    returnType: int
    signature: 'int crm_default_remote_port(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: loggable_parent_id
      Src: /src/pacemaker/lib/common/rules.c:157,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/rules.c:182,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:183,1
    - Dst: crm_time_get_gregorian
      Src: /src/pacemaker/lib/common/rules.c:190,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/rules.c:181,1
    - Dst: crm_time_get_timeofday
      Src: /src/pacemaker/lib/common/rules.c:194,1
    - Dst: crm_time_get_ordinal
      Src: /src/pacemaker/lib/common/rules.c:198,1
    - Dst: crm_time_get_isoweek
      Src: /src/pacemaker/lib/common/rules.c:201,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/rules.c:204,1
    - Dst: check_range
      Src: /src/pacemaker/lib/common/rules.c:205,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 2
    argNames:
    - date_spec
    - now
    argTypes:
    - xmlNode*
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 215
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 215
    functionName: pcmk__evaluate_date_spec
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - check_range
    - pcmk__str_empty
    - PCMK__NELEM
    - crm_time_get_gregorian
    - crm_time_get_isoweek
    - crm_time_get_ordinal
    - pcmk__config_err
    - loggable_parent_id
    - pcmk__xe_id
    - crm_time_get_timeofday
    linkageType: ''
    returnType: int
    signature: 'int pcmk__evaluate_date_spec(const xmlNode *date_spec, const crm_time_t
      *now) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/pacemaker/lib/common/rules.c:559,1
    - Dst: memcpy
      Src: /src/pacemaker/lib/common/rules.c:590,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 6
    argNames:
    - string
    - match
    - submatches
    - nmatches
    - expansion
    - nbytes
    argTypes:
    - char*
    - char*
    - regmatch_t
    - int
    - char*
    - size_t*
    constantsTouched: []
    func_position:
      end: 597
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 597
    functionName: process_submatches
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - isdigit
    - memcpy
    linkageType: ''
    returnType: bool
    signature: 'static bool process_submatches(const char *string, const char *match,
      const regmatch_t submatches[], int nmatches, char *expansion, size_t *nbytes) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:806,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:810,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:813,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - source
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 819
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 819
    functionName: pcmk__parse_source
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: enum pcmk__reference_source
    signature: 'enum pcmk__reference_source pcmk__parse_source(const char *source) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/rules.c:980,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/rules.c:1063,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:1050,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/rules.c:1068,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/rules.c:1081,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:982,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:1009,1
    - Dst: pcmk__parse_source
      Src: /src/pacemaker/lib/common/rules.c:1023,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/rules.c:1034,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:1071,1
    - Dst: evaluate_attr_comparison
      Src: /src/pacemaker/lib/common/rules.c:1077,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/rules.c:1088,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/rules.c:1088,1
    - Dst: pcmk__replace_submatches
      Src: /src/pacemaker/lib/common/rules.c:996,1
    - Dst: pcmk__parse_comparison
      Src: /src/pacemaker/lib/common/rules.c:1005,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/rules.c:1022,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/rules.c:1082,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/rules.c:1089,1
    - Dst: free
      Src: /src/pacemaker/lib/common/rules.c:1094,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/rules.c:981,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:992,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/rules.c:990,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/rules.c:1004,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:1013,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:1026,1
    - Dst: value_from_source
      Src: /src/pacemaker/lib/common/rules.c:1057,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/rules.c:1067,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:1039,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/rules.c:1086,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/rules.c:1089,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 76
    argCount: 2
    argNames:
    - expression
    - rule_input
    argTypes:
    - xmlNode*
    - pcmk_rule_input_t*
    constantsTouched: []
    func_position:
      end: 1096
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 1096
    functionName: pcmk__evaluate_attr_expression
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - evaluate_attr_comparison
    - pcmk__s
    - pcmk__str_empty
    - g_hash_table_lookup
    - pcmk__parse_comparison
    - value_from_source
    - pcmk_rc_str
    - free
    - pcmk__parse_type
    - pcmk__parse_source
    - crm_element_value
    - pcmk__config_err
    - pcmk__replace_submatches
    - pcmk__xe_id
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int pcmk__evaluate_attr_expression(const xmlNode *expression, const
      pcmk_rule_input_t *rule_input) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/rules.c:114,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/rules.c:135,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:122,1
    - Dst: pcmk__parse_ll_range
      Src: /src/pacemaker/lib/common/rules.c:120,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/rules.c:137,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/rules.c:137,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 4
    argNames:
    - date_spec
    - id
    - attr
    - value
    argTypes:
    - xmlNode*
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 139
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 139
    functionName: check_range
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - pcmk__parse_ll_range
    - pcmk_rc_str
    - crm_element_value
    - pcmk__config_err
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int check_range(const xmlNode *date_spec, const char *id, const
      char *attr, uint32_t value) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/rules.c:481,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/rules.c:488,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:483,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:489,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/rules.c:482,1
    - Dst: evaluate_in_range
      Src: /src/pacemaker/lib/common/rules.c:491,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:493,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/rules.c:494,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:499,1
    - Dst: pcmk__evaluate_date_spec
      Src: /src/pacemaker/lib/common/rules.c:507,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:509,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/rules.c:522,1
    - Dst: evaluate_gt
      Src: /src/pacemaker/lib/common/rules.c:510,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:512,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/rules.c:523,1
    - Dst: evaluate_lt
      Src: /src/pacemaker/lib/common/rules.c:513,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:516,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 3
    argNames:
    - date_expression
    - now
    - next_change
    argTypes:
    - xmlNode*
    - crm_time_t*
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 525
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 525
    functionName: pcmk__evaluate_date_expression
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - evaluate_lt
    - pcmk__str_empty
    - pcmk__xe_first_child
    - pcmk__str_eq
    - evaluate_in_range
    - pcmk__evaluate_date_spec
    - pcmk_rc_str
    - evaluate_gt
    - crm_element_value
    - pcmk__config_err
    - pcmk__xe_id
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int pcmk__evaluate_date_expression(const xmlNode *date_expression,
      const crm_time_t *now, crm_time_t *next_change) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/common/rules.c:754,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/rules.c:762,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/rules.c:761,1
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/common/rules.c:765,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/rules.c:763,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/rules.c:776,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/rules.c:777,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/rules.c:779,1
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/common/rules.c:781,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/rules.c:788,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 3
    argNames:
    - value1
    - value2
    - type
    argTypes:
    - char*
    - char*
    - enum pcmk__type
    constantsTouched: []
    func_position:
      end: 793
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 793
    functionName: pcmk__cmp_by_type
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - strcasecmp
    - pcmk__scan_double
    - compare_version
    - pcmk__scan_ll
    - crm_warn
    linkageType: ''
    returnType: int
    signature: 'int pcmk__cmp_by_type(const char *value1, const char *value2, enum
      pcmk__type type) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/rules.c:943,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 7
    argCount: 3
    argNames:
    - value
    - source
    - rule_input
    argTypes:
    - char*
    - enum pcmk__reference_source
    - pcmk_rule_input_t*
    constantsTouched: []
    func_position:
      end: 944
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 944
    functionName: value_from_source
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    linkageType: ''
    returnType: char*
    signature: 'static const char *value_from_source(const char *value, enum pcmk__reference_source
      source, const pcmk_rule_input_t *rule_input) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__condition_type
      Src: /src/pacemaker/lib/common/rules.c:1260,1
    - Dst: pcmk__evaluate_attr_expression
      Src: /src/pacemaker/lib/common/rules.c:1266,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/rules.c:1262,1
    - Dst: pcmk__evaluate_rsc_expression
      Src: /src/pacemaker/lib/common/rules.c:1278,1
    - Dst: pcmk__evaluate_date_expression
      Src: /src/pacemaker/lib/common/rules.c:1270,1
    - Dst: pcmk__evaluate_op_expression
      Src: /src/pacemaker/lib/common/rules.c:1281,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:1284,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/rules.c:1286,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/rules.c:1286,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 3
    argNames:
    - condition
    - rule_input
    - next_change
    argTypes:
    - xmlNode*
    - pcmk_rule_input_t*
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 1290
      start: 1250
    functionDepth: 0
    functionLinenumber: 1250
    functionLinenumberEnd: 1290
    functionName: pcmk__evaluate_condition
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - pcmk__evaluate_op_expression
    - pcmk__s
    - pcmk__evaluate_attr_expression
    - pcmk_evaluate_rule
    - pcmk__config_err
    - pcmk__evaluate_rsc_expression
    - pcmk__evaluate_date_expression
    - pcmk__xe_id
    - pcmk__condition_type
    linkageType: ''
    returnType: int
    signature: 'int pcmk__evaluate_condition(xmlNode *condition, const pcmk_rule_input_t
      *rule_input, crm_time_t *next_change) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/rules.c:43,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/rules.c:52,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/rules.c:49,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/rules.c:55,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/rules.c:46,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/rules.c:61,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/rules.c:63,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - condition
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 69
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 69
    functionName: pcmk__condition_type
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - pcmk__xe_is
    - crm_element_value
    linkageType: ''
    returnType: enum expression_type
    signature: 'enum expression_type pcmk__condition_type(const xmlNode *condition) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/rules.c:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: loggable_parent_id
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - pcmk__xe_id
    linkageType: ''
    returnType: char*
    signature: 'static const char *loggable_parent_id(const xmlNode *xml) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:653,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:656,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:662,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:659,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:665,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:668,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:671,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:674,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 1
    argNames:
    - op
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 679
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 679
    functionName: pcmk__parse_comparison
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: enum pcmk__comparison
    signature: 'enum pcmk__comparison pcmk__parse_comparison(const char *op) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/pacemaker/lib/common/rules.c:702,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:716,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:713,1
    - Dst: strchr
      Src: /src/pacemaker/lib/common/rules.c:703,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:719,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:722,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 22
    argCount: 4
    argNames:
    - type
    - op
    - value1
    - value2
    argTypes:
    - char*
    - enum pcmk__comparison
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 727
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 727
    functionName: pcmk__parse_type
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - strchr
    - pcmk__str_eq
    linkageType: ''
    returnType: enum pcmk__type
    signature: 'enum pcmk__type pcmk__parse_type(const char *type, enum pcmk__comparison
      op, const char *value1, const char *value2) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/rules.c:875,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 18
    argCount: 4
    argNames:
    - actual
    - reference
    - type
    - comparison
    argTypes:
    - char*
    - char*
    - enum pcmk__type
    - enum pcmk__comparison
    constantsTouched: []
    func_position:
      end: 908
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 908
    functionName: evaluate_attr_comparison
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - pcmk__cmp_by_type
    linkageType: ''
    returnType: int
    signature: 'static int evaluate_attr_comparison(const char *actual, const char
      *reference, enum pcmk__type type, enum pcmk__comparison comparison) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/rules.c:1191,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/rules.c:1192,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/rules.c:1199,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:1193,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:1201,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/rules.c:1207,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/lib/common/rules.c:1208,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:1209,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:1217,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/rules.c:1218,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/rules.c:1226,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/common/rules.c:1228,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/rules.c:1233,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/common/rules.c:1234,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/common/rules.c:1229,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/rules.c:1220,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 2
    argNames:
    - op_expression
    - rule_input
    argTypes:
    - xmlNode*
    - pcmk_rule_input_t*
    constantsTouched: []
    func_position:
      end: 1236
      start: 1177
    functionDepth: 0
    functionLinenumber: 1177
    functionLinenumberEnd: 1236
    functionName: pcmk__evaluate_op_expression
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - pcmk__str_empty
    - pcmk__str_eq
    - pcmk_parse_interval_spec
    - crm_element_value
    - pcmk__config_err
    - pcmk__readable_interval
    - pcmk__xe_id
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int pcmk__evaluate_op_expression(const xmlNode *op_expression, const
      pcmk_rule_input_t *rule_input) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_resolve_idref
      Src: /src/pacemaker/lib/common/rules.c:1316,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/rules.c:1330,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/rules.c:1323,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:1325,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/rules.c:1324,1
    - Dst: pcmk__parse_combine
      Src: /src/pacemaker/lib/common/rules.c:1331,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:1343,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/rules.c:1350,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/rules.c:1351,1
    - Dst: pcmk__evaluate_condition
      Src: /src/pacemaker/lib/common/rules.c:1354,1
    - Dst: pcmk__config_warn
      Src: /src/pacemaker/lib/common/rules.c:1367,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/rules.c:1372,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 3
    argNames:
    - rule
    - rule_input
    - next_change
    argTypes:
    - xmlNode*
    - pcmk_rule_input_t*
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 1374
      start: 1302
    functionDepth: 0
    functionLinenumber: 1302
    functionLinenumberEnd: 1374
    functionName: pcmk_evaluate_rule
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - crm_trace
    - pcmk__config_warn
    - pcmk__str_empty
    - pcmk__xe_first_child
    - pcmk__parse_combine
    - pcmk__xe_resolve_idref
    - pcmk__xe_next
    - crm_element_value
    - pcmk__config_err
    - pcmk__xe_id
    - pcmk__evaluate_condition
    linkageType: ''
    returnType: int
    signature: 'int pcmk_evaluate_rule(xmlNode *rule, const pcmk_rule_input_t *rule_input,
      crm_time_t *next_change) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_get_datetime
      Src: /src/pacemaker/lib/common/rules.c:430,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:432,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:438,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/rules.c:444,1
    - Dst: pcmk__set_time_if_earlier
      Src: /src/pacemaker/lib/common/rules.c:445,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/rules.c:446,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/rules.c:450,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 4
    argNames:
    - date_expression
    - id
    - now
    - next_change
    argTypes:
    - xmlNode*
    - char*
    - crm_time_t*
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 452
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 452
    functionName: evaluate_lt
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - pcmk__xe_get_datetime
    - pcmk__config_err
    - pcmk__set_time_if_earlier
    - crm_time_free
    linkageType: ''
    returnType: int
    signature: 'static int evaluate_lt(const xmlNode *date_expression, const char
      *id, const crm_time_t *now, crm_time_t *next_change) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/rules.c:619,1
    - Dst: process_submatches
      Src: /src/pacemaker/lib/common/rules.c:633,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/rules.c:630,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/rules.c:619,1
    - Dst: process_submatches
      Src: /src/pacemaker/lib/common/rules.c:624,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 4
    argNames:
    - string
    - match
    - submatches
    - nmatches
    argTypes:
    - char*
    - char*
    - regmatch_t
    - int
    constantsTouched: []
    func_position:
      end: 636
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 636
    functionName: pcmk__replace_submatches
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - pcmk__assert_alloc
    - process_submatches
    - pcmk__str_empty
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__replace_submatches(const char *string, const char *match,
      const regmatch_t submatches[], int nmatches) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_get_datetime
      Src: /src/pacemaker/lib/common/rules.c:298,1
    - Dst: pcmk__xe_get_datetime
      Src: /src/pacemaker/lib/common/rules.c:305,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/rules.c:309,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:330,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/rules.c:342,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/rules.c:347,1
    - Dst: pcmk__set_time_if_earlier
      Src: /src/pacemaker/lib/common/rules.c:356,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/rules.c:339,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/rules.c:361,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:315,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/rules.c:333,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/rules.c:348,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/rules.c:360,1
    - Dst: pcmk__unpack_duration
      Src: /src/pacemaker/lib/common/rules.c:327,1
    - Dst: crm_time_add_seconds
      Src: /src/pacemaker/lib/common/rules.c:355,1
    - Dst: pcmk__set_time_if_earlier
      Src: /src/pacemaker/lib/common/rules.c:340,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:307,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:300,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/rules.c:323,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/rules.c:341,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/rules.c:349,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 4
    argNames:
    - date_expression
    - id
    - now
    - next_change
    argTypes:
    - xmlNode*
    - char*
    - crm_time_t*
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 363
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 363
    functionName: evaluate_in_range
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - pcmk__xe_first_child
    - pcmk__unpack_duration
    - pcmk__xe_get_datetime
    - crm_time_add_seconds
    - pcmk__config_err
    - pcmk__set_time_if_earlier
    - crm_time_free
    linkageType: ''
    returnType: int
    signature: 'static int evaluate_in_range(const xmlNode *date_expression, const
      char *id, const crm_time_t *now, crm_time_t *next_change) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_get_datetime
      Src: /src/pacemaker/lib/common/rules.c:384,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/rules.c:399,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:386,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:393,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/rules.c:400,1
    - Dst: crm_time_add_seconds
      Src: /src/pacemaker/lib/common/rules.c:405,1
    - Dst: pcmk__set_time_if_earlier
      Src: /src/pacemaker/lib/common/rules.c:406,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/rules.c:407,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 4
    argNames:
    - date_expression
    - id
    - now
    - next_change
    argTypes:
    - xmlNode*
    - char*
    - crm_time_t*
    - crm_time_t*
    constantsTouched: []
    func_position:
      end: 409
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 409
    functionName: evaluate_gt
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - pcmk__xe_get_datetime
    - crm_time_add_seconds
    - pcmk__config_err
    - pcmk__set_time_if_earlier
    - crm_time_free
    linkageType: ''
    returnType: int
    signature: 'static int evaluate_gt(const xmlNode *date_expression, const char
      *id, const crm_time_t *now, crm_time_t *next_change) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: loggable_parent_id
      Src: /src/pacemaker/lib/common/rules.c:249,1
    - Dst: pcmk_copy_time
      Src: /src/pacemaker/lib/common/rules.c:265,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/rules.c:257,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/rules.c:258,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:259,1
    - Dst: ADD_COMPONENT
      Src: /src/pacemaker/lib/common/rules.c:267,1
    - Dst: ADD_COMPONENT
      Src: /src/pacemaker/lib/common/rules.c:268,1
    - Dst: ADD_COMPONENT
      Src: /src/pacemaker/lib/common/rules.c:269,1
    - Dst: ADD_COMPONENT
      Src: /src/pacemaker/lib/common/rules.c:270,1
    - Dst: ADD_COMPONENT
      Src: /src/pacemaker/lib/common/rules.c:271,1
    - Dst: ADD_COMPONENT
      Src: /src/pacemaker/lib/common/rules.c:273,1
    - Dst: ADD_COMPONENT
      Src: /src/pacemaker/lib/common/rules.c:272,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 3
    argNames:
    - duration
    - start
    - end
    argTypes:
    - xmlNode*
    - crm_time_t*
    - crm_time_t**
    constantsTouched: []
    func_position:
      end: 276
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 276
    functionName: pcmk__unpack_duration
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - ADD_COMPONENT
    - pcmk__str_empty
    - pcmk_copy_time
    - pcmk__config_err
    - loggable_parent_id
    - pcmk__xe_id
    linkageType: ''
    returnType: int
    signature: 'int pcmk__unpack_duration(const xmlNode *duration, const crm_time_t
      *start, crm_time_t **end) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:832,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:836,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - combine
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 842
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 842
    functionName: pcmk__parse_combine
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: enum pcmk__combine
    signature: 'enum pcmk__combine pcmk__parse_combine(const char *combine) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/rules.c:1141,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/rules.c:1123,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/rules.c:1131,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/rules.c:1144,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/rules.c:1151,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/rules.c:1163,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/rules.c:1160,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/rules.c:1122,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/rules.c:1134,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:1143,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/rules.c:1154,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/rules.c:1146,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:1133,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/rules.c:1125,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/rules.c:1136,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/rules.c:1153,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/rules.c:1161,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/rules.c:1162,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/rules.c:1156,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 2
    argNames:
    - rsc_expression
    - rule_input
    argTypes:
    - xmlNode*
    - pcmk_rule_input_t*
    constantsTouched: []
    func_position:
      end: 1165
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1165
    functionName: pcmk__evaluate_rsc_expression
    functionSourceFile: /src/pacemaker/lib/common/rules.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - pcmk__str_empty
    - pcmk__str_eq
    - crm_element_value
    - pcmk__config_err
    - pcmk__xe_id
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int pcmk__evaluate_rsc_expression(const xmlNode *rsc_expression, const
      pcmk_rule_input_t *rule_input) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/common/health.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: pcmk__validate_health_strategy
    functionSourceFile: /src/pacemaker/lib/common/health.c
    functionUses: []
    functionsReached:
    - pcmk__strcase_any_of
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__validate_health_strategy(const char *value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/health.c:87,1
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/lib/common/health.c:89,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/health.c:93,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/health.c:92,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/common/health.c:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - option
    - scheduler
    argTypes:
    - char*
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 96
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 96
    functionName: pcmk__health_score
    functionSourceFile: /src/pacemaker/lib/common/health.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk_parse_score
    - pcmk_rc_str
    - crm_warn
    - pcmk__cluster_option
    linkageType: ''
    returnType: int
    signature: 'int pcmk__health_score(const char *option, const pcmk_scheduler_t
      *scheduler) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/health.c:47,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/health.c:54,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/health.c:51,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/health.c:60,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/health.c:57,1
    - Dst: pcmk__config_err
      Src: /src/pacemaker/lib/common/health.c:63,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 69
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 69
    functionName: pcmk__parse_health_strategy
    functionSourceFile: /src/pacemaker/lib/common/health.c
    functionUses: []
    functionsReached:
    - pcmk__config_err
    - pcmk__str_eq
    linkageType: ''
    returnType: enum pcmk__health_strategy
    signature: 'enum pcmk__health_strategy pcmk__parse_health_strategy(const char
      *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/servers.c:109,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/servers.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - server
    argTypes:
    - enum pcmk_ipc_server
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: pcmk__server_name
    functionSourceFile: /src/pacemaker/lib/common/servers.c
    functionUses: []
    functionsReached:
    - PCMK__NELEM
    - CRM_CHECK
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__server_name(enum pcmk_ipc_server server) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/servers.c:190,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/servers.c:204,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/servers.c:197,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 210
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 210
    functionName: pcmk__parse_server
    functionSourceFile: /src/pacemaker/lib/common/servers.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: enum pcmk_ipc_server
    signature: 'enum pcmk_ipc_server pcmk__parse_server(const char *text) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/servers.c:145,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/servers.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - server
    argTypes:
    - enum pcmk_ipc_server
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: pcmk__server_ipc_name
    functionSourceFile: /src/pacemaker/lib/common/servers.c
    functionUses: []
    functionsReached:
    - PCMK__NELEM
    - CRM_CHECK
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__server_ipc_name(enum pcmk_ipc_server server) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/servers.c:127,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/servers.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - server
    argTypes:
    - enum pcmk_ipc_server
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: pcmk__server_log_name
    functionSourceFile: /src/pacemaker/lib/common/servers.c
    functionUses: []
    functionsReached:
    - PCMK__NELEM
    - CRM_CHECK
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__server_log_name(enum pcmk_ipc_server server) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/servers.c:163,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/servers.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - server
    argTypes:
    - enum pcmk_ipc_server
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: pcmk__server_message_type
    functionSourceFile: /src/pacemaker/lib/common/servers.c
    functionUses: []
    functionsReached:
    - PCMK__NELEM
    - CRM_CHECK
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__server_message_type(enum pcmk_ipc_server server) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_enable_blackbox
      Src: /src/pacemaker/lib/common/logging.c:127,1
    - Dst: crm_write_blackbox
      Src: /src/pacemaker/lib/common/logging.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - nsig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: crm_trigger_blackbox
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - crm_enable_blackbox
    - crm_write_blackbox
    linkageType: ''
    returnType: void
    signature: 'static void crm_trigger_blackbox(int nsig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_strjoinv
      Src: /src/pacemaker/lib/common/logging.c:1126,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/logging.c:1128,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/logging.c:1127,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 1129
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1129
    functionName: crm_log_args
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - g_strjoinv
    - crm_notice
    - g_free
    linkageType: ''
    returnType: void
    signature: 'void crm_log_args(int argc, char **argv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/common/logging.c:1230,1
    - Dst: pcmk__output_set_log_level
      Src: /src/pacemaker/lib/common/logging.c:1237,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/logging.c:1235,1
    - Dst: pcmk__log_output_new
      Src: /src/pacemaker/lib/common/logging.c:1235,1
    - Dst: pcmk__output_set_log_filter
      Src: /src/pacemaker/lib/common/logging.c:1238,1
    - Dst: pcmk__xml_show_changes
      Src: /src/pacemaker/lib/common/logging.c:1239,1
    - Dst: pcmk__output_set_log_filter
      Src: /src/pacemaker/lib/common/logging.c:1240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 6
    argNames:
    - file
    - function
    - line
    - tags
    - level
    - xml
    argTypes:
    - char*
    - char*
    - uint32_t
    - uint32_t
    - uint8_t
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1241
      start: 1225
    functionDepth: 0
    functionLinenumber: 1225
    functionLinenumberEnd: 1241
    functionName: pcmk__log_xml_changes_as
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - pcmk__output_set_log_filter
    - CRM_CHECK
    - do_crm_log
    - pcmk__log_output_new
    - pcmk__xml_show_changes
    - pcmk__output_set_log_level
    linkageType: ''
    returnType: void
    signature: 'void pcmk__log_xml_changes_as(const char *file, const char *function,
      uint32_t line, uint32_t tags, uint8_t level, const xmlNode *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_log_remove_handler
      Src: /src/pacemaker/lib/common/logging.c:139,1
    - Dst: g_log_remove_handler
      Src: /src/pacemaker/lib/common/logging.c:143,1
    - Dst: g_log_remove_handler
      Src: /src/pacemaker/lib/common/logging.c:141,1
    - Dst: g_log_remove_handler
      Src: /src/pacemaker/lib/common/logging.c:147,1
    - Dst: g_log_remove_handler
      Src: /src/pacemaker/lib/common/logging.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 149
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 149
    functionName: crm_log_deinit
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - g_log_remove_handler
    linkageType: ''
    returnType: void
    signature: 'void crm_log_deinit(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/pacemaker/lib/common/logging.c:1152,1
    - Dst: do_crm_log_alias
      Src: /src/pacemaker/lib/common/logging.c:1153,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 6
    argNames:
    - file
    - function
    - line
    - level
    - prefix
    - output
    argTypes:
    - char*
    - char*
    - int
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1160
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1160
    functionName: crm_log_output_fn
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - do_crm_log_alias
    - strchrnul
    linkageType: ''
    returnType: void
    signature: 'void crm_log_output_fn(const char *file, const char *function, int
      line, int level, const char *prefix, const char *output) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:258,1
    - Dst: fchmod
      Src: /src/pacemaker/lib/common/logging.c:268,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/logging.c:269,1
    - Dst: strtol
      Src: /src/pacemaker/lib/common/logging.c:262,1
    - Dst: strerror
      Src: /src/pacemaker/lib/common/logging.c:270,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - filename
    - logfd
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 272
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 272
    functionName: chmod_logfile
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - fchmod
    - strerror
    - pcmk__env_option
    - crm_warn
    - strtol
    linkageType: ''
    returnType: void
    signature: 'static void chmod_logfile(const char *filename, int logfd) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:171,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/logging.c:182,1
    - Dst: qb_log_format_set
      Src: /src/pacemaker/lib/common/logging.c:172,1
    - Dst: crm_tracing_enabled
      Src: /src/pacemaker/lib/common/logging.c:189,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/logging.c:188,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/logging.c:191,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/logging.c:193,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/logging.c:196,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/common/logging.c:198,1
    - Dst: qb_log_format_set
      Src: /src/pacemaker/lib/common/logging.c:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 4
    argNames:
    - method
    - daemon
    - use_pid
    - use_nodename
    argTypes:
    - int
    - char*
    - pid_t
    - char*
    constantsTouched: []
    func_position:
      end: 201
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 201
    functionName: set_format_string
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - CRM_LOG_ASSERT
    - crm_tracing_enabled
    - qb_log_format_set
    - snprintf
    - qb_log_ctl
    linkageType: ''
    returnType: void
    signature: 'static void set_format_string(int method, const char *daemon, pid_t
      use_pid, const char *use_nodename) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 641
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 641
    functionName: strchrnul
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *strchrnul(const char *s, int c) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/pacemaker/lib/common/logging.c:278,1
    - Dst: chown_logfile
      Src: /src/pacemaker/lib/common/logging.c:280,1
    - Dst: chmod_logfile
      Src: /src/pacemaker/lib/common/logging.c:285,1
    - Dst: fileno
      Src: /src/pacemaker/lib/common/logging.c:279,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - filename
    - logfile
    argTypes:
    - char*
    - FILE*
    constantsTouched: []
    func_position:
      end: 288
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 288
    functionName: set_logfile_permissions
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - fileno
    - chown_logfile
    - chmod_logfile
    - geteuid
    linkageType: ''
    returnType: int
    signature: 'static int set_logfile_permissions(const char *filename, FILE *logfile) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__add_logfile
      Src: /src/pacemaker/lib/common/logging.c:421,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/logging.c:425,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 2
    argNames:
    - log_files
    - out
    argTypes:
    - gchar**
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 428
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 428
    functionName: pcmk__add_logfiles
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - pcmk__add_logfile
    - pcmk_rc_str
    linkageType: ''
    returnType: void
    signature: 'void pcmk__add_logfiles(gchar **log_files, pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_control_blackbox
      Src: /src/pacemaker/lib/common/logging.c:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - nsig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 499
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 499
    functionName: crm_enable_blackbox
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - crm_control_blackbox
    linkageType: ''
    returnType: void
    signature: 'void crm_enable_blackbox(int nsig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_update_callsites
      Src: /src/pacemaker/lib/common/logging.c:1064,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/logging.c:1065,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - level
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1067
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1067
    functionName: set_crm_log_level
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - crm_trace
    - crm_update_callsites
    linkageType: ''
    returnType: unsigned int
    signature: 'unsigned int set_crm_log_level(unsigned int level) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/logging.c:208,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/logging.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: logfile_disabled
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: bool
    signature: 'static bool logfile_disabled(const char *filename) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_control_blackbox
      Src: /src/pacemaker/lib/common/logging.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - nsig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 505
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 505
    functionName: crm_disable_blackbox
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - crm_control_blackbox
    linkageType: ''
    returnType: void
    signature: 'void crm_disable_blackbox(int nsig) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:1072,1
    - Dst: crm_update_callsites
      Src: /src/pacemaker/lib/common/logging.c:1074,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:1073,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:1077,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - enable
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1079
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1079
    functionName: crm_enable_stderr
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - crm_update_callsites
    - qb_log_ctl
    linkageType: ''
    returnType: void
    signature: 'void crm_enable_stderr(int enable) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/logging.c:359,1
    - Dst: geteuid
      Src: /src/pacemaker/lib/common/logging.c:369,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/logging.c:375,1
    - Dst: strerror
      Src: /src/pacemaker/lib/common/logging.c:376,1
    - Dst: setenv_logfile
      Src: /src/pacemaker/lib/common/logging.c:392,1
    - Dst: qb_log_file_open
      Src: /src/pacemaker/lib/common/logging.c:383,1
    - Dst: enable_logfile
      Src: /src/pacemaker/lib/common/logging.c:400,1
    - Dst: logfile_disabled
      Src: /src/pacemaker/lib/common/logging.c:354,1
    - Dst: fopen
      Src: /src/pacemaker/lib/common/logging.c:365,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/logging.c:395,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/logging.c:368,1
    - Dst: strerror
      Src: /src/pacemaker/lib/common/logging.c:369,1
    - Dst: getegid
      Src: /src/pacemaker/lib/common/logging.c:369,1
    - Dst: disable_logfile
      Src: /src/pacemaker/lib/common/logging.c:396,1
    - Dst: strerror
      Src: /src/pacemaker/lib/common/logging.c:386,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/logging.c:399,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/logging.c:385,1
    - Dst: fclose
      Src: /src/pacemaker/lib/common/logging.c:382,1
    - Dst: set_logfile_permissions
      Src: /src/pacemaker/lib/common/logging.c:373,1
    - Dst: fclose
      Src: /src/pacemaker/lib/common/logging.c:377,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 403
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 403
    functionName: pcmk__add_logfile
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - set_logfile_permissions
    - fclose
    - qb_log_file_open
    - fopen
    - logfile_disabled
    - enable_logfile
    - strerror
    - pcmk__str_eq
    - disable_logfile
    - getegid
    - crm_notice
    - setenv_logfile
    - crm_warn
    - geteuid
    linkageType: ''
    returnType: int
    signature: 'int pcmk__add_logfile(const char *filename) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/common/logging.c:1261,1
    - Dst: pcmk__output_set_log_level
      Src: /src/pacemaker/lib/common/logging.c:1268,1
    - Dst: pcmk__output_set_log_filter
      Src: /src/pacemaker/lib/common/logging.c:1269,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/logging.c:1266,1
    - Dst: pcmk__log_output_new
      Src: /src/pacemaker/lib/common/logging.c:1266,1
    - Dst: pcmk__output_set_log_filter
      Src: /src/pacemaker/lib/common/logging.c:1271,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 6
    argNames:
    - file
    - function
    - line
    - tags
    - level
    - patchset
    argTypes:
    - char*
    - char*
    - uint32_t
    - uint32_t
    - uint8_t
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1272
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1272
    functionName: pcmk__log_xml_patchset_as
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - pcmk__output_set_log_filter
    - CRM_CHECK
    - do_crm_log
    - pcmk__log_output_new
    - pcmk__output_set_log_level
    linkageType: ''
    returnType: void
    signature: 'void pcmk__log_xml_patchset_as(const char *file, const char *function,
      uint32_t line, uint32_t tags, uint8_t level, const xmlNode *patchset) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:590,1
    - Dst: qb_bit_set
      Src: /src/pacemaker/lib/common/logging.c:599,1
    - Dst: qb_bit_set
      Src: /src/pacemaker/lib/common/logging.c:594,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/logging.c:602,1
    - Dst: strstr
      Src: /src/pacemaker/lib/common/logging.c:604,1
    - Dst: qb_bit_set
      Src: /src/pacemaker/lib/common/logging.c:605,1
    - Dst: free
      Src: /src/pacemaker/lib/common/logging.c:607,1
    - Dst: qb_bit_set
      Src: /src/pacemaker/lib/common/logging.c:612,1
    - Dst: qb_bit_set
      Src: /src/pacemaker/lib/common/logging.c:616,1
    - Dst: strstr
      Src: /src/pacemaker/lib/common/logging.c:617,1
    - Dst: qb_bit_set
      Src: /src/pacemaker/lib/common/logging.c:622,1
    - Dst: g_quark_to_string
      Src: /src/pacemaker/lib/common/logging.c:625,1
    - Dst: qb_bit_set
      Src: /src/pacemaker/lib/common/logging.c:618,1
    - Dst: qb_bit_set
      Src: /src/pacemaker/lib/common/logging.c:626,1
    - Dst: strstr
      Src: /src/pacemaker/lib/common/logging.c:619,1
    - Dst: qb_bit_set
      Src: /src/pacemaker/lib/common/logging.c:620,1
    - Dst: strstr
      Src: /src/pacemaker/lib/common/logging.c:621,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 57
    argCount: 7
    argNames:
    - source
    - trace_files
    - trace_fns
    - trace_fmts
    - trace_tags
    - trace_blackbox
    - cs
    argTypes:
    - int
    - char*
    - char*
    - char*
    - char*
    - char*
    - struct qb_log_callsite*
    constantsTouched: []
    func_position:
      end: 628
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 628
    functionName: crm_log_filter_source
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - free
    - qb_bit_set
    - g_quark_to_string
    - strstr
    - qb_log_ctl
    linkageType: ''
    returnType: void
    signature: 'static void crm_log_filter_source(int source, const char *trace_files,
      const char *trace_fns, const char *trace_fmts, const char *trace_tags, const
      char *trace_blackbox, struct qb_log_callsite *cs) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:657,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:661,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:660,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:658,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:659,1
    - Dst: strchrnul
      Src: /src/pacemaker/lib/common/logging.c:671,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/logging.c:672,1
    - Dst: g_quark_from_string
      Src: /src/pacemaker/lib/common/logging.c:674,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/logging.c:675,1
    - Dst: crm_log_filter_source
      Src: /src/pacemaker/lib/common/logging.c:687,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct qb_log_callsite*
    constantsTouched: []
    func_position:
      end: 690
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 690
    functionName: crm_log_filter
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - g_quark_from_string
    - crm_info
    - crm_log_filter_source
    - pcmk__env_option
    - snprintf
    - strchrnul
    linkageType: ''
    returnType: void
    signature: 'static void crm_log_filter(struct qb_log_callsite *cs) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/logging.c:728,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:733,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:732,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:731,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:730,1
    - Dst: qb_log_filter_fn_set
      Src: /src/pacemaker/lib/common/logging.c:735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 736
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 736
    functionName: crm_update_callsites
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__env_option
    - qb_log_filter_fn_set
    linkageType: ''
    returnType: void
    signature: 'void crm_update_callsites(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_log_set_handler
      Src: /src/pacemaker/lib/common/logging.c:858,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:878,1
    - Dst: memset
      Src: /src/pacemaker/lib/common/logging.c:883,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:895,1
    - Dst: bindtextdomain
      Src: /src/pacemaker/lib/common/logging.c:911,1
    - Dst: g_quark_from_static_string
      Src: /src/pacemaker/lib/common/logging.c:847,1
    - Dst: set_identity
      Src: /src/pacemaker/lib/common/logging.c:871,1
    - Dst: uname
      Src: /src/pacemaker/lib/common/logging.c:883,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:881,1
    - Dst: qb_log_init
      Src: /src/pacemaker/lib/common/logging.c:874,1
    - Dst: set_format_string
      Src: /src/pacemaker/lib/common/logging.c:897,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/logging.c:911,1
    - Dst: bind_textdomain_codeset
      Src: /src/pacemaker/lib/common/logging.c:917,1
    - Dst: getpid
      Src: /src/pacemaker/lib/common/logging.c:829,1
    - Dst: g_log_set_handler
      Src: /src/pacemaker/lib/common/logging.c:857,1
    - Dst: g_log_set_handler
      Src: /src/pacemaker/lib/common/logging.c:859,1
    - Dst: g_log_set_fatal_mask
      Src: /src/pacemaker/lib/common/logging.c:866,1
    - Dst: qb_log_facility2int
      Src: /src/pacemaker/lib/common/logging.c:873,1
    - Dst: textdomain
      Src: /src/pacemaker/lib/common/logging.c:914,1
    - Dst: umask
      Src: /src/pacemaker/lib/common/logging.c:850,1
    - Dst: g_log_set_handler
      Src: /src/pacemaker/lib/common/logging.c:854,1
    - Dst: pcmk__schema_init
      Src: /src/pacemaker/lib/common/logging.c:844,1
    - Dst: g_log_set_handler
      Src: /src/pacemaker/lib/common/logging.c:856,1
    - Dst: qb_log_tags_stringify_fn_set
      Src: /src/pacemaker/lib/common/logging.c:890,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:892,1
    - Dst: setlocale
      Src: /src/pacemaker/lib/common/logging.c:908,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/logging.c:914,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 3
    argNames:
    - entity
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 919
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 919
    functionName: crm_log_preinit
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - g_log_set_handler
    - g_quark_from_static_string
    - umask
    - qb_log_ctl
    - set_format_string
    - bindtextdomain
    - qb_log_init
    - pcmk__assert
    - qb_log_tags_stringify_fn_set
    - textdomain
    - setlocale
    - set_identity
    - memset
    - bind_textdomain_codeset
    - getpid
    - uname
    - qb_log_facility2int
    - pcmk__schema_init
    - g_log_set_fatal_mask
    linkageType: ''
    returnType: void
    signature: 'void crm_log_preinit(const char *entity, int argc, char *const *argv) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:1093,1
    - Dst: set_crm_log_level
      Src: /src/pacemaker/lib/common/logging.c:1097,1
    - Dst: crm_enable_stderr
      Src: /src/pacemaker/lib/common/logging.c:1095,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 1099
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1099
    functionName: crm_bump_log_level
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - set_crm_log_level
    - crm_enable_stderr
    - qb_log_ctl
    linkageType: ''
    returnType: void
    signature: 'void crm_bump_log_level(int argc, char **argv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/common/logging.c:1193,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/logging.c:1194,1
    - Dst: pcmk__log_output_new
      Src: /src/pacemaker/lib/common/logging.c:1198,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/logging.c:1198,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/logging.c:1194,1
    - Dst: pcmk__output_set_log_level
      Src: /src/pacemaker/lib/common/logging.c:1201,1
    - Dst: pcmk__output_set_log_filter
      Src: /src/pacemaker/lib/common/logging.c:1202,1
    - Dst: pcmk__xml_show
      Src: /src/pacemaker/lib/common/logging.c:1203,1
    - Dst: pcmk__output_set_log_filter
      Src: /src/pacemaker/lib/common/logging.c:1208,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 7
    argNames:
    - file
    - function
    - line
    - tags
    - level
    - text
    - xml
    argTypes:
    - char*
    - char*
    - uint32_t
    - uint32_t
    - uint8_t
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1210
      start: 1188
    functionDepth: 0
    functionLinenumber: 1188
    functionLinenumberEnd: 1210
    functionName: pcmk_log_xml_as
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - pcmk__output_set_log_filter
    - CRM_CHECK
    - pcmk__s
    - pcmk__str_empty
    - do_crm_log
    - pcmk__log_output_new
    - pcmk__xml_show
    - pcmk__output_set_log_level
    linkageType: ''
    returnType: void
    signature: 'void pcmk_log_xml_as(const char *file, const char *function, uint32_t
      line, uint32_t tags, uint8_t level, const char *text, const xmlNode *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/logging.c:1283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1286
      start: 1278
    functionDepth: 0
    functionLinenumber: 1278
    functionLinenumberEnd: 1286
    functionName: pcmk__free_common_logger
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - pcmk__output_free
    linkageType: ''
    returnType: void
    signature: 'void pcmk__free_common_logger(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_log_filter
      Src: /src/pacemaker/lib/common/logging.c:712,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - cs
    - level
    - tags
    argTypes:
    - struct qb_log_callsite*
    - uint8_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 719
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 719
    functionName: crm_is_callsite_active
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - crm_log_filter
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean crm_is_callsite_active(struct qb_log_callsite *cs, uint8_t
      level, uint32_t tags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:742,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:743,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:745,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:744,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 746
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 746
    functionName: crm_tracing_enabled
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - pcmk__env_option
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean crm_tracing_enabled(void) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/lib/common/logging.c:946,1
    - Dst: qb_log_filter_ctl
      Src: /src/pacemaker/lib/common/logging.c:967,1
    - Dst: crm_enable_blackbox
      Src: /src/pacemaker/lib/common/logging.c:995,1
    - Dst: crm_enable_stderr
      Src: /src/pacemaker/lib/common/logging.c:980,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:1000,1
    - Dst: crm_update_callsites
      Src: /src/pacemaker/lib/common/logging.c:1003,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/common/logging.c:1011,1
    - Dst: getuid
      Src: /src/pacemaker/lib/common/logging.c:1018,1
    - Dst: chdir
      Src: /src/pacemaker/lib/common/logging.c:1027,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/lib/common/logging.c:1045,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:926,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:954,1
    - Dst: qb_log_facility2int
      Src: /src/pacemaker/lib/common/logging.c:954,1
    - Dst: pcmk__env_option_enabled
      Src: /src/pacemaker/lib/common/logging.c:957,1
    - Dst: pcmk__env_option_enabled
      Src: /src/pacemaker/lib/common/logging.c:976,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/logging.c:986,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/logging.c:999,1
    - Dst: pcmk__env_option_enabled
      Src: /src/pacemaker/lib/common/logging.c:994,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:1001,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/common/logging.c:1024,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/logging.c:949,1
    - Dst: crm_log_preinit
      Src: /src/pacemaker/lib/common/logging.c:930,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:963,1
    - Dst: crm_priority2int
      Src: /src/pacemaker/lib/common/logging.c:965,1
    - Dst: getenv
      Src: /src/pacemaker/lib/common/logging.c:1009,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/logging.c:1012,1
    - Dst: getpwuid
      Src: /src/pacemaker/lib/common/logging.c:1019,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/lib/common/logging.c:1043,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/lib/common/logging.c:1044,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:972,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:984,1
    - Dst: pcmk__add_logfile
      Src: /src/pacemaker/lib/common/logging.c:989,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/common/logging.c:1022,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/logging.c:1025,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/logging.c:1031,1
    - Dst: crm_log_args
      Src: /src/pacemaker/lib/common/logging.c:1048,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/common/logging.c:1028,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 87
    argCount: 7
    argNames:
    - entity
    - level
    - daemon
    - to_stderr
    - argc
    - argv
    - quiet
    argTypes:
    - char*
    - uint8_t
    - gboolean
    - gboolean
    - int
    - char**
    - gboolean
    constantsTouched: []
    func_position:
      end: 1052
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 1052
    functionName: crm_log_init
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - pcmk__env_option_enabled
    - crm_log_args
    - qb_log_ctl
    - crm_log_preinit
    - crm_perror
    - crm_priority2int
    - qb_log_filter_ctl
    - getuid
    - chdir
    - pcmk__set_env_option
    - pcmk__add_logfile
    - pcmk__str_eq
    - pcmk__strcase_any_of
    - crm_update_callsites
    - crm_enable_blackbox
    - crm_enable_stderr
    - crm_info
    - getpwuid
    - crm_trace
    - qb_log_facility2int
    - mainloop_add_signal
    - pcmk__env_option
    - getenv
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean crm_log_init(const char *entity, uint8_t level, gboolean
      daemon, gboolean to_stderr, int argc, char **argv, gboolean quiet) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1105
      start: 1101
    functionDepth: 0
    functionLinenumber: 1101
    functionLinenumberEnd: 1105
    functionName: get_crm_log_level
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: 'unsigned int get_crm_log_level(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - error_handler
    - error_context
    argTypes:
    - pcmk__config_error_func
    - void*
    constantsTouched: []
    func_position:
      end: 1292
      start: 1288
    functionDepth: 0
    functionLinenumber: 1288
    functionLinenumberEnd: 1292
    functionName: pcmk__set_config_error_handler
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void pcmk__set_config_error_handler(pcmk__config_error_func error_handler,
      void *error_context) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - warning_handler
    - warning_context
    argTypes:
    - pcmk__config_warning_func
    - void*
    constantsTouched: []
    func_position:
      end: 1298
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1298
    functionName: pcmk__set_config_warning_handler
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void pcmk__set_config_warning_handler(pcmk__config_warning_func warning_handler,
      void *warning_context) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:294,1
    - Dst: crm_update_callsites
      Src: /src/pacemaker/lib/common/logging.c:304,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:296,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 305
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 305
    functionName: enable_logfile
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - crm_update_callsites
    - qb_log_ctl
    linkageType: ''
    returnType: void
    signature: 'static void enable_logfile(int fd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_log_init
      Src: /src/pacemaker/lib/common/logging.c:1165,1
    - Dst: crm_bump_log_level
      Src: /src/pacemaker/lib/common/logging.c:1169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - name
    - verbosity
    argTypes:
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1171
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1171
    functionName: pcmk__cli_init_logging
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - crm_bump_log_level
    - crm_log_init
    linkageType: ''
    returnType: void
    signature: 'void pcmk__cli_init_logging(const char *name, unsigned int verbosity) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_callsite_get
      Src: /src/pacemaker/lib/common/logging.c:72,1
    - Dst: crm_abort
      Src: /src/pacemaker/lib/common/logging.c:82,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/common/logging.c:107,1
    - Dst: crm_is_callsite_active
      Src: /src/pacemaker/lib/common/logging.c:80,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 18
    argCount: 4
    argNames:
    - log_domain
    - flags
    - message
    - user_data
    argTypes:
    - gchar*
    - GLogLevelFlags
    - gchar*
    - gpointer
    constantsTouched: []
    func_position:
      end: 108
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 108
    functionName: crm_glib_handler
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - crm_is_callsite_active
    - crm_abort
    - qb_log_callsite_get
    - do_crm_log
    linkageType: ''
    returnType: void
    signature: 'static void crm_glib_handler(const gchar * log_domain, GLogLevelFlags
      flags, const gchar * message, gpointer user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fstat
      Src: /src/pacemaker/lib/common/logging.c:230,1
    - Dst: pcmk_daemon_user
      Src: /src/pacemaker/lib/common/logging.c:236,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/common/logging.c:238,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/logging.c:239,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/logging.c:240,1
    - Dst: fchown
      Src: /src/pacemaker/lib/common/logging.c:247,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/logging.c:248,1
    - Dst: strerror
      Src: /src/pacemaker/lib/common/logging.c:249,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - filename
    - logfd
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 252
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 252
    functionName: chown_logfile
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - pcmk_daemon_user
    - strerror
    - pcmk_rc_str
    - crm_warn
    - fchown
    - fstat
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int chown_logfile(const char *filename, int logfd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 311
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: disable_logfile
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - qb_log_ctl
    linkageType: ''
    returnType: void
    signature: 'static inline void disable_logfile(int fd) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_write_blackbox
      Src: /src/pacemaker/lib/common/logging.c:438,1
    - Dst: crm_write_blackbox
      Src: /src/pacemaker/lib/common/logging.c:440,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 4
    argNames:
    - t
    - cs
    - timestamp
    - msg
    argTypes:
    - int32_t
    - struct qb_log_callsite*
    - log_time_t
    - char*
    constantsTouched: []
    func_position:
      end: 442
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 442
    functionName: blackbox_logger
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - crm_write_blackbox
    linkageType: ''
    returnType: void
    signature: 'static void blackbox_logger(int32_t t, struct qb_log_callsite *cs,
      log_time_t timestamp, const char *msg) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/lib/common/logging.c:524,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/logging.c:542,1
    - Dst: syslog
      Src: /src/pacemaker/lib/common/logging.c:545,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/logging.c:549,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/logging.c:540,1
    - Dst: qb_log_blackbox_write_to_file
      Src: /src/pacemaker/lib/common/logging.c:553,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:558,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:559,1
    - Dst: crm_signal_handler
      Src: /src/pacemaker/lib/common/logging.c:566,1
    - Dst: qb_log_blackbox_write_to_file
      Src: /src/pacemaker/lib/common/logging.c:567,1
    - Dst: raise
      Src: /src/pacemaker/lib/common/logging.c:569,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:568,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 2
    argNames:
    - nsig
    - cs
    argTypes:
    - int
    - struct qb_log_callsite*
    constantsTouched: []
    func_position:
      end: 572
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 572
    functionName: crm_write_blackbox
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - raise
    - time
    - syslog
    - crm_notice
    - qb_log_blackbox_write_to_file
    - crm_signal_handler
    - snprintf
    - qb_log_ctl
    linkageType: ''
    returnType: void
    signature: 'void crm_write_blackbox(int nsig, const struct qb_log_callsite *cs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/logging.c:801,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/logging.c:810,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/logging.c:804,1
    - Dst: strstr
      Src: /src/pacemaker/lib/common/logging.c:807,1
    - Dst: basename
      Src: /src/pacemaker/lib/common/logging.c:805,1
    - Dst: free
      Src: /src/pacemaker/lib/common/logging.c:811,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/logging.c:814,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/lib/common/logging.c:818,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - entity
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 819
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 819
    functionName: set_identity
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - strstr
    - pcmk__str_copy
    - free
    - strdup
    - basename
    - pcmk__set_env_option
    linkageType: ''
    returnType: void
    signature: 'static void set_identity(const char *entity, int argc, char *const
      *argv) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/logging.c:317,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/lib/common/logging.c:318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 320
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 320
    functionName: setenv_logfile
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - pcmk__env_option
    - pcmk__set_env_option
    linkageType: ''
    returnType: void
    signature: 'static void setenv_logfile(const char *filename) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:458,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:459,1
    - Dst: crm_signal_handler
      Src: /src/pacemaker/lib/common/logging.c:470,1
    - Dst: crm_signal_handler
      Src: /src/pacemaker/lib/common/logging.c:471,1
    - Dst: crm_signal_handler
      Src: /src/pacemaker/lib/common/logging.c:473,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:485,1
    - Dst: qb_log_custom_open
      Src: /src/pacemaker/lib/common/logging.c:478,1
    - Dst: crm_update_callsites
      Src: /src/pacemaker/lib/common/logging.c:483,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:486,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:460,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/logging.c:452,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:490,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:464,1
    - Dst: crm_update_callsites
      Src: /src/pacemaker/lib/common/logging.c:476,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:481,1
    - Dst: getpid
      Src: /src/pacemaker/lib/common/logging.c:450,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/logging.c:467,1
    - Dst: crm_signal_handler
      Src: /src/pacemaker/lib/common/logging.c:472,1
    - Dst: crm_signal_handler
      Src: /src/pacemaker/lib/common/logging.c:474,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/logging.c:480,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/lib/common/logging.c:479,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 2
    argNames:
    - nsig
    - enable
    argTypes:
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 493
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 493
    functionName: crm_control_blackbox
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - qb_log_custom_open
    - crm_notice
    - crm_signal_handler
    - getpid
    - crm_update_callsites
    - crm_trace
    - qb_log_ctl
    linkageType: ''
    returnType: void
    signature: 'static void crm_control_blackbox(int nsig, bool enable) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_quark_to_string
      Src: /src/pacemaker/lib/common/logging.c:577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - tag
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 583
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 583
    functionName: crm_quark_to_string
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - g_quark_to_string
    linkageType: ''
    returnType: char*
    signature: 'static const char *crm_quark_to_string(uint32_t tag) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/logging.c:769,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 774
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 774
    functionName: crm_priority2int
    functionSourceFile: /src/pacemaker/lib/common/logging.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: int
    signature: 'static int crm_priority2int(const char *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getppid
      Src: /src/pacemaker/lib/common/watchdog.c:117,1
    - Dst: crm_emerg
      Src: /src/pacemaker/lib/common/watchdog.c:122,1
    - Dst: panic_local
      Src: /src/pacemaker/lib/common/watchdog.c:123,1
    - Dst: memset
      Src: /src/pacemaker/lib/common/watchdog.c:119,1
    - Dst: sigqueue
      Src: /src/pacemaker/lib/common/watchdog.c:121,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/watchdog.c:128,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/watchdog.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 133
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 133
    functionName: panic_sbd
    functionSourceFile: /src/pacemaker/lib/common/watchdog.c
    functionUses: []
    functionsReached:
    - getppid
    - sigqueue
    - crm_exit
    - memset
    - crm_emerg
    - panic_local
    linkageType: ''
    returnType: void
    signature: 'static void panic_sbd(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: panic_local_nonroot
      Src: /src/pacemaker/lib/common/watchdog.c:67,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/common/watchdog.c:71,1
    - Dst: sync
      Src: /src/pacemaker/lib/common/watchdog.c:73,1
    - Dst: pcmk__sysrq_trigger
      Src: /src/pacemaker/lib/common/watchdog.c:78,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/watchdog.c:80,1
    - Dst: pcmk__sysrq_trigger
      Src: /src/pacemaker/lib/common/watchdog.c:81,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/watchdog.c:91,1
    - Dst: reboot
      Src: /src/pacemaker/lib/common/watchdog.c:98,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/watchdog.c:83,1
    - Dst: pcmk__sysrq_trigger
      Src: /src/pacemaker/lib/common/watchdog.c:84,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/watchdog.c:105,1
    - Dst: getppid
      Src: /src/pacemaker/lib/common/watchdog.c:102,1
    - Dst: strerror
      Src: /src/pacemaker/lib/common/watchdog.c:101,1
    - Dst: crm_emerg
      Src: /src/pacemaker/lib/common/watchdog.c:101,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/watchdog.c:62,1
    - Dst: getppid
      Src: /src/pacemaker/lib/common/watchdog.c:67,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/watchdog.c:76,1
    - Dst: pcmk__sysrq_trigger
      Src: /src/pacemaker/lib/common/watchdog.c:94,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/watchdog.c:103,1
    - Dst: geteuid
      Src: /src/pacemaker/lib/common/watchdog.c:66,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/watchdog.c:77,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 107
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 107
    functionName: panic_local
    functionSourceFile: /src/pacemaker/lib/common/watchdog.c
    functionUses: []
    functionsReached:
    - getppid
    - pcmk__str_empty
    - crm_exit
    - panic_local_nonroot
    - pcmk__str_eq
    - reboot
    - strerror
    - pcmk__sysrq_trigger
    - pcmk__env_option
    - crm_emerg
    - crm_warn
    - sync
    - geteuid
    - pcmk__starts_with
    linkageType: ''
    returnType: void
    signature: 'static void panic_local(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__pidfile_matches
      Src: /src/pacemaker/lib/common/watchdog.c:173,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/watchdog.c:182,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/watchdog.c:189,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/watchdog.c:175,1
    - Dst: pcmk__procfs_pid_of
      Src: /src/pacemaker/lib/common/watchdog.c:179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 193
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 193
    functionName: pcmk__locate_sbd
    functionSourceFile: /src/pacemaker/lib/common/watchdog.c
    functionUses: []
    functionsReached:
    - crm_trace
    - pcmk__procfs_pid_of
    - pcmk__pidfile_matches
    linkageType: ''
    returnType: pid_t
    signature: 'pid_t pcmk__locate_sbd(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/pacemaker/lib/common/watchdog.c:213,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/watchdog.c:220,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/watchdog.c:219,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/watchdog.c:216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 227
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 227
    functionName: pcmk__get_sbd_sync_resource_startup
    functionSourceFile: /src/pacemaker/lib/common/watchdog.c
    functionUses: []
    functionsReached:
    - crm_warn
    - getenv
    - crm_trace
    - crm_str_to_boolean
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__get_sbd_sync_resource_startup(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/watchdog.c:201,1
    - Dst: getenv
      Src: /src/pacemaker/lib/common/watchdog.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 204
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 204
    functionName: pcmk__get_sbd_watchdog_timeout
    functionSourceFile: /src/pacemaker/lib/common/watchdog.c
    functionUses: []
    functionsReached:
    - getenv
    - crm_get_msec
    linkageType: ''
    returnType: long
    signature: 'long pcmk__get_sbd_watchdog_timeout(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__get_sbd_watchdog_timeout
      Src: /src/pacemaker/lib/common/watchdog.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: pcmk__auto_stonith_watchdog_timeout
    functionSourceFile: /src/pacemaker/lib/common/watchdog.c
    functionUses: []
    functionsReached:
    - pcmk__get_sbd_watchdog_timeout
    linkageType: ''
    returnType: long
    signature: 'long pcmk__auto_stonith_watchdog_timeout(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/watchdog.c:244,1
    - Dst: pcmk__auto_stonith_watchdog_timeout
      Src: /src/pacemaker/lib/common/watchdog.c:247,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/watchdog.c:254,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/watchdog.c:248,1
    - Dst: pcmk__locate_sbd
      Src: /src/pacemaker/lib/common/watchdog.c:258,1
    - Dst: crm_emerg
      Src: /src/pacemaker/lib/common/watchdog.c:259,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/watchdog.c:261,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/watchdog.c:262,1
    - Dst: pcmk__get_sbd_watchdog_timeout
      Src: /src/pacemaker/lib/common/watchdog.c:266,1
    - Dst: crm_emerg
      Src: /src/pacemaker/lib/common/watchdog.c:269,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/watchdog.c:272,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/watchdog.c:275,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 280
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 280
    functionName: pcmk__valid_stonith_watchdog_timeout
    functionSourceFile: /src/pacemaker/lib/common/watchdog.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_get_msec
    - pcmk__s
    - pcmk__locate_sbd
    - crm_exit
    - pcmk__get_sbd_watchdog_timeout
    - pcmk__auto_stonith_watchdog_timeout
    - crm_emerg
    - crm_info
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__valid_stonith_watchdog_timeout(const char *value) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_emerg
      Src: /src/pacemaker/lib/common/watchdog.c:34,1
    - Dst: crm_emerg
      Src: /src/pacemaker/lib/common/watchdog.c:41,1
    - Dst: sigqueue
      Src: /src/pacemaker/lib/common/watchdog.c:44,1
    - Dst: pcmk__procfs_pid_of
      Src: /src/pacemaker/lib/common/watchdog.c:37,1
    - Dst: memset
      Src: /src/pacemaker/lib/common/watchdog.c:43,1
    - Dst: crm_emerg
      Src: /src/pacemaker/lib/common/watchdog.c:45,1
    - Dst: strerror
      Src: /src/pacemaker/lib/common/watchdog.c:45,1
    - Dst: crm_emerg
      Src: /src/pacemaker/lib/common/watchdog.c:48,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/watchdog.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - ppid
    argTypes:
    - pid_t
    constantsTouched: []
    func_position:
      end: 53
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 53
    functionName: panic_local_nonroot
    functionSourceFile: /src/pacemaker/lib/common/watchdog.c
    functionUses: []
    functionsReached:
    - sigqueue
    - crm_exit
    - memset
    - strerror
    - crm_emerg
    - pcmk__procfs_pid_of
    linkageType: ''
    returnType: void
    signature: 'static void panic_local_nonroot(pid_t ppid) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__locate_sbd
      Src: /src/pacemaker/lib/common/watchdog.c:147,1
    - Dst: panic_sbd
      Src: /src/pacemaker/lib/common/watchdog.c:150,1
    - Dst: panic_local
      Src: /src/pacemaker/lib/common/watchdog.c:154,1
    - Dst: crm_emerg
      Src: /src/pacemaker/lib/common/watchdog.c:148,1
    - Dst: crm_emerg
      Src: /src/pacemaker/lib/common/watchdog.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - reason
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: pcmk__panic
    functionSourceFile: /src/pacemaker/lib/common/watchdog.c
    functionUses: []
    functionsReached:
    - pcmk__locate_sbd
    - crm_emerg
    - panic_sbd
    - panic_local
    linkageType: ''
    returnType: void
    signature: 'void pcmk__panic(const char *reason) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/messages.c:68,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/messages.c:75,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/messages.c:68,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/messages.c:70,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/messages.c:69,1
    - Dst: time
      Src: /src/pacemaker/lib/common/messages.c:76,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/messages.c:81,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/common/messages.c:82,1
    - Dst: pcmk__server_message_type
      Src: /src/pacemaker/lib/common/messages.c:84,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/messages.c:94,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/common/messages.c:96,1
    - Dst: free
      Src: /src/pacemaker/lib/common/messages.c:98,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 26
    argCount: 8
    argNames:
    - origin
    - server
    - reply_to
    - sender_system
    - recipient_node
    - recipient_system
    - task
    - data
    argTypes:
    - char*
    - enum pcmk_ipc_server
    - char*
    - char*
    - char*
    - char*
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 100
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 100
    functionName: pcmk__new_message_as
    functionSourceFile: /src/pacemaker/lib/common/messages.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - CRM_CHECK
    - pcmk__xml_copy
    - crm_strdup_printf
    - pcmk__str_empty
    - pcmk__xe_set_props
    - time
    - pcmk__server_message_type
    - free
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__new_message_as(const char *origin, enum pcmk_ipc_server
      server, const char *reply_to, const char *sender_system, const char *recipient_node,
      const char *recipient_system, const char *task, xmlNode *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_new
      Src: /src/pacemaker/lib/common/messages.c:182,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/messages.c:193,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/messages.c:188,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - handlers
    argTypes:
    - pcmk__server_command_t
    constantsTouched: []
    func_position:
      end: 197
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 197
    functionName: pcmk__register_handlers
    functionSourceFile: /src/pacemaker/lib/common/messages.c
    functionUses: []
    functionsReached:
    - g_hash_table_insert
    - g_hash_table_new
    linkageType: ''
    returnType: GHashTable*
    signature: 'GHashTable *pcmk__register_handlers(const pcmk__server_command_t handlers[]) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/messages.c:245,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/lib/common/messages.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: pcmk__reset_request
    functionSourceFile: /src/pacemaker/lib/common/messages.c
    functionUses: []
    functionsReached:
    - free
    - pcmk__reset_result
    linkageType: ''
    returnType: void
    signature: 'void pcmk__reset_request(pcmk__request_t *request) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/messages.c:125,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/messages.c:127,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/messages.c:131,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/messages.c:129,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/messages.c:126,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/messages.c:132,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/messages.c:134,1
    - Dst: pcmk__parse_server
      Src: /src/pacemaker/lib/common/messages.c:136,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/messages.c:150,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/messages.c:154,1
    - Dst: pcmk__new_message_as
      Src: /src/pacemaker/lib/common/messages.c:162,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/messages.c:158,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 20
    argCount: 3
    argNames:
    - origin
    - original_request
    - data
    argTypes:
    - char*
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 164
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 164
    functionName: pcmk__new_reply_as
    functionSourceFile: /src/pacemaker/lib/common/messages.c
    functionUses: []
    functionsReached:
    - strcmp
    - pcmk__parse_server
    - pcmk__new_message_as
    - crm_element_value
    - crm_warn
    - crm_trace
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__new_reply_as(const char *origin, const xmlNode *original_request,
      xmlNode *data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/messages.c:216,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/messages.c:222,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/messages.c:213,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/messages.c:218,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/messages.c:224,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/messages.c:226,1
    - Dst: pcmk__request_origin_type
      Src: /src/pacemaker/lib/common/messages.c:227,1
    - Dst: pcmk__request_origin
      Src: /src/pacemaker/lib/common/messages.c:228,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - request
    - handlers
    argTypes:
    - pcmk__request_t*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 234
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 234
    functionName: pcmk__process_request
    functionSourceFile: /src/pacemaker/lib/common/messages.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - g_hash_table_lookup
    - crm_info
    - pcmk_is_set
    - pcmk__request_origin
    - pcmk__request_origin_type
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__process_request(pcmk__request_t *request, GHashTable
      *handlers) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/xml_element.c:887,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/common/xml_element.c:897,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/xml_element.c:892,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/xml_element.c:892,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/xml_element.c:892,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/common/xml_element.c:898,1
    - Dst: update_xe
      Src: /src/pacemaker/lib/common/xml_element.c:899,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - xml
    - user_data
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 903
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 903
    functionName: update_xe_if_matching
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - update_xe
    - pcmk__str_eq
    - pcmk__xe_is
    - crm_log_xml_trace
    - pcmk__xe_id
    linkageType: ''
    returnType: bool
    signature: 'static bool update_xe_if_matching(xmlNode *xml, void *user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:1392,1
    - Dst: crm_element_value_ll
      Src: /src/pacemaker/lib/common/xml_element.c:1408,1
    - Dst: crm_element_value_ll
      Src: /src/pacemaker/lib/common/xml_element.c:1414,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - xml
    - name_sec
    - name_usec
    - dest
    argTypes:
    - xmlNode*
    - char*
    - char*
    - struct timeval*
    constantsTouched: []
    func_position:
      end: 1420
      start: 1386
    functionDepth: 0
    functionLinenumber: 1386
    functionLinenumberEnd: 1420
    functionName: crm_element_value_timeval
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_element_value_ll
    linkageType: ''
    returnType: int
    signature: 'int crm_element_value_timeval(const xmlNode *xml, const char *name_sec,
      const char *name_usec, struct timeval *dest) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:1204,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/xml_element.c:1208,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/xml_element.c:1212,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/xml_element.c:1214,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/xml_element.c:1205,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/xml_element.c:1216,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - data
    - name
    - dest
    argTypes:
    - xmlNode*
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 1224
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1224
    functionName: crm_element_value_int
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_element_value
    - pcmk__scan_ll
    - pcmk_rc_str
    - crm_warn
    linkageType: ''
    returnType: int
    signature: 'int crm_element_value_int(const xmlNode *data, const char *name, int
      *dest) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xa_remove
      Src: /src/pacemaker/lib/common/xml_element.c:339,1
    - Dst: xmlHasProp
      Src: /src/pacemaker/lib/common/xml_element.c:339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - element
    - name
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 341
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 341
    functionName: pcmk__xe_remove_attr
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - xmlHasProp
    - pcmk__xa_remove
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xe_remove_attr(xmlNode *element, const char *name) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/common/xml_element.c:577,1
    - Dst: pcmk__xc_update
      Src: /src/pacemaker/lib/common/xml_element.c:583,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:580,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:590,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/xml_element.c:597,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/xml_element.c:606,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:632,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/xml_element.c:618,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/common/xml_element.c:634,1
    - Dst: pcmk__xml_next
      Src: /src/pacemaker/lib/common/xml_element.c:637,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:589,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/xml_element.c:610,1
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/xml_element.c:636,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/xml_element.c:639,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/xml_element.c:643,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/common/xml_element.c:578,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/xml_element.c:629,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/xml_element.c:632,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/xml_element.c:624,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/xml_element.c:625,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml_element.c:639,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml_element.c:643,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/xml_element.c:592,1
    - Dst: pcmk__if_tracing
      Src: /src/pacemaker/lib/common/xml_element.c:603,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml_element.c:629,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml_element.c:625,1
    - Dst: update_xe
      Src: /src/pacemaker/lib/common/xml_element.c:640,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xml_element.c:646,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 4
    argNames:
    - parent
    - target
    - update
    - flags
    argTypes:
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 647
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 647
    functionName: update_xe
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - update_xe
    - CRM_CHECK
    - pcmk__xc_update
    - crm_strdup_printf
    - pcmk__xe_first_child
    - pcmk__s
    - pcmk__xml_next
    - pcmk__if_tracing
    - pcmk__xe_is
    - free
    - pcmk__xe_copy_attrs
    - crm_element_value
    - pcmk__xml_first_child
    - crm_log_xml_trace
    - pcmk__xe_id
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void update_xe(xmlNode *parent, xmlNode *target, xmlNode *update,
      uint32_t flags) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/xml_element.c:1259,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/xml_element.c:1264,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 4
    argNames:
    - xml
    - name
    - dest
    - default_value
    argTypes:
    - xmlNode*
    - char*
    - uint32_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1276
      start: 1241
    functionDepth: 0
    functionLinenumber: 1241
    functionLinenumberEnd: 1276
    functionName: pcmk__xe_get_flags
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__scan_ll
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xe_get_flags(const xmlNode *xml, const char *name, uint32_t
      *dest, uint32_t default_value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/xml_element.c:313,1
    - Dst: g_slist_sort
      Src: /src/pacemaker/lib/common/xml_element.c:317,1
    - Dst: xmlAddChild
      Src: /src/pacemaker/lib/common/xml_element.c:323,1
    - Dst: g_slist_prepend
      Src: /src/pacemaker/lib/common/xml_element.c:315,1
    - Dst: xmlUnlinkNode
      Src: /src/pacemaker/lib/common/xml_element.c:322,1
    - Dst: g_slist_free
      Src: /src/pacemaker/lib/common/xml_element.c:325,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 326
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 326
    functionName: pcmk__xe_sort_attrs
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_attr
    - xmlUnlinkNode
    - g_slist_sort
    - g_slist_prepend
    - g_slist_free
    - xmlAddChild
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xe_sort_attrs(xmlNode *xml) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/xml_element.c:1443,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/xml_element.c:1445,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 3
    argNames:
    - xml
    - attr
    - t
    argTypes:
    - xmlNode*
    - char*
    - crm_time_t**
    constantsTouched: []
    func_position:
      end: 1451
      start: 1434
    functionDepth: 0
    functionLinenumber: 1434
    functionLinenumberEnd: 1451
    functionName: pcmk__xe_get_datetime
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - crm_time_new
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xe_get_datetime(const xmlNode *xml, const char *attr, crm_time_t
      **t) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:251,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_element.c:259,1
    - Dst: pcmk__xml_attr_value
      Src: /src/pacemaker/lib/common/xml_element.c:257,1
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/xml_element.c:253,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/xml_element.c:260,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/xml_element.c:264,1
    - Dst: pcmk__xe_set_score
      Src: /src/pacemaker/lib/common/xml_element.c:265,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/xml_element.c:267,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 3
    argNames:
    - target
    - src
    - flags
    argTypes:
    - xmlNode*
    - xmlNode*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 272
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 272
    functionName: pcmk__xe_copy_attrs
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_attr
    - pcmk__xe_set_score
    - CRM_CHECK
    - crm_xml_add
    - pcmk__xml_attr_value
    - pcmk_is_set
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xe_copy_attrs(xmlNode *target, const xmlNode *src, uint32_t
      flags) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/xml_element.c:384,1
    - Dst: match
      Src: /src/pacemaker/lib/common/xml_element.c:386,1
    - Dst: pcmk__xa_remove
      Src: /src/pacemaker/lib/common/xml_element.c:387,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 4
    argNames:
    - element
    - force
    - (*match)
    - user_data
    argTypes:
    - xmlNode*
    - bool
    - bool
    - void*
    constantsTouched: []
    func_position:
      end: 392
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 392
    functionName: pcmk__xe_remove_matching_attrs
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_attr
    - match
    - pcmk__xa_remove
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xe_remove_matching_attrs(xmlNode *element, bool force,
      bool (*match)(xmlAttrPtr, void *), void *user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml_element.c:499,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml_element.c:506,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/xml_element.c:505,1
    - Dst: vasprintf
      Src: /src/pacemaker/lib/common/xml_element.c:506,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/xml_element.c:499,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/xml_element.c:507,1
    - Dst: xmlValidateNameValue
      Src: /src/pacemaker/lib/common/xml_element.c:509,1
    - Dst: pcmk__xml_sanitize_id
      Src: /src/pacemaker/lib/common/xml_element.c:510,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/xml_element.c:512,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xml_element.c:513,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - node
    - format
    - '...'
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 514
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 514
    functionName: pcmk__xe_set_id
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__xml_sanitize_id
    - pcmk__str_empty
    - crm_xml_add
    - xmlValidateNameValue
    - va_end
    - free
    - va_start
    - vasprintf
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xe_set_id(xmlNode *node, const char *format, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/common/xml_element.c:749,1
    - Dst: xmlReplaceNode
      Src: /src/pacemaker/lib/common/xml_element.c:750,1
    - Dst: pcmk__xml_tree_foreach
      Src: /src/pacemaker/lib/common/xml_element.c:756,1
    - Dst: pcmk__xml_doc_all_flags_set
      Src: /src/pacemaker/lib/common/xml_element.c:758,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml_element.c:753,1
    - Dst: pcmk__apply_acl
      Src: /src/pacemaker/lib/common/xml_element.c:760,1
    - Dst: pcmk__xml_mark_changes
      Src: /src/pacemaker/lib/common/xml_element.c:762,1
    - Dst: pcmk__xml_free_node
      Src: /src/pacemaker/lib/common/xml_element.c:763,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - old
    - new
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 764
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 764
    functionName: replace_node
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__xml_copy
    - pcmk__xml_doc_all_flags_set
    - pcmk__xml_free_node
    - pcmk__xml_tree_foreach
    - pcmk__assert
    - pcmk__apply_acl
    - pcmk__xml_mark_changes
    - xmlReplaceNode
    linkageType: ''
    returnType: void
    signature: 'static void replace_node(xmlNode *old, xmlNode *new) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:939,1
    - Dst: pcmk__xml_tree_foreach
      Src: /src/pacemaker/lib/common/xml_element.c:941,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - xml
    - update
    - flags
    argTypes:
    - xmlNode*
    - xmlNode*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 948
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 948
    functionName: pcmk__xe_update_match
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__xml_tree_foreach
    - CRM_CHECK
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xe_update_match(xmlNode *xml, xmlNode *update, uint32_t
      flags) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/lib/common/xml_element.c:1149,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/lib/common/xml_element.c:1152,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 9
    argCount: 4
    argNames:
    - xml
    - name_sec
    - name_usec
    - value
    argTypes:
    - xmlNode*
    - char*
    - char*
    - struct timeval*
    constantsTouched: []
    func_position:
      end: 1156
      start: 1142
    functionDepth: 0
    functionLinenumber: 1142
    functionLinenumberEnd: 1156
    functionName: crm_xml_add_timeval
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - crm_xml_add_ll
    linkageType: ''
    returnType: char*
    signature: 'const char *crm_xml_add_timeval(xmlNode *xml, const char *name_sec,
      const char *name_usec, const struct timeval *value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_ll
      Src: /src/pacemaker/lib/common/xml_element.c:1362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 3
    argNames:
    - xml
    - name
    - dest
    argTypes:
    - xmlNode*
    - char*
    - time_t*
    constantsTouched: []
    func_position:
      end: 1371
      start: 1357
    functionDepth: 0
    functionLinenumber: 1357
    functionLinenumberEnd: 1371
    functionName: crm_element_value_epoch
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - crm_element_value_ll
    linkageType: ''
    returnType: int
    signature: 'int crm_element_value_epoch(const xmlNode *xml, const char *name,
      time_t *dest) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/xml_element.c:1467,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/xml_element.c:1467,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - data
    - name
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 1468
      start: 1464
    functionDepth: 0
    functionLinenumber: 1464
    functionLinenumberEnd: 1468
    functionName: crm_element_value_copy
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - crm_element_value
    linkageType: ''
    returnType: char*
    signature: 'char *crm_element_value_copy(const xmlNode *data, const char *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/xml_element.c:956,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/xml_element.c:961,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/xml_element.c:963,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - node
    - pairs
    argTypes:
    - xmlNodePtr
    - va_list
    constantsTouched: []
    func_position:
      end: 966
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 966
    functionName: pcmk__xe_set_propv
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - va_arg
    - crm_xml_add
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xe_set_propv(xmlNodePtr node, va_list pairs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/common/xml_element.c:1542,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - node
    - name
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 1544
      start: 1536
    functionDepth: 0
    functionLinenumber: 1536
    functionLinenumberEnd: 1544
    functionName: pcmk__xe_attr_is_true
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__xe_get_bool_attr
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__xe_attr_is_true(const xmlNode *node, const char *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:1586,1
    - Dst: pcmk_sort_nvpairs
      Src: /src/pacemaker/lib/common/xml_element.c:1590,1
    - Dst: pcmk_xml_attrs2nvpairs
      Src: /src/pacemaker/lib/common/xml_element.c:1589,1
    - Dst: pcmk_nvpairs2xml_attrs
      Src: /src/pacemaker/lib/common/xml_element.c:1591,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/xml_element.c:1588,1
    - Dst: pcmk_free_nvpairs
      Src: /src/pacemaker/lib/common/xml_element.c:1592,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/xml_element.c:1594,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/xml_element.c:1595,1
    - Dst: sorted_xml
      Src: /src/pacemaker/lib/common/xml_element.c:1598,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/common/xml_element.c:1600,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - input
    - parent
    - recursive
    argTypes:
    - xmlNode*
    - xmlNode*
    - gboolean
    constantsTouched: []
    func_position:
      end: 1605
      start: 1579
    functionDepth: 0
    functionLinenumber: 1579
    functionLinenumberEnd: 1605
    functionName: sorted_xml
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - CRM_CHECK
    - pcmk__xml_copy
    - pcmk_sort_nvpairs
    - pcmk__xe_first_child
    - pcmk_free_nvpairs
    - sorted_xml
    - pcmk__xe_next
    - pcmk_xml_attrs2nvpairs
    - pcmk_nvpairs2xml_attrs
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *sorted_xml(xmlNode *input, xmlNode *parent, gboolean recursive) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/lib/common/xml_element.c:362,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - xml
    - user_data
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 364
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 364
    functionName: pcmk__xe_remove_attr_cb
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__xe_remove_attr
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__xe_remove_attr_cb(xmlNode *xml, void *user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/xml_element.c:672,1
    - Dst: pcmk__xml_attr_value
      Src: /src/pacemaker/lib/common/xml_element.c:680,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/xml_element.c:681,1
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/xml_element.c:677,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/xml_element.c:683,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/common/xml_element.c:689,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/common/xml_element.c:690,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/xml_element.c:691,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 2
    argNames:
    - xml
    - user_data
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 695
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 695
    functionName: delete_xe_if_matching
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_attr
    - pcmk__str_eq
    - pcmk__xml_attr_value
    - pcmk__xe_is
    - pcmk__xml_free
    - crm_element_value
    - crm_log_xml_trace
    linkageType: ''
    returnType: bool
    signature: 'static bool delete_xe_if_matching(xmlNode *xml, void *user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:719,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/xml_element.c:721,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/xml_element.c:722,1
    - Dst: pcmk__xml_tree_foreach
      Src: /src/pacemaker/lib/common/xml_element.c:724,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - xml
    - search
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 732
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 732
    functionName: pcmk__xe_delete_match
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__xml_tree_foreach
    - CRM_CHECK
    - pcmk__xe_next
    - pcmk__xe_first_child
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xe_delete_match(xmlNode *xml, xmlNode *search) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/xml_element.c:1123,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/xml_element.c:1126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 3
    argNames:
    - xml
    - name
    - value
    argTypes:
    - xmlNode*
    - char*
    - long long
    constantsTouched: []
    func_position:
      end: 1127
      start: 1118
    functionDepth: 0
    functionLinenumber: 1118
    functionLinenumberEnd: 1127
    functionName: crm_xml_add_ll
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - snprintf
    - crm_xml_add
    linkageType: ''
    returnType: char*
    signature: 'const char *crm_xml_add_ll(xmlNode *xml, const char *name, long long
      value) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:1294,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/xml_element.c:1304,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/xml_element.c:1302,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/xml_element.c:1297,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/xml_element.c:1295,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - data
    - name
    - dest
    argTypes:
    - xmlNode*
    - char*
    - long long*
    constantsTouched: []
    func_position:
      end: 1307
      start: 1289
    functionDepth: 0
    functionLinenumber: 1289
    functionLinenumberEnd: 1307
    functionName: crm_element_value_ll
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_element_value
    - pcmk__scan_ll
    - pcmk_rc_str
    - crm_warn
    linkageType: ''
    returnType: int
    signature: 'int crm_element_value_ll(const xmlNode *data, const char *name, long
      long *dest) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:1327,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/xml_element.c:1329,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/xml_element.c:1330,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/xml_element.c:1334,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/xml_element.c:1332,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/xml_element.c:1338,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - data
    - name
    - dest
    argTypes:
    - xmlNode*
    - char*
    - guint*
    constantsTouched: []
    func_position:
      end: 1344
      start: 1320
    functionDepth: 0
    functionLinenumber: 1320
    functionLinenumberEnd: 1344
    functionName: crm_element_value_ms
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_element_value
    - pcmk__scan_ll
    - pcmk_rc_str
    - crm_warn
    linkageType: ''
    returnType: int
    signature: 'int crm_element_value_ms(const xmlNode *data, const char *name, guint
      *dest) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/xml_element.c:1511,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/xml_element.c:1517,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 3
    argNames:
    - node
    - name
    - value
    argTypes:
    - xmlNode*
    - char*
    - bool*
    constantsTouched: []
    func_position:
      end: 1524
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1524
    functionName: pcmk__xe_get_bool_attr
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - crm_str_to_boolean
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xe_get_bool_attr(const xmlNode *node, const char *name,
      bool *value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/xml_element.c:108,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 2
    argNames:
    - xml
    - element_name
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 113
    functionName: pcmk__xe_next
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__xe_is
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__xe_next(const xmlNode *xml, const char *element_name) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:175,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml_element.c:206,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/common/xml_element.c:203,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/common/xml_element.c:215,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/xml_element.c:182,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml_element.c:218,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/common/xml_element.c:223,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/xml_element.c:223,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/xml_element.c:230,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 41
    argCount: 3
    argNames:
    - target
    - name
    - value
    argTypes:
    - xmlNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 233
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 233
    functionName: pcmk__xe_set_score
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__add_scores
    - crm_xml_add
    - pcmk_parse_score
    - crm_xml_add_int
    - crm_element_value
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xe_set_score(xmlNode *target, const char *name, const char
      *value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:839,1
    - Dst: pcmk__xml_tree_foreach
      Src: /src/pacemaker/lib/common/xml_element.c:844,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/xml_element.c:841,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/xml_element.c:842,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - xml
    - replace
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 852
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 852
    functionName: pcmk__xe_replace_match
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__xml_tree_foreach
    - CRM_CHECK
    - pcmk__xe_next
    - pcmk__xe_first_child
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xe_replace_match(xmlNode *xml, xmlNode *replace) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/pacemaker/lib/common/xml_element.c:972,1
    - Dst: pcmk__xe_set_propv
      Src: /src/pacemaker/lib/common/xml_element.c:973,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/xml_element.c:974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - node
    - '...'
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 975
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 975
    functionName: pcmk__xe_set_props
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - pcmk__xe_set_propv
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xe_set_props(xmlNodePtr node, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/common/xml_element.c:1071,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xml_element.c:1074,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/xml_element.c:1072,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 3
    argNames:
    - node
    - name
    - value
    argTypes:
    - xmlNode*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1076
      start: 1068
    functionDepth: 0
    functionLinenumber: 1068
    functionLinenumberEnd: 1076
    functionName: crm_xml_add_int
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - free
    - crm_xml_add
    - pcmk__itoa
    linkageType: ''
    returnType: char*
    signature: 'const char *crm_xml_add_int(xmlNode *node, const char *name, int value) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/xml_element.c:1172,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/common/xml_element.c:1173,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/xml_element.c:1177,1
    - Dst: xmlHasProp
      Src: /src/pacemaker/lib/common/xml_element.c:1181,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - data
    - name
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 1186
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1186
    functionName: crm_element_value
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - xmlHasProp
    - crm_err
    - CRM_LOG_ASSERT
    linkageType: ''
    returnType: char*
    signature: 'const char *crm_element_value(const xmlNode *data, const char *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_resolve_idref
      Src: /src/pacemaker/lib/common/xml_element.c:1558,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - input
    - top
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1559
      start: 1555
    functionDepth: 0
    functionLinenumber: 1555
    functionLinenumberEnd: 1559
    functionName: expand_idref
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__xe_resolve_idref
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *expand_idref(xmlNode *input, xmlNode *top) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml_element.c:984,1
    - Dst: handler
      Src: /src/pacemaker/lib/common/xml_element.c:990,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/xml_element.c:989,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 15
    argCount: 4
    argNames:
    - xml
    - child_element_name
    - (*handler)
    - userdata
    argTypes:
    - xmlNode*
    - char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 999
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 999
    functionName: pcmk__xe_foreach_child
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__xe_is
    - handler
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xe_foreach_child(xmlNode *xml, const char *child_element_name,
      int (*handler)(xmlNode *xml, void *userdata), void *userdata) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/pacemaker/lib/common/xml_element.c:1569,1
    - Dst: crm_xml_sanitize_id
      Src: /src/pacemaker/lib/common/xml_element.c:1574,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml_element.c:1572,1
    - Dst: vasprintf
      Src: /src/pacemaker/lib/common/xml_element.c:1570,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/xml_element.c:1571,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/xml_element.c:1575,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xml_element.c:1576,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - xml
    - format
    - '...'
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 1577
      start: 1561
    functionDepth: 0
    functionLinenumber: 1561
    functionLinenumberEnd: 1577
    functionName: crm_xml_set_id
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - crm_xml_add
    - va_end
    - crm_xml_sanitize_id
    - free
    - va_start
    - vasprintf
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'void crm_xml_set_id(xmlNode *xml, const char *format, ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/xml_element.c:790,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/common/xml_element.c:805,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/xml_element.c:799,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/xml_element.c:791,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/xml_element.c:793,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/common/xml_element.c:806,1
    - Dst: replace_node
      Src: /src/pacemaker/lib/common/xml_element.c:807,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - xml
    - user_data
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 811
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 811
    functionName: replace_xe_if_matching
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - replace_node
    - pcmk__str_eq
    - pcmk__xe_is
    - crm_log_xml_trace
    - pcmk__xe_id
    linkageType: ''
    returnType: bool
    signature: 'static bool replace_xe_if_matching(xmlNode *xml, void *user_data) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:47,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/xml_element.c:76,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/xml_element.c:58,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/xml_element.c:70,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/xml_element.c:61,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml_element.c:83,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/xml_element.c:84,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml_element.c:86,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/xml_element.c:87,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 41
    argCount: 4
    argNames:
    - parent
    - node_name
    - attr_n
    - attr_v
    argTypes:
    - xmlNode*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 91
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 91
    functionName: pcmk__xe_first_child
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__s
    - pcmk__str_eq
    - pcmk__xe_is
    - pcmk__xe_next
    - crm_element_value
    - crm_trace
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__xe_first_child(const xmlNode *parent, const char *node_name,
      const char *attr_n, const char *attr_v) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:134,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/common/xml_element.c:136,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/xml_element.c:135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 4
    argNames:
    - xml
    - name
    - score
    - default_score
    argTypes:
    - xmlNode*
    - char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: pcmk__xe_get_score
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk_parse_score
    - CRM_CHECK
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'int pcmk__xe_get_score(const xmlNode *xml, const char *name, int *score,
      int default_score) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/lib/common/xml_element.c:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 295
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 295
    functionName: compare_xml_attr
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__strcmp
    linkageType: ''
    returnType: gint
    signature: 'static gint compare_xml_attr(gconstpointer a, gconstpointer b) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml_element.c:410,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/xml_element.c:410,1
    - Dst: xmlNewDocRawNode
      Src: /src/pacemaker/lib/common/xml_element.c:415,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/lib/common/xml_element.c:416,1
    - Dst: pcmk__xml_new_doc
      Src: /src/pacemaker/lib/common/xml_element.c:413,1
    - Dst: xmlDocSetRootElement
      Src: /src/pacemaker/lib/common/xml_element.c:418,1
    - Dst: xmlNewChild
      Src: /src/pacemaker/lib/common/xml_element.c:421,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/lib/common/xml_element.c:422,1
    - Dst: pcmk__xml_new_private_data
      Src: /src/pacemaker/lib/common/xml_element.c:425,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - parent
    - name
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 427
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 427
    functionName: pcmk__xe_create
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - xmlDocSetRootElement
    - pcmk__mem_assert
    - pcmk__str_empty
    - pcmk__xml_new_private_data
    - pcmk__xml_new_doc
    - xmlNewChild
    - pcmk__assert
    - xmlNewDocRawNode
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__xe_create(xmlNode *parent, const char *name) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:452,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/xml_element.c:465,1
    - Dst: strchr
      Src: /src/pacemaker/lib/common/xml_element.c:456,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/xml_element.c:463,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/xml_element.c:467,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xml_element.c:470,1
    - Dst: vasprintf
      Src: /src/pacemaker/lib/common/xml_element.c:470,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/xml_element.c:473,1
    - Dst: xmlNodeSetContent
      Src: /src/pacemaker/lib/common/xml_element.c:476,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xml_element.c:477,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - node
    - format
    - '...'
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 479
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 479
    functionName: pcmk__xe_set_content
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - xmlNodeSetContent
    - pcmk__str_eq
    - strchr
    - va_end
    - va_arg
    - free
    - va_start
    - vasprintf
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xe_set_content(xmlNode *node, const char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__epoch2str
      Src: /src/pacemaker/lib/common/xml_element.c:527,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/xml_element.c:530,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xml_element.c:532,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/xml_element.c:531,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - xe
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 534
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 534
    functionName: pcmk__xe_add_last_written
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - free
    - crm_xml_add
    - pcmk__epoch2str
    - pcmk__s
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__xe_add_last_written(xmlNode *xe) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:1020,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/xml_element.c:1028,1
    - Dst: pcmk__xml_doc_all_flags_set
      Src: /src/pacemaker/lib/common/xml_element.c:1027,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/xml_element.c:1030,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:1021,1
    - Dst: pcmk__check_acl
      Src: /src/pacemaker/lib/common/xml_element.c:1035,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/xml_element.c:1036,1
    - Dst: xmlSetProp
      Src: /src/pacemaker/lib/common/xml_element.c:1040,1
    - Dst: pcmk__xml_new_private_data
      Src: /src/pacemaker/lib/common/xml_element.c:1045,1
    - Dst: pcmk__mark_xml_attr_dirty
      Src: /src/pacemaker/lib/common/xml_element.c:1048,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xml_element.c:1051,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 3
    argNames:
    - node
    - name
    - value
    argTypes:
    - xmlNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1053
      start: 1013
    functionDepth: 0
    functionLinenumber: 1013
    functionLinenumberEnd: 1053
    functionName: crm_xml_add
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - xmlSetProp
    - CRM_CHECK
    - pcmk__xml_doc_all_flags_set
    - pcmk__mark_xml_attr_dirty
    - strcmp
    - pcmk__xml_new_private_data
    - pcmk__check_acl
    - crm_element_value
    - crm_trace
    linkageType: ''
    returnType: char*
    signature: 'const char *crm_xml_add(xmlNode *node, const char *name, const char
      *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/xml_element.c:1093,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xml_element.c:1096,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/xml_element.c:1094,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 3
    argNames:
    - node
    - name
    - ms
    argTypes:
    - xmlNode*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 1098
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1098
    functionName: crm_xml_add_ms
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - free
    - crm_xml_add
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'const char *crm_xml_add_ms(xmlNode *node, const char *name, guint
      ms) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/xml_element.c:1481,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/common/xml_element.c:1481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - node
    - name
    - value
    argTypes:
    - xmlNodePtr
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 1482
      start: 1478
    functionDepth: 0
    functionLinenumber: 1478
    functionLinenumberEnd: 1482
    functionName: pcmk__xe_set_bool_attr
    functionSourceFile: /src/pacemaker/lib/common/xml_element.c
    functionUses: []
    functionsReached:
    - pcmk__btoa
    - crm_xml_add
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xe_set_bool_attr(xmlNodePtr node, const char *name, bool
      value) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_html.c:313,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_html.c:330,1
    - Dst: g_queue_get_length
      Src: /src/pacemaker/lib/common/output_html.c:320,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/common/output_html.c:322,1
    - Dst: vasprintf
      Src: /src/pacemaker/lib/common/output_html.c:331,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_html.c:332,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_html.c:333,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/lib/common/output_html.c:336,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/lib/common/output_html.c:338,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_html.c:341,1
    - Dst: g_queue_push_tail
      Src: /src/pacemaker/lib/common/output_html.c:345,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/common/output_html.c:344,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - out
    - singular_noun
    - plural_noun
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 346
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 346
    functionName: html_begin_list
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached:
    - g_queue_push_tail
    - va_end
    - pcmk__output_create_xml_text_node
    - g_queue_get_length
    - va_start
    - vasprintf
    - free
    - pcmk__output_xml_create_parent
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'static void html_begin_list(pcmk__output_t *out, const char *singular_noun,
      const char *plural_noun, const char *format, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_html.c:356,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_html.c:358,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_html.c:361,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_html.c:360,1
    - Dst: vasprintf
      Src: /src/pacemaker/lib/common/output_html.c:359,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/lib/common/output_html.c:363,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_html.c:364,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/output_html.c:367,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - out
    - name
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 369
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 369
    functionName: html_list_item
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached:
    - crm_xml_add
    - va_end
    - pcmk__output_create_xml_text_node
    - free
    - va_start
    - vasprintf
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'static void html_list_item(pcmk__output_t *out, const char *name,
      const char *format, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/output_html.c:86,1
    - Dst: g_slist_free_full
      Src: /src/pacemaker/lib/common/output_html.c:92,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_html.c:93,1
    - Dst: g_queue_free
      Src: /src/pacemaker/lib/common/output_html.c:91,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 95
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 95
    functionName: html_free_priv
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached:
    - g_slist_free_full
    - free
    - g_queue_free
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void html_free_priv(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_html.c:217,1
    - Dst: freopen
      Src: /src/pacemaker/lib/common/output_html.c:219,1
    - Dst: html_free_priv
      Src: /src/pacemaker/lib/common/output_html.c:222,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_html.c:220,1
    - Dst: html_init
      Src: /src/pacemaker/lib/common/output_html.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 224
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 224
    functionName: html_reset
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - html_free_priv
    - html_init
    - freopen
    linkageType: ''
    returnType: void
    signature: 'static void html_reset(pcmk__output_t *out) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_html.c:101,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/output_html.c:117,1
    - Dst: calloc
      Src: /src/pacemaker/lib/common/output_html.c:107,1
    - Dst: xmlCreateIntSubset
      Src: /src/pacemaker/lib/common/output_html.c:118,1
    - Dst: g_queue_new
      Src: /src/pacemaker/lib/common/output_html.c:115,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/output_html.c:120,1
    - Dst: g_queue_push_tail
      Src: /src/pacemaker/lib/common/output_html.c:121,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/common/output_html.c:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 127
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 127
    functionName: html_init
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - g_queue_push_tail
    - calloc
    - crm_xml_add
    - g_queue_new
    - pcmk__output_xml_create_parent
    - pcmk__assert
    - xmlCreateIntSubset
    linkageType: ''
    returnType: bool
    signature: 'static bool html_init(pcmk__output_t *out) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_html.c:231,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/lib/common/output_html.c:235,1
    - Dst: pcmk__output_create_html_node
      Src: /src/pacemaker/lib/common/output_html.c:239,1
    - Dst: pcmk__output_create_html_node
      Src: /src/pacemaker/lib/common/output_html.c:236,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/output_html.c:233,1
    - Dst: pcmk__output_create_html_node
      Src: /src/pacemaker/lib/common/output_html.c:240,1
    - Dst: pcmk__output_create_html_node
      Src: /src/pacemaker/lib/common/output_html.c:244,1
    - Dst: pcmk__output_create_html_node
      Src: /src/pacemaker/lib/common/output_html.c:245,1
    - Dst: free
      Src: /src/pacemaker/lib/common/output_html.c:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - out
    - exit_status
    - proc_stdout
    - proc_stderr
    argTypes:
    - pcmk__output_t*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 250
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 250
    functionName: html_subprocess_output
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached:
    - pcmk__output_create_html_node
    - crm_strdup_printf
    - pcmk__output_create_xml_text_node
    - free
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'static void html_subprocess_output(pcmk__output_t *out, int exit_status,
      const char *proc_stdout, const char *proc_stderr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_html.c:254,1
    - Dst: pcmk__output_create_html_node
      Src: /src/pacemaker/lib/common/output_html.c:261,1
    - Dst: pcmk__output_create_html_node
      Src: /src/pacemaker/lib/common/output_html.c:259,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/lib/common/output_html.c:256,1
    - Dst: pcmk__output_create_html_node
      Src: /src/pacemaker/lib/common/output_html.c:257,1
    - Dst: pcmk__output_create_html_node
      Src: /src/pacemaker/lib/common/output_html.c:264,1
    - Dst: pcmk__output_create_html_node
      Src: /src/pacemaker/lib/common/output_html.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - out
    - extended
    argTypes:
    - pcmk__output_t*
    - bool
    constantsTouched: []
    func_position:
      end: 268
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 268
    functionName: html_version
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__output_create_html_node
    - pcmk__output_create_xml_text_node
    linkageType: ''
    returnType: void
    signature: 'static void html_version(pcmk__output_t *out, bool extended) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: html_info
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int html_info(pcmk__output_t *out, const char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - out
    - end
    argTypes:
    - pcmk__output_t*
    - bool
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: html_progress
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void html_progress(pcmk__output_t *out, bool end) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_html.c:299,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/output_html.c:302,1
    - Dst: pcmk__output_create_html_node
      Src: /src/pacemaker/lib/common/output_html.c:301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - out
    - name
    - buf
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 303
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 303
    functionName: html_output_xml
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - crm_xml_add
    - pcmk__output_create_html_node
    linkageType: ''
    returnType: void
    signature: 'static void html_output_xml(pcmk__output_t *out, const char *name,
      const char *buf) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/output_html.c:413,1
    - Dst: pcmk__quote_cmdline
      Src: /src/pacemaker/lib/common/output_html.c:420,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 448
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 448
    functionName: pcmk__mk_html_output
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached:
    - calloc
    - pcmk__quote_cmdline
    linkageType: ''
    returnType: pcmk__output_t*
    signature: 'pcmk__output_t *pcmk__mk_html_output(char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: add_error_node
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void add_error_node(gpointer data, gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_html.c:278,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_html.c:283,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_html.c:284,1
    - Dst: vasprintf
      Src: /src/pacemaker/lib/common/output_html.c:282,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_html.c:281,1
    - Dst: g_slist_append
      Src: /src/pacemaker/lib/common/output_html.c:286,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 287
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 287
    functionName: html_err
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached:
    - va_end
    - va_start
    - g_slist_append
    - vasprintf
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'static void html_err(pcmk__output_t *out, const char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 374
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 374
    functionName: html_increment_list
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void html_increment_list(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 398
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 398
    functionName: html_is_quiet
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool html_is_quiet(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/output_html.c:488,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/common/output_html.c:490,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 4
    argNames:
    - parent
    - name
    - id
    - class_name
    argTypes:
    - xmlNode*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 495
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 495
    functionName: pcmk__html_create
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_set_props
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__html_create(xmlNode *parent, const char *name, const
      char *id, const char *class_name) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/output_html.c:162,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/output_html.c:169,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/output_html.c:173,1
    - Dst: g_slist_length
      Src: /src/pacemaker/lib/common/output_html.c:197,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/output_html.c:166,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/common/output_html.c:192,1
    - Dst: g_slist_free_full
      Src: /src/pacemaker/lib/common/output_html.c:211,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/common/output_html.c:167,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/common/output_html.c:170,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/output_html.c:187,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/common/output_html.c:178,1
    - Dst: pcmk__xe_set_content
      Src: /src/pacemaker/lib/common/output_html.c:188,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/common/output_html.c:208,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_html.c:143,1
    - Dst: xmlAddPrevSibling
      Src: /src/pacemaker/lib/common/output_html.c:163,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/output_html.c:155,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/output_html.c:174,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/output_html.c:191,1
    - Dst: g_slist_foreach
      Src: /src/pacemaker/lib/common/output_html.c:199,1
    - Dst: htmlDocDump
      Src: /src/pacemaker/lib/common/output_html.c:204,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 4
    argNames:
    - out
    - exit_status
    - print
    - copy_dest
    argTypes:
    - pcmk__output_t*
    - crm_exit_t
    - bool
    - void**
    constantsTouched: []
    func_position:
      end: 213
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 213
    functionName: html_finish
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached:
    - xmlAddPrevSibling
    - pcmk__xe_create
    - g_slist_free_full
    - pcmk__xml_copy
    - g_slist_length
    - crm_xml_add
    - pcmk__xe_set_props
    - htmlDocDump
    - pcmk__xe_set_content
    - g_slist_foreach
    - pcmk__assert
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void html_finish(pcmk__output_t *out, crm_exit_t exit_status,
      bool print, void **copy_dest) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_html.c:380,1
    - Dst: g_queue_get_length
      Src: /src/pacemaker/lib/common/output_html.c:390,1
    - Dst: g_queue_pop_tail
      Src: /src/pacemaker/lib/common/output_html.c:386,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/common/output_html.c:387,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/common/output_html.c:391,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 393
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 393
    functionName: html_end_list
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_queue_get_length
    - g_queue_pop_tail
    - pcmk__output_xml_pop_parent
    linkageType: ''
    returnType: void
    signature: 'static void html_end_list(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_html.c:402,1
    - Dst: pcmk__output_create_xml_node
      Src: /src/pacemaker/lib/common/output_html.c:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 404
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 404
    functionName: html_spacer
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__output_create_xml_node
    linkageType: ''
    returnType: void
    signature: 'static void html_spacer(pcmk__output_t *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/pacemaker/lib/common/output_html.c:502,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/output_html.c:506,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/output_html.c:504,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/output_html.c:514,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/output_html.c:513,1
    - Dst: g_slist_append
      Src: /src/pacemaker/lib/common/output_html.c:517,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/output_html.c:519,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - name
    - '...'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 520
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 520
    functionName: pcmk__html_add_header
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - va_end
    - va_arg
    - va_start
    - g_slist_append
    linkageType: ''
    returnType: void
    signature: 'void pcmk__html_add_header(const char *name, ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_html.c:455,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/output_html.c:461,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/output_html.c:456,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/output_html.c:456,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/lib/common/output_html.c:458,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/output_html.c:465,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 5
    argNames:
    - out
    - element_name
    - id
    - class_name
    - text
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 469
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 469
    functionName: pcmk__output_create_html_node
    functionSourceFile: /src/pacemaker/lib/common/output_html.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_xml_add
    - pcmk__str_eq
    - pcmk__output_create_xml_text_node
    - pcmk__assert
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'xmlNodePtr pcmk__output_create_html_node(pcmk__output_t *out, const
      char *element_name, const char *id, const char *class_name, const char *text) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xpath.c:142,1
    - Dst: xmlXPathNewContext
      Src: /src/pacemaker/lib/common/xpath.c:144,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/xpath.c:142,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/lib/common/xpath.c:145,1
    - Dst: xmlXPathEval
      Src: /src/pacemaker/lib/common/xpath.c:147,1
    - Dst: xmlXPathFreeContext
      Src: /src/pacemaker/lib/common/xpath.c:149,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - doc
    - path
    argTypes:
    - xmlDoc*
    - char*
    constantsTouched: []
    func_position:
      end: 151
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 151
    functionName: pcmk__xpath_search
    functionSourceFile: /src/pacemaker/lib/common/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNewContext
    - CRM_CHECK
    - pcmk__mem_assert
    - pcmk__str_empty
    - xmlXPathFreeContext
    - xmlXPathEval
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *pcmk__xpath_search(xmlDoc *doc, const char *path) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xpath.c:175,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/common/xpath.c:178,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/common/xpath.c:177,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/common/xpath.c:181,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/xpath.c:175,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/common/xpath.c:187,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 4
    argNames:
    - doc
    - path
    - (*fn)
    - user_data
    argTypes:
    - xmlDoc*
    - char*
    - void
    - void*
    constantsTouched: []
    func_position:
      end: 188
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 188
    functionName: pcmk__xpath_foreach_result
    functionSourceFile: /src/pacemaker/lib/common/xpath.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__xpath_result
    - pcmk__str_empty
    - xmlXPathFreeObject
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    linkageType: ''
    returnType: void
    signature: 'void pcmk__xpath_foreach_result(xmlDoc *doc, const char *path, void
      (*fn)(xmlNode *, void *), void *user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/xpath.c:334,1
    - Dst: strlen
      Src: /src/pacemaker/lib/common/xpath.c:342,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xpath.c:338,1
    - Dst: strstr
      Src: /src/pacemaker/lib/common/xpath.c:345,1
    - Dst: strstr
      Src: /src/pacemaker/lib/common/xpath.c:335,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xpath.c:346,1
    - Dst: strndup
      Src: /src/pacemaker/lib/common/xpath.c:347,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xpath.c:349,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 2
    argNames:
    - xpath
    - node
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 351
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 351
    functionName: pcmk__xpath_node_id
    functionSourceFile: /src/pacemaker/lib/common/xpath.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - strndup
    - free
    - pcmk__assert
    - strlen
    - strstr
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__xpath_node_id(const char *xpath, const char *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/lib/common/xpath.c:383,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 3
    argNames:
    - out
    - search
    - name
    argTypes:
    - pcmk__output_t*
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 384
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 384
    functionName: pcmk__warn_multiple_name_matches
    functionSourceFile: /src/pacemaker/lib/common/xpath.c
    functionUses: []
    functionsReached:
    - pcmk__xe_foreach_child
    linkageType: ''
    returnType: void
    signature: 'void pcmk__warn_multiple_name_matches(pcmk__output_t *out, xmlNode
      *search, const char *name) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/common/xpath.c:403,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/xpath.c:409,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xpath.c:406,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xpath.c:405,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xpath.c:418,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/xpath.c:437,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 2
    argNames:
    - xpathObj
    - index
    argTypes:
    - xmlXPathObjectPtr
    - int
    constantsTouched: []
    func_position:
      end: 440
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 440
    functionName: getXpathResult
    functionSourceFile: /src/pacemaker/lib/common/xpath.c
    functionUses: []
    functionsReached:
    - crm_warn
    - CRM_CHECK
    - crm_err
    - pcmk__xpath_num_results
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *getXpathResult(xmlXPathObjectPtr xpathObj, int index) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/common/xpath.c:464,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - xpathObj
    argTypes:
    - xmlXPathObjectPtr
    constantsTouched: []
    func_position:
      end: 496
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 496
    functionName: dedupXpathResults
    functionSourceFile: /src/pacemaker/lib/common/xpath.c
    functionUses: []
    functionsReached:
    - pcmk__xpath_num_results
    linkageType: ''
    returnType: void
    signature: 'void dedupXpathResults(xmlXPathObjectPtr xpathObj) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xpath.c:394,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/common/xpath.c:396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - xml_top
    - path
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 397
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 397
    functionName: xpath_search
    functionSourceFile: /src/pacemaker/lib/common/xpath.c
    functionUses: []
    functionsReached:
    - pcmk__xpath_search
    - CRM_CHECK
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: 'xmlXPathObjectPtr xpath_search(const xmlNode *xml_top, const char
      *path) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/common/xpath.c:445,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/common/xpath.c:458,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - xpathObj
    argTypes:
    - xmlXPathObjectPtr
    constantsTouched: []
    func_position:
      end: 459
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 459
    functionName: freeXpathObject
    functionSourceFile: /src/pacemaker/lib/common/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeObject
    - pcmk__xpath_num_results
    linkageType: ''
    returnType: void
    signature: 'void freeXpathObject(xmlXPathObjectPtr xpathObj) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xpath.c:505,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/common/xpath.c:508,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/common/xpath.c:507,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/common/xpath.c:511,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/common/xpath.c:513,1
    - Dst: pcmk__xpath_match_element
      Src: /src/pacemaker/lib/common/xpath.c:516,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/common/xpath.c:518,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/common/xpath.c:525,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 4
    argNames:
    - xml
    - xpath
    - (*helper)
    - user_data
    argTypes:
    - xmlNode*
    - char*
    - void
    - void*
    constantsTouched: []
    func_position:
      end: 526
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 526
    functionName: crm_foreach_xpath_result
    functionSourceFile: /src/pacemaker/lib/common/xpath.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - CRM_LOG_ASSERT
    - pcmk__xpath_result
    - pcmk__xpath_match_element
    - xmlXPathFreeObject
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    linkageType: ''
    returnType: void
    signature: 'void crm_foreach_xpath_result(xmlNode *xml, const char *xpath, void
      (*helper)(xmlNode*, void*), void *user_data) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/xpath.c:548,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/common/xpath.c:543,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/common/xpath.c:556,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/xpath.c:557,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/common/xpath.c:569,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/common/xpath.c:581,1
    - Dst: pcmk__xpath_match_element
      Src: /src/pacemaker/lib/common/xpath.c:564,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/xpath.c:571,1
    - Dst: pcmk__xpath_match_element
      Src: /src/pacemaker/lib/common/xpath.c:583,1
    - Dst: crm_log_xml_explicit
      Src: /src/pacemaker/lib/common/xpath.c:577,1
    - Dst: crm_log_xml_explicit
      Src: /src/pacemaker/lib/common/xpath.c:549,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/common/xpath.c:587,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/common/xpath.c:547,1
    - Dst: xmlGetNodePath
      Src: /src/pacemaker/lib/common/xpath.c:542,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/common/xpath.c:560,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/common/xpath.c:566,1
    - Dst: xmlGetNodePath
      Src: /src/pacemaker/lib/common/xpath.c:568,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xpath.c:588,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xpath.c:573,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/common/xpath.c:541,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/common/xpath.c:562,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 3
    argNames:
    - xpath
    - xml_obj
    - error_level
    argTypes:
    - char*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 591
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 591
    functionName: get_xpath_object
    functionSourceFile: /src/pacemaker/lib/common/xpath.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - crm_log_xml_explicit
    - pcmk__xpath_result
    - CRM_LOG_ASSERT
    - pcmk__xpath_match_element
    - do_crm_log
    - xmlXPathFreeObject
    - free
    - xmlGetNodePath
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *get_xpath_object(const char *xpath, xmlNode * xml_obj, int
      error_level) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xpath.c:68,1
    - Dst: xmlXPathNodeSetItem
      Src: /src/pacemaker/lib/common/xpath.c:70,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - xpath_obj
    - index
    argTypes:
    - xmlXPathObject*
    - int
    constantsTouched: []
    func_position:
      end: 81
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 81
    functionName: pcmk__xpath_result
    functionSourceFile: /src/pacemaker/lib/common/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetItem
    - CRM_CHECK
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__xpath_result(xmlXPathObject *xpath_obj, int index) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/xpath.c:103,1
    - Dst: pcmk__xml_element_type_text
      Src: /src/pacemaker/lib/common/xpath.c:121,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/xpath.c:120,1
    - Dst: xmlDocGetRootElement
      Src: /src/pacemaker/lib/common/xpath.c:111,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 1
    argNames:
    - match
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 124
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 124
    functionName: pcmk__xpath_match_element
    functionSourceFile: /src/pacemaker/lib/common/xpath.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__xml_element_type_text
    - crm_err
    - xmlDocGetRootElement
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__xpath_match_element(xmlNode *match) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/xpath.c:213,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/common/xpath.c:216,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/common/xpath.c:219,1
    - Dst: xmlDocGetRootElement
      Src: /src/pacemaker/lib/common/xpath.c:228,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/common/xpath.c:215,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/common/xpath.c:234,1
    - Dst: crm_log_xml_explicit
      Src: /src/pacemaker/lib/common/xpath.c:237,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/common/xpath.c:242,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/common/xpath.c:245,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/common/xpath.c:249,1
    - Dst: free
      Src: /src/pacemaker/lib/common/xpath.c:256,1
    - Dst: crm_log_xml_explicit
      Src: /src/pacemaker/lib/common/xpath.c:260,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/common/xpath.c:264,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/xpath.c:255,1
    - Dst: xmlGetNodePath
      Src: /src/pacemaker/lib/common/xpath.c:253,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/common/xpath.c:254,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 43
    argCount: 3
    argNames:
    - doc
    - path
    - level
    argTypes:
    - xmlDoc*
    - char*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 266
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 266
    functionName: pcmk__xpath_find_one
    functionSourceFile: /src/pacemaker/lib/common/xpath.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - CRM_CHECK
    - crm_log_xml_explicit
    - pcmk__xpath_result
    - CRM_LOG_ASSERT
    - pcmk__s
    - do_crm_log
    - xmlXPathFreeObject
    - free
    - xmlGetNodePath
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__xpath_find_one(xmlDoc *doc, const char *path, uint8_t
      level) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__element_xpath
      Src: /src/pacemaker/lib/common/xpath.c:291,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/xpath.c:298,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/xpath.c:302,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/xpath.c:300,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/common/xpath.c:293,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/xpath.c:305,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/xpath.c:307,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 311
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 311
    functionName: pcmk__element_xpath
    functionSourceFile: /src/pacemaker/lib/common/xpath.c
    functionUses: []
    functionsReached:
    - pcmk__element_xpath
    - g_string_append_c
    - g_string_append
    - g_string_sized_new
    - pcmk__xe_id
    - pcmk__g_strcat
    linkageType: ''
    returnType: GString*
    signature: 'GString *pcmk__element_xpath(const xmlNode *xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/xpath.c:360,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/xpath.c:360,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/xpath.c:359,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - child
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 362
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 362
    functionName: output_attr_child
    functionSourceFile: /src/pacemaker/lib/common/xpath.c
    functionUses: []
    functionsReached:
    - pcmk__xe_id
    - pcmk__s
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'static int output_attr_child(xmlNode *child, void *userdata) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__file_contents
      Src: /src/pacemaker/lib/common/cib_secrets.c:44,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/cib_secrets.c:47,1
    - Dst: free
      Src: /src/pacemaker/lib/common/cib_secrets.c:48,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/cib_secrets.c:47,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/cib_secrets.c:53,1
    - Dst: strlen
      Src: /src/pacemaker/lib/common/cib_secrets.c:58,1
    - Dst: isspace
      Src: /src/pacemaker/lib/common/cib_secrets.c:58,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 62
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 62
    functionName: read_file_trimmed
    functionSourceFile: /src/pacemaker/lib/common/cib_secrets.c
    functionUses: []
    functionsReached:
    - pcmk__file_contents
    - isspace
    - free
    - pcmk_rc_str
    - strlen
    - crm_err
    linkageType: ''
    returnType: char*
    signature: 'static char *read_file_trimmed(const char *filename) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_file_trimmed
      Src: /src/pacemaker/lib/common/cib_secrets.c:83,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/cib_secrets.c:99,1
    - Dst: crm_md5sum
      Src: /src/pacemaker/lib/common/cib_secrets.c:92,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/cib_secrets.c:85,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/cib_secrets.c:101,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/cib_secrets.c:102,1
    - Dst: free
      Src: /src/pacemaker/lib/common/cib_secrets.c:109,1
    - Dst: free
      Src: /src/pacemaker/lib/common/cib_secrets.c:110,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 4
    argNames:
    - filename
    - secret_value
    - rsc_id
    - param
    argTypes:
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 112
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 112
    functionName: validate_hash
    functionSourceFile: /src/pacemaker/lib/common/cib_secrets.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - crm_md5sum
    - crm_err
    - read_file_trimmed
    - free
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int validate_hash(const char *filename, const char *secret_value,
      const char *rsc_id, const char *param) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/common/cib_secrets.c:142,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/common/cib_secrets.c:143,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/cib_secrets.c:155,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/common/cib_secrets.c:157,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/cib_secrets.c:148,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/cib_secrets.c:158,1
    - Dst: g_string_truncate
      Src: /src/pacemaker/lib/common/cib_secrets.c:164,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/cib_secrets.c:168,1
    - Dst: read_file_trimmed
      Src: /src/pacemaker/lib/common/cib_secrets.c:169,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/cib_secrets.c:171,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/cib_secrets.c:191,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/cib_secrets.c:179,1
    - Dst: g_hash_table_iter_replace
      Src: /src/pacemaker/lib/common/cib_secrets.c:187,1
    - Dst: free
      Src: /src/pacemaker/lib/common/cib_secrets.c:183,1
    - Dst: validate_hash
      Src: /src/pacemaker/lib/common/cib_secrets.c:180,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - rsc_id
    - params
    argTypes:
    - char*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 194
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 194
    functionName: pcmk__substitute_secrets
    functionSourceFile: /src/pacemaker/lib/common/cib_secrets.c
    functionUses: []
    functionsReached:
    - crm_debug
    - g_string_truncate
    - g_string_append
    - pcmk__str_eq
    - validate_hash
    - g_hash_table_iter_replace
    - g_string_sized_new
    - read_file_trimmed
    - free
    - g_string_free
    - g_hash_table_iter_init
    - crm_err
    - pcmk__g_strcat
    - g_hash_table_iter_next
    linkageType: ''
    returnType: int
    signature: 'int pcmk__substitute_secrets(const char *rsc_id, GHashTable *params) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_attrd.c:28,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/ipc_attrd.c:32,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_attrd.c:36,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/ipc_attrd.c:34,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/ipc_attrd.c:30,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_attrd.c:38,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/ipc_attrd.c:39,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - data
    - msg_data
    argTypes:
    - pcmk__attrd_api_reply_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 41
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 41
    functionName: set_pairs_data
    functionSourceFile: /src/pacemaker/lib/common/ipc_attrd.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - pcmk__assert_alloc
    - g_list_prepend
    - pcmk__xe_next
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void set_pairs_data(pcmk__attrd_api_reply_t *data, xmlNode
      *msg_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/ipc_attrd.c:140,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:142,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_attrd.c:143,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:143,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - user_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: create_attrd_op
    functionSourceFile: /src/pacemaker/lib/common/ipc_attrd.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - pcmk__s
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *create_attrd_op(const char *user_name) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/ipc_attrd.c:68,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/ipc_attrd.c:75,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_attrd.c:73,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/ipc_attrd.c:74,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_attrd.c:76,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_attrd.c:78,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_attrd.c:83,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/ipc_attrd.c:88,1
    - Dst: xmlHasProp
      Src: /src/pacemaker/lib/common/ipc_attrd.c:89,1
    - Dst: set_pairs_data
      Src: /src/pacemaker/lib/common/ipc_attrd.c:94,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_attrd.c:98,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/ipc_attrd.c:108,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_attrd.c:97,1
    - Dst: pcmk__call_ipc_callback
      Src: /src/pacemaker/lib/common/ipc_attrd.c:104,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - api
    - reply
    argTypes:
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 112
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 112
    functionName: dispatch
    functionSourceFile: /src/pacemaker/lib/common/ipc_attrd.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - pcmk__str_empty
    - pcmk__str_eq
    - g_list_free_full
    - pcmk__xe_is
    - set_pairs_data
    - crm_element_value
    - crm_info
    - pcmk__call_ipc_callback
    - xmlHasProp
    linkageType: ''
    returnType: bool
    signature: 'static bool dispatch(pcmk_ipc_api_t *api, xmlNode *reply) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_attrd_op
      Src: /src/pacemaker/lib/common/ipc_attrd.c:195,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_attrd.c:205,1
    - Dst: pcmk__node_attr_target
      Src: /src/pacemaker/lib/common/ipc_attrd.c:198,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_attrd.c:212,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_attrd.c:211,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_attrd.c:213,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_attrd.c:213,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:215,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:216,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:217,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/common/ipc_attrd.c:220,1
    - Dst: connect_and_send_attrd_request
      Src: /src/pacemaker/lib/common/ipc_attrd.c:223,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:218,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:219,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_attrd.c:225,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_attrd.c:221,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 7
    argNames:
    - api
    - node
    - resource
    - operation
    - interval_spec
    - user_name
    - options
    argTypes:
    - pcmk_ipc_api_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 227
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 227
    functionName: pcmk__attrd_api_clear_failures
    functionSourceFile: /src/pacemaker/lib/common/ipc_attrd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_ipc_name
    - connect_and_send_attrd_request
    - create_attrd_op
    - pcmk__s
    - pcmk__node_attr_target
    - crm_xml_add
    - pcmk_is_set
    - pcmk__xml_free
    - crm_xml_add_int
    linkageType: ''
    returnType: int
    signature: 'int pcmk__attrd_api_clear_failures(pcmk_ipc_api_t *api, const char
      *node, const char *resource, const char *operation, const char *interval_spec,
      const char *user_name, uint32_t options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__node_attr_target
      Src: /src/pacemaker/lib/common/ipc_attrd.c:257,1
    - Dst: create_attrd_op
      Src: /src/pacemaker/lib/common/ipc_attrd.c:268,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_attrd.c:263,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_attrd.c:264,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_attrd.c:266,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:270,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/lib/common/ipc_attrd.c:271,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:272,1
    - Dst: connect_and_send_attrd_request
      Src: /src/pacemaker/lib/common/ipc_attrd.c:274,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_attrd.c:276,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - api
    - node
    - reap
    argTypes:
    - pcmk_ipc_api_t*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 278
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 278
    functionName: pcmk__attrd_api_purge
    functionSourceFile: /src/pacemaker/lib/common/ipc_attrd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_ipc_name
    - connect_and_send_attrd_request
    - create_attrd_op
    - pcmk__s
    - pcmk__node_attr_target
    - crm_xml_add
    - pcmk__xe_set_bool_attr
    - pcmk__xml_free
    linkageType: ''
    returnType: int
    signature: 'int pcmk__attrd_api_purge(pcmk_ipc_api_t *api, const char *node, bool
      reap) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__node_attr_target
      Src: /src/pacemaker/lib/common/ipc_attrd.c:324,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_attrd.c:331,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_attrd.c:331,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_attrd.c:330,1
    - Dst: create_attrd_op
      Src: /src/pacemaker/lib/common/ipc_attrd.c:333,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:335,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:336,1
    - Dst: connect_and_send_attrd_request
      Src: /src/pacemaker/lib/common/ipc_attrd.c:338,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_attrd.c:340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - api
    - node
    argTypes:
    - pcmk_ipc_api_t*
    - char*
    constantsTouched: []
    func_position:
      end: 342
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 342
    functionName: pcmk__attrd_api_refresh
    functionSourceFile: /src/pacemaker/lib/common/ipc_attrd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_ipc_name
    - connect_and_send_attrd_request
    - create_attrd_op
    - pcmk__s
    - pcmk__node_attr_target
    - crm_xml_add
    - pcmk__xml_free
    linkageType: ''
    returnType: int
    signature: 'int pcmk__attrd_api_refresh(pcmk_ipc_api_t *api, const char *node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: add_op_attr
      Src: /src/pacemaker/lib/common/ipc_attrd.c:372,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:375,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:376,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:377,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:384,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_attrd.c:383,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:367,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:361,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:363,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:369,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:374,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_attrd.c:381,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/common/ipc_attrd.c:380,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:386,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_attrd.c:360,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_attrd.c:366,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/common/ipc_attrd.c:378,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_attrd.c:385,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_attrd.c:379,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 7
    argNames:
    - op
    - node
    - name
    - value
    - dampen
    - set
    - options
    argTypes:
    - xmlNode*
    - char*
    - char*
    - char*
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 388
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 388
    functionName: populate_update_op
    functionSourceFile: /src/pacemaker/lib/common/ipc_attrd.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - crm_xml_add
    - crm_xml_add_int
    - add_op_attr
    linkageType: ''
    returnType: void
    signature: 'static void populate_update_op(xmlNode *op, const char *node, const
      char *name, const char *value, const char *dampen, const char *set, uint32_t
      options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/ipc_attrd.c:46,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/ipc_attrd.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - api
    - request
    argTypes:
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: reply_expected
    functionSourceFile: /src/pacemaker/lib/common/ipc_attrd.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - crm_element_value
    linkageType: ''
    returnType: bool
    signature: 'static bool reply_expected(pcmk_ipc_api_t *api, const xmlNode *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/ipc_attrd.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: pcmk__attrd_api_methods
    functionSourceFile: /src/pacemaker/lib/common/ipc_attrd.c
    functionUses: []
    functionsReached:
    - calloc
    linkageType: ''
    returnType: pcmk__ipc_methods_t*
    signature: 'pcmk__ipc_methods_t *pcmk__attrd_api_methods(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_new_ipc_api
      Src: /src/pacemaker/lib/common/ipc_attrd.c:159,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/lib/common/ipc_attrd.c:183,1
    - Dst: sleep
      Src: /src/pacemaker/lib/common/ipc_attrd.c:173,1
    - Dst: pcmk__connect_ipc
      Src: /src/pacemaker/lib/common/ipc_attrd.c:175,1
    - Dst: pcmk__send_ipc_request
      Src: /src/pacemaker/lib/common/ipc_attrd.c:177,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - api
    - request
    argTypes:
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 186
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 186
    functionName: connect_and_send_attrd_request
    functionSourceFile: /src/pacemaker/lib/common/ipc_attrd.c
    functionUses: []
    functionsReached:
    - sleep
    - pcmk__connect_ipc
    - pcmk_new_ipc_api
    - pcmk__send_ipc_request
    - pcmk_free_ipc_api
    linkageType: ''
    returnType: int
    signature: 'static int connect_and_send_attrd_request(pcmk_ipc_api_t *api, const
      xmlNode *request) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__node_attr_target
      Src: /src/pacemaker/lib/common/ipc_attrd.c:239,1
    - Dst: pcmk__attrd_api_update
      Src: /src/pacemaker/lib/common/ipc_attrd.c:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 4
    argNames:
    - api
    - node
    - name
    - options
    argTypes:
    - pcmk_ipc_api_t*
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 250
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 250
    functionName: pcmk__attrd_api_delete
    functionSourceFile: /src/pacemaker/lib/common/ipc_attrd.c
    functionUses: []
    functionsReached:
    - pcmk__attrd_api_update
    - pcmk__node_attr_target
    linkageType: ''
    returnType: int
    signature: 'int pcmk__attrd_api_delete(pcmk_ipc_api_t *api, const char *node,
      const char *name, uint32_t options) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_attrd.c:292,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_attrd.c:304,1
    - Dst: pcmk__node_attr_target
      Src: /src/pacemaker/lib/common/ipc_attrd.c:295,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_attrd.c:305,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_attrd.c:306,1
    - Dst: create_attrd_op
      Src: /src/pacemaker/lib/common/ipc_attrd.c:308,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:310,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:311,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:312,1
    - Dst: connect_and_send_attrd_request
      Src: /src/pacemaker/lib/common/ipc_attrd.c:314,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_attrd.c:315,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - api
    - node
    - name
    - options
    argTypes:
    - pcmk_ipc_api_t*
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 317
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 317
    functionName: pcmk__attrd_api_query
    functionSourceFile: /src/pacemaker/lib/common/ipc_attrd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_ipc_name
    - connect_and_send_attrd_request
    - create_attrd_op
    - pcmk__s
    - pcmk__node_attr_target
    - crm_xml_add
    - pcmk_is_set
    - pcmk__xml_free
    linkageType: ''
    returnType: int
    signature: 'int pcmk__attrd_api_query(pcmk_ipc_api_t *api, const char *node, const
      char *name, uint32_t options) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/common/ipc_attrd.c:347,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_attrd.c:351,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_attrd.c:349,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:348,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:350,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_attrd.c:352,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - op
    - options
    argTypes:
    - xmlNode*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 354
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 354
    functionName: add_op_attr
    functionSourceFile: /src/pacemaker/lib/common/ipc_attrd.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - crm_xml_add
    - pcmk_all_flags_set
    linkageType: ''
    returnType: void
    signature: 'static void add_op_attr(xmlNode *op, uint32_t options) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__node_attr_target
      Src: /src/pacemaker/lib/common/ipc_attrd.c:403,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_attrd.c:411,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_attrd.c:410,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_attrd.c:409,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_attrd.c:410,1
    - Dst: create_attrd_op
      Src: /src/pacemaker/lib/common/ipc_attrd.c:413,1
    - Dst: populate_update_op
      Src: /src/pacemaker/lib/common/ipc_attrd.c:414,1
    - Dst: connect_and_send_attrd_request
      Src: /src/pacemaker/lib/common/ipc_attrd.c:416,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_attrd.c:418,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 8
    argNames:
    - api
    - node
    - name
    - value
    - dampen
    - set
    - user_name
    - options
    argTypes:
    - pcmk_ipc_api_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 420
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 420
    functionName: pcmk__attrd_api_update
    functionSourceFile: /src/pacemaker/lib/common/ipc_attrd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_ipc_name
    - connect_and_send_attrd_request
    - create_attrd_op
    - pcmk__s
    - pcmk__node_attr_target
    - pcmk__xml_free
    - populate_update_op
    linkageType: ''
    returnType: int
    signature: 'int pcmk__attrd_api_update(pcmk_ipc_api_t *api, const char *node,
      const char *name, const char *value, const char *dampen, const char *set, const
      char *user_name, uint32_t options) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: create_attrd_op
      Src: /src/pacemaker/lib/common/ipc_attrd.c:465,1
    - Dst: add_op_attr
      Src: /src/pacemaker/lib/common/ipc_attrd.c:466,1
    - Dst: pcmk__node_attr_target
      Src: /src/pacemaker/lib/common/ipc_attrd.c:475,1
    - Dst: populate_update_op
      Src: /src/pacemaker/lib/common/ipc_attrd.c:481,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/ipc_attrd.c:474,1
    - Dst: pcmk__attrd_api_update
      Src: /src/pacemaker/lib/common/ipc_attrd.c:484,1
    - Dst: connect_and_send_attrd_request
      Src: /src/pacemaker/lib/common/ipc_attrd.c:493,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_attrd.c:494,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 27
    argCount: 6
    argNames:
    - api
    - attrs
    - dampen
    - set
    - user_name
    - options
    argTypes:
    - pcmk_ipc_api_t*
    - GList*
    - char*
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 498
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 498
    functionName: pcmk__attrd_api_update_list
    functionSourceFile: /src/pacemaker/lib/common/ipc_attrd.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - connect_and_send_attrd_request
    - create_attrd_op
    - pcmk__node_attr_target
    - pcmk__attrd_api_update
    - pcmk__xml_free
    - add_op_attr
    - populate_update_op
    linkageType: ''
    returnType: int
    signature: 'int pcmk__attrd_api_update_list(pcmk_ipc_api_t *api, GList *attrs,
      const char *dampen, const char *set, const char *user_name, uint32_t options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/common/digest.c:62,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/digest.c:65,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/lib/common/digest.c:66,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/digest.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: dump_xml_for_digest
    functionSourceFile: /src/pacemaker/lib/common/digest.c
    functionUses: []
    functionsReached:
    - pcmk__xml_string
    - g_string_sized_new
    - g_string_append_c
    linkageType: ''
    returnType: GString*
    signature: 'static GString *dump_xml_for_digest(xmlNodePtr xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calculate_xml_digest_v1
      Src: /src/pacemaker/lib/common/digest.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: pcmk__digest_on_disk_cib
    functionSourceFile: /src/pacemaker/lib/common/digest.c
    functionUses: []
    functionsReached:
    - calculate_xml_digest_v1
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__digest_on_disk_cib(xmlNode *input) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/common/digest.c:165,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/lib/common/digest.c:167,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/digest.c:172,1
    - Dst: crm_md5sum
      Src: /src/pacemaker/lib/common/digest.c:168,1
    - Dst: pcmk__if_tracing
      Src: /src/pacemaker/lib/common/digest.c:170,1
    - Dst: pcmk__get_tmpdir
      Src: /src/pacemaker/lib/common/digest.c:173,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/digest.c:175,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/digest.c:176,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/digest.c:177,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/digest.c:178,1
    - Dst: free
      Src: /src/pacemaker/lib/common/digest.c:181,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/digest.c:185,1
    - Dst: save_xml_to_file
      Src: /src/pacemaker/lib/common/digest.c:180,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - xml
    - filter
    argTypes:
    - xmlNode*
    - bool
    constantsTouched: []
    func_position:
      end: 187
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 187
    functionName: pcmk__digest_xml
    functionSourceFile: /src/pacemaker/lib/common/digest.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - crm_md5sum
    - pcmk__if_tracing
    - g_string_free
    - g_string_sized_new
    - free
    - crm_element_value
    - pcmk__xml_string
    - pcmk__get_tmpdir
    - save_xml_to_file
    - crm_trace
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__digest_xml(xmlNode *xml, bool filter) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/digest.c:241,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/digest.c:242,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 247
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 247
    functionName: pcmk__xa_filterable
    functionSourceFile: /src/pacemaker/lib/common/digest.c
    functionUses: []
    functionsReached:
    - PCMK__NELEM
    - strcmp
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__xa_filterable(const char *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/pacemaker/lib/common/digest.c:277,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/digest.c:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - a
    - user_data
    argTypes:
    - xmlAttrPtr
    - void*
    constantsTouched: []
    func_position:
      end: 289
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 289
    functionName: should_filter_for_digest
    functionSourceFile: /src/pacemaker/lib/common/digest.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - strncmp
    linkageType: ''
    returnType: bool
    signature: 'static bool should_filter_for_digest(xmlAttrPtr a, void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calculate_xml_digest_v1
      Src: /src/pacemaker/lib/common/digest.c:343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 344
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 344
    functionName: calculate_on_disk_digest
    functionSourceFile: /src/pacemaker/lib/common/digest.c
    functionUses: []
    functionsReached:
    - calculate_xml_digest_v1
    linkageType: ''
    returnType: char*
    signature: 'char *calculate_on_disk_digest(xmlNode *input) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_compute_checksum_for_string
      Src: /src/pacemaker/lib/common/digest.c:259,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/digest.c:267,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/digest.c:266,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/digest.c:262,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/digest.c:269,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 271
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 271
    functionName: crm_md5sum
    functionSourceFile: /src/pacemaker/lib/common/digest.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - g_compute_checksum_for_string
    - crm_err
    - g_free
    - crm_trace
    linkageType: ''
    returnType: char*
    signature: 'char *crm_md5sum(const char *buffer) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sorted_xml
      Src: /src/pacemaker/lib/common/digest.c:349,1
    - Dst: calculate_xml_digest_v1
      Src: /src/pacemaker/lib/common/digest.c:350,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/digest.c:352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - input
    - version
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 354
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 354
    functionName: calculate_operation_digest
    functionSourceFile: /src/pacemaker/lib/common/digest.c
    functionUses: []
    functionsReached:
    - sorted_xml
    - calculate_xml_digest_v1
    - pcmk__xml_free
    linkageType: ''
    returnType: char*
    signature: 'char *calculate_operation_digest(xmlNode *input, const char *version) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/digest.c:360,1
    - Dst: calculate_xml_digest_v1
      Src: /src/pacemaker/lib/common/digest.c:373,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/digest.c:371,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/digest.c:370,1
    - Dst: sorted_xml
      Src: /src/pacemaker/lib/common/digest.c:365,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/digest.c:375,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/digest.c:378,1
    - Dst: pcmk__digest_xml
      Src: /src/pacemaker/lib/common/digest.c:379,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 4
    argNames:
    - input
    - sort
    - do_filter
    - version
    argTypes:
    - xmlNode*
    - gboolean
    - gboolean
    - char*
    constantsTouched: []
    func_position:
      end: 380
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 380
    functionName: calculate_xml_versioned_digest
    functionSourceFile: /src/pacemaker/lib/common/digest.c
    functionUses: []
    functionsReached:
    - calculate_xml_digest_v1
    - pcmk__digest_xml
    - pcmk__s
    - compare_version
    - sorted_xml
    - pcmk__xml_free
    - crm_trace
    linkageType: ''
    returnType: char*
    signature: 'char *calculate_xml_versioned_digest(xmlNode *input, gboolean sort,
      gboolean do_filter, const char *version) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/common/digest.c:139,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/digest.c:145,1
    - Dst: pcmk__xe_sort_attrs
      Src: /src/pacemaker/lib/common/digest.c:142,1
    - Dst: calculate_xml_digest_v1
      Src: /src/pacemaker/lib/common/digest.c:143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 147
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 147
    functionName: pcmk__digest_operation
    functionSourceFile: /src/pacemaker/lib/common/digest.c
    functionUses: []
    functionsReached:
    - calculate_xml_digest_v1
    - pcmk__xml_free
    - pcmk__xml_copy
    - pcmk__xe_sort_attrs
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__digest_operation(xmlNode *input) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dump_xml_for_digest
      Src: /src/pacemaker/lib/common/digest.c:85,1
    - Dst: crm_md5sum
      Src: /src/pacemaker/lib/common/digest.c:93,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/digest.c:90,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/digest.c:89,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/common/digest.c:94,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/digest.c:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - input
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: calculate_xml_digest_v1
    functionSourceFile: /src/pacemaker/lib/common/digest.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_log_xml_trace
    - crm_md5sum
    - dump_xml_for_digest
    - g_string_free
    linkageType: ''
    returnType: char*
    signature: 'static char *calculate_xml_digest_v1(xmlNode *input) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__digest_on_disk_cib
      Src: /src/pacemaker/lib/common/digest.c:205,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/digest.c:213,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/digest.c:211,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/digest.c:215,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/common/digest.c:207,1
    - Dst: free
      Src: /src/pacemaker/lib/common/digest.c:218,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - input
    - expected
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 220
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 220
    functionName: pcmk__verify_digest
    functionSourceFile: /src/pacemaker/lib/common/digest.c
    functionUses: []
    functionsReached:
    - crm_trace
    - crm_perror
    - pcmk__str_eq
    - free
    - pcmk__digest_on_disk_cib
    - crm_err
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__verify_digest(xmlNode *input, const char *expected) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/common/digest.c:311,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/common/digest.c:319,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/common/digest.c:318,1
    - Dst: crm_element_value_ms
      Src: /src/pacemaker/lib/common/digest.c:312,1
    - Dst: free
      Src: /src/pacemaker/lib/common/digest.c:315,1
    - Dst: pcmk__xe_remove_matching_attrs
      Src: /src/pacemaker/lib/common/digest.c:323,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/digest.c:328,1
    - Dst: free
      Src: /src/pacemaker/lib/common/digest.c:330,1
    - Dst: free
      Src: /src/pacemaker/lib/common/digest.c:331,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - param_set
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 332
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 332
    functionName: pcmk__filter_op_for_digest
    functionSourceFile: /src/pacemaker/lib/common/digest.c
    functionUses: []
    functionsReached:
    - pcmk__xe_remove_matching_attrs
    - crm_element_value_ms
    - crm_xml_add
    - free
    - crm_meta_name
    - crm_element_value_copy
    linkageType: ''
    returnType: void
    signature: 'void pcmk__filter_op_for_digest(xmlNode *param_set) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_ipc_ready
      Src: /src/pacemaker/lib/common/ipc_client.c:427,1
    - Dst: dispatch_ipc_data
      Src: /src/pacemaker/lib/common/ipc_client.c:429,1
    - Dst: pcmk__ipc_free_client_buffer
      Src: /src/pacemaker/lib/common/ipc_client.c:430,1
    - Dst: crm_ipc_read
      Src: /src/pacemaker/lib/common/ipc_client.c:428,1
    - Dst: crm_ipc_buffer
      Src: /src/pacemaker/lib/common/ipc_client.c:429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - api
    argTypes:
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 433
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 433
    functionName: pcmk_dispatch_ipc
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - crm_ipc_ready
    - dispatch_ipc_data
    - crm_ipc_buffer
    - crm_ipc_read
    - pcmk__ipc_free_client_buffer
    linkageType: ''
    returnType: void
    signature: 'void pcmk_dispatch_ipc(pcmk_ipc_api_t *api) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: create_purge_node_request
      Src: /src/pacemaker/lib/common/ipc_client.c:836,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_client.c:841,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_client.c:844,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_client.c:843,1
    - Dst: pcmk__send_ipc_request
      Src: /src/pacemaker/lib/common/ipc_client.c:840,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - api
    - node_name
    - nodeid
    argTypes:
    - pcmk_ipc_api_t*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 846
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 846
    functionName: pcmk_ipc_purge_node
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - create_purge_node_request
    - pcmk_ipc_name
    - crm_debug
    - pcmk__send_ipc_request
    - pcmk__xml_free
    linkageType: ''
    returnType: int
    signature: 'int pcmk_ipc_purge_node(pcmk_ipc_api_t *api, const char *node_name,
      uint32_t nodeid) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcc_connect
      Src: /src/pacemaker/lib/common/ipc_client.c:925,1
    - Dst: crm_ipc_close
      Src: /src/pacemaker/lib/common/ipc_client.c:932,1
    - Dst: pcmk_daemon_user
      Src: /src/pacemaker/lib/common/ipc_client.c:936,1
    - Dst: crm_ipc_default_buffer_size
      Src: /src/pacemaker/lib/common/ipc_client.c:925,1
    - Dst: qb_ipcc_fd_get
      Src: /src/pacemaker/lib/common/ipc_client.c:930,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/common/ipc_client.c:937,1
    - Dst: crm_ipc_close
      Src: /src/pacemaker/lib/common/ipc_client.c:939,1
    - Dst: is_ipc_provider_expected
      Src: /src/pacemaker/lib/common/ipc_client.c:943,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_client.c:947,1
    - Dst: PCMK__SPECIAL_PID_AS_0
      Src: /src/pacemaker/lib/common/ipc_client.c:950,1
    - Dst: crm_ipc_close
      Src: /src/pacemaker/lib/common/ipc_client.c:954,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - ipc
    argTypes:
    - crm_ipc_t*
    constantsTouched: []
    func_position:
      end: 959
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 959
    functionName: pcmk__connect_generic_ipc
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - PCMK__SPECIAL_PID_AS_0
    - crm_ipc_close
    - qb_ipcc_connect
    - pcmk_daemon_user
    - qb_ipcc_fd_get
    - is_ipc_provider_expected
    - crm_ipc_default_buffer_size
    - crm_info
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int pcmk__connect_generic_ipc(crm_ipc_t *ipc) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcc_auth_get
      Src: /src/pacemaker/lib/common/ipc_client.c:1553,1
    - Dst: getpeereid
      Src: /src/pacemaker/lib/common/ipc_client.c:1599,1
    - Dst: getsockopt
      Src: /src/pacemaker/lib/common/ipc_client.c:1566,1
    - Dst: getpeerucred
      Src: /src/pacemaker/lib/common/ipc_client.c:1611,1
    - Dst: getsockopt
      Src: /src/pacemaker/lib/common/ipc_client.c:1584,1
    - Dst: ucred_getpid
      Src: /src/pacemaker/lib/common/ipc_client.c:1614,1
    - Dst: ucred_geteuid
      Src: /src/pacemaker/lib/common/ipc_client.c:1615,1
    - Dst: ucred_getegid
      Src: /src/pacemaker/lib/common/ipc_client.c:1616,1
    - Dst: ucred_free
      Src: /src/pacemaker/lib/common/ipc_client.c:1617,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 67
    argCount: 7
    argNames:
    - qb_ipc
    - sock
    - refuid
    - refgid
    - gotpid
    - gotuid
    - gotgid
    argTypes:
    - qb_ipcc_connection_t*
    - int
    - uid_t
    - gid_t
    - pid_t*
    - uid_t*
    - gid_t*
    constantsTouched: []
    func_position:
      end: 1639
      start: 1541
    functionDepth: 0
    functionLinenumber: 1541
    functionLinenumberEnd: 1639
    functionName: is_ipc_provider_expected
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - ucred_free
    - getpeereid
    - qb_ipcc_auth_get
    - ucred_geteuid
    - ucred_getegid
    - ucred_getpid
    - getpeerucred
    - getsockopt
    linkageType: ''
    returnType: int
    signature: 'static int is_ipc_provider_expected(qb_ipcc_connection_t *qb_ipc,
      int sock, uid_t refuid, gid_t refgid, pid_t *gotpid, uid_t *gotuid, gid_t *gotgid) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_ipc_provider_expected
      Src: /src/pacemaker/lib/common/ipc_client.c:1645,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/common/ipc_client.c:1654,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 6
    argNames:
    - sock
    - refuid
    - refgid
    - gotpid
    - gotuid
    - gotgid
    argTypes:
    - int
    - uid_t
    - gid_t
    - pid_t*
    - uid_t*
    - gid_t*
    constantsTouched: []
    func_position:
      end: 1656
      start: 1641
    functionDepth: 0
    functionLinenumber: 1641
    functionLinenumberEnd: 1656
    functionName: crm_ipc_is_authentic_process
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - pcmk_rc2legacy
    - is_ipc_provider_expected
    linkageType: ''
    returnType: int
    signature: 'int crm_ipc_is_authentic_process(int sock, uid_t refuid, gid_t refgid,
      pid_t *gotpid, uid_t *gotuid, gid_t *gotgid) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__connect_generic_ipc
      Src: /src/pacemaker/lib/common/ipc_client.c:1766,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/ipc_client.c:1774,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_client.c:1780,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_client.c:1776,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_client.c:1773,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - client
    argTypes:
    - crm_ipc_t*
    constantsTouched: []
    func_position:
      end: 1785
      start: 1763
    functionDepth: 0
    functionLinenumber: 1763
    functionLinenumberEnd: 1785
    functionName: crm_ipc_connect
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__connect_generic_ipc
    - crm_err
    - pcmk_rc_str
    linkageType: ''
    returnType: bool
    signature: 'bool crm_ipc_connect(crm_ipc_t *client) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/ipc_client.c:778,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_client.c:781,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_client.c:780,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_client.c:779,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/lib/common/ipc_client.c:782,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_client.c:783,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/common/ipc_client.c:785,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/lib/common/ipc_client.c:792,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_client.c:793,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/lib/common/ipc_client.c:796,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_client.c:798,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 19
    argCount: 3
    argNames:
    - api
    - node_name
    - nodeid
    argTypes:
    - pcmk_ipc_api_t*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 810
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 810
    functionName: create_purge_node_request
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk_ipc_name
    - crm_xml_add
    - pcmk__xe_set_bool_attr
    - crm_xml_add_int
    - crm_xml_add_ll
    - pcmk__new_request
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *create_purge_node_request(const pcmk_ipc_api_t *api,
      const char *node_name, uint32_t nodeid) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/ipc_client.c:880,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/ipc_client.c:886,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_client.c:882,1
    - Dst: strerror
      Src: /src/pacemaker/lib/common/ipc_client.c:882,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_client.c:888,1
    - Dst: strerror
      Src: /src/pacemaker/lib/common/ipc_client.c:889,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_client.c:890,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - name
    - max_size
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 900
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 900
    functionName: crm_ipc_new
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - calloc
    - strerror
    - free
    - strdup
    - crm_err
    linkageType: ''
    returnType: crm_ipc_t*
    signature: 'crm_ipc_t *crm_ipc_new(const char *name, size_t max_size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__sleep_ms
      Src: /src/pacemaker/lib/common/ipc_client.c:495,1
    - Dst: pcmk__connect_ipc
      Src: /src/pacemaker/lib/common/ipc_client.c:497,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - api
    - dispatch_type
    - attempts
    argTypes:
    - pcmk_ipc_api_t*
    - enum pcmk_ipc_dispatch
    - int
    constantsTouched: []
    func_position:
      end: 502
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 502
    functionName: pcmk__connect_ipc_retry_conrefused
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - pcmk__sleep_ms
    - pcmk__connect_ipc
    linkageType: ''
    returnType: int
    signature: 'int pcmk__connect_ipc_retry_conrefused(pcmk_ipc_api_t *api, enum pcmk_ipc_dispatch
      dispatch_type, int attempts) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:692,1
    - Dst: call_api_dispatch
      Src: /src/pacemaker/lib/common/ipc_client.c:717,1
    - Dst: crm_ipc_send
      Src: /src/pacemaker/lib/common/ipc_client.c:707,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/common/ipc_client.c:710,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_client.c:719,1
    - Dst: crm_ipc_read
      Src: /src/pacemaker/lib/common/ipc_client.c:722,1
    - Dst: dispatch_ipc_data
      Src: /src/pacemaker/lib/common/ipc_client.c:732,1
    - Dst: crm_ipc_buffer
      Src: /src/pacemaker/lib/common/ipc_client.c:732,1
    - Dst: pcmk__ipc_free_client_buffer
      Src: /src/pacemaker/lib/common/ipc_client.c:733,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 2
    argNames:
    - api
    - request
    argTypes:
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 745
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 745
    functionName: pcmk__send_ipc_request
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - dispatch_ipc_data
    - call_api_dispatch
    - crm_ipc_buffer
    - crm_ipc_send
    - crm_ipc_read
    - pcmk__xml_free
    - pcmk__ipc_free_client_buffer
    - crm_log_xml_trace
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int pcmk__send_ipc_request(pcmk_ipc_api_t *api, const xmlNode *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/ipc_client.c:1077,1
    - Dst: crm_ipc_connected
      Src: /src/pacemaker/lib/common/ipc_client.c:1079,1
    - Dst: poll
      Src: /src/pacemaker/lib/common/ipc_client.c:1084,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - client
    argTypes:
    - crm_ipc_t*
    constantsTouched: []
    func_position:
      end: 1086
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1086
    functionName: crm_ipc_ready
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - poll
    - crm_ipc_connected
    linkageType: ''
    returnType: int
    signature: 'int crm_ipc_ready(crm_ipc_t *client) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/ipc_client.c:51,1
    - Dst: pcmk__controld_api_methods
      Src: /src/pacemaker/lib/common/ipc_client.c:73,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_client.c:57,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/lib/common/ipc_client.c:58,1
    - Dst: pcmk__attrd_api_methods
      Src: /src/pacemaker/lib/common/ipc_client.c:66,1
    - Dst: pcmk__pacemakerd_api_methods
      Src: /src/pacemaker/lib/common/ipc_client.c:83,1
    - Dst: pcmk__schedulerd_api_methods
      Src: /src/pacemaker/lib/common/ipc_client.c:87,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/lib/common/ipc_client.c:91,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/lib/common/ipc_client.c:96,1
    - Dst: crm_ipc_new
      Src: /src/pacemaker/lib/common/ipc_client.c:101,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/lib/common/ipc_client.c:103,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_client.c:101,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_client.c:116,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/lib/common/ipc_client.c:111,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:116,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 2
    argNames:
    - api
    - server
    argTypes:
    - pcmk_ipc_api_t**
    - enum pcmk_ipc_server
    constantsTouched: []
    func_position:
      end: 118
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 118
    functionName: pcmk_new_ipc_api
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - pcmk_ipc_name
    - pcmk__attrd_api_methods
    - crm_ipc_new
    - calloc
    - pcmk__pacemakerd_api_methods
    - pcmk__schedulerd_api_methods
    - pcmk__controld_api_methods
    - pcmk_free_ipc_api
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int pcmk_new_ipc_api(pcmk_ipc_api_t **api, enum pcmk_ipc_server server) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 4
    argNames:
    - api
    - event_type
    - status
    - event_data
    argTypes:
    - pcmk_ipc_api_t*
    - enum pcmk_ipc_event
    - crm_exit_t
    - void*
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: pcmk__call_ipc_callback
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void pcmk__call_ipc_callback(pcmk_ipc_api_t *api, enum pcmk_ipc_event
      event_type, crm_exit_t status, void *event_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__ipc_fd
      Src: /src/pacemaker/lib/common/ipc_client.c:391,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_client.c:394,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_client.c:393,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/ipc_client.c:394,1
    - Dst: poll
      Src: /src/pacemaker/lib/common/ipc_client.c:399,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - api
    - timeout_ms
    argTypes:
    - pcmk_ipc_api_t*
    - int
    constantsTouched: []
    func_position:
      end: 409
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 409
    functionName: pcmk_poll_ipc
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_ipc_name
    - pcmk__ipc_fd
    - poll
    - pcmk_rc_str
    linkageType: ''
    returnType: int
    signature: 'int pcmk_poll_ipc(const pcmk_ipc_api_t *api, int timeout_ms) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__connect_generic_ipc
      Src: /src/pacemaker/lib/common/ipc_client.c:463,1
    - Dst: crm_ipc_close
      Src: /src/pacemaker/lib/common/ipc_client.c:466,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_client.c:469,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_client.c:468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - api
    argTypes:
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 472
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 472
    functionName: connect_without_main_loop
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__connect_generic_ipc
    - crm_ipc_close
    - pcmk_ipc_name
    linkageType: ''
    returnType: int
    signature: 'static int connect_without_main_loop(pcmk_ipc_api_t *api) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:1046,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:1054,1
    - Dst: qb_ipcc_is_connected
      Src: /src/pacemaker/lib/common/ipc_client.c:1058,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:1050,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - client
    argTypes:
    - crm_ipc_t*
    constantsTouched: []
    func_position:
      end: 1063
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1063
    functionName: crm_ipc_connected
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - crm_trace
    - qb_ipcc_is_connected
    linkageType: ''
    returnType: bool
    signature: 'bool crm_ipc_connected(crm_ipc_t * client) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcc_connect_async
      Src: /src/pacemaker/lib/common/ipc_client.c:1673,1
    - Dst: strerror
      Src: /src/pacemaker/lib/common/ipc_client.c:1679,1
    - Dst: poll
      Src: /src/pacemaker/lib/common/ipc_client.c:1686,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_client.c:1679,1
    - Dst: strerror
      Src: /src/pacemaker/lib/common/ipc_client.c:1696,1
    - Dst: qb_ipcc_fd_get
      Src: /src/pacemaker/lib/common/ipc_client.c:1703,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/ipc_client.c:1707,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_client.c:1724,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/ipc_client.c:1737,1
    - Dst: memccpy
      Src: /src/pacemaker/lib/common/ipc_client.c:1748,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_client.c:1695,1
    - Dst: is_ipc_provider_expected
      Src: /src/pacemaker/lib/common/ipc_client.c:1711,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/ipc_client.c:1725,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/ipc_client.c:1742,1
    - Dst: PCMK__SPECIAL_PID_AS_0
      Src: /src/pacemaker/lib/common/ipc_client.c:1716,1
    - Dst: qb_ipcc_connect
      Src: /src/pacemaker/lib/common/ipc_client.c:1676,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_client.c:1714,1
    - Dst: qb_ipcc_disconnect
      Src: /src/pacemaker/lib/common/ipc_client.c:1753,1
    - Dst: qb_ipcc_connect_continue
      Src: /src/pacemaker/lib/common/ipc_client.c:1694,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_client.c:1706,1
    - Dst: strncmp
      Src: /src/pacemaker/lib/common/ipc_client.c:1735,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 4
    argNames:
    - name
    - refuid
    - refgid
    - gotpid
    argTypes:
    - char*
    - uid_t
    - gid_t
    - pid_t*
    constantsTouched: []
    func_position:
      end: 1756
      start: 1658
    functionDepth: 0
    functionLinenumber: 1658
    functionLinenumberEnd: 1756
    functionName: pcmk__ipc_is_authentic_process_active
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - PCMK__SPECIAL_PID_AS_0
    - qb_ipcc_connect
    - qb_ipcc_connect_continue
    - qb_ipcc_disconnect
    - memccpy
    - is_ipc_provider_expected
    - strerror
    - qb_ipcc_connect_async
    - crm_notice
    - qb_ipcc_fd_get
    - poll
    - strncmp
    - pcmk_rc_str
    - crm_warn
    - crm_info
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int pcmk__ipc_is_authentic_process_active(const char *name, uid_t
      refuid, gid_t refgid, pid_t *gotpid) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_client.c:206,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_client.c:206,1
    - Dst: pcmk_disconnect_ipc
      Src: /src/pacemaker/lib/common/ipc_client.c:221,1
    - Dst: free_daemon_specific_data
      Src: /src/pacemaker/lib/common/ipc_client.c:224,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:225,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_client.c:226,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - api
    argTypes:
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 228
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 228
    functionName: pcmk_free_ipc_api
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_ipc_name
    - free_daemon_specific_data
    - pcmk_disconnect_ipc
    - free
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void pcmk_free_ipc_api(pcmk_ipc_api_t *api) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_client.c:128,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - api
    argTypes:
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: free_daemon_specific_data
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void free_daemon_specific_data(pcmk_ipc_api_t *api) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/ipc_client.c:358,1
    - Dst: dispatch_ipc_data
      Src: /src/pacemaker/lib/common/ipc_client.c:359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - buffer
    - length
    - user_data
    argTypes:
    - char*
    - ssize_t
    - gpointer
    constantsTouched: []
    func_position:
      end: 361
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 361
    functionName: dispatch_ipc_source_data
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - dispatch_ipc_data
    linkageType: ''
    returnType: int
    signature: 'static int dispatch_ipc_source_data(const char *buffer, ssize_t length,
      gpointer user_data) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/ipc_client.c:1094,1
    - Dst: crm_ipc_default_buffer_size
      Src: /src/pacemaker/lib/common/ipc_client.c:1095,1
    - Dst: g_malloc0
      Src: /src/pacemaker/lib/common/ipc_client.c:1095,1
    - Dst: qb_ipcc_event_recv
      Src: /src/pacemaker/lib/common/ipc_client.c:1099,1
    - Dst: crm_ipc_default_buffer_size
      Src: /src/pacemaker/lib/common/ipc_client.c:1100,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:1105,1
    - Dst: strerror
      Src: /src/pacemaker/lib/common/ipc_client.c:1106,1
    - Dst: crm_ipc_connected
      Src: /src/pacemaker/lib/common/ipc_client.c:1108,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_client.c:1109,1
    - Dst: pcmk__ipc_free_client_buffer
      Src: /src/pacemaker/lib/common/ipc_client.c:1111,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:1119,1
    - Dst: pcmk__ipc_msg_append
      Src: /src/pacemaker/lib/common/ipc_client.c:1129,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:1125,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/ipc_client.c:1148,1
    - Dst: pcmk__ipc_free_client_buffer
      Src: /src/pacemaker/lib/common/ipc_client.c:1136,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/common/ipc_client.c:1137,1
    - Dst: pcmk__ipc_free_client_buffer
      Src: /src/pacemaker/lib/common/ipc_client.c:1121,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 1
    argNames:
    - client
    argTypes:
    - crm_ipc_t*
    constantsTouched: []
    func_position:
      end: 1150
      start: 1088
    functionDepth: 0
    functionLinenumber: 1088
    functionLinenumberEnd: 1150
    functionName: crm_ipc_read
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - crm_ipc_default_buffer_size
    - g_malloc0
    - strerror
    - pcmk_rc2legacy
    - g_free
    - crm_err
    - qb_ipcc_event_recv
    - pcmk__ipc_free_client_buffer
    - crm_ipc_connected
    - pcmk__ipc_msg_append
    - pcmk__assert
    - crm_trace
    linkageType: ''
    returnType: long
    signature: 'long crm_ipc_read(crm_ipc_t *client) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/ipc_client.c:1155,1
    - Dst: g_byte_array_free
      Src: /src/pacemaker/lib/common/ipc_client.c:1158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - client
    argTypes:
    - crm_ipc_t*
    constantsTouched: []
    func_position:
      end: 1161
      start: 1152
    functionDepth: 0
    functionLinenumber: 1152
    functionLinenumberEnd: 1161
    functionName: pcmk__ipc_free_client_buffer
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - g_byte_array_free
    linkageType: ''
    returnType: void
    signature: 'void pcmk__ipc_free_client_buffer(crm_ipc_t *client) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_client.c:164,1
    - Dst: free_daemon_specific_data
      Src: /src/pacemaker/lib/common/ipc_client.c:187,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_client.c:164,1
    - Dst: pcmk__call_ipc_callback
      Src: /src/pacemaker/lib/common/ipc_client.c:172,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:188,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_client.c:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 191
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 191
    functionName: ipc_post_disconnect
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - pcmk_ipc_name
    - free_daemon_specific_data
    - free
    - crm_info
    - pcmk__call_ipc_callback
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void ipc_post_disconnect(gpointer user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/ipc_client.c:319,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/ipc_client.c:326,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_client.c:320,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/ipc_client.c:324,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_client.c:327,1
    - Dst: call_api_dispatch
      Src: /src/pacemaker/lib/common/ipc_client.c:331,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_client.c:332,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - buffer
    - api
    argTypes:
    - char*
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 339
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 339
    functionName: dispatch_ipc_data
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - pcmk_ipc_name
    - call_api_dispatch
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_warn
    linkageType: ''
    returnType: int
    signature: 'static int dispatch_ipc_data(const char *buffer, pcmk_ipc_api_t *api) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/lib/common/ipc_client.c:1205,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/common/ipc_client.c:1205,1
    - Dst: qb_ipcc_recv
      Src: /src/pacemaker/lib/common/ipc_client.c:1219,1
    - Dst: crm_ipc_default_buffer_size
      Src: /src/pacemaker/lib/common/ipc_client.c:1219,1
    - Dst: crm_ipc_connected
      Src: /src/pacemaker/lib/common/ipc_client.c:1225,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/ipc_client.c:1255,1
    - Dst: time
      Src: /src/pacemaker/lib/common/ipc_client.c:1265,1
    - Dst: crm_log_xml_notice
      Src: /src/pacemaker/lib/common/ipc_client.c:1262,1
    - Dst: crm_log_xml_notice
      Src: /src/pacemaker/lib/common/ipc_client.c:1259,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:1277,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:1210,1
    - Dst: g_malloc0
      Src: /src/pacemaker/lib/common/ipc_client.c:1213,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_client.c:1226,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:1234,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_client.c:1258,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/ipc_client.c:1263,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_client.c:1261,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:1268,1
    - Dst: pcmk__ipc_msg_append
      Src: /src/pacemaker/lib/common/ipc_client.c:1243,1
    - Dst: crm_ipc_buffer
      Src: /src/pacemaker/lib/common/ipc_client.c:1270,1
    - Dst: crm_ipc_buffer
      Src: /src/pacemaker/lib/common/ipc_client.c:1273,1
    - Dst: crm_ipc_default_buffer_size
      Src: /src/pacemaker/lib/common/ipc_client.c:1213,1
    - Dst: pcmk__ipc_free_client_buffer
      Src: /src/pacemaker/lib/common/ipc_client.c:1291,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/ipc_client.c:1273,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/ipc_client.c:1278,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/ipc_client.c:1292,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 78
    argCount: 5
    argNames:
    - client
    - request_id
    - ms_timeout
    - bytes
    - reply
    argTypes:
    - crm_ipc_t*
    - int
    - int
    - ssize_t*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 1294
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1294
    functionName: internal_ipc_get_reply
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - qb_ipcc_recv
    - pcmk__timeout_ms2s
    - crm_ipc_buffer
    - g_malloc0
    - time
    - crm_log_xml_notice
    - pcmk_rc_str
    - crm_err
    - g_free
    - pcmk__ipc_free_client_buffer
    - crm_ipc_connected
    - pcmk__ipc_msg_append
    - crm_ipc_default_buffer_size
    - pcmk__xml_parse
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int internal_ipc_get_reply(crm_ipc_t *client, int request_id,
      int ms_timeout, ssize_t *bytes, xmlNode **reply) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/common/ipc_client.c:1392,1
    - Dst: pcmk__ipc_prepare_iov
      Src: /src/pacemaker/lib/common/ipc_client.c:1401,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/ipc_client.c:1404,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/ipc_client.c:1405,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:1424,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:1430,1
    - Dst: time
      Src: /src/pacemaker/lib/common/ipc_client.c:1440,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/common/ipc_client.c:1489,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/ipc_client.c:1519,1
    - Dst: pcmk_free_ipc_event
      Src: /src/pacemaker/lib/common/ipc_client.c:1520,1
    - Dst: crm_write_blackbox
      Src: /src/pacemaker/lib/common/ipc_client.c:1511,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/common/ipc_client.c:1387,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/common/ipc_client.c:1394,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_client.c:1419,1
    - Dst: pcmk__clear_ipc_flags
      Src: /src/pacemaker/lib/common/ipc_client.c:1415,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/common/ipc_client.c:1435,1
    - Dst: qb_ipcc_sendv
      Src: /src/pacemaker/lib/common/ipc_client.c:1439,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:1475,1
    - Dst: internal_ipc_get_reply
      Src: /src/pacemaker/lib/common/ipc_client.c:1481,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/ipc_client.c:1504,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/ipc_client.c:1508,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/ipc_client.c:1364,1
    - Dst: discard_old_replies
      Src: /src/pacemaker/lib/common/ipc_client.c:1384,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/ipc_client.c:1370,1
    - Dst: pcmk__set_ipc_flags
      Src: /src/pacemaker/lib/common/ipc_client.c:1411,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/ipc_client.c:1406,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:1420,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/common/ipc_client.c:1407,1
    - Dst: pcmk_free_ipc_event
      Src: /src/pacemaker/lib/common/ipc_client.c:1469,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_client.c:1474,1
    - Dst: pcmk__ipc_free_client_buffer
      Src: /src/pacemaker/lib/common/ipc_client.c:1480,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/common/ipc_client.c:1516,1
    - Dst: crm_ipc_connected
      Src: /src/pacemaker/lib/common/ipc_client.c:1368,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/lib/common/ipc_client.c:1395,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_client.c:1413,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_client.c:1418,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:1426,1
    - Dst: time
      Src: /src/pacemaker/lib/common/ipc_client.c:1435,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/common/ipc_client.c:1509,1
    - Dst: crm_ipc_connected
      Src: /src/pacemaker/lib/common/ipc_client.c:1503,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/ipc_client.c:1514,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 108
    argCount: 5
    argNames:
    - client
    - message
    - flags
    - ms_timeout
    - reply
    argTypes:
    - crm_ipc_t*
    - xmlNode*
    - enum crm_ipc_flags
    - int32_t
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 1522
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1522
    functionName: crm_ipc_send
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - pcmk__timeout_ms2s
    - crm_notice
    - crm_write_blackbox
    - crm_ipc_connected
    - pcmk__clear_ipc_flags
    - g_string_free
    - pcmk__ipc_prepare_iov
    - qb_ipcc_sendv
    - pcmk_rc2legacy
    - pcmk_is_set
    - pcmk__ipc_free_client_buffer
    - pcmk_rc_str
    - internal_ipc_get_reply
    - pcmk_free_ipc_event
    - g_string_sized_new
    - crm_warn
    - pcmk_strerror
    - crm_trace
    - discard_old_replies
    - CRM_LOG_ASSERT
    - pcmk__set_ipc_flags
    - time
    - pcmk__xml_string
    linkageType: ''
    returnType: int
    signature: 'int crm_ipc_send(crm_ipc_t *client, const xmlNode *message, enum crm_ipc_flags
      flags, int32_t ms_timeout, xmlNode **reply) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_ipc_connected
      Src: /src/pacemaker/lib/common/ipc_client.c:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - api
    argTypes:
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: pcmk_ipc_is_connected
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - crm_ipc_connected
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk_ipc_is_connected(pcmk_ipc_api_t *api) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - api
    - message
    argTypes:
    - pcmk_ipc_api_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 295
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 295
    functionName: call_api_dispatch
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - crm_log_xml_trace
    linkageType: ''
    returnType: bool
    signature: 'static bool call_api_dispatch(pcmk_ipc_api_t *api, xmlNode *message) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__connect_ipc
      Src: /src/pacemaker/lib/common/ipc_client.c:588,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_client.c:591,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_client.c:592,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/ipc_client.c:592,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - api
    - dispatch_type
    argTypes:
    - pcmk_ipc_api_t*
    - enum pcmk_ipc_dispatch
    constantsTouched: []
    func_position:
      end: 595
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 595
    functionName: pcmk_connect_ipc
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - pcmk_ipc_name
    - pcmk__connect_ipc
    - crm_err
    - pcmk_rc_str
    linkageType: ''
    returnType: int
    signature: 'int pcmk_connect_ipc(pcmk_ipc_api_t *api, enum pcmk_ipc_dispatch dispatch_type) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - api
    - cb
    - user_data
    argTypes:
    - pcmk_ipc_api_t*
    - pcmk_ipc_callback_t
    - void*
    constantsTouched: []
    func_position:
      end: 668
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 668
    functionName: pcmk_register_ipc_callback
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void pcmk_register_ipc_callback(pcmk_ipc_api_t *api, pcmk_ipc_callback_t
      cb, void *user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcc_disconnect
      Src: /src/pacemaker/lib/common/ipc_client.c:969,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - client
    argTypes:
    - crm_ipc_t*
    constantsTouched: []
    func_position:
      end: 972
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 972
    functionName: crm_ipc_close
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - qb_ipcc_disconnect
    linkageType: ''
    returnType: void
    signature: 'void crm_ipc_close(crm_ipc_t * client) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - ipc
    - fd
    argTypes:
    - crm_ipc_t*
    - int*
    constantsTouched: []
    func_position:
      end: 1024
      start: 1013
    functionDepth: 0
    functionLinenumber: 1013
    functionLinenumberEnd: 1024
    functionName: pcmk__ipc_fd
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int pcmk__ipc_fd(crm_ipc_t *ipc, int *fd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/ipc_client.c:1166,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/ipc_client.c:1167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - client
    argTypes:
    - crm_ipc_t*
    constantsTouched: []
    func_position:
      end: 1169
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1169
    functionName: crm_ipc_buffer
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - CRM_CHECK
    linkageType: ''
    returnType: char*
    signature: 'const char *crm_ipc_buffer(crm_ipc_t * client) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/ipc_client.c:1188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - client
    argTypes:
    - crm_ipc_t*
    constantsTouched: []
    func_position:
      end: 1190
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1190
    functionName: crm_ipc_name
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    linkageType: ''
    returnType: char*
    signature: 'const char *crm_ipc_name(crm_ipc_t * client) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcc_is_connected
      Src: /src/pacemaker/lib/common/ipc_client.c:978,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_client.c:999,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:991,1
    - Dst: pcmk__ipc_free_client_buffer
      Src: /src/pacemaker/lib/common/ipc_client.c:996,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/ipc_client.c:979,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_client.c:1000,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - client
    argTypes:
    - crm_ipc_t*
    constantsTouched: []
    func_position:
      end: 1002
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 1002
    functionName: crm_ipc_destroy
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - qb_ipcc_is_connected
    - crm_notice
    - free
    - pcmk__ipc_free_client_buffer
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void crm_ipc_destroy(crm_ipc_t * client) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__ipc_fd
      Src: /src/pacemaker/lib/common/ipc_client.c:1031,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_client.c:1032,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - client
    argTypes:
    - crm_ipc_t*
    constantsTouched: []
    func_position:
      end: 1038
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1038
    functionName: crm_ipc_get_fd
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - pcmk__ipc_fd
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int crm_ipc_get_fd(crm_ipc_t * client) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/ipc_client.c:1176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - client
    argTypes:
    - crm_ipc_t*
    constantsTouched: []
    func_position:
      end: 1183
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1183
    functionName: crm_ipc_buffer_flags
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t crm_ipc_buffer_flags(crm_ipc_t * client) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__server_log_name
      Src: /src/pacemaker/lib/common/ipc_client.c:246,1
    - Dst: pcmk__server_ipc_name
      Src: /src/pacemaker/lib/common/ipc_client.c:258,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_client.c:248,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 8
    argCount: 2
    argNames:
    - api
    - for_log
    argTypes:
    - pcmk_ipc_api_t*
    - bool
    constantsTouched: []
    func_position:
      end: 260
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 260
    functionName: pcmk_ipc_name
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - pcmk__server_log_name
    - pcmk__server_ipc_name
    - pcmk__s
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk_ipc_name(const pcmk_ipc_api_t *api, bool for_log) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__add_mainloop_ipc
      Src: /src/pacemaker/lib/common/ipc_client.c:446,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_client.c:451,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_client.c:452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - api
    argTypes:
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 457
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 457
    functionName: connect_with_main_loop
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_ipc_name
    - pcmk__add_mainloop_ipc
    linkageType: ''
    returnType: int
    signature: 'static int connect_with_main_loop(pcmk_ipc_api_t *api) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: crm_ipc_new
      Src: /src/pacemaker/lib/common/ipc_client.c:526,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_client.c:533,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_client.c:526,1
    - Dst: crm_ipc_connected
      Src: /src/pacemaker/lib/common/ipc_client.c:532,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_client.c:533,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_client.c:539,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_client.c:540,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/common/ipc_client.c:540,1
    - Dst: connect_with_main_loop
      Src: /src/pacemaker/lib/common/ipc_client.c:544,1
    - Dst: connect_without_main_loop
      Src: /src/pacemaker/lib/common/ipc_client.c:549,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_client.c:559,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/common/ipc_client.c:561,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/lib/common/ipc_client.c:560,1
    - Dst: pcmk__sleep_ms
      Src: /src/pacemaker/lib/common/ipc_client.c:558,1
    - Dst: crm_ipc_close
      Src: /src/pacemaker/lib/common/ipc_client.c:571,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 3
    argNames:
    - api
    - dispatch_type
    - attempts
    argTypes:
    - pcmk_ipc_api_t*
    - enum pcmk_ipc_dispatch
    - int
    constantsTouched: []
    func_position:
      end: 575
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 575
    functionName: pcmk__connect_ipc
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_ipc_name
    - crm_ipc_close
    - crm_ipc_new
    - pcmk__plural_s
    - pcmk__sleep_ms
    - connect_with_main_loop
    - connect_without_main_loop
    - crm_ipc_connected
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int pcmk__connect_ipc(pcmk_ipc_api_t *api, enum pcmk_ipc_dispatch
      dispatch_type, int attempts) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_del_ipc_client
      Src: /src/pacemaker/lib/common/ipc_client.c:623,1
    - Dst: ipc_post_disconnect
      Src: /src/pacemaker/lib/common/ipc_client.c:641,1
    - Dst: crm_ipc_close
      Src: /src/pacemaker/lib/common/ipc_client.c:639,1
    - Dst: crm_ipc_destroy
      Src: /src/pacemaker/lib/common/ipc_client.c:640,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 1
    argNames:
    - api
    argTypes:
    - pcmk_ipc_api_t*
    constantsTouched: []
    func_position:
      end: 645
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 645
    functionName: pcmk_disconnect_ipc
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - crm_ipc_close
    - ipc_post_disconnect
    - crm_ipc_destroy
    - mainloop_del_ipc_client
    linkageType: ''
    returnType: void
    signature: 'void pcmk_disconnect_ipc(pcmk_ipc_api_t *api) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/ipc_client.c:1302,1
    - Dst: crm_ipc_default_buffer_size
      Src: /src/pacemaker/lib/common/ipc_client.c:1305,1
    - Dst: qb_ipcc_recv
      Src: /src/pacemaker/lib/common/ipc_client.c:1305,1
    - Dst: crm_ipc_default_buffer_size
      Src: /src/pacemaker/lib/common/ipc_client.c:1302,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/ipc_client.c:1309,1
    - Dst: pcmk__valid_ipc_header
      Src: /src/pacemaker/lib/common/ipc_client.c:1317,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_client.c:1320,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_client.c:1321,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/ipc_client.c:1322,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/ipc_client.c:1327,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_client.c:1333,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - client
    - ms_timeout
    argTypes:
    - crm_ipc_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1335
      start: 1296
    functionDepth: 0
    functionLinenumber: 1296
    functionLinenumberEnd: 1335
    functionName: discard_old_replies
    functionSourceFile: /src/pacemaker/lib/common/ipc_client.c
    functionUses: []
    functionsReached:
    - qb_ipcc_recv
    - pcmk__assert_alloc
    - crm_notice
    - pcmk_is_set
    - free
    - crm_ipc_default_buffer_size
    - crm_warn
    - pcmk__valid_ipc_header
    linkageType: ''
    returnType: int
    signature: 'static int discard_old_replies(crm_ipc_t *client, int32_t ms_timeout) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/actions.c:91,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/actions.c:103,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/actions.c:94,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/actions.c:100,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/actions.c:97,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/actions.c:107,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/actions.c:110,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/actions.c:113,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/actions.c:116,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/actions.c:120,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/actions.c:123,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/actions.c:126,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/actions.c:130,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 1
    argNames:
    - action_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 134
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 134
    functionName: pcmk__parse_action
    functionSourceFile: /src/pacemaker/lib/common/actions.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: enum pcmk__action_type
    signature: 'enum pcmk__action_type pcmk__parse_action(const char *action_name) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/actions.c:195,1
    - Dst: pcmk__free_node_copy
      Src: /src/pacemaker/lib/common/actions.c:203,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/actions.c:201,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/actions.c:198,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/actions.c:196,1
    - Dst: free
      Src: /src/pacemaker/lib/common/actions.c:204,1
    - Dst: free
      Src: /src/pacemaker/lib/common/actions.c:205,1
    - Dst: free
      Src: /src/pacemaker/lib/common/actions.c:206,1
    - Dst: free
      Src: /src/pacemaker/lib/common/actions.c:207,1
    - Dst: free
      Src: /src/pacemaker/lib/common/actions.c:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 209
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 209
    functionName: pcmk__free_action
    functionSourceFile: /src/pacemaker/lib/common/actions.c
    functionUses: []
    functionsReached:
    - pcmk__free_node_copy
    - g_hash_table_destroy
    - free
    - g_list_free_full
    linkageType: ''
    returnType: void
    signature: 'void pcmk__free_action(gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/actions.c:226,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/actions.c:227,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - rsc_id
    - op_type
    - interval_ms
    argTypes:
    - char*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: pcmk__op_key
    functionSourceFile: /src/pacemaker/lib/common/actions.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__op_key(const char *rsc_id, const char *op_type, guint
      interval_ms) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/pacemaker/lib/common/actions.c:261,1
    - Dst: strncmp
      Src: /src/pacemaker/lib/common/actions.c:268,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - key
    - position
    - matches
    argTypes:
    - char*
    - size_t
    - char**
    constantsTouched: []
    func_position:
      end: 274
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 274
    functionName: match_before
    functionSourceFile: /src/pacemaker/lib/common/actions.c
    functionUses: []
    functionsReached:
    - strlen
    - strncmp
    linkageType: ''
    returnType: size_t
    signature: 'static size_t match_before(const char *key, size_t position, const
      char **matches) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/actions.c:399,1
    - Dst: strlen
      Src: /src/pacemaker/lib/common/actions.c:405,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/actions.c:406,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/actions.c:402,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/actions.c:405,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/actions.c:409,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/actions.c:410,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/actions.c:413,1
    - Dst: decode_transition_key
      Src: /src/pacemaker/lib/common/actions.c:423,1
    - Dst: free
      Src: /src/pacemaker/lib/common/actions.c:426,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 7
    argNames:
    - magic
    - uuid
    - transition_id
    - action_id
    - op_status
    - op_rc
    - target_rc
    argTypes:
    - char*
    - char**
    - int*
    - int*
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 428
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 428
    functionName: decode_transition_magic
    functionSourceFile: /src/pacemaker/lib/common/actions.c
    functionUses: []
    functionsReached:
    - decode_transition_key
    - CRM_CHECK
    - pcmk__assert_alloc
    - free
    - crm_warn
    - pcmk_rc_str
    - strlen
    - crm_err
    - sscanf
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean decode_transition_magic(const char *magic, char **uuid, int
      *transition_id, int *action_id, int *op_status, int *op_rc, int *target_rc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/actions.c:434,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/actions.c:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - transition_id
    - action_id
    - target_rc
    - node
    argTypes:
    - int
    - int
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 437
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 437
    functionName: pcmk__transition_key
    functionSourceFile: /src/pacemaker/lib/common/actions.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__transition_key(int transition_id, int action_id, int target_rc,
      const char *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decode_transition_key
      Src: /src/pacemaker/lib/common/actions.c:505,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - lrmd_event_data_t*
    constantsTouched: []
    func_position:
      end: 508
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 508
    functionName: rsc_op_expected_rc
    functionSourceFile: /src/pacemaker/lib/common/actions.c
    functionUses: []
    functionsReached:
    - decode_transition_key
    linkageType: ''
    returnType: int
    signature: 'int rsc_op_expected_rc(const lrmd_event_data_t *op) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/actions.c:581,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/actions.c:584,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/common/actions.c:584,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/actions.c:593,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - rsc_class
    - op
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 598
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 598
    functionName: crm_op_needs_metadata
    functionSourceFile: /src/pacemaker/lib/common/actions.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - pcmk_is_set
    - CRM_CHECK
    - pcmk_get_ra_caps
    linkageType: ''
    returnType: bool
    signature: 'bool crm_op_needs_metadata(const char *rsc_class, const char *op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/pacemaker/lib/common/actions.c:236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - s
    - interval_ms
    argTypes:
    - char*
    - guint*
    constantsTouched: []
    func_position:
      end: 244
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 244
    functionName: convert_interval
    functionSourceFile: /src/pacemaker/lib/common/actions.c
    functionUses: []
    functionsReached:
    - strtoul
    linkageType: ''
    returnType: gboolean
    signature: 'static inline gboolean convert_interval(const char *s, guint *interval_ms) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/pacemaker/lib/common/actions.c:280,1
    - Dst: match_before
      Src: /src/pacemaker/lib/common/actions.c:330,1
    - Dst: strndup
      Src: /src/pacemaker/lib/common/actions.c:349,1
    - Dst: match_before
      Src: /src/pacemaker/lib/common/actions.c:341,1
    - Dst: convert_interval
      Src: /src/pacemaker/lib/common/actions.c:325,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/lib/common/actions.c:350,1
    - Dst: strndup
      Src: /src/pacemaker/lib/common/actions.c:353,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/lib/common/actions.c:355,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 58
    argCount: 4
    argNames:
    - key
    - rsc_id
    - op_type
    - interval_ms
    argTypes:
    - char*
    - char**
    - char**
    - guint*
    constantsTouched: []
    func_position:
      end: 361
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 361
    functionName: parse_op_key
    functionSourceFile: /src/pacemaker/lib/common/actions.c
    functionUses: []
    functionsReached:
    - pcmk__mem_assert
    - convert_interval
    - strndup
    - strlen
    - match_before
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean parse_op_key(const char *key, char **rsc_id, char **op_type,
      guint *interval_ms) '
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 4
    argCount: 2
    argNames:
    - op
    - target_rc
    argTypes:
    - lrmd_event_data_t*
    - int
    constantsTouched: []
    func_position:
      end: 534
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 534
    functionName: did_rsc_op_fail
    functionSourceFile: /src/pacemaker/lib/common/actions.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean did_rsc_op_fail(lrmd_event_data_t * op, int target_rc) '
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 2
    argCount: 1
    argNames:
    - action
    argTypes:
    - enum pcmk__action_type
    constantsTouched: []
    func_position:
      end: 78
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 78
    functionName: pcmk__action_text
    functionSourceFile: /src/pacemaker/lib/common/actions.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__action_text(enum pcmk__action_type action) '
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 2
    argCount: 1
    argNames:
    - on_fail
    argTypes:
    - enum pcmk__on_fail
    constantsTouched: []
    func_position:
      end: 179
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 179
    functionName: pcmk__on_fail_text
    functionSourceFile: /src/pacemaker/lib/common/actions.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__on_fail_text(enum pcmk__on_fail on_fail) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/actions.c:367,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/actions.c:369,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/actions.c:370,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/actions.c:368,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - rsc_id
    - notify_type
    - op_type
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 372
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 372
    functionName: pcmk__notify_key
    functionSourceFile: /src/pacemaker/lib/common/actions.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__notify_key(const char *rsc_id, const char *notify_type,
      const char *op_type) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/actions.c:475,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/actions.c:478,1
    - Dst: strlen
      Src: /src/pacemaker/lib/common/actions.c:481,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/actions.c:482,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/actions.c:476,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/actions.c:485,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 5
    argNames:
    - key
    - uuid
    - transition_id
    - action_id
    - target_rc
    argTypes:
    - char*
    - char**
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 497
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 497
    functionName: decode_transition_key
    functionSourceFile: /src/pacemaker/lib/common/actions.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__str_copy
    - crm_warn
    - strlen
    - crm_err
    - sscanf
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean decode_transition_key(const char *key, char **uuid, int *transition_id,
      int *action_id, int *target_rc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/actions.c:553,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/actions.c:558,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/common/actions.c:556,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/actions.c:555,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/actions.c:557,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/actions.c:560,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 5
    argNames:
    - parent
    - prefix
    - task
    - interval_spec
    - timeout
    argTypes:
    - xmlNode*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 563
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 563
    functionName: crm_create_op_xml
    functionSourceFile: /src/pacemaker/lib/common/actions.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_set_id
    - CRM_CHECK
    - crm_xml_add
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *crm_create_op_xml(xmlNode *parent, const char *prefix, const
      char *task, const char *interval_spec, const char *timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/actions.c:612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - action
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 613
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 613
    functionName: pcmk__is_fencing_action
    functionSourceFile: /src/pacemaker/lib/common/actions.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__is_fencing_action(const char *action) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/tls.c:23,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tls.c:30,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tls.c:34,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tls.c:32,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - cred_type
    argTypes:
    - gnutls_credentials_type_t
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: get_gnutls_priorities
    functionSourceFile: /src/pacemaker/lib/common/tls.c
    functionUses: []
    functionsReached:
    - strdup
    - pcmk__env_option
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'static char *get_gnutls_priorities(gnutls_credentials_type_t cred_type) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/tls.c:57,1
    - Dst: gnutls_certificate_set_x509_trust_file
      Src: /src/pacemaker/lib/common/tls.c:65,1
    - Dst: gnutls_strerror
      Src: /src/pacemaker/lib/common/tls.c:69,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/tls.c:69,1
    - Dst: gnutls_certificate_set_x509_crl_file
      Src: /src/pacemaker/lib/common/tls.c:77,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/tls.c:81,1
    - Dst: gnutls_strerror
      Src: /src/pacemaker/lib/common/tls.c:82,1
    - Dst: gnutls_certificate_set_x509_key_file2
      Src: /src/pacemaker/lib/common/tls.c:90,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/tls.c:95,1
    - Dst: gnutls_strerror
      Src: /src/pacemaker/lib/common/tls.c:96,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - tls
    argTypes:
    - pcmk__tls_t*
    constantsTouched: []
    func_position:
      end: 101
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 101
    functionName: tls_load_x509_data
    functionSourceFile: /src/pacemaker/lib/common/tls.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - gnutls_certificate_set_x509_trust_file
    - gnutls_strerror
    - gnutls_certificate_set_x509_crl_file
    - gnutls_certificate_set_x509_key_file2
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int tls_load_x509_data(pcmk__tls_t *tls) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/tls.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - level
    - msg
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: _gnutls_log_func
    functionSourceFile: /src/pacemaker/lib/common/tls.c
    functionUses: []
    functionsReached:
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void _gnutls_log_func(int level, const char *msg) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__free_tls
      Src: /src/pacemaker/lib/common/tls.c:208,1
    - Dst: gnutls_anon_allocate_client_credentials
      Src: /src/pacemaker/lib/common/tls.c:223,1
    - Dst: getenv
      Src: /src/pacemaker/lib/common/tls.c:236,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/tls.c:230,1
    - Dst: gnutls_certificate_set_dh_params
      Src: /src/pacemaker/lib/common/tls.c:252,1
    - Dst: gnutls_psk_allocate_server_credentials
      Src: /src/pacemaker/lib/common/tls.c:265,1
    - Dst: gnutls_psk_allocate_client_credentials
      Src: /src/pacemaker/lib/common/tls.c:269,1
    - Dst: gnutls_global_set_log_level
      Src: /src/pacemaker/lib/common/tls.c:202,1
    - Dst: gnutls_anon_set_server_dh_params
      Src: /src/pacemaker/lib/common/tls.c:220,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/tls.c:229,1
    - Dst: getenv
      Src: /src/pacemaker/lib/common/tls.c:231,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/tls.c:244,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/tls.c:245,1
    - Dst: gnutls_certificate_allocate_credentials
      Src: /src/pacemaker/lib/common/tls.c:249,1
    - Dst: gnutls_psk_set_server_dh_params
      Src: /src/pacemaker/lib/common/tls.c:266,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/tls.c:190,1
    - Dst: signal
      Src: /src/pacemaker/lib/common/tls.c:192,1
    - Dst: pcmk__init_tls_dh
      Src: /src/pacemaker/lib/common/tls.c:206,1
    - Dst: gnutls_anon_allocate_server_credentials
      Src: /src/pacemaker/lib/common/tls.c:219,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/tls.c:239,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/tls.c:240,1
    - Dst: getenv
      Src: /src/pacemaker/lib/common/tls.c:246,1
    - Dst: pcmk__free_tls
      Src: /src/pacemaker/lib/common/tls.c:259,1
    - Dst: gnutls_global_init
      Src: /src/pacemaker/lib/common/tls.c:201,1
    - Dst: gnutls_global_set_log_function
      Src: /src/pacemaker/lib/common/tls.c:203,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/tls.c:235,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/tls.c:234,1
    - Dst: getenv
      Src: /src/pacemaker/lib/common/tls.c:241,1
    - Dst: tls_load_x509_data
      Src: /src/pacemaker/lib/common/tls.c:257,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 3
    argNames:
    - tls
    - server
    - cred_type
    argTypes:
    - pcmk__tls_t**
    - bool
    - gnutls_credentials_type_t
    constantsTouched: []
    func_position:
      end: 274
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 274
    functionName: pcmk__init_tls
    functionSourceFile: /src/pacemaker/lib/common/tls.c
    functionUses: []
    functionsReached:
    - pcmk__str_empty
    - pcmk__free_tls
    - gnutls_global_set_log_function
    - gnutls_certificate_allocate_credentials
    - signal
    - gnutls_psk_allocate_client_credentials
    - gnutls_certificate_set_dh_params
    - tls_load_x509_data
    - gnutls_anon_allocate_client_credentials
    - gnutls_psk_set_server_dh_params
    - pcmk__assert_alloc
    - getenv
    - gnutls_anon_set_server_dh_params
    - gnutls_global_init
    - gnutls_psk_allocate_server_credentials
    - gnutls_global_set_log_level
    - pcmk__env_option
    - pcmk__init_tls_dh
    - gnutls_anon_allocate_server_credentials
    linkageType: ''
    returnType: int
    signature: 'int pcmk__init_tls(pcmk__tls_t **tls, bool server, gnutls_credentials_type_t
      cred_type) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: get_gnutls_priorities
      Src: /src/pacemaker/lib/common/tls.c:340,1
    - Dst: gnutls_init
      Src: /src/pacemaker/lib/common/tls.c:329,1
    - Dst: GINT_TO_POINTER
      Src: /src/pacemaker/lib/common/tls.c:352,1
    - Dst: gnutls_credentials_set
      Src: /src/pacemaker/lib/common/tls.c:356,1
    - Dst: gnutls_credentials_set
      Src: /src/pacemaker/lib/common/tls.c:358,1
    - Dst: gnutls_credentials_set
      Src: /src/pacemaker/lib/common/tls.c:360,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/tls.c:366,1
    - Dst: gnutls_certificate_server_set_request
      Src: /src/pacemaker/lib/common/tls.c:380,1
    - Dst: gnutls_credentials_set
      Src: /src/pacemaker/lib/common/tls.c:364,1
    - Dst: gnutls_deinit
      Src: /src/pacemaker/lib/common/tls.c:400,1
    - Dst: gnutls_priority_set_direct
      Src: /src/pacemaker/lib/common/tls.c:346,1
    - Dst: gnutls_transport_set_ptr
      Src: /src/pacemaker/lib/common/tls.c:351,1
    - Dst: gnutls_credentials_set
      Src: /src/pacemaker/lib/common/tls.c:362,1
    - Dst: gnutls_strerror
      Src: /src/pacemaker/lib/common/tls.c:397,1
    - Dst: tls_cred_str
      Src: /src/pacemaker/lib/common/tls.c:395,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tls.c:398,1
    - Dst: gnutls_certificate_set_verify_function
      Src: /src/pacemaker/lib/common/tls.c:388,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tls.c:375,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/tls.c:394,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/tls.c:323,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    argCount: 2
    argNames:
    - tls
    - csock
    argTypes:
    - pcmk__tls_t*
    - int
    constantsTouched: []
    func_position:
      end: 403
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 403
    functionName: pcmk__new_tls_session
    functionSourceFile: /src/pacemaker/lib/common/tls.c
    functionUses: []
    functionsReached:
    - get_gnutls_priorities
    - CRM_CHECK
    - gnutls_certificate_set_verify_function
    - gnutls_credentials_set
    - tls_cred_str
    - gnutls_transport_set_ptr
    - GINT_TO_POINTER
    - gnutls_strerror
    - free
    - gnutls_priority_set_direct
    - gnutls_certificate_server_set_request
    - gnutls_init
    - crm_err
    - gnutls_deinit
    linkageType: ''
    returnType: gnutls_session_t
    signature: 'gnutls_session_t pcmk__new_tls_session(pcmk__tls_t *tls, int csock) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/tls.c:432,1
    - Dst: gnutls_handshake
      Src: /src/pacemaker/lib/common/tls.c:436,1
    - Dst: gnutls_strerror
      Src: /src/pacemaker/lib/common/tls.c:446,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/tls.c:445,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - client
    argTypes:
    - pcmk__client_t*
    constantsTouched: []
    func_position:
      end: 450
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 450
    functionName: pcmk__read_handshake_data
    functionSourceFile: /src/pacemaker/lib/common/tls.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - gnutls_strerror
    - crm_err
    - gnutls_handshake
    linkageType: ''
    returnType: int
    signature: 'int pcmk__read_handshake_data(const pcmk__client_t *client) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_psk_set_server_credentials_function
      Src: /src/pacemaker/lib/common/tls.c:464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - tls
    - cb
    argTypes:
    - pcmk__tls_t*
    - gnutls_psk_server_credentials_function*
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: pcmk__tls_add_psk_callback
    functionSourceFile: /src/pacemaker/lib/common/tls.c
    functionUses: []
    functionsReached:
    - gnutls_psk_set_server_credentials_function
    linkageType: ''
    returnType: void
    signature: 'void pcmk__tls_add_psk_callback(pcmk__tls_t *tls, gnutls_psk_server_credentials_function
      *cb) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_handshake
      Src: /src/pacemaker/lib/common/tls.c:517,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 2
    argNames:
    - remote
    - gnutls_rc
    argTypes:
    - pcmk__remote_t*
    - int*
    constantsTouched: []
    func_position:
      end: 539
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 539
    functionName: pcmk__tls_client_try_handshake
    functionSourceFile: /src/pacemaker/lib/common/tls.c
    functionUses: []
    functionsReached:
    - gnutls_handshake
    linkageType: ''
    returnType: int
    signature: 'int pcmk__tls_client_try_handshake(pcmk__remote_t *remote, int *gnutls_rc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - cred_type
    argTypes:
    - gnutls_credentials_type_t
    constantsTouched: []
    func_position:
      end: 50
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 50
    functionName: tls_cred_str
    functionSourceFile: /src/pacemaker/lib/common/tls.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *tls_cred_str(gnutls_credentials_type_t cred_type) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_dh_params_deinit
      Src: /src/pacemaker/lib/common/tls.c:156,1
    - Dst: gnutls_anon_free_client_credentials
      Src: /src/pacemaker/lib/common/tls.c:163,1
    - Dst: gnutls_psk_free_server_credentials
      Src: /src/pacemaker/lib/common/tls.c:169,1
    - Dst: gnutls_anon_free_server_credentials
      Src: /src/pacemaker/lib/common/tls.c:161,1
    - Dst: gnutls_certificate_free_credentials
      Src: /src/pacemaker/lib/common/tls.c:166,1
    - Dst: gnutls_psk_free_client_credentials
      Src: /src/pacemaker/lib/common/tls.c:171,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tls.c:175,1
    - Dst: gnutls_global_deinit
      Src: /src/pacemaker/lib/common/tls.c:178,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - tls
    argTypes:
    - pcmk__tls_t*
    constantsTouched: []
    func_position:
      end: 179
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 179
    functionName: pcmk__free_tls
    functionSourceFile: /src/pacemaker/lib/common/tls.c
    functionUses: []
    functionsReached:
    - gnutls_certificate_free_credentials
    - gnutls_anon_free_server_credentials
    - free
    - gnutls_psk_free_server_credentials
    - gnutls_dh_params_deinit
    - gnutls_global_deinit
    - gnutls_anon_free_client_credentials
    - gnutls_psk_free_client_credentials
    linkageType: ''
    returnType: void
    signature: 'void pcmk__free_tls(pcmk__tls_t *tls) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_dh_params_init
      Src: /src/pacemaker/lib/common/tls.c:283,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/common/tls.c:295,1
    - Dst: gnutls_sec_param_to_pk_bits
      Src: /src/pacemaker/lib/common/tls.c:288,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/tls.c:295,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/tls.c:300,1
    - Dst: gnutls_dh_params_generate2
      Src: /src/pacemaker/lib/common/tls.c:302,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/tls.c:310,1
    - Dst: gnutls_strerror
      Src: /src/pacemaker/lib/common/tls.c:311,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - dh_params
    argTypes:
    - gnutls_dh_params_t*
    constantsTouched: []
    func_position:
      end: 313
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 313
    functionName: pcmk__init_tls_dh
    functionSourceFile: /src/pacemaker/lib/common/tls.c
    functionUses: []
    functionsReached:
    - gnutls_sec_param_to_pk_bits
    - gnutls_dh_params_init
    - pcmk__env_option
    - gnutls_strerror
    - crm_info
    - gnutls_dh_params_generate2
    - pcmk__scan_min_int
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int pcmk__init_tls_dh(gnutls_dh_params_t *dh_params) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_psk_set_client_credentials
      Src: /src/pacemaker/lib/common/tls.c:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - tls
    - key
    argTypes:
    - pcmk__tls_t*
    - gnutls_datum_t*
    constantsTouched: []
    func_position:
      end: 458
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 458
    functionName: pcmk__tls_add_psk_key
    functionSourceFile: /src/pacemaker/lib/common/tls.c
    functionUses: []
    functionsReached:
    - gnutls_psk_set_client_credentials
    linkageType: ''
    returnType: void
    signature: 'void pcmk__tls_add_psk_key(pcmk__tls_t *tls, gnutls_datum_t *key) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_certificate_type_get
      Src: /src/pacemaker/lib/common/tls.c:478,1
    - Dst: gnutls_x509_crt_import
      Src: /src/pacemaker/lib/common/tls.c:488,1
    - Dst: gnutls_certificate_get_ours
      Src: /src/pacemaker/lib/common/tls.c:482,1
    - Dst: gnutls_x509_crt_get_expiration_time
      Src: /src/pacemaker/lib/common/tls.c:490,1
    - Dst: gnutls_x509_crt_init
      Src: /src/pacemaker/lib/common/tls.c:487,1
    - Dst: time
      Src: /src/pacemaker/lib/common/tls.c:493,1
    - Dst: pcmk__copy_timet
      Src: /src/pacemaker/lib/common/tls.c:497,1
    - Dst: crm_time_log
      Src: /src/pacemaker/lib/common/tls.c:499,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tls.c:501,1
    - Dst: gnutls_x509_crt_deinit
      Src: /src/pacemaker/lib/common/tls.c:505,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - session
    argTypes:
    - gnutls_session_t
    constantsTouched: []
    func_position:
      end: 506
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 506
    functionName: pcmk__tls_check_cert_expiration
    functionSourceFile: /src/pacemaker/lib/common/tls.c
    functionUses: []
    functionsReached:
    - gnutls_x509_crt_deinit
    - gnutls_x509_crt_get_expiration_time
    - crm_time_log
    - gnutls_x509_crt_init
    - time
    - gnutls_x509_crt_import
    - pcmk__copy_timet
    - gnutls_certificate_get_ours
    - gnutls_certificate_type_get
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'void pcmk__tls_check_cert_expiration(gnutls_session_t session) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/lib/common/tls.c:545,1
    - Dst: time
      Src: /src/pacemaker/lib/common/tls.c:553,1
    - Dst: pcmk__tls_client_try_handshake
      Src: /src/pacemaker/lib/common/tls.c:548,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - remote
    - timeout_sec
    - gnutls_rc
    argTypes:
    - pcmk__remote_t*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 556
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 556
    functionName: pcmk__tls_client_handshake
    functionSourceFile: /src/pacemaker/lib/common/tls.c
    functionUses: []
    functionsReached:
    - pcmk__tls_client_try_handshake
    - time
    linkageType: ''
    returnType: int
    signature: 'int pcmk__tls_client_handshake(pcmk__remote_t *remote, int timeout_sec,
      int *gnutls_rc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/tls.c:566,1
    - Dst: getenv
      Src: /src/pacemaker/lib/common/tls.c:567,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/tls.c:566,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/tls.c:567,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/tls.c:568,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/tls.c:568,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/tls.c:569,1
    - Dst: getenv
      Src: /src/pacemaker/lib/common/tls.c:569,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/tls.c:570,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/tls.c:570,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/tls.c:571,1
    - Dst: getenv
      Src: /src/pacemaker/lib/common/tls.c:571,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 572
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 572
    functionName: pcmk__x509_enabled
    functionSourceFile: /src/pacemaker/lib/common/tls.c
    functionUses: []
    functionsReached:
    - pcmk__env_option
    - getenv
    - pcmk__str_empty
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__x509_enabled(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_certificate_verify_peers3
      Src: /src/pacemaker/lib/common/tls.c:119,1
    - Dst: gnutls_certificate_type_get
      Src: /src/pacemaker/lib/common/tls.c:134,1
    - Dst: gnutls_certificate_verification_status_print
      Src: /src/pacemaker/lib/common/tls.c:135,1
    - Dst: gnutls_strerror
      Src: /src/pacemaker/lib/common/tls.c:125,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/tls.c:125,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/tls.c:136,1
    - Dst: gnutls_free
      Src: /src/pacemaker/lib/common/tls.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - session
    argTypes:
    - gnutls_session_t
    constantsTouched: []
    func_position:
      end: 139
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 139
    functionName: verify_peer_cert
    functionSourceFile: /src/pacemaker/lib/common/tls.c
    functionUses: []
    functionsReached:
    - gnutls_certificate_verification_status_print
    - gnutls_free
    - gnutls_certificate_verify_peers3
    - gnutls_strerror
    - gnutls_certificate_type_get
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int verify_peer_cert(gnutls_session_t session) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/tls.c:421,1
    - Dst: GPOINTER_TO_INT
      Src: /src/pacemaker/lib/common/tls.c:424,1
    - Dst: gnutls_transport_get_ptr
      Src: /src/pacemaker/lib/common/tls.c:423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - remote
    argTypes:
    - pcmk__remote_t*
    constantsTouched: []
    func_position:
      end: 425
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 425
    functionName: pcmk__tls_get_client_sock
    functionSourceFile: /src/pacemaker/lib/common/tls.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - GPOINTER_TO_INT
    - gnutls_transport_get_ptr
    linkageType: ''
    returnType: int
    signature: 'int pcmk__tls_get_client_sock(const pcmk__remote_t *remote) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/output_none.c:34,1
    - Dst: none_init
      Src: /src/pacemaker/lib/common/output_none.c:36,1
    - Dst: none_free_priv
      Src: /src/pacemaker/lib/common/output_none.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: none_reset
    functionSourceFile: /src/pacemaker/lib/common/output_none.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - none_free_priv
    - none_init
    linkageType: ''
    returnType: void
    signature: 'static void none_reset(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: none_init
    functionSourceFile: /src/pacemaker/lib/common/output_none.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool none_init(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - out
    - extended
    argTypes:
    - pcmk__output_t*
    - bool
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: none_version
    functionSourceFile: /src/pacemaker/lib/common/output_none.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void none_version(pcmk__output_t *out, bool extended) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: none_err
    functionSourceFile: /src/pacemaker/lib/common/output_none.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void none_err(pcmk__output_t *out, const char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: none_info
    functionSourceFile: /src/pacemaker/lib/common/output_none.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int none_info(pcmk__output_t *out, const char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: none_increment_list
    functionSourceFile: /src/pacemaker/lib/common/output_none.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void none_increment_list(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: none_is_quiet
    functionSourceFile: /src/pacemaker/lib/common/output_none.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool none_is_quiet(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - out
    - end
    argTypes:
    - pcmk__output_t*
    - bool
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: none_progress
    functionSourceFile: /src/pacemaker/lib/common/output_none.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void none_progress(pcmk__output_t *out, bool end) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: none_free_priv
    functionSourceFile: /src/pacemaker/lib/common/output_none.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void none_free_priv(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 4
    argNames:
    - out
    - exit_status
    - proc_stdout
    - proc_stderr
    argTypes:
    - pcmk__output_t*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: none_subprocess_output
    functionSourceFile: /src/pacemaker/lib/common/output_none.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void none_subprocess_output(pcmk__output_t *out, int exit_status,
      const char *proc_stdout, const char *proc_stderr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 4
    argNames:
    - out
    - exit_status
    - print
    - copy_dest
    argTypes:
    - pcmk__output_t*
    - crm_exit_t
    - bool
    - void**
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: none_finish
    functionSourceFile: /src/pacemaker/lib/common/output_none.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void none_finish(pcmk__output_t *out, crm_exit_t exit_status,
      bool print, void **copy_dest) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 3
    argNames:
    - out
    - name
    - buf
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: none_output_xml
    functionSourceFile: /src/pacemaker/lib/common/output_none.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void none_output_xml(pcmk__output_t *out, const char *name,
      const char *buf) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 4
    argNames:
    - out
    - singular_noun
    - plural_noun
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: none_begin_list
    functionSourceFile: /src/pacemaker/lib/common/output_none.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void none_begin_list(pcmk__output_t *out, const char *singular_noun,
      const char *plural_noun, const char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 3
    argNames:
    - out
    - id
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: none_list_item
    functionSourceFile: /src/pacemaker/lib/common/output_none.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void none_list_item(pcmk__output_t *out, const char *id, const
      char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: none_end_list
    functionSourceFile: /src/pacemaker/lib/common/output_none.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void none_end_list(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: none_spacer
    functionSourceFile: /src/pacemaker/lib/common/output_none.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void none_spacer(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 3
    argNames:
    - prompt
    - echo
    - dest
    argTypes:
    - char*
    - bool
    - char**
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: none_prompt
    functionSourceFile: /src/pacemaker/lib/common/output_none.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void none_prompt(const char *prompt, bool echo, char **dest) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/output_none.c:112,1
    - Dst: pcmk__quote_cmdline
      Src: /src/pacemaker/lib/common/output_none.c:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 147
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 147
    functionName: pcmk__mk_none_output
    functionSourceFile: /src/pacemaker/lib/common/output_none.c
    functionUses: []
    functionsReached:
    - calloc
    - pcmk__quote_cmdline
    linkageType: ''
    returnType: pcmk__output_t*
    signature: 'pcmk__output_t *pcmk__mk_none_output(char **argv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/scheduler.c:33,1
    - Dst: free
      Src: /src/pacemaker/lib/common/scheduler.c:40,1
    - Dst: calloc
      Src: /src/pacemaker/lib/common/scheduler.c:38,1
    - Dst: pcmk__set_scheduler_defaults
      Src: /src/pacemaker/lib/common/scheduler.c:43,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: pcmk_new_scheduler
    functionSourceFile: /src/pacemaker/lib/common/scheduler.c
    functionUses: []
    functionsReached:
    - calloc
    - free
    - pcmk__set_scheduler_defaults
    linkageType: ''
    returnType: pcmk_scheduler_t*
    signature: 'pcmk_scheduler_t *pcmk_new_scheduler(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_reset_scheduler
      Src: /src/pacemaker/lib/common/scheduler.c:195,1
    - Dst: free
      Src: /src/pacemaker/lib/common/scheduler.c:198,1
    - Dst: free
      Src: /src/pacemaker/lib/common/scheduler.c:197,1
    - Dst: free
      Src: /src/pacemaker/lib/common/scheduler.c:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 200
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 200
    functionName: pcmk_free_scheduler
    functionSourceFile: /src/pacemaker/lib/common/scheduler.c
    functionUses: []
    functionsReached:
    - pcmk_reset_scheduler
    - free
    linkageType: ''
    returnType: void
    signature: 'void pcmk_free_scheduler(pcmk_scheduler_t *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: pcmk_get_no_quorum_policy
    functionSourceFile: /src/pacemaker/lib/common/scheduler.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: enum pe_quorum_policy
    signature: 'enum pe_quorum_policy pcmk_get_no_quorum_policy(const pcmk_scheduler_t
      *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/scheduler.c:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: pcmk_has_quorum
    functionSourceFile: /src/pacemaker/lib/common/scheduler.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk_has_quorum(const pcmk_scheduler_t *scheduler) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/lib/common/scheduler.c:302,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/scheduler.c:305,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/scheduler.c:306,1
    - Dst: crm_time_get_seconds_since_epoch
      Src: /src/pacemaker/lib/common/scheduler.c:308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 309
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 309
    functionName: pcmk__scheduler_epoch_time
    functionSourceFile: /src/pacemaker/lib/common/scheduler.c
    functionUses: []
    functionsReached:
    - crm_time_new
    - crm_time_get_seconds_since_epoch
    - crm_trace
    - time
    linkageType: ''
    returnType: time_t
    signature: 'time_t pcmk__scheduler_epoch_time(pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/scheduler.c:364,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/scheduler.c:366,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/scheduler.c:367,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/scheduler.c:375,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/scheduler.c:368,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 4
    argNames:
    - rsc_history
    - rsc
    - node
    - flag
    argTypes:
    - xmlNode*
    - pcmk_resource_t*
    - pcmk_node_t*
    - enum pcmk__check_parameters
    constantsTouched: []
    func_position:
      end: 376
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 376
    functionName: pcmk__add_param_check
    functionSourceFile: /src/pacemaker/lib/common/scheduler.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__assert_alloc
    - g_list_prepend
    - pcmk__xe_id
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void pcmk__add_param_check(const xmlNode *rsc_history, pcmk_resource_t
      *rsc, pcmk_node_t *node, enum pcmk__check_parameters flag) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/scheduler.c:58,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/common/scheduler.c:67,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/lib/common/scheduler.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 75
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 75
    functionName: pcmk__set_scheduler_defaults
    functionSourceFile: /src/pacemaker/lib/common/scheduler.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__set_scheduler_flags
    linkageType: ''
    returnType: void
    signature: 'void pcmk__set_scheduler_defaults(pcmk_scheduler_t *scheduler) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/scheduler.c:101,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/scheduler.c:127,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/scheduler.c:123,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/scheduler.c:106,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/scheduler.c:110,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/scheduler.c:131,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/scheduler.c:135,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/scheduler.c:139,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/scheduler.c:143,1
    - Dst: pcmk__free_param_checks
      Src: /src/pacemaker/lib/common/scheduler.c:146,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/scheduler.c:158,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/scheduler.c:172,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/scheduler.c:177,1
    - Dst: pcmk__set_scheduler_defaults
      Src: /src/pacemaker/lib/common/scheduler.c:180,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/scheduler.c:148,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/scheduler.c:151,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/scheduler.c:155,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/scheduler.c:163,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 63
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 184
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 184
    functionName: pcmk_reset_scheduler
    functionSourceFile: /src/pacemaker/lib/common/scheduler.c
    functionUses: []
    functionsReached:
    - g_list_free
    - pcmk__set_scheduler_defaults
    - g_hash_table_destroy
    - pcmk__free_param_checks
    - g_list_free_full
    - pcmk__xml_free
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'void pcmk_reset_scheduler(pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: pcmk_get_dc
    functionSourceFile: /src/pacemaker/lib/common/scheduler.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'pcmk_node_t *pcmk_get_dc(const pcmk_scheduler_t *scheduler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - scheduler
    - cib
    argTypes:
    - pcmk_scheduler_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 252
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 252
    functionName: pcmk_set_scheduler_cib
    functionSourceFile: /src/pacemaker/lib/common/scheduler.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int pcmk_set_scheduler_cib(pcmk_scheduler_t *scheduler, xmlNode *cib) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_node_in_list
      Src: /src/pacemaker/lib/common/scheduler.c:286,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - scheduler
    - node_name
    argTypes:
    - pcmk_scheduler_t*
    - char*
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: pcmk_find_node
    functionSourceFile: /src/pacemaker/lib/common/scheduler.c
    functionUses: []
    functionsReached:
    - pcmk__find_node_in_list
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'pcmk_node_t *pcmk_find_node(const pcmk_scheduler_t *scheduler, const
      char *node_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/scheduler.c:323,1
    - Dst: ctime
      Src: /src/pacemaker/lib/common/scheduler.c:330,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/scheduler.c:329,1
    - Dst: pcmk__scheduler_epoch_time
      Src: /src/pacemaker/lib/common/scheduler.c:325,1
    - Dst: pcmk__trim
      Src: /src/pacemaker/lib/common/scheduler.c:330,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/scheduler.c:331,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - recheck
    - scheduler
    - reason
    argTypes:
    - time_t
    - pcmk_scheduler_t*
    - char*
    constantsTouched: []
    func_position:
      end: 333
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 333
    functionName: pcmk__update_recheck_time
    functionSourceFile: /src/pacemaker/lib/common/scheduler.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__s
    - ctime
    - pcmk__trim
    - pcmk__scheduler_epoch_time
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'void pcmk__update_recheck_time(time_t recheck, pcmk_scheduler_t *scheduler,
      const char *reason) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/scheduler.c:391,1
    - Dst: cb
      Src: /src/pacemaker/lib/common/scheduler.c:397,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 2
    argNames:
    - scheduler
    - (*cb)
    argTypes:
    - pcmk_scheduler_t*
    - void
    constantsTouched: []
    func_position:
      end: 400
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 400
    functionName: pcmk__foreach_param_check
    functionSourceFile: /src/pacemaker/lib/common/scheduler.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - cb
    linkageType: ''
    returnType: void
    signature: 'void pcmk__foreach_param_check(pcmk_scheduler_t *scheduler, void (*cb)(pcmk_resource_t*,
      pcmk_node_t*, const xmlNode*, enum pcmk__check_parameters)) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/scheduler.c:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - scheduler
    argTypes:
    - pcmk_scheduler_t*
    constantsTouched: []
    func_position:
      end: 415
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 415
    functionName: pcmk__free_param_checks
    functionSourceFile: /src/pacemaker/lib/common/scheduler.c
    functionUses: []
    functionsReached:
    - g_list_free_full
    linkageType: ''
    returnType: void
    signature: 'void pcmk__free_param_checks(pcmk_scheduler_t *scheduler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/action_relation.c:27,1
    - Dst: free
      Src: /src/pacemaker/lib/common/action_relation.c:28,1
    - Dst: free
      Src: /src/pacemaker/lib/common/action_relation.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: pcmk__free_action_relation
    functionSourceFile: /src/pacemaker/lib/common/action_relation.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void pcmk__free_action_relation(gpointer user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/results.c:93,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - type
    - lower
    - upper
    argTypes:
    - enum pcmk_result_type
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 114
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 114
    functionName: pcmk__result_bounds
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    linkageType: ''
    returnType: int
    signature: 'int pcmk__result_bounds(enum pcmk_result_type type, int *lower, int
      *upper) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strerror
      Src: /src/pacemaker/lib/common/results.c:654,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 13
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 656
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 656
    functionName: pcmk_rc_str
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached:
    - strerror
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk_rc_str(int rc) '
  - BBCount: 46
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 2
    argCount: 1
    argNames:
    - exit_code
    argTypes:
    - crm_exit_t
    constantsTouched: []
    func_position:
      end: 753
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 753
    functionName: crm_exit_name
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *crm_exit_name(crm_exit_t exit_code) '
  - BBCount: 62
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 3
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 941
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 941
    functionName: pcmk_rc2exitc
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: crm_exit_t
    signature: 'crm_exit_t pcmk_rc2exitc(int rc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_assertion_as
      Src: /src/pacemaker/lib/common/results.c:152,1
    - Dst: abort
      Src: /src/pacemaker/lib/common/results.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 4
    argNames:
    - file
    - function
    - line
    - assert_condition
    argTypes:
    - char*
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: pcmk__abort_as
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached:
    - abort
    - log_assertion_as
    linkageType: ''
    returnType: void
    signature: '_Noreturn void pcmk__abort_as(const char *file, const char *function,
      int line, const char *assert_condition) '
  - BBCount: 47
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 6
    argCount: 1
    argNames:
    - exit_code
    argTypes:
    - crm_exit_t
    constantsTouched: []
    func_position:
      end: 809
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 809
    functionName: crm_exit_str
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *crm_exit_str(crm_exit_t exit_code) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_errorname
      Src: /src/pacemaker/lib/common/results.c:49,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/results.c:54,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/common/results.c:50,1
    - Dst: pcmk_rc_name
      Src: /src/pacemaker/lib/common/results.c:53,1
    - Dst: crm_exit_name
      Src: /src/pacemaker/lib/common/results.c:57,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/common/results.c:58,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 20
    argCount: 4
    argNames:
    - code
    - type
    - name
    - desc
    argTypes:
    - int
    - enum pcmk_result_type
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 72
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 72
    functionName: pcmk_result_get_strings
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached:
    - crm_exit_name
    - pcmk_errorname
    - crm_exit_str
    - pcmk_rc_str
    - pcmk_rc_name
    - pcmk_strerror
    linkageType: ''
    returnType: int
    signature: 'int pcmk_result_get_strings(int code, enum pcmk_result_type type,
      const char **name, const char **desc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_enable_stderr
      Src: /src/pacemaker/lib/common/results.c:130,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/results.c:132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 4
    argNames:
    - file
    - function
    - line
    - assert_condition
    argTypes:
    - char*
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 134
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: log_assertion_as
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached:
    - crm_enable_stderr
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void log_assertion_as(const char *file, const char *function,
      int line, const char *assert_condition) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__abort_as
      Src: /src/pacemaker/lib/common/results.c:218,1
    - Dst: log_assertion_as
      Src: /src/pacemaker/lib/common/results.c:222,1
    - Dst: fail_assert_as
      Src: /src/pacemaker/lib/common/results.c:220,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 6
    argNames:
    - file
    - function
    - line
    - assert_condition
    - do_core
    - do_fork
    argTypes:
    - char*
    - char*
    - int
    - char*
    - gboolean
    - gboolean
    constantsTouched: []
    func_position:
      end: 224
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 224
    functionName: crm_abort
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached:
    - fail_assert_as
    - pcmk__abort_as
    - log_assertion_as
    linkageType: ''
    returnType: void
    signature: 'void crm_abort(const char *file, const char *function, int line, const
      char *assert_condition, gboolean do_core, gboolean do_fork) '
  - BBCount: 122
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 125
    EdgeCount: 125
    ICount: 9
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 606
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 606
    functionName: pcmk_rc_name
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk_rc_name(int rc) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/pacemaker/lib/common/results.c:676,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 4
    argCount: 1
    argNames:
    - legacy_rc
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 698
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 698
    functionName: pcmk_legacy2rc
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached:
    - abs
    linkageType: ''
    returnType: int
    signature: 'int pcmk_legacy2rc(int legacy_rc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/results.c:1182,1
    - Dst: free
      Src: /src/pacemaker/lib/common/results.c:1188,1
    - Dst: free
      Src: /src/pacemaker/lib/common/results.c:1185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - result
    argTypes:
    - pcmk__action_result_t*
    constantsTouched: []
    func_position:
      end: 1190
      start: 1175
    functionDepth: 0
    functionLinenumber: 1175
    functionLinenumberEnd: 1190
    functionName: pcmk__reset_result
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void pcmk__reset_result(pcmk__action_result_t *result) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/pacemaker/lib/common/results.c:1133,1
    - Dst: free
      Src: /src/pacemaker/lib/common/results.c:1138,1
    - Dst: vasprintf
      Src: /src/pacemaker/lib/common/results.c:1134,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/results.c:1136,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/results.c:1135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - result
    - exit_status
    - exec_status
    - format
    - '...'
    argTypes:
    - pcmk__action_result_t*
    - int
    - enum pcmk_exec_status
    - char*
    constantsTouched: []
    func_position:
      end: 1140
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1140
    functionName: pcmk__format_result
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached:
    - va_end
    - free
    - va_start
    - vasprintf
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'void pcmk__format_result(pcmk__action_result_t *result, int exit_status,
      enum pcmk_exec_status exec_status, const char *format, ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 670
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 670
    functionName: pcmk_rc2legacy
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int pcmk_rc2legacy(int rc) '
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 3
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 972
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 972
    functionName: pcmk_rc2ocf
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: enum ocf_exitcode
    signature: 'enum ocf_exitcode pcmk_rc2ocf(int rc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/results.c:1162,1
    - Dst: free
      Src: /src/pacemaker/lib/common/results.c:1165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - result
    - out
    - err
    argTypes:
    - pcmk__action_result_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1167
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1167
    functionName: pcmk__set_result_output
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void pcmk__set_result_output(pcmk__action_result_t *result, char *out,
      char *err) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/pacemaker/lib/common/results.c:232,1
    - Dst: pcmk_rc_name
      Src: /src/pacemaker/lib/common/results.c:250,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 5
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 252
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 252
    functionName: pcmk_errorname
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached:
    - abs
    - pcmk_rc_name
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk_errorname(int rc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/results.c:1066,1
    - Dst: pcmk_common_cleanup
      Src: /src/pacemaker/lib/common/results.c:1069,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/results.c:1067,1
    - Dst: crm_exit_name
      Src: /src/pacemaker/lib/common/results.c:1068,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/common/results.c:1068,1
    - Dst: exit
      Src: /src/pacemaker/lib/common/results.c:1070,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - exit_status
    argTypes:
    - crm_exit_t
    constantsTouched: []
    func_position:
      end: 1071
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1071
    functionName: crm_exit
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached:
    - crm_exit_name
    - crm_exit_str
    - pcmk__s
    - exit
    - crm_info
    - pcmk_common_cleanup
    linkageType: ''
    returnType: crm_exit_t
    signature: 'crm_exit_t crm_exit(crm_exit_t exit_status) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__abort_as
      Src: /src/pacemaker/lib/common/results.c:177,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/results.c:192,1
    - Dst: abort
      Src: /src/pacemaker/lib/common/results.c:188,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/results.c:183,1
    - Dst: fork
      Src: /src/pacemaker/lib/common/results.c:180,1
    - Dst: crm_write_blackbox
      Src: /src/pacemaker/lib/common/results.c:194,1
    - Dst: waitpid
      Src: /src/pacemaker/lib/common/results.c:196,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/results.c:202,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/results.c:205,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/results.c:206,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 4
    argNames:
    - file
    - function
    - line
    - assert_condition
    argTypes:
    - char*
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 210
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 210
    functionName: fail_assert_as
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached:
    - fork
    - crm_trace
    - waitpid
    - pcmk__abort_as
    - crm_write_blackbox
    - pcmk_rc_str
    - crm_warn
    - abort
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void fail_assert_as(const char *file, const char *function,
      int line, const char *assert_condition) '
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 2
    argCount: 1
    argNames:
    - bz2
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1054
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1054
    functionName: pcmk__bzlib2rc
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int pcmk__bzlib2rc(int bz2) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/results.c:1202,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/results.c:1205,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/results.c:1207,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/results.c:1206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - pcmk__action_result_t*
    - pcmk__action_result_t*
    constantsTouched: []
    func_position:
      end: 1208
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1208
    functionName: pcmk__copy_result
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - CRM_CHECK
    linkageType: ''
    returnType: void
    signature: 'void pcmk__copy_result(const pcmk__action_result_t *src, pcmk__action_result_t
      *dst) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/results.c:258,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/common/results.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: pcmk_strerror
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached:
    - pcmk_legacy2rc
    - pcmk_rc_str
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk_strerror(int rc) '
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 2
    argCount: 1
    argNames:
    - gai
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1017
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 1017
    functionName: pcmk__gaierror2rc
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int pcmk__gaierror2rc(int gai) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/results.c:1097,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/results.c:1099,1
    - Dst: free
      Src: /src/pacemaker/lib/common/results.c:1098,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - result
    - exit_status
    - exec_status
    - exit_reason
    argTypes:
    - pcmk__action_result_t*
    - int
    - enum pcmk_exec_status
    - char*
    constantsTouched: []
    func_position:
      end: 1101
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1101
    functionName: pcmk__set_result
    functionSourceFile: /src/pacemaker/lib/common/results.c
    functionUses: []
    functionsReached:
    - strdup
    - free
    - pcmk__str_eq
    linkageType: ''
    returnType: void
    signature: 'void pcmk__set_result(pcmk__action_result_t *result, int exit_status,
      enum pcmk_exec_status exec_status, const char *exit_reason) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/cib.c:113,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/cib.c:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - element_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 121
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 121
    functionName: pcmk_cib_xpath_for
    functionSourceFile: /src/pacemaker/lib/common/cib.c
    functionUses: []
    functionsReached:
    - PCMK__NELEM
    - pcmk__str_eq
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk_cib_xpath_for(const char *element_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/common/cib.c:151,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/cib.c:153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - element_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 159
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 159
    functionName: pcmk_cib_parent_name_for
    functionSourceFile: /src/pacemaker/lib/common/cib.c
    functionUses: []
    functionsReached:
    - PCMK__NELEM
    - pcmk__str_eq
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk_cib_parent_name_for(const char *element_name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_cib_xpath_for
      Src: /src/pacemaker/lib/common/cib.c:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - element
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: pcmk__cib_abs_xpath_for
    functionSourceFile: /src/pacemaker/lib/common/cib.c
    functionUses: []
    functionsReached:
    - pcmk_cib_xpath_for
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__cib_abs_xpath_for(const char *element) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/lib/common/cib.c:173,1
    - Dst: pcmk_cib_xpath_for
      Src: /src/pacemaker/lib/common/cib.c:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - cib
    - element_name
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: pcmk_find_cib_element
    functionSourceFile: /src/pacemaker/lib/common/cib.c
    functionUses: []
    functionsReached:
    - pcmk__xpath_find_one
    - pcmk_cib_xpath_for
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk_find_cib_element(xmlNode *cib, const char *element_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/cib.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - cib_version
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: pcmk__check_feature_set
    functionSourceFile: /src/pacemaker/lib/common/cib.c
    functionUses: []
    functionsReached:
    - compare_version
    linkageType: ''
    returnType: int
    signature: 'int pcmk__check_feature_set(const char *cib_version) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/cmdline.c:31,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/cmdline.c:40,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/cmdline.c:33,1
    - Dst: free
      Src: /src/pacemaker/lib/common/cmdline.c:38,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/cmdline.c:36,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - summary
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 44
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 44
    functionName: pcmk__new_common_args
    functionSourceFile: /src/pacemaker/lib/common/cmdline.c
    functionUses: []
    functionsReached:
    - calloc
    - crm_exit
    - free
    - strdup
    linkageType: ''
    returnType: pcmk__common_args_t*
    signature: 'pcmk__common_args_t *pcmk__new_common_args(const char *summary) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/pacemaker/lib/common/cmdline.c:69,1
    - Dst: N_
      Src: /src/pacemaker/lib/common/cmdline.c:72,1
    - Dst: g_option_group_add_entries
      Src: /src/pacemaker/lib/common/cmdline.c:79,1
    - Dst: g_option_group_new
      Src: /src/pacemaker/lib/common/cmdline.c:78,1
    - Dst: g_option_context_new
      Src: /src/pacemaker/lib/common/cmdline.c:81,1
    - Dst: g_option_context_set_summary
      Src: /src/pacemaker/lib/common/cmdline.c:82,1
    - Dst: g_option_context_set_description
      Src: /src/pacemaker/lib/common/cmdline.c:83,1
    - Dst: g_option_context_set_main_group
      Src: /src/pacemaker/lib/common/cmdline.c:85,1
    - Dst: N_
      Src: /src/pacemaker/lib/common/cmdline.c:91,1
    - Dst: N_
      Src: /src/pacemaker/lib/common/cmdline.c:93,1
    - Dst: N_
      Src: /src/pacemaker/lib/common/cmdline.c:99,1
    - Dst: N_
      Src: /src/pacemaker/lib/common/cmdline.c:93,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/cmdline.c:102,1
    - Dst: g_option_context_add_group
      Src: /src/pacemaker/lib/common/cmdline.c:105,1
    - Dst: N_
      Src: /src/pacemaker/lib/common/cmdline.c:99,1
    - Dst: g_option_group_add_entries
      Src: /src/pacemaker/lib/common/cmdline.c:104,1
    - Dst: g_option_group_new
      Src: /src/pacemaker/lib/common/cmdline.c:99,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 4
    argNames:
    - common_args
    - fmts
    - output_group
    - param_string
    argTypes:
    - pcmk__common_args_t*
    - char*
    - GOptionGroup**
    - char*
    constantsTouched: []
    func_position:
      end: 110
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 110
    functionName: pcmk__build_arg_context
    functionSourceFile: /src/pacemaker/lib/common/cmdline.c
    functionUses: []
    functionsReached:
    - g_option_context_set_summary
    - g_option_context_set_main_group
    - g_option_group_new
    - crm_strdup_printf
    - g_option_context_new
    - g_option_group_add_entries
    - g_option_context_add_group
    - N_
    - g_option_context_set_description
    linkageType: ''
    returnType: GOptionContext*
    signature: 'GOptionContext *pcmk__build_arg_context(pcmk__common_args_t *common_args,
      const char *fmts, GOptionGroup **output_group, const char *param_string) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_option_context_get_main_group
      Src: /src/pacemaker/lib/common/cmdline.c:124,1
    - Dst: g_option_group_add_entries
      Src: /src/pacemaker/lib/common/cmdline.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - context
    - entries
    argTypes:
    - GOptionContext*
    - GOptionEntry
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: pcmk__add_main_args
    functionSourceFile: /src/pacemaker/lib/common/cmdline.c
    functionUses: []
    functionsReached:
    - g_option_group_add_entries
    - g_option_context_get_main_group
    linkageType: ''
    returnType: void
    signature: 'void pcmk__add_main_args(GOptionContext *context, const GOptionEntry
      entries[]) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strsplit
      Src: /src/pacemaker/lib/common/cmdline.c:152,1
    - Dst: g_strjoinv
      Src: /src/pacemaker/lib/common/cmdline.c:153,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/cmdline.c:155,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 3
    argNames:
    - str
    - sub
    - repl
    argTypes:
    - gchar*
    - gchar*
    - gchar*
    constantsTouched: []
    func_position:
      end: 157
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 157
    functionName: string_replace
    functionSourceFile: /src/pacemaker/lib/common/cmdline.c
    functionUses: []
    functionsReached:
    - g_strsplit
    - g_strjoinv
    - g_strfreev
    linkageType: ''
    returnType: gchar*
    signature: 'static gchar *string_replace(gchar *str, const gchar *sub, const gchar
      *repl) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_get_prgname
      Src: /src/pacemaker/lib/common/cmdline.c:219,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/cmdline.c:234,1
    - Dst: g_strdup
      Src: /src/pacemaker/lib/common/cmdline.c:239,1
    - Dst: g_ptr_array_add
      Src: /src/pacemaker/lib/common/cmdline.c:317,1
    - Dst: g_strdup_printf
      Src: /src/pacemaker/lib/common/cmdline.c:325,1
    - Dst: g_ptr_array_add
      Src: /src/pacemaker/lib/common/cmdline.c:342,1
    - Dst: g_ptr_array_new
      Src: /src/pacemaker/lib/common/cmdline.c:226,1
    - Dst: g_ptr_array_add
      Src: /src/pacemaker/lib/common/cmdline.c:244,1
    - Dst: g_ptr_array_add
      Src: /src/pacemaker/lib/common/cmdline.c:253,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/cmdline.c:260,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/cmdline.c:311,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/common/cmdline.c:312,1
    - Dst: g_strdup
      Src: /src/pacemaker/lib/common/cmdline.c:317,1
    - Dst: g_strdup
      Src: /src/pacemaker/lib/common/cmdline.c:342,1
    - Dst: g_ptr_array_add
      Src: /src/pacemaker/lib/common/cmdline.c:346,1
    - Dst: g_ptr_array_add
      Src: /src/pacemaker/lib/common/cmdline.c:325,1
    - Dst: g_strdup
      Src: /src/pacemaker/lib/common/cmdline.c:244,1
    - Dst: g_str_has_prefix
      Src: /src/pacemaker/lib/common/cmdline.c:268,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/cmdline.c:252,1
    - Dst: g_strdup
      Src: /src/pacemaker/lib/common/cmdline.c:253,1
    - Dst: g_ptr_array_add
      Src: /src/pacemaker/lib/common/cmdline.c:261,1
    - Dst: g_ptr_array_add
      Src: /src/pacemaker/lib/common/cmdline.c:290,1
    - Dst: g_ptr_array_add
      Src: /src/pacemaker/lib/common/cmdline.c:316,1
    - Dst: g_ptr_array_add
      Src: /src/pacemaker/lib/common/cmdline.c:332,1
    - Dst: g_ptr_array_free
      Src: /src/pacemaker/lib/common/cmdline.c:348,1
    - Dst: g_strdup_printf
      Src: /src/pacemaker/lib/common/cmdline.c:332,1
    - Dst: g_path_get_basename
      Src: /src/pacemaker/lib/common/cmdline.c:220,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/cmdline.c:223,1
    - Dst: g_set_prgname
      Src: /src/pacemaker/lib/common/cmdline.c:222,1
    - Dst: g_ptr_array_add
      Src: /src/pacemaker/lib/common/cmdline.c:239,1
    - Dst: g_str_has_prefix
      Src: /src/pacemaker/lib/common/cmdline.c:268,1
    - Dst: isdigit
      Src: /src/pacemaker/lib/common/cmdline.c:281,1
    - Dst: g_strdup
      Src: /src/pacemaker/lib/common/cmdline.c:261,1
    - Dst: g_strdup_printf
      Src: /src/pacemaker/lib/common/cmdline.c:290,1
    - Dst: strchr
      Src: /src/pacemaker/lib/common/cmdline.c:306,1
    - Dst: g_strdup_printf
      Src: /src/pacemaker/lib/common/cmdline.c:316,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 94
    argCount: 2
    argNames:
    - argv
    - special
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 349
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 349
    functionName: pcmk__cmdline_preproc
    functionSourceFile: /src/pacemaker/lib/common/cmdline.c
    functionUses: []
    functionsReached:
    - g_ptr_array_free
    - g_set_prgname
    - g_ptr_array_new
    - g_ptr_array_add
    - strcmp
    - pcmk__str_eq
    - strchr
    - g_get_prgname
    - isdigit
    - g_strdup
    - g_free
    - g_strdup_printf
    - fprintf
    - g_path_get_basename
    - g_str_has_prefix
    linkageType: ''
    returnType: gchar**
    signature: 'gchar **pcmk__cmdline_preproc(char *const *argv, const char *special) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: bump_verbosity
    functionSourceFile: /src/pacemaker/lib/common/cmdline.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean bump_verbosity(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/cmdline.c:50,1
    - Dst: free
      Src: /src/pacemaker/lib/common/cmdline.c:52,1
    - Dst: free
      Src: /src/pacemaker/lib/common/cmdline.c:51,1
    - Dst: free
      Src: /src/pacemaker/lib/common/cmdline.c:58,1
    - Dst: free
      Src: /src/pacemaker/lib/common/cmdline.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: free_common_args
    functionSourceFile: /src/pacemaker/lib/common/cmdline.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void free_common_args(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_option_context_free
      Src: /src/pacemaker/lib/common/cmdline.c:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - context
    argTypes:
    - GOptionContext*
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: pcmk__free_arg_context
    functionSourceFile: /src/pacemaker/lib/common/cmdline.c
    functionUses: []
    functionsReached:
    - g_option_context_free
    linkageType: ''
    returnType: void
    signature: 'void pcmk__free_arg_context(GOptionContext *context) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_option_group_new
      Src: /src/pacemaker/lib/common/cmdline.c:136,1
    - Dst: g_option_group_add_entries
      Src: /src/pacemaker/lib/common/cmdline.c:137,1
    - Dst: g_option_context_add_group
      Src: /src/pacemaker/lib/common/cmdline.c:138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 5
    argNames:
    - context
    - name
    - header
    - desc
    - entries
    argTypes:
    - GOptionContext*
    - char*
    - char*
    - char*
    - GOptionEntry
    constantsTouched: []
    func_position:
      end: 140
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 140
    functionName: pcmk__add_arg_group
    functionSourceFile: /src/pacemaker/lib/common/cmdline.c
    functionUses: []
    functionsReached:
    - g_option_group_add_entries
    - g_option_context_add_group
    - g_option_group_new
    linkageType: ''
    returnType: void
    signature: 'void pcmk__add_arg_group(GOptionContext *context, const char *name,
      const char *header, const char *desc, const GOptionEntry entries[]) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/common/cmdline.c:168,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/cmdline.c:177,1
    - Dst: strchr
      Src: /src/pacemaker/lib/common/cmdline.c:175,1
    - Dst: strchr
      Src: /src/pacemaker/lib/common/cmdline.c:178,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/lib/common/cmdline.c:172,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/cmdline.c:180,1
    - Dst: string_replace
      Src: /src/pacemaker/lib/common/cmdline.c:200,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/cmdline.c:201,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/cmdline.c:202,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/cmdline.c:206,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - argv
    argTypes:
    - gchar**
    constantsTouched: []
    func_position:
      end: 207
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 207
    functionName: pcmk__quote_cmdline
    functionSourceFile: /src/pacemaker/lib/common/cmdline.c
    functionUses: []
    functionsReached:
    - g_string_append_c
    - g_string_append
    - strchr
    - g_string_sized_new
    - g_free
    - g_string_free
    - string_replace
    - pcmk__g_strcat
    linkageType: ''
    returnType: gchar*
    signature: 'gchar *pcmk__quote_cmdline(gchar **argv) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/pacemaker/lib/common/cmdline.c:360,1
    - Dst: g_shell_parse_argv
      Src: /src/pacemaker/lib/common/cmdline.c:365,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/cmdline.c:362,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/cmdline.c:363,1
    - Dst: vasprintf
      Src: /src/pacemaker/lib/common/cmdline.c:361,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/cmdline.c:366,1
    - Dst: free
      Src: /src/pacemaker/lib/common/cmdline.c:367,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/lib/common/cmdline.c:371,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/cmdline.c:373,1
    - Dst: free
      Src: /src/pacemaker/lib/common/cmdline.c:374,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - context
    - error
    - format
    - '...'
    argTypes:
    - GOptionContext*
    - GError**
    - char*
    constantsTouched: []
    func_position:
      end: 376
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 376
    functionName: pcmk__force_args
    functionSourceFile: /src/pacemaker/lib/common/cmdline.c
    functionUses: []
    functionsReached:
    - g_strfreev
    - g_option_context_parse_strv
    - g_shell_parse_argv
    - va_end
    - free
    - va_start
    - vasprintf
    - pcmk__assert
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean pcmk__force_args(GOptionContext *context, GError **error,
      const char *format, ...) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/common/attrs.c:39,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/common/attrs.c:42,1
    - Dst: getenv
      Src: /src/pacemaker/lib/common/attrs.c:48,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/attrs.c:47,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/common/attrs.c:43,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/attrs.c:50,1
    - Dst: getenv
      Src: /src/pacemaker/lib/common/attrs.c:51,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/attrs.c:55,1
    - Dst: getenv
      Src: /src/pacemaker/lib/common/attrs.c:59,1
    - Dst: free
      Src: /src/pacemaker/lib/common/attrs.c:65,1
    - Dst: free
      Src: /src/pacemaker/lib/common/attrs.c:66,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 74
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 74
    functionName: pcmk__node_attr_target
    functionSourceFile: /src/pacemaker/lib/common/attrs.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - pcmk__strcase_any_of
    - free
    - crm_meta_name
    - snprintf
    - getenv
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__node_attr_target(const char *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/attrs.c:89,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/common/attrs.c:91,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/attrs.c:95,1
    - Dst: getenv
      Src: /src/pacemaker/lib/common/attrs.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - rsc_id
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 96
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 96
    functionName: pcmk_promotion_score_name
    functionSourceFile: /src/pacemaker/lib/common/attrs.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - getenv
    - pcmk__str_empty
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk_promotion_score_name(const char *rsc_id) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_guest_or_bundle_node
      Src: /src/pacemaker/lib/common/attrs.c:129,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/attrs.c:133,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/attrs.c:132,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/attrs.c:130,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/attrs.c:131,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/common/attrs.c:133,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/attrs.c:147,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/common/attrs.c:149,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/attrs.c:160,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/common/attrs.c:162,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/attrs.c:170,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/attrs.c:175,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/common/attrs.c:176,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/attrs.c:174,1
    - Dst: pcmk__node_name
      Src: /src/pacemaker/lib/common/attrs.c:177,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/attrs.c:176,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 39
    argCount: 4
    argNames:
    - node
    - name
    - target
    - node_type
    argTypes:
    - pcmk_node_t*
    - char*
    - char*
    - enum pcmk__rsc_node
    constantsTouched: []
    func_position:
      end: 179
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 179
    functionName: pcmk__node_attr
    functionSourceFile: /src/pacemaker/lib/common/attrs.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__s
    - g_hash_table_lookup
    - pcmk__str_eq
    - pcmk__node_name
    - pcmk__is_guest_or_bundle_node
    - crm_trace
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__node_attr(const pcmk_node_t *node, const char *name,
      const char *target, enum pcmk__rsc_node node_type) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_copy
      Src: /src/pacemaker/lib/common/lists.c:15,1
    - Dst: g_list_remove
      Src: /src/pacemaker/lib/common/lists.c:21,1
    - Dst: g_list_find_custom
      Src: /src/pacemaker/lib/common/lists.c:18,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 3
    argNames:
    - from
    - items
    - cmp
    argTypes:
    - GList*
    - GList*
    - GCompareFunc
    constantsTouched: []
    func_position:
      end: 26
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 26
    functionName: pcmk__subtract_lists
    functionSourceFile: /src/pacemaker/lib/common/lists.c
    functionUses: []
    functionsReached:
    - g_list_remove
    - g_list_copy
    - g_list_find_custom
    linkageType: ''
    returnType: GList*
    signature: 'GList *pcmk__subtract_lists(GList *from, const GList *items, GCompareFunc
      cmp) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/ipc_server.c:61,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_server.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: pcmk__find_client
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - crm_trace
    - g_hash_table_lookup
    linkageType: ''
    returnType: pcmk__client_t*
    signature: 'pcmk__client_t *pcmk__find_client(const qb_ipcs_connection_t *c) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - pcmk__client_t*
    constantsTouched: []
    func_position:
      end: 111
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 111
    functionName: pcmk__client_name
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__client_name(const pcmk__client_t *c) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_server.c:261,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_server.c:262,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_server.c:263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - event
    argTypes:
    - struct iovec*
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: pcmk_free_ipc_event
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void pcmk_free_ipc_event(struct iovec *event) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_queue_get_length
      Src: /src/pacemaker/lib/common/ipc_server.c:307,1
    - Dst: g_queue_free_full
      Src: /src/pacemaker/lib/common/ipc_server.c:308,1
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/common/ipc_server.c:322,1
    - Dst: gnutls_deinit
      Src: /src/pacemaker/lib/common/ipc_server.c:328,1
    - Dst: g_byte_array_free
      Src: /src/pacemaker/lib/common/ipc_server.c:316,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/lib/common/ipc_server.c:293,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/lib/common/ipc_server.c:298,1
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/common/ipc_server.c:303,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_server.c:291,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/ipc_server.c:292,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/ipc_server.c:297,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_server.c:296,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_server.c:307,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_server.c:330,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_server.c:333,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_server.c:312,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_server.c:331,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_server.c:311,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_server.c:313,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - c
    argTypes:
    - pcmk__client_t*
    constantsTouched: []
    func_position:
      end: 334
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 334
    functionName: pcmk__free_client
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - crm_debug
    - g_queue_free_full
    - gnutls_deinit
    - g_hash_table_remove
    - g_byte_array_free
    - g_queue_get_length
    - free
    - crm_trace
    - g_source_remove
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'void pcmk__free_client(pcmk__client_t *c) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__valid_ipc_header
      Src: /src/pacemaker/lib/common/ipc_server.c:406,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_server.c:418,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/ipc_server.c:428,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/ipc_server.c:426,1
    - Dst: pcmk__set_client_flags
      Src: /src/pacemaker/lib/common/ipc_server.c:423,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/common/ipc_server.c:429,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 3
    argNames:
    - c
    - id
    - flags
    argTypes:
    - pcmk__client_t*
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 431
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 431
    functionName: pcmk__client_data2xml
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - pcmk__set_client_flags
    - pcmk_is_set
    - pcmk__xml_parse
    - pcmk__assert
    - crm_log_xml_trace
    - pcmk__valid_ipc_header
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__client_data2xml(pcmk__client_t *c, uint32_t *id, uint32_t
      *flags) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__ipc_create_ack_as
      Src: /src/pacemaker/lib/common/ipc_server.c:987,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/lib/common/ipc_server.c:991,1
    - Dst: pcmk__ipc_send_xml
      Src: /src/pacemaker/lib/common/ipc_server.c:994,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_server.c:990,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/common/ipc_server.c:992,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/ipc_server.c:995,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 8
    argNames:
    - function
    - line
    - c
    - request
    - flags
    - tag
    - ver
    - status
    argTypes:
    - char*
    - int
    - pcmk__client_t*
    - uint32_t
    - uint32_t
    - char*
    - char*
    - crm_exit_t
    constantsTouched: []
    func_position:
      end: 998
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 998
    functionName: pcmk__ipc_send_ack_as
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - pcmk__ipc_create_ack_as
    - pcmk__xml_free
    - pcmk__ipc_send_xml
    - crm_log_xml_trace
    - crm_trace
    - pcmk__client_name
    linkageType: ''
    returnType: int
    signature: 'int pcmk__ipc_send_ack_as(const char *function, int line, pcmk__client_t
      *c, uint32_t request, uint32_t flags, const char *tag, const char *ver, crm_exit_t
      status) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/common/ipc_server.c:76,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/common/ipc_server.c:77,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_server.c:83,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/ipc_server.c:78,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_server.c:83,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: pcmk__find_client_by_id
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - strcmp
    - g_hash_table_iter_init
    - crm_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: pcmk__client_t*
    signature: 'pcmk__client_t *pcmk__find_client_by_id(const char *id) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/ipc_server.c:117,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/common/ipc_server.c:121,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/ipc_server.c:123,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/ipc_server.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: pcmk__client_cleanup
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - crm_warn
    - g_hash_table_destroy
    - pcmk__plural_s
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'void pcmk__client_cleanup(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/ipc_server.c:249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: pcmk__new_ipc_event
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - pcmk__assert_alloc
    linkageType: ''
    returnType: struct iovec*
    signature: 'static struct iovec *pcmk__new_ipc_event(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_connection_stats_get
      Src: /src/pacemaker/lib/common/ipc_server.c:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 387
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 387
    functionName: pcmk__client_pid
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - qb_ipcs_connection_stats_get
    linkageType: ''
    returnType: int
    signature: 'int pcmk__client_pid(qb_ipcs_connection_t *c) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_server.c:956,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/common/ipc_server.c:959,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/ipc_server.c:957,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_server.c:958,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/common/ipc_server.c:960,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/ipc_server.c:961,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 6
    argNames:
    - function
    - line
    - flags
    - tag
    - ver
    - status
    argTypes:
    - char*
    - int
    - uint32_t
    - char*
    - char*
    - crm_exit_t
    constantsTouched: []
    func_position:
      end: 964
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 964
    functionName: pcmk__ipc_create_ack_as
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk_is_set
    - crm_xml_add
    - crm_xml_add_int
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *pcmk__ipc_create_ack_as(const char *function, int line, uint32_t
      flags, const char *tag, const char *ver, crm_exit_t status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_add_ipc_server
      Src: /src/pacemaker/lib/common/ipc_server.c:1130,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/ipc_server.c:1134,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_server.c:1133,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/ipc_server.c:1140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - ipcs
    - cb
    argTypes:
    - qb_ipcs_service_t**
    - struct qb_ipcs_service_handlers*
    constantsTouched: []
    func_position:
      end: 1142
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1142
    functionName: pcmk__serve_pacemakerd_ipc
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - crm_exit
    - crm_warn
    - mainloop_add_ipc_server
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void pcmk__serve_pacemakerd_ipc(qb_ipcs_service_t **ipcs, struct qb_ipcs_service_handlers
      *cb) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_add_ipc_server
      Src: /src/pacemaker/lib/common/ipc_server.c:1156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - struct qb_ipcs_service_handlers*
    constantsTouched: []
    func_position:
      end: 1157
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1157
    functionName: pcmk__serve_schedulerd_ipc
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - mainloop_add_ipc_server
    linkageType: ''
    returnType: qb_ipcs_service_t*
    signature: 'qb_ipcs_service_t *pcmk__serve_schedulerd_ipc(struct qb_ipcs_service_handlers
      *cb) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/ipc_server.c:165,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/ipc_server.c:170,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_server.c:171,1
    - Dst: pcmk__uid2username
      Src: /src/pacemaker/lib/common/ipc_server.c:168,1
    - Dst: pcmk__set_client_flags
      Src: /src/pacemaker/lib/common/ipc_server.c:175,1
    - Dst: pcmk__client_pid
      Src: /src/pacemaker/lib/common/ipc_server.c:176,1
    - Dst: crm_generate_uuid
      Src: /src/pacemaker/lib/common/ipc_server.c:182,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_server.c:187,1
    - Dst: g_hash_table_new
      Src: /src/pacemaker/lib/common/ipc_server.c:188,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/ipc_server.c:190,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - c
    - key
    - uid_client
    argTypes:
    - qb_ipcs_connection_t*
    - void*
    - uid_t
    constantsTouched: []
    func_position:
      end: 192
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 192
    functionName: client_from_connection
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - pcmk__set_client_flags
    - crm_trace
    - pcmk__assert_alloc
    - pcmk__client_pid
    - pcmk__str_copy
    - g_hash_table_new
    - crm_generate_uuid
    - g_hash_table_insert
    - crm_err
    - pcmk__uid2username
    linkageType: ''
    returnType: pcmk__client_t*
    signature: 'static pcmk__client_t *client_from_connection(qb_ipcs_connection_t
      *c, void *key, uid_t uid_client) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client_from_connection
      Src: /src/pacemaker/lib/common/ipc_server.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: pcmk__new_unauth_client
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - client_from_connection
    linkageType: ''
    returnType: pcmk__client_t*
    signature: 'pcmk__client_t *pcmk__new_unauth_client(void *key) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_ipc_flags
      Src: /src/pacemaker/lib/common/ipc_server.c:730,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_server.c:748,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_server.c:749,1
    - Dst: memcpy
      Src: /src/pacemaker/lib/common/ipc_server.c:758,1
    - Dst: memcpy
      Src: /src/pacemaker/lib/common/ipc_server.c:762,1
    - Dst: malloc
      Src: /src/pacemaker/lib/common/ipc_server.c:761,1
    - Dst: crm_ipcs_flush_events
      Src: /src/pacemaker/lib/common/ipc_server.c:767,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/common/ipc_server.c:773,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_server.c:801,1
    - Dst: crm_ipcs_flush_events
      Src: /src/pacemaker/lib/common/ipc_server.c:810,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_server.c:726,1
    - Dst: pcmk__set_ipc_flags
      Src: /src/pacemaker/lib/common/ipc_server.c:734,1
    - Dst: id_for_server_event
      Src: /src/pacemaker/lib/common/ipc_server.c:745,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_server.c:777,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/ipc_server.c:779,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/ipc_server.c:781,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/ipc_server.c:784,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/ipc_server.c:793,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/ipc_server.c:795,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_server.c:814,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_server.c:735,1
    - Dst: add_event
      Src: /src/pacemaker/lib/common/ipc_server.c:750,1
    - Dst: pcmk__new_ipc_event
      Src: /src/pacemaker/lib/common/ipc_server.c:753,1
    - Dst: malloc
      Src: /src/pacemaker/lib/common/ipc_server.c:757,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_server.c:775,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_server.c:755,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/ipc_server.c:776,1
    - Dst: free
      Src: /src/pacemaker/lib/common/ipc_server.c:804,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_server.c:725,1
    - Dst: add_event
      Src: /src/pacemaker/lib/common/ipc_server.c:764,1
    - Dst: qb_ipcs_response_sendv
      Src: /src/pacemaker/lib/common/ipc_server.c:787,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_server.c:799,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_server.c:806,1
    - Dst: pcmk_free_ipc_event
      Src: /src/pacemaker/lib/common/ipc_server.c:807,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 3
    argNames:
    - c
    - iov
    - flags
    argTypes:
    - pcmk__client_t*
    - struct iovec*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 818
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 818
    functionName: pcmk__ipc_send_iov
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - malloc
    - memcpy
    - id_for_server_event
    - CRM_LOG_ASSERT
    - crm_strdup_printf
    - pcmk_free_ipc_event
    - pcmk__set_ipc_flags
    - qb_ipcs_response_sendv
    - crm_notice
    - pcmk_is_set
    - free
    - pcmk__new_ipc_event
    - pcmk_rc_str
    - crm_ipcs_flush_events
    - add_event
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int pcmk__ipc_send_iov(pcmk__client_t *c, struct iovec *iov, uint32_t
      flags) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_add_ipc_server_with_prio
      Src: /src/pacemaker/lib/common/ipc_server.c:1107,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_server.c:1111,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/ipc_server.c:1113,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/ipc_server.c:1112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - ipcs
    - cb
    argTypes:
    - qb_ipcs_service_t**
    - struct qb_ipcs_service_handlers*
    constantsTouched: []
    func_position:
      end: 1115
      start: 1103
    functionDepth: 0
    functionLinenumber: 1103
    functionLinenumberEnd: 1115
    functionName: pcmk__serve_fenced_ipc
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - mainloop_add_ipc_server_with_prio
    - crm_warn
    - crm_exit
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void pcmk__serve_fenced_ipc(qb_ipcs_service_t **ipcs, struct qb_ipcs_service_handlers
      *cb) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/ipc_server.c:215,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_server.c:228,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/ipc_server.c:221,1
    - Dst: qb_ipcs_connection_auth_set
      Src: /src/pacemaker/lib/common/ipc_server.c:230,1
    - Dst: pcmk_daemon_user
      Src: /src/pacemaker/lib/common/ipc_server.c:217,1
    - Dst: client_from_connection
      Src: /src/pacemaker/lib/common/ipc_server.c:234,1
    - Dst: pcmk__set_client_flags
      Src: /src/pacemaker/lib/common/ipc_server.c:238,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_server.c:241,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - c
    - uid_client
    - gid_client
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 244
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 244
    functionName: pcmk__new_client
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - crm_debug
    - qb_ipcs_connection_auth_set
    - client_from_connection
    - CRM_CHECK
    - pcmk__set_client_flags
    - pcmk_daemon_user
    - crm_warn
    - crm_trace
    linkageType: ''
    returnType: pcmk__client_t*
    signature: 'pcmk__client_t *pcmk__new_client(qb_ipcs_connection_t *c, uid_t uid_client,
      gid_t gid_client) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/common/ipc_server.c:834,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_server.c:846,1
    - Dst: pcmk__ipc_prepare_iov
      Src: /src/pacemaker/lib/common/ipc_server.c:850,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/lib/common/ipc_server.c:835,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_server.c:847,1
    - Dst: pcmk__set_ipc_flags
      Src: /src/pacemaker/lib/common/ipc_server.c:855,1
    - Dst: pcmk__ipc_send_iov
      Src: /src/pacemaker/lib/common/ipc_server.c:856,1
    - Dst: pcmk__set_ipc_flags
      Src: /src/pacemaker/lib/common/ipc_server.c:883,1
    - Dst: pcmk__ipc_send_iov
      Src: /src/pacemaker/lib/common/ipc_server.c:884,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/ipc_server.c:926,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/ipc_server.c:930,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/ipc_server.c:927,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 45
    argCount: 4
    argNames:
    - c
    - request
    - message
    - flags
    argTypes:
    - pcmk__client_t*
    - uint32_t
    - xmlNode*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 932
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 932
    functionName: pcmk__ipc_send_xml
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - pcmk__ipc_prepare_iov
    - pcmk__ipc_send_iov
    - pcmk__set_ipc_flags
    - crm_notice
    - pcmk_is_set
    - g_string_sized_new
    - g_string_free
    - pcmk_rc_str
    - pcmk__xml_string
    linkageType: ''
    returnType: int
    signature: 'int pcmk__ipc_send_xml(pcmk__client_t *c, uint32_t request, const
      xmlNode *message, uint32_t flags) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/common/ipc_server.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - func
    - user_data
    argTypes:
    - GHFunc
    - gpointer
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: pcmk__foreach_ipc_client
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    linkageType: ''
    returnType: void
    signature: 'void pcmk__foreach_ipc_client(GHFunc func, gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_connection_first_get
      Src: /src/pacemaker/lib/common/ipc_server.c:137,1
    - Dst: qb_ipcs_connection_next_get
      Src: /src/pacemaker/lib/common/ipc_server.c:142,1
    - Dst: pcmk__client_pid
      Src: /src/pacemaker/lib/common/ipc_server.c:146,1
    - Dst: qb_ipcs_disconnect
      Src: /src/pacemaker/lib/common/ipc_server.c:147,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/common/ipc_server.c:145,1
    - Dst: qb_ipcs_connection_unref
      Src: /src/pacemaker/lib/common/ipc_server.c:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - service
    argTypes:
    - qb_ipcs_service_t*
    constantsTouched: []
    func_position:
      end: 150
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 150
    functionName: pcmk__drop_all_clients
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - qb_ipcs_disconnect
    - qb_ipcs_connection_first_get
    - pcmk__client_pid
    - crm_notice
    - qb_ipcs_connection_unref
    - qb_ipcs_connection_next_get
    linkageType: ''
    returnType: void
    signature: 'void pcmk__drop_all_clients(qb_ipcs_service_t *service) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_server.c:482,1
    - Dst: qb_ipcs_event_sendv
      Src: /src/pacemaker/lib/common/ipc_server.c:512,1
    - Dst: g_queue_peek_head
      Src: /src/pacemaker/lib/common/ipc_server.c:495,1
    - Dst: g_queue_get_length
      Src: /src/pacemaker/lib/common/ipc_server.c:487,1
    - Dst: pcmk__sleep_ms
      Src: /src/pacemaker/lib/common/ipc_server.c:519,1
    - Dst: g_queue_pop_head
      Src: /src/pacemaker/lib/common/ipc_server.c:526,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_server.c:530,1
    - Dst: pcmk_free_ipc_event
      Src: /src/pacemaker/lib/common/ipc_server.c:533,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/ipc_server.c:539,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/ipc_server.c:540,1
    - Dst: qb_ipcs_disconnect
      Src: /src/pacemaker/lib/common/ipc_server.c:558,1
    - Dst: delay_next_flush
      Src: /src/pacemaker/lib/common/ipc_server.c:564,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/ipc_server.c:552,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_server.c:555,1
    - Dst: QB_MAX
      Src: /src/pacemaker/lib/common/ipc_server.c:549,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 1
    argNames:
    - c
    argTypes:
    - pcmk__client_t*
    constantsTouched: []
    func_position:
      end: 572
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 572
    functionName: crm_ipcs_flush_events
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - g_queue_peek_head
    - qb_ipcs_disconnect
    - delay_next_flush
    - pcmk_free_ipc_event
    - pcmk__sleep_ms
    - g_queue_pop_head
    - qb_ipcs_event_sendv
    - g_queue_get_length
    - crm_err
    - pcmk_rc_str
    - crm_warn
    - QB_MAX
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int crm_ipcs_flush_events(pcmk__client_t *c) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_server.c:710,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - header
    argTypes:
    - pcmk__ipc_header_t*
    constantsTouched: []
    func_position:
      end: 716
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 716
    functionName: id_for_server_event
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t id_for_server_event(pcmk__ipc_header_t *header) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_add_ipc_server
      Src: /src/pacemaker/lib/common/ipc_server.c:1084,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/ipc_server.c:1090,1
    - Dst: crm_crit
      Src: /src/pacemaker/lib/common/ipc_server.c:1087,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - ipcs
    - cb
    argTypes:
    - qb_ipcs_service_t**
    - struct qb_ipcs_service_handlers*
    constantsTouched: []
    func_position:
      end: 1092
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1092
    functionName: pcmk__serve_attrd_ipc
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - crm_exit
    - mainloop_add_ipc_server
    - crm_crit
    linkageType: ''
    returnType: void
    signature: 'void pcmk__serve_attrd_ipc(qb_ipcs_service_t **ipcs, struct qb_ipcs_service_handlers
      *cb) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/ipc_server.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: pcmk__ipc_client_count
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - g_hash_table_size
    linkageType: ''
    returnType: guint
    signature: 'guint pcmk__ipc_client_count(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/lib/common/ipc_server.c:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - c
    - queue_len
    argTypes:
    - pcmk__client_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 459
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 459
    functionName: delay_next_flush
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - pcmk__create_timer
    linkageType: ''
    returnType: void
    signature: 'static inline void delay_next_flush(pcmk__client_t *c, unsigned int
      queue_len) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: crm_ipc_default_buffer_size
      Src: /src/pacemaker/lib/common/ipc_server.c:600,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/ipc_server.c:670,1
    - Dst: pcmk__new_ipc_event
      Src: /src/pacemaker/lib/common/ipc_server.c:618,1
    - Dst: strndup
      Src: /src/pacemaker/lib/common/ipc_server.c:655,1
    - Dst: calloc
      Src: /src/pacemaker/lib/common/ipc_server.c:611,1
    - Dst: pcmk__set_ipc_flags
      Src: /src/pacemaker/lib/common/ipc_server.c:679,1
    - Dst: pcmk__set_ipc_flags
      Src: /src/pacemaker/lib/common/ipc_server.c:682,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/common/ipc_server.c:687,1
    - Dst: pcmk_free_ipc_event
      Src: /src/pacemaker/lib/common/ipc_server.c:694,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 5
    argNames:
    - request
    - message
    - index
    - result
    - bytes
    argTypes:
    - uint32_t
    - GString*
    - uint16_t
    - struct iovec**
    - ssize_t*
    constantsTouched: []
    func_position:
      end: 698
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 698
    functionName: pcmk__ipc_prepare_iov
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - calloc
    - pcmk_free_ipc_event
    - strndup
    - pcmk__set_ipc_flags
    - pcmk__str_copy
    - pcmk__new_ipc_event
    - crm_ipc_default_buffer_size
    linkageType: ''
    returnType: int
    signature: 'int pcmk__ipc_prepare_iov(uint32_t request, const GString *message,
      uint16_t index, struct iovec **result, ssize_t *bytes) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_add_ipc_server
      Src: /src/pacemaker/lib/common/ipc_server.c:1068,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - struct qb_ipcs_service_handlers*
    constantsTouched: []
    func_position:
      end: 1069
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1069
    functionName: pcmk__serve_controld_ipc
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - mainloop_add_ipc_server
    linkageType: ''
    returnType: qb_ipcs_service_t*
    signature: 'qb_ipcs_service_t *pcmk__serve_controld_ipc(struct qb_ipcs_service_handlers
      *cb) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_ipcs_flush_events
      Src: /src/pacemaker/lib/common/ipc_server.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 443
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 443
    functionName: crm_ipcs_flush_events_cb
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - crm_ipcs_flush_events
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean crm_ipcs_flush_events_cb(gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_free_ipc_event
      Src: /src/pacemaker/lib/common/ipc_server.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: free_event
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - pcmk_free_ipc_event
    linkageType: ''
    returnType: void
    signature: 'static void free_event(gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_destroy
      Src: /src/pacemaker/lib/common/ipc_server.c:1052,1
    - Dst: qb_ipcs_destroy
      Src: /src/pacemaker/lib/common/ipc_server.c:1054,1
    - Dst: qb_ipcs_destroy
      Src: /src/pacemaker/lib/common/ipc_server.c:1053,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - ipcs_ro
    - ipcs_rw
    - ipcs_shm
    argTypes:
    - qb_ipcs_service_t*
    - qb_ipcs_service_t*
    - qb_ipcs_service_t*
    constantsTouched: []
    func_position:
      end: 1055
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1055
    functionName: pcmk__stop_based_ipc
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - qb_ipcs_destroy
    linkageType: ''
    returnType: void
    signature: 'void pcmk__stop_based_ipc(qb_ipcs_service_t *ipcs_ro, qb_ipcs_service_t
      *ipcs_rw, qb_ipcs_service_t *ipcs_shm) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_queue_new
      Src: /src/pacemaker/lib/common/ipc_server.c:277,1
    - Dst: g_queue_push_tail
      Src: /src/pacemaker/lib/common/ipc_server.c:279,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - c
    - iov
    argTypes:
    - pcmk__client_t*
    - struct iovec*
    constantsTouched: []
    func_position:
      end: 280
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 280
    functionName: add_event
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - g_queue_new
    - g_queue_push_tail
    linkageType: ''
    returnType: void
    signature: 'static void add_event(pcmk__client_t *c, struct iovec *iov) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/ipc_server.c:350,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/ipc_server.c:355,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/lib/common/ipc_server.c:369,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/ipc_server.c:368,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/ipc_server.c:354,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/ipc_server.c:370,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/ipc_server.c:370,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/common/ipc_server.c:373,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/lib/common/ipc_server.c:374,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - client
    - qmax
    argTypes:
    - pcmk__client_t*
    - char*
    constantsTouched: []
    func_position:
      end: 377
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 377
    functionName: pcmk__set_client_queue_max
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - crm_debug
    - CRM_CHECK
    - pcmk__s
    - pcmk_is_set
    - pcmk__scan_ll
    - pcmk_rc_str
    - crm_info
    - pcmk__client_name
    linkageType: ''
    returnType: void
    signature: 'void pcmk__set_client_queue_max(pcmk__client_t *client, const char
      *qmax) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_add_ipc_server
      Src: /src/pacemaker/lib/common/ipc_server.c:1020,1
    - Dst: mainloop_add_ipc_server
      Src: /src/pacemaker/lib/common/ipc_server.c:1026,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/ipc_server.c:1030,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/common/ipc_server.c:1031,1
    - Dst: mainloop_add_ipc_server
      Src: /src/pacemaker/lib/common/ipc_server.c:1023,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/common/ipc_server.c:1032,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 16
    argCount: 5
    argNames:
    - ipcs_ro
    - ipcs_rw
    - ipcs_shm
    - ro_cb
    - rw_cb
    argTypes:
    - qb_ipcs_service_t**
    - qb_ipcs_service_t**
    - qb_ipcs_service_t**
    - struct qb_ipcs_service_handlers*
    - struct qb_ipcs_service_handlers*
    constantsTouched: []
    func_position:
      end: 1034
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1034
    functionName: pcmk__serve_based_ipc
    functionSourceFile: /src/pacemaker/lib/common/ipc_server.c
    functionUses: []
    functionsReached:
    - crm_exit
    - crm_warn
    - mainloop_add_ipc_server
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void pcmk__serve_based_ipc(qb_ipcs_service_t **ipcs_ro, qb_ipcs_service_t
      **ipcs_rw, qb_ipcs_service_t **ipcs_shm, struct qb_ipcs_service_handlers *ro_cb,
      struct qb_ipcs_service_handlers *rw_cb) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/pacemaker/lib/common/pid.c:27,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/pid.c:39,1
    - Dst: pcmk__procfs_has_pids
      Src: /src/pacemaker/lib/common/pid.c:31,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/pid.c:40,1
    - Dst: pcmk__procfs_pid2path
      Src: /src/pacemaker/lib/common/pid.c:51,1
    - Dst: kill
      Src: /src/pacemaker/lib/common/pid.c:55,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/common/pid.c:61,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/pid.c:63,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/common/pid.c:65,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/pid.c:67,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/pid.c:80,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/pid.c:86,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/pid.c:83,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 2
    argNames:
    - pid
    - daemon
    argTypes:
    - pid_t
    - char*
    constantsTouched: []
    func_position:
      end: 92
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 92
    functionName: pcmk__pid_active
    functionSourceFile: /src/pacemaker/lib/common/pid.c
    functionUses: []
    functionsReached:
    - kill
    - snprintf
    - strcmp
    - crm_err
    - pcmk_rc_str
    - pcmk__procfs_pid2path
    - crm_info
    - pcmk__procfs_has_pids
    linkageType: ''
    returnType: int
    signature: 'int pcmk__pid_active(pid_t pid, const char *daemon) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/common/pid.c:114,1
    - Dst: fstat
      Src: /src/pacemaker/lib/common/pid.c:121,1
    - Dst: open
      Src: /src/pacemaker/lib/common/pid.c:116,1
    - Dst: sleep
      Src: /src/pacemaker/lib/common/pid.c:122,1
    - Dst: read
      Src: /src/pacemaker/lib/common/pid.c:127,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/common/pid.c:133,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/common/pid.c:141,1
    - Dst: close
      Src: /src/pacemaker/lib/common/pid.c:150,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - filename
    - pid
    argTypes:
    - char*
    - pid_t*
    constantsTouched: []
    func_position:
      end: 152
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 152
    functionName: pcmk__read_pidfile
    functionSourceFile: /src/pacemaker/lib/common/pid.c
    functionUses: []
    functionsReached:
    - sleep
    - CRM_CHECK
    - crm_trace
    - open
    - read
    - fstat
    - close
    - sscanf
    linkageType: ''
    returnType: int
    signature: 'int pcmk__read_pidfile(const char *filename, pid_t *pid) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__read_pidfile
      Src: /src/pacemaker/lib/common/pid.c:171,1
    - Dst: unlink
      Src: /src/pacemaker/lib/common/pid.c:179,1
    - Dst: unlink
      Src: /src/pacemaker/lib/common/pid.c:188,1
    - Dst: pcmk__pid_active
      Src: /src/pacemaker/lib/common/pid.c:186,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 4
    argNames:
    - filename
    - expected_pid
    - expected_name
    - pid
    argTypes:
    - char*
    - pid_t
    - char*
    - pid_t*
    constantsTouched: []
    func_position:
      end: 197
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 197
    functionName: pcmk__pidfile_matches
    functionSourceFile: /src/pacemaker/lib/common/pid.c
    functionUses: []
    functionsReached:
    - pcmk__pid_active
    - pcmk__read_pidfile
    - unlink
    linkageType: ''
    returnType: int
    signature: 'int pcmk__pidfile_matches(const char *filename, pid_t expected_pid,
      const char *expected_name, pid_t *pid) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/pacemaker/lib/common/pid.c:211,1
    - Dst: write
      Src: /src/pacemaker/lib/common/pid.c:228,1
    - Dst: open
      Src: /src/pacemaker/lib/common/pid.c:222,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/pid.c:227,1
    - Dst: pcmk__pidfile_matches
      Src: /src/pacemaker/lib/common/pid.c:216,1
    - Dst: close
      Src: /src/pacemaker/lib/common/pid.c:229,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/common/pid.c:232,1
    - Dst: pcmk__pidfile_matches
      Src: /src/pacemaker/lib/common/pid.c:236,1
    - Dst: unlink
      Src: /src/pacemaker/lib/common/pid.c:239,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - filename
    - name
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 242
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 242
    functionName: pcmk__lock_pidfile
    functionSourceFile: /src/pacemaker/lib/common/pid.c
    functionUses: []
    functionsReached:
    - pcmk__pidfile_matches
    - crm_perror
    - write
    - open
    - unlink
    - getpid
    - snprintf
    - close
    linkageType: ''
    returnType: int
    signature: 'int pcmk__lock_pidfile(const char *filename, const char *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:55,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:53,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:60,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:61,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:68,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:67,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:56,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:57,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:64,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:70,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:63,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:71,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:53,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:54,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:58,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:60,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:69,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:67,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:65,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:62,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:72,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 73
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 73
    functionName: rsc_just_underbars
    functionSourceFile: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_true
    - assert_int_equal
    - free
    - parse_op_key
    linkageType: ''
    returnType: void
    signature: 'static void rsc_just_underbars(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:104,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:104,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:107,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:106,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:105,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:108,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:109,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:111,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:111,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:112,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:114,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:113,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:116,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 117
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 117
    functionName: dashes_in_rsc
    functionSourceFile: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_true
    - assert_int_equal
    - free
    - parse_op_key
    linkageType: ''
    returnType: void
    signature: 'static void dashes_in_rsc(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:155,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:156,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:162,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:164,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:167,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:171,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:169,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:174,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:176,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:158,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:159,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:179,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:180,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:181,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:155,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:157,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:160,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:162,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:163,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:170,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:169,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:176,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:178,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:182,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:165,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:172,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:166,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 183
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 183
    functionName: pre_post
    functionSourceFile: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_true
    - assert_int_equal
    - free
    - parse_op_key
    linkageType: ''
    returnType: void
    signature: 'static void pre_post(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:203,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:204,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:203,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:205,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 207
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 207
    functionName: skip_ty
    functionSourceFile: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_true
    - assert_int_equal
    - free
    - parse_op_key
    linkageType: ''
    returnType: void
    signature: 'static void skip_ty(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:229,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:231,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:229,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:230,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:232,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:234,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:234,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:235,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:236,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:237,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 238
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 238
    functionName: empty_input
    functionSourceFile: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - assert_false
    - assert_int_equal
    - parse_op_key
    linkageType: ''
    returnType: void
    signature: 'static void empty_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:38,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:32,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:22,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:23,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:30,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:33,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:39,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:34,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:25,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:26,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:31,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:38,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:35,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:41,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:42,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:22,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:24,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:27,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:30,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:40,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:43,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 44
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 44
    functionName: basic
    functionSourceFile: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_true
    - assert_int_equal
    - free
    - parse_op_key
    linkageType: ''
    returnType: void
    signature: 'static void basic(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:143,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:144,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:126,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:127,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:133,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:134,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:140,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:142,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:145,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:129,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:130,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:136,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:137,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:126,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:128,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:131,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:133,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:141,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:140,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:135,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 146
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 146
    functionName: migrate_to_from
    functionSourceFile: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_true
    - assert_int_equal
    - free
    - parse_op_key
    linkageType: ''
    returnType: void
    signature: 'static void migrate_to_from(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:82,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:84,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:83,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:85,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:82,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:86,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:87,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:89,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:89,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:90,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:92,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:91,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:94,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 95
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 95
    functionName: colon_in_rsc
    functionSourceFile: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_true
    - assert_int_equal
    - free
    - parse_op_key
    linkageType: ''
    returnType: void
    signature: 'static void colon_in_rsc(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:191,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:194,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:192,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:191,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: skip_rsc
    functionSourceFile: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_true
    - assert_int_equal
    - free
    - parse_op_key
    linkageType: ''
    returnType: void
    signature: 'static void skip_rsc(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:215,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:218,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:217,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:216,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:215,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:219,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 220
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 220
    functionName: skip_ms
    functionSourceFile: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_true
    - free
    - parse_op_key
    linkageType: ''
    returnType: void
    signature: 'static void skip_ms(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:247,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:250,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:248,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:249,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:247,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:252,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:252,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:253,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:254,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:255,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:257,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:259,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:260,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:258,1
    - Dst: parse_op_key
      Src: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c:257,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 261
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 261
    functionName: malformed_input
    functionSourceFile: /src/pacemaker/lib/common/tests/actions/parse_op_key_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - assert_false
    - assert_int_equal
    - parse_op_key
    linkageType: ''
    returnType: void
    signature: 'static void malformed_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: null_create_fn
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: pcmk__output_t*
    signature: 'static pcmk__output_t *null_create_fn(char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:37,1
    - Dst: pcmk__output_formatters
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:37,1
    - Dst: pcmk__output_formatters
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:41,1
    - Dst: pcmk__register_format
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:40,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:40,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:42,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:42,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:44,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:45,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:50,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:52,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:55,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:52,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:57,1
    - Dst: pcmk__output_formatters
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:51,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:54,1
    - Dst: pcmk__register_format
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 58
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 58
    functionName: add_format
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - pcmk__unregister_formats
    - assert_int_equal
    - assert_ptr_equal
    - pcmk__register_format
    - pcmk__output_formatters
    - assert_null
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void add_format(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:26,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:27,1
    - Dst: pcmk__register_format
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:27,1
    - Dst: pcmk__register_format
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:26,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:28,1
    - Dst: pcmk__register_format
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: invalid_params
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - pcmk__register_format
    linkageType: ''
    returnType: void
    signature: 'static void invalid_params(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: null_create_fn_2
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_format_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: pcmk__output_t*
    signature: 'static pcmk__output_t *null_create_fn_2(char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: null_message_fn_2
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int null_message_fn_2(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: fake_text_free_priv
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void fake_text_free_priv(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_format
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: setup
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c
    functionUses: []
    functionsReached:
    - pcmk__register_format
    linkageType: ''
    returnType: int
    signature: 'static int setup(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__bare_output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:80,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:82,1
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:82,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:83,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:83,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 86
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 86
    functionName: invalid_entries
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c
    functionUses: []
    functionsReached:
    - pcmk__register_messages
    - assert_int_equal
    - pcmk__output_free
    - pcmk__assert_asserts
    - pcmk__bare_output_new
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void invalid_entries(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__bare_output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:118,1
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:120,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:121,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:122,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:121,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:122,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 125
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 125
    functionName: duplicate_message_ids
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c
    functionUses: []
    functionsReached:
    - pcmk__register_messages
    - g_hash_table_lookup
    - assert_ptr_equal
    - assert_int_equal
    - pcmk__output_free
    - pcmk__bare_output_new
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void duplicate_message_ids(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__bare_output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:156,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:159,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:159,1
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:158,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:160,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:160,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 163
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 163
    functionName: default_handler
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c
    functionUses: []
    functionsReached:
    - pcmk__register_messages
    - g_hash_table_lookup
    - assert_ptr_equal
    - assert_int_equal
    - pcmk__output_free
    - pcmk__bare_output_new
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void default_handler(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: null_message_fn
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int null_message_fn(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:38,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: mk_fake_text_output
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c
    functionUses: []
    functionsReached:
    - calloc
    linkageType: ''
    returnType: pcmk__output_t*
    signature: 'static pcmk__output_t *mk_fake_text_output(char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: fake_text_init
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool fake_text_init(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: teardown
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c
    functionUses: []
    functionsReached:
    - pcmk__unregister_formats
    linkageType: ''
    returnType: int
    signature: 'static int teardown(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__bare_output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:98,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:101,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:101,1
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:100,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:102,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:102,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:103,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:103,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: valid_entries
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c
    functionUses: []
    functionsReached:
    - pcmk__register_messages
    - g_hash_table_lookup
    - assert_ptr_equal
    - assert_int_equal
    - pcmk__output_free
    - pcmk__bare_output_new
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void valid_entries(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__bare_output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:137,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:140,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:140,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:141,1
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:139,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:141,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:142,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:142,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 145
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 145
    functionName: duplicate_functions
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c
    functionUses: []
    functionsReached:
    - pcmk__register_messages
    - g_hash_table_lookup
    - assert_ptr_equal
    - assert_int_equal
    - pcmk__output_free
    - pcmk__bare_output_new
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void duplicate_functions(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__bare_output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:175,1
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:177,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:179,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:178,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:178,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:179,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 182
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 182
    functionName: override_default_handler
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_messages_test.c
    functionUses: []
    functionsReached:
    - pcmk__register_messages
    - g_hash_table_lookup
    - assert_ptr_equal
    - assert_int_equal
    - pcmk__output_free
    - pcmk__bare_output_new
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void override_default_handler(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_format
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: setup
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c
    functionUses: []
    functionsReached:
    - pcmk__register_format
    linkageType: ''
    returnType: int
    signature: 'static int setup(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:31,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 45
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 45
    functionName: mk_fake_text_output
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c
    functionUses: []
    functionsReached:
    - calloc
    linkageType: ''
    returnType: pcmk__output_t*
    signature: 'static pcmk__output_t *mk_fake_text_output(char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:63,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: empty_formatters
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - pcmk__assert_asserts
    linkageType: ''
    returnType: void
    signature: 'static void empty_formatters(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:76,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: no_such_format
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void no_such_format(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:98,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:100,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:102,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:103,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:99,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:104,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:107,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:107,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 110
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 110
    functionName: fopen_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - expect_string
    - assert_int_equal
    - will_return
    linkageType: ''
    returnType: void
    signature: 'static void fopen_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:125,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:128,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:125,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:127,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:126,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:129,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:130,1
    - Dst: getenv
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:130,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 133
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 133
    functionName: everything_succeeds
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - assert_string_equal
    - assert_non_null
    - assert_ptr_equal
    - assert_int_equal
    - assert_false
    - pcmk__output_free
    - getenv
    linkageType: ''
    returnType: void
    signature: 'static void everything_succeeds(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: fake_text_init
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool fake_text_init(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: teardown
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c
    functionUses: []
    functionsReached:
    - pcmk__unregister_formats
    linkageType: ''
    returnType: int
    signature: 'static int teardown(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:69,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: invalid_params
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - pcmk__assert_asserts
    linkageType: ''
    returnType: void
    signature: 'static void invalid_params(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:85,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:86,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:87,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: create_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - expect_value
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void create_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:117,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: init_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void init_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:139,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:140,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:142,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c:139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: no_fmt_name_given
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - assert_string_equal
    - pcmk__output_free
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void no_fmt_name_given(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: fake_text_free_priv
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_new_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void fake_text_free_priv(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: null_create_fn
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__unregister_formats_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: pcmk__output_t*
    signature: 'static pcmk__output_t *null_create_fn(char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_format
      Src: /src/pacemaker/lib/common/tests/output/pcmk__unregister_formats_test.c:30,1
    - Dst: pcmk__output_formatters
      Src: /src/pacemaker/lib/common/tests/output/pcmk__unregister_formats_test.c:33,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/lib/common/tests/output/pcmk__unregister_formats_test.c:32,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/output/pcmk__unregister_formats_test.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: non_null_formatters
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__unregister_formats_test.c
    functionUses: []
    functionsReached:
    - pcmk__unregister_formats
    - assert_null
    - pcmk__register_format
    - pcmk__output_formatters
    linkageType: ''
    returnType: void
    signature: 'static void non_null_formatters(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/lib/common/tests/output/pcmk__unregister_formats_test.c:24,1
    - Dst: pcmk__output_formatters
      Src: /src/pacemaker/lib/common/tests/output/pcmk__unregister_formats_test.c:25,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/output/pcmk__unregister_formats_test.c:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: invalid_params
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__unregister_formats_test.c
    functionUses: []
    functionsReached:
    - pcmk__unregister_formats
    - assert_null
    - pcmk__output_formatters
    linkageType: ''
    returnType: void
    signature: 'static void invalid_params(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: function_called
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: failed_message_fn
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c
    functionUses: []
    functionsReached:
    - function_called
    linkageType: ''
    returnType: int
    signature: 'static int failed_message_fn(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: function_called
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: message_fn_2
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c
    functionUses: []
    functionsReached:
    - function_called
    linkageType: ''
    returnType: int
    signature: 'static int message_fn_2(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: fake_text_free_priv
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void fake_text_free_priv(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_format
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: setup
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c
    functionUses: []
    functionsReached:
    - pcmk__register_format
    linkageType: ''
    returnType: int
    signature: 'static int setup(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:82,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:84,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:85,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:86,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 89
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 89
    functionName: no_such_message
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - pcmk__assert_asserts
    - pcmk__output_free
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void no_such_message(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:124,1
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:125,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:127,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 130
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 130
    functionName: wrong_format
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - pcmk__output_free
    - pcmk__register_messages
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void wrong_format(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: function_called
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:16,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: default_message_fn
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c
    functionUses: []
    functionsReached:
    - function_called
    linkageType: ''
    returnType: int
    signature: 'static int default_message_fn(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: fake_text_init
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool fake_text_init(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: function_called
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: message_fn_1
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c
    functionUses: []
    functionsReached:
    - function_called
    linkageType: ''
    returnType: int
    signature: 'static int message_fn_1(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:50,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 64
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 64
    functionName: mk_fake_text_output
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c
    functionUses: []
    functionsReached:
    - calloc
    linkageType: ''
    returnType: pcmk__output_t*
    signature: 'static pcmk__output_t *mk_fake_text_output(char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: teardown
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c
    functionUses: []
    functionsReached:
    - pcmk__unregister_formats
    linkageType: ''
    returnType: int
    signature: 'static int teardown(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:102,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:106,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:105,1
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:103,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:107,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:108,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:109,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:110,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 113
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 113
    functionName: message_return_value
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - expect_function_call
    - pcmk__register_messages
    - assert_int_equal
    - pcmk__output_free
    linkageType: ''
    returnType: void
    signature: 'static void message_return_value(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:142,1
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:143,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:145,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:146,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 149
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 149
    functionName: default_called
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__call_message_test.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - expect_function_call
    - pcmk__register_messages
    - assert_int_equal
    - pcmk__output_free
    linkageType: ''
    returnType: void
    signature: 'static void default_called(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: null_message_fn
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int null_message_fn(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: function_called
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: fake_text_free_priv
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c
    functionUses: []
    functionsReached:
    - function_called
    linkageType: ''
    returnType: void
    signature: 'static void fake_text_free_priv(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_format
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: setup
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c
    functionUses: []
    functionsReached:
    - pcmk__register_format
    linkageType: ''
    returnType: int
    signature: 'static int setup(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c:64,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c:66,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: no_messages
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - expect_function_call
    - pcmk__output_free
    linkageType: ''
    returnType: void
    signature: 'static void no_messages(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c:32,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 46
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 46
    functionName: mk_fake_text_output
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c
    functionUses: []
    functionsReached:
    - calloc
    linkageType: ''
    returnType: pcmk__output_t*
    signature: 'static pcmk__output_t *mk_fake_text_output(char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: fake_text_init
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool fake_text_init(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: teardown
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c
    functionUses: []
    functionsReached:
    - pcmk__unregister_formats
    linkageType: ''
    returnType: int
    signature: 'static int teardown(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c:74,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c:77,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c:78,1
    - Dst: pcmk__register_message
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: messages
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_free_test.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - expect_function_call
    - pcmk__output_free
    - pcmk__register_message
    linkageType: ''
    returnType: void
    signature: 'static void messages(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: fake_text_init
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_and_clear_error_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool fake_text_init(pcmk__output_t *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_and_clear_error_test.c:34,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 50
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 50
    functionName: mk_fake_text_output
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_and_clear_error_test.c
    functionUses: []
    functionsReached:
    - calloc
    linkageType: ''
    returnType: pcmk__output_t*
    signature: 'static pcmk__output_t *mk_fake_text_output(char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_and_clear_error_test.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: teardown
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_and_clear_error_test.c
    functionUses: []
    functionsReached:
    - pcmk__unregister_formats
    linkageType: ''
    returnType: int
    signature: 'static int teardown(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_format
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_and_clear_error_test.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: setup
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_and_clear_error_test.c
    functionUses: []
    functionsReached:
    - pcmk__register_format
    linkageType: ''
    returnType: int
    signature: 'static int setup(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: function_called
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_and_clear_error_test.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - out
    - format
    - '...'
    argTypes:
    - pcmk__output_t*
    - char*
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: fake_text_err
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_and_clear_error_test.c
    functionUses: []
    functionsReached:
    - function_called
    linkageType: ''
    returnType: void
    signature: 'static void fake_text_err(pcmk__output_t *out, const char *format,
      ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: fake_text_free_priv
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_and_clear_error_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void fake_text_free_priv(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_and_clear_error_test.c:69,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_and_clear_error_test.c:76,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_and_clear_error_test.c:73,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_and_clear_error_test.c:74,1
    - Dst: g_set_error
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_and_clear_error_test.c:70,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/output/pcmk__output_and_clear_error_test.c:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 78
    functionName: standard_usage
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__output_and_clear_error_test.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - expect_function_call
    - pcmk__output_and_clear_error
    - g_set_error
    - pcmk__output_free
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void standard_usage(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:40,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: invalid_entries
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - pcmk__register_formats
    linkageType: ''
    returnType: void
    signature: 'static void invalid_entries(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: null_create_fn_2
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: pcmk__output_t*
    signature: 'static pcmk__output_t *null_create_fn_2(char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:73,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:77,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:76,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:76,1
    - Dst: pcmk__output_formatters
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:75,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:77,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 80
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 80
    functionName: duplicate_keys
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c
    functionUses: []
    functionsReached:
    - pcmk__register_formats
    - g_hash_table_lookup
    - pcmk__unregister_formats
    - assert_ptr_equal
    - assert_int_equal
    - pcmk__output_formatters
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void duplicate_keys(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: null_create_fn
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: pcmk__output_t*
    signature: 'static pcmk__output_t *null_create_fn(char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:56,1
    - Dst: pcmk__output_formatters
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:55,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:57,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:56,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:57,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:58,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:58,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 61
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 61
    functionName: valid_entries
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c
    functionUses: []
    functionsReached:
    - pcmk__register_formats
    - g_hash_table_lookup
    - pcmk__unregister_formats
    - assert_ptr_equal
    - assert_int_equal
    - pcmk__output_formatters
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void valid_entries(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:26,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:27,1
    - Dst: pcmk__output_formatters
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: no_formats
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - pcmk__output_formatters
    - pcmk__register_formats
    linkageType: ''
    returnType: void
    signature: 'static void no_formats(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:92,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:95,1
    - Dst: pcmk__output_formatters
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:94,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:96,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:95,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:96,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:97,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:97,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 100
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 100
    functionName: duplicate_values
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_formats_test.c
    functionUses: []
    functionsReached:
    - pcmk__register_formats
    - g_hash_table_lookup
    - pcmk__unregister_formats
    - assert_ptr_equal
    - assert_int_equal
    - pcmk__output_formatters
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void duplicate_values(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: fake_text_free_priv
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void fake_text_free_priv(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: null_message_fn_2
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int null_message_fn_2(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_format
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: setup
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c
    functionUses: []
    functionsReached:
    - pcmk__register_format
    linkageType: ''
    returnType: int
    signature: 'static int setup(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:70,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:72,1
    - Dst: pcmk__register_message
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:72,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:73,1
    - Dst: pcmk__register_message
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:73,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:74,1
    - Dst: pcmk__register_message
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:74,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:75,1
    - Dst: pcmk__register_message
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:75,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: null_params
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - pcmk__assert_asserts
    - pcmk__output_free
    - pcmk__register_message
    linkageType: ''
    returnType: void
    signature: 'static void null_params(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: null_message_fn
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int null_message_fn(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:38,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: mk_fake_text_output
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c
    functionUses: []
    functionsReached:
    - calloc
    linkageType: ''
    returnType: pcmk__output_t*
    signature: 'static pcmk__output_t *mk_fake_text_output(char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: fake_text_init
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool fake_text_init(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: teardown
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c
    functionUses: []
    functionsReached:
    - pcmk__unregister_formats
    linkageType: ''
    returnType: int
    signature: 'static int teardown(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__bare_output_new
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:84,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:91,1
    - Dst: pcmk__register_message
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:90,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:87,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:87,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:91,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:92,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:92,1
    - Dst: pcmk__register_message
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:97,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:98,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:101,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:99,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:98,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 102
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 102
    functionName: add_message
    functionSourceFile: /src/pacemaker/lib/common/tests/output/pcmk__register_message_test.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - assert_ptr_equal
    - pcmk__register_message
    - assert_int_equal
    - pcmk__output_free
    - pcmk__bare_output_new
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void add_message(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:22,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:23,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:25,1
    - Dst: pcmk__get_tmpdir
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:24,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:27,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:28,1
    - Dst: pcmk__get_tmpdir
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:29,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:30,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:32,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:33,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:35,1
    - Dst: pcmk__get_tmpdir
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 38
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 38
    functionName: getenv_returns_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - expect_string
    - pcmk__get_tmpdir
    - will_return
    linkageType: ''
    returnType: void
    signature: 'static void getenv_returns_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:47,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:48,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:50,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:52,1
    - Dst: pcmk__get_tmpdir
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:49,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:53,1
    - Dst: pcmk__get_tmpdir
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:54,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:55,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:57,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:58,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:60,1
    - Dst: pcmk__get_tmpdir
      Src: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 63
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 63
    functionName: getenv_returns_valid
    functionSourceFile: /src/pacemaker/lib/common/tests/io/pcmk__get_tmpdir_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - expect_string
    - pcmk__get_tmpdir
    - will_return
    linkageType: ''
    returnType: void
    signature: 'static void getenv_returns_valid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:18,1
    - Dst: pcmk__full_path
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:19,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:19,1
    - Dst: pcmk__full_path
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:18,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: function_asserts
    functionSourceFile: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c
    functionUses: []
    functionsReached:
    - pcmk__full_path
    - pcmk__assert_asserts
    linkageType: ''
    returnType: void
    signature: 'static void function_asserts(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__full_path
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:41,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:42,1
    - Dst: pcmk__full_path
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:45,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:42,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:43,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:46,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:46,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:47,1
    - Dst: pcmk__full_path
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:49,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:50,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:50,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: full_path
    functionSourceFile: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c
    functionUses: []
    functionsReached:
    - pcmk__full_path
    - free
    - strcmp
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void full_path(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_exits
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:25,1
    - Dst: pcmk__full_path
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:30,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: function_exits
    functionSourceFile: /src/pacemaker/lib/common/tests/io/pcmk__full_path_test.c
    functionUses: []
    functionsReached:
    - pcmk__full_path
    - expect_string
    - pcmk__assert_exits
    linkageType: ''
    returnType: void
    signature: 'static void function_exits(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:25,1
    - Dst: pcmk__new_message_as
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:27,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:27,1
    - Dst: pcmk__new_message_as
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:29,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:29,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:31,1
    - Dst: pcmk__new_message_as
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:31,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: invalid_arguments
    functionSourceFile: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_null
    - pcmk__xml_free
    - pcmk__new_message_as
    linkageType: ''
    returnType: void
    signature: 'static void invalid_arguments(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:65,1
    - Dst: pcmk__new_message_as
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:67,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:72,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:69,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:71,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:72,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:73,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:73,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:75,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:75,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:76,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:77,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:82,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:84,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:80,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:81,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 85
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 85
    functionName: optional_arguments_nonnull
    functionSourceFile: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_string_equal
    - assert_non_null
    - pcmk__xml_free
    - pcmk__new_message_as
    - crm_element_value
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void optional_arguments_nonnull(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:44,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:45,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:47,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:49,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:51,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:55,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:56,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:56,1
    - Dst: pcmk__new_message_as
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:41,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:44,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:43,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:45,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:51,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:54,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:47,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:55,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:54,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:52,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:49,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:57,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:58,1
    - Dst: pcmk__server_message_type
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:46,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 59
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 59
    functionName: optional_arguments_null
    functionSourceFile: /src/pacemaker/lib/common/tests/messages/pcmk__new_message_as_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_non_null
    - pcmk__server_message_type
    - pcmk__xml_free
    - pcmk__new_message_as
    - crm_element_value
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void optional_arguments_null(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:16,1
    - Dst: crm_parse_agent_spec
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:16,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:18,1
    - Dst: crm_parse_agent_spec
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:17,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:17,1
    - Dst: crm_parse_agent_spec
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:18,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:19,1
    - Dst: crm_parse_agent_spec
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:19,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 20
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 20
    functionName: all_params_null
    functionSourceFile: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - crm_parse_agent_spec
    linkageType: ''
    returnType: void
    signature: 'static void all_params_null(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:39,1
    - Dst: crm_parse_agent_spec
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:39,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: no_type
    functionSourceFile: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - crm_parse_agent_spec
    linkageType: ''
    returnType: void
    signature: 'static void no_type(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:63,1
    - Dst: crm_parse_agent_spec
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:63,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:66,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:64,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:65,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:68,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:69,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:70,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: get_all_values
    functionSourceFile: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - free
    - assert_int_equal
    - crm_parse_agent_spec
    linkageType: ''
    returnType: void
    signature: 'static void get_all_values(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:48,1
    - Dst: crm_parse_agent_spec
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:48,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:50,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:49,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:51,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:53,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:54,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: get_std_and_ty
    functionSourceFile: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - crm_parse_agent_spec
    - assert_int_equal
    - free
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void get_std_and_ty(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:28,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:29,1
    - Dst: crm_parse_agent_spec
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:28,1
    - Dst: crm_parse_agent_spec
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:29,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:30,1
    - Dst: crm_parse_agent_spec
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:30,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: no_prov_or_type
    functionSourceFile: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - crm_parse_agent_spec
    linkageType: ''
    returnType: void
    signature: 'static void no_prov_or_type(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:79,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:80,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:82,1
    - Dst: crm_parse_agent_spec
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:79,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:81,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:84,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c:85,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 86
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 86
    functionName: get_systemd_values
    functionSourceFile: /src/pacemaker/lib/common/tests/agents/crm_parse_agent_spec_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - crm_parse_agent_spec
    - assert_int_equal
    - free
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void get_systemd_values(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:47,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:48,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:48,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: lsb_standard
    functionSourceFile: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c
    functionUses: []
    functionsReached:
    - pcmk_get_ra_caps
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void lsb_standard(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:30,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:31,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:30,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: stonith_standard
    functionSourceFile: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c
    functionUses: []
    functionsReached:
    - pcmk_get_ra_caps
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void stonith_standard(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:21,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:21,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:22,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:22,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: ocf_standard
    functionSourceFile: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c
    functionUses: []
    functionsReached:
    - pcmk_get_ra_caps
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void ocf_standard(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:36,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:38,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:37,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:36,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:38,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:39,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: service_standard
    functionSourceFile: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c
    functionUses: []
    functionsReached:
    - pcmk_get_ra_caps
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void service_standard(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:54,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:55,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:53,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:54,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: unknown_standard
    functionSourceFile: /src/pacemaker/lib/common/tests/agents/pcmk_get_ra_caps_test.c
    functionUses: []
    functionsReached:
    - pcmk_get_ra_caps
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void unknown_standard(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk__effective_rc_test.c:19,1
    - Dst: pcmk__effective_rc
      Src: /src/pacemaker/lib/common/tests/agents/pcmk__effective_rc_test.c:19,1
    - Dst: pcmk__effective_rc
      Src: /src/pacemaker/lib/common/tests/agents/pcmk__effective_rc_test.c:20,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk__effective_rc_test.c:20,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk__effective_rc_test.c:21,1
    - Dst: pcmk__effective_rc
      Src: /src/pacemaker/lib/common/tests/agents/pcmk__effective_rc_test.c:21,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk__effective_rc_test.c:22,1
    - Dst: pcmk__effective_rc
      Src: /src/pacemaker/lib/common/tests/agents/pcmk__effective_rc_test.c:22,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk__effective_rc_test.c:28,1
    - Dst: pcmk__effective_rc
      Src: /src/pacemaker/lib/common/tests/agents/pcmk__effective_rc_test.c:28,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk__effective_rc_test.c:30,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk__effective_rc_test.c:31,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/agents/pcmk__effective_rc_test.c:29,1
    - Dst: pcmk__effective_rc
      Src: /src/pacemaker/lib/common/tests/agents/pcmk__effective_rc_test.c:31,1
    - Dst: pcmk__effective_rc
      Src: /src/pacemaker/lib/common/tests/agents/pcmk__effective_rc_test.c:30,1
    - Dst: pcmk__effective_rc
      Src: /src/pacemaker/lib/common/tests/agents/pcmk__effective_rc_test.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 32
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 32
    functionName: pcmk__effective_rc_test
    functionSourceFile: /src/pacemaker/lib/common/tests/agents/pcmk__effective_rc_test.c
    functionUses: []
    functionsReached:
    - pcmk__effective_rc
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void pcmk__effective_rc_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c:16,1
    - Dst: crm_generate_ra_key
      Src: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c:16,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: all_params_null
    functionSourceFile: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - crm_generate_ra_key
    linkageType: ''
    returnType: void
    signature: 'static void all_params_null(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c:23,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c:26,1
    - Dst: crm_generate_ra_key
      Src: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c:23,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c:27,1
    - Dst: crm_generate_ra_key
      Src: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c:25,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c:29,1
    - Dst: crm_generate_ra_key
      Src: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c:29,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c:30,1
    - Dst: crm_generate_ra_key
      Src: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c:30,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c:31,1
    - Dst: crm_generate_ra_key
      Src: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c:31,1
    - Dst: crm_generate_ra_key
      Src: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c:32,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: some_params_null
    functionSourceFile: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_null
    - free
    - crm_generate_ra_key
    linkageType: ''
    returnType: void
    signature: 'static void some_params_null(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_generate_ra_key
      Src: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c:39,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c:40,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: no_params_null
    functionSourceFile: /src/pacemaker/lib/common/tests/agents/crm_generate_ra_key_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - free
    - crm_generate_ra_key
    linkageType: ''
    returnType: void
    signature: 'static void no_params_null(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:17,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:18,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:19,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:19,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:22,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:24,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:22,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:17,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:21,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:25,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:25,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:27,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:27,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:29,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:29,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:31,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:31,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:18,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:20,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:21,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:20,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:26,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:24,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:26,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:28,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:28,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:30,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:30,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:32,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 33
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 33
    functionName: is_stonith_param
    functionSourceFile: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk_stonith_param
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void is_stonith_param(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:41,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:42,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:42,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:43,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:41,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:43,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:44,1
    - Dst: pcmk_stonith_param
      Src: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: is_stonith_action_param
    functionSourceFile: /src/pacemaker/lib/common/tests/agents/pcmk_stonith_param_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk_stonith_param
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void is_stonith_action_param(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:38,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:40,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:39,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:38,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:39,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: test_for_crm_exit_str
    functionSourceFile: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - crm_exit_str
    linkageType: ''
    returnType: void
    signature: 'static void test_for_crm_exit_str(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:26,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:26,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:28,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:27,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:27,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: test_for_pcmk_rc_str
    functionSourceFile: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk_rc_str
    linkageType: ''
    returnType: void
    signature: 'static void test_for_pcmk_rc_str(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:18,1
    - Dst: pcmk_rc_name
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:19,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:19,1
    - Dst: pcmk_rc_name
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:18,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:20,1
    - Dst: pcmk_rc_name
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:20,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:21,1
    - Dst: pcmk_rc_name
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:21,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: test_for_pcmk_rc_name
    functionSourceFile: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk_rc_name
    linkageType: ''
    returnType: void
    signature: 'static void test_for_pcmk_rc_name(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:45,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:46,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:45,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: test_for_pcmk_rc2exitc
    functionSourceFile: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c
    functionUses: []
    functionsReached:
    - pcmk_rc2exitc
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void test_for_pcmk_rc2exitc(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:33,1
    - Dst: crm_exit_name
      Src: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: test_for_crm_exit_name
    functionSourceFile: /src/pacemaker/lib/common/tests/results/pcmk__results_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - crm_exit_name
    linkageType: ''
    returnType: void
    signature: 'static void test_for_crm_exit_name(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_any_flags_set_test.c:15,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_any_flags_set_test.c:16,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_any_flags_set_test.c:16,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_any_flags_set_test.c:17,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_any_flags_set_test.c:15,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_any_flags_set_test.c:17,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_any_flags_set_test.c:18,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_any_flags_set_test.c:18,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_any_flags_set_test.c:19,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_any_flags_set_test.c:19,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_any_flags_set_test.c:20,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_any_flags_set_test.c:21,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_any_flags_set_test.c:20,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_any_flags_set_test.c:21,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 22
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 22
    functionName: any_set
    functionSourceFile: /src/pacemaker/lib/common/tests/flags/pcmk_any_flags_set_test.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - assert_true
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void any_set(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/flags/pcmk__set_flags_as_test.c:15,1
    - Dst: pcmk__set_flags_as
      Src: /src/pacemaker/lib/common/tests/flags/pcmk__set_flags_as_test.c:17,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/flags/pcmk__set_flags_as_test.c:19,1
    - Dst: pcmk__set_flags_as
      Src: /src/pacemaker/lib/common/tests/flags/pcmk__set_flags_as_test.c:15,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/flags/pcmk__set_flags_as_test.c:17,1
    - Dst: pcmk__set_flags_as
      Src: /src/pacemaker/lib/common/tests/flags/pcmk__set_flags_as_test.c:19,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 21
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 21
    functionName: set_flags
    functionSourceFile: /src/pacemaker/lib/common/tests/flags/pcmk__set_flags_as_test.c
    functionUses: []
    functionsReached:
    - pcmk__set_flags_as
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void set_flags(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/flags/pcmk__clear_flags_as_test.c:15,1
    - Dst: pcmk__clear_flags_as
      Src: /src/pacemaker/lib/common/tests/flags/pcmk__clear_flags_as_test.c:17,1
    - Dst: pcmk__clear_flags_as
      Src: /src/pacemaker/lib/common/tests/flags/pcmk__clear_flags_as_test.c:15,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/flags/pcmk__clear_flags_as_test.c:17,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: clear_none
    functionSourceFile: /src/pacemaker/lib/common/tests/flags/pcmk__clear_flags_as_test.c
    functionUses: []
    functionsReached:
    - pcmk__clear_flags_as
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void clear_none(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/flags/pcmk__clear_flags_as_test.c:23,1
    - Dst: pcmk__clear_flags_as
      Src: /src/pacemaker/lib/common/tests/flags/pcmk__clear_flags_as_test.c:25,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/flags/pcmk__clear_flags_as_test.c:25,1
    - Dst: pcmk__clear_flags_as
      Src: /src/pacemaker/lib/common/tests/flags/pcmk__clear_flags_as_test.c:23,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: clear_some
    functionSourceFile: /src/pacemaker/lib/common/tests/flags/pcmk__clear_flags_as_test.c
    functionUses: []
    functionsReached:
    - pcmk__clear_flags_as
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void clear_some(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/flags/pcmk__clear_flags_as_test.c:31,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/flags/pcmk__clear_flags_as_test.c:33,1
    - Dst: pcmk__clear_flags_as
      Src: /src/pacemaker/lib/common/tests/flags/pcmk__clear_flags_as_test.c:33,1
    - Dst: pcmk__clear_flags_as
      Src: /src/pacemaker/lib/common/tests/flags/pcmk__clear_flags_as_test.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: clear_all
    functionSourceFile: /src/pacemaker/lib/common/tests/flags/pcmk__clear_flags_as_test.c
    functionUses: []
    functionsReached:
    - pcmk__clear_flags_as
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void clear_all(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_all_flags_set_test.c:15,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_all_flags_set_test.c:16,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_all_flags_set_test.c:16,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_all_flags_set_test.c:15,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_all_flags_set_test.c:17,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_all_flags_set_test.c:17,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_all_flags_set_test.c:18,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_all_flags_set_test.c:18,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_all_flags_set_test.c:19,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_all_flags_set_test.c:19,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_all_flags_set_test.c:20,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_all_flags_set_test.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 21
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 21
    functionName: all_set
    functionSourceFile: /src/pacemaker/lib/common/tests/flags/pcmk_all_flags_set_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - assert_false
    - pcmk_all_flags_set
    linkageType: ''
    returnType: void
    signature: 'static void all_set(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_all_flags_set_test.c:26,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_all_flags_set_test.c:26,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_all_flags_set_test.c:27,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/tests/flags/pcmk_all_flags_set_test.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: one_is_set
    functionSourceFile: /src/pacemaker/lib/common/tests/flags/pcmk_all_flags_set_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk_is_set
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void one_is_set(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_name_test.c:17,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_name_test.c:17,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: empty_params
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/crm_meta_name_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - crm_meta_name
    linkageType: ''
    returnType: void
    signature: 'static void empty_params(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_name_test.c:25,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_name_test.c:26,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_name_test.c:29,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_name_test.c:27,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_name_test.c:30,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_name_test.c:31,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_name_test.c:33,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_name_test.c:34,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_name_test.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: standard_usage
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/crm_meta_name_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - free
    - crm_meta_name
    linkageType: ''
    returnType: void
    signature: 'static void standard_usage(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_set_bool_attr_test.c:18,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_set_bool_attr_test.c:21,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_set_bool_attr_test.c:20,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_set_bool_attr_test.c:23,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_set_bool_attr_test.c:23,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_set_bool_attr_test.c:24,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_set_bool_attr_test.c:24,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_set_bool_attr_test.c:26,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 27
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 27
    functionName: set_attr
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_set_bool_attr_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__xe_set_bool_attr
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void set_attr(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:27,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:33,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:29,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:30,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:38,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:39,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - value
    - expected_rc
    - expected_flags
    argTypes:
    - char*
    - int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 42
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 42
    functionName: assert_flags
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_true
    - assert_non_null
    - crm_xml_add
    - pcmk__xe_get_flags
    - assert_int_equal
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void assert_flags(const char *value, int expected_rc, unsigned
      int expected_flags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:94,1
    - Dst: assert_flags
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:98,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:99,1
    - Dst: assert_flags
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:97,1
    - Dst: assert_flags
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: invalid_attr_default
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c
    functionUses: []
    functionsReached:
    - free
    - assert_flags
    - crm_strdup_printf
    linkageType: ''
    returnType: void
    signature: 'static void invalid_attr_default(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:77,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:81,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:77,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:82,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 83
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 83
    functionName: null_xml_default
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk__xe_get_flags
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void null_xml_default(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_flags
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: no_attr_default
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c
    functionUses: []
    functionsReached:
    - assert_flags
    linkageType: ''
    returnType: void
    signature: 'static void no_attr_default(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:49,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:51,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:56,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:53,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:53,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:56,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:59,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:60,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:61,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:64,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:65,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:66,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 69
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 69
    functionName: null_name_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_true
    - assert_non_null
    - pcmk__xe_get_flags
    - assert_int_equal
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void null_name_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_flags
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:105,1
    - Dst: assert_flags
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:106,1
    - Dst: assert_flags
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:107,1
    - Dst: assert_flags
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: valid_attr
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_flags_test.c
    functionUses: []
    functionsReached:
    - assert_flags
    linkageType: ''
    returnType: void
    signature: 'static void valid_attr(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:70,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:80,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:85,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:89,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:91,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:88,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:97,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:98,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:72,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:84,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:85,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:93,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:94,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:96,1
    - Dst: pcmk__unpack_nvpair_block
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:82,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:83,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:84,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:92,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:86,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:93,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:81,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:83,1
    - Dst: pcmk__unpack_nvpair_block
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:90,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:92,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:91,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:94,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 99
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 99
    functionName: with_rules
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__unpack_nvpair_block
    - g_hash_table_lookup
    - assert_non_null
    - g_hash_table_destroy
    - pcmk__strkey_table
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - assert_null
    - crm_time_free
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void with_rules(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:135,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:142,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:144,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:149,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:150,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:152,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:155,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:158,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:147,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:154,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:155,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:145,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:146,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:153,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:154,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:156,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:144,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:141,1
    - Dst: pcmk__unpack_nvpair_block
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:143,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:145,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:146,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:153,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:152,1
    - Dst: pcmk__unpack_nvpair_block
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 159
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 159
    functionName: with_overwrite
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__unpack_nvpair_block
    - g_hash_table_lookup
    - assert_non_null
    - g_hash_table_destroy
    - pcmk__strkey_table
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void with_overwrite(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:52,1
    - Dst: pcmk__unpack_nvpair_block
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:56,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:57,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:54,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:56,1
    - Dst: pcmk__unpack_nvpair_block
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:57,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:58,1
    - Dst: pcmk__unpack_nvpair_block
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:58,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:59,1
    - Dst: pcmk__unpack_nvpair_block
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:59,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:65,1
    - Dst: pcmk__unpack_nvpair_block
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:62,1
    - Dst: g_hash_table_new
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:61,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:62,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 66
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 66
    functionName: invalid_args
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c
    functionUses: []
    functionsReached:
    - pcmk__unpack_nvpair_block
    - assert_non_null
    - g_hash_table_destroy
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk__assert_asserts
    - g_hash_table_new
    linkageType: ''
    returnType: void
    signature: 'static void invalid_args(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:116,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:122,1
    - Dst: pcmk__unpack_nvpair_block
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:121,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:124,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:125,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:115,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:116,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:119,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:120,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:122,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:123,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:124,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:126,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:114,1
    - Dst: pcmk__unpack_nvpair_block
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:113,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:111,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:115,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:117,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:123,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:105,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:112,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:114,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:125,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 129
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 129
    functionName: without_overwrite
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__unpack_nvpair_block
    - g_hash_table_lookup
    - assert_non_null
    - g_hash_table_destroy
    - pcmk__strkey_table
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void without_overwrite(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:165,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:171,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:168,1
    - Dst: pcmk__unpack_nvpair_block
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:172,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:173,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:173,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:174,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:174,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:175,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:175,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:176,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c:178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 179
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 179
    functionName: attributes_child
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__unpack_nvpair_block_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__unpack_nvpair_block
    - g_hash_table_lookup
    - assert_non_null
    - g_hash_table_destroy
    - pcmk__strkey_table
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void attributes_child(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:17,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:20,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:20,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:21,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:21,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:22,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:22,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:23,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:23,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 26
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 26
    functionName: empty_input
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xe_get_bool_attr
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void empty_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:31,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:34,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:35,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: attr_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xe_get_bool_attr
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void attr_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:41,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:49,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:46,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:46,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:49,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:50,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:51,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:51,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: attr_present
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_bool_attr_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - assert_int_equal
    - pcmk__xml_free
    - assert_false
    - pcmk__xml_parse
    - pcmk__xe_get_bool_attr
    linkageType: ''
    returnType: void
    signature: 'static void attr_present(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:59,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:56,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:63,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:65,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:65,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:75,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:75,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:82,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:54,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:58,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:63,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:73,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:73,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:55,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:69,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:69,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:79,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:79,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:84,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:60,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:67,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:67,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:77,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:77,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 85
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 85
    functionName: special_id_highest
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c
    functionUses: []
    functionsReached:
    - pcmk__cmp_nvpair_blocks
    - assert_non_null
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void special_id_highest(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:113,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:118,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:115,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:117,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:114,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:121,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:121,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:122,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:122,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:125,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:126,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:126,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:129,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:128,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:125,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 130
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 130
    functionName: highest_score_wins
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c
    functionUses: []
    functionsReached:
    - pcmk__cmp_nvpair_blocks
    - assert_non_null
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void highest_score_wins(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:34,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:34,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:36,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:46,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:45,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:44,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:40,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:41,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:45,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:44,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:30,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:39,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:40,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:48,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:35,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:35,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:36,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:39,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:41,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 49
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 49
    functionName: null_lowest
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c
    functionUses: []
    functionsReached:
    - pcmk__cmp_nvpair_blocks
    - assert_non_null
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void null_lowest(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:135,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:141,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:136,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:139,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:138,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:141,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:142,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:142,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:144,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 146
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 146
    functionName: invalid_score_is_0
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c
    functionUses: []
    functionsReached:
    - pcmk__cmp_nvpair_blocks
    - assert_non_null
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void invalid_score_is_0(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:90,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:94,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:91,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:93,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:99,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:99,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:102,1
    - Dst: pcmk__cmp_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:102,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:106,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 108
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 108
    functionName: null_special_id_ignored
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__cmp_nvpair_blocks_test.c
    functionUses: []
    functionsReached:
    - pcmk__cmp_nvpair_blocks
    - assert_non_null
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void null_special_id_ignored(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:19,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:21,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:21,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:22,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:22,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:24,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: empty_params
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c
    functionUses: []
    functionsReached:
    - crm_meta_value
    - pcmk__strkey_table
    - g_hash_table_destroy
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void empty_params(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:30,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:33,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:32,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:33,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:32,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: key_not_in_table
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c
    functionUses: []
    functionsReached:
    - crm_meta_value
    - pcmk__strkey_table
    - g_hash_table_destroy
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void key_not_in_table(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:41,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:43,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:43,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:43,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:44,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:44,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:45,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:47,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:47,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:48,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:48,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: key_in_table
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/crm_meta_value_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - g_hash_table_destroy
    - pcmk__strkey_table
    - crm_meta_name
    - strdup
    - crm_meta_value
    - g_hash_table_insert
    linkageType: ''
    returnType: void
    signature: 'static void key_in_table(void **state) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:22,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:26,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:32,1
    - Dst: pcmk__scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:22,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:28,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:34,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:37,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:38,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - input
    - expected_rc
    - expected_name
    - expected_value
    argTypes:
    - gchar*
    - int
    - gchar*
    - gchar*
    constantsTouched: []
    func_position:
      end: 39
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 39
    functionName: assert_scan_nvpair
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_int_equal
    - pcmk__scan_nvpair
    - g_free
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void assert_scan_nvpair(const gchar *input, int expected_rc,
      const gchar *expected_name, const gchar *expected_value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strdup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:58,1
    - Dst: pcmk__scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:61,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:61,1
    - Dst: pcmk__scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:60,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:60,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: already_allocated_asserts
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - g_free
    - g_strdup
    - pcmk__scan_nvpair
    linkageType: ''
    returnType: void
    signature: 'static void already_allocated_asserts(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: equal_sign_only
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c
    functionUses: []
    functionsReached:
    - assert_scan_nvpair
    linkageType: ''
    returnType: void
    signature: 'static void equal_sign_only(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: value_only
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c
    functionUses: []
    functionsReached:
    - assert_scan_nvpair
    linkageType: ''
    returnType: void
    signature: 'static void value_only(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: empty_input
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c
    functionUses: []
    functionsReached:
    - assert_scan_nvpair
    linkageType: ''
    returnType: void
    signature: 'static void empty_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:48,1
    - Dst: pcmk__scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:48,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:50,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:49,1
    - Dst: pcmk__scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:49,1
    - Dst: pcmk__scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:50,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 51
    functionName: null_asserts
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - pcmk__scan_nvpair
    linkageType: ''
    returnType: void
    signature: 'static void null_asserts(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:81,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: name_only
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c
    functionUses: []
    functionsReached:
    - assert_scan_nvpair
    linkageType: ''
    returnType: void
    signature: 'static void name_only(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:104,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:114,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:120,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:112,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:126,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:99,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:106,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:108,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:118,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:121,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:125,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:94,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:101,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:113,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:117,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:97,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:100,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:98,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:105,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:107,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:119,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:111,1
    - Dst: assert_scan_nvpair
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 127
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 127
    functionName: valid
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__scan_nvpair_test.c
    functionUses: []
    functionsReached:
    - assert_scan_nvpair
    linkageType: ''
    returnType: void
    signature: 'static void valid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:77,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:81,1
    - Dst: pcmk__xe_get_datetime
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:81,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:79,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:82,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:82,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:84,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:85,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:86,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 87
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 87
    functionName: attr_valid
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_int_equal
    - pcmk__xe_get_datetime
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void attr_valid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:53,1
    - Dst: crm_time_new_undefined
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:54,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:56,1
    - Dst: pcmk__xe_get_datetime
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:56,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:58,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: nonnull_time_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c
    functionUses: []
    functionsReached:
    - crm_time_new_undefined
    - pcmk__xe_get_datetime
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void nonnull_time_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:36,1
    - Dst: pcmk__xe_get_datetime
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:39,1
    - Dst: pcmk__xe_get_datetime
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:42,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:42,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:37,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:40,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:41,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:44,1
    - Dst: pcmk__xe_get_datetime
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:44,1
    - Dst: pcmk__xe_get_datetime
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:38,1
    - Dst: pcmk__xe_get_datetime
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:39,1
    - Dst: pcmk__xe_get_datetime
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:41,1
    - Dst: pcmk__xe_get_datetime
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:36,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:38,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:43,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:45,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 48
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 48
    functionName: null_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_get_datetime
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void null_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:92,1
    - Dst: pcmk__xe_get_datetime
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:95,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:95,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:99,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: attr_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_get_datetime
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void attr_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:65,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:69,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:71,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:68,1
    - Dst: pcmk__xe_get_datetime
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: attr_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_get_datetime_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_get_datetime
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void attr_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c:17,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c:19,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c:20,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c:19,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c:20,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c:21,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c:21,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c:23,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 24
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 24
    functionName: empty_input
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_attr_is_true
    - pcmk__xml_free
    - assert_false
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void empty_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c:38,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c:41,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c:40,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c:41,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c:40,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: attr_present
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk__xml_free
    - assert_false
    - pcmk__xml_parse
    - pcmk__xe_attr_is_true
    linkageType: ''
    returnType: void
    signature: 'static void attr_present(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c:29,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c:32,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c:31,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: attr_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk__xe_attr_is_true_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_attr_is_true
    - pcmk__xml_free
    - assert_false
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void attr_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:64,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:65,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:74,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:66,1
    - Dst: pcmk_unpack_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:72,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:74,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:75,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:76,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:77,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 78
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 78
    functionName: null_xml
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - pcmk__strkey_table
    - pcmk_unpack_nvpair_blocks
    - assert_int_equal
    - crm_time_new
    - crm_time_free
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void null_xml(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:159,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:160,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:173,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:174,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:174,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:175,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:187,1
    - Dst: pcmk_unpack_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:171,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:176,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:176,1
    - Dst: g_hash_table_remove_all
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:177,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:181,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:182,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:181,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:175,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:183,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:184,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:158,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:173,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:183,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:184,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:186,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:165,1
    - Dst: pcmk_unpack_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:179,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:182,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:188,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 189
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 189
    functionName: element_name
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - g_hash_table_lookup
    - assert_non_null
    - g_hash_table_destroy
    - pcmk__strkey_table
    - g_hash_table_remove_all
    - pcmk_unpack_nvpair_blocks
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - assert_null
    - crm_time_free
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void element_name(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:103,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:111,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:104,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:106,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:105,1
    - Dst: pcmk_unpack_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:112,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:114,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:114,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:115,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:115,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:116,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:119,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:122,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:121,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:117,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:116,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:120,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 123
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 123
    functionName: rule_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - g_hash_table_lookup
    - assert_non_null
    - g_hash_table_destroy
    - pcmk__strkey_table
    - pcmk_unpack_nvpair_blocks
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - crm_time_free
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void rule_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:139,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:148,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:144,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:144,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:151,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:128,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:132,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:131,1
    - Dst: pcmk_unpack_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:140,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:143,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:145,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:146,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:150,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:130,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:149,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:145,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:129,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:142,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:142,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:143,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:146,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:152,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 153
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 153
    functionName: rule_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - crm_time_compare
    - g_hash_table_lookup
    - assert_non_null
    - g_hash_table_destroy
    - pcmk__strkey_table
    - pcmk_unpack_nvpair_blocks
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - crm_time_free
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void rule_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:83,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:90,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:85,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:84,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:91,1
    - Dst: pcmk_unpack_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:91,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:95,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:96,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 98
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 98
    functionName: null_table
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - pcmk_unpack_nvpair_blocks
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - pcmk__assert_asserts
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void null_table(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:194,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:202,1
    - Dst: pcmk_unpack_nvpair_blocks
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:201,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:197,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:195,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:202,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:203,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:203,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:204,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:204,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:205,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:207,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:205,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 209
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 209
    functionName: first_id
    functionSourceFile: /src/pacemaker/lib/common/tests/nvpair/pcmk_unpack_nvpair_blocks_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - g_hash_table_lookup
    - assert_non_null
    - g_hash_table_destroy
    - pcmk__strkey_table
    - pcmk_unpack_nvpair_blocks
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void first_id(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:28,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:29,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:30,1
    - Dst: pcmk__env_option_enabled
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:30,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:32,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:33,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:34,1
    - Dst: pcmk__env_option_enabled
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 37
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 37
    functionName: enabled_true_value
    functionSourceFile: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c
    functionUses: []
    functionsReached:
    - expect_string
    - assert_true
    - pcmk__env_option_enabled
    - will_return
    linkageType: ''
    returnType: void
    signature: 'static void enabled_true_value(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:62,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:66,1
    - Dst: pcmk__env_option_enabled
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:64,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:63,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:64,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:67,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:68,1
    - Dst: pcmk__env_option_enabled
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:68,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:70,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:71,1
    - Dst: pcmk__env_option_enabled
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:72,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:74,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:75,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:78,1
    - Dst: pcmk__env_option_enabled
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:78,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 81
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 81
    functionName: enabled_daemon_in_list
    functionSourceFile: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c
    functionUses: []
    functionsReached:
    - expect_string
    - assert_true
    - pcmk__env_option_enabled
    - will_return
    linkageType: ''
    returnType: void
    signature: 'static void enabled_daemon_in_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:18,1
    - Dst: pcmk__env_option_enabled
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:19,1
    - Dst: pcmk__env_option_enabled
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:18,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:19,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 20
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 20
    functionName: disabled_null_value
    functionSourceFile: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c
    functionUses: []
    functionsReached:
    - pcmk__env_option_enabled
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void disabled_null_value(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:45,1
    - Dst: pcmk__env_option_enabled
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:47,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:49,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:46,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:47,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:50,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:51,1
    - Dst: pcmk__env_option_enabled
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 54
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 54
    functionName: disabled_false_value
    functionSourceFile: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c
    functionUses: []
    functionsReached:
    - expect_string
    - pcmk__env_option_enabled
    - assert_false
    - will_return
    linkageType: ''
    returnType: void
    signature: 'static void disabled_false_value(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:89,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:91,1
    - Dst: pcmk__env_option_enabled
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:91,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: disabled_daemon_not_in_list
    functionSourceFile: /src/pacemaker/lib/common/tests/options/pcmk__env_option_enabled_test.c
    functionUses: []
    functionsReached:
    - expect_string
    - pcmk__env_option_enabled
    - assert_false
    - will_return
    linkageType: ''
    returnType: void
    signature: 'static void disabled_daemon_not_in_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:22,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:32,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:24,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:23,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:31,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 36
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 36
    functionName: bad_input_string
    functionSourceFile: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c
    functionUses: []
    functionsReached:
    - pcmk__set_env_option
    linkageType: ''
    returnType: void
    signature: 'static void bad_input_string(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:80,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:87,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:85,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:86,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:88,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:89,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:96,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:97,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 101
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 101
    functionName: input_too_long_for_pcmk
    functionSourceFile: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c
    functionUses: []
    functionsReached:
    - expect_value
    - will_return
    - expect_string
    - snprintf
    - pcmk__set_env_option
    linkageType: ''
    returnType: void
    signature: 'static void input_too_long_for_pcmk(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:139,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:140,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:141,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:142,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 146
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 146
    functionName: valid_inputs_unset
    functionSourceFile: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c
    functionUses: []
    functionsReached:
    - expect_string
    - pcmk__set_env_option
    - will_return
    linkageType: ''
    returnType: void
    signature: 'static void valid_inputs_unset(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:109,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:113,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:111,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:112,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:110,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:114,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:115,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:116,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:117,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:120,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:121,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:123,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:124,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:122,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:128,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:125,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:127,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 131
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 131
    functionName: valid_inputs_set
    functionSourceFile: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c
    functionUses: []
    functionsReached:
    - pcmk__set_env_option
    - expect_string
    - expect_value
    - will_return
    linkageType: ''
    returnType: void
    signature: 'static void valid_inputs_set(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:55,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 61
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 61
    functionName: input_too_long_for_both
    functionSourceFile: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c
    functionUses: []
    functionsReached:
    - pcmk__set_env_option
    linkageType: ''
    returnType: void
    signature: 'static void input_too_long_for_both(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:154,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:158,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:156,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:157,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:155,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:165,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:166,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:167,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:168,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 172
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 172
    functionName: disable_compat
    functionSourceFile: /src/pacemaker/lib/common/tests/options/pcmk__set_env_option_test.c
    functionUses: []
    functionsReached:
    - pcmk__set_env_option
    - expect_string
    - expect_value
    - will_return
    linkageType: ''
    returnType: void
    signature: 'static void disable_compat(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:20,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:21,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:21,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 24
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 24
    functionName: empty_input_string
    functionSourceFile: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c
    functionUses: []
    functionsReached:
    - pcmk__env_option
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void empty_input_string(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:72,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:74,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:75,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:75,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 78
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 78
    functionName: input_too_long_for_pcmk
    functionSourceFile: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - will_return
    - pcmk__env_option
    - expect_string
    - snprintf
    linkageType: ''
    returnType: void
    signature: 'static void input_too_long_for_pcmk(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:103,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:105,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:104,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: value_found_pcmk
    functionSourceFile: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - expect_string
    - pcmk__env_option
    - will_return
    linkageType: ''
    returnType: void
    signature: 'static void value_found_pcmk(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:86,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:89,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:90,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:92,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:87,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 95
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 95
    functionName: value_not_found
    functionSourceFile: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c
    functionUses: []
    functionsReached:
    - expect_string
    - assert_null
    - pcmk__env_option
    - will_return
    linkageType: ''
    returnType: void
    signature: 'static void value_not_found(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:44,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 47
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 47
    functionName: input_too_long_for_both
    functionSourceFile: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c
    functionUses: []
    functionsReached:
    - pcmk__env_option
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void input_too_long_for_both(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:116,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:120,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:119,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:117,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:122,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 125
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 125
    functionName: value_found_ha
    functionSourceFile: /src/pacemaker/lib/common/tests/options/pcmk__env_option_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - expect_string
    - pcmk__env_option
    - will_return
    linkageType: ''
    returnType: void
    signature: 'static void value_found_ha(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/resources/pcmk_resource_is_managed_test.c:19,1
    - Dst: pcmk_resource_is_managed
      Src: /src/pacemaker/lib/common/tests/resources/pcmk_resource_is_managed_test.c:19,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: null_resource
    functionSourceFile: /src/pacemaker/lib/common/tests/resources/pcmk_resource_is_managed_test.c
    functionUses: []
    functionsReached:
    - assert_false
    - pcmk_resource_is_managed
    linkageType: ''
    returnType: void
    signature: 'static void null_resource(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/resources/pcmk_resource_is_managed_test.c:39,1
    - Dst: pcmk_resource_is_managed
      Src: /src/pacemaker/lib/common/tests/resources/pcmk_resource_is_managed_test.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: resource_is_not_managed
    functionSourceFile: /src/pacemaker/lib/common/tests/resources/pcmk_resource_is_managed_test.c
    functionUses: []
    functionsReached:
    - assert_false
    - pcmk_resource_is_managed
    linkageType: ''
    returnType: void
    signature: 'static void resource_is_not_managed(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/resources/pcmk_resource_is_managed_test.c:29,1
    - Dst: pcmk_resource_is_managed
      Src: /src/pacemaker/lib/common/tests/resources/pcmk_resource_is_managed_test.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: resource_is_managed
    functionSourceFile: /src/pacemaker/lib/common/tests/resources/pcmk_resource_is_managed_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk_resource_is_managed
    linkageType: ''
    returnType: void
    signature: 'static void resource_is_managed(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/resources/pcmk_resource_id_test.c:19,1
    - Dst: pcmk_resource_id
      Src: /src/pacemaker/lib/common/tests/resources/pcmk_resource_id_test.c:19,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: null_resource
    functionSourceFile: /src/pacemaker/lib/common/tests/resources/pcmk_resource_id_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - pcmk_resource_id
    linkageType: ''
    returnType: void
    signature: 'static void null_resource(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/resources/pcmk_resource_id_test.c:30,1
    - Dst: pcmk_resource_id
      Src: /src/pacemaker/lib/common/tests/resources/pcmk_resource_id_test.c:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: resource_with_id
    functionSourceFile: /src/pacemaker/lib/common/tests/resources/pcmk_resource_id_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk_resource_id
    linkageType: ''
    returnType: void
    signature: 'static void resource_with_id(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__quote_cmdline_test.c:18,1
    - Dst: pcmk__quote_cmdline
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__quote_cmdline_test.c:18,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: empty_input
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__quote_cmdline_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - pcmk__quote_cmdline
    linkageType: ''
    returnType: void
    signature: 'static void empty_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__quote_cmdline
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__quote_cmdline_test.c:46,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__quote_cmdline_test.c:47,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__quote_cmdline_test.c:48,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: spaces_with_quote
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__quote_cmdline_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - g_free
    - pcmk__quote_cmdline
    linkageType: ''
    returnType: void
    signature: 'static void spaces_with_quote(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__quote_cmdline
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__quote_cmdline_test.c:26,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__quote_cmdline_test.c:27,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__quote_cmdline_test.c:28,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: no_spaces
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__quote_cmdline_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - g_free
    - pcmk__quote_cmdline
    linkageType: ''
    returnType: void
    signature: 'static void no_spaces(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__quote_cmdline
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__quote_cmdline_test.c:36,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__quote_cmdline_test.c:38,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__quote_cmdline_test.c:37,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: spaces_no_quote
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__quote_cmdline_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - g_free
    - pcmk__quote_cmdline
    linkageType: ''
    returnType: void
    signature: 'static void spaces_no_quote(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:34,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:36,1
    - Dst: LISTS_EQ
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:39,1
    - Dst: LISTS_EQ
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:35,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:38,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:40,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 41
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 41
    functionName: no_specials
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c
    functionUses: []
    functionsReached:
    - LISTS_EQ
    - g_strfreev
    - pcmk__cmdline_preproc
    linkageType: ''
    returnType: void
    signature: 'static void no_specials(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:58,1
    - Dst: LISTS_EQ
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:59,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:60,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: double_dash
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c
    functionUses: []
    functionsReached:
    - LISTS_EQ
    - g_strfreev
    - pcmk__cmdline_preproc
    linkageType: ''
    returnType: void
    signature: 'static void double_dash(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:78,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:80,1
    - Dst: LISTS_EQ
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:79,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: special_arg_at_end
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c
    functionUses: []
    functionsReached:
    - LISTS_EQ
    - g_strfreev
    - pcmk__cmdline_preproc
    linkageType: ''
    returnType: void
    signature: 'static void special_arg_at_end(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:98,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:100,1
    - Dst: LISTS_EQ
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:99,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: negative_score
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c
    functionUses: []
    functionsReached:
    - LISTS_EQ
    - g_strfreev
    - pcmk__cmdline_preproc
    linkageType: ''
    returnType: void
    signature: 'static void negative_score(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:118,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:120,1
    - Dst: LISTS_EQ
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:119,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: negative_score_3
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c
    functionUses: []
    functionsReached:
    - LISTS_EQ
    - g_strfreev
    - pcmk__cmdline_preproc
    linkageType: ''
    returnType: void
    signature: 'static void negative_score_3(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:138,1
    - Dst: LISTS_EQ
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:139,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 141
    functionName: string_arg_with_dash_2
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c
    functionUses: []
    functionsReached:
    - LISTS_EQ
    - g_strfreev
    - pcmk__cmdline_preproc
    linkageType: ''
    returnType: void
    signature: 'static void string_arg_with_dash_2(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:26,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:26,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: empty_input
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - pcmk__cmdline_preproc
    linkageType: ''
    returnType: void
    signature: 'static void empty_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:68,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:70,1
    - Dst: LISTS_EQ
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:69,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: special_args
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c
    functionUses: []
    functionsReached:
    - LISTS_EQ
    - g_strfreev
    - pcmk__cmdline_preproc
    linkageType: ''
    returnType: void
    signature: 'static void special_args(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:48,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:50,1
    - Dst: LISTS_EQ
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:49,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: single_dash
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c
    functionUses: []
    functionsReached:
    - LISTS_EQ
    - g_strfreev
    - pcmk__cmdline_preproc
    linkageType: ''
    returnType: void
    signature: 'static void single_dash(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:88,1
    - Dst: LISTS_EQ
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:89,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:90,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: long_arg
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c
    functionUses: []
    functionsReached:
    - LISTS_EQ
    - g_strfreev
    - pcmk__cmdline_preproc
    linkageType: ''
    returnType: void
    signature: 'static void long_arg(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:108,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:110,1
    - Dst: LISTS_EQ
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:109,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: negative_score_2
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c
    functionUses: []
    functionsReached:
    - LISTS_EQ
    - g_strfreev
    - pcmk__cmdline_preproc
    linkageType: ''
    returnType: void
    signature: 'static void negative_score_2(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:128,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:130,1
    - Dst: LISTS_EQ
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:129,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: string_arg_with_dash
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c
    functionUses: []
    functionsReached:
    - LISTS_EQ
    - g_strfreev
    - pcmk__cmdline_preproc
    linkageType: ''
    returnType: void
    signature: 'static void string_arg_with_dash(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:148,1
    - Dst: g_strfreev
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:150,1
    - Dst: LISTS_EQ
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c:149,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: string_arg_with_dash_3
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__cmdline_preproc_test.c
    functionUses: []
    functionsReached:
    - LISTS_EQ
    - g_strfreev
    - pcmk__cmdline_preproc
    linkageType: ''
    returnType: void
    signature: 'static void string_arg_with_dash_3(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_exits
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__new_common_args_test.c:21,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__new_common_args_test.c:25,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__new_common_args_test.c:24,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__new_common_args_test.c:26,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 30
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 30
    functionName: calloc_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__new_common_args_test.c
    functionUses: []
    functionsReached:
    - expect_value
    - pcmk__assert_exits
    - pcmk__new_common_args
    linkageType: ''
    returnType: void
    signature: 'static void calloc_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__new_common_args_test.c:48,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__new_common_args_test.c:50,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__new_common_args_test.c:49,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__new_common_args_test.c:52,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__new_common_args_test.c:51,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__new_common_args_test.c:53,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__new_common_args_test.c:54,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__new_common_args_test.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: success
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__new_common_args_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_int_equal
    - assert_false
    - pcmk__new_common_args
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void success(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_exits
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__new_common_args_test.c:35,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__new_common_args_test.c:38,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/lib/common/tests/cmdline/pcmk__new_common_args_test.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: strdup_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/cmdline/pcmk__new_common_args_test.c
    functionUses: []
    functionsReached:
    - expect_string
    - pcmk__assert_exits
    - pcmk__new_common_args
    linkageType: ''
    returnType: void
    signature: 'static void strdup_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:17,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:20,1
    - Dst: pcmk_set_scheduler_cib
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:20,1
    - Dst: pcmk_set_scheduler_cib
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:19,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:19,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:22,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: null_scheduler
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk_set_scheduler_cib
    - pcmk__xml_free
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void null_scheduler(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:32,1
    - Dst: pcmk_set_scheduler_cib
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:32,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: null_cib
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c
    functionUses: []
    functionsReached:
    - pcmk_set_scheduler_cib
    - assert_null
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void null_cib(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:42,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:44,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:47,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:45,1
    - Dst: pcmk_set_scheduler_cib
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: previous_cib_null
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk_set_scheduler_cib
    - assert_int_equal
    - assert_ptr_equal
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void previous_cib_null(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:53,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:60,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:54,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:59,1
    - Dst: pcmk_set_scheduler_cib
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:59,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:62,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: previous_cib_nonnull
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk_set_scheduler_cib_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk_set_scheduler_cib
    - assert_int_equal
    - assert_ptr_equal
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void previous_cib_nonnull(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c:22,1
    - Dst: pcmk__update_recheck_time
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c:26,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c:27,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c:28,1
    - Dst: pcmk__copy_timet
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c:24,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - now_time
    - orig_time
    - update_time
    - expected_time
    - reason
    argTypes:
    - time_t
    - time_t
    - time_t
    - time_t
    - char*
    constantsTouched: []
    func_position:
      end: 29
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 29
    functionName: assert_recheck
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk_free_scheduler
    - pcmk__copy_timet
    - pcmk__update_recheck_time
    - pcmk_new_scheduler
    linkageType: ''
    returnType: void
    signature: 'static void assert_recheck(time_t now_time, time_t orig_time, time_t
      update_time, time_t expected_time, const char *reason) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_recheck
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: earlier_time
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c
    functionUses: []
    functionsReached:
    - assert_recheck
    linkageType: ''
    returnType: void
    signature: 'static void earlier_time(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_recheck
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c:43,1
    - Dst: assert_recheck
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c:47,1
    - Dst: assert_recheck
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c:48,1
    - Dst: assert_recheck
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: too_early
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c
    functionUses: []
    functionsReached:
    - assert_recheck
    linkageType: ''
    returnType: void
    signature: 'static void too_early(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c:35,1
    - Dst: pcmk__update_recheck_time
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: null_scheduler
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - pcmk__update_recheck_time
    linkageType: ''
    returnType: void
    signature: 'static void null_scheduler(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_recheck
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: first_time
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c
    functionUses: []
    functionsReached:
    - assert_recheck
    linkageType: ''
    returnType: void
    signature: 'static void first_time(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_recheck
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: later_time
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk__update_recheck_time_test.c
    functionUses: []
    functionsReached:
    - assert_recheck
    linkageType: ''
    returnType: void
    signature: 'static void later_time(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__set_scheduler_defaults_test.c:22,1
    - Dst: pcmk__set_scheduler_defaults
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__set_scheduler_defaults_test.c:22,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: null_scheduler
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk__set_scheduler_defaults_test.c
    functionUses: []
    functionsReached:
    - pcmk__set_scheduler_defaults
    - pcmk__assert_asserts
    linkageType: ''
    returnType: void
    signature: 'static void null_scheduler(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__set_scheduler_defaults_test.c:31,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__set_scheduler_defaults_test.c:42,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__set_scheduler_defaults_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__set_scheduler_defaults_test.c:43,1
    - Dst: pcmk__set_scheduler_defaults
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__set_scheduler_defaults_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__set_scheduler_defaults_test.c:44,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__set_scheduler_defaults_test.c:45,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__set_scheduler_defaults_test.c:46,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__set_scheduler_defaults_test.c:48,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk__set_scheduler_defaults_test.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 50
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 50
    functionName: check_defaults
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk__set_scheduler_defaults_test.c
    functionUses: []
    functionsReached:
    - pcmk__set_scheduler_defaults
    - pcmk__assert_alloc
    - assert_int_equal
    - free
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void check_defaults(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_new_scheduler_test.c:21,1
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_new_scheduler_test.c:23,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_new_scheduler_test.c:22,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_new_scheduler_test.c:23,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 26
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 26
    functionName: calloc_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk_new_scheduler_test.c
    functionUses: []
    functionsReached:
    - pcmk_new_scheduler
    - expect_value
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void calloc_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_new_scheduler_test.c:31,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_new_scheduler_test.c:40,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_new_scheduler_test.c:38,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_new_scheduler_test.c:41,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_new_scheduler_test.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 42
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 42
    functionName: calloc_succeeds
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk_new_scheduler_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - pcmk_new_scheduler
    - free
    linkageType: ''
    returnType: void
    signature: 'static void calloc_succeeds(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_has_quorum_test.c:18,1
    - Dst: pcmk_has_quorum
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_has_quorum_test.c:18,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: null_scheduler
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk_has_quorum_test.c
    functionUses: []
    functionsReached:
    - pcmk_has_quorum
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void null_scheduler(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_has_quorum_test.c:28,1
    - Dst: pcmk_has_quorum
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_has_quorum_test.c:31,1
    - Dst: pcmk_has_quorum
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_has_quorum_test.c:28,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_has_quorum_test.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: valid_scheduler
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk_has_quorum_test.c
    functionUses: []
    functionsReached:
    - pcmk_has_quorum
    - assert_true
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void valid_scheduler(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_get_no_quorum_policy_test.c:17,1
    - Dst: pcmk_get_no_quorum_policy
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_get_no_quorum_policy_test.c:17,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: null_scheduler
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk_get_no_quorum_policy_test.c
    functionUses: []
    functionsReached:
    - pcmk_get_no_quorum_policy
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void null_scheduler(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_get_no_quorum_policy_test.c:27,1
    - Dst: pcmk_get_no_quorum_policy
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_get_no_quorum_policy_test.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: valid_no_quorum_policy
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk_get_no_quorum_policy_test.c
    functionUses: []
    functionsReached:
    - pcmk_get_no_quorum_policy
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void valid_no_quorum_policy(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_get_dc_test.c:17,1
    - Dst: pcmk_get_dc
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_get_dc_test.c:17,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: null_scheduler
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk_get_dc_test.c
    functionUses: []
    functionsReached:
    - pcmk_get_dc
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void null_scheduler(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_get_dc_test.c:43,1
    - Dst: pcmk_get_dc
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_get_dc_test.c:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: valid_dc
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk_get_dc_test.c
    functionUses: []
    functionsReached:
    - pcmk_get_dc
    - assert_ptr_equal
    linkageType: ''
    returnType: void
    signature: 'static void valid_dc(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_get_dc_test.c:27,1
    - Dst: pcmk_get_dc
      Src: /src/pacemaker/lib/common/tests/scheduler/pcmk_get_dc_test.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: null_dc
    functionSourceFile: /src/pacemaker/lib/common/tests/scheduler/pcmk_get_dc_test.c
    functionUses: []
    functionsReached:
    - pcmk_get_dc
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void null_dc(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:38,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:40,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - rsc
    - user_data
    argTypes:
    - pcmk_resource_t*
    - void*
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: fn
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - free
    - crm_strdup_printf
    linkageType: ''
    returnType: bool
    signature: 'static bool fn(pcmk_resource_t *rsc, void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_foreach_active_resource
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:77,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 79
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: list_of_0
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c
    functionUses: []
    functionsReached:
    - pcmk_foreach_active_resource
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void list_of_0(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:110,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:116,1
    - Dst: pcmk_foreach_active_resource
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:115,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:111,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:112,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 119
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 119
    functionName: list_of_3
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c
    functionUses: []
    functionsReached:
    - pcmk_foreach_active_resource
    - g_list_free
    - g_list_append
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void list_of_3(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_foreach_active_resource
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:59,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:63,1
    - Dst: pcmk_foreach_active_resource
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:60,1
    - Dst: pcmk_foreach_active_resource
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 64
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 64
    functionName: null_args
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c
    functionUses: []
    functionsReached:
    - pcmk_foreach_active_resource
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void null_args(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:91,1
    - Dst: pcmk_foreach_active_resource
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:94,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:97,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 98
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 98
    functionName: list_of_1
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c
    functionUses: []
    functionsReached:
    - pcmk_foreach_active_resource
    - g_list_free
    - g_list_append
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void list_of_1(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:131,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:132,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:138,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:133,1
    - Dst: pcmk_foreach_active_resource
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:137,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c:140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 141
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 141
    functionName: list_of_3_return_false
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_foreach_active_resource_test.c
    functionUses: []
    functionsReached:
    - pcmk_foreach_active_resource
    - g_list_free
    - g_list_append
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void list_of_3_return_false(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_in_maintenance_test.c:20,1
    - Dst: pcmk_node_is_in_maintenance
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_in_maintenance_test.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: null_is_not_in_maintenance
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_in_maintenance_test.c
    functionUses: []
    functionsReached:
    - assert_false
    - pcmk_node_is_in_maintenance
    linkageType: ''
    returnType: void
    signature: 'static void null_is_not_in_maintenance(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_in_maintenance_test.c:47,1
    - Dst: pcmk_node_is_in_maintenance
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_in_maintenance_test.c:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: node_is_not_in_maintenance
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_in_maintenance_test.c
    functionUses: []
    functionsReached:
    - assert_false
    - pcmk_node_is_in_maintenance
    linkageType: ''
    returnType: void
    signature: 'static void node_is_not_in_maintenance(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_in_maintenance_test.c:34,1
    - Dst: pcmk_node_is_in_maintenance
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_in_maintenance_test.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: node_is_in_maintenance
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_in_maintenance_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk_node_is_in_maintenance
    linkageType: ''
    returnType: void
    signature: 'static void node_is_in_maintenance(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_clean_test.c:20,1
    - Dst: pcmk_node_is_clean
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_clean_test.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: null_is_unclean
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_clean_test.c
    functionUses: []
    functionsReached:
    - assert_false
    - pcmk_node_is_clean
    linkageType: ''
    returnType: void
    signature: 'static void null_is_unclean(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_clean_test.c:34,1
    - Dst: pcmk_node_is_clean
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_clean_test.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: node_is_clean
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_clean_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk_node_is_clean
    linkageType: ''
    returnType: void
    signature: 'static void node_is_clean(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_clean_test.c:47,1
    - Dst: pcmk_node_is_clean
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_clean_test.c:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: node_is_unclean
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_clean_test.c
    functionUses: []
    functionsReached:
    - assert_false
    - pcmk_node_is_clean
    linkageType: ''
    returnType: void
    signature: 'static void node_is_unclean(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_online_test.c:20,1
    - Dst: pcmk_node_is_online
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_online_test.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: null_is_offline
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_online_test.c
    functionUses: []
    functionsReached:
    - pcmk_node_is_online
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void null_is_offline(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_online_test.c:47,1
    - Dst: pcmk_node_is_online
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_online_test.c:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: node_is_offline
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_online_test.c
    functionUses: []
    functionsReached:
    - pcmk_node_is_online
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void node_is_offline(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_online_test.c:34,1
    - Dst: pcmk_node_is_online
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_online_test.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: node_is_online
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_online_test.c
    functionUses: []
    functionsReached:
    - pcmk_node_is_online
    - assert_true
    linkageType: ''
    returnType: void
    signature: 'static void node_is_online(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:36,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:40,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:38,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:39,1
    - Dst: pcmk_cib_node_shutdown
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:39,1
    - Dst: pcmk_cib_node_shutdown
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:40,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:41,1
    - Dst: pcmk_cib_node_shutdown
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:41,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: null_args
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - pcmk__xml_free
    - pcmk__xml_parse
    - assert_null
    - pcmk_cib_node_shutdown
    linkageType: ''
    returnType: void
    signature: 'static void null_args(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:48,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:50,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:52,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:51,1
    - Dst: pcmk_cib_node_shutdown
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:51,1
    - Dst: pcmk_cib_node_shutdown
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:52,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: shutdown_absent
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - pcmk__xml_free
    - pcmk__xml_parse
    - assert_null
    - pcmk_cib_node_shutdown
    linkageType: ''
    returnType: void
    signature: 'static void shutdown_absent(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:59,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:63,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:62,1
    - Dst: pcmk_cib_node_shutdown
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:62,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: shutdown_present
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_cib_node_shutdown_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_non_null
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk_cib_node_shutdown
    linkageType: ''
    returnType: void
    signature: 'static void shutdown_present(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_shutting_down_test.c:20,1
    - Dst: pcmk_node_is_shutting_down
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_shutting_down_test.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: null_is_not_shutting_down
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_shutting_down_test.c
    functionUses: []
    functionsReached:
    - pcmk_node_is_shutting_down
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void null_is_not_shutting_down(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_shutting_down_test.c:47,1
    - Dst: pcmk_node_is_shutting_down
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_shutting_down_test.c:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: node_is_not_shutting_down
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_shutting_down_test.c
    functionUses: []
    functionsReached:
    - pcmk_node_is_shutting_down
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void node_is_not_shutting_down(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_shutting_down_test.c:34,1
    - Dst: pcmk_node_is_shutting_down
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_shutting_down_test.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: node_is_shutting_down
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_shutting_down_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk_node_is_shutting_down
    linkageType: ''
    returnType: void
    signature: 'static void node_is_shutting_down(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:17,1
    - Dst: pcmk__find_node_in_list
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:18,1
    - Dst: pcmk__find_node_in_list
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:17,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:18,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: empty_list
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c
    functionUses: []
    functionsReached:
    - pcmk__find_node_in_list
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void empty_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:26,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:27,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:29,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:35,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:38,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:42,1
    - Dst: pcmk__find_node_in_list
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:42,1
    - Dst: pcmk__find_node_in_list
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:40,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:40,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:45,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:39,1
    - Dst: pcmk__find_node_in_list
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:39,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:47,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:30,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:36,1
    - Dst: pcmk__find_node_in_list
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:41,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:46,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:44,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:48,1
    - Dst: pcmk__find_node_in_list
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:38,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c:41,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 49
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 49
    functionName: non_null_list
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk__find_node_in_list_test.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_list_free
    - pcmk__assert_alloc
    - assert_ptr_equal
    - pcmk__find_node_in_list
    - free
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void non_null_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_pending_test.c:20,1
    - Dst: pcmk_node_is_pending
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_pending_test.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: null_is_not_pending
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_pending_test.c
    functionUses: []
    functionsReached:
    - pcmk_node_is_pending
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void null_is_not_pending(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_pending_test.c:47,1
    - Dst: pcmk_node_is_pending
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_pending_test.c:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: node_is_not_pending
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_pending_test.c
    functionUses: []
    functionsReached:
    - pcmk_node_is_pending
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void node_is_not_pending(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_pending_test.c:34,1
    - Dst: pcmk_node_is_pending
      Src: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_pending_test.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: node_is_pending
    functionSourceFile: /src/pacemaker/lib/common/tests/nodes/pcmk_node_is_pending_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk_node_is_pending
    linkageType: ''
    returnType: void
    signature: 'static void node_is_pending(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:35,1
    - Dst: pcmk__xml_doc_set_flags
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:39,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:36,1
    - Dst: xml_create_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:41,1
    - Dst: pcmk__xml_mark_changes
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:40,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:44,1
    - Dst: pcmk__cib_element_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:44,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:46,1
    - Dst: pcmk__cib_element_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:46,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:49,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:50,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:51,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 4
    argNames:
    - source_s
    - target_s
    - element
    - reference
    argTypes:
    - char*
    - char*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 52
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 52
    functionName: assert_in_patchset
    functionSourceFile: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk__xml_doc_set_flags
    - pcmk__xml_free
    - pcmk__cib_element_in_patchset
    - assert_false
    - pcmk__xml_parse
    - pcmk__xml_mark_changes
    - xml_create_patchset
    linkageType: ''
    returnType: void
    signature: 'static void assert_in_patchset(const char *source_s, const char *target_s,
      const char *element, bool reference) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:83,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:87,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:86,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 91
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 91
    functionName: create_op
    functionSourceFile: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c
    functionUses: []
    functionsReached:
    - assert_in_patchset
    linkageType: ''
    returnType: void
    signature: 'static void create_op(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:57,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:58,1
    - Dst: pcmk__cib_element_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:57,1
    - Dst: pcmk__cib_element_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: null_patchset_asserts
    functionSourceFile: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - pcmk__cib_element_in_patchset
    linkageType: ''
    returnType: void
    signature: 'static void null_patchset_asserts(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:181,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:184,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:190,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:191,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:187,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:194,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:195,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:198,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:199,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:202,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:203,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:205,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 206
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 206
    functionName: modify_op
    functionSourceFile: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c
    functionUses: []
    functionsReached:
    - assert_in_patchset
    linkageType: ''
    returnType: void
    signature: 'static void modify_op(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:226,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:231,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:234,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:227,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 235
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 235
    functionName: move_op
    functionSourceFile: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c
    functionUses: []
    functionsReached:
    - assert_in_patchset
    linkageType: ''
    returnType: void
    signature: 'static void move_op(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:97,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:101,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:100,1
    - Dst: assert_in_patchset
      Src: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 105
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 105
    functionName: delete_op
    functionSourceFile: /src/pacemaker/lib/common/tests/patchset/pcmk__cib_element_in_patchset_test.c
    functionUses: []
    functionsReached:
    - assert_in_patchset
    linkageType: ''
    returnType: void
    signature: 'static void delete_op(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/pcmk__is_user_in_group_test.c:23,1
    - Dst: pcmk__is_user_in_group
      Src: /src/pacemaker/lib/common/tests/acl/pcmk__is_user_in_group_test.c:25,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/pcmk__is_user_in_group_test.c:27,1
    - Dst: pcmk__is_user_in_group
      Src: /src/pacemaker/lib/common/tests/acl/pcmk__is_user_in_group_test.c:23,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/pcmk__is_user_in_group_test.c:25,1
    - Dst: pcmk__is_user_in_group
      Src: /src/pacemaker/lib/common/tests/acl/pcmk__is_user_in_group_test.c:27,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/acl/pcmk__is_user_in_group_test.c:29,1
    - Dst: pcmk__is_user_in_group
      Src: /src/pacemaker/lib/common/tests/acl/pcmk__is_user_in_group_test.c:29,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/pcmk__is_user_in_group_test.c:31,1
    - Dst: pcmk__is_user_in_group
      Src: /src/pacemaker/lib/common/tests/acl/pcmk__is_user_in_group_test.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 34
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 34
    functionName: is_pcmk__is_user_in_group
    functionSourceFile: /src/pacemaker/lib/common/tests/acl/pcmk__is_user_in_group_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk__is_user_in_group
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void is_pcmk__is_user_in_group(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c:19,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c:23,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c:20,1
    - Dst: xml_acl_enabled
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c:20,1
    - Dst: xml_acl_enabled
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c:23,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c:26,1
    - Dst: xml_acl_enabled
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c:26,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c:29,1
    - Dst: xml_acl_enabled
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 30
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 30
    functionName: is_xml_acl_enabled_without_node
    functionSourceFile: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - xml_acl_enabled
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void is_xml_acl_enabled_without_node(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c:37,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c:42,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c:50,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c:40,1
    - Dst: xml_acl_enabled
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c:42,1
    - Dst: xml_acl_enabled
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c:50,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c:55,1
    - Dst: xml_acl_enabled
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 56
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 56
    functionName: is_xml_acl_enabled_with_node
    functionSourceFile: /src/pacemaker/lib/common/tests/acl/xml_acl_enabled_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_true
    - pcmk__assert_alloc
    - assert_false
    - xml_acl_enabled
    linkageType: ''
    returnType: void
    signature: 'static void is_xml_acl_enabled_with_node(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c:19,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c:20,1
    - Dst: xml_acl_denied
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c:20,1
    - Dst: xml_acl_denied
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c:23,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c:23,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c:26,1
    - Dst: xml_acl_denied
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c:26,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c:29,1
    - Dst: xml_acl_denied
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 30
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 30
    functionName: is_xml_acl_denied_without_node
    functionSourceFile: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_false
    - xml_acl_denied
    linkageType: ''
    returnType: void
    signature: 'static void is_xml_acl_denied_without_node(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c:37,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c:50,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c:42,1
    - Dst: xml_acl_denied
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c:42,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c:40,1
    - Dst: xml_acl_denied
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c:50,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c:55,1
    - Dst: xml_acl_denied
      Src: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 56
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 56
    functionName: is_xml_acl_denied_with_node
    functionSourceFile: /src/pacemaker/lib/common/tests/acl/xml_acl_denied_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_true
    - pcmk__assert_alloc
    - assert_false
    - xml_acl_denied
    linkageType: ''
    returnType: void
    signature: 'static void is_xml_acl_denied_with_node(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/pcmk_acl_required_test.c:17,1
    - Dst: pcmk_acl_required
      Src: /src/pacemaker/lib/common/tests/acl/pcmk_acl_required_test.c:18,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/acl/pcmk_acl_required_test.c:19,1
    - Dst: pcmk_acl_required
      Src: /src/pacemaker/lib/common/tests/acl/pcmk_acl_required_test.c:17,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/pcmk_acl_required_test.c:18,1
    - Dst: pcmk_acl_required
      Src: /src/pacemaker/lib/common/tests/acl/pcmk_acl_required_test.c:19,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/pcmk_acl_required_test.c:20,1
    - Dst: pcmk_acl_required
      Src: /src/pacemaker/lib/common/tests/acl/pcmk_acl_required_test.c:20,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/acl/pcmk_acl_required_test.c:21,1
    - Dst: pcmk_acl_required
      Src: /src/pacemaker/lib/common/tests/acl/pcmk_acl_required_test.c:21,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 22
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 22
    functionName: is_pcmk_acl_required
    functionSourceFile: /src/pacemaker/lib/common/tests/acl/pcmk_acl_required_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - assert_false
    - pcmk_acl_required
    linkageType: ''
    returnType: void
    signature: 'static void is_pcmk_acl_required(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:64,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:68,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:68,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:71,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:67,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:72,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:72,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:74,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:75,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:75,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:78,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:80,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:78,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 81
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 81
    functionName: invalid_id
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_string_equal
    - pcmk__xe_set_id
    - pcmk__xml_free
    - pcmk__xe_id
    linkageType: ''
    returnType: void
    signature: 'static void invalid_id(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:23,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:25,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:26,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:25,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:26,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:32,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:32,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 38
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 38
    functionName: null_format
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__assert_asserts
    - pcmk__xe_set_id
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void null_format(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:17,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: null_node
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_set_id
    linkageType: ''
    returnType: void
    signature: 'static void null_node(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:86,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:93,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:91,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:91,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: format_args
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_string_equal
    - pcmk__xe_set_id
    - pcmk__xml_free
    - pcmk__xe_id
    linkageType: ''
    returnType: void
    signature: 'static void format_args(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:44,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:49,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:49,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:48,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:54,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:55,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:55,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 58
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 58
    functionName: valid_id
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_id_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_string_equal
    - pcmk__xe_set_id
    - pcmk__xml_free
    - pcmk__xe_id
    linkageType: ''
    returnType: void
    signature: 'static void valid_id(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:41,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:44,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:43,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:43,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:44,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: bad_input
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk__xe_first_child
    linkageType: ''
    returnType: void
    signature: 'static void bad_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:51,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:54,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:54,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:56,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:56,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:58,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:58,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:60,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:60,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: not_found
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk__xe_first_child
    linkageType: ''
    returnType: void
    signature: 'static void not_found(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:85,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:89,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:90,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:91,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:91,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:94,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:95,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:96,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:96,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 99
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 99
    functionName: find_attrA_matching
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__xe_first_child
    - assert_non_null
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void find_attrA_matching(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:67,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:71,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:72,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:73,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:73,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:76,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:77,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:78,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:78,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 81
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 81
    functionName: find_attrB
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_first_child_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__xe_first_child
    - assert_non_null
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void find_attrB(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:34,1
    - Dst: GUINT_TO_POINTER
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:47,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:45,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:46,1
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:39,1
    - Dst: pcmk__xe_sort_attrs
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:50,1
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:52,1
    - Dst: pcmk__xe_first_attr
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:53,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:62,1
    - Dst: GPOINTER_TO_UINT
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:66,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:74,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:79,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:80,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:70,1
    - Dst: pcmk__xml_attr_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:75,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:82,1
    - Dst: pcmk__xml_attr_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:74,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:73,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - test_xml
    - reference_xml
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 83
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 83
    functionName: assert_order
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_attr
    - assert_true
    - assert_string_equal
    - g_hash_table_lookup
    - GPOINTER_TO_UINT
    - g_hash_table_destroy
    - pcmk__strkey_table
    - GUINT_TO_POINTER
    - pcmk__xml_attr_value
    - pcmk__str_copy
    - pcmk__xe_sort_attrs
    - assert_null
    - g_hash_table_insert
    linkageType: ''
    returnType: void
    signature: 'static void assert_order(xmlNode *test_xml, const xmlNode *reference_xml) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:115,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:122,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:116,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:120,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:121,1
    - Dst: xmlHasProp
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:125,1
    - Dst: pcmk__clear_xml_flags
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:130,1
    - Dst: xmlHasProp
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:134,1
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:139,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:143,1
    - Dst: assert_order
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:149,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:152,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:151,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 153
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 153
    functionName: already_sorted
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__set_xml_flags
    - crm_xml_add
    - pcmk__clear_xml_flags
    - pcmk__xe_set_props
    - assert_order
    - pcmk__xml_free
    - xmlHasProp
    linkageType: ''
    returnType: void
    signature: 'static void already_sorted(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_sort_attrs
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: null_arg
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_sort_attrs
    linkageType: ''
    returnType: void
    signature: 'static void null_arg(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:95,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:99,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:101,1
    - Dst: assert_order
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:100,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:104,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:105,1
    - Dst: assert_order
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:106,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:107,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 110
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 110
    functionName: nothing_to_sort
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xml_copy
    - crm_xml_add
    - assert_order
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void nothing_to_sort(void **state) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:158,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:163,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:164,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:159,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:165,1
    - Dst: xmlHasProp
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:168,1
    - Dst: pcmk__set_xml_flags
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:173,1
    - Dst: xmlHasProp
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:177,1
    - Dst: pcmk__clear_xml_flags
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:182,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:186,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:195,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:194,1
    - Dst: assert_order
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c:192,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 196
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 196
    functionName: need_sort
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__set_xml_flags
    - crm_xml_add
    - pcmk__clear_xml_flags
    - pcmk__xe_set_props
    - assert_order
    - pcmk__xml_free
    - xmlHasProp
    linkageType: ''
    returnType: void
    signature: 'static void need_sort(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: function_called
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:15,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:16,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - xml
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: compare_name_handler
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - function_called
    linkageType: ''
    returnType: int
    signature: 'static int compare_name_handler(xmlNode *xml, void *userdata) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:38,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:42,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:40,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:40,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: bad_input
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk__xe_foreach_child
    linkageType: ''
    returnType: void
    signature: 'static void bad_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:60,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:67,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:63,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:65,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:64,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: no_name_given_test
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c
    functionUses: []
    functionsReached:
    - expect_function_call
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk__xe_foreach_child
    linkageType: ''
    returnType: void
    signature: 'static void no_name_given_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:114,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:121,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:117,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:120,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: multiple_levels_no_name_test
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c
    functionUses: []
    functionsReached:
    - expect_function_call
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk__xe_foreach_child
    linkageType: ''
    returnType: void
    signature: 'static void multiple_levels_no_name_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: function_called
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:141,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:142,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - xml
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: any_of_handler
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk__str_any_of
    - function_called
    linkageType: ''
    returnType: int
    signature: 'static int any_of_handler(xmlNode *xml, void *userdata) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: function_called
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:161,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - xml
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: stops_on_first_handler
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_is
    - function_called
    linkageType: ''
    returnType: int
    signature: 'static int stops_on_first_handler(xmlNode *xml, void *userdata) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: function_called
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:181,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - xml
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 188
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 188
    functionName: stops_on_third_handler
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_is
    - function_called
    linkageType: ''
    returnType: int
    signature: 'static int stops_on_third_handler(xmlNode *xml, void *userdata) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:73,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:75,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: name_doesnt_exist_test
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk__xe_foreach_child
    linkageType: ''
    returnType: void
    signature: 'static void name_doesnt_exist_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:47,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:52,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:50,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:51,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:54,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: name_given_test
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c
    functionUses: []
    functionsReached:
    - expect_function_call
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk__xe_foreach_child
    linkageType: ''
    returnType: void
    signature: 'static void name_given_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:102,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:109,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:105,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:108,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 110
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 110
    functionName: multiple_levels_test
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c
    functionUses: []
    functionsReached:
    - expect_function_call
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk__xe_foreach_child
    linkageType: ''
    returnType: void
    signature: 'static void multiple_levels_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:149,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:154,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:152,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:153,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:156,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: any_of_test
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c
    functionUses: []
    functionsReached:
    - expect_function_call
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk__xe_foreach_child
    linkageType: ''
    returnType: void
    signature: 'static void any_of_test(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: function_called
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:171,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - xml
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: stops_on_second_handler
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_is
    - function_called
    linkageType: ''
    returnType: int
    signature: 'static int stops_on_second_handler(xmlNode *xml, void *userdata) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:192,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:198,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:196,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:195,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:196,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:199,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:199,1
    - Dst: expect_function_call
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:201,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:202,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:202,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c:204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 205
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 205
    functionName: one_of_test
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_foreach_child_test.c
    functionUses: []
    functionsReached:
    - expect_function_call
    - pcmk__xe_foreach_child
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void one_of_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:18,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:18,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:19,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:19,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: null_xml
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - pcmk__xe_next
    linkageType: ''
    returnType: void
    signature: 'static void null_xml(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:33,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:36,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:40,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:38,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:39,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:40,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:42,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:42,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:43,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:43,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:45,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 46
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 46
    functionName: no_siblings
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__xe_first_child
    - assert_non_null
    - pcmk__xml_free
    - pcmk__xe_next
    - pcmk__xml_parse
    - assert_null
    - pcmk__xe_id
    linkageType: ''
    returnType: void
    signature: 'static void no_siblings(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:69,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:72,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:79,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:80,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:68,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:83,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:75,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:77,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:67,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:71,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:73,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:81,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:77,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:86,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:61,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:69,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:65,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:73,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:81,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:76,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 87
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 87
    functionName: with_siblings
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_next_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__xe_first_child
    - assert_non_null
    - pcmk__xml_free
    - pcmk__xe_next
    - pcmk__xml_parse
    - assert_null
    - pcmk__xe_id
    linkageType: ''
    returnType: void
    signature: 'static void with_siblings(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: value_is_non_numeric
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - assert_set_score
    linkageType: ''
    returnType: void
    signature: 'static void value_is_non_numeric(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: value_is_numeric_and_decimal_point_containing_2
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - assert_set_score
    linkageType: ''
    returnType: void
    signature: 'static void value_is_numeric_and_decimal_point_containing_2(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: value_is_numeric_and_decimal_point_containing
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - assert_set_score
    linkageType: ''
    returnType: void
    signature: 'static void value_is_numeric_and_decimal_point_containing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: value_is_numeric_and_decimal_point_containing_3
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - assert_set_score
    linkageType: ''
    returnType: void
    signature: 'static void value_is_numeric_and_decimal_point_containing_3(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:33,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:35,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:37,1
    - Dst: pcmk__xe_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:36,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:36,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:37,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:39,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 4
    argNames:
    - initial
    - new
    - reference_val
    - reference_rc
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: assert_set_score
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_string_equal
    - pcmk__xe_set_score
    - crm_xml_add
    - assert_int_equal
    - pcmk__xml_free
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void assert_set_score(const char *initial, const char *new,
      const char *reference_val, int reference_rc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: assignment_result_is_too_large
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - assert_set_score
    linkageType: ''
    returnType: void
    signature: 'static void assignment_result_is_too_large(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:60,1
    - Dst: pcmk__xe_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: target_is_NULL
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_set_score
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void target_is_NULL(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: value_is_name_plus_plus
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - assert_set_score
    linkageType: ''
    returnType: void
    signature: 'static void value_is_name_plus_plus(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: value_is_name_plus_equals_integer
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - assert_set_score
    linkageType: ''
    returnType: void
    signature: 'static void value_is_name_plus_equals_integer(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:66,1
    - Dst: pcmk__xe_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:71,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:68,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:71,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:72,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:72,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 75
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 75
    functionName: name_is_NULL
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_string_equal
    - pcmk__xe_set_score
    - crm_xml_add
    - assert_int_equal
    - pcmk__xml_free
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void name_is_NULL(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: value_is_wrong_name
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - assert_set_score
    linkageType: ''
    returnType: void
    signature: 'static void value_is_wrong_name(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: value_is_only_an_integer
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - assert_set_score
    linkageType: ''
    returnType: void
    signature: 'static void value_is_only_an_integer(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: variable_is_initialized_to_be_non_numeric_2
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - assert_set_score
    linkageType: ''
    returnType: void
    signature: 'static void variable_is_initialized_to_be_non_numeric_2(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: variable_is_initialized_to_be_numeric_and_decimal_point_containing_2
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - assert_set_score
    linkageType: ''
    returnType: void
    signature: 'static void variable_is_initialized_to_be_numeric_and_decimal_point_containing_2(void
      **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: variable_is_initialized_to_be_numeric_and_decimal_point_containing
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - assert_set_score
    linkageType: ''
    returnType: void
    signature: 'static void variable_is_initialized_to_be_numeric_and_decimal_point_containing(void
      **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: variable_is_initialized_to_be_numeric_and_decimal_point_containing_3
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - assert_set_score
    linkageType: ''
    returnType: void
    signature: 'static void variable_is_initialized_to_be_numeric_and_decimal_point_containing_3(void
      **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: value_is_NULL
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - assert_set_score
    linkageType: ''
    returnType: void
    signature: 'static void value_is_NULL(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: name_is_undefined
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - assert_set_score
    linkageType: ''
    returnType: void
    signature: 'static void name_is_undefined(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_set_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: variable_is_initialized_to_be_non_numeric
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_set_score_test.c
    functionUses: []
    functionsReached:
    - assert_set_score
    linkageType: ''
    returnType: void
    signature: 'static void variable_is_initialized_to_be_non_numeric(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:19,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:22,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:21,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:21,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:22,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:23,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:23,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:24,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:26,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 27
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 27
    functionName: null_args
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_ptr_equal
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xe_copy_attrs
    linkageType: ''
    returnType: void
    signature: 'static void null_args(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:53,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:56,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:58,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:54,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:58,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:60,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:60,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:61,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:63,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: copy_one
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_string_equal
    - crm_xml_add
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xe_copy_attrs
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void copy_one(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:95,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:98,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:96,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:102,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:99,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:102,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:104,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:104,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:105,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:106,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: overwrite
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_string_equal
    - crm_xml_add
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xe_copy_attrs
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void overwrite(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:139,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:144,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:142,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:140,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:143,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:145,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:147,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:147,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:149,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:149,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:150,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:150,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:153,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 154
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 154
    functionName: score_update
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_string_equal
    - crm_xml_add
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xe_copy_attrs
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void score_update(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:36,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:36,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:38,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:33,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:41,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:42,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:42,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:44,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:44,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:46,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:47,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 48
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 48
    functionName: no_source_attrs
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_string_equal
    - crm_xml_add
    - assert_ptr_equal
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xe_copy_attrs
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void no_source_attrs(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:70,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:79,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:71,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:79,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:73,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:81,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:81,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:82,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:83,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:83,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:86,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:88,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:84,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:85,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:85,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:89,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 90
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 90
    functionName: copy_multiple
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_string_equal
    - pcmk__xe_set_props
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xe_copy_attrs
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void copy_multiple(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:113,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:119,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:117,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:114,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:116,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:119,1
    - Dst: assert_string_not_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:121,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:121,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:122,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:125,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:130,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:129,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:129,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:127,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:132,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:133,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 134
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 134
    functionName: no_overwrite
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_string_equal
    - pcmk__xe_remove_attr
    - crm_xml_add
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xe_copy_attrs
    - crm_element_value
    - assert_string_not_equal
    linkageType: ''
    returnType: void
    signature: 'static void no_overwrite(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:159,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:162,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:164,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:163,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:160,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:165,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:168,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:168,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:170,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:170,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:172,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:176,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:172,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c:175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 177
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 177
    functionName: no_score_update
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_string_equal
    - crm_xml_add
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xe_copy_attrs
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void no_score_update(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:27,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:29,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:31,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:32,1
    - Dst: pcmk__xe_get_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:30,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - score_s
    - expected_rc
    - expected_score
    argTypes:
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: assert_score
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - assert_int_equal
    - pcmk__xe_get_score
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void assert_score(const char *score_s, int expected_rc, int
      expected_score) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:54,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:62,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: null_score_string
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c
    functionUses: []
    functionsReached:
    - assert_score
    linkageType: ''
    returnType: void
    signature: 'static void null_score_string(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:89,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:91,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: bad_input
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c
    functionUses: []
    functionsReached:
    - assert_score
    linkageType: ''
    returnType: void
    signature: 'static void bad_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:121,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:131,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:129,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:125,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 134
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 134
    functionName: outside_limits
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c
    functionUses: []
    functionsReached:
    - assert_score
    - free
    - crm_strdup_printf
    linkageType: ''
    returnType: void
    signature: 'static void outside_limits(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:70,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:75,1
    - Dst: pcmk__xe_get_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:72,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:76,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:72,1
    - Dst: pcmk__xe_get_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:76,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:79,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:80,1
    - Dst: pcmk__xe_get_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:80,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 84
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 84
    functionName: null_score
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - assert_int_equal
    - pcmk__xe_get_score
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void null_score(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:40,1
    - Dst: pcmk__xe_get_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:44,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:44,1
    - Dst: pcmk__xe_get_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:42,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:42,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:46,1
    - Dst: pcmk__xe_get_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:46,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: invalid_args
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_get_score
    - pcmk__xml_free
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void invalid_args(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:97,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:99,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:98,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:106,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:105,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:107,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:109,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:110,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 112
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 112
    functionName: special_values
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c
    functionUses: []
    functionsReached:
    - assert_score
    linkageType: ''
    returnType: void
    signature: 'static void special_values(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:139,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: inside_limits
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_element/pcmk__xe_get_score_test.c
    functionUses: []
    functionsReached:
    - assert_score
    linkageType: ''
    returnType: void
    signature: 'static void inside_limits(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:17,1
    - Dst: pcmk__xpath_node_id
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:18,1
    - Dst: pcmk__xpath_node_id
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:17,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:18,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:19,1
    - Dst: pcmk__xpath_node_id
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:19,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:20,1
    - Dst: pcmk__xpath_node_id
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:20,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:21,1
    - Dst: pcmk__xpath_node_id
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:21,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: empty_input
    functionSourceFile: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - pcmk__xpath_node_id
    linkageType: ''
    returnType: void
    signature: 'static void empty_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:33,1
    - Dst: pcmk__xpath_node_id
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:33,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:36,1
    - Dst: pcmk__xpath_node_id
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: not_present
    functionSourceFile: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - pcmk__xpath_node_id
    linkageType: ''
    returnType: void
    signature: 'static void not_present(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_node_id
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:45,1
    - Dst: pcmk__xpath_node_id
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:50,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:46,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:46,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:51,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:51,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 53
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: present
    functionSourceFile: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c
    functionUses: []
    functionsReached:
    - free
    - pcmk__xpath_node_id
    - strcmp
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void present(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:27,1
    - Dst: pcmk__xpath_node_id
      Src: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c:27,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: no_quotes
    functionSourceFile: /src/pacemaker/lib/common/tests/xpath/pcmk__xpath_node_id_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - pcmk__xpath_node_id
    linkageType: ''
    returnType: void
    signature: 'static void no_quotes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:16,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:19,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:19,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:16,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:21,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:21,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:23,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:23,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:25,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 28
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 28
    functionName: score1_minus_inf
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c
    functionUses: []
    functionsReached:
    - pcmk__add_scores
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void score1_minus_inf(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:71,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:71,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:73,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:72,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:72,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:73,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:74,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:74,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:77,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:77,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:80,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 81
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 81
    functionName: result_infinite
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c
    functionUses: []
    functionsReached:
    - pcmk__add_scores
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void result_infinite(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:51,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:49,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:49,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:51,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:53,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: score1_pos_inf
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c
    functionUses: []
    functionsReached:
    - pcmk__add_scores
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void score1_pos_inf(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:35,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:35,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:37,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:39,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: score2_minus_inf
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c
    functionUses: []
    functionsReached:
    - pcmk__add_scores
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void score2_minus_inf(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:60,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:62,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:64,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:62,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:60,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: score2_pos_inf
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c
    functionUses: []
    functionsReached:
    - pcmk__add_scores
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void score2_pos_inf(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:86,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:88,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:87,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:86,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:87,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:88,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:89,1
    - Dst: pcmk__add_scores
      Src: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: result_finite
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk__add_scores_test.c
    functionUses: []
    functionsReached:
    - pcmk__add_scores
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void result_finite(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:23,1
    - Dst: pcmk_str_is_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:23,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:24,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:25,1
    - Dst: pcmk_str_is_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:24,1
    - Dst: pcmk_str_is_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:25,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:26,1
    - Dst: pcmk_str_is_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:26,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: mixed_case_str_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c
    functionUses: []
    functionsReached:
    - pcmk_str_is_infinity
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void mixed_case_str_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:41,1
    - Dst: pcmk_str_is_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:42,1
    - Dst: pcmk_str_is_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:41,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: empty_str_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c
    functionUses: []
    functionsReached:
    - pcmk_str_is_infinity
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void empty_str_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:16,1
    - Dst: pcmk_str_is_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:17,1
    - Dst: pcmk_str_is_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:16,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:17,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: uppercase_str_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk_str_is_infinity
    linkageType: ''
    returnType: void
    signature: 'static void uppercase_str_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:32,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:34,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:33,1
    - Dst: pcmk_str_is_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:33,1
    - Dst: pcmk_str_is_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:32,1
    - Dst: pcmk_str_is_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:34,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:35,1
    - Dst: pcmk_str_is_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: added_whitespace_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c
    functionUses: []
    functionsReached:
    - pcmk_str_is_infinity
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void added_whitespace_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:48,1
    - Dst: pcmk_str_is_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: minus_infinity_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_infinity_test.c
    functionUses: []
    functionsReached:
    - pcmk_str_is_infinity
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void minus_infinity_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:35,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:40,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 46
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 46
    functionName: null_score_string
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c
    functionUses: []
    functionsReached:
    - assert_score
    linkageType: ''
    returnType: void
    signature: 'static void null_score_string(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:60,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:62,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: bad_input
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c
    functionUses: []
    functionsReached:
    - assert_score
    linkageType: ''
    returnType: void
    signature: 'static void bad_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:92,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:100,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:96,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:102,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 105
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 105
    functionName: outside_limits
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c
    functionUses: []
    functionsReached:
    - assert_score
    - free
    - crm_strdup_printf
    linkageType: ''
    returnType: void
    signature: 'static void outside_limits(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:26,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:28,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - score_s
    - expected_rc
    - expected_score
    argTypes:
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: assert_score
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c
    functionUses: []
    functionsReached:
    - pcmk_parse_score
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void assert_score(const char *score_s, int expected_rc, int
      expected_score) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:51,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:52,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:52,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:53,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:51,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: null_score
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c
    functionUses: []
    functionsReached:
    - pcmk_parse_score
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void null_score(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:68,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:77,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:70,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:76,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:69,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:78,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:80,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:81,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 83
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 83
    functionName: special_values
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c
    functionUses: []
    functionsReached:
    - assert_score
    linkageType: ''
    returnType: void
    signature: 'static void special_values(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:110,1
    - Dst: assert_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: inside_limits
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_parse_score_test.c
    functionUses: []
    functionsReached:
    - assert_score
    linkageType: ''
    returnType: void
    signature: 'static void inside_limits(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_readable_score_test.c:16,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_readable_score_test.c:18,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_readable_score_test.c:18,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_readable_score_test.c:16,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: outside_limits
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_readable_score_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk_readable_score
    linkageType: ''
    returnType: void
    signature: 'static void outside_limits(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_readable_score_test.c:25,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_readable_score_test.c:25,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_readable_score_test.c:27,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_readable_score_test.c:26,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_readable_score_test.c:26,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_readable_score_test.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: inside_limits
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_readable_score_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk_readable_score
    linkageType: ''
    returnType: void
    signature: 'static void inside_limits(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:22,1
    - Dst: pcmk_str_is_minus_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:22,1
    - Dst: pcmk_str_is_minus_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:23,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:23,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: mixed_case_str_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c
    functionUses: []
    functionsReached:
    - pcmk_str_is_minus_infinity
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void mixed_case_str_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:38,1
    - Dst: pcmk_str_is_minus_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:38,1
    - Dst: pcmk_str_is_minus_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:39,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: empty_str_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c
    functionUses: []
    functionsReached:
    - pcmk_str_is_minus_infinity
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void empty_str_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:16,1
    - Dst: pcmk_str_is_minus_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:16,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: uppercase_str_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk_str_is_minus_infinity
    linkageType: ''
    returnType: void
    signature: 'static void uppercase_str_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:45,1
    - Dst: pcmk_str_is_minus_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: infinity_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c
    functionUses: []
    functionsReached:
    - pcmk_str_is_minus_infinity
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void infinity_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:29,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:30,1
    - Dst: pcmk_str_is_minus_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:30,1
    - Dst: pcmk_str_is_minus_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:29,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:31,1
    - Dst: pcmk_str_is_minus_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:31,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:32,1
    - Dst: pcmk_str_is_minus_infinity
      Src: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: added_whitespace_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/scores/pcmk_str_is_minus_infinity_test.c
    functionUses: []
    functionsReached:
    - pcmk_str_is_minus_infinity
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void added_whitespace_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_true_test.c:24,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_true_test.c:31,1
    - Dst: getpid
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_true_test.c:24,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_true_test.c:30,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_true_test.c:29,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_true_test.c:32,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_true_test.c:33,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_true_test.c:35,1
    - Dst: pcmk__procfs_has_pids
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_true_test.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 38
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 38
    functionName: has_pids
    functionSourceFile: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_true_test.c
    functionUses: []
    functionsReached:
    - expect_value
    - expect_any
    - assert_true
    - will_return
    - getpid
    - expect_string
    - snprintf
    - pcmk__procfs_has_pids
    linkageType: ''
    returnType: void
    signature: 'static void has_pids(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:23,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:31,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:29,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:30,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:28,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:34,1
    - Dst: pcmk__procfs_pid2path
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:34,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:38,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 39
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 39
    functionName: no_exe_file
    functionSourceFile: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c
    functionUses: []
    functionsReached:
    - expect_value
    - will_return
    - pcmk__assert_alloc
    - assert_int_equal
    - free
    - pcmk__procfs_pid2path
    - expect_string
    linkageType: ''
    returnType: void
    signature: 'static void no_exe_file(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:68,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:73,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:76,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:74,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:75,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:77,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:79,1
    - Dst: pcmk__procfs_pid2path
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:79,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:81,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 86
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 86
    functionName: contents_ok
    functionSourceFile: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - expect_value
    - will_return
    - pcmk__assert_alloc
    - assert_int_equal
    - free
    - pcmk__procfs_pid2path
    - expect_string
    linkageType: ''
    returnType: void
    signature: 'static void contents_ok(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:45,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:50,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:52,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:53,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:51,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:54,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:56,1
    - Dst: pcmk__procfs_pid2path
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:56,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 62
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 62
    functionName: contents_too_long
    functionSourceFile: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_pid2path_test.c
    functionUses: []
    functionsReached:
    - expect_value
    - will_return
    - pcmk__assert_alloc
    - assert_int_equal
    - free
    - pcmk__procfs_pid2path
    - expect_string
    linkageType: ''
    returnType: void
    signature: 'static void contents_too_long(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_false_test.c:25,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_false_test.c:30,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_false_test.c:32,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_false_test.c:31,1
    - Dst: getpid
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_false_test.c:25,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_false_test.c:33,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_false_test.c:34,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_false_test.c:36,1
    - Dst: pcmk__procfs_has_pids
      Src: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_false_test.c:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 39
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 39
    functionName: no_pids
    functionSourceFile: /src/pacemaker/lib/common/tests/procfs/pcmk__procfs_has_pids_false_test.c
    functionUses: []
    functionsReached:
    - expect_value
    - expect_any
    - will_return
    - assert_false
    - getpid
    - expect_string
    - snprintf
    - pcmk__procfs_has_pids
    linkageType: ''
    returnType: void
    signature: 'static void no_pids(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:22,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:26,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:27,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:26,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 28
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 28
    functionName: op_is_not_probe_test
    functionSourceFile: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_false
    - pcmk__xml_parse
    - pcmk_xe_mask_probe_failure
    linkageType: ''
    returnType: void
    signature: 'static void op_is_not_probe_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:35,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:42,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:40,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:39,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:39,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:48,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:49,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:49,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:50,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 52
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 52
    functionName: op_does_not_have_right_values_test
    functionSourceFile: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pcmk__xml_free
    - assert_false
    - free
    - pcmk__xml_parse
    - pcmk_xe_mask_probe_failure
    linkageType: ''
    returnType: void
    signature: 'static void op_does_not_have_right_values_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:69,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:101,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:123,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:146,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:227,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:235,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:249,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:271,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:281,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:303,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:324,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:134,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:80,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:90,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:112,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:158,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:150,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:224,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:246,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:268,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:314,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:318,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:269,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:201,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:91,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:105,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:113,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:127,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:135,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:307,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:280,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:116,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:139,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:157,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:238,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:259,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:292,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:316,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:103,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:125,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:202,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:157,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:181,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:283,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:291,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:305,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:327,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:92,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:100,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:114,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:136,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:192,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:146,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:170,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:184,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:206,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:214,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:325,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:147,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:162,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:77,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:180,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:257,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:315,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:191,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:169,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:66,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:213,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:294,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:326,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:60,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:78,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:169,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:191,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:159,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:213,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:237,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:285,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:68,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:156,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:202,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:148,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:226,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:240,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:248,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:262,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:270,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:195,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:89,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:111,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:133,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:173,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:204,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:218,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:236,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:258,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:313,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:180,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:203,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:67,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:122,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:225,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:247,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:269,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:67,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:90,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:112,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:193,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:171,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:134,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:179,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:215,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:225,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:247,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:304,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:124,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:78,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:94,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:102,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:190,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:168,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:212,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:258,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:282,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:296,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:302,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:145,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:71,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:79,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:229,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:251,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:274,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:292,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:314,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:293,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:182,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:83,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:101,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:123,1
    - Dst: pcmk_xe_mask_probe_failure
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:236,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:281,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:303,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:325,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 193
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 328
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 328
    functionName: check_values_test
    functionSourceFile: /src/pacemaker/lib/common/tests/probes/pcmk_xe_mask_probe_failure_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - crm_strdup_printf
    - free
    - assert_false
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk_xe_mask_probe_failure
    linkageType: ''
    returnType: void
    signature: 'static void check_values_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:23,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:28,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:43,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:38,1
    - Dst: pcmk_xe_is_probe
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:49,1
    - Dst: pcmk_xe_is_probe
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:19,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:21,1
    - Dst: pcmk_xe_is_probe
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:22,1
    - Dst: pcmk_xe_is_probe
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:42,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:36,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:31,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:49,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:19,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:25,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:29,1
    - Dst: pcmk_xe_is_probe
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:35,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:42,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:22,1
    - Dst: pcmk_xe_is_probe
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:28,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:45,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:35,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 51
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 51
    functionName: op_is_probe_test
    functionSourceFile: /src/pacemaker/lib/common/tests/probes/pcmk_xe_is_probe_test.c
    functionUses: []
    functionsReached:
    - pcmk_xe_is_probe
    - assert_true
    - pcmk__xml_free
    - assert_false
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void op_is_probe_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_is_probe_test.c:17,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_is_probe_test.c:19,1
    - Dst: pcmk_is_probe
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_is_probe_test.c:17,1
    - Dst: pcmk_is_probe
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_is_probe_test.c:18,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_is_probe_test.c:18,1
    - Dst: pcmk_is_probe
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_is_probe_test.c:19,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_is_probe_test.c:20,1
    - Dst: pcmk_is_probe
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_is_probe_test.c:20,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_is_probe_test.c:21,1
    - Dst: pcmk_is_probe
      Src: /src/pacemaker/lib/common/tests/probes/pcmk_is_probe_test.c:21,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 22
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 22
    functionName: is_probe_test
    functionSourceFile: /src/pacemaker/lib/common/tests/probes/pcmk_is_probe_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk_is_probe
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void is_probe_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/digest/crm_md5sum_test.c:16,1
    - Dst: crm_md5sum
      Src: /src/pacemaker/lib/common/tests/digest/crm_md5sum_test.c:16,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: null_arg_test
    functionSourceFile: /src/pacemaker/lib/common/tests/digest/crm_md5sum_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - crm_md5sum
    linkageType: ''
    returnType: void
    signature: 'static void null_arg_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_md5sum
      Src: /src/pacemaker/lib/common/tests/digest/crm_md5sum_test.c:22,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/digest/crm_md5sum_test.c:25,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/digest/crm_md5sum_test.c:24,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: basic_usage_test
    functionSourceFile: /src/pacemaker/lib/common/tests/digest/crm_md5sum_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - free
    - crm_md5sum
    linkageType: ''
    returnType: void
    signature: 'static void basic_usage_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:38,1
    - Dst: crm_time_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: invalid_argument
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - crm_time_add_seconds
    linkageType: ''
    returnType: void
    signature: 'static void invalid_argument(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:52,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:58,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:60,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:62,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:54,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:66,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:68,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:70,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:74,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:76,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:86,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:80,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 88
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 88
    functionName: add_less_than_one_day
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c
    functionUses: []
    functionsReached:
    - assert_add_seconds
    linkageType: ''
    returnType: void
    signature: 'static void add_less_than_one_day(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:114,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:116,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:124,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:118,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:122,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:126,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:130,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:132,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:134,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:138,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:146,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:150,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:140,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 152
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 152
    functionName: subtract_less_than_one_day
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c
    functionUses: []
    functionsReached:
    - assert_add_seconds
    linkageType: ''
    returnType: void
    signature: 'static void subtract_less_than_one_day(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:22,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:26,1
    - Dst: crm_time_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:28,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:23,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:25,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:29,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:29,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:31,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:32,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - orig_date_time
    - seconds
    - expected_date_time
    argTypes:
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 33
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 33
    functionName: assert_add_seconds
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_non_null
    - assert_int_equal
    - crm_time_add_seconds
    - crm_time_new
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void assert_add_seconds(const char *orig_date_time, int seconds,
      const char *expected_date_time) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: add_zero
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c
    functionUses: []
    functionsReached:
    - assert_add_seconds
    linkageType: ''
    returnType: void
    signature: 'static void add_zero(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:94,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:100,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:102,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:96,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 108
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 108
    functionName: add_more_than_one_day
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c
    functionUses: []
    functionsReached:
    - assert_add_seconds
    linkageType: ''
    returnType: void
    signature: 'static void add_more_than_one_day(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:158,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:166,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:170,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:164,1
    - Dst: assert_add_seconds
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 172
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 172
    functionName: subtract_more_than_one_day
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_seconds_test.c
    functionUses: []
    functionsReached:
    - assert_add_seconds
    linkageType: ''
    returnType: void
    signature: 'static void subtract_more_than_one_day(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:38,1
    - Dst: crm_time_add_years
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: invalid_argument
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - crm_time_add_years
    linkageType: ''
    returnType: void
    signature: 'static void invalid_argument(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_add_years
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:54,1
    - Dst: assert_add_years
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: add_negative
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c
    functionUses: []
    functionsReached:
    - assert_add_years
    linkageType: ''
    returnType: void
    signature: 'static void add_negative(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:22,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:23,1
    - Dst: crm_time_add_years
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:28,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:25,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:26,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:29,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:29,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:31,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:32,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - orig_date_time
    - years
    - expected_date_time
    argTypes:
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 33
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 33
    functionName: assert_add_years
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_non_null
    - assert_int_equal
    - crm_time_add_years
    - crm_time_new
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void assert_add_years(const char *orig_date_time, int years,
      const char *expected_date_time) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_add_years
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:44,1
    - Dst: assert_add_years
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: add_positive
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c
    functionUses: []
    functionsReached:
    - assert_add_years
    linkageType: ''
    returnType: void
    signature: 'static void add_positive(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:66,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:68,1
    - Dst: assert_add_years
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:67,1
    - Dst: assert_add_years
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: out_of_range
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_years_test.c
    functionUses: []
    functionsReached:
    - assert_add_years
    - free
    - crm_strdup_printf
    linkageType: ''
    returnType: void
    signature: 'static void out_of_range(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:19,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:19,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:20,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: empty_arg
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c
    functionUses: []
    functionsReached:
    - crm_time_parse_duration
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void empty_arg(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:30,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:32,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:45,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:36,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:37,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:52,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:31,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:32,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:35,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:37,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:38,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:46,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:52,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:27,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:27,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:31,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:35,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:38,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:39,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:46,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:49,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:53,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:30,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:39,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:36,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:45,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:49,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 55
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 55
    functionName: invalid_arg
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c
    functionUses: []
    functionsReached:
    - crm_time_parse_duration
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void invalid_arg(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:83,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:81,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:84,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:89,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:90,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:97,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:101,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:81,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:84,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:85,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:86,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:90,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:87,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:97,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:82,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:85,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:87,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:88,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:86,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:91,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:98,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:82,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:83,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:88,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:89,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:91,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:98,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 103
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 103
    functionName: valid_arg
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - crm_time_parse_duration
    linkageType: ''
    returnType: void
    signature: 'static void valid_arg(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:61,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:69,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:71,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:66,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:72,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:62,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:64,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:72,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:69,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:73,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:62,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:63,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:64,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:65,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:70,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:73,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:74,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:61,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:63,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:65,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:66,1
    - Dst: crm_time_parse_duration
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:71,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:70,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 75
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 75
    functionName: overflow
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_parse_duration_test.c
    functionUses: []
    functionsReached:
    - crm_time_parse_duration
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void overflow(void **state) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__time_format_hr
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:35,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:47,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:44,1
    - Dst: pcmk__time_hr_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:37,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:40,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:49,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:49,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:50,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:53,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - format
    - expected
    - alternate
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 54
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 54
    functionName: assert_hr_format
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_true
    - pcmk__time_format_hr
    - assert_non_null
    - strcmp
    - free
    - assert_null
    - pcmk__time_hr_free
    linkageType: ''
    returnType: void
    signature: 'static void assert_hr_format(const char *format, const char *expected,
      const char *alternate) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_hr_format
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:91,1
    - Dst: assert_hr_format
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:100,1
    - Dst: assert_hr_format
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:93,1
    - Dst: assert_hr_format
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:92,1
    - Dst: assert_hr_format
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 101
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 101
    functionName: without_nano
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c
    functionUses: []
    functionsReached:
    - assert_hr_format
    linkageType: ''
    returnType: void
    signature: 'static void without_nano(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:59,1
    - Dst: assert_hr_format
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:60,1
    - Dst: pcmk__time_format_hr
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: null_format
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c
    functionUses: []
    functionsReached:
    - assert_hr_format
    - assert_null
    - pcmk__time_format_hr
    linkageType: ''
    returnType: void
    signature: 'static void null_format(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_hr_format
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:106,1
    - Dst: assert_hr_format
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: with_nano
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c
    functionUses: []
    functionsReached:
    - assert_hr_format
    linkageType: ''
    returnType: void
    signature: 'static void with_nano(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_hr_format
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:66,1
    - Dst: assert_hr_format
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:75,1
    - Dst: assert_hr_format
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:71,1
    - Dst: assert_hr_format
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:83,1
    - Dst: assert_hr_format
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 86
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 86
    functionName: no_specifiers
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__time_format_hr_test.c
    functionUses: []
    functionsReached:
    - assert_hr_format
    linkageType: ''
    returnType: void
    signature: 'static void no_specifiers(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:66,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:69,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:72,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:75,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:78,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 83
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 83
    functionName: negative_same_year
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c
    functionUses: []
    functionsReached:
    - assert_add_days
    linkageType: ''
    returnType: void
    signature: 'static void negative_same_year(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:38,1
    - Dst: crm_time_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: invalid_argument
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - crm_time_add_days
    linkageType: ''
    returnType: void
    signature: 'static void invalid_argument(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:141,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:153,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:149,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:145,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:157,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:161,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 167
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 167
    functionName: negative_year_changes
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c
    functionUses: []
    functionsReached:
    - assert_add_days
    linkageType: ''
    returnType: void
    signature: 'static void negative_year_changes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:22,1
    - Dst: crm_time_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:28,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:23,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:25,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:26,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:29,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:29,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:31,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:32,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - orig_date_time
    - days
    - expected_date_time
    argTypes:
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 33
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 33
    functionName: assert_add_days
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_non_null
    - assert_int_equal
    - crm_time_new
    - crm_time_free
    - crm_time_add_days
    linkageType: ''
    returnType: void
    signature: 'static void assert_add_days(const char *orig_date_time, int days,
      const char *expected_date_time) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:44,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:47,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:50,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:53,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:56,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 61
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 61
    functionName: positive_same_year
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c
    functionUses: []
    functionsReached:
    - assert_add_days
    linkageType: ''
    returnType: void
    signature: 'static void positive_same_year(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:89,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:93,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:105,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:101,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:97,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:109,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:113,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:117,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:121,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:125,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:129,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 135
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 135
    functionName: positive_year_changes
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c
    functionUses: []
    functionsReached:
    - assert_add_days
    linkageType: ''
    returnType: void
    signature: 'static void positive_year_changes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:176,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:180,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:178,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:177,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:179,1
    - Dst: assert_add_days
      Src: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c:183,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 185
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 185
    functionName: year_out_of_range
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/crm_time_add_days_test.c
    functionUses: []
    functionsReached:
    - assert_add_days
    - free
    - crm_strdup_printf
    linkageType: ''
    returnType: void
    signature: 'static void year_out_of_range(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__readable_interval_test.c:18,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__readable_interval_test.c:19,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__readable_interval_test.c:18,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__readable_interval_test.c:20,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__readable_interval_test.c:19,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__readable_interval_test.c:20,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__readable_interval_test.c:21,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__readable_interval_test.c:21,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__readable_interval_test.c:22,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__readable_interval_test.c:22,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__readable_interval_test.c:23,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__readable_interval_test.c:23,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__readable_interval_test.c:24,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__readable_interval_test.c:24,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 25
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 25
    functionName: readable_interval
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__readable_interval_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__readable_interval
    linkageType: ''
    returnType: void
    signature: 'static void readable_interval(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:19,1
    - Dst: pcmk__set_time_if_earlier
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:23,1
    - Dst: pcmk__set_time_if_earlier
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:24,1
    - Dst: pcmk_copy_time
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:20,1
    - Dst: pcmk__set_time_if_earlier
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:27,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:28,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:28,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:30,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:31,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 32
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 32
    functionName: null_ok
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_int_equal
    - pcmk_copy_time
    - crm_time_new
    - pcmk__set_time_if_earlier
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void null_ok(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:37,1
    - Dst: pcmk__set_time_if_earlier
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:40,1
    - Dst: crm_time_new_undefined
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:38,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:41,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:41,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:43,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:44,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: target_undefined
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - crm_time_new_undefined
    - assert_int_equal
    - crm_time_new
    - pcmk__set_time_if_earlier
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void target_undefined(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:50,1
    - Dst: pcmk__set_time_if_earlier
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:54,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:51,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:54,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:56,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: source_earlier
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_int_equal
    - crm_time_new
    - pcmk__set_time_if_earlier
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void source_earlier(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:63,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:64,1
    - Dst: pcmk__set_time_if_earlier
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:67,1
    - Dst: pcmk_copy_time
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:65,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:68,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:68,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:70,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:71,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c:72,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: source_later
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__set_time_if_earlier_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_int_equal
    - pcmk_copy_time
    - crm_time_new
    - pcmk__set_time_if_earlier
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void source_later(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:67,1
    - Dst: pcmk__add_time_from_xml
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:71,1
    - Dst: pcmk_copy_time
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:68,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:71,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:69,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:73,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:73,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:75,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:76,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:77,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 78
    functionName: missing_attr
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk_copy_time
    - crm_time_new
    - pcmk__add_time_from_xml
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void missing_attr(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:43,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:46,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:48,1
    - Dst: pcmk_copy_time
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:44,1
    - Dst: pcmk__add_time_from_xml
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:46,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:48,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:50,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: null_xml_ok
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_int_equal
    - pcmk_copy_time
    - crm_time_new
    - pcmk__add_time_from_xml
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void null_xml_ok(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:99,1
    - Dst: pcmk_copy_time
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:100,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:104,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:103,1
    - Dst: pcmk__add_time_from_xml
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:104,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:105,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:105,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:106,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:108,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:109,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:110,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:110,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:113,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:111,1
    - Dst: pcmk__add_time_from_xml
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:109,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: out_of_range_attr
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk_copy_time
    - crm_time_new
    - pcmk__add_time_from_xml
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void out_of_range_attr(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:136,1
    - Dst: pcmk__add_time_from_xml
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:140,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:140,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:138,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:137,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:142,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:142,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:144,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:145,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:146,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 147
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 147
    functionName: add_months
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - pcmk__add_time_from_xml
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void add_months(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:168,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:172,1
    - Dst: pcmk__add_time_from_xml
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:172,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:170,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:169,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:174,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:174,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:176,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:177,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 179
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 179
    functionName: add_days
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - pcmk__add_time_from_xml
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void add_days(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:200,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:202,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:201,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:204,1
    - Dst: pcmk__add_time_from_xml
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:204,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:206,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:206,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:208,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:209,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 211
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 211
    functionName: add_minutes
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - pcmk__add_time_from_xml
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void add_minutes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:33,1
    - Dst: pcmk__add_time_from_xml
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:35,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: null_time_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__add_time_from_xml
    - pcmk__xml_free
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void null_time_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:57,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:59,1
    - Dst: pcmk__add_time_from_xml
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:59,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: invalid_component
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__add_time_from_xml
    - pcmk__xml_free
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void invalid_component(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:83,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:85,1
    - Dst: pcmk_copy_time
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:84,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:87,1
    - Dst: pcmk__add_time_from_xml
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:87,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:89,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:89,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:91,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:92,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 94
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 94
    functionName: invalid_attr
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk_copy_time
    - crm_time_new
    - pcmk__add_time_from_xml
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void invalid_attr(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:120,1
    - Dst: pcmk__add_time_from_xml
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:124,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:124,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:122,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:121,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:126,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:126,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:128,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:129,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 131
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 131
    functionName: add_years
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - pcmk__add_time_from_xml
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void add_years(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:152,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:154,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:156,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:153,1
    - Dst: pcmk__add_time_from_xml
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:156,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:158,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:158,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:160,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:161,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 163
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 163
    functionName: add_weeks
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - pcmk__add_time_from_xml
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void add_weeks(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:184,1
    - Dst: pcmk__add_time_from_xml
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:188,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:188,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:186,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:185,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:190,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:190,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:192,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:193,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 195
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 195
    functionName: add_hours
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - pcmk__add_time_from_xml
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void add_hours(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:216,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:218,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:217,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:220,1
    - Dst: pcmk__add_time_from_xml
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:220,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:222,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:222,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:224,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:225,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c:226,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 227
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 227
    functionName: add_seconds
    functionSourceFile: /src/pacemaker/lib/common/tests/iso8601/pcmk__add_time_from_xml_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - pcmk__add_time_from_xml
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void add_seconds(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:29,1
    - Dst: pcmk__xml_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:30,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:30,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:31,1
    - Dst: pcmk__xml_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:29,1
    - Dst: pcmk__xml_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:31,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:33,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:34,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: null_empty
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - pcmk__xml_escape
    - assert_escape
    linkageType: ''
    returnType: void
    signature: 'static void null_empty(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:74,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:76,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: escape_left_angle
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c
    functionUses: []
    functionsReached:
    - assert_escape
    linkageType: ''
    returnType: void
    signature: 'static void escape_left_angle(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:86,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:87,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: escape_right_angle
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c
    functionUses: []
    functionsReached:
    - assert_escape
    linkageType: ''
    returnType: void
    signature: 'static void escape_right_angle(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:112,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:114,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:113,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 116
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 116
    functionName: escape_double_quote
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c
    functionUses: []
    functionsReached:
    - assert_escape
    linkageType: ''
    returnType: void
    signature: 'static void escape_double_quote(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:137,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:138,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:139,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 140
    functionName: escape_tab
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c
    functionUses: []
    functionsReached:
    - assert_escape
    linkageType: ''
    returnType: void
    signature: 'static void escape_tab(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:160,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:162,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:161,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: escape_nonprinting
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c
    functionUses: []
    functionsReached:
    - assert_escape
    linkageType: ''
    returnType: void
    signature: 'static void escape_nonprinting(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:20,1
    - Dst: g_free
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:23,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:22,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - str
    - reference
    - type
    argTypes:
    - char*
    - char*
    - enum pcmk__xml_escape_type
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: assert_escape
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__xml_escape
    - g_free
    linkageType: ''
    returnType: void
    signature: 'static void assert_escape(const char *str, const char *reference,
      enum pcmk__xml_escape_type type) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:44,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:48,1
    - Dst: pcmk__xml_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:48,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:45,1
    - Dst: pcmk__xml_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 49
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 49
    functionName: invalid_type
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - assert_null
    - pcmk__xml_escape
    - assert_escape
    linkageType: ''
    returnType: void
    signature: 'static void invalid_type(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:98,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:99,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: escape_ampersand
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c
    functionUses: []
    functionsReached:
    - assert_escape
    linkageType: ''
    returnType: void
    signature: 'static void escape_ampersand(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:125,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:127,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 128
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 128
    functionName: escape_newline
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c
    functionUses: []
    functionsReached:
    - assert_escape
    linkageType: ''
    returnType: void
    signature: 'static void escape_newline(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:149,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:151,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: escape_carriage_return
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c
    functionUses: []
    functionsReached:
    - assert_escape
    linkageType: ''
    returnType: void
    signature: 'static void escape_carriage_return(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:183,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:184,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:188,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:185,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:187,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:189,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:191,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:192,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:193,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:195,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:196,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:197,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 198
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 198
    functionName: escape_utf8
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c
    functionUses: []
    functionsReached:
    - assert_escape
    linkageType: ''
    returnType: void
    signature: 'static void escape_utf8(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:60,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:62,1
    - Dst: assert_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 63
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 63
    functionName: escape_unchanged
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_escape_test.c
    functionUses: []
    functionsReached:
    - assert_escape
    linkageType: ''
    returnType: void
    signature: 'static void escape_unchanged(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:19,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:20,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:19,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:21,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:20,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:21,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:23,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:23,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:24,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:24,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:25,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 26
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 26
    functionName: null_empty
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_needs_escape
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void null_empty(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:50,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:50,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:51,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:52,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:51,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 54
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 54
    functionName: escape_unchanged
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_needs_escape
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void escape_unchanged(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:88,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:89,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:88,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:89,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:90,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:90,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:92,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:92,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:93,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:93,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:96,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:98,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:100,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:100,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:94,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:94,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:98,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:96,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 102
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 102
    functionName: escape_right_angle
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_needs_escape
    - assert_true
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void escape_right_angle(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:134,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:138,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:136,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:134,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:136,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:138,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:141,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:141,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:143,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:143,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:148,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:145,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:145,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:150,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:152,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:150,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:148,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 154
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 154
    functionName: escape_double_quote
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_needs_escape
    - assert_true
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void escape_double_quote(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:186,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:187,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:186,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:187,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:188,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:188,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:190,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:190,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:191,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:191,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:192,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:195,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:195,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:194,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:196,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:196,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:194,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:192,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 198
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 198
    functionName: escape_tab
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_needs_escape
    - assert_true
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void escape_tab(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:233,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:234,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:235,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:237,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:238,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:239,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:241,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:248,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:249,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:250,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:253,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:249,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:265,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:260,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:260,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:254,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:233,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:264,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:258,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:252,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:265,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:258,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:253,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:234,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:235,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:237,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:238,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:243,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:239,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:245,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:248,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:243,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:241,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:256,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:263,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:256,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:252,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:264,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:263,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:254,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:250,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:245,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 267
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 267
    functionName: escape_nonprinting
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_needs_escape
    - assert_true
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void escape_nonprinting(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:34,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:38,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:34,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:35,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:35,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 39
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 39
    functionName: invalid_type
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_needs_escape
    - pcmk__assert_asserts
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void invalid_type(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:111,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:112,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:111,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:112,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:113,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:113,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:115,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:115,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:116,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:116,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:117,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:119,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:123,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:123,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:121,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:117,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:121,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 125
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 125
    functionName: escape_ampersand
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_needs_escape
    - assert_true
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void escape_ampersand(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:163,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:163,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:164,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:165,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:164,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:165,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:167,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:167,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:168,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:168,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:169,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:171,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:173,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:173,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:175,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:175,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:171,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:169,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 177
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 177
    functionName: escape_newline
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_needs_escape
    - assert_true
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void escape_newline(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:207,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:208,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:209,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:208,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:207,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:209,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:211,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:211,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:212,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:212,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:215,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:213,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:215,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:217,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:213,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:216,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:217,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:216,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 218
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 218
    functionName: escape_carriage_return
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_needs_escape
    - assert_true
    linkageType: ''
    returnType: void
    signature: 'static void escape_carriage_return(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:283,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:320,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:301,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:312,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:306,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:300,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:320,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:313,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:284,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:285,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:287,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:288,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:292,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:294,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:296,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:296,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:289,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:299,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:304,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:318,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:311,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:312,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:304,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:318,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:308,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:301,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:316,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:311,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:283,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:285,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:284,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:287,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:288,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:292,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:289,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:294,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:299,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:300,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:306,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:308,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:313,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:316,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 322
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 322
    functionName: escape_utf8
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_needs_escape
    - assert_true
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void escape_utf8(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:65,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:66,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:65,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:67,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:66,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:67,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:69,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:69,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:70,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:70,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:71,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:73,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:77,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:77,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:75,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:71,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:75,1
    - Dst: pcmk__xml_needs_escape
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c:73,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 79
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 79
    functionName: escape_left_angle
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_needs_escape_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_needs_escape
    - assert_true
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void escape_left_angle(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_new_doc
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_new_doc_test.c:23,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_new_doc_test.c:30,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_new_doc_test.c:25,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_new_doc_test.c:29,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_new_doc_test.c:26,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_new_doc_test.c:31,1
    - Dst: pcmk__xml_free_doc
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_new_doc_test.c:33,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 34
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 34
    functionName: create_document_node
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_new_doc_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_new_doc
    - assert_non_null
    - assert_int_equal
    - pcmk__xml_free_doc
    linkageType: ''
    returnType: void
    signature: 'static void create_document_node(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_sanitized
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:67,1
    - Dst: assert_sanitized
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:76,1
    - Dst: assert_sanitized
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:73,1
    - Dst: assert_sanitized
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 77
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 77
    functionName: start_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c
    functionUses: []
    functionsReached:
    - assert_sanitized
    linkageType: ''
    returnType: void
    signature: 'static void start_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:27,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:30,1
    - Dst: pcmk__xml_sanitize_id
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:30,1
    - Dst: pcmk__xml_sanitize_id
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:29,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:29,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: null_empty
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - free
    - pcmk__assert_asserts
    - pcmk__xml_sanitize_id
    linkageType: ''
    returnType: void
    signature: 'static void null_empty(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_sanitized
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:93,1
    - Dst: assert_sanitized
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: end_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c
    functionUses: []
    functionsReached:
    - assert_sanitized
    linkageType: ''
    returnType: void
    signature: 'static void end_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:17,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:20,1
    - Dst: pcmk__xml_sanitize_id
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:19,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:21,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - str
    - reference
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 22
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 22
    functionName: assert_sanitized
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__str_copy
    - free
    - pcmk__xml_sanitize_id
    linkageType: ''
    returnType: void
    signature: 'static void assert_sanitized(const char *str, const char *reference) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_sanitized
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:83,1
    - Dst: assert_sanitized
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: middle_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c
    functionUses: []
    functionsReached:
    - assert_sanitized
    linkageType: ''
    returnType: void
    signature: 'static void middle_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_sanitized
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:42,1
    - Dst: assert_sanitized
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:46,1
    - Dst: assert_sanitized
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:52,1
    - Dst: assert_sanitized
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:48,1
    - Dst: assert_sanitized
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:56,1
    - Dst: assert_sanitized
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 61
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 61
    functionName: all_valid
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c
    functionUses: []
    functionsReached:
    - assert_sanitized
    linkageType: ''
    returnType: void
    signature: 'static void all_valid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_sanitized
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:103,1
    - Dst: assert_sanitized
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:106,1
    - Dst: assert_sanitized
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: all_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_sanitize_id_test.c
    functionUses: []
    functionsReached:
    - assert_sanitized
    linkageType: ''
    returnType: void
    signature: 'static void all_invalid(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ascii_isalpha
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:69,1
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:70,1
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:72,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 75
    functionName: ascii
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - g_ascii_isalpha
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void ascii(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: unicode_0xC0_to_0xD6
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xC0_to_0xD6(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: unicode_0xF8_to_0x2FF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xF8_to_0x2FF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: unicode_0x370_to_0x37D
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x370_to_0x37D(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: unicode_0x2070_to_0x218F
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x2070_to_0x218F(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: unicode_0xF900_to_0xFDCF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xF900_to_0xFDCF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:243,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: unicode_0xFDF0_to_0xFFFD
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xFDF0_to_0xFFFD(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: unicode_0x80_to_0xBF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x80_to_0xBF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: unicode_0xD7
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xD7(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: unicode_0x300_to_0x36F
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x300_to_0x36F(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: unicode_0x37E
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x37E(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: unicode_0x2190_to_0x2BFF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x2190_to_0x2BFF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 237
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 237
    functionName: unicode_0xFDD0_to_0xFDEF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xFDD0_to_0xFDEF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 253
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 253
    functionName: unicode_0xFFFE_to_0xFFFF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xFFFE_to_0xFFFF(void **state) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_unichar_to_utf8
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:32,1
    - Dst: pcmk__xml_is_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:54,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:38,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - c
    - reference
    argTypes:
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 56
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 56
    functionName: assert_name_start_char
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk__xml_is_name_start_char
    - assert_int_equal
    - assert_false
    - g_unichar_to_utf8
    linkageType: ''
    returnType: void
    signature: 'static void assert_name_start_char(int c, bool reference) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: unicode_0xD8_to_0xF6
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xD8_to_0xF6(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: unicode_0x37F_to_0x1FFF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x37F_to_0x1FFF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: unicode_0x200C_to_0x200D
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x200C_to_0x200D(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: unicode_0x2C00_to_0x2FEF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x2C00_to_0x2FEF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: unicode_0x3001_to_0xD7FF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x3001_to_0xD7FF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: unicode_0x10000_to_0xEFFFF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x10000_to_0xEFFFF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:61,1
    - Dst: pcmk__xml_is_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:62,1
    - Dst: pcmk__xml_is_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:61,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: null_len
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk__xml_is_name_start_char
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void null_len(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: unicode_0xF7
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xF7(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: unicode_0x2000_to_0x200B
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x2000_to_0x200B(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: unicode_0x200E_to_0x206F
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x200E_to_0x206F(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: unicode_0x2FF0_to_0x3000
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x2FF0_to_0x3000(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 221
    functionName: unicode_0xD800_to_0xF8FF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xD800_to_0xF8FF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_start_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: unicode_0xF0000_to_0x10FFFF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_start_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_start_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xF0000_to_0x10FFFF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: unicode_0xB7
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xB7(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_ascii_isalnum
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:68,1
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:71,1
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:73,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: ascii
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - g_ascii_isalnum
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void ascii(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: unicode_0xD8_to_0xF6
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xD8_to_0xF6(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: unicode_0xF8_to_0x2FF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xF8_to_0x2FF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: unicode_0x200C_to_0x200D
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x200C_to_0x200D(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: unicode_0x2C00_to_0x2FEF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x2C00_to_0x2FEF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: unicode_0x3001_to_0xD7FF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x3001_to_0xD7FF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:290,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 292
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 292
    functionName: unicode_0x10000_to_0xEFFFF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x10000_to_0xEFFFF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: unicode_0x80_to_0xB6
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x80_to_0xB6(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: unicode_0xB8_to_0xBF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xB8_to_0xBF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: unicode_0xF7
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xF7(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: unicode_0x300_to_0x36F
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x300_to_0x36F(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: unicode_0x200E_to_0x203E
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x200E_to_0x203E(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 236
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 236
    functionName: unicode_0x2FF0_to_0x3000
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x2FF0_to_0x3000(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 252
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 252
    functionName: unicode_0xD800_to_0xF8FF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xD800_to_0xF8FF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 300
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 300
    functionName: unicode_0xF0000_to_0x10FFFF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xF0000_to_0x10FFFF(void **state) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_unichar_to_utf8
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:31,1
    - Dst: pcmk__xml_is_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:53,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:35,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - c
    - reference
    argTypes:
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 55
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 55
    functionName: assert_name_char
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - assert_int_equal
    - assert_false
    - g_unichar_to_utf8
    - pcmk__xml_is_name_char
    linkageType: ''
    returnType: void
    signature: 'static void assert_name_char(int c, bool reference) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: unicode_0xC0_to_0xD6
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xC0_to_0xD6(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: unicode_0x370_to_0x37D
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x370_to_0x37D(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: unicode_0x37F_to_0x1FFF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x37F_to_0x1FFF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: unicode_0x203F_to_0x2040
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x203F_to_0x2040(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: unicode_0x2070_to_0x218F
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x2070_to_0x218F(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 260
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 260
    functionName: unicode_0xF900_to_0xFDCF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xF900_to_0xFDCF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: unicode_0xFDF0_to_0xFFFD
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xFDF0_to_0xFFFD(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:60,1
    - Dst: pcmk__xml_is_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:61,1
    - Dst: pcmk__xml_is_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:60,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: null_len
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk__xml_is_name_char
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void null_len(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: unicode_0xD7
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xD7(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: unicode_0x37E
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x37E(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 172
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 172
    functionName: unicode_0x2000_to_0x200B
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x2000_to_0x200B(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: unicode_0x2041_to_0x206F
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x2041_to_0x206F(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: unicode_0x2190_to_0x2BFF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0x2190_to_0x2BFF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 268
    functionName: unicode_0xFDD0_to_0xFDEF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xFDD0_to_0xFDEF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_name_char
      Src: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c:282,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 284
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 284
    functionName: unicode_0xFFFE_to_0xFFFF
    functionSourceFile: /src/pacemaker/lib/common/tests/xml/pcmk__xml_is_name_char_test.c
    functionUses: []
    functionsReached:
    - assert_name_char
    linkageType: ''
    returnType: void
    signature: 'static void unicode_0xFFFE_to_0xFFFF(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_deref
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:80,1
    - Dst: assert_deref
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: null_for_null
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c
    functionUses: []
    functionsReached:
    - assert_deref
    linkageType: ''
    returnType: void
    signature: 'static void null_for_null(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_deref
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:112,1
    - Dst: assert_deref
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:122,1
    - Dst: assert_deref
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:119,1
    - Dst: assert_deref
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 123
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 123
    functionName: without_idref
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c
    functionUses: []
    functionsReached:
    - assert_deref
    linkageType: ''
    returnType: void
    signature: 'static void without_idref(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_deref
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:143,1
    - Dst: assert_deref
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:153,1
    - Dst: assert_deref
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:150,1
    - Dst: assert_deref
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 154
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 154
    functionName: with_idref
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c
    functionUses: []
    functionsReached:
    - assert_deref
    linkageType: ''
    returnType: void
    signature: 'static void with_idref(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_deref
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:90,1
    - Dst: assert_deref
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:93,1
    - Dst: assert_deref
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:92,1
    - Dst: assert_deref
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: null_for_no_children
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c
    functionUses: []
    functionsReached:
    - assert_deref
    linkageType: ''
    returnType: void
    signature: 'static void null_for_no_children(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_deref
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:172,1
    - Dst: assert_deref
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:179,1
    - Dst: assert_deref
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:182,1
    - Dst: assert_deref
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 183
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 183
    functionName: with_broken_idref
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c
    functionUses: []
    functionsReached:
    - assert_deref
    linkageType: ''
    returnType: void
    signature: 'static void with_broken_idref(void **state) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_add
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:47,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:72,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:36,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:37,1
    - Dst: va_end
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:49,1
    - Dst: pcmk__xe_dereference_children
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:52,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:52,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:70,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:74,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:61,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:64,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:42,1
    - Dst: va_start
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:41,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:45,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:64,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:67,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:43,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:58,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c:67,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - xml_string
    - element_name
    - '...'
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 75
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 75
    functionName: assert_deref
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_idref/pcmk__xe_dereference_children_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - g_list_free
    - pcmk__xe_first_child
    - assert_non_null
    - g_hash_table_destroy
    - pcmk__strkey_table
    - g_hash_table_remove
    - va_end
    - assert_int_equal
    - pcmk__xe_dereference_children
    - va_arg
    - pcmk__xml_free
    - va_start
    - pcmk__xml_parse
    - crm_element_value
    - assert_null
    - g_hash_table_add
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void assert_deref(const char *xml_string, const char *element_name,
      ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:20,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_type
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:48,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:52,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:48,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: case_insensitive
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_type
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void case_insensitive(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:76,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:76,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:79,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:82,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:79,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:82,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:85,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:85,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:88,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:88,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:94,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:94,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:91,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 96
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 96
    functionName: default_integer
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_type
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void default_integer(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:60,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:60,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:63,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:66,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:63,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:66,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:69,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: default_number
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_type
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void default_number(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:28,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:32,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:28,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:36,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:36,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:40,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 43
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 43
    functionName: valid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_type
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void valid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:101,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:105,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:105,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:109,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:101,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:109,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:113,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:113,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:116,1
    - Dst: pcmk__parse_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 118
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 118
    functionName: default_string
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__parse_type_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_type
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void default_string(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new_undefined
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:45,1
    - Dst: pcmk__evaluate_condition
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:50,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:49,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:47,1
    - Dst: pcmk__evaluate_condition
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:50,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:51,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:53,1
    - Dst: pcmk__evaluate_condition
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:53,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:56,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 57
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 57
    functionName: null_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c
    functionUses: []
    functionsReached:
    - crm_time_new_undefined
    - assert_int_equal
    - crm_time_free
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk__evaluate_condition
    linkageType: ''
    returnType: void
    signature: 'static void null_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:65,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:71,1
    - Dst: pcmk__evaluate_condition
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:68,1
    - Dst: crm_time_new_undefined
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:66,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:68,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:72,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: invalid_expression
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c
    functionUses: []
    functionsReached:
    - pcmk__evaluate_condition
    - crm_time_new_undefined
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void invalid_expression(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:105,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:107,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:110,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:108,1
    - Dst: pcmk__evaluate_condition
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:110,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:113,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: location_expression
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c
    functionUses: []
    functionsReached:
    - pcmk__insert_dup
    - pcmk__strkey_table
    - g_hash_table_destroy
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk__evaluate_condition
    linkageType: ''
    returnType: void
    signature: 'static void location_expression(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:127,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:128,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:130,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:129,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:133,1
    - Dst: pcmk__evaluate_condition
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:133,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:135,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:135,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:138,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:139,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 141
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: date_expression
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_int_equal
    - crm_time_free
    - pcmk__xml_parse
    - crm_time_new
    - pcmk__evaluate_condition
    linkageType: ''
    returnType: void
    signature: 'static void date_expression(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:151,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:155,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:153,1
    - Dst: pcmk__evaluate_condition
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: resource_expression
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__evaluate_condition
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void resource_expression(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:166,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:168,1
    - Dst: pcmk__evaluate_condition
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:168,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 171
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 171
    functionName: op_expression
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__evaluate_condition
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void op_expression(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:183,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:186,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:184,1
    - Dst: pcmk__evaluate_condition
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: subrule
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__evaluate_condition
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void subrule(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:83,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:86,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:88,1
    - Dst: pcmk__evaluate_condition
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:88,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:85,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:91,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 94
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 94
    functionName: attribute_expression
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_condition_test.c
    functionUses: []
    functionsReached:
    - pcmk__insert_dup
    - pcmk__strkey_table
    - g_hash_table_destroy
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk__evaluate_condition
    linkageType: ''
    returnType: void
    signature: 'static void attribute_expression(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new_undefined
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:46,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:48,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:48,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:52,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:51,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:52,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:55,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:55,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 59
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 59
    functionName: null_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c
    functionUses: []
    functionsReached:
    - crm_time_new_undefined
    - pcmk_evaluate_rule
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void null_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:71,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:77,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:74,1
    - Dst: crm_time_new_undefined
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:72,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:74,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: id_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c
    functionUses: []
    functionsReached:
    - crm_time_new_undefined
    - pcmk_evaluate_rule
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void id_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:86,1
    - Dst: crm_time_new_undefined
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:88,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:87,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:90,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:91,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:91,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:94,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 96
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 96
    functionName: good_idref
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_time_new_undefined
    - crm_xml_add
    - pcmk_evaluate_rule
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void good_idref(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:292,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:294,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:296,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:294,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 297
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: or_one_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk_evaluate_rule
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void or_one_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:119,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:121,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:124,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 125
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 125
    functionName: empty_default
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk_evaluate_rule
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void empty_default(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:101,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:106,1
    - Dst: crm_time_new_undefined
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:103,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:102,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:105,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:106,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:109,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 111
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 111
    functionName: bad_idref
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_time_new_undefined
    - crm_xml_add
    - pcmk_evaluate_rule
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void bad_idref(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:135,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:137,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:140,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: empty_and
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk_evaluate_rule
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void empty_and(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:150,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:152,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:152,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 156
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 156
    functionName: empty_or
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk_evaluate_rule
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void empty_or(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:171,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:176,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:173,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 177
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 177
    functionName: default_boolean_op
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk_evaluate_rule
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void default_boolean_op(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:192,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:194,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:197,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 198
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 198
    functionName: invalid_boolean_op
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk_evaluate_rule
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void invalid_boolean_op(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:213,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:217,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:215,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 218
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 218
    functionName: and_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk_evaluate_rule
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void and_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:230,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:232,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:234,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 235
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 235
    functionName: lonely_and_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk_evaluate_rule
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void lonely_and_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:250,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:255,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:252,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:252,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 256
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 256
    functionName: and_one_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk_evaluate_rule
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void and_one_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:271,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:276,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:273,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 277
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 277
    functionName: and_two_fail
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk_evaluate_rule
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void and_two_fail(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:312,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:316,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:314,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 317
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 317
    functionName: or_two_pass
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk_evaluate_rule
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void or_two_pass(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:330,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:332,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:334,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 335
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 335
    functionName: lonely_or_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk_evaluate_rule
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void lonely_or_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:350,1
    - Dst: pcmk_evaluate_rule
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:352,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:352,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c:355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 356
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 356
    functionName: or_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk_evaluate_rule_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk_evaluate_rule
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void or_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:82,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:85,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: null_next_change_ok
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void null_next_change_ok(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:369,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:373,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 374
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 374
    functionName: range_invalid_start_valid_end
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void range_invalid_start_valid_end(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:233,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:236,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:234,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:239,1
    - Dst: pcmk__evaluate_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:236,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 241
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 241
    functionName: range_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - pcmk__evaluate_date_expression
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void range_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:323,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:330,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:334,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:338,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:326,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 342
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 342
    functionName: range_valid_end_only
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void range_valid_end_only(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:385,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:392,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:400,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:388,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:396,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:404,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:408,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 412
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 412
    functionName: range_valid_start_valid_end
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void range_valid_start_valid_end(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:484,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:486,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 489
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 489
    functionName: range_valid_start_duration_missing_id
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void range_valid_start_duration_missing_id(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:514,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:517,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 518
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 518
    functionName: spec_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void spec_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:531,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:538,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:544,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:534,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:541,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:547,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 551
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 551
    functionName: spec_valid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void spec_valid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:96,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:99,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: id_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void id_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:68,1
    - Dst: pcmk__evaluate_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:71,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:72,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:71,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:69,1
    - Dst: pcmk__evaluate_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:72,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:73,1
    - Dst: pcmk__evaluate_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:73,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:75,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: null_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - pcmk__evaluate_date_expression
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void null_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:266,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:268,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: range_invalid_start_only
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void range_invalid_start_only(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:425,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:427,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:429,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 430
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 430
    functionName: range_valid_start_invalid_duration
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void range_valid_start_invalid_duration(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:443,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:458,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:450,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:454,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:446,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:462,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:466,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:469,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 470
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 470
    functionName: range_valid_start_valid_duration
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void range_valid_start_valid_duration(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:563,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:567,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 568
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 568
    functionName: spec_missing_id
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void spec_missing_id(void **state) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:43,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:46,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:47,1
    - Dst: pcmk__evaluate_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:47,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:49,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:52,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:54,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:54,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:55,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:56,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 5
    argNames:
    - xml
    - now_s
    - next_change_s
    - reference_s
    - reference_rc
    argTypes:
    - xmlNode*
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 58
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 58
    functionName: assert_date_expression
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - assert_int_equal
    - crm_time_new
    - pcmk__evaluate_date_expression
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void assert_date_expression(const xmlNode *xml, const char
      *now_s, const char *next_change_s, const char *reference_s, int reference_rc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:109,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:111,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 113
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 113
    functionName: op_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void op_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:173,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:176,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: gt_missing_start
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void gt_missing_start(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:252,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:255,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 256
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 256
    functionName: range_invalid_start_invalid_end
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void range_invalid_start_invalid_end(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:309,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:312,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 313
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 313
    functionName: range_invalid_end_only
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void range_invalid_end_only(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:122,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:124,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: lt_missing_end
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void lt_missing_end(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:136,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:139,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: lt_invalid_end
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void lt_invalid_end(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:145,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:156,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:152,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:160,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:148,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 164
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 164
    functionName: lt_valid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void lt_valid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:187,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:190,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 191
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 191
    functionName: gt_invalid_start
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void gt_invalid_start(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:201,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:204,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:216,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:208,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:212,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:220,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 224
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 224
    functionName: gt_valid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void gt_valid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:280,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:291,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:295,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:287,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:283,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 299
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 299
    functionName: range_valid_start_only
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void range_valid_start_only(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:353,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:355,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 358
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 358
    functionName: range_valid_start_invalid_end
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void range_valid_start_invalid_end(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:498,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:501,1
    - Dst: assert_date_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c:500,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 502
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 502
    functionName: spec_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    - assert_date_expression
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void spec_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c:19,1
    - Dst: pcmk__parse_combine
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c:19,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: default_and
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_combine
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void default_and(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c:33,1
    - Dst: pcmk__parse_combine
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c:34,1
    - Dst: pcmk__parse_combine
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: valid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_combine
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void valid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c:25,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c:27,1
    - Dst: pcmk__parse_combine
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c:25,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c:26,1
    - Dst: pcmk__parse_combine
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c:26,1
    - Dst: pcmk__parse_combine
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_combine
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c:40,1
    - Dst: pcmk__parse_combine
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c:40,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c:43,1
    - Dst: pcmk__parse_combine
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: case_insensitive
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__parse_combine_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_combine
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void case_insensitive(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:40,1
    - Dst: pcmk__evaluate_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:42,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:42,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - xml_string
    - reference_rc
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: assert_rsc_expression
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__evaluate_rsc_expression
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    linkageType: ''
    returnType: void
    signature: 'static void assert_rsc_expression(const char *xml_string, int reference_rc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:112,1
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:117,1
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:116,1
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: fail_standard
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c
    functionUses: []
    functionsReached:
    - assert_rsc_expression
    linkageType: ''
    returnType: void
    signature: 'static void fail_standard(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:158,1
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:163,1
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:162,1
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 165
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 165
    functionName: fail_agent
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c
    functionUses: []
    functionsReached:
    - assert_rsc_expression
    linkageType: ''
    returnType: void
    signature: 'static void fail_agent(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: no_standard_matches
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c
    functionUses: []
    functionsReached:
    - assert_rsc_expression
    linkageType: ''
    returnType: void
    signature: 'static void no_standard_matches(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: no_provider_matches
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c
    functionUses: []
    functionsReached:
    - assert_rsc_expression
    linkageType: ''
    returnType: void
    signature: 'static void no_provider_matches(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: no_agent_matches
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c
    functionUses: []
    functionsReached:
    - assert_rsc_expression
    linkageType: ''
    returnType: void
    signature: 'static void no_agent_matches(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: no_criteria_matches
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c
    functionUses: []
    functionsReached:
    - assert_rsc_expression
    linkageType: ''
    returnType: void
    signature: 'static void no_criteria_matches(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:92,1
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: id_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c
    functionUses: []
    functionsReached:
    - assert_rsc_expression
    linkageType: ''
    returnType: void
    signature: 'static void id_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:135,1
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:139,1
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:136,1
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: fail_provider
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c
    functionUses: []
    functionsReached:
    - assert_rsc_expression
    linkageType: ''
    returnType: void
    signature: 'static void fail_provider(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: all_match
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c
    functionUses: []
    functionsReached:
    - assert_rsc_expression
    linkageType: ''
    returnType: void
    signature: 'static void all_match(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:63,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:66,1
    - Dst: pcmk__evaluate_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:66,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:65,1
    - Dst: pcmk__evaluate_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:63,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:67,1
    - Dst: assert_rsc_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: null_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_rsc_expression_test.c
    functionUses: []
    functionsReached:
    - assert_rsc_expression
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk__evaluate_rsc_expression
    linkageType: ''
    returnType: void
    signature: 'static void null_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:20,1
    - Dst: pcmk__parse_comparison
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: null_unknown
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_comparison
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void null_unknown(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:26,1
    - Dst: pcmk__parse_comparison
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:26,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_comparison
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:60,1
    - Dst: pcmk__parse_comparison
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:63,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:63,1
    - Dst: pcmk__parse_comparison
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: case_insensitive
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_comparison
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void case_insensitive(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:35,1
    - Dst: pcmk__parse_comparison
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:38,1
    - Dst: pcmk__parse_comparison
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:35,1
    - Dst: pcmk__parse_comparison
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:38,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:41,1
    - Dst: pcmk__parse_comparison
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:41,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:44,1
    - Dst: pcmk__parse_comparison
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:44,1
    - Dst: pcmk__parse_comparison
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:50,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:53,1
    - Dst: pcmk__parse_comparison
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:53,1
    - Dst: pcmk__parse_comparison
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 55
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 55
    functionName: valid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__parse_comparison_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_comparison
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void valid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:20,1
    - Dst: pcmk__parse_source
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: default_literal
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_source
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void default_literal(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:26,1
    - Dst: pcmk__parse_source
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:26,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:27,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:28,1
    - Dst: pcmk__parse_source
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:27,1
    - Dst: pcmk__parse_source
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_source
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:47,1
    - Dst: pcmk__parse_source
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:50,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:50,1
    - Dst: pcmk__parse_source
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:47,1
    - Dst: pcmk__parse_source
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: case_insensitive
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_source
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void case_insensitive(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:34,1
    - Dst: pcmk__parse_source
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:34,1
    - Dst: pcmk__parse_source
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:40,1
    - Dst: pcmk__parse_source
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: valid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__parse_source_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_source
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void valid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 302
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 302
    functionName: source_meta_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void source_meta_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: source_meta_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void source_meta_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: op_lte_lt_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_lte_lt_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 594
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 594
    functionName: op_lte_eq_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_lte_eq_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:606,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 607
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 607
    functionName: op_lte_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_lte_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 620
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 620
    functionName: op_gte_gt_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_gte_gt_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:632,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 633
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 633
    functionName: op_gte_eq_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_gte_eq_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:110,1
    - Dst: pcmk__evaluate_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:112,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:113,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:112,1
    - Dst: pcmk__evaluate_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:113,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:114,1
    - Dst: pcmk__evaluate_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:114,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: null_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__evaluate_attr_expression
    - pcmk__xml_parse
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void null_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: source_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void source_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: source_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void source_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 713
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 713
    functionName: op_ne_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_ne_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 568
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 568
    functionName: op_gt_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_gt_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 489
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 489
    functionName: type_version_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void type_version_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:831,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 832
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 832
    functionName: value_missing_eq_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void value_missing_eq_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:685,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 686
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 686
    functionName: op_eq_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_eq_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:541,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 542
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 542
    functionName: op_lt_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_lt_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: type_default_number
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void type_default_number(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 346
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 346
    functionName: type_default_int
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void type_default_int(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:358,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 359
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 359
    functionName: type_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void type_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 372
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 372
    functionName: type_string_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void type_string_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 385
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 385
    functionName: type_string_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void type_string_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 646
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 646
    functionName: op_gte_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_gte_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 661
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 661
    functionName: op_eq_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_eq_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 673
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 673
    functionName: op_eq_empty_vs_empty_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_eq_empty_vs_empty_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:770,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 771
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 771
    functionName: op_defined_with_value
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_defined_with_value(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:781,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 782
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 782
    functionName: op_undefined_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_undefined_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:747,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 748
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 748
    functionName: op_defined_empty_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_defined_empty_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 516
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 516
    functionName: op_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:803,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 805
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 805
    functionName: op_undefined_empty_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_undefined_empty_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: source_literal_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void source_literal_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: source_literal_value_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void source_literal_value_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: source_literal_attr_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void source_literal_attr_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: source_params_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void source_params_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: source_params_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void source_params_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: source_params_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void source_params_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: source_meta_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void source_meta_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 504
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 504
    functionName: op_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:51,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:55,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:56,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:53,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:52,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:57,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:59,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:60,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:61,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:62,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:64,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 67
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 67
    functionName: setup
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__insert_dup
    - pcmk__strkey_table
    linkageType: ''
    returnType: int
    signature: 'static int setup(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: id_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void id_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 555
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 555
    functionName: op_gt_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_gt_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 699
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 699
    functionName: op_eq_undefined_vs_empty_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_eq_undefined_vs_empty_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:725,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 726
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 726
    functionName: op_ne_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_ne_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 529
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 529
    functionName: op_lt_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_lt_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:792,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 793
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 793
    functionName: op_undefined_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_undefined_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:88,1
    - Dst: pcmk__evaluate_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:90,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:92,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - xml_string
    - reference_rc
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: assert_attr_expression
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__evaluate_attr_expression
    - pcmk__xml_parse
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void assert_attr_expression(const char *xml_string, int reference_rc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 398
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 398
    functionName: type_integer_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void type_integer_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 411
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 411
    functionName: type_integer_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void type_integer_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 424
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 424
    functionName: type_integer_truncation
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void type_integer_truncation(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 437
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 437
    functionName: type_number_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void type_number_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 450
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: type_number_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void type_number_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 463
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 463
    functionName: type_version_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void type_version_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 476
    functionName: type_version_equality
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void type_version_equality(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: attr_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void attr_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: attr_with_submatch_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void attr_with_submatch_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: attr_with_submatch_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void attr_with_submatch_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 759
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 759
    functionName: op_defined_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_defined_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:820,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 821
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 821
    functionName: value_missing_defined_ok
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void value_missing_defined_ok(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:72,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:73,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: teardown
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    linkageType: ''
    returnType: int
    signature: 'static int teardown(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_attr_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c:736,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 737
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 737
    functionName: op_defined_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_attr_expression_test.c
    functionUses: []
    functionsReached:
    - assert_attr_expression
    linkageType: ''
    returnType: void
    signature: 'static void op_defined_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_submatch
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:62,1
    - Dst: assert_submatch
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: without_matches
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c
    functionUses: []
    functionsReached:
    - assert_submatch
    linkageType: ''
    returnType: void
    signature: 'static void without_matches(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:43,1
    - Dst: pcmk__replace_submatches
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:43,1
    - Dst: assert_submatch
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:45,1
    - Dst: assert_submatch
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: no_source
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - pcmk__replace_submatches
    - assert_submatch
    linkageType: ''
    returnType: void
    signature: 'static void no_source(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__replace_submatches
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:30,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:32,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:33,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:35,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:35,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:37,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - string
    - reference
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 38
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 38
    functionName: assert_submatch
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c
    functionUses: []
    functionsReached:
    - strcmp
    - assert_int_equal
    - free
    - assert_null
    - pcmk__replace_submatches
    linkageType: ''
    returnType: void
    signature: 'static void assert_submatch(const char *string, const char *reference) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:51,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:55,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:53,1
    - Dst: pcmk__replace_submatches
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:53,1
    - Dst: pcmk__replace_submatches
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:51,1
    - Dst: pcmk__replace_submatches
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: source_has_no_variables
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - pcmk__replace_submatches
    linkageType: ''
    returnType: void
    signature: 'static void source_has_no_variables(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_submatch
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:71,1
    - Dst: assert_submatch
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:72,1
    - Dst: assert_submatch
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: with_matches
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__replace_submatches_test.c
    functionUses: []
    functionsReached:
    - assert_submatch
    linkageType: ''
    returnType: void
    signature: 'static void with_matches(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:21,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:21,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:22,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:22,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:23,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:23,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: null_compares_lesser
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - assert_int_equal
    - pcmk__cmp_by_type
    linkageType: ''
    returnType: void
    signature: 'static void null_compares_lesser(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:37,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:38,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:39,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:38,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:37,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:39,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:40,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:40,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:41,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:41,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:42,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: compare_string_type
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - assert_int_equal
    - pcmk__cmp_by_type
    linkageType: ''
    returnType: void
    signature: 'static void compare_string_type(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:72,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:73,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:73,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:72,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:74,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:74,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:75,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:75,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:78,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:78,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:80,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:81,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:82,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:80,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:79,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:82,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 84
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 84
    functionName: compare_number_type
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - assert_int_equal
    - pcmk__cmp_by_type
    linkageType: ''
    returnType: void
    signature: 'static void compare_number_type(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:29,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:30,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:31,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:29,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:30,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: invalid_compares_equal
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__cmp_by_type
    linkageType: ''
    returnType: void
    signature: 'static void invalid_compares_equal(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:51,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:51,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:55,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:58,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:61,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:63,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:52,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:52,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:57,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:56,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:62,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:64,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:65,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:53,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:61,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:56,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:63,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:66,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:48,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:49,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:54,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:54,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:55,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 67
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 67
    functionName: compare_integer_type
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk__cmp_by_type
    - crm_strdup_printf
    - assert_int_equal
    - free
    linkageType: ''
    returnType: void
    signature: 'static void compare_integer_type(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:89,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:90,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:89,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:90,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:91,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:91,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:92,1
    - Dst: pcmk__cmp_by_type
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: compare_version_type
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__cmp_by_type_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - assert_int_equal
    - pcmk__cmp_by_type
    linkageType: ''
    returnType: void
    signature: 'static void compare_version_type(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:22,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:25,1
    - Dst: pcmk__evaluate_date_spec
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:25,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:23,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:27,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:28,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - t
    - x
    - expected
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 29
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 29
    functionName: run_one_test
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__evaluate_date_spec
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void run_one_test(const char *t, const char *x, int expected) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_one_test
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: time_satisfies_year_spec
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c
    functionUses: []
    functionsReached:
    - run_one_test
    linkageType: ''
    returnType: void
    signature: 'static void time_satisfies_year_spec(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_one_test
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: spec_id_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c
    functionUses: []
    functionsReached:
    - run_one_test
    linkageType: ''
    returnType: void
    signature: 'static void spec_id_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_one_test
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: time_satisfies_year_range
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c
    functionUses: []
    functionsReached:
    - run_one_test
    linkageType: ''
    returnType: void
    signature: 'static void time_satisfies_year_range(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_one_test
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: time_after_year_range
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c
    functionUses: []
    functionsReached:
    - run_one_test
    linkageType: ''
    returnType: void
    signature: 'static void time_after_year_range(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_one_test
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:122,1
    - Dst: run_one_test
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 132
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 132
    functionName: range_without_end_year_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c
    functionUses: []
    functionsReached:
    - run_one_test
    linkageType: ''
    returnType: void
    signature: 'static void range_without_end_year_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_one_test
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: time_after_yeardays_spec
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c
    functionUses: []
    functionsReached:
    - run_one_test
    linkageType: ''
    returnType: void
    signature: 'static void time_after_yeardays_spec(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_one_test
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: exact_ymd_satisfies
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c
    functionUses: []
    functionsReached:
    - run_one_test
    linkageType: ''
    returnType: void
    signature: 'static void exact_ymd_satisfies(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:34,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:40,1
    - Dst: pcmk__evaluate_date_spec
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:39,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:39,1
    - Dst: pcmk__evaluate_date_spec
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:40,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:41,1
    - Dst: pcmk__evaluate_date_spec
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:41,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:43,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: null_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__evaluate_date_spec
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void null_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_one_test
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: invalid_range
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c
    functionUses: []
    functionsReached:
    - run_one_test
    linkageType: ''
    returnType: void
    signature: 'static void invalid_range(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_one_test
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: time_after_year_spec
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c
    functionUses: []
    functionsReached:
    - run_one_test
    linkageType: ''
    returnType: void
    signature: 'static void time_after_year_spec(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_one_test
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: time_before_year_range
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c
    functionUses: []
    functionsReached:
    - run_one_test
    linkageType: ''
    returnType: void
    signature: 'static void time_before_year_range(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_one_test
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: range_without_start_year_passes
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c
    functionUses: []
    functionsReached:
    - run_one_test
    linkageType: ''
    returnType: void
    signature: 'static void range_without_start_year_passes(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_one_test
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: yeardays_satisfies
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c
    functionUses: []
    functionsReached:
    - run_one_test
    linkageType: ''
    returnType: void
    signature: 'static void yeardays_satisfies(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_one_test
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 162
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 162
    functionName: yeardays_feb_29_satisfies
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c
    functionUses: []
    functionsReached:
    - run_one_test
    linkageType: ''
    returnType: void
    signature: 'static void yeardays_feb_29_satisfies(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_one_test
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 186
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 186
    functionName: range_in_month_satisfies
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c
    functionUses: []
    functionsReached:
    - run_one_test
    linkageType: ''
    returnType: void
    signature: 'static void range_in_month_satisfies(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_one_test
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 198
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 198
    functionName: exact_ymd_after_range
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c
    functionUses: []
    functionsReached:
    - run_one_test
    linkageType: ''
    returnType: void
    signature: 'static void exact_ymd_after_range(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_one_test
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 210
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 210
    functionName: time_after_monthdays_range
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_date_spec_test.c
    functionUses: []
    functionsReached:
    - run_one_test
    linkageType: ''
    returnType: void
    signature: 'static void time_after_monthdays_range(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:39,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:43,1
    - Dst: pcmk__evaluate_op_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:41,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - xml_string
    - reference_rc
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: assert_op_expression
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__evaluate_op_expression
    - pcmk__xml_parse
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void assert_op_expression(const char *xml_string, int reference_rc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_op_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:120,1
    - Dst: assert_op_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: input_name_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c
    functionUses: []
    functionsReached:
    - assert_op_expression
    linkageType: ''
    returnType: void
    signature: 'static void input_name_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_op_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: match_both
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c
    functionUses: []
    functionsReached:
    - assert_op_expression
    linkageType: ''
    returnType: void
    signature: 'static void match_both(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_op_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: name_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c
    functionUses: []
    functionsReached:
    - assert_op_expression
    linkageType: ''
    returnType: void
    signature: 'static void name_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_op_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:88,1
    - Dst: assert_op_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: id_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c
    functionUses: []
    functionsReached:
    - assert_op_expression
    linkageType: ''
    returnType: void
    signature: 'static void id_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_op_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:157,1
    - Dst: assert_op_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: invalid_interval
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c
    functionUses: []
    functionsReached:
    - assert_op_expression
    linkageType: ''
    returnType: void
    signature: 'static void invalid_interval(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_op_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: default_interval
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c
    functionUses: []
    functionsReached:
    - assert_op_expression
    linkageType: ''
    returnType: void
    signature: 'static void default_interval(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_op_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: fail_interval
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c
    functionUses: []
    functionsReached:
    - assert_op_expression
    linkageType: ''
    returnType: void
    signature: 'static void fail_interval(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_op_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: fail_both
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c
    functionUses: []
    functionsReached:
    - assert_op_expression
    linkageType: ''
    returnType: void
    signature: 'static void fail_both(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:61,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:64,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:63,1
    - Dst: pcmk__evaluate_op_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:61,1
    - Dst: pcmk__evaluate_op_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:64,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:65,1
    - Dst: assert_op_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: null_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c
    functionUses: []
    functionsReached:
    - pcmk__evaluate_op_expression
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - assert_op_expression
    linkageType: ''
    returnType: void
    signature: 'static void null_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_op_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:133,1
    - Dst: assert_op_expression
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 137
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 137
    functionName: fail_name
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__evaluate_op_expression_test.c
    functionUses: []
    functionsReached:
    - assert_op_expression
    linkageType: ''
    returnType: void
    signature: 'static void fail_name(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:51,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:52,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:55,1
    - Dst: pcmk__unpack_duration
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:55,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:57,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:58,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:59,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: nonnull_end_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c
    functionUses: []
    functionsReached:
    - pcmk__unpack_duration
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void nonnull_end_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:80,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:84,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:81,1
    - Dst: pcmk__unpack_duration
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:84,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:86,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:88,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:89,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: years_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c
    functionUses: []
    functionsReached:
    - pcmk__unpack_duration
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - assert_null
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void years_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:36,1
    - Dst: pcmk__unpack_duration
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:36,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:37,1
    - Dst: pcmk__unpack_duration
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:38,1
    - Dst: pcmk__unpack_duration
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:38,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:39,1
    - Dst: pcmk__unpack_duration
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:39,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:40,1
    - Dst: pcmk__unpack_duration
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:41,1
    - Dst: pcmk__unpack_duration
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:40,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:44,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:41,1
    - Dst: pcmk__unpack_duration
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:42,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:45,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:42,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 46
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 46
    functionName: null_invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c
    functionUses: []
    functionsReached:
    - pcmk__unpack_duration
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void null_invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:65,1
    - Dst: pcmk__unpack_duration
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:69,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:66,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:71,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:69,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:73,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: no_id
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c
    functionUses: []
    functionsReached:
    - pcmk__unpack_duration
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - assert_null
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void no_id(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:95,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:98,1
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:96,1
    - Dst: pcmk__unpack_duration
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:100,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:100,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:101,1
    - Dst: crm_time_compare
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:101,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:103,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:104,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:105,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c:106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 107
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 107
    functionName: all_valid
    functionSourceFile: /src/pacemaker/lib/common/tests/rules/pcmk__unpack_duration_test.c
    functionUses: []
    functionsReached:
    - crm_time_compare
    - pcmk__unpack_duration
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_time_new
    - crm_time_free
    linkageType: ''
    returnType: void
    signature: 'static void all_valid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:41,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 4
    argNames:
    - pathname
    - sbuf
    - type
    - ftwb
    argTypes:
    - char*
    - struct stat*
    - int
    - struct FTW*
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: rm_files
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c
    functionUses: []
    functionsReached:
    - remove
    linkageType: ''
    returnType: int
    signature: 'static int rm_files(const char *pathname, const struct stat *sbuf,
      int type, struct FTW *ftwb) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:59,1
    - Dst: pcmk__get_tmpdir
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:59,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:63,1
    - Dst: symlink_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:72,1
    - Dst: mkdtemp
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:60,1
    - Dst: rmdir
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:73,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:74,1
    - Dst: symlink_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:78,1
    - Dst: rmdir
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:79,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:80,1
    - Dst: setenv
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:84,1
    - Dst: setenv
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:85,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 93
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 93
    functionName: setup
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c
    functionUses: []
    functionsReached:
    - setenv
    - rmdir
    - crm_strdup_printf
    - symlink_schema
    - free
    - pcmk__get_tmpdir
    - mkdtemp
    linkageType: ''
    returnType: int
    signature: 'static int setup(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:118,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:119,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:122,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - schema_name
    - schema_index
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: assert_schema
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c
    functionUses: []
    functionsReached:
    - pcmk__get_schema
    - assert_non_null
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void assert_schema(const char *schema_name, int schema_index) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:28,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:33,1
    - Dst: symlink
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:31,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:34,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:29,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - tmpdir
    - target_file
    - link_file
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 36
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 36
    functionName: symlink_schema
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c
    functionUses: []
    functionsReached:
    - free
    - symlink
    - crm_strdup_printf
    linkageType: ''
    returnType: int
    signature: 'static int symlink_schema(const char *tmpdir, const char *target_file,
      const char *link_file) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nftw
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - dir
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: rmtree
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c
    functionUses: []
    functionsReached:
    - nftw
    linkageType: ''
    returnType: int
    signature: 'static int rmtree(const char *dir) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_test_teardown_group
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:101,1
    - Dst: unsetenv
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:103,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:107,1
    - Dst: rmtree
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:105,1
    - Dst: unsetenv
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:102,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 110
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 110
    functionName: teardown
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c
    functionUses: []
    functionsReached:
    - unsetenv
    - free
    - pcmk__xml_test_teardown_group
    - rmtree
    linkageType: ''
    returnType: int
    signature: 'static int teardown(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__schema_init
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:130,1
    - Dst: assert_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:138,1
    - Dst: assert_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:136,1
    - Dst: assert_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:137,1
    - Dst: assert_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:139,1
    - Dst: assert_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:140,1
    - Dst: assert_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:141,1
    - Dst: assert_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 145
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 145
    functionName: extra_schema_files
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_init_test.c
    functionUses: []
    functionsReached:
    - pcmk__schema_init
    - assert_schema
    linkageType: ''
    returnType: void
    signature: 'static void extra_schema_files(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:19,1
    - Dst: pcmk__xml_test_setup_group
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: setup
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c
    functionUses: []
    functionsReached:
    - setenv
    - pcmk__xml_test_setup_group
    linkageType: ''
    returnType: int
    signature: 'static int setup(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:58,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:58,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:62,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:60,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:60,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: none_is_greater
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk__cmp_schemas_by_name
    linkageType: ''
    returnType: void
    signature: 'static void none_is_greater(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:69,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:71,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:69,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:73,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:71,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: known_numeric
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk__cmp_schemas_by_name
    linkageType: ''
    returnType: void
    signature: 'static void known_numeric(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_test_teardown_group
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:27,1
    - Dst: unsetenv
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: teardown
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c
    functionUses: []
    functionsReached:
    - unsetenv
    - pcmk__xml_test_teardown_group
    linkageType: ''
    returnType: int
    signature: 'static int teardown(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:80,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:82,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:84,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:80,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:82,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: case_sensitive
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk__cmp_schemas_by_name
    linkageType: ''
    returnType: void
    signature: 'static void case_sensitive(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:44,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:47,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:49,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:49,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:48,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:51,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:42,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:42,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:44,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:48,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:47,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:50,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:38,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:40,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:38,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:40,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:46,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:51,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:36,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:36,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:46,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 52
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 52
    functionName: unknown_is_lesser
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__cmp_schemas_by_name_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk__cmp_schemas_by_name
    linkageType: ''
    returnType: void
    signature: 'static void unknown_is_lesser(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_test_teardown_group
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:42,1
    - Dst: unsetenv
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: teardown
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c
    functionUses: []
    functionsReached:
    - unsetenv
    - pcmk__xml_test_teardown_group
    linkageType: ''
    returnType: int
    signature: 'static int teardown(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:63,1
    - Dst: pcmk__build_schema_xml_node
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:68,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:83,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:70,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:71,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:84,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:85,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:87,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:89,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:90,1
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:91,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:93,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:97,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:91,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:98,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 99
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 99
    functionName: single_schema
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_string_equal
    - pcmk__build_schema_xml_node
    - pcmk__xe_first_child
    - assert_non_null
    - g_list_free_full
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xe_next
    - crm_element_value
    - pcmk__xml_first_child
    linkageType: ''
    returnType: void
    signature: 'static void single_schema(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:34,1
    - Dst: pcmk__xml_test_setup_group
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: setup
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c
    functionUses: []
    functionsReached:
    - setenv
    - pcmk__xml_test_setup_group
    linkageType: ''
    returnType: int
    signature: 'static int setup(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:51,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:55,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:56,1
    - Dst: pcmk__build_schema_xml_node
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:53,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:54,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: invalid_name
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_null
    - pcmk__xml_free
    - pcmk__build_schema_xml_node
    linkageType: ''
    returnType: void
    signature: 'static void invalid_name(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_schema_xml_node
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:111,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:114,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:123,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:137,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:150,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:105,1
    - Dst: pcmk__build_schema_xml_node
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:110,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:141,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:143,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:145,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:113,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:120,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:125,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:127,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:134,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:133,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:129,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:142,1
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:143,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:149,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:119,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:121,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:135,1
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:127,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c:126,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 151
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 151
    functionName: multiple_schemas
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__build_schema_xml_node_test.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - assert_string_equal
    - pcmk__build_schema_xml_node
    - pcmk__xe_first_child
    - assert_non_null
    - g_list_free_full
    - assert_int_equal
    - pcmk__xml_free
    - pcmk__xe_next
    - crm_element_value
    - pcmk__xml_first_child
    linkageType: ''
    returnType: void
    signature: 'static void multiple_schemas(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:24,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: setup
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c
    functionUses: []
    functionsReached:
    - setenv
    linkageType: ''
    returnType: int
    signature: 'static int setup(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_x_0_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:41,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:48,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:45,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:47,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - schema_index
    - schema_name
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 49
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 49
    functionName: assert_schema_0
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - assert_string_equal
    - pcmk__find_x_0_schema
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void assert_schema_0(int schema_index, const char *schema_name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:68,1
    - Dst: rename
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:68,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:72,1
    - Dst: pcmk__schema_init
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:70,1
    - Dst: assert_schema_0
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:71,1
    - Dst: rename
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:72,1
    - Dst: pcmk__schema_cleanup
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: last_is_not_0
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c
    functionUses: []
    functionsReached:
    - pcmk__schema_cleanup
    - assert_int_equal
    - pcmk__schema_init
    - rename
    - assert_schema_0
    linkageType: ''
    returnType: void
    signature: 'static void last_is_not_0(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__schema_init
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:57,1
    - Dst: assert_schema_0
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:58,1
    - Dst: pcmk__schema_cleanup
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: last_is_0
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c
    functionUses: []
    functionsReached:
    - pcmk__schema_init
    - pcmk__schema_cleanup
    - assert_schema_0
    linkageType: ''
    returnType: void
    signature: 'static void last_is_0(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unsetenv
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: teardown
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c
    functionUses: []
    functionsReached:
    - unsetenv
    linkageType: ''
    returnType: int
    signature: 'static int teardown(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:83,1
    - Dst: pcmk__schema_init
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:87,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:85,1
    - Dst: rename
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:85,1
    - Dst: rename
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:83,1
    - Dst: assert_schema_0
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:88,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:89,1
    - Dst: rename
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:89,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:91,1
    - Dst: rename
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:91,1
    - Dst: pcmk__schema_cleanup
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 94
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 94
    functionName: schema_0_missing
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__find_x_0_schema_test.c
    functionUses: []
    functionsReached:
    - pcmk__schema_cleanup
    - assert_int_equal
    - pcmk__schema_init
    - rename
    - assert_schema_0
    linkageType: ''
    returnType: void
    signature: 'static void schema_0_missing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:19,1
    - Dst: pcmk__xml_test_setup_group
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: setup
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c
    functionUses: []
    functionsReached:
    - setenv
    - pcmk__xml_test_setup_group
    linkageType: ''
    returnType: int
    signature: 'static int setup(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:60,1
    - Dst: assert_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:64,1
    - Dst: assert_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:63,1
    - Dst: assert_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:61,1
    - Dst: assert_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: known_schema
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c
    functionUses: []
    functionsReached:
    - assert_schema
    linkageType: ''
    returnType: void
    signature: 'static void known_schema(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:38,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:42,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:44,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - name
    - expected_index
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 45
    functionName: assert_schema
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c
    functionUses: []
    functionsReached:
    - pcmk__get_schema
    - assert_non_null
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void assert_schema(const char *name, int expected_index) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:50,1
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:50,1
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:51,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:51,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:52,1
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:52,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:53,1
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:53,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:54,1
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: unknown_schema
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c
    functionUses: []
    functionsReached:
    - pcmk__get_schema
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void unknown_schema(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_test_teardown_group
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:27,1
    - Dst: unsetenv
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: teardown
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c
    functionUses: []
    functionsReached:
    - unsetenv
    - pcmk__xml_test_teardown_group
    linkageType: ''
    returnType: int
    signature: 'static int teardown(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:70,1
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:71,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:72,1
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:70,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:71,1
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: case_sensitive
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__get_schema_test.c
    functionUses: []
    functionsReached:
    - pcmk__get_schema
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void case_sensitive(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:19,1
    - Dst: pcmk__xml_test_setup_group
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: setup
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c
    functionUses: []
    functionsReached:
    - setenv
    - pcmk__xml_test_setup_group
    linkageType: ''
    returnType: int
    signature: 'static int setup(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_test_teardown_group
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:27,1
    - Dst: unsetenv
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: teardown
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c
    functionUses: []
    functionsReached:
    - unsetenv
    - pcmk__xml_test_teardown_group
    linkageType: ''
    returnType: int
    signature: 'static int teardown(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:47,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:56,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:59,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:62,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:75,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:48,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:54,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:51,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:81,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:92,1
    - Dst: pcmk__schema_files_later_than
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:99,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:80,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:74,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:83,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:50,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:53,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:70,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:91,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:89,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:72,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:78,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:94,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:60,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:77,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:71,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:70,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:49,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:55,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:58,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:61,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:64,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:89,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:93,1
    - Dst: pcmk__schema_files_later_than
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:68,1
    - Dst: pcmk__schema_files_later_than
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:44,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:45,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:48,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:54,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:57,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:63,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:92,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:82,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:79,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:52,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:73,1
    - Dst: pcmk__schema_files_later_than
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:87,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:90,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:51,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:69,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:81,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:65,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:75,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:78,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:72,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:84,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:47,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:59,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:76,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:88,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:45,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:58,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:64,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:83,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:53,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:56,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:62,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:91,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:100,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:49,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:52,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:55,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:61,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:82,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:69,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:90,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:93,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:88,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:50,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:71,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:77,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:80,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:74,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:73,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:76,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:79,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:57,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:60,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 93
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 101
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 101
    functionName: valid_name
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - g_list_nth_data
    - g_list_length
    - g_list_free_full
    - assert_int_equal
    - assert_null
    - pcmk__schema_files_later_than
    linkageType: ''
    returnType: void
    signature: 'static void valid_name(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:35,1
    - Dst: pcmk__schema_files_later_than
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:35,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:36,1
    - Dst: pcmk__schema_files_later_than
      Src: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: invalid_name
    functionSourceFile: /src/pacemaker/lib/common/tests/schemas/pcmk__schema_files_later_than_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - pcmk__schema_files_later_than
    linkageType: ''
    returnType: void
    signature: 'static void invalid_name(void **state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_new_doc
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:23,1
    - Dst: pcmk__xc_create
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:30,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:31,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:32,1
    - Dst: pcmk__xml_doc_set_flags
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:28,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:33,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:36,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:38,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:39,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:43,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:44,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:50,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:45,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:45,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:48,1
    - Dst: pcmk__xml_free_doc
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:51,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:48,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - content
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 52
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 52
    functionName: assert_comment
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_true
    - pcmk__xml_free_doc
    - assert_non_null
    - pcmk__xc_create
    - assert_int_equal
    - assert_ptr_equal
    - pcmk__xml_doc_set_flags
    - pcmk_is_set
    - pcmk__xml_free
    - pcmk_all_flags_set
    - pcmk__xml_new_doc
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void assert_comment(const char *content) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:57,1
    - Dst: pcmk__xc_create
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:57,1
    - Dst: pcmk__xc_create
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:58,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: null_doc
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - pcmk__xc_create
    linkageType: ''
    returnType: void
    signature: 'static void null_doc(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_comment
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:64,1
    - Dst: assert_comment
      Src: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: with_doc
    functionSourceFile: /src/pacemaker/lib/common/tests/xml_comment/pcmk__xc_create_test.c
    functionUses: []
    functionsReached:
    - assert_comment
    linkageType: ''
    returnType: void
    signature: 'static void with_doc(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:17,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:18,1
    - Dst: pcmk__validate_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:18,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:19,1
    - Dst: pcmk__validate_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:17,1
    - Dst: pcmk__validate_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:19,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:20,1
    - Dst: pcmk__validate_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:20,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:21,1
    - Dst: pcmk__validate_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:21,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:22,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:23,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:24,1
    - Dst: pcmk__validate_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:22,1
    - Dst: pcmk__validate_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:23,1
    - Dst: pcmk__validate_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:24,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 25
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 25
    functionName: valid_strategy
    functionSourceFile: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk__validate_health_strategy
    linkageType: ''
    returnType: void
    signature: 'static void valid_strategy(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:29,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:31,1
    - Dst: pcmk__validate_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:30,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:30,1
    - Dst: pcmk__validate_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:29,1
    - Dst: pcmk__validate_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:31,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:32,1
    - Dst: pcmk__validate_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: invalid_strategy
    functionSourceFile: /src/pacemaker/lib/common/tests/health/pcmk__validate_health_strategy_test.c
    functionUses: []
    functionsReached:
    - assert_false
    - pcmk__validate_health_strategy
    linkageType: ''
    returnType: void
    signature: 'static void invalid_strategy(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:15,1
    - Dst: pcmk__parse_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:18,1
    - Dst: pcmk__parse_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:15,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:21,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:18,1
    - Dst: pcmk__parse_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:21,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:24,1
    - Dst: pcmk__parse_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:24,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:27,1
    - Dst: pcmk__parse_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:27,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:33,1
    - Dst: pcmk__parse_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:39,1
    - Dst: pcmk__parse_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:36,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:30,1
    - Dst: pcmk__parse_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:39,1
    - Dst: pcmk__parse_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:30,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 41
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 41
    functionName: valid
    functionSourceFile: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__parse_health_strategy
    linkageType: ''
    returnType: void
    signature: 'static void valid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:45,1
    - Dst: pcmk__parse_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:45,1
    - Dst: pcmk__parse_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:49,1
    - Dst: pcmk__parse_health_strategy
      Src: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: invalid
    functionSourceFile: /src/pacemaker/lib/common/tests/health/pcmk__parse_health_strategy_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__parse_health_strategy
    linkageType: ''
    returnType: void
    signature: 'static void invalid(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:16,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:17,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:17,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:16,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:18,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:18,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:19,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:19,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:20,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 21
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 21
    functionName: empty_params
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/compare_version_test.c
    functionUses: []
    functionsReached:
    - compare_version
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void empty_params(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:46,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:48,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:46,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:47,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:48,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:49,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:49,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:50,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: shorter_versions
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/compare_version_test.c
    functionUses: []
    functionsReached:
    - compare_version
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void shorter_versions(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:33,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:34,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:36,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:34,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:36,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:37,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:39,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:39,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:40,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: unequal_versions
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/compare_version_test.c
    functionUses: []
    functionsReached:
    - compare_version
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void unequal_versions(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:26,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:27,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:27,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/common/tests/utils/compare_version_test.c:26,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: equal_versions
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/compare_version_test.c
    functionUses: []
    functionsReached:
    - compare_version
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void equal_versions(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__failcount_name_test.c:16,1
    - Dst: pcmk__failcount_name
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__failcount_name_test.c:16,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__failcount_name_test.c:18,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__failcount_name_test.c:17,1
    - Dst: pcmk__failcount_name
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__failcount_name_test.c:17,1
    - Dst: pcmk__failcount_name
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__failcount_name_test.c:18,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: null_arguments
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/pcmk__failcount_name_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - pcmk__failcount_name
    linkageType: ''
    returnType: void
    signature: 'static void null_arguments(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__failcount_name_test.c:26,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__failcount_name_test.c:29,1
    - Dst: pcmk__failcount_name
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__failcount_name_test.c:26,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: standard_usage
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/pcmk__failcount_name_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - free
    - pcmk__failcount_name
    linkageType: ''
    returnType: void
    signature: 'static void standard_usage(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__lastfailure_name_test.c:16,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__lastfailure_name_test.c:18,1
    - Dst: pcmk__lastfailure_name
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__lastfailure_name_test.c:16,1
    - Dst: pcmk__lastfailure_name
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__lastfailure_name_test.c:17,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__lastfailure_name_test.c:17,1
    - Dst: pcmk__lastfailure_name
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__lastfailure_name_test.c:18,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: null_arguments
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/pcmk__lastfailure_name_test.c
    functionUses: []
    functionsReached:
    - pcmk__lastfailure_name
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void null_arguments(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__lastfailure_name_test.c:26,1
    - Dst: pcmk__lastfailure_name
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__lastfailure_name_test.c:26,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__lastfailure_name_test.c:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: standard_usage
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/pcmk__lastfailure_name_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - free
    - pcmk__lastfailure_name
    linkageType: ''
    returnType: void
    signature: 'static void standard_usage(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:28,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:29,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:31,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:30,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:32,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:33,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:34,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:36,1
    - Dst: pcmk_daemon_user
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 39
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 39
    functionName: no_matching_pwent
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c
    functionUses: []
    functionsReached:
    - expect_any
    - expect_value
    - will_return
    - pcmk_daemon_user
    - assert_int_equal
    - expect_string
    linkageType: ''
    returnType: void
    signature: 'static void no_matching_pwent(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:57,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:60,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:59,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:61,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:58,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:62,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:63,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:65,1
    - Dst: pcmk_daemon_user
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:65,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:73,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:74,1
    - Dst: pcmk_daemon_user
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:73,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 78
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 78
    functionName: entry_found
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/pcmk_daemon_user_test.c
    functionUses: []
    functionsReached:
    - expect_any
    - expect_value
    - will_return
    - pcmk_daemon_user
    - assert_int_equal
    - expect_string
    linkageType: ''
    returnType: void
    signature: 'static void entry_found(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__fail_attr_name_test.c:16,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__fail_attr_name_test.c:18,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__fail_attr_name_test.c:17,1
    - Dst: pcmk__fail_attr_name
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__fail_attr_name_test.c:17,1
    - Dst: pcmk__fail_attr_name
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__fail_attr_name_test.c:16,1
    - Dst: pcmk__fail_attr_name
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__fail_attr_name_test.c:18,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__fail_attr_name_test.c:19,1
    - Dst: pcmk__fail_attr_name
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__fail_attr_name_test.c:19,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: null_arguments
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/pcmk__fail_attr_name_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - pcmk__fail_attr_name
    linkageType: ''
    returnType: void
    signature: 'static void null_arguments(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__fail_attr_name_test.c:27,1
    - Dst: pcmk__fail_attr_name
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__fail_attr_name_test.c:27,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__fail_attr_name_test.c:30,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: standard_usage
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/pcmk__fail_attr_name_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - free
    - pcmk__fail_attr_name
    linkageType: ''
    returnType: void
    signature: 'static void standard_usage(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__getpid_s_test.c:25,1
    - Dst: pcmk__getpid_s
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__getpid_s_test.c:27,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__getpid_s_test.c:29,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__getpid_s_test.c:31,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__getpid_s_test.c:28,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 34
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 34
    functionName: pcmk__getpid_s_test
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/pcmk__getpid_s_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - will_return
    - assert_non_null
    - pcmk__getpid_s
    - free
    linkageType: ''
    returnType: void
    signature: 'static void pcmk__getpid_s_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:27,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:29,1
    - Dst: crm_user_lookup
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:29,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 32
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 32
    functionName: calloc_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c
    functionUses: []
    functionsReached:
    - expect_value
    - crm_user_lookup
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void calloc_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:94,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:96,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:107,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:111,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:95,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:100,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:102,1
    - Dst: crm_user_lookup
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:102,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:109,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:97,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:99,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:113,1
    - Dst: crm_user_lookup
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:115,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:108,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:115,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:117,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:98,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:112,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:116,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 120
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 120
    functionName: entry_found
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c
    functionUses: []
    functionsReached:
    - expect_any
    - expect_value
    - will_return
    - assert_int_equal
    - expect_string
    - crm_user_lookup
    linkageType: ''
    returnType: void
    signature: 'static void entry_found(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:65,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:68,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:69,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:67,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:66,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:70,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:71,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:73,1
    - Dst: crm_user_lookup
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 76
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 76
    functionName: no_matching_pwent
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c
    functionUses: []
    functionsReached:
    - expect_any
    - expect_value
    - will_return
    - assert_int_equal
    - expect_string
    - crm_user_lookup
    linkageType: ''
    returnType: void
    signature: 'static void no_matching_pwent(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:43,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:46,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:45,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:44,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:47,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:48,1
    - Dst: will_return
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:49,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:51,1
    - Dst: crm_user_lookup
      Src: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 54
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 54
    functionName: getpwnam_r_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/crm_user_lookup_test.c
    functionUses: []
    functionsReached:
    - expect_any
    - expect_value
    - will_return
    - assert_int_equal
    - expect_string
    - crm_user_lookup
    linkageType: ''
    returnType: void
    signature: 'static void getpwnam_r_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c:16,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c:20,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c:19,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c:19,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c:16,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c:20,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c:21,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c:21,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c:22,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c:22,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c:26,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c:27,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c:25,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c:24,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c:27,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c:25,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c:26,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c:24,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 28
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 28
    functionName: pcmk__timeout_ms2s_test
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/pcmk__timeout_ms2s_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - pcmk__timeout_ms2s
    linkageType: ''
    returnType: void
    signature: 'static void pcmk__timeout_ms2s_test(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__realloc_test.c:20,1
    - Dst: pcmk__realloc
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__realloc_test.c:20,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: bad_size
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/pcmk__realloc_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - pcmk__realloc
    linkageType: ''
    returnType: void
    signature: 'static void bad_size(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__realloc
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__realloc_test.c:51,1
    - Dst: pcmk__realloc
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__realloc_test.c:55,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__realloc_test.c:56,1
    - Dst: pcmk__realloc
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__realloc_test.c:59,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__realloc_test.c:52,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__realloc_test.c:60,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__realloc_test.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 63
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 63
    functionName: realloc_succeeds
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/pcmk__realloc_test.c
    functionUses: []
    functionsReached:
    - assert_non_null
    - free
    - pcmk__realloc
    linkageType: ''
    returnType: void
    signature: 'static void realloc_succeeds(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_aborts
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__realloc_test.c:28,1
    - Dst: pcmk__realloc
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__realloc_test.c:33,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__realloc_test.c:32,1
    - Dst: expect_any
      Src: /src/pacemaker/lib/common/tests/utils/pcmk__realloc_test.c:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 37
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 37
    functionName: realloc_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/utils/pcmk__realloc_test.c
    functionUses: []
    functionsReached:
    - expect_any
    - pcmk__realloc
    - expect_value
    - pcmk__assert_aborts
    linkageType: ''
    returnType: void
    signature: 'static void realloc_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:53,1
    - Dst: assert_float_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:54,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:56,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:56,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:53,1
    - Dst: assert_float_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:57,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:60,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:60,1
    - Dst: assert_float_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:61,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:63,1
    - Dst: assert_float_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:64,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 65
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 65
    functionName: bad_input_string
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c
    functionUses: []
    functionsReached:
    - assert_float_equal
    - pcmk__scan_double
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void bad_input_string(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:81,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: no_result_variable
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - pcmk__scan_double
    linkageType: ''
    returnType: void
    signature: 'static void no_result_variable(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:118,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:119,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:122,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:119,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:120,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:123,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:123,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 125
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 125
    functionName: double_overflow
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - snprintf
    - pcmk__scan_double
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void double_overflow(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:33,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:36,1
    - Dst: assert_float_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:34,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:36,1
    - Dst: assert_float_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:40,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:40,1
    - Dst: assert_float_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:41,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:43,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:43,1
    - Dst: assert_float_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 45
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 45
    functionName: empty_input_string
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c
    functionUses: []
    functionsReached:
    - assert_float_equal
    - pcmk__scan_double
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void empty_input_string(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:73,1
    - Dst: assert_float_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:74,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:75,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: trailing_chars
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_float_equal
    - pcmk__scan_double
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void trailing_chars(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:90,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:93,1
    - Dst: assert_float_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:91,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:90,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:93,1
    - Dst: assert_float_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:94,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:96,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:96,1
    - Dst: assert_float_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:97,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:99,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:100,1
    - Dst: assert_float_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:101,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:104,1
    - Dst: assert_float_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:105,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:100,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:104,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 106
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 106
    functionName: typical_case
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c
    functionUses: []
    functionsReached:
    - assert_float_equal
    - pcmk__scan_double
    - snprintf
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void typical_case(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:139,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:142,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:140,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:141,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:140,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:144,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:145,1
    - Dst: pcmk__scan_double
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:145,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:146,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 148
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 148
    functionName: double_underflow
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_double_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - snprintf
    - pcmk__scan_double
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void double_underflow(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c:18,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c:19,1
    - Dst: pcmk__scan_port
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c:18,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: empty_input_string
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c
    functionUses: []
    functionsReached:
    - pcmk__scan_port
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void empty_input_string(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c:36,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c:38,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c:37,1
    - Dst: pcmk__scan_port
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c:36,1
    - Dst: pcmk__scan_port
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c:38,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: out_of_range
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c
    functionUses: []
    functionsReached:
    - pcmk__scan_port
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void out_of_range(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c:50,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c:48,1
    - Dst: pcmk__scan_port
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c:47,1
    - Dst: pcmk__scan_port
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c:50,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: typical_case
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c
    functionUses: []
    functionsReached:
    - pcmk__scan_port
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void typical_case(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c:27,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c:28,1
    - Dst: pcmk__scan_port
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: bad_input_string
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_port_test.c
    functionUses: []
    functionsReached:
    - pcmk__scan_port
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void bad_input_string(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:27,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:28,1
    - Dst: pcmk__parse_ll_range
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:27,1
    - Dst: pcmk__parse_ll_range
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: null_input_variables
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - pcmk__parse_ll_range
    linkageType: ''
    returnType: void
    signature: 'static void null_input_variables(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:46,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:48,1
    - Dst: pcmk__parse_ll_range
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:46,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: only_separator
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_ll_range
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void only_separator(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:66,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:68,1
    - Dst: pcmk__parse_ll_range
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:66,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: no_range_start
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_ll_range
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void no_range_start(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:88,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:90,1
    - Dst: pcmk__parse_ll_range
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:88,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:89,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:92,1
    - Dst: pcmk__parse_ll_range
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:92,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:93,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: garbage
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_ll_range
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void garbage(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:18,1
    - Dst: pcmk__parse_ll_range
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:19,1
    - Dst: pcmk__parse_ll_range
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:18,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:19,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: empty_input_string
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_ll_range
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void empty_input_string(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:56,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:57,1
    - Dst: pcmk__parse_ll_range
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:56,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: no_range_end
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_ll_range
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void no_range_end(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:36,1
    - Dst: pcmk__parse_ll_range
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:36,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: missing_separator
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_ll_range
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void missing_separator(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:76,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:78,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:80,1
    - Dst: pcmk__parse_ll_range
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:76,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:77,1
    - Dst: pcmk__parse_ll_range
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: range_start_and_end
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_ll_range
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void range_start_and_end(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:102,1
    - Dst: pcmk__parse_ll_range
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:105,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:105,1
    - Dst: pcmk__parse_ll_range
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: strtoll_errors
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__parse_ll_range_test.c
    functionUses: []
    functionsReached:
    - pcmk__parse_ll_range
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void strtoll_errors(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:29,1
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:29,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:30,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:30,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:31,1
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:31,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:32,1
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:32,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:33,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:33,1
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:34,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: one_is_null
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c
    functionUses: []
    functionsReached:
    - pcmk__strcmp
    - assert_true
    - pcmk__str_eq
    - assert_int_equal
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void one_is_null(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:52,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:53,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:53,1
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: case_insensitive
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c
    functionUses: []
    functionsReached:
    - pcmk__strcmp
    - assert_true
    - pcmk__str_eq
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void case_insensitive(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:18,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:19,1
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:18,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:19,1
    - Dst: assert_int_not_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:20,1
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:20,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:21,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:21,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:22,1
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:22,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: same_pointer
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c
    functionUses: []
    functionsReached:
    - pcmk__strcmp
    - assert_true
    - assert_int_not_equal
    - pcmk__str_eq
    - assert_int_equal
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void same_pointer(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:42,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:43,1
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:42,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:43,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:44,1
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:44,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: case_matters
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - assert_false
    - pcmk__strcmp
    - pcmk__str_eq
    linkageType: ''
    returnType: void
    signature: 'static void case_matters(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:63,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:64,1
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:65,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:66,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:67,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:70,1
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:71,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:62,1
    - Dst: assert_int_not_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:69,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:61,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:64,1
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:67,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:68,1
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:69,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:70,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:66,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:63,1
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:62,1
    - Dst: pcmk__strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:61,1
    - Dst: assert_int_not_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:65,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:68,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 72
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 72
    functionName: regex
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__strcmp_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk__strcmp
    - assert_int_not_equal
    - pcmk__str_eq
    - assert_int_equal
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void regex(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:25,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:26,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:27,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:26,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:25,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:27,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:29,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:29,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:30,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:30,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:31,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: no_numbers
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c
    functionUses: []
    functionsReached:
    - pcmk__numeric_strcasecmp
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void no_numbers(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:56,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:56,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:57,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:59,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:57,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:59,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:60,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: middle_numbers
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c
    functionUses: []
    functionsReached:
    - pcmk__numeric_strcasecmp
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void middle_numbers(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:16,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:17,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:17,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:18,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:16,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:18,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: null_ptr
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - pcmk__numeric_strcasecmp
    linkageType: ''
    returnType: void
    signature: 'static void null_ptr(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:66,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:69,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:67,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:67,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:66,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:69,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:70,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: unequal_lengths
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c
    functionUses: []
    functionsReached:
    - pcmk__numeric_strcasecmp
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void unequal_lengths(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:38,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:38,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:39,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:39,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:41,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:41,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:42,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:42,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:43,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:45,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:43,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:49,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:50,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:50,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:46,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:46,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:37,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:49,1
    - Dst: pcmk__numeric_strcasecmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 51
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 51
    functionName: trailing_numbers
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__numeric_strcasecmp_test.c
    functionUses: []
    functionsReached:
    - pcmk__numeric_strcasecmp
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void trailing_numbers(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:18,1
    - Dst: pcmk__str_table_dup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:18,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: null_input_table
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c
    functionUses: []
    functionsReached:
    - assert_null
    - pcmk__str_table_dup
    linkageType: ''
    returnType: void
    signature: 'static void null_input_table(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:40,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:40,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:41,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:41,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:45,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:49,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:48,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:45,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:51,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:40,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:52,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:37,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:41,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:42,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:42,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:42,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:47,1
    - Dst: pcmk__str_table_dup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:44,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:48,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:49,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 53
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 53
    functionName: regular_input_table
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - g_hash_table_lookup
    - g_hash_table_destroy
    - pcmk__strkey_table
    - assert_int_equal
    - pcmk__str_table_dup
    - strdup
    - g_hash_table_insert
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void regular_input_table(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:24,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:28,1
    - Dst: pcmk__str_table_dup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:27,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:30,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:28,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c:31,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: empty_input_table
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__str_table_dup_test.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - pcmk__strkey_table
    - assert_int_equal
    - pcmk__str_table_dup
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void empty_input_table(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:29,1
    - Dst: pcmk__trim
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:31,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:32,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: leading_newline
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c
    functionUses: []
    functionsReached:
    - strdup
    - pcmk__trim
    - assert_string_equal
    - free
    linkageType: ''
    returnType: void
    signature: 'static void leading_newline(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:47,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:52,1
    - Dst: pcmk__trim
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:49,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:49,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:50,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:53,1
    - Dst: pcmk__trim
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:53,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: trailing_newline
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c
    functionUses: []
    functionsReached:
    - strdup
    - pcmk__trim
    - assert_string_equal
    - free
    linkageType: ''
    returnType: void
    signature: 'static void trailing_newline(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:18,1
    - Dst: pcmk__trim
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:21,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:20,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:21,1
    - Dst: pcmk__trim
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:20,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:23,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 24
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 24
    functionName: empty_input
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__trim
    - free
    - strdup
    - assert_null
    linkageType: ''
    returnType: void
    signature: 'static void empty_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:60,1
    - Dst: pcmk__trim
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:62,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:62,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: other_whitespace
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c
    functionUses: []
    functionsReached:
    - strdup
    - pcmk__trim
    - assert_string_equal
    - free
    linkageType: ''
    returnType: void
    signature: 'static void other_whitespace(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:38,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:40,1
    - Dst: pcmk__trim
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:40,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: middle_newline
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__trim_test.c
    functionUses: []
    functionsReached:
    - strdup
    - pcmk__trim
    - assert_string_equal
    - free
    linkageType: ''
    returnType: void
    signature: 'static void middle_newline(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__compress_test.c:22,1
    - Dst: pcmk__compress
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__compress_test.c:25,1
    - Dst: assert_memory_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__compress_test.c:26,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__compress_test.c:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: simple_compress
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__compress_test.c
    functionUses: []
    functionsReached:
    - assert_memory_equal
    - pcmk__assert_alloc
    - assert_int_equal
    - pcmk__compress
    linkageType: ''
    returnType: void
    signature: 'static void simple_compress(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__compress_test.c:40,1
    - Dst: pcmk__compress
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__compress_test.c:49,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__compress_test.c:47,1
    - Dst: expect_value
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__compress_test.c:48,1
    - Dst: pcmk__assert_exits
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__compress_test.c:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: calloc_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__compress_test.c
    functionUses: []
    functionsReached:
    - expect_value
    - pcmk__assert_alloc
    - pcmk__assert_exits
    - pcmk__compress
    linkageType: ''
    returnType: void
    signature: 'static void calloc_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__compress_test.c:32,1
    - Dst: pcmk__compress
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__compress_test.c:35,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__compress_test.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: max_too_small
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__compress_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_alloc
    - assert_int_equal
    - pcmk__compress
    linkageType: ''
    returnType: void
    signature: 'static void max_too_small(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:16,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:16,1
    - Dst: pcmk__assert_asserts
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:17,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:17,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: add_to_null
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_asserts
    - pcmk__g_strcat
    linkageType: ''
    returnType: void
    signature: 'static void add_to_null(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:23,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:27,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:29,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:26,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:30,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:33,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:34,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:35,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:37,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:38,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 40
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 40
    functionName: add_nothing
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - g_string_append
    - g_string_free
    - g_string_new
    - pcmk__g_strcat
    linkageType: ''
    returnType: void
    signature: 'static void add_nothing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:45,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:52,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:48,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:49,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:53,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: add_words
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - g_string_free
    - g_string_new
    - pcmk__g_strcat
    linkageType: ''
    returnType: void
    signature: 'static void add_words(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_new
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:60,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:64,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:65,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: stop_early
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__g_strcat_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - g_string_free
    - g_string_new
    - pcmk__g_strcat
    linkageType: ''
    returnType: void
    signature: 'static void stop_early(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:15,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:15,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: bad_input
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c
    functionUses: []
    functionsReached:
    - assert_false
    - crm_is_true
    linkageType: ''
    returnType: void
    signature: 'static void bad_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:34,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:35,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:38,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:39,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:44,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:46,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:49,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:50,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:33,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:35,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:37,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:38,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:41,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:43,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:44,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:48,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:49,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:33,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:36,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:37,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:40,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:41,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:47,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:48,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:34,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:36,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:39,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:40,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:43,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:46,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:47,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 51
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 51
    functionName: is_false
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c
    functionUses: []
    functionsReached:
    - assert_false
    - crm_is_true
    linkageType: ''
    returnType: void
    signature: 'static void is_false(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:20,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:22,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:20,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:21,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:21,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:22,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:23,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:23,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:24,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:24,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:25,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:27,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:26,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:28,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:26,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:25,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:28,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 29
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 29
    functionName: is_true
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/crm_is_true_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - crm_is_true
    linkageType: ''
    returnType: void
    signature: 'static void is_true(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:20,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:21,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:28,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:25,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:24,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:29,1
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:30,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 31
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 31
    functionName: update_null
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c
    functionUses: []
    functionsReached:
    - strdup
    - assert_null
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'static void update_null(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:49,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:50,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:51,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: update_different
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c
    functionUses: []
    functionsReached:
    - strdup
    - free
    - assert_string_equal
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'static void update_different(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:38,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:40,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:42,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:41,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: update_same
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c
    functionUses: []
    functionsReached:
    - strdup
    - assert_ptr_equal
    - free
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'static void update_same(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:59,1
    - Dst: expect_string
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:65,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:71,1
    - Dst: pcmk__assert_exits
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:61,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 72
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 72
    functionName: strdup_fails
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__str_update_test.c
    functionUses: []
    functionsReached:
    - pcmk__assert_exits
    - free
    - strdup
    - expect_string
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'static void strdup_fails(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:18,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:21,1
    - Dst: pcmk__guint_from_hash
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:22,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:22,1
    - Dst: pcmk__guint_from_hash
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:21,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:24,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 25
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 25
    functionName: null_args
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - pcmk__strkey_table
    - pcmk__guint_from_hash
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void null_args(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:42,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:45,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:45,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:45,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:47,1
    - Dst: pcmk__guint_from_hash
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:48,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 51
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 51
    functionName: standard_usage
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - pcmk__strkey_table
    - pcmk__guint_from_hash
    - assert_int_equal
    - strdup
    - g_hash_table_insert
    linkageType: ''
    returnType: void
    signature: 'static void standard_usage(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:30,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:33,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:36,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:34,1
    - Dst: pcmk__guint_from_hash
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: missing_key
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - pcmk__strkey_table
    - pcmk__guint_from_hash
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void missing_key(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:56,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:64,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:73,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:67,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:63,1
    - Dst: pcmk__guint_from_hash
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:63,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:59,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:59,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:60,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:59,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:60,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:60,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:61,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:61,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:61,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:71,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:66,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:69,1
    - Dst: pcmk__guint_from_hash
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:69,1
    - Dst: pcmk__guint_from_hash
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 74
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 74
    functionName: conversion_errors
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__guint_from_hash_test.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - pcmk__strkey_table
    - pcmk__guint_from_hash
    - assert_int_equal
    - strdup
    - g_hash_table_insert
    linkageType: ''
    returnType: void
    signature: 'static void conversion_errors(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:29,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:27,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:27,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:23,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:21,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:23,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:24,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:25,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:27,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:31,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:31,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:33,1
    - Dst: pcmk__strikey_table
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:20,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:23,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:28,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:29,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:28,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:27,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:31,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:23,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:24,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:25,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:31,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:32,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:32,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:33,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 36
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 36
    functionName: store_strs
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__strikey_table_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_true
    - pcmk__strikey_table
    - assert_non_null
    - g_hash_table_lookup
    - g_hash_table_destroy
    - assert_int_equal
    - assert_false
    - strdup
    - g_hash_table_insert
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void store_strs(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:18,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:20,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:21,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:19,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:20,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 22
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 22
    functionName: add_words
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - g_string_free
    - strcmp
    - pcmk__add_word
    linkageType: ''
    returnType: void
    signature: 'static void add_words(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:65,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:67,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:68,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:68,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:66,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 71
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 71
    functionName: add_with_comma
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c
    functionUses: []
    functionsReached:
    - g_string_free
    - pcmk__add_separated_word
    - strcmp
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void add_with_comma(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:40,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:43,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:41,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:42,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:43,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: add_nothing
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - g_string_free
    - strcmp
    - pcmk__add_word
    linkageType: ''
    returnType: void
    signature: 'static void add_nothing(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:52,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:55,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:55,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:54,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: add_with_null
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c
    functionUses: []
    functionsReached:
    - g_string_free
    - pcmk__add_separated_word
    - strcmp
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void add_with_null(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:29,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:30,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:31,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: add_with_no_len
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - g_string_free
    - strcmp
    - pcmk__add_word
    linkageType: ''
    returnType: void
    signature: 'static void add_with_no_len(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:78,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:80,1
    - Dst: pcmk__add_separated_word
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:79,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:81,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:81,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: add_with_comma_and_space
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__add_word_test.c
    functionUses: []
    functionsReached:
    - g_string_free
    - pcmk__add_separated_word
    - strcmp
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void add_with_comma_and_space(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:17,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:16,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:18,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:19,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:20,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:24,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:25,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:15,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:16,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:15,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:20,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:22,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:25,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:22,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:23,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:17,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:18,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:19,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:24,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:23,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 26
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 26
    functionName: bad_input
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c
    functionUses: []
    functionsReached:
    - crm_get_msec
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void bad_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:30,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:31,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:32,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:32,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:34,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:39,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:40,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:46,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:55,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:64,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:62,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:56,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:49,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:65,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:54,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:57,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:63,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:30,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:31,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:34,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:35,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:36,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:40,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:41,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:47,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:48,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:62,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:66,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:60,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:35,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:36,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:37,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:38,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:41,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:42,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:43,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:43,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:44,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:48,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:57,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:63,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:61,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:52,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:64,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:66,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:56,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:38,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:39,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:42,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:44,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:46,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:49,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:52,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:54,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:55,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:60,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:61,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:53,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 63
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 67
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 67
    functionName: good_input
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c
    functionUses: []
    functionsReached:
    - crm_get_msec
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void good_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:71,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: overflow
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/crm_get_msec_test.c
    functionUses: []
    functionsReached:
    - crm_get_msec
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void overflow(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c:18,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c:21,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c:21,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c:19,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c:18,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c:22,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: empty_input_string
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c
    functionUses: []
    functionsReached:
    - pcmk__scan_min_int
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void empty_input_string(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c:39,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c:39,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: input_above_maximum
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c
    functionUses: []
    functionsReached:
    - pcmk__scan_min_int
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void input_above_maximum(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c:48,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c:51,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c:51,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c:49,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c:48,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: input_just_right
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c
    functionUses: []
    functionsReached:
    - pcmk__scan_min_int
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void input_just_right(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c:30,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c:30,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: input_below_minimum
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_min_int_test.c
    functionUses: []
    functionsReached:
    - pcmk__scan_min_int
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void input_below_minimum(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:17,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:18,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:19,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:18,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:17,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:19,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:20,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: empty_input_list
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c
    functionUses: []
    functionsReached:
    - pcmk__str_in_list
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void empty_input_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:41,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:45,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:42,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:44,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:44,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:45,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:46,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:46,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:47,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:47,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: star_matches
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - g_list_append
    - g_list_free
    - g_list_prepend
    - pcmk__str_in_list
    linkageType: ''
    returnType: void
    signature: 'static void star_matches(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:71,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:75,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:72,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:75,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:73,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:76,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:76,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:77,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:77,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:78,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:80,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:82,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:78,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:80,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:79,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: in_list
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk__str_in_list
    - g_list_prepend
    - g_list_free
    linkageType: ''
    returnType: void
    signature: 'static void in_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:27,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:29,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:30,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:30,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:29,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:31,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:31,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:32,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:32,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: empty_string
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - g_list_free
    - assert_false
    - g_list_prepend
    - pcmk__str_in_list
    linkageType: ''
    returnType: void
    signature: 'static void empty_string(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:56,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:58,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:58,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:59,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:59,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:60,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:60,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:61,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:61,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:62,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:62,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: star_doesnt_match
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c
    functionUses: []
    functionsReached:
    - assert_false
    - g_list_prepend
    - g_list_free
    - pcmk__str_in_list
    linkageType: ''
    returnType: void
    signature: 'static void star_doesnt_match(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:89,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:90,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:92,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:92,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:93,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:93,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:94,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:94,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:95,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:95,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: not_in_list
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__str_in_list_test.c
    functionUses: []
    functionsReached:
    - assert_false
    - g_list_prepend
    - g_list_free
    - pcmk__str_in_list
    linkageType: ''
    returnType: void
    signature: 'static void not_in_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:15,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:15,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:17,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:16,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:16,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:17,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:18,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:18,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: empty_input_list
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - assert_false
    - pcmk__strcase_any_of
    linkageType: ''
    returnType: void
    signature: 'static void empty_input_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:38,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:40,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:38,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:39,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:39,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: not_in_list
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - assert_false
    - pcmk__strcase_any_of
    linkageType: ''
    returnType: void
    signature: 'static void not_in_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:31,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:32,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:33,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:31,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:32,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: in_list
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - pcmk__str_any_of
    - pcmk__strcase_any_of
    linkageType: ''
    returnType: void
    signature: 'static void in_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:23,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:25,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:24,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:23,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:24,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:25,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:26,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c:26,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: empty_string
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__str_any_of_test.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - assert_false
    - pcmk__strcase_any_of
    linkageType: ''
    returnType: void
    signature: 'static void empty_string(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c:15,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c:16,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c:16,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c:15,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: bad_input
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c
    functionUses: []
    functionsReached:
    - assert_false
    - pcmk__starts_with
    linkageType: ''
    returnType: void
    signature: 'static void bad_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c:21,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c:23,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c:21,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c:22,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c:22,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c:23,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c:25,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c:25,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c:26,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c:26,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c:29,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c:28,1
    - Dst: pcmk__starts_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c:28,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 30
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 30
    functionName: starts_with
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__starts_with_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - assert_false
    - pcmk__starts_with
    linkageType: ''
    returnType: void
    signature: 'static void starts_with(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__s_test.c:15,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__s_test.c:15,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__s_test.c:17,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__s_test.c:16,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__s_test.c:16,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__s_test.c:17,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: s_is_null
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__s_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_null
    - pcmk__s
    linkageType: ''
    returnType: void
    signature: 'static void s_is_null(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__s_test.c:22,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__s_test.c:23,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__s_test.c:23,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__s_test.c:22,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: s_is_not_null
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__s_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__s
    linkageType: ''
    returnType: void
    signature: 'static void s_is_not_null(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:23,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:24,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:25,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:31,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:32,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:32,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:33,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:35,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:29,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:27,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:27,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:23,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:23,1
    - Dst: assert_non_null
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:21,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:24,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:25,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:27,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:31,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:31,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:33,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:20,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:23,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:28,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:28,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:29,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:27,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 36
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 36
    functionName: store_strs
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__strkey_table_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - assert_true
    - g_hash_table_lookup
    - assert_non_null
    - g_hash_table_destroy
    - pcmk__strkey_table
    - assert_int_equal
    - assert_false
    - strdup
    - g_hash_table_insert
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void store_strs(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:34,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:36,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:38,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:40,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:44,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:44,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:48,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:48,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:47,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:25,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:27,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:29,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:31,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:34,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:36,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:38,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:40,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:47,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:45,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:26,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:28,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:30,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:45,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:24,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:24,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:26,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:28,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:30,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:33,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:35,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:37,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:39,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:41,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:46,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 49
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 49
    functionName: is_true
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - assert_int_equal
    - crm_str_to_boolean
    linkageType: ''
    returnType: void
    signature: 'static void is_true(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:65,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:68,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:84,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:85,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:86,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:66,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:68,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:69,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:71,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:73,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:75,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:77,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:79,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:85,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:87,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:64,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:66,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:64,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:67,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:72,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:74,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:70,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:76,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:78,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:80,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:87,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:70,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:76,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:72,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:74,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:78,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:80,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:81,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:84,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:86,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:88,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 89
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 89
    functionName: is_false
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c
    functionUses: []
    functionsReached:
    - assert_false
    - assert_int_equal
    - crm_str_to_boolean
    linkageType: ''
    returnType: void
    signature: 'static void is_false(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:15,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:17,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:16,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:16,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:15,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:17,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: bad_input
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - crm_str_to_boolean
    linkageType: ''
    returnType: void
    signature: 'static void bad_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:93,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:94,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:93,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:94,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:95,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:95,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:96,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:96,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:97,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: is_not_false
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - crm_str_to_boolean
    linkageType: ''
    returnType: void
    signature: 'static void is_not_false(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:53,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:54,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:54,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:55,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:55,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:56,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:56,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:57,1
    - Dst: crm_str_to_boolean
      Src: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: is_not_true
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/crm_str_to_boolean_test.c
    functionUses: []
    functionsReached:
    - assert_int_equal
    - crm_str_to_boolean
    linkageType: ''
    returnType: void
    signature: 'static void is_not_true(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__btoa_test.c:15,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__btoa_test.c:16,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__btoa_test.c:17,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__btoa_test.c:16,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__btoa_test.c:15,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__btoa_test.c:17,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: btoa
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__btoa_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - pcmk__btoa
    linkageType: ''
    returnType: void
    signature: 'static void btoa(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:20,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:20,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:21,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: empty_input_string
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c
    functionUses: []
    functionsReached:
    - pcmk__scan_ll
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void empty_input_string(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:55,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:61,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:57,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:57,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:58,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:61,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:62,1
    - Dst: free
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: out_of_range
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - crm_strdup_printf
    - assert_int_equal
    - free
    - pcmk__scan_ll
    linkageType: ''
    returnType: void
    signature: 'static void out_of_range(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:40,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:40,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: trailing_chars
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c
    functionUses: []
    functionsReached:
    - pcmk__scan_ll
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void trailing_chars(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:48,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:47,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: no_result_variable
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c
    functionUses: []
    functionsReached:
    - pcmk__scan_ll
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void no_result_variable(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:29,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:31,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:31,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:30,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:29,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: bad_input_string
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c
    functionUses: []
    functionsReached:
    - pcmk__scan_ll
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void bad_input_string(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:72,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:72,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: typical_case
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__scan_ll_test.c
    functionUses: []
    functionsReached:
    - pcmk__scan_ll
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void typical_case(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:15,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:18,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:17,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:17,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:15,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:18,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:19,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:19,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:20,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:20,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:22,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:21,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:21,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:22,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: bad_input
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - assert_false
    - pcmk__ends_with
    linkageType: ''
    returnType: void
    signature: 'static void bad_input(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:27,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:29,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:28,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:27,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:28,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:29,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:30,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:30,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:32,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:32,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:34,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:35,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:37,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:35,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:34,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:33,1
    - Dst: pcmk__ends_with
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:33,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 38
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 38
    functionName: ends_with
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - assert_false
    - pcmk__ends_with
    linkageType: ''
    returnType: void
    signature: 'static void ends_with(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:42,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:45,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:43,1
    - Dst: pcmk__ends_with_ext
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:43,1
    - Dst: pcmk__ends_with_ext
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:42,1
    - Dst: pcmk__ends_with_ext
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:45,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:46,1
    - Dst: pcmk__ends_with_ext
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:46,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:47,1
    - Dst: pcmk__ends_with_ext
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:47,1
    - Dst: pcmk__ends_with_ext
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:50,1
    - Dst: pcmk__ends_with_ext
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:48,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:50,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: ends_with_ext
    functionSourceFile: /src/pacemaker/lib/common/tests/strings/pcmk__ends_with_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - assert_false
    - pcmk__ends_with_ext
    linkageType: ''
    returnType: void
    signature: 'static void ends_with_ext(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:97,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:98,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:98,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:97,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:99,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:99,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:101,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:101,1
    - Dst: pcmk__subtract_lists
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:103,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:105,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:105,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:107,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:111,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:109,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:107,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:106,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:106,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 112
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 112
    functionName: remove_last_item
    functionSourceFile: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - g_list_append
    - g_list_nth_data
    - g_list_free
    - g_list_length
    - g_list_free_full
    - assert_int_equal
    - strdup
    - pcmk__subtract_lists
    linkageType: ''
    returnType: void
    signature: 'static void remove_last_item(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:49,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:51,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:49,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:50,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:50,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:51,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:53,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:53,1
    - Dst: pcmk__subtract_lists
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:55,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:57,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:63,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:59,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:57,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:62,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:58,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:61,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:58,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:59,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 64
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 64
    functionName: remove_first_item
    functionSourceFile: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - g_list_append
    - g_list_nth_data
    - g_list_free
    - g_list_length
    - g_list_free_full
    - assert_int_equal
    - strdup
    - pcmk__subtract_lists
    linkageType: ''
    returnType: void
    signature: 'static void remove_first_item(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:24,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:25,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:28,1
    - Dst: pcmk__subtract_lists
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:30,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:34,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:37,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:27,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:34,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:35,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:32,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:23,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:23,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:27,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:35,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:38,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:24,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:25,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:28,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:33,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:33,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:39,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 40
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 40
    functionName: different_lists
    functionSourceFile: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - g_list_append
    - g_list_nth_data
    - g_list_free
    - g_list_length
    - g_list_free_full
    - assert_int_equal
    - strdup
    - pcmk__subtract_lists
    linkageType: ''
    returnType: void
    signature: 'static void different_lists(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:121,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:123,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:122,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:122,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:121,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:123,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:125,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:125,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:126,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:126,1
    - Dst: pcmk__subtract_lists
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:129,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:131,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:133,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:135,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:127,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:134,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:127,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 136
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 136
    functionName: remove_all_items
    functionSourceFile: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_list_free
    - g_list_length
    - g_list_free_full
    - assert_int_equal
    - strdup
    - pcmk__subtract_lists
    linkageType: ''
    returnType: void
    signature: 'static void remove_all_items(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:73,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:73,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:75,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:74,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:74,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:75,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:77,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:77,1
    - Dst: pcmk__subtract_lists
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:79,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:81,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:82,1
    - Dst: g_list_free
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:85,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:86,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:83,1
    - Dst: assert_string_equal
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:83,1
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:82,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:81,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c:87,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 88
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 88
    functionName: remove_middle_item
    functionSourceFile: /src/pacemaker/lib/common/tests/lists/pcmk__subtract_lists_test.c
    functionUses: []
    functionsReached:
    - assert_string_equal
    - g_list_append
    - g_list_nth_data
    - g_list_free
    - g_list_length
    - g_list_free_full
    - assert_int_equal
    - strdup
    - pcmk__subtract_lists
    linkageType: ''
    returnType: void
    signature: 'static void remove_middle_item(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_multiple_test.c:17,1
    - Dst: pcmk__list_of_multiple
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_multiple_test.c:17,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: empty_list
    functionSourceFile: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_multiple_test.c
    functionUses: []
    functionsReached:
    - pcmk__list_of_multiple
    - assert_false
    linkageType: ''
    returnType: void
    signature: 'static void empty_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_multiple_test.c:24,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_multiple_test.c:24,1
    - Dst: pcmk__list_of_multiple
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_multiple_test.c:25,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_multiple_test.c:27,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_multiple_test.c:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: singleton_list
    functionSourceFile: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_multiple_test.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_list_free_full
    - assert_false
    - strdup
    - pcmk__list_of_multiple
    linkageType: ''
    returnType: void
    signature: 'static void singleton_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_multiple_test.c:34,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_multiple_test.c:34,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_multiple_test.c:36,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_multiple_test.c:35,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_multiple_test.c:35,1
    - Dst: pcmk__list_of_multiple
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_multiple_test.c:36,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_multiple_test.c:38,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: longer_list
    functionSourceFile: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_multiple_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - g_list_append
    - g_list_free_full
    - strdup
    - pcmk__list_of_multiple
    linkageType: ''
    returnType: void
    signature: 'static void longer_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_1_test.c:17,1
    - Dst: pcmk__list_of_1
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_1_test.c:17,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: empty_list
    functionSourceFile: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_1_test.c
    functionUses: []
    functionsReached:
    - assert_false
    - pcmk__list_of_1
    linkageType: ''
    returnType: void
    signature: 'static void empty_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_1_test.c:24,1
    - Dst: pcmk__list_of_1
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_1_test.c:25,1
    - Dst: assert_true
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_1_test.c:25,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_1_test.c:27,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_1_test.c:24,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: singleton_list
    functionSourceFile: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_1_test.c
    functionUses: []
    functionsReached:
    - assert_true
    - g_list_append
    - pcmk__list_of_1
    - g_list_free_full
    - strdup
    linkageType: ''
    returnType: void
    signature: 'static void singleton_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_1_test.c:34,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_1_test.c:35,1
    - Dst: assert_false
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_1_test.c:36,1
    - Dst: strdup
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_1_test.c:34,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_1_test.c:35,1
    - Dst: pcmk__list_of_1
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_1_test.c:36,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_1_test.c:38,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: longer_list
    functionSourceFile: /src/pacemaker/lib/common/tests/lists/pcmk__list_of_1_test.c
    functionUses: []
    functionsReached:
    - g_list_append
    - pcmk__list_of_1
    - g_list_free_full
    - assert_false
    - strdup
    linkageType: ''
    returnType: void
    signature: 'static void longer_list(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:36,1
    - Dst: lrmd_list_freeall
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:39,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 3
    argNames:
    - out
    - list
    - ele
    argTypes:
    - pcmk__output_t*
    - lrmd_list_t*
    - char*
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: xml_list
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_output.c
    functionUses: []
    functionsReached:
    - lrmd_list_freeall
    - pcmk__output_create_xml_text_node
    linkageType: ''
    returnType: int
    signature: 'static int xml_list(pcmk__output_t *out, lrmd_list_t *list, const
      char *ele) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:62,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:63,1
    - Dst: default_list
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: lrmd__alternatives_list
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - default_list
    linkageType: ''
    returnType: int
    signature: 'static int lrmd__alternatives_list(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:71,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:78,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:73,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:72,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:82,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:83,1
    - Dst: xml_list
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:86,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:87,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 89
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 89
    functionName: lrmd__agents_list_xml
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_xml_pop_parent
    - pcmk__str_empty
    - xml_list
    - crm_xml_add
    - va_arg
    - pcmk__output_xml_create_parent
    linkageType: ''
    returnType: int
    signature: 'static int lrmd__agents_list_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:46,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:55,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:47,1
    - Dst: xml_list
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:54,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 57
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 57
    functionName: lrmd__alternatives_list_xml
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - xml_list
    - pcmk__output_xml_pop_parent
    - pcmk__output_xml_create_parent
    linkageType: ''
    returnType: int
    signature: 'static int lrmd__alternatives_list_xml(pcmk__output_t *out, va_list
      args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:94,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:99,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:96,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:99,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:95,1
    - Dst: default_list
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:101,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: lrmd__agents_list
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_output.c
    functionUses: []
    functionsReached:
    - pcmk__str_empty
    - crm_strdup_printf
    - va_arg
    - free
    - default_list
    linkageType: ''
    returnType: int
    signature: 'static int lrmd__agents_list(pcmk__output_t *out, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:109,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:118,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:110,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:113,1
    - Dst: xml_list
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:121,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 124
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 124
    functionName: lrmd__providers_list_xml
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_output.c
    functionUses: []
    functionsReached:
    - pcmk__output_xml_create_parent
    - xml_list
    - crm_xml_add
    - va_arg
    - pcmk__output_xml_pop_parent
    linkageType: ''
    returnType: int
    signature: 'static int lrmd__providers_list_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:129,1
    - Dst: va_arg
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:130,1
    - Dst: default_list
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: lrmd__providers_list
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - default_list
    linkageType: ''
    returnType: int
    signature: 'static int lrmd__providers_list(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:138,1
    - Dst: default_list
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: lrmd__standards_list
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_output.c
    functionUses: []
    functionsReached:
    - va_arg
    - default_list
    linkageType: ''
    returnType: int
    signature: 'static int lrmd__standards_list(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lrmd_list_freeall
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:27,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - out
    - list
    - title
    argTypes:
    - pcmk__output_t*
    - lrmd_list_t*
    - char*
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: default_list
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_output.c
    functionUses: []
    functionsReached:
    - lrmd_list_freeall
    linkageType: ''
    returnType: int
    signature: 'static int default_list(pcmk__output_t *out, lrmd_list_t *list, const
      char *title) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/lib/lrmd/lrmd_output.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: lrmd__register_messages
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_output.c
    functionUses: []
    functionsReached:
    - pcmk__register_messages
    linkageType: ''
    returnType: void
    signature: 'void lrmd__register_messages(pcmk__output_t *out) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lrmd_api_is_connected
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:907,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:917,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:912,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:916,1
    - Dst: lrmd_create_op
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:919,1
    - Dst: lrmd_send_xml
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:926,1
    - Dst: lrmd_send_xml_no_reply
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:928,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:933,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:942,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:943,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:957,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:948,1
    - Dst: lrmd_api_is_connected
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:956,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:961,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:960,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 47
    argCount: 7
    argNames:
    - lrmd
    - op
    - data
    - output_data
    - timeout
    - options
    - expect_reply
    argTypes:
    - lrmd_t*
    - char*
    - xmlNode*
    - xmlNode**
    - int
    - enum lrmd_call_options
    - bool
    constantsTouched: []
    func_position:
      end: 963
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 963
    functionName: lrmd_send_command
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - lrmd_send_xml_no_reply
    - lrmd_send_xml
    - CRM_LOG_ASSERT
    - crm_perror
    - lrmd_create_op
    - lrmd_api_is_connected
    - crm_err
    - pcmk__xml_free
    - crm_log_xml_trace
    - crm_trace
    - crm_element_value_int
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_send_command(lrmd_t *lrmd, const char *op, xmlNode
      *data, xmlNode **output_data, int timeout, enum lrmd_call_options options, bool
      expect_reply) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1451,1
    - Dst: mainloop_add_fd
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1461,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1473,1
    - Dst: mainloop_add_trigger
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1459,1
    - Dst: lrmd_handshake_async
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1471,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - lrmd
    - do_api_handshake
    argTypes:
    - lrmd_t*
    - bool
    constantsTouched: []
    func_position:
      end: 1475
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1475
    functionName: add_tls_to_mainloop
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - lrmd_handshake_async
    - mainloop_add_trigger
    - free
    - mainloop_add_fd
    linkageType: ''
    returnType: int
    signature: 'static int add_tls_to_mainloop(lrmd_t *lrmd, bool do_api_handshake) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_del_ipc_client
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1750,1
    - Dst: crm_ipc_close
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1759,1
    - Dst: crm_ipc_destroy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1760,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - lrmd
    argTypes:
    - lrmd_t*
    constantsTouched: []
    func_position:
      end: 1762
      start: 1743
    functionDepth: 0
    functionLinenumber: 1743
    functionLinenumberEnd: 1762
    functionName: lrmd_ipc_disconnect
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - crm_ipc_close
    - crm_ipc_destroy
    - mainloop_del_ipc_client
    linkageType: ''
    returnType: void
    signature: 'static void lrmd_ipc_disconnect(lrmd_t * lrmd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:970,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:972,1
    - Dst: lrmd_send_command
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:973,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:975,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - lrmd
    argTypes:
    - lrmd_t*
    constantsTouched: []
    func_position:
      end: 978
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 978
    functionName: lrmd_api_poke_connection
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - lrmd_send_command
    - crm_xml_add
    - pcmk__xml_free
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_api_poke_connection(lrmd_t * lrmd) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_bye
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1770,1
    - Dst: close
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1786,1
    - Dst: mainloop_del_ipc_client
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1782,1
    - Dst: gnutls_deinit
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1771,1
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1776,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1791,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - lrmd
    argTypes:
    - lrmd_t*
    constantsTouched: []
    func_position:
      end: 1794
      start: 1764
    functionDepth: 0
    functionLinenumber: 1764
    functionLinenumberEnd: 1794
    functionName: lrmd_tls_disconnect
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - gnutls_bye
    - mainloop_del_ipc_client
    - g_list_free_full
    - g_source_remove
    - gnutls_deinit
    - close
    linkageType: ''
    returnType: void
    signature: 'static void lrmd_tls_disconnect(lrmd_t * lrmd) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:363,1
    - Dst: lrmd_dispatch_internal
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:365,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:366,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - buffer
    - length
    - userdata
    argTypes:
    - char*
    - ssize_t
    - gpointer
    constantsTouched: []
    func_position:
      end: 369
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 369
    functionName: lrmd_ipc_dispatch
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - lrmd_dispatch_internal
    - pcmk__xml_free
    - pcmk__xml_parse
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_ipc_dispatch(const char *buffer, ssize_t length, gpointer
      userdata) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1907,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1916,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1914,1
    - Dst: lrmd_send_command
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1915,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1913,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1922,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1923,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1924,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1927,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1929,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1929,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1931,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1936,1
    - Dst: lrmd_new_rsc_info
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1935,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 3
    argNames:
    - lrmd
    - rsc_id
    - options
    argTypes:
    - lrmd_t*
    - char*
    - enum lrmd_call_options
    constantsTouched: []
    func_position:
      end: 1938
      start: 1903
    functionDepth: 0
    functionLinenumber: 1903
    functionLinenumberEnd: 1938
    functionName: lrmd_api_get_rsc_info
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - pcmk_is_set
    - pcmk__xml_free
    - crm_element_value
    - lrmd_send_command
    - pcmk_get_ra_caps
    - lrmd_new_rsc_info
    linkageType: ''
    returnType: lrmd_rsc_info_t*
    signature: 'static lrmd_rsc_info_t *lrmd_api_get_rsc_info(lrmd_t * lrmd, const
      char *rsc_id, enum lrmd_call_options options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 375
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 375
    functionName: lrmd_free_xml
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void lrmd_free_xml(gpointer userdata) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1944,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1946,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1948,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1945,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1947,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - op_info
    argTypes:
    - lrmd_op_info_t*
    constantsTouched: []
    func_position:
      end: 1950
      start: 1940
    functionDepth: 0
    functionLinenumber: 1940
    functionLinenumberEnd: 1950
    functionName: lrmd_free_op_info
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void lrmd_free_op_info(lrmd_op_info_t *op_info) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: remote_executor_connected
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:459,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:460,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:464,1
    - Dst: pcmk__remote_ready
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:466,1
    - Dst: pcmk__read_remote_message
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:468,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:472,1
    - Dst: lrmd_tls_disconnect
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:474,1
    - Dst: pcmk__remote_message_xml
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:481,1
    - Dst: handle_remote_msg
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:487,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:488,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 490
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 490
    functionName: lrmd_tls_dispatch
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__read_remote_message
    - lrmd_tls_disconnect
    - remote_executor_connected
    - handle_remote_msg
    - pcmk__remote_message_xml
    - pcmk__remote_ready
    - pcmk__xml_free
    - crm_info
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_tls_dispatch(gpointer userdata) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:566,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:571,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:568,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:570,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:569,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:572,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:575,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:577,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:580,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 5
    argNames:
    - token
    - op
    - data
    - timeout
    - options
    argTypes:
    - char*
    - char*
    - xmlNode*
    - int
    - enum lrmd_call_options
    constantsTouched: []
    func_position:
      end: 583
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 583
    functionName: lrmd_create_op
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - CRM_CHECK
    - pcmk__xml_copy
    - crm_xml_add
    - crm_xml_add_int
    - crm_trace
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *lrmd_create_op(const char *token, const char *op,
      xmlNode *data, int timeout, enum lrmd_call_options options) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:593,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:596,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:600,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 614
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 614
    functionName: lrmd_ipc_connection_destroy
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - crm_info
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void lrmd_ipc_connection_destroy(gpointer userdata) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:435,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:436,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 440
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 440
    functionName: process_pending_notifies
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - g_list_foreach
    - crm_trace
    - g_list_free_full
    linkageType: ''
    returnType: int
    signature: 'static int process_pending_notifies(gpointer userdata) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:530,1
    - Dst: crm_ipc_ready
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:535,1
    - Dst: crm_ipc_read
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:536,1
    - Dst: crm_ipc_buffer
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:537,1
    - Dst: lrmd_ipc_dispatch
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:539,1
    - Dst: strlen
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:539,1
    - Dst: pcmk__ipc_free_client_buffer
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:540,1
    - Dst: lrmd_tls_dispatch
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:545,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:548,1
    - Dst: lrmd_api_is_connected
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:552,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:553,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 1
    argNames:
    - lrmd
    argTypes:
    - lrmd_t*
    constantsTouched: []
    func_position:
      end: 558
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 558
    functionName: lrmd_dispatch
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - crm_ipc_ready
    - lrmd_ipc_dispatch
    - lrmd_tls_dispatch
    - crm_ipc_buffer
    - crm_ipc_read
    - lrmd_api_is_connected
    - pcmk__ipc_free_client_buffer
    - pcmk__assert
    - strlen
    - crm_err
    linkageType: ''
    returnType: bool
    signature: 'bool lrmd_dispatch(lrmd_t * lrmd) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:251,1
    - Dst: lrmd__reset_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:255,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:254,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:252,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:253,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:257,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - event
    argTypes:
    - lrmd_event_data_t*
    constantsTouched: []
    func_position:
      end: 260
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 260
    functionName: lrmd_free_event
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - lrmd__reset_result
    - free
    linkageType: ''
    returnType: void
    signature: 'void lrmd_free_event(lrmd_event_data_t *event) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - lrmd
    argTypes:
    - lrmd_t*
    constantsTouched: []
    func_position:
      end: 383
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 383
    functionName: remote_executor_connected
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool remote_executor_connected(lrmd_t * lrmd) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_ipc_ready
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:500,1
    - Dst: pcmk__remote_ready
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:506,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:518,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:514,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 10
    argCount: 2
    argNames:
    - lrmd
    - timeout
    argTypes:
    - lrmd_t*
    - int
    constantsTouched: []
    func_position:
      end: 522
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 522
    functionName: lrmd_poll
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - crm_ipc_ready
    - pcmk__remote_ready
    - pcmk_rc2legacy
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int lrmd_poll(lrmd_t * lrmd, int timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:670,1
    - Dst: pcmk__remote_send_xml
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:672,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:671,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 4
    argNames:
    - session
    - msg
    - id
    - msg_type
    argTypes:
    - pcmk__remote_t*
    - xmlNode*
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 673
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 673
    functionName: lrmd__remote_send_xml
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - crm_xml_add
    - pcmk__remote_send_xml
    - crm_xml_add_int
    linkageType: ''
    returnType: int
    signature: 'int lrmd__remote_send_xml(pcmk__remote_t *session, xmlNode *msg, uint32_t
      id, const char *msg_type) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:987,1
    - Dst: stonith__watchdog_fencing_enabled_for_node
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:993,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:989,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:991,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:994,1
    - Dst: lrmd_send_command
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:997,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:999,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1000,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - lrmd
    - hash
    argTypes:
    - lrmd_t*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 1001
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 1001
    functionName: lrmd__validate_remote_settings
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - stonith__watchdog_fencing_enabled_for_node
    - g_hash_table_lookup
    - crm_xml_add
    - pcmk__xml_free
    - lrmd_send_command
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int lrmd__validate_remote_settings(lrmd_t *lrmd, GHashTable *hash) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2628,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - event
    - rc
    - op_status
    - exit_reason
    argTypes:
    - lrmd_event_data_t*
    - enum ocf_exitcode
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 2629
      start: 2616
    functionDepth: 0
    functionLinenumber: 2616
    functionLinenumberEnd: 2629
    functionName: lrmd__set_result
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'void lrmd__set_result(lrmd_event_data_t *event, enum ocf_exitcode
      rc, int op_status, const char *exit_reason) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lrmd_internal_proxy_dispatch
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:276,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:287,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:291,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:305,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:302,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:310,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:323,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:333,1
    - Dst: lrmd__set_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:334,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:335,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:289,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:308,1
    - Dst: crm_element_value_ms
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:300,1
    - Dst: QB_MAX
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:321,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:324,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:340,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:346,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:269,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:286,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:285,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:299,1
    - Dst: crm_element_value_epoch
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:313,1
    - Dst: crm_element_value_epoch
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:316,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:319,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:327,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:338,1
    - Dst: xml2list
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:337,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:280,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:293,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:320,1
    - Dst: QB_MAX
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:325,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:328,1
    - Dst: lrmd__reset_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:352,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:350,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 66
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 353
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 353
    functionName: lrmd_dispatch_internal
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - CRM_LOG_ASSERT
    - crm_element_value_epoch
    - crm_element_value_ms
    - lrmd_internal_proxy_dispatch
    - pcmk__str_eq
    - g_hash_table_destroy
    - lrmd__reset_result
    - crm_element_value_copy
    - crm_element_value
    - QB_MAX
    - lrmd__set_result
    - crm_trace
    - crm_element_value_int
    - xml2list
    linkageType: ''
    returnType: void
    signature: 'static void lrmd_dispatch_internal(gpointer data, gpointer user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:391,1
    - Dst: lrmd_dispatch_internal
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:393,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:394,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:392,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:395,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:403,1
    - Dst: process_lrmd_handshake_reply
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:404,1
    - Dst: report_async_connection_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:405,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:405,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:409,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:411,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - xml
    - lrmd
    argTypes:
    - xmlNode*
    - lrmd_t*
    constantsTouched: []
    func_position:
      end: 414
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 414
    functionName: handle_remote_msg
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - crm_element_value_int
    - pcmk__str_eq
    - pcmk_rc2legacy
    - crm_err
    - crm_element_value
    - process_lrmd_handshake_reply
    - report_async_connection_result
    - lrmd_dispatch_internal
    linkageType: ''
    returnType: void
    signature: 'static void handle_remote_msg(xmlNode *xml, lrmd_t *lrmd) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1006,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1010,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1009,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1011,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1008,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1015,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - name
    - is_proxy
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 1019
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1019
    functionName: lrmd_handshake_hello_msg
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_set_bool_attr
    - crm_xml_add
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *lrmd_handshake_hello_msg(const char *name, bool is_proxy) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:622,1
    - Dst: gnutls_bye
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:625,1
    - Dst: pcmk__free_tls
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:630,1
    - Dst: close
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:634,1
    - Dst: gnutls_deinit
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:626,1
    - Dst: mainloop_destroy_trigger
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:637,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:641,1
    - Dst: mainloop_destroy_trigger
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:645,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:649,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:650,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 663
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 663
    functionName: lrmd_tls_connection_destroy
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - gnutls_bye
    - pcmk__free_tls
    - g_list_free_full
    - free
    - mainloop_destroy_trigger
    - crm_info
    - gnutls_deinit
    - close
    linkageType: ''
    returnType: void
    signature: 'static void lrmd_tls_connection_destroy(gpointer userdata) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2550,1
    - Dst: stonith__metadata_async
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2559,1
    - Dst: services__create_resource_action
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2564,1
    - Dst: callback
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2573,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2580,1
    - Dst: callback
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2590,1
    - Dst: services_action_async
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2598,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2547,1
    - Dst: callback
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2553,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2574,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2591,1
    - Dst: services_action_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2599,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2558,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2554,1
    - Dst: calloc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2585,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2588,1
    - Dst: services_action_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2581,1
    - Dst: services_action_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2587,1
    - Dst: services__copy_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2578,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2560,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2564,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2571,1
    - Dst: callback
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2579,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 3
    argNames:
    - rsc
    - (*callback)
    - user_data
    argTypes:
    - lrmd_rsc_info_t*
    - void
    - void*
    constantsTouched: []
    func_position:
      end: 2605
      start: 2536
    functionDepth: 0
    functionLinenumber: 2536
    functionLinenumberEnd: 2605
    functionName: lrmd__metadata_async
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - CRM_CHECK
    - services_action_free
    - pcmk__timeout_ms2s
    - pcmk__s
    - calloc
    - callback
    - strcmp
    - stonith__metadata_async
    - services_action_async
    - services__create_resource_action
    - pcmk__reset_result
    - services__copy_result
    linkageType: ''
    returnType: int
    signature: 'int lrmd__metadata_async(const lrmd_rsc_info_t *rsc, void (*callback)(int
      pid, const pcmk__action_result_t *result, void *user_data), void *user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1494,1
    - Dst: pcmk__tls_client_try_handshake
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1502,1
    - Dst: tls_handshake_succeeded
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1505,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1498,1
    - Dst: tls_handshake_failed
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1497,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1506,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1509,1
    - Dst: tls_handshake_failed
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1513,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1514,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 1517
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1517
    functionName: try_handshake_cb
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__tls_client_try_handshake
    - tls_handshake_succeeded
    - time
    - free
    - mainloop_set_trigger
    - tls_handshake_failed
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean try_handshake_cb(gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lrmd_new_rsc_info
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1886,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - rsc_info
    argTypes:
    - lrmd_rsc_info_t*
    constantsTouched: []
    func_position:
      end: 1888
      start: 1883
    functionDepth: 0
    functionLinenumber: 1883
    functionLinenumberEnd: 1888
    functionName: lrmd_copy_rsc_info
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - lrmd_new_rsc_info
    linkageType: ''
    returnType: lrmd_rsc_info_t*
    signature: 'lrmd_rsc_info_t *lrmd_copy_rsc_info(lrmd_rsc_info_t * rsc_info) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2255,1
    - Dst: resources_list_agents
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2260,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2266,1
    - Dst: lrmd_list_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2263,1
    - Dst: list_stonith_agents
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2275,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2281,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 4
    argNames:
    - lrmd
    - resources
    - class
    - provider
    argTypes:
    - lrmd_t*
    - lrmd_list_t**
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2285
      start: 2248
    functionDepth: 0
    functionLinenumber: 2248
    functionLinenumberEnd: 2285
    functionName: lrmd_api_list_agents
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - list_stonith_agents
    - resources_list_agents
    - pcmk__str_eq
    - g_list_free_full
    - crm_notice
    - lrmd_list_add
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_api_list_agents(lrmd_t * lrmd, lrmd_list_t ** resources,
      const char *class, const char *provider) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: report_async_connection_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1534,1
    - Dst: lrmd_tls_connection_destroy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1530,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1533,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1561,1
    - Dst: pcmk__tls_client_try_handshake
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1580,1
    - Dst: pcmk__x509_enabled
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1525,1
    - Dst: pcmk__init_tls
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1543,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1547,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1557,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1588,1
    - Dst: time
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1590,1
    - Dst: mainloop_add_trigger
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1593,1
    - Dst: lrmd_tls_connection_destroy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1546,1
    - Dst: report_async_connection_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1547,1
    - Dst: lrmd__init_remote_key
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1555,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1559,1
    - Dst: pcmk__new_tls_session
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1569,1
    - Dst: lrmd_tls_connection_destroy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1560,1
    - Dst: report_async_connection_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1572,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1594,1
    - Dst: tls_handshake_succeeded
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1597,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1531,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1534,1
    - Dst: report_async_connection_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1561,1
    - Dst: pcmk__tls_add_psk_key
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1565,1
    - Dst: gnutls_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1566,1
    - Dst: lrmd_tls_connection_destroy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1571,1
    - Dst: tls_handshake_failed
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1600,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 3
    argNames:
    - userdata
    - rc
    - sock
    argTypes:
    - void*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1602
      start: 1519
    functionDepth: 0
    functionLinenumber: 1519
    functionLinenumberEnd: 1602
    functionName: lrmd_tcp_connect_cb
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - gnutls_free
    - pcmk__tls_client_try_handshake
    - tls_handshake_failed
    - pcmk__init_tls
    - tls_handshake_succeeded
    - pcmk__assert_alloc
    - lrmd__init_remote_key
    - time
    - mainloop_add_trigger
    - pcmk_rc2legacy
    - pcmk__tls_add_psk_key
    - pcmk_rc_str
    - lrmd_tls_connection_destroy
    - pcmk__new_tls_session
    - crm_info
    - report_async_connection_result
    - pcmk__x509_enabled
    - mainloop_set_trigger
    linkageType: ''
    returnType: void
    signature: 'static void lrmd_tcp_connect_cb(void *userdata, int rc, int sock) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1896,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1897,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1898,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1899,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1900,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - rsc_info
    argTypes:
    - lrmd_rsc_info_t*
    constantsTouched: []
    func_position:
      end: 1901
      start: 1890
    functionDepth: 0
    functionLinenumber: 1890
    functionLinenumberEnd: 1901
    functionName: lrmd_free_rsc_info
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void lrmd_free_rsc_info(lrmd_rsc_info_t * rsc_info) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resources_list_agents
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2294,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2300,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2296,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 3
    argNames:
    - agent
    - provider
    - class
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2302
      start: 2287
    functionDepth: 0
    functionLinenumber: 2287
    functionLinenumberEnd: 2302
    functionName: does_provider_have_agent
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - g_list_free_full
    - resources_list_agents
    linkageType: ''
    returnType: bool
    signature: 'static bool does_provider_have_agent(const char *agent, const char
      *provider, const char *class) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lrmd__remote_send_xml
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:769,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:772,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:773,1
    - Dst: lrmd_tls_disconnect
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:774,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - lrmd
    - msg
    argTypes:
    - lrmd_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 777
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 777
    functionName: send_remote_message
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - crm_err
    - lrmd__remote_send_xml
    - lrmd_tls_disconnect
    - pcmk_rc_str
    linkageType: ''
    returnType: int
    signature: 'static int send_remote_message(lrmd_t *lrmd, xmlNode *msg) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:681,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:728,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:718,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:719,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:731,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:737,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:727,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:743,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:751,1
    - Dst: pcmk__read_remote_message
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:707,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:722,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:723,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:725,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:736,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:730,1
    - Dst: time
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:699,1
    - Dst: pcmk__remote_message_xml
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:695,1
    - Dst: pcmk__remote_message_xml
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:712,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:745,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:734,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 4
    argNames:
    - lrmd
    - total_timeout
    - expected_reply_id
    - reply
    argTypes:
    - lrmd_t*
    - int
    - int
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 755
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 755
    functionName: read_remote_reply
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__read_remote_message
    - g_list_append
    - pcmk__remote_message_xml
    - time
    - pcmk__str_eq
    - pcmk__xml_free
    - crm_element_value
    - crm_info
    - crm_err
    - crm_element_value_int
    - mainloop_set_trigger
    linkageType: ''
    returnType: int
    signature: 'static int read_remote_reply(lrmd_t *lrmd, int total_timeout, int
      expected_reply_id, xmlNode **reply) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: remote_executor_connected
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:785,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:796,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:791,1
    - Dst: send_remote_message
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:789,1
    - Dst: read_remote_reply
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:794,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:798,1
    - Dst: lrmd_tls_disconnect
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:799,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:805,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:808,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 4
    argNames:
    - lrmd
    - msg
    - timeout
    - reply
    argTypes:
    - lrmd_t*
    - xmlNode*
    - int
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 809
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 809
    functionName: lrmd_tls_send_recv
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - lrmd_tls_disconnect
    - remote_executor_connected
    - read_remote_reply
    - pcmk_rc2legacy
    - pcmk__xml_free
    - pcmk_rc_str
    - send_remote_message
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_tls_send_recv(lrmd_t * lrmd, xmlNode * msg, int timeout,
      xmlNode ** reply) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 6
    argNames:
    - lrmd
    - standard
    - provider
    - type
    - output
    - options
    argTypes:
    - lrmd_t*
    - char*
    - char*
    - char*
    - char**
    - enum lrmd_call_options
    constantsTouched: []
    func_position:
      end: 2086
      start: 2079
    functionDepth: 0
    functionLinenumber: 2079
    functionLinenumberEnd: 2086
    functionName: lrmd_api_get_metadata
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_api_get_metadata(lrmd_t *lrmd, const char *standard,
      const char *provider, const char *type, char **output, enum lrmd_call_options
      options) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_ipc_send
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:819,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:825,1
    - Dst: lrmd_tls_send_recv
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:822,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 4
    argNames:
    - lrmd
    - msg
    - timeout
    - reply
    argTypes:
    - lrmd_t*
    - xmlNode*
    - int
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 831
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 831
    functionName: lrmd_send_xml
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - lrmd_tls_send_recv
    - crm_ipc_send
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_send_xml(lrmd_t * lrmd, xmlNode * msg, int timeout,
      xmlNode ** reply) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lrmd_key_value_freeall
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2098,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2102,1
    - Dst: stonith_get_metadata
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2106,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2109,1
    - Dst: lrmd_key_value_freeall
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2103,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2111,1
    - Dst: services__create_resource_action
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2113,1
    - Dst: lrmd_key_value_freeall
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2117,1
    - Dst: services_action_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2123,1
    - Dst: services_action_sync
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2127,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2128,1
    - Dst: services_action_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2142,1
    - Dst: services_action_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2130,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2135,1
    - Dst: strdup
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2141,1
    - Dst: services_action_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2137,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 7
    argNames:
    - lrmd
    - standard
    - provider
    - type
    - output
    - options
    - params
    argTypes:
    - lrmd_t*
    - char*
    - char*
    - char*
    - char**
    - enum lrmd_call_options
    - lrmd_key_value_t*
    constantsTouched: []
    func_position:
      end: 2145
      start: 2088
    functionDepth: 0
    functionLinenumber: 2088
    functionLinenumberEnd: 2145
    functionName: lrmd_api_get_metadata_params
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - services_action_free
    - services_action_sync
    - pcmk__insert_dup
    - pcmk__strkey_table
    - pcmk__str_eq
    - stonith_get_metadata
    - services__create_resource_action
    - strdup
    - lrmd_key_value_freeall
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_api_get_metadata_params(lrmd_t *lrmd, const char *standard,
      const char *provider, const char *type, char **output, enum lrmd_call_options
      options, lrmd_key_value_t *params) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__connect_remote
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1612,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1617,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1615,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - lrmd
    - timeout
    - /*ms */
    argTypes:
    - lrmd_t*
    - int
    constantsTouched: []
    func_position:
      end: 1622
      start: 1604
    functionDepth: 0
    functionLinenumber: 1604
    functionLinenumberEnd: 1622
    functionName: lrmd_tls_connect_async
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - crm_warn
    - pcmk__connect_remote
    - pcmk_rc_str
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_tls_connect_async(lrmd_t * lrmd, int timeout /*ms
      */ ) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__x509_enabled
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1628,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1637,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1635,1
    - Dst: pcmk__connect_remote
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1632,1
    - Dst: lrmd_tls_connection_destroy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1638,1
    - Dst: pcmk__init_tls
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1643,1
    - Dst: lrmd_tls_connection_destroy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1646,1
    - Dst: lrmd__init_remote_key
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1654,1
    - Dst: lrmd_tls_connection_destroy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1656,1
    - Dst: pcmk__tls_add_psk_key
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1660,1
    - Dst: gnutls_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1661,1
    - Dst: tls_client_handshake
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1670,1
    - Dst: pcmk__new_tls_session
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1664,1
    - Dst: lrmd_tls_connection_destroy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1666,1
    - Dst: add_tls_to_mainloop
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1680,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1674,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - lrmd
    - fd
    argTypes:
    - lrmd_t*
    - int*
    constantsTouched: []
    func_position:
      end: 1683
      start: 1624
    functionDepth: 0
    functionLinenumber: 1624
    functionLinenumberEnd: 1683
    functionName: lrmd_tls_connect
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - gnutls_free
    - pcmk__init_tls
    - tls_client_handshake
    - add_tls_to_mainloop
    - pcmk__new_tls_session
    - lrmd__init_remote_key
    - crm_info
    - pcmk__tls_add_psk_key
    - pcmk_rc_str
    - lrmd_tls_connection_destroy
    - crm_warn
    - pcmk__connect_remote
    - pcmk__x509_enabled
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_tls_connect(lrmd_t * lrmd, int *fd) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1188,1
    - Dst: feof
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1199,1
    - Dst: gnutls_malloc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1193,1
    - Dst: fgetc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1196,1
    - Dst: feof
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1195,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1200,1
    - Dst: gnutls_realloc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1207,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1208,1
    - Dst: fclose
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1212,1
    - Dst: clear_gnutls_datum
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1215,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - location
    - key
    argTypes:
    - char*
    - gnutls_datum_t*
    constantsTouched: []
    func_position:
      end: 1219
      start: 1178
    functionDepth: 0
    functionLinenumber: 1178
    functionLinenumberEnd: 1219
    functionName: read_gnutls_key
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - fclose
    - fopen
    - feof
    - clear_gnutls_datum
    - gnutls_realloc
    - fgetc
    - gnutls_malloc
    - pcmk__assert
    - crm_warn
    linkageType: ''
    returnType: int
    signature: 'static int read_gnutls_key(const char *location, gnutls_datum_t *key) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 3
    argCount: 3
    argNames:
    - lrmd
    - userdata
    - (*callback)
    argTypes:
    - lrmd_t*
    - void*
    - void
    constantsTouched: []
    func_position:
      end: 2034
      start: 2027
    functionDepth: 0
    functionLinenumber: 2027
    functionLinenumberEnd: 2034
    functionName: lrmd_internal_set_proxy_callback
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void lrmd_internal_set_proxy_callback(lrmd_t * lrmd, void *userdata,
      void (*callback)(lrmd_t *lrmd, void *userdata, xmlNode *msg)) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1804,1
    - Dst: lrmd_tls_disconnect
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1810,1
    - Dst: lrmd_ipc_disconnect
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1805,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1813,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1808,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1818,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1821,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - lrmd
    argTypes:
    - lrmd_t*
    constantsTouched: []
    func_position:
      end: 1824
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1824
    functionName: lrmd_api_disconnect
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - lrmd_tls_disconnect
    - lrmd_ipc_disconnect
    - free
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_api_disconnect(lrmd_t * lrmd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_gnutls_datum
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1255,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1256,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - key_cache
    - key
    argTypes:
    - struct key_cache_s*
    - gnutls_datum_t*
    constantsTouched: []
    func_position:
      end: 1258
      start: 1252
    functionDepth: 0
    functionLinenumber: 1252
    functionLinenumberEnd: 1258
    functionName: get_cached_key
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - copy_gnutls_datum
    - pcmk__s
    linkageType: ''
    returnType: void
    signature: 'static void get_cached_key(struct key_cache_s *key_cache, gnutls_datum_t
      *key) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resources_list_providers
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2312,1
    - Dst: does_provider_have_agent
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2316,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2323,1
    - Dst: lrmd_list_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2318,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 3
    argNames:
    - lrmd
    - agent
    - providers
    argTypes:
    - lrmd_t*
    - char*
    - lrmd_list_t**
    constantsTouched: []
    func_position:
      end: 2325
      start: 2304
    functionDepth: 0
    functionLinenumber: 2304
    functionLinenumberEnd: 2325
    functionName: lrmd_api_list_ocf_providers
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - does_provider_have_agent
    - resources_list_providers
    - lrmd_list_add
    - g_list_free_full
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_api_list_ocf_providers(lrmd_t * lrmd, const char *agent,
      lrmd_list_t ** providers) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2381,1
    - Dst: lrmd_api_delete
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2388,1
    - Dst: calloc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2386,1
    - Dst: calloc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2395,1
    - Dst: calloc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2397,1
    - Dst: lrmd_api_delete
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2400,1
    - Dst: strdup
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2434,1
    - Dst: strdup
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2435,1
    - Dst: lrmd_api_delete
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2437,1
    - Dst: crm_default_remote_port
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2443,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 4
    argNames:
    - api
    - nodename
    - server
    - port
    argTypes:
    - lrmd_t**
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2447
      start: 2369
    functionDepth: 0
    functionLinenumber: 2369
    functionLinenumberEnd: 2447
    functionName: lrmd__new
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - calloc
    - lrmd_api_delete
    - strdup
    - crm_default_remote_port
    linkageType: ''
    returnType: int
    signature: 'int lrmd__new(lrmd_t **api, const char *nodename, const char *server,
      int port) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1838,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1838,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1845,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1843,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1846,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1847,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1848,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1849,1
    - Dst: lrmd_send_command
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1850,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1851,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 6
    argNames:
    - lrmd
    - rsc_id
    - class
    - provider
    - type
    - options
    argTypes:
    - lrmd_t*
    - char*
    - char*
    - char*
    - char*
    - enum lrmd_call_options
    constantsTouched: []
    func_position:
      end: 1854
      start: 1826
    functionDepth: 0
    functionLinenumber: 1826
    functionLinenumberEnd: 1854
    functionName: lrmd_api_register_rsc
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - pcmk_is_set
    - pcmk__xml_free
    - lrmd_send_command
    - pcmk_get_ra_caps
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_api_register_rsc(lrmd_t * lrmd, const char *rsc_id,
      const char *class, const char *provider, const char *type, enum lrmd_call_options
      options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2042,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - lrmd
    - msg
    argTypes:
    - lrmd_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2045
      start: 2036
    functionDepth: 0
    functionLinenumber: 2036
    functionLinenumberEnd: 2045
    functionName: lrmd_internal_proxy_dispatch
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - crm_log_xml_trace
    linkageType: ''
    returnType: void
    signature: 'void lrmd_internal_proxy_dispatch(lrmd_t *lrmd, xmlNode *msg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1264,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1267,1
    - Dst: copy_gnutls_datum
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1266,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - key_cache
    - key
    - location
    argTypes:
    - struct key_cache_s*
    - gnutls_datum_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1269
      start: 1260
    functionDepth: 0
    functionLinenumber: 1260
    functionLinenumberEnd: 1269
    functionName: cache_key
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - copy_gnutls_datum
    - time
    - pcmk__s
    linkageType: ''
    returnType: void
    signature: 'static void cache_key(struct key_cache_s *key_cache, gnutls_datum_t
      *key, const char *location) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resources_list_standards
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2334,1
    - Dst: lrmd_list_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2337,1
    - Dst: lrmd_list_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2342,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2346,1
    - Dst: list_stonith_agents
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2341,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - lrmd
    - supported
    argTypes:
    - lrmd_t*
    - lrmd_list_t**
    constantsTouched: []
    func_position:
      end: 2348
      start: 2327
    functionDepth: 0
    functionLinenumber: 2327
    functionLinenumberEnd: 2348
    functionName: lrmd_api_list_standards
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - lrmd_list_add
    - list_stonith_agents
    - g_list_free_full
    - resources_list_standards
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_api_list_standards(lrmd_t * lrmd, lrmd_list_t ** supported) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2454,1
    - Dst: lrmd__new
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2456
      start: 2449
    functionDepth: 0
    functionLinenumber: 2449
    functionLinenumberEnd: 2456
    functionName: lrmd_api_new
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - lrmd__new
    linkageType: ''
    returnType: lrmd_t*
    signature: 'lrmd_t *lrmd_api_new(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1331,1
    - Dst: get_remote_key
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1348,1
    - Dst: get_remote_key
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1337,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1342,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1343,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1353,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1354,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - key
    argTypes:
    - gnutls_datum_t*
    constantsTouched: []
    func_position:
      end: 1356
      start: 1322
    functionDepth: 0
    functionLinenumber: 1322
    functionLinenumberEnd: 1356
    functionName: lrmd__init_remote_key
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__env_option
    - get_remote_key
    - crm_warn
    - pcmk_rc_str
    linkageType: ''
    returnType: int
    signature: 'int lrmd__init_remote_key(gnutls_datum_t *key) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: key_is_cached
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1291,1
    - Dst: get_cached_key
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1295,1
    - Dst: clear_key_cache
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1293,1
    - Dst: key_cache_expired
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1292,1
    - Dst: read_gnutls_key
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1300,1
    - Dst: cache_key
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1304,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - location
    - key
    argTypes:
    - char*
    - gnutls_datum_t*
    constantsTouched: []
    func_position:
      end: 1306
      start: 1281
    functionDepth: 0
    functionLinenumber: 1281
    functionLinenumberEnd: 1306
    functionName: get_remote_key
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - clear_key_cache
    - read_gnutls_key
    - key_is_cached
    - key_cache_expired
    - get_cached_key
    - cache_key
    linkageType: ''
    returnType: int
    signature: 'static int get_remote_key(const char *location, gnutls_datum_t *key) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__tls_client_handshake
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1426,1
    - Dst: tls_handshake_failed
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1430,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - lrmd
    argTypes:
    - lrmd_t*
    constantsTouched: []
    func_position:
      end: 1434
      start: 1421
    functionDepth: 0
    functionLinenumber: 1421
    functionLinenumberEnd: 1434
    functionName: tls_client_handshake
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__tls_client_handshake
    - tls_handshake_failed
    linkageType: ''
    returnType: int
    signature: 'static int tls_client_handshake(lrmd_t *lrmd) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2053,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2055,1
    - Dst: lrmd_send_xml_no_reply
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2056,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - lrmd
    - msg
    argTypes:
    - lrmd_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2057
      start: 2047
    functionDepth: 0
    functionLinenumber: 2047
    functionLinenumberEnd: 2057
    functionName: lrmd_internal_proxy_send
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - crm_log_xml_trace
    - crm_xml_add
    - lrmd_send_xml_no_reply
    linkageType: ''
    returnType: int
    signature: 'int lrmd_internal_proxy_send(lrmd_t * lrmd, xmlNode *msg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2210,1
    - Dst: crm_xml_add_ms
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2215,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2213,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2212,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2214,1
    - Dst: lrmd_send_command
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2216,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - lrmd
    - rsc_id
    - action
    - interval_ms
    argTypes:
    - lrmd_t*
    - char*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 2219
      start: 2205
    functionDepth: 0
    functionLinenumber: 2205
    functionLinenumberEnd: 2219
    functionName: lrmd_api_cancel
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add_ms
    - crm_xml_add
    - pcmk__xml_free
    - lrmd_send_command
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_api_cancel(lrmd_t *lrmd, const char *rsc_id, const
      char *action, guint interval_ms) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stonith__api_new
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2063,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2066,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - type
    - output
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 2077
      start: 2059
    functionDepth: 0
    functionLinenumber: 2059
    functionLinenumberEnd: 2077
    functionName: stonith_get_metadata
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - stonith__api_new
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int stonith_get_metadata(const char *type, char **output) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stonith__api_new
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2225,1
    - Dst: lrmd_list_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2240,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2230,1
    - Dst: stonith__key_value_freeall
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2244,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - resources
    argTypes:
    - lrmd_list_t**
    constantsTouched: []
    func_position:
      end: 2246
      start: 2221
    functionDepth: 0
    functionLinenumber: 2221
    functionLinenumberEnd: 2246
    functionName: list_stonith_agents
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - stonith__key_value_freeall
    - stonith__api_new
    - lrmd_list_add
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int list_stonith_agents(lrmd_list_t ** resources) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__tls_check_cert_expiration
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1399,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1409,1
    - Dst: add_tls_to_mainloop
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1403,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1401,1
    - Dst: report_async_connection_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - lrmd
    argTypes:
    - lrmd_t*
    constantsTouched: []
    func_position:
      end: 1411
      start: 1388
    functionDepth: 0
    functionLinenumber: 1388
    functionLinenumberEnd: 1411
    functionName: tls_handshake_succeeded
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__tls_check_cert_expiration
    - add_tls_to_mainloop
    - pcmk_rc2legacy
    - crm_info
    - report_async_connection_result
    linkageType: ''
    returnType: void
    signature: 'static void tls_handshake_succeeded(lrmd_t *lrmd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2184,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2189,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2185,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2190,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2188,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2191,1
    - Dst: hash2smartfield
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2194,1
    - Dst: lrmd_send_command
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2197,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2199,1
    - Dst: lrmd_key_value_freeall
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2201,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 5
    argNames:
    - lrmd
    - alert_id
    - alert_path
    - timeout
    - params
    argTypes:
    - lrmd_t*
    - char*
    - char*
    - int
    - lrmd_key_value_t*
    constantsTouched: []
    func_position:
      end: 2203
      start: 2179
    functionDepth: 0
    functionLinenumber: 2179
    functionLinenumberEnd: 2203
    functionName: lrmd_api_exec_alert
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - hash2smartfield
    - crm_xml_add
    - pcmk__xml_free
    - crm_xml_add_int
    - lrmd_send_command
    - lrmd_key_value_freeall
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_api_exec_alert(lrmd_t *lrmd, const char *alert_id,
      const char *alert_path, int timeout, lrmd_key_value_t *params) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2155,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2160,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2156,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2161,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2159,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2162,1
    - Dst: crm_xml_add_ms
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2163,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2164,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2165,1
    - Dst: hash2smartfield
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2168,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2172,1
    - Dst: lrmd_key_value_freeall
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2174,1
    - Dst: lrmd_send_command
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2171,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 9
    argNames:
    - lrmd
    - rsc_id
    - action
    - userdata
    - interval_ms
    - timeout
    - /* ms */
    - start_delay
    - /* ms */
    - options
    - params
    argTypes:
    - lrmd_t*
    - char*
    - char*
    - char*
    - guint
    - int
    - int
    - enum lrmd_call_options
    - lrmd_key_value_t*
    constantsTouched: []
    func_position:
      end: 2176
      start: 2147
    functionDepth: 0
    functionLinenumber: 2147
    functionLinenumberEnd: 2176
    functionName: lrmd_api_exec
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - hash2smartfield
    - crm_xml_add_ms
    - crm_xml_add
    - pcmk__xml_free
    - crm_xml_add_int
    - lrmd_send_command
    - lrmd_key_value_freeall
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_api_exec(lrmd_t *lrmd, const char *rsc_id, const char
      *action, const char *userdata, guint interval_ms, int timeout, /* ms */ int
      start_delay, /* ms */ enum lrmd_call_options options, lrmd_key_value_t * params) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - lrmd
    argTypes:
    - lrmd_t*
    constantsTouched: []
    func_position:
      end: 2683
      start: 2673
    functionDepth: 0
    functionLinenumber: 2673
    functionLinenumberEnd: 2683
    functionName: lrmd__node_start_state
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *lrmd__node_start_state(lrmd_t *lrmd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:196,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:200,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:199,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - rsc_id
    - task
    - interval_ms
    argTypes:
    - char*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 203
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 203
    functionName: lrmd_new_event
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - pcmk__assert_alloc
    linkageType: ''
    returnType: lrmd_event_data_t*
    signature: 'lrmd_event_data_t *lrmd_new_event(const char *rsc_id, const char *task,
      guint interval_ms) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lrmd_ipc_connect
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1693,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1697,1
    - Dst: lrmd_tls_connect
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1696,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1700,1
    - Dst: lrmd_handshake
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1706,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1707,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 3
    argNames:
    - lrmd
    - name
    - fd
    argTypes:
    - lrmd_t*
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 1711
      start: 1685
    functionDepth: 0
    functionLinenumber: 1685
    functionLinenumberEnd: 1711
    functionName: lrmd_api_connect
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - lrmd_ipc_connect
    - pcmk_rc2legacy
    - lrmd_handshake
    - lrmd_tls_connect
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_api_connect(lrmd_t * lrmd, const char *name, int *fd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1860,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1862,1
    - Dst: lrmd_send_command
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1864,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1865,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1863,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - lrmd
    - rsc_id
    - options
    argTypes:
    - lrmd_t*
    - char*
    - enum lrmd_call_options
    constantsTouched: []
    func_position:
      end: 1868
      start: 1856
    functionDepth: 0
    functionLinenumber: 1856
    functionLinenumberEnd: 1868
    functionName: lrmd_api_unregister_rsc
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - lrmd_send_command
    - crm_xml_add
    - pcmk__xml_free
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_api_unregister_rsc(lrmd_t * lrmd, const char *rsc_id,
      enum lrmd_call_options options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:210,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:218,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:217,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:216,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:215,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:219,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:220,1
    - Dst: pcmk__str_table_dup
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - event
    argTypes:
    - lrmd_event_data_t*
    constantsTouched: []
    func_position:
      end: 237
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 237
    functionName: lrmd_copy_event
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - pcmk__assert_alloc
    - pcmk__str_table_dup
    linkageType: ''
    returnType: lrmd_event_data_t*
    signature: 'lrmd_event_data_t *lrmd_copy_event(lrmd_event_data_t * event) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1719,1
    - Dst: report_async_connection_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1727,1
    - Dst: lrmd_api_connect
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1725,1
    - Dst: lrmd_tls_connect_async
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1731,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1732,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1735,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 3
    argNames:
    - lrmd
    - name
    - timeout
    argTypes:
    - lrmd_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1741
      start: 1713
    functionDepth: 0
    functionLinenumber: 1713
    functionLinenumberEnd: 1741
    functionName: lrmd_api_connect_async
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - lrmd_tls_connect_async
    - pcmk_rc2legacy
    - lrmd_api_connect
    - crm_err
    - report_async_connection_result
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_api_connect_async(lrmd_t * lrmd, const char *name,
      int timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1874,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1877,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1879,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1876,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1878,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - rsc_id
    - standard
    - provider
    - type
    argTypes:
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1881
      start: 1870
    functionDepth: 0
    functionLinenumber: 1870
    functionLinenumberEnd: 1881
    functionName: lrmd_new_rsc_info
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - pcmk__assert_alloc
    linkageType: ''
    returnType: lrmd_rsc_info_t*
    signature: 'lrmd_rsc_info_t *lrmd_new_rsc_info(const char *rsc_id, const char
      *standard, const char *provider, const char *type) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1967,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1968,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1974,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1969,1
    - Dst: lrmd_send_command
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1971,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1981,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1985,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1987,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1989,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1992,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2010,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2008,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2005,1
    - Dst: strdup
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2004,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2011,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2014,1
    - Dst: calloc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1998,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1996,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 5
    argNames:
    - lrmd
    - rsc_id
    - timeout_ms
    - options
    - output
    argTypes:
    - lrmd_t*
    - char*
    - int
    - enum lrmd_call_options
    - GList**
    constantsTouched: []
    func_position:
      end: 2016
      start: 1952
    functionDepth: 0
    functionLinenumber: 1952
    functionLinenumberEnd: 2016
    functionName: lrmd_api_get_recurring_ops
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_first_child
    - calloc
    - crm_xml_add
    - pcmk__xml_free
    - g_list_prepend
    - pcmk__xe_next
    - crm_element_value
    - strdup
    - lrmd_send_command
    - crm_element_value_copy
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_api_get_recurring_ops(lrmd_t *lrmd, const char *rsc_id,
      int timeout_ms, enum lrmd_call_options options, GList **output) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2463,1
    - Dst: lrmd__new
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2463,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 3
    argNames:
    - nodename
    - server
    - port
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2465
      start: 2458
    functionDepth: 0
    functionLinenumber: 2458
    functionLinenumberEnd: 2465
    functionName: lrmd_remote_api_new
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - lrmd__new
    linkageType: ''
    returnType: lrmd_t*
    signature: 'lrmd_t *lrmd_remote_api_new(const char *nodename, const char *server,
      int port) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - lrmd
    - callback
    argTypes:
    - lrmd_t*
    - lrmd_event_callback
    constantsTouched: []
    func_position:
      end: 2025
      start: 2019
    functionDepth: 0
    functionLinenumber: 2019
    functionLinenumberEnd: 2025
    functionName: lrmd_api_set_callback
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void lrmd_api_set_callback(lrmd_t * lrmd, lrmd_event_callback
      callback) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2482,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2484,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2483,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2477,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2485,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2486,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2487,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2489,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - lrmd
    argTypes:
    - lrmd_t*
    constantsTouched: []
    func_position:
      end: 2490
      start: 2467
    functionDepth: 0
    functionLinenumber: 2467
    functionLinenumberEnd: 2490
    functionName: lrmd_api_delete
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void lrmd_api_delete(lrmd_t * lrmd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - key_cache
    argTypes:
    - struct key_cache_s*
    constantsTouched: []
    func_position:
      end: 1233
      start: 1229
    functionDepth: 0
    functionLinenumber: 1229
    functionLinenumberEnd: 1233
    functionName: key_is_cached
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static bool key_is_cached(struct key_cache_s *key_cache) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:112,1
    - Dst: strdup
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:113,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 2
    argNames:
    - head
    - value
    argTypes:
    - lrmd_list_t*
    - char*
    constantsTouched: []
    func_position:
      end: 127
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 127
    functionName: lrmd_list_add
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - strdup
    - pcmk__assert_alloc
    linkageType: ''
    returnType: lrmd_list_t*
    signature: 'static lrmd_list_t *lrmd_list_add(lrmd_list_t * head, const char *value) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1025,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1031,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1026,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1027,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1028,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1032,1
    - Dst: crm_element_value_ll
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1038,1
    - Dst: strdup
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1042,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1046,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1048,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1050,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1058,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1055,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1049,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1054,1
    - Dst: strdup
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1059,1
    - Dst: strdup
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1060,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1051,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - reply
    - native
    argTypes:
    - xmlNode*
    - lrmd_private_t*
    constantsTouched: []
    func_position:
      end: 1065
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1065
    functionName: process_lrmd_handshake_reply
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - crm_trace
    - pcmk__str_eq
    - crm_element_value_ll
    - crm_element_value
    - strdup
    - crm_log_xml_err
    - crm_err
    - crm_element_value_int
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int process_lrmd_handshake_reply(xmlNode *reply, lrmd_private_t
      *native) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lrmd_handshake_hello_msg
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1102,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1112,1
    - Dst: send_remote_message
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1104,1
    - Dst: lrmd_api_disconnect
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - lrmd
    - name
    argTypes:
    - lrmd_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1114
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1114
    functionName: lrmd_handshake_async
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - lrmd_handshake_hello_msg
    - pcmk__xml_free
    - lrmd_api_disconnect
    - send_remote_message
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_handshake_async(lrmd_t * lrmd, const char *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - key_cache
    argTypes:
    - struct key_cache_s*
    constantsTouched: []
    func_position:
      end: 1239
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1239
    functionName: key_cache_expired
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - time
    linkageType: ''
    returnType: bool
    signature: 'static bool key_cache_expired(struct key_cache_s *key_cache) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:138,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - head
    argTypes:
    - lrmd_list_t*
    constantsTouched: []
    func_position:
      end: 142
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 142
    functionName: lrmd_list_freeall
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void lrmd_list_freeall(lrmd_list_t * head) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lrmd_handshake_hello_msg
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1073,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1078,1
    - Dst: lrmd_send_xml
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1075,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1081,1
    - Dst: process_lrmd_handshake_reply
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1084,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1087,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1088,1
    - Dst: lrmd_api_disconnect
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1091,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - lrmd
    - name
    argTypes:
    - lrmd_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1095
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1095
    functionName: lrmd_handshake
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - lrmd_handshake_hello_msg
    - lrmd_send_xml
    - crm_perror
    - lrmd_api_disconnect
    - crm_err
    - pcmk__xml_free
    - process_lrmd_handshake_reply
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_handshake(lrmd_t * lrmd, const char *name) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1127,1
    - Dst: pcmk__ipc_fd
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1135,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1138,1
    - Dst: crm_ipc_new
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1131,1
    - Dst: pcmk__connect_generic_ipc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1133,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1138,1
    - Dst: mainloop_add_ipc_client
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1143,1
    - Dst: mainloop_get_ipc_client
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1144,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1148,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - lrmd
    - fd
    argTypes:
    - lrmd_t*
    - int*
    constantsTouched: []
    func_position:
      end: 1153
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1153
    functionName: lrmd_ipc_connect
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_ipc_new
    - pcmk__ipc_fd
    - pcmk_rc_str
    - pcmk__connect_generic_ipc
    - crm_info
    - mainloop_get_ipc_client
    - crm_err
    - mainloop_add_ipc_client
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_ipc_connect(lrmd_t * lrmd, int *fd) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_gnutls_datum
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1244,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - key_cache
    argTypes:
    - struct key_cache_s*
    constantsTouched: []
    func_position:
      end: 1250
      start: 1241
    functionDepth: 0
    functionLinenumber: 1241
    functionLinenumberEnd: 1250
    functionName: clear_key_cache
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - clear_gnutls_datum
    linkageType: ''
    returnType: void
    signature: 'static void clear_key_cache(struct key_cache_s *key_cache) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: services__copy_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2510,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2516,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2517,1
    - Dst: pcmk__set_result_output
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2511,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - action
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 2518
      start: 2504
    functionDepth: 0
    functionLinenumber: 2504
    functionLinenumberEnd: 2518
    functionName: metadata_complete
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__set_result_output
    - free
    - services__copy_result
    - pcmk__reset_result
    linkageType: ''
    returnType: void
    signature: 'static void metadata_complete(svc_action_t *action) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - lrmd
    - rc
    argTypes:
    - lrmd_t*
    - int
    constantsTouched: []
    func_position:
      end: 1370
      start: 1358
    functionDepth: 0
    functionLinenumber: 1358
    functionLinenumberEnd: 1370
    functionName: report_async_connection_result
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void report_async_connection_result(lrmd_t * lrmd, int rc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_warn
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1377,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1381,1
    - Dst: gnutls_strerror
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1380,1
    - Dst: report_async_connection_result
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1381,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1380,1
    - Dst: gnutls_deinit
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1383,1
    - Dst: lrmd_tls_connection_destroy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - lrmd
    - tls_rc
    - rc
    argTypes:
    - lrmd_t*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1386
      start: 1372
    functionDepth: 0
    functionLinenumber: 1372
    functionLinenumberEnd: 1386
    functionName: tls_handshake_failed
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - gnutls_strerror
    - pcmk_rc2legacy
    - pcmk_rc_str
    - lrmd_tls_connection_destroy
    - crm_warn
    - report_async_connection_result
    - gnutls_deinit
    linkageType: ''
    returnType: void
    signature: 'static void tls_handshake_failed(lrmd_t *lrmd, int tls_rc, int rc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:149,1
    - Dst: strdup
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:151,1
    - Dst: strdup
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:150,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 3
    argNames:
    - head
    - key
    - value
    argTypes:
    - lrmd_key_value_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 165
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 165
    functionName: lrmd_key_value_add
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - strdup
    - pcmk__assert_alloc
    linkageType: ''
    returnType: lrmd_key_value_t*
    signature: 'lrmd_key_value_t *lrmd_key_value_add(lrmd_key_value_t * head, const
      char *key, const char *value) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_ipc_send
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:841,1
    - Dst: send_remote_message
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:844,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:851,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:854,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 2
    argNames:
    - lrmd
    - msg
    argTypes:
    - lrmd_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 860
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 860
    functionName: lrmd_send_xml_no_reply
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - send_remote_message
    - crm_ipc_send
    - crm_err
    - pcmk_rc2legacy
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_send_xml_no_reply(lrmd_t * lrmd, xmlNode * msg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1158,1
    - Dst: memcpy
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1163,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1161,1
    - Dst: gnutls_malloc
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - dest
    - source
    argTypes:
    - gnutls_datum_t*
    - gnutls_datum_t*
    constantsTouched: []
    func_position:
      end: 1165
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1165
    functionName: copy_gnutls_datum
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - memcpy
    - gnutls_malloc
    - pcmk__mem_assert
    linkageType: ''
    returnType: void
    signature: 'static void copy_gnutls_datum(gnutls_datum_t *dest, gnutls_datum_t
      *source) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - lrmd
    argTypes:
    - lrmd_t*
    constantsTouched: []
    func_position:
      end: 2671
      start: 2661
    functionDepth: 0
    functionLinenumber: 2661
    functionLinenumberEnd: 2671
    functionName: lrmd__uptime
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: 'time_t lrmd__uptime(lrmd_t *lrmd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:174,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:176,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - head
    argTypes:
    - lrmd_key_value_t*
    constantsTouched: []
    func_position:
      end: 179
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 179
    functionName: lrmd_key_value_freeall
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void lrmd_key_value_freeall(lrmd_key_value_t * head) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_ipc_connected
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:869,1
    - Dst: remote_executor_connected
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:871,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:873,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 1
    argNames:
    - lrmd
    argTypes:
    - lrmd_t*
    constantsTouched: []
    func_position:
      end: 877
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 877
    functionName: lrmd_api_is_connected
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - remote_executor_connected
    - crm_err
    - crm_ipc_connected
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_api_is_connected(lrmd_t * lrmd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:1170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - datum
    argTypes:
    - gnutls_datum_t*
    constantsTouched: []
    func_position:
      end: 1173
      start: 1167
    functionDepth: 0
    functionLinenumber: 1167
    functionLinenumberEnd: 1173
    functionName: clear_gnutls_datum
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - gnutls_free
    linkageType: ''
    returnType: void
    signature: 'static void clear_gnutls_datum(gnutls_datum_t *datum) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2644,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_client.c:2647,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - event
    argTypes:
    - lrmd_event_data_t*
    constantsTouched: []
    func_position:
      end: 2649
      start: 2637
    functionDepth: 0
    functionLinenumber: 2637
    functionLinenumberEnd: 2649
    functionName: lrmd__reset_result
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_client.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void lrmd__reset_result(lrmd_event_data_t *event) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:31,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:32,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:33,1
    - Dst: lrmd_internal_proxy_send
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:34,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - lrmd
    - session_id
    argTypes:
    - lrmd_t*
    - char*
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: remote_proxy_notify_destroy
    functionSourceFile: /src/pacemaker/lib/lrmd/proxy_common.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - lrmd_internal_proxy_send
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void remote_proxy_notify_destroy(lrmd_t *lrmd, const char *session_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:90,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:97,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:93,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:94,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:95,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:98,1
    - Dst: lrmd_internal_proxy_send
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:100,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - proxy
    - msg
    - msg_id
    argTypes:
    - remote_proxy_t*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 102
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 102
    functionName: remote_proxy_relay_response
    functionSourceFile: /src/pacemaker/lib/lrmd/proxy_common.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xml_copy
    - crm_xml_add
    - pcmk__xml_free
    - crm_xml_add_int
    - lrmd_internal_proxy_send
    linkageType: ''
    returnType: void
    signature: 'void remote_proxy_relay_response(remote_proxy_t *proxy, xmlNode *msg,
      int msg_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:62,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:65,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:63,1
    - Dst: lrmd_internal_proxy_send
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - lrmd
    argTypes:
    - lrmd_t*
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: remote_proxy_nack_shutdown
    functionSourceFile: /src/pacemaker/lib/lrmd/proxy_common.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - lrmd_internal_proxy_send
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'void remote_proxy_nack_shutdown(lrmd_t *lrmd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:122,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:125,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:124,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 126
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 126
    functionName: remote_proxy_free
    functionSourceFile: /src/pacemaker/lib/lrmd/proxy_common.c
    functionUses: []
    functionsReached:
    - free
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void remote_proxy_free(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:162,1
    - Dst: remote_proxy_notify_destroy
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:168,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 173
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 173
    functionName: remote_proxy_disconnected
    functionSourceFile: /src/pacemaker/lib/lrmd/proxy_common.c
    functionUses: []
    functionsReached:
    - remote_proxy_notify_destroy
    - g_hash_table_remove
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void remote_proxy_disconnected(gpointer userdata) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:72,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:75,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:78,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:76,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:79,1
    - Dst: crm_log_xml_explicit
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:81,1
    - Dst: lrmd_internal_proxy_send
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:82,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - proxy
    - msg
    argTypes:
    - remote_proxy_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 84
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 84
    functionName: remote_proxy_relay_event
    functionSourceFile: /src/pacemaker/lib/lrmd/proxy_common.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xml_copy
    - crm_log_xml_explicit
    - crm_xml_add
    - pcmk__xml_free
    - lrmd_internal_proxy_send
    linkageType: ''
    returnType: void
    signature: 'void remote_proxy_relay_event(remote_proxy_t *proxy, xmlNode *msg) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:110,1
    - Dst: mainloop_del_ipc_client
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - remote_proxy_t*
    constantsTouched: []
    func_position:
      end: 115
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 115
    functionName: remote_proxy_end_session
    functionSourceFile: /src/pacemaker/lib/lrmd/proxy_common.c
    functionUses: []
    functionsReached:
    - mainloop_del_ipc_client
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void remote_proxy_end_session(remote_proxy_t *proxy) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:136,1
    - Dst: crm_ipc_buffer_flags
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:142,1
    - Dst: remote_proxy_relay_response
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:145,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:144,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:138,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:149,1
    - Dst: remote_proxy_relay_event
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:150,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - buffer
    - length
    - userdata
    argTypes:
    - char*
    - ssize_t
    - gpointer
    constantsTouched: []
    func_position:
      end: 154
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 154
    functionName: remote_proxy_dispatch
    functionSourceFile: /src/pacemaker/lib/lrmd/proxy_common.c
    functionUses: []
    functionsReached:
    - remote_proxy_relay_event
    - crm_ipc_buffer_flags
    - pcmk__xml_free
    - pcmk__xml_parse
    - remote_proxy_relay_response
    - crm_warn
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int remote_proxy_dispatch(const char *buffer, ssize_t length, gpointer
      userdata) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:182,1
    - Dst: strdup
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:190,1
    - Dst: strdup
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:189,1
    - Dst: remote_proxy_notify_destroy
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:183,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:187,1
    - Dst: pcmk__parse_server
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:193,1
    - Dst: pcmk__parse_server
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:194,1
    - Dst: mainloop_add_ipc_client
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:199,1
    - Dst: mainloop_get_ipc_client
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:200,1
    - Dst: remote_proxy_free
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:202,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:210,1
    - Dst: remote_proxy_notify_destroy
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:203,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:208,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 5
    argNames:
    - lrmd
    - proxy_callbacks
    - node_name
    - session_id
    - channel
    argTypes:
    - lrmd_t*
    - struct ipc_client_callbacks*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 213
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 213
    functionName: remote_proxy_new
    functionSourceFile: /src/pacemaker/lib/lrmd/proxy_common.c
    functionUses: []
    functionsReached:
    - crm_trace
    - pcmk__assert_alloc
    - remote_proxy_free
    - pcmk__parse_server
    - mainloop_get_ipc_client
    - strdup
    - remote_proxy_notify_destroy
    - g_hash_table_insert
    - crm_err
    - mainloop_add_ipc_client
    linkageType: ''
    returnType: remote_proxy_t*
    signature: 'remote_proxy_t *remote_proxy_new(lrmd_t *lrmd, struct ipc_client_callbacks
      *proxy_callbacks, const char *node_name, const char *session_id, const char
      *channel) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:218,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:228,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:219,1
    - Dst: remote_proxy_notify_destroy
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:249,1
    - Dst: remote_proxy_end_session
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:258,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:267,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:273,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:274,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:278,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:279,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:327,1
    - Dst: remote_proxy_relay_response
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:326,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:220,1
    - Dst: remote_proxy_end_session
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:255,1
    - Dst: crm_ipc_connected
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:257,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:266,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:270,1
    - Dst: pcmk__update_acl_user
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:271,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:284,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:290,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:297,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:303,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:319,1
    - Dst: crm_ipc_name
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:322,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:313,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:321,1
    - Dst: crm_ipc_name
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:319,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:230,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:233,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:239,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:243,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:254,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:264,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:277,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:279,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:293,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:298,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:331,1
    - Dst: crm_ipc_name
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:304,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:300,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:227,1
    - Dst: remote_proxy_end_session
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:234,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:236,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:245,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:262,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:241,1
    - Dst: crm_ipc_send
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:287,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:292,1
    - Dst: crm_ipc_name
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:293,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:296,1
    - Dst: crm_ipc_send
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:316,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:318,1
    - Dst: crm_ipc_name
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:314,1
    - Dst: remote_proxy_relay_response
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:299,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 87
    argCount: 3
    argNames:
    - lrmd
    - node_name
    - msg
    argTypes:
    - lrmd_t*
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 333
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 333
    functionName: remote_proxy_cb
    functionSourceFile: /src/pacemaker/lib/lrmd/proxy_common.c
    functionUses: []
    functionsReached:
    - pcmk__update_acl_user
    - pcmk__xe_first_child
    - crm_ipc_connected
    - remote_proxy_notify_destroy
    - pcmk__xe_create
    - g_hash_table_lookup
    - crm_ipc_send
    - pcmk__xe_get_flags
    - pcmk_is_set
    - pcmk_rc_str
    - crm_element_value
    - pcmk__assert
    - remote_proxy_relay_response
    - crm_err
    - CRM_CHECK
    - pcmk__str_eq
    - crm_xml_add_int
    - crm_warn
    - pcmk__str_any_of
    - pcmk_strerror
    - crm_trace
    - crm_xml_add
    - pcmk__xml_free
    - crm_ipc_name
    - remote_proxy_end_session
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'void remote_proxy_cb(lrmd_t *lrmd, const char *node_name, xmlNode
      *msg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:47,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:50,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:48,1
    - Dst: lrmd_internal_proxy_send
      Src: /src/pacemaker/lib/lrmd/proxy_common.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - lrmd
    argTypes:
    - lrmd_t*
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: remote_proxy_ack_shutdown
    functionSourceFile: /src/pacemaker/lib/lrmd/proxy_common.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - lrmd_internal_proxy_send
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'void remote_proxy_ack_shutdown(lrmd_t *lrmd) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:32,1
    - Dst: lrmd_key_value_add
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:33,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - head
    - name
    - value
    argTypes:
    - lrmd_key_value_t*
    - enum pcmk__alert_keys_e
    - char*
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: alert_key2param
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_alerts.c
    functionUses: []
    functionsReached:
    - crm_trace
    - lrmd_key_value_add
    linkageType: ''
    returnType: lrmd_key_value_t*
    signature: 'static lrmd_key_value_t *alert_key2param(lrmd_key_value_t *head, enum
      pcmk__alert_keys_e name, const char *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:51,1
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:53,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - head
    - name
    - value
    argTypes:
    - lrmd_key_value_t*
    - enum pcmk__alert_keys_e
    - guint
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: alert_key2param_ms
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_alerts.c
    functionUses: []
    functionsReached:
    - alert_key2param
    - free
    - crm_strdup_printf
    linkageType: ''
    returnType: lrmd_key_value_t*
    signature: 'static lrmd_key_value_t *alert_key2param_ms(lrmd_key_value_t *head,
      enum pcmk__alert_keys_e name, guint value) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:89,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:98,1
    - Dst: g_strv_length
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:95,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - list
    - value
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 104
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 104
    functionName: is_target_alert
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_alerts.c
    functionUses: []
    functionsReached:
    - g_strv_length
    - CRM_CHECK
    - strcmp
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean is_target_alert(char **list, const char *value) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:197,1
    - Dst: pcmk__alert_flag2text
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:126,1
    - Dst: g_list_next
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:137,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:143,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:144,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:160,1
    - Dst: lrmd_key_value_add
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:165,1
    - Dst: pcmk__time_format_hr
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:172,1
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:187,1
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:175,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:186,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:198,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:206,1
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:132,1
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:133,1
    - Dst: is_target_alert
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:150,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:152,1
    - Dst: pcmk__time_hr_now
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:158,1
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:168,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:178,1
    - Dst: snprintf
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:181,1
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:183,1
    - Dst: alert_envvar2params
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:192,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 5
    argNames:
    - lrmd
    - alert_list
    - kind
    - attr_name
    - params
    argTypes:
    - lrmd_t*
    - GList*
    - enum pcmk__alert_flags
    - char*
    - lrmd_key_value_t*
    constantsTouched: []
    func_position:
      end: 213
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 213
    functionName: exec_alert_list
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_alerts.c
    functionUses: []
    functionsReached:
    - pcmk__alert_flag2text
    - pcmk__time_format_hr
    - pcmk_strerror
    - snprintf
    - lrmd_key_value_add
    - alert_key2param
    - pcmk__time_hr_now
    - pcmk_is_set
    - free
    - alert_envvar2params
    - crm_err
    - is_target_alert
    - crm_info
    - crm_trace
    - g_list_next
    linkageType: ''
    returnType: int
    signature: 'static int exec_alert_list(lrmd_t *lrmd, const GList *alert_list,
      enum pcmk__alert_flags kind, const char *attr_name, lrmd_key_value_t *params) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:315,1
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:317,1
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:316,1
    - Dst: exec_alert_list
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:320,1
    - Dst: alert_key2param_int
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:318,1
    - Dst: lrmd_key_value_freeall
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:321,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 6
    argNames:
    - lrmd
    - alert_list
    - target
    - task
    - desc
    - op_rc
    argTypes:
    - lrmd_t*
    - GList*
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 323
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 323
    functionName: lrmd_send_fencing_alert
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_alerts.c
    functionUses: []
    functionsReached:
    - alert_key2param_int
    - lrmd_key_value_freeall
    - exec_alert_list
    - alert_key2param
    linkageType: ''
    returnType: int
    signature: 'int lrmd_send_fencing_alert(lrmd_t *lrmd, const GList *alert_list,
      const char *target, const char *task, const char *desc, int op_rc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:64,1
    - Dst: lrmd_key_value_add
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: set_ev_kv
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_alerts.c
    functionUses: []
    functionsReached:
    - crm_trace
    - lrmd_key_value_add
    linkageType: ''
    returnType: void
    signature: 'static void set_ev_kv(gpointer key, gpointer value, gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:40,1
    - Dst: free
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:43,1
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - head
    - name
    - value
    argTypes:
    - lrmd_key_value_t*
    - enum pcmk__alert_keys_e
    - int
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: alert_key2param_int
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_alerts.c
    functionUses: []
    functionsReached:
    - free
    - pcmk__itoa
    - alert_key2param
    linkageType: ''
    returnType: lrmd_key_value_t*
    signature: 'static lrmd_key_value_t *alert_key2param_int(lrmd_key_value_t *head,
      enum pcmk__alert_keys_e name, int value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:74,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 2
    argNames:
    - head
    - entry
    argTypes:
    - lrmd_key_value_t*
    - pcmk__alert_t*
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: alert_envvar2params
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_alerts.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    linkageType: ''
    returnType: lrmd_key_value_t*
    signature: 'static lrmd_key_value_t *alert_envvar2params(lrmd_key_value_t *head,
      const pcmk__alert_t *entry) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:242,1
    - Dst: alert_key2param_int
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:243,1
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:245,1
    - Dst: exec_alert_list
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:248,1
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:244,1
    - Dst: lrmd_key_value_freeall
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:250,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 6
    argNames:
    - lrmd
    - alert_list
    - node
    - nodeid
    - attr_name
    - attr_value
    argTypes:
    - lrmd_t*
    - GList*
    - char*
    - uint32_t
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 252
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 252
    functionName: lrmd_send_attribute_alert
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_alerts.c
    functionUses: []
    functionsReached:
    - alert_key2param_int
    - lrmd_key_value_freeall
    - exec_alert_list
    - alert_key2param
    linkageType: ''
    returnType: int
    signature: 'int lrmd_send_attribute_alert(lrmd_t *lrmd, const GList *alert_list,
      const char *node, uint32_t nodeid, const char *attr_name, const char *attr_value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:279,1
    - Dst: alert_key2param_int
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:281,1
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:280,1
    - Dst: exec_alert_list
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:283,1
    - Dst: lrmd_key_value_freeall
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:284,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 5
    argNames:
    - lrmd
    - alert_list
    - node
    - nodeid
    - state
    argTypes:
    - lrmd_t*
    - GList*
    - char*
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 286
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 286
    functionName: lrmd_send_node_alert
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_alerts.c
    functionUses: []
    functionsReached:
    - alert_key2param_int
    - lrmd_key_value_freeall
    - exec_alert_list
    - alert_key2param
    linkageType: ''
    returnType: int
    signature: 'int lrmd_send_node_alert(lrmd_t *lrmd, const GList *alert_list, const
      char *node, uint32_t nodeid, const char *state) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rsc_op_expected_rc
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:350,1
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:362,1
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:364,1
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:363,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:352,1
    - Dst: alert_key2param_ms
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:365,1
    - Dst: alert_key2param_int
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:367,1
    - Dst: alert_key2param_int
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:368,1
    - Dst: alert_key2param_int
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:369,1
    - Dst: alert_key2param_int
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:375,1
    - Dst: alert_key2param_int
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:378,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:384,1
    - Dst: lrmd_key_value_freeall
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:391,1
    - Dst: exec_alert_list
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:390,1
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:383,1
    - Dst: alert_key2param
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:386,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/lib/lrmd/lrmd_alerts.c:387,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 4
    argNames:
    - lrmd
    - alert_list
    - node
    - op
    argTypes:
    - lrmd_t*
    - GList*
    - char*
    - lrmd_event_data_t*
    constantsTouched: []
    func_position:
      end: 393
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 393
    functionName: lrmd_send_resource_alert
    functionSourceFile: /src/pacemaker/lib/lrmd/lrmd_alerts.c
    functionUses: []
    functionsReached:
    - rsc_op_expected_rc
    - pcmk_exec_status_str
    - alert_key2param_int
    - crm_exit_str
    - pcmk__str_eq
    - alert_key2param_ms
    - alert_key2param
    - lrmd_key_value_freeall
    - exec_alert_list
    linkageType: ''
    returnType: int
    signature: 'int lrmd_send_resource_alert(lrmd_t *lrmd, const GList *alert_list,
      const char *node, const lrmd_event_data_t *op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/cib/cib_utils.c:36,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/cib/cib_utils.c:37,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/cib/cib_utils.c:38,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - cib
    - admin_epoch
    - epoch
    - updates
    argTypes:
    - xmlNode*
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 41
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 41
    functionName: cib_version_details
    functionSourceFile: /src/pacemaker/lib/cib/cib_utils.c
    functionUses: []
    functionsReached:
    - crm_element_value_int
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean cib_version_details(xmlNode * cib, int *admin_epoch, int
      *epoch, int *updates) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_acl_required
      Src: /src/pacemaker/lib/cib/cib_utils.c:157,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/cib/cib_utils.c:163,1
    - Dst: cib_read_config
      Src: /src/pacemaker/lib/cib/cib_utils.c:161,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/cib/cib_utils.c:159,1
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/lib/cib/cib_utils.c:162,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/cib/cib_utils.c:164,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_utils.c:167,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - xml
    - user
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 169
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 169
    functionName: cib_acl_enabled
    functionSourceFile: /src/pacemaker/lib/cib/cib_utils.c
    functionUses: []
    functionsReached:
    - crm_trace
    - crm_is_true
    - cib_read_config
    - g_hash_table_destroy
    - pcmk__strkey_table
    - pcmk__cluster_option
    - pcmk_acl_required
    linkageType: ''
    returnType: bool
    signature: 'static bool cib_acl_enabled(xmlNode *xml, const char *user) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/cib/cib_utils.c:78,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/cib/cib_utils.c:90,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cib/cib_utils.c:89,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_utils.c:82,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/cib/cib_utils.c:86,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/cib/cib_utils.c:91,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/cib/cib_utils.c:92,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/cib/cib_utils.c:95,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/cib/cib_utils.c:96,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_utils.c:99,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - msg
    - patchset
    argTypes:
    - xmlNode*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 103
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 103
    functionName: cib__get_notify_patchset
    functionSourceFile: /src/pacemaker/lib/cib/cib_utils.c
    functionUses: []
    functionsReached:
    - crm_log_xml_debug
    - pcmk__xe_first_child
    - pcmk__assert
    - crm_warn
    - pcmk_strerror
    - crm_err
    - crm_element_value_int
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int cib__get_notify_patchset(const xmlNode *msg, const xmlNode **patchset) '
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: cib_acl_enabled
      Src: /src/pacemaker/lib/cib/cib_utils.c:235,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/cib/cib_utils.c:271,1
    - Dst: pcmk__log_xml_changes
      Src: /src/pacemaker/lib/cib/cib_utils.c:427,1
    - Dst: pcmk__log_xml_patchset
      Src: /src/pacemaker/lib/cib/cib_utils.c:432,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/lib/cib/cib_utils.c:405,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/cib/cib_utils.c:291,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/cib/cib_utils.c:287,1
    - Dst: pcmk__enable_acl
      Src: /src/pacemaker/lib/cib/cib_utils.c:313,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/cib/cib_utils.c:445,1
    - Dst: pcmk__warn_if_schema_deprecated
      Src: /src/pacemaker/lib/cib/cib_utils.c:493,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/lib/cib/cib_utils.c:518,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_utils.c:548,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_utils.c:234,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_utils.c:239,1
    - Dst: pcmk__xml_doc_all_flags_set
      Src: /src/pacemaker/lib/cib/cib_utils.c:342,1
    - Dst: pcmk__xml_commit_changes
      Src: /src/pacemaker/lib/cib/cib_utils.c:344,1
    - Dst: save_xml_to_file
      Src: /src/pacemaker/lib/cib/cib_utils.c:451,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_utils.c:504,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/lib/cib/cib_utils.c:404,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/cib/cib_utils.c:388,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_utils.c:245,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_utils.c:523,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_utils.c:294,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/cib/cib_utils.c:400,1
    - Dst: pcmk__xe_add_last_written
      Src: /src/pacemaker/lib/cib/cib_utils.c:492,1
    - Dst: save_xml_to_file
      Src: /src/pacemaker/lib/cib/cib_utils.c:452,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_utils.c:516,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_utils.c:542,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_utils.c:551,1
    - Dst: pcmk__xml_mark_changes
      Src: /src/pacemaker/lib/cib/cib_utils.c:348,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_utils.c:459,1
    - Dst: should_copy_cib
      Src: /src/pacemaker/lib/cib/cib_utils.c:298,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_utils.c:343,1
    - Dst: xml_acl_denied
      Src: /src/pacemaker/lib/cib/cib_utils.c:359,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/cib/cib_utils.c:389,1
    - Dst: time
      Src: /src/pacemaker/lib/cib/cib_utils.c:416,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/lib/cib/cib_utils.c:512,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/cib/cib_utils.c:498,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_utils.c:402,1
    - Dst: pcmk__xml_commit_changes
      Src: /src/pacemaker/lib/cib/cib_utils.c:428,1
    - Dst: patchset_process_digest
      Src: /src/pacemaker/lib/cib/cib_utils.c:431,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/cib/cib_utils.c:433,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_utils.c:552,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_utils.c:360,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/cib/cib_utils.c:456,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_utils.c:392,1
    - Dst: pcmk__strip_xml_text
      Src: /src/pacemaker/lib/cib/cib_utils.c:412,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_utils.c:243,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/cib/cib_utils.c:307,1
    - Dst: pcmk__enable_acl
      Src: /src/pacemaker/lib/cib/cib_utils.c:346,1
    - Dst: xml_acl_disable
      Src: /src/pacemaker/lib/cib/cib_utils.c:353,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_utils.c:540,1
    - Dst: pcmk__xml_doc_set_flags
      Src: /src/pacemaker/lib/cib/cib_utils.c:330,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_utils.c:377,1
    - Dst: xml_create_patchset
      Src: /src/pacemaker/lib/cib/cib_utils.c:424,1
    - Dst: save_xml_to_file
      Src: /src/pacemaker/lib/cib/cib_utils.c:453,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_utils.c:500,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_utils.c:510,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_utils.c:244,1
    - Dst: xml_acl_filtered_copy
      Src: /src/pacemaker/lib/cib/cib_utils.c:263,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_utils.c:350,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_utils.c:373,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_utils.c:454,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/cib/cib_utils.c:379,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/lib/cib/cib_utils.c:523,1
    - Dst: pcmk__configured_schema_validates
      Src: /src/pacemaker/lib/cib/cib_utils.c:525,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_utils.c:238,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_utils.c:306,1
    - Dst: save_xml_to_file
      Src: /src/pacemaker/lib/cib/cib_utils.c:450,1
    - Dst: xml_acl_filtered_copy
      Src: /src/pacemaker/lib/cib/cib_utils.c:537,1
    - Dst: pcmk__xml_doc_set_flags
      Src: /src/pacemaker/lib/cib/cib_utils.c:311,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/lib/cib/cib_utils.c:394,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/lib/cib/cib_utils.c:395,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_utils.c:486,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_utils.c:499,1
    - Dst: cib_acl_enabled
      Src: /src/pacemaker/lib/cib/cib_utils.c:536,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/cib/cib_utils.c:399,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_utils.c:242,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/cib/cib_utils.c:327,1
    - Dst: pcmk__enable_acl
      Src: /src/pacemaker/lib/cib/cib_utils.c:332,1
    - Dst: xml_apply_patchset
      Src: /src/pacemaker/lib/cib/cib_utils.c:446,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_utils.c:456,1
    - Dst: pcmk__check_feature_set
      Src: /src/pacemaker/lib/cib/cib_utils.c:375,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_utils.c:411,1
    - Dst: pcmk__xml_commit_changes
      Src: /src/pacemaker/lib/cib/cib_utils.c:310,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/cib/cib_utils.c:443,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_utils.c:465,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_utils.c:485,1
    - Dst: pcmk__if_tracing
      Src: /src/pacemaker/lib/cib/cib_utils.c:438,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_utils.c:267,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/lib/cib/cib_utils.c:506,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 240
    argCount: 14
    argNames:
    - cib
    - op
    - call_options
    - fn
    - is_query
    - section
    - req
    - input
    - manage_counters
    - config_changed
    - current_cib
    - result_cib
    - diff
    - output
    argTypes:
    - cib_t*
    - char*
    - uint32_t
    - cib__op_fn_t
    - bool
    - char*
    - xmlNode*
    - xmlNode*
    - bool
    - bool*
    - xmlNode**
    - xmlNode**
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 554
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 554
    functionName: cib_perform_op
    functionSourceFile: /src/pacemaker/lib/cib/cib_utils.c
    functionUses: []
    functionsReached:
    - pcmk__xe_add_last_written
    - pcmk__xe_remove_attr
    - pcmk__btoa
    - pcmk__log_xml_changes
    - cib_acl_enabled
    - pcmk__xml_doc_set_flags
    - should_copy_cib
    - pcmk__enable_acl
    - pcmk__warn_if_schema_deprecated
    - xml_acl_disable
    - crm_log_xml_trace
    - pcmk__check_feature_set
    - pcmk__strip_xml_text
    - pcmk_legacy2rc
    - pcmk__xe_create
    - pcmk_rc2legacy
    - pcmk_is_set
    - crm_log_xml_warn
    - pcmk__xe_copy_attrs
    - crm_element_value
    - xml_acl_denied
    - pcmk_rc_str
    - crm_err
    - xml_apply_patchset
    - pcmk__log_xml_patchset
    - CRM_CHECK
    - xml_acl_filtered_copy
    - pcmk__xml_copy
    - pcmk__xml_doc_all_flags_set
    - pcmk__xml_commit_changes
    - pcmk__str_eq
    - pcmk__cmp_schemas_by_name
    - pcmk__if_tracing
    - patchset_process_digest
    - pcmk__xml_mark_changes
    - crm_trace
    - crm_debug
    - crm_xml_add
    - pcmk__configured_schema_validates
    - time
    - pcmk__xml_free
    - save_xml_to_file
    - xml_create_patchset
    - crm_element_value_int
    linkageType: ''
    returnType: int
    signature: 'int cib_perform_op(cib_t *cib, const char *op, uint32_t call_options,
      cib__op_fn_t fn, bool is_query, const char *section, xmlNode *req, xmlNode *input,
      bool manage_counters, bool *config_changed, xmlNode **current_cib, xmlNode **result_cib,
      xmlNode **diff, xmlNode **output) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/cib/cib_utils.c:640,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/cib/cib_utils.c:649,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_utils.c:652,1
    - Dst: validate_transaction_request
      Src: /src/pacemaker/lib/cib/cib_utils.c:642,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_utils.c:656,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_utils.c:657,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_utils.c:657,1
    - Dst: crm_log_xml_info
      Src: /src/pacemaker/lib/cib/cib_utils.c:658,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/cib/cib_utils.c:660,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - cib
    - request
    argTypes:
    - cib_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 661
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 661
    functionName: cib__extend_transaction
    functionSourceFile: /src/pacemaker/lib/cib/cib_utils.c
    functionUses: []
    functionsReached:
    - pcmk__xml_copy
    - pcmk__s
    - validate_transaction_request
    - crm_log_xml_info
    - pcmk_rc_str
    - pcmk_rc2legacy
    - crm_element_value
    - pcmk__assert
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int cib__extend_transaction(cib_t *cib, xmlNode *request) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/cib/cib_utils.c:672,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/cib/cib_utils.c:674,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/cib/cib_utils.c:675,1
    - Dst: cib__lookup_id
      Src: /src/pacemaker/lib/cib/cib_utils.c:678,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/cib/cib_utils.c:673,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_utils.c:681,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_utils.c:685,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_utils.c:694,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_utils.c:695,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/cib/cib_utils.c:699,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/cib/cib_utils.c:700,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_utils.c:708,1
    - Dst: remove_cib_op_callback
      Src: /src/pacemaker/lib/cib/cib_utils.c:705,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cib/cib_utils.c:699,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 4
    argNames:
    - cib
    - msg
    - call_id
    - rc
    argTypes:
    - cib_t*
    - xmlNode*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 709
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 709
    functionName: cib_native_callback
    functionSourceFile: /src/pacemaker/lib/cib/cib_utils.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_log_xml_debug
    - pcmk__s
    - pcmk__xe_first_child
    - remove_cib_op_callback
    - crm_warn
    - pcmk_strerror
    - cib__lookup_id
    - crm_trace
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'void cib_native_callback(cib_t * cib, xmlNode * msg, int call_id,
      int rc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_time_new
      Src: /src/pacemaker/lib/cib/cib_utils.c:753,1
    - Dst: pcmk__validate_cluster_options
      Src: /src/pacemaker/lib/cib/cib_utils.c:768,1
    - Dst: pcmk_unpack_nvpair_blocks
      Src: /src/pacemaker/lib/cib/cib_utils.c:763,1
    - Dst: g_hash_table_remove_all
      Src: /src/pacemaker/lib/cib/cib_utils.c:755,1
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/lib/cib/cib_utils.c:757,1
    - Dst: crm_time_free
      Src: /src/pacemaker/lib/cib/cib_utils.c:770,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - options
    - current_cib
    argTypes:
    - GHashTable*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 773
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 773
    functionName: cib_read_config
    functionSourceFile: /src/pacemaker/lib/cib/cib_utils.c
    functionUses: []
    functionsReached:
    - g_hash_table_remove_all
    - pcmk_find_cib_element
    - pcmk_unpack_nvpair_blocks
    - pcmk__validate_cluster_options
    - crm_time_new
    - crm_time_free
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean cib_read_config(GHashTable * options, xmlNode * current_cib) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/cib/cib_utils.c:818,1
    - Dst: pcmk__log_xml_patchset
      Src: /src/pacemaker/lib/cib/cib_utils.c:830,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/cib/cib_utils.c:821,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/cib/cib_utils.c:823,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/cib/cib_utils.c:820,1
    - Dst: cib_process_diff
      Src: /src/pacemaker/lib/cib/cib_utils.c:834,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_utils.c:838,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/cib/cib_utils.c:839,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_utils.c:842,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_utils.c:845,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 4
    argNames:
    - event
    - input
    - output
    - level
    argTypes:
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - int
    constantsTouched: []
    func_position:
      end: 851
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 851
    functionName: cib_apply_patch_event
    functionSourceFile: /src/pacemaker/lib/cib/cib_utils.c
    functionUses: []
    functionsReached:
    - pcmk__log_xml_patchset
    - crm_debug
    - pcmk_strerror
    - pcmk__xe_first_child
    - pcmk__xml_free
    - pcmk__assert
    - cib_process_diff
    - crm_trace
    - crm_element_value_int
    linkageType: ''
    returnType: int
    signature: 'int cib_apply_patch_event(xmlNode *event, xmlNode *input, xmlNode
      **output, int level) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xml_patch_versions
      Src: /src/pacemaker/lib/cib/cib_utils.c:50,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 7
    argNames:
    - diff
    - admin_epoch
    - epoch
    - updates
    - _admin_epoch
    - _epoch
    - _updates
    argTypes:
    - xmlNode*
    - int*
    - int*
    - int*
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 61
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 61
    functionName: cib_diff_version_details
    functionSourceFile: /src/pacemaker/lib/cib/cib_utils.c
    functionUses: []
    functionsReached:
    - xml_patch_versions
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean cib_diff_version_details(xmlNode * diff, int *admin_epoch,
      int *epoch, int *updates, int *_admin_epoch, int *_epoch, int *_updates) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_utils.c:562,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_utils.c:564,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_utils.c:572,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_utils.c:573,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_utils.c:571,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_utils.c:574,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_utils.c:575,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_utils.c:576,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/cib/cib_utils.c:577,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_utils.c:579,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/cib/cib_utils.c:580,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_utils.c:583,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/cib/cib_utils.c:585,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 9
    argNames:
    - cib
    - op
    - host
    - section
    - data
    - call_options
    - user_name
    - client_name
    - op_msg
    argTypes:
    - cib_t*
    - char*
    - char*
    - char*
    - xmlNode*
    - int
    - char*
    - char*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 589
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 589
    functionName: cib__create_op
    functionSourceFile: /src/pacemaker/lib/cib/cib_utils.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - CRM_CHECK
    - pcmk__xml_copy
    - crm_xml_add
    - crm_xml_add_int
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int cib__create_op(cib_t *cib, const char *op, const char *host, const
      char *section, xmlNode *data, int call_options, const char *user_name, const
      char *client_name, xmlNode **op_msg) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cib/cib_utils.c:719,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_utils.c:733,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cib/cib_utils.c:726,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_utils.c:723,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cib/cib_utils.c:730,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_utils.c:734,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_utils.c:738,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_utils.c:740,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 741
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 741
    functionName: cib_native_notify
    functionSourceFile: /src/pacemaker/lib/cib/cib_utils.c
    functionUses: []
    functionsReached:
    - crm_warn
    - pcmk__str_eq
    - crm_trace
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'void cib_native_notify(gpointer data, gpointer user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/pacemaker/lib/cib/cib_utils.c:793,1
    - Dst: delegate
      Src: /src/pacemaker/lib/cib/cib_utils.c:795,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 13
    argCount: 8
    argNames:
    - cib
    - op
    - host
    - section
    - data
    - output_data
    - call_options
    - user_name
    argTypes:
    - cib_t*
    - char*
    - char*
    - char*
    - xmlNode*
    - xmlNode**
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 796
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 796
    functionName: cib_internal_op
    functionSourceFile: /src/pacemaker/lib/cib/cib_utils.c
    functionUses: []
    functionsReached:
    - getenv
    - delegate
    linkageType: ''
    returnType: int
    signature: 'int cib_internal_op(cib_t * cib, const char *op, const char *host,
      const char *section, xmlNode * data, xmlNode ** output_data, int call_options,
      const char *user_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_utils.c:919,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/cib/cib_utils.c:920,1
    - Dst: pcmk__sleep_ms
      Src: /src/pacemaker/lib/cib/cib_utils.c:932,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_utils.c:933,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/cib/cib_utils.c:934,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - cib
    - type
    - attempts
    argTypes:
    - cib_t*
    - enum cib_conn_type
    - int
    constantsTouched: []
    func_position:
      end: 938
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 938
    functionName: cib__signon_attempts
    functionSourceFile: /src/pacemaker/lib/cib/cib_utils.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__plural_s
    - crm_trace
    - pcmk__sleep_ms
    linkageType: ''
    returnType: int
    signature: 'int cib__signon_attempts(cib_t *cib, enum cib_conn_type type, int
      attempts) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cib_delete
      Src: /src/pacemaker/lib/cib/cib_utils.c:950,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/cib/cib_utils.c:952,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - cib
    argTypes:
    - cib_t**
    constantsTouched: []
    func_position:
      end: 953
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 953
    functionName: cib__clean_up_connection
    functionSourceFile: /src/pacemaker/lib/cib/cib_utils.c
    functionUses: []
    functionsReached:
    - cib_delete
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int cib__clean_up_connection(cib_t **cib) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_utils.c:121,1
    - Dst: pcmk__highest_schema_name
      Src: /src/pacemaker/lib/cib/cib_utils.c:122,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_utils.c:122,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/cib/cib_utils.c:126,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_utils.c:128,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_utils.c:138,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_utils.c:132,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_utils.c:140,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_utils.c:143,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_utils.c:133,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_utils.c:120,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/cib/cib_utils.c:124,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/cib/cib_utils.c:125,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_utils.c:129,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_utils.c:131,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_utils.c:144,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_utils.c:139,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/cib/cib_utils.c:145,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_utils.c:134,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_utils.c:142,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - cib_epoch
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 150
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 150
    functionName: createEmptyCib
    functionSourceFile: /src/pacemaker/lib/cib/cib_utils.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__highest_schema_name
    - crm_xml_add
    - crm_xml_add_int
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *createEmptyCib(int cib_epoch) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_utils.c:184,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_utils.c:205,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_utils.c:197,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_utils.c:189,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - op
    - section
    - call_options
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 217
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 217
    functionName: should_copy_cib
    functionSourceFile: /src/pacemaker/lib/cib/cib_utils.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk__str_eq
    linkageType: ''
    returnType: bool
    signature: 'static bool should_copy_cib(const char *op, const char *section, int
      call_options) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_utils.c:602,1
    - Dst: cib__get_operation
      Src: /src/pacemaker/lib/cib/cib_utils.c:605,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_utils.c:603,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_utils.c:612,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_utils.c:613,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_utils.c:618,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - request
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 624
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 624
    functionName: validate_transaction_request
    functionSourceFile: /src/pacemaker/lib/cib/cib_utils.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - crm_err
    - cib__get_operation
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'static int validate_transaction_request(const xmlNode *request) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/cib/cib_utils.c:867,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/cib/cib_utils.c:884,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/cib/cib_utils.c:870,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/cib/cib_utils.c:873,1
    - Dst: log_signon_query_err
      Src: /src/pacemaker/lib/cib/cib_utils.c:888,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_utils.c:889,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/cib/cib_utils.c:897,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_utils.c:900,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/lib/cib/cib_utils.c:905,1
    - Dst: log_signon_query_err
      Src: /src/pacemaker/lib/cib/cib_utils.c:900,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 3
    argNames:
    - out
    - cib
    - cib_object
    argTypes:
    - pcmk__output_t*
    - cib_t**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 912
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 912
    functionName: cib__signon_query
    functionSourceFile: /src/pacemaker/lib/cib/cib_utils.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - log_signon_query_err
    - cib_new
    - pcmk_rc_str
    - pcmk__assert
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int cib__signon_query(pcmk__output_t *out, cib_t **cib, xmlNode **cib_object) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_client.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - cib
    - call_options
    argTypes:
    - cib_t*
    - int
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: cib_client_upgrade
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - cib_internal_op
    linkageType: ''
    returnType: int
    signature: 'static int cib_client_upgrade(cib_t * cib, int call_options) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_client.c:345,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_client.c:353,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_client.c:352,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/cib/cib_client.c:355,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - cib
    argTypes:
    - cib_t*
    constantsTouched: []
    func_position:
      end: 356
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 356
    functionName: cib_client_init_transaction
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk_rc2legacy
    - crm_err
    - pcmk_rc_str
    linkageType: ''
    returnType: int
    signature: 'static int cib_client_init_transaction(cib_t *cib) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/pacemaker/lib/cib/cib_client.c:422,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_client.c:424,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_client.c:430,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 431
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 431
    functionName: cib_destroy_op_callback
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - free
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: 'static void cib_destroy_op_callback(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/pacemaker/lib/cib/cib_client.c:532,1
    - Dst: setenv
      Src: /src/pacemaker/lib/cib/cib_client.c:539,1
    - Dst: cib_new
      Src: /src/pacemaker/lib/cib/cib_client.c:536,1
    - Dst: unsetenv
      Src: /src/pacemaker/lib/cib/cib_client.c:535,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 542
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 542
    functionName: cib_new_no_shadow
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - unsetenv
    - setenv
    - getenv
    - cib_new
    linkageType: ''
    returnType: cib_t*
    signature: 'cib_t *cib_new_no_shadow(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - cib
    - section
    - call_options
    argTypes:
    - cib_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 286
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 286
    functionName: cib_client_sync
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int cib_client_sync(cib_t * cib, const char *section, int call_options) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/cib/cib_client.c:377,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_client.c:376,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_client.c:375,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_client.c:369,1
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_client.c:379,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_client.c:385,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_client.c:387,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_client.c:390,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - cib
    - commit
    - call_options
    argTypes:
    - cib_t*
    - bool
    - int
    constantsTouched: []
    func_position:
      end: 393
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 393
    functionName: cib_client_end_transaction
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - crm_trace
    - cib_internal_op
    - pcmk__s
    - pcmk_rc2legacy
    - pcmk__xml_free
    - pcmk_rc_str
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int cib_client_end_transaction(cib_t *cib, bool commit, int
      call_options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/cib/cib_client.c:437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 440
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 440
    functionName: destroy_op_callback_table
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: 'static void destroy_op_callback_table(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_client.c:157,1
    - Dst: cib_native_callback
      Src: /src/pacemaker/lib/cib/cib_client.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 163
    functionName: cib_async_timeout_handler
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - cib_native_callback
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean cib_async_timeout_handler(gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_client.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - cib
    - call_options
    argTypes:
    - cib_t*
    - int
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: set_primary
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - cib_internal_op
    linkageType: ''
    returnType: int
    signature: 'static int set_primary(cib_t *cib, int call_options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_client.c:305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - cib
    - section
    - data
    - call_options
    argTypes:
    - cib_t*
    - char*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: cib_client_modify
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - cib_internal_op
    linkageType: ''
    returnType: int
    signature: 'static int cib_client_modify(cib_t * cib, const char *section, xmlNode
      * data, int call_options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_client.c:291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - cib
    - host
    - section
    - call_options
    argTypes:
    - cib_t*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 293
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 293
    functionName: cib_client_sync_from
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - cib_internal_op
    linkageType: ''
    returnType: int
    signature: 'static int cib_client_sync_from(cib_t * cib, const char *host, const
      char *section, int call_options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cib_free_callbacks
      Src: /src/pacemaker/lib/cib/cib_client.c:722,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - cib
    argTypes:
    - cib_t*
    constantsTouched: []
    func_position:
      end: 726
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 726
    functionName: cib_delete
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - cib_free_callbacks
    linkageType: ''
    returnType: void
    signature: 'void cib_delete(cib_t *cib) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/pacemaker/lib/cib/cib_client.c:177,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/cib/cib_client.c:187,1
    - Dst: free_func
      Src: /src/pacemaker/lib/cib/cib_client.c:182,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cib/cib_client.c:179,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/cib/cib_client.c:179,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/cib/cib_client.c:196,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/lib/cib/cib_client.c:203,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_client.c:208,1
    - Dst: pcmk__intkey_table_insert
      Src: /src/pacemaker/lib/cib/cib_client.c:209,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 8
    argNames:
    - cib
    - call_id
    - timeout
    - only_success
    - user_data
    - callback_name
    - (*callback)
    - (*free_func)
    argTypes:
    - cib_t*
    - int
    - int
    - gboolean
    - void*
    - char*
    - void
    - void
    constantsTouched: []
    func_position:
      end: 212
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 212
    functionName: cib_client_register_callback_full
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - callback
    - pcmk__assert_alloc
    - pcmk__intkey_table_insert
    - free_func
    - crm_warn
    - pcmk_strerror
    - crm_trace
    - pcmk__create_timer
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean cib_client_register_callback_full(cib_t *cib, int
      call_id, int timeout, gboolean only_success, void *user_data, const char *callback_name,
      void (*callback)(xmlNode *, int, int, xmlNode *, void *), void (*free_func)(void
      *)) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_client.c:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - cib
    - call_options
    argTypes:
    - cib_t*
    - int
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: cib_client_bump_epoch
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - cib_internal_op
    linkageType: ''
    returnType: int
    signature: 'static int cib_client_bump_epoch(cib_t * cib, int call_options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_client.c:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - cib
    - section
    - data
    - call_options
    argTypes:
    - cib_t*
    - char*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: cib_client_create
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - cib_internal_op
    linkageType: ''
    returnType: int
    signature: 'static int cib_client_create(cib_t * cib, const char *section, xmlNode
      * data, int call_options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_client.c:312,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - cib
    - section
    - data
    - call_options
    argTypes:
    - cib_t*
    - char*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: cib_client_replace
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - cib_internal_op
    linkageType: ''
    returnType: int
    signature: 'static int cib_client_replace(cib_t * cib, const char *section, xmlNode
      * data, int call_options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__intkey_table_lookup
      Src: /src/pacemaker/lib/cib/cib_client.c:769,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - call_id
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 770
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 770
    functionName: cib__lookup_id
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - pcmk__intkey_table_lookup
    linkageType: ''
    returnType: cib_callback_client_t*
    signature: 'cib_callback_client_t *cib__lookup_id (int call_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_free_notify
      Src: /src/pacemaker/lib/cib/cib_client.c:709,1
    - Dst: destroy_op_callback_table
      Src: /src/pacemaker/lib/cib/cib_client.c:711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - cib
    argTypes:
    - cib_t*
    constantsTouched: []
    func_position:
      end: 712
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 712
    functionName: cib_free_callbacks
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - cib_free_notify
    - destroy_op_callback_table
    linkageType: ''
    returnType: void
    signature: 'void cib_free_callbacks(cib_t *cib) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_client.c:236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - cib
    - output_data
    - call_options
    argTypes:
    - cib_t*
    - xmlNode**
    - int
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: cib_client_ping
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - cib_internal_op
    linkageType: ''
    returnType: int
    signature: 'static int cib_client_ping(cib_t * cib, xmlNode ** output_data, int
      call_options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_client.c:399,1
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_client.c:404,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_client.c:402,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_client.c:406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 4
    argNames:
    - cib
    - output_data
    - after_ver
    - call_options
    argTypes:
    - cib_t*
    - xmlNode**
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 408
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 408
    functionName: cib_client_fetch_schemas
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - cib_internal_op
    - pcmk__xml_free
    linkageType: ''
    returnType: int
    signature: 'static int cib_client_fetch_schemas(cib_t *cib, xmlNode **output_data,
      const char *after_ver, int call_options) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_client.c:447,1
    - Dst: geteuid
      Src: /src/pacemaker/lib/cib/cib_client.c:451,1
    - Dst: getenv
      Src: /src/pacemaker/lib/cib/cib_client.c:458,1
    - Dst: getpwuid
      Src: /src/pacemaker/lib/cib/cib_client.c:452,1
    - Dst: getenv
      Src: /src/pacemaker/lib/cib/cib_client.c:448,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/cib/cib_client.c:459,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/cib/cib_client.c:464,1
    - Dst: getenv
      Src: /src/pacemaker/lib/cib/cib_client.c:470,1
    - Dst: pcmk__get_tmpdir
      Src: /src/pacemaker/lib/cib/cib_client.c:476,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_client.c:480,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_client.c:496,1
    - Dst: mkdir
      Src: /src/pacemaker/lib/cib/cib_client.c:482,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/cib/cib_client.c:484,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_client.c:497,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_client.c:495,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 44
    argCount: 1
    argNames:
    - suffix
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 500
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 500
    functionName: get_shadow_file
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - crm_perror
    - crm_strdup_printf
    - mkdir
    - pcmk__strcase_any_of
    - free
    - getenv
    - pcmk__get_tmpdir
    - getpwuid
    - geteuid
    linkageType: ''
    returnType: char*
    signature: 'char *get_shadow_file(const char *suffix) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: destroy_op_callback_table
      Src: /src/pacemaker/lib/cib/cib_client.c:732,1
    - Dst: pcmk__intkey_table_remove
      Src: /src/pacemaker/lib/cib/cib_client.c:735,1
    - Dst: pcmk__intkey_table
      Src: /src/pacemaker/lib/cib/cib_client.c:733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - call_id
    - all_callbacks
    argTypes:
    - int
    - gboolean
    constantsTouched: []
    func_position:
      end: 737
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 737
    functionName: remove_cib_op_callback
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - pcmk__intkey_table_remove
    - pcmk__intkey_table
    - destroy_op_callback_table
    linkageType: ''
    returnType: void
    signature: 'void remove_cib_op_callback(int call_id, gboolean all_callbacks) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GPOINTER_TO_INT
      Src: /src/pacemaker/lib/cib/cib_client.c:751,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_client.c:754,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_client.c:754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 755
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 755
    functionName: cib_dump_pending_op
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - GPOINTER_TO_INT
    - crm_debug
    - pcmk__s
    linkageType: ''
    returnType: void
    signature: 'static void cib_dump_pending_op(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - cib
    - section
    - output_data
    - call_options
    argTypes:
    - cib_t*
    - char*
    - xmlNode**
    - int
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: cib_client_query
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int cib_client_query(cib_t * cib, const char *section, xmlNode
      ** output_data, int call_options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/cib/cib_client.c:413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - cib
    - user
    argTypes:
    - cib_t*
    - char*
    constantsTouched: []
    func_position:
      end: 414
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 414
    functionName: cib_client_set_user
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'static void cib_client_set_user(cib_t *cib, const char *user) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_client.c:508,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_client.c:512,1
    - Dst: cib_file_new
      Src: /src/pacemaker/lib/cib/cib_client.c:511,1
    - Dst: get_shadow_file
      Src: /src/pacemaker/lib/cib/cib_client.c:510,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - shadow
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 515
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 515
    functionName: cib_shadow_new
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - free
    - CRM_CHECK
    - cib_file_new
    - get_shadow_file
    linkageType: ''
    returnType: cib_t*
    signature: 'cib_t *cib_shadow_new(const char *shadow) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/cib/cib_client.c:745,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 746
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 746
    functionName: num_cib_op_callbacks
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - g_hash_table_size
    linkageType: ''
    returnType: int
    signature: 'int num_cib_op_callbacks(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/cib/cib_client.c:763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 764
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 764
    functionName: cib_dump_pending_callbacks
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    linkageType: ''
    returnType: void
    signature: 'void cib_dump_pending_callbacks(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_client.c:35,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_client.c:41,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_client.c:45,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/cib/cib_client.c:36,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 50
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 50
    functionName: ciblib_GCompareFunc
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_trace
    - strcmp
    linkageType: ''
    returnType: gint
    signature: 'static gint ciblib_GCompareFunc(gconstpointer a, gconstpointer b) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_first
      Src: /src/pacemaker/lib/cib/cib_client.c:94,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/cib/cib_client.c:98,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_client.c:102,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - cib
    - event
    argTypes:
    - cib_t*
    - char*
    constantsTouched: []
    func_position:
      end: 104
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 104
    functionName: get_notify_list_event_count
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - g_list_first
    - strcmp
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int get_notify_list_event_count(cib_t *cib, const char *event) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_client_register_callback_full
      Src: /src/pacemaker/lib/cib/cib_client.c:221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 7
    argNames:
    - cib
    - call_id
    - timeout
    - only_success
    - user_data
    - callback_name
    - (*callback)
    argTypes:
    - cib_t*
    - int
    - int
    - gboolean
    - void*
    - char*
    - void
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: cib_client_register_callback
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - cib_client_register_callback_full
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean cib_client_register_callback(cib_t *cib, int call_id,
      int timeout, gboolean only_success, void *user_data, const char *callback_name,
      void (*callback) (xmlNode *, int, int, xmlNode *, void *)) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_client.c:250,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 5
    argNames:
    - cib
    - host
    - section
    - output_data
    - call_options
    argTypes:
    - cib_t*
    - char*
    - char*
    - xmlNode**
    - int
    constantsTouched: []
    func_position:
      end: 252
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 252
    functionName: cib_client_query_from
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - cib_internal_op
    linkageType: ''
    returnType: int
    signature: 'static int cib_client_query_from(cib_t * cib, const char *host, const
      char *section, xmlNode ** output_data, int call_options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_client.c:319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - cib
    - section
    - data
    - call_options
    argTypes:
    - cib_t*
    - char*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: cib_client_delete
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - cib_internal_op
    linkageType: ''
    returnType: int
    signature: 'static int cib_client_delete(cib_t * cib, const char *section, xmlNode
      * data, int call_options) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/pacemaker/lib/cib/cib_client.c:625,1
    - Dst: remove_cib_op_callback
      Src: /src/pacemaker/lib/cib/cib_client.c:631,1
    - Dst: calloc
      Src: /src/pacemaker/lib/cib/cib_client.c:642,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_client.c:645,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 682
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 682
    functionName: cib_new_variant
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - calloc
    - free
    - remove_cib_op_callback
    linkageType: ''
    returnType: cib_t*
    signature: 'cib_t *cib_new_variant(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_client.c:64,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cib/cib_client.c:75,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/cib/cib_client.c:67,1
    - Dst: g_list_find_custom
      Src: /src/pacemaker/lib/cib/cib_client.c:71,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/cib/cib_client.c:65,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_client.c:76,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/cib/cib_client.c:80,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_client.c:84,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/cib/cib_client.c:84,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 3
    argNames:
    - cib
    - event
    - (*callback)
    argTypes:
    - cib_t*
    - char*
    - void
    constantsTouched: []
    func_position:
      end: 87
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 87
    functionName: cib_client_add_notify_callback
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - crm_trace
    - g_list_append
    - pcmk__assert_alloc
    - g_list_length
    - free
    - crm_warn
    - g_list_find_custom
    linkageType: ''
    returnType: int
    signature: 'static int cib_client_add_notify_callback(cib_t * cib, const char
      *event, void (*callback) (const char *event, xmlNode * msg)) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_notify_list_event_count
      Src: /src/pacemaker/lib/cib/cib_client.c:118,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_client.c:123,1
    - Dst: g_list_find_custom
      Src: /src/pacemaker/lib/cib/cib_client.c:129,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_client.c:119,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/cib/cib_client.c:125,1
    - Dst: g_list_remove
      Src: /src/pacemaker/lib/cib/cib_client.c:134,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_client.c:135,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_client.c:137,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_client.c:140,1
    - Dst: get_notify_list_event_count
      Src: /src/pacemaker/lib/cib/cib_client.c:143,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_client.c:148,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 3
    argNames:
    - cib
    - event
    - (*callback)
    argTypes:
    - cib_t*
    - char*
    - void
    constantsTouched: []
    func_position:
      end: 150
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 150
    functionName: cib_client_del_notify_callback
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - get_notify_list_event_count
    - crm_trace
    - pcmk__assert_alloc
    - free
    - g_list_remove
    - g_list_find_custom
    linkageType: ''
    returnType: int
    signature: 'static int cib_client_del_notify_callback(cib_t *cib, const char *event,
      void (*callback) (const char *event, xmlNode *msg)) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_client.c:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - cib
    - call_options
    argTypes:
    - cib_t*
    - int
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: cib_client_noop
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - cib_internal_op
    linkageType: ''
    returnType: int
    signature: 'static int cib_client_noop(cib_t * cib, int call_options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_client.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - cib
    - call_options
    argTypes:
    - cib_t*
    - int
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: set_secondary
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - cib_internal_op
    linkageType: ''
    returnType: int
    signature: 'static int set_secondary(cib_t *cib, int call_options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_client.c:326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - cib
    - output_data
    - call_options
    argTypes:
    - cib_t*
    - xmlNode**
    - int
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: cib_client_erase
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - cib_internal_op
    linkageType: ''
    returnType: int
    signature: 'static int cib_client_erase(cib_t * cib, xmlNode ** output_data, int
      call_options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_nth_data
      Src: /src/pacemaker/lib/cib/cib_client.c:692,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_client.c:695,1
    - Dst: g_list_remove
      Src: /src/pacemaker/lib/cib/cib_client.c:694,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - cib
    argTypes:
    - cib_t*
    constantsTouched: []
    func_position:
      end: 699
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 699
    functionName: cib_free_notify
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - g_list_remove
    - free
    - g_list_nth_data
    linkageType: ''
    returnType: void
    signature: 'void cib_free_notify(cib_t *cib) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/pacemaker/lib/cib/cib_client.c:563,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/cib/cib_client.c:575,1
    - Dst: getenv
      Src: /src/pacemaker/lib/cib/cib_client.c:574,1
    - Dst: cib_file_new
      Src: /src/pacemaker/lib/cib/cib_client.c:576,1
    - Dst: pcmk__scan_port
      Src: /src/pacemaker/lib/cib/cib_client.c:588,1
    - Dst: getenv
      Src: /src/pacemaker/lib/cib/cib_client.c:596,1
    - Dst: getenv
      Src: /src/pacemaker/lib/cib/cib_client.c:594,1
    - Dst: cib_remote_new
      Src: /src/pacemaker/lib/cib/cib_client.c:608,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/cib/cib_client.c:598,1
    - Dst: cib_native_new
      Src: /src/pacemaker/lib/cib/cib_client.c:581,1
    - Dst: cib_shadow_new
      Src: /src/pacemaker/lib/cib/cib_client.c:571,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/cib/cib_client.c:570,1
    - Dst: getenv
      Src: /src/pacemaker/lib/cib/cib_client.c:579,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/cib/cib_client.c:580,1
    - Dst: crm_is_true
      Src: /src/pacemaker/lib/cib/cib_client.c:590,1
    - Dst: getenv
      Src: /src/pacemaker/lib/cib/cib_client.c:595,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_client.c:606,1
    - Dst: getenv
      Src: /src/pacemaker/lib/cib/cib_client.c:590,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/lib/cib/cib_client.c:602,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 609
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 609
    functionName: cib_new
    functionSourceFile: /src/pacemaker/lib/cib/cib_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__scan_port
    - cib_shadow_new
    - cib_remote_new
    - crm_is_true
    - cib_native_new
    - pcmk__str_empty
    - cib_file_new
    - getenv
    linkageType: ''
    returnType: cib_t*
    signature: 'cib_t *cib_new(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/lib/cib/cib_attrs.c:41,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_attrs.c:44,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/lib/cib/cib_attrs.c:42,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_attrs.c:44,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - ty
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 49
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 49
    functionName: new_output_object
    functionSourceFile: /src/pacemaker/lib/cib/cib_attrs.c
    functionUses: []
    functionsReached:
    - pcmk__output_new
    - crm_err
    - pcmk__register_formats
    - pcmk_rc_str
    linkageType: ''
    returnType: pcmk__output_t*
    signature: 'static pcmk__output_t *new_output_object(const char *ty) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__warn_multiple_name_matches
      Src: /src/pacemaker/lib/cib/cib_attrs.c:155,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 3
    argNames:
    - out
    - search
    - attr_name
    argTypes:
    - pcmk__output_t*
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: handle_multiples
    functionSourceFile: /src/pacemaker/lib/cib/cib_attrs.c
    functionUses: []
    functionsReached:
    - pcmk__warn_multiple_name_matches
    linkageType: ''
    returnType: int
    signature: 'static int handle_multiples(pcmk__output_t *out, xmlNode *search,
      const char *attr_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/cib/cib_attrs.c:351,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_attrs.c:360,1
    - Dst: find_attr
      Src: /src/pacemaker/lib/cib/cib_attrs.c:356,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_attrs.c:361,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_attrs.c:352,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_attrs.c:362,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_attrs.c:363,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_attrs.c:363,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 15
    argCount: 10
    argNames:
    - out
    - cib
    - section
    - node_uuid
    - set_type
    - set_name
    - attr_id
    - attr_name
    - user_name
    - result
    argTypes:
    - pcmk__output_t*
    - cib_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 367
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 367
    functionName: cib__get_node_attrs
    functionSourceFile: /src/pacemaker/lib/cib/cib_attrs.c
    functionUses: []
    functionsReached:
    - find_attr
    - CRM_CHECK
    - pcmk__s
    - pcmk_rc_str
    - pcmk__assert
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int cib__get_node_attrs(pcmk__output_t *out, cib_t *cib, const char
      *section, const char *node_uuid, const char *set_type, const char *set_name,
      const char *attr_id, const char *attr_name, const char *user_name, xmlNode **result) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: new_output_object
      Src: /src/pacemaker/lib/cib/cib_attrs.c:431,1
    - Dst: find_attr
      Src: /src/pacemaker/lib/cib/cib_attrs.c:436,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/cib/cib_attrs.c:443,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_attrs.c:443,1
    - Dst: handle_multiples
      Src: /src/pacemaker/lib/cib/cib_attrs.c:440,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:448,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:449,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/cib/cib_attrs.c:450,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 19
    argCount: 11
    argNames:
    - cib
    - attr
    - section
    - node_uuid
    - attr_set_type
    - set_name
    - attr_id
    - attr_name
    - to_console
    - value
    - user_name
    argTypes:
    - cib_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - gboolean
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 451
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 451
    functionName: find_nvpair_attr_delegate
    functionSourceFile: /src/pacemaker/lib/cib/cib_attrs.c
    functionUses: []
    functionsReached:
    - find_attr
    - new_output_object
    - pcmk_rc2legacy
    - pcmk__xml_free
    - pcmk__output_free
    - crm_element_value
    - handle_multiples
    - pcmk__str_update
    linkageType: ''
    returnType: int
    signature: 'int find_nvpair_attr_delegate(cib_t *cib, const char *attr, const
      char *section, const char *node_uuid, const char *attr_set_type, const char
      *set_name, const char *attr_id, const char *attr_name, gboolean to_console,
      char **value, const char *user_name) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: new_output_object
      Src: /src/pacemaker/lib/cib/cib_attrs.c:486,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_attrs.c:497,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/cib/cib_attrs.c:496,1
    - Dst: cib__get_node_attrs
      Src: /src/pacemaker/lib/cib/cib_attrs.c:491,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:504,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:505,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/cib/cib_attrs.c:506,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 19
    argCount: 10
    argNames:
    - cib
    - section
    - node_uuid
    - set_type
    - set_name
    - attr_id
    - attr_name
    - attr_value
    - to_console
    - user_name
    argTypes:
    - cib_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char**
    - gboolean
    - char*
    constantsTouched: []
    func_position:
      end: 507
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 507
    functionName: read_attr_delegate
    functionSourceFile: /src/pacemaker/lib/cib/cib_attrs.c
    functionUses: []
    functionsReached:
    - new_output_object
    - pcmk_rc2legacy
    - cib__get_node_attrs
    - pcmk__xml_free
    - pcmk__output_free
    - crm_element_value
    - pcmk__str_update
    linkageType: ''
    returnType: int
    signature: 'int read_attr_delegate(cib_t *cib, const char *section, const char
      *node_uuid, const char *set_type, const char *set_name, const char *attr_id,
      const char *attr_name, char **attr_value, gboolean to_console, const char *user_name) '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:191,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:196,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_attrs.c:204,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_attrs.c:220,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_attrs.c:255,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_attrs.c:260,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_attrs.c:271,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_attrs.c:281,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_attrs.c:282,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/cib/cib_attrs.c:317,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_attrs.c:299,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:336,1
    - Dst: handle_multiples
      Src: /src/pacemaker/lib/cib/cib_attrs.c:185,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/cib/cib_attrs.c:189,1
    - Dst: find_attr
      Src: /src/pacemaker/lib/cib/cib_attrs.c:181,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_attrs.c:205,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_attrs.c:213,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_attrs.c:221,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_attrs.c:210,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_attrs.c:235,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_attrs.c:251,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_attrs.c:292,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_attrs.c:302,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_attrs.c:265,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_attrs.c:331,1
    - Dst: pcmk__xml_sanitize_id
      Src: /src/pacemaker/lib/cib/cib_attrs.c:272,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:186,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:203,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_attrs.c:222,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_attrs.c:223,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_attrs.c:224,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_attrs.c:219,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_attrs.c:229,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_attrs.c:236,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_attrs.c:245,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/cib/cib_attrs.c:247,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/cib/cib_attrs.c:326,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_attrs.c:177,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_attrs.c:211,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_attrs.c:249,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:262,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_attrs.c:279,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_attrs.c:289,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_attrs.c:291,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_attrs.c:295,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_attrs.c:304,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/cib/cib_attrs.c:312,1
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_attrs.c:318,1
    - Dst: crm_log_xml_info
      Src: /src/pacemaker/lib/cib/cib_attrs.c:333,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_attrs.c:332,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:338,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_attrs.c:321,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:337,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 157
    argCount: 12
    argNames:
    - out
    - cib
    - call_options
    - section
    - node_uuid
    - set_type
    - set_name
    - attr_id
    - attr_name
    - attr_value
    - user_name
    - node_type
    argTypes:
    - pcmk__output_t*
    - cib_t*
    - int
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 341
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 341
    functionName: cib__update_node_attr
    functionSourceFile: /src/pacemaker/lib/cib/cib_attrs.c
    functionUses: []
    functionsReached:
    - pcmk__xml_sanitize_id
    - free
    - crm_log_xml_trace
    - pcmk_legacy2rc
    - pcmk__xe_create
    - find_attr
    - cib_internal_op
    - crm_strdup_printf
    - crm_create_nvpair_xml
    - pcmk__s
    - pcmk_is_set
    - pcmk_rc_str
    - CRM_CHECK
    - crm_log_xml_info
    - pcmk__str_eq
    - pcmk__str_copy
    - handle_multiples
    - crm_trace
    - crm_xml_add
    - pcmk__xml_free
    - crm_element_value_copy
    linkageType: ''
    returnType: int
    signature: 'int cib__update_node_attr(pcmk__output_t *out, cib_t *cib, int call_options,
      const char *section, const char *node_uuid, const char *set_type, const char
      *set_name, const char *attr_id, const char *attr_name, const char *attr_value,
      const char *user_name, const char *node_type) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_string_append
      Src: /src/pacemaker/lib/cib/cib_attrs.c:118,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/cib/cib_attrs.c:121,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/cib/cib_attrs.c:129,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_attrs.c:140,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/cib/cib_attrs.c:143,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cib/cib_attrs.c:91,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/cib/cib_attrs.c:95,1
    - Dst: g_string_append
      Src: /src/pacemaker/lib/cib/cib_attrs.c:96,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/cib/cib_attrs.c:135,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/cib/cib_attrs.c:113,1
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_attrs.c:132,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:146,1
    - Dst: pcmk_cib_xpath_for
      Src: /src/pacemaker/lib/cib/cib_attrs.c:89,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/cib/cib_attrs.c:115,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_attrs.c:141,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_attrs.c:70,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_attrs.c:80,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/lib/cib/cib_attrs.c:74,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_attrs.c:98,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/cib/cib_attrs.c:99,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_attrs.c:104,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/cib/cib_attrs.c:108,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/lib/cib/cib_attrs.c:126,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_attrs.c:138,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_attrs.c:139,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 63
    argCount: 9
    argNames:
    - cib
    - section
    - node_uuid
    - attr_set_type
    - set_name
    - attr_id
    - attr_name
    - user_name
    - result
    argTypes:
    - cib_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 149
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 149
    functionName: find_attr
    functionSourceFile: /src/pacemaker/lib/cib/cib_attrs.c
    functionUses: []
    functionsReached:
    - crm_log_xml_debug
    - g_string_append
    - cib_internal_op
    - pcmk__s
    - pcmk__g_strcat
    - pcmk__str_eq
    - pcmk__strcase_any_of
    - g_string_free
    - g_string_sized_new
    - pcmk_rc_str
    - crm_warn
    - crm_trace
    - pcmk_cib_xpath_for
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int find_attr(cib_t *cib, const char *section, const char *node_uuid,
      const char *attr_set_type, const char *set_name, const char *attr_id, const
      char *attr_name, const char *user_name, xmlNode **result) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_attrs.c:380,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_attrs.c:381,1
    - Dst: find_attr
      Src: /src/pacemaker/lib/cib/cib_attrs.c:384,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:388,1
    - Dst: handle_multiples
      Src: /src/pacemaker/lib/cib/cib_attrs.c:387,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/cib/cib_attrs.c:391,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:393,1
    - Dst: crm_create_nvpair_xml
      Src: /src/pacemaker/lib/cib/cib_attrs.c:397,1
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_attrs.c:399,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_attrs.c:402,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:416,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/cib/cib_attrs.c:407,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:417,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 42
    argCount: 11
    argNames:
    - out
    - cib
    - options
    - section
    - node_uuid
    - set_type
    - set_name
    - attr_id
    - attr_name
    - attr_value
    - user_name
    argTypes:
    - pcmk__output_t*
    - cib_t*
    - int
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 419
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 419
    functionName: cib__delete_node_attr
    functionSourceFile: /src/pacemaker/lib/cib/cib_attrs.c
    functionUses: []
    functionsReached:
    - find_attr
    - CRM_CHECK
    - cib_internal_op
    - crm_create_nvpair_xml
    - pcmk_is_set
    - pcmk__xml_free
    - free
    - crm_element_value_copy
    - handle_multiples
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int cib__delete_node_attr(pcmk__output_t *out, cib_t *cib, int options,
      const char *section, const char *node_uuid, const char *set_type, const char
      *set_name, const char *attr_id, const char *attr_name, const char *attr_value,
      const char *user_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_output_object
      Src: /src/pacemaker/lib/cib/cib_attrs.c:462,1
    - Dst: cib__update_node_attr
      Src: /src/pacemaker/lib/cib/cib_attrs.c:467,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/cib/cib_attrs.c:473,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:472,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 10
    argCount: 12
    argNames:
    - cib
    - call_options
    - section
    - node_uuid
    - set_type
    - set_name
    - attr_id
    - attr_name
    - attr_value
    - to_console
    - user_name
    - node_type
    argTypes:
    - cib_t*
    - int
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - gboolean
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 474
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 474
    functionName: update_attr_delegate
    functionSourceFile: /src/pacemaker/lib/cib/cib_attrs.c
    functionUses: []
    functionsReached:
    - cib__update_node_attr
    - new_output_object
    - pcmk__output_free
    - pcmk_rc2legacy
    linkageType: ''
    returnType: int
    signature: 'int update_attr_delegate(cib_t *cib, int call_options, const char
      *section, const char *node_uuid, const char *set_type, const char *set_name,
      const char *attr_id, const char *attr_name, const char *attr_value, gboolean
      to_console, const char *user_name, const char *node_type) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_output_object
      Src: /src/pacemaker/lib/cib/cib_attrs.c:518,1
    - Dst: cib__delete_node_attr
      Src: /src/pacemaker/lib/cib/cib_attrs.c:523,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:527,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/cib/cib_attrs.c:528,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 10
    argCount: 11
    argNames:
    - cib
    - options
    - section
    - node_uuid
    - set_type
    - set_name
    - attr_id
    - attr_name
    - attr_value
    - to_console
    - user_name
    argTypes:
    - cib_t*
    - int
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - gboolean
    - char*
    constantsTouched: []
    func_position:
      end: 529
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 529
    functionName: delete_attr_delegate
    functionSourceFile: /src/pacemaker/lib/cib/cib_attrs.c
    functionUses: []
    functionsReached:
    - pcmk__output_free
    - new_output_object
    - cib__delete_node_attr
    - pcmk_rc2legacy
    linkageType: ''
    returnType: int
    signature: 'int delete_attr_delegate(cib_t *cib, int options, const char *section,
      const char *node_uuid, const char *set_type, const char *set_name, const char
      *attr_id, const char *attr_name, const char *attr_value, gboolean to_console,
      const char *user_name) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/cib/cib_attrs.c:634,1
    - Dst: g_ascii_strdown
      Src: /src/pacemaker/lib/cib/cib_attrs.c:636,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_attrs.c:645,1
    - Dst: cib_internal_op
      Src: /src/pacemaker/lib/cib/cib_attrs.c:646,1
    - Dst: get_uuid_from_result
      Src: /src/pacemaker/lib/cib/cib_attrs.c:649,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:653,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:654,1
    - Dst: g_free
      Src: /src/pacemaker/lib/cib/cib_attrs.c:655,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_attrs.c:658,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/cib/cib_attrs.c:659,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_attrs.c:661,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 4
    argNames:
    - the_cib
    - uname
    - uuid
    - is_remote_node
    argTypes:
    - cib_t*
    - char*
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 664
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 664
    functionName: query_node_uuid
    functionSourceFile: /src/pacemaker/lib/cib/cib_attrs.c
    functionUses: []
    functionsReached:
    - crm_debug
    - cib_internal_op
    - get_uuid_from_result
    - crm_strdup_printf
    - crm_info
    - free
    - pcmk__xml_free
    - g_free
    - pcmk__assert
    - pcmk_strerror
    - g_ascii_strdown
    linkageType: ''
    returnType: int
    signature: 'int query_node_uuid(cib_t * the_cib, const char *uname, char **uuid,
      int *is_remote_node) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/cib/cib_attrs.c:553,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_attrs.c:555,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_attrs.c:561,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/cib/cib_attrs.c:558,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/cib/cib_attrs.c:554,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_attrs.c:561,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_attrs.c:563,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/cib/cib_attrs.c:566,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/cib/cib_attrs.c:570,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/cib/cib_attrs.c:573,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_attrs.c:581,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_attrs.c:587,1
    - Dst: strdup
      Src: /src/pacemaker/lib/cib/cib_attrs.c:595,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/lib/cib/cib_attrs.c:588,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/cib/cib_attrs.c:584,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/cib/cib_attrs.c:576,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 3
    argNames:
    - result
    - uuid
    - is_remote
    argTypes:
    - xmlNode*
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 604
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 604
    functionName: get_uuid_from_result
    functionSourceFile: /src/pacemaker/lib/cib/cib_attrs.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - strdup
    - pcmk__xe_first_child
    - pcmk__str_eq
    - pcmk__xe_is
    - crm_element_value
    - pcmk__xe_attr_is_true
    - pcmk__xe_id
    linkageType: ''
    returnType: int
    signature: 'static int get_uuid_from_result(const xmlNode *result, char **uuid,
      int *is_remote) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/lib/cib/cib_remote.c:214,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_remote.c:226,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_remote.c:227,1
    - Dst: time
      Src: /src/pacemaker/lib/cib/cib_remote.c:225,1
    - Dst: pcmk__read_available_remote_data
      Src: /src/pacemaker/lib/cib/cib_remote.c:217,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_remote.c:236,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_remote.c:237,1
    - Dst: pcmk__remote_message_xml
      Src: /src/pacemaker/lib/cib/cib_remote.c:241,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_remote.c:247,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_remote.c:249,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_remote.c:253,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/cib/cib_remote.c:254,1
    - Dst: cib_native_callback
      Src: /src/pacemaker/lib/cib/cib_remote.c:252,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_remote.c:256,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_remote.c:251,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_remote.c:259,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 262
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 262
    functionName: cib_remote_callback_dispatch
    functionSourceFile: /src/pacemaker/lib/cib/cib_remote.c
    functionUses: []
    functionsReached:
    - crm_element_value
    - pcmk__read_available_remote_data
    - g_list_foreach
    - pcmk__remote_message_xml
    - time
    - pcmk__str_eq
    - cib_native_callback
    - crm_err
    - pcmk__xml_free
    - pcmk_rc_str
    - crm_info
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int cib_remote_callback_dispatch(gpointer user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gnutls_bye
      Src: /src/pacemaker/lib/cib/cib_remote.c:310,1
    - Dst: gnutls_bye
      Src: /src/pacemaker/lib/cib/cib_remote.c:315,1
    - Dst: gnutls_deinit
      Src: /src/pacemaker/lib/cib/cib_remote.c:311,1
    - Dst: gnutls_deinit
      Src: /src/pacemaker/lib/cib/cib_remote.c:316,1
    - Dst: pcmk__free_tls
      Src: /src/pacemaker/lib/cib/cib_remote.c:321,1
    - Dst: shutdown
      Src: /src/pacemaker/lib/cib/cib_remote.c:326,1
    - Dst: close
      Src: /src/pacemaker/lib/cib/cib_remote.c:327,1
    - Dst: shutdown
      Src: /src/pacemaker/lib/cib/cib_remote.c:330,1
    - Dst: close
      Src: /src/pacemaker/lib/cib/cib_remote.c:331,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_remote.c:336,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_remote.c:337,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - cib
    argTypes:
    - cib_t*
    constantsTouched: []
    func_position:
      end: 342
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 342
    functionName: cib_tls_close
    functionSourceFile: /src/pacemaker/lib/cib/cib_remote.c
    functionUses: []
    functionsReached:
    - gnutls_bye
    - pcmk__free_tls
    - free
    - gnutls_deinit
    - close
    - shutdown
    linkageType: ''
    returnType: int
    signature: 'static int cib_tls_close(cib_t *cib) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__init_tls
      Src: /src/pacemaker/lib/cib/cib_remote.c:380,1
    - Dst: pcmk__new_tls_session
      Src: /src/pacemaker/lib/cib/cib_remote.c:386,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_remote.c:415,1
    - Dst: pcmk__remote_send_xml
      Src: /src/pacemaker/lib/cib/cib_remote.c:419,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_remote.c:420,1
    - Dst: pcmk__remote_message_xml
      Src: /src/pacemaker/lib/cib/cib_remote.c:427,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_remote.c:440,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_remote.c:458,1
    - Dst: pcmk__connect_remote
      Src: /src/pacemaker/lib/cib/cib_remote.c:368,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_remote.c:372,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_remote.c:395,1
    - Dst: cib_tls_close
      Src: /src/pacemaker/lib/cib/cib_remote.c:400,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_remote.c:414,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_remote.c:439,1
    - Dst: mainloop_add_fd
      Src: /src/pacemaker/lib/cib/cib_remote.c:460,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_remote.c:371,1
    - Dst: gnutls_strerror
      Src: /src/pacemaker/lib/cib/cib_remote.c:397,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_remote.c:397,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_remote.c:413,1
    - Dst: gnutls_deinit
      Src: /src/pacemaker/lib/cib/cib_remote.c:398,1
    - Dst: strdup
      Src: /src/pacemaker/lib/cib/cib_remote.c:447,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_remote.c:450,1
    - Dst: cib_tls_close
      Src: /src/pacemaker/lib/cib/cib_remote.c:454,1
    - Dst: pcmk__x509_enabled
      Src: /src/pacemaker/lib/cib/cib_remote.c:377,1
    - Dst: cib_tls_close
      Src: /src/pacemaker/lib/cib/cib_remote.c:388,1
    - Dst: pcmk__tls_client_handshake
      Src: /src/pacemaker/lib/cib/cib_remote.c:392,1
    - Dst: pcmk__tls_check_cert_expiration
      Src: /src/pacemaker/lib/cib/cib_remote.c:410,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_remote.c:417,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_remote.c:416,1
    - Dst: pcmk__read_remote_message
      Src: /src/pacemaker/lib/cib/cib_remote.c:423,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/cib/cib_remote.c:429,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_remote.c:435,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_remote.c:436,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 81
    argCount: 3
    argNames:
    - cib
    - connection
    - event_channel
    argTypes:
    - cib_t*
    - pcmk__remote_t*
    - gboolean
    constantsTouched: []
    func_position:
      end: 464
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 464
    functionName: cib_tls_signon
    functionSourceFile: /src/pacemaker/lib/cib/cib_remote.c
    functionUses: []
    functionsReached:
    - strdup
    - crm_log_xml_trace
    - gnutls_deinit
    - pcmk__xe_create
    - pcmk__init_tls
    - pcmk__remote_send_xml
    - pcmk_rc_str
    - crm_element_value
    - crm_err
    - pcmk__tls_client_handshake
    - pcmk__remote_message_xml
    - pcmk__str_eq
    - crm_info
    - pcmk__connect_remote
    - crm_trace
    - pcmk__tls_check_cert_expiration
    - pcmk__read_remote_message
    - cib_tls_close
    - crm_xml_add
    - gnutls_strerror
    - pcmk__xml_free
    - mainloop_add_fd
    - pcmk__new_tls_session
    - pcmk__x509_enabled
    linkageType: ''
    returnType: int
    signature: 'static int cib_tls_signon(cib_t *cib, pcmk__remote_t *connection,
      gboolean event_channel) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_remote.c:519,1
    - Dst: cib_tls_close
      Src: /src/pacemaker/lib/cib/cib_remote.c:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cib
    argTypes:
    - cib_t*
    constantsTouched: []
    func_position:
      end: 527
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 527
    functionName: cib_remote_signoff
    functionSourceFile: /src/pacemaker/lib/cib/cib_remote.c
    functionUses: []
    functionsReached:
    - crm_debug
    - cib_tls_close
    linkageType: ''
    returnType: int
    signature: 'static int cib_remote_signoff(cib_t *cib) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_remote.c:556,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_remote.c:560,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/cib/cib_remote.c:561,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_remote.c:559,1
    - Dst: pcmk__remote_send_xml
      Src: /src/pacemaker/lib/cib/cib_remote.c:562,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_remote.c:563,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - cib
    - callback
    - enabled
    argTypes:
    - cib_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 565
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 565
    functionName: cib_remote_register_notification
    functionSourceFile: /src/pacemaker/lib/cib/cib_remote.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - pcmk__xml_free
    - pcmk__remote_send_xml
    - crm_xml_add_int
    linkageType: ''
    returnType: int
    signature: 'static int cib_remote_register_notification(cib_t * cib, const char
      *callback, int enabled) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 3
    argNames:
    - cib
    - async_id
    - sync_id
    argTypes:
    - cib_t*
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 605
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 605
    functionName: cib_remote_client_id
    functionSourceFile: /src/pacemaker/lib/cib/cib_remote.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int cib_remote_client_id(const cib_t *cib, const char **async_id,
      const char **sync_id) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_remote.c:93,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_remote.c:138,1
    - Dst: pcmk__remote_message_xml
      Src: /src/pacemaker/lib/cib/cib_remote.c:121,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_remote.c:144,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_remote.c:155,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_remote.c:175,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/cib/cib_remote.c:185,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/cib/cib_remote.c:183,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_remote.c:188,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_remote.c:77,1
    - Dst: cib__extend_transaction
      Src: /src/pacemaker/lib/cib/cib_remote.c:88,1
    - Dst: cib__create_op
      Src: /src/pacemaker/lib/cib/cib_remote.c:81,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_remote.c:99,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_remote.c:102,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/cib/cib_remote.c:139,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_remote.c:133,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_remote.c:141,1
    - Dst: time
      Src: /src/pacemaker/lib/cib/cib_remote.c:148,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_remote.c:152,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/cib/cib_remote.c:190,1
    - Dst: pcmk__remote_send_xml
      Src: /src/pacemaker/lib/cib/cib_remote.c:95,1
    - Dst: pcmk__remote_send_xml
      Src: /src/pacemaker/lib/cib/cib_remote.c:97,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/cib/cib_remote.c:134,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_remote.c:194,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/lib/cib/cib_remote.c:176,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_remote.c:87,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_remote.c:89,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_remote.c:109,1
    - Dst: time
      Src: /src/pacemaker/lib/cib/cib_remote.c:111,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/cib/cib_remote.c:127,1
    - Dst: pcmk__read_remote_message
      Src: /src/pacemaker/lib/cib/cib_remote.c:119,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_remote.c:159,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/cib/cib_remote.c:162,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/lib/cib/cib_remote.c:172,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/cib/cib_remote.c:175,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 112
    argCount: 8
    argNames:
    - cib
    - op
    - host
    - section
    - data
    - output_data
    - call_options
    - user_name
    argTypes:
    - cib_t*
    - char*
    - char*
    - char*
    - xmlNode*
    - xmlNode**
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 197
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 197
    functionName: cib_remote_perform_op
    functionSourceFile: /src/pacemaker/lib/cib/cib_remote.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__read_remote_message
    - crm_log_xml_debug
    - crm_trace
    - pcmk__xml_copy
    - pcmk__xe_first_child
    - pcmk__remote_message_xml
    - time
    - crm_log_xml_trace
    - crm_log_xml_warn
    - pcmk_is_set
    - pcmk__xml_free
    - pcmk__remote_send_xml
    - cib__create_op
    - cib__extend_transaction
    - pcmk_strerror
    - crm_err
    - crm_element_value_int
    linkageType: ''
    returnType: int
    signature: 'static int cib_remote_perform_op(cib_t *cib, const char *op, const
      char *host, const char *section, xmlNode *data, xmlNode **output_data, int call_options,
      const char *user_name) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/lib/cib/cib_remote.c:273,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_remote.c:280,1
    - Dst: pcmk__read_available_remote_data
      Src: /src/pacemaker/lib/cib/cib_remote.c:276,1
    - Dst: time
      Src: /src/pacemaker/lib/cib/cib_remote.c:279,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_remote.c:281,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_remote.c:289,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_remote.c:291,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_remote.c:294,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_remote.c:295,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 301
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 301
    functionName: cib_remote_command_dispatch
    functionSourceFile: /src/pacemaker/lib/cib/cib_remote.c
    functionUses: []
    functionsReached:
    - pcmk__read_available_remote_data
    - time
    - free
    - pcmk_rc_str
    - crm_info
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int cib_remote_command_dispatch(gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_remote.c:347,1
    - Dst: cib_tls_close
      Src: /src/pacemaker/lib/cib/cib_remote.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 349
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 349
    functionName: cib_remote_connection_destroy
    functionSourceFile: /src/pacemaker/lib/cib/cib_remote.c
    functionUses: []
    functionsReached:
    - cib_tls_close
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void cib_remote_connection_destroy(gpointer user_data) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_remote.c:473,1
    - Dst: pcmk__text_prompt
      Src: /src/pacemaker/lib/cib/cib_remote.c:481,1
    - Dst: cib_tls_signon
      Src: /src/pacemaker/lib/cib/cib_remote.c:492,1
    - Dst: cib_tls_signon
      Src: /src/pacemaker/lib/cib/cib_remote.c:497,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_remote.c:501,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_remote.c:507,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/cib/cib_remote.c:508,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 3
    argNames:
    - cib
    - name
    - type
    argTypes:
    - cib_t*
    - char*
    - enum cib_conn_type
    constantsTouched: []
    func_position:
      end: 512
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 512
    functionName: cib_remote_signon
    functionSourceFile: /src/pacemaker/lib/cib/cib_remote.c
    functionUses: []
    functionsReached:
    - pcmk_strerror
    - pcmk__s
    - pcmk__text_prompt
    - crm_info
    - cib_tls_signon
    linkageType: ''
    returnType: int
    signature: 'static int cib_remote_signon(cib_t *cib, const char *name, enum cib_conn_type
      type) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cib/cib_remote.c:534,1
    - Dst: cib_remote_signoff
      Src: /src/pacemaker/lib/cib/cib_remote.c:536,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_remote.c:541,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_remote.c:540,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_remote.c:542,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_remote.c:543,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_remote.c:544,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_remote.c:545,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_remote.c:546,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - cib
    argTypes:
    - cib_t*
    constantsTouched: []
    func_position:
      end: 551
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 551
    functionName: cib_remote_free
    functionSourceFile: /src/pacemaker/lib/cib/cib_remote.c
    functionUses: []
    functionsReached:
    - crm_warn
    - free
    - cib_remote_signoff
    linkageType: ''
    returnType: int
    signature: 'static int cib_remote_free(cib_t *cib) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - cib
    - (*dnotify)
    argTypes:
    - cib_t*
    - void
    constantsTouched: []
    func_position:
      end: 571
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 571
    functionName: cib_remote_set_connection_dnotify
    functionSourceFile: /src/pacemaker/lib/cib/cib_remote.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int cib_remote_set_connection_dnotify(cib_t * cib, void (*dnotify)
      (gpointer user_data)) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cib_new_variant
      Src: /src/pacemaker/lib/cib/cib_remote.c:612,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/cib/cib_remote.c:628,1
    - Dst: calloc
      Src: /src/pacemaker/lib/cib/cib_remote.c:618,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_remote.c:621,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/cib/cib_remote.c:629,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/cib/cib_remote.c:630,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - server
    - user
    - passwd
    - port
    - encrypted
    argTypes:
    - char*
    - char*
    - char*
    - int
    - gboolean
    constantsTouched: []
    func_position:
      end: 645
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 645
    functionName: cib_remote_new
    functionSourceFile: /src/pacemaker/lib/cib/cib_remote.c
    functionUses: []
    functionsReached:
    - calloc
    - pcmk__str_copy
    - free
    - cib_new_variant
    linkageType: ''
    returnType: cib_t*
    signature: 'cib_t *cib_remote_new(const char *server, const char *user, const
      char *passwd, int port, gboolean encrypted) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - cib
    - out
    argTypes:
    - cib_t*
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 658
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 658
    functionName: cib__set_output
    functionSourceFile: /src/pacemaker/lib/cib/cib_remote.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void cib__set_output(cib_t *cib, pcmk__output_t *out) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_native.c:181,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_native.c:184,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cib/cib_native.c:191,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/lib/cib/cib_native.c:188,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_native.c:196,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_native.c:197,1
    - Dst: crm_log_xml_explicit
      Src: /src/pacemaker/lib/cib/cib_native.c:198,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_native.c:200,1
    - Dst: cib_native_callback
      Src: /src/pacemaker/lib/cib/cib_native.c:201,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_native.c:203,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/lib/cib/cib_native.c:204,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_native.c:210,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_native.c:207,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - buffer
    - length
    - userdata
    argTypes:
    - char*
    - ssize_t
    - gpointer
    constantsTouched: []
    func_position:
      end: 212
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 212
    functionName: cib_native_dispatch_internal
    functionSourceFile: /src/pacemaker/lib/cib/cib_native.c
    functionUses: []
    functionsReached:
    - crm_trace
    - crm_log_xml_explicit
    - g_list_foreach
    - pcmk__str_eq
    - cib_native_callback
    - pcmk__xml_free
    - pcmk__xml_parse
    - crm_element_value
    - crm_warn
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int cib_native_dispatch_internal(const char *buffer, ssize_t
      length, gpointer userdata) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_native.c:235,1
    - Dst: remove_cib_op_callback
      Src: /src/pacemaker/lib/cib/cib_native.c:238,1
    - Dst: mainloop_del_ipc_client
      Src: /src/pacemaker/lib/cib/cib_native.c:242,1
    - Dst: crm_ipc_close
      Src: /src/pacemaker/lib/cib/cib_native.c:251,1
    - Dst: cib_free_notify
      Src: /src/pacemaker/lib/cib/cib_native.c:237,1
    - Dst: crm_ipc_destroy
      Src: /src/pacemaker/lib/cib/cib_native.c:252,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - cib
    argTypes:
    - cib_t*
    constantsTouched: []
    func_position:
      end: 260
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 260
    functionName: cib_native_signoff
    functionSourceFile: /src/pacemaker/lib/cib/cib_native.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_ipc_close
    - crm_ipc_destroy
    - remove_cib_op_callback
    - mainloop_del_ipc_client
    - cib_free_notify
    linkageType: ''
    returnType: int
    signature: 'static int cib_native_signoff(cib_t *cib) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cib_native_signoff
      Src: /src/pacemaker/lib/cib/cib_native.c:360,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_native.c:367,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_native.c:368,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_native.c:366,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_native.c:369,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_native.c:370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - cib
    argTypes:
    - cib_t*
    constantsTouched: []
    func_position:
      end: 374
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 374
    functionName: cib_native_free
    functionSourceFile: /src/pacemaker/lib/cib/cib_native.c
    functionUses: []
    functionsReached:
    - cib_native_signoff
    - free
    linkageType: ''
    returnType: int
    signature: 'static int cib_native_free(cib_t *cib) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 3
    argNames:
    - cib
    - async_id
    - sync_id
    argTypes:
    - cib_t*
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 447
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 447
    functionName: cib_native_client_id
    functionSourceFile: /src/pacemaker/lib/cib/cib_native.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int cib_native_client_id(const cib_t *cib, const char **async_id,
      const char **sync_id) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_native.c:59,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_native.c:73,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/cib/cib_native.c:99,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_native.c:105,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/cib/cib_native.c:113,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_native.c:91,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_native.c:111,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_native.c:117,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/lib/cib/cib_native.c:124,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_native.c:149,1
    - Dst: pcmk__set_ipc_flags
      Src: /src/pacemaker/lib/cib/cib_native.c:64,1
    - Dst: crm_ipc_send
      Src: /src/pacemaker/lib/cib/cib_native.c:79,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/cib/cib_native.c:83,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/cib/cib_native.c:103,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/cib/cib_native.c:106,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/lib/cib/cib_native.c:118,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/lib/cib/cib_native.c:151,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/cib/cib_native.c:157,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_native.c:168,1
    - Dst: cib__extend_transaction
      Src: /src/pacemaker/lib/cib/cib_native.c:74,1
    - Dst: cib__create_op
      Src: /src/pacemaker/lib/cib/cib_native.c:67,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_native.c:82,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_native.c:92,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_native.c:156,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cib/cib_native.c:157,1
    - Dst: crm_ipc_connected
      Src: /src/pacemaker/lib/cib/cib_native.c:162,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_native.c:78,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/cib/cib_native.c:88,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/cib/cib_native.c:101,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_native.c:123,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/cib/cib_native.c:149,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_native.c:163,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_native.c:167,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 107
    argCount: 8
    argNames:
    - cib
    - op
    - host
    - section
    - data
    - output_data
    - call_options
    - user_name
    argTypes:
    - cib_t*
    - char*
    - char*
    - char*
    - xmlNode*
    - xmlNode**
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 170
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 170
    functionName: cib_native_perform_op_delegate
    functionSourceFile: /src/pacemaker/lib/cib/cib_native.c
    functionUses: []
    functionsReached:
    - crm_trace
    - CRM_CHECK
    - pcmk__xml_copy
    - pcmk__xe_first_child
    - crm_ipc_send
    - pcmk__str_eq
    - pcmk__set_ipc_flags
    - crm_log_xml_trace
    - pcmk_is_set
    - pcmk__xml_free
    - crm_warn
    - crm_ipc_connected
    - cib__create_op
    - cib__extend_transaction
    - pcmk_strerror
    - crm_log_xml_err
    - crm_err
    - crm_element_value_int
    linkageType: ''
    returnType: int
    signature: 'static int cib_native_perform_op_delegate(cib_t *cib, const char *op,
      const char *host, const char *section, xmlNode *data, xmlNode **output_data,
      int call_options, const char *user_name) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_get_ipc_client
      Src: /src/pacemaker/lib/cib/cib_native.c:301,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_native.c:304,1
    - Dst: cib__create_op
      Src: /src/pacemaker/lib/cib/cib_native.c:309,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_native.c:322,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_native.c:318,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_native.c:348,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/cib/cib_native.c:349,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_native.c:276,1
    - Dst: crm_ipc_connected
      Src: /src/pacemaker/lib/cib/cib_native.c:303,1
    - Dst: mainloop_add_ipc_client
      Src: /src/pacemaker/lib/cib/cib_native.c:299,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/cib/cib_native.c:320,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_native.c:335,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_native.c:344,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/cib/cib_native.c:329,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_native.c:297,1
    - Dst: crm_ipc_send
      Src: /src/pacemaker/lib/cib/cib_native.c:316,1
    - Dst: cib_native_signoff
      Src: /src/pacemaker/lib/cib/cib_native.c:350,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_native.c:340,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_native.c:323,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 3
    argNames:
    - cib
    - name
    - type
    argTypes:
    - cib_t*
    - char*
    - enum cib_conn_type
    constantsTouched: []
    func_position:
      end: 352
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 352
    functionName: cib_native_signon
    functionSourceFile: /src/pacemaker/lib/cib/cib_native.c
    functionUses: []
    functionsReached:
    - crm_element_value
    - pcmk__s
    - pcmk_strerror
    - cib_native_signoff
    - crm_ipc_send
    - pcmk__str_eq
    - crm_info
    - pcmk__xml_free
    - crm_ipc_connected
    - mainloop_get_ipc_client
    - cib__create_op
    - crm_log_xml_trace
    - mainloop_add_ipc_client
    - crm_element_value_copy
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int cib_native_signon(cib_t *cib, const char *name, enum cib_conn_type
      type) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_native.c:220,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 228
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 228
    functionName: cib_native_destroy
    functionSourceFile: /src/pacemaker/lib/cib/cib_native.c
    functionUses: []
    functionsReached:
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void cib_native_destroy(void *userdata) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_native.c:380,1
    - Dst: crm_ipc_send
      Src: /src/pacemaker/lib/cib/cib_native.c:387,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_native.c:384,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_native.c:385,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/cib/cib_native.c:386,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_native.c:390,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_native.c:395,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - cib
    - callback
    - enabled
    argTypes:
    - cib_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 397
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 397
    functionName: cib_native_register_notification
    functionSourceFile: /src/pacemaker/lib/cib/cib_native.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_ipc_send
    - crm_xml_add
    - pcmk__xml_free
    - crm_xml_add_int
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int cib_native_register_notification(cib_t *cib, const char
      *callback, int enabled) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cib_new_variant
      Src: /src/pacemaker/lib/cib/cib_native.c:453,1
    - Dst: calloc
      Src: /src/pacemaker/lib/cib/cib_native.c:459,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_native.c:462,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 485
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 485
    functionName: cib_native_new
    functionSourceFile: /src/pacemaker/lib/cib/cib_native.c
    functionUses: []
    functionsReached:
    - calloc
    - free
    - cib_new_variant
    linkageType: ''
    returnType: cib_t*
    signature: 'cib_t *cib_native_new(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_native.c:406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - cib
    - (*dnotify)
    argTypes:
    - cib_t*
    - void
    constantsTouched: []
    func_position:
      end: 414
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 414
    functionName: cib_native_set_connection_dnotify
    functionSourceFile: /src/pacemaker/lib/cib/cib_native.c
    functionUses: []
    functionsReached:
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int cib_native_set_connection_dnotify(cib_t *cib, void (*dnotify)
      (gpointer user_data)) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/cib/cib_ops.c:146,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/cib/cib_ops.c:159,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/cib/cib_ops.c:151,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/cib/cib_ops.c:154,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/cib/cib_ops.c:149,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_ops.c:161,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - op
    - operation
    argTypes:
    - char*
    - cib__operation_t**
    constantsTouched: []
    func_position:
      end: 165
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 165
    functionName: cib__get_operation
    functionSourceFile: /src/pacemaker/lib/cib/cib_ops.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - pcmk__strkey_table
    - PCMK__NELEM
    - pcmk__assert
    - g_hash_table_insert
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int cib__get_operation(const char *op, const cib__operation_t **operation) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_ops.c:220,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/lib/cib/cib_ops.c:221,1
    - Dst: atoi
      Src: /src/pacemaker/lib/cib/cib_ops.c:224,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/lib/cib/cib_ops.c:225,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/cib/cib_ops.c:227,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_ops.c:230,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_ops.c:231,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_ops.c:232,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_ops.c:234,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_ops.c:235,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - xml_obj
    - field
    - reset
    argTypes:
    - xmlNode*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 238
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 238
    functionName: update_counter
    functionSourceFile: /src/pacemaker/lib/cib/cib_ops.c
    functionUses: []
    functionsReached:
    - atoi
    - pcmk__itoa
    - pcmk__s
    - crm_xml_add
    - pcmk__str_copy
    - free
    - crm_element_value
    - crm_element_value_copy
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int update_counter(xmlNode *xml_obj, const char *field, bool
      reset) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_ops.c:265,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_ops.c:270,1
    - Dst: pcmk__update_schema
      Src: /src/pacemaker/lib/cib/cib_ops.c:273,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_ops.c:274,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_ops.c:272,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/cib/cib_ops.c:275,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_ops.c:276,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/lib/cib/cib_ops.c:278,1
    - Dst: update_counter
      Src: /src/pacemaker/lib/cib/cib_ops.c:279,1
    - Dst: update_counter
      Src: /src/pacemaker/lib/cib/cib_ops.c:280,1
    - Dst: update_counter
      Src: /src/pacemaker/lib/cib/cib_ops.c:281,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 20
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 286
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 286
    functionName: cib_process_upgrade
    functionSourceFile: /src/pacemaker/lib/cib/cib_ops.c
    functionUses: []
    functionsReached:
    - update_counter
    - pcmk__cmp_schemas_by_name
    - pcmk_rc2legacy
    - pcmk_is_set
    - crm_element_value
    - crm_trace
    - pcmk__update_schema
    linkageType: ''
    returnType: int
    signature: 'int cib_process_upgrade(const char *op, int options, const char *section,
      xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
      xmlNode ** answer) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_ops.c:347,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_ops.c:358,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_ops.c:387,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_ops.c:324,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/cib/cib_ops.c:327,1
    - Dst: cib_process_xpath
      Src: /src/pacemaker/lib/cib/cib_ops.c:314,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/cib/cib_ops.c:331,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_ops.c:341,1
    - Dst: cib_version_details
      Src: /src/pacemaker/lib/cib/cib_ops.c:361,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_ops.c:381,1
    - Dst: pcmk__xe_replace_match
      Src: /src/pacemaker/lib/cib/cib_ops.c:401,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/cib/cib_ops.c:402,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_ops.c:342,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_ops.c:353,1
    - Dst: cib_version_details
      Src: /src/pacemaker/lib/cib/cib_ops.c:362,1
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/lib/cib/cib_ops.c:400,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_ops.c:310,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_ops.c:311,1
    - Dst: pcmk__digest_xml
      Src: /src/pacemaker/lib/cib/cib_ops.c:345,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_ops.c:393,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_ops.c:355,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_ops.c:348,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/cib/cib_ops.c:395,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_ops.c:404,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 69
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 409
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 409
    functionName: cib_process_replace
    functionSourceFile: /src/pacemaker/lib/cib/cib_ops.c
    functionUses: []
    functionsReached:
    - pcmk__xe_replace_match
    - pcmk__digest_xml
    - pcmk__xml_copy
    - pcmk__s
    - cib_process_xpath
    - pcmk__str_eq
    - pcmk_find_cib_element
    - pcmk_rc2legacy
    - pcmk__xe_is
    - crm_err
    - free
    - pcmk__xml_free
    - crm_element_value
    - crm_info
    - crm_trace
    - cib_version_details
    linkageType: ''
    returnType: int
    signature: 'int cib_process_replace(const char *op, int options, const char *section,
      xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
      xmlNode ** answer) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_ops.c:430,1
    - Dst: cib_process_xpath
      Src: /src/pacemaker/lib/cib/cib_ops.c:433,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_ops.c:438,1
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/lib/cib/cib_ops.c:442,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/cib/cib_ops.c:443,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/lib/cib/cib_ops.c:444,1
    - Dst: delete_child
      Src: /src/pacemaker/lib/cib/cib_ops.c:446,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 16
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 450
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 450
    functionName: cib_process_delete
    functionSourceFile: /src/pacemaker/lib/cib/cib_ops.c
    functionUses: []
    functionsReached:
    - crm_trace
    - pcmk__xe_foreach_child
    - cib_process_xpath
    - pcmk_find_cib_element
    - delete_child
    - pcmk__xe_is
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int cib_process_delete(const char *op, int options, const char *section,
      xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
      xmlNode ** answer) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/cib/cib_ops.c:520,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_ops.c:528,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_ops.c:531,1
    - Dst: pcmk__xml_tree_foreach
      Src: /src/pacemaker/lib/cib/cib_ops.c:542,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/cib/cib_ops.c:521,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/cib/cib_ops.c:545,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - parent
    - new_obj
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 547
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 547
    functionName: add_cib_object
    functionSourceFile: /src/pacemaker/lib/cib/cib_ops.c
    functionUses: []
    functionsReached:
    - pcmk__xml_copy
    - pcmk__xe_first_child
    - pcmk__xml_tree_foreach
    - pcmk__xe_id
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int add_cib_object(xmlNode * parent, xmlNode * new_obj) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/cib/cib_ops.c:592,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_ops.c:589,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_ops.c:609,1
    - Dst: update_results
      Src: /src/pacemaker/lib/cib/cib_ops.c:618,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_ops.c:584,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_ops.c:585,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_ops.c:586,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_ops.c:596,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/cib/cib_ops.c:596,1
    - Dst: cib_process_modify
      Src: /src/pacemaker/lib/cib/cib_ops.c:604,1
    - Dst: pcmk__xml_first_child
      Src: /src/pacemaker/lib/cib/cib_ops.c:615,1
    - Dst: add_cib_object
      Src: /src/pacemaker/lib/cib/cib_ops.c:617,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/cib/cib_ops.c:612,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_ops.c:637,1
    - Dst: pcmk__xml_next
      Src: /src/pacemaker/lib/cib/cib_ops.c:616,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/lib/cib/cib_ops.c:633,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_ops.c:599,1
    - Dst: update_results
      Src: /src/pacemaker/lib/cib/cib_ops.c:625,1
    - Dst: add_cib_object
      Src: /src/pacemaker/lib/cib/cib_ops.c:624,1
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/lib/cib/cib_ops.c:611,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 55
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 641
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 641
    functionName: cib_process_create
    functionSourceFile: /src/pacemaker/lib/cib/cib_ops.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - CRM_CHECK
    - pcmk__s
    - update_results
    - pcmk__xml_next
    - crm_log_xml_err
    - pcmk__str_eq
    - strcmp
    - pcmk_find_cib_element
    - pcmk__xe_is
    - crm_err
    - add_cib_object
    - pcmk__xml_free
    - pcmk__xml_first_child
    - cib_process_modify
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int cib_process_create(const char *op, int options, const char *section,
      xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
      xmlNode ** answer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_ops.c:246,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_ops.c:249,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/cib/cib_ops.c:252,1
    - Dst: createEmptyCib
      Src: /src/pacemaker/lib/cib/cib_ops.c:251,1
    - Dst: update_counter
      Src: /src/pacemaker/lib/cib/cib_ops.c:253,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 10
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 257
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 257
    functionName: cib_process_erase
    functionSourceFile: /src/pacemaker/lib/cib/cib_ops.c
    functionUses: []
    functionsReached:
    - update_counter
    - createEmptyCib
    - pcmk__xml_free
    - pcmk__xe_copy_attrs
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int cib_process_erase(const char *op, int options, const char *section,
      xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
      xmlNode ** answer) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_ops.c:174,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_ops.c:182,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_ops.c:182,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_ops.c:175,1
    - Dst: cib_process_xpath
      Src: /src/pacemaker/lib/cib/cib_ops.c:178,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_ops.c:185,1
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/lib/cib/cib_ops.c:189,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_ops.c:195,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/cib/cib_ops.c:198,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_ops.c:206,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 33
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 211
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 211
    functionName: cib_process_query
    functionSourceFile: /src/pacemaker/lib/cib/cib_ops.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - CRM_CHECK
    - pcmk__s
    - cib_process_xpath
    - pcmk__str_eq
    - pcmk_find_cib_element
    - pcmk__xml_free
    - pcmk__xe_copy_attrs
    - crm_err
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int cib_process_query(const char *op, int options, const char *section,
      xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
      xmlNode ** answer) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_ops.c:294,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_ops.c:295,1
    - Dst: update_counter
      Src: /src/pacemaker/lib/cib/cib_ops.c:298,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_ops.c:295,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 6
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 301
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 301
    functionName: cib_process_bump
    functionSourceFile: /src/pacemaker/lib/cib/cib_ops.c
    functionUses: []
    functionsReached:
    - update_counter
    - crm_trace
    - pcmk__s
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'int cib_process_bump(const char *op, int options, const char *section,
      xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
      xmlNode ** answer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_delete_match
      Src: /src/pacemaker/lib/cib/cib_ops.c:416,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/cib/cib_ops.c:418,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_ops.c:417,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - child
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 422
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 422
    functionName: delete_child
    functionSourceFile: /src/pacemaker/lib/cib/cib_ops.c
    functionUses: []
    functionsReached:
    - crm_trace
    - pcmk__xe_delete_match
    - pcmk__xe_id
    linkageType: ''
    returnType: int
    signature: 'static int delete_child(xmlNode *child, void *userdata) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_ops.c:459,1
    - Dst: pcmk_cib_parent_name_for
      Src: /src/pacemaker/lib/cib/cib_ops.c:474,1
    - Dst: cib_process_xpath
      Src: /src/pacemaker/lib/cib/cib_ops.c:462,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_ops.c:467,1
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/lib/cib/cib_ops.c:471,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_ops.c:480,1
    - Dst: cib_process_xpath
      Src: /src/pacemaker/lib/cib/cib_ops.c:481,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_ops.c:483,1
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/lib/cib/cib_ops.c:485,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_ops.c:488,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/cib/cib_ops.c:496,1
    - Dst: pcmk__xe_update_match
      Src: /src/pacemaker/lib/cib/cib_ops.c:494,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_ops.c:490,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 37
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 503
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 503
    functionName: cib_process_modify
    functionSourceFile: /src/pacemaker/lib/cib/cib_ops.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_trace
    - pcmk_cib_parent_name_for
    - CRM_CHECK
    - pcmk__xml_copy
    - cib_process_xpath
    - pcmk_find_cib_element
    - pcmk_is_set
    - pcmk__xml_free
    - pcmk__xe_update_match
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int cib_process_modify(const char *op, int options, const char *section,
      xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
      xmlNode ** answer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/cib/cib_ops.c:558,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/lib/cib/cib_ops.c:564,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_ops.c:564,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/cib/cib_ops.c:562,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_ops.c:561,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_ops.c:565,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_ops.c:566,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_ops.c:567,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cib/cib_ops.c:569,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - failed
    - target
    - operation
    - return_code
    argTypes:
    - xmlNode*
    - xmlNode*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 574
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 574
    functionName: update_results
    functionSourceFile: /src/pacemaker/lib/cib/cib_ops.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xml_copy
    - crm_xml_add
    - crm_warn
    - pcmk_strerror
    - pcmk__xe_id
    linkageType: ''
    returnType: bool
    signature: 'static bool update_results(xmlNode *failed, xmlNode *target, const
      char *operation, int return_code) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_ops.c:650,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_ops.c:658,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/cib/cib_ops.c:660,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_ops.c:653,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_ops.c:655,1
    - Dst: xml_apply_patchset
      Src: /src/pacemaker/lib/cib/cib_ops.c:662,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 13
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 663
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 663
    functionName: cib_process_diff
    functionSourceFile: /src/pacemaker/lib/cib/cib_ops.c
    functionUses: []
    functionsReached:
    - pcmk__xml_copy
    - xml_apply_patchset
    - pcmk_is_set
    - pcmk__xml_free
    - crm_element_value
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int cib_process_diff(const char *op, int options, const char *section,
      xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
      xmlNode ** answer) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/cib/cib_ops.c:681,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_ops.c:674,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_ops.c:689,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_ops.c:766,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_ops.c:802,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/cib/cib_ops.c:820,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_ops.c:769,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/cib/cib_ops.c:809,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_ops.c:787,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_ops.c:793,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_ops.c:790,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_ops.c:805,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_ops.c:795,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/lib/cib/cib_ops.c:829,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_ops.c:672,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_ops.c:678,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/lib/cib/cib_ops.c:686,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_ops.c:688,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_ops.c:692,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cib/cib_ops.c:739,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_ops.c:736,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_ops.c:734,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/cib/cib_ops.c:723,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_ops.c:749,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_ops.c:815,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_ops.c:806,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/lib/cib/cib_ops.c:683,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_ops.c:744,1
    - Dst: xmlGetNodePath
      Src: /src/pacemaker/lib/cib/cib_ops.c:732,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_ops.c:799,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_ops.c:804,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_ops.c:819,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_ops.c:673,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_ops.c:699,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/lib/cib/cib_ops.c:725,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_ops.c:733,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_ops.c:752,1
    - Dst: pcmk__xe_update_match
      Src: /src/pacemaker/lib/cib/cib_ops.c:756,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cib/cib_ops.c:762,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/cib/cib_ops.c:763,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/lib/cib/cib_ops.c:772,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_ops.c:783,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_ops.c:792,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 118
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 831
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 831
    functionName: cib_process_xpath
    functionSourceFile: /src/pacemaker/lib/cib/cib_ops.c
    functionUses: []
    functionsReached:
    - free
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    - pcmk__xe_create
    - pcmk__s
    - pcmk__xpath_result
    - crm_strdup_printf
    - pcmk_is_set
    - xmlXPathFreeObject
    - pcmk__xe_copy_attrs
    - crm_element_value
    - pcmk__xml_copy
    - pcmk__str_eq
    - xmlGetNodePath
    - pcmk__xe_update_match
    - crm_warn
    - crm_trace
    - crm_debug
    - crm_xml_add
    - pcmk__xml_free
    linkageType: ''
    returnType: int
    signature: 'int cib_process_xpath(const char *op, int options, const char *section,
      const xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib,
      xmlNode **answer) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_file.c:531,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_file.c:538,1
    - Dst: unregister_client
      Src: /src/pacemaker/lib/cib/cib_file.c:534,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_file.c:541,1
    - Dst: cib_file_write_live
      Src: /src/pacemaker/lib/cib/cib_file.c:542,1
    - Dst: pcmk__ends_with_ext
      Src: /src/pacemaker/lib/cib/cib_file.c:548,1
    - Dst: pcmk__xml_write_file
      Src: /src/pacemaker/lib/cib/cib_file.c:550,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_file.c:557,1
    - Dst: cib_clear_file_flags
      Src: /src/pacemaker/lib/cib/cib_file.c:558,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_file.c:565,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_file.c:560,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - cib
    argTypes:
    - cib_t*
    constantsTouched: []
    func_position:
      end: 568
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 568
    functionName: cib_file_signoff
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__xml_write_file
    - cib_clear_file_flags
    - cib_file_write_live
    - pcmk_is_set
    - pcmk__xml_free
    - unregister_client
    - crm_info
    - crm_err
    - pcmk__ends_with_ext
    linkageType: ''
    returnType: int
    signature: 'static int cib_file_signoff(cib_t *cib) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - cib
    - (*dnotify)
    argTypes:
    - cib_t*
    - void
    constantsTouched: []
    func_position:
      end: 607
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 607
    functionName: cib_file_set_connection_dnotify
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int cib_file_set_connection_dnotify(cib_t *cib, void (*dnotify)
      (gpointer user_data)) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/pacemaker/lib/cib/cib_file.c:446,1
    - Dst: getpwnam
      Src: /src/pacemaker/lib/cib/cib_file.c:454,1
    - Dst: strrchr
      Src: /src/pacemaker/lib/cib/cib_file.c:448,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/cib/cib_file.c:456,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/cib/cib_file.c:465,1
    - Dst: cib_file_write_with_digest
      Src: /src/pacemaker/lib/cib/cib_file.c:494,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 2
    argNames:
    - cib_root
    - path
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 510
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 510
    functionName: cib_file_write_live
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - crm_perror
    - strrchr
    - cib_file_write_with_digest
    - getpwnam
    - geteuid
    linkageType: ''
    returnType: int
    signature: 'static int cib_file_write_live(xmlNode *cib_root, char *path) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_file.c:926,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_file.c:931,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_file.c:927,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_file.c:930,1
    - Dst: cib_file_read_and_verify
      Src: /src/pacemaker/lib/cib/cib_file.c:939,1
    - Dst: cib_file_backup
      Src: /src/pacemaker/lib/cib/cib_file.c:948,1
    - Dst: cib_file_prepare_xml
      Src: /src/pacemaker/lib/cib/cib_file.c:955,1
    - Dst: fchown
      Src: /src/pacemaker/lib/cib/cib_file.c:973,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/cib/cib_file.c:960,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/cib/cib_file.c:968,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:1038,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:1039,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/cib/cib_file.c:1022,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_file.c:938,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_file.c:953,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_file.c:982,1
    - Dst: close
      Src: /src/pacemaker/lib/cib/cib_file.c:1012,1
    - Dst: close
      Src: /src/pacemaker/lib/cib/cib_file.c:1015,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_file.c:1016,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_file.c:1019,1
    - Dst: cib_file_read_and_verify
      Src: /src/pacemaker/lib/cib/cib_file.c:1021,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_file.c:1025,1
    - Dst: rename
      Src: /src/pacemaker/lib/cib/cib_file.c:1026,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:1041,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:1042,1
    - Dst: fchmod
      Src: /src/pacemaker/lib/cib/cib_file.c:967,1
    - Dst: pcmk__sync_directory
      Src: /src/pacemaker/lib/cib/cib_file.c:1035,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_file.c:941,1
    - Dst: mkstemp
      Src: /src/pacemaker/lib/cib/cib_file.c:958,1
    - Dst: umask
      Src: /src/pacemaker/lib/cib/cib_file.c:954,1
    - Dst: pcmk__xml_write_fd
      Src: /src/pacemaker/lib/cib/cib_file.c:981,1
    - Dst: pcmk__digest_on_disk_cib
      Src: /src/pacemaker/lib/cib/cib_file.c:988,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_file.c:990,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/cib/cib_file.c:1001,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/cib/cib_file.c:1027,1
    - Dst: rename
      Src: /src/pacemaker/lib/cib/cib_file.c:1030,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:1040,1
    - Dst: close
      Src: /src/pacemaker/lib/cib/cib_file.c:1004,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/cib/cib_file.c:1031,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_file.c:934,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_file.c:935,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/cib/cib_file.c:974,1
    - Dst: mkstemp
      Src: /src/pacemaker/lib/cib/cib_file.c:994,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/cib/cib_file.c:996,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/cib/cib_file.c:989,1
    - Dst: fchown
      Src: /src/pacemaker/lib/cib/cib_file.c:1000,1
    - Dst: pcmk__write_sync
      Src: /src/pacemaker/lib/cib/cib_file.c:1007,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_file.c:1009,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_file.c:1010,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 99
    argCount: 3
    argNames:
    - cib_root
    - cib_dirname
    - cib_filename
    argTypes:
    - xmlNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1044
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 1044
    functionName: cib_file_write_with_digest
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - cib_file_backup
    - umask
    - rename
    - free
    - pcmk__write_sync
    - fchmod
    - crm_strdup_printf
    - crm_perror
    - mkstemp
    - crm_element_value
    - pcmk__assert
    - cib_file_prepare_xml
    - pcmk_rc_str
    - crm_err
    - pcmk__sync_directory
    - pcmk__digest_on_disk_cib
    - crm_info
    - crm_trace
    - close
    - crm_debug
    - cib_file_read_and_verify
    - pcmk__xml_write_fd
    - fchown
    linkageType: ''
    returnType: int
    signature: 'int cib_file_write_with_digest(xmlNode *cib_root, const char *cib_dirname,
      const char *cib_filename) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_file.c:1113,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_file.c:1123,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/cib/cib_file.c:1124,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_file.c:1126,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/cib/cib_file.c:1113,1
    - Dst: cib_file_process_transaction_requests
      Src: /src/pacemaker/lib/cib/cib_file.c:1133,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_file.c:1135,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - cib
    - transaction
    - result_cib
    argTypes:
    - cib_t*
    - xmlNode*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 1151
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1151
    functionName: cib_file_commit_transaction
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__xml_copy
    - pcmk__xe_is
    - cib_file_process_transaction_requests
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int cib_file_commit_transaction(cib_t *cib, xmlNode *transaction,
      xmlNode **result_cib) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__real_path
      Src: /src/pacemaker/lib/cib/cib_file.c:197,1
    - Dst: pcmk__real_path
      Src: /src/pacemaker/lib/cib/cib_file.c:200,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:205,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:203,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/cib/cib_file.c:202,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 209
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 209
    functionName: cib_file_is_live
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - free
    - pcmk__real_path
    - strcmp
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean cib_file_is_live(const char *filename) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/cib/cib_file.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - client_id
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: get_client
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    linkageType: ''
    returnType: cib_t*
    signature: 'static cib_t *get_client(const char *client_id) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cib_file_signoff
      Src: /src/pacemaker/lib/cib/cib_file.c:576,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:585,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:584,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:583,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:582,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:586,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:587,1
    - Dst: fprintf
      Src: /src/pacemaker/lib/cib/cib_file.c:590,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - cib
    argTypes:
    - cib_t*
    constantsTouched: []
    func_position:
      end: 594
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 594
    functionName: cib_file_free
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - cib_file_signoff
    - free
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int cib_file_free(cib_t *cib) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - cib
    - callback
    - enabled
    argTypes:
    - cib_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 600
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 600
    functionName: cib_file_register_notification
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int cib_file_register_notification(cib_t *cib, const char *callback,
      int enabled) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_file.c:1160,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_file.c:1163,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_file.c:1166,1
    - Dst: cib_file_commit_transaction
      Src: /src/pacemaker/lib/cib/cib_file.c:1168,1
    - Dst: get_client
      Src: /src/pacemaker/lib/cib/cib_file.c:1165,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_file.c:1172,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_file.c:1174,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/cib/cib_file.c:1176,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 1177
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1177
    functionName: cib_file_process_commit_transaction
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - cib_file_commit_transaction
    - CRM_CHECK
    - get_client
    - pcmk_rc_str
    - pcmk_rc2legacy
    - crm_element_value
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int cib_file_process_commit_transaction(const char *op, int
      options, const char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib,
      xmlNode **result_cib, xmlNode **answer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/cib/cib_file.c:172,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/lib/cib/cib_file.c:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - operation
    argTypes:
    - cib__operation_t*
    constantsTouched: []
    func_position:
      end: 178
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 178
    functionName: file_get_op_function
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - PCMK__NELEM
    linkageType: ''
    returnType: cib__op_fn_t
    signature: 'static cib__op_fn_t file_get_op_function(const cib__operation_t *operation) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/lib/cib/cib_file.c:92,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/cib/cib_file.c:97,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/cib/cib_file.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - cib
    argTypes:
    - cib_t*
    constantsTouched: []
    func_position:
      end: 101
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 101
    functionName: unregister_client
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - g_hash_table_remove
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void unregister_client(const cib_t *cib) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 3
    argNames:
    - cib
    - async_id
    - sync_id
    argTypes:
    - cib_t*
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 635
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 635
    functionName: cib_file_client_id
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int cib_file_client_id(const cib_t *cib, const char **async_id,
      const char **sync_id) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/lib/cib/cib_file.c:381,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cib/cib_file.c:393,1
    - Dst: pcmk__xml_read
      Src: /src/pacemaker/lib/cib/cib_file.c:386,1
    - Dst: stat
      Src: /src/pacemaker/lib/cib/cib_file.c:381,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/cib/cib_file.c:392,1
    - Dst: pcmk__configured_schema_validates
      Src: /src/pacemaker/lib/cib/cib_file.c:397,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_file.c:398,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 2
    argNames:
    - filename
    - output
    argTypes:
    - char*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 405
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 405
    functionName: load_file_cib
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_first_child
    - stat
    - strcmp
    - pcmk__configured_schema_validates
    - pcmk__xml_read
    - pcmk__xml_free
    linkageType: ''
    returnType: int
    signature: 'static int load_file_cib(const char *filename, xmlNode **output) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__file_contents
      Src: /src/pacemaker/lib/cib/cib_file.c:708,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_file.c:713,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_file.c:721,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_file.c:722,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cib/cib_file.c:718,1
    - Dst: pcmk__verify_digest
      Src: /src/pacemaker/lib/cib/cib_file.c:725,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:726,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - root
    - sigfile
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 728
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 728
    functionName: cib_file_verify_digest
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - pcmk__file_contents
    - pcmk__verify_digest
    - free
    - pcmk_rc_str
    - crm_warn
    - crm_err
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean cib_file_verify_digest(xmlNode *root, const char *sigfile) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/cib/cib_file.c:753,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/cib/cib_file.c:761,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cib/cib_file.c:764,1
    - Dst: stat
      Src: /src/pacemaker/lib/cib/cib_file.c:759,1
    - Dst: pcmk__xml_read
      Src: /src/pacemaker/lib/cib/cib_file.c:769,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cib/cib_file.c:771,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_file.c:777,1
    - Dst: cib_file_verify_digest
      Src: /src/pacemaker/lib/cib/cib_file.c:781,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:782,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_file.c:783,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_file.c:791,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:787,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 3
    argNames:
    - filename
    - sigfile
    - root
    argTypes:
    - char*
    - char*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 794
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 794
    functionName: cib_file_read_and_verify
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - crm_perror
    - stat
    - crm_strdup_printf
    - cib_file_verify_digest
    - pcmk__xml_read
    - free
    - pcmk__xml_free
    - pcmk__assert
    - crm_warn
    linkageType: ''
    returnType: int
    signature: 'int cib_file_read_and_verify(const char *filename, const char *sigfile,
      xmlNode **root) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_file_cib
      Src: /src/pacemaker/lib/cib/cib_file.c:416,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_file.c:427,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cib/cib_file.c:420,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_file.c:421,1
    - Dst: register_client
      Src: /src/pacemaker/lib/cib/cib_file.c:424,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_file.c:428,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/cib/cib_file.c:429,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - cib
    - name
    - type
    argTypes:
    - cib_t*
    - char*
    - enum cib_conn_type
    constantsTouched: []
    func_position:
      end: 432
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 432
    functionName: cib_file_signon
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_strerror
    - pcmk__s
    - register_client
    - load_file_cib
    - crm_info
    linkageType: ''
    returnType: int
    signature: 'static int cib_file_signon(cib_t *cib, const char *name, enum cib_conn_type
      type) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/cib/cib_file.c:72,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/lib/cib/cib_file.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - cib
    argTypes:
    - cib_t*
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: register_client
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - pcmk__strkey_table
    - g_hash_table_insert
    linkageType: ''
    returnType: void
    signature: 'static void register_client(const cib_t *cib) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/pacemaker/lib/cib/cib_file.c:645,1
    - Dst: cib_new_variant
      Src: /src/pacemaker/lib/cib/cib_file.c:651,1
    - Dst: calloc
      Src: /src/pacemaker/lib/cib/cib_file.c:662,1
    - Dst: strdup
      Src: /src/pacemaker/lib/cib/cib_file.c:656,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:658,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:664,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:665,1
    - Dst: crm_generate_uuid
      Src: /src/pacemaker/lib/cib/cib_file.c:669,1
    - Dst: cib_file_is_live
      Src: /src/pacemaker/lib/cib/cib_file.c:676,1
    - Dst: cib_set_file_flags
      Src: /src/pacemaker/lib/cib/cib_file.c:677,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_file.c:678,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - cib_location
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 692
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 692
    functionName: cib_file_new
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - crm_trace
    - calloc
    - free
    - cib_set_file_flags
    - cib_file_is_live
    - crm_generate_uuid
    - strdup
    - getenv
    - cib_new_variant
    linkageType: ''
    returnType: cib_t*
    signature: 'cib_t *cib_file_new(const char *cib_location) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_file.c:220,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/cib/cib_file.c:222,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/cib/cib_file.c:237,1
    - Dst: cib_perform_op
      Src: /src/pacemaker/lib/cib/cib_file.c:252,1
    - Dst: cib__get_operation
      Src: /src/pacemaker/lib/cib/cib_file.c:234,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/cib/cib_file.c:224,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_file.c:241,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/lib/cib/cib_file.c:247,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_file.c:281,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cib/cib_file.c:241,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_file.c:244,1
    - Dst: pcmk__validate_xml
      Src: /src/pacemaker/lib/cib/cib_file.c:265,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_file.c:271,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_file.c:256,1
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/lib/cib/cib_file.c:249,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_file.c:279,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_file.c:221,1
    - Dst: file_get_op_function
      Src: /src/pacemaker/lib/cib/cib_file.c:235,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/lib/cib/cib_file.c:238,1
    - Dst: cib_set_file_flags
      Src: /src/pacemaker/lib/cib/cib_file.c:274,1
    - Dst: pcmk__log_xml_patchset
      Src: /src/pacemaker/lib/cib/cib_file.c:268,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 48
    argCount: 3
    argNames:
    - cib
    - request
    - output
    argTypes:
    - cib_t*
    - xmlNode*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 283
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 283
    functionName: cib_file_process_request
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - pcmk__log_xml_patchset
    - file_get_op_function
    - pcmk__xe_first_child
    - pcmk_find_cib_element
    - pcmk__xe_get_flags
    - pcmk_rc_str
    - pcmk_is_set
    - pcmk__xe_is
    - pcmk__xml_free
    - cib_set_file_flags
    - cib__get_operation
    - crm_element_value
    - pcmk__validate_xml
    - crm_warn
    - cib_perform_op
    - crm_element_value_int
    linkageType: ''
    returnType: int
    signature: 'static int cib_file_process_request(cib_t *cib, xmlNode *request,
      xmlNode **output) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_file.c:894,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/cib/cib_file.c:899,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_file.c:901,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cib/cib_file.c:900,1
    - Dst: pcmk__xe_add_last_written
      Src: /src/pacemaker/lib/cib/cib_file.c:895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - root
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 902
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 902
    functionName: cib_file_prepare_xml
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - pcmk__xe_add_last_written
    - CRM_CHECK
    - pcmk__xe_first_child
    - crm_xml_add
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void cib_file_prepare_xml(xmlNode *root) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/lib/cib/cib_file.c:1062,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cib/cib_file.c:1069,1
    - Dst: cib_file_process_request
      Src: /src/pacemaker/lib/cib/cib_file.c:1071,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/lib/cib/cib_file.c:1066,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/lib/cib/cib_file.c:1073,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_file.c:1075,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_file.c:1077,1
    - Dst: crm_log_xml_info
      Src: /src/pacemaker/lib/cib/cib_file.c:1078,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cib/cib_file.c:1082,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/cib/cib_file.c:1085,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - cib
    - transaction
    argTypes:
    - cib_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1089
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1089
    functionName: cib_file_process_transaction_requests
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - crm_trace
    - cib_file_process_request
    - pcmk__xe_first_child
    - crm_log_xml_info
    - pcmk_rc_str
    - pcmk__xe_next
    - crm_element_value
    - crm_log_xml_trace
    - crm_err
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int cib_file_process_transaction_requests(cib_t *cib, xmlNode
      *transaction) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_file.c:298,1
    - Dst: cib__get_operation
      Src: /src/pacemaker/lib/cib/cib_file.c:310,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_file.c:299,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_file.c:299,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cib/cib_file.c:300,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/lib/cib/cib_file.c:311,1
    - Dst: file_get_op_function
      Src: /src/pacemaker/lib/cib/cib_file.c:317,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_file.c:319,1
    - Dst: cib__set_call_options
      Src: /src/pacemaker/lib/cib/cib_file.c:323,1
    - Dst: cib__create_op
      Src: /src/pacemaker/lib/cib/cib_file.c:325,1
    - Dst: cib_file_process_request
      Src: /src/pacemaker/lib/cib/cib_file.c:338,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/lib/cib/cib_file.c:342,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_file.c:331,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_file.c:353,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cib/cib_file.c:355,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cib/cib_file.c:333,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cib/cib_file.c:330,1
    - Dst: cib__extend_transaction
      Src: /src/pacemaker/lib/cib/cib_file.c:334,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 56
    argCount: 8
    argNames:
    - cib
    - op
    - host
    - section
    - data
    - output_data
    - call_options
    - user_name
    argTypes:
    - cib_t*
    - char*
    - char*
    - char*
    - xmlNode*
    - xmlNode**
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 357
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 357
    functionName: cib_file_perform_op_delegate
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - file_get_op_function
    - pcmk__xml_copy
    - pcmk__s
    - cib_file_process_request
    - crm_xml_add
    - pcmk_rc2legacy
    - pcmk_is_set
    - pcmk__xml_free
    - cib__get_operation
    - cib__create_op
    - cib__extend_transaction
    - crm_info
    - crm_err
    - cib__set_call_options
    linkageType: ''
    returnType: int
    signature: 'static int cib_file_perform_op_delegate(cib_t *cib, const char *op,
      const char *host, const char *section, xmlNode *data, xmlNode **output_data,
      int call_options, const char *user_name) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_file.c:811,1
    - Dst: unlink
      Src: /src/pacemaker/lib/cib/cib_file.c:826,1
    - Dst: link
      Src: /src/pacemaker/lib/cib/cib_file.c:830,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/cib/cib_file.c:837,1
    - Dst: pcmk__chown_series_sequence
      Src: /src/pacemaker/lib/cib/cib_file.c:858,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cib/cib_file.c:861,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cib/cib_file.c:862,1
    - Dst: pcmk__sync_directory
      Src: /src/pacemaker/lib/cib/cib_file.c:866,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:872,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_file.c:810,1
    - Dst: link
      Src: /src/pacemaker/lib/cib/cib_file.c:836,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/cib/cib_file.c:850,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:873,1
    - Dst: pcmk__read_series_sequence
      Src: /src/pacemaker/lib/cib/cib_file.c:816,1
    - Dst: pcmk__series_filename
      Src: /src/pacemaker/lib/cib/cib_file.c:821,1
    - Dst: unlink
      Src: /src/pacemaker/lib/cib/cib_file.c:827,1
    - Dst: chown
      Src: /src/pacemaker/lib/cib/cib_file.c:848,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/cib/cib_file.c:855,1
    - Dst: pcmk__write_series_sequence
      Src: /src/pacemaker/lib/cib/cib_file.c:843,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cib/cib_file.c:867,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:870,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cib/cib_file.c:823,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/cib/cib_file.c:831,1
    - Dst: chown
      Src: /src/pacemaker/lib/cib/cib_file.c:853,1
    - Dst: free
      Src: /src/pacemaker/lib/cib/cib_file.c:871,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 2
    argNames:
    - cib_dirname
    - cib_filename
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 875
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 875
    functionName: cib_file_backup
    functionSourceFile: /src/pacemaker/lib/cib/cib_file.c
    functionUses: []
    functionsReached:
    - pcmk__sync_directory
    - pcmk__read_series_sequence
    - crm_strdup_printf
    - crm_perror
    - pcmk__chown_series_sequence
    - pcmk__series_filename
    - unlink
    - chown
    - free
    - pcmk_rc_str
    - crm_info
    - link
    - crm_err
    - pcmk__write_series_sequence
    linkageType: ''
    returnType: int
    signature: 'static int cib_file_backup(const char *cib_dirname, const char *cib_filename) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/cluster/corosync.c:54,1
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/lib/cluster/corosync.c:54,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/corosync.c:60,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cluster/corosync.c:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk__node_status_t*
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: pcmk__corosync_uuid
    functionSourceFile: /src/pacemaker/lib/cluster/corosync.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - crm_info
    - pcmk_get_cluster_layer
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__corosync_uuid(const pcmk__node_status_t *node) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cs_strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:135,1
    - Dst: crm_ipc_is_authentic_process
      Src: /src/pacemaker/lib/cluster/corosync.c:151,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/corosync.c:171,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cluster/corosync.c:169,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/corosync.c:179,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cluster/corosync.c:180,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/corosync.c:184,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cluster/corosync.c:184,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cluster/corosync.c:188,1
    - Dst: cmap_finalize
      Src: /src/pacemaker/lib/cluster/corosync.c:206,1
    - Dst: cs_strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:126,1
    - Dst: sleep
      Src: /src/pacemaker/lib/cluster/corosync.c:128,1
    - Dst: PCMK__SPECIAL_PID_AS_0
      Src: /src/pacemaker/lib/cluster/corosync.c:155,1
    - Dst: cs_strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:146,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:153,1
    - Dst: cmap_get_string
      Src: /src/pacemaker/lib/cluster/corosync.c:183,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/corosync.c:190,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cluster/corosync.c:190,1
    - Dst: pcmk__cpg_local_nodeid
      Src: /src/pacemaker/lib/cluster/corosync.c:116,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/corosync.c:121,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:159,1
    - Dst: strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:160,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/corosync.c:172,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/corosync.c:185,1
    - Dst: cmap_get_string
      Src: /src/pacemaker/lib/cluster/corosync.c:189,1
    - Dst: node_name_is_valid
      Src: /src/pacemaker/lib/cluster/corosync.c:192,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/corosync.c:196,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/corosync.c:210,1
    - Dst: pcmk__init_cmap
      Src: /src/pacemaker/lib/cluster/corosync.c:123,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/corosync.c:126,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/corosync.c:134,1
    - Dst: cmap_fd_get
      Src: /src/pacemaker/lib/cluster/corosync.c:143,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:145,1
    - Dst: cmap_get_uint32
      Src: /src/pacemaker/lib/cluster/corosync.c:170,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cluster/corosync.c:182,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/corosync.c:193,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 90
    argCount: 2
    argNames:
    - cmap_handle
    - nodeid
    argTypes:
    - uint64_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 213
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 213
    functionName: pcmk__corosync_name
    functionSourceFile: /src/pacemaker/lib/cluster/corosync.c
    functionUses: []
    functionsReached:
    - pcmk__cpg_local_nodeid
    - free
    - crm_ipc_is_authentic_process
    - PCMK__SPECIAL_PID_AS_0
    - cs_strerror
    - pcmk__s
    - crm_strdup_printf
    - node_name_is_valid
    - crm_err
    - strerror
    - cmap_fd_get
    - cmap_get_string
    - crm_warn
    - crm_info
    - crm_trace
    - cmap_get_uint32
    - crm_debug
    - sleep
    - pcmk__init_cmap
    - cmap_finalize
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__corosync_name(uint64_t /*cmap_handle_t */ cmap_handle,
      uint32_t nodeid) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cluster_has_quorum
      Src: /src/pacemaker/lib/cluster/corosync.c:276,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/corosync.c:285,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/cluster/corosync.c:279,1
    - Dst: pcmk__cluster_set_quorum
      Src: /src/pacemaker/lib/cluster/corosync.c:287,1
    - Dst: pcmk__cluster_set_quorum
      Src: /src/pacemaker/lib/cluster/corosync.c:282,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/corosync.c:290,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/corosync.c:296,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/cluster/corosync.c:304,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/cluster/corosync.c:305,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/corosync.c:313,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/corosync.c:323,1
    - Dst: pcmk__update_peer_state
      Src: /src/pacemaker/lib/cluster/corosync.c:327,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/corosync.c:320,1
    - Dst: pcmk__corosync_name
      Src: /src/pacemaker/lib/cluster/corosync.c:318,1
    - Dst: pcmk__reap_unseen_nodes
      Src: /src/pacemaker/lib/cluster/corosync.c:331,1
    - Dst: quorum_app_callback
      Src: /src/pacemaker/lib/cluster/corosync.c:334,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/lib/cluster/corosync.c:321,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/lib/cluster/corosync.c:316,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 5
    argNames:
    - handle
    - quorate
    - ring_id
    - view_list_entries
    - view_list
    argTypes:
    - quorum_handle_t
    - uint32_t
    - uint64_t
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 336
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 336
    functionName: quorum_notification_cb
    functionSourceFile: /src/pacemaker/lib/cluster/corosync.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__corosync_name
    - pcmk__get_node
    - pcmk__update_peer_state
    - quorum_app_callback
    - pcmk__reap_unseen_nodes
    - pcmk__cluster_set_quorum
    - pcmk__cluster_has_quorum
    - crm_notice
    - free
    - crm_warn
    - crm_info
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void quorum_notification_cb(quorum_handle_t handle, uint32_t
      quorate, uint64_t ring_id, uint32_t view_list_entries, uint32_t *view_list) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: quorum_model_initialize
      Src: /src/pacemaker/lib/cluster/corosync.c:373,1
    - Dst: quorum_initialize
      Src: /src/pacemaker/lib/cluster/corosync.c:381,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:392,1
    - Dst: crm_ipc_is_authentic_process
      Src: /src/pacemaker/lib/cluster/corosync.c:404,1
    - Dst: pcmk__cluster_set_quorum
      Src: /src/pacemaker/lib/cluster/corosync.c:431,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:421,1
    - Dst: cs_strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:388,1
    - Dst: quorum_fd_get
      Src: /src/pacemaker/lib/cluster/corosync.c:396,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:398,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/cluster/corosync.c:426,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:413,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/corosync.c:428,1
    - Dst: strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:414,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:435,1
    - Dst: pcmk__corosync_add_nodes
      Src: /src/pacemaker/lib/cluster/corosync.c:441,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/corosync.c:363,1
    - Dst: quorum_getquorate
      Src: /src/pacemaker/lib/cluster/corosync.c:419,1
    - Dst: mainloop_add_fd
      Src: /src/pacemaker/lib/cluster/corosync.c:439,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:387,1
    - Dst: strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:399,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:406,1
    - Dst: PCMK__SPECIAL_PID_AS_0
      Src: /src/pacemaker/lib/cluster/corosync.c:408,1
    - Dst: quorum_trackstart
      Src: /src/pacemaker/lib/cluster/corosync.c:433,1
    - Dst: quorum_finalize
      Src: /src/pacemaker/lib/cluster/corosync.c:445,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 2
    argNames:
    - (*dispatch)
    - (*destroy)
    argTypes:
    - gboolean
    - void
    constantsTouched: []
    func_position:
      end: 447
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 447
    functionName: pcmk__corosync_quorum_connect
    functionSourceFile: /src/pacemaker/lib/cluster/corosync.c
    functionUses: []
    functionsReached:
    - crm_debug
    - PCMK__SPECIAL_PID_AS_0
    - quorum_finalize
    - cs_strerror
    - pcmk__corosync_add_nodes
    - quorum_fd_get
    - strerror
    - quorum_model_initialize
    - pcmk__cluster_set_quorum
    - crm_notice
    - mainloop_add_fd
    - crm_ipc_is_authentic_process
    - crm_warn
    - quorum_trackstart
    - quorum_initialize
    - crm_err
    - quorum_getquorate
    linkageType: ''
    returnType: void
    signature: 'void pcmk__corosync_quorum_connect(gboolean (*dispatch)(unsigned long
      long, gboolean), void (*destroy)(gpointer)) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__init_cmap
      Src: /src/pacemaker/lib/cluster/corosync.c:513,1
    - Dst: pcmk__cs_err_str
      Src: /src/pacemaker/lib/cluster/corosync.c:521,1
    - Dst: cmap_finalize
      Src: /src/pacemaker/lib/cluster/corosync.c:516,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/corosync.c:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 523
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 523
    functionName: pcmk__corosync_is_active
    functionSourceFile: /src/pacemaker/lib/cluster/corosync.c
    functionUses: []
    functionsReached:
    - cmap_finalize
    - pcmk__cs_err_str
    - crm_info
    - pcmk__init_cmap
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__corosync_is_active(void) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__init_cmap
      Src: /src/pacemaker/lib/cluster/corosync.c:576,1
    - Dst: sleep
      Src: /src/pacemaker/lib/cluster/corosync.c:581,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/corosync.c:579,1
    - Dst: crm_ipc_is_authentic_process
      Src: /src/pacemaker/lib/cluster/corosync.c:599,1
    - Dst: strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:608,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/corosync.c:621,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:607,1
    - Dst: cs_strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:594,1
    - Dst: cmap_get_uint32
      Src: /src/pacemaker/lib/cluster/corosync.c:620,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/cluster/corosync.c:632,1
    - Dst: crm_crit
      Src: /src/pacemaker/lib/cluster/corosync.c:639,1
    - Dst: cmap_finalize
      Src: /src/pacemaker/lib/cluster/corosync.c:666,1
    - Dst: cs_strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:579,1
    - Dst: pcmk__cluster_init_node_caches
      Src: /src/pacemaker/lib/cluster/corosync.c:612,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cluster/corosync.c:619,1
    - Dst: pcmk__corosync_name
      Src: /src/pacemaker/lib/cluster/corosync.c:627,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/corosync.c:613,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/corosync.c:637,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/cluster/corosync.c:642,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/lib/cluster/corosync.c:649,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/lib/cluster/corosync.c:658,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cluster/corosync.c:659,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/corosync.c:663,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/corosync.c:587,1
    - Dst: cmap_fd_get
      Src: /src/pacemaker/lib/cluster/corosync.c:591,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:593,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:601,1
    - Dst: PCMK__SPECIAL_PID_AS_0
      Src: /src/pacemaker/lib/cluster/corosync.c:603,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/cluster/corosync.c:633,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/corosync.c:648,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/lib/cluster/corosync.c:656,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 78
    argCount: 1
    argNames:
    - xml_parent
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 668
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 668
    functionName: pcmk__corosync_add_nodes
    functionSourceFile: /src/pacemaker/lib/cluster/corosync.c
    functionUses: []
    functionsReached:
    - pcmk__cluster_init_node_caches
    - pcmk__get_node
    - crm_exit
    - free
    - crm_ipc_is_authentic_process
    - PCMK__SPECIAL_PID_AS_0
    - pcmk__xe_create
    - cs_strerror
    - crm_strdup_printf
    - crm_xml_add_ll
    - crm_err
    - crm_crit
    - g_hash_table_iter_next
    - pcmk__corosync_name
    - strerror
    - pcmk__str_eq
    - cmap_fd_get
    - crm_warn
    - crm_trace
    - cmap_get_uint32
    - crm_debug
    - sleep
    - crm_xml_add
    - pcmk__init_cmap
    - cmap_finalize
    - g_hash_table_iter_init
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__corosync_add_nodes(xmlNode *xml_parent) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/corosync.c:761,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/corosync.c:767,1
    - Dst: cmap_fd_get
      Src: /src/pacemaker/lib/cluster/corosync.c:774,1
    - Dst: crm_ipc_is_authentic_process
      Src: /src/pacemaker/lib/cluster/corosync.c:783,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/corosync.c:802,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/corosync.c:793,1
    - Dst: cmap_iter_next
      Src: /src/pacemaker/lib/cluster/corosync.c:808,1
    - Dst: cmap_finalize
      Src: /src/pacemaker/lib/cluster/corosync.c:818,1
    - Dst: pcmk__init_cmap
      Src: /src/pacemaker/lib/cluster/corosync.c:758,1
    - Dst: cs_strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:778,1
    - Dst: cmap_iter_init
      Src: /src/pacemaker/lib/cluster/corosync.c:800,1
    - Dst: PCMK__SPECIAL_PID_AS_0
      Src: /src/pacemaker/lib/cluster/corosync.c:789,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/corosync.c:815,1
    - Dst: sleep
      Src: /src/pacemaker/lib/cluster/corosync.c:763,1
    - Dst: cs_strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:769,1
    - Dst: cmap_iter_finalize
      Src: /src/pacemaker/lib/cluster/corosync.c:813,1
    - Dst: cs_strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:804,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:795,1
    - Dst: cs_strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:762,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/corosync.c:776,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/corosync.c:786,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 820
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 820
    functionName: pcmk__corosync_has_nodelist
    functionSourceFile: /src/pacemaker/lib/cluster/corosync.c
    functionUses: []
    functionsReached:
    - crm_debug
    - sleep
    - PCMK__SPECIAL_PID_AS_0
    - cs_strerror
    - cmap_iter_init
    - cmap_iter_next
    - pcmk__init_cmap
    - cmap_fd_get
    - cmap_finalize
    - crm_ipc_is_authentic_process
    - crm_warn
    - pcmk_strerror
    - cmap_iter_finalize
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__corosync_has_nodelist(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/corosync.c:72,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/corosync.c:80,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/corosync.c:76,1
    - Dst: strstr
      Src: /src/pacemaker/lib/cluster/corosync.c:79,1
    - Dst: sscanf
      Src: /src/pacemaker/lib/cluster/corosync.c:75,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/corosync.c:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - key
    - name
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 85
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 85
    functionName: node_name_is_valid
    functionSourceFile: /src/pacemaker/lib/cluster/corosync.c
    functionUses: []
    functionsReached:
    - strstr
    - crm_trace
    - sscanf
    linkageType: ''
    returnType: bool
    signature: 'static bool node_name_is_valid(const char *key, const char *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quorum_dispatch
      Src: /src/pacemaker/lib/cluster/corosync.c:244,1
    - Dst: quorum_finalize
      Src: /src/pacemaker/lib/cluster/corosync.c:248,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 253
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 253
    functionName: quorum_dispatch_cb
    functionSourceFile: /src/pacemaker/lib/cluster/corosync.c
    functionUses: []
    functionsReached:
    - quorum_finalize
    - crm_err
    - quorum_dispatch
    linkageType: ''
    returnType: int
    signature: 'static int quorum_dispatch_cb(gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cpg_disconnect
      Src: /src/pacemaker/lib/cluster/corosync.c:224,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/cluster/corosync.c:230,1
    - Dst: quorum_finalize
      Src: /src/pacemaker/lib/cluster/corosync.c:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 231
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 231
    functionName: pcmk__corosync_disconnect
    functionSourceFile: /src/pacemaker/lib/cluster/corosync.c
    functionUses: []
    functionsReached:
    - crm_notice
    - quorum_finalize
    - pcmk__cpg_disconnect
    linkageType: ''
    returnType: void
    signature: 'void pcmk__corosync_disconnect(pcmk_cluster_t *cluster) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/lib/cluster/corosync.c:460,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:468,1
    - Dst: pcmk__cluster_init_node_caches
      Src: /src/pacemaker/lib/cluster/corosync.c:465,1
    - Dst: pcmk_cluster_layer_text
      Src: /src/pacemaker/lib/cluster/corosync.c:461,1
    - Dst: pcmk__cpg_connect
      Src: /src/pacemaker/lib/cluster/corosync.c:473,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/corosync.c:478,1
    - Dst: pcmk__cpg_local_nodeid
      Src: /src/pacemaker/lib/cluster/corosync.c:480,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:482,1
    - Dst: pcmk__cluster_node_name
      Src: /src/pacemaker/lib/cluster/corosync.c:486,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:488,1
    - Dst: pcmk__corosync_uuid
      Src: /src/pacemaker/lib/cluster/corosync.c:497,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/lib/cluster/corosync.c:498,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/lib/cluster/corosync.c:493,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 501
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 501
    functionName: pcmk__corosync_connect
    functionSourceFile: /src/pacemaker/lib/cluster/corosync.c
    functionUses: []
    functionsReached:
    - pcmk__cpg_local_nodeid
    - pcmk__cluster_init_node_caches
    - pcmk__get_node
    - CRM_LOG_ASSERT
    - pcmk_get_cluster_layer
    - pcmk__cluster_node_name
    - pcmk__cpg_connect
    - pcmk__corosync_uuid
    - crm_info
    - pcmk_cluster_layer_text
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int pcmk__corosync_connect(pcmk_cluster_t *cluster) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/corosync.c:537,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/corosync.c:540,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cluster/corosync.c:545,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/corosync.c:541,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/corosync.c:546,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk__node_status_t*
    constantsTouched: []
    func_position:
      end: 551
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 551
    functionName: pcmk__corosync_is_peer_active
    functionSourceFile: /src/pacemaker/lib/cluster/corosync.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk__str_eq
    - crm_trace
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__corosync_is_peer_active(const pcmk__node_status_t *node) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__init_cmap
      Src: /src/pacemaker/lib/cluster/corosync.c:688,1
    - Dst: cs_strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:691,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/corosync.c:690,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:697,1
    - Dst: cmap_fd_get
      Src: /src/pacemaker/lib/cluster/corosync.c:695,1
    - Dst: cs_strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:698,1
    - Dst: crm_ipc_is_authentic_process
      Src: /src/pacemaker/lib/cluster/corosync.c:703,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:705,1
    - Dst: PCMK__SPECIAL_PID_AS_0
      Src: /src/pacemaker/lib/cluster/corosync.c:707,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/corosync.c:711,1
    - Dst: cmap_get_string
      Src: /src/pacemaker/lib/cluster/corosync.c:716,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/corosync.c:721,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/corosync.c:718,1
    - Dst: cmap_finalize
      Src: /src/pacemaker/lib/cluster/corosync.c:725,1
    - Dst: cs_strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:718,1
    - Dst: strerror
      Src: /src/pacemaker/lib/cluster/corosync.c:712,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 727
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 727
    functionName: pcmk__corosync_cluster_name
    functionSourceFile: /src/pacemaker/lib/cluster/corosync.c
    functionUses: []
    functionsReached:
    - PCMK__SPECIAL_PID_AS_0
    - crm_debug
    - cs_strerror
    - strerror
    - pcmk__init_cmap
    - cmap_fd_get
    - cmap_get_string
    - crm_ipc_is_authentic_process
    - cmap_finalize
    - crm_info
    - crm_err
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__corosync_cluster_name(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cluster/membership.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 315
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 315
    functionName: is_dirty
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean is_dirty(gpointer key, gpointer value, gpointer user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cluster/membership.c:1039,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/membership.c:1042,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/membership.c:1045,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cluster/membership.c:1041,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/membership.c:1040,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/membership.c:1046,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/membership.c:1052,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/cluster/membership.c:1058,1
    - Dst: peer_status_callback
      Src: /src/pacemaker/lib/cluster/membership.c:1061,1
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/lib/cluster/membership.c:1065,1
    - Dst: remove_conflicting_peer
      Src: /src/pacemaker/lib/cluster/membership.c:1068,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cluster/membership.c:1066,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - node
    - uname
    argTypes:
    - pcmk__node_status_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1071
      start: 1036
    functionDepth: 0
    functionLinenumber: 1036
    functionLinenumberEnd: 1071
    functionName: update_peer_uname
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - crm_debug
    - CRM_CHECK
    - peer_status_callback
    - remove_conflicting_peer
    - pcmk_get_cluster_layer
    - pcmk__str_eq
    - pcmk_is_set
    - crm_warn
    - crm_err
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'static void update_peer_uname(pcmk__node_status_t *node, const char
      *uname) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/membership.c:1120,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cluster/membership.c:1163,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:1195,1
    - Dst: proc2text
      Src: /src/pacemaker/lib/cluster/membership.c:1121,1
    - Dst: pcmk__clear_flags_as
      Src: /src/pacemaker/lib/cluster/membership.c:1146,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/membership.c:1158,1
    - Dst: proc2text
      Src: /src/pacemaker/lib/cluster/membership.c:1196,1
    - Dst: crm_get_cluster_proc
      Src: /src/pacemaker/lib/cluster/membership.c:1163,1
    - Dst: pcmk__update_peer_state
      Src: /src/pacemaker/lib/cluster/membership.c:1192,1
    - Dst: proc2text
      Src: /src/pacemaker/lib/cluster/membership.c:1160,1
    - Dst: peer_status_callback
      Src: /src/pacemaker/lib/cluster/membership.c:1174,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cluster/membership.c:1187,1
    - Dst: time
      Src: /src/pacemaker/lib/cluster/membership.c:1164,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cluster/membership.c:1120,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cluster/membership.c:1125,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/membership.c:1136,1
    - Dst: pcmk__set_flags_as
      Src: /src/pacemaker/lib/cluster/membership.c:1138,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/membership.c:1155,1
    - Dst: crm_get_cluster_proc
      Src: /src/pacemaker/lib/cluster/membership.c:1187,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 4
    argNames:
    - source
    - node
    - flag
    - status
    argTypes:
    - char*
    - pcmk__node_status_t*
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 1200
      start: 1113
    functionDepth: 0
    functionLinenumber: 1113
    functionLinenumberEnd: 1200
    functionName: crm_update_peer_proc
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__set_flags_as
    - peer_status_callback
    - pcmk__update_peer_state
    - crm_trace
    - pcmk__str_eq
    - time
    - proc2text
    - pcmk_is_set
    - crm_info
    - pcmk__clear_flags_as
    - crm_err
    - crm_get_cluster_proc
    linkageType: ''
    returnType: pcmk__node_status_t*
    signature: 'pcmk__node_status_t *crm_update_peer_proc(const char *source, pcmk__node_status_t
      *node, uint32_t flag, const char *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_peer_state_iter
      Src: /src/pacemaker/lib/cluster/membership.c:1343,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - source
    - node
    - state
    - membership
    argTypes:
    - char*
    - pcmk__node_status_t*
    - char*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1344
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1344
    functionName: pcmk__update_peer_state
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - update_peer_state_iter
    linkageType: ''
    returnType: pcmk__node_status_t*
    signature: 'pcmk__node_status_t *pcmk__update_peer_state(const char *source, pcmk__node_status_t
      *node, const char *state, uint64_t membership) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/cluster/membership.c:952,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cluster/membership.c:957,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:978,1
    - Dst: search_cluster_member_cache
      Src: /src/pacemaker/lib/cluster/membership.c:982,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/membership.c:1013,1
    - Dst: crm_generate_uuid
      Src: /src/pacemaker/lib/cluster/membership.c:987,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/cluster/membership.c:993,1
    - Dst: update_peer_uname
      Src: /src/pacemaker/lib/cluster/membership.c:1007,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/membership.c:1016,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:1020,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cluster/membership.c:964,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/cluster/membership.c:958,1
    - Dst: pcmk__cluster_node_name
      Src: /src/pacemaker/lib/cluster/membership.c:973,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/cluster/membership.c:989,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/membership.c:991,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/membership.c:999,1
    - Dst: pcmk__cluster_get_xml_id
      Src: /src/pacemaker/lib/cluster/membership.c:1011,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/lib/cluster/membership.c:994,1
    - Dst: pcmk__cluster_init_node_caches
      Src: /src/pacemaker/lib/cluster/membership.c:954,1
    - Dst: search_cluster_member_cache
      Src: /src/pacemaker/lib/cluster/membership.c:968,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 72
    argCount: 4
    argNames:
    - id
    - uname
    - xml_id
    - flags
    argTypes:
    - unsigned int
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1023
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 1023
    functionName: pcmk__get_node
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__cluster_get_xml_id
    - pcmk__cluster_init_node_caches
    - g_hash_table_lookup
    - update_peer_uname
    - pcmk__assert_alloc
    - pcmk__cluster_node_name
    - pcmk_is_set
    - free
    - search_cluster_member_cache
    - crm_generate_uuid
    - pcmk__assert
    - crm_info
    - g_hash_table_replace
    - crm_trace
    - g_hash_table_size
    linkageType: ''
    returnType: pcmk__node_status_t*
    signature: 'pcmk__node_status_t *pcmk__get_node(unsigned int id, const char *uname,
      const char *xml_id, uint32_t flags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cluster_init_node_caches
      Src: /src/pacemaker/lib/cluster/membership.c:1514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1515
      start: 1511
    functionDepth: 0
    functionLinenumber: 1511
    functionLinenumberEnd: 1515
    functionName: crm_peer_init
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - pcmk__cluster_init_node_caches
    linkageType: ''
    returnType: void
    signature: 'void crm_peer_init(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/cluster/membership.c:228,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:229,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/lib/cluster/membership.c:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - node_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 232
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 232
    functionName: pcmk__cluster_forget_remote_node
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - g_hash_table_remove
    - crm_trace
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: 'void pcmk__cluster_forget_remote_node(const char *node_name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/cluster/membership.c:873,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:880,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/lib/cluster/membership.c:881,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/cluster/membership.c:877,1
    - Dst: pcmk__cluster_forget_cluster_node
      Src: /src/pacemaker/lib/cluster/membership.c:884,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:885,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - node_name
    - node_id
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 886
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 886
    functionName: pcmk__purge_node_from_cache
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - pcmk__cluster_forget_cluster_node
    - g_hash_table_lookup
    - g_hash_table_remove
    - pcmk__str_copy
    - free
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void pcmk__purge_node_from_cache(const char *node_name, uint32_t node_id) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cluster/membership.c:1264,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/membership.c:1277,1
    - Dst: time
      Src: /src/pacemaker/lib/cluster/membership.c:1281,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/membership.c:1269,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/membership.c:1265,1
    - Dst: strdup
      Src: /src/pacemaker/lib/cluster/membership.c:1287,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/cluster/membership.c:1288,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cluster/membership.c:1291,1
    - Dst: peer_status_callback
      Src: /src/pacemaker/lib/cluster/membership.c:1293,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:1295,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cluster/membership.c:1298,1
    - Dst: pcmk__cluster_forget_cluster_node
      Src: /src/pacemaker/lib/cluster/membership.c:1310,1
    - Dst: g_hash_table_iter_remove
      Src: /src/pacemaker/lib/cluster/membership.c:1307,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/cluster/membership.c:1304,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:1317,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 5
    argNames:
    - source
    - node
    - state
    - membership
    - iter
    argTypes:
    - char*
    - pcmk__node_status_t*
    - char*
    - uint64_t
    - GHashTableIter*
    constantsTouched: []
    func_position:
      end: 1322
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1322
    functionName: update_peer_state_iter
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - peer_status_callback
    - pcmk__s
    - pcmk__cluster_forget_cluster_node
    - crm_trace
    - pcmk__str_eq
    - time
    - crm_notice
    - pcmk_is_set
    - free
    - g_hash_table_iter_remove
    - strdup
    - crm_err
    linkageType: ''
    returnType: pcmk__node_status_t*
    signature: 'static pcmk__node_status_t *update_peer_state_iter(const char *source,
      pcmk__node_status_t *node, const char *state, uint64_t membership, GHashTableIter
      *iter) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__search_node_caches
      Src: /src/pacemaker/lib/cluster/membership.c:158,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/cluster/membership.c:180,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/membership.c:165,1
    - Dst: strdup
      Src: /src/pacemaker/lib/cluster/membership.c:170,1
    - Dst: pcmk__cluster_forget_cluster_node
      Src: /src/pacemaker/lib/cluster/membership.c:176,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:182,1
    - Dst: calloc
      Src: /src/pacemaker/lib/cluster/membership.c:187,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:189,1
    - Dst: set_peer_flags
      Src: /src/pacemaker/lib/cluster/membership.c:194,1
    - Dst: strdup
      Src: /src/pacemaker/lib/cluster/membership.c:195,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:197,1
    - Dst: update_peer_uname
      Src: /src/pacemaker/lib/cluster/membership.c:208,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/lib/cluster/membership.c:204,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:209,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:199,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:205,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 1
    argNames:
    - node_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 211
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 211
    functionName: pcmk__cluster_lookup_remote_node
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - pcmk__cluster_forget_cluster_node
    - g_hash_table_lookup
    - calloc
    - pcmk__search_node_caches
    - pcmk__str_eq
    - set_peer_flags
    - free
    - strdup
    - g_hash_table_replace
    - crm_trace
    - update_peer_uname
    linkageType: ''
    returnType: pcmk__node_status_t*
    signature: 'pcmk__node_status_t *pcmk__cluster_lookup_remote_node(const char *node_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/cluster/membership.c:540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 543
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 543
    functionName: pcmk__cluster_num_active_nodes
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    linkageType: ''
    returnType: unsigned int
    signature: 'unsigned int pcmk__cluster_num_active_nodes(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 651
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 651
    functionName: pcmk__cluster_set_autoreap
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void pcmk__cluster_set_autoreap(bool enable) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/cluster/membership.c:815,1
    - Dst: pcmk__cluster_init_node_caches
      Src: /src/pacemaker/lib/cluster/membership.c:817,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/cluster/membership.c:821,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cluster/membership.c:819,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/cluster/membership.c:823,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cluster/membership.c:828,1
    - Dst: search_cluster_member_cache
      Src: /src/pacemaker/lib/cluster/membership.c:830,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cluster/membership.c:833,1
    - Dst: find_cib_cluster_node
      Src: /src/pacemaker/lib/cluster/membership.c:835,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cluster/membership.c:838,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:841,1
    - Dst: find_cib_cluster_node
      Src: /src/pacemaker/lib/cluster/membership.c:840,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 4
    argNames:
    - id
    - uname
    - xml_id
    - flags
    argTypes:
    - unsigned int
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 846
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 846
    functionName: pcmk__search_node_caches
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - pcmk__cluster_init_node_caches
    - g_hash_table_lookup
    - crm_strdup_printf
    - pcmk_is_set
    - free
    - search_cluster_member_cache
    - pcmk__assert
    - find_cib_cluster_node
    linkageType: ''
    returnType: pcmk__node_status_t*
    signature: 'pcmk__node_status_t *pcmk__search_node_caches(unsigned int id, const
      char *uname, const char *xml_id, uint32_t flags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:550,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:554,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:555,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:556,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:553,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:557,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:558,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 560
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 560
    functionName: destroy_crm_node
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - free
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void destroy_crm_node(gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/cluster/membership.c:660,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/cluster/membership.c:662,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/cluster/membership.c:661,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - level
    - caller
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 665
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 665
    functionName: dump_peer_hash
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - do_crm_log
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void dump_peer_hash(int level, const char *caller) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/membership.c:437,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cluster/membership.c:447,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/membership.c:445,1
    - Dst: pcmk__cluster_is_node_active
      Src: /src/pacemaker/lib/cluster/membership.c:441,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 449
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 449
    functionName: should_forget_cluster_node
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - crm_info
    - pcmk__str_eq
    - pcmk__cluster_is_node_active
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean should_forget_cluster_node(gpointer key, gpointer
      value, gpointer user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:590,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/cluster/membership.c:592,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:597,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/cluster/membership.c:591,1
    - Dst: pcmk__cluster_num_remote_nodes
      Src: /src/pacemaker/lib/cluster/membership.c:598,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/cluster/membership.c:599,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:604,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/cluster/membership.c:605,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/cluster/membership.c:606,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 609
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 609
    functionName: pcmk__cluster_destroy_node_caches
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - pcmk__cluster_num_remote_nodes
    - crm_trace
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'void pcmk__cluster_destroy_node_caches(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: pcmk__cluster_has_quorum
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__cluster_has_quorum(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/cluster/membership.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: pcmk__cluster_num_remote_nodes
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - g_hash_table_size
    linkageType: ''
    returnType: unsigned int
    signature: 'unsigned int pcmk__cluster_num_remote_nodes(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/lib/cluster/membership.c:375,1
    - Dst: pcmk_cluster_layer_text
      Src: /src/pacemaker/lib/cluster/membership.c:393,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cluster/membership.c:377,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/membership.c:392,1
    - Dst: pcmk__corosync_is_peer_active
      Src: /src/pacemaker/lib/cluster/membership.c:384,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk__node_status_t*
    constantsTouched: []
    func_position:
      end: 395
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 395
    functionName: pcmk__cluster_is_node_active
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - pcmk__corosync_is_peer_active
    - pcmk_get_cluster_layer
    - pcmk_is_set
    - pcmk_cluster_layer_text
    - crm_err
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__cluster_is_node_active(const pcmk__node_status_t *node) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strikey_table
      Src: /src/pacemaker/lib/cluster/membership.c:570,1
    - Dst: pcmk__strikey_table
      Src: /src/pacemaker/lib/cluster/membership.c:578,1
    - Dst: pcmk__strikey_table
      Src: /src/pacemaker/lib/cluster/membership.c:574,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 580
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 580
    functionName: pcmk__cluster_init_node_caches
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - pcmk__strikey_table
    linkageType: ''
    returnType: void
    signature: 'void pcmk__cluster_init_node_caches(void) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cluster_init_node_caches
      Src: /src/pacemaker/lib/cluster/membership.c:695,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/membership.c:700,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:701,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/membership.c:723,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:751,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/membership.c:770,1
    - Dst: dump_peer_hash
      Src: /src/pacemaker/lib/cluster/membership.c:788,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/cluster/membership.c:693,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/cluster/membership.c:698,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/cluster/membership.c:709,1
    - Dst: pcmk__cluster_get_xml_id
      Src: /src/pacemaker/lib/cluster/membership.c:721,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:735,1
    - Dst: dump_peer_hash
      Src: /src/pacemaker/lib/cluster/membership.c:741,1
    - Dst: crm_crit
      Src: /src/pacemaker/lib/cluster/membership.c:755,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/cluster/membership.c:699,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/cluster/membership.c:710,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:712,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/cluster/membership.c:719,1
    - Dst: crm_crit
      Src: /src/pacemaker/lib/cluster/membership.c:742,1
    - Dst: dump_peer_hash
      Src: /src/pacemaker/lib/cluster/membership.c:754,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/membership.c:761,1
    - Dst: g_hash_table_foreach_remove
      Src: /src/pacemaker/lib/cluster/membership.c:766,1
    - Dst: dump_peer_hash
      Src: /src/pacemaker/lib/cluster/membership.c:772,1
    - Dst: crm_abort
      Src: /src/pacemaker/lib/cluster/membership.c:773,1
    - Dst: g_hash_table_foreach_remove
      Src: /src/pacemaker/lib/cluster/membership.c:791,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/cluster/membership.c:720,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:724,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:738,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/cluster/membership.c:762,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/membership.c:778,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/membership.c:790,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 80
    argCount: 3
    argNames:
    - id
    - uname
    - uuid
    argTypes:
    - unsigned int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 796
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 796
    functionName: search_cluster_member_cache
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - pcmk__cluster_get_xml_id
    - pcmk__cluster_init_node_caches
    - pcmk__str_eq
    - g_hash_table_foreach_remove
    - dump_peer_hash
    - crm_notice
    - crm_abort
    - pcmk__assert
    - crm_warn
    - crm_info
    - crm_crit
    - g_hash_table_iter_init
    - crm_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: pcmk__node_status_t*
    signature: 'static pcmk__node_status_t *search_cluster_member_cache(unsigned int
      id, const char *uname, const char *uuid) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cluster/membership.c:1459,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cluster/membership.c:1463,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cluster/membership.c:1460,1
    - Dst: crm_generate_uuid
      Src: /src/pacemaker/lib/cluster/membership.c:1467,1
    - Dst: find_cib_cluster_node
      Src: /src/pacemaker/lib/cluster/membership.c:1464,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/cluster/membership.c:1469,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/cluster/membership.c:1471,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/cluster/membership.c:1472,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/lib/cluster/membership.c:1474,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cluster/membership.c:1476,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/lib/cluster/membership.c:1477,1
    - Dst: clear_peer_flags
      Src: /src/pacemaker/lib/cluster/membership.c:1480,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - xml_node
    - user_data
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 1483
      start: 1456
    functionDepth: 0
    functionLinenumber: 1456
    functionLinenumberEnd: 1483
    functionName: cluster_node_cib_cache_refresh_helper
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - clear_peer_flags
    - CRM_CHECK
    - crm_element_value
    - pcmk__assert_alloc
    - pcmk__str_copy
    - pcmk_is_set
    - crm_generate_uuid
    - g_hash_table_replace
    - find_cib_cluster_node
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'static void cluster_node_cib_cache_refresh_helper(xmlNode *xml_node,
      void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refresh_remote_nodes
      Src: /src/pacemaker/lib/cluster/membership.c:1502,1
    - Dst: refresh_cluster_node_cib_cache
      Src: /src/pacemaker/lib/cluster/membership.c:1503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - cib
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1504
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1504
    functionName: pcmk__refresh_node_caches_from_cib
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - refresh_remote_nodes
    - refresh_cluster_node_cib_cache
    linkageType: ''
    returnType: void
    signature: 'void pcmk__refresh_node_caches_from_cib(xmlNode *cib) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cluster_init_node_caches
      Src: /src/pacemaker/lib/cluster/membership.c:1488,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/cluster/membership.c:1490,1
    - Dst: pcmk__xpath_foreach_result
      Src: /src/pacemaker/lib/cluster/membership.c:1492,1
    - Dst: g_hash_table_foreach_remove
      Src: /src/pacemaker/lib/cluster/membership.c:1496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cib
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1497
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1497
    functionName: refresh_cluster_node_cib_cache
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach_remove
    - g_hash_table_foreach
    - pcmk__cluster_init_node_caches
    - pcmk__xpath_foreach_result
    linkageType: ''
    returnType: void
    signature: 'static void refresh_cluster_node_cib_cache(xmlNode *cib) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - quorate
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: pcmk__cluster_set_quorum
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void pcmk__cluster_set_quorum(bool quorate) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 671
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 671
    functionName: hash_find_by_data
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean hash_find_by_data(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cluster/membership.c:272,1
    - Dst: pcmk__cluster_lookup_remote_node
      Src: /src/pacemaker/lib/cluster/membership.c:288,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/cluster/membership.c:284,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cluster/membership.c:276,1
    - Dst: remote_state_from_cib
      Src: /src/pacemaker/lib/cluster/membership.c:280,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/cluster/membership.c:289,1
    - Dst: pcmk__update_peer_state
      Src: /src/pacemaker/lib/cluster/membership.c:291,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cluster/membership.c:294,1
    - Dst: clear_peer_flags
      Src: /src/pacemaker/lib/cluster/membership.c:296,1
    - Dst: pcmk__update_peer_state
      Src: /src/pacemaker/lib/cluster/membership.c:298,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 2
    argNames:
    - result
    - user_data
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 301
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 301
    functionName: remote_cache_refresh_helper
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - remote_state_from_cib
    - clear_peer_flags
    - CRM_CHECK
    - pcmk__update_peer_state
    - g_hash_table_lookup
    - pcmk__cluster_lookup_remote_node
    - pcmk_is_set
    - crm_element_value
    - pcmk__assert
    linkageType: ''
    returnType: void
    signature: 'static void remote_cache_refresh_helper(xmlNode *result, void *user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:477,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cluster/membership.c:485,1
    - Dst: g_hash_table_foreach_remove
      Src: /src/pacemaker/lib/cluster/membership.c:491,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cluster/membership.c:488,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/cluster/membership.c:482,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/cluster/membership.c:495,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/cluster/membership.c:497,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/cluster/membership.c:499,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/membership.c:505,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cluster/membership.c:507,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:511,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:510,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - id
    - node_name
    argTypes:
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 512
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 512
    functionName: pcmk__cluster_forget_cluster_node
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - crm_strdup_printf
    - pcmk__plural_s
    - g_hash_table_foreach_remove
    - pcmk__str_copy
    - crm_notice
    - free
    - crm_info
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void pcmk__cluster_forget_cluster_node(uint32_t id, const char *node_name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - (*dispatch)
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 631
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 631
    functionName: pcmk__cluster_set_status_callback
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void pcmk__cluster_set_status_callback(void (*dispatch)(enum pcmk__node_update,
      pcmk__node_status_t *, const void *)) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:1358,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/membership.c:1370,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/cluster/membership.c:1359,1
    - Dst: update_peer_state_iter
      Src: /src/pacemaker/lib/cluster/membership.c:1366,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/cluster/membership.c:1360,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - membership
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1375
      start: 1352
    functionDepth: 0
    functionLinenumber: 1352
    functionLinenumberEnd: 1375
    functionName: pcmk__reap_unseen_nodes
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - update_peer_state_iter
    - crm_info
    - g_hash_table_iter_init
    - crm_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void pcmk__reap_unseen_nodes(uint64_t membership) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_peer_flags
      Src: /src/pacemaker/lib/cluster/membership.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: mark_dirty
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - set_peer_flags
    linkageType: ''
    returnType: void
    signature: 'static void mark_dirty(gpointer key, gpointer value, gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cluster_is_node_active
      Src: /src/pacemaker/lib/cluster/membership.c:520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 523
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 523
    functionName: count_peer
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - pcmk__cluster_is_node_active
    linkageType: ''
    returnType: void
    signature: 'static void count_peer(gpointer key, gpointer value, gpointer user_data) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/cluster/membership.c:1386,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/cluster/membership.c:1387,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/cluster/membership.c:1397,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:1389,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/membership.c:1388,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/cluster/membership.c:1398,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/membership.c:1399,1
    - Dst: pcmk__cluster_get_xml_id
      Src: /src/pacemaker/lib/cluster/membership.c:1399,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:1401,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:1411,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:1414,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/membership.c:1436,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/membership.c:1446,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/membership.c:1431,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:1424,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 54
    argCount: 2
    argNames:
    - id
    - uname
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1454
      start: 1377
    functionDepth: 0
    functionLinenumber: 1377
    functionLinenumberEnd: 1454
    functionName: find_cib_cluster_node
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__cluster_get_xml_id
    - pcmk__str_eq
    - g_hash_table_iter_init
    - crm_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: pcmk__node_status_t*
    signature: 'static pcmk__node_status_t *find_cib_cluster_node(const char *id,
      const char *uname) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/lib/cluster/membership.c:248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - node_state
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 253
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 253
    functionName: remote_state_from_cib
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - pcmk__xe_get_bool_attr
    linkageType: ''
    returnType: char*
    signature: 'static const char *remote_state_from_cib(const xmlNode *node_state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cluster_init_node_caches
      Src: /src/pacemaker/lib/cluster/membership.c:328,1
    - Dst: pcmk__xpath_foreach_result
      Src: /src/pacemaker/lib/cluster/membership.c:354,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/lib/cluster/membership.c:334,1
    - Dst: pcmk__xpath_foreach_result
      Src: /src/pacemaker/lib/cluster/membership.c:350,1
    - Dst: pcmk__xpath_foreach_result
      Src: /src/pacemaker/lib/cluster/membership.c:339,1
    - Dst: g_hash_table_foreach_remove
      Src: /src/pacemaker/lib/cluster/membership.c:358,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - cib
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 359
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 359
    functionName: refresh_remote_nodes
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach_remove
    - g_hash_table_foreach
    - pcmk__cluster_init_node_caches
    - pcmk__xpath_foreach_result
    linkageType: ''
    returnType: void
    signature: 'static void refresh_remote_nodes(xmlNode *cib) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 1
    argNames:
    - proc
    argTypes:
    - enum crm_proc_flag
    constantsTouched: []
    func_position:
      end: 1095
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1095
    functionName: proc2text
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *proc2text(enum crm_proc_flag proc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cluster/membership.c:1217,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cluster/membership.c:1221,1
    - Dst: strdup
      Src: /src/pacemaker/lib/cluster/membership.c:1227,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/membership.c:1217,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/membership.c:1226,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/membership.c:1232,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/membership.c:1234,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/membership.c:1236,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - source
    - node
    - expected
    argTypes:
    - char*
    - pcmk__node_status_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1239
      start: 1210
    functionDepth: 0
    functionLinenumber: 1210
    functionLinenumberEnd: 1239
    functionName: pcmk__update_peer_expected
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_trace
    - pcmk__str_eq
    - pcmk_is_set
    - free
    - strdup
    - crm_info
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void pcmk__update_peer_expected(const char *source, pcmk__node_status_t
      *node, const char *expected) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__corosync_has_nodelist
      Src: /src/pacemaker/lib/cluster/membership.c:900,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/cluster/membership.c:904,1
    - Dst: pcmk__cluster_is_node_active
      Src: /src/pacemaker/lib/cluster/membership.c:910,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/cluster/membership.c:905,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/membership.c:908,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/membership.c:914,1
    - Dst: g_hash_table_iter_remove
      Src: /src/pacemaker/lib/cluster/membership.c:919,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk__node_status_t*
    constantsTouched: []
    func_position:
      end: 925
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 925
    functionName: remove_conflicting_peer
    functionSourceFile: /src/pacemaker/lib/cluster/membership.c
    functionUses: []
    functionsReached:
    - pcmk__corosync_has_nodelist
    - pcmk__str_eq
    - g_hash_table_iter_remove
    - pcmk__cluster_is_node_active
    - crm_warn
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: guint
    signature: 'static guint remove_conflicting_peer(pcmk__node_status_t *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/lib/cluster/cluster.c:117,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/cluster.c:120,1
    - Dst: pcmk__corosync_disconnect
      Src: /src/pacemaker/lib/cluster/cluster.c:125,1
    - Dst: pcmk__cluster_destroy_node_caches
      Src: /src/pacemaker/lib/cluster/cluster.c:126,1
    - Dst: pcmk_cluster_layer_text
      Src: /src/pacemaker/lib/cluster/cluster.c:118,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cluster.c:134,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 137
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 137
    functionName: pcmk_cluster_disconnect
    functionSourceFile: /src/pacemaker/lib/cluster/cluster.c
    functionUses: []
    functionsReached:
    - pcmk_get_cluster_layer
    - pcmk__cluster_destroy_node_caches
    - crm_info
    - pcmk__corosync_disconnect
    - pcmk_cluster_layer_text
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int pcmk_cluster_disconnect(pcmk_cluster_t *cluster) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/cluster/cluster.c:149,1
    - Dst: pcmk__parse_server
      Src: /src/pacemaker/lib/cluster/cluster.c:152,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/cluster/cluster.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 154
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 154
    functionName: pcmk_cluster_new
    functionSourceFile: /src/pacemaker/lib/cluster/cluster.c
    functionUses: []
    functionsReached:
    - pcmk__assert_alloc
    - pcmk__parse_server
    linkageType: ''
    returnType: pcmk_cluster_t*
    signature: 'pcmk_cluster_t *pcmk_cluster_new(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - cluster
    - (*fn)
    argTypes:
    - pcmk_cluster_t*
    - void
    constantsTouched: []
    func_position:
      end: 190
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 190
    functionName: pcmk_cluster_set_destroy_fn
    functionSourceFile: /src/pacemaker/lib/cluster/cluster.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int pcmk_cluster_set_destroy_fn(pcmk_cluster_t *cluster, void (*fn)(gpointer)) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cluster_node_name
      Src: /src/pacemaker/lib/cluster/cluster.c:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 301
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 301
    functionName: pcmk__cluster_local_node_name
    functionSourceFile: /src/pacemaker/lib/cluster/cluster.c
    functionUses: []
    functionsReached:
    - pcmk__cluster_node_name
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__cluster_local_node_name(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cluster.c:366,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 1
    argNames:
    - layer
    argTypes:
    - enum pcmk_cluster_layer
    constantsTouched: []
    func_position:
      end: 369
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 369
    functionName: pcmk_cluster_layer_text
    functionSourceFile: /src/pacemaker/lib/cluster/cluster.c
    functionUses: []
    functionsReached:
    - crm_err
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk_cluster_layer_text(enum pcmk_cluster_layer layer) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/cluster/cluster.c:448,1
    - Dst: pcmk_cluster_connect
      Src: /src/pacemaker/lib/cluster/cluster.c:450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 451
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 451
    functionName: crm_cluster_connect
    functionSourceFile: /src/pacemaker/lib/cluster/cluster.c
    functionUses: []
    functionsReached:
    - pcmk_cluster_connect
    - pcmk__assert_alloc
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean crm_cluster_connect(pcmk_cluster_t *cluster) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cluster.c:464,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum cluster_type_e
    constantsTouched: []
    func_position:
      end: 466
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 466
    functionName: name_for_cluster_type
    functionSourceFile: /src/pacemaker/lib/cluster/cluster.c
    functionUses: []
    functionsReached:
    - crm_err
    linkageType: ''
    returnType: char*
    signature: 'const char *name_for_cluster_type(enum cluster_type_e type) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/lib/cluster/cluster.c:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 472
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 472
    functionName: get_cluster_type
    functionSourceFile: /src/pacemaker/lib/cluster/cluster.c
    functionUses: []
    functionsReached:
    - pcmk_get_cluster_layer
    linkageType: ''
    returnType: enum cluster_type_e
    signature: 'enum cluster_type_e get_cluster_type(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/lib/cluster/cluster.c:45,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cluster/cluster.c:55,1
    - Dst: pcmk__corosync_uuid
      Src: /src/pacemaker/lib/cluster/cluster.c:60,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cluster.c:65,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/lib/cluster/cluster.c:55,1
    - Dst: pcmk_cluster_layer_text
      Src: /src/pacemaker/lib/cluster/cluster.c:66,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk__node_status_t*
    constantsTouched: []
    func_position:
      end: 69
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 69
    functionName: pcmk__cluster_get_xml_id
    functionSourceFile: /src/pacemaker/lib/cluster/cluster.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk_get_cluster_layer
    - pcmk_is_set
    - pcmk__corosync_uuid
    - pcmk_cluster_layer_text
    - crm_err
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__cluster_get_xml_id(pcmk__node_status_t *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: election_fini
      Src: /src/pacemaker/lib/cluster/cluster.c:167,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/cluster.c:168,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/cluster.c:171,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/cluster.c:170,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/cluster.c:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 172
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 172
    functionName: pcmk_cluster_free
    functionSourceFile: /src/pacemaker/lib/cluster/cluster.c
    functionUses: []
    functionsReached:
    - free
    - election_fini
    linkageType: ''
    returnType: void
    signature: 'void pcmk_cluster_free(pcmk_cluster_t *cluster) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/lib/cluster/cluster.c:82,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/cluster/cluster.c:90,1
    - Dst: pcmk_cluster_layer_text
      Src: /src/pacemaker/lib/cluster/cluster.c:83,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cluster.c:102,1
    - Dst: pcmk__corosync_connect
      Src: /src/pacemaker/lib/cluster/cluster.c:95,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 105
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 105
    functionName: pcmk_cluster_connect
    functionSourceFile: /src/pacemaker/lib/cluster/cluster.c
    functionUses: []
    functionsReached:
    - pcmk__corosync_connect
    - pcmk_get_cluster_layer
    - crm_notice
    - pcmk_cluster_layer_text
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int pcmk_cluster_connect(pcmk_cluster_t *cluster) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/lib/cluster/cluster.c:207,1
    - Dst: pcmk__cpg_send_xml
      Src: /src/pacemaker/lib/cluster/cluster.c:210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 3
    argNames:
    - node
    - service
    - data
    argTypes:
    - pcmk__node_status_t*
    - enum pcmk_ipc_server
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 217
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 217
    functionName: pcmk__cluster_send_message
    functionSourceFile: /src/pacemaker/lib/cluster/cluster.c
    functionUses: []
    functionsReached:
    - pcmk_get_cluster_layer
    - pcmk__cpg_send_xml
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__cluster_send_message(const pcmk__node_status_t *node, enum
      pcmk_ipc_server service, const xmlNode *data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/lib/cluster/cluster.c:239,1
    - Dst: pcmk__corosync_name
      Src: /src/pacemaker/lib/cluster/cluster.c:245,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/cluster/cluster.c:260,1
    - Dst: pcmk_cluster_layer_text
      Src: /src/pacemaker/lib/cluster/cluster.c:240,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cluster.c:253,1
    - Dst: uname
      Src: /src/pacemaker/lib/cluster/cluster.c:264,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cluster.c:266,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/cluster/cluster.c:267,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/cluster/cluster.c:269,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/cluster/cluster.c:272,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 1
    argNames:
    - nodeid
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 276
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 276
    functionName: pcmk__cluster_node_name
    functionSourceFile: /src/pacemaker/lib/cluster/cluster.c
    functionUses: []
    functionsReached:
    - pcmk__corosync_name
    - crm_exit
    - pcmk_get_cluster_layer
    - crm_notice
    - pcmk__str_copy
    - pcmk_cluster_layer_text
    - crm_err
    - uname
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__cluster_node_name(uint32_t nodeid) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cluster/cluster.c:331,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/lib/cluster/cluster.c:334,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/cluster.c:340,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/cluster/cluster.c:338,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/cluster/cluster.c:339,1
    - Dst: pcmk__cluster_get_xml_id
      Src: /src/pacemaker/lib/cluster/cluster.c:340,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - uuid
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 346
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 346
    functionName: pcmk__node_name_from_uuid
    functionSourceFile: /src/pacemaker/lib/cluster/cluster.c
    functionUses: []
    functionsReached:
    - pcmk__cluster_get_xml_id
    - CRM_CHECK
    - g_hash_table_lookup
    - pcmk__str_eq
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: char*
    signature: 'const char *pcmk__node_name_from_uuid(const char *uuid) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__env_option
      Src: /src/pacemaker/lib/cluster/cluster.c:393,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/cluster.c:396,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/cluster.c:400,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/cluster/cluster.c:406,1
    - Dst: crm_exit
      Src: /src/pacemaker/lib/cluster/cluster.c:409,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/cluster.c:411,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/cluster.c:416,1
    - Dst: pcmk__corosync_is_active
      Src: /src/pacemaker/lib/cluster/cluster.c:417,1
    - Dst: crm_notice
      Src: /src/pacemaker/lib/cluster/cluster.c:423,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/cluster.c:425,1
    - Dst: pcmk_cluster_layer_text
      Src: /src/pacemaker/lib/cluster/cluster.c:426,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 431
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 431
    functionName: pcmk_get_cluster_layer
    functionSourceFile: /src/pacemaker/lib/cluster/cluster.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_cluster_layer_text
    - crm_exit
    - pcmk__str_eq
    - pcmk__env_option
    - crm_notice
    - crm_info
    - pcmk__corosync_is_active
    linkageType: ''
    returnType: enum pcmk_cluster_layer
    signature: 'enum pcmk_cluster_layer pcmk_get_cluster_layer(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/election.c:136,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/lib/cluster/election.c:139,1
    - Dst: mainloop_timer_stop
      Src: /src/pacemaker/lib/cluster/election.c:137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: election_reset
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - mainloop_timer_stop
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void election_reset(pcmk_cluster_t *cluster) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/lib/cluster/election.c:206,1
    - Dst: crm_perror
      Src: /src/pacemaker/lib/cluster/election.c:219,1
    - Dst: getrusage
      Src: /src/pacemaker/lib/cluster/election.c:213,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/election.c:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - output
    argTypes:
    - struct timeval*
    constantsTouched: []
    func_position:
      end: 233
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 233
    functionName: get_uptime
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached:
    - crm_debug
    - getrusage
    - time
    - crm_perror
    linkageType: ''
    returnType: int
    signature: 'static int get_uptime(struct timeval *output) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_uptime
      Src: /src/pacemaker/lib/cluster/election.c:240,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/election.c:243,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/election.c:246,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/election.c:253,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/election.c:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - your_age
    argTypes:
    - struct timeval
    constantsTouched: []
    func_position:
      end: 259
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 259
    functionName: compare_age
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached:
    - crm_debug
    - get_uptime
    linkageType: ''
    returnType: int
    signature: 'static int compare_age(struct timeval your_age) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/election.c:121,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/lib/cluster/election.c:122,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - cluster
    - uname
    argTypes:
    - pcmk_cluster_t*
    - char*
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: election_remove
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached:
    - g_hash_table_remove
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void election_remove(pcmk_cluster_t *cluster, const char *uname) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cluster/election.c:424,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cluster/election.c:431,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cluster/election.c:430,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cluster/election.c:432,1
    - Dst: crm_element_value
      Src: /src/pacemaker/lib/cluster/election.c:433,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/lib/cluster/election.c:435,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/election.c:440,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cluster/election.c:441,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cluster/election.c:442,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/lib/cluster/election.c:443,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/election.c:449,1
    - Dst: crm_element_value_timeval
      Src: /src/pacemaker/lib/cluster/election.c:453,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/election.c:456,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/election.c:471,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/election.c:461,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/election.c:462,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 2
    argNames:
    - message
    - vote
    argTypes:
    - xmlNode*
    - struct vote*
    constantsTouched: []
    func_position:
      end: 476
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 476
    functionName: parse_election_message
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__s
    - pcmk__str_eq
    - crm_log_xml_trace
    - crm_element_value_timeval
    - crm_element_value
    - crm_warn
    - crm_info
    - crm_element_value_int
    linkageType: ''
    returnType: bool
    signature: 'static bool parse_election_message(const xmlNode *message, struct
      vote *vote) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/lib/cluster/election.c:533,1
    - Dst: compare_version
      Src: /src/pacemaker/lib/cluster/election.c:600,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/election.c:574,1
    - Dst: compare_age
      Src: /src/pacemaker/lib/cluster/election.c:599,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/election.c:705,1
    - Dst: send_no_vote
      Src: /src/pacemaker/lib/cluster/election.c:721,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/cluster/election.c:714,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/election.c:573,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/election.c:637,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/cluster/election.c:659,1
    - Dst: election_reset
      Src: /src/pacemaker/lib/cluster/election.c:720,1
    - Dst: election_timeout_stop
      Src: /src/pacemaker/lib/cluster/election.c:691,1
    - Dst: pcmk__cluster_is_node_active
      Src: /src/pacemaker/lib/cluster/election.c:556,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/election.c:588,1
    - Dst: strcasecmp
      Src: /src/pacemaker/lib/cluster/election.c:616,1
    - Dst: crm_write_blackbox
      Src: /src/pacemaker/lib/cluster/election.c:652,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/cluster/election.c:684,1
    - Dst: ctime
      Src: /src/pacemaker/lib/cluster/election.c:699,1
    - Dst: parse_election_message
      Src: /src/pacemaker/lib/cluster/election.c:540,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/lib/cluster/election.c:544,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cluster/election.c:536,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/lib/cluster/election.c:546,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/election.c:549,1
    - Dst: pcmk__cluster_get_xml_id
      Src: /src/pacemaker/lib/cluster/election.c:549,1
    - Dst: pcmk__cluster_is_node_active
      Src: /src/pacemaker/lib/cluster/election.c:567,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/election.c:580,1
    - Dst: record_vote
      Src: /src/pacemaker/lib/cluster/election.c:593,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/cluster/election.c:630,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 129
    argCount: 3
    argNames:
    - cluster
    - message
    - can_win
    argTypes:
    - pcmk_cluster_t*
    - xmlNode*
    - bool
    constantsTouched: []
    func_position:
      end: 724
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 724
    functionName: election_count_vote
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached:
    - pcmk__get_node
    - election_reset
    - do_crm_log
    - crm_write_blackbox
    - pcmk__cluster_is_node_active
    - compare_age
    - strcasecmp
    - pcmk__cluster_get_xml_id
    - CRM_CHECK
    - parse_election_message
    - ctime
    - compare_version
    - pcmk__str_eq
    - crm_warn
    - crm_info
    - record_vote
    - g_hash_table_size
    - crm_debug
    - time
    - send_no_vote
    - election_timeout_stop
    linkageType: ''
    returnType: enum election_result
    signature: 'enum election_result election_count_vote(pcmk_cluster_t *cluster,
      const xmlNode *message, bool can_win) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/cluster/election.c:481,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/lib/cluster/election.c:484,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/lib/cluster/election.c:486,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - cluster
    - vote
    argTypes:
    - pcmk_cluster_t*
    - struct vote*
    constantsTouched: []
    func_position:
      end: 487
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 487
    functionName: record_vote
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__insert_dup
    - pcmk__strkey_table
    linkageType: ''
    returnType: void
    signature: 'static void record_vote(pcmk_cluster_t *cluster, struct vote *vote) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cluster/election.c:196,1
    - Dst: mainloop_timer_set_period
      Src: /src/pacemaker/lib/cluster/election.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - cluster
    - period
    argTypes:
    - pcmk_cluster_t*
    - guint
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: election_timeout_set_period
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - mainloop_timer_set_period
    linkageType: ''
    returnType: void
    signature: 'void election_timeout_set_period(pcmk_cluster_t *cluster, guint period) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cluster/election.c:348,1
    - Dst: pcmk__cluster_num_active_nodes
      Src: /src/pacemaker/lib/cluster/election.c:357,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/election.c:352,1
    - Dst: election_timeout_stop
      Src: /src/pacemaker/lib/cluster/election.c:365,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/lib/cluster/election.c:356,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/election.c:371,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/cluster/election.c:372,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/cluster/election.c:373,1
    - Dst: pcmk__cluster_is_node_active
      Src: /src/pacemaker/lib/cluster/election.c:374,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/election.c:375,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/election.c:386,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/cluster/election.c:393,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/election.c:381,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/election.c:391,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/lib/cluster/election.c:379,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/lib/cluster/election.c:380,1
    - Dst: election_complete
      Src: /src/pacemaker/lib/cluster/election.c:387,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 397
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 397
    functionName: election_check
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached:
    - crm_debug
    - CRM_CHECK
    - election_complete
    - g_hash_table_iter_next
    - pcmk__plural_s
    - g_hash_table_size
    - pcmk__cluster_num_active_nodes
    - pcmk__cluster_is_node_active
    - crm_warn
    - crm_info
    - g_hash_table_iter_init
    - crm_trace
    - election_timeout_stop
    linkageType: ''
    returnType: bool
    signature: 'bool election_check(pcmk_cluster_t *cluster) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__server_message_type
      Src: /src/pacemaker/lib/cluster/election.c:496,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/lib/cluster/election.c:502,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cluster/election.c:499,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/cluster/election.c:500,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/lib/cluster/election.c:497,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cluster/election.c:503,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - cluster
    - peer
    - vote
    argTypes:
    - pcmk_cluster_t*
    - pcmk__node_status_t*
    - struct vote*
    constantsTouched: []
    func_position:
      end: 504
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 504
    functionName: send_no_vote
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached:
    - crm_xml_add
    - pcmk__cluster_send_message
    - pcmk__server_message_type
    - pcmk__xml_free
    - crm_xml_add_int
    - pcmk__new_request
    linkageType: ''
    returnType: void
    signature: 'static void send_no_vote(pcmk_cluster_t *cluster, pcmk__node_status_t
      *peer, struct vote *vote) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 738
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 738
    functionName: election_clear_dampening
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void election_clear_dampening(pcmk_cluster_t *cluster) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: election_state
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: enum election_result
    signature: 'enum election_result election_state(const pcmk_cluster_t *cluster) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_timer_stop
      Src: /src/pacemaker/lib/cluster/election.c:182,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: election_timeout_stop
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached:
    - mainloop_timer_stop
    linkageType: ''
    returnType: void
    signature: 'void election_timeout_stop(pcmk_cluster_t *cluster) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cluster/election.c:284,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/election.c:294,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/election.c:287,1
    - Dst: pcmk__cluster_is_node_active
      Src: /src/pacemaker/lib/cluster/election.c:293,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/lib/cluster/election.c:291,1
    - Dst: election_reset
      Src: /src/pacemaker/lib/cluster/election.c:298,1
    - Dst: pcmk__server_message_type
      Src: /src/pacemaker/lib/cluster/election.c:300,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/lib/cluster/election.c:305,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/lib/cluster/election.c:309,1
    - Dst: pcmk__cluster_get_xml_id
      Src: /src/pacemaker/lib/cluster/election.c:310,1
    - Dst: crm_xml_add_timeval
      Src: /src/pacemaker/lib/cluster/election.c:315,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/lib/cluster/election.c:318,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/election.c:321,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/lib/cluster/election.c:319,1
    - Dst: election_timeout_start
      Src: /src/pacemaker/lib/cluster/election.c:322,1
    - Dst: get_uptime
      Src: /src/pacemaker/lib/cluster/election.c:314,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/lib/cluster/election.c:311,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 324
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 324
    functionName: election_vote
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__cluster_get_xml_id
    - election_timeout_start
    - pcmk__get_node
    - CRM_CHECK
    - crm_xml_add_timeval
    - crm_xml_add
    - get_uptime
    - election_reset
    - pcmk__server_message_type
    - pcmk__cluster_send_message
    - crm_err
    - pcmk__xml_free
    - crm_xml_add_int
    - pcmk__cluster_is_node_active
    - pcmk__new_request
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void election_vote(pcmk_cluster_t *cluster) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/lib/cluster/election.c:39,1
    - Dst: election_reset
      Src: /src/pacemaker/lib/cluster/election.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: election_complete
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - election_reset
    linkageType: ''
    returnType: void
    signature: 'static void election_complete(pcmk_cluster_t *cluster) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/election.c:52,1
    - Dst: election_complete
      Src: /src/pacemaker/lib/cluster/election.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: election_timer_cb
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached:
    - crm_info
    - election_complete
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean election_timer_cb(gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cluster/election.c:93,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/lib/cluster/election.c:95,1
    - Dst: mainloop_timer_add
      Src: /src/pacemaker/lib/cluster/election.c:99,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/cluster/election.c:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - cluster
    - (*cb)
    argTypes:
    - pcmk_cluster_t*
    - void
    constantsTouched: []
    func_position:
      end: 104
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 104
    functionName: election_init
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached:
    - pcmk__assert_alloc
    - mainloop_timer_add
    - CRM_CHECK
    - pcmk__s
    linkageType: ''
    returnType: void
    signature: 'void election_init(pcmk_cluster_t *cluster, void (*cb)(pcmk_cluster_t
      *)) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: election_reset
      Src: /src/pacemaker/lib/cluster/election.c:158,1
    - Dst: mainloop_timer_del
      Src: /src/pacemaker/lib/cluster/election.c:160,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/election.c:159,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/election.c:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 164
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 164
    functionName: election_fini
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached:
    - free
    - crm_trace
    - election_reset
    - mainloop_timer_del
    linkageType: ''
    returnType: void
    signature: 'void election_fini(pcmk_cluster_t *cluster) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_timer_start
      Src: /src/pacemaker/lib/cluster/election.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: election_timeout_start
    functionSourceFile: /src/pacemaker/lib/cluster/election.c
    functionUses: []
    functionsReached:
    - mainloop_timer_start
    linkageType: ''
    returnType: void
    signature: 'static void election_timeout_start(pcmk_cluster_t *cluster) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cpg_local_nodeid
      Src: /src/pacemaker/lib/cluster/cpg.c:649,1
    - Dst: node_left
      Src: /src/pacemaker/lib/cluster/cpg.c:664,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/cpg.c:667,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/cluster/cpg.c:652,1
    - Dst: qsort
      Src: /src/pacemaker/lib/cluster/cpg.c:660,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/cpg.c:671,1
    - Dst: cpgreason2str
      Src: /src/pacemaker/lib/cluster/cpg.c:673,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/lib/cluster/cpg.c:678,1
    - Dst: getpid
      Src: /src/pacemaker/lib/cluster/cpg.c:682,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/cpg.c:684,1
    - Dst: time
      Src: /src/pacemaker/lib/cluster/cpg.c:706,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/cpg.c:714,1
    - Dst: peer_name
      Src: /src/pacemaker/lib/cluster/cpg.c:689,1
    - Dst: crm_update_peer_proc
      Src: /src/pacemaker/lib/cluster/cpg.c:695,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:727,1
    - Dst: pcmk__update_peer_state
      Src: /src/pacemaker/lib/cluster/cpg.c:717,1
    - Dst: strcmp
      Src: /src/pacemaker/lib/cluster/cpg.c:698,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/cpg.c:688,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 51
    argCount: 8
    argNames:
    - handle
    - group_name
    - member_list
    - member_list_entries
    - left_list
    - left_list_entries
    - joined_list
    - joined_list_entries
    argTypes:
    - cpg_handle_t
    - struct cpg_name*
    - struct cpg_address*
    - size_t
    - struct cpg_address*
    - size_t
    - struct cpg_address*
    - size_t
    constantsTouched: []
    func_position:
      end: 732
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 732
    functionName: pcmk__cpg_confchg_cb
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached:
    - pcmk__cpg_local_nodeid
    - pcmk__get_node
    - crm_update_peer_proc
    - pcmk__update_peer_state
    - pcmk__assert_alloc
    - qsort
    - cpgreason2str
    - strcmp
    - node_left
    - peer_name
    - time
    - free
    - getpid
    - crm_warn
    - crm_info
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void pcmk__cpg_confchg_cb(cpg_handle_t handle, const struct cpg_name
      *group_name, const struct cpg_address *member_list, size_t member_list_entries,
      const struct cpg_address *left_list, size_t left_list_entries, const struct
      cpg_address *joined_list, size_t joined_list_entries) '
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 1
    argNames:
    - reason
    argTypes:
    - cpg_reason_t
    constantsTouched: []
    func_position:
      end: 542
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 542
    functionName: cpgreason2str
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *cpgreason2str(cpg_reason_t reason) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cluster/cpg.c:816,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:854,1
    - Dst: pcmk__cpg_local_nodeid
      Src: /src/pacemaker/lib/cluster/cpg.c:852,1
    - Dst: cpg_finalize
      Src: /src/pacemaker/lib/cluster/cpg.c:873,1
    - Dst: pcmk__server_message_type
      Src: /src/pacemaker/lib/cluster/cpg.c:808,1
    - Dst: strerror
      Src: /src/pacemaker/lib/cluster/cpg.c:847,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:846,1
    - Dst: cs_strerror
      Src: /src/pacemaker/lib/cluster/cpg.c:832,1
    - Dst: mainloop_add_fd
      Src: /src/pacemaker/lib/cluster/cpg.c:869,1
    - Dst: strlen
      Src: /src/pacemaker/lib/cluster/cpg.c:820,1
    - Dst: memset
      Src: /src/pacemaker/lib/cluster/cpg.c:818,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:824,1
    - Dst: cs_strerror
      Src: /src/pacemaker/lib/cluster/cpg.c:825,1
    - Dst: crm_ipc_is_authentic_process
      Src: /src/pacemaker/lib/cluster/cpg.c:837,1
    - Dst: cs_repeat
      Src: /src/pacemaker/lib/cluster/cpg.c:861,1
    - Dst: cpg_join
      Src: /src/pacemaker/lib/cluster/cpg.c:861,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:863,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/lib/cluster/cpg.c:878,1
    - Dst: crm_update_peer_proc
      Src: /src/pacemaker/lib/cluster/cpg.c:879,1
    - Dst: strncpy
      Src: /src/pacemaker/lib/cluster/cpg.c:819,1
    - Dst: cs_repeat
      Src: /src/pacemaker/lib/cluster/cpg.c:822,1
    - Dst: cpg_model_initialize
      Src: /src/pacemaker/lib/cluster/cpg.c:822,1
    - Dst: cpg_fd_get
      Src: /src/pacemaker/lib/cluster/cpg.c:829,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:839,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:831,1
    - Dst: PCMK__SPECIAL_PID_AS_0
      Src: /src/pacemaker/lib/cluster/cpg.c:841,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 881
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 881
    functionName: pcmk__cpg_connect
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached:
    - pcmk__cpg_local_nodeid
    - pcmk__get_node
    - pcmk__server_message_type
    - cs_repeat
    - crm_ipc_is_authentic_process
    - cpg_fd_get
    - PCMK__SPECIAL_PID_AS_0
    - cs_strerror
    - crm_update_peer_proc
    - pcmk__s
    - cpg_model_initialize
    - cpg_finalize
    - crm_err
    - memset
    - strerror
    - strncpy
    - cpg_join
    - mainloop_add_fd
    - strlen
    linkageType: ''
    returnType: int
    signature: 'int pcmk__cpg_connect(pcmk_cluster_t *cluster) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/cpg.c:894,1
    - Dst: cpg_leave
      Src: /src/pacemaker/lib/cluster/cpg.c:895,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/cpg.c:900,1
    - Dst: cpg_finalize
      Src: /src/pacemaker/lib/cluster/cpg.c:896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 902
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 902
    functionName: pcmk__cpg_disconnect
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached:
    - crm_info
    - cpg_leave
    - crm_trace
    - cpg_finalize
    linkageType: ''
    returnType: void
    signature: 'void pcmk__cpg_disconnect(pcmk_cluster_t *cluster) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - cluster
    - fn
    argTypes:
    - pcmk_cluster_t*
    - cpg_deliver_fn_t
    constantsTouched: []
    func_position:
      end: 750
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 750
    functionName: pcmk_cpg_set_deliver_fn
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int pcmk_cpg_set_deliver_fn(pcmk_cluster_t *cluster, cpg_deliver_fn_t
      fn) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/cpg.c:212,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/cpg.c:226,1
    - Dst: g_list_length
      Src: /src/pacemaker/lib/cluster/cpg.c:216,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:218,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/cpg.c:221,1
    - Dst: cpg_mcast_joined
      Src: /src/pacemaker/lib/cluster/cpg.c:233,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/cpg.c:239,1
    - Dst: g_list_remove
      Src: /src/pacemaker/lib/cluster/cpg.c:241,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/cpg.c:242,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/cpg.c:243,1
    - Dst: pcmk__cs_err_str
      Src: /src/pacemaker/lib/cluster/cpg.c:249,1
    - Dst: QB_MIN
      Src: /src/pacemaker/lib/cluster/cpg.c:256,1
    - Dst: do_crm_log
      Src: /src/pacemaker/lib/cluster/cpg.c:247,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/lib/cluster/cpg.c:249,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/lib/cluster/cpg.c:258,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 260
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 260
    functionName: crm_cs_flush
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached:
    - crm_trace
    - pcmk__plural_s
    - g_list_length
    - g_list_remove
    - do_crm_log
    - cpg_mcast_joined
    - pcmk__cs_err_str
    - free
    - QB_MIN
    - crm_warn
    - crm_err
    - pcmk__create_timer
    linkageType: ''
    returnType: void
    signature: 'static void crm_cs_flush(gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - host
    argTypes:
    - pcmk__cpg_host_t*
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: ais_dest
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *ais_dest(const pcmk__cpg_host_t *host) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cluster/cpg.c:555,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - peer
    argTypes:
    - pcmk__node_status_t*
    constantsTouched: []
    func_position:
      end: 556
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 556
    functionName: peer_name
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached:
    - pcmk__s
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *peer_name(const pcmk__node_status_t *peer) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_string_sized_new
      Src: /src/pacemaker/lib/cluster/cpg.c:1042,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/lib/cluster/cpg.c:1044,1
    - Dst: g_string_free
      Src: /src/pacemaker/lib/cluster/cpg.c:1047,1
    - Dst: send_cpg_text
      Src: /src/pacemaker/lib/cluster/cpg.c:1046,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - msg
    - node
    - dest
    argTypes:
    - xmlNode*
    - pcmk__node_status_t*
    - enum pcmk_ipc_server
    constantsTouched: []
    func_position:
      end: 1049
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1049
    functionName: pcmk__cpg_send_xml
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached:
    - pcmk__xml_string
    - g_string_free
    - g_string_sized_new
    - send_cpg_text
    linkageType: ''
    returnType: bool
    signature: 'bool pcmk__cpg_send_xml(const xmlNode *msg, const pcmk__node_status_t
      *node, enum pcmk_ipc_server dest) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__server_message_type
      Src: /src/pacemaker/lib/cluster/cpg.c:300,1
    - Dst: pcmk__s
      Src: /src/pacemaker/lib/cluster/cpg.c:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum pcmk_ipc_server
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: msg_type2text
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - pcmk__server_message_type
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *msg_type2text(enum pcmk_ipc_server type) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_cs_flush
      Src: /src/pacemaker/lib/cluster/cpg.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: crm_cs_flush_cb
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached:
    - crm_cs_flush
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean crm_cs_flush_cb(gpointer data) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/pacemaker/lib/cluster/cpg.c:953,1
    - Dst: memcpy
      Src: /src/pacemaker/lib/cluster/cpg.c:955,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/lib/cluster/cpg.c:958,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/cluster/cpg.c:963,1
    - Dst: pcmk__realloc
      Src: /src/pacemaker/lib/cluster/cpg.c:980,1
    - Dst: pcmk__realloc
      Src: /src/pacemaker/lib/cluster/cpg.c:991,1
    - Dst: memcpy
      Src: /src/pacemaker/lib/cluster/cpg.c:992,1
    - Dst: pcmk__parse_server
      Src: /src/pacemaker/lib/cluster/cpg.c:967,1
    - Dst: pcmk__realloc
      Src: /src/pacemaker/lib/cluster/cpg.c:998,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/cpg.c:1002,1
    - Dst: g_list_append
      Src: /src/pacemaker/lib/cluster/cpg.c:1021,1
    - Dst: pcmk__cluster_local_node_name
      Src: /src/pacemaker/lib/cluster/cpg.c:928,1
    - Dst: getpid
      Src: /src/pacemaker/lib/cluster/cpg.c:939,1
    - Dst: strlen
      Src: /src/pacemaker/lib/cluster/cpg.c:931,1
    - Dst: memset
      Src: /src/pacemaker/lib/cluster/cpg.c:954,1
    - Dst: memcpy
      Src: /src/pacemaker/lib/cluster/cpg.c:973,1
    - Dst: pcmk__compress
      Src: /src/pacemaker/lib/cluster/cpg.c:987,1
    - Dst: memset
      Src: /src/pacemaker/lib/cluster/cpg.c:970,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/cpg.c:1010,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/cpg.c:1019,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/cluster/cpg.c:942,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/cluster/cpg.c:952,1
    - Dst: strlen
      Src: /src/pacemaker/lib/cluster/cpg.c:976,1
    - Dst: memcpy
      Src: /src/pacemaker/lib/cluster/cpg.c:981,1
    - Dst: memcpy
      Src: /src/pacemaker/lib/cluster/cpg.c:999,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/cpg.c:1014,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/cluster/cpg.c:1005,1
    - Dst: crm_cs_flush
      Src: /src/pacemaker/lib/cluster/cpg.c:1022,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 90
    argCount: 3
    argNames:
    - data
    - node
    - dest
    argTypes:
    - char*
    - pcmk__node_status_t*
    - enum pcmk_ipc_server
    constantsTouched: []
    func_position:
      end: 1025
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 1025
    functionName: send_cpg_text
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached:
    - memcpy
    - g_list_append
    - crm_strdup_printf
    - memset
    - pcmk__assert_alloc
    - pcmk__str_copy
    - pcmk__parse_server
    - pcmk__realloc
    - free
    - getpid
    - pcmk__cluster_local_node_name
    - strlen
    - crm_cs_flush
    - crm_trace
    - pcmk__compress
    linkageType: ''
    returnType: bool
    signature: 'static bool send_cpg_text(const char *data, const pcmk__node_status_t
      *node, enum pcmk_ipc_server dest) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/cpg.c:441,1
    - Dst: free
      Src: /src/pacemaker/lib/cluster/cpg.c:477,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/lib/cluster/cpg.c:468,1
    - Dst: check_message_sanity
      Src: /src/pacemaker/lib/cluster/cpg.c:461,1
    - Dst: ais_dest
      Src: /src/pacemaker/lib/cluster/cpg.c:493,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/lib/cluster/cpg.c:426,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/lib/cluster/cpg.c:454,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/lib/cluster/cpg.c:487,1
    - Dst: pcmk__cpg_local_nodeid
      Src: /src/pacemaker/lib/cluster/cpg.c:405,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/cpg.c:420,1
    - Dst: pcmk__cluster_local_node_name
      Src: /src/pacemaker/lib/cluster/cpg.c:406,1
    - Dst: strlen
      Src: /src/pacemaker/lib/cluster/cpg.c:446,1
    - Dst: memcpy
      Src: /src/pacemaker/lib/cluster/cpg.c:448,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/cpg.c:478,1
    - Dst: ais_dest
      Src: /src/pacemaker/lib/cluster/cpg.c:480,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/lib/cluster/cpg.c:481,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/cpg.c:490,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/cpg.c:412,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/cpg.c:428,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/lib/cluster/cpg.c:437,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/cpg.c:444,1
    - Dst: BZ2_bzBuffToBuffDecompress
      Src: /src/pacemaker/lib/cluster/cpg.c:470,1
    - Dst: memset
      Src: /src/pacemaker/lib/cluster/cpg.c:447,1
    - Dst: pcmk__bzlib2rc
      Src: /src/pacemaker/lib/cluster/cpg.c:472,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 70
    argCount: 5
    argNames:
    - handle
    - sender_id
    - pid
    - content
    - from
    argTypes:
    - cpg_handle_t
    - uint32_t
    - uint32_t
    - void*
    - char**
    constantsTouched: []
    func_position:
      end: 495
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 495
    functionName: pcmk__cpg_message_data
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__cpg_local_nodeid
    - pcmk__get_node
    - memcpy
    - pcmk__bzlib2rc
    - check_message_sanity
    - memset
    - pcmk__assert_alloc
    - pcmk__str_eq
    - strlen
    - BZ2_bzBuffToBuffDecompress
    - pcmk__str_copy
    - free
    - ais_dest
    - pcmk_rc_str
    - pcmk__cluster_local_node_name
    - crm_warn
    - crm_trace
    linkageType: ''
    returnType: char*
    signature: 'char *pcmk__cpg_message_data(cpg_handle_t handle, uint32_t sender_id,
      uint32_t pid, void *content, const char **from) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 5
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 520
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 520
    functionName: cmp_member_list_nodeid
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int cmp_member_list_nodeid(const void *first, const void *second) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - cluster
    - fn
    argTypes:
    - pcmk_cluster_t*
    - cpg_confchg_fn_t
    constantsTouched: []
    func_position:
      end: 768
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 768
    functionName: pcmk_cpg_set_confchg_fn
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int pcmk_cpg_set_confchg_fn(pcmk_cluster_t *cluster, cpg_confchg_fn_t
      fn) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: crm_ipc_is_authentic_process
      Src: /src/pacemaker/lib/cluster/cpg.c:142,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/cpg.c:171,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/cpg.c:123,1
    - Dst: cs_strerror
      Src: /src/pacemaker/lib/cluster/cpg.c:130,1
    - Dst: cs_strerror
      Src: /src/pacemaker/lib/cluster/cpg.c:137,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:152,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:165,1
    - Dst: strerror
      Src: /src/pacemaker/lib/cluster/cpg.c:153,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/cpg.c:160,1
    - Dst: cpg_finalize
      Src: /src/pacemaker/lib/cluster/cpg.c:172,1
    - Dst: cpg_model_initialize
      Src: /src/pacemaker/lib/cluster/cpg.c:125,1
    - Dst: cs_repeat
      Src: /src/pacemaker/lib/cluster/cpg.c:124,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:145,1
    - Dst: PCMK__SPECIAL_PID_AS_0
      Src: /src/pacemaker/lib/cluster/cpg.c:147,1
    - Dst: crm_debug
      Src: /src/pacemaker/lib/cluster/cpg.c:174,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:129,1
    - Dst: cpg_fd_get
      Src: /src/pacemaker/lib/cluster/cpg.c:134,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:136,1
    - Dst: pcmk__cs_err_str
      Src: /src/pacemaker/lib/cluster/cpg.c:166,1
    - Dst: cpg_local_get
      Src: /src/pacemaker/lib/cluster/cpg.c:161,1
    - Dst: cs_repeat
      Src: /src/pacemaker/lib/cluster/cpg.c:161,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - handle
    argTypes:
    - cpg_handle_t
    constantsTouched: []
    func_position:
      end: 176
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 176
    functionName: pcmk__cpg_local_nodeid
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached:
    - PCMK__SPECIAL_PID_AS_0
    - crm_debug
    - crm_trace
    - cs_strerror
    - cpg_local_get
    - cpg_model_initialize
    - strerror
    - cpg_finalize
    - pcmk__cs_err_str
    - cs_repeat
    - crm_ipc_is_authentic_process
    - crm_err
    - cpg_fd_get
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t pcmk__cpg_local_nodeid(cpg_handle_t handle) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpg_dispatch
      Src: /src/pacemaker/lib/cluster/cpg.c:276,1
    - Dst: pcmk__cs_err_str
      Src: /src/pacemaker/lib/cluster/cpg.c:279,1
    - Dst: cpg_finalize
      Src: /src/pacemaker/lib/cluster/cpg.c:280,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:285,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 289
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 289
    functionName: pcmk_cpg_dispatch
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached:
    - pcmk__cs_err_str
    - crm_err
    - cpg_dispatch
    - cpg_finalize
    linkageType: ''
    returnType: int
    signature: 'static int pcmk_cpg_dispatch(gpointer user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ais_dest
      Src: /src/pacemaker/lib/cluster/cpg.c:323,1
    - Dst: msg_type2text
      Src: /src/pacemaker/lib/cluster/cpg.c:325,1
    - Dst: ais_dest
      Src: /src/pacemaker/lib/cluster/cpg.c:363,1
    - Dst: msg_type2text
      Src: /src/pacemaker/lib/cluster/cpg.c:350,1
    - Dst: msg_type2text
      Src: /src/pacemaker/lib/cluster/cpg.c:364,1
    - Dst: msg_type2text
      Src: /src/pacemaker/lib/cluster/cpg.c:371,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:319,1
    - Dst: ais_dest
      Src: /src/pacemaker/lib/cluster/cpg.c:326,1
    - Dst: msg_type2text
      Src: /src/pacemaker/lib/cluster/cpg.c:338,1
    - Dst: msg_data_len
      Src: /src/pacemaker/lib/cluster/cpg.c:342,1
    - Dst: msg_type2text
      Src: /src/pacemaker/lib/cluster/cpg.c:349,1
    - Dst: ais_dest
      Src: /src/pacemaker/lib/cluster/cpg.c:372,1
    - Dst: msg_type2text
      Src: /src/pacemaker/lib/cluster/cpg.c:373,1
    - Dst: msg_type2text
      Src: /src/pacemaker/lib/cluster/cpg.c:337,1
    - Dst: msg_data_len
      Src: /src/pacemaker/lib/cluster/cpg.c:348,1
    - Dst: ais_dest
      Src: /src/pacemaker/lib/cluster/cpg.c:350,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:343,1
    - Dst: ais_dest
      Src: /src/pacemaker/lib/cluster/cpg.c:347,1
    - Dst: msg_type2text
      Src: /src/pacemaker/lib/cluster/cpg.c:326,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:331,1
    - Dst: ais_dest
      Src: /src/pacemaker/lib/cluster/cpg.c:335,1
    - Dst: ais_dest
      Src: /src/pacemaker/lib/cluster/cpg.c:338,1
    - Dst: crm_err
      Src: /src/pacemaker/lib/cluster/cpg.c:360,1
    - Dst: msg_type2text
      Src: /src/pacemaker/lib/cluster/cpg.c:365,1
    - Dst: ais_dest
      Src: /src/pacemaker/lib/cluster/cpg.c:365,1
    - Dst: crm_trace
      Src: /src/pacemaker/lib/cluster/cpg.c:369,1
    - Dst: ais_dest
      Src: /src/pacemaker/lib/cluster/cpg.c:373,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 1
    argNames:
    - msg
    argTypes:
    - pcmk__cpg_msg_t*
    constantsTouched: []
    func_position:
      end: 375
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 375
    functionName: check_message_sanity
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached:
    - msg_type2text
    - crm_err
    - msg_data_len
    - ais_dest
    - crm_trace
    linkageType: ''
    returnType: bool
    signature: 'static bool check_message_sanity(const pcmk__cpg_msg_t *msg) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__search_node_caches
      Src: /src/pacemaker/lib/cluster/cpg.c:576,1
    - Dst: cpgreason2str
      Src: /src/pacemaker/lib/cluster/cpg.c:602,1
    - Dst: crm_info
      Src: /src/pacemaker/lib/cluster/cpg.c:599,1
    - Dst: peer_name
      Src: /src/pacemaker/lib/cluster/cpg.c:600,1
    - Dst: bsearch
      Src: /src/pacemaker/lib/cluster/cpg.c:593,1
    - Dst: crm_update_peer_proc
      Src: /src/pacemaker/lib/cluster/cpg.c:604,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/cpg.c:608,1
    - Dst: cpgreason2str
      Src: /src/pacemaker/lib/cluster/cpg.c:610,1
    - Dst: crm_warn
      Src: /src/pacemaker/lib/cluster/cpg.c:612,1
    - Dst: peer_name
      Src: /src/pacemaker/lib/cluster/cpg.c:614,1
    - Dst: cpgreason2str
      Src: /src/pacemaker/lib/cluster/cpg.c:616,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 22
    argCount: 6
    argNames:
    - cpg_group_name
    - event_counter
    - local_nodeid
    - cpg_peer
    - sorted_member_list
    - member_list_entries
    argTypes:
    - char*
    - int
    - uint32_t
    - struct cpg_address*
    - struct cpg_address**
    - size_t
    constantsTouched: []
    func_position:
      end: 618
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 618
    functionName: node_left
    functionSourceFile: /src/pacemaker/lib/cluster/cpg.c
    functionUses: []
    functionsReached:
    - crm_update_peer_proc
    - pcmk__search_node_caches
    - cpgreason2str
    - bsearch
    - peer_name
    - crm_warn
    - crm_info
    linkageType: ''
    returnType: void
    signature: 'static void node_left(const char *cpg_group_name, int event_counter,
      uint32_t local_nodeid, const struct cpg_address *cpg_peer, const struct cpg_address
      **sorted_member_list, size_t member_list_entries) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c:67,1
    - Dst: pcmk_cpg_set_deliver_fn
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c:67,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: previous_fn_null
    functionSourceFile: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c
    functionUses: []
    functionsReached:
    - pcmk_cpg_set_deliver_fn
    - assert_ptr_equal
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void previous_fn_null(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c:37,1
    - Dst: pcmk_cpg_set_deliver_fn
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c:38,1
    - Dst: pcmk_cpg_set_deliver_fn
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: null_cluster
    functionSourceFile: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c
    functionUses: []
    functionsReached:
    - pcmk_cpg_set_deliver_fn
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void null_cluster(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 6
    argNames:
    - handle
    - group_name
    - nodeid
    - pid
    - msg
    - msg_len
    argTypes:
    - cpg_handle_t
    - struct cpg_name*
    - uint32_t
    - uint32_t
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: deliver_fn1
    functionSourceFile: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void deliver_fn1(cpg_handle_t handle, const struct cpg_name
      *group_name, uint32_t nodeid, uint32_t pid, void *msg, size_t msg_len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 6
    argNames:
    - handle
    - group_name
    - nodeid
    - pid
    - msg
    - msg_len
    argTypes:
    - cpg_handle_t
    - struct cpg_name*
    - uint32_t
    - uint32_t
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: deliver_fn2
    functionSourceFile: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void deliver_fn2(cpg_handle_t handle, const struct cpg_name
      *group_name, uint32_t nodeid, uint32_t pid, void *msg, size_t msg_len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c:50,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c:51,1
    - Dst: pcmk_cpg_set_deliver_fn
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c:54,1
    - Dst: pcmk_cpg_set_deliver_fn
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c:50,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c:54,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: null_fn
    functionSourceFile: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c
    functionUses: []
    functionsReached:
    - pcmk_cpg_set_deliver_fn
    - assert_ptr_equal
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void null_fn(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c:81,1
    - Dst: pcmk_cpg_set_deliver_fn
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c:81,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 84
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 84
    functionName: previous_fn_nonnull
    functionSourceFile: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_deliver_fn_test.c
    functionUses: []
    functionsReached:
    - pcmk_cpg_set_deliver_fn
    - assert_ptr_equal
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void previous_fn_nonnull(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c:71,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c:73,1
    - Dst: pcmk_cpg_set_confchg_fn
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: previous_fn_null
    functionSourceFile: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c
    functionUses: []
    functionsReached:
    - pcmk_cpg_set_confchg_fn
    - assert_ptr_equal
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void previous_fn_null(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c:41,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c:42,1
    - Dst: pcmk_cpg_set_confchg_fn
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c:42,1
    - Dst: pcmk_cpg_set_confchg_fn
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: null_cluster
    functionSourceFile: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c
    functionUses: []
    functionsReached:
    - pcmk_cpg_set_confchg_fn
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void null_cluster(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 1
    argCount: 8
    argNames:
    - handle
    - group_name
    - member_list
    - member_list_entries
    - left_list
    - left_list_entries
    - joined_list
    - joined_list_entries
    argTypes:
    - cpg_handle_t
    - struct cpg_name*
    - struct cpg_address*
    - size_t
    - struct cpg_address*
    - size_t
    - struct cpg_address*
    - size_t
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: confchg_fn1
    functionSourceFile: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void confchg_fn1(cpg_handle_t handle, const struct cpg_name
      *group_name, const struct cpg_address *member_list, size_t member_list_entries,
      const struct cpg_address *left_list, size_t left_list_entries, const struct
      cpg_address *joined_list, size_t joined_list_entries) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c:54,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c:58,1
    - Dst: pcmk_cpg_set_confchg_fn
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c:58,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c:55,1
    - Dst: pcmk_cpg_set_confchg_fn
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c:54,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: null_fn
    functionSourceFile: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c
    functionUses: []
    functionsReached:
    - pcmk_cpg_set_confchg_fn
    - assert_ptr_equal
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void null_fn(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 1
    argCount: 8
    argNames:
    - handle
    - group_name
    - member_list
    - member_list_entries
    - left_list
    - left_list_entries
    - joined_list
    - joined_list_entries
    argTypes:
    - cpg_handle_t
    - struct cpg_name*
    - struct cpg_address*
    - size_t
    - struct cpg_address*
    - size_t
    - struct cpg_address*
    - size_t
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: confchg_fn2
    functionSourceFile: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void confchg_fn2(cpg_handle_t handle, const struct cpg_name
      *group_name, const struct cpg_address *member_list, size_t member_list_entries,
      const struct cpg_address *left_list, size_t left_list_entries, const struct
      cpg_address *joined_list, size_t joined_list_entries) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c:85,1
    - Dst: pcmk_cpg_set_confchg_fn
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c:85,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: previous_fn_nonnull
    functionSourceFile: /src/pacemaker/lib/cluster/tests/cpg/pcmk_cpg_set_confchg_fn_test.c
    functionUses: []
    functionsReached:
    - pcmk_cpg_set_confchg_fn
    - assert_ptr_equal
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void previous_fn_nonnull(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - arg
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: destroy_fn1
    functionSourceFile: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void destroy_fn1(gpointer arg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c:57,1
    - Dst: pcmk_cluster_set_destroy_fn
      Src: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c:57,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: previous_fn_null
    functionSourceFile: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c
    functionUses: []
    functionsReached:
    - pcmk_cluster_set_destroy_fn
    - assert_ptr_equal
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void previous_fn_null(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c:31,1
    - Dst: pcmk_cluster_set_destroy_fn
      Src: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c:31,1
    - Dst: pcmk_cluster_set_destroy_fn
      Src: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: null_cluster
    functionSourceFile: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c
    functionUses: []
    functionsReached:
    - pcmk_cluster_set_destroy_fn
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void null_cluster(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - arg
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: destroy_fn2
    functionSourceFile: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void destroy_fn2(gpointer arg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c:42,1
    - Dst: pcmk_cluster_set_destroy_fn
      Src: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c:42,1
    - Dst: pcmk_cluster_set_destroy_fn
      Src: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c:46,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c:43,1
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c:46,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: null_fn
    functionSourceFile: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c
    functionUses: []
    functionsReached:
    - pcmk_cluster_set_destroy_fn
    - assert_ptr_equal
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void null_fn(void **state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c:69,1
    - Dst: pcmk_cluster_set_destroy_fn
      Src: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c:69,1
    - Dst: assert_ptr_equal
      Src: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: previous_fn_nonnull
    functionSourceFile: /src/pacemaker/lib/cluster/tests/cluster/pcmk_cluster_set_destroy_fn_test.c
    functionUses: []
    functionsReached:
    - pcmk_cluster_set_destroy_fn
    - assert_ptr_equal
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: 'static void previous_fn_nonnull(void **state) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cpg_message_data
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:36,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:51,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:44,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:47,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:46,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:53,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:54,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:58,1
    - Dst: crm_update_peer_proc
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:61,1
    - Dst: crmd_ha_msg_filter
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:64,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:66,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:65,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 6
    argNames:
    - handle
    - groupName
    - nodeid
    - pid
    - msg
    - msg_len
    argTypes:
    - cpg_handle_t
    - struct cpg_name*
    - uint32_t
    - uint32_t
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 67
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 67
    functionName: crmd_cs_dispatch
    functionSourceFile: /src/pacemaker/daemons/controld/controld_corosync.c
    functionUses: []
    functionsReached:
    - pcmk__get_node
    - crm_update_peer_proc
    - crm_xml_add
    - pcmk_is_set
    - free
    - crm_warn
    - crmd_ha_msg_filter
    - pcmk__xml_parse
    - pcmk__xml_free
    - pcmk__cpg_message_data
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void crmd_cs_dispatch(cpg_handle_t handle, const struct cpg_name
      *groupName, uint32_t nodeid, uint32_t pid, void *msg, size_t msg_len) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__search_node_caches
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:121,1
    - Dst: pcmk__cpg_confchg_cb
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:134,1
    - Dst: controld_set_global_flags
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:126,1
    - Dst: controld_clear_global_flags
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:138,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 14
    argCount: 8
    argNames:
    - handle
    - cpg_name
    - member_list
    - member_list_entries
    - left_list
    - left_list_entries
    - joined_list
    - joined_list_entries
    argTypes:
    - cpg_handle_t
    - struct cpg_name*
    - struct cpg_address*
    - size_t
    - struct cpg_address*
    - size_t
    - struct cpg_address*
    - size_t
    constantsTouched: []
    func_position:
      end: 139
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 139
    functionName: cpg_membership_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_corosync.c
    functionUses: []
    functionsReached:
    - controld_set_global_flags
    - pcmk__cpg_confchg_cb
    - pcmk__search_node_caches
    - controld_clear_global_flags
    linkageType: ''
    returnType: void
    signature: 'static void cpg_membership_callback(cpg_handle_t handle, const struct
      cpg_name *cpg_name, const struct cpg_address *member_list, size_t member_list_entries,
      const struct cpg_address *left_list, size_t left_list_entries, const struct
      cpg_address *joined_list, size_t joined_list_entries) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_update_quorum
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:72,1
    - Dst: post_cache_update
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - seq
    - quorate
    argTypes:
    - unsigned long long
    - gboolean
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: crmd_quorum_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_corosync.c
    functionUses: []
    functionsReached:
    - crm_update_quorum
    - post_cache_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean crmd_quorum_callback(unsigned long long seq, gboolean
      quorate) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:80,1
    - Dst: crmd_exit
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:82,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: crmd_cs_destroy
    functionSourceFile: /src/pacemaker/daemons/controld/controld_corosync.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - crm_crit
    - crmd_exit
    linkageType: ''
    returnType: void
    signature: 'static void crmd_cs_destroy(gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:146,1
    - Dst: pcmk_cluster_set_destroy_fn
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:149,1
    - Dst: pcmk_cpg_set_confchg_fn
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:151,1
    - Dst: pcmk_cpg_set_deliver_fn
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:150,1
    - Dst: pcmk__cluster_set_status_callback
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:147,1
    - Dst: pcmk_cluster_connect
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:153,1
    - Dst: pcmk__corosync_quorum_connect
      Src: /src/pacemaker/daemons/controld/controld_corosync.c:154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 160
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 160
    functionName: crm_connect_corosync
    functionSourceFile: /src/pacemaker/daemons/controld/controld_corosync.c
    functionUses: []
    functionsReached:
    - pcmk_cluster_set_destroy_fn
    - pcmk_get_cluster_layer
    - pcmk__cluster_set_status_callback
    - pcmk_cluster_connect
    - pcmk__corosync_quorum_connect
    - pcmk_cpg_set_deliver_fn
    - pcmk_cpg_set_confchg_fn
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean crm_connect_corosync(pcmk_cluster_t *cluster) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: controld_destroy_failed_sync_table
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: 'void controld_destroy_failed_sync_table(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_join_round
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:327,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:331,1
    - Dst: update_dc
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:329,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:335,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:333,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:336,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 340
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 340
    functionName: do_dc_join_offer_all
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - update_dc
    - g_hash_table_foreach
    - pcmk__plural_s
    - crmd_join_phase_count
    - start_join_round
    - crm_info
    linkageType: ''
    returnType: void
    signature: 'void do_dc_join_offer_all(long long action, enum crmd_fsa_cause cause,
      enum crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t
      * msg_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:683,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 688
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 688
    functionName: free_max_generation
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - free
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'void free_max_generation(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:693,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:698,1
    - Dst: record_failed_sync_node
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:703,1
    - Dst: register_fsa_error_adv
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:707,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:700,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:711,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:714,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:716,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:719,1
    - Dst: check_join_state
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:722,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:729,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:731,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:726,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:728,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:725,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 734
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 734
    functionName: finalize_sync_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - crm_debug
    - g_hash_table_foreach
    - CRM_LOG_ASSERT
    - pcmk__plural_s
    - crmd_join_phase_count
    - register_fsa_error_adv
    - do_crm_log
    - record_failed_sync_node
    - fsa_state2string
    - check_join_state
    - pcmk_strerror
    - controld_set_fsa_input_flags
    linkageType: ''
    returnType: void
    signature: 'void finalize_sync_callback(xmlNode * msg, int call_id, int rc, xmlNode
      * output, void *user_data) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 2
    argCount: 1
    argNames:
    - phase
    argTypes:
    - enum controld_join_phase
    constantsTouched: []
    func_position:
      end: 77
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 77
    functionName: join_phase_text
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *join_phase_text(enum controld_join_phase phase) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:256,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:259,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:261,1
    - Dst: pcmk__cluster_is_node_active
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:257,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:258,1
    - Dst: pcmk__update_peer_expected
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:271,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:277,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:284,1
    - Dst: controld_get_join_phase
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:289,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:292,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:306,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:307,1
    - Dst: crm_update_peer_join
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:310,1
    - Dst: join_phase_text
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:293,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:304,1
    - Dst: crm_update_peer_join
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:298,1
    - Dst: create_dc_message
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:301,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:308,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 311
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 311
    functionName: join_make_offer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - join_phase_text
    - pcmk__s
    - controld_get_join_phase
    - crm_xml_add
    - pcmk__str_eq
    - pcmk__cluster_send_message
    - crm_update_peer_join
    - pcmk__xml_free
    - pcmk__cluster_is_node_active
    - pcmk__assert
    - pcmk__update_peer_expected
    - crm_info
    - create_dc_message
    linkageType: ''
    returnType: void
    signature: 'static void join_make_offer(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:355,1
    - Dst: fsa_typed_data
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:362,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:368,1
    - Dst: check_join_state
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:358,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:357,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:370,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:373,1
    - Dst: crm_update_peer_join
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:380,1
    - Dst: join_make_offer
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:381,1
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:386,1
    - Dst: controld_get_local_node_status
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:387,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:394,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:397,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:398,1
    - Dst: join_make_offer
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:388,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:399,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 402
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 402
    functionName: do_dc_join_offer_one
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    - pcmk__get_node
    - fsa_typed_data
    - pcmk__plural_s
    - controld_is_local_node
    - crmd_join_phase_count
    - crm_update_peer_join
    - check_join_state
    - join_make_offer
    - controld_get_local_node_status
    - crm_element_value
    - crm_info
    - crm_err
    - abort_transition
    linkageType: ''
    returnType: void
    signature: 'void do_dc_join_offer_one(long long action, enum crmd_fsa_cause cause,
      enum crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t
      * msg_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:407,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:408,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:415,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:417,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:421,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:423,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 3
    argNames:
    - left
    - right
    - field
    argTypes:
    - xmlNode*
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 435
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 435
    functionName: compare_int_fields
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - crm_warn
    - pcmk__scan_ll
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'static int compare_int_fields(xmlNode * left, xmlNode * right, const
      char *field) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1090,1
    - Dst: join_phase_text
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1093,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1091,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1092,1
    - Dst: controld_get_join_phase
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1093,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1095
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1095
    functionName: crmd_join_phase_log
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - controld_get_join_phase
    - do_crm_log
    - join_phase_text
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void crmd_join_phase_log(int level) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strikey_table
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:117,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:123,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:123,1
    - Dst: g_strdup
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:123,1
    - Dst: GINT_TO_POINTER
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - node_name
    - join_id
    argTypes:
    - char*
    - gint
    constantsTouched: []
    func_position:
      end: 125
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 125
    functionName: record_failed_sync_node
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - CRM_LOG_ASSERT
    - pcmk__strikey_table
    - GINT_TO_POINTER
    - g_strdup
    - g_hash_table_insert
    linkageType: ''
    returnType: void
    signature: 'static void record_failed_sync_node(const char *node_name, gint join_id) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:627,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:629,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:635,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:658,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:663,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:661,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:649,1
    - Dst: crmd_fsa_stall
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:652,1
    - Dst: fsa_register_cib_callback
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:677,1
    - Dst: crmd_join_phase_log
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:630,1
    - Dst: crmd_join_phase_log
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:637,1
    - Dst: controld_clear_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:642,1
    - Dst: crmd_join_phase_log
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:651,1
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:644,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:656,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:671,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:645,1
    - Dst: crmd_join_phase_log
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:673,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:619,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:620,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:621,1
    - Dst: check_join_state
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:638,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:666,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:667,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:668,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:669,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:670,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 678
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 678
    functionName: do_dc_join_finalize
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crmd_join_phase_log
    - controld_clear_fsa_input_flags
    - crmd_fsa_stall
    - pcmk__plural_s
    - crmd_join_phase_count
    - controld_is_local_node
    - fsa_register_cib_callback
    - check_join_state
    - pcmk_is_set
    - pcmk__str_copy
    - crm_notice
    - crm_element_value
    - crm_warn
    - controld_set_fsa_input_flags
    linkageType: ''
    returnType: void
    signature: 'void do_dc_join_finalize(long long action, enum crmd_fsa_cause cause,
      enum crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t
      * msg_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:144,1
    - Dst: GPOINTER_TO_INT
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - node_name
    - join_id
    argTypes:
    - char*
    - gint*
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: lookup_failed_sync_node
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - GPOINTER_TO_INT
    - g_hash_table_lookup
    linkageType: ''
    returnType: int
    signature: 'static int lookup_failed_sync_node(const char *node_name, gint *join_id) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - node_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: controld_remove_failed_sync_node
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - g_hash_table_remove
    linkageType: ''
    returnType: void
    signature: 'void controld_remove_failed_sync_node(const char *node_name) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fsa_typed_data
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:451,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:463,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:466,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:516,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:554,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:555,1
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:559,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:564,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:573,1
    - Dst: pcmk__update_peer_expected
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:591,1
    - Dst: crm_update_peer_join
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:590,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:604,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:598,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:454,1
    - Dst: check_join_state
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:470,1
    - Dst: compare_int_fields
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:489,1
    - Dst: match_down_event
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:509,1
    - Dst: lookup_failed_sync_node
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:502,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:488,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:532,1
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:542,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:569,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:577,1
    - Dst: pcmk__update_peer_expected
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:595,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:606,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:581,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:494,1
    - Dst: feature_set_compatible
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:531,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:543,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:580,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:547,1
    - Dst: crm_update_peer_join
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:594,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:599,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:600,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:560,1
    - Dst: check_join_state
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:602,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:579,1
    - Dst: pcmk__get_schema
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:563,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:460,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:453,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:455,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:468,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:487,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:503,1
    - Dst: pcmk__cluster_is_node_active
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:508,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:519,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:525,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:539,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:551,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:605,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:576,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:585,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 118
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 608
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 608
    functionName: do_dc_join_filter_offer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - pcmk__get_node
    - crm_element_value_int
    - crmd_join_phase_count
    - feature_set_compatible
    - match_down_event
    - pcmk__xe_is
    - pcmk__cluster_is_node_active
    - pcmk__s
    - compare_int_fields
    - PCMK__NELEM
    - check_join_state
    - crm_element_value
    - crm_err
    - pcmk__xml_copy
    - lookup_failed_sync_node
    - pcmk__get_schema
    - crm_debug
    - crm_log_xml_debug
    - fsa_typed_data
    - CRM_LOG_ASSERT
    - pcmk__plural_s
    - controld_is_local_node
    - crm_update_peer_join
    - pcmk__xml_free
    - pcmk__update_peer_expected
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'void do_dc_join_filter_offer(long long action, enum crmd_fsa_cause
      cause, enum crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t
      * msg_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1066,1
    - Dst: crm_update_quorum
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1067,1
    - Dst: pcmk__cluster_has_quorum
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 1068
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1068
    functionName: do_dc_join_final
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_update_quorum
    - pcmk__cluster_has_quorum
    linkageType: ''
    returnType: void
    signature: 'void do_dc_join_final(long long action, enum crmd_fsa_cause cause,
      enum crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t
      * msg_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: controld_get_join_phase
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:158,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:160,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:163,1
    - Dst: join_phase_text
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:170,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:168,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:180,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:185,1
    - Dst: join_phase_text
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:187,1
    - Dst: join_phase_text
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:188,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:193,1
    - Dst: join_phase_text
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:196,1
    - Dst: join_phase_text
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:195,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - source
    - node
    - phase
    argTypes:
    - char*
    - pcmk__node_status_t*
    - enum controld_join_phase
    constantsTouched: []
    func_position:
      end: 197
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 197
    functionName: crm_update_peer_join
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - controld_get_join_phase
    - pcmk__assert_alloc
    - pcmk_is_set
    - crm_warn
    - join_phase_text
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void crm_update_peer_join(const char *source, pcmk__node_status_t
      *node, enum controld_join_phase phase) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1076,1
    - Dst: controld_get_join_phase
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1078,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1077,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - phase
    argTypes:
    - enum controld_join_phase
    constantsTouched: []
    func_position:
      end: 1083
      start: 1070
    functionDepth: 0
    functionLinenumber: 1070
    functionLinenumberEnd: 1083
    functionName: crmd_join_phase_count
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - g_hash_table_iter_init
    - controld_get_join_phase
    - g_hash_table_iter_next
    linkageType: ''
    returnType: int
    signature: 'int crmd_join_phase_count(enum controld_join_phase phase) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__new_request
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:232,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:241,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:242,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:236,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - join_op
    - host_to
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 245
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 245
    functionName: create_dc_message
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - pcmk__new_request
    - pcmk__xe_set_bool_attr
    - pcmk_is_set
    - crm_xml_add_int
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *create_dc_message(const char *join_op, const char
      *host_to) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:791,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:797,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:806,1
    - Dst: join_phase_text
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:809,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:792,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:798,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:834,1
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:846,1
    - Dst: controld_query_executor_state
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:849,1
    - Dst: fsa_register_cib_callback
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:877,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:889,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:891,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:783,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:768,1
    - Dst: crm_update_peer_join
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:817,1
    - Dst: join_phase_text
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:808,1
    - Dst: controld_node_state_deletion_strings
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:837,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:858,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:892,1
    - Dst: fsa_typed_data
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:766,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:769,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:787,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:803,1
    - Dst: controld_get_join_phase
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:804,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:814,1
    - Dst: crm_update_peer_join
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:821,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:852,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:864,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:870,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:888,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:887,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 77
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 893
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 893
    functionName: do_dc_join_ack
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - pcmk__get_node
    - fsa_register_cib_callback
    - controld_query_executor_state
    - register_fsa_error
    - free
    - join_phase_text
    - pcmk_is_set
    - crm_element_value
    - crm_err
    - crm_crit
    - controld_node_state_deletion_strings
    - strcmp
    - crm_warn
    - crm_info
    - pcmk_strerror
    - crm_debug
    - controld_get_join_phase
    - fsa_typed_data
    - controld_is_local_node
    - crm_update_peer_join
    - pcmk__xml_free
    - crm_element_value_copy
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'void do_dc_join_ack(long long action, enum crmd_fsa_cause cause, enum
      crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: join_phase_text
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:914,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:924,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:928,1
    - Dst: pcmk__cluster_is_node_active
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:930,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:962,1
    - Dst: pcmk__xe_set_props
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:973,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:981,1
    - Dst: controld_get_join_phase
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:902,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:921,1
    - Dst: create_dc_message
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:947,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:945,1
    - Dst: pcmk__cluster_num_remote_nodes
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:959,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:922,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:923,1
    - Dst: pcmk__cluster_get_xml_id
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:923,1
    - Dst: pcmk__update_peer_expected
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:953,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:948,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:964,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:965,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:982,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:912,1
    - Dst: fsa_cib_anon_update
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:925,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:926,1
    - Dst: pcmk__update_peer_expected
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:940,1
    - Dst: crm_update_peer_join
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:952,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:972,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 984
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 984
    functionName: finalize_join_for
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - pcmk__get_node
    - pcmk__cluster_is_node_active
    - join_phase_text
    - pcmk__xe_create
    - pcmk__cluster_send_message
    - pcmk__xe_set_bool_attr
    - fsa_cib_anon_update
    - g_hash_table_iter_next
    - pcmk__cluster_get_xml_id
    - pcmk__cluster_num_remote_nodes
    - create_dc_message
    - crm_trace
    - crm_debug
    - controld_get_join_phase
    - crm_xml_add
    - pcmk__xe_set_props
    - crm_update_peer_join
    - pcmk__xml_free
    - pcmk__update_peer_expected
    - g_hash_table_iter_init
    linkageType: ''
    returnType: void
    signature: 'void finalize_join_for(gpointer key, gpointer value, gpointer user_data) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:996,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1004,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1009,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1022,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1027,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1031,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1037,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1046,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1005,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1007,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1016,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1023,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1025,1
    - Dst: crmd_join_phase_log
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1038,1
    - Dst: crmd_join_phase_log
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1047,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1050,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1051,1
    - Dst: register_fsa_input_later
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1052,1
    - Dst: register_fsa_input_before
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1000,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1010,1
    - Dst: register_fsa_input_before
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1011,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1017,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1028,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1036,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1045,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:992,1
    - Dst: crmd_join_phase_log
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1029,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1019,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1032,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1034,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1040,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1041,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:1043,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 2
    argNames:
    - cur_state
    - source
    argTypes:
    - enum crmd_fsa_state
    - char*
    constantsTouched: []
    func_position:
      end: 1058
      start: 986
    functionDepth: 0
    functionLinenumber: 986
    functionLinenumberEnd: 1058
    functionName: check_join_state
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - crm_debug
    - register_fsa_input_before
    - crmd_join_phase_log
    - pcmk__plural_s
    - crmd_join_phase_count
    - fsa_state2string
    - pcmk_is_set
    - register_fsa_input_later
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean check_join_state(enum crmd_fsa_state cur_state, const char
      *source) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:205,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:212,1
    - Dst: crm_update_peer_join
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:209,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:207,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:208,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:216,1
    - Dst: controld_clear_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:219,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 220
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 220
    functionName: start_join_round
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - crm_debug
    - controld_clear_fsa_input_flags
    - crm_update_peer_join
    - free
    - pcmk__xml_free
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void start_join_round(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:745,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:748,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:747,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:752,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:749,1
    - Dst: check_join_state
      Src: /src/pacemaker/daemons/controld/controld_join_dc.c:755,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 756
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 756
    functionName: join_node_state_commit_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_dc.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_log_xml_debug
    - register_fsa_error
    - check_join_state
    - pcmk_strerror
    - crm_crit
    linkageType: ''
    returnType: void
    signature: 'static void join_node_state_commit_callback(xmlNode *msg, int call_id,
      int rc, xmlNode *output, void *user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk__node_status_t*
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: controld_get_join_phase
    functionSourceFile: /src/pacemaker/daemons/controld/controld_membership.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: enum controld_join_phase
    signature: 'static inline enum controld_join_phase controld_get_join_phase(const
      pcmk__node_status_t *node) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_utils.c:217,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 21
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum crmd_fsa_state
    constantsTouched: []
    func_position:
      end: 222
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 222
    functionName: fsa_state2string
    functionSourceFile: /src/pacemaker/daemons/controld/controld_utils.c
    functionUses: []
    functionsReached:
    - crm_err
    linkageType: ''
    returnType: char*
    signature: 'const char *fsa_state2string(enum crmd_fsa_state state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_utils.c:45,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_utils.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: controld_get_local_node_status
    functionSourceFile: /src/pacemaker/daemons/controld/controld_utils.c
    functionUses: []
    functionsReached:
    - pcmk__get_node
    - CRM_CHECK
    linkageType: ''
    returnType: pcmk__node_status_t*
    signature: 'pcmk__node_status_t *controld_get_local_node_status(void) '
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_utils.c:461,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 68
    argCount: 1
    argNames:
    - action
    argTypes:
    - long long
    constantsTouched: []
    func_position:
      end: 466
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 466
    functionName: fsa_action2string
    functionSourceFile: /src/pacemaker/daemons/controld/controld_utils.c
    functionUses: []
    functionsReached:
    - crm_err
    linkageType: ''
    returnType: char*
    signature: 'const char *fsa_action2string(long long action) '
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:559,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:564,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:570,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:625,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:630,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:685,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:691,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:696,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:556,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:561,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:616,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:622,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:627,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:682,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:687,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:693,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:636,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:565,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:571,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:576,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:631,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:642,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:697,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:562,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:567,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:568,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:573,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:628,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:633,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:688,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:694,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:699,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:607,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:612,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:618,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:673,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:678,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:553,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:604,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:609,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:664,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:670,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:675,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:619,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:624,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:558,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:613,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:679,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:684,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:690,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:615,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:621,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:555,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:610,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:676,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:681,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:589,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:595,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:600,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:666,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:655,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:660,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:586,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:591,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:597,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:652,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:657,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:661,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:601,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:606,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:667,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:672,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:603,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:663,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:552,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:592,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:598,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:658,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:669,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:577,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:582,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:643,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:637,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:648,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:574,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:579,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:634,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:645,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:639,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:700,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:649,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:654,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:583,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:588,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:594,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:651,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:640,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:580,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:585,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:646,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 151
    argCount: 2
    argNames:
    - action
    - text
    argTypes:
    - uint64_t
    - char*
    constantsTouched: []
    func_position:
      end: 702
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 702
    functionName: fsa_dump_actions
    functionSourceFile: /src/pacemaker/daemons/controld/controld_utils.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void fsa_dump_actions(uint64_t action, const char *text) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__update_peer_state
      Src: /src/pacemaker/daemons/controld/controld_utils.c:772,1
    - Dst: crm_update_peer_join
      Src: /src/pacemaker/daemons/controld/controld_utils.c:775,1
    - Dst: crm_update_peer_proc
      Src: /src/pacemaker/daemons/controld/controld_utils.c:773,1
    - Dst: pcmk__update_peer_expected
      Src: /src/pacemaker/daemons/controld/controld_utils.c:776,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - peer
    - full
    argTypes:
    - pcmk__node_status_t*
    - bool
    constantsTouched: []
    func_position:
      end: 777
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 777
    functionName: crmd_peer_down
    functionSourceFile: /src/pacemaker/daemons/controld/controld_utils.c
    functionUses: []
    functionsReached:
    - pcmk__update_peer_expected
    - crm_update_peer_proc
    - pcmk__update_peer_state
    - crm_update_peer_join
    linkageType: ''
    returnType: void
    signature: 'void crmd_peer_down(pcmk__node_status_t *peer, bool full) '
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_utils.c:156,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 38
    argCount: 1
    argNames:
    - input
    argTypes:
    - enum crmd_fsa_input
    constantsTouched: []
    func_position:
      end: 161
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 161
    functionName: fsa_input2string
    functionSourceFile: /src/pacemaker/daemons/controld/controld_utils.c
    functionUses: []
    functionsReached:
    - crm_err
    linkageType: ''
    returnType: char*
    signature: 'const char *fsa_input2string(enum crmd_fsa_input input) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_utils.c:260,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 15
    argCount: 1
    argNames:
    - cause
    argTypes:
    - enum crmd_fsa_cause
    constantsTouched: []
    func_position:
      end: 265
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 265
    functionName: fsa_cause2string
    functionSourceFile: /src/pacemaker/daemons/controld/controld_utils.c
    functionUses: []
    functionsReached:
    - crm_err
    linkageType: ''
    returnType: char*
    signature: 'const char *fsa_cause2string(enum crmd_fsa_cause cause) '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:479,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:484,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:491,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:497,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:502,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:509,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:514,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:520,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:527,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:532,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:538,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:542,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:544,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:481,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:488,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:494,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:499,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:506,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:511,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:524,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:529,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:536,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:539,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:541,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:545,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:478,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:485,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:490,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:503,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:496,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:508,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:515,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:521,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:526,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:533,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:482,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:487,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:500,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:493,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:505,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:512,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:517,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:518,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:523,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_utils.c:530,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_utils.c:535,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 75
    argCount: 3
    argNames:
    - log_level
    - text
    - input_register
    argTypes:
    - int
    - char*
    - long long
    constantsTouched: []
    func_position:
      end: 547
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 547
    functionName: fsa_dump_inputs
    functionSourceFile: /src/pacemaker/daemons/controld/controld_utils.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void fsa_dump_inputs(int log_level, const char *text, long long input_register) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_utils.c:717,1
    - Dst: controld_set_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_utils.c:738,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_utils.c:748,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_utils.c:758,1
    - Dst: pcmk__update_peer_expected
      Src: /src/pacemaker/daemons/controld/controld_utils.c:759,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_utils.c:756,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_utils.c:765,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_utils.c:714,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_utils.c:739,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_utils.c:718,1
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_utils.c:720,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_utils.c:724,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_utils.c:731,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_utils.c:734,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_utils.c:762,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/controld/controld_utils.c:745,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/controld/controld_utils.c:746,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_utils.c:715,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_utils.c:753,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 1
    argNames:
    - msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 767
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 767
    functionName: update_dc
    functionSourceFile: /src/pacemaker/daemons/controld/controld_utils.c
    functionUses: []
    functionsReached:
    - pcmk__update_peer_expected
    - CRM_CHECK
    - pcmk__get_node
    - pcmk__s
    - controld_is_local_node
    - controld_set_fsa_action_flags
    - pcmk__str_eq
    - free
    - crm_element_value
    - controld_trigger_fsa
    - crm_warn
    - crm_info
    - crm_err
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean update_dc(xmlNode * msg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/daemons/controld/controld_utils.c:848,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_utils.c:853,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_utils.c:852,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - lrm_rsc_op
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 854
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 854
    functionName: get_node_id
    functionSourceFile: /src/pacemaker/daemons/controld/controld_utils.c
    functionUses: []
    functionsReached:
    - pcmk__xe_is
    - CRM_CHECK
    - pcmk__xe_id
    linkageType: ''
    returnType: char*
    signature: 'const char *get_node_id(xmlNode *lrm_rsc_op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_utils.c:31,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_utils.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: controld_is_local_node
    functionSourceFile: /src/pacemaker/daemons/controld/controld_utils.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__str_eq
    linkageType: ''
    returnType: bool
    signature: 'bool controld_is_local_node(const char *name) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/pacemaker/daemons/controld/controld_utils.c:802,1
    - Dst: strtol
      Src: /src/pacemaker/daemons/controld/controld_utils.c:824,1
    - Dst: strtol
      Src: /src/pacemaker/daemons/controld/controld_utils.c:834,1
    - Dst: strtol
      Src: /src/pacemaker/daemons/controld/controld_utils.c:809,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 2
    argNames:
    - dc_version
    - join_version
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 841
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 841
    functionName: feature_set_compatible
    functionSourceFile: /src/pacemaker/daemons/controld/controld_utils.c
    functionUses: []
    functionsReached:
    - strtol
    linkageType: ''
    returnType: bool
    signature: 'bool feature_set_compatible(const char *dc_version, const char *join_version) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:33,1
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:38,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:35,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:40,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:36,1
    - Dst: register_fsa_error_adv
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:48,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:52,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:58,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:60,1
    - Dst: route_message
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:66,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:69,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 1
    argNames:
    - msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 70
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 70
    functionName: crmd_ha_msg_filter
    functionSourceFile: /src/pacemaker/daemons/controld/controld_callbacks.c
    functionUses: []
    functionsReached:
    - controld_is_local_node
    - pcmk__str_eq
    - register_fsa_error_adv
    - do_crm_log
    - route_message
    - crm_element_value
    - controld_trigger_fsa
    linkageType: ''
    returnType: void
    signature: 'void crmd_ha_msg_filter(xmlNode * msg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:389,1
    - Dst: s_crmd_fsa
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:391,1
    - Dst: g_list_length
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:393,1
    - Dst: g_list_length
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:390,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 395
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 395
    functionName: crm_fsa_trigger
    functionSourceFile: /src/pacemaker/daemons/controld/controld_callbacks.c
    functionUses: []
    functionsReached:
    - s_crmd_fsa
    - g_list_length
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean crm_fsa_trigger(gpointer user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:85,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:87,1
    - Dst: crm_get_cluster_proc
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:96,1
    - Dst: pcmk__cluster_is_node_active
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:92,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:96,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk__node_status_t*
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 105
    functionName: node_alive
    functionSourceFile: /src/pacemaker/daemons/controld/controld_callbacks.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk__str_eq
    - pcmk__cluster_is_node_active
    - crm_get_cluster_proc
    linkageType: ''
    returnType: int
    signature: 'static int node_alive(const pcmk__node_status_t *node) '
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: state_text
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:167,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:228,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:242,1
    - Dst: check_join_state
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:299,1
    - Dst: pcmk__update_graph
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:307,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:338,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:283,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:162,1
    - Dst: fail_incompletable_actions
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:340,1
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:226,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:218,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:139,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:165,1
    - Dst: pcmk__cluster_is_node_active
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:233,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:250,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:153,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:162,1
    - Dst: fsa_cib_anon_update
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:378,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:321,1
    - Dst: controld_remove_voter
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:176,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:185,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:200,1
    - Dst: crmd_peer_down
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:298,1
    - Dst: create_node_state_update
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:374,1
    - Dst: node_alive
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:270,1
    - Dst: controld_remove_failed_sync_node
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:212,1
    - Dst: controld_delete_node_state
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:259,1
    - Dst: register_fsa_input_before
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:277,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:142,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:183,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:376,1
    - Dst: controld_delete_node_state
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:246,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:356,1
    - Dst: controld_node_pending_timer
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:118,1
    - Dst: te_trigger_stonith_history_sync
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:257,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:222,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:129,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:197,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:380,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:194,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:216,1
    - Dst: controld_node_pending_timer
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:370,1
    - Dst: crm_update_peer_join
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:335,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:383,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:273,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:281,1
    - Dst: remove_stonith_cleanup
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:172,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:229,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:331,1
    - Dst: match_down_event
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:271,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:125,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:135,1
    - Dst: controld_remove_failed_sync_node
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:175,1
    - Dst: crm_get_cluster_proc
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:205,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:143,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:245,1
    - Dst: check_join_state
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:336,1
    - Dst: trigger_graph
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:308,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:344,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:204,1
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:211,1
    - Dst: controld_remove_voter
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:213,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:328,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:305,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:288,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:116,1
    - Dst: crm_get_cluster_proc
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:129,1
    - Dst: state_text
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:167,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:169,1
    - Dst: crmd_alert_node_event
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:179,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:291,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:302,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:285,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:231,1
    - Dst: state_text
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:155,1
    - Dst: crm_get_cluster_proc
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:185,1
    - Dst: crm_get_cluster_proc
      Src: /src/pacemaker/daemons/controld/controld_callbacks.c:200,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 176
    argCount: 3
    argNames:
    - type
    - node
    - data
    argTypes:
    - enum pcmk__node_update
    - pcmk__node_status_t*
    - void*
    constantsTouched: []
    func_position:
      end: 384
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 384
    functionName: peer_update_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_callbacks.c
    functionUses: []
    functionsReached:
    - crm_notice
    - match_down_event
    - pcmk__cluster_is_node_active
    - controld_delete_node_state
    - trigger_graph
    - create_node_state_update
    - controld_node_pending_timer
    - pcmk__s
    - node_alive
    - pcmk__cluster_send_message
    - crmd_alert_node_event
    - check_join_state
    - pcmk_is_set
    - fsa_cib_anon_update
    - crm_element_value
    - pcmk__new_request
    - register_fsa_input
    - controld_trigger_fsa
    - abort_transition
    - crm_get_cluster_proc
    - CRM_CHECK
    - te_trigger_stonith_history_sync
    - remove_stonith_cleanup
    - fail_incompletable_actions
    - pcmk__str_eq
    - controld_remove_voter
    - state_text
    - crm_warn
    - crm_info
    - crmd_peer_down
    - crm_trace
    - pcmk__update_graph
    - crm_debug
    - register_fsa_input_before
    - controld_is_local_node
    - controld_remove_failed_sync_node
    - time
    - crm_update_peer_join
    - pcmk__xml_free
    - controld_set_fsa_input_flags
    linkageType: ''
    returnType: void
    signature: 'void peer_update_callback(enum pcmk__node_update type, pcmk__node_status_t
      *node, const void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__unpack_graph
      Src: /src/pacemaker/daemons/controld/controld_transition.c:19,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: create_blank_graph
    functionSourceFile: /src/pacemaker/daemons/controld/controld_transition.c
    functionUses: []
    functionsReached:
    - pcmk__unpack_graph
    linkageType: ''
    returnType: pcmk__graph_t*
    signature: 'static pcmk__graph_t *create_blank_graph(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_transition.c:37,1
    - Dst: controld_clear_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_transition.c:47,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_transition.c:48,1
    - Dst: pcmk__free_graph
      Src: /src/pacemaker/daemons/controld/controld_transition.c:38,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_transition.c:54,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_transition.c:56,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_transition.c:60,1
    - Dst: crm_generate_uuid
      Src: /src/pacemaker/daemons/controld/controld_transition.c:65,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_transition.c:66,1
    - Dst: pcmk__free_graph
      Src: /src/pacemaker/daemons/controld/controld_transition.c:82,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_transition.c:87,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_transition.c:85,1
    - Dst: create_blank_graph
      Src: /src/pacemaker/daemons/controld/controld_transition.c:86,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_transition.c:70,1
    - Dst: controld_register_graph_functions
      Src: /src/pacemaker/daemons/controld/controld_transition.c:81,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_transition.c:76,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 89
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 89
    functionName: do_te_control
    functionSourceFile: /src/pacemaker/daemons/controld/controld_transition.c
    functionUses: []
    functionsReached:
    - crm_debug
    - controld_clear_fsa_input_flags
    - pcmk__free_graph
    - pcmk_is_set
    - crm_generate_uuid
    - controld_set_fsa_input_flags
    - crm_info
    - create_blank_graph
    - crm_err
    - controld_register_graph_functions
    linkageType: ''
    returnType: void
    signature: 'void do_te_control(long long action, enum crmd_fsa_cause cause, enum
      crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fsa_action2string
      Src: /src/pacemaker/daemons/controld/controld_transition.c:103,1
    - Dst: crmd_fsa_stall
      Src: /src/pacemaker/daemons/controld/controld_transition.c:121,1
    - Dst: fsa_typed_data
      Src: /src/pacemaker/daemons/controld/controld_transition.c:125,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_transition.c:128,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_transition.c:139,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_transition.c:138,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_transition.c:155,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_transition.c:159,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_transition.c:167,1
    - Dst: create_blank_graph
      Src: /src/pacemaker/daemons/controld/controld_transition.c:168,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_transition.c:133,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_transition.c:145,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/daemons/controld/controld_transition.c:132,1
    - Dst: controld_is_started_transition_timer
      Src: /src/pacemaker/daemons/controld/controld_transition.c:154,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_transition.c:160,1
    - Dst: pcmk__unpack_graph
      Src: /src/pacemaker/daemons/controld/controld_transition.c:165,1
    - Dst: te_reset_job_counts
      Src: /src/pacemaker/daemons/controld/controld_transition.c:173,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_transition.c:179,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_transition.c:101,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_transition.c:104,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_transition.c:102,1
    - Dst: crmd_fsa_stall
      Src: /src/pacemaker/daemons/controld/controld_transition.c:114,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_transition.c:118,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_transition.c:127,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_transition.c:170,1
    - Dst: trigger_graph
      Src: /src/pacemaker/daemons/controld/controld_transition.c:175,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_transition.c:109,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_transition.c:111,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_transition.c:147,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_transition.c:148,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_transition.c:149,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_transition.c:150,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/daemons/controld/controld_transition.c:161,1
    - Dst: pcmk__free_graph
      Src: /src/pacemaker/daemons/controld/controld_transition.c:164,1
    - Dst: pcmk__log_graph
      Src: /src/pacemaker/daemons/controld/controld_transition.c:176,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 182
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 182
    functionName: do_te_invoke
    functionSourceFile: /src/pacemaker/daemons/controld/controld_transition.c
    functionUses: []
    functionsReached:
    - register_fsa_error
    - crm_notice
    - trigger_graph
    - pcmk__s
    - fsa_state2string
    - pcmk__unpack_graph
    - pcmk_is_set
    - crm_element_value
    - pcmk__log_graph
    - create_blank_graph
    - crm_err
    - controld_is_started_transition_timer
    - abort_transition
    - CRM_CHECK
    - pcmk__str_eq
    - pcmk__free_graph
    - crm_info
    - crm_log_xml_err
    - crm_debug
    - fsa_typed_data
    - crmd_fsa_stall
    - pcmk__xml_free
    - te_reset_job_counts
    - fsa_action2string
    linkageType: ''
    returnType: void
    signature: 'void do_te_invoke(long long action, enum crmd_fsa_cause cause, enum
      crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 1
    argNames:
    - timer
    argTypes:
    - fsa_timer_t*
    constantsTouched: []
    func_position:
      end: 79
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 79
    functionName: get_timer_desc
    functionSourceFile: /src/pacemaker/daemons/controld/controld_timers.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *get_timer_desc(fsa_timer_t * timer) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_timers.c:178,1
    - Dst: get_timer_desc
      Src: /src/pacemaker/daemons/controld/controld_timers.c:177,1
    - Dst: get_timer_desc
      Src: /src/pacemaker/daemons/controld/controld_timers.c:182,1
    - Dst: crm_write_blackbox
      Src: /src/pacemaker/daemons/controld/controld_timers.c:189,1
    - Dst: controld_stop_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:193,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_timers.c:199,1
    - Dst: fsa_input2string
      Src: /src/pacemaker/daemons/controld/controld_timers.c:211,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_timers.c:212,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_timers.c:210,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_timers.c:216,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_timers.c:224,1
    - Dst: fsa_input2string
      Src: /src/pacemaker/daemons/controld/controld_timers.c:217,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_timers.c:176,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_timers.c:181,1
    - Dst: fsa_input2string
      Src: /src/pacemaker/daemons/controld/controld_timers.c:179,1
    - Dst: fsa_input2string
      Src: /src/pacemaker/daemons/controld/controld_timers.c:182,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_timers.c:188,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_timers.c:196,1
    - Dst: register_fsa_input_before
      Src: /src/pacemaker/daemons/controld/controld_timers.c:205,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_timers.c:198,1
    - Dst: register_fsa_error_adv
      Src: /src/pacemaker/daemons/controld/controld_timers.c:201,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_timers.c:218,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_timers.c:221,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_timers.c:197,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 227
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 227
    functionName: crm_timer_popped
    functionSourceFile: /src/pacemaker/daemons/controld/controld_timers.c
    functionUses: []
    functionsReached:
    - crm_debug
    - register_fsa_input_before
    - crmd_join_phase_count
    - controld_stop_timer
    - register_fsa_error_adv
    - fsa_state2string
    - crm_notice
    - crm_write_blackbox
    - fsa_input2string
    - controld_trigger_fsa
    - register_fsa_input
    - crm_info
    - crm_err
    - get_timer_desc
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean crm_timer_popped(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:120,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_timers.c:122,1
    - Dst: fsa_input2string
      Src: /src/pacemaker/daemons/controld/controld_timers.c:123,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_timers.c:121,1
    - Dst: get_timer_desc
      Src: /src/pacemaker/daemons/controld/controld_timers.c:123,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_timers.c:126,1
    - Dst: get_timer_desc
      Src: /src/pacemaker/daemons/controld/controld_timers.c:127,1
    - Dst: fsa_input2string
      Src: /src/pacemaker/daemons/controld/controld_timers.c:127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - timer
    argTypes:
    - fsa_timer_t*
    constantsTouched: []
    func_position:
      end: 130
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 130
    functionName: controld_start_timer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_timers.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__create_timer
    - fsa_input2string
    - pcmk__assert
    - get_timer_desc
    linkageType: ''
    returnType: void
    signature: 'static void controld_start_timer(fsa_timer_t *timer) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_timers.c:308,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/daemons/controld/controld_timers.c:309,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_timers.c:312,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/daemons/controld/controld_timers.c:313,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_timers.c:316,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/daemons/controld/controld_timers.c:317,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_timers.c:320,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/daemons/controld/controld_timers.c:321,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_timers.c:322,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_timers.c:326,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/daemons/controld/controld_timers.c:327,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/daemons/controld/controld_timers.c:331,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_timers.c:330,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_timers.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - options
    argTypes:
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 333
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 333
    functionName: controld_configure_fsa_timers
    functionSourceFile: /src/pacemaker/daemons/controld/controld_timers.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_parse_interval_spec
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: 'void controld_configure_fsa_timers(GHashTable *options) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_timers.c:380,1
    - Dst: QB_MIN
      Src: /src/pacemaker/daemons/controld/controld_timers.c:386,1
    - Dst: controld_start_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:397,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 399
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 399
    functionName: controld_start_recheck_timer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_timers.c
    functionUses: []
    functionsReached:
    - QB_MIN
    - controld_start_timer
    - time
    linkageType: ''
    returnType: void
    signature: 'void controld_start_recheck_timer(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: controld_start_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: controld_start_wait_timer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_timers.c
    functionUses: []
    functionsReached:
    - controld_start_timer
    linkageType: ''
    returnType: void
    signature: 'void controld_start_wait_timer(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: controld_reset_counter_election_timer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_timers.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void controld_reset_counter_election_timer(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: controld_start_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 463
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 463
    functionName: controld_start_transition_timer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_timers.c
    functionUses: []
    functionsReached:
    - controld_start_timer
    linkageType: ''
    returnType: void
    signature: 'void controld_start_transition_timer(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_timers.c:232,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_timers.c:235,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_timers.c:234,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_timers.c:236,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_timers.c:233,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_timers.c:237,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_timers.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 51
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 294
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 294
    functionName: controld_init_fsa_timers
    functionSourceFile: /src/pacemaker/daemons/controld/controld_timers.c
    functionUses: []
    functionsReached:
    - pcmk__assert_alloc
    linkageType: ''
    returnType: bool
    signature: 'bool controld_init_fsa_timers(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: controld_stop_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:338,1
    - Dst: controld_stop_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:340,1
    - Dst: controld_stop_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:339,1
    - Dst: controld_stop_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:341,1
    - Dst: controld_stop_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:342,1
    - Dst: controld_stop_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:343,1
    - Dst: controld_stop_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:344,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_timers.c:346,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_timers.c:347,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_timers.c:348,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_timers.c:350,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_timers.c:351,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_timers.c:349,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_timers.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 353
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 353
    functionName: controld_free_fsa_timers
    functionSourceFile: /src/pacemaker/daemons/controld/controld_timers.c
    functionUses: []
    functionsReached:
    - free
    - controld_stop_timer
    linkageType: ''
    returnType: void
    signature: 'void controld_free_fsa_timers(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_timers.c:479,1
    - Dst: controld_start_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - default_period_ms
    argTypes:
    - guint
    constantsTouched: []
    func_position:
      end: 482
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 482
    functionName: controld_shutdown_start_countdown
    functionSourceFile: /src/pacemaker/daemons/controld/controld_timers.c
    functionUses: []
    functionsReached:
    - crm_notice
    - controld_start_timer
    linkageType: ''
    returnType: void
    signature: 'void controld_shutdown_start_countdown(guint default_period_ms) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_timers.c:92,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_timers.c:95,1
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/controld/controld_timers.c:98,1
    - Dst: fsa_input2string
      Src: /src/pacemaker/daemons/controld/controld_timers.c:96,1
    - Dst: get_timer_desc
      Src: /src/pacemaker/daemons/controld/controld_timers.c:96,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_timers.c:102,1
    - Dst: get_timer_desc
      Src: /src/pacemaker/daemons/controld/controld_timers.c:103,1
    - Dst: fsa_input2string
      Src: /src/pacemaker/daemons/controld/controld_timers.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - timer
    argTypes:
    - fsa_timer_t*
    constantsTouched: []
    func_position:
      end: 108
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 108
    functionName: controld_stop_timer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_timers.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - fsa_input2string
    - crm_trace
    - g_source_remove
    - get_timer_desc
    linkageType: ''
    returnType: bool
    signature: 'static bool controld_stop_timer(fsa_timer_t *timer) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: controld_stop_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:145,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_timers.c:159,1
    - Dst: controld_start_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:156,1
    - Dst: controld_stop_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:151,1
    - Dst: controld_stop_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:148,1
    - Dst: controld_start_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:163,1
    - Dst: controld_start_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:166,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 168
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 168
    functionName: do_timer_control
    functionSourceFile: /src/pacemaker/daemons/controld/controld_timers.c
    functionUses: []
    functionsReached:
    - register_fsa_input
    - controld_start_timer
    - controld_stop_timer
    linkageType: ''
    returnType: void
    signature: 'void do_timer_control(long long action, enum crmd_fsa_cause cause,
      enum crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t
      * msg_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 365
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 365
    functionName: controld_is_started_transition_timer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_timers.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool controld_is_started_transition_timer(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: controld_stop_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 421
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 421
    functionName: controld_stop_recheck_timer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_timers.c
    functionUses: []
    functionsReached:
    - controld_stop_timer
    linkageType: ''
    returnType: bool
    signature: 'bool controld_stop_recheck_timer(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 431
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 431
    functionName: controld_get_period_transition_timer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_timers.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: guint
    signature: 'guint controld_get_period_transition_timer(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: controld_stop_timer
      Src: /src/pacemaker/daemons/controld/controld_timers.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 453
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 453
    functionName: controld_stop_transition_timer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_timers.c
    functionUses: []
    functionsReached:
    - controld_stop_timer
    linkageType: ''
    returnType: bool
    signature: 'bool controld_stop_transition_timer(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:27,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:29,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 1
    argNames:
    - param
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: ra_param_free
    functionSourceFile: /src/pacemaker/daemons/controld/controld_metadata.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void ra_param_free(void *param) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:63,1
    - Dst: g_hash_table_remove_all
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:65,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - mdc
    argTypes:
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: metadata_cache_reset
    functionSourceFile: /src/pacemaker/daemons/controld/controld_metadata.c
    functionUses: []
    functionsReached:
    - g_hash_table_remove_all
    - crm_trace
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'void metadata_cache_reset(GHashTable *mdc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: metadata_cache_new
    functionSourceFile: /src/pacemaker/daemons/controld/controld_metadata.c
    functionUses: []
    functionsReached:
    - pcmk__strkey_table
    linkageType: ''
    returnType: GHashTable*
    signature: 'GHashTable *metadata_cache_new(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:96,1
    - Dst: compare_version
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:104,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:100,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:97,1
    - Dst: compare_version
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:99,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:105,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - ra_key
    - ra_ocf_version
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 112
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 112
    functionName: log_ra_ocf_version
    functionSourceFile: /src/pacemaker/daemons/controld/controld_metadata.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__str_empty
    - compare_version
    - crm_warn
    - crm_info
    linkageType: ''
    returnType: void
    signature: 'static void log_ra_ocf_version(const char *ra_key, const char *ra_ocf_version) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:254,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:256,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:259,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:260,1
    - Dst: crm_generate_ra_key
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:257,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:263,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:272,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:290,1
    - Dst: lrm_state_get_metadata
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:295,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:298,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:302,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:308,1
    - Dst: controld_cache_metadata
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:306,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 3
    argNames:
    - lrm_state
    - rsc
    - source
    argTypes:
    - lrm_state_t*
    - lrmd_rsc_info_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 310
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 310
    functionName: controld_get_rsc_metadata
    functionSourceFile: /src/pacemaker/daemons/controld/controld_metadata.c
    functionUses: []
    functionsReached:
    - crm_debug
    - lrm_state_get_metadata
    - controld_cache_metadata
    - CRM_CHECK
    - g_hash_table_lookup
    - pcmk_is_set
    - free
    - crm_generate_ra_key
    - crm_warn
    - pcmk_strerror
    linkageType: ''
    returnType: struct ra_metadata_s*
    signature: 'struct ra_metadata_s *controld_get_rsc_metadata(lrm_state_t *lrm_state,
      const lrmd_rsc_info_t *rsc, uint32_t source) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:39,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:40,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 1
    argNames:
    - metadata
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: metadata_free
    functionSourceFile: /src/pacemaker/daemons/controld/controld_metadata.c
    functionUses: []
    functionsReached:
    - free
    - g_list_free_full
    linkageType: ''
    returnType: void
    signature: 'static void metadata_free(void *metadata) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:54,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:54,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - mdc
    argTypes:
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: metadata_cache_free
    functionSourceFile: /src/pacemaker/daemons/controld/controld_metadata.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - crm_trace
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'void metadata_cache_free(GHashTable *mdc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:72,1
    - Dst: controld_set_ra_param_flags
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:80,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:79,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:77,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:75,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:83,1
    - Dst: controld_set_ra_param_flags
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:84,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:87,1
    - Dst: controld_set_ra_param_flags
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:88,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 1
    argNames:
    - param_xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 91
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 91
    functionName: ra_param_from_xml
    functionSourceFile: /src/pacemaker/daemons/controld/controld_metadata.c
    functionUses: []
    functionsReached:
    - pcmk__assert_alloc
    - pcmk__str_copy
    - crm_element_value
    - pcmk__xe_attr_is_true
    - controld_set_ra_param_flags
    linkageType: ''
    returnType: struct ra_param_s*
    signature: 'static struct ra_param_s *ra_param_from_xml(xmlNode *param_xml) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: compare_version
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:153,1
    - Dst: controld_set_ra_param_flags
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:215,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:220,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:227,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:144,1
    - Dst: xmlNodeGetContent
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:149,1
    - Dst: xmlFree
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:154,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:165,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:170,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:161,1
    - Dst: controld_set_ra_flags
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:168,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:159,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:182,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:185,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:200,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:126,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:142,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:140,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:134,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:221,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:225,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:228,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:229,1
    - Dst: metadata_free
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:230,1
    - Dst: crm_generate_ra_key
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:128,1
    - Dst: log_ra_ocf_version
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:151,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:163,1
    - Dst: controld_set_ra_flags
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:176,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:174,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:160,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:181,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:183,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:188,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:197,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:213,1
    - Dst: ra_param_from_xml
      Src: /src/pacemaker/daemons/controld/controld_metadata.c:191,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 89
    argCount: 3
    argNames:
    - mdc
    - rsc
    - metadata_str
    argTypes:
    - GHashTable*
    - lrmd_rsc_info_t*
    - char*
    constantsTouched: []
    func_position:
      end: 232
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 232
    functionName: controld_cache_metadata
    functionSourceFile: /src/pacemaker/daemons/controld/controld_metadata.c
    functionUses: []
    functionsReached:
    - controld_set_ra_flags
    - pcmk__xe_first_child
    - crm_notice
    - free
    - crm_generate_ra_key
    - xmlNodeGetContent
    - g_hash_table_replace
    - log_ra_ocf_version
    - pcmk__s
    - pcmk_is_set
    - ra_param_from_xml
    - crm_element_value
    - xmlFree
    - CRM_CHECK
    - pcmk__assert_alloc
    - compare_version
    - strcmp
    - pcmk__str_eq
    - pcmk__xe_next
    - pcmk__xml_parse
    - metadata_free
    - crm_warn
    - pcmk__str_any_of
    - pcmk__xml_free
    - g_list_prepend
    - controld_set_ra_param_flags
    linkageType: ''
    returnType: struct ra_metadata_s*
    signature: 'struct ra_metadata_s *controld_cache_metadata(GHashTable *mdc, const
      lrmd_rsc_info_t *rsc, const char *metadata_str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: controld_clear_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:44,1
    - Dst: function
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:45,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 3
    argNames:
    - fsa_data
    - an_action
    - (*function)
    argTypes:
    - fsa_data_t*
    - long long
    - void
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: do_fsa_action
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fsa.c
    functionUses: []
    functionsReached:
    - controld_clear_fsa_action_flags
    - function
    linkageType: ''
    returnType: void
    signature: 'static void do_fsa_action(fsa_data_t * fsa_data, long long an_action,
      void (*function) (long long action, enum crmd_fsa_cause cause, enum crmd_fsa_state
      cur_state, enum crmd_fsa_input cur_input, fsa_data_t * msg_data)) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_destroy_trigger
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: controld_destroy_fsa_trigger
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fsa.c
    functionUses: []
    functionsReached:
    - mainloop_destroy_trigger
    linkageType: ''
    returnType: void
    signature: 'void controld_destroy_fsa_trigger(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_add_trigger
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: controld_init_fsa_trigger
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fsa.c
    functionUses: []
    functionsReached:
    - mainloop_add_trigger
    linkageType: ''
    returnType: void
    signature: 'void controld_init_fsa_trigger(void) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:141,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:143,1
    - Dst: controld_set_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:177,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:181,1
    - Dst: fsa_cause2string
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:184,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:188,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:195,1
    - Dst: controld_fsa_get_next_state
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:200,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:206,1
    - Dst: controld_clear_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:207,1
    - Dst: fsa_dump_inputs
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:241,1
    - Dst: fsa_dump_actions
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:145,1
    - Dst: g_list_append
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:157,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:160,1
    - Dst: log_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:169,1
    - Dst: fsa_input2string
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:182,1
    - Dst: get_message
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:164,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:189,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:192,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:194,1
    - Dst: do_state_transition
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:215,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:234,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:231,1
    - Dst: fsa_cause2string
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:142,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:151,1
    - Dst: g_list_length
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:162,1
    - Dst: fsa_dump_actions
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:173,1
    - Dst: fsa_dump_actions
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:178,1
    - Dst: controld_fsa_get_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:176,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:191,1
    - Dst: s_crmd_fsa_actions
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:219,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:225,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:227,1
    - Dst: delete_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:220,1
    - Dst: fsa_dump_actions
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:246,1
    - Dst: g_list_length
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:229,1
    - Dst: controld_clear_global_flags
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:147,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:161,1
    - Dst: controld_set_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:172,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:183,1
    - Dst: fsa_dump_inputs
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:243,1
    - Dst: fsa_dump_queue
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:247,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 86
    argCount: 1
    argNames:
    - cause
    argTypes:
    - enum crmd_fsa_cause
    constantsTouched: []
    func_position:
      end: 250
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 250
    functionName: s_crmd_fsa
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fsa.c
    functionUses: []
    functionsReached:
    - controld_fsa_get_next_state
    - controld_set_fsa_action_flags
    - s_crmd_fsa_actions
    - log_fsa_input
    - fsa_dump_actions
    - pcmk__flag_text
    - fsa_dump_queue
    - g_list_length
    - fsa_state2string
    - pcmk_is_set
    - fsa_input2string
    - controld_clear_global_flags
    - delete_fsa_input
    - g_list_append
    - get_message
    - pcmk__assert_alloc
    - fsa_dump_inputs
    - controld_fsa_get_action
    - crm_trace
    - crm_debug
    - do_fsa_action
    - do_state_transition
    - controld_clear_fsa_action_flags
    - fsa_cause2string
    linkageType: ''
    returnType: enum crmd_fsa_state
    signature: 'enum crmd_fsa_state s_crmd_fsa(enum crmd_fsa_cause cause) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:463,1
    - Dst: fsa_typed_data_adv
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:472,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:466,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:469,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:464,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:475,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:476,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - stored_msg
    argTypes:
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 478
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 478
    functionName: log_fsa_input
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fsa.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - crm_log_xml_trace
    - fsa_typed_data_adv
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void log_fsa_input(fsa_data_t * stored_msg) '
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:273,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:276,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:312,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:320,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:361,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:407,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:418,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:447,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:347,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:386,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:300,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:336,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:397,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:429,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:434,1
    - Dst: fsa_action2string
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:452,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:372,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:284,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:319,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:326,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:417,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:422,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:268,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:304,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:307,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:344,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:351,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:394,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:433,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:440,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:282,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:292,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:371,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:325,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:376,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:421,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:428,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:261,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:272,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:311,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:360,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:350,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:405,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:439,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:446,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:290,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:299,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:334,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:375,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:384,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:335,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:427,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:451,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:359,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:317,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:271,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:310,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:403,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:416,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:443,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:298,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:303,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:392,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:342,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:382,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:432,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:280,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:316,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:323,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:370,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:364,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:415,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:420,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:339,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:349,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:302,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:390,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:431,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:438,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:374,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:322,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:333,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:259,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:277,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:288,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:419,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:426,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:270,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:309,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:358,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:348,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:399,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:401,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:436,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:442,1
    - Dst: register_fsa_error_adv
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:454,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:297,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:286,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:328,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:373,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:380,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:423,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:353,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:362,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:269,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:308,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:315,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:414,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:441,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:378,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:388,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:337,1
    - Dst: do_fsa_action
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:294,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:301,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:430,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 177
    argCount: 1
    argNames:
    - fsa_data
    argTypes:
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 458
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 458
    functionName: s_crmd_fsa_actions
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fsa.c
    functionUses: []
    functionsReached:
    - fsa_action2string
    - CRM_CHECK
    - do_fsa_action
    - register_fsa_error_adv
    - pcmk_is_set
    - pcmk_all_flags_set
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void s_crmd_fsa_actions(fsa_data_t * fsa_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:486,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:489,1
    - Dst: pcmk__cluster_num_active_nodes
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:494,1
    - Dst: crmd_join_phase_log
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:490,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:488,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:495,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:498,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:500,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:504,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:506,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:516,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:514,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:509,1
    - Dst: register_fsa_input_before
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:511,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - msg_data
    argTypes:
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 518
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 518
    functionName: check_join_counts
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fsa.c
    functionUses: []
    functionsReached:
    - crm_debug
    - register_fsa_input_before
    - crmd_join_phase_log
    - pcmk__plural_s
    - crmd_join_phase_count
    - pcmk__cluster_num_active_nodes
    - register_fsa_input
    - crm_warn
    - crm_info
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void check_join_counts(fsa_data_t *msg_data) '
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:534,1
    - Dst: controld_reset_counter_election_timer
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:598,1
    - Dst: controld_set_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:603,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:623,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:624,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:628,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:637,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:638,1
    - Dst: fsa_cause2string
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:638,1
    - Dst: check_join_counts
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:640,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:538,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:535,1
    - Dst: controld_stop_current_election_timeout
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:558,1
    - Dst: controld_stop_recheck_timer
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:576,1
    - Dst: update_dc
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:590,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:602,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:616,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:618,1
    - Dst: fsa_cause2string
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:619,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:635,1
    - Dst: controld_start_recheck_timer
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:655,1
    - Dst: fsa_input2string
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:536,1
    - Dst: controld_set_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:561,1
    - Dst: controld_set_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:567,1
    - Dst: update_dc
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:594,1
    - Dst: controld_set_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:573,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:601,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:607,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:619,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:629,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:651,1
    - Dst: controld_set_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:665,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:646,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:552,1
    - Dst: fsa_cause2string
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:554,1
    - Dst: controld_set_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:563,1
    - Dst: populate_cib_nodes
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:580,1
    - Dst: purge_stonith_cleanup
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:599,1
    - Dst: controld_set_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:569,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:605,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:621,1
    - Dst: crmd_join_phase_log
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:625,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:652,1
    - Dst: controld_clear_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:663,1
    - Dst: fsa_dump_actions
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:670,1
    - Dst: controld_reset_counter_election_timer
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:634,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:650,1
    - Dst: controld_set_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:653,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 113
    argCount: 3
    argNames:
    - cur_state
    - next_state
    - msg_data
    argTypes:
    - enum crmd_fsa_state
    - enum crmd_fsa_state
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 674
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 674
    functionName: do_state_transition
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fsa.c
    functionUses: []
    functionsReached:
    - crmd_join_phase_count
    - controld_set_fsa_action_flags
    - do_crm_log
    - fsa_dump_actions
    - update_dc
    - controld_stop_recheck_timer
    - fsa_state2string
    - populate_cib_nodes
    - pcmk_is_set
    - fsa_input2string
    - crm_err
    - controld_stop_current_election_timeout
    - controld_reset_counter_election_timer
    - crm_warn
    - crm_info
    - check_join_counts
    - crm_debug
    - purge_stonith_cleanup
    - crmd_join_phase_log
    - CRM_LOG_ASSERT
    - pcmk__plural_s
    - controld_clear_fsa_action_flags
    - controld_start_recheck_timer
    - controld_set_fsa_input_flags
    - fsa_cause2string
    linkageType: ''
    returnType: void
    signature: 'static void do_state_transition(enum crmd_fsa_state cur_state, enum
      crmd_fsa_state next_state, fsa_data_t *msg_data) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:69,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:71,1
    - Dst: fsa_input2string
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:70,1
    - Dst: fsa_typed_data
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:74,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:76,1
    - Dst: fsa_typed_data
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:79,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:81,1
    - Dst: fsa_typed_data
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:84,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:86,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 92
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 92
    functionName: do_log
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fsa.c
    functionUses: []
    functionsReached:
    - crm_log_xml_debug
    - fsa_typed_data
    - do_crm_log
    - fsa_state2string
    - fsa_input2string
    linkageType: ''
    returnType: void
    signature: 'void do_log(long long action, enum crmd_fsa_cause cause, enum crmd_fsa_state
      cur_state, enum crmd_fsa_input current_input, fsa_data_t *msg_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:127,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/controld/controld_fsa.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - fn
    - line
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: controld_trigger_fsa_as
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fsa.c
    functionUses: []
    functionsReached:
    - crm_trace
    - mainloop_set_trigger
    linkageType: ''
    returnType: void
    signature: 'void controld_trigger_fsa_as(const char *fn, int line) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cluster_num_active_nodes
      Src: /src/pacemaker/daemons/controld/controld_cib.c:215,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/daemons/controld/controld_cib.c:221,1
    - Dst: pcmk__cluster_num_remote_nodes
      Src: /src/pacemaker/daemons/controld/controld_cib.c:216,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_cib.c:220,1
    - Dst: QB_MAX
      Src: /src/pacemaker/daemons/controld/controld_cib.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 227
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 227
    functionName: cib_op_timeout
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - pcmk__cluster_num_remote_nodes
    - pcmk__cluster_num_active_nodes
    - QB_MAX
    - pcmk__readable_interval
    - crm_trace
    linkageType: ''
    returnType: unsigned int
    signature: 'unsigned int cib_op_timeout(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_cib.c:54,1
    - Dst: pcmk__cib_element_in_patchset
      Src: /src/pacemaker/daemons/controld/controld_cib.c:61,1
    - Dst: cib__get_notify_patchset
      Src: /src/pacemaker/daemons/controld/controld_cib.c:56,1
    - Dst: pcmk__cib_element_in_patchset
      Src: /src/pacemaker/daemons/controld/controld_cib.c:60,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/daemons/controld/controld_cib.c:54,1
    - Dst: controld_trigger_config
      Src: /src/pacemaker/daemons/controld/controld_cib.c:63,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_cib.c:71,1
    - Dst: cib__client_triggers_refresh
      Src: /src/pacemaker/daemons/controld/controld_cib.c:72,1
    - Dst: pcmk__cib_element_in_patchset
      Src: /src/pacemaker/daemons/controld/controld_cib.c:77,1
    - Dst: pcmk__cib_element_in_patchset
      Src: /src/pacemaker/daemons/controld/controld_cib.c:78,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_cib.c:93,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_cib.c:87,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_cib.c:85,1
    - Dst: populate_cib_nodes
      Src: /src/pacemaker/daemons/controld/controld_cib.c:91,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_cib.c:89,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - event
    - msg
    argTypes:
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 95
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 95
    functionName: do_cib_updated
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__s
    - pcmk__btoa
    - cib__get_notify_patchset
    - crm_notice
    - populate_cib_nodes
    - pcmk__cib_element_in_patchset
    - crm_element_value
    - register_fsa_input
    - cib__client_triggers_refresh
    - controld_trigger_config
    linkageType: ''
    returnType: void
    signature: 'static void do_cib_updated(const char *event, xmlNode * msg) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_cib.c:478,1
    - Dst: compare_version
      Src: /src/pacemaker/daemons/controld/controld_cib.c:484,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_cib.c:507,1
    - Dst: ra_param_flag2text
      Src: /src/pacemaker/daemons/controld/controld_cib.c:522,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_cib.c:529,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_cib.c:522,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/daemons/controld/controld_cib.c:485,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_cib.c:497,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_cib.c:513,1
    - Dst: ra_param_flag2text
      Src: /src/pacemaker/daemons/controld/controld_cib.c:513,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_cib.c:502,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/daemons/controld/controld_cib.c:519,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/daemons/controld/controld_cib.c:541,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_cib.c:530,1
    - Dst: pcmk__filter_op_for_digest
      Src: /src/pacemaker/daemons/controld/controld_cib.c:486,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/daemons/controld/controld_cib.c:517,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_cib.c:534,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_cib.c:526,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/daemons/controld/controld_cib.c:535,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 47
    argCount: 4
    argNames:
    - op
    - metadata
    - param_type
    - result
    argTypes:
    - lrmd_event_data_t*
    - struct ra_metadata_s*
    - enum ra_param_flags_e
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 544
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 544
    functionName: build_parameter_list
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - ra_param_flag2text
    - g_hash_table_foreach
    - pcmk__xe_remove_attr
    - g_hash_table_lookup
    - compare_version
    - pcmk__filter_op_for_digest
    - crm_xml_add
    - pcmk_is_set
    - crm_trace
    - pcmk__add_word
    linkageType: ''
    returnType: GString*
    signature: 'static GString *build_parameter_list(const lrmd_event_data_t *op,
      const struct ra_metadata_s *metadata, enum ra_param_flags_e param_type, xmlNode
      **result) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_cib.c:765,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_cib.c:770,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_cib.c:771,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_cib.c:774,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_cib.c:773,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_cib.c:780,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 782
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 782
    functionName: cib_rsc_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - crm_warn
    - pcmk_strerror
    - crm_trace
    - controld_trigger_fsa
    linkageType: ''
    returnType: void
    signature: 'static void cib_rsc_callback(xmlNode * msg, int call_id, int rc, xmlNode
      * output, void *user_data) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:942,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_cib.c:911,1
    - Dst: controld_update_cib
      Src: /src/pacemaker/daemons/controld/controld_cib.c:941,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_cib.c:899,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_cib.c:929,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_cib.c:927,1
    - Dst: controld_add_resource_history_xml
      Src: /src/pacemaker/daemons/controld/controld_cib.c:934,1
    - Dst: crmd_cib_smart_opt
      Src: /src/pacemaker/daemons/controld/controld_cib.c:874,1
    - Dst: controld_ack_event_directly
      Src: /src/pacemaker/daemons/controld/controld_cib.c:882,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_cib.c:881,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_cib.c:890,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/daemons/controld/controld_cib.c:895,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_cib.c:897,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_cib.c:898,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_cib.c:902,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_cib.c:909,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_cib.c:903,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_cib.c:940,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_cib.c:887,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_cib.c:878,1
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_cib.c:891,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_cib.c:906,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_cib.c:912,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_cib.c:913,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_cib.c:910,1
    - Dst: should_preserve_lock
      Src: /src/pacemaker/daemons/controld/controld_cib.c:918,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/daemons/controld/controld_cib.c:921,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_cib.c:924,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 4
    argNames:
    - node_name
    - rsc
    - op
    - lock_time
    argTypes:
    - char*
    - lrmd_rsc_info_t*
    - lrmd_event_data_t*
    - time_t
    constantsTouched: []
    func_position:
      end: 943
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 943
    functionName: controld_update_resource_history
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crmd_cib_smart_opt
    - CRM_CHECK
    - controld_add_resource_history_xml
    - g_hash_table_lookup
    - controld_update_cib
    - controld_is_local_node
    - crm_xml_add
    - crm_log_xml_trace
    - pcmk__xe_set_bool_attr
    - controld_ack_event_directly
    - pcmk__xml_free
    - crm_xml_add_ll
    - crm_warn
    - crm_trace
    - should_preserve_lock
    linkageType: ''
    returnType: void
    signature: 'void controld_update_resource_history(const char *node_name, const
      lrmd_rsc_info_t *rsc, lrmd_event_data_t *op, time_t lock_time) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_cib.c:102,1
    - Dst: controld_clear_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_cib.c:106,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_cib.c:104,1
    - Dst: cib_free_callbacks
      Src: /src/pacemaker/daemons/controld/controld_cib.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 116
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 116
    functionName: controld_disconnect_cib_manager
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - crm_debug
    - cib_free_callbacks
    - controld_clear_fsa_input_flags
    linkageType: ''
    returnType: void
    signature: 'void controld_disconnect_cib_manager(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/controld/controld_cib.c:32,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_cib.c:34,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_cib.c:37,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_cib.c:40,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/controld/controld_cib.c:39,1
    - Dst: controld_clear_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_cib.c:41,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_cib.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 46
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 46
    functionName: handle_cib_disconnect
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - CRM_LOG_ASSERT
    - controld_clear_fsa_input_flags
    - pcmk_is_set
    - controld_trigger_fsa
    - register_fsa_input
    - crm_info
    - crm_crit
    linkageType: ''
    returnType: void
    signature: 'static void handle_cib_disconnect(gpointer user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_cib.c:434,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_cib.c:406,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/daemons/controld/controld_cib.c:423,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:428,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_cib.c:435,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:448,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_cib.c:408,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:411,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:429,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_cib.c:442,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_cib.c:433,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_cib.c:427,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_cib.c:410,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_cib.c:416,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_cib.c:424,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_cib.c:437,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:439,1
    - Dst: fsa_register_cib_callback
      Src: /src/pacemaker/daemons/controld/controld_cib.c:444,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - rsc_id
    - node
    - user_name
    - call_options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 450
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 450
    functionName: controld_delete_resource_history
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - crm_debug
    - CRM_CHECK
    - crm_strdup_printf
    - fsa_register_cib_callback
    - pcmk_is_set
    - free
    - pcmk_rc_str
    - crm_info
    - crm_err
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int controld_delete_resource_history(const char *rsc_id, const char
      *node, const char *user_name, int call_options) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_cib.c:825,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_cib.c:830,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_cib.c:837,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_cib.c:838,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/daemons/controld/controld_cib.c:838,1
    - Dst: fsa_register_cib_callback
      Src: /src/pacemaker/daemons/controld/controld_cib.c:849,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/daemons/controld/controld_cib.c:852,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 4
    argNames:
    - section
    - data
    - options
    - (*callback)
    argTypes:
    - char*
    - xmlNode*
    - int
    - void
    constantsTouched: []
    func_position:
      end: 853
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 853
    functionName: controld_update_cib
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - crm_debug
    - fsa_register_cib_callback
    - pcmk_rc_str
    - pcmk__assert
    - crm_err
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int controld_update_cib(const char *section, xmlNode *data, int options,
      void (*callback)(xmlNode *, int, int, xmlNode *, void *)) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_cib.c:363,1
    - Dst: controld_node_state_deletion_strings
      Src: /src/pacemaker/daemons/controld/controld_cib.c:365,1
    - Dst: cib__set_call_options
      Src: /src/pacemaker/daemons/controld/controld_cib.c:367,1
    - Dst: fsa_register_cib_callback
      Src: /src/pacemaker/daemons/controld/controld_cib.c:370,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_cib.c:371,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:375,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - uname
    - section
    - options
    argTypes:
    - char*
    - enum controld_section_e
    - int
    constantsTouched: []
    func_position:
      end: 376
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 376
    functionName: controld_delete_node_state
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - controld_node_state_deletion_strings
    - fsa_register_cib_callback
    - free
    - pcmk__assert
    - crm_info
    - cib__set_call_options
    linkageType: ''
    returnType: void
    signature: 'void controld_delete_node_state(const char *uname, enum controld_section_e
      section, int options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_cib.c:242,1
    - Dst: cib__set_call_options
      Src: /src/pacemaker/daemons/controld/controld_cib.c:244,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_cib.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: crmd_cib_smart_opt
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - fsa_state2string
    - crm_info
    - cib__set_call_options
    linkageType: ''
    returnType: int
    signature: 'int crmd_cib_smart_opt(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_cib.c:791,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_cib.c:797,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_cib.c:794,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - lrmd_event_data_t*
    constantsTouched: []
    func_position:
      end: 802
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 802
    functionName: should_preserve_lock
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - strcmp
    linkageType: ''
    returnType: bool
    signature: 'static bool should_preserve_lock(lrmd_event_data_t *op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_cib.c:956,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_cib.c:960,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/daemons/controld/controld_cib.c:963,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_cib.c:958,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/controld/controld_cib.c:959,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_cib.c:966,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:967,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_cib.c:970,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_cib.c:975,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:976,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - op
    argTypes:
    - lrmd_event_data_t*
    constantsTouched: []
    func_position:
      end: 977
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 977
    functionName: controld_delete_action_history
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_debug
    - CRM_CHECK
    - crm_xml_add
    - free
    - pcmk__xml_free
    - crm_xml_add_int
    - crm_log_xml_trace
    - pcmk__op_key
    linkageType: ''
    returnType: void
    signature: 'void controld_delete_action_history(const lrmd_event_data_t *op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_cib.c:1013,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_cib.c:1023,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_cib.c:1018,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/daemons/controld/controld_cib.c:1016,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/daemons/controld/controld_cib.c:1021,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:1025,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:1027,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:1031,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - rsc_id
    - node
    - action
    - interval_ms
    argTypes:
    - char*
    - char*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 1032
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1032
    functionName: controld_cib_delete_last_failure
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - pcmk__op_key
    - free
    - CRM_CHECK
    - crm_strdup_printf
    linkageType: ''
    returnType: void
    signature: 'void controld_cib_delete_last_failure(const char *rsc_id, const char
      *node, const char *action, guint interval_ms) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_cib.c:309,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_cib.c:323,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_cib.c:314,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_cib.c:318,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_cib.c:327,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_cib.c:331,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_cib.c:337,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_cib.c:342,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 4
    argNames:
    - uname
    - section
    - xpath
    - desc
    argTypes:
    - char*
    - enum controld_section_e
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 344
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 344
    functionName: controld_node_state_deletion_strings
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - time
    - crm_strdup_printf
    linkageType: ''
    returnType: void
    signature: 'void controld_node_state_deletion_strings(const char *uname, enum
      controld_section_e section, char **xpath, char **desc) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/controld/controld_cib.c:554,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_cib.c:568,1
    - Dst: build_parameter_list
      Src: /src/pacemaker/daemons/controld/controld_cib.c:565,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_cib.c:561,1
    - Dst: build_parameter_list
      Src: /src/pacemaker/daemons/controld/controld_cib.c:575,1
    - Dst: pcmk__digest_operation
      Src: /src/pacemaker/daemons/controld/controld_cib.c:582,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_cib.c:587,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_cib.c:589,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_cib.c:592,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_cib.c:594,1
    - Dst: g_string_free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:598,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:600,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:601,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 4
    argNames:
    - op
    - metadata
    - update
    - version
    argTypes:
    - lrmd_event_data_t*
    - struct ra_metadata_s*
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 602
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 602
    functionName: append_restart_list
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - CRM_LOG_ASSERT
    - crm_xml_add
    - build_parameter_list
    - pcmk_is_set
    - pcmk__digest_operation
    - pcmk__xml_free
    - free
    - g_string_free
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void append_restart_list(lrmd_event_data_t *op, struct ra_metadata_s
      *metadata, xmlNode *update, const char *version) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/controld/controld_cib.c:612,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_cib.c:623,1
    - Dst: build_parameter_list
      Src: /src/pacemaker/daemons/controld/controld_cib.c:617,1
    - Dst: pcmk__digest_operation
      Src: /src/pacemaker/daemons/controld/controld_cib.c:620,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_cib.c:621,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_cib.c:625,1
    - Dst: g_string_free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:626,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_cib.c:628,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:631,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:632,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 4
    argNames:
    - op
    - metadata
    - update
    - version
    argTypes:
    - lrmd_event_data_t*
    - struct ra_metadata_s*
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 633
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 633
    functionName: append_secure_list
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - CRM_LOG_ASSERT
    - crm_xml_add
    - build_parameter_list
    - pcmk__digest_operation
    - pcmk__xml_free
    - free
    - g_string_free
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void append_secure_list(lrmd_event_data_t *op, struct ra_metadata_s
      *metadata, xmlNode *update, const char *version) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_cib.c:136,1
    - Dst: controld_disconnect_cib_manager
      Src: /src/pacemaker/daemons/controld/controld_cib.c:145,1
    - Dst: crmd_fsa_stall
      Src: /src/pacemaker/daemons/controld/controld_cib.c:142,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_cib.c:153,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_cib.c:181,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_cib.c:169,1
    - Dst: controld_start_wait_timer
      Src: /src/pacemaker/daemons/controld/controld_cib.c:191,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_cib.c:134,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_cib.c:140,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_cib.c:169,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_cib.c:195,1
    - Dst: sleep
      Src: /src/pacemaker/daemons/controld/controld_cib.c:163,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_cib.c:189,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_cib.c:178,1
    - Dst: crmd_fsa_stall
      Src: /src/pacemaker/daemons/controld/controld_cib.c:192,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_cib.c:197,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_cib.c:148,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_cib.c:173,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_cib.c:185,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 200
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 200
    functionName: do_cib_control
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - controld_start_wait_timer
    - sleep
    - pcmk_strerror
    - crmd_fsa_stall
    - register_fsa_error
    - pcmk_is_set
    - controld_disconnect_cib_manager
    - crm_warn
    - pcmk__assert
    - controld_set_fsa_input_flags
    - crm_info
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void do_cib_control(long long action, enum crmd_fsa_cause cause, enum
      crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_cib.c:725,1
    - Dst: pcmk__warn_once
      Src: /src/pacemaker/daemons/controld/controld_cib.c:737,1
    - Dst: controld_action_is_recordable
      Src: /src/pacemaker/daemons/controld/controld_cib.c:730,1
    - Dst: crm_is_true
      Src: /src/pacemaker/daemons/controld/controld_cib.c:736,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/daemons/controld/controld_cib.c:735,1
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_cib.c:746,1
    - Dst: lrmd__set_result
      Src: /src/pacemaker/daemons/controld/controld_cib.c:749,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_cib.c:751,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/daemons/controld/controld_cib.c:752,1
    - Dst: controld_update_resource_history
      Src: /src/pacemaker/daemons/controld/controld_cib.c:754,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - node_name
    - rsc
    - op
    argTypes:
    - char*
    - lrmd_rsc_info_t*
    - lrmd_event_data_t*
    constantsTouched: []
    func_position:
      end: 756
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 756
    functionName: controld_record_pending_op
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - crm_debug
    - controld_update_resource_history
    - CRM_CHECK
    - controld_action_is_recordable
    - pcmk__warn_once
    - crm_is_true
    - time
    - crm_meta_value
    - pcmk__readable_interval
    - lrmd__set_result
    linkageType: ''
    returnType: bool
    signature: 'bool controld_record_pending_op(const char *node_name, const lrmd_rsc_info_t
      *rsc, lrmd_event_data_t *op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_cib.c:256,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_cib.c:258,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_cib.c:259,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 261
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 261
    functionName: cib_delete_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_warn
    - pcmk_strerror
    linkageType: ''
    returnType: void
    signature: 'static void cib_delete_callback(xmlNode *msg, int call_id, int rc,
      xmlNode *output, void *user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rsc_op_expected_rc
      Src: /src/pacemaker/daemons/controld/controld_cib.c:661,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_cib.c:664,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_cib.c:663,1
    - Dst: crm_op_needs_metadata
      Src: /src/pacemaker/daemons/controld/controld_cib.c:674,1
    - Dst: pcmk__create_history_xml
      Src: /src/pacemaker/daemons/controld/controld_cib.c:666,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_cib.c:676,1
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_cib.c:681,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_cib.c:683,1
    - Dst: controld_get_rsc_metadata
      Src: /src/pacemaker/daemons/controld/controld_cib.c:694,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_cib.c:701,1
    - Dst: append_secure_list
      Src: /src/pacemaker/daemons/controld/controld_cib.c:704,1
    - Dst: append_restart_list
      Src: /src/pacemaker/daemons/controld/controld_cib.c:703,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 5
    argNames:
    - func
    - parent
    - rsc
    - op
    - node_name
    argTypes:
    - char*
    - xmlNode*
    - lrmd_rsc_info_t*
    - lrmd_event_data_t*
    - char*
    constantsTouched: []
    func_position:
      end: 707
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 707
    functionName: controld_add_resource_history_xml_as
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - rsc_op_expected_rc
    - crm_op_needs_metadata
    - CRM_CHECK
    - pcmk__create_history_xml
    - g_hash_table_lookup
    - append_restart_list
    - append_secure_list
    - controld_get_rsc_metadata
    - crm_warn
    - controld_get_executor_state
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void controld_add_resource_history_xml_as(const char *func, xmlNode
      *parent, const lrmd_rsc_info_t *rsc, lrmd_event_data_t *op, const char *node_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_cib.c:1049,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_cib.c:1052,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_cib.c:1055,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_cib.c:1059,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 4
    argNames:
    - rsc_id
    - node
    - key
    - call_id
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1060
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1060
    functionName: controld_delete_action_history_by_key
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.c
    functionUses: []
    functionsReached:
    - free
    - CRM_CHECK
    - crm_strdup_printf
    linkageType: ''
    returnType: void
    signature: 'void controld_delete_action_history_by_key(const char *rsc_id, const
      char *node, const char *key, int call_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:84,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - action
    argTypes:
    - pcmk__graph_action_t*
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: get_target_rc
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_actions.c
    functionUses: []
    functionsReached:
    - crm_meta_value
    - pcmk__scan_min_int
    linkageType: ''
    returnType: int
    signature: 'static int get_target_rc(pcmk__graph_action_t *action) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:220,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:230,1
    - Dst: pcmk__cluster_local_node_name
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:224,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:234,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:224,1
    - Dst: pcmk__event_from_graph_action
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:239,1
    - Dst: pcmk__transition_key
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:242,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:245,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - action
    - target_rc
    argTypes:
    - pcmk__graph_action_t*
    - int
    constantsTouched: []
    func_position:
      end: 247
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 247
    functionName: synthesize_timeout_event
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_actions.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pcmk__event_from_graph_action
    - pcmk__str_eq
    - free
    - pcmk__transition_key
    - crm_element_value
    - pcmk__cluster_local_node_name
    linkageType: ''
    returnType: lrmd_event_data_t*
    signature: 'static lrmd_event_data_t *synthesize_timeout_event(const pcmk__graph_action_t
      *action, int target_rc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:45,1
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:56,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:53,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:52,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:48,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:60,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:63,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:64,1
    - Dst: remote_ra_process_maintenance_nodes
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:67,1
    - Dst: remote_ra_process_pseudo
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:70,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:73,1
    - Dst: te_action_confirmed
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:75,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:74,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - graph
    - pseudo
    argTypes:
    - pcmk__graph_t*
    - pcmk__graph_action_t*
    constantsTouched: []
    func_position:
      end: 77
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 77
    functionName: execute_pseudo_action
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_actions.c
    functionUses: []
    functionsReached:
    - crm_debug
    - remote_ra_process_maintenance_nodes
    - controld_is_local_node
    - remote_ra_process_pseudo
    - pcmk__str_eq
    - pcmk__cluster_send_message
    - te_action_confirmed
    - pcmk__xml_free
    - crm_element_value
    - pcmk__new_request
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: int
    signature: 'static int execute_pseudo_action(pcmk__graph_t *graph, pcmk__graph_action_t
      *pseudo) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:369,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:374,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:374,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:378,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:379,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:388,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:399,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:427,1
    - Dst: do_lrm_invoke
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:419,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:431,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:457,1
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:390,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:447,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:452,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:453,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:377,1
    - Dst: pcmk__transition_key
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:385,1
    - Dst: get_target_rc
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:386,1
    - Dst: crm_is_true
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:395,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:394,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:435,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:440,1
    - Dst: trigger_graph
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:450,1
    - Dst: te_update_job_count
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:461,1
    - Dst: pcmk__clear_graph_action_flags
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:371,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:372,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:424,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:434,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:437,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:448,1
    - Dst: pcmk__update_graph
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:449,1
    - Dst: te_start_action_timer
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:462,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 2
    argNames:
    - graph
    - action
    argTypes:
    - pcmk__graph_t*
    - pcmk__graph_action_t*
    constantsTouched: []
    func_position:
      end: 466
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 466
    functionName: execute_rsc_action
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_actions.c
    functionUses: []
    functionsReached:
    - pcmk__get_node
    - pcmk__str_empty
    - te_start_action_timer
    - crm_notice
    - free
    - trigger_graph
    - pcmk__clear_graph_action_flags
    - crm_is_true
    - pcmk__cluster_send_message
    - pcmk_is_set
    - crm_element_value
    - pcmk__new_request
    - do_lrm_invoke
    - pcmk__assert
    - crm_meta_value
    - crm_err
    - CRM_CHECK
    - pcmk__set_graph_action_flags
    - te_update_job_count
    - get_target_rc
    - crm_info
    - pcmk__update_graph
    - crm_debug
    - controld_is_local_node
    - crm_xml_add
    - pcmk__xml_free
    - pcmk__transition_key
    linkageType: ''
    returnType: int
    signature: 'static int execute_rsc_action(pcmk__graph_t *graph, pcmk__graph_action_t
      *action) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:489,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:492,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:493,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 497
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 497
    functionName: te_reset_job_counts
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_actions.c
    functionUses: []
    functionsReached:
    - pcmk__strkey_table
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void te_reset_job_counts(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:525,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:540,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:543,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:526,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:537,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:545,1
    - Dst: te_update_job_count_on
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:548,1
    - Dst: te_update_job_count_on
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:549,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:552,1
    - Dst: te_update_job_count_on
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:555,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 2
    argNames:
    - action
    - offset
    argTypes:
    - pcmk__graph_action_t*
    - int
    constantsTouched: []
    func_position:
      end: 556
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 556
    functionName: te_update_job_count
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_actions.c
    functionUses: []
    functionsReached:
    - crm_meta_value
    - pcmk__strcase_any_of
    - te_update_job_count_on
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void te_update_job_count(pcmk__graph_action_t *action, int
      offset) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:626,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:640,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:637,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:642,1
    - Dst: allowed_on_node
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:643,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:647,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:650,1
    - Dst: allowed_on_node
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:653,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - graph
    - action
    argTypes:
    - pcmk__graph_t*
    - pcmk__graph_action_t*
    constantsTouched: []
    func_position:
      end: 654
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 654
    functionName: graph_action_allowed
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_actions.c
    functionUses: []
    functionsReached:
    - crm_meta_value
    - pcmk__strcase_any_of
    - allowed_on_node
    - crm_element_value
    linkageType: ''
    returnType: bool
    signature: 'static bool graph_action_allowed(pcmk__graph_t *graph, pcmk__graph_action_t
      *action) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_graph_functions
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 694
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 694
    functionName: controld_register_graph_functions
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_actions.c
    functionUses: []
    functionsReached:
    - pcmk__set_graph_functions
    linkageType: ''
    returnType: void
    signature: 'void controld_register_graph_functions(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:277,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:295,1
    - Dst: crm_copy_xml_element
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:302,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:299,1
    - Dst: crm_copy_xml_element
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:303,1
    - Dst: crm_copy_xml_element
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:304,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:311,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:315,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:262,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:270,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:265,1
    - Dst: get_target_rc
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:268,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:278,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:297,1
    - Dst: pcmk__create_history_xml
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:306,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:313,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:276,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:289,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:291,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:292,1
    - Dst: fsa_register_cib_callback
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:310,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:263,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:294,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:298,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - action
    - op
    argTypes:
    - pcmk__graph_action_t*
    - lrmd_event_data_t*
    constantsTouched: []
    func_position:
      end: 316
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 316
    functionName: controld_record_action_event
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_actions.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - CRM_CHECK
    - crm_trace
    - pcmk__xe_first_child
    - pcmk__create_history_xml
    - fsa_register_cib_callback
    - pcmk__set_graph_action_flags
    - crm_xml_add
    - crm_copy_xml_element
    - pcmk__xml_free
    - crm_element_value
    - get_target_rc
    - pcmk__xe_id
    - crm_log_xml_err
    linkageType: ''
    returnType: void
    signature: 'static void controld_record_action_event(pcmk__graph_action_t *action,
      lrmd_event_data_t *op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:479,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 481
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 481
    functionName: te_peer_free
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_actions.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void te_peer_free(gpointer p) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:508,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:510,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:512,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:519,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:511,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - target
    - offset
    - migrate
    argTypes:
    - char*
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 520
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 520
    functionName: te_update_job_count_on
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_actions.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - pcmk__assert_alloc
    - pcmk__str_copy
    - g_hash_table_insert
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void te_update_job_count_on(const char *target, int offset,
      bool migrate) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:702,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:705,1
    - Dst: controld_get_period_transition_timer
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:724,1
    - Dst: controld_stop_transition_timer
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:725,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:703,1
    - Dst: controld_start_transition_timer
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:726,1
    - Dst: controld_set_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:732,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:733,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:739,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:743,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:748,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:749,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:755,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:757,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 1
    argNames:
    - graph
    argTypes:
    - pcmk__graph_t*
    constantsTouched: []
    func_position:
      end: 759
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 759
    functionName: notify_crmd
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_actions.c
    functionUses: []
    functionsReached:
    - crm_debug
    - CRM_CHECK
    - pcmk__s
    - controld_start_transition_timer
    - controld_set_fsa_action_flags
    - fsa_state2string
    - controld_get_period_transition_timer
    - pcmk_is_set
    - controld_stop_transition_timer
    - controld_trigger_fsa
    - register_fsa_input
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void notify_crmd(pcmk__graph_t *graph) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:28,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - graph
    - action
    argTypes:
    - pcmk__graph_t*
    - pcmk__graph_action_t*
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: te_start_action_timer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_actions.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__create_timer
    linkageType: ''
    returnType: void
    signature: 'static void te_start_action_timer(const pcmk__graph_t *graph, pcmk__graph_action_t
      *action) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:123,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:128,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:131,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:179,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:177,1
    - Dst: te_action_confirmed
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:186,1
    - Dst: pcmk__transition_key
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:170,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:119,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:120,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:123,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:129,1
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:137,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:151,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:167,1
    - Dst: get_target_rc
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:171,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:173,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:175,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:161,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:178,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:117,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:117,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:120,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:122,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:125,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:146,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:141,1
    - Dst: crm_is_true
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:142,1
    - Dst: te_action_confirmed
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:156,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:159,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:190,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:116,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:153,1
    - Dst: pcmk__update_peer_expected
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:164,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:182,1
    - Dst: te_start_action_timer
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:194,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 70
    argCount: 2
    argNames:
    - graph
    - action
    argTypes:
    - pcmk__graph_t*
    - pcmk__graph_action_t*
    constantsTouched: []
    func_position:
      end: 198
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 198
    functionName: execute_cluster_action
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_actions.c
    functionUses: []
    functionsReached:
    - pcmk__get_node
    - pcmk__str_empty
    - te_start_action_timer
    - te_action_confirmed
    - free
    - crm_is_true
    - pcmk__cluster_send_message
    - crm_element_value
    - pcmk__new_request
    - crm_meta_value
    - pcmk__xe_id
    - crm_err
    - CRM_CHECK
    - pcmk__str_eq
    - get_target_rc
    - crm_info
    - controld_is_local_node
    - crm_xml_add
    - pcmk__xml_free
    - pcmk__transition_key
    - pcmk__update_peer_expected
    linkageType: ''
    returnType: int
    signature: 'static int execute_cluster_action(pcmk__graph_t *graph, pcmk__graph_action_t
      *action) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:323,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:329,1
    - Dst: get_target_rc
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:327,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:324,1
    - Dst: synthesize_timeout_event
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:332,1
    - Dst: controld_record_action_event
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:333,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:334,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - action
    argTypes:
    - pcmk__graph_action_t*
    constantsTouched: []
    func_position:
      end: 335
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 335
    functionName: controld_record_action_timeout
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_actions.c
    functionUses: []
    functionsReached:
    - controld_record_action_event
    - crm_element_value
    - crm_warn
    - get_target_rc
    - lrmd_free_event
    - synthesize_timeout_event
    linkageType: ''
    returnType: void
    signature: 'void controld_record_action_timeout(pcmk__graph_action_t *action) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:574,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:585,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:589,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:575,1
    - Dst: throttle_get_job_limit
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:586,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:590,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:591,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:595,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:600,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:602,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:608,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 3
    argNames:
    - graph
    - action
    - target
    argTypes:
    - pcmk__graph_t*
    - pcmk__graph_action_t*
    - char*
    constantsTouched: []
    func_position:
      end: 611
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 611
    functionName: allowed_on_node
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_actions.c
    functionUses: []
    functionsReached:
    - throttle_get_job_limit
    - g_hash_table_lookup
    - pcmk__assert_alloc
    - pcmk__strcase_any_of
    - pcmk__str_copy
    - crm_element_value
    - g_hash_table_insert
    - crm_trace
    linkageType: ''
    returnType: bool
    signature: 'static bool allowed_on_node(const pcmk__graph_t *graph, const pcmk__graph_action_t
      *action, const char *target) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:665,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:670,1
    - Dst: te_update_job_count
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:668,1
    - Dst: pcmk__update_graph
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:673,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:667,1
    - Dst: trigger_graph
      Src: /src/pacemaker/daemons/controld/controld_te_actions.c:674,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - action
    - graph
    argTypes:
    - pcmk__graph_action_t*
    - pcmk__graph_t*
    constantsTouched: []
    func_position:
      end: 676
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 676
    functionName: te_action_confirmed
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_actions.c
    functionUses: []
    functionsReached:
    - pcmk__set_graph_action_flags
    - pcmk_is_set
    - te_update_job_count
    - crm_element_value
    - trigger_graph
    - pcmk__update_graph
    linkageType: ''
    returnType: void
    signature: 'void te_action_confirmed(pcmk__graph_action_t *action, pcmk__graph_t
      *graph) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:578,1
    - Dst: free_cmd
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:584,1
    - Dst: handle_remote_ra_stop
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:583,1
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 587
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 587
    functionName: connection_takeover_timeout_cb
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - free_cmd
    - crm_info
    - controld_get_executor_state
    - handle_remote_ra_stop
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean connection_takeover_timeout_cb(gpointer data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:872,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:877,1
    - Dst: atoi
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:879,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:881,1
    - Dst: lrm_remote_set_flags
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:883,1
    - Dst: controld_connect_remote_executor
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:887,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:890,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:893,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - lrm_state
    - cmd
    - timeout_ms
    argTypes:
    - lrm_state_t*
    - remote_ra_cmd_t*
    - int
    constantsTouched: []
    func_position:
      end: 896
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 896
    functionName: handle_remote_ra_start
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - pcmk__format_result
    - atoi
    - pcmk__str_eq
    - pcmk__strcase_any_of
    - pcmk_rc_str
    - controld_connect_remote_executor
    - lrm_remote_set_flags
    linkageType: ''
    returnType: int
    signature: 'static int handle_remote_ra_start(lrm_state_t * lrm_state, remote_ra_cmd_t
      * cmd, int timeout_ms) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1093,1
    - Dst: g_list_append
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1095,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1104,1
    - Dst: report_remote_ra_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1106,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1102,1
    - Dst: g_list_remove
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1108,1
    - Dst: free_cmd
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1109,1
    - Dst: g_list_free
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1113,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - list
    argTypes:
    - GList*
    constantsTouched: []
    func_position:
      end: 1115
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1115
    functionName: fail_all_monitor_cmds
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - g_list_append
    - g_list_free
    - pcmk__str_eq
    - g_list_remove
    - report_remote_ra_result
    - free_cmd
    - crm_trace
    linkageType: ''
    returnType: GList*
    signature: 'static GList *fail_all_monitor_cmds(GList * list) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1145,1
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1147,1
    - Dst: remove_cmd
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1153,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1158,1
    - Dst: remove_cmd
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1154,1
    - Dst: cmd_set_flags
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1160,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 4
    argNames:
    - lrm_state
    - rsc_id
    - action
    - interval_ms
    argTypes:
    - lrm_state_t*
    - char*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 1164
      start: 1138
    functionDepth: 0
    functionLinenumber: 1138
    functionLinenumberEnd: 1164
    functionName: remote_ra_cancel
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__str_eq
    - cmd_set_flags
    - remove_cmd
    - controld_get_executor_state
    linkageType: ''
    returnType: int
    signature: 'int remote_ra_cancel(lrm_state_t *lrm_state, const char *rsc_id, const
      char *action, guint interval_ms) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:595,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:600,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:610,1
    - Dst: report_remote_ra_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:614,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:597,1
    - Dst: free_cmd
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:615,1
    - Dst: lrm_state_disconnect
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:619,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 622
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 622
    functionName: monitor_timeout_cb
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - lrm_state_disconnect
    - crm_info
    - report_remote_ra_result
    - controld_get_executor_state
    - free_cmd
    - mainloop_set_trigger
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean monitor_timeout_cb(gpointer data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1126,1
    - Dst: free_cmd
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1133,1
    - Dst: g_list_remove
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1132,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 3
    argNames:
    - list
    - action
    - interval_ms
    argTypes:
    - GList*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 1136
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1136
    functionName: remove_cmd
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - g_list_remove
    - free_cmd
    - pcmk__str_eq
    linkageType: ''
    returnType: GList*
    signature: 'static GList *remove_cmd(GList * list, const char *action, guint interval_ms) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1184,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1196,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1186,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1215,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1205,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1220,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1221,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1225,1
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1226,1
    - Dst: generate_callid
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1227,1
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1235,1
    - Dst: recurring_helper
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1237,1
    - Dst: cmd_clear_flags
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1228,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 46
    argCount: 3
    argNames:
    - ra_data
    - interval_ms
    - userdata
    argTypes:
    - remote_ra_data_t*
    - guint
    - char*
    constantsTouched: []
    func_position:
      end: 1241
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1241
    functionName: handle_dup_monitor
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - cmd_clear_flags
    - generate_callid
    - recurring_helper
    - pcmk__str_eq
    - time
    - pcmk__str_copy
    - pcmk_is_set
    - free
    - crm_trace
    - g_source_remove
    linkageType: ''
    returnType: remote_ra_cmd_t*
    signature: 'static remote_ra_cmd_t *handle_dup_monitor(remote_ra_data_t *ra_data,
      guint interval_ms, const char *userdata) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:830,1
    - Dst: g_hash_table_remove_all
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:835,1
    - Dst: lrm_remote_clear_flags
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:842,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:833,1
    - Dst: lrm_state_reset_tables
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:839,1
    - Dst: lrm_state_disconnect
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:843,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:846,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:849,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:856,1
    - Dst: report_remote_ra_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:857,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - lrm_state
    - cmd
    argTypes:
    - lrm_state_t*
    - remote_ra_cmd_t*
    constantsTouched: []
    func_position:
      end: 859
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 859
    functionName: handle_remote_ra_stop
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - lrm_state_reset_tables
    - pcmk__set_result
    - lrm_state_disconnect
    - lrm_remote_clear_flags
    - g_hash_table_remove_all
    - g_list_free_full
    - pcmk_is_set
    - pcmk__assert
    - report_remote_ra_result
    linkageType: ''
    returnType: void
    signature: 'static void handle_remote_ra_stop(lrm_state_t * lrm_state, remote_ra_cmd_t
      * cmd) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1370,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1390,1
    - Dst: remote_node_down
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1393,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1372,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1373,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1397,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1398
      start: 1367
    functionDepth: 0
    functionLinenumber: 1367
    functionLinenumberEnd: 1398
    functionName: remote_ra_process_pseudo
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - pcmk__xe_id
    - pcmk__xpath_result
    - xmlXPathFreeObject
    - remote_node_down
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    linkageType: ''
    returnType: void
    signature: 'void remote_ra_process_pseudo(xmlNode *xml) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:285,1
    - Dst: pcmk__cluster_lookup_remote_node
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:301,1
    - Dst: crmd_cib_smart_opt
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:288,1
    - Dst: update_attrd
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:298,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:286,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:302,1
    - Dst: purge_remote_node_attrs
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:304,1
    - Dst: pcmk__update_peer_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:305,1
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:310,1
    - Dst: lrmd__node_start_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:314,1
    - Dst: create_node_state_update
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:330,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:347,1
    - Dst: set_join_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:317,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:337,1
    - Dst: broadcast_remote_state_message
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:327,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:329,1
    - Dst: controld_update_cib
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:346,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - node_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 348
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 348
    functionName: remote_node_up
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crmd_cib_smart_opt
    - CRM_CHECK
    - pcmk__update_peer_state
    - controld_get_executor_state
    - controld_update_cib
    - crm_xml_add
    - update_attrd
    - lrmd__node_start_state
    - set_join_state
    - pcmk__cluster_lookup_remote_node
    - pcmk__xml_free
    - crm_info
    - create_node_state_update
    - broadcast_remote_state_message
    - purge_remote_node_attrs
    linkageType: ''
    returnType: void
    signature: 'static void remote_node_up(const char *node_name) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:409,1
    - Dst: pcmk__cluster_lookup_remote_node
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:426,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:416,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:413,1
    - Dst: remote_node_up
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:414,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:428,1
    - Dst: pcmk__update_peer_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:429,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:431,1
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:432,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:437,1
    - Dst: remote_node_down
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:439,1
    - Dst: pcmk__cluster_forget_remote_node
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:445,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - remote_ra_cmd_t*
    constantsTouched: []
    func_position:
      end: 459
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 459
    functionName: check_remote_node_state
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__result_ok
    - remote_node_up
    - pcmk__update_peer_state
    - pcmk__cluster_forget_remote_node
    - pcmk__str_eq
    - pcmk__cluster_lookup_remote_node
    - pcmk_is_set
    - remote_node_down
    - controld_get_executor_state
    linkageType: ''
    returnType: void
    signature: 'static void check_remote_node_state(const remote_ra_cmd_t *cmd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:527,1
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - remote_ra_cmd_t*
    constantsTouched: []
    func_position:
      end: 528
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 528
    functionName: remaining_timeout_sec
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - time
    - pcmk__timeout_ms2s
    linkageType: ''
    returnType: int
    signature: 'static int remaining_timeout_sec(const remote_ra_cmd_t *cmd) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:631,1
    - Dst: lrmd__set_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:641,1
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:638,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:633,1
    - Dst: generate_callid
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:640,1
    - Dst: process_lrm_event
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:642,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - lrm_state
    - rsc_id
    - op_type
    argTypes:
    - lrm_state_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 643
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 643
    functionName: synthesize_lrmd_success
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - generate_callid
    - process_lrm_event
    - time
    - pcmk__assert
    - controld_get_executor_state
    - lrmd__set_result
    linkageType: ''
    returnType: void
    signature: 'static void synthesize_lrmd_success(lrm_state_t *lrm_state, const
      char *rsc_id, const char *op_type) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: lrm_state_is_connected
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:938,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:946,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:954,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:969,1
    - Dst: report_remote_ra_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:996,1
    - Dst: g_list_free_1
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:921,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:929,1
    - Dst: report_remote_ra_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:957,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:951,1
    - Dst: lrm_remote_clear_flags
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:979,1
    - Dst: lrm_remote_set_flags
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:980,1
    - Dst: g_list_remove_link
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:920,1
    - Dst: report_remote_ra_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:934,1
    - Dst: lrm_state_poke_connection
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:939,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:959,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:961,1
    - Dst: handle_remote_ra_stop
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:976,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:984,1
    - Dst: free_cmd
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:999,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:923,1
    - Dst: lrm_remote_clear_flags
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:925,1
    - Dst: handle_remote_ra_start
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:926,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:936,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:942,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:941,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:978,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:981,1
    - Dst: report_remote_ra_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:982,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:995,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 1003
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 1003
    functionName: handle_remote_ra_exec
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - handle_remote_ra_start
    - crm_debug
    - pcmk__set_result
    - lrm_state_is_connected
    - g_list_remove_link
    - lrm_remote_clear_flags
    - pcmk_strerror
    - strcmp
    - handle_remote_ra_stop
    - lrm_state_poke_connection
    - pcmk_is_set
    - g_list_free_1
    - report_remote_ra_result
    - pcmk__str_any_of
    - free_cmd
    - lrm_remote_set_flags
    - pcmk__create_timer
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean handle_remote_ra_exec(gpointer user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1029,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1036,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1033,1
    - Dst: mainloop_destroy_trigger
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1035,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - lrm_state
    argTypes:
    - lrm_state_t*
    constantsTouched: []
    func_position:
      end: 1038
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1038
    functionName: remote_ra_cleanup
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - mainloop_destroy_trigger
    - free
    - g_list_free_full
    linkageType: ''
    returnType: void
    signature: 'void remote_ra_cleanup(lrm_state_t * lrm_state) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crmd_cib_smart_opt
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1407,1
    - Dst: create_node_state_update
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1411,1
    - Dst: pcmk__cluster_lookup_remote_node
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1408,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1409,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1410,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1413,1
    - Dst: controld_update_cib
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1414,1
    - Dst: lrm_remote_set_flags
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1418,1
    - Dst: lrm_remote_clear_flags
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1420,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1423,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - lrm_state
    - maintenance
    argTypes:
    - lrm_state_t*
    - gboolean
    constantsTouched: []
    func_position:
      end: 1424
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1424
    functionName: remote_ra_maintenance
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - lrm_remote_set_flags
    - crmd_cib_smart_opt
    - CRM_CHECK
    - controld_update_cib
    - lrm_remote_clear_flags
    - crm_xml_add
    - pcmk__cluster_lookup_remote_node
    - pcmk__xml_free
    - create_node_state_update
    linkageType: ''
    returnType: void
    signature: 'static void remote_ra_maintenance(lrm_state_t * lrm_state, gboolean
      maintenance) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: check_remote_node_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:466,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:480,1
    - Dst: lrmd__set_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:477,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:480,1
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:481,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:499,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:501,1
    - Dst: lrm_op_callback
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:508,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:511,1
    - Dst: lrmd__reset_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:513,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - remote_ra_cmd_t*
    constantsTouched: []
    func_position:
      end: 514
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 514
    functionName: report_remote_ra_result
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - pcmk__result_ok
    - pcmk__insert_dup
    - pcmk__strkey_table
    - g_hash_table_destroy
    - time
    - lrm_op_callback
    - pcmk_is_set
    - check_remote_node_state
    - lrmd__reset_result
    - lrmd__set_result
    linkageType: ''
    returnType: void
    signature: 'static void report_remote_ra_result(remote_ra_cmd_t * cmd) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_up_action
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:543,1
    - Dst: report_remote_ra_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:557,1
    - Dst: handle_remote_ra_start
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:549,1
    - Dst: remaining_timeout_sec
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:547,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:551,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:560,1
    - Dst: free_cmd
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:563,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 569
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 569
    functionName: retry_start_cmd_cb
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - handle_remote_ra_start
    - remaining_timeout_sec
    - pcmk__set_result
    - pcmk__is_up_action
    - report_remote_ra_result
    - free_cmd
    - mainloop_set_trigger
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean retry_start_cmd_cb(gpointer data) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:653,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:659,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:700,1
    - Dst: remote_node_down
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:715,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:724,1
    - Dst: pcmk__is_up_action
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:732,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:760,1
    - Dst: report_remote_ra_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:765,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:769,1
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:773,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:789,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:801,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:819,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:798,1
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:662,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:690,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:678,1
    - Dst: remote_ra_is_in_maintenance
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:704,1
    - Dst: fail_all_monitor_cmds
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:708,1
    - Dst: handle_remote_ra_stop
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:714,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:739,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:741,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:746,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:752,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:786,1
    - Dst: g_list_append
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:790,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:800,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:764,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:755,1
    - Dst: cmd_set_flags
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:783,1
    - Dst: lrmd_event_type2str
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:658,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:664,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:701,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:691,1
    - Dst: lrm_state_disconnect_only
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:683,1
    - Dst: lrm_op_callback
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:693,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:711,1
    - Dst: synthesize_lrmd_success
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:717,1
    - Dst: remaining_timeout_sec
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:734,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:744,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:802,1
    - Dst: report_remote_ra_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:806,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:791,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:780,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:655,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:660,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:672,1
    - Dst: lrm_remote_clear_flags
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:674,1
    - Dst: lrm_remote_set_flags
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:675,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:705,1
    - Dst: fail_all_monitor_cmds
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:707,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:750,1
    - Dst: lrm_state_reset_tables
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:759,1
    - Dst: lrm_remote_set_flags
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:761,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:807,1
    - Dst: free_cmd
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:821,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:781,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:813,1
    - Dst: report_remote_ra_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:782,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 132
    argCount: 1
    argNames:
    - op
    argTypes:
    - lrmd_event_data_t*
    constantsTouched: []
    func_position:
      end: 823
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 823
    functionName: remote_lrm_op_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - lrm_state_reset_tables
    - synthesize_lrmd_success
    - crm_notice
    - report_remote_ra_result
    - controld_get_executor_state
    - lrm_remote_set_flags
    - lrmd_event_type2str
    - pcmk__create_timer
    - lrm_state_disconnect_only
    - pcmk_is_set
    - free_cmd
    - crm_err
    - pcmk_exec_status_str
    - CRM_CHECK
    - crm_exit_str
    - lrm_remote_clear_flags
    - g_list_append
    - fail_all_monitor_cmds
    - pcmk__str_eq
    - handle_remote_ra_stop
    - remote_node_down
    - pcmk_strerror
    - crm_trace
    - mainloop_set_trigger
    - crm_debug
    - remaining_timeout_sec
    - pcmk__format_result
    - lrm_op_callback
    - remote_ra_is_in_maintenance
    - pcmk__is_up_action
    - cmd_set_flags
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: 'void remote_lrm_op_callback(lrmd_event_data_t * op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1014,1
    - Dst: mainloop_add_trigger
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1015,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - lrm_state
    argTypes:
    - lrm_state_t*
    constantsTouched: []
    func_position:
      end: 1017
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1017
    functionName: remote_ra_data_init
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - mainloop_add_trigger
    - pcmk__assert_alloc
    linkageType: ''
    returnType: void
    signature: 'static void remote_ra_data_init(lrm_state_t * lrm_state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1043,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1043,1
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1046,1
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1047,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 3
    argNames:
    - agent
    - provider
    - id
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1048
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1048
    functionName: is_remote_lrmd_ra
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - controld_get_executor_state
    - strcmp
    - controld_is_local_node
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean is_remote_lrmd_ra(const char *agent, const char *provider,
      const char *id) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: should_purge_attributes
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:260,1
    - Dst: section_to_delete
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:261,1
    - Dst: controld_delete_node_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:268,1
    - Dst: update_attrd_remote_node_removed
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - call_opt
    - node
    argTypes:
    - int
    - pcmk__node_status_t*
    constantsTouched: []
    func_position:
      end: 269
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 269
    functionName: purge_remote_node_attrs
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - controld_delete_node_state
    - should_purge_attributes
    - update_attrd_remote_node_removed
    - section_to_delete
    linkageType: ''
    returnType: void
    signature: 'static void purge_remote_node_attrs(int call_opt, pcmk__node_status_t
      *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1335,1
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1337,1
    - Dst: lrm_state_is_connected
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1338,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1341,1
    - Dst: fail_all_monitor_cmds
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1342,1
    - Dst: fail_all_monitor_cmds
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1343,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - node_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1345
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1345
    functionName: remote_ra_fail
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - lrm_state_is_connected
    - CRM_CHECK
    - fail_all_monitor_cmds
    - crm_info
    - controld_get_executor_state
    linkageType: ''
    returnType: void
    signature: 'void remote_ra_fail(const char *node_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1055,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1058,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1061,1
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1057,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1060,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1062,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1063,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - lrm_state
    - rsc_id
    argTypes:
    - lrm_state_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1067
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1067
    functionName: remote_ra_get_rsc_info
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - pcmk__assert_alloc
    - controld_get_executor_state
    - CRM_CHECK
    linkageType: ''
    returnType: lrmd_rsc_info_t*
    signature: 'lrmd_rsc_info_t *remote_ra_get_rsc_info(lrm_state_t * lrm_state, const
      char *rsc_id) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1303,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1314,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1304,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1301,1
    - Dst: lrmd_key_value_freeall
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1279,1
    - Dst: handle_dup_monitor
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1292,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1299,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1274,1
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1283,1
    - Dst: lrmd_key_value_freeall
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1276,1
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1309,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1302,1
    - Dst: g_list_append
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1317,1
    - Dst: is_remote_ra_supported_action
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1278,1
    - Dst: lrmd_key_value_freeall
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1285,1
    - Dst: remote_ra_data_init
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1289,1
    - Dst: lrmd_key_value_freeall
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1295,1
    - Dst: generate_callid
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1311,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1318,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 9
    argNames:
    - lrm_state
    - rsc_id
    - action
    - userdata
    - interval_ms
    - timeout_ms
    - start_delay_ms
    - params
    - call_id
    argTypes:
    - lrm_state_t*
    - char*
    - char*
    - char*
    - guint
    - int
    - int
    - lrmd_key_value_t*
    - int*
    constantsTouched: []
    func_position:
      end: 1322
      start: 1261
    functionDepth: 0
    functionLinenumber: 1261
    functionLinenumberEnd: 1322
    functionName: controld_execute_remote_agent
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - g_list_append
    - generate_callid
    - pcmk__assert_alloc
    - time
    - pcmk__str_copy
    - handle_dup_monitor
    - mainloop_set_trigger
    - controld_get_executor_state
    - lrmd_key_value_freeall
    - remote_ra_data_init
    - is_remote_ra_supported_action
    - pcmk__create_timer
    linkageType: ''
    returnType: int
    signature: 'int controld_execute_remote_agent(const lrm_state_t *lrm_state, const
      char *rsc_id, const char *action, const char *userdata, guint interval_ms, int
      timeout_ms, int start_delay_ms, lrmd_key_value_t *params, int *call_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1072,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - action
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1081
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1081
    functionName: is_remote_ra_supported_action
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean is_remote_ra_supported_action(const char *action) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crmd_cib_smart_opt
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:366,1
    - Dst: pcmk__cluster_lookup_remote_node
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:384,1
    - Dst: controld_delete_node_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:378,1
    - Dst: update_attrd_remote_node_removed
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:370,1
    - Dst: controld_delete_node_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:380,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:385,1
    - Dst: pcmk__update_peer_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:386,1
    - Dst: broadcast_remote_state_message
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:389,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:392,1
    - Dst: create_node_state_update
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:393,1
    - Dst: controld_update_cib
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:395,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:396,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - node_name
    - opts
    argTypes:
    - char*
    - enum down_opts
    constantsTouched: []
    func_position:
      end: 397
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 397
    functionName: remote_node_down
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crmd_cib_smart_opt
    - CRM_CHECK
    - pcmk__update_peer_state
    - controld_update_cib
    - pcmk__cluster_lookup_remote_node
    - pcmk__xml_free
    - controld_delete_node_state
    - update_attrd_remote_node_removed
    - create_node_state_update
    - broadcast_remote_state_message
    linkageType: ''
    returnType: void
    signature: 'static void remote_node_down(const char *node_name, const enum down_opts
      opts) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:127,1
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:133,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:138,1
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:130,1
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:136,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:139,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:140,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:141,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:142,1
    - Dst: lrmd_key_value_freeall
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:143,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:144,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 145
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 145
    functionName: free_cmd
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - lrmd_key_value_freeall
    - free
    - pcmk__reset_result
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: 'static void free_cmd(gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:167,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:174,1
    - Dst: g_list_remove
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:171,1
    - Dst: g_list_append
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 177
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 177
    functionName: recurring_helper
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - g_list_remove
    - controld_get_executor_state
    - g_list_append
    - mainloop_set_trigger
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean recurring_helper(gpointer data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:208,1
    - Dst: lrmd__uptime
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:222,1
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:218,1
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:223,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk__node_status_t*
    constantsTouched: []
    func_position:
      end: 237
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 237
    functionName: should_purge_attributes
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - controld_get_executor_state
    - pcmk__get_node
    - time
    - lrmd__uptime
    linkageType: ''
    returnType: bool
    signature: 'static bool should_purge_attributes(pcmk__node_status_t *node) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1439,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1442,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1448,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1446,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1446,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1451,1
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1458,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1461,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1467,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1469,1
    - Dst: remote_ra_maintenance
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1470,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1473,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1477,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1478
      start: 1436
    functionDepth: 0
    functionLinenumber: 1436
    functionLinenumberEnd: 1478
    functionName: remote_ra_process_maintenance_nodes
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - crm_element_value
    - pcmk__xe_id
    - pcmk__xe_first_child
    - pcmk__xpath_result
    - remote_ra_maintenance
    - pcmk_is_set
    - xmlXPathFreeObject
    - pcmk__xe_next
    - pcmk__xpath_num_results
    - controld_get_executor_state
    - pcmk__scan_min_int
    - pcmk__xpath_search
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void remote_ra_process_maintenance_nodes(xmlNode *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: generate_callid
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int generate_callid(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:186,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 193
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 193
    functionName: start_delay_helper
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - controld_get_executor_state
    - mainloop_set_trigger
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean start_delay_helper(gpointer data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - purge
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 255
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 255
    functionName: section_to_delete
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: enum controld_section_e
    signature: 'static enum controld_section_e section_to_delete(bool purge) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1484,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - lrm_state
    argTypes:
    - lrm_state_t*
    constantsTouched: []
    func_position:
      end: 1485
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1485
    functionName: remote_ra_is_in_maintenance
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean remote_ra_is_in_maintenance(lrm_state_t * lrm_state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_remote_ra.c:1491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - lrm_state
    argTypes:
    - lrm_state_t*
    constantsTouched: []
    func_position:
      end: 1492
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1492
    functionName: remote_ra_controlling_guest
    functionSourceFile: /src/pacemaker/daemons/controld/controld_remote_ra.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean remote_ra_controlling_guest(lrm_state_t * lrm_state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__daemon_metadata
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: controld_metadata
    functionSourceFile: /src/pacemaker/daemons/controld/pacemaker-controld.c
    functionUses: []
    functionsReached:
    - pcmk__daemon_metadata
    linkageType: ''
    returnType: int
    signature: 'static int controld_metadata(pcmk__output_t *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/daemons/controld/pacemaker-controld.c
    functionUses: []
    functionsReached:
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:88,1
    - Dst: crm_ipc_new
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:125,1
    - Dst: g_strv_length
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:108,1
    - Dst: crm_ipc_destroy
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:135,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:136,1
    - Dst: crm_ipc_destroy
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:143,1
    - Dst: pcmk__daemon_can_write
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:147,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:150,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:157,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:181,1
    - Dst: crm_log_preinit
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:85,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:82,1
    - Dst: build_arg_context
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:83,1
    - Dst: crm_log_init
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:122,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:123,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:149,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:158,1
    - Dst: pcmk__output_set_log_level
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:169,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:185,1
    - Dst: pcmk__cluster_init_node_caches
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:190,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:81,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:87,1
    - Dst: controld_metadata
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:112,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:115,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:116,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:121,1
    - Dst: crm_ipc_close
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:134,1
    - Dst: g_strfreev
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:172,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:176,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:202,1
    - Dst: s_crmd_fsa
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:191,1
    - Dst: g_main_loop_run
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:200,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:179,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:93,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:96,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:98,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:109,1
    - Dst: pcmk__connect_generic_ipc
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:132,1
    - Dst: pcmk__daemon_can_write
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:155,1
    - Dst: pcmk__log_output_new
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:164,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:173,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:189,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:193,1
    - Dst: crmd_fast_exit
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:195,1
    - Dst: g_main_loop_new
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:199,1
    - Dst: crmd_fast_exit
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:205,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:201,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/pacemaker-controld.c:194,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 100
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 206
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 206
    functionName: main
    functionSourceFile: /src/pacemaker/daemons/controld/pacemaker-controld.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - crm_ipc_destroy
    - crm_ipc_new
    - pcmk__register_formats
    - pcmk__cluster_init_node_caches
    - crm_exit
    - crm_notice
    - crmd_fast_exit
    - pcmk__output_set_log_level
    - pcmk__cli_init_logging
    - crm_log_preinit
    - build_arg_context
    - fsa_state2string
    - pcmk_is_set
    - pcmk_rc_str
    - register_fsa_input
    - pcmk__connect_generic_ipc
    - s_crmd_fsa
    - crm_crit
    - pcmk__cmdline_preproc
    - crm_err
    - crm_ipc_close
    - g_strv_length
    - pcmk__unregister_formats
    - pcmk__output_and_clear_error
    - pcmk__str_eq
    - crm_log_init
    - pcmk__log_output_new
    - crm_info
    - controld_metadata
    - pcmk__output_new
    - g_strfreev
    - g_main_loop_new
    - g_set_error
    - g_main_loop_run
    - pcmk__output_free
    - pcmk__new_common_args
    - pcmk__daemon_can_write
    - pcmk__free_arg_context
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:27,1
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:28,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - action
    argTypes:
    - pcmk__graph_action_t*
    constantsTouched: []
    func_position:
      end: 35
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 35
    functionName: stop_te_timer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_utils.c
    functionUses: []
    functionsReached:
    - crm_trace
    - g_source_remove
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean stop_te_timer(pcmk__graph_action_t *action) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:120,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - fn
    - line
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: controld_trigger_graph_as
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_utils.c
    functionUses: []
    functionsReached:
    - crm_trace
    - mainloop_set_trigger
    linkageType: ''
    returnType: void
    signature: 'void controld_trigger_graph_as(const char *fn, int line) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_add_trigger
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: controld_init_transition_trigger
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_utils.c
    functionUses: []
    functionsReached:
    - mainloop_add_trigger
    linkageType: ''
    returnType: void
    signature: 'void controld_init_transition_trigger(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: abort_timer_popped
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_utils.c
    functionUses: []
    functionsReached:
    - abort_transition
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean abort_timer_popped(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:172,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: free_node_pending_timer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_utils.c
    functionUses: []
    functionsReached:
    - free
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: 'static void free_node_pending_timer(gpointer data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strikey_table
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:217,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:221,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:225,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:227,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:230,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:231,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:238,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:240,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:243,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - node
    - timeout
    argTypes:
    - pcmk__node_status_t*
    - guint
    constantsTouched: []
    func_position:
      end: 244
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 244
    functionName: init_node_pending_timer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_utils.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - g_hash_table_lookup
    - pcmk__strikey_table
    - pcmk__assert_alloc
    - pcmk__str_copy
    - crm_notice
    - pcmk__assert
    - g_hash_table_replace
    - pcmk__create_timer
    linkageType: ''
    returnType: void
    signature: 'static void init_node_pending_timer(const pcmk__node_status_t *node,
      guint timeout) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:265,1
    - Dst: remove_node_pending_timer
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:269,1
    - Dst: remove_node_pending_timer
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:282,1
    - Dst: init_node_pending_timer
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:286,1
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:275,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk__node_status_t*
    constantsTouched: []
    func_position:
      end: 287
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 287
    functionName: controld_node_pending_timer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_utils.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - init_node_pending_timer
    - remove_node_pending_timer
    - time
    linkageType: ''
    returnType: void
    signature: 'void controld_node_pending_timer(const pcmk__node_status_t *node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 1
    argNames:
    - abort_action
    argTypes:
    - enum pcmk__graph_next
    constantsTouched: []
    func_position:
      end: 310
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 310
    functionName: abort2text
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_utils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *abort2text(enum pcmk__graph_next abort_action) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:41,1
    - Dst: pcmk__execute_graph
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:68,1
    - Dst: throttle_get_total_job_limit
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:65,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:47,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:45,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:72,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:76,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:81,1
    - Dst: pcmk__graph_status2text
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:82,1
    - Dst: pcmk__log_graph
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:83,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:87,1
    - Dst: notify_crmd
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:90,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 93
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 93
    functionName: te_graph_trigger
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_utils.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__graph_status2text
    - throttle_get_total_job_limit
    - fsa_state2string
    - notify_crmd
    - pcmk__execute_graph
    - crm_warn
    - pcmk__log_graph
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean te_graph_trigger(gpointer user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:188,1
    - Dst: abort_timer_popped
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:198,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:193,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:201,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - key
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 204
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 204
    functionName: node_pending_timer_popped
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_utils.c
    functionUses: []
    functionsReached:
    - abort_timer_popped
    - crm_warn
    - g_hash_table_remove
    - g_hash_table_lookup
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean node_pending_timer_popped(gpointer key) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - node_uuid
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 254
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 254
    functionName: remove_node_pending_timer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_utils.c
    functionUses: []
    functionsReached:
    - g_hash_table_remove
    linkageType: ''
    returnType: void
    signature: 'static void remove_node_pending_timer(const char *node_uuid) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 298
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 298
    functionName: controld_free_node_pending_timers
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_utils.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: 'void controld_free_node_pending_timers(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:323,1
    - Dst: abort2text
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:334,1
    - Dst: abort2text
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:334,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:326,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:333,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - graph
    - priority
    - action
    - abort_reason
    argTypes:
    - pcmk__graph_t*
    - int
    - enum pcmk__graph_next
    - char*
    constantsTouched: []
    func_position:
      end: 340
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 340
    functionName: update_abort_priority
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_utils.c
    functionUses: []
    functionsReached:
    - crm_debug
    - abort2text
    linkageType: ''
    returnType: bool
    signature: 'static bool update_abort_priority(pcmk__graph_t *graph, int priority,
      enum pcmk__graph_next action, const char *abort_reason) '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:363,1
    - Dst: controld_expect_sched_reply
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:372,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:364,1
    - Dst: xml_patch_versions
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:392,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:394,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:426,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:450,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:457,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:466,1
    - Dst: pcmk__node_name_from_uuid
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:474,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:484,1
    - Dst: trigger_graph
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:506,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:470,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:463,1
    - Dst: controld_stop_transition_timer
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:498,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:353,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:403,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:407,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:413,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:418,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:436,1
    - Dst: strrchr
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:440,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:442,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:447,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:449,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:453,1
    - Dst: controld_start_transition_timer
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:499,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:472,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:474,1
    - Dst: update_abort_priority
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:375,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:385,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:416,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:423,1
    - Dst: g_string_free
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:419,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:422,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:411,1
    - Dst: pcmk__element_xpath
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:410,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:429,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:430,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:467,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:479,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:489,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:501,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:439,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:454,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:455,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:459,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:460,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:476,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:479,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:481,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:489,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:491,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:486,1
    - Dst: controld_get_period_transition_timer
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:497,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 104
    argCount: 6
    argNames:
    - abort_priority
    - abort_action
    - abort_text
    - reason
    - fn
    - line
    argTypes:
    - int
    - enum pcmk__graph_next
    - char*
    - xmlNode*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 507
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 507
    functionName: abort_transition_graph
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_utils.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - pcmk__btoa
    - do_crm_log
    - pcmk__xe_is
    - g_string_free
    - trigger_graph
    - xml_patch_versions
    - pcmk__element_xpath
    - pcmk__s
    - fsa_state2string
    - controld_get_period_transition_timer
    - crm_element_value
    - pcmk__assert
    - register_fsa_input
    - pcmk__xe_id
    - CRM_CHECK
    - strcmp
    - strrchr
    - controld_stop_transition_timer
    - pcmk__str_any_of
    - crm_info
    - controld_start_transition_timer
    - update_abort_priority
    - controld_expect_sched_reply
    - pcmk__node_name_from_uuid
    linkageType: ''
    returnType: void
    signature: 'void abort_transition_graph(int abort_priority, enum pcmk__graph_next
      abort_action, const char *abort_text, const xmlNode *reason, const char *fn,
      int line) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_destroy_trigger
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: controld_destroy_transition_trigger
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_utils.c
    functionUses: []
    functionsReached:
    - mainloop_destroy_trigger
    linkageType: ''
    returnType: void
    signature: 'void controld_destroy_transition_trigger(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:157,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/controld/controld_te_utils.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - abort_priority
    - abort_action
    - abort_text
    - delay_ms
    argTypes:
    - int
    - enum pcmk__graph_next
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: abort_after_delay
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_utils.c
    functionUses: []
    functionsReached:
    - g_source_remove
    - pcmk__create_timer
    linkageType: ''
    returnType: void
    signature: 'void abort_after_delay(int abort_priority, enum pcmk__graph_next abort_action,
      const char *abort_text, guint delay_ms) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: election_init
      Src: /src/pacemaker/daemons/controld/controld_election.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: controld_election_init
    functionSourceFile: /src/pacemaker/daemons/controld/controld_election.c
    functionUses: []
    functionsReached:
    - election_init
    linkageType: ''
    returnType: void
    signature: 'void controld_election_init(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: election_remove
      Src: /src/pacemaker/daemons/controld/controld_election.c:52,1
    - Dst: election_clear_dampening
      Src: /src/pacemaker/daemons/controld/controld_election.c:58,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_election.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - uname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: controld_remove_voter
    functionSourceFile: /src/pacemaker/daemons/controld/controld_election.c
    functionUses: []
    functionsReached:
    - election_clear_dampening
    - pcmk__str_eq
    - election_remove
    linkageType: ''
    returnType: void
    signature: 'void controld_remove_voter(const char *uname) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_election.c:83,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_election.c:91,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_election.c:96,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_election.c:91,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_election.c:83,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_election.c:103,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_election.c:106,1
    - Dst: election_vote
      Src: /src/pacemaker/daemons/controld/controld_election.c:111,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 18
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 113
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 113
    functionName: do_election_vote
    functionSourceFile: /src/pacemaker/daemons/controld/controld_election.c
    functionUses: []
    functionsReached:
    - fsa_state2string
    - election_vote
    - pcmk_is_set
    - register_fsa_input
    - crm_warn
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void do_election_vote(long long action, enum crmd_fsa_cause cause,
      enum crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t
      * msg_data) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fsa_typed_data
      Src: /src/pacemaker/daemons/controld/controld_election.c:136,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_election.c:140,1
    - Dst: election_count_vote
      Src: /src/pacemaker/daemons/controld/controld_election.c:145,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_election.c:139,1
    - Dst: election_reset
      Src: /src/pacemaker/daemons/controld/controld_election.c:149,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_election.c:150,1
    - Dst: update_dc
      Src: /src/pacemaker/daemons/controld/controld_election.c:154,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_election.c:156,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_election.c:159,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_election.c:168,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_election.c:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 170
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 170
    functionName: do_election_count_vote
    functionSourceFile: /src/pacemaker/daemons/controld/controld_election.c
    functionUses: []
    functionsReached:
    - update_dc
    - crm_trace
    - fsa_typed_data
    - election_reset
    - pcmk_is_set
    - election_count_vote
    - register_fsa_input
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void do_election_count_vote(long long action, enum crmd_fsa_cause
      cause, enum crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t
      * msg_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_election.c:215,1
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/daemons/controld/controld_election.c:231,1
    - Dst: dc_takeover_update_attr
      Src: /src/pacemaker/daemons/controld/controld_election.c:236,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_election.c:221,1
    - Dst: pcmk__corosync_cluster_name
      Src: /src/pacemaker/daemons/controld/controld_election.c:233,1
    - Dst: controld_trigger_config
      Src: /src/pacemaker/daemons/controld/controld_election.c:242,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_election.c:210,1
    - Dst: execute_stonith_cleanup
      Src: /src/pacemaker/daemons/controld/controld_election.c:212,1
    - Dst: election_reset
      Src: /src/pacemaker/daemons/controld/controld_election.c:214,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_election.c:220,1
    - Dst: dc_takeover_update_attr
      Src: /src/pacemaker/daemons/controld/controld_election.c:224,1
    - Dst: controld_update_cib
      Src: /src/pacemaker/daemons/controld/controld_election.c:222,1
    - Dst: dc_takeover_update_attr
      Src: /src/pacemaker/daemons/controld/controld_election.c:227,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_election.c:243,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/daemons/controld/controld_election.c:224,1
    - Dst: dc_takeover_update_attr
      Src: /src/pacemaker/daemons/controld/controld_election.c:225,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_election.c:238,1
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/daemons/controld/controld_election.c:206,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_election.c:211,1
    - Dst: pcmk_cluster_layer_text
      Src: /src/pacemaker/daemons/controld/controld_election.c:207,1
    - Dst: pcmk__locate_sbd
      Src: /src/pacemaker/daemons/controld/controld_election.c:208,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 244
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 244
    functionName: do_dc_takeover
    functionSourceFile: /src/pacemaker/daemons/controld/controld_election.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__corosync_cluster_name
    - controld_update_cib
    - pcmk__locate_sbd
    - dc_takeover_update_attr
    - execute_stonith_cleanup
    - pcmk_get_cluster_layer
    - crm_xml_add
    - election_reset
    - pcmk__btoa
    - free
    - pcmk__xml_free
    - crm_info
    - pcmk_cluster_layer_text
    - controld_set_fsa_input_flags
    - controld_trigger_config
    linkageType: ''
    returnType: void
    signature: 'void do_dc_takeover(long long action, enum crmd_fsa_cause cause, enum
      crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_election.c:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: election_win_cb
    functionSourceFile: /src/pacemaker/daemons/controld/controld_election.c
    functionUses: []
    functionsReached:
    - register_fsa_input
    linkageType: ''
    returnType: void
    signature: 'static void election_win_cb(pcmk_cluster_t *cluster) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: election_timeout_stop
      Src: /src/pacemaker/daemons/controld/controld_election.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: controld_stop_current_election_timeout
    functionSourceFile: /src/pacemaker/daemons/controld/controld_election.c
    functionUses: []
    functionsReached:
    - election_timeout_stop
    linkageType: ''
    returnType: void
    signature: 'void controld_stop_current_election_timeout(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: election_check
      Src: /src/pacemaker/daemons/controld/controld_election.c:122,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_election.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 126
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 126
    functionName: do_election_check
    functionSourceFile: /src/pacemaker/daemons/controld/controld_election.c
    functionUses: []
    functionsReached:
    - crm_debug
    - election_check
    linkageType: ''
    returnType: void
    signature: 'void do_election_check(long long action, enum crmd_fsa_cause cause,
      enum crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t
      * msg_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_election.c:178,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_election.c:180,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_election.c:179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: feature_update_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_election.c
    functionUses: []
    functionsReached:
    - crm_notice
    - pcmk_strerror
    - register_fsa_error
    linkageType: ''
    returnType: void
    signature: 'static void feature_update_callback(xmlNode * msg, int call_id, int
      rc, xmlNode * output, void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_election.c:42,1
    - Dst: election_timeout_set_period
      Src: /src/pacemaker/daemons/controld/controld_election.c:46,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/daemons/controld/controld_election.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - options
    argTypes:
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: controld_configure_election
    functionSourceFile: /src/pacemaker/daemons/controld/controld_election.c
    functionUses: []
    functionsReached:
    - election_timeout_set_period
    - pcmk_parse_interval_spec
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: 'void controld_configure_election(GHashTable *options) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_election.c:254,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_election.c:259,1
    - Dst: controld_clear_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_election.c:255,1
    - Dst: controld_expect_sched_reply
      Src: /src/pacemaker/daemons/controld/controld_election.c:256,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_election.c:260,1
    - Dst: controld_get_local_node_status
      Src: /src/pacemaker/daemons/controld/controld_election.c:262,1
    - Dst: pcmk__update_peer_expected
      Src: /src/pacemaker/daemons/controld/controld_election.c:264,1
    - Dst: create_node_state_update
      Src: /src/pacemaker/daemons/controld/controld_election.c:265,1
    - Dst: fsa_cib_anon_update_discard_reply
      Src: /src/pacemaker/daemons/controld/controld_election.c:269,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_election.c:270,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_election.c:275,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_election.c:278,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_election.c:272,1
    - Dst: fsa_action2string
      Src: /src/pacemaker/daemons/controld/controld_election.c:275,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/daemons/controld/controld_election.c:278,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 279
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 279
    functionName: do_dc_release
    functionSourceFile: /src/pacemaker/daemons/controld/controld_election.c
    functionUses: []
    functionsReached:
    - crm_debug
    - fsa_action2string
    - crm_trace
    - controld_clear_fsa_input_flags
    - fsa_cib_anon_update_discard_reply
    - pcmk__btoa
    - controld_expect_sched_reply
    - pcmk_is_set
    - pcmk__xml_free
    - crm_err
    - controld_get_local_node_status
    - register_fsa_input
    - pcmk__update_peer_expected
    - crm_info
    - create_node_state_update
    linkageType: ''
    returnType: void
    signature: 'void do_dc_release(long long action, enum crmd_fsa_cause cause, enum
      crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:972,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_messages.c:985,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:982,1
    - Dst: feature_set_compatible
      Src: /src/pacemaker/daemons/controld/controld_messages.c:981,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_messages.c:989,1
    - Dst: crmd_exit
      Src: /src/pacemaker/daemons/controld/controld_messages.c:990,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 992
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 992
    functionName: verify_feature_set
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - crm_trace
    - crmd_exit
    - feature_set_compatible
    - crm_err
    - crm_element_value
    - controld_set_fsa_input_flags
    linkageType: ''
    returnType: void
    signature: 'static void verify_feature_set(xmlNode *msg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__new_request
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1368,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1376,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1372,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1379,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1375,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1383,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - node_name
    - node_up
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 1385
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1385
    functionName: broadcast_remote_state_message
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - crm_xml_add
    - pcmk__cluster_send_message
    - pcmk__xe_set_bool_attr
    - pcmk__xml_free
    - pcmk__new_request
    - crm_info
    linkageType: ''
    returnType: void
    signature: 'void broadcast_remote_state_message(const char *node_name, bool node_up) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:563,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_messages.c:573,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:578,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_messages.c:568,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:564,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:579,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:581,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/daemons/controld/controld_messages.c:582,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_messages.c:583,1
    - Dst: authorize_version
      Src: /src/pacemaker/daemons/controld/controld_messages.c:587,1
    - Dst: authorize_version
      Src: /src/pacemaker/daemons/controld/controld_messages.c:591,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_messages.c:599,1
    - Dst: qb_ipcs_disconnect
      Src: /src/pacemaker/daemons/controld/controld_messages.c:607,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_messages.c:601,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:605,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:597,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:596,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 33
    argCount: 3
    argNames:
    - client_msg
    - curr_client
    - proxy_session
    argTypes:
    - xmlNode*
    - pcmk__client_t*
    - char*
    constantsTouched: []
    func_position:
      end: 610
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 610
    functionName: controld_authorize_ipc_message
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - qb_ipcs_disconnect
    - pcmk__xe_first_child
    - pcmk__str_empty
    - pcmk__str_eq
    - authorize_version
    - crm_log_xml_trace
    - pcmk__str_copy
    - crm_element_value
    - controld_trigger_fsa
    - crm_warn
    - crm_trace
    linkageType: ''
    returnType: bool
    signature: 'bool controld_authorize_ipc_message(const xmlNode *client_msg, pcmk__client_t
      *curr_client, const char *proxy_session) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_messages.c:791,1
    - Dst: pcmk__cluster_lookup_remote_node
      Src: /src/pacemaker/daemons/controld/controld_messages.c:800,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_messages.c:798,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_messages.c:801,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/daemons/controld/controld_messages.c:796,1
    - Dst: pcmk__update_peer_state
      Src: /src/pacemaker/daemons/controld/controld_messages.c:803,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:807,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/controld/controld_messages.c:809,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_messages.c:811,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 816
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 816
    functionName: handle_remote_state
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - pcmk__update_peer_state
    - CRM_CHECK
    - pcmk__cluster_lookup_remote_node
    - free
    - crm_element_value
    - pcmk__xe_id
    - pcmk__xe_get_bool_attr
    - pcmk__str_update
    linkageType: ''
    returnType: enum crmd_fsa_input
    signature: 'static enum crmd_fsa_input handle_remote_state(const xmlNode *msg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_crm_log_unlikely
      Src: /src/pacemaker/daemons/controld/controld_messages.c:181,1
    - Dst: fsa_input2string
      Src: /src/pacemaker/daemons/controld/controld_messages.c:183,1
    - Dst: fsa_cause2string
      Src: /src/pacemaker/daemons/controld/controld_messages.c:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - log_level
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 187
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 187
    functionName: fsa_dump_queue
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - do_crm_log_unlikely
    - fsa_input2string
    - fsa_cause2string
    linkageType: ''
    returnType: void
    signature: 'void fsa_dump_queue(int log_level) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_messages.c:617,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_messages.c:620,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:619,1
    - Dst: handle_request
      Src: /src/pacemaker/daemons/controld/controld_messages.c:621,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_messages.c:624,1
    - Dst: handle_response
      Src: /src/pacemaker/daemons/controld/controld_messages.c:625,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_messages.c:629,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_messages.c:630,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:631,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - msg
    - cause
    argTypes:
    - xmlNode*
    - enum crmd_fsa_cause
    constantsTouched: []
    func_position:
      end: 633
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 633
    functionName: handle_message
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__s
    - pcmk__str_eq
    - handle_response
    - crm_log_xml_trace
    - handle_request
    - crm_element_value
    - crm_warn
    linkageType: ''
    returnType: enum crmd_fsa_input
    signature: 'static enum crmd_fsa_input handle_message(xmlNode *msg, enum crmd_fsa_cause
      cause) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_messages.c:834,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_messages.c:836,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:835,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_messages.c:839,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_messages.c:840,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_messages.c:841,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_messages.c:845,1
    - Dst: pcmk__new_reply
      Src: /src/pacemaker/daemons/controld/controld_messages.c:847,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_messages.c:848,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 850
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 850
    functionName: create_ping_reply
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__new_reply
    - crm_xml_add
    - fsa_state2string
    - crm_notice
    - pcmk__xml_free
    - crm_element_value
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *create_ping_reply(const xmlNode *msg) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_messages.c:922,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_messages.c:923,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/daemons/controld/controld_messages.c:926,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_messages.c:927,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/controld/controld_messages.c:935,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:939,1
    - Dst: pcmk__search_node_caches
      Src: /src/pacemaker/daemons/controld/controld_messages.c:946,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_messages.c:949,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_messages.c:950,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_messages.c:951,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/daemons/controld/controld_messages.c:952,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_messages.c:959,1
    - Dst: pcmk__new_reply
      Src: /src/pacemaker/daemons/controld/controld_messages.c:958,1
    - Dst: relay_message
      Src: /src/pacemaker/daemons/controld/controld_messages.c:961,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_messages.c:962,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_messages.c:953,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 967
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 967
    functionName: handle_node_info_request
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__new_reply
    - crm_xml_add
    - pcmk__search_node_caches
    - pcmk__xe_set_bool_attr
    - pcmk_is_set
    - pcmk__xml_free
    - crm_element_value
    - relay_message
    - crm_element_value_int
    linkageType: ''
    returnType: enum crmd_fsa_input
    signature: 'static enum crmd_fsa_input handle_node_info_request(const xmlNode
      *msg) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1031,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1042,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1034,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1041,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1038,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1045,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1047,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1052,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - stored_msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1055
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1055
    functionName: handle_shutdown_ack
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - pcmk_is_set
    - controld_set_fsa_input_flags
    - crm_element_value
    - crm_warn
    - crm_info
    - crm_err
    linkageType: ''
    returnType: enum crmd_fsa_input
    signature: 'static enum crmd_fsa_input handle_shutdown_ack(xmlNode *stored_msg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_messages.c:194,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:199,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/controld/controld_messages.c:196,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:198,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - orig
    argTypes:
    - ha_msg_input_t*
    constantsTouched: []
    func_position:
      end: 201
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 201
    functionName: copy_ha_msg_input
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - pcmk__assert_alloc
    - pcmk__xml_copy
    - pcmk__xe_first_child
    linkageType: ''
    returnType: ha_msg_input_t*
    signature: 'ha_msg_input_t *copy_ha_msg_input(ha_msg_input_t * orig) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:645,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_messages.c:656,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:652,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:650,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:647,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:659,1
    - Dst: crm_element_value_ms
      Src: /src/pacemaker/daemons/controld/controld_messages.c:661,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:666,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/daemons/controld/controld_messages.c:669,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:673,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_messages.c:677,1
    - Dst: update_attrd_clear_failures
      Src: /src/pacemaker/daemons/controld/controld_messages.c:684,1
    - Dst: lrm_clear_last_failure
      Src: /src/pacemaker/daemons/controld/controld_messages.c:689,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_messages.c:685,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_messages.c:682,1
    - Dst: controld_cib_delete_last_failure
      Src: /src/pacemaker/daemons/controld/controld_messages.c:687,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/daemons/controld/controld_messages.c:679,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 1
    argNames:
    - stored_msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 692
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 692
    functionName: handle_failcount_op
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__xe_first_child
    - crm_strdup_printf
    - crm_element_value_ms
    - crm_log_xml_warn
    - free
    - crm_element_value
    - lrm_clear_last_failure
    - pcmk__readable_interval
    - pcmk__xe_id
    - controld_cib_delete_last_failure
    - update_attrd_clear_failures
    linkageType: ''
    returnType: enum crmd_fsa_input
    signature: 'static enum crmd_fsa_input handle_failcount_op(xmlNode * stored_msg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_ping_reply
      Src: /src/pacemaker/daemons/controld/controld_messages.c:855,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_messages.c:858,1
    - Dst: relay_message
      Src: /src/pacemaker/daemons/controld/controld_messages.c:857,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 863
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 863
    functionName: handle_ping
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - create_ping_reply
    - relay_message
    - pcmk__xml_free
    linkageType: ''
    returnType: enum crmd_fsa_input
    signature: 'static enum crmd_fsa_input handle_ping(const xmlNode *msg) '
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__search_node_caches
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1074,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1085,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1104,1
    - Dst: throttle_update
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1117,1
    - Dst: trigger_graph
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1122,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1147,1
    - Dst: handle_lrm_delete
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1156,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1158,1
    - Dst: handle_ping
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1168,1
    - Dst: handle_node_info_request
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1171,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1173,1
    - Dst: handle_node_list
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1209,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1178,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1152,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1177,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1189,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1201,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1072,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1065,1
    - Dst: pcmk__update_peer_expected
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1077,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1088,1
    - Dst: register_fsa_input_adv
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1108,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1116,1
    - Dst: handle_shutdown_self_ack
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1095,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1097,1
    - Dst: handle_remote_state
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1114,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1126,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1204,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1170,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1219,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1167,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1091,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1121,1
    - Dst: handle_failcount_op
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1127,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1129,1
    - Dst: register_fsa_input_adv
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1134,1
    - Dst: verify_feature_set
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1145,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1151,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1155,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1161,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1164,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1181,1
    - Dst: st_fail_count_reset
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1198,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1214,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1202,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1184,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1061,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1067,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1071,1
    - Dst: handle_shutdown_request
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1099,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1094,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1112,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1140,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1144,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1146,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1159,1
    - Dst: handle_shutdown_ack
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1215,1
    - Dst: pcmk__cluster_forget_cluster_node
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1192,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1220,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1150,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1187,1
    - Dst: remote_ra_process_maintenance_nodes
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1206,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1208,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1185,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 138
    argCount: 2
    argNames:
    - stored_msg
    - cause
    argTypes:
    - xmlNode*
    - enum crmd_fsa_cause
    constantsTouched: []
    func_position:
      end: 1224
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1224
    functionName: handle_request
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - handle_node_list
    - remote_ra_process_maintenance_nodes
    - crm_notice
    - crm_log_xml_trace
    - trigger_graph
    - handle_ping
    - handle_failcount_op
    - handle_shutdown_ack
    - handle_lrm_delete
    - pcmk__cluster_send_message
    - handle_shutdown_request
    - crm_element_value
    - pcmk__new_request
    - crm_err
    - pcmk__cluster_forget_cluster_node
    - handle_shutdown_self_ack
    - pcmk__search_node_caches
    - strcmp
    - throttle_update
    - st_fail_count_reset
    - crm_warn
    - handle_node_info_request
    - crm_log_xml_err
    - handle_remote_state
    - crm_debug
    - crm_xml_add
    - register_fsa_input_adv
    - verify_feature_set
    - pcmk__xml_free
    - pcmk__update_peer_expected
    - crm_element_value_int
    linkageType: ''
    returnType: enum crmd_fsa_input
    signature: 'static enum crmd_fsa_input handle_request(xmlNode *stored_msg, enum
      crmd_fsa_cause cause) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_messages.c:881,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_messages.c:882,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_messages.c:883,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_messages.c:884,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/daemons/controld/controld_messages.c:886,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_messages.c:888,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_messages.c:889,1
    - Dst: pcmk__new_reply
      Src: /src/pacemaker/daemons/controld/controld_messages.c:893,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_messages.c:894,1
    - Dst: relay_message
      Src: /src/pacemaker/daemons/controld/controld_messages.c:896,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_messages.c:897,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - request
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 902
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 902
    functionName: handle_node_list
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__new_reply
    - crm_xml_add
    - pcmk__xml_free
    - crm_xml_add_ll
    - g_hash_table_iter_init
    - relay_message
    - g_hash_table_iter_next
    linkageType: ''
    returnType: enum crmd_fsa_input
    signature: 'static enum crmd_fsa_input handle_node_list(const xmlNode *request) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:998,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1008,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1006,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1002,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1000,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1015,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1022,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - stored_msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1025
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 1025
    functionName: handle_shutdown_self_ack
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__str_eq
    - pcmk_is_set
    - crm_element_value
    - crm_info
    - crm_err
    linkageType: ''
    returnType: enum crmd_fsa_input
    signature: 'static enum crmd_fsa_input handle_shutdown_self_ack(xmlNode *stored_msg) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_messages.c:263,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_messages.c:266,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/controld/controld_messages.c:269,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_messages.c:271,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - fsa_data
    - a_type
    - caller
    argTypes:
    - fsa_data_t*
    - enum fsa_data_type
    - char*
    constantsTouched: []
    func_position:
      end: 277
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 277
    functionName: fsa_typed_data_adv
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - crm_crit
    - crm_err
    linkageType: ''
    returnType: void*
    signature: 'void *fsa_typed_data_adv(fsa_data_t * fsa_data, enum fsa_data_type
      a_type, const char *caller) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_messages.c:298,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_messages.c:324,1
    - Dst: relay_message
      Src: /src/pacemaker/daemons/controld/controld_messages.c:301,1
    - Dst: handle_message
      Src: /src/pacemaker/daemons/controld/controld_messages.c:306,1
    - Dst: register_fsa_input_later
      Src: /src/pacemaker/daemons/controld/controld_messages.c:318,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 2
    argNames:
    - cause
    - input
    argTypes:
    - enum crmd_fsa_cause
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 326
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 326
    functionName: route_message
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - register_fsa_input_later
    - register_fsa_input
    - handle_message
    - relay_message
    linkageType: ''
    returnType: void
    signature: 'void route_message(enum crmd_fsa_cause cause, xmlNode * input) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1229,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1235,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1231,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1237,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1233,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1240,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1242,1
    - Dst: controld_stop_sched_timer
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1246,1
    - Dst: register_fsa_input_later
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1248,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1251,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1254,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1255,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1260,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1255,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1258,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 1
    argNames:
    - stored_msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1263
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1263
    functionName: handle_response
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - strcmp
    - pcmk__str_eq
    - crm_warn
    - register_fsa_input_later
    - controld_stop_sched_timer
    - crm_element_value
    - crm_log_xml_trace
    - crm_info
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void handle_response(xmlNode *stored_msg) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1300,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1304,1
    - Dst: pcmk__ipc_send_xml
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1310,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1305,1
    - Dst: pcmk__find_client_by_id
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1302,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1312,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1313,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1315,1
    - Dst: process_te_message
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1317,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1319,1
    - Dst: crmd_proxy_send
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1341,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1344,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1326,1
    - Dst: crmd_is_proxy_session
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1340,1
    - Dst: do_lrm_invoke
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1337,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1327,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - msg
    - sys
    - src
    argTypes:
    - xmlNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1346
      start: 1295
    functionDepth: 0
    functionLinenumber: 1295
    functionLinenumberEnd: 1346
    functionName: send_msg_via_ipc
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_element_value
    - pcmk__xe_first_child
    - crm_xml_add
    - pcmk__str_eq
    - crmd_is_proxy_session
    - crmd_proxy_send
    - pcmk__ipc_send_xml
    - do_lrm_invoke
    - crm_info
    - process_te_message
    - pcmk__find_client_by_id
    linkageType: ''
    returnType: void
    signature: 'static void send_msg_via_ipc(xmlNode * msg, const char *sys, const
      char *src) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:382,1
    - Dst: create_ping_reply
      Src: /src/pacemaker/daemons/controld/controld_messages.c:446,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_messages.c:364,1
    - Dst: send_msg_via_ipc
      Src: /src/pacemaker/daemons/controld/controld_messages.c:499,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:466,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_messages.c:507,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:516,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:488,1
    - Dst: pcmk__parse_server
      Src: /src/pacemaker/daemons/controld/controld_messages.c:388,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/daemons/controld/controld_messages.c:411,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:509,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:494,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_messages.c:373,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_messages.c:515,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_messages.c:347,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:352,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:350,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:349,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:351,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:353,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:354,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/daemons/controld/controld_messages.c:356,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_messages.c:362,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:363,1
    - Dst: send_msg_via_ipc
      Src: /src/pacemaker/daemons/controld/controld_messages.c:462,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/controld/controld_messages.c:517,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:461,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_messages.c:371,1
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_messages.c:427,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:365,1
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/daemons/controld/controld_messages.c:387,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:431,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:433,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:434,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/daemons/controld/controld_messages.c:471,1
    - Dst: strcasecmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:400,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:497,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:498,1
    - Dst: pcmk__search_node_caches
      Src: /src/pacemaker/daemons/controld/controld_messages.c:504,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_messages.c:450,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:473,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/controld/controld_messages.c:480,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:487,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:447,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_messages.c:370,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_messages.c:380,1
    - Dst: strcasecmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:398,1
    - Dst: strcasecmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:399,1
    - Dst: strcasecmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:401,1
    - Dst: strcasecmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:402,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:374,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_messages.c:430,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_messages.c:436,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_messages.c:443,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:475,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:459,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_messages.c:474,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_messages.c:477,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:514,1
    - Dst: send_msg_via_ipc
      Src: /src/pacemaker/daemons/controld/controld_messages.c:449,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 136
    argCount: 2
    argNames:
    - msg
    - originated_locally
    argTypes:
    - xmlNode*
    - gboolean
    constantsTouched: []
    func_position:
      end: 519
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 519
    functionName: relay_message
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - pcmk__get_node
    - pcmk__str_empty
    - pcmk__xe_first_child
    - create_ping_reply
    - send_msg_via_ipc
    - crm_log_xml_trace
    - pcmk__s
    - pcmk__cluster_send_message
    - pcmk__parse_server
    - crm_element_value
    - strcasecmp
    - CRM_CHECK
    - pcmk__search_node_caches
    - pcmk__str_eq
    - pcmk__strcase_any_of
    - crm_warn
    - crm_trace
    - controld_is_local_node
    - pcmk_get_cluster_layer
    - pcmk__xml_free
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean relay_message(xmlNode * msg, gboolean originated_locally) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1276,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1285,1
    - Dst: pcmk__ttoa
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1287,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1283,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1284,1
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1287,1
    - Dst: update_attrd
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1288,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - stored_msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1293
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1293
    functionName: handle_shutdown_request
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - pcmk__ttoa
    - update_attrd
    - time
    - fsa_state2string
    - free
    - crm_element_value
    - crm_log_xml_trace
    - crm_info
    linkageType: ''
    returnType: enum crmd_fsa_input
    signature: 'static enum crmd_fsa_input handle_shutdown_request(xmlNode * stored_msg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1354,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_messages.c:1355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - orig
    argTypes:
    - ha_msg_input_t*
    constantsTouched: []
    func_position:
      end: 1356
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1356
    functionName: delete_ha_msg_input
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - free
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'void delete_ha_msg_input(ha_msg_input_t * orig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: register_fsa_input_adv
      Src: /src/pacemaker/daemons/controld/controld_messages.c:43,1
    - Dst: register_fsa_input_adv
      Src: /src/pacemaker/daemons/controld/controld_messages.c:54,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_messages.c:49,1
    - Dst: fsa_dump_actions
      Src: /src/pacemaker/daemons/controld/controld_messages.c:50,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 5
    argNames:
    - cause
    - input
    - cur_data
    - new_data
    - raised_from
    argTypes:
    - enum crmd_fsa_cause
    - enum crmd_fsa_input
    - fsa_data_t*
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 55
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 55
    functionName: register_fsa_error_adv
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - register_fsa_input_adv
    - crm_info
    - fsa_dump_actions
    linkageType: ''
    returnType: void
    signature: 'void register_fsa_error_adv(enum crmd_fsa_cause cause, enum crmd_fsa_input
      input, fsa_data_t * cur_data, void *new_data, const char *raised_from) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_remove
      Src: /src/pacemaker/daemons/controld/controld_messages.c:252,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 255
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 255
    functionName: get_message
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - g_list_remove
    - crm_trace
    linkageType: ''
    returnType: fsa_data_t*
    signature: 'fsa_data_t *get_message(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:526,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_messages.c:532,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/daemons/controld/controld_messages.c:529,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 5
    argNames:
    - message_data
    - field
    - client_name
    - ref
    - uuid
    argTypes:
    - xmlNode*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 539
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 539
    functionName: authorize_version
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - crm_warn
    - pcmk__scan_ll
    - crm_element_value
    linkageType: ''
    returnType: bool
    signature: 'static bool authorize_version(xmlNode *message_data, const char *field,
      const char *client_name, const char *ref, const char *uuid) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_messages.c:717,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_messages.c:732,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_messages.c:754,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:734,1
    - Dst: controld_delete_resource_history
      Src: /src/pacemaker/daemons/controld/controld_messages.c:739,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:758,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_messages.c:767,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:700,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_messages.c:730,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_messages.c:736,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/daemons/controld/controld_messages.c:769,1
    - Dst: controld_ack_event_directly
      Src: /src/pacemaker/daemons/controld/controld_messages.c:772,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/daemons/controld/controld_messages.c:773,1
    - Dst: controld_rc2event
      Src: /src/pacemaker/daemons/controld/controld_messages.c:771,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:698,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_messages.c:702,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_messages.c:729,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:733,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:755,1
    - Dst: pcmk__update_acl_user
      Src: /src/pacemaker/daemons/controld/controld_messages.c:735,1
    - Dst: controld_delete_resource_history
      Src: /src/pacemaker/daemons/controld/controld_messages.c:742,1
    - Dst: crmd_cib_smart_opt
      Src: /src/pacemaker/daemons/controld/controld_messages.c:743,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_messages.c:762,1
    - Dst: lrmd_new_event
      Src: /src/pacemaker/daemons/controld/controld_messages.c:765,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_messages.c:767,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_messages.c:715,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:714,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_messages.c:751,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/controld/controld_messages.c:768,1
    - Dst: controld_trigger_delete_refresh
      Src: /src/pacemaker/daemons/controld/controld_messages.c:774,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 1
    argNames:
    - stored_msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 778
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 778
    functionName: handle_lrm_delete
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - pcmk__update_acl_user
    - controld_delete_resource_history
    - pcmk__xe_first_child
    - lrmd_new_event
    - crmd_cib_smart_opt
    - pcmk__s
    - controld_ack_event_directly
    - controld_rc2event
    - crm_element_value
    - pcmk__xe_id
    - CRM_CHECK
    - pcmk__str_eq
    - strcmp
    - pcmk__str_copy
    - crm_info
    - lrmd_free_event
    - crm_debug
    - pcmk__insert_dup
    - pcmk__strkey_table
    - crm_xml_add
    - controld_trigger_delete_refresh
    linkageType: ''
    returnType: enum crmd_fsa_input
    signature: 'static enum crmd_fsa_input handle_lrm_delete(xmlNode *stored_msg) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:132,1
    - Dst: fsa_cause2string
      Src: /src/pacemaker/daemons/controld/controld_messages.c:143,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_messages.c:164,1
    - Dst: fsa_cause2string
      Src: /src/pacemaker/daemons/controld/controld_messages.c:78,1
    - Dst: controld_set_global_flags
      Src: /src/pacemaker/daemons/controld/controld_messages.c:76,1
    - Dst: controld_set_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_messages.c:86,1
    - Dst: fsa_dump_actions
      Src: /src/pacemaker/daemons/controld/controld_messages.c:87,1
    - Dst: fsa_input2string
      Src: /src/pacemaker/daemons/controld/controld_messages.c:101,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:125,1
    - Dst: lrmd_copy_event
      Src: /src/pacemaker/daemons/controld/controld_messages.c:134,1
    - Dst: crmd_exit
      Src: /src/pacemaker/daemons/controld/controld_messages.c:144,1
    - Dst: g_list_length
      Src: /src/pacemaker/daemons/controld/controld_messages.c:163,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_messages.c:168,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:99,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_messages.c:104,1
    - Dst: copy_ha_msg_input
      Src: /src/pacemaker/daemons/controld/controld_messages.c:127,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:114,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_messages.c:124,1
    - Dst: fsa_cause2string
      Src: /src/pacemaker/daemons/controld/controld_messages.c:133,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/controld/controld_messages.c:142,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/daemons/controld/controld_messages.c:152,1
    - Dst: g_list_append
      Src: /src/pacemaker/daemons/controld/controld_messages.c:155,1
    - Dst: g_list_length
      Src: /src/pacemaker/daemons/controld/controld_messages.c:159,1
    - Dst: g_list_length
      Src: /src/pacemaker/daemons/controld/controld_messages.c:62,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_messages.c:77,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_messages.c:71,1
    - Dst: fsa_dump_queue
      Src: /src/pacemaker/daemons/controld/controld_messages.c:81,1
    - Dst: fsa_cause2string
      Src: /src/pacemaker/daemons/controld/controld_messages.c:101,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_messages.c:123,1
    - Dst: fsa_cause2string
      Src: /src/pacemaker/daemons/controld/controld_messages.c:126,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:158,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 74
    argCount: 6
    argNames:
    - cause
    - input
    - data
    - with_actions
    - prepend
    - raised_from
    argTypes:
    - enum crmd_fsa_cause
    - enum crmd_fsa_input
    - void*
    - uint64_t
    - gboolean
    - char*
    constantsTouched: []
    func_position:
      end: 170
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 170
    functionName: register_fsa_input_adv
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - controld_set_fsa_action_flags
    - lrmd_copy_event
    - fsa_dump_actions
    - fsa_dump_queue
    - controld_set_global_flags
    - g_list_length
    - fsa_input2string
    - controld_trigger_fsa
    - crm_crit
    - crm_err
    - CRM_CHECK
    - g_list_append
    - pcmk__assert_alloc
    - crm_trace
    - crm_debug
    - copy_ha_msg_input
    - crmd_exit
    - g_list_prepend
    - fsa_cause2string
    linkageType: ''
    returnType: void
    signature: 'void register_fsa_input_adv(enum crmd_fsa_cause cause, enum crmd_fsa_input
      input, void *data, uint64_t with_actions, gboolean prepend, const char *raised_from) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:212,1
    - Dst: fsa_cause2string
      Src: /src/pacemaker/daemons/controld/controld_messages.c:212,1
    - Dst: delete_ha_msg_input
      Src: /src/pacemaker/daemons/controld/controld_messages.c:217,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_messages.c:222,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/daemons/controld/controld_messages.c:227,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_messages.c:232,1
    - Dst: fsa_cause2string
      Src: /src/pacemaker/daemons/controld/controld_messages.c:233,1
    - Dst: crmd_exit
      Src: /src/pacemaker/daemons/controld/controld_messages.c:234,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_messages.c:238,1
    - Dst: fsa_cause2string
      Src: /src/pacemaker/daemons/controld/controld_messages.c:238,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_messages.c:241,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 1
    argNames:
    - fsa_data
    argTypes:
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 242
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 242
    functionName: delete_fsa_input
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - delete_ha_msg_input
    - crmd_exit
    - pcmk__xml_free
    - crm_err
    - free
    - lrmd_free_event
    - crm_trace
    - fsa_cause2string
    linkageType: ''
    returnType: void
    signature: 'void delete_fsa_input(fsa_data_t * fsa_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsa_typed_data
      Src: /src/pacemaker/daemons/controld/controld_messages.c:286,1
    - Dst: route_message
      Src: /src/pacemaker/daemons/controld/controld_messages.c:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 289
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 289
    functionName: do_msg_route
    functionSourceFile: /src/pacemaker/daemons/controld/controld_messages.c
    functionUses: []
    functionsReached:
    - route_message
    - fsa_typed_data
    linkageType: ''
    returnType: void
    signature: 'void do_msg_route(long long action, enum crmd_fsa_cause cause, enum
      crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: throttle_check_thresholds
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - load
    - desc
    - cores
    argTypes:
    - float
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 119
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 119
    functionName: throttle_handle_load
    functionSourceFile: /src/pacemaker/daemons/controld/controld_throttle.c
    functionUses: []
    functionsReached:
    - throttle_check_thresholds
    linkageType: ''
    returnType: enum throttle_state_e
    signature: 'static enum throttle_state_e throttle_handle_load(float load, const
      char *desc, int cores) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:79,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:91,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:95,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:87,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - load
    - desc
    - thresholds
    argTypes:
    - float
    - char*
    - float
    constantsTouched: []
    func_position:
      end: 97
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 97
    functionName: throttle_check_thresholds
    functionSourceFile: /src/pacemaker/daemons/controld/controld_throttle.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_notice
    - crm_info
    - crm_trace
    linkageType: ''
    returnType: enum throttle_state_e
    signature: 'static enum throttle_state_e throttle_check_thresholds(float load,
      const char *desc, const float thresholds[4]) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:186,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:192,1
    - Dst: load2str
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:187,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:190,1
    - Dst: load2str
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:187,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:193,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:195,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - mode
    argTypes:
    - enum throttle_state_e
    constantsTouched: []
    func_position:
      end: 198
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 198
    functionName: throttle_send_command
    functionSourceFile: /src/pacemaker/daemons/controld/controld_throttle.c
    functionUses: []
    functionsReached:
    - pcmk__cluster_send_message
    - pcmk__xml_free
    - crm_xml_add_int
    - pcmk__new_request
    - crm_info
    - load2str
    linkageType: ''
    returnType: void
    signature: 'static void throttle_send_command(enum throttle_state_e mode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:211,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: throttle_record_free
    functionSourceFile: /src/pacemaker/daemons/controld/controld_throttle.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void throttle_record_free(gpointer p) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__env_option
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:234,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:242,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:237,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:240,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:248,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:248,1
    - Dst: pcmk__procfs_num_cores
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:255,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - preference
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 257
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 257
    functionName: throttle_update_job_max
    functionSourceFile: /src/pacemaker/daemons/controld/controld_throttle.c
    functionUses: []
    functionsReached:
    - CRM_LOG_ASSERT
    - pcmk__env_option
    - pcmk__scan_ll
    - pcmk__procfs_num_cores
    - pcmk_rc_str
    - crm_warn
    linkageType: ''
    returnType: void
    signature: 'static void throttle_update_job_max(const char *preference) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:280,1
    - Dst: throttle_set_load_target
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:283,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:286,1
    - Dst: throttle_update_job_max
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:287,1
    - Dst: strtof
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - options
    argTypes:
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 288
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 288
    functionName: controld_configure_throttle
    functionSourceFile: /src/pacemaker/daemons/controld/controld_throttle.c
    functionUses: []
    functionsReached:
    - throttle_set_load_target
    - strtof
    - throttle_update_job_max
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: 'void controld_configure_throttle(GHashTable *options) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cluster_num_active_nodes
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:309,1
    - Dst: QB_MAX
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:319,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:312,1
    - Dst: QB_MAX
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:325,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:314,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:335,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:338,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 1
    argNames:
    - l
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 341
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 341
    functionName: throttle_get_total_job_limit
    functionSourceFile: /src/pacemaker/daemons/controld/controld_throttle.c
    functionUses: []
    functionsReached:
    - pcmk__cluster_num_active_nodes
    - QB_MAX
    - g_hash_table_iter_init
    - crm_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: int
    signature: 'int throttle_get_total_job_limit(int l) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__procfs_num_cores
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:126,1
    - Dst: pcmk__throttle_cib_load
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:130,1
    - Dst: throttle_handle_load
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:169,1
    - Dst: throttle_check_thresholds
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:156,1
    - Dst: pcmk__throttle_load_avg
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:166,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:173,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 177
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 177
    functionName: throttle_mode
    functionSourceFile: /src/pacemaker/daemons/controld/controld_throttle.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__throttle_cib_load
    - throttle_handle_load
    - throttle_check_thresholds
    - pcmk__procfs_num_cores
    - pcmk__throttle_load_avg
    linkageType: ''
    returnType: enum throttle_state_e
    signature: 'static enum throttle_state_e throttle_mode(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: throttle_send_command
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:203,1
    - Dst: throttle_mode
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: throttle_timer_cb
    functionSourceFile: /src/pacemaker/daemons/controld/controld_throttle.c
    functionUses: []
    functionsReached:
    - throttle_send_command
    - throttle_mode
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean throttle_timer_cb(gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - float
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: throttle_set_load_target
    functionSourceFile: /src/pacemaker/daemons/controld/controld_throttle.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void throttle_set_load_target(float target) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:263,1
    - Dst: mainloop_timer_add
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:264,1
    - Dst: throttle_update_job_max
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:267,1
    - Dst: mainloop_timer_start
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 269
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 269
    functionName: throttle_init
    functionSourceFile: /src/pacemaker/daemons/controld/controld_throttle.c
    functionUses: []
    functionsReached:
    - mainloop_timer_start
    - pcmk__strkey_table
    - mainloop_timer_add
    - throttle_update_job_max
    linkageType: ''
    returnType: void
    signature: 'void throttle_init(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_timer_del
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:294,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 301
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 301
    functionName: throttle_fini
    functionSourceFile: /src/pacemaker/daemons/controld/controld_throttle.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - mainloop_timer_del
    linkageType: ''
    returnType: void
    signature: 'void throttle_fini(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:349,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:352,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:357,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:351,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:355,1
    - Dst: QB_MAX
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:366,1
    - Dst: QB_MAX
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:369,1
    - Dst: QB_MAX
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:372,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:375,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 1
    argNames:
    - node
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 379
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 379
    functionName: throttle_get_job_limit
    functionSourceFile: /src/pacemaker/daemons/controld/controld_throttle.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - pcmk__assert_alloc
    - pcmk__str_copy
    - crm_err
    - QB_MAX
    - g_hash_table_insert
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int throttle_get_job_limit(const char *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:387,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:390,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:389,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:392,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:395,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:396,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:397,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:403,1
    - Dst: load2str
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:404,1
    - Dst: throttle_get_job_limit
      Src: /src/pacemaker/daemons/controld/controld_throttle.c:405,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 406
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 406
    functionName: throttle_update
    functionSourceFile: /src/pacemaker/daemons/controld/controld_throttle.c
    functionUses: []
    functionsReached:
    - crm_debug
    - throttle_get_job_limit
    - g_hash_table_lookup
    - pcmk__assert_alloc
    - pcmk__str_copy
    - crm_element_value
    - g_hash_table_insert
    - load2str
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'void throttle_update(xmlNode *xml) '
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - enum throttle_state_e
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: load2str
    functionSourceFile: /src/pacemaker/daemons/controld/controld_throttle.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *load2str(enum throttle_state_e mode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__free_alerts
      Src: /src/pacemaker/daemons/controld/controld_alerts.c:28,1
    - Dst: pcmk__unpack_alerts
      Src: /src/pacemaker/daemons/controld/controld_alerts.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - alerts
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: crmd_unpack_alerts
    functionSourceFile: /src/pacemaker/daemons/controld/controld_alerts.c
    functionUses: []
    functionsReached:
    - pcmk__free_alerts
    - pcmk__unpack_alerts
    linkageType: ''
    returnType: void
    signature: 'void crmd_unpack_alerts(xmlNode *alerts) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_alerts.c:60,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_alerts.c:68,1
    - Dst: stonith__event_description
      Src: /src/pacemaker/daemons/controld/controld_alerts.c:65,1
    - Dst: lrmd_send_fencing_alert
      Src: /src/pacemaker/daemons/controld/controld_alerts.c:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - e
    argTypes:
    - stonith_event_t*
    constantsTouched: []
    func_position:
      end: 69
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 69
    functionName: crmd_alert_fencing_op
    functionSourceFile: /src/pacemaker/daemons/controld/controld_alerts.c
    functionUses: []
    functionsReached:
    - lrmd_send_fencing_alert
    - free
    - controld_get_executor_state
    - stonith__event_description
    linkageType: ''
    returnType: void
    signature: 'void crmd_alert_fencing_op(stonith_event_t * e) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_alerts.c:41,1
    - Dst: lrmd_send_node_alert
      Src: /src/pacemaker/daemons/controld/controld_alerts.c:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - node
    argTypes:
    - pcmk__node_status_t*
    constantsTouched: []
    func_position:
      end: 48
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 48
    functionName: crmd_alert_node_event
    functionSourceFile: /src/pacemaker/daemons/controld/controld_alerts.c
    functionUses: []
    functionsReached:
    - lrmd_send_node_alert
    - controld_get_executor_state
    linkageType: ''
    returnType: void
    signature: 'void crmd_alert_node_event(pcmk__node_status_t *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_alerts.c:80,1
    - Dst: lrmd_send_resource_alert
      Src: /src/pacemaker/daemons/controld/controld_alerts.c:85,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - node
    - op
    argTypes:
    - char*
    - lrmd_event_data_t*
    constantsTouched: []
    func_position:
      end: 87
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 87
    functionName: crmd_alert_resource_op
    functionSourceFile: /src/pacemaker/daemons/controld/controld_alerts.c
    functionUses: []
    functionsReached:
    - lrmd_send_resource_alert
    - controld_get_executor_state
    linkageType: ''
    returnType: void
    signature: 'void crmd_alert_resource_op(const char *node, lrmd_event_data_t *
      op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_execd.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - rsc
    - call_id
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: make_stop_id
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'static char *make_stop_id(const char *rsc, int call_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lrmd_free_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:121,1
    - Dst: g_list_free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - history
    argTypes:
    - rsc_history_t*
    constantsTouched: []
    func_position:
      end: 125
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 125
    functionName: history_free_recurring_ops
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - lrmd_free_event
    - g_list_free
    linkageType: ''
    returnType: void
    signature: 'static void history_free_recurring_ops(rsc_history_t *history) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_execd.c:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - lrmd_event_data_t*
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: op_node_name
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - pcmk__s
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *op_node_name(lrmd_event_data_t *op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:667,1
    - Dst: construct_op
      Src: /src/pacemaker/daemons/controld/controld_execd.c:673,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:668,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:670,1
    - Dst: controld_rc2event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:674,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/daemons/controld/controld_execd.c:674,1
    - Dst: controld_ack_event_directly
      Src: /src/pacemaker/daemons/controld/controld_execd.c:675,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:676,1
    - Dst: controld_trigger_delete_refresh
      Src: /src/pacemaker/daemons/controld/controld_execd.c:677,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 4
    argNames:
    - lrm_state
    - input
    - rsc_id
    - rc
    argTypes:
    - lrm_state_t*
    - ha_msg_input_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 678
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 678
    functionName: notify_deleted
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - construct_op
    - crm_element_value
    - controld_ack_event_directly
    - controld_rc2event
    - controld_trigger_delete_refresh
    - crm_info
    - lrmd_free_event
    - pcmk_legacy2rc
    linkageType: ''
    returnType: void
    signature: 'static void notify_deleted(lrm_state_t * lrm_state, ha_msg_input_t
      * input, const char *rsc_id, int rc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:863,1
    - Dst: cancel_op
      Src: /src/pacemaker/daemons/controld/controld_execd.c:865,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 868
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 868
    functionName: cancel_action_by_key
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - cancel_op
    - pcmk__str_eq
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean cancel_action_by_key(gpointer key, gpointer value,
      gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1221,1
    - Dst: force_reprobe
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1222,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1228,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1225,1
    - Dst: pcmk__new_reply
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1226,1
    - Dst: relay_message
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1230,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1231,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1233,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 7
    argNames:
    - lrm_state
    - msg
    - from_sys
    - from_host
    - user_name
    - is_remote_node
    - reprobe_all_nodes
    argTypes:
    - lrm_state_t*
    - xmlNode*
    - char*
    - char*
    - char*
    - gboolean
    - bool
    constantsTouched: []
    func_position:
      end: 1235
      start: 1216
    functionDepth: 0
    functionLinenumber: 1216
    functionLinenumberEnd: 1235
    functionName: handle_reprobe_op
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - pcmk__new_reply
    - crm_debug
    - pcmk__strcase_any_of
    - crm_notice
    - pcmk__xml_free
    - crm_log_xml_err
    - relay_message
    - force_reprobe
    linkageType: ''
    returnType: void
    signature: 'static void handle_reprobe_op(lrm_state_t *lrm_state, xmlNode *msg,
      const char *from_sys, const char *from_host, const char *user_name, gboolean
      is_remote_node, bool reprobe_all_nodes) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1348,1
    - Dst: lrmd_copy_rsc_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1350,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1349,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 2
    argNames:
    - rsc
    - input_xml
    argTypes:
    - lrmd_rsc_info_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1352
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1352
    functionName: new_metadata_cb_data
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - pcmk__assert_alloc
    - pcmk__xml_copy
    - lrmd_copy_rsc_info
    linkageType: ''
    returnType: struct metadata_cb_data*
    signature: 'static struct metadata_cb_data *new_metadata_cb_data(lrmd_rsc_info_t
      *rsc, xmlNode *input_xml) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1377,1
    - Dst: controld_cache_metadata
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1380,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1379,1
    - Dst: lrm_op_target
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1377,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1383,1
    - Dst: do_lrm_rsc_op
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1384,1
    - Dst: free_metadata_cb_data
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1386,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 3
    argNames:
    - pid
    - result
    - user_data
    argTypes:
    - int
    - pcmk__action_result_t*
    - void*
    constantsTouched: []
    func_position:
      end: 1387
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1387
    functionName: metadata_complete
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - controld_cache_metadata
    - pcmk__result_ok
    - free_metadata_cb_data
    - pcmk_is_set
    - do_lrm_rsc_op
    - controld_get_executor_state
    - lrm_op_target
    linkageType: ''
    returnType: void
    signature: 'static void metadata_complete(int pid, const pcmk__action_result_t
      *result, void *user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/pacemaker/daemons/controld/controld_execd.c:67,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/daemons/controld/controld_execd.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: copy_instance_keys
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - pcmk__insert_dup
    - strstr
    linkageType: ''
    returnType: void
    signature: 'static void copy_instance_keys(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:283,1
    - Dst: lrm_connection_destroy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:290,1
    - Dst: op_node_name
      Src: /src/pacemaker/daemons/controld/controld_execd.c:297,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_execd.c:299,1
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_execd.c:297,1
    - Dst: process_lrm_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:300,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - lrmd_event_data_t*
    constantsTouched: []
    func_position:
      end: 307
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 307
    functionName: lrm_op_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - lrm_connection_destroy
    - process_lrm_event
    - op_node_name
    - pcmk__assert
    - controld_get_executor_state
    linkageType: ''
    returnType: void
    signature: 'void lrm_op_callback(lrmd_event_data_t * op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:686,1
    - Dst: notify_deleted
      Src: /src/pacemaker/daemons/controld/controld_execd.c:687,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 691
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 691
    functionName: lrm_remove_deleted_rsc
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - notify_deleted
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean lrm_remove_deleted_rsc(gpointer key, gpointer value,
      gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:876,1
    - Dst: g_hash_table_foreach_remove
      Src: /src/pacemaker/daemons/controld/controld_execd.c:885,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/controld/controld_execd.c:888,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:887,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:877,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - lrm_state
    - rsc
    - key
    - remove
    argTypes:
    - lrm_state_t*
    - lrmd_rsc_info_t*
    - char*
    - gboolean
    constantsTouched: []
    func_position:
      end: 890
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 890
    functionName: cancel_op_key
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach_remove
    - CRM_CHECK
    - crm_trace
    - g_hash_table_size
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean cancel_op_key(lrm_state_t * lrm_state, lrmd_rsc_info_t
      * rsc, const char *key, gboolean remove) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1247,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1253,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1252,1
    - Dst: crm_element_value_ms
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1258,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1264,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1272,1
    - Dst: cancel_op_key
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1275,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1268,1
    - Dst: cancel_op
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1279,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1298,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1250,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1254,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1259,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1262,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1266,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1267,1
    - Dst: make_stop_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1284,1
    - Dst: is_remote_lrmd_ra
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1286,1
    - Dst: controld_delete_action_history_by_key
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1289,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1296,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1270,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1255,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1257,1
    - Dst: is_remote_lrmd_ra
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1283,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1287,1
    - Dst: send_task_ok_ack
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1291,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1301,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 5
    argNames:
    - input
    - lrm_state
    - rsc
    - from_host
    - from_sys
    argTypes:
    - ha_msg_input_t*
    - lrm_state_t*
    - lrmd_rsc_info_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1303
      start: 1237
    functionDepth: 0
    functionLinenumber: 1237
    functionLinenumberEnd: 1303
    functionName: do_lrm_cancel
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - cancel_op_key
    - CRM_CHECK
    - controld_delete_action_history_by_key
    - pcmk__xe_first_child
    - crm_element_value_ms
    - cancel_op
    - g_hash_table_remove
    - crm_info
    - free
    - crm_meta_name
    - is_remote_lrmd_ra
    - crm_element_value
    - send_task_ok_ack
    - pcmk__op_key
    - pcmk__scan_min_int
    - make_stop_id
    linkageType: ''
    returnType: bool
    signature: 'static bool do_lrm_cancel(ha_msg_input_t *input, lrm_state_t *lrm_state,
      lrmd_rsc_info_t *rsc, const char *from_host, const char *from_sys) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lrmd_free_rsc_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1357,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1358,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct metadata_cb_data*
    constantsTouched: []
    func_position:
      end: 1360
      start: 1354
    functionDepth: 0
    functionLinenumber: 1354
    functionLinenumberEnd: 1360
    functionName: free_metadata_cb_data
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - free
    - pcmk__xml_free
    - lrmd_free_rsc_info
    linkageType: ''
    returnType: void
    signature: 'static void free_metadata_cb_data(struct metadata_cb_data *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1819,1
    - Dst: cancel_op
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1821,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 1825
      start: 1811
    functionDepth: 0
    functionLinenumber: 1811
    functionLinenumberEnd: 1825
    functionName: stop_recurring_actions
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - crm_info
    - cancel_op
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean stop_recurring_actions(gpointer key, gpointer value,
      gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2059,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2067,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2060,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2071
      start: 2048
    functionDepth: 0
    functionLinenumber: 2048
    functionLinenumberEnd: 2071
    functionName: unescape_newlines
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - strstr
    linkageType: ''
    returnType: char*
    signature: 'static char *unescape_newlines(const char *string) '
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2215,1
    - Dst: unescape_newlines
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2379,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2404,1
    - Dst: did_lrm_rsc_op_fail
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2328,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2382,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2368,1
    - Dst: controld_delete_action_history
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2319,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2189,1
    - Dst: lrm_state_get_rsc_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2212,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2218,1
    - Dst: lrmd_new_rsc_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2226,1
    - Dst: controld_action_is_recordable
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2269,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2237,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2220,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2282,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2311,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2314,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2338,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2290,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2223,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2397,1
    - Dst: controld_ack_event_directly
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2350,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2366,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2375,1
    - Dst: crmd_alert_resource_op
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2377,1
    - Dst: controld_cache_metadata
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2381,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2387,1
    - Dst: delete_rsc_entry
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2389,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2403,1
    - Dst: lrmd_free_rsc_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2402,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2360,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2188,1
    - Dst: lrmd__set_result
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2199,1
    - Dst: lrmd__set_result
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2195,1
    - Dst: compare_version
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2192,1
    - Dst: make_stop_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2207,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2208,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2219,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2228,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2243,1
    - Dst: controld_update_resource_history
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2274,1
    - Dst: log_executor_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2372,1
    - Dst: update_history_cache
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2399,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 121
    argCount: 4
    argNames:
    - lrm_state
    - op
    - pending
    - action_xml
    argTypes:
    - lrm_state_t*
    - lrmd_event_data_t*
    - active_op_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2405
      start: 2175
    functionDepth: 0
    functionLinenumber: 2175
    functionLinenumberEnd: 2405
    functionName: process_lrm_event
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - log_executor_event
    - update_history_cache
    - pcmk__xe_first_child
    - unescape_newlines
    - delete_rsc_entry
    - controld_delete_action_history
    - crm_notice
    - free
    - lrmd__set_result
    - lrmd_new_rsc_info
    - lrm_state_get_rsc_info
    - controld_cache_metadata
    - g_hash_table_lookup
    - lrmd_free_rsc_info
    - pcmk_is_set
    - controld_ack_event_directly
    - crm_element_value
    - controld_trigger_fsa
    - pcmk__op_key
    - crm_err
    - CRM_CHECK
    - controld_action_is_recordable
    - compare_version
    - pcmk__str_eq
    - make_stop_id
    - crm_info
    - crm_trace
    - g_hash_table_size
    - crm_debug
    - controld_update_resource_history
    - did_lrm_rsc_op_fail
    - crmd_alert_resource_op
    - g_hash_table_remove
    linkageType: ''
    returnType: void
    signature: 'void process_lrm_event(lrm_state_t *lrm_state, lrmd_event_data_t *op,
      active_op_t *pending, const xmlNode *action_xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:98,1
    - Dst: g_list_delete_link
      Src: /src/pacemaker/daemons/controld/controld_execd.c:101,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:99,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:102,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - history
    - op
    argTypes:
    - rsc_history_t*
    - lrmd_event_data_t*
    constantsTouched: []
    func_position:
      end: 107
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 107
    functionName: history_remove_recurring_op
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - lrmd_free_event
    - pcmk__str_eq
    - g_list_delete_link
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean history_remove_recurring_op(rsc_history_t *history,
      const lrmd_event_data_t *op) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_execd.c:408,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/controld/controld_execd.c:416,1
    - Dst: lrm_state_is_connected
      Src: /src/pacemaker/daemons/controld/controld_execd.c:412,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_execd.c:426,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_execd.c:456,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/controld/controld_execd.c:436,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_execd.c:441,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_execd.c:439,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_execd.c:463,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_execd.c:478,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/controld/controld_execd.c:420,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_execd.c:425,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:470,1
    - Dst: g_hash_table_foreach_remove
      Src: /src/pacemaker/daemons/controld/controld_execd.c:413,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_execd.c:462,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_execd.c:477,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_execd.c:480,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd.c:402,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_execd.c:419,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/controld/controld_execd.c:435,1
    - Dst: is_rsc_active
      Src: /src/pacemaker/daemons/controld/controld_execd.c:464,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/controld/controld_execd.c:443,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_execd.c:442,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:472,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:479,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:489,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 70
    argCount: 3
    argNames:
    - lrm_state
    - cur_state
    - log_level
    argTypes:
    - lrm_state_t*
    - enum crmd_fsa_state
    - int
    constantsTouched: []
    func_position:
      end: 494
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 494
    functionName: lrm_state_verify_stopped
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - lrm_state_is_connected
    - pcmk__plural_s
    - g_hash_table_iter_next
    - is_rsc_active
    - g_hash_table_foreach_remove
    - pcmk__str_eq
    - do_crm_log
    - crm_notice
    - pcmk_is_set
    - crm_err
    - crm_info
    - g_hash_table_iter_init
    - crm_trace
    - g_hash_table_size
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean lrm_state_verify_stopped(lrm_state_t * lrm_state,
      enum crmd_fsa_state cur_state, int log_level) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1009,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - lrm_state
    - rsc_id
    argTypes:
    - lrm_state_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1023
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1023
    functionName: get_fake_call_id
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    linkageType: ''
    returnType: int
    signature: 'static int get_fake_call_id(lrm_state_t *lrm_state, const char *rsc_id) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lrm_state_get_list
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1772,1
    - Dst: g_list_free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1785,1
    - Dst: lrm_state_verify_stopped
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1778,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1784,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - cur_state
    - log_level
    argTypes:
    - enum crmd_fsa_state
    - int
    constantsTouched: []
    func_position:
      end: 1787
      start: 1768
    functionDepth: 0
    functionLinenumber: 1768
    functionLinenumberEnd: 1787
    functionName: verify_stopped
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - lrm_state_get_list
    - lrm_state_verify_stopped
    - g_list_free
    - controld_set_fsa_input_flags
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean verify_stopped(enum crmd_fsa_state cur_state, int log_level) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_execd.c:51,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_execd.c:53,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/controld/controld_execd.c:52,1
    - Dst: controld_clear_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_execd.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: lrm_connection_destroy
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - register_fsa_input
    - pcmk_is_set
    - crm_crit
    - controld_clear_fsa_input_flags
    linkageType: ''
    returnType: void
    signature: 'static void lrm_connection_destroy(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_execd.c:501,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:514,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:506,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:509,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 2
    argNames:
    - lrm_state
    - rsc_id
    argTypes:
    - lrm_state_t*
    - char*
    constantsTouched: []
    func_position:
      end: 529
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 529
    functionName: is_rsc_active
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - crm_trace
    - g_hash_table_lookup
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean is_rsc_active(lrm_state_t * lrm_state, const char
      *rsc_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_fake_call_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1029,1
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1030,1
    - Dst: lrmd__set_result
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1032,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 5
    argNames:
    - lrm_state
    - op
    - op_status
    - op_exitcode
    - exit_reason
    argTypes:
    - lrm_state_t*
    - lrmd_event_data_t*
    - int
    - enum ocf_exitcode
    - char*
    constantsTouched: []
    func_position:
      end: 1033
      start: 1025
    functionDepth: 0
    functionLinenumber: 1025
    functionLinenumberEnd: 1033
    functionName: fake_op_status
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - lrmd__set_result
    - time
    - get_fake_call_id
    linkageType: ''
    returnType: void
    signature: 'static void fake_op_status(lrm_state_t *lrm_state, lrmd_event_data_t
      *op, int op_status, enum ocf_exitcode op_exitcode, const char *exit_reason) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/pacemaker/daemons/controld/controld_execd.c:75,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/daemons/controld/controld_execd.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: copy_meta_keys
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - pcmk__insert_dup
    - strstr
    linkageType: ''
    returnType: void
    signature: 'static void copy_meta_keys(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct_op
      Src: /src/pacemaker/daemons/controld/controld_execd.c:266,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:270,1
    - Dst: lrmd__set_result
      Src: /src/pacemaker/daemons/controld/controld_execd.c:268,1
    - Dst: controld_ack_event_directly
      Src: /src/pacemaker/daemons/controld/controld_execd.c:269,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 5
    argCount: 7
    argNames:
    - lrm_state
    - input
    - rsc_id
    - rsc
    - task
    - ack_host
    - ack_sys
    argTypes:
    - lrm_state_t*
    - ha_msg_input_t*
    - char*
    - lrmd_rsc_info_t*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 271
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 271
    functionName: send_task_ok_ack
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - construct_op
    - controld_ack_event_directly
    - lrmd__set_result
    - lrmd_free_event
    linkageType: ''
    returnType: void
    signature: 'static void send_task_ok_ack(const lrm_state_t *lrm_state, const ha_msg_input_t
      *input, const char *rsc_id, const lrmd_rsc_info_t *rsc, const char *task, const
      char *ack_host, const char *ack_sys) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_execd.c:537,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_execd.c:544,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_execd.c:543,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_execd.c:538,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_execd.c:541,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_execd.c:545,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_execd.c:546,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_execd.c:550,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:554,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_execd.c:555,1
    - Dst: controld_add_resource_history_xml
      Src: /src/pacemaker/daemons/controld/controld_execd.c:558,1
    - Dst: controld_add_resource_history_xml
      Src: /src/pacemaker/daemons/controld/controld_execd.c:560,1
    - Dst: controld_add_resource_history_xml
      Src: /src/pacemaker/daemons/controld/controld_execd.c:563,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 2
    argNames:
    - lrm_state
    - rsc_list
    argTypes:
    - lrm_state_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 569
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 569
    functionName: build_active_RAs
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - g_hash_table_lookup
    - crm_xml_add
    - controld_add_resource_history_xml
    - g_hash_table_iter_init
    - crm_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean build_active_RAs(lrm_state_t * lrm_state, xmlNode
      * rsc_list) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_execd.c:774,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:784,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_execd.c:780,1
    - Dst: last_failed_matches_op
      Src: /src/pacemaker/daemons/controld/controld_execd.c:783,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 4
    argNames:
    - rsc_id
    - node_name
    - operation
    - interval_ms
    argTypes:
    - char*
    - char*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 788
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 788
    functionName: lrm_clear_last_failure
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - last_failed_matches_op
    - controld_get_executor_state
    - lrmd_free_event
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: 'void lrm_clear_last_failure(const char *rsc_id, const char *node_name,
      const char *operation, guint interval_ms) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2130,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2136,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2136,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2141,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2141,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2149,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2159,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2156,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2166,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2171,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2111,1
    - Dst: g_string_append
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2152,1
    - Dst: g_string_free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2160,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2125,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2113,1
    - Dst: pcmk__readable_action
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2115,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2119,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2125,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2129,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2131,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2153,1
    - Dst: crm_log_output
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2170,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 40
    argCount: 4
    argNames:
    - op
    - op_key
    - node_name
    - confirmed
    argTypes:
    - lrmd_event_data_t*
    - char*
    - char*
    - gboolean
    constantsTouched: []
    func_position:
      end: 2173
      start: 2106
    functionDepth: 0
    functionLinenumber: 2106
    functionLinenumberEnd: 2173
    functionName: log_executor_event
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - pcmk__readable_action
    - pcmk_exec_status_str
    - crm_exit_str
    - g_string_append
    - crm_strdup_printf
    - g_string_append_printf
    - do_crm_log
    - g_string_sized_new
    - crm_log_output
    - free
    - g_string_free
    - pcmk__readable_interval
    - pcmk__g_strcat
    linkageType: ''
    returnType: void
    signature: 'static void log_executor_event(const lrmd_event_data_t *op, const
      char *op_key, const char *node_name, gboolean confirmed) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_execd.c:579,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:582,1
    - Dst: create_node_state_update
      Src: /src/pacemaker/daemons/controld/controld_execd.c:589,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:587,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_execd.c:586,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_execd.c:597,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_execd.c:598,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_execd.c:599,1
    - Dst: build_active_RAs
      Src: /src/pacemaker/daemons/controld/controld_execd.c:602,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:604,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 607
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 607
    functionName: controld_query_executor_state
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - CRM_CHECK
    - pcmk__get_node
    - build_active_RAs
    - crm_xml_add
    - crm_log_xml_trace
    - controld_get_executor_state
    - crm_err
    - create_node_state_update
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *controld_query_executor_state(void) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:167,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_execd.c:173,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:176,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:181,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:185,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:208,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/daemons/controld/controld_execd.c:218,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:223,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/daemons/controld/controld_execd.c:227,1
    - Dst: lrmd_copy_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:237,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd.c:171,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:180,1
    - Dst: did_rsc_op_fail
      Src: /src/pacemaker/daemons/controld/controld_execd.c:203,1
    - Dst: history_remove_recurring_op
      Src: /src/pacemaker/daemons/controld/controld_execd.c:195,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:198,1
    - Dst: rsc_op_expected_rc
      Src: /src/pacemaker/daemons/controld/controld_execd.c:190,1
    - Dst: lrmd_copy_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:210,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:214,1
    - Dst: history_remove_recurring_op
      Src: /src/pacemaker/daemons/controld/controld_execd.c:233,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:235,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:240,1
    - Dst: lrmd_copy_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:216,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:242,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd.c:161,1
    - Dst: controld_delete_resource_history
      Src: /src/pacemaker/daemons/controld/controld_execd.c:162,1
    - Dst: crmd_cib_smart_opt
      Src: /src/pacemaker/daemons/controld/controld_execd.c:163,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_execd.c:175,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/daemons/controld/controld_execd.c:177,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:182,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:193,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/controld/controld_execd.c:225,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/daemons/controld/controld_execd.c:237,1
    - Dst: g_list_length
      Src: /src/pacemaker/daemons/controld/controld_execd.c:243,1
    - Dst: history_free_recurring_ops
      Src: /src/pacemaker/daemons/controld/controld_execd.c:245,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 3
    argNames:
    - lrm_state
    - rsc
    - op
    argTypes:
    - lrm_state_t*
    - lrmd_rsc_info_t*
    - lrmd_event_data_t*
    constantsTouched: []
    func_position:
      end: 247
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 247
    functionName: update_history_cache
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - controld_delete_resource_history
    - g_hash_table_foreach
    - g_hash_table_destroy
    - lrmd_copy_event
    - g_hash_table_insert
    - crmd_cib_smart_opt
    - g_hash_table_lookup
    - history_remove_recurring_op
    - g_list_length
    - rsc_op_expected_rc
    - pcmk__assert_alloc
    - pcmk__str_eq
    - pcmk__strcase_any_of
    - pcmk__str_copy
    - did_rsc_op_fail
    - lrmd_free_event
    - crm_info
    - crm_trace
    - crm_debug
    - pcmk__strkey_table
    - history_free_recurring_ops
    - g_list_prepend
    linkageType: ''
    returnType: void
    signature: 'static void update_history_cache(lrm_state_t * lrm_state, lrmd_rsc_info_t
      * rsc, lrmd_event_data_t * op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:651,1
    - Dst: cib__update_node_attr
      Src: /src/pacemaker/daemons/controld/controld_execd.c:655,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd.c:654,1
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_execd.c:652,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_execd.c:652,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:659,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - from_sys
    - rsc_id
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 661
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 661
    functionName: controld_trigger_delete_refresh
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - cib__update_node_attr
    - crm_strdup_printf
    - pcmk__str_eq
    - time
    - free
    linkageType: ''
    returnType: void
    signature: 'void controld_trigger_delete_refresh(const char *from_sys, const char
      *rsc_id) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:753,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - entry
    - op
    - interval_ms
    argTypes:
    - rsc_history_t*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 755
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 755
    functionName: last_failed_matches_op
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: gboolean
    signature: 'static inline gboolean last_failed_matches_op(rsc_history_t *entry,
      const char *op, guint interval_ms) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1100,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1101,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1102,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1107,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1105,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1108,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1114,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1115,1
    - Dst: construct_op
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1119,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1119,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1128,1
    - Dst: process_lrm_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1132,1
    - Dst: fake_op_status
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1125,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1121,1
    - Dst: fake_op_status
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1123,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1133,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 5
    argNames:
    - lrm_state
    - action
    - op_status
    - rc
    - exit_reason
    argTypes:
    - lrm_state_t*
    - xmlNode*
    - int
    - enum ocf_exitcode
    - char*
    constantsTouched: []
    func_position:
      end: 1134
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1134
    functionName: synthesize_lrmd_failure
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - construct_op
    - pcmk__xe_first_child
    - pcmk__str_eq
    - process_lrm_event
    - crm_element_value
    - crm_info
    - fake_op_status
    - pcmk__xe_id
    - lrmd_free_event
    linkageType: ''
    returnType: void
    signature: 'static void synthesize_lrmd_failure(lrm_state_t *lrm_state, const
      xmlNode *action, int op_status, enum ocf_exitcode rc, const char *exit_reason) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1867,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1880,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1870,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1868,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 10
    argCount: 1
    argNames:
    - action
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1886
      start: 1864
    functionDepth: 0
    functionLinenumber: 1864
    functionLinenumberEnd: 1886
    functionName: should_nack_action
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - register_fsa_input
    - pcmk_is_set
    - pcmk__str_eq
    linkageType: ''
    returnType: char*
    signature: 'static const char *should_nack_action(const char *action) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2079,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2088,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2083,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2081,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2080,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2089,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 4
    argNames:
    - lrm_state
    - rsc_id
    - op_type
    - interval_ms
    argTypes:
    - lrm_state_t*
    - char*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 2095
      start: 2073
    functionDepth: 0
    functionLinenumber: 2073
    functionLinenumberEnd: 2095
    functionName: did_lrm_rsc_op_fail
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - CRM_CHECK
    - g_hash_table_lookup
    linkageType: ''
    returnType: bool
    signature: 'static bool did_lrm_rsc_op_fail(lrm_state_t *lrm_state, const char
      * rsc_id, const char * op_type, guint interval_ms) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_execd.c:361,1
    - Dst: lrm_state_verify_stopped
      Src: /src/pacemaker/daemons/controld/controld_execd.c:368,1
    - Dst: crmd_fsa_stall
      Src: /src/pacemaker/daemons/controld/controld_execd.c:370,1
    - Dst: controld_clear_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_execd.c:375,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_execd.c:363,1
    - Dst: lrm_state_disconnect
      Src: /src/pacemaker/daemons/controld/controld_execd.c:376,1
    - Dst: lrm_state_reset_tables
      Src: /src/pacemaker/daemons/controld/controld_execd.c:377,1
    - Dst: try_local_executor_connect
      Src: /src/pacemaker/daemons/controld/controld_execd.c:381,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:385,1
    - Dst: fsa_action2string
      Src: /src/pacemaker/daemons/controld/controld_execd.c:385,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 388
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 388
    functionName: do_lrm_control
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - lrm_state_reset_tables
    - fsa_action2string
    - lrm_state_disconnect
    - try_local_executor_connect
    - controld_clear_fsa_input_flags
    - crmd_fsa_stall
    - lrm_state_verify_stopped
    - register_fsa_error
    - controld_get_executor_state
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void do_lrm_control(long long action, enum crmd_fsa_cause cause, enum
      crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lrmd__set_result
      Src: /src/pacemaker/daemons/controld/controld_execd.c:624,1
    - Dst: lrmd__set_result
      Src: /src/pacemaker/daemons/controld/controld_execd.c:627,1
    - Dst: lrmd__set_result
      Src: /src/pacemaker/daemons/controld/controld_execd.c:631,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 2
    argNames:
    - event
    - rc
    argTypes:
    - lrmd_event_data_t*
    - int
    constantsTouched: []
    func_position:
      end: 635
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 635
    functionName: controld_rc2event
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - lrmd__set_result
    linkageType: ''
    returnType: void
    signature: 'void controld_rc2event(lrmd_event_data_t *event, int rc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:699,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:700,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 705
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 705
    functionName: lrm_remove_deleted_op
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - crm_info
    - pcmk__str_eq
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean lrm_remove_deleted_op(gpointer key, gpointer value,
      gpointer user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:799,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_execd.c:812,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd.c:813,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:814,1
    - Dst: lrm_state_cancel
      Src: /src/pacemaker/daemons/controld/controld_execd.c:826,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd.c:825,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:844,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:798,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_execd.c:804,1
    - Dst: make_stop_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:801,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_execd.c:807,1
    - Dst: controld_set_active_op_flags
      Src: /src/pacemaker/daemons/controld/controld_execd.c:808,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd.c:809,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:820,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:830,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd.c:834,1
    - Dst: controld_set_active_op_flags
      Src: /src/pacemaker/daemons/controld/controld_execd.c:817,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd.c:829,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:821,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 5
    argNames:
    - lrm_state
    - rsc_id
    - key
    - op
    - remove
    argTypes:
    - lrm_state_t*
    - char*
    - char*
    - int
    - gboolean
    constantsTouched: []
    func_position:
      end: 846
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 846
    functionName: cancel_op
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - lrm_state_cancel
    - CRM_CHECK
    - g_hash_table_lookup
    - controld_set_active_op_flags
    - pcmk_is_set
    - free
    - make_stop_id
    - crm_info
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean cancel_op(lrm_state_t * lrm_state, const char *rsc_id,
      const char *key, int op, gboolean remove) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:913,1
    - Dst: lrm_state_is_connected
      Src: /src/pacemaker/daemons/controld/controld_execd.c:918,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:916,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:915,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:922,1
    - Dst: lrm_state_get_rsc_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:923,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:927,1
    - Dst: lrm_state_get_rsc_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:930,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:935,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:936,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:937,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:946,1
    - Dst: lrm_state_get_rsc_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:960,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_execd.c:948,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_execd.c:955,1
    - Dst: lrm_state_is_local
      Src: /src/pacemaker/daemons/controld/controld_execd.c:954,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:940,1
    - Dst: lrm_state_register_rsc
      Src: /src/pacemaker/daemons/controld/controld_execd.c:941,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 4
    argNames:
    - lrm_state
    - rsc_xml
    - do_create
    - rsc_info
    argTypes:
    - lrm_state_t*
    - xmlNode*
    - gboolean
    - lrmd_rsc_info_t**
    constantsTouched: []
    func_position:
      end: 963
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 963
    functionName: get_lrm_resource
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - lrm_state_get_rsc_info
    - lrm_state_is_connected
    - CRM_CHECK
    - lrm_state_register_rsc
    - register_fsa_error
    - crm_err
    - crm_element_value
    - lrm_state_is_local
    - pcmk_strerror
    - pcmk__xe_id
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int get_lrm_resource(lrm_state_t *lrm_state, const xmlNode
      *rsc_xml, gboolean do_create, lrmd_rsc_info_t **rsc_info) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1043,1
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1056,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1045,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1044,1
    - Dst: is_remote_lrmd_ra
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1051,1
    - Dst: force_reprobe
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1062,1
    - Dst: delete_resource
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1071,1
    - Dst: controld_delete_node_state
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1076,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 6
    argNames:
    - lrm_state
    - from_sys
    - from_host
    - user_name
    - is_remote_node
    - reprobe_all_nodes
    argTypes:
    - lrm_state_t*
    - char*
    - char*
    - char*
    - gboolean
    - bool
    constantsTouched: []
    func_position:
      end: 1078
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1078
    functionName: force_reprobe
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - controld_get_executor_state
    - delete_resource
    - is_remote_lrmd_ra
    - controld_delete_node_state
    - crm_info
    - g_hash_table_iter_init
    - force_reprobe
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void force_reprobe(lrm_state_t *lrm_state, const char *from_sys,
      const char *from_host, const char *user_name, gboolean is_remote_node, bool
      reprobe_all_nodes) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1151,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1157
      start: 1145
    functionDepth: 0
    functionLinenumber: 1145
    functionLinenumberEnd: 1157
    functionName: lrm_op_target
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - crm_element_value
    linkageType: ''
    returnType: char*
    signature: 'static const char *lrm_op_target(const xmlNode *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_remote_lrmd_ra
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1840,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1841,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1851,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - rsc_id
    - action
    - interval_ms
    argTypes:
    - char*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 1853
      start: 1837
    functionDepth: 0
    functionLinenumber: 1837
    functionLinenumberEnd: 1853
    functionName: should_cancel_recurring
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    - strcmp
    - is_remote_lrmd_ra
    linkageType: ''
    returnType: bool
    signature: 'static bool should_cancel_recurring(const char *rsc_id, const char
      *action, guint interval_ms) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:714,1
    - Dst: g_hash_table_iter_remove
      Src: /src/pacemaker/daemons/controld/controld_execd.c:720,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:717,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/controld/controld_execd.c:722,1
    - Dst: controld_delete_resource_history
      Src: /src/pacemaker/daemons/controld/controld_execd.c:726,1
    - Dst: crmd_cib_smart_opt
      Src: /src/pacemaker/daemons/controld/controld_execd.c:727,1
    - Dst: g_hash_table_foreach_remove
      Src: /src/pacemaker/daemons/controld/controld_execd.c:729,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:731,1
    - Dst: notify_deleted
      Src: /src/pacemaker/daemons/controld/controld_execd.c:735,1
    - Dst: g_hash_table_foreach_remove
      Src: /src/pacemaker/daemons/controld/controld_execd.c:741,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 7
    argNames:
    - lrm_state
    - input
    - rsc_id
    - rsc_iter
    - rc
    - user_name
    - from_cib
    argTypes:
    - lrm_state_t*
    - ha_msg_input_t*
    - char*
    - GHashTableIter*
    - int
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 742
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 742
    functionName: delete_rsc_entry
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - controld_delete_resource_history
    - crmd_cib_smart_opt
    - CRM_CHECK
    - g_hash_table_remove
    - g_hash_table_foreach_remove
    - notify_deleted
    - pcmk__str_copy
    - g_hash_table_iter_remove
    - free
    linkageType: ''
    returnType: void
    signature: 'static void delete_rsc_entry(lrm_state_t *lrm_state, ha_msg_input_t
      *input, const char *rsc_id, GHashTableIter *rsc_iter, int rc, const char *user_name,
      bool from_cib) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:972,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:985,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:982,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:980,1
    - Dst: lrm_state_unregister_rsc
      Src: /src/pacemaker/daemons/controld/controld_execd.c:976,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_execd.c:987,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:988,1
    - Dst: copy_ha_msg_input
      Src: /src/pacemaker/daemons/controld/controld_execd.c:989,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/daemons/controld/controld_execd.c:990,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_execd.c:994,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_execd.c:996,1
    - Dst: delete_rsc_entry
      Src: /src/pacemaker/daemons/controld/controld_execd.c:999,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 26
    argCount: 9
    argNames:
    - lrm_state
    - id
    - rsc
    - iter
    - sys
    - user
    - request
    - unregister
    - from_cib
    argTypes:
    - lrm_state_t*
    - char*
    - lrmd_rsc_info_t*
    - GHashTableIter*
    - char*
    - char*
    - ha_msg_input_t*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1000
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 1000
    functionName: delete_resource
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - pcmk_strerror
    - copy_ha_msg_input
    - pcmk__assert_alloc
    - delete_rsc_entry
    - pcmk__str_copy
    - crm_element_value_copy
    - crm_warn
    - crm_info
    - g_hash_table_insert
    - crm_trace
    - lrm_state_unregister_rsc
    linkageType: ''
    returnType: void
    signature: 'static void delete_resource(lrm_state_t *lrm_state, const char *id,
      lrmd_rsc_info_t *rsc, GHashTableIter *iter, const char *sys, const char *user,
      ha_msg_input_t *request, bool unregister, bool from_cib) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1165,1
    - Dst: construct_op
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1177,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1212,1
    - Dst: pcmk__is_privileged
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1183,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1184,1
    - Dst: fake_op_status
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1186,1
    - Dst: controld_ack_event_directly
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1189,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1206,1
    - Dst: fake_op_status
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1198,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1179,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1167,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1191,1
    - Dst: lrmd_free_rsc_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1202,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1205,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1197,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1213,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1177,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1185,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1190,1
    - Dst: get_lrm_resource
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1196,1
    - Dst: process_lrm_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1200,1
    - Dst: fake_op_status
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1207,1
    - Dst: controld_ack_event_directly
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1211,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 5
    argNames:
    - xml
    - lrm_state
    - user_name
    - from_host
    - from_sys
    argTypes:
    - xmlNode*
    - lrm_state_t*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1214
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1214
    functionName: fail_lrm_resource
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - construct_op
    - CRM_CHECK
    - pcmk__is_privileged
    - pcmk__xe_first_child
    - process_lrm_event
    - crm_info
    - lrmd_free_rsc_info
    - crm_log_xml_warn
    - controld_ack_event_directly
    - free
    - get_lrm_resource
    - lrmd_free_event
    - fake_op_status
    - pcmk__xe_id
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void fail_lrm_resource(xmlNode *xml, lrm_state_t *lrm_state,
      const char *user_name, const char *from_host, const char *from_sys) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1901,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1904,1
    - Dst: synthesize_lrmd_failure
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1916,1
    - Dst: should_cancel_recurring
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1940,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1969,1
    - Dst: pcmk__readable_action
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1975,1
    - Dst: controld_execute_resource_agent
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1987,1
    - Dst: crm_element_value_epoch
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2008,1
    - Dst: fake_op_status
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2030,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2033,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2044,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1999,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2031,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2005,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2045,1
    - Dst: fake_op_status
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2039,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2018,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1903,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1906,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1907,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1913,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1915,1
    - Dst: construct_op
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1937,1
    - Dst: g_hash_table_foreach_remove
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1946,1
    - Dst: pcmk__readable_action
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1961,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1968,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1973,1
    - Dst: pcmk__op_key
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1980,1
    - Dst: controld_record_pending_op
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1978,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1904,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1908,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1930,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1922,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1938,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1951,1
    - Dst: should_nack_action
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1957,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1959,1
    - Dst: lrmd__set_result
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1965,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1976,1
    - Dst: controld_ack_event_directly
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2021,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2012,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2028,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2038,1
    - Dst: process_lrm_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2041,1
    - Dst: decode_transition_key
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2019,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2036,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2007,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1952,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1963,1
    - Dst: controld_ack_event_directly
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1967,1
    - Dst: make_stop_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1995,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1998,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2004,1
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2006,1
    - Dst: lrmd__set_result
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2020,1
    - Dst: lrm_state_is_local
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2027,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2029,1
    - Dst: cancel_op_key
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1984,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2040,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2003,1
    - Dst: process_lrm_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:2032,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 113
    argCount: 4
    argNames:
    - lrm_state
    - rsc
    - msg
    - md
    argTypes:
    - lrm_state_t*
    - lrmd_rsc_info_t*
    - xmlNode*
    - struct ra_metadata_s*
    constantsTouched: []
    func_position:
      end: 2046
      start: 1888
    functionDepth: 0
    functionLinenumber: 1888
    functionLinenumberEnd: 2046
    functionName: do_lrm_rsc_op
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - construct_op
    - pcmk__str_empty
    - controld_record_pending_op
    - register_fsa_error
    - crm_notice
    - free
    - controld_execute_resource_agent
    - g_hash_table_replace
    - lrmd__set_result
    - decode_transition_key
    - cancel_op_key
    - pcmk__readable_action
    - pcmk__s
    - should_nack_action
    - fsa_state2string
    - pcmk_is_set
    - controld_ack_event_directly
    - crm_element_value
    - pcmk_rc_str
    - pcmk__op_key
    - fake_op_status
    - crm_err
    - CRM_CHECK
    - crm_element_value_epoch
    - pcmk__assert_alloc
    - process_lrm_event
    - pcmk__str_copy
    - make_stop_id
    - pcmk__str_any_of
    - lrmd_free_event
    - synthesize_lrmd_failure
    - crm_log_xml_err
    - crm_trace
    - crm_info
    - crm_debug
    - lrm_state_is_local
    - pcmk__plural_s
    - g_hash_table_foreach_remove
    - time
    - should_cancel_recurring
    linkageType: ''
    returnType: void
    signature: 'static void do_lrm_rsc_op(lrm_state_t *lrm_state, lrmd_rsc_info_t
      *rsc, xmlNode *msg, struct ra_metadata_s *md) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xml2list
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1614,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1615,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1630,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1620,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1665,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1682,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1685,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1687,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1693,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1589,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1598,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1598,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1618,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1631,1
    - Dst: QB_MIN
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1641,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1652,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1666,1
    - Dst: lrmd__set_result
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1595,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1606,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1610,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1621,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1617,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1634,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1645,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1664,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1679,1
    - Dst: lrmd_new_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1591,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1608,1
    - Dst: pcmk__guint_from_hash
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1623,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1633,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1633,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1637,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1639,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1662,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1680,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 90
    argCount: 4
    argNames:
    - lrm_state
    - rsc_op
    - rsc_id
    - operation
    argTypes:
    - lrm_state_t*
    - xmlNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1697
      start: 1575
    functionDepth: 0
    functionLinenumber: 1575
    functionLinenumberEnd: 1697
    functionName: construct_op
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    - pcmk__xe_first_child
    - g_hash_table_destroy
    - lrmd__set_result
    - lrmd_new_event
    - g_hash_table_lookup
    - pcmk__guint_from_hash
    - pcmk_is_set
    - crm_element_value
    - pcmk__assert
    - crm_meta_value
    - crm_err
    - crm_get_msec
    - CRM_CHECK
    - pcmk__str_eq
    - pcmk__strcase_any_of
    - pcmk__str_copy
    - pcmk__scan_min_int
    - crm_trace
    - xml2list
    - CRM_LOG_ASSERT
    - pcmk__insert_dup
    - pcmk__strkey_table
    - g_hash_table_remove
    - QB_MIN
    - pcmk_get_ra_caps
    linkageType: ''
    returnType: lrmd_event_data_t*
    signature: 'static lrmd_event_data_t *construct_op(const lrm_state_t *lrm_state,
      const xmlNode *rsc_op, const char *rsc_id, const char *operation) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1802,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1804,1
    - Dst: cancel_op
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1805,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 1809
      start: 1794
    functionDepth: 0
    functionLinenumber: 1794
    functionLinenumberEnd: 1809
    functionName: stop_recurring_action_by_rsc
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - cancel_op
    - pcmk__str_eq
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean stop_recurring_action_by_rsc(gpointer key, gpointer
      value, gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:139,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:144,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:147,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:143,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:145,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:148,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:149,1
    - Dst: history_free_recurring_ops
      Src: /src/pacemaker/daemons/controld/controld_execd.c:150,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 152
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 152
    functionName: history_free
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - lrmd_free_event
    - free
    - history_free_recurring_ops
    linkageType: ''
    returnType: void
    signature: 'void history_free(gpointer data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd.c:315,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_execd.c:327,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:321,1
    - Dst: controld_connect_local_executor
      Src: /src/pacemaker/daemons/controld/controld_execd.c:318,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_execd.c:320,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/controld/controld_execd.c:329,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_execd.c:330,1
    - Dst: controld_start_wait_timer
      Src: /src/pacemaker/daemons/controld/controld_execd.c:331,1
    - Dst: crmd_fsa_stall
      Src: /src/pacemaker/daemons/controld/controld_execd.c:332,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:337,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_execd.c:341,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/controld/controld_execd.c:339,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_execd.c:340,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - action
    - msg_data
    - lrm_state
    argTypes:
    - long long
    - fsa_data_t*
    - lrm_state_t*
    constantsTouched: []
    func_position:
      end: 342
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 342
    functionName: try_local_executor_connect
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - controld_start_wait_timer
    - crmd_fsa_stall
    - pcmk__plural_s
    - register_fsa_error
    - controld_connect_local_executor
    - crm_err
    - pcmk_rc_str
    - crm_warn
    - crm_info
    - controld_set_fsa_input_flags
    linkageType: ''
    returnType: void
    signature: 'static void try_local_executor_connect(long long action, fsa_data_t
      *msg_data, lrm_state_t *lrm_state) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: controld_delete_resource_history
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1311,1
    - Dst: pcmk_rc2ocf
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1323,1
    - Dst: construct_op
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1318,1
    - Dst: lrmd__set_result
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1323,1
    - Dst: controld_ack_event_directly
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1324,1
    - Dst: lrmd_free_event
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1325,1
    - Dst: is_remote_lrmd_ra
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1329,1
    - Dst: delete_resource
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1333,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 7
    argNames:
    - input
    - lrm_state
    - rsc
    - from_sys
    - from_host
    - crm_rsc_delete
    - user_name
    argTypes:
    - ha_msg_input_t*
    - lrm_state_t*
    - lrmd_rsc_info_t*
    - char*
    - char*
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 1335
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1335
    functionName: do_lrm_delete
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - controld_delete_resource_history
    - construct_op
    - delete_resource
    - controld_ack_event_directly
    - pcmk_rc2ocf
    - is_remote_lrmd_ra
    - lrmd_free_event
    - lrmd__set_result
    linkageType: ''
    returnType: void
    signature: 'static void do_lrm_delete(ha_msg_input_t *input, lrm_state_t *lrm_state,
      lrmd_rsc_info_t *rsc, const char *from_sys, const char *from_host, bool crm_rsc_delete,
      const char *user_name) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1462,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1483,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1487,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1505,1
    - Dst: do_lrm_cancel
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1513,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1554,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1449,1
    - Dst: new_metadata_cb_data
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1553,1
    - Dst: controld_get_rsc_metadata
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1534,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1486,1
    - Dst: fail_lrm_resource
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1446,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1450,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1493,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1517,1
    - Dst: do_lrm_delete
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1519,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1512,1
    - Dst: synthesize_lrmd_failure
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1506,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1504,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1412,1
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1410,1
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1408,1
    - Dst: synthesize_lrmd_failure
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1414,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1419,1
    - Dst: pcmk__update_acl_user
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1421,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1438,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1428,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1424,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1441,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1493,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1514,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1502,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1445,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1504,1
    - Dst: synthesize_lrmd_failure
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1495,1
    - Dst: fsa_typed_data
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1401,1
    - Dst: handle_reprobe_op
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1457,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1464,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1469,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1469,1
    - Dst: get_lrm_resource
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1471,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1442,1
    - Dst: synthesize_lrmd_failure
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1473,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1485,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1494,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1533,1
    - Dst: lrmd_free_rsc_info
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1566,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1571,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1486,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1455,1
    - Dst: delete_rsc_entry
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1487,1
    - Dst: crm_op_needs_metadata
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1538,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1569,1
    - Dst: lrm_op_target
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1403,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1422,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1423,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1425,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1438,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1438,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1440,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1429,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1435,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1443,1
    - Dst: lrmd__metadata_async
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1559,1
    - Dst: do_lrm_rsc_op
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1562,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 131
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 1573
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1573
    functionName: do_lrm_invoke
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - pcmk__update_acl_user
    - new_metadata_cb_data
    - pcmk__str_empty
    - pcmk__xe_first_child
    - delete_rsc_entry
    - register_fsa_error
    - do_lrm_cancel
    - controld_get_executor_state
    - crm_op_needs_metadata
    - pcmk__s
    - fail_lrm_resource
    - do_lrm_delete
    - lrmd_free_rsc_info
    - lrmd__metadata_async
    - crm_log_xml_warn
    - crm_element_value
    - pcmk__assert
    - pcmk__xe_id
    - crm_err
    - handle_reprobe_op
    - CRM_CHECK
    - pcmk__str_eq
    - strcmp
    - do_lrm_rsc_op
    - controld_get_rsc_metadata
    - get_lrm_resource
    - pcmk_strerror
    - crm_info
    - synthesize_lrmd_failure
    - crm_trace
    - crm_debug
    - fsa_typed_data
    - controld_is_local_node
    - lrm_op_target
    linkageType: ''
    returnType: void
    signature: 'void do_lrm_invoke(long long action, enum crmd_fsa_cause cause, enum
      crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1725,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1735,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1736,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1764,1
    - Dst: pcmk__new_message
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1751,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1761,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1721,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1724,1
    - Dst: create_node_state_update
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1732,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1737,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1738,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1740,1
    - Dst: relay_message
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1760,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1765,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1758,1
    - Dst: controld_add_resource_history_xml
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1742,1
    - Dst: controld_get_local_node_status
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1731,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1754,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd.c:1756,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 5
    argNames:
    - to_host
    - to_sys
    - rsc
    - op
    - rsc_id
    argTypes:
    - char*
    - char*
    - lrmd_rsc_info_t*
    - lrmd_event_data_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1766
      start: 1712
    functionDepth: 0
    functionLinenumber: 1712
    functionLinenumberEnd: 1766
    functionName: controld_ack_event_directly
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_debug
    - CRM_CHECK
    - crm_element_value
    - crm_xml_add
    - pcmk__new_message
    - pcmk__str_copy
    - pcmk__xml_free
    - controld_get_local_node_status
    - controld_add_resource_history_xml
    - pcmk__assert
    - crm_log_xml_trace
    - crm_log_xml_err
    - create_node_state_update
    - relay_message
    linkageType: ''
    returnType: void
    signature: 'void controld_ack_event_directly(const char *to_host, const char *to_sys,
      const lrmd_rsc_info_t *rsc, lrmd_event_data_t *op, const char *rsc_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lrmd_free_rsc_info
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: free_rsc_info
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - lrmd_free_rsc_info
    linkageType: ''
    returnType: void
    signature: 'static void free_rsc_info(gpointer value) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:282,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:288,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:287,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:284,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:283,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 291
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 291
    functionName: lrm_state_destroy_all
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - crm_trace
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'void lrm_state_destroy_all(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lrmd__new
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:395,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:405,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - lrm_state
    argTypes:
    - lrm_state_t*
    constantsTouched: []
    func_position:
      end: 413
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 413
    functionName: controld_connect_local_executor
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - lrmd__new
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'int controld_connect_local_executor(lrm_state_t *lrm_state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remote_proxy_new
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:422,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 4
    argNames:
    - lrmd
    - node_name
    - session_id
    - channel
    argTypes:
    - lrmd_t*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 425
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 425
    functionName: crmd_remote_proxy_new
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - remote_proxy_new
    linkageType: ''
    returnType: remote_proxy_t*
    signature: 'static remote_proxy_t *crmd_remote_proxy_new(lrmd_t *lrmd, const char
      *node_name, const char *session_id, const char *channel) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lrmd__new
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:616,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:618,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:619,1
    - Dst: lrmd_internal_set_proxy_callback
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:625,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:628,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:638,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - lrm_state
    - server
    - port
    - timeout_ms
    argTypes:
    - lrm_state_t*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 639
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 639
    functionName: controld_connect_remote_executor
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - lrmd__new
    - pcmk_rc_str
    - crm_warn
    - pcmk_legacy2rc
    - crm_trace
    - lrmd_internal_set_proxy_callback
    linkageType: ''
    returnType: int
    signature: 'int controld_connect_remote_executor(lrm_state_t *lrm_state, const
      char *server, int port, int timeout_ms) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:39,1
    - Dst: delete_ha_msg_input
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:40,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: free_deletion_op
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - delete_ha_msg_input
    - free
    linkageType: ''
    returnType: void
    signature: 'static void free_deletion_op(gpointer value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - session
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 431
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 431
    functionName: crmd_is_proxy_session
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean crmd_is_proxy_session(const char *session) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lrmd_key_value_add
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:667,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 6
    argNames:
    - lrm_state
    - class
    - provider
    - agent
    - output
    - options
    argTypes:
    - lrm_state_t*
    - char*
    - char*
    - char*
    - char**
    - enum lrmd_call_options
    constantsTouched: []
    func_position:
      end: 672
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 672
    functionName: lrm_state_get_metadata
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - lrmd_key_value_add
    linkageType: ''
    returnType: int
    signature: 'int lrm_state_get_metadata(lrm_state_t * lrm_state, const char *class,
      const char *provider, const char *agent, char **output, enum lrmd_call_options
      options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:110,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:114,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:117,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:118,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:116,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:119,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:120,1
    - Dst: metadata_cache_new
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:121,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:123,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - node_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 125
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 125
    functionName: lrm_state_create
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - metadata_cache_new
    - pcmk__assert_alloc
    - pcmk__strkey_table
    - pcmk__str_copy
    - g_hash_table_insert
    - crm_err
    linkageType: ''
    returnType: lrm_state_t*
    signature: 'static lrm_state_t *lrm_state_create(const char *node_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - lrm_state
    argTypes:
    - lrm_state_t*
    constantsTouched: []
    func_position:
      end: 384
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 384
    functionName: lrm_state_poke_connection
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int lrm_state_poke_connection(lrm_state_t * lrm_state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: remote_proxy_remove_by_node
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean remote_proxy_remove_by_node(gpointer key, gpointer
      value, gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:165,1
    - Dst: mainloop_del_ipc_client
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:172,1
    - Dst: find_connected_proxy_by_node
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:167,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - node_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 177
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 177
    functionName: remote_proxy_disconnect_by_node
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - mainloop_del_ipc_client
    - find_connected_proxy_by_node
    linkageType: ''
    returnType: void
    signature: 'static void remote_proxy_disconnect_by_node(const char * node_name) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:754,1
    - Dst: is_remote_lrmd_ra
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:761,1
    - Dst: controld_execute_remote_agent
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:762,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:755,1
    - Dst: lrmd_key_value_add
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:757,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:774,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 9
    argNames:
    - lrm_state
    - rsc_id
    - action
    - userdata
    - interval_ms
    - timeout_ms
    - start_delay_ms
    - parameters
    - call_id
    argTypes:
    - lrm_state_t*
    - char*
    - char*
    - char*
    - guint
    - int
    - int
    - GHashTable*
    - int*
    constantsTouched: []
    func_position:
      end: 781
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 781
    functionName: controld_execute_resource_agent
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - controld_execute_remote_agent
    - lrmd_key_value_add
    - pcmk_legacy2rc
    - is_remote_lrmd_ra
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: int
    signature: 'int controld_execute_resource_agent(lrm_state_t *lrm_state, const
      char *rsc_id, const char *action, const char *userdata, guint interval_ms, int
      timeout_ms, int start_delay_ms, GHashTable *parameters, int *call_id) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:146,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:150,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:148,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:152,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - node_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 158
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 158
    functionName: find_connected_proxy_by_node
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - g_hash_table_iter_init
    - pcmk__str_eq
    - CRM_CHECK
    - g_hash_table_iter_next
    linkageType: ''
    returnType: remote_proxy_t*
    signature: 'static remote_proxy_t *find_connected_proxy_by_node(const char * node_name) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_foreach_remove
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:198,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:196,1
    - Dst: remote_ra_cleanup
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:199,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:195,1
    - Dst: lrmd_api_delete
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:200,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:204,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:209,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:214,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:224,1
    - Dst: remote_proxy_disconnect_by_node
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:193,1
    - Dst: metadata_cache_free
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:222,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:203,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:208,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:219,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:213,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:218,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:225,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:205,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:210,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:215,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:220,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 226
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 226
    functionName: internal_lrm_state_destroy
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - lrmd_api_delete
    - g_hash_table_destroy
    - g_hash_table_foreach_remove
    - remote_ra_cleanup
    - metadata_cache_free
    - free
    - remote_proxy_disconnect_by_node
    - crm_trace
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void internal_lrm_state_destroy(gpointer data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_remote_lrmd_ra
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:795,1
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:796,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 6
    argNames:
    - lrm_state
    - rsc_id
    - class
    - provider
    - agent
    - options
    argTypes:
    - lrm_state_t*
    - char*
    - char*
    - char*
    - char*
    - enum lrmd_call_options
    constantsTouched: []
    func_position:
      end: 804
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 804
    functionName: lrm_state_register_rsc
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - controld_get_executor_state
    - is_remote_lrmd_ra
    linkageType: ''
    returnType: int
    signature: 'int lrm_state_register_rsc(lrm_state_t * lrm_state, const char *rsc_id,
      const char *class, const char *provider, const char *agent, enum lrmd_call_options
      options) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:314,1
    - Dst: lrm_state_create
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:316,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 2
    argNames:
    - node_name
    - create
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 319
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 319
    functionName: controld_get_executor_state
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - lrm_state_create
    - g_hash_table_lookup
    linkageType: ''
    returnType: lrm_state_t*
    signature: 'lrm_state_t *controld_get_executor_state(const char *node_name, bool
      create) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:49,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:51,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:50,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:54,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:52,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 57
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 57
    functionName: free_recurring_op
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - free
    linkageType: ''
    returnType: void
    signature: 'static void free_recurring_op(gpointer value) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:232,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:237,1
    - Dst: g_hash_table_remove_all
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:234,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:238,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:233,1
    - Dst: g_hash_table_remove_all
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:239,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:242,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:243,1
    - Dst: g_hash_table_remove_all
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:244,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:247,1
    - Dst: g_hash_table_remove_all
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:249,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:248,1
    - Dst: metadata_cache_reset
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:252,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - lrm_state
    - reset_metadata
    argTypes:
    - lrm_state_t*
    - gboolean
    constantsTouched: []
    func_position:
      end: 254
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 254
    functionName: lrm_state_reset_tables
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - g_hash_table_remove_all
    - metadata_cache_reset
    - crm_trace
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'void lrm_state_reset_tables(lrm_state_t * lrm_state, gboolean reset_metadata) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_get_values
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 331
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 331
    functionName: lrm_state_get_list
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - g_hash_table_get_values
    linkageType: ''
    returnType: GList*
    signature: 'GList *lrm_state_get_list(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:66,1
    - Dst: lrmd__set_result
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:76,1
    - Dst: lrmd__reset_result
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:86,1
    - Dst: process_lrm_event
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 88
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 88
    functionName: fail_pending_op
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - lrmd__reset_result
    - process_lrm_event
    - lrmd__set_result
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean fail_pending_op(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strikey_table
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:263,1
    - Dst: pcmk__strikey_table
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:268,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 276
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 276
    functionName: lrm_state_init_local
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - pcmk__strikey_table
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean lrm_state_init_local(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:341,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:347,1
    - Dst: remote_proxy_disconnect_by_node
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:343,1
    - Dst: g_hash_table_foreach_remove
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:348,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - lrm_state
    argTypes:
    - lrm_state_t*
    constantsTouched: []
    func_position:
      end: 352
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 352
    functionName: lrm_state_disconnect_only
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - g_hash_table_foreach_remove
    - crm_trace
    - remote_proxy_disconnect_by_node
    linkageType: ''
    returnType: void
    signature: 'void lrm_state_disconnect_only(lrm_state_t * lrm_state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - lrm_state
    argTypes:
    - lrm_state_t*
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: lrm_state_is_local
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - controld_is_local_node
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean lrm_state_is_local(lrm_state_t *lrm_state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lrm_state_disconnect_only
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:361,1
    - Dst: lrmd_api_delete
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - lrm_state
    argTypes:
    - lrm_state_t*
    constantsTouched: []
    func_position:
      end: 365
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 365
    functionName: lrm_state_disconnect
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - lrmd_api_delete
    - lrm_state_disconnect_only
    linkageType: ''
    returnType: void
    signature: 'void lrm_state_disconnect(lrm_state_t * lrm_state) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:436,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:445,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:442,1
    - Dst: remote_proxy_relay_event
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:446,1
    - Dst: controld_get_executor_state
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:443,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - session
    - msg
    argTypes:
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 448
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 448
    functionName: crmd_proxy_send
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - remote_proxy_relay_event
    - crm_log_xml_trace
    - controld_get_executor_state
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void crmd_proxy_send(const char *session, xmlNode *msg) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:466,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:469,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:466,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:475,1
    - Dst: crm_time_new
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:474,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:480,1
    - Dst: pcmk_unpack_nvpair_blocks
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:481,1
    - Dst: lrmd__validate_remote_settings
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:486,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:488,1
    - Dst: crm_time_free
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:489,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 491
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 491
    functionName: remote_config_check
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - crm_debug
    - g_hash_table_destroy
    - pcmk__strkey_table
    - pcmk_unpack_nvpair_blocks
    - crm_time_free
    - lrmd__validate_remote_settings
    - crm_time_new
    - pcmk_strerror
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void remote_config_check(xmlNode * msg, int call_id, int rc,
      xmlNode * output, void *user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_remote_lrmd_ra
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:684,1
    - Dst: remote_ra_cancel
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:685,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 4
    argNames:
    - lrm_state
    - rsc_id
    - action
    - interval_ms
    argTypes:
    - lrm_state_t*
    - char*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 689
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 689
    functionName: lrm_state_cancel
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - remote_ra_cancel
    - is_remote_lrmd_ra
    linkageType: ''
    returnType: int
    signature: 'int lrm_state_cancel(lrm_state_t *lrm_state, const char *rsc_id, const
      char *action, guint interval_ms) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - lrm_state
    argTypes:
    - lrm_state_t*
    constantsTouched: []
    func_position:
      end: 374
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 374
    functionName: lrm_state_is_connected
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int lrm_state_is_connected(lrm_state_t * lrm_state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:453,1
    - Dst: route_message
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:457,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:455,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:454,1
    - Dst: controld_authorize_ipc_message
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:456,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:459,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - session
    - msg
    argTypes:
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 460
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 460
    functionName: crmd_proxy_dispatch
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - controld_authorize_ipc_message
    - crm_xml_add
    - route_message
    - controld_trigger_fsa
    - crm_log_xml_trace
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void crmd_proxy_dispatch(const char *session, xmlNode *msg) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:538,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:543,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:548,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:554,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:558,1
    - Dst: pcmk__update_acl_user
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:561,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:582,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:587,1
    - Dst: remote_proxy_relay_response
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:595,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:592,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:501,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:498,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:521,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:524,1
    - Dst: pcmk__ttoa
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:531,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:534,1
    - Dst: update_attrd
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:532,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:560,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:569,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:575,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:589,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:594,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:591,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:497,1
    - Dst: crmd_remote_proxy_new
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:504,1
    - Dst: remote_ra_controlling_guest
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:505,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:527,1
    - Dst: remote_proxy_ack_shutdown
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:536,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:559,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:569,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:573,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:576,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:585,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:597,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:502,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:500,1
    - Dst: remote_ra_is_in_maintenance
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:530,1
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:531,1
    - Dst: remote_proxy_nack_shutdown
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:541,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:556,1
    - Dst: crmd_proxy_dispatch
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:580,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:584,1
    - Dst: remote_proxy_cb
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:601,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 72
    argCount: 3
    argNames:
    - lrmd
    - userdata
    - msg
    argTypes:
    - lrmd_t*
    - void*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 603
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 603
    functionName: crmd_remote_proxy_cb
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - pcmk__update_acl_user
    - pcmk__xe_first_child
    - update_attrd
    - remote_proxy_cb
    - crm_notice
    - free
    - crmd_proxy_dispatch
    - pcmk__xe_create
    - g_hash_table_lookup
    - remote_proxy_ack_shutdown
    - pcmk__xe_get_flags
    - pcmk_is_set
    - crm_element_value
    - pcmk_rc_str
    - remote_proxy_relay_response
    - CRM_CHECK
    - pcmk__str_eq
    - crm_xml_add_int
    - crm_warn
    - remote_ra_controlling_guest
    - crm_debug
    - remote_proxy_nack_shutdown
    - crmd_remote_proxy_new
    - pcmk__ttoa
    - crm_xml_add
    - time
    - remote_ra_is_in_maintenance
    - pcmk__xml_free
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'static void crmd_remote_proxy_cb(lrmd_t *lrmd, void *userdata, xmlNode
      *msg) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_remote_lrmd_ra
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:699,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:711,1
    - Dst: remote_ra_get_rsc_info
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:700,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:703,1
    - Dst: lrmd_copy_rsc_info
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:714,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - lrm_state
    - rsc_id
    - options
    argTypes:
    - lrm_state_t*
    - char*
    - enum lrmd_call_options
    constantsTouched: []
    func_position:
      end: 716
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 716
    functionName: lrm_state_get_rsc_info
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - lrmd_copy_rsc_info
    - g_hash_table_lookup
    - remote_ra_get_rsc_info
    - is_remote_lrmd_ra
    - g_hash_table_insert
    linkageType: ''
    returnType: lrmd_rsc_info_t*
    signature: 'lrmd_rsc_info_t *lrm_state_get_rsc_info(lrm_state_t * lrm_state, const
      char *rsc_id, enum lrmd_call_options options) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_remote_lrmd_ra
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:814,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:815,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/controld/controld_execd_state.c:819,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - lrm_state
    - rsc_id
    - options
    argTypes:
    - lrm_state_t*
    - char*
    - enum lrmd_call_options
    constantsTouched: []
    func_position:
      end: 827
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 827
    functionName: lrm_state_unregister_rsc
    functionSourceFile: /src/pacemaker/daemons/controld/controld_execd_state.c
    functionUses: []
    functionsReached:
    - g_hash_table_remove
    - is_remote_lrmd_ra
    linkageType: ''
    returnType: int
    signature: 'int lrm_state_unregister_rsc(lrm_state_t * lrm_state, const char *rsc_id,
      enum lrmd_call_options options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_control.c:103,1
    - Dst: controld_disconnect_fencer
      Src: /src/pacemaker/daemons/controld/controld_control.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: do_shutdown
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - controld_set_fsa_input_flags
    - controld_disconnect_fencer
    linkageType: ''
    returnType: void
    signature: 'void do_shutdown(long long action, enum crmd_fsa_cause cause, enum
      crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_main_loop_is_running
      Src: /src/pacemaker/daemons/controld/controld_control.c:701,1
    - Dst: register_fsa_input_before
      Src: /src/pacemaker/daemons/controld/controld_control.c:708,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_control.c:706,1
    - Dst: crmd_exit
      Src: /src/pacemaker/daemons/controld/controld_control.c:702,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_control.c:707,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_control.c:712,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_control.c:713,1
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/daemons/controld/controld_control.c:721,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/daemons/controld/controld_control.c:722,1
    - Dst: controld_shutdown_start_countdown
      Src: /src/pacemaker/daemons/controld/controld_control.c:723,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - nsig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 724
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 724
    functionName: crm_shutdown
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - register_fsa_input_before
    - g_main_loop_is_running
    - crmd_exit
    - pcmk_is_set
    - controld_shutdown_start_countdown
    - pcmk_parse_interval_spec
    - register_fsa_input
    - controld_set_fsa_input_flags
    - pcmk__cluster_option
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void crm_shutdown(int nsig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: throttle_init
      Src: /src/pacemaker/daemons/controld/controld_control.c:690,1
    - Dst: controld_trigger_config
      Src: /src/pacemaker/daemons/controld/controld_control.c:691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 692
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 692
    functionName: do_read_config
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - throttle_init
    - controld_trigger_config
    linkageType: ''
    returnType: void
    signature: 'void do_read_config(long long action, enum crmd_fsa_cause cause, enum
      crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_control.c:132,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_control.c:138,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_control.c:133,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_control.c:140,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/daemons/controld/controld_control.c:147,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/controld/controld_control.c:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - exit_code
    argTypes:
    - crm_exit_t
    constantsTouched: []
    func_position:
      end: 152
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 152
    functionName: crmd_fast_exit
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - crm_exit
    - pcmk_is_set
    - pcmk__output_free
    - crm_warn
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void crmd_fast_exit(crm_exit_t exit_code) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/controld/controld_control.c:383,1
    - Dst: pcmk__client_data2xml
      Src: /src/pacemaker/daemons/controld/controld_control.c:396,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_control.c:404,1
    - Dst: pcmk__ipc_msg_append
      Src: /src/pacemaker/daemons/controld/controld_control.c:386,1
    - Dst: g_byte_array_free
      Src: /src/pacemaker/daemons/controld/controld_control.c:397,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_control.c:404,1
    - Dst: g_byte_array_free
      Src: /src/pacemaker/daemons/controld/controld_control.c:407,1
    - Dst: pcmk__ipc_send_ack
      Src: /src/pacemaker/daemons/controld/controld_control.c:415,1
    - Dst: pcmk__ipc_send_ack
      Src: /src/pacemaker/daemons/controld/controld_control.c:419,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_control.c:422,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_control.c:427,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_control.c:433,1
    - Dst: controld_authorize_ipc_message
      Src: /src/pacemaker/daemons/controld/controld_control.c:426,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_control.c:432,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/controld/controld_control.c:428,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_control.c:425,1
    - Dst: route_message
      Src: /src/pacemaker/daemons/controld/controld_control.c:429,1
    - Dst: pcmk__update_acl_user
      Src: /src/pacemaker/daemons/controld/controld_control.c:423,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - c
    - data
    - size
    argTypes:
    - qb_ipcs_connection_t*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 435
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 435
    functionName: dispatch_controller_ipc
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - pcmk__update_acl_user
    - crm_trace
    - controld_authorize_ipc_message
    - pcmk__ipc_send_ack
    - crm_xml_add
    - g_byte_array_free
    - pcmk__find_client
    - pcmk__client_data2xml
    - route_message
    - pcmk__ipc_msg_append
    - pcmk_rc_str
    - pcmk__assert
    - controld_trigger_fsa
    - pcmk__xml_free
    - crm_err
    - pcmk__client_name
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t dispatch_controller_ipc(qb_ipcs_connection_t * c, void
      *data, size_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_control.c:679,1
    - Dst: fsa_register_cib_callback
      Src: /src/pacemaker/daemons/controld/controld_control.c:678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 681
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 681
    functionName: crm_read_options
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - fsa_register_cib_callback
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean crm_read_options(gpointer user_data) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: crm_write_blackbox
      Src: /src/pacemaker/daemons/controld/controld_control.c:168,1
    - Dst: crmd_fast_exit
      Src: /src/pacemaker/daemons/controld/controld_control.c:169,1
    - Dst: controld_disconnect_fencer
      Src: /src/pacemaker/daemons/controld/controld_control.c:189,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_control.c:203,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_control.c:192,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/daemons/controld/controld_control.c:204,1
    - Dst: controld_clear_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_control.c:222,1
    - Dst: controld_clear_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_control.c:237,1
    - Dst: mainloop_destroy_trigger
      Src: /src/pacemaker/daemons/controld/controld_control.c:240,1
    - Dst: pcmk__client_cleanup
      Src: /src/pacemaker/daemons/controld/controld_control.c:246,1
    - Dst: controld_destroy_outside_events_table
      Src: /src/pacemaker/daemons/controld/controld_control.c:270,1
    - Dst: mainloop_destroy_signal
      Src: /src/pacemaker/daemons/controld/controld_control.c:305,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_control.c:253,1
    - Dst: g_main_context_pending
      Src: /src/pacemaker/daemons/controld/controld_control.c:292,1
    - Dst: pcmk_cluster_free
      Src: /src/pacemaker/daemons/controld/controld_control.c:313,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_control.c:162,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/daemons/controld/controld_control.c:167,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_control.c:166,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_control.c:177,1
    - Dst: fsa_input2string
      Src: /src/pacemaker/daemons/controld/controld_control.c:216,1
    - Dst: g_list_free
      Src: /src/pacemaker/daemons/controld/controld_control.c:224,1
    - Dst: controld_disconnect_cib_manager
      Src: /src/pacemaker/daemons/controld/controld_control.c:234,1
    - Dst: controld_destroy_fsa_trigger
      Src: /src/pacemaker/daemons/controld/controld_control.c:243,1
    - Dst: controld_destroy_transition_trigger
      Src: /src/pacemaker/daemons/controld/controld_control.c:244,1
    - Dst: te_cleanup_stonith_history_sync
      Src: /src/pacemaker/daemons/controld/controld_control.c:250,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_control.c:262,1
    - Dst: mainloop_destroy_signal
      Src: /src/pacemaker/daemons/controld/controld_control.c:273,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_control.c:287,1
    - Dst: controld_destroy_failed_sync_table
      Src: /src/pacemaker/daemons/controld/controld_control.c:269,1
    - Dst: mainloop_destroy_signal
      Src: /src/pacemaker/daemons/controld/controld_control.c:275,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_control.c:317,1
    - Dst: g_main_loop_unref
      Src: /src/pacemaker/daemons/controld/controld_control.c:303,1
    - Dst: controld_shutdown_schedulerd_ipc
      Src: /src/pacemaker/daemons/controld/controld_control.c:188,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_control.c:215,1
    - Dst: fsa_cause2string
      Src: /src/pacemaker/daemons/controld/controld_control.c:218,1
    - Dst: delete_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_control.c:219,1
    - Dst: controld_free_node_pending_timers
      Src: /src/pacemaker/daemons/controld/controld_control.c:227,1
    - Dst: election_reset
      Src: /src/pacemaker/daemons/controld/controld_control.c:228,1
    - Dst: verify_stopped
      Src: /src/pacemaker/daemons/controld/controld_control.c:236,1
    - Dst: lrm_state_destroy_all
      Src: /src/pacemaker/daemons/controld/controld_control.c:238,1
    - Dst: controld_free_fsa_timers
      Src: /src/pacemaker/daemons/controld/controld_control.c:249,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_control.c:256,1
    - Dst: cib_delete
      Src: /src/pacemaker/daemons/controld/controld_control.c:308,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/daemons/controld/controld_control.c:318,1
    - Dst: g_main_loop_is_running
      Src: /src/pacemaker/daemons/controld/controld_control.c:299,1
    - Dst: g_main_context_pending
      Src: /src/pacemaker/daemons/controld/controld_control.c:287,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_control.c:265,1
    - Dst: mainloop_destroy_signal
      Src: /src/pacemaker/daemons/controld/controld_control.c:272,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_control.c:294,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_control.c:299,1
    - Dst: g_main_loop_get_context
      Src: /src/pacemaker/daemons/controld/controld_control.c:279,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_control.c:173,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/daemons/controld/controld_control.c:174,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_control.c:182,1
    - Dst: mainloop_del_ipc_server
      Src: /src/pacemaker/daemons/controld/controld_control.c:183,1
    - Dst: controld_close_attrd_ipc
      Src: /src/pacemaker/daemons/controld/controld_control.c:187,1
    - Dst: crmd_fast_exit
      Src: /src/pacemaker/daemons/controld/controld_control.c:206,1
    - Dst: crm_write_blackbox
      Src: /src/pacemaker/daemons/controld/controld_control.c:205,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_control.c:217,1
    - Dst: pcmk__cluster_destroy_node_caches
      Src: /src/pacemaker/daemons/controld/controld_control.c:247,1
    - Dst: controld_free_sched_timer
      Src: /src/pacemaker/daemons/controld/controld_control.c:251,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_control.c:259,1
    - Dst: mainloop_destroy_signal
      Src: /src/pacemaker/daemons/controld/controld_control.c:285,1
    - Dst: g_main_context_dispatch
      Src: /src/pacemaker/daemons/controld/controld_control.c:295,1
    - Dst: free_max_generation
      Src: /src/pacemaker/daemons/controld/controld_control.c:268,1
    - Dst: mainloop_destroy_signal
      Src: /src/pacemaker/daemons/controld/controld_control.c:274,1
    - Dst: g_main_loop_is_running
      Src: /src/pacemaker/daemons/controld/controld_control.c:287,1
    - Dst: g_main_context_pending
      Src: /src/pacemaker/daemons/controld/controld_control.c:299,1
    - Dst: throttle_fini
      Src: /src/pacemaker/daemons/controld/controld_control.c:311,1
    - Dst: g_main_loop_quit
      Src: /src/pacemaker/daemons/controld/controld_control.c:300,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 104
    argCount: 1
    argNames:
    - exit_code
    argTypes:
    - crm_exit_t
    constantsTouched: []
    func_position:
      end: 320
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 320
    functionName: crmd_exit
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - controld_destroy_failed_sync_table
    - g_main_loop_quit
    - lrm_state_destroy_all
    - verify_stopped
    - election_reset
    - pcmk__cluster_destroy_node_caches
    - controld_destroy_fsa_trigger
    - g_main_context_pending
    - crm_notice
    - free
    - crm_write_blackbox
    - g_main_context_dispatch
    - g_main_loop_get_context
    - free_max_generation
    - crmd_fast_exit
    - g_list_free
    - g_main_loop_is_running
    - controld_disconnect_fencer
    - fsa_state2string
    - fsa_input2string
    - te_cleanup_stonith_history_sync
    - controld_free_sched_timer
    - delete_fsa_input
    - g_main_loop_unref
    - pcmk_cluster_free
    - controld_shutdown_schedulerd_ipc
    - crm_exit_str
    - controld_free_node_pending_timers
    - throttle_fini
    - pcmk__client_cleanup
    - controld_disconnect_cib_manager
    - cib_delete
    - crm_info
    - mainloop_del_ipc_server
    - crm_trace
    - controld_free_fsa_timers
    - crm_debug
    - controld_clear_fsa_input_flags
    - mainloop_destroy_signal
    - controld_destroy_transition_trigger
    - controld_destroy_outside_events_table
    - mainloop_destroy_trigger
    - controld_close_attrd_ipc
    - controld_set_fsa_input_flags
    - fsa_cause2string
    linkageType: ''
    returnType: crm_exit_t
    signature: 'crm_exit_t crmd_exit(crm_exit_t exit_code) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/controld/controld_control.c:440,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_control.c:446,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_control.c:443,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/controld/controld_control.c:444,1
    - Dst: pcmk__free_client
      Src: /src/pacemaker/daemons/controld/controld_control.c:447,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_control.c:448,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 451
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 451
    functionName: ipc_client_disconnected
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - free
    - pcmk__find_client
    - controld_trigger_fsa
    - pcmk__free_client
    - crm_trace
    - pcmk__client_name
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t ipc_client_disconnected(qb_ipcs_connection_t *c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_control.c:545,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_control.c:546,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_control.c:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 549
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 549
    functionName: do_recover
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - register_fsa_input
    - crm_warn
    - controld_set_fsa_input_flags
    linkageType: ''
    returnType: void
    signature: 'void do_recover(long long action, enum crmd_fsa_cause cause, enum
      crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_control.c:664,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/controld/controld_control.c:665,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - fn
    - line
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 667
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 667
    functionName: controld_trigger_config_as
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - crm_trace
    - mainloop_set_trigger
    linkageType: ''
    returnType: void
    signature: 'void controld_trigger_config_as(const char *fn, int line) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_control.c:330,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_control.c:332,1
    - Dst: crmd_exit
      Src: /src/pacemaker/daemons/controld/controld_control.c:335,1
    - Dst: verify_stopped
      Src: /src/pacemaker/daemons/controld/controld_control.c:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 336
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 336
    functionName: do_exit
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - verify_stopped
    - crm_err
    - crmd_exit
    linkageType: ''
    returnType: void
    signature: 'void do_exit(long long action, enum crmd_fsa_cause cause, enum crmd_fsa_state
      cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_control.c:369,1
    - Dst: pcmk__new_client
      Src: /src/pacemaker/daemons/controld/controld_control.c:370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - c
    - uid
    - gid
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 374
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 374
    functionName: accept_controller_client
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - pcmk__new_client
    - crm_trace
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t accept_controller_client(qb_ipcs_connection_t *c, uid_t
      uid, gid_t gid) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_control.c:466,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_control.c:468,1
    - Dst: mainloop_del_ipc_server
      Src: /src/pacemaker/daemons/controld/controld_control.c:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 469
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 469
    functionName: do_stop
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - register_fsa_input
    - mainloop_del_ipc_server
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void do_stop(long long action, enum crmd_fsa_cause cause, enum crmd_fsa_state
      cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crmd_fsa_stall
      Src: /src/pacemaker/daemons/controld/controld_control.c:493,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_control.c:498,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_control.c:503,1
    - Dst: pcmk__serve_controld_ipc
      Src: /src/pacemaker/daemons/controld/controld_control.c:525,1
    - Dst: crmd_fsa_stall
      Src: /src/pacemaker/daemons/controld/controld_control.c:520,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_control.c:486,1
    - Dst: crmd_fsa_stall
      Src: /src/pacemaker/daemons/controld/controld_control.c:500,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_control.c:505,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_control.c:510,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_control.c:527,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_control.c:528,1
    - Dst: controld_timer_fencer_connect
      Src: /src/pacemaker/daemons/controld/controld_control.c:533,1
    - Dst: controld_clear_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_control.c:535,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_control.c:536,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_control.c:486,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_control.c:489,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_control.c:512,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_control.c:517,1
    - Dst: crmd_fsa_stall
      Src: /src/pacemaker/daemons/controld/controld_control.c:507,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_control.c:530,1
    - Dst: GINT_TO_POINTER
      Src: /src/pacemaker/daemons/controld/controld_control.c:533,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_control.c:491,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_control.c:496,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_control.c:519,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_control.c:524,1
    - Dst: crmd_fsa_stall
      Src: /src/pacemaker/daemons/controld/controld_control.c:514,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_control.c:532,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 537
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 537
    functionName: do_started
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - crm_debug
    - controld_clear_fsa_input_flags
    - crmd_fsa_stall
    - register_fsa_error
    - fsa_state2string
    - crm_notice
    - pcmk_is_set
    - GINT_TO_POINTER
    - register_fsa_input
    - controld_set_fsa_input_flags
    - crm_info
    - crm_err
    - controld_timer_fencer_connect
    - pcmk__serve_controld_ipc
    linkageType: ''
    returnType: void
    signature: 'void do_started(long long action, enum crmd_fsa_cause cause, enum
      crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/daemons/controld/controld_control.c:612,1
    - Dst: pcmk_unpack_nvpair_blocks
      Src: /src/pacemaker/daemons/controld/controld_control.c:591,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_control.c:608,1
    - Dst: controld_set_global_flags
      Src: /src/pacemaker/daemons/controld/controld_control.c:620,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_control.c:625,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_control.c:629,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_control.c:633,1
    - Dst: controld_configure_election
      Src: /src/pacemaker/daemons/controld/controld_control.c:637,1
    - Dst: controld_configure_throttle
      Src: /src/pacemaker/daemons/controld/controld_control.c:640,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_control.c:645,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_control.c:566,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/daemons/controld/controld_control.c:577,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_control.c:584,1
    - Dst: pcmk__locate_sbd
      Src: /src/pacemaker/daemons/controld/controld_control.c:614,1
    - Dst: controld_verify_stonith_watchdog_timeout
      Src: /src/pacemaker/daemons/controld/controld_control.c:609,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_control.c:618,1
    - Dst: crm_is_true
      Src: /src/pacemaker/daemons/controld/controld_control.c:619,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/daemons/controld/controld_control.c:626,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/daemons/controld/controld_control.c:630,1
    - Dst: controld_configure_fsa_timers
      Src: /src/pacemaker/daemons/controld/controld_control.c:639,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_control.c:646,1
    - Dst: crmd_unpack_alerts
      Src: /src/pacemaker/daemons/controld/controld_control.c:643,1
    - Dst: crm_time_new
      Src: /src/pacemaker/daemons/controld/controld_control.c:556,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_control.c:566,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_control.c:570,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_control.c:578,1
    - Dst: pcmk__validate_cluster_options
      Src: /src/pacemaker/daemons/controld/controld_control.c:596,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_control.c:611,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_control.c:589,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/controld/controld_control.c:634,1
    - Dst: controld_configure_fencing
      Src: /src/pacemaker/daemons/controld/controld_control.c:638,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_control.c:642,1
    - Dst: crm_time_free
      Src: /src/pacemaker/daemons/controld/controld_control.c:650,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_control.c:648,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_control.c:567,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_control.c:571,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_control.c:585,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/controld/controld_control.c:590,1
    - Dst: controld_set_global_flags
      Src: /src/pacemaker/daemons/controld/controld_control.c:615,1
    - Dst: controld_clear_global_flags
      Src: /src/pacemaker/daemons/controld/controld_control.c:622,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 651
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 651
    functionName: config_query_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - g_hash_table_destroy
    - register_fsa_error
    - controld_configure_throttle
    - pcmk__validate_cluster_options
    - pcmk__xe_is
    - crm_time_free
    - controld_verify_stonith_watchdog_timeout
    - controld_configure_fencing
    - crm_is_true
    - g_hash_table_lookup
    - controld_set_global_flags
    - crmd_unpack_alerts
    - controld_configure_fsa_timers
    - controld_trigger_fsa
    - controld_clear_global_flags
    - crm_err
    - pcmk__strcase_any_of
    - controld_configure_election
    - crm_time_new
    - pcmk_strerror
    - crm_debug
    - pcmk__locate_sbd
    - pcmk__strkey_table
    - pcmk_unpack_nvpair_blocks
    - pcmk_parse_interval_spec
    - controld_set_fsa_input_flags
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'static void config_query_callback(xmlNode * msg, int call_id, int
      rc, xmlNode * output, void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - nsig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 338
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 338
    functionName: sigpipe_ignore
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void sigpipe_ignore(int nsig) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_control.c:49,1
    - Dst: controld_election_init
      Src: /src/pacemaker/daemons/controld/controld_control.c:67,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_control.c:87,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_control.c:69,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_control.c:74,1
    - Dst: pcmk__cluster_get_xml_id
      Src: /src/pacemaker/daemons/controld/controld_control.c:71,1
    - Dst: fsa_action2string
      Src: /src/pacemaker/daemons/controld/controld_control.c:91,1
    - Dst: pcmk_cluster_disconnect
      Src: /src/pacemaker/daemons/controld/controld_control.c:48,1
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/daemons/controld/controld_control.c:59,1
    - Dst: populate_cib_nodes
      Src: /src/pacemaker/daemons/controld/controld_control.c:85,1
    - Dst: pcmk__cluster_set_status_callback
      Src: /src/pacemaker/daemons/controld/controld_control.c:55,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_control.c:51,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_control.c:71,1
    - Dst: controld_clear_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_control.c:86,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_control.c:80,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_control.c:91,1
    - Dst: pcmk_cluster_new
      Src: /src/pacemaker/daemons/controld/controld_control.c:44,1
    - Dst: pcmk__cluster_set_autoreap
      Src: /src/pacemaker/daemons/controld/controld_control.c:56,1
    - Dst: crm_connect_corosync
      Src: /src/pacemaker/daemons/controld/controld_control.c:60,1
    - Dst: controld_get_local_node_status
      Src: /src/pacemaker/daemons/controld/controld_control.c:65,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_control.c:81,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 94
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 94
    functionName: do_ha_control
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - fsa_action2string
    - crm_connect_corosync
    - pcmk__cluster_get_xml_id
    - controld_clear_fsa_input_flags
    - pcmk__cluster_set_autoreap
    - controld_election_init
    - pcmk_get_cluster_layer
    - pcmk_cluster_disconnect
    - pcmk__cluster_set_status_callback
    - register_fsa_error
    - pcmk__str_copy
    - populate_cib_nodes
    - free
    - crm_err
    - controld_get_local_node_status
    - pcmk_cluster_new
    - crm_info
    - controld_set_fsa_input_flags
    linkageType: ''
    returnType: void
    signature: 'void do_ha_control(long long action, enum crmd_fsa_cause cause, enum
      crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_control.c:116,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/controld/controld_control.c:123,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_control.c:118,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/daemons/controld/controld_control.c:120,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_control.c:119,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_control.c:124,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_control.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 127
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 127
    functionName: do_shutdown_req
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - register_fsa_error
    - pcmk__cluster_send_message
    - pcmk__xml_free
    - pcmk__new_request
    - crm_info
    - controld_set_fsa_input_flags
    linkageType: ''
    returnType: void
    signature: 'void do_shutdown_req(long long action, enum crmd_fsa_cause cause,
      enum crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t
      * msg_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_control.c:346,1
    - Dst: controld_init_fsa_trigger
      Src: /src/pacemaker/daemons/controld/controld_control.c:353,1
    - Dst: mainloop_add_trigger
      Src: /src/pacemaker/daemons/controld/controld_control.c:350,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/daemons/controld/controld_control.c:347,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/daemons/controld/controld_control.c:348,1
    - Dst: controld_init_transition_trigger
      Src: /src/pacemaker/daemons/controld/controld_control.c:354,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_control.c:356,1
    - Dst: cib_new
      Src: /src/pacemaker/daemons/controld/controld_control.c:357,1
    - Dst: lrm_state_init_local
      Src: /src/pacemaker/daemons/controld/controld_control.c:359,1
    - Dst: controld_init_fsa_timers
      Src: /src/pacemaker/daemons/controld/controld_control.c:360,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_control.c:361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 363
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 363
    functionName: do_startup
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - crm_debug
    - lrm_state_init_local
    - controld_init_fsa_timers
    - controld_init_transition_trigger
    - register_fsa_error
    - mainloop_add_signal
    - mainloop_add_trigger
    - cib_new
    - controld_init_fsa_trigger
    linkageType: ''
    returnType: void
    signature: 'void do_startup(long long action, enum crmd_fsa_cause cause, enum
      crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_control.c:456,1
    - Dst: ipc_client_disconnected
      Src: /src/pacemaker/daemons/controld/controld_control.c:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 458
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 458
    functionName: ipc_connection_destroyed
    functionSourceFile: /src/pacemaker/daemons/controld/controld_control.c
    functionUses: []
    functionsReached:
    - ipc_client_disconnected
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void ipc_connection_destroyed(qb_ipcs_connection_t *c) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - enum ra_param_flags_e
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: ra_param_flag2text
    functionSourceFile: /src/pacemaker/daemons/controld/controld_metadata.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *ra_param_flag2text(enum ra_param_flags_e
      flag) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_epoch
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - lrm_resource
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: shutdown_lock_cleared
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_callbacks.c
    functionUses: []
    functionsReached:
    - crm_element_value_epoch
    linkageType: ''
    returnType: bool
    signature: 'static bool shutdown_lock_cleared(xmlNode *lrm_resource) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:124,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:133,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:125,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:132,1
    - Dst: extract_node_uuid
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:130,1
    - Dst: match_down_event
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:138,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:140,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:141,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:144,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:146,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 4
    argNames:
    - xpath
    - op
    - change
    - reason
    argTypes:
    - char*
    - char*
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 147
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 147
    functionName: abort_unless_down
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_callbacks.c
    functionUses: []
    functionsReached:
    - crm_trace
    - extract_node_uuid
    - pcmk__str_eq
    - match_down_event
    - free
    - crm_err
    - abort_transition
    linkageType: ''
    returnType: void
    signature: 'static void abort_unless_down(const char *xpath, const char *op, xmlNode
      *change, const char *reason) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:56,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:61,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:58,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:57,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:61,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:78,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:79,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:84,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:85,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:86,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:86,1
    - Dst: process_lrm_resource_diff
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:87,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 5
    argNames:
    - node
    - xml
    - change
    - op
    - xpath
    argTypes:
    - char*
    - xmlNode*
    - xmlNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 89
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 89
    functionName: process_resource_updates
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_callbacks.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - process_lrm_resource_diff
    - pcmk__xe_first_child
    - pcmk__xe_is
    - pcmk__xe_next
    - crm_log_xml_trace
    - pcmk__xe_id
    - crm_trace
    - abort_transition
    linkageType: ''
    returnType: void
    signature: 'static void process_resource_updates(const char *node, xmlNode *xml,
      xmlNode *change, const char *op, const char *xpath) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:182,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:185,1
    - Dst: process_op_deletion
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:183,1
    - Dst: abort_unless_down
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:186,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:188,1
    - Dst: abort_unless_down
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:189,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:192,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - xpath
    - op
    - change
    argTypes:
    - char*
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 194
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 194
    functionName: process_delete_diff
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_callbacks.c
    functionUses: []
    functionsReached:
    - crm_trace
    - strstr
    - process_op_deletion
    - abort_unless_down
    linkageType: ''
    returnType: void
    signature: 'static void process_delete_diff(const char *xpath, const char *op,
      xmlNode *change) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:209,1
    - Dst: process_node_state_diff
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:212,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:210,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 4
    argNames:
    - status
    - change
    - op
    - xpath
    argTypes:
    - xmlNode*
    - xmlNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: process_status_diff
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_callbacks.c
    functionUses: []
    functionsReached:
    - process_node_state_diff
    - pcmk__xe_next
    - pcmk__xe_first_child
    linkageType: ''
    returnType: void
    signature: 'static void process_status_diff(xmlNode *status, xmlNode *change,
      const char *op, const char *xpath) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:238,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:263,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:266,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:267,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:293,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:299,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:282,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:303,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:316,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:326,1
    - Dst: process_lrm_resource_diff
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:338,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:329,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:241,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:297,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:292,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:304,1
    - Dst: process_status_diff
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:320,1
    - Dst: pcmk__xpath_node_id
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:330,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:345,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:339,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:272,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:275,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:298,1
    - Dst: process_delete_diff
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:310,1
    - Dst: process_cib_diff
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:317,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:322,1
    - Dst: process_node_state_diff
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:323,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:333,1
    - Dst: process_resource_updates
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:326,1
    - Dst: pcmk__xpath_node_id
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:336,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:348,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:248,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:251,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:252,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:258,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:288,1
    - Dst: abort_unless_down
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:306,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:309,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:313,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:319,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:325,1
    - Dst: process_resource_updates
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:332,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:341,1
    - Dst: pcmk__xpath_node_id
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:342,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:335,1
    - Dst: process_graph_event
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:344,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 93
    argCount: 2
    argNames:
    - change
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 353
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 353
    functionName: te_update_diff_element
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_callbacks.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - abort_unless_down
    - free
    - strstr
    - process_lrm_resource_diff
    - crm_element_value
    - pcmk__xe_id
    - abort_transition
    - process_resource_updates
    - strcmp
    - pcmk__str_eq
    - process_delete_diff
    - process_graph_event
    - crm_warn
    - pcmk__str_any_of
    - pcmk__xpath_node_id
    - crm_trace
    - process_node_state_diff
    - process_cib_diff
    - process_status_diff
    linkageType: ''
    returnType: int
    signature: 'static int te_update_diff_element(xmlNode *change, void *userdata) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:423,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:436,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:437,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:439,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:447,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:448,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:450,1
    - Dst: get_node_id
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:456,1
    - Dst: process_graph_event
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:458,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:428,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:429,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:445,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:443,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:444,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:462,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:416,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:420,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:430,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:419,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:421,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:422,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:431,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:444,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:445,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:438,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:453,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 2
    argNames:
    - msg
    - xml_data
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 463
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 463
    functionName: process_te_message
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_callbacks.c
    functionUses: []
    functionsReached:
    - crm_debug
    - CRM_CHECK
    - get_node_id
    - pcmk__s
    - pcmk__str_empty
    - pcmk__xpath_num_results
    - pcmk__xpath_result
    - pcmk__str_eq
    - xmlXPathFreeObject
    - process_graph_event
    - crm_element_value
    - crm_info
    - pcmk__xpath_search
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void process_te_message(xmlNode * msg, xmlNode * xml_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:93,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:98,1
    - Dst: strchr
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:105,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:100,1
    - Dst: strlen
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:103,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:107,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:112,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:113,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - xpath
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 115
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 115
    functionName: extract_node_uuid
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_callbacks.c
    functionUses: []
    functionsReached:
    - strchr
    - pcmk__str_copy
    - free
    - strlen
    - strstr
    linkageType: ''
    returnType: char*
    signature: 'static char *extract_node_uuid(const char *xpath) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:35,1
    - Dst: process_graph_event
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:37,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:36,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:41,1
    - Dst: shutdown_lock_cleared
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:39,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - lrm_resource
    - node
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: process_lrm_resource_diff
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_callbacks.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - pcmk__xe_next
    - process_graph_event
    - shutdown_lock_cleared
    - abort_transition
    linkageType: ''
    returnType: void
    signature: 'static void process_lrm_resource_diff(xmlNode *lrm_resource, const
      char *node) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:152,1
    - Dst: strrchr
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:160,1
    - Dst: strrchr
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:157,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:165,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:163,1
    - Dst: extract_node_uuid
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:170,1
    - Dst: confirm_cancel_action
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:171,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:172,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:175,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:176,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - xpath
    - change
    argTypes:
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 177
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 177
    functionName: process_op_deletion
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_callbacks.c
    functionUses: []
    functionsReached:
    - extract_node_uuid
    - strrchr
    - pcmk__str_copy
    - confirm_cancel_action
    - free
    - crm_warn
    - abort_transition
    linkageType: ''
    returnType: void
    signature: 'static void process_op_deletion(const char *xpath, xmlNode *change) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:200,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:202,1
    - Dst: process_resource_updates
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:202,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 4
    argNames:
    - state
    - change
    - op
    - xpath
    argTypes:
    - xmlNode*
    - xmlNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 203
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 203
    functionName: process_node_state_diff
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_callbacks.c
    functionUses: []
    functionsReached:
    - process_resource_updates
    - pcmk__xe_id
    - pcmk__xe_first_child
    linkageType: ''
    returnType: void
    signature: 'static void process_node_state_diff(xmlNode *state, xmlNode *change,
      const char *op, const char *xpath) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:220,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:221,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:228,1
    - Dst: process_status_diff
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:225,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 4
    argNames:
    - cib
    - change
    - op
    - xpath
    argTypes:
    - xmlNode*
    - xmlNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 231
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 231
    functionName: process_cib_diff
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_callbacks.c
    functionUses: []
    functionsReached:
    - process_status_diff
    - abort_transition
    - pcmk__xe_first_child
    linkageType: ''
    returnType: void
    signature: 'static void process_cib_diff(xmlNode *cib, xmlNode *change, const
      char *op, const char *xpath) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:366,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:374,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:374,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:370,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:367,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:381,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:382,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:386,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:388,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:389,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:392,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:400,1
    - Dst: controld_remove_all_outside_events
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:406,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:394,1
    - Dst: xml_patch_versions
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:391,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:403,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:399,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:396,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - event
    - msg
    argTypes:
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 407
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 407
    functionName: te_update_diff
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_callbacks.c
    functionUses: []
    functionsReached:
    - crm_debug
    - CRM_CHECK
    - pcmk__xe_first_child
    - pcmk__xe_foreach_child
    - controld_remove_all_outside_events
    - fsa_state2string
    - xml_patch_versions
    - crm_warn
    - crm_element_value
    - crm_log_xml_trace
    - pcmk_strerror
    - crm_trace
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'void te_update_diff(const char *event, xmlNode * msg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:469,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:469,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 471
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 471
    functionName: cib_action_updated
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_callbacks.c
    functionUses: []
    functionsReached:
    - pcmk_strerror
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void cib_action_updated(xmlNode * msg, int call_id, int rc, xmlNode
      * output, void *user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:488,1
    - Dst: stop_te_timer
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:490,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:493,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:492,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:494,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:497,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:504,1
    - Dst: pcmk__log_graph_action
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:510,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:512,1
    - Dst: te_action_confirmed
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:514,1
    - Dst: controld_record_action_timeout
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:521,1
    - Dst: controld_action_is_recordable
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:520,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_callbacks.c:515,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 526
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 526
    functionName: action_timer_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_callbacks.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - controld_action_is_recordable
    - pcmk__set_graph_action_flags
    - stop_te_timer
    - abort_transition
    - crm_notice
    - te_action_confirmed
    - crm_element_value
    - controld_record_action_timeout
    - crm_err
    - pcmk__log_graph_action
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean action_timer_callback(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_cib.h:24,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - section
    - data
    argTypes:
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: fsa_cib_anon_update
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.h
    functionUses: []
    functionsReached:
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static inline void fsa_cib_anon_update(const char *section, xmlNode
      *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_cib.h:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - section
    - data
    argTypes:
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: fsa_cib_anon_update_discard_reply
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.h
    functionUses: []
    functionsReached:
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static inline void fsa_cib_anon_update_discard_reply(const char *section,
      xmlNode *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/controld/controld_cib.h:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - action
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: controld_action_is_recordable
    functionSourceFile: /src/pacemaker/daemons/controld/controld_cib.h
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    linkageType: ''
    returnType: bool
    signature: 'static inline bool controld_action_is_recordable(const char *action) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - input
    argTypes:
    - enum crmd_fsa_input
    constantsTouched: []
    func_position:
      end: 1163
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1163
    functionName: controld_fsa_get_next_state
    functionSourceFile: /src/pacemaker/daemons/controld/controld_matrix.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: enum crmd_fsa_state
    signature: 'enum crmd_fsa_state controld_fsa_get_next_state(enum crmd_fsa_input
      input) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - input
    argTypes:
    - enum crmd_fsa_input
    constantsTouched: []
    func_position:
      end: 1177
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1177
    functionName: controld_fsa_get_action
    functionSourceFile: /src/pacemaker/daemons/controld/controld_matrix.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: 'uint64_t controld_fsa_get_action(enum crmd_fsa_input input) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cluster_is_node_active
      Src: /src/pacemaker/daemons/controld/controld_membership.c:31,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_membership.c:40,1
    - Dst: crm_update_peer_join
      Src: /src/pacemaker/daemons/controld/controld_membership.c:35,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_membership.c:39,1
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_membership.c:38,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_membership.c:43,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_membership.c:45,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_membership.c:46,1
    - Dst: check_join_state
      Src: /src/pacemaker/daemons/controld/controld_membership.c:52,1
    - Dst: fail_incompletable_actions
      Src: /src/pacemaker/daemons/controld/controld_membership.c:55,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 58
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 58
    functionName: reap_dead_nodes
    functionSourceFile: /src/pacemaker/daemons/controld/controld_membership.c
    functionUses: []
    functionsReached:
    - fail_incompletable_actions
    - controld_is_local_node
    - pcmk__str_eq
    - crm_update_peer_join
    - check_join_state
    - pcmk__cluster_is_node_active
    - register_fsa_input
    - crm_warn
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void reap_dead_nodes(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_crm_log_unlikely
      Src: /src/pacemaker/daemons/controld/controld_membership.c:208,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_membership.c:210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 211
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 211
    functionName: remove_conflicting_node_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_membership.c
    functionUses: []
    functionsReached:
    - pcmk_strerror
    - do_crm_log_unlikely
    linkageType: ''
    returnType: void
    signature: 'static void remove_conflicting_node_callback(xmlNode * msg, int call_id,
      int rc, xmlNode * output, void *user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_membership.c:101,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_membership.c:104,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/daemons/controld/controld_membership.c:105,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_membership.c:104,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_membership.c:106,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_membership.c:109,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_membership.c:109,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/daemons/controld/controld_membership.c:110,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_membership.c:111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 113
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 113
    functionName: crmd_node_update_complete
    functionSourceFile: /src/pacemaker/daemons/controld/controld_membership.c
    functionUses: []
    functionsReached:
    - crm_log_xml_debug
    - crm_trace
    - register_fsa_error
    - pcmk_strerror
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void crmd_node_update_complete(xmlNode * msg, int call_id,
      int rc, xmlNode * output, void *user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_membership.c:304,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_membership.c:318,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_membership.c:305,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_membership.c:317,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_membership.c:315,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_membership.c:319,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/daemons/controld/controld_membership.c:322,1
    - Dst: g_string_truncate
      Src: /src/pacemaker/daemons/controld/controld_membership.c:324,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/controld/controld_membership.c:328,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_membership.c:335,1
    - Dst: g_string_free
      Src: /src/pacemaker/daemons/controld/controld_membership.c:340,1
    - Dst: fsa_register_cib_callback
      Src: /src/pacemaker/daemons/controld/controld_membership.c:335,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - nodes_xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 342
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 342
    functionName: populate_cib_nodes_from_cache
    functionSourceFile: /src/pacemaker/daemons/controld/controld_membership.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - g_string_truncate
    - fsa_register_cib_callback
    - crm_xml_add
    - pcmk__str_copy
    - g_string_sized_new
    - g_string_free
    - g_hash_table_iter_init
    - crm_trace
    - pcmk__g_strcat
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void populate_cib_nodes_from_cache(xmlNode *nodes_xml) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_membership.c:365,1
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/daemons/controld/controld_membership.c:372,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_membership.c:371,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_membership.c:378,1
    - Dst: pcmk__corosync_add_nodes
      Src: /src/pacemaker/daemons/controld/controld_membership.c:374,1
    - Dst: populate_cib_nodes_from_cache
      Src: /src/pacemaker/daemons/controld/controld_membership.c:382,1
    - Dst: controld_update_cib
      Src: /src/pacemaker/daemons/controld/controld_membership.c:385,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_membership.c:399,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_membership.c:400,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_membership.c:402,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_membership.c:408,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_membership.c:409,1
    - Dst: controld_update_cib
      Src: /src/pacemaker/daemons/controld/controld_membership.c:414,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_membership.c:418,1
    - Dst: create_node_state_update
      Src: /src/pacemaker/daemons/controld/controld_membership.c:404,1
    - Dst: create_node_state_update
      Src: /src/pacemaker/daemons/controld/controld_membership.c:410,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_membership.c:403,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 2
    argNames:
    - flags
    - source
    argTypes:
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 419
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 419
    functionName: populate_cib_nodes
    functionSourceFile: /src/pacemaker/daemons/controld/controld_membership.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - controld_update_cib
    - pcmk__corosync_add_nodes
    - pcmk_get_cluster_layer
    - pcmk_is_set
    - pcmk__xml_free
    - populate_cib_nodes_from_cache
    - g_hash_table_iter_init
    - crm_trace
    - create_node_state_update
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void populate_cib_nodes(uint32_t flags, const char *source) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_membership.c:66,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_membership.c:69,1
    - Dst: controld_set_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_membership.c:82,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/daemons/controld/controld_membership.c:68,1
    - Dst: populate_cib_nodes
      Src: /src/pacemaker/daemons/controld/controld_membership.c:72,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_membership.c:83,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/daemons/controld/controld_membership.c:88,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/controld/controld_membership.c:91,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_membership.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - instance
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 93
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 93
    functionName: post_cache_update
    functionSourceFile: /src/pacemaker/daemons/controld/controld_membership.c
    functionUses: []
    functionsReached:
    - crm_debug
    - g_hash_table_foreach
    - controld_set_fsa_action_flags
    - pcmk__cluster_send_message
    - populate_cib_nodes
    - pcmk__xml_free
    - controld_trigger_fsa
    - pcmk__new_request
    - controld_set_fsa_input_flags
    linkageType: ''
    returnType: void
    signature: 'void post_cache_update(int instance) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_membership.c:222,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_membership.c:235,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_membership.c:245,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_membership.c:252,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_membership.c:256,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_membership.c:273,1
    - Dst: fsa_register_cib_callback
      Src: /src/pacemaker/daemons/controld/controld_membership.c:273,1
    - Dst: fsa_register_cib_callback
      Src: /src/pacemaker/daemons/controld/controld_membership.c:282,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/daemons/controld/controld_membership.c:238,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_membership.c:277,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_membership.c:278,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_membership.c:268,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_membership.c:246,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_membership.c:253,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_membership.c:276,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_membership.c:284,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_membership.c:282,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/daemons/controld/controld_membership.c:231,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_membership.c:223,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_membership.c:255,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 287
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 287
    functionName: search_conflicting_node_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_membership.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_first_child
    - fsa_register_cib_callback
    - crm_xml_add
    - pcmk__str_eq
    - crm_notice
    - pcmk__xe_is
    - pcmk__str_copy
    - pcmk__xml_free
    - pcmk__xe_next
    - crm_element_value
    - pcmk_strerror
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void search_conflicting_node_callback(xmlNode * msg, int call_id,
      int rc, xmlNode * output, void *user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_membership.c:350,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/daemons/controld/controld_membership.c:351,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_membership.c:352,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_membership.c:355,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_membership.c:350,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_membership.c:355,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/daemons/controld/controld_membership.c:356,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_membership.c:357,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 359
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 359
    functionName: node_list_update_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_membership.c
    functionUses: []
    functionsReached:
    - pcmk_strerror
    - crm_err
    - crm_log_xml_debug
    - register_fsa_error
    linkageType: ''
    returnType: void
    signature: 'static void node_list_update_callback(xmlNode * msg, int call_id,
      int rc, xmlNode * output, void *user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_membership.c:427,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_membership.c:432,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_membership.c:430,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/daemons/controld/controld_membership.c:431,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_membership.c:430,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 434
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 434
    functionName: cib_quorum_update_complete
    functionSourceFile: /src/pacemaker/daemons/controld/controld_membership.c
    functionUses: []
    functionsReached:
    - crm_log_xml_debug
    - crm_trace
    - register_fsa_error
    - pcmk_strerror
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void cib_quorum_update_complete(xmlNode * msg, int call_id,
      int rc, xmlNode * output, void *user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_membership.c:439,1
    - Dst: controld_set_global_flags
      Src: /src/pacemaker/daemons/controld/controld_membership.c:442,1
    - Dst: pcmk__panic
      Src: /src/pacemaker/daemons/controld/controld_membership.c:447,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/daemons/controld/controld_membership.c:444,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_membership.c:455,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/controld/controld_membership.c:456,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_membership.c:457,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_membership.c:459,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/daemons/controld/controld_membership.c:459,1
    - Dst: controld_update_cib
      Src: /src/pacemaker/daemons/controld/controld_membership.c:460,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_membership.c:482,1
    - Dst: controld_set_global_flags
      Src: /src/pacemaker/daemons/controld/controld_membership.c:488,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_membership.c:462,1
    - Dst: abort_after_delay
      Src: /src/pacemaker/daemons/controld/controld_membership.c:479,1
    - Dst: controld_clear_global_flags
      Src: /src/pacemaker/daemons/controld/controld_membership.c:490,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - quorum
    - force_update
    argTypes:
    - gboolean
    - gboolean
    constantsTouched: []
    func_position:
      end: 492
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 492
    functionName: crm_update_quorum
    functionSourceFile: /src/pacemaker/daemons/controld/controld_membership.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_debug
    - controld_update_cib
    - controld_set_global_flags
    - pcmk__btoa
    - crm_xml_add
    - pcmk_is_set
    - pcmk__xml_free
    - crm_xml_add_int
    - controld_clear_global_flags
    - pcmk_all_flags_set
    - pcmk__panic
    - abort_after_delay
    - abort_transition
    linkageType: ''
    returnType: void
    signature: 'void crm_update_quorum(gboolean quorum, gboolean force_update) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_membership.c:140,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/daemons/controld/controld_membership.c:143,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_membership.c:148,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/daemons/controld/controld_membership.c:161,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_membership.c:162,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_membership.c:183,1
    - Dst: controld_get_join_phase
      Src: /src/pacemaker/daemons/controld/controld_membership.c:184,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_membership.c:142,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_membership.c:155,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_membership.c:167,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_membership.c:168,1
    - Dst: compare_version
      Src: /src/pacemaker/daemons/controld/controld_membership.c:156,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/daemons/controld/controld_membership.c:158,1
    - Dst: crm_get_cluster_proc
      Src: /src/pacemaker/daemons/controld/controld_membership.c:176,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_membership.c:189,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_membership.c:192,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_membership.c:153,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_membership.c:176,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_membership.c:179,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_membership.c:197,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_membership.c:135,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_membership.c:146,1
    - Dst: pcmk__cluster_get_xml_id
      Src: /src/pacemaker/daemons/controld/controld_membership.c:147,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_membership.c:149,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/daemons/controld/controld_membership.c:171,1
    - Dst: compare_version
      Src: /src/pacemaker/daemons/controld/controld_membership.c:169,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_membership.c:193,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 4
    argNames:
    - node
    - flags
    - parent
    - source
    argTypes:
    - pcmk__node_status_t*
    - uint32_t
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 200
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 200
    functionName: create_node_state_update
    functionSourceFile: /src/pacemaker/daemons/controld/controld_membership.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__cluster_get_xml_id
    - controld_get_join_phase
    - crm_xml_add
    - compare_version
    - pcmk__str_eq
    - pcmk__xe_set_bool_attr
    - pcmk_is_set
    - pcmk__xml_free
    - crm_xml_add_ll
    - crm_info
    - crm_get_cluster_proc
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *create_node_state_update(pcmk__node_status_t *node, uint32_t
      flags, xmlNode *parent, const char *source) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:35,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:37,1
    - Dst: pcmk__update_peer_expected
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:40,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: update_dc_expected
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_attr_is_true
    - pcmk__update_peer_expected
    - pcmk__get_node
    linkageType: ''
    returnType: void
    signature: 'static void update_dc_expected(const xmlNode *msg) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:75,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:76,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:80,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:86,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:82,1
    - Dst: update_dc
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:87,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:88,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:89,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 96
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 96
    functionName: do_cl_join_announce
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - update_dc
    - pcmk__cluster_send_message
    - fsa_state2string
    - pcmk_is_set
    - pcmk__xml_free
    - pcmk__new_request
    - crm_warn
    linkageType: ''
    returnType: void
    signature: 'void do_cl_join_announce(long long action, enum crmd_fsa_cause cause,
      enum crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t
      * msg_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fsa_typed_data
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:110,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:114,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:118,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:116,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:117,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:119,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:123,1
    - Dst: remove_cib_op_callback
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:124,1
    - Dst: update_dc
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:128,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:129,1
    - Dst: update_dc_expected
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:134,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:140,1
    - Dst: fsa_register_cib_callback
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:138,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:143,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:138,1
    - Dst: controld_set_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:142,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 144
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 144
    functionName: do_cl_join_offer_respond
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_client.c
    functionUses: []
    functionsReached:
    - update_dc
    - CRM_CHECK
    - fsa_typed_data
    - remove_cib_op_callback
    - fsa_register_cib_callback
    - controld_set_fsa_action_flags
    - pcmk__str_copy
    - update_dc_expected
    - crm_element_value
    - controld_trigger_fsa
    - crm_warn
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void do_cl_join_offer_respond(long long action, enum crmd_fsa_cause
      cause, enum crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t
      * msg_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:197,1
    - Dst: cib__update_node_attr
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:200,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:207,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:208,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:198,1
    - Dst: cib__update_node_attr
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:210,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:217,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:218,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:221,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - start_state
    - node_name
    - node_uuid
    - remote
    argTypes:
    - char*
    - char*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 225
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 225
    functionName: set_join_state
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - cib__update_node_attr
    - pcmk__str_eq
    - crm_notice
    - crm_warn
    linkageType: ''
    returnType: void
    signature: 'void set_join_state(const char *start_state, const char *node_name,
      const char *node_uuid, bool remote) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:150,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:161,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:162,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:155,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:152,1
    - Dst: register_fsa_error_adv
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:163,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:166,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:171,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:174,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:176,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:178,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:183,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:184,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:185,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:190,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:186,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 191
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 191
    functionName: join_query_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_client.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_debug
    - crm_trace
    - pcmk__get_node
    - CRM_LOG_ASSERT
    - crm_xml_add
    - register_fsa_error_adv
    - pcmk__cluster_send_message
    - pcmk__xml_free
    - pcmk__xe_copy_attrs
    - pcmk__new_request
    - pcmk_strerror
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void join_query_callback(xmlNode * msg, int call_id, int rc, xmlNode
      * output, void *user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:230,1
    - Dst: pcmk__cluster_lookup_remote_node
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:235,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:232,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:231,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:242,1
    - Dst: pcmk__update_peer_state
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:246,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 2
    argNames:
    - node
    - userdata
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 250
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 250
    functionName: update_conn_host_cache
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_client.c
    functionUses: []
    functionsReached:
    - pcmk__cluster_lookup_remote_node
    - pcmk__update_peer_state
    - pcmk__str_update
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'static int update_conn_host_cache(xmlNode *node, void *userdata) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:268,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:280,1
    - Dst: update_attrd
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:304,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:291,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:349,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:368,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:356,1
    - Dst: fsa_typed_data
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:263,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:264,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:271,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:320,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:322,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:370,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:270,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:267,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:276,1
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:290,1
    - Dst: controld_query_executor_state
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:308,1
    - Dst: update_dc_expected
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:301,1
    - Dst: pcmk__new_request
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:311,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:338,1
    - Dst: set_join_state
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:342,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:348,1
    - Dst: register_fsa_input_adv
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:352,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:283,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:285,1
    - Dst: update_dc
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:295,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:286,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:296,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:317,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:361,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:363,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 57
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 372
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 372
    functionName: do_cl_join_finalize_respond
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_client.c
    functionUses: []
    functionsReached:
    - pcmk__get_node
    - pcmk__xe_first_child
    - controld_query_executor_state
    - update_attrd
    - register_fsa_error
    - pcmk__xe_attr_is_true
    - update_dc
    - pcmk__cluster_send_message
    - pcmk_is_set
    - update_dc_expected
    - crm_element_value
    - pcmk__new_request
    - crm_err
    - pcmk__str_eq
    - set_join_state
    - crm_xml_add_int
    - crm_warn
    - crm_trace
    - crm_debug
    - fsa_typed_data
    - pcmk__xe_foreach_child
    - controld_is_local_node
    - register_fsa_input_adv
    - pcmk__env_option
    - pcmk__xml_free
    - controld_set_fsa_input_flags
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'void do_cl_join_finalize_respond(long long action, enum crmd_fsa_cause
      cause, enum crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t
      * msg_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__new_request
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:52,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:57,1
    - Dst: update_dc
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:56,1
    - Dst: sleep
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:55,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:58,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_join_client.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: do_cl_join_query
    functionSourceFile: /src/pacemaker/daemons/controld/controld_join_client.c
    functionUses: []
    functionsReached:
    - crm_debug
    - sleep
    - update_dc
    - pcmk__cluster_send_message
    - pcmk__xml_free
    - pcmk__new_request
    linkageType: ''
    returnType: void
    signature: 'void do_cl_join_query(long long action, enum crmd_fsa_cause cause,
      enum crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t
      * msg_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_append
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:313,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - target
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: add_stonith_cleanup
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - g_list_append
    linkageType: ''
    returnType: void
    signature: 'void add_stonith_cleanup(const char *target) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:333,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:334,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:336,1
    - Dst: g_list_delete_link
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:335,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - target
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 339
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 339
    functionName: remove_stonith_cleanup
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - free
    - g_list_delete_link
    - pcmk__str_eq
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void remove_stonith_cleanup(const char *target) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:412,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:420,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:425,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:424,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:426,1
    - Dst: pcmk__update_graph
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:428,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:429,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:430,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:436,1
    - Dst: abort_for_stonith_failure
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:437,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 1
    argNames:
    - graph
    argTypes:
    - pcmk__graph_t*
    constantsTouched: []
    func_position:
      end: 442
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 442
    functionName: fail_incompletable_stonith
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - abort_for_stonith_failure
    - pcmk__set_graph_action_flags
    - pcmk__str_eq
    - crm_notice
    - pcmk_is_set
    - crm_element_value
    - crm_warn
    - pcmk__xe_id
    - pcmk__update_graph
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean fail_incompletable_stonith(pcmk__graph_t *graph) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:491,1
    - Dst: stonith__event_exit_reason
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:515,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:519,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:522,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:527,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:603,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:613,1
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:629,1
    - Dst: add_stonith_cleanup
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:632,1
    - Dst: remote_ra_fail
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:641,1
    - Dst: stonith__event_exit_status
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:508,1
    - Dst: stonith__event_execution_status
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:507,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:525,1
    - Dst: stonith__event_exit_status
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:530,1
    - Dst: update_node_state_after_fencing
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:593,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:607,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:609,1
    - Dst: update_node_state_after_fencing
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:630,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:550,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:567,1
    - Dst: pcmk__panic
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:548,1
    - Dst: controld_is_local_node
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:535,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:545,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:621,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:496,1
    - Dst: getpid
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:492,1
    - Dst: crmd_alert_fencing_op
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:517,1
    - Dst: st_fail_count_increment
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:563,1
    - Dst: st_fail_count_reset
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:561,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:571,1
    - Dst: pcmk__search_node_caches
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:581,1
    - Dst: pcmk__cluster_get_xml_id
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:589,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:615,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:619,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:640,1
    - Dst: crmd_peer_down
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:644,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 91
    argCount: 2
    argNames:
    - st
    - event
    argTypes:
    - stonith_t*
    - stonith_event_t*
    constantsTouched: []
    func_position:
      end: 646
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 646
    functionName: handle_fence_notification
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - add_stonith_cleanup
    - crm_exit
    - crm_notice
    - stonith__event_execution_status
    - pcmk__panic
    - stonith__event_exit_status
    - crm_strdup_printf
    - pcmk_is_set
    - crm_crit
    - crm_err
    - abort_transition
    - pcmk_exec_status_str
    - pcmk__cluster_get_xml_id
    - stonith__event_exit_reason
    - remote_ra_fail
    - pcmk__search_node_caches
    - pcmk__str_eq
    - getpid
    - st_fail_count_reset
    - st_fail_count_increment
    - crm_info
    - crmd_peer_down
    - crmd_alert_fencing_op
    - controld_is_local_node
    - update_node_state_after_fencing
    linkageType: ''
    returnType: void
    signature: 'static void handle_fence_notification(stonith_t *st, stonith_event_t
      *event) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:798,1
    - Dst: stonith__exit_status
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:799,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:809,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:830,1
    - Dst: stonith__exit_status
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:838,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:815,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:832,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:845,1
    - Dst: pcmk__ttoa
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:849,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:859,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:879,1
    - Dst: trigger_graph
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:921,1
    - Dst: st_fail_count_reset
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:883,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:786,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:796,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:804,1
    - Dst: decode_transition_key
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:804,1
    - Dst: controld_get_action
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:821,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:839,1
    - Dst: update_attrd
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:864,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:868,1
    - Dst: stonith__execution_status
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:887,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:903,1
    - Dst: abort_for_stonith_failure
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:917,1
    - Dst: update_node_state_after_fencing
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:878,1
    - Dst: update_attrd
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:874,1
    - Dst: stonith__exit_reason
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:793,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:811,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:823,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:841,1
    - Dst: stop_te_timer
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:837,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:844,1
    - Dst: te_action_confirmed
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:846,1
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:849,1
    - Dst: update_attrd
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:869,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:872,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:894,1
    - Dst: stonith__exit_reason
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:888,1
    - Dst: pcmk__update_graph
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:920,1
    - Dst: stonith__execution_status
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:796,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:847,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:866,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:877,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:897,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:908,1
    - Dst: st_fail_count_increment
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:916,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:924,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:925,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 96
    argCount: 2
    argNames:
    - stonith
    - data
    argTypes:
    - stonith_t*
    - stonith_callback_data_t*
    constantsTouched: []
    func_position:
      end: 927
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 927
    functionName: tengine_stonith_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - pcmk__btoa
    - controld_get_action
    - update_attrd
    - crm_notice
    - te_action_confirmed
    - free
    - trigger_graph
    - stonith__exit_status
    - decode_transition_key
    - g_hash_table_lookup
    - stop_te_timer
    - pcmk_is_set
    - crm_element_value
    - crm_meta_value
    - crm_err
    - pcmk_exec_status_str
    - CRM_CHECK
    - pcmk__set_graph_action_flags
    - pcmk__str_eq
    - st_fail_count_reset
    - crm_warn
    - crm_info
    - st_fail_count_increment
    - pcmk__update_graph
    - stonith__execution_status
    - abort_for_stonith_failure
    - stonith__exit_reason
    - pcmk__ttoa
    - time
    - update_node_state_after_fencing
    linkageType: ''
    returnType: void
    signature: 'static void tengine_stonith_callback(stonith_t *stonith, stonith_callback_data_t
      *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:956,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:958,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:957,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:965,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:959,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:967,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:968,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:969,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:970,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:973,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:980,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:989,1
    - Dst: fence_with_delay
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:990,1
    - Dst: controld_timer_fencer_connect
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:987,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:977,1
    - Dst: pcmk__transition_key
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:991,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - graph
    - action
    argTypes:
    - pcmk__graph_t*
    - pcmk__graph_action_t*
    constantsTouched: []
    func_position:
      end: 1001
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 1001
    functionName: controld_execute_fence_action
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__timeout_ms2s
    - fence_with_delay
    - crm_log_xml_warn
    - crm_notice
    - pcmk__transition_key
    - crm_element_value
    - crm_meta_value
    - pcmk__scan_min_int
    - pcmk__xe_id
    - controld_timer_fencer_connect
    linkageType: ''
    returnType: int
    signature: 'int controld_execute_fence_action(pcmk__graph_t *graph, pcmk__graph_action_t
      *action) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: te_cleanup_stonith_history_sync
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:1053,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:1054,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - st
    - st_event
    argTypes:
    - stonith_t*
    - stonith_event_t*
    constantsTouched: []
    func_position:
      end: 1055
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1055
    functionName: tengine_stonith_history_synced
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - crm_debug
    - te_cleanup_stonith_history_sync
    linkageType: ''
    returnType: void
    signature: 'static void tengine_stonith_history_synced(stonith_t *st, stonith_event_t
      *st_event) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: te_cleanup_stonith_history_sync
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:447,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:449,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:450,1
    - Dst: mainloop_timer_start
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:452,1
    - Dst: mainloop_timer_running
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:451,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:455,1
    - Dst: fail_incompletable_stonith
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:469,1
    - Dst: trigger_graph
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:470,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - stonith_t*
    - stonith_event_t*
    constantsTouched: []
    func_position:
      end: 472
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 472
    functionName: tengine_stonith_connection_destroy
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - crm_info
    - pcmk_is_set
    - mainloop_timer_start
    - fail_incompletable_stonith
    - te_cleanup_stonith_history_sync
    - trigger_graph
    - mainloop_timer_running
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void tengine_stonith_connection_destroy(stonith_t *st, stonith_event_t
      *e) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:933,1
    - Dst: stonith__set_call_options
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:936,1
    - Dst: crmd_join_phase_count
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:935,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - target
    - type
    - delay
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 940
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 940
    functionName: fence_with_delay
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - stonith__set_call_options
    - crmd_join_phase_count
    - pcmk__timeout_ms2s
    linkageType: ''
    returnType: int
    signature: 'static int fence_with_delay(const char *target, const char *type,
      int delay) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_get_msec
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:1006,1
    - Dst: pcmk__valid_stonith_watchdog_timeout
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:1013,1
    - Dst: stonith__watchdog_fencing_enabled_for_node_api
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:1011,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1016
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1016
    functionName: controld_verify_stonith_watchdog_timeout
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - pcmk__valid_stonith_watchdog_timeout
    - crm_get_msec
    - stonith__watchdog_fencing_enabled_for_node_api
    linkageType: ''
    returnType: bool
    signature: 'bool controld_verify_stonith_watchdog_timeout(const char *value) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_timer_del
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:1036,1
    - Dst: mainloop_timer_del
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:1038,1
    - Dst: mainloop_timer_stop
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:1042,1
    - Dst: mainloop_timer_stop
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:1041,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - st
    - free_timers
    argTypes:
    - stonith_t*
    - bool
    constantsTouched: []
    func_position:
      end: 1048
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1048
    functionName: te_cleanup_stonith_history_sync
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - mainloop_timer_stop
    - mainloop_timer_del
    linkageType: ''
    returnType: void
    signature: 'void te_cleanup_stonith_history_sync(stonith_t *st, bool free_timers) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:1060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 1062
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1062
    functionName: stonith_history_sync_set_trigger
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - mainloop_set_trigger
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean stonith_history_sync_set_trigger(gpointer user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:150,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:159,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:160,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 1
    argNames:
    - target
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 165
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 165
    functionName: st_fail_count_reset
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - g_hash_table_iter_next
    - g_hash_table_iter_init
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: 'void st_fail_count_reset(const char *target) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:198,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:200,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:199,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:205,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:201,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 207
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 207
    functionName: cib_fencing_updated
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - crm_info
    - crm_log_xml_warn
    - pcmk_strerror
    - crm_err
    - abort_transition
    linkageType: ''
    returnType: void
    signature: 'static void cib_fencing_updated(xmlNode *msg, int call_id, int rc,
      xmlNode *output, void *user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:111,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:121,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:112,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:129,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 1
    argNames:
    - target
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 132
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 132
    functionName: too_many_st_failures
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - crm_warn
    - g_hash_table_iter_init
    - g_hash_table_lookup
    - g_hash_table_iter_next
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean too_many_st_failures(const char *target) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:173,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:186,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:186,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:176,1
    - Dst: malloc
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:180,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - target
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 188
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 188
    functionName: st_fail_count_increment
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - malloc
    - g_hash_table_lookup
    - pcmk__strkey_table
    - pcmk__str_copy
    - g_hash_table_insert
    linkageType: ''
    returnType: void
    signature: 'static void st_fail_count_increment(const char *target) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:374,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:379,1
    - Dst: update_node_state_after_fencing
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:378,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:377,1
    - Dst: pcmk__cluster_get_xml_id
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:375,1
    - Dst: g_list_free
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:381,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 383
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 383
    functionName: execute_stonith_cleanup
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - pcmk__cluster_get_xml_id
    - pcmk__get_node
    - g_list_free
    - crm_notice
    - free
    - update_node_state_after_fencing
    linkageType: ''
    returnType: void
    signature: 'void execute_stonith_cleanup(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: controld_clear_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:735,1
    - Dst: mainloop_timer_del
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:748,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:752,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - destroy
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 756
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 756
    functionName: controld_disconnect_fencer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - free
    - mainloop_timer_del
    - controld_clear_fsa_input_flags
    linkageType: ''
    returnType: void
    signature: 'void controld_disconnect_fencer(bool destroy) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: te_cleanup_stonith_history_sync
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:764,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:771,1
    - Dst: stonith__history_free
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:768,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 774
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 774
    functionName: do_stonith_history_sync
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - stonith__history_free
    - te_cleanup_stonith_history_sync
    - crm_info
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean do_stonith_history_sync(gpointer user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_add_trigger
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:1086,1
    - Dst: mainloop_timer_start
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:1098,1
    - Dst: mainloop_timer_add
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:1093,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:1097,1
    - Dst: mainloop_timer_add
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:1102,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:1106,1
    - Dst: mainloop_timer_start
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:1107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - long_timeout
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1110
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1110
    functionName: te_trigger_stonith_history_sync
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - mainloop_add_trigger
    - crm_info
    - mainloop_timer_add
    - mainloop_timer_start
    linkageType: ''
    returnType: void
    signature: 'void te_trigger_stonith_history_sync(bool long_timeout) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:48,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:54,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: update_stonith_max_attempts
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - crm_debug
    - CRM_CHECK
    - pcmk_parse_score
    linkageType: ''
    returnType: void
    signature: 'static void update_stonith_max_attempts(const char *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:92,1
    - Dst: set_fence_reaction
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:93,1
    - Dst: update_stonith_max_attempts
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:96,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - options
    argTypes:
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: controld_configure_fencing
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - set_fence_reaction
    - update_stonith_max_attempts
    - g_hash_table_lookup
    linkageType: ''
    returnType: void
    signature: 'void controld_configure_fencing(GHashTable *options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: too_many_st_failures
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:287,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - abort_action
    - target
    - reason
    argTypes:
    - enum pcmk__graph_next
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 292
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 292
    functionName: abort_for_stonith_failure
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - too_many_st_failures
    - abort_transition
    linkageType: ''
    returnType: void
    signature: 'static void abort_for_stonith_failure(enum pcmk__graph_next abort_action,
      const char *target, const xmlNode *reason) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:69,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:73,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - reaction_s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 79
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: set_fence_reaction
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - crm_warn
    - pcmk__str_eq
    linkageType: ''
    returnType: void
    signature: 'static void set_fence_reaction(const char *reaction_s) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:234,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:245,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:233,1
    - Dst: create_node_state_update
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:251,1
    - Dst: pcmk__ttoa
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:255,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:230,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:252,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:257,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:264,1
    - Dst: crmd_peer_down
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:249,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:267,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:266,1
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:255,1
    - Dst: fsa_register_cib_callback
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:267,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:246,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:254,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:258,1
    - Dst: controld_delete_node_state
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:269,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - target
    - target_xml_id
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 270
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 270
    functionName: update_node_state_after_fencing
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__get_node
    - CRM_CHECK
    - fsa_register_cib_callback
    - crm_xml_add
    - pcmk__ttoa
    - time
    - pcmk__str_copy
    - pcmk_is_set
    - free
    - pcmk__xml_free
    - controld_delete_node_state
    - crm_info
    - crmd_peer_down
    - create_node_state_update
    linkageType: ''
    returnType: void
    signature: 'static void update_node_state_after_fencing(const char *target, const
      char *target_xml_id) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:354,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:355,1
    - Dst: g_list_free
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:357,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 360
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 360
    functionName: purge_stonith_cleanup
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - crm_info
    - free
    - g_list_free
    linkageType: ''
    returnType: void
    signature: 'void purge_stonith_cleanup(void) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: stonith__api_connect_retry
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:677,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:680,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:697,1
    - Dst: mainloop_timer_running
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:699,1
    - Dst: te_trigger_stonith_history_sync
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:723,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:705,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:679,1
    - Dst: mainloop_timer_add
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:688,1
    - Dst: GINT_TO_POINTER
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:690,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:694,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:696,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:724,1
    - Dst: stonith__api_new
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:663,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:665,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:671,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:706,1
    - Dst: mainloop_timer_start
      Src: /src/pacemaker/daemons/controld/controld_fencing.c:700,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 728
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 728
    functionName: controld_timer_fencer_connect
    functionSourceFile: /src/pacemaker/daemons/controld/controld_fencing.c
    functionUses: []
    functionsReached:
    - pcmk_strerror
    - te_trigger_stonith_history_sync
    - crm_info
    - GINT_TO_POINTER
    - stonith__api_new
    - crm_err
    - mainloop_timer_add
    - pcmk_is_set
    - crm_notice
    - pcmk_rc_str
    - mainloop_timer_start
    - stonith__api_connect_retry
    - mainloop_timer_running
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean controld_timer_fencer_connect(gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: register_fsa_error_adv
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:62,1
    - Dst: pcmk__xml_write_file
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:68,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:69,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:63,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:66,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:72,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:75,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 77
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 77
    functionName: save_cib_contents
    functionSourceFile: /src/pacemaker/daemons/controld/controld_schedulerd.c
    functionUses: []
    functionsReached:
    - pcmk__xml_write_file
    - CRM_CHECK
    - crm_strdup_printf
    - register_fsa_error_adv
    - crm_notice
    - free
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void save_cib_contents(xmlNode *msg, int call_id, int rc, xmlNode
      *output, void *user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:129,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:147,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:146,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:131,1
    - Dst: controld_stop_sched_timer
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:136,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:148,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:151,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:152,1
    - Dst: register_fsa_input_later
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:153,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:155,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:158,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - reply
    argTypes:
    - pcmk_schedulerd_api_reply_t*
    constantsTouched: []
    func_position:
      end: 160
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 160
    functionName: handle_reply
    functionSourceFile: /src/pacemaker/daemons/controld/controld_schedulerd.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xml_copy
    - crm_xml_add
    - pcmk__str_eq
    - pcmk__xml_free
    - register_fsa_input_later
    - controld_stop_sched_timer
    - crm_info
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void handle_reply(pcmk_schedulerd_api_reply_t *reply) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:187,1
    - Dst: pcmk_register_ipc_callback
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:198,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:193,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:193,1
    - Dst: pcmk_new_ipc_api
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:190,1
    - Dst: pcmk__connect_ipc_retry_conrefused
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:200,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:202,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:203,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:203,1
    - Dst: controld_set_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 209
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 209
    functionName: new_schedulerd_ipc_connection
    functionSourceFile: /src/pacemaker/daemons/controld/controld_schedulerd.c
    functionUses: []
    functionsReached:
    - pcmk_ipc_name
    - pcmk_new_ipc_api
    - pcmk__connect_ipc_retry_conrefused
    - pcmk_rc_str
    - pcmk_register_ipc_callback
    - controld_set_fsa_input_flags
    - crm_err
    linkageType: ''
    returnType: bool
    signature: 'static bool new_schedulerd_ipc_connection(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:221,1
    - Dst: controld_clear_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:222,1
    - Dst: handle_disconnect
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:224,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:226,1
    - Dst: pcmk_disconnect_ipc
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:223,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:227,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:230,1
    - Dst: new_schedulerd_ipc_connection
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:232,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:233,1
    - Dst: register_fsa_error
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:234,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 237
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 237
    functionName: do_pe_control
    functionSourceFile: /src/pacemaker/daemons/controld/controld_schedulerd.c
    functionUses: []
    functionsReached:
    - controld_clear_fsa_input_flags
    - pcmk_disconnect_ipc
    - register_fsa_error
    - pcmk_is_set
    - new_schedulerd_ipc_connection
    - crm_warn
    - handle_disconnect
    - crm_info
    linkageType: ''
    returnType: void
    signature: 'void do_pe_control(long long action, enum crmd_fsa_cause cause, enum
      crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crmd_exit
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 269
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 269
    functionName: controld_sched_timeout
    functionSourceFile: /src/pacemaker/daemons/controld/controld_schedulerd.c
    functionUses: []
    functionsReached:
    - crmd_exit
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean controld_sched_timeout(gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_timer_del
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 319
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 319
    functionName: controld_free_sched_timer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_schedulerd.c
    functionUses: []
    functionsReached:
    - mainloop_timer_del
    linkageType: ''
    returnType: void
    signature: 'void controld_free_sched_timer(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:331,1
    - Dst: register_fsa_input_before
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:339,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:356,1
    - Dst: register_fsa_input_before
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:359,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:336,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:352,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:338,1
    - Dst: crmd_fsa_stall
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:343,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:345,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:351,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:365,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:366,1
    - Dst: fsa_register_cib_callback
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:369,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:337,1
    - Dst: fsa_action2string
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:332,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:342,1
    - Dst: controld_set_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:344,1
    - Dst: controld_expect_sched_reply
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:368,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:355,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 5
    argNames:
    - action
    - cause
    - cur_state
    - current_input
    - msg_data
    argTypes:
    - long long
    - enum crmd_fsa_cause
    - enum crmd_fsa_state
    - enum crmd_fsa_input
    - fsa_data_t*
    constantsTouched: []
    func_position:
      end: 370
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 370
    functionName: do_pe_invoke
    functionSourceFile: /src/pacemaker/daemons/controld/controld_schedulerd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - register_fsa_input_before
    - crmd_fsa_stall
    - fsa_register_cib_callback
    - controld_set_fsa_action_flags
    - controld_expect_sched_reply
    - fsa_state2string
    - crm_notice
    - pcmk_is_set
    - crm_err
    - controld_trigger_fsa
    - crm_info
    - fsa_action2string
    linkageType: ''
    returnType: void
    signature: 'void do_pe_invoke(long long action, enum crmd_fsa_cause cause, enum
      crmd_fsa_state cur_state, enum crmd_fsa_input current_input, fsa_data_t * msg_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: handle_disconnect
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:170,1
    - Dst: handle_reply
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:174,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 4
    argCount: 5
    argNames:
    - api
    - event_type
    - status
    - event_data
    - user_data
    argTypes:
    - pcmk_ipc_api_t*
    - enum pcmk_ipc_event
    - crm_exit_t
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 180
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 180
    functionName: scheduler_event_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_schedulerd.c
    functionUses: []
    functionsReached:
    - handle_disconnect
    - handle_reply
    linkageType: ''
    returnType: void
    signature: 'static void scheduler_event_callback(pcmk_ipc_api_t *api, enum pcmk_ipc_event
      event_type, crm_exit_t status, void *event_data, void *user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:276,1
    - Dst: mainloop_timer_stop
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 280
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 280
    functionName: controld_stop_sched_timer
    functionSourceFile: /src/pacemaker/daemons/controld/controld_schedulerd.c
    functionUses: []
    functionsReached:
    - mainloop_timer_stop
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void controld_stop_sched_timer(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:390,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:383,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:391,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:420,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:431,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:417,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:443,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:392,1
    - Dst: pcmk__xe_set_id
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:438,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:440,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:441,1
    - Dst: pcmk_cib_xpath_for
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:381,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:414,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:432,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:436,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:423,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:427,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:387,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:395,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:400,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:401,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:402,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:410,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - xml
    - attr_name
    - attr_value
    argTypes:
    - xmlNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 444
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 444
    functionName: force_local_option
    functionSourceFile: /src/pacemaker/daemons/controld/controld_schedulerd.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xe_set_id
    - crm_trace
    - pcmk__xe_id
    - crm_strdup_printf
    - pcmk__xpath_result
    - pcmk__xe_first_child
    - crm_xml_add
    - xmlXPathFreeObject
    - free
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    - crm_err
    - pcmk_cib_xpath_for
    linkageType: ''
    returnType: void
    signature: 'static void force_local_option(xmlNode *xml, const char *attr_name,
      const char *attr_value) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: register_fsa_error_adv
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:455,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:454,1
    - Dst: fsa_state2string
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:470,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:475,1
    - Dst: controld_set_fsa_action_flags
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:478,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:483,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:496,1
    - Dst: pcmk__cluster_has_quorum
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:497,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:499,1
    - Dst: pcmk_schedulerd_api_graph
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:502,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:509,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:469,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:489,1
    - Dst: num_cib_op_callbacks
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:476,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:506,1
    - Dst: pcmk__locate_sbd
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:450,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:459,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:463,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:465,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:479,1
    - Dst: sleep
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:477,1
    - Dst: pcmk__refresh_node_caches_from_cib
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:487,1
    - Dst: force_local_option
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:494,1
    - Dst: pcmk__btoa
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:494,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:504,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:453,1
    - Dst: num_cib_op_callbacks
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:474,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:490,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:491,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:505,1
    - Dst: register_fsa_error_adv
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:507,1
    - Dst: controld_expect_sched_reply
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:510,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:511,1
    - Dst: pcmk__flag_text
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:515,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 517
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 517
    functionName: do_pe_invoke_callback
    functionSourceFile: /src/pacemaker/daemons/controld/controld_schedulerd.c
    functionUses: []
    functionsReached:
    - pcmk__btoa
    - controld_set_fsa_action_flags
    - free
    - pcmk__flag_text
    - num_cib_op_callbacks
    - register_fsa_error_adv
    - fsa_state2string
    - pcmk__xe_set_bool_attr
    - pcmk_is_set
    - force_local_option
    - controld_trigger_fsa
    - pcmk_rc_str
    - pcmk__assert
    - crm_err
    - crm_xml_add_int
    - pcmk_strerror
    - crm_trace
    - crm_debug
    - sleep
    - CRM_LOG_ASSERT
    - pcmk__locate_sbd
    - crm_xml_add
    - controld_expect_sched_reply
    - pcmk__cluster_has_quorum
    - pcmk__refresh_node_caches_from_cib
    - pcmk_schedulerd_api_graph
    linkageType: ''
    returnType: void
    signature: 'static void do_pe_invoke_callback(xmlNode * msg, int call_id, int
      rc, xmlNode * output, void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: controld_clear_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:36,1
    - Dst: pcmk_disconnect_ipc
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:37,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:40,1
    - Dst: handle_disconnect
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: controld_shutdown_schedulerd_ipc
    functionSourceFile: /src/pacemaker/daemons/controld/controld_schedulerd.c
    functionUses: []
    functionsReached:
    - pcmk_free_ipc_api
    - handle_disconnect
    - pcmk_disconnect_ipc
    - controld_clear_fsa_input_flags
    linkageType: ''
    returnType: void
    signature: 'void controld_shutdown_schedulerd_ipc(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: controld_expect_sched_reply
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:87,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:93,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:89,1
    - Dst: crm_generate_uuid
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:91,1
    - Dst: fsa_register_cib_callback
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:109,1
    - Dst: controld_clear_fsa_input_flags
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:112,1
    - Dst: controld_trigger_fsa
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 115
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 115
    functionName: handle_disconnect
    functionSourceFile: /src/pacemaker/daemons/controld/controld_schedulerd.c
    functionUses: []
    functionsReached:
    - controld_clear_fsa_input_flags
    - fsa_register_cib_callback
    - controld_expect_sched_reply
    - pcmk_is_set
    - crm_generate_uuid
    - controld_trigger_fsa
    - crm_crit
    linkageType: ''
    returnType: void
    signature: 'static void handle_disconnect(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_timer_add
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:295,1
    - Dst: controld_stop_sched_timer
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:302,1
    - Dst: mainloop_timer_start
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:300,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_schedulerd.c:304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ref
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 306
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 306
    functionName: controld_expect_sched_reply
    functionSourceFile: /src/pacemaker/daemons/controld/controld_schedulerd.c
    functionUses: []
    functionsReached:
    - free
    - mainloop_timer_add
    - mainloop_timer_start
    - controld_stop_sched_timer
    linkageType: ''
    returnType: void
    signature: 'void controld_expect_sched_reply(char *ref) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_remove_all
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: controld_remove_all_outside_events
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_events.c
    functionUses: []
    functionsReached:
    - g_hash_table_remove_all
    linkageType: ''
    returnType: void
    signature: 'void controld_remove_all_outside_events(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_new
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:72,1
    - Dst: GINT_TO_POINTER
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:75,1
    - Dst: g_hash_table_add
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - action_num
    argTypes:
    - gint
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: record_outside_event
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_events.c
    functionUses: []
    functionsReached:
    - GINT_TO_POINTER
    - g_hash_table_add
    - g_hash_table_new
    linkageType: ''
    returnType: int
    signature: 'static int record_outside_event(gint action_num) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:197,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:206,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:219,1
    - Dst: pcmk__ttoa
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:234,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:221,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:245,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:275,1
    - Dst: g_list_free
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:280,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:198,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:204,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:205,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:210,1
    - Dst: pcmk_str_is_infinity
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:237,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:279,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:287,1
    - Dst: pcmk__node_name_from_uuid
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:191,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:206,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:214,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:216,1
    - Dst: time
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:234,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:241,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:264,1
    - Dst: pcmk__lastfailure_name
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:266,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:271,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:278,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:286,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:190,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:192,1
    - Dst: parse_op_key
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:205,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:211,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:251,1
    - Dst: pcmk__failcount_name
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:253,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:258,1
    - Dst: update_attrd_list
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:273,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:276,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:282,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 72
    argCount: 6
    argNames:
    - event
    - event_node_uuid
    - rc
    - target_rc
    - do_update
    - ignore_failures
    argTypes:
    - xmlNode*
    - char*
    - int
    - int
    - gboolean
    - gboolean
    constantsTouched: []
    func_position:
      end: 289
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 289
    functionName: update_failcount
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_events.c
    functionUses: []
    functionsReached:
    - free
    - g_list_free
    - pcmk__s
    - g_hash_table_lookup
    - crm_element_value
    - pcmk__xe_id
    - crm_err
    - pcmk_str_is_infinity
    - CRM_CHECK
    - pcmk__failcount_name
    - update_attrd_list
    - pcmk__assert_alloc
    - pcmk__str_eq
    - crm_info
    - parse_op_key
    - crm_debug
    - pcmk__lastfailure_name
    - pcmk__ttoa
    - time
    - g_list_prepend
    - pcmk__node_name_from_uuid
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean update_failcount(const xmlNode *event, const char
      *event_node_uuid, int rc, int target_rc, gboolean do_update, gboolean ignore_failures) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:325,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:326,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:335,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:331,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:330,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:336,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:337,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:341,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 27
    argCount: 2
    argNames:
    - id
    - node
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 347
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 347
    functionName: get_cancel_action
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_events.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - crm_trace
    - crm_element_value
    linkageType: ''
    returnType: pcmk__graph_action_t*
    signature: 'pcmk__graph_action_t *get_cancel_action(const char *id, const char
      *node) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:110,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:123,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:126,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:135,1
    - Dst: pcmk__update_graph
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:139,1
    - Dst: pcmk__set_synapse_flags
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:136,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:121,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:113,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:148,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:100,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:116,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:134,1
    - Dst: stop_te_timer
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:138,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:142,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:141,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:150,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:159,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:134,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:144,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:158,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 53
    argCount: 2
    argNames:
    - graph
    - down_node
    argTypes:
    - pcmk__graph_t*
    - char*
    constantsTouched: []
    func_position:
      end: 165
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 165
    functionName: fail_incompletable_actions
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_events.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - pcmk__set_synapse_flags
    - pcmk__get_node
    - pcmk__set_graph_action_flags
    - stop_te_timer
    - pcmk__str_eq
    - crm_notice
    - pcmk_is_set
    - crm_element_value
    - crm_info
    - pcmk__update_graph
    - abort_transition
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean fail_incompletable_actions(pcmk__graph_t *graph, const char
      *down_node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 307
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 307
    functionName: controld_get_action
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_events.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: pcmk__graph_action_t*
    signature: 'pcmk__graph_action_t *controld_get_action(int id) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_cancel_action
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:354,1
    - Dst: te_action_confirmed
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:363,1
    - Dst: stop_te_timer
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:362,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:360,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:359,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:365,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - id
    - node_id
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 368
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 368
    functionName: confirm_cancel_action
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_events.c
    functionUses: []
    functionsReached:
    - stop_te_timer
    - te_action_confirmed
    - crm_element_value
    - crm_info
    - get_cancel_action
    linkageType: ''
    returnType: bool
    signature: 'bool confirm_cancel_action(const char *id, const char *node_id) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:446,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:457,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:466,1
    - Dst: parse_op_key
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:498,1
    - Dst: get_node_id
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:505,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:476,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:548,1
    - Dst: pcmk__set_graph_action_flags
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:553,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:559,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:585,1
    - Dst: update_failcount
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:601,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:458,1
    - Dst: decode_transition_key
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:463,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:481,1
    - Dst: confirm_cancel_action
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:505,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:515,1
    - Dst: controld_get_action
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:525,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:533,1
    - Dst: crm_meta_value
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:548,1
    - Dst: te_action_confirmed
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:557,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:560,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:589,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:603,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:606,1
    - Dst: pcmk__effective_rc
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:461,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:510,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:488,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:530,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:540,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:569,1
    - Dst: update_failcount
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:580,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:582,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:585,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:595,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:598,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:576,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:578,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:440,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:452,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:459,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:468,1
    - Dst: record_outside_event
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:475,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:485,1
    - Dst: abort_transition
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:519,1
    - Dst: stop_te_timer
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:556,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:606,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:611,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 111
    argCount: 2
    argNames:
    - event
    - event_node
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 612
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 612
    functionName: process_graph_event
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_events.c
    functionUses: []
    functionsReached:
    - record_outside_event
    - controld_get_action
    - crm_notice
    - te_action_confirmed
    - free
    - decode_transition_key
    - update_failcount
    - stop_te_timer
    - pcmk_is_set
    - get_node_id
    - crm_element_value
    - pcmk__assert
    - crm_meta_value
    - crm_err
    - abort_transition
    - pcmk_exec_status_str
    - crm_exit_str
    - pcmk__set_graph_action_flags
    - pcmk__str_eq
    - confirm_cancel_action
    - pcmk__effective_rc
    - crm_info
    - parse_op_key
    - crm_debug
    - crm_log_xml_debug
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'void process_graph_event(xmlNode *event, const char *event_node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: controld_destroy_outside_events_table
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_events.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: 'void controld_destroy_outside_events_table(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:388,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:401,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:404,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:400,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:399,1
    - Dst: free
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:412,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:415,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:416,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/controld/controld_te_events.c:419,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 1
    argNames:
    - target
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 422
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 422
    functionName: match_down_event
    functionSourceFile: /src/pacemaker/daemons/controld/controld_te_events.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_element_value
    - crm_strdup_printf
    - xmlXPathFreeObject
    - pcmk_is_set
    - free
    - pcmk__xpath_num_results
    - pcmk__xpath_search
    linkageType: ''
    returnType: pcmk__graph_action_t*
    signature: 'pcmk__graph_action_t *match_down_event(const char *target) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crmd_exit
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:53,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:55,1
    - Dst: register_fsa_input
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: handle_attr_error
    functionSourceFile: /src/pacemaker/daemons/controld/controld_attrd.c
    functionUses: []
    functionsReached:
    - register_fsa_input
    - crmd_exit
    - pcmk_is_set
    linkageType: ''
    returnType: void
    signature: 'static void handle_attr_error(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - is_remote
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: node_type
    functionSourceFile: /src/pacemaker/daemons/controld/controld_attrd.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *node_type(bool is_remote) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_new_ipc_api
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:94,1
    - Dst: pcmk__attrd_api_update_list
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:97,1
    - Dst: handle_attr_error
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:104,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:103,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - attrs
    - opts
    argTypes:
    - GList*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: update_attrd_list
    functionSourceFile: /src/pacemaker/daemons/controld/controld_attrd.c
    functionUses: []
    functionsReached:
    - handle_attr_error
    - pcmk__attrd_api_update_list
    - pcmk_new_ipc_api
    - do_crm_log
    - pcmk_rc_str
    linkageType: ''
    returnType: void
    signature: 'void update_attrd_list(GList *attrs, uint32_t opts) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:25,1
    - Dst: pcmk_disconnect_ipc
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:26,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: controld_close_attrd_ipc
    functionSourceFile: /src/pacemaker/daemons/controld/controld_attrd.c
    functionUses: []
    functionsReached:
    - pcmk_free_ipc_api
    - pcmk_disconnect_ipc
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void controld_close_attrd_ipc(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: when
    functionSourceFile: /src/pacemaker/daemons/controld/controld_attrd.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *when(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_new_ipc_api
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:68,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:80,1
    - Dst: pcmk__attrd_api_update
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:76,1
    - Dst: pcmk__set_node_attr_flags
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:74,1
    - Dst: node_type
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:82,1
    - Dst: when
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:83,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:83,1
    - Dst: handle_attr_error
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:84,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 5
    argNames:
    - host
    - name
    - value
    - user_name
    - is_remote_node
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - gboolean
    constantsTouched: []
    func_position:
      end: 86
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 86
    functionName: update_attrd
    functionSourceFile: /src/pacemaker/daemons/controld/controld_attrd.c
    functionUses: []
    functionsReached:
    - when
    - handle_attr_error
    - pcmk_new_ipc_api
    - node_type
    - do_crm_log
    - pcmk__attrd_api_update
    - pcmk_rc_str
    - pcmk__set_node_attr_flags
    linkageType: ''
    returnType: void
    signature: 'void update_attrd(const char *host, const char *name, const char *value,
      const char *user_name, gboolean is_remote_node) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_new_ipc_api
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:114,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:117,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:122,1
    - Dst: when
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:124,1
    - Dst: pcmk__attrd_api_purge
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:119,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - host
    - user_name
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 126
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 126
    functionName: update_attrd_remote_node_removed
    functionSourceFile: /src/pacemaker/daemons/controld/controld_attrd.c
    functionUses: []
    functionsReached:
    - crm_trace
    - when
    - pcmk_new_ipc_api
    - pcmk__attrd_api_purge
    - pcmk_rc_str
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void update_attrd_remote_node_removed(const char *host, const char
      *user_name) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_new_ipc_api
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:135,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:152,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:150,1
    - Dst: pcmk__set_node_attr_flags
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:141,1
    - Dst: pcmk__attrd_api_clear_failures
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:143,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:153,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:154,1
    - Dst: node_type
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:154,1
    - Dst: when
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:155,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/controld/controld_attrd.c:155,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 5
    argNames:
    - host
    - rsc
    - op
    - interval_spec
    - is_remote_node
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - gboolean
    constantsTouched: []
    func_position:
      end: 157
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 157
    functionName: update_attrd_clear_failures
    functionSourceFile: /src/pacemaker/daemons/controld/controld_attrd.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - when
    - pcmk_new_ipc_api
    - node_type
    - pcmk_rc_str
    - pcmk__set_node_attr_flags
    - pcmk__attrd_api_clear_failures
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void update_attrd_clear_failures(const char *host, const char *rsc,
      const char *op, const char *interval_spec, gboolean is_remote_node) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:53,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:78,1
    - Dst: free
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:85,1
    - Dst: free
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:88,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:94,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:107,1
    - Dst: pcmk__new_reply
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:129,1
    - Dst: free
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:139,1
    - Dst: free
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:143,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:148,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:167,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:76,1
    - Dst: free
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:81,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:126,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:156,1
    - Dst: pcmk__xml_write_file
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:162,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:171,1
    - Dst: pcmk__write_series_sequence
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:163,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:153,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:170,1
    - Dst: pcmk__ipc_send_ack
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:70,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:74,1
    - Dst: pcmk__update_configured_schema
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:75,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:79,1
    - Dst: pcmk__schedule_actions
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:97,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:104,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:83,1
    - Dst: pcmk__series_filename
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:144,1
    - Dst: unlink
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:159,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:160,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:52,1
    - Dst: time
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:63,1
    - Dst: init_scheduler
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:68,1
    - Dst: pcmk__digest_xml
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:73,1
    - Dst: pcmk__cluster_option
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:114,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:117,1
    - Dst: pcmk__read_series_sequence
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:121,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:132,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:134,1
    - Dst: pcmk__log_transition_summary
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:150,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 85
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 174
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 174
    functionName: handle_pecalc_request
    functionSourceFile: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__new_reply
    - pcmk__set_result
    - pcmk__xe_first_child
    - pcmk__series_filename
    - pcmk__set_scheduler_flags
    - free
    - pcmk__schedule_actions
    - pcmk__cluster_option
    - pcmk__xe_create
    - pcmk__read_series_sequence
    - pcmk__ipc_send_ack
    - unlink
    - pcmk_free_scheduler
    - init_scheduler
    - pcmk_is_set
    - crm_xml_add_ll
    - pcmk__update_configured_schema
    - pcmk__digest_xml
    - pcmk__xml_copy
    - pcmk__log_transition_summary
    - pcmk__str_eq
    - crm_xml_add_int
    - crm_info
    - pcmk__scan_min_int
    - crm_trace
    - pcmk__write_series_sequence
    - pcmk__format_result
    - crm_debug
    - pcmk__xml_write_file
    - crm_xml_add
    - time
    - pcmk__xml_free
    - pcmk__client_name
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_pecalc_request(pcmk__request_t *request) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__ipc_send_ack
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:191,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:196,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:194,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 198
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 198
    functionName: handle_hello_request
    functionSourceFile: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - pcmk__ipc_send_ack
    - crm_trace
    - pcmk__client_name
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_hello_request(pcmk__request_t *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:215,1
    - Dst: pcmk__new_client
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - c
    - uid
    - gid
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 220
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 220
    functionName: pe_ipc_accept
    functionSourceFile: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__new_client
    - crm_trace
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t pe_ipc_accept(qb_ipcs_connection_t * c, uid_t uid,
      gid_t gid) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:338,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:343,1
    - Dst: pcmk__free_client
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 346
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 346
    functionName: pe_ipc_closed
    functionSourceFile: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__find_client
    - pcmk__free_client
    - crm_trace
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t pe_ipc_closed(qb_ipcs_connection_t * c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:27,1
    - Dst: pcmk__mem_assert
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: init_scheduler
    functionSourceFile: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c
    functionUses: []
    functionsReached:
    - pcmk_new_scheduler
    - pcmk__mem_assert
    linkageType: ''
    returnType: pcmk_scheduler_t*
    signature: 'static pcmk_scheduler_t *init_scheduler(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_handlers
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 210
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 210
    functionName: schedulerd_register_handlers
    functionSourceFile: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__register_handlers
    linkageType: ''
    returnType: void
    signature: 'static void schedulerd_register_handlers(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__ipc_send_ack
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:179,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:182,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 186
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 186
    functionName: handle_unknown_request
    functionSourceFile: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__format_result
    - pcmk__ipc_send_ack
    - pcmk__client_name
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_unknown_request(pcmk__request_t *request) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: schedulerd_register_handlers
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:235,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:312,1
    - Dst: pcmk__request_origin
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:314,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:315,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:321,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:232,1
    - Dst: pcmk__ipc_msg_append
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:238,1
    - Dst: pcmk__client_data2xml
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:248,1
    - Dst: g_byte_array_free
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:249,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:256,1
    - Dst: g_byte_array_free
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:259,1
    - Dst: pcmk__ipc_send_ack
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:267,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:273,1
    - Dst: pcmk__ipc_send_ack
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:275,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:277,1
    - Dst: pcmk__ipc_send_xml
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:306,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:282,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:300,1
    - Dst: pcmk__request_origin_type
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:313,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:320,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:323,1
    - Dst: free
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:326,1
    - Dst: pcmk__reset_request
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:327,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:330,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:301,1
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:229,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:256,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:271,1
    - Dst: pcmk__ipc_send_ack
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:280,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:277,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:279,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:273,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:283,1
    - Dst: pcmk__process_request
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:303,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:307,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 70
    argCount: 3
    argNames:
    - qbc
    - data
    - size
    argTypes:
    - qb_ipcs_connection_t*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 332
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 332
    functionName: pe_ipc_dispatch
    functionSourceFile: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__result_ok
    - pcmk__find_client
    - pcmk__client_data2xml
    - free
    - pcmk__s
    - crm_strdup_printf
    - pcmk__ipc_send_ack
    - g_byte_array_free
    - schedulerd_register_handlers
    - crm_element_value
    - pcmk__ipc_send_xml
    - pcmk_rc_str
    - pcmk__request_origin
    - crm_err
    - pcmk_exec_status_str
    - CRM_CHECK
    - pcmk__reset_request
    - pcmk__str_eq
    - crm_warn
    - crm_info
    - pcmk__request_origin_type
    - crm_debug
    - pcmk__process_request
    - pcmk__xml_free
    - pcmk__ipc_msg_append
    - crm_element_value_copy
    - pcmk__client_name
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t pe_ipc_dispatch(qb_ipcs_connection_t * qbc, void *data,
      size_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:351,1
    - Dst: pe_ipc_closed
      Src: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: pe_ipc_destroy
    functionSourceFile: /src/pacemaker/daemons/schedulerd/schedulerd_messages.c
    functionUses: []
    functionsReached:
    - pe_ipc_closed
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void pe_ipc_destroy(qb_ipcs_connection_t * c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__daemon_metadata
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: scheduler_metadata
    functionSourceFile: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c
    functionUses: []
    functionsReached:
    - pcmk__daemon_metadata
    linkageType: ''
    returnType: int
    signature: 'static int scheduler_metadata(pcmk__output_t *out) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:88,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:93,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:101,1
    - Dst: scheduler_metadata
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:116,1
    - Dst: g_strv_length
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:113,1
    - Dst: pcmk__daemon_can_write
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:140,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:143,1
    - Dst: g_main_loop_run
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:169,1
    - Dst: g_strfreev
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:173,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:96,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:104,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:105,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:114,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:120,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:119,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:136,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:141,1
    - Dst: pcmk__log_output_new
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:158,1
    - Dst: pcmk__output_set_log_level
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:164,1
    - Dst: pe__register_messages
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:162,1
    - Dst: pe__register_messages
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:109,1
    - Dst: crm_log_init
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:137,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:138,1
    - Dst: pcmk__serve_schedulerd_ipc
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:149,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:163,1
    - Dst: g_main_loop_new
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:167,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:168,1
    - Dst: g_strfreev
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:172,1
    - Dst: pengine_shutdown
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:177,1
    - Dst: build_arg_context
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:90,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:89,1
    - Dst: crm_log_preinit
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:92,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:95,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:125,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:110,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:151,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:176,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:174,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 178
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 178
    functionName: main
    functionSourceFile: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - pcmk__register_formats
    - pe__register_messages
    - crm_notice
    - pcmk__output_set_log_level
    - pcmk__cli_init_logging
    - crm_log_preinit
    - build_arg_context
    - pengine_shutdown
    - pcmk_rc_str
    - pcmk__serve_schedulerd_ipc
    - crm_err
    - pcmk__cmdline_preproc
    - g_strv_length
    - pcmk__free_arg_context
    - pcmk__output_and_clear_error
    - pcmk__str_eq
    - crm_log_init
    - pcmk__log_output_new
    - pcmk__output_new
    - g_strfreev
    - g_main_loop_new
    - mainloop_add_signal
    - g_set_error
    - g_main_loop_run
    - scheduler_metadata
    - pcmk__new_common_args
    - pcmk__daemon_can_write
    - pcmk__register_lib_messages
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:184,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:191,1
    - Dst: mainloop_del_ipc_server
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:185,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:197,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:201,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - nsig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 203
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 203
    functionName: pengine_shutdown
    functionSourceFile: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c
    functionUses: []
    functionsReached:
    - crm_trace
    - crm_exit
    - pcmk__unregister_formats
    - pcmk__output_free
    - mainloop_del_ipc_server
    linkageType: ''
    returnType: void
    signature: 'void pengine_shutdown(int nsig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:76,1
    - Dst: pcmk__add_main_args
      Src: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c:77,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/daemons/schedulerd/pacemaker-schedulerd.c
    functionUses: []
    functionsReached:
    - pcmk__add_main_args
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_contains
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:95,1
    - Dst: GINT_TO_POINTER
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: next_key
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_sync.c
    functionUses: []
    functionsReached:
    - GINT_TO_POINTER
    - g_hash_table_contains
    linkageType: ''
    returnType: void
    signature: 'static void next_key(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - sync_point
    argTypes:
    - enum attrd_sync_point
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: sync_point_str
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_sync.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *sync_point_str(enum attrd_sync_point sync_point) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 189
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 189
    functionName: attrd_free_waitlist
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_sync.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: 'void attrd_free_waitlist(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:285,1
    - Dst: attrd_ack_waitlist_clients
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 288
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 288
    functionName: attrd_cluster_sync_point_update
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_sync.c
    functionUses: []
    functionsReached:
    - attrd_ack_waitlist_clients
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int attrd_cluster_sync_point_update(xmlNode *xml) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:310,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:317,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:313,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:323,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 325
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 325
    functionName: attrd_request_sync_point
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_sync.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_element_value
    - pcmk__xe_first_child
    linkageType: ''
    returnType: char*
    signature: 'const char *attrd_request_sync_point(xmlNode *xml) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:369,1
    - Dst: pcmk__ipc_send_ack
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:379,1
    - Dst: pcmk__find_client_by_id
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:373,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:371,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:378,1
    - Dst: g_hash_table_iter_remove
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:384,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:385,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:385,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 391
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 391
    functionName: confirmation_timeout_cb
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_sync.c
    functionUses: []
    functionsReached:
    - pcmk__find_client_by_id
    - pcmk__ipc_send_ack
    - g_hash_table_size
    - g_hash_table_iter_remove
    - g_hash_table_iter_init
    - crm_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean confirmation_timeout_cb(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_get_keys
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:410,1
    - Dst: attrd_handle_confirmation
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:416,1
    - Dst: g_list_free
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:419,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:412,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - host
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 420
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 420
    functionName: attrd_do_not_expect_from_peer
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_sync.c
    functionUses: []
    functionsReached:
    - g_list_free
    - crm_trace
    - g_hash_table_get_keys
    - attrd_handle_confirmation
    linkageType: ''
    returnType: void
    signature: 'void attrd_do_not_expect_from_peer(const char *host) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:486,1
    - Dst: ATTRD_SUPPORTS_CONFIRMATION
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:498,1
    - Dst: g_list_length
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:517,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:508,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:509,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:518,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:492,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:496,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:497,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:500,1
    - Dst: mainloop_timer_start
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:514,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:518,1
    - Dst: pcmk__intkey_table_lookup
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:491,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:487,1
    - Dst: GPOINTER_TO_INT
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:498,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:499,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:504,1
    - Dst: mainloop_timer_add
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:513,1
    - Dst: pcmk__intkey_table
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:483,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:517,1
    - Dst: pcmk__intkey_table_insert
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:516,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - request
    - fn
    argTypes:
    - pcmk__request_t*
    - attrd_confirmation_action_fn
    constantsTouched: []
    func_position:
      end: 519
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 519
    functionName: attrd_expect_confirmations
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_sync.c
    functionUses: []
    functionsReached:
    - pcmk__intkey_table
    - GPOINTER_TO_INT
    - pcmk__xml_copy
    - crm_trace
    - pcmk__assert_alloc
    - g_list_length
    - ATTRD_SUPPORTS_CONFIRMATION
    - pcmk__str_copy
    - pcmk__intkey_table_insert
    - mainloop_timer_add
    - g_list_prepend
    - mainloop_timer_start
    - g_hash_table_size
    - pcmk__intkey_table_lookup
    - g_hash_table_iter_init
    - crm_err
    - crm_element_value_int
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void attrd_expect_confirmations(pcmk__request_t *request, attrd_confirmation_action_fn
      fn) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:103,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: free_waitlist_node
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_sync.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void free_waitlist_node(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 528
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 528
    functionName: attrd_free_confirmations
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_sync.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: 'void attrd_free_confirmations(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: attrd_request_sync_point
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:136,1
    - Dst: pcmk__intkey_table
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:144,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:151,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:149,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:147,1
    - Dst: free_waitlist_node
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:154,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:158,1
    - Dst: next_key
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:162,1
    - Dst: pcmk__intkey_table_insert
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:163,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:165,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:172,1
    - Dst: sync_point_str
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:166,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:167,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:167,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 173
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 173
    functionName: attrd_add_client_to_waitlist
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_sync.c
    functionUses: []
    functionsReached:
    - pcmk__assert_alloc
    - next_key
    - pcmk__str_eq
    - sync_point_str
    - pcmk__str_copy
    - attrd_request_sync_point
    - pcmk__intkey_table_insert
    - crm_xml_add_int
    - free_waitlist_node
    - pcmk__intkey_table
    - crm_trace
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'void attrd_add_client_to_waitlist(pcmk__request_t *request) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:208,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:215,1
    - Dst: g_hash_table_iter_remove
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:214,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:210,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:213,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:215,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 1
    argNames:
    - client
    argTypes:
    - pcmk__client_t*
    constantsTouched: []
    func_position:
      end: 218
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 218
    functionName: attrd_remove_client_from_waitlist
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_sync.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - g_hash_table_size
    - g_hash_table_iter_remove
    - g_hash_table_iter_init
    - crm_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void attrd_remove_client_from_waitlist(pcmk__client_t *client) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:242,1
    - Dst: pcmk__intkey_table_lookup
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:247,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:256,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:243,1
    - Dst: sync_point_str
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:257,1
    - Dst: pcmk__find_client_by_id
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:259,1
    - Dst: attrd_send_ack
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:264,1
    - Dst: pcmk__intkey_table_remove
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:267,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:269,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:269,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - sync_point
    - xml
    argTypes:
    - enum attrd_sync_point
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 271
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 271
    functionName: attrd_ack_waitlist_clients
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_sync.c
    functionUses: []
    functionsReached:
    - crm_trace
    - attrd_send_ack
    - sync_point_str
    - crm_notice
    - pcmk__intkey_table_lookup
    - crm_warn
    - pcmk__intkey_table_remove
    - pcmk__find_client_by_id
    - crm_element_value_int
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'void attrd_ack_waitlist_clients(enum attrd_sync_point sync_point,
      const xmlNode *xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: attrd_request_sync_point
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 339
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 339
    functionName: attrd_request_has_sync_point
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_sync.c
    functionUses: []
    functionsReached:
    - attrd_request_sync_point
    linkageType: ''
    returnType: bool
    signature: 'bool attrd_request_has_sync_point(xmlNode *xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:345,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:347,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:349,1
    - Dst: mainloop_timer_del
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:346,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 350
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 350
    functionName: free_action
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_sync.c
    functionUses: []
    functionsReached:
    - free
    - pcmk__xml_free
    - g_list_free_full
    - mainloop_timer_del
    linkageType: ''
    returnType: void
    signature: 'static void free_action(gpointer data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:441,1
    - Dst: g_hash_table_iter_remove
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:448,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:447,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:446,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:443,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:449,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:449,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - client
    argTypes:
    - pcmk__client_t*
    constantsTouched: []
    func_position:
      end: 453
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 453
    functionName: attrd_do_not_wait_for_client
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_sync.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - g_hash_table_size
    - g_hash_table_iter_remove
    - g_hash_table_iter_init
    - crm_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void attrd_do_not_wait_for_client(pcmk__client_t *client) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__intkey_table_lookup
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:551,1
    - Dst: g_list_find_custom
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:556,1
    - Dst: g_list_remove
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:562,1
    - Dst: g_list_length
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:563,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:563,1
    - Dst: pcmk__intkey_table_remove
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:567,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:568,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/attrd/attrd_sync.c:568,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - callid
    - host
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 570
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 570
    functionName: attrd_handle_confirmation
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_sync.c
    functionUses: []
    functionsReached:
    - g_list_length
    - g_list_find_custom
    - pcmk__intkey_table_lookup
    - g_list_remove
    - pcmk__intkey_table_remove
    - crm_trace
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'void attrd_handle_confirmation(int callid, const char *host) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:84,1
    - Dst: mainloop_timer_del
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:101,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:95,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:88,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:93,1
    - Dst: QB_MIN
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:102,1
    - Dst: attrd_add_timer
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:104,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:105,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:109,1
    - Dst: attrd_write_or_elect_attribute
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:115,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - a
    - xml
    - attr
    argTypes:
    - attribute_t*
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 119
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 119
    functionName: attrd_update_dampening
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_attributes.c
    functionUses: []
    functionsReached:
    - crm_get_msec
    - QB_MIN
    - attrd_write_or_elect_attribute
    - crm_element_value
    - crm_warn
    - crm_info
    - attrd_add_timer
    - mainloop_timer_del
    linkageType: ''
    returnType: int
    signature: 'static int attrd_update_dampening(attribute_t *a, xmlNode *xml, const
      char *attr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:138,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:141,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:140,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:143,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:142,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:144,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:152,1
    - Dst: attrd_get_node_xml_id
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:152,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:154,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:155,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:161,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:157,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:156,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:158,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:159,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:160,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - parent
    - a
    - v
    - force_write
    argTypes:
    - xmlNode*
    - attribute_t*
    - attribute_value_t*
    - bool
    constantsTouched: []
    func_position:
      end: 164
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 164
    functionName: attrd_add_value_xml
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_attributes.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__timeout_ms2s
    - crm_xml_add
    - attrd_get_node_xml_id
    - pcmk_is_set
    - crm_xml_add_int
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *attrd_add_value_xml(xmlNode *parent, const attribute_t *a,
      const attribute_value_t *v, bool force_write) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:236,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:238,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:245,1
    - Dst: pcmk__xml_sanitize_id
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:256,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:254,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - attr
    - node_state_id
    argTypes:
    - attribute_t*
    - char*
    constantsTouched: []
    func_position:
      end: 258
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 258
    functionName: attrd_set_id
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_attributes.c
    functionUses: []
    functionsReached:
    - pcmk__xml_sanitize_id
    - crm_strdup_printf
    - pcmk__str_empty
    - pcmk__str_copy
    - pcmk__assert
    linkageType: ''
    returnType: char*
    signature: 'char *attrd_set_id(const attribute_t *attr, const char *node_state_id) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:30,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:51,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:53,1
    - Dst: attrd_set_attr_flags
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:58,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:74,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:28,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:40,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:45,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:49,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:54,1
    - Dst: QB_MIN
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:66,1
    - Dst: attrd_add_timer
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:67,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:62,1
    - Dst: pcmk__strikey_table
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:55,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:77,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:69,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:72,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:75,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:29,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:41,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:44,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:52,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 79
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 79
    functionName: attrd_create_attribute
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_attributes.c
    functionUses: []
    functionsReached:
    - attrd_set_attr_flags
    - crm_get_msec
    - crm_trace
    - pcmk__s
    - pcmk__strikey_table
    - pcmk__assert_alloc
    - pcmk__str_copy
    - QB_MIN
    - pcmk__readable_interval
    - crm_element_value_copy
    - crm_element_value
    - crm_warn
    - pcmk__str_any_of
    - g_hash_table_replace
    - attrd_add_timer
    - crm_element_value_int
    linkageType: ''
    returnType: attribute_t*
    signature: 'static attribute_t *attrd_create_attribute(xmlNode *xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:174,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:177,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:176,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:175,1
    - Dst: attrd_clear_value_flags
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 181
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 181
    functionName: attrd_clear_value_seen
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_attributes.c
    functionUses: []
    functionsReached:
    - g_hash_table_iter_init
    - attrd_clear_value_flags
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void attrd_clear_value_seen(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:189,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:192,1
    - Dst: attrd_create_attribute
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:199,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:196,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:198,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:205,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:211,1
    - Dst: attrd_update_dampening
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:212,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 2
    argNames:
    - xml
    - attr
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 220
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 220
    functionName: attrd_populate_attribute
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_attributes.c
    functionUses: []
    functionsReached:
    - attrd_create_attribute
    - g_hash_table_lookup
    - pcmk__str_eq
    - attrd_update_dampening
    - crm_element_value
    - crm_warn
    linkageType: ''
    returnType: attribute_t*
    signature: 'attribute_t *attrd_populate_attribute(xmlNode *xml, const char *attr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:275,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:278,1
    - Dst: pcmk__xml_sanitize_id
      Src: /src/pacemaker/daemons/attrd/attrd_attributes.c:281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - attr
    - node_state_id
    argTypes:
    - attribute_t*
    - char*
    constantsTouched: []
    func_position:
      end: 283
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 283
    functionName: attrd_nvpair_id
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_attributes.c
    functionUses: []
    functionsReached:
    - pcmk__xml_sanitize_id
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'char *attrd_nvpair_id(const attribute_t *attr, const char *node_state_id) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: attrd_shutting_down
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:36,1
    - Dst: attrd_shutdown
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:43,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:37,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 45
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 45
    functionName: attrd_cib_destroy_cb
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_cib.c
    functionUses: []
    functionsReached:
    - crm_info
    - attrd_shutting_down
    - crm_crit
    - attrd_shutdown
    linkageType: ''
    returnType: void
    signature: 'static void attrd_cib_destroy_cb(gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:168,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:171,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:173,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:174,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 176
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 176
    functionName: attrd_erase_cb
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_cib.c
    functionUses: []
    functionsReached:
    - crm_info
    - pcmk_strerror
    - crm_err
    - pcmk__s
    linkageType: ''
    returnType: void
    signature: 'static void attrd_erase_cb(xmlNode *msg, int call_id, int rc, xmlNode
      *output, void *user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cib_new
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:110,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:120,1
    - Dst: sleep
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:117,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:126,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:127,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:131,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:135,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:150,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:143,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - max_retry
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 152
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 152
    functionName: attrd_cib_connect
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_cib.c
    functionUses: []
    functionsReached:
    - crm_debug
    - sleep
    - cib__clean_up_connection
    - cib_new
    - pcmk_strerror
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int attrd_cib_connect(int max_retry) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:194,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:198,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:196,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:202,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - node
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 208
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 208
    functionName: attrd_cib_erase_transient_attrs
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_cib.c
    functionUses: []
    functionsReached:
    - crm_debug
    - CRM_CHECK
    - crm_strdup_printf
    - pcmk__str_copy
    - free
    linkageType: ''
    returnType: void
    signature: 'void attrd_cib_erase_transient_attrs(const char *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:240,1
    - Dst: attrd_write_or_elect_attribute
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: attribute_timer_cb
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_cib.c
    functionUses: []
    functionsReached:
    - attrd_write_or_elect_attribute
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean attribute_timer_cb(gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:354,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:358,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:363,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:361,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:360,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:364,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:366,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:367,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:368,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:369,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:373,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:375,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 5
    argNames:
    - attr
    - attr_id
    - node_id
    - set_id
    - value
    argTypes:
    - attribute_t*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 377
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 377
    functionName: add_set_attr_update
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_cib.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - pcmk__xml_free
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int add_set_attr_update(const attribute_t *attr, const char
      *attr_id, const char *node_id, const char *set_id, const char *value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: attrd_set_id
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:427,1
    - Dst: attrd_nvpair_id
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:428,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:436,1
    - Dst: add_unset_attr_update
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:432,1
    - Dst: add_set_attr_update
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:434,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:437,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - attr
    - value
    - node_id
    argTypes:
    - attribute_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 439
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 439
    functionName: add_attr_update
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_cib.c
    functionUses: []
    functionsReached:
    - attrd_set_id
    - attrd_nvpair_id
    - free
    - add_unset_attr_update
    - add_set_attr_update
    linkageType: ''
    returnType: int
    signature: 'static int add_attr_update(const attribute_t *attr, const char *value,
      const char *node_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:466,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:471,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:469,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:468,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - t
    - v
    argTypes:
    - GHashTable*
    - attribute_value_t*
    constantsTouched: []
    func_position:
      end: 472
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 472
    functionName: set_alert_attribute_value
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_cib.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - pcmk__assert_alloc
    - g_hash_table_replace
    linkageType: ''
    returnType: void
    signature: 'static void set_alert_attribute_value(GHashTable *t, attribute_value_t
      *v) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cib__get_notify_patchset
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:54,1
    - Dst: attrd_shutting_down
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:59,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:62,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:60,1
    - Dst: pcmk__cib_element_in_patchset
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:58,1
    - Dst: pcmk__cib_element_in_patchset
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:66,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:68,1
    - Dst: cib__client_triggers_refresh
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:69,1
    - Dst: attrd_election_won
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:76,1
    - Dst: pcmk__cib_element_in_patchset
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:82,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:85,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:96,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:94,1
    - Dst: attrd_write_attributes
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:99,1
    - Dst: attrd_shutting_down
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:84,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:97,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 2
    argNames:
    - event
    - msg
    argTypes:
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 101
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 101
    functionName: attrd_cib_updated_cb
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_cib.c
    functionUses: []
    functionsReached:
    - crm_debug
    - attrd_shutting_down
    - pcmk__s
    - cib__get_notify_patchset
    - crm_notice
    - pcmk__cib_element_in_patchset
    - attrd_election_won
    - attrd_write_attributes
    - crm_element_value
    - cib__client_triggers_refresh
    - mainloop_set_trigger
    linkageType: ''
    returnType: void
    signature: 'static void attrd_cib_updated_cb(const char *event, xmlNode *msg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:157,1
    - Dst: mainloop_destroy_trigger
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:161,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 162
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 162
    functionName: attrd_cib_disconnect
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_cib.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - mainloop_destroy_trigger
    - CRM_CHECK
    linkageType: ''
    returnType: void
    signature: 'void attrd_cib_disconnect(void) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:294,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:296,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:297,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:303,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:308,1
    - Dst: attrd_election_won
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:303,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:287,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:257,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:323,1
    - Dst: attrd_set_attr_flags
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:299,1
    - Dst: mainloop_timer_running
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:322,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:324,1
    - Dst: attrd_add_timer
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:332,1
    - Dst: mainloop_timer_start
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:333,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:254,1
    - Dst: mainloop_timer_del
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:272,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:286,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:289,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:290,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:292,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:293,1
    - Dst: write_attribute
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:309,1
    - Dst: mainloop_timer_start
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:325,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 336
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 336
    functionName: attrd_cib_callback
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_cib.c
    functionUses: []
    functionsReached:
    - do_crm_log
    - mainloop_timer_start
    - attrd_set_attr_flags
    - attrd_add_timer
    - pcmk__s
    - g_hash_table_lookup
    - pcmk_is_set
    - mainloop_timer_running
    - g_hash_table_iter_next
    - write_attribute
    - attrd_election_won
    - pcmk_strerror
    - pcmk__readable_interval
    - crm_info
    - crm_trace
    - mainloop_timer_del
    - crm_debug
    - g_hash_table_iter_init
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'static void attrd_cib_callback(xmlNode *msg, int call_id, int rc,
      xmlNode *output, void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:448,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:450,1
    - Dst: attrd_get_node_xml_id
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:451,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:455,1
    - Dst: attrd_send_attribute_alert
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:453,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:458,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - a
    - t
    argTypes:
    - attribute_t*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 461
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 461
    functionName: send_alert_attributes_value
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_cib.c
    functionUses: []
    functionsReached:
    - attrd_send_attribute_alert
    - pcmk__s
    - attrd_get_node_xml_id
    - g_hash_table_iter_init
    - crm_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void send_alert_attributes_value(attribute_t *a, GHashTable
      *t) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_timer_add
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - id
    - timeout_ms
    - attr
    argTypes:
    - char*
    - int
    - attribute_t*
    constantsTouched: []
    func_position:
      end: 478
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 478
    functionName: attrd_add_timer
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_cib.c
    functionUses: []
    functionsReached:
    - mainloop_timer_add
    linkageType: ''
    returnType: mainloop_timer_t*
    signature: 'mainloop_timer_t *attrd_add_timer(const char *id, int timeout_ms,
      attribute_t *attr) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:675,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:676,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:677,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:678,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:679,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:680,1
    - Dst: attrd_set_attr_flags
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:682,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:683,1
    - Dst: attrd_set_attr_flags
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:685,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:688,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:692,1
    - Dst: write_attribute
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:696,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:698,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:690,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:689,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - options
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 701
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 701
    functionName: attrd_write_attributes
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_cib.c
    functionUses: []
    functionsReached:
    - crm_debug
    - write_attribute
    - pcmk_is_set
    - attrd_set_attr_flags
    - g_hash_table_iter_init
    - crm_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void attrd_write_attributes(uint32_t options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: attrd_election_won
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:706,1
    - Dst: write_attribute
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:707,1
    - Dst: attrd_start_election_if_needed
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:709,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - attribute_t*
    constantsTouched: []
    func_position:
      end: 711
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 711
    functionName: attrd_write_or_elect_attribute
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_cib.c
    functionUses: []
    functionsReached:
    - attrd_start_election_if_needed
    - write_attribute
    - attrd_election_won
    linkageType: ''
    returnType: void
    signature: 'void attrd_write_or_elect_attribute(attribute_t *a) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: attrd_cib_erase_transient_attrs
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:227,1
    - Dst: mainloop_add_trigger
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:230,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 234
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 234
    functionName: attrd_cib_init
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_cib.c
    functionUses: []
    functionsReached:
    - mainloop_add_trigger
    - attrd_cib_erase_transient_attrs
    - mainloop_set_trigger
    linkageType: ''
    returnType: void
    signature: 'void attrd_cib_init(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:394,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:411,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:410,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 4
    argNames:
    - attr
    - attr_id
    - node_id
    - set_id
    argTypes:
    - attribute_t*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 412
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 412
    functionName: add_unset_attr_update
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_cib.c
    functionUses: []
    functionsReached:
    - free
    - pcmk_legacy2rc
    - crm_strdup_printf
    linkageType: ''
    returnType: int
    signature: 'static int add_unset_attr_update(const attribute_t *attr, const char
      *attr_id, const char *node_id, const char *set_id) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_timer_running
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:520,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:523,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:525,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:531,1
    - Dst: attrd_get_node_xml_id
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:571,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:573,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:556,1
    - Dst: pcmk__cluster_get_xml_id
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:583,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:598,1
    - Dst: add_attr_update
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:606,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:639,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:624,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:503,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:511,1
    - Dst: pcmk__strikey_table
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:551,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:535,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:555,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:579,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:537,1
    - Dst: attrd_set_attr_flags
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:591,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:592,1
    - Dst: attrd_set_node_xml_id
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:602,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:615,1
    - Dst: mainloop_timer_stop
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:522,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:516,1
    - Dst: attrd_clear_attr_flags
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:546,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:599,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:601,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:629,1
    - Dst: send_alert_attributes_value
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:647,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:659,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:633,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:610,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:616,1
    - Dst: set_alert_attribute_value
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:621,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:628,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:630,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:638,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:608,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_cib.c:640,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 95
    argCount: 2
    argNames:
    - a
    - ignore_delay
    argTypes:
    - attribute_t*
    - bool
    constantsTouched: []
    func_position:
      end: 661
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 661
    functionName: write_attribute
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_cib.c
    functionUses: []
    functionsReached:
    - mainloop_timer_stop
    - pcmk__get_node
    - g_hash_table_destroy
    - attrd_get_node_xml_id
    - attrd_clear_attr_flags
    - crm_notice
    - attrd_set_attr_flags
    - pcmk__s
    - pcmk_is_set
    - pcmk_rc_str
    - mainloop_timer_running
    - crm_err
    - g_hash_table_iter_next
    - pcmk__cluster_get_xml_id
    - CRM_CHECK
    - pcmk__str_eq
    - pcmk__str_copy
    - attrd_set_node_xml_id
    - crm_info
    - add_attr_update
    - crm_trace
    - set_alert_attribute_value
    - send_alert_attributes_value
    - crm_debug
    - pcmk__strikey_table
    - pcmk__plural_s
    - g_hash_table_iter_init
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'static void write_attribute(attribute_t *a, bool ignore_delay) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: attrd_declare_winner
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:21,1
    - Dst: attrd_write_attributes
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:29,1
    - Dst: attrd_peer_sync
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - pcmk_cluster_t*
    constantsTouched: []
    func_position:
      end: 30
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 30
    functionName: attrd_election_cb
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_elections.c
    functionUses: []
    functionsReached:
    - attrd_peer_sync
    - attrd_write_attributes
    - attrd_declare_winner
    linkageType: ''
    returnType: void
    signature: 'static void attrd_election_cb(pcmk_cluster_t *cluster) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: election_state
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:60,1
    - Dst: attrd_shutting_down
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:65,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:62,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:69,1
    - Dst: election_count_vote
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:65,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:71,1
    - Dst: election_vote
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:73,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:89,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:90,1
    - Dst: election_check
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:96,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:100,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - peer
    - xml
    argTypes:
    - pcmk__node_status_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 103
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 103
    functionName: attrd_handle_election_op
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_elections.c
    functionUses: []
    functionsReached:
    - crm_debug
    - attrd_shutting_down
    - election_check
    - crm_xml_add
    - election_vote
    - election_state
    - free
    - election_count_vote
    - crm_info
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'void attrd_handle_election_op(const pcmk__node_status_t *peer, xmlNode
      *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: election_state
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:42,1
    - Dst: attrd_shutting_down
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:43,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:45,1
    - Dst: election_vote
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: attrd_start_election_if_needed
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_elections.c
    functionUses: []
    functionsReached:
    - election_vote
    - election_state
    - crm_info
    - attrd_shutting_down
    linkageType: ''
    returnType: void
    signature: 'void attrd_start_election_if_needed(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:132,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: attrd_declare_winner
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_elections.c
    functionUses: []
    functionsReached:
    - crm_notice
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'void attrd_declare_winner(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: election_state
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: attrd_election_won
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_elections.c
    functionUses: []
    functionsReached:
    - election_state
    linkageType: ''
    returnType: bool
    signature: 'bool attrd_election_won(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: election_init
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: attrd_election_init
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_elections.c
    functionUses: []
    functionsReached:
    - election_init
    linkageType: ''
    returnType: void
    signature: 'void attrd_election_init(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:110,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:115,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:113,1
    - Dst: election_state
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:112,1
    - Dst: election_vote
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:118,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:120,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:121,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:122,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:123,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - peer
    - xml
    argTypes:
    - pcmk__node_status_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 127
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 127
    functionName: attrd_check_for_new_writer
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_elections.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - pcmk__str_eq
    - pcmk__str_update
    - election_vote
    - election_state
    - crm_notice
    - crm_element_value_int
    linkageType: ''
    returnType: bool
    signature: 'bool attrd_check_for_new_writer(const pcmk__node_status_t *peer, const
      xmlNode *xml) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: election_remove
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:140,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:144,1
    - Dst: election_clear_dampening
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:151,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:142,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:146,1
    - Dst: attrd_start_election_if_needed
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:159,1
    - Dst: election_state
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:165,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:166,1
    - Dst: election_check
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:167,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - peer
    argTypes:
    - pcmk__node_status_t*
    constantsTouched: []
    func_position:
      end: 169
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 169
    functionName: attrd_remove_voter
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_elections.c
    functionUses: []
    functionsReached:
    - crm_debug
    - election_remove
    - election_check
    - pcmk__str_eq
    - crm_notice
    - election_clear_dampening
    - free
    - election_state
    - attrd_start_election_if_needed
    linkageType: ''
    returnType: void
    signature: 'void attrd_remove_voter(const pcmk__node_status_t *peer) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:174,1
    - Dst: election_state
      Src: /src/pacemaker/daemons/attrd/attrd_elections.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: attrd_xml_add_writer
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_elections.c
    functionUses: []
    functionsReached:
    - election_state
    - crm_xml_add_int
    linkageType: ''
    returnType: void
    signature: 'void attrd_xml_add_writer(xmlNode *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/attrd/attrd_nodes.c:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - node_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: attrd_get_node_xml_id
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_nodes.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    linkageType: ''
    returnType: char*
    signature: 'const char *attrd_get_node_xml_id(const char *node_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/attrd/attrd_nodes.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - node_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: attrd_forget_node_xml_id
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_nodes.c
    functionUses: []
    functionsReached:
    - g_hash_table_remove
    linkageType: ''
    returnType: void
    signature: 'void attrd_forget_node_xml_id(const char *node_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/attrd/attrd_nodes.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: attrd_cleanup_xml_ids
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_nodes.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: 'void attrd_cleanup_xml_ids(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strikey_table
      Src: /src/pacemaker/daemons/attrd/attrd_nodes.c:50,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/daemons/attrd/attrd_nodes.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - node_name
    - node_xml_id
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: attrd_set_node_xml_id
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_nodes.c
    functionUses: []
    functionsReached:
    - pcmk__insert_dup
    - pcmk__strikey_table
    linkageType: ''
    returnType: void
    signature: 'void attrd_set_node_xml_id(const char *node_name, const char *node_xml_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_remove_matching_attrs
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:33,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - xml
    - data
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: remove_sync_point_attribute
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__xe_remove_matching_attrs
    - pcmk__xe_foreach_child
    linkageType: ''
    returnType: int
    signature: 'static int remove_sync_point_attribute(xmlNode *xml, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:57,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:60,1
    - Dst: pcmk__request_origin
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:59,1
    - Dst: pcmk__request_origin_type
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: handle_unknown_request
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__format_result
    - pcmk__request_origin_type
    - crm_err
    - pcmk__request_origin
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_unknown_request(pcmk__request_t *request) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:107,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:109,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:117,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:111,1
    - Dst: attrd_handle_confirmation
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:114,1
    - Dst: handle_unknown_request
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 122
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 122
    functionName: handle_confirm_request
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_messages.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__set_result
    - attrd_handle_confirmation
    - handle_unknown_request
    - crm_element_value_int
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_confirm_request(pcmk__request_t *request) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:138,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:146,1
    - Dst: pcmk__xe_get_bool_attr
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:141,1
    - Dst: attrd_peer_remove
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:145,1
    - Dst: attrd_client_peer_remove
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:149,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 151
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 151
    functionName: handle_remove_request
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - crm_element_value
    - attrd_peer_remove
    - attrd_client_peer_remove
    - pcmk__xe_get_bool_attr
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_remove_request(pcmk__request_t *request) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: handle_unknown_request
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:167,1
    - Dst: attrd_peer_sync_response
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:177,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:175,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:171,1
    - Dst: attrd_check_for_new_writer
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:173,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 184
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 184
    functionName: handle_sync_response_request
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - attrd_check_for_new_writer
    - pcmk__get_node
    - pcmk__str_eq
    - handle_unknown_request
    - attrd_peer_sync_response
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_sync_response_request(pcmk__request_t *request) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_handlers
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 246
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 246
    functionName: attrd_register_handlers
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__register_handlers
    linkageType: ''
    returnType: void
    signature: 'static void attrd_register_handlers(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: attrd_register_handlers
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:265,1
    - Dst: pcmk__process_request
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:268,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:277,1
    - Dst: pcmk__ipc_send_xml
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:274,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:271,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:280,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:284,1
    - Dst: pcmk__request_origin_type
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:285,1
    - Dst: pcmk__request_origin
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:286,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:287,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:293,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:295,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:298,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:292,1
    - Dst: pcmk__reset_request
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:299,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:289,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 300
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 300
    functionName: attrd_handle_request
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_messages.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__process_request
    - pcmk_exec_status_str
    - pcmk__result_ok
    - attrd_register_handlers
    - crm_strdup_printf
    - pcmk__s
    - pcmk__reset_request
    - pcmk__request_origin
    - pcmk__xml_free
    - crm_warn
    - free
    - pcmk__ipc_send_xml
    - crm_log_xml_trace
    - pcmk__request_origin_type
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void attrd_handle_request(pcmk__request_t *request) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - attr
    - data
    argTypes:
    - xmlAttrPtr
    - void*
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: is_sync_point_attr
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: bool
    signature: 'static bool is_sync_point_attr(xmlAttrPtr attr, void *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: attrd_peer_clear_failure
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:72,1
    - Dst: remove_unsupported_sync_points
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:76,1
    - Dst: attrd_request_has_sync_point
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:78,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:73,1
    - Dst: attrd_add_client_to_waitlist
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:86,1
    - Dst: attrd_send_ack
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:93,1
    - Dst: attrd_client_clear_failure
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 99
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 99
    functionName: handle_clear_failure_request
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - attrd_client_clear_failure
    - attrd_peer_clear_failure
    - attrd_add_client_to_waitlist
    - remove_unsupported_sync_points
    - attrd_request_has_sync_point
    - attrd_send_ack
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_clear_failure_request(pcmk__request_t *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handle_unknown_request
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:128,1
    - Dst: attrd_client_query
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: handle_query_request
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_messages.c
    functionUses: []
    functionsReached:
    - attrd_client_query
    - handle_unknown_request
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_query_request(pcmk__request_t *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handle_unknown_request
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:157,1
    - Dst: attrd_client_refresh
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: handle_refresh_request
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_messages.c
    functionUses: []
    functionsReached:
    - handle_unknown_request
    - attrd_client_refresh
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_refresh_request(pcmk__request_t *request) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:190,1
    - Dst: remove_unsupported_sync_points
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:200,1
    - Dst: attrd_peer_update
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:195,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:196,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:192,1
    - Dst: attrd_request_has_sync_point
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:202,1
    - Dst: attrd_add_client_to_waitlist
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:210,1
    - Dst: attrd_send_ack
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:221,1
    - Dst: attrd_client_update
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 227
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 227
    functionName: handle_update_request
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - pcmk__get_node
    - attrd_add_client_to_waitlist
    - remove_unsupported_sync_points
    - crm_element_value
    - attrd_request_has_sync_point
    - attrd_peer_update
    - attrd_client_update
    - attrd_send_ack
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_update_request(pcmk__request_t *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 255
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 255
    functionName: attrd_unregister_handlers
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_messages.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: 'void attrd_unregister_handlers(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:346,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:348,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:356,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:349,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:355,1
    - Dst: attrd_xml_add_writer
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:359,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:360,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - node
    - data
    - confirm
    argTypes:
    - pcmk__node_status_t*
    - xmlNode*
    - bool
    constantsTouched: []
    func_position:
      end: 361
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 361
    functionName: attrd_send_message
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_messages.c
    functionUses: []
    functionsReached:
    - crm_element_value
    - crm_xml_add
    - pcmk__str_eq
    - pcmk__cluster_send_message
    - pcmk__xe_set_bool_attr
    - attrd_xml_add_writer
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean attrd_send_message(const pcmk__node_status_t *node, xmlNode
      *data, bool confirm) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ATTRD_SUPPORTS_MULTI_MESSAGE
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:46,1
    - Dst: pcmk__request_origin
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:49,1
    - Dst: remove_sync_point_attribute
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:50,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:48,1
    - Dst: attrd_request_has_sync_point
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:47,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: remove_unsupported_sync_points
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_messages.c
    functionUses: []
    functionsReached:
    - ATTRD_SUPPORTS_MULTI_MESSAGE
    - remove_sync_point_attribute
    - pcmk__request_origin
    - attrd_request_has_sync_point
    - crm_warn
    linkageType: ''
    returnType: void
    signature: 'static void remove_unsupported_sync_points(pcmk__request_t *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:309,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:313,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:314,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:312,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:311,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:315,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:316,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:317,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:318,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:322,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:332,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:329,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:325,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:334,1
    - Dst: attrd_send_message
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:338,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/attrd/attrd_messages.c:340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - peer
    argTypes:
    - pcmk__node_status_t*
    constantsTouched: []
    func_position:
      end: 341
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 341
    functionName: attrd_send_protocol
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_debug
    - pcmk__s
    - crm_xml_add
    - attrd_send_message
    - pcmk__xml_free
    - crm_xml_add_int
    linkageType: ''
    returnType: void
    signature: 'void attrd_send_protocol(const pcmk__node_status_t *peer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: attrd_shutting_down
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:131,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:135,1
    - Dst: attrd_shutdown
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:137,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - unused
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: attrd_cpg_destroy
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_corosync.c
    functionUses: []
    functionsReached:
    - crm_info
    - attrd_shutting_down
    - crm_crit
    - attrd_shutdown
    linkageType: ''
    returnType: void
    signature: 'static void attrd_cpg_destroy(gpointer unused) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:41,1
    - Dst: attrd_shutting_down
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:48,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:67,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:66,1
    - Dst: attrd_handle_election_op
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:44,1
    - Dst: attrd_handle_request
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:69,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:74,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:75,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:83,1
    - Dst: attrd_confirmation
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:84,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:91,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:93,1
    - Dst: attrd_send_message
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:92,1
    - Dst: pcmk__reset_request
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:96,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - peer
    - xml
    argTypes:
    - pcmk__node_status_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 98
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 98
    functionName: attrd_peer_message
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_corosync.c
    functionUses: []
    functionsReached:
    - crm_debug
    - attrd_handle_election_op
    - CRM_CHECK
    - attrd_shutting_down
    - pcmk__reset_request
    - pcmk__str_eq
    - attrd_handle_request
    - attrd_send_message
    - pcmk__xml_free
    - crm_element_value
    - pcmk__xe_attr_is_true
    - attrd_confirmation
    - crm_element_value_copy
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'static void attrd_peer_message(pcmk__node_status_t *peer, xmlNode
      *xml) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:244,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:273,1
    - Dst: mainloop_timer_start
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:304,1
    - Dst: attrd_set_attr_flags
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:320,1
    - Dst: attrd_election_won
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:342,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:322,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:303,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:279,1
    - Dst: readable_value
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:275,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:263,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:283,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:285,1
    - Dst: attrd_set_requesting_shutdown
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:293,1
    - Dst: attrd_write_or_elect_attribute
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:306,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:312,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:323,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:332,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:335,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:292,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:338,1
    - Dst: attrd_set_node_xml_id
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:341,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:256,1
    - Dst: pcmk__cluster_lookup_remote_node
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:259,1
    - Dst: readable_value
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:282,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:274,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:282,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:266,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:286,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:290,1
    - Dst: attrd_clear_requesting_shutdown
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:296,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:318,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:319,1
    - Dst: attrd_set_value_flags
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:328,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:302,1
    - Dst: attrd_write_attributes
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:344,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:340,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:236,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:243,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:239,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:241,1
    - Dst: attrd_get_node_xml_id
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:250,1
    - Dst: attrd_set_value_flags
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:258,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:259,1
    - Dst: attrd_broadcast_value
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:276,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:284,1
    - Dst: attrd_set_attr_flags
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:287,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:289,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 86
    argCount: 7
    argNames:
    - a
    - peer
    - xml
    - attr
    - value
    - host
    - filter
    argTypes:
    - attribute_t*
    - pcmk__node_status_t*
    - xmlNode*
    - char*
    - char*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 347
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 347
    functionName: update_attr_on_host
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_corosync.c
    functionUses: []
    functionsReached:
    - pcmk__get_node
    - crm_element_value_int
    - readable_value
    - attrd_get_node_xml_id
    - crm_notice
    - mainloop_timer_start
    - attrd_broadcast_value
    - attrd_set_attr_flags
    - g_hash_table_replace
    - pcmk__s
    - g_hash_table_lookup
    - attrd_write_attributes
    - crm_element_value
    - pcmk__assert
    - attrd_set_value_flags
    - attrd_clear_requesting_shutdown
    - pcmk__assert_alloc
    - pcmk__str_eq
    - pcmk__str_copy
    - pcmk__cluster_lookup_remote_node
    - attrd_write_or_elect_attribute
    - attrd_set_node_xml_id
    - attrd_election_won
    - pcmk__readable_interval
    - attrd_set_requesting_shutdown
    - crm_trace
    - pcmk__str_update
    linkageType: ''
    returnType: void
    signature: 'static void update_attr_on_host(attribute_t *a, const pcmk__node_status_t
      *peer, const xmlNode *xml, const char *attr, const char *value, const char *host,
      bool filter) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:402,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:406,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:403,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:408,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:405,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:409,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:411,1
    - Dst: readable_value
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:412,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:414,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:415,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:423,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:425,1
    - Dst: attrd_send_message
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:424,1
    - Dst: attrd_add_value_xml
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:417,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 427
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 427
    functionName: broadcast_unseen_local_values
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_corosync.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_debug
    - crm_xml_add
    - pcmk__str_eq
    - readable_value
    - attrd_add_value_xml
    - pcmk_is_set
    - attrd_send_message
    - pcmk__xml_free
    - g_hash_table_iter_init
    - crm_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void broadcast_unseen_local_values(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:506,1
    - Dst: attrd_clear_value_seen
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:513,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:518,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:517,1
    - Dst: attrd_peer_update
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:520,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:521,1
    - Dst: broadcast_unseen_local_values
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:528,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - peer
    - peer_won
    - xml
    argTypes:
    - pcmk__node_status_t*
    - bool
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 530
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 530
    functionName: attrd_peer_sync_response
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_corosync.c
    functionUses: []
    functionsReached:
    - broadcast_unseen_local_values
    - attrd_clear_value_seen
    - pcmk__xe_first_child
    - pcmk__xe_next
    - crm_element_value
    - crm_info
    - attrd_peer_update
    linkageType: ''
    returnType: void
    signature: 'void attrd_peer_sync_response(const pcmk__node_status_t *peer, bool
      peer_won, xmlNode *xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:578,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:582,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:584,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:583,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:580,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:585,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:586,1
    - Dst: readable_value
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:587,1
    - Dst: readable_peer
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:588,1
    - Dst: attrd_add_value_xml
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:589,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:593,1
    - Dst: attrd_send_message
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:594,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:595,1
    - Dst: readable_peer
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:593,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - peer
    argTypes:
    - pcmk__node_status_t*
    constantsTouched: []
    func_position:
      end: 596
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 596
    functionName: attrd_peer_sync
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_corosync.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_debug
    - crm_xml_add
    - readable_peer
    - readable_value
    - attrd_add_value_xml
    - attrd_send_message
    - pcmk__xml_free
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void attrd_peer_sync(pcmk__node_status_t *peer) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:28,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:32,1
    - Dst: pcmk__cluster_local_node_name
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:31,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:31,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:30,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - callid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: attrd_confirmation
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_corosync.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__cluster_local_node_name
    - crm_xml_add
    - crm_xml_add_int
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *attrd_confirmation(int callid) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cpg_message_data
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:107,1
    - Dst: attrd_peer_message
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:119,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:119,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:113,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:116,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:124,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:125,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 6
    argNames:
    - handle
    - groupName
    - nodeid
    - pid
    - msg
    - msg_len
    argTypes:
    - cpg_handle_t
    - struct cpg_name*
    - uint32_t
    - uint32_t
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 126
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 126
    functionName: attrd_cpg_dispatch
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_corosync.c
    functionUses: []
    functionsReached:
    - pcmk__get_node
    - crm_err
    - pcmk__xml_free
    - free
    - pcmk__xml_parse
    - pcmk__cpg_message_data
    - attrd_peer_message
    linkageType: ''
    returnType: void
    signature: 'static void attrd_cpg_dispatch(cpg_handle_t handle, const struct cpg_name
      *groupName, uint32_t nodeid, uint32_t pid, void *msg, size_t msg_len) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:172,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:177,1
    - Dst: attrd_peer_sync
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:196,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:166,1
    - Dst: state_text
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:173,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:170,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:186,1
    - Dst: attrd_peer_remove
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:207,1
    - Dst: state_text
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:189,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:188,1
    - Dst: attrd_send_protocol
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:200,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:190,1
    - Dst: attrd_do_not_expect_from_peer
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:218,1
    - Dst: crm_get_cluster_proc
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:177,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:180,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:181,1
    - Dst: attrd_election_won
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:195,1
    - Dst: attrd_remove_peer_protocol_ver
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:217,1
    - Dst: state_text
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:189,1
    - Dst: attrd_remove_voter
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:216,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 3
    argNames:
    - kind
    - peer
    - data
    argTypes:
    - enum pcmk__node_update
    - pcmk__node_status_t*
    - void*
    constantsTouched: []
    func_position:
      end: 220
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 220
    functionName: attrd_peer_change_cb
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_corosync.c
    functionUses: []
    functionsReached:
    - crm_debug
    - attrd_remove_peer_protocol_ver
    - pcmk__s
    - attrd_remove_voter
    - pcmk__str_eq
    - attrd_do_not_expect_from_peer
    - pcmk_is_set
    - attrd_peer_sync
    - attrd_peer_remove
    - state_text
    - attrd_election_won
    - attrd_send_protocol
    - crm_get_cluster_proc
    linkageType: ''
    returnType: void
    signature: 'static void attrd_peer_change_cb(enum pcmk__node_update kind, pcmk__node_status_t
      *peer, const void *data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:354,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:359,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:356,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:355,1
    - Dst: attrd_populate_attribute
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:363,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:372,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:373,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:374,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:376,1
    - Dst: update_attr_on_host
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:377,1
    - Dst: update_attr_on_host
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:382,1
    - Dst: attrd_update_minimum_protocol_ver
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:389,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:388,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 3
    argNames:
    - peer
    - xml
    - filter
    argTypes:
    - pcmk__node_status_t*
    - xmlNode*
    - bool
    constantsTouched: []
    func_position:
      end: 391
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 391
    functionName: attrd_peer_update_one
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_corosync.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__xe_remove_attr
    - pcmk__str_eq
    - attrd_update_minimum_protocol_ver
    - attrd_populate_attribute
    - crm_element_value
    - update_attr_on_host
    - crm_warn
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void attrd_peer_update_one(const pcmk__node_status_t *peer,
      xmlNode *xml, bool filter) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_cluster_new
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:434,1
    - Dst: pcmk_cluster_set_destroy_fn
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:436,1
    - Dst: pcmk__cluster_set_status_callback
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:440,1
    - Dst: pcmk_cpg_set_deliver_fn
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:437,1
    - Dst: pcmk_cpg_set_confchg_fn
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:438,1
    - Dst: pcmk_cluster_connect
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:442,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:443,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 449
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 449
    functionName: attrd_cluster_connect
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_corosync.c
    functionUses: []
    functionsReached:
    - pcmk_cluster_set_destroy_fn
    - pcmk__cluster_set_status_callback
    - pcmk_cluster_connect
    - pcmk_rc2legacy
    - pcmk_cpg_set_deliver_fn
    - pcmk_cluster_new
    - pcmk_cpg_set_confchg_fn
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int attrd_cluster_connect(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:604,1
    - Dst: attrd_peer_update_one
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:610,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:606,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:609,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:607,1
    - Dst: attrd_request_has_sync_point
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:612,1
    - Dst: attrd_peer_update_one
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:618,1
    - Dst: attrd_request_has_sync_point
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:620,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:629,1
    - Dst: attrd_ack_waitlist_clients
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:630,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 4
    argNames:
    - peer
    - xml
    - host
    - filter
    argTypes:
    - pcmk__node_status_t*
    - xmlNode*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 632
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 632
    functionName: attrd_peer_update
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_corosync.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - attrd_ack_waitlist_clients
    - pcmk__xe_first_child
    - attrd_peer_update_one
    - pcmk__xe_copy_attrs
    - pcmk__xe_next
    - attrd_request_has_sync_point
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void attrd_peer_update(const pcmk__node_status_t *peer, xmlNode *xml,
      const char *host, bool filter) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:151,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:153,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:156,1
    - Dst: attrd_send_message
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:155,1
    - Dst: attrd_add_value_xml
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - a
    - v
    argTypes:
    - attribute_t*
    - attribute_value_t*
    constantsTouched: []
    func_position:
      end: 157
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 157
    functionName: attrd_broadcast_value
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_corosync.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - attrd_add_value_xml
    - attrd_send_message
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'void attrd_broadcast_value(const attribute_t *a, const attribute_value_t
      *v) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:457,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:466,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:456,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:483,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:486,1
    - Dst: attrd_peer_update
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:488,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:485,1
    - Dst: attrd_failure_regex
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:471,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:473,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:477,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:487,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:455,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:458,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:469,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:472,1
    - Dst: regfree
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:491,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:482,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:480,1
    - Dst: regexec
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:484,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 492
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 492
    functionName: attrd_peer_clear_failure
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_corosync.c
    functionUses: []
    functionsReached:
    - regexec
    - pcmk__xe_remove_attr
    - pcmk__get_node
    - pcmk__s
    - g_hash_table_iter_init
    - attrd_peer_update
    - crm_xml_add
    - regfree
    - pcmk_parse_interval_spec
    - crm_element_value
    - crm_info
    - attrd_failure_regex
    - crm_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void attrd_peer_clear_failure(pcmk__request_t *request) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:546,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:551,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:547,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:552,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:553,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:554,1
    - Dst: pcmk__purge_node_from_cache
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:559,1
    - Dst: attrd_forget_node_xml_id
      Src: /src/pacemaker/daemons/attrd/attrd_corosync.c:560,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - host
    - uncache
    - source
    argTypes:
    - char*
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 562
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 562
    functionName: attrd_peer_remove
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_corosync.c
    functionUses: []
    functionsReached:
    - crm_debug
    - CRM_CHECK
    - pcmk__purge_node_from_cache
    - g_hash_table_remove
    - crm_notice
    - attrd_forget_node_xml_id
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void attrd_peer_remove(const char *host, bool uncache, const char
      *source) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - if_requested
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: attrd_shutting_down
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_utils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool attrd_shutting_down(bool if_requested) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_main_loop_new
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: attrd_init_mainloop
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_utils.c
    functionUses: []
    functionsReached:
    - g_main_loop_new
    linkageType: ''
    returnType: void
    signature: 'void attrd_init_mainloop(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: attrd_value_needs_expansion
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_utils.c
    functionUses: []
    functionsReached:
    - strlen
    linkageType: ''
    returnType: bool
    signature: 'bool attrd_value_needs_expansion(const char *value) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:211,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:213,1
    - Dst: regcomp
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:220,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:215,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:219,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:221,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - regex
    - rsc
    - op
    - interval_ms
    argTypes:
    - regex_t*
    - char*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 224
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 224
    functionName: attrd_failure_regex
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_utils.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - pcmk__str_copy
    - regcomp
    - free
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int attrd_failure_regex(regex_t *regex, const char *rsc, const char
      *op, guint interval_ms) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - host
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: attrd_remove_peer_protocol_ver
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_utils.c
    functionUses: []
    functionsReached:
    - g_hash_table_remove
    linkageType: ''
    returnType: void
    signature: 'void attrd_remove_peer_protocol_ver(const char *host) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:231,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:232,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:233,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 235
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 235
    functionName: attrd_free_attribute_value
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_utils.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void attrd_free_attribute_value(gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: attrd_set_requesting_shutdown
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_utils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void attrd_set_requesting_shutdown(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: attrd_clear_requesting_shutdown
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_utils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void attrd_clear_requesting_shutdown(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_destroy_signal
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:90,1
    - Dst: mainloop_destroy_signal
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:92,1
    - Dst: mainloop_destroy_signal
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:93,1
    - Dst: mainloop_destroy_signal
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:91,1
    - Dst: mainloop_destroy_signal
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:94,1
    - Dst: mainloop_destroy_signal
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:95,1
    - Dst: attrd_free_waitlist
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:97,1
    - Dst: attrd_free_confirmations
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:98,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:101,1
    - Dst: g_main_loop_is_running
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:105,1
    - Dst: g_main_loop_unref
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:112,1
    - Dst: g_main_loop_quit
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:111,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - nsig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 114
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 114
    functionName: attrd_shutdown
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_utils.c
    functionUses: []
    functionsReached:
    - g_main_loop_unref
    - g_main_loop_quit
    - crm_exit
    - g_hash_table_destroy
    - g_main_loop_is_running
    - mainloop_destroy_signal
    - attrd_free_waitlist
    - attrd_free_confirmations
    linkageType: ''
    returnType: void
    signature: 'void attrd_shutdown(int nsig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_main_loop_run
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: attrd_run_mainloop
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_utils.c
    functionUses: []
    functionsReached:
    - g_main_loop_run
    linkageType: ''
    returnType: void
    signature: 'void attrd_run_mainloop(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:171,1
    - Dst: QB_MIN
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:185,1
    - Dst: QB_MAX
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:183,1
    - Dst: pcmk_parse_score
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:177,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - value
    - old_value
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 186
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 186
    functionName: attrd_expand_value
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_utils.c
    functionUses: []
    functionsReached:
    - QB_MAX
    - QB_MIN
    - pcmk_parse_score
    linkageType: ''
    returnType: int
    signature: 'int attrd_expand_value(const char *value, const char *old_value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:242,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:245,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:244,1
    - Dst: mainloop_timer_del
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:247,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:243,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:248,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 252
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 252
    functionName: attrd_free_attribute
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_utils.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - free
    - mainloop_timer_del
    linkageType: ''
    returnType: void
    signature: 'void attrd_free_attribute(gpointer data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:288,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:295,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:291,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:295,1
    - Dst: GINT_TO_POINTER
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:296,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_utils.c:301,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - host
    - value
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 305
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 305
    functionName: attrd_update_minimum_protocol_ver
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_utils.c
    functionUses: []
    functionsReached:
    - pcmk__strkey_table
    - pcmk__str_copy
    - GINT_TO_POINTER
    - pcmk__scan_min_int
    - g_hash_table_insert
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void attrd_update_minimum_protocol_ver(const char *host, const char
      *value) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:86,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:89,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:89,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:95,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:94,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:98,1
    - Dst: pcmk__free_alerts
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:102,1
    - Dst: pcmk__unpack_alerts
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:103,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 104
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 104
    functionName: config_query_callback
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_alerts.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__unpack_alerts
    - pcmk__xe_first_child
    - crm_notice
    - pcmk__xe_is
    - pcmk__free_alerts
    - pcmk_strerror
    linkageType: ''
    returnType: void
    signature: 'static void config_query_callback(xmlNode * msg, int call_id, int
      rc, xmlNode * output, void *user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lrmd_api_new
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:40,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:54,1
    - Dst: attrd_lrmd_disconnect
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:63,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 68
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 68
    functionName: attrd_lrmd_connect
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_alerts.c
    functionUses: []
    functionsReached:
    - crm_debug
    - attrd_lrmd_disconnect
    - lrmd_api_new
    linkageType: ''
    returnType: lrmd_t*
    signature: 'static lrmd_t *attrd_lrmd_connect(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:25,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:28,1
    - Dst: attrd_lrmd_disconnect
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:29,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - lrmd_event_data_t*
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: attrd_lrmd_callback
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_alerts.c
    functionUses: []
    functionsReached:
    - attrd_lrmd_disconnect
    - crm_info
    - CRM_CHECK
    linkageType: ''
    returnType: void
    signature: 'static void attrd_lrmd_callback(lrmd_event_data_t * op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lrmd_api_delete
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: attrd_lrmd_disconnect
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_alerts.c
    functionUses: []
    functionsReached:
    - lrmd_api_delete
    linkageType: ''
    returnType: void
    signature: 'void attrd_lrmd_disconnect(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:111,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:121,1
    - Dst: pcmk__cib_abs_xpath_for
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: attrd_read_options
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_alerts.c
    functionUses: []
    functionsReached:
    - pcmk__cib_abs_xpath_for
    - CRM_CHECK
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean attrd_read_options(gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__search_node_caches
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:135,1
    - Dst: lrmd_send_attribute_alert
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:142,1
    - Dst: attrd_lrmd_connect
      Src: /src/pacemaker/daemons/attrd/attrd_alerts.c:142,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 4
    argNames:
    - node
    - node_xml_id
    - attr
    - value
    argTypes:
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 144
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 144
    functionName: attrd_send_attribute_alert
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_alerts.c
    functionUses: []
    functionsReached:
    - pcmk__search_node_caches
    - lrmd_send_attribute_alert
    - attrd_lrmd_connect
    linkageType: ''
    returnType: int
    signature: 'int attrd_send_attribute_alert(const char *node, const char *node_xml_id,
      const char *attr, const char *value) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:43,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:51,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:46,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:47,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:48,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:56,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:59,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:61,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:66,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:67,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:68,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:78,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:69,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:80,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:79,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:76,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:77,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - attr
    - host
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 85
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 85
    functionName: build_query_reply
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_ipc.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - g_hash_table_lookup
    - crm_xml_add
    - pcmk__str_eq
    - g_hash_table_iter_init
    - crm_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *build_query_reply(const char *attr, const char *host) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:145,1
    - Dst: pcmk__cluster_node_name
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:165,1
    - Dst: pcmk__search_node_caches
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:158,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:153,1
    - Dst: attrd_send_ack
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:148,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:168,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:173,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:174,1
    - Dst: attrd_send_message
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:175,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:176,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:178,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:182,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:179,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 184
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 184
    functionName: attrd_client_peer_remove
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_ipc.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - attrd_send_ack
    - pcmk__search_node_caches
    - crm_xml_add
    - pcmk__cluster_node_name
    - attrd_send_message
    - free
    - crm_element_value
    - crm_info
    - crm_element_value_int
    - pcmk__client_name
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *attrd_client_peer_remove(pcmk__request_t *request) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:223,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:228,1
    - Dst: attrd_send_ack
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:225,1
    - Dst: attrd_write_attributes
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 230
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 230
    functionName: attrd_client_refresh
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_ipc.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - crm_info
    - attrd_write_attributes
    - attrd_send_ack
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *attrd_client_refresh(pcmk__request_t *request) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:256,1
    - Dst: regexec
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:263,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:261,1
    - Dst: regcomp
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:257,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:262,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:266,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:268,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:274,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:275,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:276,1
    - Dst: regfree
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:280,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 4
    argNames:
    - xml
    - attr
    - value
    - regex
    argTypes:
    - xmlNode*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 296
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 296
    functionName: expand_regexes
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_ipc.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__xe_create
    - regexec
    - pcmk__xe_remove_attr
    - crm_xml_add
    - regfree
    - regcomp
    - pcmk__xe_copy_attrs
    - g_hash_table_iter_init
    - crm_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: int
    signature: 'static int expand_regexes(xmlNode *xml, const char *attr, const char
      *value, const char *regex) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:329,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:340,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:331,1
    - Dst: attrd_value_needs_expansion
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:335,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:341,1
    - Dst: attrd_expand_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:344,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:346,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:347,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:350,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 19
    argCount: 4
    argNames:
    - value
    - xml
    - op
    - attr
    argTypes:
    - char**
    - xmlNode*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 354
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 354
    functionName: handle_value_expansion
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_ipc.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - attrd_expand_value
    - pcmk__str_eq
    - crm_xml_add_int
    - crm_element_value
    - crm_info
    - attrd_value_needs_expansion
    linkageType: ''
    returnType: int
    signature: 'static int handle_value_expansion(const char **value, xmlNode *xml,
      const char *op, const char *attr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: attrd_client_update
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:387,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - child
    - data
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 389
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 389
    functionName: send_child_update
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_ipc.c
    functionUses: []
    functionsReached:
    - attrd_client_update
    linkageType: ''
    returnType: int
    signature: 'static int send_child_update(xmlNode *child, void *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:493,1
    - Dst: attrd_shutting_down
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:494,1
    - Dst: pcmk__new_client
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:500,1
    - Dst: pcmk__client_pid
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:496,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - c
    - uid
    - gid
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 504
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 504
    functionName: attrd_ipc_accept
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_ipc.c
    functionUses: []
    functionsReached:
    - attrd_shutting_down
    - pcmk__client_pid
    - pcmk__new_client
    - crm_info
    - crm_trace
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t attrd_ipc_accept(qb_ipcs_connection_t *c, uid_t uid,
      gid_t gid) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:548,1
    - Dst: attrd_ipc_closed
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 550
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 550
    functionName: attrd_ipc_destroy
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_ipc.c
    functionUses: []
    functionsReached:
    - crm_trace
    - attrd_ipc_closed
    linkageType: ''
    returnType: void
    signature: 'static void attrd_ipc_destroy(qb_ipcs_connection_t *c) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:193,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:196,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:198,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:200,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:193,1
    - Dst: build_query_reply
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:205,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:206,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:208,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:210,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:213,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 218
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 218
    functionName: attrd_client_query
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_ipc.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__format_result
    - pcmk__set_result
    - build_query_reply
    - crm_element_value
    - pcmk__client_name
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *attrd_client_query(pcmk__request_t *request) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: attrd_send_message
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:97,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:104,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:102,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:103,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:98,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:107,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:115,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:120,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:121,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:125,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:133,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:129,1
    - Dst: attrd_client_update
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:136,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:134,1
    - Dst: free
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:126,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 137
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 137
    functionName: attrd_client_clear_failure
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_ipc.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - pcmk__xe_remove_attr
    - crm_strdup_printf
    - crm_xml_add
    - attrd_send_message
    - free
    - pcmk_parse_interval_spec
    - crm_element_value
    - attrd_client_update
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *attrd_client_clear_failure(pcmk__request_t *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:235,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:236,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:239,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 243
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 243
    functionName: handle_missing_host
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_ipc.c
    functionUses: []
    functionsReached:
    - crm_xml_add
    - crm_trace
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void handle_missing_host(xmlNode *xml) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:304,1
    - Dst: expand_regexes
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:308,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:306,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:305,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:311,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:313,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:316,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:317,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:319,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 323
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 323
    functionName: handle_regexes
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_ipc.c
    functionUses: []
    functionsReached:
    - pcmk__format_result
    - expand_regexes
    - crm_element_value
    - crm_err
    - pcmk__client_name
    linkageType: ''
    returnType: int
    signature: 'static int handle_regexes(pcmk__request_t *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:359,1
    - Dst: attrd_request_sync_point
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:359,1
    - Dst: attrd_expect_confirmations
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:364,1
    - Dst: attrd_send_message
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:365,1
    - Dst: attrd_send_message
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:374,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - request
    - xml
    argTypes:
    - pcmk__request_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 376
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 376
    functionName: send_update_msg_to_cluster
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_ipc.c
    functionUses: []
    functionsReached:
    - attrd_expect_confirmations
    - attrd_request_sync_point
    - attrd_send_message
    - pcmk__str_eq
    linkageType: ''
    returnType: void
    signature: 'static void send_update_msg_to_cluster(pcmk__request_t *request, xmlNode
      *xml) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:416,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:414,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:417,1
    - Dst: handle_missing_host
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:419,1
    - Dst: handle_value_expansion
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:421,1
    - Dst: send_update_msg_to_cluster
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:428,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:429,1
    - Dst: attrd_client_update
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:460,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:466,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:471,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:397,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:472,1
    - Dst: attrd_election_won
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:473,1
    - Dst: send_update_msg_to_cluster
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:475,1
    - Dst: ATTRD_SUPPORTS_MULTI_MESSAGE
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:406,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:422,1
    - Dst: handle_missing_host
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:463,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:448,1
    - Dst: handle_regexes
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:452,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:449,1
    - Dst: pcmk__xe_foreach_child
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:441,1
    - Dst: handle_value_expansion
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:465,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:450,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:476,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:412,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 478
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 478
    functionName: attrd_client_update
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_ipc.c
    functionUses: []
    functionsReached:
    - ATTRD_SUPPORTS_MULTI_MESSAGE
    - pcmk__format_result
    - pcmk__set_result
    - handle_regexes
    - CRM_CHECK
    - crm_debug
    - handle_value_expansion
    - pcmk__xe_first_child
    - pcmk__xe_foreach_child
    - handle_missing_host
    - send_update_msg_to_cluster
    - pcmk__xe_next
    - attrd_election_won
    - crm_element_value
    - attrd_client_update
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *attrd_client_update(pcmk__request_t *request) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:562,1
    - Dst: pcmk__client_data2xml
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:578,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:586,1
    - Dst: g_byte_array_free
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:589,1
    - Dst: pcmk__update_acl_user
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:614,1
    - Dst: pcmk__reset_request
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:620,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:564,1
    - Dst: g_byte_array_free
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:579,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:616,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:623,1
    - Dst: pcmk__client_pid
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:564,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:586,1
    - Dst: attrd_handle_request
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:619,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:597,1
    - Dst: pcmk__ipc_send_ack
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:598,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:617,1
    - Dst: pcmk__client_pid
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:597,1
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:558,1
    - Dst: pcmk__ipc_msg_append
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:568,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:613,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - c
    - data
    - size
    argTypes:
    - qb_ipcs_connection_t*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 625
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 625
    functionName: attrd_ipc_dispatch
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_ipc.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__update_acl_user
    - CRM_CHECK
    - pcmk__reset_request
    - pcmk__ipc_send_ack
    - g_byte_array_free
    - pcmk__client_pid
    - attrd_handle_request
    - pcmk__find_client
    - pcmk__client_data2xml
    - pcmk__xml_free
    - pcmk__ipc_msg_append
    - pcmk_rc_str
    - pcmk__assert
    - crm_element_value_copy
    - crm_err
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t attrd_ipc_dispatch(qb_ipcs_connection_t * c, void *data,
      size_t size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__drop_all_clients
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:639,1
    - Dst: qb_ipcs_destroy
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:640,1
    - Dst: attrd_unregister_handlers
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:644,1
    - Dst: pcmk__client_cleanup
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 646
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 646
    functionName: attrd_ipc_fini
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_ipc.c
    functionUses: []
    functionsReached:
    - attrd_unregister_handlers
    - pcmk__client_cleanup
    - qb_ipcs_destroy
    - pcmk__drop_all_clients
    linkageType: ''
    returnType: void
    signature: 'void attrd_ipc_fini(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:517,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:520,1
    - Dst: attrd_do_not_wait_for_client
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:528,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:522,1
    - Dst: attrd_remove_client_from_waitlist
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:525,1
    - Dst: pcmk__free_client
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:530,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 534
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 534
    functionName: attrd_ipc_closed
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_ipc.c
    functionUses: []
    functionsReached:
    - attrd_do_not_wait_for_client
    - attrd_remove_client_from_waitlist
    - pcmk__find_client
    - pcmk__free_client
    - crm_trace
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t attrd_ipc_closed(qb_ipcs_connection_t *c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__serve_attrd_ipc
      Src: /src/pacemaker/daemons/attrd/attrd_ipc.c:655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 656
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 656
    functionName: attrd_init_ipc
    functionSourceFile: /src/pacemaker/daemons/attrd/attrd_ipc.c
    functionUses: []
    functionsReached:
    - pcmk__serve_attrd_ipc
    linkageType: ''
    returnType: void
    signature: 'void attrd_init_ipc(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_new_ipc_api
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:68,1
    - Dst: pcmk__connect_ipc
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:73,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:75,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:76,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:76,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:77,1
    - Dst: pcmk_disconnect_ipc
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:81,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 84
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 84
    functionName: ipc_already_running
    functionSourceFile: /src/pacemaker/daemons/attrd/pacemaker-attrd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_ipc_name
    - pcmk__connect_ipc
    - pcmk_disconnect_ipc
    - pcmk_new_ipc_api
    - pcmk_rc_str
    - pcmk_free_ipc_api
    linkageType: ''
    returnType: bool
    signature: 'static bool ipc_already_running(void) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:104,1
    - Dst: crm_log_preinit
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:109,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:112,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:144,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:150,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:159,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:168,1
    - Dst: attrd_election_init
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:175,1
    - Dst: attrd_init_ipc
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:188,1
    - Dst: attrd_run_mainloop
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:190,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:220,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:216,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:110,1
    - Dst: crm_log_init
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:135,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:136,1
    - Dst: attrd_cib_connect
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:157,1
    - Dst: attrd_cluster_connect
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:166,1
    - Dst: attrd_ipc_fini
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:196,1
    - Dst: pcmk_cluster_disconnect
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:204,1
    - Dst: g_strfreev
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:214,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:222,1
    - Dst: g_strfreev
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:211,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:212,1
    - Dst: attrd_init_mainloop
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:108,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:113,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:121,1
    - Dst: ipc_already_running
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:139,1
    - Dst: pcmk__add_logfiles
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:133,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:123,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:163,1
    - Dst: attrd_send_protocol
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:186,1
    - Dst: attrd_lrmd_disconnect
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:197,1
    - Dst: pcmk_cluster_free
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:205,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:223,1
    - Dst: attrd_cleanup_xml_ids
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:209,1
    - Dst: build_arg_context
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:106,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:105,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:118,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:141,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:172,1
    - Dst: attrd_cib_init
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:178,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:189,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:194,1
    - Dst: attrd_free_waitlist
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:203,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:206,1
    - Dst: attrd_cib_disconnect
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:200,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 78
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 224
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 224
    functionName: main
    functionSourceFile: /src/pacemaker/daemons/attrd/pacemaker-attrd.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - pcmk__register_formats
    - crm_exit
    - g_hash_table_destroy
    - attrd_cleanup_xml_ids
    - crm_notice
    - attrd_cib_connect
    - attrd_cib_disconnect
    - attrd_lrmd_disconnect
    - crm_log_preinit
    - build_arg_context
    - pcmk__add_logfiles
    - pcmk_rc_str
    - attrd_cib_init
    - attrd_send_protocol
    - crm_crit
    - pcmk__cmdline_preproc
    - pcmk_cluster_free
    - attrd_init_ipc
    - pcmk__unregister_formats
    - pcmk__output_and_clear_error
    - crm_log_init
    - pcmk_cluster_disconnect
    - attrd_run_mainloop
    - attrd_free_waitlist
    - crm_info
    - pcmk__output_new
    - g_strfreev
    - pcmk__strkey_table
    - ipc_already_running
    - attrd_election_init
    - mainloop_add_signal
    - g_set_error
    - attrd_cluster_connect
    - attrd_init_mainloop
    - pcmk__output_free
    - pcmk__new_common_args
    - pcmk__free_arg_context
    - attrd_ipc_fini
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:90,1
    - Dst: pcmk__add_main_args
      Src: /src/pacemaker/daemons/attrd/pacemaker-attrd.c:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/daemons/attrd/pacemaker-attrd.c
    functionUses: []
    functionsReached:
    - pcmk__add_main_args
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/based/based_operation.c:53,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/daemons/based/based_operation.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - operation
    argTypes:
    - cib__operation_t*
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: based_get_op_function
    functionSourceFile: /src/pacemaker/daemons/based/based_operation.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - PCMK__NELEM
    linkageType: ''
    returnType: cib__op_fn_t
    signature: 'cib__op_fn_t based_get_op_function(const cib__operation_t *operation) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - nsig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: cib_enable_writes
    functionSourceFile: /src/pacemaker/daemons/based/pacemaker-based.c
    functionUses: []
    functionsReached:
    - crm_info
    linkageType: ''
    returnType: void
    signature: 'static void cib_enable_writes(int nsig) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:186,1
    - Dst: crm_log_preinit
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:189,1
    - Dst: build_arg_context
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:187,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:197,1
    - Dst: g_strv_length
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:216,1
    - Dst: pcmk__connect_generic_ipc
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:241,1
    - Dst: g_main_loop_run
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:283,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:310,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:311,1
    - Dst: pcmk__cluster_init_node_caches
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:275,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:185,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:191,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:212,1
    - Dst: crm_ipc_new
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:232,1
    - Dst: crm_ipc_destroy
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:244,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:269,1
    - Dst: pcmk_cluster_disconnect
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:288,1
    - Dst: pcmk__stop_based_ipc
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:289,1
    - Dst: pcmk__cluster_destroy_node_caches
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:295,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:270,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:308,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:200,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:202,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:211,1
    - Dst: based_metadata
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:219,1
    - Dst: mainloop_add_trigger
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:214,1
    - Dst: crm_log_init
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:229,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:230,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:245,1
    - Dst: g_strdup
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:262,1
    - Dst: pcmk__daemon_can_write
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:267,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:282,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:304,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:293,1
    - Dst: pcmk_cluster_free
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:301,1
    - Dst: g_strfreev
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:292,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:192,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:222,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:223,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:228,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:217,1
    - Dst: crm_ipc_close
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:243,1
    - Dst: crm_ipc_destroy
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:250,1
    - Dst: setup_stand_alone
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:255,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:264,1
    - Dst: cib_init
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:278,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:298,1
    - Dst: g_free
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:302,1
    - Dst: g_main_loop_new
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:281,1
    - Dst: pcmk__client_cleanup
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:300,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 93
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 312
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 312
    functionName: main
    functionSourceFile: /src/pacemaker/daemons/based/pacemaker-based.c
    functionUses: []
    functionsReached:
    - setup_stand_alone
    - g_option_context_parse_strv
    - crm_ipc_destroy
    - crm_ipc_new
    - pcmk__register_formats
    - pcmk__cluster_init_node_caches
    - crm_exit
    - g_hash_table_destroy
    - mainloop_add_trigger
    - crm_notice
    - based_metadata
    - g_strdup
    - pcmk__cli_init_logging
    - crm_log_preinit
    - build_arg_context
    - pcmk__stop_based_ipc
    - pcmk_rc_str
    - g_free
    - pcmk__connect_generic_ipc
    - crm_crit
    - pcmk__cmdline_preproc
    - crm_err
    - crm_ipc_close
    - g_strv_length
    - pcmk_cluster_free
    - pcmk__unregister_formats
    - pcmk__output_and_clear_error
    - pcmk__str_eq
    - crm_log_init
    - cib_init
    - pcmk_cluster_disconnect
    - pcmk__client_cleanup
    - pcmk__output_new
    - g_strfreev
    - g_main_loop_new
    - g_set_error
    - mainloop_add_signal
    - g_main_loop_run
    - pcmk__output_free
    - pcmk__new_common_args
    - pcmk__daemon_can_write
    - pcmk__free_arg_context
    - pcmk__cluster_destroy_node_caches
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__daemon_metadata
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcmk__output_t*
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: based_metadata
    functionSourceFile: /src/pacemaker/daemons/based/pacemaker-based.c
    functionUses: []
    functionsReached:
    - pcmk__daemon_metadata
    linkageType: ''
    returnType: int
    signature: 'static int based_metadata(pcmk__output_t *out) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cpg_message_data
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:322,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:328,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:331,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:330,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:334,1
    - Dst: cib_peer_callback
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:335,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:337,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:338,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 6
    argNames:
    - handle
    - groupName
    - nodeid
    - pid
    - msg
    - msg_len
    argTypes:
    - cpg_handle_t
    - struct cpg_name*
    - uint32_t
    - uint32_t
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 339
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 339
    functionName: cib_cs_dispatch
    functionSourceFile: /src/pacemaker/daemons/based/pacemaker-based.c
    functionUses: []
    functionsReached:
    - crm_xml_add
    - free
    - pcmk__xml_free
    - pcmk__xml_parse
    - cib_peer_callback
    - pcmk__cpg_message_data
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void cib_cs_dispatch(cpg_handle_t handle, const struct cpg_name
      *groupName, uint32_t nodeid, uint32_t pid, void *msg, size_t msg_len) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cluster_num_active_nodes
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:361,1
    - Dst: pcmk__ipc_client_count
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:362,1
    - Dst: terminate_cib
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:365,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:364,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 3
    argNames:
    - type
    - node
    - data
    argTypes:
    - enum pcmk__node_update
    - pcmk__node_status_t*
    - void*
    constantsTouched: []
    func_position:
      end: 372
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 372
    functionName: cib_peer_update_callback
    functionSourceFile: /src/pacemaker/daemons/based/pacemaker-based.c
    functionUses: []
    functionsReached:
    - crm_info
    - terminate_cib
    - pcmk__cluster_num_active_nodes
    - pcmk__ipc_client_count
    linkageType: ''
    returnType: void
    signature: 'static void cib_peer_update_callback(enum pcmk__node_update type,
      pcmk__node_status_t *node, const void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:169,1
    - Dst: pcmk__add_main_args
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 172
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 172
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/daemons/based/pacemaker-based.c
    functionUses: []
    functionsReached:
    - pcmk__add_main_args
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:345,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:347,1
    - Dst: terminate_cib
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 351
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 351
    functionName: cib_cs_destroy
    functionSourceFile: /src/pacemaker/daemons/based/pacemaker-based.c
    functionUses: []
    functionsReached:
    - crm_info
    - terminate_cib
    - crm_crit
    linkageType: ''
    returnType: void
    signature: 'static void cib_cs_destroy(gpointer user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_cluster_new
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:377,1
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:380,1
    - Dst: pcmk_cluster_set_destroy_fn
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:381,1
    - Dst: pcmk_cpg_set_confchg_fn
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:383,1
    - Dst: pcmk_cpg_set_deliver_fn
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:382,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:387,1
    - Dst: startCib
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:389,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:390,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:391,1
    - Dst: pcmk__cluster_set_status_callback
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:395,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:398,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:399,1
    - Dst: pcmk_cluster_connect
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:397,1
    - Dst: pcmk__serve_based_ipc
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 409
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 409
    functionName: cib_init
    functionSourceFile: /src/pacemaker/daemons/based/pacemaker-based.c
    functionUses: []
    functionsReached:
    - pcmk_cluster_set_destroy_fn
    - startCib
    - pcmk__strkey_table
    - pcmk_get_cluster_layer
    - crm_exit
    - pcmk__serve_based_ipc
    - pcmk__cluster_set_status_callback
    - pcmk_cluster_connect
    - pcmk_cpg_set_deliver_fn
    - pcmk_cluster_new
    - pcmk_cpg_set_confchg_fn
    - crm_crit
    linkageType: ''
    returnType: void
    signature: 'static void cib_init(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: readCibXmlFile
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:415,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:424,1
    - Dst: cib_read_config
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:422,1
    - Dst: pcmk__scan_port
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:424,1
    - Dst: activateCibXml
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:417,1
    - Dst: init_remote_listener
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:426,1
    - Dst: pcmk__scan_port
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:429,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:429,1
    - Dst: init_remote_listener
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:432,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 436
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 436
    functionName: startCib
    functionSourceFile: /src/pacemaker/daemons/based/pacemaker-based.c
    functionUses: []
    functionsReached:
    - pcmk__scan_port
    - init_remote_listener
    - cib_read_config
    - activateCibXml
    - crm_element_value
    - readCibXmlFile
    linkageType: ''
    returnType: bool
    signature: 'static bool startCib(const char *filename) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getpwnam
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:83,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:87,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:92,1
    - Dst: setgid
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:97,1
    - Dst: strerror
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:89,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:100,1
    - Dst: strerror
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:102,1
    - Dst: initgroups
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:106,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:109,1
    - Dst: strerror
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:111,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:118,1
    - Dst: strerror
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:120,1
    - Dst: setuid
      Src: /src/pacemaker/daemons/based/pacemaker-based.c:115,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - error
    argTypes:
    - GError**
    constantsTouched: []
    func_position:
      end: 124
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 124
    functionName: setup_stand_alone
    functionSourceFile: /src/pacemaker/daemons/based/pacemaker-based.c
    functionUses: []
    functionsReached:
    - setgid
    - strerror
    - g_set_error
    - initgroups
    - getpwnam
    - setuid
    linkageType: ''
    returnType: int
    signature: 'static int setup_stand_alone(GError **error) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:99,1
    - Dst: cib_shutdown
      Src: /src/pacemaker/daemons/based/based_callbacks.c:102,1
    - Dst: cib_ipc_closed
      Src: /src/pacemaker/daemons/based/based_callbacks.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: cib_ipc_destroy
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - cib_shutdown
    - cib_ipc_closed
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void cib_ipc_destroy(qb_ipcs_connection_t * c) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/based/based_callbacks.c:86,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:91,1
    - Dst: pcmk__free_client
      Src: /src/pacemaker/daemons/based/based_callbacks.c:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: cib_ipc_closed
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - pcmk__find_client
    - pcmk__free_client
    - crm_trace
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t cib_ipc_closed(qb_ipcs_connection_t * c) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/based/based_callbacks.c:171,1
    - Dst: pcmk__find_client_by_id
      Src: /src/pacemaker/daemons/based/based_callbacks.c:175,1
    - Dst: PCMK__CLIENT_TYPE
      Src: /src/pacemaker/daemons/based/based_callbacks.c:192,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/based/based_callbacks.c:177,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/based/based_callbacks.c:173,1
    - Dst: pcmk__ipc_send_xml
      Src: /src/pacemaker/daemons/based/based_callbacks.c:194,1
    - Dst: pcmk__remote_send_xml
      Src: /src/pacemaker/daemons/based/based_callbacks.c:198,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:205,1
    - Dst: pcmk__client_type_str
      Src: /src/pacemaker/daemons/based/based_callbacks.c:206,1
    - Dst: PCMK__CLIENT_TYPE
      Src: /src/pacemaker/daemons/based/based_callbacks.c:206,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/based/based_callbacks.c:207,1
    - Dst: pcmk__client_type_str
      Src: /src/pacemaker/daemons/based/based_callbacks.c:212,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_callbacks.c:216,1
    - Dst: PCMK__CLIENT_TYPE
      Src: /src/pacemaker/daemons/based/based_callbacks.c:212,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/based/based_callbacks.c:213,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_callbacks.c:211,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 4
    argNames:
    - notify_src
    - client_id
    - sync_reply
    - from_peer
    argTypes:
    - xmlNode*
    - char*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 218
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 218
    functionName: do_local_notify
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - crm_debug
    - PCMK__CLIENT_TYPE
    - CRM_CHECK
    - crm_trace
    - pcmk__client_type_str
    - pcmk_rc_str
    - pcmk__remote_send_xml
    - pcmk__ipc_send_xml
    - crm_warn
    - pcmk__find_client_by_id
    - crm_element_value_int
    - pcmk__client_name
    linkageType: ''
    returnType: void
    signature: 'static void do_local_notify(const xmlNode *notify_src, const char
      *client_id, bool sync_reply, bool from_peer) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1078,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1104,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1115,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1136,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1159,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1167,1
    - Dst: compare_version
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1192,1
    - Dst: mainloop_timer_stop
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1199,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1222,1
    - Dst: pcmk__log_xml_patchset
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1230,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1166,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1224,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1214,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1077,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1079,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1090,1
    - Dst: mainloop_timer_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1093,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1100,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1109,1
    - Dst: prepare_input
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1113,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1120,1
    - Dst: cib__set_call_options
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1133,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1134,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1239,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1225,1
    - Dst: cib_diff_notify
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1226,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1081,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1101,1
    - Dst: cib_perform_op
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1116,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1120,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1109,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1107,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1173,1
    - Dst: cib_read_config
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1178,1
    - Dst: crm_log_xml_info
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1206,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1207,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1218,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1215,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1203,1
    - Dst: create_cib_reply
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1234,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1153,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1233,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1104,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1131,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1136,1
    - Dst: cib_perform_op
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1145,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1168,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1173,1
    - Dst: activateCibXml
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1171,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1191,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1192,1
    - Dst: sync_our_cib
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1196,1
    - Dst: mainloop_timer_start
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1200,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1213,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1162,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1241,1
    - Dst: contains_config_change
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1177,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 125
    argCount: 6
    argNames:
    - request
    - operation
    - op_function
    - reply
    - cib_diff
    - privileged
    argTypes:
    - xmlNode*
    - cib__operation_t*
    - cib__op_fn_t
    - xmlNode**
    - xmlNode**
    - bool
    constantsTouched: []
    func_position:
      end: 1243
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1243
    functionName: cib_process_command
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - mainloop_timer_stop
    - cib_read_config
    - sync_our_cib
    - mainloop_timer_start
    - pcmk__xe_attr_is_true
    - cib__set_call_options
    - create_cib_reply
    - pcmk__xe_get_flags
    - contains_config_change
    - activateCibXml
    - pcmk_is_set
    - pcmk_rc_str
    - crm_element_value
    - pcmk__assert
    - prepare_input
    - crm_err
    - pcmk_any_flags_set
    - pcmk__log_xml_patchset
    - CRM_CHECK
    - cib_diff_notify
    - compare_version
    - pcmk__str_eq
    - crm_log_xml_info
    - crm_warn
    - pcmk__str_any_of
    - pcmk_strerror
    - cib_perform_op
    - crm_trace
    - CRM_LOG_ASSERT
    - mainloop_timer_add
    - pcmk__xml_free
    linkageType: ''
    returnType: int
    signature: 'static int cib_process_command(xmlNode *request, const cib__operation_t
      *operation, cib__op_fn_t op_function, xmlNode **reply, xmlNode **cib_diff, bool
      privileged) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1275,1
    - Dst: terminate_cib
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1277,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 1279
      start: 1272
    functionDepth: 0
    functionLinenumber: 1272
    functionLinenumberEnd: 1279
    functionName: cib_force_exit
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - crm_notice
    - pcmk__readable_interval
    - terminate_cib
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean cib_force_exit(gpointer data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1395,1
    - Dst: close
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1399,1
    - Dst: uninitializeCib
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1403,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1408,1
    - Dst: pcmk__stop_based_ipc
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1407,1
    - Dst: g_main_loop_is_running
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1412,1
    - Dst: pcmk_cluster_disconnect
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1419,1
    - Dst: g_main_loop_quit
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1421,1
    - Dst: pcmk_cluster_disconnect
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1428,1
    - Dst: pcmk__stop_based_ipc
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1429,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1430,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - exit_status
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1431
      start: 1391
    functionDepth: 0
    functionLinenumber: 1391
    functionLinenumberEnd: 1431
    functionName: terminate_cib
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - g_main_loop_quit
    - crm_exit
    - g_main_loop_is_running
    - pcmk_cluster_disconnect
    - pcmk__stop_based_ipc
    - uninitializeCib
    - close
    linkageType: ''
    returnType: void
    signature: 'void terminate_cib(int exit_status) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:224,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:237,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/daemons/based/based_callbacks.c:228,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:267,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/based/based_callbacks.c:264,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/based/based_callbacks.c:265,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:274,1
    - Dst: pcmk__clear_client_flags
      Src: /src/pacemaker/daemons/based/based_callbacks.c:290,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_callbacks.c:231,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:241,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:245,1
    - Dst: pcmk__ipc_send_xml
      Src: /src/pacemaker/daemons/based/based_callbacks.c:247,1
    - Dst: pcmk__ipc_send_ack
      Src: /src/pacemaker/daemons/based/based_callbacks.c:294,1
    - Dst: cib_process_request
      Src: /src/pacemaker/daemons/based/based_callbacks.c:298,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_callbacks.c:231,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:246,1
    - Dst: UINT64_C
      Src: /src/pacemaker/daemons/based/based_callbacks.c:257,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:270,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:253,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:278,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/based/based_callbacks.c:243,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:258,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_callbacks.c:249,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/based/based_callbacks.c:261,1
    - Dst: pcmk__set_client_flags
      Src: /src/pacemaker/daemons/based/based_callbacks.c:288,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 5
    argNames:
    - id
    - flags
    - op_request
    - cib_client
    - privileged
    argTypes:
    - uint32_t
    - uint32_t
    - xmlNode*
    - pcmk__client_t*
    - gboolean
    constantsTouched: []
    func_position:
      end: 299
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 299
    functionName: cib_common_callback_worker
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_debug
    - pcmk__set_client_flags
    - crm_element_value
    - pcmk__ipc_send_xml
    - crm_xml_add
    - pcmk__str_eq
    - pcmk__xe_get_flags
    - pcmk__ipc_send_ack
    - cib_process_request
    - pcmk_is_set
    - pcmk__xml_free
    - pcmk_rc_str
    - pcmk__clear_client_flags
    - crm_warn
    - UINT64_C
    - crm_element_value_int
    - pcmk__client_name
    linkageType: ''
    returnType: void
    signature: 'void cib_common_callback_worker(uint32_t id, uint32_t flags, xmlNode
      * op_request, pcmk__client_t *cib_client, gboolean privileged) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1053,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1056,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1059,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - diff
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1062
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1062
    functionName: contains_config_change
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeObject
    - pcmk__xpath_search
    - pcmk__xpath_num_results
    linkageType: ''
    returnType: bool
    signature: 'static bool contains_config_change(xmlNode *diff) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1249,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1257,1
    - Dst: cib_process_request
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1261,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1256,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1266,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1268,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 2
    argNames:
    - msg
    - private_data
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 1270
      start: 1245
    functionDepth: 0
    functionLinenumber: 1245
    functionLinenumberEnd: 1270
    functionName: cib_peer_callback
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - crm_warn
    - crm_xml_add
    - cib_process_request
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'void cib_peer_callback(xmlNode * msg, void *private_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1286,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 1288
      start: 1281
    functionDepth: 0
    functionLinenumber: 1281
    functionLinenumberEnd: 1288
    functionName: disconnect_remote_client
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - crm_err
    - pcmk__client_name
    linkageType: ''
    returnType: void
    signature: 'static void disconnect_remote_client(gpointer key, gpointer value,
      gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/based/based_callbacks.c:76,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:78,1
    - Dst: cib_common_callback
      Src: /src/pacemaker/daemons/based/based_callbacks.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - c
    - data
    - size
    argTypes:
    - qb_ipcs_connection_t*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: cib_ipc_dispatch_ro
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - pcmk__find_client
    - crm_trace
    - cib_common_callback
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t cib_ipc_dispatch_ro(qb_ipcs_connection_t * c, void
      *data, size_t size) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__client_data2xml
      Src: /src/pacemaker/daemons/based/based_callbacks.c:326,1
    - Dst: pcmk__ipc_msg_append
      Src: /src/pacemaker/daemons/based/based_callbacks.c:316,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_callbacks.c:334,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/daemons/based/based_callbacks.c:373,1
    - Dst: pcmk__parse_server
      Src: /src/pacemaker/daemons/based/based_callbacks.c:376,1
    - Dst: g_byte_array_free
      Src: /src/pacemaker/daemons/based/based_callbacks.c:337,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/daemons/based/based_callbacks.c:347,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:356,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/based/based_callbacks.c:363,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/based/based_callbacks.c:375,1
    - Dst: cib_config_lookup
      Src: /src/pacemaker/daemons/based/based_callbacks.c:384,1
    - Dst: pcmk__set_client_queue_max
      Src: /src/pacemaker/daemons/based/based_callbacks.c:386,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_callbacks.c:396,1
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/based/based_callbacks.c:308,1
    - Dst: g_byte_array_free
      Src: /src/pacemaker/daemons/based/based_callbacks.c:327,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_callbacks.c:350,1
    - Dst: pcmk__ipc_send_ack
      Src: /src/pacemaker/daemons/based/based_callbacks.c:357,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/based/based_callbacks.c:364,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:369,1
    - Dst: pcmk__set_client_flags
      Src: /src/pacemaker/daemons/based/based_callbacks.c:377,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:389,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/based/based_callbacks.c:392,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:312,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_callbacks.c:334,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_callbacks.c:351,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:362,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:383,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:390,1
    - Dst: pcmk__update_acl_user
      Src: /src/pacemaker/daemons/based/based_callbacks.c:393,1
    - Dst: cib_common_callback_worker
      Src: /src/pacemaker/daemons/based/based_callbacks.c:395,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 4
    argNames:
    - c
    - data
    - size
    - privileged
    argTypes:
    - qb_ipcs_connection_t*
    - void*
    - size_t
    - gboolean
    constantsTouched: []
    func_position:
      end: 399
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 399
    functionName: cib_common_callback
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - pcmk__update_acl_user
    - pcmk__find_client
    - pcmk__client_data2xml
    - cib_config_lookup
    - pcmk__ipc_send_ack
    - pcmk__xe_get_flags
    - g_byte_array_free
    - pcmk_is_set
    - pcmk__parse_server
    - cib_common_callback_worker
    - crm_element_value
    - pcmk_rc_str
    - crm_err
    - pcmk__set_client_flags
    - pcmk__itoa
    - pcmk__str_copy
    - crm_warn
    - pcmk__set_client_queue_max
    - crm_trace
    - CRM_LOG_ASSERT
    - crm_xml_add
    - pcmk__xml_free
    - pcmk__ipc_msg_append
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t cib_common_callback(qb_ipcs_connection_t * c, void *data,
      size_t size, gboolean privileged) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1025,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1032,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1027,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1036,1
    - Dst: pcmk_find_cib_element
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1037,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 3
    argNames:
    - request
    - type
    - section
    argTypes:
    - xmlNode*
    - enum cib__op_type
    - char**
    constantsTouched: []
    func_position:
      end: 1041
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1041
    functionName: prepare_input
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - pcmk__xe_is
    - pcmk_find_cib_element
    - crm_element_value
    - pcmk__xe_first_child
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *prepare_input(const xmlNode *request, enum cib__op_type
      type, const char **section) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/based/based_callbacks.c:142,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:146,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:144,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:147,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:145,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/based/based_callbacks.c:148,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/based/based_callbacks.c:149,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/based/based_callbacks.c:152,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:154,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/based/based_callbacks.c:155,1
    - Dst: crm_log_xml_explicit
      Src: /src/pacemaker/daemons/based/based_callbacks.c:158,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 6
    argNames:
    - op
    - call_id
    - client_id
    - call_options
    - rc
    - call_data
    argTypes:
    - char*
    - char*
    - char*
    - uint32_t
    - int
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 160
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 160
    functionName: create_cib_reply
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xml_copy
    - crm_log_xml_explicit
    - crm_xml_add
    - crm_xml_add_int
    - crm_trace
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *create_cib_reply(const char *op, const char *call_id,
      const char *client_id, uint32_t call_options, int rc, xmlNode *call_data) '
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:809,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_callbacks.c:819,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:829,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/based/based_callbacks.c:841,1
    - Dst: parse_local_options
      Src: /src/pacemaker/daemons/based/based_callbacks.c:852,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:877,1
    - Dst: forward_request
      Src: /src/pacemaker/daemons/based/based_callbacks.c:888,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:933,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/based/based_callbacks.c:938,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:945,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:972,1
    - Dst: send_peer_reply
      Src: /src/pacemaker/daemons/based/based_callbacks.c:984,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_callbacks.c:954,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:804,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:806,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:811,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_callbacks.c:819,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:828,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:831,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:861,1
    - Dst: time
      Src: /src/pacemaker/daemons/based/based_callbacks.c:901,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/daemons/based/based_callbacks.c:914,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:934,1
    - Dst: do_local_notify
      Src: /src/pacemaker/daemons/based/based_callbacks.c:996,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:997,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:935,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:978,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:989,1
    - Dst: do_local_notify
      Src: /src/pacemaker/daemons/based/based_callbacks.c:992,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1003,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:988,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:805,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:807,1
    - Dst: cib__get_operation
      Src: /src/pacemaker/daemons/based/based_callbacks.c:837,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/daemons/based/based_callbacks.c:838,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_callbacks.c:847,1
    - Dst: parse_peer_options
      Src: /src/pacemaker/daemons/based/based_callbacks.c:856,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:875,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:884,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_callbacks.c:894,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:942,1
    - Dst: time
      Src: /src/pacemaker/daemons/based/based_callbacks.c:947,1
    - Dst: cib_process_command
      Src: /src/pacemaker/daemons/based/based_callbacks.c:908,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:981,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:949,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/based/based_callbacks.c:978,1
    - Dst: crm_write_blackbox
      Src: /src/pacemaker/daemons/based/based_callbacks.c:950,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/based/based_callbacks.c:940,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:975,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:943,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:808,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/daemons/based/based_callbacks.c:816,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:827,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:832,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:834,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:833,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_callbacks.c:841,1
    - Dst: based_get_op_function
      Src: /src/pacemaker/daemons/based/based_callbacks.c:845,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/based/based_callbacks.c:895,1
    - Dst: create_cib_reply
      Src: /src/pacemaker/daemons/based/based_callbacks.c:896,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:903,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:944,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/daemons/based/based_callbacks.c:955,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1002,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:964,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:993,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:969,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:962,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 160
    argCount: 3
    argNames:
    - request
    - privileged
    - cib_client
    argTypes:
    - xmlNode*
    - gboolean
    - pcmk__client_t*
    constantsTouched: []
    func_position:
      end: 1006
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 1006
    functionName: cib_process_request
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - do_crm_log
    - crm_write_blackbox
    - pcmk__xe_attr_is_true
    - based_get_op_function
    - create_cib_reply
    - pcmk__s
    - pcmk__xe_get_flags
    - pcmk_rc2legacy
    - pcmk_is_set
    - crm_element_value
    - pcmk_rc_str
    - crm_err
    - send_peer_reply
    - crm_warn
    - pcmk_strerror
    - crm_trace
    - crm_log_xml_err
    - forward_request
    - crm_xml_add
    - time
    - pcmk__xml_free
    - do_local_notify
    - cib__get_operation
    - parse_peer_options
    - cib_process_command
    - parse_local_options
    linkageType: ''
    returnType: int
    signature: 'int cib_process_request(xmlNode *request, gboolean privileged, const
      pcmk__client_t *cib_client) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_callbacks.c:53,1
    - Dst: pcmk__client_pid
      Src: /src/pacemaker/daemons/based/based_callbacks.c:54,1
    - Dst: pcmk__new_client
      Src: /src/pacemaker/daemons/based/based_callbacks.c:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - c
    - uid
    - gid
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 62
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 62
    functionName: cib_ipc_accept
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - pcmk__client_pid
    - crm_info
    - pcmk__new_client
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t cib_ipc_accept(qb_ipcs_connection_t * c, uid_t uid,
      gid_t gid) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/based/based_callbacks.c:410,1
    - Dst: snprintf
      Src: /src/pacemaker/daemons/based/based_callbacks.c:416,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:417,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_callbacks.c:413,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:419,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:420,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:421,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:423,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/based/based_callbacks.c:424,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_callbacks.c:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 429
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 429
    functionName: cib_digester_cb
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - pcmk__cluster_send_message
    - free
    - pcmk__xml_free
    - snprintf
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean cib_digester_cb(gpointer data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:529,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:536,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:539,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/based/based_callbacks.c:537,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_callbacks.c:542,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:549,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:550,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:559,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/based/based_callbacks.c:560,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:561,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:566,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:570,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/based/based_callbacks.c:567,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/based/based_callbacks.c:572,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 8
    argNames:
    - cib_client
    - operation
    - host
    - op
    - local_notify
    - needs_reply
    - process
    - needs_forward
    argTypes:
    - pcmk__client_t*
    - cib__operation_t*
    - char*
    - char*
    - gboolean*
    - gboolean*
    - gboolean*
    - gboolean*
    constantsTouched: []
    func_position:
      end: 574
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 574
    functionName: parse_local_options
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - pcmk__str_eq
    - pcmk_is_set
    - crm_warn
    - crm_trace
    - pcmk__client_name
    linkageType: ''
    returnType: void
    signature: 'static void parse_local_options(const pcmk__client_t *cib_client,
      const cib__operation_t *operation, const char *host, const char *op, gboolean
      *local_notify, gboolean *needs_reply, gboolean *process, gboolean *needs_forward) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:723,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:724,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:725,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:726,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:727,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:729,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:734,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/based/based_callbacks.c:738,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:740,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:741,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:744,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:745,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/based/based_callbacks.c:752,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:747,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:742,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/daemons/based/based_callbacks.c:755,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/based/based_callbacks.c:750,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:743,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - request
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 756
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 756
    functionName: forward_request
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - pcmk__xe_remove_attr
    - pcmk__get_node
    - pcmk__s
    - crm_xml_add
    - pcmk__str_eq
    - pcmk__cluster_send_message
    - do_crm_log
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void forward_request(xmlNode *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cluster_num_active_nodes
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1296,1
    - Dst: terminate_cib
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1299,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1305,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1303,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1298,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1306,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1307,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1309,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1310,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1313
      start: 1290
    functionDepth: 0
    functionLinenumber: 1290
    functionLinenumberEnd: 1313
    functionName: initiate_exit
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - terminate_cib
    - crm_xml_add
    - pcmk__cluster_send_message
    - pcmk__xml_free
    - pcmk__cluster_num_active_nodes
    - crm_info
    - pcmk__create_timer
    linkageType: ''
    returnType: void
    signature: 'static void initiate_exit(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/based/based_callbacks.c:67,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:69,1
    - Dst: cib_common_callback
      Src: /src/pacemaker/daemons/based/based_callbacks.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - c
    - data
    - size
    argTypes:
    - qb_ipcs_connection_t*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: cib_ipc_dispatch_rw
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - pcmk__find_client
    - crm_trace
    - cib_common_callback
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t cib_ipc_dispatch_rw(qb_ipcs_connection_t * c, void
      *data, size_t size) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/based/based_callbacks.c:437,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:442,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/based/based_callbacks.c:477,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:476,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:475,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:489,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:494,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:500,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:435,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/based/based_callbacks.c:439,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/based/based_callbacks.c:453,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_callbacks.c:454,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:467,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:471,1
    - Dst: pcmk__digest_xml
      Src: /src/pacemaker/daemons/based/based_callbacks.c:472,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:486,1
    - Dst: pcmk__xml_mark_changes
      Src: /src/pacemaker/daemons/based/based_callbacks.c:505,1
    - Dst: pcmk__log_xml_changes
      Src: /src/pacemaker/daemons/based/based_callbacks.c:506,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/based/based_callbacks.c:445,1
    - Dst: pcmk__scan_ll
      Src: /src/pacemaker/daemons/based/based_callbacks.c:450,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/based/based_callbacks.c:479,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:488,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/based/based_callbacks.c:493,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:498,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_callbacks.c:510,1
    - Dst: sync_our_cib
      Src: /src/pacemaker/daemons/based/based_callbacks.c:511,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:441,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:461,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:464,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:495,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:496,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:499,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:507,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 1
    argNames:
    - reply
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 514
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 514
    functionName: process_ping_reply
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__digest_xml
    - crm_element_value
    - pcmk__s
    - pcmk__xe_first_child
    - pcmk__str_eq
    - pcmk__log_xml_changes
    - sync_our_cib
    - crm_notice
    - pcmk__xml_free
    - pcmk__scan_ll
    - pcmk_rc_str
    - pcmk__xml_mark_changes
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void process_ping_reply(xmlNode *reply) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:592,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:601,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:634,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:628,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:660,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/based/based_callbacks.c:668,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:687,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:696,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:700,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:704,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:708,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:593,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:616,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:634,1
    - Dst: send_sync_request
      Src: /src/pacemaker/daemons/based/based_callbacks.c:655,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:638,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/daemons/based/based_callbacks.c:653,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:631,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_callbacks.c:659,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:675,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:691,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:589,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:595,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:612,1
    - Dst: process_ping_reply
      Src: /src/pacemaker/daemons/based/based_callbacks.c:613,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:627,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:689,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:706,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:591,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:608,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_callbacks.c:654,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:663,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_callbacks.c:690,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_callbacks.c:706,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_callbacks.c:708,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 78
    argCount: 5
    argNames:
    - operation
    - request
    - local_notify
    - needs_reply
    - process
    argTypes:
    - cib__operation_t*
    - xmlNode*
    - gboolean*
    - gboolean*
    - gboolean*
    constantsTouched: []
    func_position:
      end: 712
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 712
    functionName: parse_peer_options
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__s
    - crm_xml_add
    - pcmk__str_eq
    - pcmk_is_set
    - process_ping_reply
    - crm_element_value
    - pcmk__xe_attr_is_true
    - crm_info
    - crm_trace
    - send_sync_request
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean parse_peer_options(const cib__operation_t *operation,
      xmlNode *request, gboolean *local_notify, gboolean *needs_reply, gboolean *process) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/based/based_callbacks.c:768,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/based/based_callbacks.c:773,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_callbacks.c:771,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_callbacks.c:772,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - msg
    - originator
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 774
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 774
    functionName: send_peer_reply
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - crm_xml_add
    - pcmk__get_node
    - crm_trace
    - pcmk__cluster_send_message
    linkageType: ''
    returnType: void
    signature: 'static void send_peer_reply(xmlNode *msg, const char *originator) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_disconnect
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1333,1
    - Dst: qb_ipcs_connection_first_get
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1338,1
    - Dst: qb_ipcs_connection_unref
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1346,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1356,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1372,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1376,1
    - Dst: qb_ipcs_connection_first_get
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1326,1
    - Dst: qb_ipcs_connection_next_get
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1330,1
    - Dst: qb_ipcs_disconnect
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1345,1
    - Dst: qb_ipcs_connection_first_get
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1350,1
    - Dst: qb_ipcs_connection_unref
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1358,1
    - Dst: pcmk__ipc_client_count
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1377,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1332,1
    - Dst: qb_ipcs_connection_next_get
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1342,1
    - Dst: qb_ipcs_disconnect
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1357,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1364,1
    - Dst: pcmk__foreach_ipc_client
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1365,1
    - Dst: pcmk__ipc_client_count
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1362,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1366,1
    - Dst: pcmk__ipc_client_count
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1371,1
    - Dst: initiate_exit
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1373,1
    - Dst: qb_ipcs_connection_unref
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1334,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1344,1
    - Dst: qb_ipcs_connection_next_get
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1354,1
    - Dst: pcmk__ipc_client_count
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1364,1
    - Dst: qb_ipcs_stats_get
      Src: /src/pacemaker/daemons/based/based_callbacks.c:1369,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - nsig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1379
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1379
    functionName: cib_shutdown
    functionSourceFile: /src/pacemaker/daemons/based/based_callbacks.c
    functionUses: []
    functionsReached:
    - crm_debug
    - qb_ipcs_disconnect
    - qb_ipcs_connection_first_get
    - initiate_exit
    - qb_ipcs_stats_get
    - qb_ipcs_connection_unref
    - pcmk__ipc_client_count
    - crm_info
    - qb_ipcs_connection_next_get
    - pcmk__foreach_ipc_client
    linkageType: ''
    returnType: void
    signature: 'void cib_shutdown(int nsig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/based/pacemaker-based.h:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - opt
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: cib_config_lookup
    functionSourceFile: /src/pacemaker/daemons/based/pacemaker-based.h
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    linkageType: ''
    returnType: char*
    signature: 'static inline const char *cib_config_lookup(const char *opt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_remote.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: remote_connection_destroy
    functionSourceFile: /src/pacemaker/daemons/based/based_remote.c
    functionUses: []
    functionsReached:
    - crm_info
    linkageType: ''
    returnType: void
    signature: 'static void remote_connection_destroy(gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_remote.c:237,1
    - Dst: mainloop_del_fd
      Src: /src/pacemaker/daemons/based/based_remote.c:241,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_remote.c:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 245
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 245
    functionName: remote_auth_timeout_cb
    functionSourceFile: /src/pacemaker/daemons/based/based_remote.c
    functionUses: []
    functionsReached:
    - mainloop_del_fd
    - pcmk_is_set
    - crm_err
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean remote_auth_timeout_cb(gpointer data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getpwnam
      Src: /src/pacemaker/daemons/based/based_remote.c:156,1
    - Dst: getgrgid
      Src: /src/pacemaker/daemons/based/based_remote.c:162,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/based/based_remote.c:158,1
    - Dst: getgrnam
      Src: /src/pacemaker/daemons/based/based_remote.c:167,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_remote.c:163,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_remote.c:169,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_remote.c:179,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/based/based_remote.c:184,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 2
    argNames:
    - usr
    - grp
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 187
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 187
    functionName: check_group_membership
    functionSourceFile: /src/pacemaker/daemons/based/based_remote.c
    functionUses: []
    functionsReached:
    - getgrgid
    - pcmk__str_eq
    - getgrnam
    - crm_notice
    - getpwnam
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int check_group_membership(const char *usr, const char *grp) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_remote.c:328,1
    - Dst: pcmk__tls_get_client_sock
      Src: /src/pacemaker/daemons/based/based_remote.c:340,1
    - Dst: PCMK__CLIENT_TYPE
      Src: /src/pacemaker/daemons/based/based_remote.c:334,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_remote.c:332,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/based/based_remote.c:329,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_remote.c:342,1
    - Dst: gnutls_bye
      Src: /src/pacemaker/daemons/based/based_remote.c:344,1
    - Dst: gnutls_deinit
      Src: /src/pacemaker/daemons/based/based_remote.c:346,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_remote.c:351,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/based/based_remote.c:353,1
    - Dst: cib_shutdown
      Src: /src/pacemaker/daemons/based/based_remote.c:365,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_remote.c:362,1
    - Dst: close
      Src: /src/pacemaker/daemons/based/based_remote.c:357,1
    - Dst: pcmk__free_client
      Src: /src/pacemaker/daemons/based/based_remote.c:360,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 368
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 368
    functionName: cib_remote_connection_destroy
    functionSourceFile: /src/pacemaker/daemons/based/based_remote.c
    functionUses: []
    functionsReached:
    - PCMK__CLIENT_TYPE
    - gnutls_bye
    - close
    - cib_shutdown
    - pcmk__tls_get_client_sock
    - pcmk_is_set
    - crm_warn
    - pcmk__free_client
    - crm_trace
    - gnutls_deinit
    - pcmk__client_name
    linkageType: ''
    returnType: void
    signature: 'void cib_remote_connection_destroy(gpointer user_data) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__client_type_str
      Src: /src/pacemaker/daemons/based/based_remote.c:417,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_remote.c:464,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_remote.c:484,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/based/based_remote.c:489,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_remote.c:504,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_remote.c:506,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_remote.c:495,1
    - Dst: pcmk__read_handshake_data
      Src: /src/pacemaker/daemons/based/based_remote.c:422,1
    - Dst: pcmk__set_client_flags
      Src: /src/pacemaker/daemons/based/based_remote.c:434,1
    - Dst: pcmk__read_available_remote_data
      Src: /src/pacemaker/daemons/based/based_remote.c:453,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_remote.c:469,1
    - Dst: pcmk__remote_message_xml
      Src: /src/pacemaker/daemons/based/based_remote.c:473,1
    - Dst: pcmk__remote_send_xml
      Src: /src/pacemaker/daemons/based/based_remote.c:497,1
    - Dst: pcmk__remote_message_xml
      Src: /src/pacemaker/daemons/based/based_remote.c:502,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_remote.c:499,1
    - Dst: PCMK__CLIENT_TYPE
      Src: /src/pacemaker/daemons/based/based_remote.c:417,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_remote.c:416,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/based/based_remote.c:433,1
    - Dst: pcmk__tls_check_cert_expiration
      Src: /src/pacemaker/daemons/based/based_remote.c:444,1
    - Dst: cib_remote_auth
      Src: /src/pacemaker/daemons/based/based_remote.c:474,1
    - Dst: pcmk__set_client_flags
      Src: /src/pacemaker/daemons/based/based_remote.c:479,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/based/based_remote.c:482,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/based/based_remote.c:486,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_remote.c:491,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/based/based_remote.c:494,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/based/based_remote.c:414,1
    - Dst: PCMK__CLIENT_TYPE
      Src: /src/pacemaker/daemons/based/based_remote.c:419,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_remote.c:420,1
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/based/based_remote.c:436,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_remote.c:464,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/based/based_remote.c:447,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_remote.c:475,1
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/based/based_remote.c:480,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_remote.c:496,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_remote.c:498,1
    - Dst: cib_handle_remote_msg
      Src: /src/pacemaker/daemons/based/based_remote.c:505,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 510
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 510
    functionName: cib_remote_msg
    functionSourceFile: /src/pacemaker/daemons/based/based_remote.c
    functionUses: []
    functionsReached:
    - crm_notice
    - pcmk__read_handshake_data
    - pcmk__create_timer
    - pcmk__xe_create
    - cib_handle_remote_msg
    - pcmk__s
    - pcmk_is_set
    - pcmk__remote_send_xml
    - crm_element_value
    - pcmk_rc_str
    - pcmk__client_type_str
    - pcmk__set_client_flags
    - pcmk__read_available_remote_data
    - pcmk__remote_message_xml
    - pcmk__str_copy
    - cib_remote_auth
    - crm_trace
    - crm_debug
    - PCMK__CLIENT_TYPE
    - pcmk__tls_check_cert_expiration
    - crm_xml_add
    - pcmk__xml_free
    - crm_element_value_copy
    - g_source_remove
    - pcmk__client_name
    linkageType: ''
    returnType: int
    signature: 'static int cib_remote_msg(gpointer data) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__x509_enabled
      Src: /src/pacemaker/daemons/based/based_remote.c:92,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_remote.c:101,1
    - Dst: pcmk__init_tls
      Src: /src/pacemaker/daemons/based/based_remote.c:96,1
    - Dst: socket
      Src: /src/pacemaker/daemons/based/based_remote.c:110,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_remote.c:112,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_remote.c:131,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_remote.c:122,1
    - Dst: listen
      Src: /src/pacemaker/daemons/based/based_remote.c:136,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_remote.c:137,1
    - Dst: close
      Src: /src/pacemaker/daemons/based/based_remote.c:138,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/based/based_remote.c:144,1
    - Dst: memset
      Src: /src/pacemaker/daemons/based/based_remote.c:126,1
    - Dst: setsockopt
      Src: /src/pacemaker/daemons/based/based_remote.c:119,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_remote.c:131,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_remote.c:137,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_remote.c:139,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/based/based_remote.c:109,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_remote.c:113,1
    - Dst: close
      Src: /src/pacemaker/daemons/based/based_remote.c:132,1
    - Dst: htons
      Src: /src/pacemaker/daemons/based/based_remote.c:129,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_remote.c:133,1
    - Dst: mainloop_add_fd
      Src: /src/pacemaker/daemons/based/based_remote.c:143,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_remote.c:104,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/based/based_remote.c:94,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_remote.c:112,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_remote.c:121,1
    - Dst: bind
      Src: /src/pacemaker/daemons/based/based_remote.c:130,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - port
    - encrypted
    argTypes:
    - int
    - gboolean
    constantsTouched: []
    func_position:
      end: 147
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 147
    functionName: init_remote_listener
    functionSourceFile: /src/pacemaker/daemons/based/based_remote.c
    functionUses: []
    functionsReached:
    - crm_debug
    - listen
    - socket
    - pcmk__init_tls
    - htons
    - memset
    - pcmk__assert_alloc
    - bind
    - close
    - crm_notice
    - free
    - mainloop_add_fd
    - pcmk_rc_str
    - crm_warn
    - crm_err
    - pcmk__x509_enabled
    - setsockopt
    linkageType: ''
    returnType: int
    signature: 'int init_remote_listener(int port, gboolean encrypted) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/daemons/based/based_remote.c:200,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_remote.c:201,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/daemons/based/based_remote.c:203,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_remote.c:208,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_remote.c:207,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_remote.c:209,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/daemons/based/based_remote.c:211,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_remote.c:215,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_remote.c:216,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_remote.c:218,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/daemons/based/based_remote.c:220,1
    - Dst: authenticate_user
      Src: /src/pacemaker/daemons/based/based_remote.c:227,1
    - Dst: check_group_membership
      Src: /src/pacemaker/daemons/based/based_remote.c:226,1
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/daemons/based/based_remote.c:224,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - login
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 228
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 228
    functionName: cib_remote_auth
    functionSourceFile: /src/pacemaker/daemons/based/based_remote.c
    functionUses: []
    functionsReached:
    - crm_log_xml_debug
    - check_group_membership
    - pcmk__str_eq
    - pcmk__xe_is
    - crm_element_value
    - crm_warn
    - authenticate_user
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean cib_remote_auth(xmlNode * login) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/pacemaker/daemons/based/based_remote.c:266,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_remote.c:269,1
    - Dst: pcmk__sockaddr2str
      Src: /src/pacemaker/daemons/based/based_remote.c:273,1
    - Dst: accept
      Src: /src/pacemaker/daemons/based/based_remote.c:267,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_remote.c:269,1
    - Dst: pcmk__set_nonblocking
      Src: /src/pacemaker/daemons/based/based_remote.c:275,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_remote.c:277,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_remote.c:279,1
    - Dst: close
      Src: /src/pacemaker/daemons/based/based_remote.c:280,1
    - Dst: pcmk__new_unauth_client
      Src: /src/pacemaker/daemons/based/based_remote.c:286,1
    - Dst: pcmk__set_client_flags
      Src: /src/pacemaker/daemons/based/based_remote.c:299,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_remote.c:307,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/based/based_remote.c:287,1
    - Dst: mainloop_add_fd
      Src: /src/pacemaker/daemons/based/based_remote.c:312,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/based/based_remote.c:304,1
    - Dst: pcmk__set_client_flags
      Src: /src/pacemaker/daemons/based/based_remote.c:290,1
    - Dst: close
      Src: /src/pacemaker/daemons/based/based_remote.c:295,1
    - Dst: pcmk__new_tls_session
      Src: /src/pacemaker/daemons/based/based_remote.c:293,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 316
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 316
    functionName: cib_remote_listen
    functionSourceFile: /src/pacemaker/daemons/based/based_remote.c
    functionUses: []
    functionsReached:
    - pcmk__set_client_flags
    - memset
    - pcmk__new_unauth_client
    - pcmk__assert_alloc
    - pcmk__new_tls_session
    - accept
    - pcmk__set_nonblocking
    - mainloop_add_fd
    - pcmk__sockaddr2str
    - pcmk_rc_str
    - crm_warn
    - crm_info
    - close
    - pcmk__create_timer
    linkageType: ''
    returnType: int
    signature: 'static int cib_remote_listen(gpointer data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/daemons/based/based_remote.c:373,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/based/based_remote.c:379,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/based/based_remote.c:374,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/daemons/based/based_remote.c:384,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/daemons/based/based_remote.c:383,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/daemons/based/based_remote.c:385,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_remote.c:387,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_remote.c:388,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_remote.c:389,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_remote.c:390,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/based/based_remote.c:401,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/based/based_remote.c:404,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_remote.c:400,1
    - Dst: cib_common_callback_worker
      Src: /src/pacemaker/daemons/based/based_remote.c:405,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_remote.c:397,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_remote.c:392,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_remote.c:396,1
    - Dst: crm_generate_uuid
      Src: /src/pacemaker/daemons/based/based_remote.c:393,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - client
    - command
    argTypes:
    - pcmk__client_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 406
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 406
    functionName: cib_handle_remote_msg
    functionSourceFile: /src/pacemaker/daemons/based/based_remote.c
    functionUses: []
    functionsReached:
    - pcmk__xe_remove_attr
    - crm_generate_uuid
    - crm_xml_add
    - pcmk__str_copy
    - pcmk__xe_is
    - free
    - cib_common_callback_worker
    - crm_xml_add_int
    - crm_element_value
    - crm_log_xml_trace
    linkageType: ''
    returnType: void
    signature: 'static void cib_handle_remote_msg(pcmk__client_t *client, xmlNode
      *command) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/pacemaker/daemons/based/based_remote.c:592,1
    - Dst: pam_authenticate
      Src: /src/pacemaker/daemons/based/based_remote.c:610,1
    - Dst: pam_start
      Src: /src/pacemaker/daemons/based/based_remote.c:601,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_remote.c:603,1
    - Dst: pam_strerror
      Src: /src/pacemaker/daemons/based/based_remote.c:605,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/based/based_remote.c:612,1
    - Dst: pam_strerror
      Src: /src/pacemaker/daemons/based/based_remote.c:613,1
    - Dst: pam_get_item
      Src: /src/pacemaker/daemons/based/based_remote.c:621,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_remote.c:623,1
    - Dst: pam_strerror
      Src: /src/pacemaker/daemons/based/based_remote.c:625,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_remote.c:636,1
    - Dst: pam_acct_mgmt
      Src: /src/pacemaker/daemons/based/based_remote.c:643,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/based/based_remote.c:645,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_remote.c:635,1
    - Dst: pam_strerror
      Src: /src/pacemaker/daemons/based/based_remote.c:646,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_remote.c:656,1
    - Dst: pam_end
      Src: /src/pacemaker/daemons/based/based_remote.c:652,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_remote.c:629,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 44
    argCount: 2
    argNames:
    - user
    - passwd
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 660
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 660
    functionName: authenticate_user
    functionSourceFile: /src/pacemaker/daemons/based/based_remote.c
    functionUses: []
    functionsReached:
    - pam_acct_mgmt
    - pam_get_item
    - pam_start
    - pam_strerror
    - pcmk__str_eq
    - crm_notice
    - pam_end
    - crm_warn
    - getenv
    - pam_authenticate
    linkageType: ''
    returnType: bool
    signature: 'static bool authenticate_user(const char *user, const char *passwd) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/based/based_remote.c:534,1
    - Dst: calloc
      Src: /src/pacemaker/daemons/based/based_remote.c:559,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_remote.c:550,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_remote.c:543,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_remote.c:554,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/based/based_remote.c:564,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 22
    argCount: 4
    argNames:
    - num_msg
    - msg
    - response
    - data
    argTypes:
    - int
    - struct pam_message**
    - struct pam_response**
    - void*
    constantsTouched: []
    func_position:
      end: 566
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 566
    functionName: construct_pam_passwd
    functionSourceFile: /src/pacemaker/daemons/based/based_remote.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - calloc
    - pcmk__str_copy
    - crm_warn
    - crm_info
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int construct_pam_passwd(int num_msg, const struct pam_message
      **msg, struct pam_response **response, void *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/based/based_io.c:45,1
    - Dst: mkstemp
      Src: /src/pacemaker/daemons/based/based_io.c:48,1
    - Dst: umask
      Src: /src/pacemaker/daemons/based/based_io.c:47,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_io.c:51,1
    - Dst: rename
      Src: /src/pacemaker/daemons/based/based_io.c:50,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_io.c:55,1
    - Dst: close
      Src: /src/pacemaker/daemons/based/based_io.c:59,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_io.c:61,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - old
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 62
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 62
    functionName: cib_rename
    functionSourceFile: /src/pacemaker/daemons/based/based_io.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - umask
    - rename
    - free
    - mkstemp
    - crm_err
    - close
    linkageType: ''
    returnType: void
    signature: 'static void cib_rename(const char *old) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__env_option
      Src: /src/pacemaker/daemons/based/based_io.c:164,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/based/based_io.c:176,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/based/based_io.c:169,1
    - Dst: retrieveCib
      Src: /src/pacemaker/daemons/based/based_io.c:181,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_io.c:183,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/based/based_io.c:198,1
    - Dst: createEmptyCib
      Src: /src/pacemaker/daemons/based/based_io.c:218,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_io.c:243,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/based/based_io.c:248,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/based/based_io.c:254,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/daemons/based/based_io.c:264,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_io.c:258,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/based/based_io.c:203,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/based/based_io.c:199,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_io.c:211,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_io.c:215,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_io.c:219,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_io.c:233,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/based/based_io.c:237,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_io.c:252,1
    - Dst: pcmk__configured_schema_validates
      Src: /src/pacemaker/daemons/based/based_io.c:270,1
    - Dst: pcmk__daemon_can_write
      Src: /src/pacemaker/daemons/based/based_io.c:171,1
    - Dst: pcmk__daemon_can_write
      Src: /src/pacemaker/daemons/based/based_io.c:170,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/based/based_io.c:177,1
    - Dst: scandir
      Src: /src/pacemaker/daemons/based/based_io.c:186,1
    - Dst: cib_file_read_and_verify
      Src: /src/pacemaker/daemons/based/based_io.c:201,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/based/based_io.c:208,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_io.c:206,1
    - Dst: crm_is_true
      Src: /src/pacemaker/daemons/based/based_io.c:223,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/based/based_io.c:224,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_io.c:227,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/based/based_io.c:230,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_io.c:178,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_io.c:182,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_io.c:188,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_io.c:189,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_io.c:212,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_io.c:213,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_io.c:245,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/based/based_io.c:260,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/based/based_io.c:267,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 101
    argCount: 3
    argNames:
    - dir
    - file
    - discard_status
    argTypes:
    - char*
    - char*
    - gboolean
    constantsTouched: []
    func_position:
      end: 274
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 274
    functionName: readCibXmlFile
    functionSourceFile: /src/pacemaker/daemons/based/based_io.c
    functionUses: []
    functionsReached:
    - pcmk__xe_remove_attr
    - pcmk__xe_first_child
    - crm_notice
    - free
    - scandir
    - strstr
    - crm_log_xml_trace
    - pcmk__xe_create
    - crm_is_true
    - crm_strdup_printf
    - crm_element_value
    - pcmk_rc_str
    - crm_err
    - createEmptyCib
    - crm_xml_add_int
    - crm_warn
    - pcmk_strerror
    - retrieveCib
    - pcmk__configured_schema_validates
    - cib_file_read_and_verify
    - pcmk__env_option
    - pcmk__xml_free
    - pcmk__daemon_can_write
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *readCibXmlFile(const char *dir, const char *file, gboolean
      discard_status) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/based/based_io.c:93,1
    - Dst: S_ISREG
      Src: /src/pacemaker/daemons/based/based_io.c:100,1
    - Dst: stat
      Src: /src/pacemaker/daemons/based/based_io.c:95,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_io.c:97,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_io.c:97,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_io.c:101,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/based/based_io.c:104,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_io.c:105,1
    - Dst: pcmk__ends_with_ext
      Src: /src/pacemaker/daemons/based/based_io.c:107,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_io.c:108,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/based/based_io.c:111,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_io.c:115,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct dirent*
    constantsTouched: []
    func_position:
      end: 117
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 117
    functionName: cib_archive_filter
    functionSourceFile: /src/pacemaker/daemons/based/based_io.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_strdup_printf
    - stat
    - free
    - pcmk_rc_str
    - strstr
    - S_ISREG
    - crm_trace
    - pcmk__ends_with_ext
    linkageType: ''
    returnType: int
    signature: 'static int cib_archive_filter(const struct dirent * a) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/based/based_io.c:299,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_io.c:301,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/based/based_io.c:303,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_io.c:309,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/based/based_io.c:304,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_io.c:311,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/based/based_io.c:313,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - new_cib
    - to_disk
    - op
    argTypes:
    - xmlNode*
    - gboolean
    - char*
    constantsTouched: []
    func_position:
      end: 316
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 316
    functionName: activateCibXml
    functionSourceFile: /src/pacemaker/daemons/based/based_io.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__xml_free
    - pcmk__assert
    - crm_warn
    - crm_crit
    - crm_err
    - mainloop_set_trigger
    linkageType: ''
    returnType: int
    signature: 'int activateCibXml(xmlNode * new_cib, gboolean to_disk, const char
      *op) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/based/based_io.c:128,1
    - Dst: stat
      Src: /src/pacemaker/daemons/based/based_io.c:134,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_io.c:138,1
    - Dst: stat
      Src: /src/pacemaker/daemons/based/based_io.c:131,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/based/based_io.c:129,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_io.c:139,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_io.c:147,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 20
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct dirent**
    - struct dirent**
    constantsTouched: []
    func_position:
      end: 151
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 151
    functionName: cib_archive_sort
    functionSourceFile: /src/pacemaker/daemons/based/based_io.c
    functionUses: []
    functionsReached:
    - stat
    - free
    - crm_trace
    - crm_strdup_printf
    linkageType: ''
    returnType: int
    signature: 'static int cib_archive_sort(const struct dirent ** a, const struct
      dirent **b) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_io.c:285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 287
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 287
    functionName: uninitializeCib
    functionSourceFile: /src/pacemaker/daemons/based/based_io.c
    functionUses: []
    functionsReached:
    - pcmk__xml_free
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean uninitializeCib(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_io.c:329,1
    - Dst: mainloop_trigger_complete
      Src: /src/pacemaker/daemons/based/based_io.c:340,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_io.c:332,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_io.c:335,1
    - Dst: strsignal
      Src: /src/pacemaker/daemons/based/based_io.c:336,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 5
    argNames:
    - p
    - pid
    - core
    - signo
    - exitcode
    argTypes:
    - mainloop_child_t*
    - pid_t
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 341
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 341
    functionName: cib_diskwrite_complete
    functionSourceFile: /src/pacemaker/daemons/based/based_io.c
    functionUses: []
    functionsReached:
    - strsignal
    - crm_err
    - crm_trace
    - mainloop_trigger_complete
    linkageType: ''
    returnType: void
    signature: 'static void cib_diskwrite_complete(mainloop_child_t * p, pid_t pid,
      int core, int signo, int exitcode) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/based/based_io.c:352,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/daemons/based/based_io.c:364,1
    - Dst: fork
      Src: /src/pacemaker/daemons/based/based_io.c:366,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_io.c:368,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/daemons/based/based_io.c:356,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_io.c:368,1
    - Dst: mainloop_child_add
      Src: /src/pacemaker/daemons/based/based_io.c:375,1
    - Dst: qb_log_ctl
      Src: /src/pacemaker/daemons/based/based_io.c:378,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/based/based_io.c:389,1
    - Dst: cib_file_write_with_digest
      Src: /src/pacemaker/daemons/based/based_io.c:393,1
    - Dst: _exit
      Src: /src/pacemaker/daemons/based/based_io.c:418,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_io.c:396,1
    - Dst: pcmk_common_cleanup
      Src: /src/pacemaker/daemons/based/based_io.c:417,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 421
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 421
    functionName: write_cib_contents
    functionSourceFile: /src/pacemaker/daemons/based/based_io.c
    functionUses: []
    functionsReached:
    - fork
    - pcmk__xml_copy
    - pcmk_common_cleanup
    - _exit
    - cib_file_write_with_digest
    - pcmk__xml_free
    - mainloop_child_add
    - pcmk_rc_str
    - crm_err
    - qb_log_ctl
    linkageType: ''
    returnType: int
    signature: 'int write_cib_contents(gpointer p) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cib_file_read_and_verify
      Src: /src/pacemaker/daemons/based/based_io.c:72,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_io.c:77,1
    - Dst: cib_rename
      Src: /src/pacemaker/daemons/based/based_io.c:81,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_io.c:75,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/based/based_io.c:78,1
    - Dst: cib_rename
      Src: /src/pacemaker/daemons/based/based_io.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - filename
    - sigfile
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 86
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 86
    functionName: retrieveCib
    functionSourceFile: /src/pacemaker/daemons/based/based_io.c
    functionUses: []
    functionsReached:
    - pcmk_strerror
    - cib_file_read_and_verify
    - cib_rename
    - crm_warn
    - crm_info
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *retrieveCib(const char *filename, const char *sigfile) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_notify.c:63,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_notify.c:90,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_notify.c:91,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_notify.c:73,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/based/based_notify.c:55,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_notify.c:57,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_notify.c:67,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_notify.c:58,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_notify.c:54,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_notify.c:68,1
    - Dst: pcmk__ipc_send_iov
      Src: /src/pacemaker/daemons/based/based_notify.c:81,1
    - Dst: pcmk__remote_send_xml
      Src: /src/pacemaker/daemons/based/based_notify.c:99,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_notify.c:102,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_notify.c:50,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_notify.c:62,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_notify.c:72,1
    - Dst: PCMK__CLIENT_TYPE
      Src: /src/pacemaker/daemons/based/based_notify.c:79,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/based/based_notify.c:91,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/based/based_notify.c:97,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/based/based_notify.c:98,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/based/based_notify.c:104,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 47
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 107
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 107
    functionName: cib_notify_send_one
    functionSourceFile: /src/pacemaker/daemons/based/based_notify.c
    functionUses: []
    functionsReached:
    - crm_debug
    - PCMK__CLIENT_TYPE
    - CRM_LOG_ASSERT
    - pcmk__ipc_send_iov
    - pcmk__str_eq
    - pcmk_rc_str
    - pcmk_is_set
    - pcmk__remote_send_xml
    - crm_element_value
    - crm_warn
    - crm_err
    - pcmk__client_name
    linkageType: ''
    returnType: void
    signature: 'static void cib_notify_send_one(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_notify.c:187,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_notify.c:198,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_notify.c:199,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/based/based_notify.c:202,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_notify.c:218,1
    - Dst: cib_diff_version_details
      Src: /src/pacemaker/daemons/based/based_notify.c:173,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/based/based_notify.c:180,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/based/based_notify.c:187,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_notify.c:204,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_notify.c:205,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/based/based_notify.c:211,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_notify.c:206,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_notify.c:207,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_notify.c:208,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_notify.c:209,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_notify.c:186,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/based/based_notify.c:193,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/based/based_notify.c:199,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/based/based_notify.c:213,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/based/based_notify.c:214,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/based/based_notify.c:216,1
    - Dst: cib_notify_send
      Src: /src/pacemaker/daemons/based/based_notify.c:217,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_notify.c:210,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 8
    argNames:
    - op
    - result
    - call_id
    - client_id
    - client_name
    - origin
    - update
    - diff
    argTypes:
    - char*
    - int
    - char*
    - char*
    - char*
    - char*
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 219
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 219
    functionName: cib_diff_notify
    functionSourceFile: /src/pacemaker/daemons/based/based_notify.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xml_copy
    - cib_notify_send
    - pcmk__s
    - crm_xml_add
    - do_crm_log
    - pcmk__xml_free
    - crm_xml_add_int
    - crm_log_xml_trace
    - pcmk_strerror
    - cib_diff_version_details
    linkageType: ''
    returnType: void
    signature: 'void cib_diff_notify(const char *op, int result, const char *call_id,
      const char *client_id, const char *client_name, const char *origin, xmlNode
      *update, xmlNode *diff) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_string_sized_new
      Src: /src/pacemaker/daemons/based/based_notify.c:119,1
    - Dst: pcmk__xml_string
      Src: /src/pacemaker/daemons/based/based_notify.c:120,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_notify.c:127,1
    - Dst: pcmk__ipc_prepare_iov
      Src: /src/pacemaker/daemons/based/based_notify.c:123,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/based/based_notify.c:126,1
    - Dst: pcmk__foreach_ipc_client
      Src: /src/pacemaker/daemons/based/based_notify.c:134,1
    - Dst: pcmk_free_ipc_event
      Src: /src/pacemaker/daemons/based/based_notify.c:135,1
    - Dst: g_string_free
      Src: /src/pacemaker/daemons/based/based_notify.c:144,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 145
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 145
    functionName: cib_notify_send
    functionSourceFile: /src/pacemaker/daemons/based/based_notify.c
    functionUses: []
    functionsReached:
    - pcmk__ipc_prepare_iov
    - pcmk_free_ipc_event
    - crm_notice
    - g_string_free
    - g_string_sized_new
    - pcmk_rc_str
    - pcmk__xml_string
    - pcmk__foreach_ipc_client
    linkageType: ''
    returnType: void
    signature: 'static void cib_notify_send(const xmlNode *xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_messages.c:71,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 3
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: cib_process_noop
    functionSourceFile: /src/pacemaker/daemons/based/based_messages.c
    functionUses: []
    functionsReached:
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int cib_process_noop(const char *op, int options, const char *section,
      xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode
      **answer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:140,1
    - Dst: pcmk__digest_xml
      Src: /src/pacemaker/daemons/based/based_messages.c:142,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/based/based_messages.c:147,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:141,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_messages.c:146,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:149,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:150,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:151,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/based/based_messages.c:153,1
    - Dst: pcmk__if_tracing
      Src: /src/pacemaker/daemons/based/based_messages.c:156,1
    - Dst: pcmk__xe_copy_attrs
      Src: /src/pacemaker/daemons/based/based_messages.c:168,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:176,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:177,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_messages.c:179,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:175,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/based/based_messages.c:166,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/based/based_messages.c:161,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_messages.c:173,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 25
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 182
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 182
    functionName: cib_process_ping
    functionSourceFile: /src/pacemaker/daemons/based/based_messages.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__digest_xml
    - pcmk__xml_copy
    - crm_xml_add
    - pcmk__if_tracing
    - free
    - pcmk__xe_copy_attrs
    - crm_element_value
    - crm_info
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int cib_process_ping(const char *op, int options, const char *section,
      xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
      xmlNode ** answer) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cib_process_upgrade
      Src: /src/pacemaker/daemons/based/based_messages.c:205,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:214,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:228,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:238,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:237,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:236,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:266,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:267,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_messages.c:280,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/based/based_messages.c:273,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/based/based_messages.c:264,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:269,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/based/based_messages.c:234,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/based/based_messages.c:231,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/based/based_messages.c:244,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_messages.c:259,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/based/based_messages.c:260,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_messages.c:275,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_messages.c:277,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/based/based_messages.c:274,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:270,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:210,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:218,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/daemons/based/based_messages.c:227,1
    - Dst: pcmk__cmp_schemas_by_name
      Src: /src/pacemaker/daemons/based/based_messages.c:230,1
    - Dst: pcmk__update_schema
      Src: /src/pacemaker/daemons/based/based_messages.c:226,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:239,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:240,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:241,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:242,1
    - Dst: pcmk__search_node_caches
      Src: /src/pacemaker/daemons/based/based_messages.c:256,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:271,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:199,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:213,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/based/based_messages.c:209,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:215,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_messages.c:217,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_messages.c:221,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_messages.c:246,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:272,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:268,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 66
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 283
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 283
    functionName: cib_process_upgrade_server
    functionSourceFile: /src/pacemaker/daemons/based/based_messages.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xml_copy
    - pcmk_strerror
    - cib_process_upgrade
    - crm_xml_add
    - pcmk__search_node_caches
    - pcmk__cmp_schemas_by_name
    - pcmk__cluster_send_message
    - pcmk_rc2legacy
    - crm_notice
    - pcmk__xml_free
    - crm_xml_add_int
    - crm_element_value
    - crm_warn
    - crm_info
    - crm_trace
    - pcmk__update_schema
    linkageType: ''
    returnType: int
    signature: 'int cib_process_upgrade_server(const char *op, int options, const
      char *section, xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode
      ** result_cib, xmlNode ** answer) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cib_diff_version_details
      Src: /src/pacemaker/daemons/based/based_messages.c:317,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_messages.c:329,1
    - Dst: cib_process_diff
      Src: /src/pacemaker/daemons/based/based_messages.c:328,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/based/based_messages.c:329,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/based/based_messages.c:322,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_messages.c:333,1
    - Dst: send_sync_request
      Src: /src/pacemaker/daemons/based/based_messages.c:335,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_messages.c:340,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 30
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 345
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 345
    functionName: cib_server_process_diff
    functionSourceFile: /src/pacemaker/daemons/based/based_messages.c
    functionUses: []
    functionsReached:
    - cib_process_diff
    - crm_notice
    - pcmk__xml_free
    - crm_warn
    - pcmk_strerror
    - cib_diff_version_details
    - crm_trace
    - send_sync_request
    linkageType: ''
    returnType: int
    signature: 'int cib_server_process_diff(const char *op, int options, const char
      *section, xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode **
      result_cib, xmlNode ** answer) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 2
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 370
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 370
    functionName: cib_process_delete_absolute
    functionSourceFile: /src/pacemaker/daemons/based/based_messages.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int cib_process_delete_absolute(const char *op, int options, const
      char *section, xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode
      ** result_cib, xmlNode ** answer) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:412,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/based/based_messages.c:421,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:426,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:435,1
    - Dst: pcmk__digest_xml
      Src: /src/pacemaker/daemons/based/based_messages.c:440,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_messages.c:452,1
    - Dst: cib_msg_copy
      Src: /src/pacemaker/daemons/based/based_messages.c:423,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/daemons/based/based_messages.c:437,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/based/based_messages.c:447,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:439,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_messages.c:453,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/based/based_messages.c:419,1
    - Dst: pcmk__xe_remove_attr
      Src: /src/pacemaker/daemons/based/based_messages.c:429,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:432,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/based/based_messages.c:443,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/based/based_messages.c:444,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/based/based_messages.c:449,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:413,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/based/based_messages.c:418,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:441,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - request
    - all
    argTypes:
    - xmlNode*
    - gboolean
    constantsTouched: []
    func_position:
      end: 455
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 455
    functionName: sync_our_cib
    functionSourceFile: /src/pacemaker/daemons/based/based_messages.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__xe_create
    - pcmk__xe_remove_attr
    - CRM_CHECK
    - pcmk__digest_xml
    - pcmk__xml_copy
    - pcmk__get_node
    - crm_xml_add
    - pcmk__cluster_send_message
    - pcmk__xe_set_bool_attr
    - pcmk__xml_free
    - free
    - crm_element_value
    - cib_msg_copy
    linkageType: ''
    returnType: int
    signature: 'int sync_our_cib(xmlNode * request, gboolean all) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:46,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_messages.c:51,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:50,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_messages.c:60,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_messages.c:56,1
    - Dst: terminate_cib
      Src: /src/pacemaker/daemons/based/based_messages.c:61,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 13
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 63
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 63
    functionName: cib_process_shutdown_req
    functionSourceFile: /src/pacemaker/daemons/based/based_messages.c
    functionUses: []
    functionsReached:
    - crm_info
    - terminate_cib
    - crm_err
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'int cib_process_shutdown_req(const char *op, int options, const char
      *section, xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode **
      result_cib, xmlNode ** answer) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_messages.c:83,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/based/based_messages.c:100,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_messages.c:95,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_messages.c:86,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_messages.c:97,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_messages.c:104,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 20
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 109
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 109
    functionName: cib_process_readwrite
    functionSourceFile: /src/pacemaker/daemons/based/based_messages.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_info
    - pcmk__str_eq
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int cib_process_readwrite(const char *op, int options, const char
      *section, xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode **
      result_cib, xmlNode ** answer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/based/based_messages.c:119,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:127,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:126,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/based/based_messages.c:122,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:125,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/based/based_messages.c:130,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/based/based_messages.c:132,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/based/based_messages.c:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - host
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 134
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 134
    functionName: send_sync_request
    functionSourceFile: /src/pacemaker/daemons/based/based_messages.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__get_node
    - crm_xml_add
    - pcmk__cluster_send_message
    - pcmk__xml_free
    - crm_info
    linkageType: ''
    returnType: void
    signature: 'void send_sync_request(const char *host) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sync_our_cib
      Src: /src/pacemaker/daemons/based/based_messages.c:188,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 2
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: cib_process_sync
    functionSourceFile: /src/pacemaker/daemons/based/based_messages.c
    functionUses: []
    functionsReached:
    - sync_our_cib
    linkageType: ''
    returnType: int
    signature: 'int cib_process_sync(const char *op, int options, const char *section,
      xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
      xmlNode ** answer) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sync_our_cib
      Src: /src/pacemaker/daemons/based/based_messages.c:290,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 2
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: cib_process_sync_one
    functionSourceFile: /src/pacemaker/daemons/based/based_messages.c
    functionUses: []
    functionsReached:
    - sync_our_cib
    linkageType: ''
    returnType: int
    signature: 'int cib_process_sync_one(const char *op, int options, const char *section,
      xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode ** result_cib,
      xmlNode ** answer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cib_process_replace
      Src: /src/pacemaker/daemons/based/based_messages.c:353,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/daemons/based/based_messages.c:355,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 7
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 359
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 359
    functionName: cib_process_replace_svr
    functionSourceFile: /src/pacemaker/daemons/based/based_messages.c
    functionUses: []
    functionsReached:
    - pcmk__xe_is
    - cib_process_replace
    linkageType: ''
    returnType: int
    signature: 'int cib_process_replace_svr(const char *op, int options, const char
      *section, xmlNode * req, xmlNode * input, xmlNode * existing_cib, xmlNode **
      result_cib, xmlNode ** answer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/based/based_messages.c:393,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/daemons/based/based_messages.c:395,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:397,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/based/based_messages.c:400,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 1
    argNames:
    - msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 405
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 405
    functionName: cib_msg_copy
    functionSourceFile: /src/pacemaker/daemons/based/based_messages.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - PCMK__NELEM
    - crm_element_value
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *cib_msg_copy(xmlNode *msg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:468,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:469,1
    - Dst: based_transaction_source_str
      Src: /src/pacemaker/daemons/based/based_messages.c:475,1
    - Dst: pcmk__find_client_by_id
      Src: /src/pacemaker/daemons/based/based_messages.c:470,1
    - Dst: based_commit_transaction
      Src: /src/pacemaker/daemons/based/based_messages.c:472,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_messages.c:477,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_messages.c:478,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_messages.c:479,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/daemons/based/based_messages.c:481,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 13
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 482
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 482
    functionName: cib_process_commit_transaction
    functionSourceFile: /src/pacemaker/daemons/based/based_messages.c
    functionUses: []
    functionsReached:
    - pcmk__find_client_by_id
    - based_transaction_source_str
    - pcmk_rc_str
    - pcmk_rc2legacy
    - free
    - crm_element_value
    - based_commit_transaction
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'int cib_process_commit_transaction(const char *op, int options, const
      char *section, xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode
      **result_cib, xmlNode **answer) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/based/based_messages.c:496,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_messages.c:501,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/based/based_messages.c:498,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/based/based_messages.c:499,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_messages.c:505,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/based/based_messages.c:507,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/based/based_messages.c:515,1
    - Dst: pcmk__highest_schema_name
      Src: /src/pacemaker/daemons/based/based_messages.c:515,1
    - Dst: pcmk__schema_files_later_than
      Src: /src/pacemaker/daemons/based/based_messages.c:519,1
    - Dst: pcmk__build_schema_xml_node
      Src: /src/pacemaker/daemons/based/based_messages.c:522,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/based/based_messages.c:526,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/based/based_messages.c:525,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 28
    argCount: 8
    argNames:
    - op
    - options
    - section
    - req
    - input
    - existing_cib
    - result_cib
    - answer
    argTypes:
    - char*
    - int
    - char*
    - xmlNode*
    - xmlNode*
    - xmlNode*
    - xmlNode**
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 528
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 528
    functionName: cib_process_schemas
    functionSourceFile: /src/pacemaker/daemons/based/based_messages.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__build_schema_xml_node
    - pcmk__xe_first_child
    - pcmk__highest_schema_name
    - pcmk__str_eq
    - g_list_free_full
    - crm_element_value
    - crm_warn
    - pcmk__schema_files_later_than
    linkageType: ''
    returnType: int
    signature: 'int cib_process_schemas(const char *op, int options, const char *section,
      xmlNode *req, xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib, xmlNode
      **answer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/based/based_transaction.c:31,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/based/based_transaction.c:37,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_transaction.c:33,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/based/based_transaction.c:32,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_transaction.c:35,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/based/based_transaction.c:37,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - client
    - origin
    argTypes:
    - pcmk__client_t*
    - char*
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: based_transaction_source_str
    functionSourceFile: /src/pacemaker/daemons/based/based_transaction.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - pcmk__client_name
    - pcmk__s
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'char *based_transaction_source_str(const pcmk__client_t *client, const
      char *origin) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/based/based_transaction.c:124,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/based/based_transaction.c:137,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/based/based_transaction.c:126,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/based/based_transaction.c:136,1
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/daemons/based/based_transaction.c:126,1
    - Dst: based_transaction_source_str
      Src: /src/pacemaker/daemons/based/based_transaction.c:139,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_transaction.c:140,1
    - Dst: process_transaction_requests
      Src: /src/pacemaker/daemons/based/based_transaction.c:145,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_transaction.c:147,1
    - Dst: free
      Src: /src/pacemaker/daemons/based/based_transaction.c:161,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - transaction
    - client
    - origin
    - result_cib
    argTypes:
    - xmlNodePtr
    - pcmk__client_t*
    - char*
    - xmlNodePtr*
    constantsTouched: []
    func_position:
      end: 163
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 163
    functionName: based_commit_transaction
    functionSourceFile: /src/pacemaker/daemons/based/based_transaction.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - based_transaction_source_str
    - pcmk__xml_copy
    - process_transaction_requests
    - pcmk__xe_is
    - free
    - pcmk__assert
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'int based_commit_transaction(xmlNodePtr transaction, const pcmk__client_t
      *client, const char *origin, xmlNodePtr *result_cib) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/based/based_transaction.c:57,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_transaction.c:63,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/daemons/based/based_transaction.c:61,1
    - Dst: cib__get_operation
      Src: /src/pacemaker/daemons/based/based_transaction.c:66,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/based/based_transaction.c:64,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/based/based_transaction.c:69,1
    - Dst: cib_process_request
      Src: /src/pacemaker/daemons/based/based_transaction.c:77,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/daemons/based/based_transaction.c:78,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/based/based_transaction.c:83,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/based/based_transaction.c:85,1
    - Dst: crm_log_xml_info
      Src: /src/pacemaker/daemons/based/based_transaction.c:86,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/based/based_transaction.c:90,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/based/based_transaction.c:92,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - transaction
    - client
    - source
    argTypes:
    - xmlNodePtr
    - pcmk__client_t*
    - char*
    constantsTouched: []
    func_position:
      end: 96
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 96
    functionName: process_transaction_requests
    functionSourceFile: /src/pacemaker/daemons/based/based_transaction.c
    functionUses: []
    functionsReached:
    - crm_trace
    - pcmk__xe_first_child
    - crm_log_xml_info
    - cib_process_request
    - pcmk_rc_str
    - pcmk_is_set
    - pcmk__xe_next
    - cib__get_operation
    - crm_element_value
    - crm_log_xml_trace
    - crm_err
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int process_transaction_requests(xmlNodePtr transaction, const
      pcmk__client_t *client, const char *source) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:45,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:49,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:50,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:46,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:47,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:51,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:52,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:54,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:56,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:59,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:61,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - history
    - callopts
    - target
    argTypes:
    - xmlNode*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 62
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 62
    functionName: stonith_send_broadcast_history
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_history.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__xml_copy
    - crm_xml_add
    - pcmk__cluster_send_message
    - pcmk__xml_free
    - crm_xml_add_int
    linkageType: ''
    returnType: void
    signature: 'static void stonith_send_broadcast_history(xmlNode *history, int callopts,
      const char *target) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:73,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: stonith_remove_history_entry
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_history.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean stonith_remove_history_entry (gpointer key, gpointer
      value, gpointer user_data) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: stonith__op_state_pending
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:154,1
    - Dst: stonith__op_state_pending
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:155,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 179
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 179
    functionName: cmp_op_by_completion
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_history.c
    functionUses: []
    functionsReached:
    - stonith__op_state_pending
    linkageType: ''
    returnType: gint
    signature: 'static gint cmp_op_by_completion(gconstpointer a, gconstpointer b) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:210,1
    - Dst: g_hash_table_get_values
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:211,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:219,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:213,1
    - Dst: g_list_sort
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:216,1
    - Dst: g_list_nth
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:219,1
    - Dst: g_list_free
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 225
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 225
    functionName: stonith_fence_history_trim
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_history.c
    functionUses: []
    functionsReached:
    - g_list_nth
    - g_list_sort
    - g_list_free
    - g_list_foreach
    - g_hash_table_get_values
    - crm_trace
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'void stonith_fence_history_trim(void) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_steal
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:349,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:360,1
    - Dst: stonith__op_state_text
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:364,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:380,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:388,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:393,1
    - Dst: stonith__xe_set_result
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:394,1
    - Dst: init_stonith_remote_op_hash_table
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:399,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:404,1
    - Dst: fenced_get_local_node
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:406,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:329,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:332,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:331,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:343,1
    - Dst: stonith__op_state_text
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:347,1
    - Dst: stonith__op_state_text
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:363,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:381,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:385,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:389,1
    - Dst: stonith__op_state_pending
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:405,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:417,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:403,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:406,1
    - Dst: fenced_send_notification
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:440,1
    - Dst: stonith__op_state_pending
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:340,1
    - Dst: stonith__op_state_text
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:346,1
    - Dst: stonith__op_state_pending
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:358,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:375,1
    - Dst: g_hash_table_iter_replace
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:352,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:369,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:383,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:386,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:390,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:401,1
    - Dst: set_fencing_completed
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:412,1
    - Dst: g_hash_table_iter_steal
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:423,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:424,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:337,1
    - Dst: stonith__op_state_pending
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:341,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:366,1
    - Dst: stonith__op_state_pending
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:357,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:387,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:391,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:409,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:435,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:444,1
    - Dst: fenced_broadcast_op_result
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:420,1
    - Dst: stonith_fence_history_trim
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:439,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 78
    argCount: 3
    argNames:
    - remote_history
    - add_id
    - target
    argTypes:
    - GHashTable*
    - gboolean
    - char*
    constantsTouched: []
    func_position:
      end: 449
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 449
    functionName: stonith_local_history_diff_and_merge
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_history.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - g_hash_table_destroy
    - stonith__xe_set_result
    - stonith_fence_history_trim
    - g_hash_table_replace
    - pcmk__xe_create
    - fenced_broadcast_op_result
    - g_hash_table_lookup
    - stonith__op_state_pending
    - crm_xml_add_ll
    - set_fencing_completed
    - g_hash_table_iter_next
    - g_hash_table_iter_steal
    - g_hash_table_steal
    - pcmk__str_eq
    - g_hash_table_iter_replace
    - stonith__op_state_text
    - crm_xml_add_int
    - crm_warn
    - crm_trace
    - g_hash_table_size
    - crm_debug
    - g_hash_table_remove
    - crm_xml_add
    - pcmk__xml_free
    - fenced_get_local_node
    - fenced_send_notification
    - init_stonith_remote_op_hash_table
    - g_hash_table_iter_init
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *stonith_local_history_diff_and_merge(GHashTable *remote_history,
      gboolean add_id, const char *target) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:481,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:492,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:505,1
    - Dst: stonith_xml_history_to_list
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:550,1
    - Dst: stonith_send_broadcast_history
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:525,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:577,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:487,1
    - Dst: stonith_fence_history_cleanup
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:507,1
    - Dst: stonith_local_history
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:523,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:524,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:529,1
    - Dst: stonith_local_history_diff_and_merge
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:553,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:545,1
    - Dst: stonith_send_broadcast_history
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:558,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:573,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:503,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:556,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:562,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:566,1
    - Dst: pcmk__search_node_caches
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:493,1
    - Dst: fenced_send_notification
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:514,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:516,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:531,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:555,1
    - Dst: fenced_get_local_node
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:529,1
    - Dst: stonith_local_history
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:575,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 4
    argNames:
    - msg
    - output
    - remote_peer
    - options
    argTypes:
    - xmlNode*
    - xmlNode**
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 578
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 578
    functionName: stonith_fence_history
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_history.c
    functionUses: []
    functionsReached:
    - stonith_local_history
    - stonith_send_broadcast_history
    - pcmk__search_node_caches
    - pcmk__str_eq
    - stonith_local_history_diff_and_merge
    - stonith_fence_history_cleanup
    - stonith_xml_history_to_list
    - pcmk__xe_set_bool_attr
    - pcmk__xpath_find_one
    - pcmk__xml_free
    - fenced_get_local_node
    - crm_element_value
    - pcmk__xe_attr_is_true
    - fenced_send_notification
    - pcmk__scan_min_int
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void stonith_fence_history(xmlNode *msg, xmlNode **output, const char
      *remote_peer, int options) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stonith_send_broadcast_history
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:94,1
    - Dst: g_hash_table_foreach_remove
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:99,1
    - Dst: fenced_send_notification
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - target
    - broadcast
    argTypes:
    - char*
    - gboolean
    constantsTouched: []
    func_position:
      end: 104
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 104
    functionName: stonith_fence_history_cleanup
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_history.c
    functionUses: []
    functionsReached:
    - stonith_send_broadcast_history
    - g_hash_table_foreach_remove
    - fenced_send_notification
    linkageType: ''
    returnType: void
    signature: 'static void stonith_fence_history_cleanup(const char *target, gboolean
      broadcast) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stonith__op_state_pending
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:193,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 196
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 196
    functionName: remove_completed_remote_op
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_history.c
    functionUses: []
    functionsReached:
    - g_hash_table_remove
    - stonith__op_state_pending
    linkageType: ''
    returnType: void
    signature: 'static void remove_completed_remote_op(gpointer data, gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:249,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:261,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:263,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:267,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:292,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:257,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:266,1
    - Dst: crm_element_value_ll
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:274,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:283,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:276,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:270,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:298,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:245,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:246,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:243,1
    - Dst: crm_element_value_ll
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:272,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:289,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:269,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:290,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:298,1
    - Dst: init_stonith_remote_op_hash_table
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:241,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:268,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:284,1
    - Dst: pcmk__set_result_output
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:291,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:297,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 1
    argNames:
    - history
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 302
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 302
    functionName: stonith_xml_history_to_list
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_history.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - pcmk__set_result_output
    - pcmk__xe_first_child
    - CRM_LOG_ASSERT
    - g_hash_table_lookup
    - pcmk__assert_alloc
    - crm_element_value_ll
    - pcmk__xe_next
    - crm_element_value_copy
    - crm_element_value
    - crm_warn
    - init_stonith_remote_op_hash_table
    - g_hash_table_replace
    - crm_trace
    - crm_element_value_int
    linkageType: ''
    returnType: GHashTable*
    signature: 'static GHashTable *stonith_xml_history_to_list(const xmlNode *history) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith_local_history_diff_and_merge
      Src: /src/pacemaker/daemons/fenced/fenced_history.c:464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - add_id
    - target
    argTypes:
    - gboolean
    - char*
    constantsTouched: []
    func_position:
      end: 465
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 465
    functionName: stonith_local_history
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_history.c
    functionUses: []
    functionsReached:
    - stonith_local_history_diff_and_merge
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *stonith_local_history(gboolean add_id, const char
      *target) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_fencing_action
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:190,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:196,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - device
    - action
    argTypes:
    - fenced_device_t*
    - char*
    constantsTouched: []
    func_position:
      end: 201
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 201
    functionName: get_action_delay_max
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__is_fencing_action
    - pcmk_parse_interval_spec
    - g_hash_table_lookup
    linkageType: ''
    returnType: int
    signature: 'static int get_action_delay_max(const fenced_device_t *device, const
      char *action) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_is
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1626,1
    - Dst: stonith_level_key
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1633,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1627,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1634,1
    - Dst: unpack_level_kind
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1632,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1647,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 4
    argNames:
    - xml
    - mode
    - target
    - id
    argTypes:
    - xmlNode*
    - enum fenced_target_by*
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 1651
      start: 1614
    functionDepth: 0
    functionLinenumber: 1614
    functionLinenumberEnd: 1651
    functionName: unpack_level_request
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - stonith_level_key
    - unpack_level_kind
    - pcmk__xe_is
    - pcmk__xpath_find_one
    - free
    - crm_element_value_int
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *unpack_level_request(xmlNode *xml, enum fenced_target_by
      *mode, char **target, int *id) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2213,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2223,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2222,1
    - Dst: callback
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2216,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2220,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2235,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2236,1
    - Dst: fenced_foreach_device
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2239,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 7
    argNames:
    - host
    - action
    - timeout
    - allow_self
    - user_data
    - (*callback)
    - support_action_only
    argTypes:
    - char*
    - char*
    - int
    - bool
    - void*
    - void
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2240
      start: 2206
    functionDepth: 0
    functionLinenumber: 2206
    functionLinenumberEnd: 2240
    functionName: get_capable_devices
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - crm_debug
    - callback
    - pcmk__assert_alloc
    - pcmk__plural_s
    - pcmk__str_copy
    - fenced_foreach_device
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'static void get_capable_devices(const char *host, const char *action,
      int timeout, bool allow_self, void *user_data, void (*callback) (GList * devices,
      void *user_data), uint32_t support_action_only) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_fencing_action
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:210,1
    - Dst: strtok
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:221,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:217,1
    - Dst: strtok
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:221,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:214,1
    - Dst: strchr
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:222,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:225,1
    - Dst: strncasecmp
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:229,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:231,1
    - Dst: strchr
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:238,1
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:239,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:243,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 3
    argNames:
    - device
    - action
    - target
    argTypes:
    - fenced_device_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 247
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 247
    functionName: get_action_delay_base
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - crm_debug
    - g_hash_table_lookup
    - pcmk__is_fencing_action
    - strtok
    - strchr
    - pcmk__str_copy
    - free
    - pcmk_parse_interval_spec
    - strncasecmp
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int get_action_delay_base(const fenced_device_t *device, const
      char *action, const char *target) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1545
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1545
    functionName: free_topology_list
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: 'void free_topology_list(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1553
      start: 1547
    functionDepth: 0
    functionLinenumber: 1547
    functionLinenumberEnd: 1553
    functionName: init_topology_list
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__strkey_table
    linkageType: ''
    returnType: void
    signature: 'void init_topology_list(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1676,1
    - Dst: set_bad_request_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1680,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1688,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1696,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1711,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1714,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1721,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1723,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1727,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1733,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1735,1
    - Dst: pcmk__str_empty
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1685,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1689,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1699,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1728,1
    - Dst: g_strsplit
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1750,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1753,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1741,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1685,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1687,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1700,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1710,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1712,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1702,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1714,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1716,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1730,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1734,1
    - Dst: count_active_levels
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1761,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1763,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1764,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1767,1
    - Dst: unpack_level_request
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1678,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1686,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1697,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1708,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1698,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1737,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1745,1
    - Dst: g_list_append
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1754,1
    - Dst: g_strfreev
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1757,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1755,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 2
    argNames:
    - msg
    - result
    argTypes:
    - xmlNode*
    - pcmk__action_result_t*
    constantsTouched: []
    func_position:
      end: 1768
      start: 1665
    functionDepth: 0
    functionLinenumber: 1665
    functionLinenumberEnd: 1768
    functionName: fenced_register_level
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - pcmk__str_empty
    - free
    - crm_log_xml_trace
    - g_hash_table_replace
    - pcmk__s
    - g_hash_table_lookup
    - count_active_levels
    - crm_element_value
    - pcmk__xe_id
    - CRM_CHECK
    - g_list_append
    - pcmk__assert_alloc
    - set_bad_request_result
    - pcmk__str_copy
    - unpack_level_request
    - crm_warn
    - crm_info
    - crm_trace
    - g_hash_table_size
    - pcmk__format_result
    - g_strsplit
    - g_strfreev
    - pcmk__plural_s
    - crm_element_value_copy
    linkageType: ''
    returnType: void
    signature: 'void fenced_register_level(xmlNode *msg, pcmk__action_result_t *result) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:498,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:502,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:499,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - pid
    - user_data
    argTypes:
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 505
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 505
    functionName: fork_cb
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - crm_debug
    - pcmk__s
    linkageType: ''
    returnType: void
    signature: 'static void fork_cb(int pid, void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith_device_execute
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 675
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 675
    functionName: stonith_device_dispatch
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - stonith_device_execute
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean stonith_device_dispatch(gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - tp
    argTypes:
    - stonith_topology_t*
    constantsTouched: []
    func_position:
      end: 1517
      start: 1505
    functionDepth: 0
    functionLinenumber: 1505
    functionLinenumberEnd: 1517
    functionName: count_active_levels
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int count_active_levels(const stonith_topology_t *tp) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1589,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1595,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1596,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1592,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - level
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1600
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1600
    functionName: unpack_level_kind
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - crm_element_value
    linkageType: ''
    returnType: enum fenced_target_by
    signature: 'static enum fenced_target_by unpack_level_kind(const xmlNode *level) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2347,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2349,1
    - Dst: add_action_specific_attributes
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2350,1
    - Dst: add_disallowed
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2351,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 5
    argNames:
    - xml
    - action
    - device
    - target
    - allow_self
    argTypes:
    - xmlNode*
    - char*
    - fenced_device_t*
    - char*
    - gboolean
    constantsTouched: []
    func_position:
      end: 2352
      start: 2342
    functionDepth: 0
    functionLinenumber: 2342
    functionLinenumberEnd: 2352
    functionName: add_action_reply
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - add_disallowed
    - crm_xml_add
    - add_action_specific_attributes
    linkageType: ''
    returnType: void
    signature: 'static void add_action_reply(xmlNode *xml, const char *action, const
      fenced_device_t *device, const char *target, gboolean allow_self) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3144,1
    - Dst: do_stonith_async_timeout_update
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3150,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3151,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3145,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 3153
      start: 3141
    functionDepth: 0
    functionLinenumber: 3141
    functionLinenumberEnd: 3153
    functionName: handle_update_timeout_request
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - do_stonith_async_timeout_update
    - crm_element_value_int
    - crm_element_value
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_update_timeout_request(pcmk__request_t *request) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_agent_metadata
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:512,1
    - Dst: read_action_metadata
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:515,1
    - Dst: pcmk__mainloop_timer_get_period
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:522,1
    - Dst: mainloop_timer_set_period
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:524,1
    - Dst: stonith__default_host_arg
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:517,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 531
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 531
    functionName: get_agent_metadata_cb
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - get_agent_metadata
    - pcmk__mainloop_timer_get_period
    - read_action_metadata
    - stonith__default_host_arg
    - mainloop_timer_set_period
    linkageType: ''
    returnType: int
    signature: 'static int get_agent_metadata_cb(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmd_device
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:681,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:685,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 689
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 689
    functionName: start_delay_helper
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - cmd_device
    - mainloop_set_trigger
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean start_delay_helper(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1528,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1532,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1534,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1533,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1531,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1535,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 1536
      start: 1519
    functionDepth: 0
    functionLinenumber: 1519
    functionLinenumberEnd: 1536
    functionName: free_topology_entry
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - free
    - g_list_free_full
    linkageType: ''
    returnType: void
    signature: 'static void free_topology_entry(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - fn
    - user_data
    argTypes:
    - GHFunc
    - gpointer
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: fenced_foreach_device
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    linkageType: ''
    returnType: void
    signature: 'void fenced_foreach_device(GHFunc fn, gpointer user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unpack_level_kind
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1559,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1563,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1569,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1566,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1570,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1571,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1574,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1574,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 2
    argNames:
    - level
    - mode
    argTypes:
    - xmlNode*
    - enum fenced_target_by
    constantsTouched: []
    func_position:
      end: 1576
      start: 1555
    functionDepth: 0
    functionLinenumber: 1555
    functionLinenumberEnd: 1576
    functionName: stonith_level_key
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - crm_strdup_printf
    - unpack_level_kind
    - crm_element_value
    - crm_element_value_copy
    - pcmk__xe_id
    linkageType: ''
    returnType: char*
    signature: 'char *stonith_level_key(const xmlNode *level, enum fenced_target_by
      mode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2081,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - dev
    argTypes:
    - fenced_device_t*
    constantsTouched: []
    func_position:
      end: 2082
      start: 2078
    functionDepth: 0
    functionLinenumber: 2078
    functionLinenumberEnd: 2082
    functionName: can_use_target_cache
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - time
    linkageType: ''
    returnType: bool
    signature: 'static inline bool can_use_target_cache(const fenced_device_t *dev) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stonith_fence_history
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3370,1
    - Dst: fenced_construct_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3377,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3379,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3373,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 3381
      start: 3364
    functionDepth: 0
    functionLinenumber: 3364
    functionLinenumberEnd: 3381
    functionName: handle_history_request
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - stonith_fence_history
    - pcmk_is_set
    - pcmk__xml_free
    - fenced_construct_reply
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_history_request(pcmk__request_t *request) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2095,1
    - Dst: localhost_is_eligible_with_remap
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2116,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2111,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2134,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2145,1
    - Dst: get_action_timeout
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2167,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2176,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2190,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2128,1
    - Dst: can_use_target_cache
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2140,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2138,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2166,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2170,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2188,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2189,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2191,1
    - Dst: target_list_type
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2123,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2112,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2161,1
    - Dst: get_action_timeout
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2141,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2124,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2125,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2131,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2133,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2151,1
    - Dst: schedule_internal_command
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2154,1
    - Dst: schedule_internal_command
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2178,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2183,1
    - Dst: search_devices_record_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2193,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 75
    argCount: 2
    argNames:
    - dev
    - search
    argTypes:
    - fenced_device_t*
    - struct device_search_s*
    constantsTouched: []
    func_position:
      end: 2194
      start: 2084
    functionDepth: 0
    functionLinenumber: 2084
    functionLinenumberEnd: 2194
    functionName: can_fence_host_with_device
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__s
    - g_hash_table_lookup
    - can_use_target_cache
    - target_list_type
    - get_action_timeout
    - schedule_internal_command
    - pcmk__str_eq
    - crm_info
    - localhost_is_eligible_with_remap
    - search_devices_record_result
    - crm_notice
    - pcmk_is_set
    - crm_err
    - pcmk__str_in_list
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void can_fence_host_with_device(fenced_device_t *dev, struct
      device_search_s *search) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2367,1
    - Dst: do_local_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2371,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2377,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2374,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 4
    argNames:
    - reply
    - call_options
    - remote_peer
    - client
    argTypes:
    - xmlNode*
    - int
    - char*
    - pcmk__client_t*
    constantsTouched: []
    func_position:
      end: 2379
      start: 2363
    functionDepth: 0
    functionLinenumber: 2363
    functionLinenumberEnd: 2379
    functionName: stonith_send_reply
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__get_node
    - CRM_CHECK
    - do_local_reply
    - pcmk__cluster_send_message
    linkageType: ''
    returnType: void
    signature: 'static void stonith_send_reply(const xmlNode *reply, int call_options,
      const char *remote_peer, pcmk__client_t *client) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: create_remote_stonith_op
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3169,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3177,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3181,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3187,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3195,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3201,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3163,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3190,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3192,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3198,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3175,1
    - Dst: remove_relay_op
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3173,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3183,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3186,1
    - Dst: fenced_construct_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3194,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3197,1
    - Dst: get_capable_devices
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3202,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3203,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3196,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 3207
      start: 3156
    functionDepth: 0
    functionLinenumber: 3156
    functionLinenumberEnd: 3207
    functionName: handle_query_request
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - pcmk__assert_alloc
    - crm_element_value_int
    - pcmk__str_eq
    - get_capable_devices
    - crm_log_xml_trace
    - pcmk__str_copy
    - pcmk__xpath_find_one
    - pcmk_is_set
    - fenced_construct_reply
    - crm_element_value
    - create_remote_stonith_op
    - remove_relay_op
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_query_request(pcmk__request_t *request) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3274,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3311,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3336,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3344,1
    - Dst: set_bad_request_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3349,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3352,1
    - Dst: fenced_construct_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3360,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3270,1
    - Dst: fenced_handle_manual_confirmation
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3271,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3288,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3293,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3298,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3324,1
    - Dst: create_remote_stonith_op
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3334,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3337,1
    - Dst: initiate_remote_stonith_op
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3347,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3292,1
    - Dst: pcmk__request_origin
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3299,1
    - Dst: check_alternate_host
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3308,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3342,1
    - Dst: fence_locally
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3268,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3278,1
    - Dst: set_bad_request_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3282,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3291,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3303,1
    - Dst: stonith_check_fence_tolerance
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3302,1
    - Dst: fenced_construct_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3305,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3320,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3301,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3339,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 55
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 3361
      start: 3264
    functionDepth: 0
    functionLinenumber: 3264
    functionLinenumberEnd: 3361
    functionName: handle_fence_request
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - stonith_check_fence_tolerance
    - pcmk__get_node
    - crm_xml_add
    - fenced_handle_manual_confirmation
    - set_bad_request_result
    - create_remote_stonith_op
    - pcmk__cluster_send_message
    - crm_notice
    - pcmk_is_set
    - pcmk__xpath_find_one
    - fenced_construct_reply
    - initiate_remote_stonith_op
    - crm_element_value
    - pcmk__request_origin
    - fence_locally
    - check_alternate_host
    - crm_element_value_int
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_fence_request(pcmk__request_t *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 810
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 810
    functionName: fenced_init_device_table
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__strkey_table
    linkageType: ''
    returnType: void
    signature: 'void fenced_init_device_table(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1298,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1299,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1306,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1303,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1301,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1308,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1309,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - GHashTable*
    - GHashTable*
    constantsTouched: []
    func_position:
      end: 1316
      start: 1292
    functionDepth: 0
    functionLinenumber: 1292
    functionLinenumberEnd: 1316
    functionName: device_params_diff
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - strcmp
    - pcmk__str_eq
    - strstr
    - g_hash_table_iter_init
    - crm_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: int
    signature: 'static int device_params_diff(GHashTable *first, GHashTable *second) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unpack_level_request
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1789,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1800,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1807,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1813,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1820,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1829,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1819,1
    - Dst: count_active_levels
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1832,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1838,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1801,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1803,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1815,1
    - Dst: pcmk__plural_alt
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1817,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1833,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1835,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1799,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1803,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1807,1
    - Dst: set_bad_request_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1791,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1797,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1822,1
    - Dst: pcmk__plural_alt
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1824,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1811,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1839,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - msg
    - result
    argTypes:
    - xmlNode*
    - pcmk__action_result_t*
    constantsTouched: []
    func_position:
      end: 1840
      start: 1781
    functionDepth: 0
    functionLinenumber: 1781
    functionLinenumberEnd: 1840
    functionName: fenced_unregister_level
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__format_result
    - pcmk__set_result
    - pcmk__s
    - g_hash_table_lookup
    - pcmk__plural_s
    - pcmk__plural_alt
    - g_hash_table_remove
    - g_list_free_full
    - crm_log_xml_trace
    - set_bad_request_result
    - count_active_levels
    - free
    - unpack_level_request
    - crm_element_value
    - crm_warn
    - crm_info
    - pcmk__xe_id
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'void fenced_unregister_level(xmlNode *msg, pcmk__action_result_t *result) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2600,1
    - Dst: pcmk__find_client_by_id
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2605,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2607,1
    - Dst: construct_async_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2612,1
    - Dst: log_async_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2602,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2614,1
    - Dst: pcmk__is_fencing_action
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2617,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2618,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2622,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2624,1
    - Dst: stonith_send_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2629,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2633,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2626,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2625,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2632,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - cmd
    - result
    - pid
    - merged
    argTypes:
    - async_command_t*
    - pcmk__action_result_t*
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 2634
      start: 2593
    functionDepth: 0
    functionLinenumber: 2593
    functionLinenumberEnd: 2634
    functionName: send_async_reply
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__find_client_by_id
    - construct_async_reply
    - CRM_CHECK
    - stonith_send_reply
    - pcmk__is_fencing_action
    - crm_xml_add
    - pcmk__str_eq
    - pcmk__cluster_send_message
    - log_async_result
    - pcmk__xe_set_bool_attr
    - pcmk__xml_free
    - crm_log_xml_trace
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void send_async_reply(const async_command_t *cmd, const pcmk__action_result_t
      *result, int pid, bool merged) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_handlers
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3510
      start: 3489
    functionDepth: 0
    functionLinenumber: 3489
    functionLinenumberEnd: 3510
    functionName: fenced_register_handlers
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__register_handlers
    linkageType: ''
    returnType: void
    signature: 'static void fenced_register_handlers(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_length
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1845,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1860,1
    - Dst: strlen
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1846,1
    - Dst: strlen
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1857,1
    - Dst: sprintf
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1866,1
    - Dst: sprintf
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1871,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 3
    argNames:
    - list
    - delim
    - terminate_with_delim
    argTypes:
    - GList*
    - char*
    - gboolean
    constantsTouched: []
    func_position:
      end: 1875
      start: 1842
    functionDepth: 0
    functionLinenumber: 1842
    functionLinenumberEnd: 1875
    functionName: list_to_string
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - sprintf
    - strlen
    - pcmk__assert_alloc
    - g_list_length
    linkageType: ''
    returnType: char*
    signature: 'static char *list_to_string(GList *list, const char *delim, gboolean
      terminate_with_delim) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmd_device
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2639,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2642,1
    - Dst: g_list_remove
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2644,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - async_command_t*
    constantsTouched: []
    func_position:
      end: 2646
      start: 2636
    functionDepth: 0
    functionLinenumber: 2636
    functionLinenumberEnd: 2646
    functionName: cancel_stonith_command
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - g_list_remove
    - crm_trace
    - cmd_device
    linkageType: ''
    returnType: void
    signature: 'static void cancel_stonith_command(async_command_t * cmd) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3516,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3519
      start: 3512
    functionDepth: 0
    functionLinenumber: 3512
    functionLinenumberEnd: 3519
    functionName: fenced_unregister_handlers
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: 'void fenced_unregister_handlers(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2910,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2912,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2923,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2913,1
    - Dst: stonith__xe_set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2914,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2925,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2941,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2943,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2944,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2947,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2949,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 3
    argNames:
    - request
    - data
    - result
    argTypes:
    - xmlNode*
    - xmlNode*
    - pcmk__action_result_t*
    constantsTouched: []
    func_position:
      end: 2953
      start: 2904
    functionDepth: 0
    functionLinenumber: 2904
    functionLinenumberEnd: 2953
    functionName: fenced_construct_reply
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk_exec_status_str
    - pcmk__xml_copy
    - crm_xml_add
    - stonith__xe_set_result
    - PCMK__NELEM
    - crm_element_value
    - crm_warn
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *fenced_construct_reply(const xmlNode *request, xmlNode *data,
      const pcmk__action_result_t *result) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:367,1
    - Dst: g_list_remove
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:370,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:374,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:373,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:372,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:375,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:376,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:377,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:378,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:379,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:380,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:381,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - async_command_t*
    constantsTouched: []
    func_position:
      end: 382
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 382
    functionName: free_async_command
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - g_list_remove
    - free
    - g_list_free_full
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: 'static void free_async_command(async_command_t * cmd) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:454,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:456,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - device
    argTypes:
    - fenced_device_t*
    constantsTouched: []
    func_position:
      end: 461
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 461
    functionName: get_action_limit
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__scan_min_int
    - g_hash_table_lookup
    linkageType: ''
    returnType: int
    signature: 'static int get_action_limit(fenced_device_t *device) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:698,1
    - Dst: get_action_timeout
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:706,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:699,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:705,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:702,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:709,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:713,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:716,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:719,1
    - Dst: g_list_append
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:723,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:737,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:759,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:755,1
    - Dst: rand
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:746,1
    - Dst: get_action_delay_max
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:731,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:724,1
    - Dst: get_action_delay_base
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:732,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:751,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 2
    argNames:
    - cmd
    - device
    argTypes:
    - async_command_t*
    - fenced_device_t*
    constantsTouched: []
    func_position:
      end: 761
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 761
    functionName: schedule_stonith_command
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - crm_debug
    - CRM_CHECK
    - g_list_append
    - pcmk__s
    - get_action_timeout
    - rand
    - pcmk__str_copy
    - crm_notice
    - free
    - get_action_delay_max
    - pcmk__create_timer
    - crm_warn
    - get_action_delay_base
    - mainloop_set_trigger
    linkageType: ''
    returnType: void
    signature: 'static void schedule_stonith_command(async_command_t *cmd, fenced_device_t
      *device) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2403,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2394,1
    - Dst: add_disallowed
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2454,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2435,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2455,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2473,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2474,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2477,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2478,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2492,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2493,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2406,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2418,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2421,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2433,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2432,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2481,1
    - Dst: stonith_send_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2483,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2487,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2491,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2490,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2402,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2420,1
    - Dst: add_action_specific_attributes
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2441,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2442,1
    - Dst: add_action_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2457,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2458,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2465,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2471,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2488,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2489,1
    - Dst: pcmk__find_client_by_id
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2392,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2401,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2419,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2427,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2424,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2425,1
    - Dst: add_action_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2460,1
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2467,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 2
    argNames:
    - devices
    - user_data
    argTypes:
    - GList*
    - void*
    constantsTouched: []
    func_position:
      end: 2494
      start: 2381
    functionDepth: 0
    functionLinenumber: 2381
    functionLinenumberEnd: 2494
    functionName: stonith_query_capable_device_cb
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    - g_list_free_full
    - free
    - crm_log_xml_trace
    - pcmk__xe_create
    - g_hash_table_lookup
    - pcmk_is_set
    - add_disallowed
    - add_action_specific_attributes
    - stonith_send_reply
    - pcmk__str_eq
    - crm_xml_add_int
    - add_action_reply
    - pcmk__find_client_by_id
    - crm_trace
    - crm_debug
    - pcmk__plural_s
    - crm_xml_add
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void stonith_query_capable_device_cb(GList * devices, void
      *user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:470,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - device
    argTypes:
    - fenced_device_t*
    constantsTouched: []
    func_position:
      end: 483
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 483
    functionName: get_active_cmds
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    linkageType: ''
    returnType: int
    signature: 'static int get_active_cmds(fenced_device_t *device) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:769,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:770,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:775,1
    - Dst: g_list_free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:779,1
    - Dst: report_internal_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:776,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:781,1
    - Dst: mainloop_timer_stop
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:784,1
    - Dst: mainloop_timer_del
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:785,1
    - Dst: mainloop_destroy_trigger
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:788,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:790,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:791,1
    - Dst: g_string_free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:793,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:795,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:796,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:797,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 798
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 798
    functionName: free_device
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - mainloop_timer_stop
    - g_list_free
    - g_hash_table_destroy
    - g_list_free_full
    - g_string_free
    - pcmk__xml_free
    - free
    - mainloop_destroy_trigger
    - crm_warn
    - mainloop_timer_del
    - report_internal_result
    linkageType: ''
    returnType: void
    signature: 'static void free_device(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:820,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 823
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 823
    functionName: fenced_free_device_table
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: 'void fenced_free_device_table(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1325,1
    - Dst: device_params_diff
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1337,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1332,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1328,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1331,1
    - Dst: device_params_diff
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1338,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1342,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - device
    argTypes:
    - fenced_device_t*
    constantsTouched: []
    func_position:
      end: 1344
      start: 1322
    functionDepth: 0
    functionLinenumber: 1322
    functionLinenumberEnd: 1344
    functionName: device_has_duplicate
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - device_params_diff
    - pcmk__str_eq
    - crm_trace
    - g_hash_table_lookup
    linkageType: ''
    returnType: fenced_device_t*
    signature: 'static fenced_device_t *device_has_duplicate(const fenced_device_t
      *device) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3106,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3110,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3109,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - c
    - op
    argTypes:
    - pcmk__client_t*
    - char*
    constantsTouched: []
    func_position:
      end: 3113
      start: 3103
    functionDepth: 0
    functionLinenumber: 3103
    functionLinenumberEnd: 3113
    functionName: is_privileged
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - crm_warn
    - pcmk_is_set
    - pcmk__s
    - pcmk__client_name
    linkageType: ''
    returnType: bool
    signature: 'static inline bool is_privileged(const pcmk__client_t *c, const char
      *op) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:280,1
    - Dst: snprintf
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:288,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:281,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:282,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:289,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:291,1
    - Dst: QB_MIN
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:292,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:292,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 3
    argNames:
    - device
    - action
    - default_timeout
    argTypes:
    - fenced_device_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 296
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 296
    functionName: get_action_timeout
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - crm_get_msec
    - pcmk__timeout_ms2s
    - g_hash_table_lookup
    - pcmk__str_eq
    - pcmk_is_set
    - QB_MIN
    - snprintf
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int get_action_timeout(const fenced_device_t *device, const
      char *action, int default_timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:548,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - cmd
    - exit_status
    - execution_status
    - exit_reason
    argTypes:
    - async_command_t*
    - int
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 551
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 551
    functionName: report_internal_result
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - pcmk__reset_result
    linkageType: ''
    returnType: void
    signature: 'static void report_internal_result(async_command_t *cmd, int exit_status,
      int execution_status, const char *exit_reason) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3387,1
    - Dst: fenced_device_register
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3392,1
    - Dst: is_privileged
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3391,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3388,1
    - Dst: pcmk_rc2legacy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3394,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3395,1
    - Dst: stonith__legacy2status
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3397,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3398,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3400,1
    - Dst: fenced_send_config_notification
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3404,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3405,1
    - Dst: fenced_construct_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 3407
      start: 3384
    functionDepth: 0
    functionLinenumber: 3384
    functionLinenumberEnd: 3407
    functionName: handle_device_add_request
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - stonith__legacy2status
    - fenced_send_config_notification
    - fenced_device_register
    - is_privileged
    - pcmk_rc2legacy
    - pcmk__xpath_find_one
    - fenced_construct_reply
    - crm_element_value
    - pcmk_strerror
    - pcmk__xe_id
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_device_add_request(pcmk__request_t *request) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:627,1
    - Dst: stonith__execute_async
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:653,1
    - Dst: stonith__action_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:657,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:642,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:582,1
    - Dst: g_list_remove_link
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:591,1
    - Dst: g_list_free_1
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:592,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:599,1
    - Dst: report_internal_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:612,1
    - Dst: pcmk__substitute_secrets
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:618,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:620,1
    - Dst: pcmk__panic
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:607,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:603,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:623,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:636,1
    - Dst: stonith__action_create
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:646,1
    - Dst: fenced_get_local_node
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:606,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:637,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:639,1
    - Dst: report_internal_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:628,1
    - Dst: stonith__destroy_action
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:658,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:565,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:572,1
    - Dst: get_action_limit
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:568,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:570,1
    - Dst: get_active_cmds
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:567,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:586,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:611,1
    - Dst: node_does_watchdog_fencing
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:606,1
    - Dst: pcmk__is_fencing_action
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:605,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:621,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:625,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:666,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 76
    argCount: 1
    argNames:
    - device
    argTypes:
    - fenced_device_t*
    constantsTouched: []
    func_position:
      end: 669
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 669
    functionName: stonith_device_execute
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - crm_notice
    - g_list_free_1
    - pcmk__panic
    - g_list_remove_link
    - pcmk__s
    - stonith__action_create
    - pcmk_is_set
    - stonith__destroy_action
    - pcmk_rc_str
    - node_does_watchdog_fencing
    - crm_err
    - report_internal_result
    - get_active_cmds
    - CRM_CHECK
    - pcmk__is_fencing_action
    - pcmk__str_eq
    - stonith__execute_async
    - crm_info
    - pcmk__str_any_of
    - crm_trace
    - stonith__action_result
    - mainloop_set_trigger
    - pcmk__plural_s
    - get_action_limit
    - fenced_get_local_node
    - pcmk__substitute_secrets
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean stonith_device_execute(fenced_device_t *device) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3035,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3050,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3048,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3049,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3045,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3054,1
    - Dst: fenced_get_local_node
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3054,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3055,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3060,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3063,1
    - Dst: g_list_remove
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3069,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3075,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3079,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3084,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3081,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 40
    argCount: 1
    argNames:
    - request
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3087
      start: 3032
    functionDepth: 0
    functionLinenumber: 3032
    functionLinenumberEnd: 3087
    functionName: remove_relay_op
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__s
    - g_hash_table_lookup
    - g_hash_table_remove
    - pcmk__str_eq
    - pcmk__xpath_find_one
    - fenced_get_local_node
    - crm_element_value
    - g_list_remove
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void remove_relay_op(xmlNode * request) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2842,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2844,1
    - Dst: create_async_command
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2847,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2849,1
    - Dst: set_bad_request_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2850,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2854,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2856,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2858,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2859,1
    - Dst: schedule_stonith_command
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2863,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2866,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2872,1
    - Dst: pcmk__search_node_caches
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2873,1
    - Dst: get_capable_devices
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2882,1
    - Dst: fenced_support_flag
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2884,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2868,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2887,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 2
    argNames:
    - msg
    - result
    argTypes:
    - xmlNode*
    - pcmk__action_result_t*
    constantsTouched: []
    func_position:
      end: 2888
      start: 2834
    functionDepth: 0
    functionLinenumber: 2834
    functionLinenumberEnd: 2888
    functionName: fence_locally
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__format_result
    - pcmk__set_result
    - fenced_support_flag
    - create_async_command
    - CRM_CHECK
    - g_hash_table_lookup
    - pcmk__search_node_caches
    - get_capable_devices
    - set_bad_request_result
    - crm_log_xml_warn
    - pcmk__xpath_find_one
    - pcmk_is_set
    - crm_element_value
    - schedule_stonith_command
    - pcmk__scan_min_int
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void fence_locally(xmlNode *msg, pcmk__action_result_t *result) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_foreach_remove
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - fn
    argTypes:
    - GHRFunc
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: fenced_foreach_device_remove
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach_remove
    linkageType: ''
    returnType: void
    signature: 'void fenced_foreach_device_remove(GHRFunc fn) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:350,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - device_id
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 357
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 357
    functionName: fenced_device_supports_on
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - g_hash_table_lookup
    linkageType: ''
    returnType: bool
    signature: 'bool fenced_device_supports_on(const char *device_id) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:910,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 913
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 913
    functionName: free_metadata_cache
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: 'void free_metadata_cache(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:180,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - action
    - device
    argTypes:
    - char*
    - fenced_device_t*
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: is_action_required
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk__str_eq
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean is_action_required(const char *action, const fenced_device_t
      *device) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:918,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 920
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 920
    functionName: init_metadata_cache
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__strkey_table
    linkageType: ''
    returnType: void
    signature: 'static void init_metadata_cache(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:312,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - async_command_t*
    constantsTouched: []
    func_position:
      end: 313
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 313
    functionName: cmd_device
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    linkageType: ''
    returnType: fenced_device_t*
    signature: 'static fenced_device_t *cmd_device(const async_command_t *cmd) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:329,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:335,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:332,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 1
    argNames:
    - device_id
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 336
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 336
    functionName: fenced_device_reboot_action
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__s
    - g_hash_table_lookup
    linkageType: ''
    returnType: char*
    signature: 'const char *fenced_device_reboot_action(const char *device_id) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3413,1
    - Dst: stonith_device_remove
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3419,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3416,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3415,1
    - Dst: is_privileged
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3418,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3420,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3422,1
    - Dst: fenced_send_config_notification
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3426,1
    - Dst: fenced_construct_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3427,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 3428
      start: 3410
    functionDepth: 0
    functionLinenumber: 3410
    functionLinenumberEnd: 3428
    functionName: handle_device_delete_request
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - fenced_send_config_notification
    - is_privileged
    - pcmk__xpath_find_one
    - stonith_device_remove
    - fenced_construct_reply
    - crm_element_value
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_device_delete_request(pcmk__request_t *request) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1132,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1140,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1139,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1138,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1137,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1141,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1142,1
    - Dst: schedule_stonith_command
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1147,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 7
    argNames:
    - origin
    - device
    - action
    - target
    - timeout
    - internal_user_data
    - (*done_cb)
    argTypes:
    - char*
    - fenced_device_t*
    - char*
    - char*
    - int
    - void*
    - void
    constantsTouched: []
    func_position:
      end: 1148
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1148
    functionName: schedule_internal_command
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - schedule_stonith_command
    - pcmk__str_copy
    - pcmk__assert_alloc
    linkageType: ''
    returnType: void
    signature: 'static void schedule_internal_command(const char *origin, fenced_device_t
      *device, const char *action, const char *target, int timeout, void *internal_user_data,
      void (*done_cb) (int pid, const pcmk__action_result_t *result, void *user_data)) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_timespec_from_epoch_get
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2997,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - remote_fencing_op_t*
    constantsTouched: []
    func_position:
      end: 3000
      start: 2992
    functionDepth: 0
    functionLinenumber: 2992
    functionLinenumberEnd: 3000
    functionName: set_fencing_completed
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - qb_util_timespec_from_epoch_get
    linkageType: ''
    returnType: void
    signature: 'void set_fencing_completed(remote_fencing_op_t *op) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2747,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2756,1
    - Dst: cmd_device
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2749,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2755,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2754,1
    - Dst: fenced_device_set_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2760,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2763,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2766,1
    - Dst: next_required_device
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2767,1
    - Dst: is_action_required
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2770,1
    - Dst: log_async_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2786,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2773,1
    - Dst: send_async_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2779,1
    - Dst: free_async_command
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2783,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2780,1
    - Dst: schedule_stonith_command
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2787,1
    - Dst: reply_to_duplicates
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2781,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - pid
    - result
    - user_data
    argTypes:
    - int
    - pcmk__action_result_t*
    - void*
    constantsTouched: []
    func_position:
      end: 2789
      start: 2739
    functionDepth: 0
    functionLinenumber: 2739
    functionLinenumberEnd: 2789
    functionName: st_child_done
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__result_ok
    - fenced_device_set_flags
    - g_hash_table_lookup
    - pcmk__strcase_any_of
    - log_async_result
    - reply_to_duplicates
    - pcmk_is_set
    - cmd_device
    - next_required_device
    - send_async_reply
    - schedule_stonith_command
    - free_async_command
    - is_action_required
    - mainloop_set_trigger
    linkageType: ''
    returnType: void
    signature: 'static void st_child_done(int pid, const pcmk__action_result_t *result,
      void *user_data) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1895,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1921,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1936,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1942,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1943,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1900,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1897,1
    - Dst: set_bad_request_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1909,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1954,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1906,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1901,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1913,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1916,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1929,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1934,1
    - Dst: list_to_string
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1923,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1938,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1945,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1947,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1920,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1928,1
    - Dst: pcmk__set_result_output
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1922,1
    - Dst: create_async_command
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1952,1
    - Dst: set_bad_request_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1955,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1960,1
    - Dst: schedule_stonith_command
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1959,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 2
    argNames:
    - msg
    - result
    argTypes:
    - xmlNode*
    - pcmk__action_result_t*
    constantsTouched: []
    func_position:
      end: 1961
      start: 1892
    functionDepth: 0
    functionLinenumber: 1892
    functionLinenumberEnd: 1961
    functionName: execute_agent_action
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__format_result
    - pcmk__set_result
    - pcmk__set_result_output
    - create_async_command
    - g_hash_table_lookup
    - pcmk__str_eq
    - strcmp
    - set_bad_request_result
    - crm_log_xml_warn
    - pcmk__xpath_find_one
    - pcmk_is_set
    - list_to_string
    - crm_element_value
    - schedule_stonith_command
    - crm_info
    linkageType: ''
    returnType: void
    signature: 'static void execute_agent_action(xmlNode *msg, pcmk__action_result_t
      *result) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: execute_agent_action
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3133,1
    - Dst: fenced_construct_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 3138
      start: 3130
    functionDepth: 0
    functionLinenumber: 3130
    functionLinenumberEnd: 3138
    functionName: handle_agent_request
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - fenced_construct_reply
    - execute_agent_action
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_agent_request(pcmk__request_t *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3434,1
    - Dst: unpack_level_request
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3439,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3440,1
    - Dst: is_privileged
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3436,1
    - Dst: fenced_register_level
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3437,1
    - Dst: fenced_construct_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3444,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 3445
      start: 3431
    functionDepth: 0
    functionLinenumber: 3431
    functionLinenumberEnd: 3445
    functionName: handle_level_add_request
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - is_privileged
    - fenced_register_level
    - unpack_level_request
    - fenced_construct_reply
    - crm_element_value
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_level_add_request(pcmk__request_t *request) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3471,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3472,1
    - Dst: pcmk__cluster_forget_cluster_node
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3473,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3474,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 3476
      start: 3465
    functionDepth: 0
    functionLinenumber: 3465
    functionLinenumberEnd: 3476
    functionName: handle_cache_request
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - pcmk__cluster_forget_cluster_node
    - crm_element_value_int
    - crm_element_value
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_cache_request(pcmk__request_t *request) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1969,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1970,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1975,1
    - Dst: g_list_append
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1974,1
    - Dst: g_list_length
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1980,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1982,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1983,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1988,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1989,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1990,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 3
    argNames:
    - search
    - device
    - can_fence
    argTypes:
    - struct device_search_s*
    - char*
    - gboolean
    constantsTouched: []
    func_position:
      end: 1992
      start: 1963
    functionDepth: 0
    functionLinenumber: 1963
    functionLinenumberEnd: 1992
    functionName: search_devices_record_result
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - crm_debug
    - g_list_append
    - g_hash_table_lookup
    - pcmk__plural_s
    - g_list_length
    - pcmk__str_copy
    - pcmk_is_set
    - free
    linkageType: ''
    returnType: void
    signature: 'static void search_devices_record_result(struct device_search_s *search,
      const char *device, gboolean can_fence) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_list_length
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2796,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2802,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2798,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2799,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2808,1
    - Dst: send_async_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2811,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2812,1
    - Dst: free_async_command
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2813,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2814,1
    - Dst: schedule_stonith_command
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2823,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - devices
    - user_data
    argTypes:
    - GList*
    - void*
    constantsTouched: []
    func_position:
      end: 2825
      start: 2791
    functionDepth: 0
    functionLinenumber: 2791
    functionLinenumberEnd: 2825
    functionName: stonith_fence_get_devices_cb
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__format_result
    - g_hash_table_lookup
    - pcmk__plural_s
    - g_list_length
    - g_list_free_full
    - send_async_reply
    - pcmk__reset_result
    - schedule_stonith_command
    - crm_info
    - free_async_command
    linkageType: ''
    returnType: void
    signature: 'static void stonith_fence_get_devices_cb(GList * devices, void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3481,1
    - Dst: pcmk__request_origin
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3483,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3484,1
    - Dst: pcmk__request_origin_type
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3482,1
    - Dst: fenced_construct_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 3487
      start: 3478
    functionDepth: 0
    functionLinenumber: 3478
    functionLinenumberEnd: 3487
    functionName: handle_unknown_request
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__format_result
    - fenced_construct_reply
    - pcmk__request_origin
    - pcmk__request_origin_type
    - crm_err
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_unknown_request(pcmk__request_t *request) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - pcmk__action_result_t*
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: set_bad_request_result
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    linkageType: ''
    returnType: void
    signature: 'static inline void set_bad_request_result(pcmk__action_result_t *result) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: localhost_is_eligible
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2048,1
    - Dst: localhost_is_eligible
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2060,1
    - Dst: localhost_is_eligible
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2061,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2054,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 4
    argNames:
    - device
    - action
    - target
    - allow_self
    argTypes:
    - fenced_device_t*
    - char*
    - char*
    - gboolean
    constantsTouched: []
    func_position:
      end: 2067
      start: 2042
    functionDepth: 0
    functionLinenumber: 2042
    functionLinenumberEnd: 2067
    functionName: localhost_is_eligible_with_remap
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - localhost_is_eligible
    - pcmk__str_eq
    linkageType: ''
    returnType: bool
    signature: 'static bool localhost_is_eligible_with_remap(const fenced_device_t
      *device, const char *action, const char *target, gboolean allow_self) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: localhost_is_eligible
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2325,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2328,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 5
    argNames:
    - xml
    - action
    - device
    - target
    - allow_self
    argTypes:
    - xmlNode*
    - char*
    - fenced_device_t*
    - char*
    - gboolean
    constantsTouched: []
    func_position:
      end: 2330
      start: 2321
    functionDepth: 0
    functionLinenumber: 2321
    functionLinenumberEnd: 2330
    functionName: add_disallowed
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__xe_set_bool_attr
    - localhost_is_eligible
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void add_disallowed(xmlNode *xml, const char *action, const
      fenced_device_t *device, const char *target, gboolean allow_self) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3119,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3124,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3121,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3123,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3122,1
    - Dst: pcmk__set_request_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 3127
      start: 3116
    functionDepth: 0
    functionLinenumber: 3116
    functionLinenumberEnd: 3127
    functionName: handle_register_request
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__set_result
    - crm_xml_add
    - pcmk__set_request_flags
    - pcmk__assert
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_register_request(pcmk__request_t *request) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1367,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1388,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1376,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1383,1
    - Dst: node_does_watchdog_fencing
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1393,1
    - Dst: device_has_duplicate
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1408,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1412,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1413,1
    - Dst: fenced_device_set_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1431,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1437,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1358,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1362,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1375,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1394,1
    - Dst: stonith_device_remove
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1397,1
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1404,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1410,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1429,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1439,1
    - Dst: free_device
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1452,1
    - Dst: fenced_device_set_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1445,1
    - Dst: fenced_get_local_node
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1349,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1354,1
    - Dst: build_device_from_xml
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1351,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1371,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1402,1
    - Dst: free_device
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1414,1
    - Dst: fenced_device_clear_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1416,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1420,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1423,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1434,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1440,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1357,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1369,1
    - Dst: stonith__parse_targets
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1403,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1378,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1441,1
    - Dst: fenced_device_set_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1447,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 2
    argNames:
    - dev
    - from_cib
    argTypes:
    - xmlNode*
    - bool
    constantsTouched: []
    func_position:
      end: 1455
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1455
    functionName: fenced_device_register
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - g_list_free_full
    - crm_notice
    - g_hash_table_replace
    - pcmk__s
    - g_hash_table_lookup
    - stonith__parse_targets
    - pcmk_is_set
    - device_has_duplicate
    - node_does_watchdog_fencing
    - crm_err
    - free_device
    - CRM_CHECK
    - fenced_device_set_flags
    - build_device_from_xml
    - pcmk__str_eq
    - stonith_device_remove
    - pcmk__str_any_of
    - crm_info
    - g_hash_table_size
    - crm_debug
    - mainloop_set_trigger
    - fenced_device_clear_flags
    - pcmk__insert_dup
    - pcmk__plural_s
    - fenced_get_local_node
    linkageType: ''
    returnType: int
    signature: 'int fenced_device_register(const xmlNode *dev, bool from_cib) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: can_fence_host_with_device
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 2203
      start: 2196
    functionDepth: 0
    functionLinenumber: 2196
    functionLinenumberEnd: 2203
    functionName: search_devices
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - can_fence_host_with_device
    linkageType: ''
    returnType: void
    signature: 'static void search_devices(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2966,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2969,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2971,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2970,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2968,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2972,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2973,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2974,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2975,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2976,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2978,1
    - Dst: stonith__xe_set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2981,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2977,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2979,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - cmd
    - result
    argTypes:
    - async_command_t*
    - pcmk__action_result_t*
    constantsTouched: []
    func_position:
      end: 2983
      start: 2962
    functionDepth: 0
    functionLinenumber: 2962
    functionLinenumberEnd: 2983
    functionName: construct_async_reply
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - stonith__xe_set_result
    - crm_xml_add_int
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *construct_async_reply(const async_command_t *cmd,
      const pcmk__action_result_t *result) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3215,1
    - Dst: pcmk__set_client_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3220,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3218,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3216,1
    - Dst: pcmk__request_origin
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3219,1
    - Dst: fenced_parse_notify_flag
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3221,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3224,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3226,1
    - Dst: pcmk__request_origin
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3227,1
    - Dst: pcmk__clear_client_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3228,1
    - Dst: pcmk__ipc_create_ack
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3235,1
    - Dst: pcmk__set_request_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3233,1
    - Dst: fenced_parse_notify_flag
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3229,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3232,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 3237
      start: 3210
    functionDepth: 0
    functionLinenumber: 3210
    functionLinenumberEnd: 3237
    functionName: handle_notify_request
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__set_result
    - pcmk__set_client_flags
    - crm_element_value
    - fenced_parse_notify_flag
    - pcmk__clear_client_flags
    - pcmk__set_request_flags
    - pcmk__request_origin
    - pcmk__assert
    - pcmk__ipc_create_ack
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_notify_request(pcmk__request_t *request) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1460,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1466,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1465,1
    - Dst: fenced_device_clear_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1471,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1464,1
    - Dst: fenced_device_clear_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1473,1
    - Dst: pcmk_any_flags_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1477,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1480,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1481,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1482,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1483,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1489,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1491,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1486,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - id
    - from_cib
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 1494
      start: 1457
    functionDepth: 0
    functionLinenumber: 1457
    functionLinenumberEnd: 1494
    functionName: stonith_device_remove
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk_any_flags_set
    - fenced_device_clear_flags
    - g_hash_table_lookup
    - pcmk__plural_s
    - g_hash_table_remove
    - pcmk_is_set
    - crm_info
    - crm_trace
    - g_hash_table_size
    linkageType: ''
    returnType: void
    signature: 'void stonith_device_remove(const char *id, bool from_cib) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2989,1
    - Dst: crm_get_cluster_proc
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2989,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - peer
    argTypes:
    - pcmk__node_status_t*
    constantsTouched: []
    func_position:
      end: 2990
      start: 2985
    functionDepth: 0
    functionLinenumber: 2985
    functionLinenumberEnd: 2990
    functionName: fencing_peer_active
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - crm_get_cluster_proc
    linkageType: ''
    returnType: bool
    signature: 'bool fencing_peer_active(pcmk__node_status_t *peer) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3014,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3018,1
    - Dst: fenced_get_local_node
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3014,1
    - Dst: fencing_peer_active
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3020,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3019,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3021,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3022,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3027,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - target
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3030
      start: 3011
    functionDepth: 0
    functionLinenumber: 3011
    functionLinenumberEnd: 3030
    functionName: check_alternate_host
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - crm_notice
    - fenced_get_local_node
    - crm_warn
    - fencing_peer_active
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: char*
    signature: 'static const char *check_alternate_host(const char *target) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3451,1
    - Dst: unpack_level_request
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3456,1
    - Dst: is_privileged
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3453,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3457,1
    - Dst: fenced_unregister_level
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3454,1
    - Dst: fenced_construct_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3461,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 3462
      start: 3448
    functionDepth: 0
    functionLinenumber: 3448
    functionLinenumberEnd: 3462
    functionName: handle_level_delete_request
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - fenced_unregister_level
    - is_privileged
    - unpack_level_request
    - fenced_construct_reply
    - crm_element_value
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_level_delete_request(pcmk__request_t *request) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cmd_device
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1163,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1173,1
    - Dst: free_async_command
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1166,1
    - Dst: search_devices_record_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1169,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1176,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1179,1
    - Dst: search_devices_record_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1183,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1189,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1194,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1199,1
    - Dst: search_devices_record_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1204,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 21
    argCount: 3
    argNames:
    - pid
    - result
    - user_data
    argTypes:
    - int
    - pcmk__action_result_t*
    - void*
    constantsTouched: []
    func_position:
      end: 1205
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1205
    functionName: status_search_cb
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk_exec_status_str
    - search_devices_record_result
    - cmd_device
    - crm_warn
    - free_async_command
    - crm_trace
    - mainloop_set_trigger
    linkageType: ''
    returnType: void
    signature: 'static void status_search_cb(int pid, const pcmk__action_result_t
      *result, void *user_data) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__insert_dup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1270,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1259,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1269,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1242,1
    - Dst: cmd_device
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1213,1
    - Dst: stonith__parse_targets
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1233,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1238,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1228,1
    - Dst: search_devices_record_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1224,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1232,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1252,1
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1281,1
    - Dst: search_devices_record_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1285,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1230,1
    - Dst: free_async_command
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1216,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1231,1
    - Dst: time
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1234,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1256,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1244,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1276,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1268,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 3
    argNames:
    - pid
    - result
    - user_data
    argTypes:
    - int
    - pcmk__action_result_t*
    - void*
    constantsTouched: []
    func_position:
      end: 1286
      start: 1207
    functionDepth: 0
    functionLinenumber: 1207
    functionLinenumberEnd: 1286
    functionName: dynamic_list_search_cb
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk_exec_status_str
    - pcmk__result_ok
    - g_hash_table_lookup
    - pcmk__str_in_list
    - pcmk__insert_dup
    - g_list_free_full
    - time
    - search_devices_record_result
    - stonith__parse_targets
    - crm_notice
    - cmd_device
    - crm_warn
    - crm_info
    - free_async_command
    - mainloop_set_trigger
    linkageType: ''
    returnType: void
    signature: 'static void dynamic_list_search_cb(int pid, const pcmk__action_result_t
      *result, void *user_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:406,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:412,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:416,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:417,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:415,1
    - Dst: free_async_command
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:419,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:423,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:424,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:425,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:428,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:431,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:436,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:431,1
    - Dst: g_list_append
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:443,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:434,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:437,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:438,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:435,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 446
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 446
    functionName: create_async_command
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - g_list_append
    - pcmk__assert_alloc
    - pcmk__xe_get_flags
    - pcmk__xpath_find_one
    - pcmk_rc_str
    - crm_warn
    - crm_element_value_copy
    - free_async_command
    - crm_element_value_int
    linkageType: ''
    returnType: async_command_t*
    signature: 'static async_command_t *create_async_command(xmlNode *msg) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2521,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2544,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2549,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2557,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2529,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2518,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2536,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2541,1
    - Dst: g_string_free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2573,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2567,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2551,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2577,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2515,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2538,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2563,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2565,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2560,1
    - Dst: g_list_length
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2513,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2572,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2552,1
    - Dst: crm_log_output
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2579,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2580,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 5
    argNames:
    - cmd
    - result
    - pid
    - next
    - op_merged
    argTypes:
    - async_command_t*
    - pcmk__action_result_t*
    - int
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 2582
      start: 2506
    functionDepth: 0
    functionLinenumber: 2506
    functionLinenumberEnd: 2582
    functionName: log_async_result
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk_exec_status_str
    - pcmk__result_ok
    - crm_strdup_printf
    - g_string_append_printf
    - pcmk__plural_s
    - g_list_length
    - pcmk__str_eq
    - do_crm_log
    - g_string_sized_new
    - crm_log_output
    - free
    - g_string_free
    - pcmk__g_strcat
    linkageType: ''
    returnType: void
    signature: 'static void log_async_result(const async_command_t *cmd, const pcmk__action_result_t
      *result, int pid, const char *next, bool op_merged) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2009,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2018,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2014,1
    - Dst: fenced_get_local_node
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2009,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2024,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 4
    argNames:
    - device
    - action
    - target
    - allow_self
    argTypes:
    - fenced_device_t*
    - char*
    - char*
    - gboolean
    constantsTouched: []
    func_position:
      end: 2028
      start: 2005
    functionDepth: 0
    functionLinenumber: 2005
    functionLinenumberEnd: 2028
    functionName: localhost_is_eligible
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - crm_trace
    - strstr
    - pcmk__str_eq
    - fenced_get_local_node
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean localhost_is_eligible(const fenced_device_t *device,
      const char *action, const char *target, gboolean allow_self) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2269,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2274,1
    - Dst: is_action_required
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2272,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2273,1
    - Dst: get_action_timeout
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2278,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2280,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2282,1
    - Dst: get_action_delay_max
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2286,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2288,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2290,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2295,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2299,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2302,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2305,1
    - Dst: get_action_delay_base
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2293,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 4
    argNames:
    - xml
    - action
    - device
    - target
    argTypes:
    - xmlNode*
    - char*
    - fenced_device_t*
    - char*
    constantsTouched: []
    func_position:
      end: 2309
      start: 2260
    functionDepth: 0
    functionLinenumber: 2260
    functionLinenumberEnd: 2309
    functionName: add_action_specific_attributes
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - get_action_timeout
    - crm_xml_add_int
    - get_action_delay_max
    - is_action_required
    - crm_trace
    - get_action_delay_base
    linkageType: ''
    returnType: void
    signature: 'static void add_action_specific_attributes(xmlNode *xml, const char
      *action, const fenced_device_t *device, const char *target) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2725,1
    - Dst: is_action_required
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2728,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - async_command_t*
    constantsTouched: []
    func_position:
      end: 2737
      start: 2721
    functionDepth: 0
    functionLinenumber: 2721
    functionLinenumberEnd: 2737
    functionName: next_required_device
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - is_action_required
    - g_hash_table_lookup
    linkageType: ''
    returnType: fenced_device_t*
    signature: 'static fenced_device_t *next_required_device(async_command_t *cmd) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fenced_register_handlers
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3528,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3532,1
    - Dst: pcmk__process_request
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3530,1
    - Dst: pcmk__ipc_send_xml
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3538,1
    - Dst: stonith_send_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3542,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3545,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3549,1
    - Dst: pcmk__request_origin_type
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3550,1
    - Dst: pcmk__request_origin
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3551,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3552,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 3556
      start: 3521
    functionDepth: 0
    functionLinenumber: 3521
    functionLinenumberEnd: 3556
    functionName: handle_request
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__process_request
    - pcmk_exec_status_str
    - stonith_send_reply
    - fenced_register_handlers
    - pcmk_is_set
    - pcmk__xml_free
    - pcmk__ipc_send_xml
    - pcmk__request_origin
    - pcmk__request_origin_type
    linkageType: ''
    returnType: void
    signature: 'static void handle_request(pcmk__request_t *request) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3603,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3613,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3613,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3610,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3605,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3616,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3617,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3618,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3621,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3623,1
    - Dst: handle_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3628,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3624,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3640,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3641,1
    - Dst: pcmk__set_request_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3644,1
    - Dst: handle_request
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3647,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3643,1
    - Dst: pcmk__reset_request
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3648,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 5
    argNames:
    - client
    - id
    - flags
    - message
    - remote_peer
    argTypes:
    - pcmk__client_t*
    - uint32_t
    - uint32_t
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 3650
      start: 3595
    functionDepth: 0
    functionLinenumber: 3595
    functionLinenumberEnd: 3650
    functionName: stonith_command
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - crm_debug
    - CRM_CHECK
    - crm_element_value
    - pcmk__reset_request
    - pcmk__xe_get_flags
    - pcmk__set_request_flags
    - pcmk__xpath_find_one
    - pcmk_is_set
    - handle_reply
    - handle_request
    - pcmk_rc_str
    - pcmk__assert
    - crm_warn
    - crm_element_value_copy
    - pcmk__client_name
    linkageType: ''
    returnType: void
    signature: 'void stonith_command(pcmk__client_t *client, uint32_t id, uint32_t
      flags, xmlNode *message, const char *remote_peer) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3562,1
    - Dst: process_remote_stonith_query
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3565,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3564,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3567,1
    - Dst: fenced_process_fencing_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3569,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3572,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3573,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3574,1
    - Dst: crm_log_xml_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3575,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3576,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3582,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3579,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3581,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - client
    - request
    - remote_peer
    argTypes:
    - pcmk__client_t*
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 3583
      start: 3558
    functionDepth: 0
    functionLinenumber: 3558
    functionLinenumberEnd: 3583
    functionName: handle_reply
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - process_remote_stonith_query
    - crm_debug
    - pcmk__s
    - pcmk__str_eq
    - crm_log_xml_warn
    - free
    - fenced_process_fencing_reply
    - crm_element_value_copy
    - pcmk__str_any_of
    - crm_err
    - pcmk__client_name
    linkageType: ''
    returnType: void
    signature: 'static void handle_reply(pcmk__client_t *client, xmlNode *request,
      const char *remote_peer) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2688,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2691,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2690,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2689,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2696,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2700,1
    - Dst: g_list_remove_link
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2704,1
    - Dst: send_async_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2705,1
    - Dst: cancel_stonith_command
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2706,1
    - Dst: free_async_command
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2708,1
    - Dst: g_list_free_1
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:2709,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - cmd
    - result
    - pid
    argTypes:
    - async_command_t*
    - pcmk__action_result_t*
    - int
    constantsTouched: []
    func_position:
      end: 2711
      start: 2667
    functionDepth: 0
    functionLinenumber: 2667
    functionLinenumberEnd: 2711
    functionName: reply_to_duplicates
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - g_list_remove_link
    - pcmk__s
    - pcmk__str_eq
    - cancel_stonith_command
    - crm_notice
    - send_async_reply
    - g_list_free_1
    - free_async_command
    linkageType: ''
    returnType: void
    signature: 'static void reply_to_duplicates(async_command_t *cmd, const pcmk__action_result_t
      *result, int pid) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:931,1
    - Dst: stonith__api_new
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:937,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:941,1
    - Dst: init_metadata_cache
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:934,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:935,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:947,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:949,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:952,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:952,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:955,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 2
    argNames:
    - agent
    - metadata
    argTypes:
    - char*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 957
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 957
    functionName: get_agent_metadata
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - pcmk__str_eq
    - pcmk__str_copy
    - stonith__api_new
    - pcmk__xml_parse
    - init_metadata_cache
    - crm_warn
    - g_hash_table_replace
    - crm_err
    - stonith__api_free
    linkageType: ''
    returnType: int
    signature: 'int get_agent_metadata(const char *agent, xmlNode ** metadata) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1027,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1037,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1031,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1033,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1035,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - dev
    argTypes:
    - fenced_device_t*
    constantsTouched: []
    func_position:
      end: 1045
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1045
    functionName: target_list_type
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - g_hash_table_lookup
    linkageType: ''
    returnType: char*
    signature: 'static const char *target_list_type(fenced_device_t *dev) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fenced_device_set_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:989,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1004,1
    - Dst: fenced_device_set_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1007,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:997,1
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:972,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:983,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:981,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:986,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:988,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:991,1
    - Dst: fenced_device_set_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:992,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1005,1
    - Dst: pcmk__add_word
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1015,1
    - Dst: fenced_device_set_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:995,1
    - Dst: fenced_device_set_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1009,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:994,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1019,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:970,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:975,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1013,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 1
    argNames:
    - device
    argTypes:
    - fenced_device_t*
    constantsTouched: []
    func_position:
      end: 1020
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 1020
    functionName: read_action_metadata
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - crm_element_value
    - fenced_device_set_flags
    - CRM_LOG_ASSERT
    - pcmk__xpath_result
    - pcmk__str_eq
    - xmlXPathFreeObject
    - pcmk__xpath_num_results
    - pcmk__xe_attr_is_true
    - pcmk__xpath_search
    - pcmk__add_word
    linkageType: ''
    returnType: void
    signature: 'static void read_action_metadata(fenced_device_t *device) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1052,1
    - Dst: xml2list
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1061,1
    - Dst: read_action_metadata
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1082,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1060,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1056,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1063,1
    - Dst: mainloop_timer_running
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1093,1
    - Dst: is_action_required
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1107,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1108,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1112,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1058,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1068,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1072,1
    - Dst: get_agent_metadata
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1079,1
    - Dst: mainloop_timer_start
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1094,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1076,1
    - Dst: mainloop_timer_add
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1090,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1103,1
    - Dst: fenced_device_set_flags
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1104,1
    - Dst: mainloop_add_trigger
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1117,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1054,1
    - Dst: stonith__parse_targets
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1065,1
    - Dst: build_port_aliases
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1069,1
    - Dst: target_list_type
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1071,1
    - Dst: stonith__default_host_arg
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1084,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:1102,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 1
    argNames:
    - dev
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1120
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1120
    functionName: build_device_from_xml
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - g_list_free_full
    - mainloop_add_trigger
    - mainloop_timer_start
    - is_action_required
    - g_hash_table_lookup
    - target_list_type
    - stonith__parse_targets
    - read_action_metadata
    - crm_element_value
    - stonith__default_host_arg
    - mainloop_timer_running
    - get_agent_metadata
    - CRM_CHECK
    - fenced_device_set_flags
    - pcmk__assert_alloc
    - pcmk__str_eq
    - crm_info
    - build_port_aliases
    - xml2list
    - mainloop_timer_add
    - crm_element_value_copy
    linkageType: ''
    returnType: fenced_device_t*
    signature: 'static fenced_device_t *build_device_from_xml(const xmlNode *dev) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: fenced_has_watchdog_device
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    linkageType: ''
    returnType: bool
    signature: 'bool fenced_has_watchdog_device(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3243,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3251,1
    - Dst: pcmk__request_origin_type
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3249,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3247,1
    - Dst: pcmk__request_origin
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3250,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3252,1
    - Dst: initiate_remote_stonith_op
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3254,1
    - Dst: set_bad_request_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3255,1
    - Dst: fenced_construct_reply
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3256,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:3259,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 3261
      start: 3240
    functionDepth: 0
    functionLinenumber: 3240
    functionLinenumberEnd: 3261
    functionName: handle_relay_request
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - crm_element_value
    - set_bad_request_result
    - crm_notice
    - pcmk__xpath_find_one
    - initiate_remote_stonith_op
    - fenced_construct_reply
    - pcmk__request_origin
    - pcmk__request_origin_type
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_relay_request(pcmk__request_t *request) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strikey_table
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:830,1
    - Dst: memcpy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:850,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:849,1
    - Dst: strlen
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:836,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:848,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:865,1
    - Dst: memcpy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:866,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:875,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:876,1
    - Dst: g_list_append
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:878,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:901,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:885,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:878,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_commands.c:898,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 56
    argCount: 2
    argNames:
    - hostmap
    - targets
    argTypes:
    - char*
    - GList**
    constantsTouched: []
    func_position:
      end: 903
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 903
    functionName: build_port_aliases
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_commands.c
    functionUses: []
    functionsReached:
    - crm_debug
    - memcpy
    - g_list_append
    - pcmk__strikey_table
    - pcmk__assert_alloc
    - pcmk__str_copy
    - free
    - strlen
    - crm_info
    - g_hash_table_replace
    linkageType: ''
    returnType: GHashTable*
    signature: 'static GHashTable *build_port_aliases(const char *hostmap, GList **
      targets) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:142,1
    - Dst: stonith__exit_status
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:143,1
    - Dst: stonith__exit_reason
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:145,1
    - Dst: stonith__execution_status
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:144,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - stonith
    - data
    argTypes:
    - stonith_t*
    - stonith_callback_data_t*
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: st_global_callback
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - stonith__exit_reason
    - pcmk__s
    - crm_notice
    - stonith__exit_status
    - stonith__execution_status
    linkageType: ''
    returnType: void
    signature: 'static void st_global_callback(stonith_t * stonith, stonith_callback_data_t
      * data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:386,1
    - Dst: stonith__exit_reason
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:388,1
    - Dst: stonith__exit_status
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:386,1
    - Dst: stonith__execution_status
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:387,1
    - Dst: iterate_mainloop_tests
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:389,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - stonith
    - data
    argTypes:
    - stonith_t*
    - stonith_callback_data_t*
    constantsTouched: []
    func_position:
      end: 390
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 390
    functionName: mainloop_callback
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - stonith__exit_reason
    - stonith__exit_status
    - iterate_mainloop_tests
    - stonith__execution_status
    linkageType: ''
    returnType: void
    signature: 'static void mainloop_callback(stonith_t * stonith, stonith_callback_data_t
      * data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_test_done
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:482,1
    - Dst: mainloop_test_done
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:489,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:488,1
    - Dst: register_callback_helper
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:492,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - check_event
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 494
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 494
    functionName: test_async_monitor
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - register_callback_helper
    - mainloop_test_done
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void test_async_monitor(int check_event) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stonith__api_connect_retry
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:532,1
    - Dst: mainloop_test_done
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:539,1
    - Dst: mainloop_test_done
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:535,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - check_event
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 540
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 540
    functionName: try_mainloop_connect
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - stonith__api_connect_retry
    - mainloop_test_done
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void try_mainloop_connect(int check_event) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - callid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 399
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 399
    functionName: register_callback_helper
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int register_callback_helper(int callid) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:502,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:504,1
    - Dst: stonith__key_value_freeall
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:506,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:509,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:511,1
    - Dst: stonith__key_value_freeall
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:513,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:516,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:518,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:519,1
    - Dst: stonith__key_value_freeall
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:524,1
    - Dst: snprintf
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:520,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:521,1
    - Dst: mainloop_test_done
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 1
    argNames:
    - check_event
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 527
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 527
    functionName: test_register_async_devices
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - stonith__key_value_freeall
    - snprintf
    - mainloop_test_done
    - stonith__key_value_add
    linkageType: ''
    returnType: void
    signature: 'static void test_register_async_devices(int check_event) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:556,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - event_ready
    argTypes:
    - gboolean
    constantsTouched: []
    func_position:
      end: 561
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 561
    functionName: iterate_mainloop_tests
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - crm_exit
    - crm_info
    linkageType: ''
    returnType: void
    signature: 'static void iterate_mainloop_tests(gboolean event_ready) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:615,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:616,1
    - Dst: crm_log_init
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:628,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:619,1
    - Dst: build_arg_context
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:617,1
    - Dst: crm_bump_log_level
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:632,1
    - Dst: stonith__api_new
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:635,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:638,1
    - Dst: standard_dev_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:645,1
    - Dst: sanity_tests
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:648,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:661,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:662,1
    - Dst: test_shutdown
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:655,1
    - Dst: mainloop_tests
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:651,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:659,1
    - Dst: g_strfreev
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:658,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 27
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 663
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 663
    functionName: main
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - g_strfreev
    - build_arg_context
    - crm_exit
    - test_shutdown
    - pcmk__output_and_clear_error
    - crm_log_init
    - g_set_error
    - standard_dev_test
    - stonith__api_new
    - crm_bump_log_level
    - pcmk__new_common_args
    - pcmk__free_arg_context
    - mainloop_tests
    - sanity_tests
    - pcmk__cmdline_preproc
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:178,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:186,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:182,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:180,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:190,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:194,1
    - Dst: stonith__key_value_freeall
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 198
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 198
    functionName: run_fence_failure_test
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - stonith__key_value_freeall
    - single_test
    - stonith__key_value_add
    linkageType: ''
    returnType: void
    signature: 'static void run_fence_failure_test(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:245,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:247,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:257,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:277,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:265,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:282,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:251,1
    - Dst: stonith__key_value_freeall
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:254,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:248,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:260,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:268,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:262,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:272,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:285,1
    - Dst: stonith__key_value_freeall
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 288
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 288
    functionName: run_standard_test
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - stonith__key_value_freeall
    - single_test
    - stonith__key_value_add
    linkageType: ''
    returnType: void
    signature: 'static void run_standard_test(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:89,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:97,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:95,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:91,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - origin
    - pass
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 99
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 99
    functionName: mainloop_test_done
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - pcmk_exec_status_str
    - crm_exit
    - crm_info
    - crm_err
    - mainloop_set_trigger
    linkageType: ''
    returnType: void
    signature: 'static void mainloop_test_done(const char *origin, bool pass) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:205,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:207,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:209,1
    - Dst: stonith__key_value_freeall
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:212,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:214,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:216,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:218,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:222,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:227,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:234,1
    - Dst: stonith__key_value_freeall
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:237,1
    - Dst: single_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 238
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 238
    functionName: run_fence_failure_rollover_test
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - stonith__key_value_freeall
    - single_test
    - stonith__key_value_add
    linkageType: ''
    returnType: void
    signature: 'static void run_fence_failure_rollover_test(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stonith__api_free
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:297,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:298,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:309,1
    - Dst: run_standard_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:310,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:313,1
    - Dst: run_fence_failure_rollover_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:312,1
    - Dst: run_fence_failure_test
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 314
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 314
    functionName: sanity_tests
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - crm_exit
    - run_standard_test
    - run_fence_failure_rollover_test
    - run_fence_failure_test
    - crm_info
    - stonith__api_free
    linkageType: ''
    returnType: void
    signature: 'static void sanity_tests(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:429,1
    - Dst: mainloop_test_done
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:437,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:434,1
    - Dst: mainloop_test_done
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:432,1
    - Dst: mainloop_test_done
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:439,1
    - Dst: time
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:443,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:448,1
    - Dst: mainloop_test_done
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:449,1
    - Dst: register_callback_helper
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:451,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - check_event
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 453
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 453
    functionName: test_async_fence_custom_timeout
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - register_callback_helper
    - crm_err
    - mainloop_test_done
    - time
    linkageType: ''
    returnType: void
    signature: 'static void test_async_fence_custom_timeout(int check_event) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_test_done
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:461,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:469,1
    - Dst: register_callback_helper
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:472,1
    - Dst: mainloop_test_done
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:470,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - check_event
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 474
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 474
    functionName: test_async_fence_timeout
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - register_callback_helper
    - mainloop_test_done
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void test_async_fence_timeout(int check_event) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:58,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:60,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: mode_cb
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean mode_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:107,1
    - Dst: stonith__api_dispatch
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:112,1
    - Dst: poll
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 119
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 119
    functionName: dispatch_helper
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - crm_debug
    - stonith__api_dispatch
    - poll
    linkageType: ''
    returnType: void
    signature: 'static void dispatch_helper(int timeout) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:326,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:342,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:366,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:372,1
    - Dst: stonith__key_value_freeall
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:377,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:333,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:345,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:363,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:369,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:325,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:336,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:348,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:354,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:360,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:375,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:329,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:339,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:351,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:357,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 55
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 378
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 378
    functionName: standard_dev_test
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_exit
    - stonith__key_value_freeall
    - stonith__key_value_add
    - stonith__api_free
    linkageType: ''
    returnType: void
    signature: 'static void standard_dev_test(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_test_done
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:407,1
    - Dst: register_callback_helper
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:417,1
    - Dst: mainloop_test_done
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:415,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:414,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - check_event
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 419
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 419
    functionName: test_async_fence_pass
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - register_callback_helper
    - mainloop_test_done
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void test_async_fence_pass(int check_event) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterate_mainloop_tests
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 568
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 568
    functionName: trigger_iterate_mainloop_tests
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - iterate_mainloop_tests
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean trigger_iterate_mainloop_tests(gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_add_trigger
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:591,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:593,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:592,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:595,1
    - Dst: g_main_loop_new
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:596,1
    - Dst: g_main_loop_run
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 598
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 598
    functionName: mainloop_tests
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - g_main_loop_new
    - mainloop_add_signal
    - mainloop_add_trigger
    - g_main_loop_run
    - crm_info
    - mainloop_set_trigger
    linkageType: ''
    returnType: void
    signature: 'static void mainloop_tests(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:127,1
    - Dst: stonith__event_description
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:130,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:131,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - stonith_t*
    - stonith_event_t*
    constantsTouched: []
    func_position:
      end: 137
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 137
    functionName: st_callback
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - crm_exit
    - crm_notice
    - stonith__event_description
    - free
    linkageType: ''
    returnType: void
    signature: 'static void st_callback(stonith_t * st, stonith_event_t * e) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:577,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:584,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:579,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - nsig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 586
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 586
    functionName: test_shutdown
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_exit
    - crm_info
    - stonith__api_free
    linkageType: ''
    returnType: void
    signature: 'static void test_shutdown(int nsig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:604,1
    - Dst: pcmk__add_main_args
      Src: /src/pacemaker/daemons/fenced/cts-fence-helper.c:605,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 607
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 607
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/daemons/fenced/cts-fence-helper.c
    functionUses: []
    functionsReached:
    - pcmk__add_main_args
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:63,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - node_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: fenced_set_local_node
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_scheduler.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__str_copy
    linkageType: ''
    returnType: void
    signature: 'void fenced_set_local_node(const char *node_name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:118,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:119,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:120,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - rsc
    argTypes:
    - pcmk_resource_t*
    constantsTouched: []
    func_position:
      end: 127
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 127
    functionName: local_node_allowed_for
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_scheduler.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: pcmk_node_t*
    signature: 'static pcmk_node_t *local_node_allowed_for(const pcmk_resource_t *rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:98,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 101
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 101
    functionName: fenced_scheduler_cleanup
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_scheduler.c
    functionUses: []
    functionsReached:
    - pcmk__output_free
    - pcmk_free_scheduler
    linkageType: ''
    returnType: void
    signature: 'void fenced_scheduler_cleanup(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__log_output_new
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:34,1
    - Dst: pe__register_messages
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:46,1
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:40,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:42,1
    - Dst: pcmk__register_lib_messages
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:47,1
    - Dst: pcmk__output_set_log_level
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 52
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 52
    functionName: fenced_scheduler_init
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_scheduler.c
    functionUses: []
    functionsReached:
    - pe__register_messages
    - pcmk__log_output_new
    - pcmk__register_lib_messages
    - pcmk__output_free
    - pcmk_new_scheduler
    - pcmk__output_set_log_level
    linkageType: ''
    returnType: int
    signature: 'int fenced_scheduler_init(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: fenced_get_local_node
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_scheduler.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *fenced_get_local_node(void) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__is_clone
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:159,1
    - Dst: pe__resource_is_disabled
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:170,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:171,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:208,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:166,1
    - Dst: pcmk__is_group
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:197,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:213,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:216,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:217,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:222,1
    - Dst: create_device_registration_xml
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:225,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:228,1
    - Dst: register_if_fencing_device
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:158,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:176,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:185,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:201,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:203,1
    - Dst: get_meta_attributes
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:212,1
    - Dst: pe_rsc_params
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:216,1
    - Dst: stonith__key_value_freeall
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:227,1
    - Dst: fenced_device_register
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:228,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:229,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:141,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:177,1
    - Dst: local_node_allowed_for
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:183,1
    - Dst: pcmk_readable_score
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:192,1
    - Dst: local_node_allowed_for
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:198,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:210,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:190,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 62
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 230
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 230
    functionName: register_if_fencing_device
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_scheduler.c
    functionUses: []
    functionsReached:
    - fenced_device_register
    - pcmk__is_clone
    - create_device_registration_xml
    - pcmk__s
    - g_hash_table_lookup
    - pcmk_is_set
    - pcmk_readable_score
    - crm_element_value
    - pcmk__assert
    - get_meta_attributes
    - g_hash_table_iter_next
    - local_node_allowed_for
    - pcmk__str_eq
    - pe_rsc_params
    - register_if_fencing_device
    - stonith__key_value_freeall
    - pcmk__is_group
    - crm_info
    - stonith__key_value_add
    - crm_debug
    - pcmk__xml_free
    - pe__resource_is_disabled
    - g_hash_table_iter_init
    linkageType: ''
    returnType: void
    signature: 'static void register_if_fencing_device(gpointer data, gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:243,1
    - Dst: g_list_foreach
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:252,1
    - Dst: pcmk__schedule_actions
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:251,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:249,1
    - Dst: pcmk_reset_scheduler
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:246,1
    - Dst: pcmk_reset_scheduler
      Src: /src/pacemaker/daemons/fenced/fenced_scheduler.c:256,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - cib
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 257
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 257
    functionName: fenced_scheduler_run
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_scheduler.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - g_list_foreach
    - pcmk__schedule_actions
    - pcmk__set_scheduler_flags
    - pcmk_reset_scheduler
    linkageType: ''
    returnType: void
    signature: 'void fenced_scheduler_run(xmlNode *cib) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.h:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - action
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 395
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 395
    functionName: fenced_support_flag
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.h
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: uint32_t
    signature: 'static inline uint32_t fenced_support_flag(const char *action) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:103,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:105,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 107
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: free_remote_query
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - free
    linkageType: ''
    returnType: void
    signature: 'static void free_remote_query(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_peer_device
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:219,1
    - Dst: count_peer_devices
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:228,1
    - Dst: fenced_support_flag
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:220,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:226,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 4
    argNames:
    - op
    - peer
    - device
    - verified_devices_only
    argTypes:
    - remote_fencing_op_t*
    - peer_device_info_t*
    - char*
    - gboolean
    constantsTouched: []
    func_position:
      end: 231
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 231
    functionName: grab_peer_device
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - fenced_support_flag
    - crm_trace
    - find_peer_device
    - count_peer_devices
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean grab_peer_device(const remote_fencing_op_t *op, peer_device_info_t
      *peer, const char *device, gboolean verified_devices_only) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_log_xml_debug
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:255,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:260,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:259,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:261,1
    - Dst: clear_remote_op_timers
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:257,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:262,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:263,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:264,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:265,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:268,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:271,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:275,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:278,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:282,1
    - Dst: g_list_free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:279,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:281,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 283
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 283
    functionName: free_remote_op
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - crm_log_xml_debug
    - g_list_free
    - g_list_free_full
    - free
    - pcmk__xml_free
    - pcmk__reset_result
    - clear_remote_op_timers
    linkageType: ''
    returnType: void
    signature: 'static void free_remote_op(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:747,1
    - Dst: finalize_timed_out_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:751,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 757
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 757
    functionName: remote_op_timeout
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - crm_debug
    - finalize_timed_out_op
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean remote_op_timeout(gpointer userdata) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1188,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1195,1
    - Dst: crm_generate_uuid
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1197,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1215,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1219,1
    - Dst: time
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1220,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1222,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1228,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1229,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1244,1
    - Dst: stonith__clear_call_options
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1267,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1248,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1176,1
    - Dst: init_stonith_remote_op_hash_table
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1171,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1192,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1204,1
    - Dst: fenced_get_local_node
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1215,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1212,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1226,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1241,1
    - Dst: pcmk__plural_alt
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1255,1
    - Dst: stonith_fence_history_trim
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1286,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1245,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1178,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1180,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1182,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1190,1
    - Dst: fencing_active_peers
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1203,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1200,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1223,1
    - Dst: getpid
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1230,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1232,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1236,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1250,1
    - Dst: pcmk__scan_min_int
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1261,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1165,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1239,1
    - Dst: pcmk__search_node_caches
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1262,1
    - Dst: fenced_send_notification
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1282,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1270,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1273,1
    - Dst: merge_duplicates
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1278,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 88
    argCount: 3
    argNames:
    - client
    - request
    - peer
    argTypes:
    - char*
    - xmlNode*
    - gboolean
    constantsTouched: []
    func_position:
      end: 1289
      start: 1161
    functionDepth: 0
    functionLinenumber: 1161
    functionLinenumberEnd: 1289
    functionName: create_remote_stonith_op
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - pcmk__plural_alt
    - stonith_fence_history_trim
    - g_hash_table_replace
    - stonith__clear_call_options
    - g_hash_table_lookup
    - crm_strdup_printf
    - pcmk__xe_get_flags
    - pcmk__xpath_find_one
    - crm_element_value
    - pcmk_rc_str
    - merge_duplicates
    - CRM_CHECK
    - pcmk__xml_copy
    - pcmk__assert_alloc
    - pcmk__search_node_caches
    - pcmk__str_eq
    - pcmk__str_update
    - pcmk__str_copy
    - getpid
    - crm_warn
    - pcmk__scan_min_int
    - crm_trace
    - init_stonith_remote_op_hash_table
    - crm_debug
    - CRM_LOG_ASSERT
    - time
    - fenced_get_local_node
    - crm_generate_uuid
    - fenced_send_notification
    - crm_element_value_copy
    - crm_element_value_int
    - fencing_active_peers
    linkageType: ''
    returnType: void*
    signature: 'void *create_remote_stonith_op(const char *client, xmlNode *request,
      gboolean peer) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1315,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1334,1
    - Dst: stonith__op_state_text
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1350,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1361,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1359,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1365,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1369,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1373,1
    - Dst: finalize_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1338,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1347,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1358,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1377,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1318,1
    - Dst: advance_topology_level
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1327,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1325,1
    - Dst: create_remote_stonith_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1319,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1357,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1360,1
    - Dst: op_requested_action
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1358,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1362,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1366,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1367,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1374,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1336,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1342,1
    - Dst: stonith_create_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1353,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1356,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 3
    argNames:
    - client
    - request
    - manual_ack
    argTypes:
    - pcmk__client_t*
    - xmlNode*
    - gboolean
    constantsTouched: []
    func_position:
      end: 1380
      start: 1301
    functionDepth: 0
    functionLinenumber: 1301
    functionLinenumberEnd: 1380
    functionName: initiate_remote_stonith_op
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - crm_notice
    - pcmk__create_timer
    - pcmk__cluster_send_message
    - crm_element_value
    - create_remote_stonith_op
    - finalize_op
    - CRM_CHECK
    - op_requested_action
    - pcmk__str_eq
    - stonith__op_state_text
    - crm_xml_add_int
    - advance_topology_level
    - crm_warn
    - crm_info
    - stonith_create_op
    - CRM_LOG_ASSERT
    - crm_xml_add
    - pcmk__xml_free
    linkageType: ''
    returnType: remote_fencing_op_t*
    signature: 'remote_fencing_op_t *initiate_remote_stonith_op(const pcmk__client_t
      *client, xmlNode *request, gboolean manual_ack) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: get_op_total_timeout
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1917,1
    - Dst: get_device_timeout
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1941,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1960,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1965,1
    - Dst: get_device_timeout
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1970,1
    - Dst: check_watchdog_fencing_and_wait
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1993,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2015,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2027,1
    - Dst: advance_topology_device_in_level
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2029,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2033,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2083,1
    - Dst: finalize_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2090,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2020,1
    - Dst: stonith__op_state_text
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1880,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1878,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1897,1
    - Dst: advance_topology_device_in_level
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1900,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1918,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1948,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1961,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1966,1
    - Dst: get_peer_timeout
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1978,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1979,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2068,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2093,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2072,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2073,1
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1988,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2038,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2067,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1895,1
    - Dst: fenced_device_supports_on
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1903,1
    - Dst: stonith_choose_peer
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1934,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1920,1
    - Dst: stonith_choose_peer
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1913,1
    - Dst: report_timeout_period
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1919,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1958,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1962,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1971,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1975,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1983,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2041,1
    - Dst: is_watchdog_fencing
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2050,1
    - Dst: stonith__op_state_text
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2065,1
    - Dst: stonith__op_state_text
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2040,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2071,1
    - Dst: fencing_active_peers
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2045,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1876,1
    - Dst: fenced_device_reboot_action
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1895,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1904,1
    - Dst: advance_topology_device_in_level
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1906,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1925,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1912,1
    - Dst: stonith_create_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1946,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1959,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1963,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1964,1
    - Dst: stonith__op_state_text
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2086,1
    - Dst: is_watchdog_fencing
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1992,1
    - Dst: finalize_timed_out_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2042,1
    - Dst: check_watchdog_fencing_and_wait
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2051,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2018,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2062,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 131
    argCount: 2
    argNames:
    - op
    - peer
    argTypes:
    - remote_fencing_op_t*
    - peer_device_info_t*
    constantsTouched: []
    func_position:
      end: 2098
      start: 1870
    functionDepth: 0
    functionLinenumber: 1870
    functionLinenumberEnd: 2098
    functionName: request_peer_fencing
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - finalize_timed_out_op
    - pcmk__get_node
    - get_peer_timeout
    - check_watchdog_fencing_and_wait
    - get_device_timeout
    - crm_notice
    - pcmk__create_timer
    - stonith_choose_peer
    - pcmk__cluster_send_message
    - get_op_total_timeout
    - pcmk_is_set
    - pcmk__reset_result
    - crm_err
    - finalize_op
    - CRM_CHECK
    - pcmk__str_eq
    - stonith__op_state_text
    - crm_xml_add_int
    - crm_warn
    - crm_info
    - stonith_create_op
    - pcmk__readable_interval
    - crm_trace
    - is_watchdog_fencing
    - advance_topology_device_in_level
    - crm_xml_add
    - pcmk__xml_free
    - fenced_device_supports_on
    - fenced_device_reboot_action
    - report_timeout_period
    - g_source_remove
    - fencing_active_peers
    linkageType: ''
    returnType: void
    signature: 'static void request_peer_fencing(remote_fencing_op_t *op, peer_device_info_t
      *peer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: free_stonith_remote_op_list
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: 'void free_stonith_remote_op_list(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:237,1
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:241,1
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - remote_fencing_op_t*
    constantsTouched: []
    func_position:
      end: 248
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 248
    functionName: clear_remote_op_timers
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: 'static void clear_remote_op_timers(remote_fencing_op_t * op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - table
    argTypes:
    - GHashTable**
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: init_stonith_remote_op_hash_table
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - pcmk__strkey_table
    linkageType: ''
    returnType: void
    signature: 'void init_stonith_remote_op_hash_table(GHashTable **table) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:316,1
    - Dst: strcpy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - remote_fencing_op_t*
    constantsTouched: []
    func_position:
      end: 324
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 324
    functionName: op_phase_off
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - crm_info
    - strcpy
    linkageType: ''
    returnType: void
    signature: 'static void op_phase_off(remote_fencing_op_t *op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:713,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:726,1
    - Dst: finalize_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:728,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:723,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - op
    - reason
    argTypes:
    - remote_fencing_op_t*
    - char*
    constantsTouched: []
    func_position:
      end: 729
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 729
    functionName: finalize_timed_out_op
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__set_result
    - finalize_op
    linkageType: ''
    returnType: void
    signature: 'static void finalize_timed_out_op(remote_fencing_op_t *op, const char
      *reason) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_find_custom
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:833,1
    - Dst: g_list_remove
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:837,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - op
    - device
    argTypes:
    - remote_fencing_op_t*
    - char*
    constantsTouched: []
    func_position:
      end: 839
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 839
    functionName: remove_required_device
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - g_list_remove
    - g_list_find_custom
    linkageType: ''
    returnType: void
    signature: 'static void remove_required_device(remote_fencing_op_t *op, const
      char *device) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:874,1
    - Dst: regcomp
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:893,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:894,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:884,1
    - Dst: node_has_attr
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:883,1
    - Dst: regexec
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:896,1
    - Dst: regfree
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:898,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:900,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:907,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:908,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:913,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 2
    argNames:
    - tp
    - node
    argTypes:
    - stonith_topology_t*
    - char*
    constantsTouched: []
    func_position:
      end: 915
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 915
    functionName: topology_matches
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - regexec
    - CRM_CHECK
    - node_has_attr
    - pcmk__str_eq
    - regfree
    - crm_notice
    - regcomp
    - crm_info
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean topology_matches(const stonith_topology_t *tp, const
      char *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1124,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1128,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1130,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1131,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1131,1
    - Dst: initiate_remote_stonith_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1133,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1138,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1141,1
    - Dst: finalize_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - client
    - msg
    argTypes:
    - pcmk__client_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1148
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1148
    functionName: fenced_handle_manual_confirmation
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - finalize_op
    - CRM_CHECK
    - pcmk__s
    - crm_notice
    - pcmk__xpath_find_one
    - pcmk__str_copy
    - initiate_remote_stonith_op
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'int fenced_handle_manual_confirmation(const pcmk__client_t *client,
      xmlNode *msg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - remote_fencing_op_t*
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: op_requested_action
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *op_requested_action(const remote_fencing_op_t *op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:371,1
    - Dst: strcpy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:374,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - remote_fencing_op_t*
    constantsTouched: []
    func_position:
      end: 376
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 376
    functionName: undo_op_remap
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - crm_info
    - strcpy
    linkageType: ''
    returnType: void
    signature: 'static void undo_op_remap(remote_fencing_op_t *op) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: clear_remote_op_timers
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:562,1
    - Dst: set_fencing_completed
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:577,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:608,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:651,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:628,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:627,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:612,1
    - Dst: handle_local_reply_and_notify
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:633,1
    - Dst: finalize_op_duplicates
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:636,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:643,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:647,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:559,1
    - Dst: delegate_from_xml
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:591,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:601,1
    - Dst: fenced_broadcast_op_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:611,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:621,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:616,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:566,1
    - Dst: undo_op_remap
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:578,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:581,1
    - Dst: delegate_from_xml
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:596,1
    - Dst: fenced_get_local_node
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:617,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:617,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:609,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 3
    argNames:
    - op
    - data
    - dup
    argTypes:
    - remote_fencing_op_t*
    - xmlNode*
    - bool
    constantsTouched: []
    func_position:
      end: 652
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 652
    functionName: finalize_op
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - pcmk__result_ok
    - g_list_free_full
    - do_crm_log
    - crm_notice
    - delegate_from_xml
    - pcmk__xe_create
    - fenced_broadcast_op_result
    - crm_element_value
    - handle_local_reply_and_notify
    - set_fencing_completed
    - pcmk_exec_status_str
    - CRM_CHECK
    - crm_exit_str
    - pcmk__str_eq
    - clear_remote_op_timers
    - finalize_op_duplicates
    - undo_op_remap
    - pcmk__xml_free
    - fenced_get_local_node
    linkageType: ''
    returnType: void
    signature: 'static void finalize_op(remote_fencing_op_t *op, xmlNode *data, bool
      dup) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:669,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:673,1
    - Dst: finalize_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 676
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 676
    functionName: remote_op_watchdog_done
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - crm_notice
    - finalize_op
    - pcmk__set_result
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean remote_op_watchdog_done(gpointer userdata) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_find_custom
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:814,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:818,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:819,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - op
    - device
    argTypes:
    - remote_fencing_op_t*
    - char*
    constantsTouched: []
    func_position:
      end: 821
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 821
    functionName: add_required_device
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - g_list_prepend
    - g_list_find_custom
    linkageType: ''
    returnType: void
    signature: 'static void add_required_device(remote_fencing_op_t *op, const char
      *device) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:848,1
    - Dst: g_list_append
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:854,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:855,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - op
    - devices
    argTypes:
    - remote_fencing_op_t*
    - GList*
    constantsTouched: []
    func_position:
      end: 858
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 858
    functionName: set_op_device_list
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - pcmk__str_copy
    - g_list_append
    - g_list_free_full
    linkageType: ''
    returnType: void
    signature: 'static void set_op_device_list(remote_fencing_op_t * op, GList *devices) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: find_topology_for_host
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:957,1
    - Dst: stonith__set_call_options
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:965,1
    - Dst: undo_op_remap
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:968,1
    - Dst: topology_is_empty
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:959,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:963,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:976,1
    - Dst: g_list_length
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:978,1
    - Dst: set_op_device_list
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:980,1
    - Dst: g_list_next
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:987,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:988,1
    - Dst: op_phase_off
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:994,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:999,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - op
    - empty_ok
    argTypes:
    - remote_fencing_op_t*
    - bool
    constantsTouched: []
    func_position:
      end: 1004
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 1004
    functionName: advance_topology_level
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - find_topology_for_host
    - crm_trace
    - op_phase_off
    - undo_op_remap
    - stonith__set_call_options
    - g_list_length
    - pcmk__str_eq
    - pcmk__assert
    - crm_info
    - topology_is_empty
    - set_op_device_list
    - g_list_next
    linkageType: ''
    returnType: int
    signature: 'static int advance_topology_level(remote_fencing_op_t *op, bool empty_ok) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: valid_fencing_timeout
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1551,1
    - Dst: valid_fencing_timeout
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1563,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1557,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 4
    argNames:
    - op
    - peer
    - device
    - with_delay
    argTypes:
    - remote_fencing_op_t*
    - peer_device_info_t*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 1575
      start: 1543
    functionDepth: 0
    functionLinenumber: 1543
    functionLinenumberEnd: 1575
    functionName: get_device_timeout
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - valid_fencing_timeout
    - g_hash_table_lookup
    linkageType: ''
    returnType: int
    signature: 'static int get_device_timeout(const remote_fencing_op_t *op, const
      peer_device_info_t *peer, const char *device, bool with_delay) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: sort_strings
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: gint
    signature: 'static gint sort_strings(gconstpointer a, gconstpointer b) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:685,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:693,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:687,1
    - Dst: request_peer_fencing
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - userdata
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 701
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 701
    functionName: remote_op_timeout_one
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - crm_notice
    - request_peer_fencing
    - crm_trace
    - pcmk__set_result
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean remote_op_timeout_one(gpointer userdata) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1614,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - op
    - peer
    argTypes:
    - remote_fencing_op_t*
    - peer_device_info_t*
    constantsTouched: []
    func_position:
      end: 1617
      start: 1605
    functionDepth: 0
    functionLinenumber: 1605
    functionLinenumberEnd: 1617
    functionName: get_peer_timeout
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    linkageType: ''
    returnType: int
    signature: 'static int get_peer_timeout(const remote_fencing_op_t *op, const peer_device_info_t
      *peer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:337,1
    - Dst: g_list_remove
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:351,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:354,1
    - Dst: strcpy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:341,1
    - Dst: g_list_find_custom
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:347,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - op
    argTypes:
    - remote_fencing_op_t*
    constantsTouched: []
    func_position:
      end: 359
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 359
    functionName: op_phase_on
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - strcpy
    - g_list_free_full
    - g_list_remove
    - crm_info
    - g_list_find_custom
    linkageType: ''
    returnType: void
    signature: 'static void op_phase_on(remote_fencing_op_t *op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:503,1
    - Dst: finalize_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:509,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:506,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:513,1
    - Dst: pcmk__copy_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:508,1
    - Dst: stonith__op_state_text
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:516,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - op
    - data
    argTypes:
    - remote_fencing_op_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 519
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 519
    functionName: finalize_op_duplicates
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_exec_status_str
    - finalize_op
    - stonith__op_state_text
    - pcmk__copy_result
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void finalize_op_duplicates(remote_fencing_op_t *op, xmlNode
      *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:524,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:531,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:529,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - xml
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 533
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 533
    functionName: delegate_from_xml
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - pcmk__xpath_find_one
    - crm_element_value_copy
    linkageType: ''
    returnType: char*
    signature: 'static char *delegate_from_xml(xmlNode *xml) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:921,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:924,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:928,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:929,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:924,1
    - Dst: topology_matches
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:930,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:931,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:931,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:936,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:936,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - host
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 938
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 938
    functionName: find_topology_for_host
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - g_hash_table_size
    - topology_matches
    - g_hash_table_iter_init
    - crm_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: stonith_topology_t*
    signature: 'stonith_topology_t *find_topology_for_host(const char *host) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2245,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2249,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2254,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2249,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2252,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2260,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2264,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2265,1
    - Dst: parse_action_specific
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2269,1
    - Dst: op_requested_action
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2269,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2271,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2272,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2281,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2281,1
    - Dst: parse_action_specific
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2283,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2277,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2277,1
    - Dst: parse_action_specific
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2278,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - xml
    - op
    - peer
    - device
    argTypes:
    - xmlNode*
    - remote_fencing_op_t*
    - peer_device_info_t*
    - char*
    constantsTouched: []
    func_position:
      end: 2287
      start: 2238
    functionDepth: 0
    functionLinenumber: 2238
    functionLinenumberEnd: 2287
    functionName: add_device_properties
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - parse_action_specific
    - pcmk__xe_id
    - pcmk__xe_first_child
    - pcmk__assert_alloc
    - op_requested_action
    - pcmk__xe_get_flags
    - pcmk__str_eq
    - pcmk__str_copy
    - pcmk__xe_next
    - pcmk_rc_str
    - crm_warn
    - g_hash_table_insert
    - crm_trace
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'static void add_device_properties(const xmlNode *xml, remote_fencing_op_t
      *op, peer_device_info_t *peer, const char *device) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:461,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:462,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:463,1
    - Dst: fenced_construct_reply
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:465,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:466,1
    - Dst: pcmk__find_client_by_id
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:469,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:471,1
    - Dst: do_local_reply
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:473,1
    - Dst: fencing_result2xml
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:477,1
    - Dst: fenced_send_notification
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:478,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:480,1
    - Dst: fenced_send_notification
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:481,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:485,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - op
    - data
    argTypes:
    - remote_fencing_op_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 486
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 486
    functionName: handle_local_reply_and_notify
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - crm_trace
    - crm_xml_add
    - pcmk__xml_free
    - fenced_construct_reply
    - crm_xml_add_int
    - do_local_reply
    - fencing_result2xml
    - fenced_send_notification
    - pcmk__find_client_by_id
    linkageType: ''
    returnType: void
    signature: 'static void handle_local_reply_and_notify(remote_fencing_op_t *op,
      xmlNode *data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:767,1
    - Dst: request_peer_fencing
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:776,1
    - Dst: stonith__op_state_text
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:775,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:774,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:770,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:778,1
    - Dst: stonith__op_state_text
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:779,1
    - Dst: finalize_timed_out_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:780,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 785
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 785
    functionName: remote_op_query_timeout
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - crm_debug
    - finalize_timed_out_op
    - stonith__op_state_text
    - request_peer_fencing
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean remote_op_query_timeout(gpointer data) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1020,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1029,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1034,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1038,1
    - Dst: fencing_peer_active
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1057,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1043,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1048,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1049,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1054,1
    - Dst: get_op_total_timeout
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1081,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1085,1
    - Dst: report_timeout_period
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1091,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1082,1
    - Dst: time
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1018,1
    - Dst: op_requested_action
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1022,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1025,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1021,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1033,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1039,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1044,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1058,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1062,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1069,1
    - Dst: g_list_append
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1078,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 1
    argNames:
    - op
    argTypes:
    - remote_fencing_op_t*
    constantsTouched: []
    func_position:
      end: 1094
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1094
    functionName: merge_duplicates
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - pcmk__get_node
    - g_list_append
    - strcmp
    - op_requested_action
    - time
    - pcmk__str_eq
    - get_op_total_timeout
    - crm_notice
    - report_timeout_period
    - fencing_peer_active
    - g_hash_table_iter_init
    - crm_trace
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void merge_duplicates(remote_fencing_op_t *op) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fencing_active_peers
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1447,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1455,1
    - Dst: find_best_peer
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1460,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1462,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1452,1
    - Dst: QB_MIN
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1466,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1467,1
    - Dst: find_best_peer
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1472,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1474,1
    - Dst: find_best_peer
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1482,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1500,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1493,1
    - Dst: advance_topology_level
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1494,1
    - Dst: is_watchdog_fencing
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1499,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1504,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1484,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 1
    argNames:
    - op
    argTypes:
    - remote_fencing_op_t*
    constantsTouched: []
    func_position:
      end: 1508
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1508
    functionName: stonith_choose_peer
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - crm_info
    - crm_notice
    - QB_MIN
    - pcmk_is_set
    - advance_topology_level
    - find_best_peer
    - is_watchdog_fencing
    - crm_trace
    - fencing_active_peers
    linkageType: ''
    returnType: peer_device_info_t*
    signature: 'static peer_device_info_t *stonith_choose_peer(remote_fencing_op_t
      * op) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: find_topology_for_host
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1624,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1632,1
    - Dst: g_list_find_custom
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1655,1
    - Dst: g_list_copy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1634,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1626,1
    - Dst: g_list_remove
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1658,1
    - Dst: find_peer_device
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1662,1
    - Dst: fenced_support_flag
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1663,1
    - Dst: get_device_timeout
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1664,1
    - Dst: is_watchdog_fencing
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1675,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1676,1
    - Dst: g_list_free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1698,1
    - Dst: get_device_timeout
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1690,1
    - Dst: get_peer_timeout
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1701,1
    - Dst: QB_MIN
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1718,1
    - Dst: find_peer_device
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1688,1
    - Dst: valid_fencing_timeout
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1704,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 67
    argCount: 2
    argNames:
    - op
    - chosen_peer
    argTypes:
    - remote_fencing_op_t*
    - peer_device_info_t*
    constantsTouched: []
    func_position:
      end: 1719
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1719
    functionName: get_op_total_timeout
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - find_topology_for_host
    - fenced_support_flag
    - g_list_free
    - pcmk__timeout_ms2s
    - get_peer_timeout
    - g_list_copy
    - pcmk__str_eq
    - find_peer_device
    - valid_fencing_timeout
    - get_device_timeout
    - pcmk_is_set
    - QB_MIN
    - g_list_remove
    - is_watchdog_fencing
    - g_list_find_custom
    linkageType: ''
    returnType: int
    signature: 'static int get_op_total_timeout(const remote_fencing_op_t *op, const
      peer_device_info_t *chosen_peer) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2465,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2468,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2472,1
    - Dst: create_remote_stonith_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2482,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2503,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2518,1
    - Dst: finalize_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2531,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2547,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2562,1
    - Dst: finalize_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2586,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2594,1
    - Dst: finalize_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2579,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2475,1
    - Dst: fenced_get_local_node
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2514,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2524,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2535,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2537,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2549,1
    - Dst: finalize_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2572,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2577,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2457,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2462,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2478,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2493,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2497,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2488,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2489,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2496,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2506,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2541,1
    - Dst: stonith__find_xe_with_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2467,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2464,1
    - Dst: stonith__xe_get_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2470,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2503,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2480,1
    - Dst: finalize_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2511,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2514,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2543,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2556,1
    - Dst: advance_topology_device_in_level
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2565,1
    - Dst: advance_topology_level
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2570,1
    - Dst: request_peer_fencing
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2597,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2596,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 101
    argCount: 1
    argNames:
    - msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2598
      start: 2451
    functionDepth: 0
    functionLinenumber: 2451
    functionLinenumberEnd: 2598
    functionName: fenced_process_fencing_reply
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - pcmk__result_ok
    - crm_notice
    - stonith__find_xe_with_result
    - g_hash_table_lookup
    - pcmk__xpath_find_one
    - pcmk_is_set
    - stonith__xe_get_result
    - crm_element_value
    - pcmk__reset_result
    - create_remote_stonith_op
    - crm_err
    - pcmk_exec_status_str
    - finalize_op
    - CRM_CHECK
    - request_peer_fencing
    - pcmk__str_eq
    - advance_topology_level
    - crm_warn
    - crm_info
    - crm_trace
    - advance_topology_device_in_level
    - fenced_get_local_node
    linkageType: ''
    returnType: void
    signature: 'void fenced_process_fencing_reply(xmlNode *msg) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - tp
    argTypes:
    - stonith_topology_t*
    constantsTouched: []
    func_position:
      end: 802
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 802
    functionName: topology_is_empty
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean topology_is_empty(stonith_topology_t *tp) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1102,1
    - Dst: fencing_peer_active
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1104,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1109
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1109
    functionName: fencing_active_peers
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - fencing_peer_active
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t fencing_active_peers(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_watchdog_fencing
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1516,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1526,1
    - Dst: QB_MIN
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1520,1
    - Dst: QB_MAX
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1520,1
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1521,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1533,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - specified_timeout
    - action_specific
    - op
    - device
    argTypes:
    - int
    - bool
    - remote_fencing_op_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1541
      start: 1510
    functionDepth: 0
    functionLinenumber: 1510
    functionLinenumberEnd: 1541
    functionName: valid_fencing_timeout
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - pcmk__timeout_ms2s
    - QB_MIN
    - crm_warn
    - QB_MAX
    - is_watchdog_fencing
    linkageType: ''
    returnType: int
    signature: 'static int valid_fencing_timeout(int specified_timeout, bool action_specific,
      const remote_fencing_op_t *op, const char *device) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1740,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1748,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1743,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1742,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1741,1
    - Dst: fenced_get_local_node
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1748,1
    - Dst: do_stonith_async_timeout_update
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1750,1
    - Dst: stonith_create_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1755,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1756,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1757,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1761,1
    - Dst: pcmk__get_node
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1761,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1765,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1770,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1759,1
    - Dst: report_timeout_period
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1772,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1758,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 2
    argNames:
    - op
    - op_timeout
    argTypes:
    - remote_fencing_op_t*
    - int
    constantsTouched: []
    func_position:
      end: 1774
      start: 1721
    functionDepth: 0
    functionLinenumber: 1721
    functionLinenumberEnd: 1774
    functionName: report_timeout_period
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - pcmk__get_node
    - crm_element_value
    - crm_xml_add
    - pcmk__str_eq
    - pcmk__cluster_send_message
    - pcmk__xml_free
    - fenced_get_local_node
    - crm_xml_add_int
    - do_stonith_async_timeout_update
    - stonith_create_op
    - report_timeout_period
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void report_timeout_period(remote_fencing_op_t * op, int op_timeout) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:189,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:195,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 4
    argNames:
    - op
    - peer
    - device
    - support_action_only
    argTypes:
    - remote_fencing_op_t*
    - peer_device_info_t*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 202
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 202
    functionName: find_peer_device
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - g_hash_table_lookup
    linkageType: ''
    returnType: device_properties_t*
    signature: 'static device_properties_t *find_peer_device(const remote_fencing_op_t
      *op, const peer_device_info_t *peer, const char *device, uint32_t support_action_only) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2355,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2433,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2429,1
    - Dst: stonith__op_state_text
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2436,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2435,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2362,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2359,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2367,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2372,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2387,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2384,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2394,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2396,1
    - Dst: all_topology_devices_found
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2400,1
    - Dst: request_peer_fencing
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2403,1
    - Dst: request_peer_fencing
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2421,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2361,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2364,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2370,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2389,1
    - Dst: request_peer_fencing
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2408,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2424,1
    - Dst: request_peer_fencing
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2426,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2368,1
    - Dst: fencing_active_peers
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2377,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2402,1
    - Dst: add_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2391,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2385,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2406,1
    - Dst: count_peer_devices
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2412,1
    - Dst: fenced_support_flag
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2413,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2419,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2420,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 78
    argCount: 1
    argNames:
    - msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2440
      start: 2344
    functionDepth: 0
    functionLinenumber: 2344
    functionLinenumberEnd: 2440
    functionName: process_remote_stonith_query
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - fenced_support_flag
    - all_topology_devices_found
    - g_hash_table_lookup
    - add_result
    - count_peer_devices
    - pcmk__xpath_find_one
    - pcmk_is_set
    - crm_element_value
    - CRM_CHECK
    - request_peer_fencing
    - pcmk__str_eq
    - stonith__op_state_text
    - crm_info
    - crm_trace
    - crm_debug
    - pcmk__plural_s
    - crm_element_value_int
    - fencing_active_peers
    linkageType: ''
    returnType: int
    signature: 'int process_remote_stonith_query(xmlNode *msg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2304,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2308,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2313,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2309,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2312,1
    - Dst: pcmk__xe_id
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2314,1
    - Dst: add_device_properties
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2317,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2321,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2322,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2323,1
    - Dst: g_list_insert_sorted
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2326,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2324,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - op
    - host
    - ndevices
    - xml
    argTypes:
    - remote_fencing_op_t*
    - char*
    - int
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2328
      start: 2300
    functionDepth: 0
    functionLinenumber: 2300
    functionLinenumberEnd: 2328
    functionName: add_result
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__xe_first_child
    - pcmk__plural_s
    - pcmk__assert_alloc
    - pcmk__strkey_table
    - add_device_properties
    - pcmk__str_copy
    - g_list_insert_sorted
    - pcmk__xe_next
    - pcmk__xe_id
    - crm_err
    - g_hash_table_size
    linkageType: ''
    returnType: peer_device_info_t*
    signature: 'static peer_device_info_t *add_result(remote_fencing_op_t *op, const
      char *host, int ndevices, const xmlNode *xml) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_foreach
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 4
    argNames:
    - op
    - peer
    - verified_only
    - support_on_action_only
    argTypes:
    - remote_fencing_op_t*
    - peer_device_info_t*
    - gboolean
    - uint32_t
    constantsTouched: []
    func_position:
      end: 173
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 173
    functionName: count_peer_devices
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - g_hash_table_foreach
    linkageType: ''
    returnType: int
    signature: 'static int count_peer_devices(const remote_fencing_op_t *op, const
      peer_device_info_t *peer, gboolean verified_only, uint32_t support_on_action_only) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:416,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:421,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:423,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:422,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:424,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:425,1
    - Dst: pcmk__xe_set_bool_attr
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:428,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:431,1
    - Dst: fencing_result2xml
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:432,1
    - Dst: stonith__xe_set_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:433,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:436,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:435,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - op
    - op_merged
    argTypes:
    - remote_fencing_op_t*
    - bool
    constantsTouched: []
    func_position:
      end: 439
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 439
    functionName: fenced_broadcast_op_result
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - stonith__xe_set_result
    - pcmk__cluster_send_message
    - pcmk__xe_set_bool_attr
    - pcmk__xml_free
    - crm_xml_add_int
    - fencing_result2xml
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void fenced_broadcast_op_result(const remote_fencing_op_t *op, bool
      op_merged) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1396,1
    - Dst: pcmk__is_fencing_action
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1397,1
    - Dst: node_does_watchdog_fencing
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1398,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - op
    - device
    argTypes:
    - remote_fencing_op_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1399
      start: 1391
    functionDepth: 0
    functionLinenumber: 1391
    functionLinenumberEnd: 1399
    functionName: is_watchdog_fencing
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - node_does_watchdog_fencing
    - pcmk__is_fencing_action
    - pcmk__str_eq
    linkageType: ''
    returnType: bool
    signature: 'static bool is_watchdog_fencing(const remote_fencing_op_t *op, const
      char *device) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1795,1
    - Dst: op_phase_on
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1812,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1816,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1820,1
    - Dst: remove_required_device
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1797,1
    - Dst: request_peer_fencing
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1828,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1831,1
    - Dst: finalize_op
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1834,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - op
    - device
    - msg
    argTypes:
    - remote_fencing_op_t*
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1836
      start: 1784
    functionDepth: 0
    functionLinenumber: 1784
    functionLinenumberEnd: 1836
    functionName: advance_topology_device_in_level
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - op_phase_on
    - pcmk__set_result
    - finalize_op
    - request_peer_fencing
    - pcmk__str_eq
    - remove_required_device
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void advance_topology_device_in_level(remote_fencing_op_t *op,
      const char *device, xmlNode *msg) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2185,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2200,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2193,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2188,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2195,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2203,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2208,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2211,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2213,1
    - Dst: add_required_device
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2215,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2222,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2224,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 7
    argNames:
    - xml
    - peer
    - device
    - action
    - op
    - phase
    - props
    argTypes:
    - xmlNode*
    - char*
    - char*
    - char*
    - remote_fencing_op_t*
    - enum st_remap_phase
    - device_properties_t*
    constantsTouched: []
    func_position:
      end: 2227
      start: 2179
    functionDepth: 0
    functionLinenumber: 2179
    functionLinenumberEnd: 2227
    functionName: parse_action_specific
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - add_required_device
    - pcmk__str_eq
    - pcmk__xe_attr_is_true
    - crm_trace
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'static void parse_action_specific(const xmlNode *xml, const char *peer,
      const char *device, const char *action, remote_fencing_op_t *op, enum st_remap_phase
      phase, device_properties_t *props) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1407,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1420,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1416,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1417,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1414,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1424,1
    - Dst: grab_peer_device
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1426,1
    - Dst: count_peer_devices
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1431,1
    - Dst: fenced_support_flag
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1432,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1434,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 3
    argNames:
    - device
    - op
    - options
    argTypes:
    - char*
    - remote_fencing_op_t*
    - enum find_best_peer_options
    constantsTouched: []
    func_position:
      end: 1440
      start: 1401
    functionDepth: 0
    functionLinenumber: 1401
    functionLinenumberEnd: 1440
    functionName: find_best_peer
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - grab_peer_device
    - fenced_support_flag
    - pcmk__plural_s
    - pcmk__str_eq
    - count_peer_devices
    - pcmk_is_set
    - crm_trace
    linkageType: ''
    returnType: peer_device_info_t*
    signature: 'static peer_device_info_t *find_best_peer(const char *device, remote_fencing_op_t
      * op, enum find_best_peer_options options) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: node_does_watchdog_fencing
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1841,1
    - Dst: QB_MIN
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1842,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1844,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1846,1
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1850,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1852,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1856,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - remote_fencing_op_t*
    constantsTouched: []
    func_position:
      end: 1860
      start: 1838
    functionDepth: 0
    functionLinenumber: 1838
    functionLinenumberEnd: 1860
    functionName: check_watchdog_fencing_and_wait
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_notice
    - QB_MIN
    - node_does_watchdog_fencing
    - pcmk__readable_interval
    - g_source_remove
    - pcmk__create_timer
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean check_watchdog_fencing_and_wait(remote_fencing_op_t
      * op) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2604,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2612,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2621,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2614,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2613,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2627,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 3
    argNames:
    - tolerance
    - target
    - action
    argTypes:
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2632
      start: 2600
    functionDepth: 0
    functionLinenumber: 2600
    functionLinenumberEnd: 2632
    functionName: stonith_check_fence_tolerance
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - strcmp
    - time
    - crm_notice
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean stonith_check_fence_tolerance(int tolerance, const char *target,
      const char *action) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_device_timeout
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:1600,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 1603
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1603
    functionName: add_device_timeout
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - get_device_timeout
    linkageType: ''
    returnType: void
    signature: 'static void add_device_timeout(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:142,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 146
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 146
    functionName: count_peer_device
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: void
    signature: 'static void count_peer_device(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:391,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:394,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:395,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:396,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:393,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:397,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:398,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:399,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:400,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - parent
    - op
    argTypes:
    - xmlNode*
    - remote_fencing_op_t*
    constantsTouched: []
    func_position:
      end: 403
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 403
    functionName: fencing_result2xml
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - crm_xml_add_int
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *fencing_result2xml(xmlNode *parent, const remote_fencing_op_t
      *op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gconstpointer
    - gconstpointer
    constantsTouched: []
    func_position:
      end: 2118
      start: 2111
    functionDepth: 0
    functionLinenumber: 2111
    functionLinenumberEnd: 2118
    functionName: sort_peers
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gint
    signature: 'static gint sort_peers(gconstpointer a, gconstpointer b) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_topology_for_host
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2136,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2152,1
    - Dst: find_peer_device
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2155,1
    - Dst: pcmk__is_fencing_action
      Src: /src/pacemaker/daemons/fenced/fenced_remote.c:2140,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 27
    argCount: 1
    argNames:
    - op
    argTypes:
    - remote_fencing_op_t*
    constantsTouched: []
    func_position:
      end: 2165
      start: 2126
    functionDepth: 0
    functionLinenumber: 2126
    functionLinenumberEnd: 2165
    functionName: all_topology_devices_found
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_remote.c
    functionUses: []
    functionsReached:
    - find_topology_for_host
    - pcmk__is_fencing_action
    - pcmk__str_eq
    - find_peer_device
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean all_topology_devices_found(const remote_fencing_op_t
      *op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:46,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:63,1
    - Dst: g_string_sized_new
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:54,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:55,1
    - Dst: g_string_free
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:65,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - node
    - name
    - value
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 67
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 67
    functionName: node_has_attr
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_cib.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__xpath_find_one
    - g_string_sized_new
    - g_string_free
    - pcmk__g_strcat
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean node_has_attr(const char *node, const char *name, const char
      *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:133,1
    - Dst: free_topology_list
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:134,1
    - Dst: register_fencing_topology
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:139,1
    - Dst: pcmk__xpath_search
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:138,1
    - Dst: init_topology_list
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:135,1
    - Dst: xmlXPathFreeObject
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 142
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 142
    functionName: fencing_topology_init
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_cib.c
    functionUses: []
    functionsReached:
    - register_fencing_topology
    - free_topology_list
    - xmlXPathFreeObject
    - init_topology_list
    - pcmk__xpath_search
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void fencing_topology_init(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: device_is_dirty
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_cib.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean device_is_dirty(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:222,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:223,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:225,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:224,1
    - Dst: fenced_foreach_device
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:227,1
    - Dst: g_list_free_full
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:232,1
    - Dst: fenced_scheduler_run
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:235,1
    - Dst: fenced_foreach_device_remove
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 238
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 238
    functionName: cib_devices_update
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_cib.c
    functionUses: []
    functionsReached:
    - fenced_scheduler_run
    - g_list_free_full
    - fenced_foreach_device
    - crm_element_value
    - crm_info
    - fenced_foreach_device_remove
    linkageType: ''
    returnType: void
    signature: 'static void cib_devices_update(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: stonith_device_remove
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:292,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:318,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:255,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:249,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:256,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:260,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:262,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:267,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:268,1
    - Dst: strchr
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:276,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:291,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:270,1
    - Dst: strrchr
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:306,1
    - Dst: cib_devices_update
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:315,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:304,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:247,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:251,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:252,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:278,1
    - Dst: strchr
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:284,1
    - Dst: strndup
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:289,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:280,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:297,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:302,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:303,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:308,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:316,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:314,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    argCount: 1
    argNames:
    - patchset
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 320
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 320
    functionName: update_cib_stonith_devices
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_cib.c
    functionUses: []
    functionsReached:
    - crm_trace
    - pcmk__xe_first_child
    - CRM_LOG_ASSERT
    - crm_strdup_printf
    - pcmk__str_eq
    - strchr
    - strndup
    - strrchr
    - crm_info
    - pcmk__str_copy
    - cib_devices_update
    - free
    - stonith_device_remove
    - pcmk__xe_next
    - crm_element_value
    - pcmk__assert
    - strstr
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void update_cib_stonith_devices(const xmlNode *patchset) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:370,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:372,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:374,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:376,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 380
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 380
    functionName: fenced_query_cib
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_cib.c
    functionUses: []
    functionsReached:
    - crm_trace
    - pcmk_rc_str
    - pcmk__assert
    - crm_err
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int fenced_query_cib(void) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:519,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:524,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:523,1
    - Dst: update_fencing_topology
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:548,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:497,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:486,1
    - Dst: xml_apply_patchset
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:506,1
    - Dst: update_cib_stonith_devices
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:549,1
    - Dst: pcmk__refresh_node_caches_from_cib
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:536,1
    - Dst: update_stonith_watchdog_timeout_ms
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:537,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:482,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:502,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:518,1
    - Dst: fencing_topology_init
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:544,1
    - Dst: cib_devices_update
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:545,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:504,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:518,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:523,1
    - Dst: fenced_query_cib
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:530,1
    - Dst: watchdog_device_update
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:552,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 2
    argNames:
    - event
    - msg
    argTypes:
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 553
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 553
    functionName: update_cib_cache_cb
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_cib.c
    functionUses: []
    functionsReached:
    - fenced_query_cib
    - crm_trace
    - update_cib_stonith_devices
    - pcmk__xe_first_child
    - cib_devices_update
    - fencing_topology_init
    - crm_notice
    - pcmk__refresh_node_caches_from_cib
    - pcmk__xml_free
    - update_fencing_topology
    - watchdog_device_update
    - update_stonith_watchdog_timeout_ms
    - crm_warn
    - pcmk_strerror
    - xml_apply_patchset
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'static void update_cib_cache_cb(const char *event, xmlNode * msg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:595,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 599
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 599
    functionName: fenced_cib_cleanup
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_cib.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'void fenced_cib_cleanup(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:156,1
    - Dst: crm_get_msec
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:163,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:160,1
    - Dst: pcmk__auto_stonith_watchdog_timeout
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:167,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - cib
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 171
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 171
    functionName: update_stonith_watchdog_timeout_ms
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_cib.c
    functionUses: []
    functionsReached:
    - pcmk__xpath_find_one
    - crm_get_msec
    - pcmk__auto_stonith_watchdog_timeout
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void update_stonith_watchdog_timeout_ms(xmlNode *cib) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:76,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:82,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:79,1
    - Dst: stonith_level_key
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:78,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:81,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:83,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:84,1
    - Dst: fenced_unregister_level
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:86,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:88,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - match
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 90
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 90
    functionName: remove_topology_level
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_cib.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - stonith_level_key
    - fenced_unregister_level
    - CRM_CHECK
    - crm_xml_add
    - free
    - pcmk__xml_free
    - crm_xml_add_int
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'static void remove_topology_level(xmlNode *match) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fenced_has_watchdog_device
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:326,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:344,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:347,1
    - Dst: fenced_device_register
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:343,1
    - Dst: create_device_registration_xml
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:334,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:348,1
    - Dst: stonith_shutdown
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:349,1
    - Dst: fenced_has_watchdog_device
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:353,1
    - Dst: stonith_device_remove
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:355,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 357
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 357
    functionName: watchdog_device_update
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_cib.c
    functionUses: []
    functionsReached:
    - fenced_has_watchdog_device
    - fenced_device_register
    - pcmk__xml_free
    - stonith_device_remove
    - create_device_registration_xml
    - pcmk_rc_str
    - crm_crit
    - stonith_shutdown
    linkageType: ''
    returnType: void
    signature: 'static void watchdog_device_update(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:385,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:387,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:404,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:446,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:456,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:398,1
    - Dst: xml_patch_versions
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:402,1
    - Dst: pcmk__xe_next
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:405,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:407,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:433,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:423,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:414,1
    - Dst: fencing_topology_init
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:451,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:394,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:408,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:419,1
    - Dst: fenced_register_level
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:431,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:430,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:448,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:455,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:462,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:469,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:396,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:416,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:434,1
    - Dst: fencing_topology_init
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:426,1
    - Dst: remove_topology_level
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:439,1
    - Dst: fenced_register_level
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:440,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:458,1
    - Dst: fencing_topology_init
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:465,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 2
    argNames:
    - event
    - msg
    argTypes:
    - char*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 472
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 472
    functionName: update_fencing_topology
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_cib.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_trace
    - remove_topology_level
    - pcmk__xe_first_child
    - strcmp
    - crm_info
    - fencing_topology_init
    - fenced_register_level
    - pcmk__str_any_of
    - pcmk__xe_next
    - crm_element_value
    - crm_warn
    - strstr
    - xml_patch_versions
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'static void update_fencing_topology(const char *event, xmlNode *msg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:558,1
    - Dst: fencing_topology_init
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:565,1
    - Dst: update_stonith_watchdog_timeout_ms
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:563,1
    - Dst: pcmk__refresh_node_caches_from_cib
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:562,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:560,1
    - Dst: cib_devices_update
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:566,1
    - Dst: watchdog_device_update
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:567,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - msg
    - call_id
    - rc
    - output
    - user_data
    argTypes:
    - xmlNode*
    - int
    - int
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 568
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 568
    functionName: init_cib_cache_cb
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_cib.c
    functionUses: []
    functionsReached:
    - pcmk__xml_copy
    - cib_devices_update
    - fencing_topology_init
    - pcmk__refresh_node_caches_from_cib
    - watchdog_device_update
    - update_stonith_watchdog_timeout_ms
    - crm_info
    linkageType: ''
    returnType: void
    signature: 'static void init_cib_cache_cb(xmlNode * msg, int call_id, int rc,
      xmlNode * output, void *user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cib_new
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:606,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:608,1
    - Dst: sleep
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:613,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:618,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:618,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:626,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:634,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 635
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 635
    functionName: setup_cib
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_cib.c
    functionUses: []
    functionsReached:
    - sleep
    - crm_info
    - cib_new
    - pcmk_strerror
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'void setup_cib(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_num_results
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:95,1
    - Dst: pcmk__xpath_result
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:98,1
    - Dst: remove_topology_level
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:103,1
    - Dst: fenced_register_level
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - xpathObj
    argTypes:
    - xmlXPathObjectPtr
    constantsTouched: []
    func_position:
      end: 106
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 106
    functionName: register_fencing_topology
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_cib.c
    functionUses: []
    functionsReached:
    - remove_topology_level
    - pcmk__xpath_result
    - fenced_register_level
    - pcmk__xpath_num_results
    linkageType: ''
    returnType: void
    signature: 'static void register_fencing_topology(xmlXPathObjectPtr xpathObj) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:189,1
    - Dst: fenced_device_set_flags
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 192
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 192
    functionName: mark_dirty_if_cib_registered
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_cib.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - fenced_device_set_flags
    linkageType: ''
    returnType: void
    signature: 'static void mark_dirty_if_cib_registered(gpointer key, gpointer value,
      gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:574,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:577,1
    - Dst: stonith_shutdown
      Src: /src/pacemaker/daemons/fenced/fenced_cib.c:582,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 583
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 583
    functionName: cib_connection_destroy
    functionSourceFile: /src/pacemaker/daemons/fenced/fenced_cib.c
    functionUses: []
    functionsReached:
    - crm_info
    - crm_crit
    - stonith_shutdown
    linkageType: ''
    returnType: void
    signature: 'static void cib_connection_destroy(gpointer user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:291,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:294,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:297,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:300,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:303,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 308
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 308
    functionName: fenced_parse_notify_flag
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: enum fenced_notify_flags
    signature: 'enum fenced_notify_flags fenced_parse_notify_flag(const char *type) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:386,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:390,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:391,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:392,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:388,1
    - Dst: stonith__xe_set_result
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:393,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:396,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:398,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:401,1
    - Dst: pcmk__foreach_ipc_client
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:402,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:403,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:404,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - type
    - result
    - data
    argTypes:
    - char*
    - pcmk__action_result_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 405
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 405
    functionName: fenced_send_notification
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__foreach_ipc_client
    - pcmk__xml_copy
    - CRM_LOG_ASSERT
    - crm_xml_add
    - stonith__xe_set_result
    - pcmk__xml_free
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void fenced_send_notification(const char *type, const pcmk__action_result_t
      *result, xmlNode *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fenced_cib_cleanup
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:461,1
    - Dst: pcmk__client_cleanup
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:467,1
    - Dst: qb_ipcs_destroy
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:463,1
    - Dst: free_stonith_remote_op_list
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:468,1
    - Dst: pcmk__cluster_destroy_node_caches
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:466,1
    - Dst: free_topology_list
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:469,1
    - Dst: fenced_free_device_table
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:470,1
    - Dst: free_metadata_cache
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:471,1
    - Dst: fenced_unregister_handlers
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 473
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 473
    functionName: stonith_cleanup
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - free_metadata_cache
    - free_stonith_remote_op_list
    - free_topology_list
    - fenced_free_device_table
    - qb_ipcs_destroy
    - pcmk__client_cleanup
    - fenced_unregister_handlers
    - pcmk__cluster_destroy_node_caches
    - fenced_cib_cleanup
    linkageType: ''
    returnType: void
    signature: 'static void stonith_cleanup(void) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:564,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:570,1
    - Dst: pcmk__add_logfiles
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:603,1
    - Dst: pcmk__connect_generic_ipc
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:619,1
    - Dst: pcmk_cpg_set_confchg_fn
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:650,1
    - Dst: pcmk_cluster_connect
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:656,1
    - Dst: setup_cib
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:664,1
    - Dst: init_topology_list
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:668,1
    - Dst: pcmk__serve_fenced_ipc
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:670,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:694,1
    - Dst: fenced_set_local_node
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:661,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:565,1
    - Dst: crm_log_preinit
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:568,1
    - Dst: build_arg_context
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:566,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:576,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:608,1
    - Dst: g_strv_length
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:590,1
    - Dst: crm_ipc_close
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:621,1
    - Dst: crm_ipc_destroy
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:628,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:632,1
    - Dst: pcmk_cluster_set_destroy_fn
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:648,1
    - Dst: pcmk_cpg_set_deliver_fn
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:649,1
    - Dst: g_main_loop_run
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:675,1
    - Dst: fenced_scheduler_cleanup
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:685,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:695,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:674,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:687,1
    - Dst: g_strfreev
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:681,1
    - Dst: g_strfreev
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:678,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:571,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:591,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:597,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:596,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:623,1
    - Dst: fenced_scheduler_init
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:636,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:639,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:640,1
    - Dst: pcmk_cluster_new
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:644,1
    - Dst: pcmk__cluster_set_status_callback
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:654,1
    - Dst: fenced_init_device_table
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:667,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:691,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:579,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:581,1
    - Dst: crm_ipc_new
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:610,1
    - Dst: crm_log_init
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:605,1
    - Dst: fencer_metadata
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:593,1
    - Dst: crm_ipc_destroy
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:622,1
    - Dst: pcmk__cluster_init_node_caches
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:634,1
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:647,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:658,1
    - Dst: g_main_loop_new
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:673,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:679,1
    - Dst: stonith_cleanup
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:683,1
    - Dst: pcmk_cluster_free
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:684,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 97
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 696
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 696
    functionName: main
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - crm_ipc_destroy
    - crm_ipc_new
    - pcmk__register_formats
    - pcmk__cluster_init_node_caches
    - crm_exit
    - pcmk_cluster_connect
    - crm_notice
    - crm_log_preinit
    - build_arg_context
    - stonith_cleanup
    - pcmk__add_logfiles
    - fenced_scheduler_init
    - pcmk_rc_str
    - fenced_set_local_node
    - pcmk__connect_generic_ipc
    - crm_crit
    - pcmk__cmdline_preproc
    - crm_ipc_close
    - g_strv_length
    - setup_cib
    - pcmk_cluster_free
    - pcmk__unregister_formats
    - fenced_init_device_table
    - fencer_metadata
    - pcmk__str_eq
    - crm_log_init
    - pcmk__output_and_clear_error
    - fenced_scheduler_cleanup
    - init_topology_list
    - pcmk_cpg_set_deliver_fn
    - pcmk_cpg_set_confchg_fn
    - pcmk__output_new
    - g_strfreev
    - g_main_loop_new
    - pcmk_cluster_set_destroy_fn
    - pcmk_get_cluster_layer
    - pcmk__cluster_set_status_callback
    - g_set_error
    - mainloop_add_signal
    - g_main_loop_run
    - pcmk__output_free
    - pcmk__new_common_args
    - pcmk_cluster_new
    - pcmk__serve_fenced_ipc
    - pcmk__free_arg_context
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:262,1
    - Dst: pcmk__ipc_send_xml
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:269,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:271,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:272,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:263,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:274,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:275,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:276,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:276,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - notify_src
    - client
    - call_options
    argTypes:
    - xmlNode*
    - pcmk__client_t*
    - int
    constantsTouched: []
    func_position:
      end: 278
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 278
    functionName: do_local_reply
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - CRM_LOG_ASSERT
    - pcmk_rc_str
    - pcmk_is_set
    - pcmk__ipc_send_xml
    - crm_warn
    - crm_trace
    - pcmk__client_name
    linkageType: ''
    returnType: void
    signature: 'void do_local_reply(const xmlNode *notify_src, pcmk__client_t *client,
      int call_options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:185,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:191,1
    - Dst: pcmk__free_client
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 196
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 196
    functionName: st_ipc_closed
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - pcmk__find_client
    - pcmk__free_client
    - crm_trace
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t st_ipc_closed(qb_ipcs_connection_t * c) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cpg_message_data
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:226,1
    - Dst: pcmk__xml_parse
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:232,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:238,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:235,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:234,1
    - Dst: stonith_peer_callback
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:239,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:241,1
    - Dst: free
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:242,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 6
    argNames:
    - handle
    - groupName
    - nodeid
    - pid
    - msg
    - msg_len
    argTypes:
    - cpg_handle_t
    - struct cpg_name*
    - uint32_t
    - uint32_t
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 243
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 243
    functionName: handle_cpg_message
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - crm_xml_add
    - stonith_peer_callback
    - free
    - pcmk__xml_free
    - pcmk__xml_parse
    - pcmk__cpg_message_data
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void handle_cpg_message(cpg_handle_t handle, const struct cpg_name
      *groupName, uint32_t nodeid, uint32_t pid, void *msg, size_t msg_len) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:318,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:322,1
    - Dst: crm_log_xml_err
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:322,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:319,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:321,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:325,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:329,1
    - Dst: fenced_parse_notify_flag
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:329,1
    - Dst: pcmk__ipc_send_xml
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:330,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:334,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:336,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:339,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:338,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:335,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 342
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 342
    functionName: stonith_notify_client
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - pcmk__ipc_send_xml
    - pcmk_rc_str
    - pcmk_is_set
    - crm_element_value
    - fenced_parse_notify_flag
    - crm_warn
    - crm_log_xml_err
    - crm_trace
    - pcmk__client_name
    linkageType: ''
    returnType: void
    signature: 'static void stonith_notify_client(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: N_
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:523,1
    - Dst: pcmk__daemon_metadata
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:529,1
    - Dst: N_
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:525,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 531
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 531
    functionName: fencer_metadata
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - N_
    - pcmk__daemon_metadata
    linkageType: ''
    returnType: int
    signature: 'static int fencer_metadata(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:201,1
    - Dst: st_ipc_closed
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: st_ipc_destroy
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - st_ipc_closed
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void st_ipc_destroy(qb_ipcs_connection_t * c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:248,1
    - Dst: stonith_shutdown
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 250
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 250
    functionName: stonith_peer_cs_destroy
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - crm_crit
    - stonith_shutdown
    linkageType: ''
    returnType: void
    signature: 'static void stonith_peer_cs_destroy(gpointer user_data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_client_by_id
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:354,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:360,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:362,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:359,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:361,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:364,1
    - Dst: pcmk__ipc_send_xml
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:367,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:370,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - client_id
    - call_id
    - timeout
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 371
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 371
    functionName: do_stonith_async_timeout_update
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__find_client_by_id
    - crm_xml_add
    - pcmk__xml_free
    - crm_xml_add_int
    - pcmk__ipc_send_xml
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'void do_stonith_async_timeout_update(const char *client_id, const
      char *call_id, int timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:549,1
    - Dst: pcmk__add_main_args
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:550,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 552
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 552
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - pcmk__add_main_args
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:98,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:120,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:135,1
    - Dst: fenced_get_local_node
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:141,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:141,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:149,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:157,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:166,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:177,1
    - Dst: stonith_command
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:175,1
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:93,1
    - Dst: g_byte_array_free
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:113,1
    - Dst: pcmk__ipc_msg_append
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:102,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:120,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:140,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:140,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:136,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:138,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:144,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:158,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:162,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:172,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:174,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:161,1
    - Dst: g_byte_array_free
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:123,1
    - Dst: pcmk__ipc_send_ack
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:131,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:137,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:139,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:151,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:164,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:165,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:170,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:171,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:171,1
    - Dst: fenced_get_local_node
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:172,1
    - Dst: pcmk__client_data2xml
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:112,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:143,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:151,1
    - Dst: pcmk__xe_get_flags
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:154,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:165,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 67
    argCount: 3
    argNames:
    - qbc
    - data
    - size
    argTypes:
    - qb_ipcs_connection_t*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 179
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 179
    functionName: st_ipc_dispatch
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - stonith_command
    - pcmk__find_client
    - pcmk__client_data2xml
    - crm_log_xml_trace
    - pcmk__s
    - crm_strdup_printf
    - pcmk__ipc_send_ack
    - pcmk__xe_get_flags
    - pcmk__cluster_send_message
    - g_byte_array_free
    - pcmk_is_set
    - crm_element_value
    - pcmk_rc_str
    - pcmk__assert
    - crm_err
    - pcmk__str_eq
    - crm_warn
    - crm_info
    - crm_trace
    - CRM_LOG_ASSERT
    - crm_xml_add
    - pcmk__xml_free
    - fenced_get_local_node
    - pcmk__ipc_msg_append
    - pcmk__client_name
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t st_ipc_dispatch(qb_ipcs_connection_t * qbc, void *data,
      size_t size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:496,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:504,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:501,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:506,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:503,1
    - Dst: pcmk__cluster_send_message
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:508,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:510,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - type
    - node
    - data
    argTypes:
    - enum pcmk__node_update
    - pcmk__node_status_t*
    - void*
    constantsTouched: []
    func_position:
      end: 512
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 512
    functionName: st_peer_update_callback
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_debug
    - crm_xml_add
    - pcmk__cluster_send_message
    - pcmk_is_set
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'static void st_peer_update_callback(enum pcmk__node_update type, pcmk__node_status_t
      *node, const void *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:74,1
    - Dst: pcmk__new_client
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:79,1
    - Dst: pcmk__client_pid
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - c
    - uid
    - gid
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 83
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 83
    functionName: st_ipc_accept
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - pcmk__client_pid
    - crm_info
    - pcmk__new_client
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t st_ipc_accept(qb_ipcs_connection_t * c, uid_t uid,
      gid_t gid) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:208,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:211,1
    - Dst: stonith_command
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:216,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:209,1
    - Dst: crm_log_xml_trace
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:215,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - msg
    - private_data
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 217
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 217
    functionName: stonith_peer_callback
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - crm_log_xml_trace
    - stonith_command
    - pcmk__str_eq
    - crm_element_value
    linkageType: ''
    returnType: void
    signature: 'static void stonith_peer_callback(xmlNode * msg, void *private_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_in_list
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 446
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 446
    functionName: node_does_watchdog_fencing
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - pcmk__str_in_list
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean node_does_watchdog_fencing(const char *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:451,1
    - Dst: pcmk__ipc_client_count
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:451,1
    - Dst: g_main_loop_quit
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:454,1
    - Dst: g_main_loop_is_running
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - nsig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 456
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 456
    functionName: stonith_shutdown
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - crm_info
    - g_main_loop_is_running
    - pcmk__ipc_client_count
    - g_main_loop_quit
    linkageType: ''
    returnType: void
    signature: 'void stonith_shutdown(int nsig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:423,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:425,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:428,1
    - Dst: fenced_send_notification
      Src: /src/pacemaker/daemons/fenced/pacemaker-fenced.c:427,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 3
    argNames:
    - op
    - result
    - desc
    argTypes:
    - char*
    - pcmk__action_result_t*
    - char*
    constantsTouched: []
    func_position:
      end: 429
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 429
    functionName: fenced_send_config_notification
    functionSourceFile: /src/pacemaker/daemons/fenced/pacemaker-fenced.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - fenced_send_notification
    - crm_xml_add
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'void fenced_send_config_notification(const char *op, const pcmk__action_result_t
      *result, const char *desc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:39,1
    - Dst: corosync_cfg_replyto_shutdown
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - h
    - flags
    argTypes:
    - corosync_cfg_handle_t
    - corosync_cfg_shutdown_flags_t
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: cfg_shutdown_callback
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c
    functionUses: []
    functionsReached:
    - crm_info
    - corosync_cfg_replyto_shutdown
    linkageType: ''
    returnType: void
    signature: 'static void cfg_shutdown_callback(corosync_cfg_handle_t h, corosync_cfg_shutdown_flags_t
      flags) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cluster_connect_cfg
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:81,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:84,1
    - Dst: restart_cluster_subdaemons
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:86,1
    - Dst: pacemakerd_read_config
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:85,1
    - Dst: mainloop_timer_del
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:82,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 97
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 97
    functionName: cluster_reconnect_cb
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c
    functionUses: []
    functionsReached:
    - cluster_connect_cfg
    - restart_cluster_subdaemons
    - pacemakerd_read_config
    - crm_notice
    - crm_info
    - mainloop_timer_del
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean cluster_reconnect_cb(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: corosync_cfg_dispatch
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: pcmk_cfg_dispatch
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c
    functionUses: []
    functionsReached:
    - corosync_cfg_dispatch
    linkageType: ''
    returnType: int
    signature: 'static int pcmk_cfg_dispatch(gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_cfg
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:114,1
    - Dst: mainloop_timer_del
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: cluster_disconnect_cfg
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c
    functionUses: []
    functionsReached:
    - close_cfg
    - mainloop_timer_del
    linkageType: ''
    returnType: void
    signature: 'void cluster_disconnect_cfg(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: corosync_cfg_initialize
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:150,1
    - Dst: cs_strerror
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:161,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:174,1
    - Dst: corosync_cfg_trackstart
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:190,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:182,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:153,1
    - Dst: corosync_cfg_fd_get
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:158,1
    - Dst: crm_ipc_is_authentic_process
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:166,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:186,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:192,1
    - Dst: mainloop_add_fd
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:198,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:160,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:168,1
    - Dst: PCMK__SPECIAL_PID_AS_0
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:170,1
    - Dst: strerror
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:175,1
    - Dst: cs_strerror
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:183,1
    - Dst: cs_repeat
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:180,1
    - Dst: cs_repeat
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:150,1
    - Dst: cs_strerror
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:154,1
    - Dst: corosync_cfg_local_get
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:180,1
    - Dst: cs_repeat
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:190,1
    - Dst: cs_strerror
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:193,1
    - Dst: corosync_cfg_finalize
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:202,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 204
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 204
    functionName: cluster_connect_cfg
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c
    functionUses: []
    functionsReached:
    - PCMK__SPECIAL_PID_AS_0
    - crm_debug
    - cs_strerror
    - corosync_cfg_local_get
    - corosync_cfg_trackstart
    - strerror
    - corosync_cfg_initialize
    - corosync_cfg_fd_get
    - corosync_cfg_finalize
    - mainloop_add_fd
    - cs_repeat
    - crm_ipc_is_authentic_process
    - crm_crit
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean cluster_connect_cfg(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cs_repeat
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:253,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:256,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:258,1
    - Dst: cmap_get_string
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:253,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 5
    argNames:
    - unused
    - object_handle
    - key
    - value
    - fallback
    argTypes:
    - uint64_t
    - cmap_handle_t
    - char*
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 260
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 260
    functionName: get_config_opt
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c
    functionUses: []
    functionsReached:
    - pcmk__str_update
    - crm_trace
    - cs_repeat
    - cmap_get_string
    linkageType: ''
    returnType: int
    signature: 'static int get_config_opt(uint64_t unused, cmap_handle_t object_handle,
      const char *key, char **value, const char *fallback) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:103,1
    - Dst: mainloop_timer_add
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:107,1
    - Dst: corosync_cfg_finalize
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:105,1
    - Dst: mainloop_timer_start
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: cfg_connection_destroy
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c
    functionUses: []
    functionsReached:
    - crm_warn
    - mainloop_timer_add
    - mainloop_timer_start
    - corosync_cfg_finalize
    linkageType: ''
    returnType: void
    signature: 'static void cfg_connection_destroy(gpointer user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: corosync_cfg_finalize
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 76
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 76
    functionName: close_cfg
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c
    functionUses: []
    functionsReached:
    - corosync_cfg_finalize
    linkageType: ''
    returnType: void
    signature: 'static void close_cfg(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:212,1
    - Dst: corosync_cfg_try_shutdown
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:216,1
    - Dst: close_cfg
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:219,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:215,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:221,1
    - Dst: cs_strerror
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 224
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 224
    functionName: pcmkd_shutdown_corosync
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c
    functionUses: []
    functionsReached:
    - cs_strerror
    - corosync_cfg_try_shutdown
    - crm_warn
    - crm_info
    - close_cfg
    linkageType: ''
    returnType: void
    signature: 'void pcmkd_shutdown_corosync(void) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__init_cmap
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:279,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:282,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:300,1
    - Dst: PCMK__SPECIAL_PID_AS_0
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:311,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:336,1
    - Dst: get_config_opt
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:339,1
    - Dst: snprintf
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:363,1
    - Dst: cmap_set_uint8
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:364,1
    - Dst: cs_strerror
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:283,1
    - Dst: cs_strerror
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:294,1
    - Dst: cmap_finalize
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:313,1
    - Dst: cmap_finalize
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:318,1
    - Dst: crm_is_true
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:342,1
    - Dst: get_crm_log_level
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:344,1
    - Dst: free
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:352,1
    - Dst: pcmk_daemon_user
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:357,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:358,1
    - Dst: sleep
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:284,1
    - Dst: cs_strerror
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:301,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:316,1
    - Dst: pcmk_cluster_layer_text
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:323,1
    - Dst: strerror
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:317,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:309,1
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:322,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:326,1
    - Dst: set_crm_log_level
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:345,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:349,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:293,1
    - Dst: cmap_fd_get
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:298,1
    - Dst: cmap_finalize
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:302,1
    - Dst: crm_ipc_is_authentic_process
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:307,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:332,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:333,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:343,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:366,1
    - Dst: pcmk__cs_err_str
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:367,1
    - Dst: cmap_finalize
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:371,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 73
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 374
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 374
    functionName: pacemakerd_read_config
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c
    functionUses: []
    functionsReached:
    - pcmk__cs_err_str
    - free
    - crm_ipc_is_authentic_process
    - set_crm_log_level
    - PCMK__SPECIAL_PID_AS_0
    - cs_strerror
    - crm_is_true
    - get_config_opt
    - snprintf
    - pcmk_cluster_layer_text
    - crm_crit
    - pcmk__set_env_option
    - strerror
    - cmap_fd_get
    - crm_warn
    - crm_info
    - get_crm_log_level
    - sleep
    - pcmk_daemon_user
    - pcmk_get_cluster_layer
    - pcmk__env_option
    - cmap_set_uint8
    - pcmk__init_cmap
    - cmap_finalize
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean pacemakerd_read_config(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpg_model_initialize
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:233,1
    - Dst: cpg_finalize
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:241,1
    - Dst: cpg_fd_get
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 244
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 244
    functionName: pcmkd_corosync_connected
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_corosync.c
    functionUses: []
    functionsReached:
    - cpg_model_initialize
    - cpg_finalize
    - cpg_fd_get
    linkageType: ''
    returnType: bool
    signature: 'bool pcmkd_corosync_connected(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:57,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:58,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:71,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:76,1
    - Dst: pcmk__get_sbd_sync_resource_startup
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:78,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:84,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:49,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:50,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:55,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:56,1
    - Dst: pcmk__new_reply
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:62,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:88,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:44,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:61,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:64,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:75,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:47,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:50,1
    - Dst: pcmk__ipc_send_ack
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:52,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:69,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:67,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:59,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:79,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:86,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 93
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 93
    functionName: handle_ping_request
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__new_reply
    - pcmk__format_result
    - pcmk__set_result
    - pcmk__s
    - crm_xml_add_ll
    - pcmk__get_sbd_sync_resource_startup
    - pcmk__ipc_send_ack
    - crm_xml_add
    - pcmk__str_eq
    - crm_notice
    - pcmk__xml_free
    - mainloop_set_trigger
    - crm_element_value
    - strstr
    - crm_trace
    - pcmk__client_name
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_ping_request(pcmk__request_t *request) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__ipc_send_ack
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:146,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:151,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 153
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 153
    functionName: handle_unknown_request
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__format_result
    - pcmk__ipc_send_ack
    - pcmk__client_name
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_unknown_request(pcmk__request_t *request) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:182,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:191,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:187,1
    - Dst: pcmk__free_client
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 196
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 196
    functionName: pcmk_ipc_closed
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__find_client
    - pcmk__free_client
    - crm_trace
    - mainloop_set_trigger
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t pcmk_ipc_closed(qb_ipcs_connection_t * c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:201,1
    - Dst: pcmk_ipc_closed
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: pcmk_ipc_destroy
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c
    functionUses: []
    functionsReached:
    - pcmk_ipc_closed
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void pcmk_ipc_destroy(qb_ipcs_connection_t * c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:27,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:29,1
    - Dst: pcmk__ipc_send_ack
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: handle_node_cache_request
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__ipc_send_ack
    - crm_trace
    - pcmk__client_name
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_node_cache_request(pcmk__request_t *request) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__register_handlers
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 166
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 166
    functionName: pcmkd_register_handlers
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__register_handlers
    linkageType: ''
    returnType: void
    signature: 'static void pcmkd_register_handlers(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:107,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:116,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:112,1
    - Dst: pcmk__ipc_send_ack
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:109,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:115,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:117,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:118,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:120,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:121,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:122,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:126,1
    - Dst: pcmk__format_result
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:129,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:133,1
    - Dst: pcmk_shutdown
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:137,1
    - Dst: pcmk__new_reply
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:125,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:131,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - request
    argTypes:
    - pcmk__request_t*
    constantsTouched: []
    func_position:
      end: 141
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 141
    functionName: handle_shutdown_request
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__new_reply
    - pcmk__format_result
    - pcmk__set_result
    - pcmk__ipc_send_ack
    - crm_notice
    - pcmk_is_set
    - pcmk__xml_free
    - crm_xml_add_int
    - crm_element_value
    - pcmk_shutdown
    - crm_warn
    - pcmk__client_name
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *handle_shutdown_request(pcmk__request_t *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:171,1
    - Dst: pcmk__new_client
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - c
    - uid
    - gid
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 176
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 176
    functionName: pcmk_ipc_accept
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__new_client
    - crm_trace
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t pcmk_ipc_accept(qb_ipcs_connection_t * c, uid_t uid,
      gid_t gid) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__client_data2xml
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:231,1
    - Dst: g_byte_array_free
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:232,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:239,1
    - Dst: pcmk__ipc_send_ack
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:250,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:268,1
    - Dst: pcmk__request_origin
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:282,1
    - Dst: pcmk__request_origin_type
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:281,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:288,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:298,1
    - Dst: pcmk__ipc_send_xml
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:274,1
    - Dst: pcmk__process_request
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:271,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:275,1
    - Dst: pcmk__ipc_msg_append
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:221,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:215,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:239,1
    - Dst: g_byte_array_free
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:242,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:280,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:289,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:291,1
    - Dst: free
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:294,1
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:213,1
    - Dst: pcmkd_register_handlers
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:218,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:269,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:283,1
    - Dst: pcmk__reset_request
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c:295,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 3
    argNames:
    - qbc
    - data
    - size
    argTypes:
    - qb_ipcs_connection_t*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 300
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 300
    functionName: pcmk_ipc_dispatch
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_messages.c
    functionUses: []
    functionsReached:
    - pcmk__result_ok
    - pcmk__find_client
    - pcmk__client_data2xml
    - free
    - crm_strdup_printf
    - pcmk__ipc_send_ack
    - g_byte_array_free
    - pcmk__ipc_send_xml
    - pcmk_rc_str
    - pcmk__request_origin
    - crm_err
    - pcmk_exec_status_str
    - CRM_CHECK
    - pcmk__reset_request
    - pcmkd_register_handlers
    - crm_warn
    - pcmk__request_origin_type
    - crm_debug
    - pcmk__process_request
    - pcmk__xml_free
    - pcmk__ipc_msg_append
    - crm_element_value_copy
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t pcmk_ipc_dispatch(qb_ipcs_connection_t * qbc, void
      *data, size_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:132,1
    - Dst: pcmk__server_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - subdaemon
    argTypes:
    - pcmk_child_t*
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: subdaemon_path
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c
    functionUses: []
    functionsReached:
    - pcmk__server_name
    - crm_strdup_printf
    linkageType: ''
    returnType: char*
    signature: 'static inline char *subdaemon_path(pcmk_child_t *subdaemon) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PCMK__SPECIAL_PID_AS_0
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:153,1
    - Dst: child_liveness
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:154,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:156,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:208,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:196,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:207,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:213,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:221,1
    - Dst: pcmk__server_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:152,1
    - Dst: stop_child
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:172,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:173,1
    - Dst: time
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:204,1
    - Dst: time
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:188,1
    - Dst: time
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:162,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:182,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:211,1
    - Dst: pcmk_process_exit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:218,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:225,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:157,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:168,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:171,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:181,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:178,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:216,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 230
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 230
    functionName: check_next_subdaemon
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c
    functionUses: []
    functionsReached:
    - PCMK__SPECIAL_PID_AS_0
    - stop_child
    - crm_exit
    - pcmk__plural_s
    - pcmk_process_exit
    - PCMK__NELEM
    - time
    - crm_notice
    - pcmk_is_set
    - crm_err
    - pcmk__server_name
    - pcmk_rc_str
    - child_liveness
    - crm_crit
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean check_next_subdaemon(gpointer user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_child_userdata
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:252,1
    - Dst: mainloop_child_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:253,1
    - Dst: strsignal
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:259,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:257,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:265,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:266,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:270,1
    - Dst: pcmk_shutdown
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:274,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:283,1
    - Dst: pcmk__panic
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:285,1
    - Dst: free
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:288,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:296,1
    - Dst: pcmk_process_exit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:301,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:295,1
    - Dst: pcmk_shutdown
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:289,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 5
    argNames:
    - p
    - pid
    - core
    - signo
    - exitcode
    argTypes:
    - mainloop_child_t*
    - pid_t
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 302
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 302
    functionName: pcmk_child_exit
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c
    functionUses: []
    functionsReached:
    - crm_exit_str
    - pcmk__panic
    - crm_strdup_printf
    - pcmk_process_exit
    - do_crm_log
    - mainloop_child_userdata
    - mainloop_child_name
    - free
    - crm_warn
    - pcmk_shutdown
    - strsignal
    - crm_info
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void pcmk_child_exit(mainloop_child_t * p, pid_t pid, int core,
      int signo, int exitcode) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:346,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:349,1
    - Dst: pcmk__server_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:356,1
    - Dst: time
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:359,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:350,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:361,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:363,1
    - Dst: stop_child
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:372,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:374,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:380,1
    - Dst: g_main_loop_quit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:400,1
    - Dst: pcmkd_shutdown_corosync
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:405,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:387,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:407,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:396,1
    - Dst: pcmk__get_sbd_sync_resource_startup
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:394,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:403,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:391,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 411
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 411
    functionName: pcmk_shutdown_worker
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c
    functionUses: []
    functionsReached:
    - crm_debug
    - g_main_loop_quit
    - pcmkd_shutdown_corosync
    - crm_exit
    - pcmk__get_sbd_sync_resource_startup
    - PCMK__NELEM
    - time
    - crm_notice
    - pcmk_is_set
    - pcmk__server_name
    - crm_warn
    - stop_child
    - pcmk__create_timer
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean pcmk_shutdown_worker(gpointer user_data) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: child_liveness
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:714,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:755,1
    - Dst: PCMK__SPECIAL_PID_AS_0
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:775,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:789,1
    - Dst: PCMK__SPECIAL_PID_AS_0
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:765,1
    - Dst: pcmk__server_ipc_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:724,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:729,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:780,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:799,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:803,1
    - Dst: pcmk__server_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:707,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:736,1
    - Dst: PCMK__SPECIAL_PID_AS_0
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:784,1
    - Dst: pcmk__sleep_ms
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:797,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:706,1
    - Dst: crm_is_true
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:729,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:730,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:745,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:763,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:790,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:772,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 806
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 806
    functionName: find_and_track_existing_processes
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c
    functionUses: []
    functionsReached:
    - PCMK__SPECIAL_PID_AS_0
    - pcmk__server_ipc_name
    - crm_is_true
    - pcmk__sleep_ms
    - PCMK__NELEM
    - pcmk__env_option
    - crm_notice
    - pcmk__server_name
    - pcmk_rc_str
    - child_liveness
    - crm_warn
    - crm_crit
    - pcmk__create_timer
    linkageType: ''
    returnType: int
    signature: 'int find_and_track_existing_processes(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_add_trigger
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:843,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - nsig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 846
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 846
    functionName: pcmk_shutdown
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c
    functionUses: []
    functionsReached:
    - mainloop_add_trigger
    - mainloop_set_trigger
    linkageType: ''
    returnType: void
    signature: 'void pcmk_shutdown(int nsig) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_process_exit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:238,1
    - Dst: stop_child
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:244,1
    - Dst: pcmk__server_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:243,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 247
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 247
    functionName: escalate_shutdown
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c
    functionUses: []
    functionsReached:
    - pcmk_process_exit
    - pcmk__server_name
    - crm_err
    - stop_child
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean escalate_shutdown(gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmkd_corosync_connected
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 144
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 144
    functionName: pcmkd_cluster_connected
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c
    functionUses: []
    functionsReached:
    - pcmkd_corosync_connected
    linkageType: ''
    returnType: bool
    signature: 'static bool pcmkd_cluster_connected(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__server_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:307,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:322,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:314,1
    - Dst: crm_is_true
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:325,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:320,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:325,1
    - Dst: pcmk__panic
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:326,1
    - Dst: child_liveness
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:328,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:329,1
    - Dst: pcmk__server_ipc_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:330,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:333,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:332,1
    - Dst: pcmkd_cluster_connected
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:332,1
    - Dst: start_child
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:339,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:338,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 1
    argNames:
    - child
    argTypes:
    - pcmk_child_t*
    constantsTouched: []
    func_position:
      end: 341
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 341
    functionName: pcmk_process_exit
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c
    functionUses: []
    functionsReached:
    - pcmkd_cluster_connected
    - pcmk__server_ipc_name
    - crm_is_true
    - child_liveness
    - pcmk__env_option
    - pcmk_is_set
    - crm_notice
    - pcmk__server_name
    - start_child
    - pcmk__panic
    - crm_warn
    - crm_err
    - mainloop_set_trigger
    linkageType: ''
    returnType: void
    signature: 'static void pcmk_process_exit(pcmk_child_t * child) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_get_cluster_layer
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:811,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:820,1
    - Dst: start_child
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:826,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:834,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 837
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 837
    functionName: init_children_processes
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c
    functionUses: []
    functionsReached:
    - PCMK__NELEM
    - pcmk_get_cluster_layer
    - pcmk__set_env_option
    - start_child
    linkageType: ''
    returnType: gboolean
    signature: 'gboolean init_children_processes(void *user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:851,1
    - Dst: start_child
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:858,1
    - Dst: pcmk__server_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:857,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:856,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:852,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 862
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 862
    functionName: restart_cluster_subdaemons
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c
    functionUses: []
    functionsReached:
    - PCMK__NELEM
    - crm_notice
    - pcmk_is_set
    - pcmk__server_name
    - start_child
    linkageType: ''
    returnType: void
    signature: 'void restart_cluster_subdaemons(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__server_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:867,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:884,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:878,1
    - Dst: PCMK__SPECIAL_PID_AS_0
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:879,1
    - Dst: kill
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:889,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:890,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:894,1
    - Dst: strerror
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:895,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - child
    - signal
    argTypes:
    - pcmk_child_t*
    - int
    constantsTouched: []
    func_position:
      end: 899
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 899
    functionName: stop_child
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c
    functionUses: []
    functionsReached:
    - crm_debug
    - kill
    - PCMK__SPECIAL_PID_AS_0
    - strerror
    - crm_notice
    - crm_err
    - pcmk__server_name
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean stop_child(pcmk_child_t * child, int signal) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__server_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:575,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:590,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:592,1
    - Dst: pcmk_daemon_user
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:586,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:591,1
    - Dst: pcmk__server_ipc_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:594,1
    - Dst: pcmk__ipc_is_authentic_process_active
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:596,1
    - Dst: pcmk__pid_active
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:623,1
    - Dst: pcmk__pid_active
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:627,1
    - Dst: stop_child
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:642,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 62
    argCount: 1
    argNames:
    - child
    argTypes:
    - pcmk_child_t*
    constantsTouched: []
    func_position:
      end: 667
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 667
    functionName: child_liveness
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c
    functionUses: []
    functionsReached:
    - pcmk__server_ipc_name
    - pcmk__ipc_is_authentic_process_active
    - pcmk_daemon_user
    - pcmk__pid_active
    - pcmk__server_name
    - pcmk_rc_str
    - stop_child
    - crm_err
    - pcmk_legacy2rc
    linkageType: ''
    returnType: int
    signature: 'static int child_liveness(pcmk_child_t *child) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:438,1
    - Dst: crm_is_true
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:433,1
    - Dst: strstr
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:446,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:476,1
    - Dst: setsid
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:486,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:491,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:522,1
    - Dst: pcmk__close_fds_in_child
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:528,1
    - Dst: pcmk__open_devnull
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:531,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:542,1
    - Dst: strerror
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:542,1
    - Dst: pcmk__server_name
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:426,1
    - Dst: crm_is_true
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:442,1
    - Dst: strlen
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:450,1
    - Dst: crm_user_lookup
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:456,1
    - Dst: fork
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:462,1
    - Dst: mainloop_child_add
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:467,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:470,1
    - Dst: subdaemon_path
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:494,1
    - Dst: setgid
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:506,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:517,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:543,1
    - Dst: execvp
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:539,1
    - Dst: pcmk__open_devnull
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:530,1
    - Dst: free
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:540,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:427,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:457,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:463,1
    - Dst: subdaemon_path
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:497,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:507,1
    - Dst: strerror
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:508,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:515,1
    - Dst: setuid
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:521,1
    - Dst: pcmk__open_devnull
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:532,1
    - Dst: execvp
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:535,1
    - Dst: subdaemon_path
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:537,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:428,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:451,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:473,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:479,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:489,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:492,1
    - Dst: subdaemon_path
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:502,1
    - Dst: initgroups
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:514,1
    - Dst: strerror
      Src: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c:524,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 108
    argCount: 1
    argNames:
    - child
    argTypes:
    - pcmk_child_t*
    constantsTouched: []
    func_position:
      end: 546
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 546
    functionName: start_child
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pcmkd_subdaemons.c
    functionUses: []
    functionsReached:
    - fork
    - crm_exit
    - free
    - pcmk__server_name
    - strstr
    - crm_is_true
    - pcmk__s
    - pcmk_rc_str
    - pcmk__assert
    - crm_user_lookup
    - crm_err
    - crm_crit
    - execvp
    - pcmk__open_devnull
    - strerror
    - pcmk__str_copy
    - mainloop_child_add
    - crm_warn
    - crm_info
    - pcmk__close_fds_in_child
    - setuid
    - setgid
    - subdaemon_path
    - pcmk__env_option
    - strlen
    - initgroups
    - setsid
    linkageType: ''
    returnType: int
    signature: 'static int start_child(pcmk_child_t * child) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: pacemakerd_features
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pacemakerd.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int pacemakerd_features(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: pid_cb
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pacemakerd.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean pid_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_strsplit
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:64,1
    - Dst: pcmk__output_xml_create_parent
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:66,1
    - Dst: pcmk__output_create_xml_text_node
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:74,1
    - Dst: pcmk__output_xml_pop_parent
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:79,1
    - Dst: g_strfreev
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:81,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - pcmk__output_t*
    - va_list
    constantsTouched: []
    func_position:
      end: 83
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 83
    functionName: pacemakerd_features_xml
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pacemakerd.c
    functionUses: []
    functionsReached:
    - g_strsplit
    - g_strfreev
    - pcmk__output_xml_create_parent
    - pcmk__output_create_xml_text_node
    - pcmk__output_xml_pop_parent
    linkageType: ''
    returnType: int
    signature: 'static int pacemakerd_features_xml(pcmk__output_t *out, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__panic
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - nsig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: pcmk_sigquit
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pacemakerd.c
    functionUses: []
    functionsReached:
    - pcmk__panic
    linkageType: ''
    returnType: void
    signature: 'static void pcmk_sigquit(int nsig) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_daemon_user
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:163,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:171,1
    - Dst: mkdir
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:170,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:166,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:164,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:172,1
    - Dst: pacemakerd_chown
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:174,1
    - Dst: pcmk__build_path
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:178,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:181,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:182,1
    - Dst: pacemakerd_chown
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:184,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 187
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 187
    functionName: create_pcmk_dirs
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pacemakerd.c
    functionUses: []
    functionsReached:
    - pcmk_daemon_user
    - crm_exit
    - mkdir
    - pacemakerd_chown
    - pcmk__build_path
    - pcmk_rc_str
    - crm_warn
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void create_pcmk_dirs(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crm_exit_str
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:246,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 5
    argNames:
    - pacemakerd_api
    - event_type
    - status
    - event_data
    - user_data
    argTypes:
    - pcmk_ipc_api_t*
    - enum pcmk_ipc_event
    - crm_exit_t
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 254
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 254
    functionName: pacemakerd_event_cb
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pacemakerd.c
    functionUses: []
    functionsReached:
    - crm_exit_str
    linkageType: ''
    returnType: void
    signature: 'static void pacemakerd_event_cb(pcmk_ipc_api_t *pacemakerd_api, enum
      pcmk_ipc_event event_type, crm_exit_t status, void *event_data, void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - err
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: standby_cb
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pacemakerd.c
    functionUses: []
    functionsReached:
    - pcmk__set_env_option
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean standby_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:127,1
    - Dst: strsignal
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - nsig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: pcmk_ignore
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pacemakerd.c
    functionUses: []
    functionsReached:
    - strsignal
    - crm_info
    linkageType: ''
    returnType: void
    signature: 'static void pcmk_ignore(int nsig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chown
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:139,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:143,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - path
    - uid
    - gid
    argTypes:
    - char*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 145
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 145
    functionName: pacemakerd_chown
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pacemakerd.c
    functionUses: []
    functionsReached:
    - chown
    - crm_warn
    - pcmk_rc_str
    linkageType: ''
    returnType: void
    signature: 'static void pacemakerd_chown(const char *path, uid_t uid, gid_t gid) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getrlimit
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:195,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:205,1
    - Dst: geteuid
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:204,1
    - Dst: strerror
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:198,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:196,1
    - Dst: setrlimit
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:214,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:215,1
    - Dst: strerror
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:217,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:223,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:225,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 228
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 228
    functionName: remove_core_file_limit
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pacemakerd.c
    functionUses: []
    functionsReached:
    - getrlimit
    - strerror
    - setrlimit
    - crm_notice
    - crm_trace
    - geteuid
    linkageType: ''
    returnType: void
    signature: 'static void remove_core_file_limit(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:260,1
    - Dst: pcmk__add_main_args
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:261,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 263
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 263
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pacemakerd.c
    functionUses: []
    functionsReached:
    - pcmk__add_main_args
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:283,1
    - Dst: setenv
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:285,1
    - Dst: pcmk_ipc_is_connected
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:358,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:368,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:481,1
    - Dst: remove_core_file_limit
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:415,1
    - Dst: pcmk_dispatch_ipc
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:344,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:405,1
    - Dst: pcmk__locate_sbd
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:427,1
    - Dst: pacemakerd_read_config
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:396,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:442,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:319,1
    - Dst: init_children_processes
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:456,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:484,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:329,1
    - Dst: pcmk__serve_pacemakerd_ipc
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:417,1
    - Dst: g_main_loop_run
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:460,1
    - Dst: sleep
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:364,1
    - Dst: pcmk__register_messages
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:305,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:301,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:403,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:443,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:483,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:328,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:374,1
    - Dst: pcmk__get_sbd_sync_resource_startup
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:445,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:475,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:381,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:291,1
    - Dst: pcmk_ipc_is_connected
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:339,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:459,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:297,1
    - Dst: pcmk_new_ipc_api
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:326,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:337,1
    - Dst: g_main_loop_new
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:413,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:397,1
    - Dst: find_and_track_existing_processes
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:431,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:288,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:300,1
    - Dst: pcmk__connect_ipc
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:334,1
    - Dst: pcmk_ipc_name
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:337,1
    - Dst: g_main_loop_unref
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:468,1
    - Dst: mainloop_del_ipc_server
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:464,1
    - Dst: g_strfreev
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:474,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:346,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:411,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:446,1
    - Dst: cluster_disconnect_cfg
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:470,1
    - Dst: build_arg_context
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:276,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:373,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:274,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:289,1
    - Dst: crm_log_init
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:321,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:336,1
    - Dst: cluster_connect_cfg
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:421,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:407,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:451,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:360,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:292,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:324,1
    - Dst: pcmk_register_ipc_callback
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:333,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:386,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:477,1
    - Dst: create_pcmk_dirs
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:416,1
    - Dst: mainloop_add_trigger
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:448,1
    - Dst: pcmk_pacemakerd_api_shutdown
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:343,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:349,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:391,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:463,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:275,1
    - Dst: crm_log_preinit
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:287,1
    - Dst: pcmk_free_ipc_api
      Src: /src/pacemaker/daemons/pacemakerd/pacemakerd.c:380,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 148
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 485
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 485
    functionName: main
    functionSourceFile: /src/pacemaker/daemons/pacemakerd/pacemakerd.c
    functionUses: []
    functionsReached:
    - cluster_connect_cfg
    - g_option_context_parse_strv
    - pcmk__register_formats
    - crm_exit
    - find_and_track_existing_processes
    - pcmk_dispatch_ipc
    - pcmk__serve_pacemakerd_ipc
    - crm_notice
    - mainloop_add_trigger
    - remove_core_file_limit
    - pcmk_register_ipc_callback
    - pcmk_ipc_is_connected
    - pcmk_pacemakerd_api_shutdown
    - cluster_disconnect_cfg
    - pcmk__cli_init_logging
    - crm_log_preinit
    - build_arg_context
    - create_pcmk_dirs
    - pcmk__connect_ipc
    - pcmk__get_sbd_sync_resource_startup
    - pacemakerd_read_config
    - pcmk_rc_str
    - pcmk_free_ipc_api
    - crm_err
    - pcmk__cmdline_preproc
    - pcmk__set_env_option
    - setenv
    - g_main_loop_unref
    - pcmk__register_messages
    - pcmk__unregister_formats
    - pcmk__output_and_clear_error
    - crm_log_init
    - pcmk_new_ipc_api
    - pcmk__str_eq
    - crm_warn
    - crm_trace
    - mainloop_del_ipc_server
    - pcmk__output_new
    - crm_debug
    - pcmk_ipc_name
    - sleep
    - g_main_loop_new
    - g_strfreev
    - pcmk__locate_sbd
    - pcmk_rc2exitc
    - time
    - mainloop_add_signal
    - g_set_error
    - pcmk__env_option
    - g_main_loop_run
    - pcmk__output_free
    - pcmk__new_common_args
    - pcmk__free_arg_context
    - init_children_processes
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__intkey_table_remove
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - call_id
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: remove_inflight_alert
    functionSourceFile: /src/pacemaker/daemons/execd/execd_alerts.c
    functionUses: []
    functionsReached:
    - pcmk__intkey_table_remove
    linkageType: ''
    returnType: void
    signature: 'static inline void remove_inflight_alert(int call_id) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:108,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:112,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:129,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:131,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:111,1
    - Dst: xml2list
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:133,1
    - Dst: pcmk__add_alert_key_int
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:134,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:137,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:139,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:141,1
    - Dst: services_alert_create
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:143,1
    - Dst: services_action_user
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:150,1
    - Dst: services_alert_async
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:156,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:164,1
    - Dst: add_inflight_alert
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:155,1
    - Dst: services_action_free
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:166,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:163,1
    - Dst: services_action_free
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:157,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 44
    argCount: 3
    argNames:
    - client
    - id
    - request
    argTypes:
    - pcmk__client_t*
    - uint32_t
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 168
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 168
    functionName: process_lrmd_alert_exec
    functionSourceFile: /src/pacemaker/daemons/execd/execd_alerts.c
    functionUses: []
    functionsReached:
    - add_inflight_alert
    - services_action_free
    - services_action_user
    - pcmk__assert_alloc
    - services_alert_async
    - pcmk__add_alert_key_int
    - pcmk__str_copy
    - pcmk__xpath_find_one
    - free
    - services_alert_create
    - crm_element_value
    - crm_info
    - crm_element_value_int
    - xml2list
    linkageType: ''
    returnType: int
    signature: 'int process_lrmd_alert_exec(pcmk__client_t *client, uint32_t id, xmlNode
      *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__intkey_table
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:32,1
    - Dst: GINT_TO_POINTER
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:35,1
    - Dst: pcmk__intkey_table_insert
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - call_id
    - timeout
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: add_inflight_alert
    functionSourceFile: /src/pacemaker/daemons/execd/execd_alerts.c
    functionUses: []
    functionsReached:
    - GINT_TO_POINTER
    - pcmk__intkey_table_insert
    - pcmk__intkey_table
    linkageType: ''
    returnType: void
    signature: 'static inline void add_inflight_alert(int call_id, int timeout) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:54,1
    - Dst: GPOINTER_TO_INT
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:56,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:55,1
    - Dst: GPOINTER_TO_INT
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: max_inflight_timeout
    functionSourceFile: /src/pacemaker/daemons/execd/execd_alerts.c
    functionUses: []
    functionsReached:
    - GPOINTER_TO_INT
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: int
    signature: 'static int max_inflight_timeout(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:74,1
    - Dst: remove_inflight_alert
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:76,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:81,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:82,1
    - Dst: services__exit_reason
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:79,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:89,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:94,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:98,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:99,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - action
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 101
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 101
    functionName: alert_complete
    functionSourceFile: /src/pacemaker/daemons/execd/execd_alerts.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk_exec_status_str
    - CRM_CHECK
    - remove_inflight_alert
    - services__exit_reason
    - crm_notice
    - free
    linkageType: ''
    returnType: void
    signature: 'static void alert_complete(svc_action_t *action) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:174,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - remaining_timeout_ms
    argTypes:
    - guint
    constantsTouched: []
    func_position:
      end: 183
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 183
    functionName: drain_check
    functionSourceFile: /src/pacemaker/daemons/execd/execd_alerts.c
    functionUses: []
    functionsReached:
    - crm_trace
    - g_hash_table_size
    linkageType: ''
    returnType: bool
    signature: 'static bool drain_check(guint remaining_timeout_ms) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: max_inflight_timeout
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:189,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:195,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:191,1
    - Dst: pcmk_drain_main_loop
      Src: /src/pacemaker/daemons/execd/execd_alerts.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - mloop
    argTypes:
    - GMainLoop*
    constantsTouched: []
    func_position:
      end: 198
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 198
    functionName: lrmd_drain_alerts
    functionSourceFile: /src/pacemaker/daemons/execd/execd_alerts.c
    functionUses: []
    functionsReached:
    - pcmk_drain_main_loop
    - max_inflight_timeout
    - crm_trace
    - g_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: 'void lrmd_drain_alerts(GMainLoop *mloop) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__read_handshake_data
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:48,1
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:60,1
    - Dst: pcmk__tls_check_cert_expiration
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:72,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:65,1
    - Dst: pcmk__set_client_flags
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:64,1
    - Dst: pcmk__set_client_flags
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:77,1
    - Dst: notify_of_new_client
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - client
    argTypes:
    - pcmk__client_t*
    constantsTouched: []
    func_position:
      end: 82
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 82
    functionName: remoted__read_handshake_data
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_tls.c
    functionUses: []
    functionsReached:
    - pcmk__tls_check_cert_expiration
    - pcmk__set_client_flags
    - crm_notice
    - notify_of_new_client
    - pcmk__read_handshake_data
    - g_source_remove
    linkageType: ''
    returnType: int
    signature: 'static int remoted__read_handshake_data(pcmk__client_t *client) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:162,1
    - Dst: pcmk__ipc_client_count
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:169,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:163,1
    - Dst: client_disconnect_cleanup
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:170,1
    - Dst: ipc_proxy_remove_provider
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:165,1
    - Dst: pcmk__tls_get_client_sock
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:174,1
    - Dst: gnutls_bye
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:176,1
    - Dst: gnutls_deinit
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:177,1
    - Dst: close
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:179,1
    - Dst: lrmd_client_destroy
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:182,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 184
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 184
    functionName: lrmd_remote_client_destroy
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_tls.c
    functionUses: []
    functionsReached:
    - gnutls_bye
    - lrmd_client_destroy
    - client_disconnect_cleanup
    - crm_notice
    - pcmk__tls_get_client_sock
    - pcmk__ipc_client_count
    - ipc_proxy_remove_provider
    - gnutls_deinit
    - close
    - pcmk__client_name
    linkageType: ''
    returnType: void
    signature: 'static void lrmd_remote_client_destroy(gpointer user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:219,1
    - Dst: pcmk__accept_remote_connection
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:221,1
    - Dst: pcmk__new_tls_session
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:225,1
    - Dst: pcmk__new_unauth_client
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:231,1
    - Dst: close
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:227,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:232,1
    - Dst: pcmk__set_client_flags
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:233,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:237,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:240,1
    - Dst: mainloop_add_fd
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 247
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 247
    functionName: lrmd_remote_listen
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_tls.c
    functionUses: []
    functionsReached:
    - pcmk__set_client_flags
    - CRM_CHECK
    - pcmk__new_tls_session
    - pcmk__new_unauth_client
    - pcmk__assert_alloc
    - mainloop_add_fd
    - pcmk__accept_remote_connection
    - crm_info
    - close
    - pcmk__create_timer
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_remote_listen(gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lrmd__init_remote_key
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 3
    argNames:
    - session
    - username
    - key
    argTypes:
    - gnutls_session_t
    - char*
    - gnutls_datum_t*
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: lrmd_tls_server_key_cb
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_tls.c
    functionUses: []
    functionsReached:
    - lrmd__init_remote_key
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_tls_server_key_cb(gnutls_session_t session, const
      char *username, gnutls_datum_t * key) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:325,1
    - Dst: snprintf
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:331,1
    - Dst: pcmk__gaierror2rc
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:333,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:336,1
    - Dst: getaddrinfo
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:332,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:337,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - bind_name
    - port
    - res
    argTypes:
    - char*
    - int
    - struct addrinfo**
    constantsTouched: []
    func_position:
      end: 342
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 342
    functionName: get_address_info
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_tls.c
    functionUses: []
    functionsReached:
    - memset
    - getaddrinfo
    - pcmk_rc_str
    - snprintf
    - crm_err
    - pcmk__gaierror2rc
    linkageType: ''
    returnType: int
    signature: 'static int get_address_info(const char *bind_name, int port, struct
      addrinfo **res) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:92,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:107,1
    - Dst: pcmk__remote_ready
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:96,1
    - Dst: remoted__read_handshake_data
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:93,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:107,1
    - Dst: pcmk__read_available_remote_data
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:111,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:122,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:122,1
    - Dst: pcmk__remote_message_xml
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:126,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:131,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:134,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:143,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:148,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:132,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:144,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:145,1
    - Dst: process_lrmd_message
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:147,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 151
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 151
    functionName: lrmd_remote_client_msg
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_tls.c
    functionUses: []
    functionsReached:
    - pcmk__read_available_remote_data
    - crm_xml_add
    - pcmk__remote_message_xml
    - pcmk__remote_ready
    - pcmk_is_set
    - pcmk__xml_free
    - crm_xml_add_int
    - crm_element_value_copy
    - pcmk_rc_str
    - remoted__read_handshake_data
    - crm_info
    - process_lrmd_message
    - crm_trace
    - crm_element_value_int
    linkageType: ''
    returnType: int
    signature: 'static int lrmd_remote_client_msg(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:193,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:200,1
    - Dst: mainloop_del_fd
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 203
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 203
    functionName: lrmd_auth_timeout_cb
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_tls.c
    functionUses: []
    functionsReached:
    - mainloop_del_fd
    - pcmk_is_set
    - crm_err
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean lrmd_auth_timeout_cb(gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 254
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 254
    functionName: tls_server_dropped
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_tls.c
    functionUses: []
    functionsReached:
    - crm_notice
    linkageType: ''
    returnType: void
    signature: 'static void tls_server_dropped(gpointer user_data) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:274,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:277,1
    - Dst: close
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:287,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:296,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:296,1
    - Dst: bind
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:302,1
    - Dst: listen
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:309,1
    - Dst: close
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:312,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:311,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:304,1
    - Dst: close
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:297,1
    - Dst: pcmk__sockaddr2str
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:271,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:277,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:272,1
    - Dst: setsockopt
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:283,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:286,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:286,1
    - Dst: setsockopt
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:293,1
    - Dst: close
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:305,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:311,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:304,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct addrinfo*
    constantsTouched: []
    func_position:
      end: 316
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 316
    functionName: bind_and_listen
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_tls.c
    functionUses: []
    functionsReached:
    - listen
    - socket
    - crm_trace
    - bind
    - pcmk__sockaddr2str
    - pcmk_rc_str
    - crm_err
    - close
    - setsockopt
    linkageType: ''
    returnType: int
    signature: 'static int bind_and_listen(struct addrinfo *addr) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: crm_default_remote_port
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:349,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:351,1
    - Dst: pcmk__x509_enabled
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:352,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:361,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:359,1
    - Dst: pcmk__init_tls
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:364,1
    - Dst: pcmk__tls_add_psk_callback
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:372,1
    - Dst: lrmd__init_remote_key
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:379,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:380,1
    - Dst: gnutls_free
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:383,1
    - Dst: mainloop_add_fd
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:418,1
    - Dst: freeaddrinfo
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:423,1
    - Dst: bind_and_listen
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:404,1
    - Dst: get_address_info
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:386,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:420,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 425
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 425
    functionName: lrmd_init_remote_tls_server
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_tls.c
    functionUses: []
    functionsReached:
    - crm_debug
    - gnutls_free
    - CRM_CHECK
    - bind_and_listen
    - pcmk__init_tls
    - crm_default_remote_port
    - freeaddrinfo
    - get_address_info
    - lrmd__init_remote_key
    - pcmk__env_option
    - mainloop_add_fd
    - crm_warn
    - pcmk__tls_add_psk_callback
    - pcmk__x509_enabled
    linkageType: ''
    returnType: int
    signature: 'int lrmd_init_remote_tls_server(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__free_tls
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:431,1
    - Dst: close
      Src: /src/pacemaker/daemons/execd/remoted_tls.c:436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 439
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 439
    functionName: execd_stop_tls_server
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_tls.c
    functionUses: []
    functionsReached:
    - pcmk__free_tls
    - close
    linkageType: ''
    returnType: void
    signature: 'void execd_stop_tls_server(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: g_string_sized_new
      Src: /src/pacemaker/daemons/execd/execd_commands.c:214,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/daemons/execd/execd_commands.c:220,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/daemons/execd/execd_commands.c:223,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:216,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/daemons/execd/execd_commands.c:227,1
    - Dst: g_string_append_printf
      Src: /src/pacemaker/daemons/execd/execd_commands.c:231,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/execd/execd_commands.c:234,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/execd/execd_commands.c:235,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/execd/execd_commands.c:240,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/execd/execd_commands.c:244,1
    - Dst: g_string_append_c
      Src: /src/pacemaker/daemons/execd/execd_commands.c:250,1
    - Dst: g_string_free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:254,1
    - Dst: pcmk__g_strcat
      Src: /src/pacemaker/daemons/execd/execd_commands.c:247,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/daemons/execd/execd_commands.c:245,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/daemons/execd/execd_commands.c:248,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/execd/execd_commands.c:253,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - cmd
    - exec_time_ms
    - queue_time_ms
    argTypes:
    - lrmd_cmd_t*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 255
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 255
    functionName: log_finished
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk_exec_status_str
    - g_string_append_c
    - g_string_append_printf
    - pcmk__str_eq
    - do_crm_log
    - g_string_sized_new
    - g_string_free
    - pcmk__readable_interval
    - pcmk__g_strcat
    linkageType: ''
    returnType: void
    signature: 'static void log_finished(const lrmd_cmd_t *cmd, int exec_time_ms,
      int queue_time_ms) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/execd/execd_commands.c:521,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/execd_commands.c:524,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/execd/execd_commands.c:522,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:534,1
    - Dst: merge_recurring_duplicate
      Src: /src/pacemaker/daemons/execd/execd_commands.c:526,1
    - Dst: cancel_all_recurring
      Src: /src/pacemaker/daemons/execd/execd_commands.c:535,1
    - Dst: g_list_append
      Src: /src/pacemaker/daemons/execd/execd_commands.c:538,1
    - Dst: get_current_time
      Src: /src/pacemaker/daemons/execd/execd_commands.c:540,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/execd/execd_commands.c:542,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/execd/execd_commands.c:545,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - rsc
    - cmd
    argTypes:
    - lrmd_rsc_t*
    - lrmd_cmd_t*
    constantsTouched: []
    func_position:
      end: 547
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 547
    functionName: schedule_lrmd_cmd
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk__create_timer
    - CRM_CHECK
    - g_list_append
    - merge_recurring_duplicate
    - pcmk__str_eq
    - cancel_all_recurring
    - get_current_time
    - crm_trace
    - mainloop_set_trigger
    linkageType: ''
    returnType: void
    signature: 'static void schedule_lrmd_cmd(lrmd_rsc_t * rsc, lrmd_cmd_t * cmd) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/execd_commands.c:742,1
    - Dst: send_cmd_complete_notify
      Src: /src/pacemaker/daemons/execd/execd_commands.c:757,1
    - Dst: g_list_remove
      Src: /src/pacemaker/daemons/execd/execd_commands.c:764,1
    - Dst: g_list_remove
      Src: /src/pacemaker/daemons/execd/execd_commands.c:763,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/execd/execd_commands.c:747,1
    - Dst: free_lrmd_cmd
      Src: /src/pacemaker/daemons/execd/execd_commands.c:766,1
    - Dst: g_list_remove
      Src: /src/pacemaker/daemons/execd/execd_commands.c:769,1
    - Dst: free_lrmd_cmd
      Src: /src/pacemaker/daemons/execd/execd_commands.c:771,1
    - Dst: cmd_reset
      Src: /src/pacemaker/daemons/execd/execd_commands.c:774,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - cmd
    - rsc
    argTypes:
    - lrmd_cmd_t*
    - lrmd_rsc_t*
    constantsTouched: []
    func_position:
      end: 776
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 776
    functionName: cmd_finalize
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - free_lrmd_cmd
    - send_cmd_complete_notify
    - cmd_reset
    - g_list_remove
    - crm_trace
    - mainloop_set_trigger
    linkageType: ''
    returnType: void
    signature: 'static void cmd_finalize(lrmd_cmd_t * cmd, lrmd_rsc_t * rsc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:789,1
    - Dst: send_client_notify
      Src: /src/pacemaker/daemons/execd/execd_commands.c:790,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 792
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 792
    functionName: notify_one_client
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - send_client_notify
    - pcmk__str_eq
    linkageType: ''
    returnType: void
    signature: 'static void notify_one_client(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_stonith_connection
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1290,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1292,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1308,1
    - Dst: stonith_action_complete
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1295,1
    - Dst: stonith_action_complete
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1302,1
    - Dst: execd_stonith_start
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1309,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1314,1
    - Dst: execd_stonith_stop
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1315,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1317,1
    - Dst: stonith_action_complete
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1322,1
    - Dst: stonith_action_complete
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1339,1
    - Dst: execd_stonith_monitor
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1329,1
    - Dst: stonith__legacy2status
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1341,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1337,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 2
    argNames:
    - rsc
    - cmd
    argTypes:
    - lrmd_rsc_t*
    - lrmd_cmd_t*
    constantsTouched: []
    func_position:
      end: 1342
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1342
    functionName: execute_stonith_action
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - stonith__legacy2status
    - execd_stonith_stop
    - pcmk__str_eq
    - get_stonith_connection
    - execd_stonith_start
    - execd_stonith_monitor
    - stonith_action_complete
    - pcmk_strerror
    linkageType: ''
    returnType: void
    signature: 'static void execute_stonith_action(lrmd_rsc_t *rsc, lrmd_cmd_t *cmd) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1407,1
    - Dst: g_list_free_1
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1425,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1419,1
    - Dst: g_list_remove_link
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1424,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1410,1
    - Dst: get_current_time
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1428,1
    - Dst: time
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1430,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1434,1
    - Dst: g_list_append
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1440,1
    - Dst: log_execute
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1443,1
    - Dst: execute_nonstonith_action
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1448,1
    - Dst: execute_stonith_action
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1446,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1445,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 1452
      start: 1401
    functionDepth: 0
    functionLinenumber: 1401
    functionLinenumberEnd: 1452
    functionName: execute_resource_action
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - execute_stonith_action
    - CRM_CHECK
    - g_list_remove_link
    - g_list_append
    - log_execute
    - pcmk__str_eq
    - time
    - g_list_free_1
    - execute_nonstonith_action
    - get_current_time
    - crm_trace
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean execute_resource_action(gpointer user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1519,1
    - Dst: compare_version
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1524,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1521,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1522,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1525,1
    - Dst: pcmk__xe_attr_is_true
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1530,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1533,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1535,1
    - Dst: ipc_proxy_add_provider
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1538,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1552,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1567,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1568,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1571,1
    - Dst: create_lrmd_reply
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1564,1
    - Dst: LRMD_SUPPORTS_SCHEMA_XFER
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1553,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1566,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1565,1
    - Dst: remoted_request_cib_schema_files
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1554,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 4
    argNames:
    - client
    - request
    - call_id
    - reply
    argTypes:
    - pcmk__client_t*
    - xmlNode*
    - int
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 1575
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1575
    functionName: process_lrmd_signon
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - remoted_request_cib_schema_files
    - ipc_proxy_add_provider
    - LRMD_SUPPORTS_SCHEMA_XFER
    - crm_xml_add_ll
    - compare_version
    - pcmk__str_eq
    - time
    - crm_xml_add
    - pcmk__env_option
    - pcmk_is_set
    - crm_element_value
    - pcmk__xe_attr_is_true
    - create_lrmd_reply
    - crm_err
    linkageType: ''
    returnType: int
    signature: 'static int process_lrmd_signon(pcmk__client_t *client, xmlNode *request,
      int call_id, xmlNode **reply) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:262,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/execd/execd_commands.c:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - lrmd_cmd_t*
    constantsTouched: []
    func_position:
      end: 268
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 268
    functionName: log_execute
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    - do_crm_log
    linkageType: ''
    returnType: void
    signature: 'static void log_execute(lrmd_cmd_t * cmd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/execd/execd_commands.c:552,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:554,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:556,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:555,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - origin
    - rc
    - call_id
    argTypes:
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 558
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 558
    functionName: create_lrmd_reply
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - crm_xml_add_int
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *create_lrmd_reply(const char *origin, int rc, int
      call_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/execd/execd_commands.c:800,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:801,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:802,1
    - Dst: pcmk__foreach_ipc_client
      Src: /src/pacemaker/daemons/execd/execd_commands.c:803,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - new_client
    argTypes:
    - pcmk__client_t*
    constantsTouched: []
    func_position:
      end: 805
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 805
    functionName: notify_of_new_client
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - pcmk__foreach_ipc_client
    - pcmk__xml_free
    linkageType: ''
    returnType: void
    signature: 'void notify_of_new_client(pcmk__client_t *new_client) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1350,1
    - Dst: services__create_resource_action
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1357,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1352,1
    - Dst: normalize_action_name
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1359,1
    - Dst: pcmk__str_table_dup
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1355,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1364,1
    - Dst: strerror
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1365,1
    - Dst: cmd_finalize
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1366,1
    - Dst: services__copy_result
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1371,1
    - Dst: services_action_free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1372,1
    - Dst: cmd_finalize
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1373,1
    - Dst: services_action_async
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1379,1
    - Dst: services__copy_result
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1396,1
    - Dst: services_action_free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1397,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - rsc
    - cmd
    argTypes:
    - lrmd_rsc_t*
    - lrmd_cmd_t*
    constantsTouched: []
    func_position:
      end: 1399
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1399
    functionName: execute_nonstonith_action
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - normalize_action_name
    - services__copy_result
    - services_action_free
    - strerror
    - cmd_finalize
    - pcmk__str_table_dup
    - services_action_async
    - services__create_resource_action
    - pcmk__assert
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void execute_nonstonith_action(lrmd_rsc_t *rsc, lrmd_cmd_t
      *cmd) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1459,1
    - Dst: cmd_finalize
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1488,1
    - Dst: cmd_finalize
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1469,1
    - Dst: g_list_free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1474,1
    - Dst: services_action_cancel
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1495,1
    - Dst: normalize_action_name
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1496,1
    - Dst: g_list_free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1503,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1505,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1506,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1507,1
    - Dst: mainloop_destroy_trigger
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1509,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1508,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1511,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 1512
      start: 1454
    functionDepth: 0
    functionLinenumber: 1454
    functionLinenumberEnd: 1512
    functionName: free_rsc
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - normalize_action_name
    - g_list_free
    - pcmk__str_eq
    - cmd_finalize
    - free
    - mainloop_destroy_trigger
    - services_action_cancel
    linkageType: ''
    returnType: void
    signature: 'void free_rsc(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: build_rsc_from_xml
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1581,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1582,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1586,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1585,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1586,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1588,1
    - Dst: free_rsc
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1589,1
    - Dst: g_hash_table_replace
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1593,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1594,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 3
    argNames:
    - client
    - id
    - request
    argTypes:
    - pcmk__client_t*
    - uint32_t
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1596
      start: 1577
    functionDepth: 0
    functionLinenumber: 1577
    functionLinenumberEnd: 1596
    functionName: process_lrmd_rsc_register
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - pcmk__str_eq
    - free_rsc
    - crm_notice
    - build_rsc_from_xml
    - crm_info
    - g_hash_table_replace
    linkageType: ''
    returnType: int
    signature: 'static int process_lrmd_rsc_register(pcmk__client_t *client, uint32_t
      id, xmlNode *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1212,1
    - Dst: stonith__key_value_freeall
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1228,1
    - Dst: stonith__key_value_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1214,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1213,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 3
    argNames:
    - stonith_api
    - rsc
    - cmd
    argTypes:
    - stonith_t*
    - lrmd_rsc_t*
    - lrmd_cmd_t*
    constantsTouched: []
    func_position:
      end: 1230
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1230
    functionName: execd_stonith_start
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - stonith__key_value_freeall
    - g_hash_table_iter_init
    - stonith__key_value_add
    - g_hash_table_iter_next
    linkageType: ''
    returnType: int
    signature: 'static int execd_stonith_start(stonith_t *stonith_api, const lrmd_rsc_t
      *rsc, const lrmd_cmd_t *cmd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - lrmd_cmd_t*
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: cmd_original_times
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void cmd_original_times(lrmd_cmd_t * cmd) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/execd/execd_commands.c:308,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/execd/execd_commands.c:316,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/execd/execd_commands.c:312,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:314,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:318,1
    - Dst: crm_element_value_ms
      Src: /src/pacemaker/daemons/execd/execd_commands.c:319,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:321,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:322,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/execd/execd_commands.c:326,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/execd/execd_commands.c:327,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:334,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/execd/execd_commands.c:328,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/execd/execd_commands.c:336,1
    - Dst: xml2list
      Src: /src/pacemaker/daemons/execd/execd_commands.c:332,1
    - Dst: pcmk__set_flags_as
      Src: /src/pacemaker/daemons/execd/execd_commands.c:339,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/execd/execd_commands.c:334,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/execd/execd_commands.c:330,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - msg
    - client
    argTypes:
    - xmlNode*
    - pcmk__client_t*
    constantsTouched: []
    func_position:
      end: 346
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 346
    functionName: create_lrmd_cmd
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - crm_debug
    - pcmk__set_flags_as
    - g_hash_table_lookup
    - pcmk__assert_alloc
    - crm_element_value_ms
    - pcmk__str_eq
    - pcmk__str_copy
    - pcmk__xpath_find_one
    - crm_element_value_copy
    - crm_element_value_int
    - xml2list
    linkageType: ''
    returnType: lrmd_cmd_t*
    signature: 'static lrmd_cmd_t *create_lrmd_cmd(xmlNode *msg, pcmk__client_t *client) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/execd/execd_commands.c:569,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/execd_commands.c:571,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/execd_commands.c:579,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/execd/execd_commands.c:574,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/execd/execd_commands.c:580,1
    - Dst: lrmd_server_send_notify
      Src: /src/pacemaker/daemons/execd/execd_commands.c:584,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/execd_commands.c:597,1
    - Dst: do_crm_log
      Src: /src/pacemaker/daemons/execd/execd_commands.c:600,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/execd/execd_commands.c:601,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 3
    argNames:
    - key
    - value
    - user_data
    argTypes:
    - gpointer
    - gpointer
    - gpointer
    constantsTouched: []
    func_position:
      end: 602
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 602
    functionName: send_client_notify
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - do_crm_log
    - pcmk_is_set
    - pcmk_rc_str
    - lrmd_server_send_notify
    - crm_trace
    - pcmk__client_name
    linkageType: ''
    returnType: void
    signature: 'static void send_client_notify(gpointer key, gpointer value, gpointer
      user_data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/execd/execd_commands.c:814,1
    - Dst: cancel_all_recurring
      Src: /src/pacemaker/daemons/execd/execd_commands.c:819,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/execd/execd_commands.c:815,1
    - Dst: pcmk_all_flags_set
      Src: /src/pacemaker/daemons/execd/execd_commands.c:816,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - client_id
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 822
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 822
    functionName: client_disconnect_cleanup
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk_all_flags_set
    - cancel_all_recurring
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void client_disconnect_cleanup(const char *client_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - stonith_api
    - rsc
    argTypes:
    - stonith_t*
    - lrmd_rsc_t*
    constantsTouched: []
    func_position:
      end: 1252
      start: 1244
    functionDepth: 0
    functionLinenumber: 1244
    functionLinenumberEnd: 1252
    functionName: execd_stonith_stop
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static inline int execd_stonith_stop(stonith_t *stonith_api, const
      lrmd_rsc_t *rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1668,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1677,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1678,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1671,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1679,1
    - Dst: create_lrmd_cmd
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1683,1
    - Dst: schedule_lrmd_cmd
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1688,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 3
    argNames:
    - client
    - id
    - request
    argTypes:
    - pcmk__client_t*
    - uint32_t
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1691
      start: 1663
    functionDepth: 0
    functionLinenumber: 1663
    functionLinenumberEnd: 1691
    functionName: process_lrmd_rsc_exec
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - pcmk__xpath_find_one
    - schedule_lrmd_cmd
    - crm_element_value
    - create_lrmd_cmd
    - crm_info
    - g_hash_table_size
    linkageType: ''
    returnType: int
    signature: 'static int process_lrmd_rsc_exec(pcmk__client_t *client, uint32_t
      id, xmlNode *request) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1812,1
    - Dst: pcmk__s
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1820,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1814,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1819,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1817,1
    - Dst: crm_xml_add_ms
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1821,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1822,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 2
    argNames:
    - reply
    - rsc
    argTypes:
    - xmlNode*
    - lrmd_rsc_t*
    constantsTouched: []
    func_position:
      end: 1824
      start: 1809
    functionDepth: 0
    functionLinenumber: 1809
    functionLinenumberEnd: 1824
    functionName: add_recurring_op_xml
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__s
    - crm_xml_add_ms
    - crm_xml_add
    - crm_xml_add_int
    linkageType: ''
    returnType: void
    signature: 'static void add_recurring_op_xml(xmlNode *reply, lrmd_rsc_t *rsc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/execd/execd_commands.c:353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - lrmd_cmd_t*
    constantsTouched: []
    func_position:
      end: 357
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 357
    functionName: stop_recurring_timer
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: 'static void stop_recurring_timer(lrmd_cmd_t *cmd) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:633,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:653,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:657,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:659,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:663,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:667,1
    - Dst: hash2smartfield
      Src: /src/pacemaker/daemons/execd/execd_commands.c:680,1
    - Dst: send_client_notify
      Src: /src/pacemaker/daemons/execd/execd_commands.c:689,1
    - Dst: time_diff_ms
      Src: /src/pacemaker/daemons/execd/execd_commands.c:613,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/execd/execd_commands.c:631,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:636,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:638,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/daemons/execd/execd_commands.c:645,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:648,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:652,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:641,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:655,1
    - Dst: pcmk__find_client_by_id
      Src: /src/pacemaker/daemons/execd/execd_commands.c:686,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:695,1
    - Dst: crm_xml_add_ms
      Src: /src/pacemaker/daemons/execd/execd_commands.c:635,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:649,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:640,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:660,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/execd/execd_commands.c:676,1
    - Dst: time_diff_ms
      Src: /src/pacemaker/daemons/execd/execd_commands.c:612,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/execd/execd_commands.c:621,1
    - Dst: log_finished
      Src: /src/pacemaker/daemons/execd/execd_commands.c:615,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:634,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:637,1
    - Dst: crm_xml_add_ll
      Src: /src/pacemaker/daemons/execd/execd_commands.c:643,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/execd/execd_commands.c:678,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/execd/execd_commands.c:679,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/execd/execd_commands.c:684,1
    - Dst: pcmk__foreach_ipc_client
      Src: /src/pacemaker/daemons/execd/execd_commands.c:692,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - lrmd_cmd_t*
    constantsTouched: []
    func_position:
      end: 696
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 696
    functionName: send_cmd_complete_notify
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - hash2smartfield
    - pcmk__foreach_ipc_client
    - time_diff_ms
    - crm_xml_add_ms
    - crm_xml_add
    - pcmk_is_set
    - pcmk__xml_free
    - crm_xml_add_int
    - crm_xml_add_ll
    - log_finished
    - g_hash_table_iter_init
    - pcmk__find_client_by_id
    - send_client_notify
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'static void send_cmd_complete_notify(lrmd_cmd_t * cmd) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/execd_commands.c:840,1
    - Dst: time
      Src: /src/pacemaker/daemons/execd/execd_commands.c:847,1
    - Dst: resources_find_service_class
      Src: /src/pacemaker/daemons/execd/execd_commands.c:866,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/execd/execd_commands.c:890,1
    - Dst: time_diff_ms
      Src: /src/pacemaker/daemons/execd/execd_commands.c:908,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/execd/execd_commands.c:896,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:903,1
    - Dst: services__copy_result
      Src: /src/pacemaker/daemons/execd/execd_commands.c:886,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:922,1
    - Dst: cmd_original_times
      Src: /src/pacemaker/daemons/execd/execd_commands.c:950,1
    - Dst: time_diff_ms
      Src: /src/pacemaker/daemons/execd/execd_commands.c:959,1
    - Dst: QB_MIN
      Src: /src/pacemaker/daemons/execd/execd_commands.c:967,1
    - Dst: ctime
      Src: /src/pacemaker/daemons/execd/execd_commands.c:945,1
    - Dst: pcmk__readable_interval
      Src: /src/pacemaker/daemons/execd/execd_commands.c:986,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:864,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/execd/execd_commands.c:875,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/execd/execd_commands.c:911,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/execd/execd_commands.c:942,1
    - Dst: pcmk__trim
      Src: /src/pacemaker/daemons/execd/execd_commands.c:945,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/execd/execd_commands.c:973,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/daemons/execd/execd_commands.c:985,1
    - Dst: cmd_reset
      Src: /src/pacemaker/daemons/execd/execd_commands.c:990,1
    - Dst: schedule_lrmd_cmd
      Src: /src/pacemaker/daemons/execd/execd_commands.c:994,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1004,1
    - Dst: services__grab_stderr
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1014,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1000,1
    - Dst: pcmk__set_result_output
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1013,1
    - Dst: services__grab_stdout
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1013,1
    - Dst: crm_exit_str
      Src: /src/pacemaker/daemons/execd/execd_commands.c:914,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/execd/execd_commands.c:902,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/execd/execd_commands.c:946,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/execd/execd_commands.c:972,1
    - Dst: cmd_finalize
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1015,1
    - Dst: services__exit_reason
      Src: /src/pacemaker/daemons/execd/execd_commands.c:856,1
    - Dst: services_result2ocf
      Src: /src/pacemaker/daemons/execd/execd_commands.c:854,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/execd/execd_commands.c:855,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/execd/execd_commands.c:858,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:871,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/daemons/execd/execd_commands.c:876,1
    - Dst: cmd_original_times
      Src: /src/pacemaker/daemons/execd/execd_commands.c:916,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:925,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/execd/execd_commands.c:931,1
    - Dst: time
      Src: /src/pacemaker/daemons/execd/execd_commands.c:939,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/execd/execd_commands.c:981,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/execd_commands.c:977,1
    - Dst: cmd_original_times
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1008,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 129
    argCount: 1
    argNames:
    - action
    argTypes:
    - svc_action_t*
    constantsTouched: []
    func_position:
      end: 1016
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 1016
    functionName: action_complete
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - pcmk__result_ok
    - time_diff_ms
    - cmd_finalize
    - crm_notice
    - cmd_reset
    - services__grab_stderr
    - g_hash_table_lookup
    - services_result2ocf
    - crm_err
    - crm_exit_str
    - ctime
    - pcmk__str_eq
    - pcmk__strcase_any_of
    - pcmk__str_copy
    - pcmk__trim
    - schedule_lrmd_cmd
    - pcmk__str_any_of
    - crm_info
    - pcmk__readable_interval
    - services__copy_result
    - crm_debug
    - pcmk__set_result_output
    - resources_find_service_class
    - services__exit_reason
    - time
    - services__grab_stdout
    - QB_MIN
    - cmd_original_times
    linkageType: ''
    returnType: void
    signature: 'static void action_complete(svc_action_t * action) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1697,1
    - Dst: action_matches
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1717,1
    - Dst: cmd_finalize
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1719,1
    - Dst: action_matches
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1730,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1724,1
    - Dst: cmd_finalize
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1733,1
    - Dst: services_action_cancel
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1738,1
    - Dst: normalize_action_name
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1739,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 3
    argNames:
    - rsc_id
    - action
    - interval_ms
    argTypes:
    - char*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 1749
      start: 1693
    functionDepth: 0
    functionLinenumber: 1693
    functionLinenumberEnd: 1749
    functionName: cancel_op
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - normalize_action_name
    - g_hash_table_lookup
    - pcmk__str_eq
    - cmd_finalize
    - action_matches
    - services_action_cancel
    linkageType: ''
    returnType: int
    signature: 'static int cancel_op(const char *rsc_id, const char *action, guint
      interval_ms) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1836,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1848,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1841,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1838,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1846,1
    - Dst: g_hash_table_size
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1849,1
    - Dst: create_lrmd_reply
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1854,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1861,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1862,1
    - Dst: add_recurring_op_xml
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1864,1
    - Dst: add_recurring_op_xml
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1867,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 2
    argNames:
    - request
    - call_id
    argTypes:
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 1870
      start: 1826
    functionDepth: 0
    functionLinenumber: 1826
    functionLinenumberEnd: 1870
    functionName: process_lrmd_get_recurring
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - pcmk__xe_first_child
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    - crm_element_value
    - crm_info
    - create_lrmd_reply
    - add_recurring_op_xml
    - g_hash_table_size
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *process_lrmd_get_recurring(xmlNode *request, int call_id) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time_is_set
      Src: /src/pacemaker/daemons/execd/execd_commands.c:154,1
    - Dst: clock_gettime
      Src: /src/pacemaker/daemons/execd/execd_commands.c:158,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - now
    - old
    argTypes:
    - struct timespec*
    - struct timespec*
    constantsTouched: []
    func_position:
      end: 165
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 165
    functionName: time_diff_ms
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - clock_gettime
    - time_is_set
    linkageType: ''
    returnType: int
    signature: 'static int time_diff_ms(const struct timespec *now, const struct timespec
      *old) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/pacemaker/daemons/execd/execd_commands.c:131,1
    - Dst: time_is_set
      Src: /src/pacemaker/daemons/execd/execd_commands.c:132,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - t_current
    - t_orig
    argTypes:
    - struct timespec*
    - struct timespec*
    constantsTouched: []
    func_position:
      end: 135
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 135
    functionName: get_current_time
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - clock_gettime
    - time_is_set
    linkageType: ''
    returnType: void
    signature: 'static void get_current_time(struct timespec *t_current, struct timespec
      *t_orig) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stop_recurring_timer
      Src: /src/pacemaker/daemons/execd/execd_commands.c:362,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/daemons/execd/execd_commands.c:369,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:370,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/execd/execd_commands.c:367,1
    - Dst: g_source_remove
      Src: /src/pacemaker/daemons/execd/execd_commands.c:364,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:371,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:372,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:373,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:374,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:375,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:376,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - lrmd_cmd_t*
    constantsTouched: []
    func_position:
      end: 377
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 377
    functionName: free_lrmd_cmd
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - stop_recurring_timer
    - g_hash_table_destroy
    - free
    - pcmk__reset_result
    - g_source_remove
    linkageType: ''
    returnType: void
    signature: 'static void free_lrmd_cmd(lrmd_cmd_t * cmd) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/execd/execd_commands.c:413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - lrmd_cmd_t*
    constantsTouched: []
    func_position:
      end: 416
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 416
    functionName: start_recurring_timer
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk__create_timer
    linkageType: ''
    returnType: void
    signature: 'static inline void start_recurring_timer(lrmd_cmd_t *cmd) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: action_matches
      Src: /src/pacemaker/daemons/execd/execd_commands.c:447,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 2
    argNames:
    - action_list
    - cmd
    argTypes:
    - GList*
    - lrmd_cmd_t*
    constantsTouched: []
    func_position:
      end: 452
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 452
    functionName: find_duplicate_action
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - action_matches
    linkageType: ''
    returnType: lrmd_cmd_t*
    signature: 'static lrmd_cmd_t *find_duplicate_action(const GList *action_list,
      const lrmd_cmd_t *cmd) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__ipc_client_count
      Src: /src/pacemaker/daemons/execd/execd_commands.c:701,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/execd/execd_commands.c:708,1
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/execd/execd_commands.c:704,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:710,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/execd/execd_commands.c:707,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/execd/execd_commands.c:712,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:713,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:714,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:715,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:716,1
    - Dst: pcmk__foreach_ipc_client
      Src: /src/pacemaker/daemons/execd/execd_commands.c:719,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:717,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:721,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - rc
    - request
    argTypes:
    - int
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 723
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 723
    functionName: send_generic_notify
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - pcmk__xpath_find_one
    - pcmk__xml_free
    - crm_xml_add_int
    - pcmk__ipc_client_count
    - crm_element_value
    - pcmk__foreach_ipc_client
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'static void send_generic_notify(int rc, xmlNode * request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/execd/execd_commands.c:391,1
    - Dst: g_list_remove
      Src: /src/pacemaker/daemons/execd/execd_commands.c:396,1
    - Dst: g_list_append
      Src: /src/pacemaker/daemons/execd/execd_commands.c:397,1
    - Dst: get_current_time
      Src: /src/pacemaker/daemons/execd/execd_commands.c:399,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/execd/execd_commands.c:393,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/execd/execd_commands.c:401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 404
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 404
    functionName: stonith_recurring_op_helper
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - g_list_append
    - g_hash_table_lookup
    - get_current_time
    - pcmk__assert
    - g_list_remove
    - mainloop_set_trigger
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean stonith_recurring_op_helper(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/execd/execd_commands.c:425,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/execd/execd_commands.c:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 432
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 432
    functionName: start_delay_helper
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - mainloop_set_trigger
    - g_hash_table_lookup
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean start_delay_helper(gpointer data) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: find_duplicate_action
      Src: /src/pacemaker/daemons/execd/execd_commands.c:465,1
    - Dst: find_duplicate_action
      Src: /src/pacemaker/daemons/execd/execd_commands.c:468,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:477,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/execd/execd_commands.c:486,1
    - Dst: normalize_action_name
      Src: /src/pacemaker/daemons/execd/execd_commands.c:488,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:493,1
    - Dst: free_lrmd_cmd
      Src: /src/pacemaker/daemons/execd/execd_commands.c:497,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:505,1
    - Dst: stop_recurring_timer
      Src: /src/pacemaker/daemons/execd/execd_commands.c:507,1
    - Dst: stonith_recurring_op_helper
      Src: /src/pacemaker/daemons/execd/execd_commands.c:508,1
    - Dst: normalize_action_name
      Src: /src/pacemaker/daemons/execd/execd_commands.c:511,1
    - Dst: services_action_kick
      Src: /src/pacemaker/daemons/execd/execd_commands.c:510,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - rsc
    - cmd
    argTypes:
    - lrmd_rsc_t*
    - lrmd_cmd_t*
    constantsTouched: []
    func_position:
      end: 516
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 516
    functionName: merge_recurring_duplicate
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - normalize_action_name
    - free_lrmd_cmd
    - stop_recurring_timer
    - pcmk__str_eq
    - free
    - stonith_recurring_op_helper
    - services_action_kick
    - crm_warn
    - find_duplicate_action
    linkageType: ''
    returnType: bool
    signature: 'static bool merge_recurring_duplicate(lrmd_rsc_t * rsc, lrmd_cmd_t
      * cmd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/pacemaker/daemons/execd/execd_commands.c:730,1
    - Dst: memset
      Src: /src/pacemaker/daemons/execd/execd_commands.c:731,1
    - Dst: pcmk__reset_result
      Src: /src/pacemaker/daemons/execd/execd_commands.c:735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - lrmd_cmd_t*
    constantsTouched: []
    func_position:
      end: 737
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 737
    functionName: cmd_reset
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - memset
    - pcmk__reset_result
    linkageType: ''
    returnType: void
    signature: 'static void cmd_reset(lrmd_cmd_t * cmd) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: ipc_proxy_forward_client
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1894,1
    - Dst: process_lrmd_signon
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1903,1
    - Dst: process_lrmd_rsc_register
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1907,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1920,1
    - Dst: process_lrmd_get_rsc_info
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1915,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1999,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/execd/execd_commands.c:2002,1
    - Dst: lrmd_server_send_reply
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1998,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1891,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1889,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1886,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1931,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1945,1
    - Dst: process_lrmd_rsc_cancel
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1940,1
    - Dst: process_lrmd_alert_exec
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1965,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1970,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1989,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1902,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1905,1
    - Dst: process_lrmd_rsc_unregister
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1922,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1948,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1958,1
    - Dst: process_lrmd_get_recurring
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1972,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1985,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1986,1
    - Dst: create_lrmd_reply
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1996,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/execd_commands.c:2002,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1981,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1980,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1877,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1888,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1913,1
    - Dst: process_lrmd_rsc_exec
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1933,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1938,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1950,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1953,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1957,1
    - Dst: pcmk__valid_stonith_watchdog_timeout
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1959,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1963,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/execd/execd_commands.c:2001,1
    - Dst: send_generic_notify
      Src: /src/pacemaker/daemons/execd/execd_commands.c:2007,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 134
    argCount: 3
    argNames:
    - client
    - id
    - request
    argTypes:
    - pcmk__client_t*
    - uint32_t
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2009
      start: 1872
    functionDepth: 0
    functionLinenumber: 1872
    functionLinenumberEnd: 2009
    functionName: process_lrmd_message
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk__xe_first_child
    - process_lrmd_alert_exec
    - process_lrmd_get_rsc_info
    - pcmk_is_set
    - process_lrmd_rsc_unregister
    - ipc_proxy_forward_client
    - crm_element_value
    - pcmk_rc_str
    - create_lrmd_reply
    - crm_err
    - pcmk__valid_stonith_watchdog_timeout
    - process_lrmd_get_recurring
    - process_lrmd_rsc_register
    - pcmk__str_eq
    - crm_warn
    - process_lrmd_rsc_cancel
    - crm_trace
    - crm_debug
    - CRM_LOG_ASSERT
    - send_generic_notify
    - process_lrmd_rsc_exec
    - lrmd_server_send_reply
    - pcmk__xml_free
    - process_lrmd_signon
    - crm_element_value_int
    - pcmk__client_name
    linkageType: ''
    returnType: void
    signature: 'void process_lrmd_message(pcmk__client_t *client, uint32_t id, xmlNode
      *request) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - timespec
    argTypes:
    - struct timespec*
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: time_is_set
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static inline bool time_is_set(const struct timespec *timespec) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__timeout_ms2s
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - stonith_api
    - rsc
    - cmd
    argTypes:
    - stonith_t*
    - lrmd_rsc_t*
    - lrmd_cmd_t*
    constantsTouched: []
    func_position:
      end: 1280
      start: 1264
    functionDepth: 0
    functionLinenumber: 1264
    functionLinenumberEnd: 1280
    functionName: execd_stonith_monitor
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk__timeout_ms2s
    linkageType: ''
    returnType: int
    signature: 'static inline int execd_stonith_monitor(stonith_t *stonith_api, lrmd_rsc_t
      *rsc, lrmd_cmd_t *cmd) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:273,1
    - Dst: pcmk_get_ra_caps
      Src: /src/pacemaker/daemons/execd/execd_commands.c:274,1
    - Dst: pcmk_is_set
      Src: /src/pacemaker/daemons/execd/execd_commands.c:274,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - rsc
    - action
    argTypes:
    - lrmd_rsc_t*
    - char*
    constantsTouched: []
    func_position:
      end: 278
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 278
    functionName: normalize_action_name
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk_is_set
    - pcmk__str_eq
    - pcmk_get_ra_caps
    linkageType: ''
    returnType: char*
    signature: 'static const char *normalize_action_name(lrmd_rsc_t * rsc, const char
      *action) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1033,1
    - Dst: pcmk__result_ok
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1087,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1065,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1061,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1084,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1089,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1090,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1093,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1095,1
    - Dst: stop_recurring_timer
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1103,1
    - Dst: start_recurring_timer
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1111,1
    - Dst: cmd_finalize
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1114,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 4
    argNames:
    - cmd
    - exit_status
    - execution_status
    - exit_reason
    argTypes:
    - lrmd_cmd_t*
    - int
    - enum pcmk_exec_status
    - char*
    constantsTouched: []
    func_position:
      end: 1115
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1115
    functionName: stonith_action_complete
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - pcmk__result_ok
    - stop_recurring_timer
    - g_hash_table_lookup
    - pcmk__str_eq
    - cmd_finalize
    - start_recurring_timer
    linkageType: ''
    returnType: void
    signature: 'static void stonith_action_complete(lrmd_cmd_t *cmd, int exit_status,
      enum pcmk_exec_status execution_status, const char *exit_reason) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1137,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1142,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1141,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1155,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1140,1
    - Dst: stonith_action_complete
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1169,1
    - Dst: g_list_prepend
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1175,1
    - Dst: stonith_action_complete
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1179,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1184
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1184
    functionName: stonith_connection_failed
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - pcmk__str_eq
    - g_list_prepend
    - stonith_action_complete
    - crm_warn
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void stonith_connection_failed(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1602,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1605,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1614,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1612,1
    - Dst: create_lrmd_reply
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1619,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1621,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1622,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1623,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1624,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - request
    - call_id
    argTypes:
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 1627
      start: 1598
    functionDepth: 0
    functionLinenumber: 1598
    functionLinenumberEnd: 1627
    functionName: process_lrmd_get_rsc_info
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - crm_xml_add
    - pcmk__xpath_find_one
    - crm_element_value
    - crm_info
    - create_lrmd_reply
    linkageType: ''
    returnType: xmlNode*
    signature: 'static xmlNode *process_lrmd_get_rsc_info(xmlNode *request, int call_id) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_list_concat
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1764,1
    - Dst: g_list_copy
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1764,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1780,1
    - Dst: g_list_concat
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1767,1
    - Dst: g_list_copy
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1767,1
    - Dst: cancel_op
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1784,1
    - Dst: g_list_free
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1787,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 2
    argNames:
    - rsc
    - client_id
    argTypes:
    - lrmd_rsc_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1788
      start: 1751
    functionDepth: 0
    functionLinenumber: 1751
    functionLinenumberEnd: 1788
    functionName: cancel_all_recurring
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - g_list_free
    - g_list_concat
    - g_list_copy
    - pcmk__str_eq
    - cancel_op
    linkageType: ''
    returnType: void
    signature: 'static void cancel_all_recurring(lrmd_rsc_t * rsc, const char *client_id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/execd_commands.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - cmd
    - action
    - interval_ms
    argTypes:
    - lrmd_cmd_t*
    - char*
    - guint
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: action_matches
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk__str_eq
    linkageType: ''
    returnType: bool
    signature: 'static inline bool action_matches(const lrmd_cmd_t *cmd, const char
      *action, guint interval_ms) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/execd/execd_commands.c:283,1
    - Dst: pcmk__assert_alloc
      Src: /src/pacemaker/daemons/execd/execd_commands.c:287,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/execd/execd_commands.c:292,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/execd/execd_commands.c:291,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/execd/execd_commands.c:289,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/execd/execd_commands.c:293,1
    - Dst: crm_element_value_copy
      Src: /src/pacemaker/daemons/execd/execd_commands.c:294,1
    - Dst: mainloop_add_trigger
      Src: /src/pacemaker/daemons/execd/execd_commands.c:295,1
    - Dst: pcmk__set_result
      Src: /src/pacemaker/daemons/execd/execd_commands.c:299,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - msg
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 302
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 302
    functionName: build_rsc_from_xml
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - pcmk__set_result
    - pcmk__assert_alloc
    - mainloop_add_trigger
    - pcmk__xpath_find_one
    - crm_element_value_copy
    - crm_element_value_int
    linkageType: ''
    returnType: lrmd_rsc_t*
    signature: 'static lrmd_rsc_t *build_rsc_from_xml(xmlNode * msg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1121,1
    - Dst: stonith_action_complete
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1124,1
    - Dst: stonith__exit_status
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1125,1
    - Dst: stonith__exit_reason
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1127,1
    - Dst: stonith__execution_status
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - stonith
    - data
    argTypes:
    - stonith_t*
    - stonith_callback_data_t*
    constantsTouched: []
    func_position:
      end: 1129
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1129
    functionName: lrmd_stonith_callback
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - stonith__exit_reason
    - stonith_action_complete
    - stonith__exit_status
    - crm_err
    - stonith__execution_status
    linkageType: ''
    returnType: void
    signature: 'static void lrmd_stonith_callback(stonith_t * stonith, stonith_callback_data_t
      * data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1635,1
    - Dst: g_hash_table_lookup
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1644,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1646,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1638,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1653,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1658,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - client
    - id
    - request
    argTypes:
    - pcmk__client_t*
    - uint32_t
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1661
      start: 1629
    functionDepth: 0
    functionLinenumber: 1629
    functionLinenumberEnd: 1661
    functionName: process_lrmd_rsc_unregister
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - g_hash_table_lookup
    - g_hash_table_remove
    - pcmk__xpath_find_one
    - crm_element_value
    - crm_info
    - crm_trace
    linkageType: ''
    returnType: int
    signature: 'static int process_lrmd_rsc_unregister(pcmk__client_t *client, uint32_t
      id, xmlNode *request) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xpath_find_one
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1793,1
    - Dst: cancel_op
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1806,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1796,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1797,1
    - Dst: crm_element_value_ms
      Src: /src/pacemaker/daemons/execd/execd_commands.c:1800,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 3
    argNames:
    - client
    - id
    - request
    argTypes:
    - pcmk__client_t*
    - uint32_t
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1807
      start: 1790
    functionDepth: 0
    functionLinenumber: 1790
    functionLinenumberEnd: 1807
    functionName: process_lrmd_rsc_cancel
    functionSourceFile: /src/pacemaker/daemons/execd/execd_commands.c
    functionUses: []
    functionsReached:
    - crm_element_value_ms
    - pcmk__xpath_find_one
    - cancel_op
    - crm_element_value
    linkageType: ''
    returnType: int
    signature: 'static int process_lrmd_rsc_cancel(pcmk__client_t *client, uint32_t
      id, xmlNode *request) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:64,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:66,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: notify_cb
    functionSourceFile: /src/pacemaker/daemons/execd/cts-exec-helper.c
    functionUses: []
    functionsReached:
    - pcmk__str_any_of
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean notify_cb(const gchar *option_name, const gchar *optarg,
      gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lrmd_api_delete
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - nsig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: test_shutdown
    functionSourceFile: /src/pacemaker/daemons/execd/cts-exec-helper.c
    functionUses: []
    functionsReached:
    - lrmd_api_delete
    linkageType: ''
    returnType: void
    signature: 'static void test_shutdown(int nsig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:221,1
    - Dst: test_exit
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: timeout_err
    functionSourceFile: /src/pacemaker/daemons/execd/cts-exec-helper.c
    functionUses: []
    functionsReached:
    - test_exit
    - print_result
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean timeout_err(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_exit
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:265,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:264,1
    - Dst: sleep
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 266
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 266
    functionName: try_connect
    functionSourceFile: /src/pacemaker/daemons/execd/cts-exec-helper.c
    functionUses: []
    functionsReached:
    - test_exit
    - sleep
    - print_result
    linkageType: ''
    returnType: void
    signature: 'static void try_connect(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cib__signon_query
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:459,1
    - Dst: pe_find_resource_with_flags
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:480,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:485,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:493,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:503,1
    - Dst: pcmk__update_configured_schema
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:463,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:471,1
    - Dst: pcmk__set_scheduler_flags
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:474,1
    - Dst: pcmk_new_scheduler
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:469,1
    - Dst: crm_meta_name
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:506,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:494,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:511,1
    - Dst: cluster_status
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:477,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:504,1
    - Dst: lrmd_key_value_add
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:496,1
    - Dst: lrmd_key_value_add
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:508,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:513,1
    - Dst: crm_time_new
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:476,1
    - Dst: pcmk_free_scheduler
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:486,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:501,1
    - Dst: pe_rsc_params
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:491,1
    - Dst: get_meta_attributes
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:502,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:509,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 515
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 515
    functionName: generate_params
    functionSourceFile: /src/pacemaker/daemons/execd/cts-exec-helper.c
    functionUses: []
    functionsReached:
    - pe_find_resource_with_flags
    - g_hash_table_destroy
    - pcmk__set_scheduler_flags
    - free
    - cib__signon_query
    - cluster_status
    - lrmd_key_value_add
    - pcmk_free_scheduler
    - crm_meta_name
    - get_meta_attributes
    - crm_err
    - crm_crit
    - g_hash_table_iter_next
    - pcmk__update_configured_schema
    - pe_rsc_params
    - crm_time_new
    - pcmk_new_scheduler
    - pcmk__strkey_table
    - g_hash_table_iter_init
    linkageType: ''
    returnType: int
    signature: 'static int generate_params(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk_parse_interval_spec
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: interval_cb
    functionSourceFile: /src/pacemaker/daemons/execd/cts-exec-helper.c
    functionUses: []
    functionsReached:
    - pcmk_parse_interval_spec
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean interval_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:75,1
    - Dst: lrmd_key_value_add
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:82,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:77,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:76,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:78,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:83,1
    - Dst: pcmk__str_update
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:84,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 4
    argNames:
    - option_name
    - optarg
    - data
    - error
    argTypes:
    - gchar*
    - gchar*
    - gpointer
    - GError**
    constantsTouched: []
    func_position:
      end: 88
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 88
    functionName: param_key_val_cb
    functionSourceFile: /src/pacemaker/daemons/execd/cts-exec-helper.c
    functionUses: []
    functionsReached:
    - lrmd_key_value_add
    - pcmk__str_any_of
    - pcmk__str_update
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean param_key_val_cb(const gchar *option_name, const gchar
      *optarg, gpointer data, GError **error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lrmd_api_delete
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:167,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - exit_code
    argTypes:
    - crm_exit_t
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: test_exit
    functionSourceFile: /src/pacemaker/daemons/execd/cts-exec-helper.c
    functionUses: []
    functionsReached:
    - lrmd_api_delete
    - crm_exit
    linkageType: ''
    returnType: crm_exit_t
    signature: 'static crm_exit_t test_exit(crm_exit_t exit_code) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: report_event
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:195,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:198,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:197,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:205,1
    - Dst: test_exit
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:199,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:207,1
    - Dst: pcmk_exec_status_str
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:208,1
    - Dst: test_exit
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:209,1
    - Dst: test_exit
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:213,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - event
    argTypes:
    - lrmd_event_data_t*
    constantsTouched: []
    func_position:
      end: 216
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 216
    functionName: read_events
    functionSourceFile: /src/pacemaker/daemons/execd/cts-exec-helper.c
    functionUses: []
    functionsReached:
    - pcmk_exec_status_str
    - test_exit
    - pcmk__str_eq
    - report_event
    - print_result
    linkageType: ''
    returnType: void
    signature: 'static void read_events(lrmd_event_data_t * event) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:237,1
    - Dst: sleep
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:241,1
    - Dst: start_test
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:238,1
    - Dst: try_connect
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:242,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:243,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - event
    argTypes:
    - lrmd_event_data_t*
    constantsTouched: []
    func_position:
      end: 245
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 245
    functionName: connection_events
    functionSourceFile: /src/pacemaker/daemons/execd/cts-exec-helper.c
    functionUses: []
    functionsReached:
    - sleep
    - start_test
    - crm_notice
    - try_connect
    - crm_info
    linkageType: ''
    returnType: void
    signature: 'static void connection_events(lrmd_event_data_t * event) '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:290,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:306,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:325,1
    - Dst: lrmd_free_rsc_info
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:320,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:354,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:410,1
    - Dst: pcmk__create_timer
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:283,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:310,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:330,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:316,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:327,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:357,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:384,1
    - Dst: lrmd_list_freeall
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:386,1
    - Dst: test_exit
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:429,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:382,1
    - Dst: try_connect
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:275,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:303,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:338,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:347,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:364,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:389,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:402,1
    - Dst: g_list_free
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:407,1
    - Dst: test_exit
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:411,1
    - Dst: test_exit
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:417,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:415,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:337,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:340,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:349,1
    - Dst: lrmd_list_freeall
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:351,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:366,1
    - Dst: lrmd_list_freeall
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:368,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:375,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:393,1
    - Dst: lrmd_free_op_info
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:405,1
    - Dst: test_exit
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:423,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:421,1
    - Dst: print_result
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:371,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 128
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 433
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 433
    functionName: start_test
    functionSourceFile: /src/pacemaker/daemons/execd/cts-exec-helper.c
    functionUses: []
    functionsReached:
    - g_list_free
    - test_exit
    - lrmd_free_op_info
    - pcmk__str_eq
    - lrmd_free_rsc_info
    - free
    - try_connect
    - lrmd_list_freeall
    - print_result
    - pcmk__create_timer
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean start_test(gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:521,1
    - Dst: pcmk__add_arg_group
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:524,1
    - Dst: pcmk__add_main_args
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:523,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 528
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 528
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/daemons/execd/cts-exec-helper.c
    functionUses: []
    functionsReached:
    - pcmk__add_arg_group
    - pcmk__add_main_args
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:543,1
    - Dst: crm_bump_log_level
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:559,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:572,1
    - Dst: mainloop_set_trigger
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:609,1
    - Dst: g_main_loop_new
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:613,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:621,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:623,1
    - Dst: test_exit
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:624,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:537,1
    - Dst: crm_log_init
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:555,1
    - Dst: pcmk__strcase_any_of
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:562,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:585,1
    - Dst: g_main_loop_run
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:614,1
    - Dst: g_strfreev
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:617,1
    - Dst: build_arg_context
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:544,1
    - Dst: generate_params
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:582,1
    - Dst: lrmd_remote_api_new
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:604,1
    - Dst: lrmd_api_new
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:606,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:612,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:610,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:618,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:546,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:584,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:597,1
    - Dst: mainloop_add_trigger
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:608,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/cts-exec-helper.c:620,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 625
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 625
    functionName: main
    functionSourceFile: /src/pacemaker/daemons/execd/cts-exec-helper.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - test_exit
    - mainloop_add_trigger
    - free
    - generate_params
    - build_arg_context
    - crm_bump_log_level
    - lrmd_remote_api_new
    - pcmk__cmdline_preproc
    - pcmk__output_and_clear_error
    - crm_log_init
    - lrmd_api_new
    - pcmk__strcase_any_of
    - crm_info
    - mainloop_set_trigger
    - g_strfreev
    - g_main_loop_new
    - pcmk_rc2exitc
    - g_set_error
    - mainloop_add_signal
    - g_main_loop_run
    - pcmk__new_common_args
    - pcmk__free_arg_context
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:79,1
    - Dst: isalnum
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:85,1
    - Dst: isalpha
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:83,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 3
    argNames:
    - line
    - first
    - last
    argTypes:
    - char*
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 93
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 93
    functionName: find_env_var_name
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_pidone.c
    functionUses: []
    functionsReached:
    - isalnum
    - isalpha
    - isspace
    linkageType: ''
    returnType: bool
    signature: 'static bool find_env_var_name(char *line, char **first, char **last) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:42,1
    - Dst: WIFEXITED
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:45,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:48,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:46,1
    - Dst: WEXITSTATUS
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 51
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 51
    functionName: sigreap
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_pidone.c
    functionUses: []
    functionsReached:
    - crm_exit
    - WIFEXITED
    - waitpid
    - WEXITSTATUS
    linkageType: ''
    returnType: void
    signature: 'static void sigreap(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: sigdone
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_pidone.c
    functionUses: []
    functionsReached:
    - crm_exit
    linkageType: ''
    returnType: void
    signature: 'static void sigdone(void) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:101,1
    - Dst: isspace
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:164,1
    - Dst: fgets
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:106,1
    - Dst: find_env_var_name
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:113,1
    - Dst: isspace
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:144,1
    - Dst: setenv
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:174,1
    - Dst: strchr
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:182,1
    - Dst: fscanf
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:184,1
    - Dst: fclose
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:189,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 70
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 191
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 191
    functionName: load_env_vars
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_pidone.c
    functionUses: []
    functionsReached:
    - setenv
    - isspace
    - fclose
    - fgets
    - fopen
    - strchr
    - find_env_var_name
    - fscanf
    linkageType: ''
    returnType: void
    signature: 'static void load_env_vars(const char *filename) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:208,1
    - Dst: pcmk__str_any_of
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:210,1
    - Dst: strcmp
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:224,1
    - Dst: sigfillset
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:236,1
    - Dst: setpgid
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:244,1
    - Dst: strlen
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:276,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:249,1
    - Dst: setsid
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:243,1
    - Dst: sigwait
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:294,1
    - Dst: load_env_vars
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:222,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:232,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:249,1
    - Dst: strlen
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:270,1
    - Dst: sigprocmask
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:242,1
    - Dst: snprintf
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:279,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:209,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:233,1
    - Dst: sigprocmask
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:237,1
    - Dst: PCMK__NELEM
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:295,1
    - Dst: fork
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:239,1
    - Dst: strlen
      Src: /src/pacemaker/daemons/execd/remoted_pidone.c:265,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 67
    argCount: 3
    argNames:
    - argc
    - argv
    - envp
    argTypes:
    - int
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 302
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 302
    functionName: remoted_spawn_pidone
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_pidone.c
    functionUses: []
    functionsReached:
    - fork
    - load_env_vars
    - PCMK__NELEM
    - strcmp
    - sigfillset
    - snprintf
    - setpgid
    - sigprocmask
    - pcmk__env_option
    - getpid
    - pcmk_rc_str
    - sigwait
    - strlen
    - pcmk__str_any_of
    - crm_err
    - setsid
    - pcmk__set_env_option
    linkageType: ''
    returnType: void
    signature: 'void remoted_spawn_pidone(int argc, char **argv, char **envp) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stonith_connection_failed
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - stonith_t*
    - stonith_event_t*
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: stonith_connection_destroy_cb
    functionSourceFile: /src/pacemaker/daemons/execd/pacemaker-execd.c
    functionUses: []
    functionsReached:
    - stonith_connection_failed
    linkageType: ''
    returnType: void
    signature: 'static void stonith_connection_destroy_cb(stonith_t * st, stonith_event_t
      * e) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:102,1
    - Dst: pcmk__new_client
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - c
    - uid
    - gid
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: lrmd_ipc_accept
    functionSourceFile: /src/pacemaker/daemons/execd/pacemaker-execd.c
    functionUses: []
    functionsReached:
    - pcmk__new_client
    - crm_trace
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t lrmd_ipc_accept(qb_ipcs_connection_t * c, uid_t uid,
      gid_t gid) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__client_data2xml
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:146,1
    - Dst: pcmk__client_pid
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:180,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:131,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:133,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:154,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:193,1
    - Dst: process_lrmd_message
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:195,1
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:128,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:133,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:131,1
    - Dst: pcmk__ipc_msg_append
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:136,1
    - Dst: g_byte_array_free
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:147,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:154,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:164,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:176,1
    - Dst: pcmk__itoa
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:180,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:191,1
    - Dst: g_byte_array_free
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:157,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:164,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:192,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:182,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:197,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 3
    argNames:
    - c
    - data
    - size
    argTypes:
    - qb_ipcs_connection_t*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 199
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 199
    functionName: lrmd_ipc_dispatch
    functionSourceFile: /src/pacemaker/daemons/execd/pacemaker-execd.c
    functionUses: []
    functionsReached:
    - CRM_CHECK
    - crm_element_value
    - pcmk__itoa
    - crm_xml_add
    - g_byte_array_free
    - pcmk__client_pid
    - pcmk__str_copy
    - pcmk__find_client
    - pcmk__client_data2xml
    - crm_xml_add_int
    - pcmk__ipc_msg_append
    - pcmk_rc_str
    - pcmk__xml_free
    - process_lrmd_message
    - crm_err
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t lrmd_ipc_dispatch(qb_ipcs_connection_t * c, void *data,
      size_t size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:225,1
    - Dst: lrmd_client_destroy
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:236,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:231,1
    - Dst: client_disconnect_cleanup
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:232,1
    - Dst: ipc_proxy_remove_provider
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 238
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 238
    functionName: lrmd_ipc_closed
    functionSourceFile: /src/pacemaker/daemons/execd/pacemaker-execd.c
    functionUses: []
    functionsReached:
    - lrmd_client_destroy
    - client_disconnect_cleanup
    - pcmk__find_client
    - ipc_proxy_remove_provider
    - crm_trace
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t lrmd_ipc_closed(qb_ipcs_connection_t * c) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:279,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:290,1
    - Dst: pcmk__ipc_send_xml
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:286,1
    - Dst: PCMK__CLIENT_TYPE
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:280,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:283,1
    - Dst: lrmd__remote_send_xml
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:293,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:297,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:299,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - client
    - msg
    argTypes:
    - pcmk__client_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 302
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 302
    functionName: lrmd_server_send_notify
    functionSourceFile: /src/pacemaker/daemons/execd/pacemaker-execd.c
    functionUses: []
    functionsReached:
    - PCMK__CLIENT_TYPE
    - crm_trace
    - lrmd__remote_send_xml
    - pcmk__ipc_send_xml
    - crm_err
    - pcmk__client_name
    linkageType: ''
    returnType: int
    signature: 'int lrmd_server_send_notify(pcmk__client_t *client, xmlNode *msg) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ipc_proxy_get_provider
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:347,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:358,1
    - Dst: crm_crit
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:360,1
    - Dst: ipc_proxy_shutdown_req
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:359,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:354,1
    - Dst: execd_stop_tls_server
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:371,1
    - Dst: exit_executor
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:382,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - nsig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 383
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 383
    functionName: lrmd_shutdown
    functionSourceFile: /src/pacemaker/daemons/execd/pacemaker-execd.c
    functionUses: []
    functionsReached:
    - ipc_proxy_get_provider
    - exit_executor
    - crm_notice
    - execd_stop_tls_server
    - ipc_proxy_shutdown_req
    - crm_info
    - crm_crit
    linkageType: ''
    returnType: void
    signature: 'static void lrmd_shutdown(int nsig) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:411,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:417,1
    - Dst: exit_executor
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 418
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 418
    functionName: handle_shutdown_nack
    functionSourceFile: /src/pacemaker/daemons/execd/pacemaker-execd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_info
    - exit_executor
    linkageType: ''
    returnType: void
    signature: 'void handle_shutdown_nack(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stonith__api_free
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:70,1
    - Dst: stonith__api_connect_retry
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:82,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:84,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:79,1
    - Dst: stonith__api_new
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:77,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:85,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:86,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 97
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 97
    functionName: get_stonith_connection
    functionSourceFile: /src/pacemaker/daemons/execd/pacemaker-execd.c
    functionUses: []
    functionsReached:
    - stonith__api_new
    - pcmk_rc_str
    - stonith__api_connect_retry
    - crm_err
    - stonith__api_free
    linkageType: ''
    returnType: stonith_t*
    signature: 'stonith_t *get_stonith_connection(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:112,1
    - Dst: notify_of_new_client
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:119,1
    - Dst: pcmk__assert
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:115,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 120
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 120
    functionName: lrmd_ipc_created
    functionSourceFile: /src/pacemaker/daemons/execd/pacemaker-execd.c
    functionUses: []
    functionsReached:
    - pcmk__assert
    - pcmk__find_client
    - notify_of_new_client
    - crm_trace
    linkageType: ''
    returnType: void
    signature: 'static void lrmd_ipc_created(qb_ipcs_connection_t * c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lrmd_ipc_closed
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:243,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: lrmd_ipc_destroy
    functionSourceFile: /src/pacemaker/daemons/execd/pacemaker-execd.c
    functionUses: []
    functionsReached:
    - crm_trace
    - lrmd_ipc_closed
    linkageType: ''
    returnType: void
    signature: 'static void lrmd_ipc_destroy(qb_ipcs_connection_t * c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__build_arg_context
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:445,1
    - Dst: pcmk__add_main_args
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:446,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - args
    - group
    argTypes:
    - pcmk__common_args_t*
    - GOptionGroup**
    constantsTouched: []
    func_position:
      end: 448
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 448
    functionName: build_arg_context
    functionSourceFile: /src/pacemaker/daemons/execd/pacemaker-execd.c
    functionUses: []
    functionsReached:
    - pcmk__add_main_args
    - pcmk__build_arg_context
    linkageType: ''
    returnType: GOptionContext*
    signature: 'static GOptionContext *build_arg_context(pcmk__common_args_t *args,
      GOptionGroup **group) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: remoted_spawn_pidone
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:469,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:476,1
    - Dst: pcmk__register_formats
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:482,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:532,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:544,1
    - Dst: unsetenv
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:550,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:558,1
    - Dst: mainloop_add_ipc_server
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:563,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:581,1
    - Dst: exit_executor
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:586,1
    - Dst: pcmk__output_and_clear_error
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:597,1
    - Dst: pcmk__unregister_formats
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:603,1
    - Dst: g_strfreev
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:589,1
    - Dst: build_arg_context
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:478,1
    - Dst: crm_log_preinit
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:480,1
    - Dst: pcmk__output_new
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:488,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:518,1
    - Dst: pcmk__add_logfile
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:505,1
    - Dst: time
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:542,1
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:562,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:565,1
    - Dst: ipc_proxy_init
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:576,1
    - Dst: mainloop_add_signal
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:579,1
    - Dst: crm_notice
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:582,1
    - Dst: g_strfreev
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:594,1
    - Dst: pcmk__output_free
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:601,1
    - Dst: g_main_loop_new
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:580,1
    - Dst: g_free
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:591,1
    - Dst: pcmk__cmdline_preproc
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:474,1
    - Dst: g_option_context_parse_strv
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:483,1
    - Dst: crm_log_init
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:515,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:509,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:523,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:527,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:529,1
    - Dst: pcmk__env_option_enabled
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:531,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:572,1
    - Dst: g_main_loop_run
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:583,1
    - Dst: pcmk__new_common_args
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:472,1
    - Dst: g_set_error
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:491,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:493,1
    - Dst: pcmk__cli_init_logging
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:514,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:519,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:521,1
    - Dst: pcmk__env_option
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:526,1
    - Dst: pcmk__set_env_option
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:538,1
    - Dst: pcmk__build_path
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:554,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:557,1
    - Dst: lrmd_init_remote_tls_server
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:571,1
    - Dst: pcmk__free_arg_context
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:595,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:604,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 102
    argCount: 3
    argNames:
    - argc
    - argv
    - envp
    argTypes:
    - int
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 605
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 605
    functionName: main
    functionSourceFile: /src/pacemaker/daemons/execd/pacemaker-execd.c
    functionUses: []
    functionsReached:
    - g_option_context_parse_strv
    - pcmk__register_formats
    - crm_exit
    - lrmd_init_remote_tls_server
    - crm_notice
    - pcmk__env_option_enabled
    - mainloop_add_ipc_server
    - unsetenv
    - pcmk__cli_init_logging
    - crm_log_preinit
    - build_arg_context
    - exit_executor
    - pcmk__build_path
    - pcmk_rc_str
    - g_free
    - crm_err
    - pcmk__cmdline_preproc
    - pcmk__set_env_option
    - pcmk__add_logfile
    - pcmk__output_and_clear_error
    - pcmk__unregister_formats
    - crm_log_init
    - pcmk__str_eq
    - crm_warn
    - pcmk__output_new
    - g_strfreev
    - g_main_loop_new
    - pcmk__strkey_table
    - time
    - g_set_error
    - ipc_proxy_init
    - pcmk__env_option
    - remoted_spawn_pidone
    - mainloop_add_signal
    - g_main_loop_run
    - pcmk__new_common_args
    - pcmk__output_free
    - pcmk__free_arg_context
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv, char **envp) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__free_client
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:210,1
    - Dst: exit_executor
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:217,1
    - Dst: ipc_proxy_get_provider
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - client
    argTypes:
    - pcmk__client_t*
    constantsTouched: []
    func_position:
      end: 220
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 220
    functionName: lrmd_client_destroy
    functionSourceFile: /src/pacemaker/daemons/execd/pacemaker-execd.c
    functionUses: []
    functionsReached:
    - exit_executor
    - ipc_proxy_get_provider
    - pcmk__free_client
    linkageType: ''
    returnType: void
    signature: 'void lrmd_client_destroy(pcmk__client_t *client) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:259,1
    - Dst: pcmk__ipc_send_xml
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:262,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:268,1
    - Dst: PCMK__CLIENT_TYPE
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:260,1
    - Dst: lrmd__remote_send_xml
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:265,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:270,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 3
    argNames:
    - client
    - id
    - reply
    argTypes:
    - pcmk__client_t*
    - uint32_t
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 273
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 273
    functionName: lrmd_server_send_reply
    functionSourceFile: /src/pacemaker/daemons/execd/pacemaker-execd.c
    functionUses: []
    functionsReached:
    - PCMK__CLIENT_TYPE
    - crm_trace
    - lrmd__remote_send_xml
    - pcmk__ipc_send_xml
    - crm_err
    - pcmk__client_name
    linkageType: ''
    returnType: int
    signature: 'int lrmd_server_send_reply(pcmk__client_t *client, uint32_t id, xmlNode
      *reply) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__ipc_client_count
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:311,1
    - Dst: mainloop_del_ipc_server
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:317,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:313,1
    - Dst: stonith__api_free
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:315,1
    - Dst: pcmk__plural_s
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:314,1
    - Dst: execd_stop_tls_server
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:321,1
    - Dst: ipc_proxy_cleanup
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:322,1
    - Dst: pcmk__client_cleanup
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:325,1
    - Dst: lrmd_drain_alerts
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:328,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:331,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 335
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 335
    functionName: exit_executor
    functionSourceFile: /src/pacemaker/daemons/execd/pacemaker-execd.c
    functionUses: []
    functionsReached:
    - crm_exit
    - pcmk__plural_s
    - g_hash_table_destroy
    - ipc_proxy_cleanup
    - pcmk__client_cleanup
    - execd_stop_tls_server
    - pcmk__ipc_client_count
    - lrmd_drain_alerts
    - crm_info
    - mainloop_del_ipc_server
    - stonith__api_free
    linkageType: ''
    returnType: void
    signature: 'static void exit_executor(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:394,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/execd/pacemaker-execd.c:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 400
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 400
    functionName: handle_shutdown_ack
    functionSourceFile: /src/pacemaker/daemons/execd/pacemaker-execd.c
    functionUses: []
    functionsReached:
    - crm_debug
    - crm_info
    linkageType: ''
    returnType: void
    signature: 'void handle_shutdown_ack(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cib_new
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:138,1
    - Dst: pcmk_common_cleanup
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:148,1
    - Dst: pcmk_common_cleanup
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:193,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:155,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:145,1
    - Dst: _exit
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:149,1
    - Dst: pcmk__highest_schema_name
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:152,1
    - Dst: pcmk_strerror
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:155,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:191,1
    - Dst: _exit
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:194,1
    - Dst: pcmk_common_cleanup
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:140,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:147,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:149,1
    - Dst: pcmk_legacy2rc
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:156,1
    - Dst: cib__clean_up_connection
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:192,1
    - Dst: pcmk_rc2exitc
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:194,1
    - Dst: _exit
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:141,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:147,1
    - Dst: pcmk__xpath_foreach_result
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:187,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 195
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 195
    functionName: get_schema_files
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_schemas.c
    functionUses: []
    functionsReached:
    - cib__clean_up_connection
    - pcmk_common_cleanup
    - pcmk__xpath_foreach_result
    - pcmk_rc2exitc
    - pcmk__highest_schema_name
    - _exit
    - cib_new
    - pcmk__xml_free
    - pcmk_rc_str
    - pcmk_strerror
    - crm_err
    - pcmk_legacy2rc
    linkageType: ''
    returnType: void
    signature: 'static void get_schema_files(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__remote_schema_dir
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:46,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:57,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:58,1
    - Dst: stat
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:50,1
    - Dst: mkdir
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:55,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:63,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:64,1
    - Dst: S_ISDIR
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:67,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:71,1
    - Dst: nftw
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:77,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:80,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:80,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 83
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 83
    functionName: clean_up_extra_schema_files
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_schemas.c
    functionUses: []
    functionsReached:
    - stat
    - mkdir
    - S_ISDIR
    - nftw
    - pcmk_rc_str
    - pcmk__remote_schema_dir
    - crm_err
    linkageType: ''
    returnType: void
    signature: 'static void clean_up_extra_schema_files(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remove
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:34,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:36,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:36,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 4
    argNames:
    - pathname
    - sbuf
    - type
    - ftwb
    argTypes:
    - char*
    - struct stat*
    - int
    - struct FTW*
    constantsTouched: []
    func_position:
      end: 41
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 41
    functionName: rm_files
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_schemas.c
    functionUses: []
    functionsReached:
    - remove
    - crm_err
    - pcmk_rc_str
    linkageType: ''
    returnType: int
    signature: 'static int rm_files(const char *pathname, const struct stat *sbuf,
      int type, struct FTW *ftwb) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__remote_schema_dir
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:88,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:99,1
    - Dst: fopen
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:112,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:93,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:95,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:114,1
    - Dst: strerror
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:114,1
    - Dst: fprintf
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:116,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:119,1
    - Dst: strerror
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:119,1
    - Dst: fclose
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:122,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:128,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 2
    argNames:
    - xml
    - user_data
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 129
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 129
    functionName: write_extra_schema_file
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_schemas.c
    functionUses: []
    functionsReached:
    - fclose
    - crm_strdup_printf
    - fopen
    - strerror
    - free
    - crm_element_value
    - pcmk__remote_schema_dir
    - crm_warn
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void write_extra_schema_file(xmlNode *xml, void *user_data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mainloop_child_kill
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:246,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:247,1
    - Dst: pcmk__schema_cleanup
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:263,1
    - Dst: clean_up_extra_schema_files
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:262,1
    - Dst: pcmk__schema_init
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:264,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:266,1
    - Dst: fork
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:267,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:272,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:272,1
    - Dst: get_schema_files
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:278,1
    - Dst: mainloop_child_add_with_flags
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:284,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 289
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 289
    functionName: remoted_request_cib_schema_files
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_schemas.c
    functionUses: []
    functionsReached:
    - fork
    - pcmk__schema_cleanup
    - mainloop_child_kill
    - get_schema_files
    - pcmk__schema_init
    - mainloop_child_add_with_flags
    - pcmk_rc_str
    - crm_warn
    - crm_info
    - clean_up_extra_schema_files
    linkageType: ''
    returnType: void
    signature: 'void remoted_request_cib_schema_files(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__remote_schema_dir
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:206,1
    - Dst: pcmk__sort_schemas
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:212,1
    - Dst: pcmk__load_schemas_from_dir
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:211,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:217,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:213,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:220,1
    - Dst: strsignal
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:221,1
    - Dst: clean_up_extra_schema_files
      Src: /src/pacemaker/daemons/execd/remoted_schemas.c:231,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 5
    argNames:
    - p
    - pid
    - core
    - signo
    - exitcode
    argTypes:
    - mainloop_child_t*
    - pid_t
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 233
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 233
    functionName: get_schema_files_complete
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_schemas.c
    functionUses: []
    functionsReached:
    - pcmk__load_schemas_from_dir
    - pcmk__sort_schemas
    - pcmk__remote_schema_dir
    - strsignal
    - crm_info
    - crm_err
    - clean_up_extra_schema_files
    linkageType: ''
    returnType: void
    signature: 'static void get_schema_files_complete(mainloop_child_t *p, pid_t pid,
      int core, int signo, int exitcode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: ipc_proxy_get_provider
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_proxy.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: pcmk__client_t*
    signature: 'pcmk__client_t *ipc_proxy_get_provider(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ipc_proxy_accept
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - c
    - uid
    - gid
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: stonith_proxy_accept
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_proxy.c
    functionUses: []
    functionsReached:
    - ipc_proxy_accept
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t stonith_proxy_accept(qb_ipcs_connection_t * c, uid_t
      uid, gid_t gid) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ipc_proxy_accept
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - c
    - uid
    - gid
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: crmd_proxy_accept
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_proxy.c
    functionUses: []
    functionsReached:
    - ipc_proxy_accept
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t crmd_proxy_accept(qb_ipcs_connection_t * c, uid_t uid,
      gid_t gid) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ipc_proxy_accept
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - c
    - uid
    - gid
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: cib_proxy_accept_rw
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_proxy.c
    functionUses: []
    functionsReached:
    - ipc_proxy_accept
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t cib_proxy_accept_rw(qb_ipcs_connection_t * c, uid_t
      uid, gid_t gid) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:158,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:170,1
    - Dst: handle_shutdown_nack
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:171,1
    - Dst: crm_element_value_int
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:206,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:165,1
    - Dst: handle_shutdown_ack
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:166,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:178,1
    - Dst: pcmk__ipc_send_xml
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:201,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:179,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:207,1
    - Dst: CRM_LOG_ASSERT
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:210,1
    - Dst: qb_ipcs_disconnect
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:214,1
    - Dst: pcmk__find_client_by_id
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:175,1
    - Dst: lrmd_server_send_notify
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:180,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:181,1
    - Dst: pcmk__ipc_send_xml
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:208,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:213,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:222,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:155,1
    - Dst: crm_element_value
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:156,1
    - Dst: pcmk__xe_first_child
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:160,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:177,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:200,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:203,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:199,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:217,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:221,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 2
    argNames:
    - ipc_proxy
    - xml
    argTypes:
    - pcmk__client_t*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 224
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 224
    functionName: ipc_proxy_forward_client
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_proxy.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - qb_ipcs_disconnect
    - crm_trace
    - crm_element_value
    - handle_shutdown_ack
    - pcmk__xe_first_child
    - pcmk__ipc_send_xml
    - CRM_LOG_ASSERT
    - crm_xml_add
    - pcmk__str_eq
    - pcmk_rc_str
    - pcmk__xml_free
    - crm_err
    - handle_shutdown_nack
    - crm_warn
    - lrmd_server_send_notify
    - pcmk__find_client_by_id
    - crm_element_value_int
    linkageType: ''
    returnType: void
    signature: 'void ipc_proxy_forward_client(pcmk__client_t *ipc_proxy, xmlNode *xml) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:329,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:340,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:337,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:332,1
    - Dst: lrmd_server_send_notify
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ipc_proxy
    argTypes:
    - pcmk__client_t*
    constantsTouched: []
    func_position:
      end: 342
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 342
    functionName: ipc_proxy_shutdown_req
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_proxy.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_xml_add
    - pcmk__xml_free
    - lrmd_server_send_notify
    linkageType: ''
    returnType: int
    signature: 'int ipc_proxy_shutdown_req(pcmk__client_t *ipc_proxy) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:377,1
    - Dst: ipc_proxy_closed
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 379
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 379
    functionName: ipc_proxy_destroy
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_proxy.c
    functionUses: []
    functionsReached:
    - crm_trace
    - ipc_proxy_closed
    linkageType: ''
    returnType: void
    signature: 'static void ipc_proxy_destroy(qb_ipcs_connection_t * c) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_list_remove
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:445,1
    - Dst: g_hash_table_iter_next
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:448,1
    - Dst: crm_info
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:451,1
    - Dst: g_hash_table_iter_init
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:447,1
    - Dst: pcmk__str_eq
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:450,1
    - Dst: g_list_append
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:455,1
    - Dst: qb_ipcs_disconnect
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:463,1
    - Dst: g_list_free
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:467,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - ipc_proxy
    argTypes:
    - pcmk__client_t*
    constantsTouched: []
    func_position:
      end: 468
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 468
    functionName: ipc_proxy_remove_provider
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_proxy.c
    functionUses: []
    functionsReached:
    - qb_ipcs_disconnect
    - g_list_append
    - g_list_free
    - pcmk__str_eq
    - g_list_remove
    - crm_info
    - g_hash_table_iter_init
    - g_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: 'void ipc_proxy_remove_provider(pcmk__client_t *ipc_proxy) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ipc_proxy_accept
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - c
    - uid
    - gid
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: attrd_proxy_accept
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_proxy.c
    functionUses: []
    functionsReached:
    - ipc_proxy_accept
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t attrd_proxy_accept(qb_ipcs_connection_t * c, uid_t
      uid, gid_t gid) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - c
    - uid
    - gid
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: pacemakerd_proxy_accept
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_proxy.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t pacemakerd_proxy_accept(qb_ipcs_connection_t * c, uid_t
      uid, gid_t gid) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ipc_proxy_accept
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - c
    - uid
    - gid
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: cib_proxy_accept_ro
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_proxy.c
    functionUses: []
    functionsReached:
    - ipc_proxy_accept
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t cib_proxy_accept_ro(qb_ipcs_connection_t * c, uid_t
      uid, gid_t gid) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: g_byte_array_free
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:277,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:291,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:307,1
    - Dst: pcmk__xml_copy
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:309,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:314,1
    - Dst: pcmk__client_data2xml
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:266,1
    - Dst: qb_ipcs_disconnect
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:239,1
    - Dst: pcmk_rc_str
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:274,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:288,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:289,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:301,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:303,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:304,1
    - Dst: crm_xml_add_int
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:305,1
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:232,1
    - Dst: pcmk__ipc_msg_append
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:256,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:274,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:288,1
    - Dst: pcmk__set_ipc_flags
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:296,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:290,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:300,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:302,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:302,1
    - Dst: pcmk__find_client_by_id
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:233,1
    - Dst: g_byte_array_free
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:267,1
    - Dst: CRM_CHECK
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:290,1
    - Dst: pcmk__client_name
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:296,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:299,1
    - Dst: lrmd_server_send_notify
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:311,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:313,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 3
    argNames:
    - c
    - data
    - size
    argTypes:
    - qb_ipcs_connection_t*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 316
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 316
    functionName: ipc_proxy_dispatch
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_proxy.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - qb_ipcs_disconnect
    - CRM_CHECK
    - pcmk__xml_copy
    - crm_xml_add
    - pcmk__set_ipc_flags
    - g_byte_array_free
    - pcmk__find_client
    - pcmk__client_data2xml
    - crm_err
    - pcmk__ipc_msg_append
    - pcmk_rc_str
    - pcmk__xml_free
    - crm_xml_add_int
    - lrmd_server_send_notify
    - pcmk__find_client_by_id
    - pcmk__client_name
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t ipc_proxy_dispatch(qb_ipcs_connection_t * c, void *data,
      size_t size) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__find_client
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:347,1
    - Dst: crm_trace
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:356,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:359,1
    - Dst: pcmk__find_client_by_id
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:354,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:360,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:361,1
    - Dst: lrmd_server_send_notify
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:362,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:363,1
    - Dst: g_hash_table_remove
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:366,1
    - Dst: free
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:368,1
    - Dst: pcmk__free_client
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:370,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 372
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 372
    functionName: ipc_proxy_closed
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_proxy.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - pcmk__find_client_by_id
    - crm_xml_add
    - g_hash_table_remove
    - pcmk__find_client
    - pcmk__xml_free
    - free
    - lrmd_server_send_notify
    - pcmk__free_client
    - crm_trace
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t ipc_proxy_closed(qb_ipcs_connection_t * c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_list_prepend
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ipc_proxy
    argTypes:
    - pcmk__client_t*
    constantsTouched: []
    func_position:
      end: 434
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 434
    functionName: ipc_proxy_add_provider
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_proxy.c
    functionUses: []
    functionsReached:
    - g_list_prepend
    linkageType: ''
    returnType: void
    signature: 'void ipc_proxy_add_provider(pcmk__client_t *ipc_proxy) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcmk__strkey_table
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:473,1
    - Dst: pcmk__serve_based_ipc
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:475,1
    - Dst: pcmk__serve_attrd_ipc
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:477,1
    - Dst: pcmk__serve_pacemakerd_ipc
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:479,1
    - Dst: pcmk__serve_fenced_ipc
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:478,1
    - Dst: pcmk__serve_controld_ipc
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:480,1
    - Dst: crm_err
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:482,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:483,1
    - Dst: crm_exit
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 486
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 486
    functionName: ipc_proxy_init
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_proxy.c
    functionUses: []
    functionsReached:
    - pcmk__serve_attrd_ipc
    - crm_exit
    - pcmk__strkey_table
    - pcmk__serve_based_ipc
    - pcmk__serve_pacemakerd_ipc
    - pcmk__serve_fenced_ipc
    - crm_warn
    - crm_err
    - pcmk__serve_controld_ipc
    linkageType: ''
    returnType: void
    signature: 'void ipc_proxy_init(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_list_free
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:492,1
    - Dst: pcmk__stop_based_ipc
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:499,1
    - Dst: g_hash_table_destroy
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:496,1
    - Dst: qb_ipcs_destroy
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:500,1
    - Dst: qb_ipcs_destroy
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:501,1
    - Dst: qb_ipcs_destroy
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:502,1
    - Dst: qb_ipcs_destroy
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 507
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 507
    functionName: ipc_proxy_cleanup
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_proxy.c
    functionUses: []
    functionsReached:
    - g_hash_table_destroy
    - g_list_free
    - qb_ipcs_destroy
    - pcmk__stop_based_ipc
    linkageType: ''
    returnType: void
    signature: 'void ipc_proxy_cleanup(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ipc_proxy_get_provider
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:75,1
    - Dst: pcmk__new_client
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:87,1
    - Dst: crm_warn
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:79,1
    - Dst: crm_strdup_printf
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:95,1
    - Dst: pcmk__str_copy
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:94,1
    - Dst: pcmk__set_client_flags
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:100,1
    - Dst: g_hash_table_insert
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:102,1
    - Dst: pcmk__xe_create
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:104,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:105,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:106,1
    - Dst: crm_xml_add
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:107,1
    - Dst: pcmk__xml_free
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:109,1
    - Dst: lrmd_server_send_notify
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:108,1
    - Dst: crm_debug
      Src: /src/pacemaker/daemons/execd/remoted_proxy.c:110,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - c
    - uid
    - gid
    - ipc_channel
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    - char*
    constantsTouched: []
    func_position:
      end: 114
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 114
    functionName: ipc_proxy_accept
    functionSourceFile: /src/pacemaker/daemons/execd/remoted_proxy.c
    functionUses: []
    functionsReached:
    - pcmk__xe_create
    - crm_debug
    - ipc_proxy_get_provider
    - pcmk__set_client_flags
    - crm_strdup_printf
    - crm_xml_add
    - pcmk__str_copy
    - pcmk__xml_free
    - pcmk__new_client
    - crm_warn
    - lrmd_server_send_notify
    - g_hash_table_insert
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t ipc_proxy_accept(qb_ipcs_connection_t * c, uid_t uid,
      gid_t gid, const char *ipc_channel) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:50,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - c
    - uid
    - gid
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: s1_connection_accept_fn
    functionSourceFile: /src/libqb/tests/bms.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t s1_connection_accept_fn(qb_ipcs_connection_t *c, uid_t
      uid, gid_t gid) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:109,1
    - Dst: qb_ipcs_event_send
      Src: /src/libqb/tests/bms.c:123,1
    - Dst: qb_perror
      Src: /src/libqb/tests/bms.c:126,1
    - Dst: qb_ipcs_response_send
      Src: /src/libqb/tests/bms.c:115,1
    - Dst: qb_perror
      Src: /src/libqb/tests/bms.c:118,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 3
    argNames:
    - c
    - data
    - size
    argTypes:
    - qb_ipcs_connection_t*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 131
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 131
    functionName: s1_msg_process_fn
    functionSourceFile: /src/libqb/tests/bms.c
    functionUses: []
    functionsReached:
    - qb_ipcs_response_send
    - qb_ipcs_event_send
    - qb_log
    - qb_perror
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t s1_msg_process_fn(qb_ipcs_connection_t *c,\t\tvoid
      *data, size_t size) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: s1_connection_destroyed_fn
    functionSourceFile: /src/libqb/tests/bms.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void s1_connection_destroyed_fn(qb_ipcs_connection_t *c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:142,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:143,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:145,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:146,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:144,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:147,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:148,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:149,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:150,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:151,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:156,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:153,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:152,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:155,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 157
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 157
    functionName: show_usage
    functionSourceFile: /src/libqb/tests/bms.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void show_usage(const char *name) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_grow
      Src: /src/libqb/tests/bms.c:187,1
    - Dst: qb_array_index
      Src: /src/libqb/tests/bms.c:191,1
    - Dst: g_io_add_watch
      Src: /src/libqb/tests/bms.c:211,1
    - Dst: g_io_channel_unix_new
      Src: /src/libqb/tests/bms.c:199,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 5
    argNames:
    - p
    - fd
    - evts
    - data
    - fn
    argTypes:
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_ipcs_dispatch_fn_t
    constantsTouched: []
    func_position:
      end: 213
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 213
    functionName: my_g_dispatch_add
    functionSourceFile: /src/libqb/tests/bms.c
    functionUses: []
    functionsReached:
    - qb_array_grow
    - qb_array_index
    - g_io_channel_unix_new
    - g_io_add_watch
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t my_g_dispatch_add(enum qb_loop_priority p, int32_t
      fd, int32_t evts,\tvoid *data, qb_ipcs_dispatch_fn_t fn) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/bms.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - p
    - data
    - fn
    argTypes:
    - enum qb_loop_priority
    - void*
    - qb_loop_job_dispatch_fn
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: my_job_add
    functionSourceFile: /src/libqb/tests/bms.c
    functionUses: []
    functionsReached:
    - qb_loop_job_add
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t my_job_add(enum qb_loop_priority p, void *data, qb_loop_job_dispatch_fn
      fn) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_poll_mod
      Src: /src/libqb/tests/bms.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - p
    - fd
    - evts
    - data
    - fn
    argTypes:
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_ipcs_dispatch_fn_t
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: my_dispatch_mod
    functionSourceFile: /src/libqb/tests/bms.c
    functionUses: []
    functionsReached:
    - qb_loop_poll_mod
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t my_dispatch_mod(enum qb_loop_priority p, int32_t fd,
      int32_t evts,\tvoid *data, qb_ipcs_dispatch_fn_t fn) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_stats_get
      Src: /src/libqb/tests/bms.c:83,1
    - Dst: qb_ipcs_connection_stats_get
      Src: /src/libqb/tests/bms.c:85,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:92,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:93,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:87,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:94,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:95,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:96,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:97,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 100
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 100
    functionName: s1_connection_closed_fn
    functionSourceFile: /src/libqb/tests/bms.c
    functionUses: []
    functionsReached:
    - qb_ipcs_stats_get
    - qb_log
    - qb_ipcs_connection_stats_get
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t s1_connection_closed_fn(qb_ipcs_connection_t *c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_stats_get
      Src: /src/libqb/tests/bms.c:67,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: s1_connection_created_fn
    functionSourceFile: /src/libqb/tests/bms.c
    functionUses: []
    functionsReached:
    - qb_ipcs_stats_get
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void s1_connection_created_fn(qb_ipcs_connection_t *c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:135,1
    - Dst: exit
      Src: /src/libqb/tests/bms.c:137,1
    - Dst: qb_ipcs_destroy
      Src: /src/libqb/tests/bms.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: sigusr1_handler
    functionSourceFile: /src/libqb/tests/bms.c
    functionUses: []
    functionsReached:
    - qb_log
    - qb_ipcs_destroy
    - exit
    linkageType: ''
    returnType: void
    signature: 'static void sigusr1_handler(int32_t num) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_io_channel_unix_get_fd
      Src: /src/libqb/tests/bms.c:175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 3
    argNames:
    - gio
    - condition
    - data
    argTypes:
    - GIOChannel*
    - GIOCondition
    - gpointer
    constantsTouched: []
    func_position:
      end: 178
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 178
    functionName: gio_read_socket
    functionSourceFile: /src/libqb/tests/bms.c
    functionUses: []
    functionsReached:
    - g_io_channel_unix_get_fd
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean gio_read_socket (GIOChannel *gio, GIOCondition condition,
      gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 5
    argNames:
    - p
    - fd
    - evts
    - data
    - fn
    argTypes:
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_ipcs_dispatch_fn_t
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: my_g_dispatch_mod
    functionSourceFile: /src/libqb/tests/bms.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t my_g_dispatch_mod(enum qb_loop_priority p, int32_t
      fd, int32_t evts,\tvoid *data, qb_ipcs_dispatch_fn_t fn) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_index
      Src: /src/libqb/tests/bms.c:224,1
    - Dst: g_io_channel_unref
      Src: /src/libqb/tests/bms.c:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 229
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 229
    functionName: my_g_dispatch_del
    functionSourceFile: /src/libqb/tests/bms.c
    functionUses: []
    functionsReached:
    - qb_array_index
    - g_io_channel_unref
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t my_g_dispatch_del(int32_t fd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_poll_add
      Src: /src/libqb/tests/bms.c:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - p
    - fd
    - evts
    - data
    - fn
    argTypes:
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_ipcs_dispatch_fn_t
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: my_dispatch_add
    functionSourceFile: /src/libqb/tests/bms.c
    functionUses: []
    functionsReached:
    - qb_loop_poll_add
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t my_dispatch_add(enum qb_loop_priority p, int32_t fd,
      int32_t evts,\tvoid *data, qb_ipcs_dispatch_fn_t fn) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_poll_del
      Src: /src/libqb/tests/bms.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: my_dispatch_del
    functionSourceFile: /src/libqb/tests/bms.c
    functionUses: []
    functionsReached:
    - qb_loop_poll_del
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t my_dispatch_del(int32_t fd) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/libqb/tests/bms.c:311,1
    - Dst: qb_perror
      Src: /src/libqb/tests/bms.c:325,1
    - Dst: exit
      Src: /src/libqb/tests/bms.c:333,1
    - Dst: exit
      Src: /src/libqb/tests/bms.c:326,1
    - Dst: qb_ipcs_create
      Src: /src/libqb/tests/bms.c:323,1
    - Dst: qb_ipcs_create
      Src: /src/libqb/tests/bms.c:342,1
    - Dst: qb_perror
      Src: /src/libqb/tests/bms.c:344,1
    - Dst: exit
      Src: /src/libqb/tests/bms.c:345,1
    - Dst: qb_ipcs_poll_handlers_set
      Src: /src/libqb/tests/bms.c:347,1
    - Dst: qb_log
      Src: /src/libqb/tests/bms.c:357,1
    - Dst: show_usage
      Src: /src/libqb/tests/bms.c:306,1
    - Dst: signal
      Src: /src/libqb/tests/bms.c:312,1
    - Dst: exit
      Src: /src/libqb/tests/bms.c:307,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/bms.c:315,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/bms.c:316,1
    - Dst: qb_ipcs_run
      Src: /src/libqb/tests/bms.c:329,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/bms.c:335,1
    - Dst: qb_array_create
      Src: /src/libqb/tests/bms.c:340,1
    - Dst: qb_perror
      Src: /src/libqb/tests/bms.c:351,1
    - Dst: signal
      Src: /src/libqb/tests/bms.c:313,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/bms.c:317,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/bms.c:319,1
    - Dst: qb_loop_create
      Src: /src/libqb/tests/bms.c:322,1
    - Dst: qb_ipcs_poll_handlers_set
      Src: /src/libqb/tests/bms.c:328,1
    - Dst: g_main_loop_new
      Src: /src/libqb/tests/bms.c:338,1
    - Dst: exit
      Src: /src/libqb/tests/bms.c:352,1
    - Dst: getopt
      Src: /src/libqb/tests/bms.c:284,1
    - Dst: qb_perror
      Src: /src/libqb/tests/bms.c:332,1
    - Dst: qb_ipcs_run
      Src: /src/libqb/tests/bms.c:348,1
    - Dst: g_main_loop_run
      Src: /src/libqb/tests/bms.c:355,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 361
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 361
    functionName: main
    functionSourceFile: /src/libqb/tests/bms.c
    functionUses: []
    functionsReached:
    - qb_loop_run
    - getopt
    - g_main_loop_new
    - qb_perror
    - qb_ipcs_create
    - show_usage
    - signal
    - qb_ipcs_poll_handlers_set
    - qb_log_ctl
    - qb_log
    - qb_log_filter_ctl
    - exit
    - g_main_loop_run
    - qb_array_create
    - qb_ipcs_run
    - qb_loop_create
    - qb_log_init
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t main(int32_t argc, char *argv[]) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_create
      Src: /src/libqb/tests/check_array.c:73,1
    - Dst: qb_array_free
      Src: /src/libqb/tests/check_array.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames:
    - test_array_alloc_free
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_array.c
    functionUses: []
    functionsReached:
    - qb_array_free
    - qb_array_create
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_array_alloc_free) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_create
      Src: /src/libqb/tests/check_array.c:85,1
    - Dst: qb_array_index
      Src: /src/libqb/tests/check_array.c:88,1
    - Dst: qb_array_index
      Src: /src/libqb/tests/check_array.c:97,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_array.c:98,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_array.c:89,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_array.c:99,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_array.c:100,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_array.c:101,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_array.c:102,1
    - Dst: qb_array_free
      Src: /src/libqb/tests/check_array.c:105,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 0
    argNames:
    - test_array_correct_retrieval
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 106
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_array.c
    functionUses: []
    functionsReached:
    - qb_array_free
    - qb_array_index
    - qb_array_create
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_array_correct_retrieval) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_create
      Src: /src/libqb/tests/check_array.c:116,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_array.c:122,1
    - Dst: qb_array_index
      Src: /src/libqb/tests/check_array.c:118,1
    - Dst: qb_array_grow
      Src: /src/libqb/tests/check_array.c:121,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_array.c:119,1
    - Dst: qb_array_index
      Src: /src/libqb/tests/check_array.c:124,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_array.c:125,1
    - Dst: qb_array_index
      Src: /src/libqb/tests/check_array.c:129,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_array.c:130,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_array.c:131,1
    - Dst: qb_array_free
      Src: /src/libqb/tests/check_array.c:133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames:
    - test_array_static_memory
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 134
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_array.c
    functionUses: []
    functionsReached:
    - qb_array_grow
    - qb_array_index
    - qb_array_create
    - ck_assert_int_eq
    - qb_array_free
    - ck_assert
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_array_static_memory) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_create
      Src: /src/libqb/tests/check_array.c:45,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_array.c:48,1
    - Dst: qb_array_create
      Src: /src/libqb/tests/check_array.c:47,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_array.c:46,1
    - Dst: qb_array_create
      Src: /src/libqb/tests/check_array.c:49,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_array.c:50,1
    - Dst: qb_array_create
      Src: /src/libqb/tests/check_array.c:53,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_array.c:54,1
    - Dst: qb_array_index
      Src: /src/libqb/tests/check_array.c:57,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_array.c:58,1
    - Dst: qb_array_index
      Src: /src/libqb/tests/check_array.c:59,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_array.c:62,1
    - Dst: qb_array_index
      Src: /src/libqb/tests/check_array.c:61,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_array.c:60,1
    - Dst: qb_array_index
      Src: /src/libqb/tests/check_array.c:63,1
    - Dst: qb_array_free
      Src: /src/libqb/tests/check_array.c:66,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_array.c:64,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 67
    functionName: (test_array_limits)
    functionSourceFile: /src/libqb/tests/check_array.c
    functionUses: []
    functionsReached:
    - qb_array_index
    - qb_array_create
    - ck_assert_int_eq
    - qb_array_free
    - ck_assert
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_array_limits) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/libqb/tests/check_array.c:140,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_array.c:144,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_array.c:142,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_array.c:143,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_array.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 148
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 148
    functionName: array_suite
    functionSourceFile: /src/libqb/tests/check_array.c
    functionUses: []
    functionsReached:
    - suite_create
    - add_tcase
    linkageType: ''
    returnType: END_TEST*
    signature: 'END_TEST static Suite *array_suite(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_suite
      Src: /src/libqb/tests/check_array.c:154,1
    - Dst: atexit
      Src: /src/libqb/tests/check_array.c:158,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_array.c:157,1
    - Dst: srunner_create
      Src: /src/libqb/tests/check_array.c:155,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_array.c:159,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_array.c:160,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_array.c:162,1
    - Dst: srunner_run_all
      Src: /src/libqb/tests/check_array.c:164,1
    - Dst: srunner_ntests_failed
      Src: /src/libqb/tests/check_array.c:165,1
    - Dst: srunner_free
      Src: /src/libqb/tests/check_array.c:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 168
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 168
    functionName: main
    functionSourceFile: /src/libqb/tests/check_array.c
    functionUses: []
    functionsReached:
    - atexit
    - srunner_free
    - qb_log_filter_ctl
    - array_suite
    - srunner_ntests_failed
    - srunner_run_all
    - srunner_create
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t main(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_stopwatch_start
      Src: /src/libqb/tests/bmcpt.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct bm_ctx*
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: bm_start
    functionSourceFile: /src/libqb/tests/bmcpt.c
    functionUses: []
    functionsReached:
    - qb_util_stopwatch_start
    linkageType: ''
    returnType: void
    signature: 'static void bm_start(struct bm_ctx *ctx) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_stopwatch_create
      Src: /src/libqb/tests/bmcpt.c:66,1
    - Dst: perror
      Src: /src/libqb/tests/bmcpt.c:70,1
    - Dst: qb_ipcc_connect
      Src: /src/libqb/tests/bmcpt.c:67,1
    - Dst: QB_MAX
      Src: /src/libqb/tests/bmcpt.c:67,1
    - Dst: exit
      Src: /src/libqb/tests/bmcpt.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct bm_ctx*
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: bmc_connect
    functionSourceFile: /src/libqb/tests/bmcpt.c
    functionUses: []
    functionsReached:
    - qb_ipcc_connect
    - exit
    - qb_util_stopwatch_create
    - QB_MAX
    - perror
    linkageType: ''
    returnType: void
    signature: 'static void bmc_connect(struct bm_ctx *ctx) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcc_send
      Src: /src/libqb/tests/bmcpt.c:97,1
    - Dst: perror
      Src: /src/libqb/tests/bmcpt.c:102,1
    - Dst: qb_ipcc_recv
      Src: /src/libqb/tests/bmcpt.c:111,1
    - Dst: perror
      Src: /src/libqb/tests/bmcpt.c:106,1
    - Dst: perror
      Src: /src/libqb/tests/bmcpt.c:117,1
    - Dst: assert
      Src: /src/libqb/tests/bmcpt.c:119,1
    - Dst: assert
      Src: /src/libqb/tests/bmcpt.c:120,1
    - Dst: assert
      Src: /src/libqb/tests/bmcpt.c:121,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - struct bm_ctx*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 123
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 123
    functionName: bmc_send_nozc
    functionSourceFile: /src/libqb/tests/bmcpt.c
    functionUses: []
    functionsReached:
    - qb_ipcc_recv
    - perror
    - qb_ipcc_send
    - assert
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t bmc_send_nozc(struct bm_ctx *ctx, uint32_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - num
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: sigalrm_handler
    functionSourceFile: /src/libqb/tests/bmcpt.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void sigalrm_handler(int32_t num) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/tests/bmcpt.c:77,1
    - Dst: qb_util_stopwatch_free
      Src: /src/libqb/tests/bmcpt.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct bm_ctx*
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: bmc_disconnect
    functionSourceFile: /src/libqb/tests/bmcpt.c
    functionUses: []
    functionsReached:
    - qb_util_stopwatch_free
    - qb_ipcc_disconnect
    linkageType: ''
    returnType: void
    signature: 'static void bmc_disconnect(struct bm_ctx *ctx) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_stopwatch_stop
      Src: /src/libqb/tests/bmcpt.c:56,1
    - Dst: qb_util_stopwatch_sec_elapsed_get
      Src: /src/libqb/tests/bmcpt.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - operation
    - size
    argTypes:
    - struct bm_ctx*
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: bm_finish
    functionSourceFile: /src/libqb/tests/bmcpt.c
    functionUses: []
    functionsReached:
    - qb_util_stopwatch_stop
    - qb_util_stopwatch_sec_elapsed_get
    linkageType: ''
    returnType: void
    signature: 'static void bm_finish(struct bm_ctx *ctx, const char *operation, int32_t
      size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bmc_connect
      Src: /src/libqb/tests/bmcpt.c:136,1
    - Dst: bm_start
      Src: /src/libqb/tests/bmcpt.c:138,1
    - Dst: bmc_disconnect
      Src: /src/libqb/tests/bmcpt.c:144,1
    - Dst: bmc_send_nozc
      Src: /src/libqb/tests/bmcpt.c:141,1
    - Dst: bm_finish
      Src: /src/libqb/tests/bmcpt.c:143,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 148
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 148
    functionName: benchmark
    functionSourceFile: /src/libqb/tests/bmcpt.c
    functionUses: []
    functionsReached:
    - bmc_send_nozc
    - bmc_disconnect
    - bmc_connect
    - bm_finish
    - bm_start
    linkageType: ''
    returnType: void*
    signature: 'static void *benchmark(void *ctx) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/libqb/tests/bmcpt.c:163,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/libqb/tests/bmcpt.c:172,1
    - Dst: alarm
      Src: /src/libqb/tests/bmcpt.c:166,1
    - Dst: pthread_create
      Src: /src/libqb/tests/bmcpt.c:174,1
    - Dst: pthread_attr_init
      Src: /src/libqb/tests/bmcpt.c:170,1
    - Dst: pthread_join
      Src: /src/libqb/tests/bmcpt.c:178,1
    - Dst: printf
      Src: /src/libqb/tests/bmcpt.c:184,1
    - Dst: printf
      Src: /src/libqb/tests/bmcpt.c:185,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 188
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 188
    functionName: main
    functionSourceFile: /src/libqb/tests/bmcpt.c
    functionUses: []
    functionsReached:
    - alarm
    - signal
    - pthread_attr_setdetachstate
    - pthread_attr_init
    - pthread_create
    - pthread_join
    - printf
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t main(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QB_LIST_DECLARE
      Src: /src/libqb/tests/check_list.c:39,1
    - Dst: qb_list_add_tail
      Src: /src/libqb/tests/check_list.c:51,1
    - Dst: DIMOF
      Src: /src/libqb/tests/check_list.c:45,1
    - Dst: DIMOF
      Src: /src/libqb/tests/check_list.c:49,1
    - Dst: qb_list_add
      Src: /src/libqb/tests/check_list.c:47,1
    - Dst: qb_list_for_each_entry
      Src: /src/libqb/tests/check_list.c:58,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_list.c:59,1
    - Dst: qb_list_for_each_entry_reverse
      Src: /src/libqb/tests/check_list.c:64,1
    - Dst: ck_assert_int_gt
      Src: /src/libqb/tests/check_list.c:65,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_list.c:66,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_list.c:73,1
    - Dst: qb_list_replace
      Src: /src/libqb/tests/check_list.c:72,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_list.c:69,1
    - Dst: qb_list_first_entry
      Src: /src/libqb/tests/check_list.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 75
    functionName: (test_list_iter)
    functionSourceFile: /src/libqb/tests/check_list.c
    functionUses: []
    functionsReached:
    - qb_list_for_each_entry_reverse
    - qb_list_replace
    - qb_list_add_tail
    - ck_assert_int_gt
    - QB_LIST_DECLARE
    - qb_list_for_each_entry
    - ck_assert_int_eq
    - DIMOF
    - qb_list_add
    - qb_list_first_entry
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_list_iter) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_suite
      Src: /src/libqb/tests/check_list.c:92,1
    - Dst: srunner_create
      Src: /src/libqb/tests/check_list.c:93,1
    - Dst: atexit
      Src: /src/libqb/tests/check_list.c:96,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_list.c:95,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_list.c:97,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_list.c:98,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_list.c:100,1
    - Dst: srunner_run_all
      Src: /src/libqb/tests/check_list.c:102,1
    - Dst: srunner_ntests_failed
      Src: /src/libqb/tests/check_list.c:103,1
    - Dst: srunner_free
      Src: /src/libqb/tests/check_list.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: main
    functionSourceFile: /src/libqb/tests/check_list.c
    functionUses: []
    functionsReached:
    - atexit
    - srunner_free
    - qb_log_filter_ctl
    - array_suite
    - srunner_ntests_failed
    - srunner_run_all
    - srunner_create
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t main(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/libqb/tests/check_list.c:81,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_list.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: array_suite
    functionSourceFile: /src/libqb/tests/check_list.c
    functionUses: []
    functionsReached:
    - suite_create
    - add_tcase
    linkageType: ''
    returnType: END_TEST*
    signature: 'END_TEST static Suite *array_suite(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libqb/tests/print_ver.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: main
    functionSourceFile: /src/libqb/tests/print_ver.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_stopwatch_split
      Src: /src/libqb/tests/check_util.c:44,1
    - Dst: usleep
      Src: /src/libqb/tests/check_util.c:47,1
    - Dst: qb_util_stopwatch_split
      Src: /src/libqb/tests/check_util.c:52,1
    - Dst: qb_util_stopwatch_time_split_get
      Src: /src/libqb/tests/check_util.c:67,1
    - Dst: usleep
      Src: /src/libqb/tests/check_util.c:55,1
    - Dst: assert_int_between
      Src: /src/libqb/tests/check_util.c:57,1
    - Dst: usleep
      Src: /src/libqb/tests/check_util.c:70,1
    - Dst: assert_int_between
      Src: /src/libqb/tests/check_util.c:72,1
    - Dst: assert_int_between
      Src: /src/libqb/tests/check_util.c:78,1
    - Dst: qb_util_stopwatch_free
      Src: /src/libqb/tests/check_util.c:97,1
    - Dst: assert_int_between
      Src: /src/libqb/tests/check_util.c:45,1
    - Dst: qb_util_stopwatch_split_ctl
      Src: /src/libqb/tests/check_util.c:42,1
    - Dst: usleep
      Src: /src/libqb/tests/check_util.c:51,1
    - Dst: assert_int_between
      Src: /src/libqb/tests/check_util.c:53,1
    - Dst: assert_int_between
      Src: /src/libqb/tests/check_util.c:68,1
    - Dst: qb_util_stopwatch_split
      Src: /src/libqb/tests/check_util.c:81,1
    - Dst: qb_util_stopwatch_time_split_get
      Src: /src/libqb/tests/check_util.c:85,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_util.c:86,1
    - Dst: assert_int_between
      Src: /src/libqb/tests/check_util.c:49,1
    - Dst: qb_util_stopwatch_split
      Src: /src/libqb/tests/check_util.c:60,1
    - Dst: qb_util_stopwatch_split_last
      Src: /src/libqb/tests/check_util.c:66,1
    - Dst: qb_util_stopwatch_split_last
      Src: /src/libqb/tests/check_util.c:90,1
    - Dst: qb_util_stopwatch_time_split_get
      Src: /src/libqb/tests/check_util.c:92,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_util.c:93,1
    - Dst: qb_util_stopwatch_create
      Src: /src/libqb/tests/check_util.c:40,1
    - Dst: qb_util_stopwatch_split
      Src: /src/libqb/tests/check_util.c:48,1
    - Dst: assert_int_between
      Src: /src/libqb/tests/check_util.c:61,1
    - Dst: usleep
      Src: /src/libqb/tests/check_util.c:59,1
    - Dst: qb_util_stopwatch_split
      Src: /src/libqb/tests/check_util.c:56,1
    - Dst: qb_util_stopwatch_split
      Src: /src/libqb/tests/check_util.c:71,1
    - Dst: qb_util_stopwatch_split_last
      Src: /src/libqb/tests/check_util.c:76,1
    - Dst: qb_util_stopwatch_time_split_get
      Src: /src/libqb/tests/check_util.c:77,1
    - Dst: usleep
      Src: /src/libqb/tests/check_util.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 98
    functionName: (test_check_overwrite)
    functionSourceFile: /src/libqb/tests/check_util.c
    functionUses: []
    functionsReached:
    - assert_int_between
    - usleep
    - qb_util_stopwatch_free
    - qb_util_stopwatch_split
    - qb_util_stopwatch_split_last
    - qb_log
    - qb_util_stopwatch_split_ctl
    - qb_util_stopwatch_time_split_get
    - qb_util_stopwatch_create
    - ck_assert_int_eq
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_check_overwrite) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: usleep
      Src: /src/libqb/tests/check_util.c:110,1
    - Dst: qb_util_stopwatch_split_ctl
      Src: /src/libqb/tests/check_util.c:107,1
    - Dst: qb_util_stopwatch_time_split_get
      Src: /src/libqb/tests/check_util.c:136,1
    - Dst: assert_int_between
      Src: /src/libqb/tests/check_util.c:125,1
    - Dst: qb_util_stopwatch_split
      Src: /src/libqb/tests/check_util.c:124,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_util.c:142,1
    - Dst: qb_util_stopwatch_split
      Src: /src/libqb/tests/check_util.c:112,1
    - Dst: usleep
      Src: /src/libqb/tests/check_util.c:122,1
    - Dst: assert_int_between
      Src: /src/libqb/tests/check_util.c:137,1
    - Dst: qb_util_stopwatch_time_split_get
      Src: /src/libqb/tests/check_util.c:141,1
    - Dst: qb_util_stopwatch_split_last
      Src: /src/libqb/tests/check_util.c:146,1
    - Dst: qb_util_stopwatch_free
      Src: /src/libqb/tests/check_util.c:153,1
    - Dst: qb_util_stopwatch_create
      Src: /src/libqb/tests/check_util.c:105,1
    - Dst: qb_util_stopwatch_start
      Src: /src/libqb/tests/check_util.c:109,1
    - Dst: qb_util_stopwatch_split_last
      Src: /src/libqb/tests/check_util.c:114,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_util.c:115,1
    - Dst: qb_util_stopwatch_split
      Src: /src/libqb/tests/check_util.c:119,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_util.c:129,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_util.c:135,1
    - Dst: assert_int_between
      Src: /src/libqb/tests/check_util.c:120,1
    - Dst: assert_int_between
      Src: /src/libqb/tests/check_util.c:113,1
    - Dst: usleep
      Src: /src/libqb/tests/check_util.c:117,1
    - Dst: qb_util_stopwatch_split_last
      Src: /src/libqb/tests/check_util.c:134,1
    - Dst: qb_util_stopwatch_split
      Src: /src/libqb/tests/check_util.c:128,1
    - Dst: qb_util_stopwatch_time_split_get
      Src: /src/libqb/tests/check_util.c:148,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_util.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 0
    argNames:
    - test_check_normal
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 154
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_util.c
    functionUses: []
    functionsReached:
    - usleep
    - qb_util_stopwatch_start
    - assert_int_between
    - qb_util_stopwatch_free
    - qb_util_stopwatch_split
    - qb_util_stopwatch_split_last
    - qb_log
    - qb_util_stopwatch_split_ctl
    - qb_util_stopwatch_time_split_get
    - qb_util_stopwatch_create
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_check_normal) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/libqb/tests/check_util.c:160,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_util.c:163,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_util.c:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 166
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 166
    functionName: util_suite
    functionSourceFile: /src/libqb/tests/check_util.c
    functionUses: []
    functionsReached:
    - suite_create
    - add_tcase
    linkageType: ''
    returnType: END_TEST*
    signature: 'END_TEST static Suite *util_suite(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: util_suite
      Src: /src/libqb/tests/check_util.c:172,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_util.c:175,1
    - Dst: srunner_create
      Src: /src/libqb/tests/check_util.c:173,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_util.c:177,1
    - Dst: atexit
      Src: /src/libqb/tests/check_util.c:176,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_util.c:178,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_util.c:180,1
    - Dst: srunner_run_all
      Src: /src/libqb/tests/check_util.c:182,1
    - Dst: srunner_ntests_failed
      Src: /src/libqb/tests/check_util.c:183,1
    - Dst: srunner_free
      Src: /src/libqb/tests/check_util.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 186
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 186
    functionName: main
    functionSourceFile: /src/libqb/tests/check_util.c
    functionUses: []
    functionsReached:
    - atexit
    - srunner_free
    - qb_log_filter_ctl
    - srunner_ntests_failed
    - srunner_run_all
    - srunner_create
    - qb_log_init
    - util_suite
    - qb_log_ctl
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t main(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/crash_test_dummy.c:33,1
    - Dst: qb_log
      Src: /src/libqb/tests/crash_test_dummy.c:34,1
    - Dst: qb_log
      Src: /src/libqb/tests/crash_test_dummy.c:37,1
    - Dst: qb_log
      Src: /src/libqb/tests/crash_test_dummy.c:36,1
    - Dst: qb_log
      Src: /src/libqb/tests/crash_test_dummy.c:35,1
    - Dst: qb_log
      Src: /src/libqb/tests/crash_test_dummy.c:38,1
    - Dst: fopen
      Src: /src/libqb/tests/crash_test_dummy.c:40,1
    - Dst: qb_perror
      Src: /src/libqb/tests/crash_test_dummy.c:42,1
    - Dst: fclose
      Src: /src/libqb/tests/crash_test_dummy.c:44,1
    - Dst: qb_leave
      Src: /src/libqb/tests/crash_test_dummy.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: func_one
    functionSourceFile: /src/libqb/tests/crash_test_dummy.c
    functionUses: []
    functionsReached:
    - fclose
    - qb_perror
    - qb_enter
    - fopen
    - qb_log
    - qb_leave
    linkageType: ''
    returnType: void
    signature: 'static void func_one(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/libqb/tests/crash_test_dummy.c:64,1
    - Dst: raise
      Src: /src/libqb/tests/crash_test_dummy.c:67,1
    - Dst: qb_log_blackbox_write_to_file
      Src: /src/libqb/tests/crash_test_dummy.c:65,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/crash_test_dummy.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: sigsegv_handler
    functionSourceFile: /src/libqb/tests/crash_test_dummy.c
    functionUses: []
    functionsReached:
    - signal
    - raise
    - qb_log_blackbox_write_to_file
    - qb_log_ctl
    linkageType: ''
    returnType: void
    signature: 'static void sigsegv_handler(int sig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/crash_test_dummy.c:52,1
    - Dst: qb_log
      Src: /src/libqb/tests/crash_test_dummy.c:55,1
    - Dst: qb_logt
      Src: /src/libqb/tests/crash_test_dummy.c:53,1
    - Dst: qb_log
      Src: /src/libqb/tests/crash_test_dummy.c:54,1
    - Dst: qb_log
      Src: /src/libqb/tests/crash_test_dummy.c:56,1
    - Dst: qb_leave
      Src: /src/libqb/tests/crash_test_dummy.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: func_two
    functionSourceFile: /src/libqb/tests/crash_test_dummy.c
    functionUses: []
    functionsReached:
    - qb_leave
    - qb_log
    - qb_enter
    - qb_logt
    linkageType: ''
    returnType: void
    signature: 'static void func_two(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/libqb/tests/crash_test_dummy.c:77,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/crash_test_dummy.c:82,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/crash_test_dummy.c:84,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/crash_test_dummy.c:80,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/crash_test_dummy.c:79,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/crash_test_dummy.c:85,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/crash_test_dummy.c:86,1
    - Dst: qb_log
      Src: /src/libqb/tests/crash_test_dummy.c:89,1
    - Dst: qb_log
      Src: /src/libqb/tests/crash_test_dummy.c:90,1
    - Dst: qb_log
      Src: /src/libqb/tests/crash_test_dummy.c:91,1
    - Dst: func_two
      Src: /src/libqb/tests/crash_test_dummy.c:99,1
    - Dst: qb_log
      Src: /src/libqb/tests/crash_test_dummy.c:94,1
    - Dst: func_one
      Src: /src/libqb/tests/crash_test_dummy.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 107
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 107
    functionName: main
    functionSourceFile: /src/libqb/tests/crash_test_dummy.c
    functionUses: []
    functionsReached:
    - func_one
    - signal
    - func_two
    - qb_log
    - qb_log_filter_ctl
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t main(int32_t argc, char *argv[]) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/rbreader.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - num
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: sigterm_handler
    functionSourceFile: /src/libqb/tests/rbreader.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void sigterm_handler(int32_t num) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/libqb/tests/rbreader.c:46,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/rbreader.c:49,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/rbreader.c:48,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/rbreader.c:50,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/rbreader.c:52,1
    - Dst: qb_rb_open
      Src: /src/libqb/tests/rbreader.c:54,1
    - Dst: qb_perror
      Src: /src/libqb/tests/rbreader.c:59,1
    - Dst: qb_rb_chunk_read
      Src: /src/libqb/tests/rbreader.c:63,1
    - Dst: usleep
      Src: /src/libqb/tests/rbreader.c:66,1
    - Dst: qb_perror
      Src: /src/libqb/tests/rbreader.c:69,1
    - Dst: qb_log_fini
      Src: /src/libqb/tests/rbreader.c:73,1
    - Dst: qb_rb_close
      Src: /src/libqb/tests/rbreader.c:72,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 75
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 75
    functionName: main
    functionSourceFile: /src/libqb/tests/rbreader.c
    functionUses: []
    functionsReached:
    - usleep
    - qb_perror
    - signal
    - qb_log_filter_ctl
    - qb_rb_open
    - qb_rb_chunk_read
    - qb_log_fini
    - qb_rb_close
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t main(int32_t argc, char *argv[]) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_stopwatch_stop
      Src: /src/libqb/tests/bench-log.c:34,1
    - Dst: strlen
      Src: /src/libqb/tests/bench-log.c:36,1
    - Dst: printf
      Src: /src/libqb/tests/bench-log.c:39,1
    - Dst: printf
      Src: /src/libqb/tests/bench-log.c:37,1
    - Dst: printf
      Src: /src/libqb/tests/bench-log.c:41,1
    - Dst: qb_util_stopwatch_sec_elapsed_get
      Src: /src/libqb/tests/bench-log.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - operation
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: bm_finish
    functionSourceFile: /src/libqb/tests/bench-log.c
    functionUses: []
    functionsReached:
    - qb_util_stopwatch_stop
    - strlen
    - printf
    - qb_util_stopwatch_sec_elapsed_get
    linkageType: ''
    returnType: void
    signature: 'static void bm_finish (const char *operation) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/bench-log.c:76,1
    - Dst: qb_util_stopwatch_start
      Src: /src/libqb/tests/bench-log.c:79,1
    - Dst: bm_finish
      Src: /src/libqb/tests/bench-log.c:68,1
    - Dst: bm_finish
      Src: /src/libqb/tests/bench-log.c:83,1
    - Dst: bm_finish
      Src: /src/libqb/tests/bench-log.c:87,1
    - Dst: qb_util_stopwatch_create
      Src: /src/libqb/tests/bench-log.c:50,1
    - Dst: qb_util_stopwatch_start
      Src: /src/libqb/tests/bench-log.c:64,1
    - Dst: qb_util_stopwatch_start
      Src: /src/libqb/tests/bench-log.c:74,1
    - Dst: qb_log
      Src: /src/libqb/tests/bench-log.c:71,1
    - Dst: log_dict_words
      Src: /src/libqb/tests/bench-log.c:86,1
    - Dst: qb_log_fini
      Src: /src/libqb/tests/bench-log.c:92,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/bench-log.c:56,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/bench-log.c:54,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/bench-log.c:57,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/bench-log.c:58,1
    - Dst: bm_finish
      Src: /src/libqb/tests/bench-log.c:78,1
    - Dst: qb_util_stopwatch_start
      Src: /src/libqb/tests/bench-log.c:69,1
    - Dst: qb_log
      Src: /src/libqb/tests/bench-log.c:66,1
    - Dst: qb_log
      Src: /src/libqb/tests/bench-log.c:81,1
    - Dst: qb_util_stopwatch_start
      Src: /src/libqb/tests/bench-log.c:85,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/bench-log.c:51,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/bench-log.c:52,1
    - Dst: printf
      Src: /src/libqb/tests/bench-log.c:60,1
    - Dst: qb_log
      Src: /src/libqb/tests/bench-log.c:62,1
    - Dst: bm_finish
      Src: /src/libqb/tests/bench-log.c:73,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 95
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 95
    functionName: main
    functionSourceFile: /src/libqb/tests/bench-log.c
    functionUses: []
    functionsReached:
    - qb_util_stopwatch_start
    - log_dict_words
    - qb_log
    - qb_log_filter_ctl
    - qb_log_fini
    - qb_util_stopwatch_create
    - bm_finish
    - qb_log_init
    - printf
    - qb_log_ctl
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcc_connect_continue
      Src: /src/libqb/tests/check_ipc.c:1016,1
    - Dst: qb_loop_stop
      Src: /src/libqb/tests/check_ipc.c:1018,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1017,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - revents
    - data
    argTypes:
    - int32_t
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 1020
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1020
    functionName: process_async_connect
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_ipcc_connect_continue
    - ck_assert_int_eq
    - qb_loop_stop
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t process_async_connect(int32_t fd, int32_t revents,
      void *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:1077,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1078,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1084,1
    - Dst: waitpid
      Src: /src/libqb/tests/check_ipc.c:1083,1
    - Dst: qb_ipcc_connect
      Src: /src/libqb/tests/check_ipc.c:1081,1
    - Dst: poll
      Src: /src/libqb/tests/check_ipc.c:1085,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1089,1
    - Dst: qb_ipcc_sendv_recv
      Src: /src/libqb/tests/check_ipc.c:1100,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1104,1
    - Dst: request_server_exit
      Src: /src/libqb/tests/check_ipc.c:1106,1
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/tests/check_ipc.c:1112,1
    - Dst: verify_graceful_stop
      Src: /src/libqb/tests/check_ipc.c:1107,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1113
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1113
    functionName: test_ipc_txrx_timeout
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_ipcc_connect
    - waitpid
    - qb_ipcc_disconnect
    - request_server_exit
    - verify_graceful_stop
    - run_function_in_new_process
    - ck_assert_int_eq
    - poll
    - qb_ipcc_sendv_recv
    - ck_assert
    linkageType: ''
    returnType: void
    signature: 'static void test_ipc_txrx_timeout(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: aligned
      Src: /src/libqb/tests/check_ipc.c:1494,1
    - Dst: qb_ipcc_event_recv
      Src: /src/libqb/tests/check_ipc.c:1501,1
    - Dst: aligned
      Src: /src/libqb/tests/check_ipc.c:1495,1
    - Dst: aligned
      Src: /src/libqb/tests/check_ipc.c:1496,1
    - Dst: aligned
      Src: /src/libqb/tests/check_ipc.c:1497,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:1508,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:1510,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1513,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:1515,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1521,1
    - Dst: qb_perror
      Src: /src/libqb/tests/check_ipc.c:1525,1
    - Dst: qb_loop_stop
      Src: /src/libqb/tests/check_ipc.c:1531,1
    - Dst: qb_loop_stop
      Src: /src/libqb/tests/check_ipc.c:1526,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - fd
    - revents
    - data
    argTypes:
    - int32_t
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 1535
      start: 1490
    functionDepth: 0
    functionLinenumber: 1490
    functionLinenumberEnd: 1535
    functionName: count_stress_events
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_perror
    - qb_log
    - aligned
    - qb_loop_stop
    - qb_ipcc_event_recv
    - ck_assert_int_eq
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t count_stress_events(int32_t fd, int32_t revents, void
      *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1759,1
    - Dst: test_ipc_stress_connections
      Src: /src/libqb/tests/check_ipc.c:1762,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1761,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames:
    - test_ipc_stress_connections_us
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1754
    functionDepth: 0
    functionLinenumber: 1754
    functionLinenumberEnd: 1764
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - set_ipc_name
    - qb_enter
    - test_ipc_stress_connections
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST #endif START_TEST(test_ipc_stress_connections_us) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_ipc.c:2316,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:2320,1
    - Dst: qb_ipcc_verify_dgram_max_msg_size
      Src: /src/libqb/tests/check_ipc.c:2322,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:2324,1
    - Dst: qb_ipcc_verify_dgram_max_msg_size
      Src: /src/libqb/tests/check_ipc.c:2319,1
    - Dst: system
      Src: /src/libqb/tests/check_ipc.c:2330,1
    - Dst: ck_abort_msg
      Src: /src/libqb/tests/check_ipc.c:2332,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_ipc.c:2339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2341
      start: 2307
    functionDepth: 0
    functionLinenumber: 2307
    functionLinenumberEnd: 2341
    functionName: test_max_dgram_size
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - system
    - qb_log_filter_ctl
    - qb_ipcc_verify_dgram_max_msg_size
    - ck_assert_int_eq
    - ck_abort_msg
    - ck_assert
    linkageType: ''
    returnType: void
    signature: 'static void test_max_dgram_size(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:1032,1
    - Dst: qb_ipcc_connect_async
      Src: /src/libqb/tests/check_ipc.c:1035,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1033,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1036,1
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_ipc.c:1038,1
    - Dst: qb_loop_poll_add
      Src: /src/libqb/tests/check_ipc.c:1039,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1042,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_ipc.c:1043,1
    - Dst: qb_ipcc_sendv_recv
      Src: /src/libqb/tests/check_ipc.c:1052,1
    - Dst: ck_assert_int_ge
      Src: /src/libqb/tests/check_ipc.c:1056,1
    - Dst: verify_graceful_stop
      Src: /src/libqb/tests/check_ipc.c:1059,1
    - Dst: request_server_exit
      Src: /src/libqb/tests/check_ipc.c:1058,1
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/tests/check_ipc.c:1062,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1063
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1063
    functionName: test_ipc_connect_async
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_loop_run
    - qb_ipcc_disconnect
    - ck_assert_int_ge
    - qb_loop_create
    - request_server_exit
    - qb_ipcc_connect_async
    - verify_graceful_stop
    - run_function_in_new_process
    - ck_assert_int_eq
    - qb_loop_poll_add
    - qb_ipcc_sendv_recv
    - ck_assert
    linkageType: ''
    returnType: void
    signature: 'static void test_ipc_connect_async(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcc_event_recv
      Src: /src/libqb/tests/check_ipc.c:1544,1
    - Dst: qb_loop_stop
      Src: /src/libqb/tests/check_ipc.c:1552,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - revents
    - data
    argTypes:
    - int32_t
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 1556
      start: 1537
    functionDepth: 0
    functionLinenumber: 1537
    functionLinenumberEnd: 1556
    functionName: count_bulk_events
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_ipcc_event_recv
    - qb_loop_stop
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t count_bulk_events(int32_t fd, int32_t revents, void
      *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:2345,1
    - Dst: test_max_dgram_size
      Src: /src/libqb/tests/check_ipc.c:2346,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:2347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2343
    functionDepth: 0
    functionLinenumber: 2343
    functionLinenumberEnd: 2348
    functionName: (test_ipc_max_dgram_size)
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - test_max_dgram_size
    - qb_enter
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_ipc_max_dgram_size) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/libqb/tests/check_ipc.c:225,1
    - Dst: fclose
      Src: /src/libqb/tests/check_ipc.c:228,1
    - Dst: fgets
      Src: /src/libqb/tests/check_ipc.c:227,1
    - Dst: strrchr
      Src: /src/libqb/tests/check_ipc.c:234,1
    - Dst: snprintf
      Src: /src/libqb/tests/check_ipc.c:229,1
    - Dst: strncpy
      Src: /src/libqb/tests/check_ipc.c:235,1
    - Dst: snprintf
      Src: /src/libqb/tests/check_ipc.c:239,1
    - Dst: getpid
      Src: /src/libqb/tests/check_ipc.c:240,1
    - Dst: time
      Src: /src/libqb/tests/check_ipc.c:240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 242
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 242
    functionName: set_ipc_name
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - fclose
    - fgets
    - fopen
    - strrchr
    - strncpy
    - time
    - getpid
    - snprintf
    linkageType: ''
    returnType: void
    signature: 'static void set_ipc_name(const char *prefix) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pipe_reader
      Src: /src/libqb/tests/check_ipc.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: gio_pipe_reader
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - pipe_reader
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean gio_pipe_reader(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1307,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1309,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1311,1
    - Dst: test_ipc_connect_async
      Src: /src/libqb/tests/check_ipc.c:1310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames:
    - test_ipc_us_connect_async
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1303
    functionDepth: 0
    functionLinenumber: 1303
    functionLinenumberEnd: 1312
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - set_ipc_name
    - qb_enter
    - test_ipc_connect_async
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_us_connect_async) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcc_connect
      Src: /src/libqb/tests/check_ipc.c:1429,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1437,1
    - Dst: poll
      Src: /src/libqb/tests/check_ipc.c:1433,1
    - Dst: waitpid
      Src: /src/libqb/tests/check_ipc.c:1431,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1432,1
    - Dst: ready_signaller
      Src: /src/libqb/tests/check_ipc.c:1440,1
    - Dst: QB_MIN
      Src: /src/libqb/tests/check_ipc.c:1443,1
    - Dst: send_and_check
      Src: /src/libqb/tests/check_ipc.c:1451,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1418
    functionDepth: 0
    functionLinenumber: 1418
    functionLinenumberEnd: 1457
    functionName: ''
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_ipcc_connect
    - waitpid
    - send_and_check
    - QB_MIN
    - poll
    - ck_assert_int_eq
    - ready_signaller
    - ck_assert
    linkageType: ''
    returnType: NEW_PROCESS_RUNNER(client_dispatch, ready_signaller, signaller_data,
      data)
    signature: 'static inline NEW_PROCESS_RUNNER(client_dispatch, ready_signaller,
      signaller_data, data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:2211,1
    - Dst: test_ipc_event_on_created
      Src: /src/libqb/tests/check_ipc.c:2215,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:2214,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:2216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames:
    - test_ipc_event_on_created_shm
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2217
      start: 2207
    functionDepth: 0
    functionLinenumber: 2207
    functionLinenumberEnd: 2217
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - test_ipc_event_on_created
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_event_on_created_shm) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:246,1
    - Dst: perror
      Src: /src/libqb/tests/check_ipc.c:256,1
    - Dst: write
      Src: /src/libqb/tests/check_ipc.c:254,1
    - Dst: exit
      Src: /src/libqb/tests/check_ipc.c:257,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:263,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:265,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - fd
    - revents
    - data
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 267
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 267
    functionName: pipe_writer
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_enter
    - qb_log
    - write
    - qb_leave
    - exit
    - perror
    linkageType: ''
    returnType: int
    signature: 'static int pipe_writer(int fd, int revents, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pipe_writer
      Src: /src/libqb/tests/check_ipc.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: gio_pipe_writer
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - pipe_writer
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean gio_pipe_writer(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_io_channel_unix_get_fd
      Src: /src/libqb/tests/check_ipc.c:512,1
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:514,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 3
    argNames:
    - gio
    - condition
    - data
    argTypes:
    - GIOChannel*
    - GIOCondition
    - gpointer
    constantsTouched: []
    func_position:
      end: 517
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 517
    functionName: gio_read_socket
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - g_io_channel_unix_get_fd
    - qb_enter
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean gio_read_socket(GIOChannel * gio, GIOCondition condition,
      gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:1465,1
    - Dst: client_dispatch
      Src: /src/libqb/tests/check_ipc.c:1471,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1466,1
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/tests/check_ipc.c:1474,1
    - Dst: request_server_exit
      Src: /src/libqb/tests/check_ipc.c:1473,1
    - Dst: verify_graceful_stop
      Src: /src/libqb/tests/check_ipc.c:1475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1476
      start: 1459
    functionDepth: 0
    functionLinenumber: 1459
    functionLinenumberEnd: 1476
    functionName: test_ipc_dispatch
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_ipcc_disconnect
    - client_dispatch
    - request_server_exit
    - verify_graceful_stop
    - run_function_in_new_process
    - ck_assert
    linkageType: ''
    returnType: void
    signature: 'static void test_ipc_dispatch(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_server_exit
      Src: /src/libqb/tests/check_ipc.c:1780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames:
    - connected_signaller
    - _
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1775
    functionDepth: 0
    functionLinenumber: 1775
    functionLinenumberEnd: 1781
    functionName: READY_SIGNALLER
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - request_server_exit
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST static READY_SIGNALLER(connected_signaller, _) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/libqb/tests/check_ipc.c:2069,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:2078,1
    - Dst: poll
      Src: /src/libqb/tests/check_ipc.c:2085,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:2109,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:2110,1
    - Dst: stat
      Src: /src/libqb/tests/check_ipc.c:2108,1
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/tests/check_ipc.c:2113,1
    - Dst: strrchr
      Src: /src/libqb/tests/check_ipc.c:2098,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:2102,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:2105,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:2103,1
    - Dst: stat
      Src: /src/libqb/tests/check_ipc.c:2100,1
    - Dst: verify_graceful_stop
      Src: /src/libqb/tests/check_ipc.c:2114,1
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:2077,1
    - Dst: waitpid
      Src: /src/libqb/tests/check_ipc.c:2083,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:2089,1
    - Dst: strcpy
      Src: /src/libqb/tests/check_ipc.c:2097,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:2111,1
    - Dst: qb_ipcc_connect
      Src: /src/libqb/tests/check_ipc.c:2081,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:2084,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:2104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2115
      start: 2059
    functionDepth: 0
    functionLinenumber: 2059
    functionLinenumberEnd: 2115
    functionName: (test_ipc_server_perms)
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_ipcc_connect
    - waitpid
    - qb_ipcc_disconnect
    - stat
    - strcpy
    - strrchr
    - verify_graceful_stop
    - run_function_in_new_process
    - ck_assert_int_eq
    - poll
    - ck_assert
    - getuid
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_ipc_server_perms) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1788,1
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:1804,1
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:1798,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1800,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1790,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1807,1
    - Dst: sched_yield
      Src: /src/libqb/tests/check_ipc.c:1810,1
    - Dst: client_dispatch
      Src: /src/libqb/tests/check_ipc.c:1813,1
    - Dst: verify_graceful_stop
      Src: /src/libqb/tests/check_ipc.c:1814,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1817,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1783
    functionDepth: 0
    functionLinenumber: 1783
    functionLinenumberEnd: 1818
    functionName: (test_ipc_us_native_prio_dlock)
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - set_ipc_name
    - qb_enter
    - client_dispatch
    - sched_yield
    - qb_leave
    - verify_graceful_stop
    - run_function_in_new_process
    - ck_assert
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_ipc_us_native_prio_dlock) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:660,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:668,1
    - Dst: free
      Src: /src/libqb/tests/check_ipc.c:664,1
    - Dst: qb_loop_stop
      Src: /src/libqb/tests/check_ipc.c:666,1
    - Dst: qb_ipcs_context_get
      Src: /src/libqb/tests/check_ipc.c:663,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 669
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 669
    functionName: s1_connection_destroyed
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_ipcs_context_get
    - qb_enter
    - qb_leave
    - qb_loop_stop
    - free
    linkageType: ''
    returnType: void
    signature: 'static void s1_connection_destroyed(qb_ipcs_connection_t *c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1297,1
    - Dst: test_ipc_connect_async
      Src: /src/libqb/tests/check_ipc.c:1300,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1301,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames:
    - test_ipc_shm_connect_async
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1302
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - set_ipc_name
    - qb_enter
    - test_ipc_connect_async
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_shm_connect_async) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_connection_auth_set
      Src: /src/libqb/tests/check_ipc.c:675,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - c
    - uid
    - gid
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 678
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 678
    functionName: s1_connection_accept
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_ipcs_connection_auth_set
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t s1_connection_accept(qb_ipcs_connection_t *c, uid_t
      uid, gid_t gid) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcc_send
      Src: /src/libqb/tests/check_ipc.c:965,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:966,1
    - Dst: qb_perror
      Src: /src/libqb/tests/check_ipc.c:979,1
    - Dst: qb_ipcc_send
      Src: /src/libqb/tests/check_ipc.c:969,1
    - Dst: qb_ipcc_event_recv
      Src: /src/libqb/tests/check_ipc.c:985,1
    - Dst: qb_ipcc_recv
      Src: /src/libqb/tests/check_ipc.c:989,1
    - Dst: qb_perror
      Src: /src/libqb/tests/check_ipc.c:998,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1002,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1003,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1004,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 4
    argNames:
    - req_id
    - size
    - ms_timeout
    - expect_perfection
    argTypes:
    - int32_t
    - uint32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1007
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 1007
    functionName: send_and_check
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_ipcc_recv
    - qb_perror
    - qb_ipcc_event_recv
    - ck_assert_int_eq
    - qb_ipcc_send
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t send_and_check(int32_t req_id, uint32_t size,\t int32_t
      ms_timeout, int32_t expect_perfection) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/libqb/tests/check_ipc.c:1696,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1702,1
    - Dst: send_and_check
      Src: /src/libqb/tests/check_ipc.c:1718,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1727,1
    - Dst: qb_ipcc_sendv_recv
      Src: /src/libqb/tests/check_ipc.c:1732,1
    - Dst: aligned
      Src: /src/libqb/tests/check_ipc.c:1665,1
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:1689,1
    - Dst: aligned
      Src: /src/libqb/tests/check_ipc.c:1668,1
    - Dst: qb_ipcc_connect
      Src: /src/libqb/tests/check_ipc.c:1694,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1697,1
    - Dst: qb_ipcc_get_buffer_size
      Src: /src/libqb/tests/check_ipc.c:1704,1
    - Dst: ck_assert_int_ge
      Src: /src/libqb/tests/check_ipc.c:1705,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1716,1
    - Dst: qb_loop_poll_add
      Src: /src/libqb/tests/check_ipc.c:1713,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_ipc.c:1720,1
    - Dst: aligned
      Src: /src/libqb/tests/check_ipc.c:1667,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1691,1
    - Dst: poll
      Src: /src/libqb/tests/check_ipc.c:1698,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:1707,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1712,1
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_ipc.c:1710,1
    - Dst: qb_ipcc_fd_get
      Src: /src/libqb/tests/check_ipc.c:1711,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:1736,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1737,1
    - Dst: verify_graceful_stop
      Src: /src/libqb/tests/check_ipc.c:1741,1
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/tests/check_ipc.c:1740,1
    - Dst: aligned
      Src: /src/libqb/tests/check_ipc.c:1666,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1721,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 63
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1742
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1742
    functionName: test_ipc_stress_test
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_loop_run
    - qb_ipcc_connect
    - qb_loop_poll_add
    - waitpid
    - qb_ipcc_disconnect
    - ck_assert_int_ge
    - qb_log
    - qb_ipcc_get_buffer_size
    - qb_loop_create
    - aligned
    - send_and_check
    - verify_graceful_stop
    - qb_ipcc_fd_get
    - run_function_in_new_process
    - ck_assert_int_eq
    - poll
    - qb_ipcc_sendv_recv
    - ck_assert
    linkageType: ''
    returnType: void
    signature: 'static void test_ipc_stress_test(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:2266,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:2273,1
    - Dst: waitpid
      Src: /src/libqb/tests/check_ipc.c:2272,1
    - Dst: qb_ipcc_connect
      Src: /src/libqb/tests/check_ipc.c:2270,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:2267,1
    - Dst: poll
      Src: /src/libqb/tests/check_ipc.c:2274,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:2278,1
    - Dst: sleep
      Src: /src/libqb/tests/check_ipc.c:2280,1
    - Dst: kill_server
      Src: /src/libqb/tests/check_ipc.c:2282,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2283
      start: 2256
    functionDepth: 0
    functionLinenumber: 2256
    functionLinenumberEnd: 2283
    functionName: test_ipc_service_ref_count
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - sleep
    - qb_ipcc_connect
    - waitpid
    - run_function_in_new_process
    - ck_assert_int_eq
    - poll
    - kill_server
    - ck_assert
    linkageType: ''
    returnType: void
    signature: 'static void test_ipc_service_ref_count(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:271,1
    - Dst: read
      Src: /src/libqb/tests/check_ipc.c:275,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:281,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:280,1
    - Dst: sleep
      Src: /src/libqb/tests/check_ipc.c:282,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - fd
    - revents
    - data
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 286
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 286
    functionName: pipe_reader
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - sleep
    - qb_enter
    - qb_log
    - qb_leave
    - read
    - ck_assert
    linkageType: ''
    returnType: int
    signature: 'static int pipe_reader(int fd, int revents, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:2236,1
    - Dst: sprintf
      Src: /src/libqb/tests/check_ipc.c:2240,1
    - Dst: test_ipc_server_fail
      Src: /src/libqb/tests/check_ipc.c:2248,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:2238,1
    - Dst: unlink
      Src: /src/libqb/tests/check_ipc.c:2245,1
    - Dst: unlink
      Src: /src/libqb/tests/check_ipc.c:2250,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:2251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2252
      start: 2231
    functionDepth: 0
    functionLinenumber: 2231
    functionLinenumberEnd: 2252
    functionName: (test_ipcc_truncate_when_unlink_fails_shm)
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - sprintf
    - set_ipc_name
    - qb_enter
    - test_ipc_server_fail
    - qb_leave
    - unlink
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_ipcc_truncate_when_unlink_fails_shm) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/libqb/tests/check_ipc.c:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 731
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 731
    functionName: ''
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - kill
    linkageType: ''
    returnType: READY_SIGNALLER(usr1_signaller, parent_target)
    signature: 'static READY_SIGNALLER(usr1_signaller, parent_target) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_poll_del
      Src: /src/libqb/tests/check_ipc.c:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 487
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 487
    functionName: my_dispatch_del
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_loop_poll_del
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t my_dispatch_del(int32_t fd) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_ipc.c:1569,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1576,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_ipc.c:1573,1
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:1575,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_ipc.c:1571,1
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/tests/check_ipc.c:1580,1
    - Dst: qb_ipcc_connect
      Src: /src/libqb/tests/check_ipc.c:1584,1
    - Dst: waitpid
      Src: /src/libqb/tests/check_ipc.c:1586,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1587,1
    - Dst: sleep
      Src: /src/libqb/tests/check_ipc.c:1588,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1592,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_ipc.c:1604,1
    - Dst: request_server_exit
      Src: /src/libqb/tests/check_ipc.c:1608,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:1595,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_ipc.c:1602,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_ipc.c:1606,1
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/tests/check_ipc.c:1609,1
    - Dst: verify_graceful_stop
      Src: /src/libqb/tests/check_ipc.c:1610,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1612
      start: 1558
    functionDepth: 0
    functionLinenumber: 1558
    functionLinenumberEnd: 1612
    functionName: test_ipc_stress_connections
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - sleep
    - qb_ipcc_connect
    - qb_ipcc_disconnect
    - waitpid
    - qb_log
    - qb_log_filter_ctl
    - request_server_exit
    - verify_graceful_stop
    - run_function_in_new_process
    - ck_assert_int_eq
    - ck_assert
    - qb_log_ctl
    linkageType: ''
    returnType: void
    signature: 'static void test_ipc_stress_connections(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:894,1
    - Dst: qb_ipcc_is_connected
      Src: /src/libqb/tests/check_ipc.c:894,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:904,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:903,1
    - Dst: qb_ipcc_sendv_recv
      Src: /src/libqb/tests/check_ipc.c:896,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 906
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 906
    functionName: request_server_exit
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_log
    - qb_ipcc_is_connected
    - qb_ipcc_sendv_recv
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: 'static void request_server_exit(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1480,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1482,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1484,1
    - Dst: test_ipc_dispatch
      Src: /src/libqb/tests/check_ipc.c:1483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1478
    functionDepth: 0
    functionLinenumber: 1478
    functionLinenumberEnd: 1485
    functionName: (test_ipc_dispatch_us)
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - test_ipc_dispatch
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_ipc_dispatch_us) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:2026,1
    - Dst: test_ipc_dispatch
      Src: /src/libqb/tests/check_ipc.c:2029,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:2028,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:2030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames:
    - test_ipc_dispatch_shm
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2022
    functionDepth: 0
    functionLinenumber: 2022
    functionLinenumberEnd: 2031
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - test_ipc_dispatch
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_dispatch_shm) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1327,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1331,1
    - Dst: test_ipc_getauth
      Src: /src/libqb/tests/check_ipc.c:1330,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames:
    - test_ipc_txrx_us_getauth
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1323
    functionDepth: 0
    functionLinenumber: 1323
    functionLinenumberEnd: 1332
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - set_ipc_name
    - qb_enter
    - test_ipc_getauth
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_txrx_us_getauth) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:2047,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:2049,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:2051,1
    - Dst: test_ipc_stress_connections
      Src: /src/libqb/tests/check_ipc.c:2050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames:
    - test_ipc_stress_connections_shm
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 2043
    functionDepth: 0
    functionLinenumber: 2043
    functionLinenumberEnd: 2052
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - set_ipc_name
    - qb_enter
    - test_ipc_stress_connections
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_stress_connections_shm) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_index
      Src: /src/libqb/tests/check_ipc.c:595,1
    - Dst: g_source_remove
      Src: /src/libqb/tests/check_ipc.c:596,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 600
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 600
    functionName: gio_dispatch_del
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_array_index
    - g_source_remove
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t gio_dispatch_del(int32_t fd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/libqb/tests/check_ipc.c:911,1
    - Dst: waitpid
      Src: /src/libqb/tests/check_ipc.c:912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    constantsTouched: []
    func_position:
      end: 913
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 913
    functionName: kill_server
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - kill
    - waitpid
    linkageType: ''
    returnType: void
    signature: 'static void kill_server(pid_t pid) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1632,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1646,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1651,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1654,1
    - Dst: verify_graceful_stop
      Src: /src/libqb/tests/check_ipc.c:1658,1
    - Dst: qb_loop_poll_add
      Src: /src/libqb/tests/check_ipc.c:1643,1
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:1625,1
    - Dst: qb_ipcc_connect
      Src: /src/libqb/tests/check_ipc.c:1629,1
    - Dst: poll
      Src: /src/libqb/tests/check_ipc.c:1633,1
    - Dst: request_server_exit
      Src: /src/libqb/tests/check_ipc.c:1656,1
    - Dst: send_and_check
      Src: /src/libqb/tests/check_ipc.c:1648,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_ipc.c:1653,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1626,1
    - Dst: waitpid
      Src: /src/libqb/tests/check_ipc.c:1631,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1637,1
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_ipc.c:1640,1
    - Dst: qb_ipcc_fd_get
      Src: /src/libqb/tests/check_ipc.c:1641,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1642,1
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/tests/check_ipc.c:1657,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1659
      start: 1614
    functionDepth: 0
    functionLinenumber: 1614
    functionLinenumberEnd: 1659
    functionName: test_ipc_bulk_events
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_loop_run
    - qb_ipcc_connect
    - qb_loop_poll_add
    - waitpid
    - qb_ipcc_disconnect
    - qb_loop_create
    - send_and_check
    - request_server_exit
    - verify_graceful_stop
    - qb_ipcc_fd_get
    - run_function_in_new_process
    - ck_assert_int_eq
    - poll
    - ck_assert
    linkageType: ''
    returnType: void
    signature: 'static void test_ipc_bulk_events(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:1125,1
    - Dst: qb_ipcc_connect
      Src: /src/libqb/tests/check_ipc.c:1129,1
    - Dst: waitpid
      Src: /src/libqb/tests/check_ipc.c:1131,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1126,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1132,1
    - Dst: poll
      Src: /src/libqb/tests/check_ipc.c:1133,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1137,1
    - Dst: QB_MIN
      Src: /src/libqb/tests/check_ipc.c:1139,1
    - Dst: send_and_check
      Src: /src/libqb/tests/check_ipc.c:1144,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1151,1
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/tests/check_ipc.c:1152,1
    - Dst: verify_graceful_stop
      Src: /src/libqb/tests/check_ipc.c:1159,1
    - Dst: kill_server
      Src: /src/libqb/tests/check_ipc.c:1155,1
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/tests/check_ipc.c:1158,1
    - Dst: request_server_exit
      Src: /src/libqb/tests/check_ipc.c:1157,1
    - Dst: sleep
      Src: /src/libqb/tests/check_ipc.c:1154,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1161
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1161
    functionName: test_ipc_txrx
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - sleep
    - qb_ipcc_connect
    - waitpid
    - qb_ipcc_disconnect
    - send_and_check
    - request_server_exit
    - QB_MIN
    - verify_graceful_stop
    - run_function_in_new_process
    - ck_assert_int_eq
    - poll
    - kill_server
    - ck_assert
    linkageType: ''
    returnType: void
    signature: 'static void test_ipc_txrx(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1769,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1771,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1773,1
    - Dst: test_ipc_bulk_events
      Src: /src/libqb/tests/check_ipc.c:1772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames:
    - test_ipc_bulk_events_us
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1765
    functionDepth: 0
    functionLinenumber: 1765
    functionLinenumberEnd: 1774
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - test_ipc_bulk_events
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_bulk_events_us) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:211,1
    - Dst: qb_ipcs_destroy
      Src: /src/libqb/tests/check_ipc.c:212,1
    - Dst: exit
      Src: /src/libqb/tests/check_ipc.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - rsignal
    - data
    argTypes:
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 214
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 214
    functionName: exit_handler
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_log
    - qb_ipcs_destroy
    - exit
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t exit_handler(int32_t rsignal, void *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1176,1
    - Dst: poll
      Src: /src/libqb/tests/check_ipc.c:1183,1
    - Dst: qb_ipcc_auth_get
      Src: /src/libqb/tests/check_ipc.c:1192,1
    - Dst: getuid
      Src: /src/libqb/tests/check_ipc.c:1198,1
    - Dst: getgid
      Src: /src/libqb/tests/check_ipc.c:1199,1
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/tests/check_ipc.c:1202,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1190,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1196,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1198,1
    - Dst: verify_graceful_stop
      Src: /src/libqb/tests/check_ipc.c:1203,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1199,1
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:1175,1
    - Dst: waitpid
      Src: /src/libqb/tests/check_ipc.c:1181,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1187,1
    - Dst: request_server_exit
      Src: /src/libqb/tests/check_ipc.c:1201,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1193,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1182,1
    - Dst: qb_ipcc_connect
      Src: /src/libqb/tests/check_ipc.c:1179,1
    - Dst: qb_ipcc_auth_get
      Src: /src/libqb/tests/check_ipc.c:1189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1204
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1204
    functionName: test_ipc_getauth
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_ipcc_connect
    - waitpid
    - qb_ipcc_disconnect
    - qb_ipcc_auth_get
    - request_server_exit
    - verify_graceful_stop
    - run_function_in_new_process
    - ck_assert_int_eq
    - poll
    - getgid
    - ck_assert
    - getuid
    linkageType: ''
    returnType: void
    signature: 'static void test_ipc_getauth(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1405
    functionDepth: 0
    functionLinenumber: 1405
    functionLinenumberEnd: 1410
    functionName: my_res
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST struct my_res '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1747,1
    - Dst: test_ipc_stress_test
      Src: /src/libqb/tests/check_ipc.c:1751,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1750,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1745
    functionDepth: 0
    functionLinenumber: 1745
    functionLinenumberEnd: 1753
    functionName: (test_ipc_stress_test_us)
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - test_ipc_stress_test
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_ipc_stress_test_us) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1317,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1321,1
    - Dst: test_ipc_getauth
      Src: /src/libqb/tests/check_ipc.c:1320,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames:
    - test_ipc_txrx_shm_getauth
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1313
    functionDepth: 0
    functionLinenumber: 1313
    functionLinenumberEnd: 1322
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - set_ipc_name
    - qb_enter
    - test_ipc_getauth
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_txrx_shm_getauth) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:2201,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:2203,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:2205,1
    - Dst: test_ipc_bulk_events
      Src: /src/libqb/tests/check_ipc.c:2204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames:
    - test_ipc_bulk_events_shm
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2206
      start: 2196
    functionDepth: 0
    functionLinenumber: 2196
    functionLinenumberEnd: 2206
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - test_ipc_bulk_events
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST #endif START_TEST(test_ipc_bulk_events_shm) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:2298,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:2302,1
    - Dst: test_ipc_service_ref_count
      Src: /src/libqb/tests/check_ipc.c:2301,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:2300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames:
    - test_ipc_service_ref_count_us
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2294
    functionDepth: 0
    functionLinenumber: 2294
    functionLinenumberEnd: 2303
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - set_ipc_name
    - qb_enter
    - test_ipc_service_ref_count
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_service_ref_count_us) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:526,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 530
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 530
    functionName: gio_poll_destroy
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void gio_poll_destroy(gpointer data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - signal
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 722
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 722
    functionName: usr1_bit_setter
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void usr1_bit_setter(int signal) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:540,1
    - Dst: g_io_channel_unix_new
      Src: /src/libqb/tests/check_ipc.c:554,1
    - Dst: g_io_add_watch_full
      Src: /src/libqb/tests/check_ipc.c:566,1
    - Dst: g_source_remove
      Src: /src/libqb/tests/check_ipc.c:550,1
    - Dst: qb_array_index
      Src: /src/libqb/tests/check_ipc.c:542,1
    - Dst: conv_prio_libqb2glib
      Src: /src/libqb/tests/check_ipc.c:566,1
    - Dst: g_io_channel_unref
      Src: /src/libqb/tests/check_ipc.c:572,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 6
    argNames:
    - p
    - fd
    - evts
    - data
    - fn
    - is_new
    argTypes:
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_ipcs_dispatch_fn_t
    - gboolean
    constantsTouched: []
    func_position:
      end: 575
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 575
    functionName: gio_dispatch_update
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - g_io_add_watch_full
    - qb_array_index
    - qb_enter
    - g_io_channel_unix_new
    - g_io_channel_unref
    - conv_prio_libqb2glib
    - g_source_remove
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t gio_dispatch_update(enum qb_loop_priority p, int32_t
      fd, int32_t evts, void *data, qb_ipcs_dispatch_fn_t fn, gboolean is_new) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - source
    - timeout
    argTypes:
    - GSource*
    - gint*
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: gio_source_prepare
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_enter
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean gio_source_prepare(GSource *source, gint *timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1385,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1388,1
    - Dst: test_ipc_txrx
      Src: /src/libqb/tests/check_ipc.c:1390,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames:
    - test_ipc_txrx_us_tmo
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1381
    functionDepth: 0
    functionLinenumber: 1381
    functionLinenumberEnd: 1392
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - test_ipc_txrx
    - qb_leave
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_txrx_us_tmo) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1397,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1401,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1403,1
    - Dst: test_ipc_txrx
      Src: /src/libqb/tests/check_ipc.c:1402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames:
    - test_ipc_fc_us
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1393
    functionDepth: 0
    functionLinenumber: 1393
    functionLinenumberEnd: 1404
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - test_ipc_txrx
    - qb_leave
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_fc_us) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_response_send
      Src: /src/libqb/tests/check_ipc.c:311,1
    - Dst: qb_perror
      Src: /src/libqb/tests/check_ipc.c:313,1
    - Dst: free
      Src: /src/libqb/tests/check_ipc.c:341,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:345,1
    - Dst: qb_ipcs_event_send
      Src: /src/libqb/tests/check_ipc.c:348,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:360,1
    - Dst: perror
      Src: /src/libqb/tests/check_ipc.c:421,1
    - Dst: fcntl
      Src: /src/libqb/tests/check_ipc.c:425,1
    - Dst: g_source_new
      Src: /src/libqb/tests/check_ipc.c:429,1
    - Dst: g_source_new
      Src: /src/libqb/tests/check_ipc.c:430,1
    - Dst: g_source_set_callback
      Src: /src/libqb/tests/check_ipc.c:436,1
    - Dst: g_source_attach
      Src: /src/libqb/tests/check_ipc.c:441,1
    - Dst: g_source_add_unix_fd
      Src: /src/libqb/tests/check_ipc.c:439,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:315,1
    - Dst: qb_ipcs_request_rate_limit
      Src: /src/libqb/tests/check_ipc.c:319,1
    - Dst: qb_perror
      Src: /src/libqb/tests/check_ipc.c:328,1
    - Dst: qb_ipcs_connection_stats_get_2
      Src: /src/libqb/tests/check_ipc.c:339,1
    - Dst: qb_ipcs_event_send
      Src: /src/libqb/tests/check_ipc.c:364,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:354,1
    - Dst: aligned
      Src: /src/libqb/tests/check_ipc.c:378,1
    - Dst: aligned
      Src: /src/libqb/tests/check_ipc.c:381,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:389,1
    - Dst: qb_ipcs_event_send
      Src: /src/libqb/tests/check_ipc.c:402,1
    - Dst: g_source_set_priority
      Src: /src/libqb/tests/check_ipc.c:432,1
    - Dst: qb_ipcs_event_send
      Src: /src/libqb/tests/check_ipc.c:325,1
    - Dst: qb_ipcs_response_send
      Src: /src/libqb/tests/check_ipc.c:359,1
    - Dst: usleep
      Src: /src/libqb/tests/check_ipc.c:368,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:349,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:372,1
    - Dst: aligned
      Src: /src/libqb/tests/check_ipc.c:380,1
    - Dst: qb_perror
      Src: /src/libqb/tests/check_ipc.c:410,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:411,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:414,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:422,1
    - Dst: conv_prio_libqb2glib
      Src: /src/libqb/tests/check_ipc.c:432,1
    - Dst: g_source_set_callback
      Src: /src/libqb/tests/check_ipc.c:437,1
    - Dst: g_source_set_can_recurse
      Src: /src/libqb/tests/check_ipc.c:434,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:431,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:443,1
    - Dst: fcntl
      Src: /src/libqb/tests/check_ipc.c:424,1
    - Dst: exit
      Src: /src/libqb/tests/check_ipc.c:453,1
    - Dst: qb_ipcs_disconnect
      Src: /src/libqb/tests/check_ipc.c:456,1
    - Dst: qb_ipcs_event_send
      Src: /src/libqb/tests/check_ipc.c:344,1
    - Dst: free
      Src: /src/libqb/tests/check_ipc.c:355,1
    - Dst: qb_ipcs_connection_stats_get_2
      Src: /src/libqb/tests/check_ipc.c:353,1
    - Dst: aligned
      Src: /src/libqb/tests/check_ipc.c:379,1
    - Dst: qb_ipcs_response_send
      Src: /src/libqb/tests/check_ipc.c:388,1
    - Dst: usleep
      Src: /src/libqb/tests/check_ipc.c:406,1
    - Dst: pipe
      Src: /src/libqb/tests/check_ipc.c:420,1
    - Dst: g_source_set_priority
      Src: /src/libqb/tests/check_ipc.c:433,1
    - Dst: g_source_set_can_recurse
      Src: /src/libqb/tests/check_ipc.c:435,1
    - Dst: conv_prio_libqb2glib
      Src: /src/libqb/tests/check_ipc.c:433,1
    - Dst: qb_loop_poll_add
      Src: /src/libqb/tests/check_ipc.c:448,1
    - Dst: g_source_attach
      Src: /src/libqb/tests/check_ipc.c:440,1
    - Dst: g_source_add_unix_fd
      Src: /src/libqb/tests/check_ipc.c:438,1
    - Dst: qb_loop_poll_add
      Src: /src/libqb/tests/check_ipc.c:446,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 152
    argCount: 3
    argNames:
    - c
    - data
    - size
    argTypes:
    - qb_ipcs_connection_t*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 459
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 459
    functionName: s1_msg_process_fn
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - usleep
    - qb_ipcs_response_send
    - free
    - conv_prio_libqb2glib
    - g_source_set_priority
    - pipe
    - g_source_set_callback
    - exit
    - fcntl
    - g_source_add_unix_fd
    - qb_ipcs_request_rate_limit
    - qb_ipcs_connection_stats_get_2
    - qb_ipcs_disconnect
    - qb_perror
    - qb_log
    - g_source_attach
    - ck_assert_int_eq
    - perror
    - g_source_new
    - qb_ipcs_event_send
    - aligned
    - qb_loop_poll_add
    - g_source_set_can_recurse
    - ck_assert
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t s1_msg_process_fn(qb_ipcs_connection_t *c,\t\tvoid
      *data, size_t size) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1276,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1278,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1280,1
    - Dst: test_ipc_txrx_timeout
      Src: /src/libqb/tests/check_ipc.c:1279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames:
    - test_ipc_txrx_shm_timeout
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1272
    functionDepth: 0
    functionLinenumber: 1272
    functionLinenumberEnd: 1281
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - test_ipc_txrx_timeout
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_txrx_shm_timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1827,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1840,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1829,1
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:1844,1
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:1838,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1847,1
    - Dst: sched_yield
      Src: /src/libqb/tests/check_ipc.c:1850,1
    - Dst: client_dispatch
      Src: /src/libqb/tests/check_ipc.c:1853,1
    - Dst: verify_graceful_stop
      Src: /src/libqb/tests/check_ipc.c:1854,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1822
    functionDepth: 0
    functionLinenumber: 1822
    functionLinenumberEnd: 1860
    functionName: (test_ipc_us_glib_prio_dlock)
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - set_ipc_name
    - qb_enter
    - client_dispatch
    - sched_yield
    - qb_leave
    - verify_graceful_stop
    - run_function_in_new_process
    - ck_assert
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_ipc_us_glib_prio_dlock) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_ipc.c:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - p
    - data
    - fn
    argTypes:
    - enum qb_loop_priority
    - void*
    - qb_loop_job_dispatch_fn
    constantsTouched: []
    func_position:
      end: 467
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 467
    functionName: my_job_add
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_loop_job_add
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t my_job_add(enum qb_loop_priority p,\t\t\t void *data,\t\t\t
      qb_loop_job_dispatch_fn fn) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:618,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:619,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 621
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 621
    functionName: s1_connection_closed
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - qb_enter
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t s1_connection_closed(qb_ipcs_connection_t *c) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_event_send
      Src: /src/libqb/tests/check_ipc.c:696,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:698,1
    - Dst: calloc
      Src: /src/libqb/tests/check_ipc.c:706,1
    - Dst: qb_ipcs_connection_ref
      Src: /src/libqb/tests/check_ipc.c:703,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_ipc.c:704,1
    - Dst: memcpy
      Src: /src/libqb/tests/check_ipc.c:707,1
    - Dst: qb_ipcs_context_set
      Src: /src/libqb/tests/check_ipc.c:708,1
    - Dst: ck_assert_int_le
      Src: /src/libqb/tests/check_ipc.c:712,1
    - Dst: qb_ipcs_connection_get_buffer_size
      Src: /src/libqb/tests/check_ipc.c:712,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 714
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 714
    functionName: s1_connection_created
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_ipcs_event_send
    - qb_loop_job_add
    - memcpy
    - calloc
    - ck_assert_int_le
    - qb_ipcs_connection_ref
    - qb_ipcs_context_set
    - ck_assert_int_eq
    - qb_ipcs_connection_get_buffer_size
    linkageType: ''
    returnType: void
    signature: 'static void s1_connection_created(qb_ipcs_connection_t *c) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_ipc.c:755,1
    - Dst: qb_loop_signal_add
      Src: /src/libqb/tests/check_ipc.c:756,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:761,1
    - Dst: qb_ipcs_request_rate_limit
      Src: /src/libqb/tests/check_ipc.c:764,1
    - Dst: qb_ipcs_create
      Src: /src/libqb/tests/check_ipc.c:760,1
    - Dst: conv_libqb_prio2ratelimit
      Src: /src/libqb/tests/check_ipc.c:765,1
    - Dst: g_main_loop_new
      Src: /src/libqb/tests/check_ipc.c:775,1
    - Dst: qb_array_create_2
      Src: /src/libqb/tests/check_ipc.c:776,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:777,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:779,1
    - Dst: qb_ipcs_poll_handlers_set
      Src: /src/libqb/tests/check_ipc.c:793,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:809,1
    - Dst: ready_signaller
      Src: /src/libqb/tests/check_ipc.c:799,1
    - Dst: g_main_loop_run
      Src: /src/libqb/tests/check_ipc.c:804,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:796,1
    - Dst: qb_ipcs_run
      Src: /src/libqb/tests/check_ipc.c:795,1
    - Dst: qb_ipcs_enforce_buffer_size
      Src: /src/libqb/tests/check_ipc.c:791,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_ipc.c:807,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 810
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 810
    functionName: ''
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_loop_run
    - qb_ipcs_request_rate_limit
    - g_main_loop_new
    - qb_ipcs_enforce_buffer_size
    - qb_ipcs_create
    - qb_ipcs_poll_handlers_set
    - qb_log
    - qb_loop_create
    - qb_loop_signal_add
    - g_main_loop_run
    - ck_assert_int_eq
    - ready_signaller
    - qb_ipcs_run
    - qb_array_create_2
    - ck_assert
    - conv_libqb_prio2ratelimit
    linkageType: ''
    returnType: NEW_PROCESS_RUNNER(run_ipc_server, ready_signaller, signaller_data,
      data)
    signature: 'static NEW_PROCESS_RUNNER(run_ipc_server, ready_signaller, signaller_data,
      data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:1988,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1995,1
    - Dst: qb_ipcc_connect
      Src: /src/libqb/tests/check_ipc.c:1992,1
    - Dst: waitpid
      Src: /src/libqb/tests/check_ipc.c:1994,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1989,1
    - Dst: poll
      Src: /src/libqb/tests/check_ipc.c:1996,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:2000,1
    - Dst: request_server_exit
      Src: /src/libqb/tests/check_ipc.c:2002,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:2006,1
    - Dst: qb_ipcc_is_connected
      Src: /src/libqb/tests/check_ipc.c:2006,1
    - Dst: ck_assert_int_ne
      Src: /src/libqb/tests/check_ipc.c:2009,1
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/tests/check_ipc.c:2007,1
    - Dst: verify_graceful_stop
      Src: /src/libqb/tests/check_ipc.c:2011,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2012
      start: 1978
    functionDepth: 0
    functionLinenumber: 1978
    functionLinenumberEnd: 2012
    functionName: test_ipc_server_fail
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_ipcc_connect
    - waitpid
    - qb_ipcc_is_connected
    - qb_ipcc_disconnect
    - request_server_exit
    - verify_graceful_stop
    - run_function_in_new_process
    - ck_assert_int_eq
    - poll
    - ck_assert_int_ne
    - ck_assert
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST static void test_ipc_server_fail(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:2036,1
    - Dst: test_ipc_stress_test
      Src: /src/libqb/tests/check_ipc.c:2040,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:2039,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:2041,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames:
    - test_ipc_stress_test_shm
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 2032
    functionDepth: 0
    functionLinenumber: 2032
    functionLinenumberEnd: 2042
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - test_ipc_stress_test
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_stress_test_shm) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:2162,1
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:2173,1
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:2179,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:2175,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:2164,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:2182,1
    - Dst: sched_yield
      Src: /src/libqb/tests/check_ipc.c:2185,1
    - Dst: client_dispatch
      Src: /src/libqb/tests/check_ipc.c:2188,1
    - Dst: verify_graceful_stop
      Src: /src/libqb/tests/check_ipc.c:2189,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:2194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2157
    functionDepth: 0
    functionLinenumber: 2157
    functionLinenumberEnd: 2195
    functionName: (test_ipc_disp_shm_glib_prio_dlock)
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - set_ipc_name
    - qb_enter
    - client_dispatch
    - sched_yield
    - qb_leave
    - verify_graceful_stop
    - run_function_in_new_process
    - ck_assert
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_ipc_disp_shm_glib_prio_dlock) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:2288,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:2292,1
    - Dst: test_ipc_service_ref_count
      Src: /src/libqb/tests/check_ipc.c:2291,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:2290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2286
    functionDepth: 0
    functionLinenumber: 2286
    functionLinenumberEnd: 2293
    functionName: (test_ipc_service_ref_count_shm)
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - set_ipc_name
    - qb_enter
    - test_ipc_service_ref_count
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_ipc_service_ref_count_shm) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2362,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2358,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2364,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2368,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2376,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2372,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2363,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2365,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2373,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2369,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2379,1
    - Dst: suite_create
      Src: /src/libqb/tests/check_ipc.c:2356,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2360,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2366,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2370,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2374,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2361,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2367,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2383
      start: 2352
    functionDepth: 0
    functionLinenumber: 2352
    functionLinenumberEnd: 2383
    functionName: make_shm_suite
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - suite_create
    - add_tcase
    linkageType: ''
    returnType: Suite*
    signature: 'static Suite *make_shm_suite(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_context_get
      Src: /src/libqb/tests/check_ipc.c:628,1
    - Dst: qb_ipcs_event_send
      Src: /src/libqb/tests/check_ipc.c:639,1
    - Dst: qb_ipcs_destroy
      Src: /src/libqb/tests/check_ipc.c:633,1
    - Dst: assert
      Src: /src/libqb/tests/check_ipc.c:640,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:630,1
    - Dst: memcmp
      Src: /src/libqb/tests/check_ipc.c:640,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_ipc.c:642,1
    - Dst: qb_ipcs_connection_unref
      Src: /src/libqb/tests/check_ipc.c:646,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:647,1
    - Dst: qb_loop_stop
      Src: /src/libqb/tests/check_ipc.c:648,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 650
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 650
    functionName: outq_flush
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_ipcs_event_send
    - qb_loop_job_add
    - qb_ipcs_context_get
    - assert
    - qb_log
    - qb_ipcs_destroy
    - qb_loop_stop
    - qb_ipcs_connection_unref
    - memcmp
    linkageType: ''
    returnType: void
    signature: 'static void outq_flush (void *data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/libqb/tests/check_ipc.c:837,1
    - Dst: exit
      Src: /src/libqb/tests/check_ipc.c:840,1
    - Dst: exit
      Src: /src/libqb/tests/check_ipc.c:857,1
    - Dst: sigaction
      Src: /src/libqb/tests/check_ipc.c:863,1
    - Dst: sigsuspend
      Src: /src/libqb/tests/check_ipc.c:867,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_ipc.c:846,1
    - Dst: exit
      Src: /src/libqb/tests/check_ipc.c:854,1
    - Dst: sched_yield
      Src: /src/libqb/tests/check_ipc.c:872,1
    - Dst: sigemptyset
      Src: /src/libqb/tests/check_ipc.c:822,1
    - Dst: getpid
      Src: /src/libqb/tests/check_ipc.c:834,1
    - Dst: fprintf
      Src: /src/libqb/tests/check_ipc.c:839,1
    - Dst: waitpid
      Src: /src/libqb/tests/check_ipc.c:856,1
    - Dst: sigprocmask
      Src: /src/libqb/tests/check_ipc.c:825,1
    - Dst: sigaddset
      Src: /src/libqb/tests/check_ipc.c:823,1
    - Dst: sigdelset
      Src: /src/libqb/tests/check_ipc.c:827,1
    - Dst: fork
      Src: /src/libqb/tests/check_ipc.c:835,1
    - Dst: sigprocmask
      Src: /src/libqb/tests/check_ipc.c:843,1
    - Dst: new_process_runner
      Src: /src/libqb/tests/check_ipc.c:853,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_ipc.c:850,1
    - Dst: snprintf
      Src: /src/libqb/tests/check_ipc.c:848,1
    - Dst: sigprocmask
      Src: /src/libqb/tests/check_ipc.c:870,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 3
    argNames:
    - role
    - new_process_runner
    - data
    argTypes:
    - char*
    - new_process_runner_fn
    - void*
    constantsTouched: []
    func_position:
      end: 875
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 875
    functionName: run_function_in_new_process
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - fork
    - sigdelset
    - sigaddset
    - waitpid
    - fprintf
    - exit
    - sched_yield
    - sigprocmask
    - qb_log_format_set
    - sigsuspend
    - getpid
    - new_process_runner
    - sigaction
    - snprintf
    - sigemptyset
    linkageType: ''
    returnType: pid_t
    signature: 'static pid_t run_function_in_new_process(const char *role, new_process_runner_fn
      new_process_runner, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:2016,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:2018,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:2020,1
    - Dst: test_ipc_server_fail
      Src: /src/libqb/tests/check_ipc.c:2019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 2014
    functionDepth: 0
    functionLinenumber: 2014
    functionLinenumberEnd: 2021
    functionName: (test_ipc_server_fail_soc)
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - test_ipc_server_fail
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_ipc_server_fail_soc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/libqb/tests/check_ipc.c:2388,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2391,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2398,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2393,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2394,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2399,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2400,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2401,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2402,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2403,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2407,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2412,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2410,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2408,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2414,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2411,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2405,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_ipc.c:2409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2418
      start: 2385
    functionDepth: 0
    functionLinenumber: 2385
    functionLinenumberEnd: 2418
    functionName: make_soc_suite
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - suite_create
    - add_tcase
    linkageType: ''
    returnType: Suite*
    signature: 'static Suite *make_soc_suite(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1349,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1352,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1355,1
    - Dst: test_ipc_txrx
      Src: /src/libqb/tests/check_ipc.c:1354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames:
    - test_ipc_txrx_shm_block
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1345
    functionDepth: 0
    functionLinenumber: 1345
    functionLinenumberEnd: 1356
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - test_ipc_txrx
    - qb_leave
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_txrx_shm_block) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 1
    argNames:
    - prio
    argTypes:
    - enum qb_loop_priority
    constantsTouched: []
    func_position:
      end: 140
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 140
    functionName: conv_prio_libqb2glib
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: gint
    signature: 'static gint conv_prio_libqb2glib(enum qb_loop_priority prio) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1265,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1267,1
    - Dst: test_ipc_exit
      Src: /src/libqb/tests/check_ipc.c:1269,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames:
    - test_ipc_exit_shm
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1261
    functionDepth: 0
    functionLinenumber: 1261
    functionLinenumberEnd: 1271
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - test_ipc_exit
    - qb_leave
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_exit_shm) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1337,1
    - Dst: test_ipc_txrx
      Src: /src/libqb/tests/check_ipc.c:1342,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1340,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames:
    - test_ipc_txrx_shm_tmo
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1333
    functionDepth: 0
    functionLinenumber: 1333
    functionLinenumberEnd: 1344
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - test_ipc_txrx
    - qb_leave
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_txrx_shm_tmo) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1361,1
    - Dst: test_ipc_txrx
      Src: /src/libqb/tests/check_ipc.c:1366,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1367,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames:
    - test_ipc_fc_shm
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1357
    functionDepth: 0
    functionLinenumber: 1357
    functionLinenumberEnd: 1368
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - test_ipc_txrx
    - qb_leave
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_fc_shm) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1373,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1376,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1379,1
    - Dst: test_ipc_txrx
      Src: /src/libqb/tests/check_ipc.c:1378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames:
    - test_ipc_txrx_us_block
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1369
    functionDepth: 0
    functionLinenumber: 1369
    functionLinenumberEnd: 1380
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - test_ipc_txrx
    - qb_leave
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_txrx_us_block) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:2222,1
    - Dst: test_ipc_server_fail
      Src: /src/libqb/tests/check_ipc.c:2225,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:2224,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:2226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames:
    - test_ipc_server_fail_shm
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2227
      start: 2218
    functionDepth: 0
    functionLinenumber: 2218
    functionLinenumberEnd: 2227
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - test_ipc_server_fail
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_server_fail_shm) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sleep
      Src: /src/libqb/tests/check_ipc.c:925,1
    - Dst: waitpid
      Src: /src/libqb/tests/check_ipc.c:926,1
    - Dst: WIFEXITED
      Src: /src/libqb/tests/check_ipc.c:933,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:932,1
    - Dst: WEXITSTATUS
      Src: /src/libqb/tests/check_ipc.c:935,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:936,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:938,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    constantsTouched: []
    func_position:
      end: 942
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 942
    functionName: verify_graceful_stop
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - sleep
    - waitpid
    - WIFEXITED
    - ck_assert_int_eq
    - WEXITSTATUS
    - ck_assert
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t verify_graceful_stop(pid_t pid) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:1931,1
    - Dst: waitpid
      Src: /src/libqb/tests/check_ipc.c:1937,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1938,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1932,1
    - Dst: qb_ipcc_connect
      Src: /src/libqb/tests/check_ipc.c:1935,1
    - Dst: poll
      Src: /src/libqb/tests/check_ipc.c:1939,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1943,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1945,1
    - Dst: qb_ipcc_is_connected
      Src: /src/libqb/tests/check_ipc.c:1945,1
    - Dst: qb_ipcc_sendv_recv
      Src: /src/libqb/tests/check_ipc.c:1953,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1963,1
    - Dst: qb_ipcc_is_connected
      Src: /src/libqb/tests/check_ipc.c:1963,1
    - Dst: sleep
      Src: /src/libqb/tests/check_ipc.c:1965,1
    - Dst: kill_server
      Src: /src/libqb/tests/check_ipc.c:1966,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:1960,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1961,1
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/tests/check_ipc.c:1964,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1967
      start: 1917
    functionDepth: 0
    functionLinenumber: 1917
    functionLinenumberEnd: 1967
    functionName: test_ipc_disconnect_after_created
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - sleep
    - qb_ipcc_connect
    - waitpid
    - qb_ipcc_is_connected
    - qb_ipcc_disconnect
    - qb_log
    - run_function_in_new_process
    - ck_assert_int_eq
    - poll
    - qb_ipcc_sendv_recv
    - kill_server
    - ck_assert
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST static void test_ipc_disconnect_after_created(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:1877,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1884,1
    - Dst: waitpid
      Src: /src/libqb/tests/check_ipc.c:1883,1
    - Dst: qb_ipcc_connect
      Src: /src/libqb/tests/check_ipc.c:1881,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1878,1
    - Dst: poll
      Src: /src/libqb/tests/check_ipc.c:1885,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1889,1
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_ipc.c:1892,1
    - Dst: qb_ipcc_fd_get
      Src: /src/libqb/tests/check_ipc.c:1893,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1894,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1898,1
    - Dst: qb_loop_poll_add
      Src: /src/libqb/tests/check_ipc.c:1895,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1901,1
    - Dst: request_server_exit
      Src: /src/libqb/tests/check_ipc.c:1903,1
    - Dst: verify_graceful_stop
      Src: /src/libqb/tests/check_ipc.c:1905,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_ipc.c:1900,1
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/tests/check_ipc.c:1904,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1906
      start: 1864
    functionDepth: 0
    functionLinenumber: 1864
    functionLinenumberEnd: 1906
    functionName: test_ipc_event_on_created
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_loop_run
    - qb_ipcc_connect
    - qb_loop_poll_add
    - waitpid
    - qb_ipcc_disconnect
    - qb_loop_create
    - request_server_exit
    - verify_graceful_stop
    - qb_ipcc_fd_get
    - run_function_in_new_process
    - ck_assert_int_eq
    - poll
    - ck_assert
    linkageType: ''
    returnType: void
    signature: 'static void test_ipc_event_on_created(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - source
    argTypes:
    - GSource*
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: gio_source_check
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_enter
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean gio_source_check(GSource *source) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gio_dispatch_update
      Src: /src/libqb/tests/check_ipc.c:581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - p
    - fd
    - evts
    - data
    - fn
    argTypes:
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_ipcs_dispatch_fn_t
    constantsTouched: []
    func_position:
      end: 582
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 582
    functionName: gio_dispatch_add
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - gio_dispatch_update
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t gio_dispatch_add(enum qb_loop_priority p, int32_t fd,
      int32_t evts, void *data, qb_ipcs_dispatch_fn_t fn) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:160,1
    - Dst: callback
      Src: /src/libqb/tests/check_ipc.c:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - source
    - callback
    - user_data
    argTypes:
    - GSource*
    - GSourceFunc
    - gpointer
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: gio_source_dispatch
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - callback
    - qb_enter
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean gio_source_dispatch(GSource *source, GSourceFunc callback,
      gpointer user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gio_dispatch_update
      Src: /src/libqb/tests/check_ipc.c:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - p
    - fd
    - evts
    - data
    - fn
    argTypes:
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_ipcs_dispatch_fn_t
    constantsTouched: []
    func_position:
      end: 589
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 589
    functionName: gio_dispatch_mod
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - gio_dispatch_update
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t gio_dispatch_mod(enum qb_loop_priority p, int32_t fd,
      int32_t evts, void *data, qb_ipcs_dispatch_fn_t fn) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1971,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1974,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1976,1
    - Dst: test_ipc_disconnect_after_created
      Src: /src/libqb/tests/check_ipc.c:1975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1969
    functionDepth: 0
    functionLinenumber: 1969
    functionLinenumberEnd: 1977
    functionName: (test_ipc_disconnect_after_created_us)
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - test_ipc_disconnect_after_created
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_ipc_disconnect_after_created_us) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1910,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1915,1
    - Dst: test_ipc_event_on_created
      Src: /src/libqb/tests/check_ipc.c:1914,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1908
    functionDepth: 0
    functionLinenumber: 1908
    functionLinenumberEnd: 1916
    functionName: (test_ipc_event_on_created_us)
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - test_ipc_event_on_created
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_ipc_event_on_created_us) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/check_ipc.c:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 1
    argNames:
    - prio
    argTypes:
    - enum qb_loop_priority
    constantsTouched: []
    func_position:
      end: 119
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 119
    functionName: conv_libqb_prio2ratelimit
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: enum qb_ipcs_rate_limit
    signature: 'static enum qb_ipcs_rate_limit conv_libqb_prio2ratelimit(enum qb_loop_priority
      prio) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:1218,1
    - Dst: qb_ipcc_connect
      Src: /src/libqb/tests/check_ipc.c:1222,1
    - Dst: waitpid
      Src: /src/libqb/tests/check_ipc.c:1224,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1219,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1225,1
    - Dst: poll
      Src: /src/libqb/tests/check_ipc.c:1226,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:1230,1
    - Dst: qb_ipcc_sendv_recv
      Src: /src/libqb/tests/check_ipc.c:1238,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_ipc.c:1241,1
    - Dst: request_server_exit
      Src: /src/libqb/tests/check_ipc.c:1243,1
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/tests/check_ipc.c:1249,1
    - Dst: verify_graceful_stop
      Src: /src/libqb/tests/check_ipc.c:1244,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1250
      start: 1206
    functionDepth: 0
    functionLinenumber: 1206
    functionLinenumberEnd: 1250
    functionName: test_ipc_exit
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_ipcc_connect
    - waitpid
    - qb_ipcc_disconnect
    - request_server_exit
    - verify_graceful_stop
    - run_function_in_new_process
    - ck_assert_int_eq
    - poll
    - qb_ipcc_sendv_recv
    - ck_assert
    linkageType: ''
    returnType: void
    signature: 'static void test_ipc_exit(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1254,1
    - Dst: test_ipc_exit
      Src: /src/libqb/tests/check_ipc.c:1258,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1259,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1252
    functionDepth: 0
    functionLinenumber: 1252
    functionLinenumberEnd: 1260
    functionName: (test_ipc_exit_us)
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - test_ipc_exit
    - qb_leave
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_ipc_exit_us) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_poll_add
      Src: /src/libqb/tests/check_ipc.c:473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - p
    - fd
    - events
    - data
    - fn
    argTypes:
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_ipcs_dispatch_fn_t
    constantsTouched: []
    func_position:
      end: 474
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 474
    functionName: my_dispatch_add
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_loop_poll_add
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t my_dispatch_add(enum qb_loop_priority p, int32_t fd,
      int32_t events,\tvoid *data, qb_ipcs_dispatch_fn_t fn) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:1287,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:1291,1
    - Dst: test_ipc_txrx_timeout
      Src: /src/libqb/tests/check_ipc.c:1290,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:1289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames:
    - test_ipc_txrx_us_timeout
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1292
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_leave
    - test_ipc_txrx_timeout
    - set_ipc_name
    - qb_enter
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_txrx_us_timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_ipc.c:2123,1
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:2139,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:2135,1
    - Dst: run_function_in_new_process
      Src: /src/libqb/tests/check_ipc.c:2133,1
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:2125,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_ipc.c:2142,1
    - Dst: sched_yield
      Src: /src/libqb/tests/check_ipc.c:2145,1
    - Dst: client_dispatch
      Src: /src/libqb/tests/check_ipc.c:2148,1
    - Dst: verify_graceful_stop
      Src: /src/libqb/tests/check_ipc.c:2149,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_ipc.c:2152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames:
    - test_ipc_disp_shm_native_prio_dlock
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2116
    functionDepth: 0
    functionLinenumber: 2116
    functionLinenumberEnd: 2153
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - set_ipc_name
    - qb_enter
    - client_dispatch
    - sched_yield
    - qb_leave
    - verify_graceful_stop
    - run_function_in_new_process
    - ck_assert
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ipc_disp_shm_native_prio_dlock) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_poll_mod
      Src: /src/libqb/tests/check_ipc.c:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - p
    - fd
    - events
    - data
    - fn
    argTypes:
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_ipcs_dispatch_fn_t
    constantsTouched: []
    func_position:
      end: 481
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 481
    functionName: my_dispatch_mod
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - qb_loop_poll_mod
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t my_dispatch_mod(enum qb_loop_priority p, int32_t fd,
      int32_t events,\tvoid *data, qb_ipcs_dispatch_fn_t fn) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_ipc_name
      Src: /src/libqb/tests/check_ipc.c:2428,1
    - Dst: make_shm_suite
      Src: /src/libqb/tests/check_ipc.c:2437,1
    - Dst: srunner_add_suite
      Src: /src/libqb/tests/check_ipc.c:2437,1
    - Dst: make_soc_suite
      Src: /src/libqb/tests/check_ipc.c:2433,1
    - Dst: srunner_create
      Src: /src/libqb/tests/check_ipc.c:2434,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_ipc.c:2440,1
    - Dst: atexit
      Src: /src/libqb/tests/check_ipc.c:2441,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_ipc.c:2442,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_ipc.c:2443,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_ipc.c:2445,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_ipc.c:2446,1
    - Dst: srunner_run_all
      Src: /src/libqb/tests/check_ipc.c:2448,1
    - Dst: srunner_ntests_failed
      Src: /src/libqb/tests/check_ipc.c:2449,1
    - Dst: srunner_free
      Src: /src/libqb/tests/check_ipc.c:2450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2452
      start: 2420
    functionDepth: 0
    functionLinenumber: 2420
    functionLinenumberEnd: 2452
    functionName: main
    functionSourceFile: /src/libqb/tests/check_ipc.c
    functionUses: []
    functionsReached:
    - srunner_add_suite
    - atexit
    - set_ipc_name
    - make_shm_suite
    - qb_log_ctl
    - qb_log_filter_ctl
    - srunner_free
    - qb_log_format_set
    - srunner_ntests_failed
    - srunner_run_all
    - make_soc_suite
    - srunner_create
    - qb_log_init
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t main(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: job_1
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void job_1(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:94,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: job_1_r
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_job_add
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: 'static void job_1_r(void *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_stopwatch_stop
      Src: /src/libqb/tests/check_loop.c:254,1
    - Dst: qb_loop_stop
      Src: /src/libqb/tests/check_loop.c:258,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:262,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:261,1
    - Dst: qb_util_stopwatch_us_elapsed_get
      Src: /src/libqb/tests/check_loop.c:255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 263
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 263
    functionName: job_add_self
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_job_add
    - qb_util_stopwatch_us_elapsed_get
    - qb_util_stopwatch_stop
    - qb_loop_stop
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: 'static void job_add_self(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:372,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:378,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:373,1
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_loop.c:375,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:376,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:379,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:381,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:382,1
    - Dst: qb_loop_destroy
      Src: /src/libqb/tests/check_loop.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 384
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 384
    functionName: (test_loop_timer_input)
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_timer_add
    - qb_loop_create
    - ck_assert_int_eq
    - qb_loop_destroy
    - ck_assert
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_loop_timer_input) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_loop.c:465,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:471,1
    - Dst: pthread_create
      Src: /src/libqb/tests/check_loop.c:468,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:470,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:466,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:473,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:474,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:476,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:477,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_loop.c:479,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:481,1
    - Dst: pthread_join
      Src: /src/libqb/tests/check_loop.c:483,1
    - Dst: qb_loop_destroy
      Src: /src/libqb/tests/check_loop.c:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 485
    functionName: (test_loop_timer_threads)
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_run
    - qb_loop_timer_add
    - qb_loop_create
    - pthread_create
    - ck_assert_int_eq
    - qb_loop_destroy
    - pthread_join
    - ck_assert
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_loop_timer_threads) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 500
    functionName: qb_stop_watch
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST struct qb_stop_watch '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_loop.c:617,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:619,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:624,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:625,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:626,1
    - Dst: QB_MAX
      Src: /src/libqb/tests/check_loop.c:627,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:629,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_loop.c:632,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:634,1
    - Dst: qb_loop_destroy
      Src: /src/libqb/tests/check_loop.c:635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 636
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 636
    functionName: (test_loop_timer_expire_leak)
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_run
    - qb_loop_timer_add
    - qb_loop_create
    - ck_assert_int_eq
    - qb_loop_destroy
    - QB_MAX
    - ck_assert
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_loop_timer_expire_leak) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/check_loop.c:646,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - rsignal
    - data
    argTypes:
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 651
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 651
    functionName: sig_handler
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_job_add
    - qb_log
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t sig_handler(int32_t rsignal, void *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:61,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:66,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:67,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:64,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:65,1
    - Dst: qb_loop_stop
      Src: /src/libqb/tests/check_loop.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: job_order_check
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_job_add
    - ck_assert_int_eq
    - qb_loop_stop
    linkageType: ''
    returnType: void
    signature: 'static void job_order_check(void *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:103,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:104,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:115,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:116,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:127,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:128,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:133,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:105,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:106,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:110,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:117,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:118,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:129,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:130,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:132,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:136,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:107,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:108,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:111,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:112,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:119,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:120,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:123,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:124,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:135,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:138,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:109,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:121,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:113,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:114,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:122,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:125,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 139
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 139
    functionName: job_1_add_nuts
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_job_add
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: 'static void job_1_add_nuts(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_loop.c:268,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:272,1
    - Dst: qb_util_stopwatch_create
      Src: /src/libqb/tests/check_loop.c:271,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:269,1
    - Dst: qb_util_stopwatch_start
      Src: /src/libqb/tests/check_loop.c:274,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:276,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:277,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_loop.c:279,1
    - Dst: _ck_assert_int
      Src: /src/libqb/tests/check_loop.c:285,1
    - Dst: qb_loop_destroy
      Src: /src/libqb/tests/check_loop.c:286,1
    - Dst: qb_util_stopwatch_free
      Src: /src/libqb/tests/check_loop.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 288
    functionName: (test_job_rate_limit)
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - _ck_assert_int
    - qb_loop_run
    - qb_util_stopwatch_start
    - qb_loop_job_add
    - qb_util_stopwatch_free
    - qb_loop_create
    - qb_util_stopwatch_create
    - ck_assert_int_eq
    - qb_loop_destroy
    - ck_assert
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_job_rate_limit) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 392
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 392
    functionName: one_shot_tmo
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST static void one_shot_tmo(void * data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_loop.c:656,1
    - Dst: qb_loop_signal_add
      Src: /src/libqb/tests/check_loop.c:659,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:657,1
    - Dst: qb_loop_signal_add
      Src: /src/libqb/tests/check_loop.c:663,1
    - Dst: qb_loop_signal_add
      Src: /src/libqb/tests/check_loop.c:661,1
    - Dst: kill
      Src: /src/libqb/tests/check_loop.c:665,1
    - Dst: getpid
      Src: /src/libqb/tests/check_loop.c:665,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_loop.c:666,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:667,1
    - Dst: kill
      Src: /src/libqb/tests/check_loop.c:668,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:670,1
    - Dst: getpid
      Src: /src/libqb/tests/check_loop.c:668,1
    - Dst: qb_loop_destroy
      Src: /src/libqb/tests/check_loop.c:672,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_loop.c:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 673
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 673
    functionName: (test_loop_sig_handling)
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - kill
    - qb_loop_run
    - qb_loop_create
    - qb_loop_signal_add
    - getpid
    - ck_assert_int_eq
    - qb_loop_destroy
    - ck_assert
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_loop_sig_handling) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_loop.c:689,1
    - Dst: kill
      Src: /src/libqb/tests/check_loop.c:696,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:690,1
    - Dst: signal
      Src: /src/libqb/tests/check_loop.c:692,1
    - Dst: qb_loop_signal_add
      Src: /src/libqb/tests/check_loop.c:694,1
    - Dst: getpid
      Src: /src/libqb/tests/check_loop.c:696,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_loop.c:697,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:699,1
    - Dst: qb_loop_destroy
      Src: /src/libqb/tests/check_loop.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 702
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 702
    functionName: (test_loop_dont_override_other_signals)
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - kill
    - qb_loop_run
    - signal
    - qb_loop_create
    - qb_loop_signal_add
    - getpid
    - ck_assert_int_eq
    - qb_loop_destroy
    - ck_assert
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_loop_dont_override_other_signals) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:447,1
    - Dst: sleep
      Src: /src/libqb/tests/check_loop.c:453,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:448,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:451,1
    - Dst: qb_loop_timer_is_running
      Src: /src/libqb/tests/check_loop.c:450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 456
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 456
    functionName: loop_timer_thread
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_timer_add
    - sleep
    - qb_loop_timer_is_running
    - ck_assert_int_eq
    linkageType: ''
    returnType: END_TEST*
    signature: 'END_TEST static void *loop_timer_thread(void *arg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/check_loop.c:592,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:597,1
    - Dst: QB_MAX
      Src: /src/libqb/tests/check_loop.c:598,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:595,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:596,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:602,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:604,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 606
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 606
    functionName: next_func_tmo
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_timer_add
    - QB_MAX
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void next_func_tmo(void*data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_loop.c:199,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:200,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_loop.c:205,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:203,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:202,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:206,1
    - Dst: qb_loop_destroy
      Src: /src/libqb/tests/check_loop.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames:
    - test_loop_job_nuts
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 208
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_run
    - qb_loop_job_add
    - qb_loop_create
    - ck_assert_int_eq
    - qb_loop_destroy
    - ck_assert
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_loop_job_nuts) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/libqb/tests/check_loop.c:332,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_loop.c:337,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_loop.c:335,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_loop.c:334,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_loop.c:336,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_loop.c:338,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_loop.c:339,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_loop.c:340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 343
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 343
    functionName: loop_job_suite
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - suite_create
    - add_tcase
    linkageType: ''
    returnType: END_TEST*
    signature: 'END_TEST static Suite *loop_job_suite(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_loop.c:553,1
    - Dst: start_timer
      Src: /src/libqb/tests/check_loop.c:559,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:555,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_loop.c:563,1
    - Dst: start_timer
      Src: /src/libqb/tests/check_loop.c:561,1
    - Dst: qb_loop_destroy
      Src: /src/libqb/tests/check_loop.c:564,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 565
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 565
    functionName: (test_loop_timer_precision)
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_run
    - qb_loop_create
    - start_timer
    - qb_loop_destroy
    - ck_assert
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_loop_timer_precision) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_loop.c:710,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:721,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:720,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:711,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:722,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:723,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:726,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:727,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:736,1
    - Dst: getpid
      Src: /src/libqb/tests/check_loop.c:733,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:724,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:725,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:730,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:731,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:728,1
    - Dst: kill
      Src: /src/libqb/tests/check_loop.c:733,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:729,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_loop.c:734,1
    - Dst: qb_loop_signal_add
      Src: /src/libqb/tests/check_loop.c:717,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:737,1
    - Dst: qb_loop_destroy
      Src: /src/libqb/tests/check_loop.c:739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames:
    - test_loop_sig_only_get_one
    argTypes: []
    constantsTouched: []
    func_position:
      end: 740
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 740
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - kill
    - qb_loop_job_add
    - qb_loop_run
    - qb_loop_create
    - qb_loop_signal_add
    - getpid
    - ck_assert_int_eq
    - qb_loop_destroy
    - ck_assert
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_loop_sig_only_get_one) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srunner_create
      Src: /src/libqb/tests/check_loop.c:817,1
    - Dst: srunner_add_suite
      Src: /src/libqb/tests/check_loop.c:819,1
    - Dst: loop_job_suite
      Src: /src/libqb/tests/check_loop.c:817,1
    - Dst: srunner_add_suite
      Src: /src/libqb/tests/check_loop.c:818,1
    - Dst: loop_timer_suite
      Src: /src/libqb/tests/check_loop.c:818,1
    - Dst: loop_signal_suite
      Src: /src/libqb/tests/check_loop.c:819,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_loop.c:821,1
    - Dst: atexit
      Src: /src/libqb/tests/check_loop.c:822,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_loop.c:823,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_loop.c:824,1
    - Dst: srunner_run_all
      Src: /src/libqb/tests/check_loop.c:828,1
    - Dst: srunner_ntests_failed
      Src: /src/libqb/tests/check_loop.c:829,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_loop.c:826,1
    - Dst: srunner_free
      Src: /src/libqb/tests/check_loop.c:830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 832
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 832
    functionName: main
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - srunner_add_suite
    - atexit
    - qb_log_ctl
    - srunner_free
    - qb_log_filter_ctl
    - srunner_ntests_failed
    - loop_timer_suite
    - loop_signal_suite
    - srunner_run_all
    - srunner_create
    - loop_job_suite
    - qb_log_init
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t main(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 683
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 683
    functionName: handle_nonqb_signal
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_job_add
    linkageType: ''
    returnType: void
    signature: 'static void handle_nonqb_signal(int num) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_stop
      Src: /src/libqb/tests/check_loop.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: job_stop
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_stop
    linkageType: ''
    returnType: void
    signature: 'static void job_stop(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:146,1
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_loop.c:149,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:150,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:147,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:152,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:153,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:154,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:155,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:156,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:157,1
    - Dst: qb_loop_destroy
      Src: /src/libqb/tests/check_loop.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 159
    functionName: (test_loop_job_input)
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_job_add
    - qb_loop_create
    - ck_assert_int_eq
    - qb_loop_destroy
    - ck_assert
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_loop_job_input) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:220,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:219,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:223,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:224,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:231,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:232,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:236,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_loop.c:238,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:215,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:230,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:229,1
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_loop.c:214,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:235,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:227,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:228,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:221,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:222,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:225,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:226,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:233,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:234,1
    - Dst: qb_loop_destroy
      Src: /src/libqb/tests/check_loop.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 0
    argNames:
    - test_loop_job_order
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 240
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_run
    - qb_loop_job_add
    - qb_loop_create
    - ck_assert_int_eq
    - qb_loop_destroy
    - ck_assert
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_loop_job_order) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_timer_del
      Src: /src/libqb/tests/check_loop.c:401,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:404,1
    - Dst: qb_loop_timer_is_running
      Src: /src/libqb/tests/check_loop.c:403,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:402,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:405,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:406,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 410
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 410
    functionName: reset_one_shot_tmo
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_timer_add
    - qb_loop_timer_del
    - qb_loop_timer_is_running
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: 'static void reset_one_shot_tmo(void*data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:85,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: job_2
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_job_add
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: 'static void job_2(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_loop.c:415,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:418,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:419,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:416,1
    - Dst: qb_loop_timer_is_running
      Src: /src/libqb/tests/check_loop.c:421,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:422,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:424,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:425,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:427,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:428,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:430,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:435,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:431,1
    - Dst: qb_loop_destroy
      Src: /src/libqb/tests/check_loop.c:437,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_loop.c:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 438
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 438
    functionName: (test_loop_timer_basic)
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_run
    - qb_loop_timer_add
    - qb_loop_create
    - ck_assert_int_eq
    - qb_loop_destroy
    - ck_assert
    - qb_loop_timer_is_running
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_loop_timer_basic) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_loop.c:165,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:168,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:170,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:169,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:166,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:171,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_loop.c:173,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:174,1
    - Dst: qb_loop_destroy
      Src: /src/libqb/tests/check_loop.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames:
    - test_loop_job_1
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 176
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_run
    - qb_loop_job_add
    - qb_loop_create
    - ck_assert_int_eq
    - qb_loop_destroy
    - ck_assert
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_loop_job_1) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_loop.c:182,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:186,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:185,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:183,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_loop.c:188,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:189,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:190,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:191,1
    - Dst: qb_loop_destroy
      Src: /src/libqb/tests/check_loop.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames:
    - test_loop_job_4
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 193
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_run
    - qb_loop_job_add
    - qb_loop_create
    - ck_assert_int_eq
    - qb_loop_destroy
    - ck_assert
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_loop_job_4) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_job_del
      Src: /src/libqb/tests/check_loop.c:296,1
    - Dst: qb_loop_stop
      Src: /src/libqb/tests/check_loop.c:298,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 299
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 299
    functionName: job_stop_and_del_1
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_job_del
    - ck_assert_int_eq
    - qb_loop_stop
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST static void job_stop_and_del_1(void *data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_nano_current_get
      Src: /src/libqb/tests/check_loop.c:508,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:514,1
    - Dst: printf
      Src: /src/libqb/tests/check_loop.c:524,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:521,1
    - Dst: printf
      Src: /src/libqb/tests/check_loop.c:512,1
    - Dst: qb_loop_stop
      Src: /src/libqb/tests/check_loop.c:528,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 531
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 531
    functionName: stop_watch_tmo
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_timer_add
    - qb_loop_stop
    - qb_util_nano_current_get
    - printf
    - ck_assert
    linkageType: ''
    returnType: void
    signature: 'static void stop_watch_tmo(void*data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 575
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 575
    functionName: empty_func_tmo
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void empty_func_tmo(void*data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_signal_del
      Src: /src/libqb/tests/check_loop.c:750,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:751,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:753,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 754
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 754
    functionName: job_rm_sig_handler
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_signal_del
    - qb_loop_job_add
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: 'static void job_rm_sig_handler(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/libqb/tests/check_loop.c:788,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_loop.c:790,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_loop.c:792,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_loop.c:791,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_loop.c:793,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_loop.c:794,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 797
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 797
    functionName: loop_timer_suite
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - suite_create
    - add_tcase
    linkageType: ''
    returnType: END_TEST*
    signature: 'END_TEST static Suite *loop_timer_suite(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_loop.c:304,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:308,1
    - Dst: qb_loop_job_del
      Src: /src/libqb/tests/check_loop.c:309,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:307,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:305,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:310,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:315,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:316,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:317,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:318,1
    - Dst: qb_loop_destroy
      Src: /src/libqb/tests/check_loop.c:324,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:322,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:321,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_loop.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 325
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 325
    functionName: (test_job_add_del)
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_job_del
    - qb_loop_job_add
    - qb_loop_run
    - qb_loop_create
    - ck_assert_int_eq
    - qb_loop_destroy
    - ck_assert
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_job_add_del) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_timer_expire_time_get
      Src: /src/libqb/tests/check_loop.c:357,1
    - Dst: qb_loop_timer_expire_time_remaining
      Src: /src/libqb/tests/check_loop.c:358,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:360,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:362,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:361,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 364
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 364
    functionName: check_time_left
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - ck_assert
    - qb_loop_timer_expire_time_remaining
    - qb_loop_timer_expire_time_get
    linkageType: ''
    returnType: void
    signature: 'static void check_time_left(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_nano_current_get
      Src: /src/libqb/tests/check_loop.c:542,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:544,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/check_loop.c:543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - l
    - sw
    - timeout
    - killer
    argTypes:
    - qb_loop_t*
    - struct qb_stop_watch*
    - uint64_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 545
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 545
    functionName: start_timer
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_loop_timer_add
    - qb_util_nano_current_get
    - ck_assert_int_eq
    linkageType: ''
    returnType: void
    signature: 'static void start_timer(qb_loop_t *l, struct qb_stop_watch *sw, uint64_t
      timeout, int32_t killer) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/check_loop.c:580,1
    - Dst: qb_loop_stop
      Src: /src/libqb/tests/check_loop.c:581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 582
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 582
    functionName: stop_func_tmo
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - qb_log
    - qb_loop_stop
    linkageType: ''
    returnType: void
    signature: 'static void stop_func_tmo(void*data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_create
      Src: /src/libqb/tests/check_loop.c:759,1
    - Dst: qb_loop_signal_add
      Src: /src/libqb/tests/check_loop.c:766,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/check_loop.c:770,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:768,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_loop.c:760,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:772,1
    - Dst: kill
      Src: /src/libqb/tests/check_loop.c:774,1
    - Dst: getpid
      Src: /src/libqb/tests/check_loop.c:774,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/check_loop.c:775,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:777,1
    - Dst: qb_loop_destroy
      Src: /src/libqb/tests/check_loop.c:780,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_loop.c:778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 781
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 781
    functionName: (test_loop_sig_delete)
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - kill
    - qb_loop_job_add
    - qb_loop_run
    - qb_loop_create
    - qb_loop_signal_add
    - getpid
    - ck_assert_int_eq
    - qb_loop_destroy
    - ck_assert
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_loop_sig_delete) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/libqb/tests/check_loop.c:803,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_loop.c:805,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_loop.c:808,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_loop.c:806,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_loop.c:807,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 811
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 811
    functionName: loop_signal_suite
    functionSourceFile: /src/libqb/tests/check_loop.c
    functionUses: []
    functionsReached:
    - suite_create
    - add_tcase
    linkageType: ''
    returnType: Suite*
    signature: 'static Suite *loop_signal_suite(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libqb/tests/format_compare_speed.c:46,1
    - Dst: qb_vsnprintf_serialize
      Src: /src/libqb/tests/format_compare_speed.c:47,1
    - Dst: va_end
      Src: /src/libqb/tests/format_compare_speed.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    - '...'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: store_this_qb
    functionSourceFile: /src/libqb/tests/format_compare_speed.c
    functionUses: []
    functionsReached:
    - qb_vsnprintf_serialize
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: 'static void store_this_qb(const char *fmt, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_stopwatch_create
      Src: /src/libqb/tests/format_compare_speed.c:68,1
    - Dst: func
      Src: /src/libqb/tests/format_compare_speed.c:75,1
    - Dst: qb_util_stopwatch_start
      Src: /src/libqb/tests/format_compare_speed.c:72,1
    - Dst: func
      Src: /src/libqb/tests/format_compare_speed.c:74,1
    - Dst: func
      Src: /src/libqb/tests/format_compare_speed.c:76,1
    - Dst: func
      Src: /src/libqb/tests/format_compare_speed.c:79,1
    - Dst: qb_util_stopwatch_stop
      Src: /src/libqb/tests/format_compare_speed.c:82,1
    - Dst: qb_util_stopwatch_sec_elapsed_get
      Src: /src/libqb/tests/format_compare_speed.c:83,1
    - Dst: printf
      Src: /src/libqb/tests/format_compare_speed.c:85,1
    - Dst: qb_util_stopwatch_free
      Src: /src/libqb/tests/format_compare_speed.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - name
    - func
    argTypes:
    - char*
    - snprintf_like_func
    constantsTouched: []
    func_position:
      end: 87
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 87
    functionName: test_this_one
    functionSourceFile: /src/libqb/tests/format_compare_speed.c
    functionUses: []
    functionsReached:
    - qb_util_stopwatch_start
    - qb_util_stopwatch_free
    - qb_util_stopwatch_stop
    - qb_util_stopwatch_sec_elapsed_get
    - func
    - qb_util_stopwatch_create
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void test_this_one(const char *name, snprintf_like_func func) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_this_one
      Src: /src/libqb/tests/format_compare_speed.c:92,1
    - Dst: test_this_one
      Src: /src/libqb/tests/format_compare_speed.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: main
    functionSourceFile: /src/libqb/tests/format_compare_speed.c
    functionUses: []
    functionsReached:
    - test_this_one
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libqb/tests/format_compare_speed.c:57,1
    - Dst: vsnprintf
      Src: /src/libqb/tests/format_compare_speed.c:58,1
    - Dst: va_end
      Src: /src/libqb/tests/format_compare_speed.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    - '...'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: store_this_snprintf
    functionSourceFile: /src/libqb/tests/format_compare_speed.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: 'static void store_this_snprintf(const char *fmt, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/rbwriter.c:50,1
    - Dst: exit
      Src: /src/libqb/tests/rbwriter.c:52,1
    - Dst: qb_rb_close
      Src: /src/libqb/tests/rbwriter.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: sigterm_handler
    functionSourceFile: /src/libqb/tests/rbwriter.c
    functionUses: []
    functionsReached:
    - qb_log
    - exit
    - qb_rb_close
    linkageType: ''
    returnType: void
    signature: 'static void sigterm_handler(int32_t num) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/libqb/tests/rbwriter.c:95,1
    - Dst: _benchmark
      Src: /src/libqb/tests/rbwriter.c:99,1
    - Dst: signal
      Src: /src/libqb/tests/rbwriter.c:100,1
    - Dst: qb_util_stopwatch_create
      Src: /src/libqb/tests/rbwriter.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 106
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 106
    functionName: do_throughput_benchmark
    functionSourceFile: /src/libqb/tests/rbwriter.c
    functionUses: []
    functionsReached:
    - signal
    - qb_util_stopwatch_create
    - _benchmark
    linkageType: ''
    returnType: void
    signature: 'static void do_throughput_benchmark(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: sigalrm_handler
    functionSourceFile: /src/libqb/tests/rbwriter.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void sigalrm_handler (int num) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libqb/tests/rbwriter.c:110,1
    - Dst: printf
      Src: /src/libqb/tests/rbwriter.c:114,1
    - Dst: printf
      Src: /src/libqb/tests/rbwriter.c:112,1
    - Dst: printf
      Src: /src/libqb/tests/rbwriter.c:111,1
    - Dst: printf
      Src: /src/libqb/tests/rbwriter.c:113,1
    - Dst: printf
      Src: /src/libqb/tests/rbwriter.c:115,1
    - Dst: printf
      Src: /src/libqb/tests/rbwriter.c:116,1
    - Dst: printf
      Src: /src/libqb/tests/rbwriter.c:117,1
    - Dst: printf
      Src: /src/libqb/tests/rbwriter.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 119
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: show_usage
    functionSourceFile: /src/libqb/tests/rbwriter.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void show_usage(const char *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alarm
      Src: /src/libqb/tests/rbwriter.c:64,1
    - Dst: qb_util_stopwatch_stop
      Src: /src/libqb/tests/rbwriter.c:76,1
    - Dst: qb_util_stopwatch_start
      Src: /src/libqb/tests/rbwriter.c:66,1
    - Dst: qb_rb_chunk_write
      Src: /src/libqb/tests/rbwriter.c:68,1
    - Dst: perror
      Src: /src/libqb/tests/rbwriter.c:74,1
    - Dst: qb_util_stopwatch_sec_elapsed_get
      Src: /src/libqb/tests/rbwriter.c:77,1
    - Dst: printf
      Src: /src/libqb/tests/rbwriter.c:79,1
    - Dst: printf
      Src: /src/libqb/tests/rbwriter.c:80,1
    - Dst: printf
      Src: /src/libqb/tests/rbwriter.c:81,1
    - Dst: printf
      Src: /src/libqb/tests/rbwriter.c:82,1
    - Dst: printf
      Src: /src/libqb/tests/rbwriter.c:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - write_size
    argTypes:
    - ssize_t
    constantsTouched: []
    func_position:
      end: 86
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 86
    functionName: _benchmark
    functionSourceFile: /src/libqb/tests/rbwriter.c
    functionUses: []
    functionsReached:
    - alarm
    - qb_util_stopwatch_start
    - qb_util_stopwatch_stop
    - qb_util_stopwatch_sec_elapsed_get
    - qb_rb_chunk_write
    - printf
    - perror
    linkageType: ''
    returnType: void
    signature: 'static void _benchmark(ssize_t write_size) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/libqb/tests/rbwriter.c:127,1
    - Dst: signal
      Src: /src/libqb/tests/rbwriter.c:140,1
    - Dst: exit
      Src: /src/libqb/tests/rbwriter.c:135,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/rbwriter.c:142,1
    - Dst: show_usage
      Src: /src/libqb/tests/rbwriter.c:134,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/rbwriter.c:143,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/rbwriter.c:144,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/rbwriter.c:146,1
    - Dst: qb_rb_open
      Src: /src/libqb/tests/rbwriter.c:148,1
    - Dst: do_throughput_benchmark
      Src: /src/libqb/tests/rbwriter.c:150,1
    - Dst: qb_log_fini
      Src: /src/libqb/tests/rbwriter.c:152,1
    - Dst: qb_rb_close
      Src: /src/libqb/tests/rbwriter.c:151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 154
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 154
    functionName: main
    functionSourceFile: /src/libqb/tests/rbwriter.c
    functionUses: []
    functionsReached:
    - getopt
    - show_usage
    - signal
    - qb_log_ctl
    - qb_log_filter_ctl
    - exit
    - qb_rb_open
    - qb_log_fini
    - do_throughput_benchmark
    - qb_rb_close
    - qb_log_init
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t main(int32_t argc, char *argv[]) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/loop.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: job_3_5
    functionSourceFile: /src/libqb/tests/loop.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void job_3_5(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/loop.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: job_1_2
    functionSourceFile: /src/libqb/tests/loop.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void job_1_2(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/loop.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: job_1_1
    functionSourceFile: /src/libqb/tests/loop.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void job_1_1(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/loop.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: job_2_3
    functionSourceFile: /src/libqb/tests/loop.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void job_2_3(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/loop.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: job_1_9
    functionSourceFile: /src/libqb/tests/loop.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void job_1_9(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/loop.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - sig
    - data
    argTypes:
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: handle_reconf_signal
    functionSourceFile: /src/libqb/tests/loop.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t handle_reconf_signal(int32_t sig, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/loop.c:64,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/loop.c:66,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/loop.c:65,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/loop.c:68,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/loop.c:67,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/loop.c:69,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/loop.c:70,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/loop.c:71,1
    - Dst: qb_loop_timer_add
      Src: /src/libqb/tests/loop.c:72,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/loop.c:73,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/loop.c:74,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/loop.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: more_jobs
    functionSourceFile: /src/libqb/tests/loop.c
    functionUses: []
    functionsReached:
    - qb_loop_timer_add
    - qb_loop_job_add
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void more_jobs(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/loop.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: job_3_9
    functionSourceFile: /src/libqb/tests/loop.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void job_3_9(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/loop.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: job_2_4
    functionSourceFile: /src/libqb/tests/loop.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void job_2_4(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/loop.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: job_3_6
    functionSourceFile: /src/libqb/tests/loop.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void job_3_6(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/loop.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: job_3_7
    functionSourceFile: /src/libqb/tests/loop.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void job_3_7(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/loop.c:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: job_2_8
    functionSourceFile: /src/libqb/tests/loop.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void job_2_8(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/loop.c:44,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/loop.c:45,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/loop.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: more_important_jobs
    functionSourceFile: /src/libqb/tests/loop.c
    functionUses: []
    functionsReached:
    - qb_loop_job_add
    - qb_enter
    linkageType: ''
    returnType: void
    signature: 'static void more_important_jobs(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/loop.c:57,1
    - Dst: qb_loop_stop
      Src: /src/libqb/tests/loop.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - sig
    - data
    argTypes:
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: handle_exit_signal
    functionSourceFile: /src/libqb/tests/loop.c
    functionUses: []
    functionsReached:
    - qb_log
    - qb_loop_stop
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t handle_exit_signal(int32_t sig, void *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libqb/tests/loop.c:81,1
    - Dst: more_jobs
      Src: /src/libqb/tests/loop.c:85,1
    - Dst: qb_log
      Src: /src/libqb/tests/loop.c:83,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/loop.c:87,1
    - Dst: strcmp
      Src: /src/libqb/tests/loop.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - revents
    - data
    argTypes:
    - int32_t
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 89
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 89
    functionName: read_stdin
    functionSourceFile: /src/libqb/tests/loop.c
    functionUses: []
    functionsReached:
    - qb_loop_job_add
    - more_jobs
    - qb_log
    - strcmp
    - read
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t read_stdin(int32_t fd, int32_t revents, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_init
      Src: /src/libqb/tests/loop.c:95,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/loop.c:97,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/loop.c:99,1
    - Dst: qb_loop_create
      Src: /src/libqb/tests/loop.c:101,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/loop.c:96,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/loop.c:103,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/loop.c:104,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/loop.c:105,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/loop.c:106,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/loop.c:110,1
    - Dst: qb_loop_signal_add
      Src: /src/libqb/tests/loop.c:116,1
    - Dst: qb_loop_signal_add
      Src: /src/libqb/tests/loop.c:118,1
    - Dst: qb_loop_poll_add
      Src: /src/libqb/tests/loop.c:113,1
    - Dst: qb_loop_run
      Src: /src/libqb/tests/loop.c:120,1
    - Dst: qb_loop_job_add
      Src: /src/libqb/tests/loop.c:111,1
    - Dst: qb_loop_signal_add
      Src: /src/libqb/tests/loop.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 122
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 122
    functionName: main
    functionSourceFile: /src/libqb/tests/loop.c
    functionUses: []
    functionsReached:
    - qb_loop_run
    - qb_loop_job_add
    - qb_log_filter_ctl
    - qb_loop_signal_add
    - qb_loop_poll_add
    - qb_log_init
    - qb_loop_create
    - qb_log_ctl
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char * argv[]) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/libqb/tests/_syslog_override.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ident
    - option
    - facility
    argTypes:
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: openlog
    functionSourceFile: /src/libqb/tests/_syslog_override.c
    functionUses: []
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: void
    signature: 'void openlog(const char *ident, int option, int facility) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: closelog
    functionSourceFile: /src/libqb/tests/_syslog_override.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void closelog(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - priority
    - format
    - '...'
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: syslog
    functionSourceFile: /src/libqb/tests/_syslog_override.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void syslog(int priority, const char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libqb/tests/file_change_bytes.c:33,1
    - Dst: printf
      Src: /src/libqb/tests/file_change_bytes.c:34,1
    - Dst: printf
      Src: /src/libqb/tests/file_change_bytes.c:36,1
    - Dst: printf
      Src: /src/libqb/tests/file_change_bytes.c:35,1
    - Dst: exit
      Src: /src/libqb/tests/file_change_bytes.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: usage
    functionSourceFile: /src/libqb/tests/file_change_bytes.c
    functionUses: []
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: 'static void usage(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/libqb/tests/file_change_bytes.c:44,1
    - Dst: getpid
      Src: /src/libqb/tests/file_change_bytes.c:44,1
    - Dst: srand
      Src: /src/libqb/tests/file_change_bytes.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: init_rand
    functionSourceFile: /src/libqb/tests/file_change_bytes.c
    functionUses: []
    functionsReached:
    - getpid
    - srand
    - time
    linkageType: ''
    returnType: void
    signature: 'static void init_rand(void) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/libqb/tests/file_change_bytes.c:77,1
    - Dst: free
      Src: /src/libqb/tests/file_change_bytes.c:139,1
    - Dst: strcmp
      Src: /src/libqb/tests/file_change_bytes.c:91,1
    - Dst: fclose
      Src: /src/libqb/tests/file_change_bytes.c:114,1
    - Dst: strcmp
      Src: /src/libqb/tests/file_change_bytes.c:128,1
    - Dst: assert
      Src: /src/libqb/tests/file_change_bytes.c:136,1
    - Dst: getopt
      Src: /src/libqb/tests/file_change_bytes.c:68,1
    - Dst: warnx
      Src: /src/libqb/tests/file_change_bytes.c:76,1
    - Dst: strtol
      Src: /src/libqb/tests/file_change_bytes.c:74,1
    - Dst: err
      Src: /src/libqb/tests/file_change_bytes.c:96,1
    - Dst: realloc
      Src: /src/libqb/tests/file_change_bytes.c:109,1
    - Dst: err
      Src: /src/libqb/tests/file_change_bytes.c:133,1
    - Dst: rand
      Src: /src/libqb/tests/file_change_bytes.c:122,1
    - Dst: rand
      Src: /src/libqb/tests/file_change_bytes.c:122,1
    - Dst: usage
      Src: /src/libqb/tests/file_change_bytes.c:86,1
    - Dst: fopen
      Src: /src/libqb/tests/file_change_bytes.c:94,1
    - Dst: fread
      Src: /src/libqb/tests/file_change_bytes.c:106,1
    - Dst: assert
      Src: /src/libqb/tests/file_change_bytes.c:109,1
    - Dst: fopen
      Src: /src/libqb/tests/file_change_bytes.c:131,1
    - Dst: memcpy
      Src: /src/libqb/tests/file_change_bytes.c:111,1
    - Dst: init_rand
      Src: /src/libqb/tests/file_change_bytes.c:119,1
    - Dst: fwrite
      Src: /src/libqb/tests/file_change_bytes.c:136,1
    - Dst: fclose
      Src: /src/libqb/tests/file_change_bytes.c:137,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 74
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 142
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 142
    functionName: main
    functionSourceFile: /src/libqb/tests/file_change_bytes.c
    functionUses: []
    functionsReached:
    - usage
    - realloc
    - fwrite
    - getopt
    - memcpy
    - fclose
    - fopen
    - assert
    - err
    - rand
    - strcmp
    - free
    - fread
    - warnx
    - strtol
    - init_rand
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char *argv[]) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert
      Src: /src/libqb/tests/check_tlist.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: timer_list_fn1
    functionSourceFile: /src/libqb/tests/check_tlist.c
    functionUses: []
    functionsReached:
    - ck_assert
    linkageType: ''
    returnType: void
    signature: 'static void timer_list_fn1(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timerlist_add_duration
      Src: /src/libqb/tests/check_tlist.c:188,1
    - Dst: timerlist_add_duration
      Src: /src/libqb/tests/check_tlist.c:192,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_tlist.c:194,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_tlist.c:196,1
    - Dst: timerlist_debug_is_valid_heap
      Src: /src/libqb/tests/check_tlist.c:218,1
    - Dst: timerlist_debug_is_valid_heap
      Src: /src/libqb/tests/check_tlist.c:205,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_tlist.c:216,1
    - Dst: timerlist_debug_is_valid_heap
      Src: /src/libqb/tests/check_tlist.c:235,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_tlist.c:248,1
    - Dst: timerlist_debug_is_valid_heap
      Src: /src/libqb/tests/check_tlist.c:253,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_tlist.c:190,1
    - Dst: timerlist_msec_duration_to_expire
      Src: /src/libqb/tests/check_tlist.c:182,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_tlist.c:182,1
    - Dst: timerlist_del
      Src: /src/libqb/tests/check_tlist.c:203,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_tlist.c:238,1
    - Dst: timerlist_msec_duration_to_expire
      Src: /src/libqb/tests/check_tlist.c:238,1
    - Dst: timerlist_add_duration
      Src: /src/libqb/tests/check_tlist.c:244,1
    - Dst: timerlist_del
      Src: /src/libqb/tests/check_tlist.c:252,1
    - Dst: timerlist_debug_is_valid_heap
      Src: /src/libqb/tests/check_tlist.c:196,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_tlist.c:218,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_tlist.c:208,1
    - Dst: timerlist_del
      Src: /src/libqb/tests/check_tlist.c:233,1
    - Dst: timerlist_msec_duration_to_expire
      Src: /src/libqb/tests/check_tlist.c:208,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_tlist.c:205,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_tlist.c:235,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_tlist.c:246,1
    - Dst: timerlist_debug_is_valid_heap
      Src: /src/libqb/tests/check_tlist.c:248,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_tlist.c:253,1
    - Dst: timerlist_init
      Src: /src/libqb/tests/check_tlist.c:177,1
    - Dst: timerlist_add_duration
      Src: /src/libqb/tests/check_tlist.c:214,1
    - Dst: timerlist_destroy
      Src: /src/libqb/tests/check_tlist.c:259,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 78
    argCount: 0
    argNames:
    - test_check_heap
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 260
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_tlist.c
    functionUses: []
    functionsReached:
    - timerlist_msec_duration_to_expire
    - timerlist_destroy
    - timerlist_add_duration
    - timerlist_debug_is_valid_heap
    - timerlist_del
    - timerlist_init
    - ck_assert_int_eq
    - ck_assert
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_check_heap) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timerlist_add_duration
      Src: /src/libqb/tests/check_tlist.c:76,1
    - Dst: timerlist_msec_duration_to_expire
      Src: /src/libqb/tests/check_tlist.c:80,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_tlist.c:85,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_tlist.c:98,1
    - Dst: timerlist_msec_duration_to_expire
      Src: /src/libqb/tests/check_tlist.c:104,1
    - Dst: sleep_ns
      Src: /src/libqb/tests/check_tlist.c:96,1
    - Dst: timerlist_destroy
      Src: /src/libqb/tests/check_tlist.c:114,1
    - Dst: sleep_ns
      Src: /src/libqb/tests/check_tlist.c:79,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_tlist.c:77,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_tlist.c:81,1
    - Dst: timerlist_msec_duration_to_expire
      Src: /src/libqb/tests/check_tlist.c:87,1
    - Dst: timerlist_add_duration
      Src: /src/libqb/tests/check_tlist.c:93,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_tlist.c:112,1
    - Dst: timerlist_init
      Src: /src/libqb/tests/check_tlist.c:71,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_tlist.c:94,1
    - Dst: timerlist_expire
      Src: /src/libqb/tests/check_tlist.c:101,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_tlist.c:105,1
    - Dst: timerlist_expire
      Src: /src/libqb/tests/check_tlist.c:84,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_tlist.c:88,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_tlist.c:102,1
    - Dst: timerlist_msec_duration_to_expire
      Src: /src/libqb/tests/check_tlist.c:97,1
    - Dst: timerlist_del
      Src: /src/libqb/tests/check_tlist.c:110,1
    - Dst: timerlist_msec_duration_to_expire
      Src: /src/libqb/tests/check_tlist.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 115
    functionName: (test_check_basic)
    functionSourceFile: /src/libqb/tests/check_tlist.c
    functionUses: []
    functionsReached:
    - sleep_ns
    - timerlist_msec_duration_to_expire
    - timerlist_destroy
    - timerlist_add_duration
    - timerlist_del
    - timerlist_init
    - ck_assert_int_eq
    - timerlist_expire
    - ck_assert
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_check_basic) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timerlist_init
      Src: /src/libqb/tests/check_tlist.c:126,1
    - Dst: timerlist_del
      Src: /src/libqb/tests/check_tlist.c:138,1
    - Dst: timerlist_add_duration
      Src: /src/libqb/tests/check_tlist.c:132,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_tlist.c:134,1
    - Dst: timerlist_msec_duration_to_expire
      Src: /src/libqb/tests/check_tlist.c:141,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_tlist.c:142,1
    - Dst: timerlist_add_duration
      Src: /src/libqb/tests/check_tlist.c:148,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_tlist.c:150,1
    - Dst: timerlist_msec_duration_to_expire
      Src: /src/libqb/tests/check_tlist.c:153,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_tlist.c:154,1
    - Dst: timerlist_destroy
      Src: /src/libqb/tests/check_tlist.c:165,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_tlist.c:160,1
    - Dst: timerlist_msec_duration_to_expire
      Src: /src/libqb/tests/check_tlist.c:162,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_tlist.c:163,1
    - Dst: timerlist_expire
      Src: /src/libqb/tests/check_tlist.c:159,1
    - Dst: sleep_ns
      Src: /src/libqb/tests/check_tlist.c:156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 0
    argNames:
    - test_check_speed
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 166
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_tlist.c
    functionUses: []
    functionsReached:
    - sleep_ns
    - timerlist_msec_duration_to_expire
    - timerlist_destroy
    - timerlist_add_duration
    - timerlist_del
    - timerlist_init
    - ck_assert_int_eq
    - timerlist_expire
    - ck_assert
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_check_speed) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/libqb/tests/check_tlist.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ns
    argTypes:
    - long long int
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: sleep_ns
    functionSourceFile: /src/libqb/tests/check_tlist.c
    functionUses: []
    functionsReached:
    - poll
    linkageType: ''
    returnType: void
    signature: 'static void sleep_ns(long long int ns) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/libqb/tests/check_tlist.c:266,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_tlist.c:268,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_tlist.c:270,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_tlist.c:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 273
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 273
    functionName: tlist_suite
    functionSourceFile: /src/libqb/tests/check_tlist.c
    functionUses: []
    functionsReached:
    - suite_create
    - add_tcase
    linkageType: ''
    returnType: END_TEST*
    signature: 'END_TEST static Suite *tlist_suite(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tlist_suite
      Src: /src/libqb/tests/check_tlist.c:279,1
    - Dst: srunner_create
      Src: /src/libqb/tests/check_tlist.c:280,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_tlist.c:282,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_tlist.c:284,1
    - Dst: atexit
      Src: /src/libqb/tests/check_tlist.c:283,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_tlist.c:285,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_tlist.c:287,1
    - Dst: srunner_run_all
      Src: /src/libqb/tests/check_tlist.c:289,1
    - Dst: srunner_ntests_failed
      Src: /src/libqb/tests/check_tlist.c:290,1
    - Dst: srunner_free
      Src: /src/libqb/tests/check_tlist.c:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 293
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 293
    functionName: main
    functionSourceFile: /src/libqb/tests/check_tlist.c
    functionUses: []
    functionsReached:
    - atexit
    - tlist_suite
    - qb_log_filter_ctl
    - srunner_free
    - srunner_ntests_failed
    - srunner_run_all
    - srunner_create
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t main(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcc_send
      Src: /src/libqb/tests/bmc.c:67,1
    - Dst: qb_perror
      Src: /src/libqb/tests/bmc.c:72,1
    - Dst: qb_perror
      Src: /src/libqb/tests/bmc.c:76,1
    - Dst: qb_perror
      Src: /src/libqb/tests/bmc.c:89,1
    - Dst: qb_ipcc_recv
      Src: /src/libqb/tests/bmc.c:82,1
    - Dst: assert
      Src: /src/libqb/tests/bmc.c:91,1
    - Dst: assert
      Src: /src/libqb/tests/bmc.c:92,1
    - Dst: assert
      Src: /src/libqb/tests/bmc.c:93,1
    - Dst: qb_ipcc_event_recv
      Src: /src/libqb/tests/bmc.c:96,1
    - Dst: qb_perror
      Src: /src/libqb/tests/bmc.c:103,1
    - Dst: assert
      Src: /src/libqb/tests/bmc.c:107,1
    - Dst: assert
      Src: /src/libqb/tests/bmc.c:105,1
    - Dst: assert
      Src: /src/libqb/tests/bmc.c:106,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 1
    argNames:
    - size
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 110
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 110
    functionName: bmc_send_nozc
    functionSourceFile: /src/libqb/tests/bmc.c
    functionUses: []
    functionsReached:
    - qb_ipcc_recv
    - qb_perror
    - assert
    - qb_ipcc_event_recv
    - qb_ipcc_send
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t bmc_send_nozc(uint32_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/bmc.c:116,1
    - Dst: qb_log
      Src: /src/libqb/tests/bmc.c:119,1
    - Dst: qb_log
      Src: /src/libqb/tests/bmc.c:120,1
    - Dst: qb_log
      Src: /src/libqb/tests/bmc.c:117,1
    - Dst: qb_log
      Src: /src/libqb/tests/bmc.c:118,1
    - Dst: qb_log
      Src: /src/libqb/tests/bmc.c:121,1
    - Dst: qb_log
      Src: /src/libqb/tests/bmc.c:122,1
    - Dst: qb_log
      Src: /src/libqb/tests/bmc.c:123,1
    - Dst: qb_log
      Src: /src/libqb/tests/bmc.c:124,1
    - Dst: qb_log
      Src: /src/libqb/tests/bmc.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 126
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 126
    functionName: show_usage
    functionSourceFile: /src/libqb/tests/bmc.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void show_usage(const char *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_stopwatch_stop
      Src: /src/libqb/tests/bmc.c:42,1
    - Dst: qb_log
      Src: /src/libqb/tests/bmc.c:47,1
    - Dst: qb_util_stopwatch_sec_elapsed_get
      Src: /src/libqb/tests/bmc.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - operation
    - size
    argTypes:
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: bm_finish
    functionSourceFile: /src/libqb/tests/bmc.c
    functionUses: []
    functionsReached:
    - qb_util_stopwatch_stop
    - qb_util_stopwatch_sec_elapsed_get
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void bm_finish(const char *operation, int32_t size) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/libqb/tests/bmc.c:143,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/bmc.c:146,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/bmc.c:145,1
    - Dst: qb_perror
      Src: /src/libqb/tests/bmc.c:175,1
    - Dst: exit
      Src: /src/libqb/tests/bmc.c:176,1
    - Dst: qb_util_stopwatch_create
      Src: /src/libqb/tests/bmc.c:179,1
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/tests/bmc.c:194,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/bmc.c:147,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/bmc.c:149,1
    - Dst: getopt
      Src: /src/libqb/tests/bmc.c:151,1
    - Dst: qb_ipcc_connect
      Src: /src/libqb/tests/bmc.c:173,1
    - Dst: signal
      Src: /src/libqb/tests/bmc.c:172,1
    - Dst: signal
      Src: /src/libqb/tests/bmc.c:171,1
    - Dst: bm_finish
      Src: /src/libqb/tests/bmc.c:190,1
    - Dst: qb_util_stopwatch_start
      Src: /src/libqb/tests/bmc.c:184,1
    - Dst: bmc_send_nozc
      Src: /src/libqb/tests/bmc.c:186,1
    - Dst: show_usage
      Src: /src/libqb/tests/bmc.c:164,1
    - Dst: exit
      Src: /src/libqb/tests/bmc.c:165,1
    - Dst: signal
      Src: /src/libqb/tests/bmc.c:170,1
    - Dst: QB_MAX
      Src: /src/libqb/tests/bmc.c:180,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 196
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 196
    functionName: main
    functionSourceFile: /src/libqb/tests/bmc.c
    functionUses: []
    functionsReached:
    - qb_util_stopwatch_start
    - getopt
    - qb_ipcc_connect
    - qb_perror
    - bmc_send_nozc
    - show_usage
    - signal
    - qb_ipcc_disconnect
    - qb_log_filter_ctl
    - exit
    - qb_util_stopwatch_create
    - bm_finish
    - getpid
    - QB_MAX
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t main(int32_t argc, char *argv[]) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/bmc.c:130,1
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/tests/bmc.c:131,1
    - Dst: exit
      Src: /src/libqb/tests/bmc.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: sigterm_handler
    functionSourceFile: /src/libqb/tests/bmc.c
    functionUses: []
    functionsReached:
    - qb_log
    - qb_ipcc_disconnect
    - exit
    linkageType: ''
    returnType: void
    signature: 'static void sigterm_handler(int32_t num) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_rb_open
      Src: /src/libqb/tests/check_rb.c:170,1
    - Dst: strlen
      Src: /src/libqb/tests/check_rb.c:173,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_rb.c:171,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_rb.c:174,1
    - Dst: qb_rb_chunk_write
      Src: /src/libqb/tests/check_rb.c:173,1
    - Dst: strlen
      Src: /src/libqb/tests/check_rb.c:174,1
    - Dst: qb_rb_chunk_peek
      Src: /src/libqb/tests/check_rb.c:180,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_rb.c:185,1
    - Dst: strlen
      Src: /src/libqb/tests/check_rb.c:185,1
    - Dst: qb_rb_chunk_reclaim
      Src: /src/libqb/tests/check_rb.c:186,1
    - Dst: qb_rb_close
      Src: /src/libqb/tests/check_rb.c:188,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames:
    - test_ring_buffer4
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 189
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_rb.c
    functionUses: []
    functionsReached:
    - qb_rb_chunk_reclaim
    - qb_rb_open
    - qb_rb_chunk_write
    - ck_assert_int_eq
    - qb_rb_chunk_peek
    - strlen
    - qb_rb_close
    - ck_assert
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_ring_buffer4) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libqb/tests/check_rb.c:141,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_rb.c:144,1
    - Dst: qb_rb_open
      Src: /src/libqb/tests/check_rb.c:143,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_rb.c:147,1
    - Dst: qb_rb_chunk_write
      Src: /src/libqb/tests/check_rb.c:146,1
    - Dst: qb_rb_chunk_read
      Src: /src/libqb/tests/check_rb.c:150,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_rb.c:155,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_rb.c:156,1
    - Dst: qb_rb_close
      Src: /src/libqb/tests/check_rb.c:158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames:
    - test_ring_buffer3
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 159
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_rb.c
    functionUses: []
    functionsReached:
    - qb_rb_open
    - qb_rb_chunk_read
    - ck_assert_str_eq
    - qb_rb_chunk_write
    - ck_assert_int_eq
    - strlen
    - qb_rb_close
    - ck_assert
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST /* * odd size (10) */ START_TEST(test_ring_buffer3) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_rb_open
      Src: /src/libqb/tests/check_rb.c:101,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_rb.c:102,1
    - Dst: qb_rb_chunk_peek
      Src: /src/libqb/tests/check_rb.c:108,1
    - Dst: qb_rb_chunk_write
      Src: /src/libqb/tests/check_rb.c:104,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_rb.c:105,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_rb.c:109,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_rb.c:110,1
    - Dst: qb_rb_chunk_reclaim
      Src: /src/libqb/tests/check_rb.c:111,1
    - Dst: qb_rb_chunk_write
      Src: /src/libqb/tests/check_rb.c:114,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_rb.c:115,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_rb.c:123,1
    - Dst: qb_rb_close
      Src: /src/libqb/tests/check_rb.c:127,1
    - Dst: qb_rb_chunk_reclaim
      Src: /src/libqb/tests/check_rb.c:125,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_rb.c:124,1
    - Dst: qb_rb_chunk_peek
      Src: /src/libqb/tests/check_rb.c:118,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 0
    argNames:
    - test_ring_buffer2
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 128
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_rb.c
    functionUses: []
    functionsReached:
    - qb_rb_chunk_reclaim
    - qb_rb_open
    - qb_rb_chunk_write
    - ck_assert_int_eq
    - qb_rb_chunk_peek
    - qb_rb_close
    - ck_assert
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST /* * nice size (int64) */ START_TEST(test_ring_buffer2) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_rb_open
      Src: /src/libqb/tests/check_rb.c:46,1
    - Dst: sprintf
      Src: /src/libqb/tests/check_rb.c:56,1
    - Dst: memcpy
      Src: /src/libqb/tests/check_rb.c:50,1
    - Dst: memcpy
      Src: /src/libqb/tests/check_rb.c:60,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_rb.c:47,1
    - Dst: qb_rb_space_free
      Src: /src/libqb/tests/check_rb.c:61,1
    - Dst: qb_rb_chunk_write
      Src: /src/libqb/tests/check_rb.c:62,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_rb.c:64,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_rb.c:66,1
    - Dst: memset
      Src: /src/libqb/tests/check_rb.c:70,1
    - Dst: memcpy
      Src: /src/libqb/tests/check_rb.c:72,1
    - Dst: memcpy
      Src: /src/libqb/tests/check_rb.c:81,1
    - Dst: qb_rb_close
      Src: /src/libqb/tests/check_rb.c:86,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_rb.c:83,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_rb.c:78,1
    - Dst: qb_rb_chunk_read
      Src: /src/libqb/tests/check_rb.c:76,1
    - Dst: qb_rb_chunks_used
      Src: /src/libqb/tests/check_rb.c:78,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 87
    functionName: (test_ring_buffer1)
    functionSourceFile: /src/libqb/tests/check_rb.c
    functionUses: []
    functionsReached:
    - sprintf
    - memcpy
    - qb_rb_chunks_used
    - memset
    - qb_rb_space_free
    - qb_rb_open
    - qb_rb_chunk_read
    - qb_rb_chunk_write
    - ck_assert_int_eq
    - qb_rb_close
    - ck_assert
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_ring_buffer1) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/libqb/tests/check_rb.c:195,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_rb.c:197,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_rb.c:200,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_rb.c:199,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_rb.c:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 203
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 203
    functionName: rb_suite
    functionSourceFile: /src/libqb/tests/check_rb.c
    functionUses: []
    functionsReached:
    - suite_create
    - add_tcase
    linkageType: ''
    returnType: END_TEST*
    signature: 'END_TEST static Suite *rb_suite(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rb_suite
      Src: /src/libqb/tests/check_rb.c:209,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_rb.c:214,1
    - Dst: srunner_create
      Src: /src/libqb/tests/check_rb.c:210,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_rb.c:212,1
    - Dst: atexit
      Src: /src/libqb/tests/check_rb.c:213,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_rb.c:215,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_rb.c:217,1
    - Dst: srunner_run_all
      Src: /src/libqb/tests/check_rb.c:219,1
    - Dst: srunner_ntests_failed
      Src: /src/libqb/tests/check_rb.c:220,1
    - Dst: srunner_free
      Src: /src/libqb/tests/check_rb.c:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 223
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 223
    functionName: main
    functionSourceFile: /src/libqb/tests/check_rb.c
    functionUses: []
    functionsReached:
    - atexit
    - rb_suite
    - srunner_free
    - qb_log_filter_ctl
    - srunner_ntests_failed
    - srunner_run_all
    - srunner_create
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t main(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fake_unlink
      Src: /src/libqb/tests/_failure_injection.c:57,1
    - Dst: real_unlink
      Src: /src/libqb/tests/_failure_injection.c:66,1
    - Dst: perror
      Src: /src/libqb/tests/_failure_injection.c:62,1
    - Dst: dlsym
      Src: /src/libqb/tests/_failure_injection.c:60,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - pathname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 67
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 67
    functionName: unlink
    functionSourceFile: /src/libqb/tests/_failure_injection.c
    functionUses: []
    functionsReached:
    - real_unlink
    - perror
    - fake_unlink
    - dlsym
    linkageType: ''
    returnType: int
    signature: 'int unlink(const char *pathname) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/libqb/tests/_failure_injection.c:123,1
    - Dst: real_truncate
      Src: /src/libqb/tests/_failure_injection.c:130,1
    - Dst: perror
      Src: /src/libqb/tests/_failure_injection.c:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - path
    - length
    argTypes:
    - char*
    - off_t
    constantsTouched: []
    func_position:
      end: 131
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 131
    functionName: truncate
    functionSourceFile: /src/libqb/tests/_failure_injection.c
    functionUses: []
    functionsReached:
    - real_truncate
    - perror
    - dlsym
    linkageType: ''
    returnType: int
    signature: 'int truncate(const char *path, off_t length) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - path
    - oflag
    - '...'
    argTypes:
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: fake_openat
    functionSourceFile: /src/libqb/tests/_failure_injection.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int fake_openat(int fd, const char *path, int oflag, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - pathname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: fake_unlink
    functionSourceFile: /src/libqb/tests/_failure_injection.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int fake_unlink(const char *pathname) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - path
    - length
    argTypes:
    - char*
    - off_t
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: fake_truncate
    functionSourceFile: /src/libqb/tests/_failure_injection.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int fake_truncate(const char *path, off_t length) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - dirfd
    - pathname
    - flags
    argTypes:
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: fake_unlinkat
    functionSourceFile: /src/libqb/tests/_failure_injection.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int fake_unlinkat(int dirfd, const char *pathname, int flags) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fake_unlinkat
      Src: /src/libqb/tests/_failure_injection.c:89,1
    - Dst: dlsym
      Src: /src/libqb/tests/_failure_injection.c:92,1
    - Dst: real_unlinkat
      Src: /src/libqb/tests/_failure_injection.c:98,1
    - Dst: perror
      Src: /src/libqb/tests/_failure_injection.c:94,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - dirfd
    - pathname
    - flags
    argTypes:
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 99
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 99
    functionName: unlinkat
    functionSourceFile: /src/libqb/tests/_failure_injection.c
    functionUses: []
    functionsReached:
    - fake_unlinkat
    - real_unlinkat
    - perror
    - dlsym
    linkageType: ''
    returnType: int
    signature: 'int unlinkat(int dirfd, const char *pathname, int flags) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/libqb/tests/_failure_injection.c:162,1
    - Dst: va_arg
      Src: /src/libqb/tests/_failure_injection.c:172,1
    - Dst: perror
      Src: /src/libqb/tests/_failure_injection.c:164,1
    - Dst: va_start
      Src: /src/libqb/tests/_failure_injection.c:170,1
    - Dst: va_end
      Src: /src/libqb/tests/_failure_injection.c:175,1
    - Dst: real_openat
      Src: /src/libqb/tests/_failure_injection.c:178,1
    - Dst: real_openat
      Src: /src/libqb/tests/_failure_injection.c:180,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - fd
    - path
    - oflag
    - '...'
    argTypes:
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 182
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 182
    functionName: openat
    functionSourceFile: /src/libqb/tests/_failure_injection.c
    functionUses: []
    functionsReached:
    - real_openat
    - va_end
    - va_arg
    - va_start
    - dlsym
    - perror
    linkageType: ''
    returnType: int
    signature: 'int openat(int fd, const char *path, int oflag, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: log_also
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void log_also(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:699,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:714,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:690,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:689,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:691,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:692,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:711,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:705,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:709,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:710,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:715,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:713,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_log.c:686,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:687,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:688,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:694,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:695,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:696,1
    - Dst: qb_log_custom_open
      Src: /src/libqb/tests/check_log.c:698,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:701,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_log.c:703,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:706,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames:
    - test_log_enable
    argTypes: []
    constantsTouched: []
    func_position:
      end: 716
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 716
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_log_custom_open
    - qb_log
    - qb_log_filter_ctl
    - ck_assert_str_eq
    - qb_log_format_set
    - ck_assert_int_eq
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_log_enable) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libqb/tests/check_log.c:812,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:815,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:817,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_log.c:814,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:816,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:818,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:819,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:820,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:821,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:823,1
    - Dst: qb_log_blackbox_write_to_file
      Src: /src/libqb/tests/check_log.c:834,1
    - Dst: ck_assert_int_gt
      Src: /src/libqb/tests/check_log.c:835,1
    - Dst: ck_assert_int_le
      Src: /src/libqb/tests/check_log.c:837,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:831,1
    - Dst: qb_log_fini
      Src: /src/libqb/tests/check_log.c:839,1
    - Dst: qb_log_blackbox_print_from_file
      Src: /src/libqb/tests/check_log.c:836,1
    - Dst: unlink
      Src: /src/libqb/tests/check_log.c:838,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 0
    argNames:
    - test_log_long_msg
    argTypes: []
    constantsTouched: []
    func_position:
      end: 840
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 840
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_log_blackbox_print_from_file
    - calloc
    - ck_assert_int_le
    - qb_log
    - ck_assert_int_gt
    - qb_log_filter_ctl
    - unlink
    - qb_log_fini
    - qb_log_blackbox_write_to_file
    - ck_assert_int_eq
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_log_long_msg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_log.c:988,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:992,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:989,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:994,1
    - Dst: qb_log_custom_open
      Src: /src/libqb/tests/check_log.c:991,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_log.c:996,1
    - Dst: qb_log_tags_stringify_fn_set
      Src: /src/libqb/tests/check_log.c:997,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:998,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:999,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:1001,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:1008,1
    - Dst: qb_log_fini
      Src: /src/libqb/tests/check_log.c:1010,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:1004,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:1007,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 983
    functionDepth: 0
    functionLinenumber: 983
    functionLinenumberEnd: 1013
    functionName: (test_zero_tags)
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_log_custom_open
    - qb_log_filter_ctl
    - ck_assert_str_eq
    - qb_log_format_set
    - qb_log_from_external_source
    - qb_log_fini
    - ck_assert_int_eq
    - qb_log_tags_stringify_fn_set
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_zero_tags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: log_and_this_too
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void log_and_this_too(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/libqb/tests/check_log.c:1093,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_log.c:1098,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_log.c:1096,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_log.c:1095,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_log.c:1097,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_log.c:1099,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_log.c:1100,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_log.c:1101,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_log.c:1102,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_log.c:1103,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_log.c:1105,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_log.c:1110,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_log.c:1119,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_log.c:1107,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_log.c:1109,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_log.c:1104,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_log.c:1111,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_log.c:1117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1123
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1123
    functionName: log_suite
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - suite_create
    - add_tcase
    linkageType: ''
    returnType: Suite*
    signature: 'static Suite *log_suite(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_suite
      Src: /src/libqb/tests/check_log.c:1130,1
    - Dst: srunner_ntests_failed
      Src: /src/libqb/tests/check_log.c:1134,1
    - Dst: srunner_create
      Src: /src/libqb/tests/check_log.c:1131,1
    - Dst: srunner_run_all
      Src: /src/libqb/tests/check_log.c:1133,1
    - Dst: srunner_free
      Src: /src/libqb/tests/check_log.c:1135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1137
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1137
    functionName: main
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - srunner_free
    - log_suite
    - srunner_ntests_failed
    - srunner_run_all
    - srunner_create
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t main(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:146,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:148,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:149,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:175,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:167,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:144,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:161,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:163,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:164,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:184,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:185,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:186,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:187,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:188,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:151,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:153,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:159,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:178,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:180,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:183,1
    - Dst: qb_log_fini
      Src: /src/libqb/tests/check_log.c:141,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_log.c:156,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:169,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:171,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:177,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 49
    argCount: 0
    argNames:
    - test_log_stupid_inputs
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 190
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_log
    - qb_log_filter_ctl
    - qb_log_fini
    - qb_log_from_external_source
    - ck_assert_int_eq
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_log_stupid_inputs) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_bit_set
      Src: /src/libqb/tests/check_log.c:259,1
    - Dst: qb_bit_clear
      Src: /src/libqb/tests/check_log.c:261,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct qb_log_callsite*
    constantsTouched: []
    func_position:
      end: 263
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 263
    functionName: m_filter
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_bit_clear
    - qb_bit_set
    linkageType: ''
    returnType: void
    signature: 'static void m_filter(struct qb_log_callsite *cs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/libqb/tests/check_log.c:303,1
    - Dst: unlink
      Src: /src/libqb/tests/check_log.c:304,1
    - Dst: qb_log_file_reopen
      Src: /src/libqb/tests/check_log.c:322,1
    - Dst: ck_assert_int_ge
      Src: /src/libqb/tests/check_log.c:319,1
    - Dst: qb_log_file_reopen
      Src: /src/libqb/tests/check_log.c:331,1
    - Dst: unlink
      Src: /src/libqb/tests/check_log.c:342,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:310,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:312,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:327,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:323,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:332,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:338,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:308,1
    - Dst: qb_log_file_open
      Src: /src/libqb/tests/check_log.c:307,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_log.c:306,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:311,1
    - Dst: stat
      Src: /src/libqb/tests/check_log.c:326,1
    - Dst: stat
      Src: /src/libqb/tests/check_log.c:317,1
    - Dst: ck_assert_int_ge
      Src: /src/libqb/tests/check_log.c:328,1
    - Dst: stat
      Src: /src/libqb/tests/check_log.c:337,1
    - Dst: ck_assert_int_ge
      Src: /src/libqb/tests/check_log.c:339,1
    - Dst: unlink
      Src: /src/libqb/tests/check_log.c:341,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:314,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:315,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:318,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:324,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:325,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:334,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 0
    argNames:
    - test_file_logging
    argTypes: []
    constantsTouched: []
    func_position:
      end: 343
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 343
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_log_file_reopen
    - stat
    - qb_log_ctl
    - qb_log
    - qb_log_filter_ctl
    - ck_assert_int_ge
    - unlink
    - ck_assert_int_eq
    - qb_log_file_open
    - qb_log_init
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_file_logging) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_log.c:352,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:353,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:358,1
    - Dst: qb_log_custom_open
      Src: /src/libqb/tests/check_log.c:355,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:356,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_log.c:361,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:362,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:363,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:365,1
    - Dst: sscanf
      Src: /src/libqb/tests/check_log.c:366,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_log.c:370,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:371,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:373,1
    - Dst: sscanf
      Src: /src/libqb/tests/check_log.c:372,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames:
    - test_timestamps
    argTypes: []
    constantsTouched: []
    func_position:
      end: 374
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 374
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_log_custom_open
    - qb_log
    - qb_log_filter_ctl
    - qb_log_format_set
    - ck_assert_int_eq
    - qb_log_init
    - qb_log_ctl
    - sscanf
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_timestamps) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - tags
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 609
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 609
    functionName: _test_tags_stringify
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: END_TEST*
    signature: 'END_TEST static const char *_test_tags_stringify(uint32_t tags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_log.c:773,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:775,1
    - Dst: qb_log_file_open
      Src: /src/libqb/tests/check_log.c:774,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_log.c:778,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:777,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:779,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:780,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:781,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:782,1
    - Dst: pthread_attr_init
      Src: /src/libqb/tests/check_log.c:785,1
    - Dst: pthread_create
      Src: /src/libqb/tests/check_log.c:789,1
    - Dst: pthread_create
      Src: /src/libqb/tests/check_log.c:797,1
    - Dst: pthread_attr_init
      Src: /src/libqb/tests/check_log.c:793,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/libqb/tests/check_log.c:787,1
    - Dst: pthread_join
      Src: /src/libqb/tests/check_log.c:801,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/libqb/tests/check_log.c:795,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 804
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 804
    functionName: (test_log_threads)
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - pthread_attr_setdetachstate
    - qb_log_ctl
    - qb_log_filter_ctl
    - pthread_join
    - qb_log_format_set
    - pthread_attr_init
    - pthread_create
    - ck_assert_int_eq
    - qb_log_file_open
    - qb_log_init
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_log_threads) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_log.c:925,1
    - Dst: _ck_assert_int
      Src: /src/libqb/tests/check_log.c:929,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:926,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_log.c:930,1
    - Dst: qb_log_filter_fn_set
      Src: /src/libqb/tests/check_log.c:931,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:932,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:936,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:946,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:942,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:939,1
    - Dst: memset
      Src: /src/libqb/tests/check_log.c:964,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:935,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:947,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:952,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:953,1
    - Dst: qb_log_fini
      Src: /src/libqb/tests/check_log.c:972,1
    - Dst: qb_log_custom_open
      Src: /src/libqb/tests/check_log.c:928,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:933,1
    - Dst: memset
      Src: /src/libqb/tests/check_log.c:951,1
    - Dst: memset
      Src: /src/libqb/tests/check_log.c:959,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:970,1
    - Dst: memset
      Src: /src/libqb/tests/check_log.c:955,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:961,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:941,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:938,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:943,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:956,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:957,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:960,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:965,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:966,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 0
    argNames:
    - test_extended_information
    argTypes: []
    constantsTouched: []
    func_position:
      end: 973
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 973
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - _ck_assert_int
    - qb_log_custom_open
    - memset
    - qb_log
    - qb_log_filter_ctl
    - qb_log_filter_fn_set
    - ck_assert_str_eq
    - qb_log_format_set
    - qb_log_fini
    - ck_assert_int_eq
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST #endif START_TEST(test_extended_information) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_log.c:270,1
    - Dst: _ck_assert_int
      Src: /src/libqb/tests/check_log.c:274,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:271,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:275,1
    - Dst: qb_log_custom_open
      Src: /src/libqb/tests/check_log.c:273,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:276,1
    - Dst: qb_log_filter_fn_set
      Src: /src/libqb/tests/check_log.c:282,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:285,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:286,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:288,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:291,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:294,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 295
    functionName: (test_log_filter_fn)
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - _ck_assert_int
    - qb_log_custom_open
    - qb_log
    - qb_log_filter_fn_set
    - qb_log_from_external_source
    - ck_assert_int_eq
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_log_filter_fn) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_log.c:619,1
    - Dst: qb_log_custom_open
      Src: /src/libqb/tests/check_log.c:622,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:625,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:639,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:640,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:643,1
    - Dst: qb_log_tags_stringify_fn_set
      Src: /src/libqb/tests/check_log.c:646,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:652,1
    - Dst: qb_logt
      Src: /src/libqb/tests/check_log.c:653,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:654,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_log.c:673,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:677,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:660,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:620,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:629,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:633,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:635,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:634,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:638,1
    - Dst: qb_logt
      Src: /src/libqb/tests/check_log.c:655,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_log.c:658,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:659,1
    - Dst: qb_log_tags_stringify_fn_set
      Src: /src/libqb/tests/check_log.c:662,1
    - Dst: snprintf
      Src: /src/libqb/tests/check_log.c:675,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:656,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:674,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:623,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_log.c:627,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:641,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:642,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:644,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:650,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_log.c:667,1
    - Dst: snprintf
      Src: /src/libqb/tests/check_log.c:669,1
    - Dst: getpid
      Src: /src/libqb/tests/check_log.c:676,1
    - Dst: getpid
      Src: /src/libqb/tests/check_log.c:669,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:630,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:631,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:632,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:636,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:637,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_log.c:647,1
    - Dst: qb_logt
      Src: /src/libqb/tests/check_log.c:649,1
    - Dst: qb_logt
      Src: /src/libqb/tests/check_log.c:651,1
    - Dst: gethostname
      Src: /src/libqb/tests/check_log.c:664,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:668,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 678
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 678
    functionName: (test_log_format)
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_log_custom_open
    - qb_log
    - snprintf
    - qb_log_filter_ctl
    - ck_assert_str_eq
    - qb_log_format_set
    - gethostname
    - getpid
    - qb_logt
    - qb_log_tags_stringify_fn_set
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_log_format) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libqb/tests/check_log.c:723,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:726,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:729,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:728,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:727,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:730,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:731,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:732,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:733,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 736
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 736
    functionName: thr_send_logs_2
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_log
    - printf
    linkageType: ''
    returnType: void*
    signature: 'static void *thr_send_logs_2(void *ctx) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/libqb/tests/check_log.c:979,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 981
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 981
    functionName: tagtest_stringify_tag
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: END_TEST*
    signature: 'END_TEST static const char *tagtest_stringify_tag(uint32_t tag) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_log.c:1069,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:1070,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:1072,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:1074,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:1073,1
    - Dst: qb_log_ctl2
      Src: /src/libqb/tests/check_log.c:1076,1
    - Dst: QB_LOG_CTL2_S
      Src: /src/libqb/tests/check_log.c:1076,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:1077,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:1078,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:1081,1
    - Dst: qb_log_fini
      Src: /src/libqb/tests/check_log.c:1084,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:1082,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames:
    - test_syslog
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1085
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_log
    - QB_LOG_CTL2_S
    - ck_assert_str_eq
    - qb_log_ctl2
    - qb_log_fini
    - ck_assert_int_eq
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST #else START_TEST(test_syslog) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libqb/tests/check_log.c:48,1
    - Dst: va_end
      Src: /src/libqb/tests/check_log.c:51,1
    - Dst: qb_vsnprintf_serialize
      Src: /src/libqb/tests/check_log.c:49,1
    - Dst: qb_vsnprintf_deserialize
      Src: /src/libqb/tests/check_log.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - out
    - fmt
    - '...'
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: format_this
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_vsnprintf_serialize
    - qb_vsnprintf_deserialize
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: 'static void format_this(char *out, const char *fmt, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_target_format
      Src: /src/libqb/tests/check_log.c:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 4
    argNames:
    - t
    - cs
    - timestamp
    - msg
    argTypes:
    - int32_t
    - struct qb_log_callsite*
    - struct timespec*
    - char*
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: _test_logger
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_log_target_format
    linkageType: ''
    returnType: void
    signature: "static void _test_logger(int32_t t,\t struct qb_log_callsite *cs,\t
      struct timespec *timestamp, const char *msg) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libqb/tests/check_log.c:75,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:84,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:92,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:87,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:93,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:88,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:101,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:102,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:103,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:104,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:109,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:113,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:71,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:74,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:94,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:108,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:128,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:130,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:116,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:112,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:105,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:90,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:91,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:85,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:96,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:98,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:99,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:100,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:111,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:115,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:72,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:76,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:78,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:79,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:81,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:82,1
    - Dst: snprintf
      Src: /src/libqb/tests/check_log.c:95,1
    - Dst: format_this_up_to
      Src: /src/libqb/tests/check_log.c:118,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:119,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:106,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:121,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:107,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:125,1
    - Dst: format_this
      Src: /src/libqb/tests/check_log.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 133
    functionName: (test_va_serialize)
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - ck_assert_str_eq
    - snprintf
    - format_this
    - format_this_up_to
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_va_serialize) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/tests/check_log.c:238,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:240,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:244,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:239,1
    - Dst: qb_perror
      Src: /src/libqb/tests/check_log.c:242,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:245,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:246,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:247,1
    - Dst: qb_leave
      Src: /src/libqb/tests/check_log.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 249
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 249
    functionName: log_it_please
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_leave
    - qb_log
    - qb_perror
    - qb_enter
    linkageType: ''
    returnType: void
    signature: 'static void log_it_please(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_custom_open
      Src: /src/libqb/tests/check_log.c:443,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:444,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:448,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:474,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:493,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:498,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:503,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:505,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:513,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:521,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:558,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:566,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:540,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:542,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:590,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_log.c:447,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:461,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:462,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:464,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:463,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:472,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:460,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:478,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:480,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:482,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:527,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:536,1
    - Dst: log_also
      Src: /src/libqb/tests/check_log.c:547,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:568,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:560,1
    - Dst: log_it_please
      Src: /src/libqb/tests/check_log.c:535,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:582,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:574,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:549,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_log.c:440,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:441,1
    - Dst: memset
      Src: /src/libqb/tests/check_log.c:452,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:487,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:489,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:497,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:511,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:519,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:525,1
    - Dst: log_it_please
      Src: /src/libqb/tests/check_log.c:526,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:575,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:586,1
    - Dst: log_and_this_too
      Src: /src/libqb/tests/check_log.c:548,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:589,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:553,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:572,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:529,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:446,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:449,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:459,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:466,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:465,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:494,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:495,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:496,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:509,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:531,1
    - Dst: log_it_please
      Src: /src/libqb/tests/check_log.c:510,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:596,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:580,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:569,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:538,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:551,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:537,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 85
    argCount: 0
    argNames:
    - test_log_basic
    argTypes: []
    constantsTouched: []
    func_position:
      end: 597
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 597
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - log_and_this_too
    - qb_log_custom_open
    - memset
    - log_it_please
    - qb_log
    - qb_log_filter_ctl
    - ck_assert_str_eq
    - qb_log_format_set
    - qb_log_from_external_source
    - log_also
    - ck_assert_int_eq
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_log_basic) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libqb/tests/check_log.c:742,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:746,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:744,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:750,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:748,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:752,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:754,1
    - Dst: qb_log_from_external_source
      Src: /src/libqb/tests/check_log.c:756,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 761
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 761
    functionName: thr_send_logs_1
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_log_from_external_source
    - printf
    linkageType: ''
    returnType: void*
    signature: 'static void *thr_send_logs_1(void *ctx) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_custom_open
      Src: /src/libqb/tests/check_log.c:851,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:852,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_log.c:855,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:858,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:859,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:871,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:867,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:873,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:879,1
    - Dst: qb_log_thread_start
      Src: /src/libqb/tests/check_log.c:860,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:868,1
    - Dst: memset
      Src: /src/libqb/tests/check_log.c:862,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:874,1
    - Dst: qb_log_fini
      Src: /src/libqb/tests/check_log.c:877,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_log.c:848,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:849,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:854,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:856,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:857,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:869,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:875,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:872,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:870,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames:
    - test_threaded_logging
    argTypes: []
    constantsTouched: []
    func_position:
      end: 880
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 880
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_log_custom_open
    - memset
    - qb_log
    - qb_log_filter_ctl
    - qb_log_format_set
    - qb_log_fini
    - ck_assert_int_eq
    - qb_log_thread_start
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_threaded_logging) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_log.c:889,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:890,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:893,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:895,1
    - Dst: qb_log_custom_open
      Src: /src/libqb/tests/check_log.c:892,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_log.c:896,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:897,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:898,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:899,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:900,1
    - Dst: qb_log_fini
      Src: /src/libqb/tests/check_log.c:914,1
    - Dst: qb_log_thread_priority_set
      Src: /src/libqb/tests/check_log.c:909,1
    - Dst: qb_log_thread_start
      Src: /src/libqb/tests/check_log.c:912,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:910,1
    - Dst: ck_assert_int_ne
      Src: /src/libqb/tests/check_log.c:913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 915
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 915
    functionName: (test_threaded_logging_bad_sched_params)
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_log_thread_priority_set
    - qb_log_custom_open
    - qb_log_filter_ctl
    - qb_log_format_set
    - qb_log_fini
    - ck_assert_int_eq
    - ck_assert_int_ne
    - qb_log_thread_start
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_threaded_logging_bad_sched_params) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libqb/tests/check_log.c:60,1
    - Dst: qb_vsnprintf_serialize
      Src: /src/libqb/tests/check_log.c:61,1
    - Dst: va_end
      Src: /src/libqb/tests/check_log.c:63,1
    - Dst: qb_vsnprintf_deserialize
      Src: /src/libqb/tests/check_log.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - out
    - max_len
    - fmt
    - '...'
    argTypes:
    - char*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: format_this_up_to
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_vsnprintf_serialize
    - qb_vsnprintf_deserialize
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: 'static void format_this_up_to(char *out, size_t max_len, const char
      *fmt, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/libqb/tests/check_log.c:218,1
    - Dst: qb_log_target_format
      Src: /src/libqb/tests/check_log.c:219,1
    - Dst: strlen
      Src: /src/libqb/tests/check_log.c:223,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 4
    argNames:
    - t
    - cs
    - timestamp
    - msg
    argTypes:
    - int32_t
    - struct qb_log_callsite*
    - struct timespec*
    - char*
    constantsTouched: []
    func_position:
      end: 224
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 224
    functionName: _test_length_logger
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - qb_log_target_format
    - strcpy
    - strlen
    linkageType: ''
    returnType: void
    signature: "static void _test_length_logger(int32_t t,\t struct qb_log_callsite
      *cs,\t struct timespec *timestamp, const char *msg) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:393,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:395,1
    - Dst: memset
      Src: /src/libqb/tests/check_log.c:401,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:407,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:412,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:397,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:417,1
    - Dst: ck_assert_str_ne
      Src: /src/libqb/tests/check_log.c:418,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:422,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:391,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_log.c:392,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:409,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:415,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:431,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_log.c:385,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_log.c:389,1
    - Dst: qb_log_custom_open
      Src: /src/libqb/tests/check_log.c:388,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:386,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:414,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:429,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:394,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:396,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:405,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:398,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:410,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_log.c:406,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:423,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 48
    argCount: 0
    argNames:
    - test_line_length
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 432
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - ck_assert_str_ne
    - qb_log_custom_open
    - memset
    - qb_log
    - qb_log_filter_ctl
    - ck_assert_str_eq
    - qb_log_format_set
    - ck_assert_int_eq
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_line_length) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:1029,1
    - Dst: sleep
      Src: /src/libqb/tests/check_log.c:1036,1
    - Dst: sd_journal_get_data
      Src: /src/libqb/tests/check_log.c:1044,1
    - Dst: sscanf
      Src: /src/libqb/tests/check_log.c:1046,1
    - Dst: sd_journal_get_data
      Src: /src/libqb/tests/check_log.c:1049,1
    - Dst: sd_journal_get_data
      Src: /src/libqb/tests/check_log.c:1051,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:1052,1
    - Dst: sd_journal_close
      Src: /src/libqb/tests/check_log.c:1060,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_log.c:1027,1
    - Dst: qb_log2
      Src: /src/libqb/tests/check_log.c:1031,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:1033,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:1034,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:1035,1
    - Dst: getpid
      Src: /src/libqb/tests/check_log.c:1047,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:1053,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:1030,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_log.c:1028,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:1040,1
    - Dst: ck_assert_int_lt
      Src: /src/libqb/tests/check_log.c:1061,1
    - Dst: sd_journal_open
      Src: /src/libqb/tests/check_log.c:1039,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:1042,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:1045,1
    - Dst: fprintf
      Src: /src/libqb/tests/check_log.c:1047,1
    - Dst: getppid
      Src: /src/libqb/tests/check_log.c:1047,1
    - Dst: sd_journal_seek_tail
      Src: /src/libqb/tests/check_log.c:1041,1
    - Dst: getpid
      Src: /src/libqb/tests/check_log.c:1048,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:1050,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1062
    functionName: (test_journal)
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - sd_journal_get_data
    - sleep
    - getppid
    - qb_log2
    - sd_journal_close
    - ck_assert_str_eq
    - ck_assert_int_lt
    - sd_journal_seek_tail
    - getpid
    - ck_assert_int_eq
    - qb_log_init
    - fprintf
    - sd_journal_open
    - qb_log_ctl
    - sscanf
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_journal) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sd_journal_get_data
      Src: /src/libqb/tests/check_log.c:1044,1
    - Dst: fprintf
      Src: /src/libqb/tests/check_log.c:1047,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:1045,1
    - Dst: sscanf
      Src: /src/libqb/tests/check_log.c:1046,1
    - Dst: getpid
      Src: /src/libqb/tests/check_log.c:1047,1
    - Dst: getppid
      Src: /src/libqb/tests/check_log.c:1047,1
    - Dst: getpid
      Src: /src/libqb/tests/check_log.c:1048,1
    - Dst: sd_journal_get_data
      Src: /src/libqb/tests/check_log.c:1049,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:1050,1
    - Dst: sd_journal_get_data
      Src: /src/libqb/tests/check_log.c:1051,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_log.c:1053,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_log.c:1052,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1059
    functionName: (jnl)
    functionSourceFile: /src/libqb/tests/check_log.c
    functionUses: []
    functionsReached:
    - sd_journal_get_data
    - getppid
    - ck_assert_str_eq
    - getpid
    - ck_assert_int_eq
    - fprintf
    - sscanf
    linkageType: ''
    returnType: SD_JOURNAL_FOREACH_BACKWARDS
    signature: 'SD_JOURNAL_FOREACH_BACKWARDS (jnl) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_hashtable_create
      Src: /src/libqb/tests/check_map.c:817,1
    - Dst: test_map_remove
      Src: /src/libqb/tests/check_map.c:818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames:
    - test_hashtable_remove
    argTypes: []
    constantsTouched: []
    func_position:
      end: 819
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 819
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - test_map_remove
    - qb_hashtable_create
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_hashtable_remove) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_hashtable_create
      Src: /src/libqb/tests/check_map.c:841,1
    - Dst: test_map_notifications_basic
      Src: /src/libqb/tests/check_map.c:842,1
    - Dst: qb_hashtable_create
      Src: /src/libqb/tests/check_map.c:843,1
    - Dst: test_map_notifications_free
      Src: /src/libqb/tests/check_map.c:844,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames:
    - test_hash_notifications
    argTypes: []
    constantsTouched: []
    func_position:
      end: 845
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 845
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - test_map_notifications_free
    - qb_hashtable_create
    - test_map_notifications_basic
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_hash_notifications) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_hashtable_create
      Src: /src/libqb/tests/check_map.c:874,1
    - Dst: qb_hashtable_create
      Src: /src/libqb/tests/check_map.c:876,1
    - Dst: test_map_iter_safety
      Src: /src/libqb/tests/check_map.c:877,1
    - Dst: test_map_traverse_unordered
      Src: /src/libqb/tests/check_map.c:875,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames:
    - test_hashtable_traverse
    argTypes: []
    constantsTouched: []
    func_position:
      end: 878
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 878
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - test_map_traverse_unordered
    - test_map_iter_safety
    - qb_hashtable_create
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_hashtable_traverse) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:965,1
    - Dst: strdup
      Src: /src/libqb/tests/check_map.c:966,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:966,1
    - Dst: strdup
      Src: /src/libqb/tests/check_map.c:966,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:967,1
    - Dst: strdup
      Src: /src/libqb/tests/check_map.c:967,1
    - Dst: strdup
      Src: /src/libqb/tests/check_map.c:967,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:982,1
    - Dst: qb_map_get
      Src: /src/libqb/tests/check_map.c:975,1
    - Dst: qb_trie_create
      Src: /src/libqb/tests/check_map.c:965,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:970,1
    - Dst: qb_map_iter_free
      Src: /src/libqb/tests/check_map.c:973,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:976,1
    - Dst: qb_map_get
      Src: /src/libqb/tests/check_map.c:981,1
    - Dst: qb_map_rm
      Src: /src/libqb/tests/check_map.c:978,1
    - Dst: fprintf
      Src: /src/libqb/tests/check_map.c:972,1
    - Dst: qb_map_pref_iter_create
      Src: /src/libqb/tests/check_map.c:969,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:979,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/tests/check_map.c:971,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames:
    - test_trie_partial_iterate
    argTypes: []
    constantsTouched: []
    func_position:
      end: 984
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 984
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - qb_map_put
    - qb_map_get
    - ck_assert
    - qb_map_iter_next
    - ck_assert_str_eq
    - qb_map_iter_free
    - qb_map_pref_iter_create
    - strdup
    - qb_map_rm
    - fprintf
    - qb_trie_create
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST /* * From Honza: https://github.com/asalkeld/libqb/issues/44
      */ START_TEST(test_trie_partial_iterate) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_hashtable_create
      Src: /src/libqb/tests/check_map.c:940,1
    - Dst: test_accents_load
      Src: /src/libqb/tests/check_map.c:941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames:
    - test_hashtable_accents
    argTypes: []
    constantsTouched: []
    func_position:
      end: 942
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 942
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - test_accents_load
    - qb_hashtable_create
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_hashtable_accents) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:119,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:121,1
    - Dst: qb_map_count_get
      Src: /src/libqb/tests/check_map.c:121,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/tests/check_map.c:127,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/tests/check_map.c:127,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:141,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:122,1
    - Dst: qb_map_iter_free
      Src: /src/libqb/tests/check_map.c:131,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:134,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:136,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:135,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:137,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:143,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:144,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:145,1
    - Dst: qb_map_count_get
      Src: /src/libqb/tests/check_map.c:145,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:118,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:120,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:123,1
    - Dst: qb_map_count_get
      Src: /src/libqb/tests/check_map.c:123,1
    - Dst: qb_map_get
      Src: /src/libqb/tests/check_map.c:135,1
    - Dst: qb_map_get
      Src: /src/libqb/tests/check_map.c:134,1
    - Dst: qb_map_get
      Src: /src/libqb/tests/check_map.c:136,1
    - Dst: qb_map_get
      Src: /src/libqb/tests/check_map.c:137,1
    - Dst: qb_map_get
      Src: /src/libqb/tests/check_map.c:144,1
    - Dst: qb_map_destroy
      Src: /src/libqb/tests/check_map.c:147,1
    - Dst: qb_map_iter_create
      Src: /src/libqb/tests/check_map.c:125,1
    - Dst: printf
      Src: /src/libqb/tests/check_map.c:128,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:132,1
    - Dst: qb_map_rm
      Src: /src/libqb/tests/check_map.c:139,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:140,1
    - Dst: qb_map_count_get
      Src: /src/libqb/tests/check_map.c:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 2
    argNames:
    - m
    - name
    argTypes:
    - qb_map_t*
    - char*
    constantsTouched: []
    func_position:
      end: 148
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 148
    functionName: test_map_simple
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - qb_map_put
    - qb_map_count_get
    - qb_map_get
    - qb_map_destroy
    - qb_map_iter_next
    - ck_assert_str_eq
    - qb_map_iter_free
    - ck_assert_int_eq
    - qb_map_rm
    - printf
    - qb_map_iter_create
    linkageType: ''
    returnType: void
    signature: 'static void test_map_simple(qb_map_t *m, const char *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/libqb/tests/check_map.c:519,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:522,1
    - Dst: qb_map_rm
      Src: /src/libqb/tests/check_map.c:521,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - key
    - value
    - data
    argTypes:
    - char*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 524
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 524
    functionName: traverse_and_remove_func
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - qb_map_rm
    - qb_map_put
    - random
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t traverse_and_remove_func(const char *key, void *value,
      void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 3
    argNames:
    - key
    - value
    - data
    argTypes:
    - char*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 645
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 645
    functionName: my_counter_traverse
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t my_counter_traverse(const char *key, void *value, void
      *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_trie_create
      Src: /src/libqb/tests/check_map.c:789,1
    - Dst: test_map_simple
      Src: /src/libqb/tests/check_map.c:790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames:
    - test_trie_simple
    argTypes: []
    constantsTouched: []
    func_position:
      end: 791
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 791
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - test_map_simple
    - qb_trie_create
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_trie_simple) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_trie_create
      Src: /src/libqb/tests/check_map.c:803,1
    - Dst: test_map_search
      Src: /src/libqb/tests/check_map.c:804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames:
    - test_trie_search
    argTypes: []
    constantsTouched: []
    func_position:
      end: 805
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 805
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - qb_trie_create
    - test_map_search
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_trie_search) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_skiplist_create
      Src: /src/libqb/tests/check_map.c:851,1
    - Dst: test_map_notifications_free
      Src: /src/libqb/tests/check_map.c:854,1
    - Dst: test_map_notifications_basic
      Src: /src/libqb/tests/check_map.c:852,1
    - Dst: qb_skiplist_create
      Src: /src/libqb/tests/check_map.c:853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames:
    - test_skiplist_notifications
    argTypes: []
    constantsTouched: []
    func_position:
      end: 855
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 855
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - test_map_notifications_free
    - test_map_notifications_basic
    - qb_skiplist_create
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_skiplist_notifications) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_skiplist_create
      Src: /src/libqb/tests/check_map.c:861,1
    - Dst: qb_skiplist_create
      Src: /src/libqb/tests/check_map.c:864,1
    - Dst: qb_skiplist_create
      Src: /src/libqb/tests/check_map.c:866,1
    - Dst: test_map_traverse_unordered
      Src: /src/libqb/tests/check_map.c:865,1
    - Dst: test_map_traverse_ordered
      Src: /src/libqb/tests/check_map.c:862,1
    - Dst: test_map_iter_safety
      Src: /src/libqb/tests/check_map.c:867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames:
    - test_skiplist_traverse
    argTypes: []
    constantsTouched: []
    func_position:
      end: 868
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 868
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - test_map_traverse_unordered
    - test_map_iter_safety
    - test_map_traverse_ordered
    - qb_skiplist_create
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_skiplist_traverse) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/libqb/tests/check_map.c:896,1
    - Dst: printf
      Src: /src/libqb/tests/check_map.c:897,1
    - Dst: test_map_load
      Src: /src/libqb/tests/check_map.c:901,1
    - Dst: qb_skiplist_create
      Src: /src/libqb/tests/check_map.c:900,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames:
    - test_skiplist_load
    argTypes: []
    constantsTouched: []
    func_position:
      end: 902
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 902
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - test_map_load
    - printf
    - access
    - qb_skiplist_create
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_skiplist_load) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 3
    argNames:
    - key
    - value
    - data
    argTypes:
    - char*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: my_traverse
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - ck_assert
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t my_traverse(const char *key, void *value, void *data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_map_iter_create
      Src: /src/libqb/tests/check_map.c:541,1
    - Dst: qb_map_iter_create
      Src: /src/libqb/tests/check_map.c:542,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/tests/check_map.c:543,1
    - Dst: qb_map_rm
      Src: /src/libqb/tests/check_map.c:547,1
    - Dst: qb_map_iter_free
      Src: /src/libqb/tests/check_map.c:562,1
    - Dst: strcmp
      Src: /src/libqb/tests/check_map.c:558,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:553,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:537,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:539,1
    - Dst: printf
      Src: /src/libqb/tests/check_map.c:544,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/tests/check_map.c:550,1
    - Dst: strcmp
      Src: /src/libqb/tests/check_map.c:545,1
    - Dst: qb_map_rm
      Src: /src/libqb/tests/check_map.c:548,1
    - Dst: printf
      Src: /src/libqb/tests/check_map.c:551,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:549,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:565,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:538,1
    - Dst: qb_map_rm
      Src: /src/libqb/tests/check_map.c:546,1
    - Dst: strcmp
      Src: /src/libqb/tests/check_map.c:552,1
    - Dst: qb_map_iter_free
      Src: /src/libqb/tests/check_map.c:556,1
    - Dst: qb_map_destroy
      Src: /src/libqb/tests/check_map.c:568,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - m
    - ordered
    argTypes:
    - qb_map_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 569
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 569
    functionName: test_map_iter_safety
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - qb_map_put
    - strcmp
    - qb_map_destroy
    - qb_map_iter_next
    - qb_map_iter_free
    - ck_assert_int_eq
    - qb_map_rm
    - printf
    - qb_map_iter_create
    linkageType: ''
    returnType: void
    signature: 'static void test_map_iter_safety(qb_map_t *m, int32_t ordered) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/libqb/tests/check_map.c:672,1
    - Dst: qb_util_stopwatch_create
      Src: /src/libqb/tests/check_map.c:662,1
    - Dst: strdup
      Src: /src/libqb/tests/check_map.c:673,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:678,1
    - Dst: qb_map_count_get
      Src: /src/libqb/tests/check_map.c:678,1
    - Dst: fgets
      Src: /src/libqb/tests/check_map.c:690,1
    - Dst: qb_util_stopwatch_stop
      Src: /src/libqb/tests/check_map.c:708,1
    - Dst: fgets
      Src: /src/libqb/tests/check_map.c:720,1
    - Dst: qb_util_stopwatch_stop
      Src: /src/libqb/tests/check_map.c:725,1
    - Dst: fclose
      Src: /src/libqb/tests/check_map.c:727,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:661,1
    - Dst: fopen
      Src: /src/libqb/tests/check_map.c:669,1
    - Dst: qb_util_stopwatch_stop
      Src: /src/libqb/tests/check_map.c:677,1
    - Dst: fopen
      Src: /src/libqb/tests/check_map.c:687,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:692,1
    - Dst: fclose
      Src: /src/libqb/tests/check_map.c:679,1
    - Dst: fclose
      Src: /src/libqb/tests/check_map.c:696,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_map.c:700,1
    - Dst: qb_util_stopwatch_sec_elapsed_get
      Src: /src/libqb/tests/check_map.c:710,1
    - Dst: fopen
      Src: /src/libqb/tests/check_map.c:717,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:674,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_map.c:682,1
    - Dst: qb_map_get
      Src: /src/libqb/tests/check_map.c:691,1
    - Dst: qb_util_stopwatch_stop
      Src: /src/libqb/tests/check_map.c:695,1
    - Dst: qb_util_stopwatch_sec_elapsed_get
      Src: /src/libqb/tests/check_map.c:698,1
    - Dst: qb_map_foreach
      Src: /src/libqb/tests/check_map.c:707,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_map.c:712,1
    - Dst: qb_map_rm
      Src: /src/libqb/tests/check_map.c:721,1
    - Dst: qb_util_stopwatch_sec_elapsed_get
      Src: /src/libqb/tests/check_map.c:729,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:722,1
    - Dst: qb_util_stopwatch_start
      Src: /src/libqb/tests/check_map.c:670,1
    - Dst: qb_util_stopwatch_sec_elapsed_get
      Src: /src/libqb/tests/check_map.c:680,1
    - Dst: qb_util_stopwatch_start
      Src: /src/libqb/tests/check_map.c:688,1
    - Dst: qb_util_stopwatch_start
      Src: /src/libqb/tests/check_map.c:706,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:709,1
    - Dst: qb_map_count_get
      Src: /src/libqb/tests/check_map.c:709,1
    - Dst: qb_util_stopwatch_start
      Src: /src/libqb/tests/check_map.c:718,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:726,1
    - Dst: qb_map_count_get
      Src: /src/libqb/tests/check_map.c:726,1
    - Dst: qb_log
      Src: /src/libqb/tests/check_map.c:731,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 74
    argCount: 2
    argNames:
    - m
    - test_name
    argTypes:
    - qb_map_t*
    - char*
    constantsTouched: []
    func_position:
      end: 732
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 732
    functionName: test_map_load
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - qb_map_foreach
    - qb_util_stopwatch_start
    - fclose
    - qb_map_put
    - fgets
    - fopen
    - qb_util_stopwatch_stop
    - qb_util_stopwatch_sec_elapsed_get
    - qb_map_count_get
    - qb_log
    - qb_map_get
    - ck_assert_str_eq
    - qb_util_stopwatch_create
    - ck_assert_int_eq
    - strdup
    - qb_map_rm
    - ck_assert
    linkageType: ''
    returnType: void
    signature: 'static void test_map_load(qb_map_t *m, const char* test_name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/libqb/tests/check_map.c:920,1
    - Dst: qb_trie_create
      Src: /src/libqb/tests/check_map.c:924,1
    - Dst: test_map_load
      Src: /src/libqb/tests/check_map.c:925,1
    - Dst: printf
      Src: /src/libqb/tests/check_map.c:921,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames:
    - test_trie_load
    argTypes: []
    constantsTouched: []
    func_position:
      end: 926
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 926
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - test_map_load
    - printf
    - qb_trie_create
    - access
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_trie_load) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 5
    argNames:
    - event
    - key
    - old_value
    - value
    - user_data
    argTypes:
    - uint32_t
    - char*
    - void*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: my_map_notification_2
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static void my_map_notification_2(uint32_t event,\t\t char* key, void*
      old_value,\t\t void* value, void* user_data) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_map_notify_add
      Src: /src/libqb/tests/check_map.c:454,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:465,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:464,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:460,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:463,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:466,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:472,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:473,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:474,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:475,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:479,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:480,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:481,1
    - Dst: qb_map_rm
      Src: /src/libqb/tests/check_map.c:484,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:485,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:486,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 1
    argNames:
    - m
    argTypes:
    - qb_map_t*
    constantsTouched: []
    func_position:
      end: 488
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 488
    functionName: test_map_notifications_prefix
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - qb_map_put
    - qb_map_notify_add
    - ck_assert_str_eq
    - ck_assert_int_eq
    - qb_map_rm
    - ck_assert
    linkageType: ''
    returnType: void
    signature: 'static void test_map_notifications_prefix(qb_map_t *m) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:742,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:750,1
    - Dst: strdup
      Src: /src/libqb/tests/check_map.c:747,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:747,1
    - Dst: strdup
      Src: /src/libqb/tests/check_map.c:747,1
    - Dst: qb_map_count_get
      Src: /src/libqb/tests/check_map.c:750,1
    - Dst: qb_map_get
      Src: /src/libqb/tests/check_map.c:757,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:758,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:761,1
    - Dst: qb_map_count_get
      Src: /src/libqb/tests/check_map.c:761,1
    - Dst: qb_map_rm
      Src: /src/libqb/tests/check_map.c:767,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:770,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:768,1
    - Dst: qb_map_count_get
      Src: /src/libqb/tests/check_map.c:770,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - m
    - test_name
    argTypes:
    - qb_map_t*
    - char*
    constantsTouched: []
    func_position:
      end: 771
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 771
    functionName: test_accents_load
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - qb_map_put
    - qb_map_count_get
    - qb_map_get
    - ck_assert_str_eq
    - ck_assert_int_eq
    - strdup
    - qb_map_rm
    - ck_assert
    linkageType: ''
    returnType: void
    signature: 'static void test_accents_load(qb_map_t *m, const char* test_name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_hashtable_create
      Src: /src/libqb/tests/check_map.c:782,1
    - Dst: test_map_simple
      Src: /src/libqb/tests/check_map.c:783,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames:
    - test_hashtable_simple
    argTypes: []
    constantsTouched: []
    func_position:
      end: 784
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 784
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - test_map_simple
    - qb_hashtable_create
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_hashtable_simple) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_trie_create
      Src: /src/libqb/tests/check_map.c:884,1
    - Dst: test_map_traverse_unordered
      Src: /src/libqb/tests/check_map.c:885,1
    - Dst: qb_trie_create
      Src: /src/libqb/tests/check_map.c:888,1
    - Dst: qb_trie_create
      Src: /src/libqb/tests/check_map.c:886,1
    - Dst: test_map_iter_safety
      Src: /src/libqb/tests/check_map.c:887,1
    - Dst: test_map_iter_prefix
      Src: /src/libqb/tests/check_map.c:889,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames:
    - test_trie_traverse
    argTypes: []
    constantsTouched: []
    func_position:
      end: 890
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 890
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - test_map_traverse_unordered
    - test_map_iter_safety
    - test_map_iter_prefix
    - qb_trie_create
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_trie_traverse) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/libqb/tests/check_map.c:908,1
    - Dst: test_map_load
      Src: /src/libqb/tests/check_map.c:913,1
    - Dst: qb_hashtable_create
      Src: /src/libqb/tests/check_map.c:912,1
    - Dst: printf
      Src: /src/libqb/tests/check_map.c:909,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames:
    - test_hashtable_load
    argTypes: []
    constantsTouched: []
    func_position:
      end: 914
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 914
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - test_map_load
    - qb_hashtable_create
    - printf
    - access
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_hashtable_load) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:290,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:286,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:292,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:310,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:312,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:318,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:302,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:326,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:293,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:300,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:319,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:309,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:303,1
    - Dst: qb_map_rm
      Src: /src/libqb/tests/check_map.c:317,1
    - Dst: qb_map_notify_add
      Src: /src/libqb/tests/check_map.c:278,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:283,1
    - Dst: qb_map_rm
      Src: /src/libqb/tests/check_map.c:299,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:301,1
    - Dst: qb_map_rm
      Src: /src/libqb/tests/check_map.c:325,1
    - Dst: qb_map_destroy
      Src: /src/libqb/tests/check_map.c:329,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:291,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:311,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:320,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 59
    argCount: 1
    argNames:
    - m
    argTypes:
    - qb_map_t*
    constantsTouched: []
    func_position:
      end: 330
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 330
    functionName: test_map_remove
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - qb_map_put
    - qb_map_notify_add
    - qb_map_destroy
    - ck_assert_int_eq
    - qb_map_rm
    - ck_assert
    linkageType: ''
    returnType: void
    signature: 'static void test_map_remove(qb_map_t *m) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_map_iter_create
      Src: /src/libqb/tests/check_map.c:497,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/tests/check_map.c:505,1
    - Dst: calloc
      Src: /src/libqb/tests/check_map.c:502,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:500,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/tests/check_map.c:505,1
    - Dst: qb_map_iter_free
      Src: /src/libqb/tests/check_map.c:509,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:510,1
    - Dst: qb_map_destroy
      Src: /src/libqb/tests/check_map.c:513,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - m
    argTypes:
    - qb_map_t*
    constantsTouched: []
    func_position:
      end: 514
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 514
    functionName: test_map_traverse_ordered
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - qb_map_put
    - calloc
    - qb_map_destroy
    - qb_map_iter_next
    - ck_assert_str_eq
    - qb_map_iter_free
    - qb_map_iter_create
    linkageType: ''
    returnType: void
    signature: 'static void test_map_traverse_ordered(qb_map_t *m) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_skiplist_create
      Src: /src/libqb/tests/check_map.c:775,1
    - Dst: test_map_simple
      Src: /src/libqb/tests/check_map.c:776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 777
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 777
    functionName: (test_skiplist_simple)
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - test_map_simple
    - qb_skiplist_create
    linkageType: ''
    returnType: START_TEST
    signature: 'START_TEST (test_skiplist_simple) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_skiplist_create
      Src: /src/libqb/tests/check_map.c:932,1
    - Dst: test_accents_load
      Src: /src/libqb/tests/check_map.c:933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames:
    - test_skiplist_accents
    argTypes: []
    constantsTouched: []
    func_position:
      end: 934
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 934
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - test_accents_load
    - qb_skiplist_create
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_skiplist_accents) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_suite
      Src: /src/libqb/tests/check_map.c:1029,1
    - Dst: atexit
      Src: /src/libqb/tests/check_map.c:1033,1
    - Dst: qb_log_init
      Src: /src/libqb/tests/check_map.c:1032,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_map.c:1034,1
    - Dst: srunner_create
      Src: /src/libqb/tests/check_map.c:1030,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tests/check_map.c:1035,1
    - Dst: qb_log_format_set
      Src: /src/libqb/tests/check_map.c:1037,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tests/check_map.c:1038,1
    - Dst: srunner_run_all
      Src: /src/libqb/tests/check_map.c:1040,1
    - Dst: srunner_ntests_failed
      Src: /src/libqb/tests/check_map.c:1041,1
    - Dst: srunner_free
      Src: /src/libqb/tests/check_map.c:1042,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1044
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1044
    functionName: main
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - atexit
    - srunner_free
    - qb_log_filter_ctl
    - qb_log_format_set
    - map_suite
    - srunner_ntests_failed
    - srunner_run_all
    - srunner_create
    - qb_log_init
    - qb_log_ctl
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t main(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:95,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:96,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:97,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:98,1
    - Dst: qb_map_count_get
      Src: /src/libqb/tests/check_map.c:98,1
    - Dst: qb_map_notify_add
      Src: /src/libqb/tests/check_map.c:101,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:104,1
    - Dst: qb_map_rm
      Src: /src/libqb/tests/check_map.c:105,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:106,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:107,1
    - Dst: qb_map_count_get
      Src: /src/libqb/tests/check_map.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - m
    argTypes:
    - qb_map_t*
    constantsTouched: []
    func_position:
      end: 108
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 108
    functionName: test_map_notifications_iter
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - qb_map_put
    - qb_map_notify_add
    - qb_map_count_get
    - ck_assert_int_eq
    - qb_map_rm
    linkageType: ''
    returnType: void
    signature: 'static void test_map_notifications_iter(qb_map_t *m) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_map_iter_create
      Src: /src/libqb/tests/check_map.c:74,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/tests/check_map.c:78,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/tests/check_map.c:78,1
    - Dst: printf
      Src: /src/libqb/tests/check_map.c:79,1
    - Dst: qb_map_iter_free
      Src: /src/libqb/tests/check_map.c:81,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 5
    argNames:
    - event
    - key
    - old_value
    - value
    - user_data
    argTypes:
    - uint32_t
    - char*
    - void*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 82
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 82
    functionName: my_map_notification_iter
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - qb_map_iter_free
    - qb_map_iter_next
    - printf
    - qb_map_iter_create
    linkageType: ''
    returnType: void
    signature: "static void my_map_notification_iter(uint32_t event,\t\t\t char* key,
      void* old_value,\t\t\t void* value, void* user_data) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:161,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 3
    argNames:
    - key
    - value
    - data
    argTypes:
    - char*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 165
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 165
    functionName: check_order
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - ck_assert_str_eq
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t check_order(const char *key, void *value, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:187,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:198,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:208,1
    - Dst: qb_map_count_get
      Src: /src/libqb/tests/check_map.c:208,1
    - Dst: qb_map_foreach
      Src: /src/libqb/tests/check_map.c:217,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:241,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:191,1
    - Dst: qb_map_count_get
      Src: /src/libqb/tests/check_map.c:191,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:204,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:237,1
    - Dst: qb_map_get
      Src: /src/libqb/tests/check_map.c:240,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:245,1
    - Dst: qb_map_rm
      Src: /src/libqb/tests/check_map.c:197,1
    - Dst: qb_map_foreach
      Src: /src/libqb/tests/check_map.c:206,1
    - Dst: qb_map_get
      Src: /src/libqb/tests/check_map.c:220,1
    - Dst: qb_map_get
      Src: /src/libqb/tests/check_map.c:224,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:225,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:221,1
    - Dst: qb_map_get
      Src: /src/libqb/tests/check_map.c:228,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:229,1
    - Dst: qb_map_get
      Src: /src/libqb/tests/check_map.c:232,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:233,1
    - Dst: qb_map_get
      Src: /src/libqb/tests/check_map.c:244,1
    - Dst: qb_map_foreach
      Src: /src/libqb/tests/check_map.c:189,1
    - Dst: qb_map_foreach
      Src: /src/libqb/tests/check_map.c:194,1
    - Dst: qb_map_rm
      Src: /src/libqb/tests/check_map.c:203,1
    - Dst: qb_map_foreach
      Src: /src/libqb/tests/check_map.c:211,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:214,1
    - Dst: qb_map_destroy
      Src: /src/libqb/tests/check_map.c:247,1
    - Dst: qb_map_get
      Src: /src/libqb/tests/check_map.c:236,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 78
    argCount: 1
    argNames:
    - m
    argTypes:
    - qb_map_t*
    constantsTouched: []
    func_position:
      end: 248
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 248
    functionName: test_map_search
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - qb_map_foreach
    - qb_map_put
    - qb_map_count_get
    - qb_map_get
    - qb_map_destroy
    - ck_assert_int_eq
    - qb_map_rm
    - ck_assert
    linkageType: ''
    returnType: void
    signature: 'static void test_map_search(qb_map_t* m) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_map_notify_add
      Src: /src/libqb/tests/check_map.c:415,1
    - Dst: qb_map_notify_add
      Src: /src/libqb/tests/check_map.c:421,1
    - Dst: qb_map_notify_add
      Src: /src/libqb/tests/check_map.c:418,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:420,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:417,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:423,1
    - Dst: qb_map_notify_del_2
      Src: /src/libqb/tests/check_map.c:424,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:426,1
    - Dst: qb_map_notify_add
      Src: /src/libqb/tests/check_map.c:427,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:432,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:434,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:444,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:438,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:439,1
    - Dst: qb_map_rm
      Src: /src/libqb/tests/check_map.c:442,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:437,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 1
    argNames:
    - m
    argTypes:
    - qb_map_t*
    constantsTouched: []
    func_position:
      end: 445
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 445
    functionName: test_map_notifications_free
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - qb_map_put
    - qb_map_notify_add
    - ck_assert_int_eq
    - qb_map_notify_del_2
    - qb_map_rm
    linkageType: ''
    returnType: void
    signature: 'static void test_map_notifications_free(qb_map_t *m) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_map_iter_next
      Src: /src/libqb/tests/check_map.c:598,1
    - Dst: qb_map_pref_iter_create
      Src: /src/libqb/tests/check_map.c:597,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/tests/check_map.c:607,1
    - Dst: qb_map_pref_iter_create
      Src: /src/libqb/tests/check_map.c:606,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:582,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:580,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:584,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:594,1
    - Dst: printf
      Src: /src/libqb/tests/check_map.c:599,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:603,1
    - Dst: printf
      Src: /src/libqb/tests/check_map.c:608,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:612,1
    - Dst: qb_map_iter_free
      Src: /src/libqb/tests/check_map.c:620,1
    - Dst: qb_map_destroy
      Src: /src/libqb/tests/check_map.c:623,1
    - Dst: qb_map_pref_iter_create
      Src: /src/libqb/tests/check_map.c:588,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/tests/check_map.c:589,1
    - Dst: qb_map_pref_iter_create
      Src: /src/libqb/tests/check_map.c:615,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/tests/check_map.c:616,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:579,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:581,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:583,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:585,1
    - Dst: printf
      Src: /src/libqb/tests/check_map.c:590,1
    - Dst: qb_map_iter_free
      Src: /src/libqb/tests/check_map.c:593,1
    - Dst: qb_map_iter_free
      Src: /src/libqb/tests/check_map.c:602,1
    - Dst: qb_map_iter_free
      Src: /src/libqb/tests/check_map.c:611,1
    - Dst: printf
      Src: /src/libqb/tests/check_map.c:617,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:621,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 1
    argNames:
    - m
    argTypes:
    - qb_map_t*
    constantsTouched: []
    func_position:
      end: 624
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 624
    functionName: test_map_iter_prefix
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - qb_map_put
    - qb_map_destroy
    - qb_map_iter_next
    - qb_map_iter_free
    - qb_map_pref_iter_create
    - ck_assert_int_eq
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void test_map_iter_prefix(qb_map_t *m) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_skiplist_create
      Src: /src/libqb/tests/check_map.c:796,1
    - Dst: test_map_search
      Src: /src/libqb/tests/check_map.c:797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames:
    - test_skiplist_search
    argTypes: []
    constantsTouched: []
    func_position:
      end: 798
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 798
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - test_map_search
    - qb_skiplist_create
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_skiplist_search) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_skiplist_create
      Src: /src/libqb/tests/check_map.c:810,1
    - Dst: test_map_remove
      Src: /src/libqb/tests/check_map.c:811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames:
    - test_skiplist_remove
    argTypes: []
    constantsTouched: []
    func_position:
      end: 812
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 812
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - test_map_remove
    - qb_skiplist_create
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_skiplist_remove) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_trie_create
      Src: /src/libqb/tests/check_map.c:825,1
    - Dst: qb_trie_create
      Src: /src/libqb/tests/check_map.c:829,1
    - Dst: test_map_remove
      Src: /src/libqb/tests/check_map.c:826,1
    - Dst: test_map_notifications_basic
      Src: /src/libqb/tests/check_map.c:828,1
    - Dst: qb_trie_create
      Src: /src/libqb/tests/check_map.c:827,1
    - Dst: test_map_notifications_prefix
      Src: /src/libqb/tests/check_map.c:830,1
    - Dst: qb_trie_create
      Src: /src/libqb/tests/check_map.c:831,1
    - Dst: test_map_notifications_free
      Src: /src/libqb/tests/check_map.c:832,1
    - Dst: qb_trie_create
      Src: /src/libqb/tests/check_map.c:833,1
    - Dst: test_map_notifications_iter
      Src: /src/libqb/tests/check_map.c:834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames:
    - test_trie_notifications
    argTypes: []
    constantsTouched: []
    func_position:
      end: 835
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 835
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - test_map_notifications_free
    - test_map_notifications_iter
    - test_map_remove
    - test_map_notifications_prefix
    - qb_trie_create
    - test_map_notifications_basic
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_trie_notifications) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:171,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 3
    argNames:
    - key
    - value
    - data
    argTypes:
    - char*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: check_order2
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - ck_assert_str_eq
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t check_order2(const char *key, void *value, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 5
    argNames:
    - event
    - key
    - old_value
    - value
    - user_data
    argTypes:
    - uint32_t
    - char*
    - void*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 261
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 261
    functionName: my_map_notification
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static void my_map_notification(uint32_t event,\t\t char* key, void*
      old_value,\t\t void* value, void* user_data) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srand
      Src: /src/libqb/tests/check_map.c:631,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:633,1
    - Dst: qb_map_foreach
      Src: /src/libqb/tests/check_map.c:635,1
    - Dst: qb_map_destroy
      Src: /src/libqb/tests/check_map.c:636,1
    - Dst: time
      Src: /src/libqb/tests/check_map.c:631,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - m
    argTypes:
    - qb_map_t*
    constantsTouched: []
    func_position:
      end: 637
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 637
    functionName: test_map_traverse_unordered
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - qb_map_foreach
    - qb_map_put
    - qb_map_destroy
    - time
    - srand
    linkageType: ''
    returnType: void
    signature: 'static void test_map_traverse_unordered(qb_map_t *m) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_trie_create
      Src: /src/libqb/tests/check_map.c:948,1
    - Dst: test_accents_load
      Src: /src/libqb/tests/check_map.c:949,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames:
    - test_trie_accents
    argTypes: []
    constantsTouched: []
    func_position:
      end: 950
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 950
    functionName: START_TEST
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - test_accents_load
    - qb_trie_create
    linkageType: ''
    returnType: END_TEST
    signature: 'END_TEST START_TEST(test_trie_accents) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:1001,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:1002,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:1009,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:1003,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:1017,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:1015,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:1018,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:1019,1
    - Dst: suite_create
      Src: /src/libqb/tests/check_map.c:992,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:1014,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:997,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:995,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:996,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:998,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:999,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:1000,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:1013,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:994,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:1011,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:1010,1
    - Dst: add_tcase
      Src: /src/libqb/tests/check_map.c:1012,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1022
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 1022
    functionName: map_suite
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - suite_create
    - add_tcase
    linkageType: ''
    returnType: END_TEST*
    signature: 'END_TEST static Suite *map_suite(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:344,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:354,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:361,1
    - Dst: qb_map_rm
      Src: /src/libqb/tests/check_map.c:364,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:379,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:375,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:381,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:390,1
    - Dst: qb_map_notify_add
      Src: /src/libqb/tests/check_map.c:394,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:396,1
    - Dst: qb_map_notify_add
      Src: /src/libqb/tests/check_map.c:338,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:353,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:358,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:360,1
    - Dst: qb_map_notify_del
      Src: /src/libqb/tests/check_map.c:370,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:365,1
    - Dst: qb_map_notify_del
      Src: /src/libqb/tests/check_map.c:385,1
    - Dst: qb_map_notify_add
      Src: /src/libqb/tests/check_map.c:397,1
    - Dst: ck_assert_int_eq
      Src: /src/libqb/tests/check_map.c:399,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:351,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:357,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:380,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:367,1
    - Dst: ck_assert
      Src: /src/libqb/tests/check_map.c:382,1
    - Dst: qb_map_put
      Src: /src/libqb/tests/check_map.c:393,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:352,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:359,1
    - Dst: ck_assert_str_eq
      Src: /src/libqb/tests/check_map.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 57
    argCount: 1
    argNames:
    - m
    argTypes:
    - qb_map_t*
    constantsTouched: []
    func_position:
      end: 400
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 400
    functionName: test_map_notifications_basic
    functionSourceFile: /src/libqb/tests/check_map.c
    functionUses: []
    functionsReached:
    - qb_map_put
    - qb_map_notify_add
    - ck_assert_str_eq
    - ck_assert_int_eq
    - qb_map_notify_del
    - qb_map_rm
    - ck_assert
    linkageType: ''
    returnType: void
    signature: 'static void test_map_notifications_basic(qb_map_t *m) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/libqb/tests/_libstat_wrapper.c:18,1
    - Dst: real_xstat
      Src: /src/libqb/tests/_libstat_wrapper.c:27,1
    - Dst: strcmp
      Src: /src/libqb/tests/_libstat_wrapper.c:22,1
    - Dst: fprintf
      Src: /src/libqb/tests/_libstat_wrapper.c:23,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 3
    argNames:
    - __ver
    - __filename
    - __stat_buf
    argTypes:
    - int
    - char*
    - struct stat*
    constantsTouched: []
    func_position:
      end: 31
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 31
    functionName: __xstat
    functionSourceFile: /src/libqb/tests/_libstat_wrapper.c
    functionUses: []
    functionsReached:
    - real_xstat
    - strcmp
    - fprintf
    - dlsym
    linkageType: ''
    returnType: int
    signature: 'int __xstat(int __ver, const char *__filename, struct stat *__stat_buf) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/libqb/tests/_libstat_wrapper.c:41,1
    - Dst: fprintf
      Src: /src/libqb/tests/_libstat_wrapper.c:46,1
    - Dst: real_stat
      Src: /src/libqb/tests/_libstat_wrapper.c:50,1
    - Dst: strcmp
      Src: /src/libqb/tests/_libstat_wrapper.c:45,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 2
    argNames:
    - __filename
    - __stat_buf
    argTypes:
    - char*
    - struct stat*
    constantsTouched: []
    func_position:
      end: 54
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 54
    functionName: stat
    functionSourceFile: /src/libqb/tests/_libstat_wrapper.c
    functionUses: []
    functionsReached:
    - real_stat
    - strcmp
    - fprintf
    - dlsym
    linkageType: ''
    returnType: int
    signature: 'int stat(const char *__filename, struct stat *__stat_buf) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cstring_alloc
      Src: /src/libqb/doxygen2man/doxygen2man.c:122,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:127,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:135,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:131,1
    - Dst: strdup
      Src: /src/libqb/doxygen2man/doxygen2man.c:128,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:138,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:140,1
    - Dst: get_attr
      Src: /src/libqb/doxygen2man/doxygen2man.c:142,1
    - Dst: qb_map_put
      Src: /src/libqb/doxygen2man/doxygen2man.c:147,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 34
    argCount: 2
    argNames:
    - node
    - tag
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 151
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 151
    functionName: get_child
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - cstring_append_chars
    - qb_map_put
    - strcmp
    - strdup
    - cstring_alloc
    - get_attr
    linkageType: ''
    returnType: cstring_t
    signature: 'static cstring_t get_child(xmlNode *node, const char *tag) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libqb/doxygen2man/doxygen2man.c:569,1
    - Dst: strlen
      Src: /src/libqb/doxygen2man/doxygen2man.c:593,1
    - Dst: strdup
      Src: /src/libqb/doxygen2man/doxygen2man.c:574,1
    - Dst: print_long_structure_comment
      Src: /src/libqb/doxygen2man/doxygen2man.c:594,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:595,1
    - Dst: strlen
      Src: /src/libqb/doxygen2man/doxygen2man.c:602,1
    - Dst: strlen
      Src: /src/libqb/doxygen2man/doxygen2man.c:602,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:603,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:611,1
    - Dst: free
      Src: /src/libqb/doxygen2man/doxygen2man.c:618,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 6
    argNames:
    - manfile
    - pi
    - type_field_width
    - name_field_width
    - bold
    - delimiter
    argTypes:
    - FILE*
    - struct param_info*
    - int
    - int
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 620
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 620
    functionName: print_param
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - print_long_structure_comment
    - free
    - strdup
    - strlen
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void print_param(FILE *manfile, struct param_info *pi, int
      type_field_width, int name_field_width, int bold, const char *delimiter) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:993,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:999,1
    - Dst: get_attr
      Src: /src/libqb/doxygen2man/doxygen2man.c:995,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:996,1
    - Dst: strdup
      Src: /src/libqb/doxygen2man/doxygen2man.c:1000,1
    - Dst: qb_map_put
      Src: /src/libqb/doxygen2man/doxygen2man.c:1005,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 2
    argNames:
    - cur_node
    - arg
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 1010
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 1010
    functionName: collect_functions
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - strdup
    - qb_map_put
    - strcmp
    - get_attr
    linkageType: ''
    returnType: void
    signature: 'static void collect_functions(xmlNode *cur_node, void *arg) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: get_attr
      Src: /src/libqb/doxygen2man/doxygen2man.c:1070,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1089,1
    - Dst: get_texttree
      Src: /src/libqb/doxygen2man/doxygen2man.c:1094,1
    - Dst: get_child
      Src: /src/libqb/doxygen2man/doxygen2man.c:1105,1
    - Dst: print_manpage
      Src: /src/libqb/doxygen2man/doxygen2man.c:1123,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1142,1
    - Dst: print_text
      Src: /src/libqb/doxygen2man/doxygen2man.c:1147,1
    - Dst: free
      Src: /src/libqb/doxygen2man/doxygen2man.c:1156,1
    - Dst: free
      Src: /src/libqb/doxygen2man/doxygen2man.c:1158,1
    - Dst: cstring_to_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:1109,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:1130,1
    - Dst: qb_list_init
      Src: /src/libqb/doxygen2man/doxygen2man.c:1053,1
    - Dst: strdup
      Src: /src/libqb/doxygen2man/doxygen2man.c:1078,1
    - Dst: strdup
      Src: /src/libqb/doxygen2man/doxygen2man.c:1080,1
    - Dst: strdup
      Src: /src/libqb/doxygen2man/doxygen2man.c:1082,1
    - Dst: cstring_to_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:1096,1
    - Dst: cstring_free
      Src: /src/libqb/doxygen2man/doxygen2man.c:1100,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:1103,1
    - Dst: qb_list_add_tail
      Src: /src/libqb/doxygen2man/doxygen2man.c:1111,1
    - Dst: free
      Src: /src/libqb/doxygen2man/doxygen2man.c:1153,1
    - Dst: free
      Src: /src/libqb/doxygen2man/doxygen2man.c:1157,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1138,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1098,1
    - Dst: get_texttree
      Src: /src/libqb/doxygen2man/doxygen2man.c:1085,1
    - Dst: get_child
      Src: /src/libqb/doxygen2man/doxygen2man.c:1104,1
    - Dst: malloc
      Src: /src/libqb/doxygen2man/doxygen2man.c:1106,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1121,1
    - Dst: print_text
      Src: /src/libqb/doxygen2man/doxygen2man.c:1126,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1134,1
    - Dst: print_manpage
      Src: /src/libqb/doxygen2man/doxygen2man.c:1144,1
    - Dst: free
      Src: /src/libqb/doxygen2man/doxygen2man.c:1154,1
    - Dst: free
      Src: /src/libqb/doxygen2man/doxygen2man.c:1155,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:1057,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:1077,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:1056,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:1079,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:1081,1
    - Dst: cstring_to_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:1087,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:1093,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:1084,1
    - Dst: cstring_free
      Src: /src/libqb/doxygen2man/doxygen2man.c:1091,1
    - Dst: cstring_to_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:1108,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 117
    argCount: 2
    argNames:
    - cur_node
    - arg
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 1160
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1160
    functionName: traverse_members
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - malloc
    - qb_list_init
    - qb_list_add_tail
    - strcmp
    - printf
    - print_text
    - cstring_to_chars
    - print_manpage
    - get_texttree
    - free
    - strdup
    - cstring_free
    - fprintf
    - get_attr
    - get_child
    linkageType: ''
    returnType: void
    signature: 'static void traverse_members(xmlNode *cur_node, void *arg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_for_each
      Src: /src/libqb/doxygen2man/doxygen2man.c:158,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:160,1
    - Dst: qb_list_entry
      Src: /src/libqb/doxygen2man/doxygen2man.c:159,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 8
    argCount: 2
    argNames:
    - list
    - name
    argTypes:
    - struct qb_list_head*
    - char*
    constantsTouched: []
    func_position:
      end: 165
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 165
    functionName: find_param_by_name
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - qb_list_entry
    - strcmp
    - qb_list_for_each
    linkageType: ''
    returnType: struct param_info*
    signature: 'static struct param_info *find_param_by_name(struct qb_list_head *list,
      const char *name) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_for_each
      Src: /src/libqb/doxygen2man/doxygen2man.c:638,1
    - Dst: strlen
      Src: /src/libqb/doxygen2man/doxygen2man.c:641,1
    - Dst: strlen
      Src: /src/libqb/doxygen2man/doxygen2man.c:644,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:648,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:659,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:652,1
    - Dst: qb_list_entry
      Src: /src/libqb/doxygen2man/doxygen2man.c:660,1
    - Dst: print_param
      Src: /src/libqb/doxygen2man/doxygen2man.c:661,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:663,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:632,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:629,1
    - Dst: qb_list_entry
      Src: /src/libqb/doxygen2man/doxygen2man.c:639,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:635,1
    - Dst: strlen
      Src: /src/libqb/doxygen2man/doxygen2man.c:640,1
    - Dst: strlen
      Src: /src/libqb/doxygen2man/doxygen2man.c:643,1
    - Dst: qb_list_for_each
      Src: /src/libqb/doxygen2man/doxygen2man.c:658,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:656,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:654,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:650,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:665,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:666,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - manfile
    - si
    argTypes:
    - FILE*
    - struct struct_info*
    constantsTouched: []
    func_position:
      end: 667
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 667
    functionName: print_structure
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - qb_list_entry
    - print_param
    - qb_list_for_each
    - strlen
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void print_structure(FILE *manfile, struct struct_info *si) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:1169,1
    - Dst: traverse_node
      Src: /src/libqb/doxygen2man/doxygen2man.c:1174,1
    - Dst: do_members
      Src: /src/libqb/doxygen2man/doxygen2man.c:1170,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 4
    argNames:
    - parentnode
    - leafname
    - (do_members(xmlNode*, void*))
    - arg
    argTypes:
    - xmlNode*
    - char*
    - void
    - void*
    constantsTouched: []
    func_position:
      end: 1177
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1177
    functionName: traverse_node
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - do_members
    - strcmp
    - traverse_node
    linkageType: ''
    returnType: void
    signature: 'static void traverse_node(xmlNode *parentnode, const char *leafname,
      void (do_members(xmlNode*, void*)), void *arg) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:694,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:702,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:697,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:695,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:699,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:703,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:705,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:709,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:710,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:714,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:715,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:718,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:719,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 20
    argCount: 8
    argNames:
    - name
    - def
    - brief
    - args
    - detailed
    - param_list
    - returntext
    - notetext
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - struct qb_list_head*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 721
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 721
    functionName: print_text
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "static void print_text(char *name, char *def, char *brief, char *args,
      char *detailed,\t\t struct qb_list_head *param_list, char *returntext, char
      *notetext) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libqb/doxygen2man/doxygen2man.c:100,1
    - Dst: free
      Src: /src/libqb/doxygen2man/doxygen2man.c:101,1
    - Dst: free
      Src: /src/libqb/doxygen2man/doxygen2man.c:102,1
    - Dst: free
      Src: /src/libqb/doxygen2man/doxygen2man.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - pi
    argTypes:
    - struct param_info*
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: free_paraminfo
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void free_paraminfo(struct param_info *pi) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cstring_alloc
      Src: /src/libqb/doxygen2man/doxygen2man.c:224,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:228,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:236,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:229,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:231,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:239,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:241,1
    - Dst: get_codeline
      Src: /src/libqb/doxygen2man/doxygen2man.c:245,1
    - Dst: cstring_append_cstring
      Src: /src/libqb/doxygen2man/doxygen2man.c:246,1
    - Dst: cstring_free
      Src: /src/libqb/doxygen2man/doxygen2man.c:247,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - this_tag
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 251
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 251
    functionName: get_codeline
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - cstring_append_chars
    - get_codeline
    - strcmp
    - cstring_append_cstring
    - cstring_free
    - cstring_alloc
    linkageType: ''
    returnType: cstring_t
    signature: 'static cstring_t get_codeline(xmlNode *this_tag) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:111,1
    - Dst: strdup
      Src: /src/libqb/doxygen2man/doxygen2man.c:112,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - node
    - tag
    argTypes:
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 116
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 116
    functionName: get_attr
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - strdup
    - strcmp
    linkageType: ''
    returnType: char*
    signature: 'static char *get_attr(xmlNode *node, const char *tag) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cstring_alloc
      Src: /src/libqb/doxygen2man/doxygen2man.c:256,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:260,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:264,1
    - Dst: get_codeline
      Src: /src/libqb/doxygen2man/doxygen2man.c:266,1
    - Dst: cstring_append_cstring
      Src: /src/libqb/doxygen2man/doxygen2man.c:267,1
    - Dst: cstring_free
      Src: /src/libqb/doxygen2man/doxygen2man.c:268,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:270,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:271,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:276,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - cur_node
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 280
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 280
    functionName: get_codetree
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - cstring_append_chars
    - get_codeline
    - strcmp
    - cstring_append_cstring
    - cstring_free
    - cstring_alloc
    linkageType: ''
    returnType: cstring_t
    signature: 'static cstring_t get_codetree(xmlNode *cur_node) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:1022,1
    - Dst: get_attr
      Src: /src/libqb/doxygen2man/doxygen2man.c:1026,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:1025,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:1029,1
    - Dst: get_attr
      Src: /src/libqb/doxygen2man/doxygen2man.c:1024,1
    - Dst: strdup
      Src: /src/libqb/doxygen2man/doxygen2man.c:1030,1
    - Dst: malloc
      Src: /src/libqb/doxygen2man/doxygen2man.c:1035,1
    - Dst: memset
      Src: /src/libqb/doxygen2man/doxygen2man.c:1037,1
    - Dst: qb_list_init
      Src: /src/libqb/doxygen2man/doxygen2man.c:1039,1
    - Dst: strdup
      Src: /src/libqb/doxygen2man/doxygen2man.c:1040,1
    - Dst: qb_map_put
      Src: /src/libqb/doxygen2man/doxygen2man.c:1042,1
    - Dst: traverse_node
      Src: /src/libqb/doxygen2man/doxygen2man.c:1041,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 34
    argCount: 2
    argNames:
    - cur_node
    - arg
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 1047
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1047
    functionName: collect_enums
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - malloc
    - qb_map_put
    - memset
    - qb_list_init
    - strcmp
    - traverse_node
    - strdup
    - get_attr
    linkageType: ''
    returnType: void
    signature: 'static void collect_enums(xmlNode *cur_node, void *arg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libqb/doxygen2man/doxygen2man.c:171,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 179
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 179
    functionName: not_all_whitespace
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: 'static int not_all_whitespace(char *string) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:440,1
    - Dst: get_child
      Src: /src/libqb/doxygen2man/doxygen2man.c:444,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:449,1
    - Dst: cstring_to_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:445,1
    - Dst: cstring_free
      Src: /src/libqb/doxygen2man/doxygen2man.c:446,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:452,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:455,1
    - Dst: get_texttree
      Src: /src/libqb/doxygen2man/doxygen2man.c:456,1
    - Dst: cstring_len
      Src: /src/libqb/doxygen2man/doxygen2man.c:457,1
    - Dst: cstring_to_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:458,1
    - Dst: malloc
      Src: /src/libqb/doxygen2man/doxygen2man.c:465,1
    - Dst: strdup
      Src: /src/libqb/doxygen2man/doxygen2man.c:468,1
    - Dst: qb_list_add_tail
      Src: /src/libqb/doxygen2man/doxygen2man.c:471,1
    - Dst: strdup
      Src: /src/libqb/doxygen2man/doxygen2man.c:469,1
    - Dst: free
      Src: /src/libqb/doxygen2man/doxygen2man.c:476,1
    - Dst: snprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:467,1
    - Dst: cstring_free
      Src: /src/libqb/doxygen2man/doxygen2man.c:460,1
    - Dst: strdup
      Src: /src/libqb/doxygen2man/doxygen2man.c:468,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 51
    argCount: 2
    argNames:
    - cur_node
    - arg
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 478
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 478
    functionName: read_struct
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - malloc
    - cstring_len
    - qb_list_add_tail
    - strcmp
    - snprintf
    - cstring_to_chars
    - get_texttree
    - free
    - strdup
    - cstring_free
    - get_child
    linkageType: ''
    returnType: void
    signature: 'static void read_struct(xmlNode *cur_node, void *arg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strnlen
      Src: /src/libqb/doxygen2man/doxygen2man.c:530,1
    - Dst: toupper
      Src: /src/libqb/doxygen2man/doxygen2man.c:532,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 537
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 537
    functionName: allcaps
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - toupper
    - strnlen
    linkageType: ''
    returnType: char*
    signature: 'static char *allcaps(const char *name) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:192,1
    - Dst: cstring_to_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:200,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:197,1
    - Dst: get_text
      Src: /src/libqb/doxygen2man/doxygen2man.c:199,1
    - Dst: free
      Src: /src/libqb/doxygen2man/doxygen2man.c:201,1
    - Dst: find_param_by_name
      Src: /src/libqb/doxygen2man/doxygen2man.c:204,1
    - Dst: malloc
      Src: /src/libqb/doxygen2man/doxygen2man.c:209,1
    - Dst: qb_list_add_tail
      Src: /src/libqb/doxygen2man/doxygen2man.c:214,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 37
    argCount: 2
    argNames:
    - cur_node
    - list
    argTypes:
    - xmlNode*
    - struct qb_list_head*
    constantsTouched: []
    func_position:
      end: 220
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 220
    functionName: get_param_info
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - malloc
    - get_text
    - qb_list_add_tail
    - strcmp
    - cstring_to_chars
    - free
    - find_param_by_name
    linkageType: ''
    returnType: void
    signature: 'static void get_param_info(xmlNode *cur_node, struct qb_list_head
      *list) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:489,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:498,1
    - Dst: xmlDocGetRootElement
      Src: /src/libqb/doxygen2man/doxygen2man.c:502,1
    - Dst: stat
      Src: /src/libqb/doxygen2man/doxygen2man.c:492,1
    - Dst: xmlParseFile
      Src: /src/libqb/doxygen2man/doxygen2man.c:496,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:504,1
    - Dst: malloc
      Src: /src/libqb/doxygen2man/doxygen2man.c:508,1
    - Dst: memset
      Src: /src/libqb/doxygen2man/doxygen2man.c:510,1
    - Dst: qb_list_init
      Src: /src/libqb/doxygen2man/doxygen2man.c:512,1
    - Dst: traverse_node
      Src: /src/libqb/doxygen2man/doxygen2man.c:513,1
    - Dst: traverse_node
      Src: /src/libqb/doxygen2man/doxygen2man.c:514,1
    - Dst: qb_map_put
      Src: /src/libqb/doxygen2man/doxygen2man.c:517,1
    - Dst: xmlFreeDoc
      Src: /src/libqb/doxygen2man/doxygen2man.c:519,1
    - Dst: traverse_node
      Src: /src/libqb/doxygen2man/doxygen2man.c:515,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - refid
    - name
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 522
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 522
    functionName: read_structure_from_xml
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - malloc
    - qb_map_put
    - stat
    - memset
    - qb_list_init
    - traverse_node
    - xmlFreeDoc
    - snprintf
    - fprintf
    - xmlParseFile
    linkageType: ''
    returnType: int
    signature: 'static int read_structure_from_xml(const char *refid, const char *name) '
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: get_year
      Src: /src/libqb/doxygen2man/doxygen2man.c:1276,1
    - Dst: xmlParseFile
      Src: /src/libqb/doxygen2man/doxygen2man.c:1325,1
    - Dst: fopen
      Src: /src/libqb/doxygen2man/doxygen2man.c:1351,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1337,1
    - Dst: fclose
      Src: /src/libqb/doxygen2man/doxygen2man.c:1363,1
    - Dst: qb_list_init
      Src: /src/libqb/doxygen2man/doxygen2man.c:1373,1
    - Dst: qb_hashtable_create
      Src: /src/libqb/doxygen2man/doxygen2man.c:1375,1
    - Dst: qb_hashtable_create
      Src: /src/libqb/doxygen2man/doxygen2man.c:1376,1
    - Dst: qb_hashtable_create
      Src: /src/libqb/doxygen2man/doxygen2man.c:1377,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1327,1
    - Dst: exit
      Src: /src/libqb/doxygen2man/doxygen2man.c:1328,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1333,1
    - Dst: fgets
      Src: /src/libqb/doxygen2man/doxygen2man.c:1355,1
    - Dst: strncpy
      Src: /src/libqb/doxygen2man/doxygen2man.c:1358,1
    - Dst: traverse_node
      Src: /src/libqb/doxygen2man/doxygen2man.c:1390,1
    - Dst: usage
      Src: /src/libqb/doxygen2man/doxygen2man.c:1316,1
    - Dst: get_year
      Src: /src/libqb/doxygen2man/doxygen2man.c:1288,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1321,1
    - Dst: snprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1350,1
    - Dst: traverse_node
      Src: /src/libqb/doxygen2man/doxygen2man.c:1341,1
    - Dst: strncmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:1356,1
    - Dst: traverse_node
      Src: /src/libqb/doxygen2man/doxygen2man.c:1380,1
    - Dst: traverse_node
      Src: /src/libqb/doxygen2man/doxygen2man.c:1383,1
    - Dst: traverse_node
      Src: /src/libqb/doxygen2man/doxygen2man.c:1386,1
    - Dst: getopt_long
      Src: /src/libqb/doxygen2man/doxygen2man.c:1239,1
    - Dst: usage
      Src: /src/libqb/doxygen2man/doxygen2man.c:1307,1
    - Dst: exit
      Src: /src/libqb/doxygen2man/doxygen2man.c:1317,1
    - Dst: snprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1324,1
    - Dst: exit
      Src: /src/libqb/doxygen2man/doxygen2man.c:1334,1
    - Dst: xmlDocGetRootElement
      Src: /src/libqb/doxygen2man/doxygen2man.c:1331,1
    - Dst: feof
      Src: /src/libqb/doxygen2man/doxygen2man.c:1354,1
    - Dst: qb_list_init
      Src: /src/libqb/doxygen2man/doxygen2man.c:1374,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 96
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 1393
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1393
    functionName: main
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - usage
    - xmlDocGetRootElement
    - fclose
    - fprintf
    - fopen
    - feof
    - fgets
    - qb_list_init
    - getopt_long
    - strncpy
    - exit
    - traverse_node
    - strncmp
    - snprintf
    - qb_hashtable_create
    - printf
    - xmlParseFile
    - get_year
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char *argv[]) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:293,1
    - Dst: not_all_whitespace
      Src: /src/libqb/doxygen2man/doxygen2man.c:292,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:296,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:300,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:317,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:329,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:315,1
    - Dst: get_codetree
      Src: /src/libqb/doxygen2man/doxygen2man.c:336,1
    - Dst: cstring_free
      Src: /src/libqb/doxygen2man/doxygen2man.c:339,1
    - Dst: cstring_to_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:350,1
    - Dst: get_param_info
      Src: /src/libqb/doxygen2man/doxygen2man.c:373,1
    - Dst: get_param_info
      Src: /src/libqb/doxygen2man/doxygen2man.c:376,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:291,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:306,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:308,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:325,1
    - Dst: get_attr
      Src: /src/libqb/doxygen2man/doxygen2man.c:346,1
    - Dst: get_text
      Src: /src/libqb/doxygen2man/doxygen2man.c:347,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:349,1
    - Dst: cstring_to_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:353,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:360,1
    - Dst: cstring_append_cstring
      Src: /src/libqb/doxygen2man/doxygen2man.c:364,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:365,1
    - Dst: cstring_free
      Src: /src/libqb/doxygen2man/doxygen2man.c:367,1
    - Dst: cstring_alloc
      Src: /src/libqb/doxygen2man/doxygen2man.c:288,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:298,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:327,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:319,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:312,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:330,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:335,1
    - Dst: cstring_append_cstring
      Src: /src/libqb/doxygen2man/doxygen2man.c:337,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:343,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:352,1
    - Dst: get_attr
      Src: /src/libqb/doxygen2man/doxygen2man.c:371,1
    - Dst: get_child
      Src: /src/libqb/doxygen2man/doxygen2man.c:358,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:302,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:310,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:321,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:338,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:355,1
    - Dst: cstring_append_cstring
      Src: /src/libqb/doxygen2man/doxygen2man.c:359,1
    - Dst: get_texttree
      Src: /src/libqb/doxygen2man/doxygen2man.c:363,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:370,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:372,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:375,1
    - Dst: cstring_free
      Src: /src/libqb/doxygen2man/doxygen2man.c:361,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 136
    argCount: 3
    argNames:
    - cur_node
    - returntext
    - notetext
    argTypes:
    - xmlNode*
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 381
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 381
    functionName: get_text
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - not_all_whitespace
    - cstring_append_chars
    - get_text
    - strcmp
    - cstring_to_chars
    - cstring_append_cstring
    - get_codetree
    - cstring_free
    - get_texttree
    - get_param_info
    - cstring_alloc
    - get_attr
    - get_child
    linkageType: ''
    returnType: cstring_t
    signature: 'static cstring_t get_text(xmlNode *cur_node, char **returntext, char
      **notetext) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:401,1
    - Dst: cstring_free
      Src: /src/libqb/doxygen2man/doxygen2man.c:404,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:406,1
    - Dst: get_texttree
      Src: /src/libqb/doxygen2man/doxygen2man.c:402,1
    - Dst: cstring_to_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:403,1
    - Dst: get_texttree
      Src: /src/libqb/doxygen2man/doxygen2man.c:407,1
    - Dst: cstring_to_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:408,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - cur_node
    - arg
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 411
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 411
    functionName: read_structdesc
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - cstring_free
    - get_texttree
    - strcmp
    - cstring_to_chars
    linkageType: ''
    returnType: void
    signature: 'static void read_structdesc(xmlNode *cur_node, void *arg) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cstring_alloc
      Src: /src/libqb/doxygen2man/doxygen2man.c:673,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:677,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/doxygen2man.c:681,1
    - Dst: cstring_append_cstring
      Src: /src/libqb/doxygen2man/doxygen2man.c:679,1
    - Dst: get_text
      Src: /src/libqb/doxygen2man/doxygen2man.c:678,1
    - Dst: cstring_free
      Src: /src/libqb/doxygen2man/doxygen2man.c:684,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 5
    argNames:
    - type
    - cur_node
    - returntext
    - notetext
    - add_nl
    argTypes:
    - int*
    - xmlNode*
    - char**
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 688
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 688
    functionName: get_texttree
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - cstring_append_chars
    - get_text
    - strcmp
    - cstring_append_cstring
    - cstring_free
    - cstring_alloc
    linkageType: ''
    returnType: cstring_t
    signature: 'cstring_t get_texttree(int *type, xmlNode *cur_node, char **returntext,
      char **notetext, int add_nl) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/libqb/doxygen2man/doxygen2man.c:730,1
    - Dst: strncmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:735,1
    - Dst: strlen
      Src: /src/libqb/doxygen2man/doxygen2man.c:743,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:741,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:737,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:744,1
    - Dst: strncmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:748,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:750,1
    - Dst: strchr
      Src: /src/libqb/doxygen2man/doxygen2man.c:755,1
    - Dst: strlen
      Src: /src/libqb/doxygen2man/doxygen2man.c:759,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:760,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 2
    argNames:
    - manfile
    - text
    argTypes:
    - FILE*
    - char*
    constantsTouched: []
    func_position:
      end: 762
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 762
    functionName: man_print_long_string
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - strlen
    - strchr
    - strncmp
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void man_print_long_string(FILE *manfile, char *text) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1182,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1188,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1189,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1194,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1199,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1203,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1206,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1210,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1214,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1187,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1192,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1198,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1193,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1202,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1205,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1209,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1213,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1184,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1183,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1186,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1191,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1197,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1201,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1208,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1212,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1185,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1190,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1195,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1200,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1196,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1204,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1207,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1215
      start: 1180
    functionDepth: 0
    functionLinenumber: 1180
    functionLinenumberEnd: 1215
    functionName: usage
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void usage(char *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:389,1
    - Dst: strdup
      Src: /src/libqb/doxygen2man/doxygen2man.c:390,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 2
    argNames:
    - cur_node
    - arg
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 393
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 393
    functionName: read_structname
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - strdup
    - strcmp
    linkageType: ''
    returnType: void
    signature: 'static void read_structname(xmlNode *cur_node, void *arg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:420,1
    - Dst: strdup
      Src: /src/libqb/doxygen2man/doxygen2man.c:421,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 2
    argNames:
    - cur_node
    - arg
    argTypes:
    - xmlNode*
    - void*
    constantsTouched: []
    func_position:
      end: 424
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 424
    functionName: read_headername
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - strdup
    - strcmp
    linkageType: ''
    returnType: void
    signature: 'static void read_headername(xmlNode *cur_node, void *arg) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: perror
      Src: /src/libqb/doxygen2man/doxygen2man.c:788,1
    - Dst: perror
      Src: /src/libqb/doxygen2man/doxygen2man.c:803,1
    - Dst: qb_list_for_each
      Src: /src/libqb/doxygen2man/doxygen2man.c:922,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:953,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:955,1
    - Dst: qb_map_rm
      Src: /src/libqb/doxygen2man/doxygen2man.c:981,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:871,1
    - Dst: qb_map_count_get
      Src: /src/libqb/doxygen2man/doxygen2man.c:882,1
    - Dst: qb_map_iter_create
      Src: /src/libqb/doxygen2man/doxygen2man.c:885,1
    - Dst: print_structure
      Src: /src/libqb/doxygen2man/doxygen2man.c:905,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:938,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/doxygen2man/doxygen2man.c:942,1
    - Dst: time
      Src: /src/libqb/doxygen2man/doxygen2man.c:785,1
    - Dst: snprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:800,1
    - Dst: strlen
      Src: /src/libqb/doxygen2man/doxygen2man.c:826,1
    - Dst: qb_list_entry
      Src: /src/libqb/doxygen2man/doxygen2man.c:923,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:954,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:961,1
    - Dst: free
      Src: /src/libqb/doxygen2man/doxygen2man.c:982,1
    - Dst: qb_map_get
      Src: /src/libqb/doxygen2man/doxygen2man.c:892,1
    - Dst: qb_map_iter_create
      Src: /src/libqb/doxygen2man/doxygen2man.c:941,1
    - Dst: fclose
      Src: /src/libqb/doxygen2man/doxygen2man.c:963,1
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/doxygen2man/doxygen2man.c:972,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/doxygen2man/doxygen2man.c:980,1
    - Dst: localtime
      Src: /src/libqb/doxygen2man/doxygen2man.c:786,1
    - Dst: fopen
      Src: /src/libqb/doxygen2man/doxygen2man.c:801,1
    - Dst: strlen
      Src: /src/libqb/doxygen2man/doxygen2man.c:824,1
    - Dst: not_all_whitespace
      Src: /src/libqb/doxygen2man/doxygen2man.c:841,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:911,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:852,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:946,1
    - Dst: qb_list_entry
      Src: /src/libqb/doxygen2man/doxygen2man.c:967,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:937,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:935,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:848,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:878,1
    - Dst: strdup
      Src: /src/libqb/doxygen2man/doxygen2man.c:820,1
    - Dst: qb_list_for_each
      Src: /src/libqb/doxygen2man/doxygen2man.c:813,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:851,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:925,1
    - Dst: printf
      Src: /src/libqb/doxygen2man/doxygen2man.c:804,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:863,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:867,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:927,1
    - Dst: strlen
      Src: /src/libqb/doxygen2man/doxygen2man.c:827,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:838,1
    - Dst: allcaps
      Src: /src/libqb/doxygen2man/doxygen2man.c:838,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:847,1
    - Dst: strcmp
      Src: /src/libqb/doxygen2man/doxygen2man.c:945,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:956,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:957,1
    - Dst: qb_list_del
      Src: /src/libqb/doxygen2man/doxygen2man.c:968,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/doxygen2man/doxygen2man.c:980,1
    - Dst: qb_list_entry
      Src: /src/libqb/doxygen2man/doxygen2man.c:870,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/doxygen2man/doxygen2man.c:886,1
    - Dst: qb_map_iter_free
      Src: /src/libqb/doxygen2man/doxygen2man.c:909,1
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/doxygen2man/doxygen2man.c:966,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:844,1
    - Dst: qb_list_entry
      Src: /src/libqb/doxygen2man/doxygen2man.c:855,1
    - Dst: qb_map_iter_free
      Src: /src/libqb/doxygen2man/doxygen2man.c:951,1
    - Dst: strlen
      Src: /src/libqb/doxygen2man/doxygen2man.c:822,1
    - Dst: strlen
      Src: /src/libqb/doxygen2man/doxygen2man.c:823,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:837,1
    - Dst: man_print_long_string
      Src: /src/libqb/doxygen2man/doxygen2man.c:932,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:840,1
    - Dst: qb_list_entry
      Src: /src/libqb/doxygen2man/doxygen2man.c:814,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:959,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:936,1
    - Dst: qb_list_for_each
      Src: /src/libqb/doxygen2man/doxygen2man.c:854,1
    - Dst: print_param
      Src: /src/libqb/doxygen2man/doxygen2man.c:858,1
    - Dst: read_structure_from_xml
      Src: /src/libqb/doxygen2man/doxygen2man.c:894,1
    - Dst: qb_map_get
      Src: /src/libqb/doxygen2man/doxygen2man.c:895,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:901,1
    - Dst: free_paraminfo
      Src: /src/libqb/doxygen2man/doxygen2man.c:969,1
    - Dst: qb_map_iter_create
      Src: /src/libqb/doxygen2man/doxygen2man.c:979,1
    - Dst: strftime
      Src: /src/libqb/doxygen2man/doxygen2man.c:791,1
    - Dst: man_print_long_string
      Src: /src/libqb/doxygen2man/doxygen2man.c:879,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:873,1
    - Dst: qb_list_for_each
      Src: /src/libqb/doxygen2man/doxygen2man.c:869,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/doxygen2man/doxygen2man.c:886,1
    - Dst: qb_list_empty
      Src: /src/libqb/doxygen2man/doxygen2man.c:914,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:915,1
    - Dst: qb_list_entry
      Src: /src/libqb/doxygen2man/doxygen2man.c:973,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:849,1
    - Dst: exit
      Src: /src/libqb/doxygen2man/doxygen2man.c:789,1
    - Dst: exit
      Src: /src/libqb/doxygen2man/doxygen2man.c:805,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:842,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:862,1
    - Dst: man_print_long_string
      Src: /src/libqb/doxygen2man/doxygen2man.c:917,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:919,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/doxygen2man/doxygen2man.c:942,1
    - Dst: qb_list_del
      Src: /src/libqb/doxygen2man/doxygen2man.c:974,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:931,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:906,1
    - Dst: free_paraminfo
      Src: /src/libqb/doxygen2man/doxygen2man.c:975,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 183
    argCount: 8
    argNames:
    - name
    - def
    - brief
    - args
    - detailed
    - param_map
    - returntext
    - notetext
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - struct qb_list_head*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 984
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 984
    functionName: print_manpage
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - qb_list_empty
    - fclose
    - qb_map_iter_next
    - read_structure_from_xml
    - free
    - strdup
    - free_paraminfo
    - printf
    - qb_map_iter_create
    - localtime
    - fopen
    - qb_list_entry
    - qb_map_count_get
    - man_print_long_string
    - qb_map_get
    - exit
    - strftime
    - snprintf
    - qb_map_rm
    - not_all_whitespace
    - strcmp
    - qb_list_for_each
    - perror
    - print_structure
    - qb_list_for_each_safe
    - time
    - qb_list_del
    - qb_map_iter_free
    - print_param
    - allcaps
    - strlen
    - fprintf
    linkageType: ''
    returnType: void
    signature: "static void print_manpage(char *name, char *def, char *brief, char
      *args, char *detailed,\t\t\t struct qb_list_head *param_map, char *returntext,
      char *notetext) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/libqb/doxygen2man/doxygen2man.c:1219,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:1226,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - optionarg
    - optionchar
    argTypes:
    - char*
    - char
    constantsTouched: []
    func_position:
      end: 1230
      start: 1217
    functionDepth: 0
    functionLinenumber: 1217
    functionLinenumberEnd: 1230
    functionName: get_year
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - strtol
    - fprintf
    linkageType: ''
    returnType: long
    signature: 'static long get_year(char *optionarg, char optionchar) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/libqb/doxygen2man/doxygen2man.c:547,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:551,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:550,1
    - Dst: strtok
      Src: /src/libqb/doxygen2man/doxygen2man.c:548,1
    - Dst: strlen
      Src: /src/libqb/doxygen2man/doxygen2man.c:553,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:555,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:558,1
    - Dst: strtok
      Src: /src/libqb/doxygen2man/doxygen2man.c:559,1
    - Dst: fprintf
      Src: /src/libqb/doxygen2man/doxygen2man.c:561,1
    - Dst: free
      Src: /src/libqb/doxygen2man/doxygen2man.c:562,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - manfile
    - struct_comment
    argTypes:
    - FILE*
    - char*
    constantsTouched: []
    func_position:
      end: 563
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 563
    functionName: print_long_structure_comment
    functionSourceFile: /src/libqb/doxygen2man/doxygen2man.c
    functionUses: []
    functionsReached:
    - strtok
    - free
    - strdup
    - strlen
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void print_long_structure_comment(FILE *manfile, char *struct_comment) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libqb/doxygen2man/cstring.c:28,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 39
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 39
    functionName: cstring_alloc
    functionSourceFile: /src/libqb/doxygen2man/cstring.c
    functionUses: []
    functionsReached:
    - malloc
    linkageType: ''
    returnType: cstring_t
    signature: 'cstring_t cstring_alloc(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libqb/doxygen2man/cstring.c:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - cstring
    argTypes:
    - cstring_t
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: cstring_len
    functionSourceFile: /src/libqb/doxygen2man/cstring.c
    functionUses: []
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: 'size_t cstring_len(cstring_t cstring) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libqb/doxygen2man/cstring.c:106,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/cstring.c:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - cstring
    - newstring
    argTypes:
    - cstring_t
    - cstring_t
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: cstring_append_cstring
    functionSourceFile: /src/libqb/doxygen2man/cstring.c
    functionUses: []
    functionsReached:
    - cstring_append_chars
    - assert
    linkageType: ''
    returnType: cstring_t
    signature: 'cstring_t cstring_append_cstring(cstring_t cstring, cstring_t newstring) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libqb/doxygen2man/cstring.c:49,1
    - Dst: strdup
      Src: /src/libqb/doxygen2man/cstring.c:50,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - cstring
    argTypes:
    - cstring_t
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 51
    functionName: cstring_to_chars
    functionSourceFile: /src/libqb/doxygen2man/cstring.c
    functionUses: []
    functionsReached:
    - strdup
    - assert
    linkageType: ''
    returnType: char*
    signature: 'char *cstring_to_chars(cstring_t cstring) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libqb/doxygen2man/cstring.c:75,1
    - Dst: realloc
      Src: /src/libqb/doxygen2man/cstring.c:83,1
    - Dst: strncat
      Src: /src/libqb/doxygen2man/cstring.c:92,1
    - Dst: strlen
      Src: /src/libqb/doxygen2man/cstring.c:93,1
    - Dst: strlen
      Src: /src/libqb/doxygen2man/cstring.c:80,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - cstring
    - newstring
    argTypes:
    - cstring_t
    - char*
    constantsTouched: []
    func_position:
      end: 95
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 95
    functionName: cstring_append_chars
    functionSourceFile: /src/libqb/doxygen2man/cstring.c
    functionUses: []
    functionsReached:
    - realloc
    - strlen
    - strncat
    - assert
    linkageType: ''
    returnType: cstring_t
    signature: 'cstring_t cstring_append_chars(cstring_t cstring, const char *newstring) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cstring_alloc
      Src: /src/libqb/doxygen2man/cstring.c:112,1
    - Dst: cstring_append_chars
      Src: /src/libqb/doxygen2man/cstring.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - chars
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: cstring_from_chars
    functionSourceFile: /src/libqb/doxygen2man/cstring.c
    functionUses: []
    functionsReached:
    - cstring_alloc
    - cstring_append_chars
    linkageType: ''
    returnType: cstring_t
    signature: 'cstring_t cstring_from_chars(const char* chars) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libqb/doxygen2man/cstring.c:126,1
    - Dst: free
      Src: /src/libqb/doxygen2man/cstring.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - cstring
    argTypes:
    - cstring_t
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: cstring_free
    functionSourceFile: /src/libqb/doxygen2man/cstring.c
    functionUses: []
    functionsReached:
    - free
    - assert
    linkageType: ''
    returnType: void
    signature: 'void cstring_free(cstring_t cstring) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_init
      Src: /src/libqb/tools/qb_blackbox.c:24,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tools/qb_blackbox.c:26,1
    - Dst: printf
      Src: /src/libqb/tools/qb_blackbox.c:30,1
    - Dst: qb_log_ctl
      Src: /src/libqb/tools/qb_blackbox.c:25,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/tools/qb_blackbox.c:27,1
    - Dst: qb_log_blackbox_print_from_file
      Src: /src/libqb/tools/qb_blackbox.c:31,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 34
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 34
    functionName: main
    functionSourceFile: /src/libqb/tools/qb_blackbox.c
    functionUses: []
    functionsReached:
    - qb_log_blackbox_print_from_file
    - qb_log_filter_ctl
    - qb_log_init
    - printf
    - qb_log_ctl
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - struct timerlist_timer*
    - struct timerlist_timer*
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: timerlist_entry_cmp
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static inline int timerlist_entry_cmp(const struct timerlist_timer
      *t1, const struct timerlist_timer *t2) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/libqb/include/tlist.h:271,1
    - Dst: free
      Src: /src/libqb/include/tlist.h:276,1
    - Dst: free
      Src: /src/libqb/include/tlist.h:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - timerlist
    argTypes:
    - struct timerlist*
    constantsTouched: []
    func_position:
      end: 277
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 277
    functionName: timerlist_destroy
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached:
    - pthread_mutex_destroy
    - free
    linkageType: ''
    returnType: void
    signature: 'static inline void timerlist_destroy(struct timerlist *timerlist) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libqb/include/tlist.h:393,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 2
    argNames:
    - timerlist
    - _timer_handle
    argTypes:
    - struct timerlist*
    - timer_handle
    constantsTouched: []
    func_position:
      end: 394
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 394
    functionName: timerlist_post_dispatch
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: "static inline void timerlist_post_dispatch(struct timerlist *timerlist,\t\t\t\t\t
      timer_handle _timer_handle) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timerlist_heap_entry_get
      Src: /src/libqb/include/tlist.h:116,1
    - Dst: timerlist_heap_index_parent
      Src: /src/libqb/include/tlist.h:118,1
    - Dst: timerlist_heap_entry_set
      Src: /src/libqb/include/tlist.h:126,1
    - Dst: timerlist_heap_entry_get
      Src: /src/libqb/include/tlist.h:121,1
    - Dst: timerlist_entry_cmp
      Src: /src/libqb/include/tlist.h:122,1
    - Dst: timerlist_heap_entry_set
      Src: /src/libqb/include/tlist.h:127,1
    - Dst: timerlist_heap_index_parent
      Src: /src/libqb/include/tlist.h:130,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - timerlist
    - item_pos
    argTypes:
    - struct timerlist*
    - size_t
    constantsTouched: []
    func_position:
      end: 132
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 132
    functionName: timerlist_heap_sift_up
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached:
    - timerlist_heap_entry_get
    - timerlist_heap_index_parent
    - timerlist_entry_cmp
    - timerlist_heap_entry_set
    linkageType: ''
    returnType: void
    signature: 'static inline void timerlist_heap_sift_up(struct timerlist *timerlist,
      size_t item_pos) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/libqb/include/tlist.h:286,1
    - Dst: pthread_mutex_unlock
      Src: /src/libqb/include/tlist.h:314,1
    - Dst: timerlist_heap_sift_up
      Src: /src/libqb/include/tlist.h:311,1
    - Dst: realloc
      Src: /src/libqb/include/tlist.h:296,1
    - Dst: timerlist_heap_entry_set
      Src: /src/libqb/include/tlist.h:310,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 2
    argNames:
    - timerlist
    - timer
    argTypes:
    - struct timerlist*
    - struct timerlist_timer*
    constantsTouched: []
    func_position:
      end: 316
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 316
    functionName: timerlist_add
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached:
    - realloc
    - pthread_mutex_unlock
    - timerlist_heap_sift_up
    - pthread_mutex_lock
    - timerlist_heap_entry_set
    linkageType: ''
    returnType: int32_t
    signature: "static inline int32_t timerlist_add(struct timerlist *timerlist,\t\t\t\t
      struct timerlist_timer *timer) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: timerlist_heap_index_right
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: 'static inline size_t timerlist_heap_index_right(size_t index) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libqb/include/tlist.h:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 3
    argNames:
    - timerlist
    - item_pos
    - timer
    argTypes:
    - struct timerlist*
    - size_t
    - struct timerlist_timer*
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: timerlist_heap_entry_set
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: 'static inline void timerlist_heap_entry_set(struct timerlist *timerlist,
      size_t item_pos, struct timerlist_timer *timer) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: timerlist_heap_index_left
      Src: /src/libqb/include/tlist.h:148,1
    - Dst: timerlist_heap_index_right
      Src: /src/libqb/include/tlist.h:149,1
    - Dst: timerlist_heap_entry_get
      Src: /src/libqb/include/tlist.h:151,1
    - Dst: timerlist_entry_cmp
      Src: /src/libqb/include/tlist.h:155,1
    - Dst: timerlist_heap_entry_get
      Src: /src/libqb/include/tlist.h:154,1
    - Dst: timerlist_heap_entry_get
      Src: /src/libqb/include/tlist.h:161,1
    - Dst: timerlist_entry_cmp
      Src: /src/libqb/include/tlist.h:162,1
    - Dst: timerlist_heap_entry_get
      Src: /src/libqb/include/tlist.h:176,1
    - Dst: timerlist_heap_entry_set
      Src: /src/libqb/include/tlist.h:177,1
    - Dst: timerlist_heap_entry_set
      Src: /src/libqb/include/tlist.h:178,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 2
    argNames:
    - timerlist
    - item_pos
    argTypes:
    - struct timerlist*
    - size_t
    constantsTouched: []
    func_position:
      end: 183
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 183
    functionName: timerlist_heap_sift_down
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached:
    - timerlist_heap_entry_get
    - timerlist_entry_cmp
    - timerlist_heap_index_left
    - timerlist_heap_index_right
    - timerlist_heap_entry_set
    linkageType: ''
    returnType: void
    signature: 'static inline void timerlist_heap_sift_down(struct timerlist *timerlist,
      size_t item_pos) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 2
    argNames:
    - timerlist
    - _timer_handle
    argTypes:
    - struct timerlist*
    - timer_handle
    constantsTouched: []
    func_position:
      end: 376
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 376
    functionName: timerlist_expire_time
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "static inline uint64_t timerlist_expire_time(struct timerlist\t\t\t\t\t\t
      *timerlist,\t\t\t\t\t\t timer_handle\t\t\t\t\t\t _timer_handle) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: timerlist_heap_index_parent
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: 'static inline size_t timerlist_heap_index_parent(size_t index) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libqb/include/tlist.h:91,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 2
    argNames:
    - timerlist
    - item_pos
    argTypes:
    - struct timerlist*
    - size_t
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: timerlist_heap_entry_get
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached:
    - assert
    linkageType: ''
    returnType: struct timerlist_timer*
    signature: 'static inline struct timerlist_timer *timerlist_heap_entry_get(struct
      timerlist *timerlist, size_t item_pos) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: timerlist_heap_entry_get
      Src: /src/libqb/include/tlist.h:198,1
    - Dst: timerlist_heap_entry_set
      Src: /src/libqb/include/tlist.h:199,1
    - Dst: timerlist_heap_sift_down
      Src: /src/libqb/include/tlist.h:214,1
    - Dst: timerlist_entry_cmp
      Src: /src/libqb/include/tlist.h:209,1
    - Dst: timerlist_heap_sift_up
      Src: /src/libqb/include/tlist.h:212,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - timerlist
    - entry
    argTypes:
    - struct timerlist*
    - struct timerlist_timer*
    constantsTouched: []
    func_position:
      end: 216
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 216
    functionName: timerlist_heap_delete
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached:
    - timerlist_heap_entry_get
    - timerlist_heap_sift_up
    - timerlist_entry_cmp
    - timerlist_heap_sift_down
    - timerlist_heap_entry_set
    linkageType: ''
    returnType: void
    signature: 'static inline void timerlist_heap_delete(struct timerlist *timerlist,
      struct timerlist_timer *entry) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libqb/include/tlist.h:383,1
    - Dst: timerlist_heap_delete
      Src: /src/libqb/include/tlist.h:385,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 2
    argNames:
    - timerlist
    - _timer_handle
    argTypes:
    - struct timerlist*
    - timer_handle
    constantsTouched: []
    func_position:
      end: 386
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 386
    functionName: timerlist_pre_dispatch
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached:
    - memset
    - timerlist_heap_delete
    linkageType: ''
    returnType: void
    signature: "static inline void timerlist_pre_dispatch(struct timerlist *timerlist,\t\t\t\t\t
      timer_handle _timer_handle) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: timerlist_heap_index_left
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: 'static inline size_t timerlist_heap_index_left(size_t index) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/libqb/include/tlist.h:408,1
    - Dst: pthread_mutex_unlock
      Src: /src/libqb/include/tlist.h:416,1
    - Dst: qb_util_nano_from_epoch_get
      Src: /src/libqb/include/tlist.h:429,1
    - Dst: pthread_mutex_unlock
      Src: /src/libqb/include/tlist.h:426,1
    - Dst: timerlist_heap_entry_get
      Src: /src/libqb/include/tlist.h:421,1
    - Dst: qb_util_nano_current_get
      Src: /src/libqb/include/tlist.h:431,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - timerlist
    argTypes:
    - struct timerlist*
    constantsTouched: []
    func_position:
      end: 445
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 445
    functionName: timerlist_msec_duration_to_expire
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached:
    - timerlist_heap_entry_get
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - qb_util_nano_current_get
    - qb_util_nano_from_epoch_get
    linkageType: ''
    returnType: uint64_t
    signature: 'static inline uint64_t timerlist_msec_duration_to_expire(struct timerlist
      *timerlist) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: timerlist_heap_entry_get
      Src: /src/libqb/include/tlist.h:233,1
    - Dst: timerlist_heap_index_left
      Src: /src/libqb/include/tlist.h:235,1
    - Dst: timerlist_heap_index_right
      Src: /src/libqb/include/tlist.h:236,1
    - Dst: timerlist_entry_cmp
      Src: /src/libqb/include/tlist.h:240,1
    - Dst: timerlist_heap_entry_get
      Src: /src/libqb/include/tlist.h:239,1
    - Dst: timerlist_heap_entry_get
      Src: /src/libqb/include/tlist.h:245,1
    - Dst: timerlist_entry_cmp
      Src: /src/libqb/include/tlist.h:246,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 1
    argNames:
    - timerlist
    argTypes:
    - struct timerlist*
    constantsTouched: []
    func_position:
      end: 252
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 252
    functionName: timerlist_debug_is_valid_heap
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached:
    - timerlist_heap_entry_get
    - timerlist_entry_cmp
    - timerlist_heap_index_right
    - timerlist_heap_index_left
    linkageType: ''
    returnType: int
    signature: 'static inline int timerlist_debug_is_valid_heap(struct timerlist *timerlist) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libqb/include/tlist.h:328,1
    - Dst: free
      Src: /src/libqb/include/tlist.h:341,1
    - Dst: qb_util_nano_current_get
      Src: /src/libqb/include/tlist.h:334,1
    - Dst: timerlist_add
      Src: /src/libqb/include/tlist.h:339,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 18
    argCount: 5
    argNames:
    - timerlist
    - (*timer_fn)
    - data
    - nano_duration
    - handle
    argTypes:
    - struct timerlist*
    - void
    - void*
    - uint64_t
    - timer_handle*
    constantsTouched: []
    func_position:
      end: 347
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 347
    functionName: timerlist_add_duration
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached:
    - free
    - malloc
    - timerlist_add
    - qb_util_nano_current_get
    linkageType: ''
    returnType: int32_t
    signature: "static inline int32_t timerlist_add_duration(struct timerlist *timerlist,\t\t\t\t\t
      void (*timer_fn) (void *data),\t\t\t\t\t void *data,\t\t\t\t\t uint64_t nano_duration,\t\t\t\t\t
      timer_handle * handle) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/libqb/include/tlist.h:355,1
    - Dst: memset
      Src: /src/libqb/include/tlist.h:359,1
    - Dst: free
      Src: /src/libqb/include/tlist.h:362,1
    - Dst: pthread_mutex_unlock
      Src: /src/libqb/include/tlist.h:364,1
    - Dst: timerlist_heap_delete
      Src: /src/libqb/include/tlist.h:361,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 2
    argNames:
    - timerlist
    - _timer_handle
    argTypes:
    - struct timerlist*
    - timer_handle
    constantsTouched: []
    func_position:
      end: 366
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 366
    functionName: timerlist_del
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached:
    - pthread_mutex_unlock
    - memset
    - timerlist_heap_delete
    - free
    - pthread_mutex_lock
    linkageType: ''
    returnType: int32_t
    signature: "static inline int32_t timerlist_del(struct timerlist *timerlist,\t\t\t\t
      timer_handle _timer_handle) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libqb/include/tlist.h:260,1
    - Dst: pthread_mutex_init
      Src: /src/libqb/include/tlist.h:263,1
    - Dst: qb_util_nano_monotonic_hz
      Src: /src/libqb/include/tlist.h:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - timerlist
    argTypes:
    - struct timerlist*
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: timerlist_init
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached:
    - memset
    - pthread_mutex_init
    - qb_util_nano_monotonic_hz
    linkageType: ''
    returnType: void
    signature: 'static inline void timerlist_init(struct timerlist *timerlist) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_nano_current_get
      Src: /src/libqb/include/tlist.h:458,1
    - Dst: timerlist_pre_dispatch
      Src: /src/libqb/include/tlist.h:475,1
    - Dst: pthread_mutex_lock
      Src: /src/libqb/include/tlist.h:461,1
    - Dst: timerlist_heap_entry_get
      Src: /src/libqb/include/tlist.h:466,1
    - Dst: qb_util_nano_from_epoch_get
      Src: /src/libqb/include/tlist.h:459,1
    - Dst: timerlist_post_dispatch
      Src: /src/libqb/include/tlist.h:479,1
    - Dst: pthread_mutex_unlock
      Src: /src/libqb/include/tlist.h:485,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - timerlist
    argTypes:
    - struct timerlist*
    constantsTouched: []
    func_position:
      end: 488
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 488
    functionName: timerlist_expire
    functionSourceFile: /src/libqb/include/tlist.h
    functionUses: []
    functionsReached:
    - timerlist_heap_entry_get
    - timerlist_pre_dispatch
    - qb_util_nano_from_epoch_get
    - pthread_mutex_unlock
    - timerlist_post_dispatch
    - qb_util_nano_current_get
    - pthread_mutex_lock
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t timerlist_expire(struct timerlist *timerlist) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - _remove
    argTypes:
    - struct qb_list_head*
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: qb_list_del
    functionSourceFile: /src/libqb/include/qb/qblist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static inline void qb_list_del(struct qb_list_head *_remove) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - element
    - head
    argTypes:
    - struct qb_list_head*
    - struct qb_list_head*
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: qb_list_add
    functionSourceFile: /src/libqb/include/qb/qblist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static inline void qb_list_add(struct qb_list_head *element,\t\t\t
      struct qb_list_head *head) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - old_one
    - new_one
    argTypes:
    - struct qb_list_head*
    - struct qb_list_head*
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: qb_list_replace
    functionSourceFile: /src/libqb/include/qb/qblist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static inline void qb_list_replace(struct qb_list_head *old_one,\t\tstruct
      qb_list_head *new_one) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct qb_list_head*
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: qb_list_empty
    functionSourceFile: /src/libqb/include/qb/qblist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t qb_list_empty(const struct qb_list_head *head) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct qb_list_head*
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: qb_list_init
    functionSourceFile: /src/libqb/include/qb/qblist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static inline void qb_list_init(struct qb_list_head *head) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - element
    - head
    argTypes:
    - struct qb_list_head*
    - struct qb_list_head*
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: qb_list_add_tail
    functionSourceFile: /src/libqb/include/qb/qblist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static inline void qb_list_add_tail(struct qb_list_head *element,\t\t\t\t
      struct qb_list_head *head) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct qb_list_head*
    - struct qb_list_head*
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: qb_list_is_last
    functionSourceFile: /src/libqb/include/qb/qblist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "static inline int qb_list_is_last(const struct qb_list_head *list,\t\tconst
      struct qb_list_head *head) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_empty
      Src: /src/libqb/include/qb/qblist.h:160,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 8
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct qb_list_head*
    - struct qb_list_head*
    constantsTouched: []
    func_position:
      end: 167
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 167
    functionName: qb_list_splice
    functionSourceFile: /src/libqb/include/qb/qblist.h
    functionUses: []
    functionsReached:
    - qb_list_empty
    linkageType: ''
    returnType: void
    signature: "static inline void qb_list_splice(struct qb_list_head *list,\t\t\t\t
      struct qb_list_head *head) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_empty
      Src: /src/libqb/include/qb/qblist.h:181,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 8
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct qb_list_head*
    - struct qb_list_head*
    constantsTouched: []
    func_position:
      end: 188
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 188
    functionName: qb_list_splice_tail
    functionSourceFile: /src/libqb/include/qb/qblist.h
    functionUses: []
    functionsReached:
    - qb_list_empty
    linkageType: ''
    returnType: void
    signature: "static inline void qb_list_splice_tail(struct qb_list_head *list,\t\t\t\tstruct
      qb_list_head *head) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_for_each
      Src: /src/libqb/include/qb/qblist.h:302,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct qb_list_head*
    constantsTouched: []
    func_position:
      end: 306
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 306
    functionName: qb_list_length
    functionSourceFile: /src/libqb/include/qb/qblist.h
    functionUses: []
    functionsReached:
    - qb_list_for_each
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t qb_list_length(struct qb_list_head *head) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipc_us_send
      Src: /src/libqb/lib/ipcc.c:261,1
    - Dst: _check_connection_state
      Src: /src/libqb/lib/ipcc.c:270,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 3
    argNames:
    - c
    - msg_ptr
    - msg_len
    argTypes:
    - struct qb_ipcc_connection*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 271
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 271
    functionName: qb_ipcc_send
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached:
    - qb_ipc_us_send
    - _check_connection_state
    linkageType: ''
    returnType: ssize_t
    signature: 'ssize_t qb_ipcc_send(struct qb_ipcc_connection * c, const void *msg_ptr,
      size_t msg_len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - c
    - max
    argTypes:
    - struct qb_ipcc_connection*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 281
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 281
    functionName: qb_ipcc_fc_enable_max_set
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_ipcc_fc_enable_max_set(struct qb_ipcc_connection * c, uint32_t
      max) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcc_connection_t*
    constantsTouched: []
    func_position:
      end: 538
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 538
    functionName: qb_ipcc_get_buffer_size
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_ipcc_get_buffer_size(qb_ipcc_connection_t * c) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcc_connection*
    constantsTouched: []
    func_position:
      end: 513
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 513
    functionName: qb_ipcc_context_get
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'void *qb_ipcc_context_get(struct qb_ipcc_connection *c) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _response_sock_one_way_get
      Src: /src/libqb/lib/ipcc.c:524,1
    - Dst: _check_connection_state_with
      Src: /src/libqb/lib/ipcc.c:525,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcc_connection_t*
    constantsTouched: []
    func_position:
      end: 528
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 528
    functionName: qb_ipcc_is_connected
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached:
    - _check_connection_state_with
    - _response_sock_one_way_get
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_ipcc_is_connected(qb_ipcc_connection_t *c) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipc_us_sock_error_is_disconnected
      Src: /src/libqb/lib/ipcc.c:165,1
    - Dst: qb_ipc_us_ready
      Src: /src/libqb/lib/ipcc.c:179,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipcc.c:182,1
    - Dst: qb_ipc_us_sock_error_is_disconnected
      Src: /src/libqb/lib/ipcc.c:180,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipcc.c:167,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 5
    argNames:
    - c
    - res
    - one_way
    - ms_timeout
    - events
    argTypes:
    - struct qb_ipcc_connection*
    - int32_t
    - struct qb_ipc_one_way*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 197
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 197
    functionName: _check_connection_state_with
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached:
    - qb_ipc_us_ready
    - qb_util_perror
    - qb_ipc_us_sock_error_is_disconnected
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t _check_connection_state_with(struct qb_ipcc_connection
      * c, int32_t res,\t\t\t struct qb_ipc_one_way * one_way,\t\t\t int32_t ms_timeout,
      int32_t events) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcc_connection*
    constantsTouched: []
    func_position:
      end: 222
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 222
    functionName: _event_sock_one_way_get
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct qb_ipc_one_way*
    signature: 'static struct qb_ipc_one_way *_event_sock_one_way_get(struct qb_ipcc_connection
      * c) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipcc.c:410,1
    - Dst: qb_ipcc_recv
      Src: /src/libqb/lib/ipcc.c:398,1
    - Dst: qb_ipcc_sendv
      Src: /src/libqb/lib/ipcc.c:384,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 6
    argNames:
    - c
    - iov
    - iov_len
    - res_msg
    - res_len
    - ms_timeout
    argTypes:
    - qb_ipcc_connection_t*
    - struct iovec*
    - uint32_t
    - void*
    - size_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 417
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 417
    functionName: qb_ipcc_sendv_recv
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached:
    - qb_util_perror
    - qb_ipcc_sendv
    - qb_ipcc_recv
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t qb_ipcc_sendv_recv(qb_ipcc_connection_t * c,\t\t const struct
      iovec * iov, uint32_t iov_len,\t\t void *res_msg, size_t res_len, int32_t ms_timeout) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libqb/lib/ipcc.c:35,1
    - Dst: strlcpy
      Src: /src/libqb/lib/ipcc.c:42,1
    - Dst: QB_MAX
      Src: /src/libqb/lib/ipcc.c:40,1
    - Dst: qb_ipcc_us_setup_connect
      Src: /src/libqb/lib/ipcc.c:43,1
    - Dst: qb_ipc_us_ready
      Src: /src/libqb/lib/ipcc.c:47,1
    - Dst: qb_ipcc_connect_continue
      Src: /src/libqb/lib/ipcc.c:48,1
    - Dst: qb_ipcc_us_sock_close
      Src: /src/libqb/lib/ipcc.c:59,1
    - Dst: free
      Src: /src/libqb/lib/ipcc.c:61,1
    - Dst: free
      Src: /src/libqb/lib/ipcc.c:62,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 2
    argNames:
    - name
    - max_msg_size
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 65
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 65
    functionName: qb_ipcc_connect
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached:
    - qb_ipcc_us_sock_close
    - qb_ipc_us_ready
    - qb_ipcc_connect_continue
    - qb_ipcc_us_setup_connect
    - calloc
    - free
    - strlcpy
    - QB_MAX
    linkageType: ''
    returnType: qb_ipcc_connection_t*
    signature: 'qb_ipcc_connection_t *qb_ipcc_connect(const char *name, size_t max_msg_size) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipc_us_sock_error_is_disconnected
      Src: /src/libqb/lib/ipcc.c:205,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipcc.c:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - c
    - res
    argTypes:
    - struct qb_ipcc_connection*
    - int32_t
    constantsTouched: []
    func_position:
      end: 213
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 213
    functionName: _check_connection_state
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached:
    - qb_util_perror
    - qb_ipc_us_sock_error_is_disconnected
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _check_connection_state(struct qb_ipcc_connection *
      c, int32_t res) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcc_connection*
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: _response_sock_one_way_get
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct qb_ipc_one_way*
    signature: 'static struct qb_ipc_one_way *_response_sock_one_way_get(struct qb_ipcc_connection
      * c) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - c
    - fd
    argTypes:
    - struct qb_ipcc_connection*
    - int32_t*
    constantsTouched: []
    func_position:
      end: 431
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 431
    functionName: qb_ipcc_fd_get
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_ipcc_fd_get(struct qb_ipcc_connection * c, int32_t * fd) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libqb/lib/ipcc.c:74,1
    - Dst: strlcpy
      Src: /src/libqb/lib/ipcc.c:81,1
    - Dst: QB_MAX
      Src: /src/libqb/lib/ipcc.c:79,1
    - Dst: qb_ipcc_us_setup_connect
      Src: /src/libqb/lib/ipcc.c:82,1
    - Dst: qb_ipcc_us_sock_close
      Src: /src/libqb/lib/ipcc.c:92,1
    - Dst: free
      Src: /src/libqb/lib/ipcc.c:94,1
    - Dst: free
      Src: /src/libqb/lib/ipcc.c:95,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 3
    argNames:
    - name
    - max_msg_size
    - connect_fd
    argTypes:
    - char*
    - size_t
    - int*
    constantsTouched: []
    func_position:
      end: 98
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 98
    functionName: qb_ipcc_connect_async
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached:
    - qb_ipcc_us_sock_close
    - qb_ipcc_us_setup_connect
    - calloc
    - free
    - strlcpy
    - QB_MAX
    linkageType: ''
    returnType: qb_ipcc_connection_t*
    signature: 'qb_ipcc_connection_t *qb_ipcc_connect_async(const char *name, size_t
      max_msg_size, int *connect_fd) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipc_us_send
      Src: /src/libqb/lib/ipcc.c:318,1
    - Dst: _check_connection_state
      Src: /src/libqb/lib/ipcc.c:327,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 3
    argNames:
    - c
    - iov
    - iov_len
    argTypes:
    - struct qb_ipcc_connection*
    - struct iovec*
    - size_t
    constantsTouched: []
    func_position:
      end: 328
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 328
    functionName: qb_ipcc_sendv
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached:
    - qb_ipc_us_send
    - _check_connection_state
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t qb_ipcc_sendv(struct qb_ipcc_connection * c, const struct
      iovec * iov,\t size_t iov_len) "
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 4
    argNames:
    - c
    - pid
    - uid
    - gid
    argTypes:
    - struct qb_ipcc_connection*
    - pid_t*
    - uid_t*
    - gid_t*
    constantsTouched: []
    func_position:
      end: 449
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 449
    functionName: qb_ipcc_auth_get
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_ipcc_auth_get(struct qb_ipcc_connection * c, pid_t *pid,
      uid_t *uid, gid_t *gid) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipcc.c:482,1
    - Dst: free
      Src: /src/libqb/lib/ipcc.c:494,1
    - Dst: _event_sock_one_way_get
      Src: /src/libqb/lib/ipcc.c:488,1
    - Dst: _check_connection_state_with
      Src: /src/libqb/lib/ipcc.c:489,1
    - Dst: free
      Src: /src/libqb/lib/ipcc.c:495,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcc_connection*
    constantsTouched: []
    func_position:
      end: 496
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 496
    functionName: qb_ipcc_disconnect
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached:
    - qb_util_log
    - _event_sock_one_way_get
    - free
    - _check_connection_state_with
    linkageType: ''
    returnType: void
    signature: 'void qb_ipcc_disconnect(struct qb_ipcc_connection *c) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcc_setup_connect_continue
      Src: /src/libqb/lib/ipcc.c:106,1
    - Dst: qb_ipcc_us_connect
      Src: /src/libqb/lib/ipcc.c:131,1
    - Dst: qb_ipcc_us_sock_close
      Src: /src/libqb/lib/ipcc.c:149,1
    - Dst: qb_ipcc_shm_connect
      Src: /src/libqb/lib/ipcc.c:128,1
    - Dst: calloc
      Src: /src/libqb/lib/ipcc.c:119,1
    - Dst: free
      Src: /src/libqb/lib/ipcc.c:151,1
    - Dst: free
      Src: /src/libqb/lib/ipcc.c:152,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcc_connection*
    constantsTouched: []
    func_position:
      end: 156
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 156
    functionName: qb_ipcc_connect_continue
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached:
    - qb_ipcc_us_sock_close
    - qb_ipcc_setup_connect_continue
    - calloc
    - free
    - qb_ipcc_shm_connect
    - qb_ipcc_us_connect
    linkageType: ''
    returnType: int
    signature: 'int qb_ipcc_connect_continue(struct qb_ipcc_connection * c) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _check_connection_state_with
      Src: /src/libqb/lib/ipcc.c:347,1
    - Dst: _response_sock_one_way_get
      Src: /src/libqb/lib/ipcc.c:348,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - c
    - msg_ptr
    - msg_len
    - ms_timeout
    argTypes:
    - struct qb_ipcc_connection*
    - void*
    - size_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 356
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 356
    functionName: qb_ipcc_recv
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached:
    - _check_connection_state_with
    - _response_sock_one_way_get
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t qb_ipcc_recv(struct qb_ipcc_connection * c, void *msg_ptr,\t
      size_t msg_len, int32_t ms_timeout) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _check_connection_state_with
      Src: /src/libqb/lib/ipcc.c:462,1
    - Dst: qb_ipc_us_recv
      Src: /src/libqb/lib/ipcc.c:469,1
    - Dst: _check_connection_state
      Src: /src/libqb/lib/ipcc.c:474,1
    - Dst: _event_sock_one_way_get
      Src: /src/libqb/lib/ipcc.c:462,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 4
    argNames:
    - c
    - msg_pt
    - msg_len
    - ms_timeout
    argTypes:
    - struct qb_ipcc_connection*
    - void*
    - size_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 475
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 475
    functionName: qb_ipcc_event_recv
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached:
    - _check_connection_state_with
    - _event_sock_one_way_get
    - _check_connection_state
    - qb_ipc_us_recv
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t qb_ipcc_event_recv(struct qb_ipcc_connection * c, void *msg_pt,\t\t
      size_t msg_len, int32_t ms_timeout) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - c
    - context
    argTypes:
    - struct qb_ipcc_connection*
    - void*
    constantsTouched: []
    func_position:
      end: 505
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 505
    functionName: qb_ipcc_context_set
    functionSourceFile: /src/libqb/lib/ipcc.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void qb_ipcc_context_set(struct qb_ipcc_connection *c, void *context) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: timerlist_expire
      Src: /src/libqb/lib/loop_timerlist.c:78,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/loop_timerlist.c:79,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 2
    argNames:
    - s
    - ms_timeout
    argTypes:
    - struct qb_loop_source*
    - int32_t
    constantsTouched: []
    func_position:
      end: 82
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 82
    functionName: expire_the_timers
    functionSourceFile: /src/libqb/lib/loop_timerlist.c
    functionUses: []
    functionsReached:
    - timerlist_expire
    - qb_util_log
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t expire_the_timers(struct qb_loop_source *s, int32_t
      ms_timeout) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libqb/lib/loop_timerlist.c:98,1
    - Dst: pthread_mutex_init
      Src: /src/libqb/lib/loop_timerlist.c:109,1
    - Dst: qb_array_create_2
      Src: /src/libqb/lib/loop_timerlist.c:107,1
    - Dst: timerlist_init
      Src: /src/libqb/lib/loop_timerlist.c:106,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct qb_loop*
    constantsTouched: []
    func_position:
      end: 112
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 112
    functionName: qb_loop_timer_create
    functionSourceFile: /src/libqb/lib/loop_timerlist.c
    functionUses: []
    functionsReached:
    - malloc
    - qb_array_create_2
    - timerlist_init
    - pthread_mutex_init
    linkageType: ''
    returnType: struct qb_loop_source*
    signature: 'struct qb_loop_source *qb_loop_timer_create(struct qb_loop *l) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_index
      Src: /src/libqb/lib/loop_timerlist.c:142,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 3
    argNames:
    - s
    - handle_in
    - timer_pt
    argTypes:
    - struct qb_timer_source*
    - qb_loop_timer_handle
    - struct qb_loop_timer**
    constantsTouched: []
    func_position:
      end: 151
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 151
    functionName: _timer_from_handle_
    functionSourceFile: /src/libqb/lib/loop_timerlist.c
    functionUses: []
    functionsReached:
    - qb_array_index
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t _timer_from_handle_(struct qb_timer_source *s,\t\t
      qb_loop_timer_handle handle_in,\t\t struct qb_loop_timer **timer_pt) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_default_get
      Src: /src/libqb/lib/loop_timerlist.c:193,1
    - Dst: qb_array_index
      Src: /src/libqb/lib/loop_timerlist.c:205,1
    - Dst: assert
      Src: /src/libqb/lib/loop_timerlist.c:205,1
    - Dst: pthread_mutex_lock
      Src: /src/libqb/lib/loop_timerlist.c:201,1
    - Dst: _get_empty_array_position_
      Src: /src/libqb/lib/loop_timerlist.c:204,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/loop_timerlist.c:212,1
    - Dst: pthread_mutex_unlock
      Src: /src/libqb/lib/loop_timerlist.c:215,1
    - Dst: random
      Src: /src/libqb/lib/loop_timerlist.c:224,1
    - Dst: timerlist_add_duration
      Src: /src/libqb/lib/loop_timerlist.c:234,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 40
    argCount: 6
    argNames:
    - lp
    - p
    - nsec_duration
    - data
    - timer_fn
    - timer_handle_out
    argTypes:
    - struct qb_loop*
    - enum qb_loop_priority
    - uint64_t
    - void*
    - qb_loop_timer_dispatch_fn
    - qb_loop_timer_handle*
    constantsTouched: []
    func_position:
      end: 237
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 237
    functionName: qb_loop_timer_add
    functionSourceFile: /src/libqb/lib/loop_timerlist.c
    functionUses: []
    functionsReached:
    - qb_array_index
    - pthread_mutex_unlock
    - assert
    - random
    - qb_list_init
    - timerlist_add_duration
    - pthread_mutex_lock
    - _get_empty_array_position_
    - qb_loop_default_get
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_loop_timer_add(struct qb_loop * lp,\t\t enum qb_loop_priority
      p,\t\t uint64_t nsec_duration,\t\t void *data,\t\t qb_loop_timer_dispatch_fn
      timer_fn,\t\t qb_loop_timer_handle * timer_handle_out) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_default_get
      Src: /src/libqb/lib/loop_timerlist.c:287,1
    - Dst: timerlist_expire_time
      Src: /src/libqb/lib/loop_timerlist.c:300,1
    - Dst: _timer_from_handle_
      Src: /src/libqb/lib/loop_timerlist.c:291,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 13
    argCount: 2
    argNames:
    - lp
    - th
    argTypes:
    - struct qb_loop*
    - qb_loop_timer_handle
    constantsTouched: []
    func_position:
      end: 301
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 301
    functionName: qb_loop_timer_expire_time_get
    functionSourceFile: /src/libqb/lib/loop_timerlist.c
    functionUses: []
    functionsReached:
    - _timer_from_handle_
    - timerlist_expire_time
    - qb_loop_default_get
    linkageType: ''
    returnType: uint64_t
    signature: 'uint64_t qb_loop_timer_expire_time_get(struct qb_loop * lp, qb_loop_timer_handle
      th) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libqb/lib/loop_timerlist.c:54,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - item
    - p
    argTypes:
    - struct qb_loop_item*
    - enum qb_loop_priority
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: timer_dispatch
    functionSourceFile: /src/libqb/lib/loop_timerlist.c
    functionUses: []
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: 'static void timer_dispatch(struct qb_loop_item *item, enum qb_loop_priority
      p) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: timerlist_msec_duration_to_expire
      Src: /src/libqb/lib/loop_timerlist.c:88,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 1
    argNames:
    - timer_source
    argTypes:
    - struct qb_loop_source*
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: qb_loop_timer_msec_duration_to_expire
    functionSourceFile: /src/libqb/lib/loop_timerlist.c
    functionUses: []
    functionsReached:
    - timerlist_msec_duration_to_expire
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_loop_timer_msec_duration_to_expire(struct qb_loop_source
      * timer_source) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libqb/lib/loop_timerlist.c:67,1
    - Dst: qb_loop_level_item_add
      Src: /src/libqb/lib/loop_timerlist.c:68,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: make_job_from_tmo
    functionSourceFile: /src/libqb/lib/loop_timerlist.c
    functionUses: []
    functionsReached:
    - qb_loop_level_item_add
    - assert
    linkageType: ''
    returnType: void
    signature: 'static void make_job_from_tmo(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timerlist_destroy
      Src: /src/libqb/lib/loop_timerlist.c:120,1
    - Dst: qb_array_free
      Src: /src/libqb/lib/loop_timerlist.c:121,1
    - Dst: free
      Src: /src/libqb/lib/loop_timerlist.c:122,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct qb_loop*
    constantsTouched: []
    func_position:
      end: 123
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 123
    functionName: qb_loop_timer_destroy
    functionSourceFile: /src/libqb/lib/loop_timerlist.c
    functionUses: []
    functionsReached:
    - timerlist_destroy
    - qb_array_free
    - free
    linkageType: ''
    returnType: void
    signature: 'void qb_loop_timer_destroy(struct qb_loop *l) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libqb/lib/loop_timerlist.c:161,1
    - Dst: qb_array_index
      Src: /src/libqb/lib/loop_timerlist.c:161,1
    - Dst: qb_array_grow
      Src: /src/libqb/lib/loop_timerlist.c:168,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_timer_source*
    constantsTouched: []
    func_position:
      end: 176
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 176
    functionName: _get_empty_array_position_
    functionSourceFile: /src/libqb/lib/loop_timerlist.c
    functionUses: []
    functionsReached:
    - qb_array_grow
    - qb_array_index
    - assert
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _get_empty_array_position_(struct qb_timer_source *s) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_default_get
      Src: /src/libqb/lib/loop_timerlist.c:248,1
    - Dst: timerlist_del
      Src: /src/libqb/lib/loop_timerlist.c:270,1
    - Dst: _timer_from_handle_
      Src: /src/libqb/lib/loop_timerlist.c:252,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/loop_timerlist.c:258,1
    - Dst: qb_loop_level_item_del
      Src: /src/libqb/lib/loop_timerlist.c:266,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/loop_timerlist.c:271,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 27
    argCount: 2
    argNames:
    - lp
    - th
    argTypes:
    - struct qb_loop*
    - qb_loop_timer_handle
    constantsTouched: []
    func_position:
      end: 276
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 276
    functionName: qb_loop_timer_del
    functionSourceFile: /src/libqb/lib/loop_timerlist.c
    functionUses: []
    functionsReached:
    - qb_loop_level_item_del
    - timerlist_del
    - qb_util_log
    - _timer_from_handle_
    - qb_loop_default_get
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_loop_timer_del(struct qb_loop * lp, qb_loop_timer_handle
      th) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_default_get
      Src: /src/libqb/lib/loop_timerlist.c:320,1
    - Dst: _timer_from_handle_
      Src: /src/libqb/lib/loop_timerlist.c:324,1
    - Dst: qb_util_nano_from_epoch_get
      Src: /src/libqb/lib/loop_timerlist.c:334,1
    - Dst: qb_util_nano_current_get
      Src: /src/libqb/lib/loop_timerlist.c:337,1
    - Dst: timerlist_expire_time
      Src: /src/libqb/lib/loop_timerlist.c:339,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 22
    argCount: 2
    argNames:
    - lp
    - th
    argTypes:
    - struct qb_loop*
    - qb_loop_timer_handle
    constantsTouched: []
    func_position:
      end: 346
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 346
    functionName: qb_loop_timer_expire_time_remaining
    functionSourceFile: /src/libqb/lib/loop_timerlist.c
    functionUses: []
    functionsReached:
    - qb_util_nano_current_get
    - timerlist_expire_time
    - qb_util_nano_from_epoch_get
    - _timer_from_handle_
    - qb_loop_default_get
    linkageType: ''
    returnType: uint64_t
    signature: 'uint64_t qb_loop_timer_expire_time_remaining(struct qb_loop * lp,
      qb_loop_timer_handle th) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_timer_expire_time_get
      Src: /src/libqb/lib/loop_timerlist.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - l
    - th
    argTypes:
    - qb_loop_t*
    - qb_loop_timer_handle
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: qb_loop_timer_is_running
    functionSourceFile: /src/libqb/lib/loop_timerlist.c
    functionUses: []
    functionsReached:
    - qb_loop_timer_expire_time_get
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_loop_timer_is_running(qb_loop_t *l, qb_loop_timer_handle
      th) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libqb/lib/strlcpy.c:32,1
    - Dst: QB_MIN
      Src: /src/libqb/lib/strlcpy.c:35,1
    - Dst: memcpy
      Src: /src/libqb/lib/strlcpy.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - dest
    - src
    - maxlen
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 41
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 41
    functionName: strlcpy
    functionSourceFile: /src/libqb/lib/strlcpy.c
    functionUses: []
    functionsReached:
    - strlen
    - QB_MIN
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: 'size_t strlcpy(char *dest, const char * src, size_t maxlen) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_hash_string
      Src: /src/libqb/lib/hashtable.c:95,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/hashtable.c:99,1
    - Dst: strcmp
      Src: /src/libqb/lib/hashtable.c:100,1
    - Dst: qb_list_for_each
      Src: /src/libqb/lib/hashtable.c:97,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 10
    argCount: 2
    argNames:
    - t
    - key
    argTypes:
    - struct hash_table*
    - char*
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: hashtable_lookup
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached:
    - qb_list_entry
    - strcmp
    - qb_list_for_each
    - qb_hash_string
    linkageType: ''
    returnType: struct hash_node*
    signature: 'static struct hash_node *hashtable_lookup(struct hash_table *t, const
      char *key) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/lib/hashtable.c:160,1
    - Dst: strcmp
      Src: /src/libqb/lib/hashtable.c:164,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/hashtable.c:163,1
    - Dst: hashtable_node_deref
      Src: /src/libqb/lib/hashtable.c:165,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 9
    argCount: 3
    argNames:
    - map
    - key
    - hash_entry
    argTypes:
    - struct qb_map*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 172
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 172
    functionName: hashtable_rm_with_hash
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached:
    - qb_list_entry
    - hashtable_node_deref
    - strcmp
    - qb_list_for_each_safe
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t hashtable_rm_with_hash(struct qb_map *map, const char
      *key, uint32_t hash_entry) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_lookup
      Src: /src/libqb/lib/hashtable.c:112,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 3
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - struct qb_map*
    - char*
    constantsTouched: []
    func_position:
      end: 117
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 117
    functionName: hashtable_get
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached:
    - hashtable_lookup
    linkageType: ''
    returnType: void*
    signature: 'static void *hashtable_get(struct qb_map *map, const char *key) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_hash_string
      Src: /src/libqb/lib/hashtable.c:180,1
    - Dst: hashtable_rm_with_hash
      Src: /src/libqb/lib/hashtable.c:181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - struct qb_map*
    - char*
    constantsTouched: []
    func_position:
      end: 182
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 182
    functionName: hashtable_rm
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached:
    - hashtable_rm_with_hash
    - qb_hash_string
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t hashtable_rm(struct qb_map *map, const char *key) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - value
    - valuelen
    - order
    argTypes:
    - void*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: hash_fnv
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t hash_fnv(const void *value, uint32_t valuelen, uint32_t
      order) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_hash_string
      Src: /src/libqb/lib/hashtable.c:193,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/hashtable.c:197,1
    - Dst: qb_list_for_each
      Src: /src/libqb/lib/hashtable.c:195,1
    - Dst: calloc
      Src: /src/libqb/lib/hashtable.c:205,1
    - Dst: strcmp
      Src: /src/libqb/lib/hashtable.c:198,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/hashtable.c:215,1
    - Dst: qb_list_add_tail
      Src: /src/libqb/lib/hashtable.c:216,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/hashtable.c:219,1
    - Dst: hashtable_notify
      Src: /src/libqb/lib/hashtable.c:221,1
    - Dst: hashtable_notify
      Src: /src/libqb/lib/hashtable.c:230,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 29
    argCount: 3
    argNames:
    - map
    - key
    - value
    argTypes:
    - struct qb_map*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 234
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 234
    functionName: hashtable_put
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached:
    - hashtable_notify
    - calloc
    - qb_list_entry
    - qb_list_init
    - strcmp
    - qb_list_add_tail
    - qb_list_for_each
    - qb_hash_string
    linkageType: ''
    returnType: void
    signature: 'static void hashtable_put(struct qb_map *map, const char *key, const
      void *value) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_lookup
      Src: /src/libqb/lib/hashtable.c:280,1
    - Dst: qb_list_for_each
      Src: /src/libqb/lib/hashtable.c:294,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/hashtable.c:316,1
    - Dst: malloc
      Src: /src/libqb/lib/hashtable.c:309,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/hashtable.c:295,1
    - Dst: qb_list_add_tail
      Src: /src/libqb/lib/hashtable.c:319,1
    - Dst: qb_list_add
      Src: /src/libqb/lib/hashtable.c:321,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 43
    argCount: 5
    argNames:
    - m
    - key
    - fn
    - events
    - user_data
    argTypes:
    - qb_map_t*
    - char*
    - qb_map_notify_fn
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 324
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 324
    functionName: hashtable_notify_add
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached:
    - malloc
    - qb_list_entry
    - qb_list_init
    - qb_list_add_tail
    - qb_list_for_each
    - qb_list_add
    - hashtable_lookup
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t hashtable_notify_add(qb_map_t * m, const char *key,\t\t
      qb_map_notify_fn fn, int32_t events, void *user_data) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_first_entry
      Src: /src/libqb/lib/hashtable.c:414,1
    - Dst: hashtable_node_deref
      Src: /src/libqb/lib/hashtable.c:428,1
    - Dst: qb_list_for_each_entry_from
      Src: /src/libqb/lib/hashtable.c:415,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 28
    argCount: 2
    argNames:
    - it
    - value
    argTypes:
    - qb_map_iter_t*
    - void**
    constantsTouched: []
    func_position:
      end: 435
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 435
    functionName: hashtable_iter_next
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached:
    - hashtable_node_deref
    - qb_list_first_entry
    - qb_list_for_each_entry_from
    linkageType: ''
    returnType: char*
    signature: 'static const char *hashtable_iter_next(qb_map_iter_t * it, void **value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_fnv
      Src: /src/libqb/lib/hashtable.c:85,1
    - Dst: strlen
      Src: /src/libqb/lib/hashtable.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - key
    - order
    argTypes:
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: qb_hash_string
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached:
    - strlen
    - hash_fnv
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t qb_hash_string(const void *key, uint32_t order) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_for_each
      Src: /src/libqb/lib/hashtable.c:244,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/hashtable.c:253,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/hashtable.c:245,1
    - Dst: qb_list_for_each
      Src: /src/libqb/lib/hashtable.c:252,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 22
    argCount: 6
    argNames:
    - t
    - n
    - event
    - key
    - old_value
    - value
    argTypes:
    - struct hash_table*
    - struct hash_node*
    - uint32_t
    - char*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 266
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 266
    functionName: hashtable_notify
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached:
    - qb_list_entry
    - qb_list_for_each
    linkageType: ''
    returnType: void
    signature: "static void hashtable_notify(struct hash_table *t, struct hash_node
      *n,\t\t uint32_t event, const char *key,\t\t void *old_value, void *value) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_lookup
      Src: /src/libqb/lib/hashtable.c:340,1
    - Dst: free
      Src: /src/libqb/lib/hashtable.c:358,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/hashtable.c:352,1
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/lib/hashtable.c:351,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/hashtable.c:357,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/hashtable.c:361,1
    - Dst: free
      Src: /src/libqb/lib/hashtable.c:362,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 33
    argCount: 6
    argNames:
    - m
    - key
    - fn
    - events
    - cmp_userdata
    - user_data
    argTypes:
    - qb_map_t*
    - char*
    - qb_map_notify_fn
    - int32_t
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 371
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 371
    functionName: hashtable_notify_del
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached:
    - qb_list_for_each_safe
    - qb_list_entry
    - qb_list_del
    - free
    - hashtable_lookup
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t hashtable_notify_del(qb_map_t * m, const char *key,\t\t
      qb_map_notify_fn fn, int32_t events,\t\t int32_t cmp_userdata, void *user_data) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libqb/lib/hashtable.c:440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - qb_map_iter_t*
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: hashtable_iter_free
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void hashtable_iter_free(qb_map_iter_t * i) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QB_MAX
      Src: /src/libqb/lib/hashtable.c:493,1
    - Dst: calloc
      Src: /src/libqb/lib/hashtable.c:498,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/hashtable.c:519,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/hashtable.c:515,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - max_size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 522
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 522
    functionName: qb_hashtable_create
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached:
    - calloc
    - QB_MAX
    - qb_list_init
    linkageType: ''
    returnType: qb_map_t*
    signature: 'qb_map_t *qb_hashtable_create(size_t max_size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_notify
      Src: /src/libqb/lib/hashtable.c:126,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/hashtable.c:131,1
    - Dst: free
      Src: /src/libqb/lib/hashtable.c:133,1
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/lib/hashtable.c:130,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/hashtable.c:132,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/hashtable.c:136,1
    - Dst: free
      Src: /src/libqb/lib/hashtable.c:137,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 10
    argCount: 2
    argNames:
    - t
    - hash_node
    argTypes:
    - struct hash_table*
    - struct hash_node*
    constantsTouched: []
    func_position:
      end: 138
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 138
    functionName: hashtable_node_destroy
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached:
    - hashtable_notify
    - qb_list_for_each_safe
    - qb_list_entry
    - qb_list_del
    - free
    linkageType: ''
    returnType: void
    signature: 'static void hashtable_node_destroy(struct hash_table *t, struct hash_node
      *hash_node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct qb_map*
    constantsTouched: []
    func_position:
      end: 378
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 378
    functionName: hashtable_count_get
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: 'static size_t hashtable_count_get(struct qb_map *map) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_node_destroy
      Src: /src/libqb/lib/hashtable.c:149,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 4
    argCount: 2
    argNames:
    - map
    - hash_node
    argTypes:
    - struct qb_map*
    - struct hash_node*
    constantsTouched: []
    func_position:
      end: 150
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 150
    functionName: hashtable_node_deref
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached:
    - hashtable_node_destroy
    linkageType: ''
    returnType: void
    signature: 'static void hashtable_node_deref(struct qb_map *map, struct hash_node
      *hash_node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libqb/lib/hashtable.c:383,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 2
    argNames:
    - map
    - prefix
    argTypes:
    - struct qb_map*
    - char*
    constantsTouched: []
    func_position:
      end: 391
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 391
    functionName: hashtable_iter_create
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached:
    - malloc
    linkageType: ''
    returnType: qb_map_iter_t*
    signature: 'static qb_map_iter_t *hashtable_iter_create(struct qb_map *map, const
      char *prefix) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_node_deref_under_bucket
      Src: /src/libqb/lib/hashtable.c:453,1
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/lib/hashtable.c:456,1
    - Dst: free
      Src: /src/libqb/lib/hashtable.c:459,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/hashtable.c:457,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/hashtable.c:458,1
    - Dst: free
      Src: /src/libqb/lib/hashtable.c:462,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 12
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct qb_map*
    constantsTouched: []
    func_position:
      end: 463
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 463
    functionName: hashtable_destroy
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached:
    - qb_list_for_each_safe
    - hashtable_node_deref_under_bucket
    - qb_list_entry
    - qb_list_del
    - free
    linkageType: ''
    returnType: void
    signature: 'static void hashtable_destroy(struct qb_map *map) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/lib/hashtable.c:473,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/hashtable.c:475,1
    - Dst: hashtable_node_deref
      Src: /src/libqb/lib/hashtable.c:476,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 6
    argCount: 2
    argNames:
    - map
    - hash_entry
    argTypes:
    - struct qb_map*
    - int32_t
    constantsTouched: []
    func_position:
      end: 479
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 479
    functionName: hashtable_node_deref_under_bucket
    functionSourceFile: /src/libqb/lib/hashtable.c
    functionUses: []
    functionsReached:
    - qb_list_entry
    - hashtable_node_deref
    - qb_list_for_each_safe
    linkageType: ''
    returnType: void
    signature: 'static void hashtable_node_deref_under_bucket(struct qb_map *map,
      int32_t hash_entry) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: new_child_node
      Src: /src/libqb/lib/trie.c:182,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/trie.c:203,1
    - Dst: malloc
      Src: /src/libqb/lib/trie.c:207,1
    - Dst: trie_destroy_node
      Src: /src/libqb/lib/trie.c:209,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 3
    argNames:
    - t
    - cur_node
    - seg_cnt
    argTypes:
    - struct trie*
    - struct trie_node*
    - int
    constantsTouched: []
    func_position:
      end: 220
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 220
    functionName: trie_node_split
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - qb_list_init
    - new_child_node
    - malloc
    - trie_destroy_node
    linkageType: ''
    returnType: struct trie_node*
    signature: 'static struct trie_node *trie_node_split(struct trie *t, struct trie_node
      *cur_node, int seg_cnt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trie_insert
      Src: /src/libqb/lib/trie.c:523,1
    - Dst: trie_notify
      Src: /src/libqb/lib/trie.c:537,1
    - Dst: trie_node_ref
      Src: /src/libqb/lib/trie.c:532,1
    - Dst: trie_notify
      Src: /src/libqb/lib/trie.c:534,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 11
    argCount: 3
    argNames:
    - map
    - key
    - value
    argTypes:
    - struct qb_map*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 542
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 542
    functionName: trie_put
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - trie_insert
    - trie_notify
    - trie_node_ref
    linkageType: ''
    returnType: void
    signature: 'static void trie_put(struct qb_map *map, const char *key, const void
      *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct qb_map_notifier*
    constantsTouched: []
    func_position:
      end: 584
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 584
    functionName: trie_notify_ref
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void trie_notify_ref(struct qb_map_notifier *f) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: trie_lookup
      Src: /src/libqb/lib/trie.c:632,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/trie.c:641,1
    - Dst: malloc
      Src: /src/libqb/lib/trie.c:655,1
    - Dst: trie_insert
      Src: /src/libqb/lib/trie.c:634,1
    - Dst: qb_list_for_each
      Src: /src/libqb/lib/trie.c:640,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/trie.c:663,1
    - Dst: qb_list_add_tail
      Src: /src/libqb/lib/trie.c:674,1
    - Dst: qb_list_add
      Src: /src/libqb/lib/trie.c:676,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 50
    argCount: 5
    argNames:
    - m
    - key
    - fn
    - events
    - user_data
    argTypes:
    - qb_map_t*
    - char*
    - qb_map_notify_fn
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 681
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 681
    functionName: trie_notify_add
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - malloc
    - qb_list_entry
    - qb_list_init
    - qb_list_add_tail
    - trie_insert
    - qb_list_for_each
    - trie_lookup
    - qb_list_add
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t trie_notify_add(qb_map_t * m, const char *key,\t\tqb_map_notify_fn
      fn, int32_t events, void *user_data) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libqb/lib/trie.c:727,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 8
    argCount: 2
    argNames:
    - map
    - prefix
    argTypes:
    - struct qb_map*
    - char*
    constantsTouched: []
    func_position:
      end: 737
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 737
    functionName: trie_iter_create
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - malloc
    linkageType: ''
    returnType: qb_map_iter_t*
    signature: 'static qb_map_iter_t *trie_iter_create(struct qb_map *map, const char
      *prefix) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct trie_node*
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: trie_node_alive
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t trie_node_alive(struct trie_node *node) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: TRIE_CHAR2INDEX
      Src: /src/libqb/lib/trie.c:228,1
    - Dst: qb_list_empty
      Src: /src/libqb/lib/trie.c:259,1
    - Dst: new_child_node
      Src: /src/libqb/lib/trie.c:254,1
    - Dst: new_child_node
      Src: /src/libqb/lib/trie.c:243,1
    - Dst: trie_node_split
      Src: /src/libqb/lib/trie.c:239,1
    - Dst: realloc
      Src: /src/libqb/lib/trie.c:263,1
    - Dst: new_child_node
      Src: /src/libqb/lib/trie.c:270,1
    - Dst: trie_node_split
      Src: /src/libqb/lib/trie.c:275,1
    - Dst: new_child_node
      Src: /src/libqb/lib/trie.c:279,1
    - Dst: TRIE_CHAR2INDEX
      Src: /src/libqb/lib/trie.c:289,1
    - Dst: new_child_node
      Src: /src/libqb/lib/trie.c:299,1
    - Dst: trie_node_split
      Src: /src/libqb/lib/trie.c:295,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 75
    argCount: 2
    argNames:
    - t
    - key
    argTypes:
    - struct trie*
    - char*
    constantsTouched: []
    func_position:
      end: 306
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 306
    functionName: trie_insert
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - realloc
    - TRIE_CHAR2INDEX
    - qb_list_empty
    - trie_node_split
    - new_child_node
    linkageType: ''
    returnType: struct trie_node*
    signature: 'static struct trie_node *trie_insert(struct trie *t, const char *key) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trie_lookup
      Src: /src/libqb/lib/trie.c:548,1
    - Dst: trie_node_deref
      Src: /src/libqb/lib/trie.c:550,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 5
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - struct qb_map*
    - char*
    constantsTouched: []
    func_position:
      end: 556
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 556
    functionName: trie_rm
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - trie_node_deref
    - trie_lookup
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t trie_rm(struct qb_map *map, const char *key) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/lib/trie.c:598,1
    - Dst: trie_notify_ref
      Src: /src/libqb/lib/trie.c:600,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/trie.c:599,1
    - Dst: trie_notify_deref
      Src: /src/libqb/lib/trie.c:615,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 24
    argCount: 5
    argNames:
    - n
    - event
    - key
    - old_value
    - value
    argTypes:
    - struct trie_node*
    - uint32_t
    - char*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 619
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 619
    functionName: trie_notify
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - trie_notify_deref
    - qb_list_entry
    - trie_notify_ref
    - qb_list_for_each_safe
    linkageType: ''
    returnType: void
    signature: "static void trie_notify(struct trie_node *n,\t uint32_t event, const
      char *key, void *old_value, void *value) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: trie_lookup
      Src: /src/libqb/lib/trie.c:695,1
    - Dst: trie_notify_deref
      Src: /src/libqb/lib/trie.c:707,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/trie.c:703,1
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/lib/trie.c:702,1
    - Dst: trie_notify_deref
      Src: /src/libqb/lib/trie.c:710,1
    - Dst: trie_node_release
      Src: /src/libqb/lib/trie.c:717,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 29
    argCount: 6
    argNames:
    - m
    - key
    - fn
    - events
    - cmp_userdata
    - user_data
    argTypes:
    - qb_map_t*
    - char*
    - qb_map_notify_fn
    - int32_t
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 722
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 722
    functionName: trie_notify_del
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - trie_node_release
    - qb_list_for_each_safe
    - qb_list_entry
    - trie_lookup
    - trie_notify_deref
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t trie_notify_del(qb_map_t * m, const char *key,\t\tqb_map_notify_fn
      fn, int32_t events,\t\tint32_t cmp_userdata, void *user_data) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: trie_lookup
      Src: /src/libqb/lib/trie.c:751,1
    - Dst: trie_node_ref
      Src: /src/libqb/lib/trie.c:766,1
    - Dst: trie_node_next
      Src: /src/libqb/lib/trie.c:755,1
    - Dst: trie_node_deref
      Src: /src/libqb/lib/trie.c:763,1
    - Dst: trie_node_next
      Src: /src/libqb/lib/trie.c:760,1
    - Dst: trie_node_deref
      Src: /src/libqb/lib/trie.c:767,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 26
    argCount: 2
    argNames:
    - i
    - value
    argTypes:
    - qb_map_iter_t*
    - void**
    constantsTouched: []
    func_position:
      end: 770
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 770
    functionName: trie_iter_next
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - trie_node_next
    - trie_node_deref
    - trie_lookup
    - trie_node_ref
    linkageType: ''
    returnType: char*
    signature: 'static const char *trie_iter_next(qb_map_iter_t * i, void **value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libqb/lib/trie.c:797,1
    - Dst: trie_new_node
      Src: /src/libqb/lib/trie.c:815,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 818
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 818
    functionName: qb_trie_create
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - malloc
    - trie_new_node
    linkageType: ''
    returnType: qb_map_t*
    signature: 'qb_map_t *qb_trie_create(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRIE_CHAR2INDEX
      Src: /src/libqb/lib/trie.c:313,1
    - Dst: TRIE_CHAR2INDEX
      Src: /src/libqb/lib/trie.c:334,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 24
    argCount: 3
    argNames:
    - t
    - key
    - exact_match
    argTypes:
    - struct trie*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 344
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 344
    functionName: trie_lookup
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - TRIE_CHAR2INDEX
    linkageType: ''
    returnType: struct trie_node*
    signature: 'static struct trie_node *trie_lookup(struct trie *t, const char *key,
      int exact_match) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 2
    argNames:
    - t
    - node
    argTypes:
    - struct trie*
    - struct trie_node*
    constantsTouched: []
    func_position:
      end: 430
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 430
    functionName: trie_node_ref
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void trie_node_ref(struct trie *t, struct trie_node *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trie_node_deref
      Src: /src/libqb/lib/trie.c:782,1
    - Dst: free
      Src: /src/libqb/lib/trie.c:784,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 5
    argCount: 1
    argNames:
    - i
    argTypes:
    - qb_map_iter_t*
    constantsTouched: []
    func_position:
      end: 785
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 785
    functionName: trie_iter_free
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - free
    - trie_node_deref
    linkageType: ''
    returnType: void
    signature: 'static void trie_iter_free(qb_map_iter_t * i) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_empty
      Src: /src/libqb/lib/trie.c:354,1
    - Dst: trie_node_release
      Src: /src/libqb/lib/trie.c:380,1
    - Dst: trie_destroy_node
      Src: /src/libqb/lib/trie.c:376,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 2
    argNames:
    - t
    - node
    argTypes:
    - struct trie*
    - struct trie_node*
    constantsTouched: []
    func_position:
      end: 382
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 382
    functionName: trie_node_release
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - trie_node_release
    - qb_list_empty
    - trie_destroy_node
    linkageType: ''
    returnType: void
    signature: 'static void trie_node_release(struct trie *t, struct trie_node *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trie_node_alive
      Src: /src/libqb/lib/trie.c:435,1
    - Dst: trie_node_destroy
      Src: /src/libqb/lib/trie.c:442,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 2
    argNames:
    - t
    - node
    argTypes:
    - struct trie*
    - struct trie_node*
    constantsTouched: []
    func_position:
      end: 443
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 443
    functionName: trie_node_deref
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - trie_node_destroy
    - trie_node_alive
    linkageType: ''
    returnType: void
    signature: 'static void trie_node_deref(struct trie *t, struct trie_node *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct qb_map*
    constantsTouched: []
    func_position:
      end: 792
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 792
    functionName: trie_count_get
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: 'static size_t trie_count_get(struct qb_map *map) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: trie_node_alive
      Src: /src/libqb/lib/trie.c:100,1
    - Dst: trie_node_alive
      Src: /src/libqb/lib/trie.c:126,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 37
    argCount: 3
    argNames:
    - node
    - root
    - all
    argTypes:
    - struct trie_node*
    - struct trie_node*
    - int
    constantsTouched: []
    func_position:
      end: 137
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 137
    functionName: trie_node_next
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - trie_node_alive
    linkageType: ''
    returnType: struct trie_node*
    signature: 'static struct trie_node *trie_node_next(struct trie_node *node, struct
      trie_node *root, int all) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trie_node_next
      Src: /src/libqb/lib/trie.c:454,1
    - Dst: free
      Src: /src/libqb/lib/trie.c:458,1
    - Dst: trie_node_destroy
      Src: /src/libqb/lib/trie.c:455,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 7
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct qb_map*
    constantsTouched: []
    func_position:
      end: 459
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 459
    functionName: trie_destroy
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - free
    - trie_node_destroy
    - trie_node_next
    linkageType: ''
    returnType: void
    signature: 'static void trie_destroy(struct qb_map *map) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libqb/lib/trie.c:473,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/trie.c:492,1
    - Dst: free
      Src: /src/libqb/lib/trie.c:481,1
    - Dst: calloc
      Src: /src/libqb/lib/trie.c:479,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 16
    argCount: 2
    argNames:
    - t
    - parent
    argTypes:
    - struct trie*
    - struct trie_node*
    constantsTouched: []
    func_position:
      end: 494
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 494
    functionName: trie_new_node
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - calloc
    - qb_list_init
    - free
    linkageType: ''
    returnType: struct trie_node*
    signature: 'static struct trie_node *trie_new_node(struct trie *t, struct trie_node
      *parent) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRIE_CHAR2INDEX
      Src: /src/libqb/lib/trie.c:145,1
    - Dst: trie_new_node
      Src: /src/libqb/lib/trie.c:160,1
    - Dst: QB_MAX
      Src: /src/libqb/lib/trie.c:149,1
    - Dst: realloc
      Src: /src/libqb/lib/trie.c:151,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 3
    argNames:
    - t
    - parent
    - ch
    argTypes:
    - struct trie*
    - struct trie_node*
    - char
    constantsTouched: []
    func_position:
      end: 167
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 167
    functionName: new_child_node
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - QB_MAX
    - realloc
    - TRIE_CHAR2INDEX
    - trie_new_node
    linkageType: ''
    returnType: struct trie_node*
    signature: 'static struct trie_node *new_child_node(struct trie *t, struct trie_node
      * parent, char ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libqb/lib/trie.c:464,1
    - Dst: free
      Src: /src/libqb/lib/trie.c:465,1
    - Dst: free
      Src: /src/libqb/lib/trie.c:466,1
    - Dst: free
      Src: /src/libqb/lib/trie.c:467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct trie_node*
    constantsTouched: []
    func_position:
      end: 468
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 468
    functionName: trie_destroy_node
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void trie_destroy_node(struct trie_node *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libqb/lib/trie.c:507,1
    - Dst: trie_node_next
      Src: /src/libqb/lib/trie.c:515,1
    - Dst: trie_print_node
      Src: /src/libqb/lib/trie.c:513,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 1
    argNames:
    - m
    argTypes:
    - qb_map_t*
    constantsTouched: []
    func_position:
      end: 517
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 517
    functionName: qb_trie_dump
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - trie_node_next
    - printf
    - trie_print_node
    linkageType: ''
    returnType: void
    signature: 'void qb_trie_dump(qb_map_t* m) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trie_notify
      Src: /src/libqb/lib/trie.c:390,1
    - Dst: trie_node_release
      Src: /src/libqb/lib/trie.c:395,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - t
    - n
    argTypes:
    - struct trie*
    - struct trie_node*
    constantsTouched: []
    func_position:
      end: 396
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 396
    functionName: trie_node_destroy
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - trie_node_release
    - trie_notify
    linkageType: ''
    returnType: void
    signature: 'static void trie_node_destroy(struct trie *t, struct trie_node *n) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trie_lookup
      Src: /src/libqb/lib/trie.c:562,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 3
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - struct qb_map*
    - char*
    constantsTouched: []
    func_position:
      end: 568
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 568
    functionName: trie_get
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - trie_lookup
    linkageType: ''
    returnType: void*
    signature: 'static void *trie_get(struct qb_map *map, const char *key) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trie_print_node
      Src: /src/libqb/lib/trie.c:404,1
    - Dst: printf
      Src: /src/libqb/lib/trie.c:412,1
    - Dst: printf
      Src: /src/libqb/lib/trie.c:410,1
    - Dst: printf
      Src: /src/libqb/lib/trie.c:416,1
    - Dst: TRIE_INDEX2CHAR
      Src: /src/libqb/lib/trie.c:410,1
    - Dst: printf
      Src: /src/libqb/lib/trie.c:419,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 3
    argNames:
    - n
    - r
    - suffix
    argTypes:
    - struct trie_node*
    - struct trie_node*
    - char*
    constantsTouched: []
    func_position:
      end: 421
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 421
    functionName: trie_print_node
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - TRIE_INDEX2CHAR
    - printf
    - trie_print_node
    linkageType: ''
    returnType: void
    signature: 'static void trie_print_node(struct trie_node *n, struct trie_node
      *r, const char *suffix) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_del
      Src: /src/libqb/lib/trie.c:575,1
    - Dst: free
      Src: /src/libqb/lib/trie.c:576,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct qb_map_notifier*
    constantsTouched: []
    func_position:
      end: 578
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 578
    functionName: trie_notify_deref
    functionSourceFile: /src/libqb/lib/trie.c
    functionUses: []
    functionsReached:
    - qb_list_del
    - free
    linkageType: ''
    returnType: void
    signature: 'static void trie_notify_deref(struct qb_map_notifier *f) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_index
      Src: /src/libqb/lib/log_dcs.c:49,1
    - Dst: qb_log_callsites_register
      Src: /src/libqb/lib/log_dcs.c:54,1
    - Dst: assert
      Src: /src/libqb/lib/log_dcs.c:55,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - a
    - bin
    argTypes:
    - qb_array_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 57
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 57
    functionName: _log_register_callsites
    functionSourceFile: /src/libqb/lib/log_dcs.c
    functionUses: []
    functionsReached:
    - qb_array_index
    - qb_log_callsites_register
    - assert
    linkageType: ''
    returnType: void
    signature: 'static void _log_register_callsites(qb_array_t * a, uint32_t bin) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_index
      Src: /src/libqb/lib/log_dcs.c:114,1
    - Dst: qb_thread_lock
      Src: /src/libqb/lib/log_dcs.c:122,1
    - Dst: strcmp
      Src: /src/libqb/lib/log_dcs.c:126,1
    - Dst: strcmp
      Src: /src/libqb/lib/log_dcs.c:125,1
    - Dst: assert
      Src: /src/libqb/lib/log_dcs.c:115,1
    - Dst: strcmp
      Src: /src/libqb/lib/log_dcs.c:127,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/log_dcs.c:128,1
    - Dst: _log_dcs_new_cs
      Src: /src/libqb/lib/log_dcs.c:136,1
    - Dst: assert
      Src: /src/libqb/lib/log_dcs.c:144,1
    - Dst: strcmp
      Src: /src/libqb/lib/log_dcs.c:146,1
    - Dst: _log_dcs_new_cs
      Src: /src/libqb/lib/log_dcs.c:159,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/log_dcs.c:169,1
    - Dst: calloc
      Src: /src/libqb/lib/log_dcs.c:155,1
    - Dst: strcmp
      Src: /src/libqb/lib/log_dcs.c:147,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 64
    argCount: 8
    argNames:
    - newly_created
    - message_id
    - function
    - filename
    - format
    - priority
    - lineno
    - tags
    argTypes:
    - int32_t*
    - char*
    - char*
    - char*
    - char*
    - uint8_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 172
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 172
    functionName: qb_log_dcs_get
    functionSourceFile: /src/libqb/lib/log_dcs.c
    functionUses: []
    functionsReached:
    - qb_thread_unlock
    - qb_thread_lock
    - qb_array_index
    - assert
    - calloc
    - strcmp
    - _log_dcs_new_cs
    linkageType: ''
    returnType: struct qb_log_callsite*
    signature: "struct qb_log_callsite *qb_log_dcs_get(int32_t * newly_created,\t
      const char *message_id,\t const char *function,\t const char *filename,\t const
      char *format,\t uint8_t priority, uint32_t lineno, uint32_t tags) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_num_bins_get
      Src: /src/libqb/lib/log_dcs.c:198,1
    - Dst: qb_array_index
      Src: /src/libqb/lib/log_dcs.c:214,1
    - Dst: qb_array_elems_per_bin_get
      Src: /src/libqb/lib/log_dcs.c:199,1
    - Dst: free
      Src: /src/libqb/lib/log_dcs.c:209,1
    - Dst: qb_array_index
      Src: /src/libqb/lib/log_dcs.c:202,1
    - Dst: free
      Src: /src/libqb/lib/log_dcs.c:216,1
    - Dst: free
      Src: /src/libqb/lib/log_dcs.c:217,1
    - Dst: free
      Src: /src/libqb/lib/log_dcs.c:218,1
    - Dst: qb_array_free
      Src: /src/libqb/lib/log_dcs.c:222,1
    - Dst: qb_array_free
      Src: /src/libqb/lib/log_dcs.c:223,1
    - Dst: qb_thread_lock_destroy
      Src: /src/libqb/lib/log_dcs.c:224,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 225
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 225
    functionName: qb_log_dcs_fini
    functionSourceFile: /src/libqb/lib/log_dcs.c
    functionUses: []
    functionsReached:
    - qb_array_index
    - qb_thread_lock_destroy
    - qb_array_num_bins_get
    - qb_array_elems_per_bin_get
    - free
    - qb_array_free
    linkageType: ''
    returnType: void
    signature: 'void qb_log_dcs_fini(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_index
      Src: /src/libqb/lib/log_dcs.c:67,1
    - Dst: assert
      Src: /src/libqb/lib/log_dcs.c:71,1
    - Dst: strdup
      Src: /src/libqb/lib/log_dcs.c:74,1
    - Dst: assert
      Src: /src/libqb/lib/log_dcs.c:70,1
    - Dst: strdup
      Src: /src/libqb/lib/log_dcs.c:73,1
    - Dst: strdup
      Src: /src/libqb/lib/log_dcs.c:75,1
    - Dst: strdup
      Src: /src/libqb/lib/log_dcs.c:76,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 7
    argNames:
    - message_id
    - function
    - filename
    - format
    - priority
    - lineno
    - tags
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - uint8_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 82
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 82
    functionName: _log_dcs_new_cs
    functionSourceFile: /src/libqb/lib/log_dcs.c
    functionUses: []
    functionsReached:
    - strdup
    - qb_array_index
    - assert
    linkageType: ''
    returnType: struct qb_log_callsite*
    signature: "static struct qb_log_callsite *_log_dcs_new_cs(const char *message_id,\t\tconst
      char *function,\t\tconst char *filename,\t\tconst char *format,\t\tuint8_t priority,
      uint32_t lineno, uint32_t tags) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_create_2
      Src: /src/libqb/lib/log_dcs.c:179,1
    - Dst: qb_array_elems_per_bin_get
      Src: /src/libqb/lib/log_dcs.c:184,1
    - Dst: qb_array_create_2
      Src: /src/libqb/lib/log_dcs.c:180,1
    - Dst: qb_array_new_bin_cb_set
      Src: /src/libqb/lib/log_dcs.c:185,1
    - Dst: qb_thread_lock_create
      Src: /src/libqb/lib/log_dcs.c:182,1
    - Dst: assert
      Src: /src/libqb/lib/log_dcs.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 187
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 187
    functionName: qb_log_dcs_init
    functionSourceFile: /src/libqb/lib/log_dcs.c
    functionUses: []
    functionsReached:
    - assert
    - qb_array_elems_per_bin_get
    - qb_thread_lock_create
    - qb_array_create_2
    - qb_array_new_bin_cb_set
    linkageType: ''
    returnType: void
    signature: 'void qb_log_dcs_init(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_thread_lock
      Src: /src/libqb/lib/unix.c:419,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/unix.c:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - atomic
    - val
    argTypes:
    - int32_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 425
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 425
    functionName: qb_atomic_int_exchange_and_add
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - qb_thread_lock
    - qb_thread_unlock
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_atomic_int_exchange_and_add(volatile int32_t QB_GNUC_MAY_ALIAS
      * atomic,\t\t\t int32_t val) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_thread_lock
      Src: /src/libqb/lib/unix.c:430,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/unix.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - atomic
    - val
    argTypes:
    - int32_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 433
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 433
    functionName: qb_atomic_int_add
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - qb_thread_lock
    - qb_thread_unlock
    linkageType: ''
    returnType: void
    signature: 'void qb_atomic_int_add(volatile int32_t QB_GNUC_MAY_ALIAS * atomic,
      int32_t val) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlinkat
      Src: /src/libqb/lib/unix.c:346,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/unix.c:354,1
    - Dst: openat
      Src: /src/libqb/lib/unix.c:352,1
    - Dst: close
      Src: /src/libqb/lib/unix.c:358,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/unix.c:348,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - dirfd
    - path
    - truncate_fallback
    argTypes:
    - int32_t
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 363
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 363
    functionName: qb_sys_unlink_or_truncate_at
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - unlinkat
    - openat
    - qb_util_perror
    - close
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_sys_unlink_or_truncate_at(int32_t dirfd, const char *path,\t\t\t
      int32_t truncate_fallback) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/libqb/lib/unix.c:74,1
    - Dst: write
      Src: /src/libqb/lib/unix.c:90,1
    - Dst: free
      Src: /src/libqb/lib/unix.c:95,1
    - Dst: calloc
      Src: /src/libqb/lib/unix.c:83,1
    - Dst: QB_MIN
      Src: /src/libqb/lib/unix.c:75,1
    - Dst: free
      Src: /src/libqb/lib/unix.c:100,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 2
    argNames:
    - fd
    - bytes
    argTypes:
    - int
    - size_t
    constantsTouched: []
    func_position:
      end: 106
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 106
    functionName: local_fallocate
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - calloc
    - write
    - QB_MIN
    - free
    - sysconf
    linkageType: ''
    returnType: int
    signature: 'static int local_fallocate(int fd, size_t bytes) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_thread_lock
      Src: /src/libqb/lib/unix.c:441,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/unix.c:448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - atomic
    - oldval
    - newval
    argTypes:
    - int32_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 451
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 451
    functionName: qb_atomic_int_compare_and_exchange
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - qb_thread_lock
    - qb_thread_unlock
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_atomic_int_compare_and_exchange(volatile int32_t QB_GNUC_MAY_ALIAS
      * atomic,\t\t\t\t int32_t oldval, int32_t newval) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigaction
      Src: /src/libqb/lib/unix.c:376,1
    - Dst: sigaction
      Src: /src/libqb/lib/unix.c:378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - ctl
    argTypes:
    - enum qb_sigpipe_ctl
    constantsTouched: []
    func_position:
      end: 381
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 381
    functionName: qb_sigpipe_ctl
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - sigaction
    linkageType: ''
    returnType: void
    signature: 'void qb_sigpipe_ctl(enum qb_sigpipe_ctl ctl) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_thread_lock
      Src: /src/libqb/lib/unix.c:459,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/unix.c:466,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - atomic
    - oldval
    - newval
    argTypes:
    - void**
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 469
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 469
    functionName: qb_atomic_pointer_compare_and_exchange
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - qb_thread_lock
    - qb_thread_unlock
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_atomic_pointer_compare_and_exchange(volatile void *QB_GNUC_MAY_ALIAS
      *\t\t\t\t atomic, void *oldval, void *newval) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_thread_lock
      Src: /src/libqb/lib/unix.c:498,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/unix.c:500,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - atomic
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 503
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 503
    functionName: (qb_atomic_pointer_get)
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - qb_thread_lock
    - qb_thread_unlock
    linkageType: ''
    returnType: void*
    signature: 'void *(qb_atomic_pointer_get) (volatile void *QB_GNUC_MAY_ALIAS *
      atomic) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_thread_lock
      Src: /src/libqb/lib/unix.c:509,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/unix.c:511,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - atomic
    - newval
    argTypes:
    - void**
    - void*
    constantsTouched: []
    func_position:
      end: 512
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 512
    functionName: (qb_atomic_pointer_set)
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - qb_thread_lock
    - qb_thread_unlock
    linkageType: ''
    returnType: void
    signature: "void (qb_atomic_pointer_set) (volatile void *QB_GNUC_MAY_ALIAS * atomic,\t\t\t
      void *newval) "
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: open_mmap_file
      Src: /src/libqb/lib/unix.c:137,1
    - Dst: snprintf
      Src: /src/libqb/lib/unix.c:131,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/unix.c:150,1
    - Dst: local_fallocate
      Src: /src/libqb/lib/unix.c:177,1
    - Dst: strlcpy
      Src: /src/libqb/lib/unix.c:126,1
    - Dst: unlink
      Src: /src/libqb/lib/unix.c:201,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/unix.c:159,1
    - Dst: snprintf
      Src: /src/libqb/lib/unix.c:133,1
    - Dst: open_mmap_file
      Src: /src/libqb/lib/unix.c:142,1
    - Dst: local_fallocate
      Src: /src/libqb/lib/unix.c:192,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/unix.c:170,1
    - Dst: strchr
      Src: /src/libqb/lib/unix.c:120,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/unix.c:139,1
    - Dst: snprintf
      Src: /src/libqb/lib/unix.c:141,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/unix.c:145,1
    - Dst: ftruncate
      Src: /src/libqb/lib/unix.c:157,1
    - Dst: posix_fallocate
      Src: /src/libqb/lib/unix.c:168,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/unix.c:175,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/unix.c:185,1
    - Dst: close
      Src: /src/libqb/lib/unix.c:203,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 64
    argCount: 4
    argNames:
    - path
    - file
    - bytes
    - file_flags
    argTypes:
    - char*
    - char*
    - size_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 206
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 206
    functionName: qb_sys_mmap_file_open
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - open_mmap_file
    - strchr
    - unlink
    - strlcpy
    - qb_util_perror
    - ftruncate
    - posix_fallocate
    - local_fallocate
    - qb_util_log
    - snprintf
    - close
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_sys_mmap_file_open(char *path, const char *file, size_t
      bytes,\t\t uint32_t file_flags) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/libqb/lib/unix.c:294,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/unix.c:303,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/unix.c:311,1
    - Dst: fcntl
      Src: /src/libqb/lib/unix.c:308,1
    - Dst: fcntl
      Src: /src/libqb/lib/unix.c:300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 315
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 315
    functionName: qb_sys_fd_nonblock_cloexec_set
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - qb_util_log
    - fcntl
    - qb_util_perror
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_sys_fd_nonblock_cloexec_set(int32_t fd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/libqb/lib/unix.c:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 390
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 390
    functionName: qb_socket_nosigpipe
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: void
    signature: 'void qb_socket_nosigpipe(int32_t s) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 524
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 524
    functionName: qb_atomic_init
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void qb_atomic_init(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_bool_compare_and_swap
      Src: /src/libqb/lib/unix.c:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - atomic
    - oldval
    - newval
    argTypes:
    - int32_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 544
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 544
    functionName: qb_atomic_int_compare_and_exchange
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - __sync_bool_compare_and_swap
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_atomic_int_compare_and_exchange(volatile int32_t QB_GNUC_MAY_ALIAS
      * atomic,\t\t\t\t int32_t oldval, int32_t newval) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - atomic
    - newval
    argTypes:
    - int32_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 569
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 569
    functionName: (qb_atomic_int_set)
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void (qb_atomic_int_set) (volatile int32_t QB_GNUC_MAY_ALIAS * atomic,\t\t
      int32_t newval) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_atomic_int_get
      Src: /src/libqb/lib/unix.c:594,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - atomic
    argTypes:
    - int32_t*
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: (qb_atomic_int_get)
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - qb_atomic_int_get
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t (qb_atomic_int_get) (volatile int32_t QB_GNUC_MAY_ALIAS *
      atomic) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/libqb/lib/unix.c:236,1
    - Dst: mmap
      Src: /src/libqb/lib/unix.c:250,1
    - Dst: mmap
      Src: /src/libqb/lib/unix.c:262,1
    - Dst: mmap
      Src: /src/libqb/lib/unix.c:244,1
    - Dst: madvise
      Src: /src/libqb/lib/unix.c:259,1
    - Dst: madvise
      Src: /src/libqb/lib/unix.c:270,1
    - Dst: close
      Src: /src/libqb/lib/unix.c:273,1
    - Dst: close
      Src: /src/libqb/lib/unix.c:281,1
    - Dst: munmap
      Src: /src/libqb/lib/unix.c:285,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 3
    argNames:
    - fd
    - buf
    - bytes
    argTypes:
    - int32_t
    - void**
    - size_t
    constantsTouched: []
    func_position:
      end: 288
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 288
    functionName: qb_sys_circular_mmap
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - madvise
    - munmap
    - mmap
    - close
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_sys_circular_mmap(int32_t fd, void **buf, size_t bytes) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/libqb/lib/unix.c:322,1
    - Dst: truncate
      Src: /src/libqb/lib/unix.c:329,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/unix.c:331,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/unix.c:324,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - path
    - truncate_fallback
    argTypes:
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 337
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 337
    functionName: qb_sys_unlink_or_truncate
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - truncate
    - qb_util_perror
    - unlink
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_sys_unlink_or_truncate(const char *path, int32_t truncate_fallback) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_thread_lock_create
      Src: /src/libqb/lib/unix.c:408,1
    - Dst: assert
      Src: /src/libqb/lib/unix.c:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 411
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 411
    functionName: qb_atomic_init
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - qb_thread_lock_create
    - assert
    linkageType: ''
    returnType: void
    signature: 'void qb_atomic_init(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_fetch_and_add
      Src: /src/libqb/lib/unix.c:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - atomic
    - val
    argTypes:
    - int32_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 531
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 531
    functionName: qb_atomic_int_exchange_and_add
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - __sync_fetch_and_add
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_atomic_int_exchange_and_add(volatile int32_t QB_GNUC_MAY_ALIAS
      * atomic,\t\t\t int32_t val) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_bool_compare_and_swap
      Src: /src/libqb/lib/unix.c:550,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - atomic
    - oldval
    - newval
    argTypes:
    - void**
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 551
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 551
    functionName: qb_atomic_pointer_compare_and_exchange
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - __sync_bool_compare_and_swap
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_atomic_pointer_compare_and_exchange(volatile void *QB_GNUC_MAY_ALIAS
      *\t\t\t\t atomic, void *oldval, void *newval) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 1
    argNames:
    - atomic
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 576
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 576
    functionName: (qb_atomic_pointer_get)
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'void *(qb_atomic_pointer_get) (volatile void *QB_GNUC_MAY_ALIAS *
      atomic) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_atomic_int_set
      Src: /src/libqb/lib/unix.c:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - atomic
    - newval
    argTypes:
    - int32_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 602
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 602
    functionName: (qb_atomic_int_set)
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - qb_atomic_int_set
    linkageType: ''
    returnType: void
    signature: "void (qb_atomic_int_set) (volatile int32_t QB_GNUC_MAY_ALIAS * atomic,\t\t\t
      int32_t newval) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libqb/lib/unix.c:61,1
    - Dst: umask
      Src: /src/libqb/lib/unix.c:62,1
    - Dst: mkstemp
      Src: /src/libqb/lib/unix.c:63,1
    - Dst: umask
      Src: /src/libqb/lib/unix.c:64,1
    - Dst: open
      Src: /src/libqb/lib/unix.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - path
    - file_flags
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: open_mmap_file
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - umask
    - strstr
    - open
    - mkstemp
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t open_mmap_file(char *path, uint32_t file_flags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_thread_lock
      Src: /src/libqb/lib/unix.c:477,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/unix.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - atomic
    argTypes:
    - int32_t*
    constantsTouched: []
    func_position:
      end: 482
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 482
    functionName: (qb_atomic_int_get)
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - qb_thread_lock
    - qb_thread_unlock
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t (qb_atomic_int_get) (volatile int32_t QB_GNUC_MAY_ALIAS *
      atomic) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strerror_r
      Src: /src/libqb/lib/unix.c:49,1
    - Dst: strerror_r
      Src: /src/libqb/lib/unix.c:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - errnum
    - buf
    - buflen
    argTypes:
    - int
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: qb_strerror_r
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - strerror_r
    linkageType: ''
    returnType: char*
    signature: 'char *qb_strerror_r(int errnum, char *buf, size_t buflen) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_thread_lock
      Src: /src/libqb/lib/unix.c:488,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/unix.c:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - atomic
    - newval
    argTypes:
    - int32_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 491
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 491
    functionName: (qb_atomic_int_set)
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - qb_thread_lock
    - qb_thread_unlock
    linkageType: ''
    returnType: void
    signature: "void (qb_atomic_int_set) (volatile int32_t QB_GNUC_MAY_ALIAS * atomic,\t\t\t
      int32_t newval) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_fetch_and_add
      Src: /src/libqb/lib/unix.c:536,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - atomic
    - val
    argTypes:
    - int32_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 537
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 537
    functionName: qb_atomic_int_add
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - __sync_fetch_and_add
    linkageType: ''
    returnType: void
    signature: 'void qb_atomic_int_add(volatile int32_t QB_GNUC_MAY_ALIAS * atomic,
      int32_t val) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - atomic
    argTypes:
    - int32_t*
    constantsTouched: []
    func_position:
      end: 561
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 561
    functionName: (qb_atomic_int_get)
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t (qb_atomic_int_get) (volatile int32_t QB_GNUC_MAY_ALIAS *
      atomic) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - atomic
    - newval
    argTypes:
    - void**
    - void*
    constantsTouched: []
    func_position:
      end: 584
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 584
    functionName: (qb_atomic_pointer_set)
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void (qb_atomic_pointer_set) (volatile void *QB_GNUC_MAY_ALIAS * atomic,\t\t\t
      void *newval) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_atomic_pointer_get
      Src: /src/libqb/lib/unix.c:607,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - atomic
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 608
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 608
    functionName: (qb_atomic_pointer_get)
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - qb_atomic_pointer_get
    linkageType: ''
    returnType: void*
    signature: 'void *(qb_atomic_pointer_get) (volatile void *QB_GNUC_MAY_ALIAS *
      atomic) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_atomic_pointer_set
      Src: /src/libqb/lib/unix.c:614,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - atomic
    - newval
    argTypes:
    - void**
    - void*
    constantsTouched: []
    func_position:
      end: 615
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 615
    functionName: (qb_atomic_pointer_set)
    functionSourceFile: /src/libqb/lib/unix.c
    functionUses: []
    functionsReached:
    - qb_atomic_pointer_set
    linkageType: ''
    returnType: void
    signature: "void (qb_atomic_pointer_set) (volatile void *QB_GNUC_MAY_ALIAS * atomic,\t\t\t
      void *newval) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_empty
      Src: /src/libqb/lib/loop_job.c:57,1
    - Dst: qb_list_length
      Src: /src/libqb/lib/loop_job.c:58,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/loop_job.c:62,1
    - Dst: qb_list_splice_tail
      Src: /src/libqb/lib/loop_job.c:60,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - s
    - ms_timeout
    argTypes:
    - struct qb_loop_source*
    - int32_t
    constantsTouched: []
    func_position:
      end: 67
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 67
    functionName: get_more_jobs
    functionSourceFile: /src/libqb/lib/loop_job.c
    functionUses: []
    functionsReached:
    - qb_list_length
    - qb_list_empty
    - qb_list_init
    - qb_list_splice_tail
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t get_more_jobs(struct qb_loop_source *s, int32_t ms_timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libqb/lib/loop_job.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct qb_loop*
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: qb_loop_jobs_destroy
    functionSourceFile: /src/libqb/lib/loop_job.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void qb_loop_jobs_destroy(struct qb_loop *l) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_entry
      Src: /src/libqb/lib/loop_job.c:36,1
    - Dst: free
      Src: /src/libqb/lib/loop_job.c:39,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - item
    - p
    argTypes:
    - struct qb_loop_item*
    - enum qb_loop_priority
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: job_dispatch
    functionSourceFile: /src/libqb/lib/loop_job.c
    functionUses: []
    functionsReached:
    - qb_list_entry
    - free
    linkageType: ''
    returnType: void
    signature: 'static void job_dispatch(struct qb_loop_item *item, enum qb_loop_priority
      p) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_default_get
      Src: /src/libqb/lib/loop_job.c:98,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/loop_job.c:116,1
    - Dst: malloc
      Src: /src/libqb/lib/loop_job.c:106,1
    - Dst: qb_list_add_tail
      Src: /src/libqb/lib/loop_job.c:117,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 4
    argNames:
    - lp
    - p
    - data
    - dispatch_fn
    argTypes:
    - struct qb_loop*
    - enum qb_loop_priority
    - void*
    - qb_loop_job_dispatch_fn
    constantsTouched: []
    func_position:
      end: 120
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 120
    functionName: qb_loop_job_add
    functionSourceFile: /src/libqb/lib/loop_job.c
    functionUses: []
    functionsReached:
    - malloc
    - qb_list_add_tail
    - qb_list_init
    - qb_loop_default_get
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_loop_job_add(struct qb_loop *lp,\t\tenum qb_loop_priority
      p,\t\tvoid *data, qb_loop_job_dispatch_fn dispatch_fn) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libqb/lib/loop_job.c:72,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct qb_loop*
    constantsTouched: []
    func_position:
      end: 81
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 81
    functionName: qb_loop_jobs_create
    functionSourceFile: /src/libqb/lib/loop_job.c
    functionUses: []
    functionsReached:
    - malloc
    linkageType: ''
    returnType: struct qb_loop_source*
    signature: 'struct qb_loop_source *qb_loop_jobs_create(struct qb_loop *l) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_default_get
      Src: /src/libqb/lib/loop_job.c:132,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/loop_job.c:146,1
    - Dst: qb_list_for_each_entry
      Src: /src/libqb/lib/loop_job.c:141,1
    - Dst: free
      Src: /src/libqb/lib/loop_job.c:147,1
    - Dst: qb_list_for_each_entry
      Src: /src/libqb/lib/loop_job.c:152,1
    - Dst: qb_loop_level_item_del
      Src: /src/libqb/lib/loop_job.c:160,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/loop_job.c:161,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 36
    argCount: 4
    argNames:
    - lp
    - p
    - data
    - dispatch_fn
    argTypes:
    - struct qb_loop*
    - enum qb_loop_priority
    - void*
    - qb_loop_job_dispatch_fn
    constantsTouched: []
    func_position:
      end: 167
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 167
    functionName: qb_loop_job_del
    functionSourceFile: /src/libqb/lib/loop_job.c
    functionUses: []
    functionsReached:
    - qb_loop_level_item_del
    - qb_list_del
    - free
    - qb_list_for_each_entry
    - qb_util_log
    - qb_loop_default_get
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_loop_job_del(struct qb_loop *lp,\t\tenum qb_loop_priority
      p,\t\tvoid *data, qb_loop_job_dispatch_fn dispatch_fn) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock_getres
      Src: /src/libqb/lib/util.c:195,1
    - Dst: sysconf
      Src: /src/libqb/lib/util.c:201,1
    - Dst: clock_getres
      Src: /src/libqb/lib/util.c:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 202
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 202
    functionName: qb_util_nano_monotonic_hz
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached:
    - clock_getres
    - sysconf
    linkageType: ''
    returnType: uint64_t
    signature: 'uint64_t qb_util_nano_monotonic_hz(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libqb/lib/util.c:40,1
    - Dst: pthread_spin_init
      Src: /src/libqb/lib/util.c:49,1
    - Dst: free
      Src: /src/libqb/lib/util.c:59,1
    - Dst: pthread_mutex_init
      Src: /src/libqb/lib/util.c:54,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - type
    argTypes:
    - qb_thread_lock_type_t
    constantsTouched: []
    func_position:
      end: 62
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 62
    functionName: qb_thread_lock_create
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached:
    - malloc
    - free
    - pthread_mutex_init
    - pthread_spin_init
    linkageType: ''
    returnType: qb_thread_lock_t*
    signature: 'qb_thread_lock_t *qb_thread_lock_create(qb_thread_lock_type_t type) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/libqb/lib/util.c:208,1
    - Dst: gettimeofday
      Src: /src/libqb/lib/util.c:217,1
    - Dst: time
      Src: /src/libqb/lib/util.c:227,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ts
    argTypes:
    - struct timespec*
    constantsTouched: []
    func_position:
      end: 229
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 229
    functionName: qb_util_timespec_from_epoch_get
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached:
    - clock_gettime
    - time
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: 'void qb_util_timespec_from_epoch_get(struct timespec *ts) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - sw
    - receint
    - older
    argTypes:
    - qb_util_stopwatch_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 371
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 371
    functionName: qb_util_stopwatch_time_split_get
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t qb_util_stopwatch_time_split_get(qb_util_stopwatch_t *sw,\t\t\t\t
      uint32_t receint, uint32_t older) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libqb/lib/util.c:244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: qb_util_stopwatch_create
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached:
    - calloc
    linkageType: ''
    returnType: qb_util_stopwatch_t*
    signature: 'qb_util_stopwatch_t *qb_util_stopwatch_create(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_spin_lock
      Src: /src/libqb/lib/util.c:70,1
    - Dst: pthread_mutex_lock
      Src: /src/libqb/lib/util.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - tl
    argTypes:
    - qb_thread_lock_t*
    constantsTouched: []
    func_position:
      end: 77
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 77
    functionName: qb_thread_lock
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached:
    - pthread_spin_lock
    - pthread_mutex_lock
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_thread_lock(qb_thread_lock_t * tl) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/libqb/lib/util.c:157,1
    - Dst: qb_util_nano_from_epoch_get
      Src: /src/libqb/lib/util.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 162
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 162
    functionName: qb_util_nano_current_get
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached:
    - clock_gettime
    - qb_util_nano_from_epoch_get
    linkageType: ''
    returnType: uint64_t
    signature: 'uint64_t qb_util_nano_current_get(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_spin_unlock
      Src: /src/libqb/lib/util.c:85,1
    - Dst: pthread_mutex_unlock
      Src: /src/libqb/lib/util.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - tl
    argTypes:
    - qb_thread_lock_t*
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: qb_thread_unlock
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached:
    - pthread_spin_unlock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_thread_unlock(qb_thread_lock_t * tl) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/libqb/lib/util.c:170,1
    - Dst: gettimeofday
      Src: /src/libqb/lib/util.c:179,1
    - Dst: time
      Src: /src/libqb/lib/util.c:186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 187
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 187
    functionName: qb_util_nano_from_epoch_get
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached:
    - clock_gettime
    - time
    - gettimeofday
    linkageType: ''
    returnType: uint64_t
    signature: 'uint64_t qb_util_nano_from_epoch_get(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_spin_trylock
      Src: /src/libqb/lib/util.c:100,1
    - Dst: pthread_mutex_trylock
      Src: /src/libqb/lib/util.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - tl
    argTypes:
    - qb_thread_lock_t*
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: qb_thread_trylock
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached:
    - pthread_spin_trylock
    - pthread_mutex_trylock
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_thread_trylock(qb_thread_lock_t * tl) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libqb/lib/util.c:251,1
    - Dst: free
      Src: /src/libqb/lib/util.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - sw
    argTypes:
    - qb_util_stopwatch_t*
    constantsTouched: []
    func_position:
      end: 253
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 253
    functionName: qb_util_stopwatch_free
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'void qb_util_stopwatch_free(qb_util_stopwatch_t * sw) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_nano_current_get
      Src: /src/libqb/lib/util.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - sw
    argTypes:
    - qb_util_stopwatch_t*
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 267
    functionName: qb_util_stopwatch_stop
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached:
    - qb_util_nano_current_get
    linkageType: ''
    returnType: void
    signature: 'void qb_util_stopwatch_stop(qb_util_stopwatch_t * sw) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_stopwatch_us_elapsed_get
      Src: /src/libqb/lib/util.c:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - sw
    argTypes:
    - qb_util_stopwatch_t*
    constantsTouched: []
    func_position:
      end: 287
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 287
    functionName: qb_util_stopwatch_sec_elapsed_get
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached:
    - qb_util_stopwatch_us_elapsed_get
    linkageType: ''
    returnType: float
    signature: 'float qb_util_stopwatch_sec_elapsed_get(qb_util_stopwatch_t * sw) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_stopwatch_start
      Src: /src/libqb/lib/util.c:317,1
    - Dst: qb_util_nano_current_get
      Src: /src/libqb/lib/util.c:320,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - sw
    argTypes:
    - qb_util_stopwatch_t*
    constantsTouched: []
    func_position:
      end: 334
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 334
    functionName: qb_util_stopwatch_split
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached:
    - qb_util_stopwatch_start
    - qb_util_nano_current_get
    linkageType: ''
    returnType: uint64_t
    signature: 'uint64_t qb_util_stopwatch_split(qb_util_stopwatch_t *sw) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_spin_destroy
      Src: /src/libqb/lib/util.c:115,1
    - Dst: free
      Src: /src/libqb/lib/util.c:121,1
    - Dst: pthread_mutex_destroy
      Src: /src/libqb/lib/util.c:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - tl
    argTypes:
    - qb_thread_lock_t*
    constantsTouched: []
    func_position:
      end: 123
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 123
    functionName: qb_thread_lock_destroy
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached:
    - pthread_mutex_destroy
    - free
    - pthread_spin_destroy
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_thread_lock_destroy(qb_thread_lock_t * tl) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ts
    - ms
    argTypes:
    - struct timespec*
    - int32_t
    constantsTouched: []
    func_position:
      end: 149
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 149
    functionName: qb_timespec_add_ms
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void qb_timespec_add_ms(struct timespec *ts, int32_t ms) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_nano_current_get
      Src: /src/libqb/lib/util.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sw
    argTypes:
    - qb_util_stopwatch_t*
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: qb_util_stopwatch_start
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached:
    - qb_util_nano_current_get
    linkageType: ''
    returnType: void
    signature: 'void qb_util_stopwatch_start(qb_util_stopwatch_t * sw) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - sw
    argTypes:
    - qb_util_stopwatch_t*
    constantsTouched: []
    func_position:
      end: 276
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 276
    functionName: qb_util_stopwatch_us_elapsed_get
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: 'uint64_t qb_util_stopwatch_us_elapsed_get(qb_util_stopwatch_t * sw) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libqb/lib/util.c:295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - sw
    - max_splits
    - options
    argTypes:
    - qb_util_stopwatch_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 300
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 300
    functionName: qb_util_stopwatch_split_ctl
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached:
    - calloc
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_util_stopwatch_split_ctl(qb_util_stopwatch_t *sw, uint32_t
      max_splits, uint32_t options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - sw
    argTypes:
    - qb_util_stopwatch_t*
    constantsTouched: []
    func_position:
      end: 343
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 343
    functionName: qb_util_stopwatch_split_last
    functionSourceFile: /src/libqb/lib/util.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t qb_util_stopwatch_split_last(qb_util_stopwatch_t *sw) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libqb/lib/strlcat.c:34,1
    - Dst: strlen
      Src: /src/libqb/lib/strlcat.c:35,1
    - Dst: strlcpy
      Src: /src/libqb/lib/strlcat.c:38,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - dest
    - src
    - maxlen
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: strlcat
    functionSourceFile: /src/libqb/lib/strlcat.c
    functionUses: []
    functionsReached:
    - strlen
    - strlcpy
    linkageType: ''
    returnType: size_t
    signature: 'size_t strlcat(char *dest, const char * src, size_t maxlen) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_rb_chunk_write
      Src: /src/libqb/lib/ipc_shm.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - one_way
    - msg_ptr
    - msg_len
    argTypes:
    - struct qb_ipc_one_way*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: qb_ipc_shm_send
    functionSourceFile: /src/libqb/lib/ipc_shm.c
    functionUses: []
    functionsReached:
    - qb_rb_chunk_write
    linkageType: ''
    returnType: ssize_t
    signature: "static ssize_t qb_ipc_shm_send(struct qb_ipc_one_way *one_way,\t\tconst
      void *msg_ptr, size_t msg_len) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_rb_chunk_read
      Src: /src/libqb/lib/ipc_shm.c:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 4
    argNames:
    - one_way
    - msg_ptr
    - msg_len
    - ms_timeout
    argTypes:
    - struct qb_ipc_one_way*
    - void*
    - size_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 135
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 135
    functionName: qb_ipc_shm_recv
    functionSourceFile: /src/libqb/lib/ipc_shm.c
    functionUses: []
    functionsReached:
    - qb_rb_chunk_read
    linkageType: ''
    returnType: ssize_t
    signature: "static ssize_t qb_ipc_shm_recv(struct qb_ipc_one_way *one_way,\t\tvoid
      *msg_ptr, size_t msg_len, int32_t ms_timeout) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_rb_chunk_reclaim
      Src: /src/libqb/lib/ipc_shm.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - one_way
    argTypes:
    - struct qb_ipc_one_way*
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: qb_ipc_shm_reclaim
    functionSourceFile: /src/libqb/lib/ipc_shm.c
    functionUses: []
    functionsReached:
    - qb_rb_chunk_reclaim
    linkageType: ''
    returnType: void
    signature: 'static void qb_ipc_shm_reclaim(struct qb_ipc_one_way *one_way) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_rb_refcount_get
      Src: /src/libqb/lib/ipc_shm.c:171,1
    - Dst: qb_atomic_int_get
      Src: /src/libqb/lib/ipc_shm.c:177,1
    - Dst: qb_rb_shared_user_data_get
      Src: /src/libqb/lib/ipc_shm.c:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - one_way
    argTypes:
    - struct qb_ipc_one_way*
    constantsTouched: []
    func_position:
      end: 178
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 178
    functionName: qb_ipc_shm_fc_get
    functionSourceFile: /src/libqb/lib/ipc_shm.c
    functionUses: []
    functionsReached:
    - qb_atomic_int_get
    - qb_rb_shared_user_data_get
    - qb_rb_refcount_get
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t qb_ipc_shm_fc_get(struct qb_ipc_one_way *one_way) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: longjmp
      Src: /src/libqb/lib/ipc_shm.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - signal
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: catch_sigbus
    functionSourceFile: /src/libqb/lib/ipc_shm.c
    functionUses: []
    functionsReached:
    - longjmp
    linkageType: ''
    returnType: void
    signature: 'static void catch_sigbus(int signal) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_rb_open
      Src: /src/libqb/lib/ipc_shm.c:311,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_shm.c:323,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_shm.c:318,1
    - Dst: qb_rb_chmod
      Src: /src/libqb/lib/ipc_shm.c:326,1
    - Dst: qb_rb_chown
      Src: /src/libqb/lib/ipc_shm.c:321,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_shm.c:328,1
    - Dst: qb_rb_close
      Src: /src/libqb/lib/ipc_shm.c:334,1
    - Dst: qb_rb_lastref_and_ret
      Src: /src/libqb/lib/ipc_shm.c:334,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 3
    argNames:
    - c
    - ow
    - rb_name
    argTypes:
    - struct qb_ipcs_connection*
    - struct qb_ipc_one_way*
    - char*
    constantsTouched: []
    func_position:
      end: 336
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 336
    functionName: qb_ipcs_shm_rb_open
    functionSourceFile: /src/libqb/lib/ipc_shm.c
    functionUses: []
    functionsReached:
    - qb_rb_chmod
    - qb_rb_lastref_and_ret
    - qb_rb_open
    - qb_util_perror
    - qb_rb_chown
    - qb_rb_close
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t qb_ipcs_shm_rb_open(struct qb_ipcs_connection *c,\t\t
      struct qb_ipc_one_way *ow,\t\t const char *rb_name) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_rb_chunk_alloc
      Src: /src/libqb/lib/ipc_shm.c:109,1
    - Dst: qb_rb_chunk_commit
      Src: /src/libqb/lib/ipc_shm.c:119,1
    - Dst: memcpy
      Src: /src/libqb/lib/ipc_shm.c:116,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 3
    argNames:
    - one_way
    - iov
    - iov_len
    argTypes:
    - struct qb_ipc_one_way*
    - struct iovec*
    - size_t
    constantsTouched: []
    func_position:
      end: 124
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 124
    functionName: qb_ipc_shm_sendv
    functionSourceFile: /src/libqb/lib/ipc_shm.c
    functionUses: []
    functionsReached:
    - memcpy
    - qb_rb_chunk_commit
    - qb_rb_chunk_alloc
    linkageType: ''
    returnType: ssize_t
    signature: "static ssize_t qb_ipc_shm_sendv(struct qb_ipc_one_way *one_way,\t\t
      const struct iovec *iov, size_t iov_len) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_rb_chunk_peek
      Src: /src/libqb/lib/ipc_shm.c:145,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - one_way
    - data_out
    - ms_timeout
    argTypes:
    - struct qb_ipc_one_way*
    - void**
    - int32_t
    constantsTouched: []
    func_position:
      end: 150
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 150
    functionName: qb_ipc_shm_peek
    functionSourceFile: /src/libqb/lib/ipc_shm.c
    functionUses: []
    functionsReached:
    - qb_rb_chunk_peek
    linkageType: ''
    returnType: ssize_t
    signature: "static ssize_t qb_ipc_shm_peek(struct qb_ipc_one_way *one_way, void
      **data_out,\t\tint32_t ms_timeout) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_rb_shared_user_data_get
      Src: /src/libqb/lib/ipc_shm.c:162,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_shm.c:163,1
    - Dst: qb_atomic_int_set
      Src: /src/libqb/lib/ipc_shm.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - one_way
    - fc_enable
    argTypes:
    - struct qb_ipc_one_way*
    - int32_t
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: qb_ipc_shm_fc_set
    functionSourceFile: /src/libqb/lib/ipc_shm.c
    functionUses: []
    functionsReached:
    - qb_util_log
    - qb_atomic_int_set
    - qb_rb_shared_user_data_get
    linkageType: ''
    returnType: void
    signature: 'static void qb_ipc_shm_fc_set(struct qb_ipc_one_way *one_way, int32_t
      fc_enable) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_rb_chunks_used
      Src: /src/libqb/lib/ipc_shm.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - one_way
    argTypes:
    - struct qb_ipc_one_way*
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: qb_ipc_shm_q_len_get
    functionSourceFile: /src/libqb/lib/ipc_shm.c
    functionUses: []
    functionsReached:
    - qb_rb_chunks_used
    linkageType: ''
    returnType: ssize_t
    signature: 'static ssize_t qb_ipc_shm_q_len_get(struct qb_ipc_one_way *one_way) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libqb/lib/ipc_shm.c:266,1
    - Dst: sigaction
      Src: /src/libqb/lib/ipc_shm.c:271,1
    - Dst: setjmp
      Src: /src/libqb/lib/ipc_shm.c:273,1
    - Dst: sigemptyset
      Src: /src/libqb/lib/ipc_shm.c:269,1
    - Dst: memset
      Src: /src/libqb/lib/ipc_shm.c:267,1
    - Dst: qb_rb_close
      Src: /src/libqb/lib/ipc_shm.c:280,1
    - Dst: qb_rb_lastref_and_ret
      Src: /src/libqb/lib/ipc_shm.c:280,1
    - Dst: qb_rb_close
      Src: /src/libqb/lib/ipc_shm.c:283,1
    - Dst: qb_rb_lastref_and_ret
      Src: /src/libqb/lib/ipc_shm.c:283,1
    - Dst: qb_rb_close
      Src: /src/libqb/lib/ipc_shm.c:286,1
    - Dst: sigaction
      Src: /src/libqb/lib/ipc_shm.c:300,1
    - Dst: qb_rb_lastref_and_ret
      Src: /src/libqb/lib/ipc_shm.c:286,1
    - Dst: remove_tempdir
      Src: /src/libqb/lib/ipc_shm.c:301,1
    - Dst: qb_ipcc_us_sock_close
      Src: /src/libqb/lib/ipc_shm.c:294,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcs_connection*
    constantsTouched: []
    func_position:
      end: 302
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 302
    functionName: qb_ipcs_shm_disconnect
    functionSourceFile: /src/libqb/lib/ipc_shm.c
    functionUses: []
    functionsReached:
    - qb_ipcc_us_sock_close
    - remove_tempdir
    - setjmp
    - memset
    - qb_rb_lastref_and_ret
    - sigaction
    - qb_rb_close
    - sigemptyset
    linkageType: ''
    returnType: void
    signature: 'static void qb_ipcs_shm_disconnect(struct qb_ipcs_connection *c) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_shm.c:349,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_shm.c:353,1
    - Dst: strrchr
      Src: /src/libqb/lib/ipc_shm.c:358,1
    - Dst: qb_ipcs_shm_rb_open
      Src: /src/libqb/lib/ipc_shm.c:364,1
    - Dst: qb_ipcs_shm_rb_open
      Src: /src/libqb/lib/ipc_shm.c:370,1
    - Dst: qb_ipcs_shm_rb_open
      Src: /src/libqb/lib/ipc_shm.c:376,1
    - Dst: qb_rb_lastref_and_ret
      Src: /src/libqb/lib/ipc_shm.c:400,1
    - Dst: strlcpy
      Src: /src/libqb/lib/ipc_shm.c:357,1
    - Dst: qb_rb_lastref_and_ret
      Src: /src/libqb/lib/ipc_shm.c:403,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_shm.c:387,1
    - Dst: qb_rb_lastref_and_ret
      Src: /src/libqb/lib/ipc_shm.c:397,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_shm.c:347,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_shm.c:351,1
    - Dst: chown
      Src: /src/libqb/lib/ipc_shm.c:361,1
    - Dst: qb_rb_close
      Src: /src/libqb/lib/ipc_shm.c:400,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_shm.c:408,1
    - Dst: qb_rb_close
      Src: /src/libqb/lib/ipc_shm.c:403,1
    - Dst: qb_rb_close
      Src: /src/libqb/lib/ipc_shm.c:397,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 3
    argNames:
    - s
    - c
    - r
    argTypes:
    - struct qb_ipcs_service*
    - struct qb_ipcs_connection*
    - struct qb_ipc_connection_response*
    constantsTouched: []
    func_position:
      end: 411
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 411
    functionName: qb_ipcs_shm_connect
    functionSourceFile: /src/libqb/lib/ipc_shm.c
    functionUses: []
    functionsReached:
    - strrchr
    - qb_ipcs_shm_rb_open
    - qb_rb_lastref_and_ret
    - chown
    - strlcpy
    - qb_util_perror
    - qb_util_log
    - snprintf
    - qb_rb_close
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t qb_ipcs_shm_connect(struct qb_ipcs_service *s,\t\t
      struct qb_ipcs_connection *c,\t\t struct qb_ipc_connection_response *r) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_ipcs_service*
    constantsTouched: []
    func_position:
      end: 429
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 429
    functionName: qb_ipcs_shm_init
    functionSourceFile: /src/libqb/lib/ipc_shm.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void qb_ipcs_shm_init(struct qb_ipcs_service *s) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/libqb/lib/ipc_shm.c:56,1
    - Dst: rb_destructor
      Src: /src/libqb/lib/ipc_shm.c:80,1
    - Dst: qb_ipcc_us_sock_close
      Src: /src/libqb/lib/ipc_shm.c:78,1
    - Dst: nanosleep
      Src: /src/libqb/lib/ipc_shm.c:61,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_shm.c:74,1
    - Dst: qb_rb_lastref_and_ret
      Src: /src/libqb/lib/ipc_shm.c:80,1
    - Dst: rb_destructor
      Src: /src/libqb/lib/ipc_shm.c:81,1
    - Dst: qb_rb_lastref_and_ret
      Src: /src/libqb/lib/ipc_shm.c:81,1
    - Dst: rb_destructor
      Src: /src/libqb/lib/ipc_shm.c:82,1
    - Dst: qb_rb_lastref_and_ret
      Src: /src/libqb/lib/ipc_shm.c:82,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcc_connection*
    constantsTouched: []
    func_position:
      end: 83
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 83
    functionName: qb_ipcc_shm_disconnect
    functionSourceFile: /src/libqb/lib/ipc_shm.c
    functionUses: []
    functionsReached:
    - kill
    - qb_ipcc_us_sock_close
    - rb_destructor
    - qb_rb_lastref_and_ret
    - nanosleep
    - qb_util_log
    linkageType: ''
    returnType: void
    signature: 'static void qb_ipcc_shm_disconnect(struct qb_ipcc_connection *c) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libqb/lib/ipc_shm.c:202,1
    - Dst: qb_rb_open
      Src: /src/libqb/lib/ipc_shm.c:216,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_shm.c:213,1
    - Dst: qb_rb_open
      Src: /src/libqb/lib/ipc_shm.c:207,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_shm.c:222,1
    - Dst: qb_rb_open
      Src: /src/libqb/lib/ipc_shm.c:225,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_shm.c:231,1
    - Dst: qb_rb_close
      Src: /src/libqb/lib/ipc_shm.c:237,1
    - Dst: qb_rb_lastref_and_ret
      Src: /src/libqb/lib/ipc_shm.c:237,1
    - Dst: qb_rb_close
      Src: /src/libqb/lib/ipc_shm.c:240,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_shm.c:244,1
    - Dst: qb_rb_lastref_and_ret
      Src: /src/libqb/lib/ipc_shm.c:240,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - c
    - response
    argTypes:
    - struct qb_ipcc_connection*
    - struct qb_ipc_connection_response*
    constantsTouched: []
    func_position:
      end: 247
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 247
    functionName: qb_ipcc_shm_connect
    functionSourceFile: /src/libqb/lib/ipc_shm.c
    functionUses: []
    functionsReached:
    - qb_rb_lastref_and_ret
    - qb_rb_open
    - qb_util_perror
    - strlen
    - qb_rb_close
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_ipcc_shm_connect(struct qb_ipcc_connection * c,\t\t struct
      qb_ipc_connection_response * response) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - event
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: _poll_to_filter_
    functionSourceFile: /src/libqb/lib/loop_poll_kqueue.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _poll_to_filter_(int32_t event) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _poll_to_filter_
      Src: /src/libqb/lib/loop_poll_kqueue.c:92,1
    - Dst: kevent
      Src: /src/libqb/lib/loop_poll_kqueue.c:96,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/loop_poll_kqueue.c:104,1
    - Dst: EV_SET
      Src: /src/libqb/lib/loop_poll_kqueue.c:94,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 4
    argNames:
    - s
    - pe
    - fd
    - events
    argTypes:
    - struct qb_poll_source*
    - struct qb_poll_entry*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 107
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 107
    functionName: _del
    functionSourceFile: /src/libqb/lib/loop_poll_kqueue.c
    functionUses: []
    functionsReached:
    - qb_util_perror
    - kevent
    - EV_SET
    - _poll_to_filter_
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _del(struct qb_poll_source *s, struct qb_poll_entry
      *pe, int32_t fd, int32_t events) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _poll_to_filter_
      Src: /src/libqb/lib/loop_poll_kqueue.c:55,1
    - Dst: EV_SET
      Src: /src/libqb/lib/loop_poll_kqueue.c:57,1
    - Dst: kevent
      Src: /src/libqb/lib/loop_poll_kqueue.c:59,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/loop_poll_kqueue.c:62,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 4
    argNames:
    - s
    - pe
    - fd
    - events
    argTypes:
    - struct qb_poll_source*
    - struct qb_poll_entry*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 66
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 66
    functionName: _add
    functionSourceFile: /src/libqb/lib/loop_poll_kqueue.c
    functionUses: []
    functionsReached:
    - qb_util_perror
    - kevent
    - EV_SET
    - _poll_to_filter_
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _add(struct qb_poll_source *s, struct qb_poll_entry
      *pe, int32_t fd, int32_t events) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _poll_to_filter_
      Src: /src/libqb/lib/loop_poll_kqueue.c:73,1
    - Dst: _poll_to_filter_
      Src: /src/libqb/lib/loop_poll_kqueue.c:74,1
    - Dst: EV_SET
      Src: /src/libqb/lib/loop_poll_kqueue.c:76,1
    - Dst: EV_SET
      Src: /src/libqb/lib/loop_poll_kqueue.c:77,1
    - Dst: kevent
      Src: /src/libqb/lib/loop_poll_kqueue.c:79,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/loop_poll_kqueue.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - s
    - pe
    - fd
    - events
    argTypes:
    - struct qb_poll_source*
    - struct qb_poll_entry*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: _mod
    functionSourceFile: /src/libqb/lib/loop_poll_kqueue.c
    functionUses: []
    functionsReached:
    - qb_util_perror
    - kevent
    - EV_SET
    - _poll_to_filter_
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _mod(struct qb_poll_source *s, struct qb_poll_entry
      *pe, int32_t fd, int32_t events) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libqb/lib/loop_poll_kqueue.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_poll_source*
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: _fini
    functionSourceFile: /src/libqb/lib/loop_poll_kqueue.c
    functionUses: []
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: 'static void _fini(struct qb_poll_source *s) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: qb_timespec_add_ms
      Src: /src/libqb/lib/loop_poll_kqueue.c:123,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/loop_poll_kqueue.c:135,1
    - Dst: qb_poll_fds_usage_check_
      Src: /src/libqb/lib/loop_poll_kqueue.c:127,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/loop_poll_kqueue.c:144,1
    - Dst: kevent
      Src: /src/libqb/lib/loop_poll_kqueue.c:131,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/loop_poll_kqueue.c:150,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/loop_poll_kqueue.c:164,1
    - Dst: EV_SET
      Src: /src/libqb/lib/loop_poll_kqueue.c:169,1
    - Dst: kevent
      Src: /src/libqb/lib/loop_poll_kqueue.c:171,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/loop_poll_kqueue.c:175,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 55
    argCount: 2
    argNames:
    - src
    - ms_timeout
    argTypes:
    - struct qb_loop_source*
    - int32_t
    constantsTouched: []
    func_position:
      end: 192
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 192
    functionName: _poll_and_add_to_jobs_
    functionSourceFile: /src/libqb/lib/loop_poll_kqueue.c
    functionUses: []
    functionsReached:
    - kevent
    - EV_SET
    - qb_timespec_add_ms
    - qb_util_perror
    - qb_util_log
    - qb_poll_fds_usage_check_
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _poll_and_add_to_jobs_(struct qb_loop_source *src,
      int32_t ms_timeout) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kqueue
      Src: /src/libqb/lib/loop_poll_kqueue.c:197,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/loop_poll_kqueue.c:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_poll_source*
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: qb_kqueue_init
    functionSourceFile: /src/libqb/lib/loop_poll_kqueue.c
    functionUses: []
    functionsReached:
    - qb_util_perror
    - kqueue
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_kqueue_init(struct qb_poll_source *s) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _log_filter_apply_to_cs
      Src: /src/libqb/lib/log.c:678,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 8
    argNames:
    - sect
    - t
    - c
    - type
    - text
    - regex
    - high_priority
    - low_priority
    argTypes:
    - struct callsite_section*
    - uint32_t
    - enum qb_log_filter_conf
    - enum qb_log_filter_type
    - char*
    - regex_t*
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 682
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 682
    functionName: _log_filter_apply
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - _log_filter_apply_to_cs
    linkageType: ''
    returnType: void
    signature: "static void _log_filter_apply(struct callsite_section *sect,\t\t uint32_t
      t, enum qb_log_filter_conf c,\t\t enum qb_log_filter_type type,\t\t const char
      *text,\t\t regex_t *regex,\t\t uint8_t high_priority, uint8_t low_priority) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_rdlock
      Src: /src/libqb/lib/log.c:759,1
    - Dst: pthread_rwlock_unlock
      Src: /src/libqb/lib/log.c:762,1
    - Dst: _log_filter_apply
      Src: /src/libqb/lib/log.c:770,1
    - Dst: _log_filter_store
      Src: /src/libqb/lib/log.c:760,1
    - Dst: qb_list_for_each_entry
      Src: /src/libqb/lib/log.c:769,1
    - Dst: pthread_rwlock_unlock
      Src: /src/libqb/lib/log.c:772,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 39
    argCount: 6
    argNames:
    - t
    - c
    - type
    - text
    - high_priority
    - low_priority
    argTypes:
    - int32_t
    - enum qb_log_filter_conf
    - enum qb_log_filter_type
    - char*
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 774
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 774
    functionName: qb_log_filter_ctl2
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - pthread_rwlock_unlock
    - pthread_rwlock_rdlock
    - _log_filter_apply
    - qb_list_for_each_entry
    - _log_filter_store
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_log_filter_ctl2(int32_t t, enum qb_log_filter_conf c,\t\t
      enum qb_log_filter_type type, const char * text,\t\t uint8_t high_priority,
      uint8_t low_priority) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _log_target_state_set
      Src: /src/libqb/lib/log.c:910,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 916
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 916
    functionName: qb_log_target_alloc
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - _log_target_state_set
    linkageType: ''
    returnType: struct qb_log_target*
    signature: 'struct qb_log_target *qb_log_target_alloc(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _log_target_state_set
      Src: /src/libqb/lib/log.c:1038,1
    - Dst: qb_atomic_int_set
      Src: /src/libqb/lib/log.c:1042,1
    - Dst: qb_atomic_int_set
      Src: /src/libqb/lib/log.c:1040,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct qb_log_target*
    constantsTouched: []
    func_position:
      end: 1044
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1044
    functionName: _log_target_disable
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - qb_atomic_int_set
    - _log_target_state_set
    linkageType: ''
    returnType: void
    signature: 'static void _log_target_disable(struct qb_log_target *t) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_for_each_entry
      Src: /src/libqb/lib/log.c:790,1
    - Dst: _custom_filter_fn
      Src: /src/libqb/lib/log.c:793,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - fn
    argTypes:
    - qb_log_filter_fn
    constantsTouched: []
    func_position:
      end: 798
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 798
    functionName: qb_log_filter_fn_set
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - _custom_filter_fn
    - qb_list_for_each_entry
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_log_filter_fn_set(qb_log_filter_fn fn) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/lib/log.c:921,1
    - Dst: qb_log_format_set
      Src: /src/libqb/lib/log.c:925,1
    - Dst: _log_target_state_set
      Src: /src/libqb/lib/log.c:926,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct qb_log_target*
    constantsTouched: []
    func_position:
      end: 927
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 927
    functionName: qb_log_target_free
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - qb_log_format_set
    - _log_target_state_set
    - qb_log_filter_ctl
    linkageType: ''
    returnType: void
    signature: 'void qb_log_target_free(struct qb_log_target *t) '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_thread_pause
      Src: /src/libqb/lib/log.c:1066,1
    - Dst: _log_target_disable
      Src: /src/libqb/lib/log.c:1074,1
    - Dst: _log_target_enable
      Src: /src/libqb/lib/log.c:1072,1
    - Dst: strlcpy
      Src: /src/libqb/lib/log.c:1087,1
    - Dst: qb_atomic_int_set
      Src: /src/libqb/lib/log.c:1144,1
    - Dst: qb_atomic_int_set
      Src: /src/libqb/lib/log.c:1146,1
    - Dst: qb_log_thread_resume
      Src: /src/libqb/lib/log.c:1151,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 72
    argCount: 3
    argNames:
    - t
    - c
    - arg_not4directuse
    argTypes:
    - int32_t
    - enum qb_log_conf
    - qb_log_ctl2_arg_t
    constantsTouched: []
    func_position:
      end: 1154
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1154
    functionName: qb_log_ctl2
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - qb_log_thread_pause
    - qb_atomic_int_set
    - _log_target_enable
    - strlcpy
    - qb_log_thread_resume
    - _log_target_disable
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_log_ctl2(int32_t t, enum qb_log_conf c, qb_log_ctl2_arg_t
      arg_not4directuse) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: regfree
      Src: /src/libqb/lib/log.c:83,1
    - Dst: free
      Src: /src/libqb/lib/log.c:87,1
    - Dst: free
      Src: /src/libqb/lib/log.c:85,1
    - Dst: free
      Src: /src/libqb/lib/log.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - flt
    argTypes:
    - struct qb_log_filter*
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: _log_free_filter
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - free
    - regfree
    linkageType: ''
    returnType: void
    signature: 'static void _log_free_filter(struct qb_log_filter *flt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libqb/lib/log.c:296,1
    - Dst: va_end
      Src: /src/libqb/lib/log.c:298,1
    - Dst: qb_log_real_va_
      Src: /src/libqb/lib/log.c:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - cs
    - '...'
    argTypes:
    - struct qb_log_callsite*
    constantsTouched: []
    func_position:
      end: 299
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 299
    functionName: qb_log_real_
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - qb_log_real_va_
    linkageType: ''
    returnType: void
    signature: 'void qb_log_real_(struct qb_log_callsite *cs, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_callsite_get
      Src: /src/libqb/lib/log.c:440,1
    - Dst: qb_log_real_va_
      Src: /src/libqb/lib/log.c:443,1
    - Dst: va_start
      Src: /src/libqb/lib/log.c:442,1
    - Dst: va_end
      Src: /src/libqb/lib/log.c:444,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 6
    argNames:
    - function
    - filename
    - format
    - priority
    - lineno
    - tags
    - '...'
    argTypes:
    - char*
    - char*
    - char*
    - uint8_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 445
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 445
    functionName: qb_log_from_external_source
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - qb_log_callsite_get
    - va_start
    - va_end
    - qb_log_real_va_
    linkageType: ''
    returnType: void
    signature: "void qb_log_from_external_source(const char *function,\t\t\t const
      char *filename,\t\t\t const char *format,\t\t\t uint8_t priority,\t\t\t uint32_t
      lineno, uint32_t tags, ...) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_rdlock
      Src: /src/libqb/lib/log.c:479,1
    - Dst: pthread_rwlock_unlock
      Src: /src/libqb/lib/log.c:486,1
    - Dst: pthread_rwlock_unlock
      Src: /src/libqb/lib/log.c:482,1
    - Dst: qb_list_for_each_entry
      Src: /src/libqb/lib/log.c:480,1
    - Dst: calloc
      Src: /src/libqb/lib/log.c:488,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/log.c:494,1
    - Dst: pthread_rwlock_wrlock
      Src: /src/libqb/lib/log.c:496,1
    - Dst: qb_list_add
      Src: /src/libqb/lib/log.c:497,1
    - Dst: qb_list_for_each_entry
      Src: /src/libqb/lib/log.c:507,1
    - Dst: _log_filter_apply
      Src: /src/libqb/lib/log.c:508,1
    - Dst: _custom_filter_fn
      Src: /src/libqb/lib/log.c:522,1
    - Dst: qb_list_for_each_entry
      Src: /src/libqb/lib/log.c:513,1
    - Dst: _log_filter_apply
      Src: /src/libqb/lib/log.c:514,1
    - Dst: pthread_rwlock_unlock
      Src: /src/libqb/lib/log.c:518,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 46
    argCount: 2
    argNames:
    - _start
    - _stop
    argTypes:
    - struct qb_log_callsite*
    - struct qb_log_callsite*
    constantsTouched: []
    func_position:
      end: 529
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 529
    functionName: qb_log_callsites_register
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - pthread_rwlock_unlock
    - calloc
    - pthread_rwlock_rdlock
    - qb_list_init
    - _custom_filter_fn
    - _log_filter_apply
    - qb_list_for_each_entry
    - qb_list_add
    - pthread_rwlock_wrlock
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_log_callsites_register(struct qb_log_callsite *_start,\t\t\t
      struct qb_log_callsite *_stop) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_init
      Src: /src/libqb/lib/log.c:834,1
    - Dst: assert
      Src: /src/libqb/lib/log.c:835,1
    - Dst: strlcpy
      Src: /src/libqb/lib/log.c:844,1
    - Dst: qb_log_format_init
      Src: /src/libqb/lib/log.c:836,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/log.c:847,1
    - Dst: qb_log_dcs_init
      Src: /src/libqb/lib/log.c:850,1
    - Dst: qb_log_syslog_open
      Src: /src/libqb/lib/log.c:856,1
    - Dst: _log_target_state_set
      Src: /src/libqb/lib/log.c:857,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/lib/log.c:858,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - name
    - facility
    - priority
    argTypes:
    - char*
    - int32_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 860
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 860
    functionName: qb_log_init
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - assert
    - qb_log_format_init
    - qb_list_init
    - qb_log_dcs_init
    - qb_log_filter_ctl
    - pthread_rwlock_init
    - strlcpy
    - _log_target_state_set
    - qb_log_syslog_open
    linkageType: ''
    returnType: void
    signature: 'void qb_log_init(const char *name, int32_t facility, uint8_t priority) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_target_get
      Src: /src/libqb/lib/log.c:1000,1
    - Dst: qb_atomic_int_set
      Src: /src/libqb/lib/log.c:1003,1
    - Dst: qb_log_target_free
      Src: /src/libqb/lib/log.c:1007,1
    - Dst: qb_atomic_int_set
      Src: /src/libqb/lib/log.c:1005,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - t
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 1008
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 1008
    functionName: qb_log_custom_close
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - qb_atomic_int_set
    - qb_log_target_get
    - qb_log_target_free
    linkageType: ''
    returnType: void
    signature: 'void qb_log_custom_close(int32_t t) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libqb/lib/log.c:106,1
    - Dst: strcmp
      Src: /src/libqb/lib/log.c:123,1
    - Dst: strcmp
      Src: /src/libqb/lib/log.c:121,1
    - Dst: strchrnul
      Src: /src/libqb/lib/log.c:117,1
    - Dst: snprintf
      Src: /src/libqb/lib/log.c:118,1
    - Dst: regexec
      Src: /src/libqb/lib/log.c:143,1
    - Dst: strstr
      Src: /src/libqb/lib/log.c:151,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 49
    argCount: 6
    argNames:
    - cs
    - type
    - text
    - regex
    - high_priority
    - low_priority
    argTypes:
    - struct qb_log_callsite*
    - enum qb_log_filter_type
    - char*
    - regex_t*
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 158
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 158
    functionName: _cs_matches_filter_
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - regexec
    - strstr
    - strcmp
    - snprintf
    - strchrnul
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t _cs_matches_filter_(struct qb_log_callsite *cs,\t\t
      enum qb_log_filter_type type,\t\t const char *text,\t\t regex_t *regex,\t\t
      uint8_t high_priority,\t\t uint8_t low_priority) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_bit_is_set
      Src: /src/libqb/lib/log.c:311,1
    - Dst: qb_do_extended
      Src: /src/libqb/lib/log.c:312,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 12
    argCount: 3
    argNames:
    - cs
    - timestamp
    - buffer
    argTypes:
    - struct qb_log_callsite*
    - struct timespec*
    - char*
    constantsTouched: []
    func_position:
      end: 316
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 316
    functionName: qb_log_thread_log_write
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - qb_do_extended
    - qb_bit_is_set
    linkageType: ''
    returnType: void
    signature: "void qb_log_thread_log_write(struct qb_log_callsite *cs,\t\t\tstruct
      timespec *timestamp, const char *buffer) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libqb/lib/log.c:451,1
    - Dst: printf
      Src: /src/libqb/lib/log.c:456,1
    - Dst: printf
      Src: /src/libqb/lib/log.c:452,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - sect
    argTypes:
    - struct callsite_section*
    constantsTouched: []
    func_position:
      end: 462
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 462
    functionName: qb_log_callsites_dump_sect
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void qb_log_callsites_dump_sect(struct callsite_section *sect) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_rdlock
      Src: /src/libqb/lib/log.c:537,1
    - Dst: qb_list_length
      Src: /src/libqb/lib/log.c:538,1
    - Dst: qb_list_for_each_entry
      Src: /src/libqb/lib/log.c:541,1
    - Dst: printf
      Src: /src/libqb/lib/log.c:539,1
    - Dst: printf
      Src: /src/libqb/lib/log.c:540,1
    - Dst: qb_log_callsites_dump_sect
      Src: /src/libqb/lib/log.c:542,1
    - Dst: pthread_rwlock_unlock
      Src: /src/libqb/lib/log.c:544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 545
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 545
    functionName: qb_log_callsites_dump
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - pthread_rwlock_unlock
    - pthread_rwlock_rdlock
    - qb_list_for_each_entry
    - qb_log_callsites_dump_sect
    - qb_list_length
    - printf
    linkageType: ''
    returnType: void
    signature: 'void qb_log_callsites_dump(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_thread_stop
      Src: /src/libqb/lib/log.c:878,1
    - Dst: pthread_rwlock_destroy
      Src: /src/libqb/lib/log.c:879,1
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/lib/log.c:884,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/log.c:885,1
    - Dst: _log_target_disable
      Src: /src/libqb/lib/log.c:883,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/log.c:886,1
    - Dst: _log_free_filter
      Src: /src/libqb/lib/log.c:887,1
    - Dst: qb_log_format_fini
      Src: /src/libqb/lib/log.c:890,1
    - Dst: qb_log_dcs_fini
      Src: /src/libqb/lib/log.c:891,1
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/lib/log.c:892,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/log.c:893,1
    - Dst: free
      Src: /src/libqb/lib/log.c:895,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/log.c:898,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/log.c:899,1
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/lib/log.c:897,1
    - Dst: _log_free_filter
      Src: /src/libqb/lib/log.c:900,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/log.c:894,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 902
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 902
    functionName: qb_log_fini
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - qb_list_for_each_safe
    - qb_list_entry
    - pthread_rwlock_destroy
    - qb_list_del
    - qb_log_thread_stop
    - _log_free_filter
    - qb_log_dcs_fini
    - free
    - qb_log_format_fini
    - _log_target_disable
    linkageType: ''
    returnType: void
    signature: 'void qb_log_fini(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_stderr_open
      Src: /src/libqb/lib/log.c:1020,1
    - Dst: qb_log_blackbox_open
      Src: /src/libqb/lib/log.c:1024,1
    - Dst: _log_target_state_set
      Src: /src/libqb/lib/log.c:1027,1
    - Dst: qb_log_syslog_open
      Src: /src/libqb/lib/log.c:1022,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct qb_log_target*
    constantsTouched: []
    func_position:
      end: 1030
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1030
    functionName: _log_target_enable
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - _log_target_state_set
    - qb_log_blackbox_open
    - qb_log_stderr_open
    - qb_log_syslog_open
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _log_target_enable(struct qb_log_target *t) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_ctl2
      Src: /src/libqb/lib/log.c:1159,1
    - Dst: QB_LOG_CTL2_I32
      Src: /src/libqb/lib/log.c:1159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - t
    - c
    - arg
    argTypes:
    - int32_t
    - enum qb_log_conf
    - int32_t
    constantsTouched: []
    func_position:
      end: 1160
      start: 1156
    functionDepth: 0
    functionLinenumber: 1156
    functionLinenumberEnd: 1160
    functionName: qb_log_ctl
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - QB_LOG_CTL2_I32
    - qb_log_ctl2
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_log_ctl(int32_t t, enum qb_log_conf c, int32_t arg) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: qb_bit_clear
      Src: /src/libqb/lib/log.c:695,1
    - Dst: printf
      Src: /src/libqb/lib/log.c:718,1
    - Dst: _cs_matches_filter_
      Src: /src/libqb/lib/log.c:702,1
    - Dst: qb_bit_clear
      Src: /src/libqb/lib/log.c:710,1
    - Dst: qb_bit_set
      Src: /src/libqb/lib/log.c:708,1
    - Dst: printf
      Src: /src/libqb/lib/log.c:723,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 8
    argNames:
    - cs
    - t
    - c
    - type
    - text
    - regex
    - high_priority
    - low_priority
    argTypes:
    - struct qb_log_callsite*
    - uint32_t
    - enum qb_log_filter_conf
    - enum qb_log_filter_type
    - char*
    - regex_t*
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 728
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 728
    functionName: _log_filter_apply_to_cs
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - _cs_matches_filter_
    - qb_bit_clear
    - qb_bit_set
    - printf
    linkageType: ''
    returnType: void
    signature: "static void _log_filter_apply_to_cs(struct qb_log_callsite *cs,\t\t\tuint32_t
      t, enum qb_log_filter_conf c,\t\t\tenum qb_log_filter_type type,\t\t\tconst
      char *text,\t\t\tregex_t *regex,\t\t\tuint8_t high_priority, uint8_t low_priority) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_dcs_get
      Src: /src/libqb/lib/log.c:338,1
    - Dst: qb_list_for_each
      Src: /src/libqb/lib/log.c:352,1
    - Dst: pthread_rwlock_rdlock
      Src: /src/libqb/lib/log.c:346,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/log.c:353,1
    - Dst: _log_filter_apply_to_cs
      Src: /src/libqb/lib/log.c:354,1
    - Dst: qb_list_for_each
      Src: /src/libqb/lib/log.c:360,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/log.c:361,1
    - Dst: _log_filter_apply_to_cs
      Src: /src/libqb/lib/log.c:362,1
    - Dst: _custom_filter_fn
      Src: /src/libqb/lib/log.c:370,1
    - Dst: pthread_rwlock_unlock
      Src: /src/libqb/lib/log.c:372,1
    - Dst: _custom_filter_fn
      Src: /src/libqb/lib/log.c:378,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 39
    argCount: 7
    argNames:
    - message_id
    - function
    - filename
    - format
    - priority
    - lineno
    - tags
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - uint8_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 382
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 382
    functionName: qb_log_callsite_get2
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - _log_filter_apply_to_cs
    - pthread_rwlock_unlock
    - pthread_rwlock_rdlock
    - qb_list_entry
    - _custom_filter_fn
    - qb_list_for_each
    - qb_log_dcs_get
    linkageType: ''
    returnType: struct qb_log_callsite*
    signature: "struct qb_log_callsite *qb_log_callsite_get2(const char *message_id,\t\t
      const char *function,\t\t const char *filename,\t\t const char *format,\t\t
      uint8_t priority,\t\t uint32_t lineno,\t\t uint32_t tags) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_for_each_entry
      Src: /src/libqb/lib/log.c:557,1
    - Dst: strcmp
      Src: /src/libqb/lib/log.c:562,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 6
    argNames:
    - list_head
    - type
    - text
    - high_priority
    - low_priority
    - new_value
    argTypes:
    - struct qb_list_head*
    - enum qb_log_filter_type
    - char*
    - uint8_t
    - uint8_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 567
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 567
    functionName: _log_filter_exists
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - strcmp
    - qb_list_for_each_entry
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t _log_filter_exists(struct qb_list_head *list_head,\t\t
      enum qb_log_filter_type type,\t\t const char *text,\t\t uint8_t high_priority,\t\t
      uint8_t low_priority,\t\t uint32_t new_value) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_filter_ctl2
      Src: /src/libqb/lib/log.c:805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - t
    - c
    - type
    - text
    - priority
    argTypes:
    - int32_t
    - enum qb_log_filter_conf
    - enum qb_log_filter_type
    - char*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 806
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 806
    functionName: qb_log_filter_ctl
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - qb_log_filter_ctl2
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_log_filter_ctl(int32_t t, enum qb_log_filter_conf c,\t\t
      enum qb_log_filter_type type,\t\t const char *text, uint8_t priority) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - t
    - user_data
    argTypes:
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 960
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 960
    functionName: qb_log_target_user_data_set
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_log_target_user_data_set(int32_t t, void *user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/libqb/lib/log.c:185,1
    - Dst: va_end
      Src: /src/libqb/lib/log.c:187,1
    - Dst: vsnprintf
      Src: /src/libqb/lib/log.c:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - str
    - maxlen
    - cs
    - ap
    argTypes:
    - char*
    - size_t
    - struct qb_log_callsite*
    - va_list
    constantsTouched: []
    func_position:
      end: 195
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 195
    functionName: cs_format
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - va_copy
    - va_end
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: 'static inline void cs_format(char *str, size_t maxlen, struct qb_log_callsite
      *cs, va_list ap) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_callsite_get2
      Src: /src/libqb/lib/log.c:392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 6
    argNames:
    - function
    - filename
    - format
    - priority
    - lineno
    - tags
    argTypes:
    - char*
    - char*
    - char*
    - uint8_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 394
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 394
    functionName: qb_log_callsite_get
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - qb_log_callsite_get2
    linkageType: ''
    returnType: struct qb_log_callsite*
    signature: "struct qb_log_callsite *qb_log_callsite_get(const char *function,\t\t
      const char *filename,\t\t const char *format,\t\t uint8_t priority,\t\t uint32_t
      lineno,\t\t uint32_t tags) "
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: regcomp
      Src: /src/libqb/lib/log.c:629,1
    - Dst: _log_free_filter
      Src: /src/libqb/lib/log.c:631,1
    - Dst: strcmp
      Src: /src/libqb/lib/log.c:649,1
    - Dst: _log_filter_exists
      Src: /src/libqb/lib/log.c:602,1
    - Dst: calloc
      Src: /src/libqb/lib/log.c:606,1
    - Dst: _log_free_filter
      Src: /src/libqb/lib/log.c:615,1
    - Dst: strdup
      Src: /src/libqb/lib/log.c:613,1
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/lib/log.c:643,1
    - Dst: calloc
      Src: /src/libqb/lib/log.c:624,1
    - Dst: _log_free_filter
      Src: /src/libqb/lib/log.c:626,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/log.c:644,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/log.c:650,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/log.c:659,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/log.c:658,1
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/lib/log.c:657,1
    - Dst: strcmp
      Src: /src/libqb/lib/log.c:648,1
    - Dst: _log_free_filter
      Src: /src/libqb/lib/log.c:651,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/log.c:610,1
    - Dst: qb_list_add_tail
      Src: /src/libqb/lib/log.c:638,1
    - Dst: _log_free_filter
      Src: /src/libqb/lib/log.c:660,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 84
    argCount: 7
    argNames:
    - t
    - c
    - type
    - text
    - high_priority
    - low_priority
    - new
    argTypes:
    - uint32_t
    - enum qb_log_filter_conf
    - enum qb_log_filter_type
    - char*
    - uint8_t
    - uint8_t
    - struct qb_log_filter**
    constantsTouched: []
    func_position:
      end: 664
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 664
    functionName: _log_filter_store
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - qb_list_for_each_safe
    - _log_filter_exists
    - calloc
    - qb_list_init
    - qb_list_add_tail
    - qb_list_entry
    - strcmp
    - qb_list_del
    - regcomp
    - _log_free_filter
    - strdup
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t _log_filter_store(uint32_t t, enum qb_log_filter_conf
      c,\t\t enum qb_log_filter_type type,\t\t const char *text,\t\t uint8_t high_priority,\t\t
      uint8_t low_priority,\t\t struct qb_log_filter **new) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - t
    - s
    argTypes:
    - struct qb_log_target*
    - enum qb_log_target_state
    constantsTouched: []
    func_position:
      end: 826
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 826
    functionName: _log_target_state_set
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void _log_target_state_set(struct qb_log_target *t, enum qb_log_target_state
      s) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_target_alloc
      Src: /src/libqb/lib/log.c:969,1
    - Dst: snprintf
      Src: /src/libqb/lib/log.c:976,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - log_fn
    - close_fn
    - reload_fn
    - user_data
    argTypes:
    - qb_log_logger_fn
    - qb_log_close_fn
    - qb_log_reload_fn
    - void*
    constantsTouched: []
    func_position:
      end: 985
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 985
    functionName: qb_log_custom_open
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - snprintf
    - qb_log_target_alloc
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_log_custom_open(qb_log_logger_fn log_fn,\t\t qb_log_close_fn
      close_fn,\t\t qb_log_reload_fn reload_fn, void *user_data) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_callsite_get2
      Src: /src/libqb/lib/log.c:410,1
    - Dst: qb_log_real_va_
      Src: /src/libqb/lib/log.c:412,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 8
    argNames:
    - message_id
    - function
    - filename
    - format
    - priority
    - lineno
    - tags
    - ap
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - uint8_t
    - uint32_t
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 413
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 413
    functionName: qb_log_from_external_source_va2
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - qb_log_callsite_get2
    - qb_log_real_va_
    linkageType: ''
    returnType: void
    signature: "void qb_log_from_external_source_va2(const char *message_id,\t\t\t
      const char *function,\t\t\t const char *filename,\t\t\t const char *format,\t\t\t
      uint8_t priority,\t\t\t uint32_t lineno, uint32_t tags, va_list ap) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - pos
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 933
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 933
    functionName: qb_log_target_get
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct qb_log_target*
    signature: 'struct qb_log_target *qb_log_target_get(int32_t pos) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fn
    argTypes:
    - qb_util_log_fn_t
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: qb_util_set_log_function
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void qb_util_set_log_function(qb_util_log_fn_t fn) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: cs_format
      Src: /src/libqb/lib/log.c:272,1
    - Dst: qb_log_thread_log_post
      Src: /src/libqb/lib/log.c:282,1
    - Dst: qb_atomic_int_compare_and_exchange
      Src: /src/libqb/lib/log.c:213,1
    - Dst: qb_bit_is_set
      Src: /src/libqb/lib/log.c:236,1
    - Dst: qb_bit_is_set
      Src: /src/libqb/lib/log.c:221,1
    - Dst: cs_format
      Src: /src/libqb/lib/log.c:238,1
    - Dst: qb_do_extended
      Src: /src/libqb/lib/log.c:241,1
    - Dst: old_internal_log_fn
      Src: /src/libqb/lib/log.c:242,1
    - Dst: qb_util_timespec_from_epoch_get
      Src: /src/libqb/lib/log.c:246,1
    - Dst: cs_format
      Src: /src/libqb/lib/log.c:260,1
    - Dst: qb_bit_is_set
      Src: /src/libqb/lib/log.c:255,1
    - Dst: va_end
      Src: /src/libqb/lib/log.c:268,1
    - Dst: qb_do_extended
      Src: /src/libqb/lib/log.c:275,1
    - Dst: va_copy
      Src: /src/libqb/lib/log.c:266,1
    - Dst: free
      Src: /src/libqb/lib/log.c:287,1
    - Dst: malloc
      Src: /src/libqb/lib/log.c:229,1
    - Dst: qb_atomic_int_set
      Src: /src/libqb/lib/log.c:284,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 66
    argCount: 2
    argNames:
    - cs
    - ap
    argTypes:
    - struct qb_log_callsite*
    - va_list
    constantsTouched: []
    func_position:
      end: 289
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 289
    functionName: qb_log_real_va_
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - malloc
    - qb_do_extended
    - qb_util_timespec_from_epoch_get
    - cs_format
    - old_internal_log_fn
    - qb_atomic_int_set
    - va_copy
    - va_end
    - qb_atomic_int_compare_and_exchange
    - free
    - qb_log_thread_log_post
    - qb_bit_is_set
    linkageType: ''
    returnType: void
    signature: 'void qb_log_real_va_(struct qb_log_callsite *cs, va_list ap) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_from_external_source_va2
      Src: /src/libqb/lib/log.c:422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 7
    argNames:
    - function
    - filename
    - format
    - priority
    - lineno
    - tags
    - ap
    argTypes:
    - char*
    - char*
    - char*
    - uint8_t
    - uint32_t
    - uint32_t
    - va_list
    constantsTouched: []
    func_position:
      end: 424
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 424
    functionName: qb_log_from_external_source_va
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached:
    - qb_log_from_external_source_va2
    linkageType: ''
    returnType: void
    signature: "void qb_log_from_external_source_va(const char *function,\t\t\t const
      char *filename,\t\t\t const char *format,\t\t\t uint8_t priority,\t\t\t uint32_t
      lineno, uint32_t tags, va_list ap) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 945
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 945
    functionName: qb_log_target_user_data_get
    functionSourceFile: /src/libqb/lib/log.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'void *qb_log_target_user_data_get(int32_t t) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libqb/lib/ipc_socket.c:67,1
    - Dst: use_filesystem_sockets
      Src: /src/libqb/lib/ipc_socket.c:73,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_socket.c:76,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_socket.c:74,1
    - Dst: QB_SUN_LEN
      Src: /src/libqb/lib/ipc_socket.c:70,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - address
    - socket_name
    argTypes:
    - struct sockaddr_un*
    - char*
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: set_sock_addr
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - memset
    - snprintf
    - use_filesystem_sockets
    - QB_SUN_LEN
    linkageType: ''
    returnType: void
    signature: 'static void set_sock_addr(struct sockaddr_un *address, const char
      *socket_name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/libqb/lib/ipc_socket.c:348,1
    - Dst: getsockname
      Src: /src/libqb/lib/ipc_socket.c:357,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:361,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_socket.c:362,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_socket.c:365,1
    - Dst: free
      Src: /src/libqb/lib/ipc_socket.c:374,1
    - Dst: qb_ipcc_us_sock_close
      Src: /src/libqb/lib/ipc_socket.c:381,1
    - Dst: use_filesystem_sockets
      Src: /src/libqb/lib/ipc_socket.c:351,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:363,1
    - Dst: unlink
      Src: /src/libqb/lib/ipc_socket.c:367,1
    - Dst: unlink
      Src: /src/libqb/lib/ipc_socket.c:370,1
    - Dst: unlink
      Src: /src/libqb/lib/ipc_socket.c:373,1
    - Dst: unlink
      Src: /src/libqb/lib/ipc_socket.c:349,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_socket.c:371,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_socket.c:368,1
    - Dst: remove_tempdir
      Src: /src/libqb/lib/ipc_socket.c:379,1
    - Dst: qb_ipcc_us_sock_close
      Src: /src/libqb/lib/ipc_socket.c:383,1
    - Dst: strlen
      Src: /src/libqb/lib/ipc_socket.c:358,1
    - Dst: strndup
      Src: /src/libqb/lib/ipc_socket.c:359,1
    - Dst: unlink
      Src: /src/libqb/lib/ipc_socket.c:364,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:372,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:366,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:369,1
    - Dst: qb_ipcc_us_sock_close
      Src: /src/libqb/lib/ipc_socket.c:382,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcc_connection*
    constantsTouched: []
    func_position:
      end: 384
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 384
    functionName: qb_ipcc_us_disconnect
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - use_filesystem_sockets
    - qb_ipcc_us_sock_close
    - remove_tempdir
    - qb_util_log
    - munmap
    - strndup
    - unlink
    - free
    - getsockname
    - strlen
    - snprintf
    linkageType: ''
    returnType: void
    signature: 'static void qb_ipcc_us_disconnect(struct qb_ipcc_connection *c) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/libqb/lib/ipc_socket.c:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 62
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 62
    functionName: use_filesystem_sockets
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - stat
    linkageType: ''
    returnType: int
    signature: 'int use_filesystem_sockets(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/libqb/lib/ipc_socket.c:91,1
    - Dst: set_sock_addr
      Src: /src/libqb/lib/ipc_socket.c:102,1
    - Dst: qb_sys_fd_nonblock_cloexec_set
      Src: /src/libqb/lib/ipc_socket.c:97,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_socket.c:101,1
    - Dst: qb_socket_nosigpipe
      Src: /src/libqb/lib/ipc_socket.c:96,1
    - Dst: use_filesystem_sockets
      Src: /src/libqb/lib/ipc_socket.c:103,1
    - Dst: unlink
      Src: /src/libqb/lib/ipc_socket.c:104,1
    - Dst: bind
      Src: /src/libqb/lib/ipc_socket.c:106,1
    - Dst: use_filesystem_sockets
      Src: /src/libqb/lib/ipc_socket.c:109,1
    - Dst: chmod
      Src: /src/libqb/lib/ipc_socket.c:110,1
    - Dst: chown
      Src: /src/libqb/lib/ipc_socket.c:111,1
    - Dst: close
      Src: /src/libqb/lib/ipc_socket.c:121,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 4
    argNames:
    - base_name
    - service_name
    - sock_pt
    - gid
    argTypes:
    - char*
    - char*
    - int32_t*
    - gid_t
    constantsTouched: []
    func_position:
      end: 125
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 125
    functionName: qb_ipc_dgram_sock_setup
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - qb_sys_fd_nonblock_cloexec_set
    - use_filesystem_sockets
    - chmod
    - socket
    - set_sock_addr
    - qb_socket_nosigpipe
    - unlink
    - chown
    - snprintf
    - bind
    - close
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t qb_ipc_dgram_sock_setup(const char *base_name,\t\t\tconst
      char *service_name, int32_t * sock_pt,\t\t\tgid_t gid) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipc_dgram_sock_setup
      Src: /src/libqb/lib/ipc_socket.c:280,1
    - Dst: set_sock_addr
      Src: /src/libqb/lib/ipc_socket.c:287,1
    - Dst: QB_SUN_LEN
      Src: /src/libqb/lib/ipc_socket.c:289,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_socket.c:286,1
    - Dst: connect
      Src: /src/libqb/lib/ipc_socket.c:288,1
    - Dst: set_sock_size
      Src: /src/libqb/lib/ipc_socket.c:294,1
    - Dst: close
      Src: /src/libqb/lib/ipc_socket.c:297,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 6
    argNames:
    - base_name
    - local_name
    - remote_name
    - max_msg_size
    - sock_pt
    - gid
    argTypes:
    - char*
    - char*
    - char*
    - int32_t
    - int32_t*
    - gid_t
    constantsTouched: []
    func_position:
      end: 301
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 301
    functionName: qb_ipc_dgram_sock_connect
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - set_sock_size
    - connect
    - set_sock_addr
    - QB_SUN_LEN
    - qb_ipc_dgram_sock_setup
    - snprintf
    - close
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t qb_ipc_dgram_sock_connect(const char *base_name,\t\t\t
      const char *local_name,\t\t\t const char *remote_name,\t\t\t int32_t max_msg_size,
      int32_t * sock_pt, gid_t gid) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_sock_addr
      Src: /src/libqb/lib/ipc_socket.c:311,1
    - Dst: QB_SUN_LEN
      Src: /src/libqb/lib/ipc_socket.c:320,1
    - Dst: usleep
      Src: /src/libqb/lib/ipc_socket.c:325,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_socket.c:323,1
    - Dst: connect
      Src: /src/libqb/lib/ipc_socket.c:318,1
    - Dst: free
      Src: /src/libqb/lib/ipc_socket.c:335,1
    - Dst: set_sock_size
      Src: /src/libqb/lib/ipc_socket.c:338,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - one_way
    argTypes:
    - struct qb_ipc_one_way*
    constantsTouched: []
    func_position:
      end: 339
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 339
    functionName: _finish_connecting
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - usleep
    - set_sock_size
    - connect
    - set_sock_addr
    - QB_SUN_LEN
    - free
    - qb_util_perror
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _finish_connecting(struct qb_ipc_one_way *one_way) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:642,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:650,1
    - Dst: qb_ipcs_disconnect
      Src: /src/libqb/lib/ipc_socket.c:651,1
    - Dst: qb_ipcs_disconnect
      Src: /src/libqb/lib/ipc_socket.c:646,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:645,1
    - Dst: recv
      Src: /src/libqb/lib/ipc_socket.c:662,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:666,1
    - Dst: qb_ipcs_disconnect
      Src: /src/libqb/lib/ipc_socket.c:671,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 3
    argNames:
    - fd
    - revents
    - data
    argTypes:
    - int32_t
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 677
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 677
    functionName: _sock_connection_liveliness
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - qb_util_log
    - qb_ipcs_disconnect
    - recv
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _sock_connection_liveliness(int32_t fd, int32_t revents,
      void *data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dgram_verify_msg_size
      Src: /src/libqb/lib/ipc_socket.c:249,1
    - Dst: dgram_verify_msg_size
      Src: /src/libqb/lib/ipc_socket.c:254,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - max_msg_size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 265
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 265
    functionName: qb_ipcc_verify_dgram_max_msg_size
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - dgram_verify_msg_size
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_ipcc_verify_dgram_max_msg_size(size_t max_msg_size) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _finish_connecting
      Src: /src/libqb/lib/ipc_socket.c:395,1
    - Dst: send
      Src: /src/libqb/lib/ipc_socket.c:403,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:397,1
    - Dst: qb_sigpipe_ctl
      Src: /src/libqb/lib/ipc_socket.c:402,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_socket.c:407,1
    - Dst: qb_sigpipe_ctl
      Src: /src/libqb/lib/ipc_socket.c:410,1
    - Dst: qb_atomic_int_inc
      Src: /src/libqb/lib/ipc_socket.c:413,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 3
    argNames:
    - one_way
    - msg_ptr
    - msg_len
    argTypes:
    - struct qb_ipc_one_way*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 417
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 417
    functionName: qb_ipc_socket_send
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - _finish_connecting
    - qb_atomic_int_inc
    - qb_util_perror
    - qb_util_log
    - qb_sigpipe_ctl
    - send
    linkageType: ''
    returnType: ssize_t
    signature: "static ssize_t qb_ipc_socket_send(struct qb_ipc_one_way *one_way,\t\t
      const void *msg_ptr, size_t msg_len) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_atomic_int_get
      Src: /src/libqb/lib/ipc_socket.c:554,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - one_way
    argTypes:
    - struct qb_ipc_one_way*
    constantsTouched: []
    func_position:
      end: 555
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 555
    functionName: qb_ipc_us_fc_get
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - qb_atomic_int_get
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t qb_ipc_us_fc_get(struct qb_ipc_one_way *one_way) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qb_atomic_init
      Src: /src/libqb/lib/ipc_socket.c:574,1
    - Dst: mmap
      Src: /src/libqb/lib/ipc_socket.c:592,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_socket.c:588,1
    - Dst: qb_sys_mmap_file_open
      Src: /src/libqb/lib/ipc_socket.c:583,1
    - Dst: strlcpy
      Src: /src/libqb/lib/ipc_socket.c:591,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_socket.c:597,1
    - Dst: close
      Src: /src/libqb/lib/ipc_socket.c:604,1
    - Dst: qb_ipc_dgram_sock_connect
      Src: /src/libqb/lib/ipc_socket.c:607,1
    - Dst: qb_ipc_dgram_sock_connect
      Src: /src/libqb/lib/ipc_socket.c:614,1
    - Dst: close
      Src: /src/libqb/lib/ipc_socket.c:624,1
    - Dst: unlink
      Src: /src/libqb/lib/ipc_socket.c:628,1
    - Dst: close
      Src: /src/libqb/lib/ipc_socket.c:627,1
    - Dst: munmap
      Src: /src/libqb/lib/ipc_socket.c:629,1
    - Dst: close
      Src: /src/libqb/lib/ipc_socket.c:626,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 2
    argNames:
    - c
    - r
    argTypes:
    - struct qb_ipcc_connection*
    - struct qb_ipc_connection_response*
    constantsTouched: []
    func_position:
      end: 631
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 631
    functionName: qb_ipcc_us_connect
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - close
    - munmap
    - qb_sys_mmap_file_open
    - unlink
    - strlcpy
    - qb_util_perror
    - mmap
    - qb_atomic_init
    - qb_ipc_dgram_sock_connect
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_ipcc_us_connect(struct qb_ipcc_connection * c,\t\t struct
      qb_ipc_connection_response * r) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:701,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_socket.c:704,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:691,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcs_connection*
    constantsTouched: []
    func_position:
      end: 709
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 709
    functionName: _sock_add_to_mainloop
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - qb_util_log
    - qb_util_perror
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _sock_add_to_mainloop(struct qb_ipcs_connection *c) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qb_sigpipe_ctl
      Src: /src/libqb/lib/ipc_socket.c:427,1
    - Dst: writev
      Src: /src/libqb/lib/ipc_socket.c:438,1
    - Dst: qb_sigpipe_ctl
      Src: /src/libqb/lib/ipc_socket.c:433,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_socket.c:432,1
    - Dst: _finish_connecting
      Src: /src/libqb/lib/ipc_socket.c:430,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_socket.c:443,1
    - Dst: qb_sigpipe_ctl
      Src: /src/libqb/lib/ipc_socket.c:448,1
    - Dst: qb_atomic_int_inc
      Src: /src/libqb/lib/ipc_socket.c:451,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 3
    argNames:
    - one_way
    - iov
    - iov_len
    argTypes:
    - struct qb_ipc_one_way*
    - struct iovec*
    - size_t
    constantsTouched: []
    func_position:
      end: 454
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 454
    functionName: qb_ipc_socket_sendv
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - writev
    - _finish_connecting
    - qb_atomic_int_inc
    - qb_util_perror
    - qb_sigpipe_ctl
    linkageType: ''
    returnType: ssize_t
    signature: "static ssize_t qb_ipc_socket_sendv(struct qb_ipc_one_way *one_way,
      const struct iovec *iov,\t\t size_t iov_len) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_atomic_int_get
      Src: /src/libqb/lib/ipc_socket.c:562,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - one_way
    argTypes:
    - struct qb_ipc_one_way*
    constantsTouched: []
    func_position:
      end: 563
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 563
    functionName: qb_ipc_us_q_len_get
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - qb_atomic_int_get
    linkageType: ''
    returnType: ssize_t
    signature: 'static ssize_t qb_ipc_us_q_len_get(struct qb_ipc_one_way *one_way) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcs_connection*
    constantsTouched: []
    func_position:
      end: 716
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 716
    functionName: _sock_rm_from_mainloop
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void _sock_rm_from_mainloop(struct qb_ipcs_connection *c) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/libqb/lib/ipc_socket.c:134,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:157,1
    - Dst: setsockopt
      Src: /src/libqb/lib/ipc_socket.c:148,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:136,1
    - Dst: getsockopt
      Src: /src/libqb/lib/ipc_socket.c:155,1
    - Dst: setsockopt
      Src: /src/libqb/lib/ipc_socket.c:166,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - sockfd
    - max_msg_size
    argTypes:
    - int
    - size_t
    constantsTouched: []
    func_position:
      end: 174
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 174
    functionName: set_sock_size
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - qb_util_log
    - getsockopt
    - setsockopt
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t set_sock_size(int sockfd, size_t max_msg_size) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libqb/lib/ipc_socket.c:185,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:193,1
    - Dst: set_sock_size
      Src: /src/libqb/lib/ipc_socket.c:192,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_socket.c:188,1
    - Dst: socketpair
      Src: /src/libqb/lib/ipc_socket.c:187,1
    - Dst: set_sock_size
      Src: /src/libqb/lib/ipc_socket.c:197,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:198,1
    - Dst: write
      Src: /src/libqb/lib/ipc_socket.c:206,1
    - Dst: read
      Src: /src/libqb/lib/ipc_socket.c:218,1
    - Dst: close
      Src: /src/libqb/lib/ipc_socket.c:237,1
    - Dst: close
      Src: /src/libqb/lib/ipc_socket.c:238,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 50
    argCount: 1
    argNames:
    - max_msg_size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 240
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 240
    functionName: dgram_verify_msg_size
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - set_sock_size
    - memset
    - write
    - socketpair
    - qb_util_perror
    - qb_util_log
    - read
    - close
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t dgram_verify_msg_size(size_t max_msg_size) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: qb_sigpipe_ctl
      Src: /src/libqb/lib/ipc_socket.c:475,1
    - Dst: use_filesystem_sockets
      Src: /src/libqb/lib/ipc_socket.c:486,1
    - Dst: recv
      Src: /src/libqb/lib/ipc_socket.c:478,1
    - Dst: qb_ipc_us_sock_error_is_disconnected
      Src: /src/libqb/lib/ipc_socket.c:497,1
    - Dst: qb_ipc_us_ready
      Src: /src/libqb/lib/ipc_socket.c:496,1
    - Dst: recv
      Src: /src/libqb/lib/ipc_socket.c:514,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:520,1
    - Dst: qb_atomic_int_dec_and_test
      Src: /src/libqb/lib/ipc_socket.c:530,1
    - Dst: qb_sigpipe_ctl
      Src: /src/libqb/lib/ipc_socket.c:534,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 57
    argCount: 4
    argNames:
    - one_way
    - msg
    - len
    - timeout
    argTypes:
    - struct qb_ipc_one_way*
    - void*
    - size_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 536
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 536
    functionName: qb_ipc_us_recv_at_most
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - use_filesystem_sockets
    - qb_ipc_us_ready
    - qb_ipc_us_sock_error_is_disconnected
    - qb_atomic_int_dec_and_test
    - recv
    - qb_util_log
    - qb_sigpipe_ctl
    linkageType: ''
    returnType: ssize_t
    signature: "static ssize_t qb_ipc_us_recv_at_most(struct qb_ipc_one_way *one_way,\t\t
      void *msg, size_t len, int32_t timeout) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _sock_rm_from_mainloop
      Src: /src/libqb/lib/ipc_socket.c:725,1
    - Dst: strlen
      Src: /src/libqb/lib/ipc_socket.c:745,1
    - Dst: strndup
      Src: /src/libqb/lib/ipc_socket.c:746,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:753,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:756,1
    - Dst: unlink
      Src: /src/libqb/lib/ipc_socket.c:751,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:759,1
    - Dst: munmap
      Src: /src/libqb/lib/ipc_socket.c:770,1
    - Dst: free
      Src: /src/libqb/lib/ipc_socket.c:735,1
    - Dst: free
      Src: /src/libqb/lib/ipc_socket.c:732,1
    - Dst: getsockname
      Src: /src/libqb/lib/ipc_socket.c:744,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:748,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_socket.c:749,1
    - Dst: free
      Src: /src/libqb/lib/ipc_socket.c:761,1
    - Dst: qb_ipcc_us_sock_close
      Src: /src/libqb/lib/ipc_socket.c:766,1
    - Dst: remove_tempdir
      Src: /src/libqb/lib/ipc_socket.c:775,1
    - Dst: qb_enter
      Src: /src/libqb/lib/ipc_socket.c:721,1
    - Dst: use_filesystem_sockets
      Src: /src/libqb/lib/ipc_socket.c:738,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:750,1
    - Dst: unlink
      Src: /src/libqb/lib/ipc_socket.c:757,1
    - Dst: unlink
      Src: /src/libqb/lib/ipc_socket.c:754,1
    - Dst: unlink
      Src: /src/libqb/lib/ipc_socket.c:760,1
    - Dst: qb_ipcc_us_sock_close
      Src: /src/libqb/lib/ipc_socket.c:765,1
    - Dst: unlink
      Src: /src/libqb/lib/ipc_socket.c:771,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_socket.c:752,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_socket.c:758,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_socket.c:755,1
    - Dst: qb_ipcc_us_sock_close
      Src: /src/libqb/lib/ipc_socket.c:764,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcs_connection*
    constantsTouched: []
    func_position:
      end: 776
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 776
    functionName: qb_ipcs_us_disconnect
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - use_filesystem_sockets
    - qb_ipcc_us_sock_close
    - remove_tempdir
    - qb_enter
    - qb_util_log
    - munmap
    - strndup
    - unlink
    - free
    - getsockname
    - strlen
    - snprintf
    - _sock_rm_from_mainloop
    linkageType: ''
    returnType: void
    signature: 'static void qb_ipcs_us_disconnect(struct qb_ipcs_connection *c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:544,1
    - Dst: qb_atomic_int_set
      Src: /src/libqb/lib/ipc_socket.c:545,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 2
    argNames:
    - one_way
    - fc_enable
    argTypes:
    - struct qb_ipc_one_way*
    - int32_t
    constantsTouched: []
    func_position:
      end: 546
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 546
    functionName: qb_ipc_us_fc_set
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - qb_util_log
    - qb_atomic_int_set
    linkageType: ''
    returnType: void
    signature: 'static void qb_ipc_us_fc_set(struct qb_ipc_one_way *one_way, int32_t
      fc_enable) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_socket.c:804,1
    - Dst: set_sock_size
      Src: /src/libqb/lib/ipc_socket.c:856,1
    - Dst: strdup
      Src: /src/libqb/lib/ipc_socket.c:867,1
    - Dst: close
      Src: /src/libqb/lib/ipc_socket.c:896,1
    - Dst: munmap
      Src: /src/libqb/lib/ipc_socket.c:899,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_socket.c:789,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_socket.c:794,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_socket.c:796,1
    - Dst: strlcpy
      Src: /src/libqb/lib/ipc_socket.c:808,1
    - Dst: strlcpy
      Src: /src/libqb/lib/ipc_socket.c:809,1
    - Dst: qb_ipc_dgram_sock_setup
      Src: /src/libqb/lib/ipc_socket.c:870,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_socket.c:866,1
    - Dst: strdup
      Src: /src/libqb/lib/ipc_socket.c:882,1
    - Dst: _sock_add_to_mainloop
      Src: /src/libqb/lib/ipc_socket.c:884,1
    - Dst: chmod
      Src: /src/libqb/lib/ipc_socket.c:816,1
    - Dst: mmap
      Src: /src/libqb/lib/ipc_socket.c:823,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_socket.c:828,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_socket.c:881,1
    - Dst: qb_ipc_dgram_sock_setup
      Src: /src/libqb/lib/ipc_socket.c:850,1
    - Dst: close
      Src: /src/libqb/lib/ipc_socket.c:846,1
    - Dst: unlink
      Src: /src/libqb/lib/ipc_socket.c:898,1
    - Dst: qb_sys_mmap_file_open
      Src: /src/libqb/lib/ipc_socket.c:798,1
    - Dst: chown
      Src: /src/libqb/lib/ipc_socket.c:810,1
    - Dst: set_sock_size
      Src: /src/libqb/lib/ipc_socket.c:876,1
    - Dst: free
      Src: /src/libqb/lib/ipc_socket.c:892,1
    - Dst: free
      Src: /src/libqb/lib/ipc_socket.c:893,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 90
    argCount: 3
    argNames:
    - s
    - c
    - r
    argTypes:
    - struct qb_ipcs_service*
    - struct qb_ipcs_connection*
    - struct qb_ipc_connection_response*
    constantsTouched: []
    func_position:
      end: 901
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 901
    functionName: qb_ipcs_us_connect
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - chmod
    - set_sock_size
    - munmap
    - qb_sys_mmap_file_open
    - unlink
    - qb_ipc_dgram_sock_setup
    - chown
    - free
    - strlcpy
    - qb_util_perror
    - _sock_add_to_mainloop
    - strdup
    - qb_util_log
    - snprintf
    - mmap
    - close
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t qb_ipcs_us_connect(struct qb_ipcs_service *s,\t\t struct
      qb_ipcs_connection *c,\t\t struct qb_ipc_connection_response *r) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_atomic_init
      Src: /src/libqb/lib/ipc_socket.c:920,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_ipcs_service*
    constantsTouched: []
    func_position:
      end: 921
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 921
    functionName: qb_ipcs_us_init
    functionSourceFile: /src/libqb/lib/ipc_socket.c
    functionUses: []
    functionsReached:
    - qb_atomic_init
    linkageType: ''
    returnType: void
    signature: 'void qb_ipcs_us_init(struct qb_ipcs_service *s) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - map
    - key
    - value
    argTypes:
    - struct qb_map*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: qb_map_put
    functionSourceFile: /src/libqb/lib/map.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void qb_map_put(struct qb_map *map, const char *key, const void *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - struct qb_map*
    - char*
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: qb_map_rm
    functionSourceFile: /src/libqb/lib/map.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_map_rm(struct qb_map * map, const char *key) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_map_iter_create
      Src: /src/libqb/lib/map.c:54,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/lib/map.c:56,1
    - Dst: qb_map_iter_free
      Src: /src/libqb/lib/map.c:63,1
    - Dst: func
      Src: /src/libqb/lib/map.c:58,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/lib/map.c:57,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 3
    argNames:
    - map
    - func
    - user_data
    argTypes:
    - struct qb_map*
    - qb_map_transverse_fn
    - void*
    constantsTouched: []
    func_position:
      end: 64
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 64
    functionName: qb_map_foreach
    functionSourceFile: /src/libqb/lib/map.c
    functionUses: []
    functionsReached:
    - qb_map_iter_free
    - qb_map_iter_next
    - qb_map_iter_create
    - func
    linkageType: ''
    returnType: void
    signature: 'void qb_map_foreach(struct qb_map *map, qb_map_transverse_fn func,
      void *user_data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - map
    - prefix
    argTypes:
    - qb_map_t*
    - char*
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: qb_map_pref_iter_create
    functionSourceFile: /src/libqb/lib/map.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: qb_map_iter_t*
    signature: 'qb_map_iter_t *qb_map_pref_iter_create(qb_map_t * map, const char
      *prefix) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - qb_map_iter_t*
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: qb_map_iter_free
    functionSourceFile: /src/libqb/lib/map.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void qb_map_iter_free(qb_map_iter_t * i) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 4
    argNames:
    - m
    - key
    - fn
    - events
    argTypes:
    - qb_map_t*
    - char*
    - qb_map_notify_fn
    - int32_t
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: qb_map_notify_del
    functionSourceFile: /src/libqb/lib/map.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_map_notify_del(qb_map_t * m, const char *key, qb_map_notify_fn
      fn,\t\t int32_t events) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - struct qb_map*
    - char*
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: qb_map_get
    functionSourceFile: /src/libqb/lib/map.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'void *qb_map_get(struct qb_map *map, const char *key) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct qb_map*
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: qb_map_count_get
    functionSourceFile: /src/libqb/lib/map.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: 'size_t qb_map_count_get(struct qb_map * map) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct qb_map*
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: qb_map_iter_create
    functionSourceFile: /src/libqb/lib/map.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: qb_map_iter_t*
    signature: 'qb_map_iter_t *qb_map_iter_create(struct qb_map *map) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 2
    argNames:
    - i
    - value
    argTypes:
    - struct qb_map_iter*
    - void**
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: qb_map_iter_next
    functionSourceFile: /src/libqb/lib/map.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *qb_map_iter_next(struct qb_map_iter *i, void **value) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 5
    argNames:
    - m
    - key
    - fn
    - events
    - user_data
    argTypes:
    - qb_map_t*
    - char*
    - qb_map_notify_fn
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: qb_map_notify_add
    functionSourceFile: /src/libqb/lib/map.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_map_notify_add(qb_map_t * m, const char *key, qb_map_notify_fn
      fn,\t\t int32_t events, void *user_data) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 5
    argNames:
    - m
    - key
    - fn
    - events
    - user_data
    argTypes:
    - qb_map_t*
    - char*
    - qb_map_notify_fn
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 124
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: qb_map_notify_del_2
    functionSourceFile: /src/libqb/lib/map.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_map_notify_del_2(qb_map_t * m, const char *key, qb_map_notify_fn
      fn,\t\t int32_t events, void *user_data) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct qb_map*
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: qb_map_destroy
    functionSourceFile: /src/libqb/lib/map.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void qb_map_destroy(struct qb_map *map) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 2
    argNames:
    - s
    - c_in
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: strchrnul
    functionSourceFile: /src/libqb/lib/strchrnul.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'char *strchrnul(const char *s, int c_in) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 1
    argNames:
    - model
    argTypes:
    - enum qb_atomic_model
    constantsTouched: []
    func_position:
      end: 61
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 61
    functionName: qb_model_map
    functionSourceFile: /src/libqb/lib/atomic_int.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static inline int qb_model_map(enum qb_atomic_model model) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/libqb/lib/atomic_int.h:94,1
    - Dst: qb_model_map
      Src: /src/libqb/lib/atomic_int.h:94,1
    - Dst: qb_atomic_int_get
      Src: /src/libqb/lib/atomic_int.h:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - atomic
    - model
    argTypes:
    - int32_t*
    - enum qb_atomic_model
    constantsTouched: []
    func_position:
      end: 98
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 98
    functionName: qb_atomic_int_get_ex
    functionSourceFile: /src/libqb/lib/atomic_int.h
    functionUses: []
    functionsReached:
    - qb_atomic_int_get
    - qb_model_map
    - __atomic_load_n
    linkageType: ''
    returnType: int32_t
    signature: "static inline int32_t qb_atomic_int_get_ex(volatile int32_t QB_GNUC_MAY_ALIAS
      * atomic,\t\t enum qb_atomic_model model) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/libqb/lib/atomic_int.h:115,1
    - Dst: qb_model_map
      Src: /src/libqb/lib/atomic_int.h:115,1
    - Dst: qb_atomic_int_set
      Src: /src/libqb/lib/atomic_int.h:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - atomic
    - newval
    - model
    argTypes:
    - int32_t*
    - int32_t
    - enum qb_atomic_model
    constantsTouched: []
    func_position:
      end: 128
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 128
    functionName: qb_atomic_int_set_ex
    functionSourceFile: /src/libqb/lib/atomic_int.h
    functionUses: []
    functionsReached:
    - qb_model_map
    - qb_atomic_int_set
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: "static inline void qb_atomic_int_set_ex(volatile int32_t QB_GNUC_MAY_ALIAS
      * atomic,\t\t int32_t newval,\t\t enum qb_atomic_model model) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_connection_ref
      Src: /src/libqb/lib/ipcs.c:318,1
    - Dst: qb_ipcs_connection_unref
      Src: /src/libqb/lib/ipcs.c:332,1
    - Dst: qb_ipc_us_ready
      Src: /src/libqb/lib/ipcs.c:325,1
    - Dst: _response_sock_one_way_get
      Src: /src/libqb/lib/ipcs.c:323,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 3
    argNames:
    - c
    - iov
    - iov_len
    argTypes:
    - struct qb_ipcs_connection*
    - struct iovec*
    - size_t
    constantsTouched: []
    func_position:
      end: 335
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 335
    functionName: qb_ipcs_response_sendv
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - qb_ipc_us_ready
    - _response_sock_one_way_get
    - qb_ipcs_connection_ref
    - qb_ipcs_connection_unref
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t qb_ipcs_response_sendv(struct qb_ipcs_connection * c, const
      struct iovec * iov,\t\t size_t iov_len) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_connection_ref
      Src: /src/libqb/lib/ipcs.c:442,1
    - Dst: new_event_notification
      Src: /src/libqb/lib/ipcs.c:447,1
    - Dst: _event_sock_one_way_get
      Src: /src/libqb/lib/ipcs.c:456,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipcs.c:450,1
    - Dst: resend_event_notifications
      Src: /src/libqb/lib/ipcs.c:459,1
    - Dst: qb_ipc_us_ready
      Src: /src/libqb/lib/ipcs.c:462,1
    - Dst: qb_ipcs_connection_unref
      Src: /src/libqb/lib/ipcs.c:470,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 3
    argNames:
    - c
    - iov
    - iov_len
    argTypes:
    - struct qb_ipcs_connection*
    - struct iovec*
    - size_t
    constantsTouched: []
    func_position:
      end: 472
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 472
    functionName: qb_ipcs_event_sendv
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - qb_ipc_us_ready
    - qb_ipcs_connection_ref
    - _event_sock_one_way_get
    - qb_ipcs_connection_unref
    - qb_util_perror
    - resend_event_notifications
    - new_event_notification
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t qb_ipcs_event_sendv(struct qb_ipcs_connection * c,\t\t const
      struct iovec * iov, size_t iov_len) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipcs.c:574,1
    - Dst: assert
      Src: /src/libqb/lib/ipcs.c:576,1
    - Dst: qb_atomic_int_dec_and_test
      Src: /src/libqb/lib/ipcs.c:578,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/ipcs.c:580,1
    - Dst: qb_ipcs_unref
      Src: /src/libqb/lib/ipcs.c:586,1
    - Dst: free
      Src: /src/libqb/lib/ipcs.c:587,1
    - Dst: free
      Src: /src/libqb/lib/ipcs.c:588,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcs_connection*
    constantsTouched: []
    func_position:
      end: 590
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 590
    functionName: qb_ipcs_connection_unref
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - qb_atomic_int_dec_and_test
    - assert
    - qb_list_del
    - free
    - qb_util_log
    - qb_ipcs_unref
    linkageType: ''
    returnType: void
    signature: 'void qb_ipcs_connection_unref(struct qb_ipcs_connection *c) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: QB_MIN
      Src: /src/libqb/lib/ipcs.c:728,1
    - Dst: QB_MIN
      Src: /src/libqb/lib/ipcs.c:732,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcs_connection*
    constantsTouched: []
    func_position:
      end: 738
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 738
    functionName: _request_q_len_get
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - QB_MIN
    linkageType: ''
    returnType: ssize_t
    signature: 'static ssize_t _request_q_len_get(struct qb_ipcs_connection *c) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libqb/lib/ipcs.c:905,1
    - Dst: memset
      Src: /src/libqb/lib/ipcs.c:918,1
    - Dst: memcpy
      Src: /src/libqb/lib/ipcs.c:910,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 2
    argNames:
    - c
    - clear_after_read
    argTypes:
    - qb_ipcs_connection_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 922
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 922
    functionName: qb_ipcs_connection_stats_get_2
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - calloc
    - memset
    - memcpy
    linkageType: ''
    returnType: struct qb_ipcs_connection_stats_2*
    signature: "struct qb_ipcs_connection_stats_2 *qb_ipcs_connection_stats_get_2(qb_ipcs_connection_t
      *c,\t\t\t int32_t clear_after_read) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 4
    argNames:
    - c
    - uid
    - gid
    - mode
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    - mode_t
    constantsTouched: []
    func_position:
      end: 947
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 947
    functionName: qb_ipcs_connection_auth_set
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void qb_ipcs_connection_auth_set(qb_ipcs_connection_t *c, uid_t uid,\t\t\t
      gid_t gid, mode_t mode) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipc_us_send
      Src: /src/libqb/lib/ipcs.c:347,1
    - Dst: _modify_dispatch_descriptor_
      Src: /src/libqb/lib/ipcs.c:357,1
    - Dst: assert
      Src: /src/libqb/lib/ipcs.c:354,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcs_connection*
    constantsTouched: []
    func_position:
      end: 360
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 360
    functionName: resend_event_notifications
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - _modify_dispatch_descriptor_
    - qb_ipc_us_send
    - assert
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t resend_event_notifications(struct qb_ipcs_connection
      *c) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_empty
      Src: /src/libqb/lib/ipcs.c:479,1
    - Dst: qb_ipcs_connection_ref
      Src: /src/libqb/lib/ipcs.c:485,1
    - Dst: qb_list_first_entry
      Src: /src/libqb/lib/ipcs.c:483,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_ipcs_service*
    constantsTouched: []
    func_position:
      end: 488
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 488
    functionName: qb_ipcs_connection_first_get
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - qb_list_empty
    - qb_ipcs_connection_ref
    - qb_list_first_entry
    linkageType: ''
    returnType: qb_ipcs_connection_t*
    signature: 'qb_ipcs_connection_t *qb_ipcs_connection_first_get(struct qb_ipcs_service
      * s) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipcs.c:601,1
    - Dst: qb_ipcs_connection_unref
      Src: /src/libqb/lib/ipcs.c:610,1
    - Dst: remove_tempdir
      Src: /src/libqb/lib/ipcs.c:641,1
    - Dst: qb_ipcs_connection_unref
      Src: /src/libqb/lib/ipcs.c:644,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcs_connection*
    constantsTouched: []
    func_position:
      end: 648
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 648
    functionName: qb_ipcs_disconnect
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - qb_util_log
    - qb_ipcs_connection_unref
    - remove_tempdir
    linkageType: ''
    returnType: void
    signature: 'void qb_ipcs_disconnect(struct qb_ipcs_connection *c) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipcs.c:756,1
    - Dst: resend_event_notifications
      Src: /src/libqb/lib/ipcs.c:768,1
    - Dst: _request_q_len_get
      Src: /src/libqb/lib/ipcs.c:785,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipcs.c:771,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipcs.c:761,1
    - Dst: qb_ipc_us_recv
      Src: /src/libqb/lib/ipcs.c:788,1
    - Dst: qb_ipc_us_sock_error_is_disconnected
      Src: /src/libqb/lib/ipcs.c:789,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipcs.c:791,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipcs.c:796,1
    - Dst: _process_request_
      Src: /src/libqb/lib/ipcs.c:805,1
    - Dst: qb_ipc_us_sock_error_is_disconnected
      Src: /src/libqb/lib/ipcs.c:821,1
    - Dst: QB_MIN
      Src: /src/libqb/lib/ipcs.c:830,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipcs.c:840,1
    - Dst: qb_ipcs_disconnect
      Src: /src/libqb/lib/ipcs.c:847,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipcs.c:823,1
    - Dst: qb_ipc_us_recv
      Src: /src/libqb/lib/ipcs.c:820,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 106
    argCount: 3
    argNames:
    - fd
    - revents
    - data
    argTypes:
    - int32_t
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 850
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 850
    functionName: qb_ipcs_dispatch_connection_request
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - qb_ipcs_disconnect
    - qb_ipc_us_sock_error_is_disconnected
    - _request_q_len_get
    - _process_request_
    - QB_MIN
    - qb_util_perror
    - resend_event_notifications
    - qb_util_log
    - qb_ipc_us_recv
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_ipcs_dispatch_connection_request(int32_t fd, int32_t revents,
      void *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libqb/lib/ipcs.c:931,1
    - Dst: memset
      Src: /src/libqb/lib/ipcs.c:933,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 3
    argNames:
    - s
    - stats
    - clear_after_read
    argTypes:
    - struct qb_ipcs_service*
    - struct qb_ipcs_stats*
    - int32_t
    constantsTouched: []
    func_position:
      end: 936
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 936
    functionName: qb_ipcs_stats_get
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_ipcs_stats_get(struct qb_ipcs_service * s,\t\t struct qb_ipcs_stats
      * stats, int32_t clear_after_read) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 960
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 960
    functionName: qb_ipcs_connection_get_buffer_size
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_ipcs_connection_get_buffer_size(qb_ipcs_connection_t *c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - s
    - handlers
    argTypes:
    - struct qb_ipcs_service*
    - struct qb_ipcs_poll_handlers*
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: qb_ipcs_poll_handlers_set
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void qb_ipcs_poll_handlers_set(struct qb_ipcs_service *s,\t\t\t struct
      qb_ipcs_poll_handlers *handlers) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcs_connection*
    constantsTouched: []
    func_position:
      end: 279
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 279
    functionName: _response_sock_one_way_get
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct qb_ipc_one_way*
    signature: 'static struct qb_ipc_one_way *_response_sock_one_way_get(struct qb_ipcs_connection
      * c) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_is_last
      Src: /src/libqb/lib/ipcs.c:497,1
    - Dst: qb_list_first_entry
      Src: /src/libqb/lib/ipcs.c:501,1
    - Dst: qb_ipcs_connection_ref
      Src: /src/libqb/lib/ipcs.c:503,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 8
    argCount: 2
    argNames:
    - s
    - current
    argTypes:
    - struct qb_ipcs_service*
    - struct qb_ipcs_connection*
    constantsTouched: []
    func_position:
      end: 506
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 506
    functionName: qb_ipcs_connection_next_get
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - qb_list_first_entry
    - qb_ipcs_connection_ref
    - qb_list_is_last
    linkageType: ''
    returnType: qb_ipcs_connection_t*
    signature: "qb_ipcs_connection_t *qb_ipcs_connection_next_get(struct qb_ipcs_service
      * s,\t\t\t struct qb_ipcs_connection * current) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 877
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 877
    functionName: qb_ipcs_connection_service_context_get
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'void *qb_ipcs_connection_service_context_get(qb_ipcs_connection_t
      *c) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libqb/lib/ipcs.c:42,1
    - Dst: qb_ipcs_ref
      Src: /src/libqb/lib/ipcs.c:61,1
    - Dst: getpid
      Src: /src/libqb/lib/ipcs.c:56,1
    - Dst: strlcpy
      Src: /src/libqb/lib/ipcs.c:64,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/ipcs.c:72,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - name
    - service_id
    - type
    - handlers
    argTypes:
    - char*
    - int32_t
    - enum qb_ipc_type
    - struct qb_ipcs_service_handlers*
    constantsTouched: []
    func_position:
      end: 75
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 75
    functionName: qb_ipcs_create
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - qb_ipcs_ref
    - calloc
    - qb_list_init
    - strlcpy
    - getpid
    linkageType: ''
    returnType: qb_ipcs_service_t*
    signature: "qb_ipcs_service_t *qb_ipcs_create(const char *name,\t int32_t service_id,\t
      enum qb_ipc_type type, struct qb_ipcs_service_handlers *handlers) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - s
    - context
    argTypes:
    - qb_ipcs_service_t*
    - void*
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: qb_ipcs_service_context_set
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void qb_ipcs_service_context_set(qb_ipcs_service_t* s,\t\t\t void
      *context) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_connection_ref
      Src: /src/libqb/lib/ipcs.c:290,1
    - Dst: qb_ipcs_connection_unref
      Src: /src/libqb/lib/ipcs.c:304,1
    - Dst: _response_sock_one_way_get
      Src: /src/libqb/lib/ipcs.c:295,1
    - Dst: qb_ipc_us_ready
      Src: /src/libqb/lib/ipcs.c:297,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 3
    argNames:
    - c
    - data
    - size
    argTypes:
    - struct qb_ipcs_connection*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 307
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 307
    functionName: qb_ipcs_response_send
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - qb_ipc_us_ready
    - _response_sock_one_way_get
    - qb_ipcs_connection_ref
    - qb_ipcs_connection_unref
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t qb_ipcs_response_send(struct qb_ipcs_connection *c, const
      void *data,\t\t size_t size) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcs_connection*
    constantsTouched: []
    func_position:
      end: 515
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 515
    functionName: qb_ipcs_service_id_get
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_ipcs_service_id_get(struct qb_ipcs_connection * c) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libqb/lib/ipcs.c:887,1
    - Dst: memset
      Src: /src/libqb/lib/ipcs.c:889,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 3
    argNames:
    - c
    - stats
    - clear_after_read
    argTypes:
    - qb_ipcs_connection_t*
    - struct qb_ipcs_connection_stats*
    - int32_t
    constantsTouched: []
    func_position:
      end: 893
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 893
    functionName: qb_ipcs_connection_stats_get
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_ipcs_connection_stats_get(qb_ipcs_connection_t * c,\t\t\t
      struct qb_ipcs_connection_stats * stats,\t\t\t int32_t clear_after_read) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_atomic_int_inc
      Src: /src/libqb/lib/ipcs.c:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_ipcs_service*
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: qb_ipcs_ref
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - qb_atomic_int_inc
    linkageType: ''
    returnType: void
    signature: 'void qb_ipcs_ref(struct qb_ipcs_service *s) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - c
    - fc_enable
    argTypes:
    - struct qb_ipcs_connection*
    - int32_t
    constantsTouched: []
    func_position:
      end: 662
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 662
    functionName: qb_ipcs_flowcontrol_set
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void qb_ipcs_flowcontrol_set(struct qb_ipcs_connection *c,
      int32_t fc_enable) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libqb/lib/ipcs.c:223,1
    - Dst: qb_atomic_int_dec_and_test
      Src: /src/libqb/lib/ipcs.c:224,1
    - Dst: free
      Src: /src/libqb/lib/ipcs.c:227,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipcs.c:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_ipcs_service*
    constantsTouched: []
    func_position:
      end: 229
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 229
    functionName: qb_ipcs_unref
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - qb_atomic_int_dec_and_test
    - free
    - qb_util_log
    - assert
    linkageType: ''
    returnType: void
    signature: 'void qb_ipcs_unref(struct qb_ipcs_service *s) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipcs.c:692,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipcs.c:683,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 2
    argNames:
    - c
    - ms_timeout
    argTypes:
    - struct qb_ipcs_connection*
    - int32_t
    constantsTouched: []
    func_position:
      end: 713
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 713
    functionName: _process_request_
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - qb_util_log
    - qb_util_perror
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _process_request_(struct qb_ipcs_connection *c, int32_t
      ms_timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - qb_ipcs_service_t*
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: qb_ipcs_service_context_get
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'void *qb_ipcs_service_context_get(qb_ipcs_service_t* s) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: disp_mod
      Src: /src/libqb/lib/ipcs.c:156,1
    - Dst: disp_mod
      Src: /src/libqb/lib/ipcs.c:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcs_connection*
    constantsTouched: []
    func_position:
      end: 167
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 167
    functionName: _modify_dispatch_descriptor_
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - disp_mod
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _modify_dispatch_descriptor_(struct qb_ipcs_connection
      *c) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcs_connection*
    constantsTouched: []
    func_position:
      end: 267
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 267
    functionName: _event_sock_one_way_get
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct qb_ipc_one_way*
    signature: 'static struct qb_ipc_one_way *_event_sock_one_way_get(struct qb_ipcs_connection
      * c) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libqb/lib/ipcs.c:371,1
    - Dst: _modify_dispatch_descriptor_
      Src: /src/libqb/lib/ipcs.c:383,1
    - Dst: qb_ipc_us_send
      Src: /src/libqb/lib/ipcs.c:376,1
    - Dst: resend_event_notifications
      Src: /src/libqb/lib/ipcs.c:374,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcs_connection*
    constantsTouched: []
    func_position:
      end: 387
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 387
    functionName: new_event_notification
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - _modify_dispatch_descriptor_
    - qb_ipc_us_send
    - resend_event_notifications
    - assert
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t new_event_notification(struct qb_ipcs_connection *
      c) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libqb/lib/ipcs.c:521,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/ipcs.c:552,1
    - Dst: strlcpy
      Src: /src/libqb/lib/ipcs.c:540,1
    - Dst: qb_ipcs_ref
      Src: /src/libqb/lib/ipcs.c:550,1
    - Dst: qb_ipcs_connection_ref
      Src: /src/libqb/lib/ipcs.c:543,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_ipcs_service*
    constantsTouched: []
    func_position:
      end: 555
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 555
    functionName: qb_ipcs_connection_alloc
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - qb_ipcs_ref
    - calloc
    - qb_list_init
    - qb_ipcs_connection_ref
    - strlcpy
    linkageType: ''
    returnType: struct qb_ipcs_connection*
    signature: 'struct qb_ipcs_connection *qb_ipcs_connection_alloc(struct qb_ipcs_service
      *s) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - c
    - context
    argTypes:
    - struct qb_ipcs_connection*
    - void*
    constantsTouched: []
    func_position:
      end: 859
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 859
    functionName: qb_ipcs_context_set
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void qb_ipcs_context_set(struct qb_ipcs_connection *c, void *context) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_us_init
      Src: /src/libqb/lib/ipcs.c:115,1
    - Dst: qb_ipcs_us_publish
      Src: /src/libqb/lib/ipcs.c:134,1
    - Dst: qb_ipcs_unref
      Src: /src/libqb/lib/ipcs.c:144,1
    - Dst: qb_ipcs_shm_init
      Src: /src/libqb/lib/ipcs.c:121,1
    - Dst: qb_ipcs_us_withdraw
      Src: /src/libqb/lib/ipcs.c:136,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 28
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_ipcs_service*
    constantsTouched: []
    func_position:
      end: 148
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 148
    functionName: qb_ipcs_run
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - qb_ipcs_us_init
    - qb_ipcs_us_publish
    - qb_ipcs_shm_init
    - qb_ipcs_us_withdraw
    - qb_ipcs_unref
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_ipcs_run(struct qb_ipcs_service *s) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/lib/ipcs.c:193,1
    - Dst: qb_ipcs_flowcontrol_set
      Src: /src/libqb/lib/ipcs.c:201,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/ipcs.c:195,1
    - Dst: qb_ipcs_flowcontrol_set
      Src: /src/libqb/lib/ipcs.c:199,1
    - Dst: qb_ipcs_connection_ref
      Src: /src/libqb/lib/ipcs.c:196,1
    - Dst: qb_ipcs_flowcontrol_set
      Src: /src/libqb/lib/ipcs.c:203,1
    - Dst: _modify_dispatch_descriptor_
      Src: /src/libqb/lib/ipcs.c:206,1
    - Dst: qb_ipcs_connection_unref
      Src: /src/libqb/lib/ipcs.c:208,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 22
    argCount: 2
    argNames:
    - s
    - rl
    argTypes:
    - struct qb_ipcs_service*
    - enum qb_ipcs_rate_limit
    constantsTouched: []
    func_position:
      end: 210
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 210
    functionName: qb_ipcs_request_rate_limit
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - _modify_dispatch_descriptor_
    - qb_list_for_each_safe
    - qb_list_entry
    - qb_ipcs_connection_ref
    - qb_ipcs_connection_unref
    - qb_ipcs_flowcontrol_set
    linkageType: ''
    returnType: void
    signature: "void qb_ipcs_request_rate_limit(struct qb_ipcs_service *s,\t\t\t enum
      qb_ipcs_rate_limit rl) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_connection_ref
      Src: /src/libqb/lib/ipcs.c:401,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipcs.c:408,1
    - Dst: _event_sock_one_way_get
      Src: /src/libqb/lib/ipcs.c:414,1
    - Dst: new_event_notification
      Src: /src/libqb/lib/ipcs.c:405,1
    - Dst: resend_event_notifications
      Src: /src/libqb/lib/ipcs.c:417,1
    - Dst: qb_ipc_us_ready
      Src: /src/libqb/lib/ipcs.c:420,1
    - Dst: qb_ipcs_connection_unref
      Src: /src/libqb/lib/ipcs.c:428,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 3
    argNames:
    - c
    - data
    - size
    argTypes:
    - struct qb_ipcs_connection*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 430
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 430
    functionName: qb_ipcs_event_send
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - qb_ipc_us_ready
    - qb_ipcs_connection_ref
    - _event_sock_one_way_get
    - qb_ipcs_connection_unref
    - qb_util_perror
    - resend_event_notifications
    - new_event_notification
    linkageType: ''
    returnType: ssize_t
    signature: 'ssize_t qb_ipcs_event_send(struct qb_ipcs_connection * c, const void
      *data, size_t size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_atomic_int_inc
      Src: /src/libqb/lib/ipcs.c:561,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcs_connection*
    constantsTouched: []
    func_position:
      end: 563
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 563
    functionName: qb_ipcs_connection_ref
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - qb_atomic_int_inc
    linkageType: ''
    returnType: void
    signature: 'void qb_ipcs_connection_ref(struct qb_ipcs_connection *c) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct qb_ipcs_connection*
    constantsTouched: []
    func_position:
      end: 868
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 868
    functionName: qb_ipcs_context_get
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'void *qb_ipcs_context_get(struct qb_ipcs_connection *c) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - s
    - buf_size
    argTypes:
    - qb_ipcs_service_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 968
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 968
    functionName: qb_ipcs_enforce_buffer_size
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void qb_ipcs_enforce_buffer_size(qb_ipcs_service_t *s, uint32_t buf_size) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/lib/ipcs.c:241,1
    - Dst: qb_ipcs_disconnect
      Src: /src/libqb/lib/ipcs.c:246,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/ipcs.c:242,1
    - Dst: qb_ipcs_unref
      Src: /src/libqb/lib/ipcs.c:251,1
    - Dst: qb_ipcs_us_withdraw
      Src: /src/libqb/lib/ipcs.c:248,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_ipcs_service*
    constantsTouched: []
    func_position:
      end: 252
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 252
    functionName: qb_ipcs_destroy
    functionSourceFile: /src/libqb/lib/ipcs.c
    functionUses: []
    functionsReached:
    - qb_ipcs_disconnect
    - qb_list_for_each_safe
    - qb_list_entry
    - qb_ipcs_us_withdraw
    - qb_ipcs_unref
    linkageType: ''
    returnType: void
    signature: 'void qb_ipcs_destroy(struct qb_ipcs_service *s) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_target_get
      Src: /src/libqb/lib/log_syslog.c:98,1
    - Dst: closelog
      Src: /src/libqb/lib/log_syslog.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - target
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: _syslog_close
    functionSourceFile: /src/libqb/lib/log_syslog.c
    functionUses: []
    functionsReached:
    - qb_log_target_get
    - closelog
    linkageType: ''
    returnType: void
    signature: 'static void _syslog_close(int32_t target) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_target_get
      Src: /src/libqb/lib/log_syslog.c:108,1
    - Dst: closelog
      Src: /src/libqb/lib/log_syslog.c:110,1
    - Dst: openlog
      Src: /src/libqb/lib/log_syslog.c:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - target
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: _syslog_reload
    functionSourceFile: /src/libqb/lib/log_syslog.c
    functionUses: []
    functionsReached:
    - qb_log_target_get
    - closelog
    - openlog
    linkageType: ''
    returnType: void
    signature: 'static void _syslog_reload(int32_t target) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: openlog
      Src: /src/libqb/lib/log_syslog.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct qb_log_target*
    constantsTouched: []
    func_position:
      end: 127
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 127
    functionName: qb_log_syslog_open
    functionSourceFile: /src/libqb/lib/log_syslog.c
    functionUses: []
    functionsReached:
    - openlog
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_log_syslog_open(struct qb_log_target *t) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/libqb/lib/ipc_setup.c:313,1
    - Dst: close
      Src: /src/libqb/lib/ipc_setup.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 315
    functionName: qb_ipcc_us_sock_close
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached:
    - close
    - shutdown
    linkageType: ''
    returnType: void
    signature: 'void qb_ipcc_us_sock_close(int32_t sock) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libqb/lib/ipc_setup.c:552,1
    - Dst: SUN_LEN
      Src: /src/libqb/lib/ipc_setup.c:555,1
    - Dst: bind
      Src: /src/libqb/lib/ipc_setup.c:578,1
    - Dst: QB_SUN_LEN
      Src: /src/libqb/lib/ipc_setup.c:579,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_setup.c:568,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_setup.c:543,1
    - Dst: qb_sys_fd_nonblock_cloexec_set
      Src: /src/libqb/lib/ipc_setup.c:547,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_setup.c:558,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_setup.c:561,1
    - Dst: chmod
      Src: /src/libqb/lib/ipc_setup.c:592,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_setup.c:598,1
    - Dst: use_filesystem_sockets
      Src: /src/libqb/lib/ipc_setup.c:560,1
    - Dst: stat
      Src: /src/libqb/lib/ipc_setup.c:565,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_setup.c:582,1
    - Dst: unlink
      Src: /src/libqb/lib/ipc_setup.c:575,1
    - Dst: use_filesystem_sockets
      Src: /src/libqb/lib/ipc_setup.c:591,1
    - Dst: setsockopt
      Src: /src/libqb/lib/ipc_setup.c:595,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_setup.c:573,1
    - Dst: listen
      Src: /src/libqb/lib/ipc_setup.c:597,1
    - Dst: socket
      Src: /src/libqb/lib/ipc_setup.c:540,1
    - Dst: S_ISDIR
      Src: /src/libqb/lib/ipc_setup.c:566,1
    - Dst: close
      Src: /src/libqb/lib/ipc_setup.c:607,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_ipcs_service*
    constantsTouched: []
    func_position:
      end: 609
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 609
    functionName: qb_ipcs_us_publish
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached:
    - qb_sys_fd_nonblock_cloexec_set
    - use_filesystem_sockets
    - chmod
    - socket
    - listen
    - stat
    - memset
    - SUN_LEN
    - S_ISDIR
    - unlink
    - QB_SUN_LEN
    - qb_util_perror
    - qb_util_log
    - snprintf
    - bind
    - close
    - setsockopt
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_ipcs_us_publish(struct qb_ipcs_service * s) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getpeerucred
      Src: /src/libqb/lib/ipc_setup.c:333,1
    - Dst: ucred_geteuid
      Src: /src/libqb/lib/ipc_setup.c:335,1
    - Dst: ucred_getegid
      Src: /src/libqb/lib/ipc_setup.c:336,1
    - Dst: ucred_free
      Src: /src/libqb/lib/ipc_setup.c:338,1
    - Dst: ucred_getpid
      Src: /src/libqb/lib/ipc_setup.c:337,1
    - Dst: getpeereid
      Src: /src/libqb/lib/ipc_setup.c:352,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/libqb/lib/ipc_setup.c:368,1
    - Dst: CMSG_NXTHDR
      Src: /src/libqb/lib/ipc_setup.c:369,1
    - Dst: memcpy
      Src: /src/libqb/lib/ipc_setup.c:373,1
    - Dst: CMSG_DATA
      Src: /src/libqb/lib/ipc_setup.c:373,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct ipc_auth_data*
    constantsTouched: []
    func_position:
      end: 389
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 389
    functionName: qb_ipc_auth_creds
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached:
    - CMSG_DATA
    - CMSG_NXTHDR
    - memcpy
    - ucred_free
    - ucred_geteuid
    - ucred_getegid
    - getpeereid
    - ucred_getpid
    - getpeerucred
    - CMSG_FIRSTHDR
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t qb_ipc_auth_creds(struct ipc_auth_data *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_setup.c:614,1
    - Dst: getsockname
      Src: /src/libqb/lib/ipc_setup.c:621,1
    - Dst: use_filesystem_sockets
      Src: /src/libqb/lib/ipc_setup.c:618,1
    - Dst: shutdown
      Src: /src/libqb/lib/ipc_setup.c:616,1
    - Dst: unlink
      Src: /src/libqb/lib/ipc_setup.c:630,1
    - Dst: close
      Src: /src/libqb/lib/ipc_setup.c:634,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_ipcs_service*
    constantsTouched: []
    func_position:
      end: 637
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 637
    functionName: qb_ipcs_us_withdraw
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached:
    - use_filesystem_sockets
    - unlink
    - getsockname
    - qb_util_log
    - close
    - shutdown
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_ipcs_us_withdraw(struct qb_ipcs_service * s) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: init_ipc_auth_data
      Src: /src/libqb/lib/ipc_setup.c:487,1
    - Dst: nanosleep
      Src: /src/libqb/lib/ipc_setup.c:497,1
    - Dst: setsockopt
      Src: /src/libqb/lib/ipc_setup.c:502,1
    - Dst: qb_ipcc_us_sock_close
      Src: /src/libqb/lib/ipc_setup.c:489,1
    - Dst: qb_ipc_us_recv_msghdr
      Src: /src/libqb/lib/ipc_setup.c:493,1
    - Dst: destroy_ipc_auth_data
      Src: /src/libqb/lib/ipc_setup.c:507,1
    - Dst: memcpy
      Src: /src/libqb/lib/ipc_setup.c:511,1
    - Dst: qb_ipc_auth_creds
      Src: /src/libqb/lib/ipc_setup.c:513,1
    - Dst: destroy_ipc_auth_data
      Src: /src/libqb/lib/ipc_setup.c:518,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 2
    argNames:
    - c
    - r
    argTypes:
    - struct qb_ipcc_connection*
    - struct qb_ipc_connection_response*
    constantsTouched: []
    func_position:
      end: 521
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 521
    functionName: qb_ipcc_setup_connect_continue
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached:
    - qb_ipcc_us_sock_close
    - memcpy
    - qb_ipc_auth_creds
    - destroy_ipc_auth_data
    - qb_ipc_us_recv_msghdr
    - nanosleep
    - init_ipc_auth_data
    - setsockopt
    linkageType: ''
    returnType: int
    signature: 'int qb_ipcc_setup_connect_continue(struct qb_ipcc_connection *c, struct
      qb_ipc_connection_response *r) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_sigpipe_ctl
      Src: /src/libqb/lib/ipc_setup.c:80,1
    - Dst: send
      Src: /src/libqb/lib/ipc_setup.c:83,1
    - Dst: qb_sigpipe_ctl
      Src: /src/libqb/lib/ipc_setup.c:90,1
    - Dst: qb_sigpipe_ctl
      Src: /src/libqb/lib/ipc_setup.c:100,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 3
    argNames:
    - one_way
    - msg
    - len
    argTypes:
    - struct qb_ipc_one_way*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 103
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 103
    functionName: qb_ipc_us_send
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached:
    - qb_sigpipe_ctl
    - send
    linkageType: ''
    returnType: ssize_t
    signature: 'ssize_t qb_ipc_us_send(struct qb_ipc_one_way *one_way, const void
      *msg, size_t len) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: qb_sigpipe_ctl
      Src: /src/libqb/lib/ipc_setup.c:223,1
    - Dst: qb_sigpipe_ctl
      Src: /src/libqb/lib/ipc_setup.c:258,1
    - Dst: recv
      Src: /src/libqb/lib/ipc_setup.c:226,1
    - Dst: qb_ipc_us_ready
      Src: /src/libqb/lib/ipc_setup.c:231,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 4
    argNames:
    - one_way
    - msg
    - len
    - timeout
    argTypes:
    - struct qb_ipc_one_way*
    - void*
    - size_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 260
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 260
    functionName: qb_ipc_us_recv
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached:
    - qb_sigpipe_ctl
    - qb_ipc_us_ready
    - recv
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t qb_ipc_us_recv(struct qb_ipc_one_way * one_way,\t void *msg,
      size_t len, int32_t timeout) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 160
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 160
    functionName: qb_ipc_us_sock_error_is_disconnected
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_ipc_us_sock_error_is_disconnected(int err) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_unref
      Src: /src/libqb/lib/ipc_setup.c:395,1
    - Dst: free
      Src: /src/libqb/lib/ipc_setup.c:399,1
    - Dst: free
      Src: /src/libqb/lib/ipc_setup.c:401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct ipc_auth_data*
    constantsTouched: []
    func_position:
      end: 402
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 402
    functionName: destroy_ipc_auth_data
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached:
    - free
    - qb_ipcs_unref
    linkageType: ''
    returnType: void
    signature: 'static void destroy_ipc_auth_data(struct ipc_auth_data *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcc_stream_sock_connect
      Src: /src/libqb/lib/ipc_setup.c:452,1
    - Dst: qb_ipcc_us_sock_close
      Src: /src/libqb/lib/ipc_setup.c:467,1
    - Dst: setsockopt
      Src: /src/libqb/lib/ipc_setup.c:457,1
    - Dst: qb_ipc_us_send
      Src: /src/libqb/lib/ipc_setup.c:465,1
    - Dst: memset
      Src: /src/libqb/lib/ipc_setup.c:461,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - c
    - r
    argTypes:
    - struct qb_ipcc_connection*
    - struct qb_ipc_connection_response*
    constantsTouched: []
    func_position:
      end: 473
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 473
    functionName: qb_ipcc_us_setup_connect
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached:
    - qb_ipcc_us_sock_close
    - memset
    - qb_ipcc_stream_sock_connect
    - qb_ipc_us_send
    - setsockopt
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_ipcc_us_setup_connect(struct qb_ipcc_connection *c,\t\t\t
      struct qb_ipc_connection_response *r) "
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libqb/lib/ipc_setup.c:662,1
    - Dst: qb_ipcc_us_sock_close
      Src: /src/libqb/lib/ipc_setup.c:656,1
    - Dst: chmod
      Src: /src/libqb/lib/ipc_setup.c:693,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_setup.c:703,1
    - Dst: memcpy
      Src: /src/libqb/lib/ipc_setup.c:701,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_setup.c:767,1
    - Dst: qb_ipcc_us_sock_close
      Src: /src/libqb/lib/ipc_setup.c:781,1
    - Dst: qb_ipcs_disconnect
      Src: /src/libqb/lib/ipc_setup.c:783,1
    - Dst: QB_MAX
      Src: /src/libqb/lib/ipc_setup.c:649,1
    - Dst: memset
      Src: /src/libqb/lib/ipc_setup.c:676,1
    - Dst: mkdtemp
      Src: /src/libqb/lib/ipc_setup.c:689,1
    - Dst: chown
      Src: /src/libqb/lib/ipc_setup.c:698,1
    - Dst: qb_ipc_us_send
      Src: /src/libqb/lib/ipc_setup.c:751,1
    - Dst: qb_ipcs_connection_unref
      Src: /src/libqb/lib/ipc_setup.c:764,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_setup.c:770,1
    - Dst: qb_ipcc_us_sock_close
      Src: /src/libqb/lib/ipc_setup.c:663,1
    - Dst: qb_list_add
      Src: /src/libqb/lib/ipc_setup.c:738,1
    - Dst: qb_ipcs_connection_unref
      Src: /src/libqb/lib/ipc_setup.c:780,1
    - Dst: calloc
      Src: /src/libqb/lib/ipc_setup.c:660,1
    - Dst: qb_ipcs_connection_alloc
      Src: /src/libqb/lib/ipc_setup.c:654,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_setup.c:679,1
    - Dst: qb_ipcs_connection_ref
      Src: /src/libqb/lib/ipc_setup.c:757,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_setup.c:725,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_setup.c:773,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 120
    argCount: 6
    argNames:
    - s
    - auth_result
    - sock
    - msg
    - len
    - ugp
    argTypes:
    - struct qb_ipcs_service*
    - int32_t
    - int32_t
    - void*
    - size_t
    - struct ipc_auth_ugp*
    constantsTouched: []
    func_position:
      end: 787
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 787
    functionName: handle_new_connection
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached:
    - qb_ipcc_us_sock_close
    - chmod
    - qb_ipcs_disconnect
    - memcpy
    - calloc
    - memset
    - qb_ipc_us_send
    - snprintf
    - qb_ipcs_connection_ref
    - chown
    - free
    - qb_list_add
    - qb_ipcs_connection_unref
    - qb_util_perror
    - qb_util_log
    - QB_MAX
    - mkdtemp
    - qb_ipcs_connection_alloc
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t handle_new_connection(struct qb_ipcs_service *s,\t\t
      int32_t auth_result,\t\t int32_t sock,\t\t void *msg, size_t len, struct ipc_auth_ugp
      *ugp) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_sigpipe_ctl
      Src: /src/libqb/lib/ipc_setup.c:111,1
    - Dst: qb_sigpipe_ctl
      Src: /src/libqb/lib/ipc_setup.c:127,1
    - Dst: qb_sigpipe_ctl
      Src: /src/libqb/lib/ipc_setup.c:123,1
    - Dst: recvmsg
      Src: /src/libqb/lib/ipc_setup.c:117,1
    - Dst: qb_sigpipe_ctl
      Src: /src/libqb/lib/ipc_setup.c:119,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_setup.c:128,1
    - Dst: qb_sigpipe_ctl
      Src: /src/libqb/lib/ipc_setup.c:137,1
    - Dst: assert
      Src: /src/libqb/lib/ipc_setup.c:138,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct ipc_auth_data*
    constantsTouched: []
    func_position:
      end: 141
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 141
    functionName: qb_ipc_us_recv_msghdr
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached:
    - qb_util_log
    - qb_sigpipe_ctl
    - recvmsg
    - assert
    linkageType: ''
    returnType: ssize_t
    signature: 'static ssize_t qb_ipc_us_recv_msghdr(struct ipc_auth_data *data) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/libqb/lib/ipc_setup.c:182,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_setup.c:190,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_setup.c:194,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_setup.c:198,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_setup.c:202,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 4
    argNames:
    - ow_data
    - ow_conn
    - ms_timeout
    - events
    argTypes:
    - struct qb_ipc_one_way*
    - struct qb_ipc_one_way*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 208
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 208
    functionName: qb_ipc_us_ready
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached:
    - qb_util_log
    - poll
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_ipc_us_ready(struct qb_ipc_one_way * ow_data,\t\tstruct
      qb_ipc_one_way * ow_conn,\t\tint32_t ms_timeout, int32_t events) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/libqb/lib/ipc_setup.c:269,1
    - Dst: QB_SUN_LEN
      Src: /src/libqb/lib/ipc_setup.c:284,1
    - Dst: qb_sys_fd_nonblock_cloexec_set
      Src: /src/libqb/lib/ipc_setup.c:276,1
    - Dst: memset
      Src: /src/libqb/lib/ipc_setup.c:281,1
    - Dst: qb_socket_nosigpipe
      Src: /src/libqb/lib/ipc_setup.c:274,1
    - Dst: use_filesystem_sockets
      Src: /src/libqb/lib/ipc_setup.c:287,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_setup.c:288,1
    - Dst: snprintf
      Src: /src/libqb/lib/ipc_setup.c:290,1
    - Dst: connect
      Src: /src/libqb/lib/ipc_setup.c:294,1
    - Dst: QB_SUN_LEN
      Src: /src/libqb/lib/ipc_setup.c:295,1
    - Dst: close
      Src: /src/libqb/lib/ipc_setup.c:304,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - socket_name
    - sock_pt
    argTypes:
    - char*
    - int32_t*
    constantsTouched: []
    func_position:
      end: 308
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 308
    functionName: qb_ipcc_stream_sock_connect
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached:
    - qb_sys_fd_nonblock_cloexec_set
    - use_filesystem_sockets
    - socket
    - memset
    - connect
    - qb_socket_nosigpipe
    - QB_SUN_LEN
    - snprintf
    - close
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t qb_ipcc_stream_sock_connect(const char *socket_name,
      int32_t * sock_pt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libqb/lib/ipc_setup.c:407,1
    - Dst: CMSG_SPACE
      Src: /src/libqb/lib/ipc_setup.c:425,1
    - Dst: destroy_ipc_auth_data
      Src: /src/libqb/lib/ipc_setup.c:421,1
    - Dst: CMSG_SPACE
      Src: /src/libqb/lib/ipc_setup.c:419,1
    - Dst: calloc
      Src: /src/libqb/lib/ipc_setup.c:419,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - sock
    - len
    argTypes:
    - int
    - size_t
    constantsTouched: []
    func_position:
      end: 440
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 440
    functionName: init_ipc_auth_data
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached:
    - calloc
    - destroy_ipc_auth_data
    - CMSG_SPACE
    linkageType: ''
    returnType: struct ipc_auth_data*
    signature: 'static struct ipc_auth_data *init_ipc_auth_data(int sock, size_t len) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_setup.c:800,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_setup.c:806,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_setup.c:811,1
    - Dst: qb_ipc_auth_creds
      Src: /src/libqb/lib/ipc_setup.c:830,1
    - Dst: qb_ipc_us_recv_msghdr
      Src: /src/libqb/lib/ipc_setup.c:819,1
    - Dst: setsockopt
      Src: /src/libqb/lib/ipc_setup.c:834,1
    - Dst: close
      Src: /src/libqb/lib/ipc_setup.c:840,1
    - Dst: handle_new_connection
      Src: /src/libqb/lib/ipc_setup.c:842,1
    - Dst: close
      Src: /src/libqb/lib/ipc_setup.c:844,1
    - Dst: destroy_ipc_auth_data
      Src: /src/libqb/lib/ipc_setup.c:846,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 3
    argNames:
    - fd
    - revents
    - d
    argTypes:
    - int32_t
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 849
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 849
    functionName: process_auth
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached:
    - qb_ipc_auth_creds
    - handle_new_connection
    - destroy_ipc_auth_data
    - qb_ipc_us_recv_msghdr
    - qb_util_log
    - close
    - setsockopt
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t process_auth(int32_t fd, int32_t revents, void *d) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/libqb/lib/ipc_setup.c:940,1
    - Dst: rmdir
      Src: /src/libqb/lib/ipc_setup.c:949,1
    - Dst: memcpy
      Src: /src/libqb/lib/ipc_setup.c:943,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 952
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 952
    functionName: remove_tempdir
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached:
    - rmdir
    - strrchr
    - memcpy
    linkageType: ''
    returnType: void
    signature: 'void remove_tempdir(const char *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_ipc_auth_data
      Src: /src/libqb/lib/ipc_setup.c:860,1
    - Dst: close
      Src: /src/libqb/lib/ipc_setup.c:862,1
    - Dst: qb_ipcs_ref
      Src: /src/libqb/lib/ipc_setup.c:868,1
    - Dst: setsockopt
      Src: /src/libqb/lib/ipc_setup.c:871,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ipc_setup.c:879,1
    - Dst: close
      Src: /src/libqb/lib/ipc_setup.c:881,1
    - Dst: destroy_ipc_auth_data
      Src: /src/libqb/lib/ipc_setup.c:882,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - sock
    - s
    argTypes:
    - int32_t
    - struct qb_ipcs_service*
    constantsTouched: []
    func_position:
      end: 884
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 884
    functionName: qb_ipcs_uc_recv_and_auth
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached:
    - qb_ipcs_ref
    - destroy_ipc_auth_data
    - init_ipc_auth_data
    - qb_util_log
    - close
    - setsockopt
    linkageType: ''
    returnType: void
    signature: 'static void qb_ipcs_uc_recv_and_auth(int32_t sock, struct qb_ipcs_service
      *s) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/libqb/lib/ipc_setup.c:904,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_setup.c:916,1
    - Dst: qb_sys_fd_nonblock_cloexec_set
      Src: /src/libqb/lib/ipc_setup.c:923,1
    - Dst: close
      Src: /src/libqb/lib/ipc_setup.c:925,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ipc_setup.c:910,1
    - Dst: qb_ipcs_uc_recv_and_auth
      Src: /src/libqb/lib/ipc_setup.c:932,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 3
    argNames:
    - fd
    - revent
    - data
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 934
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 934
    functionName: qb_ipcs_us_connection_acceptor
    functionSourceFile: /src/libqb/lib/ipc_setup.c
    functionUses: []
    functionsReached:
    - qb_sys_fd_nonblock_cloexec_set
    - accept
    - qb_util_perror
    - qb_ipcs_uc_recv_and_auth
    - close
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t qb_ipcs_us_connection_acceptor(int fd, int revent,
      void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_init
      Src: /src/libqb/lib/loop.c:57,1
    - Dst: qb_list_add_tail
      Src: /src/libqb/lib/loop.c:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 2
    argNames:
    - level
    - job
    argTypes:
    - struct qb_loop_level*
    - struct qb_loop_item*
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: qb_loop_level_item_add
    functionSourceFile: /src/libqb/lib/loop.c
    functionUses: []
    functionsReached:
    - qb_list_init
    - qb_list_add_tail
    linkageType: ''
    returnType: void
    signature: 'void qb_loop_level_item_add(struct qb_loop_level *level, struct qb_loop_item
      *job) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: qb_loop_default_get
    functionSourceFile: /src/libqb/lib/loop.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct qb_loop*
    signature: 'struct qb_loop *qb_loop_default_get(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_timer_destroy
      Src: /src/libqb/lib/loop.c:116,1
    - Dst: qb_loop_signals_destroy
      Src: /src/libqb/lib/loop.c:119,1
    - Dst: qb_loop_jobs_destroy
      Src: /src/libqb/lib/loop.c:117,1
    - Dst: qb_loop_poll_destroy
      Src: /src/libqb/lib/loop.c:118,1
    - Dst: free
      Src: /src/libqb/lib/loop.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct qb_loop*
    constantsTouched: []
    func_position:
      end: 125
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 125
    functionName: qb_loop_destroy
    functionSourceFile: /src/libqb/lib/loop.c
    functionUses: []
    functionsReached:
    - qb_loop_signals_destroy
    - qb_loop_timer_destroy
    - qb_loop_poll_destroy
    - free
    - qb_loop_jobs_destroy
    linkageType: ''
    returnType: void
    signature: 'void qb_loop_destroy(struct qb_loop *l) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_empty
      Src: /src/libqb/lib/loop.c:38,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/loop.c:41,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/loop.c:40,1
    - Dst: qb_list_first_entry
      Src: /src/libqb/lib/loop.c:39,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 1
    argNames:
    - level
    argTypes:
    - struct qb_loop_level*
    constantsTouched: []
    func_position:
      end: 52
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 52
    functionName: qb_loop_run_level
    functionSourceFile: /src/libqb/lib/loop.c
    functionUses: []
    functionsReached:
    - qb_list_del
    - qb_list_init
    - qb_list_empty
    - qb_list_first_entry
    linkageType: ''
    returnType: void
    signature: 'static void qb_loop_run_level(struct qb_loop_level *level) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_empty
      Src: /src/libqb/lib/loop.c:68,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/loop.c:72,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/loop.c:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 2
    argNames:
    - level
    - job
    argTypes:
    - struct qb_loop_level*
    - struct qb_loop_item*
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: qb_loop_level_item_del
    functionSourceFile: /src/libqb/lib/loop.c
    functionUses: []
    functionsReached:
    - qb_list_del
    - qb_list_init
    - qb_list_empty
    linkageType: ''
    returnType: void
    signature: 'void qb_loop_level_item_del(struct qb_loop_level *level, struct qb_loop_item
      *job) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libqb/lib/loop.c:85,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/loop.c:98,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/loop.c:97,1
    - Dst: qb_loop_timer_create
      Src: /src/libqb/lib/loop.c:102,1
    - Dst: qb_loop_jobs_create
      Src: /src/libqb/lib/loop.c:103,1
    - Dst: qb_loop_poll_create
      Src: /src/libqb/lib/loop.c:104,1
    - Dst: qb_loop_signals_create
      Src: /src/libqb/lib/loop.c:105,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 111
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 111
    functionName: qb_loop_create
    functionSourceFile: /src/libqb/lib/loop.c
    functionUses: []
    functionsReached:
    - malloc
    - qb_loop_timer_create
    - qb_loop_jobs_create
    - qb_list_init
    - qb_loop_poll_create
    - qb_loop_signals_create
    linkageType: ''
    returnType: struct qb_loop*
    signature: 'struct qb_loop *qb_loop_create(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_log
      Src: /src/libqb/lib/loop.c:134,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct qb_loop*
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: qb_loop_stop
    functionSourceFile: /src/libqb/lib/loop.c
    functionUses: []
    functionsReached:
    - qb_util_log
    linkageType: ''
    returnType: void
    signature: 'void qb_loop_stop(struct qb_loop *l) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_perror
      Src: /src/libqb/lib/loop.c:179,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/loop.c:169,1
    - Dst: qb_loop_timer_msec_duration_to_expire
      Src: /src/libqb/lib/loop.c:196,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/loop.c:204,1
    - Dst: qb_loop_run_level
      Src: /src/libqb/lib/loop.c:210,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 1
    argNames:
    - lp
    argTypes:
    - struct qb_loop*
    constantsTouched: []
    func_position:
      end: 218
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 218
    functionName: qb_loop_run
    functionSourceFile: /src/libqb/lib/loop.c
    functionUses: []
    functionsReached:
    - qb_loop_timer_msec_duration_to_expire
    - qb_util_perror
    - qb_loop_run_level
    linkageType: ''
    returnType: void
    signature: 'void qb_loop_run(struct qb_loop *lp) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _rpl_sem_timedwait
      Src: /src/libqb/lib/rpl_sem.c:140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - sem
    - timeout
    argTypes:
    - rpl_sem_t*
    - struct timespec*
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: rpl_sem_timedwait
    functionSourceFile: /src/libqb/lib/rpl_sem.c
    functionUses: []
    functionsReached:
    - _rpl_sem_timedwait
    linkageType: ''
    returnType: int
    signature: 'int rpl_sem_timedwait(rpl_sem_t * sem, const struct timespec *timeout) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/libqb/lib/rpl_sem.c:76,1
    - Dst: pthread_cond_timedwait
      Src: /src/libqb/lib/rpl_sem.c:88,1
    - Dst: pthread_mutex_unlock
      Src: /src/libqb/lib/rpl_sem.c:114,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 22
    argCount: 2
    argNames:
    - sem
    - timeout
    argTypes:
    - rpl_sem_t*
    - struct timespec*
    constantsTouched: []
    func_position:
      end: 116
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 116
    functionName: _rpl_sem_timedwait
    functionSourceFile: /src/libqb/lib/rpl_sem.c
    functionUses: []
    functionsReached:
    - pthread_cond_timedwait
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: 'static int _rpl_sem_timedwait(rpl_sem_t * sem, const struct timespec
      *timeout) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/libqb/lib/rpl_sem.c:169,1
    - Dst: pthread_cond_broadcast
      Src: /src/libqb/lib/rpl_sem.c:175,1
    - Dst: pthread_mutex_unlock
      Src: /src/libqb/lib/rpl_sem.c:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - sem
    argTypes:
    - rpl_sem_t*
    constantsTouched: []
    func_position:
      end: 182
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 182
    functionName: rpl_sem_post
    functionSourceFile: /src/libqb/lib/rpl_sem.c
    functionUses: []
    functionsReached:
    - pthread_cond_broadcast
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: 'int rpl_sem_post(rpl_sem_t * sem) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutexattr_init
      Src: /src/libqb/lib/rpl_sem.c:37,1
    - Dst: pthread_mutex_init
      Src: /src/libqb/lib/rpl_sem.c:53,1
    - Dst: pthread_condattr_setpshared
      Src: /src/libqb/lib/rpl_sem.c:46,1
    - Dst: pthread_condattr_init
      Src: /src/libqb/lib/rpl_sem.c:38,1
    - Dst: pthread_mutexattr_setpshared
      Src: /src/libqb/lib/rpl_sem.c:41,1
    - Dst: pthread_cond_init
      Src: /src/libqb/lib/rpl_sem.c:57,1
    - Dst: pthread_mutex_destroy
      Src: /src/libqb/lib/rpl_sem.c:65,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/libqb/lib/rpl_sem.c:68,1
    - Dst: pthread_condattr_destroy
      Src: /src/libqb/lib/rpl_sem.c:69,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - sem
    - pshared
    - count
    argTypes:
    - rpl_sem_t*
    - int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 71
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 71
    functionName: rpl_sem_init
    functionSourceFile: /src/libqb/lib/rpl_sem.c
    functionUses: []
    functionsReached:
    - pthread_cond_init
    - pthread_mutexattr_destroy
    - pthread_mutexattr_setpshared
    - pthread_condattr_destroy
    - pthread_condattr_init
    - pthread_mutexattr_init
    - pthread_mutex_destroy
    - pthread_condattr_setpshared
    - pthread_mutex_init
    linkageType: ''
    returnType: int
    signature: 'int rpl_sem_init(rpl_sem_t * sem, int pshared, unsigned int count) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/libqb/lib/rpl_sem.c:151,1
    - Dst: pthread_mutex_unlock
      Src: /src/libqb/lib/rpl_sem.c:158,1
    - Dst: pthread_mutex_unlock
      Src: /src/libqb/lib/rpl_sem.c:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - sem
    argTypes:
    - rpl_sem_t*
    constantsTouched: []
    func_position:
      end: 164
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 164
    functionName: rpl_sem_trywait
    functionSourceFile: /src/libqb/lib/rpl_sem.c
    functionUses: []
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: 'int rpl_sem_trywait(rpl_sem_t * sem) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_timespec_from_epoch_get
      Src: /src/libqb/lib/rpl_sem.c:126,1
    - Dst: _rpl_sem_timedwait
      Src: /src/libqb/lib/rpl_sem.c:128,1
    - Dst: qb_timespec_add_ms
      Src: /src/libqb/lib/rpl_sem.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - sem
    argTypes:
    - rpl_sem_t*
    constantsTouched: []
    func_position:
      end: 135
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 135
    functionName: rpl_sem_wait
    functionSourceFile: /src/libqb/lib/rpl_sem.c
    functionUses: []
    functionsReached:
    - qb_timespec_add_ms
    - _rpl_sem_timedwait
    - qb_util_timespec_from_epoch_get
    linkageType: ''
    returnType: int
    signature: 'int rpl_sem_wait(rpl_sem_t * sem) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/libqb/lib/rpl_sem.c:187,1
    - Dst: pthread_mutex_unlock
      Src: /src/libqb/lib/rpl_sem.c:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - sem
    - sval
    argTypes:
    - rpl_sem_t*
    - int*
    constantsTouched: []
    func_position:
      end: 195
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 195
    functionName: rpl_sem_getvalue
    functionSourceFile: /src/libqb/lib/rpl_sem.c
    functionUses: []
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: 'int rpl_sem_getvalue(rpl_sem_t * sem, int *sval) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/libqb/lib/rpl_sem.c:200,1
    - Dst: pthread_cond_broadcast
      Src: /src/libqb/lib/rpl_sem.c:207,1
    - Dst: pthread_mutex_unlock
      Src: /src/libqb/lib/rpl_sem.c:206,1
    - Dst: pthread_cond_destroy
      Src: /src/libqb/lib/rpl_sem.c:209,1
    - Dst: pthread_mutex_destroy
      Src: /src/libqb/lib/rpl_sem.c:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - sem
    argTypes:
    - rpl_sem_t*
    constantsTouched: []
    func_position:
      end: 213
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 213
    functionName: rpl_sem_destroy
    functionSourceFile: /src/libqb/lib/rpl_sem.c
    functionUses: []
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - pthread_mutex_destroy
    - pthread_cond_broadcast
    - pthread_cond_destroy
    linkageType: ''
    returnType: int
    signature: 'int rpl_sem_destroy(rpl_sem_t * sem) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libqb/lib/log_blackbox.c:147,1
    - Dst: getpid
      Src: /src/libqb/lib/log_blackbox.c:147,1
    - Dst: qb_rb_open
      Src: /src/libqb/lib/log_blackbox.c:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct qb_log_target*
    constantsTouched: []
    func_position:
      end: 160
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 160
    functionName: qb_log_blackbox_open
    functionSourceFile: /src/libqb/lib/log_blackbox.c
    functionUses: []
    functionsReached:
    - snprintf
    - getpid
    - qb_rb_open
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_log_blackbox_open(struct qb_log_target *t) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_target_get
      Src: /src/libqb/lib/log_blackbox.c:63,1
    - Dst: qb_rb_close
      Src: /src/libqb/lib/log_blackbox.c:79,1
    - Dst: strlen
      Src: /src/libqb/lib/log_blackbox.c:69,1
    - Dst: qb_rb_chunk_alloc
      Src: /src/libqb/lib/log_blackbox.c:74,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/log_blackbox.c:78,1
    - Dst: qb_rb_lastref_and_ret
      Src: /src/libqb/lib/log_blackbox.c:79,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_blackbox.c:86,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_blackbox.c:90,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_blackbox.c:94,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_blackbox.c:98,1
    - Dst: qb_vsnprintf_serialize
      Src: /src/libqb/lib/log_blackbox.c:112,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_blackbox.c:126,1
    - Dst: qb_rb_chunk_commit
      Src: /src/libqb/lib/log_blackbox.c:128,1
    - Dst: qb_vsnprintf_serialize
      Src: /src/libqb/lib/log_blackbox.c:117,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_blackbox.c:104,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_blackbox.c:100,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - target
    - cs
    - timestamp
    - ap
    argTypes:
    - int32_t
    - struct qb_log_callsite*
    - struct timespec*
    - va_list
    constantsTouched: []
    func_position:
      end: 129
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 129
    functionName: _blackbox_vlogger
    functionSourceFile: /src/libqb/lib/log_blackbox.c
    functionUses: []
    functionsReached:
    - qb_vsnprintf_serialize
    - qb_log_target_get
    - memcpy
    - qb_rb_chunk_alloc
    - qb_rb_lastref_and_ret
    - qb_util_perror
    - qb_rb_chunk_commit
    - strlen
    - qb_rb_close
    linkageType: ''
    returnType: void
    signature: "static void _blackbox_vlogger(int32_t target,\t\t struct qb_log_callsite
      *cs, struct timespec *timestamp, va_list ap) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_target_get
      Src: /src/libqb/lib/log_blackbox.c:35,1
    - Dst: qb_rb_open
      Src: /src/libqb/lib/log_blackbox.c:41,1
    - Dst: qb_rb_close
      Src: /src/libqb/lib/log_blackbox.c:40,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - target
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: _blackbox_reload
    functionSourceFile: /src/libqb/lib/log_blackbox.c
    functionUses: []
    functionsReached:
    - qb_rb_close
    - qb_log_target_get
    - qb_rb_open
    linkageType: ''
    returnType: void
    signature: 'static void _blackbox_reload(int32_t target) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_target_get
      Src: /src/libqb/lib/log_blackbox.c:134,1
    - Dst: qb_rb_close
      Src: /src/libqb/lib/log_blackbox.c:136,1
    - Dst: qb_rb_lastref_and_ret
      Src: /src/libqb/lib/log_blackbox.c:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - target
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: _blackbox_close
    functionSourceFile: /src/libqb/lib/log_blackbox.c
    functionUses: []
    functionsReached:
    - qb_rb_lastref_and_ret
    - qb_rb_close
    - qb_log_target_get
    linkageType: ''
    returnType: void
    signature: 'static void _blackbox_close(int32_t target) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libqb/lib/log_blackbox.c:189,1
    - Dst: write
      Src: /src/libqb/lib/log_blackbox.c:201,1
    - Dst: qb_log_target_get
      Src: /src/libqb/lib/log_blackbox.c:207,1
    - Dst: close
      Src: /src/libqb/lib/log_blackbox.c:203,1
    - Dst: qb_rb_write_to_file
      Src: /src/libqb/lib/log_blackbox.c:209,1
    - Dst: close
      Src: /src/libqb/lib/log_blackbox.c:213,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 216
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 216
    functionName: qb_log_blackbox_write_to_file
    functionSourceFile: /src/libqb/lib/log_blackbox.c
    functionUses: []
    functionsReached:
    - qb_log_target_get
    - write
    - open
    - qb_rb_write_to_file
    - close
    linkageType: ''
    returnType: ssize_t
    signature: 'ssize_t qb_log_blackbox_write_to_file(const char *filename) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libqb/lib/log_blackbox.c:286,1
    - Dst: perror
      Src: /src/libqb/lib/log_blackbox.c:291,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_blackbox.c:332,1
    - Dst: localtime
      Src: /src/libqb/lib/log_blackbox.c:341,1
    - Dst: strftime
      Src: /src/libqb/lib/log_blackbox.c:343,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_blackbox.c:352,1
    - Dst: qb_vsnprintf_deserialize
      Src: /src/libqb/lib/log_blackbox.c:364,1
    - Dst: qb_log_priority2str
      Src: /src/libqb/lib/log_blackbox.c:374,1
    - Dst: free
      Src: /src/libqb/lib/log_blackbox.c:381,1
    - Dst: read
      Src: /src/libqb/lib/log_blackbox.c:241,1
    - Dst: qb_rb_create_from_file
      Src: /src/libqb/lib/log_blackbox.c:259,1
    - Dst: qb_rb_chunk_read
      Src: /src/libqb/lib/log_blackbox.c:283,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_blackbox.c:306,1
    - Dst: printf
      Src: /src/libqb/lib/log_blackbox.c:313,1
    - Dst: printf
      Src: /src/libqb/lib/log_blackbox.c:320,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_blackbox.c:298,1
    - Dst: snprintf
      Src: /src/libqb/lib/log_blackbox.c:346,1
    - Dst: printf
      Src: /src/libqb/lib/log_blackbox.c:355,1
    - Dst: lseek
      Src: /src/libqb/lib/log_blackbox.c:255,1
    - Dst: close
      Src: /src/libqb/lib/log_blackbox.c:244,1
    - Dst: close
      Src: /src/libqb/lib/log_blackbox.c:260,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_blackbox.c:336,1
    - Dst: printf
      Src: /src/libqb/lib/log_blackbox.c:373,1
    - Dst: open
      Src: /src/libqb/lib/log_blackbox.c:232,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/log_blackbox.c:235,1
    - Dst: malloc
      Src: /src/libqb/lib/log_blackbox.c:264,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_blackbox.c:310,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_blackbox.c:302,1
    - Dst: snprintf
      Src: /src/libqb/lib/log_blackbox.c:348,1
    - Dst: assert
      Src: /src/libqb/lib/log_blackbox.c:365,1
    - Dst: qb_rb_close
      Src: /src/libqb/lib/log_blackbox.c:380,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 121
    argCount: 1
    argNames:
    - bb_filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 383
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 383
    functionName: qb_log_blackbox_print_from_file
    functionSourceFile: /src/libqb/lib/log_blackbox.c
    functionUses: []
    functionsReached:
    - lseek
    - free
    - printf
    - localtime
    - memcpy
    - qb_rb_create_from_file
    - qb_log_priority2str
    - qb_rb_chunk_read
    - strftime
    - snprintf
    - open
    - qb_rb_close
    - read
    - perror
    - close
    - malloc
    - assert
    - qb_vsnprintf_deserialize
    - qb_util_perror
    linkageType: ''
    returnType: int
    signature: 'int qb_log_blackbox_print_from_file(const char *bb_filename) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_init
      Src: /src/libqb/lib/log_format.c:93,1
    - Dst: assert
      Src: /src/libqb/lib/log_format.c:94,1
    - Dst: strdup
      Src: /src/libqb/lib/log_format.c:98,1
    - Dst: qb_log_target_get
      Src: /src/libqb/lib/log_format.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: qb_log_format_init
    functionSourceFile: /src/libqb/lib/log_format.c
    functionUses: []
    functionsReached:
    - strdup
    - pthread_rwlock_init
    - qb_log_target_get
    - assert
    linkageType: ''
    returnType: void
    signature: 'void qb_log_format_init(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libqb/lib/log_format.c:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - fname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 153
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 153
    functionName: qb_log_facility2int
    functionSourceFile: /src/libqb/lib/log_format.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_log_facility2int(const char *fname) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - fnum
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 167
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 167
    functionName: qb_log_facility2str
    functionSourceFile: /src/libqb/lib/log_format.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *qb_log_facility2str(int32_t fnum) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fn
    argTypes:
    - qb_log_tags_stringify_fn
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: qb_log_tags_stringify_fn_set
    functionSourceFile: /src/libqb/lib/log_format.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void qb_log_tags_stringify_fn_set(qb_log_tags_stringify_fn fn) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_target_get
      Src: /src/libqb/lib/log_format.c:332,1
    - Dst: pthread_rwlock_unlock
      Src: /src/libqb/lib/log_format.c:336,1
    - Dst: pthread_rwlock_rdlock
      Src: /src/libqb/lib/log_format.c:334,1
    - Dst: isdigit
      Src: /src/libqb/lib/log_format.c:355,1
    - Dst: atoi
      Src: /src/libqb/lib/log_format.c:356,1
    - Dst: isdigit
      Src: /src/libqb/lib/log_format.c:358,1
    - Dst: _user_tags_stringify_fn
      Src: /src/libqb/lib/log_format.c:365,1
    - Dst: strrchr
      Src: /src/libqb/lib/log_format.c:379,1
    - Dst: snprintf
      Src: /src/libqb/lib/log_format.c:390,1
    - Dst: localtime_r
      Src: /src/libqb/lib/log_format.c:397,1
    - Dst: snprintf
      Src: /src/libqb/lib/log_format.c:398,1
    - Dst: _strcpy_cutoff
      Src: /src/libqb/lib/log_format.c:434,1
    - Dst: localtime_r
      Src: /src/libqb/lib/log_format.c:408,1
    - Dst: snprintf
      Src: /src/libqb/lib/log_format.c:409,1
    - Dst: pthread_rwlock_unlock
      Src: /src/libqb/lib/log_format.c:445,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 85
    argCount: 5
    argNames:
    - target
    - cs
    - the_ts
    - formatted_message
    - output_buffer
    argTypes:
    - int32_t
    - struct qb_log_callsite*
    - struct timespec*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 459
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 459
    functionName: qb_log_target_format
    functionSourceFile: /src/libqb/lib/log_format.c
    functionUses: []
    functionsReached:
    - atoi
    - pthread_rwlock_unlock
    - qb_log_target_get
    - _strcpy_cutoff
    - pthread_rwlock_rdlock
    - strrchr
    - isdigit
    - localtime_r
    - snprintf
    - _user_tags_stringify_fn
    linkageType: ''
    returnType: void
    signature: "void qb_log_target_format(int32_t target,\t\t struct qb_log_callsite
      *cs,\t\t struct timespec *the_ts,\t\t const char *formatted_message, char *output_buffer) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/libqb/lib/log_format.c:470,1
    - Dst: QB_MIN
      Src: /src/libqb/lib/log_format.c:472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - src
    - maxlen
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 473
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 473
    functionName: my_strlcpy
    functionSourceFile: /src/libqb/lib/log_format.c
    functionUses: []
    functionsReached:
    - QB_MIN
    - strlcpy
    linkageType: ''
    returnType: size_t
    signature: 'static size_t my_strlcpy(char *dest, const char * src, size_t maxlen) '
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libqb/lib/log_format.c:599,1
    - Dst: va_arg
      Src: /src/libqb/lib/log_format.c:622,1
    - Dst: va_arg
      Src: /src/libqb/lib/log_format.c:643,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_format.c:623,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_format.c:660,1
    - Dst: va_arg
      Src: /src/libqb/lib/log_format.c:658,1
    - Dst: QB_MIN
      Src: /src/libqb/lib/log_format.c:681,1
    - Dst: strchrnul
      Src: /src/libqb/lib/log_format.c:508,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_format.c:644,1
    - Dst: va_arg
      Src: /src/libqb/lib/log_format.c:689,1
    - Dst: my_strlcpy
      Src: /src/libqb/lib/log_format.c:679,1
    - Dst: my_strlcpy
      Src: /src/libqb/lib/log_format.c:493,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_format.c:548,1
    - Dst: va_arg
      Src: /src/libqb/lib/log_format.c:598,1
    - Dst: va_arg
      Src: /src/libqb/lib/log_format.c:610,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_format.c:611,1
    - Dst: va_arg
      Src: /src/libqb/lib/log_format.c:667,1
    - Dst: strlen
      Src: /src/libqb/lib/log_format.c:671,1
    - Dst: QB_MIN
      Src: /src/libqb/lib/log_format.c:671,1
    - Dst: my_strlcpy
      Src: /src/libqb/lib/log_format.c:669,1
    - Dst: my_strlcpy
      Src: /src/libqb/lib/log_format.c:674,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_format.c:693,1
    - Dst: va_arg
      Src: /src/libqb/lib/log_format.c:544,1
    - Dst: strchr
      Src: /src/libqb/lib/log_format.c:500,1
    - Dst: QB_MIN
      Src: /src/libqb/lib/log_format.c:676,1
    - Dst: strlen
      Src: /src/libqb/lib/log_format.c:681,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 130
    argCount: 4
    argNames:
    - serialize
    - max_len
    - fmt
    - ap
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 709
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 709
    functionName: qb_vsnprintf_serialize
    functionSourceFile: /src/libqb/lib/log_format.c
    functionUses: []
    functionsReached:
    - memcpy
    - my_strlcpy
    - strchr
    - va_arg
    - QB_MIN
    - strlen
    - strchrnul
    linkageType: ''
    returnType: size_t
    signature: "size_t qb_vsnprintf_serialize(char *serialize, size_t max_len,\t\t
      const char *fmt, va_list ap) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_destroy
      Src: /src/libqb/lib/log_format.c:108,1
    - Dst: qb_log_target_get
      Src: /src/libqb/lib/log_format.c:111,1
    - Dst: free
      Src: /src/libqb/lib/log_format.c:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 114
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 114
    functionName: qb_log_format_fini
    functionSourceFile: /src/libqb/lib/log_format.c
    functionUses: []
    functionsReached:
    - free
    - qb_log_target_get
    - pthread_rwlock_destroy
    linkageType: ''
    returnType: void
    signature: 'void qb_log_format_fini(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - priority
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 176
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 176
    functionName: qb_log_priority2str
    functionSourceFile: /src/libqb/lib/log_format.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *qb_log_priority2str(uint8_t priority) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libqb/lib/log_format.c:188,1
    - Dst: memset
      Src: /src/libqb/lib/log_format.c:202,1
    - Dst: QB_MIN
      Src: /src/libqb/lib/log_format.c:200,1
    - Dst: QB_MIN
      Src: /src/libqb/lib/log_format.c:199,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_format.c:203,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_format.c:205,1
    - Dst: memset
      Src: /src/libqb/lib/log_format.c:206,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - dest
    - src
    - cutoff
    - ralign
    - buf_len
    argTypes:
    - char*
    - char*
    - size_t
    - int
    - size_t
    constantsTouched: []
    func_position:
      end: 212
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 212
    functionName: _strcpy_cutoff
    functionSourceFile: /src/libqb/lib/log_format.c
    functionUses: []
    functionsReached:
    - strlen
    - QB_MIN
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: "static int _strcpy_cutoff(char *dest, const char *src, size_t cutoff,
      int ralign,\t size_t buf_len) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcat
      Src: /src/libqb/lib/log_format.c:478,1
    - Dst: QB_MIN
      Src: /src/libqb/lib/log_format.c:479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - src
    - maxlen
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 480
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 480
    functionName: my_strlcat
    functionSourceFile: /src/libqb/lib/log_format.c
    functionUses: []
    functionsReached:
    - QB_MIN
    - strlcat
    linkageType: ''
    returnType: size_t
    signature: 'static size_t my_strlcat(char *dest, const char * src, size_t maxlen) '
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libqb/lib/log_format.c:722,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_format.c:738,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_format.c:828,1
    - Dst: snprintf
      Src: /src/libqb/lib/log_format.c:915,1
    - Dst: strchrnul
      Src: /src/libqb/lib/log_format.c:732,1
    - Dst: snprintf
      Src: /src/libqb/lib/log_format.c:829,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_format.c:873,1
    - Dst: snprintf
      Src: /src/libqb/lib/log_format.c:899,1
    - Dst: snprintf
      Src: /src/libqb/lib/log_format.c:773,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_format.c:840,1
    - Dst: snprintf
      Src: /src/libqb/lib/log_format.c:874,1
    - Dst: snprintf
      Src: /src/libqb/lib/log_format.c:888,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_format.c:852,1
    - Dst: strlen
      Src: /src/libqb/lib/log_format.c:904,1
    - Dst: my_strlcat
      Src: /src/libqb/lib/log_format.c:734,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_format.c:771,1
    - Dst: snprintf
      Src: /src/libqb/lib/log_format.c:841,1
    - Dst: snprintf
      Src: /src/libqb/lib/log_format.c:853,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_format.c:911,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 114
    argCount: 3
    argNames:
    - string
    - str_len
    - buf
    argTypes:
    - char*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 930
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 930
    functionName: qb_vsnprintf_deserialize
    functionSourceFile: /src/libqb/lib/log_format.c
    functionUses: []
    functionsReached:
    - memcpy
    - my_strlcat
    - strlen
    - snprintf
    - strchrnul
    linkageType: ''
    returnType: size_t
    signature: 'size_t qb_vsnprintf_deserialize(char *string, size_t str_len, const
      char *buf) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_target_get
      Src: /src/libqb/lib/log_format.c:120,1
    - Dst: pthread_rwlock_wrlock
      Src: /src/libqb/lib/log_format.c:122,1
    - Dst: qb_log_target_format_static
      Src: /src/libqb/lib/log_format.c:127,1
    - Dst: strdup
      Src: /src/libqb/lib/log_format.c:128,1
    - Dst: free
      Src: /src/libqb/lib/log_format.c:124,1
    - Dst: strdup
      Src: /src/libqb/lib/log_format.c:130,1
    - Dst: assert
      Src: /src/libqb/lib/log_format.c:132,1
    - Dst: pthread_rwlock_unlock
      Src: /src/libqb/lib/log_format.c:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - target
    - format
    argTypes:
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 135
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 135
    functionName: qb_log_format_set
    functionSourceFile: /src/libqb/lib/log_format.c
    functionUses: []
    functionsReached:
    - pthread_rwlock_unlock
    - qb_log_target_get
    - assert
    - free
    - strdup
    - qb_log_target_format_static
    - pthread_rwlock_wrlock
    linkageType: ''
    returnType: void
    signature: 'void qb_log_format_set(int32_t target, const char *format) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_target_get
      Src: /src/libqb/lib/log_format.c:235,1
    - Dst: isdigit
      Src: /src/libqb/lib/log_format.c:260,1
    - Dst: snprintf
      Src: /src/libqb/lib/log_format.c:266,1
    - Dst: atoi
      Src: /src/libqb/lib/log_format.c:258,1
    - Dst: isdigit
      Src: /src/libqb/lib/log_format.c:257,1
    - Dst: getpid
      Src: /src/libqb/lib/log_format.c:266,1
    - Dst: gethostname
      Src: /src/libqb/lib/log_format.c:275,1
    - Dst: strlcpy
      Src: /src/libqb/lib/log_format.c:278,1
    - Dst: _strcpy_cutoff
      Src: /src/libqb/lib/log_format.c:290,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 3
    argNames:
    - target
    - format
    - output_buffer
    argTypes:
    - int32_t
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 303
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 303
    functionName: qb_log_target_format_static
    functionSourceFile: /src/libqb/lib/log_format.c
    functionUses: []
    functionsReached:
    - atoi
    - qb_log_target_get
    - _strcpy_cutoff
    - gethostname
    - isdigit
    - getpid
    - strlcpy
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void qb_log_target_format_static(int32_t target, const char * format,\t\t\t
      char *output_buffer) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 4
    argNames:
    - s
    - pe
    - fd
    - events
    argTypes:
    - struct qb_poll_source*
    - struct qb_poll_entry*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: _add
    functionSourceFile: /src/libqb/lib/loop_poll_poll.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _add(struct qb_poll_source *s, struct qb_poll_entry
      *pe, int32_t fd, int32_t events) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 4
    argNames:
    - s
    - pe
    - fd
    - i
    argTypes:
    - struct qb_poll_source*
    - struct qb_poll_entry*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: _del
    functionSourceFile: /src/libqb/lib/loop_poll_poll.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _del(struct qb_poll_source *s, struct qb_poll_entry
      *pe, int32_t fd, int32_t i) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_poll_source*
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: _fini
    functionSourceFile: /src/libqb/lib/loop_poll_poll.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void _fini(struct qb_poll_source *s) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 4
    argNames:
    - s
    - pe
    - fd
    - events
    argTypes:
    - struct qb_poll_source*
    - struct qb_poll_entry*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: _mod
    functionSourceFile: /src/libqb/lib/loop_poll_poll.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _mod(struct qb_poll_source *s, struct qb_poll_entry
      *pe, int32_t fd, int32_t events) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_poll_fds_usage_check_
      Src: /src/libqb/lib/loop_poll_poll.c:60,1
    - Dst: assert
      Src: /src/libqb/lib/loop_poll_poll.c:63,1
    - Dst: memcpy
      Src: /src/libqb/lib/loop_poll_poll.c:64,1
    - Dst: qb_array_index
      Src: /src/libqb/lib/loop_poll_poll.c:63,1
    - Dst: poll
      Src: /src/libqb/lib/loop_poll_poll.c:68,1
    - Dst: assert
      Src: /src/libqb/lib/loop_poll_poll.c:82,1
    - Dst: qb_array_index
      Src: /src/libqb/lib/loop_poll_poll.c:82,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 35
    argCount: 2
    argNames:
    - src
    - ms_timeout
    argTypes:
    - struct qb_loop_source*
    - int32_t
    constantsTouched: []
    func_position:
      end: 95
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 95
    functionName: _poll_and_add_to_jobs_
    functionSourceFile: /src/libqb/lib/loop_poll_poll.c
    functionUses: []
    functionsReached:
    - qb_array_index
    - memcpy
    - assert
    - poll
    - qb_poll_fds_usage_check_
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _poll_and_add_to_jobs_(struct qb_loop_source *src,
      int32_t ms_timeout) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_poll_source*
    constantsTouched: []
    func_position:
      end: 107
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: qb_poll_init
    functionSourceFile: /src/libqb/lib/loop_poll_poll.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_poll_init(struct qb_poll_source *s) '
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - event
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 50
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 50
    functionName: _poll_to_epoll_event_
    functionSourceFile: /src/libqb/lib/loop_poll_epoll.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _poll_to_epoll_event_(int32_t event) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libqb/lib/loop_poll_epoll.c:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_poll_source*
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: _fini
    functionSourceFile: /src/libqb/lib/loop_poll_epoll.c
    functionUses: []
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: 'static void _fini(struct qb_poll_source *s) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _poll_to_epoll_event_
      Src: /src/libqb/lib/loop_poll_epoll.c:100,1
    - Dst: epoll_ctl
      Src: /src/libqb/lib/loop_poll_epoll.c:102,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/loop_poll_epoll.c:104,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 4
    argNames:
    - s
    - pe
    - fd
    - events
    argTypes:
    - struct qb_poll_source*
    - struct qb_poll_entry*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: _mod
    functionSourceFile: /src/libqb/lib/loop_poll_epoll.c
    functionUses: []
    functionsReached:
    - _poll_to_epoll_event_
    - qb_util_perror
    - epoll_ctl
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _mod(struct qb_poll_source *s, struct qb_poll_entry
      *pe, int32_t fd, int32_t events) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_index
      Src: /src/libqb/lib/loop_poll_epoll.c:130,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 3
    argNames:
    - s
    - handle_in
    - pe_pt
    argTypes:
    - struct qb_poll_source*
    - uint64_t
    - struct qb_poll_entry**
    constantsTouched: []
    func_position:
      end: 139
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 139
    functionName: _poll_entry_from_handle_
    functionSourceFile: /src/libqb/lib/loop_poll_epoll.c
    functionUses: []
    functionsReached:
    - qb_array_index
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t _poll_entry_from_handle_(struct qb_poll_source *s,\t\t\t
      uint64_t handle_in, struct qb_poll_entry **pe_pt) "
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - event
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: _epoll_to_poll_event_
    functionSourceFile: /src/libqb/lib/loop_poll_epoll.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _epoll_to_poll_event_(int32_t event) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _poll_to_epoll_event_
      Src: /src/libqb/lib/loop_poll_epoll.c:84,1
    - Dst: epoll_ctl
      Src: /src/libqb/lib/loop_poll_epoll.c:86,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/loop_poll_epoll.c:88,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 4
    argNames:
    - s
    - pe
    - fd
    - events
    argTypes:
    - struct qb_poll_source*
    - struct qb_poll_entry*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: _add
    functionSourceFile: /src/libqb/lib/loop_poll_epoll.c
    functionUses: []
    functionsReached:
    - _poll_to_epoll_event_
    - qb_util_perror
    - epoll_ctl
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _add(struct qb_poll_source *s, struct qb_poll_entry
      *pe, int32_t fd, int32_t events) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: epoll_ctl
      Src: /src/libqb/lib/loop_poll_epoll.c:114,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/loop_poll_epoll.c:116,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 4
    argNames:
    - s
    - pe
    - fd
    - arr_index
    argTypes:
    - struct qb_poll_source*
    - struct qb_poll_entry*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: _del
    functionSourceFile: /src/libqb/lib/loop_poll_epoll.c
    functionUses: []
    functionsReached:
    - qb_util_perror
    - epoll_ctl
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _del(struct qb_poll_source *s, struct qb_poll_entry
      *pe, int32_t fd, int32_t arr_index) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qb_poll_fds_usage_check_
      Src: /src/libqb/lib/loop_poll_epoll.c:152,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/loop_poll_epoll.c:167,1
    - Dst: _poll_entry_from_handle_
      Src: /src/libqb/lib/loop_poll_epoll.c:165,1
    - Dst: epoll_wait
      Src: /src/libqb/lib/loop_poll_epoll.c:156,1
    - Dst: usleep
      Src: /src/libqb/lib/loop_poll_epoll.c:169,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/loop_poll_epoll.c:173,1
    - Dst: _epoll_to_poll_event_
      Src: /src/libqb/lib/loop_poll_epoll.c:181,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 31
    argCount: 2
    argNames:
    - src
    - ms_timeout
    argTypes:
    - struct qb_loop_source*
    - int32_t
    constantsTouched: []
    func_position:
      end: 189
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 189
    functionName: _poll_and_add_to_jobs_
    functionSourceFile: /src/libqb/lib/loop_poll_epoll.c
    functionUses: []
    functionsReached:
    - usleep
    - _poll_entry_from_handle_
    - qb_util_log
    - epoll_wait
    - _epoll_to_poll_event_
    - qb_poll_fds_usage_check_
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _poll_and_add_to_jobs_(struct qb_loop_source *src,
      int32_t ms_timeout) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: epoll_create1
      Src: /src/libqb/lib/loop_poll_epoll.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_poll_source*
    constantsTouched: []
    func_position:
      end: 204
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 204
    functionName: qb_epoll_init
    functionSourceFile: /src/libqb/lib/loop_poll_epoll.c
    functionUses: []
    functionsReached:
    - epoll_create1
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_epoll_init(struct qb_poll_source *s) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - pe
    argTypes:
    - struct qb_poll_entry*
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: _poll_entry_mark_deleted_
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void _poll_entry_mark_deleted_(struct qb_poll_entry *pe) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 2
    argNames:
    - l
    - fn
    argTypes:
    - struct qb_loop*
    - qb_loop_poll_low_fds_event_fn
    constantsTouched: []
    func_position:
      end: 243
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 243
    functionName: qb_loop_poll_low_fds_event_set
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_loop_poll_low_fds_event_set(struct qb_loop *l,\t\t\t qb_loop_poll_low_fds_event_fn
      fn) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _get_empty_array_position_
      Src: /src/libqb/lib/loop_poll.c:303,1
    - Dst: qb_array_index
      Src: /src/libqb/lib/loop_poll.c:305,1
    - Dst: assert
      Src: /src/libqb/lib/loop_poll.c:305,1
    - Dst: _poll_entry_check_generate_
      Src: /src/libqb/lib/loop_poll.c:308,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 6
    argNames:
    - l
    - p
    - fd
    - events
    - data
    - pe_pt
    argTypes:
    - struct qb_loop*
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - struct qb_poll_entry**
    constantsTouched: []
    func_position:
      end: 324
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 324
    functionName: _poll_add_
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - _get_empty_array_position_
    - qb_array_index
    - _poll_entry_check_generate_
    - assert
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t _poll_add_(struct qb_loop *l,\t enum qb_loop_priority
      p,\t int32_t fd, int32_t events, void *data, struct qb_poll_entry **pe_pt) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libqb/lib/loop_poll.c:474,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - signal_num
    - si
    - context
    argTypes:
    - int
    - siginfo_t*
    - void*
    constantsTouched: []
    func_position:
      end: 479
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 479
    functionName: _handle_real_signal_
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - write
    linkageType: ''
    returnType: void
    signature: 'static void _handle_real_signal_(int signal_num, siginfo_t * si, void
      *context) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libqb/lib/loop_poll.c:501,1
    - Dst: sigemptyset
      Src: /src/libqb/lib/loop_poll.c:510,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/loop_poll.c:516,1
    - Dst: pipe
      Src: /src/libqb/lib/loop_poll.c:513,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/loop_poll.c:509,1
    - Dst: qb_sys_fd_nonblock_cloexec_set
      Src: /src/libqb/lib/loop_poll.c:519,1
    - Dst: qb_sys_fd_nonblock_cloexec_set
      Src: /src/libqb/lib/loop_poll.c:520,1
    - Dst: _poll_add_
      Src: /src/libqb/lib/loop_poll.c:522,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/loop_poll.c:529,1
    - Dst: free
      Src: /src/libqb/lib/loop_poll.c:538,1
    - Dst: close
      Src: /src/libqb/lib/loop_poll.c:540,1
    - Dst: close
      Src: /src/libqb/lib/loop_poll.c:543,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct qb_loop*
    constantsTouched: []
    func_position:
      end: 546
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 546
    functionName: qb_loop_signals_create
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - qb_sys_fd_nonblock_cloexec_set
    - _poll_add_
    - calloc
    - pipe
    - qb_list_init
    - free
    - qb_util_perror
    - sigemptyset
    - close
    linkageType: ''
    returnType: struct qb_loop_source*
    signature: 'struct qb_loop_source *qb_loop_signals_create(struct qb_loop *l) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libqb/lib/loop_poll.c:584,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/loop_poll.c:586,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/loop_poll.c:592,1
    - Dst: calloc
      Src: /src/libqb/lib/loop_poll.c:595,1
    - Dst: qb_list_for_each
      Src: /src/libqb/lib/loop_poll.c:591,1
    - Dst: memcpy
      Src: /src/libqb/lib/loop_poll.c:599,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/loop_poll.c:601,1
    - Dst: qb_loop_level_item_add
      Src: /src/libqb/lib/loop_poll.c:606,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 22
    argCount: 2
    argNames:
    - l
    - pe
    argTypes:
    - struct qb_loop*
    - struct qb_poll_entry*
    constantsTouched: []
    func_position:
      end: 612
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 612
    functionName: _qb_signal_add_to_jobs_
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - memcpy
    - calloc
    - qb_list_entry
    - qb_list_for_each
    - qb_util_perror
    - qb_util_log
    - read
    - qb_loop_level_item_add
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _qb_signal_add_to_jobs_(struct qb_loop *l, struct qb_poll_entry
      *pe) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libqb/lib/loop_poll.c:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - pe
    argTypes:
    - struct qb_poll_entry*
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: _poll_entry_empty_
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: 'static void _poll_entry_empty_(struct qb_poll_entry *pe) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libqb/lib/loop_poll.c:255,1
    - Dst: qb_array_grow
      Src: /src/libqb/lib/loop_poll.c:276,1
    - Dst: realloc
      Src: /src/libqb/lib/loop_poll.c:267,1
    - Dst: qb_array_index
      Src: /src/libqb/lib/loop_poll.c:255,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_poll_source*
    constantsTouched: []
    func_position:
      end: 285
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 285
    functionName: _get_empty_array_position_
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - realloc
    - qb_array_grow
    - qb_array_index
    - assert
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _get_empty_array_position_(struct qb_poll_source *s) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libqb/lib/loop_poll.c:329,1
    - Dst: qb_loop_level_item_add
      Src: /src/libqb/lib/loop_poll.c:330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - l
    - pe
    argTypes:
    - struct qb_loop*
    - struct qb_poll_entry*
    constantsTouched: []
    func_position:
      end: 333
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 333
    functionName: _qb_poll_add_to_jobs_
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - qb_loop_level_item_add
    - assert
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _qb_poll_add_to_jobs_(struct qb_loop *l, struct qb_poll_entry
      *pe) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libqb/lib/loop_poll.c:493,1
    - Dst: qb_loop_signal_del
      Src: /src/libqb/lib/loop_poll.c:490,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 2
    argNames:
    - item
    - p
    argTypes:
    - struct qb_loop_item*
    - enum qb_loop_priority
    constantsTouched: []
    func_position:
      end: 494
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 494
    functionName: _signal_dispatch_and_take_back_
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - qb_loop_signal_del
    - free
    linkageType: ''
    returnType: void
    signature: "static void _signal_dispatch_and_take_back_(struct qb_loop_item *item,\t\t\t\tenum
      qb_loop_priority p) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libqb/lib/loop_poll.c:557,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/loop_poll.c:564,1
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/lib/loop_poll.c:562,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/loop_poll.c:563,1
    - Dst: close
      Src: /src/libqb/lib/loop_poll.c:559,1
    - Dst: free
      Src: /src/libqb/lib/loop_poll.c:565,1
    - Dst: free
      Src: /src/libqb/lib/loop_poll.c:568,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 12
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct qb_loop*
    constantsTouched: []
    func_position:
      end: 569
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 569
    functionName: qb_loop_signals_destroy
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - qb_list_for_each_safe
    - qb_list_entry
    - qb_list_del
    - free
    - close
    linkageType: ''
    returnType: void
    signature: 'void qb_loop_signals_destroy(struct qb_loop *l) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/libqb/lib/loop_poll.c:625,1
    - Dst: sigaddset
      Src: /src/libqb/lib/loop_poll.c:639,1
    - Dst: sigemptyset
      Src: /src/libqb/lib/loop_poll.c:626,1
    - Dst: sigaction
      Src: /src/libqb/lib/loop_poll.c:640,1
    - Dst: qb_list_for_each_entry
      Src: /src/libqb/lib/loop_poll.c:631,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_signal_source*
    constantsTouched: []
    func_position:
      end: 643
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 643
    functionName: _adjust_sigactions_
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - sigaction
    - sigaddset
    - sigemptyset
    - qb_list_for_each_entry
    linkageType: ''
    returnType: void
    signature: 'static void _adjust_sigactions_(struct qb_signal_source *s) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_default_get
      Src: /src/libqb/lib/loop_poll.c:739,1
    - Dst: free
      Src: /src/libqb/lib/loop_poll.c:754,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/loop_poll.c:753,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/loop_poll.c:752,1
    - Dst: qb_list_for_each_entry
      Src: /src/libqb/lib/loop_poll.c:746,1
    - Dst: qb_list_for_each_entry
      Src: /src/libqb/lib/loop_poll.c:759,1
    - Dst: qb_loop_level_item_del
      Src: /src/libqb/lib/loop_poll.c:765,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/loop_poll.c:766,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/loop_poll.c:771,1
    - Dst: signal
      Src: /src/libqb/lib/loop_poll.c:772,1
    - Dst: free
      Src: /src/libqb/lib/loop_poll.c:773,1
    - Dst: _adjust_sigactions_
      Src: /src/libqb/lib/loop_poll.c:774,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 34
    argCount: 2
    argNames:
    - lp
    - handle
    argTypes:
    - qb_loop_t*
    - qb_loop_signal_handle
    constantsTouched: []
    func_position:
      end: 776
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 776
    functionName: qb_loop_signal_del
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - signal
    - qb_loop_level_item_del
    - _adjust_sigactions_
    - qb_list_del
    - free
    - qb_list_for_each_entry
    - qb_util_log
    - qb_loop_default_get
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_loop_signal_del(qb_loop_t * lp, qb_loop_signal_handle handle) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_nano_current_get
      Src: /src/libqb/lib/loop_poll.c:102,1
    - Dst: assert
      Src: /src/libqb/lib/loop_poll.c:105,1
    - Dst: assert
      Src: /src/libqb/lib/loop_poll.c:106,1
    - Dst: _poll_entry_mark_deleted_
      Src: /src/libqb/lib/loop_poll.c:112,1
    - Dst: qb_util_nano_current_get
      Src: /src/libqb/lib/loop_poll.c:123,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/loop_poll.c:129,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 2
    argNames:
    - item
    - p
    argTypes:
    - struct qb_loop_item*
    - enum qb_loop_priority
    constantsTouched: []
    func_position:
      end: 138
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 138
    functionName: _poll_dispatch_and_take_back_
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - qb_util_log
    - _poll_entry_mark_deleted_
    - qb_util_nano_current_get
    - assert
    linkageType: ''
    returnType: void
    signature: "static void _poll_dispatch_and_take_back_(struct qb_loop_item *item,\t\t\t
      enum qb_loop_priority p) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_default_get
      Src: /src/libqb/lib/loop_poll.c:427,1
    - Dst: qb_array_index
      Src: /src/libqb/lib/loop_poll.c:431,1
    - Dst: qb_loop_level_item_del
      Src: /src/libqb/lib/loop_poll.c:440,1
    - Dst: assert
      Src: /src/libqb/lib/loop_poll.c:431,1
    - Dst: _poll_entry_mark_deleted_
      Src: /src/libqb/lib/loop_poll.c:443,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 27
    argCount: 2
    argNames:
    - lp
    - fd
    argTypes:
    - struct qb_loop*
    - int32_t
    constantsTouched: []
    func_position:
      end: 448
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 448
    functionName: qb_loop_poll_del
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - qb_array_index
    - assert
    - qb_loop_level_item_del
    - _poll_entry_mark_deleted_
    - qb_loop_default_get
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_loop_poll_del(struct qb_loop * lp, int32_t fd) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_default_get
      Src: /src/libqb/lib/loop_poll.c:658,1
    - Dst: calloc
      Src: /src/libqb/lib/loop_poll.c:667,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/loop_poll.c:679,1
    - Dst: sigismember
      Src: /src/libqb/lib/loop_poll.c:682,1
    - Dst: qb_list_add_tail
      Src: /src/libqb/lib/loop_poll.c:680,1
    - Dst: _adjust_sigactions_
      Src: /src/libqb/lib/loop_poll.c:683,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 35
    argCount: 6
    argNames:
    - lp
    - p
    - the_sig
    - data
    - dispatch_fn
    - handle
    argTypes:
    - qb_loop_t*
    - enum qb_loop_priority
    - int32_t
    - void*
    - qb_loop_signal_dispatch_fn
    - qb_loop_signal_handle*
    constantsTouched: []
    func_position:
      end: 690
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 690
    functionName: qb_loop_signal_add
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - calloc
    - qb_list_init
    - qb_list_add_tail
    - _adjust_sigactions_
    - sigismember
    - qb_loop_default_get
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_loop_signal_add(qb_loop_t * lp,\t\t enum qb_loop_priority
      p,\t\t int32_t the_sig,\t\t void *data,\t\t qb_loop_signal_dispatch_fn dispatch_fn,\t\t
      qb_loop_signal_handle * handle) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/libqb/lib/loop_poll.c:68,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - pe
    argTypes:
    - struct qb_poll_entry*
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: _poll_entry_check_generate_
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - random
    linkageType: ''
    returnType: void
    signature: 'static void _poll_entry_check_generate_(struct qb_poll_entry *pe) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: getrlimit
      Src: /src/libqb/lib/loop_poll.c:152,1
    - Dst: _poll_entry_empty_
      Src: /src/libqb/lib/loop_poll.c:170,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/loop_poll.c:153,1
    - Dst: assert
      Src: /src/libqb/lib/loop_poll.c:164,1
    - Dst: qb_array_index
      Src: /src/libqb/lib/loop_poll.c:164,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qb_poll_source*
    constantsTouched: []
    func_position:
      end: 193
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 193
    functionName: qb_poll_fds_usage_check_
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - qb_array_index
    - assert
    - getrlimit
    - qb_util_perror
    - _poll_entry_empty_
    linkageType: ''
    returnType: void
    signature: 'void qb_poll_fds_usage_check_(struct qb_poll_source *s) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_default_get
      Src: /src/libqb/lib/loop_poll.c:705,1
    - Dst: _adjust_sigactions_
      Src: /src/libqb/lib/loop_poll.c:723,1
    - Dst: signal
      Src: /src/libqb/lib/loop_poll.c:721,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 27
    argCount: 6
    argNames:
    - lp
    - p
    - the_sig
    - data
    - dispatch_fn
    - handle
    argTypes:
    - qb_loop_t*
    - enum qb_loop_priority
    - int32_t
    - void*
    - qb_loop_signal_dispatch_fn
    - qb_loop_signal_handle
    constantsTouched: []
    func_position:
      end: 727
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 727
    functionName: qb_loop_signal_mod
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - signal
    - _adjust_sigactions_
    - qb_loop_default_get
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_loop_signal_mod(qb_loop_t * lp,\t\t enum qb_loop_priority
      p,\t\t int32_t the_sig,\t\t void *data,\t\t qb_loop_signal_dispatch_fn dispatch_fn,\t\t
      qb_loop_signal_handle handle) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libqb/lib/loop_poll.c:199,1
    - Dst: qb_array_create_2
      Src: /src/libqb/lib/loop_poll.c:206,1
    - Dst: qb_epoll_init
      Src: /src/libqb/lib/loop_poll.c:212,1
    - Dst: qb_kqueue_init
      Src: /src/libqb/lib/loop_poll.c:215,1
    - Dst: qb_poll_init
      Src: /src/libqb/lib/loop_poll.c:218,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct qb_loop*
    constantsTouched: []
    func_position:
      end: 222
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 222
    functionName: qb_loop_poll_create
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - malloc
    - qb_epoll_init
    - qb_kqueue_init
    - qb_poll_init
    - qb_array_create_2
    linkageType: ''
    returnType: struct qb_loop_source*
    signature: 'struct qb_loop_source *qb_loop_poll_create(struct qb_loop *l) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_default_get
      Src: /src/libqb/lib/loop_poll.c:349,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/loop_poll.c:366,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/loop_poll.c:355,1
    - Dst: _poll_add_
      Src: /src/libqb/lib/loop_poll.c:353,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 18
    argCount: 6
    argNames:
    - lp
    - p
    - fd
    - events
    - data
    - dispatch_fn
    argTypes:
    - struct qb_loop*
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_loop_poll_dispatch_fn
    constantsTouched: []
    func_position:
      end: 371
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 371
    functionName: qb_loop_poll_add
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - qb_util_log
    - _poll_add_
    - qb_util_perror
    - qb_loop_default_get
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_loop_poll_add(struct qb_loop * lp,\t\t enum qb_loop_priority
      p,\t\t int32_t fd,\t\t int32_t events,\t\t void *data, qb_loop_poll_dispatch_fn
      dispatch_fn) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_free
      Src: /src/libqb/lib/loop_poll.c:228,1
    - Dst: free
      Src: /src/libqb/lib/loop_poll.c:232,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct qb_loop*
    constantsTouched: []
    func_position:
      end: 233
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 233
    functionName: qb_loop_poll_destroy
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - qb_array_free
    - free
    linkageType: ''
    returnType: void
    signature: 'void qb_loop_poll_destroy(struct qb_loop *l) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_default_get
      Src: /src/libqb/lib/loop_poll.c:387,1
    - Dst: qb_array_index
      Src: /src/libqb/lib/loop_poll.c:395,1
    - Dst: assert
      Src: /src/libqb/lib/loop_poll.c:395,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/loop_poll.c:400,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 29
    argCount: 6
    argNames:
    - lp
    - p
    - fd
    - events
    - data
    - dispatch_fn
    argTypes:
    - struct qb_loop*
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_loop_poll_dispatch_fn
    constantsTouched: []
    func_position:
      end: 415
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 415
    functionName: qb_loop_poll_mod
    functionSourceFile: /src/libqb/lib/loop_poll.c
    functionUses: []
    functionsReached:
    - assert
    - qb_util_log
    - qb_array_index
    - qb_loop_default_get
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_loop_poll_mod(struct qb_loop * lp,\t\t enum qb_loop_priority
      p,\t\t int32_t fd,\t\t int32_t events,\t\t void *data, qb_loop_poll_dispatch_fn
      dispatch_fn) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sem_post
      Src: /src/libqb/lib/log_thread.c:65,1
    - Dst: qb_thread_lock
      Src: /src/libqb/lib/log_thread.c:76,1
    - Dst: pthread_exit
      Src: /src/libqb/lib/log_thread.c:73,1
    - Dst: sem_getvalue
      Src: /src/libqb/lib/log_thread.c:80,1
    - Dst: sem_wait
      Src: /src/libqb/lib/log_thread.c:68,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/log_thread.c:82,1
    - Dst: pthread_exit
      Src: /src/libqb/lib/log_thread.c:83,1
    - Dst: qb_list_first_entry
      Src: /src/libqb/lib/log_thread.c:88,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/log_thread.c:90,1
    - Dst: strlen
      Src: /src/libqb/lib/log_thread.c:91,1
    - Dst: qb_log_thread_log_write
      Src: /src/libqb/lib/log_thread.c:99,1
    - Dst: free
      Src: /src/libqb/lib/log_thread.c:102,1
    - Dst: free
      Src: /src/libqb/lib/log_thread.c:103,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/log_thread.c:101,1
    - Dst: printf
      Src: /src/libqb/lib/log_thread.c:96,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 105
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 105
    functionName: qb_logt_worker_thread
    functionSourceFile: /src/libqb/lib/log_thread.c
    functionUses: []
    functionsReached:
    - qb_thread_lock
    - qb_thread_unlock
    - qb_log_thread_log_write
    - sem_post
    - qb_list_first_entry
    - pthread_exit
    - qb_list_del
    - free
    - strlen
    - sem_getvalue
    - printf
    - sem_wait
    linkageType: ''
    returnType: void*
    signature: 'static void *qb_logt_worker_thread(void *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/log_thread.c:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct qb_log_target*
    constantsTouched: []
    func_position:
      end: 214
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 214
    functionName: qb_log_thread_resume
    functionSourceFile: /src/libqb/lib/log_thread.c
    functionUses: []
    functionsReached:
    - qb_thread_unlock
    linkageType: ''
    returnType: void
    signature: 'void qb_log_thread_resume(struct qb_log_target *t) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sem_init
      Src: /src/libqb/lib/log_thread.c:152,1
    - Dst: pthread_create
      Src: /src/libqb/lib/log_thread.c:159,1
    - Dst: sem_init
      Src: /src/libqb/lib/log_thread.c:153,1
    - Dst: qb_thread_lock_destroy
      Src: /src/libqb/lib/log_thread.c:163,1
    - Dst: qb_thread_lock_create
      Src: /src/libqb/lib/log_thread.c:155,1
    - Dst: sem_wait
      Src: /src/libqb/lib/log_thread.c:166,1
    - Dst: qb_log_thread_priority_set
      Src: /src/libqb/lib/log_thread.c:169,1
    - Dst: sem_post
      Src: /src/libqb/lib/log_thread.c:185,1
    - Dst: pthread_join
      Src: /src/libqb/lib/log_thread.c:186,1
    - Dst: qb_thread_lock_destroy
      Src: /src/libqb/lib/log_thread.c:191,1
    - Dst: sem_destroy
      Src: /src/libqb/lib/log_thread.c:193,1
    - Dst: sem_destroy
      Src: /src/libqb/lib/log_thread.c:194,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 197
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 197
    functionName: qb_log_thread_start
    functionSourceFile: /src/libqb/lib/log_thread.c
    functionUses: []
    functionsReached:
    - qb_log_thread_priority_set
    - qb_thread_lock_destroy
    - sem_post
    - sem_destroy
    - pthread_create
    - qb_thread_lock_create
    - pthread_join
    - sem_init
    - sem_wait
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_log_thread_start(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_setschedparam
      Src: /src/libqb/lib/log_thread.c:131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - policy
    - priority
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 139
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 139
    functionName: qb_log_thread_priority_set
    functionSourceFile: /src/libqb/lib/log_thread.c
    functionUses: []
    functionsReached:
    - pthread_setschedparam
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_log_thread_priority_set(int32_t policy, int32_t priority) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_thread_lock
      Src: /src/libqb/lib/log_thread.c:204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct qb_log_target*
    constantsTouched: []
    func_position:
      end: 206
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 206
    functionName: qb_log_thread_pause
    functionSourceFile: /src/libqb/lib/log_thread.c
    functionUses: []
    functionsReached:
    - qb_thread_lock
    linkageType: ''
    returnType: void
    signature: 'void qb_log_thread_pause(struct qb_log_target *t) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libqb/lib/log_thread.c:224,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_thread.c:239,1
    - Dst: memcpy
      Src: /src/libqb/lib/log_thread.c:237,1
    - Dst: strlen
      Src: /src/libqb/lib/log_thread.c:229,1
    - Dst: malloc
      Src: /src/libqb/lib/log_thread.c:233,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/log_thread.c:241,1
    - Dst: qb_thread_lock
      Src: /src/libqb/lib/log_thread.c:242,1
    - Dst: free
      Src: /src/libqb/lib/log_thread.c:245,1
    - Dst: free
      Src: /src/libqb/lib/log_thread.c:246,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/log_thread.c:249,1
    - Dst: sem_post
      Src: /src/libqb/lib/log_thread.c:257,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/log_thread.c:255,1
    - Dst: qb_list_add_tail
      Src: /src/libqb/lib/log_thread.c:253,1
    - Dst: free
      Src: /src/libqb/lib/log_thread.c:261,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 3
    argNames:
    - cs
    - timestamp
    - buffer
    argTypes:
    - struct qb_log_callsite*
    - struct timespec*
    - char*
    constantsTouched: []
    func_position:
      end: 262
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 262
    functionName: qb_log_thread_log_post
    functionSourceFile: /src/libqb/lib/log_thread.c
    functionUses: []
    functionsReached:
    - malloc
    - qb_thread_lock
    - memcpy
    - qb_thread_unlock
    - qb_list_init
    - qb_list_add_tail
    - free
    - strlen
    - sem_post
    linkageType: ''
    returnType: void
    signature: "void qb_log_thread_log_post(struct qb_log_callsite *cs,\t\t struct
      timespec *timestamp, const char *buffer) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sem_getvalue
      Src: /src/libqb/lib/log_thread.c:276,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/log_thread.c:286,1
    - Dst: sem_wait
      Src: /src/libqb/lib/log_thread.c:280,1
    - Dst: qb_thread_lock
      Src: /src/libqb/lib/log_thread.c:282,1
    - Dst: qb_list_first_entry
      Src: /src/libqb/lib/log_thread.c:284,1
    - Dst: strlen
      Src: /src/libqb/lib/log_thread.c:288,1
    - Dst: qb_log_thread_log_write
      Src: /src/libqb/lib/log_thread.c:291,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/log_thread.c:293,1
    - Dst: free
      Src: /src/libqb/lib/log_thread.c:294,1
    - Dst: free
      Src: /src/libqb/lib/log_thread.c:295,1
    - Dst: qb_thread_lock
      Src: /src/libqb/lib/log_thread.c:298,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/log_thread.c:300,1
    - Dst: sem_post
      Src: /src/libqb/lib/log_thread.c:301,1
    - Dst: sem_destroy
      Src: /src/libqb/lib/log_thread.c:306,1
    - Dst: sem_destroy
      Src: /src/libqb/lib/log_thread.c:305,1
    - Dst: pthread_join
      Src: /src/libqb/lib/log_thread.c:302,1
    - Dst: qb_thread_lock_destroy
      Src: /src/libqb/lib/log_thread.c:304,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 307
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 307
    functionName: qb_log_thread_stop
    functionSourceFile: /src/libqb/lib/log_thread.c
    functionUses: []
    functionsReached:
    - qb_thread_lock
    - qb_log_thread_log_write
    - qb_thread_unlock
    - qb_thread_lock_destroy
    - sem_post
    - qb_list_first_entry
    - pthread_join
    - sem_destroy
    - qb_list_del
    - free
    - strlen
    - sem_getvalue
    - sem_wait
    linkageType: ''
    returnType: void
    signature: 'void qb_log_thread_stop(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/lib/ringbuffer_helper.c:90,1
    - Dst: rpl_sem_destroy
      Src: /src/libqb/lib/ringbuffer_helper.c:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - instance
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 96
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 96
    functionName: my_posix_sem_destroy
    functionSourceFile: /src/libqb/lib/ringbuffer_helper.c
    functionUses: []
    functionsReached:
    - qb_enter
    - rpl_sem_destroy
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t my_posix_sem_destroy(void * instance) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rpl_sem_post
      Src: /src/libqb/lib/ringbuffer_helper.c:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - instance
    - msg_size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: my_posix_sem_post
    functionSourceFile: /src/libqb/lib/ringbuffer_helper.c
    functionUses: []
    functionsReached:
    - rpl_sem_post
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t my_posix_sem_post(void * instance, size_t msg_size) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qb_timespec_add_ms
      Src: /src/libqb/lib/ringbuffer_helper.c:133,1
    - Dst: semtimedop
      Src: /src/libqb/lib/ringbuffer_helper.c:153,1
    - Dst: semop
      Src: /src/libqb/lib/ringbuffer_helper.c:155,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer_helper.c:165,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 2
    argNames:
    - instance
    - ms_timeout
    argTypes:
    - void*
    - int32_t
    constantsTouched: []
    func_position:
      end: 170
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 170
    functionName: my_sysv_sem_timedwait
    functionSourceFile: /src/libqb/lib/ringbuffer_helper.c
    functionUses: []
    functionsReached:
    - qb_timespec_add_ms
    - semtimedop
    - semop
    - qb_util_perror
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t my_sysv_sem_timedwait(void * instance, int32_t ms_timeout) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semctl
      Src: /src/libqb/lib/ringbuffer_helper.c:204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 1
    argNames:
    - instance
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 209
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 209
    functionName: my_sysv_getvalue_fn
    functionSourceFile: /src/libqb/lib/ringbuffer_helper.c
    functionUses: []
    functionsReached:
    - semctl
    linkageType: ''
    returnType: ssize_t
    signature: 'static ssize_t my_sysv_getvalue_fn(void * instance) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ftok
      Src: /src/libqb/lib/ringbuffer_helper.c:230,1
    - Dst: semctl
      Src: /src/libqb/lib/ringbuffer_helper.c:246,1
    - Dst: semget
      Src: /src/libqb/lib/ringbuffer_helper.c:239,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer_helper.c:242,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer_helper.c:234,1
    - Dst: semget
      Src: /src/libqb/lib/ringbuffer_helper.c:248,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer_helper.c:251,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ringbuffer_helper.c:256,1
    - Dst: semctl
      Src: /src/libqb/lib/ringbuffer_helper.c:257,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - instance
    - flags
    argTypes:
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 260
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 260
    functionName: my_sysv_sem_create
    functionSourceFile: /src/libqb/lib/ringbuffer_helper.c
    functionUses: []
    functionsReached:
    - semctl
    - ftok
    - qb_util_perror
    - semget
    - qb_util_log
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t my_sysv_sem_create(void * instance, uint32_t flags) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_timespec_from_epoch_get
      Src: /src/libqb/lib/ringbuffer_helper.c:31,1
    - Dst: rpl_sem_timedwait
      Src: /src/libqb/lib/ringbuffer_helper.c:37,1
    - Dst: rpl_sem_trywait
      Src: /src/libqb/lib/ringbuffer_helper.c:39,1
    - Dst: rpl_sem_wait
      Src: /src/libqb/lib/ringbuffer_helper.c:41,1
    - Dst: qb_timespec_add_ms
      Src: /src/libqb/lib/ringbuffer_helper.c:32,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer_helper.c:56,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 2
    argNames:
    - instance
    - ms_timeout
    argTypes:
    - void*
    - int32_t
    constantsTouched: []
    func_position:
      end: 61
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 61
    functionName: my_posix_sem_timedwait
    functionSourceFile: /src/libqb/lib/ringbuffer_helper.c
    functionUses: []
    functionsReached:
    - rpl_sem_wait
    - qb_util_timespec_from_epoch_get
    - rpl_sem_trywait
    - qb_timespec_add_ms
    - qb_util_perror
    - rpl_sem_timedwait
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t my_posix_sem_timedwait(void * instance, int32_t ms_timeout) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rpl_sem_init
      Src: /src/libqb/lib/ringbuffer_helper.c:109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - instance
    - flags
    argTypes:
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 114
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 114
    functionName: my_posix_sem_create
    functionSourceFile: /src/libqb/lib/ringbuffer_helper.c
    functionUses: []
    functionsReached:
    - rpl_sem_init
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t my_posix_sem_create(void * instance, uint32_t flags) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rpl_sem_getvalue
      Src: /src/libqb/lib/ringbuffer_helper.c:79,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - instance
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: my_posix_getvalue_fn
    functionSourceFile: /src/libqb/lib/ringbuffer_helper.c
    functionUses: []
    functionsReached:
    - rpl_sem_getvalue
    linkageType: ''
    returnType: ssize_t
    signature: 'static ssize_t my_posix_getvalue_fn(void * instance) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: semop
      Src: /src/libqb/lib/ringbuffer_helper.c:187,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer_helper.c:191,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 2
    argNames:
    - instance
    - msg_size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 198
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 198
    functionName: my_sysv_sem_post
    functionSourceFile: /src/libqb/lib/ringbuffer_helper.c
    functionUses: []
    functionsReached:
    - semop
    - qb_util_perror
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t my_sysv_sem_post(void * instance, size_t msg_size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semctl
      Src: /src/libqb/lib/ringbuffer_helper.c:215,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - instance
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: my_sysv_sem_destroy
    functionSourceFile: /src/libqb/lib/ringbuffer_helper.c
    functionUses: []
    functionsReached:
    - semctl
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t my_sysv_sem_destroy(void * instance) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: my_posix_sem_create
      Src: /src/libqb/lib/ringbuffer_helper.c:290,1
    - Dst: my_sysv_sem_create
      Src: /src/libqb/lib/ringbuffer_helper.c:298,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - rb
    - flags
    argTypes:
    - struct qb_ringbuffer_s*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 307
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 307
    functionName: qb_rb_sem_create
    functionSourceFile: /src/libqb/lib/ringbuffer_helper.c
    functionUses: []
    functionsReached:
    - my_sysv_sem_create
    - my_posix_sem_create
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_rb_sem_create(struct qb_ringbuffer_s * rb, uint32_t flags) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: qb_sys_unlink_or_truncate_at
      Src: /src/libqb/lib/ringbuffer_helper.c:357,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer_helper.c:362,1
    - Dst: qb_sys_unlink_or_truncate_at
      Src: /src/libqb/lib/ringbuffer_helper.c:369,1
    - Dst: qb_sys_unlink_or_truncate
      Src: /src/libqb/lib/ringbuffer_helper.c:384,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer_helper.c:374,1
    - Dst: munmap
      Src: /src/libqb/lib/ringbuffer_helper.c:395,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer_helper.c:397,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer_helper.c:379,1
    - Dst: strncpy
      Src: /src/libqb/lib/ringbuffer_helper.c:354,1
    - Dst: strncmp
      Src: /src/libqb/lib/ringbuffer_helper.c:361,1
    - Dst: close
      Src: /src/libqb/lib/ringbuffer_helper.c:371,1
    - Dst: munmap
      Src: /src/libqb/lib/ringbuffer_helper.c:391,1
    - Dst: qb_sys_unlink_or_truncate
      Src: /src/libqb/lib/ringbuffer_helper.c:383,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer_helper.c:393,1
    - Dst: free
      Src: /src/libqb/lib/ringbuffer_helper.c:399,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ringbuffer_helper.c:336,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ringbuffer_helper.c:341,1
    - Dst: strrchr
      Src: /src/libqb/lib/ringbuffer_helper.c:347,1
    - Dst: open
      Src: /src/libqb/lib/ringbuffer_helper.c:356,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 65
    argCount: 3
    argNames:
    - rb
    - unlink_it
    - truncate_fallback
    argTypes:
    - struct qb_ringbuffer_s*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 401
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 401
    functionName: qb_rb_close_helper
    functionSourceFile: /src/libqb/lib/ringbuffer_helper.c
    functionUses: []
    functionsReached:
    - qb_sys_unlink_or_truncate
    - munmap
    - open
    - strrchr
    - strncpy
    - qb_sys_unlink_or_truncate_at
    - free
    - strncmp
    - qb_util_perror
    - qb_util_log
    - close
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_rb_close_helper(struct qb_ringbuffer_s * rb, int32_t unlink_it,\t\t
      int32_t truncate_fallback) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_create_2
      Src: /src/libqb/lib/array.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - max_elements
    - element_size
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: qb_array_create
    functionSourceFile: /src/libqb/lib/array.c
    functionUses: []
    functionsReached:
    - qb_array_create_2
    linkageType: ''
    returnType: qb_array_t*
    signature: 'qb_array_t *qb_array_create(size_t max_elements, size_t element_size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - a
    - fn
    argTypes:
    - struct qb_array*
    - qb_array_new_bin_cb_fn
    constantsTouched: []
    func_position:
      end: 190
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 190
    functionName: qb_array_new_bin_cb_set
    functionSourceFile: /src/libqb/lib/array.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_array_new_bin_cb_set(struct qb_array * a, qb_array_new_bin_cb_fn
      fn) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libqb/lib/array.c:93,1
    - Dst: free
      Src: /src/libqb/lib/array.c:103,1
    - Dst: _grow_bin_array
      Src: /src/libqb/lib/array.c:102,1
    - Dst: qb_thread_lock_create
      Src: /src/libqb/lib/array.c:106,1
    - Dst: QB_MIN
      Src: /src/libqb/lib/array.c:99,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - max_elements
    - element_size
    - autogrow_elements
    argTypes:
    - size_t
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 108
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 108
    functionName: qb_array_create_2
    functionSourceFile: /src/libqb/lib/array.c
    functionUses: []
    functionsReached:
    - _grow_bin_array
    - calloc
    - QB_MIN
    - free
    - qb_thread_lock_create
    linkageType: ''
    returnType: qb_array_t*
    signature: "qb_array_t *qb_array_create_2(size_t max_elements, size_t element_size,\t\t
      size_t autogrow_elements) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct qb_array*
    constantsTouched: []
    func_position:
      end: 213
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: qb_array_elems_per_bin_get
    functionSourceFile: /src/libqb/lib/array.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: 'size_t qb_array_elems_per_bin_get(struct qb_array * a) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: qb_thread_lock
      Src: /src/libqb/lib/array.c:124,1
    - Dst: qb_thread_lock
      Src: /src/libqb/lib/array.c:136,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/array.c:131,1
    - Dst: qb_array_grow
      Src: /src/libqb/lib/array.c:132,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/array.c:127,1
    - Dst: BIN_NUM_GET
      Src: /src/libqb/lib/array.c:139,1
    - Dst: assert
      Src: /src/libqb/lib/array.c:140,1
    - Dst: _grow_bin_array
      Src: /src/libqb/lib/array.c:146,1
    - Dst: calloc
      Src: /src/libqb/lib/array.c:152,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/array.c:160,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/array.c:165,1
    - Dst: assert
      Src: /src/libqb/lib/array.c:169,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/array.c:178,1
    - Dst: ELEM_NUM_GET
      Src: /src/libqb/lib/array.c:168,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 3
    argNames:
    - a
    - idx
    - element_out
    argTypes:
    - struct qb_array*
    - int32_t
    - void**
    constantsTouched: []
    func_position:
      end: 180
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 180
    functionName: qb_array_index
    functionSourceFile: /src/libqb/lib/array.c
    functionUses: []
    functionsReached:
    - qb_array_grow
    - qb_thread_lock
    - BIN_NUM_GET
    - qb_thread_unlock
    - _grow_bin_array
    - assert
    - calloc
    - ELEM_NUM_GET
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_array_index(struct qb_array * a, int32_t idx, void **element_out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/libqb/lib/array.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - a
    - new_bin_size
    argTypes:
    - struct qb_array*
    - size_t
    constantsTouched: []
    func_position:
      end: 72
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 72
    functionName: _grow_bin_array
    functionSourceFile: /src/libqb/lib/array.c
    functionUses: []
    functionsReached:
    - realloc
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _grow_bin_array(struct qb_array * a, size_t new_bin_size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_thread_lock
      Src: /src/libqb/lib/array.c:200,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/array.c:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct qb_array*
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: qb_array_num_bins_get
    functionSourceFile: /src/libqb/lib/array.c
    functionUses: []
    functionsReached:
    - qb_thread_lock
    - qb_thread_unlock
    linkageType: ''
    returnType: size_t
    signature: 'size_t qb_array_num_bins_get(struct qb_array * a) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_thread_lock
      Src: /src/libqb/lib/array.c:225,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/array.c:227,1
    - Dst: qb_thread_unlock
      Src: /src/libqb/lib/array.c:237,1
    - Dst: QB_MIN
      Src: /src/libqb/lib/array.c:231,1
    - Dst: _grow_bin_array
      Src: /src/libqb/lib/array.c:234,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - a
    - max_elements
    argTypes:
    - struct qb_array*
    - size_t
    constantsTouched: []
    func_position:
      end: 239
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 239
    functionName: qb_array_grow
    functionSourceFile: /src/libqb/lib/array.c
    functionUses: []
    functionsReached:
    - _grow_bin_array
    - qb_thread_lock
    - QB_MIN
    - qb_thread_unlock
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_array_grow(struct qb_array * a, size_t max_elements) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libqb/lib/array.c:252,1
    - Dst: qb_thread_lock_destroy
      Src: /src/libqb/lib/array.c:255,1
    - Dst: free
      Src: /src/libqb/lib/array.c:254,1
    - Dst: free
      Src: /src/libqb/lib/array.c:256,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct qb_array*
    constantsTouched: []
    func_position:
      end: 257
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 257
    functionName: qb_array_free
    functionSourceFile: /src/libqb/lib/array.c
    functionUses: []
    functionsReached:
    - free
    - qb_thread_lock_destroy
    linkageType: ''
    returnType: void
    signature: 'void qb_array_free(struct qb_array *a) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: op_search
      Src: /src/libqb/lib/skiplist.c:181,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 6
    argCount: 2
    argNames:
    - list
    - key
    argTypes:
    - struct skiplist*
    - char*
    constantsTouched: []
    func_position:
      end: 193
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 193
    functionName: skiplist_lookup
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached:
    - op_search
    linkageType: ''
    returnType: struct skiplist_node*
    signature: 'static struct skiplist_node *skiplist_lookup(struct skiplist *list,
      const char *key) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: skiplist_node_next
      Src: /src/libqb/lib/skiplist.c:370,1
    - Dst: free
      Src: /src/libqb/lib/skiplist.c:376,1
    - Dst: skiplist_node_destroy
      Src: /src/libqb/lib/skiplist.c:373,1
    - Dst: skiplist_node_destroy
      Src: /src/libqb/lib/skiplist.c:375,1
    - Dst: skiplist_node_next
      Src: /src/libqb/lib/skiplist.c:372,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct qb_map*
    constantsTouched: []
    func_position:
      end: 377
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 377
    functionName: skiplist_destroy
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached:
    - skiplist_node_next
    - free
    - skiplist_node_destroy
    linkageType: ''
    returnType: void
    signature: 'static void skiplist_destroy(struct qb_map *map) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libqb/lib/skiplist.c:581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - qb_map_iter_t*
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 582
    functionName: skiplist_iter_free
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void skiplist_iter_free(qb_map_iter_t * i) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_list_for_each
      Src: /src/libqb/lib/skiplist.c:204,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/skiplist.c:215,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/skiplist.c:205,1
    - Dst: qb_list_for_each
      Src: /src/libqb/lib/skiplist.c:214,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 22
    argCount: 6
    argNames:
    - l
    - n
    - event
    - key
    - old_value
    - value
    argTypes:
    - struct skiplist*
    - struct skiplist_node*
    - uint32_t
    - char*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 229
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 229
    functionName: skiplist_notify
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached:
    - qb_list_entry
    - qb_list_for_each
    linkageType: ''
    returnType: void
    signature: "static void skiplist_notify(struct skiplist *l, struct skiplist_node
      *n,\t\tuint32_t event, char *key, void *old_value, void *value) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: op_search
      Src: /src/libqb/lib/skiplist.c:395,1
    - Dst: assert
      Src: /src/libqb/lib/skiplist.c:427,1
    - Dst: skiplist_level_generate
      Src: /src/libqb/lib/skiplist.c:416,1
    - Dst: skiplist_node_new
      Src: /src/libqb/lib/skiplist.c:425,1
    - Dst: skiplist_notify
      Src: /src/libqb/lib/skiplist.c:401,1
    - Dst: skiplist_notify
      Src: /src/libqb/lib/skiplist.c:428,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 32
    argCount: 3
    argNames:
    - map
    - key
    - value
    argTypes:
    - struct qb_map*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 439
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 439
    functionName: skiplist_put
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached:
    - assert
    - op_search
    - skiplist_level_generate
    - skiplist_node_new
    - skiplist_notify
    linkageType: ''
    returnType: void
    signature: 'static void skiplist_put(struct qb_map *map, const char *key, const
      void *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct qb_map*
    constantsTouched: []
    func_position:
      end: 589
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 589
    functionName: skiplist_count_get
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: 'static size_t skiplist_count_get(struct qb_map *map) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/libqb/lib/skiplist.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 90
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 90
    functionName: skiplist_level_generate
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached:
    - random
    linkageType: ''
    returnType: int8_t
    signature: 'static int8_t skiplist_level_generate(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libqb/lib/skiplist.c:112,1
    - Dst: free
      Src: /src/libqb/lib/skiplist.c:131,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/skiplist.c:121,1
    - Dst: calloc
      Src: /src/libqb/lib/skiplist.c:128,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 14
    argCount: 3
    argNames:
    - level
    - key
    - value
    argTypes:
    - int8_t
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 136
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 136
    functionName: skiplist_node_new
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached:
    - calloc
    - malloc
    - free
    - qb_list_init
    linkageType: ''
    returnType: struct skiplist_node*
    signature: 'static struct skiplist_node *skiplist_node_new(const int8_t level,
      const char *key, const void *value) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: skiplist_lookup
      Src: /src/libqb/lib/skiplist.c:275,1
    - Dst: malloc
      Src: /src/libqb/lib/skiplist.c:298,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/skiplist.c:284,1
    - Dst: qb_list_init
      Src: /src/libqb/lib/skiplist.c:305,1
    - Dst: qb_list_for_each
      Src: /src/libqb/lib/skiplist.c:283,1
    - Dst: qb_list_add_tail
      Src: /src/libqb/lib/skiplist.c:307,1
    - Dst: qb_list_add
      Src: /src/libqb/lib/skiplist.c:309,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 40
    argCount: 5
    argNames:
    - m
    - key
    - fn
    - events
    - user_data
    argTypes:
    - qb_map_t*
    - char*
    - qb_map_notify_fn
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 314
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 314
    functionName: skiplist_notify_add
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached:
    - malloc
    - skiplist_lookup
    - qb_list_entry
    - qb_list_init
    - qb_list_add_tail
    - qb_list_for_each
    - qb_list_add
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t skiplist_notify_add(qb_map_t * m, const char *key,\t\t
      qb_map_notify_fn fn, int32_t events, void *user_data) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: op_search
      Src: /src/libqb/lib/skiplist.c:454,1
    - Dst: free
      Src: /src/libqb/lib/skiplist.c:511,1
    - Dst: skiplist_node_next
      Src: /src/libqb/lib/skiplist.c:468,1
    - Dst: strcmp
      Src: /src/libqb/lib/skiplist.c:471,1
    - Dst: skiplist_node_deref
      Src: /src/libqb/lib/skiplist.c:514,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 37
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - struct qb_map*
    - char*
    constantsTouched: []
    func_position:
      end: 530
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 530
    functionName: skiplist_rm
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached:
    - skiplist_node_deref
    - op_search
    - strcmp
    - skiplist_node_next
    - free
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t skiplist_rm(struct qb_map *map, const char *key) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 5
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct skiplist_node*
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: skiplist_node_next
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct skiplist_node*
    signature: 'static struct skiplist_node *skiplist_node_next(const struct skiplist_node
      *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: skiplist_node_new
      Src: /src/libqb/lib/skiplist.c:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: skiplist_header_node_new
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached:
    - skiplist_node_new
    linkageType: ''
    returnType: struct skiplist_node*
    signature: 'static struct skiplist_node *skiplist_header_node_new(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: skiplist_lookup
      Src: /src/libqb/lib/skiplist.c:330,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/skiplist.c:346,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/skiplist.c:341,1
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/lib/skiplist.c:340,1
    - Dst: free
      Src: /src/libqb/lib/skiplist.c:347,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/skiplist.c:350,1
    - Dst: free
      Src: /src/libqb/lib/skiplist.c:351,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 33
    argCount: 6
    argNames:
    - m
    - key
    - fn
    - events
    - cmp_userdata
    - user_data
    argTypes:
    - qb_map_t*
    - char*
    - qb_map_notify_fn
    - int32_t
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 360
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 360
    functionName: skiplist_notify_del
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached:
    - qb_list_for_each_safe
    - skiplist_lookup
    - qb_list_entry
    - qb_list_del
    - free
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t skiplist_notify_del(qb_map_t * m, const char *key,\t\t
      qb_map_notify_fn fn, int32_t events,\t\t int32_t cmp_userdata, void *user_data) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skiplist_lookup
      Src: /src/libqb/lib/skiplist.c:536,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 3
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - struct qb_map*
    - char*
    constantsTouched: []
    func_position:
      end: 542
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 542
    functionName: skiplist_get
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached:
    - skiplist_lookup
    linkageType: ''
    returnType: void*
    signature: 'static void *skiplist_get(struct qb_map *map, const char *key) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libqb/lib/skiplist.c:547,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 6
    argCount: 2
    argNames:
    - map
    - prefix
    argTypes:
    - struct qb_map*
    - char*
    constantsTouched: []
    func_position:
      end: 556
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 556
    functionName: skiplist_iter_create
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached:
    - malloc
    linkageType: ''
    returnType: qb_map_iter_t*
    signature: 'static qb_map_iter_t *skiplist_iter_create(struct qb_map *map, const
      char *prefix) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: skiplist_node_next
      Src: /src/libqb/lib/skiplist.c:567,1
    - Dst: skiplist_node_deref
      Src: /src/libqb/lib/skiplist.c:569,1
    - Dst: skiplist_node_deref
      Src: /src/libqb/lib/skiplist.c:573,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 10
    argCount: 2
    argNames:
    - i
    - value
    argTypes:
    - qb_map_iter_t*
    - void**
    constantsTouched: []
    func_position:
      end: 576
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 576
    functionName: skiplist_iter_next
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached:
    - skiplist_node_deref
    - skiplist_node_next
    linkageType: ''
    returnType: char*
    signature: 'static const char *skiplist_iter_next(qb_map_iter_t * i, void **value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libqb/lib/skiplist.c:594,1
    - Dst: time
      Src: /src/libqb/lib/skiplist.c:599,1
    - Dst: srand
      Src: /src/libqb/lib/skiplist.c:599,1
    - Dst: skiplist_header_node_new
      Src: /src/libqb/lib/skiplist.c:613,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 616
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 616
    functionName: qb_skiplist_create
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached:
    - srand
    - malloc
    - time
    - skiplist_header_node_new
    linkageType: ''
    returnType: qb_map_t*
    signature: 'qb_map_t *qb_skiplist_create(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skiplist_notify
      Src: /src/libqb/lib/skiplist.c:238,1
    - Dst: qb_list_entry
      Src: /src/libqb/lib/skiplist.c:243,1
    - Dst: free
      Src: /src/libqb/lib/skiplist.c:245,1
    - Dst: qb_list_for_each_safe
      Src: /src/libqb/lib/skiplist.c:242,1
    - Dst: qb_list_del
      Src: /src/libqb/lib/skiplist.c:244,1
    - Dst: free
      Src: /src/libqb/lib/skiplist.c:250,1
    - Dst: free
      Src: /src/libqb/lib/skiplist.c:252,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 14
    argCount: 2
    argNames:
    - node
    - list
    argTypes:
    - struct skiplist_node*
    - struct skiplist*
    constantsTouched: []
    func_position:
      end: 253
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 253
    functionName: skiplist_node_destroy
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached:
    - qb_list_for_each_safe
    - qb_list_entry
    - qb_list_del
    - free
    - skiplist_notify
    linkageType: ''
    returnType: void
    signature: 'static void skiplist_node_destroy(struct skiplist_node *node, struct
      skiplist *list) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libqb/lib/skiplist.c:162,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 3
    argNames:
    - list
    - fwd_node
    - search
    argTypes:
    - struct skiplist*
    - struct skiplist_node*
    - void*
    constantsTouched: []
    func_position:
      end: 170
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 170
    functionName: op_search
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: op_t
    signature: "static op_t op_search(const struct skiplist *list,\t const struct
      skiplist_node *fwd_node, const void *search) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skiplist_node_destroy
      Src: /src/libqb/lib/skiplist.c:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - node
    - list
    argTypes:
    - struct skiplist_node*
    - struct skiplist*
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: skiplist_node_deref
    functionSourceFile: /src/libqb/lib/skiplist.c
    functionUses: []
    functionsReached:
    - skiplist_node_destroy
    linkageType: ''
    returnType: void
    signature: 'static void skiplist_node_deref(struct skiplist_node *node, struct
      skiplist *list) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _do_file_reload
      Src: /src/libqb/lib/log_file.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: _file_reload
    functionSourceFile: /src/libqb/lib/log_file.c
    functionUses: []
    functionsReached:
    - _do_file_reload
    linkageType: ''
    returnType: void
    signature: 'static void _file_reload(int32_t target) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_target_user_data_get
      Src: /src/libqb/lib/log_file.c:59,1
    - Dst: fclose
      Src: /src/libqb/lib/log_file.c:63,1
    - Dst: qb_log_target_user_data_set
      Src: /src/libqb/lib/log_file.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: _file_close
    functionSourceFile: /src/libqb/lib/log_file.c
    functionUses: []
    functionsReached:
    - fclose
    - qb_log_target_user_data_get
    - qb_log_target_user_data_set
    linkageType: ''
    returnType: void
    signature: 'static void _file_close(int32_t t) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_target_alloc
      Src: /src/libqb/lib/log_file.c:134,1
    - Dst: fopen
      Src: /src/libqb/lib/log_file.c:139,1
    - Dst: strlcpy
      Src: /src/libqb/lib/log_file.c:146,1
    - Dst: qb_log_target_free
      Src: /src/libqb/lib/log_file.c:142,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 152
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 152
    functionName: qb_log_file_open
    functionSourceFile: /src/libqb/lib/log_file.c
    functionUses: []
    functionsReached:
    - fopen
    - qb_log_target_free
    - strlcpy
    - qb_log_target_alloc
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_log_file_open(const char *filename) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_target_get
      Src: /src/libqb/lib/log_file.c:29,1
    - Dst: qb_log_target_format
      Src: /src/libqb/lib/log_file.c:43,1
    - Dst: malloc
      Src: /src/libqb/lib/log_file.c:36,1
    - Dst: fprintf
      Src: /src/libqb/lib/log_file.c:45,1
    - Dst: qb_log_target_user_data_get
      Src: /src/libqb/lib/log_file.c:30,1
    - Dst: fflush
      Src: /src/libqb/lib/log_file.c:47,1
    - Dst: QB_FILE_SYNC
      Src: /src/libqb/lib/log_file.c:49,1
    - Dst: fileno
      Src: /src/libqb/lib/log_file.c:49,1
    - Dst: free
      Src: /src/libqb/lib/log_file.c:52,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 21
    argCount: 4
    argNames:
    - t
    - cs
    - timestamp
    - msg
    argTypes:
    - int32_t
    - struct qb_log_callsite*
    - struct timespec*
    - char*
    constantsTouched: []
    func_position:
      end: 54
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 54
    functionName: _file_logger
    functionSourceFile: /src/libqb/lib/log_file.c
    functionUses: []
    functionsReached:
    - malloc
    - qb_log_target_format
    - qb_log_target_get
    - QB_FILE_SYNC
    - fileno
    - free
    - qb_log_target_user_data_get
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: "static void _file_logger(int32_t t,\t struct qb_log_callsite *cs,
      struct timespec *timestamp, const char *msg) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_target_get
      Src: /src/libqb/lib/log_file.c:70,1
    - Dst: qb_log_thread_pause
      Src: /src/libqb/lib/log_file.c:82,1
    - Dst: qb_log_target_user_data_get
      Src: /src/libqb/lib/log_file.c:71,1
    - Dst: fopen
      Src: /src/libqb/lib/log_file.c:79,1
    - Dst: fclose
      Src: /src/libqb/lib/log_file.c:87,1
    - Dst: strlcpy
      Src: /src/libqb/lib/log_file.c:91,1
    - Dst: qb_log_target_user_data_set
      Src: /src/libqb/lib/log_file.c:93,1
    - Dst: qb_log_thread_resume
      Src: /src/libqb/lib/log_file.c:99,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - filename
    - target
    argTypes:
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 102
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 102
    functionName: _do_file_reload
    functionSourceFile: /src/libqb/lib/log_file.c
    functionUses: []
    functionsReached:
    - qb_log_thread_pause
    - fclose
    - qb_log_target_get
    - fopen
    - qb_log_target_user_data_set
    - qb_log_target_user_data_get
    - strlcpy
    - qb_log_thread_resume
    linkageType: ''
    returnType: int
    signature: 'static int _do_file_reload(const char *filename, int32_t target) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/libqb/lib/log_file.c:118,1
    - Dst: strlcpy
      Src: /src/libqb/lib/log_file.c:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct qb_log_target*
    constantsTouched: []
    func_position:
      end: 125
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 125
    functionName: qb_log_stderr_open
    functionSourceFile: /src/libqb/lib/log_file.c
    functionUses: []
    functionsReached:
    - strlcpy
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_log_stderr_open(struct qb_log_target *t) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_custom_close
      Src: /src/libqb/lib/log_file.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: qb_log_file_close
    functionSourceFile: /src/libqb/lib/log_file.c
    functionUses: []
    functionsReached:
    - qb_log_custom_close
    linkageType: ''
    returnType: void
    signature: 'void qb_log_file_close(int32_t t) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _do_file_reload
      Src: /src/libqb/lib/log_file.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - t
    - filename
    argTypes:
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: qb_log_file_reopen
    functionSourceFile: /src/libqb/lib/log_file.c
    functionUses: []
    functionsReached:
    - _do_file_reload
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_log_file_reopen(int32_t t, const char *filename) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chmod
      Src: /src/libqb/lib/ringbuffer.c:940,1
    - Dst: chmod
      Src: /src/libqb/lib/ringbuffer.c:944,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - rb
    - mode
    argTypes:
    - qb_ringbuffer_t*
    - mode_t
    constantsTouched: []
    func_position:
      end: 949
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 949
    functionName: qb_rb_chmod
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached:
    - chmod
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_rb_chmod(qb_ringbuffer_t * rb, mode_t mode) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/lib/ringbuffer.c:289,1
    - Dst: qb_rb_close_helper
      Src: /src/libqb/lib/ringbuffer.c:292,1
    - Dst: qb_atomic_int_dec_and_test
      Src: /src/libqb/lib/ringbuffer.c:291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - rb
    argTypes:
    - struct qb_ringbuffer_s*
    constantsTouched: []
    func_position:
      end: 293
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 293
    functionName: qb_rb_close
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached:
    - qb_rb_close_helper
    - qb_enter
    - qb_atomic_int_dec_and_test
    linkageType: ''
    returnType: void
    signature: 'void qb_rb_close(struct qb_ringbuffer_s * rb) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: QB_RB_CHUNK_SIZE_GET
      Src: /src/libqb/lib/ringbuffer.c:627,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer.c:611,1
    - Dst: QB_RB_CHUNK_MAGIC_GET
      Src: /src/libqb/lib/ringbuffer.c:616,1
    - Dst: QB_RB_CHUNK_DATA_GET
      Src: /src/libqb/lib/ringbuffer.c:628,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - rb
    - data_out
    - timeout
    argTypes:
    - struct qb_ringbuffer_s*
    - void**
    - int32_t
    constantsTouched: []
    func_position:
      end: 630
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 630
    functionName: qb_rb_chunk_peek
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached:
    - QB_RB_CHUNK_MAGIC_GET
    - qb_util_perror
    - QB_RB_CHUNK_DATA_GET
    - QB_RB_CHUNK_SIZE_GET
    linkageType: ''
    returnType: ssize_t
    signature: 'ssize_t qb_rb_chunk_peek(struct qb_ringbuffer_s * rb, void **data_out,
      int32_t timeout) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/lib/ringbuffer.c:301,1
    - Dst: qb_rb_close_helper
      Src: /src/libqb/lib/ringbuffer.c:304,1
    - Dst: qb_atomic_int_set
      Src: /src/libqb/lib/ringbuffer.c:303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - rb
    argTypes:
    - struct qb_ringbuffer_s*
    constantsTouched: []
    func_position:
      end: 305
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 305
    functionName: qb_rb_force_close
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached:
    - qb_atomic_int_set
    - qb_rb_close_helper
    - qb_enter
    linkageType: ''
    returnType: void
    signature: 'void qb_rb_force_close(struct qb_ringbuffer_s * rb) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: QB_RB_CHUNK_SIZE_GET
      Src: /src/libqb/lib/ringbuffer.c:671,1
    - Dst: QB_RB_CHUNK_MAGIC_GET
      Src: /src/libqb/lib/ringbuffer.c:656,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer.c:650,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ringbuffer.c:673,1
    - Dst: memcpy
      Src: /src/libqb/lib/ringbuffer.c:682,1
    - Dst: QB_RB_CHUNK_DATA_GET
      Src: /src/libqb/lib/ringbuffer.c:683,1
    - Dst: _rb_chunk_reclaim
      Src: /src/libqb/lib/ringbuffer.c:686,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 4
    argNames:
    - rb
    - data_out
    - len
    - timeout
    argTypes:
    - struct qb_ringbuffer_s*
    - void*
    - size_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 689
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 689
    functionName: qb_rb_chunk_read
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached:
    - _rb_chunk_reclaim
    - QB_RB_CHUNK_MAGIC_GET
    - memcpy
    - QB_RB_CHUNK_DATA_GET
    - qb_util_perror
    - QB_RB_CHUNK_SIZE_GET
    - qb_util_log
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t qb_rb_chunk_read(struct qb_ringbuffer_s * rb, void *data_out,
      size_t len,\t\t int32_t timeout) "
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - rb
    argTypes:
    - struct qb_ringbuffer_s*
    constantsTouched: []
    func_position:
      end: 394
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 394
    functionName: qb_rb_space_used
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: 'ssize_t qb_rb_space_used(struct qb_ringbuffer_s * rb) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: QB_RB_CHUNK_MAGIC_GET
      Src: /src/libqb/lib/ringbuffer.c:541,1
    - Dst: qb_rb_chunk_step
      Src: /src/libqb/lib/ringbuffer.c:548,1
    - Dst: QB_RB_CHUNK_SIZE_GET
      Src: /src/libqb/lib/ringbuffer.c:547,1
    - Dst: QB_RB_CHUNK_MAGIC_SET
      Src: /src/libqb/lib/ringbuffer.c:554,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer.c:569,1
    - Dst: DEBUG_PRINTF
      Src: /src/libqb/lib/ringbuffer.c:573,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - rb
    argTypes:
    - struct qb_ringbuffer_s*
    constantsTouched: []
    func_position:
      end: 581
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 581
    functionName: _rb_chunk_reclaim
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached:
    - qb_rb_chunk_step
    - QB_RB_CHUNK_MAGIC_GET
    - DEBUG_PRINTF
    - qb_util_perror
    - QB_RB_CHUNK_SIZE_GET
    - QB_RB_CHUNK_MAGIC_SET
    linkageType: ''
    returnType: int
    signature: 'static int _rb_chunk_reclaim(struct qb_ringbuffer_s * rb) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: print_header
      Src: /src/libqb/lib/ringbuffer.c:731,1
    - Dst: write
      Src: /src/libqb/lib/ringbuffer.c:736,1
    - Dst: write
      Src: /src/libqb/lib/ringbuffer.c:745,1
    - Dst: write
      Src: /src/libqb/lib/ringbuffer.c:750,1
    - Dst: write
      Src: /src/libqb/lib/ringbuffer.c:759,1
    - Dst: write
      Src: /src/libqb/lib/ringbuffer.c:769,1
    - Dst: write
      Src: /src/libqb/lib/ringbuffer.c:775,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ringbuffer.c:782,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 2
    argNames:
    - rb
    - fd
    argTypes:
    - struct qb_ringbuffer_s*
    - int32_t
    constantsTouched: []
    func_position:
      end: 785
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 785
    functionName: qb_rb_write_to_file
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached:
    - qb_util_log
    - print_header
    - write
    linkageType: ''
    returnType: ssize_t
    signature: 'ssize_t qb_rb_write_to_file(struct qb_ringbuffer_s * rb, int32_t fd) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer.c:817,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer.c:838,1
    - Dst: read
      Src: /src/libqb/lib/ringbuffer.c:890,1
    - Dst: read
      Src: /src/libqb/lib/ringbuffer.c:846,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer.c:892,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer.c:848,1
    - Dst: qb_rb_close
      Src: /src/libqb/lib/ringbuffer.c:909,1
    - Dst: read
      Src: /src/libqb/lib/ringbuffer.c:857,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer.c:859,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ringbuffer.c:903,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer.c:807,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer.c:823,1
    - Dst: read
      Src: /src/libqb/lib/ringbuffer.c:815,1
    - Dst: read
      Src: /src/libqb/lib/ringbuffer.c:830,1
    - Dst: read
      Src: /src/libqb/lib/ringbuffer.c:834,1
    - Dst: assert
      Src: /src/libqb/lib/ringbuffer.c:835,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ringbuffer.c:866,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ringbuffer.c:898,1
    - Dst: fstat
      Src: /src/libqb/lib/ringbuffer.c:806,1
    - Dst: assert
      Src: /src/libqb/lib/ringbuffer.c:831,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ringbuffer.c:869,1
    - Dst: qb_rb_open
      Src: /src/libqb/lib/ringbuffer.c:882,1
    - Dst: print_header
      Src: /src/libqb/lib/ringbuffer.c:904,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 79
    argCount: 2
    argNames:
    - fd
    - flags
    argTypes:
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 911
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 911
    functionName: qb_rb_create_from_file
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached:
    - print_header
    - assert
    - qb_rb_open
    - qb_util_perror
    - qb_rb_close
    - qb_util_log
    - read
    - fstat
    linkageType: ''
    returnType: qb_ringbuffer_t*
    signature: 'qb_ringbuffer_t *qb_rb_create_from_file(int32_t fd, uint32_t flags) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - rb
    argTypes:
    - struct qb_ringbuffer_s*
    constantsTouched: []
    func_position:
      end: 406
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 406
    functionName: qb_rb_chunks_used
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: 'ssize_t qb_rb_chunks_used(struct qb_ringbuffer_s *rb) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _rb_chunk_reclaim
      Src: /src/libqb/lib/ringbuffer.c:589,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - rb
    argTypes:
    - struct qb_ringbuffer_s*
    constantsTouched: []
    func_position:
      end: 590
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 590
    functionName: qb_rb_chunk_reclaim
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached:
    - _rb_chunk_reclaim
    linkageType: ''
    returnType: void
    signature: 'void qb_rb_chunk_reclaim(struct qb_ringbuffer_s * rb) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chown
      Src: /src/libqb/lib/ringbuffer.c:921,1
    - Dst: chown
      Src: /src/libqb/lib/ringbuffer.c:925,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - rb
    - owner
    - group
    argTypes:
    - struct qb_ringbuffer_s*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 930
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 930
    functionName: qb_rb_chown
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached:
    - chown
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_rb_chown(struct qb_ringbuffer_s * rb, uid_t owner, gid_t
      group) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libqb/lib/ringbuffer.c:694,1
    - Dst: printf
      Src: /src/libqb/lib/ringbuffer.c:698,1
    - Dst: printf
      Src: /src/libqb/lib/ringbuffer.c:702,1
    - Dst: printf
      Src: /src/libqb/lib/ringbuffer.c:696,1
    - Dst: printf
      Src: /src/libqb/lib/ringbuffer.c:701,1
    - Dst: printf
      Src: /src/libqb/lib/ringbuffer.c:703,1
    - Dst: printf
      Src: /src/libqb/lib/ringbuffer.c:704,1
    - Dst: qb_rb_space_free
      Src: /src/libqb/lib/ringbuffer.c:704,1
    - Dst: printf
      Src: /src/libqb/lib/ringbuffer.c:705,1
    - Dst: qb_rb_space_used
      Src: /src/libqb/lib/ringbuffer.c:705,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - rb
    argTypes:
    - struct qb_ringbuffer_s*
    constantsTouched: []
    func_position:
      end: 707
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 707
    functionName: print_header
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached:
    - qb_rb_space_used
    - printf
    - qb_rb_space_free
    linkageType: ''
    returnType: void
    signature: 'static void print_header(struct qb_ringbuffer_s * rb) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_rb_open_2
      Src: /src/libqb/lib/ringbuffer.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 4
    argNames:
    - name
    - size
    - flags
    - shared_user_data_size
    argTypes:
    - char*
    - size_t
    - uint32_t
    - size_t
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: qb_rb_open
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached:
    - qb_rb_open_2
    linkageType: ''
    returnType: qb_ringbuffer_t*
    signature: "qb_ringbuffer_t *qb_rb_open(const char *name, size_t size, uint32_t
      flags,\t size_t shared_user_data_size) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 1
    argNames:
    - rb
    argTypes:
    - struct qb_ringbuffer_s*
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: qb_rb_name_get
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'char *qb_rb_name_get(struct qb_ringbuffer_s * rb) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_atomic_int_get
      Src: /src/libqb/lib/ringbuffer.c:331,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - rb
    argTypes:
    - struct qb_ringbuffer_s*
    constantsTouched: []
    func_position:
      end: 332
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 332
    functionName: qb_rb_refcount_get
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached:
    - qb_atomic_int_get
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_rb_refcount_get(struct qb_ringbuffer_s * rb) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_rb_space_free
      Src: /src/libqb/lib/ringbuffer.c:421,1
    - Dst: _rb_chunk_reclaim
      Src: /src/libqb/lib/ringbuffer.c:422,1
    - Dst: QB_RB_CHUNK_MAGIC_SET
      Src: /src/libqb/lib/ringbuffer.c:439,1
    - Dst: qb_rb_space_free
      Src: /src/libqb/lib/ringbuffer.c:428,1
    - Dst: QB_RB_CHUNK_DATA_GET
      Src: /src/libqb/lib/ringbuffer.c:444,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - rb
    - len
    argTypes:
    - struct qb_ringbuffer_s*
    - size_t
    constantsTouched: []
    func_position:
      end: 446
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 446
    functionName: qb_rb_chunk_alloc
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached:
    - QB_RB_CHUNK_MAGIC_SET
    - _rb_chunk_reclaim
    - QB_RB_CHUNK_DATA_GET
    - qb_rb_space_free
    linkageType: ''
    returnType: void*
    signature: 'void *qb_rb_chunk_alloc(struct qb_ringbuffer_s * rb, size_t len) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_rb_chunk_step
      Src: /src/libqb/lib/ringbuffer.c:487,1
    - Dst: QB_RB_CHUNK_MAGIC_SET
      Src: /src/libqb/lib/ringbuffer.c:488,1
    - Dst: DEBUG_PRINTF
      Src: /src/libqb/lib/ringbuffer.c:490,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - rb
    - len
    argTypes:
    - struct qb_ringbuffer_s*
    - size_t
    constantsTouched: []
    func_position:
      end: 505
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 505
    functionName: qb_rb_chunk_commit
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached:
    - QB_RB_CHUNK_MAGIC_SET
    - qb_rb_chunk_step
    - DEBUG_PRINTF
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_rb_chunk_commit(struct qb_ringbuffer_s * rb, size_t len) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/libqb/lib/ringbuffer.c:177,1
    - Dst: strlcpy
      Src: /src/libqb/lib/ringbuffer.c:199,1
    - Dst: snprintf
      Src: /src/libqb/lib/ringbuffer.c:219,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ringbuffer.c:231,1
    - Dst: qb_sys_circular_mmap
      Src: /src/libqb/lib/ringbuffer.c:240,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ringbuffer.c:243,1
    - Dst: memset
      Src: /src/libqb/lib/ringbuffer.c:249,1
    - Dst: qb_atomic_int_inc
      Src: /src/libqb/lib/ringbuffer.c:253,1
    - Dst: sysconf
      Src: /src/libqb/lib/ringbuffer.c:138,1
    - Dst: snprintf
      Src: /src/libqb/lib/ringbuffer.c:168,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ringbuffer.c:183,1
    - Dst: memcpy
      Src: /src/libqb/lib/ringbuffer.c:203,1
    - Dst: strlcpy
      Src: /src/libqb/lib/ringbuffer.c:223,1
    - Dst: QB_MAX
      Src: /src/libqb/lib/ringbuffer.c:141,1
    - Dst: calloc
      Src: /src/libqb/lib/ringbuffer.c:160,1
    - Dst: qb_sys_mmap_file_open
      Src: /src/libqb/lib/ringbuffer.c:225,1
    - Dst: qb_util_perror
      Src: /src/libqb/lib/ringbuffer.c:211,1
    - Dst: qb_sys_mmap_file_open
      Src: /src/libqb/lib/ringbuffer.c:220,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ringbuffer.c:235,1
    - Dst: unlink
      Src: /src/libqb/lib/ringbuffer.c:269,1
    - Dst: QB_MAX
      Src: /src/libqb/lib/ringbuffer.c:143,1
    - Dst: QB_ROUNDUP
      Src: /src/libqb/lib/ringbuffer.c:151,1
    - Dst: qb_sys_mmap_file_open
      Src: /src/libqb/lib/ringbuffer.c:169,1
    - Dst: qb_util_log
      Src: /src/libqb/lib/ringbuffer.c:173,1
    - Dst: qb_atomic_init
      Src: /src/libqb/lib/ringbuffer.c:186,1
    - Dst: qb_rb_sem_create
      Src: /src/libqb/lib/ringbuffer.c:207,1
    - Dst: close
      Src: /src/libqb/lib/ringbuffer.c:256,1
    - Dst: unlink
      Src: /src/libqb/lib/ringbuffer.c:261,1
    - Dst: close
      Src: /src/libqb/lib/ringbuffer.c:266,1
    - Dst: munmap
      Src: /src/libqb/lib/ringbuffer.c:275,1
    - Dst: free
      Src: /src/libqb/lib/ringbuffer.c:277,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 108
    argCount: 5
    argNames:
    - name
    - size
    - flags
    - shared_user_data_size
    - notifiers
    argTypes:
    - char*
    - size_t
    - uint32_t
    - size_t
    - struct qb_rb_notifier*
    constantsTouched: []
    func_position:
      end: 280
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 280
    functionName: qb_rb_open_2
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached:
    - free
    - QB_ROUNDUP
    - sysconf
    - memcpy
    - munmap
    - qb_sys_mmap_file_open
    - unlink
    - QB_MAX
    - snprintf
    - mmap
    - memset
    - close
    - calloc
    - qb_rb_sem_create
    - qb_sys_circular_mmap
    - qb_atomic_int_inc
    - strlcpy
    - qb_util_perror
    - qb_util_log
    - qb_atomic_init
    linkageType: ''
    returnType: qb_ringbuffer_t*
    signature: "qb_ringbuffer_t *qb_rb_open_2(const char *name, size_t size, uint32_t
      flags,\t size_t shared_user_data_size,\t struct qb_rb_notifier *notifiers) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 1
    argNames:
    - rb
    argTypes:
    - struct qb_ringbuffer_s*
    constantsTouched: []
    func_position:
      end: 323
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 323
    functionName: qb_rb_shared_user_data_get
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'void *qb_rb_shared_user_data_get(struct qb_ringbuffer_s * rb) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - rb
    argTypes:
    - struct qb_ringbuffer_s*
    constantsTouched: []
    func_position:
      end: 366
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 366
    functionName: qb_rb_space_free
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: 'ssize_t qb_rb_space_free(struct qb_ringbuffer_s * rb) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QB_RB_CHUNK_SIZE_GET
      Src: /src/libqb/lib/ringbuffer.c:451,1
    - Dst: idx_cache_line_step
      Src: /src/libqb/lib/ringbuffer.c:466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - rb
    - pointer
    argTypes:
    - struct qb_ringbuffer_s*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 468
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 468
    functionName: qb_rb_chunk_step
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached:
    - idx_cache_line_step
    - QB_RB_CHUNK_SIZE_GET
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t qb_rb_chunk_step(struct qb_ringbuffer_s * rb, uint32_t
      pointer) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_rb_chunk_alloc
      Src: /src/libqb/lib/ringbuffer.c:510,1
    - Dst: memcpy
      Src: /src/libqb/lib/ringbuffer.c:521,1
    - Dst: qb_rb_chunk_commit
      Src: /src/libqb/lib/ringbuffer.c:523,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - rb
    - data
    - len
    argTypes:
    - struct qb_ringbuffer_s*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 529
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 529
    functionName: qb_rb_chunk_write
    functionSourceFile: /src/libqb/lib/ringbuffer.c
    functionUses: []
    functionsReached:
    - memcpy
    - qb_rb_chunk_commit
    - qb_rb_chunk_alloc
    linkageType: ''
    returnType: ssize_t
    signature: 'ssize_t qb_rb_chunk_write(struct qb_ringbuffer_s * rb, const void
      *data, size_t len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_atomic_init
      Src: /src/libqb/lib/hdb.c:36,1
    - Dst: qb_array_create
      Src: /src/libqb/lib/hdb.c:37,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - hdb
    argTypes:
    - struct qb_hdb*
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: qb_hdb_create_first_run
    functionSourceFile: /src/libqb/lib/hdb.c
    functionUses: []
    functionsReached:
    - qb_array_create
    - qb_atomic_init
    linkageType: ''
    returnType: void
    signature: 'static void qb_hdb_create_first_run(struct qb_hdb *hdb) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_free
      Src: /src/libqb/lib/hdb.c:52,1
    - Dst: memset
      Src: /src/libqb/lib/hdb.c:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - hdb
    argTypes:
    - struct qb_hdb*
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: qb_hdb_destroy
    functionSourceFile: /src/libqb/lib/hdb.c
    functionUses: []
    functionsReached:
    - memset
    - qb_array_free
    linkageType: ''
    returnType: void
    signature: 'void qb_hdb_destroy(struct qb_hdb *hdb) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qb_hdb_create_first_run
      Src: /src/libqb/lib/hdb.c:135,1
    - Dst: qb_atomic_int_inc
      Src: /src/libqb/lib/hdb.c:151,1
    - Dst: qb_atomic_int_get
      Src: /src/libqb/lib/hdb.c:138,1
    - Dst: qb_array_index
      Src: /src/libqb/lib/hdb.c:143,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 3
    argNames:
    - hdb
    - handle_in
    - instance
    argTypes:
    - struct qb_hdb*
    - qb_handle_t
    - void**
    constantsTouched: []
    func_position:
      end: 156
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 156
    functionName: qb_hdb_handle_get
    functionSourceFile: /src/libqb/lib/hdb.c
    functionUses: []
    functionsReached:
    - qb_atomic_int_get
    - qb_array_index
    - qb_atomic_int_inc
    - qb_hdb_create_first_run
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_hdb_handle_get(struct qb_hdb * hdb, qb_handle_t handle_in,
      void **instance) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_hdb_create_first_run
      Src: /src/libqb/lib/hdb.c:173,1
    - Dst: qb_atomic_int_dec_and_test
      Src: /src/libqb/lib/hdb.c:185,1
    - Dst: qb_atomic_int_get
      Src: /src/libqb/lib/hdb.c:175,1
    - Dst: qb_array_index
      Src: /src/libqb/lib/hdb.c:180,1
    - Dst: free
      Src: /src/libqb/lib/hdb.c:189,1
    - Dst: memset
      Src: /src/libqb/lib/hdb.c:190,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 2
    argNames:
    - hdb
    - handle_in
    argTypes:
    - struct qb_hdb*
    - qb_handle_t
    constantsTouched: []
    func_position:
      end: 193
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 193
    functionName: qb_hdb_handle_put
    functionSourceFile: /src/libqb/lib/hdb.c
    functionUses: []
    functionsReached:
    - qb_array_index
    - qb_atomic_int_dec_and_test
    - memset
    - qb_atomic_int_get
    - free
    - qb_hdb_create_first_run
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_hdb_handle_put(struct qb_hdb * hdb, qb_handle_t handle_in) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_hdb_create_first_run
      Src: /src/libqb/lib/hdb.c:230,1
    - Dst: qb_atomic_int_get
      Src: /src/libqb/lib/hdb.c:232,1
    - Dst: qb_array_index
      Src: /src/libqb/lib/hdb.c:237,1
    - Dst: qb_atomic_int_get
      Src: /src/libqb/lib/hdb.c:242,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - hdb
    - handle_in
    argTypes:
    - struct qb_hdb*
    - qb_handle_t
    constantsTouched: []
    func_position:
      end: 245
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 245
    functionName: qb_hdb_handle_refcount_get
    functionSourceFile: /src/libqb/lib/hdb.c
    functionUses: []
    functionsReached:
    - qb_atomic_int_get
    - qb_array_index
    - qb_hdb_create_first_run
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_hdb_handle_refcount_get(struct qb_hdb * hdb, qb_handle_t
      handle_in) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_atomic_int_get
      Src: /src/libqb/lib/hdb.c:261,1
    - Dst: qb_array_index
      Src: /src/libqb/lib/hdb.c:263,1
    - Dst: qb_hdb_handle_get
      Src: /src/libqb/lib/hdb.c:271,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 3
    argNames:
    - hdb
    - instance
    - handle
    argTypes:
    - struct qb_hdb*
    - void**
    - qb_handle_t*
    constantsTouched: []
    func_position:
      end: 279
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 279
    functionName: qb_hdb_iterator_next
    functionSourceFile: /src/libqb/lib/hdb.c
    functionUses: []
    functionsReached:
    - qb_atomic_int_get
    - qb_array_index
    - qb_hdb_handle_get
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_hdb_iterator_next(struct qb_hdb *hdb, void **instance,
      qb_handle_t * handle) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: qb_hdb_create_first_run
      Src: /src/libqb/lib/hdb.c:69,1
    - Dst: qb_array_index
      Src: /src/libqb/lib/hdb.c:73,1
    - Dst: qb_array_grow
      Src: /src/libqb/lib/hdb.c:82,1
    - Dst: qb_atomic_int_inc
      Src: /src/libqb/lib/hdb.c:76,1
    - Dst: qb_atomic_int_get
      Src: /src/libqb/lib/hdb.c:71,1
    - Dst: qb_array_index
      Src: /src/libqb/lib/hdb.c:86,1
    - Dst: qb_atomic_int_inc
      Src: /src/libqb/lib/hdb.c:93,1
    - Dst: malloc
      Src: /src/libqb/lib/hdb.c:96,1
    - Dst: random
      Src: /src/libqb/lib/hdb.c:108,1
    - Dst: memset
      Src: /src/libqb/lib/hdb.c:115,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 3
    argNames:
    - hdb
    - instance_size
    - handle_id_out
    argTypes:
    - struct qb_hdb*
    - int32_t
    - qb_handle_t*
    constantsTouched: []
    func_position:
      end: 125
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 125
    functionName: qb_hdb_handle_create
    functionSourceFile: /src/libqb/lib/hdb.c
    functionUses: []
    functionsReached:
    - qb_array_grow
    - malloc
    - qb_array_index
    - random
    - memset
    - qb_atomic_int_get
    - qb_atomic_int_inc
    - qb_hdb_create_first_run
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_hdb_handle_create(struct qb_hdb *hdb, int32_t instance_size,\t\t
      qb_handle_t * handle_id_out) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libqb/lib/hdb.c:44,1
    - Dst: qb_hdb_create_first_run
      Src: /src/libqb/lib/hdb.c:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - hdb
    argTypes:
    - struct qb_hdb*
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: qb_hdb_create
    functionSourceFile: /src/libqb/lib/hdb.c
    functionUses: []
    functionsReached:
    - memset
    - qb_hdb_create_first_run
    linkageType: ''
    returnType: void
    signature: 'void qb_hdb_create(struct qb_hdb *hdb) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_hdb_handle_get
      Src: /src/libqb/lib/hdb.c:162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - hdb
    - handle_in
    - instance
    argTypes:
    - struct qb_hdb*
    - qb_handle_t
    - void**
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: qb_hdb_handle_get_always
    functionSourceFile: /src/libqb/lib/hdb.c
    functionUses: []
    functionsReached:
    - qb_hdb_handle_get
    linkageType: ''
    returnType: int32_t
    signature: "int32_t qb_hdb_handle_get_always(struct qb_hdb * hdb, qb_handle_t
      handle_in,\t\t\t void **instance) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qb_hdb_create_first_run
      Src: /src/libqb/lib/hdb.c:204,1
    - Dst: qb_atomic_int_get
      Src: /src/libqb/lib/hdb.c:206,1
    - Dst: qb_array_index
      Src: /src/libqb/lib/hdb.c:211,1
    - Dst: qb_hdb_handle_put
      Src: /src/libqb/lib/hdb.c:217,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - hdb
    - handle_in
    argTypes:
    - struct qb_hdb*
    - qb_handle_t
    constantsTouched: []
    func_position:
      end: 219
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 219
    functionName: qb_hdb_handle_destroy
    functionSourceFile: /src/libqb/lib/hdb.c
    functionUses: []
    functionsReached:
    - qb_atomic_int_get
    - qb_hdb_handle_put
    - qb_array_index
    - qb_hdb_create_first_run
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t qb_hdb_handle_destroy(struct qb_hdb * hdb, qb_handle_t handle_in) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - hdb
    argTypes:
    - struct qb_hdb*
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: qb_hdb_iterator_reset
    functionSourceFile: /src/libqb/lib/hdb.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void qb_hdb_iterator_reset(struct qb_hdb *hdb) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - qb_handle_t
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: qb_hdb_base_convert
    functionSourceFile: /src/libqb/lib/hdb.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t qb_hdb_base_convert(qb_handle_t handle) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 293
    functionName: qb_hdb_nocheck_convert
    functionSourceFile: /src/libqb/lib/hdb.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: 'uint64_t qb_hdb_nocheck_convert(uint32_t handle) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_atomic_int_set
      Src: /src/libqb/lib/ringbuffer_int.h:124,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 5
    argCount: 1
    argNames:
    - rb
    argTypes:
    - struct qb_ringbuffer_s**
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: qb_rb_lastref_and_ret
    functionSourceFile: /src/libqb/lib/ringbuffer_int.h
    functionUses: []
    functionsReached:
    - qb_atomic_int_set
    linkageType: ''
    returnType: struct qb_ringbuffer_s*
    signature: 'static inline struct qb_ringbuffer_s *qb_rb_lastref_and_ret(struct
      qb_ringbuffer_s ** rb) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libqb/examples/tcpserver.c:49,1
    - Dst: recv
      Src: /src/libqb/examples/tcpserver.c:54,1
    - Dst: strcmp
      Src: /src/libqb/examples/tcpserver.c:61,1
    - Dst: close
      Src: /src/libqb/examples/tcpserver.c:50,1
    - Dst: perror
      Src: /src/libqb/examples/tcpserver.c:56,1
    - Dst: strcmp
      Src: /src/libqb/examples/tcpserver.c:61,1
    - Dst: printf
      Src: /src/libqb/examples/tcpserver.c:62,1
    - Dst: close
      Src: /src/libqb/examples/tcpserver.c:63,1
    - Dst: printf
      Src: /src/libqb/examples/tcpserver.c:66,1
    - Dst: snprintf
      Src: /src/libqb/examples/tcpserver.c:67,1
    - Dst: send
      Src: /src/libqb/examples/tcpserver.c:68,1
    - Dst: close
      Src: /src/libqb/examples/tcpserver.c:69,1
    - Dst: strlen
      Src: /src/libqb/examples/tcpserver.c:68,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - fd
    - revents
    - data
    argTypes:
    - int32_t
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 74
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 74
    functionName: sock_read_fn
    functionSourceFile: /src/libqb/examples/tcpserver.c
    functionUses: []
    functionsReached:
    - strcmp
    - send
    - recv
    - strlen
    - snprintf
    - printf
    - perror
    - close
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t sock_read_fn(int32_t fd, int32_t revents, void *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/libqb/examples/tcpserver.c:82,1
    - Dst: ntohs
      Src: /src/libqb/examples/tcpserver.c:89,1
    - Dst: inet_ntoa
      Src: /src/libqb/examples/tcpserver.c:89,1
    - Dst: printf
      Src: /src/libqb/examples/tcpserver.c:88,1
    - Dst: perror
      Src: /src/libqb/examples/tcpserver.c:85,1
    - Dst: qb_loop_poll_add
      Src: /src/libqb/examples/tcpserver.c:91,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - revents
    - data
    argTypes:
    - int32_t
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 94
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 94
    functionName: sock_accept_fn
    functionSourceFile: /src/libqb/examples/tcpserver.c
    functionUses: []
    functionsReached:
    - ntohs
    - printf
    - accept
    - qb_loop_poll_add
    - inet_ntoa
    - perror
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t sock_accept_fn(int32_t fd, int32_t revents, void *data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: perror
      Src: /src/libqb/examples/tcpserver.c:115,1
    - Dst: exit
      Src: /src/libqb/examples/tcpserver.c:123,1
    - Dst: bind
      Src: /src/libqb/examples/tcpserver.c:132,1
    - Dst: qb_loop_create
      Src: /src/libqb/examples/tcpserver.c:112,1
    - Dst: htons
      Src: /src/libqb/examples/tcpserver.c:127,1
    - Dst: exit
      Src: /src/libqb/examples/tcpserver.c:136,1
    - Dst: printf
      Src: /src/libqb/examples/tcpserver.c:139,1
    - Dst: qb_loop_signal_add
      Src: /src/libqb/examples/tcpserver.c:148,1
    - Dst: perror
      Src: /src/libqb/examples/tcpserver.c:142,1
    - Dst: exit
      Src: /src/libqb/examples/tcpserver.c:116,1
    - Dst: perror
      Src: /src/libqb/examples/tcpserver.c:122,1
    - Dst: bzero
      Src: /src/libqb/examples/tcpserver.c:129,1
    - Dst: listen
      Src: /src/libqb/examples/tcpserver.c:141,1
    - Dst: close
      Src: /src/libqb/examples/tcpserver.c:151,1
    - Dst: socket
      Src: /src/libqb/examples/tcpserver.c:114,1
    - Dst: setsockopt
      Src: /src/libqb/examples/tcpserver.c:119,1
    - Dst: printf
      Src: /src/libqb/examples/tcpserver.c:131,1
    - Dst: exit
      Src: /src/libqb/examples/tcpserver.c:143,1
    - Dst: perror
      Src: /src/libqb/examples/tcpserver.c:135,1
    - Dst: qb_loop_poll_add
      Src: /src/libqb/examples/tcpserver.c:146,1
    - Dst: qb_loop_run
      Src: /src/libqb/examples/tcpserver.c:149,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 153
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 153
    functionName: main
    functionSourceFile: /src/libqb/examples/tcpserver.c
    functionUses: []
    functionsReached:
    - listen
    - qb_loop_run
    - socket
    - htons
    - bind
    - qb_loop_create
    - exit
    - qb_loop_signal_add
    - qb_loop_poll_add
    - bzero
    - printf
    - perror
    - close
    - setsockopt
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char *argv[]) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libqb/examples/tcpserver.c:101,1
    - Dst: qb_loop_stop
      Src: /src/libqb/examples/tcpserver.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - rsignal
    - data
    argTypes:
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: please_exit_fn
    functionSourceFile: /src/libqb/examples/tcpserver.c
    functionUses: []
    functionsReached:
    - printf
    - qb_loop_stop
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t please_exit_fn(int32_t rsignal, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/examples/simplelog.c:57,1
    - Dst: qb_logt
      Src: /src/libqb/examples/simplelog.c:58,1
    - Dst: qb_logt
      Src: /src/libqb/examples/simplelog.c:59,1
    - Dst: qb_log
      Src: /src/libqb/examples/simplelog.c:60,1
    - Dst: qb_logt
      Src: /src/libqb/examples/simplelog.c:61,1
    - Dst: qb_leave
      Src: /src/libqb/examples/simplelog.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: func_two
    functionSourceFile: /src/libqb/examples/simplelog.c
    functionUses: []
    functionsReached:
    - qb_leave
    - qb_log
    - qb_enter
    - qb_logt
    linkageType: ''
    returnType: void
    signature: 'static void func_two(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/libqb/examples/simplelog.c:89,1
    - Dst: qb_log_ctl
      Src: /src/libqb/examples/simplelog.c:93,1
    - Dst: qb_log_blackbox_write_to_file
      Src: /src/libqb/examples/simplelog.c:91,1
    - Dst: raise
      Src: /src/libqb/examples/simplelog.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 95
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 95
    functionName: sigsegv_handler
    functionSourceFile: /src/libqb/examples/simplelog.c
    functionUses: []
    functionsReached:
    - signal
    - raise
    - qb_log_blackbox_write_to_file
    - qb_log_ctl
    linkageType: ''
    returnType: void
    signature: 'static void sigsegv_handler(int sig) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_target_format
      Src: /src/libqb/examples/simplelog.c:119,1
    - Dst: fprintf
      Src: /src/libqb/examples/simplelog.c:120,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 4
    argNames:
    - t
    - cs
    - timestamp
    - msg
    argTypes:
    - int32_t
    - struct qb_log_callsite*
    - struct timespec*
    - char*
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: trace_logger
    functionSourceFile: /src/libqb/examples/simplelog.c
    functionUses: []
    functionsReached:
    - qb_log_target_format
    - fprintf
    linkageType: ''
    returnType: void
    signature: "static void trace_logger(int32_t t,\t struct qb_log_callsite *cs,
      struct timespec *timestamp, const char *msg) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_enter
      Src: /src/libqb/examples/simplelog.c:38,1
    - Dst: qb_logt
      Src: /src/libqb/examples/simplelog.c:40,1
    - Dst: qb_logt
      Src: /src/libqb/examples/simplelog.c:42,1
    - Dst: qb_logt
      Src: /src/libqb/examples/simplelog.c:41,1
    - Dst: qb_logt
      Src: /src/libqb/examples/simplelog.c:39,1
    - Dst: qb_log
      Src: /src/libqb/examples/simplelog.c:43,1
    - Dst: fopen
      Src: /src/libqb/examples/simplelog.c:45,1
    - Dst: qb_perror
      Src: /src/libqb/examples/simplelog.c:47,1
    - Dst: fclose
      Src: /src/libqb/examples/simplelog.c:49,1
    - Dst: qb_leave
      Src: /src/libqb/examples/simplelog.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 52
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 52
    functionName: func_one
    functionSourceFile: /src/libqb/examples/simplelog.c
    functionUses: []
    functionsReached:
    - fclose
    - qb_perror
    - qb_enter
    - fopen
    - qb_log
    - qb_leave
    - qb_logt
    linkageType: ''
    returnType: void
    signature: 'static void func_one(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libqb/examples/simplelog.c:68,1
    - Dst: printf
      Src: /src/libqb/examples/simplelog.c:71,1
    - Dst: printf
      Src: /src/libqb/examples/simplelog.c:70,1
    - Dst: printf
      Src: /src/libqb/examples/simplelog.c:69,1
    - Dst: printf
      Src: /src/libqb/examples/simplelog.c:72,1
    - Dst: printf
      Src: /src/libqb/examples/simplelog.c:73,1
    - Dst: printf
      Src: /src/libqb/examples/simplelog.c:74,1
    - Dst: printf
      Src: /src/libqb/examples/simplelog.c:75,1
    - Dst: printf
      Src: /src/libqb/examples/simplelog.c:76,1
    - Dst: printf
      Src: /src/libqb/examples/simplelog.c:77,1
    - Dst: printf
      Src: /src/libqb/examples/simplelog.c:80,1
    - Dst: printf
      Src: /src/libqb/examples/simplelog.c:79,1
    - Dst: printf
      Src: /src/libqb/examples/simplelog.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 81
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 81
    functionName: show_usage
    functionSourceFile: /src/libqb/examples/simplelog.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void show_usage(const char *name) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_bit_is_set
      Src: /src/libqb/examples/simplelog.c:100,1
    - Dst: qb_bit_is_set
      Src: /src/libqb/examples/simplelog.c:106,1
    - Dst: qb_bit_is_set
      Src: /src/libqb/examples/simplelog.c:102,1
    - Dst: qb_bit_is_set
      Src: /src/libqb/examples/simplelog.c:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - tags
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 111
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 111
    functionName: my_tags_stringify
    functionSourceFile: /src/libqb/examples/simplelog.c
    functionUses: []
    functionsReached:
    - qb_bit_is_set
    linkageType: ''
    returnType: char*
    signature: 'static const char *my_tags_stringify(uint32_t tags) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libqb/examples/simplelog.c:128,1
    - Dst: qb_bit_set
      Src: /src/libqb/examples/simplelog.c:129,1
    - Dst: qb_bit_clear
      Src: /src/libqb/examples/simplelog.c:131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct qb_log_callsite*
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: m_filter
    functionSourceFile: /src/libqb/examples/simplelog.c
    functionUses: []
    functionsReached:
    - qb_bit_clear
    - strcmp
    - qb_bit_set
    linkageType: ''
    returnType: void
    signature: 'static void m_filter(struct qb_log_callsite *cs) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_tags_stringify_fn_set
      Src: /src/libqb/examples/simplelog.c:187,1
    - Dst: qb_log_filter_fn_set
      Src: /src/libqb/examples/simplelog.c:190,1
    - Dst: qb_log_custom_open
      Src: /src/libqb/examples/simplelog.c:194,1
    - Dst: QB_MIN
      Src: /src/libqb/examples/simplelog.c:204,1
    - Dst: qb_log_format_set
      Src: /src/libqb/examples/simplelog.c:191,1
    - Dst: qb_log_filter_ctl2
      Src: /src/libqb/examples/simplelog.c:202,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/examples/simplelog.c:209,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/examples/simplelog.c:217,1
    - Dst: qb_log_ctl
      Src: /src/libqb/examples/simplelog.c:220,1
    - Dst: qb_log_ctl
      Src: /src/libqb/examples/simplelog.c:221,1
    - Dst: exit
      Src: /src/libqb/examples/simplelog.c:180,1
    - Dst: qb_log_ctl
      Src: /src/libqb/examples/simplelog.c:195,1
    - Dst: qb_log_ctl
      Src: /src/libqb/examples/simplelog.c:206,1
    - Dst: qb_log
      Src: /src/libqb/examples/simplelog.c:226,1
    - Dst: qb_log
      Src: /src/libqb/examples/simplelog.c:228,1
    - Dst: qb_log
      Src: /src/libqb/examples/simplelog.c:231,1
    - Dst: func_two
      Src: /src/libqb/examples/simplelog.c:236,1
    - Dst: qb_log_ctl
      Src: /src/libqb/examples/simplelog.c:243,1
    - Dst: qb_log
      Src: /src/libqb/examples/simplelog.c:245,1
    - Dst: qb_log
      Src: /src/libqb/examples/simplelog.c:246,1
    - Dst: getopt
      Src: /src/libqb/examples/simplelog.c:147,1
    - Dst: exit
      Src: /src/libqb/examples/simplelog.c:173,1
    - Dst: show_usage
      Src: /src/libqb/examples/simplelog.c:172,1
    - Dst: qb_log_init
      Src: /src/libqb/examples/simplelog.c:185,1
    - Dst: qb_log_ctl
      Src: /src/libqb/examples/simplelog.c:186,1
    - Dst: qb_log_filter_ctl2
      Src: /src/libqb/examples/simplelog.c:197,1
    - Dst: qb_log_file_open
      Src: /src/libqb/examples/simplelog.c:216,1
    - Dst: qb_log_format_set
      Src: /src/libqb/examples/simplelog.c:219,1
    - Dst: func_one
      Src: /src/libqb/examples/simplelog.c:235,1
    - Dst: qb_log_fini
      Src: /src/libqb/examples/simplelog.c:253,1
    - Dst: qb_log_blackbox_print_from_file
      Src: /src/libqb/examples/simplelog.c:179,1
    - Dst: signal
      Src: /src/libqb/examples/simplelog.c:183,1
    - Dst: qb_log_format_set
      Src: /src/libqb/examples/simplelog.c:196,1
    - Dst: qb_log_ctl
      Src: /src/libqb/examples/simplelog.c:192,1
    - Dst: qb_log_format_set
      Src: /src/libqb/examples/simplelog.c:205,1
    - Dst: qb_log_ctl
      Src: /src/libqb/examples/simplelog.c:211,1
    - Dst: qb_log_ctl
      Src: /src/libqb/examples/simplelog.c:212,1
    - Dst: qb_log_ctl
      Src: /src/libqb/examples/simplelog.c:213,1
    - Dst: qb_log_thread_start
      Src: /src/libqb/examples/simplelog.c:224,1
    - Dst: qb_log
      Src: /src/libqb/examples/simplelog.c:227,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 256
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 256
    functionName: main
    functionSourceFile: /src/libqb/examples/simplelog.c
    functionUses: []
    functionsReached:
    - getopt
    - qb_log_filter_fn_set
    - qb_log_fini
    - qb_log_filter_ctl2
    - qb_log_ctl
    - qb_log_init
    - qb_log_custom_open
    - signal
    - func_one
    - qb_log_filter_ctl
    - exit
    - qb_log_tags_stringify_fn_set
    - func_two
    - qb_log
    - qb_log_format_set
    - qb_log_file_open
    - qb_log_thread_start
    - qb_log_blackbox_print_from_file
    - show_usage
    - QB_MIN
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t main(int32_t argc, char *argv[]) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/examples/ipcserver.c:120,1
    - Dst: snprintf
      Src: /src/libqb/examples/ipcserver.c:130,1
    - Dst: strcmp
      Src: /src/libqb/examples/ipcserver.c:123,1
    - Dst: strcmp
      Src: /src/libqb/examples/ipcserver.c:137,1
    - Dst: exit
      Src: /src/libqb/examples/ipcserver.c:124,1
    - Dst: qb_ipcs_event_sendv
      Src: /src/libqb/examples/ipcserver.c:140,1
    - Dst: qb_ipcs_response_sendv
      Src: /src/libqb/examples/ipcserver.c:142,1
    - Dst: qb_perror
      Src: /src/libqb/examples/ipcserver.c:146,1
    - Dst: qb_log
      Src: /src/libqb/examples/ipcserver.c:150,1
    - Dst: qb_ipcs_event_sendv
      Src: /src/libqb/examples/ipcserver.c:152,1
    - Dst: qb_log
      Src: /src/libqb/examples/ipcserver.c:153,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 3
    argNames:
    - c
    - data
    - size
    argTypes:
    - qb_ipcs_connection_t*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 157
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 157
    functionName: s1_msg_process_fn
    functionSourceFile: /src/libqb/examples/ipcserver.c
    functionUses: []
    functionsReached:
    - qb_perror
    - qb_log
    - strcmp
    - exit
    - qb_ipcs_response_sendv
    - qb_ipcs_event_sendv
    - snprintf
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t s1_msg_process_fn(qb_ipcs_connection_t * c, void *data,
      size_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_stats_get
      Src: /src/libqb/examples/ipcserver.c:80,1
    - Dst: qb_log
      Src: /src/libqb/examples/ipcserver.c:82,1
    - Dst: qb_log
      Src: /src/libqb/examples/ipcserver.c:87,1
    - Dst: qb_log
      Src: /src/libqb/examples/ipcserver.c:88,1
    - Dst: qb_ipcs_connection_stats_get
      Src: /src/libqb/examples/ipcserver.c:81,1
    - Dst: qb_log
      Src: /src/libqb/examples/ipcserver.c:89,1
    - Dst: qb_log
      Src: /src/libqb/examples/ipcserver.c:90,1
    - Dst: qb_log
      Src: /src/libqb/examples/ipcserver.c:91,1
    - Dst: qb_log
      Src: /src/libqb/examples/ipcserver.c:92,1
    - Dst: qb_log
      Src: /src/libqb/examples/ipcserver.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 95
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 95
    functionName: s1_connection_closed_fn
    functionSourceFile: /src/libqb/examples/ipcserver.c
    functionUses: []
    functionsReached:
    - qb_ipcs_stats_get
    - qb_log
    - qb_ipcs_connection_stats_get
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t s1_connection_closed_fn(qb_ipcs_connection_t * c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_ipcs_stats_get
      Src: /src/libqb/examples/ipcserver.c:63,1
    - Dst: qb_log
      Src: /src/libqb/examples/ipcserver.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: s1_connection_created_fn
    functionSourceFile: /src/libqb/examples/ipcserver.c
    functionUses: []
    functionsReached:
    - qb_ipcs_stats_get
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void s1_connection_created_fn(qb_ipcs_connection_t * c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libqb/examples/ipcserver.c:170,1
    - Dst: printf
      Src: /src/libqb/examples/ipcserver.c:173,1
    - Dst: printf
      Src: /src/libqb/examples/ipcserver.c:172,1
    - Dst: printf
      Src: /src/libqb/examples/ipcserver.c:174,1
    - Dst: printf
      Src: /src/libqb/examples/ipcserver.c:171,1
    - Dst: printf
      Src: /src/libqb/examples/ipcserver.c:175,1
    - Dst: printf
      Src: /src/libqb/examples/ipcserver.c:176,1
    - Dst: printf
      Src: /src/libqb/examples/ipcserver.c:177,1
    - Dst: printf
      Src: /src/libqb/examples/ipcserver.c:178,1
    - Dst: printf
      Src: /src/libqb/examples/ipcserver.c:179,1
    - Dst: printf
      Src: /src/libqb/examples/ipcserver.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 181
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 181
    functionName: show_usage
    functionSourceFile: /src/libqb/examples/ipcserver.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void show_usage(const char *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/examples/ipcserver.c:210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - gpointer
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: gio_poll_destroy
    functionSourceFile: /src/libqb/examples/ipcserver.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void gio_poll_destroy(gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: my_g_dispatch_update
      Src: /src/libqb/examples/ipcserver.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - p
    - fd
    - evts
    - data
    - fn
    argTypes:
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_ipcs_dispatch_fn_t
    constantsTouched: []
    func_position:
      end: 262
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 262
    functionName: my_g_dispatch_add
    functionSourceFile: /src/libqb/examples/ipcserver.c
    functionUses: []
    functionsReached:
    - my_g_dispatch_update
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t my_g_dispatch_add(enum qb_loop_priority p, int32_t
      fd, int32_t evts,\t\t void *data, qb_ipcs_dispatch_fn_t fn) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_job_add
      Src: /src/libqb/examples/ipcserver.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - p
    - data
    - fn
    argTypes:
    - enum qb_loop_priority
    - void*
    - qb_loop_job_dispatch_fn
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: my_job_add
    functionSourceFile: /src/libqb/examples/ipcserver.c
    functionUses: []
    functionsReached:
    - qb_loop_job_add
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t my_job_add(enum qb_loop_priority p, void *data, qb_loop_job_dispatch_fn
      fn) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_poll_mod
      Src: /src/libqb/examples/ipcserver.c:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - p
    - fd
    - evts
    - data
    - fn
    argTypes:
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_ipcs_dispatch_fn_t
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: my_dispatch_mod
    functionSourceFile: /src/libqb/examples/ipcserver.c
    functionUses: []
    functionsReached:
    - qb_loop_poll_mod
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t my_dispatch_mod(enum qb_loop_priority p, int32_t fd,
      int32_t evts,\t\tvoid *data, qb_ipcs_dispatch_fn_t fn) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/examples/ipcserver.c:48,1
    - Dst: qb_log
      Src: /src/libqb/examples/ipcserver.c:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - c
    - uid
    - gid
    argTypes:
    - qb_ipcs_connection_t*
    - uid_t
    - gid_t
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: s1_connection_accept_fn
    functionSourceFile: /src/libqb/examples/ipcserver.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t s1_connection_accept_fn(qb_ipcs_connection_t * c, uid_t
      uid, gid_t gid) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/examples/ipcserver.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - qb_ipcs_connection_t*
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: s1_connection_destroyed_fn
    functionSourceFile: /src/libqb/examples/ipcserver.c
    functionUses: []
    functionsReached:
    - qb_log
    linkageType: ''
    returnType: void
    signature: 'static void s1_connection_destroyed_fn(qb_ipcs_connection_t * c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_log
      Src: /src/libqb/examples/ipcserver.c:162,1
    - Dst: qb_ipcs_destroy
      Src: /src/libqb/examples/ipcserver.c:163,1
    - Dst: exit
      Src: /src/libqb/examples/ipcserver.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: sigusr1_handler
    functionSourceFile: /src/libqb/examples/ipcserver.c
    functionUses: []
    functionsReached:
    - qb_log
    - qb_ipcs_destroy
    - exit
    linkageType: ''
    returnType: void
    signature: 'static void sigusr1_handler(int32_t num) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_io_channel_unix_get_fd
      Src: /src/libqb/examples/ipcserver.c:198,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 3
    argNames:
    - gio
    - condition
    - data
    argTypes:
    - GIOChannel*
    - GIOCondition
    - gpointer
    constantsTouched: []
    func_position:
      end: 201
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 201
    functionName: gio_read_socket
    functionSourceFile: /src/libqb/examples/ipcserver.c
    functionUses: []
    functionsReached:
    - g_io_channel_unix_get_fd
    linkageType: ''
    returnType: gboolean
    signature: 'static gboolean gio_read_socket(GIOChannel * gio, GIOCondition condition,
      gpointer data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_index
      Src: /src/libqb/examples/ipcserver.c:224,1
    - Dst: g_io_channel_unix_new
      Src: /src/libqb/examples/ipcserver.c:236,1
    - Dst: g_source_remove
      Src: /src/libqb/examples/ipcserver.c:232,1
    - Dst: g_io_channel_unref
      Src: /src/libqb/examples/ipcserver.c:252,1
    - Dst: g_io_add_watch_full
      Src: /src/libqb/examples/ipcserver.c:248,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 6
    argNames:
    - p
    - fd
    - evts
    - data
    - fn
    - is_new
    argTypes:
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_ipcs_dispatch_fn_t
    - gboolean
    constantsTouched: []
    func_position:
      end: 255
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 255
    functionName: my_g_dispatch_update
    functionSourceFile: /src/libqb/examples/ipcserver.c
    functionUses: []
    functionsReached:
    - g_io_add_watch_full
    - qb_array_index
    - g_io_channel_unix_new
    - g_io_channel_unref
    - g_source_remove
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t my_g_dispatch_update(enum qb_loop_priority p, int32_t
      fd, int32_t evts,\t\t void *data, qb_ipcs_dispatch_fn_t fn, gboolean is_new) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: my_g_dispatch_update
      Src: /src/libqb/examples/ipcserver.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - p
    - fd
    - evts
    - data
    - fn
    argTypes:
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_ipcs_dispatch_fn_t
    constantsTouched: []
    func_position:
      end: 269
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 269
    functionName: my_g_dispatch_mod
    functionSourceFile: /src/libqb/examples/ipcserver.c
    functionUses: []
    functionsReached:
    - my_g_dispatch_update
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t my_g_dispatch_mod(enum qb_loop_priority p, int32_t
      fd, int32_t evts,\t\t void *data, qb_ipcs_dispatch_fn_t fn) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qb_array_index
      Src: /src/libqb/examples/ipcserver.c:275,1
    - Dst: g_source_remove
      Src: /src/libqb/examples/ipcserver.c:276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 280
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 280
    functionName: my_g_dispatch_del
    functionSourceFile: /src/libqb/examples/ipcserver.c
    functionUses: []
    functionsReached:
    - qb_array_index
    - g_source_remove
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t my_g_dispatch_del(int32_t fd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_poll_add
      Src: /src/libqb/examples/ipcserver.c:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - p
    - fd
    - evts
    - data
    - fn
    argTypes:
    - enum qb_loop_priority
    - int32_t
    - int32_t
    - void*
    - qb_ipcs_dispatch_fn_t
    constantsTouched: []
    func_position:
      end: 294
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 294
    functionName: my_dispatch_add
    functionSourceFile: /src/libqb/examples/ipcserver.c
    functionUses: []
    functionsReached:
    - qb_loop_poll_add
    linkageType: ''
    returnType: int32_t
    signature: "static int32_t my_dispatch_add(enum qb_loop_priority p, int32_t fd,
      int32_t evts,\t\tvoid *data, qb_ipcs_dispatch_fn_t fn) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qb_loop_poll_del
      Src: /src/libqb/examples/ipcserver.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: my_dispatch_del
    functionSourceFile: /src/libqb/examples/ipcserver.c
    functionUses: []
    functionsReached:
    - qb_loop_poll_del
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t my_dispatch_del(int32_t fd) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: qb_log_init
      Src: /src/libqb/examples/ipcserver.c:361,1
    - Dst: qb_loop_run
      Src: /src/libqb/examples/ipcserver.c:384,1
    - Dst: qb_ipcs_run
      Src: /src/libqb/examples/ipcserver.c:378,1
    - Dst: qb_perror
      Src: /src/libqb/examples/ipcserver.c:393,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/examples/ipcserver.c:362,1
    - Dst: qb_log_format_set
      Src: /src/libqb/examples/ipcserver.c:364,1
    - Dst: qb_ipcs_create
      Src: /src/libqb/examples/ipcserver.c:367,1
    - Dst: qb_perror
      Src: /src/libqb/examples/ipcserver.c:369,1
    - Dst: exit
      Src: /src/libqb/examples/ipcserver.c:370,1
    - Dst: qb_ipcs_enforce_buffer_size
      Src: /src/libqb/examples/ipcserver.c:373,1
    - Dst: exit
      Src: /src/libqb/examples/ipcserver.c:382,1
    - Dst: qb_array_create_2
      Src: /src/libqb/examples/ipcserver.c:388,1
    - Dst: qb_ipcs_poll_handlers_set
      Src: /src/libqb/examples/ipcserver.c:389,1
    - Dst: qb_log
      Src: /src/libqb/examples/ipcserver.c:398,1
    - Dst: qb_log_fini
      Src: /src/libqb/examples/ipcserver.c:402,1
    - Dst: exit
      Src: /src/libqb/examples/ipcserver.c:355,1
    - Dst: show_usage
      Src: /src/libqb/examples/ipcserver.c:354,1
    - Dst: qb_loop_create
      Src: /src/libqb/examples/ipcserver.c:376,1
    - Dst: qb_perror
      Src: /src/libqb/examples/ipcserver.c:381,1
    - Dst: qb_ipcs_run
      Src: /src/libqb/examples/ipcserver.c:390,1
    - Dst: g_main_loop_run
      Src: /src/libqb/examples/ipcserver.c:396,1
    - Dst: getopt
      Src: /src/libqb/examples/ipcserver.c:338,1
    - Dst: signal
      Src: /src/libqb/examples/ipcserver.c:359,1
    - Dst: qb_log_ctl
      Src: /src/libqb/examples/ipcserver.c:365,1
    - Dst: qb_ipcs_poll_handlers_set
      Src: /src/libqb/examples/ipcserver.c:377,1
    - Dst: g_main_loop_new
      Src: /src/libqb/examples/ipcserver.c:387,1
    - Dst: exit
      Src: /src/libqb/examples/ipcserver.c:394,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 404
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 404
    functionName: main
    functionSourceFile: /src/libqb/examples/ipcserver.c
    functionUses: []
    functionsReached:
    - qb_loop_run
    - getopt
    - qb_log_fini
    - qb_log_ctl
    - qb_log_init
    - qb_ipcs_create
    - signal
    - qb_log_filter_ctl
    - exit
    - qb_array_create_2
    - qb_perror
    - qb_ipcs_enforce_buffer_size
    - qb_log
    - qb_log_format_set
    - qb_ipcs_run
    - qb_loop_create
    - g_main_loop_new
    - qb_ipcs_poll_handlers_set
    - show_usage
    - g_main_loop_run
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t main(int32_t argc, char *argv[]) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libqb/examples/mapnotify.c:32,1
    - Dst: fprintf
      Src: /src/libqb/examples/mapnotify.c:39,1
    - Dst: fprintf
      Src: /src/libqb/examples/mapnotify.c:36,1
    - Dst: fprintf
      Src: /src/libqb/examples/mapnotify.c:42,1
    - Dst: free
      Src: /src/libqb/examples/mapnotify.c:34,1
    - Dst: fprintf
      Src: /src/libqb/examples/mapnotify.c:44,1
    - Dst: fprintf
      Src: /src/libqb/examples/mapnotify.c:47,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 5
    argNames:
    - event
    - key
    - old_value
    - value
    - user_data
    argTypes:
    - uint32_t
    - char*
    - void*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 51
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 51
    functionName: notify_fn
    functionSourceFile: /src/libqb/examples/mapnotify.c
    functionUses: []
    functionsReached:
    - free
    - fprintf
    linkageType: ''
    returnType: void
    signature: "static void notify_fn(uint32_t event, char *key, void *old_value,
      void *value,\t void *user_data) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libqb/examples/mapnotify.c:182,1
    - Dst: malloc
      Src: /src/libqb/examples/mapnotify.c:185,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:192,1
    - Dst: qb_map_notify_add
      Src: /src/libqb/examples/mapnotify.c:194,1
    - Dst: qb_map_iter_next
      Src: /src/libqb/examples/mapnotify.c:200,1
    - Dst: qb_map_rm
      Src: /src/libqb/examples/mapnotify.c:202,1
    - Dst: qb_map_notify_del_2
      Src: /src/libqb/examples/mapnotify.c:205,1
    - Dst: qb_trie_dump
      Src: /src/libqb/examples/mapnotify.c:174,1
    - Dst: assert
      Src: /src/libqb/examples/mapnotify.c:186,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:191,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:197,1
    - Dst: qb_map_iter_free
      Src: /src/libqb/examples/mapnotify.c:204,1
    - Dst: qb_trie_create
      Src: /src/libqb/examples/mapnotify.c:172,1
    - Dst: add_cs_keys
      Src: /src/libqb/examples/mapnotify.c:175,1
    - Dst: qb_map_pref_iter_create
      Src: /src/libqb/examples/mapnotify.c:199,1
    - Dst: qb_trie_dump
      Src: /src/libqb/examples/mapnotify.c:195,1
    - Dst: fprintf
      Src: /src/libqb/examples/mapnotify.c:201,1
    - Dst: qb_map_notify_add
      Src: /src/libqb/examples/mapnotify.c:189,1
    - Dst: qb_map_destroy
      Src: /src/libqb/examples/mapnotify.c:206,1
    - Dst: assert
      Src: /src/libqb/examples/mapnotify.c:173,1
    - Dst: malloc
      Src: /src/libqb/examples/mapnotify.c:177,1
    - Dst: assert
      Src: /src/libqb/examples/mapnotify.c:178,1
    - Dst: malloc
      Src: /src/libqb/examples/mapnotify.c:181,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 209
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 209
    functionName: main
    functionSourceFile: /src/libqb/examples/mapnotify.c
    functionUses: []
    functionsReached:
    - malloc
    - qb_map_put
    - qb_trie_dump
    - assert
    - qb_map_notify_add
    - qb_map_destroy
    - qb_map_iter_next
    - qb_map_iter_free
    - qb_map_pref_iter_create
    - add_cs_keys
    - qb_map_notify_del_2
    - qb_map_rm
    - fprintf
    - qb_trie_create
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:63,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:73,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:93,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:83,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:103,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:113,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:116,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:123,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:126,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:133,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:136,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:146,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:60,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:70,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:80,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:90,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:100,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:110,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:120,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:130,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:140,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:150,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:107,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:117,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:127,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:137,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:147,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:59,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:69,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:79,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:89,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:99,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:109,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:119,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:129,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:139,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:143,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:153,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:78,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:88,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:94,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:58,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:64,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:68,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:74,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:84,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:98,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:104,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:114,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:124,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:134,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:144,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:61,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:71,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:81,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:91,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:101,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:111,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:121,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:131,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:141,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:151,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:107,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:117,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:127,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:137,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:147,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:115,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:125,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:135,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:116,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:126,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:136,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:145,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:146,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:155,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:76,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:86,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:60,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:66,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:70,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:80,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:90,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:96,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:100,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:106,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:85,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:59,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:65,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:69,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:75,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:79,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:89,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:95,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:99,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:105,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:110,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:120,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:130,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:140,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:150,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:64,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:74,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:84,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:94,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:104,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:114,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:124,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:134,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:144,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:154,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:101,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:111,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:121,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:131,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:141,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:151,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:56,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:57,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:61,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:67,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:81,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:77,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:87,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:71,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:91,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:97,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:76,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:86,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:62,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:66,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:72,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:82,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:92,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:96,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:102,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:106,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:108,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:118,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:128,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:138,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:65,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:75,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:85,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:95,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:105,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:115,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:125,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:135,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:145,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:155,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:148,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:109,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:119,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:129,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:139,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:149,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:149,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:154,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:57,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:56,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:63,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:67,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:77,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:87,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:73,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:83,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:93,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:97,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:62,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:72,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:82,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:92,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:102,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:112,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:122,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:132,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:142,1
    - Dst: strdup
      Src: /src/libqb/examples/mapnotify.c:152,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:103,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:113,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:123,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:133,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:143,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:153,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:112,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:122,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:132,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:142,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:152,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:88,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:58,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:68,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:78,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:98,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:108,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:118,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:128,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:138,1
    - Dst: qb_map_put
      Src: /src/libqb/examples/mapnotify.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 201
    argCount: 1
    argNames:
    - m
    argTypes:
    - qb_map_t*
    constantsTouched: []
    func_position:
      end: 156
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 156
    functionName: add_cs_keys
    functionSourceFile: /src/libqb/examples/mapnotify.c
    functionUses: []
    functionsReached:
    - strdup
    - qb_map_put
    linkageType: ''
    returnType: void
    signature: 'static void add_cs_keys(qb_map_t * m) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/libqb/examples/ipcclient.c:127,1
    - Dst: exit
      Src: /src/libqb/examples/ipcclient.c:140,1
    - Dst: qb_ipcc_event_recv
      Src: /src/libqb/examples/ipcclient.c:149,1
    - Dst: perror
      Src: /src/libqb/examples/ipcclient.c:156,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:151,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:167,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:171,1
    - Dst: strcasecmp
      Src: /src/libqb/examples/ipcclient.c:132,1
    - Dst: qb_ipcc_send
      Src: /src/libqb/examples/ipcclient.c:137,1
    - Dst: perror
      Src: /src/libqb/examples/ipcclient.c:139,1
    - Dst: strcasecmp
      Src: /src/libqb/examples/ipcclient.c:144,1
    - Dst: exit
      Src: /src/libqb/examples/ipcclient.c:157,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:161,1
    - Dst: qb_ipcc_event_recv
      Src: /src/libqb/examples/ipcclient.c:163,1
    - Dst: qb_ipcc_recv
      Src: /src/libqb/examples/ipcclient.c:152,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:123,1
    - Dst: fgets
      Src: /src/libqb/examples/ipcclient.c:124,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:148,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:154,1
    - Dst: perror
      Src: /src/libqb/examples/ipcclient.c:165,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 1
    argNames:
    - conn
    argTypes:
    - qb_ipcc_connection_t*
    constantsTouched: []
    func_position:
      end: 174
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 174
    functionName: do_echo
    functionSourceFile: /src/libqb/examples/ipcclient.c
    functionUses: []
    functionsReached:
    - strcasecmp
    - qb_ipcc_recv
    - fgets
    - strrchr
    - exit
    - qb_ipcc_event_recv
    - printf
    - perror
    - qb_ipcc_send
    linkageType: ''
    returnType: void
    signature: 'static void do_echo(qb_ipcc_connection_t *conn) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alarm
      Src: /src/libqb/examples/ipcclient.c:69,1
    - Dst: qb_ipcc_sendv
      Src: /src/libqb/examples/ipcclient.c:73,1
    - Dst: perror
      Src: /src/libqb/examples/ipcclient.c:79,1
    - Dst: qb_util_stopwatch_start
      Src: /src/libqb/examples/ipcclient.c:71,1
    - Dst: qb_util_stopwatch_stop
      Src: /src/libqb/examples/ipcclient.c:81,1
    - Dst: qb_util_stopwatch_sec_elapsed_get
      Src: /src/libqb/examples/ipcclient.c:82,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:84,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:85,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:86,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:87,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:89,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - conn
    - write_size
    argTypes:
    - qb_ipcc_connection_t*
    - int
    constantsTouched: []
    func_position:
      end: 91
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 91
    functionName: _benchmark
    functionSourceFile: /src/libqb/examples/ipcclient.c
    functionUses: []
    functionsReached:
    - alarm
    - qb_util_stopwatch_start
    - qb_util_stopwatch_stop
    - qb_util_stopwatch_sec_elapsed_get
    - qb_ipcc_sendv
    - printf
    - perror
    linkageType: ''
    returnType: void
    signature: 'static void _benchmark(qb_ipcc_connection_t *conn, int write_size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: sigalrm_handler
    functionSourceFile: /src/libqb/examples/ipcclient.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void sigalrm_handler (int num) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:179,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:183,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:182,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:180,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:181,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:184,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:185,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:186,1
    - Dst: printf
      Src: /src/libqb/examples/ipcclient.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 188
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 188
    functionName: show_usage
    functionSourceFile: /src/libqb/examples/ipcclient.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void show_usage(const char *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/libqb/examples/ipcclient.c:100,1
    - Dst: qb_util_stopwatch_create
      Src: /src/libqb/examples/ipcclient.c:101,1
    - Dst: signal
      Src: /src/libqb/examples/ipcclient.c:105,1
    - Dst: _benchmark
      Src: /src/libqb/examples/ipcclient.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - conn
    argTypes:
    - qb_ipcc_connection_t*
    constantsTouched: []
    func_position:
      end: 111
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 111
    functionName: do_throughput_benchmark
    functionSourceFile: /src/libqb/examples/ipcclient.c
    functionUses: []
    functionsReached:
    - signal
    - qb_util_stopwatch_create
    - _benchmark
    linkageType: ''
    returnType: void
    signature: 'static void do_throughput_benchmark(qb_ipcc_connection_t *conn) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/libqb/examples/ipcclient.c:197,1
    - Dst: qb_log_init
      Src: /src/libqb/examples/ipcclient.c:214,1
    - Dst: exit
      Src: /src/libqb/examples/ipcclient.c:208,1
    - Dst: qb_log_ctl
      Src: /src/libqb/examples/ipcclient.c:215,1
    - Dst: show_usage
      Src: /src/libqb/examples/ipcclient.c:207,1
    - Dst: qb_log_filter_ctl
      Src: /src/libqb/examples/ipcclient.c:216,1
    - Dst: qb_log_format_set
      Src: /src/libqb/examples/ipcclient.c:218,1
    - Dst: qb_log_ctl
      Src: /src/libqb/examples/ipcclient.c:219,1
    - Dst: qb_ipcc_connect
      Src: /src/libqb/examples/ipcclient.c:224,1
    - Dst: perror
      Src: /src/libqb/examples/ipcclient.c:226,1
    - Dst: do_throughput_benchmark
      Src: /src/libqb/examples/ipcclient.c:232,1
    - Dst: qb_ipcc_disconnect
      Src: /src/libqb/examples/ipcclient.c:237,1
    - Dst: qb_log_fini
      Src: /src/libqb/examples/ipcclient.c:239,1
    - Dst: exit
      Src: /src/libqb/examples/ipcclient.c:227,1
    - Dst: qb_ipcc_get_buffer_size
      Src: /src/libqb/examples/ipcclient.c:229,1
    - Dst: free
      Src: /src/libqb/examples/ipcclient.c:238,1
    - Dst: calloc
      Src: /src/libqb/examples/ipcclient.c:229,1
    - Dst: do_echo
      Src: /src/libqb/examples/ipcclient.c:234,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 241
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 241
    functionName: main
    functionSourceFile: /src/libqb/examples/ipcclient.c
    functionUses: []
    functionsReached:
    - getopt
    - qb_ipcc_connect
    - qb_ipcc_disconnect
    - show_usage
    - calloc
    - qb_log_filter_ctl
    - exit
    - qb_ipcc_get_buffer_size
    - qb_log_format_set
    - qb_log_fini
    - do_throughput_benchmark
    - free
    - qb_log_init
    - perror
    - qb_log_ctl
    - do_echo
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char *argv[]) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: gethostbyname
      Src: /src/libqb/examples/tcpclient.c:44,1
    - Dst: exit
      Src: /src/libqb/examples/tcpclient.c:60,1
    - Dst: strlen
      Src: /src/libqb/examples/tcpclient.c:72,1
    - Dst: printf
      Src: /src/libqb/examples/tcpclient.c:75,1
    - Dst: fgets
      Src: /src/libqb/examples/tcpclient.c:65,1
    - Dst: exit
      Src: /src/libqb/examples/tcpclient.c:48,1
    - Dst: memcpy
      Src: /src/libqb/examples/tcpclient.c:53,1
    - Dst: recv
      Src: /src/libqb/examples/tcpclient.c:80,1
    - Dst: printf
      Src: /src/libqb/examples/tcpclient.c:64,1
    - Dst: printf
      Src: /src/libqb/examples/tcpclient.c:83,1
    - Dst: htons
      Src: /src/libqb/examples/tcpclient.c:52,1
    - Dst: socket
      Src: /src/libqb/examples/tcpclient.c:46,1
    - Dst: bzero
      Src: /src/libqb/examples/tcpclient.c:55,1
    - Dst: perror
      Src: /src/libqb/examples/tcpclient.c:59,1
    - Dst: strrchr
      Src: /src/libqb/examples/tcpclient.c:68,1
    - Dst: strcasecmp
      Src: /src/libqb/examples/tcpclient.c:73,1
    - Dst: perror
      Src: /src/libqb/examples/tcpclient.c:85,1
    - Dst: perror
      Src: /src/libqb/examples/tcpclient.c:47,1
    - Dst: connect
      Src: /src/libqb/examples/tcpclient.c:57,1
    - Dst: close
      Src: /src/libqb/examples/tcpclient.c:74,1
    - Dst: send
      Src: /src/libqb/examples/tcpclient.c:72,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 90
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 90
    functionName: main
    functionSourceFile: /src/libqb/examples/tcpclient.c
    functionUses: []
    functionsReached:
    - strcasecmp
    - socket
    - memcpy
    - fgets
    - htons
    - connect
    - gethostbyname
    - strrchr
    - send
    - exit
    - recv
    - strlen
    - bzero
    - printf
    - perror
    - close
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char *argv[]) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxslt/tests/runtest.c:177,1
    - Dst: va_end
      Src: /src/libxslt/tests/runtest.c:181,1
    - Dst: vsnprintf
      Src: /src/libxslt/tests/runtest.c:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 190
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 190
    functionName: testErrorHandler
    functionSourceFile: /src/libxslt/tests/runtest.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: 'static void XMLCDECL testErrorHandler(void *ctx ATTRIBUTE_UNUSED,
      const char *msg, ...) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chanl
      Src: /src/libxslt/tests/runtest.c:235,1
    - Dst: chanl
      Src: /src/libxslt/tests/runtest.c:247,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 52
    argCount: 3
    argNames:
    - input
    - chanl
    - data
    argTypes:
    - xmlParserInputPtr
    - xmlGenericErrorFunc
    - void*
    constantsTouched: []
    func_position:
      end: 248
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 248
    functionName: xmlParserPrintFileContextInternal
    functionSourceFile: /src/libxslt/tests/runtest.c
    functionUses: []
    functionsReached:
    - chanl
    linkageType: ''
    returnType: void
    signature: "static void xmlParserPrintFileContextInternal(xmlParserInputPtr input
      ,\t\txmlGenericErrorFunc chanl, void *data ) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/libxslt/tests/runtest.c:468,1
    - Dst: fprintf
      Src: /src/libxslt/tests/runtest.c:474,1
    - Dst: strlen
      Src: /src/libxslt/tests/runtest.c:469,1
    - Dst: strdup
      Src: /src/libxslt/tests/runtest.c:472,1
    - Dst: snprintf
      Src: /src/libxslt/tests/runtest.c:470,1
    - Dst: fatalError
      Src: /src/libxslt/tests/runtest.c:475,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - filename
    - suffix
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 479
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 479
    functionName: changeSuffix
    functionSourceFile: /src/libxslt/tests/runtest.c
    functionUses: []
    functionsReached:
    - fatalError
    - strrchr
    - strdup
    - strlen
    - snprintf
    - fprintf
    linkageType: ''
    returnType: char*
    signature: 'static char *changeSuffix(const char *filename, const char *suffix) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/libxslt/tests/runtest.c:485,1
    - Dst: S_ISREG
      Src: /src/libxslt/tests/runtest.c:492,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 497
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 497
    functionName: checkTestFile
    functionSourceFile: /src/libxslt/tests/runtest.c
    functionUses: []
    functionsReached:
    - stat
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: 'static int checkTestFile(const char *filename) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/tests/runtest.c:599,1
    - Dst: xmlReadFile
      Src: /src/libxslt/tests/runtest.c:615,1
    - Dst: xsltLoadStylesheetPI
      Src: /src/libxslt/tests/runtest.c:616,1
    - Dst: xmlReadFile
      Src: /src/libxslt/tests/runtest.c:634,1
    - Dst: changeSuffix
      Src: /src/libxslt/tests/runtest.c:625,1
    - Dst: strdup
      Src: /src/libxslt/tests/runtest.c:620,1
    - Dst: xsltApplyStylesheet
      Src: /src/libxslt/tests/runtest.c:648,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:651,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/tests/runtest.c:654,1
    - Dst: xmlFree
      Src: /src/libxslt/tests/runtest.c:668,1
    - Dst: free
      Src: /src/libxslt/tests/runtest.c:667,1
    - Dst: xsltStrxfrm
      Src: /src/libxslt/tests/runtest.c:596,1
    - Dst: xmlStrcmp
      Src: /src/libxslt/tests/runtest.c:598,1
    - Dst: xsltNewLocale
      Src: /src/libxslt/tests/runtest.c:585,1
    - Dst: fprintf
      Src: /src/libxslt/tests/runtest.c:604,1
    - Dst: strcmp
      Src: /src/libxslt/tests/runtest.c:611,1
    - Dst: xsltParseStylesheetDoc
      Src: /src/libxslt/tests/runtest.c:630,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/tests/runtest.c:632,1
    - Dst: checkTestFile
      Src: /src/libxslt/tests/runtest.c:626,1
    - Dst: changeSuffix
      Src: /src/libxslt/tests/runtest.c:660,1
    - Dst: fprintf
      Src: /src/libxslt/tests/runtest.c:663,1
    - Dst: fprintf
      Src: /src/libxslt/tests/runtest.c:673,1
    - Dst: xsltFreeLocale
      Src: /src/libxslt/tests/runtest.c:601,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/tests/runtest.c:627,1
    - Dst: free
      Src: /src/libxslt/tests/runtest.c:680,1
    - Dst: strcmp
      Src: /src/libxslt/tests/runtest.c:584,1
    - Dst: xsltStrxfrm
      Src: /src/libxslt/tests/runtest.c:597,1
    - Dst: xmlFree
      Src: /src/libxslt/tests/runtest.c:600,1
    - Dst: xsltSaveResultToString
      Src: /src/libxslt/tests/runtest.c:653,1
    - Dst: xsltFreeStylesheet
      Src: /src/libxslt/tests/runtest.c:656,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/tests/runtest.c:658,1
    - Dst: compareFileMem
      Src: /src/libxslt/tests/runtest.c:661,1
    - Dst: changeSuffix
      Src: /src/libxslt/tests/runtest.c:670,1
    - Dst: compareFileMem
      Src: /src/libxslt/tests/runtest.c:671,1
    - Dst: free
      Src: /src/libxslt/tests/runtest.c:677,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 83
    argCount: 2
    argNames:
    - filename
    - options
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 682
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 682
    functionName: xsltTest
    functionSourceFile: /src/libxslt/tests/runtest.c
    functionUses: []
    functionsReached:
    - checkTestFile
    - xsltFreeLocale
    - xsltSaveResultToString
    - free
    - xmlFreeDoc
    - strdup
    - testErrorHandler
    - xmlReadFile
    - xsltApplyStylesheet
    - xsltNewLocale
    - xmlFree
    - strcmp
    - changeSuffix
    - xmlStrcmp
    - xsltLoadStylesheetPI
    - xsltParseStylesheetDoc
    - xsltFreeStylesheet
    - compareFileMem
    - xsltStrxfrm
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int xsltTest(const char *filename, int options) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getcwd
      Src: /src/libxslt/tests/runtest.c:762,1
    - Dst: fprintf
      Src: /src/libxslt/tests/runtest.c:768,1
    - Dst: glob
      Src: /src/libxslt/tests/runtest.c:778,1
    - Dst: fprintf
      Src: /src/libxslt/tests/runtest.c:763,1
    - Dst: chdir
      Src: /src/libxslt/tests/runtest.c:767,1
    - Dst: xmlResetLastError
      Src: /src/libxslt/tests/runtest.c:784,1
    - Dst: fprintf
      Src: /src/libxslt/tests/runtest.c:786,1
    - Dst: globfree
      Src: /src/libxslt/tests/runtest.c:793,1
    - Dst: fprintf
      Src: /src/libxslt/tests/runtest.c:806,1
    - Dst: chdir
      Src: /src/libxslt/tests/runtest.c:805,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 1
    argNames:
    - tst
    argTypes:
    - testDescPtr
    constantsTouched: []
    func_position:
      end: 812
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 812
    functionName: launchTests
    functionSourceFile: /src/libxslt/tests/runtest.c
    functionUses: []
    functionsReached:
    - globfree
    - xmlResetLastError
    - glob
    - getcwd
    - fprintf
    - chdir
    linkageType: ''
    returnType: int
    signature: 'static int launchTests(testDescPtr tst) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/libxslt/tests/runtest.c:81,1
    - Dst: malloc
      Src: /src/libxslt/tests/runtest.c:100,1
    - Dst: FindFirstFileA
      Src: /src/libxslt/tests/runtest.c:96,1
    - Dst: memset
      Src: /src/libxslt/tests/runtest.c:94,1
    - Dst: strlen
      Src: /src/libxslt/tests/runtest.c:82,1
    - Dst: FindClose
      Src: /src/libxslt/tests/runtest.c:102,1
    - Dst: strncpy
      Src: /src/libxslt/tests/runtest.c:105,1
    - Dst: strdup
      Src: /src/libxslt/tests/runtest.c:106,1
    - Dst: FindNextFileA
      Src: /src/libxslt/tests/runtest.c:110,1
    - Dst: realloc
      Src: /src/libxslt/tests/runtest.c:114,1
    - Dst: strdup
      Src: /src/libxslt/tests/runtest.c:121,1
    - Dst: strncpy
      Src: /src/libxslt/tests/runtest.c:120,1
    - Dst: FindClose
      Src: /src/libxslt/tests/runtest.c:129,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 4
    argNames:
    - pattern
    - flags
    - errfunc
    - pglob
    argTypes:
    - char*
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - glob_t*
    constantsTouched: []
    func_position:
      end: 131
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 131
    functionName: glob
    functionSourceFile: /src/libxslt/tests/runtest.c
    functionUses: []
    functionsReached:
    - FindNextFileA
    - realloc
    - malloc
    - memset
    - FindFirstFileA
    - strncpy
    - FindClose
    - strdup
    - strlen
    linkageType: ''
    returnType: int
    signature: 'static int glob(const char *pattern, ATTRIBUTE_UNUSED int flags, ATTRIBUTE_UNUSED
      int errfunc(const char *epath, int eerrno), glob_t *pglob) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libxslt/tests/runtest.c:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - pglob
    argTypes:
    - glob_t*
    constantsTouched: []
    func_position:
      end: 144
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 144
    functionName: globfree
    functionSourceFile: /src/libxslt/tests/runtest.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void globfree(glob_t *pglob) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxslt/tests/runtest.c:159,1
    - Dst: exit
      Src: /src/libxslt/tests/runtest.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: fatalError
    functionSourceFile: /src/libxslt/tests/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: int
    signature: 'static int fatalError(void) '
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:299,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:305,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:323,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:335,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:347,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:359,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:365,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:380,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:383,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:398,1
    - Dst: xmlParserPrintFileContextInternal
      Src: /src/libxslt/tests/runtest.c:408,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:428,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:400,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:307,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:326,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:338,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:350,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:368,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:386,1
    - Dst: xmlParserPrintFileContextInternal
      Src: /src/libxslt/tests/runtest.c:414,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:423,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:301,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:316,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:319,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:329,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:353,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:341,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:371,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:389,1
    - Dst: xmlStrlen
      Src: /src/libxslt/tests/runtest.c:396,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:402,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:411,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:310,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:332,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:344,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:356,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:362,1
    - Dst: testErrorHandler
      Src: /src/libxslt/tests/runtest.c:413,1
    - Dst: xmlStrlen
      Src: /src/libxslt/tests/runtest.c:419,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 124
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - err
    argTypes:
    - void*
    - xmlError*
    constantsTouched: []
    func_position:
      end: 430
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 430
    functionName: testStructuredErrorHandler
    functionSourceFile: /src/libxslt/tests/runtest.c
    functionUses: []
    functionsReached:
    - xmlStrlen
    - testErrorHandler
    - xmlParserPrintFileContextInternal
    linkageType: ''
    returnType: void
    signature: 'static void testStructuredErrorHandler(void *ctx ATTRIBUTE_UNUSED,
      const xmlError *err) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/libxslt/tests/runtest.c:508,1
    - Dst: open
      Src: /src/libxslt/tests/runtest.c:511,1
    - Dst: close
      Src: /src/libxslt/tests/runtest.c:517,1
    - Dst: write
      Src: /src/libxslt/tests/runtest.c:516,1
    - Dst: fprintf
      Src: /src/libxslt/tests/runtest.c:513,1
    - Dst: stat
      Src: /src/libxslt/tests/runtest.c:521,1
    - Dst: fprintf
      Src: /src/libxslt/tests/runtest.c:524,1
    - Dst: fprintf
      Src: /src/libxslt/tests/runtest.c:528,1
    - Dst: open
      Src: /src/libxslt/tests/runtest.c:532,1
    - Dst: fprintf
      Src: /src/libxslt/tests/runtest.c:534,1
    - Dst: close
      Src: /src/libxslt/tests/runtest.c:549,1
    - Dst: close
      Src: /src/libxslt/tests/runtest.c:554,1
    - Dst: read
      Src: /src/libxslt/tests/runtest.c:538,1
    - Dst: memcmp
      Src: /src/libxslt/tests/runtest.c:543,1
    - Dst: fprintf
      Src: /src/libxslt/tests/runtest.c:548,1
    - Dst: fprintf
      Src: /src/libxslt/tests/runtest.c:556,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - filename
    - mem
    - size
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 559
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 559
    functionName: compareFileMem
    functionSourceFile: /src/libxslt/tests/runtest.c
    functionUses: []
    functionsReached:
    - stat
    - write
    - open
    - unlink
    - memcmp
    - read
    - fprintf
    - close
    linkageType: ''
    returnType: int
    signature: 'static int compareFileMem(const char *filename, const char *mem, int
      size) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/tests/runtest.c:825,1
    - Dst: launchTests
      Src: /src/libxslt/tests/runtest.c:826,1
    - Dst: printf
      Src: /src/libxslt/tests/runtest.c:833,1
    - Dst: printf
      Src: /src/libxslt/tests/runtest.c:831,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 838
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 838
    functionName: runtest
    functionSourceFile: /src/libxslt/tests/runtest.c
    functionUses: []
    functionsReached:
    - printf
    - launchTests
    linkageType: ''
    returnType: int
    signature: 'static int runtest(int i) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: setvbuf
      Src: /src/libxslt/tests/runtest.c:846,1
    - Dst: strcmp
      Src: /src/libxslt/tests/runtest.c:857,1
    - Dst: setvbuf
      Src: /src/libxslt/tests/runtest.c:847,1
    - Dst: _set_output_format
      Src: /src/libxslt/tests/runtest.c:851,1
    - Dst: initializeLibxml2
      Src: /src/libxslt/tests/runtest.c:854,1
    - Dst: strcmp
      Src: /src/libxslt/tests/runtest.c:859,1
    - Dst: strcmp
      Src: /src/libxslt/tests/runtest.c:861,1
    - Dst: strcmp
      Src: /src/libxslt/tests/runtest.c:863,1
    - Dst: strstr
      Src: /src/libxslt/tests/runtest.c:867,1
    - Dst: runtest
      Src: /src/libxslt/tests/runtest.c:868,1
    - Dst: xmlCleanupParser
      Src: /src/libxslt/tests/runtest.c:888,1
    - Dst: printf
      Src: /src/libxslt/tests/runtest.c:881,1
    - Dst: printf
      Src: /src/libxslt/tests/runtest.c:885,1
    - Dst: runtest
      Src: /src/libxslt/tests/runtest.c:876,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 891
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 891
    functionName: main
    functionSourceFile: /src/libxslt/tests/runtest.c
    functionUses: []
    functionsReached:
    - _set_output_format
    - strcmp
    - initializeLibxml2
    - runtest
    - setvbuf
    - strstr
    - printf
    - xmlCleanupParser
    linkageType: ''
    returnType: int
    signature: 'int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFormatError
      Src: /src/libxslt/tests/runtest.c:436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - err
    argTypes:
    - void*
    - xmlError*
    constantsTouched: []
    func_position:
      end: 437
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 437
    functionName: testStructuredErrorHandler
    functionSourceFile: /src/libxslt/tests/runtest.c
    functionUses: []
    functionsReached:
    - xmlFormatError
    linkageType: ''
    returnType: void
    signature: 'static void testStructuredErrorHandler(void *ctx ATTRIBUTE_UNUSED,
      const xmlError *err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxslt/tests/runtest.c:443,1
    - Dst: xsltSetGenericErrorFunc
      Src: /src/libxslt/tests/runtest.c:446,1
    - Dst: xmlSetExternalEntityLoader
      Src: /src/libxslt/tests/runtest.c:444,1
    - Dst: xmlSetGenericErrorFunc
      Src: /src/libxslt/tests/runtest.c:445,1
    - Dst: xmlSetStructuredErrorFunc
      Src: /src/libxslt/tests/runtest.c:447,1
    - Dst: exsltRegisterAll
      Src: /src/libxslt/tests/runtest.c:449,1
    - Dst: xsltRegisterTestModule
      Src: /src/libxslt/tests/runtest.c:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 452
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 452
    functionName: initializeLibxml2
    functionSourceFile: /src/libxslt/tests/runtest.c
    functionUses: []
    functionsReached:
    - xmlSetExternalEntityLoader
    - xmlSetGenericErrorFunc
    - xsltRegisterTestModule
    - xmlSetStructuredErrorFunc
    - xmlInitParser
    - xsltSetGenericErrorFunc
    - exsltRegisterAll
    linkageType: ''
    returnType: void
    signature: 'static void initializeLibxml2(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/tests/testplugin.c:252,1
    - Dst: xsltTransformError
      Src: /src/libxslt/tests/testplugin.c:257,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/tests/testplugin.c:261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - ctxt
    - URI
    - data
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 263
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 263
    functionName: xsltExtShutdownTest
    functionSourceFile: /src/libxslt/tests/testplugin.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'static void xsltExtShutdownTest(xsltTransformContextPtr ctxt, const
      xmlChar * URI, void *data) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/tests/testplugin.c:169,1
    - Dst: xsltTransformError
      Src: /src/libxslt/tests/testplugin.c:185,1
    - Dst: xsltGetExtData
      Src: /src/libxslt/tests/testplugin.c:172,1
    - Dst: xsltTransformError
      Src: /src/libxslt/tests/testplugin.c:180,1
    - Dst: xsltTransformError
      Src: /src/libxslt/tests/testplugin.c:174,1
    - Dst: xsltTransformError
      Src: /src/libxslt/tests/testplugin.c:190,1
    - Dst: xsltTransformError
      Src: /src/libxslt/tests/testplugin.c:195,1
    - Dst: xmlNewComment
      Src: /src/libxslt/tests/testplugin.c:199,1
    - Dst: xmlAddChild
      Src: /src/libxslt/tests/testplugin.c:201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - ctxt
    - node
    - inst
    - ATTRIBUTE_UNUSED
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 202
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 202
    functionName: xsltExtElementTest
    functionSourceFile: /src/libxslt/tests/testplugin.c
    functionUses: []
    functionsReached:
    - xmlAddChild
    - xsltGetExtData
    - xmlNewComment
    - xsltGenericDebug
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'static void xsltExtElementTest(xsltTransformContextPtr ctxt, xmlNodePtr
      node, xmlNodePtr inst, xsltElemPreCompPtr comp ATTRIBUTE_UNUSED) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/tests/testplugin.c:124,1
    - Dst: xsltTransformError
      Src: /src/libxslt/tests/testplugin.c:142,1
    - Dst: xsltStyleGetExtData
      Src: /src/libxslt/tests/testplugin.c:132,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/tests/testplugin.c:129,1
    - Dst: xsltTransformError
      Src: /src/libxslt/tests/testplugin.c:134,1
    - Dst: xsltNewElemPreComp
      Src: /src/libxslt/tests/testplugin.c:148,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - style
    - inst
    - function
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    - xsltTransformFunction
    constantsTouched: []
    func_position:
      end: 150
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 150
    functionName: xsltExtElementPreCompTest
    functionSourceFile: /src/libxslt/tests/testplugin.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xsltTransformError
    - xsltNewElemPreComp
    - xsltStyleGetExtData
    linkageType: ''
    returnType: xsltElemPreCompPtr
    signature: 'static xsltElemPreCompPtr xsltExtElementPreCompTest(xsltStylesheetPtr
      style, xmlNodePtr inst, xsltTransformFunction function) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltRegisterExtModuleFull
      Src: /src/libxslt/tests/testplugin.c:325,1
    - Dst: xsltRegisterExtModuleElement
      Src: /src/libxslt/tests/testplugin.c:332,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/tests/testplugin.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 336
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 336
    functionName: (void)
    functionSourceFile: /src/libxslt/tests/testplugin.c
    functionUses: []
    functionsReached:
    - xsltRegisterExtModuleFull
    - xsltRegisterExtModuleFunction
    - xsltRegisterExtModuleElement
    linkageType: ''
    returnType: xmlsoft_org_xslt_testplugin_init
    signature: 'xmlsoft_org_xslt_testplugin_init (void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/tests/testplugin.c:74,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/tests/testplugin.c:77,1
    - Dst: xsltGetExtData
      Src: /src/libxslt/tests/testplugin.c:80,1
    - Dst: xsltTransformError
      Src: /src/libxslt/tests/testplugin.c:82,1
    - Dst: xsltTransformError
      Src: /src/libxslt/tests/testplugin.c:88,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/tests/testplugin.c:88,1
    - Dst: xsltGetExtData
      Src: /src/libxslt/tests/testplugin.c:93,1
    - Dst: xsltTransformError
      Src: /src/libxslt/tests/testplugin.c:95,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/tests/testplugin.c:95,1
    - Dst: xsltTransformError
      Src: /src/libxslt/tests/testplugin.c:100,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/tests/testplugin.c:100,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/tests/testplugin.c:105,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 108
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 108
    functionName: xsltExtFunctionTest
    functionSourceFile: /src/libxslt/tests/testplugin.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xsltGetExtData
    - xsltXPathGetTransformContext
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'static void xsltExtFunctionTest(xmlXPathParserContextPtr ctxt, int
      nargs ATTRIBUTE_UNUSED) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/tests/testplugin.c:217,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/tests/testplugin.c:233,1
    - Dst: xsltStyleGetExtData
      Src: /src/libxslt/tests/testplugin.c:220,1
    - Dst: xsltTransformError
      Src: /src/libxslt/tests/testplugin.c:222,1
    - Dst: xsltTransformError
      Src: /src/libxslt/tests/testplugin.c:228,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ctxt
    - URI
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 236
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 236
    functionName: xsltExtInitTest
    functionSourceFile: /src/libxslt/tests/testplugin.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xsltStyleGetExtData
    - xsltTransformError
    linkageType: ''
    returnType: void*
    signature: 'static void *xsltExtInitTest(xsltTransformContextPtr ctxt, const xmlChar
      * URI) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/tests/testplugin.c:279,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/tests/testplugin.c:284,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - URI
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 287
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 287
    functionName: xsltExtStyleInitTest
    functionSourceFile: /src/libxslt/tests/testplugin.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xsltTransformError
    linkageType: ''
    returnType: void*
    signature: 'static void *xsltExtStyleInitTest(xsltStylesheetPtr style ATTRIBUTE_UNUSED,
      const xmlChar * URI) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericError
      Src: /src/libxslt/tests/testplugin.c:303,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/tests/testplugin.c:312,1
    - Dst: xsltTransformError
      Src: /src/libxslt/tests/testplugin.c:308,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - URI
    - data
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 314
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 314
    functionName: xsltExtStyleShutdownTest
    functionSourceFile: /src/libxslt/tests/testplugin.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xsltTransformError
    - xsltGenericError
    linkageType: ''
    returnType: void
    signature: 'static void xsltExtStyleShutdownTest(xsltStylesheetPtr style ATTRIBUTE_UNUSED,
      const xmlChar * URI, void *data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsltFuzzXPathInit
      Src: /src/libxslt/tests/fuzz/testTargets.c:19,1
    - Dst: xsltFuzzXPathCleanup
      Src: /src/libxslt/tests/fuzz/testTargets.c:20,1
    - Dst: fprintf
      Src: /src/libxslt/tests/fuzz/testTargets.c:26,1
    - Dst: fprintf
      Src: /src/libxslt/tests/fuzz/testTargets.c:29,1
    - Dst: xsltFuzzXPath
      Src: /src/libxslt/tests/fuzz/testTargets.c:24,1
    - Dst: xsltFuzzXPathFreeObject
      Src: /src/libxslt/tests/fuzz/testTargets.c:34,1
    - Dst: xsltFuzzXPathCleanup
      Src: /src/libxslt/tests/fuzz/testTargets.c:35,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 38
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 38
    functionName: testXPath
    functionSourceFile: /src/libxslt/tests/fuzz/testTargets.c
    functionUses: []
    functionsReached:
    - xsltFuzzXPath
    - xsltFuzzXPathCleanup
    - xsltFuzzXPathInit
    - xsltFuzzXPathFreeObject
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int testXPath(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: testXPath
      Src: /src/libxslt/tests/fuzz/testTargets.c:85,1
    - Dst: testXslt
      Src: /src/libxslt/tests/fuzz/testTargets.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: main
    functionSourceFile: /src/libxslt/tests/fuzz/testTargets.c
    functionUses: []
    functionsReached:
    - testXPath
    - testXslt
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsltFuzzXsltInit
      Src: /src/libxslt/tests/fuzz/testTargets.c:60,1
    - Dst: xsltFuzzXslt
      Src: /src/libxslt/tests/fuzz/testTargets.c:65,1
    - Dst: xmlStrcmp
      Src: /src/libxslt/tests/fuzz/testTargets.c:69,1
    - Dst: xsltFuzzXsltCleanup
      Src: /src/libxslt/tests/fuzz/testTargets.c:61,1
    - Dst: fprintf
      Src: /src/libxslt/tests/fuzz/testTargets.c:67,1
    - Dst: fprintf
      Src: /src/libxslt/tests/fuzz/testTargets.c:70,1
    - Dst: xmlFree
      Src: /src/libxslt/tests/fuzz/testTargets.c:75,1
    - Dst: xsltFuzzXsltCleanup
      Src: /src/libxslt/tests/fuzz/testTargets.c:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 79
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 79
    functionName: testXslt
    functionSourceFile: /src/libxslt/tests/fuzz/testTargets.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltFuzzXsltInit
    - xsltFuzzXsltCleanup
    - xmlStrcmp
    - fprintf
    - xsltFuzzXslt
    linkageType: ''
    returnType: int
    signature: 'static int testXslt(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlNoNetExternalEntityLoader
      Src: /src/libxslt/tests/fuzz/genSeed.c:54,1
    - Dst: xmlParserInputBufferGrow
      Src: /src/libxslt/tests/fuzz/genSeed.c:66,1
    - Dst: fprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:68,1
    - Dst: xmlHashCreate
      Src: /src/libxslt/tests/fuzz/genSeed.c:59,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/tests/fuzz/genSeed.c:60,1
    - Dst: xmlFreeInputStream
      Src: /src/libxslt/tests/fuzz/genSeed.c:69,1
    - Dst: xmlStrdup
      Src: /src/libxslt/tests/fuzz/genSeed.c:74,1
    - Dst: xmlBufContent
      Src: /src/libxslt/tests/fuzz/genSeed.c:74,1
    - Dst: fprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:76,1
    - Dst: xmlFreeInputStream
      Src: /src/libxslt/tests/fuzz/genSeed.c:77,1
    - Dst: xmlNoNetExternalEntityLoader
      Src: /src/libxslt/tests/fuzz/genSeed.c:85,1
    - Dst: xmlFreeInputStream
      Src: /src/libxslt/tests/fuzz/genSeed.c:81,1
    - Dst: xmlHashAddEntry
      Src: /src/libxslt/tests/fuzz/genSeed.c:83,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - URL
    - ID
    - ctxt
    argTypes:
    - char*
    - char*
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 86
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 86
    functionName: fuzzEntityRecorder
    functionSourceFile: /src/libxslt/tests/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - xmlParserInputBufferGrow
    - xmlBufContent
    - xmlFreeInputStream
    - xmlHashCreate
    - xmlNoNetExternalEntityLoader
    - xmlStrdup
    - xmlHashLookup
    - xmlHashAddEntry
    - fprintf
    linkageType: ''
    returnType: xmlParserInputPtr
    signature: 'static xmlParserInputPtr fuzzEntityRecorder(const char *URL, const
      char *ID, xmlParserCtxtPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzWriteString
      Src: /src/libxslt/tests/fuzz/genSeed.c:99,1
    - Dst: xmlFuzzWriteString
      Src: /src/libxslt/tests/fuzz/genSeed.c:100,1
    - Dst: xmlFree
      Src: /src/libxslt/tests/fuzz/genSeed.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - entry
    - file
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: fuzzRecorderWriteAndFree
    functionSourceFile: /src/libxslt/tests/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFuzzWriteString
    linkageType: ''
    returnType: void
    signature: 'static void fuzzRecorderWriteAndFree(void *entry, const xmlChar *file) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSetExternalEntityLoader
      Src: /src/libxslt/tests/fuzz/genSeed.c:112,1
    - Dst: xmlHashFree
      Src: /src/libxslt/tests/fuzz/genSeed.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: fuzzRecorderCleanup
    functionSourceFile: /src/libxslt/tests/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    - xmlSetExternalEntityLoader
    linkageType: ''
    returnType: void
    signature: 'static void fuzzRecorderCleanup() '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/libxslt/tests/fuzz/genSeed.c:198,1
    - Dst: xmlFree
      Src: /src/libxslt/tests/fuzz/genSeed.c:246,1
    - Dst: glob
      Src: /src/libxslt/tests/fuzz/genSeed.c:177,1
    - Dst: fprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:181,1
    - Dst: fprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:204,1
    - Dst: fprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:214,1
    - Dst: chdir
      Src: /src/libxslt/tests/fuzz/genSeed.c:224,1
    - Dst: fprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:234,1
    - Dst: fprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:220,1
    - Dst: chdir
      Src: /src/libxslt/tests/fuzz/genSeed.c:233,1
    - Dst: xmlFree
      Src: /src/libxslt/tests/fuzz/genSeed.c:245,1
    - Dst: globfree
      Src: /src/libxslt/tests/fuzz/genSeed.c:249,1
    - Dst: S_ISREG
      Src: /src/libxslt/tests/fuzz/genSeed.c:198,1
    - Dst: xmlCharStrdup
      Src: /src/libxslt/tests/fuzz/genSeed.c:201,1
    - Dst: xmlCharStrdup
      Src: /src/libxslt/tests/fuzz/genSeed.c:202,1
    - Dst: dirname
      Src: /src/libxslt/tests/fuzz/genSeed.c:208,1
    - Dst: basename
      Src: /src/libxslt/tests/fuzz/genSeed.c:209,1
    - Dst: snprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:211,1
    - Dst: fopen
      Src: /src/libxslt/tests/fuzz/genSeed.c:218,1
    - Dst: fprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:225,1
    - Dst: fclose
      Src: /src/libxslt/tests/fuzz/genSeed.c:239,1
    - Dst: unlink
      Src: /src/libxslt/tests/fuzz/genSeed.c:241,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 67
    argCount: 1
    argNames:
    - pattern
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 251
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 251
    functionName: processPattern
    functionSourceFile: /src/libxslt/tests/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - chdir
    - xmlFree
    - globfree
    - dirname
    - glob
    - fprintf
    - fopen
    - stat
    - fclose
    - snprintf
    - unlink
    - basename
    - S_ISREG
    - xmlCharStrdup
    linkageType: ''
    returnType: int
    signature: 'static int processPattern(const char *pattern) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: processTestDir
      Src: /src/libxslt/tests/fuzz/genSeed.c:271,1
    - Dst: processTestDir
      Src: /src/libxslt/tests/fuzz/genSeed.c:273,1
    - Dst: processTestDir
      Src: /src/libxslt/tests/fuzz/genSeed.c:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - testsDir
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 276
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 276
    functionName: processTests
    functionSourceFile: /src/libxslt/tests/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - processTestDir
    linkageType: ''
    returnType: int
    signature: 'static int processTests(const char *testsDir) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxslt/tests/fuzz/genSeed.c:91,1
    - Dst: xmlSetExternalEntityLoader
      Src: /src/libxslt/tests/fuzz/genSeed.c:93,1
    - Dst: xmlGetExternalEntityLoader
      Src: /src/libxslt/tests/fuzz/genSeed.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: fuzzRecorderInit
    functionSourceFile: /src/libxslt/tests/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - xmlHashCreate
    - xmlGetExternalEntityLoader
    - xmlSetExternalEntityLoader
    linkageType: ''
    returnType: void
    signature: 'static void fuzzRecorderInit(FILE *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashRemoveEntry
      Src: /src/libxslt/tests/fuzz/genSeed.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: fuzzRecorderWrite
    functionSourceFile: /src/libxslt/tests/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - xmlHashRemoveEntry
    linkageType: ''
    returnType: void
    signature: 'static void fuzzRecorderWrite(const char *file) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:138,1
    - Dst: strncat
      Src: /src/libxslt/tests/fuzz/genSeed.c:135,1
    - Dst: snprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:140,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/tests/fuzz/genSeed.c:159,1
    - Dst: xsltFreeStylesheet
      Src: /src/libxslt/tests/fuzz/genSeed.c:161,1
    - Dst: fprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:144,1
    - Dst: xmlFuzzWriteInt
      Src: /src/libxslt/tests/fuzz/genSeed.c:153,1
    - Dst: fuzzRecorderCleanup
      Src: /src/libxslt/tests/fuzz/genSeed.c:165,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/tests/fuzz/genSeed.c:160,1
    - Dst: fprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:132,1
    - Dst: stat
      Src: /src/libxslt/tests/fuzz/genSeed.c:149,1
    - Dst: fuzzRecorderInit
      Src: /src/libxslt/tests/fuzz/genSeed.c:155,1
    - Dst: xmlReadFile
      Src: /src/libxslt/tests/fuzz/genSeed.c:158,1
    - Dst: strlen
      Src: /src/libxslt/tests/fuzz/genSeed.c:129,1
    - Dst: strcmp
      Src: /src/libxslt/tests/fuzz/genSeed.c:131,1
    - Dst: xsltParseStylesheetFile
      Src: /src/libxslt/tests/fuzz/genSeed.c:157,1
    - Dst: fuzzRecorderWrite
      Src: /src/libxslt/tests/fuzz/genSeed.c:163,1
    - Dst: fuzzRecorderWrite
      Src: /src/libxslt/tests/fuzz/genSeed.c:164,1
    - Dst: xsltApplyStylesheet
      Src: /src/libxslt/tests/fuzz/genSeed.c:159,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - sheetFile
    - out
    argTypes:
    - char*
    - FILE*
    constantsTouched: []
    func_position:
      end: 168
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 168
    functionName: processXslt
    functionSourceFile: /src/libxslt/tests/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - xsltParseStylesheetFile
    - xsltFreeStylesheet
    - fuzzRecorderInit
    - fuzzRecorderCleanup
    - strncat
    - stat
    - strcmp
    - xmlFuzzWriteInt
    - xmlReadFile
    - xmlFreeDoc
    - xsltApplyStylesheet
    - fuzzRecorderWrite
    - strlen
    - snprintf
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int processXslt(const char *sheetFile, FILE *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:258,1
    - Dst: processPattern
      Src: /src/libxslt/tests/fuzz/genSeed.c:266,1
    - Dst: fprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - testsDir
    - subDir
    - docDir
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 267
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 267
    functionName: processTestDir
    functionSourceFile: /src/libxslt/tests/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - snprintf
    - processPattern
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int processTestDir(const char *testsDir, const char *subDir,
      const char *docDir) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:431,1
    - Dst: fopen
      Src: /src/libxslt/tests/fuzz/genSeed.c:436,1
    - Dst: xmlFuzzWriteString
      Src: /src/libxslt/tests/fuzz/genSeed.c:443,1
    - Dst: xmlFuzzWriteInt
      Src: /src/libxslt/tests/fuzz/genSeed.c:442,1
    - Dst: xmlFuzzWriteString
      Src: /src/libxslt/tests/fuzz/genSeed.c:444,1
    - Dst: fclose
      Src: /src/libxslt/tests/fuzz/genSeed.c:446,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 450
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 450
    functionName: processXPath
    functionSourceFile: /src/libxslt/tests/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - fclose
    - fopen
    - xmlFuzzWriteString
    - xmlFuzzWriteInt
    - snprintf
    linkageType: ''
    returnType: int
    signature: 'static int processXPath(const char *testsDir ATTRIBUTE_UNUSED) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:459,1
    - Dst: xmlSetGenericErrorFunc
      Src: /src/libxslt/tests/fuzz/genSeed.c:463,1
    - Dst: strcmp
      Src: /src/libxslt/tests/fuzz/genSeed.c:469,1
    - Dst: strcmp
      Src: /src/libxslt/tests/fuzz/genSeed.c:467,1
    - Dst: xsltSetGenericErrorFunc
      Src: /src/libxslt/tests/fuzz/genSeed.c:464,1
    - Dst: fprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:472,1
    - Dst: getcwd
      Src: /src/libxslt/tests/fuzz/genSeed.c:477,1
    - Dst: fprintf
      Src: /src/libxslt/tests/fuzz/genSeed.c:478,1
    - Dst: process
      Src: /src/libxslt/tests/fuzz/genSeed.c:482,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 485
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 485
    functionName: main
    functionSourceFile: /src/libxslt/tests/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - xmlSetGenericErrorFunc
    - strcmp
    - process
    - xsltSetGenericErrorFunc
    - getcwd
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, const char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 397
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 397
    functionName: xmlFuzzErrorFunc
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzErrorFunc(void *ctx ATTRIBUTE_UNUSED, const char *msg
      ATTRIBUTE_UNUSED, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 526
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 526
    functionName: xmlFuzzReadInt
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: 'size_t xmlFuzzReadInt(int size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/tests/fuzz/fuzz.c:219,1
    - Dst: xsltFreeTransformContext
      Src: /src/libxslt/tests/fuzz/fuzz.c:224,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/tests/fuzz/fuzz.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - xmlXPathObjectPtr
    constantsTouched: []
    func_position:
      end: 228
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 228
    functionName: xsltFuzzXPathFreeObject
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xsltFreeTransformContext
    - xmlXPathFreeObject
    - xmlFreeDoc
    linkageType: ''
    returnType: void
    signature: 'void xsltFuzzXPathFreeObject(xmlXPathObjectPtr obj) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/libxslt/tests/fuzz/fuzz.c:417,1
    - Dst: malloc
      Src: /src/libxslt/tests/fuzz/fuzz.c:423,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 424
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 424
    functionName: xmlFuzzMalloc
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - abort
    - malloc
    linkageType: ''
    returnType: void*
    signature: 'static void *xmlFuzzMalloc(size_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/tests/fuzz/fuzz.c:480,1
    - Dst: xmlHashFree
      Src: /src/libxslt/tests/fuzz/fuzz.c:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 482
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 482
    functionName: xmlFuzzDataCleanup
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzDataCleanup(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putc
      Src: /src/libxslt/tests/fuzz/fuzz.c:497,1
    - Dst: putc
      Src: /src/libxslt/tests/fuzz/fuzz.c:504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - out
    - v
    - size
    argTypes:
    - FILE*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 506
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 506
    functionName: xmlFuzzWriteInt
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - putc
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzWriteInt(FILE *out, size_t v, int size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlStopParser
      Src: /src/libxslt/tests/fuzz/fuzz.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - vctxt
    - ATTRIBUTE_UNUSED
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: xsltFuzzXmlErrorFunc
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xmlStopParser
    linkageType: ''
    returnType: void
    signature: 'static void xsltFuzzXmlErrorFunc(void *vctxt, const char *msg ATTRIBUTE_UNUSED,
      ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeSecurityPrefs
      Src: /src/libxslt/tests/fuzz/fuzz.c:232,1
    - Dst: xsltFreeStylesheet
      Src: /src/libxslt/tests/fuzz/fuzz.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 236
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 236
    functionName: xsltFuzzXPathCleanup
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xsltFreeSecurityPrefs
    - xsltFreeStylesheet
    linkageType: ''
    returnType: void
    signature: 'void xsltFuzzXPathCleanup(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/libxslt/tests/fuzz/fuzz.c:431,1
    - Dst: realloc
      Src: /src/libxslt/tests/fuzz/fuzz.c:437,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 438
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 438
    functionName: xmlFuzzRealloc
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - realloc
    - abort
    linkageType: ''
    returnType: void*
    signature: 'static void *xmlFuzzRealloc(void *ptr, size_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/tests/fuzz/fuzz.c:463,1
    - Dst: xmlHashCreate
      Src: /src/libxslt/tests/fuzz/fuzz.c:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 471
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 471
    functionName: xmlFuzzDataInit
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xmlHashCreate
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzDataInit(const char *data, size_t size) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzReadString
      Src: /src/libxslt/tests/fuzz/fuzz.c:633,1
    - Dst: xmlHashAddEntry
      Src: /src/libxslt/tests/fuzz/fuzz.c:646,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/tests/fuzz/fuzz.c:639,1
    - Dst: xmlFuzzReadString
      Src: /src/libxslt/tests/fuzz/fuzz.c:636,1
    - Dst: xmlMalloc
      Src: /src/libxslt/tests/fuzz/fuzz.c:640,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 659
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 659
    functionName: xmlFuzzReadEntities
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xmlHashAddEntry
    - xmlHashLookup
    - xmlMalloc
    - xmlFuzzReadString
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzReadEntities(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t*
    constantsTouched: []
    func_position:
      end: 683
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 683
    functionName: xmlFuzzMainEntity
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlFuzzMainEntity(size_t *size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t*
    constantsTouched: []
    func_position:
      end: 707
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 707
    functionName: xmlFuzzSecondaryEntity
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlFuzzSecondaryEntity(size_t *size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFuzzInit
      Src: /src/libxslt/tests/fuzz/fuzz.c:114,1
    - Dst: xsltNewStylesheet
      Src: /src/libxslt/tests/fuzz/fuzz.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: xsltFuzzXPathInit
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xsltNewStylesheet
    - xsltFuzzInit
    linkageType: ''
    returnType: int
    signature: 'int xsltFuzzXPathInit(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMemSetup
      Src: /src/libxslt/tests/fuzz/fuzz.c:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 443
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 443
    functionName: xmlFuzzMemSetup
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xmlMemSetup
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzMemSetup(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: putc
      Src: /src/libxslt/tests/fuzz/fuzz.c:558,1
    - Dst: putc
      Src: /src/libxslt/tests/fuzz/fuzz.c:562,1
    - Dst: putc
      Src: /src/libxslt/tests/fuzz/fuzz.c:560,1
    - Dst: putc
      Src: /src/libxslt/tests/fuzz/fuzz.c:563,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - out
    - str
    argTypes:
    - FILE*
    - char*
    constantsTouched: []
    func_position:
      end: 564
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 564
    functionName: xmlFuzzWriteString
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - putc
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzWriteString(FILE *out, const char *str) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t*
    constantsTouched: []
    func_position:
      end: 616
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 616
    functionName: xmlFuzzReadString
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlFuzzReadString(size_t *size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 669
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 669
    functionName: xmlFuzzMainUrl
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlFuzzMainUrl(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 693
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 693
    functionName: xmlFuzzSecondaryUrl
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlFuzzSecondaryUrl(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzDataInit
      Src: /src/libxslt/tests/fuzz/fuzz.c:128,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxslt/tests/fuzz/fuzz.c:138,1
    - Dst: xmlNewNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:141,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:178,1
    - Dst: xmlFuzzMemSetLimit
      Src: /src/libxslt/tests/fuzz/fuzz.c:200,1
    - Dst: xmlFuzzMemSetLimit
      Src: /src/libxslt/tests/fuzz/fuzz.c:210,1
    - Dst: xmlXPathNewString
      Src: /src/libxslt/tests/fuzz/fuzz.c:188,1
    - Dst: xmlXPathRegisterVariable
      Src: /src/libxslt/tests/fuzz/fuzz.c:187,1
    - Dst: xmlXPathCtxtCompile
      Src: /src/libxslt/tests/fuzz/fuzz.c:194,1
    - Dst: xmlFuzzReadInt
      Src: /src/libxslt/tests/fuzz/fuzz.c:130,1
    - Dst: xmlFuzzReadString
      Src: /src/libxslt/tests/fuzz/fuzz.c:132,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:172,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:179,1
    - Dst: xmlXPathRegisterVariable
      Src: /src/libxslt/tests/fuzz/fuzz.c:186,1
    - Dst: xmlXPathNewBoolean
      Src: /src/libxslt/tests/fuzz/fuzz.c:186,1
    - Dst: xmlXPathRegisterVariable
      Src: /src/libxslt/tests/fuzz/fuzz.c:189,1
    - Dst: xmlXPathNewFloat
      Src: /src/libxslt/tests/fuzz/fuzz.c:185,1
    - Dst: xmlXPathEval
      Src: /src/libxslt/tests/fuzz/fuzz.c:191,1
    - Dst: xmlXPathRegisteredNsCleanup
      Src: /src/libxslt/tests/fuzz/fuzz.c:211,1
    - Dst: xmlXPathRegisterVariable
      Src: /src/libxslt/tests/fuzz/fuzz.c:185,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/tests/fuzz/fuzz.c:207,1
    - Dst: xmlReadMemory
      Src: /src/libxslt/tests/fuzz/fuzz.c:135,1
    - Dst: xmlNewNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:142,1
    - Dst: xsltNewTransformContext
      Src: /src/libxslt/tests/fuzz/fuzz.c:145,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxslt/tests/fuzz/fuzz.c:161,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:175,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:176,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:170,1
    - Dst: xsltSetCtxtSecurityPrefs
      Src: /src/libxslt/tests/fuzz/fuzz.c:150,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:180,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:182,1
    - Dst: xmlFuzzReadString
      Src: /src/libxslt/tests/fuzz/fuzz.c:131,1
    - Dst: xmlNewNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:140,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/tests/fuzz/fuzz.c:147,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:177,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:171,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:181,1
    - Dst: xmlXPathCompiledEval
      Src: /src/libxslt/tests/fuzz/fuzz.c:206,1
    - Dst: xmlFuzzDataCleanup
      Src: /src/libxslt/tests/fuzz/fuzz.c:212,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 62
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 215
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 215
    functionName: xsltFuzzXPath
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlReadMemory
    - xmlFuzzDataCleanup
    - xmlXPathEval
    - xmlXPathRegisterNs
    - xmlXPathNewString
    - xmlFreeDoc
    - xmlXPathFreeCompExpr
    - xmlXPathRegisteredNsCleanup
    - xmlXPathCtxtCompile
    - xmlXPathNewBoolean
    - xsltSetCtxtSecurityPrefs
    - xmlXPathCompiledEval
    - xmlXPathRegisterVariable
    - xmlXPathNewFloat
    - xmlFuzzMemSetLimit
    - xmlFuzzReadInt
    - xmlFuzzDataInit
    - xmlNewNs
    - xmlFuzzReadString
    - xsltNewTransformContext
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: 'xmlXPathObjectPtr xsltFuzzXPath(const char *data, size_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 449
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 449
    functionName: xmlFuzzMemSetLimit
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzMemSetLimit(size_t limit) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t*
    constantsTouched: []
    func_position:
      end: 543
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 543
    functionName: xmlFuzzReadRemaining
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlFuzzReadRemaining(size_t *size) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup
      Src: /src/libxslt/tests/fuzz/fuzz.c:722,1
    - Dst: xmlNewIOInputStream
      Src: /src/libxslt/tests/fuzz/fuzz.c:731,1
    - Dst: xmlParserInputBufferCreateMem
      Src: /src/libxslt/tests/fuzz/fuzz.c:726,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - URL
    - ATTRIBUTE_UNUSED
    - ctxt
    argTypes:
    - char*
    - char*
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 732
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 732
    functionName: xmlFuzzEntityLoader
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xmlNewIOInputStream
    - xmlParserInputBufferCreateMem
    - xmlHashLookup
    linkageType: ''
    returnType: xmlParserInputPtr
    signature: 'xmlParserInputPtr xmlFuzzEntityLoader(const char *URL, const char
      *ID ATTRIBUTE_UNUSED, xmlParserCtxtPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: xsltFuzzXsltErrorFunc
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xsltFuzzXsltErrorFunc(void *vctxt ATTRIBUTE_UNUSED, const
      char *msg ATTRIBUTE_UNUSED, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFuzzInit
      Src: /src/libxslt/tests/fuzz/fuzz.c:255,1
    - Dst: xmlSetExternalEntityLoader
      Src: /src/libxslt/tests/fuzz/fuzz.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: xsltFuzzXsltInit
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xsltFuzzInit
    - xmlSetExternalEntityLoader
    linkageType: ''
    returnType: int
    signature: 'int xsltFuzzXsltInit(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMemSetup
      Src: /src/libxslt/tests/fuzz/fuzz.c:52,1
    - Dst: xsltInit
      Src: /src/libxslt/tests/fuzz/fuzz.c:56,1
    - Dst: xmlSetGenericErrorFunc
      Src: /src/libxslt/tests/fuzz/fuzz.c:60,1
    - Dst: xmlInitParser
      Src: /src/libxslt/tests/fuzz/fuzz.c:55,1
    - Dst: exsltRegisterAll
      Src: /src/libxslt/tests/fuzz/fuzz.c:57,1
    - Dst: xsltSetGenericErrorFunc
      Src: /src/libxslt/tests/fuzz/fuzz.c:61,1
    - Dst: xsltNewSecurityPrefs
      Src: /src/libxslt/tests/fuzz/fuzz.c:64,1
    - Dst: xsltSetSecurityPrefs
      Src: /src/libxslt/tests/fuzz/fuzz.c:65,1
    - Dst: xsltSetSecurityPrefs
      Src: /src/libxslt/tests/fuzz/fuzz.c:67,1
    - Dst: xsltSetSecurityPrefs
      Src: /src/libxslt/tests/fuzz/fuzz.c:69,1
    - Dst: xsltSetSecurityPrefs
      Src: /src/libxslt/tests/fuzz/fuzz.c:73,1
    - Dst: xsltSetSecurityPrefs
      Src: /src/libxslt/tests/fuzz/fuzz.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 75
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 75
    functionName: xsltFuzzInit
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xsltInit
    - xmlSetGenericErrorFunc
    - xsltNewSecurityPrefs
    - xmlInitParser
    - xsltSetSecurityPrefs
    - xmlFuzzMemSetup
    - xsltSetGenericErrorFunc
    - exsltRegisterAll
    linkageType: ''
    returnType: void
    signature: 'static void xsltFuzzInit(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzDataInit
      Src: /src/libxslt/tests/fuzz/fuzz.c:272,1
    - Dst: xmlNewNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:297,1
    - Dst: xmlNewNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:301,1
    - Dst: xsltNewStylesheet
      Src: /src/libxslt/tests/fuzz/fuzz.c:306,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxslt/tests/fuzz/fuzz.c:316,1
    - Dst: xmlNewNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:319,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/tests/fuzz/fuzz.c:338,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/tests/fuzz/fuzz.c:342,1
    - Dst: xmlFuzzDataCleanup
      Src: /src/libxslt/tests/fuzz/fuzz.c:343,1
    - Dst: xmlFuzzMemSetLimit
      Src: /src/libxslt/tests/fuzz/fuzz.c:337,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/tests/fuzz/fuzz.c:341,1
    - Dst: xsltSaveResultToString
      Src: /src/libxslt/tests/fuzz/fuzz.c:334,1
    - Dst: xmlFuzzReadInt
      Src: /src/libxslt/tests/fuzz/fuzz.c:273,1
    - Dst: xmlFuzzSecondaryEntity
      Src: /src/libxslt/tests/fuzz/fuzz.c:278,1
    - Dst: xmlFuzzSecondaryUrl
      Src: /src/libxslt/tests/fuzz/fuzz.c:279,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxslt/tests/fuzz/fuzz.c:291,1
    - Dst: xmlNewNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:294,1
    - Dst: xmlNewNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:298,1
    - Dst: xmlNewNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:293,1
    - Dst: xmlNewNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:302,1
    - Dst: xsltParseStylesheetUser
      Src: /src/libxslt/tests/fuzz/fuzz.c:312,1
    - Dst: xsltSetCtxtSecurityPrefs
      Src: /src/libxslt/tests/fuzz/fuzz.c:326,1
    - Dst: xmlFuzzReadEntities
      Src: /src/libxslt/tests/fuzz/fuzz.c:275,1
    - Dst: xmlReadMemory
      Src: /src/libxslt/tests/fuzz/fuzz.c:287,1
    - Dst: xmlNewNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:299,1
    - Dst: xmlNewNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:295,1
    - Dst: xmlFuzzMemSetLimit
      Src: /src/libxslt/tests/fuzz/fuzz.c:305,1
    - Dst: xmlNewNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:320,1
    - Dst: xsltNewTransformContext
      Src: /src/libxslt/tests/fuzz/fuzz.c:323,1
    - Dst: xsltFreeStylesheet
      Src: /src/libxslt/tests/fuzz/fuzz.c:340,1
    - Dst: xmlFuzzMainUrl
      Src: /src/libxslt/tests/fuzz/fuzz.c:277,1
    - Dst: xmlFuzzMainEntity
      Src: /src/libxslt/tests/fuzz/fuzz.c:276,1
    - Dst: xmlReadMemory
      Src: /src/libxslt/tests/fuzz/fuzz.c:283,1
    - Dst: xmlNewNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:300,1
    - Dst: xmlNewNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:296,1
    - Dst: xmlNewNs
      Src: /src/libxslt/tests/fuzz/fuzz.c:318,1
    - Dst: xsltApplyStylesheetUser
      Src: /src/libxslt/tests/fuzz/fuzz.c:332,1
    - Dst: xsltFreeTransformContext
      Src: /src/libxslt/tests/fuzz/fuzz.c:339,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 74
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 346
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 346
    functionName: xsltFuzzXslt
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlReadMemory
    - xmlFuzzDataCleanup
    - xsltSaveResultToString
    - xmlFreeDoc
    - xsltApplyStylesheetUser
    - xmlFuzzMainUrl
    - xsltParseStylesheetUser
    - xmlFuzzReadEntities
    - xmlFuzzSecondaryUrl
    - xsltFreeTransformContext
    - xsltSetCtxtSecurityPrefs
    - xmlFuzzSecondaryEntity
    - xmlFuzzMemSetLimit
    - xmlFuzzMainEntity
    - xmlFuzzReadInt
    - xmlFuzzDataInit
    - xsltNewStylesheet
    - xsltFreeStylesheet
    - xmlNewNs
    - xsltNewTransformContext
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xsltFuzzXslt(const char *data, size_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeSecurityPrefs
      Src: /src/libxslt/tests/fuzz/fuzz.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: xsltFuzzXsltCleanup
    functionSourceFile: /src/libxslt/tests/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xsltFreeSecurityPrefs
    linkageType: ''
    returnType: void
    signature: 'void xsltFuzzXsltCleanup(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - cur
    - end
    - yr
    argTypes:
    - xmlChar**
    - xmlChar*
    - long
    constantsTouched: []
    func_position:
      end: 270
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 270
    functionName: exsltFormatGYear
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void exsltFormatGYear(xmlChar **cur, xmlChar *end, long yr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PARSE_2_DIGITS
      Src: /src/libxslt/libexslt/date.c:359,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libexslt/date.c:366,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - dt
    - str
    argTypes:
    - exsltDateValPtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 371
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 371
    functionName: _exsltDateParseGMonth
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - PARSE_2_DIGITS
    - xsltGenericDebug
    linkageType: ''
    returnType: int
    signature: 'static int _exsltDateParseGMonth (exsltDateValPtr dt, const xmlChar
      **str) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCreateDate
      Src: /src/libxslt/libexslt/date.c:690,1
    - Dst: gmtime_s
      Src: /src/libxslt/libexslt/date.c:704,1
    - Dst: gmtime_r
      Src: /src/libxslt/libexslt/date.c:708,1
    - Dst: strtol
      Src: /src/libxslt/libexslt/date.c:701,1
    - Dst: getenv
      Src: /src/libxslt/libexslt/date.c:698,1
    - Dst: gmtime
      Src: /src/libxslt/libexslt/date.c:711,1
    - Dst: time
      Src: /src/libxslt/libexslt/date.c:722,1
    - Dst: localtime_s
      Src: /src/libxslt/libexslt/date.c:725,1
    - Dst: localtime_r
      Src: /src/libxslt/libexslt/date.c:727,1
    - Dst: localtime
      Src: /src/libxslt/libexslt/date.c:729,1
    - Dst: gmtime_s
      Src: /src/libxslt/libexslt/date.c:746,1
    - Dst: gmtime_r
      Src: /src/libxslt/libexslt/date.c:748,1
    - Dst: gmtime
      Src: /src/libxslt/libexslt/date.c:750,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 113
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 788
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 788
    functionName: exsltDateCurrent
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - localtime
    - exsltDateCreateDate
    - localtime_r
    - gmtime
    - gmtime_r
    - localtime_s
    - time
    - gmtime_s
    - strtol
    - getenv
    linkageType: ''
    returnType: exsltDateValPtr
    signature: 'static exsltDateValPtr exsltDateCurrent (void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 3
    argNames:
    - cur
    - end
    - num
    argTypes:
    - xmlChar**
    - xmlChar*
    - long
    constantsTouched: []
    func_position:
      end: 1125
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1125
    functionName: exsltFormatLong
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void exsltFormatLong(xmlChar **cur, xmlChar *end, long num) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exsltFormatTwoDigits
      Src: /src/libxslt/libexslt/date.c:1269,1
    - Dst: floor
      Src: /src/libxslt/libexslt/date.c:1277,1
    - Dst: exsltFormatTwoDigits
      Src: /src/libxslt/libexslt/date.c:1286,1
    - Dst: exsltFormatTwoDigits
      Src: /src/libxslt/libexslt/date.c:1273,1
    - Dst: floor
      Src: /src/libxslt/libexslt/date.c:1283,1
    - Dst: exsltFormatNanoseconds
      Src: /src/libxslt/libexslt/date.c:1287,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - cur
    - end
    - dt
    argTypes:
    - xmlChar**
    - xmlChar*
    - exsltDateValPtr
    constantsTouched: []
    func_position:
      end: 1288
      start: 1264
    functionDepth: 0
    functionLinenumber: 1264
    functionLinenumberEnd: 1288
    functionName: exsltFormatTime
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - floor
    - exsltFormatTwoDigits
    - exsltFormatNanoseconds
    linkageType: ''
    returnType: void
    signature: 'static void exsltFormatTime(xmlChar **cur, xmlChar *end, exsltDateValPtr
      dt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DAY_IN_YEAR
      Src: /src/libxslt/libexslt/date.c:1433,1
    - Dst: DAY_IN_YEAR
      Src: /src/libxslt/libexslt/date.c:1438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 1
    argNames:
    - dt
    argTypes:
    - exsltDateValPtr
    constantsTouched: []
    func_position:
      end: 1441
      start: 1424
    functionDepth: 0
    functionLinenumber: 1424
    functionLinenumberEnd: 1441
    functionName: _exsltDateCastYMToDays
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - DAY_IN_YEAR
    linkageType: ''
    returnType: long
    signature: 'static long _exsltDateCastYMToDays (const exsltDateValPtr dt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateDayInWeek
      Src: /src/libxslt/libexslt/date.c:2522,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/date.c:2523,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2526
      start: 2507
    functionDepth: 0
    functionLinenumber: 2507
    functionLinenumberEnd: 2526
    functionName: exsltDateDayName
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    - exsltDateDayInWeek
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *exsltDateDayName (const xmlChar *dateTime) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateParse
      Src: /src/libxslt/libexslt/date.c:2737,1
    - Dst: exsltDateParseDuration
      Src: /src/libxslt/libexslt/date.c:2745,1
    - Dst: _exsltDateAdd
      Src: /src/libxslt/libexslt/date.c:2751,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2747,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2741,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2753,1
    - Dst: exsltDateFreeDuration
      Src: /src/libxslt/libexslt/date.c:2754,1
    - Dst: exsltDateFormat
      Src: /src/libxslt/libexslt/date.c:2759,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2760,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 2
    argNames:
    - xstr
    - ystr
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2763
      start: 2727
    functionDepth: 0
    functionLinenumber: 2727
    functionLinenumberEnd: 2763
    functionName: exsltDateAdd
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateFreeDuration
    - exsltDateFreeDate
    - exsltDateParse
    - _exsltDateAdd
    - exsltDateFormat
    - exsltDateParseDuration
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *exsltDateAdd (const xmlChar *xstr, const xmlChar *ystr) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - cur
    - end
    - nsecs
    argTypes:
    - xmlChar**
    - xmlChar*
    - long
    constantsTouched: []
    func_position:
      end: 1143
      start: 1127
    functionDepth: 0
    functionLinenumber: 1127
    functionLinenumberEnd: 1143
    functionName: exsltFormatNanoseconds
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void exsltFormatNanoseconds(xmlChar **cur, xmlChar *end, long
      nsecs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/date.c:3286,1
    - Dst: exsltDateLeapYear
      Src: /src/libxslt/libexslt/date.c:3298,1
    - Dst: xmlXPathSetTypeError
      Src: /src/libxslt/libexslt/date.c:3293,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/date.c:3292,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/date.c:3291,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3301,1
    - Dst: valuePush
      Src: /src/libxslt/libexslt/date.c:3303,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 3304
      start: 3279
    functionDepth: 0
    functionLinenumber: 3279
    functionLinenumberEnd: 3304
    functionName: exsltDateLeapYearFunction
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathCheckError
    - valuePush
    - xmlXPathSetArityError
    - exsltDateLeapYear
    - xmlXPathSetTypeError
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltDateLeapYearFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libexslt/date.c:228,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 33
    argCount: 2
    argNames:
    - dt
    - str
    argTypes:
    - exsltDateValPtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 233
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 233
    functionName: _exsltDateParseGYear
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    linkageType: ''
    returnType: int
    signature: 'static int _exsltDateParseGYear (exsltDateValPtr dt, const xmlChar
      **str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - duration
    argTypes:
    - exsltDateDurValPtr
    constantsTouched: []
    func_position:
      end: 670
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 670
    functionName: exsltDateFreeDuration
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void exsltDateFreeDuration (exsltDateDurValPtr duration) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateFormatDateTime
      Src: /src/libxslt/libexslt/date.c:1384,1
    - Dst: exsltDateFormatDate
      Src: /src/libxslt/libexslt/date.c:1386,1
    - Dst: exsltFormat2Digits
      Src: /src/libxslt/libexslt/date.c:1400,1
    - Dst: exsltDateFormatTime
      Src: /src/libxslt/libexslt/date.c:1388,1
    - Dst: exsltFormatGYear
      Src: /src/libxslt/libexslt/date.c:1396,1
    - Dst: exsltFormatTimeZone
      Src: /src/libxslt/libexslt/date.c:1404,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libexslt/date.c:1407,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 21
    argCount: 1
    argNames:
    - dt
    argTypes:
    - exsltDateValPtr
    constantsTouched: []
    func_position:
      end: 1411
      start: 1376
    functionDepth: 0
    functionLinenumber: 1376
    functionLinenumberEnd: 1411
    functionName: exsltDateFormat
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltFormat2Digits
    - exsltDateFormatTime
    - exsltDateFormatDate
    - exsltFormatGYear
    - xmlStrdup
    - exsltDateFormatDateTime
    - exsltFormatTimeZone
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *exsltDateFormat (const exsltDateValPtr dt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCurrent
      Src: /src/libxslt/libexslt/date.c:1914,1
    - Dst: exsltDateFormatTime
      Src: /src/libxslt/libexslt/date.c:1927,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:1922,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:1928,1
    - Dst: exsltDateParse
      Src: /src/libxslt/libexslt/date.c:1918,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1931
      start: 1907
    functionDepth: 0
    functionLinenumber: 1907
    functionLinenumberEnd: 1931
    functionName: exsltDateTime
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateCurrent
    - exsltDateFreeDate
    - exsltDateParse
    - exsltDateFormatTime
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *exsltDateTime (const xmlChar *dateTime) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCurrent
      Src: /src/libxslt/libexslt/date.c:2010,1
    - Dst: exsltDateParse
      Src: /src/libxslt/libexslt/date.c:2012,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2016,1
    - Dst: xmlXPathNewBoolean
      Src: /src/libxslt/libexslt/date.c:2025,1
    - Dst: xmlXPathNewFloat
      Src: /src/libxslt/libexslt/date.c:2022,1
    - Dst: IS_LEAP
      Src: /src/libxslt/libexslt/date.c:2025,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2026,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2030
      start: 2003
    functionDepth: 0
    functionLinenumber: 2003
    functionLinenumberEnd: 2030
    functionName: exsltDateLeapYear
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateCurrent
    - exsltDateFreeDate
    - exsltDateParse
    - xmlXPathNewBoolean
    - IS_LEAP
    - xmlXPathNewFloat
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: 'static xmlXPathObjectPtr exsltDateLeapYear (const xmlChar *dateTime) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCurrent
      Src: /src/libxslt/libexslt/date.c:2465,1
    - Dst: _exsltDateDayInWeek
      Src: /src/libxslt/libexslt/date.c:2480,1
    - Dst: exsltDateParse
      Src: /src/libxslt/libexslt/date.c:2469,1
    - Dst: DAY_IN_YEAR
      Src: /src/libxslt/libexslt/date.c:2478,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2473,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2482,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2485
      start: 2458
    functionDepth: 0
    functionLinenumber: 2458
    functionLinenumberEnd: 2485
    functionName: exsltDateDayInWeek
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateCurrent
    - exsltDateFreeDate
    - exsltDateParse
    - DAY_IN_YEAR
    - _exsltDateDayInWeek
    linkageType: ''
    returnType: double
    signature: 'static double exsltDateDayInWeek (const xmlChar *dateTime) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/date.c:3522,1
    - Dst: exsltDateDayAbbreviation
      Src: /src/libxslt/libexslt/date.c:3534,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/date.c:3527,1
    - Dst: xmlXPathSetTypeError
      Src: /src/libxslt/libexslt/date.c:3529,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/date.c:3528,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3537,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/date.c:3540,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/date.c:3542,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libexslt/date.c:3542,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 3543
      start: 3515
    functionDepth: 0
    functionLinenumber: 3515
    functionLinenumberEnd: 3543
    functionName: exsltDateDayAbbreviationFunction
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathCheckError
    - xmlXPathReturnEmptyString
    - xmlStrdup
    - xmlXPathSetArityError
    - exsltDateDayAbbreviation
    - xmlXPathReturnString
    - xmlXPathSetTypeError
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltDateDayAbbreviationFunction (xmlXPathParserContextPtr
      ctxt, int nargs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/date.c:3587,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/date.c:3592,1
    - Dst: xmlXPathSetTypeError
      Src: /src/libxslt/libexslt/date.c:3594,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/date.c:3593,1
    - Dst: exsltDateSeconds
      Src: /src/libxslt/libexslt/date.c:3599,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3601,1
    - Dst: xmlXPathReturnNumber
      Src: /src/libxslt/libexslt/date.c:3603,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 3604
      start: 3580
    functionDepth: 0
    functionLinenumber: 3580
    functionLinenumberEnd: 3604
    functionName: exsltDateSecondsFunction
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathCheckError
    - xmlXPathReturnNumber
    - xmlXPathSetArityError
    - xmlXPathSetTypeError
    - xmlXPathPopString
    - exsltDateSeconds
    linkageType: ''
    returnType: void
    signature: 'static void exsltDateSecondsFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCurrent
      Src: /src/libxslt/libexslt/date.c:1840,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:1843,1
    - Dst: exsltDateFormatDateTime
      Src: /src/libxslt/libexslt/date.c:1842,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1847
      start: 1834
    functionDepth: 0
    functionLinenumber: 1834
    functionLinenumberEnd: 1847
    functionName: exsltDateDateTime
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateCurrent
    - exsltDateFreeDate
    - exsltDateFormatDateTime
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *exsltDateDateTime (void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/date.c:3394,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/date.c:3399,1
    - Dst: xmlXPathSetTypeError
      Src: /src/libxslt/libexslt/date.c:3401,1
    - Dst: exsltDateMonthAbbreviation
      Src: /src/libxslt/libexslt/date.c:3406,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/date.c:3400,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3409,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/date.c:3412,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/date.c:3414,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libexslt/date.c:3414,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 3415
      start: 3387
    functionDepth: 0
    functionLinenumber: 3387
    functionLinenumberEnd: 3415
    functionName: exsltDateMonthAbbreviationFunction
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathCheckError
    - xmlXPathReturnEmptyString
    - xmlXPathPopString
    - xmlStrdup
    - xmlXPathSetArityError
    - xmlXPathReturnString
    - xmlXPathSetTypeError
    - exsltDateMonthAbbreviation
    linkageType: ''
    returnType: void
    signature: 'static void exsltDateMonthAbbreviationFunction (xmlXPathParserContextPtr
      ctxt, int nargs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/date.c:3252,1
    - Dst: exsltDateYear
      Src: /src/libxslt/libexslt/date.c:3264,1
    - Dst: xmlXPathSetTypeError
      Src: /src/libxslt/libexslt/date.c:3259,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/date.c:3258,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/date.c:3257,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3267,1
    - Dst: xmlXPathReturnNumber
      Src: /src/libxslt/libexslt/date.c:3269,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 3270
      start: 3245
    functionDepth: 0
    functionLinenumber: 3245
    functionLinenumberEnd: 3270
    functionName: exsltDateYearFunction
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathCheckError
    - exsltDateYear
    - xmlXPathReturnNumber
    - xmlXPathSetArityError
    - xmlXPathSetTypeError
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltDateYearFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PARSE_2_DIGITS
      Src: /src/libxslt/libexslt/date.c:444,1
    - Dst: VALID_TIME
      Src: /src/libxslt/libexslt/date.c:467,1
    - Dst: PARSE_2_DIGITS
      Src: /src/libxslt/libexslt/date.c:455,1
    - Dst: PARSE_FLOAT
      Src: /src/libxslt/libexslt/date.c:463,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libexslt/date.c:473,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 2
    argNames:
    - dt
    - str
    argTypes:
    - exsltDateValPtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 479
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 479
    functionName: _exsltDateParseTime
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - PARSE_FLOAT
    - PARSE_2_DIGITS
    - xsltGenericDebug
    - VALID_TIME
    linkageType: ''
    returnType: int
    signature: 'static int _exsltDateParseTime (exsltDateValPtr dt, const xmlChar
      **str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libexslt/date.c:647,1
    - Dst: memset
      Src: /src/libxslt/libexslt/date.c:653,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/date.c:649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 656
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 656
    functionName: exsltDateCreateDuration
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - memset
    - xsltGenericError
    - xmlMalloc
    linkageType: ''
    returnType: exsltDateDurValPtr
    signature: 'static exsltDateDurValPtr exsltDateCreateDuration (void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - dt
    - type
    argTypes:
    - exsltDateValPtr
    - exsltDateType
    constantsTouched: []
    func_position:
      end: 1488
      start: 1464
    functionDepth: 0
    functionLinenumber: 1464
    functionLinenumberEnd: 1488
    functionName: _exsltDateTruncateDate
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int _exsltDateTruncateDate (exsltDateValPtr dt, exsltDateType
      type) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCurrent
      Src: /src/libxslt/libexslt/date.c:2060,1
    - Dst: exsltDateParse
      Src: /src/libxslt/libexslt/date.c:2064,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2070,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2076,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2079
      start: 2053
    functionDepth: 0
    functionLinenumber: 2053
    functionLinenumberEnd: 2079
    functionName: exsltDateMonthInYear
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateCurrent
    - exsltDateFreeDate
    - exsltDateParse
    linkageType: ''
    returnType: double
    signature: 'static double exsltDateMonthInYear (const xmlChar *dateTime) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCurrent
      Src: /src/libxslt/libexslt/date.c:2418,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2433,1
    - Dst: exsltDateParse
      Src: /src/libxslt/libexslt/date.c:2422,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2426,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2436
      start: 2411
    functionDepth: 0
    functionLinenumber: 2411
    functionLinenumberEnd: 2436
    functionName: exsltDateDayOfWeekInMonth
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateCurrent
    - exsltDateFreeDate
    - exsltDateParse
    linkageType: ''
    returnType: double
    signature: 'static double exsltDateDayOfWeekInMonth (const xmlChar *dateTime) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCurrent
      Src: /src/libxslt/libexslt/date.c:2594,1
    - Dst: exsltDateParse
      Src: /src/libxslt/libexslt/date.c:2598,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2608,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2602,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2611
      start: 2587
    functionDepth: 0
    functionLinenumber: 2587
    functionLinenumberEnd: 2611
    functionName: exsltDateHourInDay
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateCurrent
    - exsltDateFreeDate
    - exsltDateParse
    linkageType: ''
    returnType: double
    signature: 'static double exsltDateHourInDay (const xmlChar *dateTime) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCurrent
      Src: /src/libxslt/libexslt/date.c:2956,1
    - Dst: _exsltDateDifference
      Src: /src/libxslt/libexslt/date.c:2980,1
    - Dst: exsltDateCreateDate
      Src: /src/libxslt/libexslt/date.c:2973,1
    - Dst: exsltDateParse
      Src: /src/libxslt/libexslt/date.c:2960,1
    - Dst: exsltDateParseDuration
      Src: /src/libxslt/libexslt/date.c:2962,1
    - Dst: exsltDateFreeDuration
      Src: /src/libxslt/libexslt/date.c:2983,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2985,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2993,1
    - Dst: exsltDateFreeDuration
      Src: /src/libxslt/libexslt/date.c:2995,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2998
      start: 2948
    functionDepth: 0
    functionLinenumber: 2948
    functionLinenumberEnd: 2998
    functionName: exsltDateSeconds
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateCreateDate
    - exsltDateFreeDuration
    - exsltDateCurrent
    - exsltDateFreeDate
    - exsltDateParse
    - _exsltDateDifference
    - exsltDateParseDuration
    linkageType: ''
    returnType: double
    signature: 'static double exsltDateSeconds (const xmlChar *dateTime) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateParse
      Src: /src/libxslt/libexslt/date.c:3047,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:3053,1
    - Dst: exsltDateParse
      Src: /src/libxslt/libexslt/date.c:3051,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:3060,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:3059,1
    - Dst: _exsltDateDifference
      Src: /src/libxslt/libexslt/date.c:3064,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:3066,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:3067,1
    - Dst: exsltDateFormatDuration
      Src: /src/libxslt/libexslt/date.c:3072,1
    - Dst: exsltDateFreeDuration
      Src: /src/libxslt/libexslt/date.c:3073,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 2
    argNames:
    - xstr
    - ystr
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3076
      start: 3037
    functionDepth: 0
    functionLinenumber: 3037
    functionLinenumberEnd: 3076
    functionName: exsltDateDifference
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateFreeDuration
    - exsltDateFormatDuration
    - exsltDateFreeDate
    - exsltDateParse
    - _exsltDateDifference
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *exsltDateDifference (const xmlChar *xstr, const xmlChar
      *ystr) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/date.c:3173,1
    - Dst: exsltDateDate
      Src: /src/libxslt/libexslt/date.c:3184,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/date.c:3177,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/date.c:3178,1
    - Dst: xmlXPathSetTypeError
      Src: /src/libxslt/libexslt/date.c:3179,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libexslt/date.c:3187,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/date.c:3190,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/date.c:3192,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3196,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 3197
      start: 3167
    functionDepth: 0
    functionLinenumber: 3167
    functionLinenumberEnd: 3197
    functionName: exsltDateDateFunction
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathCheckError
    - xmlXPathReturnEmptyString
    - exsltDateDate
    - xmlXPathSetArityError
    - xmlXPathReturnString
    - xsltGenericDebug
    - xmlXPathSetTypeError
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltDateDateFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/date.c:3357,1
    - Dst: xmlXPathSetTypeError
      Src: /src/libxslt/libexslt/date.c:3364,1
    - Dst: exsltDateMonthName
      Src: /src/libxslt/libexslt/date.c:3369,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/date.c:3362,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/date.c:3363,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3372,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/date.c:3375,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/date.c:3377,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libexslt/date.c:3377,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 3378
      start: 3350
    functionDepth: 0
    functionLinenumber: 3350
    functionLinenumberEnd: 3378
    functionName: exsltDateMonthNameFunction
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathCheckError
    - xmlXPathReturnEmptyString
    - xmlStrdup
    - xmlXPathSetArityError
    - xmlXPathReturnString
    - xmlXPathSetTypeError
    - exsltDateMonthName
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltDateMonthNameFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/date.c:3693,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/date.c:3697,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/date.c:3700,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/date.c:3701,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/date.c:3696,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3702,1
    - Dst: exsltDateDifference
      Src: /src/libxslt/libexslt/date.c:3706,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3708,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3709,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/date.c:3712,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/date.c:3714,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 3715
      start: 3687
    functionDepth: 0
    functionLinenumber: 3687
    functionLinenumberEnd: 3715
    functionName: exsltDateDifferenceFunction
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathReturnEmptyString
    - xmlXPathSetArityError
    - xmlXPathReturnString
    - xmlXPathCheckError
    - xmlXPathPopString
    - exsltDateDifference
    linkageType: ''
    returnType: void
    signature: 'static void exsltDateDifferenceFunction (xmlXPathParserContextPtr
      ctxt, int nargs) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - date
    argTypes:
    - exsltDateValPtr
    constantsTouched: []
    func_position:
      end: 633
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 633
    functionName: exsltDateFreeDate
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void exsltDateFreeDate (exsltDateValPtr date) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VALID_DATETIME
      Src: /src/libxslt/libexslt/date.c:1303,1
    - Dst: exsltFormatTime
      Src: /src/libxslt/libexslt/date.c:1309,1
    - Dst: exsltFormatTimeZone
      Src: /src/libxslt/libexslt/date.c:1310,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libexslt/date.c:1313,1
    - Dst: exsltFormatYearMonthDay
      Src: /src/libxslt/libexslt/date.c:1306,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - dt
    argTypes:
    - exsltDateValPtr
    constantsTouched: []
    func_position:
      end: 1314
      start: 1298
    functionDepth: 0
    functionLinenumber: 1298
    functionLinenumberEnd: 1314
    functionName: exsltDateFormatDateTime
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltFormatYearMonthDay
    - exsltFormatTime
    - xmlStrdup
    - exsltFormatTimeZone
    - VALID_DATETIME
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *exsltDateFormatDateTime (const exsltDateValPtr dt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCurrent
      Src: /src/libxslt/libexslt/date.c:2372,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2387,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2381,1
    - Dst: exsltDateParse
      Src: /src/libxslt/libexslt/date.c:2376,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2390
      start: 2365
    functionDepth: 0
    functionLinenumber: 2365
    functionLinenumberEnd: 2390
    functionName: exsltDateDayInMonth
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateCurrent
    - exsltDateFreeDate
    - exsltDateParse
    linkageType: ''
    returnType: double
    signature: 'static double exsltDateDayInMonth (const xmlChar *dateTime) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateDayInWeek
      Src: /src/libxslt/libexslt/date.c:2563,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/date.c:2564,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2567
      start: 2548
    functionDepth: 0
    functionLinenumber: 2548
    functionLinenumberEnd: 2567
    functionName: exsltDateDayAbbreviation
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    - exsltDateDayInWeek
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *exsltDateDayAbbreviation (const xmlChar *dateTime) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateParseDuration
      Src: /src/libxslt/libexslt/date.c:2795,1
    - Dst: _exsltDateAddDuration
      Src: /src/libxslt/libexslt/date.c:2805,1
    - Dst: exsltDateFreeDuration
      Src: /src/libxslt/libexslt/date.c:2801,1
    - Dst: exsltDateParseDuration
      Src: /src/libxslt/libexslt/date.c:2799,1
    - Dst: exsltDateFreeDuration
      Src: /src/libxslt/libexslt/date.c:2807,1
    - Dst: exsltDateFreeDuration
      Src: /src/libxslt/libexslt/date.c:2808,1
    - Dst: exsltDateFormatDuration
      Src: /src/libxslt/libexslt/date.c:2813,1
    - Dst: exsltDateFreeDuration
      Src: /src/libxslt/libexslt/date.c:2814,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - xstr
    - ystr
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2817
      start: 2786
    functionDepth: 0
    functionLinenumber: 2786
    functionLinenumberEnd: 2817
    functionName: exsltDateAddDuration
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - _exsltDateAddDuration
    - exsltDateFreeDuration
    - exsltDateParseDuration
    - exsltDateFormatDuration
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *exsltDateAddDuration (const xmlChar *xstr, const xmlChar
      *ystr) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/date.c:2867,1
    - Dst: exsltDateFreeDuration
      Src: /src/libxslt/libexslt/date.c:2882,1
    - Dst: _exsltDateAddDurCalc
      Src: /src/libxslt/libexslt/date.c:2895,1
    - Dst: exsltDateFreeDuration
      Src: /src/libxslt/libexslt/date.c:2900,1
    - Dst: exsltDateParseDuration
      Src: /src/libxslt/libexslt/date.c:2886,1
    - Dst: exsltDateFormatDuration
      Src: /src/libxslt/libexslt/date.c:2907,1
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/date.c:2849,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/date.c:2860,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/date.c:2861,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/date.c:2873,1
    - Dst: xmlXPathCastNodeToString
      Src: /src/libxslt/libexslt/date.c:2879,1
    - Dst: exsltDateFreeDuration
      Src: /src/libxslt/libexslt/date.c:2889,1
    - Dst: exsltDateFreeDuration
      Src: /src/libxslt/libexslt/date.c:2897,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/date.c:2891,1
    - Dst: exsltDateFreeDuration
      Src: /src/libxslt/libexslt/date.c:2908,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/date.c:2881,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:2898,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/date.c:2890,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/date.c:2901,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/date.c:2910,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/date.c:2865,1
    - Dst: exsltDateCreateDuration
      Src: /src/libxslt/libexslt/date.c:2871,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:2888,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/date.c:2902,1
    - Dst: xmlFreeNodeList
      Src: /src/libxslt/libexslt/date.c:2912,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/date.c:2915,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/date.c:2917,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 2918
      start: 2838
    functionDepth: 0
    functionLinenumber: 2838
    functionLinenumberEnd: 2918
    functionName: exsltDateSumFunction
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeNodeSet
    - xmlFree
    - exsltDateFreeDuration
    - xmlFreeNodeList
    - _exsltDateAddDurCalc
    - exsltDateFormatDuration
    - xmlXPathReturnEmptyString
    - exsltDateCreateDuration
    - xmlXPathSetArityError
    - xmlXPathReturnString
    - xmlXPathCastNodeToString
    - xmlXPathCheckError
    - xmlXPathPopNodeSet
    - exsltDateParseDuration
    linkageType: ''
    returnType: void
    signature: 'static void exsltDateSumFunction (xmlXPathParserContextPtr ctxt, int
      nargs) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/date.c:3149,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/date.c:3157,1
    - Dst: exsltDateDateTime
      Src: /src/libxslt/libexslt/date.c:3153,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/date.c:3155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 3158
      start: 3143
    functionDepth: 0
    functionLinenumber: 3143
    functionLinenumberEnd: 3158
    functionName: exsltDateDateTimeFunction
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlXPathReturnEmptyString
    - xmlXPathSetArityError
    - exsltDateDateTime
    - xmlXPathReturnString
    linkageType: ''
    returnType: void
    signature: 'static void exsltDateDateTimeFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/date.c:3656,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/date.c:3664,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/date.c:3659,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/date.c:3660,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/date.c:3663,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3665,1
    - Dst: exsltDateAddDuration
      Src: /src/libxslt/libexslt/date.c:3669,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3671,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3672,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/date.c:3675,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/date.c:3677,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 3678
      start: 3650
    functionDepth: 0
    functionLinenumber: 3650
    functionLinenumberEnd: 3678
    functionName: exsltDateAddDurationFunction
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathReturnEmptyString
    - xmlXPathSetArityError
    - exsltDateAddDuration
    - xmlXPathReturnString
    - xmlXPathCheckError
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltDateAddDurationFunction (xmlXPathParserContextPtr
      ctxt, int nargs) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VALID_DATETIME
      Src: /src/libxslt/libexslt/date.c:1329,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libexslt/date.c:1338,1
    - Dst: exsltFormatYearMonthDay
      Src: /src/libxslt/libexslt/date.c:1332,1
    - Dst: exsltFormatTimeZone
      Src: /src/libxslt/libexslt/date.c:1334,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - dt
    argTypes:
    - exsltDateValPtr
    constantsTouched: []
    func_position:
      end: 1339
      start: 1324
    functionDepth: 0
    functionLinenumber: 1324
    functionLinenumberEnd: 1339
    functionName: exsltDateFormatDate
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltFormatYearMonthDay
    - exsltFormatTimeZone
    - VALID_DATETIME
    - xmlStrdup
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *exsltDateFormatDate (const exsltDateValPtr dt) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCreateDate
      Src: /src/libxslt/libexslt/date.c:1539,1
    - Dst: MAX_DAYINMONTH
      Src: /src/libxslt/libexslt/date.c:1605,1
    - Dst: fmod
      Src: /src/libxslt/libexslt/date.c:1582,1
    - Dst: MAX_DAYINMONTH
      Src: /src/libxslt/libexslt/date.c:1604,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:1571,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:1620,1
    - Dst: MAX_DAYINMONTH
      Src: /src/libxslt/libexslt/date.c:1626,1
    - Dst: MAX_DAYINMONTH
      Src: /src/libxslt/libexslt/date.c:1627,1
    - Dst: MAX_DAYINMONTH
      Src: /src/libxslt/libexslt/date.c:1628,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:1634,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 117
    argCount: 2
    argNames:
    - dt
    - dur
    argTypes:
    - exsltDateValPtr
    - exsltDateDurValPtr
    constantsTouched: []
    func_position:
      end: 1661
      start: 1529
    functionDepth: 0
    functionLinenumber: 1529
    functionLinenumberEnd: 1661
    functionName: _exsltDateAdd
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateFreeDate
    - exsltDateCreateDate
    - fmod
    - MAX_DAYINMONTH
    linkageType: ''
    returnType: exsltDateValPtr
    signature: 'static exsltDateValPtr _exsltDateAdd (exsltDateValPtr dt, exsltDateDurValPtr
      dur) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCurrent
      Src: /src/libxslt/libexslt/date.c:2273,1
    - Dst: _exsltDateDayInWeek
      Src: /src/libxslt/libexslt/date.c:2291,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2281,1
    - Dst: exsltDateParse
      Src: /src/libxslt/libexslt/date.c:2277,1
    - Dst: DAY_IN_YEAR
      Src: /src/libxslt/libexslt/date.c:2286,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2295,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2298
      start: 2266
    functionDepth: 0
    functionLinenumber: 2266
    functionLinenumberEnd: 2298
    functionName: exsltDateWeekInMonth
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateCurrent
    - exsltDateFreeDate
    - exsltDateParse
    - DAY_IN_YEAR
    - _exsltDateDayInWeek
    linkageType: ''
    returnType: double
    signature: 'static double exsltDateWeekInMonth (const xmlChar *dateTime) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCurrent
      Src: /src/libxslt/libexslt/date.c:2638,1
    - Dst: exsltDateParse
      Src: /src/libxslt/libexslt/date.c:2642,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2652,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2646,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2655
      start: 2631
    functionDepth: 0
    functionLinenumber: 2631
    functionLinenumberEnd: 2655
    functionName: exsltDateMinuteInHour
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateCurrent
    - exsltDateFreeDate
    - exsltDateParse
    linkageType: ''
    returnType: double
    signature: 'static double exsltDateMinuteInHour (const xmlChar *dateTime) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3774,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3786,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3792,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3804,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3822,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3762,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3777,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3795,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3813,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3807,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3825,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3768,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3780,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3810,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3816,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3798,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3828,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3834,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3771,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3765,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3783,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3789,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3801,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3819,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/date.c:3831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3837
      start: 3759
    functionDepth: 0
    functionLinenumber: 3759
    functionLinenumberEnd: 3837
    functionName: exsltDateRegister
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xsltRegisterExtModuleFunction
    linkageType: ''
    returnType: void
    signature: 'void exsltDateRegister (void) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PARSE_2_DIGITS
      Src: /src/libxslt/libexslt/date.c:520,1
    - Dst: VALID_TZO
      Src: /src/libxslt/libexslt/date.c:538,1
    - Dst: PARSE_2_DIGITS
      Src: /src/libxslt/libexslt/date.c:530,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libexslt/date.c:550,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 25
    argCount: 2
    argNames:
    - dt
    - str
    argTypes:
    - exsltDateValPtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 556
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 556
    functionName: _exsltDateParseTimeZone
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - PARSE_2_DIGITS
    - xsltGenericDebug
    - VALID_TZO
    linkageType: ''
    returnType: int
    signature: 'static int _exsltDateParseTimeZone (exsltDateValPtr dt, const xmlChar
      **str) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 2
    argNames:
    - yday
    - yr
    argTypes:
    - long
    - long
    constantsTouched: []
    func_position:
      end: 1517
      start: 1503
    functionDepth: 0
    functionLinenumber: 1503
    functionLinenumberEnd: 1517
    functionName: _exsltDateDayInWeek
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: 'static long _exsltDateDayInWeek(long yday, long yr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateMonthInYear
      Src: /src/libxslt/libexslt/date.c:2124,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/date.c:2125,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2128
      start: 2104
    functionDepth: 0
    functionLinenumber: 2104
    functionLinenumberEnd: 2128
    functionName: exsltDateMonthName
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    - exsltDateMonthInYear
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *exsltDateMonthName (const xmlChar *dateTime) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateSeconds
      Src: /src/libxslt/libexslt/date.c:3106,1
    - Dst: xmlXPathCastStringToNumber
      Src: /src/libxslt/libexslt/date.c:3108,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/date.c:3110,1
    - Dst: floor
      Src: /src/libxslt/libexslt/date.c:3113,1
    - Dst: exsltDateCreateDuration
      Src: /src/libxslt/libexslt/date.c:3117,1
    - Dst: exsltDateFormatDuration
      Src: /src/libxslt/libexslt/date.c:3124,1
    - Dst: exsltDateFreeDuration
      Src: /src/libxslt/libexslt/date.c:3125,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - number
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3128
      start: 3098
    functionDepth: 0
    functionLinenumber: 3098
    functionLinenumberEnd: 3128
    functionName: exsltDateDuration
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlXPathCastStringToNumber
    - exsltDateFreeDuration
    - floor
    - exsltDateFormatDuration
    - xmlXPathIsNaN
    - exsltDateCreateDuration
    - exsltDateSeconds
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *exsltDateDuration (const xmlChar *number) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCurrent
      Src: /src/libxslt/libexslt/date.c:2207,1
    - Dst: exsltDateParse
      Src: /src/libxslt/libexslt/date.c:2211,1
    - Dst: DAY_IN_YEAR
      Src: /src/libxslt/libexslt/date.c:2220,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2215,1
    - Dst: _exsltDateDayInWeek
      Src: /src/libxslt/libexslt/date.c:2226,1
    - Dst: DAY_IN_YEAR
      Src: /src/libxslt/libexslt/date.c:2233,1
    - Dst: DAY_IN_YEAR
      Src: /src/libxslt/libexslt/date.c:2234,1
    - Dst: DAY_IN_YEAR
      Src: /src/libxslt/libexslt/date.c:2235,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2240,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2243
      start: 2200
    functionDepth: 0
    functionLinenumber: 2200
    functionLinenumberEnd: 2243
    functionName: exsltDateWeekInYear
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateCurrent
    - exsltDateFreeDate
    - exsltDateParse
    - DAY_IN_YEAR
    - _exsltDateDayInWeek
    linkageType: ''
    returnType: double
    signature: 'static double exsltDateWeekInYear (const xmlChar *dateTime) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/date.c:3731,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/date.c:3736,1
    - Dst: xmlXPathSetTypeError
      Src: /src/libxslt/libexslt/date.c:3738,1
    - Dst: exsltDateDuration
      Src: /src/libxslt/libexslt/date.c:3743,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/date.c:3737,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3746,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/date.c:3749,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/date.c:3751,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 3752
      start: 3724
    functionDepth: 0
    functionLinenumber: 3724
    functionLinenumberEnd: 3752
    functionName: exsltDateDurationFunction
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathCheckError
    - xmlXPathReturnEmptyString
    - xmlXPathPopString
    - xmlXPathSetArityError
    - xmlXPathReturnString
    - xmlXPathSetTypeError
    - exsltDateDuration
    linkageType: ''
    returnType: void
    signature: 'static void exsltDateDurationFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3940,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3944,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxslt/libexslt/date.c:3849,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3864,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3856,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3868,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3876,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3884,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3896,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3904,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3912,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3892,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3932,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3948,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3936,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3924,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3860,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3852,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3872,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3880,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3888,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3920,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3900,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3908,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3916,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/date.c:3928,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 81
    argCount: 2
    argNames:
    - ctxt
    - prefix
    argTypes:
    - xmlXPathContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3955
      start: 3844
    functionDepth: 0
    functionLinenumber: 3844
    functionLinenumberEnd: 3955
    functionName: exsltDateXpathCtxtRegister
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlXPathRegisterFuncNS
    - xmlXPathRegisterNs
    linkageType: ''
    returnType: int
    signature: 'int exsltDateXpathCtxtRegister (xmlXPathContextPtr ctxt, const xmlChar
      *prefix) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - cur
    - end
    - num
    argTypes:
    - xmlChar**
    - xmlChar*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: exsltFormat2Digits
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void exsltFormat2Digits(xmlChar **cur, xmlChar *end, unsigned
      int num) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: exsltFormatGYear
      Src: /src/libxslt/libexslt/date.c:416,1
    - Dst: exsltFormat2Digits
      Src: /src/libxslt/libexslt/date.c:422,1
    - Dst: exsltFormat2Digits
      Src: /src/libxslt/libexslt/date.c:419,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - cur
    - end
    - dt
    argTypes:
    - xmlChar**
    - xmlChar*
    - exsltDateValPtr
    constantsTouched: []
    func_position:
      end: 423
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 423
    functionName: exsltFormatYearMonthDay
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltFormatGYear
    - exsltFormat2Digits
    linkageType: ''
    returnType: void
    signature: 'static void exsltFormatYearMonthDay(xmlChar **cur, xmlChar *end, const
      exsltDateValPtr dt) '
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCreateDuration
      Src: /src/libxslt/libexslt/date.c:973,1
    - Dst: exsltDateFreeDuration
      Src: /src/libxslt/libexslt/date.c:1105,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libexslt/date.c:1097,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 104
    argCount: 1
    argNames:
    - duration
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1107
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 1107
    functionName: exsltDateParseDuration
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - exsltDateCreateDuration
    - exsltDateFreeDuration
    linkageType: ''
    returnType: exsltDateDurValPtr
    signature: 'static exsltDateDurValPtr exsltDateParseDuration (const xmlChar *duration) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxslt/libexslt/date.c:1165,1
    - Dst: exsltFormatLong
      Src: /src/libxslt/libexslt/date.c:1193,1
    - Dst: floor
      Src: /src/libxslt/libexslt/date.c:1210,1
    - Dst: exsltFormatLong
      Src: /src/libxslt/libexslt/date.c:1199,1
    - Dst: exsltFormatLong
      Src: /src/libxslt/libexslt/date.c:1205,1
    - Dst: floor
      Src: /src/libxslt/libexslt/date.c:1213,1
    - Dst: exsltFormatLong
      Src: /src/libxslt/libexslt/date.c:1227,1
    - Dst: exsltFormatLong
      Src: /src/libxslt/libexslt/date.c:1236,1
    - Dst: exsltFormatLong
      Src: /src/libxslt/libexslt/date.c:1242,1
    - Dst: exsltFormatNanoseconds
      Src: /src/libxslt/libexslt/date.c:1243,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libexslt/date.c:1251,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 92
    argCount: 1
    argNames:
    - dur
    argTypes:
    - exsltDateDurValPtr
    constantsTouched: []
    func_position:
      end: 1252
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1252
    functionName: exsltDateFormatDuration
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - floor
    - exsltFormatLong
    - exsltFormatNanoseconds
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *exsltDateFormatDuration (const exsltDateDurValPtr
      dur) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 3
    argNames:
    - ret
    - x
    - y
    argTypes:
    - exsltDateDurValPtr
    - exsltDateDurValPtr
    - exsltDateDurValPtr
    constantsTouched: []
    func_position:
      end: 1790
      start: 1746
    functionDepth: 0
    functionLinenumber: 1746
    functionLinenumberEnd: 1790
    functionName: _exsltDateAddDurCalc
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "static int _exsltDateAddDurCalc (exsltDateDurValPtr ret, exsltDateDurValPtr
      x,\t\t exsltDateDurValPtr y) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCreateDuration
      Src: /src/libxslt/libexslt/date.c:1809,1
    - Dst: _exsltDateAddDurCalc
      Src: /src/libxslt/libexslt/date.c:1813,1
    - Dst: exsltDateFreeDuration
      Src: /src/libxslt/libexslt/date.c:1816,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - exsltDateDurValPtr
    - exsltDateDurValPtr
    constantsTouched: []
    func_position:
      end: 1818
      start: 1801
    functionDepth: 0
    functionLinenumber: 1801
    functionLinenumberEnd: 1818
    functionName: _exsltDateAddDuration
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateFreeDuration
    - _exsltDateAddDurCalc
    - exsltDateCreateDuration
    linkageType: ''
    returnType: exsltDateDurValPtr
    signature: 'static exsltDateDurValPtr _exsltDateAddDuration (exsltDateDurValPtr
      x, exsltDateDurValPtr y) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCurrent
      Src: /src/libxslt/libexslt/date.c:1872,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:1886,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:1880,1
    - Dst: exsltDateParse
      Src: /src/libxslt/libexslt/date.c:1876,1
    - Dst: exsltDateFormatDate
      Src: /src/libxslt/libexslt/date.c:1885,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1889
      start: 1865
    functionDepth: 0
    functionLinenumber: 1865
    functionLinenumberEnd: 1889
    functionName: exsltDateDate
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateFormatDate
    - exsltDateCurrent
    - exsltDateFreeDate
    - exsltDateParse
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *exsltDateDate (const xmlChar *dateTime) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCurrent
      Src: /src/libxslt/libexslt/date.c:1961,1
    - Dst: exsltDateParse
      Src: /src/libxslt/libexslt/date.c:1965,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:1978,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:1970,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1981
      start: 1953
    functionDepth: 0
    functionLinenumber: 1953
    functionLinenumberEnd: 1981
    functionName: exsltDateYear
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateCurrent
    - exsltDateFreeDate
    - exsltDateParse
    linkageType: ''
    returnType: double
    signature: 'static double exsltDateYear (const xmlChar *dateTime) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libexslt/date.c:604,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/date.c:606,1
    - Dst: memset
      Src: /src/libxslt/libexslt/date.c:610,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - exsltDateType
    constantsTouched: []
    func_position:
      end: 619
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 619
    functionName: exsltDateCreateDate
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - memset
    - xsltGenericError
    - xmlMalloc
    linkageType: ''
    returnType: exsltDateValPtr
    signature: 'static exsltDateValPtr exsltDateCreateDate (exsltDateType type) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 3
    argNames:
    - cur
    - end
    - num
    argTypes:
    - xmlChar**
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1262
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1262
    functionName: exsltFormatTwoDigits
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void exsltFormatTwoDigits(xmlChar **cur, xmlChar *end, int
      num) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/date.c:3485,1
    - Dst: xmlXPathSetTypeError
      Src: /src/libxslt/libexslt/date.c:3492,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/date.c:3491,1
    - Dst: exsltDateDayName
      Src: /src/libxslt/libexslt/date.c:3497,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/date.c:3490,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3500,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/date.c:3503,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/date.c:3505,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libexslt/date.c:3505,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 3506
      start: 3478
    functionDepth: 0
    functionLinenumber: 3478
    functionLinenumberEnd: 3506
    functionName: exsltDateDayNameFunction
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlFree
    - exsltDateDayName
    - xmlXPathCheckError
    - xmlXPathReturnEmptyString
    - xmlStrdup
    - xmlXPathSetArityError
    - xmlXPathReturnString
    - xmlXPathSetTypeError
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltDateDayNameFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PARSE_2_DIGITS
      Src: /src/libxslt/libexslt/date.c:390,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libexslt/date.c:397,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - dt
    - str
    argTypes:
    - exsltDateValPtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 402
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 402
    functionName: _exsltDateParseGDay
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - PARSE_2_DIGITS
    - xsltGenericDebug
    linkageType: ''
    returnType: int
    signature: 'static int _exsltDateParseGDay (exsltDateValPtr dt, const xmlChar
      **str) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: exsltFormat2Digits
      Src: /src/libxslt/libexslt/date.c:578,1
    - Dst: exsltFormat2Digits
      Src: /src/libxslt/libexslt/date.c:581,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - cur
    - end
    - tzo
    argTypes:
    - xmlChar**
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 583
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 583
    functionName: exsltFormatTimeZone
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltFormat2Digits
    linkageType: ''
    returnType: void
    signature: 'static void exsltFormatTimeZone(xmlChar **cur, xmlChar *end, int tzo) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_TYPE_IF_VALID
      Src: /src/libxslt/libexslt/date.c:881,1
    - Dst: _exsltDateParseGYear
      Src: /src/libxslt/libexslt/date.c:888,1
    - Dst: _exsltDateParseGDay
      Src: /src/libxslt/libexslt/date.c:910,1
    - Dst: VALID_DATE
      Src: /src/libxslt/libexslt/date.c:911,1
    - Dst: VALID_DATETIME
      Src: /src/libxslt/libexslt/date.c:927,1
    - Dst: RETURN_TYPE_IF_VALID
      Src: /src/libxslt/libexslt/date.c:840,1
    - Dst: RETURN_TYPE_IF_VALID
      Src: /src/libxslt/libexslt/date.c:859,1
    - Dst: _exsltDateParseGMonth
      Src: /src/libxslt/libexslt/date.c:848,1
    - Dst: _exsltDateParseGDay
      Src: /src/libxslt/libexslt/date.c:864,1
    - Dst: RETURN_TYPE_IF_VALID
      Src: /src/libxslt/libexslt/date.c:868,1
    - Dst: _exsltDateParseTime
      Src: /src/libxslt/libexslt/date.c:878,1
    - Dst: RETURN_TYPE_IF_VALID
      Src: /src/libxslt/libexslt/date.c:904,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:936,1
    - Dst: exsltDateCreateDate
      Src: /src/libxslt/libexslt/date.c:822,1
    - Dst: _exsltDateParseGDay
      Src: /src/libxslt/libexslt/date.c:836,1
    - Dst: _exsltDateParseGMonth
      Src: /src/libxslt/libexslt/date.c:899,1
    - Dst: _exsltDateParseTime
      Src: /src/libxslt/libexslt/date.c:922,1
    - Dst: _exsltDateParseTimeZone
      Src: /src/libxslt/libexslt/date.c:926,1
    - Dst: RETURN_TYPE_IF_VALID
      Src: /src/libxslt/libexslt/date.c:893,1
    - Dst: RETURN_TYPE_IF_VALID
      Src: /src/libxslt/libexslt/date.c:915,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 74
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 938
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 938
    functionName: exsltDateParse
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - _exsltDateParseGDay
    - exsltDateCreateDate
    - _exsltDateParseTimeZone
    - exsltDateFreeDate
    - _exsltDateParseTime
    - _exsltDateParseGMonth
    - RETURN_TYPE_IF_VALID
    - VALID_DATE
    - VALID_DATETIME
    - _exsltDateParseGYear
    linkageType: ''
    returnType: exsltDateValPtr
    signature: 'static exsltDateValPtr exsltDateParse (const xmlChar *dateTime) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VALID_TIME
      Src: /src/libxslt/libexslt/date.c:1354,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libexslt/date.c:1363,1
    - Dst: exsltFormatTime
      Src: /src/libxslt/libexslt/date.c:1357,1
    - Dst: exsltFormatTimeZone
      Src: /src/libxslt/libexslt/date.c:1359,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - dt
    argTypes:
    - exsltDateValPtr
    constantsTouched: []
    func_position:
      end: 1364
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1364
    functionName: exsltDateFormatTime
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - VALID_TIME
    - exsltFormatTimeZone
    - xmlStrdup
    - exsltFormatTime
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *exsltDateFormatTime (const exsltDateValPtr dt) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _exsltDateTruncateDate
      Src: /src/libxslt/libexslt/date.c:1693,1
    - Dst: exsltDateCreateDuration
      Src: /src/libxslt/libexslt/date.c:1699,1
    - Dst: _exsltDateTruncateDate
      Src: /src/libxslt/libexslt/date.c:1695,1
    - Dst: exsltDateFreeDuration
      Src: /src/libxslt/libexslt/date.c:1708,1
    - Dst: exsltDateFreeDuration
      Src: /src/libxslt/libexslt/date.c:1718,1
    - Dst: TIME_TO_NUMBER
      Src: /src/libxslt/libexslt/date.c:1722,1
    - Dst: TIME_TO_NUMBER
      Src: /src/libxslt/libexslt/date.c:1722,1
    - Dst: floor
      Src: /src/libxslt/libexslt/date.c:1724,1
    - Dst: _exsltDateCastYMToDays
      Src: /src/libxslt/libexslt/date.c:1727,1
    - Dst: _exsltDateCastYMToDays
      Src: /src/libxslt/libexslt/date.c:1727,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 79
    argCount: 3
    argNames:
    - x
    - y
    - flag
    argTypes:
    - exsltDateValPtr
    - exsltDateValPtr
    - int
    constantsTouched: []
    func_position:
      end: 1733
      start: 1675
    functionDepth: 0
    functionLinenumber: 1675
    functionLinenumberEnd: 1733
    functionName: _exsltDateDifference
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateFreeDuration
    - floor
    - _exsltDateCastYMToDays
    - TIME_TO_NUMBER
    - _exsltDateTruncateDate
    - exsltDateCreateDuration
    linkageType: ''
    returnType: exsltDateDurValPtr
    signature: 'static exsltDateDurValPtr _exsltDateDifference (exsltDateValPtr x,
      exsltDateValPtr y, int flag) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateMonthInYear
      Src: /src/libxslt/libexslt/date.c:2173,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/date.c:2174,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2177
      start: 2153
    functionDepth: 0
    functionLinenumber: 2153
    functionLinenumberEnd: 2177
    functionName: exsltDateMonthAbbreviation
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    - exsltDateMonthInYear
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *exsltDateMonthAbbreviation (const xmlChar *dateTime) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCurrent
      Src: /src/libxslt/libexslt/date.c:2325,1
    - Dst: exsltDateParse
      Src: /src/libxslt/libexslt/date.c:2329,1
    - Dst: DAY_IN_YEAR
      Src: /src/libxslt/libexslt/date.c:2338,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2340,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2333,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2343
      start: 2318
    functionDepth: 0
    functionLinenumber: 2318
    functionLinenumberEnd: 2343
    functionName: exsltDateDayInYear
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateCurrent
    - exsltDateFreeDate
    - exsltDateParse
    - DAY_IN_YEAR
    linkageType: ''
    returnType: double
    signature: 'static double exsltDateDayInYear (const xmlChar *dateTime) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: exsltDateCurrent
      Src: /src/libxslt/libexslt/date.c:2684,1
    - Dst: exsltDateParse
      Src: /src/libxslt/libexslt/date.c:2688,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2698,1
    - Dst: exsltDateFreeDate
      Src: /src/libxslt/libexslt/date.c:2692,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - dateTime
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2701
      start: 2677
    functionDepth: 0
    functionLinenumber: 2677
    functionLinenumberEnd: 2701
    functionName: exsltDateSecondInMinute
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - exsltDateCurrent
    - exsltDateFreeDate
    - exsltDateParse
    linkageType: ''
    returnType: double
    signature: 'static double exsltDateSecondInMinute (const xmlChar *dateTime) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/date.c:3212,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/date.c:3217,1
    - Dst: xmlXPathSetTypeError
      Src: /src/libxslt/libexslt/date.c:3218,1
    - Dst: exsltDateTime
      Src: /src/libxslt/libexslt/date.c:3223,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/date.c:3216,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libexslt/date.c:3226,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/date.c:3229,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/date.c:3231,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3235,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 3236
      start: 3206
    functionDepth: 0
    functionLinenumber: 3206
    functionLinenumberEnd: 3236
    functionName: exsltDateTimeFunction
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlFree
    - exsltDateTime
    - xmlXPathCheckError
    - xmlXPathReturnEmptyString
    - xmlXPathSetArityError
    - xmlXPathReturnString
    - xsltGenericDebug
    - xmlXPathSetTypeError
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltDateTimeFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/date.c:3619,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/date.c:3623,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/date.c:3622,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/date.c:3626,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/date.c:3627,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3628,1
    - Dst: exsltDateAdd
      Src: /src/libxslt/libexslt/date.c:3632,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3634,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/date.c:3635,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/date.c:3638,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/date.c:3640,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 3641
      start: 3613
    functionDepth: 0
    functionLinenumber: 3613
    functionLinenumberEnd: 3641
    functionName: exsltDateAddFunction
    functionSourceFile: /src/libxslt/libexslt/date.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathReturnEmptyString
    - xmlXPathSetArityError
    - xmlXPathReturnString
    - xmlXPathCheckError
    - xmlXPathPopString
    - exsltDateAdd
    linkageType: ''
    returnType: void
    signature: 'static void exsltDateAddFunction (xmlXPathParserContextPtr ctxt, int
      nargs) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libexslt/functions.c:190,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/functions.c:191,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - vdata
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 193
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 193
    functionName: exsltFuncShutdown
    functionSourceFile: /src/libxslt/libexslt/functions.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathFreeObject
    linkageType: ''
    returnType: void
    signature: "static void exsltFuncShutdown (xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED,\t\t
      const xmlChar *URI ATTRIBUTE_UNUSED,\t\t void *vdata) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libexslt/functions.c:106,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:113,1
    - Dst: memcpy
      Src: /src/libxslt/libexslt/functions.c:111,1
    - Dst: exsltFuncNewFunctionData
      Src: /src/libxslt/libexslt/functions.c:108,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxslt/libexslt/functions.c:112,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/functions.c:116,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libexslt/functions.c:118,1
    - Dst: xsltRegisterExtFunction
      Src: /src/libxslt/libexslt/functions.c:121,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 27
    argCount: 5
    argNames:
    - payload
    - vctxt
    - URI
    - name
    - ignored
    argTypes:
    - void*
    - void*
    - xmlChar*
    - xmlChar*
    - ATTRIBUTE_UNUSED*
    constantsTouched: []
    func_position:
      end: 125
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 125
    functionName: exsltFuncRegisterImportFunc
    functionSourceFile: /src/libxslt/libexslt/functions.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashAddEntry2
    - memcpy
    - xmlHashLookup2
    - xsltRegisterExtFunction
    - xsltGenericDebug
    - xsltGenericError
    - exsltFuncNewFunctionData
    linkageType: ''
    returnType: void
    signature: "static void exsltFuncRegisterImportFunc (void *payload, void *vctxt,\t\t\t
      const xmlChar *URI, const xmlChar *name,\t\t\t ATTRIBUTE_UNUSED const xmlChar
      *ignored) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashFree
      Src: /src/libxslt/libexslt/functions.c:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - vdata
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 231
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 231
    functionName: exsltFuncStyleShutdown
    functionSourceFile: /src/libxslt/libexslt/functions.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: "static void exsltFuncStyleShutdown (xsltStylesheetPtr style ATTRIBUTE_UNUSED,\t\t\tconst
      xmlChar *URI ATTRIBUTE_UNUSED,\t\t\tvoid *vdata) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libexslt/functions.c:244,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:246,1
    - Dst: memset
      Src: /src/libxslt/libexslt/functions.c:250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 256
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 256
    functionName: exsltFuncNewFunctionData
    functionSourceFile: /src/libxslt/libexslt/functions.c
    functionUses: []
    functionsReached:
    - memset
    - xsltGenericError
    - xmlMalloc
    linkageType: ''
    returnType: exsltFuncFunctionData*
    signature: 'static exsltFuncFunctionData *exsltFuncNewFunctionData (void) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libexslt/functions.c:306,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/functions.c:346,1
    - Dst: xsltFlagRVTs
      Src: /src/libxslt/libexslt/functions.c:464,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:475,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:311,1
    - Dst: xsltGetExtData
      Src: /src/libxslt/libexslt/functions.c:301,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:322,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:334,1
    - Dst: xmlNewDocNode
      Src: /src/libxslt/libexslt/functions.c:358,1
    - Dst: xsltApplyOneTemplate
      Src: /src/libxslt/libexslt/functions.c:443,1
    - Dst: xsltLocalVariablePop
      Src: /src/libxslt/libexslt/functions.c:414,1
    - Dst: xsltParseStylesheetCallerParam
      Src: /src/libxslt/libexslt/functions.c:412,1
    - Dst: xmlXPathNewCString
      Src: /src/libxslt/libexslt/functions.c:466,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libexslt/functions.c:479,1
    - Dst: xmlFreeNode
      Src: /src/libxslt/libexslt/functions.c:486,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/functions.c:294,1
    - Dst: valuePop
      Src: /src/libxslt/libexslt/functions.c:393,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libexslt/functions.c:417,1
    - Dst: xsltLocalVariablePop
      Src: /src/libxslt/libexslt/functions.c:445,1
    - Dst: xsltFreeStackElemList
      Src: /src/libxslt/libexslt/functions.c:415,1
    - Dst: valuePush
      Src: /src/libxslt/libexslt/functions.c:482,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/functions.c:485,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libexslt/functions.c:388,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libexslt/functions.c:423,1
    - Dst: xsltLocalVariablePush
      Src: /src/libxslt/libexslt/functions.c:426,1
    - Dst: xsltFreeStackElemList
      Src: /src/libxslt/libexslt/functions.c:451,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 105
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 488
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 488
    functionName: exsltFuncFunctionFunction
    functionSourceFile: /src/libxslt/libexslt/functions.c
    functionUses: []
    functionsReached:
    - xsltLocalVariablePop
    - xmlHashLookup2
    - xsltGetExtData
    - xsltFreeStackElemList
    - xsltParseStylesheetCallerParam
    - xsltApplyOneTemplate
    - xmlXPathFreeObject
    - xsltLocalVariablePush
    - xsltGenericError
    - xmlMalloc
    - xmlXPathNewCString
    - xsltFlagRVTs
    - xmlFree
    - valuePop
    - valuePush
    - xmlFreeNode
    - xsltXPathGetTransformContext
    - xmlNewDocNode
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'static void exsltFuncFunctionFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:621,1
    - Dst: xsltInitElemPreComp
      Src: /src/libxslt/libexslt/functions.c:665,1
    - Dst: memset
      Src: /src/libxslt/libexslt/functions.c:663,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libexslt/functions.c:642,1
    - Dst: xmlGetNsList
      Src: /src/libxslt/libexslt/functions.c:680,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libexslt/functions.c:620,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libexslt/functions.c:629,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libexslt/functions.c:641,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:658,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/functions.c:675,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libexslt/functions.c:619,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libexslt/functions.c:602,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libexslt/functions.c:628,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libexslt/functions.c:632,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:633,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libexslt/functions.c:655,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libexslt/functions.c:640,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libexslt/functions.c:672,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libexslt/functions.c:602,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:604,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:643,1
    - Dst: xsltPrintErrorContext
      Src: /src/libxslt/libexslt/functions.c:657,1
    - Dst: xsltXPathCompileFlags
      Src: /src/libxslt/libexslt/functions.c:674,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 3
    argNames:
    - style
    - inst
    - function
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    - xsltTransformFunction
    constantsTouched: []
    func_position:
      end: 688
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 688
    functionName: exsltFuncResultComp
    functionSourceFile: /src/libxslt/libexslt/functions.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltInitElemPreComp
    - xmlGetNsProp
    - xmlGetNsList
    - xsltPrintErrorContext
    - IS_XSLT_NAME
    - memset
    - xsltXPathCompileFlags
    - xmlStrEqual
    - IS_XSLT_ELEM
    - xsltGenericError
    - xmlMalloc
    linkageType: ''
    returnType: xsltElemPreCompPtr
    signature: "static xsltElemPreCompPtr exsltFuncResultComp (xsltStylesheetPtr style,
      xmlNodePtr inst,\t\t xsltTransformFunction function) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/functions.c:512,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libexslt/functions.c:516,1
    - Dst: exsltFuncNewFunctionData
      Src: /src/libxslt/libexslt/functions.c:532,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/functions.c:534,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:562,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/functions.c:565,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/functions.c:506,1
    - Dst: xsltParseTemplateContent
      Src: /src/libxslt/libexslt/functions.c:527,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libexslt/functions.c:538,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libexslt/functions.c:539,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/functions.c:564,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/functions.c:574,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libexslt/functions.c:576,1
    - Dst: xmlSplitQName2
      Src: /src/libxslt/libexslt/functions.c:505,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:509,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:518,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/functions.c:522,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/functions.c:580,1
    - Dst: xmlGetProp
      Src: /src/libxslt/libexslt/functions.c:504,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/functions.c:521,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/functions.c:525,1
    - Dst: xsltStyleStylesheetLevelGetExtData
      Src: /src/libxslt/libexslt/functions.c:555,1
    - Dst: xsltStyleGetExtData
      Src: /src/libxslt/libexslt/functions.c:559,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxslt/libexslt/functions.c:569,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/functions.c:570,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 581
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 581
    functionName: exsltFuncFunctionComp
    functionSourceFile: /src/libxslt/libexslt/functions.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashAddEntry2
    - xsltStyleStylesheetLevelGetExtData
    - xsltGenericDebug
    - IS_XSLT_NAME
    - xmlSplitQName2
    - xsltStyleGetExtData
    - xsltParseTemplateContent
    - IS_XSLT_ELEM
    - xmlGetProp
    - xmlSearchNs
    - xsltGenericError
    - exsltFuncNewFunctionData
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'static void exsltFuncFunctionComp (xsltStylesheetPtr style, xmlNodePtr
      inst) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xsltGetExtData
      Src: /src/libxslt/libexslt/functions.c:703,1
    - Dst: xmlXPathCompiledEval
      Src: /src/libxslt/libexslt/functions.c:747,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:710,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:705,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:733,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:754,1
    - Dst: xsltFlagRVTs
      Src: /src/libxslt/libexslt/functions.c:762,1
    - Dst: xsltCreateRVT
      Src: /src/libxslt/libexslt/functions.c:772,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:774,1
    - Dst: xsltRegisterLocalRVT
      Src: /src/libxslt/libexslt/functions.c:780,1
    - Dst: xmlXPathNewCString
      Src: /src/libxslt/libexslt/functions.c:806,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:791,1
    - Dst: xmlXPathNewValueTree
      Src: /src/libxslt/libexslt/functions.c:789,1
    - Dst: xsltApplyOneTemplate
      Src: /src/libxslt/libexslt/functions.c:785,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 58
    argCount: 4
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - inst
    - ecomp
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 809
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 809
    functionName: exsltFuncResultElem
    functionSourceFile: /src/libxslt/libexslt/functions.c
    functionUses: []
    functionsReached:
    - xsltCreateRVT
    - xsltApplyOneTemplate
    - xsltGetExtData
    - xmlXPathNewValueTree
    - xsltRegisterLocalRVT
    - xmlXPathCompiledEval
    - xsltGenericError
    - xmlXPathNewCString
    - xsltFlagRVTs
    linkageType: ''
    returnType: void
    signature: "static void exsltFuncResultElem (xsltTransformContextPtr ctxt,\t xmlNodePtr
      node ATTRIBUTE_UNUSED, xmlNodePtr inst,\t\t xsltElemPreCompPtr ecomp) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxslt/libexslt/functions.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: exsltFuncStyleInit
    functionSourceFile: /src/libxslt/libexslt/functions.c
    functionUses: []
    functionsReached:
    - xmlHashCreate
    linkageType: ''
    returnType: void*
    signature: "static void *exsltFuncStyleInit (xsltStylesheetPtr style ATTRIBUTE_UNUSED,\t\t
      const xmlChar *URI ATTRIBUTE_UNUSED) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libexslt/functions.c:147,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/functions.c:149,1
    - Dst: xmlHashScanFull
      Src: /src/libxslt/libexslt/functions.c:160,1
    - Dst: memset
      Src: /src/libxslt/libexslt/functions.c:153,1
    - Dst: xsltStyleGetExtData
      Src: /src/libxslt/libexslt/functions.c:158,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libexslt/functions.c:163,1
    - Dst: xsltGetExtInfo
      Src: /src/libxslt/libexslt/functions.c:164,1
    - Dst: xmlHashScanFull
      Src: /src/libxslt/libexslt/functions.c:166,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - ctxt
    - URI
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 171
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 171
    functionName: exsltFuncInit
    functionSourceFile: /src/libxslt/libexslt/functions.c
    functionUses: []
    functionsReached:
    - xsltNextImport
    - memset
    - xmlHashScanFull
    - xsltGenericError
    - xmlMalloc
    - xsltStyleGetExtData
    - xsltGetExtInfo
    linkageType: ''
    returnType: void*
    signature: 'static void *exsltFuncInit (xsltTransformContextPtr ctxt, const xmlChar
      *URI) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/functions.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: exsltFuncFreeDataEntry
    functionSourceFile: /src/libxslt/libexslt/functions.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void exsltFuncFreeDataEntry(void *payload, const xmlChar *name
      ATTRIBUTE_UNUSED) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libexslt/functions.c:272,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/functions.c:275,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/functions.c:274,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - ecomp
    argTypes:
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 276
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 276
    functionName: exsltFreeFuncResultPreComp
    functionSourceFile: /src/libxslt/libexslt/functions.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathFreeCompExpr
    linkageType: ''
    returnType: void
    signature: 'static void exsltFreeFuncResultPreComp (xsltElemPreCompPtr ecomp) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltRegisterExtModuleFull
      Src: /src/libxslt/libexslt/functions.c:818,1
    - Dst: xsltRegisterExtModuleElement
      Src: /src/libxslt/libexslt/functions.c:827,1
    - Dst: xsltRegisterExtModuleTopLevel
      Src: /src/libxslt/libexslt/functions.c:824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 831
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 831
    functionName: exsltFuncRegister
    functionSourceFile: /src/libxslt/libexslt/functions.c
    functionUses: []
    functionsReached:
    - xsltRegisterExtModuleFull
    - xsltRegisterExtModuleTopLevel
    - xsltRegisterExtModuleElement
    linkageType: ''
    returnType: void
    signature: 'void exsltFuncRegister (void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libexslt/functions.c:74,1
    - Dst: xsltRegisterExtFunction
      Src: /src/libxslt/libexslt/functions.c:77,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 10
    argCount: 5
    argNames:
    - payload
    - vctxt
    - URI
    - name
    - ignored
    argTypes:
    - void*
    - void*
    - xmlChar*
    - xmlChar*
    - ATTRIBUTE_UNUSED*
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: exsltFuncRegisterFunc
    functionSourceFile: /src/libxslt/libexslt/functions.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xsltRegisterExtFunction
    linkageType: ''
    returnType: void
    signature: "static void exsltFuncRegisterFunc (void *payload, void *vctxt,\t\t
      const xmlChar *URI, const xmlChar *name,\t\t ATTRIBUTE_UNUSED const xmlChar
      *ignored) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/sets.c:25,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/sets.c:33,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/sets.c:34,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/sets.c:29,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/sets.c:30,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/sets.c:35,1
    - Dst: xmlXPathDifference
      Src: /src/libxslt/libexslt/sets.c:39,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/sets.c:42,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/sets.c:43,1
    - Dst: xmlXPathReturnNodeSet
      Src: /src/libxslt/libexslt/sets.c:45,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 46
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 46
    functionName: exsltSetsDifferenceFunction
    functionSourceFile: /src/libxslt/libexslt/sets.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeNodeSet
    - xmlXPathReturnNodeSet
    - xmlXPathSetArityError
    - xmlXPathDifference
    - xmlXPathCheckError
    - xmlXPathPopNodeSet
    linkageType: ''
    returnType: void
    signature: 'static void exsltSetsDifferenceFunction (xmlXPathParserContextPtr
      ctxt, int nargs) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/sets.c:139,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/sets.c:148,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/sets.c:144,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/sets.c:143,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/sets.c:147,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/sets.c:149,1
    - Dst: xmlXPathHasSameNodes
      Src: /src/libxslt/libexslt/sets.c:153,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/sets.c:155,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/sets.c:156,1
    - Dst: xmlXPathReturnBoolean
      Src: /src/libxslt/libexslt/sets.c:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 159
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 159
    functionName: exsltSetsHasSameNodesFunction
    functionSourceFile: /src/libxslt/libexslt/sets.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeNodeSet
    - xmlXPathReturnBoolean
    - xmlXPathHasSameNodes
    - xmlXPathSetArityError
    - xmlXPathCheckError
    - xmlXPathPopNodeSet
    linkageType: ''
    returnType: void
    signature: "static void exsltSetsHasSameNodesFunction (xmlXPathParserContextPtr
      ctxt,\t\t\t int nargs) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/sets.c:60,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/sets.c:64,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/sets.c:68,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/sets.c:69,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/sets.c:65,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/sets.c:70,1
    - Dst: xmlXPathIntersection
      Src: /src/libxslt/libexslt/sets.c:74,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/sets.c:76,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/sets.c:77,1
    - Dst: xmlXPathReturnNodeSet
      Src: /src/libxslt/libexslt/sets.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 80
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 80
    functionName: exsltSetsIntersectionFunction
    functionSourceFile: /src/libxslt/libexslt/sets.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeNodeSet
    - xmlXPathReturnNodeSet
    - xmlXPathSetArityError
    - xmlXPathIntersection
    - xmlXPathCheckError
    - xmlXPathPopNodeSet
    linkageType: ''
    returnType: void
    signature: 'static void exsltSetsIntersectionFunction (xmlXPathParserContextPtr
      ctxt, int nargs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/sets.c:259,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/sets.c:271,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/sets.c:265,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/sets.c:268,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/sets.c:262,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/sets.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 277
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 277
    functionName: exsltSetsRegister
    functionSourceFile: /src/libxslt/libexslt/sets.c
    functionUses: []
    functionsReached:
    - xsltRegisterExtModuleFunction
    linkageType: ''
    returnType: void
    signature: 'void exsltSetsRegister (void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathRegisterNs
      Src: /src/libxslt/libexslt/sets.c:289,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/sets.c:300,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/sets.c:296,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/sets.c:292,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/sets.c:304,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/sets.c:308,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/sets.c:312,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - ctxt
    - prefix
    argTypes:
    - xmlXPathContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 319
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 319
    functionName: exsltSetsXpathCtxtRegister
    functionSourceFile: /src/libxslt/libexslt/sets.c
    functionUses: []
    functionsReached:
    - xmlXPathRegisterFuncNS
    - xmlXPathRegisterNs
    linkageType: ''
    returnType: int
    signature: 'int exsltSetsXpathCtxtRegister (xmlXPathContextPtr ctxt, const xmlChar
      *prefix) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/sets.c:173,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/sets.c:178,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/sets.c:177,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/sets.c:181,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/sets.c:182,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/sets.c:183,1
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxslt/libexslt/sets.c:190,1
    - Dst: xmlXPathReturnNodeSet
      Src: /src/libxslt/libexslt/sets.c:191,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/sets.c:193,1
    - Dst: xmlXPathNodeLeadingSorted
      Src: /src/libxslt/libexslt/sets.c:198,1
    - Dst: xmlXPathNodeSetItem
      Src: /src/libxslt/libexslt/sets.c:198,1
    - Dst: xmlXPathReturnNodeSet
      Src: /src/libxslt/libexslt/sets.c:203,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/sets.c:201,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/sets.c:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 204
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 204
    functionName: exsltSetsLeadingFunction
    functionSourceFile: /src/libxslt/libexslt/sets.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeNodeSet
    - xmlXPathNodeSetIsEmpty
    - xmlXPathReturnNodeSet
    - xmlXPathNodeLeadingSorted
    - xmlXPathNodeSetItem
    - xmlXPathSetArityError
    - xmlXPathCheckError
    - xmlXPathPopNodeSet
    linkageType: ''
    returnType: void
    signature: 'static void exsltSetsLeadingFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/sets.c:97,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/sets.c:115,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/sets.c:107,1
    - Dst: xmlXPathDistinctSorted
      Src: /src/libxslt/libexslt/sets.c:112,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/sets.c:108,1
    - Dst: xmlXPathWrapNodeSet
      Src: /src/libxslt/libexslt/sets.c:117,1
    - Dst: valuePush
      Src: /src/libxslt/libexslt/sets.c:122,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 123
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 123
    functionName: exsltSetsDistinctFunction
    functionSourceFile: /src/libxslt/libexslt/sets.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeNodeSet
    - xmlXPathDistinctSorted
    - valuePush
    - xmlXPathSetArityError
    - xmlXPathWrapNodeSet
    - xmlXPathCheckError
    - xmlXPathPopNodeSet
    linkageType: ''
    returnType: void
    signature: 'static void exsltSetsDistinctFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/sets.c:218,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/sets.c:223,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/sets.c:226,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/sets.c:227,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/sets.c:222,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/sets.c:228,1
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxslt/libexslt/sets.c:235,1
    - Dst: xmlXPathReturnNodeSet
      Src: /src/libxslt/libexslt/sets.c:236,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/sets.c:238,1
    - Dst: xmlXPathNodeTrailingSorted
      Src: /src/libxslt/libexslt/sets.c:243,1
    - Dst: xmlXPathNodeSetItem
      Src: /src/libxslt/libexslt/sets.c:243,1
    - Dst: xmlXPathReturnNodeSet
      Src: /src/libxslt/libexslt/sets.c:248,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/sets.c:246,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/sets.c:245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 249
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 249
    functionName: exsltSetsTrailingFunction
    functionSourceFile: /src/libxslt/libexslt/sets.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeNodeSet
    - xmlXPathNodeSetIsEmpty
    - xmlXPathReturnNodeSet
    - xmlXPathNodeSetItem
    - xmlXPathSetArityError
    - xmlXPathNodeTrailingSorted
    - xmlXPathCheckError
    - xmlXPathPopNodeSet
    linkageType: ''
    returnType: void
    signature: 'static void exsltSetsTrailingFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/common.c:19,1
    - Dst: xsltCreateRVT
      Src: /src/libxslt/libexslt/common.c:37,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/common.c:27,1
    - Dst: xmlXPathStackIsNodeSet
      Src: /src/libxslt/libexslt/common.c:22,1
    - Dst: xsltFunctionNodeSet
      Src: /src/libxslt/libexslt/common.c:23,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/common.c:39,1
    - Dst: xsltRegisterLocalRVT
      Src: /src/libxslt/libexslt/common.c:44,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/common.c:46,1
    - Dst: xmlNewDocText
      Src: /src/libxslt/libexslt/common.c:48,1
    - Dst: xmlAddChild
      Src: /src/libxslt/libexslt/common.c:49,1
    - Dst: valuePush
      Src: /src/libxslt/libexslt/common.c:59,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/common.c:57,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libexslt/common.c:50,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/common.c:52,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 61
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 61
    functionName: exsltNodeSetFunction
    functionSourceFile: /src/libxslt/libexslt/common.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlAddChild
    - xsltFunctionNodeSet
    - xsltXPathGetTransformContext
    - xmlNewDocText
    - valuePush
    - xmlXPathSetArityError
    - xmlXPathStackIsNodeSet
    - xmlXPathNewNodeSet
    - xsltRegisterLocalRVT
    - xsltTransformError
    - xsltCreateRVT
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltNodeSetFunction (xmlXPathParserContextPtr ctxt, int
      nargs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/common.c:113,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/common.c:116,1
    - Dst: xsltRegisterExtModuleElement
      Src: /src/libxslt/libexslt/common.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: exsltCommonRegister
    functionSourceFile: /src/libxslt/libexslt/common.c
    functionUses: []
    functionsReached:
    - xsltRegisterExtModuleFunction
    - xsltRegisterExtModuleElement
    linkageType: ''
    returnType: void
    signature: 'void exsltCommonRegister (void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/common.c:68,1
    - Dst: valuePop
      Src: /src/libxslt/libexslt/common.c:72,1
    - Dst: xmlXPathNewCString
      Src: /src/libxslt/libexslt/common.c:82,1
    - Dst: xmlXPathNewCString
      Src: /src/libxslt/libexslt/common.c:79,1
    - Dst: xmlXPathNewCString
      Src: /src/libxslt/libexslt/common.c:76,1
    - Dst: xmlXPathNewCString
      Src: /src/libxslt/libexslt/common.c:85,1
    - Dst: xmlXPathNewCString
      Src: /src/libxslt/libexslt/common.c:88,1
    - Dst: xmlXPathNewCString
      Src: /src/libxslt/libexslt/common.c:91,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/common.c:94,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libexslt/common.c:97,1
    - Dst: valuePush
      Src: /src/libxslt/libexslt/common.c:101,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libexslt/common.c:100,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 102
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 102
    functionName: exsltObjectTypeFunction
    functionSourceFile: /src/libxslt/libexslt/common.c
    functionUses: []
    functionsReached:
    - valuePop
    - xmlXPathFreeObject
    - xmlXPathSetArityError
    - valuePush
    - xsltGenericError
    - xmlXPathNewCString
    linkageType: ''
    returnType: void
    signature: 'static void exsltObjectTypeFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlUTF8Strlen
      Src: /src/libxslt/libexslt/strings.c:354,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/strings.c:353,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/strings.c:355,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/strings.c:364,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:368,1
    - Dst: xmlBufferDetach
      Src: /src/libxslt/libexslt/strings.c:406,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:410,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/strings.c:362,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:365,1
    - Dst: xmlXPathSetError
      Src: /src/libxslt/libexslt/strings.c:391,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/strings.c:374,1
    - Dst: xmlBufferAdd
      Src: /src/libxslt/libexslt/strings.c:398,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/strings.c:384,1
    - Dst: xmlBufferFree
      Src: /src/libxslt/libexslt/strings.c:408,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libexslt/strings.c:369,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:392,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libexslt/strings.c:402,1
    - Dst: xmlBufferAdd
      Src: /src/libxslt/libexslt/strings.c:403,1
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/strings.c:348,1
    - Dst: xmlXPathPopNumber
      Src: /src/libxslt/libexslt/strings.c:358,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:385,1
    - Dst: xmlBufferSetAllocationScheme
      Src: /src/libxslt/libexslt/strings.c:395,1
    - Dst: xmlBufferCreateSize
      Src: /src/libxslt/libexslt/strings.c:389,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/strings.c:406,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 411
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 411
    functionName: exsltStrPaddingFunction
    functionSourceFile: /src/libxslt/libexslt/strings.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlUTF8Strlen
    - xmlXPathSetError
    - xmlUTF8Strsize
    - xmlBufferDetach
    - xmlXPathReturnEmptyString
    - xmlXPathIsNaN
    - xmlXPathPopNumber
    - xmlStrlen
    - xmlBufferSetAllocationScheme
    - xmlStrdup
    - xmlXPathSetArityError
    - xmlBufferAdd
    - xmlXPathReturnString
    - xsltGenericError
    - xmlBufferFree
    - xmlXPathPopString
    - xmlBufferCreateSize
    linkageType: ''
    returnType: void
    signature: 'static void exsltStrPaddingFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/strings.c:144,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/strings.c:152,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/strings.c:154,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/strings.c:155,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/strings.c:161,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/strings.c:163,1
    - Dst: xmlAddChild
      Src: /src/libxslt/libexslt/strings.c:183,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxslt/libexslt/strings.c:200,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxslt/libexslt/strings.c:210,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:217,1
    - Dst: xsltCreateRVT
      Src: /src/libxslt/libexslt/strings.c:171,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libexslt/strings.c:174,1
    - Dst: xmlNewDocRawNode
      Src: /src/libxslt/libexslt/strings.c:181,1
    - Dst: valuePush
      Src: /src/libxslt/libexslt/strings.c:221,1
    - Dst: valuePush
      Src: /src/libxslt/libexslt/strings.c:223,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/strings.c:145,1
    - Dst: xsltRegisterLocalRVT
      Src: /src/libxslt/libexslt/strings.c:173,1
    - Dst: xmlStrncasecmp
      Src: /src/libxslt/libexslt/strings.c:189,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxslt/libexslt/strings.c:184,1
    - Dst: xmlAddChild
      Src: /src/libxslt/libexslt/strings.c:199,1
    - Dst: xmlNewDocRawNode
      Src: /src/libxslt/libexslt/strings.c:207,1
    - Dst: xmlAddChild
      Src: /src/libxslt/libexslt/strings.c:209,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libexslt/strings.c:223,1
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/strings.c:139,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libexslt/strings.c:148,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:156,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/strings.c:163,1
    - Dst: xmlNewDocRawNode
      Src: /src/libxslt/libexslt/strings.c:197,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:219,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 88
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 224
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 224
    functionName: exsltStrSplitFunction
    functionSourceFile: /src/libxslt/libexslt/strings.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlAddChild
    - xmlNewDocRawNode
    - xmlStrncasecmp
    - xmlStrlen
    - xsltXPathGetTransformContext
    - xmlStrdup
    - valuePush
    - xmlXPathSetArityError
    - xmlXPathNodeSetAddUnique
    - xmlXPathNewNodeSet
    - xsltRegisterLocalRVT
    - xsltTransformError
    - xsltCreateRVT
    - xmlXPathCheckError
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltStrSplitFunction(xmlXPathParserContextPtr ctxt, int
      nargs) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/strings.c:239,1
    - Dst: xmlStrcmp
      Src: /src/libxslt/libexslt/strings.c:247,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/strings.c:246,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/strings.c:248,1
    - Dst: xmlUTF8Strlen
      Src: /src/libxslt/libexslt/strings.c:247,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:249,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:252,1
    - Dst: xmlXPathPopBoolean
      Src: /src/libxslt/libexslt/strings.c:255,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/strings.c:257,1
    - Dst: xmlUTF8Strlen
      Src: /src/libxslt/libexslt/strings.c:258,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/strings.c:264,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/strings.c:270,1
    - Dst: xmlURIEscapeStr
      Src: /src/libxslt/libexslt/strings.c:269,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:273,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/strings.c:262,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:265,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 274
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 274
    functionName: exsltStrEncodeUriFunction
    functionSourceFile: /src/libxslt/libexslt/strings.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathPopBoolean
    - xmlUTF8Strlen
    - xmlXPathReturnEmptyString
    - xmlXPathSetArityError
    - xmlXPathReturnString
    - xmlURIEscapeStr
    - xsltGenericError
    - xmlStrcmp
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltStrEncodeUriFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/strings.c:505,1
    - Dst: valuePop
      Src: /src/libxslt/libexslt/strings.c:514,1
    - Dst: xmlXPathStackIsNodeSet
      Src: /src/libxslt/libexslt/strings.c:509,1
    - Dst: xmlXPathSetTypeError
      Src: /src/libxslt/libexslt/strings.c:510,1
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxslt/libexslt/strings.c:516,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libexslt/strings.c:517,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/strings.c:518,1
    - Dst: xmlBufferCreate
      Src: /src/libxslt/libexslt/strings.c:522,1
    - Dst: xmlXPathSetError
      Src: /src/libxslt/libexslt/strings.c:524,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libexslt/strings.c:525,1
    - Dst: xmlBufferSetAllocationScheme
      Src: /src/libxslt/libexslt/strings.c:528,1
    - Dst: xmlXPathCastNodeToString
      Src: /src/libxslt/libexslt/strings.c:532,1
    - Dst: xmlBufferCat
      Src: /src/libxslt/libexslt/strings.c:534,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libexslt/strings.c:539,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/strings.c:541,1
    - Dst: xmlBufferFree
      Src: /src/libxslt/libexslt/strings.c:542,1
    - Dst: xmlBufferDetach
      Src: /src/libxslt/libexslt/strings.c:541,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:536,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 543
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 543
    functionName: exsltStrConcatFunction
    functionSourceFile: /src/libxslt/libexslt/strings.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathNodeSetIsEmpty
    - xmlXPathSetError
    - xmlBufferCreate
    - xmlXPathReturnEmptyString
    - xmlBufferDetach
    - valuePop
    - xmlXPathFreeObject
    - xmlXPathSetArityError
    - xmlXPathStackIsNodeSet
    - xmlXPathCastNodeToString
    - xmlXPathReturnString
    - xmlBufferCat
    - xmlBufferSetAllocationScheme
    - xmlXPathSetTypeError
    - xmlBufferFree
    linkageType: ''
    returnType: void
    signature: 'static void exsltStrConcatFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/strings.c:821,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/strings.c:833,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/strings.c:824,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/strings.c:827,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/strings.c:830,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/strings.c:836,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/strings.c:839,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/strings.c:842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 845
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 845
    functionName: exsltStrRegister
    functionSourceFile: /src/libxslt/libexslt/strings.c
    functionUses: []
    functionsReached:
    - xsltRegisterExtModuleFunction
    linkageType: ''
    returnType: void
    signature: 'void exsltStrRegister (void) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/strings.c:36,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/strings.c:42,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:52,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/strings.c:59,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libexslt/strings.c:70,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libexslt/strings.c:82,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:111,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:113,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/strings.c:41,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/strings.c:57,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/strings.c:59,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libexslt/strings.c:67,1
    - Dst: xmlUTF8Charcmp
      Src: /src/libxslt/libexslt/strings.c:83,1
    - Dst: xmlAddChild
      Src: /src/libxslt/libexslt/strings.c:77,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxslt/libexslt/strings.c:78,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxslt/libexslt/strings.c:93,1
    - Dst: xmlNewDocRawNode
      Src: /src/libxslt/libexslt/strings.c:101,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxslt/libexslt/strings.c:104,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libexslt/strings.c:45,1
    - Dst: xsltCreateRVT
      Src: /src/libxslt/libexslt/strings.c:64,1
    - Dst: xmlNewDocRawNode
      Src: /src/libxslt/libexslt/strings.c:75,1
    - Dst: xsltRegisterLocalRVT
      Src: /src/libxslt/libexslt/strings.c:66,1
    - Dst: valuePush
      Src: /src/libxslt/libexslt/strings.c:115,1
    - Dst: valuePush
      Src: /src/libxslt/libexslt/strings.c:117,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/strings.c:50,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/strings.c:51,1
    - Dst: xmlNewDocRawNode
      Src: /src/libxslt/libexslt/strings.c:90,1
    - Dst: xmlAddChild
      Src: /src/libxslt/libexslt/strings.c:92,1
    - Dst: xmlAddChild
      Src: /src/libxslt/libexslt/strings.c:103,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libexslt/strings.c:117,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 92
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 118
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 118
    functionName: exsltStrTokenizeFunction
    functionSourceFile: /src/libxslt/libexslt/strings.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlUTF8Strsize
    - xmlAddChild
    - xmlNewDocRawNode
    - xsltXPathGetTransformContext
    - xmlStrdup
    - valuePush
    - xmlXPathSetArityError
    - xmlXPathNodeSetAddUnique
    - xmlUTF8Charcmp
    - xmlXPathNewNodeSet
    - xsltRegisterLocalRVT
    - xsltTransformError
    - xsltCreateRVT
    - xmlXPathCheckError
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltStrTokenizeFunction(xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlUTF8Strlen
      Src: /src/libxslt/libexslt/strings.c:297,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/strings.c:296,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:299,1
    - Dst: xmlUTF8Strlen
      Src: /src/libxslt/libexslt/strings.c:306,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/strings.c:321,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:330,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/strings.c:327,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/strings.c:312,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/strings.c:305,1
    - Dst: xmlCheckUTF8
      Src: /src/libxslt/libexslt/strings.c:318,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:313,1
    - Dst: xmlStrcmp
      Src: /src/libxslt/libexslt/strings.c:297,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/strings.c:298,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/strings.c:310,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:322,1
    - Dst: xmlURIUnescapeString
      Src: /src/libxslt/libexslt/strings.c:317,1
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/strings.c:289,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:302,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:323,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 331
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 331
    functionName: exsltStrDecodeUriFunction
    functionSourceFile: /src/libxslt/libexslt/strings.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlUTF8Strlen
    - xmlCheckUTF8
    - xmlXPathReturnEmptyString
    - xmlXPathSetArityError
    - xmlXPathReturnString
    - xmlURIUnescapeString
    - xsltGenericError
    - xmlStrcmp
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltStrDecodeUriFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlUTF8Strlen
      Src: /src/libxslt/libexslt/strings.c:438,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/strings.c:436,1
    - Dst: xmlUTF8Strlen
      Src: /src/libxslt/libexslt/strings.c:439,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/strings.c:444,1
    - Dst: xmlStrcat
      Src: /src/libxslt/libexslt/strings.c:463,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:454,1
    - Dst: xmlStrcat
      Src: /src/libxslt/libexslt/strings.c:469,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libexslt/strings.c:471,1
    - Dst: xmlStrcat
      Src: /src/libxslt/libexslt/strings.c:472,1
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/strings.c:426,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/strings.c:442,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:445,1
    - Dst: xmlUTF8Strndup
      Src: /src/libxslt/libexslt/strings.c:462,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libexslt/strings.c:461,1
    - Dst: xmlUTF8Strndup
      Src: /src/libxslt/libexslt/strings.c:459,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/strings.c:482,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:484,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/strings.c:435,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/strings.c:431,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:446,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/strings.c:452,1
    - Dst: xmlUTF8Strndup
      Src: /src/libxslt/libexslt/strings.c:468,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libexslt/strings.c:476,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libexslt/strings.c:477,1
    - Dst: xmlStrcat
      Src: /src/libxslt/libexslt/strings.c:478,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:485,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:447,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:453,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libexslt/strings.c:464,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:486,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 70
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 487
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 487
    functionName: exsltStrAlignFunction
    functionSourceFile: /src/libxslt/libexslt/strings.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlUTF8Strlen
    - xmlUTF8Strsize
    - xmlUTF8Strndup
    - xmlXPathReturnEmptyString
    - xmlStrdup
    - xmlXPathSetArityError
    - xmlXPathReturnString
    - xmlStrEqual
    - xmlStrcat
    - xsltGenericError
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltStrAlignFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/strings.c:557,1
    - Dst: xmlXPathSetError
      Src: /src/libxslt/libexslt/strings.c:564,1
    - Dst: xmlNewTextLen
      Src: /src/libxslt/libexslt/strings.c:569,1
    - Dst: xsltCreateRVT
      Src: /src/libxslt/libexslt/strings.c:562,1
    - Dst: xsltRegisterLocalRVT
      Src: /src/libxslt/libexslt/strings.c:567,1
    - Dst: xmlXPathSetError
      Src: /src/libxslt/libexslt/strings.c:571,1
    - Dst: xmlAddChild
      Src: /src/libxslt/libexslt/strings.c:574,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libexslt/strings.c:576,1
    - Dst: xmlXPathSetError
      Src: /src/libxslt/libexslt/strings.c:578,1
    - Dst: valuePush
      Src: /src/libxslt/libexslt/strings.c:582,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - ctxt
    - str
    - len
    argTypes:
    - xmlXPathParserContextPtr
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 585
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 585
    functionName: exsltStrReturnString
    functionSourceFile: /src/libxslt/libexslt/strings.c
    functionUses: []
    functionsReached:
    - xmlXPathSetError
    - xmlAddChild
    - xsltXPathGetTransformContext
    - valuePush
    - xmlNewTextLen
    - xmlXPathNewNodeSet
    - xsltRegisterLocalRVT
    - xsltCreateRVT
    linkageType: ''
    returnType: int
    signature: 'static int exsltStrReturnString(xmlXPathParserContextPtr ctxt, const
      xmlChar *str, int len) '
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/strings.c:627,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/strings.c:631,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/strings.c:643,1
    - Dst: exsltStrReturnString
      Src: /src/libxslt/libexslt/strings.c:643,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/strings.c:705,1
    - Dst: xmlXPathSetError
      Src: /src/libxslt/libexslt/strings.c:764,1
    - Dst: exsltStrReturnString
      Src: /src/libxslt/libexslt/strings.c:770,1
    - Dst: xmlBufferLength
      Src: /src/libxslt/libexslt/strings.c:770,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:801,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:807,1
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/strings.c:606,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/strings.c:623,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/strings.c:636,1
    - Dst: xmlXPathCastNodeToString
      Src: /src/libxslt/libexslt/strings.c:686,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/strings.c:680,1
    - Dst: xmlXPathCastNodeToString
      Src: /src/libxslt/libexslt/strings.c:673,1
    - Dst: xmlXPathSetError
      Src: /src/libxslt/libexslt/strings.c:740,1
    - Dst: xmlBufferAdd
      Src: /src/libxslt/libexslt/strings.c:752,1
    - Dst: xmlBufferAdd
      Src: /src/libxslt/libexslt/strings.c:763,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:781,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/strings.c:799,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/strings.c:613,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/strings.c:617,1
    - Dst: xmlXPathStackIsNodeSet
      Src: /src/libxslt/libexslt/strings.c:612,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/strings.c:637,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libexslt/strings.c:656,1
    - Dst: xmlBufferCreate
      Src: /src/libxslt/libexslt/strings.c:713,1
    - Dst: xmlBufferSetAllocationScheme
      Src: /src/libxslt/libexslt/strings.c:718,1
    - Dst: xmlBufferAdd
      Src: /src/libxslt/libexslt/strings.c:738,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libexslt/strings.c:746,1
    - Dst: xmlXPathSetError
      Src: /src/libxslt/libexslt/strings.c:754,1
    - Dst: xmlBufferFree
      Src: /src/libxslt/libexslt/strings.c:775,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:795,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/strings.c:615,1
    - Dst: xmlXPathStackIsNodeSet
      Src: /src/libxslt/libexslt/strings.c:622,1
    - Dst: xmlXPathSetError
      Src: /src/libxslt/libexslt/strings.c:658,1
    - Dst: xmlXPathSetError
      Src: /src/libxslt/libexslt/strings.c:715,1
    - Dst: xmlStrncmp
      Src: /src/libxslt/libexslt/strings.c:728,1
    - Dst: xmlBufferAdd
      Src: /src/libxslt/libexslt/strings.c:737,1
    - Dst: xmlBufferAdd
      Src: /src/libxslt/libexslt/strings.c:750,1
    - Dst: xmlBufferContent
      Src: /src/libxslt/libexslt/strings.c:770,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:786,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/strings.c:791,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/strings.c:805,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 172
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 811
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 811
    functionName: exsltStrReplaceFunction
    functionSourceFile: /src/libxslt/libexslt/strings.c
    functionUses: []
    functionsReached:
    - exsltStrReturnString
    - xmlBufferCreate
    - xmlStrlen
    - xmlStrncmp
    - xmlUTF8Strsize
    - xmlBufferLength
    - xmlXPathSetArityError
    - xmlBufferContent
    - xmlMalloc
    - xmlXPathCheckError
    - xmlXPathPopNodeSet
    - xmlXPathPopString
    - xmlFree
    - xmlBufferFree
    - xmlXPathSetError
    - xmlXPathStackIsNodeSet
    - xmlBufferAdd
    - xmlBufferSetAllocationScheme
    - xmlXPathFreeNodeSet
    - xmlXPathCastNodeToString
    linkageType: ''
    returnType: void
    signature: 'static void exsltStrReplaceFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathRegisterNs
      Src: /src/libxslt/libexslt/strings.c:857,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/strings.c:868,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/strings.c:860,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/strings.c:864,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/strings.c:872,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/strings.c:876,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - prefix
    argTypes:
    - xmlXPathContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 883
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 883
    functionName: exsltStrXpathCtxtRegister
    functionSourceFile: /src/libxslt/libexslt/strings.c
    functionUses: []
    functionsReached:
    - xmlXPathRegisterFuncNS
    - xmlXPathRegisterNs
    linkageType: ''
    returnType: int
    signature: 'int exsltStrXpathCtxtRegister (xmlXPathContextPtr ctxt, const xmlChar
      *prefix) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltInitGlobals
      Src: /src/libxslt/libexslt/exslt.c:21,1
    - Dst: exsltCommonRegister
      Src: /src/libxslt/libexslt/exslt.c:22,1
    - Dst: exsltCryptoRegister
      Src: /src/libxslt/libexslt/exslt.c:24,1
    - Dst: exsltMathRegister
      Src: /src/libxslt/libexslt/exslt.c:26,1
    - Dst: exsltSetsRegister
      Src: /src/libxslt/libexslt/exslt.c:27,1
    - Dst: exsltFuncRegister
      Src: /src/libxslt/libexslt/exslt.c:28,1
    - Dst: exsltStrRegister
      Src: /src/libxslt/libexslt/exslt.c:29,1
    - Dst: exsltDateRegister
      Src: /src/libxslt/libexslt/exslt.c:30,1
    - Dst: exsltSaxonRegister
      Src: /src/libxslt/libexslt/exslt.c:31,1
    - Dst: exsltDynRegister
      Src: /src/libxslt/libexslt/exslt.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: exsltRegisterAll
    functionSourceFile: /src/libxslt/libexslt/exslt.c
    functionUses: []
    functionsReached:
    - exsltStrRegister
    - exsltFuncRegister
    - exsltCryptoRegister
    - exsltDateRegister
    - exsltSaxonRegister
    - xsltInitGlobals
    - exsltDynRegister
    - exsltCommonRegister
    - exsltSetsRegister
    - exsltMathRegister
    linkageType: ''
    returnType: void
    signature: 'void exsltRegisterAll (void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCastNodeToNumber
      Src: /src/libxslt/libexslt/math.c:103,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:108,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:104,1
    - Dst: xmlXPathCastNodeToNumber
      Src: /src/libxslt/libexslt/math.c:107,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - ns
    argTypes:
    - xmlNodeSetPtr
    constantsTouched: []
    func_position:
      end: 114
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 114
    functionName: exsltMathMax
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathCastNodeToNumber
    - xmlXPathIsNaN
    linkageType: ''
    returnType: double
    signature: 'static double exsltMathMax (xmlNodeSetPtr ns) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/math.c:480,1
    - Dst: xmlXPathReturnNumber
      Src: /src/libxslt/libexslt/math.c:486,1
    - Dst: exsltMathRandom
      Src: /src/libxslt/libexslt/math.c:484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 487
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 487
    functionName: exsltMathRandomFunction
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - exsltMathRandom
    - xmlXPathSetArityError
    - xmlXPathReturnNumber
    linkageType: ''
    returnType: void
    signature: 'static void exsltMathRandomFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/math.c:520,1
    - Dst: xmlXPathReturnNumber
      Src: /src/libxslt/libexslt/math.c:529,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:524,1
    - Dst: xmlXPathPopNumber
      Src: /src/libxslt/libexslt/math.c:523,1
    - Dst: exsltMathAbs
      Src: /src/libxslt/libexslt/math.c:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 530
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 530
    functionName: exsltMathAbsFunction
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathPopNumber
    - xmlXPathReturnNumber
    - xmlXPathSetArityError
    - exsltMathAbs
    - xmlXPathCheckError
    linkageType: ''
    returnType: void
    signature: 'static void exsltMathAbsFunction (xmlXPathParserContextPtr ctxt, int
      nargs) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:638,1
    - Dst: log
      Src: /src/libxslt/libexslt/math.c:640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 642
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 642
    functionName: exsltMathLog
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    - log
    linkageType: ''
    returnType: double
    signature: 'static double exsltMathLog (double num) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/math.c:656,1
    - Dst: xmlXPathReturnNumber
      Src: /src/libxslt/libexslt/math.c:665,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:660,1
    - Dst: xmlXPathPopNumber
      Src: /src/libxslt/libexslt/math.c:659,1
    - Dst: exsltMathLog
      Src: /src/libxslt/libexslt/math.c:663,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 666
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 666
    functionName: exsltMathLogFunction
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - exsltMathLog
    - xmlXPathPopNumber
    - xmlXPathReturnNumber
    - xmlXPathSetArityError
    - xmlXPathCheckError
    linkageType: ''
    returnType: void
    signature: 'static void exsltMathLogFunction (xmlXPathParserContextPtr ctxt, int
      nargs) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/math.c:699,1
    - Dst: xmlXPathPopNumber
      Src: /src/libxslt/libexslt/math.c:702,1
    - Dst: xmlXPathReturnNumber
      Src: /src/libxslt/libexslt/math.c:708,1
    - Dst: exsltMathSin
      Src: /src/libxslt/libexslt/math.c:706,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:703,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 709
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 709
    functionName: exsltMathSinFunction
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathPopNumber
    - xmlXPathReturnNumber
    - exsltMathSin
    - xmlXPathSetArityError
    - xmlXPathCheckError
    linkageType: ''
    returnType: void
    signature: 'static void exsltMathSinFunction (xmlXPathParserContextPtr ctxt, int
      nargs) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/math.c:742,1
    - Dst: xmlXPathReturnNumber
      Src: /src/libxslt/libexslt/math.c:751,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:746,1
    - Dst: exsltMathCos
      Src: /src/libxslt/libexslt/math.c:749,1
    - Dst: xmlXPathPopNumber
      Src: /src/libxslt/libexslt/math.c:745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 752
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 752
    functionName: exsltMathCosFunction
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathPopNumber
    - xmlXPathReturnNumber
    - exsltMathCos
    - xmlXPathSetArityError
    - xmlXPathCheckError
    linkageType: ''
    returnType: void
    signature: 'static void exsltMathCosFunction (xmlXPathParserContextPtr ctxt, int
      nargs) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/math.c:785,1
    - Dst: xmlXPathReturnNumber
      Src: /src/libxslt/libexslt/math.c:794,1
    - Dst: exsltMathTan
      Src: /src/libxslt/libexslt/math.c:792,1
    - Dst: xmlXPathPopNumber
      Src: /src/libxslt/libexslt/math.c:788,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:789,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 795
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 795
    functionName: exsltMathTanFunction
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - exsltMathTan
    - xmlXPathPopNumber
    - xmlXPathReturnNumber
    - xmlXPathSetArityError
    - xmlXPathCheckError
    linkageType: ''
    returnType: void
    signature: 'static void exsltMathTanFunction (xmlXPathParserContextPtr ctxt, int
      nargs) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/math.c:828,1
    - Dst: xmlXPathPopNumber
      Src: /src/libxslt/libexslt/math.c:831,1
    - Dst: xmlXPathReturnNumber
      Src: /src/libxslt/libexslt/math.c:837,1
    - Dst: exsltMathAsin
      Src: /src/libxslt/libexslt/math.c:835,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:832,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 838
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 838
    functionName: exsltMathAsinFunction
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathPopNumber
    - xmlXPathReturnNumber
    - xmlXPathSetArityError
    - exsltMathAsin
    - xmlXPathCheckError
    linkageType: ''
    returnType: void
    signature: 'static void exsltMathAsinFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/math.c:959,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:968,1
    - Dst: xmlXPathPopNumber
      Src: /src/libxslt/libexslt/math.c:967,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:963,1
    - Dst: xmlXPathPopNumber
      Src: /src/libxslt/libexslt/math.c:962,1
    - Dst: exsltMathAtan2
      Src: /src/libxslt/libexslt/math.c:971,1
    - Dst: xmlXPathReturnNumber
      Src: /src/libxslt/libexslt/math.c:973,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 974
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 974
    functionName: exsltMathAtan2Function
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathPopNumber
    - xmlXPathReturnNumber
    - exsltMathAtan2
    - xmlXPathSetArityError
    - xmlXPathCheckError
    linkageType: ''
    returnType: void
    signature: 'static void exsltMathAtan2Function (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/math.c:291,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:302,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/math.c:301,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/math.c:307,1
    - Dst: exsltMathLowest
      Src: /src/libxslt/libexslt/math.c:305,1
    - Dst: xmlFreeNodeList
      Src: /src/libxslt/libexslt/math.c:309,1
    - Dst: xmlXPathReturnNodeSet
      Src: /src/libxslt/libexslt/math.c:311,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 312
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 312
    functionName: exsltMathLowestFunction
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeNodeSet
    - xmlXPathReturnNodeSet
    - exsltMathLowest
    - xmlXPathSetArityError
    - xmlXPathCheckError
    - xmlXPathPopNodeSet
    - xmlFreeNodeList
    linkageType: ''
    returnType: void
    signature: 'static void exsltMathLowestFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/math.c:608,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:612,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:617,1
    - Dst: xmlXPathPopNumber
      Src: /src/libxslt/libexslt/math.c:611,1
    - Dst: xmlXPathPopNumber
      Src: /src/libxslt/libexslt/math.c:616,1
    - Dst: exsltMathPower
      Src: /src/libxslt/libexslt/math.c:620,1
    - Dst: xmlXPathReturnNumber
      Src: /src/libxslt/libexslt/math.c:622,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 623
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 623
    functionName: exsltMathPowerFunction
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathPopNumber
    - xmlXPathReturnNumber
    - xmlXPathSetArityError
    - xmlXPathCheckError
    - exsltMathPower
    linkageType: ''
    returnType: void
    signature: 'static void exsltMathPowerFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:941,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:941,1
    - Dst: atan2
      Src: /src/libxslt/libexslt/math.c:943,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - y
    - x
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 945
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 945
    functionName: exsltMathAtan2
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    - atan2
    linkageType: ''
    returnType: double
    signature: 'static double exsltMathAtan2 (double y, double x) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/math.c:1105,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/math.c:1109,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/math.c:1097,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/math.c:1117,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/math.c:1125,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/math.c:1133,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/math.c:1165,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/math.c:1145,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/math.c:1137,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/math.c:1153,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxslt/libexslt/math.c:1094,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/math.c:1101,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/math.c:1113,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/math.c:1121,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/math.c:1129,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/math.c:1141,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/math.c:1157,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/math.c:1149,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libexslt/math.c:1161,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 2
    argNames:
    - ctxt
    - prefix
    argTypes:
    - xmlXPathContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1172
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1172
    functionName: exsltMathXpathCtxtRegister
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathRegisterFuncNS
    - xmlXPathRegisterNs
    linkageType: ''
    returnType: int
    signature: 'int exsltMathXpathCtxtRegister (xmlXPathContextPtr ctxt, const xmlChar
      *prefix) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxslt/libexslt/math.c:245,1
    - Dst: xmlXPathCastNodeToNumber
      Src: /src/libxslt/libexslt/math.c:259,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:253,1
    - Dst: xmlXPathCastNodeToNumber
      Src: /src/libxslt/libexslt/math.c:252,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxslt/libexslt/math.c:256,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:260,1
    - Dst: xmlXPathEmptyNodeSet
      Src: /src/libxslt/libexslt/math.c:261,1
    - Dst: xmlXPathEmptyNodeSet
      Src: /src/libxslt/libexslt/math.c:268,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxslt/libexslt/math.c:269,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxslt/libexslt/math.c:272,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - ns
    argTypes:
    - xmlNodeSetPtr
    constantsTouched: []
    func_position:
      end: 275
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 275
    functionName: exsltMathLowest
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetCreate
    - xmlXPathIsNaN
    - xmlXPathNodeSetAddUnique
    - xmlXPathCastNodeToNumber
    - xmlXPathEmptyNodeSet
    linkageType: ''
    returnType: xmlNodeSetPtr
    signature: 'static xmlNodeSetPtr exsltMathLowest (xmlNodeSetPtr ns) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:590,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:590,1
    - Dst: pow
      Src: /src/libxslt/libexslt/math.c:592,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - base
    - power
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 594
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 594
    functionName: exsltMathPower
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    - pow
    linkageType: ''
    returnType: double
    signature: 'static double exsltMathPower (double base, double power) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/math.c:914,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:918,1
    - Dst: xmlXPathPopNumber
      Src: /src/libxslt/libexslt/math.c:917,1
    - Dst: exsltMathAtan
      Src: /src/libxslt/libexslt/math.c:921,1
    - Dst: xmlXPathReturnNumber
      Src: /src/libxslt/libexslt/math.c:923,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 924
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 924
    functionName: exsltMathAtanFunction
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - exsltMathAtan
    - xmlXPathPopNumber
    - xmlXPathReturnNumber
    - xmlXPathSetArityError
    - xmlXPathCheckError
    linkageType: ''
    returnType: void
    signature: 'static void exsltMathAtanFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/math.c:563,1
    - Dst: xmlXPathPopNumber
      Src: /src/libxslt/libexslt/math.c:566,1
    - Dst: exsltMathSqrt
      Src: /src/libxslt/libexslt/math.c:570,1
    - Dst: xmlXPathReturnNumber
      Src: /src/libxslt/libexslt/math.c:572,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 573
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 573
    functionName: exsltMathSqrtFunction
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathPopNumber
    - xmlXPathReturnNumber
    - exsltMathSqrt
    - xmlXPathSetArityError
    - xmlXPathCheckError
    linkageType: ''
    returnType: void
    signature: 'static void exsltMathSqrtFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/math.c:61,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/math.c:72,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:73,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/math.c:78,1
    - Dst: exsltMathMin
      Src: /src/libxslt/libexslt/math.c:76,1
    - Dst: xmlFreeNodeList
      Src: /src/libxslt/libexslt/math.c:80,1
    - Dst: xmlXPathReturnNumber
      Src: /src/libxslt/libexslt/math.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 83
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 83
    functionName: exsltMathMinFunction
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeNodeSet
    - exsltMathMin
    - xmlXPathReturnNumber
    - xsltGenericError
    - xmlXPathCheckError
    - xmlXPathPopNodeSet
    - xmlFreeNodeList
    linkageType: ''
    returnType: void
    signature: 'static void exsltMathMinFunction (xmlXPathParserContextPtr ctxt, int
      nargs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/math.c:210,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:221,1
    - Dst: exsltMathHighest
      Src: /src/libxslt/libexslt/math.c:224,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/math.c:220,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/math.c:226,1
    - Dst: xmlFreeNodeList
      Src: /src/libxslt/libexslt/math.c:228,1
    - Dst: xmlXPathReturnNodeSet
      Src: /src/libxslt/libexslt/math.c:230,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 231
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 231
    functionName: exsltMathHighestFunction
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeNodeSet
    - xmlXPathReturnNodeSet
    - exsltMathHighest
    - xmlXPathSetArityError
    - xmlXPathCheckError
    - xmlXPathPopNodeSet
    - xmlFreeNodeList
    linkageType: ''
    returnType: void
    signature: 'static void exsltMathHighestFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/math.c:1028,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/math.c:1037,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/math.c:1034,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/math.c:1031,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/math.c:1040,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/math.c:1043,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/math.c:1046,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/math.c:1049,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/math.c:1052,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/math.c:1055,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/math.c:1061,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/math.c:1064,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/math.c:1067,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/math.c:1070,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/math.c:1073,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/math.c:1076,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/math.c:1079,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/math.c:1058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1082
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1082
    functionName: exsltMathRegister
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xsltRegisterExtModuleFunction
    linkageType: ''
    returnType: void
    signature: 'void exsltMathRegister (void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCastNodeToNumber
      Src: /src/libxslt/libexslt/math.c:34,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:39,1
    - Dst: xmlXPathCastNodeToNumber
      Src: /src/libxslt/libexslt/math.c:38,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:35,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - ns
    argTypes:
    - xmlNodeSetPtr
    constantsTouched: []
    func_position:
      end: 45
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 45
    functionName: exsltMathMin
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathCastNodeToNumber
    - xmlXPathIsNaN
    linkageType: ''
    returnType: double
    signature: 'static double exsltMathMin (xmlNodeSetPtr ns) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxslt/libexslt/math.c:165,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:173,1
    - Dst: xmlXPathCastNodeToNumber
      Src: /src/libxslt/libexslt/math.c:179,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxslt/libexslt/math.c:176,1
    - Dst: xmlXPathCastNodeToNumber
      Src: /src/libxslt/libexslt/math.c:172,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:180,1
    - Dst: xmlXPathEmptyNodeSet
      Src: /src/libxslt/libexslt/math.c:181,1
    - Dst: xmlXPathEmptyNodeSet
      Src: /src/libxslt/libexslt/math.c:188,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxslt/libexslt/math.c:189,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxslt/libexslt/math.c:192,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - ns
    argTypes:
    - xmlNodeSetPtr
    constantsTouched: []
    func_position:
      end: 195
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 195
    functionName: exsltMathHighest
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetCreate
    - xmlXPathIsNaN
    - xmlXPathNodeSetAddUnique
    - xmlXPathCastNodeToNumber
    - xmlXPathEmptyNodeSet
    linkageType: ''
    returnType: xmlNodeSetPtr
    signature: 'static xmlNodeSetPtr exsltMathHighest (xmlNodeSetPtr ns) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrsub
      Src: /src/libxslt/libexslt/math.c:359,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libexslt/math.c:361,1
    - Dst: xmlStrsub
      Src: /src/libxslt/libexslt/math.c:367,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libexslt/math.c:369,1
    - Dst: xmlStrsub
      Src: /src/libxslt/libexslt/math.c:375,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libexslt/math.c:385,1
    - Dst: xmlStrsub
      Src: /src/libxslt/libexslt/math.c:391,1
    - Dst: xmlStrsub
      Src: /src/libxslt/libexslt/math.c:383,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libexslt/math.c:377,1
    - Dst: xmlXPathCastStringToNumber
      Src: /src/libxslt/libexslt/math.c:414,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/math.c:354,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/math.c:394,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/math.c:402,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libexslt/math.c:353,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libexslt/math.c:393,1
    - Dst: xmlStrsub
      Src: /src/libxslt/libexslt/math.c:399,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libexslt/math.c:401,1
    - Dst: xmlStrsub
      Src: /src/libxslt/libexslt/math.c:407,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:349,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/math.c:362,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/math.c:370,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/math.c:378,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/math.c:386,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/math.c:415,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 2
    argNames:
    - name
    - precision
    argTypes:
    - xmlChar*
    - double
    constantsTouched: []
    func_position:
      end: 417
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 417
    functionName: exsltMathConstant
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathCastStringToNumber
    - xmlXPathIsNaN
    - xmlStrlen
    - xmlStrsub
    - xmlStrEqual
    linkageType: ''
    returnType: double
    signature: 'static double exsltMathConstant (xmlChar *name, double precision) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/math.c:1008,1
    - Dst: xmlXPathReturnNumber
      Src: /src/libxslt/libexslt/math.c:1017,1
    - Dst: exsltMathExp
      Src: /src/libxslt/libexslt/math.c:1015,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:1012,1
    - Dst: xmlXPathPopNumber
      Src: /src/libxslt/libexslt/math.c:1011,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 1018
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1018
    functionName: exsltMathExpFunction
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - exsltMathExp
    - xmlXPathPopNumber
    - xmlXPathReturnNumber
    - xmlXPathSetArityError
    - xmlXPathCheckError
    linkageType: ''
    returnType: void
    signature: 'static void exsltMathExpFunction (xmlXPathParserContextPtr ctxt, int
      nargs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/libxslt/libexslt/math.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 466
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 466
    functionName: exsltMathRandom
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - rand
    linkageType: ''
    returnType: double
    signature: 'static double exsltMathRandom (void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:896,1
    - Dst: atan
      Src: /src/libxslt/libexslt/math.c:898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 900
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 900
    functionName: exsltMathAtan
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    - atan
    linkageType: ''
    returnType: double
    signature: 'static double exsltMathAtan (double num) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:990,1
    - Dst: exp
      Src: /src/libxslt/libexslt/math.c:992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 994
      start: 986
    functionDepth: 0
    functionLinenumber: 986
    functionLinenumberEnd: 994
    functionName: exsltMathExp
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    - exp
    linkageType: ''
    returnType: double
    signature: 'static double exsltMathExp (double num) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/math.c:130,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/math.c:140,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/math.c:146,1
    - Dst: exsltMathMax
      Src: /src/libxslt/libexslt/math.c:144,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:141,1
    - Dst: xmlFreeNodeList
      Src: /src/libxslt/libexslt/math.c:149,1
    - Dst: xmlXPathReturnNumber
      Src: /src/libxslt/libexslt/math.c:150,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 151
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 151
    functionName: exsltMathMaxFunction
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeNodeSet
    - xmlXPathReturnNumber
    - xmlXPathSetArityError
    - exsltMathMax
    - xmlXPathCheckError
    - xmlXPathPopNodeSet
    - xmlFreeNodeList
    linkageType: ''
    returnType: void
    signature: 'static void exsltMathMaxFunction (xmlXPathParserContextPtr ctxt, int
      nargs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/math.c:432,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:436,1
    - Dst: xmlXPathPopNumber
      Src: /src/libxslt/libexslt/math.c:435,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:440,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/math.c:439,1
    - Dst: exsltMathConstant
      Src: /src/libxslt/libexslt/math.c:443,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/math.c:445,1
    - Dst: xmlXPathReturnNumber
      Src: /src/libxslt/libexslt/math.c:447,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 448
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 448
    functionName: exsltMathConstantFunction
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathPopNumber
    - xmlXPathReturnNumber
    - exsltMathConstant
    - xmlXPathSetArityError
    - xmlXPathCheckError
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltMathConstantFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:502,1
    - Dst: fabs
      Src: /src/libxslt/libexslt/math.c:504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 506
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 506
    functionName: exsltMathAbs
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    - fabs
    linkageType: ''
    returnType: double
    signature: 'static double exsltMathAbs (double num) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:545,1
    - Dst: sqrt
      Src: /src/libxslt/libexslt/math.c:547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 549
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 549
    functionName: exsltMathSqrt
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    - sqrt
    linkageType: ''
    returnType: double
    signature: 'static double exsltMathSqrt (double num) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:681,1
    - Dst: sin
      Src: /src/libxslt/libexslt/math.c:683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 685
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 685
    functionName: exsltMathSin
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    - sin
    linkageType: ''
    returnType: double
    signature: 'static double exsltMathSin (double num) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:724,1
    - Dst: cos
      Src: /src/libxslt/libexslt/math.c:726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 728
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 728
    functionName: exsltMathCos
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    - cos
    linkageType: ''
    returnType: double
    signature: 'static double exsltMathCos (double num) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:767,1
    - Dst: tan
      Src: /src/libxslt/libexslt/math.c:769,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 771
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 771
    functionName: exsltMathTan
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    - tan
    linkageType: ''
    returnType: double
    signature: 'static double exsltMathTan (double num) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:810,1
    - Dst: asin
      Src: /src/libxslt/libexslt/math.c:812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 814
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 814
    functionName: exsltMathAsin
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    - asin
    linkageType: ''
    returnType: double
    signature: 'static double exsltMathAsin (double num) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libexslt/math.c:853,1
    - Dst: acos
      Src: /src/libxslt/libexslt/math.c:855,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 857
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 857
    functionName: exsltMathAcos
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    - acos
    linkageType: ''
    returnType: double
    signature: 'static double exsltMathAcos (double num) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/math.c:871,1
    - Dst: exsltMathAcos
      Src: /src/libxslt/libexslt/math.c:878,1
    - Dst: xmlXPathReturnNumber
      Src: /src/libxslt/libexslt/math.c:880,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/math.c:875,1
    - Dst: xmlXPathPopNumber
      Src: /src/libxslt/libexslt/math.c:874,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 881
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 881
    functionName: exsltMathAcosFunction
    functionSourceFile: /src/libxslt/libexslt/math.c
    functionUses: []
    functionsReached:
    - xmlXPathPopNumber
    - xmlXPathReturnNumber
    - exsltMathAcos
    - xmlXPathSetArityError
    - xmlXPathCheckError
    linkageType: ''
    returnType: void
    signature: 'static void exsltMathAcosFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsltPrintErrorContext
      Src: /src/libxslt/libexslt/dynamic.c:53,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/dynamic.c:59,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/dynamic.c:61,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/dynamic.c:54,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/dynamic.c:53,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/dynamic.c:62,1
    - Dst: valuePush
      Src: /src/libxslt/libexslt/dynamic.c:63,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libexslt/dynamic.c:63,1
    - Dst: xmlXPathEval
      Src: /src/libxslt/libexslt/dynamic.c:72,1
    - Dst: valuePush
      Src: /src/libxslt/libexslt/dynamic.c:77,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/dynamic.c:79,1
    - Dst: valuePush
      Src: /src/libxslt/libexslt/dynamic.c:81,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/dynamic.c:83,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libexslt/dynamic.c:81,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 85
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 85
    functionName: exsltDynEvaluateFunction
    functionSourceFile: /src/libxslt/libexslt/dynamic.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltPrintErrorContext
    - xmlStrlen
    - xsltXPathGetTransformContext
    - xmlXPathEval
    - valuePush
    - xmlXPathNewNodeSet
    - xsltGenericError
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltDynEvaluateFunction(xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/dynamic.c:288,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/dynamic.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 295
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 295
    functionName: exsltDynRegister
    functionSourceFile: /src/libxslt/libexslt/dynamic.c
    functionUses: []
    functionsReached:
    - xsltRegisterExtModuleFunction
    linkageType: ''
    returnType: void
    signature: 'void exsltDynRegister (void) '
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewTextChild
      Src: /src/libxslt/libexslt/dynamic.c:200,1
    - Dst: BAD_CAST
      Src: /src/libxslt/libexslt/dynamic.c:202,1
    - Dst: xmlNewNs
      Src: /src/libxslt/libexslt/dynamic.c:206,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxslt/libexslt/dynamic.c:210,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxslt/libexslt/dynamic.c:249,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libexslt/dynamic.c:257,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libexslt/dynamic.c:272,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/dynamic.c:116,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/dynamic.c:131,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/dynamic.c:138,1
    - Dst: xsltRegisterLocalRVT
      Src: /src/libxslt/libexslt/dynamic.c:157,1
    - Dst: xmlXPathCastNumberToString
      Src: /src/libxslt/libexslt/dynamic.c:218,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxslt/libexslt/dynamic.c:232,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libexslt/dynamic.c:270,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/dynamic.c:274,1
    - Dst: valuePush
      Src: /src/libxslt/libexslt/dynamic.c:275,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/dynamic.c:224,1
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/dynamic.c:113,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/dynamic.c:121,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxslt/libexslt/dynamic.c:120,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libexslt/dynamic.c:124,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/dynamic.c:126,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/dynamic.c:133,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/dynamic.c:133,1
    - Dst: xmlXPathCompiledEval
      Src: /src/libxslt/libexslt/dynamic.c:186,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/dynamic.c:153,1
    - Dst: xmlNewTextChild
      Src: /src/libxslt/libexslt/dynamic.c:221,1
    - Dst: xmlNewTextChild
      Src: /src/libxslt/libexslt/dynamic.c:240,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/dynamic.c:117,1
    - Dst: xsltCreateRVT
      Src: /src/libxslt/libexslt/dynamic.c:151,1
    - Dst: xmlXPathNodeSetSort
      Src: /src/libxslt/libexslt/dynamic.c:159,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/dynamic.c:176,1
    - Dst: xmlXPathCtxtCompile
      Src: /src/libxslt/libexslt/dynamic.c:139,1
    - Dst: xmlXPathNodeSetAdd
      Src: /src/libxslt/libexslt/dynamic.c:193,1
    - Dst: xmlNewNs
      Src: /src/libxslt/libexslt/dynamic.c:228,1
    - Dst: xmlNewNs
      Src: /src/libxslt/libexslt/dynamic.c:245,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 110
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 277
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 277
    functionName: exsltDynMapFunction
    functionSourceFile: /src/libxslt/libexslt/dynamic.c
    functionUses: []
    functionsReached:
    - xmlStrlen
    - xmlXPathFreeCompExpr
    - BAD_CAST
    - xmlXPathCtxtCompile
    - xmlXPathNodeSetSort
    - xmlXPathFreeObject
    - xmlXPathSetArityError
    - xmlXPathCompiledEval
    - xsltGenericError
    - xmlXPathCheckError
    - xmlXPathPopNodeSet
    - xmlXPathPopString
    - xmlFree
    - valuePush
    - xsltCreateRVT
    - xmlXPathCastNumberToString
    - xmlXPathNodeSetAdd
    - xmlXPathFreeNodeSet
    - xmlNewTextChild
    - xmlNewNs
    - xsltXPathGetTransformContext
    - xmlXPathNodeSetAddUnique
    - xmlXPathNewNodeSet
    - xsltRegisterLocalRVT
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'static void exsltDynMapFunction(xmlXPathParserContextPtr ctxt, int
      nargs) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: exsltCryptoPopString
      Src: /src/libxslt/libexslt/crypto.c:493,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/crypto.c:502,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libexslt/crypto.c:501,1
    - Dst: PLATFORM_HASH
      Src: /src/libxslt/libexslt/crypto.c:497,1
    - Dst: exsltCryptoBin2Hex
      Src: /src/libxslt/libexslt/crypto.c:499,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:505,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 506
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 506
    functionName: exsltCryptoMd4Function
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrdup
    - xmlXPathReturnString
    - exsltCryptoPopString
    - PLATFORM_HASH
    - exsltCryptoBin2Hex
    linkageType: ''
    returnType: void
    signature: 'static void exsltCryptoMd4Function (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/crypto.c:776,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/crypto.c:785,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/crypto.c:788,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/crypto.c:782,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/crypto.c:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 791
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 791
    functionName: exsltCryptoRegister
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached:
    - xsltRegisterExtModuleFunction
    linkageType: ''
    returnType: void
    signature: 'void exsltCryptoRegister (void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - bin
    - binlen
    - hex
    - hexlen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: exsltCryptoBin2Hex
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static void exsltCryptoBin2Hex (const unsigned char *bin, int binlen,\t\t
      unsigned char *hex, int hexlen) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptAcquireContext
      Src: /src/libxslt/libexslt/crypto.c:185,1
    - Dst: CryptReleaseContext
      Src: /src/libxslt/libexslt/crypto.c:198,1
    - Dst: CryptDestroyHash
      Src: /src/libxslt/libexslt/crypto.c:195,1
    - Dst: exsltCryptoCryptoApiReportError
      Src: /src/libxslt/libexslt/crypto.c:187,1
    - Dst: exsltCryptoCryptoApiCreateHash
      Src: /src/libxslt/libexslt/crypto.c:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - ctxt
    - algorithm
    - msg
    - msglen
    - dest
    argTypes:
    - xmlXPathParserContextPtr
    - ALG_ID
    - char*
    - unsigned long
    - char
    constantsTouched: []
    func_position:
      end: 199
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 199
    functionName: exsltCryptoCryptoApiHash
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached:
    - exsltCryptoCryptoApiCreateHash
    - CryptDestroyHash
    - CryptReleaseContext
    - exsltCryptoCryptoApiReportError
    - CryptAcquireContext
    linkageType: ''
    returnType: void
    signature: "static void exsltCryptoCryptoApiHash (xmlXPathParserContextPtr ctxt,\t\t\t
      ALG_ID algorithm, const char *msg,\t\t\t unsigned long msglen,\t\t\t char dest[HASH_DIGEST_LENGTH]) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/crypto.c:213,1
    - Dst: exsltCryptoCryptoApiCreateHash
      Src: /src/libxslt/libexslt/crypto.c:225,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/crypto.c:213,1
    - Dst: CryptAcquireContext
      Src: /src/libxslt/libexslt/crypto.c:219,1
    - Dst: exsltCryptoCryptoApiReportError
      Src: /src/libxslt/libexslt/crypto.c:221,1
    - Dst: CryptDeriveKey
      Src: /src/libxslt/libexslt/crypto.c:230,1
    - Dst: exsltCryptoCryptoApiReportError
      Src: /src/libxslt/libexslt/crypto.c:232,1
    - Dst: memcpy
      Src: /src/libxslt/libexslt/crypto.c:237,1
    - Dst: CryptEncrypt
      Src: /src/libxslt/libexslt/crypto.c:238,1
    - Dst: exsltCryptoCryptoApiReportError
      Src: /src/libxslt/libexslt/crypto.c:239,1
    - Dst: CryptDestroyKey
      Src: /src/libxslt/libexslt/crypto.c:248,1
    - Dst: CryptReleaseContext
      Src: /src/libxslt/libexslt/crypto.c:249,1
    - Dst: CryptDestroyHash
      Src: /src/libxslt/libexslt/crypto.c:245,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 6
    argNames:
    - ctxt
    - key
    - msg
    - msglen
    - dest
    - destlen
    argTypes:
    - xmlXPathParserContextPtr
    - unsigned char*
    - unsigned char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 250
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 250
    functionName: exsltCryptoCryptoApiRc4Encrypt
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached:
    - exsltCryptoCryptoApiCreateHash
    - memcpy
    - CryptDeriveKey
    - xsltXPathGetTransformContext
    - CryptDestroyKey
    - CryptDestroyHash
    - CryptReleaseContext
    - CryptEncrypt
    - exsltCryptoCryptoApiReportError
    - CryptAcquireContext
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: "static void exsltCryptoCryptoApiRc4Encrypt (xmlXPathParserContextPtr
      ctxt,\t\t\t\tconst unsigned char *key,\t\t\t\tconst unsigned char *msg, int
      msglen,\t\t\t\tunsigned char *dest, int destlen) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/crypto.c:264,1
    - Dst: exsltCryptoCryptoApiCreateHash
      Src: /src/libxslt/libexslt/crypto.c:276,1
    - Dst: CryptAcquireContext
      Src: /src/libxslt/libexslt/crypto.c:270,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/crypto.c:264,1
    - Dst: exsltCryptoCryptoApiReportError
      Src: /src/libxslt/libexslt/crypto.c:272,1
    - Dst: CryptDeriveKey
      Src: /src/libxslt/libexslt/crypto.c:281,1
    - Dst: exsltCryptoCryptoApiReportError
      Src: /src/libxslt/libexslt/crypto.c:283,1
    - Dst: memcpy
      Src: /src/libxslt/libexslt/crypto.c:288,1
    - Dst: CryptDecrypt
      Src: /src/libxslt/libexslt/crypto.c:289,1
    - Dst: exsltCryptoCryptoApiReportError
      Src: /src/libxslt/libexslt/crypto.c:290,1
    - Dst: CryptDestroyKey
      Src: /src/libxslt/libexslt/crypto.c:299,1
    - Dst: CryptReleaseContext
      Src: /src/libxslt/libexslt/crypto.c:300,1
    - Dst: CryptDestroyHash
      Src: /src/libxslt/libexslt/crypto.c:296,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 6
    argNames:
    - ctxt
    - key
    - msg
    - msglen
    - dest
    - destlen
    argTypes:
    - xmlXPathParserContextPtr
    - unsigned char*
    - unsigned char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 301
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 301
    functionName: exsltCryptoCryptoApiRc4Decrypt
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached:
    - exsltCryptoCryptoApiCreateHash
    - memcpy
    - CryptDecrypt
    - CryptDeriveKey
    - xsltXPathGetTransformContext
    - CryptDestroyKey
    - CryptDestroyHash
    - CryptReleaseContext
    - exsltCryptoCryptoApiReportError
    - CryptAcquireContext
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: "static void exsltCryptoCryptoApiRc4Decrypt (xmlXPathParserContextPtr
      ctxt,\t\t\t\tconst unsigned char *key,\t\t\t\tconst unsigned char *msg, int
      msglen,\t\t\t\tunsigned char *dest, int destlen) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlLockLibrary
      Src: /src/libxslt/libexslt/crypto.c:327,1
    - Dst: gcry_check_version
      Src: /src/libxslt/libexslt/crypto.c:337,1
    - Dst: xmlUnlockLibrary
      Src: /src/libxslt/libexslt/crypto.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 342
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 342
    functionName: exsltCryptoGcryptInit
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached:
    - xmlLockLibrary
    - xmlUnlockLibrary
    - gcry_check_version
    linkageType: ''
    returnType: void
    signature: 'static void exsltCryptoGcryptInit (void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exsltCryptoGcryptInit
      Src: /src/libxslt/libexslt/crypto.c:412,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/crypto.c:417,1
    - Dst: gcry_strerror
      Src: /src/libxslt/libexslt/crypto.c:420,1
    - Dst: gcry_cipher_open
      Src: /src/libxslt/libexslt/crypto.c:414,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/crypto.c:417,1
    - Dst: gcry_cipher_setkey
      Src: /src/libxslt/libexslt/crypto.c:423,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/crypto.c:425,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/crypto.c:425,1
    - Dst: gcry_strerror
      Src: /src/libxslt/libexslt/crypto.c:428,1
    - Dst: gcry_cipher_decrypt
      Src: /src/libxslt/libexslt/crypto.c:431,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/crypto.c:434,1
    - Dst: gcry_strerror
      Src: /src/libxslt/libexslt/crypto.c:437,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/crypto.c:434,1
    - Dst: gcry_cipher_close
      Src: /src/libxslt/libexslt/crypto.c:440,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 6
    argNames:
    - ctxt
    - key
    - msg
    - msglen
    - dest
    - destlen
    argTypes:
    - xmlXPathParserContextPtr
    - unsigned char*
    - unsigned char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 441
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 441
    functionName: exsltCryptoGcryptRc4Decrypt
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached:
    - gcry_cipher_open
    - gcry_strerror
    - xsltXPathGetTransformContext
    - gcry_cipher_decrypt
    - exsltCryptoGcryptInit
    - gcry_cipher_close
    - gcry_cipher_setkey
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: "static void exsltCryptoGcryptRc4Decrypt (xmlXPathParserContextPtr
      ctxt,\t\t\t const unsigned char *key,\t\t\t const unsigned char *msg, int msglen,\t\t\t
      unsigned char *dest, int destlen) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 801
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 801
    functionName: exsltCryptoRegister
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void exsltCryptoRegister (void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 4
    argNames:
    - hex
    - hexlen
    - bin
    - binlen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 103
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 103
    functionName: exsltCryptoHex2Bin
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "static int exsltCryptoHex2Bin (const unsigned char *hex, int hexlen,\t\t
      unsigned char *bin, int binlen) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/libxslt/libexslt/crypto.c:125,1
    - Dst: MAKELANGID
      Src: /src/libxslt/libexslt/crypto.c:129,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/crypto.c:132,1
    - Dst: FormatMessageA
      Src: /src/libxslt/libexslt/crypto.c:127,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/crypto.c:132,1
    - Dst: LocalFree
      Src: /src/libxslt/libexslt/crypto.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctxt
    - line
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 136
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 136
    functionName: exsltCryptoCryptoApiReportError
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached:
    - GetLastError
    - xsltXPathGetTransformContext
    - MAKELANGID
    - xsltTransformError
    - FormatMessageA
    - LocalFree
    linkageType: ''
    returnType: void
    signature: "static void exsltCryptoCryptoApiReportError (xmlXPathParserContextPtr
      ctxt,\t\t\t\t int line) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exsltCryptoGcryptInit
      Src: /src/libxslt/libexslt/crypto.c:361,1
    - Dst: gcry_md_hash_buffer
      Src: /src/libxslt/libexslt/crypto.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 5
    argNames:
    - ATTRIBUTE_UNUSED
    - /* changed the enum to int */
    - algorithm
    - msg
    - msglen
    - dest
    argTypes:
    - xmlXPathParserContextPtr
    - int
    - char*
    - unsigned long
    - char
    constantsTouched: []
    func_position:
      end: 363
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 363
    functionName: exsltCryptoGcryptHash
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached:
    - gcry_md_hash_buffer
    - exsltCryptoGcryptInit
    linkageType: ''
    returnType: void
    signature: "static void exsltCryptoGcryptHash (xmlXPathParserContextPtr ctxt ATTRIBUTE_UNUSED,/*
      changed the enum to int */\t\t int algorithm, const char *msg,\t\t unsigned
      long msglen,\t\t char dest[HASH_DIGEST_LENGTH]) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/crypto.c:462,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:471,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/crypto.c:466,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/crypto.c:470,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/crypto.c:467,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - ctxt
    - nargs
    - str
    argTypes:
    - xmlXPathParserContextPtr
    - int
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 476
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 476
    functionName: exsltCryptoPopString
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathReturnEmptyString
    - xmlStrlen
    - xmlXPathSetArityError
    - xmlXPathPopString
    linkageType: ''
    returnType: int
    signature: "static int exsltCryptoPopString (xmlXPathParserContextPtr ctxt, int
      nargs,\t\t xmlChar ** str) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: exsltCryptoPopString
      Src: /src/libxslt/libexslt/crypto.c:553,1
    - Dst: exsltCryptoBin2Hex
      Src: /src/libxslt/libexslt/crypto.c:559,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/crypto.c:562,1
    - Dst: PLATFORM_HASH
      Src: /src/libxslt/libexslt/crypto.c:557,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libexslt/crypto.c:561,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:565,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 566
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 566
    functionName: exsltCryptoSha1Function
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrdup
    - xmlXPathReturnString
    - exsltCryptoPopString
    - PLATFORM_HASH
    - exsltCryptoBin2Hex
    linkageType: ''
    returnType: void
    signature: 'static void exsltCryptoSha1Function (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/crypto.c:682,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/crypto.c:685,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/crypto.c:697,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/crypto.c:708,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:702,1
    - Dst: memcpy
      Src: /src/libxslt/libexslt/crypto.c:722,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/crypto.c:731,1
    - Dst: PLATFORM_RC4_DECRYPT
      Src: /src/libxslt/libexslt/crypto.c:745,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/crypto.c:749,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/crypto.c:754,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:761,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/crypto.c:691,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:692,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/crypto.c:700,1
    - Dst: memset
      Src: /src/libxslt/libexslt/crypto.c:714,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/crypto.c:716,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/crypto.c:711,1
    - Dst: xmlMallocAtomic
      Src: /src/libxslt/libexslt/crypto.c:737,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:751,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:759,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:763,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/crypto.c:696,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/crypto.c:719,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/crypto.c:739,1
    - Dst: xmlCheckUTF8
      Src: /src/libxslt/libexslt/crypto.c:748,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/crypto.c:752,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:765,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/crypto.c:687,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/crypto.c:688,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:701,1
    - Dst: xmlMallocAtomic
      Src: /src/libxslt/libexslt/crypto.c:726,1
    - Dst: xmlMallocAtomic
      Src: /src/libxslt/libexslt/crypto.c:706,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/crypto.c:728,1
    - Dst: exsltCryptoHex2Bin
      Src: /src/libxslt/libexslt/crypto.c:734,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/crypto.c:742,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 766
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 766
    functionName: exsltCryptoRc4DecryptFunction
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlMallocAtomic
    - memcpy
    - exsltCryptoHex2Bin
    - PLATFORM_RC4_DECRYPT
    - xmlCheckUTF8
    - xmlXPathReturnEmptyString
    - memset
    - xmlStrlen
    - xsltXPathGetTransformContext
    - xmlXPathSetArityError
    - xmlXPathReturnString
    - xsltTransformError
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltCryptoRc4DecryptFunction (xmlXPathParserContextPtr
      ctxt, int nargs) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CryptCreateHash
      Src: /src/libxslt/libexslt/crypto.c:147,1
    - Dst: CryptHashData
      Src: /src/libxslt/libexslt/crypto.c:152,1
    - Dst: CryptGetHashParam
      Src: /src/libxslt/libexslt/crypto.c:157,1
    - Dst: exsltCryptoCryptoApiReportError
      Src: /src/libxslt/libexslt/crypto.c:153,1
    - Dst: exsltCryptoCryptoApiReportError
      Src: /src/libxslt/libexslt/crypto.c:148,1
    - Dst: exsltCryptoCryptoApiReportError
      Src: /src/libxslt/libexslt/crypto.c:158,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 7
    argNames:
    - ctxt
    - hCryptProv
    - algorithm
    - msg
    - msglen
    - dest
    - destlen
    argTypes:
    - xmlXPathParserContextPtr
    - HCRYPTPROV
    - ALG_ID
    - unsigned char*
    - unsigned int
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 164
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 164
    functionName: exsltCryptoCryptoApiCreateHash
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached:
    - CryptCreateHash
    - CryptGetHashParam
    - exsltCryptoCryptoApiReportError
    - CryptHashData
    linkageType: ''
    returnType: HCRYPTHASH
    signature: "static HCRYPTHASH exsltCryptoCryptoApiCreateHash (xmlXPathParserContextPtr
      ctxt,\t\t\t\tHCRYPTPROV hCryptProv, ALG_ID algorithm,\t\t\t\tconst unsigned
      char *msg, unsigned int msglen,\t\t\t\tchar *dest, unsigned int destlen) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exsltCryptoGcryptInit
      Src: /src/libxslt/libexslt/crypto.c:373,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/crypto.c:378,1
    - Dst: gcry_strerror
      Src: /src/libxslt/libexslt/crypto.c:381,1
    - Dst: gcry_cipher_open
      Src: /src/libxslt/libexslt/crypto.c:375,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/crypto.c:378,1
    - Dst: gcry_cipher_setkey
      Src: /src/libxslt/libexslt/crypto.c:384,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/crypto.c:386,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/crypto.c:386,1
    - Dst: gcry_strerror
      Src: /src/libxslt/libexslt/crypto.c:389,1
    - Dst: gcry_cipher_encrypt
      Src: /src/libxslt/libexslt/crypto.c:392,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/crypto.c:395,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/crypto.c:395,1
    - Dst: gcry_strerror
      Src: /src/libxslt/libexslt/crypto.c:398,1
    - Dst: gcry_cipher_close
      Src: /src/libxslt/libexslt/crypto.c:401,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 6
    argNames:
    - ctxt
    - key
    - msg
    - msglen
    - dest
    - destlen
    argTypes:
    - xmlXPathParserContextPtr
    - unsigned char*
    - unsigned char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 402
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 402
    functionName: exsltCryptoGcryptRc4Encrypt
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached:
    - gcry_cipher_encrypt
    - gcry_cipher_open
    - gcry_strerror
    - xsltXPathGetTransformContext
    - gcry_cipher_close
    - exsltCryptoGcryptInit
    - gcry_cipher_setkey
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: "static void exsltCryptoGcryptRc4Encrypt (xmlXPathParserContextPtr
      ctxt,\t\t\t const unsigned char *key,\t\t\t const unsigned char *msg, int msglen,\t\t\t
      unsigned char *dest, int destlen) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: exsltCryptoPopString
      Src: /src/libxslt/libexslt/crypto.c:523,1
    - Dst: exsltCryptoBin2Hex
      Src: /src/libxslt/libexslt/crypto.c:529,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/crypto.c:532,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libexslt/crypto.c:531,1
    - Dst: PLATFORM_HASH
      Src: /src/libxslt/libexslt/crypto.c:527,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:535,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 536
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 536
    functionName: exsltCryptoMd5Function
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrdup
    - xmlXPathReturnString
    - exsltCryptoPopString
    - PLATFORM_HASH
    - exsltCryptoBin2Hex
    linkageType: ''
    returnType: void
    signature: 'static void exsltCryptoMd5Function (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/crypto.c:588,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:595,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/crypto.c:600,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/crypto.c:603,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/crypto.c:620,1
    - Dst: memset
      Src: /src/libxslt/libexslt/crypto.c:617,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/crypto.c:614,1
    - Dst: PLATFORM_RC4_ENCRYPT
      Src: /src/libxslt/libexslt/crypto.c:638,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:660,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/crypto.c:623,1
    - Dst: memcpy
      Src: /src/libxslt/libexslt/crypto.c:626,1
    - Dst: xmlMallocAtomic
      Src: /src/libxslt/libexslt/crypto.c:642,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/crypto.c:644,1
    - Dst: exsltCryptoBin2Hex
      Src: /src/libxslt/libexslt/crypto.c:651,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:662,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libexslt/crypto.c:591,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/crypto.c:590,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/crypto.c:594,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:604,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libexslt/crypto.c:630,1
    - Dst: xmlMallocAtomic
      Src: /src/libxslt/libexslt/crypto.c:609,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/crypto.c:632,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/crypto.c:647,1
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/libexslt/crypto.c:652,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:658,1
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/crypto.c:585,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/crypto.c:599,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:605,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/crypto.c:611,1
    - Dst: xmlXPathReturnEmptyString
      Src: /src/libxslt/libexslt/crypto.c:635,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/crypto.c:656,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 663
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 663
    functionName: exsltCryptoRc4EncryptFunction
    functionSourceFile: /src/libxslt/libexslt/crypto.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlMallocAtomic
    - memcpy
    - PLATFORM_RC4_ENCRYPT
    - xmlXPathReturnEmptyString
    - memset
    - xmlStrlen
    - xsltXPathGetTransformContext
    - xmlStrdup
    - xmlXPathSetArityError
    - xmlXPathReturnString
    - xsltTransformError
    - exsltCryptoBin2Hex
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltCryptoRc4EncryptFunction (xmlXPathParserContextPtr
      ctxt, int nargs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxslt/libexslt/saxon.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: exsltSaxonInit
    functionSourceFile: /src/libxslt/libexslt/saxon.c
    functionUses: []
    functionsReached:
    - xmlHashCreate
    linkageType: ''
    returnType: void*
    signature: "static void *exsltSaxonInit (xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED,\t\tconst
      xmlChar *URI ATTRIBUTE_UNUSED) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashFree
      Src: /src/libxslt/libexslt/saxon.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - vdata
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: exsltSaxonShutdown
    functionSourceFile: /src/libxslt/libexslt/saxon.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: "static void exsltSaxonShutdown (xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED,\t\t
      const xmlChar *URI ATTRIBUTE_UNUSED,\t\t void *vdata) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/saxon.c:140,1
    - Dst: xmlXPathPopExternal
      Src: /src/libxslt/libexslt/saxon.c:149,1
    - Dst: xmlXPathSetTypeError
      Src: /src/libxslt/libexslt/saxon.c:145,1
    - Dst: xmlXPathCompiledEval
      Src: /src/libxslt/libexslt/saxon.c:151,1
    - Dst: xmlXPathStackIsExternal
      Src: /src/libxslt/libexslt/saxon.c:144,1
    - Dst: xmlXPathSetError
      Src: /src/libxslt/libexslt/saxon.c:153,1
    - Dst: valuePush
      Src: /src/libxslt/libexslt/saxon.c:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 158
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 158
    functionName: exsltSaxonEvalFunction
    functionSourceFile: /src/libxslt/libexslt/saxon.c
    functionUses: []
    functionsReached:
    - xmlXPathSetError
    - valuePush
    - xmlXPathSetArityError
    - xmlXPathPopExternal
    - xmlXPathStackIsExternal
    - xmlXPathCompiledEval
    - xmlXPathSetTypeError
    linkageType: ''
    returnType: void
    signature: 'static void exsltSaxonEvalFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/saxon.c:246,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libexslt/saxon.c:263,1
    - Dst: xmlXPathCmpNodes
      Src: /src/libxslt/libexslt/saxon.c:257,1
    - Dst: valuePop
      Src: /src/libxslt/libexslt/saxon.c:252,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/saxon.c:246,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/saxon.c:263,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libexslt/saxon.c:277,1
    - Dst: xmlGetLineNo
      Src: /src/libxslt/libexslt/saxon.c:285,1
    - Dst: valuePush
      Src: /src/libxslt/libexslt/saxon.c:287,1
    - Dst: xmlXPathNewFloat
      Src: /src/libxslt/libexslt/saxon.c:287,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libexslt/saxon.c:289,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 290
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 290
    functionName: exsltSaxonLineNumberFunction
    functionSourceFile: /src/libxslt/libexslt/saxon.c
    functionUses: []
    functionsReached:
    - xmlGetLineNo
    - xmlXPathCmpNodes
    - xsltXPathGetTransformContext
    - valuePop
    - valuePush
    - xmlXPathFreeObject
    - xsltTransformError
    - xsltGenericError
    - xmlXPathNewFloat
    linkageType: ''
    returnType: void
    signature: 'static void exsltSaxonLineNumberFunction(xmlXPathParserContextPtr
      ctxt, int nargs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltRegisterExtModule
      Src: /src/libxslt/libexslt/saxon.c:299,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/saxon.c:305,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/saxon.c:308,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/saxon.c:302,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/saxon.c:311,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libexslt/saxon.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 317
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 317
    functionName: exsltSaxonRegister
    functionSourceFile: /src/libxslt/libexslt/saxon.c
    functionUses: []
    functionsReached:
    - xsltRegisterExtModule
    - xsltRegisterExtModuleFunction
    linkageType: ''
    returnType: void
    signature: 'void exsltSaxonRegister (void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libexslt/saxon.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: exsltSaxonFreeCompExprEntry
    functionSourceFile: /src/libxslt/libexslt/saxon.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeCompExpr
    linkageType: ''
    returnType: void
    signature: 'static void exsltSaxonFreeCompExprEntry(void *payload, const xmlChar
      *name ATTRIBUTE_UNUSED) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libexslt/saxon.c:81,1
    - Dst: xmlXPathPopString
      Src: /src/libxslt/libexslt/saxon.c:88,1
    - Dst: xmlXPathCheckError
      Src: /src/libxslt/libexslt/saxon.c:89,1
    - Dst: xmlXPathSetTypeError
      Src: /src/libxslt/libexslt/saxon.c:90,1
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/saxon.c:84,1
    - Dst: xsltGetExtData
      Src: /src/libxslt/libexslt/saxon.c:94,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/libexslt/saxon.c:97,1
    - Dst: xmlXPathCtxtCompile
      Src: /src/libxslt/libexslt/saxon.c:100,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/saxon.c:102,1
    - Dst: xmlXPathSetError
      Src: /src/libxslt/libexslt/saxon.c:103,1
    - Dst: xmlXPathSetError
      Src: /src/libxslt/libexslt/saxon.c:109,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libexslt/saxon.c:107,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/saxon.c:114,1
    - Dst: xmlHashAddEntry
      Src: /src/libxslt/libexslt/saxon.c:106,1
    - Dst: xmlXPathReturnExternal
      Src: /src/libxslt/libexslt/saxon.c:116,1
    - Dst: xmlFree
      Src: /src/libxslt/libexslt/saxon.c:108,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 117
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 117
    functionName: exsltSaxonExpressionFunction
    functionSourceFile: /src/libxslt/libexslt/saxon.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathSetError
    - xmlXPathCheckError
    - xmlXPathCtxtCompile
    - xsltGetExtData
    - xsltXPathGetTransformContext
    - xmlXPathSetArityError
    - xmlHashLookup
    - xmlXPathReturnExternal
    - xmlHashAddEntry
    - xmlXPathSetTypeError
    - xmlXPathFreeCompExpr
    - xmlXPathPopString
    linkageType: ''
    returnType: void
    signature: 'static void exsltSaxonExpressionFunction (xmlXPathParserContextPtr
      ctxt, int nargs) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/saxon.c:180,1
    - Dst: exsltSaxonExpressionFunction
      Src: /src/libxslt/libexslt/saxon.c:184,1
    - Dst: exsltSaxonEvalFunction
      Src: /src/libxslt/libexslt/saxon.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: exsltSaxonEvaluateFunction
    functionSourceFile: /src/libxslt/libexslt/saxon.c
    functionUses: []
    functionsReached:
    - exsltSaxonExpressionFunction
    - xmlXPathSetArityError
    - exsltSaxonEvalFunction
    linkageType: ''
    returnType: void
    signature: 'static void exsltSaxonEvaluateFunction (xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetArityError
      Src: /src/libxslt/libexslt/saxon.c:203,1
    - Dst: valuePush
      Src: /src/libxslt/libexslt/saxon.c:211,1
    - Dst: xmlXPathNewString
      Src: /src/libxslt/libexslt/saxon.c:211,1
    - Dst: valuePush
      Src: /src/libxslt/libexslt/saxon.c:209,1
    - Dst: xmlXPathNewString
      Src: /src/libxslt/libexslt/saxon.c:209,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 212
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 212
    functionName: exsltSaxonSystemIdFunction
    functionSourceFile: /src/libxslt/libexslt/saxon.c
    functionUses: []
    functionsReached:
    - xmlXPathNewString
    - valuePush
    - xmlXPathSetArityError
    linkageType: ''
    returnType: void
    signature: 'static void exsltSaxonSystemIdFunction(xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:20,1
    - Dst: printf
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:22,1
    - Dst: printf
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: usage
    functionSourceFile: /src/libxslt/doc/tutorial2/libxslt_pipes.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void usage(const char *name) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:60,1
    - Dst: strcmp
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:61,1
    - Dst: fprintf
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:65,1
    - Dst: xmlParseFile
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:84,1
    - Dst: free
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:89,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:101,1
    - Dst: xsltSaveResultToFile
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:106,1
    - Dst: xsltFreeStylesheet
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:116,1
    - Dst: xmlCleanupParser
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:120,1
    - Dst: strlen
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:76,1
    - Dst: strcmp
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:80,1
    - Dst: strtok
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:78,1
    - Dst: strtok
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:79,1
    - Dst: xmlSubstituteEntitiesDefault
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:92,1
    - Dst: free
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:123,1
    - Dst: strcmp
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:51,1
    - Dst: strcmp
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:50,1
    - Dst: fprintf
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:56,1
    - Dst: fopen
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:63,1
    - Dst: xmlParseFile
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:87,1
    - Dst: xsltApplyStylesheet
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:100,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:110,1
    - Dst: free
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:124,1
    - Dst: calloc
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:35,1
    - Dst: usage
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:41,1
    - Dst: calloc
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:36,1
    - Dst: xsltParseStylesheetFile
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:82,1
    - Dst: usage
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:66,1
    - Dst: malloc
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:76,1
    - Dst: strcpy
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:77,1
    - Dst: xmlDocDump
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:108,1
    - Dst: fclose
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:113,1
    - Dst: xsltCleanupGlobals
      Src: /src/libxslt/doc/tutorial2/libxslt_pipes.c:119,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 86
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 126
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 126
    functionName: main
    functionSourceFile: /src/libxslt/doc/tutorial2/libxslt_pipes.c
    functionUses: []
    functionsReached:
    - fclose
    - free
    - xmlFreeDoc
    - usage
    - fopen
    - xsltSaveResultToFile
    - strcpy
    - xsltApplyStylesheet
    - xmlSubstituteEntitiesDefault
    - xmlCleanupParser
    - strtok
    - strcmp
    - xmlParseFile
    - malloc
    - xsltParseStylesheetFile
    - xsltFreeStylesheet
    - calloc
    - strlen
    - xmlDocDump
    - fprintf
    - xsltCleanupGlobals
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/doc/tutorial/libxslt_tutorial.c:28,1
    - Dst: printf
      Src: /src/libxslt/doc/tutorial/libxslt_tutorial.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: usage
    functionSourceFile: /src/libxslt/doc/tutorial/libxslt_tutorial.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void usage(const char *name) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/libxslt/doc/tutorial/libxslt_tutorial.c:42,1
    - Dst: fprintf
      Src: /src/libxslt/doc/tutorial/libxslt_tutorial.c:56,1
    - Dst: strcmp
      Src: /src/libxslt/doc/tutorial/libxslt_tutorial.c:51,1
    - Dst: fprintf
      Src: /src/libxslt/doc/tutorial/libxslt_tutorial.c:60,1
    - Dst: strcmp
      Src: /src/libxslt/doc/tutorial/libxslt_tutorial.c:50,1
    - Dst: usage
      Src: /src/libxslt/doc/tutorial/libxslt_tutorial.c:61,1
    - Dst: xmlSubstituteEntitiesDefault
      Src: /src/libxslt/doc/tutorial/libxslt_tutorial.c:67,1
    - Dst: xsltParseStylesheetFile
      Src: /src/libxslt/doc/tutorial/libxslt_tutorial.c:69,1
    - Dst: xmlParseFile
      Src: /src/libxslt/doc/tutorial/libxslt_tutorial.c:71,1
    - Dst: xsltApplyStylesheet
      Src: /src/libxslt/doc/tutorial/libxslt_tutorial.c:72,1
    - Dst: xsltCleanupGlobals
      Src: /src/libxslt/doc/tutorial/libxslt_tutorial.c:79,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/doc/tutorial/libxslt_tutorial.c:77,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/doc/tutorial/libxslt_tutorial.c:76,1
    - Dst: xsltSaveResultToFile
      Src: /src/libxslt/doc/tutorial/libxslt_tutorial.c:73,1
    - Dst: xmlCleanupParser
      Src: /src/libxslt/doc/tutorial/libxslt_tutorial.c:80,1
    - Dst: xsltFreeStylesheet
      Src: /src/libxslt/doc/tutorial/libxslt_tutorial.c:75,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 83
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 83
    functionName: main
    functionSourceFile: /src/libxslt/doc/tutorial/libxslt_tutorial.c
    functionUses: []
    functionsReached:
    - usage
    - xsltParseStylesheetFile
    - xsltFreeStylesheet
    - fprintf
    - xsltSaveResultToFile
    - strcmp
    - xmlFreeDoc
    - xsltApplyStylesheet
    - xmlCleanupParser
    - xmlSubstituteEntitiesDefault
    - xsltCleanupGlobals
    - xmlParseFile
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 5
    argNames:
    - expression
    - function
    - file
    - line
    - pReserved
    argTypes:
    - wchar_t*
    - wchar_t*
    - wchar_t*
    - unsigned int
    - uintptr_t
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: myInvalidParameterHandler
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void myInvalidParameterHandler(const wchar_t *expression, const wchar_t
      *function, const wchar_t *file, unsigned int line, uintptr_t pReserved) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:247,1
    - Dst: PY_IMPORT_INT
      Src: /src/libxslt/python/types.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 251
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 251
    functionName: libxml_longWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PY_IMPORT_INT
    - printf
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_longWrap(long val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:306,1
    - Dst: PY_IMPORT_STRING
      Src: /src/libxslt/python/types.c:313,1
    - Dst: xmlFree
      Src: /src/libxslt/python/types.c:314,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 316
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 316
    functionName: libxml_xmlCharPtrWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - xmlFree
    - PY_IMPORT_STRING
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlCharPtrWrap(xmlChar * str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:408,1
    - Dst: PyCapsule_New
      Src: /src/libxslt/python/types.c:414,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:411,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - uri
    argTypes:
    - xmlURIPtr
    constantsTouched: []
    func_position:
      end: 416
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 416
    functionName: libxml_xmlURIPtrWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlURIPtrWrap(xmlURIPtr uri) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:504,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:507,1
    - Dst: PyCapsule_New
      Src: /src/libxslt/python/types.c:510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 513
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 513
    functionName: libxml_xmlXPathParserContextPtrWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlXPathParserContextPtrWrap(xmlXPathParserContextPtr
      ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:259,1
    - Dst: PyFloat_FromDouble
      Src: /src/libxslt/python/types.c:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 263
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 263
    functionName: libxml_doubleWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - printf
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_doubleWrap(double val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:324,1
    - Dst: PY_IMPORT_STRING
      Src: /src/libxslt/python/types.c:331,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 333
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 333
    functionName: libxml_xmlCharPtrConstWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PY_IMPORT_STRING
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlCharPtrConstWrap(const xmlChar * str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:424,1
    - Dst: PyCapsule_New
      Src: /src/libxslt/python/types.c:430,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:427,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ns
    argTypes:
    - xmlNsPtr
    constantsTouched: []
    func_position:
      end: 432
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 432
    functionName: libxml_xmlNsPtrWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlNsPtrWrap(xmlNsPtr ns) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:521,1
    - Dst: PyCapsule_New
      Src: /src/libxslt/python/types.c:527,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:524,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 529
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 529
    functionName: libxml_xmlParserCtxtPtrWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlParserCtxtPtrWrap(xmlParserCtxtPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:768,1
    - Dst: PyCapsule_New
      Src: /src/libxslt/python/types.c:774,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:771,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - xmlParserInputBufferPtr
    constantsTouched: []
    func_position:
      end: 777
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 777
    functionName: libxml_xmlParserInputBufferPtrWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlParserInputBufferPtrWrap(xmlParserInputBufferPtr
      buffer) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:235,1
    - Dst: PY_IMPORT_INT
      Src: /src/libxslt/python/types.c:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 239
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 239
    functionName: libxml_intWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PY_IMPORT_INT
    - printf
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_intWrap(int val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:271,1
    - Dst: xmlFree
      Src: /src/libxslt/python/types.c:279,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:274,1
    - Dst: PY_IMPORT_STRING
      Src: /src/libxslt/python/types.c:278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 281
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 281
    functionName: libxml_charPtrWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - xmlFree
    - PY_IMPORT_STRING
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_charPtrWrap(char *str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:375,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:378,1
    - Dst: PyCapsule_New
      Src: /src/libxslt/python/types.c:382,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 384
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 384
    functionName: libxml_xmlDocPtrWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlDocPtrWrap(xmlDocPtr doc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:440,1
    - Dst: PyCapsule_New
      Src: /src/libxslt/python/types.c:446,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:443,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - attr
    argTypes:
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 448
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 448
    functionName: libxml_xmlAttrPtrWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlAttrPtrWrap(xmlAttrPtr attr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:472,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:475,1
    - Dst: PyCapsule_New
      Src: /src/libxslt/python/types.c:478,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - elem
    argTypes:
    - xmlElementPtr
    constantsTouched: []
    func_position:
      end: 480
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 480
    functionName: libxml_xmlElementPtrWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlElementPtrWrap(xmlElementPtr elem) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:649,1
    - Dst: PyLong_Check
      Src: /src/libxslt/python/types.c:656,1
    - Dst: xmlXPathNewFloat
      Src: /src/libxslt/python/types.c:655,1
    - Dst: xmlXPathNewFloat
      Src: /src/libxslt/python/types.c:658,1
    - Dst: xmlXPathWrapString
      Src: /src/libxslt/python/types.c:677,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/libxslt/python/types.c:686,1
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxslt/python/types.c:708,1
    - Dst: printf
      Src: /src/libxslt/python/types.c:718,1
    - Dst: PyObject_HasAttrString
      Src: /src/libxslt/python/types.c:722,1
    - Dst: xmlXPathNodeSetAdd
      Src: /src/libxslt/python/types.c:734,1
    - Dst: PyBool_Check
      Src: /src/libxslt/python/types.c:663,1
    - Dst: PyUnicode_Check
      Src: /src/libxslt/python/types.c:679,1
    - Dst: PyBytes_Check
      Src: /src/libxslt/python/types.c:672,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/libxslt/python/types.c:676,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/libxslt/python/types.c:693,1
    - Dst: Py_DECREF
      Src: /src/libxslt/python/types.c:697,1
    - Dst: PyList_Size
      Src: /src/libxslt/python/types.c:710,1
    - Dst: PyObject_HasAttrString
      Src: /src/libxslt/python/types.c:721,1
    - Dst: xmlXPathWrapNodeSet
      Src: /src/libxslt/python/types.c:737,1
    - Dst: printf
      Src: /src/libxslt/python/types.c:740,1
    - Dst: printf
      Src: /src/libxslt/python/types.c:730,1
    - Dst: PyFloat_Check
      Src: /src/libxslt/python/types.c:654,1
    - Dst: PyInt_AS_LONG
      Src: /src/libxslt/python/types.c:660,1
    - Dst: xmlStrndup
      Src: /src/libxslt/python/types.c:675,1
    - Dst: xmlXPathNewBoolean
      Src: /src/libxslt/python/types.c:669,1
    - Dst: PyBytes_AS_STRING
      Src: /src/libxslt/python/types.c:675,1
    - Dst: xmlXPathNewBoolean
      Src: /src/libxslt/python/types.c:666,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/libxslt/python/types.c:696,1
    - Dst: PyList_Check
      Src: /src/libxslt/python/types.c:702,1
    - Dst: PyCapsule_CheckExact
      Src: /src/libxslt/python/types.c:716,1
    - Dst: PyxmlNode_Get
      Src: /src/libxslt/python/types.c:720,1
    - Dst: PyObject_GetAttrString
      Src: /src/libxslt/python/types.c:725,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/libxslt/python/types.c:655,1
    - Dst: PyLong_AS_LONG
      Src: /src/libxslt/python/types.c:658,1
    - Dst: xmlXPathNewFloat
      Src: /src/libxslt/python/types.c:660,1
    - Dst: xmlStrndup
      Src: /src/libxslt/python/types.c:687,1
    - Dst: xmlXPathWrapString
      Src: /src/libxslt/python/types.c:688,1
    - Dst: xmlStrndup
      Src: /src/libxslt/python/types.c:695,1
    - Dst: PyBytes_AS_STRING
      Src: /src/libxslt/python/types.c:695,1
    - Dst: xmlXPathWrapString
      Src: /src/libxslt/python/types.c:699,1
    - Dst: PyList_GetItem
      Src: /src/libxslt/python/types.c:711,1
    - Dst: PyxmlNode_Get
      Src: /src/libxslt/python/types.c:727,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 91
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    constantsTouched: []
    func_position:
      end: 744
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 744
    functionName: libxml_xmlXPathObjectPtrConvert
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PyBytes_Check
    - PyList_Check
    - xmlStrndup
    - PyLong_Check
    - PyUnicode_AsUTF8String
    - xmlXPathWrapNodeSet
    - printf
    - PyBool_Check
    - PyLong_AS_LONG
    - xmlXPathNewBoolean
    - PyCapsule_CheckExact
    - xmlXPathNewFloat
    - xmlXPathNodeSetCreate
    - PyUnicode_Check
    - PyObject_GetAttrString
    - PyFloat_Check
    - PyUnicode_AsUTF8AndSize
    - PyList_Size
    - xmlXPathNodeSetAdd
    - xmlXPathWrapString
    - PyObject_HasAttrString
    - PyFloat_AS_DOUBLE
    - PyList_GetItem
    - PyxmlNode_Get
    - PyInt_AS_LONG
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    - Py_DECREF
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: 'xmlXPathObjectPtr libxml_xmlXPathObjectPtrConvert(PyObject *obj) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/libxslt/python/types.c:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: libxml_PyFileRelease
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: 'void libxml_PyFileRelease(FILE *f) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:289,1
    - Dst: PY_IMPORT_STRING
      Src: /src/libxslt/python/types.c:296,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:292,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 298
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 298
    functionName: libxml_charPtrConstWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PY_IMPORT_STRING
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_charPtrConstWrap(const char *str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:392,1
    - Dst: PyCapsule_New
      Src: /src/libxslt/python/types.c:398,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:395,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 400
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 400
    functionName: libxml_xmlNodePtrWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlNodePtrWrap(xmlNodePtr node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:456,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:459,1
    - Dst: PyCapsule_New
      Src: /src/libxslt/python/types.c:462,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - attr
    argTypes:
    - xmlAttributePtr
    constantsTouched: []
    func_position:
      end: 464
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 464
    functionName: libxml_xmlAttributePtrWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlAttributePtrWrap(xmlAttributePtr attr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:488,1
    - Dst: PyCapsule_New
      Src: /src/libxslt/python/types.c:494,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:491,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathContextPtr
    constantsTouched: []
    func_position:
      end: 496
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 496
    functionName: libxml_xmlXPathContextPtrWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlXPathContextPtrWrap(xmlXPathContextPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:752,1
    - Dst: PyCapsule_New
      Src: /src/libxslt/python/types.c:758,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:755,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - xmlOutputBufferPtr
    constantsTouched: []
    func_position:
      end: 760
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 760
    functionName: libxml_xmlOutputBufferPtrWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlOutputBufferPtrWrap(xmlOutputBufferPtr buffer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:341,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:344,1
    - Dst: PY_IMPORT_STRING
      Src: /src/libxslt/python/types.c:348,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 350
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 350
    functionName: libxml_constcharPtrWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PY_IMPORT_STRING
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_constcharPtrWrap(const char *str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxslt/python/types.c:550,1
    - Dst: PyCapsule_GetPointer
      Src: /src/libxslt/python/types.c:555,1
    - Dst: xmlXPathNodeSetFreeNs
      Src: /src/libxslt/python/types.c:553,1
    - Dst: xmlXPathNodeSetFreeNs
      Src: /src/libxslt/python/types.c:555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cap
    argTypes:
    - PyObject*
    constantsTouched: []
    func_position:
      end: 557
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 557
    functionName: libxml_xmlXPathDestructNsNode
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_GetPointer
    - fprintf
    - xmlXPathNodeSetFreeNs
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlXPathDestructNsNode(PyObject *cap) #endif '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/libxslt/python/types.c:86,1
    - Dst: _CrtSetReportMode
      Src: /src/libxslt/python/types.c:105,1
    - Dst: _get_osfhandle
      Src: /src/libxslt/python/types.c:108,1
    - Dst: _set_invalid_parameter_handler
      Src: /src/libxslt/python/types.c:102,1
    - Dst: GetModuleHandleW
      Src: /src/libxslt/python/types.c:113,1
    - Dst: GetProcAddress
      Src: /src/libxslt/python/types.c:118,1
    - Dst: NtQueryInformationFile
      Src: /src/libxslt/python/types.c:121,1
    - Dst: FreeLibrary
      Src: /src/libxslt/python/types.c:154,1
    - Dst: fcntl
      Src: /src/libxslt/python/types.c:177,1
    - Dst: dup
      Src: /src/libxslt/python/types.c:212,1
    - Dst: fdopen
      Src: /src/libxslt/python/types.c:215,1
    - Dst: close
      Src: /src/libxslt/python/types.c:217,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 65
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyObject*
    constantsTouched: []
    func_position:
      end: 221
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 221
    functionName: libxml_PyFileGet
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - NtQueryInformationFile
    - GetModuleHandleW
    - _CrtSetReportMode
    - close
    - dup
    - fdopen
    - _set_invalid_parameter_handler
    - fcntl
    - FreeLibrary
    - PyObject_AsFileDescriptor
    - GetProcAddress
    - _get_osfhandle
    linkageType: ''
    returnType: FILE*
    signature: 'FILE *libxml_PyFileGet(PyObject *f) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:358,1
    - Dst: PY_IMPORT_STRING
      Src: /src/libxslt/python/types.c:365,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 367
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 367
    functionName: libxml_constxmlCharPtrWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PY_IMPORT_STRING
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_constxmlCharPtrWrap(const xmlChar * str) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/types.c:565,1
    - Dst: PyList_SetItem
      Src: /src/libxslt/python/types.c:589,1
    - Dst: PyList_New
      Src: /src/libxslt/python/types.c:586,1
    - Dst: PyList_New
      Src: /src/libxslt/python/types.c:576,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:568,1
    - Dst: libxml_xmlNodePtrWrap
      Src: /src/libxslt/python/types.c:589,1
    - Dst: PyList_New
      Src: /src/libxslt/python/types.c:601,1
    - Dst: PyList_New
      Src: /src/libxslt/python/types.c:606,1
    - Dst: PyCapsule_New
      Src: /src/libxslt/python/types.c:611,1
    - Dst: PyList_SetItem
      Src: /src/libxslt/python/types.c:614,1
    - Dst: PyList_SetItem
      Src: /src/libxslt/python/types.c:618,1
    - Dst: libxml_xmlNodePtrWrap
      Src: /src/libxslt/python/types.c:618,1
    - Dst: PyFloat_FromDouble
      Src: /src/libxslt/python/types.c:627,1
    - Dst: PY_IMPORT_STRING
      Src: /src/libxslt/python/types.c:630,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/python/types.c:639,1
    - Dst: printf
      Src: /src/libxslt/python/types.c:634,1
    - Dst: PY_IMPORT_INT
      Src: /src/libxslt/python/types.c:624,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/types.c:636,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 1
    argNames:
    - obj
    argTypes:
    - xmlXPathObjectPtr
    constantsTouched: []
    func_position:
      end: 641
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 641
    functionName: libxml_xmlXPathObjectPtrWrap
    functionSourceFile: /src/libxslt/python/types.c
    functionUses: []
    functionsReached:
    - PY_IMPORT_INT
    - PY_IMPORT_STRING
    - Py_INCREF
    - PyCapsule_New
    - libxml_xmlNodePtrWrap
    - PyList_New
    - xmlXPathFreeObject
    - PyFloat_FromDouble
    - PyList_SetItem
    - printf
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlXPathObjectPtrWrap(xmlXPathObjectPtr obj) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/libxslt.c:202,1
    - Dst: Py_XDECREF
      Src: /src/libxslt/python/libxslt.c:205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 206
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 206
    functionName: deallocateCallback
    functionSourceFile: /src/libxslt/python/libxslt.c
    functionUses: []
    functionsReached:
    - Py_XDECREF
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void deallocateCallback(void *payload, const xmlChar *name
      ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/libxslt.c:102,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/libxslt.c:105,1
    - Dst: PyCapsule_New
      Src: /src/libxslt/python/libxslt.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: libxslt_xsltElemPreCompPtrWrap
    functionSourceFile: /src/libxslt/python/libxslt.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxslt_xsltElemPreCompPtrWrap(xsltElemPreCompPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/libxslt.c:70,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/libxslt.c:73,1
    - Dst: PyCapsule_New
      Src: /src/libxslt/python/libxslt.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - style
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: libxslt_xsltStylesheetPtrWrap
    functionSourceFile: /src/libxslt/python/libxslt.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxslt_xsltStylesheetPtrWrap(xsltStylesheetPtr style) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/libxslt.c:241,1
    - Dst: xsltTransformError
      Src: /src/libxslt/python/libxslt.c:251,1
    - Dst: xsltTransformError
      Src: /src/libxslt/python/libxslt.c:245,1
    - Dst: xsltTransformError
      Src: /src/libxslt/python/libxslt.c:264,1
    - Dst: printf
      Src: /src/libxslt/python/libxslt.c:266,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/python/libxslt.c:274,1
    - Dst: xsltTransformError
      Src: /src/libxslt/python/libxslt.c:277,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/python/libxslt.c:283,1
    - Dst: xsltTransformError
      Src: /src/libxslt/python/libxslt.c:286,1
    - Dst: Py_BuildValue
      Src: /src/libxslt/python/libxslt.c:292,1
    - Dst: libxslt_xsltStylesheetPtrWrap
      Src: /src/libxslt/python/libxslt.c:293,1
    - Dst: PyObject_CallObject
      Src: /src/libxslt/python/libxslt.c:298,1
    - Dst: Py_DECREF
      Src: /src/libxslt/python/libxslt.c:299,1
    - Dst: Py_DECREF
      Src: /src/libxslt/python/libxslt.c:300,1
    - Dst: xsltNewElemPreComp
      Src: /src/libxslt/python/libxslt.c:307,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/libxslt.c:297,1
    - Dst: libxml_xmlNodePtrWrap
      Src: /src/libxslt/python/libxslt.c:294,1
    - Dst: Py_XDECREF
      Src: /src/libxslt/python/libxslt.c:305,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 3
    argNames:
    - style
    - inst
    - function
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    - xsltTransformFunction
    constantsTouched: []
    func_position:
      end: 309
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 309
    functionName: libxslt_xsltElementPreCompCallback
    functionSourceFile: /src/libxslt/python/libxslt.c
    functionUses: []
    functionsReached:
    - PyObject_CallObject
    - xsltNewElemPreComp
    - libxslt_xsltStylesheetPtrWrap
    - Py_INCREF
    - xmlHashLookup2
    - libxml_xmlNodePtrWrap
    - Py_XDECREF
    - Py_BuildValue
    - xsltTransformError
    - printf
    - Py_DECREF
    linkageType: ''
    returnType: xsltElemPreCompPtr
    signature: 'static xsltElemPreCompPtr libxslt_xsltElementPreCompCallback(xsltStylesheetPtr
      style, xmlNodePtr inst, xsltTransformFunction function) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxslt/python/libxslt.c:537,1
    - Dst: xmlDictFree
      Src: /src/libxslt/python/libxslt.c:541,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxslt/python/libxslt.c:552,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/python/libxslt.c:548,1
    - Dst: xmlDictReference
      Src: /src/libxslt/python/libxslt.c:546,1
    - Dst: libxml_xmlParserCtxtPtrWrap
      Src: /src/libxslt/python/libxslt.c:560,1
    - Dst: libxslt_xsltTransformContextPtrWrap
      Src: /src/libxslt/python/libxslt.c:563,1
    - Dst: PyObject_CallFunction
      Src: /src/libxslt/python/libxslt.c:564,1
    - Dst: libxslt_xsltStylesheetPtrWrap
      Src: /src/libxslt/python/libxslt.c:568,1
    - Dst: PyObject_CallFunction
      Src: /src/libxslt/python/libxslt.c:569,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/python/libxslt.c:592,1
    - Dst: Py_XDECREF
      Src: /src/libxslt/python/libxslt.c:573,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/python/libxslt.c:588,1
    - Dst: PyObject_GetAttrString
      Src: /src/libxslt/python/libxslt.c:580,1
    - Dst: PyxmlNode_Get
      Src: /src/libxslt/python/libxslt.c:581,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 5
    argNames:
    - URI
    - dict
    - options
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlChar*
    - xmlDictPtr
    - int
    - void*
    - xsltLoadType
    constantsTouched: []
    func_position:
      end: 602
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 602
    functionName: pythonDocLoaderFuncWrapper
    functionSourceFile: /src/libxslt/python/libxslt.c
    functionUses: []
    functionsReached:
    - xmlCtxtUseOptions
    - PyObject_CallFunction
    - libxslt_xsltStylesheetPtrWrap
    - PyObject_GetAttrString
    - Py_XDECREF
    - xmlDictFree
    - PyxmlNode_Get
    - xmlDictReference
    - libxml_xmlParserCtxtPtrWrap
    - xmlFreeDoc
    - xsltGenericDebug
    - libxslt_xsltTransformContextPtrWrap
    - xmlNewParserCtxt
    linkageType: ''
    returnType: xmlDocPtr
    signature: 'static xmlDocPtr pythonDocLoaderFuncWrapper(const xmlChar * URI, xmlDictPtr
      dict, int options, void *ctxt ATTRIBUTE_UNUSED, xsltLoadType type ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/libxslt.c:971,1
    - Dst: xsltSetGenericErrorFunc
      Src: /src/libxslt/python/libxslt.c:974,1
    - Dst: xmlSetGenericErrorFunc
      Src: /src/libxslt/python/libxslt.c:973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 975
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 975
    functionName: libxslt_xsltErrorInitialize
    functionSourceFile: /src/libxslt/python/libxslt.c
    functionUses: []
    functionsReached:
    - xmlSetGenericErrorFunc
    - printf
    - xsltSetGenericErrorFunc
    linkageType: ''
    returnType: void
    signature: 'static void libxslt_xsltErrorInitialize(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/libxslt.c:1028,1
    - Dst: fprintf
      Src: /src/libxslt/python/libxslt.c:1040,1
    - Dst: PyObject_HasAttrString
      Src: /src/libxslt/python/libxslt.c:1044,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/python/libxslt.c:1038,1
    - Dst: PyObject_CallMethod
      Src: /src/libxslt/python/libxslt.c:1045,1
    - Dst: libxslt_xsltStylesheetPtrWrap
      Src: /src/libxslt/python/libxslt.c:1046,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - style
    - URI
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1049
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1049
    functionName: libxslt_xsltPythonExtModuleStyleInit
    functionSourceFile: /src/libxslt/python/libxslt.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - fprintf
    - libxslt_xsltStylesheetPtrWrap
    - xmlHashLookup
    - printf
    linkageType: ''
    returnType: void*
    signature: "static void *libxslt_xsltPythonExtModuleStyleInit(xsltStylesheetPtr
      style,\t const xmlChar * URI) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/libxslt.c:1089,1
    - Dst: PyObject_CallMethod
      Src: /src/libxslt/python/libxslt.c:1106,1
    - Dst: PyObject_HasAttrString
      Src: /src/libxslt/python/libxslt.c:1105,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/python/libxslt.c:1099,1
    - Dst: fprintf
      Src: /src/libxslt/python/libxslt.c:1101,1
    - Dst: libxslt_xsltTransformContextPtrWrap
      Src: /src/libxslt/python/libxslt.c:1107,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - ctxt
    - URI
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1111
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1111
    functionName: libxslt_xsltPythonExtModuleCtxtInit
    functionSourceFile: /src/libxslt/python/libxslt.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - fprintf
    - xmlHashLookup
    - printf
    - libxslt_xsltTransformContextPtrWrap
    linkageType: ''
    returnType: void*
    signature: "static void *libxslt_xsltPythonExtModuleCtxtInit(xsltTransformContextPtr
      ctxt,\t const xmlChar * URI) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _vsnprintf_s
      Src: /src/libxslt/python/libxslt.c:39,1
    - Dst: _vscprintf
      Src: /src/libxslt/python/libxslt.c:41,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 4
    argNames:
    - outBuf
    - size
    - format
    - ap
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: c99_vsnprintf
    functionSourceFile: /src/libxslt/python/libxslt.c
    functionUses: []
    functionsReached:
    - _vscprintf
    - _vsnprintf_s
    linkageType: ''
    returnType: int
    signature: '__inline int c99_vsnprintf(char *outBuf, size_t size, const char *format,
      va_list ap) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/libxslt.c:86,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/libxslt.c:89,1
    - Dst: PyCapsule_New
      Src: /src/libxslt/python/libxslt.c:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 95
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 95
    functionName: libxslt_xsltTransformContextPtrWrap
    functionSourceFile: /src/libxslt/python/libxslt.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - printf
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxslt_xsltTransformContextPtrWrap(xsltTransformContextPtr
      ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/libxslt.c:213,1
    - Dst: Py_XDECREF
      Src: /src/libxslt/python/libxslt.c:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 217
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 217
    functionName: deallocateClasse
    functionSourceFile: /src/libxslt/python/libxslt.c
    functionUses: []
    functionsReached:
    - Py_XDECREF
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void deallocateClasse(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/libxslt.c:330,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/python/libxslt.c:341,1
    - Dst: printf
      Src: /src/libxslt/python/libxslt.c:344,1
    - Dst: printf
      Src: /src/libxslt/python/libxslt.c:335,1
    - Dst: Py_BuildValue
      Src: /src/libxslt/python/libxslt.c:349,1
    - Dst: libxslt_xsltTransformContextPtrWrap
      Src: /src/libxslt/python/libxslt.c:350,1
    - Dst: libxml_xmlNodePtrWrap
      Src: /src/libxslt/python/libxslt.c:351,1
    - Dst: libxml_xmlNodePtrWrap
      Src: /src/libxslt/python/libxslt.c:352,1
    - Dst: libxslt_xsltElemPreCompPtrWrap
      Src: /src/libxslt/python/libxslt.c:353,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/libxslt.c:355,1
    - Dst: Py_XDECREF
      Src: /src/libxslt/python/libxslt.c:362,1
    - Dst: Py_DECREF
      Src: /src/libxslt/python/libxslt.c:357,1
    - Dst: PyObject_CallObject
      Src: /src/libxslt/python/libxslt.c:356,1
    - Dst: Py_DECREF
      Src: /src/libxslt/python/libxslt.c:358,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - ctxt
    - node
    - inst
    - comp
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 363
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 363
    functionName: libxslt_xsltElementTransformCallback
    functionSourceFile: /src/libxslt/python/libxslt.c
    functionUses: []
    functionsReached:
    - PyObject_CallObject
    - libxslt_xsltElemPreCompPtrWrap
    - Py_INCREF
    - xmlHashLookup2
    - libxml_xmlNodePtrWrap
    - Py_XDECREF
    - Py_BuildValue
    - printf
    - libxslt_xsltTransformContextPtrWrap
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: "static void libxslt_xsltElementTransformCallback(xsltTransformContextPtr
      ctxt,\t\t\t\t xmlNodePtr node,\t\t\t\t xmlNodePtr inst,\t\t\t\t xsltElemPreCompPtr
      comp) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/libxslt.c:444,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/python/libxslt.c:450,1
    - Dst: PyTuple_New
      Src: /src/libxslt/python/libxslt.c:458,1
    - Dst: printf
      Src: /src/libxslt/python/libxslt.c:453,1
    - Dst: PyTuple_SetItem
      Src: /src/libxslt/python/libxslt.c:459,1
    - Dst: libxml_xmlXPathParserContextPtrWrap
      Src: /src/libxslt/python/libxslt.c:459,1
    - Dst: valuePop
      Src: /src/libxslt/python/libxslt.c:461,1
    - Dst: libxml_xmlXPathObjectPtrWrap
      Src: /src/libxslt/python/libxslt.c:462,1
    - Dst: PyTuple_SetItem
      Src: /src/libxslt/python/libxslt.c:463,1
    - Dst: Py_INCREF
      Src: /src/libxslt/python/libxslt.c:466,1
    - Dst: Py_DECREF
      Src: /src/libxslt/python/libxslt.c:469,1
    - Dst: libxml_xmlXPathObjectPtrConvert
      Src: /src/libxslt/python/libxslt.c:473,1
    - Dst: Py_DECREF
      Src: /src/libxslt/python/libxslt.c:468,1
    - Dst: PyObject_CallObject
      Src: /src/libxslt/python/libxslt.c:467,1
    - Dst: valuePush
      Src: /src/libxslt/python/libxslt.c:474,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 476
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 476
    functionName: libxslt_xmlXPathFuncCallback
    functionSourceFile: /src/libxslt/python/libxslt.c
    functionUses: []
    functionsReached:
    - PyObject_CallObject
    - PyTuple_New
    - libxml_xmlXPathParserContextPtrWrap
    - Py_INCREF
    - PyTuple_SetItem
    - xmlHashLookup2
    - libxml_xmlXPathObjectPtrConvert
    - valuePop
    - valuePush
    - libxml_xmlXPathObjectPtrWrap
    - printf
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: 'static void libxslt_xmlXPathFuncCallback(xmlXPathParserContextPtr
      ctxt, int nargs) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vfprintf
      Src: /src/libxslt/python/libxslt.c:930,1
    - Dst: printf
      Src: /src/libxslt/python/libxslt.c:924,1
    - Dst: Py_XDECREF
      Src: /src/libxslt/python/libxslt.c:963,1
    - Dst: PyObject_CallObject
      Src: /src/libxslt/python/libxslt.c:961,1
    - Dst: libxml_charPtrWrap
      Src: /src/libxslt/python/libxslt.c:959,1
    - Dst: PyTuple_SetItem
      Src: /src/libxslt/python/libxslt.c:957,1
    - Dst: va_start
      Src: /src/libxslt/python/libxslt.c:929,1
    - Dst: va_start
      Src: /src/libxslt/python/libxslt.c:940,1
    - Dst: vsnprintf
      Src: /src/libxslt/python/libxslt.c:941,1
    - Dst: PyTuple_New
      Src: /src/libxslt/python/libxslt.c:956,1
    - Dst: PyTuple_SetItem
      Src: /src/libxslt/python/libxslt.c:960,1
    - Dst: va_end
      Src: /src/libxslt/python/libxslt.c:931,1
    - Dst: xmlMalloc
      Src: /src/libxslt/python/libxslt.c:933,1
    - Dst: va_end
      Src: /src/libxslt/python/libxslt.c:942,1
    - Dst: xmlFree
      Src: /src/libxslt/python/libxslt.c:950,1
    - Dst: Py_XINCREF
      Src: /src/libxslt/python/libxslt.c:958,1
    - Dst: libxslt_xsltErrorFuncHandler
      Src: /src/libxslt/python/libxslt.c:911,1
    - Dst: xmlRealloc
      Src: /src/libxslt/python/libxslt.c:949,1
    - Dst: Py_XDECREF
      Src: /src/libxslt/python/libxslt.c:962,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 0
    argNames:
    - 2,3
    argTypes: []
    constantsTouched: []
    func_position:
      end: 965
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 965
    functionName: LIBXSLT_ATTR_FORMAT
    functionSourceFile: /src/libxslt/python/libxslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - libxslt_xsltErrorFuncHandler
    - Py_XINCREF
    - PyObject_CallObject
    - PyTuple_New
    - vfprintf
    - PyTuple_SetItem
    - libxml_charPtrWrap
    - xmlRealloc
    - Py_XDECREF
    - va_end
    - va_start
    - xmlMalloc
    - printf
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: 'static void LIBXSLT_ATTR_FORMAT(2,3)libxslt_xsltErrorFuncHandler(void
      *ctx ATTRIBUTE_UNUSED, const char *msg, ...) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/libxslt.c:1057,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/python/libxslt.c:1067,1
    - Dst: fprintf
      Src: /src/libxslt/python/libxslt.c:1069,1
    - Dst: PyObject_CallMethod
      Src: /src/libxslt/python/libxslt.c:1074,1
    - Dst: PyObject_HasAttrString
      Src: /src/libxslt/python/libxslt.c:1073,1
    - Dst: libxslt_xsltStylesheetPtrWrap
      Src: /src/libxslt/python/libxslt.c:1075,1
    - Dst: Py_XDECREF
      Src: /src/libxslt/python/libxslt.c:1077,1
    - Dst: Py_XDECREF
      Src: /src/libxslt/python/libxslt.c:1078,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 3
    argNames:
    - style
    - URI
    - data
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 1080
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1080
    functionName: libxslt_xsltPythonExtModuleStyleShutdown
    functionSourceFile: /src/libxslt/python/libxslt.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - fprintf
    - libxslt_xsltStylesheetPtrWrap
    - Py_XDECREF
    - xmlHashLookup
    - printf
    linkageType: ''
    returnType: void
    signature: "static void libxslt_xsltPythonExtModuleStyleShutdown(xsltStylesheetPtr
      style,\t const xmlChar * URI, void *data) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/python/libxslt.c:1119,1
    - Dst: PyObject_HasAttrString
      Src: /src/libxslt/python/libxslt.c:1135,1
    - Dst: PyObject_CallMethod
      Src: /src/libxslt/python/libxslt.c:1136,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/python/libxslt.c:1129,1
    - Dst: fprintf
      Src: /src/libxslt/python/libxslt.c:1131,1
    - Dst: libxslt_xsltTransformContextPtrWrap
      Src: /src/libxslt/python/libxslt.c:1137,1
    - Dst: Py_XDECREF
      Src: /src/libxslt/python/libxslt.c:1139,1
    - Dst: Py_XDECREF
      Src: /src/libxslt/python/libxslt.c:1140,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 3
    argNames:
    - ctxt
    - URI
    - data
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 1142
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1142
    functionName: libxslt_xsltPythonExtModuleCtxtShutdown
    functionSourceFile: /src/libxslt/python/libxslt.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - fprintf
    - Py_XDECREF
    - xmlHashLookup
    - printf
    - libxslt_xsltTransformContextPtrWrap
    linkageType: ''
    returnType: void
    signature: "static void libxslt_xsltPythonExtModuleCtxtShutdown(xsltTransformContextPtr
      ctxt,\t const xmlChar * URI, void *data) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyInit_libxml2mod
      Src: /src/libxslt/python/libxslt.c:1262,1
    - Dst: PyModule_Create
      Src: /src/libxslt/python/libxslt.c:1269,1
    - Dst: Py_InitModule
      Src: /src/libxslt/python/libxslt.c:1271,1
    - Dst: initlibxml2mod
      Src: /src/libxslt/python/libxslt.c:1264,1
    - Dst: libxslt_xsltErrorInitialize
      Src: /src/libxslt/python/libxslt.c:1278,1
    - Dst: exsltRegisterAll
      Src: /src/libxslt/python/libxslt.c:1282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1286
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1286
    functionName: initlibxsltmod
    functionSourceFile: /src/libxslt/python/libxslt.c
    functionUses: []
    functionsReached:
    - libxslt_xsltErrorInitialize
    - PyInit_libxml2mod
    - initlibxml2mod
    - exsltRegisterAll
    - Py_InitModule
    - PyModule_Create
    linkageType: ''
    returnType: void
    signature: 'void initlibxsltmod(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 2
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2046
      start: 2026
    functionDepth: 0
    functionLinenumber: 2026
    functionLinenumberEnd: 2046
    functionName: xsltGetPSVIPtr
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void**
    signature: 'void **xsltGetPSVIPtr(xmlNodePtr cur) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2284,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2292,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2296,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libxslt/xsltutils.c:2295,1
    - Dst: snprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2348,1
    - Dst: snprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2360,1
    - Dst: snprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2386,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2401,1
    - Dst: pretty_templ_match
      Src: /src/libxslt/libxslt/xsltutils.c:2402,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:2407,1
    - Dst: pretty_templ_match
      Src: /src/libxslt/libxslt/xsltutils.c:2391,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2398,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2282,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2290,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2302,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xsltutils.c:2313,1
    - Dst: snprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2350,1
    - Dst: pretty_templ_match
      Src: /src/libxslt/libxslt/xsltutils.c:2356,1
    - Dst: snprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2362,1
    - Dst: snprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2384,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2389,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2395,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2406,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libxslt/xsltutils.c:2279,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2280,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libxslt/xsltutils.c:2287,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2288,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2300,1
    - Dst: snprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2349,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2354,1
    - Dst: snprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2359,1
    - Dst: pretty_templ_match
      Src: /src/libxslt/libxslt/xsltutils.c:2366,1
    - Dst: snprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2385,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:2409,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xsltutils.c:2237,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2277,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2271,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/xsltutils.c:2253,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2303,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2308,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2298,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2333,1
    - Dst: snprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2361,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2363,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 168
    argCount: 2
    argNames:
    - ctxt
    - output
    argTypes:
    - xsltTransformContextPtr
    - FILE*
    constantsTouched: []
    func_position:
      end: 2410
      start: 2219
    functionDepth: 0
    functionLinenumber: 2219
    functionLinenumberEnd: 2410
    functionName: xsltSaveProfiling
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltNextImport
    - fprintf
    - xmlStrlen
    - pretty_templ_match
    - snprintf
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: 'void xsltSaveProfiling(xsltTransformContextPtr ctxt, FILE *output) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNewContext
      Src: /src/libxslt/libxslt/xsltutils.c:2557,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxslt/libxslt/xsltutils.c:2569,1
    - Dst: xmlXPathCtxtCompile
      Src: /src/libxslt/libxslt/xsltutils.c:2566,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - style
    - str
    - flags
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 2577
      start: 2546
    functionDepth: 0
    functionLinenumber: 2546
    functionLinenumberEnd: 2577
    functionName: xsltXPathCompileFlags
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlXPathCtxtCompile
    - xmlXPathFreeContext
    - xmlXPathNewContext
    linkageType: ''
    returnType: xmlXPathCompExprPtr
    signature: 'xmlXPathCompExprPtr xsltXPathCompileFlags(xsltStylesheetPtr style,
      const xmlChar *str, int flags) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:452,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - xsltPointerListPtr
    constantsTouched: []
    func_position:
      end: 454
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 454
    functionName: xsltPointerListFree
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xsltPointerListFree(xsltPointerListPtr list) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - handler
    argTypes:
    - void*
    - xmlGenericErrorFunc
    constantsTouched: []
    func_position:
      end: 655
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 655
    functionName: xsltSetGenericDebugFunc
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xsltSetGenericDebugFunc(void *ctx, xmlGenericErrorFunc handler) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/xsltutils.c:1750,1
    - Dst: xmlStrcasecmp
      Src: /src/libxslt/libxslt/xsltutils.c:1755,1
    - Dst: xmlFindCharEncodingHandler
      Src: /src/libxslt/libxslt/xsltutils.c:1757,1
    - Dst: xmlOutputBufferCreateFilename
      Src: /src/libxslt/libxslt/xsltutils.c:1758,1
    - Dst: xmlStrcasecmp
      Src: /src/libxslt/libxslt/xsltutils.c:1756,1
    - Dst: xmlOutputBufferCreateFilename
      Src: /src/libxslt/libxslt/xsltutils.c:1760,1
    - Dst: xsltSaveResultTo
      Src: /src/libxslt/libxslt/xsltutils.c:1764,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxslt/libxslt/xsltutils.c:1765,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - URL
    - result
    - style
    - compression
    argTypes:
    - char*
    - xmlDocPtr
    - xsltStylesheetPtr
    - int
    constantsTouched: []
    func_position:
      end: 1767
      start: 1738
    functionDepth: 0
    functionLinenumber: 1738
    functionLinenumberEnd: 1767
    functionName: xsltSaveResultToFilename
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlStrcasecmp
    - xmlOutputBufferClose
    - XSLT_GET_IMPORT_PTR
    - xsltSaveResultTo
    - xmlOutputBufferCreateFilename
    - xmlFindCharEncodingHandler
    linkageType: ''
    returnType: int
    signature: "int xsltSaveResultToFilename(const char *URL, xmlDocPtr result,\t\t\t
      xsltStylesheetPtr style, int compression) "
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetProp
      Src: /src/libxslt/libxslt/xsltutils.c:174,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xsltutils.c:199,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xsltutils.c:201,1
    - Dst: xmlNodeListGetString
      Src: /src/libxslt/libxslt/xsltutils.c:204,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xsltutils.c:197,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xsltutils.c:205,1
    - Dst: xmlGetDtdAttrDesc
      Src: /src/libxslt/libxslt/xsltutils.c:220,1
    - Dst: xmlGetDtdAttrDesc
      Src: /src/libxslt/libxslt/xsltutils.c:222,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/xsltutils.c:228,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xsltutils.c:229,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xsltutils.c:230,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 49
    argCount: 3
    argNames:
    - node
    - name
    - nameSpace
    argTypes:
    - xmlNodePtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 235
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 235
    functionName: xsltGetNsProp
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlNodeListGetString
    - xmlStrdup
    - xmlStrEqual
    - xmlGetDtdAttrDesc
    - xmlGetProp
    - xmlSearchNs
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xsltGetNsProp(xmlNodePtr node, const xmlChar *name, const
      xmlChar *nameSpace) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xsltutils.c:425,1
    - Dst: memset
      Src: /src/libxslt/libxslt/xsltutils.c:431,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/xsltutils.c:427,1
    - Dst: xsltPointerListAddSize
      Src: /src/libxslt/libxslt/xsltutils.c:433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - initialSize
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 437
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 437
    functionName: xsltPointerListCreate
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - memset
    - xsltGenericError
    - xmlMalloc
    - xsltPointerListAddSize
    linkageType: ''
    returnType: xsltPointerListPtr
    signature: 'xsltPointerListPtr xsltPointerListCreate(int initialSize) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericErrorDefaultFunc
      Src: /src/libxslt/libxslt/xsltutils.c:574,1
    - Dst: va_end
      Src: /src/libxslt/libxslt/xsltutils.c:582,1
    - Dst: va_start
      Src: /src/libxslt/libxslt/xsltutils.c:580,1
    - Dst: vfprintf
      Src: /src/libxslt/libxslt/xsltutils.c:581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames:
    - 2,3
    argTypes: []
    constantsTouched: []
    func_position:
      end: 583
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 583
    functionName: LIBXSLT_ATTR_FORMAT
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - va_start
    - vfprintf
    - xsltGenericErrorDefaultFunc
    - va_end
    linkageType: ''
    returnType: void
    signature: 'static void LIBXSLT_ATTR_FORMAT(2,3)xsltGenericErrorDefaultFunc(void
      *ctx ATTRIBUTE_UNUSED, const char *msg, ...) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/xsltutils.c:848,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:878,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:851,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/xsltutils.c:883,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xsltutils.c:877,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/xsltutils.c:885,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:889,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xsltutils.c:892,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:893,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 2
    argNames:
    - node
    - name
    argTypes:
    - xmlNodePtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 895
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 895
    functionName: xsltGetQNameURI
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrdup
    - xsltGenericError
    - xmlSearchNs
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xsltGetQNameURI(xmlNodePtr node, xmlChar ** name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - delta
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 2087
      start: 2084
    functionDepth: 0
    functionLinenumber: 2084
    functionLinenumberEnd: 2087
    functionName: xsltCalibrateAdjust
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xsltCalibrateAdjust(long delta) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2647
      start: 2643
    functionDepth: 0
    functionLinenumber: 2643
    functionLinenumberEnd: 2647
    functionName: xsltSetDebuggerStatus
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xsltSetDebuggerStatus(int value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2721
      start: 2716
    functionDepth: 0
    functionLinenumber: 2716
    functionLinenumberEnd: 2721
    functionName: xslDropCall
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xslDropCall(void) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetProp
      Src: /src/libxslt/libxslt/xsltutils.c:87,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xsltutils.c:105,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xsltutils.c:101,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xsltutils.c:103,1
    - Dst: xmlNodeListGetString
      Src: /src/libxslt/libxslt/xsltutils.c:107,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xsltutils.c:109,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xsltutils.c:111,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:112,1
    - Dst: xmlGetDtdAttrDesc
      Src: /src/libxslt/libxslt/xsltutils.c:128,1
    - Dst: xmlGetDtdAttrDesc
      Src: /src/libxslt/libxslt/xsltutils.c:130,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xsltutils.c:138,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xsltutils.c:137,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/xsltutils.c:136,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 59
    argCount: 4
    argNames:
    - style
    - node
    - name
    - nameSpace
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 144
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 144
    functionName: xsltGetCNsProp
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictLookup
    - xmlNodeListGetString
    - xmlStrEqual
    - xmlGetDtdAttrDesc
    - xmlGetProp
    - xmlSearchNs
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xsltGetCNsProp(xsltStylesheetPtr style, xmlNodePtr
      node, const xmlChar *name, const xmlChar *nameSpace) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xsltutils.c:388,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/xsltutils.c:402,1
    - Dst: xmlRealloc
      Src: /src/libxslt/libxslt/xsltutils.c:399,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/xsltutils.c:391,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - list
    - item
    - initialSize
    argTypes:
    - xsltPointerListPtr
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 410
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 410
    functionName: xsltPointerListAddSize
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlRealloc
    - xsltGenericError
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: "int xsltPointerListAddSize(xsltPointerListPtr list,\t\t void *item,\t\t
      int initialSize) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltXPathCompileFlags
      Src: /src/libxslt/libxslt/xsltutils.c:2591,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - style
    - str
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2592
      start: 2589
    functionDepth: 0
    functionLinenumber: 2589
    functionLinenumberEnd: 2592
    functionName: xsltXPathCompile
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xsltXPathCompileFlags
    linkageType: ''
    returnType: xmlXPathCompExprPtr
    signature: 'xmlXPathCompExprPtr xsltXPathCompile(xsltStylesheetPtr style, const
      xmlChar *str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2613
      start: 2609
    functionDepth: 0
    functionLinenumber: 2609
    functionLinenumberEnd: 2613
    functionName: xsltGetDebuggerStatus
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xsltGetDebuggerStatus(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 2
    argNames:
    - utf
    - len
    argTypes:
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 365
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 365
    functionName: xsltGetUTF8CharZ
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xsltGetUTF8CharZ(const unsigned char *utf, int *len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebugDefaultFunc
      Src: /src/libxslt/libxslt/xsltutils.c:620,1
    - Dst: va_start
      Src: /src/libxslt/libxslt/xsltutils.c:626,1
    - Dst: vfprintf
      Src: /src/libxslt/libxslt/xsltutils.c:627,1
    - Dst: va_end
      Src: /src/libxslt/libxslt/xsltutils.c:628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames:
    - 2,3
    argTypes: []
    constantsTouched: []
    func_position:
      end: 629
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 629
    functionName: LIBXSLT_ATTR_FORMAT
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - va_end
    - va_start
    - xsltGenericDebugDefaultFunc
    - vfprintf
    linkageType: ''
    returnType: void
    signature: 'static void LIBXSLT_ATTR_FORMAT(2,3)xsltGenericDebugDefaultFunc(void
      *ctx ATTRIBUTE_UNUSED, const char *msg, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - ctxt
    - ctx
    - handler
    argTypes:
    - xsltTransformContextPtr
    - void*
    - xmlGenericErrorFunc
    constantsTouched: []
    func_position:
      end: 747
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 747
    functionName: xsltSetTransformErrorFunc
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xsltSetTransformErrorFunc(xsltTransformContextPtr ctxt, void
      *ctx, xmlGenericErrorFunc handler) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsltPrintErrorContext
      Src: /src/libxslt/libxslt/xsltutils.c:779,1
    - Dst: error
      Src: /src/libxslt/libxslt/xsltutils.c:781,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:783,1
    - Dst: XSLT_GET_VAR_STR
      Src: /src/libxslt/libxslt/xsltutils.c:780,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 4
    argNames:
    - ctxt
    - style
    - node
    - msg
    - '...'
    argTypes:
    - xsltTransformContextPtr
    - xsltStylesheetPtr
    - xmlNodePtr
    - char*
    constantsTouched: []
    func_position:
      end: 784
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 784
    functionName: xsltTransformError
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlFree
    - XSLT_GET_VAR_STR
    - error
    - xsltPrintErrorContext
    linkageType: ''
    returnType: void
    signature: "void xsltTransformError(xsltTransformContextPtr ctxt,\t\t xsltStylesheetPtr
      style,\t\t xmlNodePtr node,\t\t const char *msg, ...) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/xsltutils.c:1835,1
    - Dst: xmlStrcasecmp
      Src: /src/libxslt/libxslt/xsltutils.c:1841,1
    - Dst: xmlOutputBufferCreateFd
      Src: /src/libxslt/libxslt/xsltutils.c:1843,1
    - Dst: xmlStrcasecmp
      Src: /src/libxslt/libxslt/xsltutils.c:1840,1
    - Dst: xmlFindCharEncodingHandler
      Src: /src/libxslt/libxslt/xsltutils.c:1842,1
    - Dst: xmlOutputBufferCreateFd
      Src: /src/libxslt/libxslt/xsltutils.c:1845,1
    - Dst: xsltSaveResultTo
      Src: /src/libxslt/libxslt/xsltutils.c:1849,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxslt/libxslt/xsltutils.c:1850,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - fd
    - result
    - style
    argTypes:
    - int
    - xmlDocPtr
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 1852
      start: 1824
    functionDepth: 0
    functionLinenumber: 1824
    functionLinenumberEnd: 1852
    functionName: xsltSaveResultToFd
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlStrcasecmp
    - xmlOutputBufferClose
    - XSLT_GET_IMPORT_PTR
    - xmlOutputBufferCreateFd
    - xsltSaveResultTo
    - xmlFindCharEncodingHandler
    linkageType: ''
    returnType: int
    signature: 'int xsltSaveResultToFd(int fd, xmlDocPtr result, xsltStylesheetPtr
      style) '
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 5
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1946
      start: 1919
    functionDepth: 0
    functionLinenumber: 1919
    functionLinenumberEnd: 1946
    functionName: xsltGetSourceNodeFlags
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xsltGetSourceNodeFlags(xmlNodePtr node) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: QueryPerformanceCounter
      Src: /src/libxslt/libxslt/xsltutils.c:2109,1
    - Dst: xsltCalibrateTimestamps
      Src: /src/libxslt/libxslt/xsltutils.c:2143,1
    - Dst: QueryPerformanceFrequency
      Src: /src/libxslt/libxslt/xsltutils.c:2115,1
    - Dst: clock_gettime
      Src: /src/libxslt/libxslt/xsltutils.c:2144,1
    - Dst: clock_gettime
      Src: /src/libxslt/libxslt/xsltutils.c:2141,1
    - Dst: clock_gettime
      Src: /src/libxslt/libxslt/xsltutils.c:2148,1
    - Dst: gettimeofday
      Src: /src/libxslt/libxslt/xsltutils.c:2162,1
    - Dst: xsltCalibrateTimestamps
      Src: /src/libxslt/libxslt/xsltutils.c:2164,1
    - Dst: gettimeofday
      Src: /src/libxslt/libxslt/xsltutils.c:2165,1
    - Dst: gettimeofday
      Src: /src/libxslt/libxslt/xsltutils.c:2169,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2184
      start: 2097
    functionDepth: 0
    functionLinenumber: 2097
    functionLinenumberEnd: 2184
    functionName: xsltTimestamp
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - QueryPerformanceFrequency
    - xsltCalibrateTimestamps
    - QueryPerformanceCounter
    - gettimeofday
    - clock_gettime
    linkageType: ''
    returnType: long
    signature: 'long xsltTimestamp(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - templ
    - source
    argTypes:
    - xsltTemplatePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2709
      start: 2703
    functionDepth: 0
    functionLinenumber: 2703
    functionLinenumberEnd: 2709
    functionName: xslAddCall
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xslAddCall(xsltTemplatePtr templ, xmlNodePtr source) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - templ
    argTypes:
    - xsltTemplatePtr
    constantsTouched: []
    func_position:
      end: 2208
      start: 2186
    functionDepth: 0
    functionLinenumber: 2186
    functionLinenumberEnd: 2208
    functionName: pretty_templ_match
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static char *pretty_templ_match(xsltTemplatePtr templ) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xsltutils.c:2460,1
    - Dst: xmlNewDocNode
      Src: /src/libxslt/libxslt/xsltutils.c:2501,1
    - Dst: xmlDocSetRootElement
      Src: /src/libxslt/libxslt/xsltutils.c:2502,1
    - Dst: xmlNewDoc
      Src: /src/libxslt/libxslt/xsltutils.c:2500,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/xsltutils.c:2479,1
    - Dst: xmlNewChild
      Src: /src/libxslt/libxslt/xsltutils.c:2505,1
    - Dst: snprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2506,1
    - Dst: xmlSetProp
      Src: /src/libxslt/libxslt/xsltutils.c:2507,1
    - Dst: xmlSetProp
      Src: /src/libxslt/libxslt/xsltutils.c:2508,1
    - Dst: xmlSetProp
      Src: /src/libxslt/libxslt/xsltutils.c:2509,1
    - Dst: xmlSetProp
      Src: /src/libxslt/libxslt/xsltutils.c:2510,1
    - Dst: xmlSetProp
      Src: /src/libxslt/libxslt/xsltutils.c:2513,1
    - Dst: xmlSetProp
      Src: /src/libxslt/libxslt/xsltutils.c:2516,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:2522,1
    - Dst: snprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2512,1
    - Dst: snprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2515,1
    - Dst: xmlSetProp
      Src: /src/libxslt/libxslt/xsltutils.c:2519,1
    - Dst: snprintf
      Src: /src/libxslt/libxslt/xsltutils.c:2518,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 2525
      start: 2439
    functionDepth: 0
    functionLinenumber: 2439
    functionLinenumberEnd: 2525
    functionName: xsltGetProfileInformation
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSetProp
    - xmlDocSetRootElement
    - xsltNextImport
    - xmlNewChild
    - xmlNewDocNode
    - xmlNewDoc
    - snprintf
    - xmlMalloc
    linkageType: ''
    returnType: xmlDocPtr
    signature: 'xmlDocPtr xsltGetProfileInformation(xsltTransformContextPtr ctxt) '
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 58
    argCount: 2
    argNames:
    - utf
    - len
    argTypes:
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 305
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 305
    functionName: xsltGetUTF8Char
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xsltGetUTF8Char(const unsigned char *utf, int *len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - xsltPointerListPtr
    constantsTouched: []
    func_position:
      end: 472
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 472
    functionName: xsltPointerListClear
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xsltPointerListClear(xsltPointerListPtr list) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xsltutils.c:505,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xsltutils.c:507,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xsltutils.c:509,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xsltutils.c:512,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:515,1
    - Dst: xsltEvalTemplateString
      Src: /src/libxslt/libxslt/xsltutils.c:517,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libxslt/xsltutils.c:519,1
    - Dst: error
      Src: /src/libxslt/libxslt/xsltutils.c:521,1
    - Dst: error
      Src: /src/libxslt/libxslt/xsltutils.c:523,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:524,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 3
    argNames:
    - ctxt
    - node
    - inst
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 528
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 528
    functionName: xsltMessage
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetNsProp
    - xmlStrlen
    - xsltEvalTemplateString
    - xmlStrEqual
    - xsltTransformError
    - error
    linkageType: ''
    returnType: void
    signature: 'void xsltMessage(xsltTransformContextPtr ctxt, xmlNodePtr node, xmlNodePtr
      inst) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetLineNo
      Src: /src/libxslt/libxslt/xsltutils.c:693,1
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/xsltutils.c:705,1
    - Dst: error
      Src: /src/libxslt/libxslt/xsltutils.c:715,1
    - Dst: error
      Src: /src/libxslt/libxslt/xsltutils.c:720,1
    - Dst: error
      Src: /src/libxslt/libxslt/xsltutils.c:718,1
    - Dst: error
      Src: /src/libxslt/libxslt/xsltutils.c:722,1
    - Dst: error
      Src: /src/libxslt/libxslt/xsltutils.c:724,1
    - Dst: error
      Src: /src/libxslt/libxslt/xsltutils.c:726,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 57
    argCount: 3
    argNames:
    - ctxt
    - style
    - node
    argTypes:
    - xsltTransformContextPtr
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 727
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 727
    functionName: xsltPrintErrorContext
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlGetLineNo
    - XSLT_CCTXT
    - error
    linkageType: ''
    returnType: void
    signature: "void xsltPrintErrorContext(xsltTransformContextPtr ctxt,\t xsltStylesheetPtr
      style, xmlNodePtr node) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/xsltutils.c:922,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/xsltutils.c:950,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/xsltutils.c:951,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xsltutils.c:946,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xsltutils.c:954,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/xsltutils.c:959,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:964,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xsltutils.c:967,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:968,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 3
    argNames:
    - style
    - node
    - name
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 970
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 970
    functionName: xsltGetQNameURI2
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictLookup
    - xmlStrndup
    - xmlSearchNs
    - xsltGenericError
    - xsltTransformError
    linkageType: ''
    returnType: xmlChar*
    signature: "const xmlChar *xsltGetQNameURI2(xsltStylesheetPtr style, xmlNodePtr
      node,\t\t const xmlChar **name) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/xsltutils.c:1792,1
    - Dst: xmlStrcasecmp
      Src: /src/libxslt/libxslt/xsltutils.c:1798,1
    - Dst: xmlOutputBufferCreateFile
      Src: /src/libxslt/libxslt/xsltutils.c:1800,1
    - Dst: xmlStrcasecmp
      Src: /src/libxslt/libxslt/xsltutils.c:1797,1
    - Dst: xmlFindCharEncodingHandler
      Src: /src/libxslt/libxslt/xsltutils.c:1799,1
    - Dst: xmlOutputBufferCreateFile
      Src: /src/libxslt/libxslt/xsltutils.c:1802,1
    - Dst: xsltSaveResultTo
      Src: /src/libxslt/libxslt/xsltutils.c:1807,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxslt/libxslt/xsltutils.c:1808,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - file
    - result
    - style
    argTypes:
    - FILE*
    - xmlDocPtr
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 1810
      start: 1781
    functionDepth: 0
    functionLinenumber: 1781
    functionLinenumberEnd: 1810
    functionName: xsltSaveResultToFile
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlStrcasecmp
    - xmlOutputBufferClose
    - XSLT_GET_IMPORT_PTR
    - xsltSaveResultTo
    - xmlFindCharEncodingHandler
    - xmlOutputBufferCreateFile
    linkageType: ''
    returnType: int
    signature: 'int xsltSaveResultToFile(FILE *file, xmlDocPtr result, xsltStylesheetPtr
      style) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/xsltutils.c:1877,1
    - Dst: xmlStrcasecmp
      Src: /src/libxslt/libxslt/xsltutils.c:1883,1
    - Dst: xmlStrcasecmp
      Src: /src/libxslt/libxslt/xsltutils.c:1882,1
    - Dst: xmlFindCharEncodingHandler
      Src: /src/libxslt/libxslt/xsltutils.c:1884,1
    - Dst: xmlAllocOutputBuffer
      Src: /src/libxslt/libxslt/xsltutils.c:1885,1
    - Dst: xmlAllocOutputBuffer
      Src: /src/libxslt/libxslt/xsltutils.c:1887,1
    - Dst: xsltSaveResultTo
      Src: /src/libxslt/libxslt/xsltutils.c:1891,1
    - Dst: xmlBufUse
      Src: /src/libxslt/libxslt/xsltutils.c:1894,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/xsltutils.c:1895,1
    - Dst: xmlBufContent
      Src: /src/libxslt/libxslt/xsltutils.c:1895,1
    - Dst: xmlBufUse
      Src: /src/libxslt/libxslt/xsltutils.c:1897,1
    - Dst: xmlBufContent
      Src: /src/libxslt/libxslt/xsltutils.c:1898,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/xsltutils.c:1906,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/xsltutils.c:1898,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/xsltutils.c:1903,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxslt/libxslt/xsltutils.c:1909,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 4
    argNames:
    - doc_txt_ptr
    - doc_txt_len
    - result
    - style
    argTypes:
    - xmlChar**
    - int*
    - xmlDocPtr
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 1911
      start: 1866
    functionDepth: 0
    functionLinenumber: 1866
    functionLinenumberEnd: 1911
    functionName: xsltSaveResultToString
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlStrcasecmp
    - xmlStrndup
    - xmlOutputBufferClose
    - XSLT_GET_IMPORT_PTR
    - xsltSaveResultTo
    - xmlFindCharEncodingHandler
    - xmlBufUse
    - xmlAllocOutputBuffer
    - xmlBufContent
    linkageType: ''
    returnType: int
    signature: "int xsltSaveResultToString(xmlChar **doc_txt_ptr, int * doc_txt_len,\t\t
      xmlDocPtr result, xsltStylesheetPtr style) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - 'no'
    - block
    argTypes:
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 2673
      start: 2660
    functionDepth: 0
    functionLinenumber: 2660
    functionLinenumberEnd: 2673
    functionName: xsltSetDebuggerCallbacks
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xsltSetDebuggerCallbacks(int no, void *block) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltTimestamp
      Src: /src/libxslt/libxslt/xsltutils.c:2073,1
    - Dst: xsltTimestamp
      Src: /src/libxslt/libxslt/xsltutils.c:2074,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2075
      start: 2068
    functionDepth: 0
    functionLinenumber: 2068
    functionLinenumberEnd: 2075
    functionName: xsltCalibrateTimestamps
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xsltTimestamp
    linkageType: ''
    returnType: long
    signature: 'static long xsltCalibrateTimestamps(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 4
    argNames:
    - cur
    - node
    - templ
    - ctxt
    argTypes:
    - xmlNodePtr
    - xmlNodePtr
    - xsltTemplatePtr
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 2692
      start: 2686
    functionDepth: 0
    functionLinenumber: 2686
    functionLinenumberEnd: 2692
    functionName: xslHandleDebugger
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void xslHandleDebugger(xmlNodePtr cur, xmlNodePtr node, xsltTemplatePtr
      templ,\t xsltTransformContextPtr ctxt) "
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/xsltutils.c:1042,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xsltutils.c:1060,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/xsltutils.c:1062,1
    - Dst: xmlXPathConvertString
      Src: /src/libxslt/libxslt/xsltutils.c:1094,1
    - Dst: xmlXPathCompiledEval
      Src: /src/libxslt/libxslt/xsltutils.c:1091,1
    - Dst: xmlXPathConvertNumber
      Src: /src/libxslt/libxslt/xsltutils.c:1096,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xsltutils.c:1105,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xsltutils.c:1117,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:1121,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xsltutils.c:1128,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 87
    argCount: 4
    argNames:
    - ctxt
    - sort
    - number
    - locale
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1147
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1147
    functionName: xsltComputeSortResultInternal
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltGenericDebug
    - xmlXPathConvertString
    - xmlXPathCompiledEval
    - xmlXPathConvertNumber
    - xsltGenericError
    - xmlMalloc
    - xsltTransformError
    linkageType: ''
    returnType: xmlXPathObjectPtr*
    signature: 'static xmlXPathObjectPtr *xsltComputeSortResultInternal(xsltTransformContextPtr
      ctxt, xmlNodePtr sort, int number, void *locale) '
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/xsltutils.c:1218,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xsltutils.c:1222,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:1231,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libxslt/xsltutils.c:1303,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libxslt/xsltutils.c:1299,1
    - Dst: xsltComputeSortResultInternal
      Src: /src/libxslt/libxslt/xsltutils.c:1337,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/xsltutils.c:1422,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:1423,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/xsltutils.c:1237,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xsltutils.c:1241,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xsltutils.c:1246,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libxslt/xsltutils.c:1298,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/xsltutils.c:1256,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libxslt/xsltutils.c:1354,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libxslt/xsltutils.c:1359,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xsltutils.c:1227,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xsltutils.c:1224,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:1265,1
    - Dst: xsltComputeSortResultInternal
      Src: /src/libxslt/libxslt/xsltutils.c:1273,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libxslt/xsltutils.c:1353,1
    - Dst: xmlStrcmp
      Src: /src/libxslt/libxslt/xsltutils.c:1370,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xsltutils.c:1243,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltutils.c:1250,1
    - Dst: xmlStrcmp
      Src: /src/libxslt/libxslt/xsltutils.c:1313,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 203
    argCount: 3
    argNames:
    - ctxt
    - sorts
    - nbsorts
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr*
    - int
    constantsTouched: []
    func_position:
      end: 1426
      start: 1179
    functionDepth: 0
    functionLinenumber: 1179
    functionLinenumberEnd: 1426
    functionName: xsltDefaultSortFunction
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathIsNaN
    - xsltComputeSortResultInternal
    - xsltEvalAttrValueTemplate
    - xmlStrEqual
    - xmlXPathFreeObject
    - xsltTransformError
    - xmlStrcmp
    linkageType: ''
    returnType: void
    signature: "void xsltDefaultSortFunction(xsltTransformContextPtr ctxt, xmlNodePtr
      *sorts,\t int nbsorts) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ctxt
    - handler
    argTypes:
    - xsltTransformContextPtr
    - xsltSortFunc
    constantsTouched: []
    func_position:
      end: 1487
      start: 1484
    functionDepth: 0
    functionLinenumber: 1484
    functionLinenumberEnd: 1487
    functionName: xsltSetCtxtSortFunc
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xsltSetCtxtSortFunc(xsltTransformContextPtr ctxt, xsltSortFunc
      handler) '
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xsltutils.c:1595,1
    - Dst: htmlSetMetaEncoding
      Src: /src/libxslt/libxslt/xsltutils.c:1599,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xsltutils.c:1616,1
    - Dst: htmlDocContentDumpOutput
      Src: /src/libxslt/libxslt/xsltutils.c:1613,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxslt/libxslt/xsltutils.c:1694,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxslt/libxslt/xsltutils.c:1717,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/xsltutils.c:1580,1
    - Dst: htmlDocContentDumpFormatOutput
      Src: /src/libxslt/libxslt/xsltutils.c:1603,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxslt/libxslt/xsltutils.c:1622,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xsltutils.c:1607,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxslt/libxslt/xsltutils.c:1665,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxslt/libxslt/xsltutils.c:1666,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxslt/libxslt/xsltutils.c:1667,1
    - Dst: xmlGetCharEncodingName
      Src: /src/libxslt/libxslt/xsltutils.c:1675,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxslt/libxslt/xsltutils.c:1680,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxslt/libxslt/xsltutils.c:1681,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxslt/libxslt/xsltutils.c:1682,1
    - Dst: htmlSetMetaEncoding
      Src: /src/libxslt/libxslt/xsltutils.c:1609,1
    - Dst: XSLT_GET_IMPORT_INT
      Src: /src/libxslt/libxslt/xsltutils.c:1659,1
    - Dst: xmlOutputBufferFlush
      Src: /src/libxslt/libxslt/xsltutils.c:1614,1
    - Dst: XSLT_GET_IMPORT_INT
      Src: /src/libxslt/libxslt/xsltutils.c:1660,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxslt/libxslt/xsltutils.c:1669,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxslt/libxslt/xsltutils.c:1679,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxslt/libxslt/xsltutils.c:1689,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxslt/libxslt/xsltutils.c:1713,1
    - Dst: xmlOutputBufferFlush
      Src: /src/libxslt/libxslt/xsltutils.c:1721,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xsltutils.c:1579,1
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/xsltutils.c:1588,1
    - Dst: XSLT_GET_IMPORT_INT
      Src: /src/libxslt/libxslt/xsltutils.c:1589,1
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/xsltutils.c:1587,1
    - Dst: htmlSetMetaEncoding
      Src: /src/libxslt/libxslt/xsltutils.c:1597,1
    - Dst: xmlOutputBufferFlush
      Src: /src/libxslt/libxslt/xsltutils.c:1605,1
    - Dst: htmlSetMetaEncoding
      Src: /src/libxslt/libxslt/xsltutils.c:1611,1
    - Dst: xmlOutputBufferFlush
      Src: /src/libxslt/libxslt/xsltutils.c:1654,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxslt/libxslt/xsltutils.c:1663,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxslt/libxslt/xsltutils.c:1686,1
    - Dst: xmlNodeDumpOutput
      Src: /src/libxslt/libxslt/xsltutils.c:1708,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 131
    argCount: 3
    argNames:
    - buf
    - result
    - style
    argTypes:
    - xmlOutputBufferPtr
    - xmlDocPtr
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 1724
      start: 1562
    functionDepth: 0
    functionLinenumber: 1562
    functionLinenumberEnd: 1724
    functionName: xsltSaveResultTo
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - htmlDocContentDumpOutput
    - htmlSetMetaEncoding
    - xmlNodeDumpOutput
    - XSLT_GET_IMPORT_PTR
    - xmlOutputBufferWriteString
    - XSLT_GET_IMPORT_INT
    - htmlDocContentDumpFormatOutput
    - xmlOutputBufferFlush
    - xmlStrEqual
    - xmlGetCharEncodingName
    - xsltGenericError
    linkageType: ''
    returnType: int
    signature: "int xsltSaveResultTo(xmlOutputBufferPtr buf, xmlDocPtr result,\t xsltStylesheetPtr
      style) "
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 2
    argNames:
    - node
    - flags
    argTypes:
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 2018
      start: 1995
    functionDepth: 0
    functionLinenumber: 1995
    functionLinenumberEnd: 2018
    functionName: xsltClearSourceNodeFlags
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xsltClearSourceNodeFlags(xmlNodePtr node, int flags) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ctxt
    - options
    argTypes:
    - xsltTransformContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 1543
      start: 1527
    functionDepth: 0
    functionLinenumber: 1527
    functionLinenumberEnd: 1543
    functionName: xsltSetCtxtParseOptions
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xsltSetCtxtParseOptions(xsltTransformContextPtr ctxt, int options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - handler
    argTypes:
    - void*
    - xmlGenericErrorFunc
    constantsTouched: []
    func_position:
      end: 609
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 609
    functionName: xsltSetGenericErrorFunc
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xsltSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCmpNodes
      Src: /src/libxslt/libxslt/xsltutils.c:999,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - list
    argTypes:
    - xmlNodeSetPtr
    constantsTouched: []
    func_position:
      end: 1007
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 1007
    functionName: xsltDocumentSortFunction
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlXPathCmpNodes
    linkageType: ''
    returnType: void
    signature: 'void xsltDocumentSortFunction(xmlNodeSetPtr list) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsltComputeSortResultInternal
      Src: /src/libxslt/libxslt/xsltutils.c:1166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - ctxt
    - sort
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1168
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1168
    functionName: xsltComputeSortResult
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xsltComputeSortResultInternal
    linkageType: ''
    returnType: xmlXPathObjectPtr*
    signature: 'xmlXPathObjectPtr *xsltComputeSortResult(xsltTransformContextPtr ctxt,
      xmlNodePtr sort) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltSortFunction
      Src: /src/libxslt/libxslt/xsltutils.c:1452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - ctxt
    - sorts
    - nbsorts
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr*
    - int
    constantsTouched: []
    func_position:
      end: 1453
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1453
    functionName: xsltDoSortFunction
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xsltSortFunction
    linkageType: ''
    returnType: void
    signature: 'void xsltDoSortFunction(xsltTransformContextPtr ctxt, xmlNodePtr *
      sorts, int nbsorts) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - handler
    argTypes:
    - xsltSortFunc
    constantsTouched: []
    func_position:
      end: 1470
      start: 1464
    functionDepth: 0
    functionLinenumber: 1464
    functionLinenumberEnd: 1470
    functionName: xsltSetSortFunc
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xsltSetSortFunc(xsltSortFunc handler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ctxt
    - newLocale
    - freeLocale
    - genSortKey
    argTypes:
    - xsltTransformContextPtr
    - xsltNewLocaleFunc
    - xsltFreeLocaleFunc
    - xsltGenSortKeyFunc
    constantsTouched: []
    func_position:
      end: 1509
      start: 1498
    functionDepth: 0
    functionLinenumber: 1498
    functionLinenumberEnd: 1509
    functionName: xsltSetCtxtLocaleHandlers
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xsltSetCtxtLocaleHandlers(xsltTransformContextPtr ctxt, xsltNewLocaleFunc
      newLocale, xsltFreeLocaleFunc freeLocale, xsltGenSortKeyFunc genSortKey) '
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 10
    argCount: 3
    argNames:
    - ctxt
    - node
    - flags
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 1984
      start: 1957
    functionDepth: 0
    functionLinenumber: 1957
    functionLinenumberEnd: 1984
    functionName: xsltSetSourceNodeFlags
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xsltSetSourceNodeFlags(xsltTransformContextPtr ctxt, xmlNodePtr
      node, int flags) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xsltutils.c:810,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xsltutils.c:813,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xsltutils.c:814,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xsltutils.c:812,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 3
    argNames:
    - dict
    - name
    - prefix
    argTypes:
    - xmlDictPtr
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 816
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 816
    functionName: xsltSplitQName
    functionSourceFile: /src/libxslt/libxslt/xsltutils.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xsltSplitQName(xmlDictPtr dict, const xmlChar *name,
      const xmlChar **prefix) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _vsnprintf_s
      Src: /src/libxslt/libxslt/win32config.h:27,1
    - Dst: _vscprintf
      Src: /src/libxslt/libxslt/win32config.h:29,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 4
    argNames:
    - outBuf
    - size
    - format
    - ap
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 32
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 32
    functionName: c99_vsnprintf
    functionSourceFile: /src/libxslt/libxslt/win32config.h
    functionUses: []
    functionsReached:
    - _vscprintf
    - _vsnprintf_s
    linkageType: ''
    returnType: int
    signature: '__inline int c99_vsnprintf(char *outBuf, size_t size, const char *format,
      va_list ap) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxslt/libxslt/win32config.h:39,1
    - Dst: c99_vsnprintf
      Src: /src/libxslt/libxslt/win32config.h:40,1
    - Dst: va_end
      Src: /src/libxslt/libxslt/win32config.h:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - outBuf
    - size
    - format
    - '...'
    argTypes:
    - char*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: c99_snprintf
    functionSourceFile: /src/libxslt/libxslt/win32config.h
    functionUses: []
    functionsReached:
    - c99_vsnprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: '__inline int c99_snprintf(char *outBuf, size_t size, const char *format,
      ...) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:109,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:135,1
    - Dst: xsltLoadDocument
      Src: /src/libxslt/libxslt/functions.c:116,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/functions.c:122,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:111,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libxslt/functions.c:135,1
    - Dst: xmlXPathNewContext
      Src: /src/libxslt/libxslt/functions.c:141,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:143,1
    - Dst: xmlXPtrEval
      Src: /src/libxslt/libxslt/functions.c:154,1
    - Dst: xmlXPtrEval
      Src: /src/libxslt/libxslt/functions.c:158,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:168,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libxslt/functions.c:174,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxslt/libxslt/functions.c:161,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:175,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:165,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 3
    argNames:
    - ctxt
    - URI
    - fragment
    argTypes:
    - xmlXPathParserContextPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 176
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 176
    functionName: xsltDocumentFunctionLoadDocument
    functionSourceFile: /src/libxslt/libxslt/functions.c
    functionUses: []
    functionsReached:
    - xmlXPathNewContext
    - xmlXPtrEval
    - xmlXPathFreeContext
    - xsltXPathGetTransformContext
    - valuePush
    - xmlStrEqual
    - xmlXPathFreeObject
    - xsltLoadDocument
    - xmlXPathNewNodeSet
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'static void xsltDocumentFunctionLoadDocument(xmlXPathParserContextPtr
      ctxt, const xmlChar* URI, const xmlChar *fragment) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/functions.c:565,1
    - Dst: xmlXPathErr
      Src: /src/libxslt/libxslt/functions.c:574,1
    - Dst: xmlXPathConvertString
      Src: /src/libxslt/libxslt/functions.c:572,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:581,1
    - Dst: valuePop
      Src: /src/libxslt/libxslt/functions.c:570,1
    - Dst: xmlXPathNewString
      Src: /src/libxslt/libxslt/functions.c:581,1
    - Dst: xmlGetDocEntity
      Src: /src/libxslt/libxslt/functions.c:585,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:587,1
    - Dst: xmlXPathNewString
      Src: /src/libxslt/libxslt/functions.c:587,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:590,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:595,1
    - Dst: xmlXPathNewString
      Src: /src/libxslt/libxslt/functions.c:592,1
    - Dst: xmlXPathNewString
      Src: /src/libxslt/libxslt/functions.c:590,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:592,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 596
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 596
    functionName: xsltUnparsedEntityURIFunction
    functionSourceFile: /src/libxslt/libxslt/functions.c
    functionUses: []
    functionsReached:
    - xmlXPathErr
    - xmlGetDocEntity
    - valuePop
    - valuePush
    - xmlXPathNewString
    - xmlXPathFreeObject
    - xmlXPathConvertString
    - xsltGenericError
    linkageType: ''
    returnType: void
    signature: 'void xsltUnparsedEntityURIFunction(xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xsltGetSourceNodeFlags
      Src: /src/libxslt/libxslt/functions.c:761,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:768,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libxslt/functions.c:745,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:817,1
    - Dst: xmlXPathWrapString
      Src: /src/libxslt/libxslt/functions.c:814,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:704,1
    - Dst: valuePop
      Src: /src/libxslt/libxslt/functions.c:718,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:721,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:714,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:788,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:775,1
    - Dst: strlen
      Src: /src/libxslt/libxslt/functions.c:803,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/functions.c:786,1
    - Dst: snprintf
      Src: /src/libxslt/libxslt/functions.c:794,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:814,1
    - Dst: xmlXPathNewCString
      Src: /src/libxslt/libxslt/functions.c:721,1
    - Dst: xmlXPathCmpNodes
      Src: /src/libxslt/libxslt/functions.c:726,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:731,1
    - Dst: xsltGetPSVIPtr
      Src: /src/libxslt/libxslt/functions.c:753,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:755,1
    - Dst: snprintf
      Src: /src/libxslt/libxslt/functions.c:798,1
    - Dst: xsltSetSourceNodeFlags
      Src: /src/libxslt/libxslt/functions.c:783,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 107
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 818
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 818
    functionName: xsltGenerateIdFunction
    functionSourceFile: /src/libxslt/libxslt/functions.c
    functionUses: []
    functionsReached:
    - xmlXPathWrapString
    - xsltSetSourceNodeFlags
    - xmlXPathCmpNodes
    - xsltGetSourceNodeFlags
    - xmlStrlen
    - xsltXPathGetTransformContext
    - snprintf
    - valuePop
    - valuePush
    - xmlXPathFreeObject
    - xsltGetPSVIPtr
    - strlen
    - xsltTransformError
    - xmlMalloc
    - xmlXPathNewCString
    linkageType: ''
    returnType: void
    signature: 'void xsltGenerateIdFunction(xmlXPathParserContextPtr ctxt, int nargs) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:841,1
    - Dst: xmlXPathNsLookup
      Src: /src/libxslt/libxslt/functions.c:854,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:856,1
    - Dst: xmlXPathNewString
      Src: /src/libxslt/libxslt/functions.c:880,1
    - Dst: xmlXPathNewString
      Src: /src/libxslt/libxslt/functions.c:904,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:835,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:848,1
    - Dst: xmlSplitQName2
      Src: /src/libxslt/libxslt/functions.c:850,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/functions.c:852,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:880,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:867,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/functions.c:889,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/functions.c:897,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:898,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:901,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/functions.c:909,1
    - Dst: xmlXPathNewString
      Src: /src/libxslt/libxslt/functions.c:901,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:841,1
    - Dst: xmlXPathNewString
      Src: /src/libxslt/libxslt/functions.c:848,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/functions.c:861,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/functions.c:863,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/functions.c:871,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/functions.c:869,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:884,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/functions.c:894,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:904,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:911,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:835,1
    - Dst: valuePop
      Src: /src/libxslt/libxslt/functions.c:846,1
    - Dst: xmlStrstr
      Src: /src/libxslt/libxslt/functions.c:878,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:856,1
    - Dst: xmlXPathNewString
      Src: /src/libxslt/libxslt/functions.c:884,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:890,1
    - Dst: xmlXPathNewString
      Src: /src/libxslt/libxslt/functions.c:890,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:895,1
    - Dst: xmlXPathNewString
      Src: /src/libxslt/libxslt/functions.c:895,1
    - Dst: xmlXPathNewString
      Src: /src/libxslt/libxslt/functions.c:898,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/functions.c:907,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 87
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 912
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 912
    functionName: xsltSystemPropertyFunction
    functionSourceFile: /src/libxslt/libxslt/functions.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathNsLookup
    - xsltXPathGetTransformContext
    - xmlStrdup
    - valuePop
    - valuePush
    - xmlXPathNewString
    - xmlStrEqual
    - xmlSplitQName2
    - xmlStrstr
    - xmlXPathFreeObject
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'void xsltSystemPropertyFunction(xmlXPathParserContextPtr ctxt, int
      nargs) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:1047,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:1052,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:1047,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:1054,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:1054,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:1056,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libxslt/functions.c:1056,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:1058,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libxslt/functions.c:1058,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 1060
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1060
    functionName: xsltCurrentFunction
    functionSourceFile: /src/libxslt/libxslt/functions.c
    functionUses: []
    functionsReached:
    - xsltTransformError
    - xmlXPathNewNodeSet
    - xsltXPathGetTransformContext
    - valuePush
    linkageType: ''
    returnType: void
    signature: 'static void xsltCurrentFunction(xmlXPathParserContextPtr ctxt, int
      nargs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathRegisterFunc
      Src: /src/libxslt/libxslt/functions.c:1077,1
    - Dst: xmlXPathRegisterFunc
      Src: /src/libxslt/libxslt/functions.c:1084,1
    - Dst: xmlXPathRegisterFunc
      Src: /src/libxslt/libxslt/functions.c:1081,1
    - Dst: xmlXPathRegisterFunc
      Src: /src/libxslt/libxslt/functions.c:1082,1
    - Dst: xmlXPathRegisterFunc
      Src: /src/libxslt/libxslt/functions.c:1079,1
    - Dst: xmlXPathRegisterFunc
      Src: /src/libxslt/libxslt/functions.c:1086,1
    - Dst: xmlXPathRegisterFunc
      Src: /src/libxslt/libxslt/functions.c:1088,1
    - Dst: xmlXPathRegisterFunc
      Src: /src/libxslt/libxslt/functions.c:1090,1
    - Dst: xmlXPathRegisterFunc
      Src: /src/libxslt/libxslt/functions.c:1092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathContextPtr
    constantsTouched: []
    func_position:
      end: 1094
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1094
    functionName: xsltRegisterAllFunctions
    functionSourceFile: /src/libxslt/libxslt/functions.c
    functionUses: []
    functionsReached:
    - xmlXPathRegisterFunc
    linkageType: ''
    returnType: void
    signature: 'void xsltRegisterAllFunctions(xmlXPathContextPtr ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/functions.c:69,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/functions.c:84,1
    - Dst: xsltExtModuleFunctionLookup
      Src: /src/libxslt/libxslt/functions.c:80,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/functions.c:77,1
    - Dst: XML_CAST_FPTR
      Src: /src/libxslt/libxslt/functions.c:77,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 3
    argNames:
    - vctxt
    - name
    - ns_uri
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 88
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 88
    functionName: xsltXPathFunctionLookup
    functionSourceFile: /src/libxslt/libxslt/functions.c
    functionUses: []
    functionsReached:
    - xmlHashLookup2
    - xsltGenericDebug
    - xsltExtModuleFunctionLookup
    - XML_CAST_FPTR
    linkageType: ''
    returnType: xmlXPathFunction
    signature: "xmlXPathFunction xsltXPathFunctionLookup (void *vctxt,\t\t\t const
      xmlChar *name, const xmlChar *ns_uri) "
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:195,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:202,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libxslt/functions.c:224,1
    - Dst: xmlXPathNodeSetMerge
      Src: /src/libxslt/libxslt/functions.c:243,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:271,1
    - Dst: xmlParseURI
      Src: /src/libxslt/libxslt/functions.c:281,1
    - Dst: xmlFreeURI
      Src: /src/libxslt/libxslt/functions.c:298,1
    - Dst: xmlNodeGetBase
      Src: /src/libxslt/libxslt/functions.c:313,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:342,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:329,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:331,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/functions.c:340,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:344,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:202,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:195,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:210,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:228,1
    - Dst: xmlXPathObjectCopy
      Src: /src/libxslt/libxslt/functions.c:232,1
    - Dst: xmlXPathStringFunction
      Src: /src/libxslt/libxslt/functions.c:260,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:262,1
    - Dst: valuePop
      Src: /src/libxslt/libxslt/functions.c:269,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:277,1
    - Dst: xmlNodeGetBase
      Src: /src/libxslt/libxslt/functions.c:316,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/functions.c:335,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:210,1
    - Dst: valuePop
      Src: /src/libxslt/libxslt/functions.c:216,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libxslt/functions.c:229,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:234,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:232,1
    - Dst: xsltDocumentFunction
      Src: /src/libxslt/libxslt/functions.c:240,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:245,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:251,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:253,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:254,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:262,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/functions.c:323,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/functions.c:341,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/functions.c:327,1
    - Dst: xsltDocumentFunctionLoadDocument
      Src: /src/libxslt/libxslt/functions.c:334,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libxslt/functions.c:329,1
    - Dst: valuePop
      Src: /src/libxslt/libxslt/functions.c:223,1
    - Dst: valuePop
      Src: /src/libxslt/libxslt/functions.c:241,1
    - Dst: xmlXPathStringFunction
      Src: /src/libxslt/libxslt/functions.c:230,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libxslt/functions.c:235,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:266,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libxslt/functions.c:271,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:283,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:285,1
    - Dst: xmlSaveUri
      Src: /src/libxslt/libxslt/functions.c:295,1
    - Dst: IS_XSLT_REAL_NODE
      Src: /src/libxslt/libxslt/functions.c:302,1
    - Dst: xmlBuildURI
      Src: /src/libxslt/libxslt/functions.c:321,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libxslt/functions.c:331,1
    - Dst: xmlNodeGetBase
      Src: /src/libxslt/libxslt/functions.c:310,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libxslt/functions.c:285,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 155
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 345
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 345
    functionName: xsltDocumentFunction
    functionSourceFile: /src/libxslt/libxslt/functions.c
    functionUses: []
    functionsReached:
    - xmlFreeURI
    - xmlNodeGetBase
    - xmlSaveUri
    - xsltDocumentFunctionLoadDocument
    - xmlXPathStringFunction
    - xmlXPathNodeSetMerge
    - xmlXPathFreeObject
    - xsltTransformError
    - xmlFree
    - xmlParseURI
    - IS_XSLT_REAL_NODE
    - valuePop
    - valuePush
    - xmlBuildURI
    - xsltXPathGetTransformContext
    - xmlStrEqual
    - xmlXPathNewNodeSet
    - xsltDocumentFunction
    - xmlXPathObjectCopy
    linkageType: ''
    returnType: void
    signature: 'void xsltDocumentFunction(xmlXPathParserContextPtr ctxt, int nargs) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathStringFunction
      Src: /src/libxslt/libxslt/functions.c:370,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:373,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libxslt/functions.c:389,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:392,1
    - Dst: xmlXPathNodeSetMerge
      Src: /src/libxslt/libxslt/functions.c:406,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:408,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:411,1
    - Dst: xmlSplitQName2
      Src: /src/libxslt/libxslt/functions.c:437,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:462,1
    - Dst: xmlXPathStringFunction
      Src: /src/libxslt/libxslt/functions.c:463,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/functions.c:542,1
    - Dst: valuePop
      Src: /src/libxslt/libxslt/functions.c:369,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:360,1
    - Dst: xmlXPathStringFunction
      Src: /src/libxslt/libxslt/functions.c:402,1
    - Dst: xmlXPathObjectCopy
      Src: /src/libxslt/libxslt/functions.c:399,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:422,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/functions.c:439,1
    - Dst: xmlXPathNsLookup
      Src: /src/libxslt/libxslt/functions.c:445,1
    - Dst: valuePop
      Src: /src/libxslt/libxslt/functions.c:464,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:498,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:548,1
    - Dst: xsltNewDocument
      Src: /src/libxslt/libxslt/functions.c:512,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:546,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:376,1
    - Dst: xsltKeyFunction
      Src: /src/libxslt/libxslt/functions.c:403,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:400,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:427,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/functions.c:442,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:466,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:539,1
    - Dst: xmlXPathNodeSetMerge
      Src: /src/libxslt/libxslt/functions.c:540,1
    - Dst: xsltFindDocument
      Src: /src/libxslt/libxslt/functions.c:522,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:360,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:373,1
    - Dst: valuePop
      Src: /src/libxslt/libxslt/functions.c:383,1
    - Dst: valuePop
      Src: /src/libxslt/libxslt/functions.c:404,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:399,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxslt/libxslt/functions.c:401,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:393,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:447,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/functions.c:453,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:525,1
    - Dst: xsltGetKey
      Src: /src/libxslt/libxslt/functions.c:535,1
    - Dst: xmlXPathWrapNodeSet
      Src: /src/libxslt/libxslt/functions.c:539,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 136
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 549
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 549
    functionName: xsltKeyFunction
    functionSourceFile: /src/libxslt/libxslt/functions.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathNodeSetMerge
    - xmlXPathNsLookup
    - xsltGetKey
    - xsltXPathGetTransformContext
    - xsltFindDocument
    - xmlStrdup
    - valuePop
    - xmlXPathFreeObject
    - valuePush
    - xsltKeyFunction
    - xmlSplitQName2
    - xsltNewDocument
    - xmlXPathNewNodeSet
    - xmlXPathWrapNodeSet
    - xsltTransformError
    - xmlXPathObjectCopy
    - xmlXPathStringFunction
    linkageType: ''
    returnType: void
    signature: 'void xsltKeyFunction(xmlXPathParserContextPtr ctxt, int nargs) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:651,1
    - Dst: xsltFormatNumberConversion
      Src: /src/libxslt/libxslt/functions.c:671,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/functions.c:676,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:680,1
    - Dst: xmlXPathErr
      Src: /src/libxslt/libxslt/functions.c:665,1
    - Dst: valuePop
      Src: /src/libxslt/libxslt/functions.c:632,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/functions.c:635,1
    - Dst: xmlXPathStringFunction
      Src: /src/libxslt/libxslt/functions.c:658,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:620,1
    - Dst: xmlXPathNewString
      Src: /src/libxslt/libxslt/functions.c:675,1
    - Dst: valuePop
      Src: /src/libxslt/libxslt/functions.c:662,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:682,1
    - Dst: xmlXPathStringFunction
      Src: /src/libxslt/libxslt/functions.c:631,1
    - Dst: xsltSplitQName
      Src: /src/libxslt/libxslt/functions.c:633,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:637,1
    - Dst: xsltDecimalFormatGetByQName
      Src: /src/libxslt/libxslt/functions.c:648,1
    - Dst: valuePop
      Src: /src/libxslt/libxslt/functions.c:659,1
    - Dst: xmlXPathNumberFunction
      Src: /src/libxslt/libxslt/functions.c:661,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:675,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:681,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 64
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 683
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 683
    functionName: xsltFormatNumberFunction
    functionSourceFile: /src/libxslt/libxslt/functions.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathErr
    - xmlXPathNumberFunction
    - xsltSplitQName
    - xsltXPathGetTransformContext
    - xsltDecimalFormatGetByQName
    - xsltFormatNumberConversion
    - valuePop
    - valuePush
    - xmlXPathNewString
    - xmlXPathFreeObject
    - xmlSearchNs
    - xmlXPathStringFunction
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'void xsltFormatNumberFunction(xmlXPathParserContextPtr ctxt, int nargs) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:930,1
    - Dst: valuePop
      Src: /src/libxslt/libxslt/functions.c:942,1
    - Dst: xmlXPathNewBoolean
      Src: /src/libxslt/libxslt/functions.c:948,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/functions.c:976,1
    - Dst: xmlXPathStringFunction
      Src: /src/libxslt/libxslt/functions.c:935,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:945,1
    - Dst: xmlXPathNsLookup
      Src: /src/libxslt/libxslt/functions.c:961,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/functions.c:957,1
    - Dst: xmlSplitQName2
      Src: /src/libxslt/libxslt/functions.c:953,1
    - Dst: xmlXPathNewBoolean
      Src: /src/libxslt/libxslt/functions.c:969,1
    - Dst: xmlXPathNewBoolean
      Src: /src/libxslt/libxslt/functions.c:971,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:937,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:943,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:945,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:947,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:948,1
    - Dst: xsltExtElementLookup
      Src: /src/libxslt/libxslt/functions.c:968,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:963,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/functions.c:958,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:969,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:971,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:930,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:937,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:963,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:974,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/functions.c:978,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 979
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 979
    functionName: xsltElementAvailableFunction
    functionSourceFile: /src/libxslt/libxslt/functions.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathNsLookup
    - xsltXPathGetTransformContext
    - xmlXPathNewBoolean
    - xmlStrdup
    - valuePop
    - xmlXPathFreeObject
    - valuePush
    - xmlSearchNs
    - xmlSplitQName2
    - xsltExtElementLookup
    - xsltTransformError
    - xmlXPathStringFunction
    linkageType: ''
    returnType: void
    signature: 'void xsltElementAvailableFunction(xmlXPathParserContextPtr ctxt, int
      nargs) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: valuePop
      Src: /src/libxslt/libxslt/functions.c:1008,1
    - Dst: xmlXPathNewBoolean
      Src: /src/libxslt/libxslt/functions.c:1022,1
    - Dst: xmlXPathNewBoolean
      Src: /src/libxslt/libxslt/functions.c:1024,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/functions.c:1031,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:996,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:1003,1
    - Dst: xmlSplitQName2
      Src: /src/libxslt/libxslt/functions.c:1010,1
    - Dst: xmlXPathNsLookup
      Src: /src/libxslt/libxslt/functions.c:1014,1
    - Dst: xmlXPathFunctionLookupNS
      Src: /src/libxslt/libxslt/functions.c:1021,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:1022,1
    - Dst: valuePush
      Src: /src/libxslt/libxslt/functions.c:1024,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:996,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:1003,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/functions.c:1012,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/functions.c:1016,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/functions.c:1027,1
    - Dst: xmlXPathStringFunction
      Src: /src/libxslt/libxslt/functions.c:1001,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/functions.c:1029,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/functions.c:1016,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 1032
      start: 989
    functionDepth: 0
    functionLinenumber: 989
    functionLinenumberEnd: 1032
    functionName: xsltFunctionAvailableFunction
    functionSourceFile: /src/libxslt/libxslt/functions.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathNsLookup
    - xsltXPathGetTransformContext
    - xmlXPathNewBoolean
    - xmlXPathFunctionLookupNS
    - xmlStrdup
    - valuePop
    - valuePush
    - xmlXPathFreeObject
    - xmlSplitQName2
    - xsltTransformError
    - xmlXPathStringFunction
    linkageType: ''
    returnType: void
    signature: 'void xsltFunctionAvailableFunction(xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xslt.c:2392,1
    - Dst: memset
      Src: /src/libxslt/libxslt/xslt.c:2398,1
    - Dst: xsltLREInfoCreate
      Src: /src/libxslt/libxslt/xslt.c:2413,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:2394,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 2
    argNames:
    - cctxt
    - node
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2472
      start: 2378
    functionDepth: 0
    functionLinenumber: 2378
    functionLinenumberEnd: 2472
    functionName: xsltCompilerNodePush
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - memset
    - xsltTransformError
    - xmlMalloc
    - xsltLREInfoCreate
    linkageType: ''
    returnType: xsltCompilerNodeInfoPtr
    signature: 'static xsltCompilerNodeInfoPtr xsltCompilerNodePush(xsltCompilerCtxtPtr
      cctxt, xmlNodePtr node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xslt.c:611,1
    - Dst: xsltPointerListCreate
      Src: /src/libxslt/libxslt/xslt.c:621,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:613,1
    - Dst: memset
      Src: /src/libxslt/libxslt/xslt.c:618,1
    - Dst: xsltCompilationCtxtFree
      Src: /src/libxslt/libxslt/xslt.c:629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - style
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 631
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 631
    functionName: xsltCompilationCtxtCreate
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltCompilationCtxtFree
    - xsltPointerListCreate
    - memset
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltCompilerCtxtPtr
    signature: 'static xsltCompilerCtxtPtr xsltCompilationCtxtCreate(xsltStylesheetPtr
      style) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xsltCompilerBuildInScopeNsList
      Src: /src/libxslt/libxslt/xslt.c:5240,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:5265,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xslt.c:5275,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:5296,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5334,1
    - Dst: xsltParseTemplateContent
      Src: /src/libxslt/libxslt/xslt.c:5343,1
    - Dst: xsltCompilerNodePop
      Src: /src/libxslt/libxslt/xslt.c:5366,1
    - Dst: xsltAddTemplate
      Src: /src/libxslt/libxslt/xslt.c:5363,1
    - Dst: xsltNewTemplate
      Src: /src/libxslt/libxslt/xslt.c:5233,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:5277,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xslt.c:5315,1
    - Dst: xmlValidateNCName
      Src: /src/libxslt/libxslt/xslt.c:5318,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5319,1
    - Dst: xsltGetQNameURI
      Src: /src/libxslt/libxslt/xslt.c:5259,1
    - Dst: xsltCompilerNodePush
      Src: /src/libxslt/libxslt/xslt.c:5237,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:5292,1
    - Dst: xsltGetQNameURI
      Src: /src/libxslt/libxslt/xslt.c:5310,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:5316,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xslt.c:5326,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:5249,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xslt.c:5264,1
    - Dst: xmlValidateNCName
      Src: /src/libxslt/libxslt/xslt.c:5267,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5268,1
    - Dst: xmlXPathStringEvalNumber
      Src: /src/libxslt/libxslt/xslt.c:5294,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:5302,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:5284,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:5329,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:5330,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:5332,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 92
    argCount: 2
    argNames:
    - cctxt
    - templNode
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5368
      start: 5220
    functionDepth: 0
    functionLinenumber: 5220
    functionLinenumberEnd: 5368
    functionName: xsltParseXSLTTemplate
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetNsProp
    - xmlXPathStringEvalNumber
    - xmlDictLookup
    - xsltCompilerNodePop
    - xsltNewTemplate
    - xsltGenericDebug
    - xsltCompilerBuildInScopeNsList
    - xsltAddTemplate
    - xsltGetQNameURI
    - xmlStrEqual
    - xsltCompilerNodePush
    - xsltParseTemplateContent
    - xsltTransformError
    - xmlValidateNCName
    linkageType: ''
    returnType: void
    signature: 'static void xsltParseXSLTTemplate(xsltCompilerCtxtPtr cctxt, xmlNodePtr
      templNode) '
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:6140,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:6149,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/xslt.c:6191,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:6183,1
    - Dst: function
      Src: /src/libxslt/libxslt/xslt.c:6204,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:6207,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:6233,1
    - Dst: xsltNamespaceAlias
      Src: /src/libxslt/libxslt/xslt.c:6243,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:6127,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:6141,1
    - Dst: IS_BLANK_NODE
      Src: /src/libxslt/libxslt/xslt.c:6159,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:6163,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:6218,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:6221,1
    - Dst: xsltParseStylesheetStripSpace
      Src: /src/libxslt/libxslt/xslt.c:6222,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:6223,1
    - Dst: xsltParseStylesheetPreserveSpace
      Src: /src/libxslt/libxslt/xslt.c:6224,1
    - Dst: xsltParseStylesheetAttributeSet
      Src: /src/libxslt/libxslt/xslt.c:6232,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:6242,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:6237,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:6231,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:6255,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:6134,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:6142,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/xslt.c:6163,1
    - Dst: xsltExtModuleTopLevelLookup
      Src: /src/libxslt/libxslt/xslt.c:6201,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:6214,1
    - Dst: xsltParseStylesheetImport
      Src: /src/libxslt/libxslt/xslt.c:6164,1
    - Dst: xsltParseStylesheetTemplate
      Src: /src/libxslt/libxslt/xslt.c:6241,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:6246,1
    - Dst: xsltParseGlobalParam
      Src: /src/libxslt/libxslt/xslt.c:6236,1
    - Dst: xsltParseStylesheetDecimalFormat
      Src: /src/libxslt/libxslt/xslt.c:6230,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:6235,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:6136,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/xslt.c:6198,1
    - Dst: IS_BLANK_NODE
      Src: /src/libxslt/libxslt/xslt.c:6177,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:6215,1
    - Dst: xsltParseStylesheetInclude
      Src: /src/libxslt/libxslt/xslt.c:6219,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:6225,1
    - Dst: xsltParseStylesheetOutput
      Src: /src/libxslt/libxslt/xslt.c:6226,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:6227,1
    - Dst: xsltParseStylesheetKey
      Src: /src/libxslt/libxslt/xslt.c:6228,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:6229,1
    - Dst: xsltParseGlobalVariable
      Src: /src/libxslt/libxslt/xslt.c:6234,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 121
    argCount: 2
    argNames:
    - style
    - top
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 6258
      start: 6114
    functionDepth: 0
    functionLinenumber: 6114
    functionLinenumberEnd: 6258
    functionName: xsltParseStylesheetTop
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltParseStylesheetImport
    - xsltParseStylesheetTemplate
    - xsltExtModuleTopLevelLookup
    - xsltParseStylesheetPreserveSpace
    - xsltParseStylesheetAttributeSet
    - xsltParseGlobalParam
    - xsltParseStylesheetOutput
    - xsltParseStylesheetStripSpace
    - xsltGenericDebug
    - xsltGenericError
    - xsltNamespaceAlias
    - xmlFree
    - xsltParseStylesheetDecimalFormat
    - xsltParseGlobalVariable
    - function
    - IS_XSLT_ELEM
    - IS_BLANK_NODE
    - xmlGetNsProp
    - IS_XSLT_NAME
    - xmlStrEqual
    - xsltParseStylesheetKey
    - xsltParseStylesheetInclude
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'static void xsltParseStylesheetTop(xsltStylesheetPtr style, xmlNodePtr
      top) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ns
    - doc
    argTypes:
    - xsltNsMapPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 6366
      start: 6348
    functionDepth: 0
    functionLinenumber: 6348
    functionLinenumberEnd: 6366
    functionName: xsltRestoreDocumentNamespaces
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xsltRestoreDocumentNamespaces(xsltNsMapPtr ns, xmlDocPtr doc) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xslt.c:2588,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:2599,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xslt.c:2597,1
    - Dst: memset
      Src: /src/libxslt/libxslt/xslt.c:2595,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:2590,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:2611,1
    - Dst: xmlRealloc
      Src: /src/libxslt/libxslt/xslt.c:2618,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:2621,1
    - Dst: xsltPointerListAddSize
      Src: /src/libxslt/libxslt/xslt.c:2654,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:2658,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:2674,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:2660,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 2
    argNames:
    - cctxt
    - node
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2677
      start: 2569
    functionDepth: 0
    functionLinenumber: 2569
    functionLinenumberEnd: 2677
    functionName: xsltCompilerBuildInScopeNsList
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlRealloc
    - xsltPointerListAddSize
    - xmlStrEqual
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltNsListContainerPtr
    signature: 'static xsltNsListContainerPtr xsltCompilerBuildInScopeNsList(xsltCompilerCtxtPtr
      cctxt, xmlNodePtr node) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocGetRootElement
      Src: /src/libxslt/libxslt/xslt.c:3709,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:3725,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/xslt.c:3724,1
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/xslt.c:3716,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:3718,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:3726,1
    - Dst: xmlHashUpdateEntry
      Src: /src/libxslt/libxslt/xslt.c:3730,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:3734,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 1
    argNames:
    - style
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 3771
      start: 3690
    functionDepth: 0
    functionLinenumber: 3690
    functionLinenumberEnd: 3771
    functionName: xsltGatherNamespaces
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xsltGenericDebug
    - xmlHashUpdateEntry
    - xmlHashCreate
    - xmlStrEqual
    - xmlHashLookup
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'static void xsltGatherNamespaces(xsltStylesheetPtr style) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:4358,1
    - Dst: xsltCompilerBuildInScopeNsList
      Src: /src/libxslt/libxslt/xslt.c:4395,1
    - Dst: xsltForwardsCompatUnkownItemCreate
      Src: /src/libxslt/libxslt/xslt.c:4377,1
    - Dst: xsltCompilerNodePush
      Src: /src/libxslt/libxslt/xslt.c:4389,1
    - Dst: IS_XSLT_ELEM_FAST
      Src: /src/libxslt/libxslt/xslt.c:4401,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:4402,1
    - Dst: xsltParseAnyXSLTElem
      Src: /src/libxslt/libxslt/xslt.c:4405,1
    - Dst: xsltCompilerNodePop
      Src: /src/libxslt/libxslt/xslt.c:4410,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - cctxt
    - node
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 4413
      start: 4341
    functionDepth: 0
    functionLinenumber: 4341
    functionLinenumberEnd: 4413
    functionName: xsltParseUnknownXSLTElem
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltCompilerNodePop
    - xsltParseAnyXSLTElem
    - IS_XSLT_NAME
    - xsltCompilerBuildInScopeNsList
    - xsltForwardsCompatUnkownItemCreate
    - IS_XSLT_ELEM_FAST
    - xsltCompilerNodePush
    - xsltTransformError
    linkageType: ''
    returnType: int
    signature: "static int xsltParseUnknownXSLTElem(xsltCompilerCtxtPtr cctxt,\t\t\t
      xmlNodePtr node) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/xslt.c:2695,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/xslt.c:2714,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:2713,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/xslt.c:2700,1
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/xslt.c:2699,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/xslt.c:2716,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:2723,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:2734,1
    - Dst: xsltPointerListAddSize
      Src: /src/libxslt/libxslt/xslt.c:2740,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xslt.c:2741,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:2748,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:2744,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 4
    argNames:
    - cctxt
    - list
    - node
    - value
    argTypes:
    - xsltCompilerCtxtPtr
    - xsltPointerListPtr
    - xmlNodePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2757
      start: 2679
    functionDepth: 0
    functionLinenumber: 2679
    functionLinenumberEnd: 2757
    functionName: xsltParseNsPrefixList
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictLookup
    - xmlStrndup
    - xsltGenericDebug
    - xsltPointerListAddSize
    - xmlStrEqual
    - xmlSearchNs
    - IS_BLANK
    - xsltTransformError
    linkageType: ''
    returnType: int
    signature: "static int xsltParseNsPrefixList(xsltCompilerCtxtPtr cctxt,\t\t xsltPointerListPtr
      list,\t\t xmlNodePtr node,\t\t const xmlChar *value) "
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/xslt.c:2486,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/xslt.c:2495,1
    - Dst: xsltCompilerVarInfoPop
      Src: /src/libxslt/libxslt/xslt.c:2509,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/xslt.c:2500,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/xslt.c:2550,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/xslt.c:2553,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 2
    argNames:
    - cctxt
    - node
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2557
      start: 2482
    functionDepth: 0
    functionLinenumber: 2482
    functionLinenumberEnd: 2557
    functionName: xsltCompilerNodePop
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlGenericError
    - xsltCompilerVarInfoPop
    linkageType: ''
    returnType: void
    signature: 'static void xsltCompilerNodePop(xsltCompilerCtxtPtr cctxt, xmlNodePtr
      node) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1548,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:1550,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1559,1
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/xslt.c:1557,1
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/xslt.c:1565,1
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/xslt.c:1569,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/xslt.c:1570,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:1573,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1576,1
    - Dst: xsltGetQNameURI
      Src: /src/libxslt/libxslt/xslt.c:1584,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxslt/libxslt/xslt.c:1586,1
    - Dst: xsltParseContentError
      Src: /src/libxslt/libxslt/xslt.c:1595,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1589,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1593,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 2
    argNames:
    - style
    - cur
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1597
      start: 1540
    functionDepth: 0
    functionLinenumber: 1540
    functionLinenumberEnd: 1597
    functionName: xsltParseStylesheetPreserveSpace
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetNsProp
    - xmlHashAddEntry2
    - xmlStrndup
    - xsltGenericDebug
    - xmlHashCreate
    - xsltGetQNameURI
    - xmlStrEqual
    - xsltTransformError
    - xsltParseContentError
    - IS_BLANK
    linkageType: ''
    returnType: void
    signature: 'static void xsltParseStylesheetPreserveSpace(xsltStylesheetPtr style,
      xmlNodePtr cur) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsltParseAttrXSLTVersion
      Src: /src/libxslt/libxslt/xslt.c:6283,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:6289,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xslt.c:6310,1
    - Dst: xsltNewTemplate
      Src: /src/libxslt/libxslt/xslt.c:6304,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:6297,1
    - Dst: xsltCompilerNodePush
      Src: /src/libxslt/libxslt/xslt.c:6315,1
    - Dst: xsltCompilerBuildInScopeNsList
      Src: /src/libxslt/libxslt/xslt.c:6324,1
    - Dst: xsltParseSequenceConstructor
      Src: /src/libxslt/libxslt/xslt.c:6328,1
    - Dst: xsltCompilerNodePop
      Src: /src/libxslt/libxslt/xslt.c:6329,1
    - Dst: xsltAddTemplate
      Src: /src/libxslt/libxslt/xslt.c:6333,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - cctxt
    - doc
    - node
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlDocPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 6336
      start: 6273
    functionDepth: 0
    functionLinenumber: 6273
    functionLinenumberEnd: 6336
    functionName: xsltParseSimplifiedStylesheetTree
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltCompilerNodePop
    - xsltParseAttrXSLTVersion
    - xsltNewTemplate
    - xsltParseSequenceConstructor
    - xsltCompilerBuildInScopeNsList
    - xsltAddTemplate
    - xmlStrdup
    - xsltCompilerNodePush
    - xsltGenericDebug
    - xsltTransformError
    linkageType: ''
    returnType: int
    signature: "static int xsltParseSimplifiedStylesheetTree(xsltCompilerCtxtPtr cctxt,\t\t\t\t
      xmlDocPtr doc,\t\t\t\t xmlNodePtr node) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BAD_CAST
      Src: /src/libxslt/libxslt/xslt.c:289,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xslt.c:291,1
    - Dst: BAD_CAST
      Src: /src/libxslt/libxslt/xslt.c:294,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xslt.c:292,1
    - Dst: BAD_CAST
      Src: /src/libxslt/libxslt/xslt.c:296,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xslt.c:280,1
    - Dst: BAD_CAST
      Src: /src/libxslt/libxslt/xslt.c:287,1
    - Dst: BAD_CAST
      Src: /src/libxslt/libxslt/xslt.c:288,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xslt.c:290,1
    - Dst: BAD_CAST
      Src: /src/libxslt/libxslt/xslt.c:295,1
    - Dst: BAD_CAST
      Src: /src/libxslt/libxslt/xslt.c:293,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xslt.c:289,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xslt.c:294,1
    - Dst: BAD_CAST
      Src: /src/libxslt/libxslt/xslt.c:291,1
    - Dst: BAD_CAST
      Src: /src/libxslt/libxslt/xslt.c:292,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xslt.c:296,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xslt.c:287,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xslt.c:288,1
    - Dst: BAD_CAST
      Src: /src/libxslt/libxslt/xslt.c:290,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xslt.c:293,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xslt.c:295,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 2
    argNames:
    - nsUri
    - name
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 299
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 299
    functionName: xsltNewDecimalFormat
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlMalloc
    - BAD_CAST
    linkageType: ''
    returnType: xsltDecimalFormatPtr
    signature: 'static xsltDecimalFormatPtr xsltNewDecimalFormat(const xmlChar *nsUri,
      xmlChar *name) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:306,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:314,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:310,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:312,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:308,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:316,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:318,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:320,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:322,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:324,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:326,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:327,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - xsltDecimalFormatPtr
    constantsTouched: []
    func_position:
      end: 329
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 329
    functionName: xsltFreeDecimalFormat
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeDecimalFormat(xsltDecimalFormatPtr self) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:570,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:574,1
    - Dst: xsltPointerListFree
      Src: /src/libxslt/libxslt/xslt.c:589,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:572,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:585,1
    - Dst: xsltFreeNsAliasList
      Src: /src/libxslt/libxslt/xslt.c:591,1
    - Dst: xsltCompilerVarInfoFree
      Src: /src/libxslt/libxslt/xslt.c:594,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:596,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - cctxt
    argTypes:
    - xsltCompilerCtxtPtr
    constantsTouched: []
    func_position:
      end: 597
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 597
    functionName: xsltCompilationCtxtFree
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltCompilerVarInfoFree
    - xsltPointerListFree
    - xsltGenericDebug
    - xsltFreeNsAliasList
    linkageType: ''
    returnType: void
    signature: 'static void xsltCompilationCtxtFree(xsltCompilerCtxtPtr cctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeDecimalFormat
      Src: /src/libxslt/libxslt/xslt.c:343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 346
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 346
    functionName: xsltFreeDecimalFormatList
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltFreeDecimalFormat
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeDecimalFormatList(xsltStylesheetPtr self) '
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: xmlUnlinkNode
      Src: /src/libxslt/libxslt/xslt.c:3112,1
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/xslt.c:3113,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:3109,1
    - Dst: xsltCompilerNodePush
      Src: /src/libxslt/libxslt/xslt.c:3123,1
    - Dst: xsltNewNamespaceMapItem
      Src: /src/libxslt/libxslt/xslt.c:3135,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:3199,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:3224,1
    - Dst: xmlDictOwns
      Src: /src/libxslt/libxslt/xslt.c:3280,1
    - Dst: xmlNodeSetContent
      Src: /src/libxslt/libxslt/xslt.c:3284,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:3302,1
    - Dst: xmlNodeSetContent
      Src: /src/libxslt/libxslt/xslt.c:3442,1
    - Dst: xmlNodeGetSpacePreserve
      Src: /src/libxslt/libxslt/xslt.c:3091,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:3200,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:3201,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:3225,1
    - Dst: IS_BLANK_NODE
      Src: /src/libxslt/libxslt/xslt.c:3228,1
    - Dst: xmlUnlinkNode
      Src: /src/libxslt/libxslt/xslt.c:3230,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:3259,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xslt.c:3282,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:3316,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xslt.c:3440,1
    - Dst: xsltCompilerNodePop
      Src: /src/libxslt/libxslt/xslt.c:3455,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:3307,1
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/xslt.c:3414,1
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/xslt.c:3473,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/xslt.c:3132,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:3194,1
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/xslt.c:3231,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:3305,1
    - Dst: xmlNodeAddContent
      Src: /src/libxslt/libxslt/xslt.c:3362,1
    - Dst: xmlUnlinkNode
      Src: /src/libxslt/libxslt/xslt.c:3418,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:3311,1
    - Dst: xmlDictOwns
      Src: /src/libxslt/libxslt/xslt.c:3435,1
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/xslt.c:3419,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:3195,1
    - Dst: xsltNewNamespaceMapItem
      Src: /src/libxslt/libxslt/xslt.c:3261,1
    - Dst: xsltIsBlank
      Src: /src/libxslt/libxslt/xslt.c:3415,1
    - Dst: xmlUnlinkNode
      Src: /src/libxslt/libxslt/xslt.c:3472,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:3395,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:3469,1
    CyclomaticComplexity: 109
    EdgeCount: 109
    ICount: 248
    argCount: 2
    argNames:
    - cctxt
    - node
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 3479
      start: 3050
    functionDepth: 0
    functionLinenumber: 3050
    functionLinenumberEnd: 3479
    functionName: xsltParsePreprocessStylesheetTree
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltNewNamespaceMapItem
    - xsltIsBlank
    - IS_BLANK
    - xmlDictOwns
    - xmlNodeSetContent
    - xsltGenericDebug
    - xmlFree
    - xmlUnlinkNode
    - xsltCompilerNodePop
    - xsltCompilerNodePush
    - IS_XSLT_ELEM
    - IS_BLANK_NODE
    - xmlNodeGetSpacePreserve
    - xmlGetNsProp
    - xmlDictLookup
    - xmlNodeAddContent
    - xmlFreeNode
    - xmlStrEqual
    - xsltTransformError
    linkageType: ''
    returnType: int
    signature: 'static int xsltParsePreprocessStylesheetTree(xsltCompilerCtxtPtr cctxt,
      xmlNodePtr node) '
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictOwns
      Src: /src/libxslt/libxslt/xslt.c:3536,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/xslt.c:3555,1
    - Dst: xsltPreprocessStylesheet
      Src: /src/libxslt/libxslt/xslt.c:3607,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:3673,1
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/xslt.c:3677,1
    - Dst: xmlUnlinkNode
      Src: /src/libxslt/libxslt/xslt.c:3519,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3501,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3557,1
    - Dst: xsltParseStylesheetExcludePrefix
      Src: /src/libxslt/libxslt/xslt.c:3563,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:3516,1
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/xslt.c:3520,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:3578,1
    - Dst: xmlDictOwns
      Src: /src/libxslt/libxslt/xslt.c:3618,1
    - Dst: exclPrefixPop
      Src: /src/libxslt/libxslt/xslt.c:3609,1
    - Dst: xmlNodeGetSpacePreserve
      Src: /src/libxslt/libxslt/xslt.c:3614,1
    - Dst: xmlNodeSetContent
      Src: /src/libxslt/libxslt/xslt.c:3627,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/xslt.c:3500,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xslt.c:3545,1
    - Dst: xmlNodeSetContent
      Src: /src/libxslt/libxslt/xslt.c:3548,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxslt/libxslt/xslt.c:3571,1
    - Dst: IS_BLANK_NODE
      Src: /src/libxslt/libxslt/xslt.c:3613,1
    - Dst: exclPrefixPop
      Src: /src/libxslt/libxslt/xslt.c:3559,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xslt.c:3626,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:3643,1
    - Dst: xsltCheckExtURI
      Src: /src/libxslt/libxslt/xslt.c:3644,1
    - Dst: xmlUnlinkNode
      Src: /src/libxslt/libxslt/xslt.c:3676,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 158
    argCount: 2
    argNames:
    - style
    - cur
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 3679
      start: 3485
    functionDepth: 0
    functionLinenumber: 3485
    functionLinenumberEnd: 3679
    functionName: xsltPreprocessStylesheet
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlUnlinkNode
    - xsltParseStylesheetExcludePrefix
    - xmlDictLookup
    - xmlDictOwns
    - IS_XSLT_NAME
    - xmlNodeSetContent
    - xmlFreeNode
    - exclPrefixPop
    - xsltPreprocessStylesheet
    - xmlStrEqual
    - xsltCheckExtURI
    - xmlNodeGetSpacePreserve
    - IS_XSLT_ELEM
    - xsltGenericDebug
    - IS_BLANK_NODE
    linkageType: ''
    returnType: void
    signature: 'static void xsltPreprocessStylesheet(xsltStylesheetPtr style, xmlNodePtr
      cur) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xsltCompilerNodePush
      Src: /src/libxslt/libxslt/xslt.c:5588,1
    - Dst: xsltParseStylesheetInclude
      Src: /src/libxslt/libxslt/xslt.c:5607,1
    - Dst: xsltCompileXSLTIncludeElem
      Src: /src/libxslt/libxslt/xslt.c:5599,1
    - Dst: xsltStylePreCompute
      Src: /src/libxslt/libxslt/xslt.c:5614,1
    - Dst: xsltCompilerBuildInScopeNsList
      Src: /src/libxslt/libxslt/xslt.c:5591,1
    - Dst: xsltParseGlobalParam
      Src: /src/libxslt/libxslt/xslt.c:5615,1
    - Dst: xsltStylePreCompute
      Src: /src/libxslt/libxslt/xslt.c:5618,1
    - Dst: xsltParseGlobalVariable
      Src: /src/libxslt/libxslt/xslt.c:5619,1
    - Dst: xsltParseStylesheetAttributeSet
      Src: /src/libxslt/libxslt/xslt.c:5622,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5625,1
    - Dst: xsltCompilerNodePop
      Src: /src/libxslt/libxslt/xslt.c:5633,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - cctxt
    - node
    - type
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    - xsltStyleType
    constantsTouched: []
    func_position:
      end: 5636
      start: 5572
    functionDepth: 0
    functionLinenumber: 5572
    functionLinenumberEnd: 5636
    functionName: xsltParseTopLevelXSLTElem
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltCompilerNodePop
    - xsltStylePreCompute
    - xsltCompileXSLTIncludeElem
    - xsltCompilerBuildInScopeNsList
    - xsltParseGlobalVariable
    - xsltParseGlobalParam
    - xsltParseStylesheetAttributeSet
    - xsltCompilerNodePush
    - xsltParseStylesheetInclude
    - xsltTransformError
    linkageType: ''
    returnType: int
    signature: "static int xsltParseTopLevelXSLTElem(xsltCompilerCtxtPtr cctxt,\t\t\t
      xmlNodePtr node,\t\t\t xsltStyleType type) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/xslt.c:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: xsltIsBlank
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - IS_BLANK
    linkageType: ''
    returnType: int
    signature: 'int xsltIsBlank(xmlChar *str) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:442,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:455,1
    - Dst: memset
      Src: /src/libxslt/libxslt/xslt.c:458,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:456,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:452,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:459,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - template
    argTypes:
    - xsltTemplatePtr
    constantsTouched: []
    func_position:
      end: 460
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 460
    functionName: xsltFreeTemplate
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeTemplate(xsltTemplatePtr template) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1127,1
    - Dst: xsltCheckExtPrefix
      Src: /src/libxslt/libxslt/xslt.c:1131,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1139,1
    - Dst: xmlRealloc
      Src: /src/libxslt/libxslt/xslt.c:1153,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1147,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/xslt.c:1156,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1158,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:1174,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 56
    argCount: 3
    argNames:
    - style
    - template
    - node
    argTypes:
    - xsltStylesheetPtr
    - xsltTemplatePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1181
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1181
    functionName: xsltGetInheritedNsList
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltCheckExtPrefix
    - xmlRealloc
    - xmlStrEqual
    - xsltGenericDebug
    - xmlGenericError
    linkageType: ''
    returnType: int
    signature: "static int xsltGetInheritedNsList(xsltStylesheetPtr style,\t xsltTemplatePtr
      template,\t xmlNodePtr node) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsltParseFindTopLevelElem
      Src: /src/libxslt/libxslt/xslt.c:6053,1
    - Dst: xsltParseFindTopLevelElem
      Src: /src/libxslt/libxslt/xslt.c:6082,1
    - Dst: xsltParseFindTopLevelElem
      Src: /src/libxslt/libxslt/xslt.c:6069,1
    - Dst: xsltParseStylesheetImport
      Src: /src/libxslt/libxslt/xslt.c:6056,1
    - Dst: xsltParseTopLevelXSLTElem
      Src: /src/libxslt/libxslt/xslt.c:6072,1
    - Dst: xsltNamespaceAlias
      Src: /src/libxslt/libxslt/xslt.c:6085,1
    - Dst: xsltParseXSLTStylesheetElemCore
      Src: /src/libxslt/libxslt/xslt.c:6099,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 2
    argNames:
    - cctxt
    - node
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 6103
      start: 6029
    functionDepth: 0
    functionLinenumber: 6029
    functionLinenumberEnd: 6103
    functionName: xsltParseXSLTStylesheetElem
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltParseStylesheetImport
    - xsltParseXSLTStylesheetElemCore
    - xsltParseFindTopLevelElem
    - xsltParseTopLevelXSLTElem
    - xsltNamespaceAlias
    linkageType: ''
    returnType: int
    signature: 'static int xsltParseXSLTStylesheetElem(xsltCompilerCtxtPtr cctxt,
      xmlNodePtr node) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltInitGlobals
      Src: /src/libxslt/libxslt/xslt.c:6766,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:6786,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:6772,1
    - Dst: xsltCheckRead
      Src: /src/libxslt/libxslt/xslt.c:6783,1
    - Dst: xsltGetDefaultSecurityPrefs
      Src: /src/libxslt/libxslt/xslt.c:6779,1
    - Dst: xsltDocDefaultLoader
      Src: /src/libxslt/libxslt/xslt.c:6793,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:6796,1
    - Dst: xsltParseStylesheetDoc
      Src: /src/libxslt/libxslt/xslt.c:6800,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/libxslt/xslt.c:6802,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - filename
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 6807
      start: 6760
    functionDepth: 0
    functionLinenumber: 6760
    functionLinenumberEnd: 6807
    functionName: xsltParseStylesheetFile
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltDocDefaultLoader
    - xsltParseStylesheetDoc
    - xsltInitGlobals
    - xsltCheckRead
    - xmlFreeDoc
    - xsltGenericDebug
    - xsltGetDefaultSecurityPrefs
    - xsltTransformError
    linkageType: ''
    returnType: xsltStylesheetPtr
    signature: 'xsltStylesheetPtr xsltParseStylesheetFile(const xmlChar* filename) '
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: xsltParseExtElemPrefixes
      Src: /src/libxslt/libxslt/xslt.c:5780,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:5895,1
    - Dst: xsltParseXSLTStylesheetElemCore
      Src: /src/libxslt/libxslt/xslt.c:5911,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5952,1
    - Dst: function
      Src: /src/libxslt/libxslt/xslt.c:5976,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:5978,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:5998,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:5996,1
    - Dst: xsltParseStylesheetOutput
      Src: /src/libxslt/libxslt/xslt.c:5927,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:5934,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:5925,1
    - Dst: xsltCompilerNodePush
      Src: /src/libxslt/libxslt/xslt.c:5720,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5871,1
    - Dst: IS_XSLT_ELEM_FAST
      Src: /src/libxslt/libxslt/xslt.c:5880,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5913,1
    - Dst: xsltParseTopLevelXSLTElem
      Src: /src/libxslt/libxslt/xslt.c:5935,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5957,1
    - Dst: xsltExtModuleTopLevelLookup
      Src: /src/libxslt/libxslt/xslt.c:5973,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:5990,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:5993,1
    - Dst: xsltParseStylesheetDecimalFormat
      Src: /src/libxslt/libxslt/xslt.c:5933,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:5909,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:5907,1
    - Dst: xsltParseStylesheetPreserveSpace
      Src: /src/libxslt/libxslt/xslt.c:5924,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:5931,1
    - Dst: IS_XSLT_ELEM_FAST
      Src: /src/libxslt/libxslt/xslt.c:5688,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxslt/libxslt/xslt.c:5709,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5760,1
    - Dst: xsltParseExclResultPrefixes
      Src: /src/libxslt/libxslt/xslt.c:5786,1
    - Dst: xsltParseFindTopLevelElem
      Src: /src/libxslt/libxslt/xslt.c:5844,1
    - Dst: xsltParseTopLevelXSLTElem
      Src: /src/libxslt/libxslt/xslt.c:5847,1
    - Dst: xsltParseTopLevelXSLTElem
      Src: /src/libxslt/libxslt/xslt.c:5858,1
    - Dst: xsltParseFindTopLevelElem
      Src: /src/libxslt/libxslt/xslt.c:5833,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5818,1
    - Dst: xsltParseFindTopLevelElem
      Src: /src/libxslt/libxslt/xslt.c:5855,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:5922,1
    - Dst: xsltCompilerNodePop
      Src: /src/libxslt/libxslt/xslt.c:6003,1
    - Dst: xsltParseStylesheetKey
      Src: /src/libxslt/libxslt/xslt.c:5930,1
    - Dst: xsltCompilerBuildInScopeNsList
      Src: /src/libxslt/libxslt/xslt.c:5736,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:5688,1
    - Dst: xsltParseAttrXSLTVersion
      Src: /src/libxslt/libxslt/xslt.c:5747,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5765,1
    - Dst: xsltLREInfoCreate
      Src: /src/libxslt/libxslt/xslt.c:5792,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5823,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:5884,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5885,1
    - Dst: xsltParseXSLTTemplate
      Src: /src/libxslt/libxslt/xslt.c:5904,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:5905,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:5937,1
    - Dst: xsltParseStylesheetStripSpace
      Src: /src/libxslt/libxslt/xslt.c:5921,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:5928,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:5919,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 134
    argCount: 2
    argNames:
    - cctxt
    - node
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 6005
      start: 5669
    functionDepth: 0
    functionLinenumber: 5669
    functionLinenumberEnd: 6005
    functionName: xsltParseXSLTStylesheetElemCore
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xsltParseAttrXSLTVersion
    - xsltExtModuleTopLevelLookup
    - xsltParseExclResultPrefixes
    - xsltParseStylesheetPreserveSpace
    - xsltParseXSLTStylesheetElemCore
    - xsltParseStylesheetOutput
    - xsltParseStylesheetStripSpace
    - xsltGenericDebug
    - xsltParseXSLTTemplate
    - xsltCompilerNodePop
    - xsltParseStylesheetDecimalFormat
    - xsltCompilerBuildInScopeNsList
    - IS_XSLT_ELEM_FAST
    - function
    - xsltCompilerNodePush
    - xsltParseExtElemPrefixes
    - IS_XSLT_NAME
    - xsltLREInfoCreate
    - xsltParseFindTopLevelElem
    - xsltParseStylesheetKey
    - xsltTransformError
    - xsltParseTopLevelXSLTElem
    linkageType: ''
    returnType: int
    signature: 'static int xsltParseXSLTStylesheetElemCore(xsltCompilerCtxtPtr cctxt,
      xmlNodePtr node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xslt.c:421,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:423,1
    - Dst: memset
      Src: /src/libxslt/libxslt/xslt.c:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 430
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 430
    functionName: xsltNewTemplate
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - memset
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltTemplatePtr
    signature: 'static xsltTemplatePtr xsltNewTemplate(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltInitGlobals
      Src: /src/libxslt/libxslt/xslt.c:6746,1
    - Dst: xsltParseStylesheetImportedDoc
      Src: /src/libxslt/libxslt/xslt.c:6748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 6749
      start: 6744
    functionDepth: 0
    functionLinenumber: 6744
    functionLinenumberEnd: 6749
    functionName: xsltParseStylesheetDoc
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltParseStylesheetImportedDoc
    - xsltInitGlobals
    linkageType: ''
    returnType: xsltStylesheetPtr
    signature: 'xsltStylesheetPtr xsltParseStylesheetDoc(xmlDocPtr doc) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: NXT
      Src: /src/libxslt/libxslt/xslt.c:6847,1
    - Dst: NXT
      Src: /src/libxslt/libxslt/xslt.c:6847,1
    - Dst: SKIP
      Src: /src/libxslt/libxslt/xslt.c:6849,1
    - Dst: NXT
      Src: /src/libxslt/libxslt/xslt.c:6848,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/xslt.c:6863,1
    - Dst: xmlStrcasecmp
      Src: /src/libxslt/libxslt/xslt.c:6867,1
    - Dst: xmlStrcasecmp
      Src: /src/libxslt/libxslt/xslt.c:6868,1
    - Dst: xmlStrcasecmp
      Src: /src/libxslt/libxslt/xslt.c:6869,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:6870,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:6874,1
    - Dst: NXT
      Src: /src/libxslt/libxslt/xslt.c:6876,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/xslt.c:6892,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:6903,1
    - Dst: NXT
      Src: /src/libxslt/libxslt/xslt.c:6875,1
    - Dst: NXT
      Src: /src/libxslt/libxslt/xslt.c:6875,1
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/xslt.c:6895,1
    - Dst: SKIP
      Src: /src/libxslt/libxslt/xslt.c:6877,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 76
    argCount: 1
    argNames:
    - value
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 6907
      start: 6832
    functionDepth: 0
    functionLinenumber: 6832
    functionLinenumberEnd: 6907
    functionName: xsltParseStylesheetPI
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - NXT
    - xmlStrcasecmp
    - xmlStrndup
    - SKIP
    - IS_BLANK
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xsltParseStylesheetPI(const xmlChar *value) '
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1241,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1269,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1255,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1265,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1271,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:1276,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1283,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1285,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1299,1
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/xslt.c:1316,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1342,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1378,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1387,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:1304,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:1356,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1390,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1207,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1211,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1229,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1247,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xslt.c:1251,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1294,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1309,1
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/xslt.c:1329,1
    - Dst: xsltParseContentError
      Src: /src/libxslt/libxslt/xslt.c:1394,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1312,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:1334,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1226,1
    - Dst: xsltGetQNameURI
      Src: /src/libxslt/libxslt/xslt.c:1235,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1240,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1262,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1258,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:1244,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1273,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1287,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:1290,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1297,1
    - Dst: xmlValidateQName
      Src: /src/libxslt/libxslt/xslt.c:1338,1
    - Dst: xsltGetQNameURI
      Src: /src/libxslt/libxslt/xslt.c:1350,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxslt/libxslt/xslt.c:1376,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:1339,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1204,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1214,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1221,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1239,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1280,1
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/xslt.c:1324,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/xslt.c:1372,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1384,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1301,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/xslt.c:1331,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1318,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 161
    argCount: 2
    argNames:
    - style
    - cur
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1396
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1396
    functionName: xsltParseStylesheetOutput
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetNsProp
    - xmlHashAddEntry2
    - xmlStrndup
    - xsltGenericDebug
    - xsltGetQNameURI
    - xmlStrdup
    - xmlHashCreate
    - xmlStrEqual
    - xmlValidateQName
    - xmlSearchNs
    - xsltTransformError
    - xsltParseContentError
    - IS_BLANK
    linkageType: ''
    returnType: void
    signature: 'void xsltParseStylesheetOutput(xsltStylesheetPtr style, xmlNodePtr
      cur) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xslt.c:5521,1
    - Dst: memset
      Src: /src/libxslt/libxslt/xslt.c:5528,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5523,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - cctxt
    - node
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5538
      start: 5513
    functionDepth: 0
    functionLinenumber: 5513
    functionLinenumberEnd: 5538
    functionName: xsltCompileXSLTIncludeElem
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - memset
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltStyleItemIncludePtr
    signature: 'static xsltStyleItemIncludePtr xsltCompileXSLTIncludeElem(xsltCompilerCtxtPtr
      cctxt, xmlNodePtr node) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:5556,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:5557,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 6
    argNames:
    - cctxt
    - cur
    - name
    - namespaceURI
    - breakOnOtherElem
    - resultNode
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    - xmlChar*
    - xmlChar*
    - int
    - xmlNodePtr*
    constantsTouched: []
    func_position:
      end: 5570
      start: 5540
    functionDepth: 0
    functionLinenumber: 5540
    functionLinenumberEnd: 5570
    functionName: xsltParseFindTopLevelElem
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: "static int xsltParseFindTopLevelElem(xsltCompilerCtxtPtr cctxt,\t\t\t
      xmlNodePtr cur,\t\t\t const xmlChar *name,\t\t\t const xmlChar *namespaceURI,\t\t\t
      int breakOnOtherElem,\t\t\t xmlNodePtr *resultNode) "
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:6987,1
    - Dst: xmlDictReference
      Src: /src/libxslt/libxslt/xslt.c:7003,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:6979,1
    - Dst: xmlBuildURI
      Src: /src/libxslt/libxslt/xslt.c:7043,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:7050,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:7053,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:7059,1
    - Dst: xsltInitGlobals
      Src: /src/libxslt/libxslt/xslt.c:6930,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:6954,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:6971,1
    - Dst: xmlGetID
      Src: /src/libxslt/libxslt/xslt.c:6975,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:7005,1
    - Dst: xmlDocCopyNode
      Src: /src/libxslt/libxslt/xslt.c:7010,1
    - Dst: xmlNodeGetBase
      Src: /src/libxslt/libxslt/xslt.c:7012,1
    - Dst: xmlNewNs
      Src: /src/libxslt/libxslt/xslt.c:7025,1
    - Dst: xmlNodeGetBase
      Src: /src/libxslt/libxslt/xslt.c:7042,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:7046,1
    - Dst: xmlParseURI
      Src: /src/libxslt/libxslt/xslt.c:6957,1
    - Dst: xsltParseStylesheetPI
      Src: /src/libxslt/libxslt/xslt.c:6942,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:6961,1
    - Dst: xmlGetID
      Src: /src/libxslt/libxslt/xslt.c:6977,1
    - Dst: xmlAddChild
      Src: /src/libxslt/libxslt/xslt.c:7029,1
    - Dst: xsltParseStylesheetFile
      Src: /src/libxslt/libxslt/xslt.c:7056,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:7062,1
    - Dst: xmlFreeURI
      Src: /src/libxslt/libxslt/xslt.c:7061,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:6941,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:6959,1
    - Dst: xmlNewDoc
      Src: /src/libxslt/libxslt/xslt.c:6996,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:7014,1
    - Dst: xsltParseStylesheetDoc
      Src: /src/libxslt/libxslt/xslt.c:7030,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/libxslt/xslt.c:7032,1
    - Dst: xsltParseStylesheetFile
      Src: /src/libxslt/libxslt/xslt.c:7049,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 96
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 7065
      start: 6923
    functionDepth: 0
    functionLinenumber: 6923
    functionLinenumberEnd: 7065
    functionName: xsltLoadStylesheetPI
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFreeURI
    - xsltInitGlobals
    - xmlNodeGetBase
    - xmlDictReference
    - xmlNewDoc
    - xmlFreeDoc
    - xmlDocCopyNode
    - xmlAddChild
    - xmlGetID
    - xsltGenericDebug
    - xmlFree
    - xmlParseURI
    - xmlBuildURI
    - xsltParseStylesheetDoc
    - xsltParseStylesheetFile
    - xmlNewNs
    - xmlStrEqual
    - xsltParseStylesheetPI
    - xsltTransformError
    linkageType: ''
    returnType: xsltStylesheetPtr
    signature: 'xsltStylesheetPtr xsltLoadStylesheetPI(xmlDocPtr doc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewRMutex
      Src: /src/libxslt/libxslt/xslt.c:229,1
    - Dst: xsltRegisterAllExtras
      Src: /src/libxslt/libxslt/xslt.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 233
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 233
    functionName: xsltInit
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlNewRMutex
    - xsltRegisterAllExtras
    linkageType: ''
    returnType: void
    signature: 'void xsltInit (void) '
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/xslt.c:4480,1
    - Dst: xmlUnlinkNode
      Src: /src/libxslt/libxslt/xslt.c:4513,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:4476,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:4515,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:4538,1
    - Dst: xsltParseUnknownXSLTElem
      Src: /src/libxslt/libxslt/xslt.c:4610,1
    - Dst: xsltCompilerBuildInScopeNsList
      Src: /src/libxslt/libxslt/xslt.c:4625,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:4557,1
    - Dst: xsltParseAnyXSLTElem
      Src: /src/libxslt/libxslt/xslt.c:4607,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:4546,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/xslt.c:4431,1
    - Dst: IS_XSLT_ELEM_FAST
      Src: /src/libxslt/libxslt/xslt.c:4572,1
    - Dst: xsltGetXSLTElementTypeByNode
      Src: /src/libxslt/libxslt/xslt.c:4582,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:4560,1
    - Dst: xsltCompilerNodePush
      Src: /src/libxslt/libxslt/xslt.c:4619,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:4677,1
    - Dst: IS_XSLT_ATTR_FAST
      Src: /src/libxslt/libxslt/xslt.c:4768,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:4828,1
    - Dst: xmlUnlinkNode
      Src: /src/libxslt/libxslt/xslt.c:4831,1
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/xslt.c:4832,1
    - Dst: xsltParseAttrXSLTVersion
      Src: /src/libxslt/libxslt/xslt.c:4755,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:4773,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:4521,1
    - Dst: xsltParseExtElemPrefixes
      Src: /src/libxslt/libxslt/xslt.c:4655,1
    - Dst: xsltParseSequenceConstructor
      Src: /src/libxslt/libxslt/xslt.c:4729,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:4770,1
    - Dst: xsltParseExclResultPrefixes
      Src: /src/libxslt/libxslt/xslt.c:4749,1
    - Dst: xsltParseSequenceConstructor
      Src: /src/libxslt/libxslt/xslt.c:4815,1
    - Dst: xmlUnlinkNode
      Src: /src/libxslt/libxslt/xslt.c:4479,1
    - Dst: xmlAddPrevSibling
      Src: /src/libxslt/libxslt/xslt.c:4514,1
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/xslt.c:4517,1
    - Dst: xsltCheckExtPrefix
      Src: /src/libxslt/libxslt/xslt.c:4663,1
    - Dst: xsltPreComputeExtModuleElement
      Src: /src/libxslt/libxslt/xslt.c:4685,1
    - Dst: xsltLREInfoCreate
      Src: /src/libxslt/libxslt/xslt.c:4792,1
    - Dst: xsltCompileAttr
      Src: /src/libxslt/libxslt/xslt.c:4806,1
    - Dst: xsltCompilerNodePop
      Src: /src/libxslt/libxslt/xslt.c:4821,1
    - Dst: xsltLREBuildEffectiveNs
      Src: /src/libxslt/libxslt/xslt.c:4798,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 147
    argCount: 2
    argNames:
    - cctxt
    - cur
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 4835
      start: 4424
    functionDepth: 0
    functionLinenumber: 4424
    functionLinenumberEnd: 4835
    functionName: xsltParseSequenceConstructor
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlAddPrevSibling
    - xsltParseAttrXSLTVersion
    - IS_XSLT_ATTR_FAST
    - xsltParseExclResultPrefixes
    - xsltCompileAttr
    - xsltParseAnyXSLTElem
    - xsltParseSequenceConstructor
    - xsltPreComputeExtModuleElement
    - xsltLREBuildEffectiveNs
    - xsltGenericDebug
    - xsltCompilerNodePop
    - xmlUnlinkNode
    - xsltCompilerBuildInScopeNsList
    - IS_XSLT_ELEM_FAST
    - xsltCompilerNodePush
    - xsltParseUnknownXSLTElem
    - xsltParseExtElemPrefixes
    - xsltCheckExtPrefix
    - xmlFreeNode
    - xsltLREInfoCreate
    - xsltGetXSLTElementTypeByNode
    - xmlStrEqual
    - xsltTransformError
    - xmlGenericError
    linkageType: ''
    returnType: void
    signature: 'void xsltParseSequenceConstructor(xsltCompilerCtxtPtr cctxt, xmlNodePtr
      cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - first
    argTypes:
    - xsltEffectiveNsPtr
    constantsTouched: []
    func_position:
      end: 643
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 643
    functionName: xsltLREEffectiveNsNodesFree
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xsltLREEffectiveNsNodesFree(xsltEffectiveNsPtr first) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:663,1
    - Dst: xsltPointerListFree
      Src: /src/libxslt/libxslt/xslt.c:678,1
    - Dst: xsltPointerListFree
      Src: /src/libxslt/libxslt/xslt.c:676,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:664,1
    - Dst: xsltPointerListFree
      Src: /src/libxslt/libxslt/xslt.c:666,1
    - Dst: xsltPointerListFree
      Src: /src/libxslt/libxslt/xslt.c:688,1
    - Dst: xsltPointerListFree
      Src: /src/libxslt/libxslt/xslt.c:690,1
    - Dst: xsltLREEffectiveNsNodesFree
      Src: /src/libxslt/libxslt/xslt.c:694,1
    - Dst: xsltFreeNamespaceMap
      Src: /src/libxslt/libxslt/xslt.c:698,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:700,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - data
    argTypes:
    - xsltPrincipalStylesheetDataPtr
    constantsTouched: []
    func_position:
      end: 701
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 701
    functionName: xsltFreePrincipalStylesheetData
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltFreeNamespaceMap
    - xsltLREEffectiveNsNodesFree
    - xsltPointerListFree
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreePrincipalStylesheetData(xsltPrincipalStylesheetDataPtr
      data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xslt.c:709,1
    - Dst: xsltPointerListCreate
      Src: /src/libxslt/libxslt/xslt.c:726,1
    - Dst: xsltPointerListCreate
      Src: /src/libxslt/libxslt/xslt.c:720,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:711,1
    - Dst: memset
      Src: /src/libxslt/libxslt/xslt.c:715,1
    - Dst: xsltPointerListCreate
      Src: /src/libxslt/libxslt/xslt.c:732,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 741
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 741
    functionName: xsltNewPrincipalStylesheetData
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - memset
    - xsltTransformError
    - xmlMalloc
    - xsltPointerListCreate
    linkageType: ''
    returnType: xsltPrincipalStylesheetDataPtr
    signature: 'static xsltPrincipalStylesheetDataPtr xsltNewPrincipalStylesheetData(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeRMutex
      Src: /src/libxslt/libxslt/xslt.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 247
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 247
    functionName: xsltUninit
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFreeRMutex
    linkageType: ''
    returnType: void
    signature: 'void xsltUninit (void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1626,1
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/xslt.c:1639,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/xslt.c:1644,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1630,1
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/xslt.c:1643,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1648,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/xslt.c:1649,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/xslt.c:1651,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:1653,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:1659,1
    - Dst: xsltRegisterExtPrefix
      Src: /src/libxslt/libxslt/xslt.c:1662,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1664,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1668,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 3
    argNames:
    - style
    - cur
    - isXsltElem
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 1669
      start: 1615
    functionDepth: 0
    functionLinenumber: 1615
    functionLinenumberEnd: 1669
    functionName: xsltParseStylesheetExtPrefix
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetNsProp
    - xmlStrndup
    - xsltGenericDebug
    - xmlStrEqual
    - xsltRegisterExtPrefix
    - xmlSearchNs
    - IS_BLANK
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: "static void xsltParseStylesheetExtPrefix(xsltStylesheetPtr style,
      xmlNodePtr cur,\t\t\t int isXsltElem) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xslt.c:4309,1
    - Dst: memset
      Src: /src/libxslt/libxslt/xslt.c:4317,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:4311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - cctxt
    argTypes:
    - xsltCompilerCtxtPtr
    constantsTouched: []
    func_position:
      end: 4325
      start: 4304
    functionDepth: 0
    functionLinenumber: 4304
    functionLinenumberEnd: 4325
    functionName: xsltForwardsCompatUnkownItemCreate
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - memset
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltStyleItemUknownPtr
    signature: 'static xsltStyleItemUknownPtr xsltForwardsCompatUnkownItemCreate(xsltCompilerCtxtPtr
      cctxt) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictFree
      Src: /src/libxslt/libxslt/xslt.c:6601,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:6604,1
    - Dst: xsltGatherNamespaces
      Src: /src/libxslt/libxslt/xslt.c:6615,1
    - Dst: xmlDictReference
      Src: /src/libxslt/libxslt/xslt.c:6608,1
    - Dst: xsltNewPrincipalStylesheetData
      Src: /src/libxslt/libxslt/xslt.c:6627,1
    - Dst: xsltCompilationCtxtCreate
      Src: /src/libxslt/libxslt/xslt.c:6639,1
    - Dst: xsltCompilerNodePush
      Src: /src/libxslt/libxslt/xslt.c:6651,1
    - Dst: xsltParseStylesheetProcess
      Src: /src/libxslt/libxslt/xslt.c:6667,1
    - Dst: xsltCompilerNodePop
      Src: /src/libxslt/libxslt/xslt.c:6674,1
    - Dst: xsltRestoreDocumentNamespaces
      Src: /src/libxslt/libxslt/xslt.c:6690,1
    - Dst: xsltParseStylesheetProcess
      Src: /src/libxslt/libxslt/xslt.c:6705,1
    - Dst: xsltCleanupStylesheetTree
      Src: /src/libxslt/libxslt/xslt.c:6724,1
    - Dst: xsltResolveStylesheetAttributeSet
      Src: /src/libxslt/libxslt/xslt.c:6712,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxslt/libxslt/xslt.c:6724,1
    - Dst: xsltCompilationCtxtFree
      Src: /src/libxslt/libxslt/xslt.c:6695,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 61
    argCount: 2
    argNames:
    - style
    - doc
    argTypes:
    - xsltStylesheetPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 6729
      start: 6592
    functionDepth: 0
    functionLinenumber: 6592
    functionLinenumberEnd: 6729
    functionName: xsltParseStylesheetUser
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltCompilationCtxtCreate
    - xsltCompilerNodePop
    - xmlDocGetRootElement
    - xsltResolveStylesheetAttributeSet
    - xsltCompilationCtxtFree
    - xsltCleanupStylesheetTree
    - xsltParseStylesheetProcess
    - xmlDictFree
    - xsltRestoreDocumentNamespaces
    - xsltGatherNamespaces
    - xmlDictReference
    - xsltNewPrincipalStylesheetData
    - xsltCompilerNodePush
    - xsltGenericDebug
    linkageType: ''
    returnType: int
    signature: 'int xsltParseStylesheetUser(xsltStylesheetPtr style, xmlDocPtr doc) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlUnlinkNode
      Src: /src/libxslt/libxslt/xslt.c:5649,1
    - Dst: xmlUnlinkNode
      Src: /src/libxslt/libxslt/xslt.c:5660,1
    - Dst: IS_BLANK_NODE
      Src: /src/libxslt/libxslt/xslt.c:5655,1
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/xslt.c:5661,1
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/xslt.c:5650,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5666
      start: 5639
    functionDepth: 0
    functionLinenumber: 5639
    functionLinenumberEnd: 5666
    functionName: xsltParseRemoveWhitespace
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlUnlinkNode
    - xmlFreeNode
    - IS_BLANK_NODE
    linkageType: ''
    returnType: int
    signature: 'static int xsltParseRemoveWhitespace(xmlNodePtr node) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xsltInitGlobals
      Src: /src/libxslt/libxslt/xslt.c:6389,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:6398,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/xslt.c:6404,1
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/xslt.c:6394,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxslt/libxslt/xslt.c:6396,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:6405,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:6406,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:6408,1
    - Dst: xsltParsePreprocessStylesheetTree
      Src: /src/libxslt/libxslt/xslt.c:6423,1
    - Dst: xsltParseXSLTStylesheetElem
      Src: /src/libxslt/libxslt/xslt.c:6428,1
    - Dst: xsltParseSimplifiedStylesheetTree
      Src: /src/libxslt/libxslt/xslt.c:6431,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - style
    - doc
    argTypes:
    - xsltStylesheetPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 6438
      start: 6382
    functionDepth: 0
    functionLinenumber: 6382
    functionLinenumberEnd: 6438
    functionName: xsltParseStylesheetProcess
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - XSLT_CCTXT
    - xsltParseSimplifiedStylesheetTree
    - xsltGenericDebug
    - IS_XSLT_NAME
    - xsltParsePreprocessStylesheetTree
    - xsltInitGlobals
    - IS_XSLT_ELEM
    - xsltParseXSLTStylesheetElem
    - xsltTransformError
    linkageType: ''
    returnType: xsltStylesheetPtr
    signature: 'xsltStylesheetPtr xsltParseStylesheetProcess(xsltStylesheetPtr style,
      xmlDocPtr doc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:369,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/xslt.c:372,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - style
    - name
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 375
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 375
    functionName: xsltDecimalFormatGetByName
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    - xsltNextImport
    linkageType: ''
    returnType: xsltDecimalFormatPtr
    signature: 'xsltDecimalFormatPtr xsltDecimalFormatGetByName(xsltStylesheetPtr
      style, xmlChar *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylesheetInternal
      Src: /src/libxslt/libxslt/xslt.c:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 821
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 821
    functionName: xsltNewStylesheet
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltNewStylesheetInternal
    linkageType: ''
    returnType: xsltStylesheetPtr
    signature: 'xsltStylesheetPtr xsltNewStylesheet(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeStylesheet
      Src: /src/libxslt/libxslt/xslt.c:902,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - style
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 905
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 905
    functionName: xsltFreeStylesheetList
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltFreeStylesheet
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeStylesheetList(xsltStylesheetPtr style) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/xslt.c:1690,1
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/xslt.c:1708,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:1696,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1694,1
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/xslt.c:1704,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/xslt.c:1709,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:1712,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1715,1
    - Dst: xsltGetQNameURI
      Src: /src/libxslt/libxslt/xslt.c:1723,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxslt/libxslt/xslt.c:1725,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1728,1
    - Dst: xsltParseContentError
      Src: /src/libxslt/libxslt/xslt.c:1734,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1732,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 44
    argCount: 2
    argNames:
    - style
    - cur
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1736
      start: 1681
    functionDepth: 0
    functionLinenumber: 1681
    functionLinenumberEnd: 1736
    functionName: xsltParseStylesheetStripSpace
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetNsProp
    - xmlHashAddEntry2
    - xmlStrndup
    - xsltGenericDebug
    - xmlHashCreate
    - xsltGetQNameURI
    - xmlStrEqual
    - xsltTransformError
    - xsltParseContentError
    - IS_BLANK
    linkageType: ''
    returnType: void
    signature: 'static void xsltParseStylesheetStripSpace(xsltStylesheetPtr style,
      xmlNodePtr cur) '
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3786,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3796,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3800,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3806,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3816,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3830,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3840,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3850,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3876,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3882,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3824,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3834,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3846,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3860,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3866,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3870,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3854,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3784,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3790,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3794,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3788,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3798,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3802,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3818,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3812,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3808,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3838,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3852,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3822,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3826,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3844,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3858,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3862,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3868,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3880,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:3874,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 72
    argCount: 2
    argNames:
    - cctxt
    - node
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 3886
      start: 3775
    functionDepth: 0
    functionLinenumber: 3775
    functionLinenumberEnd: 3886
    functionName: xsltGetXSLTElementTypeByNode
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - IS_XSLT_NAME
    linkageType: ''
    returnType: xsltStyleType
    signature: "static xsltStyleType xsltGetXSLTElementTypeByNode(xsltCompilerCtxtPtr
      cctxt,\t\t\t xmlNodePtr node) "
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: xsltStylePreCompute
      Src: /src/libxslt/libxslt/xslt.c:4929,1
    - Dst: xmlUnlinkNode
      Src: /src/libxslt/libxslt/xslt.c:4924,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/xslt.c:4928,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:4949,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xslt.c:4997,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:4956,1
    - Dst: xmlDictOwns
      Src: /src/libxslt/libxslt/xslt.c:4989,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:4971,1
    - Dst: xmlUnlinkNode
      Src: /src/libxslt/libxslt/xslt.c:5007,1
    - Dst: xsltCheckExtPrefix
      Src: /src/libxslt/libxslt/xslt.c:5022,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:4921,1
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/xslt.c:4925,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:4931,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:4954,1
    - Dst: xmlSearchNsByHref
      Src: /src/libxslt/libxslt/xslt.c:5036,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:5079,1
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/xslt.c:5083,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:5101,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5104,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:4944,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:4952,1
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/xslt.c:5011,1
    - Dst: xsltCompileAttr
      Src: /src/libxslt/libxslt/xslt.c:5043,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/xslt.c:5101,1
    - Dst: xmlNodeSetContent
      Src: /src/libxslt/libxslt/xslt.c:5000,1
    - Dst: xmlAddPrevSibling
      Src: /src/libxslt/libxslt/xslt.c:5008,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5009,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:4961,1
    - Dst: xsltStylePreCompute
      Src: /src/libxslt/libxslt/xslt.c:5027,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/xslt.c:5092,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:5092,1
    - Dst: xmlUnlinkNode
      Src: /src/libxslt/libxslt/xslt.c:5108,1
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/xslt.c:5109,1
    - Dst: xmlUnlinkNode
      Src: /src/libxslt/libxslt/xslt.c:5082,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 143
    argCount: 2
    argNames:
    - style
    - templ
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5113
      start: 4902
    functionDepth: 0
    functionLinenumber: 4902
    functionLinenumberEnd: 5113
    functionName: xsltParseTemplateContent
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlUnlinkNode
    - xmlGetNsProp
    - xmlDictLookup
    - xsltStylePreCompute
    - xmlAddPrevSibling
    - xmlDictOwns
    - xsltCheckExtPrefix
    - xsltCompileAttr
    - IS_XSLT_NAME
    - xmlNodeSetContent
    - xmlFreeNode
    - xmlSearchNsByHref
    - xmlStrEqual
    - IS_XSLT_ELEM
    - xsltGenericDebug
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'void xsltParseTemplateContent(xsltStylesheetPtr style, xmlNodePtr
      templ) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xslt.c:757,1
    - Dst: memset
      Src: /src/libxslt/libxslt/xslt.c:763,1
    - Dst: xmlDictCreate
      Src: /src/libxslt/libxslt/xslt.c:780,1
    - Dst: xsltNewDecimalFormat
      Src: /src/libxslt/libxslt/xslt.c:768,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:759,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:782,1
    - Dst: xmlXPathNewContext
      Src: /src/libxslt/libxslt/xslt.c:789,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:791,1
    - Dst: xmlXPathContextSetCache
      Src: /src/libxslt/libxslt/xslt.c:795,1
    - Dst: xsltInit
      Src: /src/libxslt/libxslt/xslt.c:801,1
    - Dst: xsltFreeStylesheet
      Src: /src/libxslt/libxslt/xslt.c:807,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - parent
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 809
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 809
    functionName: xsltNewStylesheetInternal
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlDictCreate
    - xmlXPathNewContext
    - xsltFreeStylesheet
    - xsltGenericDebug
    - memset
    - xsltInit
    - xmlXPathContextSetCache
    - xsltNewDecimalFormat
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltStylesheetPtr
    signature: 'static xsltStylesheetPtr xsltNewStylesheetInternal(xsltStylesheetPtr
      parent) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeTemplate
      Src: /src/libxslt/libxslt/xslt.c:475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - template
    argTypes:
    - xsltTemplatePtr
    constantsTouched: []
    func_position:
      end: 477
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 477
    functionName: xsltFreeTemplateList
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltFreeTemplate
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeTemplateList(xsltTemplatePtr template) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xslt.c:2325,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:2327,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - cctxt
    - inst
    - name
    - nsName
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2347
      start: 2312
    functionDepth: 0
    functionLinenumber: 2312
    functionLinenumberEnd: 2347
    functionName: xsltCompilerVarInfoPush
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltVarInfoPtr
    signature: "static xsltVarInfoPtr xsltCompilerVarInfoPush(xsltCompilerCtxtPtr
      cctxt,\t\t\t\t xmlNodePtr inst,\t\t\t\t const xmlChar *name,\t\t\t\t const xmlChar
      *nsName) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/xslt.c:4860,1
    - Dst: IS_XSLT_ELEM_FAST
      Src: /src/libxslt/libxslt/xslt.c:4875,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:4876,1
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/xslt.c:4878,1
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/xslt.c:4861,1
    - Dst: xsltParseAnyXSLTElem
      Src: /src/libxslt/libxslt/xslt.c:4879,1
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/xslt.c:4879,1
    - Dst: xsltParseSequenceConstructor
      Src: /src/libxslt/libxslt/xslt.c:4887,1
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/xslt.c:4887,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - style
    - templ
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 4889
      start: 4851
    functionDepth: 0
    functionLinenumber: 4851
    functionLinenumberEnd: 4889
    functionName: xsltParseTemplateContent
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - XSLT_CCTXT
    - xsltParseSequenceConstructor
    - xsltParseAnyXSLTElem
    - IS_XSLT_NAME
    - IS_XSLT_ELEM_FAST
    linkageType: ''
    returnType: void
    signature: 'void xsltParseTemplateContent(xsltStylesheetPtr style, xmlNodePtr
      templ) '
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateQName
      Src: /src/libxslt/libxslt/xslt.c:1429,1
    - Dst: BAD_CAST
      Src: /src/libxslt/libxslt/xslt.c:1425,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:1430,1
    - Dst: xsltGetQNameURI
      Src: /src/libxslt/libxslt/xslt.c:1439,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1449,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:1454,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1473,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1479,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1481,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1475,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1517,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1457,1
    - Dst: xsltParseContentError
      Src: /src/libxslt/libxslt/xslt.c:1527,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1503,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1497,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1425,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1433,1
    - Dst: xsltDecimalFormatGetByQName
      Src: /src/libxslt/libxslt/xslt.c:1444,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:1446,1
    - Dst: xsltNewDecimalFormat
      Src: /src/libxslt/libxslt/xslt.c:1452,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1467,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1485,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1469,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1487,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1491,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1499,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1509,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1523,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1493,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1511,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1521,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1515,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1505,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 109
    argCount: 2
    argNames:
    - style
    - cur
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1529
      start: 1413
    functionDepth: 0
    functionLinenumber: 1413
    functionLinenumberEnd: 1529
    functionName: xsltParseStylesheetDecimalFormat
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetNsProp
    - BAD_CAST
    - xsltDecimalFormatGetByQName
    - xsltGetQNameURI
    - xmlValidateQName
    - xsltNewDecimalFormat
    - xsltTransformError
    - xsltParseContentError
    linkageType: ''
    returnType: void
    signature: 'static void xsltParseStylesheetDecimalFormat(xsltStylesheetPtr style,
      xmlNodePtr cur) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylesheetInternal
      Src: /src/libxslt/libxslt/xslt.c:6571,1
    - Dst: xsltFreeStylesheet
      Src: /src/libxslt/libxslt/xslt.c:6576,1
    - Dst: xsltParseStylesheetUser
      Src: /src/libxslt/libxslt/xslt.c:6575,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - doc
    - parentStyle
    argTypes:
    - xmlDocPtr
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 6581
      start: 6563
    functionDepth: 0
    functionLinenumber: 6563
    functionLinenumberEnd: 6581
    functionName: xsltParseStylesheetImportedDoc
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltParseStylesheetUser
    - xsltNewStylesheetInternal
    - xsltFreeStylesheet
    linkageType: ''
    returnType: xsltStylesheetPtr
    signature: "xsltStylesheetPtr xsltParseStylesheetImportedDoc(xmlDocPtr doc,\t\t\t
      xsltStylesheetPtr parentStyle) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xslt.c:856,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:875,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:858,1
    - Dst: xmlRealloc
      Src: /src/libxslt/libxslt/xslt.c:872,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 888
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 888
    functionName: xsltAllocateExtraCtxt
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlRealloc
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'int xsltAllocateExtraCtxt(xsltTransformContextPtr ctxt) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_HAS_INTERNAL_NSMAP
      Src: /src/libxslt/libxslt/xslt.c:991,1
    - Dst: xsltFreeAttributeSetsHashes
      Src: /src/libxslt/libxslt/xslt.c:1011,1
    - Dst: xsltFreeStackElemList
      Src: /src/libxslt/libxslt/xslt.c:1025,1
    - Dst: xsltFreeAVTList
      Src: /src/libxslt/libxslt/xslt.c:1049,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/libxslt/xslt.c:1070,1
    - Dst: xmlDictFree
      Src: /src/libxslt/libxslt/xslt.c:1077,1
    - Dst: XSLT_GET_INTERNAL_NSMAP
      Src: /src/libxslt/libxslt/xslt.c:993,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxslt/libxslt/xslt.c:1003,1
    - Dst: xsltFreeKeys
      Src: /src/libxslt/libxslt/xslt.c:1006,1
    - Dst: xsltFreeNamespaceAliasHashes
      Src: /src/libxslt/libxslt/xslt.c:1012,1
    - Dst: xsltShutdownExts
      Src: /src/libxslt/libxslt/xslt.c:1022,1
    - Dst: xsltFreeTemplateList
      Src: /src/libxslt/libxslt/xslt.c:1010,1
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/xslt.c:1031,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1035,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1039,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1041,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1045,1
    - Dst: xsltRestoreDocumentNamespaces
      Src: /src/libxslt/libxslt/xslt.c:993,1
    - Dst: xsltCleanupStylesheetTree
      Src: /src/libxslt/libxslt/xslt.c:1002,1
    - Dst: xsltFreeTemplateHashes
      Src: /src/libxslt/libxslt/xslt.c:1008,1
    - Dst: xsltFreeStylePreComps
      Src: /src/libxslt/libxslt/xslt.c:1013,1
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/xslt.c:1029,1
    - Dst: xsltFreeStylesheetList
      Src: /src/libxslt/libxslt/xslt.c:1051,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxslt/libxslt/xslt.c:1080,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1083,1
    - Dst: xsltFreePrincipalStylesheetData
      Src: /src/libxslt/libxslt/xslt.c:1060,1
    - Dst: memset
      Src: /src/libxslt/libxslt/xslt.c:1082,1
    - Dst: xsltCleanupStylesheetTree
      Src: /src/libxslt/libxslt/xslt.c:984,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxslt/libxslt/xslt.c:985,1
    - Dst: xsltFreeExts
      Src: /src/libxslt/libxslt/xslt.c:1007,1
    - Dst: xsltFreeDecimalFormatList
      Src: /src/libxslt/libxslt/xslt.c:1009,1
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/xslt.c:1027,1
    - Dst: xsltFreeStyleDocuments
      Src: /src/libxslt/libxslt/xslt.c:1018,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1033,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1037,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1043,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1047,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:1074,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 67
    argCount: 1
    argNames:
    - style
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 1084
      start: 973
    functionDepth: 0
    functionLinenumber: 973
    functionLinenumberEnd: 1084
    functionName: xsltFreeStylesheet
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xsltFreePrincipalStylesheetData
    - xsltFreeStackElemList
    - xsltRestoreDocumentNamespaces
    - xmlFreeDoc
    - xsltFreeStyleDocuments
    - xsltShutdownExts
    - xmlHashFree
    - xsltFreeTemplateHashes
    - xsltFreeAVTList
    - XSLT_HAS_INTERNAL_NSMAP
    - xsltFreeExts
    - xsltGenericDebug
    - xmlFree
    - xsltFreeDecimalFormatList
    - memset
    - xmlDictFree
    - xsltCleanupStylesheetTree
    - xsltFreeKeys
    - xmlXPathFreeContext
    - XSLT_GET_INTERNAL_NSMAP
    - xsltFreeAttributeSetsHashes
    - xsltFreeTemplateList
    - xsltFreeStylePreComps
    - xsltFreeNamespaceAliasHashes
    - xsltFreeStylesheetList
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeStylesheet(xsltStylesheetPtr style) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - style
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 836
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 836
    functionName: xsltAllocateExtra
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xsltAllocateExtra(xsltStylesheetPtr style) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - cctxt
    argTypes:
    - xsltCompilerCtxtPtr
    constantsTouched: []
    func_position:
      end: 2365
      start: 2356
    functionDepth: 0
    functionLinenumber: 2356
    functionLinenumberEnd: 2365
    functionName: xsltCompilerVarInfoPop
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xsltCompilerVarInfoPop(xsltCompilerCtxtPtr cctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xslt.c:1832,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xslt.c:1846,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xslt.c:1848,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/xslt.c:1834,1
    - Dst: memset
      Src: /src/libxslt/libxslt/xslt.c:1839,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xslt.c:1850,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xslt.c:1852,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 1856
      start: 1823
    functionDepth: 0
    functionLinenumber: 1823
    functionLinenumberEnd: 1856
    functionName: xsltTreeEnsureXMLDecl
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - memset
    - xmlStrdup
    - xmlGenericError
    - xmlMalloc
    linkageType: ''
    returnType: xmlNsPtr
    signature: 'static xmlNsPtr xsltTreeEnsureXMLDecl(xmlDocPtr doc) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlHasNsProp
      Src: /src/libxslt/libxslt/xslt.c:2998,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:3029,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:3017,1
    - Dst: xmlHasNsProp
      Src: /src/libxslt/libxslt/xslt.c:3000,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:3011,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - cctxt
    - node
    - instrCategory
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 3048
      start: 2987
    functionDepth: 0
    functionLinenumber: 2987
    functionLinenumberEnd: 3048
    functionName: xsltParseAttrXSLTVersion
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltTransformError
    - xmlStrEqual
    - xmlHasNsProp
    linkageType: ''
    returnType: int
    signature: "static int xsltParseAttrXSLTVersion(xsltCompilerCtxtPtr cctxt, xmlNodePtr
      node,\t\t\t int instrCategory) "
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlHasNsProp
      Src: /src/libxslt/libxslt/xslt.c:2909,1
    - Dst: xmlHasNsProp
      Src: /src/libxslt/libxslt/xslt.c:2911,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:2927,1
    - Dst: xsltParseNsPrefixList
      Src: /src/libxslt/libxslt/xslt.c:2934,1
    - Dst: xsltRegisterExtPrefix
      Src: /src/libxslt/libxslt/xslt.c:2944,1
    - Dst: xsltCompilerUtilsCreateMergedList
      Src: /src/libxslt/libxslt/xslt.c:2949,1
    - Dst: xsltPointerListAddSize
      Src: /src/libxslt/libxslt/xslt.c:2955,1
    - Dst: xsltPointerListFree
      Src: /src/libxslt/libxslt/xslt.c:2958,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 37
    argCount: 4
    argNames:
    - cctxt
    - node
    - def
    - instrCategory
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    - xsltPointerListPtr
    - int
    constantsTouched: []
    func_position:
      end: 2973
      start: 2895
    functionDepth: 0
    functionLinenumber: 2895
    functionLinenumberEnd: 2973
    functionName: xsltParseExtElemPrefixes
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltCompilerUtilsCreateMergedList
    - xsltPointerListAddSize
    - xsltPointerListFree
    - xsltRegisterExtPrefix
    - xsltParseNsPrefixList
    - xmlHasNsProp
    - xsltTransformError
    linkageType: ''
    returnType: xsltPointerListPtr
    signature: "static xsltPointerListPtr xsltParseExtElemPrefixes(xsltCompilerCtxtPtr
      cctxt, xmlNodePtr node,\t\t\t xsltPointerListPtr def,\t\t\t int instrCategory) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:6473,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:6480,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:6507,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:6513,1
    - Dst: xsltNewTemplate
      Src: /src/libxslt/libxslt/xslt.c:6529,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xslt.c:6535,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxslt/libxslt/xslt.c:6471,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/xslt.c:6479,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:6517,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/xslt.c:6478,1
    - Dst: xsltParseStylesheetExcludePrefix
      Src: /src/libxslt/libxslt/xslt.c:6489,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:6505,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:6518,1
    - Dst: xsltPreprocessStylesheet
      Src: /src/libxslt/libxslt/xslt.c:6494,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:6524,1
    - Dst: xsltInitGlobals
      Src: /src/libxslt/libxslt/xslt.c:6459,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:6482,1
    - Dst: xsltParseStylesheetExcludePrefix
      Src: /src/libxslt/libxslt/xslt.c:6486,1
    - Dst: xsltParseStylesheetExtPrefix
      Src: /src/libxslt/libxslt/xslt.c:6487,1
    - Dst: xsltParseStylesheetTop
      Src: /src/libxslt/libxslt/xslt.c:6497,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:6519,1
    - Dst: xsltParseStylesheetExtPrefix
      Src: /src/libxslt/libxslt/xslt.c:6490,1
    - Dst: xsltParseTemplateContent
      Src: /src/libxslt/libxslt/xslt.c:6540,1
    - Dst: xsltAddTemplate
      Src: /src/libxslt/libxslt/xslt.c:6543,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 2
    argNames:
    - ret
    - doc
    argTypes:
    - xsltStylesheetPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 6548
      start: 6455
    functionDepth: 0
    functionLinenumber: 6455
    functionLinenumberEnd: 6548
    functionName: xsltParseStylesheetProcess
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlGetNsProp
    - xsltParseStylesheetExcludePrefix
    - xmlFree
    - xsltNewTemplate
    - xsltGenericDebug
    - IS_XSLT_NAME
    - xsltInitGlobals
    - xmlStrdup
    - xsltPreprocessStylesheet
    - xsltParseStylesheetTop
    - xmlStrEqual
    - xsltAddTemplate
    - xsltParseTemplateContent
    - IS_XSLT_ELEM
    - xsltTransformError
    - xsltParseStylesheetExtPrefix
    linkageType: ''
    returnType: xsltStylesheetPtr
    signature: 'xsltStylesheetPtr xsltParseStylesheetProcess(xsltStylesheetPtr ret,
      xmlDocPtr doc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - xsltNsAliasPtr
    constantsTouched: []
    func_position:
      end: 492
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 492
    functionName: xsltFreeNsAliasList
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeNsAliasList(xsltNsAliasPtr item) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/xslt.c:125,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:126,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - style
    - node
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 134
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 134
    functionName: xsltParseContentError
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - IS_XSLT_ELEM
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: "static void xsltParseContentError(xsltStylesheetPtr style,\t\t xmlNodePtr
      node) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xsltTreeEnsureXMLDecl
      Src: /src/libxslt/libxslt/xslt.c:1884,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1899,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1898,1
    - Dst: xmlNewNs
      Src: /src/libxslt/libxslt/xslt.c:1909,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1894,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 3
    argNames:
    - doc
    - nsName
    - prefix
    argTypes:
    - xmlDocPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1911
      start: 1872
    functionDepth: 0
    functionLinenumber: 1872
    functionLinenumberEnd: 1911
    functionName: xsltTreeAcquireStoredNs
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    - xsltTreeEnsureXMLDecl
    - xmlNewNs
    linkageType: ''
    returnType: xmlNsPtr
    signature: "static xmlNsPtr xsltTreeAcquireStoredNs(xmlDocPtr doc,\t\t\tconst
      xmlChar *nsName,\t\t\tconst xmlChar *prefix) "
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1940,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/xslt.c:1963,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:1988,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1970,1
    - Dst: xsltTreeAcquireStoredNs
      Src: /src/libxslt/libxslt/xslt.c:1983,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:2030,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/xslt.c:2038,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:2041,1
    - Dst: xsltTreeAcquireStoredNs
      Src: /src/libxslt/libxslt/xslt.c:2043,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:2048,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 93
    argCount: 2
    argNames:
    - cctxt
    - elem
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2075
      start: 1919
    functionDepth: 0
    functionLinenumber: 1919
    functionLinenumberEnd: 2075
    functionName: xsltLREBuildEffectiveNs
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlSearchNs
    - xmlStrEqual
    - xsltTransformError
    - xsltTreeAcquireStoredNs
    linkageType: ''
    returnType: int
    signature: "static int xsltLREBuildEffectiveNs(xsltCompilerCtxtPtr cctxt,\t\t\txmlNodePtr
      elem) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - style
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 208
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 208
    functionName: exclPrefixPop
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *exclPrefixPop(xsltStylesheetPtr style) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - xsltNsMapPtr
    constantsTouched: []
    func_position:
      end: 506
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 506
    functionName: xsltFreeNamespaceMap
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeNamespaceMap(xsltNsMapPtr item) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlHasNsProp
      Src: /src/libxslt/libxslt/xslt.c:2827,1
    - Dst: xmlHasNsProp
      Src: /src/libxslt/libxslt/xslt.c:2829,1
    - Dst: xsltParseNsPrefixList
      Src: /src/libxslt/libxslt/xslt.c:2851,1
    - Dst: xsltCompilerUtilsCreateMergedList
      Src: /src/libxslt/libxslt/xslt.c:2859,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:2845,1
    - Dst: xsltPointerListAddSize
      Src: /src/libxslt/libxslt/xslt.c:2865,1
    - Dst: xsltPointerListFree
      Src: /src/libxslt/libxslt/xslt.c:2868,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 34
    argCount: 4
    argNames:
    - cctxt
    - node
    - def
    - instrCategory
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    - xsltPointerListPtr
    - int
    constantsTouched: []
    func_position:
      end: 2883
      start: 2814
    functionDepth: 0
    functionLinenumber: 2814
    functionLinenumberEnd: 2883
    functionName: xsltParseExclResultPrefixes
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltCompilerUtilsCreateMergedList
    - xsltPointerListAddSize
    - xsltPointerListFree
    - xsltParseNsPrefixList
    - xmlHasNsProp
    - xsltTransformError
    linkageType: ''
    returnType: xsltPointerListPtr
    signature: "static xsltPointerListPtr xsltParseExclResultPrefixes(xsltCompilerCtxtPtr
      cctxt, xmlNodePtr node,\t\t\t xsltPointerListPtr def,\t\t\t int instrCategory) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xslt.c:519,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:521,1
    - Dst: memset
      Src: /src/libxslt/libxslt/xslt.c:526,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - cctxt
    - doc
    - ns
    - elem
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlDocPtr
    - xmlNsPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 538
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 538
    functionName: xsltNewNamespaceMapItem
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - memset
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltNsMapPtr
    signature: "static xsltNsMapPtr xsltNewNamespaceMapItem(xsltCompilerCtxtPtr cctxt,\t\t\txmlDocPtr
      doc,\t\t\txmlNsPtr ns,\t\t\txmlNodePtr elem) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xslt.c:159,1
    - Dst: xmlRealloc
      Src: /src/libxslt/libxslt/xslt.c:172,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:165,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/xslt.c:175,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - style
    - orig
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 184
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 184
    functionName: exclPrefixPush
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlGenericError
    - xmlRealloc
    - xmlDictLookup
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int exclPrefixPush(xsltStylesheetPtr style, xmlChar * orig) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:400,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/xslt.c:404,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - style
    - nsUri
    - name
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 407
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 407
    functionName: xsltDecimalFormatGetByQName
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    - xsltNextImport
    linkageType: ''
    returnType: xsltDecimalFormatPtr
    signature: 'xsltDecimalFormatPtr xsltDecimalFormatGetByQName(xsltStylesheetPtr
      style, const xmlChar *nsUri, const xmlChar *name) '
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlDocPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 965
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 965
    functionName: xsltCleanupStylesheetTree
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "static int xsltCleanupStylesheetTree(xmlDocPtr doc ATTRIBUTE_UNUSED,\t\t\t
      xmlNodePtr rootElem ATTRIBUTE_UNUSED) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xsltPointerListCreate
      Src: /src/libxslt/libxslt/xslt.c:2785,1
    - Dst: memcpy
      Src: /src/libxslt/libxslt/xslt.c:2798,1
    - Dst: memcpy
      Src: /src/libxslt/libxslt/xslt.c:2792,1
    - Dst: memcpy
      Src: /src/libxslt/libxslt/xslt.c:2795,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - xsltPointerListPtr
    - xsltPointerListPtr
    constantsTouched: []
    func_position:
      end: 2802
      start: 2770
    functionDepth: 0
    functionLinenumber: 2770
    functionLinenumberEnd: 2802
    functionName: xsltCompilerUtilsCreateMergedList
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - memcpy
    - xsltPointerListCreate
    linkageType: ''
    returnType: xsltPointerListPtr
    signature: "static xsltPointerListPtr xsltCompilerUtilsCreateMergedList(xsltPointerListPtr
      first,\t\t\t xsltPointerListPtr second) "
  - BBCount: 64
    BranchProfiles: []
    Callsites:
    - Dst: IS_XSLT_ELEM_FAST
      Src: /src/libxslt/libxslt/xslt.c:3908,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:4009,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:4069,1
    - Dst: IS_XSLT_ELEM_FAST
      Src: /src/libxslt/libxslt/xslt.c:4082,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:4083,1
    - Dst: xsltParseAnyXSLTElem
      Src: /src/libxslt/libxslt/xslt.c:4088,1
    - Dst: xsltParseAnyXSLTElem
      Src: /src/libxslt/libxslt/xslt.c:4111,1
    - Dst: IS_BLANK_NODE
      Src: /src/libxslt/libxslt/xslt.c:4148,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:4150,1
    - Dst: xsltParseAnyXSLTElem
      Src: /src/libxslt/libxslt/xslt.c:4202,1
    - Dst: xsltParseContentError
      Src: /src/libxslt/libxslt/xslt.c:4206,1
    - Dst: xsltCompilerBuildInScopeNsList
      Src: /src/libxslt/libxslt/xslt.c:3931,1
    - Dst: xsltGetXSLTElementTypeByNode
      Src: /src/libxslt/libxslt/xslt.c:4108,1
    - Dst: xsltParseContentError
      Src: /src/libxslt/libxslt/xslt.c:4092,1
    - Dst: xsltParseContentError
      Src: /src/libxslt/libxslt/xslt.c:4116,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:4130,1
    - Dst: IS_XSLT_ELEM_FAST
      Src: /src/libxslt/libxslt/xslt.c:4173,1
    - Dst: IS_XSLT_ELEM_FAST
      Src: /src/libxslt/libxslt/xslt.c:4239,1
    - Dst: xsltParseSequenceConstructor
      Src: /src/libxslt/libxslt/xslt.c:4256,1
    - Dst: xsltCompilerVarInfoPush
      Src: /src/libxslt/libxslt/xslt.c:4278,1
    - Dst: xsltCompilerNodePop
      Src: /src/libxslt/libxslt/xslt.c:4290,1
    - Dst: xsltParseSequenceConstructor
      Src: /src/libxslt/libxslt/xslt.c:4265,1
    - Dst: xsltStylePreCompute
      Src: /src/libxslt/libxslt/xslt.c:3938,1
    - Dst: xsltParseAnyXSLTElem
      Src: /src/libxslt/libxslt/xslt.c:4085,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:4086,1
    - Dst: IS_XSLT_ELEM_FAST
      Src: /src/libxslt/libxslt/xslt.c:4105,1
    - Dst: xsltGetXSLTElementTypeByNode
      Src: /src/libxslt/libxslt/xslt.c:4176,1
    - Dst: xsltParseContentError
      Src: /src/libxslt/libxslt/xslt.c:4180,1
    - Dst: xsltParseAnyXSLTElem
      Src: /src/libxslt/libxslt/xslt.c:4185,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:4193,1
    - Dst: xsltGetXSLTElementTypeByNode
      Src: /src/libxslt/libxslt/xslt.c:4241,1
    - Dst: xsltParseAnyXSLTElem
      Src: /src/libxslt/libxslt/xslt.c:4245,1
    - Dst: xsltCompilerNodePush
      Src: /src/libxslt/libxslt/xslt.c:3917,1
    - Dst: xsltGetXSLTElementTypeByNode
      Src: /src/libxslt/libxslt/xslt.c:3925,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:4046,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:4065,1
    - Dst: xsltParseContentError
      Src: /src/libxslt/libxslt/xslt.c:4090,1
    - Dst: xsltParseContentError
      Src: /src/libxslt/libxslt/xslt.c:4113,1
    - Dst: xsltParseContentError
      Src: /src/libxslt/libxslt/xslt.c:4188,1
    - Dst: xsltParseContentError
      Src: /src/libxslt/libxslt/xslt.c:4204,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:4215,1
    - Dst: xsltCompilerNodePop
      Src: /src/libxslt/libxslt/xslt.c:4286,1
    CyclomaticComplexity: 120
    EdgeCount: 120
    ICount: 176
    argCount: 2
    argNames:
    - cctxt
    - elem
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 4292
      start: 3899
    functionDepth: 0
    functionLinenumber: 3899
    functionLinenumberEnd: 4292
    functionName: xsltParseAnyXSLTElem
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltCompilerNodePop
    - xsltStylePreCompute
    - xsltParseAnyXSLTElem
    - xsltGenericDebug
    - xsltParseSequenceConstructor
    - xsltCompilerBuildInScopeNsList
    - xsltCompilerVarInfoPush
    - xsltGetXSLTElementTypeByNode
    - IS_XSLT_ELEM_FAST
    - xmlStrEqual
    - xsltCompilerNodePush
    - xsltTransformError
    - xsltParseContentError
    - IS_BLANK_NODE
    linkageType: ''
    returnType: int
    signature: 'int xsltParseAnyXSLTElem(xsltCompilerCtxtPtr cctxt, xmlNodePtr elem) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5394,1
    - Dst: xsltGetInheritedNsList
      Src: /src/libxslt/libxslt/xslt.c:5418,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xslt.c:5437,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xslt.c:5439,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:5442,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:5454,1
    - Dst: xmlXPathStringEvalNumber
      Src: /src/libxslt/libxslt/xslt.c:5456,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:5450,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:5477,1
    - Dst: xsltAddTemplate
      Src: /src/libxslt/libxslt/xslt.c:5496,1
    - Dst: xsltGetQNameURI
      Src: /src/libxslt/libxslt/xslt.c:5430,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:5445,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:5446,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:5458,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5474,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:5423,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:5448,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:5461,1
    - Dst: xsltGetQNameURI
      Src: /src/libxslt/libxslt/xslt.c:5468,1
    - Dst: xsltNewTemplate
      Src: /src/libxslt/libxslt/xslt.c:5404,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xslt.c:5440,1
    - Dst: xmlValidateNCName
      Src: /src/libxslt/libxslt/xslt.c:5473,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xslt.c:5480,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:5481,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/xslt.c:5484,1
    - Dst: xsltParseTemplateContent
      Src: /src/libxslt/libxslt/xslt.c:5493,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 83
    argCount: 2
    argNames:
    - style
    - template
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5500
      start: 5380
    functionDepth: 0
    functionLinenumber: 5380
    functionLinenumberEnd: 5500
    functionName: xsltParseStylesheetTemplate
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetNsProp
    - xmlXPathStringEvalNumber
    - xmlDictLookup
    - xsltNewTemplate
    - xsltGenericDebug
    - xsltGetInheritedNsList
    - xsltAddTemplate
    - xsltGetQNameURI
    - xmlStrdup
    - xsltParseTemplateContent
    - xsltTransformError
    - xmlValidateNCName
    linkageType: ''
    returnType: void
    signature: 'static void xsltParseStylesheetTemplate(xsltStylesheetPtr style, xmlNodePtr
      template) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xslt.c:2274,1
    - Dst: memset
      Src: /src/libxslt/libxslt/xslt.c:2282,1
    - Dst: xsltLREBuildEffectiveNsNodes
      Src: /src/libxslt/libxslt/xslt.c:2296,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:2276,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - cctxt
    - elem
    - isLRE
    argTypes:
    - xsltCompilerCtxtPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 2302
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2302
    functionName: xsltLREInfoCreate
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - memset
    - xsltTransformError
    - xmlMalloc
    - xsltLREBuildEffectiveNsNodes
    linkageType: ''
    returnType: int
    signature: "static int xsltLREInfoCreate(xsltCompilerCtxtPtr cctxt,\t\t xmlNodePtr
      elem,\t\t int isLRE) "
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:5142,1
    - Dst: xsltGetQNameURI
      Src: /src/libxslt/libxslt/xslt.c:5149,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/xslt.c:5156,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:5159,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5163,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:5169,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5171,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:5177,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:5179,1
    - Dst: xsltAddKey
      Src: /src/libxslt/libxslt/xslt.c:5188,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:5193,1
    - Dst: xsltParseContentError
      Src: /src/libxslt/libxslt/xslt.c:5202,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:5195,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:5197,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:5199,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 48
    argCount: 2
    argNames:
    - style
    - key
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5204
      start: 5128
    functionDepth: 0
    functionLinenumber: 5128
    functionLinenumberEnd: 5204
    functionName: xsltParseStylesheetKey
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetNsProp
    - xsltGetQNameURI
    - xmlStrdup
    - xsltAddKey
    - xsltGenericDebug
    - xsltParseContentError
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'static void xsltParseStylesheetKey(xsltStylesheetPtr style, xmlNodePtr
      key) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1763,1
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/xslt.c:1779,1
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/xslt.c:1775,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/xslt.c:1780,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/xslt.c:1766,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:1784,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/xslt.c:1785,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/xslt.c:1787,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:1789,1
    - Dst: exclPrefixPush
      Src: /src/libxslt/libxslt/xslt.c:1794,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1802,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/xslt.c:1796,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:1806,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 3
    argNames:
    - style
    - cur
    - isXsltElem
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 1808
      start: 1751
    functionDepth: 0
    functionLinenumber: 1751
    functionLinenumberEnd: 1808
    functionName: xsltParseStylesheetExcludePrefix
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetNsProp
    - xmlStrndup
    - xsltGenericDebug
    - exclPrefixPush
    - xmlStrEqual
    - xmlSearchNs
    - IS_BLANK
    - xsltTransformError
    linkageType: ''
    returnType: int
    signature: "static int xsltParseStylesheetExcludePrefix(xsltStylesheetPtr style,
      xmlNodePtr cur,\t\t\t\t int isXsltElem) "
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:2124,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:2197,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:2173,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:2189,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/xslt.c:2156,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xslt.c:2222,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xslt.c:2224,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 76
    argCount: 4
    argNames:
    - cctxt
    - item
    - elem
    - isLRE
    argTypes:
    - xsltCompilerCtxtPtr
    - xsltStyleItemLRElementInfoPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 2253
      start: 2090
    functionDepth: 0
    functionLinenumber: 2090
    functionLinenumberEnd: 2253
    functionName: xsltLREBuildEffectiveNsNodes
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xsltTransformError
    - xmlStrEqual
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: "static int xsltLREBuildEffectiveNsNodes(xsltCompilerCtxtPtr cctxt,\t\t\t
      xsltStyleItemLRElementInfoPtr item,\t\t\t xmlNodePtr elem,\t\t\t int isLRE) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xslt.c:555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cctxt
    argTypes:
    - xsltCompilerCtxtPtr
    constantsTouched: []
    func_position:
      end: 557
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 557
    functionName: xsltCompilerVarInfoFree
    functionSourceFile: /src/libxslt/libxslt/xslt.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xsltCompilerVarInfoFree(xsltCompilerCtxtPtr cctxt) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:79,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:89,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:88,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:91,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:87,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - style
    - inst
    - err
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 99
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 99
    functionName: xsltCheckTopLevelElement
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltTransformError
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xsltCheckTopLevelElement(xsltStylesheetPtr style, xmlNodePtr
      inst, int err) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:174,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:181,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/preproc.c:194,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:183,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:182,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:200,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 33
    argCount: 4
    argNames:
    - style
    - inst
    - allow1
    - allow2
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 204
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 204
    functionName: xsltCheckParentElement
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltTransformError
    - xmlStrEqual
    - xmlHashLookup
    linkageType: ''
    returnType: void
    signature: 'static void xsltCheckParentElement(xsltStylesheetPtr style, xmlNodePtr
      inst, const xmlChar *allow1, const xmlChar *allow2) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1725,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1737,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1727,1
    - Dst: xsltXPathCompile
      Src: /src/libxslt/libxslt/preproc.c:1742,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1735,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1744,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1749
      start: 1712
    functionDepth: 0
    functionLinenumber: 1712
    functionLinenumberEnd: 1749
    functionName: xsltWhenComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltGetCNsProp
    - xsltTransformError
    - xsltNewStylePreComp
    - xsltXPathCompile
    linkageType: ''
    returnType: void
    signature: 'static void xsltWhenComp(xsltStylesheetPtr style, xmlNodePtr inst) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1962,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - style
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 1965
      start: 1949
    functionDepth: 0
    functionLinenumber: 1949
    functionLinenumberEnd: 1965
    functionName: xsltFreeStylePreComps
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltFreeStylePreComp
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeStylePreComps(xsltStylesheetPtr style) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1679,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1681,1
    - Dst: xsltXPathCompile
      Src: /src/libxslt/libxslt/preproc.c:1696,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1691,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1689,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1698,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1703
      start: 1666
    functionDepth: 0
    functionLinenumber: 1666
    functionLinenumberEnd: 1703
    functionName: xsltIfComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltGetCNsProp
    - xsltTransformError
    - xsltNewStylePreComp
    - xsltXPathCompile
    linkageType: ''
    returnType: void
    signature: 'static void xsltIfComp(xsltStylesheetPtr style, xmlNodePtr inst) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1898,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1918,1
    - Dst: xsltGetQNameProperty
      Src: /src/libxslt/libxslt/preproc.c:1911,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1900,1
    - Dst: xsltXPathCompile
      Src: /src/libxslt/libxslt/preproc.c:1921,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1923,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1929,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1935
      start: 1885
    functionDepth: 0
    functionLinenumber: 1885
    functionLinenumberEnd: 1935
    functionName: xsltParamComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltGetCNsProp
    - xsltGetQNameProperty
    - xsltXPathCompile
    - xsltTransformError
    - xsltNewStylePreComp
    linkageType: ''
    returnType: void
    signature: 'static void xsltParamComp(xsltStylesheetPtr style, xmlNodePtr inst) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1105,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1114
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1114
    functionName: xsltCommentComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltNewStylePreComp
    linkageType: ''
    returnType: void
    signature: 'static void xsltCommentComp(xsltStylesheetPtr style, xmlNodePtr inst) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:550,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:560,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:552,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/preproc.c:562,1
    - Dst: xsltEvalStaticAttrValueTemplate
      Src: /src/libxslt/libxslt/preproc.c:573,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:576,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/preproc.c:578,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:590,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:592,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/preproc.c:599,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/preproc.c:607,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:610,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/preproc.c:613,1
    - Dst: xsltEvalStaticAttrValueTemplate
      Src: /src/libxslt/libxslt/preproc.c:646,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:603,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - style
    - inst
    - ATTRIBUTE_UNUSED
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    - xsltTransformFunction
    constantsTouched: []
    func_position:
      end: 656
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 656
    functionName: xsltDocumentComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xmlStrEqual
    - xsltEvalStaticAttrValueTemplate
    - xsltNewStylePreComp
    linkageType: ''
    returnType: xsltElemPreCompPtr
    signature: "xsltElemPreCompPtr xsltDocumentComp(xsltStylesheetPtr style, xmlNodePtr
      inst,\t\t xsltTransformFunction function ATTRIBUTE_UNUSED) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:881,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:900,1
    - Dst: xsltEvalStaticAttrValueTemplate
      Src: /src/libxslt/libxslt/preproc.c:911,1
    - Dst: xsltEvalStaticAttrValueTemplate
      Src: /src/libxslt/libxslt/preproc.c:897,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:883,1
    - Dst: xmlValidateQName
      Src: /src/libxslt/libxslt/preproc.c:915,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:916,1
    - Dst: xsltSplitQName
      Src: /src/libxslt/libxslt/preproc.c:923,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/preproc.c:934,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/preproc.c:936,1
    - Dst: xmlStrncasecmp
      Src: /src/libxslt/libxslt/preproc.c:954,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:945,1
    - Dst: xsltEvalStaticAttrValueTemplate
      Src: /src/libxslt/libxslt/preproc.c:966,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 972
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 972
    functionName: xsltElementComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - xmlStrncasecmp
    - xsltEvalStaticAttrValueTemplate
    - xsltSplitQName
    - xmlSearchNs
    - xmlValidateQName
    - xsltTransformError
    - xsltNewStylePreComp
    linkageType: ''
    returnType: void
    signature: 'static void xsltElementComp(xsltStylesheetPtr style, xmlNodePtr inst) '
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/preproc.c:395,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/preproc.c:417,1
    - Dst: xsltFreeCompMatchList
      Src: /src/libxslt/libxslt/preproc.c:423,1
    - Dst: xsltFreeCompMatchList
      Src: /src/libxslt/libxslt/preproc.c:425,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/preproc.c:411,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/preproc.c:436,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/preproc.c:444,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/preproc.c:451,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/preproc.c:460,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/preproc.c:467,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/preproc.c:481,1
    - Dst: xsltFreeCompMatchList
      Src: /src/libxslt/libxslt/preproc.c:499,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/preproc.c:503,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/preproc.c:506,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/preproc.c:474,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/preproc.c:497,1
    - Dst: xsltFreeCompMatchList
      Src: /src/libxslt/libxslt/preproc.c:501,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 47
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xsltStylePreCompPtr
    constantsTouched: []
    func_position:
      end: 507
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 507
    functionName: xsltFreeStylePreComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltFreeCompMatchList
    - xmlXPathFreeCompExpr
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeStylePreComp(xsltStylePreCompPtr comp) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1000,1
    - Dst: xsltEvalStaticAttrValueTemplate
      Src: /src/libxslt/libxslt/preproc.c:1032,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1003,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1021,1
    - Dst: xsltEvalStaticAttrValueTemplate
      Src: /src/libxslt/libxslt/preproc.c:1017,1
    - Dst: xmlValidateQName
      Src: /src/libxslt/libxslt/preproc.c:1037,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1038,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:1042,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1043,1
    - Dst: xsltSplitQName
      Src: /src/libxslt/libxslt/preproc.c:1049,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/preproc.c:1063,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1072,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/preproc.c:1061,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1084
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 1084
    functionName: xsltAttributeComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - xsltEvalStaticAttrValueTemplate
    - xsltSplitQName
    - xmlSearchNs
    - xmlValidateQName
    - xmlStrEqual
    - xsltTransformError
    - xsltNewStylePreComp
    linkageType: ''
    returnType: void
    signature: 'static void xsltAttributeComp(xsltStylesheetPtr style, xmlNodePtr
      inst) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1169,1
    - Dst: xsltXPathCompile
      Src: /src/libxslt/libxslt/preproc.c:1187,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1171,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1182,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1179,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1189,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1194
      start: 1157
    functionDepth: 0
    functionLinenumber: 1157
    functionLinenumberEnd: 1194
    functionName: xsltCopyOfComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltGetCNsProp
    - xsltTransformError
    - xsltNewStylePreComp
    - xsltXPathCompile
    linkageType: ''
    returnType: void
    signature: 'static void xsltCopyOfComp(xsltStylesheetPtr style, xmlNodePtr inst) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1819,1
    - Dst: xsltXPathCompile
      Src: /src/libxslt/libxslt/preproc.c:1849,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1843,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1821,1
    - Dst: xsltGetQNameProperty
      Src: /src/libxslt/libxslt/preproc.c:1836,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1851,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1858,1
    - Dst: xsltIsBlank
      Src: /src/libxslt/libxslt/preproc.c:1866,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1868,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1876
      start: 1806
    functionDepth: 0
    functionLinenumber: 1806
    functionLinenumberEnd: 1876
    functionName: xsltVariableComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltGetCNsProp
    - xsltGetQNameProperty
    - xsltXPathCompile
    - xsltIsBlank
    - xsltTransformError
    - xsltNewStylePreComp
    linkageType: ''
    returnType: void
    signature: 'static void xsltVariableComp(xsltStylesheetPtr style, xmlNodePtr inst) '
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: xsltWhenComp
      Src: /src/libxslt/libxslt/preproc.c:2019,1
    - Dst: xsltVariableComp
      Src: /src/libxslt/libxslt/preproc.c:2055,1
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/preproc.c:1995,1
    - Dst: xsltAttributeComp
      Src: /src/libxslt/libxslt/preproc.c:2031,1
    - Dst: xsltNumberComp
      Src: /src/libxslt/libxslt/preproc.c:2043,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2138,1
    - Dst: xsltDocumentComp
      Src: /src/libxslt/libxslt/preproc.c:2130,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:2163,1
    - Dst: xsltValueOfComp
      Src: /src/libxslt/libxslt/preproc.c:2004,1
    - Dst: xsltCopyComp
      Src: /src/libxslt/libxslt/preproc.c:2091,1
    - Dst: xsltCommentComp
      Src: /src/libxslt/libxslt/preproc.c:2114,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2096,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2119,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2141,1
    - Dst: xsltWithParamComp
      Src: /src/libxslt/libxslt/preproc.c:2001,1
    - Dst: xsltIfComp
      Src: /src/libxslt/libxslt/preproc.c:2013,1
    - Dst: xsltDocumentComp
      Src: /src/libxslt/libxslt/preproc.c:2062,1
    - Dst: xsltCopyComp
      Src: /src/libxslt/libxslt/preproc.c:2007,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2094,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2117,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2152,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2132,1
    - Dst: xsltElementComp
      Src: /src/libxslt/libxslt/preproc.c:2034,1
    - Dst: xsltProcessingInstructionComp
      Src: /src/libxslt/libxslt/preproc.c:2046,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2155,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2090,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2113,1
    - Dst: xsltWhenComp
      Src: /src/libxslt/libxslt/preproc.c:2099,1
    - Dst: xsltApplyImportsComp
      Src: /src/libxslt/libxslt/preproc.c:2106,1
    - Dst: xsltParamComp
      Src: /src/libxslt/libxslt/preproc.c:2122,1
    - Dst: xsltValueOfComp
      Src: /src/libxslt/libxslt/preproc.c:2089,1
    - Dst: xsltSortComp
      Src: /src/libxslt/libxslt/preproc.c:2112,1
    - Dst: xsltWithParamComp
      Src: /src/libxslt/libxslt/preproc.c:2087,1
    - Dst: xsltElementComp
      Src: /src/libxslt/libxslt/preproc.c:2110,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2135,1
    - Dst: xsltCopyOfComp
      Src: /src/libxslt/libxslt/preproc.c:2093,1
    - Dst: xsltNumberComp
      Src: /src/libxslt/libxslt/preproc.c:2116,1
    - Dst: xsltAttributeComp
      Src: /src/libxslt/libxslt/preproc.c:2108,1
    - Dst: xsltApplyTemplatesComp
      Src: /src/libxslt/libxslt/preproc.c:2085,1
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/preproc.c:1996,1
    - Dst: xsltForEachComp
      Src: /src/libxslt/libxslt/preproc.c:2025,1
    - Dst: xsltSortComp
      Src: /src/libxslt/libxslt/preproc.c:2037,1
    - Dst: xsltCallTemplateComp
      Src: /src/libxslt/libxslt/preproc.c:2049,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2149,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2125,1
    - Dst: xsltForEachComp
      Src: /src/libxslt/libxslt/preproc.c:2104,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2098,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2105,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2121,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2128,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2088,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2111,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2086,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2109,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2092,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2115,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2107,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2084,1
    - Dst: IS_XSLT_ELEM_FAST
      Src: /src/libxslt/libxslt/preproc.c:1991,1
    - Dst: xsltApplyTemplatesComp
      Src: /src/libxslt/libxslt/preproc.c:1998,1
    - Dst: xsltChooseComp
      Src: /src/libxslt/libxslt/preproc.c:2016,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2144,1
    - Dst: xsltApplyImportsComp
      Src: /src/libxslt/libxslt/preproc.c:2028,1
    - Dst: xsltCommentComp
      Src: /src/libxslt/libxslt/preproc.c:2040,1
    - Dst: xsltParamComp
      Src: /src/libxslt/libxslt/preproc.c:2052,1
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/preproc.c:2176,1
    - Dst: xsltChooseComp
      Src: /src/libxslt/libxslt/preproc.c:2097,1
    - Dst: xsltCallTemplateComp
      Src: /src/libxslt/libxslt/preproc.c:2120,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2103,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2146,1
    - Dst: xsltVariableComp
      Src: /src/libxslt/libxslt/preproc.c:2124,1
    - Dst: xsltCopyOfComp
      Src: /src/libxslt/libxslt/preproc.c:2010,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:2074,1
    - Dst: xsltIfComp
      Src: /src/libxslt/libxslt/preproc.c:2095,1
    - Dst: xsltProcessingInstructionComp
      Src: /src/libxslt/libxslt/preproc.c:2118,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2100,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2123,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 128
    argCount: 2
    argNames:
    - style
    - node
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2178
      start: 1978
    functionDepth: 0
    functionLinenumber: 1978
    functionLinenumberEnd: 2178
    functionName: xsltStylePreCompute
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - XSLT_CCTXT
    - xsltApplyTemplatesComp
    - xsltApplyImportsComp
    - xsltAttributeComp
    - xsltWhenComp
    - xsltParamComp
    - xsltValueOfComp
    - xsltForEachComp
    - xsltWithParamComp
    - xsltCopyComp
    - xsltIfComp
    - xsltDocumentComp
    - xsltSortComp
    - xsltCommentComp
    - xsltProcessingInstructionComp
    - xsltChooseComp
    - xsltNumberComp
    - IS_XSLT_ELEM_FAST
    - xsltCallTemplateComp
    - IS_XSLT_NAME
    - xsltElementComp
    - xsltVariableComp
    - xsltTransformError
    - xsltCopyOfComp
    linkageType: ''
    returnType: void
    signature: 'void xsltStylePreCompute(xsltStylesheetPtr style, xmlNodePtr node) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:828,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:830,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:844,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:838,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:842,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:846,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 851
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 851
    functionName: xsltTextComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltGetCNsProp
    - xsltTransformError
    - xmlStrEqual
    - xsltNewStylePreComp
    linkageType: ''
    returnType: void
    signature: 'static void xsltTextComp(xsltStylesheetPtr style, xmlNodePtr inst) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1135,1
    - Dst: xsltEvalStaticAttrValueTemplate
      Src: /src/libxslt/libxslt/preproc.c:1145,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1148
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1148
    functionName: xsltProcessingInstructionComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltEvalStaticAttrValueTemplate
    - xsltNewStylePreComp
    linkageType: ''
    returnType: void
    signature: 'static void xsltProcessingInstructionComp(xsltStylesheetPtr style,
      xmlNodePtr inst) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1771,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1773,1
    - Dst: xsltXPathCompile
      Src: /src/libxslt/libxslt/preproc.c:1788,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1781,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1784,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1790,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1797
      start: 1758
    functionDepth: 0
    functionLinenumber: 1758
    functionLinenumberEnd: 1797
    functionName: xsltForEachComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltGetCNsProp
    - xsltTransformError
    - xsltNewStylePreComp
    - xsltXPathCompile
    linkageType: ''
    returnType: void
    signature: 'static void xsltForEachComp(xsltStylesheetPtr style, xmlNodePtr inst) '
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2224,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2250,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2268,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2321,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2328,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2259,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2208,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2215,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2226,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2232,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2252,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2277,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2309,1
    - Dst: xsltDocumentComp
      Src: /src/libxslt/libxslt/preproc.c:2332,1
    - Dst: xsltNumberComp
      Src: /src/libxslt/libxslt/preproc.c:2264,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2210,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2217,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2230,1
    - Dst: xsltApplyImportsComp
      Src: /src/libxslt/libxslt/preproc.c:2237,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2273,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2292,1
    - Dst: xsltCopyOfComp
      Src: /src/libxslt/libxslt/preproc.c:2222,1
    - Dst: xsltAttributeComp
      Src: /src/libxslt/libxslt/preproc.c:2248,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2296,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2306,1
    - Dst: xsltCheckTopLevelElement
      Src: /src/libxslt/libxslt/preproc.c:2325,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2330,1
    - Dst: xmlGetNsList
      Src: /src/libxslt/libxslt/preproc.c:2348,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2223,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:2245,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2249,1
    - Dst: xsltCheckTopLevelElement
      Src: /src/libxslt/libxslt/preproc.c:2287,1
    - Dst: xsltVariableComp
      Src: /src/libxslt/libxslt/preproc.c:2278,1
    - Dst: xsltCallTemplateComp
      Src: /src/libxslt/libxslt/preproc.c:2270,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2327,1
    - Dst: xsltPreComputeExtModuleElement
      Src: /src/libxslt/libxslt/preproc.c:2357,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2207,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2214,1
    - Dst: xsltForEachComp
      Src: /src/libxslt/libxslt/preproc.c:2234,1
    - Dst: xsltCommentComp
      Src: /src/libxslt/libxslt/preproc.c:2261,1
    - Dst: xsltCheckTopLevelElement
      Src: /src/libxslt/libxslt/preproc.c:2313,1
    - Dst: xsltCheckTopLevelElement
      Src: /src/libxslt/libxslt/preproc.c:2284,1
    - Dst: xsltCopyComp
      Src: /src/libxslt/libxslt/preproc.c:2219,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2229,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2324,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2266,1
    - Dst: xsltCheckParentElement
      Src: /src/libxslt/libxslt/preproc.c:2211,1
    - Dst: xsltIfComp
      Src: /src/libxslt/libxslt/preproc.c:2225,1
    - Dst: xsltElementComp
      Src: /src/libxslt/libxslt/preproc.c:2251,1
    - Dst: xsltSortComp
      Src: /src/libxslt/libxslt/preproc.c:2258,1
    - Dst: xsltCheckTopLevelElement
      Src: /src/libxslt/libxslt/preproc.c:2293,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:2300,1
    - Dst: xsltCheckTopLevelElement
      Src: /src/libxslt/libxslt/preproc.c:2307,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2312,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2283,1
    - Dst: xsltApplyTemplatesComp
      Src: /src/libxslt/libxslt/preproc.c:2209,1
    - Dst: xsltValueOfComp
      Src: /src/libxslt/libxslt/preproc.c:2216,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2281,1
    - Dst: xsltCheckTopLevelElement
      Src: /src/libxslt/libxslt/preproc.c:2276,1
    - Dst: xsltCheckTopLevelElement
      Src: /src/libxslt/libxslt/preproc.c:2290,1
    - Dst: xsltChooseComp
      Src: /src/libxslt/libxslt/preproc.c:2231,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2236,1
    - Dst: xsltCheckParentElement
      Src: /src/libxslt/libxslt/preproc.c:2256,1
    - Dst: xsltCheckTopLevelElement
      Src: /src/libxslt/libxslt/preproc.c:2272,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2263,1
    - Dst: xsltCheckParentElement
      Src: /src/libxslt/libxslt/preproc.c:2280,1
    - Dst: xsltParamComp
      Src: /src/libxslt/libxslt/preproc.c:2274,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2295,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/preproc.c:2204,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2221,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2238,1
    - Dst: xsltTextComp
      Src: /src/libxslt/libxslt/preproc.c:2254,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2265,1
    - Dst: xsltCheckTopLevelElement
      Src: /src/libxslt/libxslt/preproc.c:2316,1
    - Dst: xsltWithParamComp
      Src: /src/libxslt/libxslt/preproc.c:2213,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2246,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2255,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2275,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2269,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2318,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2289,1
    - Dst: xsltWhenComp
      Src: /src/libxslt/libxslt/preproc.c:2228,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2233,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2253,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2271,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2260,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2279,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2310,1
    - Dst: xsltCheckTopLevelElement
      Src: /src/libxslt/libxslt/preproc.c:2322,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:2335,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:2244,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2218,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2235,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2262,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2315,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2220,1
    - Dst: xsltCheckParentElement
      Src: /src/libxslt/libxslt/preproc.c:2227,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/preproc.c:2286,1
    - Dst: xsltProcessingInstructionComp
      Src: /src/libxslt/libxslt/preproc.c:2267,1
    - Dst: xsltCheckTopLevelElement
      Src: /src/libxslt/libxslt/preproc.c:2319,1
    - Dst: xsltCheckInstructionElement
      Src: /src/libxslt/libxslt/preproc.c:2331,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 180
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2366
      start: 2189
    functionDepth: 0
    functionLinenumber: 2189
    functionLinenumberEnd: 2366
    functionName: xsltStylePreCompute
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltCheckParentElement
    - xsltApplyTemplatesComp
    - xsltApplyImportsComp
    - xmlGetNsList
    - xsltAttributeComp
    - xsltWhenComp
    - xsltParamComp
    - xsltValueOfComp
    - xsltCheckTopLevelElement
    - xsltForEachComp
    - xsltTextComp
    - xsltWithParamComp
    - xsltPreComputeExtModuleElement
    - xsltCopyComp
    - xsltIfComp
    - xsltDocumentComp
    - xsltSortComp
    - xsltCommentComp
    - xsltProcessingInstructionComp
    - xsltChooseComp
    - xsltNumberComp
    - IS_XSLT_ELEM
    - xsltCheckInstructionElement
    - xsltCallTemplateComp
    - IS_XSLT_NAME
    - xsltElementComp
    - xsltVariableComp
    - xmlStrEqual
    - xsltTransformError
    - xsltCopyOfComp
    linkageType: ''
    returnType: void
    signature: 'void xsltStylePreCompute(xsltStylesheetPtr style, xmlNodePtr inst) '
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:284,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:294,1
    - Dst: memset
      Src: /src/libxslt/libxslt/preproc.c:299,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/preproc.c:292,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/preproc.c:305,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:307,1
    - Dst: memset
      Src: /src/libxslt/libxslt/preproc.c:312,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:362,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 62
    argCount: 2
    argNames:
    - style
    - type
    argTypes:
    - xsltStylesheetPtr
    - xsltStyleType
    constantsTouched: []
    func_position:
      end: 371
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 371
    functionName: xsltNewStylePreComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - memset
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltStylePreCompPtr
    signature: 'static xsltStylePreCompPtr xsltNewStylePreComp(xsltStylesheetPtr style,
      xsltStyleType type) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:783,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:794,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:785,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 800
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 800
    functionName: xsltCopyComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltGetCNsProp
    - xsltNewStylePreComp
    linkageType: ''
    returnType: void
    signature: 'static void xsltCopyComp(xsltStylesheetPtr style, xmlNodePtr inst) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: xsltEvalStaticAttrValueTemplate
      Src: /src/libxslt/libxslt/preproc.c:1415,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1435,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1448,1
    - Dst: BAD_CAST
      Src: /src/libxslt/libxslt/preproc.c:1444,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:1463,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:1468,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1474,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libxslt/preproc.c:1483,1
    - Dst: xsltGetUTF8Char
      Src: /src/libxslt/libxslt/preproc.c:1485,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/preproc.c:1500,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1401,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1412,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1424,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1426,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:1443,1
    - Dst: BAD_CAST
      Src: /src/libxslt/libxslt/preproc.c:1463,1
    - Dst: BAD_CAST
      Src: /src/libxslt/libxslt/preproc.c:1468,1
    - Dst: sscanf
      Src: /src/libxslt/libxslt/preproc.c:1492,1
    - Dst: xsltCompilePattern
      Src: /src/libxslt/libxslt/preproc.c:1431,1
    - Dst: BAD_CAST
      Src: /src/libxslt/libxslt/preproc.c:1443,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:1445,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1454,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1461,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1480,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1490,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/preproc.c:1419,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1403,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1429,1
    - Dst: BAD_CAST
      Src: /src/libxslt/libxslt/preproc.c:1445,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1441,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:1444,1
    - Dst: xsltCompilePattern
      Src: /src/libxslt/libxslt/preproc.c:1437,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1456,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1464,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1469,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 102
    argCount: 2
    argNames:
    - style
    - cur
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1505
      start: 1388
    functionDepth: 0
    functionLinenumber: 1388
    functionLinenumberEnd: 1505
    functionName: xsltNumberComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltGetCNsProp
    - xmlDictLookup
    - xsltCompilePattern
    - BAD_CAST
    - xsltGetUTF8Char
    - xsltEvalStaticAttrValueTemplate
    - xmlStrlen
    - xmlStrEqual
    - xsltTransformError
    - xsltNewStylePreComp
    - sscanf
    linkageType: ''
    returnType: void
    signature: 'static void xsltNumberComp(xsltStylesheetPtr style, xmlNodePtr cur) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1557,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1559,1
    - Dst: xsltGetQNameProperty
      Src: /src/libxslt/libxslt/preproc.c:1570,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1574
      start: 1544
    functionDepth: 0
    functionLinenumber: 1544
    functionLinenumberEnd: 1574
    functionName: xsltCallTemplateComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltGetQNameProperty
    - xsltNewStylePreComp
    linkageType: ''
    returnType: void
    signature: 'static void xsltCallTemplateComp(xsltStylesheetPtr style, xmlNodePtr
      inst) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1648,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1650,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1657
      start: 1635
    functionDepth: 0
    functionLinenumber: 1635
    functionLinenumberEnd: 1657
    functionName: xsltChooseComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltNewStylePreComp
    linkageType: ''
    returnType: void
    signature: 'static void xsltChooseComp(xsltStylesheetPtr style, xmlNodePtr inst) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:682,1
    - Dst: xsltEvalStaticAttrValueTemplate
      Src: /src/libxslt/libxslt/preproc.c:707,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:713,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:716,1
    - Dst: xsltEvalStaticAttrValueTemplate
      Src: /src/libxslt/libxslt/preproc.c:738,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/preproc.c:749,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:753,1
    - Dst: xsltEvalStaticAttrValueTemplate
      Src: /src/libxslt/libxslt/preproc.c:692,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:698,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:701,1
    - Dst: xsltEvalStaticAttrValueTemplate
      Src: /src/libxslt/libxslt/preproc.c:722,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:759,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:684,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:711,1
    - Dst: xsltXPathCompile
      Src: /src/libxslt/libxslt/preproc.c:751,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:696,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:742,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:726,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:731,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:728,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 67
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 763
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 763
    functionName: xsltSortComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltGetCNsProp
    - xmlDictLookup
    - xsltEvalStaticAttrValueTemplate
    - xsltXPathCompile
    - xmlStrEqual
    - xsltTransformError
    - xsltNewStylePreComp
    linkageType: ''
    returnType: void
    signature: 'static void xsltSortComp(xsltStylesheetPtr style, xmlNodePtr inst) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1216,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:1232,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1226,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1218,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:1230,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1234,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1239,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1242,1
    - Dst: xsltXPathCompile
      Src: /src/libxslt/libxslt/preproc.c:1247,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1249,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1254
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1254
    functionName: xsltValueOfComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltGetCNsProp
    - xsltXPathCompile
    - xmlStrEqual
    - xsltTransformError
    - xsltNewStylePreComp
    linkageType: ''
    returnType: void
    signature: 'static void xsltValueOfComp(xsltStylesheetPtr style, xmlNodePtr inst) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1342,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1362,1
    - Dst: xsltXPathCompile
      Src: /src/libxslt/libxslt/preproc.c:1365,1
    - Dst: xsltGetQNameProperty
      Src: /src/libxslt/libxslt/preproc.c:1355,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1344,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1367,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1373,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1379
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1379
    functionName: xsltWithParamComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltGetCNsProp
    - xsltGetQNameProperty
    - xsltXPathCompile
    - xsltTransformError
    - xsltNewStylePreComp
    linkageType: ''
    returnType: void
    signature: 'static void xsltWithParamComp(xsltStylesheetPtr style, xmlNodePtr
      inst) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1526,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1528,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1535
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1535
    functionName: xsltApplyImportsComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltNewStylePreComp
    linkageType: ''
    returnType: void
    signature: 'static void xsltApplyImportsComp(xsltStylesheetPtr style, xmlNodePtr
      inst) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1596,1
    - Dst: xsltGetQNameProperty
      Src: /src/libxslt/libxslt/preproc.c:1609,1
    - Dst: xsltNewStylePreComp
      Src: /src/libxslt/libxslt/preproc.c:1598,1
    - Dst: xsltXPathCompile
      Src: /src/libxslt/libxslt/preproc.c:1617,1
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1614,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1619,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1626
      start: 1583
    functionDepth: 0
    functionLinenumber: 1583
    functionLinenumberEnd: 1626
    functionName: xsltApplyTemplatesComp
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltGetCNsProp
    - xsltGetQNameProperty
    - xsltXPathCompile
    - xsltTransformError
    - xsltNewStylePreComp
    linkageType: ''
    returnType: void
    signature: 'static void xsltApplyTemplatesComp(xsltStylesheetPtr style, xmlNodePtr
      inst) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xsltGetCNsProp
      Src: /src/libxslt/libxslt/preproc.c:1272,1
    - Dst: xsltGetQNameURI2
      Src: /src/libxslt/libxslt/preproc.c:1293,1
    - Dst: xmlValidateQName
      Src: /src/libxslt/libxslt/preproc.c:1283,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1284,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:1275,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/preproc.c:1308,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 26
    argCount: 7
    argNames:
    - style
    - inst
    - propName
    - mandatory
    - hasProp
    - nsName
    - localName
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    - xmlChar*
    - int
    - int*
    - xmlChar**
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1315
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1315
    functionName: xsltGetQNameProperty
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltGetCNsProp
    - xmlDictLookup
    - xsltGetQNameURI2
    - xmlValidateQName
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: "static void xsltGetQNameProperty(xsltStylesheetPtr style, xmlNodePtr
      inst,\t\t const xmlChar *propName,\t\t int mandatory,\t\t int *hasProp, const
      xmlChar **nsName,\t\t const xmlChar** localName) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:121,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:130,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:132,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:131,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:129,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/preproc.c:133,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/preproc.c:142,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/preproc.c:147,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 151
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 151
    functionName: xsltCheckInstructionElement
    functionSourceFile: /src/libxslt/libxslt/preproc.c
    functionUses: []
    functionsReached:
    - xsltTransformError
    - xmlStrEqual
    - xmlHashLookup
    linkageType: ''
    returnType: void
    signature: 'static void xsltCheckInstructionElement(xsltStylesheetPtr style, xmlNodePtr
      inst) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/transform.c:502,1
    - Dst: memset
      Src: /src/libxslt/libxslt/transform.c:508,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 510
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 510
    functionName: xsltTransformCacheCreate
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - memset
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltTransformCachePtr
    signature: 'static xsltTransformCachePtr xsltTransformCacheCreate(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:821,1
    - Dst: xmlNodeAddContent
      Src: /src/libxslt/libxslt/transform.c:857,1
    - Dst: xmlRealloc
      Src: /src/libxslt/libxslt/transform.c:843,1
    - Dst: memcpy
      Src: /src/libxslt/libxslt/transform.c:853,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:845,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libxslt/transform.c:859,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 4
    argNames:
    - ctxt
    - target
    - string
    - len
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 864
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 864
    functionName: xsltAddTextString
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - memcpy
    - xmlNodeAddContent
    - xmlRealloc
    - xmlStrlen
    - xsltTransformError
    linkageType: ''
    returnType: xmlNodePtr
    signature: "static xmlNodePtr xsltAddTextString(xsltTransformContextPtr ctxt,
      xmlNodePtr target,\t\t const xmlChar *string, int len) "
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:1164,1
    - Dst: xmlNodeListGetString
      Src: /src/libxslt/libxslt/transform.c:1176,1
    - Dst: xsltGetSpecialNamespace
      Src: /src/libxslt/libxslt/transform.c:1180,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:1183,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:1170,1
    - Dst: xmlSetNsProp
      Src: /src/libxslt/libxslt/transform.c:1195,1
    - Dst: xmlSetNsProp
      Src: /src/libxslt/libxslt/transform.c:1197,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:1200,1
    - Dst: xmlNodeListGetString
      Src: /src/libxslt/libxslt/transform.c:1216,1
    - Dst: xmlNewDocText
      Src: /src/libxslt/libxslt/transform.c:1218,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/transform.c:1225,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:1227,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 4
    argNames:
    - ctxt
    - invocNode
    - target
    - attr
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 1235
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1235
    functionName: xsltShallowCopyAttr
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictLookup
    - xmlNodeListGetString
    - xmlSetNsProp
    - xmlNewDocText
    - xsltGetSpecialNamespace
    - xsltTransformError
    linkageType: ''
    returnType: xmlAttrPtr
    signature: "static xmlAttrPtr xsltShallowCopyAttr(xsltTransformContextPtr ctxt,
      xmlNodePtr invocNode,\t xmlNodePtr target, xmlAttrPtr attr) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:2272,1
    - Dst: xsltReleaseRVT
      Src: /src/libxslt/libxslt/transform.c:2283,1
    - Dst: xsltRegisterPersistRVT
      Src: /src/libxslt/libxslt/transform.c:2285,1
    - Dst: xsltRegisterLocalRVT
      Src: /src/libxslt/libxslt/transform.c:2291,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/transform.c:2294,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - ctxt
    - base
    argTypes:
    - xsltTransformContextPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 2299
      start: 2264
    functionDepth: 0
    functionLinenumber: 2264
    functionLinenumberEnd: 2299
    functionName: xsltReleaseLocalRVTs
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltRegisterLocalRVT
    - xsltRegisterPersistRVT
    - xsltReleaseRVT
    - xsltTransformError
    - xmlGenericError
    linkageType: ''
    returnType: void
    signature: 'static void xsltReleaseLocalRVTs(xsltTransformContextPtr ctxt, xmlDocPtr
      base) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4388,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:4428,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:4428,1
    - Dst: xsltCopyTreeList
      Src: /src/libxslt/libxslt/transform.c:4471,1
    - Dst: xmlXPathCastToString
      Src: /src/libxslt/libxslt/transform.c:4479,1
    - Dst: xsltPreCompEval
      Src: /src/libxslt/libxslt/transform.c:4419,1
    - Dst: xsltShallowCopyAttr
      Src: /src/libxslt/libxslt/transform.c:4448,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:4492,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/transform.c:4505,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:4412,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:4412,1
    - Dst: xsltCopyTreeList
      Src: /src/libxslt/libxslt/transform.c:4445,1
    - Dst: xsltCopyTextString
      Src: /src/libxslt/libxslt/transform.c:4490,1
    - Dst: xsltCopyTree
      Src: /src/libxslt/libxslt/transform.c:4451,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:4463,1
    - Dst: IS_XSLT_REAL_NODE
      Src: /src/libxslt/libxslt/transform.c:4469,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4481,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:4463,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:4495,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:4495,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 73
    argCount: 4
    argNames:
    - ctxt
    - node
    - inst
    - castedComp
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 4506
      start: 4373
    functionDepth: 0
    functionLinenumber: 4373
    functionLinenumberEnd: 4506
    functionName: xsltCopyOf
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltShallowCopyAttr
    - xmlFree
    - xsltPreCompEval
    - IS_XSLT_REAL_NODE
    - xsltCopyTextString
    - XSLT_TRACE
    - xsltCopyTreeList
    - xmlXPathFreeObject
    - xsltCopyTree
    - xsltGenericDebug
    - xmlXPathCastToString
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: "void xsltCopyOf(xsltTransformContextPtr ctxt, xmlNodePtr node,\t xmlNodePtr
      inst, xsltElemPreCompPtr castedComp) "
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4732,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4744,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:4758,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4748,1
    - Dst: xsltFindTemplate
      Src: /src/libxslt/libxslt/transform.c:4741,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:4758,1
    - Dst: xslHandleDebugger
      Src: /src/libxslt/libxslt/transform.c:4770,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/transform.c:4778,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/transform.c:4779,1
    - Dst: xsltParseStylesheetCallerParam
      Src: /src/libxslt/libxslt/transform.c:4780,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/transform.c:4790,1
    - Dst: xsltFreeStackElemList
      Src: /src/libxslt/libxslt/transform.c:4802,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:4806,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/transform.c:4786,1
    - Dst: xsltApplyXSLTTemplate
      Src: /src/libxslt/libxslt/transform.c:4799,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:4806,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 4
    argNames:
    - ctxt
    - node
    - inst
    - castedComp
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 4809
      start: 4717
    functionDepth: 0
    functionLinenumber: 4717
    functionLinenumberEnd: 4809
    functionName: xsltCallTemplate
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltFindTemplate
    - xsltGenericDebug
    - IS_XSLT_NAME
    - XSLT_TRACE
    - xsltFreeStackElemList
    - xslHandleDebugger
    - xsltApplyXSLTTemplate
    - IS_XSLT_ELEM
    - xsltTransformError
    - xsltGenericError
    - xsltParseStylesheetCallerParam
    linkageType: ''
    returnType: void
    signature: "void xsltCallTemplate(xsltTransformContextPtr ctxt, xmlNodePtr node,\t
      xmlNodePtr inst, xsltElemPreCompPtr castedComp) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompiledEval
      Src: /src/libxslt/libxslt/transform.c:377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - ctxt
    - node
    - comp
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xsltStylePreCompPtr
    constantsTouched: []
    func_position:
      end: 386
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 386
    functionName: xsltPreCompEval
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlXPathCompiledEval
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: 'static xmlXPathObjectPtr xsltPreCompEval(xsltTransformContextPtr ctxt,
      xmlNodePtr node, xsltStylePreCompPtr comp) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/transform.c:788,1
    - Dst: xmlAddChild
      Src: /src/libxslt/libxslt/transform.c:791,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - parent
    - cur
    argTypes:
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 794
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 794
    functionName: xsltAddChild
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlFreeNode
    - xmlAddChild
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xsltAddChild(xmlNodePtr parent, xmlNodePtr cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 489
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 489
    functionName: xsltDebugGetDefaultTrace
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xsltDebugTraceCodes
    signature: 'xsltDebugTraceCodes xsltDebugGetDefaultTrace(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xsltShutdownCtxtExts
      Src: /src/libxslt/libxslt/transform.c:728,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:735,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:737,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:739,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxslt/libxslt/transform.c:732,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:748,1
    - Dst: xsltFreeGlobalVariables
      Src: /src/libxslt/libxslt/transform.c:750,1
    - Dst: xsltFreeDocuments
      Src: /src/libxslt/libxslt/transform.c:751,1
    - Dst: xsltFreeCtxtExts
      Src: /src/libxslt/libxslt/transform.c:752,1
    - Dst: xmlDictFree
      Src: /src/libxslt/libxslt/transform.c:755,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:757,1
    - Dst: xsltFreeRVTs
      Src: /src/libxslt/libxslt/transform.c:753,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:761,1
    - Dst: memset
      Src: /src/libxslt/libxslt/transform.c:760,1
    - Dst: xsltTransformCacheFree
      Src: /src/libxslt/libxslt/transform.c:754,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 762
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 762
    functionName: xsltFreeTransformContext
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltFreeDocuments
    - xsltFreeGlobalVariables
    - xmlXPathFreeContext
    - xsltFreeRVTs
    - xsltGenericDebug
    - memset
    - xmlDictFree
    - xsltShutdownCtxtExts
    - xsltTransformCacheFree
    - xsltFreeCtxtExts
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeTransformContext(xsltTransformContextPtr ctxt) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:993,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:993,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/transform.c:1089,1
    - Dst: xmlDictOwns
      Src: /src/libxslt/libxslt/transform.c:1086,1
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/transform.c:1090,1
    - Dst: xmlNewTextLen
      Src: /src/libxslt/libxslt/transform.c:1104,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:1124,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:989,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:989,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/transform.c:1019,1
    - Dst: xmlNewCDataBlock
      Src: /src/libxslt/libxslt/transform.c:1046,1
    - Dst: xsltAddTextString
      Src: /src/libxslt/libxslt/transform.c:1065,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libxslt/transform.c:1103,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libxslt/transform.c:1066,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:1130,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libxslt/transform.c:1045,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:997,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:997,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/transform.c:1016,1
    - Dst: xsltAddTextString
      Src: /src/libxslt/libxslt/transform.c:1039,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libxslt/transform.c:1040,1
    - Dst: xmlNewTextLen
      Src: /src/libxslt/libxslt/transform.c:1075,1
    - Dst: xsltAddChild
      Src: /src/libxslt/libxslt/transform.c:1121,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 117
    argCount: 4
    argNames:
    - ctxt
    - target
    - cur
    - interned
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 1136
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 1136
    functionName: xsltCopyText
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltAddChild
    - xmlDictOwns
    - xsltAddTextString
    - xmlHashLookup2
    - XSLT_TRACE
    - xmlStrlen
    - xmlFreeNode
    - xmlStrdup
    - xmlNewTextLen
    - xsltGenericDebug
    - xmlNewCDataBlock
    - xsltTransformError
    linkageType: ''
    returnType: xmlNodePtr
    signature: "static xmlNodePtr xsltCopyText(xsltTransformContextPtr ctxt, xmlNodePtr
      target,\t xmlNodePtr cur, int interned) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlRealloc
      Src: /src/libxslt/libxslt/transform.c:2243,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/transform.c:2246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ctxt
    - variable
    - level
    argTypes:
    - xsltTransformContextPtr
    - xsltStackElemPtr
    - int
    constantsTouched: []
    func_position:
      end: 2256
      start: 2234
    functionDepth: 0
    functionLinenumber: 2234
    functionLinenumberEnd: 2256
    functionName: xsltLocalVariablePush
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlRealloc
    - xmlGenericError
    linkageType: ''
    returnType: int
    signature: "int xsltLocalVariablePush(xsltTransformContextPtr ctxt,\t\t xsltStackElemPtr
      variable,\t\t int level) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeStackElemList
      Src: /src/libxslt/libxslt/transform.c:218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 225
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 225
    functionName: xsltTemplateParamsCleanup
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltFreeStackElemList
    linkageType: ''
    returnType: void
    signature: 'static void xsltTemplateParamsCleanup(xsltTransformContextPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompiledEvalToBoolean
      Src: /src/libxslt/libxslt/transform.c:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - ctxt
    - node
    - comp
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xsltStylePreCompPtr
    constantsTouched: []
    func_position:
      end: 435
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 435
    functionName: xsltPreCompEvalToBoolean
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlXPathCompiledEvalToBoolean
    linkageType: ''
    returnType: int
    signature: 'static int xsltPreCompEvalToBoolean(xsltTransformContextPtr ctxt,
      xmlNodePtr node, xsltStylePreCompPtr comp) '
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: xsltShallowCopyNsNode
      Src: /src/libxslt/libxslt/transform.c:1655,1
    - Dst: xsltCopyTextString
      Src: /src/libxslt/libxslt/transform.c:1650,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:1682,1
    - Dst: xmlGetNsList
      Src: /src/libxslt/libxslt/transform.c:1721,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/transform.c:1729,1
    - Dst: xsltCopyNamespaceList
      Src: /src/libxslt/libxslt/transform.c:1770,1
    - Dst: xsltCopyTextString
      Src: /src/libxslt/libxslt/transform.c:1647,1
    - Dst: xmlDocCopyNode
      Src: /src/libxslt/libxslt/transform.c:1677,1
    - Dst: xsltAddChild
      Src: /src/libxslt/libxslt/transform.c:1680,1
    - Dst: xmlNewNs
      Src: /src/libxslt/libxslt/transform.c:1749,1
    - Dst: xsltShallowCopyAttr
      Src: /src/libxslt/libxslt/transform.c:1653,1
    - Dst: XSLT_IS_RES_TREE_FRAG
      Src: /src/libxslt/libxslt/transform.c:1669,1
    - Dst: xsltCopyTreeList
      Src: /src/libxslt/libxslt/transform.c:1671,1
    - Dst: xmlSearchNsByHref
      Src: /src/libxslt/libxslt/transform.c:1741,1
    - Dst: xsltGetSpecialNamespace
      Src: /src/libxslt/libxslt/transform.c:1793,1
    - Dst: xsltCopyAttrListNoOverwrite
      Src: /src/libxslt/libxslt/transform.c:1799,1
    - Dst: xsltCopyTreeList
      Src: /src/libxslt/libxslt/transform.c:1809,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:1813,1
    - Dst: xsltCopyNamespaceListInternal
      Src: /src/libxslt/libxslt/transform.c:1772,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:1733,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:1762,1
    - Dst: xsltGetSpecialNamespace
      Src: /src/libxslt/libxslt/transform.c:1784,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 89
    argCount: 6
    argNames:
    - ctxt
    - invocNode
    - node
    - insert
    - isLRE
    - topElemVisited
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xmlNodePtr
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1817
      start: 1624
    functionDepth: 0
    functionLinenumber: 1624
    functionLinenumberEnd: 1817
    functionName: xsltCopyTree
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltShallowCopyAttr
    - xsltAddChild
    - xmlFree
    - xmlGetNsList
    - xmlNewNs
    - xsltGetSpecialNamespace
    - xmlSearchNsByHref
    - xsltCopyTreeList
    - xsltShallowCopyNsNode
    - xmlSearchNs
    - xmlStrEqual
    - xsltCopyNamespaceList
    - xsltCopyNamespaceListInternal
    - XSLT_IS_RES_TREE_FRAG
    - xmlDocCopyNode
    - xsltCopyTextString
    - xsltCopyAttrListNoOverwrite
    - xsltTransformError
    linkageType: ''
    returnType: xmlNodePtr
    signature: "static xmlNodePtr xsltCopyTree(xsltTransformContextPtr ctxt, xmlNodePtr
      invocNode,\t xmlNodePtr node, xmlNodePtr insert, int isLRE,\t int topElemVisited) "
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:3925,1
    - Dst: xsltShallowCopyAttr
      Src: /src/libxslt/libxslt/transform.c:3963,1
    - Dst: xsltAddChild
      Src: /src/libxslt/libxslt/transform.c:3981,1
    - Dst: xsltCopyText
      Src: /src/libxslt/libxslt/transform.c:3929,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:3922,1
    - Dst: xsltShallowCopyElem
      Src: /src/libxslt/libxslt/transform.c:3946,1
    - Dst: xsltApplyAttributeSet
      Src: /src/libxslt/libxslt/transform.c:3949,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:3977,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:3977,1
    - Dst: xmlNewComment
      Src: /src/libxslt/libxslt/transform.c:3980,1
    - Dst: xsltAddChild
      Src: /src/libxslt/libxslt/transform.c:3973,1
    - Dst: xsltShallowCopyNsNode
      Src: /src/libxslt/libxslt/transform.c:3988,1
    - Dst: xsltApplySequenceConstructor
      Src: /src/libxslt/libxslt/transform.c:4000,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:3922,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:3943,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:3943,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:3954,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:3968,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:3968,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:3954,1
    - Dst: xmlNewDocPI
      Src: /src/libxslt/libxslt/transform.c:3971,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:3985,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:3985,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:3925,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 4
    argNames:
    - ctxt
    - node
    - inst
    - castedComp
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 4007
      start: 3899
    functionDepth: 0
    functionLinenumber: 3899
    functionLinenumberEnd: 4007
    functionName: xsltCopy
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltCopyText
    - xsltShallowCopyAttr
    - xsltAddChild
    - XSLT_TRACE
    - xsltApplyAttributeSet
    - xsltShallowCopyNsNode
    - xmlNewDocPI
    - xmlNewComment
    - xsltGenericDebug
    - xsltApplySequenceConstructor
    - xsltShallowCopyElem
    linkageType: ''
    returnType: void
    signature: "void xsltCopy(xsltTransformContextPtr ctxt, xmlNodePtr node,\t xmlNodePtr
      inst, xsltElemPreCompPtr castedComp) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: IS_XSLT_REAL_NODE
      Src: /src/libxslt/libxslt/transform.c:5660,1
    - Dst: xmlUnlinkNode
      Src: /src/libxslt/libxslt/transform.c:5671,1
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/transform.c:5672,1
    - Dst: IS_BLANK_NODE
      Src: /src/libxslt/libxslt/transform.c:5666,1
    - Dst: xsltFindElemSpaceHandling
      Src: /src/libxslt/libxslt/transform.c:5662,1
    - Dst: xsltApplyStripSpaces
      Src: /src/libxslt/libxslt/transform.c:5686,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:5710,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:5710,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5714
      start: 5647
    functionDepth: 0
    functionLinenumber: 5647
    functionLinenumberEnd: 5714
    functionName: xsltApplyStripSpaces
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlUnlinkNode
    - xsltFindElemSpaceHandling
    - IS_XSLT_REAL_NODE
    - XSLT_TRACE
    - xmlFreeNode
    - xsltApplyStripSpaces
    - xsltGenericDebug
    - IS_BLANK_NODE
    linkageType: ''
    returnType: void
    signature: 'void xsltApplyStripSpaces(xsltTransformContextPtr ctxt, xmlNodePtr
      node) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/transform.c:297,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/transform.c:303,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/transform.c:300,1
    - Dst: xmlRealloc
      Src: /src/libxslt/libxslt/transform.c:310,1
    - Dst: xmlRealloc
      Src: /src/libxslt/libxslt/transform.c:314,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/transform.c:318,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - templ
    - parent
    argTypes:
    - xsltTemplatePtr
    - xsltTemplatePtr
    constantsTouched: []
    func_position:
      end: 335
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 335
    functionName: profCallgraphAdd
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlRealloc
    - xmlGenericError
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: 'static void profCallgraphAdd(xsltTemplatePtr templ, xsltTemplatePtr
      parent) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/transform.c:5735,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/transform.c:5748,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 5751
      start: 5716
    functionDepth: 0
    functionLinenumber: 5716
    functionLinenumberEnd: 5751
    functionName: xsltCountKeys
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltNextImport
    linkageType: ''
    returnType: int
    signature: 'static int xsltCountKeys(xsltTransformContextPtr ctxt) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeStackElemList
      Src: /src/libxslt/libxslt/transform.c:191,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - ctxt
    - limitNr
    - level
    argTypes:
    - xsltTransformContextPtr
    - int
    - int
    constantsTouched: []
    func_position:
      end: 198
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 198
    functionName: xsltLocalVariablePop
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltFreeStackElemList
    linkageType: ''
    returnType: void
    signature: 'void xsltLocalVariablePop(xsltTransformContextPtr ctxt, int limitNr,
      int level) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 162
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 162
    functionName: templPop
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xsltTemplatePtr
    signature: 'static xsltTemplatePtr templPop(xsltTransformContextPtr ctxt) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xsltCopyText
      Src: /src/libxslt/libxslt/transform.c:1338,1
    - Dst: xsltAddChild
      Src: /src/libxslt/libxslt/transform.c:1343,1
    - Dst: xmlDocCopyNode
      Src: /src/libxslt/libxslt/transform.c:1340,1
    - Dst: xsltCopyNamespaceList
      Src: /src/libxslt/libxslt/transform.c:1360,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:1345,1
    - Dst: xsltCopyNamespaceListInternal
      Src: /src/libxslt/libxslt/transform.c:1362,1
    - Dst: xsltGetNamespace
      Src: /src/libxslt/libxslt/transform.c:1379,1
    - Dst: xsltGetSpecialNamespace
      Src: /src/libxslt/libxslt/transform.c:1381,1
    - Dst: xsltGetSpecialNamespace
      Src: /src/libxslt/libxslt/transform.c:1391,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:1395,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 4
    argNames:
    - ctxt
    - node
    - insert
    - isLRE
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 1399
      start: 1328
    functionDepth: 0
    functionLinenumber: 1328
    functionLinenumberEnd: 1399
    functionName: xsltShallowCopyElem
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltCopyText
    - xsltAddChild
    - xsltGetSpecialNamespace
    - xsltCopyNamespaceList
    - xsltCopyNamespaceListInternal
    - xmlDocCopyNode
    - xsltTransformError
    - xsltGetNamespace
    linkageType: ''
    returnType: xmlNodePtr
    signature: "static xmlNodePtr xsltShallowCopyElem(xsltTransformContextPtr ctxt,
      xmlNodePtr node,\t\t xmlNodePtr insert, int isLRE) "
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:1529,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/transform.c:1586,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:1578,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:1573,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:1560,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:1587,1
    - Dst: xmlNewNs
      Src: /src/libxslt/libxslt/transform.c:1595,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 4
    argNames:
    - ctxt
    - invocNode
    - insert
    - ns
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xmlNsPtr
    constantsTouched: []
    func_position:
      end: 1603
      start: 1513
    functionDepth: 0
    functionLinenumber: 1513
    functionLinenumberEnd: 1603
    functionName: xsltShallowCopyNsNode
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltTransformError
    - xmlStrEqual
    - xmlNewNs
    - xmlSearchNs
    linkageType: ''
    returnType: xmlNsPtr
    signature: "static xmlNsPtr xsltShallowCopyNsNode(xsltTransformContextPtr ctxt,\t\t
      xmlNodePtr invocNode,\t\t xmlNodePtr insert,\t\t xmlNsPtr ns) "
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xsltTimestamp
      Src: /src/libxslt/libxslt/transform.c:3136,1
    - Dst: profPush
      Src: /src/libxslt/libxslt/transform.c:3137,1
    - Dst: xsltTimestamp
      Src: /src/libxslt/libxslt/transform.c:3254,1
    - Dst: xsltReleaseRVT
      Src: /src/libxslt/libxslt/transform.c:3240,1
    - Dst: xsltApplySequenceConstructor
      Src: /src/libxslt/libxslt/transform.c:3218,1
    - Dst: profPop
      Src: /src/libxslt/libxslt/transform.c:3255,1
    - Dst: xsltCalibrateAdjust
      Src: /src/libxslt/libxslt/transform.c:3263,1
    - Dst: xslDropCall
      Src: /src/libxslt/libxslt/transform.c:3275,1
    - Dst: xsltParseStylesheetParam
      Src: /src/libxslt/libxslt/transform.c:3211,1
    - Dst: xsltTemplateParamsCleanup
      Src: /src/libxslt/libxslt/transform.c:3225,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:3092,1
    - Dst: xsltDebug
      Src: /src/libxslt/libxslt/transform.c:3117,1
    - Dst: profCallgraphAdd
      Src: /src/libxslt/libxslt/transform.c:3138,1
    - Dst: templPush
      Src: /src/libxslt/libxslt/transform.c:3145,1
    - Dst: xsltLocalVariablePush
      Src: /src/libxslt/libxslt/transform.c:3197,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:3111,1
    - Dst: xsltDebuggerStartSequenceConstructor
      Src: /src/libxslt/libxslt/transform.c:3099,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:3149,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:3149,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3165,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/transform.c:3166,1
    - Dst: templPop
      Src: /src/libxslt/libxslt/transform.c:3248,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 98
    argCount: 5
    argNames:
    - ctxt
    - contextNode
    - list
    - templ
    - withParams
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltTemplatePtr
    - xsltStackElemPtr
    constantsTouched: []
    func_position:
      end: 3278
      start: 3064
    functionDepth: 0
    functionLinenumber: 3064
    functionLinenumberEnd: 3278
    functionName: xsltApplyXSLTTemplate
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltTimestamp
    - xslDropCall
    - profCallgraphAdd
    - templPop
    - profPop
    - xsltTemplateParamsCleanup
    - xsltLocalVariablePush
    - xsltParseStylesheetParam
    - xsltReleaseRVT
    - xsltGenericDebug
    - xsltApplySequenceConstructor
    - xsltCalibrateAdjust
    - profPush
    - IS_XSLT_ELEM
    - xsltDebug
    - xsltDebuggerStartSequenceConstructor
    - templPush
    - XSLT_TRACE
    - xmlStrEqual
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: "static void xsltApplyXSLTTemplate(xsltTransformContextPtr ctxt,\t\t
      xmlNodePtr contextNode,\t\t xmlNodePtr list,\t\t xsltTemplatePtr templ,\t\t
      xsltStackElemPtr withParams) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:3882,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:3886,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - inst
    - comp
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 3888
      start: 3877
    functionDepth: 0
    functionLinenumber: 3877
    functionLinenumberEnd: 3888
    functionName: xsltSort
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: "void xsltSort(xsltTransformContextPtr ctxt,\txmlNodePtr node ATTRIBUTE_UNUSED,
      xmlNodePtr inst,\txsltElemPreCompPtr comp) "
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateQName
      Src: /src/libxslt/libxslt/transform.c:4092,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/transform.c:4203,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:4233,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:4085,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4127,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4162,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:4158,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:4169,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/transform.c:4157,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:4201,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:4207,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:4237,1
    - Dst: xsltApplySequenceConstructor
      Src: /src/libxslt/libxslt/transform.c:4245,1
    - Dst: xsltApplyAttributeSet
      Src: /src/libxslt/libxslt/transform.c:4226,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4093,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:4099,1
    - Dst: xsltAddChild
      Src: /src/libxslt/libxslt/transform.c:4125,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:4161,1
    - Dst: xsltApplyAttributeSet
      Src: /src/libxslt/libxslt/transform.c:4236,1
    - Dst: xsltSplitQName
      Src: /src/libxslt/libxslt/transform.c:4098,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4088,1
    - Dst: xsltSplitQName
      Src: /src/libxslt/libxslt/transform.c:4108,1
    - Dst: xmlNewDocNodeEatName
      Src: /src/libxslt/libxslt/transform.c:4116,1
    - Dst: xmlNewDocNode
      Src: /src/libxslt/libxslt/transform.c:4118,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4121,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:4167,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:4149,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/transform.c:4181,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4188,1
    - Dst: xsltGetSpecialNamespace
      Src: /src/libxslt/libxslt/transform.c:4209,1
    - Dst: xsltGetSpecialNamespace
      Src: /src/libxslt/libxslt/transform.c:4205,1
    - Dst: xsltGetSpecialNamespace
      Src: /src/libxslt/libxslt/transform.c:4219,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 102
    argCount: 4
    argNames:
    - ctxt
    - node
    - inst
    - castedComp
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 4251
      start: 4055
    functionDepth: 0
    functionLinenumber: 4055
    functionLinenumberEnd: 4251
    functionName: xsltElement
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltAddChild
    - xmlNewDocNodeEatName
    - xmlDictLookup
    - xsltSplitQName
    - xmlStrdup
    - xsltApplyAttributeSet
    - xsltEvalAttrValueTemplate
    - xmlValidateQName
    - xmlNewDocNode
    - xmlStrEqual
    - xmlSearchNs
    - xsltGetSpecialNamespace
    - xsltTransformError
    - xsltApplySequenceConstructor
    linkageType: ''
    returnType: void
    signature: "void xsltElement(xsltTransformContextPtr ctxt, xmlNodePtr node,\t
      xmlNodePtr inst, xsltElemPreCompPtr castedComp) "
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:5160,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:5184,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:5149,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/transform.c:5159,1
    - Dst: xslHandleDebugger
      Src: /src/libxslt/libxslt/transform.c:5196,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:5239,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:5239,1
    - Dst: xmlXPathConvertBoolean
      Src: /src/libxslt/libxslt/transform.c:5219,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/transform.c:5178,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/transform.c:5178,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:5200,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:5200,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:5224,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:5224,1
    - Dst: xsltPreCompEval
      Src: /src/libxslt/libxslt/transform.c:5215,1
    - Dst: xsltPreCompEvalToBoolean
      Src: /src/libxslt/libxslt/transform.c:5205,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/transform.c:5251,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:5259,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/transform.c:5159,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/transform.c:5229,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/transform.c:5251,1
    - Dst: xslHandleDebugger
      Src: /src/libxslt/libxslt/transform.c:5255,1
    - Dst: xsltApplySequenceConstructor
      Src: /src/libxslt/libxslt/transform.c:5276,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:5259,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 70
    argCount: 4
    argNames:
    - ctxt
    - contextNode
    - inst
    - ATTRIBUTE_UNUSED
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 5282
      start: 5134
    functionDepth: 0
    functionLinenumber: 5134
    functionLinenumberEnd: 5282
    functionName: xsltChoose
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltPreCompEval
    - xsltGenericDebug
    - IS_XSLT_NAME
    - xmlXPathConvertBoolean
    - XSLT_TRACE
    - xslHandleDebugger
    - xmlXPathFreeObject
    - xsltPreCompEvalToBoolean
    - IS_XSLT_ELEM
    - xsltTransformError
    - xsltApplySequenceConstructor
    linkageType: ''
    returnType: void
    signature: "void xsltChoose(xsltTransformContextPtr ctxt, xmlNodePtr contextNode,\t
      xmlNodePtr inst, xsltElemPreCompPtr comp ATTRIBUTE_UNUSED) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:5308,1
    - Dst: xsltPreCompEvalToBoolean
      Src: /src/libxslt/libxslt/transform.c:5323,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:5315,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:5315,1
    - Dst: xsltReleaseLocalRVTs
      Src: /src/libxslt/libxslt/transform.c:5330,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:5334,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:5334,1
    - Dst: xsltApplySequenceConstructor
      Src: /src/libxslt/libxslt/transform.c:5346,1
    - Dst: xsltPreCompEval
      Src: /src/libxslt/libxslt/transform.c:5355,1
    - Dst: xmlXPathConvertBoolean
      Src: /src/libxslt/libxslt/transform.c:5358,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:5363,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:5374,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/transform.c:5379,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:5373,1
    - Dst: xsltApplySequenceConstructor
      Src: /src/libxslt/libxslt/transform.c:5367,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:5363,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 4
    argNames:
    - ctxt
    - contextNode
    - inst
    - castedComp
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 5388
      start: 5293
    functionDepth: 0
    functionLinenumber: 5293
    functionLinenumberEnd: 5388
    functionName: xsltIf
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltPreCompEval
    - xmlXPathConvertBoolean
    - XSLT_TRACE
    - xsltApplySequenceConstructor
    - xmlXPathFreeObject
    - xsltPreCompEvalToBoolean
    - xsltGenericDebug
    - xsltReleaseLocalRVTs
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: "void xsltIf(xsltTransformContextPtr ctxt, xmlNodePtr contextNode,\t
      xmlNodePtr inst, xsltElemPreCompPtr castedComp) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcasecmp
      Src: /src/libxslt/libxslt/transform.c:5627,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 3
    argNames:
    - version
    - publicID
    - systemID
    argTypes:
    - xmlChar*
    - xmlChar**
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 5637
      start: 5619
    functionDepth: 0
    functionLinenumber: 5619
    functionLinenumberEnd: 5637
    functionName: xsltGetHTMLIDs
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlStrcasecmp
    linkageType: ''
    returnType: int
    signature: "static int xsltGetHTMLIDs(const xmlChar *version, const xmlChar **publicID,\t
      const xmlChar **systemID) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlRealloc
      Src: /src/libxslt/libxslt/transform.c:126,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/transform.c:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ctxt
    - value
    argTypes:
    - xsltTransformContextPtr
    - xsltTemplatePtr
    constantsTouched: []
    func_position:
      end: 138
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 138
    functionName: templPush
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlRealloc
    - xmlGenericError
    linkageType: ''
    returnType: int
    signature: 'static int templPush(xsltTransformContextPtr ctxt, xsltTemplatePtr
      value) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictCreateSub
      Src: /src/libxslt/libxslt/transform.c:585,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/transform.c:596,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:598,1
    - Dst: XSLT_REGISTER_VARIABLE_LOOKUP
      Src: /src/libxslt/libxslt/transform.c:667,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:687,1
    - Dst: xsltGetDefaultSecurityPrefs
      Src: /src/libxslt/libxslt/transform.c:695,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/transform.c:613,1
    - Dst: xsltInitGlobals
      Src: /src/libxslt/libxslt/transform.c:568,1
    - Dst: xsltTransformCacheCreate
      Src: /src/libxslt/libxslt/transform.c:578,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:572,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/transform.c:611,1
    - Dst: xmlXPathContextSetCache
      Src: /src/libxslt/libxslt/transform.c:641,1
    - Dst: xsltInitCtxtExts
      Src: /src/libxslt/libxslt/transform.c:673,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:634,1
    - Dst: xmlXPathNewContext
      Src: /src/libxslt/libxslt/transform.c:632,1
    - Dst: xsltNewDocument
      Src: /src/libxslt/libxslt/transform.c:685,1
    - Dst: xsltGetXIncludeDefault
      Src: /src/libxslt/libxslt/transform.c:698,1
    - Dst: memset
      Src: /src/libxslt/libxslt/transform.c:576,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/transform.c:570,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:588,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/transform.c:649,1
    - Dst: XSLT_REGISTER_FUNCTION_LOOKUP
      Src: /src/libxslt/libxslt/transform.c:668,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/transform.c:651,1
    - Dst: xmlXPathOrderDocElems
      Src: /src/libxslt/libxslt/transform.c:679,1
    - Dst: xsltFreeTransformContext
      Src: /src/libxslt/libxslt/transform.c:709,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 99
    argCount: 2
    argNames:
    - style
    - doc
    argTypes:
    - xsltStylesheetPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 711
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 711
    functionName: xsltNewTransformContext
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltTransformCacheCreate
    - xmlXPathNewContext
    - xmlDictCreateSub
    - xsltGenericDebug
    - memset
    - XSLT_REGISTER_VARIABLE_LOOKUP
    - xsltInitCtxtExts
    - xsltInitGlobals
    - xmlXPathOrderDocElems
    - xsltNewDocument
    - xsltGetXIncludeDefault
    - xsltFreeTransformContext
    - xmlXPathContextSetCache
    - XSLT_REGISTER_FUNCTION_LOOKUP
    - xsltTransformError
    - xmlGenericError
    - xmlMalloc
    - xsltGetDefaultSecurityPrefs
    linkageType: ''
    returnType: xsltTransformContextPtr
    signature: 'xsltTransformContextPtr xsltNewTransformContext(xsltStylesheetPtr
      style, xmlDocPtr doc) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltGetSpecialNamespace
      Src: /src/libxslt/libxslt/transform.c:1273,1
    - Dst: xmlNodeListGetString
      Src: /src/libxslt/libxslt/transform.c:1289,1
    - Dst: xmlNewNsProp
      Src: /src/libxslt/libxslt/transform.c:1286,1
    - Dst: xmlNewNsProp
      Src: /src/libxslt/libxslt/transform.c:1290,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:1291,1
    - Dst: xmlNewNsProp
      Src: /src/libxslt/libxslt/transform.c:1293,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - ctxt
    - invocNode
    - target
    - attr
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 1302
      start: 1252
    functionDepth: 0
    functionLinenumber: 1252
    functionLinenumberEnd: 1302
    functionName: xsltCopyAttrListNoOverwrite
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltGetSpecialNamespace
    - xmlNewNsProp
    - xmlNodeListGetString
    linkageType: ''
    returnType: int
    signature: "static int xsltCopyAttrListNoOverwrite(xsltTransformContextPtr ctxt,\t\t\t
      xmlNodePtr invocNode,\t\t\t xmlNodePtr target, xmlAttrPtr attr) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xslAddCall
      Src: /src/libxslt/libxslt/transform.c:2196,1
    - Dst: xslHandleDebugger
      Src: /src/libxslt/libxslt/transform.c:2208,1
    - Dst: xslDropCall
      Src: /src/libxslt/libxslt/transform.c:2204,1
    - Dst: xslAddCall
      Src: /src/libxslt/libxslt/transform.c:2198,1
    - Dst: xslHandleDebugger
      Src: /src/libxslt/libxslt/transform.c:2211,1
    - Dst: xslHandleDebugger
      Src: /src/libxslt/libxslt/transform.c:2214,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 5
    argNames:
    - ctxt
    - contextNode
    - list
    - templ
    - addCallResult
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltTemplatePtr
    - int*
    constantsTouched: []
    func_position:
      end: 2219
      start: 2185
    functionDepth: 0
    functionLinenumber: 2185
    functionLinenumberEnd: 2219
    functionName: xsltDebuggerStartSequenceConstructor
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xslHandleDebugger
    - xslDropCall
    - xslAddCall
    linkageType: ''
    returnType: xmlNodePtr
    signature: "static xmlNodePtr xsltDebuggerStartSequenceConstructor(xsltTransformContextPtr
      ctxt,\t\t\t\t xmlNodePtr contextNode,\t\t\t\t xmlNodePtr list,\t\t\t\t xsltTemplatePtr
      templ,\t\t\t\t int *addCallResult) "
  - BBCount: 82
    BranchProfiles: []
    Callsites:
    - Dst: xslHandleDebugger
      Src: /src/libxslt/libxslt/transform.c:2419,1
    - Dst: xmlNewNs
      Src: /src/libxslt/libxslt/transform.c:2507,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2719,1
    - Dst: xsltCopyText
      Src: /src/libxslt/libxslt/transform.c:2822,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2809,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2872,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/transform.c:2731,1
    - Dst: xsltMessage
      Src: /src/libxslt/libxslt/transform.c:2793,1
    - Dst: xsltShallowCopyElem
      Src: /src/libxslt/libxslt/transform.c:2912,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:2933,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/transform.c:2855,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2813,1
    - Dst: function
      Src: /src/libxslt/libxslt/transform.c:2891,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/transform.c:2944,1
    - Dst: xsltExtElementLookup
      Src: /src/libxslt/libxslt/transform.c:2648,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:2866,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2411,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2715,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/transform.c:2439,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2676,1
    - Dst: func
      Src: /src/libxslt/libxslt/transform.c:2694,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2872,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2809,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2844,1
    - Dst: xsltDebuggerStartSequenceConstructor
      Src: /src/libxslt/libxslt/transform.c:2341,1
    - Dst: xsltMessage
      Src: /src/libxslt/libxslt/transform.c:2440,1
    - Dst: xsltGetSpecialNamespace
      Src: /src/libxslt/libxslt/transform.c:2559,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:2628,1
    - Dst: xsltApplySequenceConstructor
      Src: /src/libxslt/libxslt/transform.c:2858,1
    - Dst: xsltExtElementLookup
      Src: /src/libxslt/libxslt/transform.c:2834,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/transform.c:2954,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2411,1
    - Dst: xsltGetSpecialNamespace
      Src: /src/libxslt/libxslt/transform.c:2537,1
    - Dst: xsltApplyFallbacks
      Src: /src/libxslt/libxslt/transform.c:2585,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2660,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/transform.c:2940,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2676,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/transform.c:2738,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2714,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:2357,1
    - Dst: xsltAddChild
      Src: /src/libxslt/libxslt/transform.c:2485,1
    - Dst: xsltAttrListTemplateProcess
      Src: /src/libxslt/libxslt/transform.c:2572,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:2586,1
    - Dst: xsltParseStylesheetVariable
      Src: /src/libxslt/libxslt/transform.c:2611,1
    - Dst: xsltMessage
      Src: /src/libxslt/libxslt/transform.c:2626,1
    - Dst: xsltApplyFallbacks
      Src: /src/libxslt/libxslt/transform.c:2665,1
    - Dst: IS_XSLT_ELEM_FAST
      Src: /src/libxslt/libxslt/transform.c:2439,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:2502,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/transform.c:2500,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2817,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2844,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:2955,1
    - Dst: xsltAttrListTemplateProcess
      Src: /src/libxslt/libxslt/transform.c:2971,1
    - Dst: xsltLocalVariablePop
      Src: /src/libxslt/libxslt/transform.c:3033,1
    - Dst: xslDropCall
      Src: /src/libxslt/libxslt/transform.c:3043,1
    - Dst: xsltApplyFallbacks
      Src: /src/libxslt/libxslt/transform.c:2745,1
    - Dst: xsltReleaseLocalRVTs
      Src: /src/libxslt/libxslt/transform.c:2896,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/transform.c:2773,1
    - Dst: xsltDebug
      Src: /src/libxslt/libxslt/transform.c:2364,1
    - Dst: xmlDocCopyNode
      Src: /src/libxslt/libxslt/transform.c:2473,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2463,1
    - Dst: xsltCopyText
      Src: /src/libxslt/libxslt/transform.c:2725,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2659,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2905,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/transform.c:2792,1
    - Dst: xsltParseStylesheetVariable
      Src: /src/libxslt/libxslt/transform.c:2779,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:2509,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:2475,1
    - Dst: IS_XSLT_ELEM_FAST
      Src: /src/libxslt/libxslt/transform.c:2574,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/transform.c:2854,1
    - Dst: xsltMessage
      Src: /src/libxslt/libxslt/transform.c:2739,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2817,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:2446,1
    - Dst: xsltReleaseLocalRVTs
      Src: /src/libxslt/libxslt/transform.c:2700,1
    - Dst: xsltReleaseLocalRVTs
      Src: /src/libxslt/libxslt/transform.c:2766,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2813,1
    - Dst: xsltGetNamespace
      Src: /src/libxslt/libxslt/transform.c:2964,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:2666,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2905,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2720,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:2386,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2462,1
    - Dst: xsltReleaseLocalRVTs
      Src: /src/libxslt/libxslt/transform.c:2605,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:2795,1
    - Dst: xmlNewNs
      Src: /src/libxslt/libxslt/transform.c:2957,1
    - Dst: xsltLocalVariablePop
      Src: /src/libxslt/libxslt/transform.c:3011,1
    - Dst: XSLT_IS_TEXT_NODE
      Src: /src/libxslt/libxslt/transform.c:2707,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/transform.c:2746,1
    CyclomaticComplexity: 121
    EdgeCount: 121
    ICount: 351
    argCount: 4
    argNames:
    - ctxt
    - contextNode
    - list
    - templ
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltTemplatePtr
    constantsTouched: []
    func_position:
      end: 3046
      start: 2316
    functionDepth: 0
    functionLinenumber: 2316
    functionLinenumberEnd: 3046
    functionName: xsltApplySequenceConstructor
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltAddChild
    - xsltLocalVariablePop
    - xslDropCall
    - xmlDocCopyNode
    - xsltMessage
    - xsltCopyText
    - xmlHashLookup
    - xsltGenericDebug
    - xsltGenericError
    - xsltApplySequenceConstructor
    - xsltTransformError
    - xsltApplyFallbacks
    - xsltNextImport
    - IS_XSLT_ELEM_FAST
    - function
    - IS_XSLT_ELEM
    - xsltDebug
    - xsltReleaseLocalRVTs
    - XSLT_IS_TEXT_NODE
    - xsltAttrListTemplateProcess
    - xsltGetNamespace
    - xsltDebuggerStartSequenceConstructor
    - xmlNewNs
    - IS_XSLT_NAME
    - XSLT_TRACE
    - func
    - xslHandleDebugger
    - xmlStrEqual
    - xsltExtElementLookup
    - xsltGetSpecialNamespace
    - xmlSearchNs
    - xsltShallowCopyElem
    - xsltParseStylesheetVariable
    linkageType: ''
    returnType: void
    signature: "static void xsltApplySequenceConstructor(xsltTransformContextPtr ctxt,\t\t\t
      xmlNodePtr contextNode, xmlNodePtr list,\t\t\t xsltTemplatePtr templ) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4028,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:4035,1
    - Dst: xmlNewDocText
      Src: /src/libxslt/libxslt/transform.c:4032,1
    - Dst: xsltAddChild
      Src: /src/libxslt/libxslt/transform.c:4040,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - inst
    - ATTRIBUTE_UNUSED
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 4044
      start: 4018
    functionDepth: 0
    functionLinenumber: 4018
    functionLinenumberEnd: 4044
    functionName: xsltText
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlNewDocText
    - xsltAddChild
    - xsltTransformError
    - xsltGenericDebug
    linkageType: ''
    returnType: void
    signature: "void xsltText(xsltTransformContextPtr ctxt, xmlNodePtr node ATTRIBUTE_UNUSED,\t
      xmlNodePtr inst, xsltElemPreCompPtr comp ATTRIBUTE_UNUSED) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:4325,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4340,1
    - Dst: xmlStrstr
      Src: /src/libxslt/libxslt/transform.c:4339,1
    - Dst: xsltEvalTemplateString
      Src: /src/libxslt/libxslt/transform.c:4338,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4328,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:4346,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:4346,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:4349,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:4349,1
    - Dst: xmlNewDocPI
      Src: /src/libxslt/libxslt/transform.c:4354,1
    - Dst: xsltAddChild
      Src: /src/libxslt/libxslt/transform.c:4355,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:4359,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:4361,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 4
    argNames:
    - ctxt
    - node
    - inst
    - castedComp
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 4362
      start: 4307
    functionDepth: 0
    functionLinenumber: 4307
    functionLinenumberEnd: 4362
    functionName: xsltProcessingInstruction
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltAddChild
    - xsltGenericDebug
    - XSLT_TRACE
    - xsltEvalAttrValueTemplate
    - xsltEvalTemplateString
    - xmlStrstr
    - xsltTransformError
    - xmlNewDocPI
    linkageType: ''
    returnType: void
    signature: "void xsltProcessingInstruction(xsltTransformContextPtr ctxt, xmlNodePtr
      node,\t xmlNodePtr inst, xsltElemPreCompPtr castedComp) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4659,1
    - Dst: xsltDefaultProcessOneNode
      Src: /src/libxslt/libxslt/transform.c:4704,1
    - Dst: xsltGetTemplate
      Src: /src/libxslt/libxslt/transform.c:4685,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4677,1
    - Dst: xsltApplyXSLTTemplate
      Src: /src/libxslt/libxslt/transform.c:4697,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - ctxt
    - contextNode
    - inst
    - ATTRIBUTE_UNUSED
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 4706
      start: 4648
    functionDepth: 0
    functionLinenumber: 4648
    functionLinenumberEnd: 4706
    functionName: xsltApplyImports
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltTransformError
    - xsltGetTemplate
    - xsltApplyXSLTTemplate
    - xsltDefaultProcessOneNode
    linkageType: ''
    returnType: void
    signature: "void xsltApplyImports(xsltTransformContextPtr ctxt, xmlNodePtr contextNode,\t
      xmlNodePtr inst,\t\t xsltElemPreCompPtr comp ATTRIBUTE_UNUSED) "
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:1928,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:1928,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:1935,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:1952,1
    - Dst: IS_XSLT_REAL_NODE
      Src: /src/libxslt/libxslt/transform.c:1972,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:1952,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:1996,1
    - Dst: xsltProcessOneNode
      Src: /src/libxslt/libxslt/transform.c:2007,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2014,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2014,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2040,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:1949,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:1944,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:1949,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:1959,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2025,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2025,1
    - Dst: xsltGetTemplate
      Src: /src/libxslt/libxslt/transform.c:2037,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2057,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2057,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2079,1
    - Dst: xsltApplyXSLTTemplate
      Src: /src/libxslt/libxslt/transform.c:2088,1
    - Dst: xsltCopyText
      Src: /src/libxslt/libxslt/transform.c:2029,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:1924,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:1917,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:1924,1
    - Dst: xsltCopyText
      Src: /src/libxslt/libxslt/transform.c:1957,1
    - Dst: xsltApplyXSLTTemplate
      Src: /src/libxslt/libxslt/transform.c:2021,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2054,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2054,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:2064,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2075,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2075,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:1911,1
    - Dst: xsltCopyText
      Src: /src/libxslt/libxslt/transform.c:1915,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:1911,1
    - Dst: xsltCopyText
      Src: /src/libxslt/libxslt/transform.c:1933,1
    - Dst: xsltGetTemplate
      Src: /src/libxslt/libxslt/transform.c:2011,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:2031,1
    - Dst: xsltApplyXSLTTemplate
      Src: /src/libxslt/libxslt/transform.c:2049,1
    - Dst: xsltCopyText
      Src: /src/libxslt/libxslt/transform.c:2062,1
    - Dst: xsltGetTemplate
      Src: /src/libxslt/libxslt/transform.c:2071,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2079,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2040,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 112
    argCount: 3
    argNames:
    - ctxt
    - node
    - params
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xsltStackElemPtr
    constantsTouched: []
    func_position:
      end: 2099
      start: 1891
    functionDepth: 0
    functionLinenumber: 1891
    functionLinenumberEnd: 2099
    functionName: xsltDefaultProcessOneNode
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltCopyText
    - IS_XSLT_REAL_NODE
    - XSLT_TRACE
    - xsltApplyXSLTTemplate
    - xsltProcessOneNode
    - xsltGenericDebug
    - xsltGetTemplate
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: "static void xsltDefaultProcessOneNode(xsltTransformContextPtr ctxt,
      xmlNodePtr node,\t\t\t xsltStackElemPtr params) "
  - BBCount: 83
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:3507,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3551,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3593,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:3612,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:3605,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3682,1
    - Dst: xmlDictQLookup
      Src: /src/libxslt/libxslt/transform.c:3751,1
    - Dst: xmlIsBlankNode
      Src: /src/libxslt/libxslt/transform.c:3767,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:3841,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3549,1
    - Dst: xsltGetQNameURI
      Src: /src/libxslt/libxslt/transform.c:3660,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3819,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3854,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:3554,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:3524,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3638,1
    - Dst: xmlXPathCtxtCompile
      Src: /src/libxslt/libxslt/transform.c:3429,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:3446,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:3476,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:3516,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3664,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:3656,1
    - Dst: htmlNewDocNoDtD
      Src: /src/libxslt/libxslt/transform.c:3702,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3576,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:3399,1
    - Dst: xmlURIEscapeStr
      Src: /src/libxslt/libxslt/transform.c:3468,1
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/transform.c:3675,1
    - Dst: xmlNewDoc
      Src: /src/libxslt/libxslt/transform.c:3726,1
    - Dst: xsltApplySequenceConstructor
      Src: /src/libxslt/libxslt/transform.c:3741,1
    - Dst: xmlCreateIntSubset
      Src: /src/libxslt/libxslt/transform.c:3784,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:3441,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3585,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:3630,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/transform.c:3651,1
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/transform.c:3674,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3617,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:3622,1
    - Dst: htmlNewDoc
      Src: /src/libxslt/libxslt/transform.c:3685,1
    - Dst: xsltGetHTMLIDs
      Src: /src/libxslt/libxslt/transform.c:3780,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:3402,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3432,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/transform.c:3452,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:3719,1
    - Dst: xmlStrcasecmp
      Src: /src/libxslt/libxslt/transform.c:3760,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3852,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:3412,1
    - Dst: xmlBuildURI
      Src: /src/libxslt/libxslt/transform.c:3470,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3542,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3609,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:3579,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3568,1
    - Dst: xmlCreateIntSubset
      Src: /src/libxslt/libxslt/transform.c:3775,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:3836,1
    - Dst: xsltNewStylesheet
      Src: /src/libxslt/libxslt/transform.c:3505,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3539,1
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/transform.c:3678,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:3407,1
    - Dst: xsltEvalXPathString
      Src: /src/libxslt/libxslt/transform.c:3430,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:3436,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:3456,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:3490,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3681,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:3715,1
    - Dst: xsltCheckWrite
      Src: /src/libxslt/libxslt/transform.c:3487,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3494,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3602,1
    - Dst: xsltGetHTMLIDs
      Src: /src/libxslt/libxslt/transform.c:3689,1
    - Dst: xmlDictReference
      Src: /src/libxslt/libxslt/transform.c:3713,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:3810,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:3571,1
    - Dst: xmlDictReference
      Src: /src/libxslt/libxslt/transform.c:3697,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3698,1
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/transform.c:3793,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/libxslt/transform.c:3858,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3550,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3627,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3583,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:3596,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:3415,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/transform.c:3431,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3471,1
    - Dst: htmlNewDocNoDtD
      Src: /src/libxslt/libxslt/transform.c:3692,1
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/transform.c:3677,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3392,1
    - Dst: xmlBuildURI
      Src: /src/libxslt/libxslt/transform.c:3464,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3445,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3479,1
    - Dst: xmlDictReference
      Src: /src/libxslt/libxslt/transform.c:3706,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3707,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/transform.c:3738,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3814,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3529,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:3588,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3619,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3668,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxslt/libxslt/transform.c:3662,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:3699,1
    - Dst: xsltSaveResultToFile
      Src: /src/libxslt/libxslt/transform.c:3829,1
    - Dst: xsltSaveResultToFilename
      Src: /src/libxslt/libxslt/transform.c:3833,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3493,1
    - Dst: xsltGetQNameURI
      Src: /src/libxslt/libxslt/transform.c:3545,1
    - Dst: xmlIsBlank_ch
      Src: /src/libxslt/libxslt/transform.c:3649,1
    - Dst: xmlNewDoc
      Src: /src/libxslt/libxslt/transform.c:3709,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:3732,1
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/transform.c:3794,1
    - Dst: xmlCreateIntSubset
      Src: /src/libxslt/libxslt/transform.c:3796,1
    - Dst: xsltFreeStylesheet
      Src: /src/libxslt/libxslt/transform.c:3856,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:3563,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3410,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/transform.c:3560,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3600,1
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/transform.c:3636,1
    - Dst: xmlDictReference
      Src: /src/libxslt/libxslt/transform.c:3730,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxslt/libxslt/transform.c:3746,1
    - Dst: xmlIsBlank_ch
      Src: /src/libxslt/libxslt/transform.c:3644,1
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/transform.c:3676,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/transform.c:3532,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:3521,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:3813,1
    - Dst: fopen
      Src: /src/libxslt/libxslt/transform.c:3825,1
    - Dst: fclose
      Src: /src/libxslt/libxslt/transform.c:3830,1
    CyclomaticComplexity: 128
    EdgeCount: 128
    ICount: 375
    argCount: 4
    argNames:
    - ctxt
    - node
    - inst
    - castedComp
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 3859
      start: 3361
    functionDepth: 0
    functionLinenumber: 3361
    functionLinenumberEnd: 3859
    functionName: xsltDocumentElem
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlHashAddEntry2
    - xmlStrndup
    - fclose
    - htmlNewDocNoDtD
    - xsltCheckWrite
    - xmlDictReference
    - xmlNewDoc
    - xsltEvalXPathString
    - xmlFreeDoc
    - xmlURIEscapeStr
    - xmlXPathFreeCompExpr
    - htmlNewDoc
    - xsltGetHTMLIDs
    - fopen
    - xmlXPathCtxtCompile
    - xmlIsBlank_ch
    - xsltSaveResultToFile
    - xmlStrdup
    - xsltGetQNameURI
    - xmlCreateIntSubset
    - xsltGenericDebug
    - xsltApplySequenceConstructor
    - xmlFree
    - XSLT_GET_IMPORT_PTR
    - xsltEvalAttrValueTemplate
    - xsltSaveResultToFilename
    - xmlBuildURI
    - xmlStrcasecmp
    - xsltFreeStylesheet
    - xmlIsBlankNode
    - xmlDictQLookup
    - xmlHashCreate
    - xmlStrEqual
    - xsltTransformError
    - xsltNewStylesheet
    linkageType: ''
    returnType: void
    signature: 'void xsltDocumentElem(xsltTransformContextPtr ctxt, xmlNodePtr node,
      xmlNodePtr inst, xsltElemPreCompPtr castedComp) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltMessage
      Src: /src/libxslt/libxslt/transform.c:6382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - ctxt
    - node
    - inst
    - ATTRIBUTE_UNUSED
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 6383
      start: 6379
    functionDepth: 0
    functionLinenumber: 6379
    functionLinenumberEnd: 6383
    functionName: xsltMessageWrapper
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltMessage
    linkageType: ''
    returnType: void
    signature: 'static void xsltMessageWrapper(xsltTransformContextPtr ctxt, xmlNodePtr
      node, xmlNodePtr inst, xsltElemPreCompPtr comp ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 287
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 287
    functionName: profPop
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: 'static long profPop(xsltTransformContextPtr ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeDocumentKeys
      Src: /src/libxslt/libxslt/transform.c:529,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:530,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:550,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/libxslt/transform.c:532,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:547,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - cache
    argTypes:
    - xsltTransformCachePtr
    constantsTouched: []
    func_position:
      end: 551
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 551
    functionName: xsltTransformCacheFree
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeDoc
    - xsltFreeDocumentKeys
    linkageType: ''
    returnType: void
    signature: 'static void xsltTransformCacheFree(xsltTransformCachePtr cache) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/transform.c:1848,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:1849,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:1851,1
    - Dst: xsltApplySequenceConstructor
      Src: /src/libxslt/libxslt/transform.c:1855,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - ctxt
    - node
    - inst
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1861
      start: 1835
    functionDepth: 0
    functionLinenumber: 1835
    functionLinenumberEnd: 1861
    functionName: xsltApplyFallbacks
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - IS_XSLT_ELEM
    - xsltApplySequenceConstructor
    - xsltGenericDebug
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: "static int xsltApplyFallbacks(xsltTransformContextPtr ctxt, xmlNodePtr
      node,\t xmlNodePtr inst) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltLocalVariablePush
      Src: /src/libxslt/libxslt/transform.c:3334,1
    - Dst: xsltApplySequenceConstructor
      Src: /src/libxslt/libxslt/transform.c:3337,1
    - Dst: xsltApplySequenceConstructor
      Src: /src/libxslt/libxslt/transform.c:3343,1
    - Dst: xsltLocalVariablePop
      Src: /src/libxslt/libxslt/transform.c:3341,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - ctxt
    - contextNode
    - list
    - ATTRIBUTE_UNUSED
    - params
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltTemplatePtr
    - xsltStackElemPtr
    constantsTouched: []
    func_position:
      end: 3344
      start: 3311
    functionDepth: 0
    functionLinenumber: 3311
    functionLinenumberEnd: 3344
    functionName: xsltApplyOneTemplate
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltLocalVariablePop
    - xsltApplySequenceConstructor
    - xsltLocalVariablePush
    linkageType: ''
    returnType: void
    signature: "void xsltApplyOneTemplate(xsltTransformContextPtr ctxt,\t\t xmlNodePtr
      contextNode, xmlNodePtr list,\t\t xsltTemplatePtr templ ATTRIBUTE_UNUSED, xsltStackElemPtr
      params) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsltEvalTemplateString
      Src: /src/libxslt/libxslt/transform.c:4270,1
    - Dst: xmlStrstr
      Src: /src/libxslt/libxslt/transform.c:4275,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:4283,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4276,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libxslt/transform.c:4272,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:4283,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:4286,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:4286,1
    - Dst: xmlNewComment
      Src: /src/libxslt/libxslt/transform.c:4291,1
    - Dst: xsltAddChild
      Src: /src/libxslt/libxslt/transform.c:4292,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:4295,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - ctxt
    - node
    - inst
    - ATTRIBUTE_UNUSED
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 4296
      start: 4263
    functionDepth: 0
    functionLinenumber: 4263
    functionLinenumberEnd: 4296
    functionName: xsltComment
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltAddChild
    - xsltGenericDebug
    - XSLT_TRACE
    - xmlStrlen
    - xsltEvalTemplateString
    - xmlStrstr
    - xmlNewComment
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: "void xsltComment(xsltTransformContextPtr ctxt, xmlNodePtr node,\t
      xmlNodePtr inst, xsltElemPreCompPtr comp ATTRIBUTE_UNUSED) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4605,1
    - Dst: xsltNumberFormat
      Src: /src/libxslt/libxslt/transform.c:4633,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - ctxt
    - node
    - inst
    - castedComp
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 4637
      start: 4591
    functionDepth: 0
    functionLinenumber: 4591
    functionLinenumberEnd: 4637
    functionName: xsltNumber
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltTransformError
    - xsltNumberFormat
    linkageType: ''
    returnType: void
    signature: "void xsltNumber(xsltTransformContextPtr ctxt, xmlNodePtr node,\t xmlNodePtr
      inst, xsltElemPreCompPtr castedComp) "
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:5971,1
    - Dst: xmlDictQLookup
      Src: /src/libxslt/libxslt/transform.c:6088,1
    - Dst: xmlDictReference
      Src: /src/libxslt/libxslt/transform.c:5968,1
    - Dst: xsltCountKeys
      Src: /src/libxslt/libxslt/transform.c:6020,1
    - Dst: xsltShutdownCtxtExts
      Src: /src/libxslt/libxslt/transform.c:6038,1
    - Dst: xmlCreateIntSubset
      Src: /src/libxslt/libxslt/transform.c:6144,1
    - Dst: xmlXPathOrderDocElems
      Src: /src/libxslt/libxslt/transform.c:5861,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:5910,1
    - Dst: xsltApplyStripSpaces
      Src: /src/libxslt/libxslt/transform.c:6009,1
    - Dst: xsltSaveProfiling
      Src: /src/libxslt/libxslt/transform.c:6162,1
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/transform.c:5902,1
    - Dst: xmlNewDoc
      Src: /src/libxslt/libxslt/transform.c:5982,1
    - Dst: xmlStrcasecmp
      Src: /src/libxslt/libxslt/transform.c:6097,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libxslt/transform.c:6158,1
    - Dst: printf
      Src: /src/libxslt/libxslt/transform.c:6191,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/transform.c:6060,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:5962,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:5975,1
    - Dst: xsltCleanupSourceDoc
      Src: /src/libxslt/libxslt/transform.c:6195,1
    - Dst: printf
      Src: /src/libxslt/libxslt/transform.c:6208,1
    - Dst: xsltFreeTransformContext
      Src: /src/libxslt/libxslt/transform.c:6213,1
    - Dst: xsltNewTransformContext
      Src: /src/libxslt/libxslt/transform.c:5867,1
    - Dst: htmlNewDoc
      Src: /src/libxslt/libxslt/transform.c:5913,1
    - Dst: xmlFreeDtd
      Src: /src/libxslt/libxslt/transform.c:5926,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:5949,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:5959,1
    - Dst: xmlNewDoc
      Src: /src/libxslt/libxslt/transform.c:5964,1
    - Dst: xsltFreeStackElemList
      Src: /src/libxslt/libxslt/transform.c:6053,1
    - Dst: xmlCreateIntSubset
      Src: /src/libxslt/libxslt/transform.c:6125,1
    - Dst: xsltEvalUserParams
      Src: /src/libxslt/libxslt/transform.c:6016,1
    - Dst: xsltGetHTMLIDs
      Src: /src/libxslt/libxslt/transform.c:6121,1
    - Dst: xsltCheckWrite
      Src: /src/libxslt/libxslt/transform.c:6176,1
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/transform.c:5901,1
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/transform.c:5905,1
    - Dst: htmlNewDoc
      Src: /src/libxslt/libxslt/transform.c:5936,1
    - Dst: xmlDictReference
      Src: /src/libxslt/libxslt/transform.c:5956,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:5879,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/transform.c:5896,1
    - Dst: xmlUnlinkNode
      Src: /src/libxslt/libxslt/transform.c:5925,1
    - Dst: xsltLocalVariablePop
      Src: /src/libxslt/libxslt/transform.c:6037,1
    - Dst: xsltProcessOneNode
      Src: /src/libxslt/libxslt/transform.c:6033,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/transform.c:5898,1
    - Dst: xmlGetIntSubset
      Src: /src/libxslt/libxslt/transform.c:5923,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:5908,1
    - Dst: xmlCreateIntSubset
      Src: /src/libxslt/libxslt/transform.c:6116,1
    - Dst: printf
      Src: /src/libxslt/libxslt/transform.c:6207,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:6178,1
    - Dst: printf
      Src: /src/libxslt/libxslt/transform.c:6190,1
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/transform.c:6134,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/libxslt/transform.c:6204,1
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/transform.c:6014,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxslt/libxslt/transform.c:6009,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/libxslt/transform.c:6170,1
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/transform.c:5904,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/transform.c:5994,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxslt/libxslt/transform.c:5857,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:5945,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:5948,1
    - Dst: htmlNewDoc
      Src: /src/libxslt/libxslt/transform.c:5952,1
    - Dst: xsltCleanupTemplates
      Src: /src/libxslt/libxslt/transform.c:6040,1
    - Dst: xsltFreeTransformContext
      Src: /src/libxslt/libxslt/transform.c:6198,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxslt/libxslt/transform.c:6083,1
    - Dst: htmlNewDoc
      Src: /src/libxslt/libxslt/transform.c:5918,1
    - Dst: xmlDictReference
      Src: /src/libxslt/libxslt/transform.c:5942,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:5988,1
    - Dst: xsltNeedElemSpaceHandling
      Src: /src/libxslt/libxslt/transform.c:6008,1
    - Dst: xsltReleaseLocalRVTs
      Src: /src/libxslt/libxslt/transform.c:6025,1
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/transform.c:6135,1
    - Dst: xmlDictReference
      Src: /src/libxslt/libxslt/transform.c:5986,1
    - Dst: xmlIsBlankNode
      Src: /src/libxslt/libxslt/transform.c:6104,1
    - Dst: xsltInitGlobals
      Src: /src/libxslt/libxslt/transform.c:5826,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:5833,1
    - Dst: xsltFreeRVTs
      Src: /src/libxslt/libxslt/transform.c:6078,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:6182,1
    - Dst: printf
      Src: /src/libxslt/libxslt/transform.c:6189,1
    - Dst: printf
      Src: /src/libxslt/libxslt/transform.c:6209,1
    - Dst: xsltEvalGlobalVariables
      Src: /src/libxslt/libxslt/transform.c:6022,1
    - Dst: XSLT_GET_IMPORT_PTR
      Src: /src/libxslt/libxslt/transform.c:5903,1
    - Dst: xsltGetHTMLIDs
      Src: /src/libxslt/libxslt/transform.c:5934,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 279
    argCount: 6
    argNames:
    - style
    - doc
    - params
    - output
    - profile
    - userCtxt
    argTypes:
    - xsltStylesheetPtr
    - xmlDocPtr
    - char**
    - char*
    - FILE*
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 6215
      start: 5810
    functionDepth: 0
    functionLinenumber: 5810
    functionLinenumberEnd: 6215
    functionName: xsltApplyStylesheetInternal
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xsltLocalVariablePop
    - xsltFreeStackElemList
    - xsltCheckWrite
    - xsltShutdownCtxtExts
    - xsltInitGlobals
    - xmlXPathOrderDocElems
    - xsltApplyStripSpaces
    - xmlDictReference
    - xmlNewDoc
    - xsltEvalUserParams
    - xmlFreeDoc
    - xmlGetIntSubset
    - printf
    - htmlNewDoc
    - xmlFreeDtd
    - xsltGetHTMLIDs
    - xsltNeedElemSpaceHandling
    - xsltFreeRVTs
    - xsltSaveProfiling
    - xmlStrdup
    - xsltFreeTransformContext
    - xmlXPathFreeObject
    - xmlCreateIntSubset
    - xsltGenericDebug
    - xmlUnlinkNode
    - XSLT_GET_IMPORT_PTR
    - xsltCleanupTemplates
    - xsltCountKeys
    - xsltCleanupSourceDoc
    - xsltReleaseLocalRVTs
    - xmlXPathFreeNodeSet
    - xmlStrcasecmp
    - xmlDictLookup
    - xmlIsBlankNode
    - xsltEvalGlobalVariables
    - xmlDictQLookup
    - xmlHashCreate
    - xmlStrEqual
    - xsltProcessOneNode
    - xsltTransformError
    - xsltNewTransformContext
    linkageType: ''
    returnType: xmlDocPtr
    signature: 'static xmlDocPtr xsltApplyStylesheetInternal(xsltStylesheetPtr style,
      xmlDocPtr doc, const char **params, const char *output, FILE * profile, xsltTransformContextPtr
      userCtxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltApplyStylesheetInternal
      Src: /src/libxslt/libxslt/transform.c:6253,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 4
    argNames:
    - style
    - doc
    - params
    - output
    argTypes:
    - xsltStylesheetPtr
    - xmlDocPtr
    - char**
    - FILE*
    constantsTouched: []
    func_position:
      end: 6255
      start: 6247
    functionDepth: 0
    functionLinenumber: 6247
    functionLinenumberEnd: 6255
    functionName: xsltProfileStylesheet
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltApplyStylesheetInternal
    linkageType: ''
    returnType: xmlDocPtr
    signature: 'xmlDocPtr xsltProfileStylesheet(xsltStylesheetPtr style, xmlDocPtr
      doc, const char **params, FILE * output) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/transform.c:244,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/transform.c:256,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/transform.c:246,1
    - Dst: xmlRealloc
      Src: /src/libxslt/libxslt/transform.c:253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - value
    argTypes:
    - xsltTransformContextPtr
    - long
    constantsTouched: []
    func_position:
      end: 263
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 263
    functionName: profPush
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlRealloc
    - xmlGenericError
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'static int profPush(xsltTransformContextPtr ctxt, long value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 466
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 466
    functionName: xsltGetXIncludeDefault
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xsltGetXIncludeDefault(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - xsltDebugTraceCodes
    constantsTouched: []
    func_position:
      end: 478
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 478
    functionName: xsltDebugSetDefaultTrace
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xsltDebugSetDefaultTrace(xsltDebugTraceCodes val) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:1477,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/transform.c:1483,1
    - Dst: xmlNewNs
      Src: /src/libxslt/libxslt/transform.c:1490,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:1478,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/transform.c:1484,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - elem
    - ns
    argTypes:
    - xmlNodePtr
    - xmlNsPtr
    constantsTouched: []
    func_position:
      end: 1500
      start: 1456
    functionDepth: 0
    functionLinenumber: 1456
    functionLinenumberEnd: 1500
    functionName: xsltCopyNamespaceListInternal
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlSearchNs
    - xmlStrEqual
    - xmlNewNs
    linkageType: ''
    returnType: xmlNsPtr
    signature: 'static xmlNsPtr xsltCopyNamespaceListInternal(xmlNodePtr elem, xmlNsPtr
      ns) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltGetTemplate
      Src: /src/libxslt/libxslt/transform.c:2117,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2124,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2127,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2124,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2127,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2130,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2130,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2134,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2134,1
    - Dst: xsltDefaultProcessOneNode
      Src: /src/libxslt/libxslt/transform.c:2140,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2153,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2153,1
    - Dst: xsltApplyXSLTTemplate
      Src: /src/libxslt/libxslt/transform.c:2157,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2169,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2169,1
    - Dst: xsltApplyXSLTTemplate
      Src: /src/libxslt/libxslt/transform.c:2178,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:2173,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:2173,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 3
    argNames:
    - ctxt
    - contextNode
    - withParams
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xsltStackElemPtr
    constantsTouched: []
    func_position:
      end: 2182
      start: 2110
    functionDepth: 0
    functionLinenumber: 2110
    functionLinenumberEnd: 2182
    functionName: xsltProcessOneNode
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - XSLT_TRACE
    - xsltApplyXSLTTemplate
    - xsltDefaultProcessOneNode
    - xsltGenericDebug
    - xsltGetTemplate
    linkageType: ''
    returnType: void
    signature: "void xsltProcessOneNode(xsltTransformContextPtr ctxt, xmlNodePtr contextNode,\t
      xsltStackElemPtr withParams) "
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xsltPreCompEval
      Src: /src/libxslt/libxslt/transform.c:5466,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/transform.c:5506,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/transform.c:5518,1
    - Dst: xslHandleDebugger
      Src: /src/libxslt/libxslt/transform.c:5531,1
    - Dst: xsltApplySequenceConstructor
      Src: /src/libxslt/libxslt/transform.c:5556,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:5433,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:5442,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:5442,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:5476,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:5476,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:5482,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/transform.c:5518,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/transform.c:5562,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:5427,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:5520,1
    - Dst: xsltDoSortFunction
      Src: /src/libxslt/libxslt/transform.c:5535,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/transform.c:5421,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:5472,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/transform.c:5506,1
    - Dst: xslHandleDebugger
      Src: /src/libxslt/libxslt/transform.c:5514,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:5492,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:5492,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 90
    argCount: 4
    argNames:
    - ctxt
    - contextNode
    - inst
    - castedComp
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 5574
      start: 5399
    functionDepth: 0
    functionLinenumber: 5399
    functionLinenumberEnd: 5574
    functionName: xsltForEach
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltPreCompEval
    - xsltDoSortFunction
    - IS_XSLT_NAME
    - XSLT_TRACE
    - xslHandleDebugger
    - xsltApplySequenceConstructor
    - xmlXPathFreeObject
    - IS_XSLT_ELEM
    - xsltGenericDebug
    - xsltGenericError
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: "void xsltForEach(xsltTransformContextPtr ctxt, xmlNodePtr contextNode,\t
      xmlNodePtr inst, xsltElemPreCompPtr castedComp) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsltClearSourceNodeFlags
      Src: /src/libxslt/libxslt/transform.c:5765,1
    - Dst: xsltGetPSVIPtr
      Src: /src/libxslt/libxslt/transform.c:5766,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 5794
      start: 5759
    functionDepth: 0
    functionLinenumber: 5759
    functionLinenumberEnd: 5794
    functionName: xsltCleanupSourceDoc
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltGetPSVIPtr
    - xsltClearSourceNodeFlags
    linkageType: ''
    returnType: void
    signature: 'static void xsltCleanupSourceDoc(xmlDocPtr doc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltApplyStylesheetInternal
      Src: /src/libxslt/libxslt/transform.c:6232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - style
    - doc
    - params
    argTypes:
    - xsltStylesheetPtr
    - xmlDocPtr
    - char**
    constantsTouched: []
    func_position:
      end: 6233
      start: 6228
    functionDepth: 0
    functionLinenumber: 6228
    functionLinenumberEnd: 6233
    functionName: xsltApplyStylesheet
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltApplyStylesheetInternal
    linkageType: ''
    returnType: xmlDocPtr
    signature: 'xmlDocPtr xsltApplyStylesheet(xsltStylesheetPtr style, xmlDocPtr doc,
      const char **params) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsltApplyStylesheetInternal
      Src: /src/libxslt/libxslt/transform.c:6329,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:6332,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/libxslt/transform.c:6342,1
    - Dst: xsltSaveResultToFilename
      Src: /src/libxslt/libxslt/transform.c:6340,1
    - Dst: xsltSaveResultTo
      Src: /src/libxslt/libxslt/transform.c:6338,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 8
    argNames:
    - style
    - doc
    - params
    - output
    - SAX
    - IObuf
    - profile
    - userCtxt
    argTypes:
    - xsltStylesheetPtr
    - xmlDocPtr
    - char**
    - char*
    - xmlSAXHandlerPtr
    - xmlOutputBufferPtr
    - FILE*
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 6344
      start: 6309
    functionDepth: 0
    functionLinenumber: 6309
    functionLinenumberEnd: 6344
    functionName: xsltRunStylesheetUser
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltSaveResultTo
    - xsltApplyStylesheetInternal
    - xmlFreeDoc
    - xsltSaveResultToFilename
    - xsltTransformError
    linkageType: ''
    returnType: int
    signature: "int xsltRunStylesheetUser(xsltStylesheetPtr style, xmlDocPtr doc,
      const char **params, const char *output, xmlSAXHandlerPtr SAX, xmlOutputBufferPtr
      IObuf,\t\t FILE * profile, xsltTransformContextPtr userCtxt) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltRunStylesheetUser
      Src: /src/libxslt/libxslt/transform.c:6375,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 6
    argNames:
    - style
    - doc
    - params
    - output
    - SAX
    - IObuf
    argTypes:
    - xsltStylesheetPtr
    - xmlDocPtr
    - char**
    - char*
    - xmlSAXHandlerPtr
    - xmlOutputBufferPtr
    constantsTouched: []
    func_position:
      end: 6377
      start: 6370
    functionDepth: 0
    functionLinenumber: 6370
    functionLinenumberEnd: 6377
    functionName: xsltRunStylesheet
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltRunStylesheetUser
    linkageType: ''
    returnType: int
    signature: 'int xsltRunStylesheet(xsltStylesheetPtr style, xmlDocPtr doc, const
      char **params, const char *output, xmlSAXHandlerPtr SAX, xmlOutputBufferPtr
      IObuf) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - xinclude
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 454
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 454
    functionName: xsltSetXIncludeDefault
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xsltSetXIncludeDefault(int xinclude) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:890,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libxslt/transform.c:904,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/transform.c:913,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/transform.c:910,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:890,1
    - Dst: xsltAddTextString
      Src: /src/libxslt/libxslt/transform.c:922,1
    - Dst: xmlNewCDataBlock
      Src: /src/libxslt/libxslt/transform.c:924,1
    - Dst: xsltAddTextString
      Src: /src/libxslt/libxslt/transform.c:933,1
    - Dst: xmlNewTextLen
      Src: /src/libxslt/libxslt/transform.c:935,1
    - Dst: xsltAddTextString
      Src: /src/libxslt/libxslt/transform.c:945,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:956,1
    - Dst: xsltAddChild
      Src: /src/libxslt/libxslt/transform.c:950,1
    - Dst: xmlNewTextLen
      Src: /src/libxslt/libxslt/transform.c:947,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 75
    argCount: 4
    argNames:
    - ctxt
    - target
    - string
    - noescape
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 961
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 961
    functionName: xsltCopyTextString
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltAddChild
    - xsltAddTextString
    - xmlHashLookup2
    - XSLT_TRACE
    - xmlStrlen
    - xmlNewTextLen
    - xsltGenericDebug
    - xmlNewCDataBlock
    - xsltTransformError
    linkageType: ''
    returnType: xmlNodePtr
    signature: "xmlNodePtr xsltCopyTextString(xsltTransformContextPtr ctxt, xmlNodePtr
      target,\t const xmlChar *string, int noescape) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltCopyTree
      Src: /src/libxslt/libxslt/transform.c:1428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 6
    argNames:
    - ctxt
    - invocNode
    - list
    - insert
    - isLRE
    - topElemVisited
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xmlNodePtr
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1438
      start: 1420
    functionDepth: 0
    functionLinenumber: 1420
    functionLinenumberEnd: 1438
    functionName: xsltCopyTreeList
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltCopyTree
    linkageType: ''
    returnType: xmlNodePtr
    signature: "static xmlNodePtr xsltCopyTreeList(xsltTransformContextPtr ctxt, xmlNodePtr
      invocNode,\t\t xmlNodePtr list,\t\t xmlNodePtr insert, int isLRE, int topElemVisited) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4533,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:4540,1
    - Dst: xsltPreCompEval
      Src: /src/libxslt/libxslt/transform.c:4544,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:4540,1
    - Dst: xmlXPathCastToString
      Src: /src/libxslt/libxslt/transform.c:4550,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4552,1
    - Dst: xsltCopyTextString
      Src: /src/libxslt/libxslt/transform.c:4559,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4562,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:4570,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:4570,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/transform.c:4577,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/transform.c:4579,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 4
    argNames:
    - ctxt
    - node
    - inst
    - castedComp
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 4580
      start: 4517
    functionDepth: 0
    functionLinenumber: 4517
    functionLinenumberEnd: 4580
    functionName: xsltValueOf
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltPreCompEval
    - xsltCopyTextString
    - XSLT_TRACE
    - xmlXPathFreeObject
    - xsltGenericDebug
    - xmlXPathCastToString
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: "void xsltValueOf(xsltTransformContextPtr ctxt, xmlNodePtr node,\t
      xmlNodePtr inst, xsltElemPreCompPtr castedComp) "
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4841,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4883,1
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxslt/libxslt/transform.c:4957,1
    - Dst: xsltParseStylesheetCallerParam
      Src: /src/libxslt/libxslt/transform.c:5011,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/transform.c:5042,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/transform.c:5049,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libxslt/transform.c:5109,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/transform.c:5040,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/transform.c:4903,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/transform.c:4906,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:4919,1
    - Dst: XSLT_IS_RES_TREE_FRAG
      Src: /src/libxslt/libxslt/transform.c:4943,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxslt/libxslt/transform.c:4966,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:4919,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/transform.c:5008,1
    - Dst: xslHandleDebugger
      Src: /src/libxslt/libxslt/transform.c:5030,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:5051,1
    - Dst: xsltDoSortFunction
      Src: /src/libxslt/libxslt/transform.c:5070,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4899,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/transform.c:5010,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/transform.c:5017,1
    - Dst: xsltParseStylesheetCallerParam
      Src: /src/libxslt/libxslt/transform.c:5043,1
    - Dst: xsltProcessOneNode
      Src: /src/libxslt/libxslt/transform.c:5098,1
    - Dst: xsltFreeStackElemList
      Src: /src/libxslt/libxslt/transform.c:5107,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:4850,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:4850,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:4888,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:4888,1
    - Dst: xsltPreCompEval
      Src: /src/libxslt/libxslt/transform.c:4892,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/transform.c:4973,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/transform.c:4973,1
    - Dst: IS_XSLT_REAL_NODE
      Src: /src/libxslt/libxslt/transform.c:4965,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/transform.c:4912,1
    - Dst: xslHandleDebugger
      Src: /src/libxslt/libxslt/transform.c:5000,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 161
    argCount: 4
    argNames:
    - ctxt
    - node
    - inst
    - castedComp
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 5122
      start: 4820
    functionDepth: 0
    functionLinenumber: 4820
    functionLinenumberEnd: 5122
    functionName: xsltApplyTemplates
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetCreate
    - xmlXPathFreeNodeSet
    - xsltPreCompEval
    - IS_XSLT_REAL_NODE
    - xsltDoSortFunction
    - IS_XSLT_NAME
    - XSLT_TRACE
    - xsltFreeStackElemList
    - xslHandleDebugger
    - xmlXPathFreeObject
    - xmlXPathNodeSetAddUnique
    - xsltProcessOneNode
    - IS_XSLT_ELEM
    - XSLT_IS_RES_TREE_FRAG
    - xsltGenericDebug
    - xsltParseStylesheetCallerParam
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: "void xsltApplyTemplates(xsltTransformContextPtr ctxt, xmlNodePtr node,\t
      xmlNodePtr inst, xsltElemPreCompPtr castedComp) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltApplyStylesheetInternal
      Src: /src/libxslt/libxslt/transform.c:6278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 6
    argNames:
    - style
    - doc
    - params
    - output
    - profile
    - userCtxt
    argTypes:
    - xsltStylesheetPtr
    - xmlDocPtr
    - char**
    - char*
    - FILE*
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 6281
      start: 6271
    functionDepth: 0
    functionLinenumber: 6271
    functionLinenumberEnd: 6281
    functionName: xsltApplyStylesheetUser
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltApplyStylesheetInternal
    linkageType: ''
    returnType: xmlDocPtr
    signature: 'xmlDocPtr xsltApplyStylesheetUser(xsltStylesheetPtr style, xmlDocPtr
      doc, const char **params, const char *output, FILE * profile, xsltTransformContextPtr
      userCtxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6415,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6436,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6455,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6461,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6397,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6403,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6421,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6439,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6464,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6412,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6418,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6430,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6424,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6442,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6467,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6394,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6400,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6406,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6409,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6433,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6449,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6452,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6427,1
    - Dst: xsltRegisterExtElement
      Src: /src/libxslt/libxslt/transform.c:6458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 6471
      start: 6391
    functionDepth: 0
    functionLinenumber: 6391
    functionLinenumberEnd: 6471
    functionName: xsltRegisterAllElement
    functionSourceFile: /src/libxslt/libxslt/transform.c
    functionUses: []
    functionsReached:
    - xsltRegisterExtElement
    linkageType: ''
    returnType: void
    signature: 'void xsltRegisterAllElement(xsltTransformContextPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/templates.c:67,1
    - Dst: xmlXPathEvalPredicate
      Src: /src/libxslt/libxslt/templates.c:86,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/templates.c:89,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/templates.c:87,1
    - Dst: xmlXPathCompiledEval
      Src: /src/libxslt/libxslt/templates.c:83,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/templates.c:89,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/templates.c:94,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/templates.c:94,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 4
    argNames:
    - ctxt
    - comp
    - nsList
    - nsNr
    argTypes:
    - xsltTransformContextPtr
    - xmlXPathCompExprPtr
    - xmlNsPtr*
    - int
    constantsTouched: []
    func_position:
      end: 109
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 109
    functionName: xsltEvalXPathPredicate
    functionSourceFile: /src/libxslt/libxslt/templates.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - XSLT_TRACE
    - xmlXPathFreeObject
    - xmlXPathEvalPredicate
    - xmlXPathCompiledEval
    - xsltTransformError
    linkageType: ''
    returnType: int
    signature: "int xsltEvalXPathPredicate(xsltTransformContextPtr ctxt, xmlXPathCompExprPtr
      comp,\t\t xmlNsPtr *nsList, int nsNr) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDocNode
      Src: /src/libxslt/libxslt/templates.c:231,1
    - Dst: xmlFreeNode
      Src: /src/libxslt/libxslt/templates.c:255,1
    - Dst: xmlNodeGetContent
      Src: /src/libxslt/libxslt/templates.c:253,1
    - Dst: xsltApplyOneTemplate
      Src: /src/libxslt/libxslt/templates.c:246,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/templates.c:234,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - ctxt
    - contextNode
    - inst
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 257
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 257
    functionName: xsltEvalTemplateString
    functionSourceFile: /src/libxslt/libxslt/templates.c
    functionUses: []
    functionsReached:
    - xsltApplyOneTemplate
    - xmlFreeNode
    - xmlNewDocNode
    - xmlNodeGetContent
    - xsltTransformError
    linkageType: ''
    returnType: xmlChar*
    signature: "xmlChar *xsltEvalTemplateString(xsltTransformContextPtr ctxt,\t\t
      xmlNodePtr contextNode,\t xmlNodePtr inst) "
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrncat
      Src: /src/libxslt/libxslt/templates.c:298,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/templates.c:329,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/templates.c:347,1
    - Dst: xmlStrcat
      Src: /src/libxslt/libxslt/templates.c:350,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/templates.c:376,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/templates.c:291,1
    - Dst: xmlXPathCtxtCompile
      Src: /src/libxslt/libxslt/templates.c:345,1
    - Dst: xsltEvalXPathStringNs
      Src: /src/libxslt/libxslt/templates.c:346,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/templates.c:318,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/templates.c:324,1
    - Dst: xmlStrcat
      Src: /src/libxslt/libxslt/templates.c:328,1
    - Dst: xmlGetNsList
      Src: /src/libxslt/libxslt/templates.c:338,1
    - Dst: xmlStrncat
      Src: /src/libxslt/libxslt/templates.c:359,1
    - Dst: xmlStrncat
      Src: /src/libxslt/libxslt/templates.c:371,1
    - Dst: xmlStrncat
      Src: /src/libxslt/libxslt/templates.c:303,1
    - Dst: xmlStrncat
      Src: /src/libxslt/libxslt/templates.c:320,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/templates.c:348,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/templates.c:364,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/templates.c:351,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 87
    argCount: 3
    argNames:
    - ctxt
    - str
    - inst
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 379
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 379
    functionName: xsltAttrTemplateValueProcessNode
    functionSourceFile: /src/libxslt/libxslt/templates.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrndup
    - xmlGetNsList
    - xmlXPathCtxtCompile
    - xmlStrncat
    - xsltTransformError
    - xmlXPathFreeCompExpr
    - xsltEvalXPathStringNs
    - xmlStrcat
    linkageType: ''
    returnType: xmlChar*
    signature: "xmlChar *xsltAttrTemplateValueProcessNode(xsltTransformContextPtr
      ctxt,\t const xmlChar *str, xmlNodePtr inst) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsltGetNsProp
      Src: /src/libxslt/libxslt/templates.c:422,1
    - Dst: xsltAttrTemplateValueProcessNode
      Src: /src/libxslt/libxslt/templates.c:432,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/templates.c:434,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/templates.c:438,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/templates.c:434,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 4
    argNames:
    - ctxt
    - inst
    - name
    - ns
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 440
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 440
    functionName: xsltEvalAttrValueTemplate
    functionSourceFile: /src/libxslt/libxslt/templates.c
    functionUses: []
    functionsReached:
    - xsltGetNsProp
    - xmlFree
    - XSLT_TRACE
    - xsltAttrTemplateValueProcessNode
    - xsltGenericDebug
    linkageType: ''
    returnType: xmlChar*
    signature: "xmlChar *xsltEvalAttrValueTemplate(xsltTransformContextPtr ctxt, xmlNodePtr
      inst,\t const xmlChar *name, const xmlChar *ns) "
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/templates.c:546,1
    - Dst: xsltGetNamespace
      Src: /src/libxslt/libxslt/templates.c:568,1
    - Dst: xmlDictOwns
      Src: /src/libxslt/libxslt/templates.c:614,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/templates.c:519,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/templates.c:529,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/templates.c:536,1
    - Dst: xmlFreeNodeList
      Src: /src/libxslt/libxslt/templates.c:554,1
    - Dst: xsltGetNamespace
      Src: /src/libxslt/libxslt/templates.c:562,1
    - Dst: xsltEvalAVT
      Src: /src/libxslt/libxslt/templates.c:590,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/templates.c:617,1
    - Dst: xmlNewNsProp
      Src: /src/libxslt/libxslt/templates.c:571,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/templates.c:622,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/templates.c:560,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/templates.c:602,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/templates.c:607,1
    - Dst: xmlNewText
      Src: /src/libxslt/libxslt/templates.c:579,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/templates.c:626,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/templates.c:538,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/templates.c:545,1
    - Dst: xmlNewNsProp
      Src: /src/libxslt/libxslt/templates.c:567,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/templates.c:597,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 101
    argCount: 3
    argNames:
    - ctxt
    - target
    - attr
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 632
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 632
    functionName: xsltAttrTemplateProcess
    functionSourceFile: /src/libxslt/libxslt/templates.c
    functionUses: []
    functionsReached:
    - xmlFreeNodeList
    - xmlDictLookup
    - xmlDictOwns
    - xmlNewText
    - xmlStrdup
    - xmlStrEqual
    - xsltEvalAVT
    - xsltTransformError
    - xmlNewNsProp
    - xsltGetNamespace
    linkageType: ''
    returnType: xmlAttrPtr
    signature: "xmlAttrPtr xsltAttrTemplateProcess(xsltTransformContextPtr ctxt, xmlNodePtr
      target,\t xmlAttrPtr attr) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - node
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 872
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 872
    functionName: xsltTemplateProcess
    functionSourceFile: /src/libxslt/libxslt/templates.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNodePtr*
    signature: 'xmlNodePtr *xsltTemplateProcess(xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED,
      xmlNodePtr node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/templates.c:136,1
    - Dst: xmlXPathCompiledEval
      Src: /src/libxslt/libxslt/templates.c:152,1
    - Dst: xmlXPathConvertString
      Src: /src/libxslt/libxslt/templates.c:155,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/templates.c:160,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/templates.c:163,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/templates.c:168,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/templates.c:168,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 4
    argNames:
    - ctxt
    - comp
    - nsNr
    - nsList
    argTypes:
    - xsltTransformContextPtr
    - xmlXPathCompExprPtr
    - int
    - xmlNsPtr*
    constantsTouched: []
    func_position:
      end: 178
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 178
    functionName: xsltEvalXPathStringNs
    functionSourceFile: /src/libxslt/libxslt/templates.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - XSLT_TRACE
    - xmlXPathFreeObject
    - xmlXPathConvertString
    - xmlXPathCompiledEval
    - xsltTransformError
    linkageType: ''
    returnType: xmlChar*
    signature: "xmlChar *xsltEvalXPathStringNs(xsltTransformContextPtr ctxt, xmlXPathCompExprPtr
      comp,\t int nsNr, xmlNsPtr *nsList) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltEvalXPathStringNs
      Src: /src/libxslt/libxslt/templates.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ctxt
    - comp
    argTypes:
    - xsltTransformContextPtr
    - xmlXPathCompExprPtr
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: xsltEvalXPathString
    functionSourceFile: /src/libxslt/libxslt/templates.c
    functionUses: []
    functionsReached:
    - xsltEvalXPathStringNs
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xsltEvalXPathString(xsltTransformContextPtr ctxt, xmlXPathCompExprPtr
      comp) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltAttrTemplateValueProcessNode
      Src: /src/libxslt/libxslt/templates.c:393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ctxt
    - str
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: xsltAttrTemplateValueProcess
    functionSourceFile: /src/libxslt/libxslt/templates.c
    functionUses: []
    functionsReached:
    - xsltAttrTemplateValueProcessNode
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xsltAttrTemplateValueProcess(xsltTransformContextPtr ctxt,
      const xmlChar *str) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsltGetNsProp
      Src: /src/libxslt/libxslt/templates.c:467,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/templates.c:476,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/templates.c:480,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/templates.c:479,1
    - Dst: xmlStrchr
      Src: /src/libxslt/libxslt/templates.c:474,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 5
    argNames:
    - style
    - inst
    - name
    - ns
    - found
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    - xmlChar*
    - xmlChar*
    - int*
    constantsTouched: []
    func_position:
      end: 482
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 482
    functionName: xsltEvalStaticAttrValueTemplate
    functionSourceFile: /src/libxslt/libxslt/templates.c
    functionUses: []
    functionsReached:
    - xsltGetNsProp
    - xmlStrchr
    - xmlFree
    - xmlDictLookup
    linkageType: ''
    returnType: xmlChar*
    signature: "const xmlChar *xsltEvalStaticAttrValueTemplate(xsltStylesheetPtr style,
      xmlNodePtr inst,\t\t\tconst xmlChar *name, const xmlChar *ns, int *found) "
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/templates.c:685,1
    - Dst: xmlNewDocProp
      Src: /src/libxslt/libxslt/templates.c:763,1
    - Dst: xmlSetNsProp
      Src: /src/libxslt/libxslt/templates.c:757,1
    - Dst: xmlDictOwns
      Src: /src/libxslt/libxslt/templates.c:833,1
    - Dst: xmlIsID
      Src: /src/libxslt/libxslt/templates.c:840,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/templates.c:679,1
    - Dst: xsltApplyAttributeSet
      Src: /src/libxslt/libxslt/templates.c:681,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/templates.c:686,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/templates.c:731,1
    - Dst: xmlNewText
      Src: /src/libxslt/libxslt/templates.c:798,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/templates.c:837,1
    - Dst: xmlAddID
      Src: /src/libxslt/libxslt/templates.c:841,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/templates.c:712,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/templates.c:724,1
    - Dst: xsltGetSpecialNamespace
      Src: /src/libxslt/libxslt/templates.c:742,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/templates.c:788,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/templates.c:820,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/templates.c:825,1
    - Dst: xsltApplyAttributeSet
      Src: /src/libxslt/libxslt/templates.c:688,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/templates.c:733,1
    - Dst: xsltGetNamespace
      Src: /src/libxslt/libxslt/templates.c:745,1
    - Dst: xsltEvalAVT
      Src: /src/libxslt/libxslt/templates.c:808,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/templates.c:815,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/templates.c:784,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 128
    argCount: 3
    argNames:
    - ctxt
    - target
    - attrs
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 854
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 854
    functionName: xsltAttrListTemplateProcess
    functionSourceFile: /src/libxslt/libxslt/templates.c
    functionUses: []
    functionsReached:
    - xmlAddID
    - xmlDictLookup
    - xmlDictOwns
    - xmlSetNsProp
    - xmlNewText
    - xmlStrdup
    - xsltApplyAttributeSet
    - xmlStrEqual
    - xmlNewDocProp
    - xsltEvalAVT
    - xmlIsID
    - xsltGetSpecialNamespace
    - xsltTransformError
    - xsltGetNamespace
    linkageType: ''
    returnType: xmlAttrPtr
    signature: "xmlAttrPtr xsltAttrListTemplateProcess(xsltTransformContextPtr ctxt,\t
      xmlNodePtr target, xmlAttrPtr attrs) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltCompMatchAdd
      Src: /src/libxslt/libxslt/pattern.c:447,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/pattern.c:461,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:464,1
    - Dst: xmlStrcat
      Src: /src/libxslt/libxslt/pattern.c:462,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - ctxt
    - comp
    argTypes:
    - xsltParserContextPtr
    - xsltCompMatchPtr
    constantsTouched: []
    func_position:
      end: 470
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 470
    functionName: xsltReverseCompMatch
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlFree
    - xmlStrcat
    - xsltCompMatchAdd
    linkageType: ''
    returnType: void
    signature: 'static void xsltReverseCompMatch(xsltParserContextPtr ctxt, xsltCompMatchPtr
      comp) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/pattern.c:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: xmlXPathFreeObjectWrapper
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeObject
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathFreeObjectWrapper(void *obj) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsltGetUTF8CharZ
      Src: /src/libxslt/libxslt/pattern.c:1228,1
    - Dst: xmlIsCharQ
      Src: /src/libxslt/libxslt/pattern.c:1233,1
    - Dst: xmlIsCharQ
      Src: /src/libxslt/libxslt/pattern.c:1229,1
    - Dst: xsltGetUTF8CharZ
      Src: /src/libxslt/libxslt/pattern.c:1231,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/pattern.c:1237,1
    - Dst: xsltGetUTF8CharZ
      Src: /src/libxslt/libxslt/pattern.c:1244,1
    - Dst: xmlIsCharQ
      Src: /src/libxslt/libxslt/pattern.c:1245,1
    - Dst: xsltGetUTF8CharZ
      Src: /src/libxslt/libxslt/pattern.c:1247,1
    - Dst: xmlIsCharQ
      Src: /src/libxslt/libxslt/pattern.c:1249,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/pattern.c:1253,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltParserContextPtr
    constantsTouched: []
    func_position:
      end: 1262
      start: 1218
    functionDepth: 0
    functionLinenumber: 1218
    functionLinenumberEnd: 1262
    functionName: xsltScanLiteral
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xmlIsCharQ
    - xsltGetUTF8CharZ
    - xmlStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xsltScanLiteral(xsltParserContextPtr ctxt) '
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/pattern.c:2291,1
    - Dst: xmlHashLookup3
      Src: /src/libxslt/libxslt/pattern.c:2337,1
    - Dst: xsltTestCompMatch
      Src: /src/libxslt/libxslt/pattern.c:2402,1
    - Dst: xsltTestCompMatch
      Src: /src/libxslt/libxslt/pattern.c:2342,1
    - Dst: xsltTestCompMatch
      Src: /src/libxslt/libxslt/pattern.c:2422,1
    - Dst: xsltTestCompMatch
      Src: /src/libxslt/libxslt/pattern.c:2438,1
    - Dst: xsltGetSourceNodeFlags
      Src: /src/libxslt/libxslt/pattern.c:2449,1
    - Dst: xsltTestCompMatch
      Src: /src/libxslt/libxslt/pattern.c:2456,1
    - Dst: xsltComputeAllKeys
      Src: /src/libxslt/libxslt/pattern.c:2474,1
    - Dst: xsltGetSourceNodeFlags
      Src: /src/libxslt/libxslt/pattern.c:2477,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/pattern.c:2486,1
    CyclomaticComplexity: 95
    EdgeCount: 95
    ICount: 137
    argCount: 3
    argNames:
    - ctxt
    - node
    - style
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 2491
      start: 2275
    functionDepth: 0
    functionLinenumber: 2275
    functionLinenumberEnd: 2491
    functionName: xsltGetTemplate
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xsltTestCompMatch
    - xsltComputeAllKeys
    - xsltNextImport
    - xsltGetSourceNodeFlags
    - xmlHashLookup3
    linkageType: ''
    returnType: xsltTemplatePtr
    signature: "xsltTemplatePtr xsltGetTemplate(xsltTransformContextPtr ctxt, xmlNodePtr
      node,\t xsltStylesheetPtr style) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltCompilePatternInternal
      Src: /src/libxslt/libxslt/pattern.c:2008,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - pattern
    - doc
    - node
    - style
    - runtime
    argTypes:
    - xmlChar*
    - xmlDocPtr
    - xmlNodePtr
    - xsltStylesheetPtr
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 2009
      start: 2004
    functionDepth: 0
    functionLinenumber: 2004
    functionLinenumberEnd: 2009
    functionName: xsltCompilePattern
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xsltCompilePatternInternal
    linkageType: ''
    returnType: xsltCompMatchPtr
    signature: "xsltCompMatchPtr xsltCompilePattern(const xmlChar *pattern, xmlDocPtr
      doc,\t xmlNodePtr node, xsltStylesheetPtr style,\t\t xsltTransformContextPtr
      runtime) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeCompMatch
      Src: /src/libxslt/libxslt/pattern.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xsltCompMatchPtr
    constantsTouched: []
    func_position:
      end: 218
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 218
    functionName: xsltFreeCompMatchList
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xsltFreeCompMatch
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeCompMatchList(xsltCompMatchPtr comp) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltTestCompMatch
      Src: /src/libxslt/libxslt/pattern.c:1138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - ctxt
    - node
    - comp
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xsltCompMatchPtr
    constantsTouched: []
    func_position:
      end: 1144
      start: 1130
    functionDepth: 0
    functionLinenumber: 1130
    functionLinenumberEnd: 1144
    functionName: xsltTestCompMatchList
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xsltTestCompMatch
    linkageType: ''
    returnType: int
    signature: "int xsltTestCompMatchList(xsltTransformContextPtr ctxt, xmlNodePtr
      node,\t xsltCompMatchPtr comp) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_RUNTIME_EXTRA_LST
      Src: /src/libxslt/libxslt/pattern.c:1162,1
    - Dst: XSLT_RUNTIME_EXTRA
      Src: /src/libxslt/libxslt/pattern.c:1169,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/pattern.c:1165,1
    - Dst: XSLT_RUNTIME_EXTRA
      Src: /src/libxslt/libxslt/pattern.c:1168,1
    - Dst: XSLT_RUNTIME_EXTRA_LST
      Src: /src/libxslt/libxslt/pattern.c:1167,1
    - Dst: XSLT_RUNTIME_EXTRA_FREE
      Src: /src/libxslt/libxslt/pattern.c:1170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ctxt
    - comp
    argTypes:
    - xsltTransformContextPtr
    - xsltCompMatchPtr
    constantsTouched: []
    func_position:
      end: 1172
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1172
    functionName: xsltCompMatchClearCache
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - XSLT_RUNTIME_EXTRA_LST
    - xmlXPathFreeObject
    - XSLT_RUNTIME_EXTRA
    - XSLT_RUNTIME_EXTRA_FREE
    linkageType: ''
    returnType: void
    signature: 'void xsltCompMatchClearCache(xsltTransformContextPtr ctxt, xsltCompMatchPtr
      comp) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NXT
      Src: /src/libxslt/libxslt/pattern.c:1751,1
    - Dst: xsltCompileRelativePathPattern
      Src: /src/libxslt/libxslt/pattern.c:1769,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1766,1
    - Dst: xsltCompileRelativePathPattern
      Src: /src/libxslt/libxslt/pattern.c:1759,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1768,1
    - Dst: xsltCompileRelativePathPattern
      Src: /src/libxslt/libxslt/pattern.c:1772,1
    - Dst: xsltCompileRelativePathPattern
      Src: /src/libxslt/libxslt/pattern.c:1774,1
    - Dst: xsltScanNCName
      Src: /src/libxslt/libxslt/pattern.c:1777,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1779,1
    - Dst: xmlXPathIsNodeType
      Src: /src/libxslt/libxslt/pattern.c:1785,1
    - Dst: xsltCompileRelativePathPattern
      Src: /src/libxslt/libxslt/pattern.c:1796,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1787,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1798,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1792,1
    - Dst: xsltCompileRelativePathPattern
      Src: /src/libxslt/libxslt/pattern.c:1805,1
    - Dst: xsltCompileIdKeyPattern
      Src: /src/libxslt/libxslt/pattern.c:1786,1
    - Dst: NXT
      Src: /src/libxslt/libxslt/pattern.c:1791,1
    - Dst: xsltCompileRelativePathPattern
      Src: /src/libxslt/libxslt/pattern.c:1801,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 2
    argNames:
    - ctxt
    - novar
    argTypes:
    - xsltParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 1809
      start: 1748
    functionDepth: 0
    functionLinenumber: 1748
    functionLinenumberEnd: 1809
    functionName: xsltCompileLocationPathPattern
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xmlFree
    - NXT
    - xsltCompileIdKeyPattern
    - xsltCompileRelativePathPattern
    - xmlXPathIsNodeType
    - xsltTransformError
    - PUSH
    - xsltScanNCName
    linkageType: ''
    returnType: void
    signature: 'static void xsltCompileLocationPathPattern(xsltParserContextPtr ctxt,
      int novar) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1837,1
    - Dst: xsltNewParserContext
      Src: /src/libxslt/libxslt/pattern.c:1842,1
    - Dst: xsltNewCompMatch
      Src: /src/libxslt/libxslt/pattern.c:1877,1
    - Dst: xmlIsBlank_ch
      Src: /src/libxslt/libxslt/pattern.c:1850,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1873,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/pattern.c:1888,1
    - Dst: xmlGetNsList
      Src: /src/libxslt/libxslt/pattern.c:1894,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/pattern.c:1904,1
    - Dst: xsltCompileLocationPathPattern
      Src: /src/libxslt/libxslt/pattern.c:1913,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1915,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/pattern.c:1962,1
    - Dst: xsltReverseCompMatch
      Src: /src/libxslt/libxslt/pattern.c:1925,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1971,1
    - Dst: xsltFreeParserContext
      Src: /src/libxslt/libxslt/pattern.c:1977,1
    - Dst: xsltFreeCompMatchList
      Src: /src/libxslt/libxslt/pattern.c:1984,1
    - Dst: xsltFreeParserContext
      Src: /src/libxslt/libxslt/pattern.c:1982,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 133
    argCount: 6
    argNames:
    - pattern
    - doc
    - node
    - style
    - runtime
    - novar
    argTypes:
    - xmlChar*
    - xmlDocPtr
    - xmlNodePtr
    - xsltStylesheetPtr
    - xsltTransformContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 1986
      start: 1828
    functionDepth: 0
    functionLinenumber: 1828
    functionLinenumberEnd: 1986
    functionName: xsltCompilePatternInternal
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xsltReverseCompMatch
    - xmlStrndup
    - xmlGetNsList
    - xmlIsBlank_ch
    - xsltGenericDebug
    - xsltCompileLocationPathPattern
    - xsltNewParserContext
    - xsltNewCompMatch
    - xsltFreeCompMatchList
    - xsltFreeParserContext
    - xsltTransformError
    linkageType: ''
    returnType: xsltCompMatchPtr
    signature: "static xsltCompMatchPtr xsltCompilePatternInternal(const xmlChar *pattern,
      xmlDocPtr doc,\t xmlNodePtr node, xsltStylesheetPtr style,\t\t xsltTransformContextPtr
      runtime, int novar) "
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/pattern.c:2092,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/pattern.c:2094,1
    - Dst: xsltFreeCompMatch
      Src: /src/libxslt/libxslt/pattern.c:2128,1
    - Dst: xmlHashUpdateEntry3
      Src: /src/libxslt/libxslt/pattern.c:2174,1
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/pattern.c:2156,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:2057,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/pattern.c:2054,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:2208,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/pattern.c:2216,1
    - Dst: xsltFreeCompMatchList
      Src: /src/libxslt/libxslt/pattern.c:2211,1
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/pattern.c:2049,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:2070,1
    - Dst: xsltCompilePatternInternal
      Src: /src/libxslt/libxslt/pattern.c:2079,1
    - Dst: xsltFreeCompMatch
      Src: /src/libxslt/libxslt/pattern.c:2210,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxslt/libxslt/pattern.c:2065,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:2126,1
    - Dst: xmlHashAddEntry3
      Src: /src/libxslt/libxslt/pattern.c:2158,1
    - Dst: xmlHashAddEntry3
      Src: /src/libxslt/libxslt/pattern.c:2164,1
    - Dst: xmlHashLookup3
      Src: /src/libxslt/libxslt/pattern.c:2161,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/pattern.c:2220,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 119
    argCount: 4
    argNames:
    - style
    - cur
    - mode
    - modeURI
    argTypes:
    - xsltStylesheetPtr
    - xsltTemplatePtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2228
      start: 2028
    functionDepth: 0
    functionLinenumber: 2028
    functionLinenumberEnd: 2228
    functionName: xsltAddTemplate
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - xmlHashAddEntry2
    - xsltGenericDebug
    - xmlHashLookup2
    - xsltFreeCompMatch
    - xsltCompilePatternInternal
    - xmlHashCreate
    - xmlHashUpdateEntry3
    - xmlHashLookup3
    - xsltFreeCompMatchList
    - xmlHashAddEntry3
    - xsltTransformError
    linkageType: ''
    returnType: int
    signature: "int xsltAddTemplate(xsltStylesheetPtr style, xsltTemplatePtr cur,\t
      const xmlChar *mode, const xmlChar *modeURI) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:2234,1
    - Dst: xsltInitAllDocKeys
      Src: /src/libxslt/libxslt/pattern.c:2253,1
    - Dst: xsltNewDocument
      Src: /src/libxslt/libxslt/pattern.c:2249,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:2256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - ctxt
    - contextNode
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2262
      start: 2230
    functionDepth: 0
    functionLinenumber: 2230
    functionLinenumberEnd: 2262
    functionName: xsltComputeAllKeys
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xsltNewDocument
    - xsltTransformError
    - xsltInitAllDocKeys
    linkageType: ''
    returnType: int
    signature: 'static int xsltComputeAllKeys(xsltTransformContextPtr ctxt, xmlNodePtr
      contextNode) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:184,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:194,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:192,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:190,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:186,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/pattern.c:196,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:198,1
    - Dst: memset
      Src: /src/libxslt/libxslt/pattern.c:199,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:200,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xsltCompMatchPtr
    constantsTouched: []
    func_position:
      end: 201
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 201
    functionName: xsltFreeCompMatch
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlXPathFreeCompExpr
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeCompMatch(xsltCompMatchPtr comp) '
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:947,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/pattern.c:1013,1
    - Dst: LIBXML_DOCB_ENABLED
      Src: /src/libxslt/libxslt/pattern.c:992,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/pattern.c:1004,1
    - Dst: LIBXML_DOCB_ENABLED
      Src: /src/libxslt/libxslt/pattern.c:1035,1
    - Dst: xsltPatPushState
      Src: /src/libxslt/libxslt/pattern.c:1042,1
    - Dst: xsltPatPushState
      Src: /src/libxslt/libxslt/pattern.c:1048,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/pattern.c:1054,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/pattern.c:1061,1
    - Dst: xsltPatPushState
      Src: /src/libxslt/libxslt/pattern.c:1069,1
    - Dst: xsltTestCompMatchDirect
      Src: /src/libxslt/libxslt/pattern.c:1080,1
    - Dst: xsltTestPredicateMatch
      Src: /src/libxslt/libxslt/pattern.c:1085,1
    - Dst: xsltTestStepMatch
      Src: /src/libxslt/libxslt/pattern.c:1091,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/pattern.c:1115,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1102,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 126
    argCount: 5
    argNames:
    - ctxt
    - comp
    - matchNode
    - mode
    - modeURI
    argTypes:
    - xsltTransformContextPtr
    - xsltCompMatchPtr
    - xmlNodePtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1118
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 1118
    functionName: xsltTestCompMatch
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltPatPushState
    - LIBXML_DOCB_ENABLED
    - xmlStrEqual
    - xsltTestPredicateMatch
    - xsltTestCompMatchDirect
    - xsltTestStepMatch
    - xsltTransformError
    - fprintf
    linkageType: ''
    returnType: int
    signature: "static int xsltTestCompMatch(xsltTransformContextPtr ctxt, xsltCompMatchPtr
      comp,\t xmlNodePtr matchNode, const xmlChar *mode,\t\t const xmlChar *modeURI) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsltCompileStepPattern
      Src: /src/libxslt/libxslt/pattern.c:1709,1
    - Dst: xsltCompileStepPattern
      Src: /src/libxslt/libxslt/pattern.c:1719,1
    - Dst: NXT
      Src: /src/libxslt/libxslt/pattern.c:1714,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1721,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1715,1
    - Dst: xsltCompileStepPattern
      Src: /src/libxslt/libxslt/pattern.c:1724,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 3
    argNames:
    - ctxt
    - token
    - novar
    argTypes:
    - xsltParserContextPtr
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1734
      start: 1707
    functionDepth: 0
    functionLinenumber: 1707
    functionLinenumberEnd: 1734
    functionName: xsltCompileRelativePathPattern
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - NXT
    - xsltCompileStepPattern
    - PUSH
    linkageType: ''
    returnType: void
    signature: 'static void xsltCompileRelativePathPattern(xsltParserContextPtr ctxt,
      xmlChar *token, int novar) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/pattern.c:147,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:149,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:159,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/pattern.c:156,1
    - Dst: memset
      Src: /src/libxslt/libxslt/pattern.c:153,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 168
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 168
    functionName: xsltNewCompMatch
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltCompMatchPtr
    signature: 'static xsltCompMatchPtr xsltNewCompMatch(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - payload
    - data
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 246
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 246
    functionName: xsltNormalizeCompSteps
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xsltNormalizeCompSteps(void *payload, void *data, const xmlChar
      *name ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libxslt/libxslt/pattern.c:283,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltParserContextPtr
    constantsTouched: []
    func_position:
      end: 285
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 285
    functionName: xsltFreeParserContext
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeParserContext(xsltParserContextPtr ctxt) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_IS_RES_TREE_FRAG
      Src: /src/libxslt/libxslt/pattern.c:797,1
    - Dst: XSLT_RUNTIME_EXTRA
      Src: /src/libxslt/libxslt/pattern.c:848,1
    - Dst: xsltTestStepMatch
      Src: /src/libxslt/libxslt/pattern.c:842,1
    - Dst: XSLT_RUNTIME_EXTRA
      Src: /src/libxslt/libxslt/pattern.c:819,1
    - Dst: xsltTestStepMatch
      Src: /src/libxslt/libxslt/pattern.c:831,1
    - Dst: XSLT_RUNTIME_EXTRA
      Src: /src/libxslt/libxslt/pattern.c:855,1
    - Dst: XSLT_RUNTIME_EXTRA
      Src: /src/libxslt/libxslt/pattern.c:857,1
    - Dst: xsltTestStepMatch
      Src: /src/libxslt/libxslt/pattern.c:877,1
    - Dst: XSLT_RUNTIME_EXTRA
      Src: /src/libxslt/libxslt/pattern.c:902,1
    - Dst: XSLT_RUNTIME_EXTRA
      Src: /src/libxslt/libxslt/pattern.c:904,1
    - Dst: xsltEvalXPathPredicate
      Src: /src/libxslt/libxslt/pattern.c:912,1
    - Dst: XSLT_RUNTIME_EXTRA
      Src: /src/libxslt/libxslt/pattern.c:859,1
    - Dst: XSLT_RUNTIME_EXTRA
      Src: /src/libxslt/libxslt/pattern.c:903,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 95
    argCount: 5
    argNames:
    - ctxt
    - comp
    - node
    - step
    - sel
    argTypes:
    - xsltTransformContextPtr
    - xsltCompMatchPtr
    - xmlNodePtr
    - xsltStepOpPtr
    - xsltStepOpPtr
    constantsTouched: []
    func_position:
      end: 921
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 921
    functionName: xsltTestPredicateMatch
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - XSLT_IS_RES_TREE_FRAG
    - xsltTestStepMatch
    - xsltEvalXPathPredicate
    - XSLT_RUNTIME_EXTRA
    linkageType: ''
    returnType: int
    signature: 'static int xsltTestPredicateMatch(xsltTransformContextPtr ctxt, xsltCompMatchPtr
      comp, xmlNodePtr node, xsltStepOpPtr step, xsltStepOpPtr sel) '
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1559,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1580,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/pattern.c:1564,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1592,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1572,1
    - Dst: xsltScanNCName
      Src: /src/libxslt/libxslt/pattern.c:1618,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1687,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1689,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1691,1
    - Dst: xsltCompileIdKeyPattern
      Src: /src/libxslt/libxslt/pattern.c:1539,1
    - Dst: xsltScanNCName
      Src: /src/libxslt/libxslt/pattern.c:1553,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1587,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1669,1
    - Dst: SWAP
      Src: /src/libxslt/libxslt/pattern.c:1678,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1522,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1540,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/pattern.c:1605,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1576,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1566,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1599,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1615,1
    - Dst: xsltGetQNameURI
      Src: /src/libxslt/libxslt/pattern.c:1622,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1635,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1675,1
    - Dst: xsltScanNCName
      Src: /src/libxslt/libxslt/pattern.c:1517,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1525,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1529,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/pattern.c:1554,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1556,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/pattern.c:1607,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1610,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/pattern.c:1628,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1630,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/pattern.c:1674,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1685,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 143
    argCount: 3
    argNames:
    - ctxt
    - token
    - novar
    argTypes:
    - xsltParserContextPtr
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1692
      start: 1501
    functionDepth: 0
    functionLinenumber: 1501
    functionLinenumberEnd: 1692
    functionName: xsltCompileStepPattern
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrndup
    - xsltCompileIdKeyPattern
    - xmlStrdup
    - xsltGetQNameURI
    - xmlSearchNs
    - xmlStrEqual
    - xsltScanNCName
    - PUSH
    - SWAP
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'static void xsltCompileStepPattern(xsltParserContextPtr ctxt, xmlChar
      *token, int novar) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeCompMatchList
      Src: /src/libxslt/libxslt/pattern.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: xsltFreeCompMatchListEntry
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xsltFreeCompMatchList
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeCompMatchListEntry(void *payload, const xmlChar
      *name ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/pattern.c:261,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:263,1
    - Dst: memset
      Src: /src/libxslt/libxslt/pattern.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - style
    - ctxt
    argTypes:
    - xsltStylesheetPtr
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 271
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 271
    functionName: xsltNewParserContext
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - memset
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltParserContextPtr
    signature: 'static xsltParserContextPtr xsltNewParserContext(xsltStylesheetPtr
      style, xsltTransformContextPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xsltCompMatchPtr
    constantsTouched: []
    func_position:
      end: 400
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 400
    functionName: xsltSwapTopCompMatch
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xsltSwapTopCompMatch(xsltCompMatchPtr comp) '
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: LIBXML_DOCB_ENABLED
      Src: /src/libxslt/libxslt/pattern.c:636,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/pattern.c:679,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/pattern.c:671,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/pattern.c:651,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/pattern.c:661,1
    - Dst: xmlGetID
      Src: /src/libxslt/libxslt/pattern.c:690,1
    - Dst: xsltGetKey
      Src: /src/libxslt/libxslt/pattern.c:699,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/pattern.c:719,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/pattern.c:731,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:757,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 73
    argCount: 3
    argNames:
    - ctxt
    - node
    - step
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xsltStepOpPtr
    constantsTouched: []
    func_position:
      end: 764
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 764
    functionName: xsltTestStepMatch
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - LIBXML_DOCB_ENABLED
    - xmlGetID
    - xmlStrEqual
    - xsltGetKey
    - xsltTransformError
    linkageType: ''
    returnType: int
    signature: 'static int xsltTestStepMatch(xsltTransformContextPtr ctxt, xmlNodePtr
      node, xsltStepOpPtr step) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1324,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/pattern.c:1329,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1349,1
    - Dst: xsltScanLiteral
      Src: /src/libxslt/libxslt/pattern.c:1365,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1374,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1384,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1369,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1393,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1409,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1424,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1465,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1354,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/pattern.c:1356,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1376,1
    - Dst: xsltScanLiteral
      Src: /src/libxslt/libxslt/pattern.c:1382,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1386,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1411,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1430,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1452,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1462,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1470,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1340,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1331,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/pattern.c:1403,1
    - Dst: xsltScanLiteral
      Src: /src/libxslt/libxslt/pattern.c:1407,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1419,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/pattern.c:1426,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1441,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1447,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/pattern.c:1448,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1459,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/pattern.c:1437,1
    - Dst: xsltScanLiteral
      Src: /src/libxslt/libxslt/pattern.c:1338,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1342,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1347,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1358,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1367,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1391,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/pattern.c:1394,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1400,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:1416,1
    - Dst: PUSH
      Src: /src/libxslt/libxslt/pattern.c:1436,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 102
    argCount: 5
    argNames:
    - ctxt
    - name
    - aid
    - novar
    - axis
    argTypes:
    - xsltParserContextPtr
    - xmlChar*
    - int
    - int
    - xsltAxis
    constantsTouched: []
    func_position:
      end: 1477
      start: 1317
    functionDepth: 0
    functionLinenumber: 1317
    functionLinenumberEnd: 1477
    functionName: xsltCompileIdKeyPattern
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xsltScanLiteral
    - xmlFree
    - xmlStrEqual
    - xsltTransformError
    - PUSH
    linkageType: ''
    returnType: void
    signature: "static void xsltCompileIdKeyPattern(xsltParserContextPtr ctxt, xmlChar
      *name,\t\tint aid, int novar, xsltAxis axis) "
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/pattern.c:2513,1
    - Dst: xsltFreeCompMatchList
      Src: /src/libxslt/libxslt/pattern.c:2519,1
    - Dst: xsltFreeCompMatchList
      Src: /src/libxslt/libxslt/pattern.c:2521,1
    - Dst: xsltFreeCompMatchList
      Src: /src/libxslt/libxslt/pattern.c:2517,1
    - Dst: xsltFreeCompMatchList
      Src: /src/libxslt/libxslt/pattern.c:2515,1
    - Dst: xsltFreeCompMatchList
      Src: /src/libxslt/libxslt/pattern.c:2523,1
    - Dst: xsltFreeCompMatchList
      Src: /src/libxslt/libxslt/pattern.c:2525,1
    - Dst: xsltFreeCompMatchList
      Src: /src/libxslt/libxslt/pattern.c:2527,1
    - Dst: xsltFreeCompMatchList
      Src: /src/libxslt/libxslt/pattern.c:2529,1
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/pattern.c:2531,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 1
    argNames:
    - style
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 2532
      start: 2510
    functionDepth: 0
    functionLinenumber: 2510
    functionLinenumberEnd: 2532
    functionName: xsltFreeTemplateHashes
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    - xsltFreeCompMatchList
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeTemplateHashes(xsltStylesheetPtr style) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlRealloc
      Src: /src/libxslt/libxslt/pattern.c:306,1
    - Dst: xsltAllocateExtraCtxt
      Src: /src/libxslt/libxslt/pattern.c:325,1
    - Dst: xsltAllocateExtraCtxt
      Src: /src/libxslt/libxslt/pattern.c:327,1
    - Dst: xsltAllocateExtraCtxt
      Src: /src/libxslt/libxslt/pattern.c:329,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/pattern.c:309,1
    - Dst: xsltAllocateExtra
      Src: /src/libxslt/libxslt/pattern.c:332,1
    - Dst: xsltAllocateExtra
      Src: /src/libxslt/libxslt/pattern.c:334,1
    - Dst: xsltAllocateExtra
      Src: /src/libxslt/libxslt/pattern.c:336,1
    - Dst: xsltXPathCompileFlags
      Src: /src/libxslt/libxslt/pattern.c:345,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/pattern.c:348,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 6
    argNames:
    - ctxt
    - comp
    - op
    - value
    - value2
    - novar
    argTypes:
    - xsltParserContextPtr
    - xsltCompMatchPtr
    - xsltOp
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 356
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 356
    functionName: xsltCompMatchAdd
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xsltAllocateExtra
    - xmlRealloc
    - xsltXPathCompileFlags
    - xsltAllocateExtraCtxt
    - xsltTransformError
    - xsltGenericError
    linkageType: ''
    returnType: int
    signature: 'static int xsltCompMatchAdd(xsltParserContextPtr ctxt, xsltCompMatchPtr
      comp, xsltOp op, xmlChar * value, xmlChar * value2, int novar) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlRealloc
      Src: /src/libxslt/libxslt/pattern.c:485,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/pattern.c:499,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/pattern.c:488,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - ctxt
    - states
    - step
    - node
    argTypes:
    - xsltTransformContextPtr
    - xsltStepStates*
    - int
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 502
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 502
    functionName: xsltPatPushState
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xmlRealloc
    - xsltGenericError
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int xsltPatPushState(xsltTransformContextPtr ctxt, xsltStepStates
      *states, int step, xmlNodePtr node) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_IS_RES_TREE_FRAG
      Src: /src/libxslt/libxslt/pattern.c:534,1
    - Dst: XSLT_RUNTIME_EXTRA
      Src: /src/libxslt/libxslt/pattern.c:542,1
    - Dst: XSLT_RUNTIME_EXTRA_LST
      Src: /src/libxslt/libxslt/pattern.c:544,1
    - Dst: xmlXPathEval
      Src: /src/libxslt/libxslt/pattern.c:564,1
    - Dst: XSLT_RUNTIME_EXTRA
      Src: /src/libxslt/libxslt/pattern.c:541,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/pattern.c:574,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/pattern.c:584,1
    - Dst: XSLT_RUNTIME_EXTRA
      Src: /src/libxslt/libxslt/pattern.c:591,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/pattern.c:601,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/pattern.c:609,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/pattern.c:616,1
    - Dst: XSLT_RUNTIME_EXTRA_LST
      Src: /src/libxslt/libxslt/pattern.c:587,1
    - Dst: XSLT_RUNTIME_EXTRA
      Src: /src/libxslt/libxslt/pattern.c:589,1
    - Dst: XSLT_RUNTIME_EXTRA_FREE
      Src: /src/libxslt/libxslt/pattern.c:593,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 76
    argCount: 5
    argNames:
    - ctxt
    - comp
    - node
    - nsList
    - nsNr
    argTypes:
    - xsltTransformContextPtr
    - xsltCompMatchPtr
    - xmlNodePtr
    - xmlNsPtr*
    - int
    constantsTouched: []
    func_position:
      end: 618
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 618
    functionName: xsltTestCompMatchDirect
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - XSLT_RUNTIME_EXTRA
    - xmlXPathEval
    - XSLT_RUNTIME_EXTRA_LST
    - xmlXPathFreeObject
    - XSLT_RUNTIME_EXTRA_FREE
    - XSLT_IS_RES_TREE_FRAG
    linkageType: ''
    returnType: int
    signature: "static int xsltTestCompMatchDirect(xsltTransformContextPtr ctxt, xsltCompMatchPtr
      comp,\t xmlNodePtr node, xmlNsPtr *nsList, int nsNr) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsltGetUTF8CharZ
      Src: /src/libxslt/libxslt/pattern.c:1282,1
    - Dst: xmlIsBaseCharQ
      Src: /src/libxslt/libxslt/pattern.c:1286,1
    - Dst: xmlIsBaseCharQ
      Src: /src/libxslt/libxslt/pattern.c:1283,1
    - Dst: xmlIsIdeographicQ
      Src: /src/libxslt/libxslt/pattern.c:1283,1
    - Dst: xmlIsIdeographicQ
      Src: /src/libxslt/libxslt/pattern.c:1286,1
    - Dst: xmlIsDigitQ
      Src: /src/libxslt/libxslt/pattern.c:1287,1
    - Dst: xmlIsCombiningQ
      Src: /src/libxslt/libxslt/pattern.c:1290,1
    - Dst: xmlIsExtenderQ
      Src: /src/libxslt/libxslt/pattern.c:1291,1
    - Dst: xsltGetUTF8CharZ
      Src: /src/libxslt/libxslt/pattern.c:1293,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/pattern.c:1295,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltParserContextPtr
    constantsTouched: []
    func_position:
      end: 1298
      start: 1273
    functionDepth: 0
    functionLinenumber: 1273
    functionLinenumberEnd: 1298
    functionName: xsltScanNCName
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached:
    - xsltGetUTF8CharZ
    - xmlStrndup
    - xmlIsIdeographicQ
    - xmlIsExtenderQ
    - xmlIsBaseCharQ
    - xmlIsCombiningQ
    - xmlIsDigitQ
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xsltScanNCName(xsltParserContextPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 2502
      start: 2500
    functionDepth: 0
    functionLinenumber: 2500
    functionLinenumberEnd: 2502
    functionName: xsltCleanupTemplates
    functionSourceFile: /src/libxslt/libxslt/pattern.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xsltCleanupTemplates(xsltStylesheetPtr style ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashScan
      Src: /src/libxslt/libxslt/imports.c:48,1
    - Dst: xsltFixImportedCompSteps
      Src: /src/libxslt/libxslt/imports.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - master
    - style
    argTypes:
    - xsltStylesheetPtr
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: xsltFixImportedCompSteps
    functionSourceFile: /src/libxslt/libxslt/imports.c
    functionUses: []
    functionsReached:
    - xmlHashScan
    - xsltFixImportedCompSteps
    linkageType: ''
    returnType: void
    signature: "static void xsltFixImportedCompSteps(xsltStylesheetPtr master,\t\t\txsltStylesheetPtr
      style) "
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/imports.c:127,1
    - Dst: xmlNodeGetBase
      Src: /src/libxslt/libxslt/imports.c:134,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/imports.c:137,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/imports.c:129,1
    - Dst: xmlBuildURI
      Src: /src/libxslt/libxslt/imports.c:135,1
    - Dst: xsltCheckCycle
      Src: /src/libxslt/libxslt/imports.c:142,1
    - Dst: xsltGetDefaultSecurityPrefs
      Src: /src/libxslt/libxslt/imports.c:148,1
    - Dst: xsltCheckRead
      Src: /src/libxslt/libxslt/imports.c:152,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/imports.c:155,1
    - Dst: xsltDocDefaultLoader
      Src: /src/libxslt/libxslt/imports.c:162,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/imports.c:165,1
    - Dst: xsltFixImportedCompSteps
      Src: /src/libxslt/libxslt/imports.c:175,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/imports.c:184,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/imports.c:188,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/imports.c:186,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/libxslt/imports.c:179,1
    - Dst: xsltParseStylesheetImportedDoc
      Src: /src/libxslt/libxslt/imports.c:170,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 51
    argCount: 2
    argNames:
    - style
    - cur
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 191
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 191
    functionName: xsltParseStylesheetImport
    functionSourceFile: /src/libxslt/libxslt/imports.c
    functionUses: []
    functionsReached:
    - xsltDocDefaultLoader
    - xmlGetNsProp
    - xmlFree
    - xsltFixImportedCompSteps
    - xmlNodeGetBase
    - xsltParseStylesheetImportedDoc
    - xsltCheckRead
    - xmlFreeDoc
    - xsltCheckCycle
    - xsltTransformError
    - xsltGetDefaultSecurityPrefs
    - xmlBuildURI
    linkageType: ''
    returnType: int
    signature: 'int xsltParseStylesheetImport(xsltStylesheetPtr style, xmlNodePtr
      cur) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 309
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 309
    functionName: xsltNextImport
    functionSourceFile: /src/libxslt/libxslt/imports.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xsltStylesheetPtr
    signature: 'xsltStylesheetPtr xsltNextImport(xsltStylesheetPtr cur) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/imports.c:358,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/imports.c:371,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/imports.c:369,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/imports.c:361,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/imports.c:366,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/imports.c:379,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 382
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 382
    functionName: xsltFindElemSpaceHandling
    functionSourceFile: /src/libxslt/libxslt/imports.c
    functionUses: []
    functionsReached:
    - xmlHashLookup2
    - xmlStrEqual
    - xsltNextImport
    linkageType: ''
    returnType: int
    signature: 'int xsltFindElemSpaceHandling(xsltTransformContextPtr ctxt, xmlNodePtr
      node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/imports.c:70,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/imports.c:74,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/imports.c:86,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/imports.c:90,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/imports.c:75,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/imports.c:91,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - style
    - cur
    - URI
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 102
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 102
    functionName: xsltCheckCycle
    functionSourceFile: /src/libxslt/libxslt/imports.c
    functionUses: []
    functionsReached:
    - xsltTransformError
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xsltCheckCycle(xsltStylesheetPtr style, xmlNodePtr cur,
      const xmlChar *URI) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/imports.c:217,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/imports.c:219,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/imports.c:227,1
    - Dst: xmlNodeGetBase
      Src: /src/libxslt/libxslt/imports.c:224,1
    - Dst: xmlBuildURI
      Src: /src/libxslt/libxslt/imports.c:225,1
    - Dst: xsltCheckCycle
      Src: /src/libxslt/libxslt/imports.c:232,1
    - Dst: xsltLoadStyleDocument
      Src: /src/libxslt/libxslt/imports.c:235,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/imports.c:237,1
    - Dst: IS_XSLT_ELEM_FAST
      Src: /src/libxslt/libxslt/imports.c:242,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/imports.c:245,1
    - Dst: xsltParseStylesheetProcess
      Src: /src/libxslt/libxslt/imports.c:264,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/imports.c:281,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/imports.c:279,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/imports.c:277,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 2
    argNames:
    - style
    - cur
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 284
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 284
    functionName: xsltParseStylesheetInclude
    functionSourceFile: /src/libxslt/libxslt/imports.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetNsProp
    - xsltParseStylesheetProcess
    - xmlNodeGetBase
    - IS_XSLT_ELEM_FAST
    - xsltLoadStyleDocument
    - xsltCheckCycle
    - xsltTransformError
    - xmlBuildURI
    linkageType: ''
    returnType: int
    signature: 'int xsltParseStylesheetInclude(xsltStylesheetPtr style, xmlNodePtr
      cur) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/imports.c:330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 333
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 333
    functionName: xsltNeedElemSpaceHandling
    functionSourceFile: /src/libxslt/libxslt/imports.c
    functionUses: []
    functionsReached:
    - xsltNextImport
    linkageType: ''
    returnType: int
    signature: 'int xsltNeedElemSpaceHandling(xsltTransformContextPtr ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/imports.c:413,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/imports.c:418,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - ctxt
    - name
    - nameURI
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 421
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 421
    functionName: xsltFindTemplate
    functionSourceFile: /src/libxslt/libxslt/imports.c
    functionUses: []
    functionsReached:
    - xmlHashLookup2
    - xsltNextImport
    linkageType: ''
    returnType: xsltTemplatePtr
    signature: "xsltTemplatePtr xsltFindTemplate(xsltTransformContextPtr ctxt, const
      xmlChar *name,\t const xmlChar *nameURI) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsltInitGlobals
      Src: /src/libxslt/libxslt/security.c:75,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/security.c:77,1
    - Dst: memset
      Src: /src/libxslt/libxslt/security.c:83,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/security.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 85
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 85
    functionName: xsltNewSecurityPrefs
    functionSourceFile: /src/libxslt/libxslt/security.c
    functionUses: []
    functionsReached:
    - memset
    - xsltTransformError
    - xmlMalloc
    - xsltInitGlobals
    linkageType: ''
    returnType: xsltSecurityPrefsPtr
    signature: 'xsltSecurityPrefsPtr xsltNewSecurityPrefs(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltInitGlobals
      Src: /src/libxslt/libxslt/security.c:113,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 3
    argNames:
    - sec
    - option
    - func
    argTypes:
    - xsltSecurityPrefsPtr
    - xsltSecurityOption
    - xsltSecurityCheck
    constantsTouched: []
    func_position:
      end: 129
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 129
    functionName: xsltSetSecurityPrefs
    functionSourceFile: /src/libxslt/libxslt/security.c
    functionUses: []
    functionsReached:
    - xsltInitGlobals
    linkageType: ''
    returnType: int
    signature: 'int xsltSetSecurityPrefs(xsltSecurityPrefsPtr sec, xsltSecurityOption
      option, xsltSecurityCheck func) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: xsltGetDefaultSecurityPrefs
    functionSourceFile: /src/libxslt/libxslt/security.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xsltSecurityPrefsPtr
    signature: 'xsltSecurityPrefsPtr xsltGetDefaultSecurityPrefs(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - sec
    - ctxt
    argTypes:
    - xsltSecurityPrefsPtr
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: xsltSetCtxtSecurityPrefs
    functionSourceFile: /src/libxslt/libxslt/security.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xsltSetCtxtSecurityPrefs(xsltSecurityPrefsPtr sec,\t xsltTransformContextPtr
      ctxt) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xsltSecurityPrefsPtr
    - xsltTransformContextPtr
    - char*
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: xsltSecurityForbid
    functionSourceFile: /src/libxslt/libxslt/security.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xsltSecurityForbid(xsltSecurityPrefsPtr sec ATTRIBUTE_UNUSED,\t
      xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED,\t\t const char *value ATTRIBUTE_UNUSED) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xsltGetSecurityPrefs
      Src: /src/libxslt/libxslt/security.c:297,1
    - Dst: xsltCheckFilename
      Src: /src/libxslt/libxslt/security.c:310,1
    - Dst: xmlParserGetDirectory
      Src: /src/libxslt/libxslt/security.c:307,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/security.c:301,1
    - Dst: check
      Src: /src/libxslt/libxslt/security.c:299,1
    - Dst: xsltGetSecurityPrefs
      Src: /src/libxslt/libxslt/security.c:315,1
    - Dst: check
      Src: /src/libxslt/libxslt/security.c:318,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/security.c:320,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/security.c:323,1
    - Dst: xsltCheckWritePath
      Src: /src/libxslt/libxslt/security.c:327,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/security.c:331,1
    - Dst: mkdir
      Src: /src/libxslt/libxslt/security.c:329,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - sec
    - ctxt
    - path
    argTypes:
    - xsltSecurityPrefsPtr
    - xsltTransformContextPtr
    - char*
    constantsTouched: []
    func_position:
      end: 337
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 337
    functionName: xsltCheckWritePath
    functionSourceFile: /src/libxslt/libxslt/security.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltGetSecurityPrefs
    - xsltCheckWritePath
    - mkdir
    - check
    - xmlParserGetDirectory
    - xsltTransformError
    - xsltCheckFilename
    linkageType: ''
    returnType: int
    signature: "static int xsltCheckWritePath(xsltSecurityPrefsPtr sec,\t\t xsltTransformContextPtr
      ctxt,\t\t const char *path) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrstr
      Src: /src/libxslt/libxslt/security.c:424,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/security.c:429,1
    - Dst: check
      Src: /src/libxslt/libxslt/security.c:427,1
    - Dst: xmlParseURI
      Src: /src/libxslt/libxslt/security.c:437,1
    - Dst: xsltGetSecurityPrefs
      Src: /src/libxslt/libxslt/security.c:425,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/security.c:439,1
    - Dst: xsltGetSecurityPrefs
      Src: /src/libxslt/libxslt/security.c:450,1
    - Dst: check
      Src: /src/libxslt/libxslt/security.c:452,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/security.c:454,1
    - Dst: xmlFreeURI
      Src: /src/libxslt/libxslt/security.c:456,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/security.c:468,1
    - Dst: check
      Src: /src/libxslt/libxslt/security.c:466,1
    - Dst: xsltGetSecurityPrefs
      Src: /src/libxslt/libxslt/security.c:464,1
    - Dst: xmlFreeURI
      Src: /src/libxslt/libxslt/security.c:475,1
    - Dst: xmlFreeURI
      Src: /src/libxslt/libxslt/security.c:470,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 3
    argNames:
    - sec
    - ctxt
    - URL
    argTypes:
    - xsltSecurityPrefsPtr
    - xsltTransformContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 477
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 477
    functionName: xsltCheckRead
    functionSourceFile: /src/libxslt/libxslt/security.c
    functionUses: []
    functionsReached:
    - xmlParseURI
    - xmlFreeURI
    - xsltGetSecurityPrefs
    - check
    - xmlStrstr
    - xsltTransformError
    linkageType: ''
    returnType: int
    signature: "int xsltCheckRead(xsltSecurityPrefsPtr sec,\t xsltTransformContextPtr
      ctxt, const xmlChar *URL) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/security.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - sec
    argTypes:
    - xsltSecurityPrefsPtr
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: xsltFreeSecurityPrefs
    functionSourceFile: /src/libxslt/libxslt/security.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeSecurityPrefs(xsltSecurityPrefsPtr sec) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - sec
    argTypes:
    - xsltSecurityPrefsPtr
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: xsltSetDefaultSecurityPrefs
    functionSourceFile: /src/libxslt/libxslt/security.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xsltSetDefaultSecurityPrefs(xsltSecurityPrefsPtr sec) '
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 3
    argCount: 2
    argNames:
    - sec
    - option
    argTypes:
    - xsltSecurityPrefsPtr
    - xsltSecurityOption
    constantsTouched: []
    func_position:
      end: 157
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 157
    functionName: xsltGetSecurityPrefs
    functionSourceFile: /src/libxslt/libxslt/security.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xsltSecurityCheck
    signature: 'xsltSecurityCheck xsltGetSecurityPrefs(xsltSecurityPrefsPtr sec, xsltSecurityOption
      option) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xsltSecurityPrefsPtr
    - xsltTransformContextPtr
    - char*
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: xsltSecurityAllow
    functionSourceFile: /src/libxslt/libxslt/security.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xsltSecurityAllow(xsltSecurityPrefsPtr sec ATTRIBUTE_UNUSED,\t
      xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED,\t\t const char *value ATTRIBUTE_UNUSED) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseURI
      Src: /src/libxslt/libxslt/security.c:357,1
    - Dst: xsltCheckWritePath
      Src: /src/libxslt/libxslt/security.c:373,1
    - Dst: xmlCreateURI
      Src: /src/libxslt/libxslt/security.c:359,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/security.c:361,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/security.c:365,1
    - Dst: xsltCheckWritePath
      Src: /src/libxslt/libxslt/security.c:380,1
    - Dst: xmlFreeURI
      Src: /src/libxslt/libxslt/security.c:384,1
    - Dst: xsltGetSecurityPrefs
      Src: /src/libxslt/libxslt/security.c:391,1
    - Dst: check
      Src: /src/libxslt/libxslt/security.c:393,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/security.c:395,1
    - Dst: xmlFreeURI
      Src: /src/libxslt/libxslt/security.c:397,1
    - Dst: xmlFreeURI
      Src: /src/libxslt/libxslt/security.c:402,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 3
    argNames:
    - sec
    - ctxt
    - URL
    argTypes:
    - xsltSecurityPrefsPtr
    - xsltTransformContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 404
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 404
    functionName: xsltCheckWrite
    functionSourceFile: /src/libxslt/libxslt/security.c
    functionUses: []
    functionsReached:
    - xmlParseURI
    - xmlFreeURI
    - xsltGetSecurityPrefs
    - xmlCreateURI
    - xsltCheckWritePath
    - check
    - xmlStrdup
    - xsltTransformError
    linkageType: ''
    returnType: int
    signature: "int xsltCheckWrite(xsltSecurityPrefsPtr sec,\t xsltTransformContextPtr
      ctxt, const xmlChar *URL) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetFileAttributesA
      Src: /src/libxslt/libxslt/security.c:268,1
    - Dst: S_ISDIR
      Src: /src/libxslt/libxslt/security.c:280,1
    - Dst: stat
      Src: /src/libxslt/libxslt/security.c:276,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 286
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 286
    functionName: xsltCheckFilename
    functionSourceFile: /src/libxslt/libxslt/security.c
    functionUses: []
    functionsReached:
    - stat
    - GetFileAttributesA
    - S_ISDIR
    linkageType: ''
    returnType: int
    signature: 'static int xsltCheckFilename (const char *path) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/attrvt.c:71,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attrvt.c:73,1
    - Dst: memset
      Src: /src/libxslt/libxslt/attrvt.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - style
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 91
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 91
    functionName: xsltNewAttrVT
    functionSourceFile: /src/libxslt/libxslt/attrvt.c
    functionUses: []
    functionsReached:
    - memset
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltAttrVTPtr
    signature: 'static xsltAttrVTPtr xsltNewAttrVT(xsltStylesheetPtr style) '
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrncat
      Src: /src/libxslt/libxslt/attrvt.c:236,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/attrvt.c:273,1
    - Dst: xsltSetAttrVTsegment
      Src: /src/libxslt/libxslt/attrvt.c:292,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attrvt.c:283,1
    - Dst: xsltSetAttrVTsegment
      Src: /src/libxslt/libxslt/attrvt.c:299,1
    - Dst: xmlStrncat
      Src: /src/libxslt/libxslt/attrvt.c:315,1
    - Dst: xsltSetAttrVTsegment
      Src: /src/libxslt/libxslt/attrvt.c:333,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attrvt.c:341,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attrvt.c:356,1
    - Dst: xmlStrchr
      Src: /src/libxslt/libxslt/attrvt.c:196,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/attrvt.c:205,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/attrvt.c:200,1
    - Dst: xsltNewAttrVT
      Src: /src/libxslt/libxslt/attrvt.c:213,1
    - Dst: xmlGetNsList
      Src: /src/libxslt/libxslt/attrvt.c:218,1
    - Dst: xmlStrncat
      Src: /src/libxslt/libxslt/attrvt.c:242,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attrvt.c:293,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attrvt.c:266,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attrvt.c:300,1
    - Dst: xsltSetAttrVTsegment
      Src: /src/libxslt/libxslt/attrvt.c:246,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attrvt.c:306,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attrvt.c:320,1
    - Dst: xmlStrncat
      Src: /src/libxslt/libxslt/attrvt.c:329,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attrvt.c:358,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/attrvt.c:360,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attrvt.c:189,1
    - Dst: xmlStrchr
      Src: /src/libxslt/libxslt/attrvt.c:197,1
    - Dst: xmlStrncat
      Src: /src/libxslt/libxslt/attrvt.c:230,1
    - Dst: xsltXPathCompile
      Src: /src/libxslt/libxslt/attrvt.c:281,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 155
    argCount: 2
    argNames:
    - style
    - attr
    argTypes:
    - xsltStylesheetPtr
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 361
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 361
    functionName: xsltCompileAttr
    functionSourceFile: /src/libxslt/libxslt/attrvt.c
    functionUses: []
    functionsReached:
    - xsltNewAttrVT
    - xmlFree
    - xmlStrndup
    - xmlGetNsList
    - xmlStrchr
    - xmlStrncat
    - xsltSetAttrVTsegment
    - xsltGenericDebug
    - xmlXPathFreeCompExpr
    - xsltXPathCompile
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'void xsltCompileAttr(xsltStylesheetPtr style, xmlAttrPtr attr) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attrvt.c:108,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attrvt.c:116,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attrvt.c:119,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/attrvt.c:113,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/attrvt.c:110,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attrvt.c:120,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - avt
    argTypes:
    - xsltAttrVTPtr
    constantsTouched: []
    func_position:
      end: 121
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 121
    functionName: xsltFreeAttrVT
    functionSourceFile: /src/libxslt/libxslt/attrvt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathFreeCompExpr
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeAttrVT(xsltAttrVTPtr avt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlRealloc
      Src: /src/libxslt/libxslt/attrvt.c:156,1
    - Dst: memset
      Src: /src/libxslt/libxslt/attrvt.c:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - avt
    - val
    argTypes:
    - xsltAttrVTPtr
    - void*
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: xsltSetAttrVTsegment
    functionSourceFile: /src/libxslt/libxslt/attrvt.c
    functionUses: []
    functionsReached:
    - xmlRealloc
    - memset
    linkageType: ''
    returnType: xsltAttrVTPtr
    signature: 'static xsltAttrVTPtr xsltSetAttrVTsegment(xsltAttrVTPtr avt, void
      *val) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeAttrVT
      Src: /src/libxslt/libxslt/attrvt.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - avt
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: xsltFreeAVTList
    functionSourceFile: /src/libxslt/libxslt/attrvt.c
    functionUses: []
    functionsReached:
    - xsltFreeAttrVT
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeAVTList(void *avt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcat
      Src: /src/libxslt/libxslt/attrvt.c:388,1
    - Dst: xmlStrcat
      Src: /src/libxslt/libxslt/attrvt.c:394,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attrvt.c:395,1
    - Dst: xsltEvalXPathStringNs
      Src: /src/libxslt/libxslt/attrvt.c:391,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - ctxt
    - avt
    - node
    argTypes:
    - xsltTransformContextPtr
    - void*
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 404
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 404
    functionName: xsltEvalAVT
    functionSourceFile: /src/libxslt/libxslt/attrvt.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltEvalXPathStringNs
    - xmlStrcat
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xsltEvalAVT(xsltTransformContextPtr ctxt, void *avt, xmlNodePtr
      node) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/extra.c:58,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/extra.c:68,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/extra.c:62,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/extra.c:65,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/extra.c:60,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/extra.c:70,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/extra.c:72,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/extra.c:78,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/extra.c:82,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/extra.c:85,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/extra.c:87,1
    - Dst: xmlXPathDebugDumpObject
      Src: /src/libxslt/libxslt/extra.c:98,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/extra.c:104,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/extra.c:101,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/extra.c:93,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/extra.c:90,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 4
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 109
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 109
    functionName: xsltDebug
    functionSourceFile: /src/libxslt/libxslt/extra.c
    functionUses: []
    functionsReached:
    - xmlXPathDebugDumpObject
    - xsltGenericError
    linkageType: ''
    returnType: void
    signature: 'void xsltDebug(xsltTransformContextPtr ctxt, xmlNodePtr node ATTRIBUTE_UNUSED,
      xmlNodePtr inst ATTRIBUTE_UNUSED, xsltElemPreCompPtr comp ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltRegisterAllExtras
      Src: /src/libxslt/libxslt/extra.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: xsltRegisterExtras
    functionSourceFile: /src/libxslt/libxslt/extra.c
    functionUses: []
    functionsReached:
    - xsltRegisterAllExtras
    linkageType: ''
    returnType: void
    signature: 'void xsltRegisterExtras(xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libxslt/extra.c:167,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libxslt/extra.c:170,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libxslt/extra.c:173,1
    - Dst: xsltRegisterExtModuleElement
      Src: /src/libxslt/libxslt/extra.c:180,1
    - Dst: xsltRegisterExtModuleElement
      Src: /src/libxslt/libxslt/extra.c:176,1
    - Dst: xsltRegisterExtModuleElement
      Src: /src/libxslt/libxslt/extra.c:184,1
    - Dst: xsltRegisterExtModuleElement
      Src: /src/libxslt/libxslt/extra.c:188,1
    - Dst: xsltRegisterExtModuleElement
      Src: /src/libxslt/libxslt/extra.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 196
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 196
    functionName: xsltRegisterAllExtras
    functionSourceFile: /src/libxslt/libxslt/extra.c
    functionUses: []
    functionsReached:
    - xsltRegisterExtModuleFunction
    - xsltRegisterExtModuleElement
    linkageType: ''
    returnType: void
    signature: 'void xsltRegisterAllExtras (void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extra.c:130,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/extra.c:130,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extra.c:138,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/extra.c:138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 146
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 146
    functionName: xsltFunctionNodeSet
    functionSourceFile: /src/libxslt/libxslt/extra.c
    functionUses: []
    functionsReached:
    - xsltTransformError
    - xsltXPathGetTransformContext
    linkageType: ''
    returnType: void
    signature: 'void xsltFunctionNodeSet(xmlXPathParserContextPtr ctxt, int nargs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltGetNamespace
      Src: /src/libxslt/libxslt/namespaces.c:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - ctxt
    - cur
    - ns
    - out
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNsPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 692
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 692
    functionName: xsltGetPlainNamespace
    functionSourceFile: /src/libxslt/libxslt/namespaces.c
    functionUses: []
    functionsReached:
    - xsltGetNamespace
    linkageType: ''
    returnType: xmlNsPtr
    signature: 'xmlNsPtr xsltGetPlainNamespace(xsltTransformContextPtr ctxt, xmlNodePtr
      cur, xmlNsPtr ns, xmlNodePtr out) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/namespaces.c:116,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/namespaces.c:136,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/namespaces.c:139,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/namespaces.c:204,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/namespaces.c:208,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/namespaces.c:239,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/namespaces.c:248,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/namespaces.c:292,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/namespaces.c:109,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/namespaces.c:137,1
    - Dst: xsltNewNsAlias
      Src: /src/libxslt/libxslt/namespaces.c:186,1
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/namespaces.c:191,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/namespaces.c:202,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/namespaces.c:210,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/namespaces.c:245,1
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/namespaces.c:277,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/namespaces.c:279,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/namespaces.c:120,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/namespaces.c:215,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/namespaces.c:225,1
    - Dst: xmlHashAddEntry
      Src: /src/libxslt/libxslt/namespaces.c:283,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/namespaces.c:290,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/namespaces.c:118,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/namespaces.c:111,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/namespaces.c:115,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/namespaces.c:130,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/namespaces.c:132,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/namespaces.c:142,1
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/namespaces.c:186,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/namespaces.c:216,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/namespaces.c:222,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/namespaces.c:238,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 104
    argCount: 2
    argNames:
    - style
    - node
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 293
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 293
    functionName: xsltNamespaceAlias
    functionSourceFile: /src/libxslt/libxslt/namespaces.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetNsProp
    - XSLT_CCTXT
    - xmlHashCreate
    - xmlSearchNs
    - xmlStrEqual
    - xsltNewNsAlias
    - xmlHashAddEntry
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'void xsltNamespaceAlias(xsltStylesheetPtr style, xmlNodePtr node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewNs
      Src: /src/libxslt/libxslt/namespaces.c:817,1
    - Dst: xmlNewNs
      Src: /src/libxslt/libxslt/namespaces.c:819,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - elem
    - ns
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNsPtr
    constantsTouched: []
    func_position:
      end: 820
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 820
    functionName: xsltCopyNamespace
    functionSourceFile: /src/libxslt/libxslt/namespaces.c
    functionUses: []
    functionsReached:
    - xmlNewNs
    linkageType: ''
    returnType: xmlNsPtr
    signature: "xmlNsPtr xsltCopyNamespace(xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED,\t\t
      xmlNodePtr elem, xmlNsPtr ns) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/namespaces.c:48,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/namespaces.c:50,1
    - Dst: memset
      Src: /src/libxslt/libxslt/namespaces.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - cctxt
    argTypes:
    - xsltCompilerCtxtPtr
    constantsTouched: []
    func_position:
      end: 63
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 63
    functionName: xsltNewNsAlias
    functionSourceFile: /src/libxslt/libxslt/namespaces.c
    functionUses: []
    functionsReached:
    - memset
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltNsAliasPtr
    signature: 'static xsltNsAliasPtr xsltNewNsAlias(xsltCompilerCtxtPtr cctxt) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xsltGetSpecialNamespace
      Src: /src/libxslt/libxslt/namespaces.c:629,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/namespaces.c:642,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/namespaces.c:646,1
    - Dst: xsltGetSpecialNamespace
      Src: /src/libxslt/libxslt/namespaces.c:651,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/namespaces.c:659,1
    - Dst: xsltGetSpecialNamespace
      Src: /src/libxslt/libxslt/namespaces.c:668,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 4
    argNames:
    - ctxt
    - cur
    - ns
    - out
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNsPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 671
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 671
    functionName: xsltGetNamespace
    functionSourceFile: /src/libxslt/libxslt/namespaces.c
    functionUses: []
    functionsReached:
    - xsltGetSpecialNamespace
    - xmlSearchNs
    - xsltNextImport
    - xmlHashLookup
    linkageType: ''
    returnType: xmlNsPtr
    signature: "xmlNsPtr xsltGetNamespace(xsltTransformContextPtr ctxt, xmlNodePtr
      cur, xmlNsPtr ns,\t xmlNodePtr out) "
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/namespaces.c:419,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/namespaces.c:434,1
    - Dst: xmlSearchNsByHref
      Src: /src/libxslt/libxslt/namespaces.c:454,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/namespaces.c:476,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/namespaces.c:478,1
    - Dst: xmlSearchNsByHref
      Src: /src/libxslt/libxslt/namespaces.c:513,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/namespaces.c:365,1
    - Dst: xmlNewNs
      Src: /src/libxslt/libxslt/namespaces.c:405,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/namespaces.c:489,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/namespaces.c:479,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/namespaces.c:574,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/namespaces.c:576,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/namespaces.c:393,1
    - Dst: xmlSearchNsByHref
      Src: /src/libxslt/libxslt/namespaces.c:539,1
    - Dst: snprintf
      Src: /src/libxslt/libxslt/namespaces.c:573,1
    - Dst: xmlNewNs
      Src: /src/libxslt/libxslt/namespaces.c:583,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/namespaces.c:429,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/namespaces.c:433,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/namespaces.c:505,1
    - Dst: xmlNewNs
      Src: /src/libxslt/libxslt/namespaces.c:547,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/namespaces.c:487,1
    - Dst: xmlNewNs
      Src: /src/libxslt/libxslt/namespaces.c:554,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 128
    argCount: 5
    argNames:
    - ctxt
    - invocNode
    - nsName
    - nsPrefix
    - target
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlChar*
    - xmlChar*
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 588
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 588
    functionName: xsltGetSpecialNamespace
    functionSourceFile: /src/libxslt/libxslt/namespaces.c
    functionUses: []
    functionsReached:
    - xmlNewNs
    - snprintf
    - xmlSearchNsByHref
    - xmlSearchNs
    - xmlStrEqual
    - xsltTransformError
    linkageType: ''
    returnType: xmlNsPtr
    signature: "xmlNsPtr xsltGetSpecialNamespace(xsltTransformContextPtr ctxt, xmlNodePtr
      invocNode,\t\tconst xmlChar *nsName, const xmlChar *nsPrefix,\t\txmlNodePtr
      target) "
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/namespaces.c:742,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/namespaces.c:743,1
    - Dst: xmlNewNs
      Src: /src/libxslt/libxslt/namespaces.c:758,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/namespaces.c:747,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/namespaces.c:748,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/namespaces.c:769,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/namespaces.c:772,1
    - Dst: xmlNewNs
      Src: /src/libxslt/libxslt/namespaces.c:779,1
    - Dst: xmlNewNs
      Src: /src/libxslt/libxslt/namespaces.c:781,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 3
    argNames:
    - ctxt
    - node
    - cur
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNsPtr
    constantsTouched: []
    func_position:
      end: 794
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 794
    functionName: xsltCopyNamespaceList
    functionSourceFile: /src/libxslt/libxslt/namespaces.c
    functionUses: []
    functionsReached:
    - xmlHashLookup
    - xmlSearchNs
    - xmlStrEqual
    - xmlNewNs
    linkageType: ''
    returnType: xmlNsPtr
    signature: "xmlNsPtr xsltCopyNamespaceList(xsltTransformContextPtr ctxt, xmlNodePtr
      node,\t xmlNsPtr cur) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/namespaces.c:832,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - style
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 834
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 834
    functionName: xsltFreeNamespaceAliasHashes
    functionSourceFile: /src/libxslt/libxslt/namespaces.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeNamespaceAliasHashes(xsltStylesheetPtr style) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - xsltDocLoaderFunc
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: xsltSetLoaderFunc
    functionSourceFile: /src/libxslt/libxslt/documents.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xsltSetLoaderFunc(xsltDocLoaderFunc f) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_HAS_INTERNAL_NSMAP
      Src: /src/libxslt/libxslt/documents.c:223,1
    - Dst: xsltFreeDocumentKeys
      Src: /src/libxslt/libxslt/documents.c:240,1
    - Dst: XSLT_GET_INTERNAL_NSMAP
      Src: /src/libxslt/libxslt/documents.c:224,1
    - Dst: xsltRestoreDocumentNamespaces
      Src: /src/libxslt/libxslt/documents.c:238,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/libxslt/documents.c:242,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/documents.c:243,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - style
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 245
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 245
    functionName: xsltFreeStyleDocuments
    functionSourceFile: /src/libxslt/libxslt/documents.c
    functionUses: []
    functionsReached:
    - xmlFree
    - XSLT_GET_INTERNAL_NSMAP
    - xsltRestoreDocumentNamespaces
    - xmlFreeDoc
    - xsltFreeDocumentKeys
    - XSLT_HAS_INTERNAL_NSMAP
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeStyleDocuments(xsltStylesheetPtr style) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/documents.c:189,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/documents.c:191,1
    - Dst: memset
      Src: /src/libxslt/libxslt/documents.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - style
    - doc
    argTypes:
    - xsltStylesheetPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 202
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 202
    functionName: xsltNewStyleDocument
    functionSourceFile: /src/libxslt/libxslt/documents.c
    functionUses: []
    functionsReached:
    - memset
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltDocumentPtr
    signature: 'xsltDocumentPtr xsltNewStyleDocument(xsltStylesheetPtr style, xmlDocPtr
      doc) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xsltCheckRead
      Src: /src/libxslt/libxslt/documents.c:301,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/documents.c:317,1
    - Dst: xsltDocDefaultLoader
      Src: /src/libxslt/libxslt/documents.c:322,1
    - Dst: xmlXIncludeProcessFlags
      Src: /src/libxslt/libxslt/documents.c:331,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/documents.c:304,1
    - Dst: xmlXIncludeProcess
      Src: /src/libxslt/libxslt/documents.c:333,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/documents.c:336,1
    - Dst: xsltNeedElemSpaceHandling
      Src: /src/libxslt/libxslt/documents.c:344,1
    - Dst: xsltApplyStripSpaces
      Src: /src/libxslt/libxslt/documents.c:345,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxslt/libxslt/documents.c:345,1
    - Dst: xmlXPathOrderDocElems
      Src: /src/libxslt/libxslt/documents.c:347,1
    - Dst: xsltNewDocument
      Src: /src/libxslt/libxslt/documents.c:349,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 2
    argNames:
    - ctxt
    - URI
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 351
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 351
    functionName: xsltLoadDocument
    functionSourceFile: /src/libxslt/libxslt/documents.c
    functionUses: []
    functionsReached:
    - xsltDocDefaultLoader
    - xmlDocGetRootElement
    - xmlXIncludeProcess
    - xsltNeedElemSpaceHandling
    - xsltApplyStripSpaces
    - xmlXIncludeProcessFlags
    - xmlXPathOrderDocElems
    - xmlStrEqual
    - xsltCheckRead
    - xsltNewDocument
    - xsltTransformError
    linkageType: ''
    returnType: xsltDocumentPtr
    signature: 'xsltDocumentPtr xsltLoadDocument(xsltTransformContextPtr ctxt, const
      xmlChar *URI) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - doc
    argTypes:
    - xsltTransformContextPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 440
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 440
    functionName: xsltFindDocument
    functionSourceFile: /src/libxslt/libxslt/documents.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xsltDocumentPtr
    signature: 'xsltDocumentPtr xsltFindDocument (xsltTransformContextPtr ctxt, xmlDocPtr
      doc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/documents.c:150,1
    - Dst: XSLT_IS_RES_TREE_FRAG
      Src: /src/libxslt/libxslt/documents.c:159,1
    - Dst: memset
      Src: /src/libxslt/libxslt/documents.c:156,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/documents.c:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ctxt
    - doc
    argTypes:
    - xsltTransformContextPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 174
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 174
    functionName: xsltNewDocument
    functionSourceFile: /src/libxslt/libxslt/documents.c
    functionUses: []
    functionsReached:
    - XSLT_IS_RES_TREE_FRAG
    - memset
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltDocumentPtr
    signature: 'xsltDocumentPtr xsltNewDocument(xsltTransformContextPtr ctxt, xmlDocPtr
      doc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeDocumentKeys
      Src: /src/libxslt/libxslt/documents.c:261,1
    - Dst: xsltFreeDocumentKeys
      Src: /src/libxslt/libxslt/documents.c:270,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/libxslt/documents.c:263,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/libxslt/documents.c:272,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/documents.c:264,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/documents.c:273,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 275
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 275
    functionName: xsltFreeDocuments
    functionSourceFile: /src/libxslt/libxslt/documents.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeDoc
    - xsltFreeDocumentKeys
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeDocuments(xsltTransformContextPtr ctxt) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xsltGetDefaultSecurityPrefs
      Src: /src/libxslt/libxslt/documents.c:374,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/documents.c:394,1
    - Dst: xsltDocDefaultLoader
      Src: /src/libxslt/libxslt/documents.c:399,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/documents.c:381,1
    - Dst: xsltCheckRead
      Src: /src/libxslt/libxslt/documents.c:378,1
    - Dst: xsltNewStyleDocument
      Src: /src/libxslt/libxslt/documents.c:404,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/libxslt/documents.c:406,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - style
    - URI
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 408
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 408
    functionName: xsltLoadStyleDocument
    functionSourceFile: /src/libxslt/libxslt/documents.c
    functionUses: []
    functionsReached:
    - xsltDocDefaultLoader
    - xsltNewStyleDocument
    - xmlStrEqual
    - xsltCheckRead
    - xmlFreeDoc
    - xsltTransformError
    - xsltGetDefaultSecurityPrefs
    linkageType: ''
    returnType: xsltDocumentPtr
    signature: 'xsltDocumentPtr xsltLoadStyleDocument(xsltStylesheetPtr style, const
      xmlChar *URI) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxslt/libxslt/documents.c:68,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxslt/libxslt/documents.c:83,1
    - Dst: xmlDictFree
      Src: /src/libxslt/libxslt/documents.c:72,1
    - Dst: xmlDictReference
      Src: /src/libxslt/libxslt/documents.c:77,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/documents.c:79,1
    - Dst: xmlLoadExternalEntity
      Src: /src/libxslt/libxslt/documents.c:84,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxslt/libxslt/documents.c:86,1
    - Dst: xmlCtxtParseDocument
      Src: /src/libxslt/libxslt/documents.c:91,1
    - Dst: inputPush
      Src: /src/libxslt/libxslt/documents.c:93,1
    - Dst: xmlParseDocument
      Src: /src/libxslt/libxslt/documents.c:95,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxslt/libxslt/documents.c:107,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/libxslt/documents.c:102,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - URI
    - dict
    - options
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlChar*
    - xmlDictPtr
    - int
    - void*
    - xsltLoadType
    constantsTouched: []
    func_position:
      end: 110
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 110
    functionName: xsltDocDefaultLoaderFunc
    functionSourceFile: /src/libxslt/libxslt/documents.c
    functionUses: []
    functionsReached:
    - inputPush
    - xmlCtxtUseOptions
    - xmlFreeParserCtxt
    - xmlDictFree
    - xmlDictReference
    - xmlFreeDoc
    - xmlLoadExternalEntity
    - xsltGenericDebug
    - xmlParseDocument
    - xmlCtxtParseDocument
    - xmlNewParserCtxt
    linkageType: ''
    returnType: xmlDocPtr
    signature: "static xmlDocPtr xsltDocDefaultLoaderFunc(const xmlChar * URI, xmlDictPtr
      dict, int options, void *ctxt ATTRIBUTE_UNUSED,\t\t\t xsltLoadType type ATTRIBUTE_UNUSED) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsBaseCharQ
      Src: /src/libxslt/libxslt/numbers.c:125,1
    - Dst: xmlIsDigitQ
      Src: /src/libxslt/libxslt/numbers.c:126,1
    - Dst: xmlIsIdeographicQ
      Src: /src/libxslt/libxslt/numbers.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: xsltIsLetterDigit
    functionSourceFile: /src/libxslt/libxslt/numbers.c
    functionUses: []
    functionsReached:
    - xmlIsBaseCharQ
    - xmlIsIdeographicQ
    - xmlIsDigitQ
    linkageType: ''
    returnType: int
    signature: 'static int xsltIsLetterDigit(int val) '
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 163
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 163
    functionName: xsltIsDigitZero
    functionSourceFile: /src/libxslt/libxslt/numbers.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xsltIsDigitZero(int ch) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libxslt/numbers.c:111,1
    - Dst: xmlStrncmp
      Src: /src/libxslt/libxslt/numbers.c:120,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - utf1
    - utf2
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 121
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 121
    functionName: xsltUTF8Charcmp
    functionSourceFile: /src/libxslt/libxslt/numbers.c
    functionUses: []
    functionsReached:
    - xmlStrncmp
    - xmlUTF8Strsize
    linkageType: ''
    returnType: int
    signature: 'static int xsltUTF8Charcmp(xmlChar *utf1, xmlChar *utf2) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltNumberFormatDecimal
      Src: /src/libxslt/libxslt/numbers.c:264,1
    - Dst: fmod
      Src: /src/libxslt/libxslt/numbers.c:278,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:283,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - data
    - buffer
    - number
    - is_upper
    argTypes:
    - xsltNumberDataPtr
    - xmlBufferPtr
    - double
    - int
    constantsTouched: []
    func_position:
      end: 284
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 284
    functionName: xsltNumberFormatAlpha
    functionSourceFile: /src/libxslt/libxslt/numbers.c
    functionUses: []
    functionsReached:
    - xsltNumberFormatDecimal
    - fmod
    - xmlBufferCCat
    linkageType: ''
    returnType: void
    signature: "static void xsltNumberFormatAlpha(xsltNumberDataPtr data,\t\t xmlBufferPtr
      buffer,\t\t double number,\t\t int is_upper) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xsltIsLetterDigit
      Src: /src/libxslt/libxslt/numbers.c:378,1
    - Dst: xsltGetUTF8CharZ
      Src: /src/libxslt/libxslt/numbers.c:378,1
    - Dst: IS_DIGIT_ONE
      Src: /src/libxslt/libxslt/numbers.c:402,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/numbers.c:384,1
    - Dst: xsltGetUTF8CharZ
      Src: /src/libxslt/libxslt/numbers.c:401,1
    - Dst: IS_DIGIT_ZERO
      Src: /src/libxslt/libxslt/numbers.c:403,1
    - Dst: IS_DIGIT_ZERO
      Src: /src/libxslt/libxslt/numbers.c:405,1
    - Dst: xsltGetUTF8CharZ
      Src: /src/libxslt/libxslt/numbers.c:408,1
    - Dst: IS_DIGIT_ONE
      Src: /src/libxslt/libxslt/numbers.c:410,1
    - Dst: xsltGetUTF8CharZ
      Src: /src/libxslt/libxslt/numbers.c:413,1
    - Dst: xsltGetUTF8CharZ
      Src: /src/libxslt/libxslt/numbers.c:446,1
    - Dst: xsltIsLetterDigit
      Src: /src/libxslt/libxslt/numbers.c:444,1
    - Dst: xsltGetUTF8CharZ
      Src: /src/libxslt/libxslt/numbers.c:457,1
    - Dst: xsltIsLetterDigit
      Src: /src/libxslt/libxslt/numbers.c:453,1
    - Dst: xmlStrndup
      Src: /src/libxslt/libxslt/numbers.c:460,1
    - Dst: xsltGetUTF8CharZ
      Src: /src/libxslt/libxslt/numbers.c:424,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 83
    argCount: 2
    argNames:
    - format
    - tokens
    argTypes:
    - xmlChar*
    - xsltFormatPtr
    constantsTouched: []
    func_position:
      end: 462
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 462
    functionName: xsltNumberFormatTokenize
    functionSourceFile: /src/libxslt/libxslt/numbers.c
    functionUses: []
    functionsReached:
    - xmlStrndup
    - xsltGetUTF8CharZ
    - xsltIsLetterDigit
    - IS_DIGIT_ZERO
    - IS_DIGIT_ONE
    linkageType: ''
    returnType: void
    signature: "static void xsltNumberFormatTokenize(const xmlChar *format,\t\t\t
      xsltFormatPtr tokens) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltTestCompMatchList
      Src: /src/libxslt/libxslt/numbers.c:587,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/numbers.c:607,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/numbers.c:613,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 4
    argNames:
    - context
    - node
    - countPat
    - cur
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xsltCompMatchPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 615
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 615
    functionName: xsltTestCompMatchCount
    functionSourceFile: /src/libxslt/libxslt/numbers.c
    functionUses: []
    functionsReached:
    - xsltTestCompMatchList
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xsltTestCompMatchCount(xsltTransformContextPtr context,
      xmlNodePtr node, xsltCompMatchPtr countPat, xmlNodePtr cur) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xsltTestCompMatchList
      Src: /src/libxslt/libxslt/numbers.c:689,1
    - Dst: xsltTestCompMatchCount
      Src: /src/libxslt/libxslt/numbers.c:700,1
    - Dst: xsltTestCompMatchCount
      Src: /src/libxslt/libxslt/numbers.c:692,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 6
    argNames:
    - context
    - node
    - countPat
    - fromPat
    - array
    - max
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xsltCompMatchPtr
    - xsltCompMatchPtr
    - double*
    - int
    constantsTouched: []
    func_position:
      end: 724
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 724
    functionName: xsltNumberFormatGetMultipleLevel
    functionSourceFile: /src/libxslt/libxslt/numbers.c
    functionUses: []
    functionsReached:
    - xsltTestCompMatchList
    - xsltTestCompMatchCount
    linkageType: ''
    returnType: int
    signature: "static int xsltNumberFormatGetMultipleLevel(xsltTransformContextPtr
      context,\t\t\t\t xmlNodePtr node,\t\t\t\t xsltCompMatchPtr countPat,\t\t\t\t
      xsltCompMatchPtr fromPat,\t\t\t\t double *array,\t\t\t\t int max) "
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xsltNumberFormatTokenize
      Src: /src/libxslt/libxslt/numbers.c:778,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/numbers.c:817,1
    - Dst: xsltNumberFormatGetMultipleLevel
      Src: /src/libxslt/libxslt/numbers.c:834,1
    - Dst: xsltNumberFormatInsertNumbers
      Src: /src/libxslt/libxslt/numbers.c:841,1
    - Dst: xmlBufferFree
      Src: /src/libxslt/libxslt/numbers.c:875,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/numbers.c:792,1
    - Dst: xmlBufferCreate
      Src: /src/libxslt/libxslt/numbers.c:795,1
    - Dst: xsltNumberFormatInsertNumbers
      Src: /src/libxslt/libxslt/numbers.c:808,1
    - Dst: xsltNumberFormatInsertNumbers
      Src: /src/libxslt/libxslt/numbers.c:825,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/numbers.c:847,1
    - Dst: xsltNumberFormatInsertNumbers
      Src: /src/libxslt/libxslt/numbers.c:854,1
    - Dst: xsltNumberFormatGetValue
      Src: /src/libxslt/libxslt/numbers.c:803,1
    - Dst: xsltNumberFormatGetMultipleLevel
      Src: /src/libxslt/libxslt/numbers.c:818,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/numbers.c:831,1
    - Dst: xsltCompMatchClearCache
      Src: /src/libxslt/libxslt/numbers.c:868,1
    - Dst: xsltNumberFormatGetAnyLevel
      Src: /src/libxslt/libxslt/numbers.c:848,1
    - Dst: xmlBufferContent
      Src: /src/libxslt/libxslt/numbers.c:873,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/numbers.c:884,1
    - Dst: xsltNumberFormatTokenize
      Src: /src/libxslt/libxslt/numbers.c:791,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/numbers.c:786,1
    - Dst: xsltCopyTextString
      Src: /src/libxslt/libxslt/numbers.c:873,1
    - Dst: xsltCompMatchClearCache
      Src: /src/libxslt/libxslt/numbers.c:870,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/numbers.c:879,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/numbers.c:881,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 3
    argNames:
    - ctxt
    - data
    - node
    argTypes:
    - xsltTransformContextPtr
    - xsltNumberDataPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 886
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 886
    functionName: xsltNumberFormat
    functionSourceFile: /src/libxslt/libxslt/numbers.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltNumberFormatGetValue
    - xsltNumberFormatInsertNumbers
    - xsltNumberFormatGetMultipleLevel
    - xmlBufferCreate
    - xsltEvalAttrValueTemplate
    - xmlStrEqual
    - xmlBufferContent
    - xsltCompMatchClearCache
    - xsltNumberFormatGetAnyLevel
    - xsltCopyTextString
    - xsltNumberFormatTokenize
    - xmlBufferFree
    linkageType: ''
    returnType: void
    signature: "void xsltNumberFormat(xsltTransformContextPtr ctxt,\t\t xsltNumberDataPtr
      data,\t\t xmlNodePtr node) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/libxslt/libxslt/numbers.c:194,1
    - Dst: xsltCopyCharMultiByte
      Src: /src/libxslt/libxslt/numbers.c:204,1
    - Dst: fmod
      Src: /src/libxslt/libxslt/numbers.c:207,1
    - Dst: memcpy
      Src: /src/libxslt/libxslt/numbers.c:228,1
    - Dst: xsltCopyCharMultiByte
      Src: /src/libxslt/libxslt/numbers.c:222,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/numbers.c:234,1
    - Dst: xmlBufferCat
      Src: /src/libxslt/libxslt/numbers.c:236,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 7
    argNames:
    - buffer
    - number
    - digit_zero
    - width
    - digitsPerGroup
    - groupingCharacter
    - groupingCharacterLen
    argTypes:
    - xmlBufferPtr
    - double
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 237
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 237
    functionName: xsltNumberFormatDecimal
    functionSourceFile: /src/libxslt/libxslt/numbers.c
    functionUses: []
    functionsReached:
    - memcpy
    - fabs
    - xsltCopyCharMultiByte
    - fmod
    - xmlBufferCat
    - xsltGenericError
    linkageType: ''
    returnType: void
    signature: "static void xsltNumberFormatDecimal(xmlBufferPtr buffer,\t\t\tdouble
      number,\t\t\tint digit_zero,\t\t\tint width,\t\t\tint digitsPerGroup,\t\t\tint
      groupingCharacter,\t\t\tint groupingCharacterLen) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xsltNumberFormatDecimal
      Src: /src/libxslt/libxslt/numbers.c:297,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:316,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:308,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:320,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:312,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:324,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:328,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:332,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:336,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:340,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:344,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:348,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:356,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:352,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 4
    argNames:
    - data
    - buffer
    - number
    - is_upper
    argTypes:
    - xsltNumberDataPtr
    - xmlBufferPtr
    - double
    - int
    constantsTouched: []
    func_position:
      end: 359
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 359
    functionName: xsltNumberFormatRoman
    functionSourceFile: /src/libxslt/libxslt/numbers.c
    functionUses: []
    functionsReached:
    - xsltNumberFormatDecimal
    - xmlBufferCCat
    linkageType: ''
    returnType: void
    signature: "static void xsltNumberFormatRoman(xsltNumberDataPtr data,\t\t xmlBufferPtr
      buffer,\t\t double number,\t\t int is_upper) "
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferCat
      Src: /src/libxslt/libxslt/numbers.c:479,1
    - Dst: floor
      Src: /src/libxslt/libxslt/numbers.c:485,1
    - Dst: xmlBufferCat
      Src: /src/libxslt/libxslt/numbers.c:525,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/numbers.c:496,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:527,1
    - Dst: xmlXPathIsInf
      Src: /src/libxslt/libxslt/numbers.c:530,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:532,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:535,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libxslt/numbers.c:538,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:539,1
    - Dst: xsltNumberFormatAlpha
      Src: /src/libxslt/libxslt/numbers.c:544,1
    - Dst: xsltNumberFormatAlpha
      Src: /src/libxslt/libxslt/numbers.c:547,1
    - Dst: xsltNumberFormatDecimal
      Src: /src/libxslt/libxslt/numbers.c:557,1
    - Dst: xsltNumberFormatRoman
      Src: /src/libxslt/libxslt/numbers.c:550,1
    - Dst: IS_DIGIT_ZERO
      Src: /src/libxslt/libxslt/numbers.c:556,1
    - Dst: xmlBufferCat
      Src: /src/libxslt/libxslt/numbers.c:576,1
    - Dst: xsltNumberFormatRoman
      Src: /src/libxslt/libxslt/numbers.c:553,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 48
    argCount: 5
    argNames:
    - data
    - numbers
    - numbers_max
    - tokens
    - buffer
    argTypes:
    - xsltNumberDataPtr
    - double*
    - int
    - xsltFormatPtr
    - xmlBufferPtr
    constantsTouched: []
    func_position:
      end: 578
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 578
    functionName: xsltNumberFormatInsertNumbers
    functionSourceFile: /src/libxslt/libxslt/numbers.c
    functionUses: []
    functionsReached:
    - floor
    - IS_DIGIT_ZERO
    - xmlXPathIsNaN
    - xmlXPathIsInf
    - xsltNumberFormatDecimal
    - xsltNumberFormatRoman
    - xsltNumberFormatAlpha
    - xmlBufferCCat
    - xmlBufferCat
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: "static void xsltNumberFormatInsertNumbers(xsltNumberDataPtr data,\t\t\t
      double *numbers,\t\t\t int numbers_max,\t\t\t xsltFormatPtr tokens,\t\t\t xmlBufferPtr
      buffer) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltTestCompMatchCount
      Src: /src/libxslt/libxslt/numbers.c:630,1
    - Dst: LIBXML_DOCB_ENABLED
      Src: /src/libxslt/libxslt/numbers.c:639,1
    - Dst: xsltTestCompMatchList
      Src: /src/libxslt/libxslt/numbers.c:633,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 5
    argNames:
    - context
    - node
    - countPat
    - fromPat
    - array
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xsltCompMatchPtr
    - xsltCompMatchPtr
    - double*
    constantsTouched: []
    func_position:
      end: 669
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 669
    functionName: xsltNumberFormatGetAnyLevel
    functionSourceFile: /src/libxslt/libxslt/numbers.c
    functionUses: []
    functionsReached:
    - xsltTestCompMatchList
    - xsltTestCompMatchCount
    - LIBXML_DOCB_ENABLED
    linkageType: ''
    returnType: int
    signature: "static int xsltNumberFormatGetAnyLevel(xsltTransformContextPtr context,\t\t\t
      xmlNodePtr node,\t\t\t xsltCompMatchPtr countPat,\t\t\t xsltCompMatchPtr fromPat,\t\t\t
      double *array) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferCreate
      Src: /src/libxslt/libxslt/numbers.c:737,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:741,1
    - Dst: xmlXPathEvalExpression
      Src: /src/libxslt/libxslt/numbers.c:745,1
    - Dst: xmlBufferCat
      Src: /src/libxslt/libxslt/numbers.c:742,1
    - Dst: xmlBufferCCat
      Src: /src/libxslt/libxslt/numbers.c:743,1
    - Dst: xmlBufferContent
      Src: /src/libxslt/libxslt/numbers.c:745,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/numbers.c:750,1
    - Dst: xmlBufferFree
      Src: /src/libxslt/libxslt/numbers.c:752,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - context
    - node
    - value
    - number
    argTypes:
    - xmlXPathContextPtr
    - xmlNodePtr
    - xmlChar*
    - double*
    constantsTouched: []
    func_position:
      end: 757
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 757
    functionName: xsltNumberFormatGetValue
    functionSourceFile: /src/libxslt/libxslt/numbers.c
    functionUses: []
    functionsReached:
    - xmlBufferCreate
    - xmlXPathFreeObject
    - xmlBufferContent
    - xmlBufferCCat
    - xmlXPathEvalExpression
    - xmlBufferCat
    - xmlBufferFree
    linkageType: ''
    returnType: int
    signature: "static int xsltNumberFormatGetValue(xmlXPathContextPtr context,\t\t\t
      xmlNodePtr node,\t\t\t const xmlChar *value,\t\t\t double *number) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: IS_SPECIAL
      Src: /src/libxslt/libxslt/numbers.c:907,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libxslt/numbers.c:931,1
    - Dst: xsltUTF8Charcmp
      Src: /src/libxslt/libxslt/numbers.c:918,1
    - Dst: xsltUTF8Charcmp
      Src: /src/libxslt/libxslt/numbers.c:923,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 3
    argNames:
    - self
    - format
    - info
    argTypes:
    - xsltDecimalFormatPtr
    - xmlChar**
    - xsltFormatNumberInfoPtr
    constantsTouched: []
    func_position:
      end: 936
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 936
    functionName: xsltFormatNumberPreSuffix
    functionSourceFile: /src/libxslt/libxslt/numbers.c
    functionUses: []
    functionsReached:
    - xmlUTF8Strsize
    - IS_SPECIAL
    - xsltUTF8Charcmp
    linkageType: ''
    returnType: int
    signature: 'static int xsltFormatNumberPreSuffix(xsltDecimalFormatPtr self, xmlChar
      **format, xsltFormatNumberInfoPtr info) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - out
    - val
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 99
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 99
    functionName: xsltCopyCharMultiByte
    functionSourceFile: /src/libxslt/libxslt/numbers.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xsltCopyCharMultiByte(xmlChar *out, int val) '
  - BBCount: 64
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrlen
      Src: /src/libxslt/libxslt/numbers.c:1006,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxslt/libxslt/numbers.c:1012,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libxslt/numbers.c:1050,1
    - Dst: xsltUTF8Charcmp
      Src: /src/libxslt/libxslt/numbers.c:1053,1
    - Dst: xsltUTF8Charcmp
      Src: /src/libxslt/libxslt/numbers.c:1068,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libxslt/numbers.c:1105,1
    - Dst: xsltUTF8Charcmp
      Src: /src/libxslt/libxslt/numbers.c:1114,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libxslt/numbers.c:1093,1
    - Dst: xsltFormatNumberPreSuffix
      Src: /src/libxslt/libxslt/numbers.c:1171,1
    - Dst: xsltUTF8Charcmp
      Src: /src/libxslt/libxslt/numbers.c:1214,1
    - Dst: IS_SPECIAL
      Src: /src/libxslt/libxslt/numbers.c:1222,1
    - Dst: floor
      Src: /src/libxslt/libxslt/numbers.c:1357,1
    - Dst: xmlBufferAdd
      Src: /src/libxslt/libxslt/numbers.c:1372,1
    - Dst: xmlBufferAdd
      Src: /src/libxslt/libxslt/numbers.c:1384,1
    - Dst: floor
      Src: /src/libxslt/libxslt/numbers.c:1352,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/numbers.c:1014,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/numbers.c:1007,1
    - Dst: xsltUTF8Charcmp
      Src: /src/libxslt/libxslt/numbers.c:1060,1
    - Dst: xmlStrncmp
      Src: /src/libxslt/libxslt/numbers.c:1073,1
    - Dst: xsltUTF8Charcmp
      Src: /src/libxslt/libxslt/numbers.c:1084,1
    - Dst: xsltUTF8Charcmp
      Src: /src/libxslt/libxslt/numbers.c:1120,1
    - Dst: xsltUTF8Charcmp
      Src: /src/libxslt/libxslt/numbers.c:1122,1
    - Dst: xsltUTF8Charcmp
      Src: /src/libxslt/libxslt/numbers.c:1134,1
    - Dst: xsltUTF8Charcmp
      Src: /src/libxslt/libxslt/numbers.c:1146,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libxslt/numbers.c:1149,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/numbers.c:1297,1
    - Dst: xsltNumberFormatDecimal
      Src: /src/libxslt/libxslt/numbers.c:1352,1
    - Dst: floor
      Src: /src/libxslt/libxslt/numbers.c:1392,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libxslt/numbers.c:1401,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libxslt/numbers.c:1226,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/numbers.c:1407,1
    - Dst: xsltNumberFormatDecimal
      Src: /src/libxslt/libxslt/numbers.c:1392,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libxslt/numbers.c:1316,1
    - Dst: xsltNumberFormatDecimal
      Src: /src/libxslt/libxslt/numbers.c:1357,1
    - Dst: xsltUTF8Charcmp
      Src: /src/libxslt/libxslt/numbers.c:1078,1
    - Dst: xsltUTF8Charcmp
      Src: /src/libxslt/libxslt/numbers.c:1103,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libxslt/numbers.c:1128,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libxslt/numbers.c:1140,1
    - Dst: xsltUTF8Charcmp
      Src: /src/libxslt/libxslt/numbers.c:1174,1
    - Dst: xmlUTF8Strloc
      Src: /src/libxslt/libxslt/numbers.c:1188,1
    - Dst: xmlStrncmp
      Src: /src/libxslt/libxslt/numbers.c:1262,1
    - Dst: xmlXPathIsInf
      Src: /src/libxslt/libxslt/numbers.c:1292,1
    - Dst: xmlStrcat
      Src: /src/libxslt/libxslt/numbers.c:1303,1
    - Dst: fabs
      Src: /src/libxslt/libxslt/numbers.c:1329,1
    - Dst: xmlBufferAdd
      Src: /src/libxslt/libxslt/numbers.c:1316,1
    - Dst: floor
      Src: /src/libxslt/libxslt/numbers.c:1382,1
    - Dst: xmlBufferAdd
      Src: /src/libxslt/libxslt/numbers.c:1402,1
    - Dst: xmlBufferContent
      Src: /src/libxslt/libxslt/numbers.c:1407,1
    - Dst: xmlStrncmp
      Src: /src/libxslt/libxslt/numbers.c:1260,1
    - Dst: xmlBufferAdd
      Src: /src/libxslt/libxslt/numbers.c:1378,1
    - Dst: xmlBufferFree
      Src: /src/libxslt/libxslt/numbers.c:1408,1
    - Dst: fmod
      Src: /src/libxslt/libxslt/numbers.c:1343,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/numbers.c:1016,1
    - Dst: xsltFormatNumberPreSuffix
      Src: /src/libxslt/libxslt/numbers.c:1037,1
    - Dst: xsltUTF8Charcmp
      Src: /src/libxslt/libxslt/numbers.c:1052,1
    - Dst: xmlUTF8Strpos
      Src: /src/libxslt/libxslt/numbers.c:1195,1
    - Dst: xsltFormatNumberPreSuffix
      Src: /src/libxslt/libxslt/numbers.c:1205,1
    - Dst: xsltUTF8Charcmp
      Src: /src/libxslt/libxslt/numbers.c:1213,1
    - Dst: xsltFormatNumberPreSuffix
      Src: /src/libxslt/libxslt/numbers.c:1240,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/numbers.c:1276,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/numbers.c:1295,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libxslt/numbers.c:1322,1
    - Dst: xmlBufferCreate
      Src: /src/libxslt/libxslt/numbers.c:1309,1
    - Dst: xsltGetUTF8Char
      Src: /src/libxslt/libxslt/numbers.c:1351,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libxslt/numbers.c:1379,1
    - Dst: xmlStrcat
      Src: /src/libxslt/libxslt/numbers.c:1301,1
    - Dst: floor
      Src: /src/libxslt/libxslt/numbers.c:1386,1
    - Dst: xmlStrlen
      Src: /src/libxslt/libxslt/numbers.c:1350,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libxslt/numbers.c:1385,1
    - Dst: xmlBufferAdd
      Src: /src/libxslt/libxslt/numbers.c:1323,1
    - Dst: pow
      Src: /src/libxslt/libxslt/numbers.c:1341,1
    - Dst: floor
      Src: /src/libxslt/libxslt/numbers.c:1370,1
    - Dst: fmod
      Src: /src/libxslt/libxslt/numbers.c:1388,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxslt/libxslt/numbers.c:1372,1
    CyclomaticComplexity: 115
    EdgeCount: 115
    ICount: 363
    argCount: 4
    argNames:
    - self
    - format
    - number
    - result
    argTypes:
    - xsltDecimalFormatPtr
    - xmlChar*
    - double
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1410
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 1410
    functionName: xsltFormatNumberConversion
    functionSourceFile: /src/libxslt/libxslt/numbers.c
    functionUses: []
    functionsReached:
    - xmlBufferCreate
    - xmlStrlen
    - xmlStrncmp
    - fmod
    - xsltFormatNumberPreSuffix
    - xmlStrcat
    - pow
    - xmlUTF8Strsize
    - floor
    - xsltNumberFormatDecimal
    - xmlStrdup
    - xmlBufferContent
    - xmlBufferFree
    - fabs
    - xmlXPathIsNaN
    - xmlXPathIsInf
    - xmlUTF8Strpos
    - IS_SPECIAL
    - xmlBufferAdd
    - xsltGetUTF8Char
    - xmlUTF8Strloc
    - xsltUTF8Charcmp
    - xsltTransformError
    linkageType: ''
    returnType: xmlXPathError
    signature: "xmlXPathError xsltFormatNumberConversion(xsltDecimalFormatPtr self,\t\t\t
      xmlChar *format,\t\t\t double number,\t\t\t xmlChar **result) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:1377,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:1380,1
    - Dst: xsltNewStackElem
      Src: /src/libxslt/libxslt/variables.c:1384,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/variables.c:1389,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/variables.c:1388,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/variables.c:1391,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/variables.c:1397,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/variables.c:1399,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:1401,1
    - Dst: xmlXPathNewString
      Src: /src/libxslt/libxslt/variables.c:1411,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 40
    argCount: 7
    argNames:
    - style
    - name
    - ns_uri
    - sel
    - tree
    - comp
    - value
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlNodePtr
    - xsltStylePreCompPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1414
      start: 1362
    functionDepth: 0
    functionLinenumber: 1362
    functionLinenumberEnd: 1414
    functionName: xsltRegisterGlobalVariable
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - xsltNewStackElem
    - xmlStrEqual
    - xmlXPathNewString
    - xsltGenericDebug
    - xsltTransformError
    linkageType: ''
    returnType: int
    signature: "static int xsltRegisterGlobalVariable(xsltStylesheetPtr style, const
      xmlChar *name,\t\t const xmlChar *ns_uri, const xmlChar *sel,\t\t xmlNodePtr
      tree, xsltStylePreCompPtr comp,\t\t const xmlChar *value) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltQuoteOneUserParam
      Src: /src/libxslt/libxslt/variables.c:1713,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 2
    argNames:
    - ctxt
    - params
    argTypes:
    - xsltTransformContextPtr
    - char**
    constantsTouched: []
    func_position:
      end: 1717
      start: 1702
    functionDepth: 0
    functionLinenumber: 1702
    functionLinenumberEnd: 1717
    functionName: xsltQuoteUserParams
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xsltQuoteOneUserParam
    linkageType: ''
    returnType: int
    signature: 'int xsltQuoteUserParams(xsltTransformContextPtr ctxt, const char **params) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsltCheckStackElem
      Src: /src/libxslt/libxslt/variables.c:1844,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:1855,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:1860,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:1860,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:1848,1
    - Dst: xsltBuildVariable
      Src: /src/libxslt/libxslt/variables.c:1867,1
    - Dst: xsltAddStackElem
      Src: /src/libxslt/libxslt/variables.c:1868,1
    - Dst: xsltFreeStackElem
      Src: /src/libxslt/libxslt/variables.c:1869,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - ctxt
    - castedComp
    - tree
    - isParam
    argTypes:
    - xsltTransformContextPtr
    - xsltStylePreCompPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 1873
      start: 1823
    functionDepth: 0
    functionLinenumber: 1823
    functionLinenumberEnd: 1873
    functionName: xsltRegisterVariable
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xsltAddStackElem
    - XSLT_TRACE
    - xsltBuildVariable
    - xsltGenericDebug
    - xsltFreeStackElem
    - xsltCheckStackElem
    - xsltTransformError
    linkageType: ''
    returnType: int
    signature: "static int xsltRegisterVariable(xsltTransformContextPtr ctxt,\t\t
      xsltStylePreCompPtr castedComp,\t\t xmlNodePtr tree, int isParam) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsltStackLookup
      Src: /src/libxslt/libxslt/variables.c:1941,1
    - Dst: xsltGlobalVariableLookup
      Src: /src/libxslt/libxslt/variables.c:1943,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:1947,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:1947,1
    - Dst: xsltEvalVariable
      Src: /src/libxslt/libxslt/variables.c:1950,1
    - Dst: xmlXPathObjectCopy
      Src: /src/libxslt/libxslt/variables.c:1954,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:1956,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:1956,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - ctxt
    - name
    - ns_uri
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1960
      start: 1933
    functionDepth: 0
    functionLinenumber: 1933
    functionLinenumberEnd: 1960
    functionName: xsltVariableLookup
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xsltStackLookup
    - XSLT_TRACE
    - xsltGlobalVariableLookup
    - xsltEvalVariable
    - xsltGenericDebug
    - xmlXPathObjectCopy
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: "xmlXPathObjectPtr xsltVariableLookup(xsltTransformContextPtr ctxt,
      const xmlChar *name,\t\t const xmlChar *ns_uri) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/variables.c:2242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 2243
      start: 2240
    functionDepth: 0
    functionLinenumber: 2240
    functionLinenumberEnd: 2243
    functionName: xsltFreeGlobalVariables
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeGlobalVariables(xsltTransformContextPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/variables.c:541,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:543,1
    - Dst: memset
      Src: /src/libxslt/libxslt/variables.c:547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - elem
    argTypes:
    - xsltStackElemPtr
    constantsTouched: []
    func_position:
      end: 555
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 555
    functionName: xsltCopyStackElem
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - memset
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltStackElemPtr
    signature: 'static xsltStackElemPtr xsltCopyStackElem(xsltStackElemPtr elem) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:1269,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:1269,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:1281,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/variables.c:1294,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:1281,1
    - Dst: xsltCopyStackElem
      Src: /src/libxslt/libxslt/variables.c:1298,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxslt/libxslt/variables.c:1299,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/variables.c:1301,1
    - Dst: xsltFreeStackElem
      Src: /src/libxslt/libxslt/variables.c:1303,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:1318,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/variables.c:1326,1
    - Dst: xsltEvalGlobalVariable
      Src: /src/libxslt/libxslt/variables.c:1338,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 1345
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1345
    functionName: xsltEvalGlobalVariables
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xmlHashAddEntry2
    - xsltNextImport
    - xmlHashLookup2
    - XSLT_TRACE
    - xsltEvalGlobalVariable
    - xsltFreeStackElem
    - xsltCopyStackElem
    - xsltGenericDebug
    - xmlGenericError
    - xsltTransformError
    linkageType: ''
    returnType: int
    signature: 'int xsltEvalGlobalVariables(xsltTransformContextPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltEvalOneUserParam
      Src: /src/libxslt/libxslt/variables.c:1683,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 2
    argNames:
    - ctxt
    - params
    argTypes:
    - xsltTransformContextPtr
    - char**
    constantsTouched: []
    func_position:
      end: 1687
      start: 1672
    functionDepth: 0
    functionLinenumber: 1672
    functionLinenumberEnd: 1687
    functionName: xsltEvalUserParams
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xsltEvalOneUserParam
    linkageType: ''
    returnType: int
    signature: 'int xsltEvalUserParams(xsltTransformContextPtr ctxt, const char **params) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:1790,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:1790,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:1793,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:1795,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:1793,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:1795,1
    - Dst: xsltNewStackElem
      Src: /src/libxslt/libxslt/variables.c:1798,1
    - Dst: xsltEvalVariable
      Src: /src/libxslt/libxslt/variables.c:1806,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - ctxt
    - castedComp
    - tree
    argTypes:
    - xsltTransformContextPtr
    - xsltStylePreCompPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1810
      start: 1776
    functionDepth: 0
    functionLinenumber: 1776
    functionLinenumberEnd: 1810
    functionName: xsltBuildVariable
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - XSLT_TRACE
    - xsltEvalVariable
    - xsltNewStackElem
    linkageType: ''
    returnType: xsltStackElemPtr
    signature: "static xsltStackElemPtr xsltBuildVariable(xsltTransformContextPtr
      ctxt,\t\t xsltStylePreCompPtr castedComp,\t\t xmlNodePtr tree) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/variables.c:1898,1
    - Dst: xsltEvalGlobalVariable
      Src: /src/libxslt/libxslt/variables.c:1916,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:1901,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:1912,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:1901,1
    - Dst: xmlXPathObjectCopy
      Src: /src/libxslt/libxslt/variables.c:1919,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - ctxt
    - name
    - ns_uri
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1920
      start: 1886
    functionDepth: 0
    functionLinenumber: 1886
    functionLinenumberEnd: 1920
    functionName: xsltGlobalVariableLookup
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xmlHashLookup2
    - xsltEvalGlobalVariable
    - XSLT_TRACE
    - xsltGenericDebug
    - xmlXPathObjectCopy
    - xsltTransformError
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: "static xmlXPathObjectPtr xsltGlobalVariableLookup(xsltTransformContextPtr
      ctxt, const xmlChar *name,\t\t const xmlChar *ns_uri) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsltStylePreCompute
      Src: /src/libxslt/libxslt/variables.c:2056,1
    - Dst: xsltParseSequenceConstructor
      Src: /src/libxslt/libxslt/variables.c:2076,1
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/variables.c:2076,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:2066,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:2060,1
    - Dst: xsltParseTemplateContent
      Src: /src/libxslt/libxslt/variables.c:2078,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:2082,1
    - Dst: xsltRegisterGlobalVariable
      Src: /src/libxslt/libxslt/variables.c:2086,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - style
    - cur
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2089
      start: 2037
    functionDepth: 0
    functionLinenumber: 2037
    functionLinenumberEnd: 2089
    functionName: xsltParseGlobalVariable
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - XSLT_CCTXT
    - xsltStylePreCompute
    - xsltRegisterGlobalVariable
    - xsltParseSequenceConstructor
    - xsltGenericDebug
    - xsltParseTemplateContent
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'void xsltParseGlobalVariable(xsltStylesheetPtr style, xmlNodePtr cur) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:2218,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:2225,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:2225,1
    - Dst: xsltRegisterVariable
      Src: /src/libxslt/libxslt/variables.c:2229,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2230
      start: 2204
    functionDepth: 0
    functionLinenumber: 2204
    functionLinenumberEnd: 2230
    functionName: xsltParseStylesheetParam
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xsltRegisterVariable
    - xsltTransformError
    - XSLT_TRACE
    linkageType: ''
    returnType: void
    signature: 'void xsltParseStylesheetParam(xsltTransformContextPtr ctxt, xmlNodePtr
      cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/variables.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: xsltExtensionInstructionResultFinalize
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xmlGenericError
    linkageType: ''
    returnType: int
    signature: 'int xsltExtensionInstructionResultFinalize( xsltTransformContextPtr
      ctxt ATTRIBUTE_UNUSED) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:313,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:298,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:312,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:289,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/variables.c:323,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 3
    argNames:
    - ctxt
    - obj
    - val
    argTypes:
    - xsltTransformContextPtr
    - xmlXPathObjectPtr
    - int
    constantsTouched: []
    func_position:
      end: 339
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 339
    functionName: xsltFlagRVTs
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xsltTransformError
    - XSLT_TRACE
    - xmlGenericError
    linkageType: ''
    returnType: int
    signature: 'int xsltFlagRVTs(xsltTransformContextPtr ctxt, xmlXPathObjectPtr obj,
      int val) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - RVT
    argTypes:
    - xsltTransformContextPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 427
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 427
    functionName: xsltRegisterPersistRVT
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xsltRegisterPersistRVT(xsltTransformContextPtr ctxt, xmlDocPtr
      RVT) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/variables.c:568,1
    - Dst: xsltRegisterLocalRVT
      Src: /src/libxslt/libxslt/variables.c:582,1
    - Dst: xsltReleaseRVT
      Src: /src/libxslt/libxslt/variables.c:580,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/variables.c:585,1
    - Dst: memset
      Src: /src/libxslt/libxslt/variables.c:599,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/variables.c:609,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - elem
    argTypes:
    - xsltStackElemPtr
    constantsTouched: []
    func_position:
      end: 610
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 610
    functionName: xsltFreeStackElem
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xsltRegisterLocalRVT
    - xmlXPathFreeObject
    - xsltReleaseRVT
    - xmlGenericError
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeStackElem(xsltStackElemPtr elem) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeStackElem
      Src: /src/libxslt/libxslt/variables.c:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 615
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 615
    functionName: xsltFreeStackElemEntry
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xsltFreeStackElem
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeStackElemEntry(void *payload, const xmlChar *name
      ATTRIBUTE_UNUSED) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/variables.c:1491,1
    - Dst: xsltSplitQName
      Src: /src/libxslt/libxslt/variables.c:1496,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/variables.c:1500,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/variables.c:1537,1
    - Dst: xmlXPathCompiledEval
      Src: /src/libxslt/libxslt/variables.c:1586,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/variables.c:1532,1
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/variables.c:1521,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxslt/libxslt/variables.c:1648,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:1474,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/variables.c:1492,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:1488,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:1474,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/variables.c:1531,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:1601,1
    - Dst: xmlXPathNewString
      Src: /src/libxslt/libxslt/variables.c:1637,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxslt/libxslt/variables.c:1500,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:1503,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/variables.c:1515,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/variables.c:1598,1
    - Dst: xmlXPathDebugDumpObject
      Src: /src/libxslt/libxslt/variables.c:1623,1
    - Dst: xsltNewStackElem
      Src: /src/libxslt/libxslt/variables.c:1628,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/variables.c:1631,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:1651,1
    - Dst: xmlXPathCtxtCompile
      Src: /src/libxslt/libxslt/variables.c:1548,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:1517,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/variables.c:1633,1
    - Dst: xsltFreeStackElem
      Src: /src/libxslt/libxslt/variables.c:1650,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 124
    argCount: 4
    argNames:
    - ctxt
    - name
    - value
    - eval
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1655
      start: 1447
    functionDepth: 0
    functionLinenumber: 1447
    functionLinenumberEnd: 1655
    functionName: xsltProcessUserParamInternal
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlHashAddEntry2
    - xmlHashLookup2
    - xmlXPathNewString
    - xmlXPathFreeCompExpr
    - xmlXPathDebugDumpObject
    - xmlXPathCtxtCompile
    - xsltNewStackElem
    - xmlXPathCompiledEval
    - xsltGenericDebug
    - xsltTransformError
    - xsltNextImport
    - xsltSplitQName
    - xmlDictLookup
    - XSLT_TRACE
    - xmlHashCreate
    - xmlStrEqual
    - xmlSearchNs
    - xsltFreeStackElem
    linkageType: ''
    returnType: int
    signature: "static int xsltProcessUserParamInternal(xsltTransformContextPtr ctxt,\t\t
      const xmlChar * name,\t\t\t const xmlChar * value,\t\t\t int eval) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsltStackLookup
      Src: /src/libxslt/libxslt/variables.c:714,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 3
    argNames:
    - ctxt
    - name
    - nameURI
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 725
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 725
    functionName: xsltCheckStackElem
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xsltStackLookup
    linkageType: ''
    returnType: int
    signature: "static int xsltCheckStackElem(xsltTransformContextPtr ctxt, const
      xmlChar *name,\t const xmlChar *nameURI) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltAddStackElem
      Src: /src/libxslt/libxslt/variables.c:782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ctxt
    - elems
    argTypes:
    - xsltTransformContextPtr
    - xsltStackElemPtr
    constantsTouched: []
    func_position:
      end: 783
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 783
    functionName: xsltAddStackElemList
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xsltAddStackElem
    linkageType: ''
    returnType: int
    signature: 'int xsltAddStackElemList(xsltTransformContextPtr ctxt, xsltStackElemPtr
      elems) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsltStylePreCompute
      Src: /src/libxslt/libxslt/variables.c:2118,1
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/variables.c:2138,1
    - Dst: xsltParseSequenceConstructor
      Src: /src/libxslt/libxslt/variables.c:2138,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:2128,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:2122,1
    - Dst: xsltParseTemplateContent
      Src: /src/libxslt/libxslt/variables.c:2140,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:2145,1
    - Dst: xsltRegisterGlobalVariable
      Src: /src/libxslt/libxslt/variables.c:2149,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - style
    - cur
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2152
      start: 2100
    functionDepth: 0
    functionLinenumber: 2100
    functionLinenumberEnd: 2152
    functionName: xsltParseGlobalParam
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - XSLT_CCTXT
    - xsltStylePreCompute
    - xsltRegisterGlobalVariable
    - xsltParseSequenceConstructor
    - xsltGenericDebug
    - xsltParseTemplateContent
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'void xsltParseGlobalParam(xsltStylesheetPtr style, xmlNodePtr cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xsltTransformContextPtr
    - xmlXPathObjectPtr
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: xsltExtensionInstructionResultRegister
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xsltExtensionInstructionResultRegister( xsltTransformContextPtr
      ctxt ATTRIBUTE_UNUSED,\txmlXPathObjectPtr obj ATTRIBUTE_UNUSED) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeDocumentKeys
      Src: /src/libxslt/libxslt/variables.c:361,1
    - Dst: xmlFreeIDTable
      Src: /src/libxslt/libxslt/variables.c:374,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/variables.c:362,1
    - Dst: xsltFreeDocumentKeys
      Src: /src/libxslt/libxslt/variables.c:397,1
    - Dst: xmlFreeNodeList
      Src: /src/libxslt/libxslt/variables.c:369,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/variables.c:398,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/libxslt/variables.c:400,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ctxt
    - RVT
    argTypes:
    - xsltTransformContextPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 401
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 401
    functionName: xsltReleaseRVT
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeIDTable
    - xmlFreeDoc
    - xsltFreeDocumentKeys
    - xmlFreeNodeList
    linkageType: ''
    returnType: void
    signature: 'void xsltReleaseRVT(xsltTransformContextPtr ctxt, xmlDocPtr RVT) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeDocumentKeys
      Src: /src/libxslt/libxslt/variables.c:451,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/variables.c:466,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/variables.c:452,1
    - Dst: xsltFreeDocumentKeys
      Src: /src/libxslt/libxslt/variables.c:465,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/libxslt/variables.c:454,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/libxslt/variables.c:468,1
    - Dst: xsltFreeDocumentKeys
      Src: /src/libxslt/libxslt/variables.c:479,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/variables.c:480,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/libxslt/variables.c:482,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 486
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 486
    functionName: xsltFreeRVTs
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeDoc
    - xsltFreeDocumentKeys
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeRVTs(xsltTransformContextPtr ctxt) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:2266,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:2266,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/variables.c:2302,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/variables.c:2300,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:2320,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:2320,1
    - Dst: xsltEvalVariable
      Src: /src/libxslt/libxslt/variables.c:2323,1
    - Dst: xmlXPathObjectCopy
      Src: /src/libxslt/libxslt/variables.c:2327,1
    - Dst: xsltGlobalVariableLookup
      Src: /src/libxslt/libxslt/variables.c:2336,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:2342,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:2356,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:2350,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:2347,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:2356,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:2342,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 65
    argCount: 3
    argNames:
    - ctxt
    - name
    - ns_uri
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2362
      start: 2256
    functionDepth: 0
    functionLinenumber: 2256
    functionLinenumberEnd: 2362
    functionName: xsltXPathVariableLookup
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - XSLT_TRACE
    - xsltGlobalVariableLookup
    - xsltEvalVariable
    - xsltGenericDebug
    - xmlXPathObjectCopy
    - xsltTransformError
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: "xmlXPathObjectPtr xsltXPathVariableLookup(void *ctxt, const xmlChar
      *name,\t const xmlChar *ns_uri) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlRealloc
      Src: /src/libxslt/libxslt/variables.c:752,1
    - Dst: xmlGenericError
      Src: /src/libxslt/libxslt/variables.c:755,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - elem
    argTypes:
    - xsltTransformContextPtr
    - xsltStackElemPtr
    constantsTouched: []
    func_position:
      end: 768
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 768
    functionName: xsltAddStackElem
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xmlRealloc
    - xmlGenericError
    linkageType: ''
    returnType: int
    signature: 'static int xsltAddStackElem(xsltTransformContextPtr ctxt, xsltStackElemPtr
      elem) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_TCTXT_VARIABLE
      Src: /src/libxslt/libxslt/variables.c:174,1
    - Dst: XSLT_TCTXT_VARIABLE
      Src: /src/libxslt/libxslt/variables.c:177,1
    - Dst: XSLT_TCTXT_VARIABLE
      Src: /src/libxslt/libxslt/variables.c:176,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - ctxt
    - RVT
    argTypes:
    - xsltTransformContextPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 190
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 190
    functionName: xsltRegisterLocalRVT
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - XSLT_TCTXT_VARIABLE
    linkageType: ''
    returnType: int
    signature: "int xsltRegisterLocalRVT(xsltTransformContextPtr ctxt,\t\t xmlDocPtr
      RVT) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/variables.c:518,1
    - Dst: memset
      Src: /src/libxslt/libxslt/variables.c:524,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 527
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 527
    functionName: xsltNewStackElem
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - memset
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltStackElemPtr
    signature: 'static xsltStackElemPtr xsltNewStackElem(xsltTransformContextPtr ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/variables.c:672,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/variables.c:674,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 3
    argNames:
    - ctxt
    - name
    - nameURI
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 687
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 687
    functionName: xsltStackLookup
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    linkageType: ''
    returnType: xsltStackElemPtr
    signature: "static xsltStackElemPtr xsltStackLookup(xsltTransformContextPtr ctxt,
      const xmlChar *name,\t const xmlChar *nameURI) "
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:1054,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:1054,1
    - Dst: xmlXPathCtxtCompile
      Src: /src/libxslt/libxslt/variables.c:1089,1
    - Dst: xslHandleDebugger
      Src: /src/libxslt/libxslt/variables.c:1061,1
    - Dst: xmlXPathCompiledEval
      Src: /src/libxslt/libxslt/variables.c:1142,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/variables.c:1155,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:1158,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:1161,1
    - Dst: xsltFlagRVTs
      Src: /src/libxslt/libxslt/variables.c:1171,1
    - Dst: xmlXPathDebugDumpObject
      Src: /src/libxslt/libxslt/variables.c:1177,1
    - Dst: xsltRegisterPersistRVT
      Src: /src/libxslt/libxslt/variables.c:1198,1
    - Dst: xsltApplyOneTemplate
      Src: /src/libxslt/libxslt/variables.c:1212,1
    - Dst: xmlXPathNewCString
      Src: /src/libxslt/libxslt/variables.c:1221,1
    - Dst: xmlXPathDebugDumpObject
      Src: /src/libxslt/libxslt/variables.c:1233,1
    - Dst: xmlXPathNewValueTree
      Src: /src/libxslt/libxslt/variables.c:1219,1
    - Dst: xsltCreateRVT
      Src: /src/libxslt/libxslt/variables.c:1191,1
    - Dst: xmlXPathNewCString
      Src: /src/libxslt/libxslt/variables.c:1183,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 114
    argCount: 2
    argNames:
    - elem
    - ctxt
    argTypes:
    - xsltStackElemPtr
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 1248
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1248
    functionName: xsltEvalGlobalVariable
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xmlXPathDebugDumpObject
    - xsltApplyOneTemplate
    - xmlXPathCtxtCompile
    - XSLT_TRACE
    - xslHandleDebugger
    - xmlXPathNewValueTree
    - xsltRegisterPersistRVT
    - xmlXPathCompiledEval
    - xsltGenericDebug
    - xsltCreateRVT
    - xmlXPathFreeCompExpr
    - xmlXPathNewCString
    - xsltFlagRVTs
    - xsltTransformError
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: 'static xmlXPathObjectPtr xsltEvalGlobalVariable(xsltStackElemPtr elem,
      xsltTransformContextPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltProcessUserParamInternal
      Src: /src/libxslt/libxslt/variables.c:1762,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - ctxt
    - name
    - value
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1764
      start: 1758
    functionDepth: 0
    functionLinenumber: 1758
    functionLinenumberEnd: 1764
    functionName: xsltQuoteOneUserParam
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xsltProcessUserParamInternal
    linkageType: ''
    returnType: int
    signature: "int xsltQuoteOneUserParam(xsltTransformContextPtr ctxt,\t\t\t const
      xmlChar * name,\t\t\t const xmlChar * value) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:1997,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:2010,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:2003,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:2018,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:2010,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:2018,1
    - Dst: xsltBuildVariable
      Src: /src/libxslt/libxslt/variables.c:2024,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - ctxt
    - inst
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2027
      start: 1975
    functionDepth: 0
    functionLinenumber: 1975
    functionLinenumberEnd: 2027
    functionName: xsltParseStylesheetCallerParam
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xsltTransformError
    - XSLT_TRACE
    - xsltBuildVariable
    linkageType: ''
    returnType: xsltStackElemPtr
    signature: 'xsltStackElemPtr xsltParseStylesheetCallerParam(xsltTransformContextPtr
      ctxt, xmlNodePtr inst) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDoc
      Src: /src/libxslt/libxslt/variables.c:92,1
    - Dst: xmlDictReference
      Src: /src/libxslt/libxslt/variables.c:96,1
    - Dst: XSLT_MARK_RES_TREE_FRAG
      Src: /src/libxslt/libxslt/variables.c:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 101
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 101
    functionName: xsltCreateRVT
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - XSLT_MARK_RES_TREE_FRAG
    - xmlDictReference
    - xmlNewDoc
    linkageType: ''
    returnType: xmlDocPtr
    signature: 'xmlDocPtr xsltCreateRVT(xsltTransformContextPtr ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_TCTXT_VARIABLE
      Src: /src/libxslt/libxslt/variables.c:133,1
    - Dst: XSLT_TCTXT_VARIABLE
      Src: /src/libxslt/libxslt/variables.c:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - ctxt
    - RVT
    argTypes:
    - xsltTransformContextPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 143
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 143
    functionName: xsltRegisterTmpRVT
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - XSLT_TCTXT_VARIABLE
    linkageType: ''
    returnType: int
    signature: 'int xsltRegisterTmpRVT(xsltTransformContextPtr ctxt, xmlDocPtr RVT) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeStackElem
      Src: /src/libxslt/libxslt/variables.c:630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - elem
    argTypes:
    - xsltStackElemPtr
    constantsTouched: []
    func_position:
      end: 633
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 633
    functionName: xsltFreeStackElemList
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xsltFreeStackElem
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeStackElemList(xsltStackElemPtr elem) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltProcessUserParamInternal
      Src: /src/libxslt/libxslt/variables.c:1741,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - ctxt
    - name
    - value
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1743
      start: 1737
    functionDepth: 0
    functionLinenumber: 1737
    functionLinenumberEnd: 1743
    functionName: xsltEvalOneUserParam
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xsltProcessUserParamInternal
    linkageType: ''
    returnType: int
    signature: "int xsltEvalOneUserParam(xsltTransformContextPtr ctxt,\t\t const xmlChar
      * name,\t\t const xmlChar * value) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:2176,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/variables.c:2189,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/variables.c:2182,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/variables.c:2189,1
    - Dst: xsltRegisterVariable
      Src: /src/libxslt/libxslt/variables.c:2193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - ctxt
    - inst
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2194
      start: 2162
    functionDepth: 0
    functionLinenumber: 2162
    functionLinenumberEnd: 2194
    functionName: xsltParseStylesheetVariable
    functionSourceFile: /src/libxslt/libxslt/variables.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xsltRegisterVariable
    - xsltTransformError
    - XSLT_TRACE
    linkageType: ''
    returnType: void
    signature: 'void xsltParseStylesheetVariable(xsltTransformContextPtr ctxt, xmlNodePtr
      inst) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ISALPHA
      Src: /src/libxslt/libxslt/xsltlocale.c:125,1
    - Dst: TOLOWER
      Src: /src/libxslt/libxslt/xsltlocale.c:126,1
    - Dst: xsltDefaultRegion
      Src: /src/libxslt/libxslt/xsltlocale.c:166,1
    - Dst: memcpy
      Src: /src/libxslt/libxslt/xsltlocale.c:144,1
    - Dst: memcpy
      Src: /src/libxslt/libxslt/xsltlocale.c:174,1
    - Dst: xsltEnumSupportedLocales
      Src: /src/libxslt/libxslt/xsltlocale.c:191,1
    - Dst: strcpy
      Src: /src/libxslt/libxslt/xsltlocale.c:214,1
    - Dst: newlocale
      Src: /src/libxslt/libxslt/xsltlocale.c:175,1
    - Dst: ISALPHA
      Src: /src/libxslt/libxslt/xsltlocale.c:138,1
    - Dst: TOUPPER
      Src: /src/libxslt/libxslt/xsltlocale.c:139,1
    - Dst: newlocale
      Src: /src/libxslt/libxslt/xsltlocale.c:145,1
    - Dst: memcpy
      Src: /src/libxslt/libxslt/xsltlocale.c:156,1
    - Dst: newlocale
      Src: /src/libxslt/libxslt/xsltlocale.c:157,1
    - Dst: xslt_locale_WINAPI
      Src: /src/libxslt/libxslt/xsltlocale.c:215,1
    - Dst: TOLOWER
      Src: /src/libxslt/libxslt/xsltlocale.c:194,1
    - Dst: TOUPPER
      Src: /src/libxslt/libxslt/xsltlocale.c:203,1
    - Dst: xsltDefaultRegion
      Src: /src/libxslt/libxslt/xsltlocale.c:211,1
    - Dst: xslt_locale_WINAPI
      Src: /src/libxslt/libxslt/xsltlocale.c:207,1
    - Dst: ISALPHA
      Src: /src/libxslt/libxslt/xsltlocale.c:193,1
    - Dst: ISALPHA
      Src: /src/libxslt/libxslt/xsltlocale.c:202,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 79
    argCount: 2
    argNames:
    - languageTag
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 224
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 224
    functionName: xsltNewLocale
    functionSourceFile: /src/libxslt/libxslt/xsltlocale.c
    functionUses: []
    functionsReached:
    - xslt_locale_WINAPI
    - memcpy
    - newlocale
    - ISALPHA
    - xsltEnumSupportedLocales
    - strcpy
    - TOLOWER
    - xsltDefaultRegion
    - TOUPPER
    linkageType: ''
    returnType: void*
    signature: 'void *xsltNewLocale(const xmlChar *languageTag, int lowerFirst ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freelocale
      Src: /src/libxslt/libxslt/xsltlocale.c:374,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - locale
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 378
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 378
    functionName: xsltFreeLocale
    functionSourceFile: /src/libxslt/libxslt/xsltlocale.c
    functionUses: []
    functionsReached:
    - freelocale
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeLocale(void *locale) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltlocale.c:413,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xsltlocale.c:430,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xsltlocale.c:442,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltlocale.c:449,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltlocale.c:454,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xsltlocale.c:456,1
    - Dst: strxfrm_l
      Src: /src/libxslt/libxslt/xsltlocale.c:401,1
    - Dst: strxfrm_l
      Src: /src/libxslt/libxslt/xsltlocale.c:409,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xsltlocale.c:404,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xsltlocale.c:412,1
    - Dst: MultiByteToWideChar
      Src: /src/libxslt/libxslt/xsltlocale.c:423,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xsltlocale.c:425,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xsltlocale.c:448,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xsltlocale.c:428,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltlocale.c:436,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xsltlocale.c:402,1
    - Dst: MultiByteToWideChar
      Src: /src/libxslt/libxslt/xsltlocale.c:433,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xsltlocale.c:446,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/xsltlocale.c:435,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltlocale.c:443,1
    - Dst: LCMapStringW
      Src: /src/libxslt/libxslt/xsltlocale.c:440,1
    - Dst: LCMapStringW
      Src: /src/libxslt/libxslt/xsltlocale.c:452,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltlocale.c:457,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 2
    argNames:
    - vlocale
    - string
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 464
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 464
    functionName: xsltStrxfrm
    functionSourceFile: /src/libxslt/libxslt/xsltlocale.c
    functionUses: []
    functionsReached:
    - xmlFree
    - strxfrm_l
    - LCMapStringW
    - MultiByteToWideChar
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xsltStrxfrm(void *vlocale, const xmlChar *string) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/libxslt/libxslt/xsltlocale.c:518,1
    - Dst: memcpy
      Src: /src/libxslt/libxslt/xsltlocale.c:533,1
    - Dst: memcpy
      Src: /src/libxslt/libxslt/xsltlocale.c:530,1
    - Dst: GetLocaleInfoA
      Src: /src/libxslt/libxslt/xsltlocale.c:521,1
    - Dst: GetLocaleInfoA
      Src: /src/libxslt/libxslt/xsltlocale.c:524,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - lcid
    argTypes:
    - LPSTR
    constantsTouched: []
    func_position:
      end: 540
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 540
    functionName: xsltIterateSupportedLocales
    functionSourceFile: /src/libxslt/libxslt/xsltlocale.c
    functionUses: []
    functionsReached:
    - memcpy
    - GetLocaleInfoA
    - sscanf
    linkageType: ''
    returnType: BOOL
    signature: 'static BOOL CALLBACK xsltIterateSupportedLocales(LPSTR lcid) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcmp
      Src: /src/libxslt/libxslt/xsltlocale.c:78,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 1
    argNames:
    - languageTag
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: xslt_locale_WINAPI
    functionSourceFile: /src/libxslt/libxslt/xsltlocale.c
    functionUses: []
    functionsReached:
    - xmlStrcmp
    linkageType: ''
    returnType: void*
    signature: 'static void *xslt_locale_WINAPI(const xmlChar *languageTag) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlRMutexLock
      Src: /src/libxslt/libxslt/xsltlocale.c:545,1
    - Dst: memset
      Src: /src/libxslt/libxslt/xsltlocale.c:553,1
    - Dst: EnumSystemLocalesA
      Src: /src/libxslt/libxslt/xsltlocale.c:554,1
    - Dst: EnumSystemLocalesA
      Src: /src/libxslt/libxslt/xsltlocale.c:549,1
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/xsltlocale.c:552,1
    - Dst: xmlRMutexUnlock
      Src: /src/libxslt/libxslt/xsltlocale.c:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 557
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 557
    functionName: xsltEnumSupportedLocales
    functionSourceFile: /src/libxslt/libxslt/xsltlocale.c
    functionUses: []
    functionsReached:
    - memset
    - EnumSystemLocalesA
    - xmlRMutexLock
    - xmlMalloc
    - xmlRMutexUnlock
    linkageType: ''
    returnType: void
    signature: 'static void xsltEnumSupportedLocales(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlRMutexLock
      Src: /src/libxslt/libxslt/xsltlocale.c:94,1
    - Dst: xmlRMutexUnlock
      Src: /src/libxslt/libxslt/xsltlocale.c:97,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/xsltlocale.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: xsltFreeLocales
    functionSourceFile: /src/libxslt/libxslt/xsltlocale.c
    functionUses: []
    functionsReached:
    - xmlRMutexLock
    - xmlFree
    - xmlRMutexUnlock
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeLocales(void) '
  - BBCount: 99
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 111
    EdgeCount: 111
    ICount: 158
    argCount: 1
    argNames:
    - localeName
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 362
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 362
    functionName: xsltDefaultRegion
    functionSourceFile: /src/libxslt/libxslt/xsltlocale.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xsltDefaultRegion(const xmlChar *localeName) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcmp
      Src: /src/libxslt/libxslt/xsltlocale.c:483,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - locale
    - str1
    - str2
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 484
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 484
    functionName: xsltLocaleStrcmp
    functionSourceFile: /src/libxslt/libxslt/xsltlocale.c
    functionUses: []
    functionsReached:
    - xmlStrcmp
    linkageType: ''
    returnType: int
    signature: 'int xsltLocaleStrcmp(void *locale, const xmlChar *str1, const xmlChar
      *str2) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - lcid
    argTypes:
    - LPSTR
    constantsTouched: []
    func_position:
      end: 500
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 500
    functionName: xsltCountSupportedLocales
    functionSourceFile: /src/libxslt/libxslt/xsltlocale.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: 'static BOOL CALLBACK xsltCountSupportedLocales(LPSTR lcid) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewAttrElem
      Src: /src/libxslt/libxslt/attributes.c:170,1
    - Dst: xsltNewAttrElem
      Src: /src/libxslt/libxslt/attributes.c:175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - list
    - attr
    argTypes:
    - xsltAttrElemPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 181
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 181
    functionName: xsltAddAttrElemList
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - xsltNewAttrElem
    linkageType: ''
    returnType: xsltAttrElemPtr
    signature: 'static xsltAttrElemPtr xsltAddAttrElemList(xsltAttrElemPtr list, xmlNodePtr
      attr) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/attributes.c:1152,1
    - Dst: xmlValidateQName
      Src: /src/libxslt/libxslt/attributes.c:1169,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/attributes.c:1165,1
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/attributes.c:1157,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/attributes.c:1159,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:1170,1
    - Dst: xsltSplitQName
      Src: /src/libxslt/libxslt/attributes.c:1176,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/attributes.c:1178,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:1180,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/attributes.c:1195,1
    - Dst: xslHandleDebugger
      Src: /src/libxslt/libxslt/attributes.c:1198,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/attributes.c:1207,1
    - Dst: xsltAttribute
      Src: /src/libxslt/libxslt/attributes.c:1212,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 65
    argCount: 4
    argNames:
    - ctxt
    - node
    - inst
    - attrSets
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1221
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1221
    functionName: xsltApplyAttributeSet
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - xmlHashLookup2
    - xsltSplitQName
    - xslHandleDebugger
    - xmlSearchNs
    - xmlValidateQName
    - xsltAttribute
    - xsltGenericDebug
    - IS_BLANK
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'void xsltApplyAttributeSet(xsltTransformContextPtr ctxt, xmlNodePtr
      node, xmlNodePtr inst, const xmlChar *attrSets) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/attributes.c:1238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - style
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 1241
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1241
    functionName: xsltFreeAttributeSetsHashes
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeAttributeSetsHashes(xsltStylesheetPtr style) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeAttrSet
      Src: /src/libxslt/libxslt/attributes.c:1226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1227
      start: 1223
    functionDepth: 0
    functionLinenumber: 1223
    functionLinenumberEnd: 1227
    functionName: xsltFreeAttributeSetsEntry
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - xsltFreeAttrSet
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeAttributeSetsEntry(void *payload, const xmlChar
      *name ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeUseAttrSet
      Src: /src/libxslt/libxslt/attributes.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - list
    argTypes:
    - xsltUseAttrSetPtr
    constantsTouched: []
    func_position:
      end: 234
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 234
    functionName: xsltFreeUseAttrSetList
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - xsltFreeUseAttrSet
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeUseAttrSetList(xsltUseAttrSetPtr list) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/attributes.c:567,1
    - Dst: xsltMergeAttrSets
      Src: /src/libxslt/libxslt/attributes.c:572,1
    - Dst: xsltResolveAttrSet
      Src: /src/libxslt/libxslt/attributes.c:570,1
    - Dst: xsltFreeUseAttrSet
      Src: /src/libxslt/libxslt/attributes.c:581,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/attributes.c:576,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - set
    - topStyle
    - depth
    argTypes:
    - xsltAttrSetPtr
    - xsltStylesheetPtr
    - int
    constantsTouched: []
    func_position:
      end: 586
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 586
    functionName: xsltResolveUseAttrSets
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - xsltNextImport
    - xmlHashLookup2
    - xsltResolveAttrSet
    - xsltFreeUseAttrSet
    - xsltMergeAttrSets
    linkageType: ''
    returnType: void
    signature: "static void xsltResolveUseAttrSets(xsltAttrSetPtr set, xsltStylesheetPtr
      topStyle,\t\t int depth) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/attributes.c:115,1
    - Dst: memset
      Src: /src/libxslt/libxslt/attributes.c:121,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/attributes.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - attr
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 124
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 124
    functionName: xsltNewAttrElem
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - memset
    - xsltGenericError
    - xmlMalloc
    linkageType: ''
    returnType: xsltAttrElemPtr
    signature: 'static xsltAttrElemPtr xsltNewAttrElem(xmlNodePtr attr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attributes.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - use
    argTypes:
    - xsltUseAttrSetPtr
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: xsltFreeUseAttrSet
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeUseAttrSet(xsltUseAttrSetPtr use) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attributes.c:397,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/attributes.c:421,1
    - Dst: xsltNewAttrSet
      Src: /src/libxslt/libxslt/attributes.c:423,1
    - Dst: IS_XSLT_ELEM
      Src: /src/libxslt/libxslt/attributes.c:442,1
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/attributes.c:463,1
    - Dst: xsltAddAttrElemList
      Src: /src/libxslt/libxslt/attributes.c:475,1
    - Dst: xmlValidateQName
      Src: /src/libxslt/libxslt/attributes.c:506,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:507,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attributes.c:511,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:519,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attributes.c:534,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/attributes.c:517,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attributes.c:383,1
    - Dst: xmlValidateQName
      Src: /src/libxslt/libxslt/attributes.c:387,1
    - Dst: xsltSplitQName
      Src: /src/libxslt/libxslt/attributes.c:396,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:445,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxslt/libxslt/attributes.c:425,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/attributes.c:426,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/attributes.c:457,1
    - Dst: xsltParseTemplateContent
      Src: /src/libxslt/libxslt/attributes.c:466,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:470,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attributes.c:524,1
    - Dst: xsltAddUseAttrSetList
      Src: /src/libxslt/libxslt/attributes.c:529,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/attributes.c:539,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/attributes.c:378,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/attributes.c:380,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:402,1
    - Dst: xsltFreeAttrSet
      Src: /src/libxslt/libxslt/attributes.c:427,1
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/attributes.c:416,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:449,1
    - Dst: IS_XSLT_NAME
      Src: /src/libxslt/libxslt/attributes.c:451,1
    - Dst: xmlGetNsProp
      Src: /src/libxslt/libxslt/attributes.c:485,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/attributes.c:495,1
    - Dst: xsltSplitQName
      Src: /src/libxslt/libxslt/attributes.c:515,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:388,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attributes.c:392,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/attributes.c:400,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/attributes.c:413,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:452,1
    - Dst: xsltStylePreCompute
      Src: /src/libxslt/libxslt/attributes.c:460,1
    - Dst: xsltParseSequenceConstructor
      Src: /src/libxslt/libxslt/attributes.c:463,1
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/attributes.c:490,1
    - Dst: IS_BLANK
      Src: /src/libxslt/libxslt/attributes.c:494,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/attributes.c:502,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 119
    argCount: 2
    argNames:
    - style
    - cur
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 542
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 542
    functionName: xsltParseStylesheetAttributeSet
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - XSLT_CCTXT
    - xmlHashAddEntry2
    - xmlHashLookup2
    - xsltAddAttrElemList
    - xmlValidateQName
    - xsltParseTemplateContent
    - IS_BLANK
    - xsltStylePreCompute
    - xsltParseSequenceConstructor
    - xsltAddUseAttrSetList
    - xsltGenericDebug
    - xsltGenericError
    - xsltTransformError
    - xmlFree
    - xsltSplitQName
    - xsltFreeAttrSet
    - IS_XSLT_ELEM
    - xmlGetNsProp
    - xmlDictLookup
    - IS_XSLT_NAME
    - xmlHashCreate
    - xsltNewAttrSet
    - xmlSearchNs
    linkageType: ''
    returnType: void
    signature: 'void xsltParseStylesheetAttributeSet(xsltStylesheetPtr style, xmlNodePtr
      cur) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeAttrSet
      Src: /src/libxslt/libxslt/attributes.c:671,1
    - Dst: xsltResolveAttrSet
      Src: /src/libxslt/libxslt/attributes.c:675,1
    - Dst: xsltFreeAttrSet
      Src: /src/libxslt/libxslt/attributes.c:688,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/attributes.c:684,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxslt/libxslt/attributes.c:683,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 5
    argNames:
    - payload
    - data
    - name
    - ns
    - ignored
    argTypes:
    - void*
    - void*
    - xmlChar*
    - xmlChar*
    - ATTRIBUTE_UNUSED*
    constantsTouched: []
    func_position:
      end: 691
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 691
    functionName: xsltResolveSASCallback
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - xsltResolveAttrSet
    - xsltGenericError
    - xmlHashAddEntry2
    - xsltFreeAttrSet
    linkageType: ''
    returnType: void
    signature: "static void xsltResolveSASCallback(void *payload, void *data,\t const
      xmlChar *name, const xmlChar *ns,\t\t ATTRIBUTE_UNUSED const xmlChar *ignored) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewAttrElem
      Src: /src/libxslt/libxslt/attributes.c:342,1
    - Dst: xsltNewAttrElem
      Src: /src/libxslt/libxslt/attributes.c:344,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - set
    - other
    argTypes:
    - xsltAttrSetPtr
    - xsltAttrSetPtr
    constantsTouched: []
    func_position:
      end: 350
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 350
    functionName: xsltMergeAttrSets
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - xsltNewAttrElem
    linkageType: ''
    returnType: void
    signature: 'static void xsltMergeAttrSets(xsltAttrSetPtr set, xsltAttrSetPtr other) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:608,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/attributes.c:631,1
    - Dst: xsltResolveUseAttrSets
      Src: /src/libxslt/libxslt/attributes.c:625,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:616,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/attributes.c:628,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/attributes.c:635,1
    - Dst: xsltResolveUseAttrSets
      Src: /src/libxslt/libxslt/attributes.c:638,1
    - Dst: xsltMergeAttrSets
      Src: /src/libxslt/libxslt/attributes.c:639,1
    - Dst: xmlHashRemoveEntry2
      Src: /src/libxslt/libxslt/attributes.c:640,1
    - Dst: xsltFreeAttrSet
      Src: /src/libxslt/libxslt/attributes.c:641,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/attributes.c:645,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 6
    argNames:
    - set
    - topStyle
    - style
    - name
    - ns
    - depth
    argTypes:
    - xsltAttrSetPtr
    - xsltStylesheetPtr
    - xsltStylesheetPtr
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 649
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 649
    functionName: xsltResolveAttrSet
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - xsltNextImport
    - xsltMergeAttrSets
    - xsltResolveUseAttrSets
    - xmlHashLookup2
    - xmlHashRemoveEntry2
    - xsltFreeAttrSet
    - xsltGenericDebug
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'static void xsltResolveAttrSet(xsltAttrSetPtr set, xsltStylesheetPtr
      topStyle, xsltStylesheetPtr style, const xmlChar *name, const xmlChar *ns, int
      depth) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeAttrElem
      Src: /src/libxslt/libxslt/attributes.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - list
    argTypes:
    - xsltAttrElemPtr
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: xsltFreeAttrElemList
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - xsltFreeAttrElem
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeAttrElemList(xsltAttrElemPtr list) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/attributes.c:280,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/attributes.c:282,1
    - Dst: memset
      Src: /src/libxslt/libxslt/attributes.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 288
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 288
    functionName: xsltNewAttrSet
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - memset
    - xsltGenericError
    - xmlMalloc
    linkageType: ''
    returnType: xsltAttrSetPtr
    signature: 'static xsltAttrSetPtr xsltNewAttrSet(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeAttrElemList
      Src: /src/libxslt/libxslt/attributes.c:301,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attributes.c:303,1
    - Dst: xsltFreeUseAttrSetList
      Src: /src/libxslt/libxslt/attributes.c:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - set
    argTypes:
    - xsltAttrSetPtr
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 304
    functionName: xsltFreeAttrSet
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltFreeAttrElemList
    - xsltFreeUseAttrSetList
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeAttrSet(xsltAttrSetPtr set) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attributes.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - attr
    argTypes:
    - xsltAttrElemPtr
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: xsltFreeAttrElem
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeAttrElem(xsltAttrElemPtr attr) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsltNewUseAttrSet
      Src: /src/libxslt/libxslt/attributes.c:254,1
    - Dst: xsltNewUseAttrSet
      Src: /src/libxslt/libxslt/attributes.c:261,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - list
    - ncname
    - ns
    argTypes:
    - xsltUseAttrSetPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 267
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 267
    functionName: xsltAddUseAttrSetList
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - xsltNewUseAttrSet
    linkageType: ''
    returnType: xsltUseAttrSetPtr
    signature: 'static xsltUseAttrSetPtr xsltAddUseAttrSetList(xsltUseAttrSetPtr list,
      const xmlChar *ncname, const xmlChar *ns) '
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:789,1
    - Dst: xmlValidateQName
      Src: /src/libxslt/libxslt/attributes.c:853,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:854,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/attributes.c:863,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attributes.c:866,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/attributes.c:906,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attributes.c:918,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:922,1
    - Dst: xsltSplitQName
      Src: /src/libxslt/libxslt/attributes.c:870,1
    - Dst: xmlDictLookup
      Src: /src/libxslt/libxslt/attributes.c:917,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/attributes.c:993,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:1004,1
    - Dst: xsltEvalAttrValueTemplate
      Src: /src/libxslt/libxslt/attributes.c:846,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/attributes.c:921,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attributes.c:998,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:946,1
    - Dst: xmlSetNsProp
      Src: /src/libxslt/libxslt/attributes.c:1095,1
    - Dst: xmlIsID
      Src: /src/libxslt/libxslt/attributes.c:1079,1
    - Dst: xmlNewText
      Src: /src/libxslt/libxslt/attributes.c:1059,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attributes.c:1088,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/attributes.c:927,1
    - Dst: xmlSetNsProp
      Src: /src/libxslt/libxslt/attributes.c:1020,1
    - Dst: xmlSetNsProp
      Src: /src/libxslt/libxslt/attributes.c:1030,1
    - Dst: xmlNewText
      Src: /src/libxslt/libxslt/attributes.c:1040,1
    - Dst: xmlAddID
      Src: /src/libxslt/libxslt/attributes.c:1080,1
    - Dst: xsltEvalTemplateString
      Src: /src/libxslt/libxslt/attributes.c:1085,1
    - Dst: xmlSetNsProp
      Src: /src/libxslt/libxslt/attributes.c:1087,1
    - Dst: xsltGetSpecialNamespace
      Src: /src/libxslt/libxslt/attributes.c:1000,1
    - Dst: xslHandleDebugger
      Src: /src/libxslt/libxslt/attributes.c:841,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:827,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:849,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/attributes.c:864,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/attributes.c:871,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/attributes.c:929,1
    - Dst: xsltTreeAcquireStoredNs
      Src: /src/libxslt/libxslt/attributes.c:975,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/attributes.c:994,1
    - Dst: xsltGetSpecialNamespace
      Src: /src/libxslt/libxslt/attributes.c:996,1
    - Dst: xsltSplitQName
      Src: /src/libxslt/libxslt/attributes.c:880,1
    - Dst: xmlSearchNs
      Src: /src/libxslt/libxslt/attributes.c:940,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 144
    argCount: 4
    argNames:
    - ctxt
    - contextNode
    - inst
    - castedComp
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 1102
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 1102
    functionName: xsltAttribute
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlAddID
    - xmlDictLookup
    - xsltTreeAcquireStoredNs
    - xsltSplitQName
    - xmlSetNsProp
    - xmlNewText
    - xslHandleDebugger
    - xmlStrdup
    - xsltEvalAttrValueTemplate
    - xmlValidateQName
    - xmlStrEqual
    - xmlSearchNs
    - xmlIsID
    - xsltEvalTemplateString
    - xsltGetSpecialNamespace
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: "void xsltAttribute(xsltTransformContextPtr ctxt,\t xmlNodePtr contextNode,
      xmlNodePtr inst,\t xsltElemPreCompPtr castedComp) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/attributes.c:705,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/attributes.c:715,1
    - Dst: xmlHashScanFull
      Src: /src/libxslt/libxslt/attributes.c:721,1
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/attributes.c:718,1
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/attributes.c:729,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/attributes.c:733,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - style
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 735
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 735
    functionName: xsltResolveStylesheetAttributeSet
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    - xsltNextImport
    - xmlHashScanFull
    - xmlHashCreate
    - xsltGenericDebug
    linkageType: ''
    returnType: void
    signature: 'void xsltResolveStylesheetAttributeSet(xsltStylesheetPtr style) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/attributes.c:196,1
    - Dst: memset
      Src: /src/libxslt/libxslt/attributes.c:202,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/attributes.c:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ncname
    - ns
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: xsltNewUseAttrSet
    functionSourceFile: /src/libxslt/libxslt/attributes.c
    functionUses: []
    functionsReached:
    - memset
    - xsltGenericError
    - xmlMalloc
    linkageType: ''
    returnType: xsltUseAttrSetPtr
    signature: 'static xsltUseAttrSetPtr xsltNewUseAttrSet(const xmlChar *ncname,
      const xmlChar *ns) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libxslt/keys.c:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: xsltFreeNodeSetEntry
    functionSourceFile: /src/libxslt/libxslt/keys.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeNodeSet
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeNodeSetEntry(void *payload, const xmlChar *name
      ATTRIBUTE_UNUSED) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/keys.c:131,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/keys.c:141,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/keys.c:139,1
    - Dst: memset
      Src: /src/libxslt/libxslt/keys.c:137,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/keys.c:133,1
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/keys.c:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - name
    - nameURI
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 144
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 144
    functionName: xsltNewKeyTable
    functionSourceFile: /src/libxslt/libxslt/keys.c
    functionUses: []
    functionsReached:
    - memset
    - xmlStrdup
    - xmlHashCreate
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltKeyTablePtr
    signature: 'static xsltKeyTablePtr xsltNewKeyTable(const xmlChar *name, const
      xmlChar *nameURI) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/keys.c:84,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/keys.c:92,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxslt/libxslt/keys.c:86,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/keys.c:88,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/keys.c:90,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/keys.c:94,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/keys.c:96,1
    - Dst: memset
      Src: /src/libxslt/libxslt/keys.c:97,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/keys.c:98,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - keyd
    argTypes:
    - xsltKeyDefPtr
    constantsTouched: []
    func_position:
      end: 99
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 99
    functionName: xsltFreeKeyDef
    functionSourceFile: /src/libxslt/libxslt/keys.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlXPathFreeCompExpr
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeKeyDef(xsltKeyDefPtr keyd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeKeyTable
      Src: /src/libxslt/libxslt/keys.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - keyt
    argTypes:
    - xsltKeyTablePtr
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: xsltFreeKeyTableList
    functionSourceFile: /src/libxslt/libxslt/keys.c
    functionUses: []
    functionsReached:
    - xsltFreeKeyTable
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeKeyTableList(xsltKeyTablePtr keyt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - cur
    - end
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: skipString
    functionSourceFile: /src/libxslt/libxslt/keys.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int skipString(const xmlChar *cur, int end) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/keys.c:447,1
    - Dst: xsltInitAllDocKeys
      Src: /src/libxslt/libxslt/keys.c:459,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/keys.c:468,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/keys.c:470,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/keys.c:467,1
    - Dst: xsltInitDocKeyTable
      Src: /src/libxslt/libxslt/keys.c:481,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 34
    argCount: 4
    argNames:
    - ctxt
    - name
    - nameURI
    - value
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 487
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 487
    functionName: xsltGetKey
    functionSourceFile: /src/libxslt/libxslt/keys.c
    functionUses: []
    functionsReached:
    - xsltInitDocKeyTable
    - xmlStrEqual
    - xsltInitAllDocKeys
    - xmlHashLookup
    - xsltGenericDebug
    linkageType: ''
    returnType: xmlNodeSetPtr
    signature: "xmlNodeSetPtr xsltGetKey(xsltTransformContextPtr ctxt, const xmlChar
      *name,\t const xmlChar *nameURI, const xmlChar *value) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxslt/libxslt/keys.c:506,1
    - Dst: xsltInitCtxtKey
      Src: /src/libxslt/libxslt/keys.c:518,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/keys.c:525,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/keys.c:516,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/keys.c:515,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/keys.c:529,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/keys.c:529,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/keys.c:532,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/keys.c:538,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - ctxt
    - name
    - nameURI
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 541
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 541
    functionName: xsltInitDocKeyTable
    functionSourceFile: /src/libxslt/libxslt/keys.c
    functionUses: []
    functionsReached:
    - xsltNextImport
    - XSLT_TRACE
    - xmlStrEqual
    - xsltGenericDebug
    - fprintf
    - xsltInitCtxtKey
    - xsltTransformError
    linkageType: ''
    returnType: int
    signature: 'static int xsltInitDocKeyTable(xsltTransformContextPtr ctxt, const
      xmlChar *name, const xmlChar *nameURI) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/keys.c:654,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/keys.c:653,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/keys.c:705,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/keys.c:724,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/keys.c:724,1
    - Dst: xmlXPathCastNodeToString
      Src: /src/libxslt/libxslt/keys.c:797,1
    - Dst: xmlXPathCastToString
      Src: /src/libxslt/libxslt/keys.c:810,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxslt/libxslt/keys.c:832,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/keys.c:871,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/keys.c:873,1
    - Dst: IS_XSLT_REAL_NODE
      Src: /src/libxslt/libxslt/keys.c:772,1
    - Dst: xmlXPathCompiledEval
      Src: /src/libxslt/libxslt/keys.c:785,1
    - Dst: xsltNewKeyTable
      Src: /src/libxslt/libxslt/keys.c:754,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/keys.c:745,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/keys.c:787,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/keys.c:822,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/keys.c:822,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/keys.c:642,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/keys.c:658,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/keys.c:702,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/keys.c:702,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/keys.c:742,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/keys.c:727,1
    - Dst: xmlXPathNodeSetAdd
      Src: /src/libxslt/libxslt/keys.c:839,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/keys.c:875,1
    - Dst: xmlXPathCompiledEval
      Src: /src/libxslt/libxslt/keys.c:698,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/keys.c:715,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/keys.c:715,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxslt/libxslt/keys.c:784,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/keys.c:826,1
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxslt/libxslt/keys.c:828,1
    - Dst: xmlHashAddEntry
      Src: /src/libxslt/libxslt/keys.c:831,1
    - Dst: xsltSetSourceNodeFlags
      Src: /src/libxslt/libxslt/keys.c:841,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/keys.c:842,1
    - Dst: xmlXPathCastNodeToString
      Src: /src/libxslt/libxslt/keys.c:849,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 148
    argCount: 3
    argNames:
    - ctxt
    - idoc
    - keyDef
    argTypes:
    - xsltTransformContextPtr
    - xsltDocumentPtr
    - xsltKeyDefPtr
    constantsTouched: []
    func_position:
      end: 877
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 877
    functionName: xsltInitCtxtKey
    functionSourceFile: /src/libxslt/libxslt/keys.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetCreate
    - xmlXPathFreeNodeSet
    - xsltSetSourceNodeFlags
    - xmlFree
    - xsltNewKeyTable
    - IS_XSLT_REAL_NODE
    - xmlHashAddEntry
    - XSLT_TRACE
    - xmlXPathFreeObject
    - xmlStrEqual
    - xmlXPathNodeSetAdd
    - xmlXPathCastNodeToString
    - xmlHashLookup
    - xmlXPathCompiledEval
    - xsltGenericDebug
    - fprintf
    - xmlXPathCastToString
    - xsltTransformError
    linkageType: ''
    returnType: int
    signature: "int xsltInitCtxtKey(xsltTransformContextPtr ctxt, xsltDocumentPtr
      idoc,\t xsltKeyDefPtr keyDef) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeKeyTableList
      Src: /src/libxslt/libxslt/keys.c:932,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - idoc
    argTypes:
    - xsltDocumentPtr
    constantsTouched: []
    func_position:
      end: 933
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 933
    functionName: xsltFreeDocumentKeys
    functionSourceFile: /src/libxslt/libxslt/keys.c
    functionUses: []
    functionsReached:
    - xsltFreeKeyTableList
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeDocumentKeys(xsltDocumentPtr idoc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/keys.c:58,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/keys.c:60,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/keys.c:68,1
    - Dst: memset
      Src: /src/libxslt/libxslt/keys.c:64,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/keys.c:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - name
    - nameURI
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 71
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 71
    functionName: xsltNewKeyDef
    functionSourceFile: /src/libxslt/libxslt/keys.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - memset
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltKeyDefPtr
    signature: 'static xsltKeyDefPtr xsltNewKeyDef(const xmlChar *name, const xmlChar
      *nameURI) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeKeyDef
      Src: /src/libxslt/libxslt/keys.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - keyd
    argTypes:
    - xsltKeyDefPtr
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: xsltFreeKeyDefList
    functionSourceFile: /src/libxslt/libxslt/keys.c
    functionUses: []
    functionsReached:
    - xsltFreeKeyDef
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeKeyDefList(xsltKeyDefPtr keyd) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/keys.c:162,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/keys.c:164,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/keys.c:168,1
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/keys.c:166,1
    - Dst: memset
      Src: /src/libxslt/libxslt/keys.c:167,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - keyt
    argTypes:
    - xsltKeyTablePtr
    constantsTouched: []
    func_position:
      end: 169
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 169
    functionName: xsltFreeKeyTable
    functionSourceFile: /src/libxslt/libxslt/keys.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFree
    - memset
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeKeyTable(xsltKeyTablePtr keyt) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: skipString
      Src: /src/libxslt/libxslt/keys.c:250,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - cur
    - end
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 264
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 264
    functionName: skipPredicate
    functionSourceFile: /src/libxslt/libxslt/keys.c
    functionUses: []
    functionsReached:
    - skipString
    linkageType: ''
    returnType: int
    signature: 'static int skipPredicate(const xmlChar *cur, int end) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetNsList
      Src: /src/libxslt/libxslt/keys.c:301,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/keys.c:356,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/keys.c:379,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/keys.c:298,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/keys.c:321,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/keys.c:331,1
    - Dst: xmlStrcat
      Src: /src/libxslt/libxslt/keys.c:337,1
    - Dst: xsltXPathCompile
      Src: /src/libxslt/libxslt/keys.c:376,1
    - Dst: xsltXPathCompile
      Src: /src/libxslt/libxslt/keys.c:387,1
    - Dst: xmlStrcat
      Src: /src/libxslt/libxslt/keys.c:350,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/keys.c:291,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/keys.c:299,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/keys.c:362,1
    - Dst: xmlStrncat
      Src: /src/libxslt/libxslt/keys.c:343,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/keys.c:416,1
    - Dst: xsltNewKeyDef
      Src: /src/libxslt/libxslt/keys.c:295,1
    - Dst: xmlIsBlank_ch
      Src: /src/libxslt/libxslt/keys.c:314,1
    - Dst: skipPredicate
      Src: /src/libxslt/libxslt/keys.c:319,1
    - Dst: xsltXPathCompileFlags
      Src: /src/libxslt/libxslt/keys.c:374,1
    - Dst: xsltXPathCompileFlags
      Src: /src/libxslt/libxslt/keys.c:385,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/keys.c:390,1
    - Dst: xsltFreeKeyDef
      Src: /src/libxslt/libxslt/keys.c:418,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 98
    argCount: 6
    argNames:
    - style
    - name
    - nameURI
    - match
    - use
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 420
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 420
    functionName: xsltAddKey
    functionSourceFile: /src/libxslt/libxslt/keys.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetNsList
    - xmlIsBlank_ch
    - xsltXPathCompileFlags
    - xmlStrncat
    - skipPredicate
    - xmlStrdup
    - xsltFreeKeyDef
    - xsltGenericDebug
    - xsltNewKeyDef
    - xsltXPathCompile
    - xmlStrcat
    - xsltTransformError
    linkageType: ''
    returnType: int
    signature: "int xsltAddKey(xsltStylesheetPtr style, const xmlChar *name,\t const
      xmlChar *nameURI, const xmlChar *match,\t const xmlChar *use, xmlNodePtr inst) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxslt/libxslt/keys.c:564,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/keys.c:580,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/keys.c:589,1
    - Dst: xsltInitDocKeyTable
      Src: /src/libxslt/libxslt/keys.c:600,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/keys.c:590,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/keys.c:604,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/keys.c:607,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 610
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 610
    functionName: xsltInitAllDocKeys
    functionSourceFile: /src/libxslt/libxslt/keys.c
    functionUses: []
    functionsReached:
    - xsltInitDocKeyTable
    - xmlStrEqual
    - fprintf
    - xsltNextImport
    linkageType: ''
    returnType: int
    signature: 'int xsltInitAllDocKeys(xsltTransformContextPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxslt/libxslt/keys.c:897,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/keys.c:902,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/keys.c:914,1
    - Dst: XSLT_TRACE
      Src: /src/libxslt/libxslt/keys.c:902,1
    - Dst: xsltInitCtxtKey
      Src: /src/libxslt/libxslt/keys.c:909,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/keys.c:918,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - idoc
    argTypes:
    - xsltTransformContextPtr
    - xsltDocumentPtr
    constantsTouched: []
    func_position:
      end: 921
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 921
    functionName: xsltInitCtxtKeys
    functionSourceFile: /src/libxslt/libxslt/keys.c
    functionUses: []
    functionsReached:
    - xsltNextImport
    - XSLT_TRACE
    - xsltGenericDebug
    - fprintf
    - xsltInitCtxtKey
    linkageType: ''
    returnType: void
    signature: 'void xsltInitCtxtKeys(xsltTransformContextPtr ctxt, xsltDocumentPtr
      idoc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeKeyDefList
      Src: /src/libxslt/libxslt/keys.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - style
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: xsltFreeKeys
    functionSourceFile: /src/libxslt/libxslt/keys.c
    functionUses: []
    functionsReached:
    - xsltFreeKeyDefList
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeKeys(xsltStylesheetPtr style) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeExtElement
      Src: /src/libxslt/libxslt/extensions.c:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: xsltFreeExtElementEntry
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltFreeExtElement
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeExtElementEntry(void *payload, const xmlChar *name
      ATTRIBUTE_UNUSED) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/extensions.c:1199,1
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/extensions.c:1200,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/extensions.c:1211,1
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/extensions.c:1208,1
    - Dst: XSLT_CCTXT
      Src: /src/libxslt/libxslt/extensions.c:1206,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/extensions.c:1233,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 2
    argNames:
    - style
    - URI
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1239
      start: 1194
    functionDepth: 0
    functionLinenumber: 1194
    functionLinenumberEnd: 1239
    functionName: xsltCheckExtPrefix
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - XSLT_CCTXT
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'int xsltCheckExtPrefix(xsltStylesheetPtr style, const xmlChar * URI) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/extensions.c:1265,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - style
    - URI
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1270
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1270
    functionName: xsltCheckExtURI
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'int xsltCheckExtURI(xsltStylesheetPtr style, const xmlChar * URI) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1383,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1388,1
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/extensions.c:1385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1389
      start: 1377
    functionDepth: 0
    functionLinenumber: 1377
    functionLinenumberEnd: 1389
    functionName: xsltUnregisterAllExtModules
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: void
    signature: 'static void xsltUnregisterAllExtModules(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1900,1
    - Dst: xsltExtModuleRegisterDynamic
      Src: /src/libxslt/libxslt/extensions.c:1908,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1904,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/extensions.c:1902,1
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1909,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/extensions.c:1911,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1913,1
    - Dst: XML_CAST_FPTR
      Src: /src/libxslt/libxslt/extensions.c:1902,1
    - Dst: XML_CAST_FPTR
      Src: /src/libxslt/libxslt/extensions.c:1911,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - name
    - URI
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1918
      start: 1892
    functionDepth: 0
    functionLinenumber: 1892
    functionLinenumberEnd: 1918
    functionName: xsltExtModuleTopLevelLookup
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltExtModuleRegisterDynamic
    - xmlMutexLock
    - xmlHashLookup2
    - XML_CAST_FPTR
    - xmlMutexUnlock
    linkageType: ''
    returnType: xsltTopLevelFunction
    signature: 'xsltTopLevelFunction xsltExtModuleTopLevelLookup(const xmlChar * name,
      const xmlChar * URI) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/extensions.c:2243,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:2248,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:2252,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - URI
    - data
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 2254
      start: 2238
    functionDepth: 0
    functionLinenumber: 2238
    functionLinenumberEnd: 2254
    functionName: xsltExtStyleShutdownTest
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xsltTransformError
    - xsltGenericError
    linkageType: ''
    returnType: void
    signature: 'static void xsltExtStyleShutdownTest(xsltStylesheetPtr style ATTRIBUTE_UNUSED,
      const xmlChar * URI, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltInitGlobals
      Src: /src/libxslt/libxslt/extensions.c:2264,1
    - Dst: xsltRegisterExtModuleFull
      Src: /src/libxslt/libxslt/extensions.c:2265,1
    - Dst: xsltRegisterExtModuleElement
      Src: /src/libxslt/libxslt/extensions.c:2272,1
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/libxslt/extensions.c:2269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2276
      start: 2261
    functionDepth: 0
    functionLinenumber: 2261
    functionLinenumberEnd: 2276
    functionName: xsltRegisterTestModule
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltRegisterExtModuleFull
    - xsltRegisterExtModuleElement
    - xsltRegisterExtModuleFunction
    - xsltInitGlobals
    linkageType: ''
    returnType: void
    signature: 'void xsltRegisterTestModule(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewMutex
      Src: /src/libxslt/libxslt/extensions.c:2303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2305
      start: 2299
    functionDepth: 0
    functionLinenumber: 2299
    functionLinenumberEnd: 2305
    functionName: xsltInitGlobals
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlNewMutex
    linkageType: ''
    returnType: void
    signature: 'void xsltInitGlobals(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:546,1
    - Dst: xsltNewExtDef
      Src: /src/libxslt/libxslt/extensions.c:566,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/extensions.c:561,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/libxslt/extensions.c:555,1
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:585,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/extensions.c:586,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:587,1
    - Dst: xsltExtModuleRegisterDynamic
      Src: /src/libxslt/libxslt/extensions.c:589,1
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:590,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/extensions.c:591,1
    - Dst: xsltStyleGetExtData
      Src: /src/libxslt/libxslt/extensions.c:596,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:592,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 3
    argNames:
    - style
    - prefix
    - URI
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 601
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 601
    functionName: xsltRegisterExtPrefix
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xsltExtModuleRegisterDynamic
    - xmlMutexUnlock
    - xmlStrEqual
    - xmlHashLookup
    - xsltGenericDebug
    - xsltNewExtDef
    - xsltStyleGetExtData
    linkageType: ''
    returnType: int
    signature: 'int xsltRegisterExtPrefix(xsltStylesheetPtr style, const xmlChar *
      prefix, const xmlChar * URI) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:1151,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 3
    argNames:
    - payload
    - vctxt
    - URI
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1161
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1161
    functionName: xsltShutdownExt
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    linkageType: ''
    returnType: void
    signature: 'static void xsltShutdownExt(void *payload, void *vctxt, const xmlChar
      * URI) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashScan
      Src: /src/libxslt/libxslt/extensions.c:1176,1
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/extensions.c:1177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - style
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 1179
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1179
    functionName: xsltShutdownExts
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    - xmlHashScan
    linkageType: ''
    returnType: void
    signature: 'void xsltShutdownExts(xsltStylesheetPtr style) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/extensions.c:1869,1
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1873,1
    - Dst: XML_CAST_FPTR
      Src: /src/libxslt/libxslt/extensions.c:1876,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1878,1
    - Dst: xmlHashUpdateEntry2
      Src: /src/libxslt/libxslt/extensions.c:1875,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - name
    - URI
    - function
    argTypes:
    - xmlChar*
    - xmlChar*
    - xsltTopLevelFunction
    constantsTouched: []
    func_position:
      end: 1881
      start: 1861
    functionDepth: 0
    functionLinenumber: 1861
    functionLinenumberEnd: 1881
    functionName: xsltRegisterExtModuleTopLevel
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - XML_CAST_FPTR
    - xmlMutexUnlock
    - xmlHashCreate
    - xmlHashUpdateEntry2
    linkageType: ''
    returnType: int
    signature: 'int xsltRegisterExtModuleTopLevel(const xmlChar * name, const xmlChar
      * URI, xsltTopLevelFunction function) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1954,1
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/extensions.c:1956,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1960
      start: 1951
    functionDepth: 0
    functionLinenumber: 1951
    functionLinenumberEnd: 1960
    functionName: xsltUnregisterAllExtModuleTopLevel
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: void
    signature: 'static void xsltUnregisterAllExtModuleTopLevel(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/extensions.c:866,1
    - Dst: xsltStyleInitializeStylesheetModule
      Src: /src/libxslt/libxslt/extensions.c:877,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 2
    argNames:
    - style
    - URI
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 881
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 881
    functionName: xsltStyleStylesheetLevelGetExtData
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltStyleInitializeStylesheetModule
    - xmlHashLookup
    linkageType: ''
    returnType: void*
    signature: "void *xsltStyleStylesheetLevelGetExtData(xsltStylesheetPtr style,\t\t\t\t
      const xmlChar * URI) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/extensions.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ext
    argTypes:
    - xsltExtModulePtr
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: xsltFreeExtModule
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeExtModule(xsltExtModulePtr ext) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeExtDef
      Src: /src/libxslt/libxslt/extensions.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - extensiond
    argTypes:
    - xsltExtDefPtr
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: xsltFreeExtDefList
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltFreeExtDef
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeExtDefList(xsltExtDefPtr extensiond) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/extensions.c:285,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - precomp
    - transform
    argTypes:
    - xsltPreComputeFunction
    - xsltTransformFunction
    constantsTouched: []
    func_position:
      end: 294
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 294
    functionName: xsltNewExtElement
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltExtElementPtr
    signature: 'static xsltExtElementPtr xsltNewExtElement(xsltPreComputeFunction
      precomp, xsltTransformFunction transform) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/extensions.c:902,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/extensions.c:915,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/extensions.c:907,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:917,1
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:913,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:921,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:930,1
    - Dst: xsltNewExtData
      Src: /src/libxslt/libxslt/extensions.c:938,1
    - Dst: xmlHashAddEntry
      Src: /src/libxslt/libxslt/extensions.c:940,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:941,1
    - Dst: xsltFreeExtData
      Src: /src/libxslt/libxslt/extensions.c:946,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 2
    argNames:
    - ctxt
    - URI
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 952
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 952
    functionName: xsltGetExtData
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xsltFreeExtData
    - xmlMutexUnlock
    - xmlHashCreate
    - xsltNewExtData
    - xmlHashLookup
    - xmlHashAddEntry
    - xsltGenericDebug
    - xsltTransformError
    linkageType: ''
    returnType: void*
    signature: 'void *xsltGetExtData(xsltTransformContextPtr ctxt, const xmlChar *
      URI) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1498,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1502,1
    - Dst: xmlHashRemoveEntry2
      Src: /src/libxslt/libxslt/extensions.c:1500,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - name
    - URI
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1505
      start: 1490
    functionDepth: 0
    functionLinenumber: 1490
    functionLinenumberEnd: 1505
    functionName: xsltUnregisterExtModuleFunction
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlHashRemoveEntry2
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'int xsltUnregisterExtModuleFunction(const xmlChar * name, const xmlChar
      * URI) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/extensions.c:1672,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1688,1
    - Dst: xsltNewExtElement
      Src: /src/libxslt/libxslt/extensions.c:1678,1
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1676,1
    - Dst: xmlHashUpdateEntry2
      Src: /src/libxslt/libxslt/extensions.c:1684,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 4
    argNames:
    - name
    - URI
    - precomp
    - transform
    argTypes:
    - xmlChar*
    - xmlChar*
    - xsltPreComputeFunction
    - xsltTransformFunction
    constantsTouched: []
    func_position:
      end: 1691
      start: 1659
    functionDepth: 0
    functionLinenumber: 1659
    functionLinenumberEnd: 1691
    functionName: xsltRegisterExtModuleElement
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltNewExtElement
    - xmlMutexLock
    - xmlMutexUnlock
    - xmlHashCreate
    - xmlHashUpdateEntry2
    linkageType: ''
    returnType: int
    signature: 'int xsltRegisterExtModuleElement(const xmlChar * name, const xmlChar
      * URI, xsltPreComputeFunction precomp, xsltTransformFunction transform) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1825,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1830,1
    - Dst: xmlHashRemoveEntry2
      Src: /src/libxslt/libxslt/extensions.c:1827,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - name
    - URI
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1833
      start: 1817
    functionDepth: 0
    functionLinenumber: 1817
    functionLinenumberEnd: 1833
    functionName: xsltUnregisterExtModuleElement
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlHashRemoveEntry2
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'int xsltUnregisterExtModuleElement(const xmlChar * name, const xmlChar
      * URI) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/extensions.c:2014,1
    - Dst: xsltGetExtData
      Src: /src/libxslt/libxslt/extensions.c:2020,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:2017,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:2022,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:2028,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/extensions.c:2028,1
    - Dst: xsltGetExtData
      Src: /src/libxslt/libxslt/extensions.c:2033,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:2035,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/extensions.c:2035,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:2040,1
    - Dst: xsltXPathGetTransformContext
      Src: /src/libxslt/libxslt/extensions.c:2040,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:2045,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 2048
      start: 2007
    functionDepth: 0
    functionLinenumber: 2007
    functionLinenumberEnd: 2048
    functionName: xsltExtFunctionTest
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xsltGetExtData
    - xsltXPathGetTransformContext
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'static void xsltExtFunctionTest(xmlXPathParserContextPtr ctxt, int
      nargs ATTRIBUTE_UNUSED) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:2109,1
    - Dst: xsltGetExtData
      Src: /src/libxslt/libxslt/extensions.c:2112,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:2125,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:2114,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:2120,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:2130,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:2135,1
    - Dst: xmlNewComment
      Src: /src/libxslt/libxslt/extensions.c:2139,1
    - Dst: xmlAddChild
      Src: /src/libxslt/libxslt/extensions.c:2141,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - ctxt
    - node
    - inst
    - ATTRIBUTE_UNUSED
    argTypes:
    - xsltTransformContextPtr
    - xmlNodePtr
    - xmlNodePtr
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 2142
      start: 2101
    functionDepth: 0
    functionLinenumber: 2101
    functionLinenumberEnd: 2142
    functionName: xsltExtElementTest
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlAddChild
    - xsltGetExtData
    - xmlNewComment
    - xsltGenericDebug
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'static void xsltExtElementTest(xsltTransformContextPtr ctxt, xmlNodePtr
      node, xmlNodePtr inst, xsltElemPreCompPtr comp ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:2192,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:2201,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:2197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - ctxt
    - URI
    - data
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 2203
      start: 2187
    functionDepth: 0
    functionLinenumber: 2187
    functionLinenumberEnd: 2203
    functionName: xsltExtShutdownTest
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xsltTransformError
    linkageType: ''
    returnType: void
    signature: 'static void xsltExtShutdownTest(xsltTransformContextPtr ctxt, const
      xmlChar * URI, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FreeLibrary
      Src: /src/libxslt/libxslt/extensions.c:2285,1
    - Dst: dlclose
      Src: /src/libxslt/libxslt/extensions.c:2287,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 3
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2292
      start: 2278
    functionDepth: 0
    functionLinenumber: 2278
    functionLinenumberEnd: 2292
    functionName: xsltHashScannerModuleFree
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - FreeLibrary
    - dlclose
    linkageType: ''
    returnType: void
    signature: 'static void xsltHashScannerModuleFree(void *payload, void *data ATTRIBUTE_UNUSED,
      const xmlChar *name ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxslt/libxslt/extensions.c:2356,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 3
    argCount: 5
    argNames:
    - ATTRIBUTE_UNUSED
    - data
    - URI
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2357
      start: 2347
    functionDepth: 0
    functionLinenumber: 2347
    functionLinenumberEnd: 2357
    functionName: xsltDebugDumpExtModulesCallback
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xsltDebugDumpExtModulesCallback(void *function ATTRIBUTE_UNUSED,
      void *data, const xmlChar * URI, const xmlChar * not_used ATTRIBUTE_UNUSED,
      const xmlChar * not_used2 ATTRIBUTE_UNUSED) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/extensions.c:145,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/extensions.c:147,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/extensions.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - extensiond
    argTypes:
    - xsltExtDefPtr
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: xsltFreeExtDef
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeExtDef(xsltExtDefPtr extensiond) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/extensions.c:188,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - initFunc
    - shutdownFunc
    - styleInitFunc
    - styleShutdownFunc
    argTypes:
    - xsltExtInitFunction
    - xsltExtShutdownFunction
    - xsltStyleExtInitFunction
    - xsltStyleExtShutdownFunction
    constantsTouched: []
    func_position:
      end: 199
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 199
    functionName: xsltNewExtModule
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltExtModulePtr
    signature: 'static xsltExtModulePtr xsltNewExtModule(xsltExtInitFunction initFunc,
      xsltExtShutdownFunction shutdownFunc, xsltStyleExtInitFunction styleInitFunc,
      xsltStyleExtShutdownFunction styleShutdownFunc) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:980,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:988,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/extensions.c:994,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:997,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:1006,1
    - Dst: xsltNewExtData
      Src: /src/libxslt/libxslt/extensions.c:1010,1
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/extensions.c:1019,1
    - Dst: xsltFreeExtData
      Src: /src/libxslt/libxslt/extensions.c:1023,1
    - Dst: xmlHashAddEntry
      Src: /src/libxslt/libxslt/extensions.c:1028,1
    - Dst: xsltGenericError
      Src: /src/libxslt/libxslt/extensions.c:1029,1
    - Dst: xsltFreeExtData
      Src: /src/libxslt/libxslt/extensions.c:1033,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:1038,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 48
    argCount: 3
    argNames:
    - payload
    - data
    - URI
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1042
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 1042
    functionName: xsltInitCtxtExt
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltFreeExtData
    - xmlHashCreate
    - xsltNewExtData
    - xmlHashLookup
    - xmlHashAddEntry
    - xsltGenericDebug
    - xsltGenericError
    linkageType: ''
    returnType: void
    signature: 'static void xsltInitCtxtExt(void *payload, void *data, const xmlChar
      * URI) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/extensions.c:1297,1
    - Dst: xsltNewExtModule
      Src: /src/libxslt/libxslt/extensions.c:1313,1
    - Dst: xmlHashAddEntry
      Src: /src/libxslt/libxslt/extensions.c:1319,1
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1302,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/extensions.c:1304,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1322,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 5
    argNames:
    - URI
    - initFunc
    - shutdownFunc
    - styleInitFunc
    - styleShutdownFunc
    argTypes:
    - xmlChar*
    - xsltExtInitFunction
    - xsltExtShutdownFunction
    - xsltStyleExtInitFunction
    - xsltStyleExtShutdownFunction
    constantsTouched: []
    func_position:
      end: 1324
      start: 1284
    functionDepth: 0
    functionLinenumber: 1284
    functionLinenumberEnd: 1324
    functionName: xsltRegisterExtModuleFull
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xsltNewExtModule
    - xmlMutexUnlock
    - xmlHashCreate
    - xmlHashLookup
    - xmlHashAddEntry
    linkageType: ''
    returnType: int
    signature: 'int xsltRegisterExtModuleFull(const xmlChar * URI, xsltExtInitFunction
      initFunc, xsltExtShutdownFunction shutdownFunc, xsltStyleExtInitFunction styleInitFunc,
      xsltStyleExtShutdownFunction styleShutdownFunc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 1409
      start: 1403
    functionDepth: 0
    functionLinenumber: 1403
    functionLinenumberEnd: 1409
    functionName: xsltXPathGetTransformContext
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xsltTransformContextPtr
    signature: 'xsltTransformContextPtr xsltXPathGetTransformContext(xmlXPathParserContextPtr
      ctxt) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:2064,1
    - Dst: xsltStyleGetExtData
      Src: /src/libxslt/libxslt/extensions.c:2072,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:2069,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:2082,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:2074,1
    - Dst: xsltNewElemPreComp
      Src: /src/libxslt/libxslt/extensions.c:2088,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - style
    - inst
    - function
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    - xsltTransformFunction
    constantsTouched: []
    func_position:
      end: 2090
      start: 2057
    functionDepth: 0
    functionLinenumber: 2057
    functionLinenumberEnd: 2090
    functionName: xsltExtElementPreCompTest
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xsltTransformError
    - xsltNewElemPreComp
    - xsltStyleGetExtData
    linkageType: ''
    returnType: xsltElemPreCompPtr
    signature: 'static xsltElemPreCompPtr xsltExtElementPreCompTest(xsltStylesheetPtr
      style, xmlNodePtr inst, xsltTransformFunction function) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:2157,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:2173,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:2162,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:2168,1
    - Dst: xsltStyleGetExtData
      Src: /src/libxslt/libxslt/extensions.c:2160,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - ctxt
    - URI
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2176
      start: 2153
    functionDepth: 0
    functionLinenumber: 2153
    functionLinenumberEnd: 2176
    functionName: xsltExtInitTest
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xsltStyleGetExtData
    - xsltTransformError
    linkageType: ''
    returnType: void*
    signature: 'static void *xsltExtInitTest(xsltTransformContextPtr ctxt, const xmlChar
      * URI) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsltUnregisterAllExtModules
      Src: /src/libxslt/libxslt/extensions.c:2315,1
    - Dst: xsltUnregisterAllExtModuleTopLevel
      Src: /src/libxslt/libxslt/extensions.c:2318,1
    - Dst: xsltUnregisterAllExtModuleElement
      Src: /src/libxslt/libxslt/extensions.c:2317,1
    - Dst: xsltUnregisterAllExtModuleFunction
      Src: /src/libxslt/libxslt/extensions.c:2316,1
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:2320,1
    - Dst: xmlHashScan
      Src: /src/libxslt/libxslt/extensions.c:2323,1
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/extensions.c:2324,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:2327,1
    - Dst: xmlFreeMutex
      Src: /src/libxslt/libxslt/extensions.c:2329,1
    - Dst: xsltFreeLocales
      Src: /src/libxslt/libxslt/extensions.c:2331,1
    - Dst: xsltUninit
      Src: /src/libxslt/libxslt/extensions.c:2332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2333
      start: 2312
    functionDepth: 0
    functionLinenumber: 2312
    functionLinenumberEnd: 2333
    functionName: xsltCleanupGlobals
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    - xsltFreeLocales
    - xmlMutexLock
    - xsltUnregisterAllExtModules
    - xsltUnregisterAllExtModuleFunction
    - xmlHashScan
    - xsltUnregisterAllExtModuleElement
    - xmlMutexUnlock
    - xsltUninit
    - xmlFreeMutex
    - xsltUnregisterAllExtModuleTopLevel
    linkageType: ''
    returnType: void
    signature: 'void xsltCleanupGlobals(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeExtModule
      Src: /src/libxslt/libxslt/extensions.c:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: xsltFreeExtModuleEntry
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltFreeExtModule
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeExtModuleEntry(void *payload, const xmlChar *name
      ATTRIBUTE_UNUSED) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:367,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/extensions.c:428,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:415,1
    - Dst: xmlStrPrintf
      Src: /src/libxslt/libxslt/extensions.c:411,1
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/extensions.c:358,1
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:363,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/extensions.c:377,1
    - Dst: xmlCheckFilename
      Src: /src/libxslt/libxslt/extensions.c:421,1
    - Dst: LoadLibraryA
      Src: /src/libxslt/libxslt/extensions.c:435,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:424,1
    - Dst: xmlStrcat
      Src: /src/libxslt/libxslt/extensions.c:452,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:470,1
    - Dst: FreeLibrary
      Src: /src/libxslt/libxslt/extensions.c:481,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:370,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/extensions.c:375,1
    - Dst: getenv
      Src: /src/libxslt/libxslt/extensions.c:397,1
    - Dst: dlopen
      Src: /src/libxslt/libxslt/extensions.c:437,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/extensions.c:446,1
    - Dst: GetProcAddress
      Src: /src/libxslt/libxslt/extensions.c:455,1
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:468,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:474,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/extensions.c:487,1
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/extensions.c:488,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/extensions.c:366,1
    - Dst: xmlStrstr
      Src: /src/libxslt/libxslt/extensions.c:373,1
    - Dst: LIBXSLT_DEFAULT_PLUGINS_PATH
      Src: /src/libxslt/libxslt/extensions.c:400,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:442,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/extensions.c:451,1
    - Dst: dlsym
      Src: /src/libxslt/libxslt/extensions.c:457,1
    - Dst: xmlHashAddEntry
      Src: /src/libxslt/libxslt/extensions.c:469,1
    - Dst: dlclose
      Src: /src/libxslt/libxslt/extensions.c:483,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 87
    argCount: 1
    argNames:
    - URI
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 490
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 490
    functionName: xsltExtModuleRegisterDynamic
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - dlclose
    - xmlCheckFilename
    - xmlStrPrintf
    - LIBXSLT_DEFAULT_PLUGINS_PATH
    - dlsym
    - GetProcAddress
    - xmlStrcat
    - LoadLibraryA
    - xmlMutexUnlock
    - xmlStrdup
    - xmlHashLookup
    - dlopen
    - xsltGenericDebug
    - xmlFree
    - xmlStrstr
    - FreeLibrary
    - xmlHashAddEntry
    - xmlHashCreate
    - getenv
    linkageType: ''
    returnType: int
    signature: 'static int xsltExtModuleRegisterDynamic(const xmlChar * URI) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/extensions.c:662,1
    - Dst: XML_CAST_FPTR
      Src: /src/libxslt/libxslt/extensions.c:666,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxslt/libxslt/extensions.c:665,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 4
    argNames:
    - ctxt
    - name
    - URI
    - function
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - xmlChar*
    - xsltTransformFunction
    constantsTouched: []
    func_position:
      end: 667
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 667
    functionName: xsltRegisterExtElement
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlHashCreate
    - XML_CAST_FPTR
    - xmlHashAddEntry2
    linkageType: ''
    returnType: int
    signature: 'int xsltRegisterExtElement(xsltTransformContextPtr ctxt, const xmlChar
      * name, const xmlChar * URI, xsltTransformFunction function) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:709,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:719,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:723,1
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:715,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/extensions.c:717,1
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/extensions.c:732,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:741,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:746,1
    - Dst: xsltNewExtData
      Src: /src/libxslt/libxslt/extensions.c:757,1
    - Dst: xmlHashAddEntry
      Src: /src/libxslt/libxslt/extensions.c:764,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:767,1
    - Dst: xsltFreeExtData
      Src: /src/libxslt/libxslt/extensions.c:772,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 2
    argNames:
    - style
    - URI
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 777
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 777
    functionName: xsltStyleInitializeStylesheetModule
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xsltFreeExtData
    - xmlMutexUnlock
    - xmlHashCreate
    - xsltNewExtData
    - xmlHashLookup
    - xmlHashAddEntry
    - xsltGenericDebug
    - xsltTransformError
    linkageType: ''
    returnType: xsltExtDataPtr
    signature: "static xsltExtDataPtr xsltStyleInitializeStylesheetModule(xsltStylesheetPtr
      style,\t\t\t\t const xmlChar * URI) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:1105,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 3
    argNames:
    - payload
    - vctxt
    - URI
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1109
      start: 1091
    functionDepth: 0
    functionLinenumber: 1091
    functionLinenumberEnd: 1109
    functionName: xsltShutdownCtxtExt
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    linkageType: ''
    returnType: void
    signature: 'static void xsltShutdownCtxtExt(void *payload, void *vctxt, const
      xmlChar * URI) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/extensions.c:1429,1
    - Dst: xmlHashUpdateEntry2
      Src: /src/libxslt/libxslt/extensions.c:1435,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1438,1
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1433,1
    - Dst: XML_CAST_FPTR
      Src: /src/libxslt/libxslt/extensions.c:1436,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - name
    - URI
    - function
    argTypes:
    - xmlChar*
    - xmlChar*
    - xmlXPathFunction
    constantsTouched: []
    func_position:
      end: 1441
      start: 1421
    functionDepth: 0
    functionLinenumber: 1421
    functionLinenumberEnd: 1441
    functionName: xsltRegisterExtModuleFunction
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - XML_CAST_FPTR
    - xmlMutexUnlock
    - xmlHashCreate
    - xmlHashUpdateEntry2
    linkageType: ''
    returnType: int
    signature: 'int xsltRegisterExtModuleFunction(const xmlChar * name, const xmlChar
      * URI, xmlXPathFunction function) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/extensions.c:1545,1
    - Dst: xsltInitElemPreComp
      Src: /src/libxslt/libxslt/extensions.c:1553,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:1547,1
    - Dst: memset
      Src: /src/libxslt/libxslt/extensions.c:1551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - style
    - inst
    - function
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    - xsltTransformFunction
    constantsTouched: []
    func_position:
      end: 1556
      start: 1539
    functionDepth: 0
    functionLinenumber: 1539
    functionLinenumberEnd: 1556
    functionName: xsltNewElemPreComp
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltInitElemPreComp
    - memset
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltElemPreCompPtr
    signature: 'xsltElemPreCompPtr xsltNewElemPreComp(xsltStylesheetPtr style, xmlNodePtr
      inst, xsltTransformFunction function) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1604,1
    - Dst: xsltNewElemPreComp
      Src: /src/libxslt/libxslt/extensions.c:1642,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1609,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/extensions.c:1607,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - style
    - inst
    argTypes:
    - xsltStylesheetPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1646
      start: 1594
    functionDepth: 0
    functionLinenumber: 1594
    functionLinenumberEnd: 1646
    functionName: xsltPreComputeExtModuleElement
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlHashLookup2
    - xsltNewElemPreComp
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: xsltElemPreCompPtr
    signature: 'xsltElemPreCompPtr xsltPreComputeExtModuleElement(xsltStylesheetPtr
      style, xmlNodePtr inst) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 496
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 496
    functionName: xsltExtModuleRegisterDynamic
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xsltExtModuleRegisterDynamic(const xmlChar * URI ATTRIBUTE_UNUSED) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1742,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1746,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/extensions.c:1744,1
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1754,1
    - Dst: xsltExtModuleRegisterDynamic
      Src: /src/libxslt/libxslt/extensions.c:1753,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/extensions.c:1757,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1759,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - name
    - URI
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1766
      start: 1734
    functionDepth: 0
    functionLinenumber: 1734
    functionLinenumberEnd: 1766
    functionName: xsltExtModuleElementLookup
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltExtModuleRegisterDynamic
    - xmlHashLookup2
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: xsltTransformFunction
    signature: 'xsltTransformFunction xsltExtModuleElementLookup(const xmlChar * name,
      const xmlChar * URI) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/extensions.c:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ext
    argTypes:
    - xsltExtElementPtr
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: xsltFreeExtElement
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeExtElement(xsltExtElementPtr ext) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxslt/libxslt/extensions.c:630,1
    - Dst: xmlHashCreate
      Src: /src/libxslt/libxslt/extensions.c:633,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxslt/libxslt/extensions.c:637,1
    - Dst: XML_CAST_FPTR
      Src: /src/libxslt/libxslt/extensions.c:638,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 4
    argNames:
    - ctxt
    - name
    - URI
    - function
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - xmlChar*
    - xmlXPathFunction
    constantsTouched: []
    func_position:
      end: 641
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 641
    functionName: xsltRegisterExtFunction
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlXPathRegisterFuncNS
    - xmlHashAddEntry2
    - XML_CAST_FPTR
    - xmlHashCreate
    linkageType: ''
    returnType: int
    signature: 'int xsltRegisterExtFunction(xsltTransformContextPtr ctxt, const xmlChar
      * name, const xmlChar * URI, xmlXPathFunction function) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/extensions.c:679,1
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/extensions.c:681,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 682
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 682
    functionName: xsltFreeCtxtExts
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeCtxtExts(xsltTransformContextPtr ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashScan
      Src: /src/libxslt/libxslt/extensions.c:1070,1
    - Dst: xsltNextImport
      Src: /src/libxslt/libxslt/extensions.c:1074,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:1077,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 1081
      start: 1052
    functionDepth: 0
    functionLinenumber: 1052
    functionLinenumberEnd: 1081
    functionName: xsltInitCtxtExts
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xmlHashScan
    - xsltNextImport
    linkageType: ''
    returnType: int
    signature: 'int xsltInitCtxtExts(xsltTransformContextPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1515,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1520,1
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/extensions.c:1517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1521
      start: 1512
    functionDepth: 0
    functionLinenumber: 1512
    functionLinenumberEnd: 1521
    functionName: xsltUnregisterAllExtModuleFunction
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: void
    signature: 'static void xsltUnregisterAllExtModuleFunction(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/extensions.c:1526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xsltElemPreCompPtr
    constantsTouched: []
    func_position:
      end: 1527
      start: 1524
    functionDepth: 0
    functionLinenumber: 1524
    functionLinenumberEnd: 1527
    functionName: xsltFreeElemPreComp
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeElemPreComp(xsltElemPreCompPtr comp) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - comp
    - style
    - inst
    - function
    - freeFunc
    argTypes:
    - xsltElemPreCompPtr
    - xsltStylesheetPtr
    - xmlNodePtr
    - xsltTransformFunction
    - xsltElemPreCompDeallocator
    constantsTouched: []
    func_position:
      end: 1583
      start: 1571
    functionDepth: 0
    functionLinenumber: 1571
    functionLinenumberEnd: 1583
    functionName: xsltInitElemPreComp
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xsltInitElemPreComp(xsltElemPreCompPtr comp, xsltStylesheetPtr
      style, xmlNodePtr inst, xsltTransformFunction function, xsltElemPreCompDeallocator
      freeFunc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XML_CAST_FPTR
      Src: /src/libxslt/libxslt/extensions.c:1714,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/extensions.c:1714,1
    - Dst: xsltExtModuleElementLookup
      Src: /src/libxslt/libxslt/extensions.c:1720,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - ctxt
    - name
    - URI
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1723
      start: 1704
    functionDepth: 0
    functionLinenumber: 1704
    functionLinenumberEnd: 1723
    functionName: xsltExtElementLookup
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlHashLookup2
    - XML_CAST_FPTR
    - xsltExtModuleElementLookup
    linkageType: ''
    returnType: xsltTransformFunction
    signature: 'xsltTransformFunction xsltExtElementLookup(xsltTransformContextPtr
      ctxt, const xmlChar * name, const xmlChar * URI) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/extensions.c:119,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/extensions.c:127,1
    - Dst: xmlStrdup
      Src: /src/libxslt/libxslt/extensions.c:129,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:121,1
    - Dst: memset
      Src: /src/libxslt/libxslt/extensions.c:125,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - prefix
    - URI
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 131
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 131
    functionName: xsltNewExtDef
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - memset
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltExtDefPtr
    signature: 'static xsltExtDefPtr xsltNewExtDef(const xmlChar * prefix, const xmlChar
      * URI) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1843,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1848,1
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/extensions.c:1845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1849
      start: 1840
    functionDepth: 0
    functionLinenumber: 1840
    functionLinenumberEnd: 1849
    functionName: xsltUnregisterAllExtModuleElement
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: void
    signature: 'static void xsltUnregisterAllExtModuleElement(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:2219,1
    - Dst: xsltGenericDebug
      Src: /src/libxslt/libxslt/extensions.c:2224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - URI
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2227
      start: 2214
    functionDepth: 0
    functionLinenumber: 2214
    functionLinenumberEnd: 2227
    functionName: xsltExtStyleInitTest
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltGenericDebug
    - xsltTransformError
    linkageType: ''
    returnType: void*
    signature: 'static void *xsltExtStyleInitTest(xsltStylesheetPtr style ATTRIBUTE_UNUSED,
      const xmlChar * URI) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxslt/libxslt/extensions.c:2344,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 5
    argCount: 5
    argNames:
    - ATTRIBUTE_UNUSED
    - data
    - name
    - URI
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2345
      start: 2335
    functionDepth: 0
    functionLinenumber: 2335
    functionLinenumberEnd: 2345
    functionName: xsltDebugDumpExtensionsCallback
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xsltDebugDumpExtensionsCallback(void *function ATTRIBUTE_UNUSED,
      void *data, const xmlChar * name, const xmlChar * URI, const xmlChar * not_used
      ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxslt/libxslt/extensions.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ext
    argTypes:
    - xsltExtDataPtr
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: xsltFreeExtData
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeExtData(xsltExtDataPtr ext) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeExtDefList
      Src: /src/libxslt/libxslt/extensions.c:516,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - style
    argTypes:
    - xsltStylesheetPtr
    constantsTouched: []
    func_position:
      end: 517
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 517
    functionName: xsltFreeExts
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltFreeExtDefList
    linkageType: ''
    returnType: void
    signature: 'void xsltFreeExts(xsltStylesheetPtr style) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/extensions.c:813,1
    - Dst: xsltStyleInitializeStylesheetModule
      Src: /src/libxslt/libxslt/extensions.c:838,1
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/extensions.c:830,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 2
    argNames:
    - style
    - URI
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 842
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 842
    functionName: xsltStyleGetExtData
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltStyleInitializeStylesheetModule
    - xmlHashLookup
    linkageType: ''
    returnType: void*
    signature: 'void *xsltStyleGetExtData(xsltStylesheetPtr style, const xmlChar *
      URI) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashScan
      Src: /src/libxslt/libxslt/extensions.c:1124,1
    - Dst: xmlHashFree
      Src: /src/libxslt/libxslt/extensions.c:1125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xsltTransformContextPtr
    constantsTouched: []
    func_position:
      end: 1127
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1127
    functionName: xsltShutdownCtxtExts
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    - xmlHashScan
    linkageType: ''
    returnType: void
    signature: 'void xsltShutdownCtxtExts(xsltTransformContextPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1363,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1367,1
    - Dst: xmlHashRemoveEntry
      Src: /src/libxslt/libxslt/extensions.c:1365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - URI
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1370
      start: 1353
    functionDepth: 0
    functionLinenumber: 1353
    functionLinenumberEnd: 1370
    functionName: xsltUnregisterExtModule
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlHashRemoveEntry
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'int xsltUnregisterExtModule(const xmlChar * URI) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1937,1
    - Dst: xmlHashRemoveEntry2
      Src: /src/libxslt/libxslt/extensions.c:1939,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1941,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - name
    - URI
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1944
      start: 1929
    functionDepth: 0
    functionLinenumber: 1929
    functionLinenumberEnd: 1944
    functionName: xsltUnregisterExtModuleTopLevel
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlHashRemoveEntry2
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'int xsltUnregisterExtModuleTopLevel(const xmlChar * name, const xmlChar
      * URI) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxslt/libxslt/extensions.c:2370,1
    - Dst: xmlHashScanFull
      Src: /src/libxslt/libxslt/extensions.c:2377,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/extensions.c:2376,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/extensions.c:2374,1
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:2372,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/extensions.c:2381,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/extensions.c:2383,1
    - Dst: xmlHashScanFull
      Src: /src/libxslt/libxslt/extensions.c:2384,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/extensions.c:2388,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/extensions.c:2390,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/extensions.c:2395,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:2401,1
    - Dst: fprintf
      Src: /src/libxslt/libxslt/extensions.c:2397,1
    - Dst: xmlHashScanFull
      Src: /src/libxslt/libxslt/extensions.c:2398,1
    - Dst: xmlHashScanFull
      Src: /src/libxslt/libxslt/extensions.c:2391,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - output
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 2402
      start: 2365
    functionDepth: 0
    functionLinenumber: 2365
    functionLinenumberEnd: 2402
    functionName: xsltDebugDumpExtensions
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlHashScanFull
    - fprintf
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: void
    signature: 'void xsltDebugDumpExtensions(FILE * output) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFreeExtData
      Src: /src/libxslt/libxslt/extensions.c:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: xsltFreeExtDataEntry
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltFreeExtData
    linkageType: ''
    returnType: void
    signature: 'static void xsltFreeExtDataEntry(void *payload, const xmlChar *name
      ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxslt/libxslt/extensions.c:236,1
    - Dst: xsltTransformError
      Src: /src/libxslt/libxslt/extensions.c:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - extModule
    - extData
    argTypes:
    - xsltExtModulePtr
    - void*
    constantsTouched: []
    func_position:
      end: 245
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 245
    functionName: xsltNewExtData
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltTransformError
    - xmlMalloc
    linkageType: ''
    returnType: xsltExtDataPtr
    signature: 'static xsltExtDataPtr xsltNewExtData(xsltExtModulePtr extModule, void
      *extData) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltRegisterExtModuleFull
      Src: /src/libxslt/libxslt/extensions.c:1341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - URI
    - initFunc
    - shutdownFunc
    argTypes:
    - xmlChar*
    - xsltExtInitFunction
    - xsltExtShutdownFunction
    constantsTouched: []
    func_position:
      end: 1343
      start: 1336
    functionDepth: 0
    functionLinenumber: 1336
    functionLinenumberEnd: 1343
    functionName: xsltRegisterExtModule
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltRegisterExtModuleFull
    linkageType: ''
    returnType: int
    signature: 'int xsltRegisterExtModule(const xmlChar * URI, xsltExtInitFunction
      initFunc, xsltExtShutdownFunction shutdownFunc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1460,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/extensions.c:1462,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1464,1
    - Dst: xsltExtModuleRegisterDynamic
      Src: /src/libxslt/libxslt/extensions.c:1468,1
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1469,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/extensions.c:1472,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1474,1
    - Dst: XML_CAST_FPTR
      Src: /src/libxslt/libxslt/extensions.c:1462,1
    - Dst: XML_CAST_FPTR
      Src: /src/libxslt/libxslt/extensions.c:1471,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - name
    - URI
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1479
      start: 1452
    functionDepth: 0
    functionLinenumber: 1452
    functionLinenumberEnd: 1479
    functionName: xsltExtModuleFunctionLookup
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltExtModuleRegisterDynamic
    - xmlMutexLock
    - xmlHashLookup2
    - XML_CAST_FPTR
    - xmlMutexUnlock
    linkageType: ''
    returnType: xmlXPathFunction
    signature: 'xmlXPathFunction xsltExtModuleFunctionLookup(const xmlChar * name,
      const xmlChar * URI) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1786,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1790,1
    - Dst: xsltExtModuleRegisterDynamic
      Src: /src/libxslt/libxslt/extensions.c:1793,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/extensions.c:1788,1
    - Dst: xmlMutexLock
      Src: /src/libxslt/libxslt/extensions.c:1794,1
    - Dst: xmlHashLookup2
      Src: /src/libxslt/libxslt/extensions.c:1797,1
    - Dst: xmlMutexUnlock
      Src: /src/libxslt/libxslt/extensions.c:1799,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - name
    - URI
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1806
      start: 1777
    functionDepth: 0
    functionLinenumber: 1777
    functionLinenumberEnd: 1806
    functionName: xsltExtModuleElementPreComputeLookup
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xsltExtModuleRegisterDynamic
    - xmlHashLookup2
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: xsltPreComputeFunction
    signature: 'xsltPreComputeFunction xsltExtModuleElementPreComputeLookup(const
      xmlChar * name, const xmlChar * URI) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup
      Src: /src/libxslt/libxslt/extensions.c:1984,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - style
    - URI
    argTypes:
    - xsltStylesheetPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1989
      start: 1971
    functionDepth: 0
    functionLinenumber: 1971
    functionLinenumberEnd: 1989
    functionName: xsltGetExtInfo
    functionSourceFile: /src/libxslt/libxslt/extensions.c
    functionUses: []
    functionsReached:
    - xmlHashLookup
    linkageType: ''
    returnType: xmlHashTablePtr
    signature: 'xmlHashTablePtr xsltGetExtInfo(xsltStylesheetPtr style, const xmlChar
      * URI) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/libxslt/examples/xsltICUSort.c:24,1
    - Dst: ucol_setAttribute
      Src: /src/libxslt/examples/xsltICUSort.c:34,1
    - Dst: U_FAILURE
      Src: /src/libxslt/examples/xsltICUSort.c:25,1
    - Dst: U_FAILURE
      Src: /src/libxslt/examples/xsltICUSort.c:28,1
    - Dst: ucol_open
      Src: /src/libxslt/examples/xsltICUSort.c:27,1
    - Dst: ucol_setAttribute
      Src: /src/libxslt/examples/xsltICUSort.c:36,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - lang
    - lowerFirst
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 39
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 39
    functionName: xsltICUNewLocale
    functionSourceFile: /src/libxslt/examples/xsltICUSort.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - ucol_open
    - ucol_setAttribute
    linkageType: ''
    returnType: void*
    signature: 'void *xsltICUNewLocale(const xmlChar *lang, int lowerFirst) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ucol_close
      Src: /src/libxslt/examples/xsltICUSort.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - coll
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: xsltICUFreeLocale
    functionSourceFile: /src/libxslt/examples/xsltICUSort.c
    functionUses: []
    functionsReached:
    - ucol_close
    linkageType: ''
    returnType: void
    signature: 'void xsltICUFreeLocale(void *coll) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadDoc
      Src: /src/libxslt/examples/xsltICUSort.c:103,1
    - Dst: xmlReadDoc
      Src: /src/libxslt/examples/xsltICUSort.c:111,1
    - Dst: xsltParseStylesheetDoc
      Src: /src/libxslt/examples/xsltICUSort.c:125,1
    - Dst: xsltNewTransformContext
      Src: /src/libxslt/examples/xsltICUSort.c:129,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/examples/xsltICUSort.c:127,1
    - Dst: xsltSetCtxtLocaleHandlers
      Src: /src/libxslt/examples/xsltICUSort.c:130,1
    - Dst: xsltApplyStylesheetUser
      Src: /src/libxslt/examples/xsltICUSort.c:133,1
    - Dst: xsltFreeTransformContext
      Src: /src/libxslt/examples/xsltICUSort.c:136,1
    - Dst: xsltSaveResultToFile
      Src: /src/libxslt/examples/xsltICUSort.c:138,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/examples/xsltICUSort.c:140,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/examples/xsltICUSort.c:142,1
    - Dst: xsltFreeStylesheet
      Src: /src/libxslt/examples/xsltICUSort.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 145
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 145
    functionName: main
    functionSourceFile: /src/libxslt/examples/xsltICUSort.c
    functionUses: []
    functionsReached:
    - xsltSetCtxtLocaleHandlers
    - xmlReadDoc
    - xsltParseStylesheetDoc
    - xsltFreeStylesheet
    - xsltSaveResultToFile
    - xsltFreeTransformContext
    - xmlFreeDoc
    - xsltApplyStylesheetUser
    - xsltNewTransformContext
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/libxslt/examples/xsltICUSort.c:67,1
    - Dst: ucnv_toUChars
      Src: /src/libxslt/examples/xsltICUSort.c:71,1
    - Dst: U_FAILURE
      Src: /src/libxslt/examples/xsltICUSort.c:72,1
    - Dst: xmlMalloc
      Src: /src/libxslt/examples/xsltICUSort.c:75,1
    - Dst: U_FAILURE
      Src: /src/libxslt/examples/xsltICUSort.c:68,1
    - Dst: ucnv_toUChars
      Src: /src/libxslt/examples/xsltICUSort.c:78,1
    - Dst: U_FAILURE
      Src: /src/libxslt/examples/xsltICUSort.c:80,1
    - Dst: ucol_getSortKey
      Src: /src/libxslt/examples/xsltICUSort.c:83,1
    - Dst: xmlMalloc
      Src: /src/libxslt/examples/xsltICUSort.c:86,1
    - Dst: ucol_getSortKey
      Src: /src/libxslt/examples/xsltICUSort.c:89,1
    - Dst: xmlFree
      Src: /src/libxslt/examples/xsltICUSort.c:98,1
    - Dst: xmlFree
      Src: /src/libxslt/examples/xsltICUSort.c:92,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 31
    argCount: 2
    argNames:
    - coll
    - str
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 100
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 100
    functionName: xsltICUGenSortKey
    functionSourceFile: /src/libxslt/examples/xsltICUSort.c
    functionUses: []
    functionsReached:
    - xmlFree
    - ucol_getSortKey
    - ucnv_toUChars
    - U_FAILURE
    - ucnv_open
    - xmlMalloc
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xsltICUGenSortKey(void *coll, const xmlChar *str) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/xsltproc.c:106,1
    - Dst: xmlStrndup
      Src: /src/libxslt/xsltproc/xsltproc.c:116,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 1
    argNames:
    - path
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 122
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 122
    functionName: parsePath
    functionSourceFile: /src/libxslt/xsltproc/xsltproc.c
    functionUses: []
    functionsReached:
    - fprintf
    - xmlStrndup
    linkageType: ''
    returnType: void
    signature: 'static void parsePath(const xmlChar *path) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: defaultEntityLoader
      Src: /src/libxslt/xsltproc/xsltproc.c:150,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/xsltproc.c:155,1
    - Dst: xmlStrcat
      Src: /src/libxslt/xsltproc/xsltproc.c:169,1
    - Dst: xmlStrcat
      Src: /src/libxslt/xsltproc/xsltproc.c:168,1
    - Dst: xmlStrdup
      Src: /src/libxslt/xsltproc/xsltproc.c:167,1
    - Dst: defaultEntityLoader
      Src: /src/libxslt/xsltproc/xsltproc.c:172,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/xsltproc.c:177,1
    - Dst: xmlFree
      Src: /src/libxslt/xsltproc/xsltproc.c:183,1
    - Dst: xmlFree
      Src: /src/libxslt/xsltproc/xsltproc.c:186,1
    - Dst: warning
      Src: /src/libxslt/xsltproc/xsltproc.c:192,1
    - Dst: warning
      Src: /src/libxslt/xsltproc/xsltproc.c:194,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 53
    argCount: 3
    argNames:
    - URL
    - ID
    - ctxt
    argTypes:
    - char*
    - char*
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 197
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 197
    functionName: xsltprocExternalEntityLoader
    functionSourceFile: /src/libxslt/xsltproc/xsltproc.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrdup
    - defaultEntityLoader
    - fprintf
    - xmlStrcat
    - warning
    linkageType: ''
    returnType: xmlParserInputPtr
    signature: "static xmlParserInputPtr xsltprocExternalEntityLoader(const char *URL,
      const char *ID,\t\t\t xmlParserCtxtPtr ctxt) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ftime
      Src: /src/libxslt/xsltproc/xsltproc.c:213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - tvp
    - tzp
    argTypes:
    - struct timeval*
    - void*
    constantsTouched: []
    func_position:
      end: 219
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 219
    functionName: my_gettimeofday
    functionSourceFile: /src/libxslt/xsltproc/xsltproc.c
    functionUses: []
    functionsReached:
    - ftime
    linkageType: ''
    returnType: int
    signature: 'int my_gettimeofday(struct timeval *tvp, void *tzp) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/libxslt/xsltproc/xsltproc.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: startTimer
    functionSourceFile: /src/libxslt/xsltproc/xsltproc.c
    functionUses: []
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: 'static void startTimer(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrlen
      Src: /src/libxslt/xsltproc/xsltproc.c:306,1
    - Dst: xmlStrncmp
      Src: /src/libxslt/xsltproc/xsltproc.c:307,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xsltSecurityPrefsPtr
    - xsltTransformContextPtr
    - char*
    constantsTouched: []
    func_position:
      end: 311
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 311
    functionName: xsltSubtreeCheck
    functionSourceFile: /src/libxslt/xsltproc/xsltproc.c
    functionUses: []
    functionsReached:
    - xmlStrncmp
    - xmlStrlen
    linkageType: ''
    returnType: int
    signature: "static int xsltSubtreeCheck(xsltSecurityPrefsPtr sec ATTRIBUTE_UNUSED,\t
      xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED,\t\t const char *value ATTRIBUTE_UNUSED) "
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: startTimer
      Src: /src/libxslt/xsltproc/xsltproc.c:346,1
    - Dst: xsltNewTransformContext
      Src: /src/libxslt/xsltproc/xsltproc.c:375,1
    - Dst: xsltFreeTransformContext
      Src: /src/libxslt/xsltproc/xsltproc.c:394,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/xsltproc.c:403,1
    - Dst: xsltApplyStylesheetUser
      Src: /src/libxslt/xsltproc/xsltproc.c:387,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/xsltproc/xsltproc.c:407,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/xsltproc/xsltproc.c:422,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/xsltproc.c:424,1
    - Dst: xsltSaveResultToFile
      Src: /src/libxslt/xsltproc/xsltproc.c:427,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/xsltproc.c:431,1
    - Dst: xmlXIncludeProcessFlags
      Src: /src/libxslt/xsltproc/xsltproc.c:348,1
    - Dst: endTimer
      Src: /src/libxslt/xsltproc/xsltproc.c:353,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/xsltproc/xsltproc.c:370,1
    - Dst: xmlDebugDumpDocument
      Src: /src/libxslt/xsltproc/xsltproc.c:412,1
    - Dst: startTimer
      Src: /src/libxslt/xsltproc/xsltproc.c:426,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/xsltproc/xsltproc.c:441,1
    - Dst: xsltRunStylesheetUser
      Src: /src/libxslt/xsltproc/xsltproc.c:459,1
    - Dst: startTimer
      Src: /src/libxslt/xsltproc/xsltproc.c:363,1
    - Dst: xsltApplyStylesheet
      Src: /src/libxslt/xsltproc/xsltproc.c:369,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/xsltproc/xsltproc.c:371,1
    - Dst: endTimer
      Src: /src/libxslt/xsltproc/xsltproc.c:399,1
    - Dst: endTimer
      Src: /src/libxslt/xsltproc/xsltproc.c:397,1
    - Dst: endTimer
      Src: /src/libxslt/xsltproc/xsltproc.c:420,1
    - Dst: xsltNewTransformContext
      Src: /src/libxslt/xsltproc/xsltproc.c:444,1
    - Dst: xsltFreeTransformContext
      Src: /src/libxslt/xsltproc/xsltproc.c:468,1
    - Dst: xsltRunStylesheetUser
      Src: /src/libxslt/xsltproc/xsltproc.c:456,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/xsltproc/xsltproc.c:471,1
    - Dst: xmlXIncludeProcess
      Src: /src/libxslt/xsltproc/xsltproc.c:350,1
    - Dst: xsltReadFile
      Src: /src/libxslt/xsltproc/xsltproc.c:372,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/xsltproc/xsltproc.c:401,1
    - Dst: xsltApplyStylesheetUser
      Src: /src/libxslt/xsltproc/xsltproc.c:384,1
    - Dst: xsltSetCtxtParseOptions
      Src: /src/libxslt/xsltproc/xsltproc.c:378,1
    - Dst: startTimer
      Src: /src/libxslt/xsltproc/xsltproc.c:417,1
    - Dst: xsltSaveResultToFile
      Src: /src/libxslt/xsltproc/xsltproc.c:418,1
    - Dst: endTimer
      Src: /src/libxslt/xsltproc/xsltproc.c:429,1
    - Dst: xsltSetCtxtParseOptions
      Src: /src/libxslt/xsltproc/xsltproc.c:447,1
    - Dst: endTimer
      Src: /src/libxslt/xsltproc/xsltproc.c:470,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 92
    argCount: 3
    argNames:
    - doc
    - cur
    - filename
    argTypes:
    - xmlDocPtr
    - xsltStylesheetPtr
    - char*
    constantsTouched: []
    func_position:
      end: 473
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 473
    functionName: xsltProcess
    functionSourceFile: /src/libxslt/xsltproc/xsltproc.c
    functionUses: []
    functionsReached:
    - xsltRunStylesheetUser
    - xmlXIncludeProcess
    - startTimer
    - xsltSaveResultToFile
    - xsltFreeTransformContext
    - xmlXIncludeProcessFlags
    - xsltSetCtxtParseOptions
    - xmlDebugDumpDocument
    - xsltReadFile
    - xmlFreeDoc
    - xsltApplyStylesheet
    - xmlStrEqual
    - xsltApplyStylesheetUser
    - endTimer
    - fprintf
    - xsltNewTransformContext
    linkageType: ''
    returnType: void
    signature: 'static void xsltProcess(xmlDocPtr doc, xsltStylesheetPtr cur, const
      char *filename) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock
      Src: /src/libxslt/xsltproc/xsltproc.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: startTimer
    functionSourceFile: /src/libxslt/xsltproc/xsltproc.c
    functionUses: []
    functionsReached:
    - clock
    linkageType: ''
    returnType: void
    signature: 'static void startTimer(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock
      Src: /src/libxslt/xsltproc/xsltproc.c:280,1
    - Dst: va_start
      Src: /src/libxslt/xsltproc/xsltproc.c:283,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/xsltproc.c:286,1
    - Dst: vfprintf
      Src: /src/libxslt/xsltproc/xsltproc.c:284,1
    - Dst: va_end
      Src: /src/libxslt/xsltproc/xsltproc.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - format
    - '...'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 287
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 287
    functionName: endTimer
    functionSourceFile: /src/libxslt/xsltproc/xsltproc.c
    functionUses: []
    functionsReached:
    - vfprintf
    - fprintf
    - va_end
    - va_start
    - clock
    linkageType: ''
    returnType: void
    signature: 'static void endTimer(const char *format, ...) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:319,1
    - Dst: xmlReadFd
      Src: /src/libxslt/xsltproc/xsltproc.c:327,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:326,1
    - Dst: htmlReadFd
      Src: /src/libxslt/xsltproc/xsltproc.c:320,1
    - Dst: htmlReadFile
      Src: /src/libxslt/xsltproc/xsltproc.c:322,1
    - Dst: xmlReadFile
      Src: /src/libxslt/xsltproc/xsltproc.c:329,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 333
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 333
    functionName: xsltReadFile
    functionSourceFile: /src/libxslt/xsltproc/xsltproc.c
    functionUses: []
    functionsReached:
    - htmlReadFile
    - strcmp
    - xmlReadFd
    - xmlReadFile
    - htmlReadFd
    linkageType: ''
    returnType: xmlDocPtr
    signature: 'static xmlDocPtr xsltReadFile(const char *filename) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:493,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:496,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:499,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:501,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:503,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:505,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:507,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:508,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:511,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:520,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:476,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:477,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:479,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:481,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:484,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:487,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:492,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:489,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:513,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:517,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:494,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:498,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:500,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:502,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:504,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:506,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:509,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:516,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:519,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:521,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:480,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:478,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:482,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:486,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:488,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:491,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:490,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 522
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 522
    functionName: usage
    functionSourceFile: /src/libxslt/xsltproc/xsltproc.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void usage(const char *name) '
  - BBCount: 78
    BranchProfiles: []
    Callsites:
    - Dst: srand
      Src: /src/libxslt/xsltproc/xsltproc.c:537,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:567,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:614,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:666,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:629,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:726,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:736,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:788,1
    - Dst: xmlXIncludeProcess
      Src: /src/libxslt/xsltproc/xsltproc.c:828,1
    - Dst: xmlFree
      Src: /src/libxslt/xsltproc/xsltproc.c:888,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:663,1
    - Dst: xsltNewSecurityPrefs
      Src: /src/libxslt/xsltproc/xsltproc.c:549,1
    - Dst: xsltSetGenericDebugFunc
      Src: /src/libxslt/xsltproc/xsltproc.c:568,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:571,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:602,1
    - Dst: xmlStrcat
      Src: /src/libxslt/xsltproc/xsltproc.c:702,1
    - Dst: xmlStrcat
      Src: /src/libxslt/xsltproc/xsltproc.c:703,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/xsltproc.c:709,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:787,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:810,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:738,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:625,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:640,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:651,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:590,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:780,1
    - Dst: xsltProcess
      Src: /src/libxslt/xsltproc/xsltproc.c:844,1
    - Dst: endTimer
      Src: /src/libxslt/xsltproc/xsltproc.c:880,1
    - Dst: xsltReadFile
      Src: /src/libxslt/xsltproc/xsltproc.c:873,1
    - Dst: getenv
      Src: /src/libxslt/xsltproc/xsltproc.c:655,1
    - Dst: xsltSetSecurityPrefs
      Src: /src/libxslt/xsltproc/xsltproc.c:644,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:636,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/xsltproc.c:657,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:622,1
    - Dst: usage
      Src: /src/libxslt/xsltproc/xsltproc.c:533,1
    - Dst: xmlGetExternalEntityLoader
      Src: /src/libxslt/xsltproc/xsltproc.c:551,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:570,1
    - Dst: xmlCanonicPath
      Src: /src/libxslt/xsltproc/xsltproc.c:574,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:606,1
    - Dst: _set_output_format
      Src: /src/libxslt/xsltproc/xsltproc.c:544,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:561,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:579,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:613,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:628,1
    - Dst: xsltSetSecurityPrefs
      Src: /src/libxslt/xsltproc/xsltproc.c:634,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:672,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:735,1
    - Dst: exsltRegisterAll
      Src: /src/libxslt/xsltproc/xsltproc.c:768,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:776,1
    - Dst: xsltLoadStylesheetPI
      Src: /src/libxslt/xsltproc/xsltproc.c:841,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/xsltproc.c:718,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/xsltproc.c:837,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:797,1
    - Dst: setmode
      Src: /src/libxslt/xsltproc/xsltproc.c:540,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:565,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:555,1
    - Dst: xmlLoadCatalogs
      Src: /src/libxslt/xsltproc/xsltproc.c:659,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:617,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/xsltproc.c:680,1
    - Dst: xmlStrchr
      Src: /src/libxslt/xsltproc/xsltproc.c:692,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:793,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:809,1
    - Dst: srand
      Src: /src/libxslt/xsltproc/xsltproc.c:745,1
    - Dst: setmode
      Src: /src/libxslt/xsltproc/xsltproc.c:541,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:581,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:583,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:647,1
    - Dst: xsltSetSecurityPrefs
      Src: /src/libxslt/xsltproc/xsltproc.c:638,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:713,1
    - Dst: xsltRegisterTestModule
      Src: /src/libxslt/xsltproc/xsltproc.c:769,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:779,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:586,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/xsltproc.c:751,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:796,1
    - Dst: endTimer
      Src: /src/libxslt/xsltproc/xsltproc.c:819,1
    - Dst: xsltFreeSecurityPrefs
      Src: /src/libxslt/xsltproc/xsltproc.c:891,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:747,1
    - Dst: startTimer
      Src: /src/libxslt/xsltproc/xsltproc.c:824,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:561,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:600,1
    - Dst: xsltSetSecurityPrefs
      Src: /src/libxslt/xsltproc/xsltproc.c:632,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:671,1
    - Dst: usage
      Src: /src/libxslt/xsltproc/xsltproc.c:752,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:775,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:805,1
    - Dst: startTimer
      Src: /src/libxslt/xsltproc/xsltproc.c:872,1
    - Dst: xmlCleanupParser
      Src: /src/libxslt/xsltproc/xsltproc.c:893,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:814,1
    - Dst: xmlXIncludeProcessFlags
      Src: /src/libxslt/xsltproc/xsltproc.c:826,1
    - Dst: xmlStrdup
      Src: /src/libxslt/xsltproc/xsltproc.c:701,1
    - Dst: xsltSetDefaultSecurityPrefs
      Src: /src/libxslt/xsltproc/xsltproc.c:550,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:623,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:616,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:675,1
    - Dst: xmlStrcat
      Src: /src/libxslt/xsltproc/xsltproc.c:698,1
    - Dst: xmlStrcat
      Src: /src/libxslt/xsltproc/xsltproc.c:699,1
    - Dst: xsltDebugDumpExtensions
      Src: /src/libxslt/xsltproc/xsltproc.c:772,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:792,1
    - Dst: startTimer
      Src: /src/libxslt/xsltproc/xsltproc.c:816,1
    - Dst: xsltFreeStylesheet
      Src: /src/libxslt/xsltproc/xsltproc.c:845,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:646,1
    - Dst: fileno
      Src: /src/libxslt/xsltproc/xsltproc.c:541,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:611,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:620,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:684,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:712,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:739,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:748,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:784,1
    - Dst: xsltParseStylesheetDoc
      Src: /src/libxslt/xsltproc/xsltproc.c:849,1
    - Dst: xsltSetXIncludeDefault
      Src: /src/libxslt/xsltproc/xsltproc.c:669,1
    - Dst: time
      Src: /src/libxslt/xsltproc/xsltproc.c:537,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:566,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:569,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/xsltproc.c:588,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:597,1
    - Dst: xmlStrchr
      Src: /src/libxslt/xsltproc/xsltproc.c:691,1
    - Dst: xmlStrdup
      Src: /src/libxslt/xsltproc/xsltproc.c:697,1
    - Dst: sscanf
      Src: /src/libxslt/xsltproc/xsltproc.c:722,1
    - Dst: sscanf
      Src: /src/libxslt/xsltproc/xsltproc.c:743,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/xsltproc/xsltproc.c:857,1
    - Dst: xsltCleanupGlobals
      Src: /src/libxslt/xsltproc/xsltproc.c:892,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:599,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:667,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:727,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:805,1
    - Dst: xmlFree
      Src: /src/libxslt/xsltproc/xsltproc.c:890,1
    - Dst: xmlStrdup
      Src: /src/libxslt/xsltproc/xsltproc.c:577,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:603,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:664,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:674,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/xsltproc.c:693,1
    - Dst: sscanf
      Src: /src/libxslt/xsltproc/xsltproc.c:731,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:800,1
    - Dst: xmlReadFile
      Src: /src/libxslt/xsltproc/xsltproc.c:817,1
    - Dst: endTimer
      Src: /src/libxslt/xsltproc/xsltproc.c:831,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/xsltproc.c:875,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:626,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:641,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:652,1
    - Dst: fileno
      Src: /src/libxslt/xsltproc/xsltproc.c:540,1
    - Dst: xmlSetExternalEntityLoader
      Src: /src/libxslt/xsltproc/xsltproc.c:552,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:580,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:591,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:610,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:619,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:683,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:607,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:637,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:596,1
    - Dst: xsltSetSecurityPrefs
      Src: /src/libxslt/xsltproc/xsltproc.c:630,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:578,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:789,1
    - Dst: xsltProcess
      Src: /src/libxslt/xsltproc/xsltproc.c:881,1
    - Dst: xsltFreeStylesheet
      Src: /src/libxslt/xsltproc/xsltproc.c:886,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:801,1
    - Dst: strcmp
      Src: /src/libxslt/xsltproc/xsltproc.c:783,1
    CyclomaticComplexity: 138
    EdgeCount: 138
    ICount: 438
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 895
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 895
    functionName: main
    functionSourceFile: /src/libxslt/xsltproc/xsltproc.c
    functionUses: []
    functionsReached:
    - _set_output_format
    - setmode
    - srand
    - xmlXIncludeProcessFlags
    - xmlFreeDoc
    - xsltProcess
    - printf
    - xmlStrcat
    - usage
    - xmlSetExternalEntityLoader
    - xmlStrchr
    - fileno
    - xsltNewSecurityPrefs
    - xsltSetXIncludeDefault
    - xsltDebugDumpExtensions
    - xmlXIncludeProcess
    - xmlStrdup
    - xsltSetSecurityPrefs
    - xmlReadFile
    - xsltFreeSecurityPrefs
    - xmlCanonicPath
    - xmlCleanupParser
    - endTimer
    - xmlFree
    - xsltRegisterTestModule
    - startTimer
    - strcmp
    - exsltRegisterAll
    - xsltSetDefaultSecurityPrefs
    - xsltLoadStylesheetPI
    - sscanf
    - xsltParseStylesheetDoc
    - xsltFreeStylesheet
    - time
    - xsltReadFile
    - xmlGetExternalEntityLoader
    - xsltSetGenericDebugFunc
    - xmlLoadCatalogs
    - getenv
    - fprintf
    - xsltCleanupGlobals
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/libxslt/xsltproc/xsltproc.c:249,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/xsltproc.c:258,1
    - Dst: vfprintf
      Src: /src/libxslt/xsltproc/xsltproc.c:255,1
    - Dst: va_end
      Src: /src/libxslt/xsltproc/xsltproc.c:256,1
    - Dst: va_start
      Src: /src/libxslt/xsltproc/xsltproc.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - format
    - '...'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 259
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 259
    functionName: endTimer
    functionSourceFile: /src/libxslt/xsltproc/xsltproc.c
    functionUses: []
    functionsReached:
    - vfprintf
    - va_end
    - gettimeofday
    - va_start
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void endTimer(const char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathReturnString
      Src: /src/libxslt/xsltproc/testThreads.c:67,1
    - Dst: xmlStrdup
      Src: /src/libxslt/xsltproc/testThreads.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: fooFunction
    functionSourceFile: /src/libxslt/xsltproc/testThreads.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlXPathReturnString
    linkageType: ''
    returnType: void
    signature: 'static void fooFunction(xmlXPathParserContextPtr ctxt, int nargs ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxslt/xsltproc/testThreads.c:81,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/testThreads.c:82,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/xsltproc/testThreads.c:84,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/testThreads.c:85,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - URI
    - data
    argTypes:
    - xsltTransformContextPtr
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: shutdownFooExtensions
    functionSourceFile: /src/libxslt/xsltproc/testThreads.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void shutdownFooExtensions(xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED,
      const xmlChar *URI, void *data) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadMemory
      Src: /src/libxslt/xsltproc/testThreads.c:104,1
    - Dst: strlen
      Src: /src/libxslt/xsltproc/testThreads.c:104,1
    - Dst: exit
      Src: /src/libxslt/xsltproc/testThreads.c:112,1
    - Dst: xsltSaveResultToString
      Src: /src/libxslt/xsltproc/testThreads.c:124,1
    - Dst: exit
      Src: /src/libxslt/xsltproc/testThreads.c:122,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/xsltproc/testThreads.c:133,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/testThreads.c:106,1
    - Dst: xmlReadMemory
      Src: /src/libxslt/xsltproc/testThreads.c:109,1
    - Dst: exit
      Src: /src/libxslt/xsltproc/testThreads.c:117,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/testThreads.c:129,1
    - Dst: exit
      Src: /src/libxslt/xsltproc/testThreads.c:126,1
    - Dst: xsltApplyStylesheet
      Src: /src/libxslt/xsltproc/testThreads.c:119,1
    - Dst: xsltFreeStylesheet
      Src: /src/libxslt/xsltproc/testThreads.c:132,1
    - Dst: xmlFree
      Src: /src/libxslt/xsltproc/testThreads.c:135,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/testThreads.c:111,1
    - Dst: xsltParseStylesheetDoc
      Src: /src/libxslt/xsltproc/testThreads.c:114,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/testThreads.c:121,1
    - Dst: exit
      Src: /src/libxslt/xsltproc/testThreads.c:130,1
    - Dst: exit
      Src: /src/libxslt/xsltproc/testThreads.c:107,1
    - Dst: strlen
      Src: /src/libxslt/xsltproc/testThreads.c:109,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/testThreads.c:116,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/testThreads.c:125,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/xsltproc/testThreads.c:128,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/xsltproc/testThreads.c:134,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 137
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 137
    functionName: threadRoutine1
    functionSourceFile: /src/libxslt/xsltproc/testThreads.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xsltParseStylesheetDoc
    - xsltFreeStylesheet
    - xmlReadMemory
    - exit
    - xsltSaveResultToString
    - xmlStrEqual
    - xmlFreeDoc
    - xsltApplyStylesheet
    - strlen
    - fprintf
    linkageType: ''
    returnType: void*
    signature: 'static void *threadRoutine1(void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/testThreads.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 272
    functionName: main
    functionSourceFile: /src/libxslt/xsltproc/testThreads.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltRegisterExtModule
      Src: /src/libxslt/xsltproc/testThreads.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: registerFooModule
    functionSourceFile: /src/libxslt/xsltproc/testThreads.c
    functionUses: []
    functionsReached:
    - xsltRegisterExtModule
    linkageType: ''
    returnType: void
    signature: 'static void registerFooModule(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltRegisterExtModuleFunction
      Src: /src/libxslt/xsltproc/testThreads.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - xsltTransformContextPtr
    - ctxt
    - URI
    argTypes:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED*
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: registerFooExtensions
    functionSourceFile: /src/libxslt/xsltproc/testThreads.c
    functionUses: []
    functionsReached:
    - xsltRegisterExtModuleFunction
    linkageType: ''
    returnType: void*
    signature: 'static void * registerFooExtensions(ATTRIBUTE_UNUSED xsltTransformContextPtr
      ctxt, ATTRIBUTE_UNUSED const xmlChar *URI) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/testThreads.c:149,1
    - Dst: exit
      Src: /src/libxslt/xsltproc/testThreads.c:150,1
    - Dst: xmlReadMemory
      Src: /src/libxslt/xsltproc/testThreads.c:152,1
    - Dst: strlen
      Src: /src/libxslt/xsltproc/testThreads.c:152,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/testThreads.c:154,1
    - Dst: exit
      Src: /src/libxslt/xsltproc/testThreads.c:155,1
    - Dst: xsltApplyStylesheet
      Src: /src/libxslt/xsltproc/testThreads.c:157,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/testThreads.c:159,1
    - Dst: exit
      Src: /src/libxslt/xsltproc/testThreads.c:160,1
    - Dst: xsltSaveResultToString
      Src: /src/libxslt/xsltproc/testThreads.c:162,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/testThreads.c:163,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/testThreads.c:167,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/xsltproc/testThreads.c:170,1
    - Dst: xmlFreeDoc
      Src: /src/libxslt/xsltproc/testThreads.c:171,1
    - Dst: exit
      Src: /src/libxslt/xsltproc/testThreads.c:168,1
    - Dst: xmlFree
      Src: /src/libxslt/xsltproc/testThreads.c:172,1
    - Dst: exit
      Src: /src/libxslt/xsltproc/testThreads.c:164,1
    - Dst: xmlStrEqual
      Src: /src/libxslt/xsltproc/testThreads.c:166,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 174
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 174
    functionName: threadRoutine2
    functionSourceFile: /src/libxslt/xsltproc/testThreads.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlReadMemory
    - exit
    - xsltSaveResultToString
    - xmlStrEqual
    - xmlFreeDoc
    - xsltApplyStylesheet
    - strlen
    - fprintf
    linkageType: ''
    returnType: void*
    signature: 'static void *threadRoutine2(void *data) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: registerFooModule
      Src: /src/libxslt/xsltproc/testThreads.c:194,1
    - Dst: memset
      Src: /src/libxslt/xsltproc/testThreads.c:202,1
    - Dst: memset
      Src: /src/libxslt/xsltproc/testThreads.c:203,1
    - Dst: perror
      Src: /src/libxslt/xsltproc/testThreads.c:209,1
    - Dst: xmlReadMemory
      Src: /src/libxslt/xsltproc/testThreads.c:231,1
    - Dst: strlen
      Src: /src/libxslt/xsltproc/testThreads.c:231,1
    - Dst: xsltParseStylesheetDoc
      Src: /src/libxslt/xsltproc/testThreads.c:237,1
    - Dst: perror
      Src: /src/libxslt/xsltproc/testThreads.c:216,1
    - Dst: memset
      Src: /src/libxslt/xsltproc/testThreads.c:243,1
    - Dst: pthread_join
      Src: /src/libxslt/xsltproc/testThreads.c:253,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/testThreads.c:263,1
    - Dst: xmlInitParser
      Src: /src/libxslt/xsltproc/testThreads.c:183,1
    - Dst: exsltRegisterAll
      Src: /src/libxslt/xsltproc/testThreads.c:188,1
    - Dst: exit
      Src: /src/libxslt/xsltproc/testThreads.c:210,1
    - Dst: exit
      Src: /src/libxslt/xsltproc/testThreads.c:235,1
    - Dst: exit
      Src: /src/libxslt/xsltproc/testThreads.c:217,1
    - Dst: xmlCleanupParser
      Src: /src/libxslt/xsltproc/testThreads.c:262,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/testThreads.c:200,1
    - Dst: xsltRegisterTestModule
      Src: /src/libxslt/xsltproc/testThreads.c:189,1
    - Dst: pthread_create
      Src: /src/libxslt/xsltproc/testThreads.c:206,1
    - Dst: printf
      Src: /src/libxslt/xsltproc/testThreads.c:226,1
    - Dst: pthread_join
      Src: /src/libxslt/xsltproc/testThreads.c:214,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/testThreads.c:234,1
    - Dst: memset
      Src: /src/libxslt/xsltproc/testThreads.c:242,1
    - Dst: pthread_create
      Src: /src/libxslt/xsltproc/testThreads.c:246,1
    - Dst: perror
      Src: /src/libxslt/xsltproc/testThreads.c:248,1
    - Dst: perror
      Src: /src/libxslt/xsltproc/testThreads.c:255,1
    - Dst: xsltFreeStylesheet
      Src: /src/libxslt/xsltproc/testThreads.c:259,1
    - Dst: fprintf
      Src: /src/libxslt/xsltproc/testThreads.c:239,1
    - Dst: exit
      Src: /src/libxslt/xsltproc/testThreads.c:240,1
    - Dst: exit
      Src: /src/libxslt/xsltproc/testThreads.c:249,1
    - Dst: exit
      Src: /src/libxslt/xsltproc/testThreads.c:256,1
    - Dst: xsltCleanupGlobals
      Src: /src/libxslt/xsltproc/testThreads.c:261,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 74
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 265
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 265
    functionName: main
    functionSourceFile: /src/libxslt/xsltproc/testThreads.c
    functionUses: []
    functionsReached:
    - xsltParseStylesheetDoc
    - xsltFreeStylesheet
    - xmlReadMemory
    - fprintf
    - xsltRegisterTestModule
    - memset
    - xmlInitParser
    - exit
    - pthread_join
    - strlen
    - xsltCleanupGlobals
    - pthread_create
    - exsltRegisterAll
    - registerFooModule
    - printf
    - perror
    - xmlCleanupParser
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: toupper
      Src: /src/libxml2/encoding.c:520,1
    - Dst: strcmp
      Src: /src/libxml2/encoding.c:544,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/encoding.c:548,1
    - Dst: xmlRealloc
      Src: /src/libxml2/encoding.c:533,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/encoding.c:529,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:551,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/encoding.c:559,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/encoding.c:562,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:564,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 2
    argNames:
    - name
    - alias
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 571
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 571
    functionName: xmlAddEncodingAlias
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlFree
    - toupper
    - xmlGrowCapacity
    - xmlRealloc
    - strcmp
    - xmlMemStrdup
    linkageType: ''
    returnType: int
    signature: 'int xmlAddEncodingAlias(const char *name, const char *alias) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 2
    argNames:
    - vkey
    - ventry
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 613
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 613
    functionName: xmlCompareEncTableEntries
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlCompareEncTableEntries(const void *vkey, const void
      *ventry) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/encoding.c:813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 814
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 814
    functionName: xmlInitCharEncodingHandlers
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlInitParser
    linkageType: ''
    returnType: void
    signature: 'void xmlInitCharEncodingHandlers(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/encoding.c:873,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:889,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:887,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 1
    argNames:
    - handler
    argTypes:
    - xmlCharEncodingHandler*
    constantsTouched: []
    func_position:
      end: 891
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 891
    functionName: xmlRegisterCharEncodingHandler
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: 'void xmlRegisterCharEncodingHandler(xmlCharEncodingHandler *handler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_close
      Src: /src/libxml2/encoding.c:1591,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:1593,1
    - Dst: ucnv_close
      Src: /src/libxml2/encoding.c:1592,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - conv
    argTypes:
    - xmlUconvCtxt*
    constantsTouched: []
    func_position:
      end: 1594
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1594
    functionName: closeIcuConverter
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlFree
    - ucnv_close
    linkageType: ''
    returnType: void
    signature: 'static void closeIcuConverter(xmlUconvCtxt *conv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/libxml2/encoding.c:623,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 630
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 630
    functionName: xmlParseCharEncodingInternal
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - bsearch
    linkageType: ''
    returnType: xmlCharEncoding
    signature: 'static xmlCharEncoding xmlParseCharEncodingInternal(const char *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_ASCII_LETTER
      Src: /src/libxml2/encoding.c:1299,1
    - Dst: IS_ASCII_LETTER
      Src: /src/libxml2/encoding.c:1301,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 2
    argNames:
    - name1
    - name2
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1312
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1312
    functionName: xmlEncodingMatch
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - IS_ASCII_LETTER
    linkageType: ''
    returnType: int
    signature: 'static int xmlEncodingMatch(const char *name1, const char *name2) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closeIcuConverter
      Src: /src/libxml2/encoding.c:1598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1599
      start: 1596
    functionDepth: 0
    functionLinenumber: 1596
    functionLinenumberEnd: 1599
    functionName: xmlUconvFree
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - closeIcuConverter
    linkageType: ''
    returnType: void
    signature: 'static void xmlUconvFree(void *vctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlCleanupEncodingAliases
      Src: /src/libxml2/encoding.c:840,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:851,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:855,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:852,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 858
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 858
    functionName: xmlCleanupCharEncodingHandlers
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCleanupEncodingAliases
    linkageType: ''
    returnType: void
    signature: 'void xmlCleanupCharEncodingHandlers(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCharEncInFunc
      Src: /src/libxml2/encoding.c:1777,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 3
    argNames:
    - handler
    - out
    - in
    argTypes:
    - xmlCharEncodingHandler*
    - struct _xmlBuffer*
    - struct _xmlBuffer*
    constantsTouched: []
    func_position:
      end: 1778
      start: 1774
    functionDepth: 0
    functionLinenumber: 1774
    functionLinenumberEnd: 1778
    functionName: xmlCharEncFirstLine
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlCharEncInFunc
    linkageType: ''
    returnType: int
    signature: 'int xmlCharEncFirstLine(xmlCharEncodingHandler *handler, struct _xmlBuffer
      *out, struct _xmlBuffer *in) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTF8ToLatin1
      Src: /src/libxml2/encoding.c:2481,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 4
    argNames:
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 2483
      start: 2475
    functionDepth: 0
    functionLinenumber: 2475
    functionLinenumberEnd: 2483
    functionName: xmlUTF8ToIsolat1
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - UTF8ToLatin1
    linkageType: ''
    returnType: int
    signature: 'int xmlUTF8ToIsolat1(unsigned char* out, int *outlen, const unsigned
      char* in, int *inlen) '
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 100
    argCount: 6
    argNames:
    - ATTRIBUTE_UNUSED
    - out
    - outlen
    - in
    - inlen
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 2853
      start: 2753
    functionDepth: 0
    functionLinenumber: 2753
    functionLinenumberEnd: 2853
    functionName: UTF8ToUTF16BE
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'static xmlCharEncError UTF8ToUTF16BE(void *vctxt ATTRIBUTE_UNUSED,
      unsigned char *out, int *outlen, const unsigned char *in, int *inlen, int flush
      ATTRIBUTE_UNUSED) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlFindExtraHandler
      Src: /src/libxml2/encoding.c:1012,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 2
    argNames:
    - enc
    - out
    argTypes:
    - xmlCharEncoding
    - xmlCharEncodingHandler**
    constantsTouched: []
    func_position:
      end: 1017
      start: 983
    functionDepth: 0
    functionLinenumber: 983
    functionLinenumberEnd: 1017
    functionName: xmlLookupCharEncodingHandler
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlFindExtraHandler
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'xmlParserErrors xmlLookupCharEncodingHandler(xmlCharEncoding enc,
      xmlCharEncodingHandler **out) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetEncodingAlias
      Src: /src/libxml2/encoding.c:1078,1
    - Dst: memset
      Src: /src/libxml2/encoding.c:1123,1
    - Dst: xmlParseCharEncodingInternal
      Src: /src/libxml2/encoding.c:1082,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/encoding.c:1125,1
    - Dst: xmlMalloc
      Src: /src/libxml2/encoding.c:1120,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:1127,1
    - Dst: xmlFindExtraHandler
      Src: /src/libxml2/encoding.c:1141,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 48
    argCount: 5
    argNames:
    - name
    - flags
    - impl
    - implCtxt
    - out
    argTypes:
    - char*
    - xmlCharEncFlags
    - xmlCharEncConvImpl
    - void*
    - xmlCharEncodingHandler**
    constantsTouched: []
    func_position:
      end: 1142
      start: 1062
    functionDepth: 0
    functionLinenumber: 1062
    functionLinenumberEnd: 1142
    functionName: xmlCreateCharEncodingHandler
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlFindExtraHandler
    - xmlGetEncodingAlias
    - xmlParseCharEncodingInternal
    - xmlMalloc
    - xmlMemStrdup
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'xmlParserErrors xmlCreateCharEncodingHandler(const char *name, xmlCharEncFlags
      flags, xmlCharEncConvImpl impl, void *implCtxt, xmlCharEncodingHandler **out) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iconv_close
      Src: /src/libxml2/encoding.c:1284,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:1286,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1287
      start: 1276
    functionDepth: 0
    functionLinenumber: 1276
    functionLinenumberEnd: 1287
    functionName: xmlIconvFree
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlFree
    - iconv_close
    linkageType: ''
    returnType: void
    signature: 'static void xmlIconvFree(void *vctxt) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_convertEx
      Src: /src/libxml2/encoding.c:1491,1
    - Dst: U_SUCCESS
      Src: /src/libxml2/encoding.c:1500,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 35
    argCount: 6
    argNames:
    - vctxt
    - out
    - outlen
    - in
    - inlen
    - flush
    argTypes:
    - void*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 1531
      start: 1461
    functionDepth: 0
    functionLinenumber: 1461
    functionLinenumberEnd: 1531
    functionName: xmlUconvConvert
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - ucnv_convertEx
    - U_SUCCESS
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'static xmlCharEncError xmlUconvConvert(void *vctxt, unsigned char
      *out, int *outlen, const unsigned char *in, int *inlen, int flush) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/libxml2/encoding.c:1747,1
    - Dst: func
      Src: /src/libxml2/encoding.c:1757,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 5
    argNames:
    - handler
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - xmlCharEncodingHandler*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 1764
      start: 1733
    functionDepth: 0
    functionLinenumber: 1733
    functionLinenumberEnd: 1764
    functionName: xmlEncOutputChunk
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - func
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'static xmlCharEncError xmlEncOutputChunk(xmlCharEncodingHandler *handler,
      unsigned char *out, int *outlen, const unsigned char *in, int *inlen) '
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 39
    argCount: 6
    argNames:
    - ATTRIBUTE_UNUSED
    - out
    - outlen
    - in
    - inlen
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 2460
      start: 2410
    functionDepth: 0
    functionLinenumber: 2410
    functionLinenumberEnd: 2460
    functionName: UTF8ToLatin1
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'static xmlCharEncError UTF8ToLatin1(void *vctxt ATTRIBUTE_UNUSED,
      unsigned char* out, int *outlen, const unsigned char* in, int *inlen, int flush
      ATTRIBUTE_UNUSED) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/encoding.c:1541,1
    - Dst: ucnv_open
      Src: /src/libxml2/encoding.c:1550,1
    - Dst: U_FAILURE
      Src: /src/libxml2/encoding.c:1551,1
    - Dst: ucnv_setFromUCallBack
      Src: /src/libxml2/encoding.c:1560,1
    - Dst: ucnv_setToUCallBack
      Src: /src/libxml2/encoding.c:1556,1
    - Dst: U_FAILURE
      Src: /src/libxml2/encoding.c:1563,1
    - Dst: ucnv_open
      Src: /src/libxml2/encoding.c:1567,1
    - Dst: U_FAILURE
      Src: /src/libxml2/encoding.c:1568,1
    - Dst: ucnv_close
      Src: /src/libxml2/encoding.c:1576,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:1577,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 27
    argCount: 3
    argNames:
    - name
    - isInput
    - out
    argTypes:
    - char*
    - int
    - xmlUconvCtxt**
    constantsTouched: []
    func_position:
      end: 1584
      start: 1533
    functionDepth: 0
    functionLinenumber: 1533
    functionLinenumberEnd: 1584
    functionName: openIcuConverter
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlFree
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - ucnv_setFromUCallBack
    - ucnv_setToUCallBack
    - xmlMalloc
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'static xmlParserErrors openIcuConverter(const char* name, int isInput,
      xmlUconvCtxt **out) '
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 64
    argCount: 6
    argNames:
    - vctxt
    - out
    - outlen
    - in
    - inlen
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 2946
      start: 2866
    functionDepth: 0
    functionLinenumber: 2866
    functionLinenumberEnd: 2946
    functionName: Utf8ToEightBit
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'static xmlCharEncError Utf8ToEightBit(void *vctxt, unsigned char *out,
      int *outlen, const unsigned char *in, int *inlen, int flush ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htmlUTF8ToHtml
      Src: /src/libxml2/encoding.c:2862,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 6
    argNames:
    - ATTRIBUTE_UNUSED
    - out
    - outlen
    - in
    - inlen
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 2863
      start: 2857
    functionDepth: 0
    functionLinenumber: 2857
    functionLinenumberEnd: 2863
    functionName: UTF8ToHtmlWrapper
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - htmlUTF8ToHtml
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'static xmlCharEncError UTF8ToHtmlWrapper(void *vctxt ATTRIBUTE_UNUSED,
      unsigned char *out, int *outlen, const unsigned char *in, int *inlen, int flush
      ATTRIBUTE_UNUSED) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: impl
      Src: /src/libxml2/encoding.c:915,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/encoding.c:926,1
    - Dst: xmlCharEncUconv
      Src: /src/libxml2/encoding.c:950,1
    - Dst: xmlCharEncIconv
      Src: /src/libxml2/encoding.c:939,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 28
    argCount: 6
    argNames:
    - norig
    - name
    - flags
    - impl
    - implCtxt
    - out
    argTypes:
    - char*
    - char*
    - xmlCharEncFlags
    - xmlCharEncConvImpl
    - void*
    - xmlCharEncodingHandler**
    constantsTouched: []
    func_position:
      end: 960
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 960
    functionName: xmlFindExtraHandler
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlCharEncIconv
    - xmlStrcasecmp
    - impl
    - xmlCharEncUconv
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'static xmlParserErrors xmlFindExtraHandler(const char *norig, const
      char *name, xmlCharEncFlags flags, xmlCharEncConvImpl impl, void *implCtxt,
      xmlCharEncodingHandler **out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlLookupCharEncodingHandler
      Src: /src/libxml2/encoding.c:1031,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - enc
    argTypes:
    - xmlCharEncoding
    constantsTouched: []
    func_position:
      end: 1033
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1033
    functionName: xmlGetCharEncodingHandler
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlLookupCharEncodingHandler
    linkageType: ''
    returnType: xmlCharEncodingHandler*
    signature: 'xmlCharEncodingHandler *xmlGetCharEncodingHandler(xmlCharEncoding
      enc) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: iconv
      Src: /src/libxml2/encoding.c:1249,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 23
    argCount: 6
    argNames:
    - vctxt
    - out
    - outlen
    - in
    - inlen
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 1274
      start: 1230
    functionDepth: 0
    functionLinenumber: 1230
    functionLinenumberEnd: 1274
    functionName: xmlIconvConvert
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - iconv
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'static xmlCharEncError xmlIconvConvert(void *vctxt, unsigned char
      *out, int *outlen, const unsigned char *in, int *inlen, int flush ATTRIBUTE_UNUSED) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:2197,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:2202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - handler
    argTypes:
    - xmlCharEncodingHandler*
    constantsTouched: []
    func_position:
      end: 2204
      start: 2189
    functionDepth: 0
    functionLinenumber: 2189
    functionLinenumberEnd: 2204
    functionName: xmlCharEncCloseFunc
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: int
    signature: 'int xmlCharEncCloseFunc(xmlCharEncodingHandler *handler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: latin1ToUTF8
      Src: /src/libxml2/encoding.c:2375,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 2377
      start: 2372
    functionDepth: 0
    functionLinenumber: 2372
    functionLinenumberEnd: 2377
    functionName: xmlIsolat1ToUTF8
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - latin1ToUTF8
    linkageType: ''
    returnType: int
    signature: 'int xmlIsolat1ToUTF8(unsigned char* out, int *outlen, const unsigned
      char* in, int *inlen) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/libxml2/encoding.c:1695,1
    - Dst: func
      Src: /src/libxml2/encoding.c:1707,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 6
    argNames:
    - handler
    - out
    - outlen
    - in
    - inlen
    - flush
    argTypes:
    - xmlCharEncodingHandler*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 1720
      start: 1680
    functionDepth: 0
    functionLinenumber: 1680
    functionLinenumberEnd: 1720
    functionName: xmlEncInputChunk
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - func
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'xmlCharEncError xmlEncInputChunk(xmlCharEncodingHandler *handler,
      unsigned char *out, int *outlen, const unsigned char *in, int *inlen, int flush) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - buf
    - val
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1958
      start: 1932
    functionDepth: 0
    functionLinenumber: 1932
    functionLinenumberEnd: 1958
    functionName: xmlSerializeDecCharRef
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlSerializeDecCharRef(char *buf, int val) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlEncOutputChunk
      Src: /src/libxml2/encoding.c:2121,1
    - Dst: xmlBufferGrow
      Src: /src/libxml2/encoding.c:2133,1
    - Dst: xmlGetUTF8Char
      Src: /src/libxml2/encoding.c:2155,1
    - Dst: xmlEncOutputChunk
      Src: /src/libxml2/encoding.c:2136,1
    - Dst: xmlBufferShrink
      Src: /src/libxml2/encoding.c:2138,1
    - Dst: xmlSerializeDecCharRef
      Src: /src/libxml2/encoding.c:2164,1
    - Dst: xmlBufferShrink
      Src: /src/libxml2/encoding.c:2165,1
    - Dst: xmlBufferGrow
      Src: /src/libxml2/encoding.c:2166,1
    - Dst: xmlEncOutputChunk
      Src: /src/libxml2/encoding.c:2169,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 3
    argNames:
    - handler
    - out
    - in
    argTypes:
    - xmlCharEncodingHandler*
    - struct _xmlBuffer*
    - struct _xmlBuffer*
    constantsTouched: []
    func_position:
      end: 2180
      start: 2097
    functionDepth: 0
    functionLinenumber: 2097
    functionLinenumberEnd: 2180
    functionName: xmlCharEncOutFunc
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlEncOutputChunk
    - xmlBufferShrink
    - xmlBufferGrow
    - xmlSerializeDecCharRef
    - xmlGetUTF8Char
    linkageType: ''
    returnType: int
    signature: 'int xmlCharEncOutFunc(xmlCharEncodingHandler *handler, struct _xmlBuffer
      *out, struct _xmlBuffer *in) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 6
    argNames:
    - ATTRIBUTE_UNUSED
    - out
    - outlen
    - in
    - inlen
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 2357
      start: 2317
    functionDepth: 0
    functionLinenumber: 2317
    functionLinenumberEnd: 2357
    functionName: latin1ToUTF8
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'static xmlCharEncError latin1ToUTF8(void *vctxt ATTRIBUTE_UNUSED,
      unsigned char* out, int *outlen, const unsigned char* in, int *inlen, int flush
      ATTRIBUTE_UNUSED) '
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 100
    argCount: 6
    argNames:
    - ATTRIBUTE_UNUSED
    - out
    - outlen
    - in
    - inlen
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 2657
      start: 2556
    functionDepth: 0
    functionLinenumber: 2556
    functionLinenumberEnd: 2657
    functionName: UTF8ToUTF16LE
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'static xmlCharEncError UTF8ToUTF16LE(void *vctxt ATTRIBUTE_UNUSED,
      unsigned char *out, int *outlen, const unsigned char *in, int *inlen, int flush
      ATTRIBUTE_UNUSED) '
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 90
    argCount: 6
    argNames:
    - ATTRIBUTE_UNUSED
    - out
    - outlen
    - in
    - inlen
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 2750
      start: 2683
    functionDepth: 0
    functionLinenumber: 2683
    functionLinenumberEnd: 2750
    functionName: UTF16BEToUTF8
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'static xmlCharEncError UTF16BEToUTF8(void *vctxt ATTRIBUTE_UNUSED,
      unsigned char *out, int *outlen, const unsigned char *in, int *inlen, int flush
      ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UTF8ToUTF16LE
      Src: /src/libxml2/encoding.c:2679,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 6
    argNames:
    - vctxt
    - outb
    - outlen
    - in
    - inlen
    - flush
    argTypes:
    - void*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 2680
      start: 2659
    functionDepth: 0
    functionLinenumber: 2659
    functionLinenumberEnd: 2680
    functionName: UTF8ToUTF16
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - UTF8ToUTF16LE
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'static xmlCharEncError UTF8ToUTF16(void *vctxt, unsigned char* outb,
      int *outlen, const unsigned char* in, int *inlen, int flush) '
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 6
    argNames:
    - vctxt
    - out
    - outlen
    - in
    - inlen
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 3000
      start: 2948
    functionDepth: 0
    functionLinenumber: 2948
    functionLinenumberEnd: 3000
    functionName: EightBitToUtf8
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'static xmlCharEncError EightBitToUtf8(void *vctxt, unsigned char*
      out, int *outlen, const unsigned char* in, int *inlen, int flush ATTRIBUTE_UNUSED) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: toupper
      Src: /src/libxml2/encoding.c:483,1
    - Dst: strcmp
      Src: /src/libxml2/encoding.c:492,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - alias
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 497
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 497
    functionName: xmlGetEncodingAlias
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - toupper
    - strcmp
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlGetEncodingAlias(const char *alias) '
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 5
    argCount: 1
    argNames:
    - enc
    argTypes:
    - xmlCharEncoding
    constantsTouched: []
    func_position:
      end: 680
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 680
    functionName: xmlGetCharEncodingName
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlGetCharEncodingName(xmlCharEncoding enc) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/encoding.c:775,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:796,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/encoding.c:781,1
    - Dst: memset
      Src: /src/libxml2/encoding.c:778,1
    - Dst: ctxtDtor
      Src: /src/libxml2/encoding.c:800,1
    - Dst: ctxtDtor
      Src: /src/libxml2/encoding.c:802,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 24
    argCount: 7
    argNames:
    - name
    - input
    - output
    - ctxtDtor
    - inputCtxt
    - outputCtxt
    - out
    argTypes:
    - char*
    - xmlCharEncConvFunc
    - xmlCharEncConvFunc
    - xmlCharEncConvCtxtDtor
    - void*
    - void*
    - xmlCharEncodingHandler**
    constantsTouched: []
    func_position:
      end: 806
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 806
    functionName: xmlCharEncNewCustomHandler
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlMemStrdup
    - ctxtDtor
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'xmlParserErrors xmlCharEncNewCustomHandler(const char *name, xmlCharEncConvFunc
      input, xmlCharEncConvFunc output, xmlCharEncConvCtxtDtor ctxtDtor, void *inputCtxt,
      void *outputCtxt, xmlCharEncodingHandler **out) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - code
    argTypes:
    - xmlCharEncError
    constantsTouched: []
    func_position:
      end: 1666
      start: 1646
    functionDepth: 0
    functionLinenumber: 1646
    functionLinenumberEnd: 1666
    functionName: xmlEncConvertError
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'static xmlParserErrors xmlEncConvertError(xmlCharEncError code) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferGrow
      Src: /src/libxml2/encoding.c:1910,1
    - Dst: xmlBufferShrink
      Src: /src/libxml2/encoding.c:1915,1
    - Dst: xmlEncInputChunk
      Src: /src/libxml2/encoding.c:1913,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - handler
    - out
    - in
    argTypes:
    - xmlCharEncodingHandler*
    - struct _xmlBuffer*
    - struct _xmlBuffer*
    constantsTouched: []
    func_position:
      end: 1920
      start: 1890
    functionDepth: 0
    functionLinenumber: 1890
    functionLinenumberEnd: 1920
    functionName: xmlCharEncInFunc
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlEncInputChunk
    - xmlBufferShrink
    - xmlBufferGrow
    linkageType: ''
    returnType: int
    signature: 'int xmlCharEncInFunc(xmlCharEncodingHandler * handler, struct _xmlBuffer
      *out, struct _xmlBuffer *in) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 6
    argNames:
    - ATTRIBUTE_UNUSED
    - out
    - poutlen
    - in
    - pinlen
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 2315
      start: 2272
    functionDepth: 0
    functionLinenumber: 2272
    functionLinenumberEnd: 2315
    functionName: asciiToAscii
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'static xmlCharEncError asciiToAscii(void *vctxt ATTRIBUTE_UNUSED,
      unsigned char* out, int *poutlen, const unsigned char* in, int *pinlen, int
      flush ATTRIBUTE_UNUSED) '
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 61
    argCount: 2
    argNames:
    - in
    - len
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 435
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 435
    functionName: xmlDetectCharEncoding
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlCharEncoding
    signature: 'xmlCharEncoding xmlDetectCharEncoding(const unsigned char* in, int
      len) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:453,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:455,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:459,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 461
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 461
    functionName: xmlCleanupEncodingAliases
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xmlCleanupEncodingAliases(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseCharEncodingInternal
      Src: /src/libxml2/encoding.c:644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 651
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 651
    functionName: xmlParseCharEncoding
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlParseCharEncodingInternal
    linkageType: ''
    returnType: xmlCharEncoding
    signature: 'xmlCharEncoding xmlParseCharEncoding(const char *name) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetEncodingAlias
      Src: /src/libxml2/encoding.c:712,1
    - Dst: xmlMalloc
      Src: /src/libxml2/encoding.c:734,1
    - Dst: toupper
      Src: /src/libxml2/encoding.c:722,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:736,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/encoding.c:726,1
    - Dst: memset
      Src: /src/libxml2/encoding.c:739,1
    - Dst: xmlRegisterCharEncodingHandler
      Src: /src/libxml2/encoding.c:748,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - name
    - input
    - output
    argTypes:
    - char*
    - xmlCharEncodingInputFunc
    - xmlCharEncodingOutputFunc
    constantsTouched: []
    func_position:
      end: 750
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 750
    functionName: xmlNewCharEncodingHandler
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlFree
    - toupper
    - xmlMemStrdup
    - memset
    - xmlRegisterCharEncodingHandler
    - xmlGetEncodingAlias
    - xmlMalloc
    linkageType: ''
    returnType: xmlCharEncodingHandler*
    signature: 'xmlCharEncodingHandler *xmlNewCharEncodingHandler(const char *name,
      xmlCharEncodingInputFunc input, xmlCharEncodingOutputFunc output) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreateCharEncodingHandler
      Src: /src/libxml2/encoding.c:1203,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1205
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1205
    functionName: xmlFindCharEncodingHandler
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlCreateCharEncodingHandler
    linkageType: ''
    returnType: xmlCharEncodingHandler*
    signature: 'xmlCharEncodingHandler *xmlFindCharEncodingHandler(const char *name) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufUse
      Src: /src/libxml2/encoding.c:1809,1
    - Dst: xmlBufContent
      Src: /src/libxml2/encoding.c:1812,1
    - Dst: xmlBufAvail
      Src: /src/libxml2/encoding.c:1820,1
    - Dst: xmlBufEnd
      Src: /src/libxml2/encoding.c:1840,1
    - Dst: xmlEncInputChunk
      Src: /src/libxml2/encoding.c:1840,1
    - Dst: xmlBufAddLen
      Src: /src/libxml2/encoding.c:1849,1
    - Dst: xmlEncConvertError
      Src: /src/libxml2/encoding.c:1852,1
    - Dst: xmlBufGrow
      Src: /src/libxml2/encoding.c:1864,1
    - Dst: xmlBufShrink
      Src: /src/libxml2/encoding.c:1871,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 3
    argNames:
    - input
    - sizeOut
    - flush
    argTypes:
    - xmlParserInputBuffer*
    - size_t*
    - int
    constantsTouched: []
    func_position:
      end: 1880
      start: 1791
    functionDepth: 0
    functionLinenumber: 1791
    functionLinenumberEnd: 1880
    functionName: xmlCharEncInput
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlBufEnd
    - xmlEncConvertError
    - xmlBufAvail
    - xmlBufShrink
    - xmlBufGrow
    - xmlBufAddLen
    - xmlBufUse
    - xmlBufContent
    - xmlEncInputChunk
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'xmlCharEncError xmlCharEncInput(xmlParserInputBuffer *input, size_t
      *sizeOut, int flush) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/encoding.c:2244,1
    - Dst: xmlEncOutputChunk
      Src: /src/libxml2/encoding.c:2250,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:2252,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 2264
      start: 2220
    functionDepth: 0
    functionLinenumber: 2220
    functionLinenumberEnd: 2264
    functionName: xmlByteConsumed
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlMalloc
    - xmlEncOutputChunk
    linkageType: ''
    returnType: long
    signature: 'long xmlByteConsumed(xmlParserCtxt *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libxml2/encoding.c:2401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 6
    argNames:
    - ATTRIBUTE_UNUSED
    - out
    - outlen
    - in
    - inlen
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 2406
      start: 2379
    functionDepth: 0
    functionLinenumber: 2379
    functionLinenumberEnd: 2406
    functionName: UTF8ToUTF8
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'static xmlCharEncError UTF8ToUTF8(void *vctxt ATTRIBUTE_UNUSED, unsigned
      char* out, int *outlen, const unsigned char* in, int *inlen, int flush ATTRIBUTE_UNUSED) '
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 90
    argCount: 6
    argNames:
    - ATTRIBUTE_UNUSED
    - out
    - outlen
    - in
    - inlen
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 2553
      start: 2486
    functionDepth: 0
    functionLinenumber: 2486
    functionLinenumberEnd: 2553
    functionName: UTF16LEToUTF8
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'static xmlCharEncError UTF16LEToUTF8(void *vctxt ATTRIBUTE_UNUSED,
      unsigned char *out, int *outlen, const unsigned char *in, int *inlen, int flush
      ATTRIBUTE_UNUSED) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: openIcuConverter
      Src: /src/libxml2/encoding.c:1610,1
    - Dst: closeIcuConverter
      Src: /src/libxml2/encoding.c:1630,1
    - Dst: closeIcuConverter
      Src: /src/libxml2/encoding.c:1628,1
    - Dst: openIcuConverter
      Src: /src/libxml2/encoding.c:1617,1
    - Dst: xmlCharEncNewCustomHandler
      Src: /src/libxml2/encoding.c:1623,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 18
    argCount: 3
    argNames:
    - name
    - flags
    - out
    argTypes:
    - char*
    - xmlCharEncFlags
    - xmlCharEncodingHandler**
    constantsTouched: []
    func_position:
      end: 1632
      start: 1601
    functionDepth: 0
    functionLinenumber: 1601
    functionLinenumberEnd: 1632
    functionName: xmlCharEncUconv
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - openIcuConverter
    - closeIcuConverter
    - xmlCharEncNewCustomHandler
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'static xmlParserErrors xmlCharEncUconv(const char *name, xmlCharEncFlags
      flags, xmlCharEncodingHandler **out) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/encoding.c:595,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:596,1
    - Dst: memmove
      Src: /src/libxml2/encoding.c:599,1
    - Dst: xmlFree
      Src: /src/libxml2/encoding.c:597,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - alias
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 605
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 605
    functionName: xmlDelEncodingAlias
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memmove
    - strcmp
    linkageType: ''
    returnType: int
    signature: 'int xmlDelEncodingAlias(const char *alias) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 826
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 826
    functionName: xmlInitEncodingInternal
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlInitEncodingInternal(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreateCharEncodingHandler
      Src: /src/libxml2/encoding.c:1171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - name
    - output
    - out
    argTypes:
    - char*
    - int
    - xmlCharEncodingHandler**
    constantsTouched: []
    func_position:
      end: 1172
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1172
    functionName: xmlOpenCharEncodingHandler
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlCreateCharEncodingHandler
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'xmlParserErrors xmlOpenCharEncodingHandler(const char *name, int output,
      xmlCharEncodingHandler **out) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libxml2/encoding.c:1351,1
    - Dst: iconv_open
      Src: /src/libxml2/encoding.c:1379,1
    - Dst: xmlEncodingMatch
      Src: /src/libxml2/encoding.c:1364,1
    - Dst: xmlEncodingMatch
      Src: /src/libxml2/encoding.c:1365,1
    - Dst: xmlMalloc
      Src: /src/libxml2/encoding.c:1372,1
    - Dst: xmlMalloc
      Src: /src/libxml2/encoding.c:1395,1
    - Dst: iconv_open
      Src: /src/libxml2/encoding.c:1402,1
    - Dst: xmlCharEncNewCustomHandler
      Src: /src/libxml2/encoding.c:1417,1
    - Dst: xmlIconvFree
      Src: /src/libxml2/encoding.c:1422,1
    - Dst: xmlIconvFree
      Src: /src/libxml2/encoding.c:1424,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 58
    argCount: 3
    argNames:
    - name
    - flags
    - out
    argTypes:
    - char*
    - xmlCharEncFlags
    - xmlCharEncodingHandler**
    constantsTouched: []
    func_position:
      end: 1426
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1426
    functionName: xmlCharEncIconv
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlEncodingMatch
    - xmlIconvFree
    - xmlCharEncNewCustomHandler
    - iconv_open
    - strstr
    - xmlMalloc
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'static xmlParserErrors xmlCharEncIconv(const char *name, xmlCharEncFlags
      flags, xmlCharEncodingHandler **out) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlEncOutputChunk
      Src: /src/libxml2/encoding.c:2003,1
    - Dst: xmlBufAvail
      Src: /src/libxml2/encoding.c:2020,1
    - Dst: xmlSerializeDecCharRef
      Src: /src/libxml2/encoding.c:2054,1
    - Dst: xmlEncOutputChunk
      Src: /src/libxml2/encoding.c:2058,1
    - Dst: xmlBufEnd
      Src: /src/libxml2/encoding.c:2058,1
    - Dst: xmlBufAvail
      Src: /src/libxml2/encoding.c:1994,1
    - Dst: xmlBufUse
      Src: /src/libxml2/encoding.c:2012,1
    - Dst: xmlBufContent
      Src: /src/libxml2/encoding.c:2028,1
    - Dst: xmlEncConvertError
      Src: /src/libxml2/encoding.c:2075,1
    - Dst: xmlBufAddLen
      Src: /src/libxml2/encoding.c:2005,1
    - Dst: xmlBufGrow
      Src: /src/libxml2/encoding.c:2016,1
    - Dst: xmlEncOutputChunk
      Src: /src/libxml2/encoding.c:2027,1
    - Dst: xmlBufAvail
      Src: /src/libxml2/encoding.c:2056,1
    - Dst: xmlBufShrink
      Src: /src/libxml2/encoding.c:2029,1
    - Dst: xmlBufUse
      Src: /src/libxml2/encoding.c:2041,1
    - Dst: xmlBufShrink
      Src: /src/libxml2/encoding.c:2065,1
    - Dst: xmlBufEnd
      Src: /src/libxml2/encoding.c:2003,1
    - Dst: xmlBufEnd
      Src: /src/libxml2/encoding.c:2027,1
    - Dst: xmlGetUTF8Char
      Src: /src/libxml2/encoding.c:2045,1
    - Dst: xmlBufGrow
      Src: /src/libxml2/encoding.c:2055,1
    - Dst: xmlBufAddLen
      Src: /src/libxml2/encoding.c:2030,1
    - Dst: xmlBufContent
      Src: /src/libxml2/encoding.c:2042,1
    - Dst: xmlBufAddLen
      Src: /src/libxml2/encoding.c:2066,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 2
    argNames:
    - output
    - init
    argTypes:
    - xmlOutputBuffer*
    - int
    constantsTouched: []
    func_position:
      end: 2080
      start: 1974
    functionDepth: 0
    functionLinenumber: 1974
    functionLinenumberEnd: 2080
    functionName: xmlCharEncOutput
    functionSourceFile: /src/libxml2/encoding.c
    functionUses: []
    functionsReached:
    - xmlBufEnd
    - xmlEncOutputChunk
    - xmlEncConvertError
    - xmlBufAvail
    - xmlBufShrink
    - xmlBufGrow
    - xmlSerializeDecCharRef
    - xmlBufAddLen
    - xmlBufUse
    - xmlBufContent
    - xmlGetUTF8Char
    linkageType: ''
    returnType: int
    signature: 'int xmlCharEncOutput(xmlOutputBuffer *output, int init) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlError*
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: ignoreError
    functionSourceFile: /src/libxml2/testapi.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void ignoreError(void *userData ATTRIBUTE_UNUSED, const xmlError
      *error ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreateCharEncodingHandler
      Src: /src/libxml2/testapi.c:131,1
    - Dst: xmlGetParameterEntity
      Src: /src/libxml2/testapi.c:264,1
    - Dst: xmlMemGet
      Src: /src/libxml2/testapi.c:360,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:373,1
    - Dst: xmlParserInputBufferPush
      Src: /src/libxml2/testapi.c:461,1
    - Dst: htmlCtxtReadDoc
      Src: /src/libxml2/testapi.c:667,1
    - Dst: xmlSchemaIsBuiltInTypeFacet
      Src: /src/libxml2/testapi.c:1033,1
    - Dst: xmlFreeTextWriter
      Src: /src/libxml2/testapi.c:1133,1
    - Dst: xmlXPathNodeSetRemove
      Src: /src/libxml2/testapi.c:1331,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:406,1
    - Dst: xmlCleanupGlobals
      Src: /src/libxml2/testapi.c:107,1
    - Dst: xmlCtxtGetVersion
      Src: /src/libxml2/testapi.c:153,1
    - Dst: xmlHashFree
      Src: /src/libxml2/testapi.c:280,1
    - Dst: xmlFreeCatalog
      Src: /src/libxml2/testapi.c:637,1
    - Dst: xmlNewInputFromFd
      Src: /src/libxml2/testapi.c:389,1
    - Dst: xmlAutomataNewState
      Src: /src/libxml2/testapi.c:937,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1320,1
    - Dst: xmlTextWriterWriteFormatAttributeNS
      Src: /src/libxml2/testapi.c:1184,1
    - Dst: xlinkGetDefaultDetect
      Src: /src/libxml2/testapi.c:1395,1
    - Dst: xmlDictCleanup
      Src: /src/libxml2/testapi.c:189,1
    - Dst: xmlBufShrink
      Src: /src/libxml2/testapi.c:63,1
    - Dst: xmlIsMixedElement
      Src: /src/libxml2/testapi.c:319,1
    - Dst: xmlListWalk
      Src: /src/libxml2/testapi.c:352,1
    - Dst: xmlReaderWalker
      Src: /src/libxml2/testapi.c:838,1
    - Dst: xmlNodeListGetRawString
      Src: /src/libxml2/testapi.c:425,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/testapi.c:765,1
    - Dst: xmlTextReaderLocatorLineNumber
      Src: /src/libxml2/testapi.c:874,1
    - Dst: xmlRelaxNGDump
      Src: /src/libxml2/testapi.c:981,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/testapi.c:1041,1
    - Dst: xmlListEnd
      Src: /src/libxml2/testapi.c:335,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:856,1
    - Dst: xmlStrchr
      Src: /src/libxml2/testapi.c:549,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:700,1
    - Dst: xmlSchemaValPredefTypeNodeNoNorm
      Src: /src/libxml2/testapi.c:1053,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:468,1
    - Dst: xmlTextMerge
      Src: /src/libxml2/testapi.c:571,1
    - Dst: xmlSchematronNewValidCtxt
      Src: /src/libxml2/testapi.c:1085,1
    - Dst: xmlTextWriterWriteVFormatElement
      Src: /src/libxml2/testapi.c:1208,1
    - Dst: xmlXIncludeProcessTreeFlagsData
      Src: /src/libxml2/testapi.c:1225,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:666,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testapi.c:231,1
    - Dst: xmlCtxtGetCatalogs
      Src: /src/libxml2/testapi.c:143,1
    - Dst: xmlNewRMutex
      Src: /src/libxml2/testapi.c:405,1
    - Dst: xmlCatalogDump
      Src: /src/libxml2/testapi.c:647,1
    - Dst: xmlModuleOpen
      Src: /src/libxml2/testapi.c:733,1
    - Dst: xmlSaveClose
      Src: /src/libxml2/testapi.c:788,1
    - Dst: xmlNodeSetSpacePreserve
      Src: /src/libxml2/testapi.c:432,1
    - Dst: xmlThrDefSubstituteEntitiesDefaultValue
      Src: /src/libxml2/testapi.c:584,1
    - Dst: xmlFreeAutomata
      Src: /src/libxml2/testapi.c:942,1
    - Dst: xmlTextReaderMoveToAttribute
      Src: /src/libxml2/testapi.c:876,1
    - Dst: xmlSchemaNewQNameValue
      Src: /src/libxml2/testapi.c:1040,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:60,1
    - Dst: xmlUTF8Strndup
      Src: /src/libxml2/testapi.c:592,1
    - Dst: xmlAutomataNewCountTrans2
      Src: /src/libxml2/testapi.c:929,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:994,1
    - Dst: xmlTextWriterWriteDTDNotation
      Src: /src/libxml2/testapi.c:1180,1
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxml2/testapi.c:1353,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/testapi.c:1401,1
    - Dst: xmlCanonicPath
      Src: /src/libxml2/testapi.c:91,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testapi.c:137,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/testapi.c:203,1
    - Dst: xmlGetBufferAllocationScheme
      Src: /src/libxml2/testapi.c:240,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:425,1
    - Dst: xmlC14NDocSave
      Src: /src/libxml2/testapi.c:607,1
    - Dst: xmlStrncat
      Src: /src/libxml2/testapi.c:559,1
    - Dst: xmlNewNsProp
      Src: /src/libxml2/testapi.c:400,1
    - Dst: xmlParseCtxtExternalEntity
      Src: /src/libxml2/testapi.c:440,1
    - Dst: xmlCatalogAddLocal
      Src: /src/libxml2/testapi.c:620,1
    - Dst: xmlCleanupParser
      Src: /src/libxml2/testapi.c:1404,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/testapi.c:1380,1
    - Dst: xmlReadFile
      Src: /src/libxml2/testapi.c:478,1
    - Dst: xmlGetDtdNotationDesc
      Src: /src/libxml2/testapi.c:249,1
    - Dst: xmlGetPredefinedEntity
      Src: /src/libxml2/testapi.c:265,1
    - Dst: xmlBufferContent
      Src: /src/libxml2/testapi.c:69,1
    - Dst: xmlCtxtSetCharEncConvImpl
      Src: /src/libxml2/testapi.c:169,1
    - Dst: xmlIsBaseChar
      Src: /src/libxml2/testapi.c:309,1
    - Dst: xmlNodeGetAttrValue
      Src: /src/libxml2/testapi.c:418,1
    - Dst: xmlSAX2SetDocumentLocator
      Src: /src/libxml2/testapi.c:518,1
    - Dst: xmlValidateNCName
      Src: /src/libxml2/testapi.c:600,1
    - Dst: xmlAutomataCompile
      Src: /src/libxml2/testapi.c:924,1
    - Dst: xmlTextReaderSetErrorHandler
      Src: /src/libxml2/testapi.c:895,1
    - Dst: xmlRegFreeExecCtxt
      Src: /src/libxml2/testapi.c:947,1
    - Dst: xmlCreateIOParserCtxt
      Src: /src/libxml2/testapi.c:137,1
    - Dst: xmlParserInputBufferCreateFilename
      Src: /src/libxml2/testapi.c:455,1
    - Dst: xmlPopInput
      Src: /src/libxml2/testapi.c:470,1
    - Dst: htmlDocContentDumpOutput
      Src: /src/libxml2/testapi.c:711,1
    - Dst: xmlSchematronNewParserCtxt
      Src: /src/libxml2/testapi.c:1084,1
    - Dst: xmlXPathModValues
      Src: /src/libxml2/testapi.c:1295,1
    - Dst: xmlXPathParseNCName
      Src: /src/libxml2/testapi.c:1342,1
    - Dst: xmlSchemaValidateFile
      Src: /src/libxml2/testapi.c:1059,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:116,1
    - Dst: xmlTextReaderHasAttributes
      Src: /src/libxml2/testapi.c:866,1
    - Dst: xmlXIncludeFreeContext
      Src: /src/libxml2/testapi.c:1216,1
    - Dst: xmlXPathCastNodeSetToBoolean
      Src: /src/libxml2/testapi.c:1236,1
    - Dst: xmlModuleFree
      Src: /src/libxml2/testapi.c:732,1
    - Dst: xmlTextReaderConstString
      Src: /src/libxml2/testapi.c:849,1
    - Dst: xmlSearchNsByHref
      Src: /src/libxml2/testapi.c:526,1
    - Dst: xmlTextWriterWriteFormatPI
      Src: /src/libxml2/testapi.c:1193,1
    - Dst: xmlXPathEvalPredicate
      Src: /src/libxml2/testapi.c:1271,1
    - Dst: xmlXPathTrailingSorted
      Src: /src/libxml2/testapi.c:1375,1
    - Dst: xmlXPtrEval
      Src: /src/libxml2/testapi.c:1400,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:368,1
    - Dst: htmlSaveFileEnc
      Src: /src/libxml2/testapi.c:721,1
    - Dst: xmlPopInputCallbacks
      Src: /src/libxml2/testapi.c:471,1
    - Dst: xmlThrDefDoValidityCheckingDefaultValue
      Src: /src/libxml2/testapi.c:573,1
    - Dst: htmlCtxtReadIO
      Src: /src/libxml2/testapi.c:670,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:559,1
    - Dst: xmlValidateElement
      Src: /src/libxml2/testapi.c:1111,1
    - Dst: xmlSetStructuredErrorFunc
      Src: /src/libxml2/testapi.c:41,1
    - Dst: xmlBufContent
      Src: /src/libxml2/testapi.c:60,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testapi.c:136,1
    - Dst: xmlCtxtReadIO
      Src: /src/libxml2/testapi.c:163,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:202,1
    - Dst: xmlHashRemoveEntry
      Src: /src/libxml2/testapi.c:290,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/testapi.c:550,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:618,1
    - Dst: xmlSaveFinish
      Src: /src/libxml2/testapi.c:780,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/testapi.c:891,1
    - Dst: htmlSetMetaEncoding
      Src: /src/libxml2/testapi.c:705,1
    - Dst: xmlRelaxNGSetValidStructuredErrors
      Src: /src/libxml2/testapi.c:973,1
    - Dst: xmlFormatError
      Src: /src/libxml2/testapi.c:213,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/testapi.c:275,1
    - Dst: xmlListRemoveFirst
      Src: /src/libxml2/testapi.c:344,1
    - Dst: xmlNewTextWriterDoc
      Src: /src/libxml2/testapi.c:1134,1
    - Dst: xmlTextWriterStartPI
      Src: /src/libxml2/testapi.c:1166,1
    - Dst: xmlXIncludeProcessFlags
      Src: /src/libxml2/testapi.c:1220,1
    - Dst: xmlXPathNodeSetSort
      Src: /src/libxml2/testapi.c:1332,1
    - Dst: xmlXPathRegisteredFuncsCleanup
      Src: /src/libxml2/testapi.c:1358,1
    - Dst: xmlXPathCastBooleanToNumber
      Src: /src/libxml2/testapi.c:1234,1
    - Dst: xmlCleanupEncodingAliases
      Src: /src/libxml2/testapi.c:106,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/testapi.c:280,1
    - Dst: xmlHashUpdateEntry2
      Src: /src/libxml2/testapi.c:299,1
    - Dst: xmlListInsert
      Src: /src/libxml2/testapi.c:337,1
    - Dst: xmlSAX2ElementDecl
      Src: /src/libxml2/testapi.c:496,1
    - Dst: xmlTextReaderSetMaxAmplification
      Src: /src/libxml2/testapi.c:896,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:872,1
    - Dst: xmlSchemaNewStringValue
      Src: /src/libxml2/testapi.c:1041,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/testapi.c:1099,1
    - Dst: xmlTextWriterWriteCDATA
      Src: /src/libxml2/testapi.c:1171,1
    - Dst: xmlUnsetProp
      Src: /src/libxml2/testapi.c:599,1
    - Dst: xmlSchemaInitTypes
      Src: /src/libxml2/testapi.c:1032,1
    - Dst: xmlAddNotationDecl
      Src: /src/libxml2/testapi.c:55,1
    - Dst: xmlInputSetEncodingHandler
      Src: /src/libxml2/testapi.c:308,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/testapi.c:445,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:644,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:918,1
    - Dst: xmlCatalogRemove
      Src: /src/libxml2/testapi.c:628,1
    - Dst: htmlParseCharRef
      Src: /src/libxml2/testapi.c:693,1
    - Dst: htmlElementStatusHere
      Src: /src/libxml2/testapi.c:677,1
    - Dst: xmlBuildQName
      Src: /src/libxml2/testapi.c:85,1
    - Dst: xmlCopyDoc
      Src: /src/libxml2/testapi.c:116,1
    - Dst: xmlDOMWrapCloneNode
      Src: /src/libxml2/testapi.c:180,1
    - Dst: xmlFreeElementContent
      Src: /src/libxml2/testapi.c:375,1
    - Dst: xmlNewInputFromString
      Src: /src/libxml2/testapi.c:393,1
    - Dst: xmlAutomataNewAllTrans
      Src: /src/libxml2/testapi.c:927,1
    - Dst: xmlSAXParseFileWithData
      Src: /src/libxml2/testapi.c:1001,1
    - Dst: xmlTextWriterSetIndentString
      Src: /src/libxml2/testapi.c:1153,1
    - Dst: xmlXIncludeNewContext
      Src: /src/libxml2/testapi.c:1218,1
    - Dst: xmlSetProp
      Src: /src/libxml2/testapi.c:535,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:996,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:163,1
    - Dst: xmlHasNsProp
      Src: /src/libxml2/testapi.c:270,1
    - Dst: xmlSAX2InitDefaultSAXHandler
      Src: /src/libxml2/testapi.c:511,1
    - Dst: xmlBufNodeDump
      Src: /src/libxml2/testapi.c:741,1
    - Dst: xmlXPathStringLengthFunction
      Src: /src/libxml2/testapi.c:1368,1
    - Dst: xmlCtxtReadDoc
      Src: /src/libxml2/testapi.c:160,1
    - Dst: xmlFindCharEncodingHandler
      Src: /src/libxml2/testapi.c:211,1
    - Dst: xmlHashLookup3
      Src: /src/libxml2/testapi.c:286,1
    - Dst: xmlSubstituteEntitiesDefault
      Src: /src/libxml2/testapi.c:565,1
    - Dst: xmlNodeDumpOutput
      Src: /src/libxml2/testapi.c:759,1
    - Dst: xmlStopParser
      Src: /src/libxml2/testapi.c:541,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1252,1
    - Dst: xmlXPathEval
      Src: /src/libxml2/testapi.c:1268,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/testapi.c:1327,1
    - Dst: xmlRelaxNGFreeParserCtxt
      Src: /src/libxml2/testapi.c:959,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:1001,1
    - Dst: xmlLastElementChild
      Src: /src/libxml2/testapi.c:325,1
    - Dst: xmlACatalogRemove
      Src: /src/libxml2/testapi.c:614,1
    - Dst: xmlXPathNextNamespace
      Src: /src/libxml2/testapi.c:1315,1
    - Dst: xmlTextReaderConstPrefix
      Src: /src/libxml2/testapi.c:848,1
    - Dst: xmlTextReaderSetStructuredErrorHandler
      Src: /src/libxml2/testapi.c:899,1
    - Dst: xmlAddChildList
      Src: /src/libxml2/testapi.c:46,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:54,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:489,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:626,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/testapi.c:1016,1
    - Dst: xmlSchemaValueGetAsBoolean
      Src: /src/libxml2/testapi.c:1069,1
    - Dst: xmlCtxtValidateDocument
      Src: /src/libxml2/testapi.c:1094,1
    - Dst: xmlFreeTextWriter
      Src: /src/libxml2/testapi.c:1134,1
    - Dst: xmlDebugDumpOneNode
      Src: /src/libxml2/testapi.c:658,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:670,1
    - Dst: xmlOutputBufferCreateIO
      Src: /src/libxml2/testapi.c:765,1
    - Dst: xmlTextReaderLocatorBaseURI
      Src: /src/libxml2/testapi.c:873,1
    - Dst: xmlCtxtSetSaxHandler
      Src: /src/libxml2/testapi.c:176,1
    - Dst: xmlGcMemSetup
      Src: /src/libxml2/testapi.c:239,1
    - Dst: xmlFreeEntitiesTable
      Src: /src/libxml2/testapi.c:220,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/testapi.c:122,1
    - Dst: xmlRegisterCharEncodingHandler
      Src: /src/libxml2/testapi.c:482,1
    - Dst: xmlListDelete
      Src: /src/libxml2/testapi.c:333,1
    - Dst: xmlTextReaderByteConsumed
      Src: /src/libxml2/testapi.c:841,1
    - Dst: xmlSAXDefaultVersion
      Src: /src/libxml2/testapi.c:997,1
    - Dst: htmlAttrAllowed
      Src: /src/libxml2/testapi.c:662,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:91,1
    - Dst: xmlGetCharEncodingHandler
      Src: /src/libxml2/testapi.c:241,1
    - Dst: xmlMemBlocks
      Src: /src/libxml2/testapi.c:356,1
    - Dst: xmlParserInputBufferCreateFilenameDefault
      Src: /src/libxml2/testapi.c:456,1
    - Dst: xmlSaveFormatFile
      Src: /src/libxml2/testapi.c:782,1
    - Dst: xmlXPathNamespaceURIFunction
      Src: /src/libxml2/testapi.c:1297,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/testapi.c:1292,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:378,1
    - Dst: xmlSchemaParse
      Src: /src/libxml2/testapi.c:1043,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:560,1
    - Dst: xmlUTF8Strpos
      Src: /src/libxml2/testapi.c:593,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/testapi.c:92,1
    - Dst: xmlCopyNamespace
      Src: /src/libxml2/testapi.c:124,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/testapi.c:255,1
    - Dst: xmlHashCreateDict
      Src: /src/libxml2/testapi.c:281,1
    - Dst: xmlRegisterInputCallbacks
      Src: /src/libxml2/testapi.c:484,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1279,1
    - Dst: xmlTextWriterStartDTDAttlist
      Src: /src/libxml2/testapi.c:1160,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:989,1
    - Dst: xmlCtxtSetDict
      Src: /src/libxml2/testapi.c:170,1
    - Dst: xmlXPathRegisteredVariablesCleanup
      Src: /src/libxml2/testapi.c:1360,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/testapi.c:1040,1
    - Dst: htmlDocDump
      Src: /src/libxml2/testapi.c:712,1
    - Dst: xmlRegFreeRegexp
      Src: /src/libxml2/testapi.c:948,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:592,1
    - Dst: xmlLockLibrary
      Src: /src/libxml2/testapi.c:354,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:426,1
    - Dst: xmlCatalogCleanup
      Src: /src/libxml2/testapi.c:621,1
    - Dst: xmlSAXParseDTD
      Src: /src/libxml2/testapi.c:1100,1
    - Dst: xmlValidateElementDecl
      Src: /src/libxml2/testapi.c:1112,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/testapi.c:1321,1
    - Dst: xmlFreeNs
      Src: /src/libxml2/testapi.c:526,1
    - Dst: xmlBufferCreateSize
      Src: /src/libxml2/testapi.c:71,1
    - Dst: xmlDOMWrapFreeCtxt
      Src: /src/libxml2/testapi.c:181,1
    - Dst: xmlNewInputFromUrl
      Src: /src/libxml2/testapi.c:394,1
    - Dst: xmlValidateOneAttribute
      Src: /src/libxml2/testapi.c:1119,1
    - Dst: xmlTextWriterWriteVFormatDTD
      Src: /src/libxml2/testapi.c:1204,1
    - Dst: xmlXPathCastNodeSetToNumber
      Src: /src/libxml2/testapi.c:1237,1
    - Dst: xmlXPathPopNumber
      Src: /src/libxml2/testapi.c:1347,1
    - Dst: xmlXPathSetContextNode
      Src: /src/libxml2/testapi.c:1363,1
    - Dst: xmlXPathPopBoolean
      Src: /src/libxml2/testapi.c:1344,1
    - Dst: xmlSetDocCompressMode
      Src: /src/libxml2/testapi.c:529,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testapi.c:821,1
    - Dst: xmlAddDocEntity
      Src: /src/libxml2/testapi.c:47,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/testapi.c:97,1
    - Dst: xmlIsBlank
      Src: /src/libxml2/testapi.c:310,1
    - Dst: xmlOutputBufferCreateFilenameDefault
      Src: /src/libxml2/testapi.c:436,1
    - Dst: xmlSAXParseMemory
      Src: /src/libxml2/testapi.c:1002,1
    - Dst: xmlNewTextWriterMemory
      Src: /src/libxml2/testapi.c:1136,1
    - Dst: xmlXPathNextAttribute
      Src: /src/libxml2/testapi.c:1309,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/testapi.c:1375,1
    - Dst: xmlRelaxNGValidateDoc
      Src: /src/libxml2/testapi.c:974,1
    - Dst: xmlTextWriterEndAttribute
      Src: /src/libxml2/testapi.c:1140,1
    - Dst: xmlTextReaderRelaxNGValidateCtxt
      Src: /src/libxml2/testapi.c:910,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:995,1
    - Dst: xmlSAX2UnparsedEntityDecl
      Src: /src/libxml2/testapi.c:522,1
    - Dst: xmlOutputBufferFlush
      Src: /src/libxml2/testapi.c:766,1
    - Dst: xmlDocSetRootElement
      Src: /src/libxml2/testapi.c:204,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:61,1
    - Dst: xmlCharEncFirstLine
      Src: /src/libxml2/testapi.c:93,1
    - Dst: xmlHashRemoveEntry2
      Src: /src/libxml2/testapi.c:291,1
    - Dst: xmlNewDocPI
      Src: /src/libxml2/testapi.c:379,1
    - Dst: xmlStreamPush
      Src: /src/libxml2/testapi.c:813,1
    - Dst: xmlTextReaderNext
      Src: /src/libxml2/testapi.c:884,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:98,1
    - Dst: xmlFirstElementChild
      Src: /src/libxml2/testapi.c:212,1
    - Dst: xmlValidateNMToken
      Src: /src/libxml2/testapi.c:601,1
    - Dst: xmlValidNormalizeAttributeValue
      Src: /src/libxml2/testapi.c:1104,1
    - Dst: xmlTextWriterWriteAttribute
      Src: /src/libxml2/testapi.c:1167,1
    - Dst: xmlTextWriterWriteFormatCDATA
      Src: /src/libxml2/testapi.c:1185,1
    - Dst: xmlXPathCastNodeToNumber
      Src: /src/libxml2/testapi.c:1239,1
    - Dst: xlinkIsLink
      Src: /src/libxml2/testapi.c:1397,1
    - Dst: xmlTextReaderReadOuterXml
      Src: /src/libxml2/testapi.c:919,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/testapi.c:1015,1
    - Dst: xmlSchemaDump
      Src: /src/libxml2/testapi.c:1074,1
    - Dst: xmlRegExecErrInfo
      Src: /src/libxml2/testapi.c:943,1
    - Dst: xmlParseEntity
      Src: /src/libxml2/testapi.c:990,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxml2/testapi.c:276,1
    - Dst: xmlListAppend
      Src: /src/libxml2/testapi.c:328,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:374,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/testapi.c:1286,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1303,1
    - Dst: xmlXPathWrapExternal
      Src: /src/libxml2/testapi.c:1384,1
    - Dst: xmlAddRef
      Src: /src/libxml2/testapi.c:57,1
    - Dst: xmlBufferCreate
      Src: /src/libxml2/testapi.c:70,1
    - Dst: xmlCharStrndup
      Src: /src/libxml2/testapi.c:98,1
    - Dst: xmlHashQLookup
      Src: /src/libxml2/testapi.c:287,1
    - Dst: xmlSAX2GetEntity
      Src: /src/libxml2/testapi.c:503,1
    - Dst: htmlNodeDumpFileFormat
      Src: /src/libxml2/testapi.c:717,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:882,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/testapi.c:760,1
    - Dst: xmlTextReaderGetRemainder
      Src: /src/libxml2/testapi.c:865,1
    - Dst: xmlXPathNextParent
      Src: /src/libxml2/testapi.c:1316,1
    - Dst: xmlTextReaderSetParserProp
      Src: /src/libxml2/testapi.c:897,1
    - Dst: xmlLoadCatalog
      Src: /src/libxml2/testapi.c:640,1
    - Dst: xmlDocDump
      Src: /src/libxml2/testapi.c:743,1
    - Dst: xmlThrDefIndentTreeOutput
      Src: /src/libxml2/testapi.c:794,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/testapi.c:222,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:410,1
    - Dst: htmlIsScriptAttribute
      Src: /src/libxml2/testapi.c:687,1
    - Dst: htmlSaveFileFormat
      Src: /src/libxml2/testapi.c:722,1
    - Dst: xmlTextReaderReadState
      Src: /src/libxml2/testapi.c:893,1
    - Dst: xmlTextWriterEndDTDAttlist
      Src: /src/libxml2/testapi.c:1144,1
    - Dst: xmlXPathCeilingFunction
      Src: /src/libxml2/testapi.c:1248,1
    - Dst: xmlXPathNextSelf
      Src: /src/libxml2/testapi.c:1319,1
    - Dst: xmlStreamPop
      Src: /src/libxml2/testapi.c:812,1
    - Dst: xmlSprintfElementContent
      Src: /src/libxml2/testapi.c:793,1
    - Dst: xmlSetupParserForBuffer
      Src: /src/libxml2/testapi.c:1006,1
    - Dst: xmlBufEnd
      Src: /src/libxml2/testapi.c:61,1
    - Dst: xmlBufferResize
      Src: /src/libxml2/testapi.c:79,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:156,1
    - Dst: xmlHasProp
      Src: /src/libxml2/testapi.c:271,1
    - Dst: xmlNewTextChild
      Src: /src/libxml2/testapi.c:410,1
    - Dst: xmlSetTreeDoc
      Src: /src/libxml2/testapi.c:536,1
    - Dst: xmlRecoverFile
      Src: /src/libxml2/testapi.c:995,1
    - Dst: xmlRegisterOutputCallbacks
      Src: /src/libxml2/testapi.c:774,1
    - Dst: xmlTextReaderName
      Src: /src/libxml2/testapi.c:882,1
    - Dst: xmlSchemaSetResourceLoader
      Src: /src/libxml2/testapi.c:1048,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:325,1
    - Dst: xmlNewElementContent
      Src: /src/libxml2/testapi.c:385,1
    - Dst: xmlFreeRMutex
      Src: /src/libxml2/testapi.c:405,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:627,1
    - Dst: xmlTextWriterWriteDTDEntity
      Src: /src/libxml2/testapi.c:1176,1
    - Dst: xlinkGetDefaultHandler
      Src: /src/libxml2/testapi.c:1396,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:857,1
    - Dst: xmlSAX2StartDocument
      Src: /src/libxml2/testapi.c:519,1
    - Dst: xmlSAX2GetColumnNumber
      Src: /src/libxml2/testapi.c:502,1
    - Dst: xmlPatternCompileSafe
      Src: /src/libxml2/testapi.c:804,1
    - Dst: xmlListRemoveLast
      Src: /src/libxml2/testapi.c:345,1
    - Dst: xmlParseURISafe
      Src: /src/libxml2/testapi.c:448,1
    - Dst: xmlRelaxNGFreeValidCtxt
      Src: /src/libxml2/testapi.c:960,1
    - Dst: xmlXPathContainsFunction
      Src: /src/libxml2/testapi.c:1255,1
    - Dst: xmlXPathNewNodeSetList
      Src: /src/libxml2/testapi.c:1303,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:1315,1
    - Dst: xmlValidateAttributeDecl
      Src: /src/libxml2/testapi.c:1105,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/testapi.c:542,1
    - Dst: xmlReaderNewFile
      Src: /src/libxml2/testapi.c:834,1
    - Dst: xmlParseDoc
      Src: /src/libxml2/testapi.c:989,1
    - Dst: xmlSwitchEncoding
      Src: /src/libxml2/testapi.c:566,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:46,1
    - Dst: xmlDictQLookup
      Src: /src/libxml2/testapi.c:197,1
    - Dst: xmlHashScanFull
      Src: /src/libxml2/testapi.c:295,1
    - Dst: xmlDocDumpMemoryEnc
      Src: /src/libxml2/testapi.c:747,1
    - Dst: xmlSchemaValueGetAsString
      Src: /src/libxml2/testapi.c:1070,1
    - Dst: xmlTextWriterSetQuoteChar
      Src: /src/libxml2/testapi.c:1154,1
    - Dst: htmlEntityLookup
      Src: /src/libxml2/testapi.c:679,1
    - Dst: xmlXPathNodeSetFreeNs
      Src: /src/libxml2/testapi.c:1329,1
    - Dst: xmlValidateNotationUse
      Src: /src/libxml2/testapi.c:1118,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/testapi.c:1293,1
    - Dst: xmlStreamPushNode
      Src: /src/libxml2/testapi.c:815,1
    - Dst: xmlCleanupOutputCallbacks
      Src: /src/libxml2/testapi.c:742,1
    - Dst: htmlIsBooleanAttr
      Src: /src/libxml2/testapi.c:686,1
    - Dst: xmlTextReaderReadAttributeValue
      Src: /src/libxml2/testapi.c:892,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:873,1
    - Dst: xmlFreeEntity
      Src: /src/libxml2/testapi.c:221,1
    - Dst: xmlGetIntSubset
      Src: /src/libxml2/testapi.c:255,1
    - Dst: xmlNewDocNodeEatName
      Src: /src/libxml2/testapi.c:378,1
    - Dst: xmlValidGetValidElements
      Src: /src/libxml2/testapi.c:1103,1
    - Dst: xmlTextWriterEndDTD
      Src: /src/libxml2/testapi.c:1143,1
    - Dst: xmlTextWriterWriteComment
      Src: /src/libxml2/testapi.c:1172,1
    - Dst: htmlSAXParseDoc
      Src: /src/libxml2/testapi.c:703,1
    - Dst: xmlSaveToBuffer
      Src: /src/libxml2/testapi.c:788,1
    - Dst: xmlAutomataNewNegTrans
      Src: /src/libxml2/testapi.c:934,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxml2/testapi.c:1288,1
    - Dst: xmlNewAutomata
      Src: /src/libxml2/testapi.c:942,1
    - Dst: xmlTextWriterFlush
      Src: /src/libxml2/testapi.c:1150,1
    - Dst: xmlXPathPopString
      Src: /src/libxml2/testapi.c:1348,1
    - Dst: xmlRelaxNGDumpTree
      Src: /src/libxml2/testapi.c:982,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/testapi.c:455,1
    - Dst: xmlSAX2EndDocument
      Src: /src/libxml2/testapi.c:497,1
    - Dst: xmlRelaxNGNewValidCtxt
      Src: /src/libxml2/testapi.c:967,1
    - Dst: xmlSchemaValidatePredefinedType
      Src: /src/libxml2/testapi.c:1064,1
    - Dst: xmlDictExists
      Src: /src/libxml2/testapi.c:192,1
    - Dst: xmlCtxtIsHtml
      Src: /src/libxml2/testapi.c:154,1
    - Dst: xmlIsPubidChar
      Src: /src/libxml2/testapi.c:320,1
    - Dst: xmlListFront
      Src: /src/libxml2/testapi.c:336,1
    - Dst: xmlNewCharEncodingHandler
      Src: /src/libxml2/testapi.c:369,1
    - Dst: xmlNodeSetLang
      Src: /src/libxml2/testapi.c:430,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:571,1
    - Dst: xmlTextReaderGetAttribute
      Src: /src/libxml2/testapi.c:857,1
    - Dst: xmlSchemaGetCanonValueWhtsp
      Src: /src/libxml2/testapi.c:1026,1
    - Dst: xmlTextReaderAttributeCount
      Src: /src/libxml2/testapi.c:839,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/testapi.c:177,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:203,1
    - Dst: xmlNextChar
      Src: /src/libxml2/testapi.c:412,1
    - Dst: xmlValidatePopElement
      Src: /src/libxml2/testapi.c:1125,1
    - Dst: xmlTextWriterStartDTDElement
      Src: /src/libxml2/testapi.c:1161,1
    - Dst: xmlXPathWrapCString
      Src: /src/libxml2/testapi.c:1383,1
    - Dst: xmlReaderForIO
      Src: /src/libxml2/testapi.c:830,1
    - Dst: xmlDumpNotationDecl
      Src: /src/libxml2/testapi.c:755,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:858,1
    - Dst: xmlBufferLength
      Src: /src/libxml2/testapi.c:78,1
    - Dst: xmlCleanupInputCallbacks
      Src: /src/libxml2/testapi.c:108,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/testapi.c:389,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:1309,1
    - Dst: xmlAutomataIsDeterminist
      Src: /src/libxml2/testapi.c:926,1
    - Dst: xmlSchemaCopyValue
      Src: /src/libxml2/testapi.c:1015,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/testapi.c:232,1
    - Dst: xmlCtxtGetDeclaredEncoding
      Src: /src/libxml2/testapi.c:144,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/testapi.c:327,1
    - Dst: xmlNewDocComment
      Src: /src/libxml2/testapi.c:374,1
    - Dst: xmlParserInputBufferRead
      Src: /src/libxml2/testapi.c:462,1
    - Dst: xmlXPathIntersection
      Src: /src/libxml2/testapi.c:1286,1
    - Dst: xmlXPathSubstringBeforeFunction
      Src: /src/libxml2/testapi.c:1371,1
    - Dst: xmlXPathNextAncestor
      Src: /src/libxml2/testapi.c:1307,1
    - Dst: xmlCleanupThreads
      Src: /src/libxml2/testapi.c:110,1
    - Dst: xmlCopyNamespaceList
      Src: /src/libxml2/testapi.c:125,1
    - Dst: xmlNodeAddContent
      Src: /src/libxml2/testapi.c:415,1
    - Dst: xmlRelaxNGSetParserErrors
      Src: /src/libxml2/testapi.c:969,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:998,1
    - Dst: xmlOutputBufferGetContent
      Src: /src/libxml2/testapi.c:767,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxml2/testapi.c:594,1
    - Dst: xmlSchemaGetFacetValueAsULong
      Src: /src/libxml2/testapi.c:1027,1
    - Dst: xmlTextReaderSchemaValidate
      Src: /src/libxml2/testapi.c:913,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:548,1
    - Dst: xmlSAX2AttributeDecl
      Src: /src/libxml2/testapi.c:492,1
    - Dst: xmlPatternFromRoot
      Src: /src/libxml2/testapi.c:805,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:919,1
    - Dst: xmlRelaxNGValidateFullElement
      Src: /src/libxml2/testapi.c:975,1
    - Dst: xmlXPathLangFunction
      Src: /src/libxml2/testapi.c:1290,1
    - Dst: xmlXPathNewParserContext
      Src: /src/libxml2/testapi.c:1304,1
    - Dst: xmlXPathValueFlipSign
      Src: /src/libxml2/testapi.c:1378,1
    - Dst: xmlCopyDocElementContent
      Src: /src/libxml2/testapi.c:117,1
    - Dst: xmlMemShow
      Src: /src/libxml2/testapi.c:362,1
    - Dst: xmlSAX2ResolveEntity
      Src: /src/libxml2/testapi.c:517,1
    - Dst: xmlURIEscape
      Src: /src/libxml2/testapi.c:585,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/testapi.c:738,1
    - Dst: xmlTextReaderHasValue
      Src: /src/libxml2/testapi.c:867,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:990,1
    - Dst: xmlSchemaSetValidErrors
      Src: /src/libxml2/testapi.c:1049,1
    - Dst: xmlXIncludeProcess
      Src: /src/libxml2/testapi.c:1219,1
    - Dst: xmlXPathPopExternal
      Src: /src/libxml2/testapi.c:1345,1
    - Dst: xmlSetBufferAllocationScheme
      Src: /src/libxml2/testapi.c:527,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1384,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:212,1
    - Dst: xmlACatalogResolvePublic
      Src: /src/libxml2/testapi.c:616,1
    - Dst: xmlCatalogResolve
      Src: /src/libxml2/testapi.c:629,1
    - Dst: htmlParseElement
      Src: /src/libxml2/testapi.c:696,1
    - Dst: xmlSchemaValueGetNext
      Src: /src/libxml2/testapi.c:1071,1
    - Dst: xmlSaveClose
      Src: /src/libxml2/testapi.c:775,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:1104,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:1316,1
    - Dst: xmlDictFree
      Src: /src/libxml2/testapi.c:190,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:204,1
    - Dst: xmlFreeIDTable
      Src: /src/libxml2/testapi.c:223,1
    - Dst: xmlStrncatNew
      Src: /src/libxml2/testapi.c:560,1
    - Dst: xmlAutomataNewCountedTrans
      Src: /src/libxml2/testapi.c:930,1
    - Dst: xmlListMerge
      Src: /src/libxml2/testapi.c:338,1
    - Dst: xmlSAXVersion
      Src: /src/libxml2/testapi.c:523,1
    - Dst: xmlValidatePushCData
      Src: /src/libxml2/testapi.c:1126,1
    - Dst: xmlTextWriterEndDTDElement
      Src: /src/libxml2/testapi.c:1145,1
    - Dst: xmlXIncludeSetFlags
      Src: /src/libxml2/testapi.c:1227,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1302,1
    - Dst: xmlCreateEnumeration
      Src: /src/libxml2/testapi.c:135,1
    - Dst: xmlDOMWrapFreeCtxt
      Src: /src/libxml2/testapi.c:182,1
    - Dst: xmlListReverse
      Src: /src/libxml2/testapi.c:346,1
    - Dst: xmlCatalogResolvePublic
      Src: /src/libxml2/testapi.c:630,1
    - Dst: xmlSchemaNewMemParserCtxt
      Src: /src/libxml2/testapi.c:1037,1
    - Dst: xmlSchemaValidateLengthFacet
      Src: /src/libxml2/testapi.c:1060,1
    - Dst: xmlCtxtParseDtd
      Src: /src/libxml2/testapi.c:1093,1
    - Dst: xmlValidateOneElement
      Src: /src/libxml2/testapi.c:1120,1
    - Dst: xmlXPathIsNodeType
      Src: /src/libxml2/testapi.c:1289,1
    - Dst: xmlXPathPositionFunction
      Src: /src/libxml2/testapi.c:1349,1
    - Dst: xmlXPathLeading
      Src: /src/libxml2/testapi.c:1292,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:1310,1
    - Dst: xmlGetCompressMode
      Src: /src/libxml2/testapi.c:243,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/testapi.c:258,1
    - Dst: xmlCopyNode
      Src: /src/libxml2/testapi.c:126,1
    - Dst: xmlHashDefaultDeallocator
      Src: /src/libxml2/testapi.c:282,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:379,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:671,1
    - Dst: htmlAutoCloseTag
      Src: /src/libxml2/testapi.c:663,1
    - Dst: xmlSchemaCheckFacet
      Src: /src/libxml2/testapi.c:1010,1
    - Dst: xmlValidateNameValue
      Src: /src/libxml2/testapi.c:1113,1
    - Dst: xmlXPathDistinct
      Src: /src/libxml2/testapi.c:1263,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1258,1
    - Dst: xmlTextReaderBaseUri
      Src: /src/libxml2/testapi.c:840,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:256,1
    - Dst: xmlThrDefLineNumbersDefaultValue
      Src: /src/libxml2/testapi.c:576,1
    - Dst: htmlCtxtReadMemory
      Src: /src/libxml2/testapi.c:671,1
    - Dst: xmlValidGetPotentialChildren
      Src: /src/libxml2/testapi.c:1102,1
    - Dst: xmlFreeTextWriter
      Src: /src/libxml2/testapi.c:1135,1
    - Dst: xmlXPathCmpNodes
      Src: /src/libxml2/testapi.c:1249,1
    - Dst: xmlXPathNewBoolean
      Src: /src/libxml2/testapi.c:1298,1
    - Dst: xmlLoadACatalog
      Src: /src/libxml2/testapi.c:639,1
    - Dst: htmlReadIO
      Src: /src/libxml2/testapi.c:701,1
    - Dst: xmlHashAdd
      Src: /src/libxml2/testapi.c:272,1
    - Dst: xmlCtxtReadMemory
      Src: /src/libxml2/testapi.c:164,1
    - Dst: xmlIsRef
      Src: /src/libxml2/testapi.c:321,1
    - Dst: xmlNodeAddContentLen
      Src: /src/libxml2/testapi.c:416,1
    - Dst: xmlSchemaValidateDoc
      Src: /src/libxml2/testapi.c:1056,1
    - Dst: xmlTextWriterStartDTDEntity
      Src: /src/libxml2/testapi.c:1162,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/testapi.c:1322,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:694,1
    - Dst: xmlSaveToFd
      Src: /src/libxml2/testapi.c:789,1
    - Dst: xmlTextReaderConstXmlLang
      Src: /src/libxml2/testapi.c:851,1
    - Dst: xmlFreePropList
      Src: /src/libxml2/testapi.c:234,1
    - Dst: xmlCreateDocParserCtxt
      Src: /src/libxml2/testapi.c:132,1
    - Dst: xmlCtxtGetDict
      Src: /src/libxml2/testapi.c:145,1
    - Dst: xmlIsChar
      Src: /src/libxml2/testapi.c:312,1
    - Dst: xmlSetGenericErrorFunc
      Src: /src/libxml2/testapi.c:531,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:883,1
    - Dst: xmlValidateName
      Src: /src/libxml2/testapi.c:602,1
    - Dst: xmlTextWriterClose
      Src: /src/libxml2/testapi.c:1139,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/testapi.c:1276,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/testapi.c:71,1
    - Dst: xmlFreeElementContent
      Src: /src/libxml2/testapi.c:385,1
    - Dst: xmlStringGetNodeList
      Src: /src/libxml2/testapi.c:554,1
    - Dst: htmlParseDoc
      Src: /src/libxml2/testapi.c:694,1
    - Dst: xmlTextWriterWriteFormatRaw
      Src: /src/libxml2/testapi.c:1194,1
    - Dst: xmlXIncludeGetLastError
      Src: /src/libxml2/testapi.c:1217,1
    - Dst: xmlXPathPopNodeSet
      Src: /src/libxml2/testapi.c:1346,1
    - Dst: xmlXPathRoundFunction
      Src: /src/libxml2/testapi.c:1362,1
    - Dst: xmlXPathNsLookup
      Src: /src/libxml2/testapi.c:1338,1
    - Dst: xmlTextWriterWriteRawLen
      Src: /src/libxml2/testapi.c:1198,1
    - Dst: xmlXPathNextPreceding
      Src: /src/libxml2/testapi.c:1317,1
    - Dst: xmlCtxtIsStopped
      Src: /src/libxml2/testapi.c:155,1
    - Dst: xmlHashFree
      Src: /src/libxml2/testapi.c:281,1
    - Dst: xmlSchemaValidateSetFilename
      Src: /src/libxml2/testapi.c:1065,1
    - Dst: xmlCatalogConvert
      Src: /src/libxml2/testapi.c:622,1
    - Dst: xmlRegNewExecCtxt
      Src: /src/libxml2/testapi.c:949,1
    - Dst: xmlAutomataNewTransition
      Src: /src/libxml2/testapi.c:938,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/testapi.c:1100,1
    - Dst: xmlXPathFunctionLookup
      Src: /src/libxml2/testapi.c:1281,1
    - Dst: xmlThrDefGetWarningsDefaultValue
      Src: /src/libxml2/testapi.c:574,1
    - Dst: xmlDictCreate
      Src: /src/libxml2/testapi.c:190,1
    - Dst: xmlGetLastChild
      Src: /src/libxml2/testapi.c:256,1
    - Dst: xmlCleanupMemory
      Src: /src/libxml2/testapi.c:109,1
    - Dst: xmlSAX2EndElement
      Src: /src/libxml2/testapi.c:498,1
    - Dst: xmlStrcat
      Src: /src/libxml2/testapi.c:548,1
    - Dst: xmlSchemaValidCtxtGetOptions
      Src: /src/libxml2/testapi.c:1054,1
    - Dst: xmlTextWriterWriteVFormatAttribute
      Src: /src/libxml2/testapi.c:1200,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1383,1
    - Dst: xmlThrDefKeepBlanksDefaultValue
      Src: /src/libxml2/testapi.c:575,1
    - Dst: xmlCreateURI
      Src: /src/libxml2/testapi.c:140,1
    - Dst: xmlFreeNs
      Src: /src/libxml2/testapi.c:399,1
    - Dst: xmlRelaxNGFreeValidCtxt
      Src: /src/libxml2/testapi.c:967,1
    - Dst: xmlXPathNodeLeadingSorted
      Src: /src/libxml2/testapi.c:1322,1
    - Dst: xmlXPathSubValues
      Src: /src/libxml2/testapi.c:1369,1
    - Dst: xmlXPathRegisterVariableLookup
      Src: /src/libxml2/testapi.c:1356,1
    - Dst: xmlOpenCharEncodingHandler
      Src: /src/libxml2/testapi.c:435,1
    - Dst: xmlSetExternalEntityLoader
      Src: /src/libxml2/testapi.c:530,1
    - Dst: xmlTextReaderNamespaceUri
      Src: /src/libxml2/testapi.c:883,1
    - Dst: xmlSwitchEncodingName
      Src: /src/libxml2/testapi.c:567,1
    - Dst: xmlFreeProp
      Src: /src/libxml2/testapi.c:233,1
    - Dst: xmlMemSetup
      Src: /src/libxml2/testapi.c:361,1
    - Dst: xmlNewDocElementContent
      Src: /src/libxml2/testapi.c:375,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:703,1
    - Dst: xmlModuleSymbol
      Src: /src/libxml2/testapi.c:734,1
    - Dst: xmlTextReaderConstValue
      Src: /src/libxml2/testapi.c:850,1
    - Dst: xmlReaderNewWalker
      Src: /src/libxml2/testapi.c:837,1
    - Dst: xmlSchemaValPredefTypeNode
      Src: /src/libxml2/testapi.c:1052,1
    - Dst: xmlRegisterNodeDefault
      Src: /src/libxml2/testapi.c:485,1
    - Dst: xmlPrintURI
      Src: /src/libxml2/testapi.c:473,1
    - Dst: xmlAddEntity
      Src: /src/libxml2/testapi.c:51,1
    - Dst: xmlFreeNs
      Src: /src/libxml2/testapi.c:124,1
    - Dst: xmlNodeListGetString
      Src: /src/libxml2/testapi.c:426,1
    - Dst: xmlParseDocument
      Src: /src/libxml2/testapi.c:441,1
    - Dst: xmlDumpNotationTable
      Src: /src/libxml2/testapi.c:756,1
    - Dst: xmlXPathNumberFunction
      Src: /src/libxml2/testapi.c:1339,1
    - Dst: xmlHashUpdateEntry3
      Src: /src/libxml2/testapi.c:300,1
    - Dst: xmlSAX2InternalSubset
      Src: /src/libxml2/testapi.c:512,1
    - Dst: xmlTextReaderLookupNamespace
      Src: /src/libxml2/testapi.c:875,1
    - Dst: xmlThrDefSaveNoEmptyTags
      Src: /src/libxml2/testapi.c:795,1
    - Dst: xmlRelaxNGParse
      Src: /src/libxml2/testapi.c:968,1
    - Dst: xmlSchematronParse
      Src: /src/libxml2/testapi.c:1086,1
    - Dst: xmlTextWriterWriteDTDElement
      Src: /src/libxml2/testapi.c:1175,1
    - Dst: xmlXPathCastToString
      Src: /src/libxml2/testapi.c:1247,1
    - Dst: xmlXPathFreeParserContext
      Src: /src/libxml2/testapi.c:1280,1
    - Dst: xmlDOMWrapReconcileNamespaces
      Src: /src/libxml2/testapi.c:183,1
    - Dst: xmlDictReference
      Src: /src/libxml2/testapi.c:198,1
    - Dst: xmlGetNsProp
      Src: /src/libxml2/testapi.c:263,1
    - Dst: xmlNewReference
      Src: /src/libxml2/testapi.c:406,1
    - Dst: xmlStrPrintf
      Src: /src/libxml2/testapi.c:543,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/testapi.c:865,1
    - Dst: xmlXPathEvalExpression
      Src: /src/libxml2/testapi.c:1270,1
    - Dst: xmlXPathRoot
      Src: /src/libxml2/testapi.c:1361,1
    - Dst: xmlXPathInit
      Src: /src/libxml2/testapi.c:1285,1
    - Dst: xmlCurrentChar
      Src: /src/libxml2/testapi.c:178,1
    - Dst: xmlGetCharEncodingName
      Src: /src/libxml2/testapi.c:242,1
    - Dst: xmlBufferSetAllocationScheme
      Src: /src/libxml2/testapi.c:80,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/testapi.c:1181,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxml2/testapi.c:1354,1
    - Dst: xmlDebugDumpAttr
      Src: /src/libxml2/testapi.c:653,1
    - Dst: xmlSchemaFreeFacet
      Src: /src/libxml2/testapi.c:1017,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:1002,1
    - Dst: xmlDictSetLimit
      Src: /src/libxml2/testapi.c:199,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:97,1
    - Dst: xmlCreateEntitiesTable
      Src: /src/libxml2/testapi.c:133,1
    - Dst: xmlNormalizeURIPath
      Src: /src/libxml2/testapi.c:433,1
    - Dst: xmlParserAddNodeInfo
      Src: /src/libxml2/testapi.c:449,1
    - Dst: xmlParserInputGrow
      Src: /src/libxml2/testapi.c:463,1
    - Dst: xmlValidateDocument
      Src: /src/libxml2/testapi.c:1107,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/testapi.c:70,1
    - Dst: xmlDOMWrapNewCtxt
      Src: /src/libxml2/testapi.c:182,1
    - Dst: htmlEncodeEntities
      Src: /src/libxml2/testapi.c:678,1
    - Dst: htmlParseDocument
      Src: /src/libxml2/testapi.c:695,1
    - Dst: xmlDocFormatDump
      Src: /src/libxml2/testapi.c:748,1
    - Dst: xmlTextReaderSetup
      Src: /src/libxml2/testapi.c:900,1
    - Dst: xmlRelaxNGGetParserErrors
      Src: /src/libxml2/testapi.c:961,1
    - Dst: xmlSchemaIsValid
      Src: /src/libxml2/testapi.c:1034,1
    - Dst: xmlXPathTrueFunction
      Src: /src/libxml2/testapi.c:1377,1
    - Dst: xmlSaveClose
      Src: /src/libxml2/testapi.c:790,1
    - Dst: xmlSaveFile
      Src: /src/libxml2/testapi.c:777,1
    - Dst: xmlReaderNewIO
      Src: /src/libxml2/testapi.c:835,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:86,1
    - Dst: xmlFreeEntitiesTable
      Src: /src/libxml2/testapi.c:133,1
    - Dst: xmlIsCombining
      Src: /src/libxml2/testapi.c:313,1
    - Dst: xmlNewInputStream
      Src: /src/libxml2/testapi.c:395,1
    - Dst: xmlNewSAXParserCtxt
      Src: /src/libxml2/testapi.c:407,1
    - Dst: xmlCtxtValidateDtd
      Src: /src/libxml2/testapi.c:1095,1
    - Dst: xmlFreeTextWriter
      Src: /src/libxml2/testapi.c:1138,1
    - Dst: xmlXPathNodeLeading
      Src: /src/libxml2/testapi.c:1321,1
    - Dst: xmlCopyProp
      Src: /src/libxml2/testapi.c:129,1
    - Dst: xmlNewInputFromFile
      Src: /src/libxml2/testapi.c:390,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:472,1
    - Dst: xmlTextReaderClose
      Src: /src/libxml2/testapi.c:842,1
    - Dst: xmlValidateNamesValue
      Src: /src/libxml2/testapi.c:1114,1
    - Dst: xmlXPathRegisterVariable
      Src: /src/libxml2/testapi.c:1355,1
    - Dst: xmlXPathWrapNodeSet
      Src: /src/libxml2/testapi.c:1385,1
    - Dst: xmlXPathTrailing
      Src: /src/libxml2/testapi.c:1374,1
    - Dst: xmlSAXParseDoc
      Src: /src/libxml2/testapi.c:998,1
    - Dst: xmlSchemaValidCtxtGetParserCtxt
      Src: /src/libxml2/testapi.c:1055,1
    - Dst: xmlBufUse
      Src: /src/libxml2/testapi.c:64,1
    - Dst: xmlLookupCharEncodingHandler
      Src: /src/libxml2/testapi.c:355,1
    - Dst: xmlFreeCatalog
      Src: /src/libxml2/testapi.c:639,1
    - Dst: xmlSchemaCleanupTypes
      Src: /src/libxml2/testapi.c:1011,1
    - Dst: xmlTextWriterWriteDTD
      Src: /src/libxml2/testapi.c:1173,1
    - Dst: xmlCatalogFreeLocal
      Src: /src/libxml2/testapi.c:623,1
    - Dst: htmlNewDoc
      Src: /src/libxml2/testapi.c:688,1
    - Dst: xmlRegexpCompile
      Src: /src/libxml2/testapi.c:950,1
    - Dst: xmlDictCreateSub
      Src: /src/libxml2/testapi.c:191,1
    - Dst: xmlIsXHTML
      Src: /src/libxml2/testapi.c:322,1
    - Dst: xmlUTF8Strsub
      Src: /src/libxml2/testapi.c:595,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/testapi.c:665,1
    - Dst: xmlSAX2EndElementNs
      Src: /src/libxml2/testapi.c:499,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/testapi.c:1093,1
    - Dst: xmlSaveUri
      Src: /src/libxml2/testapi.c:524,1
    - Dst: __xmlOutputBufferCreateFilename
      Src: /src/libxml2/testapi.c:738,1
    - Dst: xmlTextReaderConstXmlVersion
      Src: /src/libxml2/testapi.c:852,1
    - Dst: htmlEntityValueLookup
      Src: /src/libxml2/testapi.c:680,1
    - Dst: xmlOutputBufferCreateBuffer
      Src: /src/libxml2/testapi.c:761,1
    - Dst: xmlTextReaderIsDefault
      Src: /src/libxml2/testapi.c:868,1
    - Dst: xmlFreeRMutex
      Src: /src/libxml2/testapi.c:235,1
    - Dst: xmlCtxtGetLastError
      Src: /src/libxml2/testapi.c:147,1
    - Dst: xmlNodeGetBaseSafe
      Src: /src/libxml2/testapi.c:420,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:479,1
    - Dst: xmlSAX2GetParameterEntity
      Src: /src/libxml2/testapi.c:505,1
    - Dst: xmlThrDefTreeIndentString
      Src: /src/libxml2/testapi.c:796,1
    - Dst: xmlParseExtParsedEnt
      Src: /src/libxml2/testapi.c:443,1
    - Dst: xmlTextReaderMoveToAttributeNo
      Src: /src/libxml2/testapi.c:877,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:205,1
    - Dst: xmlHashFree
      Src: /src/libxml2/testapi.c:283,1
    - Dst: xmlNewCharRef
      Src: /src/libxml2/testapi.c:370,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:413,1
    - Dst: xmlSAX2IsStandalone
      Src: /src/libxml2/testapi.c:513,1
    - Dst: xmlSchematronValidateDoc
      Src: /src/libxml2/testapi.c:1088,1
    - Dst: xmlRelaxNGSetParserStructuredErrors
      Src: /src/libxml2/testapi.c:970,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:894,1
    - Dst: xmlCopyNotationTable
      Src: /src/libxml2/testapi.c:128,1
    - Dst: xmlHashRemoveEntry3
      Src: /src/libxml2/testapi.c:292,1
    - Dst: xmlStringCurrentChar
      Src: /src/libxml2/testapi.c:552,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/testapi.c:561,1
    - Dst: htmlCreatePushParserCtxt
      Src: /src/libxml2/testapi.c:725,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:1311,1
    - Dst: xmlXPathSubstringFunction
      Src: /src/libxml2/testapi.c:1372,1
    - Dst: xmlPatternMatch
      Src: /src/libxml2/testapi.c:807,1
    - Dst: xmlTextReaderNodeType
      Src: /src/libxml2/testapi.c:886,1
    - Dst: xmlCtxtSetMaxAmplification
      Src: /src/libxml2/testapi.c:172,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:201,1
    - Dst: xmlHashQLookup2
      Src: /src/libxml2/testapi.c:288,1
    - Dst: xmlNewDocFragment
      Src: /src/libxml2/testapi.c:376,1
    - Dst: xmlSAX2CDataBlock
      Src: /src/libxml2/testapi.c:493,1
    - Dst: xmlSchemaNewFacet
      Src: /src/libxml2/testapi.c:1036,1
    - Dst: xmlSchematronFreeValidCtxt
      Src: /src/libxml2/testapi.c:1081,1
    - Dst: xmlValidateDocumentFinal
      Src: /src/libxml2/testapi.c:1108,1
    - Dst: xmlAutomataNewCounter
      Src: /src/libxml2/testapi.c:931,1
    - Dst: xmlSchemaGetParserErrors
      Src: /src/libxml2/testapi.c:1028,1
    - Dst: xmlDocDumpFormatMemory
      Src: /src/libxml2/testapi.c:744,1
    - Dst: xmlSchemaValidateSetLocator
      Src: /src/libxml2/testapi.c:1066,1
    - Dst: xmlInitGlobals
      Src: /src/libxml2/testapi.c:302,1
    - Dst: xmlLoadExternalEntity
      Src: /src/libxml2/testapi.c:353,1
    - Dst: xmlLoadCatalogs
      Src: /src/libxml2/testapi.c:641,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/testapi.c:1042,1
    - Dst: xmlXPathOrderDocElems
      Src: /src/libxml2/testapi.c:1341,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:1308,1
    - Dst: xmlNewTextReader
      Src: /src/libxml2/testapi.c:826,1
    - Dst: htmlParseEntityRef
      Src: /src/libxml2/testapi.c:697,1
    - Dst: xmlTextReaderStandalone
      Src: /src/libxml2/testapi.c:901,1
    - Dst: xmlCtxtGetDocument
      Src: /src/libxml2/testapi.c:146,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:56,1
    - Dst: xmlListCopy
      Src: /src/libxml2/testapi.c:330,1
    - Dst: xmlNormalizeWindowsPath
      Src: /src/libxml2/testapi.c:434,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:555,1
    - Dst: xmlSwitchInputEncoding
      Src: /src/libxml2/testapi.c:568,1
    - Dst: xmlValidateQName
      Src: /src/libxml2/testapi.c:603,1
    - Dst: xlinkSetDefaultDetect
      Src: /src/libxml2/testapi.c:1398,1
    - Dst: xmlSchemaFreeType
      Src: /src/libxml2/testapi.c:1019,1
    - Dst: xmlStrQEqual
      Src: /src/libxml2/testapi.c:544,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/testapi.c:72,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/testapi.c:384,1
    - Dst: xmlSetListDoc
      Src: /src/libxml2/testapi.c:532,1
    - Dst: htmlNodeDumpFormatOutput
      Src: /src/libxml2/testapi.c:718,1
    - Dst: xmlXPathLastFunction
      Src: /src/libxml2/testapi.c:1291,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:1317,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:875,1
    - Dst: xmlSchemaNewValidCtxt
      Src: /src/libxml2/testapi.c:1042,1
    - Dst: xmlEncodeEntitiesReentrant
      Src: /src/libxml2/testapi.c:205,1
    - Dst: xmlInitCharEncodingHandlers
      Src: /src/libxml2/testapi.c:301,1
    - Dst: xmlParseEntityRef
      Src: /src/libxml2/testapi.c:442,1
    - Dst: xmlRemoveID
      Src: /src/libxml2/testapi.c:486,1
    - Dst: xmlSchematronSetValidStructuredErrors
      Src: /src/libxml2/testapi.c:1087,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:1247,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1298,1
    - Dst: xmlXIncludeSetErrorHandler
      Src: /src/libxml2/testapi.c:1226,1
    - Dst: htmlDocDumpMemory
      Src: /src/libxml2/testapi.c:713,1
    - Dst: xmlBufferShrink
      Src: /src/libxml2/testapi.c:81,1
    - Dst: xmlNextElementSibling
      Src: /src/libxml2/testapi.c:413,1
    - Dst: xmlNodeSetBase
      Src: /src/libxml2/testapi.c:427,1
    - Dst: xmlParserInputBufferCreateIO
      Src: /src/libxml2/testapi.c:457,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/testapi.c:1262,1
    - Dst: xmlXPathNextDescendant
      Src: /src/libxml2/testapi.c:1311,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:629,1
    - Dst: htmlCtxtReadFd
      Src: /src/libxml2/testapi.c:668,1
    - Dst: xmlOutputBufferCreateFd
      Src: /src/libxml2/testapi.c:762,1
    - Dst: xmlParserInputRead
      Src: /src/libxml2/testapi.c:464,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/testapi.c:1071,1
    - Dst: xmlBuildRelativeURISafe
      Src: /src/libxml2/testapi.c:87,1
    - Dst: xmlBufferCreateStatic
      Src: /src/libxml2/testapi.c:72,1
    - Dst: xmlListClear
      Src: /src/libxml2/testapi.c:329,1
    - Dst: xmlNewDtd
      Src: /src/libxml2/testapi.c:384,1
    - Dst: xmlTextWriterWriteFormatComment
      Src: /src/libxml2/testapi.c:1186,1
    - Dst: xmlXPathNextFollowing
      Src: /src/libxml2/testapi.c:1313,1
    - Dst: xmlNewInputFromIO
      Src: /src/libxml2/testapi.c:391,1
    - Dst: xmlSnprintfElementContent
      Src: /src/libxml2/testapi.c:537,1
    - Dst: xmlPreviousElementSibling
      Src: /src/libxml2/testapi.c:472,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:126,1
    - Dst: xmlCreateMemoryParserCtxt
      Src: /src/libxml2/testapi.c:139,1
    - Dst: xmlCtxtParseContent
      Src: /src/libxml2/testapi.c:156,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:164,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:701,1
    - Dst: xmlTextWriterEndComment
      Src: /src/libxml2/testapi.c:1142,1
    - Dst: xmlTextWriterWriteFormatDTDInternalEntity
      Src: /src/libxml2/testapi.c:1190,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1299,1
    - Dst: xmlSaveClose
      Src: /src/libxml2/testapi.c:789,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/testapi.c:825,1
    - Dst: xmlBuildRelativeURI
      Src: /src/libxml2/testapi.c:86,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/testapi.c:250,1
    - Dst: xmlIsBlankNode
      Src: /src/libxml2/testapi.c:311,1
    - Dst: xmlSAX2GetLineNumber
      Src: /src/libxml2/testapi.c:504,1
    - Dst: xmlXPathCastNodeSetToString
      Src: /src/libxml2/testapi.c:1238,1
    - Dst: xmlXPathContextSetCache
      Src: /src/libxml2/testapi.c:1256,1
    - Dst: xmlXPathNewString
      Src: /src/libxml2/testapi.c:1305,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1268,1
    - Dst: xmlDumpAttributeDecl
      Src: /src/libxml2/testapi.c:749,1
    - Dst: xmlSchemaFreeParserCtxt
      Src: /src/libxml2/testapi.c:1018,1
    - Dst: xmlSaveDoc
      Src: /src/libxml2/testapi.c:776,1
    - Dst: xmlTextReaderNextSibling
      Src: /src/libxml2/testapi.c:885,1
    - Dst: xmlSchemaNewDocParserCtxt
      Src: /src/libxml2/testapi.c:1035,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:263,1
    - Dst: xmlAddPrevSibling
      Src: /src/libxml2/testapi.c:56,1
    - Dst: xmlCheckFilename
      Src: /src/libxml2/testapi.c:99,1
    - Dst: xmlCopyDtd
      Src: /src/libxml2/testapi.c:118,1
    - Dst: xmlNewMutex
      Src: /src/libxml2/testapi.c:396,1
    - Dst: xmlDebugDumpAttrList
      Src: /src/libxml2/testapi.c:654,1
    - Dst: xmlStrndup
      Src: /src/libxml2/testapi.c:562,1
    - Dst: xmlCatalogGetDefaults
      Src: /src/libxml2/testapi.c:624,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:840,1
    - Dst: xmlThrDefLoadExtDtdDefaultValue
      Src: /src/libxml2/testapi.c:577,1
    - Dst: xmlOutputBufferGetSize
      Src: /src/libxml2/testapi.c:768,1
    - Dst: xmlAddAttributeDecl
      Src: /src/libxml2/testapi.c:44,1
    - Dst: xmlCharEncInFunc
      Src: /src/libxml2/testapi.c:94,1
    - Dst: xmlFreeNs
      Src: /src/libxml2/testapi.c:125,1
    - Dst: xmlNewNsPropEatName
      Src: /src/libxml2/testapi.c:401,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/testapi.c:457,1
    - Dst: xmlPushInput
      Src: /src/libxml2/testapi.c:474,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:668,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/testapi.c:762,1
    - Dst: xmlPatternGetStreamCtxt
      Src: /src/libxml2/testapi.c:806,1
    - Dst: xmlCatalogSetDefaultPrefer
      Src: /src/libxml2/testapi.c:634,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:585,1
    - Dst: xmlSchemaSetValidOptions
      Src: /src/libxml2/testapi.c:1050,1
    - Dst: xmlFreeElementContent
      Src: /src/libxml2/testapi.c:117,1
    - Dst: xmlNodeGetBase
      Src: /src/libxml2/testapi.c:419,1
    - Dst: xmlReadIO
      Src: /src/libxml2/testapi.c:479,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/testapi.c:517,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:992,1
    - Dst: xmlStringLenDecodeEntities
      Src: /src/libxml2/testapi.c:555,1
    - Dst: htmlSAXParseFile
      Src: /src/libxml2/testapi.c:704,1
    - Dst: xmlSchemaWhiteSpaceReplace
      Src: /src/libxml2/testapi.c:1072,1
    - Dst: xmlFreeAttributeTable
      Src: /src/libxml2/testapi.c:214,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testapi.c:132,1
    - Dst: xmlDictFree
      Src: /src/libxml2/testapi.c:145,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:161,1
    - Dst: xmlHashScanFull3
      Src: /src/libxml2/testapi.c:296,1
    - Dst: xmlListReverseSearch
      Src: /src/libxml2/testapi.c:347,1
    - Dst: xmlFreeTextWriter
      Src: /src/libxml2/testapi.c:1137,1
    - Dst: xmlXPathCastToNumber
      Src: /src/libxml2/testapi.c:1246,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:539,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/testapi.c:171,1
    - Dst: xmlCtxtReadFd
      Src: /src/libxml2/testapi.c:161,1
    - Dst: xmlParserFindNodeInfo
      Src: /src/libxml2/testapi.c:450,1
    - Dst: xmlXPathFreeParserContext
      Src: /src/libxml2/testapi.c:1304,1
    - Dst: xmlSchematronNewDocParserCtxt
      Src: /src/libxml2/testapi.c:1082,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/testapi.c:1374,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:554,1
    - Dst: xmlC14NDocSaveTo
      Src: /src/libxml2/testapi.c:608,1
    - Dst: xmlReaderForMemory
      Src: /src/libxml2/testapi.c:831,1
    - Dst: xmlStreamPushAttr
      Src: /src/libxml2/testapi.c:814,1
    - Dst: xmlSaveFormatFileEnc
      Src: /src/libxml2/testapi.c:783,1
    - Dst: xmlTextReaderReadString
      Src: /src/libxml2/testapi.c:894,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/testapi.c:224,1
    - Dst: xmlTextWriterEndDTDEntity
      Src: /src/libxml2/testapi.c:1146,1
    - Dst: xmlReaderNewMemory
      Src: /src/libxml2/testapi.c:836,1
    - Dst: xmlXPathCastStringToNumber
      Src: /src/libxml2/testapi.c:1244,1
    - Dst: xmlHashAdd2
      Src: /src/libxml2/testapi.c:273,1
    - Dst: xmlTextReaderGetAttributeNs
      Src: /src/libxml2/testapi.c:859,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:1000,1
    - Dst: xmlTextWriterStartDocument
      Src: /src/libxml2/testapi.c:1163,1
    - Dst: xmlXPathNewFloat
      Src: /src/libxml2/testapi.c:1301,1
    - Dst: xmlXPathStringFunction
      Src: /src/libxml2/testapi.c:1367,1
    - Dst: xmlThrDefParserInputBufferCreateFilenameDefault
      Src: /src/libxml2/testapi.c:579,1
    - Dst: xmlTextReaderMoveToAttributeNs
      Src: /src/libxml2/testapi.c:878,1
    - Dst: xmlAutomataNewTransition2
      Src: /src/libxml2/testapi.c:939,1
    - Dst: xmlTextWriterWriteFormatElement
      Src: /src/libxml2/testapi.c:1191,1
    - Dst: xmlTextWriterWriteVFormatPI
      Src: /src/libxml2/testapi.c:1210,1
    - Dst: xmlXPathWrapString
      Src: /src/libxml2/testapi.c:1386,1
    - Dst: xmlCheckThreadLocalStorage
      Src: /src/libxml2/testapi.c:102,1
    - Dst: xmlCopyElementContent
      Src: /src/libxml2/testapi.c:119,1
    - Dst: xmlListDelete
      Src: /src/libxml2/testapi.c:331,1
    - Dst: xmlCatalogSetDefaults
      Src: /src/libxml2/testapi.c:635,1
    - Dst: xmlNewTextReaderFilename
      Src: /src/libxml2/testapi.c:827,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:586,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:615,1
    - Dst: xmlTextReaderNormalization
      Src: /src/libxml2/testapi.c:887,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:1238,1
    - Dst: xmlXPathCountFunction
      Src: /src/libxml2/testapi.c:1260,1
    - Dst: xmlFileClose
      Src: /src/libxml2/testapi.c:207,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:370,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:595,1
    - Dst: xmlSchemaGetPredefinedType
      Src: /src/libxml2/testapi.c:1029,1
    - Dst: xmlTextReaderConstBaseUri
      Src: /src/libxml2/testapi.c:843,1
    - Dst: xmlDumpEntityDecl
      Src: /src/libxml2/testapi.c:754,1
    - Dst: xmlXPathCompareValues
      Src: /src/libxml2/testapi.c:1250,1
    - Dst: xmlXPathDistinctSorted
      Src: /src/libxml2/testapi.c:1264,1
    - Dst: xmlXPathNextDescendantOrSelf
      Src: /src/libxml2/testapi.c:1312,1
    - Dst: xmlCopyElementTable
      Src: /src/libxml2/testapi.c:120,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:146,1
    - Dst: xmlListCreate
      Src: /src/libxml2/testapi.c:331,1
    - Dst: xmlFreeMutex
      Src: /src/libxml2/testapi.c:396,1
    - Dst: xmlSchemaFreeFacet
      Src: /src/libxml2/testapi.c:1036,1
    - Dst: xmlCatalogResolveSystem
      Src: /src/libxml2/testapi.c:631,1
    - Dst: xmlSaveToFilename
      Src: /src/libxml2/testapi.c:790,1
    - Dst: xmlSwitchToEncoding
      Src: /src/libxml2/testapi.c:569,1
    - Dst: xmlNewTextWriterTree
      Src: /src/libxml2/testapi.c:1138,1
    - Dst: xmlXIncludeProcessFlagsData
      Src: /src/libxml2/testapi.c:1221,1
    - Dst: xmlXPathLocalNameFunction
      Src: /src/libxml2/testapi.c:1294,1
    - Dst: xmlTextWriterStartAttribute
      Src: /src/libxml2/testapi.c:1155,1
    - Dst: xmlListReverseWalk
      Src: /src/libxml2/testapi.c:348,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:376,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/testapi.c:1020,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:699,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:1003,1
    - Dst: xmlXPathNewValueTree
      Src: /src/libxml2/testapi.c:1306,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:1348,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/testapi.c:1379,1
    - Dst: xmlFileMatch
      Src: /src/libxml2/testapi.c:208,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/testapi.c:245,1
    - Dst: xmlAddIDSafe
      Src: /src/libxml2/testapi.c:53,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/testapi.c:284,1
    - Dst: htmlDocDumpMemoryFormat
      Src: /src/libxml2/testapi.c:714,1
    - Dst: xmlTextReaderSetSchema
      Src: /src/libxml2/testapi.c:915,1
    - Dst: xmlValidCtxtNormalizeAttributeValue
      Src: /src/libxml2/testapi.c:1101,1
    - Dst: xmlTextWriterWriteDTDAttlist
      Src: /src/libxml2/testapi.c:1174,1
    - Dst: xmlXPathSumFunction
      Src: /src/libxml2/testapi.c:1373,1
    - Dst: xmlSetNs
      Src: /src/libxml2/testapi.c:533,1
    - Dst: xmlCtxtSetOptions
      Src: /src/libxml2/testapi.c:173,1
    - Dst: xmlBufferDump
      Src: /src/libxml2/testapi.c:74,1
    - Dst: xmlCheckHTTPInput
      Src: /src/libxml2/testapi.c:100,1
    - Dst: xmlHashSize
      Src: /src/libxml2/testapi.c:297,1
    - Dst: htmlCtxtReadFile
      Src: /src/libxml2/testapi.c:669,1
    - Dst: xmlParserInputShrink
      Src: /src/libxml2/testapi.c:465,1
    - Dst: xmlSchematronFree
      Src: /src/libxml2/testapi.c:1079,1
    - Dst: xmlTextWriterWritePI
      Src: /src/libxml2/testapi.c:1196,1
    - Dst: xmlTextWriterWriteVFormatDTDElement
      Src: /src/libxml2/testapi.c:1206,1
    - Dst: xmlNewTextWriter
      Src: /src/libxml2/testapi.c:1133,1
    - Dst: xmlSchemaSetValidStructuredErrors
      Src: /src/libxml2/testapi.c:1051,1
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/testapi.c:162,1
    - Dst: xmlDocCopyNode
      Src: /src/libxml2/testapi.c:201,1
    - Dst: xmlIsExtender
      Src: /src/libxml2/testapi.c:315,1
    - Dst: xmlNewStringInputStream
      Src: /src/libxml2/testapi.c:408,1
    - Dst: htmlUTF8ToHtml
      Src: /src/libxml2/testapi.c:707,1
    - Dst: xmlXPathFloorFunction
      Src: /src/libxml2/testapi.c:1274,1
    - Dst: xmlCatalogSetDebug
      Src: /src/libxml2/testapi.c:633,1
    - Dst: xmlRelaxNGInitTypes
      Src: /src/libxml2/testapi.c:963,1
    - Dst: xmlCtxtGetOptions
      Src: /src/libxml2/testapi.c:148,1
    - Dst: xmlDOMWrapRemoveNode
      Src: /src/libxml2/testapi.c:184,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/testapi.c:216,1
    - Dst: xmlNewEntity
      Src: /src/libxml2/testapi.c:386,1
    - Dst: xmlSAX2GetPublicId
      Src: /src/libxml2/testapi.c:506,1
    - Dst: xmlXPathCastNodeToString
      Src: /src/libxml2/testapi.c:1240,1
    - Dst: xmlTextWriterWriteVFormatDTDInternalEntity
      Src: /src/libxml2/testapi.c:1207,1
    - Dst: xmlXPathNotEqualValues
      Src: /src/libxml2/testapi.c:1336,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:226,1
    - Dst: xmlGetNoNsProp
      Src: /src/libxml2/testapi.c:259,1
    - Dst: xmlClearParserCtxt
      Src: /src/libxml2/testapi.c:112,1
    - Dst: xmlRemoveProp
      Src: /src/libxml2/testapi.c:487,1
    - Dst: xmlSplitQName2
      Src: /src/libxml2/testapi.c:539,1
    - Dst: htmlNewDocNoDtD
      Src: /src/libxml2/testapi.c:689,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/testapi.c:1148,1
    - Dst: xmlXPathObjectCopy
      Src: /src/libxml2/testapi.c:1340,1
    - Dst: xmlFreeValidCtxt
      Src: /src/libxml2/testapi.c:1098,1
    - Dst: xmlTextReaderSchemaValidateCtxt
      Src: /src/libxml2/testapi.c:914,1
    - Dst: xmlAddID
      Src: /src/libxml2/testapi.c:52,1
    - Dst: xmlBufferAdd
      Src: /src/libxml2/testapi.c:65,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:383,1
    - Dst: htmlCtxtSetOptions
      Src: /src/libxml2/testapi.c:673,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/testapi.c:725,1
    - Dst: xmlRegexpExec
      Src: /src/libxml2/testapi.c:951,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testapi.c:1055,1
    - Dst: xmlTextReaderGetErrorHandler
      Src: /src/libxml2/testapi.c:860,1
    - Dst: xmlXIncludeSetResourceLoader
      Src: /src/libxml2/testapi.c:1228,1
    - Dst: xmlXPathRegisterFunc
      Src: /src/libxml2/testapi.c:1351,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:704,1
    - Dst: xmlDumpAttributeTable
      Src: /src/libxml2/testapi.c:750,1
    - Dst: xmlAddDtdEntity
      Src: /src/libxml2/testapi.c:48,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:162,1
    - Dst: xmlDictSize
      Src: /src/libxml2/testapi.c:200,1
    - Dst: xmlHashAddEntry3
      Src: /src/libxml2/testapi.c:277,1
    - Dst: xmlNewDocProp
      Src: /src/libxml2/testapi.c:380,1
    - Dst: xmlRelaxNGGetValidErrors
      Src: /src/libxml2/testapi.c:962,1
    - Dst: xmlURIUnescapeString
      Src: /src/libxml2/testapi.c:587,1
    - Dst: xmlRegExecNextValues
      Src: /src/libxml2/testapi.c:944,1
    - Dst: htmlTagLookup
      Src: /src/libxml2/testapi.c:706,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:1072,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:215,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/testapi.c:364,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:630,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/testapi.c:761,1
    - Dst: xlinkSetDefaultHandler
      Src: /src/libxml2/testapi.c:1399,1
    - Dst: xmlXPathEvalExpr
      Src: /src/libxml2/testapi.c:1269,1
    - Dst: xmlFreeTextWriter
      Src: /src/libxml2/testapi.c:1132,1
    - Dst: xmlXPathNodeSetAddNs
      Src: /src/libxml2/testapi.c:1324,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:669,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/testapi.c:764,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:419,1
    - Dst: xmlRelaxNGValidatePopElement
      Src: /src/libxml2/testapi.c:976,1
    - Dst: xmlURIEscapeStr
      Src: /src/libxml2/testapi.c:586,1
    - Dst: xmlACatalogResolve
      Src: /src/libxml2/testapi.c:615,1
    - Dst: xmlSchematronNewMemParserCtxt
      Src: /src/libxml2/testapi.c:1083,1
    - Dst: xmlTextWriterWriteAttributeNS
      Src: /src/libxml2/testapi.c:1168,1
    - Dst: xmlXPathFalseFunction
      Src: /src/libxml2/testapi.c:1273,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/testapi.c:1330,1
    - Dst: xmlThrDefOutputBufferCreateFilenameDefault
      Src: /src/libxml2/testapi.c:578,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/testapi.c:769,1
    - Dst: xmlSchemaSAXPlug
      Src: /src/libxml2/testapi.c:1044,1
    - Dst: xmlClearNodeInfoSeq
      Src: /src/libxml2/testapi.c:111,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testapi.c:139,1
    - Dst: xmlFreeMutex
      Src: /src/libxml2/testapi.c:225,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/testapi.c:391,1
    - Dst: xmlNewProp
      Src: /src/libxml2/testapi.c:404,1
    - Dst: xmlElemDump
      Src: /src/libxml2/testapi.c:757,1
    - Dst: xmlParserInputBufferCreateMem
      Src: /src/libxml2/testapi.c:458,1
    - Dst: xmlAllocParserInputBuffer
      Src: /src/libxml2/testapi.c:59,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/testapi.c:118,1
    - Dst: xmlGetDtdQElementDesc
      Src: /src/libxml2/testapi.c:251,1
    - Dst: xmlMemSize
      Src: /src/libxml2/testapi.c:363,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testapi.c:407,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:434,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:556,1
    - Dst: xmlSAXParseMemoryWithData
      Src: /src/libxml2/testapi.c:1003,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:1242,1
    - Dst: xmlXPathNextPrecedingSibling
      Src: /src/libxml2/testapi.c:1318,1
    - Dst: xmlXPathFreeNodeSetList
      Src: /src/libxml2/testapi.c:1278,1
    - Dst: xmlXPathDebugDumpObject
      Src: /src/libxml2/testapi.c:1390,1
    - Dst: xmlEncodeSpecialChars
      Src: /src/libxml2/testapi.c:206,1
    - Dst: xmlCtxtReset
      Src: /src/libxml2/testapi.c:165,1
    - Dst: xmlInitMemory
      Src: /src/libxml2/testapi.c:303,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/testapi.c:353,1
    - Dst: xmlNewCatalog
      Src: /src/libxml2/testapi.c:643,1
    - Dst: xmlValidateNmtokenValue
      Src: /src/libxml2/testapi.c:1115,1
    - Dst: xmlTextWriterWriteElementNS
      Src: /src/libxml2/testapi.c:1182,1
    - Dst: xmlTextWriterWriteVFormatAttributeNS
      Src: /src/libxml2/testapi.c:1201,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1385,1
    - Dst: xmlXPathNodeEval
      Src: /src/libxml2/testapi.c:1320,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxml2/testapi.c:1302,1
    - Dst: xmlBufferWriteCHAR
      Src: /src/libxml2/testapi.c:82,1
    - Dst: xmlDictFree
      Src: /src/libxml2/testapi.c:191,1
    - Dst: xmlListPopBack
      Src: /src/libxml2/testapi.c:339,1
    - Dst: xmlNodeSetContent
      Src: /src/libxml2/testapi.c:428,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:688,1
    - Dst: xmlParseBalancedChunkMemory
      Src: /src/libxml2/testapi.c:987,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/testapi.c:1263,1
    - Dst: xmlXPathFunctionLookupNS
      Src: /src/libxml2/testapi.c:1282,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxml2/testapi.c:1325,1
    - Dst: xmlGetDocCompressMode
      Src: /src/libxml2/testapi.c:244,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/testapi.c:390,1
    - Dst: htmlCtxtReset
      Src: /src/libxml2/testapi.c:672,1
    - Dst: xmlValidatePushElement
      Src: /src/libxml2/testapi.c:1127,1
    - Dst: xmlXPathDivValues
      Src: /src/libxml2/testapi.c:1265,1
    - Dst: xmlParserFindNodeInfoIndex
      Src: /src/libxml2/testapi.c:451,1
    - Dst: xmlIsDigit
      Src: /src/libxml2/testapi.c:314,1
    - Dst: xmlDebugDumpDocumentHead
      Src: /src/libxml2/testapi.c:655,1
    - Dst: xmlTextReaderIsEmptyElement
      Src: /src/libxml2/testapi.c:869,1
    - Dst: xmlUTF8Charcmp
      Src: /src/libxml2/testapi.c:588,1
    - Dst: xmlFreeRefTable
      Src: /src/libxml2/testapi.c:236,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/testapi.c:395,1
    - Dst: xmlSAX2StartElement
      Src: /src/libxml2/testapi.c:520,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1305,1
    - Dst: xmlXPathStringEvalNumber
      Src: /src/libxml2/testapi.c:1366,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:562,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:551,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:127,1
    - Dst: xmlIsolat1ToUTF8
      Src: /src/libxml2/testapi.c:323,1
    - Dst: xmlMemDisplayLast
      Src: /src/libxml2/testapi.c:358,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:524,1
    - Dst: htmlNewParserCtxt
      Src: /src/libxml2/testapi.c:690,1
    - Dst: xmlUnlockLibrary
      Src: /src/libxml2/testapi.c:597,1
    - Dst: xmlSchemaCollapseString
      Src: /src/libxml2/testapi.c:1012,1
    - Dst: xmlSaveSetAttrEscape
      Src: /src/libxml2/testapi.c:785,1
    - Dst: xmlTextWriterEndCDATA
      Src: /src/libxml2/testapi.c:1141,1
    - Dst: htmlHandleOmittedElem
      Src: /src/libxml2/testapi.c:683,1
    - Dst: xmlParserPrintFileContext
      Src: /src/libxml2/testapi.c:466,1
    - Dst: xmlCtxtGetPrivate
      Src: /src/libxml2/testapi.c:149,1
    - Dst: xmlGetExternalEntityLoader
      Src: /src/libxml2/testapi.c:253,1
    - Dst: htmlNodeDumpOutput
      Src: /src/libxml2/testapi.c:719,1
    - Dst: xmlReadMemory
      Src: /src/libxml2/testapi.c:480,1
    - Dst: xmlValidateDtd
      Src: /src/libxml2/testapi.c:1109,1
    - Dst: xmlTextWriterWriteBase64
      Src: /src/libxml2/testapi.c:1169,1
    - Dst: xmlTextWriterWriteFormatDTD
      Src: /src/libxml2/testapi.c:1187,1
    - Dst: xmlTextWriterWriteRaw
      Src: /src/libxml2/testapi.c:1197,1
    - Dst: xmlReaderForDoc
      Src: /src/libxml2/testapi.c:828,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/testapi.c:408,1
    - Dst: xmlAutomataNewCountTrans
      Src: /src/libxml2/testapi.c:928,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/testapi.c:59,1
    - Dst: xmlBuildURI
      Src: /src/libxml2/testapi.c:88,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:266,1
    - Dst: xmlHashFree
      Src: /src/libxml2/testapi.c:278,1
    - Dst: xmlAllocOutputBuffer
      Src: /src/libxml2/testapi.c:739,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:853,1
    - Dst: xmlParseCharEncoding
      Src: /src/libxml2/testapi.c:438,1
    - Dst: xmlXPathCastToBoolean
      Src: /src/libxml2/testapi.c:1245,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:616,1
    - Dst: xmlRegExecPushString
      Src: /src/libxml2/testapi.c:945,1
    - Dst: xmlBufGetNodeContent
      Src: /src/libxml2/testapi.c:62,1
    - Dst: xmlBufferDetach
      Src: /src/libxml2/testapi.c:73,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/testapi.c:100,1
    - Dst: xmlSAX2GetSystemId
      Src: /src/libxml2/testapi.c:507,1
    - Dst: xmlCatalogResolveURI
      Src: /src/libxml2/testapi.c:632,1
    - Dst: xmlTextWriterStartCDATA
      Src: /src/libxml2/testapi.c:1157,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:1235,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:689,1
    - Dst: xmlSchemaSAXUnplug
      Src: /src/libxml2/testapi.c:1045,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/testapi.c:227,1
    - Dst: xmlGetNsList
      Src: /src/libxml2/testapi.c:261,1
    - Dst: xmlCopyAttributeTable
      Src: /src/libxml2/testapi.c:113,1
    - Dst: xmlListPushBack
      Src: /src/libxml2/testapi.c:341,1
    - Dst: xmlParserInputBufferCreateStatic
      Src: /src/libxml2/testapi.c:459,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:1101,1
    - Dst: xmlTextWriterEndPI
      Src: /src/libxml2/testapi.c:1149,1
    - Dst: xmlXPathAddValues
      Src: /src/libxml2/testapi.c:1232,1
    - Dst: xmlSchemaNewNOTATIONValue
      Src: /src/libxml2/testapi.c:1038,1
    - Dst: xmlNewNode
      Src: /src/libxml2/testapi.c:397,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:902,1
    - Dst: htmlGetMetaEncoding
      Src: /src/libxml2/testapi.c:682,1
    - Dst: xmlBuildURISafe
      Src: /src/libxml2/testapi.c:89,1
    - Dst: xmlCreateEntityParserCtxt
      Src: /src/libxml2/testapi.c:134,1
    - Dst: xmlCtxtSetPrivate
      Src: /src/libxml2/testapi.c:174,1
    - Dst: xmlHashUpdateEntry
      Src: /src/libxml2/testapi.c:298,1
    - Dst: xmlParseFile
      Src: /src/libxml2/testapi.c:992,1
    - Dst: xmlPatternMinDepth
      Src: /src/libxml2/testapi.c:809,1
    - Dst: xmlTextWriterStartAttributeNS
      Src: /src/libxml2/testapi.c:1156,1
    - Dst: xmlRegexpPrint
      Src: /src/libxml2/testapi.c:953,1
    - Dst: xmlDictGetUsage
      Src: /src/libxml2/testapi.c:194,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/testapi.c:140,1
    - Dst: xmlCtxtParseDocument
      Src: /src/libxml2/testapi.c:157,1
    - Dst: xmlSplitQName3
      Src: /src/libxml2/testapi.c:540,1
    - Dst: xmlStrstr
      Src: /src/libxml2/testapi.c:563,1
    - Dst: xmlC14NExecute
      Src: /src/libxml2/testapi.c:609,1
    - Dst: xmlFreeValidCtxt
      Src: /src/libxml2/testapi.c:1096,1
    - Dst: xmlValidateNotationDecl
      Src: /src/libxml2/testapi.c:1117,1
    - Dst: xmlXPathCompile
      Src: /src/libxml2/testapi.c:1251,1
    - Dst: xmlTextWriterWriteFormatDTDElement
      Src: /src/libxml2/testapi.c:1189,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:1343,1
    - Dst: xmlFreeStreamCtxt
      Src: /src/libxml2/testapi.c:803,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/testapi.c:138,1
    - Dst: xmlTextWriterWriteVFormatCDATA
      Src: /src/libxml2/testapi.c:1202,1
    - Dst: xmlXPathConcatFunction
      Src: /src/libxml2/testapi.c:1254,1
    - Dst: xmlNewTextWriterPushParser
      Src: /src/libxml2/testapi.c:1137,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/testapi.c:1346,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/testapi.c:596,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:667,1
    - Dst: xmlDocDumpFormatMemoryEnc
      Src: /src/libxml2/testapi.c:745,1
    - Dst: xmlSchemaValidateStream
      Src: /src/libxml2/testapi.c:1067,1
    - Dst: xmlInitNodeInfoSeq
      Src: /src/libxml2/testapi.c:304,1
    - Dst: xmlMemDisplay
      Src: /src/libxml2/testapi.c:357,1
    - Dst: xmlNewInputFromMemory
      Src: /src/libxml2/testapi.c:392,1
    - Dst: xmlNewPI
      Src: /src/libxml2/testapi.c:402,1
    - Dst: xmlNodeSetContentLen
      Src: /src/libxml2/testapi.c:429,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:477,1
    - Dst: xmlTextReaderIsValid
      Src: /src/libxml2/testapi.c:871,1
    - Dst: xmlGetEncodingAlias
      Src: /src/libxml2/testapi.c:252,1
    - Dst: xmlGetUTF8Char
      Src: /src/libxml2/testapi.c:268,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/testapi.c:388,1
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/testapi.c:421,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:480,1
    - Dst: xmlTextReaderDepth
      Src: /src/libxml2/testapi.c:855,1
    - Dst: xmlXPathCastNumberToString
      Src: /src/libxml2/testapi.c:1242,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1257,1
    - Dst: xmlXPathNodeTrailing
      Src: /src/libxml2/testapi.c:1333,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/testapi.c:681,1
    - Dst: xmlDumpElementDecl
      Src: /src/libxml2/testapi.c:751,1
    - Dst: xmlPatternMaxDepth
      Src: /src/libxml2/testapi.c:808,1
    - Dst: xmlHashCopy
      Src: /src/libxml2/testapi.c:278,1
    - Dst: xmlXPathConvertBoolean
      Src: /src/libxml2/testapi.c:1257,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:1318,1
    - Dst: xmlXPathRegisterAllFunctions
      Src: /src/libxml2/testapi.c:1350,1
    - Dst: xmlSAXParseEntity
      Src: /src/libxml2/testapi.c:999,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/testapi.c:690,1
    - Dst: xmlSchemaValidateFacet
      Src: /src/libxml2/testapi.c:1057,1
    - Dst: xmlCtxtResetLastError
      Src: /src/libxml2/testapi.c:166,1
    - Dst: xmlDictFree
      Src: /src/libxml2/testapi.c:193,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:206,1
    - Dst: xmlGetNodePath
      Src: /src/libxml2/testapi.c:260,1
    - Dst: xmlParseInNodeContext
      Src: /src/libxml2/testapi.c:444,1
    - Dst: xmlIOParseDTD
      Src: /src/libxml2/testapi.c:1097,1
    - Dst: xmlValidateNmtokensValue
      Src: /src/libxml2/testapi.c:1116,1
    - Dst: xmlParseExternalEntity
      Src: /src/libxml2/testapi.c:991,1
    - Dst: xmlStrdup
      Src: /src/libxml2/testapi.c:551,1
    - Dst: xmlUTF8ToIsolat1
      Src: /src/libxml2/testapi.c:797,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/testapi.c:1013,1
    - Dst: xmlCatalogIsEmpty
      Src: /src/libxml2/testapi.c:625,1
    - Dst: xmlSaveFormatFileTo
      Src: /src/libxml2/testapi.c:784,1
    - Dst: xmlCopyNodeList
      Src: /src/libxml2/testapi.c:127,1
    - Dst: xmlDOMWrapAdoptNode
      Src: /src/libxml2/testapi.c:179,1
    - Dst: xmlListPopFront
      Src: /src/libxml2/testapi.c:340,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/testapi.c:458,1
    - Dst: xmlSAX2NotationDecl
      Src: /src/libxml2/testapi.c:514,1
    - Dst: xmlTextWriterWriteVFormatString
      Src: /src/libxml2/testapi.c:1212,1
    - Dst: htmlReadMemory
      Src: /src/libxml2/testapi.c:702,1
    - Dst: xmlCreateIntSubset
      Src: /src/libxml2/testapi.c:138,1
    - Dst: xmlNewTextWriterFilename
      Src: /src/libxml2/testapi.c:1135,1
    - Dst: xmlXPathErr
      Src: /src/libxml2/testapi.c:1267,1
    - Dst: xmlTextReaderCurrentDoc
      Src: /src/libxml2/testapi.c:853,1
    - Dst: xmlCheckLanguageID
      Src: /src/libxml2/testapi.c:101,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/testapi.c:237,1
    - Dst: xmlGetProp
      Src: /src/libxml2/testapi.c:266,1
    - Dst: xmlMemoryDump
      Src: /src/libxml2/testapi.c:365,1
    - Dst: xmlTextReaderIsNamespaceDecl
      Src: /src/libxml2/testapi.c:870,1
    - Dst: xmlXPathSetErrorHandler
      Src: /src/libxml2/testapi.c:1364,1
    - Dst: xmlXIncludeProcessTreeFlags
      Src: /src/libxml2/testapi.c:1224,1
    - Dst: htmlCreateFileParserCtxt
      Src: /src/libxml2/testapi.c:664,1
    - Dst: xmlLoadSGMLSuperCatalog
      Src: /src/libxml2/testapi.c:642,1
    - Dst: xmlRegexpIsDeterminist
      Src: /src/libxml2/testapi.c:952,1
    - Dst: xmlNoNetExternalEntityLoader
      Src: /src/libxml2/testapi.c:414,1
    - Dst: xmlRMutexLock
      Src: /src/libxml2/testapi.c:475,1
    - Dst: xmlRemoveRef
      Src: /src/libxml2/testapi.c:488,1
    - Dst: xmlThrDefPedanticParserDefaultValue
      Src: /src/libxml2/testapi.c:580,1
    - Dst: xmlOutputBufferWriteEscape
      Src: /src/libxml2/testapi.c:770,1
    - Dst: xmlReaderNewDoc
      Src: /src/libxml2/testapi.c:832,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/testapi.c:1164,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:1312,1
    - Dst: xmlTextReaderGetLastError
      Src: /src/libxml2/testapi.c:861,1
    - Dst: xmlAutomataNewCounterTrans
      Src: /src/libxml2/testapi.c:932,1
    - Dst: xmlFreeCatalog
      Src: /src/libxml2/testapi.c:643,1
    - Dst: xmlBufferAddHead
      Src: /src/libxml2/testapi.c:66,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:259,1
    - Dst: xmlAutomataSetFinalState
      Src: /src/libxml2/testapi.c:940,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1340,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1386,1
    - Dst: xmlSaveFlush
      Src: /src/libxml2/testapi.c:781,1
    - Dst: xmlResetError
      Src: /src/libxml2/testapi.c:490,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/testapi.c:691,1
    - Dst: xmlNewText
      Src: /src/libxml2/testapi.c:409,1
    - Dst: xmlStrVPrintf
      Src: /src/libxml2/testapi.c:545,1
    - Dst: xmlFreeElementContent
      Src: /src/libxml2/testapi.c:119,1
    - Dst: xmlDefaultSAXHandlerInit
      Src: /src/libxml2/testapi.c:185,1
    - Dst: xmlNewIOInputStream
      Src: /src/libxml2/testapi.c:388,1
    - Dst: xmlNewValidCtxt
      Src: /src/libxml2/testapi.c:1098,1
    - Dst: xmlValidateOneNamespace
      Src: /src/libxml2/testapi.c:1121,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:1240,1
    - Dst: xmlXPathNormalizeFunction
      Src: /src/libxml2/testapi.c:1335,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:859,1
    - Dst: xmlRelaxNGSetResourceLoader
      Src: /src/libxml2/testapi.c:971,1
    - Dst: xmlBufferWriteChar
      Src: /src/libxml2/testapi.c:83,1
    - Dst: xmlHashScan
      Src: /src/libxml2/testapi.c:293,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:372,1
    - Dst: htmlCtxtUseOptions
      Src: /src/libxml2/testapi.c:674,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:702,1
    - Dst: xmlTextReaderConstEncoding
      Src: /src/libxml2/testapi.c:844,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/testapi.c:1097,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/testapi.c:1264,1
    - Dst: xmlSchemaValidateLengthFacetWhtsp
      Src: /src/libxml2/testapi.c:1061,1
    - Dst: xmlStringLenGetNodeList
      Src: /src/libxml2/testapi.c:556,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:631,1
    - Dst: xmlTextReaderValue
      Src: /src/libxml2/testapi.c:902,1
    - Dst: xmlSAX2Characters
      Src: /src/libxml2/testapi.c:494,1
    - Dst: xmlXIncludeProcessNode
      Src: /src/libxml2/testapi.c:1222,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1379,1
    - Dst: xmlXPathNodeSetMerge
      Src: /src/libxml2/testapi.c:1330,1
    - Dst: xmlSaveFileEnc
      Src: /src/libxml2/testapi.c:778,1
    - Dst: xmlDebugDumpEntities
      Src: /src/libxml2/testapi.c:656,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/testapi.c:1021,1
    - Dst: xmlRelaxNGValidatePushCData
      Src: /src/libxml2/testapi.c:977,1
    - Dst: xmlListSearch
      Src: /src/libxml2/testapi.c:349,1
    - Dst: xmlParserInputBufferCreateFd
      Src: /src/libxml2/testapi.c:453,1
    - Dst: xmlTextWriterWriteDTDExternalEntityContents
      Src: /src/libxml2/testapi.c:1178,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1306,1
    - Dst: xmlDeregisterNodeDefault
      Src: /src/libxml2/testapi.c:187,1
    - Dst: xmlUTF8Size
      Src: /src/libxml2/testapi.c:589,1
    - Dst: xmlPatternStreamable
      Src: /src/libxml2/testapi.c:810,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:698,1
    - Dst: xmlXPathCastStringToBoolean
      Src: /src/libxml2/testapi.c:1243,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxml2/testapi.c:1275,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:1307,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1400,1
    - Dst: xmlXPathEqualValues
      Src: /src/libxml2/testapi.c:1266,1
    - Dst: xmlXPathSubstringAfterFunction
      Src: /src/libxml2/testapi.c:1370,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1270,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/testapi.c:1277,1
    - Dst: xmlTextWriterWriteVFormatDTDAttlist
      Src: /src/libxml2/testapi.c:1205,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/testapi.c:159,1
    - Dst: xmlNewComment
      Src: /src/libxml2/testapi.c:372,1
    - Dst: xmlNewDocTextLen
      Src: /src/libxml2/testapi.c:383,1
    - Dst: xmlACatalogDump
      Src: /src/libxml2/testapi.c:646,1
    - Dst: xmlThrDefSetGenericErrorFunc
      Src: /src/libxml2/testapi.c:582,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:999,1
    - Dst: xmlXPathIdFunction
      Src: /src/libxml2/testapi.c:1284,1
    - Dst: xmlXPathCastNumberToBoolean
      Src: /src/libxml2/testapi.c:1241,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:260,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/testapi.c:392,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:402,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/testapi.c:459,1
    - Dst: htmlNodeStatus
      Src: /src/libxml2/testapi.c:692,1
    - Dst: xmlSchemaSetParserErrors
      Src: /src/libxml2/testapi.c:1046,1
    - Dst: xmlValidateAttributeValue
      Src: /src/libxml2/testapi.c:1106,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:157,1
    - Dst: xmlCtxtResetPush
      Src: /src/libxml2/testapi.c:167,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/testapi.c:195,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/testapi.c:285,1
    - Dst: xmlInitParserCtxt
      Src: /src/libxml2/testapi.c:305,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:382,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/testapi.c:403,1
    - Dst: xmlTextReaderGetParserColumnNumber
      Src: /src/libxml2/testapi.c:862,1
    - Dst: xmlSchemaValueAppend
      Src: /src/libxml2/testapi.c:1068,1
    - Dst: xmlSaveSetEscape
      Src: /src/libxml2/testapi.c:786,1
    - Dst: xmlCheckUTF8
      Src: /src/libxml2/testapi.c:103,1
    - Dst: xmlCopyEntitiesTable
      Src: /src/libxml2/testapi.c:121,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testapi.c:134,1
    - Dst: xmlGcMemGet
      Src: /src/libxml2/testapi.c:238,1
    - Dst: xmlGetID
      Src: /src/libxml2/testapi.c:254,1
    - Dst: xmlNodeGetSpacePreserve
      Src: /src/libxml2/testapi.c:423,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/testapi.c:1024,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:397,1
    - Dst: xmlSaveToIO
      Src: /src/libxml2/testapi.c:791,1
    - Dst: xmlReconciliateNs
      Src: /src/libxml2/testapi.c:481,1
    - Dst: xmlGetDtdElementDesc
      Src: /src/libxml2/testapi.c:247,1
    - Dst: xmlNewChild
      Src: /src/libxml2/testapi.c:371,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:381,1
    - Dst: xmlNodeBufGetContent
      Src: /src/libxml2/testapi.c:417,1
    - Dst: xmlTextReaderMoveToFirstAttribute
      Src: /src/libxml2/testapi.c:880,1
    - Dst: xmlParseBalancedChunkMemoryRecover
      Src: /src/libxml2/testapi.c:988,1
    - Dst: xmlStrsub
      Src: /src/libxml2/testapi.c:564,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/testapi.c:933,1
    - Dst: xmlRelaxNGSetValidErrors
      Src: /src/libxml2/testapi.c:972,1
    - Dst: xmlXPathCastBooleanToString
      Src: /src/libxml2/testapi.c:1235,1
    - Dst: xmlXPathNewCString
      Src: /src/libxml2/testapi.c:1299,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:538,1
    - Dst: xmlTextReaderSetResourceLoader
      Src: /src/libxml2/testapi.c:898,1
    - Dst: xmlFileRead
      Src: /src/libxml2/testapi.c:210,1
    - Dst: xmlCreateURLParserCtxt
      Src: /src/libxml2/testapi.c:141,1
    - Dst: xmlNewDocText
      Src: /src/libxml2/testapi.c:382,1
    - Dst: xmlReadDoc
      Src: /src/libxml2/testapi.c:477,1
    - Dst: htmlElementAllowedHere
      Src: /src/libxml2/testapi.c:676,1
    - Dst: xmlDebugCheckDocument
      Src: /src/libxml2/testapi.c:652,1
    - Dst: xmlFreeValidCtxt
      Src: /src/libxml2/testapi.c:1092,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/testapi.c:1300,1
    - Dst: xmlAddEncodingAlias
      Src: /src/libxml2/testapi.c:50,1
    - Dst: xmlSetNsProp
      Src: /src/libxml2/testapi.c:534,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/testapi.c:377,1
    - Dst: xmlSchemaNewParserCtxt
      Src: /src/libxml2/testapi.c:1039,1
    - Dst: xmlNewTextLen
      Src: /src/libxml2/testapi.c:411,1
    - Dst: xmlDebugDumpNodeList
      Src: /src/libxml2/testapi.c:657,1
    - Dst: xmlNewCDataBlock
      Src: /src/libxml2/testapi.c:368,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:903,1
    - Dst: xmlSchemaValidateListSimpleTypeFacet
      Src: /src/libxml2/testapi.c:1062,1
    - Dst: xmlXIncludeProcessTree
      Src: /src/libxml2/testapi.c:1223,1
    - Dst: xmlTextReaderConstName
      Src: /src/libxml2/testapi.c:846,1
    - Dst: xmlSAXParseFile
      Src: /src/libxml2/testapi.c:1000,1
    - Dst: xmlHashAdd3
      Src: /src/libxml2/testapi.c:274,1
    - Dst: xmlCopyCharMultiByte
      Src: /src/libxml2/testapi.c:115,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testapi.c:141,1
    - Dst: xmlTextWriterSetIndent
      Src: /src/libxml2/testapi.c:1152,1
    - Dst: xmlXPathCompiledEvalToBoolean
      Src: /src/libxml2/testapi.c:1253,1
    - Dst: xmlXPathRegisterVariableNS
      Src: /src/libxml2/testapi.c:1357,1
    - Dst: xmlXPathDebugDumpCompExpr
      Src: /src/libxml2/testapi.c:1389,1
    - Dst: htmlReadDoc
      Src: /src/libxml2/testapi.c:699,1
    - Dst: xmlSaveClose
      Src: /src/libxml2/testapi.c:791,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:854,1
    - Dst: xmlFreeElementContent
      Src: /src/libxml2/testapi.c:218,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/testapi.c:135,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:409,1
    - Dst: xmlNodeGetLang
      Src: /src/libxml2/testapi.c:422,1
    - Dst: xmlParseAttValue
      Src: /src/libxml2/testapi.c:437,1
    - Dst: xmlStrlen
      Src: /src/libxml2/testapi.c:557,1
    - Dst: xmlSaveFileTo
      Src: /src/libxml2/testapi.c:779,1
    - Dst: xmlHashFree
      Src: /src/libxml2/testapi.c:279,1
    - Dst: xmlBufferEmpty
      Src: /src/libxml2/testapi.c:75,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:58,1
    - Dst: xmlDelEncodingAlias
      Src: /src/libxml2/testapi.c:186,1
    - Dst: xmlHashQLookup3
      Src: /src/libxml2/testapi.c:289,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:411,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:617,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:888,1
    - Dst: xmlOutputBufferCreateFilename
      Src: /src/libxml2/testapi.c:764,1
    - Dst: xmlSchemaGetBuiltInListSimpleTypeItemType
      Src: /src/libxml2/testapi.c:1023,1
    - Dst: xmlTextWriterEndDocument
      Src: /src/libxml2/testapi.c:1147,1
    - Dst: xmlGetDtdAttrDesc
      Src: /src/libxml2/testapi.c:246,1
    - Dst: xmlListPushFront
      Src: /src/libxml2/testapi.c:342,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testapi.c:403,1
    - Dst: xmlParseURIReference
      Src: /src/libxml2/testapi.c:447,1
    - Dst: xmlCatalogLocalResolveURI
      Src: /src/libxml2/testapi.c:627,1
    - Dst: xmlRMutexUnlock
      Src: /src/libxml2/testapi.c:476,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/testapi.c:771,1
    - Dst: xmlTextReaderMoveToElement
      Src: /src/libxml2/testapi.c:879,1
    - Dst: xmlTextWriterWriteFormatAttribute
      Src: /src/libxml2/testapi.c:1183,1
    - Dst: xmlXPathNextChild
      Src: /src/libxml2/testapi.c:1310,1
    - Dst: xmlXPathNextAncestorOrSelf
      Src: /src/libxml2/testapi.c:1308,1
    - Dst: xmlSchemaGetValType
      Src: /src/libxml2/testapi.c:1030,1
    - Dst: xmlBufferCCat
      Src: /src/libxml2/testapi.c:67,1
    - Dst: xmlNewDocRawNode
      Src: /src/libxml2/testapi.c:381,1
    - Dst: htmlDefaultSAXHandlerInit
      Src: /src/libxml2/testapi.c:675,1
    - Dst: xmlXPathBooleanFunction
      Src: /src/libxml2/testapi.c:1233,1
    - Dst: xmlXPathNewContext
      Src: /src/libxml2/testapi.c:1300,1
    - Dst: xmlAddElementDecl
      Src: /src/libxml2/testapi.c:49,1
    - Dst: xmlAddSibling
      Src: /src/libxml2/testapi.c:58,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:73,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/testapi.c:546,1
    - Dst: xmlDumpElementTable
      Src: /src/libxml2/testapi.c:752,1
    - Dst: xmlTextReaderXmlLang
      Src: /src/libxml2/testapi.c:903,1
    - Dst: xmlRelaxNGNewDocParserCtxt
      Src: /src/libxml2/testapi.c:964,1
    - Dst: xmlTextReaderPrefix
      Src: /src/libxml2/testapi.c:888,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:993,1
    - Dst: xmlValidateRoot
      Src: /src/libxml2/testapi.c:1122,1
    - Dst: xmlThrDefRegisterNodeDefault
      Src: /src/libxml2/testapi.c:581,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/testapi.c:664,1
    - Dst: xmlNodeDump
      Src: /src/libxml2/testapi.c:758,1
    - Dst: xmlCharEncNewCustomHandler
      Src: /src/libxml2/testapi.c:95,1
    - Dst: xmlCopyChar
      Src: /src/libxml2/testapi.c:114,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/testapi.c:414,1
    - Dst: xmlSAX2EntityDecl
      Src: /src/libxml2/testapi.c:500,1
    - Dst: xmlFreeCatalog
      Src: /src/libxml2/testapi.c:642,1
    - Dst: htmlParseChunk
      Src: /src/libxml2/testapi.c:726,1
    - Dst: xmlTextReaderConstLocalName
      Src: /src/libxml2/testapi.c:845,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1259,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1382,1
    - Dst: xmlCopyError
      Src: /src/libxml2/testapi.c:123,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/testapi.c:217,1
    - Dst: xmlParserGetDirectory
      Src: /src/libxml2/testapi.c:452,1
    - Dst: xmlPedanticParserDefault
      Src: /src/libxml2/testapi.c:469,1
    - Dst: xmlSAX2Comment
      Src: /src/libxml2/testapi.c:495,1
    - Dst: htmlParseFile
      Src: /src/libxml2/testapi.c:698,1
    - Dst: xmlTextReaderCurrentNode
      Src: /src/libxml2/testapi.c:854,1
    - Dst: xmlTextReaderPreservePattern
      Src: /src/libxml2/testapi.c:905,1
    - Dst: xmlRelaxNGNewMemParserCtxt
      Src: /src/libxml2/testapi.c:965,1
    - Dst: xmlSAXUserParseFile
      Src: /src/libxml2/testapi.c:1004,1
    - Dst: xmlACatalogResolveSystem
      Src: /src/libxml2/testapi.c:617,1
    - Dst: xmlParseMemory
      Src: /src/libxml2/testapi.c:993,1
    - Dst: xmlOutputBufferCreateFile
      Src: /src/libxml2/testapi.c:763,1
    - Dst: xmlListDelete
      Src: /src/libxml2/testapi.c:332,1
    - Dst: xmlTextConcat
      Src: /src/libxml2/testapi.c:570,1
    - Dst: xmlSchemaFreeWildcard
      Src: /src/libxml2/testapi.c:1022,1
    - Dst: xmlAttrSerializeTxtContent
      Src: /src/libxml2/testapi.c:740,1
    - Dst: xmlXPathConvertNumber
      Src: /src/libxml2/testapi.c:1258,1
    - Dst: xmlXPathNodeSetAdd
      Src: /src/libxml2/testapi.c:1323,1
    - Dst: xmlModuleFree
      Src: /src/libxml2/testapi.c:733,1
    - Dst: xmlRelaxNGCleanupTypes
      Src: /src/libxml2/testapi.c:957,1
    - Dst: xmlCopyPropList
      Src: /src/libxml2/testapi.c:130,1
    - Dst: xmlSAX2ProcessingInstruction
      Src: /src/libxml2/testapi.c:515,1
    - Dst: xmlStreamWantsAnyNode
      Src: /src/libxml2/testapi.c:816,1
    - Dst: xmlFreePattern
      Src: /src/libxml2/testapi.c:801,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1301,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/testapi.c:453,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/testapi.c:739,1
    - Dst: htmlSaveFile
      Src: /src/libxml2/testapi.c:720,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:88,1
    - Dst: xmlCtxtGetSaxHandler
      Src: /src/libxml2/testapi.c:150,1
    - Dst: xmlIsID
      Src: /src/libxml2/testapi.c:316,1
    - Dst: xmlC14NDocDumpMemory
      Src: /src/libxml2/testapi.c:606,1
    - Dst: xmlParserPrintFileInfo
      Src: /src/libxml2/testapi.c:467,1
    - Dst: xmlSAX2InitHtmlDefaultSAXHandler
      Src: /src/libxml2/testapi.c:708,1
    - Dst: xmlValidateDtdFinal
      Src: /src/libxml2/testapi.c:1110,1
    - Dst: xmlXPathVariableLookupNS
      Src: /src/libxml2/testapi.c:1382,1
    - Dst: xmlTextReaderGetAttributeNo
      Src: /src/libxml2/testapi.c:858,1
    - Dst: xmlMutexLock
      Src: /src/libxml2/testapi.c:366,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:421,1
    - Dst: xmlUTF8Strloc
      Src: /src/libxml2/testapi.c:591,1
    - Dst: htmlReadFile
      Src: /src/libxml2/testapi.c:700,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:1319,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/testapi.c:1333,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:632,1
    - Dst: xmlGetRefs
      Src: /src/libxml2/testapi.c:267,1
    - Dst: xmlHashCopySafe
      Src: /src/libxml2/testapi.c:279,1
    - Dst: xmlSAX2HasExternalSubset
      Src: /src/libxml2/testapi.c:508,1
    - Dst: xmlSchematronFreeParserCtxt
      Src: /src/libxml2/testapi.c:1080,1
    - Dst: xmlTextWriterStartComment
      Src: /src/libxml2/testapi.c:1158,1
    - Dst: xmlXPathDifference
      Src: /src/libxml2/testapi.c:1262,1
    - Dst: xmlKeepBlanksDefault
      Src: /src/libxml2/testapi.c:324,1
    - Dst: xmlFreeNotationTable
      Src: /src/libxml2/testapi.c:228,1
    - Dst: xmlCtxtPopInput
      Src: /src/libxml2/testapi.c:158,1
    - Dst: xmlBufferWriteQuotedString
      Src: /src/libxml2/testapi.c:84,1
    - Dst: xmlFileOpen
      Src: /src/libxml2/testapi.c:209,1
    - Dst: xmlInitThreads
      Src: /src/libxml2/testapi.c:306,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:1012,1
    - Dst: xmlSplitQName
      Src: /src/libxml2/testapi.c:538,1
    - Dst: htmlNodeDump
      Src: /src/libxml2/testapi.c:715,1
    - Dst: xmlCtxtGetValidCtxt
      Src: /src/libxml2/testapi.c:1092,1
    - Dst: xmlXPatherror
      Src: /src/libxml2/testapi.c:1387,1
    - Dst: xmlNewNs
      Src: /src/libxml2/testapi.c:399,1
    - Dst: xmlSetCompressMode
      Src: /src/libxml2/testapi.c:528,1
    - Dst: xmlThrDefSetStructuredErrorFunc
      Src: /src/libxml2/testapi.c:583,1
    - Dst: xmlTextReaderMoveToNextAttribute
      Src: /src/libxml2/testapi.c:881,1
    - Dst: xmlSaveSetIndentString
      Src: /src/libxml2/testapi.c:787,1
    - Dst: xmlAddNextSibling
      Src: /src/libxml2/testapi.c:54,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/testapi.c:158,1
    - Dst: xmlNodeSetName
      Src: /src/libxml2/testapi.c:431,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/testapi.c:446,1
    - Dst: xmlReplaceNode
      Src: /src/libxml2/testapi.c:489,1
    - Dst: xmlCatalogLocalResolve
      Src: /src/libxml2/testapi.c:626,1
    - Dst: xmlXPathMultValues
      Src: /src/libxml2/testapi.c:1296,1
    - Dst: xmlRegisterDefaultOutputCallbacks
      Src: /src/libxml2/testapi.c:773,1
    - Dst: htmlNodeDumpFile
      Src: /src/libxml2/testapi.c:716,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:478,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testapi.c:820,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:45,1
    - Dst: xmlHashScan3
      Src: /src/libxml2/testapi.c:294,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:553,1
    - Dst: xmlRelaxNGFree
      Src: /src/libxml2/testapi.c:958,1
    - Dst: xmlXPathCompiledEval
      Src: /src/libxml2/testapi.c:1252,1
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxml2/testapi.c:1327,1
    - Dst: xmlRecoverDoc
      Src: /src/libxml2/testapi.c:994,1
    - Dst: xmlTextWriterWriteVFormatRaw
      Src: /src/libxml2/testapi.c:1211,1
    - Dst: xmlCatalogAdd
      Src: /src/libxml2/testapi.c:619,1
    - Dst: xmlPatterncompile
      Src: /src/libxml2/testapi.c:811,1
    - Dst: xmlIsLetter
      Src: /src/libxml2/testapi.c:318,1
    - Dst: xmlParseContent
      Src: /src/libxml2/testapi.c:439,1
    - Dst: xmlSAX2IgnorableWhitespace
      Src: /src/libxml2/testapi.c:510,1
    - Dst: xmlSAX2StartElementNs
      Src: /src/libxml2/testapi.c:521,1
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/testapi.c:638,1
    - Dst: xmlSAXUserParseMemory
      Src: /src/libxml2/testapi.c:1005,1
    - Dst: xmlSchemaValidateOneElement
      Src: /src/libxml2/testapi.c:1063,1
    - Dst: xmlXPathCtxtCompile
      Src: /src/libxml2/testapi.c:1261,1
    - Dst: xmlTextReaderConstNamespaceUri
      Src: /src/libxml2/testapi.c:847,1
    - Dst: xmlMemFree
      Src: /src/libxml2/testapi.c:359,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:371,1
    - Dst: xmlParseURIRaw
      Src: /src/libxml2/testapi.c:446,1
    - Dst: xmlStringDecodeEntities
      Src: /src/libxml2/testapi.c:553,1
    - Dst: xmlXPathParseName
      Src: /src/libxml2/testapi.c:1343,1
    - Dst: xmlParserInputBufferCreateFile
      Src: /src/libxml2/testapi.c:454,1
    - Dst: xmlSaveTree
      Src: /src/libxml2/testapi.c:792,1
    - Dst: xmlRegisterDefaultInputCallbacks
      Src: /src/libxml2/testapi.c:483,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:422,1
    - Dst: xmlCtxtSetResourceLoader
      Src: /src/libxml2/testapi.c:175,1
    - Dst: xmlDetectCharEncoding
      Src: /src/libxml2/testapi.c:188,1
    - Dst: xmlDocCopyNodeList
      Src: /src/libxml2/testapi.c:202,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/testapi.c:43,1
    - Dst: xmlCopyEnumeration
      Src: /src/libxml2/testapi.c:122,1
    - Dst: xmlFreeElementTable
      Src: /src/libxml2/testapi.c:219,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/testapi.c:76,1
    - Dst: xmlListDup
      Src: /src/libxml2/testapi.c:333,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:377,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/testapi.c:454,1
    - Dst: xmlSchemaGetCanonValue
      Src: /src/libxml2/testapi.c:1025,1
    - Dst: xmlXPathNotFunction
      Src: /src/libxml2/testapi.c:1337,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/testapi.c:1381,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/testapi.c:763,1
    - Dst: xmlGetDtdEntity
      Src: /src/libxml2/testapi.c:248,1
    - Dst: htmlCtxtParseDocument
      Src: /src/libxml2/testapi.c:666,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/testapi.c:1287,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:1314,1
    - Dst: xmlPathToURI
      Src: /src/libxml2/testapi.c:468,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:398,1
    - Dst: xmlConvertSGMLCatalog
      Src: /src/libxml2/testapi.c:636,1
    - Dst: xmlTextReaderExpand
      Src: /src/libxml2/testapi.c:856,1
    - Dst: xmlRelaxNGNewParserCtxt
      Src: /src/libxml2/testapi.c:966,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:889,1
    - Dst: xmlCtxtGetStatus
      Src: /src/libxml2/testapi.c:152,1
    - Dst: xmlGetLastError
      Src: /src/libxml2/testapi.c:257,1
    - Dst: xmlInitParser
      Src: /src/libxml2/testapi.c:40,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/testapi.c:387,1
    - Dst: xmlXPathNodeSetContains
      Src: /src/libxml2/testapi.c:1326,1
    - Dst: xmlListSort
      Src: /src/libxml2/testapi.c:351,1
    - Dst: xmlNodeIsText
      Src: /src/libxml2/testapi.c:424,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/testapi.c:1334,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testapi.c:1313,1
    - Dst: xmlTextWriterWriteString
      Src: /src/libxml2/testapi.c:1199,1
    - Dst: xmlXPathVariableLookup
      Src: /src/libxml2/testapi.c:1381,1
    - Dst: xmlFreeNs
      Src: /src/libxml2/testapi.c:525,1
    - Dst: xmlACatalogAdd
      Src: /src/libxml2/testapi.c:613,1
    - Dst: xmlSchemaSetParserStructuredErrors
      Src: /src/libxml2/testapi.c:1047,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:564,1
    - Dst: xmlSAX2ExternalSubset
      Src: /src/libxml2/testapi.c:501,1
    - Dst: xmlFreePatternList
      Src: /src/libxml2/testapi.c:802,1
    - Dst: xmlAutomataGetInitState
      Src: /src/libxml2/testapi.c:925,1
    - Dst: xmlFreeNsList
      Src: /src/libxml2/testapi.c:230,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/testapi.c:269,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/testapi.c:142,1
    - Dst: xmlXPathStartsWithFunction
      Src: /src/libxml2/testapi.c:1365,1
    - Dst: xmlSearchNs
      Src: /src/libxml2/testapi.c:525,1
    - Dst: xmlFreeAutomata
      Src: /src/libxml2/testapi.c:941,1
    - Dst: xmlSchemaCompareValuesWhtsp
      Src: /src/libxml2/testapi.c:1014,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testapi.c:160,1
    - Dst: xmlGetNsListSafe
      Src: /src/libxml2/testapi.c:262,1
    - Dst: xmlListRemoveAll
      Src: /src/libxml2/testapi.c:343,1
    - Dst: xmlSAX2Reference
      Src: /src/libxml2/testapi.c:516,1
    - Dst: htmlNewSAXParserCtxt
      Src: /src/libxml2/testapi.c:691,1
    - Dst: xmlTextWriterWriteFormatElementNS
      Src: /src/libxml2/testapi.c:1192,1
    - Dst: xmlXPathNextFollowingSibling
      Src: /src/libxml2/testapi.c:1314,1
    - Dst: xmlTextReaderPreserve
      Src: /src/libxml2/testapi.c:889,1
    - Dst: xmlRecoverMemory
      Src: /src/libxml2/testapi.c:996,1
    - Dst: xmlThrDefDeregisterNodeDefault
      Src: /src/libxml2/testapi.c:572,1
    - Dst: xmlCtxtGetStandalone
      Src: /src/libxml2/testapi.c:151,1
    - Dst: xmlNewNodeEatName
      Src: /src/libxml2/testapi.c:398,1
    - Dst: xmlXPathConvertString
      Src: /src/libxml2/testapi.c:1259,1
    - Dst: xmlXPathRegisterFuncLookup
      Src: /src/libxml2/testapi.c:1352,1
    - Dst: xmlStrcasestr
      Src: /src/libxml2/testapi.c:547,1
    - Dst: xmlTextReaderRelaxNGSetSchema
      Src: /src/libxml2/testapi.c:908,1
    - Dst: xmlAutomataNewOnceTrans2
      Src: /src/libxml2/testapi.c:936,1
    - Dst: xmlDumpEntitiesTable
      Src: /src/libxml2/testapi.c:753,1
    - Dst: xmlFreeEntitiesTable
      Src: /src/libxml2/testapi.c:121,1
    - Dst: xmlListEmpty
      Src: /src/libxml2/testapi.c:334,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/testapi.c:367,1
    - Dst: xmlNewEntityInputStream
      Src: /src/libxml2/testapi.c:387,1
    - Dst: xmlValidBuildContentModel
      Src: /src/libxml2/testapi.c:1124,1
    - Dst: xmlTextWriterWriteBinHex
      Src: /src/libxml2/testapi.c:1170,1
    - Dst: xmlXPtrNewContext
      Src: /src/libxml2/testapi.c:1401,1
    - Dst: xmlFreeTextWriter
      Src: /src/libxml2/testapi.c:1136,1
    - Dst: xmlListSize
      Src: /src/libxml2/testapi.c:350,1
    - Dst: xmlReaderForFile
      Src: /src/libxml2/testapi.c:829,1
    - Dst: xmlCleanupCharEncodingHandlers
      Src: /src/libxml2/testapi.c:105,1
    - Dst: xmlListDelete
      Src: /src/libxml2/testapi.c:267,1
    - Dst: xmlIsIdeographic
      Src: /src/libxml2/testapi.c:317,1
    - Dst: xmlSAX2HasInternalSubset
      Src: /src/libxml2/testapi.c:509,1
    - Dst: xmlTextWriterWriteDTDInternalEntity
      Src: /src/libxml2/testapi.c:1179,1
    - Dst: xmlXPathNodeTrailingSorted
      Src: /src/libxml2/testapi.c:1334,1
    - Dst: xmlXPathLeadingSorted
      Src: /src/libxml2/testapi.c:1293,1
    - Dst: xmlTextWriterWriteFormatString
      Src: /src/libxml2/testapi.c:1195,1
    - Dst: xmlTextWriterWriteDTDExternalEntity
      Src: /src/libxml2/testapi.c:1177,1
    - Dst: htmlCreateMemoryParserCtxt
      Src: /src/libxml2/testapi.c:665,1
    - Dst: xmlXPathHasSameNodes
      Src: /src/libxml2/testapi.c:1283,1
    - Dst: xmlTextReaderGetParserProp
      Src: /src/libxml2/testapi.c:864,1
    - Dst: xmlPopOutputCallbacks
      Src: /src/libxml2/testapi.c:772,1
    - Dst: xmlFreeNs
      Src: /src/libxml2/testapi.c:229,1
    - Dst: xmlAddChild
      Src: /src/libxml2/testapi.c:45,1
    - Dst: xmlParserInputBufferGrow
      Src: /src/libxml2/testapi.c:460,1
    - Dst: xmlTextWriterFullEndElement
      Src: /src/libxml2/testapi.c:1151,1
    - Dst: xmlTextWriterWriteVFormatComment
      Src: /src/libxml2/testapi.c:1203,1
    - Dst: xmlXPathEvaluatePredicateResult
      Src: /src/libxml2/testapi.c:1272,1
    - Dst: xmlXPathNodeSetDel
      Src: /src/libxml2/testapi.c:1328,1
    - Dst: xmlXPathRegisteredNsCleanup
      Src: /src/libxml2/testapi.c:1359,1
    - Dst: xmlRelaxNGValidatePushElement
      Src: /src/libxml2/testapi.c:978,1
    - Dst: htmlDocContentDumpFormatOutput
      Src: /src/libxml2/testapi.c:710,1
    - Dst: xmlRelaxParserSetFlag
      Src: /src/libxml2/testapi.c:979,1
    - Dst: xmlUTF8Strlen
      Src: /src/libxml2/testapi.c:590,1
    - Dst: xmlACatalogResolveURI
      Src: /src/libxml2/testapi.c:618,1
    - Dst: xmlByteConsumed
      Src: /src/libxml2/testapi.c:90,1
    - Dst: xmlCreateFileParserCtxt
      Src: /src/libxml2/testapi.c:136,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:437,1
    - Dst: xmlStrncasecmp
      Src: /src/libxml2/testapi.c:558,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/testapi.c:1038,1
    - Dst: xmlTextWriterStartDTD
      Src: /src/libxml2/testapi.c:1159,1
    - Dst: htmlInitAutoClose
      Src: /src/libxml2/testapi.c:684,1
    - Dst: xmlTextReaderQuoteChar
      Src: /src/libxml2/testapi.c:890,1
    - Dst: xmlAutomataNewOnceTrans
      Src: /src/libxml2/testapi.c:935,1
    - Dst: xmlSchemaValidateFacetWhtsp
      Src: /src/libxml2/testapi.c:1058,1
    - Dst: xmlResetLastError
      Src: /src/libxml2/testapi.c:491,1
    - Dst: xmlModuleClose
      Src: /src/libxml2/testapi.c:731,1
    - Dst: xmlCharEncOutFunc
      Src: /src/libxml2/testapi.c:96,1
    - Dst: xmlTextWriterStartElementNS
      Src: /src/libxml2/testapi.c:1165,1
    - Dst: xmlUnsetNsProp
      Src: /src/libxml2/testapi.c:598,1
    - Dst: xmlDocDumpMemory
      Src: /src/libxml2/testapi.c:746,1
    - Dst: xmlBufferCat
      Src: /src/libxml2/testapi.c:68,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:85,1
    - Dst: xmlInitializeDict
      Src: /src/libxml2/testapi.c:307,1
    - Dst: xmlNewDoc
      Src: /src/libxml2/testapi.c:373,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/testapi.c:393,1
    - Dst: xmlFree
      Src: /src/libxml2/testapi.c:1342,1
    - Dst: xmlXPathTranslateFunction
      Src: /src/libxml2/testapi.c:1376,1
    - Dst: xmlTextReaderRelaxNGValidate
      Src: /src/libxml2/testapi.c:909,1
    - Dst: xmlReaderNewFd
      Src: /src/libxml2/testapi.c:833,1
    - Dst: xmlTextReaderGetParserLineNumber
      Src: /src/libxml2/testapi.c:863,1
    - Dst: xmlSchemaGetValidErrors
      Src: /src/libxml2/testapi.c:1031,1
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/testapi.c:820,1
    - Dst: xmlTextReaderReadInnerXml
      Src: /src/libxml2/testapi.c:918,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/testapi.c:196,1
    - Dst: xmlCtxtSetCatalogs
      Src: /src/libxml2/testapi.c:168,1
    - Dst: xmlLineNumbersDefault
      Src: /src/libxml2/testapi.c:326,1
    - Dst: xmlParseURI
      Src: /src/libxml2/testapi.c:445,1
    - Dst: xmlParseCatalogFile
      Src: /src/libxml2/testapi.c:644,1
    - Dst: xmlTextReaderLocalName
      Src: /src/libxml2/testapi.c:872,1
    - Dst: htmlIsAutoClosed
      Src: /src/libxml2/testapi.c:685,1
    - Dst: xmlRegExecPushString2
      Src: /src/libxml2/testapi.c:946,1
    - Dst: __xmlParserInputBufferCreateFilename
      Src: /src/libxml2/testapi.c:43,1
    - Dst: xmlBufferGrow
      Src: /src/libxml2/testapi.c:77,1
    - Dst: xmlChildElementCount
      Src: /src/libxml2/testapi.c:104,1
    - Dst: xmlParseDTD
      Src: /src/libxml2/testapi.c:1099,1
    - Dst: xmlTextWriterWriteFormatDTDAttlist
      Src: /src/libxml2/testapi.c:1188,1
    - Dst: xmlTextWriterWriteVFormatElementNS
      Src: /src/libxml2/testapi.c:1209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1611
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 1406
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 1406
    functionName: main
    functionSourceFile: /src/libxml2/testapi.c
    functionUses: []
    functionsReached:
    - xmlRegFreeExecCtxt
    - xmlACatalogResolve
    - xmlCatalogFreeLocal
    - xmlTextReaderNext
    - xmlCtxtReadMemory
    - __xmlOutputBufferCreateFilename
    - xmlNewTextWriterTree
    - xmlCtxtIsStopped
    - xmlSchemaSetValidErrors
    - xmlTextReaderLocalName
    - xmlXPathTrailing
    - xmlHashUpdateEntry
    - xmlGetID
    - xmlXPathContainsFunction
    - xmlSchemaParse
    - xmlTextReaderGetAttribute
    - xmlCtxtSetOptions
    - xmlParseBalancedChunkMemoryRecover
    - xmlCtxtErrMemory
    - xmlNewTextLen
    - xmlSAX2AttributeDecl
    - htmlSAXParseFile
    - xmlCreateEntityParserCtxt
    - xmlStrncat
    - xmlCleanupEncodingAliases
    - xmlXPathEvalExpr
    - htmlNewDocNoDtD
    - xmlParserFindNodeInfoIndex
    - xmlNewProp
    - xmlRemoveID
    - xmlBuildQName
    - xmlCopyEnumeration
    - xmlRelaxNGSetValidErrors
    - xmlSchemaCompareValues
    - xmlRegexpPrint
    - xmlCanonicPath
    - xmlTextReaderStandalone
    - xmlRegisterNodeDefault
    - xmlReaderNewDoc
    - xmlParserPrintFileInfo
    - xmlCtxtGetValidCtxt
    - xmlAddNotationDecl
    - xmlListRemoveFirst
    - xmlRemoveProp
    - xmlXPathLeadingSorted
    - xmlUTF8Strndup
    - xmlCreateMemoryParserCtxt
    - xmlGcMemSetup
    - xmlSetGenericErrorFunc
    - xmlSAX2GetLineNumber
    - xmlIsPubidChar
    - xmlTextWriterStartDocument
    - xmlSetExternalEntityLoader
    - xmlFreeNsList
    - xmlNodeSetLang
    - xmlTextReaderExpand
    - xmlBufferCreateStatic
    - xmlXPathCastToBoolean
    - xmlXPathNumberFunction
    - xmlValidNormalizeAttributeValue
    - xmlReadDoc
    - xmlStrcasecmp
    - xmlPreviousElementSibling
    - xmlXPathInit
    - xmlTextWriterEndDTDElement
    - xmlNewInputFromMemory
    - xmlFreeValidCtxt
    - xmlFreeNodeList
    - xmlDocGetRootElement
    - xmlXPathSumFunction
    - xmlSchemaGetBuiltInListSimpleTypeItemType
    - xmlTextReaderIsDefault
    - htmlNewSAXParserCtxt
    - xmlBufferWriteQuotedString
    - xmlTextReaderHasAttributes
    - xmlPatternFromRoot
    - htmlNewParserCtxt
    - xmlParseAttValue
    - xmlAddNextSibling
    - xmlSchemaFreeType
    - xmlCatalogGetDefaults
    - xmlNewTextReader
    - xmlListClear
    - xmlTextWriterEndDTDEntity
    - xmlRelaxNGNewParserCtxt
    - xmlBuildURI
    - xmlThrDefSubstituteEntitiesDefaultValue
    - xmlValidateNamesValue
    - xmlDictExists
    - xmlSAX2GetEntity
    - xmlParserInputBufferCreateStatic
    - xmlCopyNamespaceList
    - xmlURIEscapeStr
    - xmlUTF8ToIsolat1
    - xmlTextReaderIsNamespaceDecl
    - xmlCatalogLocalResolveURI
    - xmlLoadSGMLSuperCatalog
    - xmlXIncludeSetErrorHandler
    - xmlDumpEntityDecl
    - htmlDocDumpMemoryFormat
    - xmlXPathNextFollowing
    - xmlXPathValuePop
    - xmlParseExtParsedEnt
    - xmlStreamPushNode
    - xmlHashCreateDict
    - xmlXIncludeSetFlags
    - xmlCtxtReadIO
    - xmlXPathConvertBoolean
    - xmlNewDocText
    - xmlXPathDistinct
    - xmlParserInputBufferCreateFile
    - xmlRegExecPushString2
    - xmlMemGet
    - xmlCtxtGetStandalone
    - xmlSAX2Reference
    - xmlTextWriterWriteFormatComment
    - xmlBufferDetach
    - xmlCreateURI
    - xmlDictCreateSub
    - xmlTextReaderSchemaValidateCtxt
    - xmlSchemaInitTypes
    - xmlSaveTree
    - xmlDumpAttributeDecl
    - xmlCopyPropList
    - xmlSnprintfElementContent
    - xmlTextReaderXmlLang
    - xmlTextReaderBaseUri
    - xmlSchemaWhiteSpaceReplace
    - xmlXPathNextPrecedingSibling
    - xmlSAX2ProcessingInstruction
    - xmlTextWriterStartPI
    - xmlTextWriterWriteVFormatElement
    - xmlSetNs
    - xmlFreeStreamCtxt
    - xmlNormalizeURIPath
    - xmlHashDefaultDeallocator
    - xmlSchematronFreeParserCtxt
    - xmlCleanupCharEncodingHandlers
    - xmlSAX2GetColumnNumber
    - xmlXPathFunctionLookupNS
    - xmlHashLookup2
    - xmlCatalogResolveURI
    - xmlParserInputBufferPush
    - xmlXPathHasSameNodes
    - xmlReaderForFile
    - xmlXPathEvalExpression
    - xmlAllocOutputBuffer
    - xmlXPathNextAncestorOrSelf
    - xmlIsRef
    - xmlSchematronNewValidCtxt
    - xmlAddChild
    - xmlIsXHTML
    - xmlXPathNewBoolean
    - xmlRelaxNGValidatePopElement
    - xmlTextReaderSetParserProp
    - xmlTextReaderLocatorLineNumber
    - xmlXPathCompiledEval
    - xmlIsBaseChar
    - xmlXPathSubstringBeforeFunction
    - xmlTextWriterWriteAttributeNS
    - htmlReadDoc
    - xmlTextReaderConstName
    - xmlSchemaNewDocParserCtxt
    - xmlNodeGetAttrValue
    - xmlDelEncodingAlias
    - htmlNodeStatus
    - xmlSAX2StartDocument
    - xmlStrPrintf
    - xmlCopyError
    - xmlDocCopyNode
    - xmlHashQLookup
    - xmlTextReaderNormalization
    - xmlTextReaderMoveToElement
    - xmlRelaxNGSetParserErrors
    - xmlXPathConvertNumber
    - xmlBufEnd
    - xmlDictSetLimit
    - xmlXPathConcatFunction
    - xmlDictFree
    - xmlXPathNodeSetAdd
    - xmlSchematronNewMemParserCtxt
    - xmlReaderForMemory
    - xmlDumpElementDecl
    - xmlGetNoNsProp
    - xmlSAX2EndElement
    - xmlInitializeDict
    - xmlRelaxNGDumpTree
    - xmlXPathCastNodeSetToString
    - xmlNewNsProp
    - xmlTextReaderSetErrorHandler
    - xmlParseEntity
    - xmlByteConsumed
    - xmlTextWriterStartAttributeNS
    - xmlTextReaderReadOuterXml
    - xmlListDup
    - xmlEncodeEntitiesReentrant
    - xmlHashScanFull3
    - xmlReaderNewFd
    - xmlSchematronFreeValidCtxt
    - xmlParseMemory
    - xmlACatalogDump
    - xmlCtxtIsHtml
    - xmlXPathNodeSetAddNs
    - xmlMemDisplayLast
    - xmlListEmpty
    - xmlHashRemoveEntry2
    - xmlDocDumpMemory
    - xmlSAX2InitHtmlDefaultSAXHandler
    - xmlBufferCreateSize
    - xmlAddElementDecl
    - xmlTextReaderConstXmlLang
    - xmlNodeGetBase
    - xmlMemUsed
    - xmlAddSibling
    - xmlXPathNextFollowingSibling
    - xmlTextWriterWriteDTDExternalEntity
    - xmlCheckThreadLocalStorage
    - xmlRelaxNGInitTypes
    - xmlValidBuildContentModel
    - htmlDocDumpMemory
    - xmlThrDefOutputBufferCreateFilenameDefault
    - xmlNewCharRef
    - xmlXPathNextAncestor
    - xmlThrDefDoValidityCheckingDefaultValue
    - xmlSchemaSetParserStructuredErrors
    - xmlTextReaderReadString
    - xmlSchemaValidateStream
    - xmlGetDtdAttrDesc
    - xmlMemSetup
    - xmlTextReaderGetParserColumnNumber
    - xmlTextReaderReadInnerXml
    - xmlXPathEvaluatePredicateResult
    - xmlNewTextReaderFilename
    - xmlTextReaderAttributeCount
    - xmlBufferCat
    - htmlNewDoc
    - xmlReaderForIO
    - xmlSchemaValidateLengthFacet
    - xmlXPathNodeSetMerge
    - xmlTextWriterEndPI
    - xmlXPathAddValues
    - xmlFreeEnumeration
    - xmlModuleFree
    - xmlStringLenDecodeEntities
    - xmlTextWriterSetIndentString
    - xlinkGetDefaultDetect
    - xmlValidateDtd
    - xmlC14NDocDumpMemory
    - xmlDocCopyNodeList
    - xmlFirstElementChild
    - xmlXPathWrapString
    - xmlValidGetValidElements
    - xmlDeregisterNodeDefault
    - xmlLineNumbersDefault
    - xmlCtxtParseContent
    - xmlListPushFront
    - xmlTextWriterWriteFormatString
    - xmlSAXParseEntity
    - xmlSchemaSetResourceLoader
    - htmlDocDump
    - xmlParseContent
    - xmlHasProp
    - xmlCtxtGetStatus
    - xmlDOMWrapCloneNode
    - xmlParseChunk
    - xmlSchemaFreeWildcard
    - xmlNewDocComment
    - xmlUTF8Strloc
    - xmlXPathParseName
    - xmlSAXParseMemory
    - htmlNodeDump
    - xmlSaveFormatFileEnc
    - xmlRegExecNextValues
    - xmlSAX2StartElement
    - xmlSchemaNewNOTATIONValue
    - xmlCtxtGetDocument
    - xmlXPathRegisterNs
    - xmlCleanupOutputCallbacks
    - xmlSchematronSetValidStructuredErrors
    - xmlSaveFileEnc
    - xmlTextWriterWriteFormatPI
    - htmlCtxtReadFile
    - xmlXIncludeFreeContext
    - xmlSchemaValidateFile
    - xmlTextReaderSetStructuredErrorHandler
    - xmlFreeEntitiesTable
    - xmlNewInputFromIO
    - xmlNewTextWriterPushParser
    - xmlRegexpExec
    - xmlHasNsProp
    - xmlXPathValueFlipSign
    - xmlSAX2EndDocument
    - xmlTextReaderConstString
    - xmlStrVPrintf
    - xmlNewInputFromString
    - xmlTextReaderSetMaxAmplification
    - xmlStrEqual
    - xmlXPathNextParent
    - xmlSaveToIO
    - xmlCheckFilename
    - xmlValidateNotationDecl
    - xmlTextWriterWriteFormatAttributeNS
    - xmlTextWriterWriteVFormatAttributeNS
    - xmlSchemaGetBuiltInType
    - xmlStrdup
    - xmlValidateOneAttribute
    - xmlNodeDump
    - xmlLoadCatalog
    - xmlFreeMutex
    - xmlAllocParserInputBuffer
    - xmlXPathRegisterVariableLookup
    - xmlPatternMatch
    - xmlSchemaSetValidOptions
    - xmlBufferDump
    - xmlValidateNmtokenValue
    - xmlTextReaderMoveToFirstAttribute
    - xmlSchemaValidCtxtGetParserCtxt
    - xmlPopInputCallbacks
    - xmlDetectCharEncoding
    - xmlSplitQName
    - htmlCtxtReset
    - xmlRelaxNGNewMemParserCtxt
    - xmlCharStrdup
    - xmlListCreate
    - xmlSAX2EndElementNs
    - xmlTextReaderLookupNamespace
    - xmlCreateIntSubset
    - xmlStopParser
    - xmlAutomataNewCountedTrans
    - xmlSchemaGetCanonValue
    - xmlNodeGetSpacePreserve
    - xmlHashLookup3
    - xmlURIEscape
    - xlinkSetDefaultHandler
    - xmlFreeTextWriter
    - xmlAutomataNewOnceTrans
    - xmlSaveSetIndentString
    - htmlCtxtSetOptions
    - xmlFreeNs
    - xmlTextReaderGetParserProp
    - xmlStrstr
    - xmlCtxtReset
    - xmlNewDocPI
    - htmlEntityValueLookup
    - xmlXPtrNewContext
    - xmlNewNs
    - xmlStrchr
    - htmlFreeParserCtxt
    - xmlParseCharEncoding
    - xmlSchemaValueAppend
    - xmlListReverseWalk
    - xmlCharEncInFunc
    - xmlDictCreate
    - xmlParseURIReference
    - xmlValidateNameValue
    - xmlAutomataIsDeterminist
    - xmlCatalogCleanup
    - xmlCatalogLocalResolve
    - xmlRelaxNGFreeValidCtxt
    - xmlAutomataNewCounterTrans
    - xmlSchemaCollapseString
    - xmlStrncatNew
    - xmlTextReaderValue
    - xmlSchemaValidateFacetWhtsp
    - xmlCtxtReadFile
    - xmlSchemaValidateFacet
    - xmlSwitchEncodingName
    - xmlStreamPop
    - xmlNodeGetLang
    - xmlCurrentChar
    - xmlACatalogResolveURI
    - xmlLinkGetData
    - xmlXPathNextChild
    - xmlReaderNewFile
    - xmlPatternGetStreamCtxt
    - xmlSchemaValidateDoc
    - xmlXPathFalseFunction
    - xmlNewDocFragment
    - xmlAddAttributeDecl
    - xmlTextWriterWriteVFormatDTD
    - xmlCtxtSetErrorHandler
    - xmlBufferContent
    - xmlRegFreeRegexp
    - xmlTextWriterWritePI
    - xmlACatalogResolvePublic
    - xmlGetDtdElementDesc
    - xmlDOMWrapFreeCtxt
    - xmlValidCtxtNormalizeAttributeValue
    - xmlBufContent
    - xmlSAXUserParseFile
    - xmlRelaxNGGetParserErrors
    - xmlSchematronValidateDoc
    - xmlPathToURI
    - xmlSchemaValidateLengthFacetWhtsp
    - xmlXPathFreeNodeSetList
    - xmlFreeTextReader
    - xmlTextWriterStartDTDElement
    - xmlHashFree
    - xmlXPathSetContextNode
    - xmlHasFeature
    - xmlTextWriterStartElement
    - xmlXPathSubstringFunction
    - xmlTextReaderConstXmlVersion
    - xmlXPathNotEqualValues
    - xmlBufferResize
    - xmlXPathRegisteredFuncsCleanup
    - xmlTextReaderConstBaseUri
    - xmlSAXParseFile
    - xmlNoNetExternalEntityLoader
    - xmlNewChild
    - xmlNewComment
    - xmlCharEncCloseFunc
    - xmlTextReaderMoveToAttributeNo
    - xmlSAX2Comment
    - xmlNewCatalog
    - xmlParserInputBufferCreateMem
    - xmlNodeDumpOutput
    - xmlInitNodeInfoSeq
    - xmlSchemaGetParserErrors
    - xmlListPushBack
    - xmlThrDefSetStructuredErrorFunc
    - xmlHashSize
    - xmlXPathNodeEval
    - xmlPatternMaxDepth
    - xmlDictReference
    - xmlTextWriterEndAttribute
    - xmlXPathFreeCompExpr
    - xmlParserGetDirectory
    - xmlRelaxNGParse
    - xmlTextReaderClose
    - xmlTextWriterEndCDATA
    - xmlParseURI
    - xmlCtxtReadDoc
    - xmlC14NDocSaveTo
    - xmlACatalogResolveSystem
    - xmlBuildURISafe
    - xmlNewNsPropEatName
    - xmlXPathNewValueTree
    - xmlFreeDocElementContent
    - xmlNewDocNodeEatName
    - xmlThrDefKeepBlanksDefaultValue
    - htmlCreatePushParserCtxt
    - xmlCtxtGetSaxHandler
    - xmlSwitchToEncoding
    - xmlCatalogRemove
    - xmlTextWriterEndElement
    - xmlXPathDivValues
    - htmlInitAutoClose
    - xmlUnlinkNode
    - xmlDefaultSAXHandlerInit
    - xmlUTF8Strsub
    - xmlPatternMinDepth
    - xmlSetupParserForBuffer
    - xmlNodeSetBase
    - xmlCtxtGetOptions
    - xmlCtxtSetSaxHandler
    - xmlCtxtSetPrivate
    - xmlAttrSerializeTxtContent
    - xmlFreeRefTable
    - xmlLookupCharEncodingHandler
    - xmlFreeElementContent
    - xmlThrDefLineNumbersDefaultValue
    - xmlXPathCastNodeSetToBoolean
    - xmlFreeCatalog
    - xmlCatalogSetDebug
    - xmlNewElementContent
    - xmlTextWriterWriteVFormatDTDInternalEntity
    - xmlCtxtGetCatalogs
    - xmlGetCharEncodingHandler
    - xmlAutomataNewTransition
    - xmlSetDocCompressMode
    - xmlSchemaValPredefTypeNodeNoNorm
    - xmlTextWriterWriteAttribute
    - xmlThrDefTreeIndentString
    - htmlCtxtReadIO
    - xmlGetBufferAllocationScheme
    - xmlTextWriterStartDTDEntity
    - xmlSchemaFreeParserCtxt
    - xmlSchemaGetPredefinedType
    - xmlParserFindNodeInfo
    - htmlSetMetaEncoding
    - xmlSAXVersion
    - xmlBufShrink
    - htmlCtxtReadMemory
    - htmlEntityLookup
    - xmlFreeIDTable
    - xmlXPathCastBooleanToNumber
    - xmlStreamPushAttr
    - xmlXPathConvertString
    - xmlXPathStringEvalNumber
    - xmlSchemaIsValid
    - xmlDebugDumpEntities
    - xmlTextWriterStartCDATA
    - xmlSchemaValidateOneElement
    - xmlGetExternalEntityLoader
    - xmlIsMixedElement
    - xmlListAppend
    - xmlPatterncompile
    - xmlIsCombining
    - xmlSAXParseDoc
    - xmlCharEncFirstLine
    - xmlHashAdd
    - xmlC14NExecute
    - xmlFreePropList
    - xmlNewReference
    - xmlDumpNotationTable
    - xmlCtxtGetDict
    - xmlSAX2GetParameterEntity
    - xmlGetRefs
    - xmlDocDumpFormatMemory
    - __xmlParserInputBufferCreateFilename
    - xmlTextReaderConstLocalName
    - xmlNewAutomata
    - htmlNodeDumpOutput
    - xmlFreeURI
    - xmlValidateElementDecl
    - xmlOutputBufferWriteString
    - xmlTextWriterWriteComment
    - xmlOutputBufferCreateFile
    - xmlClearNodeInfoSeq
    - xmlXPathRegisteredNsCleanup
    - xmlNodeSetName
    - xmlXPathCompile
    - xmlNewTextChild
    - xmlReaderNewIO
    - xmlTextWriterWriteVFormatDTDElement
    - xmlCopyElementContent
    - xmlRegisterInputCallbacks
    - xmlKeepBlanksDefault
    - xmlGetCompressMode
    - xmlSchemaCleanupTypes
    - xmlHashUpdateEntry2
    - xmlSchemaSAXPlug
    - xmlCatalogResolve
    - xmlIsolat1ToUTF8
    - xmlCatalogResolvePublic
    - xmlNewParserCtxt
    - xmlFree
    - xmlSAX2GetPublicId
    - xmlXPathDistinctSorted
    - htmlGetMetaEncoding
    - xmlSAX2UnparsedEntityDecl
    - xmlCleanupMemory
    - xmlTextWriterWriteBase64
    - xmlXPathErr
    - xmlNewPI
    - xmlHashScanFull
    - xmlXPathCastStringToNumber
    - xmlTextWriterStartAttribute
    - xmlIsID
    - xmlParserInputBufferGrow
    - xmlCtxtGetPrivate
    - xmlStrncasecmp
    - xmlNewIOInputStream
    - xmlNodeIsText
    - xmlRegisterDefaultInputCallbacks
    - xmlCreateFileParserCtxt
    - xmlXPathIsNodeType
    - xmlSubstituteEntitiesDefault
    - xmlTextWriterStartDTD
    - xmlSchemaNewValidCtxt
    - xmlMemBlocks
    - xmlTextWriterStartElementNS
    - htmlEncodeEntities
    - xmlBufferAdd
    - xmlBufferCCat
    - xmlTextReaderMoveToAttribute
    - xmlNewValidCtxt
    - xmlValidatePushElement
    - xmlSAX2IgnorableWhitespace
    - xmlCopyProp
    - xmlResetLastError
    - xmlNewTextWriterMemory
    - xmlSaveToFd
    - xmlAddDocEntity
    - xmlSchemaGetCanonValueWhtsp
    - xmlXIncludeSetResourceLoader
    - xmlTextReaderConstEncoding
    - xmlValidateAttributeValue
    - xmlSaveFlush
    - xmlFreeParserCtxt
    - xmlParseDoc
    - xmlReaderForDoc
    - xmlGetUTF8Char
    - xmlAddEncodingAlias
    - xlinkIsLink
    - xmlGetCharEncodingName
    - xmlBufUse
    - xmlHashCopySafe
    - xmlTextWriterWriteFormatDTDInternalEntity
    - xmlFileClose
    - xmlGetParameterEntity
    - xmlTextReaderGetAttributeNs
    - xmlParseBalancedChunkMemory
    - xmlXPathNextPreceding
    - xmlXPathOrderDocElems
    - xmlTextWriterWriteDTD
    - xmlTextWriterWriteDTDExternalEntityContents
    - xmlListPopBack
    - xmlXPathNextDescendant
    - xmlStrsub
    - xmlSaveSetAttrEscape
    - xmlRegNewExecCtxt
    - xmlValidateNMToken
    - xmlDebugDumpNodeList
    - xmlDumpAttributeTable
    - xmlGetNodePath
    - xmlFreeNode
    - xmlHashAdd2
    - xmlTextReaderGetAttributeNo
    - xmlSetListDoc
    - xmlBufferWriteChar
    - xmlInitThreads
    - xmlFreeDoc
    - xmlRelaxNGValidatePushCData
    - xmlXIncludeGetLastError
    - xmlTextWriterWriteElement
    - xmlXPathNewParserContext
    - xmlSchemaFree
    - xmlXPathEqualValues
    - xmlSchematronNewParserCtxt
    - xmlTextReaderConstValue
    - xmlRelaxParserSetFlag
    - xmlNewInputFromUrl
    - xmlTextReaderGetRemainder
    - xmlXPathNodeTrailingSorted
    - xmlDumpNotationDecl
    - xmlGetPredefinedEntity
    - xmlTextWriterFlush
    - xmlSchemaGetValType
    - xmlMemShow
    - xmlDebugDumpOneNode
    - htmlReadFile
    - xmlSchemaNewMemParserCtxt
    - xmlSaveUri
    - xmlAutomataSetFinalState
    - xmlCopyElementTable
    - xmlCopyNamespace
    - xmlXPathRoundFunction
    - xmlParseEntityRef
    - xmlTextReaderMoveToNextAttribute
    - xmlXPathNodeSetContains
    - xmlSAXParseDTD
    - xmlInitMemory
    - xmlRelaxNGValidateFullElement
    - xmlGetDtdEntity
    - xmlReaderWalker
    - xmlClearParserCtxt
    - xmlPushInput
    - xmlBufferShrink
    - xmlSAX2HasExternalSubset
    - xmlCreateEnumeration
    - xmlSAX2NotationDecl
    - xmlAddEntity
    - xmlXPathFreeParserContext
    - xmlStringGetNodeList
    - xmlXPathCeilingFunction
    - htmlSaveFileFormat
    - xmlSplitQName3
    - htmlReadIO
    - xmlSaveClose
    - xmlBufGetNodeContent
    - xmlValidateName
    - xmlParseFile
    - xmlHashAddEntry3
    - xmlFreeAttributeTable
    - xmlInitParserCtxt
    - xmlRegexpCompile
    - xmlXIncludeProcessFlagsData
    - xmlHashQLookup3
    - xmlTextWriterWriteRawLen
    - xmlSaveFormatFile
    - xmlXIncludeProcess
    - xmlParserInputBufferCreateFilename
    - xmlXPathPositionFunction
    - xmlValidateElement
    - xmlPopOutputCallbacks
    - xmlValidateAttributeDecl
    - xmlCatalogSetDefaultPrefer
    - xmlParserInputShrink
    - xmlTextWriterWriteVFormatAttribute
    - xmlSAX2StartElementNs
    - xmlXIncludeProcessTree
    - xmlFreeEntity
    - xmlCleanupInputCallbacks
    - xmlTextWriterWriteCDATA
    - xmlUTF8Strlen
    - xmlCleanupGlobals
    - xmlFreeParserInputBuffer
    - xmlFreeNotationTable
    - xmlSAX2ResolveEntity
    - htmlDocContentDumpOutput
    - xmlNewSAXParserCtxt
    - htmlIsAutoClosed
    - xmlSchemaNewStringValue
    - xmlUTF8Charcmp
    - xmlIsIdeographic
    - xmlXIncludeProcessNode
    - htmlSaveFile
    - xmlTextReaderLocatorBaseURI
    - xmlXPathRegisterFuncNS
    - xmlReadIO
    - xmlStrcasestr
    - xmlSaveFile
    - xmlTextWriterWriteDTDInternalEntity
    - xmlAddID
    - xmlThrDefIndentTreeOutput
    - xmlTextWriterWriteFormatCDATA
    - xmlXPathNextNamespace
    - xmlListFront
    - xmlNodeSetContentLen
    - xmlBuildRelativeURISafe
    - xmlXPathFreeContext
    - xmlPatternCompileSafe
    - xmlValidatePopElement
    - xmlSearchNs
    - xmlAddDtdEntity
    - xmlValidateOneNamespace
    - htmlParseFile
    - xmlThrDefSetGenericErrorFunc
    - xmlTextWriterWriteString
    - xmlFreeProp
    - xmlNodeBufGetContent
    - xmlCtxtSetDict
    - xmlXPathNodeSetDel
    - xmlDOMWrapAdoptNode
    - xmlListReverse
    - xmlNewDocProp
    - xmlXPathIntersection
    - xmlNewMutex
    - xmlParserInputBufferCreateFilenameDefault
    - xmlNewDocRawNode
    - xmlNewInputFromFd
    - xmlSaveFormatFileTo
    - xmlGcMemGet
    - xmlXPathIsInf
    - xmlAddChildList
    - xmlSchemaNewParserCtxt
    - xmlOutputBufferCreateFilenameDefault
    - xmlParseURIRaw
    - htmlCtxtUseOptions
    - xmlBufferGrow
    - xmlRegExecErrInfo
    - xmlTextWriterWriteRaw
    - xmlDOMWrapReconcileNamespaces
    - xmlXPathParseNCName
    - xmlAutomataNewState
    - xmlDictGetUsage
    - xmlNextElementSibling
    - xmlXPathNextAttribute
    - xmlRMutexLock
    - xmlHashLookup
    - xmlXPathCastToString
    - xmlXPathIdFunction
    - xmlXPathPopNodeSet
    - xmlGetLineNo
    - xmlListSort
    - xmlTextWriterClose
    - xmlXPathWrapExternal
    - xmlTextWriterStartDTDAttlist
    - xmlHashUpdateEntry3
    - xmlNewCDataBlock
    - xmlRelaxNGCleanupTypes
    - xmlTextReaderSetup
    - xmlUnlockLibrary
    - xmlCharEncOutFunc
    - xmlTextReaderNodeType
    - htmlDefaultSAXHandlerInit
    - xmlRMutexUnlock
    - xmlTextWriterEndDocument
    - htmlSaveFileEnc
    - htmlHandleOmittedElem
    - xmlBuildRelativeURI
    - xmlValidateNotationUse
    - xmlXPathLastFunction
    - xmlValidateOneElement
    - xmlAutomataNewCounter
    - xmlSchemaGetFacetValueAsULong
    - xmlSchemaFreeFacet
    - xmlTextWriterWriteVFormatRaw
    - xmlLastElementChild
    - xmlXPathLangFunction
    - xmlListEnd
    - xmlBufferCreate
    - xmlFreeAutomata
    - xmlFileOpen
    - xmlTextWriterWriteVFormatString
    - xmlListInsert
    - xmlModuleSymbol
    - xmlThrDefDeregisterNodeDefault
    - xmlOutputBufferCreateFd
    - xmlIsDigit
    - xmlGetDocEntity
    - xmlValidatePushCData
    - xmlMemSize
    - xmlRelaxNGDump
    - xmlXPathNodeSetFreeNs
    - xmlConvertSGMLCatalog
    - xmlSwitchInputEncoding
    - xmlValidateNCName
    - htmlCreateFileParserCtxt
    - xmlAutomataNewNegTrans
    - xmlNewInputStream
    - xmlAddPrevSibling
    - xmlXPathWrapNodeSet
    - xmlXPathTrailingSorted
    - htmlCtxtParseDocument
    - xmlBufferFree
    - xmlSchemaNewQNameValue
    - xmlParserInputRead
    - xmlIOParseDTD
    - xmlGetNsProp
    - xmlCopyDocElementContent
    - xmlSchemaValidateSetFilename
    - xmlTextWriterEndDTD
    - xmlCtxtGetDeclaredEncoding
    - xmlFileRead
    - xmlXPathEvalPredicate
    - xmlLoadACatalog
    - xmlBufferEmpty
    - xmlXPathCtxtCompile
    - htmlParseEntityRef
    - xmlCreateCharEncodingHandler
    - xmlSchemaGetValidErrors
    - xmlUTF8Strpos
    - xmlModuleClose
    - xmlRegisterDefaultOutputCallbacks
    - xmlStrcmp
    - xmlTextReaderName
    - xmlStringCurrentChar
    - xmlAutomataNewTransition2
    - xmlCatalogSetDefaults
    - xmlCreateIOParserCtxt
    - xmlBufferAddHead
    - xmlXPathCastNodeToString
    - xmlXPathNewString
    - xmlRegexpIsDeterminist
    - xmlGetIntSubset
    - xmlListRemoveAll
    - xmlNodeAddContentLen
    - xmlFreePatternList
    - xmlSAX2EntityDecl
    - xmlTextReaderMoveToAttributeNs
    - xmlSchemaSetValidStructuredErrors
    - xmlXPathRegisteredVariablesCleanup
    - xmlValidateRoot
    - xmlXPathLeading
    - xmlRelaxNGNewValidCtxt
    - xmlHashCreate
    - xmlFileMatch
    - xmlLoadCatalogs
    - xmlSchemaIsBuiltInTypeFacet
    - xmlReconciliateNs
    - xmlCheckUTF8
    - xmlGetNsList
    - xmlNodeGetBaseSafe
    - xmlXPathCastToNumber
    - xmlNodeGetContent
    - xmlTextReaderConstPrefix
    - xmlOutputBufferGetContent
    - xmlCopyNotationTable
    - xmlNodeListGetString
    - xmlNodeSetSpacePreserve
    - xmlSchemaValPredefTypeNode
    - xmlHashAdd3
    - xmlSchemaCopyValue
    - xmlRelaxNGSetParserStructuredErrors
    - xmlGetNsListSafe
    - xmlUnsetNsProp
    - xmlDocFormatDump
    - xmlXPathTrueFunction
    - xmlSAX2HasInternalSubset
    - xmlDictSize
    - xmlDocSetRootElement
    - xmlDebugCheckDocument
    - xmlSchemaValidCtxtGetOptions
    - xmlListReverseSearch
    - xmlXPathTranslateFunction
    - xmlTextWriterWriteDTDEntity
    - xmlXPathStartsWithFunction
    - xmlCharEncNewCustomHandler
    - xmlTextWriterWriteVFormatDTDAttlist
    - xmlXPathLocalNameFunction
    - xmlSchemaValueGetAsString
    - xmlSchemaValidateListSimpleTypeFacet
    - xmlNewText
    - xmlStringDecodeEntities
    - xmlTextWriterSetIndent
    - xmlTextWriterWriteFormatAttribute
    - xmlCtxtResetPush
    - xmlOutputBufferCreateIO
    - xmlCheckHTTPInput
    - xmlSAXUserParseMemory
    - xmlPopInput
    - xmlSwitchEncoding
    - xmlSAX2Characters
    - xmlSchemaValidatePredefinedType
    - xmlSetBufferAllocationScheme
    - xmlHashAddEntry2
    - xmlReadMemory
    - xmlAutomataNewCountTrans2
    - xmlXPathNodeLeading
    - xmlUTF8Strsize
    - xmlXPathCastNodeSetToNumber
    - xmlNodeSetContent
    - xmlXPathRegisterVariableNS
    - xmlXPathNotFunction
    - xmlNewTextWriter
    - xmlCtxtValidateDtd
    - xmlIsLetter
    - xmlCatalogAddLocal
    - xmlCopyCharMultiByte
    - xmlXPathBooleanFunction
    - xmlHashRemoveEntry
    - xmlXIncludeProcessTreeFlagsData
    - htmlCreateMemoryParserCtxt
    - xmlURIUnescapeString
    - xmlParseExternalEntity
    - xmlListCopy
    - xmlOutputBufferGetSize
    - xmlXPathDebugDumpCompExpr
    - xmlXPathNodeLeadingSorted
    - xmlStrncmp
    - xmlPrintURI
    - xmlParseURISafe
    - xmlXPathFreeObject
    - xmlThrDefRegisterNodeDefault
    - htmlIsBooleanAttr
    - xmlParserInputBufferCreateIO
    - xmlFindCharEncodingHandler
    - xmlTextReaderGetErrorHandler
    - xmlListPopFront
    - xmlCatalogResolveSystem
    - xmlParseCatalogFile
    - xmlTextReaderIsEmptyElement
    - xmlNewDocNode
    - xmlTextReaderDepth
    - htmlParseChunk
    - xmlXPathVariableLookup
    - xmlXPathPopNumber
    - xmlStrlen
    - xmlSAX2SetDocumentLocator
    - xmlSaveToBuffer
    - xmlXPathStringFunction
    - xmlNewEntityInputStream
    - xmlXPathWrapCString
    - xmlXPathNewContext
    - xmlOutputBufferClose
    - xmlXPathNsLookup
    - xmlRecoverMemory
    - xmlTextWriterFullEndElement
    - xmlMutexUnlock
    - xmlC14NDocSave
    - xmlLoadExternalEntity
    - xmlResetError
    - xmlParserInputBufferRead
    - xmlSAX2ElementDecl
    - xmlNewCharEncodingHandler
    - htmlNodeDumpFile
    - xmlTextWriterWriteDTDAttlist
    - xmlCharStrndup
    - xmlXPathCastNodeToNumber
    - xmlXPathDifference
    - xmlGetDtdQElementDesc
    - xmlIsChar
    - xmlFreeInputStream
    - xmlXPathNewNodeSet
    - xmlTextWriterWriteVFormatElementNS
    - xmlTextWriterEndDTDAttlist
    - xmlParserPrintFileContext
    - xmlNodeListGetRawString
    - xmlCtxtParseDocument
    - xmlTextReaderHasValue
    - xmlXPathNodeSetSort
    - xmlReadFile
    - xlinkGetDefaultHandler
    - xmlOutputBufferWriteEscape
    - xmlGetDtdNotationDesc
    - xmlXPathNewCString
    - xmlTextReaderReadState
    - xmlXPathRegisterFuncLookup
    - xmlBufferWriteCHAR
    - xmlRegisterOutputCallbacks
    - xmlXPathFunctionLookup
    - xmlAutomataNewCountTrans
    - xmlAutomataGetInitState
    - xmlMemoryDump
    - xmlDocDump
    - xmlTextWriterSetQuoteChar
    - xmlTextWriterWriteDTDNotation
    - xmlParseCtxtExternalEntity
    - xmlNewDoc
    - xmlSAX2InitDefaultSAXHandler
    - xmlSchemaValueGetAsBoolean
    - xmlXPathRoot
    - xmlCopyChar
    - xmlCleanupThreads
    - xmlSearchNsByHref
    - htmlDocContentDumpFormatOutput
    - xmlTextWriterStartComment
    - xmlDOMWrapNewCtxt
    - xmlThrDefPedanticParserDefaultValue
    - xmlOutputBufferWrite
    - xmlOutputBufferFlush
    - xmlGetEncodingAlias
    - xmlCatalogIsEmpty
    - xmlBufferSetAllocationScheme
    - htmlElementAllowedHere
    - xmlReaderNewMemory
    - xmlReplaceNode
    - xmlCheckLanguageID
    - xmlXPathStringLengthFunction
    - xmlDictQLookup
    - xmlPatternStreamable
    - xmlSAXParseFileWithData
    - htmlIsScriptAttribute
    - xmlTextWriterWriteFormatDTDElement
    - xmlParseDTD
    - xmlFormatError
    - xmlHashRemoveEntry3
    - xmlTextWriterWriteVFormatCDATA
    - xmlCtxtValidateDocument
    - xmlAddIDSafe
    - xmlCopyNodeList
    - xmlSAXDefaultVersion
    - xmlXPathDebugDumpObject
    - xmlTextReaderPreservePattern
    - xmlTextWriterWriteBinHex
    - xmlTextReaderCurrentDoc
    - xmlRelaxNGFreeParserCtxt
    - xmlTextWriterWriteVFormatComment
    - xmlXPathIsNaN
    - xmlTextMerge
    - xmlListDelete
    - xmlCtxtSetResourceLoader
    - xmlCreateEntitiesTable
    - htmlElementStatusHere
    - htmlTagLookup
    - xmlXPathFreeNodeSet
    - xmlValidateDocument
    - htmlCtxtReadFd
    - xmlCtxtReadFd
    - xmlTextWriterWriteFormatElementNS
    - xmlSchemaSetParserErrors
    - xmlValidateNmtokensValue
    - xmlSplitQName2
    - xmlSchematronFree
    - xmlValidGetPotentialChildren
    - xmlDictOwns
    - xmlCtxtGetVersion
    - xmlStringLenGetNodeList
    - xmlXPathMultValues
    - xmlXPathNodeSetCreate
    - xmlRelaxNGNewDocParserCtxt
    - xmlInitCharEncodingHandlers
    - xmlTextReaderNamespaceUri
    - xmlThrDefGetWarningsDefaultValue
    - xmlRelaxNGFree
    - xmlXIncludeNewContext
    - xmlTextReaderSetSchema
    - xmlHashScan
    - xmlXPathCompiledEvalToBoolean
    - xmlNewDocTextLen
    - xmlSaveFinish
    - xmlInitializeCatalog
    - xmlSAX2ExternalSubset
    - xmlNormalizeWindowsPath
    - xmlCatalogDump
    - xmlHashScan3
    - xmlSprintfElementContent
    - xmlTextReaderGetLastError
    - xmlRelaxNGValidateDoc
    - xmlTextWriterEndComment
    - htmlCtxtReadDoc
    - xmlEncodeSpecialChars
    - xmlGetLastError
    - xmlIsExtender
    - xmlTextWriterWriteFormatDTDAttlist
    - xmlStreamPush
    - xmlModuleOpen
    - xmlFreePattern
    - xmlTextWriterWriteFormatRaw
    - htmlParseDoc
    - xmlSchemaValidateSetLocator
    - xmlSchematronParse
    - xmlNewRMutex
    - xmlSchemaSAXUnplug
    - xmlRecoverFile
    - xmlCatalogConvert
    - xmlTextReaderQuoteChar
    - xmlTextReaderPrefix
    - xmlListWalk
    - xmlDebugDumpDocumentHead
    - xmlInputSetEncodingHandler
    - xlinkSetDefaultDetect
    - xmlXPathCompareValues
    - xmlCopyDoc
    - xmlInitGlobals
    - xmlXPathNextDescendantOrSelf
    - xmlCopyNode
    - xmlMutexLock
    - xmlTextReaderRead
    - xmlCtxtSetCatalogs
    - xmlValidateDocumentFinal
    - xmlUnsetProp
    - xmlSaveSetEscape
    - xmlRelaxNGSetValidStructuredErrors
    - xmlXPathCmpNodes
    - xmlXPathNamespaceURIFunction
    - xmlAddRef
    - htmlAttrAllowed
    - xmlXPathPopString
    - xmlParserInputBufferCreateFd
    - xmlSAX2IsStandalone
    - xmlSchemaFreeValue
    - xmlRegisterCharEncodingHandler
    - xmlGetLastChild
    - xmlStrQEqual
    - xmlTextWriterWriteVFormatPI
    - xmlStrndup
    - xmlNewNodeEatName
    - xmlDumpEntitiesTable
    - xmlXPathRegisterFunc
    - xmlSetTreeDoc
    - xmlFreeDtd
    - xmlXPathSubstringAfterFunction
    - xmlTextReaderRelaxNGValidateCtxt
    - xmlSAX2GetSystemId
    - xmlTextReaderSetResourceLoader
    - xmlChildElementCount
    - xmlACatalogAdd
    - xmlRelaxNGValidatePushElement
    - xmlGetDtdQAttrDesc
    - htmlReadMemory
    - xmlHashQLookup2
    - xmlCtxtUseOptions
    - htmlUTF8ToHtml
    - xmlStrcat
    - xmlDocDumpFormatMemoryEnc
    - htmlParseDocument
    - xmlXPathRegisterVariable
    - xmlXPathPopBoolean
    - xmlMemDisplay
    - xmlNewStringInputStream
    - xmlCtxtResetLastError
    - xmlAutomataNewOnceTrans2
    - xmlCtxtParseDtd
    - xmlGetDocCompressMode
    - xmlDictCleanup
    - xmlAutomataNewAllTrans
    - xmlACatalogRemove
    - xmlSchemaCompareValuesWhtsp
    - xmlFreeElementTable
    - xmlNewTextWriterFilename
    - xmlSchemaFreeValidCtxt
    - xmlSchemaDump
    - xmlCopyEntitiesTable
    - xmlDocDumpMemoryEnc
    - htmlParseElement
    - xmlMemFree
    - xmlXPathNodeSetAddUnique
    - xmlXPathModValues
    - xmlParseInNodeContext
    - xmlXIncludeProcessFlags
    - xmlThrDefLoadExtDtdDefaultValue
    - xmlXIncludeProcessTreeFlags
    - xmlSchemaNewFacet
    - xmlPedanticParserDefault
    - xmlDebugDumpAttrList
    - xmlTextReaderByteConsumed
    - xmlRegExecPushString
    - xmlXPathCountFunction
    - xmlNewInputFromFile
    - xmlHashAddEntry
    - xmlXPathCastNumberToString
    - xmlCopyDtd
    - xmlDictLookup
    - xmlCreateURLParserCtxt
    - xmlSchemaCheckFacet
    - xmlXPatherror
    - xmlXPathValuePush
    - htmlAutoCloseTag
    - xmlXPathFloorFunction
    - xmlSetProp
    - xmlListSize
    - xmlParserAddNodeInfo
    - xmlNewDtd
    - xmlCleanupParser
    - xmlXPathNewFloat
    - xmlTextWriterWriteDTDElement
    - xmlRelaxNGGetValidErrors
    - xmlCopyAttributeTable
    - xmlTextReaderPreserve
    - xmlStreamWantsAnyNode
    - xmlSaveToFilename
    - xmlNewNode
    - xmlIsBlankNode
    - xmlSchematronNewDocParserCtxt
    - xmlHashCopy
    - xmlElemDump
    - xmlNewTextWriterDoc
    - htmlSAXParseDoc
    - xmlSaveDoc
    - xmlSetNsProp
    - xmlThrDefSaveNoEmptyTags
    - xmlSAXParseMemoryWithData
    - xmlCtxtSetCharEncConvImpl
    - xmlTextReaderReadAttributeValue
    - xmlBufNodeDump
    - xmlSaveFileTo
    - xmlSetCompressMode
    - xmlCreateDocParserCtxt
    - xmlXPathNewNodeSetList
    - xmlDOMWrapRemoveNode
    - xmlTextReaderIsValid
    - xmlOpenCharEncodingHandler
    - xmlAutomataNewEpsilon
    - xmlCtxtSetMaxAmplification
    - xmlXPathNormalizeFunction
    - xmlXPathRegisterAllFunctions
    - xmlListMerge
    - xmlXPathNextSelf
    - xmlXPathObjectCopy
    - xmlRecoverDoc
    - htmlNodeDumpFormatOutput
    - xmlXPathSetErrorHandler
    - xmlCtxtPushInput
    - xmlXPathVariableLookupNS
    - xmlTextConcat
    - xmlValidateQName
    - xmlXPathPopExternal
    - xmlOutputBufferCreateBuffer
    - xmlXPathCastStringToBoolean
    - xmlXPathCastBooleanToString
    - xmlCtxtPopInput
    - xmlParseDocument
    - xmlListSearch
    - xmlNewEntity
    - xmlValidateDtdFinal
    - xmlNewDocElementContent
    - xmlCatalogAdd
    - xmlReaderNewWalker
    - xmlNodeAddContent
    - xmlXPathNodeSetRemove
    - xmlTextWriterWriteElementNS
    - xmlFreeRMutex
    - xmlCreatePushParserCtxt
    - xmlTextReaderGetParserLineNumber
    - xmlRelaxNGSetResourceLoader
    - xmlTextWriterWriteFormatElement
    - xmlBufferLength
    - xmlThrDefParserInputBufferCreateFilenameDefault
    - htmlNodeDumpFileFormat
    - xmlXPathContextSetCache
    - xmlDumpElementTable
    - xmlTextReaderRelaxNGValidate
    - xmlDebugDumpAttr
    - xmlTextReaderRelaxNGSetSchema
    - xmlSAX2InternalSubset
    - xmlSchemaValueGetNext
    - xmlNextChar
    - xmlTextReaderSchemaValidate
    - xmlTextReaderNextSibling
    - htmlParseCharRef
    - xmlXPathCastNumberToBoolean
    - xmlIsBlank
    - xmlInitParser
    - xmlListRemoveLast
    - xmlXPtrEval
    - xmlXPathNodeTrailing
    - xmlXPathEval
    - xmlXPathSubValues
    - xmlUTF8Size
    - xmlLockLibrary
    - xmlSAX2CDataBlock
    - xmlParserInputGrow
    - xmlTextReaderCurrentNode
    - xmlSetStructuredErrorFunc
    - xmlTextWriterWriteFormatDTD
    - xmlRemoveRef
    - xmlTextReaderConstNamespaceUri
    - xmlOutputBufferCreateFilename
    - xmlAutomataCompile
    - xmlGetProp
    - xmlCtxtGetLastError
    linkageType: ''
    returnType: int
    signature: 'int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:228,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xmllint.c:239,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 2
    argNames:
    - lint
    - path
    argTypes:
    - xmllintState*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 245
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 245
    functionName: parsePath
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    - xmlStrndup
    linkageType: ''
    returnType: void
    signature: 'static void parsePath(xmllintState *lint, const xmlChar *path) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:756,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 8
    argCount: 6
    argNames:
    - ctx
    - name
    - type
    - publicId
    - systemId
    - content
    argTypes:
    - void*
    - xmlChar*
    - int
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 758
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 758
    functionName: entityDeclDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void entityDeclDebug(void *ctx, const xmlChar *name, int type,
      const xmlChar *publicId, const xmlChar *systemId, xmlChar *content) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:822,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - name
    - publicId
    - systemId
    - notationName
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 825
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 825
    functionName: unparsedEntityDeclDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "static void unparsedEntityDeclDebug(void *ctx, const xmlChar *name,\t\t
      const xmlChar *publicId, const xmlChar *systemId,\t\t const xmlChar *notationName) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:869,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:877,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:874,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:872,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - name
    - atts
    argTypes:
    - void*
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 878
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 878
    functionName: startElementDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void startElementDebug(void *ctx, const xmlChar *name, const
      xmlChar **atts) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: warningDebug
      Src: /src/libxml2/xmllint.c:976,1
    - Dst: va_start
      Src: /src/libxml2/xmllint.c:984,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:985,1
    - Dst: va_end
      Src: /src/libxml2/xmllint.c:987,1
    - Dst: vfprintf
      Src: /src/libxml2/xmllint.c:986,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames:
    - 2,3
    argTypes: []
    constantsTouched: []
    func_position:
      end: 988
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 988
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - vfprintf
    - va_end
    - warningDebug
    - va_start
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void LIBXML_ATTR_FORMAT(2,3)warningDebug(void *ctx, const char
      *msg, ...) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDoc
      Src: /src/libxml2/xmllint.c:1713,1
    - Dst: xmlNodeSetContent
      Src: /src/libxml2/xmllint.c:1724,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/xmllint.c:1718,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/xmllint.c:1725,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xmllint.c:1720,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xmllint.c:1726,1
    - Dst: xmlDocSetRootElement
      Src: /src/libxml2/xmllint.c:1730,1
    - Dst: parseHtml
      Src: /src/libxml2/xmllint.c:1737,1
    - Dst: parseXml
      Src: /src/libxml2/xmllint.c:1742,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - lint
    - filename
    argTypes:
    - xmllintState*
    - char*
    constantsTouched: []
    func_position:
      end: 1758
      start: 1706
    functionDepth: 0
    functionLinenumber: 1706
    functionLinenumberEnd: 1758
    functionName: parseFile
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - xmlDocSetRootElement
    - xmlNodeSetContent
    - xmlFreeNode
    - parseHtml
    - parseXml
    - xmlNewDocNode
    - xmlNewDoc
    - xmlFreeDoc
    linkageType: ''
    returnType: xmlDocPtr
    signature: 'static xmlDocPtr parseFile(xmllintState *lint, const char *filename) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:771,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/xmllint.c:776,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:774,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 7
    argNames:
    - ctx
    - elem
    - name
    - type
    - def
    - defaultValue
    - tree
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - int
    - int
    - xmlChar*
    - xmlEnumerationPtr
    constantsTouched: []
    func_position:
      end: 777
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 777
    functionName: attributeDeclDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    - xmlFreeEnumeration
    linkageType: ''
    returnType: void
    signature: 'static void attributeDeclDebug(void *ctx, const xmlChar * elem, const
      xmlChar * name, int type, int def, const xmlChar * defaultValue, xmlEnumerationPtr
      tree) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:835,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlSAXLocatorPtr
    constantsTouched: []
    func_position:
      end: 836
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 836
    functionName: setDocumentLocatorDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void setDocumentLocatorDebug(void *ctx, xmlSAXLocatorPtr loc
      ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:888,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 889
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 889
    functionName: endElementDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void endElementDebug(void *ctx, const xmlChar *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1000,1
    - Dst: va_start
      Src: /src/libxml2/xmllint.c:999,1
    - Dst: vfprintf
      Src: /src/libxml2/xmllint.c:1001,1
    - Dst: va_end
      Src: /src/libxml2/xmllint.c:1002,1
    - Dst: errorDebug
      Src: /src/libxml2/xmllint.c:991,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames:
    - 2,3
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 1003
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - vfprintf
    - fprintf
    - va_end
    - va_start
    - errorDebug
    linkageType: ''
    returnType: void
    signature: 'static void LIBXML_ATTR_FORMAT(2,3)errorDebug(void *ctx, const char
      *msg, ...) '
  - BBCount: 91
    BranchProfiles: []
    Callsites:
    - Dst: xmlXIncludeProcessFlags
      Src: /src/libxml2/xmllint.c:1797,1
    - Dst: write
      Src: /src/libxml2/xmllint.c:1928,1
    - Dst: xmlSaveDoc
      Src: /src/libxml2/xmllint.c:1982,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xmllint.c:2115,1
    - Dst: xmlSchemaValidateDoc
      Src: /src/libxml2/xmllint.c:2188,1
    - Dst: parseFile
      Src: /src/libxml2/xmllint.c:1771,1
    - Dst: xmlCopyDoc
      Src: /src/libxml2/xmllint.c:1835,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1929,1
    - Dst: xmlSchematronNewValidCtxt
      Src: /src/libxml2/xmllint.c:2112,1
    - Dst: xmlSchemaNewValidCtxt
      Src: /src/libxml2/xmllint.c:2182,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xmllint.c:1847,1
    - Dst: xmlSchematronFreeValidCtxt
      Src: /src/libxml2/xmllint.c:2131,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:2144,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2162,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1915,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1943,1
    - Dst: xmlSaveSetIndentString
      Src: /src/libxml2/xmllint.c:1980,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:1802,1
    - Dst: xmlFree
      Src: /src/libxml2/xmllint.c:1931,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xmllint.c:2150,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/xmllint.c:1787,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xmllint.c:1838,1
    - Dst: xmlC14NDocDumpMemory
      Src: /src/libxml2/xmllint.c:1940,1
    - Dst: write
      Src: /src/libxml2/xmllint.c:1942,1
    - Dst: xmlFree
      Src: /src/libxml2/xmllint.c:1945,1
    - Dst: xmlParseDTD
      Src: /src/libxml2/xmllint.c:2030,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:2091,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:2103,1
    - Dst: xmlDebugDumpDocument
      Src: /src/libxml2/xmllint.c:2004,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:2216,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:1779,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:1849,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1874,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1983,1
    - Dst: xmlFreeValidCtxt
      Src: /src/libxml2/xmllint.c:2069,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2057,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2039,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:2133,1
    - Dst: walkDoc
      Src: /src/libxml2/xmllint.c:1888,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:2067,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xmllint.c:2218,1
    - Dst: xmlSaveToFd
      Src: /src/libxml2/xmllint.c:1972,1
    - Dst: xmlParseDTD
      Src: /src/libxml2/xmllint.c:2028,1
    - Dst: xmllintShell
      Src: /src/libxml2/xmllint.c:1814,1
    - Dst: doXPathQuery
      Src: /src/libxml2/xmllint.c:1821,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1879,1
    - Dst: fopen
      Src: /src/libxml2/xmllint.c:2001,1
    - Dst: xmlRelaxNGFreeValidCtxt
      Src: /src/libxml2/xmllint.c:2166,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2194,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1947,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2009,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2127,1
    - Dst: xmlRelaxNGNewValidCtxt
      Src: /src/libxml2/xmllint.c:2147,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xmllint.c:2185,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:2220,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:2053,1
    - Dst: xmlValidGetValidElements
      Src: /src/libxml2/xmllint.c:1870,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2036,1
    - Dst: xmlValidateDtd
      Src: /src/libxml2/xmllint.c:2055,1
    - Dst: xmlSaveToFilename
      Src: /src/libxml2/xmllint.c:1975,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2156,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:2168,1
    - Dst: xmlNewValidCtxt
      Src: /src/libxml2/xmllint.c:2075,1
    - Dst: xmlNewValidCtxt
      Src: /src/libxml2/xmllint.c:2045,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:1795,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:1833,1
    - Dst: xmlXPathOrderDocElems
      Src: /src/libxml2/xmllint.c:1820,1
    - Dst: xmlFreeValidCtxt
      Src: /src/libxml2/xmllint.c:2093,1
    - Dst: fclose
      Src: /src/libxml2/xmllint.c:2007,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:1842,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1876,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:1905,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1933,1
    - Dst: xmlRelaxNGValidateDoc
      Src: /src/libxml2/xmllint.c:2153,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:2179,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2197,1
    - Dst: xmlGetIntSubset
      Src: /src/libxml2/xmllint.c:1785,1
    - Dst: xmlXPathOrderDocElems
      Src: /src/libxml2/xmllint.c:1812,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:1993,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:2032,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/xmllint.c:2070,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2121,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/xmllint.c:2201,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/xmllint.c:2048,1
    - Dst: xmlSetDocCompressMode
      Src: /src/libxml2/xmllint.c:1895,1
    - Dst: write
      Src: /src/libxml2/xmllint.c:1914,1
    - Dst: xmlFree
      Src: /src/libxml2/xmllint.c:1917,1
    - Dst: xmlValidateDocument
      Src: /src/libxml2/xmllint.c:2085,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:2025,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2124,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:1769,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1919,1
    - Dst: xmlSaveFile
      Src: /src/libxml2/xmllint.c:1954,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2159,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2191,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:2203,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2086,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2061,1
    - Dst: xmlSaveClose
      Src: /src/libxml2/xmllint.c:1987,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:1845,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1872,1
    - Dst: xmlC14NDocDumpMemory
      Src: /src/libxml2/xmllint.c:1912,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xmllint.c:2078,1
    - Dst: xmlC14NDocDumpMemory
      Src: /src/libxml2/xmllint.c:1926,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:2083,1
    - Dst: xmlSchematronValidateDoc
      Src: /src/libxml2/xmllint.c:2118,1
    CyclomaticComplexity: 128
    EdgeCount: 128
    ICount: 352
    argCount: 2
    argNames:
    - lint
    - filename
    argTypes:
    - xmllintState*
    - char*
    constantsTouched: []
    func_position:
      end: 2222
      start: 1760
    functionDepth: 0
    functionLinenumber: 1760
    functionLinenumberEnd: 2222
    functionName: parseAndPrintFile
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - parseFile
    - fclose
    - xmlParseDTD
    - xmlSchemaValidateDoc
    - xmlXPathOrderDocElems
    - xmlXIncludeProcessFlags
    - xmlDebugDumpDocument
    - xmlSaveSetIndentString
    - xmlFreeDoc
    - xmlSaveToFd
    - xmlGetIntSubset
    - xmlFreeDtd
    - xmlSchematronNewValidCtxt
    - xmlSchemaFreeValidCtxt
    - xmlSaveFile
    - walkDoc
    - fopen
    - doXPathQuery
    - xmlFree
    - xmlUnlinkNode
    - xmlRelaxNGFreeValidCtxt
    - xmlSchemaNewValidCtxt
    - xmlRelaxNGValidateDoc
    - startTimer
    - xmllintShell
    - write
    - xmlSetDocCompressMode
    - xmlSaveClose
    - xmlSchematronFreeValidCtxt
    - xmlSaveToFilename
    - xmlValidateDtd
    - xmlC14NDocDumpMemory
    - xmlNewValidCtxt
    - xmlValidGetValidElements
    - xmlRelaxNGNewValidCtxt
    - xmlValidateDocument
    - xmlSchematronValidateDoc
    - xmlCopyDoc
    - endTimer
    - xmlSaveDoc
    - fprintf
    - xmlFreeValidCtxt
    linkageType: ''
    returnType: void
    signature: 'static void parseAndPrintFile(xmllintState *lint, const char *filename) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/libxml2/xmllint.c:324,1
    - Dst: fread
      Src: /src/libxml2/xmllint.c:332,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/xmllint.c:335,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:326,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/xmllint.c:333,1
    - Dst: xmlCtxtGetDocument
      Src: /src/libxml2/xmllint.c:336,1
    - Dst: fclose
      Src: /src/libxml2/xmllint.c:339,1
    - Dst: xmlNewInputFromMemory
      Src: /src/libxml2/xmllint.c:349,1
    - Dst: xmlCtxtParseDocument
      Src: /src/libxml2/xmllint.c:356,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:361,1
    - Dst: xmlCtxtReadFd
      Src: /src/libxml2/xmllint.c:362,1
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/xmllint.c:365,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - lint
    - filename
    argTypes:
    - xmllintState*
    - char*
    constantsTouched: []
    func_position:
      end: 369
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 369
    functionName: parseXml
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - xmlCtxtReadFile
    - fclose
    - fopen
    - strcmp
    - xmlParseChunk
    - xmlCtxtGetDocument
    - xmlCtxtReadFd
    - fread
    - xmlNewInputFromMemory
    - fprintf
    - xmlCtxtParseDocument
    linkageType: ''
    returnType: xmlDocPtr
    signature: 'static xmlDocPtr parseXml(xmllintState *lint, const char *filename) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/libxml2/xmllint.c:386,1
    - Dst: fread
      Src: /src/libxml2/xmllint.c:394,1
    - Dst: htmlParseChunk
      Src: /src/libxml2/xmllint.c:397,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:388,1
    - Dst: htmlParseChunk
      Src: /src/libxml2/xmllint.c:395,1
    - Dst: xmlCtxtGetDocument
      Src: /src/libxml2/xmllint.c:398,1
    - Dst: fclose
      Src: /src/libxml2/xmllint.c:401,1
    - Dst: xmlNewInputFromMemory
      Src: /src/libxml2/xmllint.c:411,1
    - Dst: htmlCtxtParseDocument
      Src: /src/libxml2/xmllint.c:418,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:423,1
    - Dst: htmlCtxtReadFd
      Src: /src/libxml2/xmllint.c:424,1
    - Dst: htmlCtxtReadFile
      Src: /src/libxml2/xmllint.c:427,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - lint
    - filename
    argTypes:
    - xmllintState*
    - char*
    constantsTouched: []
    func_position:
      end: 430
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 430
    functionName: parseHtml
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - htmlParseChunk
    - fclose
    - fopen
    - htmlCtxtReadFd
    - strcmp
    - xmlCtxtGetDocument
    - fread
    - htmlCtxtParseDocument
    - xmlNewInputFromMemory
    - fprintf
    - htmlCtxtReadFile
    linkageType: ''
    returnType: xmlDocPtr
    signature: 'static xmlDocPtr parseHtml(xmllintState *lint, const char *filename) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:681,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:683,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:689,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:687,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:685,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - name
    - ExternalID
    - SystemID
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 690
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 690
    functionName: externalSubsetDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "static void externalSubsetDebug(void *ctx, const xmlChar *name,\t
      const xmlChar *ExternalID, const xmlChar *SystemID) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:905,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 906
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 906
    functionName: charactersDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void charactersDebug(void *ctx, const xmlChar *ch, int len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fatalErrorDebug
      Src: /src/libxml2/xmllint.c:1006,1
    - Dst: va_end
      Src: /src/libxml2/xmllint.c:1017,1
    - Dst: va_start
      Src: /src/libxml2/xmllint.c:1014,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1015,1
    - Dst: vfprintf
      Src: /src/libxml2/xmllint.c:1016,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames:
    - 2,3
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1018
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fatalErrorDebug
    - vfprintf
    - va_end
    - va_start
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void LIBXML_ATTR_FORMAT(2,3)fatalErrorDebug(void *ctx, const
      char *msg, ...) '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2239,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2240,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2243,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2244,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2247,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2249,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2250,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2254,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2255,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2257,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2258,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2257,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2258,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2259,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2235,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2237,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2240,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2241,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2244,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2245,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2248,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2250,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2251,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2254,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2255,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2256,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2256,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2231,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2233,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2234,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2235,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2236,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2238,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2237,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2241,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2242,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2245,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2252,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2253,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2246,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2260,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2253,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2232,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2233,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2236,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2239,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2238,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2242,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2243,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2246,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2247,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2248,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2259,1
    - Dst: xmlHasFeature
      Src: /src/libxml2/xmllint.c:2249,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 55
    argCount: 2
    argNames:
    - errStream
    - name
    argTypes:
    - FILE*
    - char*
    constantsTouched: []
    func_position:
      end: 2261
      start: 2230
    functionDepth: 0
    functionLinenumber: 2230
    functionLinenumberEnd: 2261
    functionName: showVersion
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - xmlHasFeature
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void showVersion(FILE *errStream, const char *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libxml2/xmllint.c:2448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - lint
    argTypes:
    - xmllintState*
    constantsTouched: []
    func_position:
      end: 2456
      start: 2446
    functionDepth: 0
    functionLinenumber: 2446
    functionLinenumberEnd: 2456
    functionName: xmllintInit
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: 'static void xmllintInit(xmllintState *lint) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2460,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - errStream
    - opt
    - nosupp
    argTypes:
    - FILE*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2461
      start: 2458
    functionDepth: 0
    functionLinenumber: 2458
    functionLinenumberEnd: 2461
    functionName: xmllintOptWarnNoSupport
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmllintOptWarnNoSupport(FILE *errStream, const char *opt,
      const char *nosupp) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:703,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:711,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:709,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:707,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:705,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - publicId
    - systemId
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 713
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 713
    functionName: resolveEntityDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: xmlParserInputPtr
    signature: 'static xmlParserInputPtr resolveEntityDebug(void *ctx, const xmlChar
      *publicId, const xmlChar *systemId) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:916,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 917
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 917
    functionName: referenceDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void referenceDebug(void *ctx, const xmlChar *name) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:1179,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/xmllint.c:1191,1
    - Dst: xmlParserInputBufferCreateFd
      Src: /src/libxml2/xmllint.c:1180,1
    - Dst: xmlParserInputBufferCreateFilename
      Src: /src/libxml2/xmllint.c:1183,1
    - Dst: xmlSchemaNewValidCtxt
      Src: /src/libxml2/xmllint.c:1188,1
    - Dst: xmlSchemaValidateSetFilename
      Src: /src/libxml2/xmllint.c:1194,1
    - Dst: xmlSchemaValidateStream
      Src: /src/libxml2/xmllint.c:1196,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1200,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1203,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1206,1
    - Dst: parseHtml
      Src: /src/libxml2/xmllint.c:1216,1
    - Dst: parseXml
      Src: /src/libxml2/xmllint.c:1220,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/xmllint.c:1211,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - lint
    - filename
    argTypes:
    - xmllintState*
    - char*
    constantsTouched: []
    func_position:
      end: 1222
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1222
    functionName: testSAX
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - xmlParserInputBufferCreateFilename
    - xmlSchemaFreeValidCtxt
    - xmlSchemaNewValidCtxt
    - xmlParserInputBufferCreateFd
    - strcmp
    - parseHtml
    - parseXml
    - xmlFreeParserInputBuffer
    - xmlSchemaValidateSetFilename
    - xmlSchemaValidateStream
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void testSAX(xmllintState *lint, const char *filename) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2268,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2271,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2272,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2273,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2274,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2275,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2276,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2277,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2278,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2305,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2319,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2338,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2345,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2365,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2354,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2357,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2327,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2318,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2302,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2307,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2308,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2309,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2310,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2311,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2312,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2314,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2326,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2325,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2344,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2370,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2332,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2333,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2366,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2330,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2317,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2264,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2284,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2280,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2279,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2282,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2281,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2290,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2296,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2298,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2315,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2336,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2350,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2322,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2368,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2316,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2372,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2363,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2266,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2270,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2285,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2286,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2287,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2288,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2291,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2292,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2293,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2295,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2320,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2334,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2342,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2360,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2347,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2348,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2340,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 71
    argCount: 2
    argNames:
    - f
    - name
    argTypes:
    - FILE*
    - char*
    constantsTouched: []
    func_position:
      end: 2373
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2373
    functionName: usage
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void usage(FILE *f, const char *name) '
  - BBCount: 115
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2513,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2561,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2571,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2575,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2639,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2701,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2751,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2764,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2779,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2820,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2893,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2699,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2869,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2579,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2500,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2557,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2643,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2655,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2678,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2692,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2698,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2717,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2744,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2843,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2623,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2492,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2503,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2582,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2652,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2721,1
    - Dst: usage
      Src: /src/libxml2/xmllint.c:2780,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2814,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2839,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2907,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2735,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2905,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2542,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2603,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2519,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2538,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2635,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2767,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2771,1
    - Dst: parseInteger
      Src: /src/libxml2/xmllint.c:2774,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2800,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2512,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2522,1
    - Dst: showVersion
      Src: /src/libxml2/xmllint.c:2529,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2638,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2750,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2796,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2851,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2903,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2829,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2885,1
    - Dst: usage
      Src: /src/libxml2/xmllint.c:2470,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2509,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2578,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2599,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2567,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2585,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2691,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2754,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2822,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2824,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2588,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2613,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2491,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2581,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2758,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2768,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2899,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2548,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2618,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2495,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2518,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2667,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2684,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2889,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2847,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2878,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2901,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2833,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2853,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2498,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2521,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2555,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2551,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2855,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2859,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2863,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2867,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2887,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2914,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2895,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2609,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2631,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2598,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2525,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2722,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2729,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2736,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2753,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2793,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2910,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2837,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2745,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2826,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2587,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2528,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2532,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2536,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2612,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2663,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2688,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2707,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2742,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2765,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2714,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2617,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2566,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2584,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2481,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2494,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2651,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2666,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2670,1
    - Dst: parseInteger
      Src: /src/libxml2/xmllint.c:2673,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2683,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2718,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2497,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2550,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2562,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2554,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2572,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2576,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2702,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2759,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2871,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2891,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2501,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2524,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2547,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2558,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2608,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2630,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2644,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2656,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2679,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2728,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2897,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2624,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2504,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2527,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2531,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2535,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2662,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2687,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2706,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2741,1
    - Dst: parsePath
      Src: /src/libxml2/xmllint.c:2756,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2810,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2539,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2543,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2604,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2636,1
    - Dst: parseInteger
      Src: /src/libxml2/xmllint.c:2487,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2480,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2484,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2510,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2650,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2713,1
    - Dst: xmllintOptWarnNoSupport
      Src: /src/libxml2/xmllint.c:2841,1
    CyclomaticComplexity: 187
    EdgeCount: 187
    ICount: 569
    argCount: 3
    argNames:
    - lint
    - argc
    - argv
    argTypes:
    - xmllintState*
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 2921
      start: 2463
    functionDepth: 0
    functionLinenumber: 2463
    functionLinenumberEnd: 2921
    functionName: xmllintParseOptions
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - usage
    - xmllintOptWarnNoSupport
    - parseInteger
    - strcmp
    - showVersion
    - fprintf
    - parsePath
    linkageType: ''
    returnType: int
    signature: 'static int xmllintParseOptions(xmllintState *lint, int argc, const
      char **argv) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xmllint.c:280,1
    - Dst: xmlNewInputFromUrl
      Src: /src/libxml2/xmllint.c:268,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmllint.c:281,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:271,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmllint.c:282,1
    - Dst: xmlNewInputFromUrl
      Src: /src/libxml2/xmllint.c:288,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:291,1
    - Dst: xmlFree
      Src: /src/libxml2/xmllint.c:294,1
    - Dst: xmlFree
      Src: /src/libxml2/xmllint.c:297,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 45
    argCount: 6
    argNames:
    - ctxt
    - URL
    - ID
    - type
    - flags
    - out
    argTypes:
    - void*
    - char*
    - char*
    - xmlResourceType
    - xmlParserInputFlags
    - xmlParserInputPtr*
    constantsTouched: []
    func_position:
      end: 302
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 302
    functionName: xmllintResourceLoader
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlNewInputFromUrl
    - xmlStrdup
    - fprintf
    - xmlStrcat
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'static xmlParserErrors xmllintResourceLoader(void *ctxt, const char
      *URL, const char *ID, xmlResourceType type, xmlParserInputFlags flags, xmlParserInputPtr
      *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:555,1
    - Dst: getTime
      Src: /src/libxml2/xmllint.c:560,1
    - Dst: va_start
      Src: /src/libxml2/xmllint.c:565,1
    - Dst: vfprintf
      Src: /src/libxml2/xmllint.c:566,1
    - Dst: va_end
      Src: /src/libxml2/xmllint.c:567,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames:
    - 2,3
    argTypes: []
    constantsTouched: []
    func_position:
      end: 570
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 570
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - vfprintf
    - getTime
    - va_end
    - va_start
    - endTimer
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void LIBXML_ATTR_FORMAT(2,3)endTimer(xmllintState *lint, const
      char *fmt, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMemFree
      Src: /src/libxml2/xmllint.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - mem
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 444
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 444
    functionName: myFreeFunc
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - xmlMemFree
    linkageType: ''
    returnType: void
    signature: 'static void myFreeFunc(void *mem) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMemSize
      Src: /src/libxml2/xmllint.c:469,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/xmllint.c:471,1
    - Dst: xmlMemRealloc
      Src: /src/libxml2/xmllint.c:480,1
    - Dst: abort
      Src: /src/libxml2/xmllint.c:473,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - mem
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 485
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 485
    functionName: myReallocFunc
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - xmlMemRealloc
    - abort
    - xmlMemUsed
    - xmlMemSize
    linkageType: ''
    returnType: void*
    signature: 'static void *myReallocFunc(void *mem, size_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ftime64
      Src: /src/libxml2/xmllint.c:528,1
    - Dst: gettimeofday
      Src: /src/libxml2/xmllint.c:534,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - time
    argTypes:
    - xmlTime*
    constantsTouched: []
    func_position:
      end: 538
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 538
    functionName: getTime
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - _ftime64
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: 'static void getTime(xmlTime *time) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:624,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 626
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 626
    functionName: isStandaloneDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int isStandaloneDebug(void *ctx) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:788,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - name
    - type
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - int
    - xmlElementContentPtr
    constantsTouched: []
    func_position:
      end: 790
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 790
    functionName: elementDeclDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "static void elementDeclDebug(void *ctx, const xmlChar *name, int type,\t
      xmlElementContentPtr content ATTRIBUTE_UNUSED) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1078,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1080,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1086,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1082,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1084,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1087,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1091,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1093,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1095,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1098,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1109,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1102,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1104,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1105,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 9
    argNames:
    - ctx
    - localname
    - prefix
    - URI
    - nb_namespaces
    - namespaces
    - nb_attributes
    - nb_defaulted
    - attributes
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - int
    - xmlChar**
    - int
    - int
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1110
      start: 1061
    functionDepth: 0
    functionLinenumber: 1061
    functionLinenumberEnd: 1110
    functionName: startElementNsDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "static void startElementNsDebug(void *ctx, const xmlChar *localname,
      const xmlChar *prefix, const xmlChar *URI,\t\t int nb_namespaces,\t\t const
      xmlChar **namespaces,\t\t int nb_attributes,\t\t int nb_defaulted,\t\t const
      xmlChar **attributes) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/libxml2/xmllint.c:2382,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2384,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2388,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 6
    argNames:
    - result
    - errStream
    - ctxt
    - str
    - min
    - max
    argTypes:
    - unsigned long*
    - FILE*
    - char*
    - char*
    - unsigned long
    - unsigned long
    constantsTouched: []
    func_position:
      end: 2394
      start: 2375
    functionDepth: 0
    functionLinenumber: 2375
    functionLinenumberEnd: 2394
    functionName: parseInteger
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - strtoul
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int parseInteger(unsigned long *result, FILE *errStream, const
      char *ctxt, const char *str, unsigned long min, unsigned long max) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMemUsed
      Src: /src/libxml2/xmllint.c:450,1
    - Dst: abort
      Src: /src/libxml2/xmllint.c:452,1
    - Dst: xmlMemMalloc
      Src: /src/libxml2/xmllint.c:459,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 464
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 464
    functionName: myMallocFunc
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - abort
    - xmlMemMalloc
    - xmlMemUsed
    linkageType: ''
    returnType: void*
    signature: 'static void *myMallocFunc(size_t size) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libxml2/xmllint.c:495,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/xmllint.c:496,1
    - Dst: memcpy
      Src: /src/libxml2/xmllint.c:511,1
    - Dst: xmlMemMalloc
      Src: /src/libxml2/xmllint.c:505,1
    - Dst: abort
      Src: /src/libxml2/xmllint.c:498,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 514
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 514
    functionName: myStrdupFunc
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - memcpy
    - xmlMemMalloc
    - xmlMemUsed
    - strlen
    - abort
    linkageType: ''
    returnType: char*
    signature: 'static char *myStrdupFunc(const char *str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:636,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 638
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 638
    functionName: hasInternalSubsetDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int hasInternalSubsetDebug(void *ctx) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:801,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - name
    - publicId
    - systemId
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 803
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 803
    functionName: notationDeclDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "static void notationDeclDebug(void *ctx, const xmlChar *name,\t const
      xmlChar *publicId, const xmlChar *systemId) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1123,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1131,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1127,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1125,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1129,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - localname
    - prefix
    - URI
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1132
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1132
    functionName: endElementNsDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void endElementNsDebug(void *ctx, const xmlChar *localname,
      const xmlChar *prefix, const xmlChar *URI) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2407,1
    - Dst: defined
      Src: /src/libxml2/xmllint.c:2429,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2438,1
    - Dst: LIBXML_XPATH_ENABLED
      Src: /src/libxml2/xmllint.c:2433,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2435,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2399,1
    - Dst: LIBXML_OUTPUT_ENABLED
      Src: /src/libxml2/xmllint.c:2402,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2403,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2404,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2414,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2408,1
    - Dst: LIBXML_SCHEMAS_ENABLED
      Src: /src/libxml2/xmllint.c:2421,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2430,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2423,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2434,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2400,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2405,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2418,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2412,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2415,1
    - Dst: LIBXML_RELAXNG_ENABLED
      Src: /src/libxml2/xmllint.c:2417,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2413,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2409,1
    - Dst: LIBXML_VALID_ENABLED
      Src: /src/libxml2/xmllint.c:2411,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2419,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2431,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2427,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2422,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2398,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2401,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2406,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2437,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:2426,1
    - Dst: LIBXML_SCHEMATRON_ENABLED
      Src: /src/libxml2/xmllint.c:2425,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 89
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2441
      start: 2396
    functionDepth: 0
    functionLinenumber: 2396
    functionLinenumberEnd: 2441
    functionName: skipArgs
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - LIBXML_XPATH_ENABLED
    - LIBXML_VALID_ENABLED
    - strcmp
    - LIBXML_SCHEMAS_ENABLED
    - LIBXML_SCHEMATRON_ENABLED
    - LIBXML_RELAXNG_ENABLED
    - LIBXML_OUTPUT_ENABLED
    - defined
    linkageType: ''
    returnType: int
    signature: 'static int skipArgs(const char *arg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:648,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 650
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 650
    functionName: hasExternalSubsetDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int hasExternalSubsetDebug(void *ctx) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:723,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 725
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 725
    functionName: getEntityDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: xmlEntityPtr
    signature: 'static xmlEntityPtr getEntityDebug(void *ctx, const xmlChar *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:846,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 847
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 847
    functionName: startDocumentDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void startDocumentDebug(void *ctx) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:932,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 933
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 933
    functionName: ignorableWhitespaceDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void ignorableWhitespaceDebug(void *ctx, const xmlChar *ch,
      int len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:960,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - value
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 962
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 962
    functionName: cdataBlockDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void cdataBlockDebug(void *ctx, const xmlChar *value, int len) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderNodeType
      Src: /src/libxml2/xmllint.c:1234,1
    - Dst: xmlTextReaderConstValue
      Src: /src/libxml2/xmllint.c:1242,1
    - Dst: xmlTextReaderIsEmptyElement
      Src: /src/libxml2/xmllint.c:1235,1
    - Dst: xmlGetNodePath
      Src: /src/libxml2/xmllint.c:1268,1
    - Dst: xmlGetNodePath
      Src: /src/libxml2/xmllint.c:1285,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1303,1
    - Dst: printf
      Src: /src/libxml2/xmllint.c:1245,1
    - Dst: xmlTextReaderHasValue
      Src: /src/libxml2/xmllint.c:1250,1
    - Dst: printf
      Src: /src/libxml2/xmllint.c:1252,1
    - Dst: printf
      Src: /src/libxml2/xmllint.c:1269,1
    - Dst: xmlTextReaderConstNamespaceUri
      Src: /src/libxml2/xmllint.c:1278,1
    - Dst: xmlStreamPush
      Src: /src/libxml2/xmllint.c:1276,1
    - Dst: xmlFreeStreamCtxt
      Src: /src/libxml2/xmllint.c:1304,1
    - Dst: xmlTextReaderConstName
      Src: /src/libxml2/xmllint.c:1238,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1280,1
    - Dst: xmlTextReaderCurrentNode
      Src: /src/libxml2/xmllint.c:1265,1
    - Dst: xmlTextReaderConstLocalName
      Src: /src/libxml2/xmllint.c:1277,1
    - Dst: xmlTextReaderCurrentNode
      Src: /src/libxml2/xmllint.c:1268,1
    - Dst: xmlTextReaderCurrentNode
      Src: /src/libxml2/xmllint.c:1286,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1288,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1294,1
    - Dst: xmlTextReaderConstName
      Src: /src/libxml2/xmllint.c:1295,1
    - Dst: xmlFree
      Src: /src/libxml2/xmllint.c:1310,1
    - Dst: xmlTextReaderDepth
      Src: /src/libxml2/xmllint.c:1246,1
    - Dst: printf
      Src: /src/libxml2/xmllint.c:1254,1
    - Dst: xmlPatternMatch
      Src: /src/libxml2/xmllint.c:1264,1
    - Dst: xmlFreeStreamCtxt
      Src: /src/libxml2/xmllint.c:1281,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1291,1
    - Dst: xmlStreamPop
      Src: /src/libxml2/xmllint.c:1301,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 2
    argNames:
    - lint
    - reader
    argTypes:
    - xmllintState*
    - xmlTextReaderPtr
    constantsTouched: []
    func_position:
      end: 1313
      start: 1230
    functionDepth: 0
    functionLinenumber: 1230
    functionLinenumberEnd: 1313
    functionName: processNode
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeStreamCtxt
    - xmlTextReaderConstNamespaceUri
    - xmlTextReaderHasValue
    - xmlTextReaderIsEmptyElement
    - xmlTextReaderConstValue
    - fprintf
    - xmlTextReaderCurrentNode
    - xmlStreamPop
    - xmlStreamPush
    - xmlTextReaderConstName
    - xmlTextReaderDepth
    - xmlGetNodePath
    - xmlTextReaderNodeType
    - printf
    - xmlPatternMatch
    - xmlTextReaderConstLocalName
    linkageType: ''
    returnType: void
    signature: 'static void processNode(xmllintState *lint, xmlTextReaderPtr reader) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1603,1
    - Dst: xmlNodeDumpOutput
      Src: /src/libxml2/xmllint.c:1614,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmllint.c:1615,1
    - Dst: xmlOutputBufferCreateFile
      Src: /src/libxml2/xmllint.c:1607,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/xmllint.c:1617,1
    - Dst: printf
      Src: /src/libxml2/xmllint.c:1619,1
    - Dst: printf
      Src: /src/libxml2/xmllint.c:1624,1
    - Dst: printf
      Src: /src/libxml2/xmllint.c:1625,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xmllint.c:1628,1
    - Dst: printf
      Src: /src/libxml2/xmllint.c:1630,1
    - Dst: printf
      Src: /src/libxml2/xmllint.c:1637,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1647,1
    - Dst: printf
      Src: /src/libxml2/xmllint.c:1639,1
    - Dst: printf
      Src: /src/libxml2/xmllint.c:1644,1
    - Dst: printf
      Src: /src/libxml2/xmllint.c:1633,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxml2/xmllint.c:1636,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1651,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 40
    argCount: 2
    argNames:
    - lint
    - cur
    argTypes:
    - xmllintState*
    - xmlXPathObjectPtr
    constantsTouched: []
    func_position:
      end: 1655
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1655
    functionName: doXPathDump
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - xmlNodeDumpOutput
    - xmlOutputBufferWrite
    - xmlOutputBufferClose
    - xmlXPathIsNaN
    - xmlXPathIsInf
    - printf
    - xmlOutputBufferCreateFile
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void doXPathDump(xmllintState *lint, xmlXPathObjectPtr cur) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:661,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:669,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:663,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:665,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:667,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - name
    - ExternalID
    - SystemID
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 670
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 670
    functionName: internalSubsetDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "static void internalSubsetDebug(void *ctx, const xmlChar *name,\t
      const xmlChar *ExternalID, const xmlChar *SystemID) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:735,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 737
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 737
    functionName: getParameterEntityDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: xmlEntityPtr
    signature: 'static xmlEntityPtr getParameterEntityDebug(void *ctx, const xmlChar
      *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:857,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 858
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 858
    functionName: endDocumentDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void endDocumentDebug(void *ctx) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:945,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:948,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - target
    - data
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 950
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 950
    functionName: processingInstructionDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void processingInstructionDebug(void *ctx, const xmlChar *target,
      const xmlChar *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:972,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 973
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 973
    functionName: commentDebug
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void commentDebug(void *ctx, const xmlChar *value) '
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: xmlReaderForFile
      Src: /src/libxml2/xmllint.c:1339,1
    - Dst: xmlReaderForFd
      Src: /src/libxml2/xmllint.c:1335,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1361,1
    - Dst: xmlTextReaderSetResourceLoader
      Src: /src/libxml2/xmllint.c:1370,1
    - Dst: xmlTextReaderSetMaxAmplification
      Src: /src/libxml2/xmllint.c:1372,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:1394,1
    - Dst: xmlTextReaderRelaxNGValidate
      Src: /src/libxml2/xmllint.c:1379,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1398,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:1413,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:1436,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1442,1
    - Dst: xmlTextReaderIsValid
      Src: /src/libxml2/xmllint.c:1441,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/xmllint.c:1476,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1478,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:1404,1
    - Dst: processNode
      Src: /src/libxml2/xmllint.c:1422,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmllint.c:1423,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:1428,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/xmllint.c:1475,1
    - Dst: xmlReaderForMemory
      Src: /src/libxml2/xmllint.c:1323,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:1334,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1348,1
    - Dst: xmlPatternGetStreamCtxt
      Src: /src/libxml2/xmllint.c:1357,1
    - Dst: xmlStreamPush
      Src: /src/libxml2/xmllint.c:1359,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:1377,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1381,1
    - Dst: xmlTextReaderSchemaValidate
      Src: /src/libxml2/xmllint.c:1396,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmllint.c:1415,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:1433,1
    - Dst: xmlTextReaderIsValid
      Src: /src/libxml2/xmllint.c:1461,1
    - Dst: xmlResetLastError
      Src: /src/libxml2/xmllint.c:1332,1
    - Dst: xmlGetLastError
      Src: /src/libxml2/xmllint.c:1343,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:1387,1
    - Dst: xmlFreeStreamCtxt
      Src: /src/libxml2/xmllint.c:1362,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1462,1
    - Dst: xmlFreeStreamCtxt
      Src: /src/libxml2/xmllint.c:1483,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1466,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 133
    argCount: 2
    argNames:
    - lint
    - filename
    argTypes:
    - xmllintState*
    - char*
    constantsTouched: []
    func_position:
      end: 1487
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1487
    functionName: streamFile
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - xmlResetLastError
    - processNode
    - xmlTextReaderRead
    - xmlPatternGetStreamCtxt
    - xmlReaderForFile
    - xmlFreeTextReader
    - xmlReaderForFd
    - xmlTextReaderSetResourceLoader
    - xmlTextReaderRelaxNGValidate
    - xmlFreeStreamCtxt
    - startTimer
    - xmlTextReaderIsValid
    - strcmp
    - xmlTextReaderSchemaValidate
    - xmlFreeParserInputBuffer
    - xmlGetLastError
    - xmlTextReaderSetMaxAmplification
    - xmlStreamPush
    - xmlReaderForMemory
    - endTimer
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void streamFile(xmllintState *lint, const char *filename) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/xmllint.c:1501,1
    - Dst: xmlPatternGetStreamCtxt
      Src: /src/libxml2/xmllint.c:1528,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1521,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1503,1
    - Dst: xmlPatternCompileSafe
      Src: /src/libxml2/xmllint.c:1515,1
    - Dst: xmlStreamPush
      Src: /src/libxml2/xmllint.c:1534,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1536,1
    - Dst: xmlReaderWalker
      Src: /src/libxml2/xmllint.c:1542,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:1545,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmllint.c:1547,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1566,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/xmllint.c:1560,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:1558,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmllint.c:1555,1
    - Dst: xmlFreePattern
      Src: /src/libxml2/xmllint.c:1573,1
    - Dst: processNode
      Src: /src/libxml2/xmllint.c:1554,1
    - Dst: xmlFreeStreamCtxt
      Src: /src/libxml2/xmllint.c:1577,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1562,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 77
    argCount: 2
    argNames:
    - lint
    - doc
    argTypes:
    - xmllintState*
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 1581
      start: 1489
    functionDepth: 0
    functionLinenumber: 1489
    functionLinenumberEnd: 1581
    functionName: walkDoc
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlFreeStreamCtxt
    - processNode
    - xmlTextReaderRead
    - xmlPatternGetStreamCtxt
    - startTimer
    - xmlFreePattern
    - xmlPatternCompileSafe
    - xmlStreamPush
    - xmlFreeTextReader
    - endTimer
    - fprintf
    - xmlReaderWalker
    linkageType: ''
    returnType: void
    signature: 'static void walkDoc(xmllintState *lint, xmlDocPtr doc) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNewContext
      Src: /src/libxml2/xmllint.c:1663,1
    - Dst: xmlXPathCtxtCompile
      Src: /src/libxml2/xmllint.c:1669,1
    - Dst: printf
      Src: /src/libxml2/xmllint.c:1679,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1671,1
    - Dst: xmlXPathDebugDumpCompExpr
      Src: /src/libxml2/xmllint.c:1678,1
    - Dst: xmlXPathCompiledEval
      Src: /src/libxml2/xmllint.c:1684,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:1686,1
    - Dst: doXPathDump
      Src: /src/libxml2/xmllint.c:1691,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xmllint.c:1694,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxml2/xmllint.c:1695,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/xmllint.c:1696,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - lint
    - doc
    - query
    argTypes:
    - xmllintState*
    - xmlDocPtr
    - char*
    constantsTouched: []
    func_position:
      end: 1697
      start: 1657
    functionDepth: 0
    functionLinenumber: 1657
    functionLinenumberEnd: 1697
    functionName: doXPathQuery
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - xmlXPathNewContext
    - fprintf
    - xmlXPathCtxtCompile
    - xmlXPathFreeContext
    - xmlXPathDebugDumpCompExpr
    - xmlXPathFreeObject
    - doXPathDump
    - xmlXPathCompiledEval
    - printf
    - xmlXPathFreeCompExpr
    linkageType: ''
    returnType: void
    signature: 'static void doXPathQuery(xmllintState *lint, xmlDocPtr doc, const
      char *query) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getTime
      Src: /src/libxml2/xmllint.c:546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - lint
    argTypes:
    - xmllintState*
    constantsTouched: []
    func_position:
      end: 547
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 547
    functionName: startTimer
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - getTime
    linkageType: ''
    returnType: void
    signature: 'static void startTimer(xmllintState *lint) '
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: _setmode
      Src: /src/libxml2/xmllint.c:2931,1
    - Dst: _fileno
      Src: /src/libxml2/xmllint.c:2931,1
    - Dst: xmllintParseOptions
      Src: /src/libxml2/xmllint.c:2941,1
    - Dst: xmlSchematronParse
      Src: /src/libxml2/xmllint.c:3001,1
    - Dst: xmlSchematronNewParserCtxt
      Src: /src/libxml2/xmllint.c:2996,1
    - Dst: xmlPatternCompileSafe
      Src: /src/libxml2/xmllint.c:3081,1
    - Dst: skipArgs
      Src: /src/libxml2/xmllint.c:3106,1
    - Dst: stat
      Src: /src/libxml2/xmllint.c:3113,1
    - Dst: mmap
      Src: /src/libxml2/xmllint.c:3122,1
    - Dst: close
      Src: /src/libxml2/xmllint.c:3125,1
    - Dst: htmlCtxtUseOptions
      Src: /src/libxml2/xmllint.c:3158,1
    - Dst: testSAX
      Src: /src/libxml2/xmllint.c:3214,1
    - Dst: abort
      Src: /src/libxml2/xmllint.c:3278,1
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/xmllint.c:3164,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:3068,1
    - Dst: xmlFreePattern
      Src: /src/libxml2/xmllint.c:3261,1
    - Dst: _setmode
      Src: /src/libxml2/xmllint.c:2932,1
    - Dst: _setmode
      Src: /src/libxml2/xmllint.c:2933,1
    - Dst: _fileno
      Src: /src/libxml2/xmllint.c:2932,1
    - Dst: _fileno
      Src: /src/libxml2/xmllint.c:2933,1
    - Dst: xmllintInit
      Src: /src/libxml2/xmllint.c:2937,1
    - Dst: getenv
      Src: /src/libxml2/xmllint.c:2976,1
    - Dst: xmlRelaxNGNewParserCtxt
      Src: /src/libxml2/xmllint.c:3028,1
    - Dst: xmlRelaxNGSetResourceLoader
      Src: /src/libxml2/xmllint.c:3033,1
    - Dst: xmlRelaxNGParse
      Src: /src/libxml2/xmllint.c:3034,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:3037,1
    - Dst: htmlNewParserCtxt
      Src: /src/libxml2/xmllint.c:3156,1
    - Dst: parseAndPrintFile
      Src: /src/libxml2/xmllint.c:3216,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:3267,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:3126,1
    - Dst: close
      Src: /src/libxml2/xmllint.c:3232,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:3270,1
    - Dst: xmlCtxtSetResourceLoader
      Src: /src/libxml2/xmllint.c:3195,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/xmllint.c:3220,1
    - Dst: getenv
      Src: /src/libxml2/xmllint.c:2964,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:2994,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:3010,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:3004,1
    - Dst: xmlRelaxNGFreeParserCtxt
      Src: /src/libxml2/xmllint.c:3035,1
    - Dst: xmlSchemaFreeParserCtxt
      Src: /src/libxml2/xmllint.c:3066,1
    - Dst: xmlSchemaParse
      Src: /src/libxml2/xmllint.c:3065,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:3087,1
    - Dst: strcmp
      Src: /src/libxml2/xmllint.c:3105,1
    - Dst: open
      Src: /src/libxml2/xmllint.c:3117,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:3224,1
    - Dst: streamFile
      Src: /src/libxml2/xmllint.c:3140,1
    - Dst: xmlCtxtReset
      Src: /src/libxml2/xmllint.c:3209,1
    - Dst: xmlSchemaNewParserCtxt
      Src: /src/libxml2/xmllint.c:3059,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:3135,1
    - Dst: parseAndPrintFile
      Src: /src/libxml2/xmllint.c:3238,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:3074,1
    - Dst: xmlSchematronFree
      Src: /src/libxml2/xmllint.c:3249,1
    - Dst: xmlCtxtResetPush
      Src: /src/libxml2/xmllint.c:3205,1
    - Dst: xmlMemSetup
      Src: /src/libxml2/xmllint.c:2954,1
    - Dst: xmlLoadCatalogs
      Src: /src/libxml2/xmllint.c:2966,1
    - Dst: xmlSchematronFreeParserCtxt
      Src: /src/libxml2/xmllint.c:3002,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:2968,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:3026,1
    - Dst: endTimer
      Src: /src/libxml2/xmllint.c:3043,1
    - Dst: startTimer
      Src: /src/libxml2/xmllint.c:3057,1
    - Dst: htmlCreatePushParserCtxt
      Src: /src/libxml2/xmllint.c:3150,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/xmllint.c:3171,1
    - Dst: xmlCtxtSetMaxAmplification
      Src: /src/libxml2/xmllint.c:3197,1
    - Dst: usage
      Src: /src/libxml2/xmllint.c:3241,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/xmllint.c:3257,1
    - Dst: munmap
      Src: /src/libxml2/xmllint.c:3231,1
    - Dst: xmlSchemaSetResourceLoader
      Src: /src/libxml2/xmllint.c:3064,1
    - Dst: xmlCleanupParser
      Src: /src/libxml2/xmllint.c:3264,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/xmllint.c:3169,1
    - Dst: xmlRelaxNGFree
      Src: /src/libxml2/xmllint.c:3253,1
    - Dst: fprintf
      Src: /src/libxml2/xmllint.c:3276,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 242
    argCount: 4
    argNames:
    - argc
    - argv
    - errStream
    - loader
    argTypes:
    - int
    - char**
    - FILE*
    - xmlResourceLoader
    constantsTouched: []
    func_position:
      end: 3283
      start: 2923
    functionDepth: 0
    functionLinenumber: 2923
    functionLinenumberEnd: 3283
    functionName: xmllintMain
    functionSourceFile: /src/libxml2/xmllint.c
    functionUses: []
    functionsReached:
    - xmlCtxtUseOptions
    - xmllintInit
    - _fileno
    - parseAndPrintFile
    - xmlFreePattern
    - xmlRelaxNGSetResourceLoader
    - xmlSchematronFree
    - xmlSchemaFreeParserCtxt
    - usage
    - xmllintParseOptions
    - xmlSchematronParse
    - stat
    - htmlNewParserCtxt
    - xmlSchemaSetResourceLoader
    - munmap
    - xmlSchemaFree
    - streamFile
    - xmlSchemaParse
    - xmlRelaxNGFreeParserCtxt
    - xmlRelaxNGParse
    - xmlFreeParserCtxt
    - mmap
    - xmlCleanupParser
    - endTimer
    - xmlNewParserCtxt
    - xmlSchematronNewParserCtxt
    - xmlCtxtResetPush
    - startTimer
    - strcmp
    - open
    - testSAX
    - xmlSchematronFreeParserCtxt
    - skipArgs
    - xmlCtxtSetResourceLoader
    - xmlRelaxNGNewParserCtxt
    - xmlCtxtReset
    - xmlSchemaNewParserCtxt
    - xmlMemSetup
    - abort
    - close
    - xmlCtxtSetMaxAmplification
    - htmlCtxtUseOptions
    - xmlRelaxNGFree
    - _setmode
    - xmlPatternCompileSafe
    - xmlCreatePushParserCtxt
    - xmlLoadCatalogs
    - getenv
    - fprintf
    - htmlCreatePushParserCtxt
    linkageType: ''
    returnType: int
    signature: 'int xmllintMain(int argc, const char **argv, FILE *errStream, xmlResourceLoader
      loader) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderNextTree
      Src: /src/libxml2/xmlreader.c:1600,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmlreader.c:1605,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmlreader.c:1609,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmlreader.c:1603,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmlreader.c:1607,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmlreader.c:1613,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 1614
      start: 1592
    functionDepth: 0
    functionLinenumber: 1592
    functionLinenumberEnd: 1614
    functionName: xmlTextReaderNext
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlTextReaderRead
    - xmlTextReaderNextTree
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderNext(xmlTextReader *reader) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderDoExpand
      Src: /src/libxml2/xmlreader.c:1579,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 1582
      start: 1571
    functionDepth: 0
    functionLinenumber: 1571
    functionLinenumberEnd: 1582
    functionName: xmlTextReaderExpand
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlTextReaderDoExpand
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlTextReaderExpand(xmlTextReader *reader) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufUse
      Src: /src/libxml2/xmlreader.c:801,1
    - Dst: xmlBufUse
      Src: /src/libxml2/xmlreader.c:826,1
    - Dst: xmlBufUse
      Src: /src/libxml2/xmlreader.c:808,1
    - Dst: xmlCtxtErrIO
      Src: /src/libxml2/xmlreader.c:813,1
    - Dst: xmlParserInputBufferRead
      Src: /src/libxml2/xmlreader.c:806,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/xmlreader.c:827,1
    - Dst: xmlBufContent
      Src: /src/libxml2/xmlreader.c:828,1
    - Dst: xmlBufUse
      Src: /src/libxml2/xmlreader.c:836,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/xmlreader.c:837,1
    - Dst: xmlBufContent
      Src: /src/libxml2/xmlreader.c:838,1
    - Dst: xmlBufShrink
      Src: /src/libxml2/xmlreader.c:853,1
    - Dst: xmlBufContent
      Src: /src/libxml2/xmlreader.c:868,1
    - Dst: xmlBufUse
      Src: /src/libxml2/xmlreader.c:870,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/xmlreader.c:867,1
    - Dst: xmlBufUse
      Src: /src/libxml2/xmlreader.c:866,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 82
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReaderPtr
    constantsTouched: []
    func_position:
      end: 886
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 886
    functionName: xmlTextReaderPushData
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlParseChunk
    - xmlBufShrink
    - xmlCtxtErrIO
    - xmlBufUse
    - xmlBufContent
    - xmlParserInputBufferRead
    linkageType: ''
    returnType: int
    signature: 'static int xmlTextReaderPushData(xmlTextReaderPtr reader) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetBase
      Src: /src/libxml2/xmlreader.c:4496,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlreader.c:4505,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - locator
    argTypes:
    - xmlTextReaderLocatorPtr
    constantsTouched: []
    func_position:
      end: 4513
      start: 4487
    functionDepth: 0
    functionLinenumber: 4487
    functionLinenumberEnd: 4513
    functionName: xmlTextReaderLocatorBaseURI
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlNodeGetBase
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlTextReaderLocatorBaseURI(xmlTextReaderLocatorPtr locator) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetLineNo
      Src: /src/libxml2/xmlreader.c:4461,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - locator
    argTypes:
    - xmlTextReaderLocatorPtr
    constantsTouched: []
    func_position:
      end: 4478
      start: 4452
    functionDepth: 0
    functionLinenumber: 4452
    functionLinenumberEnd: 4478
    functionName: xmlTextReaderLocatorLineNumber
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlGetLineNo
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/xmlreader.c:4594,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/xmlreader.c:4613,1
    - Dst: xmlSchemaSetValidStructuredErrors
      Src: /src/libxml2/xmlreader.c:4604,1
    - Dst: xmlRelaxNGSetValidStructuredErrors
      Src: /src/libxml2/xmlreader.c:4616,1
    - Dst: xmlRelaxNGSetValidStructuredErrors
      Src: /src/libxml2/xmlreader.c:4598,1
    - Dst: xmlSchemaSetValidStructuredErrors
      Src: /src/libxml2/xmlreader.c:4622,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - reader
    - f
    - arg
    argTypes:
    - xmlTextReader*
    - xmlStructuredErrorFunc
    - void*
    constantsTouched: []
    func_position:
      end: 4627
      start: 4583
    functionDepth: 0
    functionLinenumber: 4583
    functionLinenumberEnd: 4627
    functionName: xmlTextReaderSetStructuredErrorHandler
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlSchemaSetValidStructuredErrors
    - xmlRelaxNGSetValidStructuredErrors
    - xmlCtxtSetErrorHandler
    linkageType: ''
    returnType: void
    signature: 'void xmlTextReaderSetStructuredErrorHandler(xmlTextReader *reader,
      xmlStructuredErrorFunc f, void *arg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtSetResourceLoader
      Src: /src/libxml2/xmlreader.c:4664,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - reader
    - loader
    - data
    argTypes:
    - xmlTextReader*
    - xmlResourceLoader
    - void*
    constantsTouched: []
    func_position:
      end: 4665
      start: 4655
    functionDepth: 0
    functionLinenumber: 4655
    functionLinenumberEnd: 4665
    functionName: xmlTextReaderSetResourceLoader
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlCtxtSetResourceLoader
    linkageType: ''
    returnType: void
    signature: 'void xmlTextReaderSetResourceLoader(xmlTextReader *reader, xmlResourceLoader
      loader, void *data) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderErr
      Src: /src/libxml2/xmlreader.c:5251,1
    - Dst: xmlParserInputBufferCreateFilenameValue
      Src: /src/libxml2/xmlreader.c:5256,1
    - Dst: xmlParserInputBufferCreateUrl
      Src: /src/libxml2/xmlreader.c:5272,1
    - Dst: xmlTextReaderErr
      Src: /src/libxml2/xmlreader.c:5259,1
    - Dst: xmlTextReaderErr
      Src: /src/libxml2/xmlreader.c:5275,1
    - Dst: xmlTextReaderSetup
      Src: /src/libxml2/xmlreader.c:5280,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:5281,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - reader
    - filename
    - encoding
    - options
    argTypes:
    - xmlTextReader*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5286
      start: 5244
    functionDepth: 0
    functionLinenumber: 5244
    functionLinenumberEnd: 5286
    functionName: xmlReaderNewFile
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlParserInputBufferCreateUrl
    - xmlTextReaderSetup
    - xmlParserInputBufferCreateFilenameValue
    - xmlTextReaderErrMemory
    - xmlTextReaderErr
    linkageType: ''
    returnType: int
    signature: 'int xmlReaderNewFile(xmlTextReader *reader, const char *filename,
      const char *encoding, int options) '
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/xmlreader.c:4731,1
    - Dst: xmlBufUse
      Src: /src/libxml2/xmlreader.c:4777,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/xmlreader.c:4817,1
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/xmlreader.c:4789,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/xmlreader.c:4805,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlreader.c:4852,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/xmlreader.c:4715,1
    - Dst: xmlSAXVersion
      Src: /src/libxml2/xmlreader.c:4749,1
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/xmlreader.c:4782,1
    - Dst: xmlNewInputStream
      Src: /src/libxml2/xmlreader.c:4803,1
    - Dst: xmlAllocParserInputBuffer
      Src: /src/libxml2/xmlreader.c:4801,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/xmlreader.c:4818,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/xmlreader.c:4877,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlreader.c:4883,1
    - Dst: xmlBufCreate
      Src: /src/libxml2/xmlreader.c:4740,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlreader.c:4745,1
    - Dst: xmlParserInputBufferRead
      Src: /src/libxml2/xmlreader.c:4778,1
    - Dst: xmlBufContent
      Src: /src/libxml2/xmlreader.c:4783,1
    - Dst: xmlBufResetInput
      Src: /src/libxml2/xmlreader.c:4815,1
    - Dst: xmlCanonicPath
      Src: /src/libxml2/xmlreader.c:4813,1
    - Dst: xmlCtxtReset
      Src: /src/libxml2/xmlreader.c:4800,1
    - Dst: xmlDictFree
      Src: /src/libxml2/xmlreader.c:4827,1
    - Dst: xmlDictCreate
      Src: /src/libxml2/xmlreader.c:4835,1
    - Dst: xmlXIncludeFreeContext
      Src: /src/libxml2/xmlreader.c:4847,1
    - Dst: xmlBufUse
      Src: /src/libxml2/xmlreader.c:4781,1
    - Dst: xmlFreePattern
      Src: /src/libxml2/xmlreader.c:4868,1
    - Dst: xmlSwitchEncodingName
      Src: /src/libxml2/xmlreader.c:4879,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 155
    argCount: 5
    argNames:
    - reader
    - input
    - URL
    - encoding
    - options
    argTypes:
    - xmlTextReader*
    - xmlParserInputBuffer*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 4891
      start: 4708
    functionDepth: 0
    functionLinenumber: 4708
    functionLinenumberEnd: 4891
    functionName: xmlTextReaderSetup
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlCtxtUseOptions
    - xmlFreePattern
    - xmlCtxtPushInput
    - xmlXIncludeFreeContext
    - xmlDictCreate
    - xmlSAXVersion
    - xmlStrdup
    - xmlCanonicPath
    - xmlMalloc
    - xmlParserInputBufferRead
    - xmlDictFree
    - xmlBufCreate
    - xmlFreeParserInputBuffer
    - xmlCtxtReset
    - xmlAllocParserInputBuffer
    - xmlBufUse
    - xmlBufContent
    - xmlDictLookup
    - xmlBufResetInput
    - xmlSwitchEncodingName
    - xmlFreeInputStream
    - xmlCreatePushParserCtxt
    - xmlNewInputStream
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderSetup(xmlTextReader *reader, xmlParserInputBuffer
      *input, const char *URL, const char *encoding, int options) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/xmlreader.c:4537,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/xmlreader.c:4556,1
    - Dst: xmlSchemaSetValidStructuredErrors
      Src: /src/libxml2/xmlreader.c:4547,1
    - Dst: xmlRelaxNGSetValidStructuredErrors
      Src: /src/libxml2/xmlreader.c:4559,1
    - Dst: xmlRelaxNGSetValidStructuredErrors
      Src: /src/libxml2/xmlreader.c:4541,1
    - Dst: xmlSchemaSetValidStructuredErrors
      Src: /src/libxml2/xmlreader.c:4565,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - reader
    - f
    - arg
    argTypes:
    - xmlTextReader*
    - xmlTextReaderErrorFunc
    - void*
    constantsTouched: []
    func_position:
      end: 4570
      start: 4526
    functionDepth: 0
    functionLinenumber: 4526
    functionLinenumberEnd: 4570
    functionName: xmlTextReaderSetErrorHandler
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlSchemaSetValidStructuredErrors
    - xmlRelaxNGSetValidStructuredErrors
    - xmlCtxtSetErrorHandler
    linkageType: ''
    returnType: void
    signature: 'void xmlTextReaderSetErrorHandler(xmlTextReader *reader, xmlTextReaderErrorFunc
      f, void *arg) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 3
    argNames:
    - reader
    - f
    - arg
    argTypes:
    - xmlTextReader*
    - xmlTextReaderErrorFunc*
    - void**
    constantsTouched: []
    func_position:
      end: 4644
      start: 4636
    functionDepth: 0
    functionLinenumber: 4636
    functionLinenumberEnd: 4644
    functionName: xmlTextReaderGetErrorHandler
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlTextReaderGetErrorHandler(xmlTextReader *reader, xmlTextReaderErrorFunc
      * f, void **arg) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 4689
      start: 4673
    functionDepth: 0
    functionLinenumber: 4673
    functionLinenumberEnd: 4689
    functionName: xmlTextReaderIsValid
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderIsValid(xmlTextReader *reader) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrlen
      Src: /src/libxml2/xmlreader.c:5228,1
    - Dst: xmlReaderNewMemory
      Src: /src/libxml2/xmlreader.c:5229,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 5
    argNames:
    - reader
    - cur
    - URL
    - encoding
    - options
    argTypes:
    - xmlTextReader*
    - xmlChar*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5231
      start: 5216
    functionDepth: 0
    functionLinenumber: 5216
    functionLinenumberEnd: 5231
    functionName: xmlReaderNewDoc
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlReaderNewMemory
    - xmlStrlen
    linkageType: ''
    returnType: int
    signature: 'int xmlReaderNewDoc(xmlTextReader *reader, const xmlChar * cur, const
      char *URL, const char *encoding, int options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - fullname
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 678
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 678
    functionName: xmlTextReaderEndElement
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xmlTextReaderEndElement(void *ctx, const xmlChar *fullname) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:2270,1
    - Dst: xmlNodeListGetString
      Src: /src/libxml2/xmlreader.c:2284,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:2286,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 25
    argCount: 2
    argNames:
    - reader
    - 'no'
    argTypes:
    - xmlTextReader*
    - int
    constantsTouched: []
    func_position:
      end: 2288
      start: 2248
    functionDepth: 0
    functionLinenumber: 2248
    functionLinenumberEnd: 2288
    functionName: xmlTextReaderGetAttributeNo
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - readerStrdup
    - xmlTextReaderErrMemory
    - xmlNodeListGetString
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlTextReaderGetAttributeNo(xmlTextReader *reader, int no) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - fullname
    - atts
    argTypes:
    - void*
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 662
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 662
    functionName: xmlTextReaderStartElement
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static void xmlTextReaderStartElement(void *ctx, const xmlChar *fullname,\t
      const xmlChar **atts) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeNode
      Src: /src/libxml2/xmlreader.c:2209,1
    - Dst: xmlTextReaderFreeDoc
      Src: /src/libxml2/xmlreader.c:2228,1
    - Dst: xmlValidatePopElement
      Src: /src/libxml2/xmlreader.c:2218,1
    - Dst: xmlStopParser
      Src: /src/libxml2/xmlreader.c:2225,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:2220,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/xmlreader.c:2233,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 2237
      start: 2201
    functionDepth: 0
    functionLinenumber: 2201
    functionLinenumberEnd: 2237
    functionName: xmlTextReaderClose
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeNode
    - xmlFreeParserInputBuffer
    - xmlValidatePopElement
    - xmlStopParser
    - xmlTextReaderFreeDoc
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderClose(xmlTextReader *reader) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 4438
      start: 4425
    functionDepth: 0
    functionLinenumber: 4425
    functionLinenumberEnd: 4438
    functionName: xmlTextReaderStandalone
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderStandalone(xmlTextReader *reader) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 4919
      start: 4913
    functionDepth: 0
    functionLinenumber: 4913
    functionLinenumberEnd: 4919
    functionName: xmlTextReaderGetLastError
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlError*
    signature: 'const xmlError *xmlTextReaderGetLastError(xmlTextReader *reader) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderErr
      Src: /src/libxml2/xmlreader.c:5342,1
    - Dst: xmlTextReaderErr
      Src: /src/libxml2/xmlreader.c:5356,1
    - Dst: xmlInputFromFd
      Src: /src/libxml2/xmlreader.c:5354,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:5348,1
    - Dst: xmlAllocParserInputBuffer
      Src: /src/libxml2/xmlreader.c:5346,1
    - Dst: xmlTextReaderSetup
      Src: /src/libxml2/xmlreader.c:5361,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:5362,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 5
    argNames:
    - reader
    - fd
    - URL
    - encoding
    - options
    argTypes:
    - xmlTextReader*
    - int
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5367
      start: 5334
    functionDepth: 0
    functionLinenumber: 5334
    functionLinenumberEnd: 5367
    functionName: xmlReaderNewFd
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlTextReaderSetup
    - xmlInputFromFd
    - xmlTextReaderErrMemory
    - xmlTextReaderErr
    - xmlAllocParserInputBuffer
    linkageType: ''
    returnType: int
    signature: 'int xmlReaderNewFd(xmlTextReader *reader, int fd, const char *URL,
      const char *encoding, int options) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlreader.c:242,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - reader
    - string
    argTypes:
    - xmlTextReaderPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: constString
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - xmlTextReaderErrMemory
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *constString(xmlTextReaderPtr reader, const xmlChar
      *string) '
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/xmlreader.c:1288,1
    - Dst: xmlTextReaderValidatePop
      Src: /src/libxml2/xmlreader.c:1324,1
    - Dst: xmlTextReaderPushData
      Src: /src/libxml2/xmlreader.c:1289,1
    - Dst: xmlTextReaderValidatePop
      Src: /src/libxml2/xmlreader.c:1364,1
    - Dst: xmlTextReaderFreeNode
      Src: /src/libxml2/xmlreader.c:1398,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:1443,1
    - Dst: xmlTextReaderExpand
      Src: /src/libxml2/xmlreader.c:1459,1
    - Dst: xmlTextReaderPreserve
      Src: /src/libxml2/xmlreader.c:1531,1
    - Dst: xmlTextReaderPushData
      Src: /src/libxml2/xmlreader.c:1222,1
    - Dst: xmlTextReaderFreeNode
      Src: /src/libxml2/xmlreader.c:1348,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/xmlreader.c:1376,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/xmlreader.c:1411,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:1439,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/xmlreader.c:1397,1
    - Dst: xmlXIncludeNewContext
      Src: /src/libxml2/xmlreader.c:1441,1
    - Dst: xmlXIncludeSetFlags
      Src: /src/libxml2/xmlreader.c:1446,1
    - Dst: xmlXIncludeSetErrorHandler
      Src: /src/libxml2/xmlreader.c:1450,1
    - Dst: xmlXIncludeGetLastError
      Src: /src/libxml2/xmlreader.c:1462,1
    - Dst: xmlTextReaderReadTree
      Src: /src/libxml2/xmlreader.c:1212,1
    - Dst: LIBXML_XINCLUDE_ENABLED
      Src: /src/libxml2/xmlreader.c:1391,1
    - Dst: LIBXML_XINCLUDE_ENABLED
      Src: /src/libxml2/xmlreader.c:1404,1
    - Dst: xmlXIncludeSetResourceLoader
      Src: /src/libxml2/xmlreader.c:1453,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/xmlreader.c:1465,1
    - Dst: xmlTextReaderValidateEntity
      Src: /src/libxml2/xmlreader.c:1498,1
    - Dst: xmlTextReaderEntPop
      Src: /src/libxml2/xmlreader.c:1505,1
    - Dst: xmlTextReaderValidatePush
      Src: /src/libxml2/xmlreader.c:1516,1
    - Dst: xmlTextReaderValidateCData
      Src: /src/libxml2/xmlreader.c:1520,1
    - Dst: xmlStrlen
      Src: /src/libxml2/xmlreader.c:1521,1
    - Dst: LIBXML_XINCLUDE_ENABLED
      Src: /src/libxml2/xmlreader.c:1337,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/xmlreader.c:1347,1
    - Dst: xmlTextReaderFreeNode
      Src: /src/libxml2/xmlreader.c:1412,1
    - Dst: xmlTextReaderExpand
      Src: /src/libxml2/xmlreader.c:1425,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:1438,1
    - Dst: xmlXIncludeSetStreamingMode
      Src: /src/libxml2/xmlreader.c:1448,1
    - Dst: xmlXIncludeProcessNode
      Src: /src/libxml2/xmlreader.c:1461,1
    - Dst: xmlIsCatastrophicError
      Src: /src/libxml2/xmlreader.c:1464,1
    - Dst: xmlPatternMatch
      Src: /src/libxml2/xmlreader.c:1530,1
    - Dst: xmlSchemaIsValid
      Src: /src/libxml2/xmlreader.c:1541,1
    - Dst: xmlTextReaderEntPush
      Src: /src/libxml2/xmlreader.c:1490,1
    CyclomaticComplexity: 154
    EdgeCount: 154
    ICount: 352
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 1548
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1548
    functionName: xmlTextReaderRead
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlTextReaderEntPop
    - xmlTextReaderValidateEntity
    - xmlStrlen
    - xmlXIncludeGetLastError
    - xmlTextReaderValidatePop
    - xmlXIncludeSetStreamingMode
    - xmlXIncludeSetResourceLoader
    - xmlTextReaderFreeNode
    - xmlTextReaderExpand
    - xmlUnlinkNode
    - PARSER_STOPPED
    - xmlXIncludeSetErrorHandler
    - xmlIsCatastrophicError
    - xmlParseChunk
    - xmlTextReaderPreserve
    - xmlTextReaderValidatePush
    - LIBXML_XINCLUDE_ENABLED
    - xmlXIncludeSetFlags
    - xmlTextReaderReadTree
    - xmlPatternMatch
    - xmlXIncludeNewContext
    - xmlSchemaIsValid
    - xmlTextReaderValidateCData
    - xmlFatalErr
    - xmlStrEqual
    - xmlTextReaderErrMemory
    - xmlXIncludeProcessNode
    - xmlTextReaderEntPush
    - xmlTextReaderPushData
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderRead(xmlTextReader *reader) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 2917
      start: 2883
    functionDepth: 0
    functionLinenumber: 2883
    functionLinenumberEnd: 2917
    functionName: xmlTextReaderAttributeCount
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderAttributeCount(xmlTextReader *reader) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 10
    argCount: 2
    argNames:
    - reader
    - prop
    argTypes:
    - xmlTextReader*
    - int
    constantsTouched: []
    func_position:
      end: 3753
      start: 3729
    functionDepth: 0
    functionLinenumber: 3729
    functionLinenumberEnd: 3753
    functionName: xmlTextReaderGetParserProp
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderGetParserProp(xmlTextReader *reader, int prop) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserInputBufferCreateMem
      Src: /src/libxml2/xmlreader.c:5048,1
    - Dst: xmlTextReaderSetup
      Src: /src/libxml2/xmlreader.c:5058,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/xmlreader.c:5059,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/xmlreader.c:5054,1
    - Dst: xmlNewTextReader
      Src: /src/libxml2/xmlreader.c:5052,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 5
    argNames:
    - buffer
    - size
    - URL
    - encoding
    - options
    argTypes:
    - char*
    - int
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5063
      start: 5041
    functionDepth: 0
    functionLinenumber: 5041
    functionLinenumberEnd: 5063
    functionName: xmlReaderForMemory
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlNewTextReader
    - xmlParserInputBufferCreateMem
    - xmlTextReaderSetup
    - xmlFreeParserInputBuffer
    - xmlFreeTextReader
    linkageType: ''
    returnType: xmlTextReader*
    signature: 'xmlTextReader *xmlReaderForMemory(const char *buffer, int size, const
      char *URL, const char *encoding, int options) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictQLookup
      Src: /src/libxml2/xmlreader.c:257,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:259,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 3
    argNames:
    - reader
    - prefix
    - name
    argTypes:
    - xmlTextReaderPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 262
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 262
    functionName: constQString
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlTextReaderErrMemory
    - xmlDictQLookup
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *constQString(xmlTextReaderPtr reader, const
      xmlChar *prefix, const xmlChar *name) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 4390
      start: 4374
    functionDepth: 0
    functionLinenumber: 4374
    functionLinenumberEnd: 4390
    functionName: xmlTextReaderIsNamespaceDecl
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderIsNamespaceDecl(xmlTextReader *reader) '
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - reader
    - prop
    - value
    argTypes:
    - xmlTextReader*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3720
      start: 3667
    functionDepth: 0
    functionLinenumber: 3667
    functionLinenumberEnd: 3720
    functionName: xmlTextReaderSetParserProp
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderSetParserProp(xmlTextReader *reader, int prop, int
      value) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewTextReaderFilename
      Src: /src/libxml2/xmlreader.c:5020,1
    - Dst: xmlTextReaderSetup
      Src: /src/libxml2/xmlreader.c:5023,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/xmlreader.c:5024,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - filename
    - encoding
    - options
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5028
      start: 5015
    functionDepth: 0
    functionLinenumber: 5015
    functionLinenumberEnd: 5028
    functionName: xmlReaderForFile
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlNewTextReaderFilename
    - xmlFreeTextReader
    - xmlTextReaderSetup
    linkageType: ''
    returnType: xmlTextReader*
    signature: 'xmlTextReader *xmlReaderForFile(const char *filename, const char *encoding,
      int options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3786
      start: 3778
    functionDepth: 0
    functionLinenumber: 3778
    functionLinenumberEnd: 3786
    functionName: xmlTextReaderGetParserColumnNumber
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderGetParserColumnNumber(xmlTextReader *reader) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrlen
      Src: /src/libxml2/xmlreader.c:5000,1
    - Dst: xmlReaderForMemory
      Src: /src/libxml2/xmlreader.c:5002,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 4
    argNames:
    - cur
    - URL
    - encoding
    - options
    argTypes:
    - xmlChar*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5004
      start: 4992
    functionDepth: 0
    functionLinenumber: 4992
    functionLinenumberEnd: 5004
    functionName: xmlReaderForDoc
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlStrlen
    - xmlReaderForMemory
    linkageType: ''
    returnType: xmlTextReader*
    signature: 'xmlTextReader *xmlReaderForDoc(const xmlChar * cur, const char *URL,
      const char *encoding, int options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - localname
    - prefix
    - URI
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 741
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 741
    functionName: xmlTextReaderEndElementNs
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static void xmlTextReaderEndElementNs(void *ctx, const xmlChar * localname,
      const xmlChar * prefix,\t\t const xmlChar * URI) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3770
      start: 3762
    functionDepth: 0
    functionLinenumber: 3762
    functionLinenumberEnd: 3770
    functionName: xmlTextReaderGetParserLineNumber
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderGetParserLineNumber(xmlTextReader *reader) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderSchemaValidateInternal
      Src: /src/libxml2/xmlreader.c:4308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - reader
    - ctxt
    - options
    argTypes:
    - xmlTextReader*
    - xmlSchemaValidCtxt*
    - int
    constantsTouched: []
    func_position:
      end: 4309
      start: 4303
    functionDepth: 0
    functionLinenumber: 4303
    functionLinenumberEnd: 4309
    functionName: xmlTextReaderSchemaValidateCtxt
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlTextReaderSchemaValidateInternal
    linkageType: ''
    returnType: int
    signature: "int xmlTextReaderSchemaValidateCtxt(xmlTextReader *reader,\t\t\t\t
      xmlSchemaValidCtxt *ctxt,\t\t\t\t int options) "
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 18
    argCount: 9
    argNames:
    - ctx
    - localname
    - prefix
    - URI
    - nb_namespaces
    - namespaces
    - nb_attributes
    - nb_defaulted
    - attributes
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - int
    - xmlChar**
    - int
    - int
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 719
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 719
    functionName: xmlTextReaderStartElementNs
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static void xmlTextReaderStartElementNs(void *ctx, const xmlChar *localname,\t\t
      const xmlChar *prefix,\t\t const xmlChar *URI,\t\t int nb_namespaces,\t\t const
      xmlChar **namespaces,\t\t int nb_attributes,\t\t int nb_defaulted,\t\t const
      xmlChar **attributes) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/xmlreader.c:1172,1
    - Dst: xmlTextReaderPushData
      Src: /src/libxml2/xmlreader.c:1181,1
    - Dst: xmlTextReaderGetSuccessor
      Src: /src/libxml2/xmlreader.c:1175,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReaderPtr
    constantsTouched: []
    func_position:
      end: 1189
      start: 1165
    functionDepth: 0
    functionLinenumber: 1165
    functionLinenumberEnd: 1189
    functionName: xmlTextReaderDoExpand
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlTextReaderPushData
    - PARSER_STOPPED
    - xmlTextReaderGetSuccessor
    linkageType: ''
    returnType: int
    signature: 'static int xmlTextReaderDoExpand(xmlTextReaderPtr reader) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufCreate
      Src: /src/libxml2/xmlreader.c:3523,1
    - Dst: xmlBufContent
      Src: /src/libxml2/xmlreader.c:3529,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:3531,1
    - Dst: xmlBufGetNodeContent
      Src: /src/libxml2/xmlreader.c:3528,1
    - Dst: xmlBufEmpty
      Src: /src/libxml2/xmlreader.c:3527,1
    - Dst: xmlBufFree
      Src: /src/libxml2/xmlreader.c:3533,1
    - Dst: xmlBufCreate
      Src: /src/libxml2/xmlreader.c:3534,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 29
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3549
      start: 3498
    functionDepth: 0
    functionLinenumber: 3498
    functionLinenumberEnd: 3549
    functionName: xmlTextReaderConstValue
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlBufFree
    - xmlBufEmpty
    - xmlBufCreate
    - xmlBufGetNodeContent
    - xmlTextReaderErrMemory
    - xmlBufContent
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlTextReaderConstValue(xmlTextReader *reader) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3838
      start: 3814
    functionDepth: 0
    functionLinenumber: 3814
    functionLinenumberEnd: 3838
    functionName: xmlTextReaderPreserve
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlTextReaderPreserve(xmlTextReader *reader) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaSAXUnplug
      Src: /src/libxml2/xmlreader.c:4216,1
    - Dst: xmlSchemaNewParserCtxt
      Src: /src/libxml2/xmlreader.c:4238,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/xmlreader.c:4221,1
    - Dst: xmlSchemaSetParserStructuredErrors
      Src: /src/libxml2/xmlreader.c:4240,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/xmlreader.c:4226,1
    - Dst: xmlSchemaParse
      Src: /src/libxml2/xmlreader.c:4242,1
    - Dst: xmlSchemaFreeParserCtxt
      Src: /src/libxml2/xmlreader.c:4243,1
    - Dst: xmlSchemaNewValidCtxt
      Src: /src/libxml2/xmlreader.c:4246,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/xmlreader.c:4248,1
    - Dst: xmlSchemaSAXPlug
      Src: /src/libxml2/xmlreader.c:4252,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/xmlreader.c:4258,1
    - Dst: xmlSchemaSAXPlug
      Src: /src/libxml2/xmlreader.c:4266,1
    - Dst: xmlSchemaValidateSetLocator
      Src: /src/libxml2/xmlreader.c:4275,1
    - Dst: xmlSchemaSetValidStructuredErrors
      Src: /src/libxml2/xmlreader.c:4285,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/xmlreader.c:4256,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 4
    argNames:
    - reader
    - xsd
    - ctxt
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlTextReaderPtr
    - char*
    - xmlSchemaValidCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 4290
      start: 4197
    functionDepth: 0
    functionLinenumber: 4197
    functionLinenumberEnd: 4290
    functionName: xmlTextReaderSchemaValidateInternal
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlSchemaSetValidStructuredErrors
    - xmlSchemaFreeValidCtxt
    - xmlSchemaNewValidCtxt
    - xmlSchemaSAXPlug
    - xmlSchemaFree
    - xmlSchemaSAXUnplug
    - xmlSchemaSetParserStructuredErrors
    - xmlSchemaValidateSetLocator
    - xmlSchemaNewParserCtxt
    - xmlSchemaParse
    - xmlSchemaFreeParserCtxt
    linkageType: ''
    returnType: int
    signature: "static int xmlTextReaderSchemaValidateInternal(xmlTextReaderPtr reader,\t\t\t\t
      const char *xsd,\t\t\t\t xmlSchemaValidCtxtPtr ctxt,\t\t\t\t int options ATTRIBUTE_UNUSED) "
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3465,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3484,1
    - Dst: xmlNodeListGetString
      Src: /src/libxml2/xmlreader.c:3475,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:3477,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 17
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3489
      start: 3451
    functionDepth: 0
    functionLinenumber: 3451
    functionLinenumberEnd: 3489
    functionName: xmlTextReaderValue
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - readerStrdup
    - xmlTextReaderErrMemory
    - xmlNodeListGetString
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlTextReaderValue(xmlTextReader *reader) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderFreeProp
      Src: /src/libxml2/xmlreader.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - reader
    - cur
    argTypes:
    - xmlTextReaderPtr
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 330
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 330
    functionName: xmlTextReaderFreePropList
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlTextReaderFreeProp
    linkageType: ''
    returnType: void
    signature: 'static void xmlTextReaderFreePropList(xmlTextReaderPtr reader, xmlAttrPtr
      cur) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - userData
    - error
    argTypes:
    - void*
    - xmlError*
    constantsTouched: []
    func_position:
      end: 582
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 582
    functionName: xmlTextReaderStructuredRelay
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xmlTextReaderStructuredRelay(void *userData, const xmlError
      *error) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1154
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1154
    functionName: xmlTextReaderGetSuccessor
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlTextReaderGetSuccessor(xmlNodePtr cur) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlSplitQName4
      Src: /src/libxml2/xmlreader.c:2573,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:2601,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:2575,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:2582,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:2614,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:2617,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:2632,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:2633,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:2641,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:2646,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 59
    argCount: 2
    argNames:
    - reader
    - name
    argTypes:
    - xmlTextReader*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2648
      start: 2557
    functionDepth: 0
    functionLinenumber: 2557
    functionLinenumberEnd: 2648
    functionName: xmlTextReaderMoveToAttribute
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSplitQName4
    - xmlTextReaderErrMemory
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderMoveToAttribute(xmlTextReader *reader, const xmlChar
      *name) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3034,1
    - Dst: xmlTextReaderName
      Src: /src/libxml2/xmlreader.c:3040,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3036,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3041,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3042
      start: 3022
    functionDepth: 0
    functionLinenumber: 3022
    functionLinenumberEnd: 3042
    functionName: xmlTextReaderLocalName
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - readerStrdup
    - xmlTextReaderName
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlTextReaderLocalName(xmlTextReader *reader) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3804
      start: 3796
    functionDepth: 0
    functionLinenumber: 3796
    functionLinenumberEnd: 3804
    functionName: xmlTextReaderCurrentNode
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlTextReaderCurrentNode(xmlTextReader *reader) '
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 2
    argNames:
    - reader
    - 'no'
    argTypes:
    - xmlTextReader*
    - int
    constantsTouched: []
    func_position:
      end: 2547
      start: 2510
    functionDepth: 0
    functionLinenumber: 2510
    functionLinenumberEnd: 2547
    functionName: xmlTextReaderMoveToAttributeNo
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderMoveToAttributeNo(xmlTextReader *reader, int no) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3013
      start: 2994
    functionDepth: 0
    functionLinenumber: 2994
    functionLinenumberEnd: 3013
    functionName: xmlTextReaderIsEmptyElement
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderIsEmptyElement(xmlTextReader *reader) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlDeregisterNodeDefaultValue
      Src: /src/libxml2/xmlreader.c:287,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:311,1
    - Dst: DICT_FREE
      Src: /src/libxml2/xmlreader.c:302,1
    - Dst: xmlTextReaderFreeNodeList
      Src: /src/libxml2/xmlreader.c:290,1
    - Dst: DICT_FREE
      Src: /src/libxml2/xmlreader.c:298,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - reader
    - cur
    argTypes:
    - xmlTextReaderPtr
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 313
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 313
    functionName: xmlTextReaderFreeProp
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlTextReaderFreeNodeList
    - xmlDeregisterNodeDefaultValue
    - DICT_FREE
    linkageType: ''
    returnType: void
    signature: 'static void xmlTextReaderFreeProp(xmlTextReaderPtr reader, xmlAttrPtr
      cur) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlDeregisterNodeDefaultValue
      Src: /src/libxml2/xmlreader.c:514,1
    - Dst: xmlFreeIDTable
      Src: /src/libxml2/xmlreader.c:519,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/xmlreader.c:528,1
    - Dst: xmlFreeRefTable
      Src: /src/libxml2/xmlreader.c:521,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/xmlreader.c:530,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/xmlreader.c:533,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/xmlreader.c:535,1
    - Dst: xmlTextReaderFreeNodeList
      Src: /src/libxml2/xmlreader.c:538,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:540,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:541,1
    - Dst: xmlFreeNsList
      Src: /src/libxml2/xmlreader.c:543,1
    - Dst: xmlDictFree
      Src: /src/libxml2/xmlreader.c:545,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:547,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:542,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:544,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 2
    argNames:
    - reader
    - cur
    argTypes:
    - xmlTextReaderPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 548
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 548
    functionName: xmlTextReaderFreeDoc
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlFreeIDTable
    - xmlUnlinkNode
    - xmlFree
    - xmlFreeNsList
    - xmlTextReaderFreeNodeList
    - xmlDictFree
    - xmlDeregisterNodeDefaultValue
    - xmlFreeRefTable
    - xmlFreeDtd
    linkageType: ''
    returnType: void
    signature: 'static void xmlTextReaderFreeDoc(xmlTextReaderPtr reader, xmlDocPtr
      cur) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 2734
      start: 2716
    functionDepth: 0
    functionLinenumber: 2716
    functionLinenumberEnd: 2734
    functionName: xmlTextReaderMoveToFirstAttribute
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderMoveToFirstAttribute(xmlTextReader *reader) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3908
      start: 3897
    functionDepth: 0
    functionLinenumber: 3897
    functionLinenumberEnd: 3908
    functionName: xmlTextReaderCurrentDoc
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlTextReaderCurrentDoc(xmlTextReader *reader) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:2675,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:2682,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:2700,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:2698,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:2676,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 39
    argCount: 3
    argNames:
    - reader
    - localName
    - namespaceURI
    argTypes:
    - xmlTextReader*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2707
      start: 2659
    functionDepth: 0
    functionLinenumber: 2659
    functionLinenumberEnd: 2707
    functionName: xmlTextReaderMoveToAttributeNs
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: "int xmlTextReaderMoveToAttributeNs(xmlTextReader *reader,\tconst xmlChar
      *localName, const xmlChar *namespaceURI) "
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 41
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReaderPtr
    constantsTouched: []
    func_position:
      end: 1939
      start: 1878
    functionDepth: 0
    functionLinenumber: 1878
    functionLinenumberEnd: 1939
    functionName: xmlTextReaderReadTree
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlTextReaderReadTree(xmlTextReaderPtr reader) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 2793
      start: 2780
    functionDepth: 0
    functionLinenumber: 2780
    functionLinenumberEnd: 2793
    functionName: xmlTextReaderMoveToElement
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderMoveToElement(xmlTextReader *reader) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetBaseSafe
      Src: /src/libxml2/xmlreader.c:3355,1
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:3360,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:3361,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:3357,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3363
      start: 3347
    functionDepth: 0
    functionLinenumber: 3347
    functionLinenumberEnd: 3363
    functionName: xmlTextReaderConstBaseUri
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlNodeGetBaseSafe
    - xmlTextReaderErrMemory
    - constString
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlTextReaderConstBaseUri(xmlTextReader *reader) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeDtd
      Src: /src/libxml2/xmlreader.c:442,1
    - Dst: xmlTextReaderFreeNodeList
      Src: /src/libxml2/xmlreader.c:457,1
    - Dst: xmlFreeNs
      Src: /src/libxml2/xmlreader.c:446,1
    - Dst: xmlTextReaderFreeProp
      Src: /src/libxml2/xmlreader.c:450,1
    - Dst: xmlDeregisterNodeDefaultValue
      Src: /src/libxml2/xmlreader.c:462,1
    - Dst: xmlTextReaderFreePropList
      Src: /src/libxml2/xmlreader.c:468,1
    - Dst: DICT_FREE
      Src: /src/libxml2/xmlreader.c:474,1
    - Dst: xmlFreeNsList
      Src: /src/libxml2/xmlreader.c:480,1
    - Dst: DICT_FREE
      Src: /src/libxml2/xmlreader.c:487,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:497,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 69
    argCount: 2
    argNames:
    - reader
    - cur
    argTypes:
    - xmlTextReaderPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 499
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 499
    functionName: xmlTextReaderFreeNode
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeNsList
    - xmlTextReaderFreePropList
    - xmlTextReaderFreeNodeList
    - xmlDeregisterNodeDefaultValue
    - xmlFreeDtd
    - DICT_FREE
    - xmlTextReaderFreeProp
    - xmlFreeNs
    linkageType: ''
    returnType: void
    signature: 'static void xmlTextReaderFreeNode(xmlTextReaderPtr reader, xmlNodePtr
      cur) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmlreader.c:1843,1
    - Dst: xmlTextReaderNextTree
      Src: /src/libxml2/xmlreader.c:1862,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReaderPtr
    constantsTouched: []
    func_position:
      end: 1868
      start: 1809
    functionDepth: 0
    functionLinenumber: 1809
    functionLinenumberEnd: 1868
    functionName: xmlTextReaderNextTree
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlTextReaderNextTree
    - xmlTextReaderRead
    linkageType: ''
    returnType: int
    signature: 'static int xmlTextReaderNextTree(xmlTextReaderPtr reader) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSearchNsSafe
      Src: /src/libxml2/xmlreader.c:2491,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:2493,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:2498,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - reader
    - prefix
    argTypes:
    - xmlTextReader*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2499
      start: 2481
    functionDepth: 0
    functionLinenumber: 2481
    functionLinenumberEnd: 2499
    functionName: xmlTextReaderLookupNamespace
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - readerStrdup
    - xmlSearchNsSafe
    - xmlTextReaderErrMemory
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlTextReaderLookupNamespace(xmlTextReader *reader, const
      xmlChar *prefix) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderMoveToFirstAttribute
      Src: /src/libxml2/xmlreader.c:2752,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 2771
      start: 2743
    functionDepth: 0
    functionLinenumber: 2743
    functionLinenumberEnd: 2771
    functionName: xmlTextReaderMoveToNextAttribute
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlTextReaderMoveToFirstAttribute
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderMoveToNextAttribute(xmlTextReader *reader) '
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 7
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3442
      start: 3418
    functionDepth: 0
    functionLinenumber: 3418
    functionLinenumberEnd: 3442
    functionName: xmlTextReaderHasValue
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderHasValue(xmlTextReader *reader) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeNsList
      Src: /src/libxml2/xmlreader.c:352,1
    - Dst: xmlTextReaderFreePropList
      Src: /src/libxml2/xmlreader.c:382,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xmlreader.c:357,1
    - Dst: xmlDeregisterNodeDefaultValue
      Src: /src/libxml2/xmlreader.c:376,1
    - Dst: DICT_FREE
      Src: /src/libxml2/xmlreader.c:388,1
    - Dst: xmlFreeNsList
      Src: /src/libxml2/xmlreader.c:394,1
    - Dst: DICT_FREE
      Src: /src/libxml2/xmlreader.c:401,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:410,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 87
    argCount: 2
    argNames:
    - reader
    - cur
    argTypes:
    - xmlTextReaderPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 424
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 424
    functionName: xmlTextReaderFreeNodeList
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeNsList
    - xmlTextReaderFreePropList
    - xmlFreeDoc
    - DICT_FREE
    - xmlDeregisterNodeDefaultValue
    linkageType: ''
    returnType: void
    signature: 'static void xmlTextReaderFreeNodeList(xmlTextReaderPtr reader, xmlNodePtr
      cur) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlStopParser
      Src: /src/libxml2/xmlreader.c:2449,1
    - Dst: xmlTextReaderFreeDoc
      Src: /src/libxml2/xmlreader.c:2452,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 2470
      start: 2436
    functionDepth: 0
    functionLinenumber: 2436
    functionLinenumberEnd: 2470
    functionName: xmlTextReaderGetRemainder
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlStopParser
    - xmlTextReaderFreeDoc
    linkageType: ''
    returnType: xmlParserInputBuffer*
    signature: 'xmlParserInputBuffer *xmlTextReaderGetRemainder(xmlTextReader *reader) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetActualEncoding
      Src: /src/libxml2/xmlreader.c:2864,1
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:2868,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 2869
      start: 2856
    functionDepth: 0
    functionLinenumber: 2856
    functionLinenumberEnd: 2869
    functionName: xmlTextReaderConstEncoding
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlGetActualEncoding
    - constString
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlTextReaderConstEncoding(xmlTextReader *reader) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3410
      start: 3393
    functionDepth: 0
    functionLinenumber: 3393
    functionLinenumberEnd: 3410
    functionName: xmlTextReaderHasAttributes
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderHasAttributes(xmlTextReader *reader) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/xmlreader.c:5179,1
    - Dst: xmlDictCreate
      Src: /src/libxml2/xmlreader.c:5199,1
    - Dst: xmlCtxtReset
      Src: /src/libxml2/xmlreader.c:5182,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - reader
    - doc
    argTypes:
    - xmlTextReader*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 5202
      start: 5170
    functionDepth: 0
    functionLinenumber: 5170
    functionLinenumberEnd: 5202
    functionName: xmlReaderNewWalker
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlDictCreate
    - xmlFreeParserInputBuffer
    - xmlCtxtReset
    linkageType: ''
    returnType: int
    signature: 'int xmlReaderNewWalker(xmlTextReader *reader, xmlDoc *doc) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlreader.c:1992,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:2003,1
    - Dst: memset
      Src: /src/libxml2/xmlreader.c:1995,1
    - Dst: xmlBufCreate
      Src: /src/libxml2/xmlreader.c:2001,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlreader.c:2006,1
    - Dst: xmlBufFree
      Src: /src/libxml2/xmlreader.c:2008,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:2009,1
    - Dst: xmlSAXVersion
      Src: /src/libxml2/xmlreader.c:2012,1
    - Dst: xmlBufUse
      Src: /src/libxml2/xmlreader.c:2039,1
    - Dst: xmlParserInputBufferRead
      Src: /src/libxml2/xmlreader.c:2040,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:2056,1
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/xmlreader.c:2043,1
    - Dst: xmlBufContent
      Src: /src/libxml2/xmlreader.c:2044,1
    - Dst: xmlBufUse
      Src: /src/libxml2/xmlreader.c:2042,1
    - Dst: xmlBufFree
      Src: /src/libxml2/xmlreader.c:2055,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:2057,1
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/xmlreader.c:2049,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 74
    argCount: 2
    argNames:
    - input
    - URI
    argTypes:
    - xmlParserInputBuffer*
    - char*
    constantsTouched: []
    func_position:
      end: 2076
      start: 1986
    functionDepth: 0
    functionLinenumber: 1986
    functionLinenumberEnd: 2076
    functionName: xmlNewTextReader
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSAXVersion
    - memset
    - xmlBufFree
    - xmlBufCreate
    - xmlCreatePushParserCtxt
    - xmlBufContent
    - xmlBufUse
    - xmlMalloc
    - xmlParserInputBufferRead
    linkageType: ''
    returnType: xmlTextReader*
    signature: 'xmlTextReader *xmlNewTextReader(xmlParserInputBuffer *input, const
      char *URI) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderEntPush
      Src: /src/libxml2/xmlreader.c:1060,1
    - Dst: xmlTextReaderValidateCData
      Src: /src/libxml2/xmlreader.c:1082,1
    - Dst: xmlTextReaderValidatePop
      Src: /src/libxml2/xmlreader.c:1094,1
    - Dst: xmlTextReaderValidatePush
      Src: /src/libxml2/xmlreader.c:1078,1
    - Dst: xmlStrlen
      Src: /src/libxml2/xmlreader.c:1083,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/xmlreader.c:1109,1
    - Dst: xmlTextReaderFreeNode
      Src: /src/libxml2/xmlreader.c:1110,1
    - Dst: xmlTextReaderValidatePop
      Src: /src/libxml2/xmlreader.c:1116,1
    - Dst: xmlTextReaderEntPop
      Src: /src/libxml2/xmlreader.c:1121,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 74
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReaderPtr
    constantsTouched: []
    func_position:
      end: 1134
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1134
    functionName: xmlTextReaderValidateEntity
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlUnlinkNode
    - xmlTextReaderEntPop
    - xmlStrlen
    - xmlTextReaderValidateCData
    - xmlTextReaderValidatePush
    - xmlTextReaderFreeNode
    - xmlTextReaderEntPush
    - xmlTextReaderValidatePop
    linkageType: ''
    returnType: int
    signature: 'static int xmlTextReaderValidateEntity(xmlTextReaderPtr reader) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderNextTree
      Src: /src/libxml2/xmlreader.c:1963,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 1972
      start: 1950
    functionDepth: 0
    functionLinenumber: 1950
    functionLinenumberEnd: 1972
    functionName: xmlTextReaderNextSibling
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlTextReaderNextTree
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderNextSibling(xmlTextReader *reader) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDocText
      Src: /src/libxml2/xmlreader.c:2819,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:2822,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlreader.c:2833,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:2829,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:2835,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 2847
      start: 2803
    functionDepth: 0
    functionLinenumber: 2803
    functionLinenumberEnd: 2847
    functionName: xmlTextReaderReadAttributeValue
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlNewDocText
    - xmlStrdup
    - xmlFree
    - xmlTextReaderErrMemory
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderReadAttributeValue(xmlTextReader *reader) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3649
      start: 3644
    functionDepth: 0
    functionLinenumber: 3644
    functionLinenumberEnd: 3649
    functionName: xmlTextReaderNormalization
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderNormalization(xmlTextReader *reader) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserInputBufferCreateIO
      Src: /src/libxml2/xmlreader.c:5142,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/xmlreader.c:5151,1
    - Dst: xmlNewTextReader
      Src: /src/libxml2/xmlreader.c:5149,1
    - Dst: xmlTextReaderSetup
      Src: /src/libxml2/xmlreader.c:5155,1
    - Dst: ioclose
      Src: /src/libxml2/xmlreader.c:5146,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/xmlreader.c:5156,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 6
    argNames:
    - ioread
    - ioclose
    - ioctx
    - URL
    - encoding
    - options
    argTypes:
    - xmlInputReadCallback
    - xmlInputCloseCallback
    - void*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5160
      start: 5131
    functionDepth: 0
    functionLinenumber: 5131
    functionLinenumberEnd: 5160
    functionName: xmlReaderForIO
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlNewTextReader
    - xmlTextReaderSetup
    - xmlParserInputBufferCreateIO
    - xmlFreeParserInputBuffer
    - xmlFreeTextReader
    - ioclose
    linkageType: ''
    returnType: xmlTextReader*
    signature: 'xmlTextReader *xmlReaderForIO(xmlInputReadCallback ioread, xmlInputCloseCallback
      ioclose, void *ioctx, const char *URL, const char *encoding, int options) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGFree
      Src: /src/libxml2/xmlreader.c:3929,1
    - Dst: xmlRelaxNGFreeValidCtxt
      Src: /src/libxml2/xmlreader.c:3934,1
    - Dst: xmlRelaxNGFree
      Src: /src/libxml2/xmlreader.c:3943,1
    - Dst: xmlRelaxNGFreeValidCtxt
      Src: /src/libxml2/xmlreader.c:3948,1
    - Dst: xmlRelaxNGNewValidCtxt
      Src: /src/libxml2/xmlreader.c:3952,1
    - Dst: xmlRelaxNGSetValidStructuredErrors
      Src: /src/libxml2/xmlreader.c:3956,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 2
    argNames:
    - reader
    - schema
    argTypes:
    - xmlTextReader*
    - xmlRelaxNG*
    constantsTouched: []
    func_position:
      end: 3962
      start: 3923
    functionDepth: 0
    functionLinenumber: 3923
    functionLinenumberEnd: 3962
    functionName: xmlTextReaderRelaxNGSetSchema
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGFreeValidCtxt
    - xmlRelaxNGSetValidStructuredErrors
    - xmlRelaxNGNewValidCtxt
    - xmlRelaxNGFree
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderRelaxNGSetSchema(xmlTextReader *reader, xmlRelaxNG
      *schema) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGFreeValidCtxt
      Src: /src/libxml2/xmlreader.c:4129,1
    - Dst: xmlRelaxNGParse
      Src: /src/libxml2/xmlreader.c:4152,1
    - Dst: xmlRelaxNGNewParserCtxt
      Src: /src/libxml2/xmlreader.c:4148,1
    - Dst: xmlRelaxNGSetParserStructuredErrors
      Src: /src/libxml2/xmlreader.c:4150,1
    - Dst: xmlRelaxNGFree
      Src: /src/libxml2/xmlreader.c:4134,1
    - Dst: xmlRelaxNGFreeParserCtxt
      Src: /src/libxml2/xmlreader.c:4153,1
    - Dst: xmlRelaxNGNewValidCtxt
      Src: /src/libxml2/xmlreader.c:4157,1
    - Dst: xmlRelaxNGFree
      Src: /src/libxml2/xmlreader.c:4159,1
    - Dst: xmlRelaxNGSetValidStructuredErrors
      Src: /src/libxml2/xmlreader.c:4175,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 4
    argNames:
    - reader
    - rng
    - ctxt
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlTextReaderPtr
    - char*
    - xmlRelaxNGValidCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 4181
      start: 4109
    functionDepth: 0
    functionLinenumber: 4109
    functionLinenumberEnd: 4181
    functionName: xmlTextReaderRelaxNGValidateInternal
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGFreeValidCtxt
    - xmlRelaxNGFreeParserCtxt
    - xmlRelaxNGSetValidStructuredErrors
    - xmlRelaxNGNewValidCtxt
    - xmlRelaxNGSetParserStructuredErrors
    - xmlRelaxNGNewParserCtxt
    - xmlRelaxNGParse
    - xmlRelaxNGFree
    linkageType: ''
    returnType: int
    signature: "static int xmlTextReaderRelaxNGValidateInternal(xmlTextReaderPtr reader,\t\t\t\t
      const char *rng,\t\t\t\t xmlRelaxNGValidCtxtPtr ctxt,\t\t\t\t int options ATTRIBUTE_UNUSED) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3227,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3233,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3235
      start: 3214
    functionDepth: 0
    functionLinenumber: 3214
    functionLinenumberEnd: 3235
    functionName: xmlTextReaderPrefix
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - readerStrdup
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlTextReaderPrefix(xmlTextReader *reader) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetLang
      Src: /src/libxml2/xmlreader.c:3610,1
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:3613,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:3614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3616
      start: 3601
    functionDepth: 0
    functionLinenumber: 3601
    functionLinenumberEnd: 3616
    functionName: xmlTextReaderConstXmlLang
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlNodeGetLang
    - xmlFree
    - constString
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlTextReaderConstXmlLang(xmlTextReader *reader) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:3631,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 2
    argNames:
    - reader
    - str
    argTypes:
    - xmlTextReader*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3632
      start: 3627
    functionDepth: 0
    functionLinenumber: 3627
    functionLinenumberEnd: 3632
    functionName: xmlTextReaderConstString
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - constString
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlTextReaderConstString(xmlTextReader *reader, const
      xmlChar *str) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetLang
      Src: /src/libxml2/xmlreader.c:3592,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3593
      start: 3586
    functionDepth: 0
    functionLinenumber: 3586
    functionLinenumberEnd: 3593
    functionName: xmlTextReaderXmlLang
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlNodeGetLang
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlTextReaderXmlLang(xmlTextReader *reader) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 778
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 778
    functionName: xmlTextReaderCDataBlock
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xmlTextReaderCDataBlock(void *ctx, const xmlChar *ch,
      int len) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderExpand
      Src: /src/libxml2/xmlreader.c:1663,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:1671,1
    - Dst: xmlAllocOutputBuffer
      Src: /src/libxml2/xmlreader.c:1669,1
    - Dst: xmlTextReaderDumpCopy
      Src: /src/libxml2/xmlreader.c:1676,1
    - Dst: xmlCtxtErrIO
      Src: /src/libxml2/xmlreader.c:1679,1
    - Dst: xmlBufDetach
      Src: /src/libxml2/xmlreader.c:1681,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/xmlreader.c:1682,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 1685
      start: 1656
    functionDepth: 0
    functionLinenumber: 1656
    functionLinenumberEnd: 1685
    functionName: xmlTextReaderReadInnerXml
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlBufDetach
    - xmlAllocOutputBuffer
    - xmlOutputBufferClose
    - xmlTextReaderDumpCopy
    - xmlCtxtErrIO
    - xmlTextReaderErrMemory
    - xmlTextReaderExpand
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlTextReaderReadInnerXml(xmlTextReader *reader) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderDoExpand
      Src: /src/libxml2/xmlreader.c:1751,1
    - Dst: xmlBufDetach
      Src: /src/libxml2/xmlreader.c:1796,1
    - Dst: xmlBufCat
      Src: /src/libxml2/xmlreader.c:1770,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:1761,1
    - Dst: xmlBufCreate
      Src: /src/libxml2/xmlreader.c:1759,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:1798,1
    - Dst: xmlBufFree
      Src: /src/libxml2/xmlreader.c:1800,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 35
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 1802
      start: 1735
    functionDepth: 0
    functionLinenumber: 1735
    functionLinenumberEnd: 1802
    functionName: xmlTextReaderReadString
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlBufDetach
    - xmlBufCat
    - xmlBufFree
    - xmlBufCreate
    - xmlTextReaderErrMemory
    - xmlTextReaderDoExpand
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlTextReaderReadString(xmlTextReader *reader) '
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: constQString
      Src: /src/libxml2/xmlreader.c:3167,1
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:3174,1
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:3176,1
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:3169,1
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:3171,1
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:3178,1
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:3181,1
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:3183,1
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:3185,1
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:3188,1
    - Dst: constQString
      Src: /src/libxml2/xmlreader.c:3194,1
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:3193,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 25
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3205
      start: 3151
    functionDepth: 0
    functionLinenumber: 3151
    functionLinenumberEnd: 3205
    functionName: xmlTextReaderConstName
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - constQString
    - constString
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlTextReaderConstName(xmlTextReader *reader) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3284,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3289,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3291
      start: 3274
    functionDepth: 0
    functionLinenumber: 3274
    functionLinenumberEnd: 3291
    functionName: xmlTextReaderNamespaceUri
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - readerStrdup
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlTextReaderNamespaceUri(xmlTextReader *reader) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserInputBufferCreateIO
      Src: /src/libxml2/xmlreader.c:5396,1
    - Dst: ioclose
      Src: /src/libxml2/xmlreader.c:5400,1
    - Dst: xmlTextReaderSetup
      Src: /src/libxml2/xmlreader.c:5403,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 7
    argNames:
    - reader
    - ioread
    - ioclose
    - ioctx
    - URL
    - encoding
    - options
    argTypes:
    - xmlTextReader*
    - xmlInputReadCallback
    - xmlInputCloseCallback
    - void*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5404
      start: 5384
    functionDepth: 0
    functionLinenumber: 5384
    functionLinenumberEnd: 5404
    functionName: xmlReaderNewIO
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlParserInputBufferCreateIO
    - xmlTextReaderSetup
    - ioclose
    linkageType: ''
    returnType: int
    signature: 'int xmlReaderNewIO(xmlTextReader *reader, xmlInputReadCallback ioread,
      xmlInputCloseCallback ioclose, void *ioctx, const char *URL, const char *encoding,
      int options) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:2401,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:2402,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:2408,1
    - Dst: xmlNodeGetAttrValue
      Src: /src/libxml2/xmlreader.c:2416,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:2409,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:2418,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 30
    argCount: 3
    argNames:
    - reader
    - localName
    - namespaceURI
    argTypes:
    - xmlTextReader*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2421
      start: 2382
    functionDepth: 0
    functionLinenumber: 2382
    functionLinenumberEnd: 2421
    functionName: xmlTextReaderGetAttributeNs
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - readerStrdup
    - xmlStrEqual
    - xmlNodeGetAttrValue
    - xmlTextReaderErrMemory
    linkageType: ''
    returnType: xmlChar*
    signature: "xmlChar *xmlTextReaderGetAttributeNs(xmlTextReader *reader, const
      xmlChar *localName,\t\t\t const xmlChar *namespaceURI) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:3257,1
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:3263,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3265
      start: 3244
    functionDepth: 0
    functionLinenumber: 3244
    functionLinenumberEnd: 3265
    functionName: xmlTextReaderConstPrefix
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - constString
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlTextReaderConstPrefix(xmlTextReader *reader) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 760
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 760
    functionName: xmlTextReaderCharacters
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xmlTextReaderCharacters(void *ctx, const xmlChar *ch,
      int len) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeDumpOutput
      Src: /src/libxml2/xmlreader.c:1628,1
    - Dst: xmlDocCopyNode
      Src: /src/libxml2/xmlreader.c:1636,1
    - Dst: xmlNodeDumpOutput
      Src: /src/libxml2/xmlreader.c:1642,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/xmlreader.c:1644,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:1638,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - reader
    - output
    - node
    argTypes:
    - xmlTextReaderPtr
    - xmlOutputBufferPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1646
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1646
    functionName: xmlTextReaderDumpCopy
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlNodeDumpOutput
    - xmlFreeNode
    - xmlTextReaderErrMemory
    - xmlDocCopyNode
    linkageType: ''
    returnType: void
    signature: 'static void xmlTextReaderDumpCopy(xmlTextReaderPtr reader, xmlOutputBufferPtr
      output, xmlNodePtr node) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGFree
      Src: /src/libxml2/xmlreader.c:2131,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/xmlreader.c:2151,1
    - Dst: xmlRelaxNGFreeValidCtxt
      Src: /src/libxml2/xmlreader.c:2136,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/xmlreader.c:2147,1
    - Dst: xmlSchemaSAXUnplug
      Src: /src/libxml2/xmlreader.c:2142,1
    - Dst: xmlXIncludeFreeContext
      Src: /src/libxml2/xmlreader.c:2157,1
    - Dst: xmlFreePattern
      Src: /src/libxml2/xmlreader.c:2164,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:2166,1
    - Dst: xmlTextReaderClose
      Src: /src/libxml2/xmlreader.c:2170,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/xmlreader.c:2175,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:2182,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:2178,1
    - Dst: xmlDictFree
      Src: /src/libxml2/xmlreader.c:2184,1
    - Dst: xmlBufFree
      Src: /src/libxml2/xmlreader.c:2180,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:2185,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 51
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 2186
      start: 2125
    functionDepth: 0
    functionLinenumber: 2125
    functionLinenumberEnd: 2186
    functionName: xmlFreeTextReader
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRelaxNGFreeValidCtxt
    - xmlSchemaFreeValidCtxt
    - xmlFreePattern
    - xmlBufFree
    - xmlXIncludeFreeContext
    - xmlDictFree
    - xmlSchemaFree
    - xmlSchemaSAXUnplug
    - xmlFreeParserCtxt
    - xmlTextReaderClose
    - xmlRelaxNGFree
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeTextReader(xmlTextReader *reader) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/xmlreader.c:195,1
    - Dst: va_end
      Src: /src/libxml2/xmlreader.c:200,1
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/xmlreader.c:202,1
    - Dst: xmlVRaiseError
      Src: /src/libxml2/xmlreader.c:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - code
    - msg
    - '...'
    argTypes:
    - xmlParserErrors
    - char*
    constantsTouched: []
    func_position:
      end: 203
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 203
    functionName: xmlTextReaderErr
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlVRaiseError
    - va_start
    - va_end
    - xmlRaiseMemoryError
    linkageType: ''
    returnType: void
    signature: 'static void xmlTextReaderErr(xmlParserErrors code, const char *msg,
      ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 1561
      start: 1556
    functionDepth: 0
    functionLinenumber: 1556
    functionLinenumberEnd: 1561
    functionName: xmlTextReaderReadState
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderReadState(xmlTextReader *reader) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserInputBufferCreateFilenameValue
      Src: /src/libxml2/xmlreader.c:2090,1
    - Dst: xmlNewTextReader
      Src: /src/libxml2/xmlreader.c:2110,1
    - Dst: xmlTextReaderErr
      Src: /src/libxml2/xmlreader.c:2093,1
    - Dst: xmlTextReaderErr
      Src: /src/libxml2/xmlreader.c:2105,1
    - Dst: xmlParserInputBufferCreateUrl
      Src: /src/libxml2/xmlreader.c:2102,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:2112,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/xmlreader.c:2113,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - URI
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2118
      start: 2084
    functionDepth: 0
    functionLinenumber: 2084
    functionLinenumberEnd: 2118
    functionName: xmlNewTextReaderFilename
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlNewTextReader
    - xmlParserInputBufferCreateUrl
    - xmlParserInputBufferCreateFilenameValue
    - xmlFreeParserInputBuffer
    - xmlTextReaderErrMemory
    - xmlTextReaderErr
    linkageType: ''
    returnType: xmlTextReader*
    signature: 'xmlTextReader *xmlNewTextReaderFilename(const char *URI) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlSplitQName4
      Src: /src/libxml2/xmlreader.c:2317,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:2330,1
    - Dst: xmlNodeGetAttrValue
      Src: /src/libxml2/xmlreader.c:2337,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:2319,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:2326,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:2339,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:2346,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlreader.c:2349,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:2350,1
    - Dst: xmlSearchNsSafe
      Src: /src/libxml2/xmlreader.c:2356,1
    - Dst: xmlNodeGetAttrValue
      Src: /src/libxml2/xmlreader.c:2360,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:2363,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:2368,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:2358,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 52
    argCount: 2
    argNames:
    - reader
    - name
    argTypes:
    - xmlTextReader*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2370
      start: 2298
    functionDepth: 0
    functionLinenumber: 2298
    functionLinenumberEnd: 2370
    functionName: xmlTextReaderGetAttribute
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlNodeGetAttrValue
    - xmlSearchNsSafe
    - xmlStrEqual
    - xmlTextReaderErrMemory
    - readerStrdup
    - xmlSplitQName4
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlTextReaderGetAttribute(xmlTextReader *reader, const xmlChar
      *name) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsBlankNode
      Src: /src/libxml2/xmlreader.c:2949,1
    - Dst: xmlNodeGetSpacePreserve
      Src: /src/libxml2/xmlreader.c:2950,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 14
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 2986
      start: 2927
    functionDepth: 0
    functionLinenumber: 2927
    functionLinenumberEnd: 2986
    functionName: xmlTextReaderNodeType
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlNodeGetSpacePreserve
    - xmlIsBlankNode
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderNodeType(xmlTextReader *reader) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderErr
      Src: /src/libxml2/xmlreader.c:5085,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:5091,1
    - Dst: xmlTextReaderErr
      Src: /src/libxml2/xmlreader.c:5099,1
    - Dst: xmlAllocParserInputBuffer
      Src: /src/libxml2/xmlreader.c:5089,1
    - Dst: xmlInputFromFd
      Src: /src/libxml2/xmlreader.c:5097,1
    - Dst: xmlNewTextReader
      Src: /src/libxml2/xmlreader.c:5104,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:5106,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/xmlreader.c:5107,1
    - Dst: xmlTextReaderSetup
      Src: /src/libxml2/xmlreader.c:5111,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:5112,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/xmlreader.c:5113,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - fd
    - URL
    - encoding
    - options
    argTypes:
    - int
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5117
      start: 5077
    functionDepth: 0
    functionLinenumber: 5077
    functionLinenumberEnd: 5117
    functionName: xmlReaderForFd
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlNewTextReader
    - xmlTextReaderSetup
    - xmlInputFromFd
    - xmlFreeParserInputBuffer
    - xmlTextReaderErrMemory
    - xmlTextReaderErr
    - xmlAllocParserInputBuffer
    - xmlFreeTextReader
    linkageType: ''
    returnType: xmlTextReader*
    signature: 'xmlTextReader *xmlReaderForFd(int fd, const char *URL, const char
      *encoding, int options) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReaderPtr
    constantsTouched: []
    func_position:
      end: 638
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 638
    functionName: xmlTextReaderEntPop
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlTextReaderEntPop(xmlTextReaderPtr reader) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidatePushCData
      Src: /src/libxml2/xmlreader.c:969,1
    - Dst: xmlRelaxNGValidatePushCData
      Src: /src/libxml2/xmlreader.c:979,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 3
    argNames:
    - reader
    - data
    - len
    argTypes:
    - xmlTextReaderPtr
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 984
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 984
    functionName: xmlTextReaderValidateCData
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGValidatePushCData
    - xmlValidatePushCData
    linkageType: ''
    returnType: void
    signature: 'static void xmlTextReaderValidateCData(xmlTextReaderPtr reader, const
      xmlChar *data, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderRelaxNGValidateInternal
      Src: /src/libxml2/xmlreader.c:4361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - reader
    - rng
    argTypes:
    - xmlTextReader*
    - char*
    constantsTouched: []
    func_position:
      end: 4362
      start: 4358
    functionDepth: 0
    functionLinenumber: 4358
    functionLinenumberEnd: 4362
    functionName: xmlTextReaderRelaxNGValidate
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlTextReaderRelaxNGValidateInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderRelaxNGValidate(xmlTextReader *reader, const char
      *rng) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:4414,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 4415
      start: 4399
    functionDepth: 0
    functionLinenumber: 4399
    functionLinenumberEnd: 4415
    functionName: xmlTextReaderConstXmlVersion
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - constString
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlTextReaderConstXmlVersion(xmlTextReader *reader) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtSetMaxAmplification
      Src: /src/libxml2/xmlreader.c:4904,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - reader
    - maxAmpl
    argTypes:
    - xmlTextReader*
    - unsigned
    constantsTouched: []
    func_position:
      end: 4905
      start: 4899
    functionDepth: 0
    functionLinenumber: 4899
    functionLinenumberEnd: 4905
    functionName: xmlTextReaderSetMaxAmplification
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlCtxtSetMaxAmplification
    linkageType: ''
    returnType: void
    signature: 'void xmlTextReaderSetMaxAmplification(xmlTextReader *reader, unsigned
      maxAmpl) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserInputBufferCreateMem
      Src: /src/libxml2/xmlreader.c:5312,1
    - Dst: xmlTextReaderSetup
      Src: /src/libxml2/xmlreader.c:5317,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 6
    argNames:
    - reader
    - buffer
    - size
    - URL
    - encoding
    - options
    argTypes:
    - xmlTextReader*
    - char*
    - int
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5318
      start: 5301
    functionDepth: 0
    functionLinenumber: 5301
    functionLinenumberEnd: 5318
    functionName: xmlReaderNewMemory
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlParserInputBufferCreateMem
    - xmlTextReaderSetup
    linkageType: ''
    returnType: int
    signature: 'int xmlReaderNewMemory(xmlTextReader *reader, const char *buffer,
      int size, const char *URL, const char *encoding, int options) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlreader.c:598,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:606,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:601,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlreader.c:604,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - reader
    - value
    argTypes:
    - xmlTextReaderPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 615
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 615
    functionName: xmlTextReaderEntPush
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlTextReaderErrMemory
    linkageType: ''
    returnType: int
    signature: 'static int xmlTextReaderEntPush(xmlTextReaderPtr reader, xmlNodePtr
      value) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidatePushElement
      Src: /src/libxml2/xmlreader.c:902,1
    - Dst: xmlValidatePushElement
      Src: /src/libxml2/xmlreader.c:913,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:916,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:910,1
    - Dst: xmlBuildQName
      Src: /src/libxml2/xmlreader.c:908,1
    - Dst: xmlRelaxNGValidatePushElement
      Src: /src/libxml2/xmlreader.c:931,1
    - Dst: xmlTextReaderExpand
      Src: /src/libxml2/xmlreader.c:938,1
    - Dst: xmlRelaxNGValidateFullElement
      Src: /src/libxml2/xmlreader.c:942,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReaderPtr
    constantsTouched: []
    func_position:
      end: 954
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 954
    functionName: xmlTextReaderValidatePush
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRelaxNGValidateFullElement
    - xmlRelaxNGValidatePushElement
    - xmlValidatePushElement
    - xmlTextReaderErrMemory
    - xmlBuildQName
    - xmlTextReaderExpand
    linkageType: ''
    returnType: int
    signature: 'static int xmlTextReaderValidatePush(xmlTextReaderPtr reader) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderRelaxNGValidateInternal
      Src: /src/libxml2/xmlreader.c:4345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - reader
    - ctxt
    - options
    argTypes:
    - xmlTextReader*
    - xmlRelaxNGValidCtxt*
    - int
    constantsTouched: []
    func_position:
      end: 4346
      start: 4340
    functionDepth: 0
    functionLinenumber: 4340
    functionLinenumberEnd: 4346
    functionName: xmlTextReaderRelaxNGValidateCtxt
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlTextReaderRelaxNGValidateInternal
    linkageType: ''
    returnType: int
    signature: "int xmlTextReaderRelaxNGValidateCtxt(xmlTextReader *reader,\t\t\t\t
      xmlRelaxNGValidCtxt *ctxt,\t\t\t\t int options) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderSchemaValidateInternal
      Src: /src/libxml2/xmlreader.c:4324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - reader
    - xsd
    argTypes:
    - xmlTextReader*
    - char*
    constantsTouched: []
    func_position:
      end: 4325
      start: 4321
    functionDepth: 0
    functionLinenumber: 4321
    functionLinenumberEnd: 4325
    functionName: xmlTextReaderSchemaValidate
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlTextReaderSchemaValidateInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderSchemaValidate(xmlTextReader *reader, const char
      *xsd) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlreader.c:4963,1
    - Dst: memset
      Src: /src/libxml2/xmlreader.c:4967,1
    - Dst: xmlDictCreate
      Src: /src/libxml2/xmlreader.c:4978,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 4980
      start: 4955
    functionDepth: 0
    functionLinenumber: 4955
    functionLinenumberEnd: 4980
    functionName: xmlReaderWalker
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - memset
    - xmlDictCreate
    - xmlMalloc
    linkageType: ''
    returnType: xmlTextReader*
    signature: 'xmlTextReader *xmlReaderWalker(xmlDoc *doc) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidatePopElement
      Src: /src/libxml2/xmlreader.c:999,1
    - Dst: xmlValidatePopElement
      Src: /src/libxml2/xmlreader.c:1010,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:1007,1
    - Dst: xmlBuildQName
      Src: /src/libxml2/xmlreader.c:1005,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlreader.c:1013,1
    - Dst: xmlRelaxNGValidatePopElement
      Src: /src/libxml2/xmlreader.c:1032,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReaderPtr
    constantsTouched: []
    func_position:
      end: 1041
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 1041
    functionName: xmlTextReaderValidatePop
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRelaxNGValidatePopElement
    - xmlTextReaderErrMemory
    - xmlValidatePopElement
    - xmlBuildQName
    linkageType: ''
    returnType: int
    signature: 'static int xmlTextReaderValidatePop(xmlTextReaderPtr reader) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3096,1
    - Dst: xmlBuildQName
      Src: /src/libxml2/xmlreader.c:3098,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3105,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3103,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:3100,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3108,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3110,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3112,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3115,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3117,1
    - Dst: xmlBuildQName
      Src: /src/libxml2/xmlreader.c:3128,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3119,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:3130,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3122,1
    - Dst: readerStrdup
      Src: /src/libxml2/xmlreader.c:3127,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 32
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3142
      start: 3080
    functionDepth: 0
    functionLinenumber: 3080
    functionLinenumberEnd: 3142
    functionName: xmlTextReaderName
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - readerStrdup
    - xmlTextReaderErrMemory
    - xmlBuildQName
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlTextReaderName(xmlTextReader *reader) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3577
      start: 3571
    functionDepth: 0
    functionLinenumber: 3571
    functionLinenumberEnd: 3577
    functionName: xmlTextReaderQuoteChar
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderQuoteChar(xmlTextReader *reader) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 4946
      start: 4936
    functionDepth: 0
    functionLinenumber: 4936
    functionLinenumberEnd: 4946
    functionName: xmlTextReaderByteConsumed
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: 'long xmlTextReaderByteConsumed(xmlTextReader *reader) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlPatterncompile
      Src: /src/libxml2/xmlreader.c:3860,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlreader.c:3868,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:3871,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlreader.c:3874,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:3876,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 3
    argNames:
    - reader
    - pattern
    - namespaces
    argTypes:
    - xmlTextReader*
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 3884
      start: 3851
    functionDepth: 0
    functionLinenumber: 3851
    functionLinenumberEnd: 3884
    functionName: xmlTextReaderPreservePattern
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlTextReaderErrMemory
    - xmlPatterncompile
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderPreservePattern(xmlTextReader *reader, const xmlChar
      *pattern, const xmlChar **namespaces) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:3063,1
    - Dst: xmlTextReaderConstName
      Src: /src/libxml2/xmlreader.c:3069,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3071
      start: 3051
    functionDepth: 0
    functionLinenumber: 3051
    functionLinenumberEnd: 3071
    functionName: xmlTextReaderConstLocalName
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlTextReaderConstName
    - constString
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlTextReaderConstLocalName(xmlTextReader *reader) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetBaseSafe
      Src: /src/libxml2/xmlreader.c:3333,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:3335,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3338
      start: 3326
    functionDepth: 0
    functionLinenumber: 3326
    functionLinenumberEnd: 3338
    functionName: xmlTextReaderBaseUri
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlNodeGetBaseSafe
    - xmlTextReaderErrMemory
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlTextReaderBaseUri(xmlTextReader *reader) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3563
      start: 3558
    functionDepth: 0
    functionLinenumber: 3558
    functionLinenumberEnd: 3563
    functionName: xmlTextReaderIsDefault
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderIsDefault(xmlTextReader *reader) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:3310,1
    - Dst: constString
      Src: /src/libxml2/xmlreader.c:3315,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3317
      start: 3300
    functionDepth: 0
    functionLinenumber: 3300
    functionLinenumberEnd: 3317
    functionName: xmlTextReaderConstNamespaceUri
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - constString
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlTextReaderConstNamespaceUri(xmlTextReader *reader) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/xmlreader.c:208,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/xmlreader.c:213,1
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/xmlreader.c:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReaderPtr
    constantsTouched: []
    func_position:
      end: 219
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 219
    functionName: xmlTextReaderErrMemory
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlRaiseMemoryError
    - xmlCtxtErrMemory
    linkageType: ''
    returnType: void
    signature: 'static void xmlTextReaderErrMemory(xmlTextReaderPtr reader) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaSAXUnplug
      Src: /src/libxml2/xmlreader.c:4036,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/xmlreader.c:4059,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/xmlreader.c:4046,1
    - Dst: xmlSchemaSAXUnplug
      Src: /src/libxml2/xmlreader.c:4054,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/xmlreader.c:4041,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/xmlreader.c:4064,1
    - Dst: xmlSchemaNewValidCtxt
      Src: /src/libxml2/xmlreader.c:4067,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/xmlreader.c:4069,1
    - Dst: xmlSchemaSAXPlug
      Src: /src/libxml2/xmlreader.c:4073,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/xmlreader.c:4077,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/xmlreader.c:4079,1
    - Dst: xmlSchemaValidateSetLocator
      Src: /src/libxml2/xmlreader.c:4083,1
    - Dst: xmlSchemaSetValidStructuredErrors
      Src: /src/libxml2/xmlreader.c:4088,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 2
    argNames:
    - reader
    - schema
    argTypes:
    - xmlTextReader*
    - xmlSchema*
    constantsTouched: []
    func_position:
      end: 4093
      start: 4030
    functionDepth: 0
    functionLinenumber: 4030
    functionLinenumberEnd: 4093
    functionName: xmlTextReaderSetSchema
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlSchemaSetValidStructuredErrors
    - xmlSchemaFreeValidCtxt
    - xmlSchemaSAXPlug
    - xmlSchemaNewValidCtxt
    - xmlSchemaFree
    - xmlSchemaSAXUnplug
    - xmlSchemaValidateSetLocator
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderSetSchema(xmlTextReader *reader, xmlSchema *schema) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlreader.c:228,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:230,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - reader
    - string
    argTypes:
    - xmlTextReaderPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 233
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 233
    functionName: readerStrdup
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlTextReaderErrMemory
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *readerStrdup(xmlTextReaderPtr reader, const xmlChar
      *string) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderExpand
      Src: /src/libxml2/xmlreader.c:1702,1
    - Dst: xmlAllocOutputBuffer
      Src: /src/libxml2/xmlreader.c:1709,1
    - Dst: xmlTextReaderErrMemory
      Src: /src/libxml2/xmlreader.c:1711,1
    - Dst: xmlTextReaderDumpCopy
      Src: /src/libxml2/xmlreader.c:1715,1
    - Dst: xmlCtxtErrIO
      Src: /src/libxml2/xmlreader.c:1717,1
    - Dst: xmlBufDetach
      Src: /src/libxml2/xmlreader.c:1719,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/xmlreader.c:1720,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 1723
      start: 1695
    functionDepth: 0
    functionLinenumber: 1695
    functionLinenumberEnd: 1723
    functionName: xmlTextReaderReadOuterXml
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlBufDetach
    - xmlAllocOutputBuffer
    - xmlOutputBufferClose
    - xmlTextReaderDumpCopy
    - xmlCtxtErrIO
    - xmlTextReaderErrMemory
    - xmlTextReaderExpand
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlTextReaderReadOuterXml(xmlTextReader *reader) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 3385
      start: 3371
    functionDepth: 0
    functionLinenumber: 3371
    functionLinenumberEnd: 3385
    functionName: xmlTextReaderDepth
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextReaderDepth(xmlTextReader *reader) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetLineNo
      Src: /src/libxml2/xmlreader.c:4000,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 35
    argCount: 3
    argNames:
    - ctx
    - file
    - line
    argTypes:
    - void*
    - char**
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 4016
      start: 3975
    functionDepth: 0
    functionLinenumber: 3975
    functionLinenumberEnd: 4016
    functionName: xmlTextReaderLocator
    functionSourceFile: /src/libxml2/xmlreader.c
    functionUses: []
    functionsReached:
    - xmlGetLineNo
    linkageType: ''
    returnType: int
    signature: 'static int xmlTextReaderLocator(void *ctx, const char **file, unsigned
      long *line) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/libxml2/threads.c:58,1
    - Dst: InitializeCriticalSection
      Src: /src/libxml2/threads.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - xmlMutex*
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: xmlInitMutex
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - InitializeCriticalSection
    - pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: 'void xmlInitMutex(xmlMutex *mutex) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libxml2/threads.c:187,1
    - Dst: xmlInitRMutex
      Src: /src/libxml2/threads.c:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 192
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 192
    functionName: xmlNewRMutex
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - malloc
    - xmlInitRMutex
    linkageType: ''
    returnType: xmlRMutex*
    signature: 'xmlRMutex *xmlNewRMutex(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCleanupParser
      Src: /src/libxml2/threads.c:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 502
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 502
    functionName: (void)
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - xmlCleanupParser
    linkageType: ''
    returnType: xmlDestructor
    signature: 'xmlDestructor (void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/libxml2/threads.c:149,1
    - Dst: LeaveCriticalSection
      Src: /src/libxml2/threads.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - tok
    argTypes:
    - xmlMutex*
    constantsTouched: []
    func_position:
      end: 153
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 153
    functionName: xmlMutexUnlock
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - LeaveCriticalSection
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: 'void xmlMutexUnlock(xmlMutex *tok) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/libxml2/threads.c:165,1
    - Dst: InitializeCriticalSection
      Src: /src/libxml2/threads.c:170,1
    - Dst: pthread_cond_init
      Src: /src/libxml2/threads.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - tok
    argTypes:
    - xmlRMutex*
    constantsTouched: []
    func_position:
      end: 172
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 172
    functionName: xmlInitRMutex
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - pthread_cond_init
    - InitializeCriticalSection
    - pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: 'void xmlInitRMutex(xmlRMutex *tok) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/libxml2/threads.c:269,1
    - Dst: pthread_cond_signal
      Src: /src/libxml2/threads.c:273,1
    - Dst: memset
      Src: /src/libxml2/threads.c:274,1
    - Dst: pthread_mutex_unlock
      Src: /src/libxml2/threads.c:276,1
    - Dst: LeaveCriticalSection
      Src: /src/libxml2/threads.c:278,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlRMutex*
    constantsTouched: []
    func_position:
      end: 280
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 280
    functionName: xmlRMutexUnlock
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - LeaveCriticalSection
    - pthread_mutex_unlock
    - memset
    - pthread_mutex_lock
    - pthread_cond_signal
    linkageType: ''
    returnType: void
    signature: 'void xmlRMutexUnlock(xmlRMutex *tok ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/libxml2/threads.c:131,1
    - Dst: EnterCriticalSection
      Src: /src/libxml2/threads.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - tok
    argTypes:
    - xmlMutex*
    constantsTouched: []
    func_position:
      end: 136
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 136
    functionName: xmlMutexLock
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - EnterCriticalSection
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: 'void xmlMutexLock(xmlMutex *tok) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCleanupRMutex
      Src: /src/libxml2/threads.c:222,1
    - Dst: free
      Src: /src/libxml2/threads.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - tok
    argTypes:
    - xmlRMutex*
    constantsTouched: []
    func_position:
      end: 224
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 224
    functionName: xmlFreeRMutex
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - free
    - xmlCleanupRMutex
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeRMutex(xmlRMutex *tok) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/libxml2/threads.c:237,1
    - Dst: pthread_cond_wait
      Src: /src/libxml2/threads.c:246,1
    - Dst: pthread_self
      Src: /src/libxml2/threads.c:239,1
    - Dst: pthread_equal
      Src: /src/libxml2/threads.c:239,1
    - Dst: pthread_mutex_unlock
      Src: /src/libxml2/threads.c:241,1
    - Dst: pthread_self
      Src: /src/libxml2/threads.c:250,1
    - Dst: pthread_mutex_unlock
      Src: /src/libxml2/threads.c:252,1
    - Dst: EnterCriticalSection
      Src: /src/libxml2/threads.c:254,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - tok
    argTypes:
    - xmlRMutex*
    constantsTouched: []
    func_position:
      end: 256
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 256
    functionName: xmlRMutexLock
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - pthread_mutex_unlock
    - pthread_equal
    - pthread_mutex_lock
    - EnterCriticalSection
    - pthread_self
    - pthread_cond_wait
    linkageType: ''
    returnType: void
    signature: 'void xmlRMutexLock(xmlRMutex *tok) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/libxml2/threads.c:204,1
    - Dst: pthread_cond_destroy
      Src: /src/libxml2/threads.c:205,1
    - Dst: DeleteCriticalSection
      Src: /src/libxml2/threads.c:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - tok
    argTypes:
    - xmlRMutex*
    constantsTouched: []
    func_position:
      end: 209
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 209
    functionName: xmlCleanupRMutex
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - pthread_mutex_destroy
    - DeleteCriticalSection
    - pthread_cond_destroy
    linkageType: ''
    returnType: void
    signature: 'void xmlCleanupRMutex(xmlRMutex *tok) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: xmlCleanupThreads
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlCleanupThreads(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/threads.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: xmlInitThreads
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - xmlInitParser
    linkageType: ''
    returnType: void
    signature: 'void xmlInitThreads(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitRandom
      Src: /src/libxml2/threads.c:359,1
    - Dst: xmlInitMemoryInternal
      Src: /src/libxml2/threads.c:360,1
    - Dst: xmlInitThreadsInternal
      Src: /src/libxml2/threads.c:361,1
    - Dst: xmlInitDictInternal
      Src: /src/libxml2/threads.c:363,1
    - Dst: xmlInitGlobalsInternal
      Src: /src/libxml2/threads.c:362,1
    - Dst: xmlInitEncodingInternal
      Src: /src/libxml2/threads.c:364,1
    - Dst: xmlInitXPathInternal
      Src: /src/libxml2/threads.c:366,1
    - Dst: xmlInitIOCallbacks
      Src: /src/libxml2/threads.c:368,1
    - Dst: xmlInitCatalogInternal
      Src: /src/libxml2/threads.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 374
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 374
    functionName: xmlInitParserInternal
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - xmlInitThreadsInternal
    - xmlInitXPathInternal
    - xmlInitGlobalsInternal
    - xmlInitMemoryInternal
    - xmlInitEncodingInternal
    - xmlInitDictInternal
    - xmlInitCatalogInternal
    - xmlInitIOCallbacks
    - xmlInitRandom
    linkageType: ''
    returnType: void
    signature: 'static void xmlInitParserInternal(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlRMutexUnlock
      Src: /src/libxml2/threads.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: xmlUnlockLibrary
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - xmlRMutexUnlock
    linkageType: ''
    returnType: void
    signature: 'void xmlUnlockLibrary(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCleanupMutex
      Src: /src/libxml2/threads.c:112,1
    - Dst: free
      Src: /src/libxml2/threads.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - tok
    argTypes:
    - xmlMutex*
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: xmlFreeMutex
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - xmlCleanupMutex
    - free
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeMutex(xmlMutex *tok) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlRMutexLock
      Src: /src/libxml2/threads.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: xmlLockLibrary
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - xmlRMutexLock
    linkageType: ''
    returnType: void
    signature: 'void xmlLockLibrary(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitRMutex
      Src: /src/libxml2/threads.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: xmlInitThreadsInternal
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - xmlInitRMutex
    linkageType: ''
    returnType: void
    signature: 'static void xmlInitThreadsInternal(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCleanupCharEncodingHandlers
      Src: /src/libxml2/threads.c:446,1
    - Dst: xmlCleanupCatalogInternal
      Src: /src/libxml2/threads.c:449,1
    - Dst: xmlSchemaCleanupTypes
      Src: /src/libxml2/threads.c:452,1
    - Dst: xmlRelaxNGCleanupTypes
      Src: /src/libxml2/threads.c:455,1
    - Dst: xmlCatalogCleanup
      Src: /src/libxml2/threads.c:448,1
    - Dst: xmlCleanupDictInternal
      Src: /src/libxml2/threads.c:458,1
    - Dst: xmlCleanupRandom
      Src: /src/libxml2/threads.c:459,1
    - Dst: xmlCleanupGlobalsInternal
      Src: /src/libxml2/threads.c:460,1
    - Dst: xmlCleanupThreadsInternal
      Src: /src/libxml2/threads.c:461,1
    - Dst: xmlCleanupMemoryInternal
      Src: /src/libxml2/threads.c:467,1
    - Dst: memcpy
      Src: /src/libxml2/threads.c:477,1
    - Dst: memcpy
      Src: /src/libxml2/threads.c:482,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 487
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 487
    functionName: xmlCleanupParser
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - xmlCleanupCatalogInternal
    - memcpy
    - xmlCleanupRandom
    - xmlCleanupThreadsInternal
    - xmlCatalogCleanup
    - xmlCleanupCharEncodingHandlers
    - xmlCleanupMemoryInternal
    - xmlSchemaCleanupTypes
    - xmlCleanupDictInternal
    - xmlRelaxNGCleanupTypes
    - xmlCleanupGlobalsInternal
    linkageType: ''
    returnType: void
    signature: 'void xmlCleanupParser(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCleanupRMutex
      Src: /src/libxml2/threads.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: xmlCleanupThreadsInternal
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - xmlCleanupRMutex
    linkageType: ''
    returnType: void
    signature: 'static void xmlCleanupThreadsInternal(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libxml2/threads.c:77,1
    - Dst: xmlInitMutex
      Src: /src/libxml2/threads.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: xmlNewMutex
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - malloc
    - xmlInitMutex
    linkageType: ''
    returnType: xmlMutex*
    signature: 'xmlMutex *xmlNewMutex(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/libxml2/threads.c:93,1
    - Dst: DeleteCriticalSection
      Src: /src/libxml2/threads.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - xmlMutex*
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: xmlCleanupMutex
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - pthread_mutex_destroy
    - DeleteCriticalSection
    linkageType: ''
    returnType: void
    signature: 'void xmlCleanupMutex(xmlMutex *mutex) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/libxml2/threads.c:399,1
    - Dst: xmlInitParserInternal
      Src: /src/libxml2/threads.c:404,1
    - Dst: InitOnceExecuteOnce
      Src: /src/libxml2/threads.c:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 408
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 408
    functionName: xmlInitParser
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - xmlInitParserInternal
    - InitOnceExecuteOnce
    - pthread_once
    linkageType: ''
    returnType: void
    signature: 'void xmlInitParser(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParserInternal
      Src: /src/libxml2/threads.c:381,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - INIT_ONCE*
    - void*
    - void**
    constantsTouched: []
    func_position:
      end: 383
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 383
    functionName: xmlInitParserWinWrapper
    functionSourceFile: /src/libxml2/threads.c
    functionUses: []
    functionsReached:
    - xmlInitParserInternal
    linkageType: ''
    returnType: BOOL
    signature: 'static BOOL WINAPI xmlInitParserWinWrapper(INIT_ONCE *initOnce ATTRIBUTE_UNUSED,
      void *parameter ATTRIBUTE_UNUSED, void **context ATTRIBUTE_UNUSED) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SORT_CMP
      Src: /src/libxml2/timsort.h:187,1
    - Dst: SORT_CMP
      Src: /src/libxml2/timsort.h:189,1
    - Dst: SORT_CMP
      Src: /src/libxml2/timsort.h:196,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - dst
    - x
    - size
    argTypes:
    - SORT_TYPE*
    - SORT_TYPE
    - size_t
    constantsTouched: []
    func_position:
      end: 215
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 215
    functionName: BINARY_INSERTION_FIND
    functionSourceFile: /src/libxml2/timsort.h
    functionUses: []
    functionsReached:
    - SORT_CMP
    linkageType: ''
    returnType: size_t
    signature: 'static __inline size_t BINARY_INSERTION_FIND(SORT_TYPE *dst, const
      SORT_TYPE x, const size_t size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SORT_SWAP
      Src: /src/libxml2/timsort.h:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - start
    - end
    argTypes:
    - SORT_TYPE*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 269
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 269
    functionName: REVERSE_ELEMENTS
    functionSourceFile: /src/libxml2/timsort.h
    functionUses: []
    functionsReached:
    - SORT_SWAP
    linkageType: ''
    returnType: void
    signature: 'static __inline void REVERSE_ELEMENTS(SORT_TYPE *dst, size_t start,
      size_t end) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SORT_CMP
      Src: /src/libxml2/timsort.h:279,1
    - Dst: SORT_SWAP
      Src: /src/libxml2/timsort.h:280,1
    - Dst: SORT_CMP
      Src: /src/libxml2/timsort.h:295,1
    - Dst: SORT_CMP
      Src: /src/libxml2/timsort.h:310,1
    - Dst: SORT_CMP
      Src: /src/libxml2/timsort.h:288,1
    - Dst: REVERSE_ELEMENTS
      Src: /src/libxml2/timsort.h:318,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - dst
    - start
    - size
    argTypes:
    - SORT_TYPE*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 321
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 321
    functionName: COUNT_RUN
    functionSourceFile: /src/libxml2/timsort.h
    functionUses: []
    functionsReached:
    - REVERSE_ELEMENTS
    - SORT_CMP
    - SORT_SWAP
    linkageType: ''
    returnType: size_t
    signature: 'static size_t COUNT_RUN(SORT_TYPE *dst, const size_t start, const
      size_t size) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TIM_SORT_RESIZE
      Src: /src/libxml2/timsort.h:379,1
    - Dst: memcpy
      Src: /src/libxml2/timsort.h:384,1
    - Dst: memcpy
      Src: /src/libxml2/timsort.h:403,1
    - Dst: MIN
      Src: /src/libxml2/timsort.h:379,1
    - Dst: SORT_CMP
      Src: /src/libxml2/timsort.h:390,1
    - Dst: SORT_CMP
      Src: /src/libxml2/timsort.h:411,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 4
    argNames:
    - dst
    - stack
    - stack_curr
    - store
    argTypes:
    - SORT_TYPE*
    - TIM_SORT_RUN_T*
    - int
    - TEMP_STORAGE_T*
    constantsTouched: []
    func_position:
      end: 423
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 423
    functionName: TIM_SORT_MERGE
    functionSourceFile: /src/libxml2/timsort.h
    functionUses: []
    functionsReached:
    - SORT_CMP
    - memcpy
    - MIN
    - TIM_SORT_RESIZE
    linkageType: ''
    returnType: void
    signature: 'static void TIM_SORT_MERGE(SORT_TYPE *dst, const TIM_SORT_RUN_T *stack,
      const int stack_curr, TEMP_STORAGE_T *store) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: COUNT_RUN
      Src: /src/libxml2/timsort.h:496,1
    - Dst: free
      Src: /src/libxml2/timsort.h:522,1
    - Dst: TIM_SORT_MERGE
      Src: /src/libxml2/timsort.h:516,1
    - Dst: BINARY_INSERTION_SORT_START
      Src: /src/libxml2/timsort.h:504,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 7
    argNames:
    - dst
    - size
    - store
    - minrun
    - run_stack
    - stack_curr
    - curr
    argTypes:
    - SORT_TYPE*
    - size_t
    - TEMP_STORAGE_T*
    - size_t
    - TIM_SORT_RUN_T*
    - size_t*
    - size_t*
    constantsTouched: []
    func_position:
      end: 530
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 530
    functionName: PUSH_NEXT
    functionSourceFile: /src/libxml2/timsort.h
    functionUses: []
    functionsReached:
    - COUNT_RUN
    - free
    - TIM_SORT_MERGE
    - BINARY_INSERTION_SORT_START
    linkageType: ''
    returnType: int
    signature: 'static __inline int PUSH_NEXT(SORT_TYPE *dst, const size_t size, TEMP_STORAGE_T
      *store, const size_t minrun, TIM_SORT_RUN_T *run_stack, size_t *stack_curr,
      size_t *curr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CLZ
      Src: /src/libxml2/timsort.h:129,1
    - Dst: MAX
      Src: /src/libxml2/timsort.h:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - size
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: compute_minrun
    functionSourceFile: /src/libxml2/timsort.h
    functionUses: []
    functionsReached:
    - MAX
    - CLZ
    linkageType: ''
    returnType: int
    signature: 'static __inline int compute_minrun(const uint64_t size) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - stack
    - stack_curr
    argTypes:
    - TIM_SORT_RUN_T*
    - int
    constantsTouched: []
    func_position:
      end: 350
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 350
    functionName: CHECK_INVARIANT
    functionSourceFile: /src/libxml2/timsort.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int CHECK_INVARIANT(TIM_SORT_RUN_T *stack, const int stack_curr) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/libxml2/timsort.h:359,1
    - Dst: exit
      Src: /src/libxml2/timsort.h:364,1
    - Dst: fprintf
      Src: /src/libxml2/timsort.h:362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - store
    - new_size
    argTypes:
    - TEMP_STORAGE_T*
    - size_t
    constantsTouched: []
    func_position:
      end: 370
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 370
    functionName: TIM_SORT_RESIZE
    functionSourceFile: /src/libxml2/timsort.h
    functionUses: []
    functionsReached:
    - realloc
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: 'static void TIM_SORT_RESIZE(TEMP_STORAGE_T *store, const size_t new_size) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TIM_SORT_MERGE
      Src: /src/libxml2/timsort.h:438,1
    - Dst: TIM_SORT_MERGE
      Src: /src/libxml2/timsort.h:474,1
    - Dst: TIM_SORT_MERGE
      Src: /src/libxml2/timsort.h:480,1
    - Dst: TIM_SORT_MERGE
      Src: /src/libxml2/timsort.h:445,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 5
    argNames:
    - dst
    - stack
    - stack_curr
    - store
    - size
    argTypes:
    - SORT_TYPE*
    - TIM_SORT_RUN_T*
    - int
    - TEMP_STORAGE_T*
    - size_t
    constantsTouched: []
    func_position:
      end: 487
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 487
    functionName: TIM_SORT_COLLAPSE
    functionSourceFile: /src/libxml2/timsort.h
    functionUses: []
    functionsReached:
    - TIM_SORT_MERGE
    linkageType: ''
    returnType: int
    signature: 'static int TIM_SORT_COLLAPSE(SORT_TYPE *dst, TIM_SORT_RUN_T *stack,
      int stack_curr, TEMP_STORAGE_T *store, const size_t size) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BINARY_INSERTION_SORT
      Src: /src/libxml2/timsort.h:545,1
    - Dst: PUSH_NEXT
      Src: /src/libxml2/timsort.h:560,1
    - Dst: compute_minrun
      Src: /src/libxml2/timsort.h:550,1
    - Dst: PUSH_NEXT
      Src: /src/libxml2/timsort.h:564,1
    - Dst: PUSH_NEXT
      Src: /src/libxml2/timsort.h:556,1
    - Dst: CHECK_INVARIANT
      Src: /src/libxml2/timsort.h:569,1
    - Dst: TIM_SORT_COLLAPSE
      Src: /src/libxml2/timsort.h:570,1
    - Dst: PUSH_NEXT
      Src: /src/libxml2/timsort.h:574,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - dst
    - size
    argTypes:
    - SORT_TYPE*
    - size_t
    constantsTouched: []
    func_position:
      end: 578
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 578
    functionName: TIM_SORT
    functionSourceFile: /src/libxml2/timsort.h
    functionUses: []
    functionsReached:
    - TIM_SORT_COLLAPSE
    - CHECK_INVARIANT
    - compute_minrun
    - BINARY_INSERTION_SORT
    - PUSH_NEXT
    linkageType: ''
    returnType: void
    signature: 'void TIM_SORT(SORT_TYPE *dst, const size_t size) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 122
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 122
    functionName: clzll
    functionSourceFile: /src/libxml2/timsort.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int clzll(uint64_t x) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BINARY_INSERTION_SORT_START
      Src: /src/libxml2/timsort.h:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - size
    argTypes:
    - SORT_TYPE*
    - size_t
    constantsTouched: []
    func_position:
      end: 255
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 255
    functionName: BINARY_INSERTION_SORT
    functionSourceFile: /src/libxml2/timsort.h
    functionUses: []
    functionsReached:
    - BINARY_INSERTION_SORT_START
    linkageType: ''
    returnType: void
    signature: 'void BINARY_INSERTION_SORT(SORT_TYPE *dst, const size_t size) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SORT_CMP
      Src: /src/libxml2/timsort.h:227,1
    - Dst: BINARY_INSERTION_FIND
      Src: /src/libxml2/timsort.h:233,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - dst
    - start
    - size
    argTypes:
    - SORT_TYPE*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 245
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 245
    functionName: BINARY_INSERTION_SORT_START
    functionSourceFile: /src/libxml2/timsort.h
    functionUses: []
    functionsReached:
    - BINARY_INSERTION_FIND
    - SORT_CMP
    linkageType: ''
    returnType: void
    signature: 'static void BINARY_INSERTION_SORT_START(SORT_TYPE *dst, const size_t
      start, const size_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - mem
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 545
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 545
    functionName: unloadMem
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: int
    signature: 'static int unloadMem(const char *mem) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: loadMem
      Src: /src/libxml2/runtest.c:2391,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2392,1
    - Dst: xmlCtxtReadMemory
      Src: /src/libxml2/runtest.c:2397,1
    - Dst: unloadMem
      Src: /src/libxml2/runtest.c:2398,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/runtest.c:2396,1
    - Dst: xmlDocDumpMemory
      Src: /src/libxml2/runtest.c:2402,1
    - Dst: compareFileMem
      Src: /src/libxml2/runtest.c:2403,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2405,1
    - Dst: testParseContent
      Src: /src/libxml2/runtest.c:2409,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:2412,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/runtest.c:2413,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:2414,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - filename
    - result
    - ATTRIBUTE_UNUSED
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2416
      start: 2375
    functionDepth: 0
    functionLinenumber: 2375
    functionLinenumberEnd: 2416
    functionName: memParseTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    - loadMem
    - unloadMem
    - testParseContent
    - xmlDocDumpMemory
    - xmlCtxtReadMemory
    - compareFileMem
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - fprintf
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: "static int memParseTest(const char *filename, const char *result,
      const char *err ATTRIBUTE_UNUSED,\t int options) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uriCommonTest
      Src: /src/libxml2/runtest.c:3283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - filename
    - result
    - err
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 3285
      start: 3278
    functionDepth: 0
    functionLinenumber: 3278
    functionLinenumberEnd: 3285
    functionName: uriBaseTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - uriCommonTest
    linkageType: ''
    returnType: int
    signature: 'static int uriBaseTest(const char *filename, const char *result, const
      char *err, int options ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 4804
      start: 4793
    functionDepth: 0
    functionLinenumber: 4793
    functionLinenumberEnd: 4804
    functionName: scanNumber
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int scanNumber(char **ptr) '
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:2076,1
    - Dst: xmlSAX2InitHtmlDefaultSAXHandler
      Src: /src/libxml2/runtest.c:2091,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:2249,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:2215,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2244,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2113,1
    - Dst: htmlCreatePushParserCtxt
      Src: /src/libxml2/runtest.c:2119,1
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/runtest.c:2123,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/runtest.c:2124,1
    - Dst: htmlParseChunk
      Src: /src/libxml2/runtest.c:2156,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/runtest.c:2159,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:2255,1
    - Dst: htmlDocDumpMemory
      Src: /src/libxml2/runtest.c:2261,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2270,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2277,1
    - Dst: memset
      Src: /src/libxml2/runtest.c:2088,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2250,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:2243,1
    - Dst: compareFileMem
      Src: /src/libxml2/runtest.c:2266,1
    - Dst: compareFileMem
      Src: /src/libxml2/runtest.c:2275,1
    - Dst: xmlSAXVersion
      Src: /src/libxml2/runtest.c:2097,1
    - Dst: loadMem
      Src: /src/libxml2/runtest.c:2112,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/runtest.c:2125,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:2241,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/runtest.c:2240,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2256,1
    - Dst: xmlDocDumpMemory
      Src: /src/libxml2/runtest.c:2264,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:2265,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:2269,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:2273,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 162
    argCount: 4
    argNames:
    - filename
    - result
    - ATTRIBUTE_UNUSED
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2282
      start: 2061
    functionDepth: 0
    functionLinenumber: 2061
    functionLinenumberEnd: 2282
    functionName: pushBoundaryTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlCtxtUseOptions
    - htmlParseChunk
    - xmlFreeDoc
    - xmlSAXVersion
    - loadMem
    - xmlCtxtSetErrorHandler
    - xmlFreeParserCtxt
    - htmlDocDumpMemory
    - xmlFree
    - memset
    - strcmp
    - xmlParseChunk
    - xmlDocDumpMemory
    - compareFileMem
    - xmlSAX2InitHtmlDefaultSAXHandler
    - xmlCreatePushParserCtxt
    - strlen
    - fprintf
    - htmlCreatePushParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int pushBoundaryTest(const char *filename, const char *result,
      const char *err ATTRIBUTE_UNUSED, int options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAX2InternalSubset
      Src: /src/libxml2/runtest.c:1977,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - name
    - externalID
    - systemID
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1978
      start: 1973
    functionDepth: 0
    functionLinenumber: 1973
    functionLinenumberEnd: 1978
    functionName: internalSubsetBnd
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlSAX2InternalSubset
    linkageType: ''
    returnType: void
    signature: 'static void internalSubsetBnd(void *ctx, const xmlChar *name, const
      xmlChar *externalID, const xmlChar *systemID) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAX2Characters
      Src: /src/libxml2/runtest.c:1990,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1991
      start: 1986
    functionDepth: 0
    functionLinenumber: 1986
    functionLinenumberEnd: 1991
    functionName: charactersBnd
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlSAX2Characters
    linkageType: ''
    returnType: void
    signature: 'static void charactersBnd(void *ctx, const xmlChar *ch, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAX2Reference
      Src: /src/libxml2/runtest.c:1983,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1984
      start: 1980
    functionDepth: 0
    functionLinenumber: 1980
    functionLinenumberEnd: 1984
    functionName: referenceBnd
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlSAX2Reference
    linkageType: ''
    returnType: void
    signature: 'static void referenceBnd(void *ctx, const xmlChar *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAX2CDataBlock
      Src: /src/libxml2/runtest.c:1997,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1998
      start: 1993
    functionDepth: 0
    functionLinenumber: 1993
    functionLinenumberEnd: 1998
    functionName: cdataBlockBnd
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlSAX2CDataBlock
    linkageType: ''
    returnType: void
    signature: 'static void cdataBlockBnd(void *ctx, const xmlChar *ch, int len) '
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4839,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:4840,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:4856,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4853,1
    - Dst: scanNumber
      Src: /src/libxml2/runtest.c:4884,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4886,1
    - Dst: xmlAutomataNewState
      Src: /src/libxml2/runtest.c:4891,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4948,1
    - Dst: scanNumber
      Src: /src/libxml2/runtest.c:4937,1
    - Dst: scanNumber
      Src: /src/libxml2/runtest.c:4953,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:5017,1
    - Dst: scanNumber
      Src: /src/libxml2/runtest.c:4916,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4984,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4996,1
    - Dst: xmlAutomataNewState
      Src: /src/libxml2/runtest.c:4944,1
    - Dst: scanNumber
      Src: /src/libxml2/runtest.c:4928,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4986,1
    - Dst: resultFilename
      Src: /src/libxml2/runtest.c:4832,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4828,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4834,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:4848,1
    - Dst: fgets
      Src: /src/libxml2/runtest.c:4861,1
    - Dst: xmlAutomataNewTransition
      Src: /src/libxml2/runtest.c:4893,1
    - Dst: scanNumber
      Src: /src/libxml2/runtest.c:4899,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4901,1
    - Dst: xmlAutomataNewState
      Src: /src/libxml2/runtest.c:4906,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/runtest.c:4911,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:5002,1
    - Dst: xmlFreeAutomata
      Src: /src/libxml2/runtest.c:5008,1
    - Dst: xmlRegNewExecCtxt
      Src: /src/libxml2/runtest.c:4993,1
    - Dst: xmlRegExecPushString
      Src: /src/libxml2/runtest.c:4994,1
    - Dst: fopen
      Src: /src/libxml2/runtest.c:4837,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:4864,1
    - Dst: xmlAutomataSetFinalState
      Src: /src/libxml2/runtest.c:4922,1
    - Dst: xmlAutomataNewState
      Src: /src/libxml2/runtest.c:4935,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4955,1
    - Dst: xmlAutomataCompile
      Src: /src/libxml2/runtest.c:4964,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4939,1
    - Dst: xmlRegNewExecCtxt
      Src: /src/libxml2/runtest.c:4977,1
    - Dst: xmlRegExecPushString
      Src: /src/libxml2/runtest.c:4979,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4982,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4968,1
    - Dst: xmlAutomataNewState
      Src: /src/libxml2/runtest.c:4910,1
    - Dst: compareFiles
      Src: /src/libxml2/runtest.c:5010,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:5001,1
    - Dst: fopen
      Src: /src/libxml2/runtest.c:4826,1
    - Dst: fatalError
      Src: /src/libxml2/runtest.c:4835,1
    - Dst: xmlNewAutomata
      Src: /src/libxml2/runtest.c:4844,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4846,1
    - Dst: xmlAutomataGetInitState
      Src: /src/libxml2/runtest.c:4851,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4877,1
    - Dst: scanNumber
      Src: /src/libxml2/runtest.c:4875,1
    - Dst: xmlFreeAutomata
      Src: /src/libxml2/runtest.c:4855,1
    - Dst: xmlAutomataNewState
      Src: /src/libxml2/runtest.c:4882,1
    - Dst: scanNumber
      Src: /src/libxml2/runtest.c:4908,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4918,1
    - Dst: xmlAutomataNewCountTrans
      Src: /src/libxml2/runtest.c:4960,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4930,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4974,1
    - Dst: xmlRegFreeExecCtxt
      Src: /src/libxml2/runtest.c:4987,1
    - Dst: unlink
      Src: /src/libxml2/runtest.c:5016,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:5012,1
    - Dst: xmlFreeAutomata
      Src: /src/libxml2/runtest.c:4965,1
    - Dst: xmlRegFreeExecCtxt
      Src: /src/libxml2/runtest.c:5006,1
    - Dst: scanNumber
      Src: /src/libxml2/runtest.c:4946,1
    - Dst: xmlRegFreeRegexp
      Src: /src/libxml2/runtest.c:5004,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 207
    argCount: 4
    argNames:
    - filename
    - result
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5021
      start: 4806
    functionDepth: 0
    functionLinenumber: 4806
    functionLinenumberEnd: 5021
    functionName: automataTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlRegFreeExecCtxt
    - compareFiles
    - fclose
    - fatalError
    - xmlFreeAutomata
    - xmlAutomataSetFinalState
    - xmlAutomataNewState
    - fopen
    - unlink
    - xmlRegNewExecCtxt
    - xmlFree
    - xmlRegFreeRegexp
    - xmlAutomataNewTransition
    - xmlAutomataNewEpsilon
    - xmlRegExecPushString
    - scanNumber
    - resultFilename
    - xmlNewAutomata
    - xmlAutomataGetInitState
    - xmlAutomataNewCountTrans
    - fgets
    - xmlAutomataCompile
    - strlen
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int automataTest(const char *filename, const char *result,
      const char *err ATTRIBUTE_UNUSED, int options ATTRIBUTE_UNUSED) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadFile
      Src: /src/libxml2/runtest.c:2440,1
    - Dst: resultFilename
      Src: /src/libxml2/runtest.c:2444,1
    - Dst: xmlSaveFile
      Src: /src/libxml2/runtest.c:2449,1
    - Dst: fatalError
      Src: /src/libxml2/runtest.c:2447,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2446,1
    - Dst: compareFiles
      Src: /src/libxml2/runtest.c:2450,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:2453,1
    - Dst: xmlReadFile
      Src: /src/libxml2/runtest.c:2458,1
    - Dst: xmlSaveFile
      Src: /src/libxml2/runtest.c:2462,1
    - Dst: compareFiles
      Src: /src/libxml2/runtest.c:2463,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:2470,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:2466,1
    - Dst: unlink
      Src: /src/libxml2/runtest.c:2469,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - filename
    - result
    - ATTRIBUTE_UNUSED
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2473
      start: 2428
    functionDepth: 0
    functionLinenumber: 2428
    functionLinenumberEnd: 2473
    functionName: noentParseTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    - resultFilename
    - compareFiles
    - xmlSaveFile
    - fatalError
    - unlink
    - xmlReadFile
    - xmlFreeDoc
    - fprintf
    linkageType: ''
    returnType: int
    signature: "static int noentParseTest(const char *filename, const char *result,
      const char *err ATTRIBUTE_UNUSED,\t int options) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegisterInputCallbacks
      Src: /src/libxml2/runtest.c:3430,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3444,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3432,1
    - Dst: urip_checkURL
      Src: /src/libxml2/runtest.c:3438,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3440,1
    - Dst: xmlPopInputCallbacks
      Src: /src/libxml2/runtest.c:3451,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 3453
      start: 3419
    functionDepth: 0
    functionLinenumber: 3419
    functionLinenumberEnd: 3453
    functionName: uriPathTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlPopInputCallbacks
    - xmlRegisterInputCallbacks
    - urip_checkURL
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int uriPathTest(const char *filename ATTRIBUTE_UNUSED, const
      char *result ATTRIBUTE_UNUSED, const char *err ATTRIBUTE_UNUSED, int options
      ATTRIBUTE_UNUSED) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:671,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:679,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:673,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:677,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:675,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - name
    - ExternalID
    - SystemID
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 680
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 680
    functionName: internalSubsetDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "static void internalSubsetDebug(void *ctx ATTRIBUTE_UNUSED, const
      xmlChar *name,\t const xmlChar *ExternalID, const xmlChar *SystemID) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewEntity
      Src: /src/libxml2/runtest.c:802,1
    - Dst: xmlBuildURI
      Src: /src/libxml2/runtest.c:804,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:822,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/runtest.c:808,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/runtest.c:810,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 18
    argCount: 6
    argNames:
    - ctx
    - name
    - type
    - publicId
    - systemId
    - content
    argTypes:
    - void*
    - xmlChar*
    - int
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 824
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 824
    functionName: entityDeclDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlNewEntity
    - xmlHashAddEntry
    - fprintf
    - xmlBuildURI
    linkageType: ''
    returnType: void
    signature: 'static void entityDeclDebug(void *ctx, const xmlChar *name, int type,
      const xmlChar *publicId, const xmlChar *systemId, xmlChar *content) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libxml2/runtest.c:3394,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 3
    argNames:
    - context
    - buffer
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 3397
      start: 3386
    functionDepth: 0
    functionLinenumber: 3386
    functionLinenumberEnd: 3397
    functionName: uripRead
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: 'static int uripRead(void * context, char * buffer, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c14nCommonTest
      Src: /src/libxml2/runtest.c:4466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - filename
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 4467
      start: 4461
    functionDepth: 0
    functionLinenumber: 4461
    functionLinenumberEnd: 4467
    functionName: c14nWithoutCommentTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - c14nCommonTest
    linkageType: ''
    returnType: int
    signature: "static int c14nWithoutCommentTest(const char *filename, const char
      *resul ATTRIBUTE_UNUSED,\t\t const char *err ATTRIBUTE_UNUSED,\t\t int options
      ATTRIBUTE_UNUSED) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadFile
      Src: /src/libxml2/runtest.c:3403,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:3406,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3408
      start: 3399
    functionDepth: 0
    functionLinenumber: 3399
    functionLinenumberEnd: 3408
    functionName: urip_checkURL
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlReadFile
    - xmlFreeDoc
    linkageType: ''
    returnType: int
    signature: 'static int urip_checkURL(const char *URL) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c14nCommonTest
      Src: /src/libxml2/runtest.c:4473,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - filename
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 4474
      start: 4468
    functionDepth: 0
    functionLinenumber: 4468
    functionLinenumberEnd: 4474
    functionName: c14nExcWithoutCommentTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - c14nCommonTest
    linkageType: ''
    returnType: int
    signature: "static int c14nExcWithoutCommentTest(const char *filename, const char
      *resul ATTRIBUTE_UNUSED,\t\t const char *err ATTRIBUTE_UNUSED,\t\t int options
      ATTRIBUTE_UNUSED) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:778,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/runtest.c:780,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 781
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 781
    functionName: getParameterEntityDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    - xmlHashLookup
    linkageType: ''
    returnType: xmlEntityPtr
    signature: 'static xmlEntityPtr getParameterEntityDebug(void *ctx, const xmlChar
      *name) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: resultFilename
      Src: /src/libxml2/runtest.c:3088,1
    - Dst: fatalError
      Src: /src/libxml2/runtest.c:3091,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3095,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:3097,1
    - Dst: compareFiles
      Src: /src/libxml2/runtest.c:3105,1
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/runtest.c:3080,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/runtest.c:3079,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3107,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:3103,1
    - Dst: unlink
      Src: /src/libxml2/runtest.c:3113,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3121,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/runtest.c:3082,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3090,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:3116,1
    - Dst: compareFileMem
      Src: /src/libxml2/runtest.c:3119,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/runtest.c:3078,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3084,1
    - Dst: fopen
      Src: /src/libxml2/runtest.c:3093,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:3114,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:3096,1
    - Dst: testXPath
      Src: /src/libxml2/runtest.c:3101,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 4
    argNames:
    - filename
    - result
    - err
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 3126
      start: 3068
    functionDepth: 0
    functionLinenumber: 3068
    functionLinenumberEnd: 3126
    functionName: xmlidDocTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCtxtReadFile
    - resultFilename
    - fclose
    - compareFiles
    - fopen
    - testXPath
    - fatalError
    - compareFileMem
    - xmlCtxtSetErrorHandler
    - unlink
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - fprintf
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int xmlidDocTest(const char *filename, const char *result,
      const char *err, int options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAX2StartElementNs
      Src: /src/libxml2/runtest.c:2041,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 9
    argNames:
    - ctx
    - localname
    - prefix
    - URI
    - nb_namespaces
    - namespaces
    - nb_attributes
    - nb_defaulted
    - attributes
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - int
    - xmlChar**
    - int
    - int
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 2043
      start: 2035
    functionDepth: 0
    functionLinenumber: 2035
    functionLinenumberEnd: 2043
    functionName: startElementNsBnd
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlSAX2StartElementNs
    linkageType: ''
    returnType: void
    signature: 'static void startElementNsBnd(void *ctx, const xmlChar *localname,
      const xmlChar *prefix, const xmlChar *URI, int nb_namespaces, const xmlChar
      **namespaces, int nb_attributes, int nb_defaulted, const xmlChar **attributes) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderNodeType
      Src: /src/libxml2/runtest.c:2645,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2655,1
    - Dst: xmlTextReaderConstName
      Src: /src/libxml2/runtest.c:2648,1
    - Dst: xmlTextReaderIsEmptyElement
      Src: /src/libxml2/runtest.c:2646,1
    - Dst: xmlTextReaderConstValue
      Src: /src/libxml2/runtest.c:2652,1
    - Dst: xmlTextReaderDepth
      Src: /src/libxml2/runtest.c:2656,1
    - Dst: xmlTextReaderHasValue
      Src: /src/libxml2/runtest.c:2660,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2662,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2664,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - out
    - reader
    argTypes:
    - FILE*
    - xmlTextReaderPtr
    constantsTouched: []
    func_position:
      end: 2666
      start: 2641
    functionDepth: 0
    functionLinenumber: 2641
    functionLinenumberEnd: 2666
    functionName: processNode
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlTextReaderHasValue
    - xmlTextReaderIsEmptyElement
    - xmlTextReaderConstValue
    - xmlTextReaderConstName
    - xmlTextReaderDepth
    - xmlTextReaderNodeType
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void processNode(FILE *out, xmlTextReaderPtr reader) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAX2EndElementNs
      Src: /src/libxml2/runtest.c:2049,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - localname
    - prefix
    - URI
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2050
      start: 2045
    functionDepth: 0
    functionLinenumber: 2045
    functionLinenumberEnd: 2050
    functionName: endElementNsBnd
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlSAX2EndElementNs
    linkageType: ''
    returnType: void
    signature: 'static void endElementNsBnd(void *ctx, const xmlChar *localname, const
      xmlChar *prefix, const xmlChar *URI) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: resultFilename
      Src: /src/libxml2/runtest.c:2680,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2682,1
    - Dst: fopen
      Src: /src/libxml2/runtest.c:2685,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:2688,1
    - Dst: testErrorHandler
      Src: /src/libxml2/runtest.c:2696,1
    - Dst: testErrorHandler
      Src: /src/libxml2/runtest.c:2714,1
    - Dst: testErrorHandler
      Src: /src/libxml2/runtest.c:2718,1
    - Dst: processNode
      Src: /src/libxml2/runtest.c:2710,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/runtest.c:2707,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:2728,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2731,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/runtest.c:2711,1
    - Dst: testErrorHandler
      Src: /src/libxml2/runtest.c:2720,1
    - Dst: compareFiles
      Src: /src/libxml2/runtest.c:2725,1
    - Dst: compareFileMem
      Src: /src/libxml2/runtest.c:2736,1
    - Dst: printf
      Src: /src/libxml2/runtest.c:2739,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2687,1
    - Dst: xmlTextReaderRelaxNGValidate
      Src: /src/libxml2/runtest.c:2694,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:2698,1
    - Dst: xmlTextReaderIsValid
      Src: /src/libxml2/runtest.c:2717,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:2724,1
    - Dst: unlink
      Src: /src/libxml2/runtest.c:2727,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2738,1
    - Dst: fatalError
      Src: /src/libxml2/runtest.c:2683,1
    - Dst: unlink
      Src: /src/libxml2/runtest.c:2700,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:2701,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 6
    argNames:
    - filename
    - result
    - err
    - reader
    - rng
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - char*
    - char*
    - xmlTextReaderPtr
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2745
      start: 2667
    functionDepth: 0
    functionLinenumber: 2667
    functionLinenumberEnd: 2745
    functionName: streamProcessTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    - resultFilename
    - compareFiles
    - fclose
    - xmlTextReaderRead
    - testErrorHandler
    - fopen
    - processNode
    - fatalError
    - xmlTextReaderIsValid
    - compareFileMem
    - printf
    - unlink
    - fprintf
    - xmlTextReaderRelaxNGValidate
    linkageType: ''
    returnType: int
    signature: 'static int streamProcessTest(const char *filename, const char *result,
      const char *err, xmlTextReaderPtr reader, const char *rng, int options ATTRIBUTE_UNUSED) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:694,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:702,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:696,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:698,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:700,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - name
    - ExternalID
    - SystemID
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 703
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 703
    functionName: externalSubsetDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "static void externalSubsetDebug(void *ctx ATTRIBUTE_UNUSED, const
      xmlChar *name,\t const xmlChar *ExternalID, const xmlChar *SystemID) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFormatError
      Src: /src/libxml2/runtest.c:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - err
    argTypes:
    - void*
    - xmlError*
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: testStructuredErrorHandler
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFormatError
    linkageType: ''
    returnType: void
    signature: 'static void testStructuredErrorHandler(void *ctx ATTRIBUTE_UNUSED,
      const xmlError *err) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:976,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:979,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:984,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:981,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - name
    - atts
    argTypes:
    - void*
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 985
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 985
    functionName: startElementDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void startElementDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar
      *name, const xmlChar **atts) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1645,1
    - Dst: fwrite
      Src: /src/libxml2/runtest.c:1649,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1650
      start: 1639
    functionDepth: 0
    functionLinenumber: 1639
    functionLinenumberEnd: 1650
    functionName: charactersTokenizer
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fwrite
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void charactersTokenizer(void *ctx, const xmlChar *ch, int
      len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pendingTokenizer
      Src: /src/libxml2/runtest.c:1667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1668
      start: 1662
    functionDepth: 0
    functionLinenumber: 1662
    functionLinenumberEnd: 1668
    functionName: endDocumentTokenizer
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - pendingTokenizer
    linkageType: ''
    returnType: void
    signature: 'static void endDocumentTokenizer(void *ctx) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:2020,1
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:2022,1
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:2023,1
    - Dst: xmlSAX2StartElement
      Src: /src/libxml2/runtest.c:2026,1
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:2021,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - xname
    - atts
    argTypes:
    - void*
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 2027
      start: 2015
    functionDepth: 0
    functionLinenumber: 2015
    functionLinenumberEnd: 2027
    functionName: startElementBnd
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlSAX2StartElement
    - strcmp
    linkageType: ''
    returnType: void
    signature: 'static void startElementBnd(void *ctx, const xmlChar *xname, const
      xmlChar **atts) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/runtest.c:305,1
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/runtest.c:317,1
    - Dst: setenv
      Src: /src/libxml2/runtest.c:315,1
    - Dst: xmlMemSetup
      Src: /src/libxml2/runtest.c:306,1
    - Dst: putenv
      Src: /src/libxml2/runtest.c:313,1
    - Dst: xmlRelaxNGInitTypes
      Src: /src/libxml2/runtest.c:320,1
    - Dst: xmlSchemaInitTypes
      Src: /src/libxml2/runtest.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 325
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 325
    functionName: initializeLibxml2
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - setenv
    - xmlInitParser
    - xmlInitializeCatalog
    - xmlRelaxNGInitTypes
    - xmlSchemaInitTypes
    - xmlMemSetup
    - putenv
    linkageType: ''
    returnType: void
    signature: 'static void initializeLibxml2(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pendingTokenizer
      Src: /src/libxml2/runtest.c:1657,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1659,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1660
      start: 1652
    functionDepth: 0
    functionLinenumber: 1652
    functionLinenumberEnd: 1660
    functionName: commentTokenizer
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - pendingTokenizer
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void commentTokenizer(void *ctx, const xmlChar *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAX2EndElement
      Src: /src/libxml2/runtest.c:2032,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2033
      start: 2029
    functionDepth: 0
    functionLinenumber: 2029
    functionLinenumberEnd: 2033
    functionName: endElementBnd
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlSAX2EndElement
    linkageType: ''
    returnType: void
    signature: 'static void endElementBnd(void *ctx, const xmlChar *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:959,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 960
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 960
    functionName: endDocumentDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void endDocumentDebug(void *ctx ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1357,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:1366,1
    - Dst: htmlEncodeEntities
      Src: /src/libxml2/runtest.c:1368,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1360,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1365,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1370,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1373,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1377,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - name
    - atts
    argTypes:
    - void*
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1378
      start: 1352
    functionDepth: 0
    functionLinenumber: 1352
    functionLinenumberEnd: 1378
    functionName: htmlstartElementDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - htmlEncodeEntities
    - strlen
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void htmlstartElementDebug(void *ctx ATTRIBUTE_UNUSED, const
      xmlChar *name, const xmlChar **atts) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: resultFilename
      Src: /src/libxml2/runtest.c:1481,1
    - Dst: fopen
      Src: /src/libxml2/runtest.c:1486,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:1489,1
    - Dst: htmlNewSAXParserCtxt
      Src: /src/libxml2/runtest.c:1497,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/runtest.c:1499,1
    - Dst: xmlCreateFileParserCtxt
      Src: /src/libxml2/runtest.c:1504,1
    - Dst: xmlParseDocument
      Src: /src/libxml2/runtest.c:1507,1
    - Dst: htmlNewSAXParserCtxt
      Src: /src/libxml2/runtest.c:1525,1
    - Dst: htmlCtxtReadFile
      Src: /src/libxml2/runtest.c:1526,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/runtest.c:1510,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:1550,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/runtest.c:1542,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/runtest.c:1545,1
    - Dst: xmlParseDocument
      Src: /src/libxml2/runtest.c:1546,1
    - Dst: xmlHashFree
      Src: /src/libxml2/runtest.c:1548,1
    - Dst: xmlHashFree
      Src: /src/libxml2/runtest.c:1549,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/runtest.c:1551,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1488,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1483,1
    - Dst: htmlCtxtReadFile
      Src: /src/libxml2/runtest.c:1498,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1513,1
    - Dst: memcpy
      Src: /src/libxml2/runtest.c:1505,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1517,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/runtest.c:1527,1
    - Dst: memcpy
      Src: /src/libxml2/runtest.c:1539,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/runtest.c:1543,1
    - Dst: compareFiles
      Src: /src/libxml2/runtest.c:1554,1
    - Dst: fatalError
      Src: /src/libxml2/runtest.c:1484,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/runtest.c:1506,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:1509,1
    - Dst: xmlCreateFileParserCtxt
      Src: /src/libxml2/runtest.c:1533,1
    - Dst: memcpy
      Src: /src/libxml2/runtest.c:1536,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:1553,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1555,1
    - Dst: unlink
      Src: /src/libxml2/runtest.c:1561,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:1562,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 73
    argCount: 4
    argNames:
    - filename
    - result
    - ATTRIBUTE_UNUSED
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1566
      start: 1473
    functionDepth: 0
    functionLinenumber: 1473
    functionLinenumberEnd: 1566
    functionName: saxParseTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlCtxtUseOptions
    - compareFiles
    - fclose
    - fatalError
    - htmlNewSAXParserCtxt
    - xmlFreeDoc
    - fprintf
    - htmlCtxtReadFile
    - xmlHashFree
    - memcpy
    - fopen
    - unlink
    - xmlFreeParserCtxt
    - xmlCreateFileParserCtxt
    - xmlParseDocument
    - xmlFree
    - resultFilename
    - xmlHashCreate
    - htmlFreeParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int saxParseTest(const char *filename, const char *result,
      const char *err ATTRIBUTE_UNUSED, int options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: loadMem
      Src: /src/libxml2/runtest.c:2815,1
    - Dst: streamProcessTest
      Src: /src/libxml2/runtest.c:2822,1
    - Dst: xmlTextReaderSetStructuredErrorHandler
      Src: /src/libxml2/runtest.c:2820,1
    - Dst: xmlReaderForMemory
      Src: /src/libxml2/runtest.c:2819,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2816,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:2823,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/runtest.c:2824,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 4
    argNames:
    - filename
    - result
    - err
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2826
      start: 2804
    functionDepth: 0
    functionLinenumber: 2804
    functionLinenumberEnd: 2826
    functionName: streamMemParseTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    - loadMem
    - streamProcessTest
    - xmlReaderForMemory
    - xmlTextReaderSetStructuredErrorHandler
    - xmlFreeTextReader
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int streamMemParseTest(const char *filename, const char *result,
      const char *err, int options) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: resultFilename
      Src: /src/libxml2/runtest.c:2893,1
    - Dst: fopen
      Src: /src/libxml2/runtest.c:2898,1
    - Dst: fopen
      Src: /src/libxml2/runtest.c:2905,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2920,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2900,1
    - Dst: fatalError
      Src: /src/libxml2/runtest.c:2896,1
    - Dst: testXPath
      Src: /src/libxml2/runtest.c:2923,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:2927,1
    - Dst: compareFiles
      Src: /src/libxml2/runtest.c:2930,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:2938,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2895,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2907,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:2913,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:2928,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2932,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:2901,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:2909,1
    - Dst: fgets
      Src: /src/libxml2/runtest.c:2912,1
    - Dst: unlink
      Src: /src/libxml2/runtest.c:2937,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 4
    argNames:
    - filename
    - result
    - xptr
    - expr
    argTypes:
    - char*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2941
      start: 2885
    functionDepth: 0
    functionLinenumber: 2885
    functionLinenumberEnd: 2941
    functionName: xpathCommonTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    - resultFilename
    - compareFiles
    - fclose
    - fgets
    - fopen
    - testXPath
    - fatalError
    - unlink
    - strlen
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int xpathCommonTest(const char *filename, const char *result,
      int xptr, int expr) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxml2/runtest.c:5381,1
    - Dst: printf
      Src: /src/libxml2/runtest.c:5389,1
    - Dst: printf
      Src: /src/libxml2/runtest.c:5387,1
    - Dst: launchTests
      Src: /src/libxml2/runtest.c:5382,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 5395
      start: 5372
    functionDepth: 0
    functionLinenumber: 5372
    functionLinenumberEnd: 5395
    functionName: runtest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - printf
    - launchTests
    linkageType: ''
    returnType: int
    signature: 'static int runtest(int i) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/runtest.c:275,1
    - Dst: va_end
      Src: /src/libxml2/runtest.c:279,1
    - Dst: vsnprintf
      Src: /src/libxml2/runtest.c:276,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 288
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 288
    functionName: testErrorHandler
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: 'static void testErrorHandler(void *ctx ATTRIBUTE_UNUSED, const char
      *msg, ...) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: setvbuf
      Src: /src/libxml2/runtest.c:5403,1
    - Dst: _set_output_format
      Src: /src/libxml2/runtest.c:5408,1
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:5414,1
    - Dst: initializeLibxml2
      Src: /src/libxml2/runtest.c:5411,1
    - Dst: setvbuf
      Src: /src/libxml2/runtest.c:5404,1
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:5416,1
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:5418,1
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:5420,1
    - Dst: strstr
      Src: /src/libxml2/runtest.c:5424,1
    - Dst: runtest
      Src: /src/libxml2/runtest.c:5425,1
    - Dst: xmlCleanupParser
      Src: /src/libxml2/runtest.c:5445,1
    - Dst: runtest
      Src: /src/libxml2/runtest.c:5433,1
    - Dst: printf
      Src: /src/libxml2/runtest.c:5442,1
    - Dst: printf
      Src: /src/libxml2/runtest.c:5438,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 5448
      start: 5397
    functionDepth: 0
    functionLinenumber: 5397
    functionLinenumberEnd: 5448
    functionName: main
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - _set_output_format
    - strcmp
    - initializeLibxml2
    - runtest
    - setvbuf
    - strstr
    - printf
    - xmlCleanupParser
    linkageType: ''
    returnType: int
    signature: 'int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/libxml2/runtest.c:375,1
    - Dst: S_ISREG
      Src: /src/libxml2/runtest.c:382,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 387
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 387
    functionName: checkTestFile
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - stat
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: 'static int checkTestFile(const char *filename) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:913,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 8
    argCount: 5
    argNames:
    - ATTRIBUTE_UNUSED
    - name
    - publicId
    - systemId
    - notationName
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 916
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 916
    functionName: unparsedEntityDeclDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "static void unparsedEntityDeclDebug(void *ctx ATTRIBUTE_UNUSED, const
      xmlChar *name,\t\t const xmlChar *publicId, const xmlChar *systemId,\t\t const
      xmlChar *notationName) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:945,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 946
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 946
    functionName: startDocumentDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void startDocumentDebug(void *ctx ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferCreate
      Src: /src/libxml2/runtest.c:2292,1
    - Dst: xmlSaveToBuffer
      Src: /src/libxml2/runtest.c:2293,1
    - Dst: xmlSaveTree
      Src: /src/libxml2/runtest.c:2295,1
    - Dst: xmlSaveClose
      Src: /src/libxml2/runtest.c:2296,1
    - Dst: xmlBufferDetach
      Src: /src/libxml2/runtest.c:2298,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/runtest.c:2299,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - list
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2301
      start: 2285
    functionDepth: 0
    functionLinenumber: 2285
    functionLinenumberEnd: 2301
    functionName: dumpNodeList
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlBufferDetach
    - xmlBufferCreate
    - xmlSaveClose
    - xmlSaveToBuffer
    - xmlSaveTree
    - xmlBufferFree
    linkageType: ''
    returnType: char*
    signature: 'static char *dumpNodeList(xmlNodePtr list) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: htmlNewParserCtxt
      Src: /src/libxml2/runtest.c:2494,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/runtest.c:2500,1
    - Dst: compareFileMem
      Src: /src/libxml2/runtest.c:2533,1
    - Dst: compareFileMem
      Src: /src/libxml2/runtest.c:2541,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/runtest.c:2557,1
    - Dst: htmlCtxtReadFile
      Src: /src/libxml2/runtest.c:2496,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/runtest.c:2501,1
    - Dst: xmlStrdup
      Src: /src/libxml2/runtest.c:2523,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:2534,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2538,1
    - Dst: htmlDocDumpMemory
      Src: /src/libxml2/runtest.c:2528,1
    - Dst: testParseContent
      Src: /src/libxml2/runtest.c:2553,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:2556,1
    - Dst: xmlXIncludeSetFlags
      Src: /src/libxml2/runtest.c:2509,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2543,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2548,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/runtest.c:2495,1
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/runtest.c:2502,1
    - Dst: xmlXIncludeNewContext
      Src: /src/libxml2/runtest.c:2507,1
    - Dst: xmlXIncludeSetErrorHandler
      Src: /src/libxml2/runtest.c:2508,1
    - Dst: xmlXIncludeProcessNode
      Src: /src/libxml2/runtest.c:2510,1
    - Dst: testErrorHandler
      Src: /src/libxml2/runtest.c:2511,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:2512,1
    - Dst: xmlXIncludeFreeContext
      Src: /src/libxml2/runtest.c:2515,1
    - Dst: xmlDocDumpMemory
      Src: /src/libxml2/runtest.c:2531,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 4
    argNames:
    - filename
    - result
    - err
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2559
      start: 2483
    functionDepth: 0
    functionLinenumber: 2483
    functionLinenumberEnd: 2559
    functionName: errParseTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFreeDoc
    - htmlCtxtReadFile
    - xmlXIncludeFreeContext
    - testErrorHandler
    - htmlNewParserCtxt
    - xmlCtxtSetErrorHandler
    - xmlStrdup
    - xmlFreeParserCtxt
    - htmlDocDumpMemory
    - xmlNewParserCtxt
    - xmlFree
    - testParseContent
    - xmlXIncludeSetErrorHandler
    - xmlXIncludeSetFlags
    - xmlCtxtReadFile
    - xmlXIncludeNewContext
    - xmlDocDumpMemory
    - compareFileMem
    - xmlXIncludeProcessNode
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int errParseTest(const char *filename, const char *result,
      const char *err, int options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 3376
      start: 3370
    functionDepth: 0
    functionLinenumber: 3370
    functionLinenumberEnd: 3376
    functionName: uripClose
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int uripClose(void * context) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/libxml2/runtest.c:149,1
    - Dst: xmlMalloc
      Src: /src/libxml2/runtest.c:168,1
    - Dst: memset
      Src: /src/libxml2/runtest.c:162,1
    - Dst: FindFirstFileA
      Src: /src/libxml2/runtest.c:164,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:150,1
    - Dst: FindClose
      Src: /src/libxml2/runtest.c:170,1
    - Dst: strncpy
      Src: /src/libxml2/runtest.c:173,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/runtest.c:174,1
    - Dst: FindNextFileA
      Src: /src/libxml2/runtest.c:178,1
    - Dst: xmlRealloc
      Src: /src/libxml2/runtest.c:182,1
    - Dst: strncpy
      Src: /src/libxml2/runtest.c:188,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/runtest.c:189,1
    - Dst: FindClose
      Src: /src/libxml2/runtest.c:197,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 4
    argNames:
    - pattern
    - flags
    - errfunc
    - pglob
    argTypes:
    - char*
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - glob_t*
    constantsTouched: []
    func_position:
      end: 199
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 199
    functionName: glob
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - FindNextFileA
    - xmlMemStrdup
    - memset
    - xmlRealloc
    - FindFirstFileA
    - strncpy
    - FindClose
    - strlen
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'static int glob(const char *pattern, ATTRIBUTE_UNUSED int flags, ATTRIBUTE_UNUSED
      int errfunc(const char *epath, int eerrno), glob_t *pglob) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libxml2/runtest.c:415,1
    - Dst: open
      Src: /src/libxml2/runtest.c:424,1
    - Dst: close
      Src: /src/libxml2/runtest.c:445,1
    - Dst: memcmp
      Src: /src/libxml2/runtest.c:436,1
    - Dst: open
      Src: /src/libxml2/runtest.c:396,1
    - Dst: write
      Src: /src/libxml2/runtest.c:410,1
    - Dst: open
      Src: /src/libxml2/runtest.c:399,1
    - Dst: unlink
      Src: /src/libxml2/runtest.c:417,1
    - Dst: close
      Src: /src/libxml2/runtest.c:429,1
    - Dst: close
      Src: /src/libxml2/runtest.c:437,1
    - Dst: open
      Src: /src/libxml2/runtest.c:421,1
    - Dst: read
      Src: /src/libxml2/runtest.c:426,1
    - Dst: close
      Src: /src/libxml2/runtest.c:443,1
    - Dst: read
      Src: /src/libxml2/runtest.c:406,1
    - Dst: close
      Src: /src/libxml2/runtest.c:401,1
    - Dst: close
      Src: /src/libxml2/runtest.c:414,1
    - Dst: close
      Src: /src/libxml2/runtest.c:431,1
    - Dst: read
      Src: /src/libxml2/runtest.c:427,1
    - Dst: close
      Src: /src/libxml2/runtest.c:439,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 2
    argNames:
    - r1
    - /* temp */
    - r2
    - /* result */
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 447
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 447
    functionName: compareFiles
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - open
    - write
    - unlink
    - memcmp
    - read
    - close
    linkageType: ''
    returnType: int
    signature: 'static int compareFiles(const char *r1 /* temp */, const char *r2
      /* result */) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:2315,1
    - Dst: xmlNewInputFromString
      Src: /src/libxml2/runtest.c:2337,1
    - Dst: xmlCtxtParseContent
      Src: /src/libxml2/runtest.c:2338,1
    - Dst: dumpNodeList
      Src: /src/libxml2/runtest.c:2339,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:2344,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:2350,1
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:2354,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:2348,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:2361,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2341,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/runtest.c:2345,1
    - Dst: xmlParseInNodeContext
      Src: /src/libxml2/runtest.c:2350,1
    - Dst: dumpNodeList
      Src: /src/libxml2/runtest.c:2335,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/runtest.c:2330,1
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:2340,1
    - Dst: dumpNodeList
      Src: /src/libxml2/runtest.c:2353,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:2358,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runtest.c:2324,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2355,1
    - Dst: xmlStrdup
      Src: /src/libxml2/runtest.c:2349,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/runtest.c:2359,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 3
    argNames:
    - ctxt
    - doc
    - filename
    argTypes:
    - xmlParserCtxtPtr
    - xmlDocPtr
    - char*
    constantsTouched: []
    func_position:
      end: 2363
      start: 2303
    functionDepth: 0
    functionLinenumber: 2303
    functionLinenumberEnd: 2363
    functionName: testParseContent
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlFree
    - dumpNodeList
    - xmlParseInNodeContext
    - xmlNewInputFromString
    - strcmp
    - xmlStrdup
    - xmlStrEqual
    - strlen
    - fprintf
    - xmlFreeNodeList
    - xmlCtxtParseContent
    linkageType: ''
    returnType: int
    signature: 'static int testParseContent(xmlParserCtxtPtr ctxt, xmlDocPtr doc,
      const char *filename) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:884,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - name
    - publicId
    - systemId
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 886
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 886
    functionName: notationDeclDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "static void notationDeclDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar
      *name,\t const xmlChar *publicId, const xmlChar *systemId) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:931,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlSAXLocatorPtr
    constantsTouched: []
    func_position:
      end: 932
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 932
    functionName: setDocumentLocatorDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void setDocumentLocatorDebug(void *ctx ATTRIBUTE_UNUSED, xmlSAXLocatorPtr
      loc ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htmlEncodeEntities
      Src: /src/libxml2/runtest.c:1394,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1398
      start: 1388
    functionDepth: 0
    functionLinenumber: 1388
    functionLinenumberEnd: 1398
    functionName: htmlcharactersDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - htmlEncodeEntities
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void htmlcharactersDebug(void *ctx ATTRIBUTE_UNUSED, const
      xmlChar *ch, int len) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:3353,1
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:3357,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:3360,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - URI
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3362
      start: 3349
    functionDepth: 0
    functionLinenumber: 3349
    functionLinenumberEnd: 3362
    functionName: uripOpen
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - strlen
    - strcmp
    linkageType: ''
    returnType: void*
    signature: 'static void *uripOpen(const char * URI) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadFile
      Src: /src/libxml2/runtest.c:3029,1
    - Dst: snprintf
      Src: /src/libxml2/runtest.c:3036,1
    - Dst: baseFilename
      Src: /src/libxml2/runtest.c:3037,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3032,1
    - Dst: glob
      Src: /src/libxml2/runtest.c:3041,1
    - Dst: snprintf
      Src: /src/libxml2/runtest.c:3043,1
    - Dst: baseFilename
      Src: /src/libxml2/runtest.c:3044,1
    - Dst: xpathCommonTest
      Src: /src/libxml2/runtest.c:3047,1
    - Dst: globfree
      Src: /src/libxml2/runtest.c:3051,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:3053,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - filename
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 3055
      start: 3017
    functionDepth: 0
    functionLinenumber: 3017
    functionLinenumberEnd: 3055
    functionName: xptrDocTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - globfree
    - glob
    - baseFilename
    - xmlReadFile
    - xmlFreeDoc
    - snprintf
    - fprintf
    - xpathCommonTest
    linkageType: ''
    returnType: int
    signature: 'static int xptrDocTest(const char *filename, const char *resul ATTRIBUTE_UNUSED,
      const char *err ATTRIBUTE_UNUSED, int options ATTRIBUTE_UNUSED) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseFile
      Src: /src/libxml2/runtest.c:1822,1
    - Dst: resultFilename
      Src: /src/libxml2/runtest.c:1829,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1831,1
    - Dst: fatalError
      Src: /src/libxml2/runtest.c:1832,1
    - Dst: xmlReadFile
      Src: /src/libxml2/runtest.c:1825,1
    - Dst: xmlSaveFile
      Src: /src/libxml2/runtest.c:1834,1
    - Dst: compareFiles
      Src: /src/libxml2/runtest.c:1835,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:1838,1
    - Dst: xmlParseFile
      Src: /src/libxml2/runtest.c:1845,1
    - Dst: xmlReadFile
      Src: /src/libxml2/runtest.c:1848,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:1856,1
    - Dst: xmlSaveFile
      Src: /src/libxml2/runtest.c:1852,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:1860,1
    - Dst: unlink
      Src: /src/libxml2/runtest.c:1859,1
    - Dst: compareFiles
      Src: /src/libxml2/runtest.c:1853,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 4
    argNames:
    - filename
    - result
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1864
      start: 1808
    functionDepth: 0
    functionLinenumber: 1808
    functionLinenumberEnd: 1864
    functionName: oldParseTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    - resultFilename
    - compareFiles
    - xmlSaveFile
    - fatalError
    - unlink
    - xmlReadFile
    - xmlFreeDoc
    - fprintf
    - xmlParseFile
    linkageType: ''
    returnType: int
    signature: "static int oldParseTest(const char *filename, const char *result,
      const char *err ATTRIBUTE_UNUSED,\t int options ATTRIBUTE_UNUSED) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:653,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 655
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 655
    functionName: hasExternalSubsetDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int hasExternalSubsetDebug(void *ctx ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/runtest.c:1136,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1137,1
    - Dst: va_end
      Src: /src/libxml2/runtest.c:1139,1
    - Dst: vfprintf
      Src: /src/libxml2/runtest.c:1138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 1140
      start: 1128
    functionDepth: 0
    functionLinenumber: 1128
    functionLinenumberEnd: 1140
    functionName: warningDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - va_start
    - vfprintf
    - fprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: 'static void warningDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg,
      ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uriCommonTest
      Src: /src/libxml2/runtest.c:3266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - filename
    - result
    - err
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 3267
      start: 3261
    functionDepth: 0
    functionLinenumber: 3261
    functionLinenumberEnd: 3267
    functionName: uriParseTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - uriCommonTest
    linkageType: ''
    returnType: int
    signature: 'static int uriParseTest(const char *filename, const char *result,
      const char *err, int options ATTRIBUTE_UNUSED) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/runtest.c:4561,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4578,1
    - Dst: CreateThread
      Src: /src/libxml2/runtest.c:4573,1
    - Dst: WaitForMultipleObjects
      Src: /src/libxml2/runtest.c:4583,1
    - Dst: xmlLoadCatalog
      Src: /src/libxml2/runtest.c:4563,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4585,1
    - Dst: GetExitCodeThread
      Src: /src/libxml2/runtest.c:4591,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4593,1
    - Dst: CloseHandle
      Src: /src/libxml2/runtest.c:4596,1
    - Dst: xmlCatalogCleanup
      Src: /src/libxml2/runtest.c:4599,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4602,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4610
      start: 4554
    functionDepth: 0
    functionLinenumber: 4554
    functionLinenumberEnd: 4610
    functionName: testThread
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - WaitForMultipleObjects
    - xmlInitParser
    - GetExitCodeThread
    - xmlCatalogCleanup
    - xmlLoadCatalog
    - fprintf
    - CloseHandle
    - CreateThread
    linkageType: ''
    returnType: int
    signature: 'static int testThread(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/runtest.c:4624,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4638,1
    - Dst: pthread_join
      Src: /src/libxml2/runtest.c:4644,1
    - Dst: xmlLoadCatalog
      Src: /src/libxml2/runtest.c:4627,1
    - Dst: pthread_create
      Src: /src/libxml2/runtest.c:4635,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4646,1
    - Dst: xmlCatalogCleanup
      Src: /src/libxml2/runtest.c:4651,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4654,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4660
      start: 4617
    functionDepth: 0
    functionLinenumber: 4617
    functionLinenumberEnd: 4660
    functionName: testThread
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlInitParser
    - xmlCatalogCleanup
    - pthread_create
    - pthread_join
    - xmlLoadCatalog
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int testThread(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 639
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 639
    functionName: hasInternalSubsetDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int hasInternalSubsetDebug(void *ctx ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - value
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1118
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1118
    functionName: commentDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void commentDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar
      *value) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadFile
      Src: /src/libxml2/runtest.c:2979,1
    - Dst: snprintf
      Src: /src/libxml2/runtest.c:2986,1
    - Dst: glob
      Src: /src/libxml2/runtest.c:2991,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2982,1
    - Dst: baseFilename
      Src: /src/libxml2/runtest.c:2987,1
    - Dst: snprintf
      Src: /src/libxml2/runtest.c:2993,1
    - Dst: baseFilename
      Src: /src/libxml2/runtest.c:2994,1
    - Dst: xpathCommonTest
      Src: /src/libxml2/runtest.c:2997,1
    - Dst: globfree
      Src: /src/libxml2/runtest.c:3001,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:3003,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - filename
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 3005
      start: 2967
    functionDepth: 0
    functionLinenumber: 2967
    functionLinenumberEnd: 3005
    functionName: xpathDocTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - globfree
    - glob
    - baseFilename
    - xmlReadFile
    - xmlFreeDoc
    - snprintf
    - fprintf
    - xpathCommonTest
    linkageType: ''
    returnType: int
    signature: 'static int xpathDocTest(const char *filename, const char *resul ATTRIBUTE_UNUSED,
      const char *err ATTRIBUTE_UNUSED, int options) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadFile
      Src: /src/libxml2/runtest.c:3632,1
    - Dst: xmlRelaxNGNewValidCtxt
      Src: /src/libxml2/runtest.c:3638,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3634,1
    - Dst: xmlRelaxNGSetValidStructuredErrors
      Src: /src/libxml2/runtest.c:3639,1
    - Dst: xmlRelaxNGValidateDoc
      Src: /src/libxml2/runtest.c:3640,1
    - Dst: testErrorHandler
      Src: /src/libxml2/runtest.c:3642,1
    - Dst: testErrorHandler
      Src: /src/libxml2/runtest.c:3644,1
    - Dst: testErrorHandler
      Src: /src/libxml2/runtest.c:3646,1
    - Dst: xmlRelaxNGFreeValidCtxt
      Src: /src/libxml2/runtest.c:3650,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:3651,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - sch
    - filename
    - options
    - schemas
    argTypes:
    - char*
    - char*
    - int
    - xmlRelaxNGPtr
    constantsTouched: []
    func_position:
      end: 3653
      start: 3623
    functionDepth: 0
    functionLinenumber: 3623
    functionLinenumberEnd: 3653
    functionName: rngOneTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGFreeValidCtxt
    - xmlRelaxNGSetValidStructuredErrors
    - xmlRelaxNGNewValidCtxt
    - testErrorHandler
    - xmlRelaxNGValidateDoc
    - xmlReadFile
    - xmlFreeDoc
    - fprintf
    linkageType: ''
    returnType: int
    signature: "static int rngOneTest(const char *sch, const char *filename,\t int
      options,\t xmlRelaxNGPtr schemas) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadFile
      Src: /src/libxml2/runtest.c:3857,1
    - Dst: xmlSchematronValidateDoc
      Src: /src/libxml2/runtest.c:3866,1
    - Dst: xmlSchematronSetValidStructuredErrors
      Src: /src/libxml2/runtest.c:3864,1
    - Dst: xmlSchematronNewValidCtxt
      Src: /src/libxml2/runtest.c:3863,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3859,1
    - Dst: testErrorHandler
      Src: /src/libxml2/runtest.c:3868,1
    - Dst: testErrorHandler
      Src: /src/libxml2/runtest.c:3870,1
    - Dst: testErrorHandler
      Src: /src/libxml2/runtest.c:3872,1
    - Dst: xmlSchematronFreeValidCtxt
      Src: /src/libxml2/runtest.c:3876,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:3877,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - sch
    - filename
    - options
    - schematron
    argTypes:
    - char*
    - char*
    - int
    - xmlSchematronPtr
    constantsTouched: []
    func_position:
      end: 3879
      start: 3850
    functionDepth: 0
    functionLinenumber: 3850
    functionLinenumberEnd: 3879
    functionName: schematronOneTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlSchematronNewValidCtxt
    - testErrorHandler
    - xmlSchematronValidateDoc
    - xmlSchematronFreeValidCtxt
    - xmlReadFile
    - xmlFreeDoc
    - xmlSchematronSetValidStructuredErrors
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int schematronOneTest(const char *sch, const char *filename,
      int options, xmlSchematronPtr schematron) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:865,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - name
    - type
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - int
    - xmlElementContentPtr
    constantsTouched: []
    func_position:
      end: 867
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 867
    functionName: elementDeclDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "static void elementDeclDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar
      *name, int type,\t xmlElementContentPtr content ATTRIBUTE_UNUSED) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1023,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1024
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1024
    functionName: charactersDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void charactersDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar
      *ch, int len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - value
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1103
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1103
    functionName: cdataBlockDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void cdataBlockDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar
      *value, int len) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libxml2/runtest.c:338,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 344
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 344
    functionName: baseFilename
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - strlen
    linkageType: ''
    returnType: char*
    signature: 'static const char *baseFilename(const char *filename) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htmlEncodeEntities
      Src: /src/libxml2/runtest.c:1414,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1418
      start: 1408
    functionDepth: 0
    functionLinenumber: 1408
    functionLinenumberEnd: 1418
    functionName: htmlcdataDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - htmlEncodeEntities
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void htmlcdataDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar
      *ch, int len) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/runtest.c:4201,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runtest.c:4208,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4220,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:4228,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4239,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/runtest.c:4241,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4253,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:4262,1
    - Dst: xmlReadFile
      Src: /src/libxml2/runtest.c:4192,1
    - Dst: xmlXPathNewContext
      Src: /src/libxml2/runtest.c:4225,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:4229,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:4221,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxml2/runtest.c:4238,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4227,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:4242,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4194,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:4203,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:4214,1
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/runtest.c:4218,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/runtest.c:4255,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/runtest.c:4263,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4202,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4213,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:4240,1
    - Dst: xmlXPathEvalExpression
      Src: /src/libxml2/runtest.c:4251,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:4254,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:4256,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:4264,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 2
    argNames:
    - parent_doc
    - filename
    argTypes:
    - xmlDocPtr
    - char*
    constantsTouched: []
    func_position:
      end: 4266
      start: 4180
    functionDepth: 0
    functionLinenumber: 4180
    functionLinenumberEnd: 4266
    functionName: load_xpath_expr
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlFree
    - xmlXPathNewContext
    - xmlXPathFreeContext
    - xmlReadFile
    - xmlXPathRegisterNs
    - xmlStrEqual
    - xmlFreeDoc
    - xmlXPathEvalExpression
    - xmlNodeGetContent
    - fprintf
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: 'static xmlXPathObjectPtr load_xpath_expr (xmlDocPtr parent_doc, const
      char* filename) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: baseFilename
      Src: /src/libxml2/runtest.c:359,1
    - Dst: snprintf
      Src: /src/libxml2/runtest.c:367,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/runtest.c:369,1
    - Dst: strncpy
      Src: /src/libxml2/runtest.c:365,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 3
    argNames:
    - filename
    - out
    - suffix
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 370
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 370
    functionName: resultFilename
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlMemStrdup
    - snprintf
    - baseFilename
    - strncpy
    linkageType: ''
    returnType: char*
    signature: 'static char *resultFilename(const char *filename, const char *out,
      const char *suffix) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testThread
      Src: /src/libxml2/runtest.c:4667,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 4668
      start: 4662
    functionDepth: 0
    functionLinenumber: 4662
    functionLinenumberEnd: 4668
    functionName: threadsTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - testThread
    linkageType: ''
    returnType: int
    signature: "static int threadsTest(const char *filename ATTRIBUTE_UNUSED,\t const
      char *resul ATTRIBUTE_UNUSED,\t const char *err ATTRIBUTE_UNUSED,\t int options
      ATTRIBUTE_UNUSED) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGFreeParserCtxt
      Src: /src/libxml2/runtest.c:3686,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3722,1
    - Dst: globfree
      Src: /src/libxml2/runtest.c:3737,1
    - Dst: baseFilename
      Src: /src/libxml2/runtest.c:3667,1
    - Dst: xmlRelaxNGParse
      Src: /src/libxml2/runtest.c:3685,1
    - Dst: xmlRelaxNGSetParserStructuredErrors
      Src: /src/libxml2/runtest.c:3683,1
    - Dst: testErrorHandler
      Src: /src/libxml2/runtest.c:3688,1
    - Dst: xmlRelaxNGFree
      Src: /src/libxml2/runtest.c:3697,1
    - Dst: memcpy
      Src: /src/libxml2/runtest.c:3701,1
    - Dst: snprintf
      Src: /src/libxml2/runtest.c:3717,1
    - Dst: compareFileMem
      Src: /src/libxml2/runtest.c:3731,1
    - Dst: glob
      Src: /src/libxml2/runtest.c:3708,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:3714,1
    - Dst: rngOneTest
      Src: /src/libxml2/runtest.c:3727,1
    - Dst: baseFilename
      Src: /src/libxml2/runtest.c:3713,1
    - Dst: xmlRelaxNGFree
      Src: /src/libxml2/runtest.c:3738,1
    - Dst: xmlRelaxNGNewParserCtxt
      Src: /src/libxml2/runtest.c:3682,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:3695,1
    - Dst: snprintf
      Src: /src/libxml2/runtest.c:3704,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3732,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 4
    argNames:
    - filename
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 3741
      start: 3662
    functionDepth: 0
    functionLinenumber: 3662
    functionLinenumberEnd: 3741
    functionName: rngTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGFreeParserCtxt
    - globfree
    - memcpy
    - glob
    - testErrorHandler
    - rngOneTest
    - compareFileMem
    - baseFilename
    - xmlRelaxNGSetParserStructuredErrors
    - xmlRelaxNGNewParserCtxt
    - xmlRelaxNGParse
    - strlen
    - snprintf
    - fprintf
    - xmlRelaxNGFree
    linkageType: ''
    returnType: int
    signature: 'static int rngTest(const char *filename, const char *resul ATTRIBUTE_UNUSED,
      const char *errr ATTRIBUTE_UNUSED, int options) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchematronFree
      Src: /src/libxml2/runtest.c:3919,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:3936,1
    - Dst: xmlSchematronFree
      Src: /src/libxml2/runtest.c:3960,1
    - Dst: baseFilename
      Src: /src/libxml2/runtest.c:3935,1
    - Dst: schematronOneTest
      Src: /src/libxml2/runtest.c:3949,1
    - Dst: xmlSchematronParse
      Src: /src/libxml2/runtest.c:3907,1
    - Dst: xmlSchematronNewParserCtxt
      Src: /src/libxml2/runtest.c:3906,1
    - Dst: testErrorHandler
      Src: /src/libxml2/runtest.c:3910,1
    - Dst: xmlSchematronFreeParserCtxt
      Src: /src/libxml2/runtest.c:3908,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:3917,1
    - Dst: snprintf
      Src: /src/libxml2/runtest.c:3939,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3954,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3944,1
    - Dst: globfree
      Src: /src/libxml2/runtest.c:3959,1
    - Dst: baseFilename
      Src: /src/libxml2/runtest.c:3892,1
    - Dst: memcpy
      Src: /src/libxml2/runtest.c:3923,1
    - Dst: snprintf
      Src: /src/libxml2/runtest.c:3926,1
    - Dst: glob
      Src: /src/libxml2/runtest.c:3930,1
    - Dst: compareFileMem
      Src: /src/libxml2/runtest.c:3953,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 4
    argNames:
    - filename
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 3963
      start: 3887
    functionDepth: 0
    functionLinenumber: 3887
    functionLinenumberEnd: 3963
    functionName: schematronTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlSchematronNewParserCtxt
    - schematronOneTest
    - globfree
    - xmlSchematronParse
    - memcpy
    - testErrorHandler
    - glob
    - compareFileMem
    - baseFilename
    - xmlSchematronFreeParserCtxt
    - strlen
    - snprintf
    - xmlSchematronFree
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int schematronTest(const char *filename, const char *resul
      ATTRIBUTE_UNUSED, const char *errr ATTRIBUTE_UNUSED, int options) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/runtest.c:2589,1
    - Dst: open
      Src: /src/libxml2/runtest.c:2579,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/runtest.c:2583,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/runtest.c:2590,1
    - Dst: xmlCtxtReadFd
      Src: /src/libxml2/runtest.c:2591,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/runtest.c:2592,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:2611,1
    - Dst: xmlDocDumpMemory
      Src: /src/libxml2/runtest.c:2605,1
    - Dst: htmlCtxtReadFd
      Src: /src/libxml2/runtest.c:2584,1
    - Dst: htmlNewParserCtxt
      Src: /src/libxml2/runtest.c:2582,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2621,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2615,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/runtest.c:2585,1
    - Dst: close
      Src: /src/libxml2/runtest.c:2594,1
    - Dst: htmlDocDumpMemory
      Src: /src/libxml2/runtest.c:2602,1
    - Dst: compareFileMem
      Src: /src/libxml2/runtest.c:2607,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:2612,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2626,1
    - Dst: compareFileMem
      Src: /src/libxml2/runtest.c:2619,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 4
    argNames:
    - filename
    - result
    - err
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2630
      start: 2570
    functionDepth: 0
    functionLinenumber: 2570
    functionLinenumberEnd: 2630
    functionName: fdParseTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    - fprintf
    - htmlCtxtReadFd
    - htmlNewParserCtxt
    - xmlDocDumpMemory
    - open
    - compareFileMem
    - xmlCtxtSetErrorHandler
    - xmlCtxtReadFd
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - htmlDocDumpMemory
    - htmlFreeParserCtxt
    - close
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int fdParseTest(const char *filename, const char *result, const
      char *err, int options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/runtest.c:1180,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1181,1
    - Dst: vfprintf
      Src: /src/libxml2/runtest.c:1182,1
    - Dst: va_end
      Src: /src/libxml2/runtest.c:1183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 1184
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1184
    functionName: fatalErrorDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - va_start
    - vfprintf
    - fprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: 'static void fatalErrorDebug(void *ctx ATTRIBUTE_UNUSED, const char
      *msg, ...) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1248,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1254,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1250,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1256,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1252,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1257,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1261,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1263,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1265,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1268,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1272,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1275,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1279,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1274,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 9
    argNames:
    - ATTRIBUTE_UNUSED
    - localname
    - prefix
    - URI
    - nb_namespaces
    - namespaces
    - nb_attributes
    - nb_defaulted
    - attributes
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - int
    - xmlChar**
    - int
    - int
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1280
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1280
    functionName: startElementNsDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "static void startElementNsDebug(void *ctx ATTRIBUTE_UNUSED, const
      xmlChar *localname, const xmlChar *prefix, const xmlChar *URI,\t\t int nb_namespaces,\t\t
      const xmlChar **namespaces,\t\t int nb_attributes,\t\t int nb_defaulted,\t\t
      const xmlChar **attributes) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: baseFilename
      Src: /src/libxml2/runtest.c:3537,1
    - Dst: xmlSchemaParse
      Src: /src/libxml2/runtest.c:3554,1
    - Dst: xmlSchemaNewParserCtxt
      Src: /src/libxml2/runtest.c:3552,1
    - Dst: xmlSchemaSetParserStructuredErrors
      Src: /src/libxml2/runtest.c:3553,1
    - Dst: xmlSchemaFreeParserCtxt
      Src: /src/libxml2/runtest.c:3555,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:3561,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/runtest.c:3563,1
    - Dst: memcpy
      Src: /src/libxml2/runtest.c:3573,1
    - Dst: snprintf
      Src: /src/libxml2/runtest.c:3576,1
    - Dst: memcpy
      Src: /src/libxml2/runtest.c:3581,1
    - Dst: snprintf
      Src: /src/libxml2/runtest.c:3595,1
    - Dst: schemasOneTest
      Src: /src/libxml2/runtest.c:3605,1
    - Dst: glob
      Src: /src/libxml2/runtest.c:3586,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:3592,1
    - Dst: globfree
      Src: /src/libxml2/runtest.c:3609,1
    - Dst: baseFilename
      Src: /src/libxml2/runtest.c:3591,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/runtest.c:3610,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3600,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 4
    argNames:
    - filename
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 3613
      start: 3532
    functionDepth: 0
    functionLinenumber: 3532
    functionLinenumberEnd: 3613
    functionName: schemasTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - globfree
    - memcpy
    - glob
    - schemasOneTest
    - baseFilename
    - xmlSchemaFree
    - xmlSchemaSetParserStructuredErrors
    - xmlSchemaNewParserCtxt
    - xmlSchemaParse
    - strlen
    - snprintf
    - fprintf
    - xmlSchemaFreeParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int schemasTest(const char *filename, const char *resul ATTRIBUTE_UNUSED,
      const char *errr ATTRIBUTE_UNUSED, int options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - glob_t*
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: globfree
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void globfree(glob_t *pglob ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:210,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:212,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - pglob
    argTypes:
    - glob_t*
    constantsTouched: []
    func_position:
      end: 213
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 213
    functionName: globfree
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void globfree(glob_t *pglob) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/runtest.c:1158,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1159,1
    - Dst: vfprintf
      Src: /src/libxml2/runtest.c:1160,1
    - Dst: va_end
      Src: /src/libxml2/runtest.c:1161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 1162
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1162
    functionName: errorDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - va_start
    - vfprintf
    - fprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: 'static void errorDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg,
      ...) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaNewValidCtxt
      Src: /src/libxml2/runtest.c:3485,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3494,1
    - Dst: xmlSchemaSetValidStructuredErrors
      Src: /src/libxml2/runtest.c:3486,1
    - Dst: xmlReadFile
      Src: /src/libxml2/runtest.c:3492,1
    - Dst: xmlSchemaValidateDoc
      Src: /src/libxml2/runtest.c:3497,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:3498,1
    - Dst: xmlSchemaValidateFile
      Src: /src/libxml2/runtest.c:3500,1
    - Dst: testErrorHandler
      Src: /src/libxml2/runtest.c:3504,1
    - Dst: testErrorHandler
      Src: /src/libxml2/runtest.c:3506,1
    - Dst: testErrorHandler
      Src: /src/libxml2/runtest.c:3508,1
    - Dst: compareFileMem
      Src: /src/libxml2/runtest.c:3515,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/runtest.c:3512,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3516,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 5
    argNames:
    - sch
    - filename
    - err
    - options
    - schemas
    argTypes:
    - char*
    - char*
    - char*
    - int
    - xmlSchemaPtr
    constantsTouched: []
    func_position:
      end: 3522
      start: 3462
    functionDepth: 0
    functionLinenumber: 3462
    functionLinenumberEnd: 3522
    functionName: schemasOneTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlSchemaSetValidStructuredErrors
    - xmlSchemaFreeValidCtxt
    - xmlSchemaNewValidCtxt
    - testErrorHandler
    - compareFileMem
    - xmlSchemaValidateDoc
    - xmlReadFile
    - xmlSchemaValidateFile
    - xmlFreeDoc
    - fprintf
    linkageType: ''
    returnType: int
    signature: "static int schemasOneTest(const char *sch, const char *filename, const
      char *err,\t int options,\t xmlSchemaPtr schemas) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:257,1
    - Dst: exit
      Src: /src/libxml2/runtest.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: fatalError
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: int
    signature: 'static int fatalError(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:758,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/runtest.c:760,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 761
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 761
    functionName: getEntityDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    - xmlHashLookup
    linkageType: ''
    returnType: xmlEntityPtr
    signature: 'static xmlEntityPtr getEntityDebug(void *ctx, const xmlChar *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1062,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1063
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1063
    functionName: ignorableWhitespaceDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void ignorableWhitespaceDebug(void *ctx ATTRIBUTE_UNUSED, const
      xmlChar *ch, int len) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pendingTokenizer
      Src: /src/libxml2/runtest.c:1616,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1618,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1626,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1621,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1623,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - name
    - atts
    argTypes:
    - void*
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1627
      start: 1610
    functionDepth: 0
    functionLinenumber: 1610
    functionLinenumberEnd: 1627
    functionName: startElementTokenizer
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - pendingTokenizer
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void startElementTokenizer(void *ctx, const xmlChar *name,
      const xmlChar **atts) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadFile
      Src: /src/libxml2/runtest.c:2784,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/runtest.c:2791,1
    - Dst: streamProcessTest
      Src: /src/libxml2/runtest.c:2790,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:2786,1
    - Dst: xmlReaderWalker
      Src: /src/libxml2/runtest.c:2789,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:2792,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - filename
    - result
    - err
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2794
      start: 2777
    functionDepth: 0
    functionLinenumber: 2777
    functionLinenumberEnd: 2794
    functionName: walkerParseTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlReadFile
    - streamProcessTest
    - xmlFreeDoc
    - xmlFreeTextReader
    - fprintf
    - xmlReaderWalker
    linkageType: ''
    returnType: int
    signature: 'static int walkerParseTest(const char *filename, const char *result,
      const char *err, int options) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegexpExec
      Src: /src/libxml2/runtest.c:4681,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4683,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4685,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4687,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - output
    - comp
    - value
    argTypes:
    - FILE*
    - xmlRegexpPtr
    - char*
    constantsTouched: []
    func_position:
      end: 4688
      start: 4678
    functionDepth: 0
    functionLinenumber: 4678
    functionLinenumberEnd: 4688
    functionName: testRegexp
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    - xmlRegexpExec
    linkageType: ''
    returnType: void
    signature: 'static void testRegexp(FILE *output, xmlRegexpPtr comp, const char
      *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pendingTokenizer
      Src: /src/libxml2/runtest.c:1634,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1636,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1637
      start: 1629
    functionDepth: 0
    functionLinenumber: 1629
    functionLinenumberEnd: 1637
    functionName: endElementTokenizer
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - pendingTokenizer
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void endElementTokenizer(void *ctx, const xmlChar *name) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4715,1
    - Dst: fopen
      Src: /src/libxml2/runtest.c:4706,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4720,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:4721,1
    - Dst: fgets
      Src: /src/libxml2/runtest.c:4725,1
    - Dst: xmlRegexpCompile
      Src: /src/libxml2/runtest.c:4743,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4745,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4742,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4749,1
    - Dst: xmlRegFreeRegexp
      Src: /src/libxml2/runtest.c:4763,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:4772,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4752,1
    - Dst: xmlRegexpCompile
      Src: /src/libxml2/runtest.c:4750,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:4760,1
    - Dst: xmlSetStructuredErrorFunc
      Src: /src/libxml2/runtest.c:4702,1
    - Dst: resultFilename
      Src: /src/libxml2/runtest.c:4713,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4708,1
    - Dst: fopen
      Src: /src/libxml2/runtest.c:4718,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:4726,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:4761,1
    - Dst: compareFiles
      Src: /src/libxml2/runtest.c:4765,1
    - Dst: unlink
      Src: /src/libxml2/runtest.c:4771,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4777,1
    - Dst: compareFileMem
      Src: /src/libxml2/runtest.c:4775,1
    - Dst: fatalError
      Src: /src/libxml2/runtest.c:4716,1
    - Dst: xmlRegFreeRegexp
      Src: /src/libxml2/runtest.c:4739,1
    - Dst: testRegexp
      Src: /src/libxml2/runtest.c:4756,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4767,1
    - Dst: xmlSetStructuredErrorFunc
      Src: /src/libxml2/runtest.c:4782,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 85
    argCount: 4
    argNames:
    - filename
    - result
    - err
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 4785
      start: 4690
    functionDepth: 0
    functionLinenumber: 4690
    functionLinenumberEnd: 4785
    functionName: regexpTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRegFreeRegexp
    - resultFilename
    - xmlRegexpCompile
    - fclose
    - compareFiles
    - fgets
    - fopen
    - fatalError
    - compareFileMem
    - xmlSetStructuredErrorFunc
    - unlink
    - strlen
    - fprintf
    - testRegexp
    linkageType: ''
    returnType: int
    signature: "static int regexpTest(const char *filename, const char *result, const
      char *err,\t int options ATTRIBUTE_UNUSED) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:726,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:730,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:732,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:728,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:734,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - publicId
    - systemId
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 741
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 741
    functionName: resolveEntityDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: xmlParserInputPtr
    signature: 'static xmlParserInputPtr resolveEntityDebug(void *ctx ATTRIBUTE_UNUSED,
      const xmlChar *publicId, const xmlChar *systemId) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1038,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1039
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1039
    functionName: referenceDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void referenceDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar
      *name) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1297,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1303,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1301,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1305,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1299,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - localname
    - prefix
    - URI
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1306
      start: 1288
    functionDepth: 0
    functionLinenumber: 1288
    functionLinenumberEnd: 1306
    functionName: endElementNsDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void endElementNsDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar
      *localname, const xmlChar *prefix, const xmlChar *URI) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlReaderForFile
      Src: /src/libxml2/runtest.c:2761,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/runtest.c:2765,1
    - Dst: xmlTextReaderSetStructuredErrorHandler
      Src: /src/libxml2/runtest.c:2762,1
    - Dst: streamProcessTest
      Src: /src/libxml2/runtest.c:2764,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 4
    argNames:
    - filename
    - result
    - err
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2767
      start: 2755
    functionDepth: 0
    functionLinenumber: 2755
    functionLinenumberEnd: 2767
    functionName: streamParseTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlReaderForFile
    - xmlFreeTextReader
    - streamProcessTest
    - xmlTextReaderSetStructuredErrorHandler
    linkageType: ''
    returnType: int
    signature: 'static int streamParseTest(const char *filename, const char *result,
      const char *err, int options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:621,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 623
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 623
    functionName: isStandaloneDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int isStandaloneDebug(void *ctx ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:3333,1
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:3337,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - URI
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3340
      start: 3329
    functionDepth: 0
    functionLinenumber: 3329
    functionLinenumberEnd: 3340
    functionName: uripMatch
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: 'static int uripMatch(const char * URI) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libxml2/runtest.c:4058,1
    - Dst: checkTestFile
      Src: /src/libxml2/runtest.c:4064,1
    - Dst: fopen
      Src: /src/libxml2/runtest.c:4068,1
    - Dst: fatalError
      Src: /src/libxml2/runtest.c:4076,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:4082,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:4095,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4080,1
    - Dst: xmlPatterncompile
      Src: /src/libxml2/runtest.c:4120,1
    - Dst: xmlPatternGetStreamCtxt
      Src: /src/libxml2/runtest.c:4129,1
    - Dst: xmlFreeStreamCtxt
      Src: /src/libxml2/runtest.c:4134,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4163,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:4150,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4065,1
    - Dst: xmlReadFile
      Src: /src/libxml2/runtest.c:4102,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:4125,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4133,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4147,1
    - Dst: patternNode
      Src: /src/libxml2/runtest.c:4143,1
    - Dst: xmlFreeStreamCtxt
      Src: /src/libxml2/runtest.c:4151,1
    - Dst: unlink
      Src: /src/libxml2/runtest.c:4167,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/runtest.c:4141,1
    - Dst: compareFiles
      Src: /src/libxml2/runtest.c:4161,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:4056,1
    - Dst: memcpy
      Src: /src/libxml2/runtest.c:4062,1
    - Dst: baseFilename
      Src: /src/libxml2/runtest.c:4060,1
    - Dst: snprintf
      Src: /src/libxml2/runtest.c:4060,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4070,1
    - Dst: resultFilename
      Src: /src/libxml2/runtest.c:4073,1
    - Dst: fgets
      Src: /src/libxml2/runtest.c:4089,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4075,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4104,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/runtest.c:4112,1
    - Dst: xmlReaderWalker
      Src: /src/libxml2/runtest.c:4140,1
    - Dst: xmlFreePattern
      Src: /src/libxml2/runtest.c:4153,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/runtest.c:4144,1
    - Dst: testErrorHandler
      Src: /src/libxml2/runtest.c:4123,1
    - Dst: fopen
      Src: /src/libxml2/runtest.c:4078,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:4081,1
    - Dst: xmlStreamPush
      Src: /src/libxml2/runtest.c:4131,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/runtest.c:4149,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:4159,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:4168,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:4158,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 123
    argCount: 4
    argNames:
    - filename
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 4171
      start: 4039
    functionDepth: 0
    functionLinenumber: 4039
    functionLinenumberEnd: 4171
    functionName: patternTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - compareFiles
    - checkTestFile
    - fclose
    - xmlTextReaderRead
    - xmlPatternGetStreamCtxt
    - fatalError
    - xmlFreePattern
    - xmlFreeDoc
    - xmlFreeTextReader
    - xmlPatterncompile
    - memcpy
    - testErrorHandler
    - fopen
    - patternNode
    - baseFilename
    - unlink
    - xmlReadFile
    - snprintf
    - xmlFree
    - xmlFreeStreamCtxt
    - xmlReaderWalker
    - resultFilename
    - fgets
    - xmlStreamPush
    - strlen
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int patternTest(const char *filename, const char *resul ATTRIBUTE_UNUSED,
      const char *err ATTRIBUTE_UNUSED, int options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:5453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 5455
      start: 5451
    functionDepth: 0
    functionLinenumber: 5451
    functionLinenumberEnd: 5455
    functionName: main
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeEntity
      Src: /src/libxml2/runtest.c:1462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1463
      start: 1458
    functionDepth: 0
    functionLinenumber: 1458
    functionLinenumberEnd: 1463
    functionName: hashFreeEntity
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFreeEntity
    linkageType: ''
    returnType: void
    signature: 'static void hashFreeEntity(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlStreamPush
      Src: /src/libxml2/runtest.c:3996,1
    - Dst: xmlTextReaderConstNamespaceUri
      Src: /src/libxml2/runtest.c:3998,1
    - Dst: xmlTextReaderCurrentNode
      Src: /src/libxml2/runtest.c:4006,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4010,1
    - Dst: xmlStreamPop
      Src: /src/libxml2/runtest.c:4019,1
    - Dst: xmlTextReaderCurrentNode
      Src: /src/libxml2/runtest.c:3985,1
    - Dst: xmlTextReaderCurrentNode
      Src: /src/libxml2/runtest.c:3988,1
    - Dst: xmlTextReaderConstLocalName
      Src: /src/libxml2/runtest.c:3997,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4008,1
    - Dst: xmlFreeStreamCtxt
      Src: /src/libxml2/runtest.c:4001,1
    - Dst: xmlFreeStreamCtxt
      Src: /src/libxml2/runtest.c:4022,1
    - Dst: xmlTextReaderNodeType
      Src: /src/libxml2/runtest.c:3980,1
    - Dst: xmlTextReaderIsEmptyElement
      Src: /src/libxml2/runtest.c:3981,1
    - Dst: xmlPatternMatch
      Src: /src/libxml2/runtest.c:3985,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3989,1
    - Dst: xmlGetNodePath
      Src: /src/libxml2/runtest.c:4005,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4000,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4021,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:4028,1
    - Dst: xmlGetNodePath
      Src: /src/libxml2/runtest.c:3988,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 5
    argNames:
    - out
    - reader
    - pattern
    - patternc
    - patstream
    argTypes:
    - FILE*
    - xmlTextReaderPtr
    - char*
    - xmlPatternPtr
    - xmlStreamCtxtPtr
    constantsTouched: []
    func_position:
      end: 4029
      start: 3973
    functionDepth: 0
    functionLinenumber: 3973
    functionLinenumberEnd: 4029
    functionName: patternNode
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeStreamCtxt
    - xmlTextReaderConstNamespaceUri
    - xmlTextReaderIsEmptyElement
    - xmlTextReaderCurrentNode
    - xmlStreamPop
    - xmlStreamPush
    - xmlGetNodePath
    - xmlTextReaderNodeType
    - fprintf
    - xmlPatternMatch
    - xmlTextReaderConstLocalName
    linkageType: ''
    returnType: void
    signature: "static void patternNode(FILE *out, xmlTextReaderPtr reader, const
      char *pattern, xmlPatternPtr patternc,\t\t\txmlStreamCtxtPtr patstream) "
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/libxml2/runtest.c:458,1
    - Dst: write
      Src: /src/libxml2/runtest.c:466,1
    - Dst: open
      Src: /src/libxml2/runtest.c:461,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:463,1
    - Dst: close
      Src: /src/libxml2/runtest.c:467,1
    - Dst: stat
      Src: /src/libxml2/runtest.c:471,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:474,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:478,1
    - Dst: open
      Src: /src/libxml2/runtest.c:482,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:484,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:506,1
    - Dst: memcmp
      Src: /src/libxml2/runtest.c:493,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:498,1
    - Dst: close
      Src: /src/libxml2/runtest.c:499,1
    - Dst: close
      Src: /src/libxml2/runtest.c:504,1
    - Dst: read
      Src: /src/libxml2/runtest.c:488,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - filename
    - mem
    - size
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 509
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 509
    functionName: compareFileMem
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - stat
    - write
    - open
    - unlink
    - memcmp
    - read
    - fprintf
    - close
    linkageType: ''
    returnType: int
    signature: 'static int compareFileMem(const char *filename, const char *mem, int
      size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - config
    argTypes:
    - xmlTokenizerConfig*
    constantsTouched: []
    func_position:
      end: 1594
      start: 1588
    functionDepth: 0
    functionLinenumber: 1588
    functionLinenumberEnd: 1594
    functionName: pendingTokenizer
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void pendingTokenizer(xmlTokenizerConfig *config) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/runtest.c:1906,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/runtest.c:1936,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:1949,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:1953,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:1957,1
    - Dst: compareFileMem
      Src: /src/libxml2/runtest.c:1959,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1892,1
    - Dst: htmlDocDumpMemory
      Src: /src/libxml2/runtest.c:1945,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:1939,1
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/runtest.c:1905,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:1937,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1954,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1961,1
    - Dst: loadMem
      Src: /src/libxml2/runtest.c:1891,1
    - Dst: htmlCreatePushParserCtxt
      Src: /src/libxml2/runtest.c:1901,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/runtest.c:1907,1
    - Dst: htmlParseChunk
      Src: /src/libxml2/runtest.c:1914,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/runtest.c:1917,1
    - Dst: htmlParseChunk
      Src: /src/libxml2/runtest.c:1922,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/runtest.c:1925,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1940,1
    - Dst: compareFileMem
      Src: /src/libxml2/runtest.c:1950,1
    - Dst: xmlDocDumpMemory
      Src: /src/libxml2/runtest.c:1948,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 68
    argCount: 4
    argNames:
    - filename
    - result
    - ATTRIBUTE_UNUSED
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1966
      start: 1876
    functionDepth: 0
    functionLinenumber: 1876
    functionLinenumberEnd: 1966
    functionName: pushParseTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCtxtUseOptions
    - loadMem
    - htmlParseChunk
    - xmlDocDumpMemory
    - compareFileMem
    - xmlParseChunk
    - xmlCtxtSetErrorHandler
    - xmlFreeDoc
    - xmlCreatePushParserCtxt
    - xmlFreeParserCtxt
    - htmlDocDumpMemory
    - fprintf
    - htmlCreatePushParserCtxt
    linkageType: ''
    returnType: int
    signature: "static int pushParseTest(const char *filename, const char *result,
      const char *err ATTRIBUTE_UNUSED,\t int options) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAX2ProcessingInstruction
      Src: /src/libxml2/runtest.c:2004,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - target
    - data
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2005
      start: 2000
    functionDepth: 0
    functionLinenumber: 2000
    functionLinenumberEnd: 2005
    functionName: processingInstructionBnd
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlSAX2ProcessingInstruction
    linkageType: ''
    returnType: void
    signature: 'static void processingInstructionBnd(void *ctx, const xmlChar *target,
      const xmlChar *data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrlen
      Src: /src/libxml2/runtest.c:4292,1
    - Dst: xxx_growBufferReentrant
      Src: /src/libxml2/runtest.c:4312,1
    - Dst: xmlMalloc
      Src: /src/libxml2/runtest.c:4301,1
    - Dst: perror
      Src: /src/libxml2/runtest.c:4303,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 1
    argNames:
    - str
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4321
      start: 4281
    functionDepth: 0
    functionLinenumber: 4281
    functionLinenumberEnd: 4321
    functionName: parse_list
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xxx_growBufferReentrant
    - xmlMalloc
    - xmlStrlen
    - perror
    linkageType: ''
    returnType: xmlChar**
    signature: 'static xmlChar **parse_list(xmlChar *str) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlCheckThreadLocalStorage
      Src: /src/libxml2/runtest.c:4518,1
    - Dst: xmlMemSetup
      Src: /src/libxml2/runtest.c:4525,1
    - Dst: printf
      Src: /src/libxml2/runtest.c:4519,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:4530,1
    - Dst: xmlReadFile
      Src: /src/libxml2/runtest.c:4528,1
    - Dst: printf
      Src: /src/libxml2/runtest.c:4532,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - private_data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 4537
      start: 4510
    functionDepth: 0
    functionLinenumber: 4510
    functionLinenumberEnd: 4537
    functionName: thread_specific_data
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlCheckThreadLocalStorage
    - xmlReadFile
    - xmlFreeDoc
    - xmlMemSetup
    - printf
    linkageType: ''
    returnType: void*
    signature: 'static void *thread_specific_data(void *private_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/libxml2/runtest.c:516,1
    - Dst: open
      Src: /src/libxml2/runtest.c:521,1
    - Dst: read
      Src: /src/libxml2/runtest.c:526,1
    - Dst: xmlMalloc
      Src: /src/libxml2/runtest.c:518,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:523,1
    - Dst: close
      Src: /src/libxml2/runtest.c:529,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:532,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 3
    argNames:
    - filename
    - mem
    - size
    argTypes:
    - char*
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 540
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 540
    functionName: loadMem
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    - stat
    - open
    - read
    - xmlMalloc
    - close
    linkageType: ''
    returnType: int
    signature: 'static int loadMem(const char *filename, const char **mem, int *size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1586
      start: 1575
    functionDepth: 0
    functionLinenumber: 1575
    functionLinenumberEnd: 1586
    functionName: startDocumentTokenizer
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void startDocumentTokenizer(void *ctx) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pendingTokenizer
      Src: /src/libxml2/runtest.c:1602,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1604,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - name
    - publicId
    - systemId
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1608
      start: 1596
    functionDepth: 0
    functionLinenumber: 1596
    functionLinenumberEnd: 1608
    functionName: internalSubsetTokenizer
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - pendingTokenizer
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void internalSubsetTokenizer(void *ctx, const xmlChar *name,
      const xmlChar *publicId, const xmlChar *systemId) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAX2Comment
      Src: /src/libxml2/runtest.c:2012,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2013
      start: 2007
    functionDepth: 0
    functionLinenumber: 2007
    functionLinenumberEnd: 2013
    functionName: commentBnd
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlSAX2Comment
    linkageType: ''
    returnType: void
    signature: 'static void commentBnd(void *ctx, const xmlChar *value) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4351,1
    - Dst: loadMem
      Src: /src/libxml2/runtest.c:4369,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/runtest.c:4371,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/runtest.c:4350,1
    - Dst: xmlC14NDocDumpMemory
      Src: /src/libxml2/runtest.c:4382,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:4372,1
    - Dst: compareFileMem
      Src: /src/libxml2/runtest.c:4388,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4343,1
    - Dst: load_xpath_expr
      Src: /src/libxml2/runtest.c:4360,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:4363,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4370,1
    - Dst: parse_list
      Src: /src/libxml2/runtest.c:4375,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4389,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:4402,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4390,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:4405,1
    - Dst: xmlReadFile
      Src: /src/libxml2/runtest.c:4340,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:4352,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4362,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:4395,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/runtest.c:4403,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:4404,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runtest.c:4406,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 53
    argCount: 6
    argNames:
    - xml_filename
    - with_comments
    - mode
    - xpath_filename
    - ns_filename
    - result_file
    argTypes:
    - char*
    - int
    - int
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 4409
      start: 4323
    functionDepth: 0
    functionLinenumber: 4323
    functionLinenumberEnd: 4409
    functionName: c14nRunTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlC14NDocDumpMemory
    - xmlFree
    - loadMem
    - parse_list
    - compareFileMem
    - xmlReadFile
    - load_xpath_expr
    - xmlXPathFreeObject
    - xmlFreeDoc
    - fprintf
    linkageType: ''
    returnType: int
    signature: "static int c14nRunTest(const char* xml_filename, int with_comments,
      int mode,\t const char* xpath_filename, const char *ns_filename,\t const char*
      result_file) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fatalError
      Src: /src/libxml2/runtest.c:1728,1
    - Dst: htmlCtxtUseOptions
      Src: /src/libxml2/runtest.c:1765,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/runtest.c:1767,1
    - Dst: feof
      Src: /src/libxml2/runtest.c:1771,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:1776,1
    - Dst: unlink
      Src: /src/libxml2/runtest.c:1785,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:1786,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1727,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1740,1
    - Dst: fscanf
      Src: /src/libxml2/runtest.c:1744,1
    - Dst: fopen
      Src: /src/libxml2/runtest.c:1731,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1749,1
    - Dst: htmlParseChunk
      Src: /src/libxml2/runtest.c:1766,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1772,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1780,1
    - Dst: compareFiles
      Src: /src/libxml2/runtest.c:1779,1
    - Dst: resultFilename
      Src: /src/libxml2/runtest.c:1725,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1733,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:1734,1
    - Dst: fopen
      Src: /src/libxml2/runtest.c:1738,1
    - Dst: fread
      Src: /src/libxml2/runtest.c:1752,1
    - Dst: xmlMalloc
      Src: /src/libxml2/runtest.c:1751,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1753,1
    - Dst: htmlCreatePushParserCtxt
      Src: /src/libxml2/runtest.c:1757,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:1769,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:1777,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 4
    argNames:
    - filename
    - result
    - ATTRIBUTE_UNUSED
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1790
      start: 1713
    functionDepth: 0
    functionLinenumber: 1713
    functionLinenumberEnd: 1790
    functionName: htmlTokenizerTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    - htmlCtxtUseOptions
    - resultFilename
    - compareFiles
    - htmlParseChunk
    - fclose
    - fopen
    - feof
    - fatalError
    - unlink
    - htmlFreeParserCtxt
    - fscanf
    - fread
    - xmlMalloc
    - fprintf
    - htmlCreatePushParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int htmlTokenizerTest(const char *filename, const char *result,
      const char *err ATTRIBUTE_UNUSED, int options) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: resultFilename
      Src: /src/libxml2/runtest.c:3185,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3187,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3192,1
    - Dst: compareFiles
      Src: /src/libxml2/runtest.c:3232,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:3228,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:3202,1
    - Dst: fopen
      Src: /src/libxml2/runtest.c:3196,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:3199,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:3217,1
    - Dst: handleURI
      Src: /src/libxml2/runtest.c:3225,1
    - Dst: fclose
      Src: /src/libxml2/runtest.c:3229,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3234,1
    - Dst: fatalError
      Src: /src/libxml2/runtest.c:3188,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3198,1
    - Dst: unlink
      Src: /src/libxml2/runtest.c:3201,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3241,1
    - Dst: unlink
      Src: /src/libxml2/runtest.c:3247,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:3248,1
    - Dst: fopen
      Src: /src/libxml2/runtest.c:3190,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:3193,1
    - Dst: compareFileMem
      Src: /src/libxml2/runtest.c:3239,1
    - Dst: fgets
      Src: /src/libxml2/runtest.c:3211,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 4
    argNames:
    - filename
    - result
    - err
    - base
    argTypes:
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3251
      start: 3175
    functionDepth: 0
    functionLinenumber: 3175
    functionLinenumberEnd: 3251
    functionName: uriCommonTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    - resultFilename
    - compareFiles
    - fclose
    - fgets
    - fopen
    - fatalError
    - compareFileMem
    - unlink
    - strlen
    - fprintf
    - handleURI
    linkageType: ''
    returnType: int
    signature: 'static int uriCommonTest(const char *filename, const char *result,
      const char *err, const char *base) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: baseFilename
      Src: /src/libxml2/runtest.c:4423,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/runtest.c:4431,1
    - Dst: memcpy
      Src: /src/libxml2/runtest.c:4426,1
    - Dst: snprintf
      Src: /src/libxml2/runtest.c:4429,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:4424,1
    - Dst: snprintf
      Src: /src/libxml2/runtest.c:4432,1
    - Dst: checkTestFile
      Src: /src/libxml2/runtest.c:4434,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/runtest.c:4435,1
    - Dst: snprintf
      Src: /src/libxml2/runtest.c:4437,1
    - Dst: checkTestFile
      Src: /src/libxml2/runtest.c:4439,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:4448,1
    - Dst: c14nRunTest
      Src: /src/libxml2/runtest.c:4444,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:4450,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:4449,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/runtest.c:4440,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 4
    argNames:
    - filename
    - with_comments
    - mode
    - subdir
    argTypes:
    - char*
    - int
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 4452
      start: 4411
    functionDepth: 0
    functionLinenumber: 4411
    functionLinenumberEnd: 4452
    functionName: c14nCommonTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    - checkTestFile
    - memcpy
    - c14nRunTest
    - baseFilename
    - strlen
    - snprintf
    - xmlMemStrdup
    linkageType: ''
    returnType: int
    signature: 'static int c14nCommonTest(const char *filename, int with_comments,
      int mode, const char *subdir) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c14nCommonTest
      Src: /src/libxml2/runtest.c:4459,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - filename
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 4460
      start: 4454
    functionDepth: 0
    functionLinenumber: 4454
    functionLinenumberEnd: 4460
    functionName: c14nWithCommentTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - c14nCommonTest
    linkageType: ''
    returnType: int
    signature: "static int c14nWithCommentTest(const char *filename, const char *resul
      ATTRIBUTE_UNUSED,\t\t const char *err ATTRIBUTE_UNUSED,\t\t int options ATTRIBUTE_UNUSED) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: thread_specific_data
      Src: /src/libxml2/runtest.c:4550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - private_data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 4552
      start: 4547
    functionDepth: 0
    functionLinenumber: 4547
    functionLinenumberEnd: 4552
    functionName: win32_thread_specific_data
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - thread_specific_data
    linkageType: ''
    returnType: DWORD
    signature: 'static DWORD WINAPI win32_thread_specific_data(void *private_data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreateURI
      Src: /src/libxml2/runtest.c:3143,1
    - Dst: xmlPrintURI
      Src: /src/libxml2/runtest.c:3151,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3148,1
    - Dst: xmlParseURIReference
      Src: /src/libxml2/runtest.c:3146,1
    - Dst: xmlNormalizeURIPath
      Src: /src/libxml2/runtest.c:3150,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3152,1
    - Dst: xmlBuildURI
      Src: /src/libxml2/runtest.c:3155,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3157,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3160,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:3163,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/runtest.c:3164,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - str
    - base
    - o
    argTypes:
    - char*
    - char*
    - FILE*
    constantsTouched: []
    func_position:
      end: 3165
      start: 3137
    functionDepth: 0
    functionLinenumber: 3137
    functionLinenumberEnd: 3165
    functionName: handleURI
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlNormalizeURIPath
    - xmlFreeURI
    - xmlParseURIReference
    - xmlCreateURI
    - xmlPrintURI
    - fprintf
    - xmlBuildURI
    linkageType: ''
    returnType: void
    signature: 'static void handleURI(const char *str, const char *base, FILE *o) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:3788,1
    - Dst: streamProcessTest
      Src: /src/libxml2/runtest.c:3824,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3831,1
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:3787,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3776,1
    - Dst: memcpy
      Src: /src/libxml2/runtest.c:3780,1
    - Dst: snprintf
      Src: /src/libxml2/runtest.c:3792,1
    - Dst: xmlTextReaderSetStructuredErrorHandler
      Src: /src/libxml2/runtest.c:3818,1
    - Dst: globfree
      Src: /src/libxml2/runtest.c:3835,1
    - Dst: baseFilename
      Src: /src/libxml2/runtest.c:3757,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:3774,1
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:3787,1
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:3788,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3814,1
    - Dst: glob
      Src: /src/libxml2/runtest.c:3796,1
    - Dst: snprintf
      Src: /src/libxml2/runtest.c:3805,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/runtest.c:3829,1
    - Dst: strcmp
      Src: /src/libxml2/runtest.c:3789,1
    - Dst: baseFilename
      Src: /src/libxml2/runtest.c:3801,1
    - Dst: xmlReaderForFile
      Src: /src/libxml2/runtest.c:3817,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:3821,1
    - Dst: snprintf
      Src: /src/libxml2/runtest.c:3809,1
    - Dst: strlen
      Src: /src/libxml2/runtest.c:3802,1
    - Dst: streamProcessTest
      Src: /src/libxml2/runtest.c:3827,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 4
    argNames:
    - filename
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 3838
      start: 3752
    functionDepth: 0
    functionLinenumber: 3752
    functionLinenumberEnd: 3838
    functionName: rngStreamTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - globfree
    - memcpy
    - glob
    - xmlFreeTextReader
    - baseFilename
    - strcmp
    - streamProcessTest
    - xmlTextReaderSetStructuredErrorHandler
    - xmlReaderForFile
    - strlen
    - snprintf
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int rngStreamTest(const char *filename, const char *resul ATTRIBUTE_UNUSED,
      const char *errr ATTRIBUTE_UNUSED, int options) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:842,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/runtest.c:847,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:845,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 7
    argNames:
    - ATTRIBUTE_UNUSED
    - elem
    - name
    - type
    - def
    - defaultValue
    - tree
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - int
    - int
    - xmlChar*
    - xmlEnumerationPtr
    constantsTouched: []
    func_position:
      end: 848
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 848
    functionName: attributeDeclDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    - xmlFreeEnumeration
    linkageType: ''
    returnType: void
    signature: 'static void attributeDeclDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar
      * elem, const xmlChar * name, int type, int def, const xmlChar * defaultValue,
      xmlEnumerationPtr tree) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:999,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1000
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 1000
    functionName: endElementDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void endElementDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar
      *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1081,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:1084,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - target
    - data
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1086
      start: 1073
    functionDepth: 0
    functionLinenumber: 1073
    functionLinenumberEnd: 1086
    functionName: processingInstructionDebug
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void processingInstructionDebug(void *ctx ATTRIBUTE_UNUSED,
      const xmlChar *target, const xmlChar *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xpathCommonTest
      Src: /src/libxml2/runtest.c:2955,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - filename
    - result
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2956
      start: 2951
    functionDepth: 0
    functionLinenumber: 2951
    functionLinenumberEnd: 2956
    functionName: xpathExprTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xpathCommonTest
    linkageType: ''
    returnType: int
    signature: 'static int xpathExprTest(const char *filename, const char *result,
      const char *err ATTRIBUTE_UNUSED, int options ATTRIBUTE_UNUSED) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferCreateSize
      Src: /src/libxml2/runtest.c:5276,1
    - Dst: xmlFindCharEncodingHandler
      Src: /src/libxml2/runtest.c:5266,1
    - Dst: xmlGetCharEncodingHandler
      Src: /src/libxml2/runtest.c:5272,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/runtest.c:5280,1
    - Dst: glob
      Src: /src/libxml2/runtest.c:5292,1
    - Dst: fatalError
      Src: /src/libxml2/runtest.c:5311,1
    - Dst: fatalError
      Src: /src/libxml2/runtest.c:5321,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runtest.c:5326,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runtest.c:5338,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:5339,1
    - Dst: xmlGetCharEncodingHandler
      Src: /src/libxml2/runtest.c:5265,1
    - Dst: xmlBufferCCat
      Src: /src/libxml2/runtest.c:5277,1
    - Dst: xmlCharEncInFunc
      Src: /src/libxml2/runtest.c:5279,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/runtest.c:5283,1
    - Dst: checkTestFile
      Src: /src/libxml2/runtest.c:5294,1
    - Dst: resultFilename
      Src: /src/libxml2/runtest.c:5307,1
    - Dst: strstr
      Src: /src/libxml2/runtest.c:5299,1
    - Dst: resultFilename
      Src: /src/libxml2/runtest.c:5317,1
    - Dst: globfree
      Src: /src/libxml2/runtest.c:5350,1
    - Dst: xmlBufferCreateSize
      Src: /src/libxml2/runtest.c:5278,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/runtest.c:5284,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:5310,1
    - Dst: strstr
      Src: /src/libxml2/runtest.c:5297,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:5320,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runtest.c:5340,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:5348,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/runtest.c:5364,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/runtest.c:5363,1
    - Dst: strstr
      Src: /src/libxml2/runtest.c:5303,1
    - Dst: xmlResetLastError
      Src: /src/libxml2/runtest.c:5331,1
    - Dst: fprintf
      Src: /src/libxml2/runtest.c:5333,1
    - Dst: xmlFree
      Src: /src/libxml2/runtest.c:5346,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/runtest.c:5362,1
    - Dst: xmlResetLastError
      Src: /src/libxml2/runtest.c:5355,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 101
    argCount: 1
    argNames:
    - tst
    argTypes:
    - testDescPtr
    constantsTouched: []
    func_position:
      end: 5367
      start: 5256
    functionDepth: 0
    functionLinenumber: 5256
    functionLinenumberEnd: 5367
    functionName: launchTests
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCharEncCloseFunc
    - xmlCharEncInFunc
    - xmlGetCharEncodingHandler
    - glob
    - checkTestFile
    - resultFilename
    - xmlResetLastError
    - globfree
    - fatalError
    - xmlFindCharEncodingHandler
    - xmlMemUsed
    - xmlBufferCCat
    - strstr
    - fprintf
    - xmlBufferFree
    - xmlBufferCreateSize
    linkageType: ''
    returnType: int
    signature: 'static int launchTests(testDescPtr tst) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - errfunc
    - pglob
    argTypes:
    - char*
    - int
    - int
    - glob_t*
    constantsTouched: []
    func_position:
      end: 237
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 237
    functionName: glob
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int glob(const char *pattern ATTRIBUTE_UNUSED, int flags ATTRIBUTE_UNUSED,
      int errfunc(const char *epath, int eerrno) ATTRIBUTE_UNUSED, glob_t *pglob) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c14nCommonTest
      Src: /src/libxml2/runtest.c:4480,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - filename
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 4481
      start: 4475
    functionDepth: 0
    functionLinenumber: 4475
    functionLinenumberEnd: 4481
    functionName: c14n11WithoutCommentTest
    functionSourceFile: /src/libxml2/runtest.c
    functionUses: []
    functionsReached:
    - c14nCommonTest
    linkageType: ''
    returnType: int
    signature: "static int c14n11WithoutCommentTest(const char *filename, const char
      *resul ATTRIBUTE_UNUSED,\t\t const char *err ATTRIBUTE_UNUSED,\t\t int options
      ATTRIBUTE_UNUSED) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/libxml2/testlimits.c:112,1
    - Dst: strcmp
      Src: /src/libxml2/testlimits.c:117,1
    - Dst: strlen
      Src: /src/libxml2/testlimits.c:123,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - URI
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 127
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 127
    functionName: hugeOpen
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached:
    - strlen
    - strcmp
    - strncmp
    linkageType: ''
    returnType: void*
    signature: 'static void *hugeOpen(const char * URI) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: crazyClose
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int crazyClose(void * context) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 414
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 414
    functionName: hasInternalSubsetCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int hasInternalSubsetCallback(void *ctx ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 476
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 476
    functionName: resolveEntityCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlParserInputPtr
    signature: 'static xmlParserInputPtr resolveEntityCallback(void *ctx ATTRIBUTE_UNUSED,
      const xmlChar * publicId ATTRIBUTE_UNUSED, const xmlChar * systemId ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 506
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 506
    functionName: getParameterEntityCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlEntityPtr
    signature: 'static xmlEntityPtr getParameterEntityCallback(void *ctx ATTRIBUTE_UNUSED,
      const xmlChar * name ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlSAXLocatorPtr
    constantsTouched: []
    func_position:
      end: 613
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 613
    functionName: setDocumentLocatorCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void setDocumentLocatorCallback(void *ctx ATTRIBUTE_UNUSED,
      xmlSAXLocatorPtr loc ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: saxTest
      Src: /src/libxml2/testlimits.c:1130,1
    - Dst: fprintf
      Src: /src/libxml2/testlimits.c:1136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - test
    - fail
    argTypes:
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 1139
      start: 1124
    functionDepth: 0
    functionLinenumber: 1124
    functionLinenumberEnd: 1139
    functionName: launchCrazySAX
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached:
    - saxTest
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int launchCrazySAX(unsigned int test, int fail) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewSAXParserCtxt
      Src: /src/libxml2/testlimits.c:903,1
    - Dst: fprintf
      Src: /src/libxml2/testlimits.c:905,1
    - Dst: fprintf
      Src: /src/libxml2/testlimits.c:911,1
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/testlimits.c:908,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testlimits.c:912,1
    - Dst: fprintf
      Src: /src/libxml2/testlimits.c:918,1
    - Dst: fprintf
      Src: /src/libxml2/testlimits.c:924,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testlimits.c:930,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - filename
    - limit
    - options
    - fail
    argTypes:
    - char*
    - size_t
    - int
    - int
    constantsTouched: []
    func_position:
      end: 933
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 933
    functionName: saxTest
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached:
    - xmlCtxtReadFile
    - xmlNewSAXParserCtxt
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int saxTest(const char *filename, size_t limit, int options,
      int fail) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fillFilling
      Src: /src/libxml2/testlimits.c:1236,1
    - Dst: strcmp
      Src: /src/libxml2/testlimits.c:1242,1
    - Dst: strcmp
      Src: /src/libxml2/testlimits.c:1240,1
    - Dst: strcmp
      Src: /src/libxml2/testlimits.c:1244,1
    - Dst: initializeLibxml2
      Src: /src/libxml2/testlimits.c:1237,1
    - Dst: runtest
      Src: /src/libxml2/testlimits.c:1249,1
    - Dst: runcrazy
      Src: /src/libxml2/testlimits.c:1252,1
    - Dst: printf
      Src: /src/libxml2/testlimits.c:1255,1
    - Dst: printf
      Src: /src/libxml2/testlimits.c:1259,1
    - Dst: xmlCleanupParser
      Src: /src/libxml2/testlimits.c:1262,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 1265
      start: 1231
    functionDepth: 0
    functionLinenumber: 1231
    functionLinenumberEnd: 1265
    functionName: main
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached:
    - runcrazy
    - strcmp
    - initializeLibxml2
    - runtest
    - printf
    - xmlCleanupParser
    - fillFilling
    linkageType: ''
    returnType: int
    signature: 'int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/libxml2/testlimits.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - URI
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: hugeMatch
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: 'static int hugeMatch(const char * URI) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 401
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 401
    functionName: isStandaloneCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int isStandaloneCallback(void *ctx ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 728
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 728
    functionName: processingInstructionCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void processingInstructionCallback(void *ctx ATTRIBUTE_UNUSED,
      const xmlChar * target ATTRIBUTE_UNUSED, const xmlChar * data ATTRIBUTE_UNUSED) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlReaderForFile
      Src: /src/libxml2/testlimits.c:953,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/testlimits.c:958,1
    - Dst: fprintf
      Src: /src/libxml2/testlimits.c:955,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/testlimits.c:960,1
    - Dst: strncmp
      Src: /src/libxml2/testlimits.c:966,1
    - Dst: fprintf
      Src: /src/libxml2/testlimits.c:967,1
    - Dst: fprintf
      Src: /src/libxml2/testlimits.c:970,1
    - Dst: strncmp
      Src: /src/libxml2/testlimits.c:976,1
    - Dst: fprintf
      Src: /src/libxml2/testlimits.c:977,1
    - Dst: fprintf
      Src: /src/libxml2/testlimits.c:980,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/testlimits.c:988,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - filename
    - limit
    - options
    - fail
    argTypes:
    - char*
    - size_t
    - int
    - int
    constantsTouched: []
    func_position:
      end: 991
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 991
    functionName: readerTest
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached:
    - xmlTextReaderRead
    - strncmp
    - xmlReaderForFile
    - xmlFreeTextReader
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int readerTest(const char *filename, size_t limit, int options,
      int fail) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 756
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 756
    functionName: commentCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void commentCallback(void *ctx ATTRIBUTE_UNUSED, const xmlChar
      * value ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 840
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 840
    functionName: endElementNsCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void endElementNsCallback(void *ctx ATTRIBUTE_UNUSED, const
      xmlChar * localname ATTRIBUTE_UNUSED, const xmlChar * prefix ATTRIBUTE_UNUSED,
      const xmlChar * URI ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: readerTest
      Src: /src/libxml2/testlimits.c:1148,1
    - Dst: fprintf
      Src: /src/libxml2/testlimits.c:1154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - test
    - fail
    argTypes:
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 1157
      start: 1142
    functionDepth: 0
    functionLinenumber: 1142
    functionLinenumberEnd: 1157
    functionName: launchCrazy
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached:
    - readerTest
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int launchCrazy(unsigned int test, int fail) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock
      Src: /src/libxml2/testlimits.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: reset_timout
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached:
    - clock
    linkageType: ''
    returnType: void
    signature: 'static void reset_timout(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 1
    argCount: 9
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - int
    - xmlChar**
    - int
    - int
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 825
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 825
    functionName: startElementNsCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void startElementNsCallback(void *ctx ATTRIBUTE_UNUSED, const
      xmlChar * localname ATTRIBUTE_UNUSED, const xmlChar * prefix ATTRIBUTE_UNUSED,
      const xmlChar * URI ATTRIBUTE_UNUSED, int nb_namespaces ATTRIBUTE_UNUSED, const
      xmlChar ** namespaces ATTRIBUTE_UNUSED, int nb_attributes ATTRIBUTE_UNUSED,
      int nb_defaulted ATTRIBUTE_UNUSED, const xmlChar ** attributes ATTRIBUTE_UNUSED) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: check_time
      Src: /src/libxml2/testlimits.c:306,1
    - Dst: strlen
      Src: /src/libxml2/testlimits.c:308,1
    - Dst: memcpy
      Src: /src/libxml2/testlimits.c:316,1
    - Dst: fprintf
      Src: /src/libxml2/testlimits.c:307,1
    - Dst: memcpy
      Src: /src/libxml2/testlimits.c:320,1
    - Dst: memcpy
      Src: /src/libxml2/testlimits.c:328,1
    - Dst: memcpy
      Src: /src/libxml2/testlimits.c:332,1
    - Dst: memcpy
      Src: /src/libxml2/testlimits.c:338,1
    - Dst: strlen
      Src: /src/libxml2/testlimits.c:341,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 3
    argNames:
    - context
    - buffer
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 348
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 348
    functionName: crazyRead
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached:
    - check_time
    - strlen
    - fprintf
    - memcpy
    linkageType: ''
    returnType: int
    signature: 'static int crazyRead(void *context, char *buffer, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 427
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 427
    functionName: hasExternalSubsetCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int hasExternalSubsetCallback(void *ctx ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 491
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 491
    functionName: getEntityCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlEntityPtr
    signature: 'static xmlEntityPtr getEntityCallback(void *ctx ATTRIBUTE_UNUSED,
      const xmlChar * name ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 6
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - int
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 528
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 528
    functionName: entityDeclCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void entityDeclCallback(void *ctx ATTRIBUTE_UNUSED, const xmlChar
      * name ATTRIBUTE_UNUSED, int type ATTRIBUTE_UNUSED, const xmlChar * publicId
      ATTRIBUTE_UNUSED, const xmlChar * systemId ATTRIBUTE_UNUSED, xmlChar * content
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 624
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 624
    functionName: startDocumentCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void startDocumentCallback(void *ctx ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 743
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 743
    functionName: cdataBlockCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void cdataBlockCallback(void *ctx ATTRIBUTE_UNUSED, const xmlChar
      * value ATTRIBUTE_UNUSED, int len ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 800
    functionName: fatalErrorCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void fatalErrorCallback(void *ctx ATTRIBUTE_UNUSED, const char
      *msg ATTRIBUTE_UNUSED, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock
      Src: /src/libxml2/testlimits.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: check_time
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached:
    - clock
    linkageType: ''
    returnType: int
    signature: 'static int check_time(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 455
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 455
    functionName: externalSubsetCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void externalSubsetCallback(void *ctx ATTRIBUTE_UNUSED, const
      xmlChar * name ATTRIBUTE_UNUSED, const xmlChar * ExternalID ATTRIBUTE_UNUSED,
      const xmlChar * SystemID ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 580
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 580
    functionName: notationDeclCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void notationDeclCallback(void *ctx ATTRIBUTE_UNUSED, const
      xmlChar * name ATTRIBUTE_UNUSED, const xmlChar * publicId ATTRIBUTE_UNUSED,
      const xmlChar * systemId ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 635
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 635
    functionName: endDocumentCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void endDocumentCallback(void *ctx ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 665
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 665
    functionName: endElementCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void endElementCallback(void *ctx ATTRIBUTE_UNUSED, const xmlChar
      * name ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: referenceCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void referenceCallback(void *ctx ATTRIBUTE_UNUSED, const xmlChar
      * name ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 786
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 786
    functionName: errorCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void errorCallback(void *ctx ATTRIBUTE_UNUSED, const char *msg
      ATTRIBUTE_UNUSED, ...) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - tst
    - test
    argTypes:
    - testDescPtr
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1096
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1096
    functionName: launchTests
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int launchTests(testDescPtr tst, unsigned int test) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: fillFilling
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void fillFilling(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMemSetup
      Src: /src/libxml2/testlimits.c:361,1
    - Dst: xmlCatalogSetDefaults
      Src: /src/libxml2/testlimits.c:365,1
    - Dst: xmlRegisterInputCallbacks
      Src: /src/libxml2/testlimits.c:370,1
    - Dst: xmlInitParser
      Src: /src/libxml2/testlimits.c:362,1
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/testlimits.c:364,1
    - Dst: fprintf
      Src: /src/libxml2/testlimits.c:372,1
    - Dst: exit
      Src: /src/libxml2/testlimits.c:373,1
    - Dst: xmlRegisterInputCallbacks
      Src: /src/libxml2/testlimits.c:375,1
    - Dst: fprintf
      Src: /src/libxml2/testlimits.c:377,1
    - Dst: exit
      Src: /src/libxml2/testlimits.c:378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 380
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 380
    functionName: initializeLibxml2
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached:
    - fprintf
    - xmlCatalogSetDefaults
    - xmlInitParser
    - xmlInitializeCatalog
    - exit
    - xmlMemSetup
    - xmlRegisterInputCallbacks
    linkageType: ''
    returnType: void
    signature: 'static void initializeLibxml2(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxml2/testlimits.c:1108,1
    - Dst: launchTests
      Src: /src/libxml2/testlimits.c:1109,1
    - Dst: printf
      Src: /src/libxml2/testlimits.c:1114,1
    - Dst: printf
      Src: /src/libxml2/testlimits.c:1116,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - i
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1122
      start: 1099
    functionDepth: 0
    functionLinenumber: 1099
    functionLinenumberEnd: 1122
    functionName: runtest
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached:
    - printf
    - launchTests
    linkageType: ''
    returnType: int
    signature: 'static int runtest(unsigned int i) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 441
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 441
    functionName: internalSubsetCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void internalSubsetCallback(void *ctx ATTRIBUTE_UNUSED, const
      xmlChar * name ATTRIBUTE_UNUSED, const xmlChar * ExternalID ATTRIBUTE_UNUSED,
      const xmlChar * SystemID ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 651
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 651
    functionName: startElementCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void startElementCallback(void *ctx ATTRIBUTE_UNUSED, const
      xmlChar * name ATTRIBUTE_UNUSED, const xmlChar ** atts ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 682
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 682
    functionName: charactersCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void charactersCallback(void *ctx ATTRIBUTE_UNUSED, const xmlChar
      * ch ATTRIBUTE_UNUSED, int len ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 771
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 771
    functionName: warningCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void warningCallback(void *ctx ATTRIBUTE_UNUSED, const char
      *msg ATTRIBUTE_UNUSED, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/testlimits.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: hugeClose
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int hugeClose(void * context) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libxml2/testlimits.c:177,1
    - Dst: memcpy
      Src: /src/libxml2/testlimits.c:190,1
    - Dst: memcpy
      Src: /src/libxml2/testlimits.c:182,1
    - Dst: memcpy
      Src: /src/libxml2/testlimits.c:194,1
    - Dst: memcpy
      Src: /src/libxml2/testlimits.c:200,1
    - Dst: strlen
      Src: /src/libxml2/testlimits.c:203,1
    - Dst: fprintf
      Src: /src/libxml2/testlimits.c:208,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 3
    argNames:
    - context
    - buffer
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 215
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 215
    functionName: hugeRead
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached:
    - strlen
    - memcpy
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int hugeRead(void *context, char *buffer, int len) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/libxml2/testlimits.c:267,1
    - Dst: strlen
      Src: /src/libxml2/testlimits.c:270,1
    - Dst: reset_timout
      Src: /src/libxml2/testlimits.c:272,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - URI
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 277
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 277
    functionName: crazyOpen
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached:
    - strlen
    - reset_timout
    - strncmp
    linkageType: ''
    returnType: void*
    signature: 'static void *crazyOpen(const char * URI) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - int
    - xmlElementContentPtr
    constantsTouched: []
    func_position:
      end: 563
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 563
    functionName: elementDeclCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void elementDeclCallback(void *ctx ATTRIBUTE_UNUSED, const
      xmlChar * name ATTRIBUTE_UNUSED, int type ATTRIBUTE_UNUSED, xmlElementContentPtr
      content ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 712
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 712
    functionName: ignorableWhitespaceCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void ignorableWhitespaceCallback(void *ctx ATTRIBUTE_UNUSED,
      const xmlChar * ch ATTRIBUTE_UNUSED, int len ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 49
    argCount: 1
    argNames:
    - test
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1185
      start: 1160
    functionDepth: 0
    functionLinenumber: 1160
    functionLinenumberEnd: 1185
    functionName: get_crazy_fail
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int get_crazy_fail(int test) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxml2/testlimits.c:1199,1
    - Dst: get_crazy_fail
      Src: /src/libxml2/testlimits.c:1202,1
    - Dst: launchCrazy
      Src: /src/libxml2/testlimits.c:1202,1
    - Dst: printf
      Src: /src/libxml2/testlimits.c:1209,1
    - Dst: strlen
      Src: /src/libxml2/testlimits.c:1201,1
    - Dst: strlen
      Src: /src/libxml2/testlimits.c:1211,1
    - Dst: launchCrazySAX
      Src: /src/libxml2/testlimits.c:1212,1
    - Dst: get_crazy_fail
      Src: /src/libxml2/testlimits.c:1212,1
    - Dst: fprintf
      Src: /src/libxml2/testlimits.c:1217,1
    - Dst: printf
      Src: /src/libxml2/testlimits.c:1220,1
    - Dst: printf
      Src: /src/libxml2/testlimits.c:1222,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1228
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1228
    functionName: runcrazy
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached:
    - fprintf
    - get_crazy_fail
    - launchCrazy
    - launchCrazySAX
    - strlen
    - printf
    linkageType: ''
    returnType: int
    signature: 'static int runcrazy(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/libxml2/testlimits.c:253,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - URI
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: crazyMatch
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: 'static int crazyMatch(const char * URI) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 7
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - int
    - int
    - xmlChar*
    - xmlEnumerationPtr
    constantsTouched: []
    func_position:
      end: 546
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 546
    functionName: attributeDeclCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void attributeDeclCallback(void *ctx ATTRIBUTE_UNUSED, const
      xmlChar * elem ATTRIBUTE_UNUSED, const xmlChar * name ATTRIBUTE_UNUSED, int
      type ATTRIBUTE_UNUSED, int def ATTRIBUTE_UNUSED, const xmlChar * defaultValue
      ATTRIBUTE_UNUSED, xmlEnumerationPtr tree ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 5
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 599
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 599
    functionName: unparsedEntityDeclCallback
    functionSourceFile: /src/libxml2/testlimits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void unparsedEntityDeclCallback(void *ctx ATTRIBUTE_UNUSED,
      const xmlChar * name ATTRIBUTE_UNUSED, const xmlChar * publicId ATTRIBUTE_UNUSED,
      const xmlChar * systemId ATTRIBUTE_UNUSED, const xmlChar * notationName ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/error.c:898,1
    - Dst: xmlVFormatLegacyError
      Src: /src/libxml2/error.c:899,1
    - Dst: va_end
      Src: /src/libxml2/error.c:900,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - ATTRIBUTE_UNUSED
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 901
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 901
    functionName: xmlParserWarning
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - xmlVFormatLegacyError
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: 'void xmlParserWarning(void *ctx, const char *msg ATTRIBUTE_UNUSED,
      ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetLastErrorInternal
      Src: /src/libxml2/error.c:1005,1
    - Dst: xmlResetError
      Src: /src/libxml2/error.c:1008,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1009
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1009
    functionName: xmlResetLastError
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - xmlGetLastErrorInternal
    - xmlResetError
    linkageType: ''
    returnType: void
    signature: 'void xmlResetLastError(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/error.c:986,1
    - Dst: xmlFree
      Src: /src/libxml2/error.c:988,1
    - Dst: xmlFree
      Src: /src/libxml2/error.c:990,1
    - Dst: xmlFree
      Src: /src/libxml2/error.c:994,1
    - Dst: xmlFree
      Src: /src/libxml2/error.c:992,1
    - Dst: memset
      Src: /src/libxml2/error.c:995,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - err
    argTypes:
    - xmlError*
    constantsTouched: []
    func_position:
      end: 997
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 997
    functionName: xmlResetError
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    linkageType: ''
    returnType: void
    signature: 'void xmlResetError(xmlError *err) '
  - BBCount: 125
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 128
    EdgeCount: 128
    ICount: 126
    argCount: 1
    argNames:
    - code
    argTypes:
    - xmlParserErrors
    constantsTouched: []
    func_position:
      end: 1365
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1365
    functionName: xmlErrString
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlErrString(xmlParserErrors code) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSetError
      Src: /src/libxml2/error.c:151,1
    - Dst: xmlVSetError
      Src: /src/libxml2/error.c:163,1
    - Dst: va_start
      Src: /src/libxml2/error.c:162,1
    - Dst: va_end
      Src: /src/libxml2/error.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames:
    - 14,15
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 168
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - xmlSetError
    - va_start
    - xmlVSetError
    - va_end
    linkageType: ''
    returnType: int
    signature: 'static int LIBXML_ATTR_FORMAT(14,15)xmlSetError(xmlError *err, void
      *ctxt, xmlNodePtr node, int domain, int code, xmlErrorLevel level, const char
      *file, int line, const char *str1, const char *str2, const char *str3, int int1,
      int col, const char *fmt, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserPrintFileContextInternal
      Src: /src/libxml2/error.c:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - struct _xmlParserInput*
    constantsTouched: []
    func_position:
      end: 428
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 428
    functionName: xmlParserPrintFileContext
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - xmlParserPrintFileContextInternal
    linkageType: ''
    returnType: void
    signature: 'void xmlParserPrintFileContext(struct _xmlParserInput *input) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSetError
      Src: /src/libxml2/error.c:1028,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - xmlError*
    - xmlError*
    constantsTouched: []
    func_position:
      end: 1034
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1034
    functionName: xmlCopyError
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - xmlSetError
    linkageType: ''
    returnType: int
    signature: 'int xmlCopyError(const xmlError *from, xmlError *to) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/error.c:1403,1
    - Dst: va_end
      Src: /src/libxml2/error.c:1405,1
    - Dst: xmlVPrintErrorMessage
      Src: /src/libxml2/error.c:1404,1
    - Dst: abort
      Src: /src/libxml2/error.c:1407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    - '...'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1408
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1408
    functionName: xmlAbort
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - abort
    - va_start
    - xmlVPrintErrorMessage
    - va_end
    linkageType: ''
    returnType: void
    signature: 'void xmlAbort(const char *fmt, ...) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetLineNo
      Src: /src/libxml2/error.c:206,1
    - Dst: xmlVSetError
      Src: /src/libxml2/error.c:210,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 27
    argCount: 15
    argNames:
    - err
    - ctxt
    - node
    - domain
    - code
    - level
    - file
    - line
    - str1
    - str2
    - str3
    - int1
    - col
    - fmt
    - ap
    argTypes:
    - xmlError*
    - void*
    - xmlNodePtr
    - int
    - int
    - xmlErrorLevel
    - char*
    - int
    - char*
    - char*
    - char*
    - int
    - int
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 214
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 214
    functionName: xmlVUpdateError
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - xmlGetLineNo
    - xmlVSetError
    linkageType: ''
    returnType: int
    signature: 'static int xmlVUpdateError(xmlError *err, void *ctxt, xmlNodePtr node,
      int domain, int code, xmlErrorLevel level, const char *file, int line, const
      char *str1, const char *str2, const char *str3, int int1, int col, const char
      *fmt, va_list ap) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetUTF8Char
      Src: /src/libxml2/error.c:391,1
    - Dst: channel
      Src: /src/libxml2/error.c:413,1
    - Dst: channel
      Src: /src/libxml2/error.c:401,1
    - Dst: memcpy
      Src: /src/libxml2/error.c:398,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 69
    argCount: 3
    argNames:
    - input
    - channel
    - data
    argTypes:
    - xmlParserInputPtr
    - xmlGenericErrorFunc
    - void*
    constantsTouched: []
    func_position:
      end: 414
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 414
    functionName: xmlParserPrintFileContextInternal
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - memcpy
    - xmlGetUTF8Char
    - channel
    linkageType: ''
    returnType: void
    signature: "static void xmlParserPrintFileContextInternal(xmlParserInputPtr input
      ,\t\txmlGenericErrorFunc channel, void *data ) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/error.c:874,1
    - Dst: va_end
      Src: /src/libxml2/error.c:876,1
    - Dst: xmlVFormatLegacyError
      Src: /src/libxml2/error.c:875,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - ATTRIBUTE_UNUSED
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 877
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 877
    functionName: xmlParserError
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - xmlVFormatLegacyError
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: 'void xmlParserError(void *ctx, const char *msg ATTRIBUTE_UNUSED, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/error.c:1388,1
    - Dst: va_end
      Src: /src/libxml2/error.c:1390,1
    - Dst: xmlVPrintErrorMessage
      Src: /src/libxml2/error.c:1389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    - '...'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1391
      start: 1384
    functionDepth: 0
    functionLinenumber: 1384
    functionLinenumberEnd: 1391
    functionName: xmlPrintErrorMessage
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - va_start
    - xmlVPrintErrorMessage
    - va_end
    linkageType: ''
    returnType: void
    signature: 'void xmlPrintErrorMessage(const char *fmt, ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlGenericError
      Src: /src/libxml2/error.c:334,1
    - Dst: xmlGenericError
      Src: /src/libxml2/error.c:338,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - struct _xmlParserInput*
    constantsTouched: []
    func_position:
      end: 341
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 341
    functionName: xmlParserPrintFileInfo
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - xmlGenericError
    linkageType: ''
    returnType: void
    signature: 'void xmlParserPrintFileInfo(struct _xmlParserInput *input) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - handler
    argTypes:
    - void*
    - xmlStructuredErrorFunc
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: xmlSetStructuredErrorFunc
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserPrintFileInfo
      Src: /src/libxml2/error.c:834,1
    - Dst: xmlGenericError
      Src: /src/libxml2/error.c:841,1
    - Dst: xmlFree
      Src: /src/libxml2/error.c:842,1
    - Dst: xmlStrVASPrintf
      Src: /src/libxml2/error.c:839,1
    - Dst: xmlGenericError
      Src: /src/libxml2/error.c:837,1
    - Dst: xmlParserPrintFileContext
      Src: /src/libxml2/error.c:846,1
    - Dst: xmlParserPrintFileInfo
      Src: /src/libxml2/error.c:848,1
    - Dst: xmlGenericError
      Src: /src/libxml2/error.c:849,1
    - Dst: xmlParserPrintFileContext
      Src: /src/libxml2/error.c:850,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - level
    - fmt
    - ap
    argTypes:
    - void*
    - char*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 853
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 853
    functionName: xmlVFormatLegacyError
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrVASPrintf
    - xmlParserPrintFileInfo
    - xmlParserPrintFileContext
    - xmlGenericError
    linkageType: ''
    returnType: void
    signature: 'static void xmlVFormatLegacyError(void *ctx, const char *level, const
      char *fmt, va_list ap) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vfprintf
      Src: /src/libxml2/error.c:1375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - fmt
    - ap
    argTypes:
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 1376
      start: 1373
    functionDepth: 0
    functionLinenumber: 1373
    functionLinenumberEnd: 1376
    functionName: xmlVPrintErrorMessage
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - vfprintf
    linkageType: ''
    returnType: void
    signature: 'void xmlVPrintErrorMessage(const char *fmt, va_list ap) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlResetError
      Src: /src/libxml2/error.c:81,1
    - Dst: xmlStrdup
      Src: /src/libxml2/error.c:103,1
    - Dst: xmlStrVASPrintf
      Src: /src/libxml2/error.c:94,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/error.c:89,1
    - Dst: xmlStrdup
      Src: /src/libxml2/error.c:108,1
    - Dst: xmlStrdup
      Src: /src/libxml2/error.c:113,1
    - Dst: xmlStrdup
      Src: /src/libxml2/error.c:118,1
    - Dst: xmlResetError
      Src: /src/libxml2/error.c:123,1
    - Dst: xmlFree
      Src: /src/libxml2/error.c:142,1
    - Dst: xmlFree
      Src: /src/libxml2/error.c:143,1
    - Dst: xmlFree
      Src: /src/libxml2/error.c:145,1
    - Dst: xmlFree
      Src: /src/libxml2/error.c:144,1
    - Dst: xmlFree
      Src: /src/libxml2/error.c:146,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 53
    argCount: 15
    argNames:
    - err
    - ctxt
    - node
    - domain
    - code
    - level
    - file
    - line
    - str1
    - str2
    - str3
    - int1
    - col
    - fmt
    - ap
    argTypes:
    - xmlError*
    - void*
    - xmlNodePtr
    - int
    - int
    - xmlErrorLevel
    - char*
    - int
    - char*
    - char*
    - char*
    - int
    - int
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 148
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 148
    functionName: xmlVSetError
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrVASPrintf
    - xmlStrdup
    - xmlResetError
    - xmlMemStrdup
    linkageType: ''
    returnType: int
    signature: 'static int xmlVSetError(xmlError *err, void *ctxt, xmlNodePtr node,
      int domain, int code, xmlErrorLevel level, const char *file, int line, const
      char *str1, const char *str2, const char *str3, int int1, int col, const char
      *fmt, va_list ap) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - handler
    argTypes:
    - void*
    - xmlGenericErrorFunc
    constantsTouched: []
    func_position:
      end: 273
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 273
    functionName: xmlSetGenericErrorFunc
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetLastErrorInternal
      Src: /src/libxml2/error.c:669,1
    - Dst: xmlResetLastError
      Src: /src/libxml2/error.c:671,1
    - Dst: xmlStructuredError
      Src: /src/libxml2/error.c:686,1
    - Dst: schannel
      Src: /src/libxml2/error.c:684,1
    - Dst: xmlResetError
      Src: /src/libxml2/error.c:677,1
    - Dst: channel
      Src: /src/libxml2/error.c:688,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - schannel
    - channel
    - data
    - domain
    - error
    argTypes:
    - xmlStructuredErrorFunc
    - xmlGenericErrorFunc
    - void*
    - int
    - xmlError*
    constantsTouched: []
    func_position:
      end: 690
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 690
    functionName: xmlRaiseMemoryError
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - schannel
    - xmlResetLastError
    - xmlGetLastErrorInternal
    - xmlStructuredError
    - xmlResetError
    - channel
    linkageType: ''
    returnType: void
    signature: 'void xmlRaiseMemoryError(xmlStructuredErrorFunc schannel, xmlGenericErrorFunc
      channel, void *data, int domain, xmlError *error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/error.c:810,1
    - Dst: va_end
      Src: /src/libxml2/error.c:814,1
    - Dst: xmlVRaiseError
      Src: /src/libxml2/error.c:811,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 5
    argCount: 16
    argNames:
    - schannel
    - channel
    - data
    - ctx
    - node
    - domain
    - code
    - level
    - file
    - line
    - str1
    - str2
    - str3
    - int1
    - col
    - msg
    - '...'
    argTypes:
    - xmlStructuredErrorFunc
    - xmlGenericErrorFunc
    - void*
    - void*
    - xmlNode*
    - int
    - int
    - xmlErrorLevel
    - char*
    - int
    - char*
    - char*
    - char*
    - int
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 817
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 817
    functionName: xmlRaiseError
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - xmlVRaiseError
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: 'int xmlRaiseError(xmlStructuredErrorFunc schannel, xmlGenericErrorFunc
      channel, void *data, void *ctx, xmlNode *node, int domain, int code, xmlErrorLevel
      level, const char *file, int line, const char *str1, const char *str2, const
      char *str3, int int1, int col, const char *msg, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetLastErrorInternal
      Src: /src/libxml2/error.c:966,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 971
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 971
    functionName: xmlGetLastError
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - xmlGetLastErrorInternal
    linkageType: ''
    returnType: xmlError*
    signature: 'const xmlError *xmlGetLastError(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 8
    argCount: 2
    argNames:
    - level
    - code
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 57
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 57
    functionName: xmlIsCatastrophicError
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlIsCatastrophicError(int level, int code) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/error.c:236,1
    - Dst: va_end
      Src: /src/libxml2/error.c:238,1
    - Dst: vfprintf
      Src: /src/libxml2/error.c:237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 239
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 239
    functionName: xmlGenericErrorDefaultFunc
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - va_start
    - vfprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: 'void xmlGenericErrorDefaultFunc(void *ctx ATTRIBUTE_UNUSED, const
      char *msg, ...) '
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: channel
      Src: /src/libxml2/error.c:501,1
    - Dst: channel
      Src: /src/libxml2/error.c:521,1
    - Dst: channel
      Src: /src/libxml2/error.c:539,1
    - Dst: channel
      Src: /src/libxml2/error.c:551,1
    - Dst: channel
      Src: /src/libxml2/error.c:563,1
    - Dst: channel
      Src: /src/libxml2/error.c:569,1
    - Dst: xmlStrlen
      Src: /src/libxml2/error.c:596,1
    - Dst: channel
      Src: /src/libxml2/error.c:598,1
    - Dst: channel
      Src: /src/libxml2/error.c:600,1
    - Dst: channel
      Src: /src/libxml2/error.c:602,1
    - Dst: channel
      Src: /src/libxml2/error.c:618,1
    - Dst: xmlParserPrintFileContextInternal
      Src: /src/libxml2/error.c:634,1
    - Dst: channel
      Src: /src/libxml2/error.c:633,1
    - Dst: channel
      Src: /src/libxml2/error.c:491,1
    - Dst: channel
      Src: /src/libxml2/error.c:496,1
    - Dst: channel
      Src: /src/libxml2/error.c:524,1
    - Dst: channel
      Src: /src/libxml2/error.c:542,1
    - Dst: channel
      Src: /src/libxml2/error.c:530,1
    - Dst: channel
      Src: /src/libxml2/error.c:554,1
    - Dst: channel
      Src: /src/libxml2/error.c:566,1
    - Dst: channel
      Src: /src/libxml2/error.c:572,1
    - Dst: channel
      Src: /src/libxml2/error.c:582,1
    - Dst: channel
      Src: /src/libxml2/error.c:585,1
    - Dst: channel
      Src: /src/libxml2/error.c:643,1
    - Dst: channel
      Src: /src/libxml2/error.c:504,1
    - Dst: channel
      Src: /src/libxml2/error.c:508,1
    - Dst: channel
      Src: /src/libxml2/error.c:511,1
    - Dst: channel
      Src: /src/libxml2/error.c:515,1
    - Dst: channel
      Src: /src/libxml2/error.c:527,1
    - Dst: channel
      Src: /src/libxml2/error.c:533,1
    - Dst: channel
      Src: /src/libxml2/error.c:545,1
    - Dst: channel
      Src: /src/libxml2/error.c:557,1
    - Dst: channel
      Src: /src/libxml2/error.c:575,1
    - Dst: channel
      Src: /src/libxml2/error.c:588,1
    - Dst: channel
      Src: /src/libxml2/error.c:493,1
    - Dst: channel
      Src: /src/libxml2/error.c:518,1
    - Dst: channel
      Src: /src/libxml2/error.c:548,1
    - Dst: channel
      Src: /src/libxml2/error.c:536,1
    - Dst: channel
      Src: /src/libxml2/error.c:560,1
    - Dst: channel
      Src: /src/libxml2/error.c:591,1
    - Dst: channel
      Src: /src/libxml2/error.c:612,1
    - Dst: channel
      Src: /src/libxml2/error.c:616,1
    - Dst: channel
      Src: /src/libxml2/error.c:625,1
    - Dst: channel
      Src: /src/libxml2/error.c:648,1
    - Dst: xmlParserPrintFileContextInternal
      Src: /src/libxml2/error.c:621,1
    - Dst: xmlStrlen
      Src: /src/libxml2/error.c:639,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 164
    argCount: 3
    argNames:
    - err
    - channel
    - data
    argTypes:
    - xmlError*
    - xmlGenericErrorFunc
    - void*
    constantsTouched: []
    func_position:
      end: 650
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 650
    functionName: xmlFormatError
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - xmlStrlen
    - channel
    - xmlParserPrintFileContextInternal
    linkageType: ''
    returnType: void
    signature: 'void xmlFormatError(const xmlError *err, xmlGenericErrorFunc channel,
      void *data) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetLastErrorInternal
      Src: /src/libxml2/error.c:726,1
    - Dst: xmlAbort
      Src: /src/libxml2/error.c:733,1
    - Dst: xmlCopyError
      Src: /src/libxml2/error.c:752,1
    - Dst: xmlVUpdateError
      Src: /src/libxml2/error.c:747,1
    - Dst: schannel
      Src: /src/libxml2/error.c:757,1
    - Dst: xmlStructuredError
      Src: /src/libxml2/error.c:759,1
    - Dst: xmlFormatError
      Src: /src/libxml2/error.c:767,1
    - Dst: channel
      Src: /src/libxml2/error.c:769,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 47
    argCount: 17
    argNames:
    - schannel
    - channel
    - data
    - ctx
    - node
    - domain
    - code
    - level
    - file
    - line
    - str1
    - str2
    - str3
    - int1
    - col
    - msg
    - ap
    argTypes:
    - xmlStructuredErrorFunc
    - xmlGenericErrorFunc
    - void*
    - void*
    - xmlNode*
    - int
    - int
    - xmlErrorLevel
    - char*
    - int
    - char*
    - char*
    - char*
    - int
    - int
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 773
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 773
    functionName: xmlVRaiseError
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - schannel
    - xmlFormatError
    - xmlAbort
    - xmlGetLastErrorInternal
    - xmlCopyError
    - xmlStructuredError
    - channel
    - xmlVUpdateError
    linkageType: ''
    returnType: int
    signature: 'int xmlVRaiseError(xmlStructuredErrorFunc schannel, xmlGenericErrorFunc
      channel, void *data, void *ctx, xmlNode *node, int domain, int code, xmlErrorLevel
      level, const char *file, int line, const char *str1, const char *str2, const
      char *str3, int int1, int col, const char *msg, va_list ap) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/error.c:922,1
    - Dst: va_end
      Src: /src/libxml2/error.c:924,1
    - Dst: xmlVFormatLegacyError
      Src: /src/libxml2/error.c:923,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - ATTRIBUTE_UNUSED
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 925
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 925
    functionName: xmlParserValidityError
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - xmlVFormatLegacyError
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: 'void xmlParserValidityError(void *ctx, const char *msg ATTRIBUTE_UNUSED,
      ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/error.c:946,1
    - Dst: va_end
      Src: /src/libxml2/error.c:948,1
    - Dst: xmlVFormatLegacyError
      Src: /src/libxml2/error.c:947,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - ATTRIBUTE_UNUSED
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 949
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 949
    functionName: xmlParserValidityWarning
    functionSourceFile: /src/libxml2/error.c
    functionUses: []
    functionsReached:
    - xmlVFormatLegacyError
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: 'void xmlParserValidityWarning(void *ctx, const char *msg ATTRIBUTE_UNUSED,
      ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferCreate
      Src: /src/libxml2/testchar.c:752,1
    - Dst: xmlBufferCreate
      Src: /src/libxml2/testchar.c:754,1
    - Dst: xmlCharEncOutFunc
      Src: /src/libxml2/testchar.c:755,1
    - Dst: xmlBufferDetach
      Src: /src/libxml2/testchar.c:759,1
    - Dst: xmlBufferAdd
      Src: /src/libxml2/testchar.c:753,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/testchar.c:761,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/testchar.c:762,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 4
    argNames:
    - handler
    - utf8
    - size
    - outSize
    argTypes:
    - xmlCharEncodingHandlerPtr
    - char*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 764
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 764
    functionName: convert
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached:
    - xmlBufferDetach
    - xmlBufferCreate
    - xmlCharEncOutFunc
    - xmlBufferAdd
    - xmlBufferFree
    linkageType: ''
    returnType: char*
    signature: 'static char *convert(xmlCharEncodingHandlerPtr handler, const char
      *utf8, int size, int *outSize) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferCreate
      Src: /src/libxml2/testchar.c:906,1
    - Dst: xmlCharEncInFunc
      Src: /src/libxml2/testchar.c:911,1
    - Dst: xmlBufferCreate
      Src: /src/libxml2/testchar.c:907,1
    - Dst: xmlBufferAdd
      Src: /src/libxml2/testchar.c:910,1
    - Dst: bufCompare
      Src: /src/libxml2/testchar.c:912,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:913,1
    - Dst: xmlBufferEmpty
      Src: /src/libxml2/testchar.c:918,1
    - Dst: xmlBufferAdd
      Src: /src/libxml2/testchar.c:919,1
    - Dst: xmlCharEncOutFunc
      Src: /src/libxml2/testchar.c:920,1
    - Dst: bufCompare
      Src: /src/libxml2/testchar.c:921,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:922,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/testchar.c:927,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/testchar.c:928,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - handler
    - dec
    - decSize
    - enc
    - encSize
    argTypes:
    - xmlCharEncodingHandlerPtr
    - xmlChar*
    - int
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 930
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 930
    functionName: testEncHandler
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached:
    - bufCompare
    - xmlCharEncInFunc
    - xmlBufferCreate
    - xmlCharEncOutFunc
    - xmlBufferAdd
    - fprintf
    - xmlBufferEmpty
    - xmlBufferFree
    linkageType: ''
    returnType: int
    signature: 'static int testEncHandler(xmlCharEncodingHandlerPtr handler, const
      xmlChar *dec, int decSize, const xmlChar *enc, int encSize) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetCharEncodingHandler
      Src: /src/libxml2/testchar.c:779,1
    - Dst: convert
      Src: /src/libxml2/testchar.c:780,1
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/testchar.c:781,1
    - Dst: xmlSwitchEncoding
      Src: /src/libxml2/testchar.c:782,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testchar.c:783,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testchar.c:784,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/testchar.c:790,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testchar.c:793,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testchar.c:794,1
    - Dst: xmlFree
      Src: /src/libxml2/testchar.c:795,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 798
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 798
    functionName: testUserEncodingPush
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetCharEncodingHandler
    - convert
    - xmlSwitchEncoding
    - xmlParseChunk
    - xmlFreeDoc
    - xmlCreatePushParserCtxt
    - xmlFreeParserCtxt
    - xmlStrcmp
    linkageType: ''
    returnType: int
    signature: 'static int testUserEncodingPush(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/testchar.c:809,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testchar.c:812,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testchar.c:815,1
    - Dst: xmlFree
      Src: /src/libxml2/testchar.c:825,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testchar.c:826,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testchar.c:831,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testchar.c:841,1
    - Dst: strncmp
      Src: /src/libxml2/testchar.c:848,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testchar.c:869,1
    - Dst: xmlDocDumpMemory
      Src: /src/libxml2/testchar.c:818,1
    - Dst: strcmp
      Src: /src/libxml2/testchar.c:819,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:821,1
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/testchar.c:829,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testchar.c:844,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testchar.c:845,1
    - Dst: memcmp
      Src: /src/libxml2/testchar.c:854,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:861,1
    - Dst: xmlFree
      Src: /src/libxml2/testchar.c:867,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testchar.c:811,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testchar.c:814,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testchar.c:813,1
    - Dst: memcpy
      Src: /src/libxml2/testchar.c:839,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testchar.c:827,1
    - Dst: xmlDocDumpMemory
      Src: /src/libxml2/testchar.c:847,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:849,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:855,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testchar.c:868,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testchar.c:816,1
    - Dst: xmlFree
      Src: /src/libxml2/testchar.c:842,1
    - Dst: xmlMalloc
      Src: /src/libxml2/testchar.c:837,1
    - Dst: strcmp
      Src: /src/libxml2/testchar.c:860,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 62
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 873
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 873
    functionName: testUTF8Chunks
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memcpy
    - xmlDocDumpMemory
    - strcmp
    - xmlParseChunk
    - xmlFreeDoc
    - xmlCreatePushParserCtxt
    - xmlFreeParserCtxt
    - strncmp
    - memcmp
    - xmlMalloc
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int testUTF8Chunks(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFindCharEncodingHandler
      Src: /src/libxml2/testchar.c:965,1
    - Dst: testEncHandler
      Src: /src/libxml2/testchar.c:972,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/testchar.c:977,1
    - Dst: xmlFindCharEncodingHandler
      Src: /src/libxml2/testchar.c:966,1
    - Dst: testEncHandler
      Src: /src/libxml2/testchar.c:968,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/testchar.c:978,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 981
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 981
    functionName: testUTF16
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached:
    - testEncHandler
    - xmlFindCharEncodingHandler
    - xmlCharEncCloseFunc
    linkageType: ''
    returnType: int
    signature: 'static int testUTF16(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testCharRanges
      Src: /src/libxml2/testchar.c:1002,1
    - Dst: testUserEncoding
      Src: /src/libxml2/testchar.c:1004,1
    - Dst: testDocumentRanges
      Src: /src/libxml2/testchar.c:1003,1
    - Dst: testUTF8Chunks
      Src: /src/libxml2/testchar.c:1007,1
    - Dst: testUserEncodingPush
      Src: /src/libxml2/testchar.c:1006,1
    - Dst: testUTF16
      Src: /src/libxml2/testchar.c:1009,1
    - Dst: xmlCleanupParser
      Src: /src/libxml2/testchar.c:1014,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1016
      start: 983
    functionDepth: 0
    functionLinenumber: 983
    functionLinenumberEnd: 1016
    functionName: main
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached:
    - testUserEncodingPush
    - testUTF8Chunks
    - testCharRanges
    - testUserEncoding
    - testDocumentRanges
    - testUTF16
    - xmlCleanupParser
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:172,1
    - Dst: fflush
      Src: /src/libxml2/testchar.c:177,1
    - Dst: testDocumentRangeByte1
      Src: /src/libxml2/testchar.c:184,1
    - Dst: printf
      Src: /src/libxml2/testchar.c:186,1
    - Dst: strlen
      Src: /src/libxml2/testchar.c:204,1
    - Dst: testDocumentRangeByte1
      Src: /src/libxml2/testchar.c:213,1
    - Dst: strlen
      Src: /src/libxml2/testchar.c:225,1
    - Dst: testDocumentRangeByte2
      Src: /src/libxml2/testchar.c:234,1
    - Dst: printf
      Src: /src/libxml2/testchar.c:237,1
    - Dst: fflush
      Src: /src/libxml2/testchar.c:248,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/testchar.c:170,1
    - Dst: strlen
      Src: /src/libxml2/testchar.c:184,1
    - Dst: testDocumentRangeByte1
      Src: /src/libxml2/testchar.c:193,1
    - Dst: printf
      Src: /src/libxml2/testchar.c:196,1
    - Dst: strlen
      Src: /src/libxml2/testchar.c:213,1
    - Dst: printf
      Src: /src/libxml2/testchar.c:206,1
    - Dst: printf
      Src: /src/libxml2/testchar.c:215,1
    - Dst: testDocumentRangeByte1
      Src: /src/libxml2/testchar.c:204,1
    - Dst: fflush
      Src: /src/libxml2/testchar.c:207,1
    - Dst: printf
      Src: /src/libxml2/testchar.c:217,1
    - Dst: fflush
      Src: /src/libxml2/testchar.c:228,1
    - Dst: printf
      Src: /src/libxml2/testchar.c:176,1
    - Dst: fflush
      Src: /src/libxml2/testchar.c:187,1
    - Dst: strlen
      Src: /src/libxml2/testchar.c:193,1
    - Dst: fflush
      Src: /src/libxml2/testchar.c:238,1
    - Dst: testDocumentRangeByte2
      Src: /src/libxml2/testchar.c:245,1
    - Dst: printf
      Src: /src/libxml2/testchar.c:247,1
    - Dst: strlen
      Src: /src/libxml2/testchar.c:254,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testchar.c:258,1
    - Dst: printf
      Src: /src/libxml2/testchar.c:256,1
    - Dst: fflush
      Src: /src/libxml2/testchar.c:197,1
    - Dst: fflush
      Src: /src/libxml2/testchar.c:218,1
    - Dst: testDocumentRangeByte2
      Src: /src/libxml2/testchar.c:225,1
    - Dst: printf
      Src: /src/libxml2/testchar.c:227,1
    - Dst: strlen
      Src: /src/libxml2/testchar.c:234,1
    - Dst: strlen
      Src: /src/libxml2/testchar.c:245,1
    - Dst: testDocumentRangeByte2
      Src: /src/libxml2/testchar.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 89
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 260
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 260
    functionName: testDocumentRanges
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached:
    - testDocumentRangeByte1
    - printf
    - testDocumentRangeByte2
    - xmlFreeParserCtxt
    - strlen
    - fflush
    - fprintf
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int testDocumentRanges(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlCurrentChar
      Src: /src/libxml2/testchar.c:268,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:286,1
    - Dst: xmlNextChar
      Src: /src/libxml2/testchar.c:274,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:280,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - ctxt
    - len
    argTypes:
    - xmlParserCtxtPtr
    - int*
    constantsTouched: []
    func_position:
      end: 294
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 294
    functionName: testCurrentChar
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached:
    - fprintf
    - xmlNextChar
    - xmlCurrentChar
    linkageType: ''
    returnType: int
    signature: 'static int testCurrentChar(xmlParserCtxtPtr ctxt, int *len) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtReset
      Src: /src/libxml2/testchar.c:83,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:93,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:106,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:119,1
    - Dst: xmlReadMemory
      Src: /src/libxml2/testchar.c:88,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:132,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:143,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testchar.c:148,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 58
    argCount: 4
    argNames:
    - ctxt
    - document
    - len
    - data
    argTypes:
    - xmlParserCtxtPtr
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 152
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 152
    functionName: testDocumentRangeByte2
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached:
    - xmlFreeDoc
    - fprintf
    - xmlCtxtReset
    - xmlReadMemory
    linkageType: ''
    returnType: int
    signature: 'static int testDocumentRangeByte2(xmlParserCtxtPtr ctxt, char *document,
      int len, char *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libxml2/testchar.c:699,1
    - Dst: xmlReadMemory
      Src: /src/libxml2/testchar.c:721,1
    - Dst: xmlMalloc
      Src: /src/libxml2/testchar.c:707,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:723,1
    - Dst: strlen
      Src: /src/libxml2/testchar.c:701,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:730,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testchar.c:738,1
    - Dst: xmlFree
      Src: /src/libxml2/testchar.c:739,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 742
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 742
    functionName: testUserEncoding
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlReadMemory
    - fprintf
    - xmlFreeDoc
    - strlen
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'static int testUserEncoding(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: testCurrentChar
      Src: /src/libxml2/testchar.c:308,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:320,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:324,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:314,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 329
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 329
    functionName: testCharRangeByte1
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached:
    - fprintf
    - testCurrentChar
    linkageType: ''
    returnType: int
    signature: 'static int testCharRangeByte1(xmlParserCtxtPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - unused
    - err
    argTypes:
    - void*
    - xmlError*
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: errorHandler
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void errorHandler(void *unused, const xmlError *err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:881,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:885,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:883,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - prefix
    - content
    - len
    argTypes:
    - char*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 886
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 886
    functionName: bufDump
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void bufDump(const char *prefix, const xmlChar *content, int
      len) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtReset
      Src: /src/libxml2/testchar.c:34,1
    - Dst: xmlReadMemory
      Src: /src/libxml2/testchar.c:38,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:42,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:59,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:51,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:65,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testchar.c:70,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 47
    argCount: 6
    argNames:
    - ctxt
    - document
    - len
    - data
    - forbid1
    - forbid2
    argTypes:
    - xmlParserCtxtPtr
    - char*
    - int
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 73
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 73
    functionName: testDocumentRangeByte1
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached:
    - xmlFreeDoc
    - fprintf
    - xmlCtxtReset
    - xmlReadMemory
    linkageType: ''
    returnType: int
    signature: 'static int testDocumentRangeByte1(xmlParserCtxtPtr ctxt, char *document,
      int len, char *data, int forbid1, int forbid2) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferContent
      Src: /src/libxml2/testchar.c:890,1
    - Dst: bufDump
      Src: /src/libxml2/testchar.c:897,1
    - Dst: memcmp
      Src: /src/libxml2/testchar.c:894,1
    - Dst: xmlBufferLength
      Src: /src/libxml2/testchar.c:891,1
    - Dst: bufDump
      Src: /src/libxml2/testchar.c:898,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - got
    - expectContent
    - expectLen
    argTypes:
    - xmlBufferPtr
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 901
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 901
    functionName: bufCompare
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached:
    - memcmp
    - bufDump
    - xmlBufferLength
    - xmlBufferContent
    linkageType: ''
    returnType: int
    signature: 'static int bufCompare(xmlBufferPtr got, const xmlChar *expectContent,
      int expectLen) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: testCurrentChar
      Src: /src/libxml2/testchar.c:344,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:390,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:377,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:351,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:364,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:401,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:410,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 418
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 418
    functionName: testCharRangeByte2
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached:
    - fprintf
    - testCurrentChar
    linkageType: ''
    returnType: int
    signature: 'static int testCharRangeByte2(xmlParserCtxtPtr ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libxml2/testchar.c:636,1
    - Dst: printf
      Src: /src/libxml2/testchar.c:676,1
    - Dst: fflush
      Src: /src/libxml2/testchar.c:671,1
    - Dst: testCharRangeByte4
      Src: /src/libxml2/testchar.c:678,1
    - Dst: printf
      Src: /src/libxml2/testchar.c:679,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/testchar.c:665,1
    - Dst: printf
      Src: /src/libxml2/testchar.c:673,1
    - Dst: fflush
      Src: /src/libxml2/testchar.c:668,1
    - Dst: testCharRangeByte3
      Src: /src/libxml2/testchar.c:675,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:644,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/testchar.c:656,1
    - Dst: printf
      Src: /src/libxml2/testchar.c:670,1
    - Dst: testCharRangeByte2
      Src: /src/libxml2/testchar.c:672,1
    - Dst: fflush
      Src: /src/libxml2/testchar.c:677,1
    - Dst: fflush
      Src: /src/libxml2/testchar.c:680,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testchar.c:683,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:650,1
    - Dst: xmlParserInputBufferCreateStatic
      Src: /src/libxml2/testchar.c:647,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/testchar.c:642,1
    - Dst: xmlNewInputStream
      Src: /src/libxml2/testchar.c:654,1
    - Dst: xmlBufContent
      Src: /src/libxml2/testchar.c:663,1
    - Dst: printf
      Src: /src/libxml2/testchar.c:667,1
    - Dst: fflush
      Src: /src/libxml2/testchar.c:674,1
    - Dst: testCharRangeByte1
      Src: /src/libxml2/testchar.c:669,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 46
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 685
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 685
    functionName: testCharRanges
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached:
    - testCharRangeByte1
    - testCharRangeByte2
    - testCharRangeByte4
    - xmlBufContent
    - xmlFreeParserCtxt
    - memset
    - printf
    - xmlCtxtPushInput
    - xmlParserInputBufferCreateStatic
    - xmlFreeParserInputBuffer
    - xmlNewInputStream
    - fflush
    - testCharRangeByte3
    - fprintf
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int testCharRanges(void) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: testCurrentChar
      Src: /src/libxml2/testchar.c:438,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:460,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:486,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:448,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:474,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:497,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:507,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 516
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 516
    functionName: testCharRangeByte3
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached:
    - fprintf
    - testCurrentChar
    linkageType: ''
    returnType: int
    signature: 'static int testCharRangeByte3(xmlParserCtxtPtr ctxt) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: testCurrentChar
      Src: /src/libxml2/testchar.c:540,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:590,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:577,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:563,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:550,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:601,1
    - Dst: fprintf
      Src: /src/libxml2/testchar.c:611,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 79
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 621
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 621
    functionName: testCharRangeByte4
    functionSourceFile: /src/libxml2/testchar.c
    functionUses: []
    functionsReached:
    - fprintf
    - testCurrentChar
    linkageType: ''
    returnType: int
    signature: 'static int testCharRangeByte4(xmlParserCtxtPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 884
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 884
    functionName: xmlFileMatch
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlFileMatch (const char *filename ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __libxml2_xzclose
      Src: /src/libxml2/xmlIO.c:1173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1176
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1176
    functionName: xmlXzfileClose
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - __libxml2_xzclose
    linkageType: ''
    returnType: int
    signature: 'static int xmlXzfileClose (void * context) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/libxml2/xmlIO.c:1212,1
    - Dst: xmlXzfileClose
      Src: /src/libxml2/xmlIO.c:1241,1
    - Dst: gzdopen
      Src: /src/libxml2/xmlIO.c:1257,1
    - Dst: close
      Src: /src/libxml2/xmlIO.c:1260,1
    - Dst: dup
      Src: /src/libxml2/xmlIO.c:1285,1
    - Dst: xmlGzfileClose
      Src: /src/libxml2/xmlIO.c:1280,1
    - Dst: gzdirect
      Src: /src/libxml2/xmlIO.c:1262,1
    - Dst: xmlIOErr
      Src: /src/libxml2/xmlIO.c:1287,1
    - Dst: close
      Src: /src/libxml2/xmlIO.c:1291,1
    - Dst: __libxml2_xzdopen
      Src: /src/libxml2/xmlIO.c:1218,1
    - Dst: dup
      Src: /src/libxml2/xmlIO.c:1214,1
    - Dst: close
      Src: /src/libxml2/xmlIO.c:1221,1
    - Dst: xmlIOErr
      Src: /src/libxml2/xmlIO.c:1216,1
    - Dst: __libxml2_xzcompressed
      Src: /src/libxml2/xmlIO.c:1223,1
    - Dst: lseek
      Src: /src/libxml2/xmlIO.c:1228,1
    - Dst: lseek
      Src: /src/libxml2/xmlIO.c:1251,1
    - Dst: dup
      Src: /src/libxml2/xmlIO.c:1253,1
    - Dst: xmlIOErr
      Src: /src/libxml2/xmlIO.c:1255,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlIO.c:1289,1
    - Dst: lseek
      Src: /src/libxml2/xmlIO.c:1267,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 68
    argCount: 3
    argNames:
    - buf
    - fd
    - flags
    argTypes:
    - xmlParserInputBuffer*
    - int
    - xmlParserInputFlags
    constantsTouched: []
    func_position:
      end: 1301
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1301
    functionName: xmlInputFromFd
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - lseek
    - xmlIOErr
    - __libxml2_xzcompressed
    - dup
    - __libxml2_xzdopen
    - xmlXzfileClose
    - gzdirect
    - xmlGzfileClose
    - gzdopen
    - xmlMalloc
    - close
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'xmlParserErrors xmlInputFromFd(xmlParserInputBuffer *buf, int fd,
      xmlParserInputFlags flags) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xmlIO.c:1557,1
    - Dst: xmlFdOpen
      Src: /src/libxml2/xmlIO.c:1581,1
    - Dst: xmlAllocParserInputBuffer
      Src: /src/libxml2/xmlIO.c:1566,1
    - Dst: xmlInputFromFd
      Src: /src/libxml2/xmlIO.c:1584,1
    - Dst: close
      Src: /src/libxml2/xmlIO.c:1585,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/xmlIO.c:1602,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 4
    argNames:
    - URI
    - enc
    - flags
    - out
    argTypes:
    - char*
    - xmlCharEncoding
    - xmlParserInputFlags
    - xmlParserInputBuffer**
    constantsTouched: []
    func_position:
      end: 1609
      start: 1549
    functionDepth: 0
    functionLinenumber: 1549
    functionLinenumberEnd: 1609
    functionName: xmlParserInputBufferCreateUrl
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlInitParser
    - xmlInputFromFd
    - xmlFreeParserInputBuffer
    - xmlAllocParserInputBuffer
    - xmlFdOpen
    - close
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'xmlParserErrors xmlParserInputBufferCreateUrl(const char *URI, xmlCharEncoding
      enc, xmlParserInputFlags flags, xmlParserInputBuffer **out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferCreateIO
      Src: /src/libxml2/xmlIO.c:1868,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - buffer
    - encoder
    argTypes:
    - xmlBuffer*
    - xmlCharEncodingHandler*
    constantsTouched: []
    func_position:
      end: 1872
      start: 1859
    functionDepth: 0
    functionLinenumber: 1859
    functionLinenumberEnd: 1872
    functionName: xmlOutputBufferCreateBuffer
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferCreateIO
    linkageType: ''
    returnType: xmlOutputBuffer*
    signature: 'xmlOutputBuffer *xmlOutputBufferCreateBuffer(xmlBuffer *buffer, xmlCharEncodingHandler
      *encoder) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufUse
      Src: /src/libxml2/xmlIO.c:1899,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - out
    argTypes:
    - xmlOutputBuffer*
    constantsTouched: []
    func_position:
      end: 1900
      start: 1894
    functionDepth: 0
    functionLinenumber: 1894
    functionLinenumberEnd: 1900
    functionName: xmlOutputBufferGetSize
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlBufUse
    linkageType: ''
    returnType: size_t
    signature: 'size_t xmlOutputBufferGetSize(xmlOutputBuffer *out) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufAdd
      Src: /src/libxml2/xmlIO.c:2454,1
    - Dst: xmlBufCreate
      Src: /src/libxml2/xmlIO.c:2468,1
    - Dst: xmlBufUse
      Src: /src/libxml2/xmlIO.c:2502,1
    - Dst: xmlCharEncOutput
      Src: /src/libxml2/xmlIO.c:2481,1
    - Dst: xmlBufUse
      Src: /src/libxml2/xmlIO.c:2478,1
    - Dst: xmlBufContent
      Src: /src/libxml2/xmlIO.c:2508,1
    - Dst: xmlBufShrink
      Src: /src/libxml2/xmlIO.c:2518,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 57
    argCount: 3
    argNames:
    - out
    - len
    - data
    argTypes:
    - xmlOutputBuffer*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 2528
      start: 2443
    functionDepth: 0
    functionLinenumber: 2443
    functionLinenumberEnd: 2528
    functionName: xmlOutputBufferWrite
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlBufAdd
    - xmlCharEncOutput
    - xmlBufShrink
    - xmlBufCreate
    - xmlBufUse
    - xmlBufContent
    linkageType: ''
    returnType: int
    signature: 'int xmlOutputBufferWrite(xmlOutputBuffer *out, int len, const char
      *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xmlIO.c:2935,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2943
      start: 2932
    functionDepth: 0
    functionLinenumber: 2932
    functionLinenumberEnd: 2943
    functionName: xmlPopOutputCallbacks
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlInitParser
    linkageType: ''
    returnType: int
    signature: 'int xmlPopOutputCallbacks(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufFree
      Src: /src/libxml2/xmlIO.c:1470,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/xmlIO.c:1474,1
    - Dst: xmlBufFree
      Src: /src/libxml2/xmlIO.c:1480,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:1484,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - in
    argTypes:
    - xmlParserInputBuffer*
    constantsTouched: []
    func_position:
      end: 1485
      start: 1465
    functionDepth: 0
    functionLinenumber: 1465
    functionLinenumberEnd: 1485
    functionName: xmlFreeParserInputBuffer
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlBufFree
    - xmlCharEncCloseFunc
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeParserInputBuffer(xmlParserInputBuffer *in) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1188
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1188
    functionName: xmlIODefaultMatch
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlIODefaultMatch(const char *filename ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlAllocOutputBuffer
      Src: /src/libxml2/xmlIO.c:1840,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - file
    - encoder
    argTypes:
    - FILE*
    - xmlCharEncodingHandler*
    constantsTouched: []
    func_position:
      end: 1848
      start: 1832
    functionDepth: 0
    functionLinenumber: 1832
    functionLinenumberEnd: 1848
    functionName: xmlOutputBufferCreateFile
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlAllocOutputBuffer
    linkageType: ''
    returnType: xmlOutputBuffer*
    signature: 'xmlOutputBuffer *xmlOutputBufferCreateFile(FILE *file, xmlCharEncodingHandler
      *encoder) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - func
    argTypes:
    - xmlOutputBufferCreateFilenameFunc
    constantsTouched: []
    func_position:
      end: 2255
      start: 2244
    functionDepth: 0
    functionLinenumber: 2244
    functionLinenumberEnd: 2255
    functionName: xmlOutputBufferCreateFilenameDefault
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlOutputBufferCreateFilenameFunc
    signature: 'xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc
      func) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegisterInputCallbacks
      Src: /src/libxml2/xmlIO.c:2858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2859
      start: 2856
    functionDepth: 0
    functionLinenumber: 2856
    functionLinenumberEnd: 2859
    functionName: xmlRegisterDefaultInputCallbacks
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlRegisterInputCallbacks
    linkageType: ''
    returnType: void
    signature: 'void xmlRegisterDefaultInputCallbacks(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xmlIO.c:2887,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2890
      start: 2884
    functionDepth: 0
    functionLinenumber: 2884
    functionLinenumberEnd: 2890
    functionName: xmlCleanupInputCallbacks
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlInitParser
    linkageType: ''
    returnType: void
    signature: 'void xmlCleanupInputCallbacks(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlIO.c:2093,1
    - Dst: memset
      Src: /src/libxml2/xmlIO.c:2096,1
    - Dst: strlen
      Src: /src/libxml2/xmlIO.c:2099,1
    - Dst: xmlBufCreateMem
      Src: /src/libxml2/xmlIO.c:2099,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:2102,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - str
    - flags
    argTypes:
    - char*
    - xmlParserInputFlags
    constantsTouched: []
    func_position:
      end: 2107
      start: 2089
    functionDepth: 0
    functionLinenumber: 2089
    functionLinenumberEnd: 2107
    functionName: xmlNewInputBufferString
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlBufCreateMem
    - xmlMalloc
    - strlen
    linkageType: ''
    returnType: xmlParserInputBuffer*
    signature: 'xmlParserInputBuffer *xmlNewInputBufferString(const char *str, xmlParserInputFlags
      flags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2324
      start: 2319
    functionDepth: 0
    functionLinenumber: 2319
    functionLinenumberEnd: 2324
    functionName: endOfInput
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "static int endOfInput (void * context ATTRIBUTE_UNUSED,\t char * buffer
      ATTRIBUTE_UNUSED,\t int len ATTRIBUTE_UNUSED) "
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - buf
    - val
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 159
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 159
    functionName: xmlSerializeHexCharRef
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlSerializeHexCharRef(char *buf, int val) '
  - BBCount: 51
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 52
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 564
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 564
    functionName: xmlIOErr
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlIOErr(int err) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MultiByteToWideChar
      Src: /src/libxml2/xmlIO.c:587,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlIO.c:590,1
    - Dst: MultiByteToWideChar
      Src: /src/libxml2/xmlIO.c:592,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:594,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - u8String
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 610
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 610
    functionName: __xmlIOWin32UTF8ToWChar
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - MultiByteToWideChar
    - xmlFree
    - xmlMalloc
    linkageType: ''
    returnType: wchar_t*
    signature: 'static wchar_t *__xmlIOWin32UTF8ToWChar(const char *u8String) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlIO.c:623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 624
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 624
    functionName: xmlNormalizeWindowsPath
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlNormalizeWindowsPath(const xmlChar *path) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libxml2/xmlIO.c:798,1
    - Dst: xmlIOErr
      Src: /src/libxml2/xmlIO.c:806,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - context
    - buffer
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 816
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 816
    functionName: xmlFdRead
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - read
    - xmlIOErr
    linkageType: ''
    returnType: int
    signature: 'static int xmlFdRead(void *context, char *buffer, int len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libxml2/xmlIO.c:865,1
    - Dst: xmlIOErr
      Src: /src/libxml2/xmlIO.c:870,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:867,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 873
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 873
    functionName: xmlFdClose
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlIOErr
    - close
    linkageType: ''
    returnType: int
    signature: 'static int xmlFdClose (void * context) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlFileFlush
      Src: /src/libxml2/xmlIO.c:1051,1
    - Dst: xmlIOErr
      Src: /src/libxml2/xmlIO.c:1054,1
    - Dst: fclose
      Src: /src/libxml2/xmlIO.c:1053,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1057
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1057
    functionName: xmlFileClose
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - fclose
    - xmlIOErr
    - xmlFileFlush
    linkageType: ''
    returnType: int
    signature: 'int xmlFileClose (void * context) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserInputBufferCreateFilenameValue
      Src: /src/libxml2/xmlIO.c:1655,1
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/xmlIO.c:1668,1
    - Dst: xmlParserInputBufferCreateUrl
      Src: /src/libxml2/xmlIO.c:1657,1
    - Dst: xmlRaiseError
      Src: /src/libxml2/xmlIO.c:1665,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - URI
    - enc
    argTypes:
    - char*
    - xmlCharEncoding
    constantsTouched: []
    func_position:
      end: 1672
      start: 1649
    functionDepth: 0
    functionLinenumber: 1649
    functionLinenumberEnd: 1672
    functionName: xmlParserInputBufferCreateFilename
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlParserInputBufferCreateFilenameValue
    - xmlParserInputBufferCreateUrl
    - xmlRaiseError
    - xmlRaiseMemoryError
    linkageType: ''
    returnType: xmlParserInputBuffer*
    signature: 'xmlParserInputBuffer *xmlParserInputBufferCreateFilename(const char
      *URI, xmlCharEncoding enc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gzclose
      Src: /src/libxml2/xmlIO.c:1132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1135
      start: 1130
    functionDepth: 0
    functionLinenumber: 1130
    functionLinenumberEnd: 1135
    functionName: xmlGzfileClose
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - gzclose
    linkageType: ''
    returnType: int
    signature: 'static int xmlGzfileClose (void * context) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlAllocParserInputBuffer
      Src: /src/libxml2/xmlIO.c:1811,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - file
    - enc
    argTypes:
    - FILE*
    - xmlCharEncoding
    constantsTouched: []
    func_position:
      end: 1819
      start: 1805
    functionDepth: 0
    functionLinenumber: 1805
    functionLinenumberEnd: 1819
    functionName: xmlParserInputBufferCreateFile
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlAllocParserInputBuffer
    linkageType: ''
    returnType: xmlParserInputBuffer*
    signature: 'xmlParserInputBuffer *xmlParserInputBufferCreateFile(FILE *file, xmlCharEncoding
      enc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlAllocParserInputBuffer
      Src: /src/libxml2/xmlIO.c:1925,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlIO.c:1929,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - fd
    - enc
    argTypes:
    - int
    - xmlCharEncoding
    constantsTouched: []
    func_position:
      end: 1941
      start: 1919
    functionDepth: 0
    functionLinenumber: 1919
    functionLinenumberEnd: 1941
    functionName: xmlParserInputBufferCreateFd
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlMalloc
    - xmlAllocParserInputBuffer
    linkageType: ''
    returnType: xmlParserInputBuffer*
    signature: 'xmlParserInputBuffer *xmlParserInputBufferCreateFd(int fd, xmlCharEncoding
      enc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libxml2/xmlIO.c:1955,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - vctxt
    - buf
    - size
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1960
      start: 1948
    functionDepth: 0
    functionLinenumber: 1948
    functionLinenumberEnd: 1960
    functionName: xmlMemRead
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: 'static int xmlMemRead(void *vctxt, char *buf, int size) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrchr
      Src: /src/libxml2/xmlIO.c:2651,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlIO.c:2658,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlIO.c:2660,1
    - Dst: xmlStrchr
      Src: /src/libxml2/xmlIO.c:2652,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlIO.c:2653,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlIO.c:2669,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlIO.c:2670,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlIO.c:2673,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlIO.c:2674,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlIO.c:2675,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlIO.c:2679,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlIO.c:2680,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlIO.c:2678,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - buf
    - string
    argTypes:
    - xmlOutputBuffer*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2682
      start: 2643
    functionDepth: 0
    functionLinenumber: 2643
    functionLinenumberEnd: 2682
    functionName: xmlOutputBufferWriteQuotedString
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWrite
    - xmlStrchr
    - xmlOutputBufferWriteString
    linkageType: ''
    returnType: void
    signature: 'void xmlOutputBufferWriteQuotedString(xmlOutputBuffer *buf, const
      xmlChar *string) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlIO.c:202,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlIO.c:280,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:274,1
    - Dst: xmlSerializeHexCharRef
      Src: /src/libxml2/xmlIO.c:261,1
    - Dst: xmlGetUTF8Char
      Src: /src/libxml2/xmlIO.c:251,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:282,1
    - Dst: memcpy
      Src: /src/libxml2/xmlIO.c:290,1
    - Dst: memcpy
      Src: /src/libxml2/xmlIO.c:292,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 98
    argCount: 2
    argNames:
    - string
    - flags
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 303
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 303
    functionName: xmlEscapeText
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetUTF8Char
    - memcpy
    - xmlRealloc
    - xmlMalloc
    - xmlSerializeHexCharRef
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlEscapeText(const xmlChar *string, int flags) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlIO.c:361,1
    - Dst: xmlSerializeHexCharRef
      Src: /src/libxml2/xmlIO.c:388,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlIO.c:370,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlIO.c:389,1
    - Dst: xmlGetUTF8Char
      Src: /src/libxml2/xmlIO.c:378,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 55
    argCount: 4
    argNames:
    - buf
    - string
    - maxSize
    - flags
    argTypes:
    - xmlOutputBuffer*
    - xmlChar*
    - size_t
    - unsigned
    constantsTouched: []
    func_position:
      end: 392
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 392
    functionName: xmlSerializeText
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlSerializeHexCharRef
    - xmlOutputBufferWrite
    - xmlGetUTF8Char
    linkageType: ''
    returnType: void
    signature: 'void xmlSerializeText(xmlOutputBuffer *buf, const xmlChar *string,
      size_t maxSize, unsigned flags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 851
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 851
    functionName: xmlFdFree
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: int
    signature: 'static int xmlFdFree(void *context) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __libxml2_xzread
      Src: /src/libxml2/xmlIO.c:1160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - context
    - buffer
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1164
      start: 1156
    functionDepth: 0
    functionLinenumber: 1156
    functionLinenumberEnd: 1164
    functionName: xmlXzfileRead
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - __libxml2_xzread
    linkageType: ''
    returnType: int
    signature: 'static int xmlXzfileRead (void * context, char * buffer, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserInputBufferCreateUrl
      Src: /src/libxml2/xmlIO.c:1630,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - URI
    - enc
    argTypes:
    - char*
    - xmlCharEncoding
    constantsTouched: []
    func_position:
      end: 1632
      start: 1626
    functionDepth: 0
    functionLinenumber: 1626
    functionLinenumberEnd: 1632
    functionName: __xmlParserInputBufferCreateFilename
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlParserInputBufferCreateUrl
    linkageType: ''
    returnType: xmlParserInputBuffer*
    signature: 'xmlParserInputBuffer *__xmlParserInputBufferCreateFilename(const char
      *URI, xmlCharEncoding enc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferCreateFilenameValue
      Src: /src/libxml2/xmlIO.c:1785,1
    - Dst: __xmlOutputBufferCreateFilename
      Src: /src/libxml2/xmlIO.c:1787,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 3
    argNames:
    - URI
    - encoder
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - xmlCharEncodingHandler*
    - int
    constantsTouched: []
    func_position:
      end: 1788
      start: 1780
    functionDepth: 0
    functionLinenumber: 1780
    functionLinenumberEnd: 1788
    functionName: xmlOutputBufferCreateFilename
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferCreateFilenameValue
    - __xmlOutputBufferCreateFilename
    linkageType: ''
    returnType: xmlOutputBuffer*
    signature: 'xmlOutputBuffer *xmlOutputBufferCreateFilename(const char *URI, xmlCharEncodingHandler
      *encoder, int compression ATTRIBUTE_UNUSED) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlAllocParserInputBuffer
      Src: /src/libxml2/xmlIO.c:1992,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlIO.c:1996,1
    - Dst: memset
      Src: /src/libxml2/xmlIO.c:2012,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlIO.c:2009,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/xmlIO.c:1998,1
    - Dst: xmlBufCreateMem
      Src: /src/libxml2/xmlIO.c:2015,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:2018,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - mem
    - size
    - flags
    - enc
    argTypes:
    - void*
    - size_t
    - xmlParserInputFlags
    - xmlCharEncoding
    constantsTouched: []
    func_position:
      end: 2024
      start: 1979
    functionDepth: 0
    functionLinenumber: 1979
    functionLinenumberEnd: 2024
    functionName: xmlNewInputBufferMemory
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlFreeParserInputBuffer
    - xmlAllocParserInputBuffer
    - xmlBufCreateMem
    - xmlMalloc
    linkageType: ''
    returnType: xmlParserInputBuffer*
    signature: 'xmlParserInputBuffer *xmlNewInputBufferMemory(const void *mem, size_t
      size, xmlParserInputFlags flags, xmlCharEncoding enc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewInputBufferMemory
      Src: /src/libxml2/xmlIO.c:2077,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 3
    argNames:
    - mem
    - size
    - enc
    argTypes:
    - char*
    - int
    - xmlCharEncoding
    constantsTouched: []
    func_position:
      end: 2078
      start: 2071
    functionDepth: 0
    functionLinenumber: 2071
    functionLinenumberEnd: 2078
    functionName: xmlParserInputBufferCreateStatic
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlNewInputBufferMemory
    linkageType: ''
    returnType: xmlParserInputBuffer*
    signature: 'xmlParserInputBuffer *xmlParserInputBufferCreateStatic(const char
      *mem, int size, xmlCharEncoding enc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/libxml2/xmlIO.c:1009,1
    - Dst: xmlIOErr
      Src: /src/libxml2/xmlIO.c:1011,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 3
    argNames:
    - context
    - buffer
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1014
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1014
    functionName: xmlFileWrite
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - fwrite
    - xmlIOErr
    linkageType: ''
    returnType: int
    signature: 'static int xmlFileWrite(void *context, const char *buffer, int len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libxml2/xmlIO.c:835,1
    - Dst: xmlIOErr
      Src: /src/libxml2/xmlIO.c:837,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - context
    - buffer
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 844
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 844
    functionName: xmlFdWrite
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - write
    - xmlIOErr
    linkageType: ''
    returnType: int
    signature: 'static int xmlFdWrite(void *context, const char *buffer, int len) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/libxml2/xmlIO.c:1029,1
    - Dst: xmlIOErr
      Src: /src/libxml2/xmlIO.c:1030,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1033
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1033
    functionName: xmlFileFlush
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - fflush
    - xmlIOErr
    linkageType: ''
    returnType: int
    signature: 'static int xmlFileFlush (void * context) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferAdd
      Src: /src/libxml2/xmlIO.c:1073,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - context
    - buffer
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1077
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1077
    functionName: xmlBufferWrite
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlBufferAdd
    linkageType: ''
    returnType: int
    signature: 'static int xmlBufferWrite (void * context, const char * buffer, int
      len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gzwrite
      Src: /src/libxml2/xmlIO.c:1118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - context
    - buffer
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1122
      start: 1114
    functionDepth: 0
    functionLinenumber: 1114
    functionLinenumberEnd: 1122
    functionName: xmlGzfileWrite
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - gzwrite
    linkageType: ''
    returnType: int
    signature: 'static int xmlGzfileWrite (void * context, const char * buffer, int
      len) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/xmlIO.c:1318,1
    - Dst: snprintf
      Src: /src/libxml2/xmlIO.c:1336,1
    - Dst: dup
      Src: /src/libxml2/xmlIO.c:1319,1
    - Dst: xmlFdOpen
      Src: /src/libxml2/xmlIO.c:1326,1
    - Dst: xmlIOErr
      Src: /src/libxml2/xmlIO.c:1322,1
    - Dst: gzdopen
      Src: /src/libxml2/xmlIO.c:1337,1
    - Dst: close
      Src: /src/libxml2/xmlIO.c:1340,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlIO.c:1352,1
    - Dst: close
      Src: /src/libxml2/xmlIO.c:1354,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - buf
    - filename
    - compression
    argTypes:
    - xmlOutputBufferPtr
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1363
      start: 1310
    functionDepth: 0
    functionLinenumber: 1310
    functionLinenumberEnd: 1363
    functionName: xmlOutputDefaultOpen
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlIOErr
    - strcmp
    - dup
    - gzdopen
    - snprintf
    - xmlFdOpen
    - xmlMalloc
    - close
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'static xmlParserErrors xmlOutputDefaultOpen(xmlOutputBufferPtr buf,
      const char *filename, int compression) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlIO.c:1425,1
    - Dst: xmlBufCreate
      Src: /src/libxml2/xmlIO.c:1430,1
    - Dst: xmlBufCreate
      Src: /src/libxml2/xmlIO.c:1438,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:1432,1
    - Dst: memset
      Src: /src/libxml2/xmlIO.c:1429,1
    - Dst: xmlBufFree
      Src: /src/libxml2/xmlIO.c:1440,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:1441,1
    - Dst: xmlCharEncOutput
      Src: /src/libxml2/xmlIO.c:1448,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - xmlCharEncodingHandler*
    constantsTouched: []
    func_position:
      end: 1457
      start: 1421
    functionDepth: 0
    functionLinenumber: 1421
    functionLinenumberEnd: 1457
    functionName: xmlAllocOutputBuffer
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCharEncOutput
    - memset
    - xmlBufFree
    - xmlBufCreate
    - xmlMalloc
    linkageType: ''
    returnType: xmlOutputBuffer*
    signature: 'xmlOutputBuffer *xmlAllocOutputBuffer(xmlCharEncodingHandler *encoder) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferFlush
      Src: /src/libxml2/xmlIO.c:1505,1
    - Dst: xmlBufFree
      Src: /src/libxml2/xmlIO.c:1525,1
    - Dst: xmlIsCatastrophicError
      Src: /src/libxml2/xmlIO.c:1511,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/xmlIO.c:1529,1
    - Dst: xmlBufFree
      Src: /src/libxml2/xmlIO.c:1532,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:1536,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 1
    argNames:
    - out
    argTypes:
    - xmlOutputBuffer*
    constantsTouched: []
    func_position:
      end: 1539
      start: 1496
    functionDepth: 0
    functionLinenumber: 1496
    functionLinenumberEnd: 1539
    functionName: xmlOutputBufferClose
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlIsCatastrophicError
    - xmlBufFree
    - xmlOutputBufferFlush
    - xmlCharEncCloseFunc
    linkageType: ''
    returnType: int
    signature: 'int xmlOutputBufferClose(xmlOutputBuffer *out) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlConvertUriToPath
      Src: /src/libxml2/xmlIO.c:733,1
    - Dst: __xmlIOWin32UTF8ToWChar
      Src: /src/libxml2/xmlIO.c:743,1
    - Dst: _wopen
      Src: /src/libxml2/xmlIO.c:752,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:745,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:753,1
    - Dst: open
      Src: /src/libxml2/xmlIO.c:760,1
    - Dst: xmlIOErr
      Src: /src/libxml2/xmlIO.c:771,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:778,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - filename
    - write
    - out
    argTypes:
    - char*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 780
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 780
    functionName: xmlFdOpen
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlFree
    - __xmlIOWin32UTF8ToWChar
    - xmlIOErr
    - xmlConvertUriToPath
    - open
    - _wopen
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'static xmlParserErrors xmlFdOpen(const char *filename, int write,
      int *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gzread
      Src: /src/libxml2/xmlIO.c:1099,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - context
    - buffer
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1103
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1103
    functionName: xmlGzfileRead
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - gzread
    linkageType: ''
    returnType: int
    signature: 'static int xmlGzfileRead (void * context, char * buffer, int len) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xmlIO.c:1700,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/xmlIO.c:1713,1
    - Dst: xmlParseURI
      Src: /src/libxml2/xmlIO.c:1705,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/xmlIO.c:1718,1
    - Dst: xmlURIUnescapeString
      Src: /src/libxml2/xmlIO.c:1711,1
    - Dst: xmlAllocOutputBuffer
      Src: /src/libxml2/xmlIO.c:1724,1
    - Dst: xmlOutputDefaultOpen
      Src: /src/libxml2/xmlIO.c:1737,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/xmlIO.c:1755,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:1760,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 3
    argNames:
    - URI
    - encoder
    - compression
    argTypes:
    - char*
    - xmlCharEncodingHandler*
    - int
    constantsTouched: []
    func_position:
      end: 1762
      start: 1691
    functionDepth: 0
    functionLinenumber: 1691
    functionLinenumberEnd: 1762
    functionName: __xmlOutputBufferCreateFilename
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlParseURI
    - xmlFreeURI
    - xmlOutputBufferClose
    - xmlInitParser
    - xmlOutputDefaultOpen
    - xmlURIUnescapeString
    - xmlAllocOutputBuffer
    linkageType: ''
    returnType: xmlOutputBuffer*
    signature: 'xmlOutputBuffer *__xmlOutputBufferCreateFilename(const char *URI,
      xmlCharEncodingHandler *encoder, int compression) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufContent
      Src: /src/libxml2/xmlIO.c:1885,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - out
    argTypes:
    - xmlOutputBuffer*
    constantsTouched: []
    func_position:
      end: 1886
      start: 1880
    functionDepth: 0
    functionLinenumber: 1880
    functionLinenumberEnd: 1886
    functionName: xmlOutputBufferGetContent
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlBufContent
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlOutputBufferGetContent(xmlOutputBuffer *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:1966,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1968
      start: 1962
    functionDepth: 0
    functionLinenumber: 1962
    functionLinenumberEnd: 1968
    functionName: xmlMemClose
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: int
    signature: 'static int xmlMemClose(void *vctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewInputBufferMemory
      Src: /src/libxml2/xmlIO.c:2050,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 3
    argNames:
    - mem
    - size
    - enc
    argTypes:
    - char*
    - int
    - xmlCharEncoding
    constantsTouched: []
    func_position:
      end: 2051
      start: 2045
    functionDepth: 0
    functionLinenumber: 2045
    functionLinenumberEnd: 2051
    functionName: xmlParserInputBufferCreateMem
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlNewInputBufferMemory
    linkageType: ''
    returnType: xmlParserInputBuffer*
    signature: 'xmlParserInputBuffer *xmlParserInputBufferCreateMem(const char *mem,
      int size, xmlCharEncoding enc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libxml2/xmlIO.c:2622,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlIO.c:2625,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - out
    - str
    argTypes:
    - xmlOutputBuffer*
    - char*
    constantsTouched: []
    func_position:
      end: 2627
      start: 2615
    functionDepth: 0
    functionLinenumber: 2615
    functionLinenumberEnd: 2627
    functionName: xmlOutputBufferWriteString
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - strlen
    - xmlOutputBufferWrite
    linkageType: ''
    returnType: int
    signature: 'int xmlOutputBufferWriteString(xmlOutputBuffer *out, const char *str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xmlIO.c:2841,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - matchFunc
    - openFunc
    - readFunc
    - closeFunc
    argTypes:
    - xmlInputMatchCallback
    - xmlInputOpenCallback
    - xmlInputReadCallback
    - xmlInputCloseCallback
    constantsTouched: []
    func_position:
      end: 2851
      start: 2837
    functionDepth: 0
    functionLinenumber: 2837
    functionLinenumberEnd: 2851
    functionName: xmlRegisterInputCallbacks
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlInitParser
    linkageType: ''
    returnType: int
    signature: "int xmlRegisterInputCallbacks(xmlInputMatchCallback matchFunc,\txmlInputOpenCallback
      openFunc, xmlInputReadCallback readFunc,\txmlInputCloseCallback closeFunc) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2824
      start: 2814
    functionDepth: 0
    functionLinenumber: 2814
    functionLinenumberEnd: 2824
    functionName: xmlInitIOCallbacks
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlInitIOCallbacks(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/libxml2/xmlIO.c:984,1
    - Dst: ferror
      Src: /src/libxml2/xmlIO.c:985,1
    - Dst: xmlIOErr
      Src: /src/libxml2/xmlIO.c:986,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 3
    argNames:
    - context
    - buffer
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 989
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 989
    functionName: xmlFileRead
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - ferror
    - fread
    - xmlIOErr
    linkageType: ''
    returnType: int
    signature: 'int xmlFileRead(void * context, char * buffer, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserInputBufferGrow
      Src: /src/libxml2/xmlIO.c:2427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - in
    - len
    argTypes:
    - xmlParserInputBuffer*
    - int
    constantsTouched: []
    func_position:
      end: 2428
      start: 2425
    functionDepth: 0
    functionLinenumber: 2425
    functionLinenumberEnd: 2428
    functionName: xmlParserInputBufferRead
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlParserInputBufferGrow
    linkageType: ''
    returnType: int
    signature: 'int xmlParserInputBufferRead(xmlParserInputBuffer *in, int len) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlCharEncOutput
      Src: /src/libxml2/xmlIO.c:2703,1
    - Dst: xmlBufContent
      Src: /src/libxml2/xmlIO.c:2715,1
    - Dst: xmlBufUse
      Src: /src/libxml2/xmlIO.c:2716,1
    - Dst: xmlBufShrink
      Src: /src/libxml2/xmlIO.c:2718,1
    - Dst: xmlBufContent
      Src: /src/libxml2/xmlIO.c:2721,1
    - Dst: xmlBufUse
      Src: /src/libxml2/xmlIO.c:2722,1
    - Dst: xmlBufShrink
      Src: /src/libxml2/xmlIO.c:2724,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 1
    argNames:
    - out
    argTypes:
    - xmlOutputBuffer*
    constantsTouched: []
    func_position:
      end: 2736
      start: 2690
    functionDepth: 0
    functionLinenumber: 2690
    functionLinenumberEnd: 2736
    functionName: xmlOutputBufferFlush
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlBufUse
    - xmlCharEncOutput
    - xmlBufContent
    - xmlBufShrink
    linkageType: ''
    returnType: int
    signature: 'int xmlOutputBufferFlush(xmlOutputBuffer *out) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlConvertUriToPath
      Src: /src/libxml2/xmlIO.c:2793,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:2801,1
    - Dst: xmlCheckFilename
      Src: /src/libxml2/xmlIO.c:2799,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2803
      start: 2785
    functionDepth: 0
    functionLinenumber: 2785
    functionLinenumberEnd: 2803
    functionName: xmlNoNetExists
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlConvertUriToPath
    - xmlCheckFilename
    linkageType: ''
    returnType: int
    signature: 'int xmlNoNetExists(const char *filename) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegisterOutputCallbacks
      Src: /src/libxml2/xmlIO.c:2923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2924
      start: 2921
    functionDepth: 0
    functionLinenumber: 2921
    functionLinenumberEnd: 2924
    functionName: xmlRegisterDefaultOutputCallbacks
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlRegisterOutputCallbacks
    linkageType: ''
    returnType: void
    signature: 'void xmlRegisterDefaultOutputCallbacks (void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xmlIO.c:2952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2955
      start: 2949
    functionDepth: 0
    functionLinenumber: 2949
    functionLinenumberEnd: 2955
    functionName: xmlCleanupOutputCallbacks
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlInitParser
    linkageType: ''
    returnType: void
    signature: 'void xmlCleanupOutputCallbacks(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/libxml2/xmlIO.c:2759,1
    - Dst: IS_XMLPGD_SEP
      Src: /src/libxml2/xmlIO.c:2766,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/xmlIO.c:2769,1
    - Dst: IS_XMLPGD_SEP
      Src: /src/libxml2/xmlIO.c:2763,1
    - Dst: strlen
      Src: /src/libxml2/xmlIO.c:2761,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/xmlIO.c:2771,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2775
      start: 2745
    functionDepth: 0
    functionLinenumber: 2745
    functionLinenumberEnd: 2775
    functionName: xmlParserGetDirectory
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - strlen
    - xmlMemStrdup
    - IS_XMLPGD_SEP
    - strncpy
    linkageType: ''
    returnType: char*
    signature: 'char *xmlParserGetDirectory(const char *filename) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __xmlIOWin32UTF8ToWChar
      Src: /src/libxml2/xmlIO.c:660,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:664,1
    - Dst: S_ISDIR
      Src: /src/libxml2/xmlIO.c:674,1
    - Dst: stat
      Src: /src/libxml2/xmlIO.c:667,1
    - Dst: _wstat
      Src: /src/libxml2/xmlIO.c:663,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 679
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 679
    functionName: xmlCheckFilename
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - _wstat
    - xmlFree
    - __xmlIOWin32UTF8ToWChar
    - stat
    - S_ISDIR
    linkageType: ''
    returnType: int
    signature: 'int xmlCheckFilename(const char *path) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFileOpenSafe
      Src: /src/libxml2/xmlIO.c:957,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 959
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 959
    functionName: xmlFileOpen
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlFileOpenSafe
    linkageType: ''
    returnType: void*
    signature: 'void *xmlFileOpen(const char *filename) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlAllocParserInputBuffer
      Src: /src/libxml2/xmlIO.c:2170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - ioread
    - ioclose
    - ioctx
    - enc
    argTypes:
    - xmlInputReadCallback
    - xmlInputCloseCallback
    - void*
    - xmlCharEncoding
    constantsTouched: []
    func_position:
      end: 2178
      start: 2163
    functionDepth: 0
    functionLinenumber: 2163
    functionLinenumberEnd: 2178
    functionName: xmlParserInputBufferCreateIO
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlAllocParserInputBuffer
    linkageType: ''
    returnType: xmlParserInputBuffer*
    signature: "xmlParserInputBuffer *xmlParserInputBufferCreateIO(xmlInputReadCallback
      ioread,\t xmlInputCloseCallback ioclose, void *ioctx, xmlCharEncoding enc) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - func
    argTypes:
    - xmlParserInputBufferCreateFilenameFunc
    constantsTouched: []
    func_position:
      end: 2236
      start: 2222
    functionDepth: 0
    functionLinenumber: 2222
    functionLinenumberEnd: 2236
    functionName: xmlParserInputBufferCreateFilenameDefault
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlParserInputBufferCreateFilenameFunc
    signature: 'xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameDefault(
      xmlParserInputBufferCreateFilenameFunc func) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufCreate
      Src: /src/libxml2/xmlIO.c:2362,1
    - Dst: xmlBufEnd
      Src: /src/libxml2/xmlIO.c:2376,1
    - Dst: xmlBufAddLen
      Src: /src/libxml2/xmlIO.c:2387,1
    - Dst: xmlBufGrow
      Src: /src/libxml2/xmlIO.c:2371,1
    - Dst: xmlCharEncInput
      Src: /src/libxml2/xmlIO.c:2407,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 2
    argNames:
    - in
    - len
    argTypes:
    - xmlParserInputBuffer*
    - int
    constantsTouched: []
    func_position:
      end: 2413
      start: 2338
    functionDepth: 0
    functionLinenumber: 2338
    functionLinenumberEnd: 2413
    functionName: xmlParserInputBufferGrow
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlCharEncInput
    - xmlBufEnd
    - xmlBufCreate
    - xmlBufGrow
    - xmlBufAddLen
    linkageType: ''
    returnType: int
    signature: 'int xmlParserInputBufferGrow(xmlParserInputBuffer *in, int len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xmlIO.c:2906,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - matchFunc
    - openFunc
    - writeFunc
    - closeFunc
    argTypes:
    - xmlOutputMatchCallback
    - xmlOutputOpenCallback
    - xmlOutputWriteCallback
    - xmlOutputCloseCallback
    constantsTouched: []
    func_position:
      end: 2916
      start: 2902
    functionDepth: 0
    functionLinenumber: 2902
    functionLinenumberEnd: 2916
    functionName: xmlRegisterOutputCallbacks
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlInitParser
    linkageType: ''
    returnType: int
    signature: "int xmlRegisterOutputCallbacks(xmlOutputMatchCallback matchFunc,\txmlOutputOpenCallback
      openFunc, xmlOutputWriteCallback writeFunc,\txmlOutputCloseCallback closeFunc) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xmlIO.c:2870,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2878
      start: 2867
    functionDepth: 0
    functionLinenumber: 2867
    functionLinenumberEnd: 2878
    functionName: xmlPopInputCallbacks
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlInitParser
    linkageType: ''
    returnType: int
    signature: 'int xmlPopInputCallbacks(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrncasecmp
      Src: /src/libxml2/xmlIO.c:688,1
    - Dst: xmlURIUnescapeString
      Src: /src/libxml2/xmlIO.c:704,1
    - Dst: xmlStrncasecmp
      Src: /src/libxml2/xmlIO.c:692,1
    - Dst: xmlStrncasecmp
      Src: /src/libxml2/xmlIO.c:690,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - uri
    - out
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 710
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 710
    functionName: xmlConvertUriToPath
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlStrncasecmp
    - xmlURIUnescapeString
    linkageType: ''
    returnType: int
    signature: 'static int xmlConvertUriToPath(const char *uri, char **out) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlConvertUriToPath
      Src: /src/libxml2/xmlIO.c:904,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:920,1
    - Dst: __xmlIOWin32UTF8ToWChar
      Src: /src/libxml2/xmlIO.c:914,1
    - Dst: _wfopen
      Src: /src/libxml2/xmlIO.c:919,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:916,1
    - Dst: fopen
      Src: /src/libxml2/xmlIO.c:923,1
    - Dst: xmlIOErr
      Src: /src/libxml2/xmlIO.c:938,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:943,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 3
    argNames:
    - filename
    - write
    - out
    argTypes:
    - char*
    - int
    - void**
    constantsTouched: []
    func_position:
      end: 945
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 945
    functionName: xmlFileOpenSafe
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlFree
    - __xmlIOWin32UTF8ToWChar
    - xmlIOErr
    - fopen
    - xmlConvertUriToPath
    - _wfopen
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'static xmlParserErrors xmlFileOpenSafe(const char *filename, int write,
      void **out) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlIO.c:1382,1
    - Dst: memset
      Src: /src/libxml2/xmlIO.c:1386,1
    - Dst: xmlLookupCharEncodingHandler
      Src: /src/libxml2/xmlIO.c:1393,1
    - Dst: xmlBufCreate
      Src: /src/libxml2/xmlIO.c:1387,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:1389,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/xmlIO.c:1395,1
    - Dst: xmlBufCreate
      Src: /src/libxml2/xmlIO.c:1400,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - enc
    argTypes:
    - xmlCharEncoding
    constantsTouched: []
    func_position:
      end: 1410
      start: 1378
    functionDepth: 0
    functionLinenumber: 1378
    functionLinenumberEnd: 1410
    functionName: xmlAllocParserInputBuffer
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlBufCreate
    - xmlFreeParserInputBuffer
    - xmlLookupCharEncodingHandler
    - xmlMalloc
    linkageType: ''
    returnType: xmlParserInputBuffer*
    signature: 'xmlParserInputBuffer *xmlAllocParserInputBuffer(xmlCharEncoding enc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlAllocOutputBuffer
      Src: /src/libxml2/xmlIO.c:2128,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlIO.c:2132,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - fd
    - encoder
    argTypes:
    - int
    - xmlCharEncodingHandler*
    constantsTouched: []
    func_position:
      end: 2144
      start: 2120
    functionDepth: 0
    functionLinenumber: 2120
    functionLinenumberEnd: 2144
    functionName: xmlOutputBufferCreateFd
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlAllocOutputBuffer
    - xmlMalloc
    linkageType: ''
    returnType: xmlOutputBuffer*
    signature: 'xmlOutputBuffer *xmlOutputBufferCreateFd(int fd, xmlCharEncodingHandler
      *encoder) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufCreate
      Src: /src/libxml2/xmlIO.c:2283,1
    - Dst: xmlBufAdd
      Src: /src/libxml2/xmlIO.c:2289,1
    - Dst: xmlCharEncInput
      Src: /src/libxml2/xmlIO.c:2299,1
    - Dst: xmlBufAdd
      Src: /src/libxml2/xmlIO.c:2306,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - in
    - len
    - buf
    argTypes:
    - xmlParserInputBuffer*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 2313
      start: 2270
    functionDepth: 0
    functionLinenumber: 2270
    functionLinenumberEnd: 2313
    functionName: xmlParserInputBufferPush
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlCharEncInput
    - xmlBufAdd
    - xmlBufCreate
    linkageType: ''
    returnType: int
    signature: "int xmlParserInputBufferPush(xmlParserInputBuffer *in,\t int len,
      const char *buf) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libxml2/xmlIO.c:2553,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlIO.c:2573,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlIO.c:2575,1
    - Dst: xmlEscapeText
      Src: /src/libxml2/xmlIO.c:2560,1
    - Dst: strlen
      Src: /src/libxml2/xmlIO.c:2567,1
    - Dst: escaping
      Src: /src/libxml2/xmlIO.c:2587,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlIO.c:2595,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 3
    argNames:
    - out
    - str
    - escaping
    argTypes:
    - xmlOutputBuffer*
    - xmlChar*
    - xmlCharEncodingOutputFunc
    constantsTouched: []
    func_position:
      end: 2602
      start: 2543
    functionDepth: 0
    functionLinenumber: 2543
    functionLinenumberEnd: 2602
    functionName: xmlOutputBufferWriteEscape
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlOutputBufferWrite
    - xmlEscapeText
    - strlen
    - escaping
    linkageType: ''
    returnType: int
    signature: 'int xmlOutputBufferWriteEscape(xmlOutputBuffer *out, const xmlChar
      *str, xmlCharEncodingOutputFunc escaping) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlAllocOutputBuffer
      Src: /src/libxml2/xmlIO.c:2203,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - iowrite
    - ioclose
    - ioctx
    - encoder
    argTypes:
    - xmlOutputWriteCallback
    - xmlOutputCloseCallback
    - void*
    - xmlCharEncodingHandler*
    constantsTouched: []
    func_position:
      end: 2211
      start: 2193
    functionDepth: 0
    functionLinenumber: 2193
    functionLinenumberEnd: 2211
    functionName: xmlOutputBufferCreateIO
    functionSourceFile: /src/libxml2/xmlIO.c
    functionUses: []
    functionsReached:
    - xmlAllocOutputBuffer
    linkageType: ''
    returnType: xmlOutputBuffer*
    signature: "xmlOutputBuffer *xmlOutputBufferCreateIO(xmlOutputWriteCallback iowrite,\t
      xmlOutputCloseCallback ioclose, void *ioctx,\t xmlCharEncodingHandler *encoder) "
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:3580,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:3584,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3607,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:3590,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3597,1
    - Dst: xmlListPopFront
      Src: /src/libxml2/xmlwriter.c:3613,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 1
    argNames:
    - writer
    argTypes:
    - xmlTextWriter*
    constantsTouched: []
    func_position:
      end: 3615
      start: 3568
    functionDepth: 0
    functionLinenumber: 3568
    functionLinenumberEnd: 3615
    functionName: xmlTextWriterEndDTDEntity
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWrite
    - xmlOutputBufferWriteString
    - xmlListPopFront
    - xmlListFront
    - xmlLinkGetData
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterEndDTDEntity(xmlTextWriter *writer) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:860,1
    - Dst: xmlTextWriterWriteComment
      Src: /src/libxml2/xmlwriter.c:869,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:871,1
    - Dst: xmlTextWriterVSprintf
      Src: /src/libxml2/xmlwriter.c:865,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - writer
    - format
    - argptr
    argTypes:
    - xmlTextWriter*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 873
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 873
    functionName: xmlTextWriterWriteVFormatComment
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlWriterErrMsg
    - xmlTextWriterWriteComment
    - xmlTextWriterVSprintf
    - xmlFree
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteVFormatComment(xmlTextWriter *writer, const
      char *format, va_list argptr) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterVSprintf
      Src: /src/libxml2/xmlwriter.c:2652,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:2658,1
    - Dst: xmlTextWriterWriteCDATA
      Src: /src/libxml2/xmlwriter.c:2656,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - writer
    - format
    - argptr
    argTypes:
    - xmlTextWriter*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 2660
      start: 2642
    functionDepth: 0
    functionLinenumber: 2642
    functionLinenumberEnd: 2660
    functionName: xmlTextWriterWriteVFormatCDATA
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterWriteCDATA
    - xmlTextWriterVSprintf
    - xmlFree
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteVFormatCDATA(xmlTextWriter *writer, const char
      *format, va_list argptr) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:3483,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlwriter.c:3513,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3496,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3490,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:3486,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:3515,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlwriter.c:3520,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:3522,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:3524,1
    - Dst: xmlListPushFront
      Src: /src/libxml2/xmlwriter.c:3533,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3548,1
    - Dst: xmlTextWriterWriteIndent
      Src: /src/libxml2/xmlwriter.c:3536,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3554,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3542,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 60
    argCount: 3
    argNames:
    - writer
    - pe
    - name
    argTypes:
    - xmlTextWriter*
    - int
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3560
      start: 3470
    functionDepth: 0
    functionLinenumber: 3470
    functionLinenumberEnd: 3560
    functionName: xmlTextWriterStartDTDEntity
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlListPushFront
    - xmlWriterErrMsg
    - xmlOutputBufferWriteString
    - xmlStrdup
    - xmlTextWriterWriteIndent
    - xmlListFront
    - xmlLinkGetData
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterStartDTDEntity(xmlTextWriter *writer, int pe, const
      xmlChar * name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/xmlwriter.c:836,1
    - Dst: xmlTextWriterWriteVFormatComment
      Src: /src/libxml2/xmlwriter.c:838,1
    - Dst: va_end
      Src: /src/libxml2/xmlwriter.c:840,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - writer
    - format
    - '...'
    argTypes:
    - xmlTextWriter*
    - char*
    constantsTouched: []
    func_position:
      end: 842
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 842
    functionName: xmlTextWriterWriteFormatComment
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterWriteVFormatComment
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteFormatComment(xmlTextWriter *writer, const char
      *format, ...) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlwriter.c:1770,1
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:1775,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:1823,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlwriter.c:1767,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/xmlwriter.c:1781,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlwriter.c:1817,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:1803,1
    - Dst: xmlTextWriterStartAttribute
      Src: /src/libxml2/xmlwriter.c:1822,1
    - Dst: xmlListSearch
      Src: /src/libxml2/xmlwriter.c:1777,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlwriter.c:1793,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlwriter.c:1801,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:1805,1
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:1808,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlwriter.c:1819,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlwriter.c:1769,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:1780,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:1795,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlwriter.c:1816,1
    - Dst: xmlListPushFront
      Src: /src/libxml2/xmlwriter.c:1810,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 4
    argNames:
    - writer
    - prefix
    - name
    - namespaceURI
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1829
      start: 1750
    functionDepth: 0
    functionLinenumber: 1750
    functionLinenumberEnd: 1829
    functionName: xmlTextWriterStartAttributeNS
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlListPushFront
    - xmlWriterErrMsg
    - xmlTextWriterStartAttribute
    - xmlStrdup
    - xmlListFront
    - xmlStrcmp
    - xmlMalloc
    - xmlStrcat
    - xmlListSearch
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterStartAttributeNS(xmlTextWriter *writer, const xmlChar
      * prefix, const xmlChar * name, const xmlChar * namespaceURI) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/xmlwriter.c:2626,1
    - Dst: va_end
      Src: /src/libxml2/xmlwriter.c:2630,1
    - Dst: xmlTextWriterWriteVFormatCDATA
      Src: /src/libxml2/xmlwriter.c:2628,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - writer
    - format
    - '...'
    argTypes:
    - xmlTextWriter*
    - char*
    constantsTouched: []
    func_position:
      end: 2632
      start: 2619
    functionDepth: 0
    functionLinenumber: 2619
    functionLinenumberEnd: 2632
    functionName: xmlTextWriterWriteFormatCDATA
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - va_start
    - xmlTextWriterWriteVFormatCDATA
    - va_end
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteFormatCDATA(xmlTextWriter *writer, const char
      *format, ...) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: htmlNewDocNoDtD
      Src: /src/libxml2/xmlwriter.c:4359,1
    - Dst: xmlNewDoc
      Src: /src/libxml2/xmlwriter.c:4369,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/xmlwriter.c:4361,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlwriter.c:4373,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/xmlwriter.c:4379,1
    - Dst: xmlCanonicPath
      Src: /src/libxml2/xmlwriter.c:4386,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlwriter.c:4389,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 4391
      start: 4350
    functionDepth: 0
    functionLinenumber: 4350
    functionLinenumberEnd: 4391
    functionName: xmlTextWriterStartDocumentCallback
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlCtxtErrMemory
    - htmlNewDocNoDtD
    - xmlStrdup
    - xmlNewDoc
    - xmlCanonicPath
    linkageType: ''
    returnType: void
    signature: 'static void xmlTextWriterStartDocumentCallback(void *ctx) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:1698,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:1719,1
    - Dst: xmlTextWriterEndAttribute
      Src: /src/libxml2/xmlwriter.c:1708,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:1702,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:1714,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:1724,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:1728,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 2
    argNames:
    - writer
    - name
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1739
      start: 1686
    functionDepth: 0
    functionLinenumber: 1686
    functionLinenumberEnd: 1739
    functionName: xmlTextWriterStartAttribute
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWrite
    - xmlOutputBufferWriteString
    - xmlTextWriterEndAttribute
    - xmlListFront
    - xmlLinkGetData
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterStartAttribute(xmlTextWriter *writer, const xmlChar
      * name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlwriter.c:4319,1
    - Dst: vsnprintf
      Src: /src/libxml2/xmlwriter.c:4327,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:4321,1
    - Dst: va_end
      Src: /src/libxml2/xmlwriter.c:4329,1
    - Dst: va_copy
      Src: /src/libxml2/xmlwriter.c:4326,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:4330,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlwriter.c:4332,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:4334,1
    - Dst: va_copy
      Src: /src/libxml2/xmlwriter.c:4338,1
    - Dst: va_end
      Src: /src/libxml2/xmlwriter.c:4340,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - format
    - argptr
    argTypes:
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 4343
      start: 4310
    functionDepth: 0
    functionLinenumber: 4310
    functionLinenumberEnd: 4343
    functionName: xmlTextWriterVSprintf
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlWriterErrMsg
    - va_copy
    - va_end
    - xmlMalloc
    - vsnprintf
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlTextWriterVSprintf(const char *format, va_list
      argptr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlRaiseError
      Src: /src/libxml2/xmlwriter.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - ctxt
    - error
    - msg
    argTypes:
    - xmlTextWriterPtr
    - xmlParserErrors
    - char*
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: xmlWriterErrMsg
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlRaiseError
    linkageType: ''
    returnType: void
    signature: 'static void xmlWriterErrMsg(xmlTextWriterPtr ctxt, xmlParserErrors
      error, const char *msg) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:301,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:310,1
    - Dst: xmlNewTextWriter
      Src: /src/libxml2/xmlwriter.c:315,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:317,1
    - Dst: xmlOutputBufferCreateIO
      Src: /src/libxml2/xmlwriter.c:306,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/xmlwriter.c:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlParserCtxt*
    - int
    constantsTouched: []
    func_position:
      end: 326
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 326
    functionName: xmlNewTextWriterPushParser
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlWriterErrMsg
    - xmlNewTextWriter
    - xmlOutputBufferClose
    - xmlOutputBufferCreateIO
    linkageType: ''
    returnType: xmlTextWriter*
    signature: 'xmlTextWriter *xmlNewTextWriterPushParser(xmlParserCtxt *ctxt, int
      compression ATTRIBUTE_UNUSED) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:1567,1
    - Dst: xmlTextWriterHandleStateDependencies
      Src: /src/libxml2/xmlwriter.c:1571,1
    - Dst: xmlOutputBufferWriteBase64
      Src: /src/libxml2/xmlwriter.c:1582,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:1569,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 4
    argNames:
    - writer
    - data
    - start
    - len
    argTypes:
    - xmlTextWriter*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1589
      start: 1554
    functionDepth: 0
    functionLinenumber: 1554
    functionLinenumberEnd: 1589
    functionName: xmlTextWriterWriteBase64
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWriteBase64
    - xmlListFront
    - xmlLinkGetData
    - xmlTextWriterHandleStateDependencies
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteBase64(xmlTextWriter *writer, const char *data,
      int start, int len) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterStartDTDAttlist
      Src: /src/libxml2/xmlwriter.c:3444,1
    - Dst: xmlTextWriterWriteString
      Src: /src/libxml2/xmlwriter.c:3449,1
    - Dst: xmlTextWriterEndDTDAttlist
      Src: /src/libxml2/xmlwriter.c:3454,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - writer
    - name
    - content
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3460
      start: 3433
    functionDepth: 0
    functionLinenumber: 3433
    functionLinenumberEnd: 3460
    functionName: xmlTextWriterWriteDTDAttlist
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterEndDTDAttlist
    - xmlTextWriterWriteString
    - xmlTextWriterStartDTDAttlist
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteDTDAttlist(xmlTextWriter *writer, const xmlChar
      * name, const xmlChar * content) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:1524,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:1530,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 3
    argNames:
    - out
    - len
    - data
    argTypes:
    - xmlOutputBufferPtr
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1543
      start: 1474
    functionDepth: 0
    functionLinenumber: 1474
    functionLinenumberEnd: 1543
    functionName: xmlOutputBufferWriteBase64
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWrite
    linkageType: ''
    returnType: int
    signature: 'static int xmlOutputBufferWriteBase64(xmlOutputBufferPtr out, int
      len, const unsigned char *data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/xmlwriter.c:2138,1
    - Dst: xmlTextWriterWriteString
      Src: /src/libxml2/xmlwriter.c:2143,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/xmlwriter.c:2148,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - writer
    - name
    - content
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2154
      start: 2130
    functionDepth: 0
    functionLinenumber: 2130
    functionLinenumberEnd: 2154
    functionName: xmlTextWriterWriteElement
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterWriteString
    - xmlTextWriterStartElement
    - xmlTextWriterEndElement
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteElement(xmlTextWriter *writer, const xmlChar
      * name, const xmlChar * content) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterVSprintf
      Src: /src/libxml2/xmlwriter.c:3415,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:3421,1
    - Dst: xmlTextWriterWriteDTDAttlist
      Src: /src/libxml2/xmlwriter.c:3419,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 4
    argNames:
    - writer
    - name
    - format
    - argptr
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 3423
      start: 3404
    functionDepth: 0
    functionLinenumber: 3404
    functionLinenumberEnd: 3423
    functionName: xmlTextWriterWriteVFormatDTDAttlist
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlTextWriterVSprintf
    - xmlTextWriterWriteDTDAttlist
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteVFormatDTDAttlist(xmlTextWriter *writer, const
      xmlChar * name, const char *format, va_list argptr) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterStartAttribute
      Src: /src/libxml2/xmlwriter.c:1947,1
    - Dst: xmlTextWriterEndAttribute
      Src: /src/libxml2/xmlwriter.c:1955,1
    - Dst: xmlTextWriterWriteString
      Src: /src/libxml2/xmlwriter.c:1951,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - writer
    - name
    - content
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1961
      start: 1939
    functionDepth: 0
    functionLinenumber: 1939
    functionLinenumberEnd: 1961
    functionName: xmlTextWriterWriteAttribute
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterEndAttribute
    - xmlTextWriterStartAttribute
    - xmlTextWriterWriteString
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteAttribute(xmlTextWriter *writer, const xmlChar
      * name, const xmlChar * content) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterVSprintf
      Src: /src/libxml2/xmlwriter.c:2112,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:2118,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/xmlwriter.c:2116,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 4
    argNames:
    - writer
    - name
    - format
    - argptr
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 2120
      start: 2101
    functionDepth: 0
    functionLinenumber: 2101
    functionLinenumberEnd: 2120
    functionName: xmlTextWriterWriteVFormatElement
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlTextWriterVSprintf
    - xmlTextWriterWriteElement
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteVFormatElement(xmlTextWriter *writer, const
      xmlChar * name, const char *format, va_list argptr) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterStartPI
      Src: /src/libxml2/xmlwriter.c:2475,1
    - Dst: xmlTextWriterWriteString
      Src: /src/libxml2/xmlwriter.c:2480,1
    - Dst: xmlTextWriterEndPI
      Src: /src/libxml2/xmlwriter.c:2485,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - writer
    - target
    - content
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2491
      start: 2467
    functionDepth: 0
    functionLinenumber: 2467
    functionLinenumberEnd: 2491
    functionName: xmlTextWriterWritePI
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterStartPI
    - xmlTextWriterWriteString
    - xmlTextWriterEndPI
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWritePI(xmlTextWriter *writer, const xmlChar * target,
      const xmlChar * content) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterStartDTD
      Src: /src/libxml2/xmlwriter.c:2990,1
    - Dst: xmlTextWriterWriteString
      Src: /src/libxml2/xmlwriter.c:2995,1
    - Dst: xmlTextWriterEndDTD
      Src: /src/libxml2/xmlwriter.c:3000,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 5
    argNames:
    - writer
    - name
    - pubid
    - sysid
    - subset
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3006
      start: 2980
    functionDepth: 0
    functionLinenumber: 2980
    functionLinenumberEnd: 3006
    functionName: xmlTextWriterWriteDTD
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterEndDTD
    - xmlTextWriterWriteString
    - xmlTextWriterStartDTD
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteDTD(xmlTextWriter *writer, const xmlChar * name,
      const xmlChar * pubid, const xmlChar * sysid, const xmlChar * subset) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterVSprintf
      Src: /src/libxml2/xmlwriter.c:1921,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:1927,1
    - Dst: xmlTextWriterWriteAttribute
      Src: /src/libxml2/xmlwriter.c:1925,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 4
    argNames:
    - writer
    - name
    - format
    - argptr
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 1929
      start: 1910
    functionDepth: 0
    functionLinenumber: 1910
    functionLinenumberEnd: 1929
    functionName: xmlTextWriterWriteVFormatAttribute
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlTextWriterVSprintf
    - xmlTextWriterWriteAttribute
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteVFormatAttribute(xmlTextWriter *writer, const
      xmlChar * name, const char *format, va_list argptr) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterVSprintf
      Src: /src/libxml2/xmlwriter.c:2449,1
    - Dst: xmlTextWriterWritePI
      Src: /src/libxml2/xmlwriter.c:2453,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:2455,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 4
    argNames:
    - writer
    - target
    - format
    - argptr
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 2457
      start: 2438
    functionDepth: 0
    functionLinenumber: 2438
    functionLinenumberEnd: 2457
    functionName: xmlTextWriterWriteVFormatPI
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlTextWriterVSprintf
    - xmlTextWriterWritePI
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteVFormatPI(xmlTextWriter *writer, const xmlChar
      * target, const char *format, va_list argptr) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterVSprintf
      Src: /src/libxml2/xmlwriter.c:2960,1
    - Dst: xmlTextWriterWriteDTD
      Src: /src/libxml2/xmlwriter.c:2964,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:2966,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 6
    argNames:
    - writer
    - name
    - pubid
    - sysid
    - format
    - argptr
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 2968
      start: 2947
    functionDepth: 0
    functionLinenumber: 2947
    functionLinenumberEnd: 2968
    functionName: xmlTextWriterWriteVFormatDTD
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterWriteDTD
    - xmlTextWriterVSprintf
    - xmlFree
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteVFormatDTD(xmlTextWriter *writer, const xmlChar
      * name, const xmlChar * pubid, const xmlChar * sysid, const char *format, va_list
      argptr) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:1081,1
    - Dst: xmlListDelete
      Src: /src/libxml2/xmlwriter.c:1083,1
    - Dst: xmlTextWriterEndAttribute
      Src: /src/libxml2/xmlwriter.c:1098,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:1088,1
    - Dst: xmlListDelete
      Src: /src/libxml2/xmlwriter.c:1090,1
    - Dst: xmlListDelete
      Src: /src/libxml2/xmlwriter.c:1100,1
    - Dst: xmlTextWriterOutputNSDecl
      Src: /src/libxml2/xmlwriter.c:1108,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:1115,1
    - Dst: xmlTextWriterWriteIndent
      Src: /src/libxml2/xmlwriter.c:1122,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:1127,1
    - Dst: xmlListPopFront
      Src: /src/libxml2/xmlwriter.c:1150,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:1146,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:1131,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:1136,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 1
    argNames:
    - writer
    argTypes:
    - xmlTextWriter*
    constantsTouched: []
    func_position:
      end: 1152
      start: 1070
    functionDepth: 0
    functionLinenumber: 1070
    functionLinenumberEnd: 1152
    functionName: xmlTextWriterEndElement
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterOutputNSDecl
    - xmlOutputBufferWriteString
    - xmlListDelete
    - xmlTextWriterWriteIndent
    - xmlListPopFront
    - xmlTextWriterEndAttribute
    - xmlListFront
    - xmlLinkGetData
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterEndElement(xmlTextWriter *writer) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/xmlwriter.c:3387,1
    - Dst: va_end
      Src: /src/libxml2/xmlwriter.c:3391,1
    - Dst: xmlTextWriterWriteVFormatDTDAttlist
      Src: /src/libxml2/xmlwriter.c:3389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - writer
    - name
    - format
    - '...'
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - char*
    constantsTouched: []
    func_position:
      end: 3393
      start: 3379
    functionDepth: 0
    functionLinenumber: 3379
    functionLinenumberEnd: 3393
    functionName: xmlTextWriterWriteFormatDTDAttlist
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterWriteVFormatDTDAttlist
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteFormatDTDAttlist(xmlTextWriter *writer, const
      xmlChar * name, const char *format, ...) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterOutputNSDecl
      Src: /src/libxml2/xmlwriter.c:4507,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:4543,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 2
    argNames:
    - writer
    - p
    argTypes:
    - xmlTextWriterPtr
    - xmlTextWriterStackEntry*
    constantsTouched: []
    func_position:
      end: 4550
      start: 4486
    functionDepth: 0
    functionLinenumber: 4486
    functionLinenumberEnd: 4550
    functionName: xmlTextWriterHandleStateDependencies
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterOutputNSDecl
    - xmlOutputBufferWriteString
    linkageType: ''
    returnType: int
    signature: 'static int xmlTextWriterHandleStateDependencies(xmlTextWriterPtr writer,
      xmlTextWriterStackEntry * p) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlwriter.c:1021,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlwriter.c:1022,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlwriter.c:1024,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:1028,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/xmlwriter.c:1027,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlwriter.c:1035,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:1037,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlwriter.c:1042,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlwriter.c:1044,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlwriter.c:1045,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlwriter.c:1049,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:1053,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:1051,1
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:1056,1
    - Dst: xmlListPushFront
      Src: /src/libxml2/xmlwriter.c:1058,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 4
    argNames:
    - writer
    - prefix
    - name
    - namespaceURI
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1062
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1062
    functionName: xmlTextWriterStartElementNS
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlListPushFront
    - xmlWriterErrMsg
    - xmlStrdup
    - xmlTextWriterStartElement
    - xmlListFront
    - xmlMalloc
    - xmlStrcat
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterStartElementNS(xmlTextWriter *writer, const xmlChar
      * prefix, const xmlChar * name, const xmlChar * namespaceURI) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:3339,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3350,1
    - Dst: xmlListPopFront
      Src: /src/libxml2/xmlwriter.c:3366,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3360,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:3343,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 1
    argNames:
    - writer
    argTypes:
    - xmlTextWriter*
    constantsTouched: []
    func_position:
      end: 3368
      start: 3327
    functionDepth: 0
    functionLinenumber: 3327
    functionLinenumberEnd: 3368
    functionName: xmlTextWriterEndDTDAttlist
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlListFront
    - xmlOutputBufferWriteString
    - xmlLinkGetData
    - xmlListPopFront
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterEndDTDAttlist(xmlTextWriter *writer) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferCreateBuffer
      Src: /src/libxml2/xmlwriter.c:264,1
    - Dst: xmlNewTextWriter
      Src: /src/libxml2/xmlwriter.c:272,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:267,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/xmlwriter.c:276,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:274,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlBuffer*
    - int
    constantsTouched: []
    func_position:
      end: 281
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 281
    functionName: xmlNewTextWriterMemory
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferCreateBuffer
    - xmlNewTextWriter
    - xmlWriterErrMsg
    - xmlOutputBufferClose
    linkageType: ''
    returnType: xmlTextWriter*
    signature: 'xmlTextWriter *xmlNewTextWriterMemory(xmlBuffer *buf, int compression
      ATTRIBUTE_UNUSED) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:2587,1
    - Dst: xmlListPopFront
      Src: /src/libxml2/xmlwriter.c:2607,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:2598,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:2591,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 1
    argNames:
    - writer
    argTypes:
    - xmlTextWriter*
    constantsTouched: []
    func_position:
      end: 2609
      start: 2576
    functionDepth: 0
    functionLinenumber: 2576
    functionLinenumberEnd: 2609
    functionName: xmlTextWriterEndCDATA
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlListFront
    - xmlOutputBufferWriteString
    - xmlLinkGetData
    - xmlListPopFront
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterEndCDATA(xmlTextWriter *writer) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlListEmpty
      Src: /src/libxml2/xmlwriter.c:4169,1
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:4173,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlwriter.c:4178,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:4174,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlwriter.c:4177,1
    - Dst: xmlListPopFront
      Src: /src/libxml2/xmlwriter.c:4181,1
    - Dst: xmlTextWriterWriteAttribute
      Src: /src/libxml2/xmlwriter.c:4184,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:4185,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:4186,1
    - Dst: xmlListDelete
      Src: /src/libxml2/xmlwriter.c:4189,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - writer
    argTypes:
    - xmlTextWriterPtr
    constantsTouched: []
    func_position:
      end: 4197
      start: 4160
    functionDepth: 0
    functionLinenumber: 4160
    functionLinenumberEnd: 4197
    functionName: xmlTextWriterOutputNSDecl
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlListEmpty
    - xmlListDelete
    - xmlTextWriterWriteAttribute
    - xmlStrdup
    - xmlListPopFront
    - xmlListFront
    - xmlLinkGetData
    linkageType: ''
    returnType: int
    signature: 'static int xmlTextWriterOutputNSDecl(xmlTextWriterPtr writer) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferCreateFilename
      Src: /src/libxml2/xmlwriter.c:229,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:238,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:231,1
    - Dst: xmlNewTextWriter
      Src: /src/libxml2/xmlwriter.c:236,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/xmlwriter.c:240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - uri
    - compression
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 247
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 247
    functionName: xmlNewTextWriterFilename
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlWriterErrMsg
    - xmlNewTextWriter
    - xmlOutputBufferCreateFilename
    - xmlOutputBufferClose
    linkageType: ''
    returnType: xmlTextWriter*
    signature: 'xmlTextWriter *xmlNewTextWriterFilename(const char *uri, int compression) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libxml2/xmlwriter.c:342,1
    - Dst: xmlNewDoc
      Src: /src/libxml2/xmlwriter.c:358,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:348,1
    - Dst: xmlSAX2InitDefaultSAXHandler
      Src: /src/libxml2/xmlwriter.c:343,1
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/xmlwriter.c:346,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/xmlwriter.c:360,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:361,1
    - Dst: xmlNewTextWriterPushParser
      Src: /src/libxml2/xmlwriter.c:366,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xmlwriter.c:368,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/xmlwriter.c:369,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:370,1
    - Dst: xmlSetDocCompressMode
      Src: /src/libxml2/xmlwriter.c:375,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - doc
    - compression
    argTypes:
    - xmlDoc**
    - int
    constantsTouched: []
    func_position:
      end: 383
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 383
    functionName: xmlNewTextWriterDoc
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlSAX2InitDefaultSAXHandler
    - xmlWriterErrMsg
    - memset
    - xmlNewTextWriterPushParser
    - xmlSetDocCompressMode
    - xmlNewDoc
    - xmlFreeDoc
    - xmlCreatePushParserCtxt
    - xmlFreeParserCtxt
    linkageType: ''
    returnType: xmlTextWriter*
    signature: 'xmlTextWriter *xmlNewTextWriterDoc(xmlDoc ** doc, int compression) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:2511,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:2533,1
    - Dst: xmlTextWriterEndAttribute
      Src: /src/libxml2/xmlwriter.c:2522,1
    - Dst: xmlTextWriterOutputNSDecl
      Src: /src/libxml2/xmlwriter.c:2529,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:2513,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:2540,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlwriter.c:2550,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:2552,1
    - Dst: xmlListPushFront
      Src: /src/libxml2/xmlwriter.c:2560,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:2562,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 38
    argCount: 1
    argNames:
    - writer
    argTypes:
    - xmlTextWriter*
    constantsTouched: []
    func_position:
      end: 2568
      start: 2499
    functionDepth: 0
    functionLinenumber: 2499
    functionLinenumberEnd: 2568
    functionName: xmlTextWriterStartCDATA
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlListPushFront
    - xmlWriterErrMsg
    - xmlTextWriterOutputNSDecl
    - xmlOutputBufferWriteString
    - xmlTextWriterEndAttribute
    - xmlListFront
    - xmlLinkGetData
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterStartCDATA(xmlTextWriter *writer) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcmp
      Src: /src/libxml2/xmlwriter.c:4148,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 2
    argNames:
    - data0
    - data1
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 4149
      start: 4130
    functionDepth: 0
    functionLinenumber: 4130
    functionLinenumberEnd: 4149
    functionName: xmlCmpTextWriterStackEntry
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlStrcmp
    linkageType: ''
    returnType: int
    signature: 'static int xmlCmpTextWriterStackEntry(const void *data0, const void
      *data1) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:1171,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:1194,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:1175,1
    - Dst: xmlTextWriterEndAttribute
      Src: /src/libxml2/xmlwriter.c:1182,1
    - Dst: xmlTextWriterOutputNSDecl
      Src: /src/libxml2/xmlwriter.c:1189,1
    - Dst: xmlTextWriterWriteIndent
      Src: /src/libxml2/xmlwriter.c:1203,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:1208,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:1212,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:1217,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:1227,1
    - Dst: xmlListPopFront
      Src: /src/libxml2/xmlwriter.c:1231,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 47
    argCount: 1
    argNames:
    - writer
    argTypes:
    - xmlTextWriter*
    constantsTouched: []
    func_position:
      end: 1233
      start: 1160
    functionDepth: 0
    functionLinenumber: 1160
    functionLinenumberEnd: 1233
    functionName: xmlTextWriterFullEndElement
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterOutputNSDecl
    - xmlOutputBufferWriteString
    - xmlTextWriterWriteIndent
    - xmlListPopFront
    - xmlTextWriterEndAttribute
    - xmlListFront
    - xmlLinkGetData
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterFullEndElement(xmlTextWriter *writer) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:1617,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:1623,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - out
    - len
    - data
    argTypes:
    - xmlOutputBufferPtr
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1631
      start: 1600
    functionDepth: 0
    functionLinenumber: 1600
    functionLinenumberEnd: 1631
    functionName: xmlOutputBufferWriteBinHex
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWrite
    linkageType: ''
    returnType: int
    signature: 'static int xmlOutputBufferWriteBinHex(xmlOutputBufferPtr out, int
      len, const unsigned char *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/xmlwriter.c:1893,1
    - Dst: xmlTextWriterWriteVFormatAttribute
      Src: /src/libxml2/xmlwriter.c:1895,1
    - Dst: va_end
      Src: /src/libxml2/xmlwriter.c:1897,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - writer
    - name
    - format
    - '...'
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - char*
    constantsTouched: []
    func_position:
      end: 1899
      start: 1885
    functionDepth: 0
    functionLinenumber: 1885
    functionLinenumberEnd: 1899
    functionName: xmlTextWriterWriteFormatAttribute
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - xmlTextWriterWriteVFormatAttribute
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteFormatAttribute(xmlTextWriter *writer, const
      xmlChar * name, const char *format, ...) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:1848,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:1853,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:1863,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - writer
    argTypes:
    - xmlTextWriter*
    constantsTouched: []
    func_position:
      end: 1874
      start: 1837
    functionDepth: 0
    functionLinenumber: 1837
    functionLinenumberEnd: 1874
    functionName: xmlTextWriterEndAttribute
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlListFront
    - xmlOutputBufferWrite
    - xmlLinkGetData
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterEndAttribute(xmlTextWriter *writer) '
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlwriter.c:2732,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:2736,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:2806,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:2718,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:2767,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:2792,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:2794,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:2812,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:2818,1
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:2717,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:2743,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:2778,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:2747,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:2772,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:2798,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:2804,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:2823,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlwriter.c:2725,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:2727,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:2719,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:2734,1
    - Dst: xmlListPushFront
      Src: /src/libxml2/xmlwriter.c:2741,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:2754,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:2783,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:2760,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:2762,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 96
    argCount: 4
    argNames:
    - writer
    - name
    - pubid
    - sysid
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2830
      start: 2703
    functionDepth: 0
    functionLinenumber: 2703
    functionLinenumberEnd: 2830
    functionName: xmlTextWriterStartDTD
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlOutputBufferWrite
    - xmlListPushFront
    - xmlWriterErrMsg
    - xmlOutputBufferWriteString
    - xmlStrdup
    - xmlListFront
    - xmlLinkGetData
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterStartDTD(xmlTextWriter *writer, const xmlChar * name,
      const xmlChar * pubid, const xmlChar * sysid) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:3821,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:3834,1
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:3827,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:3829,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:3843,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:3849,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:3856,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3861,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:3866,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3872,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:3877,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3891,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3920,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3885,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:3896,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3902,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3914,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:3907,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 73
    argCount: 4
    argNames:
    - writer
    - pubid
    - sysid
    - ndataid
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3928
      start: 3809
    functionDepth: 0
    functionLinenumber: 3809
    functionLinenumberEnd: 3928
    functionName: xmlTextWriterWriteDTDExternalEntityContents
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWrite
    - xmlWriterErrMsg
    - xmlOutputBufferWriteString
    - xmlListFront
    - xmlLinkGetData
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteDTDExternalEntityContents(xmlTextWriter *writer,
      const xmlChar * pubid, const xmlChar * sysid, const xmlChar * ndataid) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterStartCDATA
      Src: /src/libxml2/xmlwriter.c:2676,1
    - Dst: xmlTextWriterEndCDATA
      Src: /src/libxml2/xmlwriter.c:2686,1
    - Dst: xmlTextWriterWriteString
      Src: /src/libxml2/xmlwriter.c:2681,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - writer
    - content
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2692
      start: 2669
    functionDepth: 0
    functionLinenumber: 2669
    functionLinenumberEnd: 2692
    functionName: xmlTextWriterWriteCDATA
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterWriteString
    - xmlTextWriterStartCDATA
    - xmlTextWriterEndCDATA
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteCDATA(xmlTextWriter *writer, const xmlChar *
      content) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterStartDTDEntity
      Src: /src/libxml2/xmlwriter.c:3780,1
    - Dst: xmlTextWriterEndDTDEntity
      Src: /src/libxml2/xmlwriter.c:3792,1
    - Dst: xmlTextWriterWriteDTDExternalEntityContents
      Src: /src/libxml2/xmlwriter.c:3786,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 6
    argNames:
    - writer
    - pe
    - name
    - pubid
    - sysid
    - ndataid
    argTypes:
    - xmlTextWriter*
    - int
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3798
      start: 3763
    functionDepth: 0
    functionLinenumber: 3763
    functionLinenumberEnd: 3798
    functionName: xmlTextWriterWriteDTDExternalEntity
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterWriteDTDExternalEntityContents
    - xmlTextWriterStartDTDEntity
    - xmlTextWriterEndDTDEntity
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteDTDExternalEntity(xmlTextWriter *writer, int
      pe, const xmlChar * name, const xmlChar * pubid, const xmlChar * sysid, const
      xmlChar * ndataid) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/xmlwriter.c:452,1
    - Dst: xmlListDelete
      Src: /src/libxml2/xmlwriter.c:458,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/xmlwriter.c:465,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xmlwriter.c:462,1
    - Dst: xmlListDelete
      Src: /src/libxml2/xmlwriter.c:455,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xmlwriter.c:469,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:472,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:473,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - writer
    argTypes:
    - xmlTextWriter*
    constantsTouched: []
    func_position:
      end: 474
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 474
    functionName: xmlFreeTextWriter
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlOutputBufferClose
    - xmlListDelete
    - xmlFreeDoc
    - xmlFreeParserCtxt
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeTextWriter(xmlTextWriter *writer) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:700,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:708,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:720,1
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:706,1
    - Dst: xmlTextWriterOutputNSDecl
      Src: /src/libxml2/xmlwriter.c:716,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:726,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlwriter.c:740,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:742,1
    - Dst: xmlListPushFront
      Src: /src/libxml2/xmlwriter.c:750,1
    - Dst: xmlTextWriterWriteIndent
      Src: /src/libxml2/xmlwriter.c:753,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:759,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 1
    argNames:
    - writer
    argTypes:
    - xmlTextWriter*
    constantsTouched: []
    func_position:
      end: 765
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 765
    functionName: xmlTextWriterStartComment
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlListPushFront
    - xmlWriterErrMsg
    - xmlTextWriterOutputNSDecl
    - xmlOutputBufferWriteString
    - xmlTextWriterWriteIndent
    - xmlListFront
    - xmlLinkGetData
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterStartComment(xmlTextWriter *writer) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/xmlwriter.c:2084,1
    - Dst: va_end
      Src: /src/libxml2/xmlwriter.c:2088,1
    - Dst: xmlTextWriterWriteVFormatElement
      Src: /src/libxml2/xmlwriter.c:2086,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - writer
    - name
    - format
    - '...'
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - char*
    constantsTouched: []
    func_position:
      end: 2090
      start: 2076
    functionDepth: 0
    functionLinenumber: 2076
    functionLinenumberEnd: 2090
    functionName: xmlTextWriterWriteFormatElement
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterWriteVFormatElement
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteFormatElement(xmlTextWriter *writer, const xmlChar
      * name, const char *format, ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/xmlwriter.c:4089,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - writer
    argTypes:
    - xmlTextWriter*
    constantsTouched: []
    func_position:
      end: 4098
      start: 4081
    functionDepth: 0
    functionLinenumber: 4081
    functionLinenumberEnd: 4098
    functionName: xmlTextWriterClose
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferClose
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterClose(xmlTextWriter *writer) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:402,1
    - Dst: memset
      Src: /src/libxml2/xmlwriter.c:407,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:413,1
    - Dst: xmlSAX2InitDefaultSAXHandler
      Src: /src/libxml2/xmlwriter.c:408,1
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/xmlwriter.c:411,1
    - Dst: xmlNewTextWriterPushParser
      Src: /src/libxml2/xmlwriter.c:423,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/xmlwriter.c:425,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:426,1
    - Dst: xmlSetDocCompressMode
      Src: /src/libxml2/xmlwriter.c:435,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - doc
    - node
    - compression
    argTypes:
    - xmlDoc*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 438
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 438
    functionName: xmlNewTextWriterTree
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlSAX2InitDefaultSAXHandler
    - xmlWriterErrMsg
    - memset
    - xmlNewTextWriterPushParser
    - xmlSetDocCompressMode
    - xmlCreatePushParserCtxt
    - xmlFreeParserCtxt
    linkageType: ''
    returnType: xmlTextWriter*
    signature: 'xmlTextWriter *xmlNewTextWriterTree(xmlDoc *doc, xmlNode *node, int
      compression) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterStartAttributeNS
      Src: /src/libxml2/xmlwriter.c:2051,1
    - Dst: xmlTextWriterWriteString
      Src: /src/libxml2/xmlwriter.c:2055,1
    - Dst: xmlTextWriterEndAttribute
      Src: /src/libxml2/xmlwriter.c:2059,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 5
    argNames:
    - writer
    - prefix
    - name
    - namespaceURI
    - content
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2065
      start: 2038
    functionDepth: 0
    functionLinenumber: 2038
    functionLinenumberEnd: 2065
    functionName: xmlTextWriterWriteAttributeNS
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterEndAttribute
    - xmlTextWriterWriteString
    - xmlTextWriterStartAttributeNS
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteAttributeNS(xmlTextWriter *writer, const xmlChar
      * prefix, const xmlChar * name, const xmlChar * namespaceURI, const xmlChar
      * content) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/xmlwriter.c:2421,1
    - Dst: va_end
      Src: /src/libxml2/xmlwriter.c:2425,1
    - Dst: xmlTextWriterWriteVFormatPI
      Src: /src/libxml2/xmlwriter.c:2423,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - writer
    - target
    - format
    - '...'
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - char*
    constantsTouched: []
    func_position:
      end: 2427
      start: 2414
    functionDepth: 0
    functionLinenumber: 2414
    functionLinenumberEnd: 2427
    functionName: xmlTextWriterWriteFormatPI
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterWriteVFormatPI
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteFormatPI(xmlTextWriter *writer, const xmlChar
      * target, const char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/xmlwriter.c:2927,1
    - Dst: va_end
      Src: /src/libxml2/xmlwriter.c:2932,1
    - Dst: xmlTextWriterWriteVFormatDTD
      Src: /src/libxml2/xmlwriter.c:2929,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 5
    argNames:
    - writer
    - name
    - pubid
    - sysid
    - format
    - '...'
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - char*
    constantsTouched: []
    func_position:
      end: 2934
      start: 2918
    functionDepth: 0
    functionLinenumber: 2918
    functionLinenumberEnd: 2934
    functionName: xmlTextWriterWriteFormatDTD
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - xmlTextWriterWriteVFormatDTD
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteFormatDTD(xmlTextWriter *writer, const xmlChar
      * name, const xmlChar * pubid, const xmlChar * sysid, const char *format, ...) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterStartDTDEntity
      Src: /src/libxml2/xmlwriter.c:3734,1
    - Dst: xmlTextWriterEndDTDEntity
      Src: /src/libxml2/xmlwriter.c:3744,1
    - Dst: xmlTextWriterWriteString
      Src: /src/libxml2/xmlwriter.c:3739,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 4
    argNames:
    - writer
    - pe
    - name
    - content
    argTypes:
    - xmlTextWriter*
    - int
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3750
      start: 3721
    functionDepth: 0
    functionLinenumber: 3721
    functionLinenumberEnd: 3750
    functionName: xmlTextWriterWriteDTDInternalEntity
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterWriteString
    - xmlTextWriterStartDTDEntity
    - xmlTextWriterEndDTDEntity
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteDTDInternalEntity(xmlTextWriter *writer, int
      pe, const xmlChar * name, const xmlChar * content) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:2373,1
    - Dst: xmlListPopFront
      Src: /src/libxml2/xmlwriter.c:2401,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:2395,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:2385,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:2377,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 1
    argNames:
    - writer
    argTypes:
    - xmlTextWriter*
    constantsTouched: []
    func_position:
      end: 2403
      start: 2362
    functionDepth: 0
    functionLinenumber: 2362
    functionLinenumberEnd: 2403
    functionName: xmlTextWriterEndPI
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlListFront
    - xmlOutputBufferWriteString
    - xmlLinkGetData
    - xmlListPopFront
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterEndPI(xmlTextWriter *writer) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:2853,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:2861,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:2873,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:2867,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:2856,1
    - Dst: xmlListPopFront
      Src: /src/libxml2/xmlwriter.c:2876,1
    - Dst: xmlTextWriterEndDTDElement
      Src: /src/libxml2/xmlwriter.c:2880,1
    - Dst: xmlTextWriterEndDTDAttlist
      Src: /src/libxml2/xmlwriter.c:2884,1
    - Dst: xmlTextWriterEndDTDEntity
      Src: /src/libxml2/xmlwriter.c:2889,1
    - Dst: xmlTextWriterEndComment
      Src: /src/libxml2/xmlwriter.c:2892,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 35
    argCount: 1
    argNames:
    - writer
    argTypes:
    - xmlTextWriter*
    constantsTouched: []
    func_position:
      end: 2905
      start: 2838
    functionDepth: 0
    functionLinenumber: 2838
    functionLinenumberEnd: 2905
    functionName: xmlTextWriterEndDTD
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterEndComment
    - xmlTextWriterEndDTDAttlist
    - xmlOutputBufferWriteString
    - xmlTextWriterEndDTDEntity
    - xmlTextWriterEndDTDElement
    - xmlListPopFront
    - xmlListFront
    - xmlLinkGetData
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterEndDTD(xmlTextWriter *writer) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterWriteDTDInternalEntity
      Src: /src/libxml2/xmlwriter.c:3705,1
    - Dst: xmlTextWriterWriteDTDExternalEntity
      Src: /src/libxml2/xmlwriter.c:3708,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 14
    argCount: 7
    argNames:
    - writer
    - pe
    - name
    - pubid
    - sysid
    - ndataid
    - content
    argTypes:
    - xmlTextWriter*
    - int
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3710
      start: 3690
    functionDepth: 0
    functionLinenumber: 3690
    functionLinenumberEnd: 3710
    functionName: xmlTextWriterWriteDTDEntity
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterWriteDTDInternalEntity
    - xmlTextWriterWriteDTDExternalEntity
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteDTDEntity(xmlTextWriter *writer, int pe, const
      xmlChar * name, const xmlChar * pubid, const xmlChar * sysid, const xmlChar
      * ndataid, const xmlChar * content) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/xmlwriter.c:1250,1
    - Dst: va_end
      Src: /src/libxml2/xmlwriter.c:1254,1
    - Dst: xmlTextWriterWriteVFormatRaw
      Src: /src/libxml2/xmlwriter.c:1252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - writer
    - format
    - '...'
    argTypes:
    - xmlTextWriter*
    - char*
    constantsTouched: []
    func_position:
      end: 1256
      start: 1243
    functionDepth: 0
    functionLinenumber: 1243
    functionLinenumberEnd: 1256
    functionName: xmlTextWriterWriteFormatRaw
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - xmlTextWriterWriteVFormatRaw
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteFormatRaw(xmlTextWriter *writer, const char
      *format, ...) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:1655,1
    - Dst: xmlOutputBufferWriteBinHex
      Src: /src/libxml2/xmlwriter.c:1670,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:1657,1
    - Dst: xmlTextWriterHandleStateDependencies
      Src: /src/libxml2/xmlwriter.c:1659,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 4
    argNames:
    - writer
    - data
    - start
    - len
    argTypes:
    - xmlTextWriter*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1677
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1677
    functionName: xmlTextWriterWriteBinHex
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlListFront
    - xmlOutputBufferWriteBinHex
    - xmlLinkGetData
    - xmlTextWriterHandleStateDependencies
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteBinHex(xmlTextWriter *writer, const char *data,
      int start, int len) '
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:612,1
    - Dst: xmlTextWriterEndPI
      Src: /src/libxml2/xmlwriter.c:633,1
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:618,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:619,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/xmlwriter.c:626,1
    - Dst: xmlTextWriterEndCDATA
      Src: /src/libxml2/xmlwriter.c:639,1
    - Dst: xmlTextWriterEndDTD
      Src: /src/libxml2/xmlwriter.c:653,1
    - Dst: xmlTextWriterEndComment
      Src: /src/libxml2/xmlwriter.c:659,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:670,1
    - Dst: xmlTextWriterFlush
      Src: /src/libxml2/xmlwriter.c:676,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 43
    argCount: 1
    argNames:
    - writer
    argTypes:
    - xmlTextWriter*
    constantsTouched: []
    func_position:
      end: 683
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 683
    functionName: xmlTextWriterEndDocument
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterEndComment
    - xmlTextWriterEndDTD
    - xmlTextWriterEndPI
    - xmlTextWriterEndElement
    - xmlWriterErrMsg
    - xmlOutputBufferWriteString
    - xmlTextWriterFlush
    - xmlListFront
    - xmlLinkGetData
    - xmlTextWriterEndCDATA
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterEndDocument(xmlTextWriter *writer) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterStartElementNS
      Src: /src/libxml2/xmlwriter.c:2245,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/xmlwriter.c:2253,1
    - Dst: xmlTextWriterWriteString
      Src: /src/libxml2/xmlwriter.c:2249,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 5
    argNames:
    - writer
    - prefix
    - name
    - namespaceURI
    - content
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2259
      start: 2231
    functionDepth: 0
    functionLinenumber: 2231
    functionLinenumberEnd: 2259
    functionName: xmlTextWriterWriteElementNS
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterWriteString
    - xmlTextWriterStartElementNS
    - xmlTextWriterEndElement
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteElementNS(xmlTextWriter *writer, const xmlChar
      * prefix, const xmlChar * name, const xmlChar * namespaceURI, const xmlChar
      * content) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseChunk
      Src: /src/libxml2/xmlwriter.c:4292,1
    - Dst: xmlWriterErrMsgInt
      Src: /src/libxml2/xmlwriter.c:4294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 4301
      start: 4286
    functionDepth: 0
    functionLinenumber: 4286
    functionLinenumberEnd: 4301
    functionName: xmlTextWriterCloseDocCallback
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlWriterErrMsgInt
    - xmlParseChunk
    linkageType: ''
    returnType: int
    signature: 'static int xmlTextWriterCloseDocCallback(void *context) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:500,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlwriter.c:524,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:538,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:563,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:570,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:544,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:574,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:582,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:588,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:502,1
    - Dst: xmlBufCreate
      Src: /src/libxml2/xmlwriter.c:520,1
    - Dst: xmlCharEncOutput
      Src: /src/libxml2/xmlwriter.c:522,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:529,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:540,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:549,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:553,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:533,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:495,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:501,1
    - Dst: xmlFindCharEncodingHandler
      Src: /src/libxml2/xmlwriter.c:509,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:511,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:558,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:578,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 96
    argCount: 4
    argNames:
    - writer
    - version
    - encoding
    - standalone
    argTypes:
    - xmlTextWriter*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 594
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 594
    functionName: xmlTextWriterStartDocument
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlCharEncOutput
    - xmlOutputBufferWrite
    - xmlWriterErrMsg
    - xmlOutputBufferWriteString
    - xmlFindCharEncodingHandler
    - xmlStrdup
    - xmlBufCreate
    - xmlListFront
    - xmlLinkGetData
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterStartDocument(xmlTextWriter *writer, const char *version,
      const char *encoding, const char *standalone) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseChunk
      Src: /src/libxml2/xmlwriter.c:4269,1
    - Dst: xmlWriterErrMsgInt
      Src: /src/libxml2/xmlwriter.c:4271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - context
    - str
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 4278
      start: 4263
    functionDepth: 0
    functionLinenumber: 4263
    functionLinenumberEnd: 4278
    functionName: xmlTextWriterWriteDocCallback
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlWriterErrMsgInt
    - xmlParseChunk
    linkageType: ''
    returnType: int
    signature: 'static int xmlTextWriterWriteDocCallback(void *context, const char
      *str, int len) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:4426,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlwriter.c:4427,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - writer
    - str
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4433
      start: 4419
    functionDepth: 0
    functionLinenumber: 4419
    functionLinenumberEnd: 4433
    functionName: xmlTextWriterSetIndentString
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrdup
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterSetIndentString(xmlTextWriter *writer, const xmlChar
      * str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - writer
    - indent
    argTypes:
    - xmlTextWriter*
    - int
    constantsTouched: []
    func_position:
      end: 4410
      start: 4400
    functionDepth: 0
    functionLinenumber: 4400
    functionLinenumberEnd: 4410
    functionName: xmlTextWriterSetIndent
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterSetIndent(xmlTextWriter *writer, int indent) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:782,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:801,1
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:787,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:789,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:794,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:811,1
    - Dst: xmlListPopFront
      Src: /src/libxml2/xmlwriter.c:817,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 1
    argNames:
    - writer
    argTypes:
    - xmlTextWriter*
    constantsTouched: []
    func_position:
      end: 819
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 819
    functionName: xmlTextWriterEndComment
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlWriterErrMsg
    - xmlOutputBufferWriteString
    - xmlListPopFront
    - xmlListFront
    - xmlLinkGetData
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterEndComment(xmlTextWriter *writer) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:4114,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:4119,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:4120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - lk
    argTypes:
    - xmlLinkPtr
    constantsTouched: []
    func_position:
      end: 4121
      start: 4109
    functionDepth: 0
    functionLinenumber: 4109
    functionLinenumberEnd: 4121
    functionName: xmlFreeTextWriterStackEntry
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlLinkGetData
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeTextWriterStackEntry(xmlLinkPtr lk) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:171,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 0
    argNames:
    - 3,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 174
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlWriterErrMsg
    linkageType: ''
    returnType: void
    signature: "static void LIBXML_ATTR_FORMAT(3,0) xmlWriterErrMsgInt(xmlTextWriterPtr
      ctxt, xmlParserErrors error, const char *msg, int val){ xmlParserCtxtPtr pctxt
      = NULL; if (ctxt != NULL) pctxt = ctxt->ctxt; xmlRaiseError(NULL, NULL, NULL,
      pctxt,\t NULL, XML_FROM_WRITER, error, XML_ERR_FATAL,\t\t NULL, 0, NULL, NULL,
      NULL, val, 0, msg, val);}/** * Create a new xmlTextWriter structure using an
      xmlOutputBuffer * NOTE: the `out` parameter will be deallocated when the writer
      is closed * (if the call succeed.) * * @param out an xmlOutputBuffer * @returns
      the new xmlTextWriter or NULL in case of error */xmlTextWriter *xmlNewTextWriter(xmlOutputBuffer
      *out){ xmlTextWriterPtr ret; ret = (xmlTextWriterPtr) xmlMalloc(sizeof(xmlTextWriter));
      if (ret == NULL) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterVSprintf
      Src: /src/libxml2/xmlwriter.c:1276,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:1282,1
    - Dst: xmlTextWriterWriteRaw
      Src: /src/libxml2/xmlwriter.c:1280,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - writer
    - format
    - argptr
    argTypes:
    - xmlTextWriter*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 1284
      start: 1266
    functionDepth: 0
    functionLinenumber: 1266
    functionLinenumberEnd: 1284
    functionName: xmlTextWriterWriteVFormatRaw
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlTextWriterWriteRaw
    - xmlTextWriterVSprintf
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteVFormatRaw(xmlTextWriter *writer, const char
      *format, va_list argptr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/xmlwriter.c:1371,1
    - Dst: va_end
      Src: /src/libxml2/xmlwriter.c:1375,1
    - Dst: xmlTextWriterWriteVFormatString
      Src: /src/libxml2/xmlwriter.c:1373,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - writer
    - format
    - '...'
    argTypes:
    - xmlTextWriter*
    - char*
    constantsTouched: []
    func_position:
      end: 1377
      start: 1361
    functionDepth: 0
    functionLinenumber: 1361
    functionLinenumberEnd: 1377
    functionName: xmlTextWriterWriteFormatString
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - xmlTextWriterWriteVFormatString
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteFormatString(xmlTextWriter *writer, const char
      *format, ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterVSprintf
      Src: /src/libxml2/xmlwriter.c:1397,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:1403,1
    - Dst: xmlTextWriterWriteString
      Src: /src/libxml2/xmlwriter.c:1401,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 3
    argNames:
    - writer
    - format
    - argptr
    argTypes:
    - xmlTextWriter*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 1405
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1405
    functionName: xmlTextWriterWriteVFormatString
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlTextWriterWriteString
    - xmlTextWriterVSprintf
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteVFormatString(xmlTextWriter *writer, const char
      *format, va_list argptr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/xmlwriter.c:3636,1
    - Dst: va_end
      Src: /src/libxml2/xmlwriter.c:3641,1
    - Dst: xmlTextWriterWriteVFormatDTDInternalEntity
      Src: /src/libxml2/xmlwriter.c:3638,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 4
    argNames:
    - writer
    - pe
    - name
    - format
    - '...'
    argTypes:
    - xmlTextWriter*
    - int
    - xmlChar*
    - char*
    constantsTouched: []
    func_position:
      end: 3643
      start: 3627
    functionDepth: 0
    functionLinenumber: 3627
    functionLinenumberEnd: 3643
    functionName: xmlTextWriterWriteFormatDTDInternalEntity
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterWriteVFormatDTDInternalEntity
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteFormatDTDInternalEntity(xmlTextWriter *writer,
      int pe, const xmlChar * name, const char *format, ...) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:3953,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3962,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:3958,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3967,1
    - Dst: xmlTextWriterWriteIndent
      Src: /src/libxml2/xmlwriter.c:3982,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3988,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3992,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3998,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:4002,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:4007,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:4019,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:4024,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:4043,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:4028,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:4033,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:4011,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:4037,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 85
    argCount: 4
    argNames:
    - writer
    - name
    - pubid
    - sysid
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4049
      start: 3939
    functionDepth: 0
    functionLinenumber: 3939
    functionLinenumberEnd: 4049
    functionName: xmlTextWriterWriteDTDNotation
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWrite
    - xmlOutputBufferWriteString
    - xmlTextWriterWriteIndent
    - xmlListFront
    - xmlLinkGetData
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteDTDNotation(xmlTextWriter *writer, const xmlChar
      * name, const xmlChar * pubid, const xmlChar * sysid) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcmp
      Src: /src/libxml2/xmlwriter.c:4247,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 2
    argNames:
    - data0
    - data1
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 4253
      start: 4228
    functionDepth: 0
    functionLinenumber: 4228
    functionLinenumberEnd: 4253
    functionName: xmlCmpTextWriterNsStackEntry
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlStrcmp
    linkageType: ''
    returnType: int
    signature: 'static int xmlCmpTextWriterNsStackEntry(const void *data0, const void
      *data1) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlListSize
      Src: /src/libxml2/xmlwriter.c:4466,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:4470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - writer
    argTypes:
    - xmlTextWriterPtr
    constantsTouched: []
    func_position:
      end: 4477
      start: 4459
    functionDepth: 0
    functionLinenumber: 4459
    functionLinenumberEnd: 4477
    functionName: xmlTextWriterWriteIndent
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWriteString
    - xmlListSize
    linkageType: ''
    returnType: int
    signature: 'static int xmlTextWriterWriteIndent(xmlTextWriterPtr writer) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterWriteRawLen
      Src: /src/libxml2/xmlwriter.c:1350,1
    - Dst: xmlStrlen
      Src: /src/libxml2/xmlwriter.c:1350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - writer
    - content
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1351
      start: 1347
    functionDepth: 0
    functionLinenumber: 1347
    functionLinenumberEnd: 1351
    functionName: xmlTextWriterWriteRaw
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlStrlen
    - xmlTextWriterWriteRawLen
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteRaw(xmlTextWriter *writer, const xmlChar * content) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:3254,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3268,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlwriter.c:3284,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:3259,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3263,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:3286,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlwriter.c:3291,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:3293,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:3295,1
    - Dst: xmlListPushFront
      Src: /src/libxml2/xmlwriter.c:3300,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3309,1
    - Dst: xmlTextWriterWriteIndent
      Src: /src/libxml2/xmlwriter.c:3303,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3313,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 52
    argCount: 2
    argNames:
    - writer
    - name
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3319
      start: 3242
    functionDepth: 0
    functionLinenumber: 3242
    functionLinenumberEnd: 3319
    functionName: xmlTextWriterStartDTDAttlist
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlListPushFront
    - xmlWriterErrMsg
    - xmlOutputBufferWriteString
    - xmlStrdup
    - xmlTextWriterWriteIndent
    - xmlListFront
    - xmlLinkGetData
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterStartDTDAttlist(xmlTextWriter *writer, const xmlChar
      * name) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:4209,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:4214,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:4216,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:4218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - lk
    argTypes:
    - xmlLinkPtr
    constantsTouched: []
    func_position:
      end: 4219
      start: 4204
    functionDepth: 0
    functionLinenumber: 4204
    functionLinenumberEnd: 4219
    functionName: xmlFreeTextWriterNsStackEntry
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlLinkGetData
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeTextWriterNsStackEntry(xmlLinkPtr lk) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - writer
    - quotechar
    argTypes:
    - xmlTextWriter*
    - xmlChar
    constantsTouched: []
    func_position:
      end: 4451
      start: 4442
    functionDepth: 0
    functionLinenumber: 4442
    functionLinenumberEnd: 4451
    functionName: xmlTextWriterSetQuoteChar
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterSetQuoteChar(xmlTextWriter *writer, xmlChar quotechar) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:924,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:946,1
    - Dst: xmlTextWriterOutputNSDecl
      Src: /src/libxml2/xmlwriter.c:942,1
    - Dst: xmlTextWriterEndAttribute
      Src: /src/libxml2/xmlwriter.c:935,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:926,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:952,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlwriter.c:962,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:964,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlwriter.c:969,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:971,1
    - Dst: xmlListPushFront
      Src: /src/libxml2/xmlwriter.c:978,1
    - Dst: xmlTextWriterWriteIndent
      Src: /src/libxml2/xmlwriter.c:981,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:973,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:985,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:990,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 2
    argNames:
    - writer
    - name
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 996
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 996
    functionName: xmlTextWriterStartElement
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlListPushFront
    - xmlWriterErrMsg
    - xmlTextWriterOutputNSDecl
    - xmlOutputBufferWriteString
    - xmlStrdup
    - xmlTextWriterWriteIndent
    - xmlTextWriterEndAttribute
    - xmlListFront
    - xmlLinkGetData
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterStartElement(xmlTextWriter *writer, const xmlChar
      * name) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterStartDTDElement
      Src: /src/libxml2/xmlwriter.c:3217,1
    - Dst: xmlTextWriterEndDTDElement
      Src: /src/libxml2/xmlwriter.c:3227,1
    - Dst: xmlTextWriterWriteString
      Src: /src/libxml2/xmlwriter.c:3222,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - writer
    - name
    - content
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3233
      start: 3206
    functionDepth: 0
    functionLinenumber: 3206
    functionLinenumberEnd: 3233
    functionName: xmlTextWriterWriteDTDElement
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterWriteString
    - xmlTextWriterStartDTDElement
    - xmlTextWriterEndDTDElement
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteDTDElement(xmlTextWriter *writer, const xmlChar
      * name, const xmlChar * content) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterStartComment
      Src: /src/libxml2/xmlwriter.c:889,1
    - Dst: xmlTextWriterEndComment
      Src: /src/libxml2/xmlwriter.c:897,1
    - Dst: xmlTextWriterWriteString
      Src: /src/libxml2/xmlwriter.c:893,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - writer
    - content
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 903
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 903
    functionName: xmlTextWriterWriteComment
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterEndComment
    - xmlTextWriterWriteString
    - xmlTextWriterStartComment
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteComment(xmlTextWriter *writer, const xmlChar
      * content) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/xmlwriter.c:2279,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:2288,1
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:2286,1
    - Dst: xmlTextWriterEndAttribute
      Src: /src/libxml2/xmlwriter.c:2292,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:2280,1
    - Dst: xmlTextWriterOutputNSDecl
      Src: /src/libxml2/xmlwriter.c:2299,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:2303,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:2315,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlwriter.c:2325,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:2327,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlwriter.c:2332,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:2336,1
    - Dst: xmlListPushFront
      Src: /src/libxml2/xmlwriter.c:2341,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:2343,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:2348,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:2334,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 55
    argCount: 2
    argNames:
    - writer
    - target
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2354
      start: 2268
    functionDepth: 0
    functionLinenumber: 2268
    functionLinenumberEnd: 2354
    functionName: xmlTextWriterStartPI
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrcasecmp
    - xmlListPushFront
    - xmlWriterErrMsg
    - xmlTextWriterOutputNSDecl
    - xmlOutputBufferWriteString
    - xmlStrdup
    - xmlTextWriterEndAttribute
    - xmlListFront
    - xmlLinkGetData
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterStartPI(xmlTextWriter *writer, const xmlChar * target) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterVSprintf
      Src: /src/libxml2/xmlwriter.c:2210,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:2217,1
    - Dst: xmlTextWriterWriteElementNS
      Src: /src/libxml2/xmlwriter.c:2214,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 6
    argNames:
    - writer
    - prefix
    - name
    - namespaceURI
    - format
    - argptr
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 2219
      start: 2197
    functionDepth: 0
    functionLinenumber: 2197
    functionLinenumberEnd: 2219
    functionName: xmlTextWriterWriteVFormatElementNS
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlTextWriterWriteElementNS
    - xmlTextWriterVSprintf
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteVFormatElementNS(xmlTextWriter *writer, const
      xmlChar * prefix, const xmlChar * name, const xmlChar * namespaceURI, const
      char *format, va_list argptr) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterVSprintf
      Src: /src/libxml2/xmlwriter.c:3188,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:3194,1
    - Dst: xmlTextWriterWriteDTDElement
      Src: /src/libxml2/xmlwriter.c:3192,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 4
    argNames:
    - writer
    - name
    - format
    - argptr
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 3196
      start: 3177
    functionDepth: 0
    functionLinenumber: 3177
    functionLinenumberEnd: 3196
    functionName: xmlTextWriterWriteVFormatDTDElement
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlTextWriterWriteDTDElement
    - xmlTextWriterVSprintf
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteVFormatDTDElement(xmlTextWriter *writer, const
      xmlChar * name, const char *format, va_list argptr) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterVSprintf
      Src: /src/libxml2/xmlwriter.c:2017,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:2024,1
    - Dst: xmlTextWriterWriteAttributeNS
      Src: /src/libxml2/xmlwriter.c:2021,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 6
    argNames:
    - writer
    - prefix
    - name
    - namespaceURI
    - format
    - argptr
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 2026
      start: 2004
    functionDepth: 0
    functionLinenumber: 2004
    functionLinenumberEnd: 2026
    functionName: xmlTextWriterWriteVFormatAttributeNS
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlTextWriterWriteAttributeNS
    - xmlTextWriterVSprintf
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteVFormatAttributeNS(xmlTextWriter *writer, const
      xmlChar * prefix, const xmlChar * name, const xmlChar * namespaceURI, const
      char *format, va_list argptr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/xmlwriter.c:2177,1
    - Dst: xmlTextWriterWriteVFormatElementNS
      Src: /src/libxml2/xmlwriter.c:2179,1
    - Dst: va_end
      Src: /src/libxml2/xmlwriter.c:2182,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 5
    argNames:
    - writer
    - prefix
    - name
    - namespaceURI
    - format
    - '...'
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - char*
    constantsTouched: []
    func_position:
      end: 2184
      start: 2167
    functionDepth: 0
    functionLinenumber: 2167
    functionLinenumberEnd: 2184
    functionName: xmlTextWriterWriteFormatElementNS
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - xmlTextWriterWriteVFormatElementNS
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteFormatElementNS(xmlTextWriter *writer, const
      xmlChar * prefix, const xmlChar * name, const xmlChar * namespaceURI, const
      char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/xmlwriter.c:3160,1
    - Dst: xmlTextWriterWriteVFormatDTDElement
      Src: /src/libxml2/xmlwriter.c:3162,1
    - Dst: va_end
      Src: /src/libxml2/xmlwriter.c:3164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - writer
    - name
    - format
    - '...'
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - char*
    constantsTouched: []
    func_position:
      end: 3166
      start: 3152
    functionDepth: 0
    functionLinenumber: 3152
    functionLinenumberEnd: 3166
    functionName: xmlTextWriterWriteFormatDTDElement
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterWriteVFormatDTDElement
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteFormatDTDElement(xmlTextWriter *writer, const
      xmlChar * name, const char *format, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/xmlwriter.c:1984,1
    - Dst: va_end
      Src: /src/libxml2/xmlwriter.c:1989,1
    - Dst: xmlTextWriterWriteVFormatAttributeNS
      Src: /src/libxml2/xmlwriter.c:1986,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 5
    argNames:
    - writer
    - prefix
    - name
    - namespaceURI
    - format
    - '...'
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - char*
    constantsTouched: []
    func_position:
      end: 1991
      start: 1974
    functionDepth: 0
    functionLinenumber: 1974
    functionLinenumberEnd: 1991
    functionName: xmlTextWriterWriteFormatAttributeNS
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterWriteVFormatAttributeNS
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteFormatAttributeNS(xmlTextWriter *writer, const
      xmlChar * prefix, const xmlChar * name, const xmlChar * namespaceURI, const
      char *format, ...) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:3112,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3133,1
    - Dst: xmlListPopFront
      Src: /src/libxml2/xmlwriter.c:3139,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3123,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:3116,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 1
    argNames:
    - writer
    argTypes:
    - xmlTextWriter*
    constantsTouched: []
    func_position:
      end: 3141
      start: 3100
    functionDepth: 0
    functionLinenumber: 3100
    functionLinenumberEnd: 3141
    functionName: xmlTextWriterEndDTDElement
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlListFront
    - xmlOutputBufferWriteString
    - xmlLinkGetData
    - xmlListPopFront
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterEndDTDElement(xmlTextWriter *writer) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:1305,1
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:1317,1
    - Dst: xmlTextWriterHandleStateDependencies
      Src: /src/libxml2/xmlwriter.c:1320,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:1311,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:1319,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlwriter.c:1331,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - writer
    - content
    - len
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1338
      start: 1295
    functionDepth: 0
    functionLinenumber: 1295
    functionLinenumberEnd: 1338
    functionName: xmlTextWriterWriteRawLen
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWrite
    - xmlWriterErrMsg
    - xmlTextWriterHandleStateDependencies
    - xmlListFront
    - xmlLinkGetData
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteRawLen(xmlTextWriter *writer, const xmlChar
      * content, int len) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:1428,1
    - Dst: xmlEncodeSpecialChars
      Src: /src/libxml2/xmlwriter.c:1438,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:1430,1
    - Dst: xmlTextWriterWriteRaw
      Src: /src/libxml2/xmlwriter.c:1452,1
    - Dst: xmlBufAttrSerializeTxtContent
      Src: /src/libxml2/xmlwriter.c:1442,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:1455,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 27
    argCount: 2
    argNames:
    - writer
    - content
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1463
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1463
    functionName: xmlTextWriterWriteString
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlTextWriterWriteRaw
    - xmlBufAttrSerializeTxtContent
    - xmlEncodeSpecialChars
    - xmlListFront
    - xmlLinkGetData
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteString(xmlTextWriter *writer, const xmlChar
      * content) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlListFront
      Src: /src/libxml2/xmlwriter.c:3027,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3036,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3041,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlwriter.c:3057,1
    - Dst: xmlLinkGetData
      Src: /src/libxml2/xmlwriter.c:3032,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:3059,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlwriter.c:3064,1
    - Dst: xmlWriterErrMsg
      Src: /src/libxml2/xmlwriter.c:3066,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:3068,1
    - Dst: xmlListPushFront
      Src: /src/libxml2/xmlwriter.c:3073,1
    - Dst: xmlTextWriterWriteIndent
      Src: /src/libxml2/xmlwriter.c:3076,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3082,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlwriter.c:3086,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 52
    argCount: 2
    argNames:
    - writer
    - name
    argTypes:
    - xmlTextWriter*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3092
      start: 3015
    functionDepth: 0
    functionLinenumber: 3015
    functionLinenumberEnd: 3092
    functionName: xmlTextWriterStartDTDElement
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlListPushFront
    - xmlWriterErrMsg
    - xmlOutputBufferWriteString
    - xmlStrdup
    - xmlTextWriterWriteIndent
    - xmlListFront
    - xmlLinkGetData
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterStartDTDElement(xmlTextWriter *writer, const xmlChar
      * name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextWriterVSprintf
      Src: /src/libxml2/xmlwriter.c:3668,1
    - Dst: xmlTextWriterWriteDTDInternalEntity
      Src: /src/libxml2/xmlwriter.c:3672,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlwriter.c:3674,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 5
    argNames:
    - writer
    - pe
    - name
    - format
    - argptr
    argTypes:
    - xmlTextWriter*
    - int
    - xmlChar*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 3676
      start: 3655
    functionDepth: 0
    functionLinenumber: 3655
    functionLinenumberEnd: 3676
    functionName: xmlTextWriterWriteVFormatDTDInternalEntity
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlTextWriterWriteDTDInternalEntity
    - xmlTextWriterVSprintf
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterWriteVFormatDTDInternalEntity(xmlTextWriter *writer,
      int pe, const xmlChar * name, const char *format, va_list argptr) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferFlush
      Src: /src/libxml2/xmlwriter.c:4068,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - writer
    argTypes:
    - xmlTextWriter*
    constantsTouched: []
    func_position:
      end: 4071
      start: 4057
    functionDepth: 0
    functionLinenumber: 4057
    functionLinenumberEnd: 4071
    functionName: xmlTextWriterFlush
    functionSourceFile: /src/libxml2/xmlwriter.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferFlush
    linkageType: ''
    returnType: int
    signature: 'int xmlTextWriterFlush(xmlTextWriter *writer) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: NXT
      Src: /src/libxml2/pattern.c:1061,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:1066,1
    - Dst: NXT
      Src: /src/libxml2/pattern.c:1065,1
    - Dst: NXT
      Src: /src/libxml2/pattern.c:1065,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:1062,1
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:1073,1
    - Dst: xmlCompileAttributeTest
      Src: /src/libxml2/pattern.c:1081,1
    - Dst: xmlCompileStepPattern
      Src: /src/libxml2/pattern.c:1087,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:1093,1
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:1098,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:1110,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:1118,1
    - Dst: NXT
      Src: /src/libxml2/pattern.c:1109,1
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:1134,1
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:1122,1
    - Dst: xmlCompileStepPattern
      Src: /src/libxml2/pattern.c:1104,1
    - Dst: xmlCompileStepPattern
      Src: /src/libxml2/pattern.c:1114,1
    - Dst: xmlCompileStepPattern
      Src: /src/libxml2/pattern.c:1127,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 66
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlPatParserContextPtr
    constantsTouched: []
    func_position:
      end: 1140
      start: 1052
    functionDepth: 0
    functionLinenumber: 1052
    functionLinenumberEnd: 1140
    functionName: xmlCompilePathPattern
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - NXT
    - ERROR5
    - xmlCompileStepPattern
    - xmlCompileAttributeTest
    - PUSH
    linkageType: ''
    returnType: void
    signature: 'static void xmlCompilePathPattern(xmlPatParserContextPtr ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/pattern.c:1288,1
    - Dst: xmlDictFree
      Src: /src/libxml2/pattern.c:1290,1
    - Dst: xmlFree
      Src: /src/libxml2/pattern.c:1291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xmlStreamCompPtr
    constantsTouched: []
    func_position:
      end: 1293
      start: 1284
    functionDepth: 0
    functionLinenumber: 1284
    functionLinenumberEnd: 1293
    functionName: xmlFreeStreamComp
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeStreamComp(xmlStreamCompPtr comp) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/pattern.c:1314,1
    - Dst: ERROR
      Src: /src/libxml2/pattern.c:1317,1
    - Dst: xmlRealloc
      Src: /src/libxml2/pattern.c:1321,1
    - Dst: ERROR
      Src: /src/libxml2/pattern.c:1323,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - comp
    - name
    - ns
    - nodeType
    - flags
    argTypes:
    - xmlStreamCompPtr
    - xmlChar*
    - xmlChar*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1336
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1336
    functionName: xmlStreamCompAddStep
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - ERROR
    linkageType: ''
    returnType: int
    signature: 'static int xmlStreamCompAddStep(xmlStreamCompPtr comp, const xmlChar
      *name, const xmlChar *ns, int nodeType, int flags) '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewPatParserContext
      Src: /src/libxml2/pattern.c:2101,1
    - Dst: xmlNewPatParserContext
      Src: /src/libxml2/pattern.c:2105,1
    - Dst: xmlDictReference
      Src: /src/libxml2/pattern.c:2123,1
    - Dst: xmlStrndup
      Src: /src/libxml2/pattern.c:2103,1
    - Dst: xmlNewPattern
      Src: /src/libxml2/pattern.c:2113,1
    - Dst: XML_STREAM_XS_IDC
      Src: /src/libxml2/pattern.c:2134,1
    - Dst: xmlCompileIDCXPathPath
      Src: /src/libxml2/pattern.c:2135,1
    - Dst: xmlCompilePathPattern
      Src: /src/libxml2/pattern.c:2137,1
    - Dst: xmlFreePatParserContext
      Src: /src/libxml2/pattern.c:2142,1
    - Dst: xmlStreamCompile
      Src: /src/libxml2/pattern.c:2158,1
    - Dst: xmlReversePattern
      Src: /src/libxml2/pattern.c:2162,1
    - Dst: xmlFree
      Src: /src/libxml2/pattern.c:2187,1
    - Dst: xmlFreePattern
      Src: /src/libxml2/pattern.c:2186,1
    - Dst: xmlFreeStreamComp
      Src: /src/libxml2/pattern.c:2175,1
    - Dst: xmlFreePatParserContext
      Src: /src/libxml2/pattern.c:2185,1
    - Dst: xmlFree
      Src: /src/libxml2/pattern.c:2166,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 94
    argCount: 5
    argNames:
    - pattern
    - dict
    - flags
    - namespaces
    - patternOut
    argTypes:
    - xmlChar*
    - xmlDict*
    - int
    - xmlChar**
    - xmlPattern**
    constantsTouched: []
    func_position:
      end: 2190
      start: 2076
    functionDepth: 0
    functionLinenumber: 2076
    functionLinenumberEnd: 2190
    functionName: xmlPatternCompileSafe
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlFree
    - XML_STREAM_XS_IDC
    - xmlStrndup
    - xmlFreePattern
    - xmlCompilePathPattern
    - xmlFreePatParserContext
    - xmlDictReference
    - xmlReversePattern
    - xmlFreeStreamComp
    - xmlNewPattern
    - xmlNewPatParserContext
    - xmlStreamCompile
    - xmlCompileIDCXPathPath
    linkageType: ''
    returnType: int
    signature: 'int xmlPatternCompileSafe(const xmlChar *pattern, xmlDict *dict, int
      flags, const xmlChar **namespaces, xmlPattern **patternOut) '
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:853,1
    - Dst: XML_STREAM_XS_IDC_SEL
      Src: /src/libxml2/pattern.c:852,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:870,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/pattern.c:889,1
    - Dst: XML_PAT_COPY_NSNAME
      Src: /src/libxml2/pattern.c:903,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:924,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:906,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:942,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/pattern.c:956,1
    - Dst: XML_PAT_COPY_NSNAME
      Src: /src/libxml2/pattern.c:970,1
    - Dst: xmlCompileAttributeTest
      Src: /src/libxml2/pattern.c:1013,1
    - Dst: xmlPatScanName
      Src: /src/libxml2/pattern.c:897,1
    - Dst: XML_PAT_FREE_STRING
      Src: /src/libxml2/pattern.c:919,1
    - Dst: XML_PAT_FREE_STRING
      Src: /src/libxml2/pattern.c:937,1
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:957,1
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:979,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:991,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:1002,1
    - Dst: XML_STREAM_XS_IDC_SEL
      Src: /src/libxml2/pattern.c:1007,1
    - Dst: XML_PAT_FREE_STRING
      Src: /src/libxml2/pattern.c:1037,1
    - Dst: XML_PAT_FREE_STRING
      Src: /src/libxml2/pattern.c:1041,1
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:1008,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:973,1
    - Dst: XML_PAT_FREE_STRING
      Src: /src/libxml2/pattern.c:986,1
    - Dst: XML_PAT_FREE_STRING
      Src: /src/libxml2/pattern.c:1039,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:845,1
    - Dst: xmlCompileAttributeTest
      Src: /src/libxml2/pattern.c:859,1
    - Dst: ERROR
      Src: /src/libxml2/pattern.c:873,1
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:890,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:932,1
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:912,1
    - Dst: ERROR
      Src: /src/libxml2/pattern.c:926,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:936,1
    - Dst: xmlPatScanName
      Src: /src/libxml2/pattern.c:938,1
    - Dst: ERROR
      Src: /src/libxml2/pattern.c:945,1
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:1018,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:1030,1
    - Dst: XML_PAT_FREE_STRING
      Src: /src/libxml2/pattern.c:1005,1
    - Dst: xmlPatScanNCName
      Src: /src/libxml2/pattern.c:864,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/pattern.c:879,1
    - Dst: XML_PAT_COPY_NSNAME
      Src: /src/libxml2/pattern.c:907,1
    - Dst: xmlPatScanName
      Src: /src/libxml2/pattern.c:964,1
    - Dst: ERROR
      Src: /src/libxml2/pattern.c:993,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:999,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:1004,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:1032,1
    - Dst: XML_PAT_COPY_NSNAME
      Src: /src/libxml2/pattern.c:974,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 157
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlPatParserContextPtr
    constantsTouched: []
    func_position:
      end: 1042
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 1042
    functionName: xmlCompileStepPattern
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - XML_PAT_COPY_NSNAME
    - ERROR5
    - XML_PAT_FREE_STRING
    - ERROR
    - IS_BLANK_CH
    - XML_STREAM_XS_IDC_SEL
    - xmlStrEqual
    - xmlPatScanNCName
    - xmlCompileAttributeTest
    - PUSH
    - xmlPatScanName
    linkageType: ''
    returnType: void
    signature: 'static void xmlCompileStepPattern(xmlPatParserContextPtr ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/pattern.c:1260,1
    - Dst: ERROR
      Src: /src/libxml2/pattern.c:1262,1
    - Dst: xmlMalloc
      Src: /src/libxml2/pattern.c:1267,1
    - Dst: memset
      Src: /src/libxml2/pattern.c:1266,1
    - Dst: xmlFree
      Src: /src/libxml2/pattern.c:1269,1
    - Dst: ERROR
      Src: /src/libxml2/pattern.c:1270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1277
      start: 1253
    functionDepth: 0
    functionLinenumber: 1253
    functionLinenumberEnd: 1277
    functionName: xmlNewStreamComp
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - ERROR
    - xmlMalloc
    linkageType: ''
    returnType: xmlStreamCompPtr
    signature: 'static xmlStreamCompPtr xmlNewStreamComp(int size) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - streamCtxt
    argTypes:
    - xmlStreamCtxt*
    constantsTouched: []
    func_position:
      end: 2056
      start: 2045
    functionDepth: 0
    functionLinenumber: 2045
    functionLinenumberEnd: 2056
    functionName: xmlStreamWantsAnyNode
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlStreamWantsAnyNode(xmlStreamCtxt *streamCtxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xmlPattern*
    constantsTouched: []
    func_position:
      end: 2286
      start: 2276
    functionDepth: 0
    functionLinenumber: 2276
    functionLinenumberEnd: 2286
    functionName: xmlPatternStreamable
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlPatternStreamable(xmlPattern *comp) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlPatScanNCName
      Src: /src/libxml2/pattern.c:744,1
    - Dst: ERROR
      Src: /src/libxml2/pattern.c:752,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:749,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/pattern.c:764,1
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:765,1
    - Dst: xmlPatScanName
      Src: /src/libxml2/pattern.c:772,1
    - Dst: XML_PAT_COPY_NSNAME
      Src: /src/libxml2/pattern.c:778,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:781,1
    - Dst: XML_PAT_COPY_NSNAME
      Src: /src/libxml2/pattern.c:782,1
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:787,1
    - Dst: ERROR
      Src: /src/libxml2/pattern.c:801,1
    - Dst: XML_PAT_FREE_STRING
      Src: /src/libxml2/pattern.c:794,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:799,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:810,1
    - Dst: XML_PAT_FREE_STRING
      Src: /src/libxml2/pattern.c:819,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:807,1
    - Dst: XML_PAT_FREE_STRING
      Src: /src/libxml2/pattern.c:817,1
    - Dst: XML_PAT_FREE_STRING
      Src: /src/libxml2/pattern.c:815,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlPatParserContextPtr
    constantsTouched: []
    func_position:
      end: 820
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 820
    functionName: xmlCompileAttributeTest
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - XML_PAT_COPY_NSNAME
    - ERROR5
    - ERROR
    - IS_BLANK_CH
    - xmlStrEqual
    - xmlPatScanNCName
    - XML_PAT_FREE_STRING
    - PUSH
    - xmlPatScanName
    linkageType: ''
    returnType: void
    signature: 'static void xmlCompileAttributeTest(xmlPatParserContextPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/pattern.c:1553,1
    - Dst: xmlFree
      Src: /src/libxml2/pattern.c:1554,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - stream
    argTypes:
    - xmlStreamCtxt*
    constantsTouched: []
    func_position:
      end: 1557
      start: 1546
    functionDepth: 0
    functionLinenumber: 1546
    functionLinenumberEnd: 1557
    functionName: xmlFreeStreamCtxt
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeStreamCtxt(xmlStreamCtxt *stream) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewStreamCtxt
      Src: /src/libxml2/pattern.c:2251,1
    - Dst: xmlFreeStreamCtxt
      Src: /src/libxml2/pattern.c:2265,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xmlPattern*
    constantsTouched: []
    func_position:
      end: 2267
      start: 2240
    functionDepth: 0
    functionLinenumber: 2240
    functionLinenumberEnd: 2267
    functionName: xmlPatternGetStreamCtxt
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlFreeStreamCtxt
    - xmlNewStreamCtxt
    linkageType: ''
    returnType: xmlStreamCtxt*
    signature: 'xmlStreamCtxt *xmlPatternGetStreamCtxt(xmlPattern *comp) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xmlPattern*
    constantsTouched: []
    func_position:
      end: 2356
      start: 2343
    functionDepth: 0
    functionLinenumber: 2343
    functionLinenumberEnd: 2356
    functionName: xmlPatternFromRoot
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlPatternFromRoot(xmlPattern *comp) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libxml2/pattern.c:320,1
    - Dst: xmlFree
      Src: /src/libxml2/pattern.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlPatParserContextPtr
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: xmlFreePatParserContext
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreePatParserContext(xmlPatParserContextPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlPatternGrow
      Src: /src/libxml2/pattern.c:357,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 5
    argNames:
    - ctxt
    - comp
    - op
    - value
    - value2
    argTypes:
    - xmlPatParserContextPtr
    - xmlPatternPtr
    - xmlPatOp
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 367
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 367
    functionName: xmlPatternAdd
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlPatternGrow
    linkageType: ''
    returnType: int
    signature: 'static int xmlPatternAdd(xmlPatParserContextPtr ctxt, xmlPatternPtr
      comp, xmlPatOp op, xmlChar * value, xmlChar * value2) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/pattern.c:1525,1
    - Dst: ERROR
      Src: /src/libxml2/pattern.c:1527,1
    - Dst: memset
      Src: /src/libxml2/pattern.c:1531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - stream
    argTypes:
    - xmlStreamCompPtr
    constantsTouched: []
    func_position:
      end: 1539
      start: 1521
    functionDepth: 0
    functionLinenumber: 1521
    functionLinenumberEnd: 1539
    functionName: xmlNewStreamCtxt
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - memset
    - ERROR
    - xmlMalloc
    linkageType: ''
    returnType: xmlStreamCtxtPtr
    signature: 'static xmlStreamCtxtPtr xmlNewStreamCtxt(xmlStreamCompPtr stream) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlStreamPushInternal
      Src: /src/libxml2/pattern.c:1966,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - stream
    - name
    - ns
    - nodeType
    argTypes:
    - xmlStreamCtxt*
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1968
      start: 1961
    functionDepth: 0
    functionLinenumber: 1961
    functionLinenumberEnd: 1968
    functionName: xmlStreamPushNode
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlStreamPushInternal
    linkageType: ''
    returnType: int
    signature: "int xmlStreamPushNode(xmlStreamCtxt *stream,\t\t const xmlChar *name,
      const xmlChar *ns,\t\t int nodeType) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreePatternList
      Src: /src/libxml2/pattern.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xmlPattern*
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: xmlFreePattern
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlFreePatternList
    linkageType: ''
    returnType: void
    signature: 'void xmlFreePattern(xmlPattern *comp) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/pattern.c:289,1
    - Dst: ERROR
      Src: /src/libxml2/pattern.c:291,1
    - Dst: memset
      Src: /src/libxml2/pattern.c:295,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - pattern
    - dict
    - namespaces
    argTypes:
    - xmlChar*
    - xmlDictPtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 309
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 309
    functionName: xmlNewPatParserContext
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - memset
    - ERROR
    - xmlMalloc
    linkageType: ''
    returnType: xmlPatParserContextPtr
    signature: 'static xmlPatParserContextPtr xmlNewPatParserContext(const xmlChar
      *pattern, xmlDictPtr dict, const xmlChar **namespaces) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreePatternInternal
      Src: /src/libxml2/pattern.c:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xmlPattern*
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: xmlFreePatternList
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlFreePatternInternal
    linkageType: ''
    returnType: void
    signature: 'void xmlFreePatternList(xmlPattern *comp) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/pattern.c:329,1
    - Dst: xmlRealloc
      Src: /src/libxml2/pattern.c:333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xmlPatternPtr
    constantsTouched: []
    func_position:
      end: 340
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 340
    functionName: xmlPatternGrow
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlPatternGrow(xmlPatternPtr comp) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlScanName
      Src: /src/libxml2/pattern.c:719,1
    - Dst: xmlStrndup
      Src: /src/libxml2/pattern.c:725,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/pattern.c:723,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlPatParserContextPtr
    constantsTouched: []
    func_position:
      end: 730
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 730
    functionName: xmlPatScanNCName
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - xmlScanName
    - xmlStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlPatScanNCName(xmlPatParserContextPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlStreamPushInternal
      Src: /src/libxml2/pattern.c:1941,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - stream
    - name
    - ns
    argTypes:
    - xmlStreamCtxt*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1942
      start: 1938
    functionDepth: 0
    functionLinenumber: 1938
    functionLinenumberEnd: 1942
    functionName: xmlStreamPush
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlStreamPushInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlStreamPush(xmlStreamCtxt *stream, const xmlChar *name, const
      xmlChar *ns) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/pattern.c:203,1
    - Dst: memset
      Src: /src/libxml2/pattern.c:209,1
    - Dst: ERROR
      Src: /src/libxml2/pattern.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 213
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 213
    functionName: xmlNewPattern
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - memset
    - ERROR
    - xmlMalloc
    linkageType: ''
    returnType: xmlPatternPtr
    signature: 'static xmlPatternPtr xmlNewPattern(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeStreamComp
      Src: /src/libxml2/pattern.c:233,1
    - Dst: xmlFree
      Src: /src/libxml2/pattern.c:235,1
    - Dst: xmlFree
      Src: /src/libxml2/pattern.c:243,1
    - Dst: xmlFree
      Src: /src/libxml2/pattern.c:241,1
    - Dst: xmlFree
      Src: /src/libxml2/pattern.c:246,1
    - Dst: xmlDictFree
      Src: /src/libxml2/pattern.c:249,1
    - Dst: memset
      Src: /src/libxml2/pattern.c:251,1
    - Dst: xmlFree
      Src: /src/libxml2/pattern.c:252,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xmlPatternPtr
    constantsTouched: []
    func_position:
      end: 253
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 253
    functionName: xmlFreePatternInternal
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlDictFree
    - xmlFreeStreamComp
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreePatternInternal(xmlPatternPtr comp) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlScanName
      Src: /src/libxml2/pattern.c:693,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/pattern.c:697,1
    - Dst: xmlStrndup
      Src: /src/libxml2/pattern.c:699,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlPatParserContextPtr
    constantsTouched: []
    func_position:
      end: 702
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 702
    functionName: xmlPatScanName
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - xmlScanName
    - xmlStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlPatScanName(xmlPatParserContextPtr ctxt) '
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: xmlStreamCtxtAddState
      Src: /src/libxml2/pattern.c:1651,1
    - Dst: xmlStreamCtxtAddState
      Src: /src/libxml2/pattern.c:1791,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:1783,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:1778,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:1782,1
    - Dst: XML_STREAM_XS_IDC
      Src: /src/libxml2/pattern.c:1835,1
    - Dst: XML_STREAM_XS_IDC
      Src: /src/libxml2/pattern.c:1855,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:1884,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:1888,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:1889,1
    - Dst: xmlStreamCtxtAddState
      Src: /src/libxml2/pattern.c:1897,1
    CyclomaticComplexity: 98
    EdgeCount: 98
    ICount: 211
    argCount: 4
    argNames:
    - stream
    - name
    - ns
    - nodeType
    argTypes:
    - xmlStreamCtxtPtr
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1922
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1922
    functionName: xmlStreamPushInternal
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlStreamCtxtAddState
    - xmlStrEqual
    - XML_STREAM_XS_IDC
    linkageType: ''
    returnType: int
    signature: "static int xmlStreamPushInternal(xmlStreamCtxtPtr stream,\t\t const
      xmlChar *name, const xmlChar *ns,\t\t int nodeType) "
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - stream
    argTypes:
    - xmlStreamCtxt*
    constantsTouched: []
    func_position:
      end: 2033
      start: 1999
    functionDepth: 0
    functionLinenumber: 1999
    functionLinenumberEnd: 2033
    functionName: xmlStreamPop
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlStreamPop(xmlStreamCtxt *stream) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xmlPattern*
    constantsTouched: []
    func_position:
      end: 2335
      start: 2320
    functionDepth: 0
    functionLinenumber: 2320
    functionLinenumberEnd: 2335
    functionName: xmlPatternMinDepth
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlPatternMinDepth(xmlPattern *comp) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/pattern.c:435,1
    - Dst: xmlRealloc
      Src: /src/libxml2/pattern.c:439,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - states
    - step
    - node
    argTypes:
    - xmlStepStates*
    - int
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 448
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 448
    functionName: xmlPatPushState
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlPatPushState(xmlStepStates *states, int step, xmlNodePtr
      node) '
  - BBCount: 67
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:486,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:529,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:496,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:537,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:514,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:553,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:562,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:588,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:595,1
    - Dst: xmlPatPushState
      Src: /src/libxml2/pattern.c:608,1
    - Dst: xmlPatPushState
      Src: /src/libxml2/pattern.c:610,1
    - Dst: xmlFree
      Src: /src/libxml2/pattern.c:642,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/pattern.c:621,1
    - Dst: xmlFree
      Src: /src/libxml2/pattern.c:634,1
    CyclomaticComplexity: 118
    EdgeCount: 118
    ICount: 131
    argCount: 2
    argNames:
    - comp
    - node
    argTypes:
    - xmlPatternPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 649
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 649
    functionName: xmlPatMatch
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrEqual
    - xmlPatPushState
    linkageType: ''
    returnType: int
    signature: 'static int xmlPatMatch(xmlPatternPtr comp, xmlNodePtr node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/pattern.c:1581,1
    - Dst: ERROR
      Src: /src/libxml2/pattern.c:1584,1
    - Dst: xmlRealloc
      Src: /src/libxml2/pattern.c:1588,1
    - Dst: ERROR
      Src: /src/libxml2/pattern.c:1590,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 3
    argNames:
    - comp
    - idx
    - level
    argTypes:
    - xmlStreamCtxtPtr
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1600
      start: 1567
    functionDepth: 0
    functionLinenumber: 1567
    functionLinenumberEnd: 1600
    functionName: xmlStreamCtxtAddState
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - ERROR
    linkageType: ''
    returnType: int
    signature: 'static int xmlStreamCtxtAddState(xmlStreamCtxtPtr comp, int idx, int
      level) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlStreamPushInternal
      Src: /src/libxml2/pattern.c:1990,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - stream
    - name
    - ns
    argTypes:
    - xmlStreamCtxt*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1991
      start: 1987
    functionDepth: 0
    functionLinenumber: 1987
    functionLinenumberEnd: 1991
    functionName: xmlStreamPushAttr
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlStreamPushInternal
    linkageType: ''
    returnType: int
    signature: "int xmlStreamPushAttr(xmlStreamCtxt *stream,\t\t const xmlChar *name,
      const xmlChar *ns) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlPatMatch
      Src: /src/libxml2/pattern.c:2225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - comp
    - node
    argTypes:
    - xmlPattern*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2231
      start: 2216
    functionDepth: 0
    functionLinenumber: 2216
    functionLinenumberEnd: 2231
    functionName: xmlPatternMatch
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlPatMatch
    linkageType: ''
    returnType: int
    signature: 'int xmlPatternMatch(xmlPattern *comp, xmlNode *node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xmlPattern*
    constantsTouched: []
    func_position:
      end: 2311
      start: 2295
    functionDepth: 0
    functionLinenumber: 2295
    functionLinenumberEnd: 2311
    functionName: xmlPatternMaxDepth
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlPatternMaxDepth(xmlPattern *comp) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlPatternGrow
      Src: /src/libxml2/pattern.c:395,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xmlPatternPtr
    constantsTouched: []
    func_position:
      end: 421
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 421
    functionName: xmlReversePattern
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlPatternGrow
    linkageType: ''
    returnType: int
    signature: 'static int xmlReversePattern(xmlPatternPtr comp) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:1154,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/pattern.c:1182,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:1169,1
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:1174,1
    - Dst: PEEKPREV
      Src: /src/libxml2/pattern.c:1182,1
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:1186,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:1191,1
    - Dst: xmlCompileStepPattern
      Src: /src/libxml2/pattern.c:1202,1
    - Dst: PUSH
      Src: /src/libxml2/pattern.c:1208,1
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:1215,1
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:1226,1
    - Dst: ERROR5
      Src: /src/libxml2/pattern.c:1237,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 38
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlPatParserContextPtr
    constantsTouched: []
    func_position:
      end: 1239
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1239
    functionName: xmlCompileIDCXPathPath
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - PEEKPREV
    - PUSH
    - IS_BLANK_CH
    - xmlCompileStepPattern
    - ERROR5
    linkageType: ''
    returnType: void
    signature: 'static void xmlCompileIDCXPathPath(xmlPatParserContextPtr ctxt) '
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewStreamComp
      Src: /src/libxml2/pattern.c:1359,1
    - Dst: xmlDictReference
      Src: /src/libxml2/pattern.c:1373,1
    - Dst: xmlStreamCompAddStep
      Src: /src/libxml2/pattern.c:1391,1
    - Dst: xmlStreamCompAddStep
      Src: /src/libxml2/pattern.c:1401,1
    - Dst: xmlNewStreamComp
      Src: /src/libxml2/pattern.c:1368,1
    - Dst: xmlStreamCompAddStep
      Src: /src/libxml2/pattern.c:1427,1
    - Dst: xmlStreamCompAddStep
      Src: /src/libxml2/pattern.c:1450,1
    - Dst: xmlStreamCompAddStep
      Src: /src/libxml2/pattern.c:1459,1
    - Dst: xmlStreamCompAddStep
      Src: /src/libxml2/pattern.c:1467,1
    - Dst: xmlFreeStreamComp
      Src: /src/libxml2/pattern.c:1511,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 107
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xmlPatternPtr
    constantsTouched: []
    func_position:
      end: 1513
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1513
    functionName: xmlStreamCompile
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlStreamCompAddStep
    - xmlDictReference
    - xmlNewStreamComp
    - xmlFreeStreamComp
    linkageType: ''
    returnType: int
    signature: 'static int xmlStreamCompile(xmlPatternPtr comp) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlPatternCompileSafe
      Src: /src/libxml2/pattern.c:2205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 4
    argNames:
    - pattern
    - dict
    - flags
    - namespaces
    argTypes:
    - xmlChar*
    - xmlDict*
    - int
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 2207
      start: 2201
    functionDepth: 0
    functionLinenumber: 2201
    functionLinenumberEnd: 2207
    functionName: xmlPatterncompile
    functionSourceFile: /src/libxml2/pattern.c
    functionUses: []
    functionsReached:
    - xmlPatternCompileSafe
    linkageType: ''
    returnType: xmlPattern*
    signature: 'xmlPattern *xmlPatterncompile(const xmlChar *pattern, xmlDict *dict,
      int flags, const xmlChar **namespaces) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/list.c:499,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - l
    - data
    argTypes:
    - xmlList*
    - void*
    constantsTouched: []
    func_position:
      end: 508
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 508
    functionName: xmlListPushFront
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'int xmlListPushFront(xmlList *l, void *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - lk
    argTypes:
    - xmlLink*
    constantsTouched: []
    func_position:
      end: 549
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 549
    functionName: xmlLinkGetData
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'void *xmlLinkGetData(xmlLink *lk) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlListEmpty
      Src: /src/libxml2/list.c:587,1
    - Dst: xmlListDup
      Src: /src/libxml2/list.c:596,1
    - Dst: xmlListDelete
      Src: /src/libxml2/list.c:601,1
    - Dst: xmlListClear
      Src: /src/libxml2/list.c:599,1
    - Dst: xmlListMerge
      Src: /src/libxml2/list.c:600,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - l
    argTypes:
    - xmlList*
    constantsTouched: []
    func_position:
      end: 602
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 602
    functionName: xmlListSort
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlListEmpty
    - xmlListDup
    - xmlListDelete
    - xmlListClear
    - xmlListMerge
    linkageType: ''
    returnType: void
    signature: 'void xmlListSort(xmlList *l) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/list.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - l
    - lk
    argTypes:
    - xmlListPtr
    - xmlLinkPtr
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: xmlLinkDeallocator
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlLinkDeallocator(xmlListPtr l, xmlLinkPtr lk) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - xmlList*
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 410
    functionName: xmlListEmpty
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlListEmpty(xmlList *l) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlListEmpty
      Src: /src/libxml2/list.c:479,1
    - Dst: xmlLinkDeallocator
      Src: /src/libxml2/list.c:480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - l
    argTypes:
    - xmlList*
    constantsTouched: []
    func_position:
      end: 481
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 481
    functionName: xmlListPopBack
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlListEmpty
    - xmlLinkDeallocator
    linkageType: ''
    returnType: void
    signature: 'void xmlListPopBack(xmlList *l) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/list.c:526,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - l
    - data
    argTypes:
    - xmlList*
    - void*
    constantsTouched: []
    func_position:
      end: 535
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 535
    functionName: xmlListPushBack
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'int xmlListPushBack(xmlList *l, void *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - l
    argTypes:
    - xmlList*
    constantsTouched: []
    func_position:
      end: 573
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 573
    functionName: xmlListReverse
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlListReverse(xmlList *l) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/list.c:177,1
    - Dst: memset
      Src: /src/libxml2/list.c:181,1
    - Dst: xmlMalloc
      Src: /src/libxml2/list.c:184,1
    - Dst: xmlFree
      Src: /src/libxml2/list.c:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - deallocator
    - compare
    argTypes:
    - xmlListDeallocator
    - xmlListDataCompare
    constantsTouched: []
    func_position:
      end: 202
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 202
    functionName: xmlListCreate
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlList*
    signature: 'xmlList *xmlListCreate(xmlListDeallocator deallocator, xmlListDataCompare
      compare) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlListLinkReverseSearch
      Src: /src/libxml2/list.c:349,1
    - Dst: xmlLinkDeallocator
      Src: /src/libxml2/list.c:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - l
    - data
    argTypes:
    - xmlList*
    - void*
    constantsTouched: []
    func_position:
      end: 355
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 355
    functionName: xmlListRemoveLast
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlLinkDeallocator
    - xmlListLinkReverseSearch
    linkageType: ''
    returnType: int
    signature: 'int xmlListRemoveLast(xmlList *l, void *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: walker
      Src: /src/libxml2/list.c:639,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 3
    argNames:
    - l
    - walker
    - user
    argTypes:
    - xmlList*
    - xmlListWalker
    - void*
    constantsTouched: []
    func_position:
      end: 642
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 642
    functionName: xmlListReverseWalk
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - walker
    linkageType: ''
    returnType: void
    signature: 'void xmlListReverseWalk(xmlList *l, xmlListWalker walker, void *user) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlListCopy
      Src: /src/libxml2/list.c:654,1
    - Dst: xmlListClear
      Src: /src/libxml2/list.c:655,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - l1
    - l2
    argTypes:
    - xmlList*
    - xmlList*
    constantsTouched: []
    func_position:
      end: 656
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 656
    functionName: xmlListMerge
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlListClear
    - xmlListCopy
    linkageType: ''
    returnType: void
    signature: 'void xmlListMerge(xmlList *l1, xmlList *l2) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlListHigherSearch
      Src: /src/libxml2/list.c:156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - l
    - data
    argTypes:
    - xmlListPtr
    - void*
    constantsTouched: []
    func_position:
      end: 164
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 164
    functionName: xmlListLinkReverseSearch
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlListHigherSearch
    linkageType: ''
    returnType: xmlLinkPtr
    signature: 'static xmlLinkPtr xmlListLinkReverseSearch(xmlListPtr l, void *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: walker
      Src: /src/libxml2/list.c:619,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 3
    argNames:
    - l
    - walker
    - user
    argTypes:
    - xmlList*
    - xmlListWalker
    - void*
    constantsTouched: []
    func_position:
      end: 622
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 622
    functionName: xmlListWalk
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - walker
    linkageType: ''
    returnType: void
    signature: 'void xmlListWalk(xmlList *l, xmlListWalker walker, void *user) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - l
    - data
    argTypes:
    - xmlListPtr
    - void*
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: xmlListHigherSearch
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlLinkPtr
    signature: 'static xmlLinkPtr xmlListHigherSearch(xmlListPtr l, void *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlListLowerSearch
      Src: /src/libxml2/list.c:256,1
    - Dst: xmlMalloc
      Src: /src/libxml2/list.c:258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - l
    - data
    argTypes:
    - xmlList*
    - void*
    constantsTouched: []
    func_position:
      end: 268
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 268
    functionName: xmlListInsert
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlMalloc
    - xmlListLowerSearch
    linkageType: ''
    returnType: int
    signature: 'int xmlListInsert(xmlList *l, void *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - xmlList*
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: xmlListFront
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlLink*
    signature: 'xmlLink *xmlListFront(xmlList *l) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlListRemoveFirst
      Src: /src/libxml2/list.c:372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 2
    argNames:
    - l
    - data
    argTypes:
    - xmlList*
    - void*
    constantsTouched: []
    func_position:
      end: 375
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 375
    functionName: xmlListRemoveAll
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlListRemoveFirst
    linkageType: ''
    returnType: int
    signature: 'int xmlListRemoveAll(xmlList *l, void *data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlListCreate
      Src: /src/libxml2/list.c:677,1
    - Dst: xmlListCopy
      Src: /src/libxml2/list.c:680,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - old
    argTypes:
    - xmlList*
    constantsTouched: []
    func_position:
      end: 683
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 683
    functionName: xmlListDup
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlListCreate
    - xmlListCopy
    linkageType: ''
    returnType: xmlList*
    signature: 'xmlList *xmlListDup(xmlList *old) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlListInsert
      Src: /src/libxml2/list.c:701,1
    - Dst: xmlListDelete
      Src: /src/libxml2/list.c:702,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - cur
    - old
    argTypes:
    - xmlList*
    - xmlList*
    constantsTouched: []
    func_position:
      end: 707
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 707
    functionName: xmlListCopy
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlListDelete
    - xmlListInsert
    linkageType: ''
    returnType: int
    signature: 'int xmlListCopy(xmlList *cur, xmlList *old) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - l
    - data
    argTypes:
    - xmlListPtr
    - void*
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: xmlListLowerSearch
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlLinkPtr
    signature: 'static xmlLinkPtr xmlListLowerSearch(xmlListPtr l, void *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlListLinkReverseSearch
      Src: /src/libxml2/list.c:236,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - l
    - data
    argTypes:
    - xmlList*
    - void*
    constantsTouched: []
    func_position:
      end: 240
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 240
    functionName: xmlListReverseSearch
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlListLinkReverseSearch
    linkageType: ''
    returnType: void*
    signature: 'void *xmlListReverseSearch(xmlList *l, void *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlListLinkSearch
      Src: /src/libxml2/list.c:326,1
    - Dst: xmlLinkDeallocator
      Src: /src/libxml2/list.c:328,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - l
    - data
    argTypes:
    - xmlList*
    - void*
    constantsTouched: []
    func_position:
      end: 332
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 332
    functionName: xmlListRemoveFirst
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlLinkDeallocator
    - xmlListLinkSearch
    linkageType: ''
    returnType: int
    signature: 'int xmlListRemoveFirst(xmlList *l, void *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlLinkDeallocator
      Src: /src/libxml2/list.c:393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - l
    argTypes:
    - xmlList*
    constantsTouched: []
    func_position:
      end: 396
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 396
    functionName: xmlListClear
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlLinkDeallocator
    linkageType: ''
    returnType: void
    signature: 'void xmlListClear(xmlList *l) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlListEmpty
      Src: /src/libxml2/list.c:467,1
    - Dst: xmlLinkDeallocator
      Src: /src/libxml2/list.c:468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - l
    argTypes:
    - xmlList*
    constantsTouched: []
    func_position:
      end: 469
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 469
    functionName: xmlListPopFront
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlListEmpty
    - xmlLinkDeallocator
    linkageType: ''
    returnType: void
    signature: 'void xmlListPopFront(xmlList *l) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlListLowerSearch
      Src: /src/libxml2/list.c:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - l
    - data
    argTypes:
    - xmlListPtr
    - void*
    constantsTouched: []
    func_position:
      end: 141
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 141
    functionName: xmlListLinkSearch
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlListLowerSearch
    linkageType: ''
    returnType: xmlLinkPtr
    signature: 'static xmlLinkPtr xmlListLinkSearch(xmlListPtr l, void *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 2
    argNames:
    - data0
    - data1
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: xmlLinkCompare
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlLinkCompare(const void *data0, const void *data1) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlListLinkSearch
      Src: /src/libxml2/list.c:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - l
    - data
    argTypes:
    - xmlList*
    - void*
    constantsTouched: []
    func_position:
      end: 221
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 221
    functionName: xmlListSearch
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlListLinkSearch
    linkageType: ''
    returnType: void*
    signature: 'void *xmlListSearch(xmlList *l, void *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlListHigherSearch
      Src: /src/libxml2/list.c:283,1
    - Dst: xmlMalloc
      Src: /src/libxml2/list.c:285,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - l
    - data
    argTypes:
    - xmlList*
    - void*
    constantsTouched: []
    func_position:
      end: 294
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 294
    functionName: xmlListAppend
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlListHigherSearch
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'int xmlListAppend(xmlList *l, void *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlListClear
      Src: /src/libxml2/list.c:306,1
    - Dst: xmlFree
      Src: /src/libxml2/list.c:307,1
    - Dst: xmlFree
      Src: /src/libxml2/list.c:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - l
    argTypes:
    - xmlList*
    constantsTouched: []
    func_position:
      end: 309
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 309
    functionName: xmlListDelete
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlListClear
    linkageType: ''
    returnType: void
    signature: 'void xmlListDelete(xmlList *l) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - xmlList*
    constantsTouched: []
    func_position:
      end: 438
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 438
    functionName: xmlListEnd
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlLink*
    signature: 'xmlLink *xmlListEnd(xmlList *l) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - l
    argTypes:
    - xmlList*
    constantsTouched: []
    func_position:
      end: 457
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 457
    functionName: xmlListSize
    functionSourceFile: /src/libxml2/list.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlListSize(xmlList *l) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: xmlNanoHTTPInit
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlNanoHTTPInit(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: xmlNanoHTTPClose
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlNanoHTTPClose(void *ctx ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - contentType
    argTypes:
    - char*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: xmlNanoHTTPFetch
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlNanoHTTPFetch(const char *URL ATTRIBUTE_UNUSED, const char
      *filename ATTRIBUTE_UNUSED, char **contentType) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: xmlNanoHTTPAuthHeader
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlNanoHTTPAuthHeader(void *ctx ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 3
    argCount: 6
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - contentType
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - char*
    - char*
    - char**
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: xmlNanoHTTPMethod
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'void *xmlNanoHTTPMethod(const char *URL ATTRIBUTE_UNUSED, const char
      *method ATTRIBUTE_UNUSED, const char *input ATTRIBUTE_UNUSED, char **contentType,
      const char *headers ATTRIBUTE_UNUSED, int ilen ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: xmlNanoHTTPReturnCode
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlNanoHTTPReturnCode(void *ctx ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: xmlIOHTTPMatch
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlIOHTTPMatch(const char *filename ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: xmlNanoHTTPMimeType
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlNanoHTTPMimeType(void *ctx ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: xmlNanoHTTPSave
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlNanoHTTPSave(void *ctxt ATTRIBUTE_UNUSED, const char *filename
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: xmlIOHTTPOpenW
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'void *xmlIOHTTPOpenW(const char *post_uri ATTRIBUTE_UNUSED, int compression
      ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - contentType
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: xmlNanoHTTPOpen
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'void *xmlNanoHTTPOpen(const char *URL ATTRIBUTE_UNUSED, char **contentType) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: xmlNanoHTTPRead
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlNanoHTTPRead(void *ctx ATTRIBUTE_UNUSED, void *dest ATTRIBUTE_UNUSED,
      int len ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: xmlNanoHTTPEncoding
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlNanoHTTPEncoding(void *ctx ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 5
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - contentType
    - redir
    argTypes:
    - char*
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: xmlNanoHTTPOpenRedir
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'void *xmlNanoHTTPOpenRedir(const char *URL ATTRIBUTE_UNUSED, char
      **contentType, char **redir) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: xmlNanoHTTPScanProxy
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlNanoHTTPScanProxy(const char *URL ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: xmlNanoHTTPRedir
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlNanoHTTPRedir(void *ctx ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: xmlIOHTTPOpen
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'void *xmlIOHTTPOpen(const char *filename ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: xmlIOHTTPClose
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlIOHTTPClose (void *context ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegisterDefaultOutputCallbacks
      Src: /src/libxml2/nanohttp.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: xmlRegisterHTTPPostCallbacks
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached:
    - xmlRegisterDefaultOutputCallbacks
    linkageType: ''
    returnType: void
    signature: 'void xmlRegisterHTTPPostCallbacks(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: xmlNanoHTTPCleanup
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlNanoHTTPCleanup(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 5
    argCount: 7
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - contentType
    - redir
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - char*
    - char*
    - char**
    - char**
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 113
    functionName: xmlNanoHTTPMethodRedir
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'void *xmlNanoHTTPMethodRedir(const char *URL ATTRIBUTE_UNUSED, const
      char *method ATTRIBUTE_UNUSED, const char *input ATTRIBUTE_UNUSED, char **contentType,
      char **redir, const char *headers ATTRIBUTE_UNUSED, int ilen ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: xmlNanoHTTPContentLength
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlNanoHTTPContentLength(void *ctx ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 283
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: xmlIOHTTPRead
    functionSourceFile: /src/libxml2/nanohttp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlIOHTTPRead(void *context ATTRIBUTE_UNUSED, char *buffer ATTRIBUTE_UNUSED,
      int len ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxml2/testdso.c:9,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 11
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 11
    functionName: hello_world
    functionSourceFile: /src/libxml2/testdso.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: 'int hello_world(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/shell.c:523,1
    - Dst: xmlDebugDumpAttr
      Src: /src/libxml2/shell.c:531,1
    - Dst: xmlDebugDumpDocumentHead
      Src: /src/libxml2/shell.c:529,1
    - Dst: xmlDebugDumpOneNode
      Src: /src/libxml2/shell.c:533,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - node
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmllintShellCtxtPtr
    - char*
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 537
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 537
    functionName: xmllintShellDir
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - xmlDebugDumpOneNode
    - xmlDebugDumpAttr
    - fprintf
    - xmlDebugDumpDocumentHead
    linkageType: ''
    returnType: int
    signature: 'static int xmllintShellDir(xmllintShellCtxtPtr ctxt ATTRIBUTE_UNUSED,
      char *arg ATTRIBUTE_UNUSED, xmlNodePtr node, xmlNodePtr node2 ATTRIBUTE_UNUSED) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/shell.c:560,1
    - Dst: xmlParseInNodeContext
      Src: /src/libxml2/shell.c:568,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/shell.c:571,1
    - Dst: strlen
      Src: /src/libxml2/shell.c:568,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:564,1
    - Dst: xmlAddChildList
      Src: /src/libxml2/shell.c:575,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:577,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - value
    - node
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmllintShellCtxtPtr
    - char*
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 580
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 580
    functionName: xmllintShellSetContent
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - xmlParseInNodeContext
    - xmlAddChildList
    - strlen
    - fprintf
    - xmlFreeNodeList
    linkageType: ''
    returnType: int
    signature: 'static int xmllintShellSetContent(xmllintShellCtxtPtr ctxt ATTRIBUTE_UNUSED,
      char *value, xmlNodePtr node, xmlNodePtr node2 ATTRIBUTE_UNUSED) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/shell.c:310,1
    - Dst: xmlFree
      Src: /src/libxml2/shell.c:320,1
    - Dst: xmlNodeGetBase
      Src: /src/libxml2/shell.c:314,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:317,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - node
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmllintShellCtxtPtr
    - char*
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 323
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 323
    functionName: xmllintShellBase
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - xmlFree
    - fprintf
    - xmlNodeGetBase
    linkageType: ''
    returnType: int
    signature: 'static int xmllintShellBase(xmllintShellCtxtPtr ctxt, char *arg ATTRIBUTE_UNUSED,
      xmlNodePtr node, xmlNodePtr node2 ATTRIBUTE_UNUSED) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrchr
      Src: /src/libxml2/shell.c:452,1
    - Dst: xmlStrchr
      Src: /src/libxml2/shell.c:453,1
    - Dst: xmlStrchr
      Src: /src/libxml2/shell.c:454,1
    - Dst: xmlStrchr
      Src: /src/libxml2/shell.c:455,1
    - Dst: xmlStrstr
      Src: /src/libxml2/shell.c:460,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:461,1
    - Dst: xmlGetNodePath
      Src: /src/libxml2/shell.c:461,1
    - Dst: xmllintShellList
      Src: /src/libxml2/shell.c:462,1
    - Dst: xmlStrstr
      Src: /src/libxml2/shell.c:465,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:466,1
    - Dst: xmllintShellList
      Src: /src/libxml2/shell.c:467,1
    - Dst: xmlGetNodePath
      Src: /src/libxml2/shell.c:466,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 53
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - arg
    - node
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmllintShellCtxtPtr
    - char*
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 503
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 503
    functionName: xmllintShellGrep
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - xmlStrstr
    - xmlGetNodePath
    - xmlStrchr
    - fprintf
    - xmllintShellList
    linkageType: ''
    returnType: int
    signature: 'static int xmllintShellGrep(xmllintShellCtxtPtr ctxt ATTRIBUTE_UNUSED,
      char *arg, xmlNodePtr node, xmlNodePtr node2 ATTRIBUTE_UNUSED) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/shell.c:660,1
    - Dst: htmlDocDump
      Src: /src/libxml2/shell.c:666,1
    - Dst: xmlElemDump
      Src: /src/libxml2/shell.c:673,1
    - Dst: htmlNodeDumpFile
      Src: /src/libxml2/shell.c:668,1
    - Dst: xmlDocDump
      Src: /src/libxml2/shell.c:671,1
    - Dst: xmlDocDump
      Src: /src/libxml2/shell.c:677,1
    - Dst: xmlElemDump
      Src: /src/libxml2/shell.c:679,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:681,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - node
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmllintShellCtxtPtr
    - char*
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 683
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 683
    functionName: xmllintShellCat
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - htmlNodeDumpFile
    - xmlElemDump
    - htmlDocDump
    - xmlDocDump
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int xmllintShellCat(xmllintShellCtxtPtr ctxt, char *arg ATTRIBUTE_UNUSED,
      xmlNodePtr node, xmlNodePtr node2 ATTRIBUTE_UNUSED) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libxml2/shell.c:870,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/shell.c:884,1
    - Dst: xmlParseDTD
      Src: /src/libxml2/shell.c:880,1
    - Dst: xmlValidateDocument
      Src: /src/libxml2/shell.c:876,1
    - Dst: xmlValidateDtd
      Src: /src/libxml2/shell.c:882,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - ctxt
    - dtd
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmllintShellCtxtPtr
    - char*
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 888
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 888
    functionName: xmllintShellValidate
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - xmlParseDTD
    - xmlValidateDocument
    - memset
    - xmlValidateDtd
    - xmlFreeDtd
    linkageType: ''
    returnType: int
    signature: 'static int xmllintShellValidate(xmllintShellCtxtPtr ctxt, char *dtd,
      xmlNodePtr node ATTRIBUTE_UNUSED, xmlNodePtr node2 ATTRIBUTE_UNUSED) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGNewParserCtxt
      Src: /src/libxml2/shell.c:615,1
    - Dst: xmlRelaxNGSetParserErrors
      Src: /src/libxml2/shell.c:616,1
    - Dst: xmlRelaxNGFreeParserCtxt
      Src: /src/libxml2/shell.c:618,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:620,1
    - Dst: xmlRelaxNGParse
      Src: /src/libxml2/shell.c:617,1
    - Dst: xmlRelaxNGNewValidCtxt
      Src: /src/libxml2/shell.c:624,1
    - Dst: xmlRelaxNGSetValidErrors
      Src: /src/libxml2/shell.c:625,1
    - Dst: xmlRelaxNGValidateDoc
      Src: /src/libxml2/shell.c:626,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:628,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:630,1
    - Dst: xmlRelaxNGFreeValidCtxt
      Src: /src/libxml2/shell.c:635,1
    - Dst: xmlRelaxNGFree
      Src: /src/libxml2/shell.c:637,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:632,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - sctxt
    - schemas
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmllintShellCtxtPtr
    - char*
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 639
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 639
    functionName: xmllintShellRNGValidate
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGFreeParserCtxt
    - xmlRelaxNGSetValidErrors
    - xmlRelaxNGFreeValidCtxt
    - xmlRelaxNGNewValidCtxt
    - xmlRelaxNGValidateDoc
    - xmlRelaxNGNewParserCtxt
    - xmlRelaxNGSetParserErrors
    - xmlRelaxNGParse
    - fprintf
    - xmlRelaxNGFree
    linkageType: ''
    returnType: int
    signature: "static int xmllintShellRNGValidate(xmllintShellCtxtPtr sctxt, char
      *schemas, xmlNodePtr node ATTRIBUTE_UNUSED,\t xmlNodePtr node2 ATTRIBUTE_UNUSED) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/shell.c:588,1
    - Dst: va_end
      Src: /src/libxml2/shell.c:590,1
    - Dst: vfprintf
      Src: /src/libxml2/shell.c:589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 591
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 591
    functionName: xmllintShellPrintf
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - va_start
    - vfprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: 'static void xmllintShellPrintf(void *ctx, const char *msg, ...) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrlen
      Src: /src/libxml2/shell.c:93,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 13
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 114
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 114
    functionName: xmllintLsCountNode
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - xmlStrlen
    linkageType: ''
    returnType: int
    signature: 'static int xmllintLsCountNode(xmlNodePtr node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeSetBase
      Src: /src/libxml2/shell.c:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - node
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmllintShellCtxtPtr
    - char*
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 342
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 342
    functionName: xmllintShellSetBase
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - xmlNodeSetBase
    linkageType: ''
    returnType: int
    signature: 'static int xmllintShellSetBase(xmllintShellCtxtPtr ctxt ATTRIBUTE_UNUSED,
      char *arg ATTRIBUTE_UNUSED, xmlNodePtr node, xmlNodePtr node2 ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathRegisterNs
      Src: /src/libxml2/shell.c:422,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxml2/shell.c:424,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 4
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - root
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmllintShellCtxtPtr
    - char*
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 428
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 428
    functionName: xmllintShellRegisterRootNamespaces
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - xmlXPathRegisterNs
    linkageType: ''
    returnType: int
    signature: 'static int xmllintShellRegisterRootNamespaces(xmllintShellCtxtPtr
      ctxt, char *arg ATTRIBUTE_UNUSED, xmlNodePtr root, xmlNodePtr node2 ATTRIBUTE_UNUSED) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveFile
      Src: /src/libxml2/shell.c:761,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:770,1
    - Dst: xmlSaveFile
      Src: /src/libxml2/shell.c:775,1
    - Dst: htmlSaveFile
      Src: /src/libxml2/shell.c:769,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:762,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:776,1
    - Dst: fopen
      Src: /src/libxml2/shell.c:785,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:787,1
    - Dst: xmlElemDump
      Src: /src/libxml2/shell.c:791,1
    - Dst: fclose
      Src: /src/libxml2/shell.c:792,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 4
    argNames:
    - ctxt
    - filename
    - node
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmllintShellCtxtPtr
    - char*
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 796
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 796
    functionName: xmllintShellWrite
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - fclose
    - xmlSaveFile
    - fopen
    - xmlElemDump
    - htmlSaveFile
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int xmllintShellWrite(xmllintShellCtxtPtr ctxt, char *filename,
      xmlNodePtr node, xmlNodePtr node2 ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetNodePath
      Src: /src/libxml2/shell.c:994,1
    - Dst: xmlFree
      Src: /src/libxml2/shell.c:1008,1
    - Dst: snprintf
      Src: /src/libxml2/shell.c:1006,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - buffer
    - node
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmllintShellCtxtPtr
    - char*
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1011
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 1011
    functionName: xmllintShellPwd
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - xmlFree
    - snprintf
    - xmlGetNodePath
    linkageType: ''
    returnType: int
    signature: 'static int xmllintShellPwd(xmllintShellCtxtPtr ctxt ATTRIBUTE_UNUSED,
      char *buffer, xmlNodePtr node, xmlNodePtr node2 ATTRIBUTE_UNUSED) '
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/shell.c:140,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:152,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:181,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:170,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:158,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:173,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:179,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:193,1
    - Dst: xmlDebugDumpString
      Src: /src/libxml2/shell.c:203,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:211,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:137,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:149,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:155,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:177,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:167,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:245,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:239,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:126,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:131,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:134,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:146,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:164,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:186,1
    - Dst: xmllintLsCountNode
      Src: /src/libxml2/shell.c:186,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:219,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:247,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:215,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:143,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:161,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:183,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:192,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:198,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:237,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 57
    argCount: 2
    argNames:
    - output
    - node
    argTypes:
    - FILE*
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 248
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 248
    functionName: xmllintLsOneNode
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - xmlDebugDumpString
    - fprintf
    - xmllintLsCountNode
    linkageType: ''
    returnType: void
    signature: 'static void xmllintLsOneNode(FILE *output, xmlNodePtr node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/shell.c:365,1
    - Dst: xmlStrchr
      Src: /src/libxml2/shell.c:374,1
    - Dst: xmlFree
      Src: /src/libxml2/shell.c:377,1
    - Dst: xmlStrchr
      Src: /src/libxml2/shell.c:384,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:376,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxml2/shell.c:390,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:391,1
    - Dst: xmlFree
      Src: /src/libxml2/shell.c:392,1
    - Dst: xmlFree
      Src: /src/libxml2/shell.c:397,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 4
    argNames:
    - ctxt
    - arg
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmllintShellCtxtPtr
    - char*
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 399
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 399
    functionName: xmllintShellRegisterNamespace
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrdup
    - xmlXPathRegisterNs
    - xmlStrchr
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int xmllintShellRegisterNamespace(xmllintShellCtxtPtr ctxt,
      char *arg, xmlNodePtr node ATTRIBUTE_UNUSED, xmlNodePtr node2 ATTRIBUTE_UNUSED) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/shell.c:269,1
    - Dst: xmllintLsOneNode
      Src: /src/libxml2/shell.c:276,1
    - Dst: xmllintLsOneNode
      Src: /src/libxml2/shell.c:285,1
    - Dst: xmllintLsOneNode
      Src: /src/libxml2/shell.c:281,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - node
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmllintShellCtxtPtr
    - char*
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 289
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 289
    functionName: xmllintShellList
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - xmllintLsOneNode
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int xmllintShellList(xmllintShellCtxtPtr ctxt, char *arg ATTRIBUTE_UNUSED,
      xmlNodePtr node, xmlNodePtr node2 ATTRIBUTE_UNUSED) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: htmlParseFile
      Src: /src/libxml2/shell.c:710,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:712,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/shell.c:724,1
    - Dst: xmlReadFile
      Src: /src/libxml2/shell.c:716,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/shell.c:720,1
    - Dst: xmlFree
      Src: /src/libxml2/shell.c:726,1
    - Dst: xmlXPathNewContext
      Src: /src/libxml2/shell.c:730,1
    - Dst: xmlCanonicPath
      Src: /src/libxml2/shell.c:732,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - ctxt
    - filename
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmllintShellCtxtPtr
    - char*
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 736
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 736
    functionName: xmllintShellLoad
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathNewContext
    - xmlXPathFreeContext
    - htmlParseFile
    - xmlReadFile
    - xmlFreeDoc
    - xmlCanonicPath
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int xmllintShellLoad(xmllintShellCtxtPtr ctxt, char *filename,
      xmlNodePtr node ATTRIBUTE_UNUSED, xmlNodePtr node2 ATTRIBUTE_UNUSED) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/shell.c:919,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:925,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:922,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:924,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 4
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - tree
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmllintShellCtxtPtr
    - char*
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 971
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 971
    functionName: xmllintShellDu
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int xmllintShellDu(xmllintShellCtxtPtr ctxt, char *arg ATTRIBUTE_UNUSED,
      xmlNodePtr tree, xmlNodePtr node2 ATTRIBUTE_UNUSED) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveFile
      Src: /src/libxml2/shell.c:821,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:829,1
    - Dst: xmlSaveFile
      Src: /src/libxml2/shell.c:833,1
    - Dst: htmlSaveFile
      Src: /src/libxml2/shell.c:828,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:822,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:834,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:840,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 4
    argNames:
    - ctxt
    - filename
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmllintShellCtxtPtr
    - char*
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 846
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 846
    functionName: xmllintShellSave
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - htmlSaveFile
    - fprintf
    - xmlSaveFile
    linkageType: ''
    returnType: int
    signature: 'static int xmllintShellSave(xmllintShellCtxtPtr ctxt, char *filename,
      xmlNodePtr node ATTRIBUTE_UNUSED, xmlNodePtr node2 ATTRIBUTE_UNUSED) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/libxml2/shell.c:1027,1
    - Dst: fflush
      Src: /src/libxml2/shell.c:1045,1
    - Dst: add_history
      Src: /src/libxml2/shell.c:1036,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1044,1
    - Dst: readline
      Src: /src/libxml2/shell.c:1031,1
    - Dst: fgets
      Src: /src/libxml2/shell.c:1046,1
    - Dst: strlen
      Src: /src/libxml2/shell.c:1049,1
    - Dst: malloc
      Src: /src/libxml2/shell.c:1050,1
    - Dst: memcpy
      Src: /src/libxml2/shell.c:1052,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - prompt
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1055
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1055
    functionName: xmllintShellReadline
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - malloc
    - memcpy
    - fgets
    - readline
    - add_history
    - strlen
    - fflush
    - fprintf
    - isatty
    linkageType: ''
    returnType: char*
    signature: 'static char *xmllintShellReadline(char *prompt) '
  - BBCount: 100
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libxml2/shell.c:1111,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1181,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1189,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1279,1
    - Dst: xmllintShellRegisterRootNamespaces
      Src: /src/libxml2/shell.c:1295,1
    - Dst: xmllintShellRNGValidate
      Src: /src/libxml2/shell.c:1203,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1202,1
    - Dst: xmlXPathEval
      Src: /src/libxml2/shell.c:1322,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1373,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1392,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1427,1
    - Dst: xmllintShellCat
      Src: /src/libxml2/shell.c:1534,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1496,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1168,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1176,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1281,1
    - Dst: xmllintShellSetContent
      Src: /src/libxml2/shell.c:1282,1
    - Dst: xmllintShellDir
      Src: /src/libxml2/shell.c:1339,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1475,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1533,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1196,1
    - Dst: xmllintShellGrep
      Src: /src/libxml2/shell.c:1216,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1163,1
    - Dst: xmllintShellValidate
      Src: /src/libxml2/shell.c:1197,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1215,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1354,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1379,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1415,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1434,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1440,1
    - Dst: strlen
      Src: /src/libxml2/shell.c:1448,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1262,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1199,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1178,1
    - Dst: xmllintShellLoad
      Src: /src/libxml2/shell.c:1200,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1156,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1160,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1170,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1172,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1492,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/shell.c:1562,1
    - Dst: xmlXPathNewContext
      Src: /src/libxml2/shell.c:1095,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1182,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1297,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1299,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1358,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1419,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/shell.c:1582,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1503,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1266,1
    - Dst: xmlMalloc
      Src: /src/libxml2/shell.c:1085,1
    - Dst: xmlStrdup
      Src: /src/libxml2/shell.c:1091,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1164,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1208,1
    - Dst: xmllintShellRegisterNamespace
      Src: /src/libxml2/shell.c:1289,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1221,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1210,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1311,1
    - Dst: xmllintShellDir
      Src: /src/libxml2/shell.c:1316,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1286,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1232,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1185,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1284,1
    - Dst: xmlXPathDebugDumpObject
      Src: /src/libxml2/shell.c:1304,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1366,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1465,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1557,1
    - Dst: free
      Src: /src/libxml2/shell.c:1588,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1273,1
    - Dst: xmllintShellBase
      Src: /src/libxml2/shell.c:1280,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1254,1
    - Dst: snprintf
      Src: /src/libxml2/shell.c:1103,1
    - Dst: snprintf
      Src: /src/libxml2/shell.c:1109,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1161,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1166,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1311,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/shell.c:1432,1
    - Dst: xmlXPathEval
      Src: /src/libxml2/shell.c:1451,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1470,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/shell.c:1371,1
    - Dst: xmllintShellCat
      Src: /src/libxml2/shell.c:1512,1
    - Dst: xmllintShellReadline
      Src: /src/libxml2/shell.c:1117,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1158,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1169,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1177,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/shell.c:1271,1
    - Dst: xmlXPathEval
      Src: /src/libxml2/shell.c:1303,1
    - Dst: xmllintShellList
      Src: /src/libxml2/shell.c:1318,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1350,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1411,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1455,1
    - Dst: xmlFree
      Src: /src/libxml2/shell.c:1585,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1222,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1258,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1488,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/shell.c:1501,1
    - Dst: snprintf
      Src: /src/libxml2/shell.c:1106,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1171,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1173,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1179,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1186,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1192,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1384,1
    - Dst: xmllintShellPwd
      Src: /src/libxml2/shell.c:1404,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1549,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1541,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1206,1
    - Dst: xmllintShellWrite
      Src: /src/libxml2/shell.c:1213,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1162,1
    - Dst: xmllintShellSave
      Src: /src/libxml2/shell.c:1207,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1309,1
    - Dst: xmllintShellSetBase
      Src: /src/libxml2/shell.c:1310,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1326,1
    - Dst: xmlXPathEval
      Src: /src/libxml2/shell.c:1516,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1564,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1165,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1291,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1217,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/shell.c:1305,1
    - Dst: xmllintShellPwd
      Src: /src/libxml2/shell.c:1383,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1520,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1553,1
    - Dst: free
      Src: /src/libxml2/shell.c:1575,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1545,1
    - Dst: xmlFree
      Src: /src/libxml2/shell.c:1097,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1175,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1250,1
    - Dst: xmlXPathEval
      Src: /src/libxml2/shell.c:1228,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1312,1
    - Dst: xmllintShellList
      Src: /src/libxml2/shell.c:1343,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1480,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1572,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1484,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/shell.c:1294,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1167,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1194,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1362,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1423,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/shell.c:1579,1
    - Dst: xmllintShellPwd
      Src: /src/libxml2/shell.c:1220,1
    - Dst: xmllintShellDu
      Src: /src/libxml2/shell.c:1224,1
    - Dst: xmllintShellDu
      Src: /src/libxml2/shell.c:1244,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1183,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1154,1
    - Dst: xmlXPathEval
      Src: /src/libxml2/shell.c:1388,1
    - Dst: xmlFree
      Src: /src/libxml2/shell.c:1586,1
    - Dst: fprintf
      Src: /src/libxml2/shell.c:1406,1
    - Dst: strcmp
      Src: /src/libxml2/shell.c:1510,1
    CyclomaticComplexity: 133
    EdgeCount: 133
    ICount: 355
    argCount: 3
    argNames:
    - doc
    - filename
    - output
    argTypes:
    - xmlDoc*
    - char*
    - FILE*
    constantsTouched: []
    func_position:
      end: 1589
      start: 1066
    functionDepth: 0
    functionLinenumber: 1066
    functionLinenumberEnd: 1589
    functionName: xmllintShell
    functionSourceFile: /src/libxml2/shell.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmllintShellDu
    - xmlXPathEval
    - free
    - xmlFreeDoc
    - xmllintShellRegisterNamespace
    - xmllintShellGrep
    - xmllintShellList
    - xmlXPathDebugDumpObject
    - xmlXPathNewContext
    - xmllintShellSave
    - xmlStrdup
    - xmllintShellBase
    - xmlXPathFreeObject
    - xmllintShellSetContent
    - snprintf
    - xmlMalloc
    - xmlFree
    - xmllintShellRNGValidate
    - xmllintShellPwd
    - strcmp
    - xmllintShellValidate
    - xmllintShellLoad
    - xmllintShellRegisterRootNamespaces
    - xmllintShellReadline
    - xmllintShellSetBase
    - xmllintShellCat
    - xmlXPathFreeContext
    - xmllintShellWrite
    - xmllintShellDir
    - strlen
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'void xmllintShell(xmlDoc *doc, const char *filename, FILE * output) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSplitQName4
      Src: /src/libxml2/parser.c:2929,1
    - Dst: xmlStrdup
      Src: /src/libxml2/parser.c:2935,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:2938,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/parser.c:2937,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/parser.c:2931,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 3
    argNames:
    - ctxt
    - name
    - prefixOut
    argTypes:
    - xmlParserCtxt*
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 2942
      start: 2924
    functionDepth: 0
    functionLinenumber: 2924
    functionLinenumberEnd: 2942
    functionName: xmlSplitQName
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlSplitQName4
    - xmlFree
    - xmlCtxtErrMemory
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlSplitQName(xmlParserCtxt *ctxt, const xmlChar *name, xmlChar
      **prefixOut) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:3298,1
    - Dst: xmlDictLookupHashed
      Src: /src/libxml2/parser.c:3301,1
    - Dst: xmlParseNCNameComplex
      Src: /src/libxml2/parser.c:3311,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:3305,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 54
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 3312
      start: 3267
    functionDepth: 0
    functionLinenumber: 3267
    functionLinenumberEnd: 3312
    functionName: xmlParseNCName
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlErrMemory
    - xmlParseNCNameComplex
    - xmlFatalErr
    - xmlDictLookupHashed
    linkageType: ''
    returnType: xmlHashedString
    signature: 'static xmlHashedString xmlParseNCName(xmlParserCtxtPtr ctxt) '
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:5451,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:5461,1
    - Dst: xmlParseExternalID
      Src: /src/libxml2/parser.c:5479,1
    - Dst: xmlStrchr
      Src: /src/libxml2/parser.c:5484,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:5481,1
    - Dst: xmlSAX2EntityDecl
      Src: /src/libxml2/parser.c:5526,1
    - Dst: xmlParseName
      Src: /src/libxml2/parser.c:5549,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:5566,1
    - Dst: xmlNewDtd
      Src: /src/libxml2/parser.c:5577,1
    - Dst: xmlSAX2GetEntity
      Src: /src/libxml2/parser.c:5622,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:5424,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5426,1
    - Dst: CMP6
      Src: /src/libxml2/parser.c:5429,1
    - Dst: xmlParseName
      Src: /src/libxml2/parser.c:5449,1
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:5456,1
    - Dst: xmlNewDtd
      Src: /src/libxml2/parser.c:5518,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:5521,1
    - Dst: xmlParseExternalID
      Src: /src/libxml2/parser.c:5530,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:5635,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:5532,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5434,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:5443,1
    - Dst: xmlStrchr
      Src: /src/libxml2/parser.c:5455,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:5485,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:5512,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:5540,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:5570,1
    - Dst: xmlSAX2EntityDecl
      Src: /src/libxml2/parser.c:5584,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:5634,1
    - Dst: xmlValidityError
      Src: /src/libxml2/parser.c:5599,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:5436,1
    - Dst: xmlParseEntityValue
      Src: /src/libxml2/parser.c:5470,1
    - Dst: xmlParseEntityValue
      Src: /src/libxml2/parser.c:5498,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:5508,1
    - Dst: xmlNewDoc
      Src: /src/libxml2/parser.c:5510,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:5536,1
    - Dst: xmlStrchr
      Src: /src/libxml2/parser.c:5535,1
    - Dst: CMP5
      Src: /src/libxml2/parser.c:5543,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5544,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:5546,1
    - Dst: xmlNewDoc
      Src: /src/libxml2/parser.c:5568,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:5593,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:5632,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:5633,1
    - Dst: xmlHaltParser
      Src: /src/libxml2/parser.c:5595,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:5580,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 199
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 5637
      start: 5415
    functionDepth: 0
    functionLinenumber: 5415
    functionLinenumberEnd: 5637
    functionName: xmlParseEntityDecl
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlErrMemory
    - xmlHaltParser
    - xmlNewDoc
    - CMP5
    - xmlNewDtd
    - xmlFatalErrMsgStr
    - xmlValidityError
    - CMP6
    - xmlFree
    - NXT
    - xmlParseName
    - xmlFatalErrMsg
    - xmlSAX2EntityDecl
    - SKIP
    - xmlParseEntityValue
    - xmlParseExternalID
    - xmlFatalErr
    - xmlSAX2GetEntity
    - xmlStrEqual
    - xmlStrchr
    - xmlNsErr
    linkageType: ''
    returnType: void
    signature: 'void xmlParseEntityDecl(xmlParserCtxt *ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseElementChildrenContentDeclPriv
      Src: /src/libxml2/parser.c:6580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ctxt
    - inputchk
    argTypes:
    - xmlParserCtxt*
    - int
    constantsTouched: []
    func_position:
      end: 6581
      start: 6577
    functionDepth: 0
    functionLinenumber: 6577
    functionLinenumberEnd: 6581
    functionName: xmlParseElementChildrenContentDecl
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParseElementChildrenContentDeclPriv
    linkageType: ''
    returnType: xmlElementContent*
    signature: 'xmlElementContent *xmlParseElementChildrenContentDecl(xmlParserCtxt
      *ctxt, int inputchk) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: NXT
      Src: /src/libxml2/parser.c:6647,1
    - Dst: CMP7
      Src: /src/libxml2/parser.c:6652,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:6702,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:6649,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:6657,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:6670,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:6694,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:6681,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:6680,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6704,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:6679,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6730,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:6659,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:6665,1
    - Dst: CMP5
      Src: /src/libxml2/parser.c:6673,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:6674,1
    - Dst: xmlParseElementContentDecl
      Src: /src/libxml2/parser.c:6687,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6733,1
    - Dst: xmlParseName
      Src: /src/libxml2/parser.c:6663,1
    - Dst: xmlValidityError
      Src: /src/libxml2/parser.c:6709,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 69
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 6738
      start: 6641
    functionDepth: 0
    functionLinenumber: 6641
    functionLinenumberEnd: 6738
    functionName: xmlParseElementDecl
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - NXT
    - xmlParseName
    - xmlFatalErrMsg
    - xmlFatalErr
    - xmlParseElementContentDecl
    - SKIP
    - xmlFreeDocElementContent
    - CMP5
    - CMP7
    - xmlValidityError
    linkageType: ''
    returnType: int
    signature: 'int xmlParseElementDecl(xmlParserCtxt *ctxt) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NXT
      Src: /src/libxml2/parser.c:8317,1
    - Dst: xmlParseNameAndCompare
      Src: /src/libxml2/parser.c:8324,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:8318,1
    - Dst: IS_BYTE_CHAR
      Src: /src/libxml2/parser.c:8331,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:8322,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:8332,1
    - Dst: xmlFatalErrMsgStrIntStr
      Src: /src/libxml2/parser.c:8344,1
    - Dst: namePop
      Src: /src/libxml2/parser.c:8356,1
    - Dst: spacePop
      Src: /src/libxml2/parser.c:8357,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - ctxt
    - line
    argTypes:
    - xmlParserCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 8358
      start: 8312
    functionDepth: 0
    functionLinenumber: 8312
    functionLinenumberEnd: 8358
    functionName: xmlParseEndTag1
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - NXT
    - xmlFatalErrMsg
    - xmlFatalErrMsgStrIntStr
    - IS_BYTE_CHAR
    - xmlFatalErr
    - xmlParseNameAndCompare
    - SKIP
    - spacePop
    - namePop
    linkageType: ''
    returnType: void
    signature: 'static void xmlParseEndTag1(xmlParserCtxtPtr ctxt, int line) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: htmlNewParserCtxt
      Src: /src/libxml2/parser.c:12164,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/parser.c:12168,1
    - Dst: xmlCtxtNewInputFromMemory
      Src: /src/libxml2/parser.c:12173,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/parser.c:12181,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:12177,1
    - Dst: xmlCtxtParseContent
      Src: /src/libxml2/parser.c:12183,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:12194,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 5
    argNames:
    - node
    - data
    - datalen
    - options
    - listOut
    argTypes:
    - xmlNode*
    - char*
    - int
    - int
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 12197
      start: 12142
    functionDepth: 0
    functionLinenumber: 12142
    functionLinenumberEnd: 12197
    functionName: xmlParseInNodeContext
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtUseOptions
    - htmlNewParserCtxt
    - xmlCtxtParseContent
    - xmlCtxtNewInputFromMemory
    - xmlFreeParserCtxt
    - xmlNewParserCtxt
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'xmlParserErrors xmlParseInNodeContext(xmlNode *node, const char *data,
      int datalen, int options, xmlNode **listOut) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAXParseEntity
      Src: /src/libxml2/parser.c:12336,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 12337
      start: 12334
    functionDepth: 0
    functionLinenumber: 12334
    functionLinenumberEnd: 12337
    functionName: xmlParseEntity
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlSAXParseEntity
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlParseEntity(const char *filename) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlCurrentChar
      Src: /src/libxml2/parser.c:3232,1
    - Dst: xmlIsNameStartChar
      Src: /src/libxml2/parser.c:3234,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:3242,1
    - Dst: xmlCurrentChar
      Src: /src/libxml2/parser.c:3243,1
    - Dst: xmlIsNameChar
      Src: /src/libxml2/parser.c:3239,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:3246,1
    - Dst: xmlDictLookupHashed
      Src: /src/libxml2/parser.c:3249,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:3251,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 3253
      start: 3214
    functionDepth: 0
    functionLinenumber: 3214
    functionLinenumberEnd: 3253
    functionName: xmlParseNCNameComplex
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - NEXTL
    - xmlFatalErr
    - xmlDictLookupHashed
    - xmlIsNameStartChar
    - xmlErrMemory
    - xmlCurrentChar
    - xmlIsNameChar
    linkageType: ''
    returnType: xmlHashedString
    signature: 'static xmlHashedString xmlParseNCNameComplex(xmlParserCtxtPtr ctxt) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: NXT
      Src: /src/libxml2/parser.c:5333,1
    - Dst: CMP8
      Src: /src/libxml2/parser.c:5337,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5335,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5342,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:5344,1
    - Dst: xmlParseName
      Src: /src/libxml2/parser.c:5349,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:5351,1
    - Dst: xmlStrchr
      Src: /src/libxml2/parser.c:5354,1
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:5355,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:5360,1
    - Dst: xmlParseExternalID
      Src: /src/libxml2/parser.c:5368,1
    - Dst: xmlValidityError
      Src: /src/libxml2/parser.c:5374,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:5385,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:5388,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:5387,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 44
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 5390
      start: 5327
    functionDepth: 0
    functionLinenumber: 5327
    functionLinenumberEnd: 5390
    functionName: xmlParseNotationDecl
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - NXT
    - xmlParseName
    - xmlFatalErrMsg
    - CMP8
    - xmlParseExternalID
    - xmlFatalErr
    - SKIP
    - xmlStrchr
    - xmlValidityError
    - xmlNsErr
    linkageType: ''
    returnType: void
    signature: 'void xmlParseNotationDecl(xmlParserCtxt *ctxt) '
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseName
      Src: /src/libxml2/parser.c:6301,1
    - Dst: xmlParseElementChildrenContentDeclPriv
      Src: /src/libxml2/parser.c:6296,1
    - Dst: xmlSkipBlankCharsPEBalanced
      Src: /src/libxml2/parser.c:6327,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6346,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6356,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6398,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:6417,1
    - Dst: xmlSkipBlankCharsPEBalanced
      Src: /src/libxml2/parser.c:6424,1
    - Dst: xmlNewDocElementContent
      Src: /src/libxml2/parser.c:6445,1
    - Dst: xmlValidityError
      Src: /src/libxml2/parser.c:6473,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:6303,1
    - Dst: xmlSkipBlankCharsPEBalanced
      Src: /src/libxml2/parser.c:6290,1
    - Dst: xmlNewDocElementContent
      Src: /src/libxml2/parser.c:6306,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6355,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6344,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:6353,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:6394,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6396,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6449,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:6326,1
    - Dst: xmlFatalErrMsgInt
      Src: /src/libxml2/parser.c:6340,1
    - Dst: xmlFatalErrMsgInt
      Src: /src/libxml2/parser.c:6381,1
    - Dst: xmlNewDocElementContent
      Src: /src/libxml2/parser.c:6351,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6387,1
    - Dst: xmlNewDocElementContent
      Src: /src/libxml2/parser.c:6392,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6421,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6434,1
    - Dst: xmlParseName
      Src: /src/libxml2/parser.c:6438,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6442,1
    - Dst: xmlFatalErrMsgInt
      Src: /src/libxml2/parser.c:6285,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:6308,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6385,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6419,1
    - Dst: xmlParseElementChildrenContentDeclPriv
      Src: /src/libxml2/parser.c:6430,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:6440,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:6447,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 238
    argCount: 3
    argNames:
    - ctxt
    - openInputNr
    - depth
    argTypes:
    - xmlParserCtxtPtr
    - int
    - int
    constantsTouched: []
    func_position:
      end: 6545
      start: 6276
    functionDepth: 0
    functionLinenumber: 6276
    functionLinenumberEnd: 6545
    functionName: xmlParseElementChildrenContentDeclPriv
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParseName
    - PARSER_STOPPED
    - xmlNewDocElementContent
    - xmlSkipBlankCharsPEBalanced
    - xmlFatalErr
    - xmlParseElementChildrenContentDeclPriv
    - xmlErrMemory
    - xmlFatalErrMsgInt
    - xmlFreeDocElementContent
    - xmlValidityError
    linkageType: ''
    returnType: xmlElementContentPtr
    signature: 'static xmlElementContentPtr xmlParseElementChildrenContentDeclPriv(xmlParserCtxtPtr
      ctxt, int openInputNr, int depth) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:6608,1
    - Dst: xmlParseElementMixedContentDecl
      Src: /src/libxml2/parser.c:6615,1
    - Dst: xmlSkipBlankCharsPEBalanced
      Src: /src/libxml2/parser.c:6613,1
    - Dst: xmlParseElementChildrenContentDeclPriv
      Src: /src/libxml2/parser.c:6618,1
    - Dst: CMP7
      Src: /src/libxml2/parser.c:6614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - ctxt
    - name
    - result
    argTypes:
    - xmlParserCtxt*
    - xmlChar*
    - xmlElementContent**
    constantsTouched: []
    func_position:
      end: 6626
      start: 6597
    functionDepth: 0
    functionLinenumber: 6597
    functionLinenumberEnd: 6626
    functionName: xmlParseElementContentDecl
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParseElementMixedContentDecl
    - xmlSkipBlankCharsPEBalanced
    - xmlParseElementChildrenContentDeclPriv
    - xmlFatalErrMsgStr
    - CMP7
    linkageType: ''
    returnType: int
    signature: 'int xmlParseElementContentDecl(xmlParserCtxt *ctxt, const xmlChar
      *name, xmlElementContent **result) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAXParseDoc
      Src: /src/libxml2/parser.c:12927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 12928
      start: 12925
    functionDepth: 0
    functionLinenumber: 12925
    functionLinenumberEnd: 12928
    functionName: xmlParseDoc
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlSAXParseDoc
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlParseDoc(const xmlChar *cur) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseStringName
      Src: /src/libxml2/parser.c:7554,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:7563,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:7556,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:7562,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 2
    argNames:
    - ctxt
    - str
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 7571
      start: 7540
    functionDepth: 0
    functionLinenumber: 7540
    functionLinenumberEnd: 7571
    functionName: xmlParseStringEntityRef
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParseStringName
    - xmlFatalErrMsg
    - xmlFree
    - xmlFatalErr
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlParseStringEntityRef(xmlParserCtxtPtr ctxt, const
      xmlChar ** str) '
  - BBCount: 80
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrlen
      Src: /src/libxml2/parser.c:8847,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:8856,1
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:8941,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:9016,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/parser.c:9029,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:8788,1
    - Dst: IS_BYTE_CHAR
      Src: /src/libxml2/parser.c:8835,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/parser.c:8874,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:8947,1
    - Dst: XML_INT_TO_PTR
      Src: /src/libxml2/parser.c:8995,1
    - Dst: xmlParserNsPush
      Src: /src/libxml2/parser.c:9045,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:9106,1
    - Dst: xmlParseQNameHashed
      Src: /src/libxml2/parser.c:8792,1
    - Dst: xmlNsWarn
      Src: /src/libxml2/parser.c:8870,1
    - Dst: xmlParserNsPush
      Src: /src/libxml2/parser.c:8964,1
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:9080,1
    - Dst: memset
      Src: /src/libxml2/parser.c:9290,1
    - Dst: xmlParserEntityCheck
      Src: /src/libxml2/parser.c:9043,1
    - Dst: XML_PTR_TO_INT
      Src: /src/libxml2/parser.c:9125,1
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:8909,1
    - Dst: xmlParserNsPush
      Src: /src/libxml2/parser.c:8894,1
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:9335,1
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:9163,1
    - Dst: xmlAttrHashInsertQName
      Src: /src/libxml2/parser.c:9307,1
    - Dst: xmlParseAttribute2
      Src: /src/libxml2/parser.c:8838,1
    - Dst: XML_PTR_TO_INT
      Src: /src/libxml2/parser.c:9329,1
    - Dst: xmlValidityError
      Src: /src/libxml2/parser.c:9266,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:9108,1
    - Dst: xmlDictComputeHash
      Src: /src/libxml2/parser.c:9304,1
    - Dst: xmlErrAttributeDup
      Src: /src/libxml2/parser.c:9310,1
    - Dst: XML_INT_TO_PTR
      Src: /src/libxml2/parser.c:9254,1
    - Dst: memset
      Src: /src/libxml2/parser.c:9116,1
    - Dst: xmlParserNsLookupUri
      Src: /src/libxml2/parser.c:9333,1
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:9206,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:8794,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:8885,1
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:8878,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:8933,1
    - Dst: xmlParserEntityCheck
      Src: /src/libxml2/parser.c:9038,1
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:9232,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:8861,1
    - Dst: xmlNsWarn
      Src: /src/libxml2/parser.c:8956,1
    - Dst: XML_INT_TO_PTR
      Src: /src/libxml2/parser.c:8984,1
    - Dst: xmlParserNsStartElement
      Src: /src/libxml2/parser.c:8787,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:8835,1
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:8865,1
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:8920,1
    - Dst: XML_PTR_TO_INT
      Src: /src/libxml2/parser.c:9328,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:9008,1
    - Dst: xmlParseURISafe
      Src: /src/libxml2/parser.c:8946,1
    - Dst: xmlParserNsLookup
      Src: /src/libxml2/parser.c:9203,1
    - Dst: xmlParserNsLookup
      Src: /src/libxml2/parser.c:9077,1
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:8951,1
    - Dst: xmlDictCombineHash
      Src: /src/libxml2/parser.c:9146,1
    - Dst: XML_INT_TO_PTR
      Src: /src/libxml2/parser.c:9087,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/parser.c:8960,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:9050,1
    - Dst: xmlDictCombineHash
      Src: /src/libxml2/parser.c:9306,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:8834,1
    - Dst: xmlDictLookupHashed
      Src: /src/libxml2/parser.c:8900,1
    - Dst: xmlCtxtGrowAttrs
      Src: /src/libxml2/parser.c:8972,1
    - Dst: xmlAttrHashInsert
      Src: /src/libxml2/parser.c:9147,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:8903,1
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:8927,1
    - Dst: xmlParserEntityCheck
      Src: /src/libxml2/parser.c:9238,1
    - Dst: xmlAttrHashInsert
      Src: /src/libxml2/parser.c:9225,1
    - Dst: XML_PTR_TO_INT
      Src: /src/libxml2/parser.c:9319,1
    - Dst: xmlCtxtGrowAttrs
      Src: /src/libxml2/parser.c:9241,1
    - Dst: xmlParserNsPush
      Src: /src/libxml2/parser.c:9040,1
    - Dst: xmlParseURISafe
      Src: /src/libxml2/parser.c:8860,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:9363,1
    - Dst: xmlErrAttributeDup
      Src: /src/libxml2/parser.c:9160,1
    - Dst: xmlDictCombineHash
      Src: /src/libxml2/parser.c:9223,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/parser.c:9178,1
    - Dst: xmlDictLookupHashed
      Src: /src/libxml2/parser.c:8853,1
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:8887,1
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:8935,1
    - Dst: XML_INT_TO_PTR
      Src: /src/libxml2/parser.c:8997,1
    CyclomaticComplexity: 150
    EdgeCount: 150
    ICount: 454
    argCount: 4
    argNames:
    - ctxt
    - pref
    - URI
    - nbNsPtr
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar**
    - xmlChar**
    - int*
    constantsTouched: []
    func_position:
      end: 9368
      start: 8755
    functionDepth: 0
    functionLinenumber: 8755
    functionLinenumberEnd: 9368
    functionName: xmlParseStartTag2
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - XML_PTR_TO_INT
    - xmlFreeURI
    - xmlParserEntityCheck
    - xmlHashLookup2
    - xmlAttrHashInsertQName
    - xmlStrlen
    - xmlErrMemory
    - xmlParserNsLookup
    - xmlParseURISafe
    - xmlParserNsStartElement
    - xmlDictComputeHash
    - xmlRealloc
    - XML_INT_TO_PTR
    - xmlErrAttributeDup
    - xmlValidityError
    - xmlNsWarn
    - xmlParserNsPush
    - xmlFree
    - xmlFatalErrMsg
    - NXT
    - PARSER_STOPPED
    - IS_BYTE_CHAR
    - memset
    - xmlAttrHashInsert
    - xmlCtxtGrowAttrs
    - xmlFatalErr
    - xmlParserNsLookupUri
    - xmlDictLookupHashed
    - xmlDictCombineHash
    - xmlStrEqual
    - xmlParseQNameHashed
    - xmlParseAttribute2
    - xmlNsErr
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlParseStartTag2(xmlParserCtxtPtr ctxt, const
      xmlChar **pref, const xmlChar **URI, int *nbNsPtr) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:10764,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:10778,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 87
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 10827
      start: 10726
    functionDepth: 0
    functionLinenumber: 10726
    functionLinenumberEnd: 10827
    functionName: xmlParseLookupInternalSubset
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - IS_BLANK_CH
    linkageType: ''
    returnType: int
    signature: 'static int xmlParseLookupInternalSubset(xmlParserCtxtPtr ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewSAXParserCtxt
      Src: /src/libxml2/parser.c:11373,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:11386,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/parser.c:11385,1
    - Dst: xmlNewPushInput
      Src: /src/libxml2/parser.c:11380,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:11382,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:11387,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 5
    argNames:
    - sax
    - user_data
    - chunk
    - size
    - filename
    argTypes:
    - xmlSAXHandler*
    - void*
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 11392
      start: 11367
    functionDepth: 0
    functionLinenumber: 11367
    functionLinenumberEnd: 11392
    functionName: xmlCreatePushParserCtxt
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlNewSAXParserCtxt
    - xmlFreeInputStream
    - xmlNewPushInput
    - xmlCtxtPushInput
    - xmlFreeParserCtxt
    linkageType: ''
    returnType: xmlParserCtxt*
    signature: 'xmlParserCtxt *xmlCreatePushParserCtxt(xmlSAXHandler *sax, void *user_data,
      const char *chunk, int size, const char *filename) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseBalancedChunkMemoryRecover
      Src: /src/libxml2/parser.c:11978,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 6
    argNames:
    - doc
    - sax
    - user_data
    - depth
    - string
    - lst
    argTypes:
    - xmlDoc*
    - xmlSAXHandler*
    - void*
    - int
    - xmlChar*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 11980
      start: 11975
    functionDepth: 0
    functionLinenumber: 11975
    functionLinenumberEnd: 11980
    functionName: xmlParseBalancedChunkMemory
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParseBalancedChunkMemoryRecover
    linkageType: ''
    returnType: int
    signature: 'int xmlParseBalancedChunkMemory(xmlDoc *doc, xmlSAXHandler *sax, void
      *user_data, int depth, const xmlChar *string, xmlNode **lst) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreateDocParserCtxt
      Src: /src/libxml2/parser.c:12894,1
    - Dst: xmlParseDocument
      Src: /src/libxml2/parser.c:12902,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:12911,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/parser.c:12906,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - sax
    - cur
    - recovery
    argTypes:
    - xmlSAXHandler*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 12914
      start: 12885
    functionDepth: 0
    functionLinenumber: 12885
    functionLinenumberEnd: 12914
    functionName: xmlSAXParseDoc
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFreeDoc
    - xmlCreateDocParserCtxt
    - xmlParseDocument
    - xmlFreeParserCtxt
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlSAXParseDoc(xmlSAXHandler *sax, const xmlChar *cur, int
      recovery) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:3199,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:3206,1
    - Dst: xmlParseNameComplex
      Src: /src/libxml2/parser.c:3211,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/parser.c:3202,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 50
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 3212
      start: 3171
    functionDepth: 0
    functionLinenumber: 3171
    functionLinenumberEnd: 3212
    functionName: xmlParseName
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParseNameComplex
    - xmlDictLookup
    - xmlFatalErr
    - xmlErrMemory
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlParseName(xmlParserCtxt *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseAttValueInternal
      Src: /src/libxml2/parser.c:4323,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 4324
      start: 4320
    functionDepth: 0
    functionLinenumber: 4320
    functionLinenumberEnd: 4324
    functionName: xmlParseAttValue
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParseAttValueInternal
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlParseAttValue(xmlParserCtxt *ctxt) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NXT
      Src: /src/libxml2/parser.c:6916,1
    - Dst: xmlParseElementDecl
      Src: /src/libxml2/parser.c:6920,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:6917,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:6921,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:6919,1
    - Dst: xmlParseEntityDecl
      Src: /src/libxml2/parser.c:6922,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:6924,1
    - Dst: xmlParseAttributeListDecl
      Src: /src/libxml2/parser.c:6927,1
    - Dst: xmlParseNotationDecl
      Src: /src/libxml2/parser.c:6930,1
    - Dst: xmlParseComment
      Src: /src/libxml2/parser.c:6933,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:6944,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:6936,1
    - Dst: xmlParsePI
      Src: /src/libxml2/parser.c:6945,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:6941,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 6948
      start: 6912
    functionDepth: 0
    functionLinenumber: 6912
    functionLinenumberEnd: 6948
    functionName: xmlParseMarkupDecl
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParseAttributeListDecl
    - NXT
    - xmlParsePI
    - xmlParseComment
    - xmlFatalErr
    - SKIP
    - xmlParseNotationDecl
    - xmlParseElementDecl
    - xmlParseEntityDecl
    linkageType: ''
    returnType: void
    signature: 'void xmlParseMarkupDecl(xmlParserCtxt *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseEntityRefInternal
      Src: /src/libxml2/parser.c:7504,1
    - Dst: xmlLookupGeneralEntity
      Src: /src/libxml2/parser.c:7508,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 7509
      start: 7497
    functionDepth: 0
    functionLinenumber: 7497
    functionLinenumberEnd: 7509
    functionName: xmlParseEntityRef
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlLookupGeneralEntity
    - xmlParseEntityRefInternal
    linkageType: ''
    returnType: xmlEntity*
    signature: 'xmlEntity *xmlParseEntityRef(xmlParserCtxt *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 6
    argNames:
    - ctxt
    - size
    - name
    - prefix
    - hashValue
    - aindex
    argTypes:
    - xmlParserCtxtPtr
    - unsigned
    - xmlChar*
    - xmlChar*
    - unsigned
    - int
    constantsTouched: []
    func_position:
      end: 8724
      start: 8696
    functionDepth: 0
    functionLinenumber: 8696
    functionLinenumberEnd: 8724
    functionName: xmlAttrHashInsertQName
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlAttrHashInsertQName(xmlParserCtxtPtr ctxt, unsigned
      size, const xmlChar *name, const xmlChar *prefix, unsigned hashValue, int aindex) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewSAXParserCtxt
      Src: /src/libxml2/parser.c:11944,1
    - Dst: xmlParseCtxtExternalEntity
      Src: /src/libxml2/parser.c:11950,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:11952,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 7
    argNames:
    - doc
    - sax
    - user_data
    - depth
    - URL
    - ID
    - list
    argTypes:
    - xmlDoc*
    - xmlSAXHandler*
    - void*
    - int
    - xmlChar*
    - xmlChar*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 11954
      start: 11932
    functionDepth: 0
    functionLinenumber: 11932
    functionLinenumberEnd: 11954
    functionName: xmlParseExternalEntity
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlNewSAXParserCtxt
    - xmlParseCtxtExternalEntity
    - xmlFreeParserCtxt
    linkageType: ''
    returnType: int
    signature: "int xmlParseExternalEntity(xmlDoc *doc, xmlSAXHandler *sax, void *user_data,\t
      int depth, const xmlChar *URL, const xmlChar *ID, xmlNode **list) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:756,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - str
    - len
    argTypes:
    - xmlSBuf*
    - char*
    - unsigned
    constantsTouched: []
    func_position:
      end: 757
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 757
    functionName: xmlSBufAddCString
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlSBufAddString
    linkageType: ''
    returnType: void
    signature: 'static void xmlSBufAddCString(xmlSBuf *buf, const char *str, unsigned
      len) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: areBlanks
      Src: /src/libxml2/parser.c:4527,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 4
    argNames:
    - ctxt
    - buf
    - size
    - isBlank
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 4542
      start: 4510
    functionDepth: 0
    functionLinenumber: 4510
    functionLinenumberEnd: 4542
    functionName: xmlCharacters
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - areBlanks
    linkageType: ''
    returnType: void
    signature: 'static void xmlCharacters(xmlParserCtxtPtr ctxt, const xmlChar *buf,
      int size, int isBlank) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtInitializeLate
      Src: /src/libxml2/parser.c:7038,1
    - Dst: xmlParseTextDecl
      Src: /src/libxml2/parser.c:7043,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:7048,1
    - Dst: xmlCreateIntSubset
      Src: /src/libxml2/parser.c:7054,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:7055,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:7072,1
    - Dst: xmlNewDoc
      Src: /src/libxml2/parser.c:7046,1
    - Dst: CMP5
      Src: /src/libxml2/parser.c:7042,1
    - Dst: xmlParserCheckEOF
      Src: /src/libxml2/parser.c:7065,1
    - Dst: xmlPopPE
      Src: /src/libxml2/parser.c:7069,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:7072,1
    - Dst: xmlParseMarkupDecl
      Src: /src/libxml2/parser.c:7073,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:7070,1
    - Dst: xmlParseConditionalSections
      Src: /src/libxml2/parser.c:7071,1
    - Dst: xmlPopPE
      Src: /src/libxml2/parser.c:7080,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:7062,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:7070,1
    - Dst: xmlDetectEncoding
      Src: /src/libxml2/parser.c:7040,1
    - Dst: xmlParsePERefInternal
      Src: /src/libxml2/parser.c:7075,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:7077,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 3
    argNames:
    - ctxt
    - publicId
    - systemId
    argTypes:
    - xmlParserCtxt*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 7087
      start: 7033
    functionDepth: 0
    functionLinenumber: 7033
    functionLinenumberEnd: 7087
    functionName: xmlParseExternalSubset
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - NXT
    - xmlParserCheckEOF
    - PARSER_STOPPED
    - xmlParseTextDecl
    - xmlPopPE
    - xmlCtxtInitializeLate
    - xmlFatalErr
    - xmlErrMemory
    - xmlParseConditionalSections
    - xmlNewDoc
    - xmlParsePERefInternal
    - xmlDetectEncoding
    - CMP5
    - xmlCreateIntSubset
    - xmlParseMarkupDecl
    linkageType: ''
    returnType: void
    signature: 'void xmlParseExternalSubset(xmlParserCtxt *ctxt, const xmlChar *publicId,
      const xmlChar *systemId) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtReset
      Src: /src/libxml2/parser.c:13065,1
    - Dst: xmlNewPushInput
      Src: /src/libxml2/parser.c:13067,1
    - Dst: xmlSwitchEncodingName
      Src: /src/libxml2/parser.c:13077,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/parser.c:13071,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:13072,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 5
    argNames:
    - ctxt
    - chunk
    - size
    - filename
    - encoding
    argTypes:
    - xmlParserCtxt*
    - char*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 13080
      start: 13056
    functionDepth: 0
    functionLinenumber: 13056
    functionLinenumberEnd: 13080
    functionName: xmlCtxtResetPush
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlSwitchEncodingName
    - xmlFreeInputStream
    - xmlNewPushInput
    - xmlCtxtPushInput
    - xmlCtxtReset
    linkageType: ''
    returnType: int
    signature: 'int xmlCtxtResetPush(xmlParserCtxt *ctxt, const char *chunk, int size,
      const char *filename, const char *encoding) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlSBufGrow
      Src: /src/libxml2/parser.c:770,1
    - Dst: xmlCopyCharMultiByte
      Src: /src/libxml2/parser.c:780,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - buf
    - c
    argTypes:
    - xmlSBuf*
    - int
    constantsTouched: []
    func_position:
      end: 782
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 782
    functionName: xmlSBufAddChar
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCopyCharMultiByte
    - xmlSBufGrow
    linkageType: ''
    returnType: void
    signature: 'static void xmlSBufAddChar(xmlSBuf *buf, int c) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/parser.c:12412,1
    - Dst: xmlLoadResource
      Src: /src/libxml2/parser.c:12420,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/parser.c:12425,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/parser.c:12418,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:12422,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:12426,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:12427,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - filename
    - options
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 12432
      start: 12406
    functionDepth: 0
    functionLinenumber: 12406
    functionLinenumberEnd: 12432
    functionName: xmlCreateURLParserCtxt
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtUseOptions
    - xmlLoadResource
    - xmlFreeInputStream
    - xmlCtxtPushInput
    - xmlFreeParserCtxt
    - xmlNewParserCtxt
    linkageType: ''
    returnType: xmlParserCtxt*
    signature: 'xmlParserCtxt *xmlCreateURLParserCtxt(const char *filename, int options) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictSetLimit
      Src: /src/libxml2/parser.c:13151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 52
    argCount: 3
    argNames:
    - ctxt
    - options
    - keepMask
    argTypes:
    - xmlParserCtxtPtr
    - int
    - int
    constantsTouched: []
    func_position:
      end: 13155
      start: 13082
    functionDepth: 0
    functionLinenumber: 13082
    functionLinenumberEnd: 13155
    functionName: xmlCtxtSetOptionsInternal
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlDictSetLimit
    linkageType: ''
    returnType: int
    signature: 'static int xmlCtxtSetOptionsInternal(xmlParserCtxtPtr ctxt, int options,
      int keepMask) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup2
      Src: /src/libxml2/parser.c:1082,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:1111,1
    - Dst: strlen
      Src: /src/libxml2/parser.c:1134,1
    - Dst: PARSER_EXTERNAL
      Src: /src/libxml2/parser.c:1149,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/parser.c:1052,1
    - Dst: xmlHashCreateDict
      Src: /src/libxml2/parser.c:1057,1
    - Dst: xmlDictLookupHashed
      Src: /src/libxml2/parser.c:1071,1
    - Dst: xmlSplitQName3
      Src: /src/libxml2/parser.c:1066,1
    - Dst: xmlDictLookupHashed
      Src: /src/libxml2/parser.c:1072,1
    - Dst: xmlDictLookupHashed
      Src: /src/libxml2/parser.c:1126,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:1155,1
    - Dst: xmlHashUpdateEntry2
      Src: /src/libxml2/parser.c:1109,1
    - Dst: strlen
      Src: /src/libxml2/parser.c:1141,1
    - Dst: xmlDictLookupHashed
      Src: /src/libxml2/parser.c:1125,1
    - Dst: strlen
      Src: /src/libxml2/parser.c:1139,1
    - Dst: xmlDictLookupHashed
      Src: /src/libxml2/parser.c:1068,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:1101,1
    - Dst: xmlDictLookupHashed
      Src: /src/libxml2/parser.c:1135,1
    - Dst: xmlDictLookupHashed
      Src: /src/libxml2/parser.c:1122,1
    - Dst: xmlSplitQName3
      Src: /src/libxml2/parser.c:1120,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 93
    argCount: 4
    argNames:
    - ctxt
    - fullname
    - fullattr
    - value
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1156
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1156
    functionName: xmlAddDefAttrs
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - PARSER_EXTERNAL
    - xmlSplitQName3
    - xmlHashLookup2
    - xmlRealloc
    - xmlDictLookupHashed
    - xmlErrMemory
    - strlen
    - xmlHashCreateDict
    - xmlHashUpdateEntry2
    linkageType: ''
    returnType: void
    signature: 'static void xmlAddDefAttrs(xmlParserCtxtPtr ctxt, const xmlChar *fullname,
      const xmlChar *fullattr, const xmlChar *value) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/parser.c:2090,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:2096,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:2121,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:2101,1
    - Dst: xmlMalloc
      Src: /src/libxml2/parser.c:2108,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 32
    argCount: 6
    argNames:
    - ctxt
    - value
    - prefix
    - URI
    - line
    - nsNr
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2123
      start: 2079
    functionDepth: 0
    functionLinenumber: 2079
    functionLinenumberEnd: 2123
    functionName: nameNsPush
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlMalloc
    - xmlErrMemory
    linkageType: ''
    returnType: int
    signature: 'static int nameNsPush(xmlParserCtxtPtr ctxt, const xmlChar * value,
      const xmlChar *prefix, const xmlChar *URI, int line, int nsNr) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CMP5
      Src: /src/libxml2/parser.c:6966,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:6969,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:6966,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:6967,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:6966,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:6974,1
    - Dst: xmlParseVersionInfo
      Src: /src/libxml2/parser.c:6981,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/parser.c:6983,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:6985,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:6990,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:7003,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:7011,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:7002,1
    - Dst: xmlParseEncodingDecl
      Src: /src/libxml2/parser.c:6999,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:7012,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:7006,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 7018
      start: 6959
    functionDepth: 0
    functionLinenumber: 6959
    functionLinenumberEnd: 7018
    functionName: xmlParseTextDecl
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - NXT
    - xmlFatalErrMsg
    - PARSER_STOPPED
    - xmlParseEncodingDecl
    - xmlFatalErr
    - xmlParseVersionInfo
    - xmlErrMemory
    - IS_BLANK_CH
    - SKIP
    - CMP5
    - xmlCharStrdup
    linkageType: ''
    returnType: void
    signature: 'void xmlParseTextDecl(xmlParserCtxt *ctxt) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/parser.c:12359,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:12376,1
    - Dst: xmlBuildURISafe
      Src: /src/libxml2/parser.c:12364,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/parser.c:12375,1
    - Dst: xmlLoadResource
      Src: /src/libxml2/parser.c:12370,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:12380,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:12384,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:12385,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 20
    argCount: 3
    argNames:
    - URL
    - ID
    - base
    argTypes:
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 12387
      start: 12352
    functionDepth: 0
    functionLinenumber: 12352
    functionLinenumberEnd: 12387
    functionName: xmlCreateEntityParserCtxt
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlLoadResource
    - xmlFreeInputStream
    - xmlCtxtPushInput
    - xmlBuildURISafe
    - xmlFreeParserCtxt
    - xmlNewParserCtxt
    linkageType: ''
    returnType: xmlParserCtxt*
    signature: "xmlParserCtxt *xmlCreateEntityParserCtxt(const xmlChar *URL, const
      xmlChar *ID,\t const xmlChar *base) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/parser.c:13369,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/parser.c:13375,1
    - Dst: xmlCtxtNewInputFromUrl
      Src: /src/libxml2/parser.c:13386,1
    - Dst: xmlCtxtNewInputFromFd
      Src: /src/libxml2/parser.c:13383,1
    - Dst: xmlCtxtParseDocument
      Src: /src/libxml2/parser.c:13389,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:13391,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - filename
    - encoding
    - options
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 13393
      start: 13362
    functionDepth: 0
    functionLinenumber: 13362
    functionLinenumberEnd: 13393
    functionName: xmlReadFile
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtNewInputFromFd
    - xmlCtxtUseOptions
    - xmlCtxtNewInputFromUrl
    - xmlFreeParserCtxt
    - xmlCtxtParseDocument
    - xmlNewParserCtxt
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlReadFile(const char *filename, const char *encoding, int
      options) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/parser.c:13419,1
    - Dst: xmlCtxtParseDocument
      Src: /src/libxml2/parser.c:13429,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/parser.c:13423,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:13431,1
    - Dst: xmlCtxtNewInputFromMemory
      Src: /src/libxml2/parser.c:13425,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 5
    argNames:
    - buffer
    - size
    - url
    - encoding
    - options
    argTypes:
    - char*
    - int
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 13433
      start: 13408
    functionDepth: 0
    functionLinenumber: 13408
    functionLinenumberEnd: 13433
    functionName: xmlReadMemory
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtUseOptions
    - xmlCtxtNewInputFromMemory
    - xmlFreeParserCtxt
    - xmlCtxtParseDocument
    - xmlNewParserCtxt
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlReadMemory(const char *buffer, int size, const char *url,
      const char *encoding, int options) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtReset
      Src: /src/libxml2/parser.c:13604,1
    - Dst: xmlCtxtParseDocument
      Src: /src/libxml2/parser.c:13612,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/parser.c:13605,1
    - Dst: xmlCtxtNewInputFromMemory
      Src: /src/libxml2/parser.c:13607,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 6
    argNames:
    - ctxt
    - buffer
    - size
    - URL
    - encoding
    - options
    argTypes:
    - xmlParserCtxt*
    - char*
    - int
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 13613
      start: 13595
    functionDepth: 0
    functionLinenumber: 13595
    functionLinenumberEnd: 13613
    functionName: xmlCtxtReadMemory
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtUseOptions
    - xmlCtxtParseDocument
    - xmlCtxtReset
    - xmlCtxtNewInputFromMemory
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlCtxtReadMemory(xmlParserCtxt *ctxt, const char *buffer,
      int size, const char *URL, const char *encoding, int options) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtReset
      Src: /src/libxml2/parser.c:13642,1
    - Dst: xmlCtxtParseDocument
      Src: /src/libxml2/parser.c:13649,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/parser.c:13643,1
    - Dst: xmlCtxtNewInputFromFd
      Src: /src/libxml2/parser.c:13645,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 5
    argNames:
    - ctxt
    - fd
    - URL
    - encoding
    - options
    argTypes:
    - xmlParserCtxt*
    - int
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 13650
      start: 13633
    functionDepth: 0
    functionLinenumber: 13633
    functionLinenumberEnd: 13650
    functionName: xmlCtxtReadFd
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtNewInputFromFd
    - xmlCtxtUseOptions
    - xmlCtxtParseDocument
    - xmlCtxtReset
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlCtxtReadFd(xmlParserCtxt *ctxt, int fd, const char *URL,
      const char *encoding, int options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlWarningMsg
      Src: /src/libxml2/parser.c:272,1
    - Dst: xmlCtxtErr
      Src: /src/libxml2/parser.c:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames:
    - 3,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 277
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlWarningMsg
    - xmlCtxtErr
    linkageType: ''
    returnType: void
    signature: 'static void LIBXML_ATTR_FORMAT(3,0) xmlFatalErrMsg(xmlParserCtxtPtr
      ctxt, xmlParserErrors error, const char *msg){ xmlCtxtErr(ctxt, NULL, XML_FROM_PARSER,
      error, XML_ERR_FATAL, NULL, NULL, NULL, 0, "%s", msg); } /** * Handle a warning.
      * * @param ctxt an XML parser context * @param error the error number * @param
      msg the error message * @param str1 extra data * @param str2 extra data */ void
      LIBXML_ATTR_FORMAT(3,0)xmlWarningMsg(xmlParserCtxtPtr ctxt, xmlParserErrors
      error, const char *msg, const xmlChar *str1, const xmlChar *str2) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1025
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1025
    functionName: xmlAttrNormalizeSpace
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlAttrNormalizeSpace(const xmlChar *src, xmlChar
      *dst) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 2066
      start: 2050
    functionDepth: 0
    functionLinenumber: 2050
    functionLinenumberEnd: 2066
    functionName: nodePop
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *nodePop(xmlParserCtxt *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 66
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2992
      start: 2968
    functionDepth: 0
    functionLinenumber: 2968
    functionLinenumberEnd: 2992
    functionName: xmlIsNameStartCharNew
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlIsNameStartCharNew(int c) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlScanName
      Src: /src/libxml2/parser.c:3373,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:3383,1
    - Dst: xmlStrndup
      Src: /src/libxml2/parser.c:3381,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:3375,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 2
    argNames:
    - ctxt
    - str
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 3386
      start: 3361
    functionDepth: 0
    functionLinenumber: 3361
    functionLinenumberEnd: 3386
    functionName: xmlParseStringName
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlScanName
    - xmlFatalErr
    - xmlStrndup
    - xmlErrMemory
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlParseStringName(xmlParserCtxtPtr ctxt, const xmlChar**
      str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtInitializeLate
      Src: /src/libxml2/parser.c:9654,1
    - Dst: xmlParserCheckEOF
      Src: /src/libxml2/parser.c:9658,1
    - Dst: xmlParseContentInternal
      Src: /src/libxml2/parser.c:9656,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 9659
      start: 9649
    functionDepth: 0
    functionLinenumber: 9649
    functionLinenumberEnd: 9659
    functionName: xmlParseContent
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtInitializeLate
    - xmlParserCheckEOF
    - xmlParseContentInternal
    linkageType: ''
    returnType: void
    signature: 'void xmlParseContent(xmlParserCtxt *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 10317
      start: 10311
    functionDepth: 0
    functionLinenumber: 10311
    functionLinenumberEnd: 10317
    functionName: xmlCtxtGetVersion
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlCtxtGetVersion(xmlParserCtxt *ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlLoadResource
      Src: /src/libxml2/parser.c:11894,1
    - Dst: xmlCtxtParseContentInternal
      Src: /src/libxml2/parser.c:11901,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:11907,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/parser.c:11905,1
    - Dst: xmlCtxtInitializeLate
      Src: /src/libxml2/parser.c:11899,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 4
    argNames:
    - ctxt
    - URL
    - ID
    - listOut
    argTypes:
    - xmlParserCtxt*
    - xmlChar*
    - xmlChar*
    - xmlNode**
    constantsTouched: []
    func_position:
      end: 11909
      start: 11882
    functionDepth: 0
    functionLinenumber: 11882
    functionLinenumberEnd: 11909
    functionName: xmlParseCtxtExternalEntity
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlLoadResource
    - xmlCtxtInitializeLate
    - xmlFreeInputStream
    - xmlCtxtParseContentInternal
    - xmlFreeNodeList
    linkageType: ''
    returnType: int
    signature: 'int xmlParseCtxtExternalEntity(xmlParserCtxt *ctxt, const xmlChar
      *URL, const xmlChar *ID, xmlNode **listOut) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - val
    argTypes:
    - unsigned long*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 423
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 423
    functionName: xmlSaturatedAddSizeT
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xmlSaturatedAddSizeT(unsigned long *dst, unsigned long
      val) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - max
    argTypes:
    - xmlSBuf*
    - unsigned
    constantsTouched: []
    func_position:
      end: 707
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 707
    functionName: xmlSBufInit
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xmlSBufInit(xmlSBuf *buf, unsigned max) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:3337,1
    - Dst: xmlParseName
      Src: /src/libxml2/parser.c:3344,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 2
    argNames:
    - ctxt
    - other
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3350
      start: 3324
    functionDepth: 0
    functionLinenumber: 3324
    functionLinenumberEnd: 3350
    functionName: xmlParseNameAndCompare
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - IS_BLANK_CH
    - xmlParseName
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlParseNameAndCompare(xmlParserCtxtPtr ctxt,
      xmlChar const *other) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:9553,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:9574,1
    - Dst: xmlParsePI
      Src: /src/libxml2/parser.c:9560,1
    - Dst: CMP9
      Src: /src/libxml2/parser.c:9567,1
    - Dst: xmlParseCDSect
      Src: /src/libxml2/parser.c:9568,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:9575,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:9575,1
    - Dst: xmlParseComment
      Src: /src/libxml2/parser.c:9576,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:9583,1
    - Dst: xmlParseElementEnd
      Src: /src/libxml2/parser.c:9586,1
    - Dst: xmlParseElementStart
      Src: /src/libxml2/parser.c:9588,1
    - Dst: xmlFatalErrMsgStrIntStr
      Src: /src/libxml2/parser.c:9617,1
    - Dst: nodePop
      Src: /src/libxml2/parser.c:9627,1
    - Dst: xmlParserNsPop
      Src: /src/libxml2/parser.c:9633,1
    - Dst: spacePop
      Src: /src/libxml2/parser.c:9639,1
    - Dst: xmlParseCharDataInternal
      Src: /src/libxml2/parser.c:9605,1
    - Dst: xmlParseReference
      Src: /src/libxml2/parser.c:9598,1
    - Dst: namePop
      Src: /src/libxml2/parser.c:9635,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 58
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 9640
      start: 9545
    functionDepth: 0
    functionLinenumber: 9545
    functionLinenumberEnd: 9640
    functionName: xmlParseContentInternal
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParserNsPop
    - NXT
    - xmlParsePI
    - xmlFatalErrMsgStrIntStr
    - PARSER_STOPPED
    - xmlParseComment
    - xmlParseElementEnd
    - xmlParseReference
    - CMP9
    - xmlParseCDSect
    - xmlParseElementStart
    - nodePop
    - spacePop
    - xmlParseCharDataInternal
    - namePop
    linkageType: ''
    returnType: void
    signature: 'static void xmlParseContentInternal(xmlParserCtxtPtr ctxt) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: SKIP
      Src: /src/libxml2/parser.c:10214,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:10227,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:10269,1
    - Dst: xmlParseSDDecl
      Src: /src/libxml2/parser.c:10283,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:10286,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:10287,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:10290,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:10216,1
    - Dst: xmlWarningMsg
      Src: /src/libxml2/parser.c:10239,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:10258,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:10271,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:10270,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:10259,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:10217,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:10229,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:10234,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:10243,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:10295,1
    - Dst: xmlParseVersionInfo
      Src: /src/libxml2/parser.c:10225,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:10250,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:10257,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:10262,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:10274,1
    - Dst: xmlParseEncodingDecl
      Src: /src/libxml2/parser.c:10264,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:10296,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 73
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 10303
      start: 10199
    functionDepth: 0
    functionLinenumber: 10199
    functionLinenumberEnd: 10303
    functionName: xmlParseXMLDecl
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFatalErrMsg
    - NXT
    - PARSER_STOPPED
    - xmlParseEncodingDecl
    - xmlFatalErr
    - xmlParseVersionInfo
    - IS_BLANK_CH
    - SKIP
    - xmlStrEqual
    - xmlParseSDDecl
    - xmlFatalErrMsgStr
    - xmlWarningMsg
    linkageType: ''
    returnType: void
    signature: 'void xmlParseXMLDecl(xmlParserCtxt *ctxt) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:11774,1
    - Dst: xmlHaltParser
      Src: /src/libxml2/parser.c:11775,1
    - Dst: xmlSaturatedAddSizeT
      Src: /src/libxml2/parser.c:11831,1
    - Dst: xmlCtxtParseContentInternal
      Src: /src/libxml2/parser.c:11819,1
    - Dst: xmlNewEntityInputStream
      Src: /src/libxml2/parser.c:11782,1
    - Dst: xmlSaturatedAdd
      Src: /src/libxml2/parser.c:11834,1
    - Dst: xmlSaturatedAdd
      Src: /src/libxml2/parser.c:11838,1
    - Dst: xmlSetTreeDoc
      Src: /src/libxml2/parser.c:11851,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/parser.c:11858,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:11861,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - ctxt
    - ent
    argTypes:
    - xmlParserCtxtPtr
    - xmlEntityPtr
    constantsTouched: []
    func_position:
      end: 11865
      start: 11757
    functionDepth: 0
    functionLinenumber: 11757
    functionLinenumberEnd: 11865
    functionName: xmlCtxtParseEntity
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlSaturatedAdd
    - xmlFreeNodeList
    - xmlFreeInputStream
    - xmlFatalErr
    - xmlHaltParser
    - xmlSaturatedAddSizeT
    - xmlCtxtParseContentInternal
    - xmlSetTreeDoc
    - xmlNewEntityInputStream
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtParseEntity(xmlParserCtxtPtr ctxt, xmlEntityPtr
      ent) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 2146
      start: 2131
    functionDepth: 0
    functionLinenumber: 2131
    functionLinenumberEnd: 2146
    functionName: nameNsPop
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *nameNsPop(xmlParserCtxtPtr ctxt) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/parser.c:801,1
    - Dst: xmlSBufReportError
      Src: /src/libxml2/parser.c:817,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:819,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 4
    argNames:
    - buf
    - sizeOut
    - ctxt
    - errMsg
    argTypes:
    - xmlSBuf*
    - int*
    - xmlParserCtxtPtr
    - char*
    constantsTouched: []
    func_position:
      end: 824
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 824
    functionName: xmlSBufFinish
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSBufReportError
    - xmlMalloc
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlSBufFinish(xmlSBuf *buf, int *sizeOut, xmlParserCtxtPtr
      ctxt, const char *errMsg) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictComputeHash
      Src: /src/libxml2/parser.c:1625,1
    - Dst: xmlParserNsLookup
      Src: /src/libxml2/parser.c:1628,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - ctxt
    - prefix
    - saxData
    argTypes:
    - xmlParserCtxt*
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 1634
      start: 1614
    functionDepth: 0
    functionLinenumber: 1614
    functionLinenumberEnd: 1634
    functionName: xmlParserNsUpdateSax
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParserNsLookup
    - xmlDictComputeHash
    linkageType: ''
    returnType: int
    signature: 'int xmlParserNsUpdateSax(xmlParserCtxt *ctxt, const xmlChar *prefix,
      void *saxData) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/parser.c:2528,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - ctxt
    - input
    argTypes:
    - xmlParserCtxt*
    - xmlParserInput*
    constantsTouched: []
    func_position:
      end: 2532
      start: 2521
    functionDepth: 0
    functionLinenumber: 2521
    functionLinenumberEnd: 2532
    functionName: xmlPushInput
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtPushInput
    linkageType: ''
    returnType: int
    signature: 'int xmlPushInput(xmlParserCtxt *ctxt, xmlParserInput *input) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlSBufInit
      Src: /src/libxml2/parser.c:3641,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:3647,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:3660,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:3671,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:3664,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:3677,1
    - Dst: xmlStrndup
      Src: /src/libxml2/parser.c:3690,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:3692,1
    - Dst: xmlExpandPEsInEntityValue
      Src: /src/libxml2/parser.c:3695,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:3697,1
    - Dst: xmlSBufCleanup
      Src: /src/libxml2/parser.c:3702,1
    - Dst: xmlSBufFinish
      Src: /src/libxml2/parser.c:3699,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 36
    argCount: 2
    argNames:
    - ctxt
    - orig
    argTypes:
    - xmlParserCtxt*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 3704
      start: 3632
    functionDepth: 0
    functionLinenumber: 3632
    functionLinenumberEnd: 3704
    functionName: xmlParseEntityValue
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFatalErrMsg
    - PARSER_STOPPED
    - xmlStrndup
    - xmlSBufFinish
    - NEXTL
    - xmlExpandPEsInEntityValue
    - xmlFatalErr
    - xmlErrMemory
    - xmlSBufCleanup
    - xmlSBufInit
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlParseEntityValue(xmlParserCtxt *ctxt, xmlChar **orig) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlCurrentCharRecover
      Src: /src/libxml2/parser.c:4679,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:4685,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:4686,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:4685,1
    - Dst: IS_CHAR
      Src: /src/libxml2/parser.c:4684,1
    - Dst: COPY_BUF
      Src: /src/libxml2/parser.c:4688,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:4690,1
    - Dst: xmlCharacters
      Src: /src/libxml2/parser.c:4694,1
    - Dst: xmlCurrentCharRecover
      Src: /src/libxml2/parser.c:4698,1
    - Dst: xmlCharacters
      Src: /src/libxml2/parser.c:4703,1
    - Dst: xmlFatalErrMsgInt
      Src: /src/libxml2/parser.c:4721,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:4723,1
    - Dst: xmlFatalErrMsgInt
      Src: /src/libxml2/parser.c:4715,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:4717,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 2
    argNames:
    - ctxt
    - partial
    argTypes:
    - xmlParserCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 4726
      start: 4673
    functionDepth: 0
    functionLinenumber: 4673
    functionLinenumberEnd: 4726
    functionName: xmlParseCharDataComplex
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - NXT
    - IS_CHAR
    - NEXTL
    - xmlCurrentCharRecover
    - xmlFatalErr
    - COPY_BUF
    - xmlFatalErrMsgInt
    - xmlCharacters
    linkageType: ''
    returnType: void
    signature: 'static void xmlParseCharDataComplex(xmlParserCtxtPtr ctxt, int partial) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CMP6
      Src: /src/libxml2/parser.c:4765,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:4766,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:4773,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:4768,1
    - Dst: xmlParseSystemLiteral
      Src: /src/libxml2/parser.c:4771,1
    - Dst: CMP6
      Src: /src/libxml2/parser.c:4775,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:4776,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:4778,1
    - Dst: xmlParsePubidLiteral
      Src: /src/libxml2/parser.c:4781,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:4783,1
    - Dst: xmlParseSystemLiteral
      Src: /src/libxml2/parser.c:4803,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:4790,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:4805,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 3
    argNames:
    - ctxt
    - publicId
    - strict
    argTypes:
    - xmlParserCtxt*
    - xmlChar**
    - int
    constantsTouched: []
    func_position:
      end: 4809
      start: 4760
    functionDepth: 0
    functionLinenumber: 4760
    functionLinenumberEnd: 4809
    functionName: xmlParseExternalID
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFatalErrMsg
    - xmlFatalErr
    - xmlParsePubidLiteral
    - SKIP
    - xmlParseSystemLiteral
    - CMP6
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlParseExternalID(xmlParserCtxt *ctxt, xmlChar **publicId,
      int strict) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CMP8
      Src: /src/libxml2/parser.c:5867,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5868,1
    - Dst: xmlParseNotationType
      Src: /src/libxml2/parser.c:5874,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:5870,1
    - Dst: xmlParseEnumerationType
      Src: /src/libxml2/parser.c:5878,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - ctxt
    - tree
    argTypes:
    - xmlParserCtxt*
    - xmlEnumeration**
    constantsTouched: []
    func_position:
      end: 5881
      start: 5865
    functionDepth: 0
    functionLinenumber: 5865
    functionLinenumberEnd: 5881
    functionName: xmlParseEnumeratedType
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFatalErrMsg
    - CMP8
    - xmlParseNotationType
    - xmlParseEnumerationType
    - SKIP
    linkageType: ''
    returnType: int
    signature: 'int xmlParseEnumeratedType(xmlParserCtxt *ctxt, xmlEnumeration **tree) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseName
      Src: /src/libxml2/parser.c:8102,1
    - Dst: xmlParseAttValue
      Src: /src/libxml2/parser.c:8116,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:8128,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:8104,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:8118,1
    - Dst: xmlCheckLanguageID
      Src: /src/libxml2/parser.c:8129,1
    - Dst: xmlWarningMsg
      Src: /src/libxml2/parser.c:8130,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:8139,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:8140,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:8142,1
    - Dst: xmlWarningMsg
      Src: /src/libxml2/parser.c:8145,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 2
    argNames:
    - ctxt
    - value
    argTypes:
    - xmlParserCtxt*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 8153
      start: 8095
    functionDepth: 0
    functionLinenumber: 8095
    functionLinenumberEnd: 8153
    functionName: xmlParseAttribute
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCheckLanguageID
    - xmlFatalErrMsg
    - xmlParseName
    - xmlStrEqual
    - xmlParseAttValue
    - xmlFatalErrMsgStr
    - xmlWarningMsg
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlParseAttribute(xmlParserCtxt *ctxt, xmlChar **value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSBufReportError
      Src: /src/libxml2/parser.c:829,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:831,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - buf
    - ctxt
    - errMsg
    argTypes:
    - xmlSBuf*
    - xmlParserCtxtPtr
    - char*
    constantsTouched: []
    func_position:
      end: 832
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 832
    functionName: xmlSBufCleanup
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSBufReportError
    linkageType: ''
    returnType: void
    signature: 'static void xmlSBufCleanup(xmlSBuf *buf, xmlParserCtxtPtr ctxt, const
      char *errMsg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseEndTag1
      Src: /src/libxml2/parser.c:8375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 8376
      start: 8373
    functionDepth: 0
    functionLinenumber: 8373
    functionLinenumberEnd: 8376
    functionName: xmlParseEndTag
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParseEndTag1
    linkageType: ''
    returnType: void
    signature: 'void xmlParseEndTag(xmlParserCtxt *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtPopInput
      Src: /src/libxml2/parser.c:2505,1
    - Dst: xmlParserGrow
      Src: /src/libxml2/parser.c:2508,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:2506,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 2510
      start: 2500
    functionDepth: 0
    functionLinenumber: 2500
    functionLinenumberEnd: 2510
    functionName: xmlPopInput
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFreeInputStream
    - xmlCtxtPopInput
    - xmlParserGrow
    linkageType: ''
    returnType: xmlChar
    signature: 'xmlChar xmlPopInput(xmlParserCtxt *ctxt) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:4427,1
    - Dst: xmlMalloc
      Src: /src/libxml2/parser.c:4430,1
    - Dst: IS_PUBIDCHAR_CH
      Src: /src/libxml2/parser.c:4436,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:4432,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:4437,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/parser.c:4442,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:4444,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:4445,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:4448,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:4450,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:4463,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:4451,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:4465,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 4468
      start: 4409
    functionDepth: 0
    functionLinenumber: 4409
    functionLinenumberEnd: 4468
    functionName: xmlParsePubidLiteral
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - PARSER_STOPPED
    - xmlGrowCapacity
    - xmlRealloc
    - NEXTL
    - xmlFatalErr
    - xmlErrMemory
    - IS_PUBIDCHAR_CH
    - xmlMalloc
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlParsePubidLiteral(xmlParserCtxt *ctxt) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:5723,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/parser.c:5733,1
    - Dst: xmlParseName
      Src: /src/libxml2/parser.c:5729,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:5731,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:5741,1
    - Dst: xmlValidityError
      Src: /src/libxml2/parser.c:5742,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/parser.c:5745,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:5746,1
    - Dst: xmlCreateEnumeration
      Src: /src/libxml2/parser.c:5754,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:5756,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:5769,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/parser.c:5757,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/parser.c:5770,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 5775
      start: 5717
    functionDepth: 0
    functionLinenumber: 5717
    functionLinenumberEnd: 5775
    functionName: xmlParseNotationType
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFatalErrMsg
    - xmlParseName
    - xmlDictOwns
    - xmlFatalErr
    - xmlCreateEnumeration
    - xmlErrMemory
    - xmlStrEqual
    - xmlFreeEnumeration
    - xmlValidityError
    linkageType: ''
    returnType: xmlEnumeration*
    signature: 'xmlEnumeration *xmlParseNotationType(xmlParserCtxt *ctxt) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:5798,1
    - Dst: xmlValidityError
      Src: /src/libxml2/parser.c:5815,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:5806,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:5814,1
    - Dst: xmlParseNmtoken
      Src: /src/libxml2/parser.c:5804,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/parser.c:5818,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:5819,1
    - Dst: xmlCreateEnumeration
      Src: /src/libxml2/parser.c:5827,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/parser.c:5828,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:5829,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:5831,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:5844,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/parser.c:5832,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 5849
      start: 5792
    functionDepth: 0
    functionLinenumber: 5792
    functionLinenumberEnd: 5849
    functionName: xmlParseEnumerationType
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictOwns
    - xmlParseNmtoken
    - xmlFatalErr
    - xmlCreateEnumeration
    - xmlErrMemory
    - xmlStrEqual
    - xmlFreeEnumeration
    - xmlValidityError
    linkageType: ''
    returnType: xmlEnumeration*
    signature: 'xmlEnumeration *xmlParseEnumerationType(xmlParserCtxt *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 10331
      start: 10325
    functionDepth: 0
    functionLinenumber: 10325
    functionLinenumberEnd: 10331
    functionName: xmlCtxtGetStandalone
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlCtxtGetStandalone(xmlParserCtxt *ctxt) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/parser.c:1924,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:1927,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:1934,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:1932,1
    - Dst: xmlHaltParser
      Src: /src/libxml2/parser.c:1929,1
    - Dst: xmlParserGetDirectory
      Src: /src/libxml2/parser.c:1942,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:1944,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:1950,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:1958,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 2
    argNames:
    - ctxt
    - value
    argTypes:
    - xmlParserCtxt*
    - xmlParserInput*
    constantsTouched: []
    func_position:
      end: 1970
      start: 1909
    functionDepth: 0
    functionLinenumber: 1909
    functionLinenumberEnd: 1970
    functionName: xmlCtxtPushInput
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFatalErrMsg
    - xmlGrowCapacity
    - xmlRealloc
    - xmlErrMemory
    - xmlHaltParser
    - xmlParserGetDirectory
    linkageType: ''
    returnType: int
    signature: 'int xmlCtxtPushInput(xmlParserCtxt *ctxt, xmlParserInput *value) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:2675,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:2694,1
    - Dst: IS_CHAR
      Src: /src/libxml2/parser.c:2721,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:2707,1
    - Dst: xmlFatalErrMsgInt
      Src: /src/libxml2/parser.c:2718,1
    - Dst: xmlFatalErrMsgInt
      Src: /src/libxml2/parser.c:2724,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 78
    argCount: 2
    argNames:
    - ctxt
    - str
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 2729
      start: 2655
    functionDepth: 0
    functionLinenumber: 2655
    functionLinenumberEnd: 2729
    functionName: xmlParseStringCharRef
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFatalErrMsgInt
    - IS_CHAR
    - xmlFatalErr
    linkageType: ''
    returnType: int
    signature: 'static int xmlParseStringCharRef(xmlParserCtxtPtr ctxt, const xmlChar
      **str) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:4355,1
    - Dst: xmlCurrentCharRecover
      Src: /src/libxml2/parser.c:4364,1
    - Dst: IS_CHAR
      Src: /src/libxml2/parser.c:4365,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:4361,1
    - Dst: xmlMalloc
      Src: /src/libxml2/parser.c:4359,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/parser.c:4370,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:4372,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:4373,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:4376,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:4378,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:4379,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:4386,1
    - Dst: IS_CHAR
      Src: /src/libxml2/parser.c:4390,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:4391,1
    - Dst: COPY_BUF
      Src: /src/libxml2/parser.c:4385,1
    - Dst: xmlCurrentCharRecover
      Src: /src/libxml2/parser.c:4387,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 4396
      start: 4337
    functionDepth: 0
    functionLinenumber: 4337
    functionLinenumberEnd: 4396
    functionName: xmlParseSystemLiteral
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - IS_CHAR
    - xmlGrowCapacity
    - xmlRealloc
    - NEXTL
    - xmlCurrentCharRecover
    - xmlFatalErr
    - COPY_BUF
    - xmlErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlParseSystemLiteral(xmlParserCtxt *ctxt) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CMP9
      Src: /src/libxml2/parser.c:5674,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5679,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5675,1
    - Dst: CMP6
      Src: /src/libxml2/parser.c:5683,1
    - Dst: CMP8
      Src: /src/libxml2/parser.c:5678,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5684,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:5687,1
    - Dst: xmlParseAttValue
      Src: /src/libxml2/parser.c:5691,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:5693,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - ctxt
    - value
    argTypes:
    - xmlParserCtxt*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 5698
      start: 5668
    functionDepth: 0
    functionLinenumber: 5668
    functionLinenumberEnd: 5698
    functionName: xmlParseDefaultDecl
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFatalErrMsg
    - CMP8
    - CMP9
    - SKIP
    - xmlParseAttValue
    - CMP6
    linkageType: ''
    returnType: int
    signature: 'int xmlParseDefaultDecl(xmlParserCtxt *ctxt, xmlChar **value) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:8015,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:8028,1
    - Dst: xmlPopPE
      Src: /src/libxml2/parser.c:8022,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:8019,1
    - Dst: PARSER_EXTERNAL
      Src: /src/libxml2/parser.c:8027,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:8028,1
    - Dst: xmlParseConditionalSections
      Src: /src/libxml2/parser.c:8033,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:8034,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:8034,1
    - Dst: xmlParseMarkupDecl
      Src: /src/libxml2/parser.c:8035,1
    - Dst: xmlParsePERefInternal
      Src: /src/libxml2/parser.c:8037,1
    - Dst: xmlPopPE
      Src: /src/libxml2/parser.c:8042,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:8039,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:8055,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 8059
      start: 7999
    functionDepth: 0
    functionLinenumber: 7999
    functionLinenumberEnd: 8059
    functionName: xmlParseInternalSubset
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - PARSER_EXTERNAL
    - NXT
    - PARSER_STOPPED
    - xmlPopPE
    - xmlFatalErr
    - xmlParseConditionalSections
    - xmlParsePERefInternal
    - xmlParseMarkupDecl
    linkageType: ''
    returnType: void
    signature: 'static void xmlParseInternalSubset(xmlParserCtxtPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAXParseFile
      Src: /src/libxml2/parser.c:12551,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 12552
      start: 12549
    functionDepth: 0
    functionLinenumber: 12549
    functionLinenumberEnd: 12552
    functionName: xmlParseFile
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlSAXParseFile
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlParseFile(const char *filename) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtReset
      Src: /src/libxml2/parser.c:12592,1
    - Dst: xmlCtxtNewInputFromString
      Src: /src/libxml2/parser.c:12594,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/parser.c:12598,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:12599,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 3
    argNames:
    - ctxt
    - buffer
    - filename
    argTypes:
    - xmlParserCtxt*
    - xmlChar*
    - char*
    constantsTouched: []
    func_position:
      end: 12600
      start: 12583
    functionDepth: 0
    functionLinenumber: 12583
    functionLinenumberEnd: 12600
    functionName: xmlSetupParserForBuffer
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFreeInputStream
    - xmlCtxtPushInput
    - xmlCtxtReset
    - xmlCtxtNewInputFromString
    linkageType: ''
    returnType: void
    signature: 'void xmlSetupParserForBuffer(xmlParserCtxt *ctxt, const xmlChar* buffer,
      const char* filename) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserNsLookup
      Src: /src/libxml2/parser.c:1857,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - ctxt
    - nr
    argTypes:
    - xmlParserCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 1865
      start: 1838
    functionDepth: 0
    functionLinenumber: 1838
    functionLinenumberEnd: 1865
    functionName: xmlParserNsPop
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParserNsLookup
    linkageType: ''
    returnType: int
    signature: 'static int xmlParserNsPop(xmlParserCtxtPtr ctxt, int nr) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/parser.c:1873,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:1887,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:1877,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:1882,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:1898,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 1900
      start: 1867
    functionDepth: 0
    functionLinenumber: 1867
    functionLinenumberEnd: 1900
    functionName: xmlCtxtGrowAttrs
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlFatalErr
    - xmlErrMemory
    linkageType: ''
    returnType: int
    signature: 'static int xmlCtxtGrowAttrs(xmlParserCtxtPtr ctxt) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: NXT
      Src: /src/libxml2/parser.c:2557,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:2573,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:2561,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:2558,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:2559,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:2588,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:2589,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:2599,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:2616,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:2617,1
    - Dst: xmlFatalErrMsgInt
      Src: /src/libxml2/parser.c:2626,1
    - Dst: xmlFatalErrMsgInt
      Src: /src/libxml2/parser.c:2632,1
    - Dst: IS_CHAR
      Src: /src/libxml2/parser.c:2629,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 88
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 2637
      start: 2549
    functionDepth: 0
    functionLinenumber: 2549
    functionLinenumberEnd: 2637
    functionName: xmlParseCharRef
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - NXT
    - IS_CHAR
    - PARSER_STOPPED
    - xmlFatalErr
    - xmlFatalErrMsgInt
    - SKIP
    linkageType: ''
    returnType: int
    signature: 'int xmlParseCharRef(xmlParserCtxt *ctxt) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SKIP
      Src: /src/libxml2/parser.c:7948,1
    - Dst: xmlParseName
      Src: /src/libxml2/parser.c:7958,1
    - Dst: xmlParseExternalID
      Src: /src/libxml2/parser.c:7970,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:7951,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:7960,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:7988,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 7990
      start: 7939
    functionDepth: 0
    functionLinenumber: 7939
    functionLinenumberEnd: 7990
    functionName: xmlParseDocTypeDecl
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFatalErrMsg
    - xmlParseName
    - xmlParseExternalID
    - xmlFatalErr
    - SKIP
    linkageType: ''
    returnType: void
    signature: 'void xmlParseDocTypeDecl(xmlParserCtxt *ctxt) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/parser.c:9884,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:9898,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:9891,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:9886,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/parser.c:9909,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:9911,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:9912,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:9915,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:9917,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:9918,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 9930
      start: 9874
    functionDepth: 0
    functionLinenumber: 9874
    functionLinenumberEnd: 9930
    functionName: xmlParseVersionNum
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGrowCapacity
    - xmlRealloc
    - xmlFatalErr
    - xmlErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlParseVersionNum(xmlParserCtxt *ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libxml2/parser.c:10626,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - ctxt
    - startDelta
    - str
    - strLen
    argTypes:
    - xmlParserCtxtPtr
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 10647
      start: 10615
    functionDepth: 0
    functionLinenumber: 10615
    functionLinenumberEnd: 10647
    functionName: xmlParseLookupString
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - strstr
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlParseLookupString(xmlParserCtxtPtr ctxt,
      size_t startDelta, const char *str, size_t strLen) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewSAXParserCtxt
      Src: /src/libxml2/parser.c:11605,1
    - Dst: xmlCtxtSetOptions
      Src: /src/libxml2/parser.c:11609,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:11616,1
    - Dst: xmlCanonicPath
      Src: /src/libxml2/parser.c:11614,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:11628,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:11630,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:11637,1
    - Dst: xmlCtxtParseDtd
      Src: /src/libxml2/parser.c:11639,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:11641,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 3
    argNames:
    - sax
    - publicId
    - systemId
    argTypes:
    - xmlSAXHandler*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 11643
      start: 11595
    functionDepth: 0
    functionLinenumber: 11595
    functionLinenumberEnd: 11643
    functionName: xmlSAXParseDTD
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCtxtParseDtd
    - xmlNewSAXParserCtxt
    - xmlFreeParserCtxt
    - xmlCanonicPath
    - xmlCtxtSetOptions
    linkageType: ''
    returnType: xmlDtd*
    signature: 'xmlDtd *xmlSAXParseDTD(xmlSAXHandler *sax, const xmlChar *publicId,
      const xmlChar *systemId) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAXParseDoc
      Src: /src/libxml2/parser.c:12535,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 12536
      start: 12533
    functionDepth: 0
    functionLinenumber: 12533
    functionLinenumberEnd: 12536
    functionName: xmlRecoverDoc
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlSAXParseDoc
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlRecoverDoc(const xmlChar *cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAXParseFile
      Src: /src/libxml2/parser.c:12568,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 12569
      start: 12566
    functionDepth: 0
    functionLinenumber: 12566
    functionLinenumberEnd: 12569
    functionName: xmlRecoverFile
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlSAXParseFile
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlRecoverFile(const char *filename) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSBufInit
      Src: /src/libxml2/parser.c:3995,1
    - Dst: xmlSBufFinish
      Src: /src/libxml2/parser.c:4003,1
    - Dst: xmlExpandEntityInAttValue
      Src: /src/libxml2/parser.c:3997,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 3
    argNames:
    - ctxt
    - str
    - normalize
    argTypes:
    - xmlParserCtxt*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 4004
      start: 3986
    functionDepth: 0
    functionLinenumber: 3986
    functionLinenumberEnd: 4004
    functionName: xmlExpandEntitiesInAttValue
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlExpandEntityInAttValue
    - xmlSBufFinish
    - xmlSBufInit
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlExpandEntitiesInAttValue(xmlParserCtxt *ctxt, const xmlChar
      *str, int normalize) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:378,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:344,1
    - Dst: xmlNsWarn
      Src: /src/libxml2/parser.c:400,1
    - Dst: xmlFatalErrMsgInt
      Src: /src/libxml2/parser.c:309,1
    - Dst: xmlFatalErrMsgStrIntStr
      Src: /src/libxml2/parser.c:327,1
    - Dst: xmlErrMsgStr
      Src: /src/libxml2/parser.c:360,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 27
    argCount: 0
    argNames:
    - 3,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 415
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 415
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFatalErrMsgStrIntStr
    - xmlNsWarn
    - xmlFatalErrMsgInt
    - xmlErrMsgStr
    - xmlFatalErrMsgStr
    - xmlNsErr
    linkageType: ''
    returnType: void
    signature: "static void LIBXML_ATTR_FORMAT(3,0) xmlValidityError(xmlParserCtxtPtr
      ctxt, xmlParserErrors error, const char *msg, const xmlChar *str1, const xmlChar
      *str2){ ctxt->valid = 0; xmlCtxtErr(ctxt, NULL, XML_FROM_DTD, error, XML_ERR_ERROR,
      str1, str2, NULL, 0, msg, str1, str2);}#endif /** * Handle a fatal parser error,
      i.e. violating Well-Formedness constraints * * @param ctxt an XML parser context
      * @param error the error number * @param msg the error message * @param val
      an integer value */ static void LIBXML_ATTR_FORMAT(3,0)xmlFatalErrMsgInt(xmlParserCtxtPtr
      ctxt, xmlParserErrors error, const char *msg, int val){ xmlCtxtErr(ctxt, NULL,
      XML_FROM_PARSER, error, XML_ERR_FATAL, NULL, NULL, NULL, val, msg, val); } /**
      * Handle a fatal parser error, i.e. violating Well-Formedness constraints *
      * @param ctxt an XML parser context * @param error the error number * @param
      msg the error message * @param str1 an string info * @param val an integer value
      * @param str2 an string info */ static void LIBXML_ATTR_FORMAT(3,0)xmlFatalErrMsgStrIntStr(xmlParserCtxtPtr
      ctxt, xmlParserErrors error, const char *msg, const xmlChar *str1, int val,\t\t
      const xmlChar *str2){ xmlCtxtErr(ctxt, NULL, XML_FROM_PARSER, error, XML_ERR_FATAL,
      str1, str2, NULL, val, msg, str1, val, str2); } /** * Handle a fatal parser
      error, i.e. violating Well-Formedness constraints * * @param ctxt an XML parser
      context * @param error the error number * @param msg the error message * @param
      val a string value */ static void LIBXML_ATTR_FORMAT(3,0)xmlFatalErrMsgStr(xmlParserCtxtPtr
      ctxt, xmlParserErrors error, const char *msg, const xmlChar * val){ xmlCtxtErr(ctxt,
      NULL, XML_FROM_PARSER, error, XML_ERR_FATAL, val, NULL, NULL, 0, msg, val);
      } /** * Handle a non fatal parser error * * @param ctxt an XML parser context
      * @param error the error number * @param msg the error message * @param val
      a string value */ static void LIBXML_ATTR_FORMAT(3,0)xmlErrMsgStr(xmlParserCtxtPtr
      ctxt, xmlParserErrors error, const char *msg, const xmlChar * val){ xmlCtxtErr(ctxt,
      NULL, XML_FROM_PARSER, error, XML_ERR_ERROR, val, NULL, NULL, 0, msg, val);
      } /** * Handle a fatal parser error, i.e. violating Well-Formedness constraints
      * * @param ctxt an XML parser context * @param error the error number * @param
      msg the message * @param info1 extra information string * @param info2 extra
      information string * @param info3 extra information string */ static void LIBXML_ATTR_FORMAT(3,0)xmlNsErr(xmlParserCtxtPtr
      ctxt, xmlParserErrors error, const char *msg, const xmlChar * info1, const xmlChar
      * info2, const xmlChar * info3){ ctxt->nsWellFormed = 0; xmlCtxtErr(ctxt, NULL,
      XML_FROM_NAMESPACE, error, XML_ERR_ERROR, info1, info2, info3, 0, msg, info1,
      info2, info3);} /** * Handle a namespace warning error * * @param ctxt an XML
      parser context * @param error the error number * @param msg the message * @param
      info1 extra information string * @param info2 extra information string * @param
      info3 extra information string */ static void LIBXML_ATTR_FORMAT(3,0)xmlNsWarn(xmlParserCtxtPtr
      ctxt, xmlParserErrors error, const char *msg, const xmlChar * info1, const xmlChar
      * info2, const xmlChar * info3){ xmlCtxtErr(ctxt, NULL, XML_FROM_NAMESPACE,
      error, XML_ERR_WARNING, info1, info2, info3, 0, msg, info1, info2, info3); }static
      voidxmlSaturatedAdd(unsigned long *dst, unsigned long val) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSBufAddCString
      Src: /src/libxml2/parser.c:786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - xmlSBuf*
    constantsTouched: []
    func_position:
      end: 787
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 787
    functionName: xmlSBufAddReplChar
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlSBufAddCString
    linkageType: ''
    returnType: void
    signature: 'static void xmlSBufAddReplChar(xmlSBuf *buf) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlExpandEntitiesInAttValue
      Src: /src/libxml2/parser.c:2792,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 7
    argNames:
    - ctxt
    - str
    - len
    - ATTRIBUTE_UNUSED
    - end
    - end2
    - end3
    argTypes:
    - xmlParserCtxt*
    - xmlChar*
    - int
    - int
    - xmlChar
    - xmlChar
    - xmlChar
    constantsTouched: []
    func_position:
      end: 2793
      start: 2781
    functionDepth: 0
    functionLinenumber: 2781
    functionLinenumberEnd: 2793
    functionName: xmlStringLenDecodeEntities
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlExpandEntitiesInAttValue
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlStringLenDecodeEntities(xmlParserCtxt *ctxt, const xmlChar
      *str, int len, int what ATTRIBUTE_UNUSED, xmlChar end, xmlChar end2, xmlChar
      end3) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlCurrentChar
      Src: /src/libxml2/parser.c:3120,1
    - Dst: xmlIsNameStartChar
      Src: /src/libxml2/parser.c:3121,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:3124,1
    - Dst: xmlCurrentChar
      Src: /src/libxml2/parser.c:3125,1
    - Dst: xmlIsNameChar
      Src: /src/libxml2/parser.c:3126,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:3129,1
    - Dst: xmlCurrentChar
      Src: /src/libxml2/parser.c:3130,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:3133,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:3142,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/parser.c:3147,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/parser.c:3149,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:3151,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 3153
      start: 3107
    functionDepth: 0
    functionLinenumber: 3107
    functionLinenumberEnd: 3153
    functionName: xmlParseNameComplex
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - NEXTL
    - xmlFatalErr
    - xmlErrMemory
    - xmlIsNameStartChar
    - xmlCurrentChar
    - xmlIsNameChar
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlParseNameComplex(xmlParserCtxtPtr ctxt) '
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: xmlSBufInit
      Src: /src/libxml2/parser.c:4059,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:4079,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:4108,1
    - Dst: xmlSBufAddCString
      Src: /src/libxml2/parser.c:4147,1
    - Dst: xmlSBufAddChar
      Src: /src/libxml2/parser.c:4185,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:4193,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:4214,1
    - Dst: xmlExpandEntityInAttValue
      Src: /src/libxml2/parser.c:4217,1
    - Dst: xmlSBufAddCString
      Src: /src/libxml2/parser.c:4235,1
    - Dst: xmlSBufFinish
      Src: /src/libxml2/parser.c:4263,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:4068,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:4105,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:4126,1
    - Dst: xmlSBufAddReplChar
      Src: /src/libxml2/parser.c:4129,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:4136,1
    - Dst: xmlParseCharRef
      Src: /src/libxml2/parser.c:4167,1
    - Dst: xmlSBufAddCString
      Src: /src/libxml2/parser.c:4212,1
    - Dst: xmlCheckEntityInAttValue
      Src: /src/libxml2/parser.c:4223,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:4234,1
    - Dst: xmlStrlen
      Src: /src/libxml2/parser.c:4234,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:4256,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:4083,1
    - Dst: xmlSBufAddReplChar
      Src: /src/libxml2/parser.c:4104,1
    - Dst: IS_BYTE_CHAR
      Src: /src/libxml2/parser.c:4122,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:4154,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:4158,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:4159,1
    - Dst: xmlSBufAddCString
      Src: /src/libxml2/parser.c:4176,1
    - Dst: xmlSBufAddCString
      Src: /src/libxml2/parser.c:4182,1
    - Dst: xmlParseEntityRefInternal
      Src: /src/libxml2/parser.c:4197,1
    - Dst: xmlSBufCleanup
      Src: /src/libxml2/parser.c:4253,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:4275,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:4065,1
    - Dst: xmlUTF8MultibyteLen
      Src: /src/libxml2/parser.c:4097,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:4101,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:4118,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:4123,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:4143,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:4163,1
    - Dst: xmlLookupGeneralEntity
      Src: /src/libxml2/parser.c:4206,1
    - Dst: xmlParserEntityCheck
      Src: /src/libxml2/parser.c:4225,1
    - Dst: xmlSBufAddCString
      Src: /src/libxml2/parser.c:4233,1
    - Dst: xmlSBufCleanup
      Src: /src/libxml2/parser.c:4280,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 188
    argCount: 5
    argNames:
    - ctxt
    - attlen
    - outFlags
    - special
    - isNamespace
    argTypes:
    - xmlParserCtxtPtr
    - int*
    - int*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 4282
      start: 4042
    functionDepth: 0
    functionLinenumber: 4042
    functionLinenumberEnd: 4282
    functionName: xmlParseAttValueInternal
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParserEntityCheck
    - xmlStrlen
    - xmlSBufAddCString
    - xmlSBufCleanup
    - xmlSBufAddString
    - xmlParseEntityRefInternal
    - xmlSBufAddChar
    - xmlSBufAddReplChar
    - xmlExpandEntityInAttValue
    - xmlFatalErrMsg
    - NXT
    - PARSER_STOPPED
    - IS_BYTE_CHAR
    - xmlUTF8MultibyteLen
    - xmlLookupGeneralEntity
    - xmlSBufInit
    - xmlSBufFinish
    - NEXTL
    - xmlFatalErr
    - xmlParseCharRef
    - xmlCheckEntityInAttValue
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlParseAttValueInternal(xmlParserCtxtPtr ctxt, int
      *attlen, int *outFlags, int special, int isNamespace) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: NXT
      Src: /src/libxml2/parser.c:6768,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:6768,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:6769,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:6816,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:6817,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:6816,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:6866,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:6876,1
    - Dst: xmlParseMarkupDecl
      Src: /src/libxml2/parser.c:6868,1
    - Dst: xmlPopPE
      Src: /src/libxml2/parser.c:6766,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:6762,1
    - Dst: CMP6
      Src: /src/libxml2/parser.c:6792,1
    - Dst: xmlValidityError
      Src: /src/libxml2/parser.c:6803,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:6795,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:6813,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:6798,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:6826,1
    - Dst: xmlValidityError
      Src: /src/libxml2/parser.c:6837,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:6844,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:6759,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:6778,1
    - Dst: xmlValidityError
      Src: /src/libxml2/parser.c:6783,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:6811,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:6821,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:6848,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:6848,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:6850,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:6865,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:6866,1
    - Dst: CMP7
      Src: /src/libxml2/parser.c:6774,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:6775,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:6824,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:6825,1
    - Dst: xmlValidityError
      Src: /src/libxml2/parser.c:6859,1
    - Dst: xmlParsePERefInternal
      Src: /src/libxml2/parser.c:6870,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 113
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 6887
      start: 6752
    functionDepth: 0
    functionLinenumber: 6752
    functionLinenumberEnd: 6887
    functionName: xmlParseConditionalSections
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - NXT
    - xmlFatalErrMsg
    - xmlParseMarkupDecl
    - PARSER_STOPPED
    - xmlPopPE
    - xmlFatalErr
    - xmlErrMemory
    - SKIP
    - xmlParsePERefInternal
    - CMP7
    - xmlValidityError
    - CMP6
    linkageType: ''
    returnType: void
    signature: 'static void xmlParseConditionalSections(xmlParserCtxtPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAXParseMemory
      Src: /src/libxml2/parser.c:12790,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 12791
      start: 12789
    functionDepth: 0
    functionLinenumber: 12789
    functionLinenumberEnd: 12791
    functionName: xmlRecoverMemory
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlSAXParseMemory
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlRecoverMemory(const char *buffer, int size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/parser.c:792,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:794,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - buf
    - ctxt
    - errMsg
    argTypes:
    - xmlSBuf*
    - xmlParserCtxtPtr
    - char*
    constantsTouched: []
    func_position:
      end: 795
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 795
    functionName: xmlSBufReportError
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFatalErr
    - xmlCtxtErrMemory
    linkageType: ''
    returnType: void
    signature: 'static void xmlSBufReportError(xmlSBuf *buf, xmlParserCtxtPtr ctxt,
      const char *errMsg) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libxml2/parser.c:1476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - nsdb
    argTypes:
    - xmlParserNsData*
    constantsTouched: []
    func_position:
      end: 1477
      start: 1466
    functionDepth: 0
    functionLinenumber: 1466
    functionLinenumberEnd: 1477
    functionName: xmlParserNsReset
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: 'static void xmlParserNsReset(xmlParserNsData *nsdb) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlParsePERefInternal
      Src: /src/libxml2/parser.c:2765,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 2766
      start: 2763
    functionDepth: 0
    functionLinenumber: 2763
    functionLinenumberEnd: 2766
    functionName: xmlParserHandlePEReference
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParsePERefInternal
    linkageType: ''
    returnType: void
    signature: 'void xmlParserHandlePEReference(xmlParserCtxt *ctxt) '
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:3860,1
    - Dst: xmlParseStringCharRef
      Src: /src/libxml2/parser.c:3913,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:3957,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:3952,1
    - Dst: xmlParseStringEntityRef
      Src: /src/libxml2/parser.c:3939,1
    - Dst: xmlParserEntityCheck
      Src: /src/libxml2/parser.c:3849,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:3883,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:3947,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:3843,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:3873,1
    - Dst: xmlSBufAddCString
      Src: /src/libxml2/parser.c:3893,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:3909,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:3935,1
    - Dst: xmlLookupGeneralEntity
      Src: /src/libxml2/parser.c:3946,1
    - Dst: xmlExpandEntityInAttValue
      Src: /src/libxml2/parser.c:3963,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:3972,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:3836,1
    - Dst: xmlHaltParser
      Src: /src/libxml2/parser.c:3844,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:3889,1
    - Dst: xmlSBufAddCString
      Src: /src/libxml2/parser.c:3924,1
    - Dst: xmlSBufAddChar
      Src: /src/libxml2/parser.c:3927,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 113
    argCount: 8
    argNames:
    - ctxt
    - buf
    - str
    - pent
    - normalize
    - inSpace
    - depth
    - check
    argTypes:
    - xmlParserCtxtPtr
    - xmlSBuf*
    - xmlChar*
    - xmlEntityPtr
    - int
    - int*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3975
      start: 3823
    functionDepth: 0
    functionLinenumber: 3823
    functionLinenumberEnd: 3975
    functionName: xmlExpandEntityInAttValue
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFatalErrMsg
    - xmlParserEntityCheck
    - xmlParseStringEntityRef
    - PARSER_STOPPED
    - xmlParseStringCharRef
    - xmlFatalErr
    - xmlSBufAddCString
    - xmlSBufAddChar
    - xmlHaltParser
    - xmlFatalErrMsgStr
    - xmlLookupGeneralEntity
    - xmlExpandEntityInAttValue
    - xmlSBufAddString
    linkageType: ''
    returnType: int
    signature: 'static int xmlExpandEntityInAttValue(xmlParserCtxtPtr ctxt, xmlSBuf
      *buf, const xmlChar *str, xmlEntityPtr pent, int normalize, int *inSpace, int
      depth, int check) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseName
      Src: /src/libxml2/parser.c:7476,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:7483,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:7478,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 7489
      start: 7467
    functionDepth: 0
    functionLinenumber: 7467
    functionLinenumberEnd: 7489
    functionName: xmlParseEntityRefInternal
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFatalErrMsg
    - xmlParseName
    - xmlFatalErr
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlParseEntityRefInternal(xmlParserCtxtPtr ctxt) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: spacePush
      Src: /src/libxml2/parser.c:9733,1
    - Dst: xmlParseStartTag
      Src: /src/libxml2/parser.c:9744,1
    - Dst: spacePop
      Src: /src/libxml2/parser.c:9747,1
    - Dst: nameNsPush
      Src: /src/libxml2/parser.c:9750,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:9767,1
    - Dst: spacePop
      Src: /src/libxml2/parser.c:9811,1
    - Dst: xmlParserNsPop
      Src: /src/libxml2/parser.c:9813,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:9768,1
    - Dst: namePop
      Src: /src/libxml2/parser.c:9810,1
    - Dst: xmlFatalErrMsgInt
      Src: /src/libxml2/parser.c:9716,1
    - Dst: spacePush
      Src: /src/libxml2/parser.c:9731,1
    - Dst: xmlValidateRoot
      Src: /src/libxml2/parser.c:9761,1
    - Dst: xmlParserAddNodeInfo
      Src: /src/libxml2/parser.c:9799,1
    - Dst: xmlParserNsPop
      Src: /src/libxml2/parser.c:9783,1
    - Dst: xmlParserAddNodeInfo
      Src: /src/libxml2/parser.c:9789,1
    - Dst: namePop
      Src: /src/libxml2/parser.c:9780,1
    - Dst: xmlFatalErrMsgStrIntStr
      Src: /src/libxml2/parser.c:9802,1
    - Dst: spacePush
      Src: /src/libxml2/parser.c:9735,1
    - Dst: xmlHaltParser
      Src: /src/libxml2/parser.c:9719,1
    - Dst: xmlParseStartTag2
      Src: /src/libxml2/parser.c:9741,1
    - Dst: spacePop
      Src: /src/libxml2/parser.c:9781,1
    - Dst: nodePop
      Src: /src/libxml2/parser.c:9809,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 81
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 9818
      start: 9704
    functionDepth: 0
    functionLinenumber: 9704
    functionLinenumberEnd: 9818
    functionName: xmlParseElementStart
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParserNsPop
    - namePop
    - xmlValidateRoot
    - xmlParseStartTag
    - NXT
    - xmlFatalErrMsgStrIntStr
    - xmlParserAddNodeInfo
    - xmlFatalErrMsgInt
    - xmlHaltParser
    - nodePop
    - nameNsPush
    - SKIP
    - xmlParseStartTag2
    - spacePush
    - spacePop
    linkageType: ''
    returnType: int
    signature: 'static int xmlParseElementStart(xmlParserCtxtPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAXParseMemory
      Src: /src/libxml2/parser.c:12774,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 12775
      start: 12773
    functionDepth: 0
    functionLinenumber: 12773
    functionLinenumberEnd: 12775
    functionName: xmlParseMemory
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlSAXParseMemory
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlParseMemory(const char *buffer, int size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:1456,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:1457,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:1458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - nsdb
    argTypes:
    - xmlParserNsData*
    constantsTouched: []
    func_position:
      end: 1459
      start: 1451
    functionDepth: 0
    functionLinenumber: 1451
    functionLinenumberEnd: 1459
    functionName: xmlParserNsFree
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xmlParserNsFree(xmlParserNsData *nsdb) '
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseEntityRefInternal
      Src: /src/libxml2/parser.c:7136,1
    - Dst: xmlCtxtParseEntity
      Src: /src/libxml2/parser.c:7233,1
    - Dst: xmlStrlen
      Src: /src/libxml2/parser.c:7289,1
    - Dst: xmlDocCopyNode
      Src: /src/libxml2/parser.c:7309,1
    - Dst: xmlParseCharRef
      Src: /src/libxml2/parser.c:7117,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:7114,1
    - Dst: COPY_BUF
      Src: /src/libxml2/parser.c:7125,1
    - Dst: xmlStrlen
      Src: /src/libxml2/parser.c:7165,1
    - Dst: xmlCtxtParseEntity
      Src: /src/libxml2/parser.c:7222,1
    - Dst: xmlStrlen
      Src: /src/libxml2/parser.c:7266,1
    - Dst: xmlLookupGeneralEntity
      Src: /src/libxml2/parser.c:7139,1
    - Dst: xmlParserEntityCheck
      Src: /src/libxml2/parser.c:7241,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:7312,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 130
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 7336
      start: 7102
    functionDepth: 0
    functionLinenumber: 7102
    functionLinenumberEnd: 7336
    functionName: xmlParseReference
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtParseEntity
    - NXT
    - xmlParserEntityCheck
    - xmlParseEntityRefInternal
    - xmlStrlen
    - COPY_BUF
    - xmlErrMemory
    - xmlParseCharRef
    - xmlLookupGeneralEntity
    - xmlDocCopyNode
    linkageType: ''
    returnType: void
    signature: 'void xmlParseReference(xmlParserCtxt *ctxt) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetPredefinedEntity
      Src: /src/libxml2/parser.c:7407,1
    - Dst: xmlSAX2GetEntity
      Src: /src/libxml2/parser.c:7424,1
    - Dst: xmlHandleUndeclaredEntity
      Src: /src/libxml2/parser.c:7429,1
    - Dst: xmlGetPredefinedEntity
      Src: /src/libxml2/parser.c:7421,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:7438,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:7450,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 3
    argNames:
    - ctxt
    - name
    - inAttr
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 7457
      start: 7399
    functionDepth: 0
    functionLinenumber: 7399
    functionLinenumberEnd: 7457
    functionName: xmlLookupGeneralEntity
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlHandleUndeclaredEntity
    - xmlFatalErrMsgStr
    - xmlSAX2GetEntity
    - xmlGetPredefinedEntity
    linkageType: ''
    returnType: xmlEntityPtr
    signature: 'static xmlEntityPtr xmlLookupGeneralEntity(xmlParserCtxtPtr ctxt,
      const xmlChar *name, int inAttr) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseElementStart
      Src: /src/libxml2/parser.c:9677,1
    - Dst: xmlFatalErrMsgStrIntStr
      Src: /src/libxml2/parser.c:9686,1
    - Dst: xmlParseContentInternal
      Src: /src/libxml2/parser.c:9680,1
    - Dst: xmlParseElementEnd
      Src: /src/libxml2/parser.c:9693,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 9694
      start: 9675
    functionDepth: 0
    functionLinenumber: 9675
    functionLinenumberEnd: 9694
    functionName: xmlParseElement
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParseElementStart
    - xmlFatalErrMsgStrIntStr
    - xmlParseContentInternal
    - xmlParseElementEnd
    linkageType: ''
    returnType: void
    signature: 'void xmlParseElement(xmlParserCtxt *ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAXParseMemoryWithData
      Src: /src/libxml2/parser.c:12760,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - sax
    - buffer
    - size
    - recovery
    argTypes:
    - xmlSAXHandler*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 12761
      start: 12757
    functionDepth: 0
    functionLinenumber: 12757
    functionLinenumberEnd: 12761
    functionName: xmlSAXParseMemory
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlSAXParseMemoryWithData
    linkageType: ''
    returnType: xmlDoc*
    signature: "xmlDoc *xmlSAXParseMemory(xmlSAXHandler *sax, const char *buffer,\t
      int size, int recovery) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:7364,1
    - Dst: xmlErrMsgStr
      Src: /src/libxml2/parser.c:7389,1
    - Dst: xmlValidityError
      Src: /src/libxml2/parser.c:7375,1
    - Dst: xmlWarningMsg
      Src: /src/libxml2/parser.c:7392,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - name
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 7397
      start: 7338
    functionDepth: 0
    functionLinenumber: 7338
    functionLinenumberEnd: 7397
    functionName: xmlHandleUndeclaredEntity
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlValidityError
    - xmlErrMsgStr
    - xmlWarningMsg
    - xmlFatalErrMsgStr
    linkageType: ''
    returnType: void
    signature: 'static void xmlHandleUndeclaredEntity(xmlParserCtxtPtr ctxt, const
      xmlChar *name) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/parser.c:1648,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:1659,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:1654,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:1668,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 1670
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1670
    functionName: xmlParserNsGrow
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlErrMemory
    linkageType: ''
    returnType: int
    signature: 'static int xmlParserNsGrow(xmlParserCtxtPtr ctxt) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:3723,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:3762,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:3729,1
    - Dst: xmlHaltParser
      Src: /src/libxml2/parser.c:3730,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:3754,1
    - Dst: xmlParseStringCharRef
      Src: /src/libxml2/parser.c:3770,1
    - Dst: xmlParseStringEntityRef
      Src: /src/libxml2/parser.c:3779,1
    - Dst: xmlLookupGeneralEntity
      Src: /src/libxml2/parser.c:3785,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:3786,1
    - Dst: xmlCheckEntityInAttValue
      Src: /src/libxml2/parser.c:3792,1
    - Dst: xmlSaturatedAdd
      Src: /src/libxml2/parser.c:3797,1
    - Dst: xmlSaturatedAdd
      Src: /src/libxml2/parser.c:3796,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 3
    argNames:
    - ctxt
    - pent
    - depth
    argTypes:
    - xmlParserCtxtPtr
    - xmlEntityPtr
    - int
    constantsTouched: []
    func_position:
      end: 3807
      start: 3714
    functionDepth: 0
    functionLinenumber: 3714
    functionLinenumberEnd: 3807
    functionName: xmlCheckEntityInAttValue
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFatalErrMsg
    - xmlParseStringEntityRef
    - xmlSaturatedAdd
    - PARSER_STOPPED
    - xmlFatalErr
    - xmlHaltParser
    - xmlFatalErrMsgStr
    - xmlLookupGeneralEntity
    - xmlCheckEntityInAttValue
    - xmlParseStringCharRef
    linkageType: ''
    returnType: void
    signature: 'static void xmlCheckEntityInAttValue(xmlParserCtxtPtr ctxt, xmlEntityPtr
      pent, int depth) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseCharDataInternal
      Src: /src/libxml2/parser.c:4735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ctxt
    - cdata
    argTypes:
    - xmlParserCtxt*
    - ATTRIBUTE_UNUSED
    constantsTouched: []
    func_position:
      end: 4736
      start: 4733
    functionDepth: 0
    functionLinenumber: 4733
    functionLinenumberEnd: 4736
    functionName: xmlParseCharData
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParseCharDataInternal
    linkageType: ''
    returnType: void
    signature: 'void xmlParseCharData(xmlParserCtxt *ctxt, ATTRIBUTE_UNUSED int cdata) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlCurrentCharRecover
      Src: /src/libxml2/parser.c:4864,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:4881,1
    - Dst: xmlCurrentCharRecover
      Src: /src/libxml2/parser.c:4901,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:4921,1
    - Dst: xmlMalloc
      Src: /src/libxml2/parser.c:4836,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:4838,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:4849,1
    - Dst: xmlCurrentCharRecover
      Src: /src/libxml2/parser.c:4853,1
    - Dst: IS_CHAR
      Src: /src/libxml2/parser.c:4856,1
    - Dst: xmlFatalErrMsgInt
      Src: /src/libxml2/parser.c:4857,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:4884,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:4860,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/parser.c:4877,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:4886,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:4900,1
    - Dst: IS_CHAR
      Src: /src/libxml2/parser.c:4908,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:4879,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:4871,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:4906,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:4923,1
    - Dst: xmlFatalErrMsgInt
      Src: /src/libxml2/parser.c:4909,1
    - Dst: xmlCurrentCharRecover
      Src: /src/libxml2/parser.c:4842,1
    - Dst: IS_CHAR
      Src: /src/libxml2/parser.c:4845,1
    - Dst: xmlFatalErrMsgInt
      Src: /src/libxml2/parser.c:4846,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:4852,1
    - Dst: IS_CHAR
      Src: /src/libxml2/parser.c:4867,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:4863,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:4887,1
    - Dst: COPY_BUF
      Src: /src/libxml2/parser.c:4893,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:4918,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 88
    argCount: 4
    argNames:
    - ctxt
    - buf
    - len
    - size
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 4924
      start: 4823
    functionDepth: 0
    functionLinenumber: 4823
    functionLinenumberEnd: 4924
    functionName: xmlParseCommentComplex
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - IS_CHAR
    - xmlGrowCapacity
    - xmlRealloc
    - NEXTL
    - xmlCurrentCharRecover
    - xmlFatalErr
    - COPY_BUF
    - xmlErrMemory
    - xmlFatalErrMsgInt
    - xmlFatalErrMsgStr
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: 'static void xmlParseCommentComplex(xmlParserCtxtPtr ctxt, xmlChar
      *buf, size_t len, size_t size) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseName
      Src: /src/libxml2/parser.c:8195,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:8211,1
    - Dst: IS_BYTE_CHAR
      Src: /src/libxml2/parser.c:8212,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:8212,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:8197,1
    - Dst: xmlParseAttribute
      Src: /src/libxml2/parser.c:8213,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:8223,1
    - Dst: xmlErrAttributeDup
      Src: /src/libxml2/parser.c:8224,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/parser.c:8235,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:8238,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:8245,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:8247,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:8267,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:8273,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:8295,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 81
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 8298
      start: 8182
    functionDepth: 0
    functionLinenumber: 8182
    functionLinenumberEnd: 8298
    functionName: xmlParseStartTag
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFatalErrMsg
    - xmlParseName
    - NXT
    - PARSER_STOPPED
    - IS_BYTE_CHAR
    - xmlGrowCapacity
    - xmlRealloc
    - xmlErrMemory
    - xmlStrEqual
    - xmlErrAttributeDup
    - xmlParseAttribute
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlParseStartTag(xmlParserCtxt *ctxt) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewSAXParserCtxt
      Src: /src/libxml2/parser.c:12721,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:12739,1
    - Dst: xmlCtxtParseDocument
      Src: /src/libxml2/parser.c:12737,1
    - Dst: xmlCtxtNewInputFromMemory
      Src: /src/libxml2/parser.c:12733,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 5
    argNames:
    - sax
    - buffer
    - size
    - recovery
    - data
    argTypes:
    - xmlSAXHandler*
    - char*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 12741
      start: 12711
    functionDepth: 0
    functionLinenumber: 12711
    functionLinenumberEnd: 12741
    functionName: xmlSAXParseMemoryWithData
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlNewSAXParserCtxt
    - xmlCtxtParseDocument
    - xmlCtxtNewInputFromMemory
    - xmlFreeParserCtxt
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlSAXParseMemoryWithData(xmlSAXHandler *sax, const char *buffer,
      int size, int recovery, void *data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/parser.c:2017,1
    - Dst: xmlHaltParser
      Src: /src/libxml2/parser.c:2024,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:2028,1
    - Dst: xmlFatalErrMsgInt
      Src: /src/libxml2/parser.c:2020,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:2030,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - value
    argTypes:
    - xmlParserCtxt*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2040
      start: 2006
    functionDepth: 0
    functionLinenumber: 2006
    functionLinenumberEnd: 2040
    functionName: nodePush
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlErrMemory
    - xmlFatalErrMsgInt
    - xmlHaltParser
    linkageType: ''
    returnType: int
    signature: 'int nodePush(xmlParserCtxt *ctxt, xmlNode *value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCurrentChar
      Src: /src/libxml2/parser.c:2322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ctxt
    - len
    argTypes:
    - xmlParserCtxtPtr
    - int*
    constantsTouched: []
    func_position:
      end: 2328
      start: 2320
    functionDepth: 0
    functionLinenumber: 2320
    functionLinenumberEnd: 2328
    functionName: xmlCurrentCharRecover
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCurrentChar
    linkageType: ''
    returnType: int
    signature: 'static int xmlCurrentCharRecover(xmlParserCtxtPtr ctxt, int *len) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: CMP7
      Src: /src/libxml2/parser.c:6154,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:6155,1
    - Dst: xmlNewDocElementContent
      Src: /src/libxml2/parser.c:6183,1
    - Dst: xmlNewDocElementContent
      Src: /src/libxml2/parser.c:6194,1
    - Dst: xmlSkipBlankCharsPEBalanced
      Src: /src/libxml2/parser.c:6200,1
    - Dst: xmlSkipBlankCharsPEBalanced
      Src: /src/libxml2/parser.c:6208,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:6203,1
    - Dst: xmlValidityError
      Src: /src/libxml2/parser.c:6222,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6230,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:6210,1
    - Dst: xmlNewDocElementContent
      Src: /src/libxml2/parser.c:6167,1
    - Dst: xmlParseName
      Src: /src/libxml2/parser.c:6201,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6205,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:6228,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:6241,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:6231,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/parser.c:6242,1
    - Dst: xmlSkipBlankCharsPEBalanced
      Src: /src/libxml2/parser.c:6156,1
    - Dst: xmlValidityError
      Src: /src/libxml2/parser.c:6160,1
    - Dst: xmlNewDocElementContent
      Src: /src/libxml2/parser.c:6177,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:6181,1
    - Dst: xmlNewDocElementContent
      Src: /src/libxml2/parser.c:6212,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:6236,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 81
    argCount: 2
    argNames:
    - ctxt
    - openInputNr
    argTypes:
    - xmlParserCtxt*
    - int
    constantsTouched: []
    func_position:
      end: 6244
      start: 6148
    functionDepth: 0
    functionLinenumber: 6148
    functionLinenumberEnd: 6244
    functionName: xmlParseElementMixedContentDecl
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFatalErrMsg
    - xmlParseName
    - NXT
    - PARSER_STOPPED
    - xmlNewDocElementContent
    - xmlSkipBlankCharsPEBalanced
    - xmlFatalErr
    - xmlErrMemory
    - SKIP
    - xmlFreeDocElementContent
    - CMP7
    - xmlValidityError
    linkageType: ''
    returnType: xmlElementContent*
    signature: 'xmlElementContent *xmlParseElementMixedContentDecl(xmlParserCtxt *ctxt,
      int openInputNr) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseName
      Src: /src/libxml2/parser.c:7612,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:7614,1
    - Dst: xmlHandleUndeclaredEntity
      Src: /src/libxml2/parser.c:7635,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:7618,1
    - Dst: xmlWarningMsg
      Src: /src/libxml2/parser.c:7642,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:7654,1
    - Dst: xmlHaltParser
      Src: /src/libxml2/parser.c:7655,1
    - Dst: xmlNewEntityInputStream
      Src: /src/libxml2/parser.c:7659,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/parser.c:7660,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:7661,1
    - Dst: xmlDetectEncoding
      Src: /src/libxml2/parser.c:7673,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:7676,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:7676,1
    - Dst: CMP5
      Src: /src/libxml2/parser.c:7675,1
    - Dst: xmlParseTextDecl
      Src: /src/libxml2/parser.c:7677,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 2
    argNames:
    - ctxt
    - markupDecl
    argTypes:
    - xmlParserCtxt*
    - int
    constantsTouched: []
    func_position:
      end: 7682
      start: 7603
    functionDepth: 0
    functionLinenumber: 7603
    functionLinenumberEnd: 7682
    functionName: xmlParsePERefInternal
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFatalErrMsg
    - xmlParseName
    - NXT
    - xmlParseTextDecl
    - xmlFreeInputStream
    - xmlFatalErr
    - xmlCtxtPushInput
    - xmlHaltParser
    - xmlHandleUndeclaredEntity
    - xmlNewEntityInputStream
    - IS_BLANK_CH
    - xmlDetectEncoding
    - CMP5
    - xmlWarningMsg
    linkageType: ''
    returnType: void
    signature: 'static void xmlParsePERefInternal(xmlParserCtxt *ctxt, int markupDecl) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: CMP6
      Src: /src/libxml2/parser.c:9464,1
    - Dst: xmlCurrentCharRecover
      Src: /src/libxml2/parser.c:9474,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:9483,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/parser.c:9492,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:9516,1
    - Dst: xmlCurrentCharRecover
      Src: /src/libxml2/parser.c:9468,1
    - Dst: IS_CHAR
      Src: /src/libxml2/parser.c:9469,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:9470,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:9479,1
    - Dst: xmlMalloc
      Src: /src/libxml2/parser.c:9481,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:9511,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:9460,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:9460,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:9466,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:9462,1
    - Dst: xmlCurrentCharRecover
      Src: /src/libxml2/parser.c:9480,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:9494,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:9500,1
    - Dst: xmlCurrentCharRecover
      Src: /src/libxml2/parser.c:9512,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:9520,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:9473,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:9476,1
    - Dst: IS_CHAR
      Src: /src/libxml2/parser.c:9475,1
    - Dst: IS_CHAR
      Src: /src/libxml2/parser.c:9486,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:9498,1
    - Dst: COPY_BUF
      Src: /src/libxml2/parser.c:9506,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:9535,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 84
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 9536
      start: 9448
    functionDepth: 0
    functionLinenumber: 9448
    functionLinenumberEnd: 9536
    functionName: xmlParseCDSect
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - NXT
    - IS_CHAR
    - xmlFatalErrMsg
    - xmlGrowCapacity
    - xmlRealloc
    - NEXTL
    - xmlCurrentCharRecover
    - xmlFatalErr
    - COPY_BUF
    - xmlErrMemory
    - SKIP
    - xmlFatalErrMsgStr
    - xmlMalloc
    - CMP6
    linkageType: ''
    returnType: void
    signature: 'void xmlParseCDSect(xmlParserCtxt *ctxt) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:2853,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/parser.c:2871,1
    - Dst: xmlGetLastChild
      Src: /src/libxml2/parser.c:2893,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:2891,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/parser.c:2868,1
    - Dst: xmlNodeIsText
      Src: /src/libxml2/parser.c:2897,1
    - Dst: xmlNodeIsText
      Src: /src/libxml2/parser.c:2900,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 50
    argCount: 4
    argNames:
    - ctxt
    - str
    - len
    - blank_chars
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2903
      start: 2836
    functionDepth: 0
    functionLinenumber: 2836
    functionLinenumberEnd: 2903
    functionName: areBlanks
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - NXT
    - xmlHashLookup2
    - xmlNodeIsText
    - IS_BLANK_CH
    - xmlGetLastChild
    linkageType: ''
    returnType: int
    signature: 'static int areBlanks(xmlParserCtxtPtr ctxt, const xmlChar *str, int
      len, int blank_chars) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 1995
      start: 1978
    functionDepth: 0
    functionLinenumber: 1978
    functionLinenumberEnd: 1995
    functionName: xmlCtxtPopInput
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlCtxtPopInput(xmlParserCtxt *ctxt) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PARSER_IN_PE
      Src: /src/libxml2/parser.c:2426,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:2437,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:2436,1
    - Dst: xmlSkipBlankChars
      Src: /src/libxml2/parser.c:2430,1
    - Dst: PARSER_EXTERNAL
      Src: /src/libxml2/parser.c:2427,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:2441,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:2441,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:2441,1
    - Dst: xmlParsePERefInternal
      Src: /src/libxml2/parser.c:2450,1
    - Dst: PARSER_IN_PE
      Src: /src/libxml2/parser.c:2452,1
    - Dst: PARSER_EXTERNAL
      Src: /src/libxml2/parser.c:2469,1
    - Dst: xmlPopPE
      Src: /src/libxml2/parser.c:2466,1
    - Dst: PARSER_IN_PE
      Src: /src/libxml2/parser.c:2468,1
    - Dst: PARSER_EXTERNAL
      Src: /src/libxml2/parser.c:2453,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 2486
      start: 2420
    functionDepth: 0
    functionLinenumber: 2420
    functionLinenumberEnd: 2486
    functionName: xmlSkipBlankCharsPE
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - PARSER_EXTERNAL
    - NXT
    - xmlSkipBlankChars
    - PARSER_STOPPED
    - xmlPopPE
    - PARSER_IN_PE
    - IS_BLANK_CH
    - xmlParsePERefInternal
    linkageType: ''
    returnType: int
    signature: 'static int xmlSkipBlankCharsPE(xmlParserCtxtPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlExpandEntitiesInAttValue
      Src: /src/libxml2/parser.c:2817,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 6
    argNames:
    - ctxt
    - str
    - ATTRIBUTE_UNUSED
    - end
    - end2
    - end3
    argTypes:
    - xmlParserCtxt*
    - xmlChar*
    - int
    - xmlChar
    - xmlChar
    - xmlChar
    constantsTouched: []
    func_position:
      end: 2818
      start: 2807
    functionDepth: 0
    functionLinenumber: 2807
    functionLinenumberEnd: 2818
    functionName: xmlStringDecodeEntities
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlExpandEntitiesInAttValue
    linkageType: ''
    returnType: xmlChar*
    signature: "xmlChar *xmlStringDecodeEntities(xmlParserCtxt *ctxt, const xmlChar
      *str, int what ATTRIBUTE_UNUSED,\t\t xmlChar end, xmlChar end2, xmlChar end3) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PARSER_EXTERNAL
      Src: /src/libxml2/parser.c:6100,1
    - Dst: PARSER_IN_PE
      Src: /src/libxml2/parser.c:6113,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:6103,1
    - Dst: PARSER_IN_PE
      Src: /src/libxml2/parser.c:6100,1
    - Dst: xmlValidityError
      Src: /src/libxml2/parser.c:6107,1
    - Dst: xmlPopPE
      Src: /src/libxml2/parser.c:6114,1
    - Dst: xmlParsePERefInternal
      Src: /src/libxml2/parser.c:6118,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - openInputNr
    argTypes:
    - xmlParserCtxt*
    - int
    constantsTouched: []
    func_position:
      end: 6126
      start: 6093
    functionDepth: 0
    functionLinenumber: 6093
    functionLinenumberEnd: 6126
    functionName: xmlSkipBlankCharsPEBalanced
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - PARSER_EXTERNAL
    - PARSER_STOPPED
    - xmlPopPE
    - PARSER_IN_PE
    - xmlParsePERefInternal
    - xmlValidityError
    linkageType: ''
    returnType: void
    signature: 'static void xmlSkipBlankCharsPEBalanced(xmlParserCtxt *ctxt, int openInputNr) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NXT
      Src: /src/libxml2/parser.c:9387,1
    - Dst: xmlParseNameAndCompare
      Src: /src/libxml2/parser.c:9394,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:9388,1
    - Dst: xmlParseQNameAndCompare
      Src: /src/libxml2/parser.c:9396,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:9391,1
    - Dst: IS_BYTE_CHAR
      Src: /src/libxml2/parser.c:9403,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:9404,1
    - Dst: xmlFatalErrMsgStrIntStr
      Src: /src/libxml2/parser.c:9416,1
    - Dst: spacePop
      Src: /src/libxml2/parser.c:9429,1
    - Dst: xmlParserNsPop
      Src: /src/libxml2/parser.c:9431,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 2
    argNames:
    - ctxt
    - tag
    argTypes:
    - xmlParserCtxtPtr
    - xmlStartTag*
    constantsTouched: []
    func_position:
      end: 9432
      start: 9382
    functionDepth: 0
    functionLinenumber: 9382
    functionLinenumberEnd: 9432
    functionName: xmlParseEndTag2
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParserNsPop
    - xmlParseQNameAndCompare
    - NXT
    - xmlFatalErrMsgStrIntStr
    - IS_BYTE_CHAR
    - xmlFatalErr
    - xmlParseNameAndCompare
    - SKIP
    - spacePop
    linkageType: ''
    returnType: void
    signature: 'static void xmlParseEndTag2(xmlParserCtxtPtr ctxt, const xmlStartTag
      *tag) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CMP5
      Src: /src/libxml2/parser.c:10412,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:10412,1
    - Dst: xmlParseInternalSubset
      Src: /src/libxml2/parser.c:10448,1
    - Dst: xmlParseMisc
      Src: /src/libxml2/parser.c:10436,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:10474,1
    - Dst: xmlFinishDocument
      Src: /src/libxml2/parser.c:10488,1
    - Dst: xmlParseXMLDecl
      Src: /src/libxml2/parser.c:10417,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:10422,1
    - Dst: xmlParseMisc
      Src: /src/libxml2/parser.c:10482,1
    - Dst: xmlDetectEncoding
      Src: /src/libxml2/parser.c:10404,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/parser.c:10420,1
    - Dst: xmlParseDocTypeDecl
      Src: /src/libxml2/parser.c:10446,1
    - Dst: xmlParseMisc
      Src: /src/libxml2/parser.c:10465,1
    - Dst: CMP9
      Src: /src/libxml2/parser.c:10443,1
    - Dst: xmlCtxtInitializeLate
      Src: /src/libxml2/parser.c:10397,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:10407,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:10412,1
    - Dst: xmlCleanSpecialAttr
      Src: /src/libxml2/parser.c:10463,1
    - Dst: xmlParseElement
      Src: /src/libxml2/parser.c:10477,1
    - Dst: xmlParserCheckEOF
      Src: /src/libxml2/parser.c:10484,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 69
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 10496
      start: 10387
    functionDepth: 0
    functionLinenumber: 10387
    functionLinenumberEnd: 10496
    functionName: xmlParseDocument
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParseMisc
    - NXT
    - xmlFatalErrMsg
    - xmlParserCheckEOF
    - xmlParseInternalSubset
    - xmlFinishDocument
    - xmlCtxtInitializeLate
    - CMP9
    - xmlFatalErr
    - xmlErrMemory
    - xmlParseElement
    - xmlCleanSpecialAttr
    - IS_BLANK_CH
    - xmlDetectEncoding
    - CMP5
    - xmlParseXMLDecl
    - xmlParseDocTypeDecl
    - xmlCharStrdup
    linkageType: ''
    returnType: int
    signature: 'int xmlParseDocument(xmlParserCtxt *ctxt) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtPopInput
      Src: /src/libxml2/parser.c:12964,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:12965,1
    - Dst: DICT_FREE
      Src: /src/libxml2/parser.c:12990,1
    - Dst: xmlParserNsReset
      Src: /src/libxml2/parser.c:12986,1
    - Dst: DICT_FREE
      Src: /src/libxml2/parser.c:12988,1
    - Dst: DICT_FREE
      Src: /src/libxml2/parser.c:12992,1
    - Dst: DICT_FREE
      Src: /src/libxml2/parser.c:12994,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:12998,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/parser.c:13003,1
    - Dst: xmlInitNodeInfoSeq
      Src: /src/libxml2/parser.c:13025,1
    - Dst: xmlHashFree
      Src: /src/libxml2/parser.c:13028,1
    - Dst: xmlResetError
      Src: /src/libxml2/parser.c:13043,1
    - Dst: xmlHashFree
      Src: /src/libxml2/parser.c:13032,1
    - Dst: xmlCatalogFreeLocal
      Src: /src/libxml2/parser.c:13038,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 71
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 13044
      start: 12953
    functionDepth: 0
    functionLinenumber: 12953
    functionLinenumberEnd: 13044
    functionName: xmlCtxtReset
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFree
    - xmlParserNsReset
    - xmlCatalogFreeLocal
    - xmlFreeInputStream
    - xmlInitNodeInfoSeq
    - xmlCtxtPopInput
    - xmlFreeDoc
    - DICT_FREE
    - xmlResetError
    linkageType: ''
    returnType: void
    signature: 'void xmlCtxtReset(xmlParserCtxt *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtErr
      Src: /src/libxml2/parser.c:238,1
    - Dst: xmlCtxtErr
      Src: /src/libxml2/parser.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - ctxt
    - prefix
    - localname
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 245
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 245
    functionName: xmlErrAttributeDup
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtErr
    linkageType: ''
    returnType: void
    signature: 'static void xmlErrAttributeDup(xmlParserCtxtPtr ctxt, const xmlChar
      * prefix, const xmlChar * localname) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserShrink
      Src: /src/libxml2/parser.c:2385,1
    - Dst: xmlParserGrow
      Src: /src/libxml2/parser.c:2386,1
    - Dst: xmlSaturatedAdd
      Src: /src/libxml2/parser.c:2400,1
    - Dst: xmlSaturatedAdd
      Src: /src/libxml2/parser.c:2393,1
    - Dst: xmlSaturatedAddSizeT
      Src: /src/libxml2/parser.c:2390,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:2406,1
    - Dst: xmlCtxtPopInput
      Src: /src/libxml2/parser.c:2406,1
    - Dst: xmlParserEntityCheck
      Src: /src/libxml2/parser.c:2408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 2411
      start: 2367
    functionDepth: 0
    functionLinenumber: 2367
    functionLinenumberEnd: 2411
    functionName: xmlPopPE
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlSaturatedAdd
    - xmlParserEntityCheck
    - xmlParserGrow
    - xmlFreeInputStream
    - xmlSaturatedAddSizeT
    - xmlCtxtPopInput
    - xmlParserShrink
    linkageType: ''
    returnType: void
    signature: 'static void xmlPopPE(xmlParserCtxtPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:10372,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/parser.c:10373,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 10376
      start: 10357
    functionDepth: 0
    functionLinenumber: 10357
    functionLinenumberEnd: 10376
    functionName: xmlFinishDocument
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    - xmlFreeDoc
    linkageType: ''
    returnType: void
    signature: 'static void xmlFinishDocument(xmlParserCtxtPtr ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewSAXParserCtxt
      Src: /src/libxml2/parser.c:11556,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/parser.c:11558,1
    - Dst: xmlNewIOInputStream
      Src: /src/libxml2/parser.c:11567,1
    - Dst: xmlCtxtSetOptions
      Src: /src/libxml2/parser.c:11561,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/parser.c:11569,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:11570,1
    - Dst: xmlSwitchEncoding
      Src: /src/libxml2/parser.c:11575,1
    - Dst: xmlCtxtParseDtd
      Src: /src/libxml2/parser.c:11578,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:11580,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - sax
    - input
    - enc
    argTypes:
    - xmlSAXHandler*
    - xmlParserInputBuffer*
    - xmlCharEncoding
    constantsTouched: []
    func_position:
      end: 11582
      start: 11546
    functionDepth: 0
    functionLinenumber: 11546
    functionLinenumberEnd: 11582
    functionName: xmlIOParseDTD
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtParseDtd
    - xmlNewSAXParserCtxt
    - xmlSwitchEncoding
    - xmlNewIOInputStream
    - xmlFreeParserInputBuffer
    - xmlFreeParserCtxt
    - xmlCtxtSetOptions
    linkageType: ''
    returnType: xmlDtd*
    signature: "xmlDtd *xmlIOParseDTD(xmlSAXHandler *sax, xmlParserInputBuffer *input,\t
      xmlCharEncoding enc) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/parser.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: xmlErrMemory
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtErrMemory
    linkageType: ''
    returnType: void
    signature: 'static void xmlErrMemory(xmlParserCtxtPtr ctxt) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/parser.c:10002,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:10022,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:10023,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:10004,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/parser.c:10020,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:10026,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:10028,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:10029,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:10041,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 10044
      start: 9989
    functionDepth: 0
    functionLinenumber: 9989
    functionLinenumberEnd: 10044
    functionName: xmlParseEncName
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGrowCapacity
    - xmlRealloc
    - xmlFatalErr
    - xmlErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlParseEncName(xmlParserCtxt *ctxt) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:11478,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:11484,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/parser.c:11483,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:11479,1
    - Dst: xmlNewDoc
      Src: /src/libxml2/parser.c:11493,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:11495,1
    - Dst: xmlNewDtd
      Src: /src/libxml2/parser.c:11499,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:11502,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/parser.c:11503,1
    - Dst: xmlParseExternalSubset
      Src: /src/libxml2/parser.c:11507,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:11529,1
    - Dst: xmlCtxtPopInput
      Src: /src/libxml2/parser.c:11529,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/parser.c:11525,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 4
    argNames:
    - ctxt
    - input
    - publicId
    - systemId
    argTypes:
    - xmlParserCtxt*
    - xmlParserInput*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 11532
      start: 11472
    functionDepth: 0
    functionLinenumber: 11472
    functionLinenumberEnd: 11532
    functionName: xmlCtxtParseDtd
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFreeInputStream
    - xmlFatalErr
    - xmlCtxtPushInput
    - xmlErrMemory
    - xmlNewDtd
    - xmlCtxtPopInput
    - xmlParseExternalSubset
    - xmlNewDoc
    - xmlFreeDoc
    linkageType: ''
    returnType: xmlDtd*
    signature: 'xmlDtd *xmlCtxtParseDtd(xmlParserCtxt *ctxt, xmlParserInput *input,
      const xmlChar *publicId, const xmlChar *systemId) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictLookup
      Src: /src/libxml2/parser.c:947,1
    - Dst: xmlDictSetLimit
      Src: /src/libxml2/parser.c:955,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:952,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/parser.c:949,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/parser.c:948,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 966
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 966
    functionName: xmlCtxtInitializeLate
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlDictSetLimit
    - xmlDictLookup
    - xmlErrMemory
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtInitializeLate(xmlParserCtxtPtr ctxt) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserNsGrow
      Src: /src/libxml2/parser.c:1694,1
    - Dst: xmlParserNsLookup
      Src: /src/libxml2/parser.c:1726,1
    - Dst: xmlErrAttributeDup
      Src: /src/libxml2/parser.c:1710,1
    - Dst: xmlErrAttributeDup
      Src: /src/libxml2/parser.c:1735,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:1695,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:1761,1
    - Dst: xmlMalloc
      Src: /src/libxml2/parser.c:1765,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:1767,1
    - Dst: memset
      Src: /src/libxml2/parser.c:1770,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:1789,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 101
    argCount: 5
    argNames:
    - ctxt
    - prefix
    - uri
    - saxData
    - defAttr
    argTypes:
    - xmlParserCtxtPtr
    - xmlHashedString*
    - xmlHashedString*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 1829
      start: 1683
    functionDepth: 0
    functionLinenumber: 1683
    functionLinenumberEnd: 1829
    functionName: xmlParserNsPush
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlErrMemory
    - xmlParserNsLookup
    - xmlErrAttributeDup
    - xmlParserNsGrow
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlParserNsPush(xmlParserCtxtPtr ctxt, const xmlHashedString
      *prefix, const xmlHashedString *uri, void *saxData, int defAttr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 84
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3022
      start: 2994
    functionDepth: 0
    functionLinenumber: 2994
    functionLinenumberEnd: 3022
    functionName: xmlIsNameCharNew
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlIsNameCharNew(int c) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseNameAndCompare
      Src: /src/libxml2/parser.c:8483,1
    - Dst: xmlParseQName
      Src: /src/libxml2/parser.c:8510,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:8500,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 33
    argCount: 3
    argNames:
    - ctxt
    - name
    - prefix
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 8516
      start: 8475
    functionDepth: 0
    functionLinenumber: 8475
    functionLinenumberEnd: 8516
    functionName: xmlParseQNameAndCompare
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParseNameAndCompare
    - IS_BLANK_CH
    - xmlParseQName
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlParseQNameAndCompare(xmlParserCtxtPtr ctxt,
      xmlChar const *name, xmlChar const *prefix) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NXT
      Src: /src/libxml2/parser.c:9830,1
    - Dst: xmlParseEndTag2
      Src: /src/libxml2/parser.c:9839,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:9831,1
    - Dst: namePop
      Src: /src/libxml2/parser.c:9840,1
    - Dst: xmlParserFindNodeInfo
      Src: /src/libxml2/parser.c:9853,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 9860
      start: 9825
    functionDepth: 0
    functionLinenumber: 9825
    functionLinenumberEnd: 9860
    functionName: xmlParseElementEnd
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParserFindNodeInfo
    - NXT
    - SKIP
    - xmlParseEndTag2
    - namePop
    linkageType: ''
    returnType: void
    signature: 'static void xmlParseElementEnd(xmlParserCtxtPtr ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/libxml2/parser.c:10592,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - ctxt
    - c
    argTypes:
    - xmlParserCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 10605
      start: 10582
    functionDepth: 0
    functionLinenumber: 10582
    functionLinenumberEnd: 10605
    functionName: xmlParseLookupChar
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - memchr
    linkageType: ''
    returnType: int
    signature: 'static int xmlParseLookupChar(xmlParserCtxtPtr ctxt, int c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAXParseFileWithData
      Src: /src/libxml2/parser.c:12519,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - sax
    - filename
    - recovery
    argTypes:
    - xmlSAXHandler*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 12520
      start: 12516
    functionDepth: 0
    functionLinenumber: 12516
    functionLinenumberEnd: 12520
    functionName: xmlSAXParseFile
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlSAXParseFileWithData
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlSAXParseFile(xmlSAXHandler *sax, const char *filename,
      int recovery) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/parser.c:12852,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/parser.c:12861,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:12858,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:12862,1
    - Dst: xmlCtxtNewInputFromString
      Src: /src/libxml2/parser.c:12856,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:12863,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - str
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 12868
      start: 12847
    functionDepth: 0
    functionLinenumber: 12847
    functionLinenumberEnd: 12868
    functionName: xmlCreateDocParserCtxt
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFreeInputStream
    - xmlCtxtPushInput
    - xmlCtxtNewInputFromString
    - xmlFreeParserCtxt
    - xmlNewParserCtxt
    linkageType: ''
    returnType: xmlParserCtxt*
    signature: 'xmlParserCtxt *xmlCreateDocParserCtxt(const xmlChar *str) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 2172
      start: 2157
    functionDepth: 0
    functionLinenumber: 2157
    functionLinenumberEnd: 2172
    functionName: namePop
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *namePop(xmlParserCtxtPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_LETTER
      Src: /src/libxml2/parser.c:3027,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3030
      start: 3024
    functionDepth: 0
    functionLinenumber: 3024
    functionLinenumberEnd: 3030
    functionName: xmlIsNameStartCharOld
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - IS_LETTER
    linkageType: ''
    returnType: int
    signature: 'static int xmlIsNameStartCharOld(int c) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:3493,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:3501,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:3509,1
    - Dst: xmlUTF8MultibyteLen
      Src: /src/libxml2/parser.c:3505,1
    - Dst: xmlSBufAddChar
      Src: /src/libxml2/parser.c:3525,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:3546,1
    - Dst: xmlParseStringPEReference
      Src: /src/libxml2/parser.c:3554,1
    - Dst: xmlLoadEntityContent
      Src: /src/libxml2/parser.c:3573,1
    - Dst: xmlWarningMsg
      Src: /src/libxml2/parser.c:3575,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:3552,1
    - Dst: xmlParseStringCharRef
      Src: /src/libxml2/parser.c:3521,1
    - Dst: xmlParseStringName
      Src: /src/libxml2/parser.c:3536,1
    - Dst: xmlHaltParser
      Src: /src/libxml2/parser.c:3590,1
    - Dst: xmlSBufAddReplChar
      Src: /src/libxml2/parser.c:3607,1
    - Dst: xmlSBufAddReplChar
      Src: /src/libxml2/parser.c:3510,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:3519,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:3539,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:3559,1
    - Dst: PARSER_EXTERNAL
      Src: /src/libxml2/parser.c:3558,1
    - Dst: xmlExpandPEsInEntityValue
      Src: /src/libxml2/parser.c:3595,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:3603,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:3606,1
    - Dst: xmlSBufAddString
      Src: /src/libxml2/parser.c:3617,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:3542,1
    - Dst: xmlParserEntityCheck
      Src: /src/libxml2/parser.c:3585,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:3589,1
    - Dst: IS_BYTE_CHAR
      Src: /src/libxml2/parser.c:3602,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 100
    argCount: 5
    argNames:
    - ctxt
    - buf
    - str
    - length
    - depth
    argTypes:
    - xmlParserCtxtPtr
    - xmlSBuf*
    - xmlChar*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3618
      start: 3481
    functionDepth: 0
    functionLinenumber: 3481
    functionLinenumberEnd: 3618
    functionName: xmlExpandPEsInEntityValue
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - PARSER_EXTERNAL
    - xmlFatalErrMsg
    - xmlParserEntityCheck
    - PARSER_STOPPED
    - xmlLoadEntityContent
    - IS_BYTE_CHAR
    - xmlExpandPEsInEntityValue
    - xmlFatalErr
    - xmlSBufAddChar
    - xmlParseStringName
    - xmlHaltParser
    - xmlUTF8MultibyteLen
    - xmlParseStringPEReference
    - xmlParseStringCharRef
    - xmlSBufAddReplChar
    - xmlWarningMsg
    - xmlSBufAddString
    linkageType: ''
    returnType: void
    signature: 'static void xmlExpandPEsInEntityValue(xmlParserCtxtPtr ctxt, xmlSBuf
      *buf, const xmlChar *str, int length, int depth) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseQNameHashed
      Src: /src/libxml2/parser.c:8457,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - ctxt
    - prefix
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 8462
      start: 8453
    functionDepth: 0
    functionLinenumber: 8453
    functionLinenumberEnd: 8462
    functionName: xmlParseQName
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParseQNameHashed
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlParseQName(xmlParserCtxtPtr ctxt, const xmlChar
      **prefix) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewSAXParserCtxt
      Src: /src/libxml2/parser.c:12477,1
    - Dst: xmlCtxtParseDocument
      Src: /src/libxml2/parser.c:12495,1
    - Dst: xmlCtxtNewInputFromUrl
      Src: /src/libxml2/parser.c:12492,1
    - Dst: xmlCtxtNewInputFromFd
      Src: /src/libxml2/parser.c:12490,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:12497,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 4
    argNames:
    - sax
    - filename
    - recovery
    - data
    argTypes:
    - xmlSAXHandler*
    - char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 12499
      start: 12470
    functionDepth: 0
    functionLinenumber: 12470
    functionLinenumberEnd: 12499
    functionName: xmlSAXParseFileWithData
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtNewInputFromFd
    - xmlNewSAXParserCtxt
    - xmlCtxtNewInputFromUrl
    - xmlFreeParserCtxt
    - xmlCtxtParseDocument
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlSAXParseFileWithData(xmlSAXHandler *sax, const char *filename,
      int recovery, void *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtReset
      Src: /src/libxml2/parser.c:13568,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/parser.c:13569,1
    - Dst: xmlCtxtNewInputFromUrl
      Src: /src/libxml2/parser.c:13571,1
    - Dst: xmlCtxtParseDocument
      Src: /src/libxml2/parser.c:13575,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 4
    argNames:
    - ctxt
    - filename
    - encoding
    - options
    argTypes:
    - xmlParserCtxt*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 13576
      start: 13557
    functionDepth: 0
    functionLinenumber: 13557
    functionLinenumberEnd: 13576
    functionName: xmlCtxtReadFile
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtUseOptions
    - xmlCtxtParseDocument
    - xmlCtxtReset
    - xmlCtxtNewInputFromUrl
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlCtxtReadFile(xmlParserCtxt *ctxt, const char *filename,
      const char *encoding, int options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_LETTER
      Src: /src/libxml2/parser.c:3035,1
    - Dst: IS_DIGIT
      Src: /src/libxml2/parser.c:3035,1
    - Dst: IS_EXTENDER
      Src: /src/libxml2/parser.c:3039,1
    - Dst: IS_COMBINING
      Src: /src/libxml2/parser.c:3038,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3042
      start: 3032
    functionDepth: 0
    functionLinenumber: 3032
    functionLinenumberEnd: 3042
    functionName: xmlIsNameCharOld
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - IS_EXTENDER
    - IS_COMBINING
    - IS_DIGIT
    - IS_LETTER
    linkageType: ''
    returnType: int
    signature: 'static int xmlIsNameCharOld(int c) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: COPY_BUF
      Src: /src/libxml2/parser.c:3415,1
    - Dst: xmlIsNameChar
      Src: /src/libxml2/parser.c:3432,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:3440,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:3453,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:3416,1
    - Dst: xmlMalloc
      Src: /src/libxml2/parser.c:3426,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:3446,1
    - Dst: xmlCurrentChar
      Src: /src/libxml2/parser.c:3454,1
    - Dst: xmlCurrentChar
      Src: /src/libxml2/parser.c:3417,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/parser.c:3437,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:3443,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:3463,1
    - Dst: COPY_BUF
      Src: /src/libxml2/parser.c:3452,1
    - Dst: xmlStrndup
      Src: /src/libxml2/parser.c:3466,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:3468,1
    - Dst: xmlCurrentChar
      Src: /src/libxml2/parser.c:3412,1
    - Dst: xmlIsNameChar
      Src: /src/libxml2/parser.c:3414,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:3428,1
    - Dst: memcpy
      Src: /src/libxml2/parser.c:3431,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:3439,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:3445,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 3470
      start: 3401
    functionDepth: 0
    functionLinenumber: 3401
    functionLinenumberEnd: 3470
    functionName: xmlParseNmtoken
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memcpy
    - xmlStrndup
    - xmlGrowCapacity
    - xmlRealloc
    - NEXTL
    - xmlFatalErr
    - COPY_BUF
    - xmlErrMemory
    - xmlCurrentChar
    - xmlIsNameChar
    - xmlMalloc
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlParseNmtoken(xmlParserCtxt *ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictComputeHash
      Src: /src/libxml2/parser.c:1594,1
    - Dst: xmlParserNsLookup
      Src: /src/libxml2/parser.c:1597,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - ctxt
    - prefix
    argTypes:
    - xmlParserCtxt*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1602
      start: 1584
    functionDepth: 0
    functionLinenumber: 1584
    functionLinenumberEnd: 1602
    functionName: xmlParserNsLookupSax
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParserNsLookup
    - xmlDictComputeHash
    linkageType: ''
    returnType: void*
    signature: 'void *xmlParserNsLookupSax(xmlParserCtxt *ctxt, const xmlChar *prefix) '
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: CMP7
      Src: /src/libxml2/parser.c:5978,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:5990,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:6005,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:6023,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/parser.c:6035,1
    - Dst: xmlValidityError
      Src: /src/libxml2/parser.c:6075,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:5974,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5976,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5983,1
    - Dst: xmlParseName
      Src: /src/libxml2/parser.c:6003,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:6033,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:6047,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/parser.c:6049,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/parser.c:6058,1
    - Dst: xmlAddSpecialAttr
      Src: /src/libxml2/parser.c:6066,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:5985,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:5996,1
    - Dst: xmlAttrNormalizeSpace
      Src: /src/libxml2/parser.c:6039,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:6011,1
    - Dst: xmlParseDefaultDecl
      Src: /src/libxml2/parser.c:6030,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/parser.c:6026,1
    - Dst: xmlParseAttributeType
      Src: /src/libxml2/parser.c:6016,1
    - Dst: xmlAddDefAttrs
      Src: /src/libxml2/parser.c:6063,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:6069,1
    - Dst: xmlParseName
      Src: /src/libxml2/parser.c:5988,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:6044,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 87
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 6084
      start: 5968
    functionDepth: 0
    functionLinenumber: 5968
    functionLinenumberEnd: 6084
    functionName: xmlParseAttributeListDecl
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - NXT
    - xmlParseName
    - xmlFatalErrMsg
    - PARSER_STOPPED
    - xmlAddDefAttrs
    - SKIP
    - xmlFreeEnumeration
    - xmlAddSpecialAttr
    - xmlAttrNormalizeSpace
    - xmlParseAttributeType
    - CMP7
    - xmlValidityError
    - xmlParseDefaultDecl
    linkageType: ''
    returnType: void
    signature: 'void xmlParseAttributeListDecl(xmlParserCtxt *ctxt) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseNCName
      Src: /src/libxml2/parser.c:8408,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:8426,1
    - Dst: xmlParseNCName
      Src: /src/libxml2/parser.c:8414,1
    - Dst: xmlParseNmtoken
      Src: /src/libxml2/parser.c:8424,1
    - Dst: xmlDictLookupHashed
      Src: /src/libxml2/parser.c:8427,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:8430,1
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:8433,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - ctxt
    - prefix
    argTypes:
    - xmlParserCtxtPtr
    - xmlHashedString*
    constantsTouched: []
    func_position:
      end: 8439
      start: 8397
    functionDepth: 0
    functionLinenumber: 8397
    functionLinenumberEnd: 8439
    functionName: xmlParseQNameHashed
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlParseNCName
    - xmlParseNmtoken
    - xmlErrMemory
    - xmlDictLookupHashed
    - xmlNsErr
    linkageType: ''
    returnType: xmlHashedString
    signature: 'static xmlHashedString xmlParseQNameHashed(xmlParserCtxtPtr ctxt,
      xmlHashedString *prefix) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewSAXParserCtxt
      Src: /src/libxml2/parser.c:11430,1
    - Dst: xmlGetCharEncodingName
      Src: /src/libxml2/parser.c:11434,1
    - Dst: xmlCtxtNewInputFromIO
      Src: /src/libxml2/parser.c:11435,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/parser.c:11441,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:11438,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:11442,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:11443,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 6
    argNames:
    - sax
    - user_data
    - ioread
    - ioclose
    - ioctx
    - enc
    argTypes:
    - xmlSAXHandler*
    - void*
    - xmlInputReadCallback
    - xmlInputCloseCallback
    - void*
    - xmlCharEncoding
    constantsTouched: []
    func_position:
      end: 11448
      start: 11421
    functionDepth: 0
    functionLinenumber: 11421
    functionLinenumberEnd: 11448
    functionName: xmlCreateIOParserCtxt
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtNewInputFromIO
    - xmlNewSAXParserCtxt
    - xmlFreeInputStream
    - xmlCtxtPushInput
    - xmlGetCharEncodingName
    - xmlFreeParserCtxt
    linkageType: ''
    returnType: xmlParserCtxt*
    signature: 'xmlParserCtxt *xmlCreateIOParserCtxt(xmlSAXHandler *sax, void *user_data,
      xmlInputReadCallback ioread, xmlInputCloseCallback ioclose, void *ioctx, xmlCharEncoding
      enc) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreateMemoryParserCtxt
      Src: /src/libxml2/parser.c:12809,1
    - Dst: memset
      Src: /src/libxml2/parser.c:12815,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/parser.c:12832,1
    - Dst: xmlParseDocument
      Src: /src/libxml2/parser.c:12821,1
    - Dst: memcpy
      Src: /src/libxml2/parser.c:12816,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:12835,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - sax
    - user_data
    - buffer
    - size
    argTypes:
    - xmlSAXHandler*
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 12838
      start: 12804
    functionDepth: 0
    functionLinenumber: 12804
    functionLinenumberEnd: 12838
    functionName: xmlSAXUserParseMemory
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - memcpy
    - xmlCreateMemoryParserCtxt
    - memset
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - xmlParseDocument
    linkageType: ''
    returnType: int
    signature: "int xmlSAXUserParseMemory(xmlSAXHandler *sax, void *user_data,\t\t\t
      const char *buffer, int size) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 13196
      start: 13189
    functionDepth: 0
    functionLinenumber: 13189
    functionLinenumberEnd: 13196
    functionName: xmlCtxtGetOptions
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlCtxtGetOptions(xmlParserCtxt *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsNameStartCharNew
      Src: /src/libxml2/parser.c:3047,1
    - Dst: xmlIsNameStartCharOld
      Src: /src/libxml2/parser.c:3049,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - c
    - old10
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3050
      start: 3044
    functionDepth: 0
    functionLinenumber: 3044
    functionLinenumberEnd: 3050
    functionName: xmlIsNameStartChar
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlIsNameStartCharOld
    - xmlIsNameStartCharNew
    linkageType: ''
    returnType: int
    signature: 'static int xmlIsNameStartChar(int c, int old10) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtReset
      Src: /src/libxml2/parser.c:13532,1
    - Dst: xmlCtxtParseDocument
      Src: /src/libxml2/parser.c:13540,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/parser.c:13533,1
    - Dst: xmlCtxtNewInputFromString
      Src: /src/libxml2/parser.c:13535,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 5
    argNames:
    - ctxt
    - str
    - URL
    - encoding
    - options
    argTypes:
    - xmlParserCtxt*
    - xmlChar*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 13541
      start: 13523
    functionDepth: 0
    functionLinenumber: 13523
    functionLinenumberEnd: 13541
    functionName: xmlCtxtReadDoc
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtUseOptions
    - xmlCtxtParseDocument
    - xmlCtxtReset
    - xmlCtxtNewInputFromString
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlCtxtReadDoc(xmlParserCtxt *ctxt, const xmlChar *str, const
      char *URL, const char *encoding, int options) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserNsLookup
      Src: /src/libxml2/parser.c:1566,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - ctxt
    - prefix
    argTypes:
    - xmlParserCtxtPtr
    - xmlHashedString*
    constantsTouched: []
    func_position:
      end: 1574
      start: 1554
    functionDepth: 0
    functionLinenumber: 1554
    functionLinenumberEnd: 1574
    functionName: xmlParserNsLookupUri
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParserNsLookup
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlParserNsLookupUri(xmlParserCtxtPtr ctxt,
      const xmlHashedString *prefix) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:2344,1
    - Dst: xmlParserGrow
      Src: /src/libxml2/parser.c:2355,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 2365
      start: 2338
    functionDepth: 0
    functionLinenumber: 2338
    functionLinenumberEnd: 2365
    functionName: xmlSkipBlankChars
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - IS_BLANK_CH
    - xmlParserGrow
    linkageType: ''
    returnType: int
    signature: 'int xmlSkipBlankChars(xmlParserCtxt *ctxt) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CMP5
      Src: /src/libxml2/parser.c:5930,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5931,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5934,1
    - Dst: CMP6
      Src: /src/libxml2/parser.c:5933,1
    - Dst: CMP5
      Src: /src/libxml2/parser.c:5936,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5937,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:5939,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5940,1
    - Dst: CMP6
      Src: /src/libxml2/parser.c:5942,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5943,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5946,1
    - Dst: CMP8
      Src: /src/libxml2/parser.c:5948,1
    - Dst: CMP8
      Src: /src/libxml2/parser.c:5945,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5949,1
    - Dst: xmlParseEnumeratedType
      Src: /src/libxml2/parser.c:5955,1
    - Dst: CMP7
      Src: /src/libxml2/parser.c:5951,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5952,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 2
    argNames:
    - ctxt
    - tree
    argTypes:
    - xmlParserCtxt*
    - xmlEnumeration**
    constantsTouched: []
    func_position:
      end: 5956
      start: 5928
    functionDepth: 0
    functionLinenumber: 5928
    functionLinenumberEnd: 5956
    functionName: xmlParseAttributeType
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParseEnumeratedType
    - NXT
    - CMP8
    - SKIP
    - CMP5
    - CMP7
    - CMP6
    linkageType: ''
    returnType: int
    signature: 'int xmlParseAttributeType(xmlParserCtxt *ctxt, xmlEnumeration **tree) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlParsePERefInternal
      Src: /src/libxml2/parser.c:7693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 7694
      start: 7691
    functionDepth: 0
    functionLinenumber: 7691
    functionLinenumberEnd: 7694
    functionName: xmlParsePEReference
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParsePERefInternal
    linkageType: ''
    returnType: void
    signature: 'void xmlParsePEReference(xmlParserCtxt *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlHaltParser
      Src: /src/libxml2/parser.c:11404,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 11407
      start: 11400
    functionDepth: 0
    functionLinenumber: 11400
    functionLinenumberEnd: 11407
    functionName: xmlStopParser
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlHaltParser
    linkageType: ''
    returnType: void
    signature: 'void xmlStopParser(xmlParserCtxt *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htmlCtxtSetOptions
      Src: /src/libxml2/parser.c:13175,1
    - Dst: xmlCtxtSetOptionsInternal
      Src: /src/libxml2/parser.c:13178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - ctxt
    - options
    argTypes:
    - xmlParserCtxt*
    - int
    constantsTouched: []
    func_position:
      end: 13179
      start: 13170
    functionDepth: 0
    functionLinenumber: 13170
    functionLinenumberEnd: 13179
    functionName: xmlCtxtSetOptions
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - htmlCtxtSetOptions
    - xmlCtxtSetOptionsInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlCtxtSetOptions(xmlParserCtxt *ctxt, int options) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:5146,1
    - Dst: xmlStrndup
      Src: /src/libxml2/parser.c:5164,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/parser.c:5147,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:5150,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:5155,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:5166,1
    - Dst: xmlCatalogAddLocal
      Src: /src/libxml2/parser.c:5177,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:5178,1
    - Dst: xmlWarningMsg
      Src: /src/libxml2/parser.c:5183,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:5187,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 31
    argCount: 2
    argNames:
    - ctxt
    - catalog
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5188
      start: 5139
    functionDepth: 0
    functionLinenumber: 5139
    functionLinenumberEnd: 5188
    functionName: xmlParseCatalogPI
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrndup
    - xmlCatalogAddLocal
    - xmlStrncmp
    - IS_BLANK_CH
    - xmlWarningMsg
    linkageType: ''
    returnType: void
    signature: 'static void xmlParseCatalogPI(xmlParserCtxtPtr ctxt, const xmlChar
      *catalog) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:12009,1
    - Dst: htmlCtxtParseContentInternal
      Src: /src/libxml2/parser.c:12078,1
    - Dst: xmlCtxtReset
      Src: /src/libxml2/parser.c:12046,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:12015,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:12042,1
    - Dst: xmlCtxtInitializeLate
      Src: /src/libxml2/parser.c:12082,1
    - Dst: xmlDictLookupHashed
      Src: /src/libxml2/parser.c:12093,1
    - Dst: xmlDictLookupHashed
      Src: /src/libxml2/parser.c:12094,1
    - Dst: xmlParserNsPush
      Src: /src/libxml2/parser.c:12095,1
    - Dst: xmlCtxtParseContentInternal
      Src: /src/libxml2/parser.c:12102,1
    - Dst: xmlParserNsPop
      Src: /src/libxml2/parser.c:12105,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:12116,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 70
    argCount: 4
    argNames:
    - ctxt
    - input
    - node
    - hasTextDecl
    argTypes:
    - xmlParserCtxt*
    - xmlParserInput*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 12118
      start: 11999
    functionDepth: 0
    functionLinenumber: 11999
    functionLinenumberEnd: 12118
    functionName: xmlCtxtParseContent
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParserNsPop
    - htmlCtxtParseContentInternal
    - xmlCtxtInitializeLate
    - xmlFreeInputStream
    - xmlFatalErr
    - xmlDictLookupHashed
    - xmlCtxtReset
    - xmlCtxtParseContentInternal
    - xmlParserNsPush
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlCtxtParseContent(xmlParserCtxt *ctxt, xmlParserInput *input,
      xmlNode *node, int hasTextDecl) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:8548,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:8605,1
    - Dst: xmlCheckLanguageID
      Src: /src/libxml2/parser.c:8609,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:8634,1
    - Dst: xmlWarningMsg
      Src: /src/libxml2/parser.c:8610,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:8642,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:8645,1
    - Dst: XML_PTR_TO_INT
      Src: /src/libxml2/parser.c:8559,1
    - Dst: xmlValidityError
      Src: /src/libxml2/parser.c:8592,1
    - Dst: xmlParseQNameHashed
      Src: /src/libxml2/parser.c:8546,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:8568,1
    - Dst: xmlParseAttValueInternal
      Src: /src/libxml2/parser.c:8580,1
    - Dst: xmlStrndup
      Src: /src/libxml2/parser.c:8606,1
    - Dst: xmlWarningMsg
      Src: /src/libxml2/parser.c:8628,1
    - Dst: xmlStrndup
      Src: /src/libxml2/parser.c:8620,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:8625,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:8619,1
    - Dst: xmlHashQLookup2
      Src: /src/libxml2/parser.c:8559,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:8623,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 68
    argCount: 7
    argNames:
    - ctxt
    - pref
    - elem
    - hprefix
    - value
    - len
    - alloc
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    - xmlChar*
    - xmlHashedString*
    - xmlChar**
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 8647
      start: 8531
    functionDepth: 0
    functionLinenumber: 8531
    functionLinenumberEnd: 8647
    functionName: xmlParseAttribute2
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCheckLanguageID
    - xmlFree
    - xmlFatalErrMsg
    - XML_PTR_TO_INT
    - xmlStrndup
    - xmlWarningMsg
    - xmlErrMemory
    - xmlStrEqual
    - xmlParseQNameHashed
    - xmlFatalErrMsgStr
    - xmlValidityError
    - xmlParseAttValueInternal
    - xmlHashQLookup2
    linkageType: ''
    returnType: xmlHashedString
    signature: 'static xmlHashedString xmlParseAttribute2(xmlParserCtxtPtr ctxt, const
      xmlChar * pref, const xmlChar * elem, xmlHashedString * hprefix, xmlChar **
      value, int *len, int *alloc) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreateFileParserCtxt
      Src: /src/libxml2/parser.c:12295,1
    - Dst: memcpy
      Src: /src/libxml2/parser.c:12304,1
    - Dst: xmlParseExtParsedEnt
      Src: /src/libxml2/parser.c:12309,1
    - Dst: memset
      Src: /src/libxml2/parser.c:12303,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/parser.c:12315,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:12318,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - sax
    - filename
    argTypes:
    - xmlSAXHandler*
    - char*
    constantsTouched: []
    func_position:
      end: 12321
      start: 12290
    functionDepth: 0
    functionLinenumber: 12290
    functionLinenumberEnd: 12321
    functionName: xmlSAXParseEntity
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - memcpy
    - memset
    - xmlParseExtParsedEnt
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - xmlCreateFileParserCtxt
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlSAXParseEntity(xmlSAXHandler *sax, const char *filename) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/parser.c:1436,1
    - Dst: memset
      Src: /src/libxml2/parser.c:1440,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1444
      start: 1434
    functionDepth: 0
    functionLinenumber: 1434
    functionLinenumberEnd: 1444
    functionName: xmlParserNsCreate
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlParserNsData*
    signature: 'xmlParserNsData *xmlParserNsCreate(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseStringName
      Src: /src/libxml2/parser.c:7879,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:7888,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:7889,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:7881,1
    - Dst: xmlHandleUndeclaredEntity
      Src: /src/libxml2/parser.c:7906,1
    - Dst: xmlWarningMsg
      Src: /src/libxml2/parser.c:7913,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:7919,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 2
    argNames:
    - ctxt
    - str
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 7922
      start: 7866
    functionDepth: 0
    functionLinenumber: 7866
    functionLinenumberEnd: 7922
    functionName: xmlParseStringPEReference
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFatalErrMsg
    - xmlFatalErr
    - xmlHandleUndeclaredEntity
    - xmlParseStringName
    - xmlWarningMsg
    linkageType: ''
    returnType: xmlEntityPtr
    signature: 'static xmlEntityPtr xmlParseStringPEReference(xmlParserCtxtPtr ctxt,
      const xmlChar **str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAXParseDTD
      Src: /src/libxml2/parser.c:11656,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - publicId
    - systemId
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 11657
      start: 11654
    functionDepth: 0
    functionLinenumber: 11654
    functionLinenumberEnd: 11657
    functionName: xmlParseDTD
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlSAXParseDTD
    linkageType: ''
    returnType: xmlDtd*
    signature: 'xmlDtd *xmlParseDTD(const xmlChar *publicId, const xmlChar *systemId) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewSAXParserCtxt
      Src: /src/libxml2/parser.c:12238,1
    - Dst: xmlNewStringInputStream
      Src: /src/libxml2/parser.c:12251,1
    - Dst: xmlCtxtParseContentInternal
      Src: /src/libxml2/parser.c:12257,1
    - Dst: xmlCtxtInitializeLate
      Src: /src/libxml2/parser.c:12242,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/parser.c:12261,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:12269,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:12270,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 7
    argNames:
    - doc
    - sax
    - user_data
    - depth
    - string
    - listOut
    - recover
    argTypes:
    - xmlDoc*
    - xmlSAXHandler*
    - void*
    - int
    - xmlChar*
    - xmlNode**
    - int
    constantsTouched: []
    func_position:
      end: 12272
      start: 12223
    functionDepth: 0
    functionLinenumber: 12223
    functionLinenumberEnd: 12272
    functionName: xmlParseBalancedChunkMemoryRecover
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlNewSAXParserCtxt
    - xmlCtxtInitializeLate
    - xmlFreeInputStream
    - xmlNewStringInputStream
    - xmlFreeParserCtxt
    - xmlCtxtParseContentInternal
    - xmlFreeNodeList
    linkageType: ''
    returnType: int
    signature: 'int xmlParseBalancedChunkMemoryRecover(xmlDoc *doc, xmlSAXHandler
      *sax, void *user_data, int depth, const xmlChar *string, xmlNode **listOut,
      int recover) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreateURLParserCtxt
      Src: /src/libxml2/parser.c:12447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 12448
      start: 12444
    functionDepth: 0
    functionLinenumber: 12444
    functionLinenumberEnd: 12448
    functionName: xmlCreateFileParserCtxt
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCreateURLParserCtxt
    linkageType: ''
    returnType: xmlParserCtxt*
    signature: 'xmlParserCtxt *xmlCreateFileParserCtxt(const char *filename) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtReset
      Src: /src/libxml2/parser.c:13681,1
    - Dst: xmlCtxtNewInputFromIO
      Src: /src/libxml2/parser.c:13684,1
    - Dst: xmlCtxtParseDocument
      Src: /src/libxml2/parser.c:13689,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/parser.c:13682,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 7
    argNames:
    - ctxt
    - ioread
    - ioclose
    - ioctx
    - URL
    - encoding
    - options
    argTypes:
    - xmlParserCtxt*
    - xmlInputReadCallback
    - xmlInputCloseCallback
    - void*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 13690
      start: 13670
    functionDepth: 0
    functionLinenumber: 13670
    functionLinenumberEnd: 13690
    functionName: xmlCtxtReadIO
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtUseOptions
    - xmlCtxtNewInputFromIO
    - xmlCtxtParseDocument
    - xmlCtxtReset
    linkageType: ''
    returnType: xmlDoc*
    signature: "xmlDoc *xmlCtxtReadIO(xmlParserCtxt *ctxt, xmlInputReadCallback ioread,
      xmlInputCloseCallback ioclose, void *ioctx,\t const char *URL, const char *encoding,
      int options) "
  - BBCount: 34
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 2
    argCount: 1
    argNames:
    - feature
    argTypes:
    - xmlFeature
    constantsTouched: []
    func_position:
      end: 684
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 684
    functionName: xmlHasFeature
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlHasFeature(xmlFeature feature) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaturatedAddSizeT
      Src: /src/libxml2/parser.c:463,1
    - Dst: xmlSaturatedAdd
      Src: /src/libxml2/parser.c:474,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:485,1
    - Dst: xmlSaturatedAdd
      Src: /src/libxml2/parser.c:475,1
    - Dst: xmlSaturatedAdd
      Src: /src/libxml2/parser.c:464,1
    - Dst: xmlHaltParser
      Src: /src/libxml2/parser.c:488,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - ctxt
    - extra
    argTypes:
    - xmlParserCtxtPtr
    - unsigned long
    constantsTouched: []
    func_position:
      end: 493
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 493
    functionName: xmlParserEntityCheck
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlSaturatedAddSizeT
    - xmlSaturatedAdd
    - xmlFatalErrMsg
    - xmlHaltParser
    linkageType: ''
    returnType: int
    signature: 'static int xmlParserEntityCheck(xmlParserCtxtPtr ctxt, unsigned long
      extra) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlCharacters
      Src: /src/libxml2/parser.c:4589,1
    - Dst: xmlParseCharDataComplex
      Src: /src/libxml2/parser.c:4660,1
    - Dst: xmlCharacters
      Src: /src/libxml2/parser.c:4628,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:4610,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 78
    argCount: 2
    argNames:
    - ctxt
    - partial
    argTypes:
    - xmlParserCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 4661
      start: 4557
    functionDepth: 0
    functionLinenumber: 4557
    functionLinenumberEnd: 4661
    functionName: xmlParseCharDataInternal
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParseCharDataComplex
    - xmlCharacters
    - xmlFatalErr
    linkageType: ''
    returnType: void
    signature: 'static void xmlParseCharDataInternal(xmlParserCtxtPtr ctxt, int partial) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlCurrentCharRecover
      Src: /src/libxml2/parser.c:5247,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:5249,1
    - Dst: IS_CHAR
      Src: /src/libxml2/parser.c:5248,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:5264,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:5276,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:5214,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5218,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:5240,1
    - Dst: NEXTL
      Src: /src/libxml2/parser.c:5271,1
    - Dst: xmlParseCatalogPI
      Src: /src/libxml2/parser.c:5289,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5227,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:5226,1
    - Dst: xmlMalloc
      Src: /src/libxml2/parser.c:5238,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/parser.c:5254,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:5263,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:5256,1
    - Dst: xmlCurrentCharRecover
      Src: /src/libxml2/parser.c:5272,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:5283,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:5303,1
    - Dst: xmlParsePITarget
      Src: /src/libxml2/parser.c:5224,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:5244,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:5258,1
    - Dst: COPY_BUF
      Src: /src/libxml2/parser.c:5270,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:5261,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5279,1
    - Dst: xmlCatalogGetDefaults
      Src: /src/libxml2/parser.c:5284,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:5301,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 86
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 5306
      start: 5203
    functionDepth: 0
    functionLinenumber: 5203
    functionLinenumberEnd: 5306
    functionName: xmlParsePI
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCatalogGetDefaults
    - NXT
    - IS_CHAR
    - xmlGrowCapacity
    - xmlParsePITarget
    - xmlRealloc
    - xmlCurrentCharRecover
    - NEXTL
    - xmlFatalErr
    - COPY_BUF
    - xmlErrMemory
    - xmlParseCatalogPI
    - xmlStrEqual
    - SKIP
    - xmlFatalErrMsgStr
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: 'void xmlParsePI(xmlParserCtxt *ctxt) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:7746,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/parser.c:7753,1
    - Dst: xmlDetectEncoding
      Src: /src/libxml2/parser.c:7758,1
    - Dst: xmlParserInputBufferGrow
      Src: /src/libxml2/parser.c:7779,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:7769,1
    - Dst: xmlCtxtErrIO
      Src: /src/libxml2/parser.c:7785,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:7824,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:7832,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:7719,1
    - Dst: xmlLoadResource
      Src: /src/libxml2/parser.c:7729,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:7754,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:7763,1
    - Dst: xmlBufUse
      Src: /src/libxml2/parser.c:7789,1
    - Dst: xmlBufContent
      Src: /src/libxml2/parser.c:7795,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:7797,1
    - Dst: xmlGetUTF8Char
      Src: /src/libxml2/parser.c:7803,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:7822,1
    - Dst: xmlSaturatedAdd
      Src: /src/libxml2/parser.c:7814,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:7747,1
    - Dst: CMP5
      Src: /src/libxml2/parser.c:7763,1
    - Dst: xmlBufShrink
      Src: /src/libxml2/parser.c:7776,1
    - Dst: xmlSaturatedAdd
      Src: /src/libxml2/parser.c:7777,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:7763,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:7768,1
    - Dst: xmlBufResetInput
      Src: /src/libxml2/parser.c:7782,1
    - Dst: xmlStrndup
      Src: /src/libxml2/parser.c:7795,1
    - Dst: IS_CHAR
      Src: /src/libxml2/parser.c:7805,1
    - Dst: xmlFatalErrMsgInt
      Src: /src/libxml2/parser.c:7806,1
    - Dst: xmlMalloc
      Src: /src/libxml2/parser.c:7744,1
    - Dst: xmlBufResetInput
      Src: /src/libxml2/parser.c:7751,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:7770,1
    - Dst: xmlParseTextDecl
      Src: /src/libxml2/parser.c:7764,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:7791,1
    - Dst: xmlCtxtPopInput
      Src: /src/libxml2/parser.c:7822,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:7823,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 102
    argCount: 2
    argNames:
    - ctxt
    - entity
    argTypes:
    - xmlParserCtxtPtr
    - xmlEntityPtr
    constantsTouched: []
    func_position:
      end: 7835
      start: 7703
    functionDepth: 0
    functionLinenumber: 7703
    functionLinenumberEnd: 7835
    functionName: xmlLoadEntityContent
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlSaturatedAdd
    - IS_CHAR
    - xmlStrndup
    - xmlCtxtPushInput
    - xmlErrMemory
    - xmlCtxtErrIO
    - CMP5
    - xmlParserInputBufferGrow
    - xmlParseTextDecl
    - xmlBufShrink
    - xmlCtxtPopInput
    - xmlMalloc
    - xmlGetUTF8Char
    - xmlFree
    - NXT
    - xmlFatalErrMsg
    - xmlLoadResource
    - xmlDetectEncoding
    - xmlBufUse
    - xmlBufContent
    - xmlBufResetInput
    - xmlFreeInputStream
    - xmlFatalErr
    - xmlFatalErrMsgInt
    - IS_BLANK_CH
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xmlLoadEntityContent(xmlParserCtxtPtr ctxt, xmlEntityPtr
      entity) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtInitializeLate
      Src: /src/libxml2/parser.c:10517,1
    - Dst: xmlDetectEncoding
      Src: /src/libxml2/parser.c:10524,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:10527,1
    - Dst: CMP5
      Src: /src/libxml2/parser.c:10534,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:10534,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:10534,1
    - Dst: xmlParseXMLDecl
      Src: /src/libxml2/parser.c:10539,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/parser.c:10542,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:10557,1
    - Dst: xmlParseContentInternal
      Src: /src/libxml2/parser.c:10554,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 10567
      start: 10512
    functionDepth: 0
    functionLinenumber: 10512
    functionLinenumberEnd: 10567
    functionName: xmlParseExtParsedEnt
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - NXT
    - xmlCtxtInitializeLate
    - xmlFatalErr
    - IS_BLANK_CH
    - xmlParseContentInternal
    - xmlDetectEncoding
    - CMP5
    - xmlParseXMLDecl
    - xmlCharStrdup
    linkageType: ''
    returnType: int
    signature: 'int xmlParseExtParsedEnt(xmlParserCtxt *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parser.c:10344,1
    - Dst: xmlParseComment
      Src: /src/libxml2/parser.c:10350,1
    - Dst: CMP4
      Src: /src/libxml2/parser.c:10349,1
    - Dst: xmlParsePI
      Src: /src/libxml2/parser.c:10348,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:10347,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 10355
      start: 10342
    functionDepth: 0
    functionLinenumber: 10342
    functionLinenumberEnd: 10355
    functionName: xmlParseMisc
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - NXT
    - xmlParsePI
    - PARSER_STOPPED
    - xmlParseComment
    - CMP4
    linkageType: ''
    returnType: void
    signature: 'void xmlParseMisc(xmlParserCtxt *ctxt) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:868,1
    - Dst: xmlCtxtErrIO
      Src: /src/libxml2/parser.c:893,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 39
    argCount: 3
    argNames:
    - ctxt
    - str
    - errMsg
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    - char*
    constantsTouched: []
    func_position:
      end: 898
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 898
    functionName: xmlUTF8MultibyteLen
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFatalErrMsg
    - xmlCtxtErrIO
    linkageType: ''
    returnType: int
    signature: 'static int xmlUTF8MultibyteLen(xmlParserCtxtPtr ctxt, const xmlChar
      *str, const char *errMsg) '
  - BBCount: 30
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 136
    argCount: 1
    argNames:
    - lang
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1418
      start: 1284
    functionDepth: 0
    functionLinenumber: 1284
    functionLinenumberEnd: 1418
    functionName: xmlCheckLanguageID
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlCheckLanguageID(const xmlChar * lang) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/parser.c:2179,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:2188,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:2186,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:2182,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ctxt
    - val
    argTypes:
    - xmlParserCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 2198
      start: 2174
    functionDepth: 0
    functionLinenumber: 2174
    functionLinenumberEnd: 2198
    functionName: spacePush
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlErrMemory
    linkageType: ''
    returnType: int
    signature: 'static int spacePush(xmlParserCtxtPtr ctxt, int val) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetUTF8Char
      Src: /src/libxml2/parser.c:3087,1
    - Dst: xmlIsNameStartChar
      Src: /src/libxml2/parser.c:3094,1
    - Dst: xmlIsNameChar
      Src: /src/libxml2/parser.c:3093,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - ptr
    - maxSize
    - flags
    argTypes:
    - xmlChar*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 3105
      start: 3072
    functionDepth: 0
    functionLinenumber: 3072
    functionLinenumberEnd: 3105
    functionName: xmlScanName
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlIsNameChar
    - xmlIsNameStartChar
    - xmlGetUTF8Char
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlScanName(const xmlChar *ptr, size_t maxSize, int
      flags) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseName
      Src: /src/libxml2/parser.c:5093,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:5101,1
    - Dst: xmlWarningMsg
      Src: /src/libxml2/parser.c:5113,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:5105,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:5110,1
    - Dst: xmlStrchr
      Src: /src/libxml2/parser.c:5117,1
    - Dst: xmlNsErr
      Src: /src/libxml2/parser.c:5118,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 5122
      start: 5089
    functionDepth: 0
    functionLinenumber: 5089
    functionLinenumberEnd: 5122
    functionName: xmlParsePITarget
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFatalErrMsg
    - xmlParseName
    - xmlFatalErr
    - xmlStrEqual
    - xmlStrchr
    - xmlNsErr
    - xmlWarningMsg
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlParsePITarget(xmlParserCtxt *ctxt) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CMP7
      Src: /src/libxml2/parser.c:9949,1
    - Dst: xmlParseVersionNum
      Src: /src/libxml2/parser.c:9960,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:9950,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:9962,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:9953,1
    - Dst: xmlParseVersionNum
      Src: /src/libxml2/parser.c:9967,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:9969,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:9973,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 9977
      start: 9945
    functionDepth: 0
    functionLinenumber: 9945
    functionLinenumberEnd: 9977
    functionName: xmlParseVersionInfo
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlParseVersionNum
    - CMP7
    - SKIP
    - xmlFatalErr
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlParseVersionInfo(xmlParserCtxt *ctxt) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreateFileParserCtxt
      Src: /src/libxml2/parser.c:12619,1
    - Dst: xmlParseDocument
      Src: /src/libxml2/parser.c:12631,1
    - Dst: memcpy
      Src: /src/libxml2/parser.c:12626,1
    - Dst: memset
      Src: /src/libxml2/parser.c:12625,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/parser.c:12642,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:12645,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - sax
    - user_data
    - filename
    argTypes:
    - xmlSAXHandler*
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 12648
      start: 12613
    functionDepth: 0
    functionLinenumber: 12613
    functionLinenumberEnd: 12648
    functionName: xmlSAXUserParseFile
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - memcpy
    - memset
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - xmlCreateFileParserCtxt
    - xmlParseDocument
    linkageType: ''
    returnType: int
    signature: 'int xmlSAXUserParseFile(xmlSAXHandler *sax, void *user_data, const
      char *filename) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/parser.c:12673,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:12679,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:12683,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/parser.c:12682,1
    - Dst: xmlCtxtNewInputFromMemory
      Src: /src/libxml2/parser.c:12677,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:12684,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 12689
      start: 12665
    functionDepth: 0
    functionLinenumber: 12665
    functionLinenumberEnd: 12689
    functionName: xmlCreateMemoryParserCtxt
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFreeInputStream
    - xmlCtxtPushInput
    - xmlCtxtNewInputFromMemory
    - xmlFreeParserCtxt
    - xmlNewParserCtxt
    linkageType: ''
    returnType: xmlParserCtxt*
    signature: 'xmlParserCtxt *xmlCreateMemoryParserCtxt(const char *buffer, int size) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 2211
      start: 2200
    functionDepth: 0
    functionLinenumber: 2200
    functionLinenumberEnd: 2211
    functionName: spacePop
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int spacePop(xmlParserCtxtPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XML_PTR_TO_INT
      Src: /src/libxml2/parser.c:1199,1
    - Dst: xmlHashRemoveEntry2
      Src: /src/libxml2/parser.c:1200,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 5
    argNames:
    - payload
    - data
    - fullname
    - fullattr
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1202
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1202
    functionName: xmlCleanSpecialAttrCallback
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlHashRemoveEntry2
    - XML_PTR_TO_INT
    linkageType: ''
    returnType: void
    signature: 'static void xmlCleanSpecialAttrCallback(void *payload, void *data,
      const xmlChar *fullname, const xmlChar *fullattr, const xmlChar *unused ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashScanFull
      Src: /src/libxml2/parser.c:1217,1
    - Dst: xmlHashFree
      Src: /src/libxml2/parser.c:1220,1
    - Dst: xmlHashSize
      Src: /src/libxml2/parser.c:1219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 1223
      start: 1211
    functionDepth: 0
    functionLinenumber: 1211
    functionLinenumberEnd: 1223
    functionName: xmlCleanSpecialAttr
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    - xmlHashScanFull
    - xmlHashSize
    linkageType: ''
    returnType: void
    signature: 'static void xmlCleanSpecialAttr(xmlParserCtxtPtr ctxt) '
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 27
    argCount: 3
    argNames:
    - ctxt
    - prefix
    - bucketPtr
    argTypes:
    - xmlParserCtxtPtr
    - xmlHashedString*
    - xmlParserNsBucket**
    constantsTouched: []
    func_position:
      end: 1545
      start: 1505
    functionDepth: 0
    functionLinenumber: 1505
    functionLinenumberEnd: 1545
    functionName: xmlParserNsLookup
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlParserNsLookup(xmlParserCtxtPtr ctxt, const xmlHashedString
      *prefix, xmlParserNsBucket **bucketPtr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsNameCharNew
      Src: /src/libxml2/parser.c:3055,1
    - Dst: xmlIsNameCharOld
      Src: /src/libxml2/parser.c:3057,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - c
    - old10
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3058
      start: 3052
    functionDepth: 0
    functionLinenumber: 3052
    functionLinenumberEnd: 3058
    functionName: xmlIsNameChar
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlIsNameCharOld
    - xmlIsNameCharNew
    linkageType: ''
    returnType: int
    signature: 'static int xmlIsNameChar(int c, int old10) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:4996,1
    - Dst: xmlMalloc
      Src: /src/libxml2/parser.c:5004,1
    - Dst: xmlParseCommentComplex
      Src: /src/libxml2/parser.c:5074,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:5016,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:4952,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:4957,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:5006,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:5059,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:5064,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:4954,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:5015,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:5055,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:4955,1
    - Dst: xmlFatalErrMsgStr
      Src: /src/libxml2/parser.c:4994,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:5013,1
    - Dst: memcpy
      Src: /src/libxml2/parser.c:5021,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:5046,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 118
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 5075
      start: 4937
    functionDepth: 0
    functionLinenumber: 4937
    functionLinenumberEnd: 5075
    functionName: xmlParseComment
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - NXT
    - memcpy
    - xmlRealloc
    - xmlErrMemory
    - SKIP
    - xmlFatalErrMsgStr
    - xmlParseCommentComplex
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: 'void xmlParseComment(xmlParserCtxt *ctxt) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CMP10
      Src: /src/libxml2/parser.c:10142,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:10143,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:10155,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:10153,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:10146,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:10156,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:10157,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:10159,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:10161,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:10164,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:10169,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:10173,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:10172,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:10180,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:10171,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:10175,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:10184,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:10177,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 10188
      start: 10137
    functionDepth: 0
    functionLinenumber: 10137
    functionLinenumberEnd: 10188
    functionName: xmlParseSDDecl
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - CMP10
    - NXT
    - SKIP
    - xmlFatalErr
    linkageType: ''
    returnType: int
    signature: 'int xmlParseSDDecl(xmlParserCtxt *ctxt) '
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 10718
      start: 10683
    functionDepth: 0
    functionLinenumber: 10683
    functionLinenumberEnd: 10718
    functionName: xmlParseLookupGt
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlParseLookupGt(xmlParserCtxtPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/parser.c:13330,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:13342,1
    - Dst: xmlCtxtNewInputFromString
      Src: /src/libxml2/parser.c:13336,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/parser.c:13334,1
    - Dst: xmlCtxtParseDocument
      Src: /src/libxml2/parser.c:13340,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 4
    argNames:
    - cur
    - URL
    - encoding
    - options
    argTypes:
    - xmlChar*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 13344
      start: 13322
    functionDepth: 0
    functionLinenumber: 13322
    functionLinenumberEnd: 13344
    functionName: xmlReadDoc
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtUseOptions
    - xmlCtxtNewInputFromString
    - xmlFreeParserCtxt
    - xmlCtxtParseDocument
    - xmlNewParserCtxt
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlReadDoc(const xmlChar *cur, const char *URL, const char
      *encoding, int options) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/parser.c:11682,1
    - Dst: spacePush
      Src: /src/libxml2/parser.c:11686,1
    - Dst: nodePush
      Src: /src/libxml2/parser.c:11689,1
    - Dst: xmlDetectEncoding
      Src: /src/libxml2/parser.c:11692,1
    - Dst: NXT
      Src: /src/libxml2/parser.c:11698,1
    - Dst: xmlParserShrink
      Src: /src/libxml2/parser.c:11739,1
    - Dst: xmlParseTextDecl
      Src: /src/libxml2/parser.c:11699,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:11705,1
    - Dst: nodePop
      Src: /src/libxml2/parser.c:11744,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/parser.c:11675,1
    - Dst: nameNsPush
      Src: /src/libxml2/parser.c:11685,1
    - Dst: CMP5
      Src: /src/libxml2/parser.c:11697,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:11704,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:11715,1
    - Dst: xmlCtxtPopInput
      Src: /src/libxml2/parser.c:11749,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/parser.c:11752,1
    - Dst: xmlParserGrow
      Src: /src/libxml2/parser.c:11740,1
    - Dst: xmlParseContentInternal
      Src: /src/libxml2/parser.c:11712,1
    - Dst: spacePop
      Src: /src/libxml2/parser.c:11747,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:11677,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parser.c:11698,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/parser.c:11703,1
    - Dst: xmlCtxtIsCatastrophicError
      Src: /src/libxml2/parser.c:11718,1
    - Dst: namePop
      Src: /src/libxml2/parser.c:11746,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 4
    argNames:
    - ctxt
    - input
    - hasTextDecl
    - buildTree
    argTypes:
    - xmlParserCtxtPtr
    - xmlParserInputPtr
    - int
    - int
    constantsTouched: []
    func_position:
      end: 11755
      start: 11666
    functionDepth: 0
    functionLinenumber: 11666
    functionLinenumberEnd: 11755
    functionName: xmlCtxtParseContentInternal
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtPushInput
    - xmlErrMemory
    - CMP5
    - xmlParseTextDecl
    - xmlCtxtPopInput
    - nameNsPush
    - nodePush
    - xmlParseContentInternal
    - spacePush
    - namePop
    - spacePop
    - NXT
    - xmlFatalErrMsg
    - nodePop
    - xmlDetectEncoding
    - xmlParserShrink
    - xmlParserGrow
    - xmlFreeNode
    - xmlFatalErr
    - xmlNewDocNode
    - IS_BLANK_CH
    - xmlStrEqual
    - xmlCtxtIsCatastrophicError
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlCtxtParseContentInternal(xmlParserCtxtPtr ctxt,
      xmlParserInputPtr input, int hasTextDecl, int buildTree) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlRealloc
      Src: /src/libxml2/parser.c:724,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - xmlSBuf*
    - unsigned
    constantsTouched: []
    func_position:
      end: 734
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 734
    functionName: xmlSBufGrow
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlRealloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlSBufGrow(xmlSBuf *buf, unsigned len) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreateDict
      Src: /src/libxml2/parser.c:1173,1
    - Dst: xmlHashAdd2
      Src: /src/libxml2/parser.c:1181,1
    - Dst: xmlErrMemory
      Src: /src/libxml2/parser.c:1187,1
    - Dst: XML_INT_TO_PTR
      Src: /src/libxml2/parser.c:1182,1
    - Dst: PARSER_EXTERNAL
      Src: /src/libxml2/parser.c:1178,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 4
    argNames:
    - ctxt
    - fullname
    - fullattr
    - type
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1188
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1188
    functionName: xmlAddSpecialAttr
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - PARSER_EXTERNAL
    - xmlErrMemory
    - xmlHashAdd2
    - XML_INT_TO_PTR
    - xmlHashCreateDict
    linkageType: ''
    returnType: void
    signature: "static void xmlAddSpecialAttr(xmlParserCtxtPtr ctxt,\t\t const xmlChar
      *fullname,\t\t const xmlChar *fullattr,\t\t int type) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - nsdb
    argTypes:
    - xmlParserNsData*
    constantsTouched: []
    func_position:
      end: 1492
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1492
    functionName: xmlParserNsStartElement
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlParserNsStartElement(xmlParserNsData *nsdb) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CMP8
      Src: /src/libxml2/parser.c:10065,1
    - Dst: SKIP
      Src: /src/libxml2/parser.c:10068,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:10080,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:10071,1
    - Dst: xmlParseEncName
      Src: /src/libxml2/parser.c:10078,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:10081,1
    - Dst: xmlParseEncName
      Src: /src/libxml2/parser.c:10087,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:10089,1
    - Dst: xmlFree
      Src: /src/libxml2/parser.c:10090,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:10095,1
    - Dst: xmlSetDeclaredEncoding
      Src: /src/libxml2/parser.c:10101,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 10104
      start: 10060
    functionDepth: 0
    functionLinenumber: 10060
    functionLinenumberEnd: 10104
    functionName: xmlParseEncodingDecl
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - CMP8
    - xmlSetDeclaredEncoding
    - xmlFatalErr
    - SKIP
    - xmlParseEncName
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlParseEncodingDecl(xmlParserCtxt *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 10675
      start: 10654
    functionDepth: 0
    functionLinenumber: 10654
    functionLinenumberEnd: 10675
    functionName: xmlParseLookupCharData
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlParseLookupCharData(xmlParserCtxtPtr ctxt) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtInitializeLate
      Src: /src/libxml2/parser.c:11263,1
    - Dst: xmlParserInputBufferPush
      Src: /src/libxml2/parser.c:11275,1
    - Dst: xmlBufUpdateInput
      Src: /src/libxml2/parser.c:11276,1
    - Dst: xmlHaltParser
      Src: /src/libxml2/parser.c:11279,1
    - Dst: xmlCtxtErrIO
      Src: /src/libxml2/parser.c:11278,1
    - Dst: xmlParseTryOrFinish
      Src: /src/libxml2/parser.c:11283,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:11290,1
    - Dst: xmlHaltParser
      Src: /src/libxml2/parser.c:11292,1
    - Dst: xmlParserInputBufferPush
      Src: /src/libxml2/parser.c:11300,1
    - Dst: xmlBufUpdateInput
      Src: /src/libxml2/parser.c:11301,1
    - Dst: xmlFatalErrMsgStrIntStr
      Src: /src/libxml2/parser.c:11317,1
    - Dst: xmlParserCheckEOF
      Src: /src/libxml2/parser.c:11327,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/parser.c:11323,1
    - Dst: xmlHaltParser
      Src: /src/libxml2/parser.c:11304,1
    - Dst: xmlCtxtErrIO
      Src: /src/libxml2/parser.c:11303,1
    - Dst: xmlFinishDocument
      Src: /src/libxml2/parser.c:11331,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:11321,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 78
    argCount: 4
    argNames:
    - ctxt
    - chunk
    - size
    - terminate
    argTypes:
    - xmlParserCtxt*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 11338
      start: 11243
    functionDepth: 0
    functionLinenumber: 11243
    functionLinenumberEnd: 11338
    functionName: xmlParseChunk
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFatalErrMsg
    - xmlFatalErrMsgStrIntStr
    - xmlParseTryOrFinish
    - xmlParserCheckEOF
    - xmlFinishDocument
    - xmlCtxtInitializeLate
    - xmlFatalErr
    - xmlHaltParser
    - xmlParserInputBufferPush
    - xmlBufUpdateInput
    - xmlCtxtErrIO
    linkageType: ''
    returnType: int
    signature: 'int xmlParseChunk(xmlParserCtxt *ctxt, const char *chunk, int size,
      int terminate) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - ctxt
    - maxAmpl
    argTypes:
    - xmlParserCtxt*
    - unsigned
    constantsTouched: []
    func_position:
      end: 13267
      start: 13261
    functionDepth: 0
    functionLinenumber: 13261
    functionLinenumberEnd: 13267
    functionName: xmlCtxtSetMaxAmplification
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlCtxtSetMaxAmplification(xmlParserCtxt *ctxt, unsigned maxAmpl) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErr
      Src: /src/libxml2/parser.c:13285,1
    - Dst: xmlCtxtPopInput
      Src: /src/libxml2/parser.c:13292,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/parser.c:13294,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:13286,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:13292,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:13295,1
    - Dst: xmlParseDocument
      Src: /src/libxml2/parser.c:13299,1
    - Dst: xmlCtxtGetDocument
      Src: /src/libxml2/parser.c:13301,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parser.c:13305,1
    - Dst: xmlCtxtPopInput
      Src: /src/libxml2/parser.c:13305,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - ctxt
    - input
    argTypes:
    - xmlParserCtxt*
    - xmlParserInput*
    constantsTouched: []
    func_position:
      end: 13308
      start: 13279
    functionDepth: 0
    functionLinenumber: 13279
    functionLinenumberEnd: 13308
    functionName: xmlCtxtParseDocument
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlFreeInputStream
    - xmlFatalErr
    - xmlCtxtPushInput
    - xmlCtxtGetDocument
    - xmlCtxtPopInput
    - xmlParseDocument
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlCtxtParseDocument(xmlParserCtxt *ctxt, xmlParserInput *input) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlSBufGrow
      Src: /src/libxml2/parser.c:745,1
    - Dst: memcpy
      Src: /src/libxml2/parser.c:750,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - buf
    - str
    - len
    argTypes:
    - xmlSBuf*
    - xmlChar*
    - unsigned
    constantsTouched: []
    func_position:
      end: 752
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 752
    functionName: xmlSBufAddString
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - memcpy
    - xmlSBufGrow
    linkageType: ''
    returnType: void
    signature: 'static void xmlSBufAddString(xmlSBuf *buf, const xmlChar *str, unsigned
      len) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/parser.c:13492,1
    - Dst: xmlCtxtNewInputFromIO
      Src: /src/libxml2/parser.c:13498,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:13504,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/parser.c:13496,1
    - Dst: xmlCtxtParseDocument
      Src: /src/libxml2/parser.c:13502,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 6
    argNames:
    - ioread
    - ioclose
    - ioctx
    - URL
    - encoding
    - options
    argTypes:
    - xmlInputReadCallback
    - xmlInputCloseCallback
    - void*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 13506
      start: 13484
    functionDepth: 0
    functionLinenumber: 13484
    functionLinenumberEnd: 13506
    functionName: xmlReadIO
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtUseOptions
    - xmlCtxtNewInputFromIO
    - xmlFreeParserCtxt
    - xmlCtxtParseDocument
    - xmlNewParserCtxt
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlReadIO(xmlInputReadCallback ioread, xmlInputCloseCallback
      ioclose, void *ioctx, const char *URL, const char *encoding, int options) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XML_PTR_TO_INT
      Src: /src/libxml2/parser.c:8675,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 6
    argNames:
    - ctxt
    - size
    - name
    - uri
    - hashValue
    - aindex
    argTypes:
    - xmlParserCtxtPtr
    - unsigned
    - xmlChar*
    - xmlChar*
    - unsigned
    - int
    constantsTouched: []
    func_position:
      end: 8694
      start: 8661
    functionDepth: 0
    functionLinenumber: 8661
    functionLinenumberEnd: 8694
    functionName: xmlAttrHashInsert
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - XML_PTR_TO_INT
    linkageType: ''
    returnType: int
    signature: 'static int xmlAttrHashInsert(xmlParserCtxtPtr ctxt, unsigned size,
      const xmlChar *name, const xmlChar *uri, unsigned hashValue, int aindex) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htmlCtxtUseOptions
      Src: /src/libxml2/parser.c:13228,1
    - Dst: xmlCtxtSetOptionsInternal
      Src: /src/libxml2/parser.c:13246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ctxt
    - options
    argTypes:
    - xmlParserCtxt*
    - int
    constantsTouched: []
    func_position:
      end: 13247
      start: 13221
    functionDepth: 0
    functionLinenumber: 13221
    functionLinenumberEnd: 13247
    functionName: xmlCtxtUseOptions
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - htmlCtxtUseOptions
    - xmlCtxtSetOptionsInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlCtxtUseOptions(xmlParserCtxt *ctxt, int options) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/parser.c:13456,1
    - Dst: xmlCtxtParseDocument
      Src: /src/libxml2/parser.c:13465,1
    - Dst: xmlCtxtNewInputFromFd
      Src: /src/libxml2/parser.c:13462,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/parser.c:13460,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parser.c:13467,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - fd
    - URL
    - encoding
    - options
    argTypes:
    - int
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 13469
      start: 13449
    functionDepth: 0
    functionLinenumber: 13449
    functionLinenumberEnd: 13469
    functionName: xmlReadFd
    functionSourceFile: /src/libxml2/parser.c
    functionUses: []
    functionsReached:
    - xmlCtxtNewInputFromFd
    - xmlCtxtUseOptions
    - xmlFreeParserCtxt
    - xmlCtxtParseDocument
    - xmlNewParserCtxt
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlReadFd(int fd, const char *URL, const char *encoding, int
      options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmllintMain
      Src: /src/libxml2/lintmain.c:12,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 13
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 13
    functionName: main
    functionSourceFile: /src/libxml2/lintmain.c
    functionUses: []
    functionsReached:
    - xmllintMain
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xmlmemory.c:98,1
    - Dst: malloc
      Src: /src/libxml2/xmlmemory.c:103,1
    - Dst: xmlMutexLock
      Src: /src/libxml2/xmlmemory.c:109,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/xmlmemory.c:112,1
    - Dst: HDR_2_CLIENT
      Src: /src/libxml2/xmlmemory.c:114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 115
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 115
    functionName: xmlMemMalloc
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached:
    - malloc
    - xmlMutexLock
    - xmlInitParser
    - xmlMutexUnlock
    - HDR_2_CLIENT
    linkageType: ''
    returnType: void*
    signature: 'void *xmlMemMalloc(size_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMemMalloc
      Src: /src/libxml2/xmlmemory.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - size
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - size_t
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: xmlMallocAtomicLoc
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached:
    - xmlMemMalloc
    linkageType: ''
    returnType: void*
    signature: 'void *xmlMallocAtomicLoc(size_t size, const char *file ATTRIBUTE_UNUSED,
      int line ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libxml2/xmlmemory.c:236,1
    - Dst: xmlInitParser
      Src: /src/libxml2/xmlmemory.c:239,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/xmlmemory.c:253,1
    - Dst: xmlMutexLock
      Src: /src/libxml2/xmlmemory.c:250,1
    - Dst: malloc
      Src: /src/libxml2/xmlmemory.c:244,1
    - Dst: HDR_2_CLIENT
      Src: /src/libxml2/xmlmemory.c:255,1
    - Dst: memcpy
      Src: /src/libxml2/xmlmemory.c:257,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 260
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 260
    functionName: xmlMemoryStrdup
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached:
    - malloc
    - memcpy
    - xmlMutexLock
    - xmlInitParser
    - xmlMutexUnlock
    - HDR_2_CLIENT
    - strlen
    linkageType: ''
    returnType: char*
    signature: 'char *xmlMemoryStrdup(const char *str) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CLIENT_2_HDR
      Src: /src/libxml2/xmlmemory.c:274,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 279
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 279
    functionName: xmlMemSize
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached:
    - CLIENT_2_HDR
    linkageType: ''
    returnType: size_t
    signature: 'size_t xmlMemSize(void *ptr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitMutex
      Src: /src/libxml2/xmlmemory.c:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: xmlInitMemoryInternal
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached:
    - xmlInitMutex
    linkageType: ''
    returnType: void
    signature: 'void xmlInitMemoryInternal(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 4
    argNames:
    - freeFunc
    - mallocFunc
    - reallocFunc
    - strdupFunc
    argTypes:
    - xmlFreeFunc*
    - xmlMallocFunc*
    - xmlReallocFunc*
    - xmlStrdupFunc*
    constantsTouched: []
    func_position:
      end: 448
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 448
    functionName: xmlMemGet
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xmlMemGet(xmlFreeFunc *freeFunc, xmlMallocFunc *mallocFunc,\t
      xmlReallocFunc *reallocFunc, xmlStrdupFunc *strdupFunc) "
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 5
    argNames:
    - freeFunc
    - mallocFunc
    - mallocAtomicFunc
    - reallocFunc
    - strdupFunc
    argTypes:
    - xmlFreeFunc*
    - xmlMallocFunc*
    - xmlMallocFunc*
    - xmlReallocFunc*
    - xmlStrdupFunc*
    constantsTouched: []
    func_position:
      end: 514
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 514
    functionName: xmlGcMemGet
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xmlGcMemGet(xmlFreeFunc *freeFunc, xmlMallocFunc *mallocFunc,
      xmlMallocFunc *mallocAtomicFunc, xmlReallocFunc *reallocFunc,\t xmlStrdupFunc
      *strdupFunc) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMemMalloc
      Src: /src/libxml2/xmlmemory.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - size
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - size_t
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: xmlMallocLoc
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached:
    - xmlMemMalloc
    linkageType: ''
    returnType: void*
    signature: 'void *xmlMallocLoc(size_t size, const char *file ATTRIBUTE_UNUSED,
      int line ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMemoryStrdup
      Src: /src/libxml2/xmlmemory.c:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - str
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: xmlMemStrdupLoc
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached:
    - xmlMemoryStrdup
    linkageType: ''
    returnType: char*
    signature: 'char *xmlMemStrdupLoc(const char *str, const char *file ATTRIBUTE_UNUSED,
      int line ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: xmlMemDisplay
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlMemDisplay(FILE *fp ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCleanupMutex
      Src: /src/libxml2/xmlmemory.c:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 397
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 397
    functionName: xmlCleanupMemoryInternal
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached:
    - xmlCleanupMutex
    linkageType: ''
    returnType: void
    signature: 'void xmlCleanupMemoryInternal(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xmlmemory.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 361
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 361
    functionName: xmlInitMemory
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached:
    - xmlInitParser
    linkageType: ''
    returnType: int
    signature: 'int xmlInitMemory(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMemRealloc
      Src: /src/libxml2/xmlmemory.c:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - ptr
    - size
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - size_t
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: xmlReallocLoc
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached:
    - xmlMemRealloc
    linkageType: ''
    returnType: void*
    signature: 'void *xmlReallocLoc(void *ptr, size_t size, const char *file ATTRIBUTE_UNUSED,
      int line ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: xmlMemUsed
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlMemUsed(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 343
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 343
    functionName: xmlMemoryDump
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlMemoryDump(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 379
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 379
    functionName: xmlCleanupMemory
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlCleanupMemory(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 5
    argNames:
    - freeFunc
    - mallocFunc
    - mallocAtomicFunc
    - reallocFunc
    - strdupFunc
    argTypes:
    - xmlFreeFunc
    - xmlMallocFunc
    - xmlMallocFunc
    - xmlReallocFunc
    - xmlStrdupFunc
    constantsTouched: []
    func_position:
      end: 488
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 488
    functionName: xmlGcMemSetup
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xmlGcMemSetup(xmlFreeFunc freeFunc, xmlMallocFunc mallocFunc,
      xmlMallocFunc mallocAtomicFunc, xmlReallocFunc reallocFunc,\t xmlStrdupFunc
      strdupFunc) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - FILE*
    - long nbBytes
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: xmlMemDisplayLast
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlMemDisplayLast(FILE *fp ATTRIBUTE_UNUSED, long nbBytes ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/xmlmemory.c:302,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/xmlmemory.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 306
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 306
    functionName: xmlMemBlocks
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'int xmlMemBlocks(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - FILE*
    - int
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: xmlMemShow
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlMemShow(FILE *fp ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - freeFunc
    - mallocFunc
    - reallocFunc
    - strdupFunc
    argTypes:
    - xmlFreeFunc
    - xmlMallocFunc
    - xmlReallocFunc
    - xmlStrdupFunc
    constantsTouched: []
    func_position:
      end: 429
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 429
    functionName: xmlMemSetup
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlMemSetup(xmlFreeFunc freeFunc, xmlMallocFunc mallocFunc, xmlReallocFunc
      reallocFunc, xmlStrdupFunc strdupFunc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlPrintErrorMessage
      Src: /src/libxml2/xmlmemory.c:192,1
    - Dst: xmlPrintErrorMessage
      Src: /src/libxml2/xmlmemory.c:198,1
    - Dst: memset
      Src: /src/libxml2/xmlmemory.c:202,1
    - Dst: CLIENT_2_HDR
      Src: /src/libxml2/xmlmemory.c:196,1
    - Dst: xmlMutexLock
      Src: /src/libxml2/xmlmemory.c:204,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/xmlmemory.c:207,1
    - Dst: free
      Src: /src/libxml2/xmlmemory.c:209,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 210
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 210
    functionName: xmlMemFree
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - memset
    - xmlMutexUnlock
    - free
    - CLIENT_2_HDR
    - xmlPrintErrorMessage
    linkageType: ''
    returnType: void
    signature: 'void xmlMemFree(void *ptr) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMemMalloc
      Src: /src/libxml2/xmlmemory.c:146,1
    - Dst: CLIENT_2_HDR
      Src: /src/libxml2/xmlmemory.c:153,1
    - Dst: xmlInitParser
      Src: /src/libxml2/xmlmemory.c:148,1
    - Dst: realloc
      Src: /src/libxml2/xmlmemory.c:161,1
    - Dst: xmlPrintErrorMessage
      Src: /src/libxml2/xmlmemory.c:155,1
    - Dst: xmlMutexLock
      Src: /src/libxml2/xmlmemory.c:170,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/xmlmemory.c:173,1
    - Dst: HDR_2_CLIENT
      Src: /src/libxml2/xmlmemory.c:175,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 176
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 176
    functionName: xmlMemRealloc
    functionSourceFile: /src/libxml2/xmlmemory.c
    functionUses: []
    functionsReached:
    - realloc
    - xmlMutexLock
    - xmlInitParser
    - xmlMutexUnlock
    - xmlMemMalloc
    - HDR_2_CLIENT
    - CLIENT_2_HDR
    - xmlPrintErrorMessage
    linkageType: ''
    returnType: void*
    signature: 'void *xmlMemRealloc(void *ptr, size_t size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlResetError
      Src: /src/libxml2/xpointer.c:84,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpointer.c:91,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpointer.c:89,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames:
    - 3,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 100
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/xpointer.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlResetError
    - xmlXPathPErrMemory
    linkageType: ''
    returnType: void
    signature: 'static void LIBXML_ATTR_FORMAT(3,0) xmlXPtrErr(xmlXPathParserContextPtr
      ctxt, int code, const char * msg, const xmlChar *extra){ xmlStructuredErrorFunc
      serror = NULL; void *data = NULL; xmlNodePtr node = NULL; int res; if (ctxt
      == NULL) return; /* Only report the first error */ if (ctxt->error != 0) return;
      ctxt->error = code; if (ctxt->context != NULL) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpointer.c:266,1
    - Dst: NXT
      Src: /src/libxml2/xpointer.c:284,1
    - Dst: xmlFree
      Src: /src/libxml2/xpointer.c:295,1
    - Dst: xmlXPathEvalExpr
      Src: /src/libxml2/xpointer.c:314,1
    - Dst: xmlXPathParseName
      Src: /src/libxml2/xpointer.c:327,1
    - Dst: xmlFree
      Src: /src/libxml2/xpointer.c:332,1
    - Dst: xmlXPathParseNCName
      Src: /src/libxml2/xpointer.c:346,1
    - Dst: xmlFree
      Src: /src/libxml2/xpointer.c:350,1
    - Dst: xmlFree
      Src: /src/libxml2/xpointer.c:360,1
    - Dst: xmlFree
      Src: /src/libxml2/xpointer.c:376,1
    - Dst: xmlFree
      Src: /src/libxml2/xpointer.c:370,1
    - Dst: xmlFree
      Src: /src/libxml2/xpointer.c:258,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpointer.c:255,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpointer.c:268,1
    - Dst: NXT
      Src: /src/libxml2/xpointer.c:284,1
    - Dst: NXT
      Src: /src/libxml2/xpointer.c:284,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpointer.c:296,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpointer.c:333,1
    - Dst: xmlFree
      Src: /src/libxml2/xpointer.c:351,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpointer.c:361,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpointer.c:367,1
    - Dst: xmlFree
      Src: /src/libxml2/xpointer.c:377,1
    - Dst: xmlXPathParseName
      Src: /src/libxml2/xpointer.c:253,1
    - Dst: xmlStrlen
      Src: /src/libxml2/xpointer.c:264,1
    - Dst: xmlXPathRoot
      Src: /src/libxml2/xpointer.c:324,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpointer.c:300,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpointer.c:299,1
    - Dst: xmlFree
      Src: /src/libxml2/xpointer.c:294,1
    - Dst: xmlXPtrEvalChildSeq
      Src: /src/libxml2/xpointer.c:325,1
    - Dst: xmlXPtrEvalChildSeq
      Src: /src/libxml2/xpointer.c:335,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpointer.c:352,1
    - Dst: xmlFree
      Src: /src/libxml2/xpointer.c:358,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpointer.c:259,1
    - Dst: xmlFree
      Src: /src/libxml2/xpointer.c:269,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpointer.c:317,1
    - Dst: xmlFree
      Src: /src/libxml2/xpointer.c:331,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpointer.c:340,1
    - Dst: xmlFree
      Src: /src/libxml2/xpointer.c:359,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxml2/xpointer.c:366,1
    - Dst: xmlXPtrErr
      Src: /src/libxml2/xpointer.c:373,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 112
    argCount: 2
    argNames:
    - ctxt
    - name
    argTypes:
    - xmlXPathParserContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 378
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 378
    functionName: xmlXPtrEvalXPtrPart
    functionSourceFile: /src/libxml2/xpointer.c
    functionUses: []
    functionsReached:
    - xmlFree
    - NXT
    - xmlXPathPErrMemory
    - xmlXPathRoot
    - xmlXPathEvalExpr
    - XP_ERROR
    - xmlXPtrEvalChildSeq
    - xmlStrlen
    - xmlXPathParseName
    - xmlXPathRegisterNs
    - xmlStrEqual
    - xmlXPathParseNCName
    - xmlMalloc
    - xmlXPtrErr
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPtrEvalXPtrPart(xmlXPathParserContextPtr ctxt, xmlChar
      *name) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NXT
      Src: /src/libxml2/xpointer.c:475,1
    - Dst: xmlXPathNewString
      Src: /src/libxml2/xpointer.c:481,1
    - Dst: xmlFree
      Src: /src/libxml2/xpointer.c:482,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpointer.c:481,1
    - Dst: xmlXPtrErr
      Src: /src/libxml2/xpointer.c:476,1
    - Dst: xmlXPathIdFunction
      Src: /src/libxml2/xpointer.c:483,1
    - Dst: xmlXPtrGetChildNo
      Src: /src/libxml2/xpointer.c:505,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - ctxt
    - name
    argTypes:
    - xmlXPathParserContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 507
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 507
    functionName: xmlXPtrEvalChildSeq
    functionSourceFile: /src/libxml2/xpointer.c
    functionUses: []
    functionsReached:
    - xmlFree
    - NXT
    - xmlXPtrGetChildNo
    - xmlXPathValuePush
    - xmlXPathNewString
    - xmlXPathIdFunction
    - xmlXPtrErr
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPtrEvalChildSeq(xmlXPathParserContextPtr ctxt, xmlChar
      *name) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xpointer.c:605,1
    - Dst: xmlXPathErrMemory
      Src: /src/libxml2/xpointer.c:614,1
    - Dst: xmlXPathNewParserContext
      Src: /src/libxml2/xpointer.c:612,1
    - Dst: xmlResetError
      Src: /src/libxml2/xpointer.c:610,1
    - Dst: xmlXPtrEvalXPointer
      Src: /src/libxml2/xpointer.c:617,1
    - Dst: xmlXPtrErr
      Src: /src/libxml2/xpointer.c:623,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpointer.c:627,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpointer.c:631,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpointer.c:646,1
    - Dst: xmlXPtrErr
      Src: /src/libxml2/xpointer.c:650,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpointer.c:655,1
    - Dst: xmlXPathFreeParserContext
      Src: /src/libxml2/xpointer.c:660,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 2
    argNames:
    - str
    - ctx
    argTypes:
    - xmlChar*
    - xmlXPathContext*
    constantsTouched: []
    func_position:
      end: 662
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 662
    functionName: xmlXPtrEval
    functionSourceFile: /src/libxml2/xpointer.c
    functionUses: []
    functionsReached:
    - xmlXPtrEvalXPointer
    - xmlXPathErrMemory
    - xmlXPathNewParserContext
    - xmlInitParser
    - xmlXPathFreeObject
    - xmlXPathValuePop
    - xmlResetError
    - xmlXPathFreeParserContext
    - xmlXPtrErr
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPtrEval(const xmlChar *str, xmlXPathContext *ctx) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNewContext
      Src: /src/libxml2/xpointer.c:580,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 3
    argNames:
    - doc
    - here
    - origin
    argTypes:
    - xmlDoc*
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 585
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 585
    functionName: xmlXPtrNewContext
    functionSourceFile: /src/libxml2/xpointer.c
    functionUses: []
    functionsReached:
    - xmlXPathNewContext
    linkageType: ''
    returnType: xmlXPathContext*
    signature: 'xmlXPathContext *xmlXPtrNewContext(xmlDoc *doc, xmlNode *here, xmlNode
      *origin) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpointer.c:195,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpointer.c:196,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpointer.c:200,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpointer.c:199,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxml2/xpointer.c:200,1
    - Dst: xmlXPtrGetNthChild
      Src: /src/libxml2/xpointer.c:203,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpointer.c:205,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpointer.c:206,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxml2/xpointer.c:206,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpointer.c:210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - ctxt
    - indx
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 211
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 211
    functionName: xmlXPtrGetChildNo
    functionSourceFile: /src/libxml2/xpointer.c
    functionUses: []
    functionsReached:
    - CHECK_TYPE
    - xmlXPathValuePush
    - xmlXPathFreeObject
    - xmlXPathValuePop
    - xmlXPathNewNodeSet
    - xmlXPtrGetNthChild
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPtrGetChildNo(xmlXPathParserContextPtr ctxt, int indx) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathParseName
      Src: /src/libxml2/xpointer.c:409,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpointer.c:444,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpointer.c:446,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpointer.c:411,1
    - Dst: xmlXPtrEvalXPtrPart
      Src: /src/libxml2/xpointer.c:414,1
    - Dst: xmlXPathParseName
      Src: /src/libxml2/xpointer.c:455,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 2
    argNames:
    - ctxt
    - name
    argTypes:
    - xmlXPathParserContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 457
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 457
    functionName: xmlXPtrEvalFullXPtr
    functionSourceFile: /src/libxml2/xpointer.c
    functionUses: []
    functionsReached:
    - XP_ERROR
    - xmlXPathParseName
    - xmlXPathFreeObject
    - xmlXPathValuePop
    - xmlXPtrEvalXPtrPart
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPtrEvalFullXPtr(xmlXPathParserContextPtr ctxt, xmlChar
      *name) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - cur
    - 'no'
    argTypes:
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 140
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 140
    functionName: xmlXPtrGetNthChild
    functionSourceFile: /src/libxml2/xpointer.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlXPtrGetNthChild(xmlNodePtr cur, int no) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpointer.c:524,1
    - Dst: xmlXPathParseName
      Src: /src/libxml2/xpointer.c:540,1
    - Dst: xmlXPathRoot
      Src: /src/libxml2/xpointer.c:535,1
    - Dst: xmlXPtrEvalChildSeq
      Src: /src/libxml2/xpointer.c:536,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpointer.c:526,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpointer.c:542,1
    - Dst: xmlXPtrEvalFullXPtr
      Src: /src/libxml2/xpointer.c:544,1
    - Dst: xmlXPtrEvalChildSeq
      Src: /src/libxml2/xpointer.c:549,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpointer.c:554,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 555
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 555
    functionName: xmlXPtrEvalXPointer
    functionSourceFile: /src/libxml2/xpointer.c
    functionUses: []
    functionsReached:
    - xmlXPtrEvalFullXPtr
    - xmlXPathPErrMemory
    - xmlXPathRoot
    - xmlXPtrEvalChildSeq
    - XP_ERROR
    - xmlXPathParseName
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPtrEvalXPointer(xmlXPathParserContextPtr ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrPrintf
      Src: /src/libxml2/testModule.c:51,1
    - Dst: xmlModuleSymbol
      Src: /src/libxml2/testModule.c:62,1
    - Dst: fprintf
      Src: /src/libxml2/testModule.c:58,1
    - Dst: xmlModuleOpen
      Src: /src/libxml2/testModule.c:56,1
    - Dst: fprintf
      Src: /src/libxml2/testModule.c:63,1
    - Dst: fprintf
      Src: /src/libxml2/testModule.c:67,1
    - Dst: xmlModuleClose
      Src: /src/libxml2/testModule.c:73,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 76
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 76
    functionName: main
    functionSourceFile: /src/libxml2/testModule.c
    functionUses: []
    functionsReached:
    - xmlModuleSymbol
    - xmlModuleOpen
    - xmlStrPrintf
    - xmlModuleClose
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxml2/testModule.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: main
    functionSourceFile: /src/libxml2/testModule.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HASH_INIT
      Src: /src/libxml2/hash.c:65,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/hash.c:77,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/hash.c:68,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/hash.c:83,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/hash.c:73,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/hash.c:87,1
    - Dst: HASH_FINISH
      Src: /src/libxml2/hash.c:93,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 5
    argNames:
    - seed
    - key
    - key2
    - key3
    - lengths
    argTypes:
    - unsigned
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - size_t*
    constantsTouched: []
    func_position:
      end: 96
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 96
    functionName: xmlHashValue
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - HASH_INIT
    - HASH_UPDATE
    - HASH_FINISH
    linkageType: ''
    returnType: ATTRIBUTE_NO_SANITIZE_INTEGER
    signature: 'ATTRIBUTE_NO_SANITIZE_INTEGER static unsigned xmlHashValue(unsigned
      seed, const xmlChar *key, const xmlChar *key2, const xmlChar *key3, size_t *lengths) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashQLookup3
      Src: /src/libxml2/hash.c:839,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - hash
    - prefix
    - name
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 840
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 840
    functionName: xmlHashQLookup
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashQLookup3
    linkageType: ''
    returnType: void*
    signature: 'void *xmlHashQLookup(xmlHashTable *hash, const xmlChar *prefix, const
      xmlChar *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashQLookup3
      Src: /src/libxml2/hash.c:856,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 5
    argNames:
    - hash
    - prefix
    - name
    - prefix2
    - name2
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 857
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 857
    functionName: xmlHashQLookup2
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashQLookup3
    linkageType: ''
    returnType: void*
    signature: 'void *xmlHashQLookup2(xmlHashTable *hash, const xmlChar *prefix, const
      xmlChar *name, const xmlChar *prefix2, const xmlChar *name2) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashQNameValue
      Src: /src/libxml2/hash.c:908,1
    - Dst: xmlStrQEqual
      Src: /src/libxml2/hash.c:920,1
    - Dst: xmlStrQEqual
      Src: /src/libxml2/hash.c:922,1
    - Dst: xmlStrQEqual
      Src: /src/libxml2/hash.c:921,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 33
    argCount: 7
    argNames:
    - hash
    - prefix
    - name
    - prefix2
    - name2
    - prefix3
    - name3
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 935
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 935
    functionName: xmlHashQLookup3
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashQNameValue
    - xmlStrQEqual
    linkageType: ''
    returnType: ATTRIBUTE_NO_SANITIZE_INTEGER*
    signature: 'ATTRIBUTE_NO_SANITIZE_INTEGER void *xmlHashQLookup3(xmlHashTable *hash,
      const xmlChar *prefix, const xmlChar *name, const xmlChar *prefix2, const xmlChar
      *name2, const xmlChar *prefix3, const xmlChar *name3) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - xmlHashTable*
    constantsTouched: []
    func_position:
      end: 1176
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1176
    functionName: xmlHashSize
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlHashSize(xmlHashTable *hash) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HASH_INIT
      Src: /src/libxml2/hash.c:106,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/hash.c:116,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/hash.c:119,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/hash.c:110,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/hash.c:112,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/hash.c:122,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/hash.c:124,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/hash.c:128,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/hash.c:131,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/hash.c:134,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/hash.c:136,1
    - Dst: HASH_FINISH
      Src: /src/libxml2/hash.c:144,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/hash.c:140,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 7
    argNames:
    - seed
    - prefix
    - name
    - prefix2
    - name2
    - prefix3
    - name3
    argTypes:
    - unsigned
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 147
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 147
    functionName: xmlHashQNameValue
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - HASH_INIT
    - HASH_UPDATE
    - HASH_FINISH
    linkageType: ''
    returnType: ATTRIBUTE_NO_SANITIZE_INTEGER
    signature: 'ATTRIBUTE_NO_SANITIZE_INTEGER static unsigned xmlHashQNameValue(unsigned
      seed, const xmlChar *prefix, const xmlChar *name, const xmlChar *prefix2, const
      xmlChar *name2, const xmlChar *prefix3, const xmlChar *name3) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/hash.c:267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: xmlFastStrEqual
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: 'static int xmlFastStrEqual(const xmlChar *s1, const xmlChar *s2) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/hash.c:352,1
    - Dst: memset
      Src: /src/libxml2/hash.c:355,1
    - Dst: xmlFree
      Src: /src/libxml2/hash.c:392,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 2
    argNames:
    - hash
    - size
    argTypes:
    - xmlHashTablePtr
    - unsigned
    constantsTouched: []
    func_position:
      end: 399
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 399
    functionName: xmlHashGrow
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlHashGrow(xmlHashTablePtr hash, unsigned size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup3
      Src: /src/libxml2/hash.c:825,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - hash
    - key
    - key2
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 826
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 826
    functionName: xmlHashLookup2
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashLookup3
    linkageType: ''
    returnType: void*
    signature: 'void *xmlHashLookup2(xmlHashTable *hash, const xmlChar *key, const
      xmlChar *key2) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCopySafe
      Src: /src/libxml2/hash.c:1161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - hash
    - copy
    argTypes:
    - xmlHashTable*
    - xmlHashCopier
    constantsTouched: []
    func_position:
      end: 1162
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1162
    functionName: xmlHashCopy
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashCopySafe
    linkageType: ''
    returnType: xmlHashTable*
    signature: 'xmlHashTable *xmlHashCopy(xmlHashTable *hash, xmlHashCopier copy) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dealloc
      Src: /src/libxml2/hash.c:235,1
    - Dst: xmlFree
      Src: /src/libxml2/hash.c:242,1
    - Dst: xmlFree
      Src: /src/libxml2/hash.c:240,1
    - Dst: xmlFree
      Src: /src/libxml2/hash.c:246,1
    - Dst: xmlFree
      Src: /src/libxml2/hash.c:238,1
    - Dst: xmlDictFree
      Src: /src/libxml2/hash.c:250,1
    - Dst: xmlFree
      Src: /src/libxml2/hash.c:252,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 19
    argCount: 2
    argNames:
    - hash
    - dealloc
    argTypes:
    - xmlHashTable*
    - xmlHashDeallocator
    constantsTouched: []
    func_position:
      end: 253
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 253
    functionName: xmlHashFree
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlFree
    - dealloc
    - xmlDictFree
    linkageType: ''
    returnType: void
    signature: 'void xmlHashFree(xmlHashTable *hash, xmlHashDeallocator dealloc) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/hash.c:314,1
    - Dst: xmlFastStrEqual
      Src: /src/libxml2/hash.c:317,1
    - Dst: xmlFastStrEqual
      Src: /src/libxml2/hash.c:316,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 38
    argCount: 6
    argNames:
    - hash
    - key
    - key2
    - key3
    - hashValue
    - pfound
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - unsigned
    - int*
    constantsTouched: []
    func_position:
      end: 334
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 334
    functionName: xmlHashFindEntry
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlFastStrEqual
    - strcmp
    linkageType: ''
    returnType: ATTRIBUTE_NO_SANITIZE_INTEGER*
    signature: 'ATTRIBUTE_NO_SANITIZE_INTEGER static xmlHashEntry *xmlHashFindEntry(const
      xmlHashTable *hash, const xmlChar *key, const xmlChar *key2, const xmlChar *key3,
      unsigned hashValue, int *pfound) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup3
      Src: /src/libxml2/hash.c:811,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - hash
    - key
    argTypes:
    - xmlHashTable*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 812
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 812
    functionName: xmlHashLookup
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashLookup3
    linkageType: ''
    returnType: void*
    signature: 'void *xmlHashLookup(xmlHashTable *hash, const xmlChar *key) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/hash.c:592,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - entry
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 593
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 593
    functionName: xmlHashDefaultDeallocator
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xmlHashDefaultDeallocator(void *entry, const xmlChar *key ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashUpdateInternal
      Src: /src/libxml2/hash.c:669,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - hash
    - key
    - payload
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 677
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 677
    functionName: xmlHashAddEntry
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashUpdateInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlHashAddEntry(xmlHashTable *hash, const xmlChar *key, void *payload) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashUpdateInternal
      Src: /src/libxml2/hash.c:793,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 6
    argNames:
    - hash
    - key
    - key2
    - key3
    - payload
    - dealloc
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - void*
    - xmlHashDeallocator
    constantsTouched: []
    func_position:
      end: 800
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 800
    functionName: xmlHashUpdateEntry3
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashUpdateInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlHashUpdateEntry3(xmlHashTable *hash, const xmlChar *key, const
      xmlChar *key2, const xmlChar *key3, void *payload, xmlHashDeallocator dealloc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxml2/hash.c:207,1
    - Dst: xmlDictReference
      Src: /src/libxml2/hash.c:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - size
    - dict
    argTypes:
    - int
    - xmlDict*
    constantsTouched: []
    func_position:
      end: 213
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 213
    functionName: xmlHashCreateDict
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashCreate
    - xmlDictReference
    linkageType: ''
    returnType: xmlHashTable*
    signature: 'xmlHashTable *xmlHashCreateDict(int size, xmlDict *dict) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictOwns
      Src: /src/libxml2/hash.c:505,1
    - Dst: xmlFree
      Src: /src/libxml2/hash.c:521,1
    - Dst: xmlMalloc
      Src: /src/libxml2/hash.c:530,1
    - Dst: xmlFree
      Src: /src/libxml2/hash.c:533,1
    - Dst: xmlMalloc
      Src: /src/libxml2/hash.c:513,1
    - Dst: memmove
      Src: /src/libxml2/hash.c:560,1
    - Dst: xmlHashValue
      Src: /src/libxml2/hash.c:425,1
    - Dst: dealloc
      Src: /src/libxml2/hash.c:440,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/hash.c:493,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/hash.c:498,1
    - Dst: xmlHashGrow
      Src: /src/libxml2/hash.c:463,1
    - Dst: xmlHashFindEntry
      Src: /src/libxml2/hash.c:435,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/hash.c:508,1
    - Dst: xmlMalloc
      Src: /src/libxml2/hash.c:519,1
    - Dst: memcpy
      Src: /src/libxml2/hash.c:536,1
    - Dst: xmlFree
      Src: /src/libxml2/hash.c:532,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/hash.c:490,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/hash.c:501,1
    - Dst: memcpy
      Src: /src/libxml2/hash.c:516,1
    - Dst: memcpy
      Src: /src/libxml2/hash.c:524,1
    - Dst: memmove
      Src: /src/libxml2/hash.c:566,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 127
    argCount: 7
    argNames:
    - hash
    - key
    - key2
    - key3
    - payload
    - dealloc
    - update
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - void*
    - xmlHashDeallocator
    - int
    constantsTouched: []
    func_position:
      end: 582
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 582
    functionName: xmlHashUpdateInternal
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFindEntry
    - xmlDictLookup
    - memcpy
    - xmlDictOwns
    - xmlHashValue
    - memmove
    - dealloc
    - xmlMalloc
    - xmlHashGrow
    linkageType: ''
    returnType: ATTRIBUTE_NO_SANITIZE_INTEGER
    signature: 'ATTRIBUTE_NO_SANITIZE_INTEGER static int xmlHashUpdateInternal(xmlHashTable
      *hash, const xmlChar *key, const xmlChar *key2, const xmlChar *key3, void *payload,
      xmlHashDeallocator dealloc, int update) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashUpdateInternal
      Src: /src/libxml2/hash.c:650,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 5
    argNames:
    - hash
    - key
    - key2
    - key3
    - payload
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 651
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 651
    functionName: xmlHashAdd3
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashUpdateInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlHashAdd3(xmlHashTable *hash, const xmlChar *key, const xmlChar
      *key2, const xmlChar *key3, void *payload) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/hash.c:160,1
    - Dst: xmlMalloc
      Src: /src/libxml2/hash.c:162,1
    - Dst: xmlRandom
      Src: /src/libxml2/hash.c:169,1
    - Dst: xmlHashGrow
      Src: /src/libxml2/hash.c:185,1
    - Dst: xmlFree
      Src: /src/libxml2/hash.c:186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 192
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 192
    functionName: xmlHashCreate
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlInitParser
    - xmlRandom
    - xmlMalloc
    - xmlHashGrow
    linkageType: ''
    returnType: xmlHashTable*
    signature: 'xmlHashTable *xmlHashCreate(int size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashUpdateInternal
      Src: /src/libxml2/hash.c:629,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - hash
    - key
    - key2
    - payload
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 630
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 630
    functionName: xmlHashAdd2
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashUpdateInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlHashAdd2(xmlHashTable *hash, const xmlChar *key, const xmlChar
      *key2, void *payload) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashUpdateInternal
      Src: /src/libxml2/hash.c:719,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 5
    argNames:
    - hash
    - key
    - key2
    - key3
    - payload
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 727
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 727
    functionName: xmlHashAddEntry3
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashUpdateInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlHashAddEntry3(xmlHashTable *hash, const xmlChar *key, const
      xmlChar *key2, const xmlChar *key3, void *payload) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashScanFull
      Src: /src/libxml2/hash.c:962,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - hash
    - scan
    - data
    argTypes:
    - xmlHashTable*
    - xmlHashScanner
    - void*
    constantsTouched: []
    func_position:
      end: 963
      start: 957
    functionDepth: 0
    functionLinenumber: 957
    functionLinenumberEnd: 963
    functionName: xmlHashScan
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashScanFull
    linkageType: ''
    returnType: void
    signature: 'void xmlHashScan(xmlHashTable *hash, xmlHashScanner scan, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashScanFull3
      Src: /src/libxml2/hash.c:1033,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 6
    argNames:
    - hash
    - key
    - key2
    - key3
    - scan
    - data
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlHashScanner
    - void*
    constantsTouched: []
    func_position:
      end: 1034
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1034
    functionName: xmlHashScan3
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashScanFull3
    linkageType: ''
    returnType: void
    signature: 'void xmlHashScan3(xmlHashTable *hash, const xmlChar *key, const xmlChar
      *key2, const xmlChar *key3, xmlHashScanner scan, void *data) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxml2/hash.c:1117,1
    - Dst: copyFunc
      Src: /src/libxml2/hash.c:1130,1
    - Dst: xmlHashAdd3
      Src: /src/libxml2/hash.c:1133,1
    - Dst: deallocFunc
      Src: /src/libxml2/hash.c:1136,1
    - Dst: xmlHashFree
      Src: /src/libxml2/hash.c:1145,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 23
    argCount: 3
    argNames:
    - hash
    - copyFunc
    - deallocFunc
    argTypes:
    - xmlHashTable*
    - xmlHashCopier
    - xmlHashDeallocator
    constantsTouched: []
    func_position:
      end: 1147
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1147
    functionName: xmlHashCopySafe
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    - copyFunc
    - xmlHashCreate
    - xmlHashAdd3
    - deallocFunc
    linkageType: ''
    returnType: xmlHashTable*
    signature: 'xmlHashTable *xmlHashCopySafe(xmlHashTable *hash, xmlHashCopier copyFunc,
      xmlHashDeallocator deallocFunc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashUpdateInternal
      Src: /src/libxml2/hash.c:610,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - hash
    - key
    - payload
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 611
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 611
    functionName: xmlHashAdd
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashUpdateInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlHashAdd(xmlHashTable *hash, const xmlChar *key, void *payload) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashUpdateInternal
      Src: /src/libxml2/hash.c:693,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 4
    argNames:
    - hash
    - key
    - key2
    - payload
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 701
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 701
    functionName: xmlHashAddEntry2
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashUpdateInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlHashAddEntry2(xmlHashTable *hash, const xmlChar *key, const
      xmlChar *key2, void *payload) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashUpdateInternal
      Src: /src/libxml2/hash.c:767,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 5
    argNames:
    - hash
    - key
    - key2
    - payload
    - dealloc
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - xmlChar*
    - void*
    - xmlHashDeallocator
    constantsTouched: []
    func_position:
      end: 774
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 774
    functionName: xmlHashUpdateEntry2
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashUpdateInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlHashUpdateEntry2(xmlHashTable *hash, const xmlChar *key, const
      xmlChar *key2, void *payload, xmlHashDeallocator dealloc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 5
    argNames:
    - payload
    - data
    - key
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 948
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 948
    functionName: stubHashScannerFull
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void stubHashScannerFull(void *payload, void *data, const xmlChar
      *key, const xmlChar *key2 ATTRIBUTE_UNUSED, const xmlChar *key3 ATTRIBUTE_UNUSED) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: scan
      Src: /src/libxml2/hash.c:1002,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 33
    argCount: 3
    argNames:
    - hash
    - scan
    - data
    argTypes:
    - xmlHashTable*
    - xmlHashScannerFull
    - void*
    constantsTouched: []
    func_position:
      end: 1012
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 1012
    functionName: xmlHashScanFull
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - scan
    linkageType: ''
    returnType: void
    signature: 'void xmlHashScanFull(xmlHashTable *hash, xmlHashScannerFull scan,
      void *data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/hash.c:1079,1
    - Dst: xmlFastStrEqual
      Src: /src/libxml2/hash.c:1081,1
    - Dst: scan
      Src: /src/libxml2/hash.c:1085,1
    - Dst: xmlFastStrEqual
      Src: /src/libxml2/hash.c:1082,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 47
    argCount: 6
    argNames:
    - hash
    - key
    - key2
    - key3
    - scan
    - data
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlHashScannerFull
    - void*
    constantsTouched: []
    func_position:
      end: 1095
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1095
    functionName: xmlHashScanFull3
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - scan
    - xmlFastStrEqual
    - strcmp
    linkageType: ''
    returnType: void
    signature: 'void xmlHashScanFull3(xmlHashTable *hash, const xmlChar *key, const
      xmlChar *key2, const xmlChar *key3, xmlHashScannerFull scan, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashRemoveEntry3
      Src: /src/libxml2/hash.c:1206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - hash
    - key
    - key2
    - dealloc
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - xmlChar*
    - xmlHashDeallocator
    constantsTouched: []
    func_position:
      end: 1207
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1207
    functionName: xmlHashRemoveEntry2
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashRemoveEntry3
    linkageType: ''
    returnType: int
    signature: 'int xmlHashRemoveEntry2(xmlHashTable *hash, const xmlChar *key, const
      xmlChar *key2, xmlHashDeallocator dealloc) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashValue
      Src: /src/libxml2/hash.c:1233,1
    - Dst: xmlFree
      Src: /src/libxml2/hash.c:1244,1
    - Dst: dealloc
      Src: /src/libxml2/hash.c:1239,1
    - Dst: xmlHashFindEntry
      Src: /src/libxml2/hash.c:1234,1
    - Dst: xmlFree
      Src: /src/libxml2/hash.c:1242,1
    - Dst: xmlFree
      Src: /src/libxml2/hash.c:1246,1
    - Dst: memmove
      Src: /src/libxml2/hash.c:1279,1
    - Dst: memmove
      Src: /src/libxml2/hash.c:1285,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 53
    argCount: 5
    argNames:
    - hash
    - key
    - key2
    - key3
    - dealloc
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlHashDeallocator
    constantsTouched: []
    func_position:
      end: 1295
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1295
    functionName: xmlHashRemoveEntry3
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFindEntry
    - xmlHashValue
    - memmove
    - dealloc
    linkageType: ''
    returnType: ATTRIBUTE_NO_SANITIZE_INTEGER
    signature: 'ATTRIBUTE_NO_SANITIZE_INTEGER int xmlHashRemoveEntry3(xmlHashTable
      *hash, const xmlChar *key, const xmlChar *key2, const xmlChar *key3, xmlHashDeallocator
      dealloc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashUpdateInternal
      Src: /src/libxml2/hash.c:742,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 4
    argNames:
    - hash
    - key
    - payload
    - dealloc
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - void*
    - xmlHashDeallocator
    constantsTouched: []
    func_position:
      end: 749
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 749
    functionName: xmlHashUpdateEntry
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashUpdateInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlHashUpdateEntry(xmlHashTable *hash, const xmlChar *key, void
      *payload, xmlHashDeallocator dealloc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashValue
      Src: /src/libxml2/hash.c:877,1
    - Dst: xmlHashFindEntry
      Src: /src/libxml2/hash.c:878,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 10
    argCount: 4
    argNames:
    - hash
    - key
    - key2
    - key3
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 882
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 882
    functionName: xmlHashLookup3
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashFindEntry
    - xmlHashValue
    linkageType: ''
    returnType: void*
    signature: 'void *xmlHashLookup3(xmlHashTable *hash, const xmlChar *key, const
      xmlChar *key2, const xmlChar *key3) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashRemoveEntry3
      Src: /src/libxml2/hash.c:1189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - hash
    - key
    - dealloc
    argTypes:
    - xmlHashTable*
    - xmlChar*
    - xmlHashDeallocator
    constantsTouched: []
    func_position:
      end: 1190
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1190
    functionName: xmlHashRemoveEntry
    functionSourceFile: /src/libxml2/hash.c
    functionUses: []
    functionsReached:
    - xmlHashRemoveEntry3
    linkageType: ''
    returnType: int
    signature: 'int xmlHashRemoveEntry(xmlHashTable *hash, const xmlChar *key, xmlHashDeallocator
      dealloc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/testrecurse.c:281,1
    - Dst: strlen
      Src: /src/libxml2/testrecurse.c:285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - URI
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 291
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 291
    functionName: hugeOpen
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached:
    - strlen
    - strcmp
    linkageType: ''
    returnType: void*
    signature: 'static void *hugeOpen(const char * URI) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/testrecurse.c:485,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:495,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testrecurse.c:496,1
    - Dst: initSAX
      Src: /src/libxml2/testrecurse.c:487,1
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/testrecurse.c:493,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testrecurse.c:497,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testrecurse.c:500,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - filename
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 503
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 503
    functionName: recursiveDetectTest
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached:
    - xmlCtxtReadFile
    - initSAX
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - fprintf
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: "static int recursiveDetectTest(const char *filename, const char *result
      ATTRIBUTE_UNUSED, const char *err ATTRIBUTE_UNUSED,\t int options) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxml2/testrecurse.c:875,1
    - Dst: printf
      Src: /src/libxml2/testrecurse.c:883,1
    - Dst: launchTests
      Src: /src/libxml2/testrecurse.c:876,1
    - Dst: printf
      Src: /src/libxml2/testrecurse.c:881,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 889
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 889
    functionName: runtest
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached:
    - printf
    - launchTests
    linkageType: ''
    returnType: int
    signature: 'static int runtest(int i) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/libxml2/testrecurse.c:438,1
    - Dst: S_ISREG
      Src: /src/libxml2/testrecurse.c:445,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 450
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 450
    functionName: checkTestFile
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached:
    - stat
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: 'static int checkTestFile(const char *filename) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:356,1
    - Dst: exit
      Src: /src/libxml2/testrecurse.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 358
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 358
    functionName: fatalError
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: int
    signature: 'static int fatalError(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: initializeLibxml2
      Src: /src/libxml2/testrecurse.c:896,1
    - Dst: strcmp
      Src: /src/libxml2/testrecurse.c:901,1
    - Dst: strcmp
      Src: /src/libxml2/testrecurse.c:899,1
    - Dst: strstr
      Src: /src/libxml2/testrecurse.c:905,1
    - Dst: runtest
      Src: /src/libxml2/testrecurse.c:906,1
    - Dst: runtest
      Src: /src/libxml2/testrecurse.c:914,1
    - Dst: printf
      Src: /src/libxml2/testrecurse.c:919,1
    - Dst: printf
      Src: /src/libxml2/testrecurse.c:923,1
    - Dst: xmlCleanupParser
      Src: /src/libxml2/testrecurse.c:926,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 929
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 929
    functionName: main
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached:
    - strcmp
    - initializeLibxml2
    - runtest
    - strstr
    - printf
    - xmlCleanupParser
    linkageType: ''
    returnType: int
    signature: 'int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/testrecurse.c:259,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - URI
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 264
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 264
    functionName: hugeMatch
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: 'static int hugeMatch(const char * URI) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libxml2/testrecurse.c:401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 407
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 407
    functionName: baseFilename
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached:
    - strlen
    linkageType: ''
    returnType: char*
    signature: 'static const char *baseFilename(const char *filename) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/testrecurse.c:572,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/testrecurse.c:595,1
    - Dst: xmlStrlen
      Src: /src/libxml2/testrecurse.c:604,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:614,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:628,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/testrecurse.c:602,1
    - Dst: xmlStrlen
      Src: /src/libxml2/testrecurse.c:587,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/testrecurse.c:612,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:634,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:574,1
    - Dst: initSAX
      Src: /src/libxml2/testrecurse.c:569,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:620,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testrecurse.c:640,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:607,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/testrecurse.c:567,1
    - Dst: xmlStrlen
      Src: /src/libxml2/testrecurse.c:580,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/testrecurse.c:585,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:590,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:597,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testrecurse.c:641,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 76
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 644
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 644
    functionName: notRecursiveHugeTest
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached:
    - xmlCtxtReadFile
    - xmlStrlen
    - xmlGetDocEntity
    - initSAX
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - fprintf
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: "static int notRecursiveHugeTest(const char *filename ATTRIBUTE_UNUSED,
      const char *result ATTRIBUTE_UNUSED, const char *err ATTRIBUTE_UNUSED,\t int
      options) "
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: glob
      Src: /src/libxml2/testrecurse.c:801,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:809,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:819,1
    - Dst: xmlFree
      Src: /src/libxml2/testrecurse.c:850,1
    - Dst: resultFilename
      Src: /src/libxml2/testrecurse.c:806,1
    - Dst: resultFilename
      Src: /src/libxml2/testrecurse.c:816,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:841,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/testrecurse.c:840,1
    - Dst: globfree
      Src: /src/libxml2/testrecurse.c:852,1
    - Dst: fatalError
      Src: /src/libxml2/testrecurse.c:810,1
    - Dst: fatalError
      Src: /src/libxml2/testrecurse.c:820,1
    - Dst: checkTestFile
      Src: /src/libxml2/testrecurse.c:825,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:835,1
    - Dst: xmlResetLastError
      Src: /src/libxml2/testrecurse.c:833,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/testrecurse.c:830,1
    - Dst: checkTestFile
      Src: /src/libxml2/testrecurse.c:827,1
    - Dst: checkTestFile
      Src: /src/libxml2/testrecurse.c:803,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:826,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/testrecurse.c:842,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:828,1
    - Dst: xmlFree
      Src: /src/libxml2/testrecurse.c:848,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 1
    argNames:
    - tst
    argTypes:
    - testDescPtr
    constantsTouched: []
    func_position:
      end: 861
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 861
    functionName: launchTests
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached:
    - xmlFree
    - resultFilename
    - checkTestFile
    - xmlResetLastError
    - glob
    - globfree
    - fatalError
    - xmlMemUsed
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int launchTests(testDescPtr tst) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/libxml2/testrecurse.c:82,1
    - Dst: strlen
      Src: /src/libxml2/testrecurse.c:83,1
    - Dst: xmlMalloc
      Src: /src/libxml2/testrecurse.c:101,1
    - Dst: FindFirstFileA
      Src: /src/libxml2/testrecurse.c:97,1
    - Dst: memset
      Src: /src/libxml2/testrecurse.c:95,1
    - Dst: FindClose
      Src: /src/libxml2/testrecurse.c:103,1
    - Dst: strncpy
      Src: /src/libxml2/testrecurse.c:106,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/testrecurse.c:107,1
    - Dst: FindNextFileA
      Src: /src/libxml2/testrecurse.c:111,1
    - Dst: xmlRealloc
      Src: /src/libxml2/testrecurse.c:115,1
    - Dst: FindClose
      Src: /src/libxml2/testrecurse.c:130,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/testrecurse.c:122,1
    - Dst: strncpy
      Src: /src/libxml2/testrecurse.c:121,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 4
    argNames:
    - pattern
    - flags
    - errfunc
    - pglob
    argTypes:
    - char*
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - glob_t*
    constantsTouched: []
    func_position:
      end: 132
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 132
    functionName: glob
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached:
    - FindNextFileA
    - xmlMemStrdup
    - memset
    - xmlRealloc
    - FindFirstFileA
    - strncpy
    - FindClose
    - strlen
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'static int glob(const char *pattern, ATTRIBUTE_UNUSED int flags, ATTRIBUTE_UNUSED
      int errfunc(const char *epath, int eerrno), glob_t *pglob) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/testrecurse.c:143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - pglob
    argTypes:
    - glob_t*
    constantsTouched: []
    func_position:
      end: 145
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 145
    functionName: globfree
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void globfree(glob_t *pglob) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: baseFilename
      Src: /src/libxml2/testrecurse.c:422,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/testrecurse.c:432,1
    - Dst: snprintf
      Src: /src/libxml2/testrecurse.c:430,1
    - Dst: strncpy
      Src: /src/libxml2/testrecurse.c:428,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 3
    argNames:
    - filename
    - out
    - suffix
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 433
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 433
    functionName: resultFilename
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached:
    - xmlMemStrdup
    - snprintf
    - baseFilename
    - strncpy
    linkageType: ''
    returnType: char*
    signature: 'static char *resultFilename(const char *filename, const char *out,
      const char *suffix) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/testrecurse.c:526,1
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/testrecurse.c:534,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:536,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testrecurse.c:537,1
    - Dst: initSAX
      Src: /src/libxml2/testrecurse.c:528,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testrecurse.c:540,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testrecurse.c:541,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - filename
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 544
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 544
    functionName: notRecursiveDetectTest
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached:
    - xmlCtxtReadFile
    - initSAX
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - fprintf
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: "static int notRecursiveDetectTest(const char *filename, const char
      *result ATTRIBUTE_UNUSED, const char *err ATTRIBUTE_UNUSED,\t int options) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMemSetup
      Src: /src/libxml2/testrecurse.c:362,1
    - Dst: xmlInitParser
      Src: /src/libxml2/testrecurse.c:363,1
    - Dst: xmlRegisterInputCallbacks
      Src: /src/libxml2/testrecurse.c:371,1
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/testrecurse.c:365,1
    - Dst: xmlCatalogSetDefaults
      Src: /src/libxml2/testrecurse.c:366,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:373,1
    - Dst: exit
      Src: /src/libxml2/testrecurse.c:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 376
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 376
    functionName: initializeLibxml2
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached:
    - fprintf
    - xmlCatalogSetDefaults
    - xmlInitParser
    - xmlInitializeCatalog
    - exit
    - xmlMemSetup
    - xmlRegisterInputCallbacks
    linkageType: ''
    returnType: void
    signature: 'static void initializeLibxml2(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/testrecurse.c:667,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:675,1
    - Dst: initSAX
      Src: /src/libxml2/testrecurse.c:669,1
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/testrecurse.c:672,1
    - Dst: xmlStrlen
      Src: /src/libxml2/testrecurse.c:680,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:688,1
    - Dst: strlen
      Src: /src/libxml2/testrecurse.c:693,1
    - Dst: strlen
      Src: /src/libxml2/testrecurse.c:694,1
    - Dst: strlen
      Src: /src/libxml2/testrecurse.c:709,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:711,1
    - Dst: strlen
      Src: /src/libxml2/testrecurse.c:716,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testrecurse.c:732,1
    - Dst: strlen
      Src: /src/libxml2/testrecurse.c:718,1
    - Dst: strlen
      Src: /src/libxml2/testrecurse.c:717,1
    - Dst: fprintf
      Src: /src/libxml2/testrecurse.c:726,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testrecurse.c:733,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 79
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - options
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 736
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 736
    functionName: hugeDtdTest
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached:
    - xmlCtxtReadFile
    - xmlStrlen
    - initSAX
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - strlen
    - fprintf
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int hugeDtdTest(const char *filename ATTRIBUTE_UNUSED, const
      char *result ATTRIBUTE_UNUSED, const char *err ATTRIBUTE_UNUSED, int options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - errfunc
    - pglob
    argTypes:
    - char*
    - int
    - int
    - glob_t*
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: glob
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int glob(const char *pattern ATTRIBUTE_UNUSED, int flags ATTRIBUTE_UNUSED,
      int errfunc(const char *epath, int eerrno) ATTRIBUTE_UNUSED, glob_t *pglob) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - glob_t*
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: globfree
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void globfree(glob_t *pglob ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 389
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 389
    functionName: initSAX
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void initSAX(xmlParserCtxtPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 303
    functionName: hugeClose
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int hugeClose(void * context) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libxml2/testrecurse.c:328,1
    - Dst: memcpy
      Src: /src/libxml2/testrecurse.c:337,1
    - Dst: strlen
      Src: /src/libxml2/testrecurse.c:335,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - context
    - buffer
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 342
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 342
    functionName: hugeRead
    functionSourceFile: /src/libxml2/testrecurse.c
    functionUses: []
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: int
    signature: 'static int hugeRead(void *context, char *buffer, int len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/dict.c:305,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/dict.c:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - dict
    argTypes:
    - xmlDict*
    constantsTouched: []
    func_position:
      end: 309
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 309
    functionName: xmlDictReference
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'int xmlDictReference(xmlDict *dict) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/dict.c:1008,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/dict.c:1010,1
    - Dst: xoroshiro64ss
      Src: /src/libxml2/dict.c:1009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1013
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1013
    functionName: xmlGlobalRandom
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xoroshiro64ss
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: unsigned
    signature: 'unsigned xmlGlobalRandom(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/dict.c:165,1
    - Dst: memcpy
      Src: /src/libxml2/dict.c:177,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 3
    argNames:
    - dict
    - name
    - namelen
    argTypes:
    - xmlDictPtr
    - xmlChar*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 182
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 182
    functionName: xmlDictAddString
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlMalloc
    - memcpy
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlDictAddString(xmlDictPtr dict, const xmlChar
      *name, unsigned int namelen) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictCreate
      Src: /src/libxml2/dict.c:286,1
    - Dst: xmlDictReference
      Src: /src/libxml2/dict.c:291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - sub
    argTypes:
    - xmlDict*
    constantsTouched: []
    func_position:
      end: 294
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 294
    functionName: xmlDictCreateSub
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlDictReference
    - xmlDictCreate
    linkageType: ''
    returnType: xmlDict*
    signature: 'xmlDict *xmlDictCreateSub(xmlDict *sub) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - dict
    - limit
    argTypes:
    - xmlDict*
    - size_t
    constantsTouched: []
    func_position:
      end: 408
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 408
    functionName: xmlDictSetLimit
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: 'size_t xmlDictSetLimit(xmlDict *dict, size_t limit) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictHashName
      Src: /src/libxml2/dict.c:498,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - dict
    - string
    argTypes:
    - xmlDict*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 499
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 499
    functionName: xmlDictComputeHash
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlDictHashName
    linkageType: ''
    returnType: unsigned
    signature: 'unsigned xmlDictComputeHash(const xmlDict *dict, const xmlChar *string) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/dict.c:605,1
    - Dst: xmlFree
      Src: /src/libxml2/dict.c:645,1
    - Dst: memset
      Src: /src/libxml2/dict.c:608,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 2
    argNames:
    - dict
    - size
    argTypes:
    - xmlDictPtr
    - unsigned
    constantsTouched: []
    func_position:
      end: 652
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 652
    functionName: xmlDictGrow
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlDictGrow(xmlDictPtr dict, unsigned size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASH_ROL
      Src: /src/libxml2/dict.c:989,1
    - Dst: HASH_ROL
      Src: /src/libxml2/dict.c:993,1
    - Dst: HASH_ROL
      Src: /src/libxml2/dict.c:992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - unsigned*
    constantsTouched: []
    func_position:
      end: 996
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 996
    functionName: xoroshiro64ss
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - HASH_ROL
    linkageType: ''
    returnType: ATTRIBUTE_NO_SANITIZE_INTEGER
    signature: 'ATTRIBUTE_NO_SANITIZE_INTEGER static unsigned xoroshiro64ss(unsigned
      *s) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: xmlDictCleanup
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlDictCleanup(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - dict
    argTypes:
    - xmlDict*
    constantsTouched: []
    func_position:
      end: 430
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 430
    functionName: xmlDictGetUsage
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: 'size_t xmlDictGetUsage(xmlDict *dict) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASH_ROL31
      Src: /src/libxml2/dict.c:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - unsigned
    - unsigned
    constantsTouched: []
    func_position:
      end: 521
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 521
    functionName: xmlDictCombineHash
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - HASH_ROL31
    linkageType: ''
    returnType: 'ATTRIBUTE_NO_SANITIZE_INTEGER

      unsigned'
    signature: 'ATTRIBUTE_NO_SANITIZE_INTEGERunsigned xmlDictCombineHash(unsigned
      v1, unsigned v2) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitMutex
      Src: /src/libxml2/dict.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: xmlInitDictInternal
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlInitMutex
    linkageType: ''
    returnType: void
    signature: 'void xmlInitDictInternal(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xoroshiro64ss
      Src: /src/libxml2/dict.c:1023,1
    - Dst: xmlGetLocalRngState
      Src: /src/libxml2/dict.c:1023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1024
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1024
    functionName: xmlRandom
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xoroshiro64ss
    - xmlGetLocalRngState
    linkageType: ''
    returnType: unsigned
    signature: 'unsigned xmlRandom(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/dict.c:255,1
    - Dst: xmlMalloc
      Src: /src/libxml2/dict.c:257,1
    - Dst: xmlRandom
      Src: /src/libxml2/dict.c:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 273
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 273
    functionName: xmlDictCreate
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlMalloc
    - xmlInitParser
    - xmlRandom
    linkageType: ''
    returnType: xmlDict*
    signature: 'xmlDict *xmlDictCreate(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictOwns
      Src: /src/libxml2/dict.c:371,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - dict
    - str
    argTypes:
    - xmlDict*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 373
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 373
    functionName: xmlDictOwns
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlDictOwns
    linkageType: ''
    returnType: int
    signature: 'int xmlDictOwns(xmlDict *dict, const xmlChar *str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictLookupInternal
      Src: /src/libxml2/dict.c:860,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 3
    argNames:
    - dict
    - name
    - len
    argTypes:
    - xmlDict*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 864
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 864
    functionName: xmlDictExists
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlDictLookupInternal
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlDictExists(xmlDict *dict, const xmlChar *name, int
      len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictLookupInternal
      Src: /src/libxml2/dict.c:880,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 3
    argNames:
    - dict
    - prefix
    - name
    argTypes:
    - xmlDict*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 884
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 884
    functionName: xmlDictQLookup
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlDictLookupInternal
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlDictQLookup(xmlDict *dict, const xmlChar *prefix,
      const xmlChar *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCleanupMutex
      Src: /src/libxml2/dict.c:981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 982
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 982
    functionName: xmlCleanupRandom
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlCleanupMutex
    linkageType: ''
    returnType: void
    signature: 'void xmlCleanupRandom(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/dict.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: xmlInitializeDict
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlInitParser
    linkageType: ''
    returnType: int
    signature: 'int xmlInitializeDict(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/dict.c:224,1
    - Dst: memcpy
      Src: /src/libxml2/dict.c:236,1
    - Dst: memcpy
      Src: /src/libxml2/dict.c:239,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 5
    argNames:
    - dict
    - prefix
    - plen
    - name
    - namelen
    argTypes:
    - xmlDictPtr
    - xmlChar*
    - unsigned int
    - xmlChar*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 244
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 244
    functionName: xmlDictAddQString
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlMalloc
    - memcpy
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlDictAddQString(xmlDictPtr dict, const xmlChar
      *prefix, unsigned int plen, const xmlChar *name, unsigned int namelen) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/dict.c:325,1
    - Dst: xmlFree
      Src: /src/libxml2/dict.c:339,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/dict.c:328,1
    - Dst: xmlDictFree
      Src: /src/libxml2/dict.c:335,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/dict.c:332,1
    - Dst: xmlFree
      Src: /src/libxml2/dict.c:344,1
    - Dst: xmlFree
      Src: /src/libxml2/dict.c:347,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - dict
    argTypes:
    - xmlDict*
    constantsTouched: []
    func_position:
      end: 348
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 348
    functionName: xmlDictFree
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictFree
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: void
    signature: 'void xmlDictFree(xmlDict *dict) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASH_INIT
      Src: /src/libxml2/dict.c:446,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/dict.c:449,1
    - Dst: HASH_FINISH
      Src: /src/libxml2/dict.c:452,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - seed
    - data
    - maxLen
    - plen
    argTypes:
    - unsigned
    - xmlChar*
    - size_t
    - size_t*
    constantsTouched: []
    func_position:
      end: 456
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 456
    functionName: xmlDictHashName
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - HASH_INIT
    - HASH_UPDATE
    - HASH_FINISH
    linkageType: ''
    returnType: ATTRIBUTE_NO_SANITIZE_INTEGER
    signature: 'ATTRIBUTE_NO_SANITIZE_INTEGER static unsigned xmlDictHashName(unsigned
      seed, const xmlChar* data, size_t maxLen, size_t *plen) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictLookupInternal
      Src: /src/libxml2/dict.c:836,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - dict
    - name
    - len
    argTypes:
    - xmlDict*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 846
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 846
    functionName: xmlDictLookupHashed
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlDictLookupInternal
    linkageType: ''
    returnType: xmlHashedString
    signature: 'xmlHashedString xmlDictLookupHashed(xmlDict *dict, const xmlChar *name,
      int len) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitMutex
      Src: /src/libxml2/dict.c:915,1
    - Dst: GetLastError
      Src: /src/libxml2/dict.c:933,1
    - Dst: xmlAbort
      Src: /src/libxml2/dict.c:932,1
    - Dst: BCryptGenRandom
      Src: /src/libxml2/dict.c:928,1
    - Dst: BCRYPT_SUCCESS
      Src: /src/libxml2/dict.c:931,1
    - Dst: getentropy
      Src: /src/libxml2/dict.c:939,1
    - Dst: xmlAbort
      Src: /src/libxml2/dict.c:957,1
    - Dst: time
      Src: /src/libxml2/dict.c:966,1
    - Dst: HASH_ROL
      Src: /src/libxml2/dict.c:967,1
    - Dst: HASH_ROL
      Src: /src/libxml2/dict.c:969,1
    - Dst: HASH_ROL
      Src: /src/libxml2/dict.c:970,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 973
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 973
    functionName: xmlInitRandom
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - BCRYPT_SUCCESS
    - xmlAbort
    - GetLastError
    - BCryptGenRandom
    - getentropy
    - time
    - HASH_ROL
    - xmlInitMutex
    linkageType: ''
    returnType: ATTRIBUTE_NO_SANITIZE_INTEGER
    signature: 'ATTRIBUTE_NO_SANITIZE_INTEGER void xmlInitRandom(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCleanupMutex
      Src: /src/libxml2/dict.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: xmlCleanupDictInternal
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlCleanupMutex
    linkageType: ''
    returnType: void
    signature: 'void xmlCleanupDictInternal(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - dict
    argTypes:
    - xmlDict*
    constantsTouched: []
    func_position:
      end: 389
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 389
    functionName: xmlDictSize
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlDictSize(xmlDict *dict) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASH_INIT
      Src: /src/libxml2/dict.c:465,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/dict.c:468,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/dict.c:475,1
    - Dst: HASH_FINISH
      Src: /src/libxml2/dict.c:479,1
    - Dst: HASH_UPDATE
      Src: /src/libxml2/dict.c:472,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - seed
    - prefix
    - name
    - pplen
    - plen
    argTypes:
    - unsigned
    - xmlChar*
    - xmlChar*
    - size_t*
    - size_t*
    constantsTouched: []
    func_position:
      end: 486
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 486
    functionName: xmlDictHashQName
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - HASH_INIT
    - HASH_UPDATE
    - HASH_FINISH
    linkageType: ''
    returnType: ATTRIBUTE_NO_SANITIZE_INTEGER
    signature: 'ATTRIBUTE_NO_SANITIZE_INTEGER static unsigned xmlDictHashQName(unsigned
      seed, const xmlChar *prefix, const xmlChar *name, size_t *pplen, size_t *plen) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/libxml2/dict.c:562,1
    - Dst: xmlStrQEqual
      Src: /src/libxml2/dict.c:569,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 6
    argNames:
    - dict
    - prefix
    - name
    - len
    - hashValue
    - pfound
    argTypes:
    - xmlDict*
    - xmlChar*
    - xmlChar*
    - int
    - unsigned
    - int*
    constantsTouched: []
    func_position:
      end: 587
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 587
    functionName: xmlDictFindEntry
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlStrQEqual
    - strncmp
    linkageType: ''
    returnType: ATTRIBUTE_NO_SANITIZE_INTEGER*
    signature: 'ATTRIBUTE_NO_SANITIZE_INTEGER static xmlDictEntry *xmlDictFindEntry(const
      xmlDict *dict, const xmlChar *prefix, const xmlChar *name, int len, unsigned
      hashValue, int *pfound) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictLookupInternal
      Src: /src/libxml2/dict.c:816,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 3
    argNames:
    - dict
    - name
    - len
    argTypes:
    - xmlDict*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 820
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 820
    functionName: xmlDictLookup
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlDictLookupInternal
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlDictLookup(xmlDict *dict, const xmlChar *name, int
      len) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictHashName
      Src: /src/libxml2/dict.c:679,1
    - Dst: xmlDictHashQName
      Src: /src/libxml2/dict.c:720,1
    - Dst: xmlDictHashName
      Src: /src/libxml2/dict.c:717,1
    - Dst: xmlDictHashQName
      Src: /src/libxml2/dict.c:684,1
    - Dst: xmlDictFindEntry
      Src: /src/libxml2/dict.c:699,1
    - Dst: xmlDictFindEntry
      Src: /src/libxml2/dict.c:722,1
    - Dst: xmlDictGrow
      Src: /src/libxml2/dict.c:737,1
    - Dst: xmlDictAddString
      Src: /src/libxml2/dict.c:759,1
    - Dst: xmlDictAddQString
      Src: /src/libxml2/dict.c:761,1
    - Dst: memmove
      Src: /src/libxml2/dict.c:783,1
    - Dst: memmove
      Src: /src/libxml2/dict.c:789,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 98
    argCount: 5
    argNames:
    - dict
    - prefix
    - name
    - maybeLen
    - update
    argTypes:
    - xmlDict*
    - xmlChar*
    - xmlChar*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 801
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 801
    functionName: xmlDictLookupInternal
    functionSourceFile: /src/libxml2/dict.c
    functionUses: []
    functionsReached:
    - xmlDictHashName
    - xmlDictGrow
    - memmove
    - xmlDictAddQString
    - xmlDictHashQName
    - xmlDictFindEntry
    - xmlDictAddString
    linkageType: ''
    returnType: ATTRIBUTE_NO_SANITIZE_INTEGER*
    signature: 'ATTRIBUTE_NO_SANITIZE_INTEGER static const xmlDictEntry *xmlDictLookupInternal(xmlDict
      *dict, const xmlChar *prefix, const xmlChar *name, int maybeLen, int update) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlOpenCharEncodingHandler
      Src: /src/libxml2/HTMLtree.c:455,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - encoding
    - out
    argTypes:
    - char*
    - xmlCharEncodingHandler**
    constantsTouched: []
    func_position:
      end: 456
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 456
    functionName: htmlFindOutputEncoder
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - xmlOpenCharEncodingHandler
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'static xmlParserErrors htmlFindOutputEncoder(const char *encoding,
      xmlCharEncodingHandler **out) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/HTMLtree.c:605,1
    - Dst: htmlDocContentDumpFormatOutput
      Src: /src/libxml2/HTMLtree.c:622,1
    - Dst: htmlFindOutputEncoder
      Src: /src/libxml2/HTMLtree.c:614,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/HTMLtree.c:618,1
    - Dst: xmlAllocOutputBuffer
      Src: /src/libxml2/HTMLtree.c:616,1
    - Dst: xmlOutputBufferFlush
      Src: /src/libxml2/HTMLtree.c:624,1
    - Dst: xmlBufUse
      Src: /src/libxml2/HTMLtree.c:628,1
    - Dst: xmlStrndup
      Src: /src/libxml2/HTMLtree.c:629,1
    - Dst: xmlBufContent
      Src: /src/libxml2/HTMLtree.c:629,1
    - Dst: xmlBufUse
      Src: /src/libxml2/HTMLtree.c:631,1
    - Dst: xmlStrndup
      Src: /src/libxml2/HTMLtree.c:632,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/HTMLtree.c:636,1
    - Dst: xmlBufContent
      Src: /src/libxml2/HTMLtree.c:632,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - cur
    - mem
    - size
    - format
    argTypes:
    - xmlDoc*
    - xmlChar**
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 637
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 637
    functionName: htmlDocDumpMemoryFormat
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - xmlStrndup
    - xmlOutputBufferClose
    - xmlInitParser
    - htmlDocContentDumpFormatOutput
    - xmlOutputBufferFlush
    - xmlCharEncCloseFunc
    - xmlBufUse
    - xmlAllocOutputBuffer
    - xmlBufContent
    - htmlFindOutputEncoder
    linkageType: ''
    returnType: void
    signature: 'void htmlDocDumpMemoryFormat(xmlDoc *cur, xmlChar**mem, int *size,
      int format) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htmlDocDumpMemoryFormat
      Src: /src/libxml2/HTMLtree.c:651,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - cur
    - mem
    - size
    argTypes:
    - xmlDoc*
    - xmlChar**
    - int*
    constantsTouched: []
    func_position:
      end: 652
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 652
    functionName: htmlDocDumpMemory
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - htmlDocDumpMemoryFormat
    linkageType: ''
    returnType: void
    signature: 'void htmlDocDumpMemory(xmlDoc *cur, xmlChar**mem, int *size) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/HTMLtree.c:1209,1
    - Dst: htmlFindOutputEncoder
      Src: /src/libxml2/HTMLtree.c:1215,1
    - Dst: xmlOutputBufferCreateFile
      Src: /src/libxml2/HTMLtree.c:1217,1
    - Dst: htmlDocContentDumpOutput
      Src: /src/libxml2/HTMLtree.c:1222,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/HTMLtree.c:1219,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/HTMLtree.c:1224,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - f
    - cur
    argTypes:
    - FILE*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 1226
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1226
    functionName: htmlDocDump
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - htmlDocContentDumpOutput
    - xmlOutputBufferClose
    - xmlInitParser
    - xmlCharEncCloseFunc
    - xmlOutputBufferCreateFile
    - htmlFindOutputEncoder
    linkageType: ''
    returnType: int
    signature: 'int htmlDocDump(FILE *f, xmlDoc *cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htmlNodeDumpFileFormat
      Src: /src/libxml2/HTMLtree.c:583,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - out
    - doc
    - cur
    argTypes:
    - FILE*
    - xmlDoc*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 584
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 584
    functionName: htmlNodeDumpFile
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - htmlNodeDumpFileFormat
    linkageType: ''
    returnType: void
    signature: 'void htmlNodeDumpFile(FILE *out, xmlDoc *doc, xmlNode *cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htmlNodeDumpInternal
      Src: /src/libxml2/HTMLtree.c:1176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - cur
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlOutputBuffer*
    - xmlDoc*
    - char*
    constantsTouched: []
    func_position:
      end: 1177
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1177
    functionName: htmlDocContentDumpOutput
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - htmlNodeDumpInternal
    linkageType: ''
    returnType: void
    signature: "void htmlDocContentDumpOutput(xmlOutputBuffer *buf, xmlDoc *cur,\t
      const char *encoding ATTRIBUTE_UNUSED) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:763,1
    - Dst: htmlIsBooleanAttr
      Src: /src/libxml2/HTMLtree.c:776,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:767,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/HTMLtree.c:769,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/HTMLtree.c:766,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:780,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLtree.c:788,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLtree.c:789,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLtree.c:790,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLtree.c:791,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLtree.c:792,1
    - Dst: xmlSerializeText
      Src: /src/libxml2/HTMLtree.c:804,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:809,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:815,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/HTMLtree.c:810,1
    - Dst: htmlSerializeUri
      Src: /src/libxml2/HTMLtree.c:802,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:811,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 2
    argNames:
    - buf
    - cur
    argTypes:
    - xmlOutputBufferPtr
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 817
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 817
    functionName: htmlAttrDumpOutput
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWrite
    - htmlIsBooleanAttr
    - xmlStrcasecmp
    - xmlOutputBufferWriteString
    - htmlSerializeUri
    - xmlSerializeText
    linkageType: ''
    returnType: void
    signature: 'static void htmlAttrDumpOutput(xmlOutputBufferPtr buf, xmlAttrPtr
      cur) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLtree.c:707,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:709,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:749,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:725,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 2
    argNames:
    - buf
    - content
    argTypes:
    - xmlOutputBufferPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 753
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 753
    functionName: htmlSerializeUri
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - IS_WS_HTML
    - xmlOutputBufferWrite
    linkageType: ''
    returnType: void
    signature: 'static void htmlSerializeUri(xmlOutputBufferPtr buf, const xmlChar
      *content) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htmlSaveFileFormat
      Src: /src/libxml2/HTMLtree.c:1308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - filename
    - cur
    - encoding
    argTypes:
    - char*
    - xmlDoc*
    - char*
    constantsTouched: []
    func_position:
      end: 1309
      start: 1306
    functionDepth: 0
    functionLinenumber: 1306
    functionLinenumberEnd: 1309
    functionName: htmlSaveFileEnc
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - htmlSaveFileFormat
    linkageType: ''
    returnType: int
    signature: 'int htmlSaveFileEnc(const char *filename, xmlDoc *cur, const char
      *encoding) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htmlNodeDumpInternal
      Src: /src/libxml2/HTMLtree.c:1161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - cur
    - ATTRIBUTE_UNUSED
    - format
    argTypes:
    - xmlOutputBuffer*
    - xmlDoc*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1162
      start: 1157
    functionDepth: 0
    functionLinenumber: 1157
    functionLinenumberEnd: 1162
    functionName: htmlDocContentDumpFormatOutput
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - htmlNodeDumpInternal
    linkageType: ''
    returnType: void
    signature: "void htmlDocContentDumpFormatOutput(xmlOutputBuffer *buf, xmlDoc *cur,\t
      const char *encoding ATTRIBUTE_UNUSED, int format) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/HTMLtree.c:1274,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/HTMLtree.c:1284,1
    - Dst: xmlOutputBufferCreateFilename
      Src: /src/libxml2/HTMLtree.c:1282,1
    - Dst: htmlFindOutputEncoder
      Src: /src/libxml2/HTMLtree.c:1276,1
    - Dst: htmlDocContentDumpFormatOutput
      Src: /src/libxml2/HTMLtree.c:1288,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/HTMLtree.c:1290,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - filename
    - cur
    - encoding
    - format
    argTypes:
    - char*
    - xmlDoc*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1292
      start: 1264
    functionDepth: 0
    functionLinenumber: 1264
    functionLinenumberEnd: 1292
    functionName: htmlSaveFileFormat
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferClose
    - xmlOutputBufferCreateFilename
    - xmlInitParser
    - htmlDocContentDumpFormatOutput
    - xmlCharEncCloseFunc
    - htmlFindOutputEncoder
    linkageType: ''
    returnType: int
    signature: "int htmlSaveFileFormat(const char *filename, xmlDoc *cur,\t const
      char *encoding, int format) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLtree.c:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - parent
    - name
    argTypes:
    - htmlNodePtr
    - char*
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: htmlFindFirstChild
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - xmlStrcasecmp
    linkageType: ''
    returnType: htmlNodePtr
    signature: 'static htmlNodePtr htmlFindFirstChild(htmlNodePtr parent, const char
      *name) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLtree.c:437,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 36
    argCount: 1
    argNames:
    - name
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 438
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 438
    functionName: htmlIsBooleanAttr
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - xmlStrcasecmp
    linkageType: ''
    returnType: int
    signature: 'int htmlIsBooleanAttr(const xmlChar *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/HTMLtree.c:553,1
    - Dst: htmlNodeDumpInternal
      Src: /src/libxml2/HTMLtree.c:566,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/HTMLtree.c:562,1
    - Dst: xmlOutputBufferCreateFile
      Src: /src/libxml2/HTMLtree.c:560,1
    - Dst: htmlFindOutputEncoder
      Src: /src/libxml2/HTMLtree.c:558,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/HTMLtree.c:568,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 5
    argNames:
    - out
    - ATTRIBUTE_UNUSED
    - cur
    - encoding
    - format
    argTypes:
    - FILE*
    - xmlDoc*
    - xmlNode*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 570
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 570
    functionName: htmlNodeDumpFileFormat
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferClose
    - htmlNodeDumpInternal
    - xmlInitParser
    - xmlCharEncCloseFunc
    - xmlOutputBufferCreateFile
    - htmlFindOutputEncoder
    linkageType: ''
    returnType: int
    signature: "int htmlNodeDumpFileFormat(FILE *out, xmlDoc *doc ATTRIBUTE_UNUSED,\t
      xmlNode *cur, const char *encoding, int format) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htmlNodeDumpInternal
      Src: /src/libxml2/HTMLtree.c:1146,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - ATTRIBUTE_UNUSED
    - cur
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlOutputBuffer*
    - xmlDoc*
    - xmlNode*
    - char*
    constantsTouched: []
    func_position:
      end: 1147
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1147
    functionName: htmlNodeDumpOutput
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - htmlNodeDumpInternal
    linkageType: ''
    returnType: void
    signature: 'void htmlNodeDumpOutput(xmlOutputBuffer *buf, xmlDoc *doc ATTRIBUTE_UNUSED,
      xmlNode *cur, const char *encoding ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htmlSaveFileFormat
      Src: /src/libxml2/HTMLtree.c:1243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - cur
    argTypes:
    - char*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 1244
      start: 1241
    functionDepth: 0
    functionLinenumber: 1241
    functionLinenumberEnd: 1244
    functionName: htmlSaveFile
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - htmlSaveFileFormat
    linkageType: ''
    returnType: int
    signature: 'int htmlSaveFile(const char *filename, xmlDoc *cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htmlNodeDumpInternal
      Src: /src/libxml2/HTMLtree.c:1130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 5
    argNames:
    - buf
    - ATTRIBUTE_UNUSED
    - cur
    - ATTRIBUTE_UNUSED
    - format
    argTypes:
    - xmlOutputBuffer*
    - xmlDoc*
    - xmlNode*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1131
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1131
    functionName: htmlNodeDumpFormatOutput
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - htmlNodeDumpInternal
    linkageType: ''
    returnType: void
    signature: 'void htmlNodeDumpFormatOutput(xmlOutputBuffer *buf, xmlDoc *doc ATTRIBUTE_UNUSED,
      xmlNode *cur, const char *encoding ATTRIBUTE_UNUSED, int format) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htmlFindFirstChild
      Src: /src/libxml2/HTMLtree.c:65,1
    - Dst: htmlFindFirstChild
      Src: /src/libxml2/HTMLtree.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - doc
    argTypes:
    - htmlDocPtr
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: htmlFindHead
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - htmlFindFirstChild
    linkageType: ''
    returnType: htmlNodePtr
    signature: 'static htmlNodePtr htmlFindHead(htmlDocPtr doc) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLtree.c:141,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLtree.c:157,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLtree.c:147,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLtree.c:151,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLtree.c:153,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 2
    argNames:
    - elem
    - outIsContentType
    argTypes:
    - htmlNodePtr
    - int*
    constantsTouched: []
    func_position:
      end: 168
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 168
    functionName: htmlFindMetaEncodingAttr
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - xmlStrcasecmp
    linkageType: ''
    returnType: xmlAttrPtr
    signature: 'static xmlAttrPtr htmlFindMetaEncodingAttr(htmlNodePtr elem, int *outIsContentType) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htmlFindHead
      Src: /src/libxml2/HTMLtree.c:266,1
    - Dst: htmlParseMetaEncoding
      Src: /src/libxml2/HTMLtree.c:273,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 285
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 285
    functionName: htmlGetMetaEncoding
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - htmlFindHead
    - htmlParseMetaEncoding
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *htmlGetMetaEncoding(xmlDoc *doc) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: htmlFindHead
      Src: /src/libxml2/HTMLtree.c:305,1
    - Dst: htmlUpdateMetaEncoding
      Src: /src/libxml2/HTMLtree.c:318,1
    - Dst: xmlNodeSetContent
      Src: /src/libxml2/HTMLtree.c:321,1
    - Dst: xmlNodeAddContent
      Src: /src/libxml2/HTMLtree.c:322,1
    - Dst: htmlParseMetaEncoding
      Src: /src/libxml2/HTMLtree.c:312,1
    - Dst: xmlFree
      Src: /src/libxml2/HTMLtree.c:323,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/HTMLtree.c:333,1
    - Dst: xmlNewProp
      Src: /src/libxml2/HTMLtree.c:337,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/HTMLtree.c:338,1
    - Dst: xmlAddChild
      Src: /src/libxml2/HTMLtree.c:343,1
    - Dst: xmlAddPrevSibling
      Src: /src/libxml2/HTMLtree.c:345,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 2
    argNames:
    - doc
    - encoding
    argTypes:
    - xmlDoc*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 348
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 348
    functionName: htmlSetMetaEncoding
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - htmlUpdateMetaEncoding
    - xmlAddPrevSibling
    - xmlNodeAddContent
    - xmlAddChild
    - xmlNodeSetContent
    - htmlParseMetaEncoding
    - xmlFreeNode
    - xmlNewProp
    - htmlFindHead
    - xmlNewDocNode
    linkageType: ''
    returnType: int
    signature: 'int htmlSetMetaEncoding(xmlDoc *doc, const xmlChar *encoding) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/HTMLtree.c:518,1
    - Dst: xmlBufBackToBuffer
      Src: /src/libxml2/HTMLtree.c:525,1
    - Dst: xmlBufFromBuffer
      Src: /src/libxml2/HTMLtree.c:519,1
    - Dst: htmlBufNodeDumpFormat
      Src: /src/libxml2/HTMLtree.c:523,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - buf
    - doc
    - cur
    argTypes:
    - xmlBuffer*
    - xmlDoc*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 530
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 530
    functionName: htmlNodeDump
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - xmlBufFromBuffer
    - htmlBufNodeDumpFormat
    - xmlInitParser
    - xmlBufBackToBuffer
    linkageType: ''
    returnType: int
    signature: 'int htmlNodeDump(xmlBuffer *buf, xmlDoc *doc, xmlNode *cur) '
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/HTMLtree.c:838,1
    - Dst: htmlParseMetaEncoding
      Src: /src/libxml2/HTMLtree.c:889,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:943,1
    - Dst: xmlSerializeText
      Src: /src/libxml2/HTMLtree.c:953,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:957,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/HTMLtree.c:960,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:962,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:1003,1
    - Dst: htmlAttrDumpOutput
      Src: /src/libxml2/HTMLtree.c:1010,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:1028,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/HTMLtree.c:1038,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:976,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/HTMLtree.c:964,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:985,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:1092,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:1098,1
    - Dst: htmlNodeDumpInternal
      Src: /src/libxml2/HTMLtree.c:876,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLtree.c:896,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:919,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:932,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:935,1
    - Dst: xmlSerializeText
      Src: /src/libxml2/HTMLtree.c:936,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:967,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:981,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/HTMLtree.c:1035,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:1046,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/HTMLtree.c:1027,1
    - Dst: htmlTagLookup
      Src: /src/libxml2/HTMLtree.c:1080,1
    - Dst: xmlSerializeText
      Src: /src/libxml2/HTMLtree.c:1020,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/HTMLtree.c:1047,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:1090,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/HTMLtree.c:1094,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:1037,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:1077,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:861,1
    - Dst: htmlTagLookup
      Src: /src/libxml2/HTMLtree.c:884,1
    - Dst: htmlDtdDumpOutput
      Src: /src/libxml2/HTMLtree.c:851,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLtree.c:898,1
    - Dst: htmlFindMetaEncodingAttr
      Src: /src/libxml2/HTMLtree.c:910,1
    - Dst: htmlAttrDumpOutput
      Src: /src/libxml2/HTMLtree.c:930,1
    - Dst: xmlNsListDumpOutput
      Src: /src/libxml2/HTMLtree.c:926,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:922,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/HTMLtree.c:921,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:955,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/HTMLtree.c:1053,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:1107,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:1041,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/HTMLtree.c:1097,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:978,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:1095,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:1034,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:1048,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/HTMLtree.c:933,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/HTMLtree.c:924,1
    - Dst: xmlSerializeText
      Src: /src/libxml2/HTMLtree.c:938,1
    - Dst: xmlSerializeText
      Src: /src/libxml2/HTMLtree.c:940,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:949,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:952,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:965,1
    - Dst: xmlSerializeText
      Src: /src/libxml2/HTMLtree.c:979,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/HTMLtree.c:1018,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:1026,1
    CyclomaticComplexity: 105
    EdgeCount: 105
    ICount: 255
    argCount: 4
    argNames:
    - buf
    - cur
    - encoding
    - format
    argTypes:
    - xmlOutputBuffer*
    - xmlNode*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1114
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 1114
    functionName: htmlNodeDumpInternal
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - htmlDtdDumpOutput
    - xmlOutputBufferWrite
    - xmlStrcasecmp
    - htmlAttrDumpOutput
    - xmlNsListDumpOutput
    - xmlOutputBufferWriteString
    - htmlNodeDumpInternal
    - htmlParseMetaEncoding
    - xmlInitParser
    - htmlFindMetaEncodingAttr
    - xmlSerializeText
    - htmlTagLookup
    linkageType: ''
    returnType: void
    signature: 'void htmlNodeDumpInternal(xmlOutputBuffer *buf, xmlNode *cur, const
      char *encoding, int format) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLtree.c:177,1
    - Dst: strlen
      Src: /src/libxml2/HTMLtree.c:194,1
    - Dst: htmlFindMetaEncodingAttr
      Src: /src/libxml2/HTMLtree.c:180,1
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLtree.c:198,1
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLtree.c:201,1
    - Dst: htmlParseContentType
      Src: /src/libxml2/HTMLtree.c:212,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 2
    argNames:
    - elem
    - menc
    argTypes:
    - htmlNodePtr
    - htmlMetaEncoding*
    constantsTouched: []
    func_position:
      end: 221
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 221
    functionName: htmlParseMetaEncoding
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - xmlStrcasecmp
    - htmlFindMetaEncodingAttr
    - IS_WS_HTML
    - strlen
    - htmlParseContentType
    linkageType: ''
    returnType: int
    signature: 'static int htmlParseMetaEncoding(htmlNodePtr elem, htmlMetaEncoding
      *menc) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrncasecmp
      Src: /src/libxml2/HTMLtree.c:86,1
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLtree.c:113,1
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLtree.c:90,1
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLtree.c:105,1
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLtree.c:96,1
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLtree.c:120,1
    - Dst: strlen
      Src: /src/libxml2/HTMLtree.c:128,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 2
    argNames:
    - val
    - 'off'
    argTypes:
    - xmlChar*
    - htmlMetaEncodingOffsets*
    constantsTouched: []
    func_position:
      end: 134
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 134
    functionName: htmlParseContentType
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - IS_WS_HTML
    - strlen
    - xmlStrncasecmp
    linkageType: ''
    returnType: int
    signature: 'int htmlParseContentType(const xmlChar *val, htmlMetaEncodingOffsets
      *off) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLtree.c:231,1
    - Dst: memcpy
      Src: /src/libxml2/HTMLtree.c:242,1
    - Dst: memcpy
      Src: /src/libxml2/HTMLtree.c:244,1
    - Dst: strlen
      Src: /src/libxml2/HTMLtree.c:235,1
    - Dst: xmlMalloc
      Src: /src/libxml2/HTMLtree.c:237,1
    - Dst: memcpy
      Src: /src/libxml2/HTMLtree.c:246,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - menc
    - encoding
    argTypes:
    - htmlMetaEncoding*
    - char*
    constantsTouched: []
    func_position:
      end: 250
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 250
    functionName: htmlUpdateMetaEncoding
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - strlen
    - xmlStrcasecmp
    - xmlMalloc
    - memcpy
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *htmlUpdateMetaEncoding(htmlMetaEncoding *menc, const
      char *encoding) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/HTMLtree.c:480,1
    - Dst: htmlNodeDumpInternal
      Src: /src/libxml2/HTMLtree.c:492,1
    - Dst: xmlBufUse
      Src: /src/libxml2/HTMLtree.c:491,1
    - Dst: xmlBufUse
      Src: /src/libxml2/HTMLtree.c:496,1
    - Dst: memset
      Src: /src/libxml2/HTMLtree.c:483,1
    - Dst: xmlFree
      Src: /src/libxml2/HTMLtree.c:497,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - buf
    - ATTRIBUTE_UNUSED
    - cur
    - format
    argTypes:
    - xmlBufPtr
    - xmlDocPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 499
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 499
    functionName: htmlBufNodeDumpFormat
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - htmlNodeDumpInternal
    - xmlBufUse
    - xmlMalloc
    linkageType: ''
    returnType: size_t
    signature: 'static size_t htmlBufNodeDumpFormat(xmlBufPtr buf, xmlDocPtr doc ATTRIBUTE_UNUSED,
      xmlNodePtr cur, int format) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:677,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:683,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/HTMLtree.c:678,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:680,1
    - Dst: xmlOutputBufferWriteQuotedString
      Src: /src/libxml2/HTMLtree.c:681,1
    - Dst: xmlOutputBufferWriteQuotedString
      Src: /src/libxml2/HTMLtree.c:684,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/HTMLtree.c:687,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:688,1
    - Dst: xmlOutputBufferWriteQuotedString
      Src: /src/libxml2/HTMLtree.c:689,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/HTMLtree.c:691,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - buf
    - doc
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlOutputBufferPtr
    - xmlDocPtr
    - char*
    constantsTouched: []
    func_position:
      end: 692
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 692
    functionName: htmlDtdDumpOutput
    functionSourceFile: /src/libxml2/HTMLtree.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWriteQuotedString
    - xmlOutputBufferWrite
    - xmlStrcmp
    - xmlOutputBufferWriteString
    linkageType: ''
    returnType: void
    signature: "static void htmlDtdDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,\t
      const char *encoding ATTRIBUTE_UNUSED) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:2624,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:2625,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2626
      start: 2616
    functionDepth: 0
    functionLinenumber: 2616
    functionLinenumberEnd: 2626
    functionName: xmlRelaxNGFreeTypeLibrary
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGFreeTypeLibrary(void *payload, const xmlChar
      * namespace ATTRIBUTE_UNUSED) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxml2/relaxng.c:4494,1
    - Dst: xmlHashScan
      Src: /src/libxml2/relaxng.c:4500,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4496,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - ctxt
    - grammar
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlRelaxNGGrammarPtr
    constantsTouched: []
    func_position:
      end: 4502
      start: 4486
    functionDepth: 0
    functionLinenumber: 4486
    functionLinenumberEnd: 4502
    functionName: xmlRelaxNGParseImportRefs
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlHashCreate
    - xmlRngPErr
    - xmlHashScan
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGParseImportRefs(xmlRelaxNGParserCtxtPtr ctxt,
      xmlRelaxNGGrammarPtr grammar) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlCopyDoc
      Src: /src/libxml2/relaxng.c:6532,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/relaxng.c:6540,1
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:6537,1
    - Dst: memset
      Src: /src/libxml2/relaxng.c:6543,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:6539,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 6548
      start: 6524
    functionDepth: 0
    functionLinenumber: 6524
    functionLinenumberEnd: 6548
    functionName: xmlRelaxNGNewDocParserCtxt
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - memset
    - xmlCopyDoc
    - xmlFreeDoc
    - xmlRngPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlRelaxNGParserCtxt*
    signature: 'xmlRelaxNGParserCtxt *xmlRelaxNGNewDocParserCtxt(xmlDoc *doc) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ctxt
    - flags
    argTypes:
    - xmlRelaxNGParserCtxt*
    - int
    constantsTouched: []
    func_position:
      end: 1341
      start: 1327
    functionDepth: 0
    functionLinenumber: 1327
    functionLinenumberEnd: 1341
    functionName: xmlRelaxParserSetFlag
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlRelaxParserSetFlag(xmlRelaxNGParserCtxt *ctxt, int flags) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGNewStates
      Src: /src/libxml2/relaxng.c:1302,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:1306,1
    - Dst: xmlRelaxNGAddStatesUniq
      Src: /src/libxml2/relaxng.c:1309,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:1307,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - ctxt
    - state
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGValidStatePtr
    constantsTouched: []
    func_position:
      end: 1311
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1311
    functionName: xmlRelaxNGFreeValidState
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRelaxNGNewStates
    - xmlRelaxNGAddStatesUniq
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGFreeValidState(xmlRelaxNGValidCtxtPtr ctxt,
      xmlRelaxNGValidStatePtr state) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/relaxng.c:4456,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4468,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/relaxng.c:4461,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4464,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - payload
    - data
    - name
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4477
      start: 4448
    functionDepth: 0
    functionLinenumber: 4448
    functionLinenumberEnd: 4477
    functionName: xmlRelaxNGParseImportRef
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRngPErr
    - xmlHashAddEntry
    - xmlHashLookup
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGParseImportRef(void *payload, void *data, const
      xmlChar *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 7848
      start: 7833
    functionDepth: 0
    functionLinenumber: 7833
    functionLinenumberEnd: 7848
    functionName: xmlRelaxNGElemPop
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlRegExecCtxtPtr
    signature: 'static xmlRegExecCtxtPtr xmlRelaxNGElemPop(xmlRelaxNGValidCtxtPtr
      ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:626,1
    - Dst: xmlRelaxNGFreeInnerSchema
      Src: /src/libxml2/relaxng.c:630,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:631,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/relaxng.c:628,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - docu
    argTypes:
    - xmlRelaxNGDocumentPtr
    constantsTouched: []
    func_position:
      end: 632
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 632
    functionName: xmlRelaxNGFreeDocument
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRelaxNGFreeInnerSchema
    - xmlFreeDoc
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGFreeDocument(xmlRelaxNGDocumentPtr docu) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/relaxng.c:1109,1
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:1151,1
    - Dst: memset
      Src: /src/libxml2/relaxng.c:1133,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:1130,1
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:1128,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:1154,1
    - Dst: xmlRealloc
      Src: /src/libxml2/relaxng.c:1160,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:1163,1
    - Dst: memcpy
      Src: /src/libxml2/relaxng.c:1171,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1183
      start: 1099
    functionDepth: 0
    functionLinenumber: 1099
    functionLinenumberEnd: 1183
    functionName: xmlRelaxNGNewValidState
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - memcpy
    - xmlRngVErrMemory
    - memset
    - xmlRealloc
    - xmlMalloc
    linkageType: ''
    returnType: xmlRelaxNGValidStatePtr
    signature: 'static xmlRelaxNGValidStatePtr xmlRelaxNGNewValidState(xmlRelaxNGValidCtxtPtr
      ctxt, xmlNodePtr node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - ctxt
    - loader
    - vctxt
    argTypes:
    - xmlRelaxNGParserCtxt*
    - xmlResourceLoader
    - void*
    constantsTouched: []
    func_position:
      end: 7407
      start: 7400
    functionDepth: 0
    functionLinenumber: 7400
    functionLinenumberEnd: 7407
    functionName: xmlRelaxNGSetResourceLoader
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlRelaxNGSetResourceLoader(xmlRelaxNGParserCtxt *ctxt, xmlResourceLoader
      loader, void *vctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:7803,1
    - Dst: xmlRealloc
      Src: /src/libxml2/relaxng.c:7813,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:7807,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:7818,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - exec
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRegExecCtxtPtr
    constantsTouched: []
    func_position:
      end: 7825
      start: 7798
    functionDepth: 0
    functionLinenumber: 7798
    functionLinenumberEnd: 7825
    functionName: xmlRelaxNGElemPush
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRealloc
    - xmlMalloc
    - xmlRngVErrMemory
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGElemPush(xmlRelaxNGValidCtxtPtr ctxt, xmlRegExecCtxtPtr
      exec) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGNewValidState
      Src: /src/libxml2/relaxng.c:8143,1
    - Dst: xmlRelaxNGValidateDefinition
      Src: /src/libxml2/relaxng.c:8150,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:8155,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - elem
    argTypes:
    - xmlRelaxNGValidCtxt*
    - xmlDoc*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 8158
      start: 8133
    functionDepth: 0
    functionLinenumber: 8133
    functionLinenumberEnd: 8158
    functionName: xmlRelaxNGValidateFullElement
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGValidateDefinition
    - xmlRelaxNGNewValidState
    - xmlRelaxNGFreeValidState
    linkageType: ''
    returnType: int
    signature: 'int xmlRelaxNGValidateFullElement(xmlRelaxNGValidCtxt *ctxt, xmlDoc
      *doc ATTRIBUTE_UNUSED, xmlNode *elem) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:1063,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:1077,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:1076,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:1065,1
    - Dst: xmlRealloc
      Src: /src/libxml2/relaxng.c:1071,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:1078,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:1085,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:1086,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - ctxt
    - states
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGStatesPtr
    constantsTouched: []
    func_position:
      end: 1090
      start: 1053
    functionDepth: 0
    functionLinenumber: 1053
    functionLinenumberEnd: 1090
    functionName: xmlRelaxNGFreeStates
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRealloc
    - xmlMalloc
    - xmlRngVErrMemory
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGFreeStates(xmlRelaxNGValidCtxtPtr ctxt, xmlRelaxNGStatesPtr
      states) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6655,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6660,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6666,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6681,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6704,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/relaxng.c:6708,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6654,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6653,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6664,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6665,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6685,1
    - Dst: xmlNodeListGetString
      Src: /src/libxml2/relaxng.c:6689,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6711,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6713,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6714,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6656,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6657,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6658,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6659,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6674,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6673,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6667,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6680,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6699,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6652,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6671,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6679,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6678,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6672,1
    - Dst: xmlParseURI
      Src: /src/libxml2/relaxng.c:6692,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6694,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 84
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 6721
      start: 6643
    functionDepth: 0
    functionLinenumber: 6643
    functionLinenumberEnd: 6721
    functionName: xmlRelaxNGCleanupAttributes
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlParseURI
    - xmlFreeURI
    - xmlNodeListGetString
    - xmlStrEqual
    - xmlRngPErr
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGCleanupAttributes(xmlRelaxNGParserCtxtPtr ctxt,
      xmlNodePtr node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:699,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:701,1
    - Dst: memset
      Src: /src/libxml2/relaxng.c:704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 707
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 707
    functionName: xmlRelaxNGNewRelaxNG
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - memset
    - xmlRngPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlRelaxNGPtr
    signature: 'static xmlRelaxNGPtr xmlRelaxNGNewRelaxNG(xmlRelaxNGParserCtxtPtr
      ctxt) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/relaxng.c:6601,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/relaxng.c:6610,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/relaxng.c:6619,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/relaxng.c:6605,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/relaxng.c:6626,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 31
    argCount: 1
    argNames:
    - value
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 6635
      start: 6592
    functionDepth: 0
    functionLinenumber: 6592
    functionLinenumberEnd: 6635
    functionName: xmlRelaxNGNormExtSpace
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - IS_BLANK_CH
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGNormExtSpace(xmlChar * value) '
  - BBCount: 24
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 3
    argCount: 1
    argNames:
    - def
    argTypes:
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 1989
      start: 1937
    functionDepth: 0
    functionLinenumber: 1937
    functionLinenumberEnd: 1989
    functionName: xmlRelaxNGDefName
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *xmlRelaxNGDefName(xmlRelaxNGDefinePtr def) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGFreeInclude
      Src: /src/libxml2/relaxng.c:683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - incl
    argTypes:
    - xmlRelaxNGIncludePtr
    constantsTouched: []
    func_position:
      end: 686
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 686
    functionName: xmlRelaxNGFreeIncludeList
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGFreeInclude
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGFreeIncludeList(xmlRelaxNGIncludePtr incl) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:1279,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 18
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - state1
    - state2
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGValidStatePtr
    - xmlRelaxNGValidStatePtr
    constantsTouched: []
    func_position:
      end: 1286
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1286
    functionName: xmlRelaxNGEqualValidState
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGEqualValidState(xmlRelaxNGValidCtxtPtr ctxt ATTRIBUTE_UNUSED,
      xmlRelaxNGValidStatePtr state1, xmlRelaxNGValidStatePtr state2) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 8338
      start: 8318
    functionDepth: 0
    functionLinenumber: 8318
    functionLinenumberEnd: 8338
    functionName: xmlRelaxNGNextValue
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGNextValue(xmlRelaxNGValidCtxtPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/relaxng.c:433,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 434
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 434
    functionName: xmlRngVErrMemory
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRaiseMemoryError
    linkageType: ''
    returnType: void
    signature: 'static void xmlRngVErrMemory(xmlRelaxNGValidCtxtPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 0
    argNames:
    - 4,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 462
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void LIBXML_ATTR_FORMAT(4,0) xmlRngPErr(xmlRelaxNGParserCtxtPtr
      ctxt, xmlNodePtr node, int error, const char *msg, const xmlChar * str1, const
      xmlChar * str2){ xmlStructuredErrorFunc schannel = NULL; xmlGenericErrorFunc
      channel = NULL; void *data = NULL; int res; if (ctxt != NULL) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:1208,1
    - Dst: memcpy
      Src: /src/libxml2/relaxng.c:1217,1
    - Dst: memset
      Src: /src/libxml2/relaxng.c:1213,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:1210,1
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:1223,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:1226,1
    - Dst: xmlRealloc
      Src: /src/libxml2/relaxng.c:1233,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:1236,1
    - Dst: memcpy
      Src: /src/libxml2/relaxng.c:1243,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 2
    argNames:
    - ctxt
    - state
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGValidStatePtr
    constantsTouched: []
    func_position:
      end: 1247
      start: 1192
    functionDepth: 0
    functionLinenumber: 1192
    functionLinenumberEnd: 1247
    functionName: xmlRelaxNGCopyValidState
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - memcpy
    - xmlRngVErrMemory
    - memset
    - xmlRealloc
    - xmlMalloc
    linkageType: ''
    returnType: xmlRelaxNGValidStatePtr
    signature: 'static xmlRelaxNGValidStatePtr xmlRelaxNGCopyValidState(xmlRelaxNGValidCtxtPtr
      ctxt, xmlRelaxNGValidStatePtr state) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2518,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2520,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - type
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2523
      start: 2512
    functionDepth: 0
    functionLinenumber: 2512
    functionLinenumberEnd: 2523
    functionName: xmlRelaxNGDefaultTypeHave
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGDefaultTypeHave(void *data ATTRIBUTE_UNUSED,
      const xmlChar * type) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:8274,1
    - Dst: VALID_ERR2P
      Src: /src/libxml2/relaxng.c:8281,1
    - Dst: VALID_ERR3P
      Src: /src/libxml2/relaxng.c:8283,1
    - Dst: xmlRelaxNGValidateValue
      Src: /src/libxml2/relaxng.c:8303,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 68
    argCount: 4
    argNames:
    - ctxt
    - value
    - define
    - node
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlChar*
    - xmlRelaxNGDefinePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 8310
      start: 8249
    functionDepth: 0
    functionLinenumber: 8249
    functionLinenumberEnd: 8310
    functionName: xmlRelaxNGValidateDatatype
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - VALID_ERR2P
    - VALID_ERR3P
    - xmlRelaxNGValidateValue
    - VALID_ERR2
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGValidateDatatype(xmlRelaxNGValidCtxtPtr ctxt,
      const xmlChar * value, xmlRelaxNGDefinePtr define, xmlNodePtr node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - ctxt
    - err
    - warn
    - ctx
    argTypes:
    - xmlRelaxNGValidCtxt*
    - xmlRelaxNGValidityErrorFunc
    - xmlRelaxNGValidityWarningFunc
    - void*
    constantsTouched: []
    func_position:
      end: 10535
      start: 10524
    functionDepth: 0
    functionLinenumber: 10524
    functionLinenumberEnd: 10535
    functionName: xmlRelaxNGSetValidErrors
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxt *ctxt, xmlRelaxNGValidityErrorFunc
      err, xmlRelaxNGValidityWarningFunc warn, void *ctx) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/relaxng.c:409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 410
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 410
    functionName: xmlRngPErrMemory
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRaiseMemoryError
    linkageType: ''
    returnType: void
    signature: 'static void xmlRngPErrMemory(xmlRelaxNGParserCtxtPtr ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:1791,1
    - Dst: xmlRealloc
      Src: /src/libxml2/relaxng.c:1801,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:1805,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:1794,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ctxt
    - value
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlRelaxNGDocumentPtr
    constantsTouched: []
    func_position:
      end: 1812
      start: 1783
    functionDepth: 0
    functionLinenumber: 1783
    functionLinenumberEnd: 1812
    functionName: xmlRelaxNGDocumentPush
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRealloc
    - xmlRngPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGDocumentPush(xmlRelaxNGParserCtxtPtr ctxt, xmlRelaxNGDocumentPtr
      value) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetPredefinedType
      Src: /src/libxml2/relaxng.c:2473,1
    - Dst: xmlSchemaValPredefTypeNode
      Src: /src/libxml2/relaxng.c:2479,1
    - Dst: xmlSchemaValPredefTypeNode
      Src: /src/libxml2/relaxng.c:2487,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/relaxng.c:2493,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/relaxng.c:2490,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/relaxng.c:2495,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/relaxng.c:2496,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 30
    argCount: 7
    argNames:
    - ATTRIBUTE_UNUSED
    - type
    - value1
    - ctxt1
    - comp1
    - value2
    - ctxt2
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlNodePtr
    - void*
    - xmlChar*
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2502
      start: 2459
    functionDepth: 0
    functionLinenumber: 2459
    functionLinenumberEnd: 2502
    functionName: xmlRelaxNGSchemaTypeCompare
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetPredefinedType
    - xmlSchemaCompareValues
    - xmlSchemaFreeValue
    - xmlSchemaValPredefTypeNode
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGSchemaTypeCompare(void *data ATTRIBUTE_UNUSED,
      const xmlChar * type, const xmlChar * value1, xmlNodePtr ctxt1, void *comp1,
      const xmlChar * value2, xmlNodePtr ctxt2) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:3337,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:3346,1
    - Dst: xmlRelaxNGNormExtSpace
      Src: /src/libxml2/relaxng.c:3344,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:3342,1
    - Dst: xmlValidateNCName
      Src: /src/libxml2/relaxng.c:3345,1
    - Dst: xmlRelaxNGGetDataTypeLibrary
      Src: /src/libxml2/relaxng.c:3349,1
    - Dst: xmlStrdup
      Src: /src/libxml2/relaxng.c:3352,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/relaxng.c:3358,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:3360,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:3367,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:3373,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:3391,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:3385,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:3399,1
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/relaxng.c:3389,1
    - Dst: xmlStrdup
      Src: /src/libxml2/relaxng.c:3381,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 3409
      start: 3328
    functionDepth: 0
    functionLinenumber: 3328
    functionLinenumberEnd: 3409
    functionName: xmlRelaxNGParseValue
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGNewDefine
    - xmlNodeGetContent
    - xmlStrdup
    - xmlRelaxNGGetDataTypeLibrary
    - xmlHashLookup
    - xmlRngPErr
    - xmlGetProp
    - xmlRelaxNGNormExtSpace
    - xmlValidateNCName
    linkageType: ''
    returnType: xmlRelaxNGDefinePtr
    signature: 'static xmlRelaxNGDefinePtr xmlRelaxNGParseValue(xmlRelaxNGParserCtxtPtr
      ctxt, xmlNodePtr node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGDumpDefine
      Src: /src/libxml2/relaxng.c:7429,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - output
    - defines
    argTypes:
    - FILE*
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 7432
      start: 7425
    functionDepth: 0
    functionLinenumber: 7425
    functionLinenumberEnd: 7432
    functionName: xmlRelaxNGDumpDefines
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGDumpDefine
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGDumpDefines(FILE * output, xmlRelaxNGDefinePtr
      defines) '
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGValidateDefinition
      Src: /src/libxml2/relaxng.c:8930,1
    - Dst: memset
      Src: /src/libxml2/relaxng.c:8957,1
    - Dst: memset
      Src: /src/libxml2/relaxng.c:8963,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/relaxng.c:8980,1
    - Dst: XML_PTR_TO_INT
      Src: /src/libxml2/relaxng.c:9003,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/relaxng.c:8992,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:9075,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:9160,1
    - Dst: VALID_ERR
      Src: /src/libxml2/relaxng.c:9164,1
    - Dst: xmlRelaxNGValidateDefinition
      Src: /src/libxml2/relaxng.c:8934,1
    - Dst: xmlRelaxNGSkipIgnored
      Src: /src/libxml2/relaxng.c:8939,1
    - Dst: xmlRelaxNGSkipIgnored
      Src: /src/libxml2/relaxng.c:8970,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/relaxng.c:8996,1
    - Dst: xmlRelaxNGSkipIgnored
      Src: /src/libxml2/relaxng.c:9094,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:9136,1
    - Dst: xmlRelaxNGPopErrors
      Src: /src/libxml2/relaxng.c:9183,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:9186,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:9145,1
    - Dst: xmlRelaxNGSkipIgnored
      Src: /src/libxml2/relaxng.c:8927,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:8954,1
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:8958,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:8960,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/relaxng.c:8987,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/relaxng.c:8984,1
    - Dst: xmlRelaxNGSkipIgnored
      Src: /src/libxml2/relaxng.c:9036,1
    - Dst: xmlRelaxNGCopyValidState
      Src: /src/libxml2/relaxng.c:9046,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:9077,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:9142,1
    - Dst: VALID_ERR
      Src: /src/libxml2/relaxng.c:8913,1
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:8952,1
    - Dst: xmlRelaxNGNodeMatchesList
      Src: /src/libxml2/relaxng.c:9006,1
    - Dst: xmlRelaxNGNodeMatchesList
      Src: /src/libxml2/relaxng.c:9015,1
    - Dst: VALID_ERR
      Src: /src/libxml2/relaxng.c:9039,1
    - Dst: xmlRelaxNGValidateDefinition
      Src: /src/libxml2/relaxng.c:9057,1
    - Dst: xmlRelaxNGSkipIgnored
      Src: /src/libxml2/relaxng.c:9062,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:9063,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:9124,1
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:9138,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:9187,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 234
    argCount: 2
    argNames:
    - ctxt
    - define
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 9189
      start: 8895
    functionDepth: 0
    functionLinenumber: 8895
    functionLinenumberEnd: 9189
    functionName: xmlRelaxNGValidateInterleave
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - VALID_ERR
    - xmlFree
    - XML_PTR_TO_INT
    - xmlRngVErrMemory
    - VALID_ERR2
    - memset
    - xmlHashLookup2
    - xmlRelaxNGCopyValidState
    - xmlRelaxNGFreeValidState
    - xmlRelaxNGValidateDefinition
    - xmlStrEqual
    - xmlRelaxNGNodeMatchesList
    - xmlRelaxNGFreeStates
    - xmlRelaxNGSkipIgnored
    - xmlMalloc
    - xmlRelaxNGPopErrors
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGValidateInterleave(xmlRelaxNGValidCtxtPtr ctxt,
      xmlRelaxNGDefinePtr define) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:10486,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:10489,1
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:10495,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:10497,1
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:10491,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:10500,1
    - Dst: xmlRelaxNGElemPop
      Src: /src/libxml2/relaxng.c:10504,1
    - Dst: xmlRegFreeExecCtxt
      Src: /src/libxml2/relaxng.c:10506,1
    - Dst: xmlRelaxNGElemPop
      Src: /src/libxml2/relaxng.c:10507,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:10509,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:10511,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRelaxNGValidCtxt*
    constantsTouched: []
    func_position:
      end: 10512
      start: 10478
    functionDepth: 0
    functionLinenumber: 10478
    functionLinenumberEnd: 10512
    functionName: xmlRelaxNGFreeValidCtxt
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRegFreeExecCtxt
    - xmlRelaxNGFreeValidState
    - xmlRelaxNGElemPop
    - xmlRelaxNGFreeStates
    linkageType: ''
    returnType: void
    signature: 'void xmlRelaxNGFreeValidCtxt(xmlRelaxNGValidCtxt *ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 8
    argCount: 4
    argNames:
    - ctxt
    - err
    - warn
    - ctx
    argTypes:
    - xmlRelaxNGValidCtxt*
    - xmlRelaxNGValidityErrorFunc*
    - xmlRelaxNGValidityWarningFunc*
    - void**
    constantsTouched: []
    func_position:
      end: 10579
      start: 10565
    functionDepth: 0
    functionLinenumber: 10565
    functionLinenumberEnd: 10579
    functionName: xmlRelaxNGGetValidErrors
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxt *ctxt, xmlRelaxNGValidityErrorFunc
      * err, xmlRelaxNGValidityWarningFunc * warn, void **ctx) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5453,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5478,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5459,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5473,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/relaxng.c:5465,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - payload
    - data
    - name
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5482
      start: 5437
    functionDepth: 0
    functionLinenumber: 5437
    functionLinenumberEnd: 5482
    functionName: xmlRelaxNGCheckReference
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRngPErr
    - xmlHashLookup
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGCheckReference(void *payload, void *data, const
      xmlChar * name) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: xmlRngVErr
      Src: /src/libxml2/relaxng.c:7872,1
    - Dst: xmlRelaxNGDumpValidError
      Src: /src/libxml2/relaxng.c:7899,1
    - Dst: VALID_ERR
      Src: /src/libxml2/relaxng.c:7897,1
    - Dst: xmlRngVErr
      Src: /src/libxml2/relaxng.c:7889,1
    - Dst: xmlRngVErr
      Src: /src/libxml2/relaxng.c:7881,1
    - Dst: xmlRegNewExecCtxt
      Src: /src/libxml2/relaxng.c:7911,1
    - Dst: xmlRelaxNGElemPush
      Src: /src/libxml2/relaxng.c:7917,1
    - Dst: xmlRelaxNGNewValidState
      Src: /src/libxml2/relaxng.c:7922,1
    - Dst: xmlRelaxNGValidateAttributeList
      Src: /src/libxml2/relaxng.c:7930,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:7933,1
    - Dst: xmlRelaxNGValidateElementEnd
      Src: /src/libxml2/relaxng.c:7938,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:7942,1
    - Dst: xmlRelaxNGDumpValidError
      Src: /src/libxml2/relaxng.c:7976,1
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:7968,1
    - Dst: xmlRelaxNGValidateElementEnd
      Src: /src/libxml2/relaxng.c:7953,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:7966,1
    - Dst: xmlRelaxNGLogBestError
      Src: /src/libxml2/relaxng.c:7963,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 97
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - token
    - transdata
    - inputdata
    argTypes:
    - xmlRegExecCtxtPtr
    - xmlChar*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 7980
      start: 7859
    functionDepth: 0
    functionLinenumber: 7859
    functionLinenumberEnd: 7980
    functionName: xmlRelaxNGValidateProgressiveCallback
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - VALID_ERR
    - xmlRelaxNGElemPush
    - xmlRelaxNGLogBestError
    - VALID_ERR2
    - xmlRelaxNGValidateElementEnd
    - xmlRelaxNGValidateAttributeList
    - xmlRelaxNGDumpValidError
    - xmlRelaxNGFreeValidState
    - xmlRegNewExecCtxt
    - xmlRelaxNGNewValidState
    - xmlRelaxNGFreeStates
    - xmlRngVErr
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGValidateProgressiveCallback(xmlRegExecCtxtPtr
      exec ATTRIBUTE_UNUSED, const xmlChar * token, void *transdata, void *inputdata) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:4386,1
    - Dst: xmlRelaxNGNormExtSpace
      Src: /src/libxml2/relaxng.c:4391,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4388,1
    - Dst: xmlValidateNCName
      Src: /src/libxml2/relaxng.c:4392,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4393,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4396,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:4398,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4404,1
    - Dst: xmlRelaxNGParsePatterns
      Src: /src/libxml2/relaxng.c:4410,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/relaxng.c:4414,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/relaxng.c:4424,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/relaxng.c:4420,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4416,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4426,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 4439
      start: 4378
    functionDepth: 0
    functionLinenumber: 4378
    functionLinenumberEnd: 4439
    functionName: xmlRelaxNGParseDefine
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRelaxNGNewDefine
    - xmlRelaxNGParsePatterns
    - xmlHashAddEntry
    - xmlHashCreate
    - xmlHashLookup
    - xmlRngPErr
    - xmlGetProp
    - xmlRelaxNGNormExtSpace
    - xmlValidateNCName
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGParseDefine(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr
      node) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5396,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5403,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:5401,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:5410,1
    - Dst: xmlRelaxNGParseStart
      Src: /src/libxml2/relaxng.c:5406,1
    - Dst: xmlRelaxNGParseDefine
      Src: /src/libxml2/relaxng.c:5411,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:5414,1
    - Dst: xmlRelaxNGParseInclude
      Src: /src/libxml2/relaxng.c:5415,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5419,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - ctxt
    - nodes
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5427
      start: 5389
    functionDepth: 0
    functionLinenumber: 5389
    functionLinenumberEnd: 5427
    functionName: xmlRelaxNGParseGrammarContent
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGParseDefine
    - xmlRelaxNGParseInclude
    - xmlRelaxNGParseStart
    - xmlRngPErr
    - IS_RELAXNG
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGParseGrammarContent(xmlRelaxNGParserCtxtPtr ctxt,
      xmlNodePtr nodes) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4339,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/relaxng.c:4343,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4350,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:4349,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4345,1
    - Dst: xmlRelaxNGParseGrammarContent
      Src: /src/libxml2/relaxng.c:4359,1
    - Dst: xmlRelaxNGParseGrammarContent
      Src: /src/libxml2/relaxng.c:4364,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 4369
      start: 4330
    functionDepth: 0
    functionLinenumber: 4330
    functionLinenumberEnd: 4369
    functionName: xmlRelaxNGParseInclude
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRngPErr
    - xmlStrEqual
    - xmlDocGetRootElement
    - xmlRelaxNGParseGrammarContent
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGParseInclude(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr
      node) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGIsCompilable
      Src: /src/libxml2/relaxng.c:3094,1
    - Dst: xmlRelaxNGTryCompile
      Src: /src/libxml2/relaxng.c:3103,1
    - Dst: xmlRelaxNGCompile
      Src: /src/libxml2/relaxng.c:3097,1
    - Dst: xmlRelaxNGTryCompile
      Src: /src/libxml2/relaxng.c:3126,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 29
    argCount: 2
    argNames:
    - ctxt
    - def
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 3140
      start: 3083
    functionDepth: 0
    functionLinenumber: 3083
    functionLinenumberEnd: 3140
    functionName: xmlRelaxNGTryCompile
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGIsCompilable
    - xmlRelaxNGCompile
    - xmlRelaxNGTryCompile
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGTryCompile(xmlRelaxNGParserCtxtPtr ctxt, xmlRelaxNGDefinePtr
      def) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGElemPop
      Src: /src/libxml2/relaxng.c:8107,1
    - Dst: xmlRegExecPushString
      Src: /src/libxml2/relaxng.c:8108,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:8113,1
    - Dst: xmlRegFreeExecCtxt
      Src: /src/libxml2/relaxng.c:8120,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - elem
    argTypes:
    - xmlRelaxNGValidCtxt*
    - xmlDoc*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 8122
      start: 8094
    functionDepth: 0
    functionLinenumber: 8094
    functionLinenumberEnd: 8122
    functionName: xmlRelaxNGValidatePopElement
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRegFreeExecCtxt
    - xmlRelaxNGElemPop
    - xmlRegExecPushString
    - VALID_ERR2
    linkageType: ''
    returnType: int
    signature: 'int xmlRelaxNGValidatePopElement(xmlRelaxNGValidCtxt *ctxt, xmlDoc
      *doc ATTRIBUTE_UNUSED, xmlNode *elem) '
  - BBCount: 135
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGAddStates
      Src: /src/libxml2/relaxng.c:9721,1
    - Dst: xmlRelaxNGValidateDefinitionList
      Src: /src/libxml2/relaxng.c:9708,1
    - Dst: xmlRelaxNGValidateAttribute
      Src: /src/libxml2/relaxng.c:10002,1
    - Dst: xmlStrlen
      Src: /src/libxml2/relaxng.c:10136,1
    - Dst: xmlRelaxNGNewValidState
      Src: /src/libxml2/relaxng.c:9550,1
    - Dst: xmlRelaxNGNewValidState
      Src: /src/libxml2/relaxng.c:9572,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:9638,1
    - Dst: xmlRelaxNGCopyValidState
      Src: /src/libxml2/relaxng.c:9706,1
    - Dst: xmlStrcat
      Src: /src/libxml2/relaxng.c:10067,1
    - Dst: xmlRelaxNGCopyValidState
      Src: /src/libxml2/relaxng.c:9767,1
    - Dst: xmlRelaxNGAddStates
      Src: /src/libxml2/relaxng.c:9836,1
    - Dst: xmlRelaxNGCopyValidState
      Src: /src/libxml2/relaxng.c:9857,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:9824,1
    - Dst: xmlRelaxNGNewStates
      Src: /src/libxml2/relaxng.c:9723,1
    - Dst: xmlRelaxNGAddStates
      Src: /src/libxml2/relaxng.c:9829,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:9537,1
    - Dst: xmlRelaxNGValidateAttributeList
      Src: /src/libxml2/relaxng.c:9561,1
    - Dst: xmlRelaxNGValidateDefinitionList
      Src: /src/libxml2/relaxng.c:9627,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/relaxng.c:9930,1
    - Dst: xmlRelaxNGCopyValidState
      Src: /src/libxml2/relaxng.c:9874,1
    - Dst: xmlRelaxNGAddStates
      Src: /src/libxml2/relaxng.c:9802,1
    - Dst: xmlRelaxNGPopErrors
      Src: /src/libxml2/relaxng.c:9729,1
    - Dst: xmlRelaxNGAddStates
      Src: /src/libxml2/relaxng.c:9793,1
    - Dst: xmlRelaxNGValidateDefinitionList
      Src: /src/libxml2/relaxng.c:9744,1
    - Dst: xmlRelaxNGValidateDefinitionList
      Src: /src/libxml2/relaxng.c:9820,1
    - Dst: xmlRelaxNGSkipIgnored
      Src: /src/libxml2/relaxng.c:9505,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:9511,1
    - Dst: xmlRelaxNGValidateElementEnd
      Src: /src/libxml2/relaxng.c:9651,1
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:9966,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:10074,1
    - Dst: xmlRelaxNGElementMatch
      Src: /src/libxml2/relaxng.c:9524,1
    - Dst: xmlRelaxNGPopErrors
      Src: /src/libxml2/relaxng.c:9534,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:9539,1
    - Dst: xmlRelaxNGDumpValidError
      Src: /src/libxml2/relaxng.c:9689,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:9515,1
    - Dst: xmlRelaxNGDumpValidError
      Src: /src/libxml2/relaxng.c:9528,1
    - Dst: xmlRelaxNGAddStates
      Src: /src/libxml2/relaxng.c:9733,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:9677,1
    - Dst: xmlRelaxNGLogBestError
      Src: /src/libxml2/relaxng.c:9661,1
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:9881,1
    - Dst: xmlStrdup
      Src: /src/libxml2/relaxng.c:10035,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:10112,1
    - Dst: xmlStrdup
      Src: /src/libxml2/relaxng.c:10129,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:9725,1
    - Dst: xmlRelaxNGDumpValidError
      Src: /src/libxml2/relaxng.c:9490,1
    - Dst: xmlRelaxNGSkipIgnored
      Src: /src/libxml2/relaxng.c:9485,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/relaxng.c:9922,1
    - Dst: xmlRelaxNGAddStates
      Src: /src/libxml2/relaxng.c:9962,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:9970,1
    - Dst: xmlRelaxNGPopErrors
      Src: /src/libxml2/relaxng.c:9990,1
    - Dst: xmlRelaxNGValidateDefinitionList
      Src: /src/libxml2/relaxng.c:9996,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:10045,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:10090,1
    - Dst: xmlRelaxNGNewStates
      Src: /src/libxml2/relaxng.c:9863,1
    - Dst: xmlRelaxNGDumpValidError
      Src: /src/libxml2/relaxng.c:9554,1
    - Dst: xmlRelaxNGLogBestError
      Src: /src/libxml2/relaxng.c:9605,1
    - Dst: xmlRelaxNGValidateElementEnd
      Src: /src/libxml2/relaxng.c:9622,1
    - Dst: xmlRelaxNGValidateDefinition
      Src: /src/libxml2/relaxng.c:9941,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:9976,1
    - Dst: VALID_ERR
      Src: /src/libxml2/relaxng.c:9457,1
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:9668,1
    - Dst: xmlRelaxNGValidateElementEnd
      Src: /src/libxml2/relaxng.c:9676,1
    - Dst: xmlRelaxNGNewStates
      Src: /src/libxml2/relaxng.c:9757,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:10050,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:10061,1
    - Dst: xmlRelaxNGValidateValue
      Src: /src/libxml2/relaxng.c:10141,1
    - Dst: VALID_ERR
      Src: /src/libxml2/relaxng.c:10145,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:10095,1
    - Dst: xmlRelaxNGAddStates
      Src: /src/libxml2/relaxng.c:9772,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:9582,1
    - Dst: xmlRelaxNGSkipIgnored
      Src: /src/libxml2/relaxng.c:9899,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:9813,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/relaxng.c:9919,1
    - Dst: xmlRelaxNGPopErrors
      Src: /src/libxml2/relaxng.c:9698,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:9487,1
    - Dst: xmlRelaxNGPopErrors
      Src: /src/libxml2/relaxng.c:9507,1
    - Dst: xmlRelaxNGValidateCompiledContent
      Src: /src/libxml2/relaxng.c:9576,1
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:9807,1
    - Dst: xmlRelaxNGValidateDefinition
      Src: /src/libxml2/relaxng.c:9953,1
    - Dst: xmlRelaxNGValidateDefinition
      Src: /src/libxml2/relaxng.c:10009,1
    - Dst: xmlStrdup
      Src: /src/libxml2/relaxng.c:10078,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:10150,1
    - Dst: xmlRelaxNGPopErrors
      Src: /src/libxml2/relaxng.c:9717,1
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:9844,1
    - Dst: xmlRelaxNGAddStates
      Src: /src/libxml2/relaxng.c:9959,1
    - Dst: xmlRelaxNGDumpValidError
      Src: /src/libxml2/relaxng.c:9986,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:10018,1
    - Dst: xmlRelaxNGValidateValue
      Src: /src/libxml2/relaxng.c:10087,1
    - Dst: xmlRelaxNGValidErrorPop
      Src: /src/libxml2/relaxng.c:9542,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:9608,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:9623,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:9664,1
    - Dst: xmlRelaxNGPopErrors
      Src: /src/libxml2/relaxng.c:9739,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:9938,1
    - Dst: xmlStrcat
      Src: /src/libxml2/relaxng.c:10024,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:10080,1
    - Dst: xmlRelaxNGValidateDatatype
      Src: /src/libxml2/relaxng.c:10042,1
    - Dst: xmlRelaxNGDumpValidError
      Src: /src/libxml2/relaxng.c:9497,1
    - Dst: xmlRelaxNGValidErrorPop
      Src: /src/libxml2/relaxng.c:9519,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:9564,1
    - Dst: xmlRelaxNGValidateElementEnd
      Src: /src/libxml2/relaxng.c:9595,1
    - Dst: xmlRelaxNGCopyValidState
      Src: /src/libxml2/relaxng.c:9773,1
    - Dst: xmlRelaxNGValidateDefinitionList
      Src: /src/libxml2/relaxng.c:9788,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/relaxng.c:9926,1
    - Dst: xmlRelaxNGCopyValidState
      Src: /src/libxml2/relaxng.c:9952,1
    - Dst: xmlRelaxNGAddStates
      Src: /src/libxml2/relaxng.c:9766,1
    - Dst: xmlRelaxNGPopErrors
      Src: /src/libxml2/relaxng.c:9890,1
    - Dst: VALID_ERR
      Src: /src/libxml2/relaxng.c:9494,1
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:9612,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/relaxng.c:9933,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:10031,1
    - Dst: xmlStrcat
      Src: /src/libxml2/relaxng.c:10118,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:10125,1
    - Dst: xmlRelaxNGPopErrors
      Src: /src/libxml2/relaxng.c:9749,1
    - Dst: xmlRelaxNGAddStates
      Src: /src/libxml2/relaxng.c:9732,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:9634,1
    - Dst: xmlRelaxNGSkipIgnored
      Src: /src/libxml2/relaxng.c:9686,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:9712,1
    - Dst: xmlRelaxNGAddStates
      Src: /src/libxml2/relaxng.c:9873,1
    - Dst: xmlRelaxNGNewStates
      Src: /src/libxml2/relaxng.c:9956,1
    - Dst: xmlRelaxNGValidateInterleave
      Src: /src/libxml2/relaxng.c:9999,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:10037,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:10131,1
    CyclomaticComplexity: 185
    EdgeCount: 185
    ICount: 614
    argCount: 2
    argNames:
    - ctxt
    - define
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 10161
      start: 9448
    functionDepth: 0
    functionLinenumber: 9448
    functionLinenumberEnd: 10161
    functionName: xmlRelaxNGValidateState
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGNewStates
    - VALID_ERR2
    - xmlHashLookup2
    - xmlRelaxNGCopyValidState
    - xmlStrlen
    - xmlRelaxNGDumpValidError
    - xmlRelaxNGValidateDefinitionList
    - xmlRelaxNGSkipIgnored
    - xmlStrcat
    - xmlRelaxNGElementMatch
    - xmlRelaxNGLogBestError
    - xmlRelaxNGValidateElementEnd
    - xmlRelaxNGValidateAttributeList
    - xmlStrdup
    - xmlRelaxNGValidateAttribute
    - xmlRelaxNGNewValidState
    - xmlRelaxNGValidErrorPop
    - VALID_ERR
    - xmlFree
    - xmlRelaxNGValidateCompiledContent
    - xmlRelaxNGFreeStates
    - xmlRelaxNGValidateInterleave
    - xmlRelaxNGValidateDatatype
    - xmlRngVErrMemory
    - xmlRelaxNGAddStates
    - xmlRelaxNGValidateValue
    - xmlRelaxNGFreeValidState
    - xmlRelaxNGValidateDefinition
    - xmlStrEqual
    - xmlRelaxNGPopErrors
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGValidateState(xmlRelaxNGValidCtxtPtr ctxt, xmlRelaxNGDefinePtr
      define) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/relaxng.c:1356,1
    - Dst: xmlCtxtSetResourceLoader
      Src: /src/libxml2/relaxng.c:1364,1
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/relaxng.c:1366,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/relaxng.c:1362,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:1358,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/relaxng.c:1367,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ctxt
    - filename
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - char*
    constantsTouched: []
    func_position:
      end: 1370
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1370
    functionName: xmlRelaxReadFile
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlCtxtReadFile
    - xmlCtxtSetErrorHandler
    - xmlCtxtSetResourceLoader
    - xmlFreeParserCtxt
    - xmlRngPErrMemory
    - xmlNewParserCtxt
    linkageType: ''
    returnType: xmlDoc*
    signature: 'static xmlDoc *xmlRelaxReadFile(xmlRelaxNGParserCtxtPtr ctxt, const
      char *filename) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:875,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:881,1
    - Dst: xmlHashFree
      Src: /src/libxml2/relaxng.c:884,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:877,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:878,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:886,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - partitions
    argTypes:
    - xmlRelaxNGPartitionPtr
    constantsTouched: []
    func_position:
      end: 888
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 888
    functionName: xmlRelaxNGFreePartition
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGFreePartition(xmlRelaxNGPartitionPtr partitions) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlRealloc
      Src: /src/libxml2/relaxng.c:1026,1
    - Dst: xmlRelaxNGEqualValidState
      Src: /src/libxml2/relaxng.c:1038,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:1039,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:1031,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - ctxt
    - states
    - state
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGStatesPtr
    - xmlRelaxNGValidStatePtr
    constantsTouched: []
    func_position:
      end: 1045
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1045
    functionName: xmlRelaxNGAddStates
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGFreeValidState
    - xmlRealloc
    - xmlRngVErrMemory
    - xmlRelaxNGEqualValidState
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGAddStates(xmlRelaxNGValidCtxtPtr ctxt, xmlRelaxNGStatesPtr
      states, xmlRelaxNGValidStatePtr state) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:1408,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:1422,1
    - Dst: xmlRealloc
      Src: /src/libxml2/relaxng.c:1418,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:1411,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ctxt
    - value
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlRelaxNGIncludePtr
    constantsTouched: []
    func_position:
      end: 1429
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1429
    functionName: xmlRelaxNGIncludePush
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRealloc
    - xmlRngPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGIncludePush(xmlRelaxNGParserCtxtPtr ctxt, xmlRelaxNGIncludePtr
      value) '
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegexpIsDeterminist
      Src: /src/libxml2/relaxng.c:2935,1
    - Dst: xmlFreeAutomata
      Src: /src/libxml2/relaxng.c:2942,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/relaxng.c:2975,1
    - Dst: xmlRelaxNGCompile
      Src: /src/libxml2/relaxng.c:2979,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/relaxng.c:2982,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/relaxng.c:3001,1
    - Dst: xmlAutomataNewTransition
      Src: /src/libxml2/relaxng.c:3048,1
    - Dst: xmlNewAutomata
      Src: /src/libxml2/relaxng.c:2882,1
    - Dst: xmlFreeAutomata
      Src: /src/libxml2/relaxng.c:2905,1
    - Dst: xmlNewAutomata
      Src: /src/libxml2/relaxng.c:2924,1
    - Dst: xmlRelaxNGCompile
      Src: /src/libxml2/relaxng.c:2965,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/relaxng.c:2968,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/relaxng.c:3019,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/relaxng.c:3045,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/relaxng.c:3052,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/relaxng.c:3057,1
    - Dst: xmlRelaxNGDefName
      Src: /src/libxml2/relaxng.c:3069,1
    - Dst: xmlRelaxNGCompile
      Src: /src/libxml2/relaxng.c:3047,1
    - Dst: xmlRelaxNGIsCompilable
      Src: /src/libxml2/relaxng.c:2875,1
    - Dst: xmlRelaxNGCompile
      Src: /src/libxml2/relaxng.c:2898,1
    - Dst: xmlAutomataGetInitState
      Src: /src/libxml2/relaxng.c:2896,1
    - Dst: xmlAutomataSetFlags
      Src: /src/libxml2/relaxng.c:2894,1
    - Dst: xmlAutomataNewTransition2
      Src: /src/libxml2/relaxng.c:2912,1
    - Dst: xmlAutomataSetFlags
      Src: /src/libxml2/relaxng.c:2927,1
    - Dst: xmlAutomataSetFinalState
      Src: /src/libxml2/relaxng.c:2933,1
    - Dst: xmlRelaxNGCompile
      Src: /src/libxml2/relaxng.c:2992,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/relaxng.c:3003,1
    - Dst: xmlRelaxNGCompile
      Src: /src/libxml2/relaxng.c:3013,1
    - Dst: xmlRelaxNGCompile
      Src: /src/libxml2/relaxng.c:3035,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:3067,1
    - Dst: xmlAutomataSetFinalState
      Src: /src/libxml2/relaxng.c:2901,1
    - Dst: xmlAutomataIsDeterminist
      Src: /src/libxml2/relaxng.c:2902,1
    - Dst: xmlAutomataCompile
      Src: /src/libxml2/relaxng.c:2903,1
    - Dst: xmlAutomataGetInitState
      Src: /src/libxml2/relaxng.c:2928,1
    - Dst: xmlAutomataCompile
      Src: /src/libxml2/relaxng.c:2934,1
    - Dst: xmlRelaxNGCompile
      Src: /src/libxml2/relaxng.c:2930,1
    - Dst: xmlRegFreeRegexp
      Src: /src/libxml2/relaxng.c:2939,1
    - Dst: xmlRelaxNGTryCompile
      Src: /src/libxml2/relaxng.c:2953,1
    - Dst: xmlRelaxNGCompile
      Src: /src/libxml2/relaxng.c:2958,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/relaxng.c:2984,1
    - Dst: xmlRelaxNGCompile
      Src: /src/libxml2/relaxng.c:2998,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 135
    argCount: 2
    argNames:
    - ctxt
    - def
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 3073
      start: 2864
    functionDepth: 0
    functionLinenumber: 2864
    functionLinenumberEnd: 3073
    functionName: xmlRelaxNGCompile
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRegFreeRegexp
    - xmlRelaxNGIsCompilable
    - xmlNewAutomata
    - xmlAutomataGetInitState
    - xmlRelaxNGDefName
    - xmlAutomataNewTransition
    - xmlAutomataNewTransition2
    - xmlFreeAutomata
    - xmlRelaxNGCompile
    - xmlAutomataIsDeterminist
    - xmlRelaxNGTryCompile
    - xmlAutomataNewEpsilon
    - xmlAutomataSetFinalState
    - xmlAutomataCompile
    - xmlRegexpIsDeterminist
    - xmlRngPErr
    - xmlAutomataSetFlags
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGCompile(xmlRelaxNGParserCtxtPtr ctxt, xmlRelaxNGDefinePtr
      def) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/relaxng.c:8070,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:8079,1
    - Dst: xmlRegExecPushString
      Src: /src/libxml2/relaxng.c:8077,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 3
    argNames:
    - ctxt
    - data
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlRelaxNGValidCtxt*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 8084
      start: 8060
    functionDepth: 0
    functionLinenumber: 8060
    functionLinenumberEnd: 8084
    functionName: xmlRelaxNGValidatePushCData
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRegExecPushString
    - IS_BLANK_CH
    - VALID_ERR2
    linkageType: ''
    returnType: int
    signature: 'int xmlRelaxNGValidatePushCData(xmlRelaxNGValidCtxt *ctxt, const xmlChar
      * data, int len ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGBestState
      Src: /src/libxml2/relaxng.c:9395,1
    - Dst: xmlRelaxNGValidateElementEnd
      Src: /src/libxml2/relaxng.c:9399,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 9401
      start: 9386
    functionDepth: 0
    functionLinenumber: 9386
    functionLinenumberEnd: 9401
    functionName: xmlRelaxNGLogBestError
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGValidateElementEnd
    - xmlRelaxNGBestState
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGLogBestError(xmlRelaxNGValidCtxtPtr ctxt) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGSkipIgnored
      Src: /src/libxml2/relaxng.c:9420,1
    - Dst: VALID_ERR3
      Src: /src/libxml2/relaxng.c:9432,1
    - Dst: VALID_ERR3
      Src: /src/libxml2/relaxng.c:9423,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - ctxt
    - dolog
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 9439
      start: 9412
    functionDepth: 0
    functionLinenumber: 9412
    functionLinenumberEnd: 9439
    functionName: xmlRelaxNGValidateElementEnd
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGSkipIgnored
    - VALID_ERR3
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGValidateElementEnd(xmlRelaxNGValidCtxtPtr ctxt,
      int dolog) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:827,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:829,1
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:846,1
    - Dst: xmlRealloc
      Src: /src/libxml2/relaxng.c:836,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:841,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:848,1
    - Dst: memset
      Src: /src/libxml2/relaxng.c:851,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 856
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 856
    functionName: xmlRelaxNGNewDefine
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRealloc
    - xmlRngPErrMemory
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlRelaxNGDefinePtr
    signature: 'static xmlRelaxNGDefinePtr xmlRelaxNGNewDefine(xmlRelaxNGParserCtxtPtr
      ctxt, xmlNodePtr node) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlRealloc
      Src: /src/libxml2/relaxng.c:988,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:993,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - ctxt
    - states
    - state
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGStatesPtr
    - xmlRelaxNGValidStatePtr
    constantsTouched: []
    func_position:
      end: 1001
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 1001
    functionName: xmlRelaxNGAddStatesUniq
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRealloc
    - xmlRngVErrMemory
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGAddStatesUniq(xmlRelaxNGValidCtxtPtr ctxt, xmlRelaxNGStatesPtr
      states, xmlRelaxNGValidStatePtr state) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/relaxng.c:1377,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/relaxng.c:1383,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:1379,1
    - Dst: xmlCtxtSetResourceLoader
      Src: /src/libxml2/relaxng.c:1385,1
    - Dst: xmlCtxtReadMemory
      Src: /src/libxml2/relaxng.c:1387,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/relaxng.c:1388,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - ctxt
    - buf
    - size
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1391
      start: 1372
    functionDepth: 0
    functionLinenumber: 1372
    functionLinenumberEnd: 1391
    functionName: xmlRelaxReadMemory
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlCtxtReadMemory
    - xmlCtxtSetErrorHandler
    - xmlCtxtSetResourceLoader
    - xmlFreeParserCtxt
    - xmlRngPErrMemory
    - xmlNewParserCtxt
    linkageType: ''
    returnType: xmlDoc*
    signature: 'static xmlDoc *xmlRelaxReadMemory(xmlRelaxNGParserCtxtPtr ctxt, const
      char *buf, int size) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4277,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/relaxng.c:4284,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:4286,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:4290,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/relaxng.c:4291,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4292,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4299,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4303,1
    - Dst: xmlRelaxNGParseElement
      Src: /src/libxml2/relaxng.c:4304,1
    - Dst: xmlRelaxNGParsePattern
      Src: /src/libxml2/relaxng.c:4306,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 4321
      start: 4270
    functionDepth: 0
    functionLinenumber: 4270
    functionLinenumberEnd: 4321
    functionName: xmlRelaxNGParseInterleave
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGParsePattern
    - IS_RELAXNG
    - xmlRelaxNGNewDefine
    - xmlRelaxNGParseElement
    - snprintf
    - xmlHashCreate
    - xmlRngPErr
    - xmlHashAddEntry
    - xmlRngPErrMemory
    linkageType: ''
    returnType: xmlRelaxNGDefinePtr
    signature: 'static xmlRelaxNGDefinePtr xmlRelaxNGParseInterleave(xmlRelaxNGParserCtxtPtr
      ctxt, xmlNodePtr node) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:3814,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:3826,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:3827,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:3816,1
    - Dst: xmlRealloc
      Src: /src/libxml2/relaxng.c:3823,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 93
    argCount: 3
    argNames:
    - ctxt
    - def
    - eora
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlRelaxNGDefinePtr
    - int
    constantsTouched: []
    func_position:
      end: 3878
      start: 3785
    functionDepth: 0
    functionLinenumber: 3785
    functionLinenumberEnd: 3878
    functionName: xmlRelaxNGGetElements
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRealloc
    - xmlRngPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlRelaxNGDefinePtr*
    signature: 'static xmlRelaxNGDefinePtr *xmlRelaxNGGetElements(xmlRelaxNGParserCtxtPtr
      ctxt, xmlRelaxNGDefinePtr def, int eora) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 9378
      start: 9348
    functionDepth: 0
    functionLinenumber: 9348
    functionLinenumberEnd: 9378
    functionName: xmlRelaxNGBestState
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGBestState(xmlRelaxNGValidCtxtPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGValidateDocument
      Src: /src/libxml2/relaxng.c:10599,1
    - Dst: xmlRelaxNGCleanPSVI
      Src: /src/libxml2/relaxng.c:10603,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - ctxt
    - doc
    argTypes:
    - xmlRelaxNGValidCtxt*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 10611
      start: 10589
    functionDepth: 0
    functionLinenumber: 10589
    functionLinenumberEnd: 10611
    functionName: xmlRelaxNGValidateDoc
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGCleanPSVI
    - xmlRelaxNGValidateDocument
    linkageType: ''
    returnType: int
    signature: 'int xmlRelaxNGValidateDoc(xmlRelaxNGValidCtxt *ctxt, xmlDoc *doc) '
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 60
    argCount: 2
    argNames:
    - ctxt
    - def
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 3775
      start: 3711
    functionDepth: 0
    functionLinenumber: 3711
    functionLinenumberEnd: 3775
    functionName: xmlRelaxNGGenerateAttributes
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGGenerateAttributes(xmlRelaxNGParserCtxtPtr ctxt,
      xmlRelaxNGDefinePtr def) '
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:4149,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxml2/relaxng.c:4215,1
    - Dst: XML_INT_TO_PTR
      Src: /src/libxml2/relaxng.c:4217,1
    - Dst: xmlRelaxNGFreePartition
      Src: /src/libxml2/relaxng.c:4260,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4180,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4187,1
    - Dst: XML_INT_TO_PTR
      Src: /src/libxml2/relaxng.c:4198,1
    - Dst: XML_INT_TO_PTR
      Src: /src/libxml2/relaxng.c:4206,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxml2/relaxng.c:4196,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxml2/relaxng.c:4204,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:4258,1
    - Dst: xmlRelaxNGGetElements
      Src: /src/libxml2/relaxng.c:4156,1
    - Dst: xmlRelaxNGGetElements
      Src: /src/libxml2/relaxng.c:4155,1
    - Dst: memset
      Src: /src/libxml2/relaxng.c:4168,1
    - Dst: XML_INT_TO_PTR
      Src: /src/libxml2/relaxng.c:4210,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxml2/relaxng.c:4208,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxml2/relaxng.c:4219,1
    - Dst: XML_INT_TO_PTR
      Src: /src/libxml2/relaxng.c:4221,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:4250,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:4255,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:4256,1
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:4143,1
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:4165,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/relaxng.c:4170,1
    - Dst: xmlRelaxNGCompareElemDefLists
      Src: /src/libxml2/relaxng.c:4177,1
    - Dst: xmlRelaxNGCompareElemDefLists
      Src: /src/libxml2/relaxng.c:4184,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 123
    argCount: 3
    argNames:
    - payload
    - data
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4261
      start: 4112
    functionDepth: 0
    functionLinenumber: 4112
    functionLinenumberEnd: 4261
    functionName: xmlRelaxNGComputeInterleaves
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashAddEntry2
    - memset
    - xmlRelaxNGCompareElemDefLists
    - xmlHashCreate
    - XML_INT_TO_PTR
    - xmlRelaxNGFreePartition
    - xmlRngPErr
    - xmlRngPErrMemory
    - xmlRelaxNGGetElements
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGComputeInterleaves(void *payload, void *data,
      const xmlChar * name ATTRIBUTE_UNUSED) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5340,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:5344,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5350,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:5353,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:5345,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:5354,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5359,1
    - Dst: xmlRelaxNGParsePatterns
      Src: /src/libxml2/relaxng.c:5363,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5375,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - ctxt
    - nodes
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5380
      start: 5333
    functionDepth: 0
    functionLinenumber: 5333
    functionLinenumberEnd: 5380
    functionName: xmlRelaxNGParseStart
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRngPErr
    - IS_RELAXNG
    - xmlRelaxNGNewDefine
    - xmlRelaxNGParsePatterns
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGParseStart(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr
      nodes) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCleanupTypes
      Src: /src/libxml2/relaxng.c:2720,1
    - Dst: xmlHashFree
      Src: /src/libxml2/relaxng.c:2723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2725
      start: 2717
    functionDepth: 0
    functionLinenumber: 2717
    functionLinenumberEnd: 2725
    functionName: xmlRelaxNGCleanupTypes
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlSchemaCleanupTypes
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'void xmlRelaxNGCleanupTypes(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:5291,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:5300,1
    - Dst: xmlRelaxNGParseElement
      Src: /src/libxml2/relaxng.c:5292,1
    - Dst: xmlRelaxNGParsePattern
      Src: /src/libxml2/relaxng.c:5311,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 3
    argNames:
    - ctxt
    - nodes
    - group
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 5324
      start: 5283
    functionDepth: 0
    functionLinenumber: 5283
    functionLinenumberEnd: 5324
    functionName: xmlRelaxNGParsePatterns
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGParsePattern
    - IS_RELAXNG
    - xmlRelaxNGNewDefine
    - xmlRelaxNGParseElement
    linkageType: ''
    returnType: xmlRelaxNGDefinePtr
    signature: 'static xmlRelaxNGDefinePtr xmlRelaxNGParsePatterns(xmlRelaxNGParserCtxtPtr
      ctxt, xmlNodePtr nodes, int group) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup
      Src: /src/libxml2/relaxng.c:2654,1
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:2658,1
    - Dst: xmlStrdup
      Src: /src/libxml2/relaxng.c:2664,1
    - Dst: memset
      Src: /src/libxml2/relaxng.c:2663,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:2660,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/relaxng.c:2671,1
    - Dst: xmlRelaxNGFreeTypeLibrary
      Src: /src/libxml2/relaxng.c:2673,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 7
    argNames:
    - namespace
    - data
    - have
    - check
    - comp
    - facet
    - freef
    argTypes:
    - xmlChar*
    - void*
    - xmlRelaxNGTypeHave
    - xmlRelaxNGTypeCheck
    - xmlRelaxNGTypeCompare
    - xmlRelaxNGFacetCheck
    - xmlRelaxNGTypeFree
    constantsTouched: []
    func_position:
      end: 2677
      start: 2640
    functionDepth: 0
    functionLinenumber: 2640
    functionLinenumberEnd: 2677
    functionName: xmlRelaxNGRegisterTypeLibrary
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRngVErrMemory
    - memset
    - xmlRelaxNGFreeTypeLibrary
    - xmlStrdup
    - xmlHashLookup
    - xmlHashAddEntry
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGRegisterTypeLibrary(const xmlChar * namespace,
      void *data, xmlRelaxNGTypeHave have, xmlRelaxNGTypeCheck check, xmlRelaxNGTypeCompare
      comp, xmlRelaxNGFacetCheck facet, xmlRelaxNGTypeFree freef) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxml2/relaxng.c:2689,1
    - Dst: xmlRelaxNGRegisterTypeLibrary
      Src: /src/libxml2/relaxng.c:2692,1
    - Dst: xmlRelaxNGRegisterTypeLibrary
      Src: /src/libxml2/relaxng.c:2699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2706
      start: 2684
    functionDepth: 0
    functionLinenumber: 2684
    functionLinenumberEnd: 2706
    functionName: xmlRelaxNGInitTypes
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlHashCreate
    - xmlRelaxNGRegisterTypeLibrary
    linkageType: ''
    returnType: int
    signature: 'int xmlRelaxNGInitTypes(void) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6561,1
    - Dst: xmlRelaxNGFreeDocumentList
      Src: /src/libxml2/relaxng.c:6567,1
    - Dst: xmlHashFree
      Src: /src/libxml2/relaxng.c:6565,1
    - Dst: xmlRelaxNGFreeIncludeList
      Src: /src/libxml2/relaxng.c:6569,1
    - Dst: xmlRelaxNGFreeDocument
      Src: /src/libxml2/relaxng.c:6563,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6571,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6573,1
    - Dst: xmlRelaxNGFreeDefine
      Src: /src/libxml2/relaxng.c:6578,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6579,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/relaxng.c:6582,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6583,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRelaxNGParserCtxt*
    constantsTouched: []
    func_position:
      end: 6584
      start: 6555
    functionDepth: 0
    functionLinenumber: 6555
    functionLinenumberEnd: 6584
    functionName: xmlRelaxNGFreeParserCtxt
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFree
    - xmlRelaxNGFreeDocument
    - xmlRelaxNGFreeDocumentList
    - xmlFreeDoc
    - xmlRelaxNGFreeIncludeList
    - xmlRelaxNGFreeDefine
    linkageType: ''
    returnType: void
    signature: 'void xmlRelaxNGFreeParserCtxt(xmlRelaxNGParserCtxt *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetPredefinedType
      Src: /src/libxml2/relaxng.c:2313,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - type
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2319
      start: 2306
    functionDepth: 0
    functionLinenumber: 2306
    functionLinenumberEnd: 2319
    functionName: xmlRelaxNGSchemaTypeHave
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetPredefinedType
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGSchemaTypeHave(void *data ATTRIBUTE_UNUSED, const
      xmlChar * type) '
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGIsCompilable
      Src: /src/libxml2/relaxng.c:2761,1
    - Dst: xmlRelaxNGIsCompilable
      Src: /src/libxml2/relaxng.c:2777,1
    - Dst: xmlRelaxNGIsCompilable
      Src: /src/libxml2/relaxng.c:2813,1
    - Dst: xmlRelaxNGIsCompilable
      Src: /src/libxml2/relaxng.c:2831,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 65
    argCount: 1
    argNames:
    - def
    argTypes:
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 2854
      start: 2745
    functionDepth: 0
    functionLinenumber: 2745
    functionLinenumberEnd: 2854
    functionName: xmlRelaxNGIsCompilable
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGIsCompilable
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGIsCompilable(xmlRelaxNGDefinePtr def) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:3431,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:3437,1
    - Dst: xmlStrdup
      Src: /src/libxml2/relaxng.c:3443,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:3447,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:3480,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:3491,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:3475,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/relaxng.c:3456,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:3493,1
    - Dst: xmlRelaxNGNormExtSpace
      Src: /src/libxml2/relaxng.c:3435,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:3495,1
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/relaxng.c:3511,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:3532,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:3561,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:3429,1
    - Dst: xmlValidateNCName
      Src: /src/libxml2/relaxng.c:3436,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:3448,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:3471,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:3458,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:3500,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:3503,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:3506,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:3528,1
    - Dst: xmlRelaxNGParsePattern
      Src: /src/libxml2/relaxng.c:3544,1
    - Dst: xmlRelaxNGGetDataTypeLibrary
      Src: /src/libxml2/relaxng.c:3440,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:3445,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:3479,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:3465,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:3508,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:3540,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 116
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 3567
      start: 3418
    functionDepth: 0
    functionLinenumber: 3418
    functionLinenumberEnd: 3567
    functionName: xmlRelaxNGParseData
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRelaxNGParsePattern
    - xmlRelaxNGNewDefine
    - xmlNodeGetContent
    - xmlStrdup
    - xmlRelaxNGGetDataTypeLibrary
    - xmlStrEqual
    - xmlHashLookup
    - xmlRngPErr
    - xmlGetProp
    - xmlRelaxNGNormExtSpace
    - xmlValidateNCName
    linkageType: ''
    returnType: xmlRelaxNGDefinePtr
    signature: 'static xmlRelaxNGDefinePtr xmlRelaxNGParseData(xmlRelaxNGParserCtxtPtr
      ctxt, xmlNodePtr node) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:4055,1
    - Dst: xmlRelaxNGGetElements
      Src: /src/libxml2/relaxng.c:4071,1
    - Dst: xmlRelaxNGCompareElemDefLists
      Src: /src/libxml2/relaxng.c:4082,1
    - Dst: xmlRelaxNGGetElements
      Src: /src/libxml2/relaxng.c:4065,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:4059,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4084,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:4091,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:4094,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 2
    argNames:
    - ctxt
    - def
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 4096
      start: 4021
    functionDepth: 0
    functionLinenumber: 4021
    functionLinenumberEnd: 4096
    functionName: xmlRelaxNGCheckGroupAttrs
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRelaxNGCompareElemDefLists
    - xmlRngPErr
    - xmlRngPErrMemory
    - xmlRelaxNGGetElements
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGCheckGroupAttrs(xmlRelaxNGParserCtxtPtr ctxt,
      xmlRelaxNGDefinePtr def) '
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:5038,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5056,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5077,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:5092,1
    - Dst: xmlRelaxNGParseExceptNameClass
      Src: /src/libxml2/relaxng.c:5086,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:5099,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5101,1
    - Dst: xmlRelaxNGNormExtSpace
      Src: /src/libxml2/relaxng.c:5053,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:5076,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:5111,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:5118,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5126,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5145,1
    - Dst: xmlValidateNCName
      Src: /src/libxml2/relaxng.c:5054,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:5090,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5070,1
    - Dst: xmlRelaxNGParseNameClass
      Src: /src/libxml2/relaxng.c:5132,1
    - Dst: xmlRelaxNGParseExceptNameClass
      Src: /src/libxml2/relaxng.c:5107,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:5037,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:5037,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:5041,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:5051,1
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/relaxng.c:5052,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5060,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:5069,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:5081,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:5065,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5094,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 122
    argCount: 3
    argNames:
    - ctxt
    - node
    - def
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 5163
      start: 5029
    functionDepth: 0
    functionLinenumber: 5029
    functionLinenumberEnd: 5163
    functionName: xmlRelaxNGParseNameClass
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGNewDefine
    - xmlRelaxNGParseExceptNameClass
    - xmlRelaxNGParseNameClass
    - xmlStrEqual
    - xmlRngPErr
    - xmlNodeGetContent
    - IS_RELAXNG
    - xmlGetProp
    - xmlRelaxNGNormExtSpace
    - xmlValidateNCName
    linkageType: ''
    returnType: xmlRelaxNGDefinePtr
    signature: 'static xmlRelaxNGDefinePtr xmlRelaxNGParseNameClass(xmlRelaxNGParserCtxtPtr
      ctxt, xmlNodePtr node, xmlRelaxNGDefinePtr def) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 8
    argCount: 4
    argNames:
    - ctxt
    - err
    - warn
    - ctx
    argTypes:
    - xmlRelaxNGParserCtxt*
    - xmlRelaxNGValidityErrorFunc*
    - xmlRelaxNGValidityWarningFunc*
    - void**
    constantsTouched: []
    func_position:
      end: 7371
      start: 7357
    functionDepth: 0
    functionLinenumber: 7357
    functionLinenumberEnd: 7371
    functionName: xmlRelaxNGGetParserErrors
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxt *ctxt, xmlRelaxNGValidityErrorFunc
      * err, xmlRelaxNGValidityWarningFunc * warn, void **ctx) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:1698,1
    - Dst: xmlRealloc
      Src: /src/libxml2/relaxng.c:1710,1
    - Dst: xmlStrdup
      Src: /src/libxml2/relaxng.c:1726,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:1715,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:1702,1
    - Dst: xmlStrdup
      Src: /src/libxml2/relaxng.c:1727,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 5
    argNames:
    - ctxt
    - err
    - arg1
    - arg2
    - dup
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGValidErr
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1743
      start: 1687
    functionDepth: 0
    functionLinenumber: 1687
    functionLinenumberEnd: 1743
    functionName: xmlRelaxNGValidErrorPush
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlRealloc
    - xmlMalloc
    - xmlRngVErrMemory
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGValidErrorPush(xmlRelaxNGValidCtxtPtr ctxt, xmlRelaxNGValidErr
      err, const xmlChar * arg1, const xmlChar * arg2, int dup) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGIsNullable
      Src: /src/libxml2/relaxng.c:3911,1
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:3919,1
    - Dst: xmlRelaxNGGetElements
      Src: /src/libxml2/relaxng.c:3937,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:3923,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/relaxng.c:3931,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxml2/relaxng.c:3947,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxml2/relaxng.c:3955,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxml2/relaxng.c:3959,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxml2/relaxng.c:3966,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxml2/relaxng.c:3970,1
    - Dst: xmlRelaxNGCompareElemDefLists
      Src: /src/libxml2/relaxng.c:3991,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:3999,1
    - Dst: xmlHashFree
      Src: /src/libxml2/relaxng.c:4010,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:4002,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 104
    argCount: 2
    argNames:
    - ctxt
    - def
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 4013
      start: 3886
    functionDepth: 0
    functionLinenumber: 3886
    functionLinenumberEnd: 4013
    functionName: xmlRelaxNGCheckChoiceDeterminism
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFree
    - xmlRelaxNGIsNullable
    - xmlHashAddEntry2
    - xmlRelaxNGCompareElemDefLists
    - xmlHashCreate
    - xmlRngPErrMemory
    - xmlRelaxNGGetElements
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGCheckChoiceDeterminism(xmlRelaxNGParserCtxtPtr
      ctxt, xmlRelaxNGDefinePtr def) '
  - BBCount: 66
    BranchProfiles: []
    Callsites:
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4626,1
    - Dst: xmlRelaxNGParsePatterns
      Src: /src/libxml2/relaxng.c:4660,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4674,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4759,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4804,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/relaxng.c:4828,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4864,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4618,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4663,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4739,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4798,1
    - Dst: xmlRelaxNGProcessExternalRef
      Src: /src/libxml2/relaxng.c:4758,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/relaxng.c:4833,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4728,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4835,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4632,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4680,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4710,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4757,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4617,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4662,1
    - Dst: xmlRelaxNGNormExtSpace
      Src: /src/libxml2/relaxng.c:4696,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4604,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4627,1
    - Dst: xmlRelaxNGParseValue
      Src: /src/libxml2/relaxng.c:4742,1
    - Dst: xmlRelaxNGParsePatterns
      Src: /src/libxml2/relaxng.c:4672,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4815,1
    - Dst: xmlValidateNCName
      Src: /src/libxml2/relaxng.c:4808,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4769,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:4802,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4793,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4760,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4675,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4741,1
    - Dst: xmlRelaxNGParseData
      Src: /src/libxml2/relaxng.c:4740,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4749,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4644,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4724,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4791,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4856,1
    - Dst: xmlRelaxNGParsePatterns
      Src: /src/libxml2/relaxng.c:4636,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4650,1
    - Dst: xmlRelaxNGParsePatterns
      Src: /src/libxml2/relaxng.c:4684,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:4691,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4704,1
    - Dst: xmlValidateNCName
      Src: /src/libxml2/relaxng.c:4697,1
    - Dst: xmlRelaxNGNormExtSpace
      Src: /src/libxml2/relaxng.c:4807,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4809,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4606,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4639,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4687,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4744,1
    - Dst: xmlRelaxNGParseInterleave
      Src: /src/libxml2/relaxng.c:4851,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/relaxng.c:4819,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/relaxng.c:4716,1
    - Dst: xmlRelaxNGParseElement
      Src: /src/libxml2/relaxng.c:4605,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4614,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4656,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4743,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4638,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4686,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4693,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/relaxng.c:4721,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4609,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4765,1
    - Dst: xmlRelaxNGParseInterleave
      Src: /src/libxml2/relaxng.c:4756,1
    - Dst: xmlRelaxNGParsePatterns
      Src: /src/libxml2/relaxng.c:4648,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/relaxng.c:4708,1
    - Dst: xmlRelaxNGParsePatterns
      Src: /src/libxml2/relaxng.c:4753,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4755,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4608,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4651,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4698,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4847,1
    - Dst: xmlRelaxNGParseGrammar
      Src: /src/libxml2/relaxng.c:4776,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4821,1
    - Dst: xmlRelaxNGParseAttribute
      Src: /src/libxml2/relaxng.c:4607,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4623,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4668,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4845,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4873,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 263
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 4879
      start: 4596
    functionDepth: 0
    functionLinenumber: 4596
    functionLinenumberEnd: 4879
    functionName: xmlRelaxNGParsePattern
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGNewDefine
    - xmlRelaxNGProcessExternalRef
    - xmlRelaxNGParseElement
    - xmlRelaxNGParsePatterns
    - xmlHashAddEntry
    - xmlRelaxNGParseValue
    - xmlRelaxNGParseInterleave
    - xmlRelaxNGParseGrammar
    - xmlHashCreate
    - xmlHashLookup
    - xmlRngPErr
    - xmlGetProp
    - IS_RELAXNG
    - xmlRelaxNGParseAttribute
    - xmlRelaxNGParseData
    - xmlRelaxNGNormExtSpace
    - xmlValidateNCName
    linkageType: ''
    returnType: xmlRelaxNGDefinePtr
    signature: 'static xmlRelaxNGDefinePtr xmlRelaxNGParsePattern(xmlRelaxNGParserCtxtPtr
      ctxt, xmlNodePtr node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - ct1
    - ct2
    argTypes:
    - xmlRelaxNGContentType
    - xmlRelaxNGContentType
    constantsTouched: []
    func_position:
      end: 5962
      start: 5947
    functionDepth: 0
    functionLinenumber: 5947
    functionLinenumberEnd: 5962
    functionName: xmlRelaxNGGroupContentType
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlRelaxNGContentType
    signature: 'static xmlRelaxNGContentType xmlRelaxNGGroupContentType(xmlRelaxNGContentType
      ct1, xmlRelaxNGContentType ct2) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:6505,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:6507,1
    - Dst: memset
      Src: /src/libxml2/relaxng.c:6510,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 6514
      start: 6496
    functionDepth: 0
    functionLinenumber: 6496
    functionLinenumberEnd: 6514
    functionName: xmlRelaxNGNewMemParserCtxt
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - memset
    - xmlRngPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlRelaxNGParserCtxt*
    signature: 'xmlRelaxNGParserCtxt *xmlRelaxNGNewMemParserCtxt(const char *buffer,
      int size) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:1540,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/relaxng.c:1563,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:1627,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:1640,1
    - Dst: xmlRelaxNGRemoveRedefine
      Src: /src/libxml2/relaxng.c:1649,1
    - Dst: memset
      Src: /src/libxml2/relaxng.c:1566,1
    - Dst: xmlHasProp
      Src: /src/libxml2/relaxng.c:1578,1
    - Dst: xmlRelaxNGIncludePop
      Src: /src/libxml2/relaxng.c:1603,1
    - Dst: xmlRelaxNGCleanupDoc
      Src: /src/libxml2/relaxng.c:1594,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:1642,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:1539,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:1552,1
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:1560,1
    - Dst: xmlRelaxReadFile
      Src: /src/libxml2/relaxng.c:1550,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:1562,1
    - Dst: xmlStrdup
      Src: /src/libxml2/relaxng.c:1568,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:1616,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:1610,1
    - Dst: xmlSetProp
      Src: /src/libxml2/relaxng.c:1579,1
    - Dst: xmlRelaxNGRemoveRedefine
      Src: /src/libxml2/relaxng.c:1631,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:1659,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/relaxng.c:1576,1
    - Dst: xmlRelaxNGIncludePush
      Src: /src/libxml2/relaxng.c:1587,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:1615,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/relaxng.c:1608,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:1637,1
    - Dst: xmlRelaxNGNormExtSpace
      Src: /src/libxml2/relaxng.c:1648,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:1652,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:1656,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:1633,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 92
    argCount: 4
    argNames:
    - ctxt
    - URL
    - node
    - ns
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlChar*
    - xmlNodePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1675
      start: 1526
    functionDepth: 0
    functionLinenumber: 1526
    functionLinenumberEnd: 1675
    functionName: xmlRelaxNGLoadInclude
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlRelaxNGRemoveRedefine
    - xmlFreeDoc
    - xmlRelaxNGNormExtSpace
    - xmlSetProp
    - xmlStrdup
    - xmlRngPErr
    - xmlRelaxReadFile
    - xmlMalloc
    - xmlHasProp
    - xmlFree
    - xmlRelaxNGIncludePop
    - memset
    - IS_RELAXNG
    - xmlRngPErrMemory
    - xmlRelaxNGIncludePush
    - xmlRelaxNGCleanupDoc
    - xmlStrEqual
    - xmlGetProp
    linkageType: ''
    returnType: xmlRelaxNGIncludePtr
    signature: 'static xmlRelaxNGIncludePtr xmlRelaxNGLoadInclude(xmlRelaxNGParserCtxtPtr
      ctxt, const xmlChar * URL, xmlNodePtr node, const xmlChar * ns) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4522,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:4545,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/relaxng.c:4531,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4533,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:4541,1
    - Dst: xmlSetProp
      Src: /src/libxml2/relaxng.c:4552,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:4554,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:4557,1
    - Dst: xmlRelaxNGParseDocument
      Src: /src/libxml2/relaxng.c:4565,1
    - Dst: xmlRelaxNGParseImportRefs
      Src: /src/libxml2/relaxng.c:4571,1
    - Dst: xmlUnsetProp
      Src: /src/libxml2/relaxng.c:4578,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 4586
      start: 4511
    functionDepth: 0
    functionLinenumber: 4511
    functionLinenumberEnd: 4586
    functionName: xmlRelaxNGProcessExternalRef
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlFree
    - xmlSetProp
    - xmlRelaxNGNewDefine
    - xmlUnsetProp
    - xmlRngPErr
    - xmlGetProp
    - xmlRelaxNGParseDocument
    - xmlRelaxNGParseImportRefs
    linkageType: ''
    returnType: xmlRelaxNGDefinePtr
    signature: 'static xmlRelaxNGDefinePtr xmlRelaxNGProcessExternalRef(xmlRelaxNGParserCtxtPtr
      ctxt, xmlNodePtr node) '
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGSimplify
      Src: /src/libxml2/relaxng.c:5785,1
    - Dst: xmlRelaxNGSimplify
      Src: /src/libxml2/relaxng.c:5820,1
    - Dst: xmlRelaxNGTryUnlink
      Src: /src/libxml2/relaxng.c:5814,1
    - Dst: xmlRelaxNGTryUnlink
      Src: /src/libxml2/relaxng.c:5800,1
    - Dst: xmlRelaxNGSimplify
      Src: /src/libxml2/relaxng.c:5822,1
    - Dst: xmlRelaxNGSimplify
      Src: /src/libxml2/relaxng.c:5824,1
    - Dst: xmlRelaxNGGenerateAttributes
      Src: /src/libxml2/relaxng.c:5835,1
    - Dst: xmlRelaxNGGenerateAttributes
      Src: /src/libxml2/relaxng.c:5854,1
    - Dst: xmlRelaxNGTryUnlink
      Src: /src/libxml2/relaxng.c:5901,1
    - Dst: xmlRelaxNGTryUnlink
      Src: /src/libxml2/relaxng.c:5915,1
    - Dst: xmlRelaxNGTryUnlink
      Src: /src/libxml2/relaxng.c:5929,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 172
    argCount: 3
    argNames:
    - ctxt
    - cur
    - parent
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlRelaxNGDefinePtr
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 5938
      start: 5774
    functionDepth: 0
    functionLinenumber: 5774
    functionLinenumberEnd: 5938
    functionName: xmlRelaxNGSimplify
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGTryUnlink
    - xmlRelaxNGGenerateAttributes
    - xmlRelaxNGSimplify
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGSimplify(xmlRelaxNGParserCtxtPtr ctxt, xmlRelaxNGDefinePtr
      cur, xmlRelaxNGDefinePtr parent) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:6478,1
    - Dst: xmlStrdup
      Src: /src/libxml2/relaxng.c:6484,1
    - Dst: memset
      Src: /src/libxml2/relaxng.c:6483,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:6480,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 6486
      start: 6469
    functionDepth: 0
    functionLinenumber: 6469
    functionLinenumberEnd: 6486
    functionName: xmlRelaxNGNewParserCtxt
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - memset
    - xmlRngPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlRelaxNGParserCtxt*
    signature: 'xmlRelaxNGParserCtxt *xmlRelaxNGNewParserCtxt(const char *URL) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:8218,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/relaxng.c:8227,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/relaxng.c:8228,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:8220,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/relaxng.c:8224,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 2
    argNames:
    - ctxt
    - str
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 8238
      start: 8204
    functionDepth: 0
    functionLinenumber: 8204
    functionLinenumberEnd: 8238
    functionName: xmlRelaxNGNormalize
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - IS_BLANK_CH
    - xmlMalloc
    - xmlRngVErrMemory
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlRelaxNGNormalize(xmlRelaxNGValidCtxtPtr ctxt, const
      xmlChar * str) '
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/relaxng.c:8382,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:8392,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:8424,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:8427,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:8429,1
    - Dst: xmlRelaxNGNextValue
      Src: /src/libxml2/relaxng.c:8433,1
    - Dst: xmlRelaxNGValidateDatatype
      Src: /src/libxml2/relaxng.c:8437,1
    - Dst: xmlRelaxNGValidateValue
      Src: /src/libxml2/relaxng.c:8453,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/relaxng.c:8487,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:8518,1
    - Dst: xmlRelaxNGNormalize
      Src: /src/libxml2/relaxng.c:8421,1
    - Dst: xmlStrdup
      Src: /src/libxml2/relaxng.c:8479,1
    - Dst: xmlRelaxNGValidateValue
      Src: /src/libxml2/relaxng.c:8505,1
    - Dst: xmlRelaxNGValidateValueList
      Src: /src/libxml2/relaxng.c:8545,1
    - Dst: xmlRelaxNGPopErrors
      Src: /src/libxml2/relaxng.c:8579,1
    - Dst: VALID_ERR
      Src: /src/libxml2/relaxng.c:8616,1
    - Dst: xmlRelaxNGValidateValue
      Src: /src/libxml2/relaxng.c:8603,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:8405,1
    - Dst: xmlRelaxNGNormalize
      Src: /src/libxml2/relaxng.c:8420,1
    - Dst: xmlRelaxNGNextValue
      Src: /src/libxml2/relaxng.c:8440,1
    - Dst: VALID_ERR
      Src: /src/libxml2/relaxng.c:8482,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/relaxng.c:8490,1
    - Dst: xmlRelaxNGValidateValue
      Src: /src/libxml2/relaxng.c:8587,1
    - Dst: xmlRelaxNGDumpValidError
      Src: /src/libxml2/relaxng.c:8463,1
    - Dst: xmlRelaxNGPopErrors
      Src: /src/libxml2/relaxng.c:8466,1
    - Dst: xmlStrdup
      Src: /src/libxml2/relaxng.c:8477,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:8514,1
    - Dst: xmlRelaxNGValidateValueList
      Src: /src/libxml2/relaxng.c:8524,1
    - Dst: xmlRelaxNGPopErrors
      Src: /src/libxml2/relaxng.c:8555,1
    - Dst: xmlRelaxNGValidateValue
      Src: /src/libxml2/relaxng.c:8569,1
    - Dst: xmlRelaxNGValidateValue
      Src: /src/libxml2/relaxng.c:8619,1
    - Dst: xmlRelaxNGPopErrors
      Src: /src/libxml2/relaxng.c:8574,1
    CyclomaticComplexity: 81
    EdgeCount: 81
    ICount: 204
    argCount: 2
    argNames:
    - ctxt
    - define
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 8627
      start: 8369
    functionDepth: 0
    functionLinenumber: 8369
    functionLinenumberEnd: 8627
    functionName: xmlRelaxNGValidateValue
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRelaxNGValidateDatatype
    - VALID_ERR
    - VALID_ERR2
    - xmlRelaxNGValidateValueList
    - xmlRelaxNGValidateValue
    - xmlRelaxNGDumpValidError
    - xmlRelaxNGNormalize
    - xmlStrdup
    - IS_BLANK_CH
    - xmlStrEqual
    - xmlRelaxNGNextValue
    - xmlRelaxNGPopErrors
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGValidateValue(xmlRelaxNGValidCtxtPtr ctxt, xmlRelaxNGDefinePtr
      define) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGFreeGrammar
      Src: /src/libxml2/relaxng.c:745,1
    - Dst: xmlRelaxNGFreeDocumentList
      Src: /src/libxml2/relaxng.c:749,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/relaxng.c:747,1
    - Dst: xmlRelaxNGFreeIncludeList
      Src: /src/libxml2/relaxng.c:751,1
    - Dst: xmlRelaxNGFreeDefine
      Src: /src/libxml2/relaxng.c:756,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:757,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:760,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 1
    argNames:
    - schema
    argTypes:
    - xmlRelaxNG*
    constantsTouched: []
    func_position:
      end: 761
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 761
    functionName: xmlRelaxNGFree
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRelaxNGFreeGrammar
    - xmlRelaxNGFreeDocumentList
    - xmlFreeDoc
    - xmlRelaxNGFreeIncludeList
    - xmlRelaxNGFreeDefine
    linkageType: ''
    returnType: void
    signature: 'void xmlRelaxNGFree(xmlRelaxNG *schema) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_NODE
      Src: /src/libxml2/relaxng.c:8190,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - node
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 8194
      start: 8175
    functionDepth: 0
    functionLinenumber: 8175
    functionLinenumberEnd: 8194
    functionName: xmlRelaxNGSkipIgnored
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - IS_BLANK_NODE
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlRelaxNGSkipIgnored(xmlRelaxNGValidCtxtPtr ctxt
      ATTRIBUTE_UNUSED, xmlNodePtr node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGValidateValue
      Src: /src/libxml2/relaxng.c:8354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ctxt
    - defines
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 8360
      start: 8347
    functionDepth: 0
    functionLinenumber: 8347
    functionLinenumberEnd: 8360
    functionName: xmlRelaxNGValidateValueList
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGValidateValue
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGValidateValueList(xmlRelaxNGValidCtxtPtr ctxt,
      xmlRelaxNGDefinePtr defines) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeDoc
      Src: /src/libxml2/relaxng.c:721,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:727,1
    - Dst: xmlRelaxNGFreeDefine
      Src: /src/libxml2/relaxng.c:726,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:730,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - schema
    argTypes:
    - xmlRelaxNGPtr
    constantsTouched: []
    func_position:
      end: 731
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 731
    functionName: xmlRelaxNGFreeInnerSchema
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeDoc
    - xmlRelaxNGFreeDefine
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGFreeInnerSchema(xmlRelaxNGPtr schema) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:1860,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:1861,1
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:1881,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:1873,1
    - Dst: xmlRelaxReadFile
      Src: /src/libxml2/relaxng.c:1871,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:1883,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/relaxng.c:1884,1
    - Dst: memset
      Src: /src/libxml2/relaxng.c:1887,1
    - Dst: xmlStrdup
      Src: /src/libxml2/relaxng.c:1889,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/relaxng.c:1898,1
    - Dst: xmlRelaxNGDocumentPush
      Src: /src/libxml2/relaxng.c:1909,1
    - Dst: xmlHasProp
      Src: /src/libxml2/relaxng.c:1900,1
    - Dst: xmlRelaxNGDocumentPop
      Src: /src/libxml2/relaxng.c:1920,1
    - Dst: xmlSetProp
      Src: /src/libxml2/relaxng.c:1901,1
    - Dst: xmlRelaxNGCleanupDoc
      Src: /src/libxml2/relaxng.c:1914,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - ctxt
    - URL
    - ns
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1923
      start: 1847
    functionDepth: 0
    functionLinenumber: 1847
    functionLinenumberEnd: 1923
    functionName: xmlRelaxNGLoadExternalRef
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlSetProp
    - memset
    - xmlRelaxNGDocumentPop
    - xmlRelaxNGDocumentPush
    - xmlStrdup
    - xmlRelaxNGCleanupDoc
    - xmlStrEqual
    - xmlFreeDoc
    - xmlRngPErr
    - xmlRngPErrMemory
    - xmlMalloc
    - xmlRelaxReadFile
    - xmlHasProp
    linkageType: ''
    returnType: xmlRelaxNGDocumentPtr
    signature: 'static xmlRelaxNGDocumentPtr xmlRelaxNGLoadExternalRef(xmlRelaxNGParserCtxtPtr
      ctxt, const xmlChar * URL, const xmlChar * ns) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:10453,1
    - Dst: memset
      Src: /src/libxml2/relaxng.c:10458,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:10455,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - schema
    argTypes:
    - xmlRelaxNG*
    constantsTouched: []
    func_position:
      end: 10471
      start: 10448
    functionDepth: 0
    functionLinenumber: 10448
    functionLinenumberEnd: 10471
    functionName: xmlRelaxNGNewValidCtxt
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    - xmlRngVErrMemory
    linkageType: ''
    returnType: xmlRelaxNGValidCtxt*
    signature: 'xmlRelaxNGValidCtxt *xmlRelaxNGNewValidCtxt(xmlRelaxNG *schema) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 1835
      start: 1820
    functionDepth: 0
    functionLinenumber: 1820
    functionLinenumberEnd: 1835
    functionName: xmlRelaxNGDocumentPop
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlRelaxNGDocumentPtr
    signature: 'static xmlRelaxNGDocumentPtr xmlRelaxNGDocumentPop(xmlRelaxNGParserCtxtPtr
      ctxt) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: VALID_ERR
      Src: /src/libxml2/relaxng.c:10317,1
    - Dst: xmlRelaxNGValidateDefinition
      Src: /src/libxml2/relaxng.c:10322,1
    - Dst: VALID_ERR
      Src: /src/libxml2/relaxng.c:10329,1
    - Dst: xmlRelaxNGSkipIgnored
      Src: /src/libxml2/relaxng.c:10326,1
    - Dst: xmlRelaxNGNewValidState
      Src: /src/libxml2/relaxng.c:10320,1
    - Dst: xmlRelaxNGSkipIgnored
      Src: /src/libxml2/relaxng.c:10340,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:10343,1
    - Dst: VALID_ERR
      Src: /src/libxml2/relaxng.c:10347,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:10353,1
    - Dst: xmlRelaxNGDumpValidError
      Src: /src/libxml2/relaxng.c:10357,1
    - Dst: memset
      Src: /src/libxml2/relaxng.c:10362,1
    - Dst: xmlValidateDocumentFinal
      Src: /src/libxml2/relaxng.c:10375,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 2
    argNames:
    - ctxt
    - doc
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 10383
      start: 10301
    functionDepth: 0
    functionLinenumber: 10301
    functionLinenumberEnd: 10383
    functionName: xmlRelaxNGValidateDocument
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - VALID_ERR
    - memset
    - xmlRelaxNGFreeValidState
    - xmlRelaxNGDumpValidError
    - xmlRelaxNGValidateDefinition
    - xmlRelaxNGNewValidState
    - xmlRelaxNGSkipIgnored
    - xmlValidateDocumentFinal
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGValidateDocument(xmlRelaxNGValidCtxtPtr ctxt,
      xmlDocPtr doc) '
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 10435
      start: 10396
    functionDepth: 0
    functionLinenumber: 10396
    functionLinenumberEnd: 10435
    functionName: xmlRelaxNGCleanPSVI
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGCleanPSVI(xmlNodePtr node) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2578,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2579,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2581,1
    - Dst: xmlRelaxNGNormalize
      Src: /src/libxml2/relaxng.c:2588,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2580,1
    - Dst: xmlRelaxNGNormalize
      Src: /src/libxml2/relaxng.c:2589,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2593,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:2598,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:2600,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 7
    argNames:
    - ATTRIBUTE_UNUSED
    - type
    - value1
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - value2
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlNodePtr
    - void*
    - xmlChar*
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2605
      start: 2567
    functionDepth: 0
    functionLinenumber: 2567
    functionLinenumberEnd: 2605
    functionName: xmlRelaxNGDefaultTypeCompare
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGNormalize
    - xmlStrEqual
    - xmlFree
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGDefaultTypeCompare(void *data ATTRIBUTE_UNUSED,
      const xmlChar * type, const xmlChar * value1, xmlNodePtr ctxt1 ATTRIBUTE_UNUSED,
      void *comp1 ATTRIBUTE_UNUSED, const xmlChar * value2, xmlNodePtr ctxt2 ATTRIBUTE_UNUSED) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:10200,1
    - Dst: xmlRelaxNGValidateState
      Src: /src/libxml2/relaxng.c:10215,1
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:10282,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:10195,1
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:10280,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:10182,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:10221,1
    - Dst: xmlRelaxNGAddStates
      Src: /src/libxml2/relaxng.c:10241,1
    - Dst: xmlRelaxNGAddStates
      Src: /src/libxml2/relaxng.c:10246,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:10258,1
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:10260,1
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:10276,1
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:10248,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:10288,1
    - Dst: xmlRelaxNGValidateState
      Src: /src/libxml2/relaxng.c:10192,1
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:10189,1
    - Dst: xmlRelaxNGAddStates
      Src: /src/libxml2/relaxng.c:10228,1
    - Dst: xmlRelaxNGFreeStates
      Src: /src/libxml2/relaxng.c:10267,1
    - Dst: xmlRelaxNGFreeValidState
      Src: /src/libxml2/relaxng.c:10254,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 116
    argCount: 2
    argNames:
    - ctxt
    - define
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 10292
      start: 10170
    functionDepth: 0
    functionLinenumber: 10170
    functionLinenumberEnd: 10292
    functionName: xmlRelaxNGValidateDefinition
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGAddStates
    - xmlRelaxNGValidateState
    - xmlRelaxNGFreeValidState
    - xmlRelaxNGFreeStates
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGValidateDefinition(xmlRelaxNGValidCtxtPtr ctxt,
      xmlRelaxNGDefinePtr define) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2545,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2547,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 5
    argCount: 5
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - void**
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2552
      start: 2536
    functionDepth: 0
    functionLinenumber: 2536
    functionLinenumberEnd: 2552
    functionName: xmlRelaxNGDefaultTypeCheck
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGDefaultTypeCheck(void *data ATTRIBUTE_UNUSED,
      const xmlChar * type ATTRIBUTE_UNUSED, const xmlChar * value ATTRIBUTE_UNUSED,
      void **result ATTRIBUTE_UNUSED, xmlNodePtr node ATTRIBUTE_UNUSED) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlRngVErr
      Src: /src/libxml2/relaxng.c:7670,1
    - Dst: xmlRngVErr
      Src: /src/libxml2/relaxng.c:7677,1
    - Dst: xmlRelaxNGValidateDefinition
      Src: /src/libxml2/relaxng.c:7690,1
    - Dst: xmlRngVErr
      Src: /src/libxml2/relaxng.c:7684,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - token
    - transdata
    - inputdata
    argTypes:
    - xmlRegExecCtxtPtr
    - xmlChar*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 7693
      start: 7660
    functionDepth: 0
    functionLinenumber: 7660
    functionLinenumberEnd: 7693
    functionName: xmlRelaxNGValidateCompiledCallback
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGValidateDefinition
    - xmlRngVErr
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGValidateCompiledCallback(xmlRegExecCtxtPtr exec
      ATTRIBUTE_UNUSED, const xmlChar * token, void *transdata, void *inputdata) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: VALID_ERR
      Src: /src/libxml2/relaxng.c:8009,1
    - Dst: VALID_ERR
      Src: /src/libxml2/relaxng.c:8014,1
    - Dst: xmlRelaxNGElemPush
      Src: /src/libxml2/relaxng.c:8028,1
    - Dst: xmlRegNewExecCtxt
      Src: /src/libxml2/relaxng.c:8022,1
    - Dst: xmlRegExecPushString2
      Src: /src/libxml2/relaxng.c:8034,1
    - Dst: xmlRegExecPushString
      Src: /src/libxml2/relaxng.c:8037,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:8040,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 3
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - elem
    argTypes:
    - xmlRelaxNGValidCtxt*
    - xmlDoc*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 8050
      start: 7991
    functionDepth: 0
    functionLinenumber: 7991
    functionLinenumberEnd: 8050
    functionName: xmlRelaxNGValidatePushElement
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - VALID_ERR
    - xmlRelaxNGElemPush
    - VALID_ERR2
    - xmlRegExecPushString2
    - xmlRegNewExecCtxt
    - xmlRegExecPushString
    linkageType: ''
    returnType: int
    signature: 'int xmlRelaxNGValidatePushElement(xmlRelaxNGValidCtxt *ctxt, xmlDoc
      *doc ATTRIBUTE_UNUSED, xmlNode *elem) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:1767,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:1770,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 1774
      start: 1750
    functionDepth: 0
    functionLinenumber: 1750
    functionLinenumberEnd: 1774
    functionName: xmlRelaxNGValidErrorPop
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGValidErrorPop(xmlRelaxNGValidCtxtPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/relaxng.c:2443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - value
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 2444
      start: 2440
    functionDepth: 0
    functionLinenumber: 2440
    functionLinenumberEnd: 2444
    functionName: xmlRelaxNGSchemaFreeValue
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlSchemaFreeValue
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGSchemaFreeValue(void *data ATTRIBUTE_UNUSED,
      void *value) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/relaxng.c:3263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3268
      start: 3257
    functionDepth: 0
    functionLinenumber: 3257
    functionLinenumberEnd: 3268
    functionName: xmlRelaxNGIsBlank
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - IS_BLANK_CH
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGIsBlank(xmlChar * str) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:3286,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:3287,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:3290,1
    - Dst: xmlURIEscapeStr
      Src: /src/libxml2/relaxng.c:3293,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:3286,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:3297,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:3303,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:3306,1
    - Dst: xmlURIEscapeStr
      Src: /src/libxml2/relaxng.c:3309,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:3313,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - node
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 3319
      start: 3277
    functionDepth: 0
    functionLinenumber: 3277
    functionLinenumberEnd: 3319
    functionName: xmlRelaxNGGetDataTypeLibrary
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetProp
    - IS_RELAXNG
    - xmlURIEscapeStr
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlRelaxNGGetDataTypeLibrary(xmlRelaxNGParserCtxtPtr
      ctxt ATTRIBUTE_UNUSED, xmlNodePtr node) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:8666,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:8675,1
    - Dst: xmlRelaxNGAttributeMatch
      Src: /src/libxml2/relaxng.c:8699,1
    - Dst: xmlRelaxNGAttributeMatch
      Src: /src/libxml2/relaxng.c:8687,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 3
    argNames:
    - ctxt
    - define
    - prop
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGDefinePtr
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 8712
      start: 8659
    functionDepth: 0
    functionLinenumber: 8659
    functionLinenumberEnd: 8712
    functionName: xmlRelaxNGAttributeMatch
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGAttributeMatch
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGAttributeMatch(xmlRelaxNGValidCtxtPtr ctxt, xmlRelaxNGDefinePtr
      define, xmlAttrPtr prop) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGElementMatch
      Src: /src/libxml2/relaxng.c:8872,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 2
    argNames:
    - node
    - list
    argTypes:
    - xmlNodePtr
    - xmlRelaxNGDefinePtr*
    constantsTouched: []
    func_position:
      end: 8886
      start: 8859
    functionDepth: 0
    functionLinenumber: 8859
    functionLinenumberEnd: 8886
    functionName: xmlRelaxNGNodeMatchesList
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGElementMatch
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGNodeMatchesList(xmlNodePtr node, xmlRelaxNGDefinePtr
      * list) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ctxt
    - serror
    - ctx
    argTypes:
    - xmlRelaxNGValidCtxt*
    - xmlStructuredErrorFunc
    - void*
    constantsTouched: []
    func_position:
      end: 10554
      start: 10544
    functionDepth: 0
    functionLinenumber: 10544
    functionLinenumberEnd: 10554
    functionName: xmlRelaxNGSetValidStructuredErrors
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxt *ctxt,
      xmlStructuredErrorFunc serror, void *ctx) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:663,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:668,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/relaxng.c:665,1
    - Dst: xmlRelaxNGFree
      Src: /src/libxml2/relaxng.c:667,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - incl
    argTypes:
    - xmlRelaxNGIncludePtr
    constantsTouched: []
    func_position:
      end: 669
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 669
    functionName: xmlRelaxNGFreeInclude
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeDoc
    - xmlRelaxNGFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGFreeInclude(xmlRelaxNGIncludePtr incl) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGDumpValidError
      Src: /src/libxml2/relaxng.c:2269,1
    - Dst: xmlRelaxNGValidErrorPush
      Src: /src/libxml2/relaxng.c:2285,1
    - Dst: xmlRelaxNGShowValidError
      Src: /src/libxml2/relaxng.c:2279,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 5
    argNames:
    - ctxt
    - err
    - arg1
    - arg2
    - dup
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGValidErr
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 2287
      start: 2247
    functionDepth: 0
    functionLinenumber: 2247
    functionLinenumberEnd: 2287
    functionName: xmlRelaxNGAddValidError
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGShowValidError
    - xmlRelaxNGDumpValidError
    - xmlRelaxNGValidErrorPush
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGAddValidError(xmlRelaxNGValidCtxtPtr ctxt, xmlRelaxNGValidErr
      err, const xmlChar * arg1, const xmlChar * arg2, int dup) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaNewFacet
      Src: /src/libxml2/relaxng.c:2388,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2402,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2412,1
    - Dst: xmlSchemaCheckFacet
      Src: /src/libxml2/relaxng.c:2421,1
    - Dst: xmlSchemaValidateFacet
      Src: /src/libxml2/relaxng.c:2426,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2398,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2404,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2406,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2414,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2394,1
    - Dst: xmlSchemaFreeFacet
      Src: /src/libxml2/relaxng.c:2417,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2408,1
    - Dst: xmlSchemaFreeFacet
      Src: /src/libxml2/relaxng.c:2423,1
    - Dst: xmlSchemaGetPredefinedType
      Src: /src/libxml2/relaxng.c:2382,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2392,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2396,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2400,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2410,1
    - Dst: xmlSchemaFreeFacet
      Src: /src/libxml2/relaxng.c:2427,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 58
    argCount: 6
    argNames:
    - ATTRIBUTE_UNUSED
    - type
    - facetname
    - val
    - strval
    - value
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 2431
      start: 2370
    functionDepth: 0
    functionLinenumber: 2370
    functionLinenumberEnd: 2431
    functionName: xmlRelaxNGSchemaFacetCheck
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetPredefinedType
    - xmlSchemaValidateFacet
    - xmlSchemaFreeFacet
    - xmlSchemaCheckFacet
    - xmlSchemaNewFacet
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGSchemaFacetCheck(void *data ATTRIBUTE_UNUSED,
      const xmlChar * type, const xmlChar * facetname, const xmlChar * val, const
      xmlChar * strval, void *value) '
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGIsNullable
      Src: /src/libxml2/relaxng.c:3203,1
    - Dst: xmlRelaxNGIsNullable
      Src: /src/libxml2/relaxng.c:3233,1
    - Dst: xmlRelaxNGIsNullable
      Src: /src/libxml2/relaxng.c:3219,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 28
    argCount: 1
    argNames:
    - define
    argTypes:
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 3249
      start: 3180
    functionDepth: 0
    functionLinenumber: 3180
    functionLinenumberEnd: 3249
    functionName: xmlRelaxNGIsNullable
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGIsNullable
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGIsNullable(xmlRelaxNGDefinePtr define) '
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7453,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7460,1
    - Dst: xmlRelaxNGDumpDefines
      Src: /src/libxml2/relaxng.c:7463,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7468,1
    - Dst: xmlRelaxNGDumpDefines
      Src: /src/libxml2/relaxng.c:7479,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7480,1
    - Dst: xmlRelaxNGDumpDefines
      Src: /src/libxml2/relaxng.c:7489,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7490,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7498,1
    - Dst: xmlRelaxNGDumpDefines
      Src: /src/libxml2/relaxng.c:7546,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7521,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7447,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7458,1
    - Dst: xmlRelaxNGDumpDefines
      Src: /src/libxml2/relaxng.c:7464,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7465,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7473,1
    - Dst: xmlRelaxNGDumpDefines
      Src: /src/libxml2/relaxng.c:7484,1
    - Dst: xmlRelaxNGDumpDefines
      Src: /src/libxml2/relaxng.c:7494,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7495,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7503,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7510,1
    - Dst: xmlRelaxNGDumpDefines
      Src: /src/libxml2/relaxng.c:7520,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7516,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7532,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7534,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7527,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7456,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7450,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7461,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7478,1
    - Dst: xmlRelaxNGDumpDefines
      Src: /src/libxml2/relaxng.c:7469,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7470,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7488,1
    - Dst: xmlRelaxNGDumpDefines
      Src: /src/libxml2/relaxng.c:7499,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7500,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7511,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7513,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7529,1
    - Dst: xmlRelaxNGDumpDefines
      Src: /src/libxml2/relaxng.c:7533,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7475,1
    - Dst: xmlRelaxNGDumpDefines
      Src: /src/libxml2/relaxng.c:7474,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7483,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7485,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7493,1
    - Dst: xmlRelaxNGDumpDefines
      Src: /src/libxml2/relaxng.c:7504,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7505,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7508,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7518,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7526,1
    - Dst: xmlRelaxNGDumpDefines
      Src: /src/libxml2/relaxng.c:7512,1
    - Dst: xmlRelaxNGDumpDefines
      Src: /src/libxml2/relaxng.c:7528,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7524,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7519,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 62
    argCount: 2
    argNames:
    - output
    - define
    argTypes:
    - FILE*
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 7549
      start: 7440
    functionDepth: 0
    functionLinenumber: 7440
    functionLinenumberEnd: 7549
    functionName: xmlRelaxNGDumpDefine
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGDumpDefines
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGDumpDefine(FILE * output, xmlRelaxNGDefinePtr
      define) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7633,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7637,1
    - Dst: xmlDocDump
      Src: /src/libxml2/relaxng.c:7639,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - output
    - schema
    argTypes:
    - FILE*
    - xmlRelaxNG*
    constantsTouched: []
    func_position:
      end: 7641
      start: 7627
    functionDepth: 0
    functionLinenumber: 7627
    functionLinenumberEnd: 7641
    functionName: xmlRelaxNGDumpTree
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlDocDump
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'void xmlRelaxNGDumpTree(FILE * output, xmlRelaxNG *schema) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGValidateValue
      Src: /src/libxml2/relaxng.c:8643,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ctxt
    - defines
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 8649
      start: 8636
    functionDepth: 0
    functionLinenumber: 8636
    functionLinenumberEnd: 8649
    functionName: xmlRelaxNGValidateValueContent
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGValidateValue
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGValidateValueContent(xmlRelaxNGValidCtxtPtr ctxt,
      xmlRelaxNGDefinePtr defines) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 0
    argNames:
    - 4,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 503
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void LIBXML_ATTR_FORMAT(4,0) xmlRngVErr(xmlRelaxNGValidCtxtPtr
      ctxt, xmlNodePtr node, int error, const char *msg, const xmlChar * str1, const
      xmlChar * str2){ xmlStructuredErrorFunc schannel = NULL; xmlGenericErrorFunc
      channel = NULL; void *data = NULL; int res; if (ctxt != NULL) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGFreeDocument
      Src: /src/libxml2/relaxng.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - docu
    argTypes:
    - xmlRelaxNGDocumentPtr
    constantsTouched: []
    func_position:
      end: 649
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 649
    functionName: xmlRelaxNGFreeDocumentList
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGFreeDocument
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGFreeDocumentList(xmlRelaxNGDocumentPtr docu) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:945,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:959,1
    - Dst: xmlRngVErrMemory
      Src: /src/libxml2/relaxng.c:950,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:960,1
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:955,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - ctxt
    - size
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 964
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 964
    functionName: xmlRelaxNGNewStates
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlMalloc
    - xmlRngVErrMemory
    linkageType: ''
    returnType: xmlRelaxNGStatesPtr
    signature: 'static xmlRelaxNGStatesPtr xmlRelaxNGNewStates(xmlRelaxNGValidCtxtPtr
      ctxt, int size) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGGetErrorString
      Src: /src/libxml2/relaxng.c:2157,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:2165,1
    - Dst: xmlRngVErr
      Src: /src/libxml2/relaxng.c:2163,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 6
    argNames:
    - ctxt
    - err
    - node
    - child
    - arg1
    - arg2
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGValidErr
    - xmlNodePtr
    - xmlNodePtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2166
      start: 2146
    functionDepth: 0
    functionLinenumber: 2146
    functionLinenumberEnd: 2166
    functionName: xmlRelaxNGShowValidError
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRelaxNGGetErrorString
    - xmlRngVErr
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGShowValidError(xmlRelaxNGValidCtxtPtr ctxt,
      xmlRelaxNGValidErr err, xmlNodePtr node, xmlNodePtr child, const xmlChar * arg1,
      const xmlChar * arg2) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGCompareNameClasses
      Src: /src/libxml2/relaxng.c:3694,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - def1
    - def2
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlRelaxNGDefinePtr*
    - xmlRelaxNGDefinePtr*
    constantsTouched: []
    func_position:
      end: 3702
      start: 3681
    functionDepth: 0
    functionLinenumber: 3681
    functionLinenumberEnd: 3702
    functionName: xmlRelaxNGCompareElemDefLists
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGCompareNameClasses
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGCompareElemDefLists(xmlRelaxNGParserCtxtPtr ctxt
      ATTRIBUTE_UNUSED, xmlRelaxNGDefinePtr * def1, xmlRelaxNGDefinePtr * def2) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGNewRelaxNG
      Src: /src/libxml2/relaxng.c:6398,1
    - Dst: xmlRelaxNGFree
      Src: /src/libxml2/relaxng.c:6407,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:6404,1
    - Dst: xmlRelaxNGParseGrammar
      Src: /src/libxml2/relaxng.c:6405,1
    - Dst: xmlRelaxNGNewGrammar
      Src: /src/libxml2/relaxng.c:6413,1
    - Dst: xmlRelaxNGFree
      Src: /src/libxml2/relaxng.c:6415,1
    - Dst: xmlRelaxNGParseStart
      Src: /src/libxml2/relaxng.c:6434,1
    - Dst: xmlRelaxNGCheckCycles
      Src: /src/libxml2/relaxng.c:6440,1
    - Dst: xmlRelaxNGSimplify
      Src: /src/libxml2/relaxng.c:6442,1
    - Dst: xmlRelaxNGCheckRules
      Src: /src/libxml2/relaxng.c:6448,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 6454
      start: 6388
    functionDepth: 0
    functionLinenumber: 6388
    functionLinenumberEnd: 6454
    functionName: xmlRelaxNGParseDocument
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGCheckCycles
    - xmlRelaxNGNewGrammar
    - xmlRelaxNGParseGrammar
    - xmlRelaxNGCheckRules
    - xmlRelaxNGParseStart
    - xmlRelaxNGSimplify
    - IS_RELAXNG
    - xmlRelaxNGFree
    - xmlRelaxNGNewRelaxNG
    linkageType: ''
    returnType: xmlRelaxNGPtr
    signature: 'static xmlRelaxNGPtr xmlRelaxNGParseDocument(xmlRelaxNGParserCtxtPtr
      ctxt, xmlNodePtr node) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7603,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7606,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7612,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7608,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7610,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7615,1
    - Dst: xmlRelaxNGDumpGrammar
      Src: /src/libxml2/relaxng.c:7618,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - output
    - schema
    argTypes:
    - FILE*
    - xmlRelaxNG*
    constantsTouched: []
    func_position:
      end: 7619
      start: 7597
    functionDepth: 0
    functionLinenumber: 7597
    functionLinenumberEnd: 7619
    functionName: xmlRelaxNGDump
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - fprintf
    - xmlRelaxNGDumpGrammar
    linkageType: ''
    returnType: void
    signature: 'void xmlRelaxNGDump(FILE * output, xmlRelaxNG *schema) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGFreeGrammar
      Src: /src/libxml2/relaxng.c:796,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:808,1
    - Dst: xmlRelaxNGFreeGrammar
      Src: /src/libxml2/relaxng.c:799,1
    - Dst: xmlHashFree
      Src: /src/libxml2/relaxng.c:802,1
    - Dst: xmlHashFree
      Src: /src/libxml2/relaxng.c:805,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - grammar
    argTypes:
    - xmlRelaxNGGrammarPtr
    constantsTouched: []
    func_position:
      end: 809
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 809
    functionName: xmlRelaxNGFreeGrammar
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRelaxNGFreeGrammar
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGFreeGrammar(xmlRelaxNGGrammarPtr grammar) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:915,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:913,1
    - Dst: xmlHashFree
      Src: /src/libxml2/relaxng.c:911,1
    - Dst: xmlRelaxNGFreePartition
      Src: /src/libxml2/relaxng.c:909,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:917,1
    - Dst: xmlRegFreeRegexp
      Src: /src/libxml2/relaxng.c:919,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:920,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 1
    argNames:
    - define
    argTypes:
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 921
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 921
    functionName: xmlRelaxNGFreeDefine
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFree
    - xmlRelaxNGFreePartition
    - xmlRegFreeRegexp
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGFreeDefine(xmlRelaxNGDefinePtr define) '
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: xmlCharStrdup
      Src: /src/libxml2/relaxng.c:2016,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2090,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2129,1
    - Dst: xmlEscapeFormatString
      Src: /src/libxml2/relaxng.c:2133,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2114,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2106,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2021,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2028,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2025,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/relaxng.c:2031,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2062,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2057,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/relaxng.c:2044,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2082,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2086,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2098,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/relaxng.c:2120,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2018,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2053,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2049,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/relaxng.c:2126,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/relaxng.c:2132,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2117,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/relaxng.c:2122,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2110,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2102,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/relaxng.c:2033,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2035,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2038,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/relaxng.c:2041,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2073,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2069,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2046,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2065,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2076,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/relaxng.c:2080,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:2094,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/relaxng.c:2124,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 50
    argCount: 3
    argNames:
    - err
    - arg1
    - arg2
    argTypes:
    - xmlRelaxNGValidErr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2134
      start: 1999
    functionDepth: 0
    functionLinenumber: 1999
    functionLinenumberEnd: 2134
    functionName: xmlRelaxNGGetErrorString
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlEscapeFormatString
    - snprintf
    - xmlCharStrdup
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlRelaxNGGetErrorString(xmlRelaxNGValidErr err, const
      xmlChar * arg1, const xmlChar * arg2) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libxml2/relaxng.c:3589,1
    - Dst: xmlRelaxNGCompareNameClasses
      Src: /src/libxml2/relaxng.c:3614,1
    - Dst: xmlRelaxNGElementMatch
      Src: /src/libxml2/relaxng.c:3654,1
    - Dst: xmlRelaxNGElementMatch
      Src: /src/libxml2/relaxng.c:3612,1
    - Dst: xmlRelaxNGCompareNameClasses
      Src: /src/libxml2/relaxng.c:3626,1
    - Dst: xmlRelaxNGCompareNameClasses
      Src: /src/libxml2/relaxng.c:3656,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 79
    argCount: 2
    argNames:
    - def1
    - def2
    argTypes:
    - xmlRelaxNGDefinePtr
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 3669
      start: 3580
    functionDepth: 0
    functionLinenumber: 3580
    functionLinenumberEnd: 3669
    functionName: xmlRelaxNGCompareNameClasses
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGCompareNameClasses
    - memset
    - xmlRelaxNGElementMatch
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGCompareNameClasses(xmlRelaxNGDefinePtr def1,
      xmlRelaxNGDefinePtr def2) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - cur
    - parent
    - prev
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlRelaxNGDefinePtr
    - xmlRelaxNGDefinePtr
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 5765
      start: 5744
    functionDepth: 0
    functionLinenumber: 5744
    functionLinenumberEnd: 5765
    functionName: xmlRelaxNGTryUnlink
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlRelaxNGDefinePtr
    signature: 'static xmlRelaxNGDefinePtr xmlRelaxNGTryUnlink(xmlRelaxNGParserCtxtPtr
      ctxt ATTRIBUTE_UNUSED, xmlRelaxNGDefinePtr cur, xmlRelaxNGDefinePtr parent,
      xmlRelaxNGDefinePtr prev) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGNewGrammar
      Src: /src/libxml2/relaxng.c:6326,1
    - Dst: xmlRelaxNGParseGrammarContent
      Src: /src/libxml2/relaxng.c:6347,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6353,1
    - Dst: xmlRelaxNGCombineStart
      Src: /src/libxml2/relaxng.c:6360,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6350,1
    - Dst: xmlHashScan
      Src: /src/libxml2/relaxng.c:6362,1
    - Dst: xmlHashScan
      Src: /src/libxml2/relaxng.c:6369,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - ctxt
    - nodes
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 6377
      start: 6321
    functionDepth: 0
    functionLinenumber: 6321
    functionLinenumberEnd: 6377
    functionName: xmlRelaxNGParseGrammar
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGNewGrammar
    - xmlHashScan
    - xmlRelaxNGParseGrammarContent
    - xmlRelaxNGCombineStart
    - xmlRngPErr
    linkageType: ''
    returnType: xmlRelaxNGGrammarPtr
    signature: 'static xmlRelaxNGGrammarPtr xmlRelaxNGParseGrammar(xmlRelaxNGParserCtxtPtr
      ctxt, xmlNodePtr nodes) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/relaxng.c:7179,1
    - Dst: xmlRelaxNGCleanupTree
      Src: /src/libxml2/relaxng.c:7185,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:7181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctxt
    - doc
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 7187
      start: 7171
    functionDepth: 0
    functionLinenumber: 7171
    functionLinenumberEnd: 7187
    functionName: xmlRelaxNGCleanupDoc
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlRelaxNGCleanupTree
    - xmlRngPErr
    linkageType: ''
    returnType: xmlDocPtr
    signature: 'static xmlDocPtr xmlRelaxNGCleanupDoc(xmlRelaxNGParserCtxtPtr ctxt,
      xmlDocPtr doc) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7564,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7571,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7574,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7577,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7566,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7579,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7581,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7583,1
    - Dst: xmlRelaxNGDumpDefine
      Src: /src/libxml2/relaxng.c:7584,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7585,1
    - Dst: fprintf
      Src: /src/libxml2/relaxng.c:7588,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 3
    argNames:
    - output
    - grammar
    - top
    argTypes:
    - FILE*
    - xmlRelaxNGGrammarPtr
    - int
    constantsTouched: []
    func_position:
      end: 7589
      start: 7558
    functionDepth: 0
    functionLinenumber: 7558
    functionLinenumberEnd: 7589
    functionName: xmlRelaxNGDumpGrammar
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGDumpDefine
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGDumpGrammar(FILE * output, xmlRelaxNGGrammarPtr
      grammar, int top) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegNewExecCtxt
      Src: /src/libxml2/relaxng.c:7715,1
    - Dst: xmlRegExecPushString
      Src: /src/libxml2/relaxng.c:7726,1
    - Dst: xmlRegExecPushString2
      Src: /src/libxml2/relaxng.c:7734,1
    - Dst: xmlIsBlankNode
      Src: /src/libxml2/relaxng.c:7724,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:7728,1
    - Dst: xmlRegExecPushString
      Src: /src/libxml2/relaxng.c:7737,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:7740,1
    - Dst: xmlRegExecPushString
      Src: /src/libxml2/relaxng.c:7753,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:7761,1
    - Dst: xmlRelaxNGDumpValidError
      Src: /src/libxml2/relaxng.c:7764,1
    - Dst: xmlRegFreeExecCtxt
      Src: /src/libxml2/relaxng.c:7768,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 3
    argNames:
    - ctxt
    - regexp
    - content
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRegexpPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 7778
      start: 7703
    functionDepth: 0
    functionLinenumber: 7703
    functionLinenumberEnd: 7778
    functionName: xmlRelaxNGValidateCompiledContent
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRegFreeExecCtxt
    - VALID_ERR2
    - xmlIsBlankNode
    - xmlRegExecPushString2
    - xmlRelaxNGDumpValidError
    - xmlRegNewExecCtxt
    - xmlRegExecPushString
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGValidateCompiledContent(xmlRelaxNGValidCtxtPtr
      ctxt, xmlRegexpPtr regexp, xmlNodePtr content) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/relaxng.c:774,1
    - Dst: xmlRngPErrMemory
      Src: /src/libxml2/relaxng.c:776,1
    - Dst: memset
      Src: /src/libxml2/relaxng.c:779,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 782
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 782
    functionName: xmlRelaxNGNewGrammar
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - memset
    - xmlRngPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlRelaxNGGrammarPtr
    signature: 'static xmlRelaxNGGrammarPtr xmlRelaxNGNewGrammar(xmlRelaxNGParserCtxtPtr
      ctxt) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:1475,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/relaxng.c:1477,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/relaxng.c:1478,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:1479,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:1480,1
    - Dst: xmlRelaxNGNormExtSpace
      Src: /src/libxml2/relaxng.c:1481,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:1483,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/relaxng.c:1485,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/relaxng.c:1486,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:1488,1
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:1490,1
    - Dst: xmlRelaxNGRemoveRedefine
      Src: /src/libxml2/relaxng.c:1499,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/relaxng.c:1500,1
    - Dst: xmlRelaxNGRemoveRedefine
      Src: /src/libxml2/relaxng.c:1506,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:1497,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 4
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - target
    - name
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlChar*
    - xmlNodePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1513
      start: 1463
    functionDepth: 0
    functionLinenumber: 1463
    functionLinenumberEnd: 1513
    functionName: xmlRelaxNGRemoveRedefine
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlUnlinkNode
    - xmlDocGetRootElement
    - xmlRelaxNGRemoveRedefine
    - xmlFreeNode
    - xmlStrEqual
    - xmlGetProp
    - IS_RELAXNG
    - xmlRelaxNGNormExtSpace
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGRemoveRedefine(xmlRelaxNGParserCtxtPtr ctxt,
      const xmlChar * URL ATTRIBUTE_UNUSED, xmlNodePtr target, const xmlChar * name) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2214,1
    - Dst: xmlRelaxNGShowValidError
      Src: /src/libxml2/relaxng.c:2219,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:2226,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:2215,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:2229,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 2235
      start: 2202
    functionDepth: 0
    functionLinenumber: 2202
    functionLinenumberEnd: 2235
    functionName: xmlRelaxNGDumpValidError
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrEqual
    - xmlRelaxNGShowValidError
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGDumpValidError(xmlRelaxNGValidCtxtPtr ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGCheckCycles
      Src: /src/libxml2/relaxng.c:5717,1
    - Dst: xmlRelaxNGCheckCycles
      Src: /src/libxml2/relaxng.c:5728,1
    - Dst: xmlRelaxNGCheckCycles
      Src: /src/libxml2/relaxng.c:5726,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5720,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - ctxt
    - cur
    - depth
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlRelaxNGDefinePtr
    - int
    constantsTouched: []
    func_position:
      end: 5733
      start: 5706
    functionDepth: 0
    functionLinenumber: 5706
    functionLinenumberEnd: 5733
    functionName: xmlRelaxNGCheckCycles
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRngPErr
    - xmlRelaxNGCheckCycles
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGCheckCycles(xmlRelaxNGParserCtxtPtr ctxt, xmlRelaxNGDefinePtr
      cur, int depth) '
  - BBCount: 76
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeNode
      Src: /src/libxml2/relaxng.c:6740,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:6768,1
    - Dst: xmlBuildURI
      Src: /src/libxml2/relaxng.c:6815,1
    - Dst: xmlNewChild
      Src: /src/libxml2/relaxng.c:6916,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:6912,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6931,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:7058,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6950,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6797,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6785,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6825,1
    - Dst: xmlBuildURI
      Src: /src/libxml2/relaxng.c:6862,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:7048,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:7066,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/relaxng.c:7077,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:7112,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/relaxng.c:7158,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6936,1
    - Dst: xmlUnsetProp
      Src: /src/libxml2/relaxng.c:6935,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6840,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6877,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:6883,1
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/relaxng.c:6982,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6902,1
    - Dst: xmlNewDocText
      Src: /src/libxml2/relaxng.c:6925,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6951,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:6773,1
    - Dst: xmlSplitQName2
      Src: /src/libxml2/relaxng.c:6984,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6990,1
    - Dst: xmlParseURI
      Src: /src/libxml2/relaxng.c:6789,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6944,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6949,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6868,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6835,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:7016,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:7082,1
    - Dst: xmlSetProp
      Src: /src/libxml2/relaxng.c:6972,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/relaxng.c:6807,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:6853,1
    - Dst: xmlAddPrevSibling
      Src: /src/libxml2/relaxng.c:6924,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6893,1
    - Dst: xmlRelaxNGCleanupTree
      Src: /src/libxml2/relaxng.c:7027,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:7043,1
    - Dst: xmlNodeGetBase
      Src: /src/libxml2/relaxng.c:6861,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6839,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:6878,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6781,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6830,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:7024,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6751,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6754,1
    - Dst: xmlRelaxNGCleanupAttributes
      Src: /src/libxml2/relaxng.c:6761,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6845,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6870,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6903,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6943,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6855,1
    - Dst: xmlHasProp
      Src: /src/libxml2/relaxng.c:6956,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:7008,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6753,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:6779,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6802,1
    - Dst: xmlNodeGetBase
      Src: /src/libxml2/relaxng.c:6814,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6817,1
    - Dst: xmlRelaxNGLoadInclude
      Src: /src/libxml2/relaxng.c:6889,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6976,1
    - Dst: xmlSetProp
      Src: /src/libxml2/relaxng.c:6995,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:7038,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/relaxng.c:6739,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6752,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6848,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6864,1
    - Dst: xmlSearchNs
      Src: /src/libxml2/relaxng.c:6988,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:7010,1
    - Dst: xmlHasProp
      Src: /src/libxml2/relaxng.c:7072,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6846,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/relaxng.c:6921,1
    - Dst: xmlAddChild
      Src: /src/libxml2/relaxng.c:6926,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6806,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6821,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6832,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6999,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/relaxng.c:7157,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6762,1
    - Dst: xmlRelaxNGLoadExternalRef
      Src: /src/libxml2/relaxng.c:6833,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:6937,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6900,1
    - Dst: xmlSetProp
      Src: /src/libxml2/relaxng.c:6946,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6791,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6891,1
    - Dst: xmlSetProp
      Src: /src/libxml2/relaxng.c:6940,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:7110,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:6963,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:6748,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6875,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:7000,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:7002,1
    - Dst: xmlRelaxNGCleanupTree
      Src: /src/libxml2/relaxng.c:7034,1
    - Dst: xmlSetProp
      Src: /src/libxml2/relaxng.c:7073,1
    - Dst: xmlAddNextSibling
      Src: /src/libxml2/relaxng.c:7078,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6795,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6809,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/relaxng.c:6813,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6823,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6896,1
    - Dst: xmlSetProp
      Src: /src/libxml2/relaxng.c:6970,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:6973,1
    - Dst: xmlNodeSetContent
      Src: /src/libxml2/relaxng.c:6997,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:7031,1
    - Dst: IS_BLANK_NODE
      Src: /src/libxml2/relaxng.c:7107,1
    CyclomaticComplexity: 132
    EdgeCount: 132
    ICount: 346
    argCount: 2
    argNames:
    - ctxt
    - root
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 7161
      start: 6730
    functionDepth: 0
    functionLinenumber: 6730
    functionLinenumberEnd: 7161
    functionName: xmlRelaxNGCleanupTree
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlAddPrevSibling
    - xmlFreeURI
    - xmlNodeGetBase
    - xmlSplitQName2
    - xmlRelaxNGLoadInclude
    - xmlNodeGetContent
    - xmlRelaxNGCleanupAttributes
    - xmlSetProp
    - xmlUnsetProp
    - xmlAddChild
    - xmlNodeSetContent
    - xmlRelaxNGCleanupTree
    - xmlRngPErr
    - xmlAddNextSibling
    - xmlHasProp
    - xmlFree
    - xmlUnlinkNode
    - xmlParseURI
    - xmlNewChild
    - IS_BLANK_NODE
    - xmlBuildURI
    - xmlRelaxNGLoadExternalRef
    - xmlFreeNode
    - xmlNewDocText
    - xmlStrEqual
    - xmlNewDocNode
    - xmlGetProp
    - xmlSearchNs
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGCleanupTree(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr
      root) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:9242,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:9249,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:9251,1
    - Dst: VALID_ERR3
      Src: /src/libxml2/relaxng.c:9243,1
    - Dst: VALID_ERR3
      Src: /src/libxml2/relaxng.c:9252,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:9258,1
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:9261,1
    - Dst: xmlRelaxNGElementMatch
      Src: /src/libxml2/relaxng.c:9279,1
    - Dst: xmlRelaxNGElementMatch
      Src: /src/libxml2/relaxng.c:9306,1
    - Dst: xmlRelaxNGDumpValidError
      Src: /src/libxml2/relaxng.c:9322,1
    - Dst: xmlRelaxNGPopErrors
      Src: /src/libxml2/relaxng.c:9325,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 92
    argCount: 3
    argNames:
    - ctxt
    - define
    - elem
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGDefinePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 9337
      start: 9235
    functionDepth: 0
    functionLinenumber: 9235
    functionLinenumberEnd: 9337
    functionName: xmlRelaxNGElementMatch
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGElementMatch
    - VALID_ERR3
    - VALID_ERR2
    - xmlRelaxNGDumpValidError
    - xmlStrEqual
    - xmlRelaxNGPopErrors
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGElementMatch(xmlRelaxNGValidCtxtPtr ctxt, xmlRelaxNGDefinePtr
      define, xmlNodePtr elem) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 1452
      start: 1437
    functionDepth: 0
    functionLinenumber: 1437
    functionLinenumberEnd: 1452
    functionName: xmlRelaxNGIncludePop
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlRelaxNGIncludePtr
    signature: 'static xmlRelaxNGIncludePtr xmlRelaxNGIncludePop(xmlRelaxNGParserCtxtPtr
      ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:2184,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:2187,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - ctxt
    - level
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 2195
      start: 2174
    functionDepth: 0
    functionLinenumber: 2174
    functionLinenumberEnd: 2195
    functionName: xmlRelaxNGPopErrors
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGPopErrors(xmlRelaxNGValidCtxtPtr ctxt, int level) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: IS_RELAXNG
      Src: /src/libxml2/relaxng.c:4977,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4988,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4993,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4983,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4978,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4999,1
    - Dst: xmlRelaxNGParseNameClass
      Src: /src/libxml2/relaxng.c:5007,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - ctxt
    - node
    - attr
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 5019
      start: 4970
    functionDepth: 0
    functionLinenumber: 4970
    functionLinenumberEnd: 5019
    functionName: xmlRelaxNGParseExceptNameClass
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRngPErr
    - IS_RELAXNG
    - xmlRelaxNGNewDefine
    - xmlRelaxNGParseNameClass
    linkageType: ''
    returnType: xmlRelaxNGDefinePtr
    signature: 'static xmlRelaxNGDefinePtr xmlRelaxNGParseExceptNameClass(xmlRelaxNGParserCtxtPtr
      ctxt, xmlNodePtr node, int attr) '
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGCheckRules
      Src: /src/libxml2/relaxng.c:6083,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6066,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6086,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6099,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6133,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6165,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6185,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6202,1
    - Dst: xmlRelaxNGCheckRules
      Src: /src/libxml2/relaxng.c:6221,1
    - Dst: xmlRelaxNGCheckRules
      Src: /src/libxml2/relaxng.c:6230,1
    - Dst: xmlRelaxNGCheckRules
      Src: /src/libxml2/relaxng.c:6280,1
    - Dst: xmlRelaxNGCheckChoiceDeterminism
      Src: /src/libxml2/relaxng.c:6278,1
    - Dst: xmlRelaxNGCheckGroupAttrs
      Src: /src/libxml2/relaxng.c:6199,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6015,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6031,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6051,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6061,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6078,1
    - Dst: xmlRelaxNGCheckRules
      Src: /src/libxml2/relaxng.c:6139,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6144,1
    - Dst: xmlRelaxNGCheckRules
      Src: /src/libxml2/relaxng.c:6155,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6170,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6212,1
    - Dst: xmlRelaxNGCheckRules
      Src: /src/libxml2/relaxng.c:6283,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6242,1
    - Dst: xmlRelaxNGMaxContentType
      Src: /src/libxml2/relaxng.c:6297,1
    - Dst: xmlRelaxNGGroupContentType
      Src: /src/libxml2/relaxng.c:6306,1
    - Dst: xmlRelaxNGGroupContentType
      Src: /src/libxml2/relaxng.c:6287,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6250,1
    - Dst: xmlRelaxNGGroupContentType
      Src: /src/libxml2/relaxng.c:6293,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6027,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6056,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6094,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6109,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6119,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6129,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6160,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6180,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6207,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6272,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6260,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6255,1
    - Dst: xmlRelaxNGCheckRules
      Src: /src/libxml2/relaxng.c:6238,1
    - Dst: xmlRelaxNGCheckRules
      Src: /src/libxml2/relaxng.c:6246,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6234,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6021,1
    - Dst: xmlRelaxNGCheckRules
      Src: /src/libxml2/relaxng.c:6037,1
    - Dst: xmlRelaxNGCheckGroupAttrs
      Src: /src/libxml2/relaxng.c:6049,1
    - Dst: xmlRelaxNGCheckRules
      Src: /src/libxml2/relaxng.c:6076,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6104,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6114,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6149,1
    - Dst: xmlRelaxNGGroupContentType
      Src: /src/libxml2/relaxng.c:6157,1
    - Dst: xmlRelaxNGCheckRules
      Src: /src/libxml2/relaxng.c:6176,1
    - Dst: xmlRelaxNGCheckRules
      Src: /src/libxml2/relaxng.c:6194,1
    - Dst: xmlRelaxNGMaxContentType
      Src: /src/libxml2/relaxng.c:6295,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:6267,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 240
    argCount: 4
    argNames:
    - ctxt
    - cur
    - flags
    - ptype
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlRelaxNGDefinePtr
    - int
    - xmlRelaxNGType
    constantsTouched: []
    func_position:
      end: 6311
      start: 5996
    functionDepth: 0
    functionLinenumber: 5996
    functionLinenumberEnd: 6311
    functionName: xmlRelaxNGCheckRules
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRelaxNGCheckChoiceDeterminism
    - xmlRelaxNGGroupContentType
    - xmlRelaxNGCheckRules
    - xmlRelaxNGMaxContentType
    - xmlRngPErr
    - xmlRelaxNGCheckGroupAttrs
    linkageType: ''
    returnType: xmlRelaxNGContentType
    signature: 'static xmlRelaxNGContentType xmlRelaxNGCheckRules(xmlRelaxNGParserCtxtPtr
      ctxt, xmlRelaxNGDefinePtr cur, int flags, xmlRelaxNGType ptype) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGValidateAttribute
      Src: /src/libxml2/relaxng.c:8824,1
    - Dst: VALID_ERR
      Src: /src/libxml2/relaxng.c:8840,1
    - Dst: xmlRelaxNGValidateDefinition
      Src: /src/libxml2/relaxng.c:8836,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - ctxt
    - defines
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 8850
      start: 8813
    functionDepth: 0
    functionLinenumber: 8813
    functionLinenumberEnd: 8850
    functionName: xmlRelaxNGValidateAttributeList
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - VALID_ERR
    - xmlRelaxNGValidateDefinition
    - xmlRelaxNGValidateAttribute
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGValidateAttributeList(xmlRelaxNGValidCtxtPtr
      ctxt, xmlRelaxNGDefinePtr defines) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VALID_ERR2
      Src: /src/libxml2/relaxng.c:9206,1
    - Dst: xmlRelaxNGValidateDefinition
      Src: /src/libxml2/relaxng.c:9212,1
    - Dst: VALID_ERR
      Src: /src/libxml2/relaxng.c:9216,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - ctxt
    - defines
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 9225
      start: 9198
    functionDepth: 0
    functionLinenumber: 9198
    functionLinenumberEnd: 9225
    functionName: xmlRelaxNGValidateDefinitionList
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - VALID_ERR
    - xmlRelaxNGValidateDefinition
    - VALID_ERR2
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGValidateDefinitionList(xmlRelaxNGValidCtxtPtr
      ctxt, xmlRelaxNGDefinePtr defines) '
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:4895,1
    - Dst: xmlRelaxNGParseNameClass
      Src: /src/libxml2/relaxng.c:4909,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4941,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4902,1
    - Dst: xmlRelaxNGParsePattern
      Src: /src/libxml2/relaxng.c:4914,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4946,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:4955,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 32
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 4960
      start: 4888
    functionDepth: 0
    functionLinenumber: 4888
    functionLinenumberEnd: 4960
    functionName: xmlRelaxNGParseAttribute
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRngPErr
    - xmlRelaxNGParsePattern
    - xmlRelaxNGNewDefine
    - xmlRelaxNGParseNameClass
    linkageType: ''
    returnType: xmlRelaxNGDefinePtr
    signature: 'static xmlRelaxNGDefinePtr xmlRelaxNGParseAttribute(xmlRelaxNGParserCtxtPtr
      ctxt, xmlNodePtr node) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:5622,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:5632,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5636,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5624,1
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:5628,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:5640,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5644,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5649,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:5653,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5658,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:5668,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/relaxng.c:5679,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5681,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5690,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:5687,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/relaxng.c:5688,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 2
    argNames:
    - ctxt
    - grammar
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlRelaxNGGrammarPtr
    constantsTouched: []
    func_position:
      end: 5696
      start: 5606
    functionDepth: 0
    functionLinenumber: 5606
    functionLinenumberEnd: 5696
    functionName: xmlRelaxNGCombineStart
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRelaxNGNewDefine
    - xmlHashAddEntry
    - xmlHashCreate
    - xmlStrEqual
    - xmlRngPErr
    - xmlGetProp
    - snprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGCombineStart(xmlRelaxNGParserCtxtPtr ctxt, xmlRelaxNGGrammarPtr
      grammar) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - ct1
    - ct2
    argTypes:
    - xmlRelaxNGContentType
    - xmlRelaxNGContentType
    constantsTouched: []
    func_position:
      end: 5985
      start: 5971
    functionDepth: 0
    functionLinenumber: 5971
    functionLinenumberEnd: 5985
    functionName: xmlRelaxNGMaxContentType
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlRelaxNGContentType
    signature: 'static xmlRelaxNGContentType xmlRelaxNGMaxContentType(xmlRelaxNGContentType
      ct1, xmlRelaxNGContentType ct2) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - ctxt
    - err
    - warn
    - ctx
    argTypes:
    - xmlRelaxNGParserCtxt*
    - xmlRelaxNGValidityErrorFunc
    - xmlRelaxNGValidityWarningFunc
    - void*
    constantsTouched: []
    func_position:
      end: 7346
      start: 7335
    functionDepth: 0
    functionLinenumber: 7335
    functionLinenumberEnd: 7346
    functionName: xmlRelaxNGSetParserErrors
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxt *ctxt, xmlRelaxNGValidityErrorFunc
      err, xmlRelaxNGValidityWarningFunc warn, void *ctx) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:8735,1
    - Dst: xmlNodeListGetString
      Src: /src/libxml2/relaxng.c:8746,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:8756,1
    - Dst: xmlRelaxNGValidateValueContent
      Src: /src/libxml2/relaxng.c:8752,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:8739,1
    - Dst: xmlRelaxNGAttributeMatch
      Src: /src/libxml2/relaxng.c:8773,1
    - Dst: xmlNodeListGetString
      Src: /src/libxml2/relaxng.c:8779,1
    - Dst: xmlRelaxNGValidateValueContent
      Src: /src/libxml2/relaxng.c:8784,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:8788,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 77
    argCount: 2
    argNames:
    - ctxt
    - define
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    - xmlRelaxNGDefinePtr
    constantsTouched: []
    func_position:
      end: 8804
      start: 8721
    functionDepth: 0
    functionLinenumber: 8721
    functionLinenumberEnd: 8804
    functionName: xmlRelaxNGValidateAttribute
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlNodeListGetString
    - xmlRelaxNGAttributeMatch
    - xmlStrEqual
    - xmlRelaxNGValidateValueContent
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGValidateAttribute(xmlRelaxNGValidCtxtPtr ctxt,
      xmlRelaxNGDefinePtr define) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetPredefinedType
      Src: /src/libxml2/relaxng.c:2343,1
    - Dst: xmlSchemaValPredefTypeNode
      Src: /src/libxml2/relaxng.c:2348,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 12
    argCount: 5
    argNames:
    - ATTRIBUTE_UNUSED
    - type
    - value
    - result
    - node
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - void**
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2357
      start: 2332
    functionDepth: 0
    functionLinenumber: 2332
    functionLinenumberEnd: 2357
    functionName: xmlRelaxNGSchemaTypeCheck
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetPredefinedType
    - xmlSchemaValPredefTypeNode
    linkageType: ''
    returnType: int
    signature: 'static int xmlRelaxNGSchemaTypeCheck(void *data ATTRIBUTE_UNUSED,
      const xmlChar * type, const xmlChar * value, void **result, xmlNodePtr node) '
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:5179,1
    - Dst: xmlRelaxNGParsePattern
      Src: /src/libxml2/relaxng.c:5205,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5196,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5186,1
    - Dst: xmlRelaxNGParseNameClass
      Src: /src/libxml2/relaxng.c:5191,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:5231,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5248,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5253,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5258,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5263,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 55
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5273
      start: 5172
    functionDepth: 0
    functionLinenumber: 5172
    functionLinenumberEnd: 5273
    functionName: xmlRelaxNGParseElement
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlRngPErr
    - xmlRelaxNGParsePattern
    - xmlRelaxNGNewDefine
    - xmlRelaxNGParseNameClass
    linkageType: ''
    returnType: xmlRelaxNGDefinePtr
    signature: 'static xmlRelaxNGDefinePtr xmlRelaxNGParseElement(xmlRelaxNGParserCtxtPtr
      ctxt, xmlNodePtr node) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetProp
      Src: /src/libxml2/relaxng.c:5506,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:5516,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/relaxng.c:5508,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5520,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5512,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5525,1
    - Dst: xmlFree
      Src: /src/libxml2/relaxng.c:5529,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5534,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:5544,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:5559,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5582,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:5591,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/relaxng.c:5580,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/relaxng.c:5589,1
    - Dst: snprintf
      Src: /src/libxml2/relaxng.c:5588,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 78
    argCount: 3
    argNames:
    - payload
    - data
    - name
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5597
      start: 5492
    functionDepth: 0
    functionLinenumber: 5492
    functionLinenumberEnd: 5597
    functionName: xmlRelaxNGCheckCombine
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRelaxNGNewDefine
    - xmlHashAddEntry
    - xmlHashCreate
    - xmlStrEqual
    - xmlRngPErr
    - xmlGetProp
    - snprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlRelaxNGCheckCombine(void *payload, void *data, const
      xmlChar * name) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/relaxng.c:7229,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:7254,1
    - Dst: xmlRelaxReadFile
      Src: /src/libxml2/relaxng.c:7213,1
    - Dst: xmlRelaxNGCleanupDoc
      Src: /src/libxml2/relaxng.c:7242,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/relaxng.c:7244,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/relaxng.c:7258,1
    - Dst: xmlRelaxNGParseDocument
      Src: /src/libxml2/relaxng.c:7262,1
    - Dst: xmlRelaxNGFree
      Src: /src/libxml2/relaxng.c:7283,1
    - Dst: xmlRelaxReadMemory
      Src: /src/libxml2/relaxng.c:7221,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:7223,1
    - Dst: xmlStrdup
      Src: /src/libxml2/relaxng.c:7228,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/relaxng.c:7252,1
    - Dst: xmlHashScan
      Src: /src/libxml2/relaxng.c:7276,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/relaxng.c:7264,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/relaxng.c:7285,1
    - Dst: xmlRelaxNGTryCompile
      Src: /src/libxml2/relaxng.c:7303,1
    - Dst: xmlRelaxNGInitTypes
      Src: /src/libxml2/relaxng.c:7204,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:7215,1
    - Dst: xmlRngPErr
      Src: /src/libxml2/relaxng.c:7233,1
    - Dst: xmlRelaxNGNewDefine
      Src: /src/libxml2/relaxng.c:7296,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 79
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRelaxNGParserCtxt*
    constantsTouched: []
    func_position:
      end: 7323
      start: 7197
    functionDepth: 0
    functionLinenumber: 7197
    functionLinenumberEnd: 7323
    functionName: xmlRelaxNGParse
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlRelaxNGNewDefine
    - xmlHashScan
    - xmlRelaxReadMemory
    - xmlRelaxNGTryCompile
    - xmlRelaxNGInitTypes
    - xmlStrdup
    - xmlRelaxNGCleanupDoc
    - xmlFreeDoc
    - xmlRelaxReadFile
    - xmlRngPErr
    - xmlRelaxNGParseDocument
    - xmlRelaxNGFree
    linkageType: ''
    returnType: xmlRelaxNG*
    signature: 'xmlRelaxNG *xmlRelaxNGParse(xmlRelaxNGParserCtxt *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ctxt
    - serror
    - ctx
    argTypes:
    - xmlRelaxNGParserCtxt*
    - xmlStructuredErrorFunc
    - void*
    constantsTouched: []
    func_position:
      end: 7391
      start: 7380
    functionDepth: 0
    functionLinenumber: 7380
    functionLinenumberEnd: 7391
    functionName: xmlRelaxNGSetParserStructuredErrors
    functionSourceFile: /src/libxml2/relaxng.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void xmlRelaxNGSetParserStructuredErrors(xmlRelaxNGParserCtxt *ctxt,\t\t\t\t
      xmlStructuredErrorFunc serror,\t\t\t\t void *ctx) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUF_ERROR
      Src: /src/libxml2/buf.c:216,1
    - Dst: BUF_STATIC
      Src: /src/libxml2/buf.c:216,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - buf
    argTypes:
    - xmlBuf*
    constantsTouched: []
    func_position:
      end: 225
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 225
    functionName: xmlBufEmpty
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - BUF_ERROR
    - BUF_STATIC
    linkageType: ''
    returnType: void
    signature: 'void xmlBufEmpty(xmlBuf *buf) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUF_ERROR
      Src: /src/libxml2/buf.c:360,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - xmlBuf*
    constantsTouched: []
    func_position:
      end: 364
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 364
    functionName: xmlBufContent
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - BUF_ERROR
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlBufContent(const xmlBuf *buf) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUF_ERROR
      Src: /src/libxml2/buf.c:375,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - xmlBuf*
    constantsTouched: []
    func_position:
      end: 379
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 379
    functionName: xmlBufEnd
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - BUF_ERROR
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlBufEnd(xmlBuf *buf) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUF_ERROR
      Src: /src/libxml2/buf.c:459,1
    - Dst: xmlBufGrowInternal
      Src: /src/libxml2/buf.c:467,1
    - Dst: memmove
      Src: /src/libxml2/buf.c:471,1
    - Dst: BUF_STATIC
      Src: /src/libxml2/buf.c:459,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 3
    argNames:
    - buf
    - str
    - len
    argTypes:
    - xmlBuf*
    - xmlChar*
    - size_t
    constantsTouched: []
    func_position:
      end: 476
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 476
    functionName: xmlBufAdd
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - BUF_ERROR
    - BUF_STATIC
    - memmove
    - xmlBufGrowInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlBufAdd(xmlBuf *buf, const xmlChar *str, size_t len) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUF_ERROR
      Src: /src/libxml2/buf.c:552,1
    - Dst: xmlFree
      Src: /src/libxml2/buf.c:572,1
    - Dst: xmlBufFree
      Src: /src/libxml2/buf.c:554,1
    - Dst: BUF_STATIC
      Src: /src/libxml2/buf.c:552,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - buf
    - ret
    argTypes:
    - xmlBuf*
    - xmlBuffer*
    constantsTouched: []
    func_position:
      end: 574
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 574
    functionName: xmlBufBackToBuffer
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlBufFree
    - BUF_ERROR
    - BUF_STATIC
    - xmlFree
    linkageType: ''
    returnType: int
    signature: 'int xmlBufBackToBuffer(xmlBuf *buf, xmlBuffer *ret) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - input
    - pos
    argTypes:
    - xmlBuf*
    - xmlParserInput*
    - size_t
    constantsTouched: []
    func_position:
      end: 611
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 611
    functionName: xmlBufUpdateInput
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlBufUpdateInput(xmlBuf *buf, xmlParserInput *input, size_t pos) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlBuffer*
    - xmlBufferAllocationScheme
    constantsTouched: []
    func_position:
      end: 773
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 773
    functionName: xmlBufferSetAllocationScheme
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlBufferSetAllocationScheme(xmlBuffer *buf ATTRIBUTE_UNUSED,
      xmlBufferAllocationScheme scheme ATTRIBUTE_UNUSED) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - buf
    argTypes:
    - xmlBuffer*
    constantsTouched: []
    func_position:
      end: 814
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 814
    functionName: xmlBufferEmpty
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlBufferEmpty(xmlBuffer *buf) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/buf.c:881,1
    - Dst: memcpy
      Src: /src/libxml2/buf.c:885,1
    - Dst: xmlRealloc
      Src: /src/libxml2/buf.c:888,1
    - Dst: xmlFree
      Src: /src/libxml2/buf.c:886,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - xmlBuffer*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 899
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 899
    functionName: xmlBufferGrow
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRealloc
    - xmlMalloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: 'int xmlBufferGrow(xmlBuffer *buf, unsigned int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferAdd
      Src: /src/libxml2/buf.c:1093,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - string
    argTypes:
    - xmlBuffer*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1094
      start: 1091
    functionDepth: 0
    functionLinenumber: 1091
    functionLinenumberEnd: 1094
    functionName: xmlBufferWriteCHAR
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlBufferAdd
    linkageType: ''
    returnType: void
    signature: 'void xmlBufferWriteCHAR(xmlBuffer *buf, const xmlChar *string) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUF_ERROR
      Src: /src/libxml2/buf.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - xmlBufPtr
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: xmlBufMemoryError
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - BUF_ERROR
    linkageType: ''
    returnType: void
    signature: 'static void xmlBufMemoryError(xmlBufPtr buf) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUF_STATIC
      Src: /src/libxml2/buf.c:204,1
    - Dst: xmlFree
      Src: /src/libxml2/buf.c:205,1
    - Dst: xmlFree
      Src: /src/libxml2/buf.c:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - xmlBuf*
    constantsTouched: []
    func_position:
      end: 207
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 207
    functionName: xmlBufFree
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlFree
    - BUF_STATIC
    linkageType: ''
    returnType: void
    signature: 'void xmlBufFree(xmlBuf *buf) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUF_ERROR
      Src: /src/libxml2/buf.c:339,1
    - Dst: BUF_STATIC
      Src: /src/libxml2/buf.c:339,1
    - Dst: xmlBufGrowInternal
      Src: /src/libxml2/buf.c:345,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - xmlBuf*
    - size_t
    constantsTouched: []
    func_position:
      end: 349
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 349
    functionName: xmlBufGrow
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - BUF_ERROR
    - BUF_STATIC
    - xmlBufGrowInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlBufGrow(xmlBuf *buf, size_t len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUF_ERROR
      Src: /src/libxml2/buf.c:441,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - xmlBuf*
    constantsTouched: []
    func_position:
      end: 445
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 445
    functionName: xmlBufIsEmpty
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - BUF_ERROR
    linkageType: ''
    returnType: int
    signature: 'int xmlBufIsEmpty(xmlBuf *buf) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/buf.c:653,1
    - Dst: xmlFree
      Src: /src/libxml2/buf.c:662,1
    - Dst: xmlMalloc
      Src: /src/libxml2/buf.c:660,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 669
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 669
    functionName: xmlBufferCreate
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlMalloc
    linkageType: ''
    returnType: xmlBuffer*
    signature: 'xmlBuffer *xmlBufferCreate(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrndup
      Src: /src/libxml2/buf.c:728,1
    - Dst: xmlFree
      Src: /src/libxml2/buf.c:729,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - buf
    argTypes:
    - xmlBuffer*
    constantsTouched: []
    func_position:
      end: 740
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 740
    functionName: xmlBufferDetach
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlBufferDetach(xmlBuffer *buf) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferCreateSize
      Src: /src/libxml2/buf.c:755,1
    - Dst: xmlBufferAdd
      Src: /src/libxml2/buf.c:757,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - mem
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 759
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 759
    functionName: xmlBufferCreateStatic
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlBufferAdd
    - xmlBufferCreateSize
    linkageType: ''
    returnType: xmlBuffer*
    signature: 'xmlBuffer *xmlBufferCreateStatic(void *mem, size_t size) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/buf.c:786,1
    - Dst: xmlFree
      Src: /src/libxml2/buf.c:788,1
    - Dst: xmlFree
      Src: /src/libxml2/buf.c:790,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - xmlBuffer*
    constantsTouched: []
    func_position:
      end: 791
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 791
    functionName: xmlBufferFree
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xmlBufferFree(xmlBuffer *buf) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/libxml2/buf.c:840,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - xmlBuffer*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 844
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 844
    functionName: xmlBufferShrink
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - memmove
    linkageType: ''
    returnType: int
    signature: 'int xmlBufferShrink(xmlBuffer *buf, unsigned int len) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/buf.c:90,1
    - Dst: xmlFree
      Src: /src/libxml2/buf.c:101,1
    - Dst: xmlMalloc
      Src: /src/libxml2/buf.c:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 108
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 108
    functionName: xmlBufCreate
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlMalloc
    linkageType: ''
    returnType: xmlBuf*
    signature: 'xmlBuf *xmlBufCreate(size_t size) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/libxml2/buf.c:281,1
    - Dst: xmlRealloc
      Src: /src/libxml2/buf.c:304,1
    - Dst: xmlBufOverflowError
      Src: /src/libxml2/buf.c:288,1
    - Dst: xmlMalloc
      Src: /src/libxml2/buf.c:310,1
    - Dst: xmlBufMemoryError
      Src: /src/libxml2/buf.c:306,1
    - Dst: xmlBufMemoryError
      Src: /src/libxml2/buf.c:312,1
    - Dst: memcpy
      Src: /src/libxml2/buf.c:316,1
    - Dst: xmlFree
      Src: /src/libxml2/buf.c:317,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - xmlBufPtr
    - size_t
    constantsTouched: []
    func_position:
      end: 325
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 325
    functionName: xmlBufGrowInternal
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memcpy
    - xmlBufOverflowError
    - xmlRealloc
    - memmove
    - xmlBufMemoryError
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlBufGrowInternal(xmlBufPtr buf, size_t len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 640
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 640
    functionName: xmlGetBufferAllocationScheme
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlBufferAllocationScheme
    signature: 'xmlBufferAllocationScheme xmlGetBufferAllocationScheme(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/buf.c:684,1
    - Dst: xmlMalloc
      Src: /src/libxml2/buf.c:693,1
    - Dst: xmlFree
      Src: /src/libxml2/buf.c:695,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 706
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 706
    functionName: xmlBufferCreateSize
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlMalloc
    linkageType: ''
    returnType: xmlBuffer*
    signature: 'xmlBuffer *xmlBufferCreateSize(size_t size) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrchr
      Src: /src/libxml2/buf.c:1124,1
    - Dst: xmlBufferAdd
      Src: /src/libxml2/buf.c:1131,1
    - Dst: xmlBufferAdd
      Src: /src/libxml2/buf.c:1132,1
    - Dst: xmlBufferCCat
      Src: /src/libxml2/buf.c:1126,1
    - Dst: xmlStrchr
      Src: /src/libxml2/buf.c:1125,1
    - Dst: xmlBufferAdd
      Src: /src/libxml2/buf.c:1141,1
    - Dst: xmlBufferCCat
      Src: /src/libxml2/buf.c:1142,1
    - Dst: xmlBufferCCat
      Src: /src/libxml2/buf.c:1145,1
    - Dst: xmlBufferCat
      Src: /src/libxml2/buf.c:1146,1
    - Dst: xmlBufferCCat
      Src: /src/libxml2/buf.c:1147,1
    - Dst: xmlBufferCCat
      Src: /src/libxml2/buf.c:1150,1
    - Dst: xmlBufferCCat
      Src: /src/libxml2/buf.c:1152,1
    - Dst: xmlBufferCat
      Src: /src/libxml2/buf.c:1151,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - buf
    - string
    argTypes:
    - xmlBuffer*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1154
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1154
    functionName: xmlBufferWriteQuotedString
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlStrchr
    - xmlBufferAdd
    - xmlBufferCat
    - xmlBufferCCat
    linkageType: ''
    returnType: void
    signature: 'void xmlBufferWriteQuotedString(xmlBuffer *buf, const xmlChar *string) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUF_ERROR
      Src: /src/libxml2/buf.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - xmlBufPtr
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: xmlBufOverflowError
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - BUF_ERROR
    linkageType: ''
    returnType: void
    signature: 'static void xmlBufOverflowError(xmlBufPtr buf) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUF_ERROR
      Src: /src/libxml2/buf.c:242,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - xmlBuf*
    - size_t
    constantsTouched: []
    func_position:
      end: 255
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 255
    functionName: xmlBufShrink
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - BUF_ERROR
    linkageType: ''
    returnType: size_t
    signature: 'size_t xmlBufShrink(xmlBuf *buf, size_t len) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/buf.c:508,1
    - Dst: xmlBufMemoryError
      Src: /src/libxml2/buf.c:521,1
    - Dst: xmlMalloc
      Src: /src/libxml2/buf.c:518,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - xmlBuffer*
    constantsTouched: []
    func_position:
      end: 534
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 534
    functionName: xmlBufFromBuffer
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlBufMemoryError
    - xmlMalloc
    linkageType: ''
    returnType: xmlBuf*
    signature: 'xmlBuf *xmlBufFromBuffer(xmlBuffer *buffer) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferGrow
      Src: /src/libxml2/buf.c:970,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - xmlBuffer*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 973
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 973
    functionName: xmlBufferResize
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlBufferGrow
    linkageType: ''
    returnType: int
    signature: 'int xmlBufferResize(xmlBuffer *buf, unsigned int size) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrlen
      Src: /src/libxml2/buf.c:1023,1
    - Dst: memmove
      Src: /src/libxml2/buf.c:1042,1
    - Dst: memmove
      Src: /src/libxml2/buf.c:1041,1
    - Dst: xmlBufferGrow
      Src: /src/libxml2/buf.c:1051,1
    - Dst: memmove
      Src: /src/libxml2/buf.c:1035,1
    - Dst: memmove
      Src: /src/libxml2/buf.c:1055,1
    - Dst: memmove
      Src: /src/libxml2/buf.c:1056,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - buf
    - str
    - len
    argTypes:
    - xmlBuffer*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1059
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1059
    functionName: xmlBufferAddHead
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - memmove
    - xmlStrlen
    - xmlBufferGrow
    linkageType: ''
    returnType: int
    signature: 'int xmlBufferAddHead(xmlBuffer *buf, const xmlChar *str, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferAdd
      Src: /src/libxml2/buf.c:1082,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - str
    argTypes:
    - xmlBuffer*
    - char*
    constantsTouched: []
    func_position:
      end: 1083
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1083
    functionName: xmlBufferCCat
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlBufferAdd
    linkageType: ''
    returnType: int
    signature: 'int xmlBufferCCat(xmlBuffer *buf, const char *str) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUF_ERROR
      Src: /src/libxml2/buf.c:176,1
    - Dst: BUF_STATIC
      Src: /src/libxml2/buf.c:176,1
    - Dst: xmlStrndup
      Src: /src/libxml2/buf.c:180,1
    - Dst: xmlFree
      Src: /src/libxml2/buf.c:181,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - buf
    argTypes:
    - xmlBuf*
    constantsTouched: []
    func_position:
      end: 192
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 192
    functionName: xmlBufDetach
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlFree
    - BUF_ERROR
    - BUF_STATIC
    - xmlStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlBufDetach(xmlBuf *buf) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufAdd
      Src: /src/libxml2/buf.c:489,1
    - Dst: strlen
      Src: /src/libxml2/buf.c:489,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - str
    argTypes:
    - xmlBuf*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 490
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 490
    functionName: xmlBufCat
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlBufAdd
    - strlen
    linkageType: ''
    returnType: int
    signature: 'int xmlBufCat(xmlBuf *buf, const xmlChar *str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - xmlBuffer*
    constantsTouched: []
    func_position:
      end: 935
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 935
    functionName: xmlBufferContent
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlBufferContent(const xmlBuffer *buf) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - xmlBuffer*
    constantsTouched: []
    func_position:
      end: 950
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 950
    functionName: xmlBufferLength
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlBufferLength(const xmlBuffer *buf) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrlen
      Src: /src/libxml2/buf.c:990,1
    - Dst: memmove
      Src: /src/libxml2/buf.c:1000,1
    - Dst: xmlBufferGrow
      Src: /src/libxml2/buf.c:996,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - buf
    - str
    - len
    argTypes:
    - xmlBuffer*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1004
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 1004
    functionName: xmlBufferAdd
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - memmove
    - xmlStrlen
    - xmlBufferGrow
    linkageType: ''
    returnType: int
    signature: 'int xmlBufferAdd(xmlBuffer *buf, const xmlChar *str, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferAdd
      Src: /src/libxml2/buf.c:1070,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - str
    argTypes:
    - xmlBuffer*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1071
      start: 1068
    functionDepth: 0
    functionLinenumber: 1068
    functionLinenumberEnd: 1071
    functionName: xmlBufferCat
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlBufferAdd
    linkageType: ''
    returnType: int
    signature: 'int xmlBufferCat(xmlBuffer *buf, const xmlChar *str) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/buf.c:130,1
    - Dst: xmlFree
      Src: /src/libxml2/buf.c:137,1
    - Dst: xmlFree
      Src: /src/libxml2/buf.c:146,1
    - Dst: xmlMalloc
      Src: /src/libxml2/buf.c:144,1
    - Dst: memcpy
      Src: /src/libxml2/buf.c:149,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - mem
    - size
    - isStatic
    argTypes:
    - xmlChar*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 159
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 159
    functionName: xmlBufCreateMem
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlMalloc
    - memcpy
    linkageType: ''
    returnType: xmlBuf*
    signature: 'xmlBuf *xmlBufCreateMem(const xmlChar *mem, size_t size, int isStatic) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUF_ERROR
      Src: /src/libxml2/buf.c:426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - xmlBuf*
    constantsTouched: []
    func_position:
      end: 430
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 430
    functionName: xmlBufAvail
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - BUF_ERROR
    linkageType: ''
    returnType: size_t
    signature: 'size_t xmlBufAvail(xmlBuf *buf) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/libxml2/buf.c:918,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - file
    - buf
    argTypes:
    - FILE*
    - xmlBuffer*
    constantsTouched: []
    func_position:
      end: 920
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 920
    functionName: xmlBufferDump
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: int
    signature: 'int xmlBufferDump(FILE *file, xmlBuffer *buf) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUF_ERROR
      Src: /src/libxml2/buf.c:411,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - xmlBuf*
    constantsTouched: []
    func_position:
      end: 415
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 415
    functionName: xmlBufUse
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - BUF_ERROR
    linkageType: ''
    returnType: size_t
    signature: 'size_t xmlBufUse(xmlBuf *buf) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUF_ERROR
      Src: /src/libxml2/buf.c:393,1
    - Dst: BUF_STATIC
      Src: /src/libxml2/buf.c:393,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - xmlBuf*
    - size_t
    constantsTouched: []
    func_position:
      end: 400
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 400
    functionName: xmlBufAddLen
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - BUF_ERROR
    - BUF_STATIC
    linkageType: ''
    returnType: int
    signature: 'int xmlBufAddLen(xmlBuf *buf, size_t len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufUpdateInput
      Src: /src/libxml2/buf.c:588,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - input
    argTypes:
    - xmlBuf*
    - xmlParserInput*
    constantsTouched: []
    func_position:
      end: 589
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 589
    functionName: xmlBufResetInput
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlBufUpdateInput
    linkageType: ''
    returnType: int
    signature: 'int xmlBufResetInput(xmlBuf *buf, xmlParserInput *input) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferAdd
      Src: /src/libxml2/buf.c:1106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - string
    argTypes:
    - xmlBuffer*
    - char*
    constantsTouched: []
    func_position:
      end: 1107
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1107
    functionName: xmlBufferWriteChar
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached:
    - xmlBufferAdd
    linkageType: ''
    returnType: void
    signature: 'void xmlBufferWriteChar(xmlBuffer *buf, const char *string) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlBufferAllocationScheme
    constantsTouched: []
    func_position:
      end: 628
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 628
    functionName: xmlSetBufferAllocationScheme
    functionSourceFile: /src/libxml2/buf.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlSetBufferAllocationScheme(xmlBufferAllocationScheme scheme
      ATTRIBUTE_UNUSED) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ISA_DIGIT
      Src: /src/libxml2/uri.c:345,1
    - Dst: ISA_DIGIT
      Src: /src/libxml2/uri.c:346,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - uri
    - str
    argTypes:
    - xmlURIPtr
    - char**
    constantsTouched: []
    func_position:
      end: 364
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 364
    functionName: xmlParse3986Port
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - ISA_DIGIT
    linkageType: ''
    returnType: int
    signature: 'static int xmlParse3986Port(xmlURIPtr uri, const char **str) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlParse3986Authority
      Src: /src/libxml2/uri.c:837,1
    - Dst: xmlParse3986PathAbEmpty
      Src: /src/libxml2/uri.c:839,1
    - Dst: xmlParse3986PathNoScheme
      Src: /src/libxml2/uri.c:845,1
    - Dst: ISA_PCHAR
      Src: /src/libxml2/uri.c:844,1
    - Dst: xmlParse3986PathAbsolute
      Src: /src/libxml2/uri.c:842,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:850,1
    - Dst: xmlParse3986Query
      Src: /src/libxml2/uri.c:857,1
    - Dst: xmlParse3986Fragment
      Src: /src/libxml2/uri.c:862,1
    - Dst: xmlCleanURI
      Src: /src/libxml2/uri.c:866,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 2
    argNames:
    - uri
    - str
    argTypes:
    - xmlURIPtr
    - char*
    constantsTouched: []
    func_position:
      end: 870
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 870
    functionName: xmlParse3986RelativeRef
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlParse3986PathAbEmpty
    - xmlParse3986PathNoScheme
    - xmlParse3986PathAbsolute
    - xmlCleanURI
    - xmlParse3986Query
    - xmlParse3986Authority
    - ISA_PCHAR
    - xmlParse3986Fragment
    linkageType: ''
    returnType: int
    signature: 'static int xmlParse3986RelativeRef(xmlURIPtr uri, const char *str) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/uri.c:1644,1
    - Dst: xmlMalloc
      Src: /src/libxml2/uri.c:1648,1
    - Dst: xmlStrlen
      Src: /src/libxml2/uri.c:1645,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1660,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/uri.c:1658,1
    - Dst: xmlRealloc
      Src: /src/libxml2/uri.c:1663,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1665,1
    - Dst: IS_UNRESERVED
      Src: /src/libxml2/uri.c:1674,1
    - Dst: xmlStrchr
      Src: /src/libxml2/uri.c:1674,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 2
    argNames:
    - str
    - list
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1695
      start: 1635
    functionDepth: 0
    functionLinenumber: 1635
    functionLinenumberEnd: 1695
    functionName: xmlURIEscapeStr
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGrowCapacity
    - xmlRealloc
    - IS_UNRESERVED
    - xmlStrlen
    - xmlStrdup
    - xmlStrchr
    - xmlMalloc
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlURIEscapeStr(const xmlChar *str, const xmlChar *list) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/uri.c:1875,1
    - Dst: xmlStrchr
      Src: /src/libxml2/uri.c:1887,1
    - Dst: xmlIsAbsolutePath
      Src: /src/libxml2/uri.c:1902,1
    - Dst: xmlURIUnescapeString
      Src: /src/libxml2/uri.c:1895,1
    - Dst: xmlStrndup
      Src: /src/libxml2/uri.c:1889,1
    - Dst: xmlStrlen
      Src: /src/libxml2/uri.c:1908,1
    - Dst: xmlIsPathSeparator
      Src: /src/libxml2/uri.c:1909,1
    - Dst: xmlStrlen
      Src: /src/libxml2/uri.c:1916,1
    - Dst: xmlMalloc
      Src: /src/libxml2/uri.c:1918,1
    - Dst: memcpy
      Src: /src/libxml2/uri.c:1922,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1938,1
    - Dst: xmlNormalizePath
      Src: /src/libxml2/uri.c:1929,1
    - Dst: memcpy
      Src: /src/libxml2/uri.c:1923,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1947,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1948,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 63
    argCount: 3
    argNames:
    - escRef
    - base
    - out
    argTypes:
    - xmlChar*
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1950
      start: 1859
    functionDepth: 0
    functionLinenumber: 1859
    functionLinenumberEnd: 1950
    functionName: xmlResolvePath
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memcpy
    - xmlStrndup
    - xmlIsPathSeparator
    - xmlStrlen
    - xmlNormalizePath
    - xmlStrdup
    - xmlURIUnescapeString
    - xmlIsAbsolutePath
    - xmlStrchr
    - xmlMalloc
    - xmlStrcat
    linkageType: ''
    returnType: int
    signature: 'static int xmlResolvePath(const xmlChar *escRef, const xmlChar *base,
      xmlChar **out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlBuildRelativeURISafe
      Src: /src/libxml2/uri.c:2717,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - URI
    - base
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2719
      start: 2712
    functionDepth: 0
    functionLinenumber: 2712
    functionLinenumberEnd: 2719
    functionName: xmlBuildRelativeURI
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlBuildRelativeURISafe
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlBuildRelativeURI(const xmlChar * URI, const xmlChar *
      base) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ISA_PCHAR
      Src: /src/libxml2/uri.c:304,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:308,1
    - Dst: xmlURIUnescapeString
      Src: /src/libxml2/uri.c:312,1
    - Dst: NEXT
      Src: /src/libxml2/uri.c:305,1
    - Dst: STRNDUP
      Src: /src/libxml2/uri.c:310,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:320,1
    - Dst: STRNDUP
      Src: /src/libxml2/uri.c:321,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 2
    argNames:
    - uri
    - str
    argTypes:
    - xmlURIPtr
    - char**
    constantsTouched: []
    func_position:
      end: 327
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 327
    functionName: xmlParse3986Query
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    - STRNDUP
    - NEXT
    - xmlURIUnescapeString
    - ISA_PCHAR
    linkageType: ''
    returnType: int
    signature: 'static int xmlParse3986Query(xmlURIPtr uri, const char **str) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlParse3986Segment
      Src: /src/libxml2/uri.c:700,1
    - Dst: xmlParse3986Segment
      Src: /src/libxml2/uri.c:704,1
    - Dst: STRNDUP
      Src: /src/libxml2/uri.c:711,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:708,1
    - Dst: xmlURIUnescapeString
      Src: /src/libxml2/uri.c:713,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - uri
    - str
    argTypes:
    - xmlURIPtr
    - char**
    constantsTouched: []
    func_position:
      end: 722
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 722
    functionName: xmlParse3986PathRootless
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlURIUnescapeString
    - STRNDUP
    - xmlParse3986Segment
    linkageType: ''
    returnType: int
    signature: 'static int xmlParse3986PathRootless(xmlURIPtr uri, const char **str) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlParse3986Authority
      Src: /src/libxml2/uri.c:789,1
    - Dst: xmlParse3986PathAbEmpty
      Src: /src/libxml2/uri.c:796,1
    - Dst: xmlParse3986PathRootless
      Src: /src/libxml2/uri.c:804,1
    - Dst: ISA_PCHAR
      Src: /src/libxml2/uri.c:803,1
    - Dst: xmlParse3986PathAbsolute
      Src: /src/libxml2/uri.c:801,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:809,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 2
    argNames:
    - uri
    - str
    argTypes:
    - xmlURIPtr
    - char**
    constantsTouched: []
    func_position:
      end: 815
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 815
    functionName: xmlParse3986HierPart
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlParse3986PathAbEmpty
    - xmlParse3986PathAbsolute
    - xmlParse3986PathRootless
    - xmlParse3986Authority
    - ISA_PCHAR
    linkageType: ''
    returnType: int
    signature: 'static int xmlParse3986HierPart(xmlURIPtr uri, const char **str) '
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: IS_RESERVED
      Src: /src/libxml2/uri.c:1135,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1158,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1197,1
    - Dst: snprintf
      Src: /src/libxml2/uri.c:1201,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1281,1
    - Dst: IS_UNRESERVED
      Src: /src/libxml2/uri.c:1309,1
    - Dst: IS_RESERVED
      Src: /src/libxml2/uri.c:1309,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1114,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1121,1
    - Dst: IS_UNRESERVED
      Src: /src/libxml2/uri.c:1135,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1214,1
    - Dst: IS_UNRESERVED
      Src: /src/libxml2/uri.c:1335,1
    - Dst: IS_RESERVED
      Src: /src/libxml2/uri.c:1335,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1347,1
    - Dst: xmlMalloc
      Src: /src/libxml2/uri.c:1105,1
    - Dst: IS_UNRESERVED
      Src: /src/libxml2/uri.c:1162,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1205,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1261,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1251,1
    - Dst: IS_UNRESERVED
      Src: /src/libxml2/uri.c:1265,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1289,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1297,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1305,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1355,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1131,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1148,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1177,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1233,1
    - Dst: IS_UNRESERVED
      Src: /src/libxml2/uri.c:1218,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1187,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1323,1
    - Dst: xmlSaveUriRealloc
      Src: /src/libxml2/uri.c:1331,1
    CyclomaticComplexity: 130
    EdgeCount: 130
    ICount: 370
    argCount: 1
    argNames:
    - uri
    argTypes:
    - xmlURI*
    constantsTouched: []
    func_position:
      end: 1357
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1357
    functionName: xmlSaveUri
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSaveUriRealloc
    - IS_UNRESERVED
    - IS_RESERVED
    - snprintf
    - xmlMalloc
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlSaveUri(xmlURI *uri) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsPathSeparator
      Src: /src/libxml2/uri.c:1837,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 1
    argNames:
    - path
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1848
      start: 1833
    functionDepth: 0
    functionLinenumber: 1833
    functionLinenumberEnd: 1848
    functionName: xmlIsAbsolutePath
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlIsPathSeparator
    linkageType: ''
    returnType: int
    signature: 'static int xmlIsAbsolutePath(const xmlChar *path) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ISA_PCHAR
      Src: /src/libxml2/uri.c:271,1
    - Dst: STRNDUP
      Src: /src/libxml2/uri.c:278,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:276,1
    - Dst: NEXT
      Src: /src/libxml2/uri.c:273,1
    - Dst: xmlURIUnescapeString
      Src: /src/libxml2/uri.c:280,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 2
    argNames:
    - uri
    - str
    argTypes:
    - xmlURIPtr
    - char**
    constantsTouched: []
    func_position:
      end: 286
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 286
    functionName: xmlParse3986Fragment
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    - STRNDUP
    - NEXT
    - xmlURIUnescapeString
    - ISA_PCHAR
    linkageType: ''
    returnType: int
    signature: 'static int xmlParse3986Fragment(xmlURIPtr uri, const char **str) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlParse3986Userinfo
      Src: /src/libxml2/uri.c:536,1
    - Dst: xmlParse3986Port
      Src: /src/libxml2/uri.c:547,1
    - Dst: xmlParse3986Host
      Src: /src/libxml2/uri.c:543,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 2
    argNames:
    - uri
    - str
    argTypes:
    - xmlURIPtr
    - char**
    constantsTouched: []
    func_position:
      end: 552
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 552
    functionName: xmlParse3986Authority
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlParse3986Port
    - xmlParse3986Userinfo
    - xmlParse3986Host
    linkageType: ''
    returnType: int
    signature: 'static int xmlParse3986Authority(xmlURIPtr uri, const char **str) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlParse3986Segment
      Src: /src/libxml2/uri.c:657,1
    - Dst: xmlParse3986Segment
      Src: /src/libxml2/uri.c:661,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:666,1
    - Dst: STRNDUP
      Src: /src/libxml2/uri.c:669,1
    - Dst: xmlURIUnescapeString
      Src: /src/libxml2/uri.c:671,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 2
    argNames:
    - uri
    - str
    argTypes:
    - xmlURIPtr
    - char**
    constantsTouched: []
    func_position:
      end: 680
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 680
    functionName: xmlParse3986PathAbsolute
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlURIUnescapeString
    - STRNDUP
    - xmlParse3986Segment
    linkageType: ''
    returnType: int
    signature: 'static int xmlParse3986PathAbsolute(xmlURIPtr uri, const char **str) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlParse3986Segment
      Src: /src/libxml2/uri.c:742,1
    - Dst: xmlURIUnescapeString
      Src: /src/libxml2/uri.c:755,1
    - Dst: xmlParse3986Segment
      Src: /src/libxml2/uri.c:746,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:750,1
    - Dst: STRNDUP
      Src: /src/libxml2/uri.c:753,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - uri
    - str
    argTypes:
    - xmlURIPtr
    - char**
    constantsTouched: []
    func_position:
      end: 764
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 764
    functionName: xmlParse3986PathNoScheme
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlURIUnescapeString
    - STRNDUP
    - xmlParse3986Segment
    linkageType: ''
    returnType: int
    signature: 'static int xmlParse3986PathNoScheme(xmlURIPtr uri, const char **str) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/uri.c:1077,1
    - Dst: xmlRealloc
      Src: /src/libxml2/uri.c:1080,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - ret
    - max
    argTypes:
    - xmlChar*
    - int*
    constantsTouched: []
    func_position:
      end: 1085
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1085
    functionName: xmlSaveUriRealloc
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlSaveUriRealloc(xmlChar *ret, int *max) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ISA_ALPHA
      Src: /src/libxml2/uri.c:227,1
    - Dst: ISA_ALPHA
      Src: /src/libxml2/uri.c:239,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:242,1
    - Dst: STRNDUP
      Src: /src/libxml2/uri.c:243,1
    - Dst: ISA_DIGIT
      Src: /src/libxml2/uri.c:239,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 2
    argNames:
    - uri
    - str
    argTypes:
    - xmlURIPtr
    - char**
    constantsTouched: []
    func_position:
      end: 249
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 249
    functionName: xmlParse3986Scheme
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    - STRNDUP
    - ISA_ALPHA
    - ISA_DIGIT
    linkageType: ''
    returnType: int
    signature: 'static int xmlParse3986Scheme(xmlURIPtr uri, const char **str) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ISA_DIGIT
      Src: /src/libxml2/uri.c:471,1
    - Dst: xmlParse3986DecOctet
      Src: /src/libxml2/uri.c:472,1
    - Dst: xmlParse3986DecOctet
      Src: /src/libxml2/uri.c:485,1
    - Dst: xmlParse3986DecOctet
      Src: /src/libxml2/uri.c:481,1
    - Dst: xmlParse3986DecOctet
      Src: /src/libxml2/uri.c:477,1
    - Dst: ISA_UNRESERVED
      Src: /src/libxml2/uri.c:494,1
    - Dst: ISA_PCT_ENCODED
      Src: /src/libxml2/uri.c:495,1
    - Dst: ISA_SUB_DELIM
      Src: /src/libxml2/uri.c:495,1
    - Dst: NEXT
      Src: /src/libxml2/uri.c:496,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:499,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:501,1
    - Dst: STRNDUP
      Src: /src/libxml2/uri.c:504,1
    - Dst: xmlURIUnescapeString
      Src: /src/libxml2/uri.c:506,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 47
    argCount: 2
    argNames:
    - uri
    - str
    argTypes:
    - xmlURIPtr
    - char**
    constantsTouched: []
    func_position:
      end: 514
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 514
    functionName: xmlParse3986Host
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlParse3986DecOctet
    - ISA_PCT_ENCODED
    - ISA_SUB_DELIM
    - NEXT
    - ISA_UNRESERVED
    - xmlFree
    - STRNDUP
    - xmlURIUnescapeString
    - ISA_DIGIT
    linkageType: ''
    returnType: int
    signature: 'static int xmlParse3986Host(xmlURIPtr uri, const char **str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlParse3986URIReference
      Src: /src/libxml2/uri.c:1012,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - uri
    - str
    argTypes:
    - xmlURI*
    - char*
    constantsTouched: []
    func_position:
      end: 1013
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1013
    functionName: xmlParseURIReference
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlParse3986URIReference
    linkageType: ''
    returnType: int
    signature: 'int xmlParseURIReference(xmlURI *uri, const char *str) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - c
    - isFile
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1445
      start: 1432
    functionDepth: 0
    functionLinenumber: 1432
    functionLinenumberEnd: 1445
    functionName: xmlIsPathSeparator
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlIsPathSeparator(int c, int isFile) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreateURI
      Src: /src/libxml2/uri.c:971,1
    - Dst: xmlParse3986URIReference
      Src: /src/libxml2/uri.c:975,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/uri.c:977,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - str
    - uriOut
    argTypes:
    - char*
    - xmlURI**
    constantsTouched: []
    func_position:
      end: 983
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 983
    functionName: xmlParseURISafe
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlCreateURI
    - xmlParse3986URIReference
    - xmlFreeURI
    linkageType: ''
    returnType: int
    signature: 'int xmlParseURISafe(const char *str, xmlURI **uriOut) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseURISafe
      Src: /src/libxml2/uri.c:996,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 998
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 998
    functionName: xmlParseURI
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlParseURISafe
    linkageType: ''
    returnType: xmlURI*
    signature: 'xmlURI *xmlParseURI(const char *str) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1414,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1417,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1418,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1416,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1415,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1419,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1420,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1421,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1422,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1423,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 1
    argNames:
    - uri
    argTypes:
    - xmlURI*
    constantsTouched: []
    func_position:
      end: 1424
      start: 1410
    functionDepth: 0
    functionLinenumber: 1410
    functionLinenumberEnd: 1424
    functionName: xmlFreeURI
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeURI(xmlURI *uri) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libxml2/uri.c:1585,1
    - Dst: is_hex
      Src: /src/libxml2/uri.c:1597,1
    - Dst: xmlMalloc
      Src: /src/libxml2/uri.c:1589,1
    - Dst: is_hex
      Src: /src/libxml2/uri.c:1597,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 70
    argCount: 3
    argNames:
    - str
    - len
    - target
    argTypes:
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 1624
      start: 1578
    functionDepth: 0
    functionLinenumber: 1578
    functionLinenumberEnd: 1624
    functionName: xmlURIUnescapeString
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - strlen
    - is_hex
    - xmlMalloc
    linkageType: ''
    returnType: char*
    signature: 'char *xmlURIUnescapeString(const char *str, int len, char *target) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ISA_STRICTLY_UNRESERVED
      Src: /src/libxml2/uri.c:199,1
    - Dst: ISA_UCSCHAR
      Src: /src/libxml2/uri.c:206,1
    - Dst: IS_UNWISE
      Src: /src/libxml2/uri.c:203,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 2
    argNames:
    - uri
    - cur
    argTypes:
    - xmlURIPtr
    - char*
    constantsTouched: []
    func_position:
      end: 211
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 211
    functionName: xmlIsUnreserved
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - IS_UNWISE
    - ISA_STRICTLY_UNRESERVED
    - ISA_UCSCHAR
    linkageType: ''
    returnType: int
    signature: 'static int xmlIsUnreserved(xmlURIPtr uri, const char *cur) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlParse3986Segment
      Src: /src/libxml2/uri.c:616,1
    - Dst: xmlURIUnescapeString
      Src: /src/libxml2/uri.c:625,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:620,1
    - Dst: STRNDUP
      Src: /src/libxml2/uri.c:623,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - uri
    - str
    argTypes:
    - xmlURIPtr
    - char**
    constantsTouched: []
    func_position:
      end: 634
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 634
    functionName: xmlParse3986PathAbEmpty
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlURIUnescapeString
    - STRNDUP
    - xmlParse3986Segment
    linkageType: ''
    returnType: int
    signature: 'static int xmlParse3986PathAbEmpty(xmlURIPtr uri, const char **str) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlCleanURI
      Src: /src/libxml2/uri.c:928,1
    - Dst: xmlParse3986RelativeRef
      Src: /src/libxml2/uri.c:939,1
    - Dst: xmlCleanURI
      Src: /src/libxml2/uri.c:938,1
    - Dst: xmlParse3986URI
      Src: /src/libxml2/uri.c:934,1
    - Dst: xmlCleanURI
      Src: /src/libxml2/uri.c:941,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - uri
    - str
    argTypes:
    - xmlURIPtr
    - char*
    constantsTouched: []
    func_position:
      end: 946
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 946
    functionName: xmlParse3986URIReference
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlCleanURI
    - xmlParse3986RelativeRef
    - xmlParse3986URI
    linkageType: ''
    returnType: int
    signature: 'static int xmlParse3986URIReference(xmlURIPtr uri, const char *str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNormalizePath
      Src: /src/libxml2/uri.c:1555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1556
      start: 1553
    functionDepth: 0
    functionLinenumber: 1553
    functionLinenumberEnd: 1556
    functionName: xmlNormalizeURIPath
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlNormalizePath
    linkageType: ''
    returnType: int
    signature: 'int xmlNormalizeURIPath(char *path) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 1564
      start: 1558
    functionDepth: 0
    functionLinenumber: 1558
    functionLinenumberEnd: 1564
    functionName: is_hex
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int is_hex(char c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlBuildURISafe
      Src: /src/libxml2/uri.c:2336,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - URI
    - base
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2338
      start: 2332
    functionDepth: 0
    functionLinenumber: 2332
    functionLinenumberEnd: 2338
    functionName: xmlBuildURI
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlBuildURISafe
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlBuildURI(const xmlChar *URI, const xmlChar *base) '
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/uri.c:2614,1
    - Dst: xmlURIEscapeStr
      Src: /src/libxml2/uri.c:2672,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:2696,1
    - Dst: xmlParseUriOrPath
      Src: /src/libxml2/uri.c:2509,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/uri.c:2538,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/uri.c:2539,1
    - Dst: xmlStrdup
      Src: /src/libxml2/uri.c:2551,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:2677,1
    - Dst: xmlParseUriOrPath
      Src: /src/libxml2/uri.c:2525,1
    - Dst: xmlStrdup
      Src: /src/libxml2/uri.c:2545,1
    - Dst: xmlMalloc
      Src: /src/libxml2/uri.c:2638,1
    - Dst: memcpy
      Src: /src/libxml2/uri.c:2658,1
    - Dst: xmlStrlen
      Src: /src/libxml2/uri.c:2620,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/uri.c:2692,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/uri.c:2694,1
    - Dst: xmlStrdup
      Src: /src/libxml2/uri.c:2515,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/uri.c:2544,1
    - Dst: xmlStrdup
      Src: /src/libxml2/uri.c:2585,1
    - Dst: memcpy
      Src: /src/libxml2/uri.c:2661,1
    - Dst: xmlURIEscapeStr
      Src: /src/libxml2/uri.c:2626,1
    - Dst: xmlSaveUri
      Src: /src/libxml2/uri.c:2681,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 154
    argCount: 3
    argNames:
    - URI
    - base
    - valPtr
    argTypes:
    - xmlChar*
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 2702
      start: 2487
    functionDepth: 0
    functionLinenumber: 2487
    functionLinenumberEnd: 2702
    functionName: xmlBuildRelativeURISafe
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeURI
    - memcpy
    - xmlParseUriOrPath
    - xmlStrlen
    - xmlStrdup
    - xmlSaveUri
    - xmlStrEqual
    - xmlURIEscapeStr
    - xmlStrcmp
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'int xmlBuildRelativeURISafe(const xmlChar * URI, const xmlChar * base,
      xmlChar **valPtr) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ISA_DIGIT
      Src: /src/libxml2/uri.c:417,1
    - Dst: ISA_DIGIT
      Src: /src/libxml2/uri.c:419,1
    - Dst: ISA_DIGIT
      Src: /src/libxml2/uri.c:421,1
    - Dst: ISA_DIGIT
      Src: /src/libxml2/uri.c:423,1
    - Dst: ISA_DIGIT
      Src: /src/libxml2/uri.c:421,1
    - Dst: ISA_DIGIT
      Src: /src/libxml2/uri.c:423,1
    - Dst: ISA_DIGIT
      Src: /src/libxml2/uri.c:426,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 1
    argNames:
    - str
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 435
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 435
    functionName: xmlParse3986DecOctet
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - ISA_DIGIT
    linkageType: ''
    returnType: int
    signature: 'static int xmlParse3986DecOctet(const char **str) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ISA_PCHAR
      Src: /src/libxml2/uri.c:575,1
    - Dst: NEXT
      Src: /src/libxml2/uri.c:587,1
    - Dst: ISA_PCHAR
      Src: /src/libxml2/uri.c:590,1
    - Dst: NEXT
      Src: /src/libxml2/uri.c:580,1
    - Dst: NEXT
      Src: /src/libxml2/uri.c:591,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 4
    argNames:
    - uri
    - str
    - forbid
    - empty
    argTypes:
    - xmlURIPtr
    - char**
    - char
    - int
    constantsTouched: []
    func_position:
      end: 594
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 594
    functionName: xmlParse3986Segment
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - ISA_PCHAR
    - NEXT
    linkageType: ''
    returnType: int
    signature: 'static int xmlParse3986Segment(xmlURIPtr uri, const char **str, char
      forbid, int empty) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1385,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1389,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1387,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1391,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1393,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1395,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1397,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1399,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1401,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 1
    argNames:
    - uri
    argTypes:
    - xmlURIPtr
    constantsTouched: []
    func_position:
      end: 1403
      start: 1381
    functionDepth: 0
    functionLinenumber: 1381
    functionLinenumberEnd: 1403
    functionName: xmlCleanURI
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlCleanURI(xmlURIPtr uri) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsPathSeparator
      Src: /src/libxml2/uri.c:1468,1
    - Dst: xmlIsPathSeparator
      Src: /src/libxml2/uri.c:1502,1
    - Dst: xmlIsPathSeparator
      Src: /src/libxml2/uri.c:1496,1
    - Dst: xmlIsPathSeparator
      Src: /src/libxml2/uri.c:1491,1
    - Dst: xmlIsPathSeparator
      Src: /src/libxml2/uri.c:1478,1
    - Dst: xmlIsPathSeparator
      Src: /src/libxml2/uri.c:1523,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 57
    argCount: 2
    argNames:
    - path
    - isFile
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1542
      start: 1454
    functionDepth: 0
    functionLinenumber: 1454
    functionLinenumberEnd: 1542
    functionName: xmlNormalizePath
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlIsPathSeparator
    linkageType: ''
    returnType: int
    signature: 'static int xmlNormalizePath(char *path, int isFile) '
  - BBCount: 80
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/uri.c:2009,1
    - Dst: xmlResolvePath
      Src: /src/libxml2/uri.c:2021,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/uri.c:2035,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2102,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2097,1
    - Dst: xmlSaveUri
      Src: /src/libxml2/uri.c:2061,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2109,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2118,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2126,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2157,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2191,1
    - Dst: xmlNormalizeURIPath
      Src: /src/libxml2/uri.c:2295,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2181,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2215,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2166,1
    - Dst: xmlStrstr
      Src: /src/libxml2/uri.c:2019,1
    - Dst: xmlParseURISafe
      Src: /src/libxml2/uri.c:2000,1
    - Dst: xmlResolvePath
      Src: /src/libxml2/uri.c:2036,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:2058,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2114,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2092,1
    - Dst: strlen
      Src: /src/libxml2/uri.c:2246,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/uri.c:2310,1
    - Dst: xmlMalloc
      Src: /src/libxml2/uri.c:2247,1
    - Dst: xmlSaveUri
      Src: /src/libxml2/uri.c:2047,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2198,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2227,1
    - Dst: xmlSaveUri
      Src: /src/libxml2/uri.c:2304,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/uri.c:2312,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/uri.c:2314,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2205,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2186,1
    - Dst: strlen
      Src: /src/libxml2/uri.c:2244,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2210,1
    - Dst: xmlStrdup
      Src: /src/libxml2/uri.c:1984,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/uri.c:2020,1
    - Dst: xmlParseURISafe
      Src: /src/libxml2/uri.c:2041,1
    - Dst: xmlCreateURI
      Src: /src/libxml2/uri.c:2080,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2087,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2122,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2131,1
    - Dst: xmlSaveUri
      Src: /src/libxml2/uri.c:2145,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2151,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2161,1
    CyclomaticComplexity: 141
    EdgeCount: 141
    ICount: 265
    argCount: 3
    argNames:
    - URI
    - base
    - valPtr
    argTypes:
    - xmlChar*
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 2317
      start: 1968
    functionDepth: 0
    functionLinenumber: 1968
    functionLinenumberEnd: 2317
    functionName: xmlBuildURISafe
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeURI
    - xmlNormalizeURIPath
    - xmlCreateURI
    - xmlStrdup
    - xmlResolvePath
    - xmlSaveUri
    - xmlStrstr
    - xmlParseURISafe
    - strlen
    - xmlMalloc
    - xmlMemStrdup
    linkageType: ''
    returnType: int
    signature: 'int xmlBuildURISafe(const xmlChar *URI, const xmlChar *base, xmlChar
      **valPtr) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xmlNormalizePath
      Src: /src/libxml2/uri.c:2365,1
    - Dst: strncmp
      Src: /src/libxml2/uri.c:2379,1
    - Dst: strncmp
      Src: /src/libxml2/uri.c:2382,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2391,1
    - Dst: strlen
      Src: /src/libxml2/uri.c:2424,1
    - Dst: memcpy
      Src: /src/libxml2/uri.c:2432,1
    - Dst: memcpy
      Src: /src/libxml2/uri.c:2434,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2412,1
    - Dst: xmlMalloc
      Src: /src/libxml2/uri.c:2425,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:2458,1
    - Dst: xmlStrstr
      Src: /src/libxml2/uri.c:2355,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/uri.c:2360,1
    - Dst: strncmp
      Src: /src/libxml2/uri.c:2376,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/uri.c:2457,1
    - Dst: xmlCreateURI
      Src: /src/libxml2/uri.c:2349,1
    - Dst: strchr
      Src: /src/libxml2/uri.c:2388,1
    - Dst: xmlParseURIReference
      Src: /src/libxml2/uri.c:2437,1
    - Dst: xmlNormalizePath
      Src: /src/libxml2/uri.c:2441,1
    - Dst: xmlIsAbsolutePath
      Src: /src/libxml2/uri.c:2369,1
    - Dst: xmlStrndup
      Src: /src/libxml2/uri.c:2394,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 116
    argCount: 3
    argNames:
    - str
    - out
    - drive
    argTypes:
    - char*
    - xmlURIPtr*
    - int*
    constantsTouched: []
    func_position:
      end: 2461
      start: 2340
    functionDepth: 0
    functionLinenumber: 2340
    functionLinenumberEnd: 2461
    functionName: xmlParseUriOrPath
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeURI
    - memcpy
    - xmlStrndup
    - xmlParseURIReference
    - xmlCreateURI
    - strchr
    - xmlNormalizePath
    - xmlStrstr
    - xmlIsAbsolutePath
    - strncmp
    - strlen
    - xmlMalloc
    - xmlMemStrdup
    linkageType: ''
    returnType: int
    signature: 'static int xmlParseUriOrPath(const char *str, xmlURIPtr *out, int
      *drive) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCanonicPath
      Src: /src/libxml2/uri.c:2775,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2776
      start: 2772
    functionDepth: 0
    functionLinenumber: 2772
    functionLinenumberEnd: 2776
    functionName: xmlPathToURI
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlCanonicPath
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlPathToURI(const xmlChar *path) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/uri.c:1060,1
    - Dst: memset
      Src: /src/libxml2/uri.c:1063,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1066
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1066
    functionName: xmlCreateURI
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlURI*
    signature: 'xmlURI *xmlCreateURI(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ISA_UNRESERVED
      Src: /src/libxml2/uri.c:382,1
    - Dst: NEXT
      Src: /src/libxml2/uri.c:384,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:387,1
    - Dst: ISA_SUB_DELIM
      Src: /src/libxml2/uri.c:383,1
    - Dst: ISA_PCT_ENCODED
      Src: /src/libxml2/uri.c:382,1
    - Dst: STRNDUP
      Src: /src/libxml2/uri.c:389,1
    - Dst: xmlURIUnescapeString
      Src: /src/libxml2/uri.c:391,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 2
    argNames:
    - uri
    - str
    argTypes:
    - xmlURIPtr
    - char**
    constantsTouched: []
    func_position:
      end: 399
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 399
    functionName: xmlParse3986Userinfo
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - ISA_PCT_ENCODED
    - xmlFree
    - ISA_SUB_DELIM
    - NEXT
    - ISA_UNRESERVED
    - STRNDUP
    - xmlURIUnescapeString
    linkageType: ''
    returnType: int
    signature: 'static int xmlParse3986Userinfo(xmlURIPtr uri, const char **str) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlParse3986Scheme
      Src: /src/libxml2/uri.c:887,1
    - Dst: xmlParse3986Fragment
      Src: /src/libxml2/uri.c:902,1
    - Dst: xmlCleanURI
      Src: /src/libxml2/uri.c:906,1
    - Dst: xmlParse3986Query
      Src: /src/libxml2/uri.c:897,1
    - Dst: xmlParse3986HierPart
      Src: /src/libxml2/uri.c:893,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - uri
    - str
    argTypes:
    - xmlURIPtr
    - char*
    constantsTouched: []
    func_position:
      end: 910
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 910
    functionName: xmlParse3986URI
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlParse3986HierPart
    - xmlCleanURI
    - xmlParse3986Query
    - xmlParse3986Scheme
    - xmlParse3986Fragment
    linkageType: ''
    returnType: int
    signature: 'static int xmlParse3986URI(xmlURIPtr uri, const char *str) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreateURI
      Src: /src/libxml2/uri.c:1031,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/uri.c:1038,1
    - Dst: xmlParseURIReference
      Src: /src/libxml2/uri.c:1036,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - str
    - raw
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1043
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1043
    functionName: xmlParseURIRaw
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlCreateURI
    - xmlFreeURI
    - xmlParseURIReference
    linkageType: ''
    returnType: xmlURI*
    signature: 'xmlURI *xmlParseURIRaw(const char *str, int raw) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveUri
      Src: /src/libxml2/uri.c:1369,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1372,1
    - Dst: fprintf
      Src: /src/libxml2/uri.c:1371,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - stream
    - uri
    argTypes:
    - FILE*
    - xmlURI*
    constantsTouched: []
    func_position:
      end: 1374
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1374
    functionName: xmlPrintURI
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSaveUri
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'void xmlPrintURI(FILE *stream, xmlURI *uri) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1747,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1755,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1756,1
    - Dst: xmlURIEscapeStr
      Src: /src/libxml2/uri.c:1760,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1763,1
    - Dst: xmlURIEscapeStr
      Src: /src/libxml2/uri.c:1769,1
    - Dst: snprintf
      Src: /src/libxml2/uri.c:1780,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1781,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1789,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1801,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1818,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1803,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1773,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1790,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1795,1
    - Dst: xmlURIEscapeStr
      Src: /src/libxml2/uri.c:1799,1
    - Dst: xmlURIEscapeStr
      Src: /src/libxml2/uri.c:1807,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1817,1
    - Dst: xmlURIEscapeStr
      Src: /src/libxml2/uri.c:1743,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1746,1
    - Dst: xmlURIEscapeStr
      Src: /src/libxml2/uri.c:1752,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1762,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1764,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1765,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1774,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1782,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1802,1
    - Dst: xmlFree
      Src: /src/libxml2/uri.c:1810,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/uri.c:1821,1
    - Dst: xmlURIEscapeStr
      Src: /src/libxml2/uri.c:1814,1
    - Dst: xmlCreateURI
      Src: /src/libxml2/uri.c:1719,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1745,1
    - Dst: xmlParseURIReference
      Src: /src/libxml2/uri.c:1725,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/uri.c:1727,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1754,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1772,1
    - Dst: xmlURIEscapeStr
      Src: /src/libxml2/uri.c:1787,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1794,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1809,1
    - Dst: xmlStrcat
      Src: /src/libxml2/uri.c:1816,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 80
    argCount: 1
    argNames:
    - str
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1825
      start: 1709
    functionDepth: 0
    functionLinenumber: 1709
    functionLinenumberEnd: 1825
    functionName: xmlURIEscape
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeURI
    - xmlParseURIReference
    - xmlCreateURI
    - snprintf
    - xmlURIEscapeStr
    - xmlStrcat
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlURIEscape(const xmlChar * str) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrstr
      Src: /src/libxml2/uri.c:2747,1
    - Dst: xmlURIEscapeStr
      Src: /src/libxml2/uri.c:2755,1
    - Dst: xmlStrdup
      Src: /src/libxml2/uri.c:2757,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - path
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2761
      start: 2738
    functionDepth: 0
    functionLinenumber: 2738
    functionLinenumberEnd: 2761
    functionName: xmlCanonicPath
    functionSourceFile: /src/libxml2/uri.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlURIEscapeStr
    - xmlStrstr
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlCanonicPath(const xmlChar *path) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsBaseCharQ
      Src: /src/libxml2/chvalid.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: xmlIsBaseChar
    functionSourceFile: /src/libxml2/chvalid.c
    functionUses: []
    functionsReached:
    - xmlIsBaseCharQ
    linkageType: ''
    returnType: int
    signature: 'int xmlIsBaseChar(unsigned int ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsCharQ
      Src: /src/libxml2/chvalid.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: xmlIsChar
    functionSourceFile: /src/libxml2/chvalid.c
    functionUses: []
    functionsReached:
    - xmlIsCharQ
    linkageType: ''
    returnType: int
    signature: 'int xmlIsChar(unsigned int ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsDigitQ
      Src: /src/libxml2/chvalid.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: xmlIsDigit
    functionSourceFile: /src/libxml2/chvalid.c
    functionUses: []
    functionsReached:
    - xmlIsDigitQ
    linkageType: ''
    returnType: int
    signature: 'int xmlIsDigit(unsigned int ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsIdeographicQ
      Src: /src/libxml2/chvalid.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: xmlIsIdeographic
    functionSourceFile: /src/libxml2/chvalid.c
    functionUses: []
    functionsReached:
    - xmlIsIdeographicQ
    linkageType: ''
    returnType: int
    signature: 'int xmlIsIdeographic(unsigned int ch) '
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - val
    - rptr
    argTypes:
    - unsigned int
    - xmlChRangeGroup*
    constantsTouched: []
    func_position:
      end: 76
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 76
    functionName: xmlCharInRange
    functionSourceFile: /src/libxml2/chvalid.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlCharInRange (unsigned int val, const xmlChRangeGroup *rptr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsBlankQ
      Src: /src/libxml2/chvalid.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: xmlIsBlank
    functionSourceFile: /src/libxml2/chvalid.c
    functionUses: []
    functionsReached:
    - xmlIsBlankQ
    linkageType: ''
    returnType: int
    signature: 'int xmlIsBlank(unsigned int ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsCombiningQ
      Src: /src/libxml2/chvalid.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: xmlIsCombining
    functionSourceFile: /src/libxml2/chvalid.c
    functionUses: []
    functionsReached:
    - xmlIsCombiningQ
    linkageType: ''
    returnType: int
    signature: 'int xmlIsCombining(unsigned int ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsExtenderQ
      Src: /src/libxml2/chvalid.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: xmlIsExtender
    functionSourceFile: /src/libxml2/chvalid.c
    functionUses: []
    functionsReached:
    - xmlIsExtenderQ
    linkageType: ''
    returnType: int
    signature: 'int xmlIsExtender(unsigned int ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsPubidCharQ
      Src: /src/libxml2/chvalid.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: xmlIsPubidChar
    functionSourceFile: /src/libxml2/chvalid.c
    functionUses: []
    functionsReached:
    - xmlIsPubidCharQ
    linkageType: ''
    returnType: int
    signature: 'int xmlIsPubidChar(unsigned int ch) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xzlib.c:135,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xzlib.c:144,1
    - Dst: xmlFree
      Src: /src/libxml2/xzlib.c:146,1
    - Dst: strcpy
      Src: /src/libxml2/xzlib.c:149,1
    - Dst: strlen
      Src: /src/libxml2/xzlib.c:144,1
    - Dst: open
      Src: /src/libxml2/xzlib.c:152,1
    - Dst: xmlFree
      Src: /src/libxml2/xzlib.c:161,1
    - Dst: xmlFree
      Src: /src/libxml2/xzlib.c:162,1
    - Dst: lseek
      Src: /src/libxml2/xzlib.c:167,1
    - Dst: xz_reset
      Src: /src/libxml2/xzlib.c:174,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - path
    - fd
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 178
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 178
    functionName: xz_open
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached:
    - xmlFree
    - lseek
    - strcpy
    - open
    - xz_reset
    - strlen
    - xmlMalloc
    linkageType: ''
    returnType: xzFile
    signature: 'static xzFile xz_open(const char *path, int fd, const char *mode ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xz_open
      Src: /src/libxml2/xzlib.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: __libxml2_xzopen
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached:
    - xz_open
    linkageType: ''
    returnType: xzFile
    signature: 'xzFile __libxml2_xzopen(const char *path, const char *mode) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lzma_properties_decode
      Src: /src/libxml2/xzlib.c:298,1
    - Dst: UINT64_C
      Src: /src/libxml2/xzlib.c:336,1
    - Dst: free
      Src: /src/libxml2/xzlib.c:303,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - state
    argTypes:
    - xz_statep
    constantsTouched: []
    func_position:
      end: 340
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 340
    functionName: is_format_lzma
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached:
    - free
    - lzma_properties_decode
    - UINT64_C
    linkageType: ''
    returnType: int
    signature: 'static int is_format_lzma(xz_statep state) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xz_head
      Src: /src/libxml2/xzlib.c:646,1
    - Dst: xz_load
      Src: /src/libxml2/xzlib.c:652,1
    - Dst: xz_decomp
      Src: /src/libxml2/xzlib.c:659,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - state
    argTypes:
    - xz_statep
    constantsTouched: []
    func_position:
      end: 663
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 663
    functionName: xz_make
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached:
    - xz_head
    - xz_load
    - xz_decomp
    linkageType: ''
    returnType: int
    signature: 'static int xz_make(xz_statep state) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 1
    argNames:
    - f
    argTypes:
    - xzFile
    constantsTouched: []
    func_position:
      end: 204
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 204
    functionName: xz_compressed
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xz_compressed(xzFile f) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xz_open
      Src: /src/libxml2/xzlib.c:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - path
    - fd
    - mode
    argTypes:
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: __libxml2_xzdopen
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached:
    - xz_open
    linkageType: ''
    returnType: xzFile
    signature: 'xzFile __libxml2_xzdopen(const char *path, int fd, const char *mode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libxml2/xzlib.c:280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - xz_statep
    constantsTouched: []
    func_position:
      end: 281
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 281
    functionName: is_format_xz
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: 'static int is_format_xz(xz_statep state) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xz_make
      Src: /src/libxml2/xzlib.c:689,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - state
    - len
    argTypes:
    - xz_statep
    - uint64_t
    constantsTouched: []
    func_position:
      end: 693
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 693
    functionName: xz_skip
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached:
    - xz_make
    linkageType: ''
    returnType: int
    signature: 'static int xz_skip(xz_statep state, uint64_t len) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xzlib.c:85,1
    - Dst: strlen
      Src: /src/libxml2/xzlib.c:101,1
    - Dst: strcpy
      Src: /src/libxml2/xzlib.c:107,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xzlib.c:101,1
    - Dst: strlen
      Src: /src/libxml2/xzlib.c:101,1
    - Dst: strcat
      Src: /src/libxml2/xzlib.c:108,1
    - Dst: strcat
      Src: /src/libxml2/xzlib.c:109,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - state
    - err
    - msg
    argTypes:
    - xz_statep
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 110
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 110
    functionName: xz_error
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached:
    - xmlFree
    - strcpy
    - strlen
    - xmlMalloc
    - strcat
    linkageType: ''
    returnType: void
    signature: 'static void xz_error(xz_statep state, int err, const char *msg) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libxml2/xzlib.c:226,1
    - Dst: xz_error
      Src: /src/libxml2/xzlib.c:232,1
    - Dst: strerror
      Src: /src/libxml2/xzlib.c:232,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - state
    - buf
    - len
    - have
    argTypes:
    - xz_statep
    - unsigned char*
    - unsigned int
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 238
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 238
    functionName: xz_load
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached:
    - read
    - strerror
    - xz_error
    linkageType: ''
    returnType: int
    signature: 'static int xz_load(xz_statep state, unsigned char *buf, unsigned int
      len, unsigned int *have) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xzlib.c:395,1
    - Dst: xmlFree
      Src: /src/libxml2/xzlib.c:407,1
    - Dst: xmlFree
      Src: /src/libxml2/xzlib.c:422,1
    - Dst: NEXT
      Src: /src/libxml2/xzlib.c:464,1
    - Dst: NEXT
      Src: /src/libxml2/xzlib.c:471,1
    - Dst: NEXT
      Src: /src/libxml2/xzlib.c:474,1
    - Dst: NEXT
      Src: /src/libxml2/xzlib.c:480,1
    - Dst: NEXT
      Src: /src/libxml2/xzlib.c:484,1
    - Dst: NEXT
      Src: /src/libxml2/xzlib.c:486,1
    - Dst: NEXT
      Src: /src/libxml2/xzlib.c:489,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xzlib.c:389,1
    - Dst: xmlFree
      Src: /src/libxml2/xzlib.c:393,1
    - Dst: xz_error
      Src: /src/libxml2/xzlib.c:409,1
    - Dst: xz_avail
      Src: /src/libxml2/xzlib.c:434,1
    - Dst: xz_error
      Src: /src/libxml2/xzlib.c:424,1
    - Dst: NEXT
      Src: /src/libxml2/xzlib.c:475,1
    - Dst: NEXT
      Src: /src/libxml2/xzlib.c:477,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xzlib.c:390,1
    - Dst: xz_error
      Src: /src/libxml2/xzlib.c:396,1
    - Dst: lzma_auto_decoder
      Src: /src/libxml2/xzlib.c:405,1
    - Dst: inflateInit2
      Src: /src/libxml2/xzlib.c:420,1
    - Dst: is_format_xz
      Src: /src/libxml2/xzlib.c:441,1
    - Dst: is_format_lzma
      Src: /src/libxml2/xzlib.c:441,1
    - Dst: xz_avail
      Src: /src/libxml2/xzlib.c:451,1
    - Dst: NEXT
      Src: /src/libxml2/xzlib.c:472,1
    - Dst: NEXT
      Src: /src/libxml2/xzlib.c:478,1
    - Dst: NEXT
      Src: /src/libxml2/xzlib.c:488,1
    - Dst: xmlFree
      Src: /src/libxml2/xzlib.c:406,1
    - Dst: xmlFree
      Src: /src/libxml2/xzlib.c:421,1
    - Dst: NEXT
      Src: /src/libxml2/xzlib.c:459,1
    - Dst: xz_error
      Src: /src/libxml2/xzlib.c:460,1
    - Dst: xz_error
      Src: /src/libxml2/xzlib.c:466,1
    - Dst: NEXT
      Src: /src/libxml2/xzlib.c:470,1
    - Dst: NEXT
      Src: /src/libxml2/xzlib.c:473,1
    - Dst: inflateReset
      Src: /src/libxml2/xzlib.c:495,1
    - Dst: memcpy
      Src: /src/libxml2/xzlib.c:514,1
    - Dst: crc32
      Src: /src/libxml2/xzlib.c:496,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 114
    argCount: 1
    argNames:
    - state
    argTypes:
    - xz_statep
    constantsTouched: []
    func_position:
      end: 521
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 521
    functionName: xz_head
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached:
    - xmlFree
    - NEXT
    - memcpy
    - is_format_lzma
    - xz_error
    - crc32
    - xz_avail
    - inflateReset
    - is_format_xz
    - xmlMalloc
    - inflateInit2
    - lzma_auto_decoder
    linkageType: ''
    returnType: int
    signature: 'static int xz_head(xz_statep state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xz_error
      Src: /src/libxml2/xzlib.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - xz_statep
    constantsTouched: []
    func_position:
      end: 126
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 126
    functionName: xz_reset
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached:
    - xz_error
    linkageType: ''
    returnType: void
    signature: 'static void xz_reset(xz_statep state) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xz_load
      Src: /src/libxml2/xzlib.c:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - xz_statep
    constantsTouched: []
    func_position:
      end: 259
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 259
    functionName: xz_avail
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached:
    - xz_load
    linkageType: ''
    returnType: int
    signature: 'static int xz_avail(xz_statep state) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xz_avail
      Src: /src/libxml2/xzlib.c:541,1
    - Dst: xz_error
      Src: /src/libxml2/xzlib.c:544,1
    - Dst: xz_error
      Src: /src/libxml2/xzlib.c:559,1
    - Dst: inflate
      Src: /src/libxml2/xzlib.c:557,1
    - Dst: lzma_code
      Src: /src/libxml2/xzlib.c:579,1
    - Dst: xz_error
      Src: /src/libxml2/xzlib.c:581,1
    - Dst: xz_error
      Src: /src/libxml2/xzlib.c:585,1
    - Dst: xz_error
      Src: /src/libxml2/xzlib.c:589,1
    - Dst: xz_error
      Src: /src/libxml2/xzlib.c:594,1
    - Dst: crc32
      Src: /src/libxml2/xzlib.c:604,1
    - Dst: xz_error
      Src: /src/libxml2/xzlib.c:611,1
    - Dst: gz_next4
      Src: /src/libxml2/xzlib.c:610,1
    - Dst: xz_error
      Src: /src/libxml2/xzlib.c:629,1
    - Dst: xz_error
      Src: /src/libxml2/xzlib.c:619,1
    - Dst: xz_error
      Src: /src/libxml2/xzlib.c:615,1
    - Dst: gz_next4
      Src: /src/libxml2/xzlib.c:610,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 88
    argCount: 1
    argNames:
    - state
    argTypes:
    - xz_statep
    constantsTouched: []
    func_position:
      end: 638
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 638
    functionName: xz_decomp
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached:
    - xz_error
    - crc32
    - xz_avail
    - gz_next4
    - lzma_code
    - inflate
    linkageType: ''
    returnType: int
    signature: 'static int xz_decomp(xz_statep state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NEXTZ
      Src: /src/libxml2/xzlib.c:362,1
    - Dst: NEXTZ
      Src: /src/libxml2/xzlib.c:364,1
    - Dst: NEXTZ
      Src: /src/libxml2/xzlib.c:363,1
    - Dst: NEXTZ
      Src: /src/libxml2/xzlib.c:365,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - state
    - ret
    argTypes:
    - xz_statep
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 371
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 371
    functionName: gz_next4
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached:
    - NEXTZ
    linkageType: ''
    returnType: int
    signature: 'static int gz_next4(xz_statep state, unsigned long *ret) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xz_avail
      Src: /src/libxml2/xzlib.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - xz_statep
    constantsTouched: []
    func_position:
      end: 272
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 272
    functionName: xz_avail_zstrm
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached:
    - xz_avail
    linkageType: ''
    returnType: int
    signature: 'static int xz_avail_zstrm(xz_statep state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xz_head
      Src: /src/libxml2/xzlib.c:697,1
    - Dst: xz_compressed
      Src: /src/libxml2/xzlib.c:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - xzFile
    constantsTouched: []
    func_position:
      end: 700
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 700
    functionName: __libxml2_xzcompressed
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached:
    - xz_head
    - xz_compressed
    linkageType: ''
    returnType: int
    signature: 'int __libxml2_xzcompressed(xzFile f) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xz_error
      Src: /src/libxml2/xzlib.c:722,1
    - Dst: xz_make
      Src: /src/libxml2/xzlib.c:757,1
    - Dst: memcpy
      Src: /src/libxml2/xzlib.c:744,1
    - Dst: xz_skip
      Src: /src/libxml2/xzlib.c:734,1
    - Dst: xz_load
      Src: /src/libxml2/xzlib.c:766,1
    - Dst: xz_decomp
      Src: /src/libxml2/xzlib.c:774,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 3
    argNames:
    - file
    - buf
    - len
    argTypes:
    - xzFile
    - void*
    - unsigned
    constantsTouched: []
    func_position:
      end: 789
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 789
    functionName: __libxml2_xzread
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached:
    - memcpy
    - xz_load
    - xz_make
    - xz_error
    - xz_skip
    - xz_decomp
    linkageType: ''
    returnType: int
    signature: 'int __libxml2_xzread(xzFile file, void *buf, unsigned len) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lzma_end
      Src: /src/libxml2/xzlib.c:804,1
    - Dst: inflateEnd
      Src: /src/libxml2/xzlib.c:807,1
    - Dst: xmlFree
      Src: /src/libxml2/xzlib.c:811,1
    - Dst: xmlFree
      Src: /src/libxml2/xzlib.c:810,1
    - Dst: xmlFree
      Src: /src/libxml2/xzlib.c:813,1
    - Dst: xmlFree
      Src: /src/libxml2/xzlib.c:815,1
    - Dst: close
      Src: /src/libxml2/xzlib.c:816,1
    - Dst: xmlFree
      Src: /src/libxml2/xzlib.c:817,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - file
    argTypes:
    - xzFile
    constantsTouched: []
    func_position:
      end: 819
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 819
    functionName: __libxml2_xzclose
    functionSourceFile: /src/libxml2/xzlib.c
    functionUses: []
    functionsReached:
    - xmlFree
    - inflateEnd
    - close
    - lzma_end
    linkageType: ''
    returnType: int
    signature: 'int __libxml2_xzclose(xzFile file) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufShrink
      Src: /src/libxml2/parserInternals.c:697,1
    - Dst: xmlBufUpdateInput
      Src: /src/libxml2/parserInternals.c:708,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 710
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 710
    functionName: xmlParserShrink
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlBufUpdateInput
    - xmlBufShrink
    linkageType: ''
    returnType: void
    signature: 'void xmlParserShrink(xmlParserCtxt *ctxt) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufUse
      Src: /src/libxml2/parserInternals.c:662,1
    - Dst: xmlParserInputBufferGrow
      Src: /src/libxml2/parserInternals.c:665,1
    - Dst: xmlBufEnd
      Src: /src/libxml2/parserInternals.c:675,1
    - Dst: xmlBufContent
      Src: /src/libxml2/parserInternals.c:667,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - in
    - len
    argTypes:
    - xmlParserInput*
    - int
    constantsTouched: []
    func_position:
      end: 678
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 678
    functionName: xmlParserInputGrow
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlBufUse
    - xmlParserInputBufferGrow
    - xmlBufEnd
    - xmlBufContent
    linkageType: ''
    returnType: int
    signature: 'int xmlParserInputGrow(xmlParserInput *in, int len) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErr
      Src: /src/libxml2/parserInternals.c:609,1
    - Dst: xmlBufUpdateInput
      Src: /src/libxml2/parserInternals.c:623,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parserInternals.c:631,1
    - Dst: xmlCharEncInput
      Src: /src/libxml2/parserInternals.c:622,1
    - Dst: xmlCtxtErrIO
      Src: /src/libxml2/parserInternals.c:625,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - ctxt
    - code
    argTypes:
    - xmlParserCtxt*
    - xmlParserErrors
    constantsTouched: []
    func_position:
      end: 633
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 633
    functionName: xmlParserCheckEOF
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlCtxtErrIO
    - xmlCharEncInput
    - xmlBufUpdateInput
    - xmlFatalErr
    linkageType: ''
    returnType: void
    signature: 'void xmlParserCheckEOF(xmlParserCtxt *ctxt, xmlParserErrors code) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtIsCatastrophicError
      Src: /src/libxml2/parserInternals.c:439,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 457
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 457
    functionName: xmlCtxtGetStatus
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlCtxtIsCatastrophicError
    linkageType: ''
    returnType: xmlParserStatus
    signature: 'xmlParserStatus xmlCtxtGetStatus(xmlParserCtxt *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - ctxt
    - impl
    - vctxt
    argTypes:
    - xmlParserCtxt*
    - xmlCharEncConvImpl
    - void*
    constantsTouched: []
    func_position:
      end: 1110
      start: 1102
    functionDepth: 0
    functionLinenumber: 1102
    functionLinenumberEnd: 1110
    functionName: xmlCtxtSetCharEncConvImpl
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlCtxtSetCharEncConvImpl(xmlParserCtxt *ctxt, xmlCharEncConvImpl
      impl, void *vctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlInputSetEncodingHandler
      Src: /src/libxml2/parserInternals.c:1398,1
    - Dst: xmlCtxtErrIO
      Src: /src/libxml2/parserInternals.c:1401,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 3
    argNames:
    - ctxt
    - input
    - handler
    argTypes:
    - xmlParserCtxt*
    - xmlParserInput*
    - xmlCharEncodingHandler*
    constantsTouched: []
    func_position:
      end: 1406
      start: 1395
    functionDepth: 0
    functionLinenumber: 1395
    functionLinenumberEnd: 1406
    functionName: xmlSwitchInputEncoding
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlInputSetEncodingHandler
    - xmlCtxtErrIO
    linkageType: ''
    returnType: int
    signature: 'int xmlSwitchInputEncoding(xmlParserCtxt *ctxt, xmlParserInput *input,
      xmlCharEncodingHandler *handler) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtIsCatastrophicError
      Src: /src/libxml2/parserInternals.c:3169,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/parserInternals.c:3175,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parserInternals.c:3173,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 3180
      start: 3160
    functionDepth: 0
    functionLinenumber: 3160
    functionLinenumberEnd: 3180
    functionName: xmlCtxtGetDocument
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlFreeDoc
    - xmlFatalErr
    - xmlCtxtIsCatastrophicError
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlCtxtGetDocument(xmlParserCtxt *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserFindNodeInfoIndex
      Src: /src/libxml2/parserInternals.c:3263,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - node
    argTypes:
    - xmlParserCtxt*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3269
      start: 3255
    functionDepth: 0
    functionLinenumber: 3255
    functionLinenumberEnd: 3269
    functionName: xmlParserFindNodeInfo
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlParserFindNodeInfoIndex
    linkageType: ''
    returnType: xmlParserNodeInfo*
    signature: 'const xmlParserNodeInfo *xmlParserFindNodeInfo(xmlParserCtxt *ctx,
      xmlNode *node) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreateCharEncodingHandler
      Src: /src/libxml2/parserInternals.c:1127,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parserInternals.c:1155,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/parserInternals.c:1147,1
    - Dst: xmlEncInputChunk
      Src: /src/libxml2/parserInternals.c:1133,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/parserInternals.c:1151,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/parserInternals.c:1171,1
    - Dst: xmlCreateCharEncodingHandler
      Src: /src/libxml2/parserInternals.c:1172,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/parserInternals.c:1186,1
    - Dst: xmlCreateCharEncodingHandler
      Src: /src/libxml2/parserInternals.c:1187,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 66
    argCount: 2
    argNames:
    - ctxt
    - hout
    argTypes:
    - xmlParserCtxtPtr
    - xmlCharEncodingHandlerPtr*
    constantsTouched: []
    func_position:
      end: 1193
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1193
    functionName: xmlDetectEBCDIC
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlStrncmp
    - IS_BLANK_CH
    - xmlCharEncCloseFunc
    - xmlCreateCharEncodingHandler
    - xmlEncInputChunk
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'static xmlParserErrors xmlDetectEBCDIC(xmlParserCtxtPtr ctxt, xmlCharEncodingHandlerPtr
      *hout) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/parserInternals.c:3142,1
    - Dst: memcpy
      Src: /src/libxml2/parserInternals.c:3146,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - ctxt
    - sax
    argTypes:
    - xmlParserCtxt*
    - xmlSAXHandler*
    constantsTouched: []
    func_position:
      end: 3150
      start: 3135
    functionDepth: 0
    functionLinenumber: 3135
    functionLinenumberEnd: 3150
    functionName: xmlCtxtSetSaxHandler
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlMalloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: 'int xmlCtxtSetSaxHandler(xmlParserCtxt *ctxt, const xmlSAXHandler
      *sax) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewInputFromString
      Src: /src/libxml2/parserInternals.c:1929,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/parserInternals.c:1931,1
    - Dst: xmlSwitchInputEncodingName
      Src: /src/libxml2/parserInternals.c:1936,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 5
    argNames:
    - ctxt
    - url
    - str
    - encoding
    - flags
    argTypes:
    - xmlParserCtxt*
    - char*
    - char*
    - char*
    - xmlParserInputFlags
    constantsTouched: []
    func_position:
      end: 1939
      start: 1920
    functionDepth: 0
    functionLinenumber: 1920
    functionLinenumberEnd: 1939
    functionName: xmlCtxtNewInputFromString
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlSwitchInputEncodingName
    - xmlNewInputFromString
    - xmlCtxtErrMemory
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlCtxtNewInputFromString(xmlParserCtxt *ctxt, const
      char *url, const char *str, const char *encoding, xmlParserInputFlags flags) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewInputBufferString
      Src: /src/libxml2/parserInternals.c:1905,1
    - Dst: xmlNewInputInternal
      Src: /src/libxml2/parserInternals.c:1909,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - url
    - str
    - flags
    argTypes:
    - char*
    - char*
    - xmlParserInputFlags
    constantsTouched: []
    func_position:
      end: 1910
      start: 1897
    functionDepth: 0
    functionLinenumber: 1897
    functionLinenumberEnd: 1910
    functionName: xmlNewInputFromString
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlNewInputInternal
    - xmlNewInputBufferString
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlNewInputFromString(const char *url, const char
      *str, xmlParserInputFlags flags) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 3223
      start: 3217
    functionDepth: 0
    functionLinenumber: 3217
    functionLinenumberEnd: 3223
    functionName: xmlCtxtGetValidCtxt
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlValidCtxt*
    signature: 'xmlValidCtxt *xmlCtxtGetValidCtxt(xmlParserCtxt *ctxt) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlAbort
      Src: /src/libxml2/parserInternals.c:1050,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - out
    - val
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1060
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1060
    functionName: xmlCopyCharMultiByte
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlAbort
    linkageType: ''
    returnType: int
    signature: 'int xmlCopyCharMultiByte(xmlChar *out, int val) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewInputFromIO
      Src: /src/libxml2/parserInternals.c:2079,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/parserInternals.c:2081,1
    - Dst: xmlSwitchInputEncodingName
      Src: /src/libxml2/parserInternals.c:2086,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 7
    argNames:
    - ctxt
    - url
    - ioRead
    - ioClose
    - ioCtxt
    - encoding
    - flags
    argTypes:
    - xmlParserCtxt*
    - char*
    - xmlInputReadCallback
    - xmlInputCloseCallback
    - void*
    - char*
    - xmlParserInputFlags
    constantsTouched: []
    func_position:
      end: 2089
      start: 2068
    functionDepth: 0
    functionLinenumber: 2068
    functionLinenumberEnd: 2089
    functionName: xmlCtxtNewInputFromIO
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlNewInputFromIO
    - xmlSwitchInputEncodingName
    - xmlCtxtErrMemory
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlCtxtNewInputFromIO(xmlParserCtxt *ctxt, const char
      *url, xmlInputReadCallback ioRead, xmlInputCloseCallback ioClose, void *ioCtxt,
      const char *encoding, xmlParserInputFlags flags) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlNoNetExists
      Src: /src/libxml2/parserInternals.c:2253,1
    - Dst: xmlCatalogResolve
      Src: /src/libxml2/parserInternals.c:2273,1
    - Dst: xmlCatalogLocalResolveURI
      Src: /src/libxml2/parserInternals.c:2286,1
    - Dst: xmlCatalogLocalResolve
      Src: /src/libxml2/parserInternals.c:2265,1
    - Dst: xmlGetLastErrorInternal
      Src: /src/libxml2/parserInternals.c:2257,1
    - Dst: xmlCatalogResolveURI
      Src: /src/libxml2/parserInternals.c:2290,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2298,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 5
    argNames:
    - url
    - publicId
    - localCatalogs
    - allowGlobal
    - out
    argTypes:
    - char*
    - char*
    - void*
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 2304
      start: 2234
    functionDepth: 0
    functionLinenumber: 2234
    functionLinenumberEnd: 2304
    functionName: xmlResolveFromCatalog
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlCatalogLocalResolve
    - xmlFree
    - xmlNoNetExists
    - xmlCatalogResolve
    - xmlCatalogResolveURI
    - xmlGetLastErrorInternal
    - xmlCatalogLocalResolveURI
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'static xmlParserErrors xmlResolveFromCatalog(const char *url, const
      char *publicId, void *localCatalogs, int allowGlobal, char **out) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlCatalogGetDefaults
      Src: /src/libxml2/parserInternals.c:2327,1
    - Dst: xmlCtxtErr
      Src: /src/libxml2/parserInternals.c:2343,1
    - Dst: xmlErrString
      Src: /src/libxml2/parserInternals.c:2345,1
    - Dst: xmlResolveFromCatalog
      Src: /src/libxml2/parserInternals.c:2340,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 15
    argCount: 3
    argNames:
    - ctxt
    - url
    - publicId
    argTypes:
    - xmlParserCtxtPtr
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2348
      start: 2306
    functionDepth: 0
    functionLinenumber: 2306
    functionLinenumberEnd: 2348
    functionName: xmlCtxtResolveFromCatalog
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlErrString
    - xmlCatalogGetDefaults
    - xmlResolveFromCatalog
    - xmlCtxtErr
    linkageType: ''
    returnType: char*
    signature: 'static char *xmlCtxtResolveFromCatalog(xmlParserCtxtPtr ctxt, const
      char *url, const char *publicId) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreateCharEncodingHandler
      Src: /src/libxml2/parserInternals.c:1591,1
    - Dst: xmlCtxtErrIO
      Src: /src/libxml2/parserInternals.c:1601,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parserInternals.c:1594,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:1595,1
    - Dst: xmlInputSetEncodingHandler
      Src: /src/libxml2/parserInternals.c:1599,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:1602,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/parserInternals.c:1640,1
    - Dst: xmlWarningMsg
      Src: /src/libxml2/parserInternals.c:1647,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:1651,1
    - Dst: xmlStrdup
      Src: /src/libxml2/parserInternals.c:1652,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/parserInternals.c:1654,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:1660,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 52
    argCount: 2
    argNames:
    - ctxt
    - encoding
    argTypes:
    - xmlParserCtxt*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1662
      start: 1576
    functionDepth: 0
    functionLinenumber: 1576
    functionLinenumberEnd: 1662
    functionName: xmlSetDeclaredEncoding
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrcasecmp
    - xmlCtxtErrMemory
    - xmlFatalErr
    - xmlStrdup
    - xmlCtxtErrIO
    - xmlInputSetEncodingHandler
    - xmlCreateCharEncodingHandler
    - xmlWarningMsg
    linkageType: ''
    returnType: void
    signature: 'void xmlSetDeclaredEncoding(xmlParserCtxt *ctxt, xmlChar *encoding) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlAllocParserInputBuffer
      Src: /src/libxml2/parserInternals.c:2044,1
    - Dst: ioClose
      Src: /src/libxml2/parserInternals.c:2047,1
    - Dst: xmlNewInputInternal
      Src: /src/libxml2/parserInternals.c:2055,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 5
    argNames:
    - url
    - ioRead
    - ioClose
    - ioCtxt
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - xmlInputReadCallback
    - xmlInputCloseCallback
    - void*
    - xmlParserInputFlags
    constantsTouched: []
    func_position:
      end: 2056
      start: 2035
    functionDepth: 0
    functionLinenumber: 2035
    functionLinenumberEnd: 2056
    functionName: xmlNewInputFromIO
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlNewInputInternal
    - ioClose
    - xmlAllocParserInputBuffer
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlNewInputFromIO(const char *url, xmlInputReadCallback
      ioRead, xmlInputCloseCallback ioClose, void *ioCtxt, xmlParserInputFlags flags
      ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 3027
      start: 3021
    functionDepth: 0
    functionLinenumber: 3021
    functionLinenumberEnd: 3027
    functionName: xmlCtxtGetPrivate
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'void *xmlCtxtGetPrivate(xmlParserCtxt *ctxt) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserGrow
      Src: /src/libxml2/parserInternals.c:774,1
    - Dst: xmlCtxtErrIO
      Src: /src/libxml2/parserInternals.c:842,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 63
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 846
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 846
    functionName: xmlNextChar
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlCtxtErrIO
    - xmlParserGrow
    linkageType: ''
    returnType: void
    signature: 'void xmlNextChar(xmlParserCtxt *ctxt) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufShrink
      Src: /src/libxml2/parserInternals.c:733,1
    - Dst: xmlBufUpdateInput
      Src: /src/libxml2/parserInternals.c:743,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - in
    argTypes:
    - xmlParserInput*
    constantsTouched: []
    func_position:
      end: 745
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 745
    functionName: xmlParserInputShrink
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlBufUpdateInput
    - xmlBufShrink
    linkageType: ''
    returnType: void
    signature: 'void xmlParserInputShrink(xmlParserInput *in) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserGrow
      Src: /src/libxml2/parserInternals.c:1449,1
    - Dst: xmlSwitchEncoding
      Src: /src/libxml2/parserInternals.c:1560,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parserInternals.c:1555,1
    - Dst: xmlDetectEBCDIC
      Src: /src/libxml2/parserInternals.c:1553,1
    - Dst: xmlSwitchToEncoding
      Src: /src/libxml2/parserInternals.c:1557,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 96
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 1563
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1563
    functionName: xmlDetectEncoding
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlParserGrow
    - xmlSwitchEncoding
    - xmlDetectEBCDIC
    - xmlFatalErr
    - xmlSwitchToEncoding
    linkageType: ''
    returnType: void
    signature: 'void xmlDetectEncoding(xmlParserCtxt *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/parserInternals.c:3002,1
    - Dst: memset
      Src: /src/libxml2/parserInternals.c:3007,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/parserInternals.c:3009,1
    - Dst: xmlInitSAXParserCtxt
      Src: /src/libxml2/parserInternals.c:3008,1
    - Dst: xmlMalloc
      Src: /src/libxml2/parserInternals.c:3004,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - sax
    - userData
    argTypes:
    - xmlSAXHandler*
    - void*
    constantsTouched: []
    func_position:
      end: 3013
      start: 2997
    functionDepth: 0
    functionLinenumber: 2997
    functionLinenumberEnd: 3013
    functionName: xmlNewSAXParserCtxt
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlInitSAXParserCtxt
    - memset
    - xmlInitParser
    - xmlFreeParserCtxt
    - xmlMalloc
    linkageType: ''
    returnType: xmlParserCtxt*
    signature: 'xmlParserCtxt *xmlNewSAXParserCtxt(const xmlSAXHandler *sax, void
      *userData) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlErrString
      Src: /src/libxml2/parserInternals.c:473,1
    - Dst: xmlCtxtErr
      Src: /src/libxml2/parserInternals.c:487,1
    - Dst: xmlCtxtErr
      Src: /src/libxml2/parserInternals.c:484,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - ctxt
    - code
    - info
    argTypes:
    - xmlParserCtxt*
    - xmlParserErrors
    - char*
    constantsTouched: []
    func_position:
      end: 491
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 491
    functionName: xmlFatalErr
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlErrString
    - xmlCtxtErr
    linkageType: ''
    returnType: void
    signature: 'void xmlFatalErr(xmlParserCtxt *ctxt, xmlParserErrors code, const
      char *info) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlInputSetEncodingHandler
      Src: /src/libxml2/parserInternals.c:1426,1
    - Dst: xmlCtxtErrIO
      Src: /src/libxml2/parserInternals.c:1428,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - ctxt
    - handler
    argTypes:
    - xmlParserCtxt*
    - xmlCharEncodingHandler*
    constantsTouched: []
    func_position:
      end: 1433
      start: 1418
    functionDepth: 0
    functionLinenumber: 1418
    functionLinenumberEnd: 1433
    functionName: xmlSwitchToEncoding
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlInputSetEncodingHandler
    - xmlCtxtErrIO
    linkageType: ''
    returnType: int
    signature: 'int xmlSwitchToEncoding(xmlParserCtxt *ctxt, xmlCharEncodingHandler
      *handler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - xmlExternalEntityLoader
    constantsTouched: []
    func_position:
      end: 2563
      start: 2560
    functionDepth: 0
    functionLinenumber: 2560
    functionLinenumberEnd: 2563
    functionName: xmlSetExternalEntityLoader
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlSetExternalEntityLoader(xmlExternalEntityLoader f) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - seq
    argTypes:
    - xmlParserNodeInfoSeq*
    constantsTouched: []
    func_position:
      end: 3287
      start: 3279
    functionDepth: 0
    functionLinenumber: 3279
    functionLinenumberEnd: 3287
    functionName: xmlInitNodeInfoSeq
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlInitNodeInfoSeq(xmlParserNodeInfoSeq *seq) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtResolveFromCatalog
      Src: /src/libxml2/parserInternals.c:2493,1
    - Dst: xmlNewInputFromFile
      Src: /src/libxml2/parserInternals.c:2507,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2511,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 3
    argNames:
    - url
    - publicId
    - ctxt
    argTypes:
    - char*
    - char*
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 2513
      start: 2480
    functionDepth: 0
    functionLinenumber: 2480
    functionLinenumberEnd: 2513
    functionName: xmlDefaultExternalEntityLoader
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlNewInputFromFile
    - xmlCtxtResolveFromCatalog
    linkageType: ''
    returnType: xmlParserInputPtr
    signature: 'static xmlParserInputPtr xmlDefaultExternalEntityLoader(const char
      *url, const char *publicId, xmlParserCtxtPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - ctxt
    - catalogs
    argTypes:
    - xmlParserCtxt*
    - void*
    constantsTouched: []
    func_position:
      end: 3073
      start: 3067
    functionDepth: 0
    functionLinenumber: 3067
    functionLinenumberEnd: 3073
    functionName: xmlCtxtSetCatalogs
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlCtxtSetCatalogs(xmlParserCtxt *ctxt, void *catalogs) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlResetError
      Src: /src/libxml2/parserInternals.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 165
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 165
    functionName: xmlCtxtResetLastError
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlResetError
    linkageType: ''
    returnType: void
    signature: 'void xmlCtxtResetLastError(void *ctx) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtNewInputFromString
      Src: /src/libxml2/parserInternals.c:2211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - ctxt
    - buffer
    argTypes:
    - xmlParserCtxt*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2213
      start: 2209
    functionDepth: 0
    functionLinenumber: 2209
    functionLinenumberEnd: 2213
    functionName: xmlNewStringInputStream
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlCtxtNewInputFromString
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlNewStringInputStream(xmlParserCtxt *ctxt, const
      xmlChar *buffer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parserInternals.c:3207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 3208
      start: 3202
    functionDepth: 0
    functionLinenumber: 3202
    functionLinenumberEnd: 3208
    functionName: xmlCtxtIsStopped
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - PARSER_STOPPED
    linkageType: ''
    returnType: int
    signature: 'int xmlCtxtIsStopped(xmlParserCtxt *ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewInputFromMemory
      Src: /src/libxml2/parserInternals.c:1868,1
    - Dst: xmlSwitchInputEncodingName
      Src: /src/libxml2/parserInternals.c:1875,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/parserInternals.c:1870,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 6
    argNames:
    - ctxt
    - url
    - mem
    - size
    - encoding
    - flags
    argTypes:
    - xmlParserCtxt*
    - char*
    - void*
    - size_t
    - char*
    - xmlParserInputFlags
    constantsTouched: []
    func_position:
      end: 1878
      start: 1859
    functionDepth: 0
    functionLinenumber: 1859
    functionLinenumberEnd: 1878
    functionName: xmlCtxtNewInputFromMemory
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlSwitchInputEncodingName
    - xmlNewInputFromMemory
    - xmlCtxtErrMemory
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlCtxtNewInputFromMemory(xmlParserCtxt *ctxt, const
      char *url, const void *mem, size_t size, const char *encoding, xmlParserInputFlags
      flags) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtNewInputFromString
      Src: /src/libxml2/parserInternals.c:2176,1
    - Dst: xmlLoadResource
      Src: /src/libxml2/parserInternals.c:2186,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 2
    argNames:
    - ctxt
    - ent
    argTypes:
    - xmlParserCtxt*
    - xmlEntity*
    constantsTouched: []
    func_position:
      end: 2198
      start: 2168
    functionDepth: 0
    functionLinenumber: 2168
    functionLinenumberEnd: 2198
    functionName: xmlNewEntityInputStream
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlLoadResource
    - xmlCtxtNewInputFromString
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlNewEntityInputStream(xmlParserCtxt *ctxt, xmlEntity
      *ent) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 3194
      start: 3188
    functionDepth: 0
    functionLinenumber: 3188
    functionLinenumberEnd: 3194
    functionName: xmlCtxtIsHtml
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlCtxtIsHtml(xmlParserCtxt *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewInputBufferMemory
      Src: /src/libxml2/parserInternals.c:1843,1
    - Dst: xmlNewInputInternal
      Src: /src/libxml2/parserInternals.c:1847,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 4
    argNames:
    - url
    - mem
    - size
    - flags
    argTypes:
    - char*
    - void*
    - size_t
    - xmlParserInputFlags
    constantsTouched: []
    func_position:
      end: 1848
      start: 1835
    functionDepth: 0
    functionLinenumber: 1835
    functionLinenumberEnd: 1848
    functionName: xmlNewInputFromMemory
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlNewInputInternal
    - xmlNewInputBufferMemory
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlNewInputFromMemory(const char *url, const void
      *mem, size_t size, xmlParserInputFlags flags) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewInputInternal
      Src: /src/libxml2/parserInternals.c:2146,1
    - Dst: xmlSwitchInputEncodingName
      Src: /src/libxml2/parserInternals.c:2154,1
    - Dst: xmlGetCharEncodingName
      Src: /src/libxml2/parserInternals.c:2152,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/parserInternals.c:2148,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 3
    argNames:
    - ctxt
    - buf
    - enc
    argTypes:
    - xmlParserCtxt*
    - xmlParserInputBuffer*
    - xmlCharEncoding
    constantsTouched: []
    func_position:
      end: 2157
      start: 2137
    functionDepth: 0
    functionLinenumber: 2137
    functionLinenumberEnd: 2157
    functionName: xmlNewIOInputStream
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlSwitchInputEncodingName
    - xmlNewInputInternal
    - xmlGetCharEncodingName
    - xmlCtxtErrMemory
    linkageType: ''
    returnType: xmlParserInput*
    signature: "xmlParserInput *xmlNewIOInputStream(xmlParserCtxt *ctxt, xmlParserInputBuffer
      *buf,\t xmlCharEncoding enc) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlCopyCharMultiByte
      Src: /src/libxml2/parserInternals.c:1078,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - out
    - val
    argTypes:
    - int
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1082
      start: 1073
    functionDepth: 0
    functionLinenumber: 1073
    functionLinenumberEnd: 1082
    functionName: xmlCopyChar
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlCopyCharMultiByte
    linkageType: ''
    returnType: int
    signature: 'int xmlCopyChar(int len ATTRIBUTE_UNUSED, xmlChar *out, int val) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlAllocParserInputBuffer
      Src: /src/libxml2/parserInternals.c:2104,1
    - Dst: xmlParserInputBufferPush
      Src: /src/libxml2/parserInternals.c:2117,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parserInternals.c:2120,1
    - Dst: xmlBufResetInput
      Src: /src/libxml2/parserInternals.c:2118,1
    - Dst: xmlNewInputInternal
      Src: /src/libxml2/parserInternals.c:2108,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - url
    - chunk
    - size
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2126
      start: 2099
    functionDepth: 0
    functionLinenumber: 2099
    functionLinenumberEnd: 2126
    functionName: xmlNewPushInput
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlNewInputInternal
    - xmlBufResetInput
    - xmlFreeInputStream
    - xmlParserInputBufferPush
    - xmlAllocParserInputBuffer
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlNewPushInput(const char *url, const char *chunk,
      int size) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictFree
      Src: /src/libxml2/parserInternals.c:3104,1
    - Dst: xmlDictReference
      Src: /src/libxml2/parserInternals.c:3106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - ctxt
    - dict
    argTypes:
    - xmlParserCtxt*
    - xmlDict*
    constantsTouched: []
    func_position:
      end: 3108
      start: 3098
    functionDepth: 0
    functionLinenumber: 3098
    functionLinenumberEnd: 3108
    functionName: xmlCtxtSetDict
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlDictReference
    - xmlDictFree
    linkageType: ''
    returnType: void
    signature: 'void xmlCtxtSetDict(xmlParserCtxt *ctxt, xmlDict *dict) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - seq
    - node
    argTypes:
    - xmlParserNodeInfoSeq*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3345
      start: 3316
    functionDepth: 0
    functionLinenumber: 3316
    functionLinenumberEnd: 3345
    functionName: xmlParserFindNodeInfoIndex
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: 'unsigned long xmlParserFindNodeInfoIndex(xmlParserNodeInfoSeq *seq,
      xmlNode *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/parserInternals.c:74,1
    - Dst: xmlPrintErrorMessage
      Src: /src/libxml2/parserInternals.c:77,1
    - Dst: xmlPrintErrorMessage
      Src: /src/libxml2/parserInternals.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - version
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 85
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 85
    functionName: xmlCheckVersion
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlInitParser
    - xmlPrintErrorMessage
    linkageType: ''
    returnType: void
    signature: 'void xmlCheckVersion(int version) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/parserInternals.c:1790,1
    - Dst: memset
      Src: /src/libxml2/parserInternals.c:1795,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/parserInternals.c:1792,1
    - Dst: xmlBufResetInput
      Src: /src/libxml2/parserInternals.c:1800,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/parserInternals.c:1803,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parserInternals.c:1805,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - buf
    - filename
    argTypes:
    - xmlParserInputBufferPtr
    - char*
    constantsTouched: []
    func_position:
      end: 1811
      start: 1786
    functionDepth: 0
    functionLinenumber: 1786
    functionLinenumberEnd: 1811
    functionName: xmlNewInputInternal
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlMemStrdup
    - xmlBufResetInput
    - memset
    - xmlFreeInputStream
    - xmlFreeParserInputBuffer
    - xmlMalloc
    linkageType: ''
    returnType: xmlParserInputPtr
    signature: 'static xmlParserInputPtr xmlNewInputInternal(xmlParserInputBufferPtr
      buf, const char *filename) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:3302,1
    - Dst: xmlInitNodeInfoSeq
      Src: /src/libxml2/parserInternals.c:3303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - seq
    argTypes:
    - xmlParserNodeInfoSeq*
    constantsTouched: []
    func_position:
      end: 3304
      start: 3296
    functionDepth: 0
    functionLinenumber: 3296
    functionLinenumberEnd: 3304
    functionName: xmlClearNodeInfoSeq
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlInitNodeInfoSeq
    linkageType: ''
    returnType: void
    signature: 'void xmlClearNodeInfoSeq(xmlParserNodeInfoSeq *seq) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlLoadResource
      Src: /src/libxml2/parserInternals.c:1769,1
    - Dst: xmlSwitchInputEncodingName
      Src: /src/libxml2/parserInternals.c:1774,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 5
    argNames:
    - ctxt
    - url
    - publicId
    - encoding
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlParserCtxt*
    - char*
    - char*
    - char*
    - xmlParserInputFlags
    constantsTouched: []
    func_position:
      end: 1777
      start: 1760
    functionDepth: 0
    functionLinenumber: 1760
    functionLinenumberEnd: 1777
    functionName: xmlCtxtNewInputFromUrl
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlLoadResource
    - xmlSwitchInputEncodingName
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlCtxtNewInputFromUrl(xmlParserCtxt *ctxt, const
      char *url, const char *publicId, const char *encoding, xmlParserInputFlags flags
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtReset
      Src: /src/libxml2/parserInternals.c:3242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 3243
      start: 3239
    functionDepth: 0
    functionLinenumber: 3239
    functionLinenumberEnd: 3243
    functionName: xmlClearParserCtxt
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlCtxtReset
    linkageType: ''
    returnType: void
    signature: 'void xmlClearParserCtxt(xmlParserCtxt *ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/parserInternals.c:181,1
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/parserInternals.c:202,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 204
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 204
    functionName: xmlCtxtErrMemory
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlRaiseMemoryError
    linkageType: ''
    returnType: void
    signature: 'void xmlCtxtErrMemory(xmlParserCtxt *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlDefaultExternalEntityLoader
      Src: /src/libxml2/parserInternals.c:2537,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - URL
    - publicId
    - ctxt
    argTypes:
    - char*
    - char*
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 2543
      start: 2526
    functionDepth: 0
    functionLinenumber: 2526
    functionLinenumberEnd: 2543
    functionName: xmlNoNetExternalEntityLoader
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlDefaultExternalEntityLoader
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlNoNetExternalEntityLoader(const char *URL, const
      char *publicId, xmlParserCtxt *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 3087
      start: 3081
    functionDepth: 0
    functionLinenumber: 3081
    functionLinenumberEnd: 3087
    functionName: xmlCtxtGetDict
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlDict*
    signature: 'xmlDict *xmlCtxtGetDict(xmlParserCtxt *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3481
      start: 3471
    functionDepth: 0
    functionLinenumber: 3471
    functionLinenumberEnd: 3481
    functionName: xmlKeepBlanksDefault
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlKeepBlanksDefault(int val) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewInputFromFd
      Src: /src/libxml2/parserInternals.c:1999,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/parserInternals.c:2001,1
    - Dst: xmlSwitchInputEncodingName
      Src: /src/libxml2/parserInternals.c:2006,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 5
    argNames:
    - ctxt
    - url
    - fd
    - encoding
    - flags
    argTypes:
    - xmlParserCtxt*
    - char*
    - int
    - char*
    - xmlParserInputFlags
    constantsTouched: []
    func_position:
      end: 2009
      start: 1987
    functionDepth: 0
    functionLinenumber: 1987
    functionLinenumberEnd: 2009
    functionName: xmlCtxtNewInputFromFd
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlNewInputFromFd
    - xmlSwitchInputEncodingName
    - xmlCtxtErrMemory
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlCtxtNewInputFromFd(xmlParserCtxt *ctxt, const char
      *url, int fd, const char *encoding, xmlParserInputFlags flags) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsCatastrophicError
      Src: /src/libxml2/parserInternals.c:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: xmlCtxtIsCatastrophicError
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlIsCatastrophicError
    linkageType: ''
    returnType: int
    signature: 'int xmlCtxtIsCatastrophicError(xmlParserCtxt *ctxt) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/parserInternals.c:302,1
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/parserInternals.c:312,1
    - Dst: xmlCtxtIsCatastrophicError
      Src: /src/libxml2/parserInternals.c:321,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/parserInternals.c:317,1
    - Dst: xmlVRaiseError
      Src: /src/libxml2/parserInternals.c:307,1
    - Dst: xmlIsCatastrophicError
      Src: /src/libxml2/parserInternals.c:332,1
    - Dst: xmlVRaiseError
      Src: /src/libxml2/parserInternals.c:374,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/parserInternals.c:380,1
    - Dst: xmlCtxtIsCatastrophicError
      Src: /src/libxml2/parserInternals.c:389,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 81
    argCount: 11
    argNames:
    - ctxt
    - node
    - domain
    - code
    - level
    - str1
    - str2
    - str3
    - int1
    - msg
    - ap
    argTypes:
    - xmlParserCtxt*
    - xmlNode*
    - xmlErrorDomain
    - xmlParserErrors
    - xmlErrorLevel
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - int
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 394
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 394
    functionName: xmlCtxtVErr
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlRaiseMemoryError
    - PARSER_STOPPED
    - xmlCtxtErrMemory
    - xmlIsCatastrophicError
    - xmlVRaiseError
    - xmlCtxtIsCatastrophicError
    linkageType: ''
    returnType: void
    signature: 'void xmlCtxtVErr(xmlParserCtxt *ctxt, xmlNode *node, xmlErrorDomain
      domain, xmlParserErrors code, xmlErrorLevel level, const xmlChar *str1, const
      xmlChar *str2, const xmlChar *str3, int int1, const char *msg, va_list ap) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 531
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 531
    functionName: xmlHaltParser
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlHaltParser(xmlParserCtxt *ctxt) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserGrow
      Src: /src/libxml2/parserInternals.c:879,1
    - Dst: xmlCtxtErrIO
      Src: /src/libxml2/parserInternals.c:977,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parserInternals.c:914,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 95
    argCount: 2
    argNames:
    - ctxt
    - len
    argTypes:
    - xmlParserCtxt*
    - int*
    constantsTouched: []
    func_position:
      end: 992
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 992
    functionName: xmlCurrentChar
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlFatalErr
    - xmlCtxtErrIO
    - xmlParserGrow
    linkageType: ''
    returnType: int
    signature: 'int xmlCurrentChar(xmlParserCtxt *ctxt, int *len) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlErrString
      Src: /src/libxml2/parserInternals.c:242,1
    - Dst: xmlCtxtErr
      Src: /src/libxml2/parserInternals.c:254,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 3
    argNames:
    - ctxt
    - code
    - uri
    argTypes:
    - xmlParserCtxt*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 257
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 257
    functionName: xmlCtxtErrIO
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlErrString
    - xmlCtxtErr
    linkageType: ''
    returnType: void
    signature: 'void xmlCtxtErrIO(xmlParserCtxt *ctxt, int code, const char *uri) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlAllocParserInputBuffer
      Src: /src/libxml2/parserInternals.c:1967,1
    - Dst: xmlInputFromFd
      Src: /src/libxml2/parserInternals.c:1971,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/parserInternals.c:1972,1
    - Dst: xmlNewInputInternal
      Src: /src/libxml2/parserInternals.c:1976,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - url
    - fd
    - flags
    argTypes:
    - char*
    - int
    - xmlParserInputFlags
    constantsTouched: []
    func_position:
      end: 1977
      start: 1960
    functionDepth: 0
    functionLinenumber: 1960
    functionLinenumberEnd: 1977
    functionName: xmlNewInputFromFd
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlInputFromFd
    - xmlNewInputInternal
    - xmlFreeParserInputBuffer
    - xmlAllocParserInputBuffer
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlNewInputFromFd(const char *url, int fd, xmlParserInputFlags
      flags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3429
      start: 3423
    functionDepth: 0
    functionLinenumber: 3423
    functionLinenumberEnd: 3429
    functionName: xmlPedanticParserDefault
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlPedanticParserDefault(int val) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/parserInternals.c:1304,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/parserInternals.c:1340,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/parserInternals.c:1333,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/parserInternals.c:1316,1
    - Dst: xmlBufCreate
      Src: /src/libxml2/parserInternals.c:1338,1
    - Dst: xmlBufShrink
      Src: /src/libxml2/parserInternals.c:1361,1
    - Dst: xmlCharEncInput
      Src: /src/libxml2/parserInternals.c:1375,1
    - Dst: xmlBufResetInput
      Src: /src/libxml2/parserInternals.c:1380,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - input
    - handler
    argTypes:
    - xmlParserInput*
    - xmlCharEncodingHandler*
    constantsTouched: []
    func_position:
      end: 1383
      start: 1296
    functionDepth: 0
    functionLinenumber: 1296
    functionLinenumberEnd: 1383
    functionName: xmlInputSetEncodingHandler
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlCharEncInput
    - xmlBufResetInput
    - xmlBufShrink
    - xmlBufCreate
    - xmlCharEncCloseFunc
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'xmlParserErrors xmlInputSetEncodingHandler(xmlParserInput *input,
      xmlCharEncodingHandler *handler) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/parserInternals.c:1737,1
    - Dst: memset
      Src: /src/libxml2/parserInternals.c:1742,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/parserInternals.c:1739,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 1747
      start: 1733
    functionDepth: 0
    functionLinenumber: 1733
    functionLinenumberEnd: 1747
    functionName: xmlNewInputStream
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    - xmlCtxtErrMemory
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlNewInputStream(xmlParserCtxt *ctxt) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserFindNodeInfoIndex
      Src: /src/libxml2/parserInternals.c:3365,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/parserInternals.c:3383,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/parserInternals.c:3380,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/parserInternals.c:3388,1
    - Dst: xmlRealloc
      Src: /src/libxml2/parserInternals.c:3386,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 2
    argNames:
    - ctxt
    - info
    argTypes:
    - xmlParserCtxt*
    - xmlParserNodeInfo*
    constantsTouched: []
    func_position:
      end: 3407
      start: 3356
    functionDepth: 0
    functionLinenumber: 3356
    functionLinenumberEnd: 3407
    functionName: xmlParserAddNodeInfo
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlParserFindNodeInfoIndex
    - xmlCtxtErrMemory
    linkageType: ''
    returnType: void
    signature: 'void xmlParserAddNodeInfo(xmlParserCtxt *ctxt, xmlParserNodeInfo *info) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSwitchInputEncodingName
      Src: /src/libxml2/parserInternals.c:1284,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - ctxt
    - encoding
    argTypes:
    - xmlParserCtxt*
    - char*
    constantsTouched: []
    func_position:
      end: 1285
      start: 1279
    functionDepth: 0
    functionLinenumber: 1279
    functionLinenumberEnd: 1285
    functionName: xmlSwitchEncodingName
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlSwitchInputEncodingName
    linkageType: ''
    returnType: int
    signature: 'int xmlSwitchEncodingName(xmlParserCtxt *ctxt, const char *encoding) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:1716,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/parserInternals.c:1721,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:1722,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:1717,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - input
    argTypes:
    - xmlParserInput*
    constantsTouched: []
    func_position:
      end: 1723
      start: 1712
    functionDepth: 0
    functionLinenumber: 1712
    functionLinenumberEnd: 1723
    functionName: xmlFreeInputStream
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeParserInputBuffer
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeInputStream(xmlParserInput *input) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 3123
      start: 3117
    functionDepth: 0
    functionLinenumber: 3117
    functionLinenumberEnd: 3123
    functionName: xmlCtxtGetSaxHandler
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlSAXHandler*
    signature: 'xmlSAXHandler *xmlCtxtGetSaxHandler(xmlParserCtxt *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 146
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 146
    functionName: xmlCtxtGetLastError
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlError*
    signature: 'const xmlError *xmlCtxtGetLastError(void *ctx) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 1699
      start: 1684
    functionDepth: 0
    functionLinenumber: 1684
    functionLinenumberEnd: 1699
    functionName: xmlGetActualEncoding
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlGetActualEncoding(xmlParserCtxt *ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewSAXParserCtxt
      Src: /src/libxml2/parserInternals.c:2979,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2980
      start: 2976
    functionDepth: 0
    functionLinenumber: 2976
    functionLinenumberEnd: 2980
    functionName: xmlNewParserCtxt
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlNewSAXParserCtxt
    linkageType: ''
    returnType: xmlParserCtxt*
    signature: 'xmlParserCtxt *xmlNewParserCtxt(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3460
      start: 3454
    functionDepth: 0
    functionLinenumber: 3454
    functionLinenumberEnd: 3460
    functionName: xmlSubstituteEntitiesDefault
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlSubstituteEntitiesDefault(int val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - ctxt
    - handler
    - data
    argTypes:
    - xmlParserCtxt*
    - xmlStructuredErrorFunc
    - void*
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: xmlCtxtSetErrorHandler
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlCtxtSetErrorHandler(xmlParserCtxt *ctxt, xmlStructuredErrorFunc
      handler, void *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 1677
      start: 1671
    functionDepth: 0
    functionLinenumber: 1671
    functionLinenumberEnd: 1677
    functionName: xmlCtxtGetDeclaredEncoding
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlCtxtGetDeclaredEncoding(xmlParserCtxt *ctxt) '
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtPopInput
      Src: /src/libxml2/parserInternals.c:2897,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2900,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parserInternals.c:2898,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2905,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2918,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2920,1
    - Dst: xmlDictFree
      Src: /src/libxml2/parserInternals.c:2919,1
    - Dst: xmlHashFree
      Src: /src/libxml2/parserInternals.c:2928,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2935,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2953,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2957,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2961,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2902,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2904,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2908,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2955,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2967,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2959,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2907,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2916,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2917,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2922,1
    - Dst: xmlParserNsFree
      Src: /src/libxml2/parserInternals.c:2921,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2915,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2923,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2924,1
    - Dst: xmlHashFree
      Src: /src/libxml2/parserInternals.c:2926,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2945,1
    - Dst: xmlCatalogFreeLocal
      Src: /src/libxml2/parserInternals.c:2965,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2901,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2903,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2906,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 82
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 2968
      start: 2890
    functionDepth: 0
    functionLinenumber: 2890
    functionLinenumberEnd: 2968
    functionName: xmlFreeParserCtxt
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFree
    - xmlCatalogFreeLocal
    - xmlFreeInputStream
    - xmlDictFree
    - xmlCtxtPopInput
    - xmlParserNsFree
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeParserCtxt(xmlParserCtxt *ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3443
      start: 3440
    functionDepth: 0
    functionLinenumber: 3440
    functionLinenumberEnd: 3443
    functionName: xmlLineNumbersDefault
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlLineNumbersDefault(int val ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/parserInternals.c:419,1
    - Dst: va_end
      Src: /src/libxml2/parserInternals.c:422,1
    - Dst: xmlCtxtVErr
      Src: /src/libxml2/parserInternals.c:420,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 10
    argNames:
    - ctxt
    - node
    - domain
    - code
    - level
    - str1
    - str2
    - str3
    - int1
    - msg
    - '...'
    argTypes:
    - xmlParserCtxt*
    - xmlNode*
    - xmlErrorDomain
    - xmlParserErrors
    - xmlErrorLevel
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 423
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 423
    functionName: xmlCtxtErr
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - xmlCtxtVErr
    linkageType: ''
    returnType: void
    signature: 'void xmlCtxtErr(xmlParserCtxt *ctxt, xmlNode *node, xmlErrorDomain
      domain, xmlParserErrors code, xmlErrorLevel level, const xmlChar *str1, const
      xmlChar *str2, const xmlChar *str3, int int1, const char *msg, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlParserInput*
    - int
    constantsTouched: []
    func_position:
      end: 543
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 543
    functionName: xmlParserInputRead
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlParserInputRead(xmlParserInput *in ATTRIBUTE_UNUSED, int len
      ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetUTF8Char
      Src: /src/libxml2/parserInternals.c:1016,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - cur
    - len
    argTypes:
    - xmlParserCtxt*
    - xmlChar*
    - int*
    constantsTouched: []
    func_position:
      end: 1019
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1019
    functionName: xmlStringCurrentChar
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlGetUTF8Char
    linkageType: ''
    returnType: int
    signature: 'int xmlStringCurrentChar(xmlParserCtxt *ctxt ATTRIBUTE_UNUSED, const
      xmlChar *cur, int *len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - ctxt
    - loader
    - vctxt
    argTypes:
    - xmlParserCtxt*
    - xmlResourceLoader
    - void*
    constantsTouched: []
    func_position:
      end: 2596
      start: 2588
    functionDepth: 0
    functionLinenumber: 2588
    functionLinenumberEnd: 2596
    functionName: xmlCtxtSetResourceLoader
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlCtxtSetResourceLoader(xmlParserCtxt *ctxt, xmlResourceLoader
      loader, void *vctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitSAXParserCtxt
      Src: /src/libxml2/parserInternals.c:2880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 2881
      start: 2877
    functionDepth: 0
    functionLinenumber: 2877
    functionLinenumberEnd: 2881
    functionName: xmlInitParserCtxt
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlInitSAXParserCtxt
    linkageType: ''
    returnType: int
    signature: 'int xmlInitParserCtxt(xmlParserCtxt *ctxt) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PARSER_PROGRESSIVE
      Src: /src/libxml2/parserInternals.c:565,1
    - Dst: xmlHaltParser
      Src: /src/libxml2/parserInternals.c:576,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parserInternals.c:574,1
    - Dst: xmlBufUpdateInput
      Src: /src/libxml2/parserInternals.c:584,1
    - Dst: xmlParserInputBufferGrow
      Src: /src/libxml2/parserInternals.c:583,1
    - Dst: xmlCtxtErrIO
      Src: /src/libxml2/parserInternals.c:587,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 591
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 591
    functionName: xmlParserGrow
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlParserInputBufferGrow
    - PARSER_PROGRESSIVE
    - xmlFatalErr
    - xmlHaltParser
    - xmlBufUpdateInput
    - xmlCtxtErrIO
    linkageType: ''
    returnType: int
    signature: 'int xmlParserGrow(xmlParserCtxt *ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewInputFromUrl
      Src: /src/libxml2/parserInternals.c:2463,1
    - Dst: xmlCtxtErrIO
      Src: /src/libxml2/parserInternals.c:2465,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - ctxt
    - filename
    argTypes:
    - xmlParserCtxt*
    - char*
    constantsTouched: []
    func_position:
      end: 2470
      start: 2449
    functionDepth: 0
    functionLinenumber: 2449
    functionLinenumberEnd: 2470
    functionName: xmlNewInputFromFile
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlCtxtErrIO
    - xmlNewInputFromUrl
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlNewInputFromFile(xmlParserCtxt *ctxt, const char
      *filename) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2575
      start: 2572
    functionDepth: 0
    functionLinenumber: 2572
    functionLinenumberEnd: 2575
    functionName: xmlGetExternalEntityLoader
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlExternalEntityLoader
    signature: 'xmlExternalEntityLoader xmlGetExternalEntityLoader(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlLoadResource
      Src: /src/libxml2/parserInternals.c:2690,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - URL
    - publicId
    - ctxt
    argTypes:
    - char*
    - char*
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 2691
      start: 2687
    functionDepth: 0
    functionLinenumber: 2687
    functionLinenumberEnd: 2691
    functionName: xmlLoadExternalEntity
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlLoadResource
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlLoadExternalEntity(const char *URL, const char
      *publicId, xmlParserCtxt *ctxt) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictCreate
      Src: /src/libxml2/parserInternals.c:2723,1
    - Dst: memset
      Src: /src/libxml2/parserInternals.c:2732,1
    - Dst: xmlSAXVersion
      Src: /src/libxml2/parserInternals.c:2733,1
    - Dst: memcpy
      Src: /src/libxml2/parserInternals.c:2737,1
    - Dst: xmlMalloc
      Src: /src/libxml2/parserInternals.c:2728,1
    - Dst: memset
      Src: /src/libxml2/parserInternals.c:2739,1
    - Dst: memcpy
      Src: /src/libxml2/parserInternals.c:2740,1
    - Dst: xmlMalloc
      Src: /src/libxml2/parserInternals.c:2755,1
    - Dst: xmlCtxtPopInput
      Src: /src/libxml2/parserInternals.c:2760,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/parserInternals.c:2761,1
    - Dst: xmlMalloc
      Src: /src/libxml2/parserInternals.c:2796,1
    - Dst: xmlParserNsCreate
      Src: /src/libxml2/parserInternals.c:2859,1
    - Dst: xmlMalloc
      Src: /src/libxml2/parserInternals.c:2776,1
    - Dst: xmlMalloc
      Src: /src/libxml2/parserInternals.c:2786,1
    - Dst: xmlInitNodeInfoSeq
      Src: /src/libxml2/parserInternals.c:2856,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 118
    argCount: 3
    argNames:
    - ctxt
    - sax
    - userData
    argTypes:
    - xmlParserCtxtPtr
    - xmlSAXHandler*
    - void*
    constantsTouched: []
    func_position:
      end: 2865
      start: 2708
    functionDepth: 0
    functionLinenumber: 2708
    functionLinenumberEnd: 2865
    functionName: xmlInitSAXParserCtxt
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlDictCreate
    - xmlSAXVersion
    - memcpy
    - memset
    - xmlFreeInputStream
    - xmlInitNodeInfoSeq
    - xmlCtxtPopInput
    - xmlMalloc
    - xmlParserNsCreate
    linkageType: ''
    returnType: int
    signature: 'static int xmlInitSAXParserCtxt(xmlParserCtxtPtr ctxt, const xmlSAXHandler
      *sax, void *userData) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_BASECHAR
      Src: /src/libxml2/parserInternals.c:507,1
    - Dst: IS_IDEOGRAPHIC
      Src: /src/libxml2/parserInternals.c:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 508
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 508
    functionName: xmlIsLetter
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - IS_BASECHAR
    - IS_IDEOGRAPHIC
    linkageType: ''
    returnType: int
    signature: 'int xmlIsLetter(int c) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreateCharEncodingHandler
      Src: /src/libxml2/parserInternals.c:1246,1
    - Dst: xmlWarningMsg
      Src: /src/libxml2/parserInternals.c:1249,1
    - Dst: xmlInputSetEncodingHandler
      Src: /src/libxml2/parserInternals.c:1257,1
    - Dst: xmlCtxtErrIO
      Src: /src/libxml2/parserInternals.c:1259,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parserInternals.c:1253,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - ctxt
    - input
    - encoding
    argTypes:
    - xmlParserCtxtPtr
    - xmlParserInputPtr
    - char*
    constantsTouched: []
    func_position:
      end: 1264
      start: 1237
    functionDepth: 0
    functionLinenumber: 1237
    functionLinenumberEnd: 1264
    functionName: xmlSwitchInputEncodingName
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlFatalErr
    - xmlCtxtErrIO
    - xmlInputSetEncodingHandler
    - xmlCreateCharEncodingHandler
    - xmlWarningMsg
    linkageType: ''
    returnType: int
    signature: 'static int xmlSwitchInputEncodingName(xmlParserCtxtPtr ctxt, xmlParserInputPtr
      input, const char *encoding) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlResolveFromCatalog
      Src: /src/libxml2/parserInternals.c:2406,1
    - Dst: xmlNewInputInternal
      Src: /src/libxml2/parserInternals.c:2425,1
    - Dst: xmlParserInputBufferCreateUrl
      Src: /src/libxml2/parserInternals.c:2420,1
    - Dst: xmlParserInputBufferCreateFilenameValue
      Src: /src/libxml2/parserInternals.c:2415,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2433,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 3
    argNames:
    - url
    - flags
    - out
    argTypes:
    - char*
    - xmlParserInputFlags
    - xmlParserInput**
    constantsTouched: []
    func_position:
      end: 2435
      start: 2390
    functionDepth: 0
    functionLinenumber: 2390
    functionLinenumberEnd: 2435
    functionName: xmlNewInputFromUrl
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlParserInputBufferCreateUrl
    - xmlNewInputInternal
    - xmlParserInputBufferCreateFilenameValue
    - xmlResolveFromCatalog
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'xmlParserErrors xmlNewInputFromUrl(const char *url, xmlParserInputFlags
      flags, xmlParserInput **out) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtResolveFromCatalog
      Src: /src/libxml2/parserInternals.c:2621,1
    - Dst: xmlCtxtErrIO
      Src: /src/libxml2/parserInternals.c:2638,1
    - Dst: xmlCanonicPath
      Src: /src/libxml2/parserInternals.c:2646,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2642,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/parserInternals.c:2648,1
    - Dst: xmlCurrentExternalEntityLoader
      Src: /src/libxml2/parserInternals.c:2652,1
    - Dst: xmlFree
      Src: /src/libxml2/parserInternals.c:2653,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 34
    argCount: 4
    argNames:
    - ctxt
    - url
    - publicId
    - type
    argTypes:
    - xmlParserCtxt*
    - char*
    - char*
    - xmlResourceType
    constantsTouched: []
    func_position:
      end: 2655
      start: 2605
    functionDepth: 0
    functionLinenumber: 2605
    functionLinenumberEnd: 2655
    functionName: xmlLoadResource
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCtxtErrMemory
    - xmlCtxtResolveFromCatalog
    - xmlCtxtErrIO
    - xmlCanonicPath
    - xmlCurrentExternalEntityLoader
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlLoadResource(xmlParserCtxt *ctxt, const char *url,
      const char *publicId, xmlResourceType type) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 3057
      start: 3051
    functionDepth: 0
    functionLinenumber: 3051
    functionLinenumberEnd: 3057
    functionName: xmlCtxtGetCatalogs
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'void *xmlCtxtGetCatalogs(xmlParserCtxt *ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlLookupCharEncodingHandler
      Src: /src/libxml2/parserInternals.c:1216,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/parserInternals.c:1218,1
    - Dst: xmlSwitchToEncoding
      Src: /src/libxml2/parserInternals.c:1222,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - ctxt
    - enc
    argTypes:
    - xmlParserCtxt*
    - xmlCharEncoding
    constantsTouched: []
    func_position:
      end: 1229
      start: 1206
    functionDepth: 0
    functionLinenumber: 1206
    functionLinenumberEnd: 1229
    functionName: xmlSwitchEncoding
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached:
    - xmlLookupCharEncodingHandler
    - xmlFatalErr
    - xmlSwitchToEncoding
    linkageType: ''
    returnType: int
    signature: 'int xmlSwitchEncoding(xmlParserCtxt *ctxt, xmlCharEncoding enc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - ctxt
    - priv
    argTypes:
    - xmlParserCtxt*
    - void*
    constantsTouched: []
    func_position:
      end: 3043
      start: 3037
    functionDepth: 0
    functionLinenumber: 3037
    functionLinenumberEnd: 3043
    functionName: xmlCtxtSetPrivate
    functionSourceFile: /src/libxml2/parserInternals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlCtxtSetPrivate(xmlParserCtxt *ctxt, void *priv) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlmodule.c:154,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlmodule.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - xmlModule*
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 158
    functionName: xmlModuleFree
    functionSourceFile: /src/libxml2/xmlmodule.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: int
    signature: 'int xmlModuleFree(xmlModule *module) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlModulePlatformClose
      Src: /src/libxml2/xmlmodule.c:129,1
    - Dst: xmlModuleFree
      Src: /src/libxml2/xmlmodule.c:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - xmlModule*
    constantsTouched: []
    func_position:
      end: 136
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 136
    functionName: xmlModuleClose
    functionSourceFile: /src/libxml2/xmlmodule.c
    functionUses: []
    functionsReached:
    - xmlModuleFree
    - xmlModulePlatformClose
    linkageType: ''
    returnType: int
    signature: 'int xmlModuleClose(xmlModule *module) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/libxml2/xmlmodule.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: xmlModulePlatformOpen
    functionSourceFile: /src/libxml2/xmlmodule.c
    functionUses: []
    functionsReached:
    - dlopen
    linkageType: ''
    returnType: void*
    signature: 'static void *xmlModulePlatformOpen(const char *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shl_load
      Src: /src/libxml2/xmlmodule.c:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: xmlModulePlatformOpen
    functionSourceFile: /src/libxml2/xmlmodule.c
    functionUses: []
    functionsReached:
    - shl_load
    linkageType: ''
    returnType: void*
    signature: 'static void *xmlModulePlatformOpen(const char *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shl_unload
      Src: /src/libxml2/xmlmodule.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: xmlModulePlatformClose
    functionSourceFile: /src/libxml2/xmlmodule.c
    functionUses: []
    functionsReached:
    - shl_unload
    linkageType: ''
    returnType: int
    signature: 'static int xmlModulePlatformClose(void *handle) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibraryA
      Src: /src/libxml2/xmlmodule.c:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: xmlModulePlatformOpen
    functionSourceFile: /src/libxml2/xmlmodule.c
    functionUses: []
    functionsReached:
    - LoadLibraryA
    linkageType: ''
    returnType: void*
    signature: 'static void *xmlModulePlatformOpen(const char *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlModulePlatformSymbol
      Src: /src/libxml2/xmlmodule.c:103,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 3
    argNames:
    - module
    - name
    - symbol
    argTypes:
    - xmlModule*
    - char*
    - void**
    constantsTouched: []
    func_position:
      end: 109
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 109
    functionName: xmlModuleSymbol
    functionSourceFile: /src/libxml2/xmlmodule.c
    functionUses: []
    functionsReached:
    - xmlModulePlatformSymbol
    linkageType: ''
    returnType: int
    signature: 'int xmlModuleSymbol(xmlModule *module, const char *name, void **symbol) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dlclose
      Src: /src/libxml2/xmlmodule.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: xmlModulePlatformClose
    functionSourceFile: /src/libxml2/xmlmodule.c
    functionUses: []
    functionsReached:
    - dlclose
    linkageType: ''
    returnType: int
    signature: 'static int xmlModulePlatformClose(void *handle) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/libxml2/xmlmodule.c:199,1
    - Dst: dlerror
      Src: /src/libxml2/xmlmodule.c:200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - handle
    - name
    - symbol
    argTypes:
    - void*
    - char*
    - void**
    constantsTouched: []
    func_position:
      end: 204
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 204
    functionName: xmlModulePlatformSymbol
    functionSourceFile: /src/libxml2/xmlmodule.c
    functionUses: []
    functionsReached:
    - dlerror
    - dlsym
    linkageType: ''
    returnType: int
    signature: 'static int xmlModulePlatformSymbol(void *handle, const char *name,
      void **symbol) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shl_findsym
      Src: /src/libxml2/xmlmodule.c:242,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 3
    argNames:
    - handle
    - name
    - symbol
    argTypes:
    - void*
    - char*
    - void**
    constantsTouched: []
    func_position:
      end: 244
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 244
    functionName: xmlModulePlatformSymbol
    functionSourceFile: /src/libxml2/xmlmodule.c
    functionUses: []
    functionsReached:
    - shl_findsym
    linkageType: ''
    returnType: int
    signature: 'static int xmlModulePlatformSymbol(void *handle, const char *name,
      void **symbol) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FreeLibrary
      Src: /src/libxml2/xmlmodule.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - handle
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: xmlModulePlatformClose
    functionSourceFile: /src/libxml2/xmlmodule.c
    functionUses: []
    functionsReached:
    - FreeLibrary
    linkageType: ''
    returnType: int
    signature: 'static int xmlModulePlatformClose(void *handle) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcAddress
      Src: /src/libxml2/xmlmodule.c:286,1
    - Dst: memcpy
      Src: /src/libxml2/xmlmodule.c:288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 3
    argNames:
    - handle
    - name
    - symbol
    argTypes:
    - void*
    - char*
    - void**
    constantsTouched: []
    func_position:
      end: 290
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 290
    functionName: xmlModulePlatformSymbol
    functionSourceFile: /src/libxml2/xmlmodule.c
    functionUses: []
    functionsReached:
    - memcpy
    - GetProcAddress
    linkageType: ''
    returnType: int
    signature: 'static int xmlModulePlatformSymbol(void *handle, const char *name,
      void **symbol) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlmodule.c:63,1
    - Dst: memset
      Src: /src/libxml2/xmlmodule.c:67,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlmodule.c:72,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlmodule.c:76,1
    - Dst: xmlModulePlatformOpen
      Src: /src/libxml2/xmlmodule.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - name
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 78
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 78
    functionName: xmlModuleOpen
    functionSourceFile: /src/libxml2/xmlmodule.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlStrdup
    - xmlModulePlatformOpen
    - xmlMalloc
    linkageType: ''
    returnType: xmlModule*
    signature: 'xmlModule *xmlModuleOpen(const char *name, int options ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadDoc
      Src: /src/libxml2/testparser.c:354,1
    - Dst: xmlSaveToBuffer
      Src: /src/libxml2/testparser.c:357,1
    - Dst: xmlSaveClose
      Src: /src/libxml2/testparser.c:359,1
    - Dst: xmlSaveDoc
      Src: /src/libxml2/testparser.c:358,1
    - Dst: xmlBufferCreate
      Src: /src/libxml2/testparser.c:356,1
    - Dst: xmlBufferContent
      Src: /src/libxml2/testparser.c:361,1
    - Dst: strcmp
      Src: /src/libxml2/testparser.c:362,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:363,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/testparser.c:367,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:368,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - xml
    - expect
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 371
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 371
    functionName: testSaveNullEncDoc
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlReadDoc
    - xmlBufferCreate
    - strcmp
    - xmlSaveClose
    - xmlSaveToBuffer
    - xmlBufferContent
    - xmlFreeDoc
    - xmlSaveDoc
    - fprintf
    - xmlBufferFree
    linkageType: ''
    returnType: int
    signature: 'static int testSaveNullEncDoc(const char *xml, const char *expect) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htmlReadDoc
      Src: /src/libxml2/testparser.c:636,1
    - Dst: xmlBufferCreate
      Src: /src/libxml2/testparser.c:639,1
    - Dst: xmlSaveDoc
      Src: /src/libxml2/testparser.c:641,1
    - Dst: xmlSaveClose
      Src: /src/libxml2/testparser.c:642,1
    - Dst: xmlSaveToBuffer
      Src: /src/libxml2/testparser.c:640,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/testparser.c:643,1
    - Dst: xmlBufferContent
      Src: /src/libxml2/testparser.c:643,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:644,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/testparser.c:647,1
    - Dst: htmlSetMetaEncoding
      Src: /src/libxml2/testparser.c:649,1
    - Dst: htmlDocDumpMemoryFormat
      Src: /src/libxml2/testparser.c:651,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:658,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:656,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/testparser.c:652,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:653,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 660
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 660
    functionName: testHtmlInsertMetaEncoding
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - htmlSetMetaEncoding
    - xmlBufferCreate
    - xmlSaveClose
    - xmlSaveToBuffer
    - htmlReadDoc
    - xmlStrEqual
    - htmlDocDumpMemoryFormat
    - xmlBufferContent
    - xmlFreeDoc
    - xmlSaveDoc
    - fprintf
    - xmlBufferFree
    linkageType: ''
    returnType: int
    signature: 'static int testHtmlInsertMetaEncoding(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 3
    argNames:
    - ctxt
    - data
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 993
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 993
    functionName: testWriterIOWrite
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int testWriterIOWrite(void *ctxt, const char *data, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testSaveNullEncDoc
      Src: /src/libxml2/testparser.c:377,1
    - Dst: testSaveNullEncDoc
      Src: /src/libxml2/testparser.c:383,1
    - Dst: testSaveNullEncDoc
      Src: /src/libxml2/testparser.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 388
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 388
    functionName: testSaveNullEnc
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - testSaveNullEncDoc
    linkageType: ''
    returnType: int
    signature: 'static int testSaveNullEnc(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadDoc
      Src: /src/libxml2/testparser.c:401,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:409,1
    - Dst: strcmp
      Src: /src/libxml2/testparser.c:404,1
    - Dst: xmlDocDumpFormatMemoryEnc
      Src: /src/libxml2/testparser.c:402,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:405,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:410,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 412
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 412
    functionName: testDocDumpFormatMemoryEnc
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlReadDoc
    - xmlDocDumpFormatMemoryEnc
    - strcmp
    - xmlFreeDoc
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int testDocDumpFormatMemoryEnc(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/testparser.c:544,1
    - Dst: xmlCtxtSetOptions
      Src: /src/libxml2/testparser.c:545,1
    - Dst: xmlBufferCCat
      Src: /src/libxml2/testparser.c:557,1
    - Dst: xmlBufferCreate
      Src: /src/libxml2/testparser.c:550,1
    - Dst: xmlBufferCCat
      Src: /src/libxml2/testparser.c:551,1
    - Dst: xmlBufferCCat
      Src: /src/libxml2/testparser.c:559,1
    - Dst: xmlBufferCCat
      Src: /src/libxml2/testparser.c:566,1
    - Dst: xmlBufferCCat
      Src: /src/libxml2/testparser.c:568,1
    - Dst: xmlBufferDetach
      Src: /src/libxml2/testparser.c:569,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/testparser.c:570,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testparser.c:572,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:582,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:576,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testparser.c:583,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testparser.c:573,1
    - Dst: xmlStrlen
      Src: /src/libxml2/testparser.c:572,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:581,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 587
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 587
    functionName: testPushCDataEnd
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeParserCtxt
    - xmlBufferDetach
    - xmlBufferCreate
    - xmlStrlen
    - xmlParseChunk
    - xmlFreeDoc
    - xmlCreatePushParserCtxt
    - xmlBufferCCat
    - xmlCtxtSetOptions
    - fprintf
    - xmlBufferFree
    linkageType: ''
    returnType: int
    signature: 'static int testPushCDataEnd(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htmlReadDoc
      Src: /src/libxml2/testparser.c:709,1
    - Dst: xmlSaveClose
      Src: /src/libxml2/testparser.c:715,1
    - Dst: xmlSaveToBuffer
      Src: /src/libxml2/testparser.c:713,1
    - Dst: xmlBufferCreate
      Src: /src/libxml2/testparser.c:712,1
    - Dst: xmlSaveDoc
      Src: /src/libxml2/testparser.c:714,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/testparser.c:716,1
    - Dst: xmlBufferContent
      Src: /src/libxml2/testparser.c:716,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:717,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/testparser.c:720,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:722,1
    - Dst: htmlSetMetaEncoding
      Src: /src/libxml2/testparser.c:724,1
    - Dst: htmlDocDumpMemoryFormat
      Src: /src/libxml2/testparser.c:726,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:728,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:731,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/testparser.c:727,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:733,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 735
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 735
    functionName: testHtmlUpdateMetaEncoding
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - htmlSetMetaEncoding
    - xmlBufferCreate
    - xmlSaveClose
    - xmlSaveToBuffer
    - htmlReadDoc
    - xmlStrEqual
    - htmlDocDumpMemoryFormat
    - xmlBufferContent
    - xmlFreeDoc
    - xmlSaveDoc
    - fprintf
    - xmlBufferFree
    linkageType: ''
    returnType: int
    signature: 'static int testHtmlUpdateMetaEncoding(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:928,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/testparser.c:929,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - arg
    - error
    argTypes:
    - void*
    - xmlError*
    constantsTouched: []
    func_position:
      end: 931
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 931
    functionName: testStructuredReaderError
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlMemStrdup
    linkageType: ''
    returnType: void
    signature: 'static void testStructuredReaderError(void *arg, const xmlError *error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1000
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 1000
    functionName: testWriterIOClose
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int testWriterIOClose(void *ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testNewDocNode
      Src: /src/libxml2/testparser.c:1394,1
    - Dst: testCFileIO
      Src: /src/libxml2/testparser.c:1398,1
    - Dst: testStandaloneWithEncoding
      Src: /src/libxml2/testparser.c:1395,1
    - Dst: testUnsupportedEncoding
      Src: /src/libxml2/testparser.c:1396,1
    - Dst: testNodeGetContent
      Src: /src/libxml2/testparser.c:1397,1
    - Dst: testUndeclEntInContent
      Src: /src/libxml2/testparser.c:1399,1
    - Dst: testSwitchDtd
      Src: /src/libxml2/testparser.c:1401,1
    - Dst: testReaderXIncludeError
      Src: /src/libxml2/testparser.c:1430,1
    - Dst: testNoBlanks
      Src: /src/libxml2/testparser.c:1405,1
    - Dst: testSaveNullEnc
      Src: /src/libxml2/testparser.c:1406,1
    - Dst: testPushCDataEnd
      Src: /src/libxml2/testparser.c:1415,1
    - Dst: testHtmlInsertMetaEncoding
      Src: /src/libxml2/testparser.c:1419,1
    - Dst: testHtmlPushWithEncoding
      Src: /src/libxml2/testparser.c:1422,1
    - Dst: testHugeEncodedChunk
      Src: /src/libxml2/testparser.c:1414,1
    - Dst: testHtmlUpdateMetaEncoding
      Src: /src/libxml2/testparser.c:1420,1
    - Dst: testDocDumpFormatMemoryEnc
      Src: /src/libxml2/testparser.c:1407,1
    - Dst: testReaderContent
      Src: /src/libxml2/testparser.c:1427,1
    - Dst: testReader
      Src: /src/libxml2/testparser.c:1428,1
    - Dst: testCtxtParseContent
      Src: /src/libxml2/testparser.c:1404,1
    - Dst: testBalancedChunk
      Src: /src/libxml2/testparser.c:1410,1
    - Dst: testHugePush
      Src: /src/libxml2/testparser.c:1413,1
    - Dst: testHtmlIds
      Src: /src/libxml2/testparser.c:1418,1
    - Dst: testReaderEncoding
      Src: /src/libxml2/testparser.c:1426,1
    - Dst: testWriterClose
      Src: /src/libxml2/testparser.c:1434,1
    - Dst: testBuildRelativeUri
      Src: /src/libxml2/testparser.c:1436,1
    - Dst: testWindowsUri
      Src: /src/libxml2/testparser.c:1438,1
    - Dst: testTruncatedMultiByte
      Src: /src/libxml2/testparser.c:1441,1
    - Dst: testCharEncConvImpl
      Src: /src/libxml2/testparser.c:1443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 59
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1446
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1446
    functionName: main
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - testCharEncConvImpl
    - testCtxtParseContent
    - testReaderContent
    - testTruncatedMultiByte
    - testUnsupportedEncoding
    - testBuildRelativeUri
    - testDocDumpFormatMemoryEnc
    - testBalancedChunk
    - testNewDocNode
    - testHtmlUpdateMetaEncoding
    - testWindowsUri
    - testHugeEncodedChunk
    - testHtmlIds
    - testSwitchDtd
    - testNodeGetContent
    - testPushCDataEnd
    - testHugePush
    - testHtmlInsertMetaEncoding
    - testSaveNullEnc
    - testNoBlanks
    - testUndeclEntInContent
    - testStandaloneWithEncoding
    - testWriterClose
    - testHtmlPushWithEncoding
    - testReaderXIncludeError
    - testReaderEncoding
    - testReader
    - testCFileIO
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDocNode
      Src: /src/libxml2/testparser.c:32,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/testparser.c:37,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 40
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 40
    functionName: testNewDocNode
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlFreeNode
    - xmlNewDocNode
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int testNewDocNode(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - vctxt
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 193
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 193
    functionName: testSwitchDtdExtSubset
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void testSwitchDtdExtSubset(void *vctxt, const xmlChar *name
      ATTRIBUTE_UNUSED, const xmlChar *externalId ATTRIBUTE_UNUSED, const xmlChar
      *systemId ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseBalancedChunkMemory
      Src: /src/libxml2/testparser.c:423,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/testparser.c:431,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:432,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/testparser.c:436,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 439
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 439
    functionName: testBalancedChunk
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    - fprintf
    - xmlFreeNodeList
    - xmlParseBalancedChunkMemory
    linkageType: ''
    returnType: int
    signature: 'static int testBalancedChunk(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htmlReadDoc
      Src: /src/libxml2/testparser.c:598,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:610,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:600,1
    - Dst: xmlGetID
      Src: /src/libxml2/testparser.c:604,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:606,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 612
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 612
    functionName: testHtmlIds
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlGetID
    - fprintf
    - xmlFreeDoc
    - htmlReadDoc
    linkageType: ''
    returnType: int
    signature: 'static int testHtmlIds(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htmlCreatePushParserCtxt
      Src: /src/libxml2/testparser.c:745,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:751,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/testparser.c:755,1
    - Dst: htmlParseChunk
      Src: /src/libxml2/testparser.c:747,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/testparser.c:750,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/testparser.c:756,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:757,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:761,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/testparser.c:762,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 764
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 764
    functionName: testHtmlPushWithEncoding
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - htmlParseChunk
    - htmlFreeParserCtxt
    - xmlStrEqual
    - xmlFreeDoc
    - fprintf
    - htmlCreatePushParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int testHtmlPushWithEncoding(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlResetLastError
      Src: /src/libxml2/testparser.c:50,1
    - Dst: xmlReadDoc
      Src: /src/libxml2/testparser.c:52,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:54,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 60
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 60
    functionName: testStandaloneWithEncoding
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlReadDoc
    - xmlResetLastError
    - fprintf
    - xmlFreeDoc
    linkageType: ''
    returnType: int
    signature: 'static int testStandaloneWithEncoding(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserInputBufferCreateStatic
      Src: /src/libxml2/testparser.c:209,1
    - Dst: xmlCtxtReadMemory
      Src: /src/libxml2/testparser.c:217,1
    - Dst: xmlIOParseDTD
      Src: /src/libxml2/testparser.c:212,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testparser.c:219,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/testparser.c:214,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/testparser.c:221,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:223,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:229,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/testparser.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 233
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 233
    functionName: testSwitchDtd
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlCtxtReadMemory
    - xmlGetDocEntity
    - xmlParserInputBufferCreateStatic
    - xmlFreeDoc
    - xmlIOParseDTD
    - xmlFreeParserCtxt
    - fprintf
    - xmlFreeDtd
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int testSwitchDtd(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlReaderForDoc
      Src: /src/libxml2/testparser.c:947,1
    - Dst: strstr
      Src: /src/libxml2/testparser.c:955,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:956,1
    - Dst: xmlTextReaderSetErrorHandler
      Src: /src/libxml2/testparser.c:948,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/testparser.c:951,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:960,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/testparser.c:961,1
    - Dst: xmlReaderForDoc
      Src: /src/libxml2/testparser.c:963,1
    - Dst: xmlTextReaderSetStructuredErrorHandler
      Src: /src/libxml2/testparser.c:964,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/testparser.c:968,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/testparser.c:979,1
    - Dst: strstr
      Src: /src/libxml2/testparser.c:973,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:978,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:974,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 982
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 982
    functionName: testReaderXIncludeError
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlTextReaderSetErrorHandler
    - strstr
    - xmlTextReaderRead
    - xmlTextReaderSetStructuredErrorHandler
    - xmlFreeTextReader
    - xmlReaderForDoc
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int testReaderXIncludeError(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadDoc
      Src: /src/libxml2/testparser.c:155,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:163,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/testparser.c:166,1
    - Dst: xmlParseInNodeContext
      Src: /src/libxml2/testparser.c:160,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/testparser.c:156,1
    - Dst: xmlSetStructuredErrorFunc
      Src: /src/libxml2/testparser.c:169,1
    - Dst: xmlParseBalancedChunkMemory
      Src: /src/libxml2/testparser.c:170,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:173,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/testparser.c:176,1
    - Dst: xmlSetStructuredErrorFunc
      Src: /src/libxml2/testparser.c:177,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 183
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 183
    functionName: testUndeclEntInContent
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlReadDoc
    - xmlParseBalancedChunkMemory
    - xmlParseInNodeContext
    - xmlSetStructuredErrorFunc
    - xmlFreeDoc
    - fprintf
    - xmlFreeNodeList
    linkageType: ''
    returnType: int
    signature: 'static int testUndeclEntInContent(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseURI
      Src: /src/libxml2/testparser.c:1199,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:1201,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:1205,1
    - Dst: strcmp
      Src: /src/libxml2/testparser.c:1208,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:1209,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/testparser.c:1213,1
    - Dst: xmlBuildURI
      Src: /src/libxml2/testparser.c:1219,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/testparser.c:1220,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:1221,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:1226,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1230
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1230
    functionName: testWindowsUri
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlParseURI
    - xmlFreeURI
    - strcmp
    - xmlStrEqual
    - fprintf
    - xmlBuildURI
    linkageType: ''
    returnType: int
    signature: 'static int testWindowsUri(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlResetLastError
      Src: /src/libxml2/testparser.c:1248,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:1255,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:1265,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testparser.c:1276,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:1279,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testparser.c:1284,1
    - Dst: htmlParseChunk
      Src: /src/libxml2/testparser.c:1291,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:1295,1
    - Dst: xmlCtxtSetOptions
      Src: /src/libxml2/testparser.c:1273,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:1299,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:1252,1
    - Dst: xmlReadDoc
      Src: /src/libxml2/testparser.c:1249,1
    - Dst: xmlResetLastError
      Src: /src/libxml2/testparser.c:1258,1
    - Dst: xmlGetLastError
      Src: /src/libxml2/testparser.c:1260,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testparser.c:1275,1
    - Dst: htmlCreatePushParserCtxt
      Src: /src/libxml2/testparser.c:1287,1
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/testparser.c:1272,1
    - Dst: htmlParseChunk
      Src: /src/libxml2/testparser.c:1292,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/testparser.c:1300,1
    - Dst: xmlGetLastError
      Src: /src/libxml2/testparser.c:1250,1
    - Dst: htmlReadDoc
      Src: /src/libxml2/testparser.c:1259,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:1262,1
    - Dst: xmlCtxtSetOptions
      Src: /src/libxml2/testparser.c:1289,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:1283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1306
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1306
    functionName: testTruncatedMultiByte
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlReadDoc
    - xmlResetLastError
    - htmlParseChunk
    - xmlGetLastError
    - xmlParseChunk
    - htmlReadDoc
    - htmlFreeParserCtxt
    - xmlFreeDoc
    - xmlCreatePushParserCtxt
    - xmlFreeParserCtxt
    - xmlCtxtSetOptions
    - fprintf
    - htmlCreatePushParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int testTruncatedMultiByte(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegisterInputCallbacks
      Src: /src/libxml2/testparser.c:116,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:129,1
    - Dst: xmlReadFile
      Src: /src/libxml2/testparser.c:118,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/testparser.c:125,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/testparser.c:123,1
    - Dst: xmlPopInputCallbacks
      Src: /src/libxml2/testparser.c:130,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 136
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 136
    functionName: testCFileIO
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - fprintf
    - xmlReadFile
    - xmlStrEqual
    - xmlFreeDoc
    - xmlPopInputCallbacks
    - xmlRegisterInputCallbacks
    linkageType: ''
    returnType: int
    signature: 'static int testCFileIO(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/testparser.c:448,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testparser.c:458,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testparser.c:455,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testparser.c:457,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:461,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testparser.c:462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 465
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 465
    functionName: testHugePush
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlFreeDoc
    - xmlParseChunk
    - xmlCreatePushParserCtxt
    - xmlFreeParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int testHugePush(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferCreate
      Src: /src/libxml2/testparser.c:778,1
    - Dst: xmlBufferCCat
      Src: /src/libxml2/testparser.c:782,1
    - Dst: xmlBufferCCat
      Src: /src/libxml2/testparser.c:779,1
    - Dst: xmlBufferCCat
      Src: /src/libxml2/testparser.c:783,1
    - Dst: xmlBufferCCat
      Src: /src/libxml2/testparser.c:780,1
    - Dst: xmlBufferDetach
      Src: /src/libxml2/testparser.c:784,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/testparser.c:785,1
    - Dst: xmlReaderForDoc
      Src: /src/libxml2/testparser.c:787,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/testparser.c:788,1
    - Dst: xmlTextReaderConstEncoding
      Src: /src/libxml2/testparser.c:789,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/testparser.c:791,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:792,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:797,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/testparser.c:796,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 799
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 799
    functionName: testReaderEncoding
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlTextReaderRead
    - xmlBufferDetach
    - xmlBufferCreate
    - xmlTextReaderConstEncoding
    - xmlStrEqual
    - xmlBufferCCat
    - xmlFreeTextReader
    - xmlReaderForDoc
    - fprintf
    - xmlBufferFree
    linkageType: ''
    returnType: int
    signature: 'static int testReaderEncoding(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderNodeType
      Src: /src/libxml2/testparser.c:842,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:864,1
    - Dst: xmlTextReaderReadString
      Src: /src/libxml2/testparser.c:843,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:862,1
    - Dst: xmlTextReaderCurrentNode
      Src: /src/libxml2/testparser.c:846,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReader*
    constantsTouched: []
    func_position:
      end: 867
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 867
    functionName: testReaderNode
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlTextReaderCurrentNode
    - xmlTextReaderReadString
    - xmlTextReaderNodeType
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int testReaderNode(xmlTextReader *reader) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlBuildRelativeURI
      Src: /src/libxml2/testparser.c:1144,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/testparser.c:1146,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:1152,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:1147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1156
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1156
    functionName: testBuildRelativeUri
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlBuildRelativeURI
    - xmlStrEqual
    - fprintf
    - xmlFree
    linkageType: ''
    returnType: int
    signature: 'static int testBuildRelativeUri(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/testparser.c:1349,1
    - Dst: xmlCharEncNewCustomHandler
      Src: /src/libxml2/testparser.c:1358,1
    - Dst: xmlCreateCharEncodingHandler
      Src: /src/libxml2/testparser.c:1350,1
    - Dst: xmlMalloc
      Src: /src/libxml2/testparser.c:1355,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - name
    - flags
    - out
    argTypes:
    - void*
    - char*
    - xmlCharEncFlags
    - xmlCharEncodingHandler**
    constantsTouched: []
    func_position:
      end: 1361
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1361
    functionName: rot13ConvImpl
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlCreateCharEncodingHandler
    - xmlMalloc
    - strcmp
    - xmlCharEncNewCustomHandler
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'static xmlParserErrors rot13ConvImpl(void *vctxt ATTRIBUTE_UNUSED,
      const char *name, xmlCharEncFlags flags, xmlCharEncodingHandler **out) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferCreate
      Src: /src/libxml2/testparser.c:478,1
    - Dst: xmlBufferCat
      Src: /src/libxml2/testparser.c:483,1
    - Dst: xmlStrlen
      Src: /src/libxml2/testparser.c:490,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:497,1
    - Dst: xmlBufferDetach
      Src: /src/libxml2/testparser.c:517,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:526,1
    - Dst: xmlBufferCat
      Src: /src/libxml2/testparser.c:481,1
    - Dst: xmlBufferCat
      Src: /src/libxml2/testparser.c:479,1
    - Dst: xmlBufferCreate
      Src: /src/libxml2/testparser.c:509,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testparser.c:496,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:495,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:528,1
    - Dst: xmlBufferCat
      Src: /src/libxml2/testparser.c:484,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/testparser.c:486,1
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/testparser.c:520,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testparser.c:522,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testparser.c:527,1
    - Dst: xmlBufferDetach
      Src: /src/libxml2/testparser.c:485,1
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/testparser.c:488,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testparser.c:490,1
    - Dst: xmlBufferCat
      Src: /src/libxml2/testparser.c:512,1
    - Dst: xmlBufferCat
      Src: /src/libxml2/testparser.c:515,1
    - Dst: xmlBufferCat
      Src: /src/libxml2/testparser.c:516,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/testparser.c:491,1
    - Dst: xmlBufferCat
      Src: /src/libxml2/testparser.c:510,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/testparser.c:518,1
    - Dst: xmlStrlen
      Src: /src/libxml2/testparser.c:522,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 531
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 531
    functionName: testHugeEncodedChunk
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlBufferDetach
    - xmlBufferCreate
    - xmlStrlen
    - xmlParseChunk
    - xmlFreeDoc
    - xmlCreatePushParserCtxt
    - xmlFreeParserCtxt
    - xmlBufferCat
    - xmlBufferFree
    linkageType: ''
    returnType: int
    signature: 'static int testHugeEncodedChunk(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlReaderForDoc
      Src: /src/libxml2/testparser.c:808,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/testparser.c:812,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/testparser.c:809,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:813,1
    - Dst: xmlTextReaderReadOuterXml
      Src: /src/libxml2/testparser.c:811,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:816,1
    - Dst: xmlTextReaderReadInnerXml
      Src: /src/libxml2/testparser.c:818,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/testparser.c:819,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:820,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:823,1
    - Dst: xmlTextReaderReadString
      Src: /src/libxml2/testparser.c:825,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/testparser.c:826,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/testparser.c:832,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:827,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:830,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 834
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 834
    functionName: testReaderContent
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlTextReaderReadOuterXml
    - xmlTextReaderRead
    - xmlFreeTextReader
    - xmlStrEqual
    - xmlTextReaderReadString
    - xmlTextReaderReadInnerXml
    - xmlReaderForDoc
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int testReaderContent(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlReaderForDoc
      Src: /src/libxml2/testparser.c:882,1
    - Dst: testReaderNode
      Src: /src/libxml2/testparser.c:885,1
    - Dst: testReaderNode
      Src: /src/libxml2/testparser.c:892,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/testparser.c:884,1
    - Dst: xmlTextReaderMoveToFirstAttribute
      Src: /src/libxml2/testparser.c:890,1
    - Dst: xmlTextReaderMoveToNextAttribute
      Src: /src/libxml2/testparser.c:896,1
    - Dst: xmlTextReaderMoveToElement
      Src: /src/libxml2/testparser.c:898,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/testparser.c:902,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 904
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 904
    functionName: testReader
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlTextReaderRead
    - xmlTextReaderMoveToNextAttribute
    - xmlTextReaderMoveToElement
    - testReaderNode
    - xmlTextReaderMoveToFirstAttribute
    - xmlFreeTextReader
    - xmlReaderForDoc
    linkageType: ''
    returnType: int
    signature: 'static int testReader(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:919,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/testparser.c:920,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 4
    argNames:
    - arg
    - msg
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - char*
    - xmlParserSeverities
    - xmlTextReaderLocatorPtr
    constantsTouched: []
    func_position:
      end: 921
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 921
    functionName: testReaderError
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlMemStrdup
    linkageType: ''
    returnType: void
    signature: 'static void testReaderError(void *arg, const char *msg, xmlParserSeverities
      severity ATTRIBUTE_UNUSED, xmlTextReaderLocatorPtr locator ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/testparser.c:1370,1
    - Dst: xmlCtxtSetCharEncConvImpl
      Src: /src/libxml2/testparser.c:1371,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/testparser.c:1379,1
    - Dst: xmlCtxtReadDoc
      Src: /src/libxml2/testparser.c:1373,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testparser.c:1377,1
    - Dst: strcmp
      Src: /src/libxml2/testparser.c:1380,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:1381,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:1385,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1388
      start: 1363
    functionDepth: 0
    functionLinenumber: 1363
    functionLinenumberEnd: 1388
    functionName: testCharEncConvImpl
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlCtxtReadDoc
    - xmlCtxtSetCharEncConvImpl
    - strcmp
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - fprintf
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int testCharEncConvImpl(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlResetLastError
      Src: /src/libxml2/testparser.c:68,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:76,1
    - Dst: xmlReadDoc
      Src: /src/libxml2/testparser.c:70,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:73,1
    - Dst: xmlGetLastError
      Src: /src/libxml2/testparser.c:78,1
    - Dst: strcmp
      Src: /src/libxml2/testparser.c:82,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:84,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 89
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 89
    functionName: testUnsupportedEncoding
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlReadDoc
    - xmlResetLastError
    - xmlGetLastError
    - strcmp
    - xmlFreeDoc
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int testUnsupportedEncoding(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferCreate
      Src: /src/libxml2/testparser.c:244,1
    - Dst: xmlSaveToBuffer
      Src: /src/libxml2/testparser.c:245,1
    - Dst: xmlSaveTree
      Src: /src/libxml2/testparser.c:247,1
    - Dst: xmlBufferDetach
      Src: /src/libxml2/testparser.c:250,1
    - Dst: xmlSaveClose
      Src: /src/libxml2/testparser.c:248,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/testparser.c:251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - list
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 253
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 253
    functionName: dumpNodeList
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlBufferDetach
    - xmlBufferCreate
    - xmlSaveClose
    - xmlSaveToBuffer
    - xmlSaveTree
    - xmlBufferFree
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *dumpNodeList(xmlNodePtr list) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 6
    argNames:
    - vctxt
    - out
    - outlen
    - in
    - inlen
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 1337
      start: 1311
    functionDepth: 0
    functionLinenumber: 1311
    functionLinenumberEnd: 1337
    functionName: rot13Convert
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'static xmlCharEncError rot13Convert(void *vctxt, unsigned char *out,
      int *outlen, const unsigned char *in, int *inlen, int flush ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadDoc
      Src: /src/libxml2/testparser.c:97,1
    - Dst: xmlNewReference
      Src: /src/libxml2/testparser.c:98,1
    - Dst: xmlAddChild
      Src: /src/libxml2/testparser.c:98,1
    - Dst: strcmp
      Src: /src/libxml2/testparser.c:100,1
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/testparser.c:99,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:101,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:104,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 108
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 108
    functionName: testNodeGetContent
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlReadDoc
    - xmlAddChild
    - strcmp
    - xmlFreeDoc
    - xmlNodeGetContent
    - xmlNewReference
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int testNodeGetContent(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadDoc
      Src: /src/libxml2/testparser.c:271,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/testparser.c:275,1
    - Dst: xmlNewInputFromString
      Src: /src/libxml2/testparser.c:282,1
    - Dst: xmlCtxtParseContent
      Src: /src/libxml2/testparser.c:284,1
    - Dst: xmlParseInNodeContext
      Src: /src/libxml2/testparser.c:286,1
    - Dst: strlen
      Src: /src/libxml2/testparser.c:286,1
    - Dst: dumpNodeList
      Src: /src/libxml2/testparser.c:290,1
    - Dst: strcmp
      Src: /src/libxml2/testparser.c:293,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:294,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:302,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/testparser.c:303,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:308,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/testparser.c:307,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 311
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 311
    functionName: testCtxtParseContent
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlReadDoc
    - xmlNewParserCtxt
    - dumpNodeList
    - xmlParseInNodeContext
    - xmlNewInputFromString
    - strcmp
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - strlen
    - fprintf
    - xmlFreeNodeList
    - xmlCtxtParseContent
    linkageType: ''
    returnType: int
    signature: 'static int testCtxtParseContent(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadDoc
      Src: /src/libxml2/testparser.c:333,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/testparser.c:335,1
    - Dst: xmlDocDumpMemory
      Src: /src/libxml2/testparser.c:334,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:338,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/testparser.c:337,1
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 344
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 344
    functionName: testNoBlanks
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlReadDoc
    - xmlDocDumpMemory
    - xmlStrEqual
    - xmlFreeDoc
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int testNoBlanks(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferCreateIO
      Src: /src/libxml2/testparser.c:1009,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/testparser.c:1014,1
    - Dst: xmlNewTextWriter
      Src: /src/libxml2/testparser.c:1011,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/testparser.c:1013,1
    - Dst: xmlTextWriterStartDocument
      Src: /src/libxml2/testparser.c:1012,1
    - Dst: xmlTextWriterEndDocument
      Src: /src/libxml2/testparser.c:1015,1
    - Dst: xmlTextWriterClose
      Src: /src/libxml2/testparser.c:1016,1
    - Dst: fprintf
      Src: /src/libxml2/testparser.c:1019,1
    - Dst: xmlFreeTextWriter
      Src: /src/libxml2/testparser.c:1024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1026
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1026
    functionName: testWriterClose
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlTextWriterStartDocument
    - xmlTextWriterEndElement
    - xmlOutputBufferCreateIO
    - xmlTextWriterEndDocument
    - xmlTextWriterClose
    - xmlNewTextWriter
    - xmlTextWriterStartElement
    - xmlFreeTextWriter
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int testWriterClose(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/testparser.c:1341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1342
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1342
    functionName: rot13ConvCtxtDtor
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void rot13ConvCtxtDtor(void *vctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlError*
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: ignoreError
    functionSourceFile: /src/libxml2/testparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void ignoreError(void *ctxt ATTRIBUTE_UNUSED, const xmlError
      *error ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - handler
    argTypes:
    - xlinkHandler*
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: xlinkSetDefaultHandler
    functionSourceFile: /src/libxml2/xlink.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xlinkSetDefaultHandler(xlinkHandler *handler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: xlinkGetDefaultDetect
    functionSourceFile: /src/libxml2/xlink.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xlinkNodeDetectFunc
    signature: "xlinkNodeDetectFunc xlinkGetDefaultDetect\t(void) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: xlinkGetDefaultHandler
    functionSourceFile: /src/libxml2/xlink.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xlinkHandler*
    signature: 'xlinkHandler *xlinkGetDefaultHandler(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - xlinkNodeDetectFunc
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: xlinkSetDefaultDetect
    functionSourceFile: /src/libxml2/xlink.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void xlinkSetDefaultDetect\t(xlinkNodeDetectFunc func) "
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xlink.c:117,1
    - Dst: xmlGetNsProp
      Src: /src/libxml2/xlink.c:132,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xlink.c:136,1
    - Dst: xmlGetNsProp
      Src: /src/libxml2/xlink.c:137,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xlink.c:134,1
    - Dst: xmlSearchNs
      Src: /src/libxml2/xlink.c:140,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xlink.c:143,1
    - Dst: snprintf
      Src: /src/libxml2/xlink.c:147,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xlink.c:150,1
    - Dst: xmlFree
      Src: /src/libxml2/xlink.c:160,1
    - Dst: xmlFree
      Src: /src/libxml2/xlink.c:161,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 2
    argNames:
    - doc
    - node
    argTypes:
    - xmlDoc*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 163
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 163
    functionName: xlinkIsLink
    functionSourceFile: /src/libxml2/xlink.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetNsProp
    - snprintf
    - xmlStrEqual
    - xmlSearchNs
    linkageType: ''
    returnType: xlinkType
    signature: "xlinkType xlinkIsLink\t(xmlDoc *doc, xmlNode *node) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1165,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1175,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1166,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1172,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1174,1
    - Dst: xmlXPathDebugDumpNode
      Src: /src/libxml2/xpath.c:1176,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - output
    - cur
    - depth
    argTypes:
    - FILE*
    - xmlNodeSetPtr
    - int
    constantsTouched: []
    func_position:
      end: 1179
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1179
    functionName: xmlXPathDebugDumpNodeSet
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathDebugDumpNode
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathDebugDumpNodeSet(FILE *output, xmlNodeSetPtr cur,
      int depth) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 2
    argNames:
    - ancestor
    - node
    argTypes:
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 6650
      start: 6632
    functionDepth: 0
    functionLinenumber: 6632
    functionLinenumberEnd: 6650
    functionName: xmlXPathIsAncestor
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlXPathIsAncestor(xmlNodePtr ancestor, xmlNodePtr node) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xpath.c:8200,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xpath.c:8270,1
    - Dst: pow
      Src: /src/libxml2/xpath.c:8251,1
    - Dst: pow
      Src: /src/libxml2/xpath.c:8274,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 95
    argCount: 1
    argNames:
    - str
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 8276
      start: 8187
    functionDepth: 0
    functionLinenumber: 8187
    functionLinenumberEnd: 8276
    functionName: xmlXPathStringEvalNumber
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - pow
    - IS_BLANK_CH
    linkageType: ''
    returnType: double
    signature: 'double xmlXPathStringEvalNumber(const xmlChar *str) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompUnaryExpr
      Src: /src/libxml2/xpath.c:8872,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8877,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8876,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8876,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8877,1
    - Dst: SKIP
      Src: /src/libxml2/xpath.c:8886,1
    - Dst: SKIP
      Src: /src/libxml2/xpath.c:8889,1
    - Dst: xmlXPathCompUnaryExpr
      Src: /src/libxml2/xpath.c:8892,1
    - Dst: PUSH_BINARY_EXPR
      Src: /src/libxml2/xpath.c:8894,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 8897
      start: 8870
    functionDepth: 0
    functionLinenumber: 8870
    functionLinenumberEnd: 8897
    functionName: xmlXPathCompMultiplicativeExpr
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCompUnaryExpr
    - PUSH_BINARY_EXPR
    - SKIP
    - NXT
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompMultiplicativeExpr(xmlXPathParserContextPtr
      ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompRelativeLocationPath
      Src: /src/libxml2/xpath.c:9478,1
    - Dst: xmlXPathCompRelativeLocationPath
      Src: /src/libxml2/xpath.c:9486,1
    - Dst: PUSH_LONG_EXPR
      Src: /src/libxml2/xpath.c:9484,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:9481,1
    - Dst: SKIP
      Src: /src/libxml2/xpath.c:9482,1
    - Dst: IS_ASCII_LETTER
      Src: /src/libxml2/xpath.c:9491,1
    - Dst: xmlXPathCompRelativeLocationPath
      Src: /src/libxml2/xpath.c:9494,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 9499
      start: 9474
    functionDepth: 0
    functionLinenumber: 9474
    functionLinenumberEnd: 9499
    functionName: xmlXPathCompLocationPath
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - NXT
    - PUSH_LONG_EXPR
    - xmlXPathCompRelativeLocationPath
    - IS_ASCII_LETTER
    - SKIP
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompLocationPath(xmlXPathParserContextPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlXPathContext*
    constantsTouched: []
    func_position:
      end: 12078
      start: 12075
    functionDepth: 0
    functionLinenumber: 12075
    functionLinenumberEnd: 12078
    functionName: xmlXPathRegisterAllFunctions
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathRegisterAllFunctions(xmlXPathContext *ctxt ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1191,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1192,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1197,1
    - Dst: xmlXPathDebugDumpNodeList
      Src: /src/libxml2/xpath.c:1199,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1198,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - output
    - cur
    - depth
    argTypes:
    - FILE*
    - xmlNodeSetPtr
    - int
    constantsTouched: []
    func_position:
      end: 1200
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1200
    functionName: xmlXPathDebugDumpValueTree
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - fprintf
    - xmlXPathDebugDumpNodeList
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathDebugDumpValueTree(FILE *output, xmlNodeSetPtr
      cur, int depth) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 193
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 193
    functionName: xmlXPathSFComputeHash
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: ATTRIBUTE_NO_SANITIZE_INTEGER
    signature: 'ATTRIBUTE_NO_SANITIZE_INTEGER static unsigned xmlXPathSFComputeHash(const
      xmlChar *name) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCastNodeSetToBoolean
      Src: /src/libxml2/xpath.c:4651,1
    - Dst: xmlXPathCastNumberToBoolean
      Src: /src/libxml2/xpath.c:4657,1
    - Dst: xmlXPathCastStringToBoolean
      Src: /src/libxml2/xpath.c:4654,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlXPathObject*
    constantsTouched: []
    func_position:
      end: 4668
      start: 4639
    functionDepth: 0
    functionLinenumber: 4639
    functionLinenumberEnd: 4668
    functionName: xmlXPathCastToBoolean
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCastNodeSetToBoolean
    - xmlXPathCastStringToBoolean
    - xmlXPathCastNumberToBoolean
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathCastToBoolean (xmlXPathObject *val) '
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 31
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlXPathParserContext*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 6622
      start: 6593
    functionDepth: 0
    functionLinenumber: 6593
    functionLinenumberEnd: 6622
    functionName: xmlXPathNextFollowing
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlXPathNextFollowing(xmlXPathParserContext *ctxt, xmlNode
      *cur) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlScanName
      Src: /src/libxml2/xpath.c:8661,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xpath.c:8668,1
    - Dst: XP_ERRORNULL
      Src: /src/libxml2/xpath.c:8663,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:8670,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 8672
      start: 8656
    functionDepth: 0
    functionLinenumber: 8656
    functionLinenumberEnd: 8672
    functionName: xmlXPathScanName
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - XP_ERRORNULL
    - xmlXPathPErrMemory
    - xmlScanName
    - xmlStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlXPathScanName(xmlXPathParserContextPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompUnionExpr
      Src: /src/libxml2/xpath.c:8848,1
    - Dst: PUSH_UNARY_EXPR
      Src: /src/libxml2/xpath.c:8852,1
    - Dst: PUSH_UNARY_EXPR
      Src: /src/libxml2/xpath.c:8854,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 8856
      start: 8835
    functionDepth: 0
    functionLinenumber: 8835
    functionLinenumberEnd: 8856
    functionName: xmlXPathCompUnaryExpr
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCompUnionExpr
    - PUSH_UNARY_EXPR
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompUnaryExpr(xmlXPathParserContextPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathErrMemory
      Src: /src/libxml2/xpath.c:694,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 695
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 695
    functionName: xmlXPathPErrMemory
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathErrMemory
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathPErrMemory(xmlXPathParserContext *ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1117,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1126,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1118,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1125,1
    - Dst: xmlDebugDumpAttr
      Src: /src/libxml2/xpath.c:1128,1
    - Dst: xmlDebugDumpOneNode
      Src: /src/libxml2/xpath.c:1130,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - output
    - cur
    - depth
    argTypes:
    - FILE*
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 1131
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1131
    functionName: xmlXPathDebugDumpNode
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlDebugDumpOneNode
    - fprintf
    - xmlDebugDumpAttr
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathDebugDumpNode(FILE *output, xmlNodePtr cur, int
      depth) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:1752,1
    - Dst: xmlXPathNewString
      Src: /src/libxml2/xpath.c:1767,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:1754,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:1769,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - pctxt
    - val
    argTypes:
    - xmlXPathParserContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1771
      start: 1738
    functionDepth: 0
    functionLinenumber: 1738
    functionLinenumberEnd: 1771
    functionName: xmlXPathCacheNewString
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlXPathPErrMemory
    - xmlXPathNewString
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: 'static xmlXPathObjectPtr xmlXPathCacheNewString(xmlXPathParserContextPtr
      pctxt, const xmlChar *val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - ns
    argTypes:
    - xmlNodeSet*
    constantsTouched: []
    func_position:
      end: 4631
      start: 4626
    functionDepth: 0
    functionLinenumber: 4626
    functionLinenumberEnd: 4631
    functionName: xmlXPathCastNodeSetToBoolean
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathCastNodeSetToBoolean (xmlNodeSet *ns) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompPrimaryExpr
      Src: /src/libxml2/xpath.c:8636,1
    - Dst: xmlXPathCompPredicate
      Src: /src/libxml2/xpath.c:8641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 8646
      start: 8634
    functionDepth: 0
    functionLinenumber: 8634
    functionLinenumberEnd: 8646
    functionName: xmlXPathCompFilterExpr
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCompPredicate
    - xmlXPathCompPrimaryExpr
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompFilterExpr(xmlXPathParserContextPtr ctxt) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 3
    argNames:
    - ctxt
    - op
    - maxPos
    argTypes:
    - xmlXPathParserContextPtr
    - xmlXPathStepOpPtr
    - int*
    constantsTouched: []
    func_position:
      end: 9737
      start: 9683
    functionDepth: 0
    functionLinenumber: 9683
    functionLinenumberEnd: 9737
    functionName: xmlXPathIsPositionalPredicate
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "static int xmlXPathIsPositionalPredicate(xmlXPathParserContextPtr
      ctxt,\t\t\t xmlXPathStepOpPtr op,\t\t\t int *maxPos) "
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathTryStreamCompile
      Src: /src/libxml2/xpath.c:11941,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:11944,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxml2/xpath.c:11949,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:11963,1
    - Dst: xmlXPathCompileExpr
      Src: /src/libxml2/xpath.c:11956,1
    - Dst: xmlXPathOptimizeExpression
      Src: /src/libxml2/xpath.c:11968,1
    - Dst: xmlXPathRunEval
      Src: /src/libxml2/xpath.c:11975,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 11976
      start: 11928
    functionDepth: 0
    functionLinenumber: 11928
    functionLinenumberEnd: 11976
    functionName: xmlXPathEvalExpr
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathPErrMemory
    - XP_ERROR
    - xmlXPathTryStreamCompile
    - xmlXPathOptimizeExpression
    - xmlXPathCompileExpr
    - xmlXPathRunEval
    - xmlXPathFreeCompExpr
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathEvalExpr(xmlXPathParserContext *ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCmpNodes
      Src: /src/libxml2/xpath.c:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 614
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 614
    functionName: wrap_cmp
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCmpNodes
    linkageType: ''
    returnType: int
    signature: 'static int wrap_cmp( xmlNodePtr x, xmlNodePtr y ) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1142,1
    - Dst: xmlDebugDumpOneNode
      Src: /src/libxml2/xpath.c:1151,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - output
    - cur
    - depth
    argTypes:
    - FILE*
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 1153
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1153
    functionName: xmlXPathDebugDumpNodeList
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - fprintf
    - xmlDebugDumpOneNode
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathDebugDumpNodeList(FILE *output, xmlNodePtr cur,
      int depth) '
  - BBCount: 101
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxml2/xpath.c:9980,1
    - Dst: xmlXPathCmpNodesExt
      Src: /src/libxml2/xpath.c:10009,1
    - Dst: XP_OPTIMIZED_NON_ELEM_COMPARISON
      Src: /src/libxml2/xpath.c:10008,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:10322,1
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxml2/xpath.c:10310,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:9814,1
    - Dst: xmlXPathNsLookup
      Src: /src/libxml2/xpath.c:9811,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:9806,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:10075,1
    - Dst: next
      Src: /src/libxml2/xpath.c:9997,1
    - Dst: OP_LIMIT_EXCEEDED
      Src: /src/libxml2/xpath.c:9994,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:10129,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:10147,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:10170,1
    - Dst: mergeAndClear
      Src: /src/libxml2/xpath.c:10196,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/xpath.c:10316,1
    - Dst: xmlXPathCacheWrapNodeSet
      Src: /src/libxml2/xpath.c:10322,1
    - Dst: xmlXPathCompOpEvalPredicate
      Src: /src/libxml2/xpath.c:10259,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:9813,1
    - Dst: xmlXPathIsPositionalPredicate
      Src: /src/libxml2/xpath.c:9937,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:9982,1
    - Dst: xmlXPathCmpNodes
      Src: /src/libxml2/xpath.c:10024,1
    - Dst: xmlXPathCmpNodesExt
      Src: /src/libxml2/xpath.c:10022,1
    - Dst: XP_OPTIMIZED_NON_ELEM_COMPARISON
      Src: /src/libxml2/xpath.c:10021,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:10088,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:10105,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:10156,1
    - Dst: mergeAndClear
      Src: /src/libxml2/xpath.c:10216,1
    - Dst: mergeAndClear
      Src: /src/libxml2/xpath.c:10279,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:10332,1
    - Dst: CHECK_TYPE0
      Src: /src/libxml2/xpath.c:9805,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:9902,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:9907,1
    - Dst: xmlXPathCmpNodes
      Src: /src/libxml2/xpath.c:10011,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:10137,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:10198,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:10218,1
    - Dst: xmlXPathCompOpEvalPredicate
      Src: /src/libxml2/xpath.c:10262,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:10281,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:10312,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:10301,1
    CyclomaticComplexity: 145
    EdgeCount: 145
    ICount: 303
    argCount: 5
    argNames:
    - ctxt
    - op
    - first
    - last
    - toBool
    argTypes:
    - xmlXPathParserContextPtr
    - xmlXPathStepOpPtr
    - xmlNodePtr*
    - xmlNodePtr*
    - int
    constantsTouched: []
    func_position:
      end: 10337
      start: 9739
    functionDepth: 0
    functionLinenumber: 9739
    functionLinenumberEnd: 10337
    functionName: xmlXPathNodeCollectAndTest
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - next
    - xmlXPathPErrMemory
    - xmlXPathReleaseObject
    - xmlXPathNsLookup
    - xmlXPathCmpNodes
    - XP_ERROR0
    - xmlXPathCompOpEvalPredicate
    - xmlXPathCacheWrapNodeSet
    - xmlXPathNodeSetCreate
    - XP_OPTIMIZED_NON_ELEM_COMPARISON
    - xmlFree
    - xmlXPathCmpNodesExt
    - OP_LIMIT_EXCEEDED
    - xmlXPathValuePop
    - xmlXPathIsPositionalPredicate
    - xmlXPathFreeNodeSet
    - xmlXPathValuePush
    - CHECK_TYPE0
    - mergeAndClear
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: "static int xmlXPathNodeCollectAndTest(xmlXPathParserContextPtr ctxt,
      xmlXPathStepOpPtr op,\t\t\t xmlNodePtr * first, xmlNodePtr * last,\t\t\t int
      toBool) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/xpath.c:679,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathContext*
    constantsTouched: []
    func_position:
      end: 681
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 681
    functionName: xmlXPathErrMemory
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlRaiseMemoryError
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathErrMemory(xmlXPathContext *ctxt) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxml2/xpath.c:1694,1
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxml2/xpath.c:1708,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:1695,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxml2/xpath.c:1724,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:1710,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:1726,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - pctxt
    - val
    argTypes:
    - xmlXPathParserContextPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1728
      start: 1671
    functionDepth: 0
    functionLinenumber: 1671
    functionLinenumberEnd: 1728
    functionName: xmlXPathCacheNewNodeSet
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathPErrMemory
    - xmlXPathNodeSetAddUnique
    - xmlXPathNewNodeSet
    - xmlXPathNodeSetCreate
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: 'static xmlXPathObjectPtr xmlXPathCacheNewNodeSet(xmlXPathParserContextPtr
      pctxt, xmlNodePtr val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathParseNCName
      Src: /src/libxml2/xpath.c:8134,1
    - Dst: xmlXPathParseNCName
      Src: /src/libxml2/xpath.c:8138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - prefix
    argTypes:
    - xmlXPathParserContextPtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 8141
      start: 8129
    functionDepth: 0
    functionLinenumber: 8129
    functionLinenumberEnd: 8141
    functionName: xmlXPathParseQName
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathParseNCName
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlXPathParseQName(xmlXPathParserContextPtr ctxt,
      xmlChar **prefix) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathEval
      Src: /src/libxml2/xpath.c:12065,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - str
    - ctxt
    argTypes:
    - xmlChar*
    - xmlXPathContext*
    constantsTouched: []
    func_position:
      end: 12066
      start: 12063
    functionDepth: 0
    functionLinenumber: 12063
    functionLinenumberEnd: 12066
    functionName: xmlXPathEvalExpression
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathEval
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathEvalExpression(const xmlChar *str, xmlXPathContext
      *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathErr
      Src: /src/libxml2/xpath.c:793,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ctxt
    - opCount
    argTypes:
    - xmlXPathParserContextPtr
    - unsigned long
    constantsTouched: []
    func_position:
      end: 799
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 799
    functionName: xmlXPathCheckOpLimit
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathErr
    linkageType: ''
    returnType: int
    signature: 'static int xmlXPathCheckOpLimit(xmlXPathParserContextPtr ctxt, unsigned
      long opCount) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:1502,1
    - Dst: memset
      Src: /src/libxml2/xpath.c:1505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1509
      start: 1497
    functionDepth: 0
    functionLinenumber: 1497
    functionLinenumberEnd: 1509
    functionName: xmlXPathNewCache
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlXPathContextCachePtr
    signature: 'static xmlXPathContextCachePtr xmlXPathNewCache(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCastNodeSetToString
      Src: /src/libxml2/xpath.c:1928,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:1930,1
    - Dst: xmlXPathCastStringToNumber
      Src: /src/libxml2/xpath.c:1933,1
    - Dst: xmlXPathCastStringToNumber
      Src: /src/libxml2/xpath.c:1939,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:1934,1
    - Dst: xmlXPathCastBooleanToNumber
      Src: /src/libxml2/xpath.c:1945,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - val
    argTypes:
    - xmlXPathParserContextPtr
    - xmlXPathObjectPtr
    constantsTouched: []
    func_position:
      end: 1953
      start: 1913
    functionDepth: 0
    functionLinenumber: 1913
    functionLinenumberEnd: 1953
    functionName: xmlXPathCastToNumberInternal
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathCastStringToNumber
    - xmlXPathPErrMemory
    - xmlXPathCastBooleanToNumber
    - xmlXPathCastNodeSetToString
    linkageType: ''
    returnType: double
    signature: 'static double xmlXPathCastToNumberInternal(xmlXPathParserContextPtr
      ctxt, xmlXPathObjectPtr val) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:2762,1
    - Dst: xmlXPathNodeSetGrow
      Src: /src/libxml2/xpath.c:2770,1
    - Dst: xmlXPathNodeSetDupNs
      Src: /src/libxml2/xpath.c:2773,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 3
    argNames:
    - cur
    - node
    - ns
    argTypes:
    - xmlNodeSet*
    - xmlNode*
    - xmlNs*
    constantsTouched: []
    func_position:
      end: 2778
      start: 2744
    functionDepth: 0
    functionLinenumber: 2744
    functionLinenumberEnd: 2778
    functionName: xmlXPathNodeSetAddNs
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetDupNs
    - xmlXPathNodeSetGrow
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathNodeSetAddNs(xmlNodeSet *cur, xmlNode *node, xmlNs *ns) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxml2/xpath.c:3431,1
    - Dst: xmlXPathNodeSetGetLength
      Src: /src/libxml2/xpath.c:3435,1
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxml2/xpath.c:3432,1
    - Dst: xmlXPathNodeSetContains
      Src: /src/libxml2/xpath.c:3438,1
    - Dst: xmlXPathNodeSetItem
      Src: /src/libxml2/xpath.c:3437,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - nodes1
    - nodes2
    argTypes:
    - xmlNodeSet*
    - xmlNodeSet*
    constantsTouched: []
    func_position:
      end: 3442
      start: 3426
    functionDepth: 0
    functionLinenumber: 3426
    functionLinenumberEnd: 3442
    functionName: xmlXPathHasSameNodes
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetIsEmpty
    - xmlXPathNodeSetContains
    - xmlXPathNodeSetGetLength
    - xmlXPathNodeSetItem
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathHasSameNodes (xmlNodeSet *nodes1, xmlNodeSet *nodes2) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashFree
      Src: /src/libxml2/xpath.c:3930,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathContext*
    constantsTouched: []
    func_position:
      end: 3932
      start: 3925
    functionDepth: 0
    functionLinenumber: 3925
    functionLinenumberEnd: 3932
    functionName: xmlXPathRegisteredVariablesCleanup
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathRegisteredVariablesCleanup(xmlXPathContext *ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathWrapString
      Src: /src/libxml2/xpath.c:4138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 4139
      start: 4136
    functionDepth: 0
    functionLinenumber: 4136
    functionLinenumberEnd: 4139
    functionName: xmlXPathWrapCString
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathWrapString
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathWrapCString (char * val) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:5691,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5697,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:5692,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:5698,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5695,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:5702,1
    - Dst: xmlXPathEqualNodeSets
      Src: /src/libxml2/xpath.c:5724,1
    - Dst: xmlXPathEqualNodeSetFloat
      Src: /src/libxml2/xpath.c:5734,1
    - Dst: xmlXPathEqualNodeSetString
      Src: /src/libxml2/xpath.c:5737,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5744,1
    - Dst: xmlXPathEqualValuesCommon
      Src: /src/libxml2/xpath.c:5749,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5745,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 51
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 5750
      start: 5685
    functionDepth: 0
    functionLinenumber: 5685
    functionLinenumberEnd: 5750
    functionName: xmlXPathEqualValues
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathEqualNodeSets
    - xmlXPathEqualValuesCommon
    - xmlXPathReleaseObject
    - xmlXPathFreeObject
    - xmlXPathValuePop
    - XP_ERROR0
    - xmlXPathEqualNodeSetString
    - xmlXPathEqualNodeSetFloat
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathEqualValues(xmlXPathParserContext *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:1521,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:1522,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:1524,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - list
    argTypes:
    - xmlXPathObjectPtr
    constantsTouched: []
    func_position:
      end: 1528
      start: 1511
    functionDepth: 0
    functionLinenumber: 1511
    functionLinenumberEnd: 1528
    functionName: xmlXPathCacheFreeObjectList
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCacheFreeObjectList(xmlXPathObjectPtr list) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5859,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxml2/xpath.c:5902,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:5906,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:5905,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5947,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:5853,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:5854,1
    - Dst: xmlXPathCompareNodeSets
      Src: /src/libxml2/xpath.c:5872,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxml2/xpath.c:5902,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5948,1
    - Dst: xmlXPathCompareNodeSetValue
      Src: /src/libxml2/xpath.c:5878,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:5886,1
    - Dst: xmlXPathNumberFunction
      Src: /src/libxml2/xpath.c:5887,1
    - Dst: xmlXPathNumberFunction
      Src: /src/libxml2/xpath.c:5892,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:5891,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:5860,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5857,1
    - Dst: xmlXPathCompareNodeSetValue
      Src: /src/libxml2/xpath.c:5875,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:5888,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:5893,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 141
    argCount: 3
    argNames:
    - ctxt
    - inf
    - strict
    argTypes:
    - xmlXPathParserContext*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 5950
      start: 5847
    functionDepth: 0
    functionLinenumber: 5847
    functionLinenumberEnd: 5950
    functionName: xmlXPathCompareValues
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCompareNodeSets
    - xmlXPathIsNaN
    - xmlXPathNumberFunction
    - xmlXPathIsInf
    - xmlXPathValuePush
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - XP_ERROR0
    - xmlXPathCompareNodeSetValue
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathCompareValues(xmlXPathParserContext *ctxt, int inf, int
      strict) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xpath.c:2723,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xpath.c:2727,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlNodeSetPtr
    constantsTouched: []
    func_position:
      end: 2734
      start: 2718
    functionDepth: 0
    functionLinenumber: 2718
    functionLinenumberEnd: 2734
    functionName: xmlXPathNodeSetGrow
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlXPathNodeSetGrow(xmlNodeSetPtr cur) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:2961,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/xpath.c:2988,1
    - Dst: xmlXPathNodeSetClear
      Src: /src/libxml2/xpath.c:2989,1
    - Dst: xmlXPathNodeSetFreeNs
      Src: /src/libxml2/xpath.c:2967,1
    - Dst: xmlXPathNodeSetGrow
      Src: /src/libxml2/xpath.c:2976,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - set1
    - set2
    argTypes:
    - xmlNodeSetPtr
    - xmlNodeSetPtr
    constantsTouched: []
    func_position:
      end: 2991
      start: 2940
    functionDepth: 0
    functionLinenumber: 2940
    functionLinenumberEnd: 2991
    functionName: xmlXPathNodeSetMergeAndClear
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeNodeSet
    - xmlXPathNodeSetFreeNs
    - xmlXPathNodeSetClear
    - xmlStrEqual
    - xmlXPathNodeSetGrow
    linkageType: ''
    returnType: xmlNodeSetPtr
    signature: 'static xmlNodeSetPtr xmlXPathNodeSetMergeAndClear(xmlNodeSetPtr set1,
      xmlNodeSetPtr set2) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:3178,1
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxml2/xpath.c:3184,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:3186,1
    - Dst: memset
      Src: /src/libxml2/xpath.c:3181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3191
      start: 3174
    functionDepth: 0
    functionLinenumber: 3174
    functionLinenumberEnd: 3191
    functionName: xmlXPathNewNodeSet
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetCreate
    - memset
    - xmlFree
    - xmlMalloc
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathNewNodeSet(xmlNode *val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:3274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - xmlXPathObject*
    constantsTouched: []
    func_position:
      end: 3275
      start: 3271
    functionDepth: 0
    functionLinenumber: 3271
    functionLinenumberEnd: 3275
    functionName: xmlXPathFreeNodeSetList
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathFreeNodeSetList(xmlXPathObject *obj) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 4128
      start: 4125
    functionDepth: 0
    functionLinenumber: 4125
    functionLinenumberEnd: 4128
    functionName: xmlXPathNewCString
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathNewCString(const char *val) '
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:5589,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:5641,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5674,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:5580,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:5628,1
    - Dst: xmlXPathNumberFunction
      Src: /src/libxml2/xpath.c:5627,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:5594,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:5636,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:5640,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:5646,1
    - Dst: xmlXPathNumberFunction
      Src: /src/libxml2/xpath.c:5569,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:5570,1
    - Dst: xmlXPathCastNumberToBoolean
      Src: /src/libxml2/xpath.c:5565,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxml2/xpath.c:5576,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:5579,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:5626,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:5595,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:5585,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxml2/xpath.c:5632,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:5635,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5675,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:5651,1
    - Dst: xmlXPathCastNumberToBoolean
      Src: /src/libxml2/xpath.c:5542,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:5568,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxml2/xpath.c:5577,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:5584,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:5590,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:5623,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxml2/xpath.c:5633,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:5650,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:5645,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 111
    argCount: 3
    argNames:
    - ctxt
    - arg1
    - arg2
    argTypes:
    - xmlXPathParserContextPtr
    - xmlXPathObjectPtr
    - xmlXPathObjectPtr
    constantsTouched: []
    func_position:
      end: 5677
      start: 5522
    functionDepth: 0
    functionLinenumber: 5522
    functionLinenumberEnd: 5677
    functionName: xmlXPathEqualValuesCommon
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCastNumberToBoolean
    - xmlXPathIsNaN
    - xmlXPathNumberFunction
    - xmlXPathIsInf
    - xmlXPathValuePush
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xmlXPathEqualValuesCommon(xmlXPathParserContextPtr ctxt,
      xmlXPathObjectPtr arg1, xmlXPathObjectPtr arg2) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:5764,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5768,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5770,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:5765,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:5771,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5775,1
    - Dst: xmlXPathEqualNodeSets
      Src: /src/libxml2/xpath.c:5797,1
    - Dst: xmlXPathEqualNodeSetFloat
      Src: /src/libxml2/xpath.c:5807,1
    - Dst: xmlXPathEqualNodeSetString
      Src: /src/libxml2/xpath.c:5810,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5817,1
    - Dst: xmlXPathEqualValuesCommon
      Src: /src/libxml2/xpath.c:5822,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5818,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 52
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 5823
      start: 5758
    functionDepth: 0
    functionLinenumber: 5758
    functionLinenumberEnd: 5823
    functionName: xmlXPathNotEqualValues
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathEqualNodeSets
    - xmlXPathEqualValuesCommon
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - XP_ERROR0
    - xmlXPathEqualNodeSetString
    - xmlXPathEqualNodeSetFloat
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathNotEqualValues(xmlXPathParserContext *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:6864,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:6869,1
    - Dst: xmlXPathCacheNewFloat
      Src: /src/libxml2/xpath.c:6867,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:6866,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 6871
      start: 6862
    functionDepth: 0
    functionLinenumber: 6862
    functionLinenumberEnd: 6871
    functionName: xmlXPathLastFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - XP_ERROR
    - xmlXPathValuePush
    - CHECK_ARITY
    - xmlXPathCacheNewFloat
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathLastFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7610,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:7620,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7614,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7612,1
    - Dst: xmlStrstr
      Src: /src/libxml2/xpath.c:7618,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:7622,1
    - Dst: xmlStrlen
      Src: /src/libxml2/xpath.c:7622,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7625,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7628,1
    - Dst: xmlXPathCacheWrapString
      Src: /src/libxml2/xpath.c:7628,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7632,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7631,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7633
      start: 7603
    functionDepth: 0
    functionLinenumber: 7603
    functionLinenumberEnd: 7633
    functionName: xmlXPathSubstringAfterFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathPErrMemory
    - CHECK_ARITY
    - xmlStrlen
    - xmlXPathValuePush
    - xmlStrdup
    - xmlXPathCacheWrapString
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlStrstr
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathSubstringAfterFunction(xmlXPathParserContext *ctxt, int
      nargs) '
  - BBCount: 72
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10733,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10739,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:10741,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10752,1
    - Dst: xmlXPathVariableLookupNS
      Src: /src/libxml2/xpath.c:10881,1
    - Dst: xmlXPathDivValues
      Src: /src/libxml2/xpath.c:10794,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:10846,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:11049,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:10808,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:10871,1
    - Dst: xmlXPathNodeSetKeepLast
      Src: /src/libxml2/xpath.c:11032,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10841,1
    - Dst: xmlXPathCacheNewBoolean
      Src: /src/libxml2/xpath.c:10758,1
    - Dst: xmlXPathMultValues
      Src: /src/libxml2/xpath.c:10792,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:10819,1
    - Dst: xmlXPathCacheObjectCopy
      Src: /src/libxml2/xpath.c:10860,1
    - Dst: xmlXPathFunctionLookupNS
      Src: /src/libxml2/xpath.c:10921,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:10925,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10943,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:10878,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10716,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10722,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:10724,1
    - Dst: xmlXPathCompOpEvalFirst
      Src: /src/libxml2/xpath.c:10984,1
    - Dst: xmlXPathNodeSetClearFromPos
      Src: /src/libxml2/xpath.c:10996,1
    - Dst: xmlXPathNodeSetFilter
      Src: /src/libxml2/xpath.c:11066,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:11084,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:10721,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:10747,1
    - Dst: xmlXPathEqualValues
      Src: /src/libxml2/xpath.c:10755,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10761,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10844,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:10906,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:10766,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:10884,1
    - Dst: xmlXPathNsLookup
      Src: /src/libxml2/xpath.c:10918,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:10938,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:10738,1
    - Dst: xmlXPathCheckOpLimit
      Src: /src/libxml2/xpath.c:10814,1
    - Dst: xmlXPathFunctionLookup
      Src: /src/libxml2/xpath.c:10915,1
    - Dst: xmlXPathNsLookup
      Src: /src/libxml2/xpath.c:10876,1
    - Dst: xmlXPathCompOpEvalLast
      Src: /src/libxml2/xpath.c:11019,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10867,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10799,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:10810,1
    - Dst: xmlXPathRoot
      Src: /src/libxml2/xpath.c:10837,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:10920,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:10730,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10787,1
    - Dst: xmlXPathNodeSetSort
      Src: /src/libxml2/xpath.c:11080,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:10709,1
    - Dst: xmlXPathBooleanFunction
      Src: /src/libxml2/xpath.c:10744,1
    - Dst: xmlXPathValueFlipSign
      Src: /src/libxml2/xpath.c:10780,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10789,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:10903,1
    - Dst: func
      Src: /src/libxml2/xpath.c:10933,1
    - Dst: XP_OPTIMIZED_FILTER_FIRST
      Src: /src/libxml2/xpath.c:10960,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:11063,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:10872,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10763,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:10804,1
    - Dst: xmlXPathCacheNewNodeSet
      Src: /src/libxml2/xpath.c:10846,1
    - Dst: xmlXPathCompareValues
      Src: /src/libxml2/xpath.c:10765,1
    - Dst: xmlXPathAddValues
      Src: /src/libxml2/xpath.c:10778,1
    - Dst: xmlXPathNodeSetMerge
      Src: /src/libxml2/xpath.c:10827,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10947,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:11073,1
    - Dst: xmlXPathNodeCollectAndTest
      Src: /src/libxml2/xpath.c:10856,1
    - Dst: xmlXPathBooleanFunction
      Src: /src/libxml2/xpath.c:10727,1
    - Dst: xmlXPathNotEqualValues
      Src: /src/libxml2/xpath.c:10757,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10801,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:11068,1
    - Dst: xmlXPathBooleanFunction
      Src: /src/libxml2/xpath.c:10718,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10772,1
    - Dst: xmlXPathVariableLookup
      Src: /src/libxml2/xpath.c:10869,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:10885,1
    - Dst: xmlXPathSubValues
      Src: /src/libxml2/xpath.c:10776,1
    - Dst: CHECK_TYPE0
      Src: /src/libxml2/xpath.c:10783,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:10805,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:10809,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:10833,1
    - Dst: xmlXPathCheckOpLimit
      Src: /src/libxml2/xpath.c:10817,1
    - Dst: xmlXPathBooleanFunction
      Src: /src/libxml2/xpath.c:10735,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:10758,1
    - Dst: xmlXPathCacheNewBoolean
      Src: /src/libxml2/xpath.c:10766,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:10860,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:11014,1
    - Dst: OP_LIMIT_EXCEEDED
      Src: /src/libxml2/xpath.c:10706,1
    - Dst: xmlXPathModValues
      Src: /src/libxml2/xpath.c:10796,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10853,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:10830,1
    - Dst: CHECK_TYPE0
      Src: /src/libxml2/xpath.c:11062,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:10820,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:10834,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10898,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10750,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10769,1
    CyclomaticComplexity: 114
    EdgeCount: 114
    ICount: 307
    argCount: 2
    argNames:
    - ctxt
    - op
    argTypes:
    - xmlXPathParserContextPtr
    - xmlXPathStepOpPtr
    constantsTouched: []
    func_position:
      end: 11090
      start: 10697
    functionDepth: 0
    functionLinenumber: 10697
    functionLinenumberEnd: 11090
    functionName: xmlXPathCompOpEval
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathPErrMemory
    - xmlXPathVariableLookup
    - xmlXPathVariableLookupNS
    - xmlXPathReleaseObject
    - xmlXPathSubValues
    - xmlXPathNodeSetKeepLast
    - xmlXPathCompOpEval
    - xmlXPathCompOpEvalLast
    - xmlXPathCacheNewNodeSet
    - xmlXPathRoot
    - xmlXPathNodeSetMerge
    - xmlXPathNsLookup
    - xmlXPathNodeSetClearFromPos
    - xmlXPathCacheObjectCopy
    - xmlXPathCheckOpLimit
    - xmlXPathAddValues
    - xmlXPathNodeSetSort
    - xmlXPathFreeObject
    - XP_ERROR0
    - xmlXPathNodeCollectAndTest
    - xmlXPathEqualValues
    - xmlXPathDivValues
    - xmlXPathMultValues
    - xmlXPathNotEqualValues
    - OP_LIMIT_EXCEEDED
    - xmlXPathValuePop
    - xmlXPathValueFlipSign
    - xmlXPathFunctionLookup
    - xmlXPathNodeSetFilter
    - xmlXPathBooleanFunction
    - XP_OPTIMIZED_FILTER_FIRST
    - xmlXPathCacheNewBoolean
    - xmlXPathCompOpEvalFirst
    - xmlXPathValuePush
    - CHECK_TYPE0
    - xmlXPathCompareValues
    - xmlXPathFunctionLookupNS
    - func
    - xmlStrEqual
    - xmlXPathModValues
    linkageType: ''
    returnType: int
    signature: 'static int xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr
      op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:3254,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/xpath.c:3256,1
    - Dst: memset
      Src: /src/libxml2/xpath.c:3259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlNodeSet*
    constantsTouched: []
    func_position:
      end: 3263
      start: 3250
    functionDepth: 0
    functionLinenumber: 3250
    functionLinenumberEnd: 3263
    functionName: xmlXPathWrapNodeSet
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeNodeSet
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathWrapNodeSet(xmlNodeSet *val) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1224,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1232,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1241,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1264,1
    - Dst: xmlDebugDumpString
      Src: /src/libxml2/xpath.c:1265,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1254,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxml2/xpath.c:1253,1
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:1245,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1269,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1221,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1247,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1266,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1236,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1242,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1259,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1250,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1229,1
    - Dst: xmlXPathDebugDumpNodeSet
      Src: /src/libxml2/xpath.c:1233,1
    - Dst: xmlXPathDebugDumpValueTree
      Src: /src/libxml2/xpath.c:1237,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1240,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1257,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 45
    argCount: 3
    argNames:
    - output
    - cur
    - depth
    argTypes:
    - FILE*
    - xmlXPathObject*
    - int
    constantsTouched: []
    func_position:
      end: 1272
      start: 1209
    functionDepth: 0
    functionLinenumber: 1209
    functionLinenumberEnd: 1272
    functionName: xmlXPathDebugDumpObject
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlDebugDumpString
    - xmlXPathIsNaN
    - xmlXPathIsInf
    - xmlXPathDebugDumpValueTree
    - xmlXPathDebugDumpNodeSet
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathDebugDumpObject(FILE *output, xmlXPathObject *cur, int
      depth) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetMerge
      Src: /src/libxml2/xpath.c:1877,1
    - Dst: xmlXPathCacheWrapNodeSet
      Src: /src/libxml2/xpath.c:1882,1
    - Dst: xmlXPathCacheNewBoolean
      Src: /src/libxml2/xpath.c:1887,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:1879,1
    - Dst: xmlXPathCacheNewString
      Src: /src/libxml2/xpath.c:1885,1
    - Dst: xmlXPathCacheNewFloat
      Src: /src/libxml2/xpath.c:1889,1
    - Dst: xmlXPathObjectCopy
      Src: /src/libxml2/xpath.c:1894,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:1896,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 2
    argNames:
    - pctxt
    - val
    argTypes:
    - xmlXPathParserContextPtr
    - xmlXPathObjectPtr
    constantsTouched: []
    func_position:
      end: 1898
      start: 1863
    functionDepth: 0
    functionLinenumber: 1863
    functionLinenumberEnd: 1898
    functionName: xmlXPathCacheObjectCopy
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathPErrMemory
    - xmlXPathNodeSetMerge
    - xmlXPathCacheNewBoolean
    - xmlXPathObjectCopy
    - xmlXPathCacheNewString
    - xmlXPathCacheNewFloat
    - xmlXPathCacheWrapNodeSet
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: 'static xmlXPathObjectPtr xmlXPathCacheObjectCopy(xmlXPathParserContextPtr
      pctxt, xmlXPathObjectPtr val) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:2037,1
    - Dst: xmlXPathSetError
      Src: /src/libxml2/xpath.c:2039,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:2046,1
    - Dst: xmlXPathCastToBoolean
      Src: /src/libxml2/xpath.c:2043,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 2048
      start: 2032
    functionDepth: 0
    functionLinenumber: 2032
    functionLinenumberEnd: 2048
    functionName: xmlXPathPopBoolean
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathReleaseObject
    - xmlXPathSetError
    - xmlXPathValuePop
    - xmlXPathCastToBoolean
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathPopBoolean (xmlXPathParserContext *ctxt) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxml2/xpath.c:2869,1
    - Dst: xmlXPathNodeSetDupNs
      Src: /src/libxml2/xpath.c:2913,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/xpath.c:2925,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:2893,1
    - Dst: xmlXPathNodeSetGrow
      Src: /src/libxml2/xpath.c:2908,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 2
    argNames:
    - val1
    - val2
    argTypes:
    - xmlNodeSet*
    - xmlNodeSet*
    constantsTouched: []
    func_position:
      end: 2927
      start: 2863
    functionDepth: 0
    functionLinenumber: 2863
    functionLinenumberEnd: 2927
    functionName: xmlXPathNodeSetMerge
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetCreate
    - xmlXPathFreeNodeSet
    - xmlStrEqual
    - xmlXPathNodeSetDupNs
    - xmlXPathNodeSetGrow
    linkageType: ''
    returnType: xmlNodeSet*
    signature: 'xmlNodeSet *xmlXPathNodeSetMerge(xmlNodeSet *val1, xmlNodeSet *val2) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetFreeNs
      Src: /src/libxml2/xpath.c:3161,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - set
    argTypes:
    - xmlNodeSetPtr
    constantsTouched: []
    func_position:
      end: 3165
      start: 3149
    functionDepth: 0
    functionLinenumber: 3149
    functionLinenumberEnd: 3165
    functionName: xmlXPathNodeSetKeepLast
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetFreeNs
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathNodeSetKeepLast(xmlNodeSetPtr set) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - ctxt
    - f
    - funcCtxt
    argTypes:
    - xmlXPathContext*
    - xmlXPathFuncLookupFunc
    - void*
    constantsTouched: []
    func_position:
      end: 3716
      start: 3708
    functionDepth: 0
    functionLinenumber: 3708
    functionLinenumberEnd: 3716
    functionName: xmlXPathRegisterFuncLookup
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void xmlXPathRegisterFuncLookup (xmlXPathContext *ctxt,\t\t\t xmlXPathFuncLookupFunc
      f,\t\t\t void *funcCtxt) "
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7179,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7191,1
    - Dst: xmlXPathCacheNewCString
      Src: /src/libxml2/xpath.c:7200,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7219,1
    - Dst: xmlXPathCacheNewString
      Src: /src/libxml2/xpath.c:7203,1
    - Dst: xmlXPathCacheNewNodeSet
      Src: /src/libxml2/xpath.c:7179,1
    - Dst: xmlXPathCacheNewCString
      Src: /src/libxml2/xpath.c:7191,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7203,1
    - Dst: xmlXPathLocalNameFunction
      Src: /src/libxml2/xpath.c:7221,1
    - Dst: xmlXPathCacheNewNodeSet
      Src: /src/libxml2/xpath.c:7219,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:7187,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7188,1
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7183,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:7212,1
    - Dst: xmlBuildQName
      Src: /src/libxml2/xpath.c:7208,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7215,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7199,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7214,1
    - Dst: xmlXPathCacheWrapString
      Src: /src/libxml2/xpath.c:7215,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7224,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 7225
      start: 7173
    functionDepth: 0
    functionLinenumber: 7173
    functionLinenumberEnd: 7225
    functionName: xmlXPathNameFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathPErrMemory
    - xmlXPathLocalNameFunction
    - CHECK_ARITY
    - XP_ERROR
    - xmlXPathValuePush
    - xmlStrdup
    - xmlXPathCacheWrapString
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlXPathCacheNewString
    - xmlBuildQName
    - xmlXPathCacheNewNodeSet
    - xmlXPathCacheNewCString
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathNameFunction(xmlXPathParserContextPtr ctxt, int
      nargs) '
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1304,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1329,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1316,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1343,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1346,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1348,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1360,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1368,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1382,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1392,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1426,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1433,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1429,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1406,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1432,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1390,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1306,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1318,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1322,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1331,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1350,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1362,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1370,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1374,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1376,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1394,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1417,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1378,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1415,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1291,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1293,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1286,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1298,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1312,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1324,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1333,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1352,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1356,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1364,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1384,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1397,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1438,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1434,1
    - Dst: xmlXPathDebugDumpStepOp
      Src: /src/libxml2/xpath.c:1447,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1284,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1295,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1300,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1308,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1326,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1314,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1335,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1354,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1358,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1366,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1436,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1399,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1380,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1388,1
    - Dst: xmlXPathDebugDumpObject
      Src: /src/libxml2/xpath.c:1407,1
    - Dst: xmlXPathDebugDumpStepOp
      Src: /src/libxml2/xpath.c:1445,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 101
    argCount: 4
    argNames:
    - output
    - comp
    - op
    - depth
    argTypes:
    - FILE*
    - xmlXPathCompExprPtr
    - xmlXPathStepOpPtr
    - int
    constantsTouched: []
    func_position:
      end: 1448
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1448
    functionName: xmlXPathDebugDumpStepOp
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathDebugDumpObject
    - xmlXPathDebugDumpStepOp
    - fprintf
    linkageType: ''
    returnType: void
    signature: "static void xmlXPathDebugDumpStepOp(FILE *output, xmlXPathCompExprPtr
      comp,\t xmlXPathStepOpPtr op, int depth) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7565,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:7575,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7569,1
    - Dst: xmlStrstr
      Src: /src/libxml2/xpath.c:7573,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7567,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xpath.c:7577,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7580,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7583,1
    - Dst: xmlXPathCacheWrapString
      Src: /src/libxml2/xpath.c:7583,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7586,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7587,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7588
      start: 7558
    functionDepth: 0
    functionLinenumber: 7558
    functionLinenumberEnd: 7588
    functionName: xmlXPathSubstringBeforeFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathPErrMemory
    - xmlStrndup
    - CHECK_ARITY
    - xmlXPathValuePush
    - xmlStrdup
    - xmlXPathCacheWrapString
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlStrstr
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathSubstringBeforeFunction(xmlXPathParserContext *ctxt,
      int nargs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:8014,1
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpath.c:8016,1
    - Dst: floor
      Src: /src/libxml2/xpath.c:8018,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 8019
      start: 8012
    functionDepth: 0
    functionLinenumber: 8012
    functionLinenumberEnd: 8019
    functionName: xmlXPathFloorFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - CHECK_TYPE
    - floor
    - CHECK_ARITY
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathFloorFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCmpNodesExt
      Src: /src/libxml2/xpath.c:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 608
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 608
    functionName: wrap_cmp
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCmpNodesExt
    linkageType: ''
    returnType: int
    signature: 'static int wrap_cmp( xmlNodePtr x, xmlNodePtr y ) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNewFloat
      Src: /src/libxml2/xpath.c:1849,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:1851,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - pctxt
    - val
    argTypes:
    - xmlXPathParserContextPtr
    - double
    constantsTouched: []
    func_position:
      end: 1853
      start: 1829
    functionDepth: 0
    functionLinenumber: 1829
    functionLinenumberEnd: 1853
    functionName: xmlXPathCacheNewFloat
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathPErrMemory
    - xmlXPathNewFloat
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: 'static xmlXPathObjectPtr xmlXPathCacheNewFloat(xmlXPathParserContextPtr
      pctxt, double val) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:1997,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xpath.c:2004,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:2008,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xpath.c:2011,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:2007,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:2013,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:2014,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - ctxt
    - value
    argTypes:
    - xmlXPathParserContext*
    - xmlXPathObject*
    constantsTouched: []
    func_position:
      end: 2023
      start: 1989
    functionDepth: 0
    functionLinenumber: 1989
    functionLinenumberEnd: 2023
    functionName: xmlXPathValuePush
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlXPathFreeObject
    - xmlXPathPErrMemory
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathValuePush(xmlXPathParserContext *ctxt, xmlXPathObject
      *value) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxml2/xpath.c:3684,1
    - Dst: xmlXPathErrMemory
      Src: /src/libxml2/xpath.c:3686,1
    - Dst: xmlHashRemoveEntry2
      Src: /src/libxml2/xpath.c:3690,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxml2/xpath.c:3692,1
    - Dst: memcpy
      Src: /src/libxml2/xpath.c:3691,1
    - Dst: xmlXPathErrMemory
      Src: /src/libxml2/xpath.c:3694,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 4
    argNames:
    - ctxt
    - name
    - ns_uri
    - f
    argTypes:
    - xmlXPathContext*
    - xmlChar*
    - xmlChar*
    - xmlXPathFunction
    constantsTouched: []
    func_position:
      end: 3699
      start: 3672
    functionDepth: 0
    functionLinenumber: 3672
    functionLinenumberEnd: 3699
    functionName: xmlXPathRegisterFuncNS
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathErrMemory
    - memcpy
    - xmlHashAddEntry2
    - xmlHashRemoveEntry2
    - xmlHashCreate
    linkageType: ''
    returnType: int
    signature: "int xmlXPathRegisterFuncNS(xmlXPathContext *ctxt, const xmlChar *name,\t\t
      const xmlChar *ns_uri, xmlXPathFunction f) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7122,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7130,1
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7125,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:7129,1
    - Dst: xmlXPathCacheNewNodeSet
      Src: /src/libxml2/xpath.c:7122,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7133,1
    - Dst: xmlXPathCacheNewCString
      Src: /src/libxml2/xpath.c:7133,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7140,1
    - Dst: xmlXPathCacheNewCString
      Src: /src/libxml2/xpath.c:7140,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7142,1
    - Dst: xmlXPathCacheNewString
      Src: /src/libxml2/xpath.c:7142,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7146,1
    - Dst: xmlXPathCacheNewCString
      Src: /src/libxml2/xpath.c:7146,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7149,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7150
      start: 7115
    functionDepth: 0
    functionLinenumber: 7115
    functionLinenumberEnd: 7150
    functionName: xmlXPathNamespaceURIFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - CHECK_ARITY
    - XP_ERROR
    - xmlXPathValuePush
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlXPathCacheNewString
    - xmlXPathCacheNewNodeSet
    - xmlXPathCacheNewCString
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathNamespaceURIFunction(xmlXPathParserContext *ctxt, int
      nargs) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7986,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:7990,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7991,1
    - Dst: xmlXPathNodeToNumberInternal
      Src: /src/libxml2/xpath.c:7995,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7999,1
    - Dst: xmlXPathCacheNewFloat
      Src: /src/libxml2/xpath.c:7999,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:8000,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 8001
      start: 7980
    functionDepth: 0
    functionLinenumber: 7980
    functionLinenumberEnd: 8001
    functionName: xmlXPathSumFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - CHECK_ARITY
    - XP_ERROR
    - xmlXPathValuePush
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlXPathCacheNewFloat
    - xmlXPathNodeToNumberInternal
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathSumFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:8302,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:8332,1
    - Dst: pow
      Src: /src/libxml2/xpath.c:8365,1
    - Dst: pow
      Src: /src/libxml2/xpath.c:8345,1
    - Dst: xmlXPathCacheNewFloat
      Src: /src/libxml2/xpath.c:8367,1
    - Dst: PUSH_LONG_EXPR
      Src: /src/libxml2/xpath.c:8370,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:8372,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 97
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 8374
      start: 8287
    functionDepth: 0
    functionLinenumber: 8287
    functionLinenumberEnd: 8374
    functionName: xmlXPathCompNumber
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - pow
    - XP_ERROR
    - PUSH_LONG_EXPR
    - xmlXPathReleaseObject
    - xmlXPathCacheNewFloat
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompNumber(xmlXPathParserContextPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:6842,1
    - Dst: xmlXPathCacheNewNodeSet
      Src: /src/libxml2/xpath.c:6842,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 6844
      start: 6838
    functionDepth: 0
    functionLinenumber: 6838
    functionLinenumberEnd: 6844
    functionName: xmlXPathRoot
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathValuePush
    - xmlXPathCacheNewNodeSet
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathRoot(xmlXPathParserContext *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxml2/xpath.c:3533,1
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxml2/xpath.c:3535,1
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxml2/xpath.c:3536,1
    - Dst: xmlXPathNodeSetSort
      Src: /src/libxml2/xpath.c:3538,1
    - Dst: xmlXPathNodeSetSort
      Src: /src/libxml2/xpath.c:3537,1
    - Dst: xmlXPathNodeLeadingSorted
      Src: /src/libxml2/xpath.c:3539,1
    - Dst: xmlXPathNodeSetItem
      Src: /src/libxml2/xpath.c:3540,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - nodes1
    - nodes2
    argTypes:
    - xmlNodeSet*
    - xmlNodeSet*
    constantsTouched: []
    func_position:
      end: 3541
      start: 3531
    functionDepth: 0
    functionLinenumber: 3531
    functionLinenumberEnd: 3541
    functionName: xmlXPathLeading
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetCreate
    - xmlXPathNodeSetIsEmpty
    - xmlXPathNodeLeadingSorted
    - xmlXPathNodeSetSort
    - xmlXPathNodeSetItem
    linkageType: ''
    returnType: xmlNodeSet*
    signature: 'xmlNodeSet *xmlXPathLeading (xmlNodeSet *nodes1, xmlNodeSet *nodes2) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxml2/xpath.c:3633,1
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxml2/xpath.c:3635,1
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxml2/xpath.c:3636,1
    - Dst: xmlXPathNodeSetSort
      Src: /src/libxml2/xpath.c:3638,1
    - Dst: xmlXPathNodeSetSort
      Src: /src/libxml2/xpath.c:3637,1
    - Dst: xmlXPathNodeTrailingSorted
      Src: /src/libxml2/xpath.c:3639,1
    - Dst: xmlXPathNodeSetItem
      Src: /src/libxml2/xpath.c:3640,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - nodes1
    - nodes2
    argTypes:
    - xmlNodeSet*
    - xmlNodeSet*
    constantsTouched: []
    func_position:
      end: 3641
      start: 3631
    functionDepth: 0
    functionLinenumber: 3631
    functionLinenumberEnd: 3641
    functionName: xmlXPathTrailing
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetCreate
    - xmlXPathNodeSetIsEmpty
    - xmlXPathNodeSetSort
    - xmlXPathNodeSetItem
    - xmlXPathNodeTrailingSorted
    linkageType: ''
    returnType: xmlNodeSet*
    signature: 'xmlNodeSet *xmlXPathTrailing (xmlNodeSet *nodes1, xmlNodeSet *nodes2) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathParseLiteral
      Src: /src/libxml2/xpath.c:8434,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:8444,1
    - Dst: xmlXPathCacheNewString
      Src: /src/libxml2/xpath.c:8437,1
    - Dst: PUSH_LONG_EXPR
      Src: /src/libxml2/xpath.c:8440,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:8442,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 8445
      start: 8429
    functionDepth: 0
    functionLinenumber: 8429
    functionLinenumberEnd: 8445
    functionName: xmlXPathCompLiteral
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - PUSH_LONG_EXPR
    - xmlXPathParseLiteral
    - xmlXPathReleaseObject
    - xmlXPathCacheNewString
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompLiteral(xmlXPathParserContextPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompEqualityExpr
      Src: /src/libxml2/xpath.c:9015,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:9018,1
    - Dst: SKIP
      Src: /src/libxml2/xpath.c:9020,1
    - Dst: xmlXPathCompEqualityExpr
      Src: /src/libxml2/xpath.c:9022,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:9018,1
    - Dst: PUSH_BINARY_EXPR
      Src: /src/libxml2/xpath.c:9024,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 9027
      start: 9013
    functionDepth: 0
    functionLinenumber: 9013
    functionLinenumberEnd: 9027
    functionName: xmlXPathCompAndExpr
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - PUSH_BINARY_EXPR
    - NXT
    - xmlXPathCompEqualityExpr
    - SKIP
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompAndExpr(xmlXPathParserContextPtr ctxt) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:11438,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:11440,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:11467,1
    - Dst: xmlXPathRunStreamEval
      Src: /src/libxml2/xpath.c:11455,1
    - Dst: xmlXPathRunStreamEval
      Src: /src/libxml2/xpath.c:11464,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:11471,1
    - Dst: xmlXPathErr
      Src: /src/libxml2/xpath.c:11481,1
    - Dst: xmlXPathCompOpEvalToBoolean
      Src: /src/libxml2/xpath.c:11486,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:11489,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - ctxt
    - toBool
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 11493
      start: 11421
    functionDepth: 0
    functionLinenumber: 11421
    functionLinenumberEnd: 11493
    functionName: xmlXPathRunEval
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathPErrMemory
    - xmlXPathErr
    - xmlXPathCompOpEvalToBoolean
    - xmlXPathValuePush
    - xmlXPathReleaseObject
    - xmlXPathRunStreamEval
    - xmlXPathCompOpEval
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlXPathRunEval(xmlXPathParserContextPtr ctxt, int toBool) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7389,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7397,1
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpath.c:7391,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7392,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7394,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7398,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:7399,1
    - Dst: xmlStrstr
      Src: /src/libxml2/xpath.c:7401,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7402,1
    - Dst: xmlXPathCacheNewBoolean
      Src: /src/libxml2/xpath.c:7402,1
    - Dst: xmlXPathCacheNewBoolean
      Src: /src/libxml2/xpath.c:7404,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7404,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7406,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7407
      start: 7385
    functionDepth: 0
    functionLinenumber: 7385
    functionLinenumberEnd: 7407
    functionName: xmlXPathContainsFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - CHECK_ARITY
    - XP_ERROR
    - xmlXPathCacheNewBoolean
    - CHECK_TYPE
    - xmlXPathValuePush
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlStrstr
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathContainsFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XP_ERRORNULL
      Src: /src/libxml2/xpath.c:8396,1
    - Dst: XP_ERRORNULL
      Src: /src/libxml2/xpath.c:8406,1
    - Dst: IS_CHAR
      Src: /src/libxml2/xpath.c:8408,1
    - Dst: XP_ERRORNULL
      Src: /src/libxml2/xpath.c:8409,1
    - Dst: xmlGetUTF8Char
      Src: /src/libxml2/xpath.c:8407,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xpath.c:8412,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:8414,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 8417
      start: 8385
    functionDepth: 0
    functionLinenumber: 8385
    functionLinenumberEnd: 8417
    functionName: xmlXPathParseLiteral
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - IS_CHAR
    - xmlXPathPErrMemory
    - xmlStrndup
    - XP_ERRORNULL
    - xmlGetUTF8Char
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlXPathParseLiteral(xmlXPathParserContextPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompRelationalExpr
      Src: /src/libxml2/xpath.c:8986,1
    - Dst: PUSH_BINARY_EXPR
      Src: /src/libxml2/xpath.c:9000,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8989,1
    - Dst: xmlXPathCompRelationalExpr
      Src: /src/libxml2/xpath.c:8998,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 9003
      start: 8984
    functionDepth: 0
    functionLinenumber: 8984
    functionLinenumberEnd: 9003
    functionName: xmlXPathCompEqualityExpr
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - NXT
    - PUSH_BINARY_EXPR
    - xmlXPathCompRelationalExpr
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompEqualityExpr(xmlXPathParserContextPtr ctxt) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathOptimizeExpression
      Src: /src/libxml2/xpath.c:11733,1
    - Dst: xmlXPathOptimizeExpression
      Src: /src/libxml2/xpath.c:11735,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 34
    argCount: 2
    argNames:
    - pctxt
    - op
    argTypes:
    - xmlXPathParserContextPtr
    - xmlXPathStepOpPtr
    constantsTouched: []
    func_position:
      end: 11738
      start: 11664
    functionDepth: 0
    functionLinenumber: 11664
    functionLinenumberEnd: 11738
    functionName: xmlXPathOptimizeExpression
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathOptimizeExpression
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathOptimizeExpression(xmlXPathParserContextPtr pctxt,
      xmlXPathStepOpPtr op) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCastNodeSetToString
      Src: /src/libxml2/xpath.c:4557,1
    - Dst: xmlXPathCastStringToNumber
      Src: /src/libxml2/xpath.c:4558,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:4559,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ns
    argTypes:
    - xmlNodeSet*
    constantsTouched: []
    func_position:
      end: 4561
      start: 4550
    functionDepth: 0
    functionLinenumber: 4550
    functionLinenumberEnd: 4561
    functionName: xmlXPathCastNodeSetToNumber
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathCastStringToNumber
    - xmlXPathCastNodeSetToString
    linkageType: ''
    returnType: double
    signature: 'double xmlXPathCastNodeSetToNumber (xmlNodeSet *ns) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:4829,1
    - Dst: memset
      Src: /src/libxml2/xpath.c:4834,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:4844,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:4842,1
    - Dst: xmlXPathErrMemory
      Src: /src/libxml2/xpath.c:4831,1
    - Dst: xmlXPathErrMemory
      Src: /src/libxml2/xpath.c:4845,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - comp
    - ctxt
    argTypes:
    - xmlXPathCompExprPtr
    - xmlXPathContextPtr
    constantsTouched: []
    func_position:
      end: 4855
      start: 4825
    functionDepth: 0
    functionLinenumber: 4825
    functionLinenumberEnd: 4855
    functionName: xmlXPathCompParserContext
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlXPathErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlXPathParserContextPtr
    signature: 'static xmlXPathParserContextPtr xmlXPathCompParserContext(xmlXPathCompExprPtr
      comp, xmlXPathContextPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:6023,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:6025,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:6027,1
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpath.c:6029,1
    - Dst: xmlXPathCastToNumberInternal
      Src: /src/libxml2/xpath.c:6026,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 6031
      start: 6018
    functionDepth: 0
    functionLinenumber: 6018
    functionLinenumberEnd: 6031
    functionName: xmlXPathMultValues
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - XP_ERROR
    - CHECK_TYPE
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlXPathCastToNumberInternal
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathMultValues(xmlXPathParserContext *ctxt) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxml2/xpath.c:6937,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xpath.c:6941,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xpath.c:6946,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/xpath.c:6948,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xpath.c:6943,1
    - Dst: xmlGetID
      Src: /src/libxml2/xpath.c:6958,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:6959,1
    - Dst: xmlXPathNodeSetAdd
      Src: /src/libxml2/xpath.c:6968,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/xpath.c:6969,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xpath.c:6975,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 2
    argNames:
    - doc
    - ids
    argTypes:
    - xmlDocPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 6979
      start: 6927
    functionDepth: 0
    functionLinenumber: 6927
    functionLinenumberEnd: 6979
    functionName: xmlXPathGetElementsByIds
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetCreate
    - xmlXPathFreeNodeSet
    - xmlFree
    - xmlStrndup
    - xmlGetID
    - IS_BLANK_CH
    - xmlXPathNodeSetAdd
    linkageType: ''
    returnType: xmlNodeSetPtr
    signature: 'static xmlNodeSetPtr xmlXPathGetElementsByIds (xmlDocPtr doc, const
      xmlChar *ids) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7346,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7352,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7359,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7361,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7350,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7362,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:7363,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xpath.c:7365,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7367,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7370,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7373,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7374
      start: 7339
    functionDepth: 0
    functionLinenumber: 7339
    functionLinenumberEnd: 7374
    functionName: xmlXPathConcatFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathPErrMemory
    - CHECK_ARITY
    - XP_ERROR
    - xmlXPathValuePush
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlStrcat
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathConcatFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:9277,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:9289,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:9285,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:9279,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:9281,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:9291,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:9295,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:9297,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:9301,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:9305,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:9309,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:9313,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:9307,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 28
    argCount: 1
    argNames:
    - name
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 9318
      start: 9272
    functionDepth: 0
    functionLinenumber: 9272
    functionLinenumberEnd: 9318
    functionName: xmlXPathIsAxisName
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: xmlXPathAxisVal
    signature: 'static xmlXPathAxisVal xmlXPathIsAxisName(const xmlChar *name) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:10638,1
    - Dst: CHECK_TYPE0
      Src: /src/libxml2/xpath.c:10676,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10664,1
    - Dst: xmlXPathNodeSetKeepLast
      Src: /src/libxml2/xpath.c:10656,1
    - Dst: xmlXPathCompOpEvalLast
      Src: /src/libxml2/xpath.c:10643,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:10677,1
    - Dst: xmlXPathNodeSetFilter
      Src: /src/libxml2/xpath.c:10680,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:10684,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 51
    argCount: 3
    argNames:
    - ctxt
    - op
    - first
    argTypes:
    - xmlXPathParserContextPtr
    - xmlXPathStepOpPtr
    - xmlNodePtr*
    constantsTouched: []
    func_position:
      end: 10687
      start: 10614
    functionDepth: 0
    functionLinenumber: 10614
    functionLinenumberEnd: 10687
    functionName: xmlXPathCompOpEvalFilterFirst
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetFilter
    - CHECK_TYPE0
    - xmlXPathValuePush
    - xmlXPathNodeSetKeepLast
    - xmlStrEqual
    - xmlXPathValuePop
    - xmlXPathCompOpEval
    - xmlXPathCompOpEvalLast
    linkageType: ''
    returnType: int
    signature: "static int xmlXPathCompOpEvalFilterFirst(xmlXPathParserContextPtr
      ctxt,\t\t\t xmlXPathStepOpPtr op, xmlNodePtr * first) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathStringEvalNumber
      Src: /src/libxml2/xpath.c:4505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4506
      start: 4503
    functionDepth: 0
    functionLinenumber: 4503
    functionLinenumberEnd: 4506
    functionName: xmlXPathCastStringToNumber
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathStringEvalNumber
    linkageType: ''
    returnType: double
    signature: 'double xmlXPathCastStringToNumber(const xmlChar * val) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxml2/xpath.c:3463,1
    - Dst: xmlXPathNodeSetContains
      Src: /src/libxml2/xpath.c:3467,1
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxml2/xpath.c:3466,1
    - Dst: xmlXPathNodeSetItem
      Src: /src/libxml2/xpath.c:3472,1
    - Dst: xmlXPathNodeSetGetLength
      Src: /src/libxml2/xpath.c:3470,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxml2/xpath.c:3475,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/xpath.c:3476,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 2
    argNames:
    - nodes
    - node
    argTypes:
    - xmlNodeSet*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3481
      start: 3454
    functionDepth: 0
    functionLinenumber: 3454
    functionLinenumberEnd: 3481
    functionName: xmlXPathNodeLeadingSorted
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetCreate
    - xmlXPathNodeSetIsEmpty
    - xmlXPathFreeNodeSet
    - xmlXPathNodeSetGetLength
    - xmlXPathNodeSetContains
    - xmlXPathNodeSetItem
    - xmlXPathNodeSetAddUnique
    linkageType: ''
    returnType: xmlNodeSet*
    signature: 'xmlNodeSet *xmlXPathNodeLeadingSorted (xmlNodeSet *nodes, xmlNode
      *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1469,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1473,1
    - Dst: fprintf
      Src: /src/libxml2/xpath.c:1477,1
    - Dst: xmlXPathDebugDumpStepOp
      Src: /src/libxml2/xpath.c:1480,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - output
    - comp
    - depth
    argTypes:
    - FILE*
    - xmlXPathCompExpr*
    - int
    constantsTouched: []
    func_position:
      end: 1482
      start: 1457
    functionDepth: 0
    functionLinenumber: 1457
    functionLinenumberEnd: 1482
    functionName: xmlXPathDebugDumpCompExpr
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathDebugDumpStepOp
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void xmlXPathDebugDumpCompExpr(FILE *output, xmlXPathCompExpr *comp,\t
      int depth) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 1977
      start: 1961
    functionDepth: 0
    functionLinenumber: 1961
    functionLinenumberEnd: 1977
    functionName: xmlXPathValuePop
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathValuePop(xmlXPathParserContext *ctxt) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxml2/xpath.c:3956,1
    - Dst: xmlXPathErrMemory
      Src: /src/libxml2/xpath.c:3958,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:3965,1
    - Dst: xmlXPathErrMemory
      Src: /src/libxml2/xpath.c:3967,1
    - Dst: xmlHashRemoveEntry
      Src: /src/libxml2/xpath.c:3962,1
    - Dst: xmlHashUpdateEntry
      Src: /src/libxml2/xpath.c:3970,1
    - Dst: xmlXPathErrMemory
      Src: /src/libxml2/xpath.c:3972,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:3973,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 3
    argNames:
    - ctxt
    - prefix
    - ns_uri
    argTypes:
    - xmlXPathContext*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3978
      start: 3943
    functionDepth: 0
    functionLinenumber: 3943
    functionLinenumberEnd: 3978
    functionName: xmlXPathRegisterNs
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathErrMemory
    - xmlHashRemoveEntry
    - xmlHashUpdateEntry
    - xmlHashCreate
    - xmlStrdup
    linkageType: ''
    returnType: int
    signature: "int xmlXPathRegisterNs(xmlXPathContext *ctxt, const xmlChar *prefix,\t\t\t
      const xmlChar *ns_uri) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeToNumberInternal
      Src: /src/libxml2/xpath.c:4541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 4542
      start: 4539
    functionDepth: 0
    functionLinenumber: 4539
    functionLinenumberEnd: 4542
    functionName: xmlXPathCastNodeToNumber
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeToNumberInternal
    linkageType: ''
    returnType: double
    signature: 'double xmlXPathCastNodeToNumber (xmlNode *node) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:4794,1
    - Dst: xmlXPathErrMemory
      Src: /src/libxml2/xpath.c:4805,1
    - Dst: xmlXPathErrMemory
      Src: /src/libxml2/xpath.c:4796,1
    - Dst: xmlXPathNewCompExpr
      Src: /src/libxml2/xpath.c:4803,1
    - Dst: memset
      Src: /src/libxml2/xpath.c:4799,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:4806,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:4807,1
    - Dst: xmlDictReference
      Src: /src/libxml2/xpath.c:4812,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - str
    - ctxt
    argTypes:
    - xmlChar*
    - xmlXPathContext*
    constantsTouched: []
    func_position:
      end: 4816
      start: 4790
    functionDepth: 0
    functionLinenumber: 4790
    functionLinenumberEnd: 4816
    functionName: xmlXPathNewParserContext
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathErrMemory
    - xmlXPathNewCompExpr
    - memset
    - xmlDictReference
    - xmlMalloc
    linkageType: ''
    returnType: xmlXPathParserContext*
    signature: 'xmlXPathParserContext *xmlXPathNewParserContext(const xmlChar *str,
      xmlXPathContext *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:6001,1
    - Dst: xmlXPathCastToNumberInternal
      Src: /src/libxml2/xpath.c:6004,1
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpath.c:6007,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:6003,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:6005,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 6009
      start: 5996
    functionDepth: 0
    functionLinenumber: 5996
    functionLinenumberEnd: 6009
    functionName: xmlXPathSubValues
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - XP_ERROR
    - CHECK_TYPE
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlXPathCastToNumberInternal
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathSubValues(xmlXPathParserContext *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:6905,1
    - Dst: xmlXPathCacheNewFloat
      Src: /src/libxml2/xpath.c:6913,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:6910,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:6909,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:6913,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:6915,1
    - Dst: xmlXPathCacheNewFloat
      Src: /src/libxml2/xpath.c:6915,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:6917,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 6918
      start: 6901
    functionDepth: 0
    functionLinenumber: 6901
    functionLinenumberEnd: 6918
    functionName: xmlXPathCountFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - CHECK_ARITY
    - XP_ERROR
    - xmlXPathValuePush
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlXPathCacheNewFloat
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathCountFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathParseNCName
      Src: /src/libxml2/xpath.c:9174,1
    - Dst: XP_ERRORNULL
      Src: /src/libxml2/xpath.c:9176,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:9188,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xpath.c:9179,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:9186,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:9190,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:9192,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:9196,1
    - Dst: XP_ERRORNULL
      Src: /src/libxml2/xpath.c:9197,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:9208,1
    - Dst: XP_ERRORNULL
      Src: /src/libxml2/xpath.c:9219,1
    - Dst: XP_ERRORNULL
      Src: /src/libxml2/xpath.c:9248,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:9218,1
    - Dst: xmlXPathParseNCName
      Src: /src/libxml2/xpath.c:9246,1
    - Dst: xmlXPathParseLiteral
      Src: /src/libxml2/xpath.c:9211,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 67
    argCount: 5
    argNames:
    - ctxt
    - test
    - type
    - prefix
    - name
    argTypes:
    - xmlXPathParserContextPtr
    - xmlXPathTestVal*
    - xmlXPathTypeVal*
    - xmlChar**
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 9252
      start: 9150
    functionDepth: 0
    functionLinenumber: 9150
    functionLinenumberEnd: 9252
    functionName: xmlXPathCompNodeTest
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathParseLiteral
    - XP_ERRORNULL
    - IS_BLANK_CH
    - xmlStrEqual
    - xmlXPathParseNCName
    linkageType: ''
    returnType: xmlChar*
    signature: "static xmlChar *xmlXPathCompNodeTest(xmlXPathParserContextPtr ctxt,
      xmlXPathTestVal *test,\t xmlXPathTypeVal *type, xmlChar **prefix,\t\t xmlChar
      *name) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:2705,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 2
    argNames:
    - cur
    - val
    argTypes:
    - xmlNodeSet*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2716
      start: 2690
    functionDepth: 0
    functionLinenumber: 2690
    functionLinenumberEnd: 2716
    functionName: xmlXPathNodeSetContains
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathNodeSetContains (xmlNodeSet *cur, xmlNode *val) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetFreeNs
      Src: /src/libxml2/xpath.c:3053,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 2
    argNames:
    - cur
    - val
    argTypes:
    - xmlNodeSet*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3058
      start: 3035
    functionDepth: 0
    functionLinenumber: 3035
    functionLinenumberEnd: 3058
    functionName: xmlXPathNodeSetDel
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetFreeNs
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathNodeSetDel(xmlNodeSet *cur, xmlNode *val) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - string
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5021
      start: 5014
    functionDepth: 0
    functionLinenumber: 5014
    functionLinenumberEnd: 5021
    functionName: xmlXPathStringHash
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: 'static unsigned int xmlXPathStringHash(const xmlChar * string) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathStringHash
      Src: /src/libxml2/xpath.c:5314,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:5319,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:5322,1
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/xpath.c:5317,1
    - Dst: xmlXPathNodeValHash
      Src: /src/libxml2/xpath.c:5316,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5323,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5328,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5331,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 4
    argNames:
    - ctxt
    - arg
    - str
    - neq
    argTypes:
    - xmlXPathParserContextPtr
    - xmlXPathObjectPtr
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 5336
      start: 5295
    functionDepth: 0
    functionLinenumber: 5295
    functionLinenumberEnd: 5336
    functionName: xmlXPathEqualNodeSetString
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathPErrMemory
    - xmlXPathNodeValHash
    - xmlStrEqual
    - xmlXPathStringHash
    - xmlNodeGetContent
    linkageType: ''
    returnType: int
    signature: 'static int xmlXPathEqualNodeSetString(xmlXPathParserContextPtr ctxt,
      xmlXPathObjectPtr arg, const xmlChar * str, int neq) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7491,1
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpath.c:7495,1
    - Dst: floor
      Src: /src/libxml2/xpath.c:7514,1
    - Dst: xmlXPathCacheNewCString
      Src: /src/libxml2/xpath.c:7540,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7543,1
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7478,1
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpath.c:7488,1
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7481,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7498,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7501,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:7538,1
    - Dst: floor
      Src: /src/libxml2/xpath.c:7507,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7537,1
    - Dst: xmlUTF8Strsub
      Src: /src/libxml2/xpath.c:7534,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7496,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7536,1
    - Dst: xmlXPathCacheNewString
      Src: /src/libxml2/xpath.c:7537,1
    - Dst: xmlUTF8Strlen
      Src: /src/libxml2/xpath.c:7533,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7489,1
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpath.c:7500,1
    - Dst: floor
      Src: /src/libxml2/xpath.c:7518,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7540,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 72
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7544
      start: 7471
    functionDepth: 0
    functionLinenumber: 7471
    functionLinenumberEnd: 7544
    functionName: xmlXPathSubstringFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlUTF8Strlen
    - floor
    - xmlXPathPErrMemory
    - CHECK_ARITY
    - xmlUTF8Strsub
    - CHECK_TYPE
    - xmlXPathValuePush
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlXPathCacheNewString
    - xmlXPathCacheNewCString
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathSubstringFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompAdditiveExpr
      Src: /src/libxml2/xpath.c:8949,1
    - Dst: xmlXPathCompAdditiveExpr
      Src: /src/libxml2/xpath.c:8963,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8958,1
    - Dst: PUSH_BINARY_EXPR
      Src: /src/libxml2/xpath.c:8965,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 8968
      start: 8947
    functionDepth: 0
    functionLinenumber: 8947
    functionLinenumberEnd: 8968
    functionName: xmlXPathCompRelationalExpr
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - NXT
    - PUSH_BINARY_EXPR
    - xmlXPathCompAdditiveExpr
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompRelationalExpr(xmlXPathParserContextPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:4341,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:4343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 4345
      start: 4337
    functionDepth: 0
    functionLinenumber: 4337
    functionLinenumberEnd: 4345
    functionName: xmlXPathCastBooleanToString
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlXPathCastBooleanToString (int val) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:2654,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:2659,1
    - Dst: memset
      Src: /src/libxml2/xpath.c:2657,1
    - Dst: memset
      Src: /src/libxml2/xpath.c:2665,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:2662,1
    - Dst: xmlXPathNodeSetDupNs
      Src: /src/libxml2/xpath.c:2670,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/xpath.c:2673,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2681
      start: 2650
    functionDepth: 0
    functionLinenumber: 2650
    functionLinenumberEnd: 2681
    functionName: xmlXPathNodeSetCreate
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathFreeNodeSet
    - memset
    - xmlXPathNodeSetDupNs
    - xmlMalloc
    linkageType: ''
    returnType: xmlNodeSet*
    signature: 'xmlNodeSet *xmlXPathNodeSetCreate(xmlNode *val) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetGrow
      Src: /src/libxml2/xpath.c:3013,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/xpath.c:3024,1
    - Dst: xmlXPathNodeSetClear
      Src: /src/libxml2/xpath.c:3025,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - set1
    - set2
    argTypes:
    - xmlNodeSetPtr
    - xmlNodeSetPtr
    constantsTouched: []
    func_position:
      end: 3027
      start: 3003
    functionDepth: 0
    functionLinenumber: 3003
    functionLinenumberEnd: 3027
    functionName: xmlXPathNodeSetMergeAndClearNoDupls
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeNodeSet
    - xmlXPathNodeSetClear
    - xmlXPathNodeSetGrow
    linkageType: ''
    returnType: xmlNodeSetPtr
    signature: 'static xmlNodeSetPtr xmlXPathNodeSetMergeAndClearNoDupls(xmlNodeSetPtr
      set1, xmlNodeSetPtr set2) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:4245,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/xpath.c:4261,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:4268,1
    - Dst: xmlXPathNodeSetFreeNs
      Src: /src/libxml2/xpath.c:4305,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/xpath.c:4319,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:4320,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 46
    argCount: 2
    argNames:
    - ctxt
    - obj
    argTypes:
    - xmlXPathContextPtr
    - xmlXPathObjectPtr
    constantsTouched: []
    func_position:
      end: 4322
      start: 4239
    functionDepth: 0
    functionLinenumber: 4239
    functionLinenumberEnd: 4322
    functionName: xmlXPathReleaseObject
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeNodeSet
    - xmlXPathFreeObject
    - xmlFree
    - xmlXPathNodeSetFreeNs
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathReleaseObject(xmlXPathContextPtr ctxt, xmlXPathObjectPtr
      obj) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompareNodeSetFloat
      Src: /src/libxml2/xpath.c:5263,1
    - Dst: xmlXPathBooleanFunction
      Src: /src/libxml2/xpath.c:5271,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:5270,1
    - Dst: xmlXPathCompareNodeSets
      Src: /src/libxml2/xpath.c:5266,1
    - Dst: xmlXPathCompareNodeSetString
      Src: /src/libxml2/xpath.c:5268,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:5272,1
    - Dst: xmlXPathCompareValues
      Src: /src/libxml2/xpath.c:5273,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5275,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5276,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:5277,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 5
    argNames:
    - ctxt
    - inf
    - strict
    - arg
    - val
    argTypes:
    - xmlXPathParserContextPtr
    - int
    - int
    - xmlXPathObjectPtr
    - xmlXPathObjectPtr
    constantsTouched: []
    func_position:
      end: 5280
      start: 5254
    functionDepth: 0
    functionLinenumber: 5254
    functionLinenumberEnd: 5280
    functionName: xmlXPathCompareNodeSetValue
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCompareNodeSets
    - xmlXPathValuePush
    - xmlXPathCompareValues
    - xmlXPathReleaseObject
    - XP_ERROR0
    - xmlXPathCompareNodeSetFloat
    - xmlXPathCompareNodeSetString
    - xmlXPathBooleanFunction
    linkageType: ''
    returnType: int
    signature: "static int xmlXPathCompareNodeSetValue(xmlXPathParserContextPtr ctxt,
      int inf, int strict,\t xmlXPathObjectPtr arg, xmlXPathObjectPtr val) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7423,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7428,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7431,1
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpath.c:7425,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7426,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7432,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:7433,1
    - Dst: xmlStrlen
      Src: /src/libxml2/xpath.c:7435,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/xpath.c:7436,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7437,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7439,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7440,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7441,1
    - Dst: xmlXPathCacheNewBoolean
      Src: /src/libxml2/xpath.c:7437,1
    - Dst: xmlXPathCacheNewBoolean
      Src: /src/libxml2/xpath.c:7439,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7442
      start: 7418
    functionDepth: 0
    functionLinenumber: 7418
    functionLinenumberEnd: 7442
    functionName: xmlXPathStartsWithFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - CHECK_ARITY
    - XP_ERROR
    - xmlXPathCacheNewBoolean
    - CHECK_TYPE
    - xmlStrlen
    - xmlXPathValuePush
    - xmlXPathReleaseObject
    - xmlStrncmp
    - xmlXPathValuePop
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathStartsWithFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompPathExpr
      Src: /src/libxml2/xpath.c:8809,1
    - Dst: xmlXPathCompPathExpr
      Src: /src/libxml2/xpath.c:8818,1
    - Dst: PUSH_BINARY_EXPR
      Src: /src/libxml2/xpath.c:8820,1
    - Dst: PUSH_LEAVE_EXPR
      Src: /src/libxml2/xpath.c:8814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 8824
      start: 8807
    functionDepth: 0
    functionLinenumber: 8807
    functionLinenumberEnd: 8824
    functionName: xmlXPathCompUnionExpr
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - PUSH_LEAVE_EXPR
    - PUSH_BINARY_EXPR
    - xmlXPathCompPathExpr
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompUnionExpr(xmlXPathParserContextPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompMultiplicativeExpr
      Src: /src/libxml2/xpath.c:8912,1
    - Dst: PUSH_BINARY_EXPR
      Src: /src/libxml2/xpath.c:8925,1
    - Dst: xmlXPathCompMultiplicativeExpr
      Src: /src/libxml2/xpath.c:8923,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 8928
      start: 8909
    functionDepth: 0
    functionLinenumber: 8909
    functionLinenumberEnd: 8928
    functionName: xmlXPathCompAdditiveExpr
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - PUSH_BINARY_EXPR
    - xmlXPathCompMultiplicativeExpr
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompAdditiveExpr(xmlXPathParserContextPtr ctxt) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: OP_LIMIT_EXCEEDED
      Src: /src/libxml2/xpath.c:11108,1
    - Dst: xmlXPathCastToBoolean
      Src: /src/libxml2/xpath.c:11118,1
    - Dst: xmlXPathEvaluatePredicateResult
      Src: /src/libxml2/xpath.c:11117,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:11132,1
    - Dst: xmlXPathNodeCollectAndTest
      Src: /src/libxml2/xpath.c:11136,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:11140,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:11148,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:11152,1
    - Dst: xmlXPathEvaluatePredicateResult
      Src: /src/libxml2/xpath.c:11172,1
    - Dst: xmlXPathCastToBoolean
      Src: /src/libxml2/xpath.c:11174,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:11176,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 3
    argNames:
    - ctxt
    - op
    - isPredicate
    argTypes:
    - xmlXPathParserContextPtr
    - xmlXPathStepOpPtr
    - int
    constantsTouched: []
    func_position:
      end: 11181
      start: 11100
    functionDepth: 0
    functionLinenumber: 11100
    functionLinenumberEnd: 11181
    functionName: xmlXPathCompOpEvalToBoolean
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathEvaluatePredicateResult
    - xmlXPathCastToBoolean
    - xmlXPathReleaseObject
    - OP_LIMIT_EXCEEDED
    - xmlXPathNodeCollectAndTest
    - xmlXPathValuePop
    - xmlXPathCompOpEval
    linkageType: ''
    returnType: int
    signature: "static int xmlXPathCompOpEvalToBoolean(xmlXPathParserContextPtr ctxt,\t\t\t
      xmlXPathStepOpPtr op,\t\t\t int isPredicate) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isinf
      Src: /src/libxml2/xpath.c:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - val
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 274
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 274
    functionName: xmlXPathIsInf
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - isinf
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathIsInf(double val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrlen
      Src: /src/libxml2/xpath.c:4615,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4618
      start: 4613
    functionDepth: 0
    functionLinenumber: 4613
    functionLinenumberEnd: 4618
    functionName: xmlXPathCastStringToBoolean
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlStrlen
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathCastStringToBoolean (const xmlChar *val) '
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 15
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlXPathParserContext*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 6580
      start: 6564
    functionDepth: 0
    functionLinenumber: 6564
    functionLinenumberEnd: 6580
    functionName: xmlXPathNextPrecedingSibling
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlXPathNextPrecedingSibling(xmlXPathParserContext *ctxt,
      xmlNode *cur) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8694,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8730,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8740,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8752,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8737,1
    - Dst: PUSH_LEAVE_EXPR
      Src: /src/libxml2/xpath.c:8775,1
    - Dst: PUSH_LEAVE_EXPR
      Src: /src/libxml2/xpath.c:8777,1
    - Dst: xmlXPathCompLocationPath
      Src: /src/libxml2/xpath.c:8779,1
    - Dst: xmlXPathCompFilterExpr
      Src: /src/libxml2/xpath.c:8781,1
    - Dst: xmlXPathCompRelativeLocationPath
      Src: /src/libxml2/xpath.c:8792,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xpath.c:8734,1
    - Dst: xmlXPathIsNodeType
      Src: /src/libxml2/xpath.c:8742,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8748,1
    - Dst: SKIP
      Src: /src/libxml2/xpath.c:8784,1
    - Dst: xmlXPathCompRelativeLocationPath
      Src: /src/libxml2/xpath.c:8790,1
    - Dst: IS_ASCII_DIGIT
      Src: /src/libxml2/xpath.c:8692,1
    - Dst: xmlStrstr
      Src: /src/libxml2/xpath.c:8722,1
    - Dst: IS_ASCII_DIGIT
      Src: /src/libxml2/xpath.c:8694,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:8724,1
    - Dst: xmlStrlen
      Src: /src/libxml2/xpath.c:8726,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8729,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8762,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:8766,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:8769,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8783,1
    - Dst: xmlXPathScanName
      Src: /src/libxml2/xpath.c:8721,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8752,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8734,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8753,1
    - Dst: PUSH_LONG_EXPR
      Src: /src/libxml2/xpath.c:8787,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 107
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 8796
      start: 8685
    functionDepth: 0
    functionLinenumber: 8685
    functionLinenumberEnd: 8796
    functionName: xmlXPathCompPathExpr
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - IS_ASCII_DIGIT
    - xmlFree
    - NXT
    - XP_ERROR
    - xmlXPathCompLocationPath
    - PUSH_LONG_EXPR
    - xmlXPathCompRelativeLocationPath
    - xmlStrlen
    - xmlXPathScanName
    - PUSH_LEAVE_EXPR
    - IS_BLANK_CH
    - xmlStrstr
    - xmlXPathCompFilterExpr
    - SKIP
    - xmlXPathIsNodeType
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompPathExpr(xmlXPathParserContextPtr ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:9668,1
    - Dst: xmlXPathCompOpEvalPredicate
      Src: /src/libxml2/xpath.c:9673,1
    - Dst: xmlXPathNodeSetFilter
      Src: /src/libxml2/xpath.c:9680,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:9671,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 6
    argNames:
    - ctxt
    - op
    - set
    - minPos
    - maxPos
    - hasNsNodes
    argTypes:
    - xmlXPathParserContextPtr
    - xmlXPathStepOpPtr
    - xmlNodeSetPtr
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 9681
      start: 9655
    functionDepth: 0
    functionLinenumber: 9655
    functionLinenumberEnd: 9681
    functionName: xmlXPathCompOpEvalPredicate
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetFilter
    - xmlXPathCompOpEvalPredicate
    - XP_ERROR
    linkageType: ''
    returnType: void
    signature: "static void xmlXPathCompOpEvalPredicate(xmlXPathParserContextPtr ctxt,\t\t\t
      xmlXPathStepOpPtr op,\t\t\t xmlNodeSetPtr set, int minPos, int maxPos,\t\t\t
      int hasNsNodes) "
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: OP_LIMIT_EXCEEDED
      Src: /src/libxml2/xpath.c:10499,1
    - Dst: xmlXPathCompOpEvalLast
      Src: /src/libxml2/xpath.c:10510,1
    - Dst: xmlXPathCheckOpLimit
      Src: /src/libxml2/xpath.c:10545,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:10562,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10571,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10583,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:10590,1
    - Dst: xmlXPathNodeCollectAndTest
      Src: /src/libxml2/xpath.c:10586,1
    - Dst: xmlXPathNodeSetSort
      Src: /src/libxml2/xpath.c:10602,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:10536,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:10541,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:10550,1
    - Dst: xmlXPathCacheObjectCopy
      Src: /src/libxml2/xpath.c:10590,1
    - Dst: xmlXPathCompOpEvalLast
      Src: /src/libxml2/xpath.c:10595,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:10502,1
    - Dst: xmlXPathNodeSetSort
      Src: /src/libxml2/xpath.c:10520,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:10535,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:10539,1
    - Dst: xmlXPathNodeSetMerge
      Src: /src/libxml2/xpath.c:10557,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:10551,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:10560,1
    - Dst: xmlXPathRoot
      Src: /src/libxml2/xpath.c:10567,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10574,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:10576,1
    - Dst: xmlXPathCompOpEvalLast
      Src: /src/libxml2/xpath.c:10527,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:10540,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:10563,1
    - Dst: xmlXPathCheckOpLimit
      Src: /src/libxml2/xpath.c:10548,1
    - Dst: xmlXPathCacheNewNodeSet
      Src: /src/libxml2/xpath.c:10576,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10605,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 102
    argCount: 3
    argNames:
    - ctxt
    - op
    - last
    argTypes:
    - xmlXPathParserContextPtr
    - xmlXPathStepOpPtr
    - xmlNodePtr*
    constantsTouched: []
    func_position:
      end: 10611
      start: 10490
    functionDepth: 0
    functionLinenumber: 10490
    functionLinenumberEnd: 10611
    functionName: xmlXPathCompOpEvalLast
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathPErrMemory
    - xmlXPathRoot
    - xmlXPathNodeSetMerge
    - xmlXPathCacheObjectCopy
    - xmlXPathValuePush
    - xmlXPathCheckOpLimit
    - xmlXPathNodeSetSort
    - OP_LIMIT_EXCEEDED
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - XP_ERROR0
    - xmlXPathNodeCollectAndTest
    - xmlXPathCompOpEval
    - xmlXPathCompOpEvalLast
    - xmlXPathCacheNewNodeSet
    linkageType: ''
    returnType: int
    signature: 'static int xmlXPathCompOpEvalLast(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr
      op, xmlNodePtr * last) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathIsNaN
      Src: /src/libxml2/xpath.c:11561,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 18
    argCount: 2
    argNames:
    - ctxt
    - res
    argTypes:
    - xmlXPathParserContext*
    - xmlXPathObject*
    constantsTouched: []
    func_position:
      end: 11576
      start: 11551
    functionDepth: 0
    functionLinenumber: 11551
    functionLinenumberEnd: 11576
    functionName: xmlXPathEvaluatePredicateResult
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathEvaluatePredicateResult(xmlXPathParserContext *ctxt, xmlXPathObject
      *res) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxml2/xpath.c:3562,1
    - Dst: xmlXPathNodeSetItem
      Src: /src/libxml2/xpath.c:3571,1
    - Dst: xmlXPathNodeSetContains
      Src: /src/libxml2/xpath.c:3566,1
    - Dst: xmlXPathNodeSetGetLength
      Src: /src/libxml2/xpath.c:3569,1
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxml2/xpath.c:3565,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxml2/xpath.c:3574,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/xpath.c:3575,1
    - Dst: xmlXPathNodeSetSort
      Src: /src/libxml2/xpath.c:3579,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - nodes
    - node
    argTypes:
    - xmlNodeSet*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3581
      start: 3553
    functionDepth: 0
    functionLinenumber: 3553
    functionLinenumberEnd: 3581
    functionName: xmlXPathNodeTrailingSorted
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetCreate
    - xmlXPathNodeSetIsEmpty
    - xmlXPathFreeNodeSet
    - xmlXPathNodeSetGetLength
    - xmlXPathNodeSetSort
    - xmlXPathNodeSetContains
    - xmlXPathNodeSetItem
    - xmlXPathNodeSetAddUnique
    linkageType: ''
    returnType: xmlNodeSet*
    signature: 'xmlNodeSet *xmlXPathNodeTrailingSorted (xmlNodeSet *nodes, xmlNode
      *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathIsNaN
      Src: /src/libxml2/xpath.c:4602,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 4605
      start: 4600
    functionDepth: 0
    functionLinenumber: 4600
    functionLinenumberEnd: 4605
    functionName: xmlXPathCastNumberToBoolean
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathCastNumberToBoolean (double val) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlXPathParserContext*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 6552
      start: 6541
    functionDepth: 0
    functionLinenumber: 6541
    functionLinenumberEnd: 6552
    functionName: xmlXPathNextFollowingSibling
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlXPathNextFollowingSibling(xmlXPathParserContext *ctxt,
      xmlNode *cur) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetClear
      Src: /src/libxml2/xpath.c:9544,1
    - Dst: xmlXPathCompOpEvalToBoolean
      Src: /src/libxml2/xpath.c:9574,1
    - Dst: xmlXPathNodeSetFreeNs
      Src: /src/libxml2/xpath.c:9613,1
    - Dst: xmlXPathErr
      Src: /src/libxml2/xpath.c:9580,1
    - Dst: xmlXPathNodeSetFreeNs
      Src: /src/libxml2/xpath.c:9595,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xpath.c:9627,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:9630,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 81
    argCount: 6
    argNames:
    - ctxt
    - set
    - filterOpIndex
    - minPos
    - maxPos
    - hasNsNodes
    argTypes:
    - xmlXPathParserContextPtr
    - xmlNodeSetPtr
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 9641
      start: 9522
    functionDepth: 0
    functionLinenumber: 9522
    functionLinenumberEnd: 9641
    functionName: xmlXPathNodeSetFilter
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathPErrMemory
    - xmlXPathErr
    - xmlRealloc
    - xmlXPathCompOpEvalToBoolean
    - xmlXPathNodeSetFreeNs
    - xmlXPathNodeSetClear
    linkageType: ''
    returnType: void
    signature: "static void xmlXPathNodeSetFilter(xmlXPathParserContextPtr ctxt,\t\t
      xmlNodeSetPtr set,\t\t int filterOpIndex, int minPos, int maxPos,\t\t int hasNsNodes) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrlen
      Src: /src/libxml2/xpath.c:11530,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 12
    argCount: 2
    argNames:
    - ctxt
    - res
    argTypes:
    - xmlXPathContext*
    - xmlXPathObject*
    constantsTouched: []
    func_position:
      end: 11535
      start: 11515
    functionDepth: 0
    functionLinenumber: 11515
    functionLinenumberEnd: 11535
    functionName: xmlXPathEvalPredicate
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlStrlen
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathEvalPredicate(xmlXPathContext *ctxt, xmlXPathObject *res) '
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:327,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:377,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:331,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:332,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:328,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:427,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:500,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:501,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:504,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:505,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:569,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:573,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:568,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:572,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 190
    argCount: 2
    argNames:
    - node1
    - node2
    argTypes:
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 584
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 584
    functionName: xmlXPathCmpNodesExt
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - XML_NODE_SORT_VALUE
    linkageType: ''
    returnType: int
    signature: 'static int xmlXPathCmpNodesExt(xmlNodePtr node1, xmlNodePtr node2) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathRegisterFuncNS
      Src: /src/libxml2/xpath.c:3660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - ctxt
    - name
    - f
    argTypes:
    - xmlXPathContext*
    - xmlChar*
    - xmlXPathFunction
    constantsTouched: []
    func_position:
      end: 3661
      start: 3657
    functionDepth: 0
    functionLinenumber: 3657
    functionLinenumberEnd: 3661
    functionName: xmlXPathRegisterFunc
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathRegisterFuncNS
    linkageType: ''
    returnType: int
    signature: "int xmlXPathRegisterFunc(xmlXPathContext *ctxt, const xmlChar *name,\t\t
      xmlXPathFunction f) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:9045,1
    - Dst: SKIP
      Src: /src/libxml2/xpath.c:9058,1
    - Dst: xmlXPathCompAndExpr
      Src: /src/libxml2/xpath.c:9060,1
    - Dst: xmlXPathCompAndExpr
      Src: /src/libxml2/xpath.c:9053,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:9056,1
    - Dst: PUSH_BINARY_EXPR
      Src: /src/libxml2/xpath.c:9062,1
    - Dst: PUSH_UNARY_EXPR
      Src: /src/libxml2/xpath.c:9072,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - sort
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 9077
      start: 9039
    functionDepth: 0
    functionLinenumber: 9039
    functionLinenumberEnd: 9077
    functionName: xmlXPathCompileExpr
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - NXT
    - XP_ERROR
    - SKIP
    - xmlXPathCompAndExpr
    - PUSH_BINARY_EXPR
    - PUSH_UNARY_EXPR
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompileExpr(xmlXPathParserContextPtr ctxt, int
      sort) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/libxml2/xpath.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 255
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 255
    functionName: xmlXPathIsNaN
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - isnan
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathIsNaN(double val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSFComputeHash
      Src: /src/libxml2/xpath.c:224,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 234
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 234
    functionName: xmlInitXPathInternal
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathSFComputeHash
    linkageType: ''
    returnType: void
    signature: 'void xmlInitXPathInternal(void) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:2214,1
    - Dst: snprintf
      Src: /src/libxml2/xpath.c:2217,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxml2/xpath.c:2224,1
    - Dst: snprintf
      Src: /src/libxml2/xpath.c:2226,1
    - Dst: snprintf
      Src: /src/libxml2/xpath.c:2221,1
    - Dst: snprintf
      Src: /src/libxml2/xpath.c:2229,1
    - Dst: snprintf
      Src: /src/libxml2/xpath.c:2240,1
    - Dst: fabs
      Src: /src/libxml2/xpath.c:2269,1
    - Dst: snprintf
      Src: /src/libxml2/xpath.c:2282,1
    - Dst: log10
      Src: /src/libxml2/xpath.c:2290,1
    - Dst: snprintf
      Src: /src/libxml2/xpath.c:2298,1
    - Dst: strlen
      Src: /src/libxml2/xpath.c:2318,1
    - Dst: memmove
      Src: /src/libxml2/xpath.c:2323,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 96
    argCount: 3
    argNames:
    - number
    - buffer
    - buffersize
    argTypes:
    - double
    - char
    - int
    constantsTouched: []
    func_position:
      end: 2327
      start: 2211
    functionDepth: 0
    functionLinenumber: 2211
    functionLinenumberEnd: 2327
    functionName: xmlXPathFormatNumber
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - fabs
    - xmlXPathIsNaN
    - xmlXPathIsInf
    - log10
    - memmove
    - strlen
    - snprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathFormatNumber(double number, char buffer[], int
      buffersize) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xpath.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: xmlXPathInit
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlInitParser
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathInit(void) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:966,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:971,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:978,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:968,1
    - Dst: xmlDictFree
      Src: /src/libxml2/xpath.c:981,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:984,1
    - Dst: xmlFreePatternList
      Src: /src/libxml2/xpath.c:988,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:992,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:995,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xmlXPathCompExpr*
    constantsTouched: []
    func_position:
      end: 996
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 996
    functionName: xmlXPathFreeCompExpr
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathFreeObject
    - xmlFreePatternList
    - xmlDictFree
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathFreeCompExpr(xmlXPathCompExpr *comp) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/xpath.c:4219,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:4222,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:4224,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - obj
    argTypes:
    - xmlXPathObject*
    constantsTouched: []
    func_position:
      end: 4225
      start: 4214
    functionDepth: 0
    functionLinenumber: 4214
    functionLinenumberEnd: 4225
    functionName: xmlXPathFreeObject
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeNodeSet
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathFreeObject(xmlXPathObject *obj) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:5979,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5983,1
    - Dst: xmlXPathCastToNumberInternal
      Src: /src/libxml2/xpath.c:5982,1
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpath.c:5985,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:5981,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 5987
      start: 5974
    functionDepth: 0
    functionLinenumber: 5974
    functionLinenumberEnd: 5987
    functionName: xmlXPathAddValues
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - XP_ERROR
    - CHECK_TYPE
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlXPathCastToNumberInternal
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathAddValues(xmlXPathParserContext *ctxt) '
  - BBCount: 25
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 11
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlXPathParserContext*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 6173
      start: 6137
    functionDepth: 0
    functionLinenumber: 6137
    functionLinenumberEnd: 6173
    functionName: xmlXPathNextChild
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlXPathNextChild(xmlXPathParserContext *ctxt, xmlNode *cur) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNextAncestor
      Src: /src/libxml2/xpath.c:6529,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlXPathParserContext*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 6530
      start: 6524
    functionDepth: 0
    functionLinenumber: 6524
    functionLinenumberEnd: 6530
    functionName: xmlXPathNextAncestorOrSelf
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNextAncestor
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlXPathNextAncestorOrSelf(xmlXPathParserContext *ctxt, xmlNode
      *cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7841,1
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpath.c:7843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7845
      start: 7839
    functionDepth: 0
    functionLinenumber: 7839
    functionLinenumberEnd: 7845
    functionName: xmlXPathNotFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - CHECK_TYPE
    - CHECK_ARITY
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathNotFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - node
    - ctx
    argTypes:
    - xmlNode*
    - xmlXPathContext*
    constantsTouched: []
    func_position:
      end: 12034
      start: 12024
    functionDepth: 0
    functionLinenumber: 12024
    functionLinenumberEnd: 12034
    functionName: xmlXPathSetContextNode
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathSetContextNode(xmlNode *node, xmlXPathContext *ctx) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:4229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4230
      start: 4227
    functionDepth: 0
    functionLinenumber: 4227
    functionLinenumberEnd: 4230
    functionName: xmlXPathFreeObjectEntry
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeObject
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathFreeObjectEntry(void *obj, const xmlChar *name
      ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:6046,1
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpath.c:6052,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:6050,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:6048,1
    - Dst: xmlXPathCastToNumberInternal
      Src: /src/libxml2/xpath.c:6049,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 6054
      start: 6041
    functionDepth: 0
    functionLinenumber: 6041
    functionLinenumberEnd: 6054
    functionName: xmlXPathDivValues
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - XP_ERROR
    - CHECK_TYPE
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlXPathCastToNumberInternal
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathDivValues(xmlXPathParserContext *ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:8469,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:8475,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:8474,1
    - Dst: PUSH_LONG_EXPR
      Src: /src/libxml2/xpath.c:8478,1
    - Dst: xmlXPathParseQName
      Src: /src/libxml2/xpath.c:8472,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:8479,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:8480,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:8484,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 8486
      start: 8462
    functionDepth: 0
    functionLinenumber: 8462
    functionLinenumberEnd: 8486
    functionName: xmlXPathCompVariableReference
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathParseQName
    - PUSH_LONG_EXPR
    - XP_ERROR
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompVariableReference(xmlXPathParserContextPtr
      ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:927,1
    - Dst: memset
      Src: /src/libxml2/xpath.c:943,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:940,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:937,1
    - Dst: memset
      Src: /src/libxml2/xpath.c:930,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 946
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 946
    functionName: xmlXPathNewCompExpr
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlXPathCompExprPtr
    signature: 'static xmlXPathCompExprPtr xmlXPathNewCompExpr(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5052,1
    - Dst: xmlXPathCastNodeToString
      Src: /src/libxml2/xpath.c:5059,1
    - Dst: xmlXPathCacheNewString
      Src: /src/libxml2/xpath.c:5061,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5053,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:5061,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5062,1
    - Dst: xmlXPathNumberFunction
      Src: /src/libxml2/xpath.c:5063,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:5064,1
    - Dst: xmlXPathCacheObjectCopy
      Src: /src/libxml2/xpath.c:5064,1
    - Dst: xmlXPathCompareValues
      Src: /src/libxml2/xpath.c:5065,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:5069,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5074,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5073,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 5
    argNames:
    - ctxt
    - inf
    - strict
    - arg
    - f
    argTypes:
    - xmlXPathParserContextPtr
    - int
    - int
    - xmlXPathObjectPtr
    - xmlXPathObjectPtr
    constantsTouched: []
    func_position:
      end: 5076
      start: 5043
    functionDepth: 0
    functionLinenumber: 5043
    functionLinenumberEnd: 5076
    functionName: xmlXPathCompareNodeSetFloat
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathPErrMemory
    - xmlXPathNumberFunction
    - xmlXPathCacheObjectCopy
    - xmlXPathValuePush
    - xmlXPathCompareValues
    - xmlXPathReleaseObject
    - xmlXPathCastNodeToString
    - xmlXPathCacheNewString
    linkageType: ''
    returnType: int
    signature: "static int xmlXPathCompareNodeSetFloat(xmlXPathParserContextPtr ctxt,
      int inf, int strict,\t xmlXPathObjectPtr arg, xmlXPathObjectPtr f) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpath.c:5963,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 5965
      start: 5959
    functionDepth: 0
    functionLinenumber: 5959
    functionLinenumberEnd: 5965
    functionName: xmlXPathValueFlipSign
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - CHECK_TYPE
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathValueFlipSign(xmlXPathParserContext *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlXPathParserContext*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 6127
      start: 6121
    functionDepth: 0
    functionLinenumber: 6121
    functionLinenumberEnd: 6127
    functionName: xmlXPathNextSelf
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlXPathNextSelf(xmlXPathParserContext *ctxt, xmlNode *cur) '
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:6437,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:6486,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 33
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlXPathParserContext*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 6511
      start: 6408
    functionDepth: 0
    functionLinenumber: 6408
    functionLinenumberEnd: 6511
    functionName: xmlXPathNextAncestor
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlXPathNextAncestor(xmlXPathParserContext *ctxt, xmlNode
      *cur) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7818,1
    - Dst: xmlXPathCastToBoolean
      Src: /src/libxml2/xpath.c:7822,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:7820,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7824,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7819,1
    - Dst: xmlXPathCacheNewBoolean
      Src: /src/libxml2/xpath.c:7825,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7827,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7828
      start: 7814
    functionDepth: 0
    functionLinenumber: 7814
    functionLinenumberEnd: 7828
    functionName: xmlXPathBooleanFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCastToBoolean
    - CHECK_ARITY
    - XP_ERROR
    - xmlXPathCacheNewBoolean
    - xmlXPathValuePush
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathBooleanFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xpath.c:11994,1
    - Dst: xmlXPathErr
      Src: /src/libxml2/xpath.c:12006,1
    - Dst: xmlResetError
      Src: /src/libxml2/xpath.c:11996,1
    - Dst: xmlXPathEvalExpr
      Src: /src/libxml2/xpath.c:12001,1
    - Dst: xmlXPathNewParserContext
      Src: /src/libxml2/xpath.c:11998,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:12009,1
    - Dst: xmlXPathFreeParserContext
      Src: /src/libxml2/xpath.c:12012,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - str
    - ctx
    argTypes:
    - xmlChar*
    - xmlXPathContext*
    constantsTouched: []
    func_position:
      end: 12014
      start: 11986
    functionDepth: 0
    functionLinenumber: 11986
    functionLinenumberEnd: 12014
    functionName: xmlXPathEval
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathEvalExpr
    - xmlXPathErr
    - xmlXPathNewParserContext
    - xmlInitParser
    - xmlXPathValuePop
    - xmlResetError
    - xmlXPathFreeParserContext
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathEval(const xmlChar *str, xmlXPathContext *ctx) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:5172,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:5177,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:5186,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:5178,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:5187,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:5191,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:5192,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:5196,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:5198,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:5199,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxml2/xpath.c:5205,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5229,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:5231,1
    - Dst: xmlXPathNodeToNumberInternal
      Src: /src/libxml2/xpath.c:5204,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:5200,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxml2/xpath.c:5212,1
    - Dst: xmlXPathNodeToNumberInternal
      Src: /src/libxml2/xpath.c:5209,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:5230,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 72
    argCount: 5
    argNames:
    - ctxt
    - inf
    - strict
    - arg1
    - arg2
    argTypes:
    - xmlXPathParserContextPtr
    - int
    - int
    - xmlXPathObjectPtr
    - xmlXPathObjectPtr
    constantsTouched: []
    func_position:
      end: 5233
      start: 5160
    functionDepth: 0
    functionLinenumber: 5160
    functionLinenumberEnd: 5233
    functionName: xmlXPathCompareNodeSets
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathPErrMemory
    - xmlXPathIsNaN
    - xmlXPathFreeObject
    - xmlMalloc
    - xmlXPathNodeToNumberInternal
    linkageType: ''
    returnType: int
    signature: "static int xmlXPathCompareNodeSets(xmlXPathParserContextPtr ctxt,
      int inf, int strict,\t xmlXPathObjectPtr arg1, xmlXPathObjectPtr arg2) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetGrow
      Src: /src/libxml2/xpath.c:2804,1
    - Dst: xmlXPathNodeSetDupNs
      Src: /src/libxml2/xpath.c:2810,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 2
    argNames:
    - cur
    - val
    argTypes:
    - xmlNodeSet*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2818
      start: 2787
    functionDepth: 0
    functionLinenumber: 2787
    functionLinenumberEnd: 2818
    functionName: xmlXPathNodeSetAdd
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetDupNs
    - xmlXPathNodeSetGrow
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathNodeSetAdd(xmlNodeSet *cur, xmlNode *val) '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:2448,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:2454,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:2453,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:2449,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:2511,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:2512,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:2516,1
    - Dst: XML_NODE_SORT_VALUE
      Src: /src/libxml2/xpath.c:2517,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 106
    argCount: 2
    argNames:
    - node1
    - node2
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2528
      start: 2393
    functionDepth: 0
    functionLinenumber: 2393
    functionLinenumberEnd: 2528
    functionName: xmlXPathCmpNodes
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - XML_NODE_SORT_VALUE
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathCmpNodes(xmlNode *node1, xmlNode *node2) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashFree
      Src: /src/libxml2/xpath.c:3795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathContext*
    constantsTouched: []
    func_position:
      end: 3797
      start: 3790
    functionDepth: 0
    functionLinenumber: 3790
    functionLinenumberEnd: 3797
    functionName: xmlXPathRegisteredFuncsCleanup
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathRegisteredFuncsCleanup(xmlXPathContext *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:4108,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:4110,1
    - Dst: memset
      Src: /src/libxml2/xpath.c:4113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4117
      start: 4104
    functionDepth: 0
    functionLinenumber: 4104
    functionLinenumberEnd: 4117
    functionName: xmlXPathWrapString
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathWrapString (xmlChar *val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:4151,1
    - Dst: memset
      Src: /src/libxml2/xpath.c:4154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - val
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 4158
      start: 4147
    functionDepth: 0
    functionLinenumber: 4147
    functionLinenumberEnd: 4158
    functionName: xmlXPathWrapExternal
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathWrapExternal (void *val) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathFreeCache
      Src: /src/libxml2/xpath.c:4750,1
    - Dst: xmlResetError
      Src: /src/libxml2/xpath.c:4754,1
    - Dst: xmlXPathRegisteredNsCleanup
      Src: /src/libxml2/xpath.c:4751,1
    - Dst: xmlXPathRegisteredVariablesCleanup
      Src: /src/libxml2/xpath.c:4753,1
    - Dst: xmlXPathRegisteredFuncsCleanup
      Src: /src/libxml2/xpath.c:4752,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:4755,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathContext*
    constantsTouched: []
    func_position:
      end: 4756
      start: 4745
    functionDepth: 0
    functionLinenumber: 4745
    functionLinenumberEnd: 4756
    functionName: xmlXPathFreeContext
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathRegisteredVariablesCleanup
    - xmlXPathRegisteredFuncsCleanup
    - xmlXPathRegisteredNsCleanup
    - xmlXPathFreeCache
    - xmlResetError
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathFreeContext(xmlXPathContext *ctxt) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:4872,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxml2/xpath.c:4885,1
    - Dst: xmlFreePatternList
      Src: /src/libxml2/xpath.c:4881,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:4876,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:4874,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:4887,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 4888
      start: 4862
    functionDepth: 0
    functionLinenumber: 4862
    functionLinenumberEnd: 4888
    functionName: xmlXPathFreeParserContext
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathReleaseObject
    - xmlXPathFreeObject
    - xmlFreePatternList
    - xmlXPathFreeCompExpr
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathFreeParserContext(xmlXPathParserContext *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:6068,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:6070,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:6072,1
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpath.c:6074,1
    - Dst: xmlXPathCastToNumberInternal
      Src: /src/libxml2/xpath.c:6071,1
    - Dst: fmod
      Src: /src/libxml2/xpath.c:6079,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 6081
      start: 6063
    functionDepth: 0
    functionLinenumber: 6063
    functionLinenumberEnd: 6081
    functionName: xmlXPathModValues
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - XP_ERROR
    - CHECK_TYPE
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - fmod
    - xmlXPathCastToNumberInternal
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathModValues(xmlXPathParserContext *ctxt) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xpath.c:11860,1
    - Dst: xmlXPathErr
      Src: /src/libxml2/xpath.c:11871,1
    - Dst: xmlResetError
      Src: /src/libxml2/xpath.c:11862,1
    - Dst: xmlXPathCompParserContext
      Src: /src/libxml2/xpath.c:11864,1
    - Dst: xmlXPathRunEval
      Src: /src/libxml2/xpath.c:11867,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:11873,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:11879,1
    - Dst: xmlXPathFreeParserContext
      Src: /src/libxml2/xpath.c:11882,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - comp
    - ctxt
    - resObjPtr
    - toBool
    argTypes:
    - xmlXPathCompExprPtr
    - xmlXPathContextPtr
    - xmlXPathObjectPtr*
    - int
    constantsTouched: []
    func_position:
      end: 11885
      start: 11848
    functionDepth: 0
    functionLinenumber: 11848
    functionLinenumberEnd: 11885
    functionName: xmlXPathCompiledEvalInternal
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathErr
    - xmlXPathCompParserContext
    - xmlInitParser
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlXPathRunEval
    - xmlResetError
    - xmlXPathFreeParserContext
    linkageType: ''
    returnType: int
    signature: "static int xmlXPathCompiledEvalInternal(xmlXPathCompExprPtr comp,\t\t\t
      xmlXPathContextPtr ctxt,\t\t\t xmlXPathObjectPtr *resObjPtr,\t\t\t int toBool) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompiledEvalInternal
      Src: /src/libxml2/xpath.c:11917,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - comp
    - ctxt
    argTypes:
    - xmlXPathCompExpr*
    - xmlXPathContext*
    constantsTouched: []
    func_position:
      end: 11918
      start: 11913
    functionDepth: 0
    functionLinenumber: 11913
    functionLinenumberEnd: 11918
    functionName: xmlXPathCompiledEvalToBoolean
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCompiledEvalInternal
    linkageType: ''
    returnType: int
    signature: "int xmlXPathCompiledEvalToBoolean(xmlXPathCompExpr *comp,\t\t\t xmlXPathContext
      *ctxt) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompiledEvalInternal
      Src: /src/libxml2/xpath.c:11900,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - comp
    - ctx
    argTypes:
    - xmlXPathCompExpr*
    - xmlXPathContext*
    constantsTouched: []
    func_position:
      end: 11902
      start: 11895
    functionDepth: 0
    functionLinenumber: 11895
    functionLinenumberEnd: 11902
    functionName: xmlXPathCompiledEval
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCompiledEvalInternal
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathCompiledEval(xmlXPathCompExpr *comp, xmlXPathContext
      *ctx) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathWrapString
      Src: /src/libxml2/xpath.c:1656,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:1658,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - pctxt
    - val
    argTypes:
    - xmlXPathParserContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1660
      start: 1637
    functionDepth: 0
    functionLinenumber: 1637
    functionLinenumberEnd: 1660
    functionName: xmlXPathCacheWrapString
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathWrapString
    - xmlXPathPErrMemory
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: 'static xmlXPathObjectPtr xmlXPathCacheWrapString(xmlXPathParserContextPtr
      pctxt, xmlChar *val) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: XML_INT_TO_PTR
      Src: /src/libxml2/xpath.c:2358,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 2383
      start: 2347
    functionDepth: 0
    functionLinenumber: 2347
    functionLinenumberEnd: 2383
    functionName: xmlXPathOrderDocElems
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - XML_INT_TO_PTR
    linkageType: ''
    returnType: long
    signature: 'long xmlXPathOrderDocElems(xmlDoc *doc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - ctxt
    - f
    - data
    argTypes:
    - xmlXPathContext*
    - xmlXPathVariableLookupFunc
    - void*
    constantsTouched: []
    func_position:
      end: 3864
      start: 3857
    functionDepth: 0
    functionLinenumber: 3857
    functionLinenumberEnd: 3864
    functionName: xmlXPathRegisterVariableLookup
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void xmlXPathRegisterVariableLookup(xmlXPathContext *ctxt,\t xmlXPathVariableLookupFunc
      f, void *data) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:4081,1
    - Dst: memset
      Src: /src/libxml2/xpath.c:4084,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:4090,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:4088,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4094
      start: 4077
    functionDepth: 0
    functionLinenumber: 4077
    functionLinenumberEnd: 4094
    functionName: xmlXPathNewString
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - memset
    - xmlFree
    - xmlMalloc
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathNewString(const xmlChar *val) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7066,1
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7070,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7075,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:7074,1
    - Dst: xmlXPathCacheNewNodeSet
      Src: /src/libxml2/xpath.c:7066,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7078,1
    - Dst: xmlXPathCacheNewCString
      Src: /src/libxml2/xpath.c:7078,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7086,1
    - Dst: xmlXPathCacheNewCString
      Src: /src/libxml2/xpath.c:7086,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7088,1
    - Dst: xmlXPathCacheNewString
      Src: /src/libxml2/xpath.c:7088,1
    - Dst: xmlXPathCacheNewString
      Src: /src/libxml2/xpath.c:7092,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7099,1
    - Dst: xmlXPathCacheNewCString
      Src: /src/libxml2/xpath.c:7096,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7096,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7092,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7100
      start: 7059
    functionDepth: 0
    functionLinenumber: 7059
    functionLinenumberEnd: 7100
    functionName: xmlXPathLocalNameFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - CHECK_ARITY
    - XP_ERROR
    - xmlXPathValuePush
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlXPathCacheNewString
    - xmlXPathCacheNewNodeSet
    - xmlXPathCacheNewCString
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathLocalNameFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NXT
      Src: /src/libxml2/xpath.c:9434,1
    - Dst: xmlXPathCompStep
      Src: /src/libxml2/xpath.c:9443,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:9447,1
    - Dst: SKIP
      Src: /src/libxml2/xpath.c:9435,1
    - Dst: PUSH_LONG_EXPR
      Src: /src/libxml2/xpath.c:9437,1
    - Dst: SKIP
      Src: /src/libxml2/xpath.c:9448,1
    - Dst: PUSH_LONG_EXPR
      Src: /src/libxml2/xpath.c:9450,1
    - Dst: xmlXPathCompStep
      Src: /src/libxml2/xpath.c:9452,1
    - Dst: xmlXPathCompStep
      Src: /src/libxml2/xpath.c:9456,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 9460
      start: 9430
    functionDepth: 0
    functionLinenumber: 9430
    functionLinenumberEnd: 9460
    functionName: xmlXPathCompRelativeLocationPath
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - PUSH_LONG_EXPR
    - NXT
    - SKIP
    - xmlXPathCompStep
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompRelativeLocationPath(xmlXPathParserContextPtr
      ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:4707,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/xpath.c:4732,1
    - Dst: xmlXPathContextSetCache
      Src: /src/libxml2/xpath.c:4731,1
    - Dst: memset
      Src: /src/libxml2/xpath.c:4710,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 4738
      start: 4703
    functionDepth: 0
    functionLinenumber: 4703
    functionLinenumberEnd: 4738
    functionName: xmlXPathNewContext
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    - xmlXPathFreeContext
    - xmlXPathContextSetCache
    linkageType: ''
    returnType: xmlXPathContext*
    signature: 'xmlXPathContext *xmlXPathNewContext(xmlDoc *doc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathWrapNodeSet
      Src: /src/libxml2/xpath.c:1623,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:1625,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - pctxt
    - val
    argTypes:
    - xmlXPathParserContextPtr
    - xmlNodeSetPtr
    constantsTouched: []
    func_position:
      end: 1627
      start: 1602
    functionDepth: 0
    functionLinenumber: 1602
    functionLinenumberEnd: 1627
    functionName: xmlXPathCacheWrapNodeSet
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathPErrMemory
    - xmlXPathWrapNodeSet
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: 'static xmlXPathObjectPtr xmlXPathCacheWrapNodeSet(xmlXPathParserContextPtr
      pctxt, xmlNodeSetPtr val) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxml2/xpath.c:3840,1
    - Dst: xmlHashRemoveEntry2
      Src: /src/libxml2/xpath.c:3844,1
    - Dst: xmlHashUpdateEntry2
      Src: /src/libxml2/xpath.c:3846,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 4
    argNames:
    - ctxt
    - name
    - ns_uri
    - value
    argTypes:
    - xmlXPathContext*
    - xmlChar*
    - xmlChar*
    - xmlXPathObject*
    constantsTouched: []
    func_position:
      end: 3848
      start: 3830
    functionDepth: 0
    functionLinenumber: 3830
    functionLinenumberEnd: 3848
    functionName: xmlXPathRegisterVariableNS
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlHashCreate
    - xmlHashRemoveEntry2
    - xmlHashUpdateEntry2
    linkageType: ''
    returnType: int
    signature: "int xmlXPathRegisterVariableNS(xmlXPathContext *ctxt, const xmlChar
      *name,\t\t\t const xmlChar *ns_uri,\t\t\t xmlXPathObject *value) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/xpath.c:4388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 4389
      start: 4386
    functionDepth: 0
    functionLinenumber: 4386
    functionLinenumberEnd: 4389
    functionName: xmlXPathCastNodeToString
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlNodeGetContent
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlXPathCastNodeToString (xmlNode *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNewBoolean
      Src: /src/libxml2/xpath.c:4683,1
    - Dst: xmlXPathNewBoolean
      Src: /src/libxml2/xpath.c:4686,1
    - Dst: xmlXPathCastToBoolean
      Src: /src/libxml2/xpath.c:4686,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:4687,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlXPathObject*
    constantsTouched: []
    func_position:
      end: 4689
      start: 4678
    functionDepth: 0
    functionLinenumber: 4678
    functionLinenumberEnd: 4689
    functionName: xmlXPathConvertBoolean
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeObject
    - xmlXPathCastToBoolean
    - xmlXPathNewBoolean
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathConvertBoolean(xmlXPathObject *val) '
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 33
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlXPathParserContext*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 6304
      start: 6254
    functionDepth: 0
    functionLinenumber: 6254
    functionLinenumberEnd: 6304
    functionName: xmlXPathNextDescendant
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlXPathNextDescendant(xmlXPathParserContext *ctxt, xmlNode
      *cur) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:6369,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 19
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlXPathParserContext*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 6394
      start: 6340
    functionDepth: 0
    functionLinenumber: 6340
    functionLinenumberEnd: 6394
    functionName: xmlXPathNextParent
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlXPathNextParent(xmlXPathParserContext *ctxt, xmlNode *cur) '
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlXPathParserContextPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 6751
      start: 6712
    functionDepth: 0
    functionLinenumber: 6712
    functionLinenumberEnd: 6751
    functionName: xmlXPathNextPrecedingInternal
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlXPathNextPrecedingInternal(xmlXPathParserContextPtr
      ctxt, xmlNodePtr cur) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7004,1
    - Dst: xmlXPathNodeSetMerge
      Src: /src/libxml2/xpath.c:7024,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7026,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:7029,1
    - Dst: xmlXPathGetElementsByIds
      Src: /src/libxml2/xpath.c:7040,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7042,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7044,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7033,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7039,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:7043,1
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxml2/xpath.c:7011,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7013,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7020,1
    - Dst: xmlXPathGetElementsByIds
      Src: /src/libxml2/xpath.c:7021,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7023,1
    - Dst: xmlXPathCastToString
      Src: /src/libxml2/xpath.c:7036,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7038,1
    - Dst: xmlXPathCacheWrapNodeSet
      Src: /src/libxml2/xpath.c:7033,1
    - Dst: xmlXPathCacheWrapNodeSet
      Src: /src/libxml2/xpath.c:7044,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7005,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:7006,1
    - Dst: xmlXPathCastNodeToString
      Src: /src/libxml2/xpath.c:7018,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/xpath.c:7027,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7032,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7045
      start: 6998
    functionDepth: 0
    functionLinenumber: 6998
    functionLinenumberEnd: 7045
    functionName: xmlXPathIdFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetCreate
    - xmlXPathFreeNodeSet
    - xmlFree
    - xmlXPathPErrMemory
    - xmlXPathNodeSetMerge
    - CHECK_ARITY
    - XP_ERROR
    - xmlXPathGetElementsByIds
    - xmlXPathValuePush
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlXPathCastNodeToString
    - xmlXPathCacheWrapNodeSet
    - xmlXPathCastToString
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathIdFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufCreate
      Src: /src/libxml2/xpath.c:7753,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxml2/xpath.c:7769,1
    - Dst: xmlBufAdd
      Src: /src/libxml2/xpath.c:7769,1
    - Dst: xmlXPathCacheWrapString
      Src: /src/libxml2/xpath.c:7794,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7799,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7794,1
    - Dst: xmlStrlen
      Src: /src/libxml2/xpath.c:7740,1
    - Dst: xmlUTF8Strlen
      Src: /src/libxml2/xpath.c:7759,1
    - Dst: xmlUTF8Strsize
      Src: /src/libxml2/xpath.c:7766,1
    - Dst: xmlBufAdd
      Src: /src/libxml2/xpath.c:7766,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7797,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7798,1
    - Dst: xmlXPathCheckOpLimit
      Src: /src/libxml2/xpath.c:7748,1
    - Dst: xmlBufDetach
      Src: /src/libxml2/xpath.c:7790,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7792,1
    - Dst: xmlBufFree
      Src: /src/libxml2/xpath.c:7795,1
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7724,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7729,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7731,1
    - Dst: xmlStrlen
      Src: /src/libxml2/xpath.c:7739,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7727,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7755,1
    - Dst: xmlUTF8Strpos
      Src: /src/libxml2/xpath.c:7764,1
    - Dst: xmlXPathErr
      Src: /src/libxml2/xpath.c:7776,1
    - Dst: xmlXPathErr
      Src: /src/libxml2/xpath.c:7782,1
    - Dst: xmlUTF8Strloc
      Src: /src/libxml2/xpath.c:7761,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 74
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7800
      start: 7713
    functionDepth: 0
    functionLinenumber: 7713
    functionLinenumberEnd: 7800
    functionName: xmlXPathTranslateFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlBufAdd
    - xmlUTF8Strlen
    - xmlXPathPErrMemory
    - xmlUTF8Strsize
    - xmlBufDetach
    - CHECK_ARITY
    - xmlXPathErr
    - xmlUTF8Strloc
    - xmlUTF8Strpos
    - xmlStrlen
    - xmlXPathValuePush
    - xmlBufFree
    - xmlXPathCheckOpLimit
    - xmlXPathReleaseObject
    - xmlXPathCacheWrapString
    - xmlBufCreate
    - xmlXPathValuePop
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathTranslateFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7946,1
    - Dst: xmlXPathStringEvalNumber
      Src: /src/libxml2/xpath.c:7952,1
    - Dst: xmlXPathCacheNewFloat
      Src: /src/libxml2/xpath.c:7946,1
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/xpath.c:7948,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7950,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7953,1
    - Dst: xmlXPathCacheNewFloat
      Src: /src/libxml2/xpath.c:7953,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:7954,1
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7959,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7960,1
    - Dst: xmlXPathCastToNumberInternal
      Src: /src/libxml2/xpath.c:7964,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7965,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7968,1
    - Dst: xmlXPathCacheNewFloat
      Src: /src/libxml2/xpath.c:7966,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7969
      start: 7938
    functionDepth: 0
    functionLinenumber: 7938
    functionLinenumberEnd: 7969
    functionName: xmlXPathNumberFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathStringEvalNumber
    - xmlXPathPErrMemory
    - CHECK_ARITY
    - xmlXPathValuePush
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlXPathCacheNewFloat
    - xmlNodeGetContent
    - xmlXPathCastToNumberInternal
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathNumberFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathTryStreamCompile
      Src: /src/libxml2/xpath.c:11759,1
    - Dst: xmlXPathNewContext
      Src: /src/libxml2/xpath.c:11770,1
    - Dst: xmlXPathNewParserContext
      Src: /src/libxml2/xpath.c:11776,1
    - Dst: xmlInitParser
      Src: /src/libxml2/xpath.c:11764,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/xpath.c:11779,1
    - Dst: xmlXPathCompileExpr
      Src: /src/libxml2/xpath.c:11784,1
    - Dst: xmlXPathFreeParserContext
      Src: /src/libxml2/xpath.c:11789,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/xpath.c:11791,1
    - Dst: xmlXPatherror
      Src: /src/libxml2/xpath.c:11802,1
    - Dst: xmlXPathOptimizeExpression
      Src: /src/libxml2/xpath.c:11809,1
    - Dst: xmlXPathFreeParserContext
      Src: /src/libxml2/xpath.c:11815,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/xpath.c:11817,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:11820,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 2
    argNames:
    - ctxt
    - str
    argTypes:
    - xmlXPathContext*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 11823
      start: 11748
    functionDepth: 0
    functionLinenumber: 11748
    functionLinenumberEnd: 11823
    functionName: xmlXPathCtxtCompile
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNewContext
    - xmlXPathTryStreamCompile
    - xmlXPathFreeContext
    - xmlXPathNewParserContext
    - xmlXPatherror
    - xmlInitParser
    - xmlXPathOptimizeExpression
    - xmlStrdup
    - xmlXPathCompileExpr
    - xmlXPathFreeParserContext
    linkageType: ''
    returnType: xmlXPathCompExpr*
    signature: 'xmlXPathCompExpr *xmlXPathCtxtCompile(xmlXPathContext *ctxt, const
      xmlChar *str) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathIsInf
      Src: /src/libxml2/xpath.c:4356,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:4365,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:4358,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxml2/xpath.c:4364,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:4361,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:4368,1
    - Dst: xmlXPathFormatNumber
      Src: /src/libxml2/xpath.c:4372,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:4374,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - val
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 4378
      start: 4353
    functionDepth: 0
    functionLinenumber: 4353
    functionLinenumberEnd: 4378
    functionName: xmlXPathCastNumberToString
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlXPathIsInf
    - xmlXPathFormatNumber
    - xmlXPathIsNaN
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlXPathCastNumberToString (double val) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/xpath.c:6210,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 29
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlXPathParserContextPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 6243
      start: 6183
    functionDepth: 0
    functionLinenumber: 6183
    functionLinenumberEnd: 6243
    functionName: xmlXPathNextChildElement
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlXPathNextChildElement(xmlXPathParserContextPtr
      ctxt, xmlNodePtr cur) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNextDescendant
      Src: /src/libxml2/xpath.c:6329,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlXPathParserContext*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 6330
      start: 6317
    functionDepth: 0
    functionLinenumber: 6317
    functionLinenumberEnd: 6330
    functionName: xmlXPathNextDescendantOrSelf
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNextDescendant
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlXPathNextDescendantOrSelf(xmlXPathParserContext *ctxt,
      xmlNode *cur) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathIsAncestor
      Src: /src/libxml2/xpath.c:6695,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlXPathParserContext*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 6697
      start: 6663
    functionDepth: 0
    functionLinenumber: 6663
    functionLinenumberEnd: 6697
    functionName: xmlXPathNextPreceding
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathIsAncestor
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlXPathNextPreceding(xmlXPathParserContext *ctxt, xmlNode
      *cur) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCastNodeToString
      Src: /src/libxml2/xpath.c:7656,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7659,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7658,1
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7663,1
    - Dst: xmlXPathCacheWrapString
      Src: /src/libxml2/xpath.c:7659,1
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpath.c:7665,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xpath.c:7672,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xpath.c:7678,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7690
      start: 7648
    functionDepth: 0
    functionLinenumber: 7648
    functionLinenumberEnd: 7690
    functionName: xmlXPathNormalizeFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathPErrMemory
    - CHECK_ARITY
    - CHECK_TYPE
    - xmlXPathValuePush
    - xmlXPathCacheWrapString
    - IS_BLANK_CH
    - xmlXPathCastNodeToString
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathNormalizeFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7902,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7905,1
    - Dst: xmlNodeGetAttrValue
      Src: /src/libxml2/xpath.c:7909,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7911,1
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpath.c:7904,1
    - Dst: toupper
      Src: /src/libxml2/xpath.c:7918,1
    - Dst: toupper
      Src: /src/libxml2/xpath.c:7918,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:7925,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7927,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7928,1
    - Dst: xmlXPathCacheNewBoolean
      Src: /src/libxml2/xpath.c:7928,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7929
      start: 7893
    functionDepth: 0
    functionLinenumber: 7893
    functionLinenumberEnd: 7929
    functionName: xmlXPathLangFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - toupper
    - xmlXPathPErrMemory
    - CHECK_ARITY
    - xmlXPathCacheNewBoolean
    - CHECK_TYPE
    - xmlNodeGetAttrValue
    - xmlXPathValuePush
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathLangFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:9094,1
    - Dst: xmlXPathCompileExpr
      Src: /src/libxml2/xpath.c:9112,1
    - Dst: PUSH_BINARY_EXPR
      Src: /src/libxml2/xpath.c:9120,1
    - Dst: xmlXPathCompileExpr
      Src: /src/libxml2/xpath.c:9110,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:9116,1
    - Dst: PUSH_BINARY_EXPR
      Src: /src/libxml2/xpath.c:9122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ctxt
    - filter
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 9126
      start: 9088
    functionDepth: 0
    functionLinenumber: 9088
    functionLinenumberEnd: 9126
    functionName: xmlXPathCompPredicate
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCompileExpr
    - PUSH_BINARY_EXPR
    - XP_ERROR
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompPredicate(xmlXPathParserContextPtr ctxt, int
      filter) '
  - BBCount: 72
    BranchProfiles: []
    Callsites:
    - Dst: xmlPatternMaxDepth
      Src: /src/libxml2/xpath.c:11203,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxml2/xpath.c:11239,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:11286,1
    - Dst: xmlStreamPush
      Src: /src/libxml2/xpath.c:11322,1
    - Dst: xmlStreamPushNode
      Src: /src/libxml2/xpath.c:11325,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:11336,1
    - Dst: xmlStreamPop
      Src: /src/libxml2/xpath.c:11385,1
    - Dst: xmlPatternGetStreamCtxt
      Src: /src/libxml2/xpath.c:11284,1
    - Dst: xmlFreeStreamCtxt
      Src: /src/libxml2/xpath.c:11309,1
    - Dst: xmlStreamPop
      Src: /src/libxml2/xpath.c:11339,1
    - Dst: xmlFreeStreamCtxt
      Src: /src/libxml2/xpath.c:11410,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:11299,1
    - Dst: xmlStreamPush
      Src: /src/libxml2/xpath.c:11293,1
    - Dst: xmlXPathErr
      Src: /src/libxml2/xpath.c:11308,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxml2/xpath.c:11298,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxml2/xpath.c:11334,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:11330,1
    - Dst: xmlXPathCacheNewNodeSet
      Src: /src/libxml2/xpath.c:11218,1
    - Dst: xmlPatternMinDepth
      Src: /src/libxml2/xpath.c:11208,1
    - Dst: xmlPatternFromRoot
      Src: /src/libxml2/xpath.c:11211,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxml2/xpath.c:11233,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:11244,1
    - Dst: xmlStreamWantsAnyNode
      Src: /src/libxml2/xpath.c:11290,1
    - Dst: xmlStreamPop
      Src: /src/libxml2/xpath.c:11392,1
    - Dst: xmlFreeStreamCtxt
      Src: /src/libxml2/xpath.c:11405,1
    CyclomaticComplexity: 97
    EdgeCount: 97
    ICount: 141
    argCount: 4
    argNames:
    - pctxt
    - comp
    - resultSeq
    - toBool
    argTypes:
    - xmlXPathParserContextPtr
    - xmlPatternPtr
    - xmlXPathObjectPtr*
    - int
    constantsTouched: []
    func_position:
      end: 11412
      start: 11189
    functionDepth: 0
    functionLinenumber: 11189
    functionLinenumberEnd: 11412
    functionName: xmlXPathRunStreamEval
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFreeStreamCtxt
    - xmlXPathPErrMemory
    - xmlPatternFromRoot
    - xmlPatternMinDepth
    - xmlPatternGetStreamCtxt
    - xmlXPathErr
    - xmlStreamPop
    - xmlStreamWantsAnyNode
    - xmlPatternMaxDepth
    - xmlXPathNodeSetAddUnique
    - xmlStreamPush
    - xmlStreamPushNode
    - xmlXPathCacheNewNodeSet
    linkageType: ''
    returnType: int
    signature: "static int xmlXPathRunStreamEval(xmlXPathParserContextPtr pctxt, xmlPatternPtr
      comp,\t\t xmlXPathObjectPtr *resultSeq, int toBool) "
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrchr
      Src: /src/libxml2/xpath.c:11599,1
    - Dst: xmlStrchr
      Src: /src/libxml2/xpath.c:11613,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:11621,1
    - Dst: xmlStrchr
      Src: /src/libxml2/xpath.c:11600,1
    - Dst: xmlStrchr
      Src: /src/libxml2/xpath.c:11599,1
    - Dst: xmlXPathErrMemory
      Src: /src/libxml2/xpath.c:11623,1
    - Dst: xmlPatternCompileSafe
      Src: /src/libxml2/xpath.c:11636,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:11639,1
    - Dst: xmlXPathErrMemory
      Src: /src/libxml2/xpath.c:11642,1
    - Dst: xmlPatternStreamable
      Src: /src/libxml2/xpath.c:11645,1
    - Dst: xmlXPathNewCompExpr
      Src: /src/libxml2/xpath.c:11646,1
    - Dst: xmlFreePattern
      Src: /src/libxml2/xpath.c:11649,1
    - Dst: xmlDictReference
      Src: /src/libxml2/xpath.c:11655,1
    - Dst: xmlFreePattern
      Src: /src/libxml2/xpath.c:11658,1
    - Dst: xmlXPathErrMemory
      Src: /src/libxml2/xpath.c:11648,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 64
    argCount: 2
    argNames:
    - ctxt
    - str
    argTypes:
    - xmlXPathContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 11661
      start: 11586
    functionDepth: 0
    functionLinenumber: 11586
    functionLinenumberEnd: 11661
    functionName: xmlXPathTryStreamCompile
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathErrMemory
    - xmlXPathNewCompExpr
    - xmlFreePattern
    - xmlPatternCompileSafe
    - xmlDictReference
    - xmlPatternStreamable
    - xmlStrchr
    - xmlMalloc
    linkageType: ''
    returnType: xmlXPathCompExprPtr
    signature: 'static xmlXPathCompExprPtr xmlXPathTryStreamCompile(xmlXPathContextPtr
      ctxt, const xmlChar *str) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: NXT
      Src: /src/libxml2/xpath.c:9344,1
    - Dst: SKIP
      Src: /src/libxml2/xpath.c:9345,1
    - Dst: xmlXPathParseNCName
      Src: /src/libxml2/xpath.c:9364,1
    - Dst: xmlXPathIsAxisName
      Src: /src/libxml2/xpath.c:9366,1
    - Dst: PUSH_LONG_EXPR
      Src: /src/libxml2/xpath.c:9347,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:9369,1
    - Dst: SKIP
      Src: /src/libxml2/xpath.c:9370,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:9371,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:9389,1
    - Dst: xmlXPathCompNodeTest
      Src: /src/libxml2/xpath.c:9393,1
    - Dst: xmlXPathNsLookup
      Src: /src/libxml2/xpath.c:9399,1
    - Dst: xmlXPathCompPredicate
      Src: /src/libxml2/xpath.c:9409,1
    - Dst: PUSH_FULL_EXPR
      Src: /src/libxml2/xpath.c:9412,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:9414,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:9415,1
    - Dst: xmlXPathErr
      Src: /src/libxml2/xpath.c:9400,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 9418
      start: 9341
    functionDepth: 0
    functionLinenumber: 9341
    functionLinenumberEnd: 9418
    functionName: xmlXPathCompStep
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - NXT
    - xmlXPathNsLookup
    - xmlXPathErr
    - PUSH_LONG_EXPR
    - xmlXPathCompNodeTest
    - xmlXPathCompPredicate
    - xmlXPathIsAxisName
    - PUSH_FULL_EXPR
    - SKIP
    - xmlXPathParseNCName
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompStep(xmlXPathParserContextPtr ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxml2/xpath.c:3227,1
    - Dst: xmlXPathNodeSetMerge
      Src: /src/libxml2/xpath.c:3231,1
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxml2/xpath.c:3229,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:3233,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlNodeSet*
    constantsTouched: []
    func_position:
      end: 3240
      start: 3219
    functionDepth: 0
    functionLinenumber: 3219
    functionLinenumberEnd: 3240
    functionName: xmlXPathNewNodeSetList
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathNodeSetMerge
    - xmlXPathNewNodeSet
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathNewNodeSetList(xmlNodeSet *val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxml2/xpath.c:3513,1
    - Dst: xmlXPathNodeSetItem
      Src: /src/libxml2/xpath.c:3516,1
    - Dst: xmlXPathNodeLeadingSorted
      Src: /src/libxml2/xpath.c:3515,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - nodes1
    - nodes2
    argTypes:
    - xmlNodeSet*
    - xmlNodeSet*
    constantsTouched: []
    func_position:
      end: 3517
      start: 3511
    functionDepth: 0
    functionLinenumber: 3511
    functionLinenumberEnd: 3517
    functionName: xmlXPathLeadingSorted
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetIsEmpty
    - xmlXPathNodeSetItem
    - xmlXPathNodeLeadingSorted
    linkageType: ''
    returnType: xmlNodeSet*
    signature: 'xmlNodeSet *xmlXPathLeadingSorted (xmlNodeSet *nodes1, xmlNodeSet
      *nodes2) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathObjectCopy
      Src: /src/libxml2/xpath.c:3917,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/xpath.c:3917,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 3
    argNames:
    - ctxt
    - name
    - ns_uri
    argTypes:
    - xmlXPathContext*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3918
      start: 3898
    functionDepth: 0
    functionLinenumber: 3898
    functionLinenumberEnd: 3918
    functionName: xmlXPathVariableLookupNS
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlHashLookup2
    - xmlXPathObjectCopy
    linkageType: ''
    returnType: xmlXPathObject*
    signature: "xmlXPathObject *xmlXPathVariableLookupNS(xmlXPathContext *ctxt, const
      xmlChar *name,\t\t\t const xmlChar *ns_uri) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNewFloat
      Src: /src/libxml2/xpath.c:4586,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:4590,1
    - Dst: xmlXPathNewFloat
      Src: /src/libxml2/xpath.c:4589,1
    - Dst: xmlXPathCastToNumber
      Src: /src/libxml2/xpath.c:4589,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlXPathObject*
    constantsTouched: []
    func_position:
      end: 4592
      start: 4581
    functionDepth: 0
    functionLinenumber: 4581
    functionLinenumberEnd: 4592
    functionName: xmlXPathConvertNumber
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeObject
    - xmlXPathCastToNumber
    - xmlXPathNewFloat
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathConvertNumber(xmlXPathObject *val) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7856,1
    - Dst: xmlXPathCacheNewBoolean
      Src: /src/libxml2/xpath.c:7857,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7857,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7858
      start: 7854
    functionDepth: 0
    functionLinenumber: 7854
    functionLinenumberEnd: 7858
    functionName: xmlXPathTrueFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCacheNewBoolean
    - xmlXPathValuePush
    - CHECK_ARITY
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathTrueFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:8504,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:8510,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:8506,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:8508,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 8513
      start: 8499
    functionDepth: 0
    functionLinenumber: 8499
    functionLinenumberEnd: 8513
    functionName: xmlXPathIsNodeType
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathIsNodeType(const xmlChar *name) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathParseQName
      Src: /src/libxml2/xpath.c:8531,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:8539,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:8540,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:8533,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:8534,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:8541,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:8550,1
    - Dst: xmlXPathCompileExpr
      Src: /src/libxml2/xpath.c:8559,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:8561,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:8562,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:8570,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:8571,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:8578,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:8579,1
    - Dst: PUSH_LONG_EXPR
      Src: /src/libxml2/xpath.c:8577,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:8569,1
    - Dst: PUSH_BINARY_EXPR
      Src: /src/libxml2/xpath.c:8565,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 8583
      start: 8524
    functionDepth: 0
    functionLinenumber: 8524
    functionLinenumberEnd: 8583
    functionName: xmlXPathCompFunctionCall
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - XP_ERROR
    - PUSH_LONG_EXPR
    - xmlXPathParseQName
    - xmlStrEqual
    - xmlXPathCompileExpr
    - PUSH_BINARY_EXPR
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompFunctionCall(xmlXPathParserContextPtr ctxt) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:10399,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:10404,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:10413,1
    - Dst: xmlXPathCacheObjectCopy
      Src: /src/libxml2/xpath.c:10453,1
    - Dst: xmlXPathCompOpEvalFirst
      Src: /src/libxml2/xpath.c:10458,1
    - Dst: xmlXPathNodeSetSort
      Src: /src/libxml2/xpath.c:10465,1
    - Dst: XP_ERROR0
      Src: /src/libxml2/xpath.c:10364,1
    - Dst: xmlXPathNodeSetSort
      Src: /src/libxml2/xpath.c:10390,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:10398,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:10402,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:10423,1
    - Dst: xmlXPathNodeSetMerge
      Src: /src/libxml2/xpath.c:10420,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:10414,1
    - Dst: xmlXPathRoot
      Src: /src/libxml2/xpath.c:10430,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10437,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:10439,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:10403,1
    - Dst: xmlXPathCheckOpLimit
      Src: /src/libxml2/xpath.c:10411,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:10426,1
    - Dst: xmlXPathCacheNewNodeSet
      Src: /src/libxml2/xpath.c:10439,1
    - Dst: xmlXPathCompOpEvalFilterFirst
      Src: /src/libxml2/xpath.c:10469,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10473,1
    - Dst: OP_LIMIT_EXCEEDED
      Src: /src/libxml2/xpath.c:10361,1
    - Dst: xmlXPathCompOpEvalFirst
      Src: /src/libxml2/xpath.c:10394,1
    - Dst: xmlXPathCompOpEvalFirst
      Src: /src/libxml2/xpath.c:10372,1
    - Dst: xmlXPathCheckOpLimit
      Src: /src/libxml2/xpath.c:10408,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:10425,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10434,1
    - Dst: xmlXPathCompOpEval
      Src: /src/libxml2/xpath.c:10446,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:10453,1
    - Dst: xmlXPathNodeCollectAndTest
      Src: /src/libxml2/xpath.c:10449,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 95
    argCount: 3
    argNames:
    - ctxt
    - op
    - first
    argTypes:
    - xmlXPathParserContextPtr
    - xmlXPathStepOpPtr
    - xmlNodePtr*
    constantsTouched: []
    func_position:
      end: 10479
      start: 10352
    functionDepth: 0
    functionLinenumber: 10352
    functionLinenumberEnd: 10479
    functionName: xmlXPathCompOpEvalFirst
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCompOpEvalFilterFirst
    - xmlXPathPErrMemory
    - xmlXPathRoot
    - xmlXPathNodeSetMerge
    - xmlXPathCompOpEvalFirst
    - xmlXPathCacheObjectCopy
    - xmlXPathValuePush
    - xmlXPathCheckOpLimit
    - xmlXPathNodeSetSort
    - OP_LIMIT_EXCEEDED
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - XP_ERROR0
    - xmlXPathNodeCollectAndTest
    - xmlXPathCompOpEval
    - xmlXPathCacheNewNodeSet
    linkageType: ''
    returnType: int
    signature: 'static int xmlXPathCompOpEvalFirst(xmlXPathParserContextPtr ctxt,
      xmlXPathStepOpPtr op, xmlNodePtr * first) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNewBoolean
      Src: /src/libxml2/xpath.c:1815,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:1817,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - pctxt
    - val
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 1819
      start: 1795
    functionDepth: 0
    functionLinenumber: 1795
    functionLinenumberEnd: 1819
    functionName: xmlXPathCacheNewBoolean
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathPErrMemory
    - xmlXPathNewBoolean
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: 'static xmlXPathObjectPtr xmlXPathCacheNewBoolean(xmlXPathParserContextPtr
      pctxt, int val) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:2087,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:2095,1
    - Dst: xmlXPathCastToString
      Src: /src/libxml2/xpath.c:2092,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:2094,1
    - Dst: xmlXPathSetError
      Src: /src/libxml2/xpath.c:2089,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 2097
      start: 2082
    functionDepth: 0
    functionLinenumber: 2082
    functionLinenumberEnd: 2097
    functionName: xmlXPathPopString
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathSetError
    - xmlXPathPErrMemory
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlXPathCastToString
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlXPathPopString (xmlXPathParserContext *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNewNodeSet
      Src: /src/libxml2/xpath.c:3204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3210
      start: 3200
    functionDepth: 0
    functionLinenumber: 3200
    functionLinenumberEnd: 3210
    functionName: xmlXPathNewValueTree
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNewNodeSet
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathNewValueTree(xmlNode *val) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxml2/xpath.c:3326,1
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxml2/xpath.c:3334,1
    - Dst: xmlXPathNodeSetItem
      Src: /src/libxml2/xpath.c:3340,1
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxml2/xpath.c:3332,1
    - Dst: xmlXPathNodeSetGetLength
      Src: /src/libxml2/xpath.c:3337,1
    - Dst: xmlXPathNodeSetContains
      Src: /src/libxml2/xpath.c:3341,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxml2/xpath.c:3342,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/xpath.c:3343,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 2
    argNames:
    - nodes1
    - nodes2
    argTypes:
    - xmlNodeSet*
    - xmlNodeSet*
    constantsTouched: []
    func_position:
      end: 3349
      start: 3324
    functionDepth: 0
    functionLinenumber: 3324
    functionLinenumberEnd: 3349
    functionName: xmlXPathIntersection
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetCreate
    - xmlXPathNodeSetIsEmpty
    - xmlXPathFreeNodeSet
    - xmlXPathNodeSetGetLength
    - xmlXPathNodeSetContains
    - xmlXPathNodeSetItem
    - xmlXPathNodeSetAddUnique
    linkageType: ''
    returnType: xmlNodeSet*
    signature: 'xmlNodeSet *xmlXPathIntersection (xmlNodeSet *nodes1, xmlNodeSet *nodes2) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetSort
      Src: /src/libxml2/xpath.c:3497,1
    - Dst: xmlXPathNodeLeadingSorted
      Src: /src/libxml2/xpath.c:3498,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - nodes
    - node
    argTypes:
    - xmlNodeSet*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3499
      start: 3495
    functionDepth: 0
    functionLinenumber: 3495
    functionLinenumberEnd: 3499
    functionName: xmlXPathNodeLeading
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetSort
    - xmlXPathNodeLeadingSorted
    linkageType: ''
    returnType: xmlNodeSet*
    signature: 'xmlNodeSet *xmlXPathNodeLeading (xmlNodeSet *nodes, xmlNode *node) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSFComputeHash
      Src: /src/libxml2/xpath.c:3752,1
    - Dst: memcpy
      Src: /src/libxml2/xpath.c:3780,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/xpath.c:3779,1
    - Dst: strcmp
      Src: /src/libxml2/xpath.c:3757,1
    - Dst: f
      Src: /src/libxml2/xpath.c:3771,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 3
    argNames:
    - ctxt
    - name
    - ns_uri
    argTypes:
    - xmlXPathContext*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3783
      start: 3740
    functionDepth: 0
    functionLinenumber: 3740
    functionLinenumberEnd: 3783
    functionName: xmlXPathFunctionLookupNS
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathSFComputeHash
    - memcpy
    - xmlHashLookup2
    - f
    - strcmp
    linkageType: ''
    returnType: xmlXPathFunction
    signature: "xmlXPathFunction xmlXPathFunctionLookupNS(xmlXPathContext *ctxt, const
      xmlChar *name,\t\t\t const xmlChar *ns_uri) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathVariableLookupNS
      Src: /src/libxml2/xpath.c:3886,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - ctxt
    - name
    argTypes:
    - xmlXPathContext*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3887
      start: 3874
    functionDepth: 0
    functionLinenumber: 3874
    functionLinenumberEnd: 3887
    functionName: xmlXPathVariableLookup
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathVariableLookupNS
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathVariableLookup(xmlXPathContext *ctxt, const
      xmlChar *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:4062,1
    - Dst: memset
      Src: /src/libxml2/xpath.c:4065,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 4069
      start: 4058
    functionDepth: 0
    functionLinenumber: 4058
    functionLinenumberEnd: 4069
    functionName: xmlXPathNewBoolean
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathNewBoolean(int val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 4495
      start: 4490
    functionDepth: 0
    functionLinenumber: 4490
    functionLinenumberEnd: 4495
    functionName: xmlXPathCastBooleanToNumber
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: 'double xmlXPathCastBooleanToNumber(int val) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCastNodeToString
      Src: /src/libxml2/xpath.c:4522,1
    - Dst: xmlXPathCastStringToNumber
      Src: /src/libxml2/xpath.c:4527,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:4524,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:4528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlXPathParserContextPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 4531
      start: 4515
    functionDepth: 0
    functionLinenumber: 4515
    functionLinenumberEnd: 4531
    functionName: xmlXPathNodeToNumberInternal
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathCastStringToNumber
    - xmlXPathPErrMemory
    - xmlXPathCastNodeToString
    linkageType: ''
    returnType: double
    signature: 'static double xmlXPathNodeToNumberInternal(xmlXPathParserContextPtr
      ctxt, xmlNodePtr node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCastToNumberInternal
      Src: /src/libxml2/xpath.c:4571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlXPathObject*
    constantsTouched: []
    func_position:
      end: 4572
      start: 4569
    functionDepth: 0
    functionLinenumber: 4569
    functionLinenumberEnd: 4572
    functionName: xmlXPathCastToNumber
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCastToNumberInternal
    linkageType: ''
    returnType: double
    signature: 'double xmlXPathCastToNumber(xmlXPathObject *val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxml2/xpath.c:3410,1
    - Dst: xmlXPathDistinctSorted
      Src: /src/libxml2/xpath.c:3414,1
    - Dst: xmlXPathNodeSetSort
      Src: /src/libxml2/xpath.c:3413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - nodes
    argTypes:
    - xmlNodeSet*
    constantsTouched: []
    func_position:
      end: 3415
      start: 3408
    functionDepth: 0
    functionLinenumber: 3408
    functionLinenumberEnd: 3415
    functionName: xmlXPathDistinct
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetSort
    - xmlXPathNodeSetIsEmpty
    - xmlXPathDistinctSorted
    linkageType: ''
    returnType: xmlNodeSet*
    signature: 'xmlNodeSet *xmlXPathDistinct (xmlNodeSet *nodes) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathErr
      Src: /src/libxml2/xpath.c:776,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 4
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - 'no'
    argTypes:
    - xmlXPathParserContext*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 777
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 777
    functionName: xmlXPatherror
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathErr
    linkageType: ''
    returnType: void
    signature: 'void xmlXPatherror(xmlXPathParserContext *ctxt, const char *file ATTRIBUTE_UNUSED,
      int line ATTRIBUTE_UNUSED, int no) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCacheNewString
      Src: /src/libxml2/xpath.c:1784,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - pctxt
    - val
    argTypes:
    - xmlXPathParserContextPtr
    - char*
    constantsTouched: []
    func_position:
      end: 1785
      start: 1781
    functionDepth: 0
    functionLinenumber: 1781
    functionLinenumberEnd: 1785
    functionName: xmlXPathCacheNewCString
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCacheNewString
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: 'static xmlXPathObjectPtr xmlXPathCacheNewCString(xmlXPathParserContextPtr
      pctxt, const char *val) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:2062,1
    - Dst: xmlXPathCastToNumberInternal
      Src: /src/libxml2/xpath.c:2068,1
    - Dst: xmlXPathSetError
      Src: /src/libxml2/xpath.c:2064,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:2071,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 2073
      start: 2057
    functionDepth: 0
    functionLinenumber: 2057
    functionLinenumberEnd: 2073
    functionName: xmlXPathPopNumber
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathReleaseObject
    - xmlXPathSetError
    - xmlXPathValuePop
    - xmlXPathCastToNumberInternal
    linkageType: ''
    returnType: double
    signature: 'double xmlXPathPopNumber (xmlXPathParserContext *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetError
      Src: /src/libxml2/xpath.c:2140,1
    - Dst: xmlXPathSetTypeError
      Src: /src/libxml2/xpath.c:2144,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:2150,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:2147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 2152
      start: 2134
    functionDepth: 0
    functionLinenumber: 2134
    functionLinenumberEnd: 2152
    functionName: xmlXPathPopExternal
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathReleaseObject
    - xmlXPathSetError
    - xmlXPathValuePop
    - xmlXPathSetTypeError
    linkageType: ''
    returnType: void*
    signature: 'void *xmlXPathPopExternal (xmlXPathParserContext *ctxt) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxml2/xpath.c:3292,1
    - Dst: xmlXPathNodeSetGetLength
      Src: /src/libxml2/xpath.c:3301,1
    - Dst: xmlXPathNodeSetItem
      Src: /src/libxml2/xpath.c:3304,1
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxml2/xpath.c:3298,1
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxml2/xpath.c:3295,1
    - Dst: xmlXPathNodeSetContains
      Src: /src/libxml2/xpath.c:3305,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxml2/xpath.c:3306,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/xpath.c:3307,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - nodes1
    - nodes2
    argTypes:
    - xmlNodeSet*
    - xmlNodeSet*
    constantsTouched: []
    func_position:
      end: 3313
      start: 3286
    functionDepth: 0
    functionLinenumber: 3286
    functionLinenumberEnd: 3313
    functionName: xmlXPathDifference
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetCreate
    - xmlXPathNodeSetIsEmpty
    - xmlXPathFreeNodeSet
    - xmlXPathNodeSetGetLength
    - xmlXPathNodeSetContains
    - xmlXPathNodeSetItem
    - xmlXPathNodeSetAddUnique
    linkageType: ''
    returnType: xmlNodeSet*
    signature: 'xmlNodeSet *xmlXPathDifference (xmlNodeSet *nodes1, xmlNodeSet *nodes2) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetClearFromPos
      Src: /src/libxml2/xpath.c:3139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - set
    - hasNsNodes
    argTypes:
    - xmlNodeSetPtr
    - int
    constantsTouched: []
    func_position:
      end: 3140
      start: 3136
    functionDepth: 0
    functionLinenumber: 3136
    functionLinenumberEnd: 3140
    functionName: xmlXPathNodeSetClear
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetClearFromPos
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathNodeSetClear(xmlNodeSetPtr set, int hasNsNodes) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathFunctionLookupNS
      Src: /src/libxml2/xpath.c:3728,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ctxt
    - name
    argTypes:
    - xmlXPathContext*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3729
      start: 3726
    functionDepth: 0
    functionLinenumber: 3726
    functionLinenumberEnd: 3729
    functionName: xmlXPathFunctionLookup
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathFunctionLookupNS
    linkageType: ''
    returnType: xmlXPathFunction
    signature: 'xmlXPathFunction xmlXPathFunctionLookup(xmlXPathContext *ctxt, const
      xmlChar *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:4043,1
    - Dst: memset
      Src: /src/libxml2/xpath.c:4046,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - val
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 4050
      start: 4039
    functionDepth: 0
    functionLinenumber: 4039
    functionLinenumberEnd: 4050
    functionName: xmlXPathNewFloat
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathNewFloat(double val) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNewCString
      Src: /src/libxml2/xpath.c:4457,1
    - Dst: xmlXPathCastBooleanToString
      Src: /src/libxml2/xpath.c:4469,1
    - Dst: xmlXPathCastNodeSetToString
      Src: /src/libxml2/xpath.c:4464,1
    - Dst: xmlXPathCastNumberToString
      Src: /src/libxml2/xpath.c:4472,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xpath.c:4478,1
    - Dst: xmlXPathNewCString
      Src: /src/libxml2/xpath.c:4480,1
    - Dst: xmlXPathWrapString
      Src: /src/libxml2/xpath.c:4481,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 14
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlXPathObject*
    constantsTouched: []
    func_position:
      end: 4482
      start: 4452
    functionDepth: 0
    functionLinenumber: 4452
    functionLinenumberEnd: 4482
    functionName: xmlXPathConvertString
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathWrapString
    - xmlXPathCastBooleanToString
    - xmlXPathCastNodeSetToString
    - xmlXPathFreeObject
    - xmlXPathCastNumberToString
    - xmlXPathNewCString
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathConvertString(xmlXPathObject *val) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:5451,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:5453,1
    - Dst: memset
      Src: /src/libxml2/xpath.c:5462,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:5463,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:5465,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5474,1
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/xpath.c:5497,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5516,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5459,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:5456,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5467,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5475,1
    - Dst: xmlXPathNodeValHash
      Src: /src/libxml2/xpath.c:5483,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5473,1
    - Dst: xmlXPathNodeValHash
      Src: /src/libxml2/xpath.c:5480,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:5499,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5514,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5515,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5466,1
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/xpath.c:5492,1
    - Dst: memset
      Src: /src/libxml2/xpath.c:5478,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:5501,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5518,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:5458,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:5472,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:5470,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:5494,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5511,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5517,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 102
    argCount: 4
    argNames:
    - ctxt
    - arg1
    - arg2
    - neq
    argTypes:
    - xmlXPathParserContextPtr
    - xmlXPathObjectPtr
    - xmlXPathObjectPtr
    - int
    constantsTouched: []
    func_position:
      end: 5520
      start: 5415
    functionDepth: 0
    functionLinenumber: 5415
    functionLinenumberEnd: 5520
    functionName: xmlXPathEqualNodeSets
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathPErrMemory
    - memset
    - xmlXPathNodeValHash
    - xmlStrEqual
    - xmlNodeGetContent
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlXPathEqualNodeSets(xmlXPathParserContextPtr ctxt, xmlXPathObjectPtr
      arg1, xmlXPathObjectPtr arg2, int neq) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCtxtCompile
      Src: /src/libxml2/xpath.c:11834,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 11835
      start: 11832
    functionDepth: 0
    functionLinenumber: 11832
    functionLinenumberEnd: 11835
    functionName: xmlXPathCompile
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCtxtCompile
    linkageType: ''
    returnType: xmlXPathCompExpr*
    signature: 'xmlXPathCompExpr *xmlXPathCompile(const xmlChar *str) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxml2/xpath.c:3367,1
    - Dst: xmlXPathNodeSetItem
      Src: /src/libxml2/xpath.c:3376,1
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxml2/xpath.c:3370,1
    - Dst: xmlXPathNodeSetGetLength
      Src: /src/libxml2/xpath.c:3373,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/xpath.c:3374,1
    - Dst: xmlXPathCastNodeToString
      Src: /src/libxml2/xpath.c:3377,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/xpath.c:3378,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/xpath.c:3379,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:3380,1
    - Dst: xmlXPathNodeSetAddUnique
      Src: /src/libxml2/xpath.c:3383,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xpath.c:3393,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:3386,1
    - Dst: xmlXPathFreeNodeSet
      Src: /src/libxml2/xpath.c:3394,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xpath.c:3389,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 1
    argNames:
    - nodes
    argTypes:
    - xmlNodeSet*
    constantsTouched: []
    func_position:
      end: 3396
      start: 3359
    functionDepth: 0
    functionLinenumber: 3359
    functionLinenumberEnd: 3396
    functionName: xmlXPathDistinctSorted
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetCreate
    - xmlXPathNodeSetIsEmpty
    - xmlFree
    - xmlHashFree
    - xmlXPathFreeNodeSet
    - xmlXPathNodeSetGetLength
    - xmlHashCreate
    - xmlXPathNodeSetItem
    - xmlXPathNodeSetAddUnique
    - xmlXPathCastNodeToString
    - xmlHashLookup
    - xmlHashAddEntry
    linkageType: ''
    returnType: xmlNodeSet*
    signature: 'xmlNodeSet *xmlXPathDistinctSorted (xmlNodeSet *nodes) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlResetError
      Src: /src/libxml2/xpath.c:730,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:738,1
    - Dst: xmlRaiseError
      Src: /src/libxml2/xpath.c:755,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:762,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:736,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - ctxt
    - code
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 763
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 763
    functionName: xmlXPathErr
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlRaiseError
    - xmlResetError
    - xmlXPathPErrMemory
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathErr(xmlXPathParserContext *ctxt, int code) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetError
      Src: /src/libxml2/xpath.c:2113,1
    - Dst: xmlXPathSetTypeError
      Src: /src/libxml2/xpath.c:2117,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:2123,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:2120,1
    - Dst: xmlXPathStackIsNodeSet
      Src: /src/libxml2/xpath.c:2116,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 2125
      start: 2106
    functionDepth: 0
    functionLinenumber: 2106
    functionLinenumberEnd: 2125
    functionName: xmlXPathPopNodeSet
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathSetError
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlXPathStackIsNodeSet
    - xmlXPathSetTypeError
    linkageType: ''
    returnType: xmlNodeSet*
    signature: 'xmlNodeSet *xmlXPathPopNodeSet (xmlXPathParserContext *ctxt) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetGrow
      Src: /src/libxml2/xpath.c:2837,1
    - Dst: xmlXPathNodeSetDupNs
      Src: /src/libxml2/xpath.c:2843,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - cur
    - val
    argTypes:
    - xmlNodeSet*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2851
      start: 2828
    functionDepth: 0
    functionLinenumber: 2828
    functionLinenumberEnd: 2851
    functionName: xmlXPathNodeSetAddUnique
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetDupNs
    - xmlXPathNodeSetGrow
    linkageType: ''
    returnType: int
    signature: 'int xmlXPathNodeSetAddUnique(xmlNodeSet *cur, xmlNode *val) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetFreeNs
      Src: /src/libxml2/xpath.c:3122,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - set
    - pos
    - hasNsNodes
    argTypes:
    - xmlNodeSetPtr
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3126
      start: 3109
    functionDepth: 0
    functionLinenumber: 3109
    functionLinenumberEnd: 3126
    functionName: xmlXPathNodeSetClearFromPos
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetFreeNs
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathNodeSetClearFromPos(xmlNodeSetPtr set, int pos,
      int hasNsNodes) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:4173,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:4182,1
    - Dst: xmlXPathNodeSetMerge
      Src: /src/libxml2/xpath.c:4190,1
    - Dst: memcpy
      Src: /src/libxml2/xpath.c:4176,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:4184,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:4192,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:4202,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 21
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlXPathObject*
    constantsTouched: []
    func_position:
      end: 4207
      start: 4166
    functionDepth: 0
    functionLinenumber: 4166
    functionLinenumberEnd: 4207
    functionName: xmlXPathObjectCopy
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memcpy
    - xmlXPathNodeSetMerge
    - xmlStrdup
    - xmlMalloc
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathObjectCopy(xmlXPathObject *val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - ctxt
    - handler
    - data
    argTypes:
    - xmlXPathContext*
    - xmlStructuredErrorFunc
    - void*
    constantsTouched: []
    func_position:
      end: 4775
      start: 4767
    functionDepth: 0
    functionLinenumber: 4767
    functionLinenumberEnd: 4775
    functionName: xmlXPathSetErrorHandler
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathSetErrorHandler(xmlXPathContext *ctxt, xmlStructuredErrorFunc
      handler, void *data) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5106,1
    - Dst: xmlXPathCacheNewString
      Src: /src/libxml2/xpath.c:5116,1
    - Dst: xmlXPathCastNodeToString
      Src: /src/libxml2/xpath.c:5113,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5107,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:5115,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5117,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:5118,1
    - Dst: xmlXPathCacheObjectCopy
      Src: /src/libxml2/xpath.c:5118,1
    - Dst: xmlXPathCompareValues
      Src: /src/libxml2/xpath.c:5119,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:5123,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5128,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5127,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 5
    argNames:
    - ctxt
    - inf
    - strict
    - arg
    - s
    argTypes:
    - xmlXPathParserContextPtr
    - int
    - int
    - xmlXPathObjectPtr
    - xmlXPathObjectPtr
    constantsTouched: []
    func_position:
      end: 5130
      start: 5097
    functionDepth: 0
    functionLinenumber: 5097
    functionLinenumberEnd: 5130
    functionName: xmlXPathCompareNodeSetString
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathPErrMemory
    - xmlXPathCacheObjectCopy
    - xmlXPathValuePush
    - xmlXPathCompareValues
    - xmlXPathReleaseObject
    - xmlXPathCastNodeToString
    - xmlXPathCacheNewString
    linkageType: ''
    returnType: int
    signature: "static int xmlXPathCompareNodeSetString(xmlXPathParserContextPtr ctxt,
      int inf, int strict,\t xmlXPathObjectPtr arg, xmlXPathObjectPtr s) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathRegisterVariableNS
      Src: /src/libxml2/xpath.c:3817,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - ctxt
    - name
    - value
    argTypes:
    - xmlXPathContext*
    - xmlChar*
    - xmlXPathObject*
    constantsTouched: []
    func_position:
      end: 3818
      start: 3814
    functionDepth: 0
    functionLinenumber: 3814
    functionLinenumberEnd: 3818
    functionName: xmlXPathRegisterVariable
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathRegisterVariableNS
    linkageType: ''
    returnType: int
    signature: "int xmlXPathRegisterVariable(xmlXPathContext *ctxt, const xmlChar
      *name,\t\t\t xmlXPathObject *value) "
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/xpath.c:4914,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 66
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5005
      start: 4903
    functionDepth: 0
    functionLinenumber: 4903
    functionLinenumberEnd: 5005
    functionName: xmlXPathNodeValHash
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    linkageType: ''
    returnType: unsigned int
    signature: 'static unsigned int xmlXPathNodeValHash(xmlNodePtr node) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xpath.c:1021,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:1024,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xpath.c:1047,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:1029,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xpath.c:1027,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:1048,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xpath.c:1053,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:1054,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 9
    argNames:
    - ctxt
    - ch1
    - ch2
    - op
    - value
    - value2
    - value3
    - value4
    - value5
    argTypes:
    - xmlXPathParserContextPtr
    - int
    - int
    - xmlXPathOp
    - int
    - int
    - int
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 1063
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1063
    functionName: xmlXPathCompExprAdd
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathPErrMemory
    - xmlDictLookup
    - xmlGrowCapacity
    - xmlRealloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlXPathCompExprAdd(xmlXPathParserContextPtr ctxt, int
      ch1, int ch2, xmlXPathOp op, int value, int value2, int value3, void *value4,
      void *value5) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNewCache
      Src: /src/libxml2/xpath.c:1572,1
    - Dst: xmlXPathFreeCache
      Src: /src/libxml2/xpath.c:1586,1
    - Dst: xmlXPathErrMemory
      Src: /src/libxml2/xpath.c:1574,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 4
    argNames:
    - ctxt
    - active
    - value
    - options
    argTypes:
    - xmlXPathContext*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1590
      start: 1560
    functionDepth: 0
    functionLinenumber: 1560
    functionLinenumberEnd: 1590
    functionName: xmlXPathContextSetCache
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeCache
    - xmlXPathErrMemory
    - xmlXPathNewCache
    linkageType: ''
    returnType: int
    signature: "int xmlXPathContextSetCache(xmlXPathContext *ctxt,\t\t\tint active,\t\t\tint
      value,\t\t\tint options) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCmpNodesExt
      Src: /src/libxml2/xpath.c:2556,1
    - Dst: xmlXPathCmpNodes
      Src: /src/libxml2/xpath.c:2559,1
    - Dst: libxml_domnode_tim_sort
      Src: /src/libxml2/xpath.c:2573,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - set
    argTypes:
    - xmlNodeSet*
    constantsTouched: []
    func_position:
      end: 2575
      start: 2535
    functionDepth: 0
    functionLinenumber: 2535
    functionLinenumberEnd: 2575
    functionName: xmlXPathNodeSetSort
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCmpNodes
    - xmlXPathCmpNodesExt
    - libxml_domnode_tim_sort
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathNodeSetSort(xmlNodeSet *set) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetIsEmpty
      Src: /src/libxml2/xpath.c:3613,1
    - Dst: xmlXPathNodeTrailingSorted
      Src: /src/libxml2/xpath.c:3615,1
    - Dst: xmlXPathNodeSetItem
      Src: /src/libxml2/xpath.c:3616,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - nodes1
    - nodes2
    argTypes:
    - xmlNodeSet*
    - xmlNodeSet*
    constantsTouched: []
    func_position:
      end: 3617
      start: 3611
    functionDepth: 0
    functionLinenumber: 3611
    functionLinenumberEnd: 3617
    functionName: xmlXPathTrailingSorted
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetIsEmpty
    - xmlXPathNodeTrailingSorted
    - xmlXPathNodeSetItem
    linkageType: ''
    returnType: xmlNodeSet*
    signature: 'xmlNodeSet *xmlXPathTrailingSorted (xmlNodeSet *nodes1, xmlNodeSet
      *nodes2) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashFree
      Src: /src/libxml2/xpath.c:4021,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathContext*
    constantsTouched: []
    func_position:
      end: 4023
      start: 4016
    functionDepth: 0
    functionLinenumber: 4016
    functionLinenumberEnd: 4023
    functionName: xmlXPathRegisteredNsCleanup
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathRegisteredNsCleanup(xmlXPathContext *ctxt) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlXPathParserContext*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 6816
      start: 6803
    functionDepth: 0
    functionLinenumber: 6803
    functionLinenumberEnd: 6816
    functionName: xmlXPathNextAttribute
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlXPathNextAttribute(xmlXPathParserContext *ctxt, xmlNode
      *cur) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:8058,1
    - Dst: floor
      Src: /src/libxml2/xpath.c:8069,1
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpath.c:8060,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 8074
      start: 8054
    functionDepth: 0
    functionLinenumber: 8054
    functionLinenumberEnd: 8074
    functionName: xmlXPathRoundFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - CHECK_TYPE
    - floor
    - CHECK_ARITY
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathRoundFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlScanName
      Src: /src/libxml2/xpath.c:8105,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:8114,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xpath.c:8112,1
    - Dst: XP_ERRORNULL
      Src: /src/libxml2/xpath.c:8107,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 8117
      start: 8098
    functionDepth: 0
    functionLinenumber: 8098
    functionLinenumberEnd: 8117
    functionName: xmlXPathParseNCName
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - XP_ERRORNULL
    - xmlXPathPErrMemory
    - xmlScanName
    - xmlStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlXPathParseNCName(xmlXPathParserContext *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathSetContextNode
      Src: /src/libxml2/xpath.c:12050,1
    - Dst: xmlXPathEval
      Src: /src/libxml2/xpath.c:12052,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 3
    argNames:
    - node
    - str
    - ctx
    argTypes:
    - xmlNode*
    - xmlChar*
    - xmlXPathContext*
    constantsTouched: []
    func_position:
      end: 12053
      start: 12046
    functionDepth: 0
    functionLinenumber: 12046
    functionLinenumberEnd: 12053
    functionName: xmlXPathNodeEval
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathSetContextNode
    - xmlXPathEval
    linkageType: ''
    returnType: xmlXPathObject*
    signature: 'xmlXPathObject *xmlXPathNodeEval(xmlNode *node, const xmlChar *str,
      xmlXPathContext *ctx) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCacheFreeObjectList
      Src: /src/libxml2/xpath.c:1536,1
    - Dst: xmlXPathCacheFreeObjectList
      Src: /src/libxml2/xpath.c:1538,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:1539,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - cache
    argTypes:
    - xmlXPathContextCachePtr
    constantsTouched: []
    func_position:
      end: 1540
      start: 1530
    functionDepth: 0
    functionLinenumber: 1530
    functionLinenumberEnd: 1540
    functionName: xmlXPathFreeCache
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCacheFreeObjectList
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathFreeCache(xmlXPathContextCachePtr cache) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetFreeNs
      Src: /src/libxml2/xpath.c:3094,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:3097,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:3095,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - obj
    argTypes:
    - xmlNodeSet*
    constantsTouched: []
    func_position:
      end: 3098
      start: 3084
    functionDepth: 0
    functionLinenumber: 3084
    functionLinenumberEnd: 3098
    functionName: xmlXPathFreeNodeSet
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathNodeSetFreeNs
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathFreeNodeSet(xmlNodeSet *obj) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetSort
      Src: /src/libxml2/xpath.c:3597,1
    - Dst: xmlXPathNodeTrailingSorted
      Src: /src/libxml2/xpath.c:3598,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - nodes
    - node
    argTypes:
    - xmlNodeSet*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3599
      start: 3595
    functionDepth: 0
    functionLinenumber: 3595
    functionLinenumberEnd: 3599
    functionName: xmlXPathNodeTrailing
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetSort
    - xmlXPathNodeTrailingSorted
    linkageType: ''
    returnType: xmlNodeSet*
    signature: 'xmlNodeSet *xmlXPathNodeTrailing (xmlNodeSet *nodes, xmlNode *node) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:3995,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/xpath.c:4008,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xpath.c:4003,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 2
    argNames:
    - ctxt
    - prefix
    argTypes:
    - xmlXPathContext*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4009
      start: 3988
    functionDepth: 0
    functionLinenumber: 3988
    functionLinenumberEnd: 4009
    functionName: xmlXPathNsLookup
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    - xmlHashLookup
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlXPathNsLookup(xmlXPathContext *ctxt, const xmlChar
      *prefix) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:4419,1
    - Dst: xmlXPathCastNodeSetToString
      Src: /src/libxml2/xpath.c:4426,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:4429,1
    - Dst: xmlXPathCastBooleanToString
      Src: /src/libxml2/xpath.c:4431,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:4422,1
    - Dst: xmlXPathCastNumberToString
      Src: /src/libxml2/xpath.c:4434,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:4439,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 16
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlXPathObject*
    constantsTouched: []
    func_position:
      end: 4443
      start: 4414
    functionDepth: 0
    functionLinenumber: 4414
    functionLinenumberEnd: 4443
    functionName: xmlXPathCastToString
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlXPathCastNodeSetToString
    - xmlXPathCastNumberToString
    - xmlXPathCastBooleanToString
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlXPathCastToString(xmlXPathObject *val) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:6771,1
    - Dst: xmlGetNsListSafe
      Src: /src/libxml2/xpath.c:6773,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:6789,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:6775,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlXPathParserContext*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 6793
      start: 6765
    functionDepth: 0
    functionLinenumber: 6765
    functionLinenumberEnd: 6793
    functionName: xmlXPathNextNamespace
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathPErrMemory
    - xmlGetNsListSafe
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlXPathNextNamespace(xmlXPathParserContext *ctxt, xmlNode
      *cur) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7309,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7316,1
    - Dst: xmlXPathCacheNewFloat
      Src: /src/libxml2/xpath.c:7309,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7315,1
    - Dst: xmlXPathCastNodeToString
      Src: /src/libxml2/xpath.c:7313,1
    - Dst: xmlXPathCacheNewFloat
      Src: /src/libxml2/xpath.c:7316,1
    - Dst: xmlUTF8Strlen
      Src: /src/libxml2/xpath.c:7317,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:7318,1
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7322,1
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpath.c:7324,1
    - Dst: xmlXPathCacheNewFloat
      Src: /src/libxml2/xpath.c:7326,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7328,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7326,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7325,1
    - Dst: xmlUTF8Strlen
      Src: /src/libxml2/xpath.c:7327,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7329
      start: 7301
    functionDepth: 0
    functionLinenumber: 7301
    functionLinenumberEnd: 7329
    functionName: xmlXPathStringLengthFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlUTF8Strlen
    - xmlXPathPErrMemory
    - CHECK_ARITY
    - CHECK_TYPE
    - xmlXPathValuePush
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlXPathCastNodeToString
    - xmlXPathCacheNewFloat
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathStringLengthFunction(xmlXPathParserContext *ctxt, int
      nargs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:8032,1
    - Dst: copysign
      Src: /src/libxml2/xpath.c:8038,1
    - Dst: CHECK_TYPE
      Src: /src/libxml2/xpath.c:8034,1
    - Dst: ceil
      Src: /src/libxml2/xpath.c:8040,1
    - Dst: ceil
      Src: /src/libxml2/xpath.c:8038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 8042
      start: 8030
    functionDepth: 0
    functionLinenumber: 8030
    functionLinenumberEnd: 8042
    functionName: xmlXPathCeilingFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - CHECK_TYPE
    - copysign
    - ceil
    - CHECK_ARITY
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathCeilingFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:2637,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:2640,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:2639,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - ns
    argTypes:
    - xmlNs*
    constantsTouched: []
    func_position:
      end: 2642
      start: 2630
    functionDepth: 0
    functionLinenumber: 2630
    functionLinenumberEnd: 2642
    functionName: xmlXPathNodeSetFreeNs
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathNodeSetFreeNs(xmlNs *ns) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetFreeNs
      Src: /src/libxml2/xpath.c:3072,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - cur
    - val
    argTypes:
    - xmlNodeSet*
    - int
    constantsTouched: []
    func_position:
      end: 3077
      start: 3066
    functionDepth: 0
    functionLinenumber: 3066
    functionLinenumberEnd: 3077
    functionName: xmlXPathNodeSetRemove
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetFreeNs
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathNodeSetRemove(xmlNodeSet *cur, int val) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:4400,1
    - Dst: xmlXPathNodeSetSort
      Src: /src/libxml2/xpath.c:4403,1
    - Dst: xmlXPathCastNodeToString
      Src: /src/libxml2/xpath.c:4404,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - ns
    argTypes:
    - xmlNodeSet*
    constantsTouched: []
    func_position:
      end: 4405
      start: 4397
    functionDepth: 0
    functionLinenumber: 4397
    functionLinenumberEnd: 4405
    functionName: xmlXPathCastNodeSetToString
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlXPathNodeSetSort
    - xmlXPathCastNodeToString
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlXPathCastNodeSetToString (xmlNodeSet *ns) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCastNodeToString
      Src: /src/libxml2/xpath.c:7270,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7273,1
    - Dst: xmlXPathCacheWrapString
      Src: /src/libxml2/xpath.c:7273,1
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7277,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7272,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:7278,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:7279,1
    - Dst: xmlXPathCastToString
      Src: /src/libxml2/xpath.c:7281,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:7283,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:7284,1
    - Dst: xmlXPathCacheWrapString
      Src: /src/libxml2/xpath.c:7285,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7287,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7288
      start: 7263
    functionDepth: 0
    functionLinenumber: 7263
    functionLinenumberEnd: 7288
    functionName: xmlXPathStringFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathPErrMemory
    - CHECK_ARITY
    - XP_ERROR
    - xmlXPathValuePush
    - xmlXPathReleaseObject
    - xmlXPathCacheWrapString
    - xmlXPathValuePop
    - xmlXPathCastNodeToString
    - xmlXPathCastToString
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathStringFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xpath.c:2599,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:2607,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:2605,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xpath.c:2612,1
    - Dst: memset
      Src: /src/libxml2/xpath.c:2602,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:2614,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:2615,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - node
    - ns
    argTypes:
    - xmlNodePtr
    - xmlNsPtr
    constantsTouched: []
    func_position:
      end: 2621
      start: 2587
    functionDepth: 0
    functionLinenumber: 2587
    functionLinenumberEnd: 2621
    functionName: xmlXPathNodeSetDupNs
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - memset
    - xmlFree
    - xmlMalloc
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlXPathNodeSetDupNs(xmlNodePtr node, xmlNsPtr ns) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:7869,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:7870,1
    - Dst: xmlXPathCacheNewBoolean
      Src: /src/libxml2/xpath.c:7870,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 7871
      start: 7867
    functionDepth: 0
    functionLinenumber: 7867
    functionLinenumberEnd: 7871
    functionName: xmlXPathFalseFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlXPathCacheNewBoolean
    - xmlXPathValuePush
    - CHECK_ARITY
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathFalseFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompVariableReference
      Src: /src/libxml2/xpath.c:8599,1
    - Dst: IS_ASCII_DIGIT
      Src: /src/libxml2/xpath.c:8610,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:8606,1
    - Dst: xmlXPathCompileExpr
      Src: /src/libxml2/xpath.c:8603,1
    - Dst: IS_ASCII_DIGIT
      Src: /src/libxml2/xpath.c:8610,1
    - Dst: NXT
      Src: /src/libxml2/xpath.c:8610,1
    - Dst: xmlXPathCompNumber
      Src: /src/libxml2/xpath.c:8611,1
    - Dst: xmlXPathCompLiteral
      Src: /src/libxml2/xpath.c:8613,1
    - Dst: xmlXPathCompFunctionCall
      Src: /src/libxml2/xpath.c:8615,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 8618
      start: 8596
    functionDepth: 0
    functionLinenumber: 8596
    functionLinenumberEnd: 8618
    functionName: xmlXPathCompPrimaryExpr
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - IS_ASCII_DIGIT
    - NXT
    - XP_ERROR
    - xmlXPathCompVariableReference
    - xmlXPathCompFunctionCall
    - xmlXPathCompileExpr
    - xmlXPathCompLiteral
    - xmlXPathCompNumber
    linkageType: ''
    returnType: void
    signature: 'static void xmlXPathCompPrimaryExpr(xmlXPathParserContextPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARITY
      Src: /src/libxml2/xpath.c:6885,1
    - Dst: XP_ERROR
      Src: /src/libxml2/xpath.c:6890,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:6887,1
    - Dst: xmlXPathCacheNewFloat
      Src: /src/libxml2/xpath.c:6887,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContext*
    - int
    constantsTouched: []
    func_position:
      end: 6892
      start: 6883
    functionDepth: 0
    functionLinenumber: 6883
    functionLinenumberEnd: 6892
    functionName: xmlXPathPositionFunction
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - XP_ERROR
    - xmlXPathValuePush
    - CHECK_ARITY
    - xmlXPathCacheNewFloat
    linkageType: ''
    returnType: void
    signature: 'void xmlXPathPositionFunction(xmlXPathParserContext *ctxt, int nargs) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlScanName
      Src: /src/libxml2/xpath.c:8157,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xpath.c:8164,1
    - Dst: XP_ERRORNULL
      Src: /src/libxml2/xpath.c:8159,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:8166,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContext*
    constantsTouched: []
    func_position:
      end: 8169
      start: 8150
    functionDepth: 0
    functionLinenumber: 8150
    functionLinenumberEnd: 8169
    functionName: xmlXPathParseName
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - XP_ERRORNULL
    - xmlXPathPErrMemory
    - xmlScanName
    - xmlStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlXPathParseName(xmlXPathParserContext *ctxt) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCastNodeToString
      Src: /src/libxml2/xpath.c:5368,1
    - Dst: xmlFree
      Src: /src/libxml2/xpath.c:5371,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/xpath.c:5370,1
    - Dst: xmlXPathCacheNewString
      Src: /src/libxml2/xpath.c:5370,1
    - Dst: xmlXPathNumberFunction
      Src: /src/libxml2/xpath.c:5372,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/xpath.c:5374,1
    - Dst: xmlXPathReleaseObject
      Src: /src/libxml2/xpath.c:5376,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxml2/xpath.c:5377,1
    - Dst: xmlXPathPErrMemory
      Src: /src/libxml2/xpath.c:5390,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 4
    argNames:
    - ctxt
    - arg
    - f
    - neq
    argTypes:
    - xmlXPathParserContextPtr
    - xmlXPathObjectPtr
    - double
    - int
    constantsTouched: []
    func_position:
      end: 5396
      start: 5352
    functionDepth: 0
    functionLinenumber: 5352
    functionLinenumberEnd: 5396
    functionName: xmlXPathEqualNodeSetFloat
    functionSourceFile: /src/libxml2/xpath.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathPErrMemory
    - xmlXPathIsNaN
    - xmlXPathNumberFunction
    - xmlXPathValuePush
    - xmlXPathReleaseObject
    - xmlXPathValuePop
    - xmlXPathCastNodeToString
    - xmlXPathCacheNewString
    linkageType: ''
    returnType: int
    signature: 'static int xmlXPathEqualNodeSetFloat(xmlXPathParserContextPtr ctxt,
      xmlXPathObjectPtr arg, double f, int neq) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/runxmlconf.c:66,1
    - Dst: snprintf
      Src: /src/libxml2/runxmlconf.c:69,1
    - Dst: xmlStrdup
      Src: /src/libxml2/runxmlconf.c:70,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - dir
    - path
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: composeDir
    functionSourceFile: /src/libxml2/runxmlconf.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - snprintf
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *composeDir(const xmlChar *dir, const xmlChar *path) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libxml2/runxmlconf.c:116,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - error
    argTypes:
    - void*
    - xmlError*
    constantsTouched: []
    func_position:
      end: 132
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 132
    functionName: testErrorHandler
    functionSourceFile: /src/libxml2/runxmlconf.c
    functionUses: []
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: 'static void testErrorHandler(void *userData ATTRIBUTE_UNUSED, const
      xmlError *error) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/runxmlconf.c:169,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:171,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:178,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/runxmlconf.c:175,1
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/runxmlconf.c:176,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:185,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runxmlconf.c:190,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/runxmlconf.c:192,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - id
    - filename
    - options
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 194
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 194
    functionName: xmlconfTestInvalid
    functionSourceFile: /src/libxml2/runxmlconf.c
    functionUses: []
    functionsReached:
    - xmlCtxtReadFile
    - test_log
    - xmlCtxtSetErrorHandler
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int xmlconfTestInvalid(const char *id, const char *filename,
      int options) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/runxmlconf.c:202,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:211,1
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/runxmlconf.c:209,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/runxmlconf.c:208,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:204,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:218,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runxmlconf.c:223,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/runxmlconf.c:225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - id
    - filename
    - options
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 227
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 227
    functionName: xmlconfTestValid
    functionSourceFile: /src/libxml2/runxmlconf.c
    functionUses: []
    functionsReached:
    - xmlCtxtReadFile
    - test_log
    - xmlCtxtSetErrorHandler
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int xmlconfTestValid(const char *id, const char *filename,
      int options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/runxmlconf.c:269,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runxmlconf.c:276,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:273,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/runxmlconf.c:270,1
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/runxmlconf.c:271,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/runxmlconf.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - id
    - filename
    - options
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 281
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 281
    functionName: xmlconfTestNotWF
    functionSourceFile: /src/libxml2/runxmlconf.c
    functionUses: []
    functionsReached:
    - xmlCtxtReadFile
    - test_log
    - xmlCtxtSetErrorHandler
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int xmlconfTestNotWF(const char *id, const char *filename,
      int options) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetProp
      Src: /src/libxml2/runxmlconf.c:442,1
    - Dst: xmlFree
      Src: /src/libxml2/runxmlconf.c:447,1
    - Dst: printf
      Src: /src/libxml2/runxmlconf.c:446,1
    - Dst: xmlconfTestCases
      Src: /src/libxml2/runxmlconf.c:455,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runxmlconf.c:454,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runxmlconf.c:456,1
    - Dst: xmlconfTestItem
      Src: /src/libxml2/runxmlconf.c:457,1
    - Dst: fprintf
      Src: /src/libxml2/runxmlconf.c:461,1
    - Dst: printf
      Src: /src/libxml2/runxmlconf.c:468,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - doc
    - cur
    - level
    argTypes:
    - xmlDocPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 471
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 471
    functionName: xmlconfTestCases
    functionSourceFile: /src/libxml2/runxmlconf.c
    functionUses: []
    functionsReached:
    - xmlFree
    - fprintf
    - xmlconfTestCases
    - xmlStrEqual
    - xmlGetProp
    - printf
    - xmlconfTestItem
    linkageType: ''
    returnType: int
    signature: 'static int xmlconfTestCases(xmlDocPtr doc, xmlNodePtr cur, int level) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runxmlconf.c:501,1
    - Dst: fprintf
      Src: /src/libxml2/runxmlconf.c:503,1
    - Dst: fprintf
      Src: /src/libxml2/runxmlconf.c:502,1
    - Dst: fprintf
      Src: /src/libxml2/runxmlconf.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 505
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 505
    functionName: xmlconfInfo
    functionSourceFile: /src/libxml2/runxmlconf.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlconfInfo(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/libxml2/runxmlconf.c:553,1
    - Dst: initializeLibxml2
      Src: /src/libxml2/runxmlconf.c:559,1
    - Dst: fprintf
      Src: /src/libxml2/runxmlconf.c:555,1
    - Dst: strcmp
      Src: /src/libxml2/runxmlconf.c:562,1
    - Dst: strcmp
      Src: /src/libxml2/runxmlconf.c:564,1
    - Dst: fprintf
      Src: /src/libxml2/runxmlconf.c:568,1
    - Dst: xmlconfTest
      Src: /src/libxml2/runxmlconf.c:576,1
    - Dst: printf
      Src: /src/libxml2/runxmlconf.c:578,1
    - Dst: printf
      Src: /src/libxml2/runxmlconf.c:580,1
    - Dst: printf
      Src: /src/libxml2/runxmlconf.c:586,1
    - Dst: printf
      Src: /src/libxml2/runxmlconf.c:594,1
    - Dst: fclose
      Src: /src/libxml2/runxmlconf.c:602,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/runxmlconf.c:598,1
    - Dst: xmlCleanupParser
      Src: /src/libxml2/runxmlconf.c:599,1
    - Dst: printf
      Src: /src/libxml2/runxmlconf.c:592,1
    - Dst: printf
      Src: /src/libxml2/runxmlconf.c:590,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 604
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 604
    functionName: main
    functionSourceFile: /src/libxml2/runxmlconf.c
    functionUses: []
    functionsReached:
    - fclose
    - xmlconfTest
    - fopen
    - xmlXPathFreeContext
    - strcmp
    - printf
    - initializeLibxml2
    - fprintf
    - xmlCleanupParser
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runxmlconf.c:96,1
    - Dst: fprintf
      Src: /src/libxml2/runxmlconf.c:100,1
    - Dst: vfprintf
      Src: /src/libxml2/runxmlconf.c:98,1
    - Dst: va_start
      Src: /src/libxml2/runxmlconf.c:97,1
    - Dst: va_end
      Src: /src/libxml2/runxmlconf.c:99,1
    - Dst: va_start
      Src: /src/libxml2/runxmlconf.c:104,1
    - Dst: vfprintf
      Src: /src/libxml2/runxmlconf.c:105,1
    - Dst: va_end
      Src: /src/libxml2/runxmlconf.c:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - msg
    - '...'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 108
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 108
    functionName: test_log
    functionSourceFile: /src/libxml2/runxmlconf.c
    functionUses: []
    functionsReached:
    - va_end
    - fprintf
    - vfprintf
    - va_start
    linkageType: ''
    returnType: void
    signature: 'static void test_log(const char *msg, ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/runxmlconf.c:235,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:243,1
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/runxmlconf.c:241,1
    - Dst: xmlGetLastError
      Src: /src/libxml2/runxmlconf.c:248,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/runxmlconf.c:236,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:252,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runxmlconf.c:257,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/runxmlconf.c:259,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - id
    - filename
    - options
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 261
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 261
    functionName: xmlconfTestNotNSWF
    functionSourceFile: /src/libxml2/runxmlconf.c
    functionUses: []
    functionsReached:
    - xmlCtxtReadFile
    - xmlGetLastError
    - test_log
    - xmlCtxtSetErrorHandler
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int xmlconfTestNotNSWF(const char *id, const char *filename,
      int options) '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetProp
      Src: /src/libxml2/runxmlconf.c:303,1
    - Dst: strcmp
      Src: /src/libxml2/runxmlconf.c:309,1
    - Dst: checkTestFile
      Src: /src/libxml2/runxmlconf.c:328,1
    - Dst: xmlGetProp
      Src: /src/libxml2/runxmlconf.c:341,1
    - Dst: xmlGetProp
      Src: /src/libxml2/runxmlconf.c:336,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runxmlconf.c:343,1
    - Dst: xmlStrchr
      Src: /src/libxml2/runxmlconf.c:366,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runxmlconf.c:376,1
    - Dst: xmlconfTestNotNSWF
      Src: /src/libxml2/runxmlconf.c:382,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runxmlconf.c:383,1
    - Dst: xmlFree
      Src: /src/libxml2/runxmlconf.c:418,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runxmlconf.c:389,1
    - Dst: xmlFree
      Src: /src/libxml2/runxmlconf.c:424,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:305,1
    - Dst: xmlGetProp
      Src: /src/libxml2/runxmlconf.c:321,1
    - Dst: composeDir
      Src: /src/libxml2/runxmlconf.c:327,1
    - Dst: xmlGetProp
      Src: /src/libxml2/runxmlconf.c:334,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runxmlconf.c:344,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runxmlconf.c:347,1
    - Dst: xmlconfTestValid
      Src: /src/libxml2/runxmlconf.c:385,1
    - Dst: xmlconfTestInvalid
      Src: /src/libxml2/runxmlconf.c:388,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:390,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runxmlconf.c:404,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:406,1
    - Dst: xmlFree
      Src: /src/libxml2/runxmlconf.c:420,1
    - Dst: xmlFree
      Src: /src/libxml2/runxmlconf.c:414,1
    - Dst: xmlFree
      Src: /src/libxml2/runxmlconf.c:426,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runxmlconf.c:305,1
    - Dst: xmlGetProp
      Src: /src/libxml2/runxmlconf.c:316,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:323,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runxmlconf.c:345,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:348,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runxmlconf.c:355,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runxmlconf.c:356,1
    - Dst: xmlResetLastError
      Src: /src/libxml2/runxmlconf.c:374,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runxmlconf.c:386,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:395,1
    - Dst: xmlFree
      Src: /src/libxml2/runxmlconf.c:422,1
    - Dst: xmlFree
      Src: /src/libxml2/runxmlconf.c:428,1
    - Dst: xmlResetLastError
      Src: /src/libxml2/runxmlconf.c:403,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:310,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:318,1
    - Dst: xmlNodeGetBase
      Src: /src/libxml2/runxmlconf.c:326,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:329,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runxmlconf.c:337,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runxmlconf.c:346,1
    - Dst: test_log
      Src: /src/libxml2/runxmlconf.c:360,1
    - Dst: xmlGetProp
      Src: /src/libxml2/runxmlconf.c:365,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runxmlconf.c:378,1
    - Dst: xmlconfTestNotWF
      Src: /src/libxml2/runxmlconf.c:380,1
    - Dst: xmlFree
      Src: /src/libxml2/runxmlconf.c:416,1
    - Dst: xmlFree
      Src: /src/libxml2/runxmlconf.c:430,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 133
    argCount: 2
    argNames:
    - doc
    - cur
    argTypes:
    - xmlDocPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 432
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 432
    functionName: xmlconfTestItem
    functionSourceFile: /src/libxml2/runxmlconf.c
    functionUses: []
    functionsReached:
    - xmlGetLineNo
    - xmlFree
    - checkTestFile
    - xmlResetLastError
    - xmlconfTestInvalid
    - xmlconfTestValid
    - strcmp
    - xmlconfTestNotNSWF
    - xmlconfTestNotWF
    - xmlNodeGetBase
    - test_log
    - composeDir
    - xmlStrEqual
    - xmlMemUsed
    - xmlGetProp
    - xmlStrchr
    linkageType: ''
    returnType: int
    signature: 'static int xmlconfTestItem(xmlDocPtr doc, xmlNodePtr cur) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetProp
      Src: /src/libxml2/runxmlconf.c:478,1
    - Dst: xmlFree
      Src: /src/libxml2/runxmlconf.c:481,1
    - Dst: printf
      Src: /src/libxml2/runxmlconf.c:483,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runxmlconf.c:488,1
    - Dst: printf
      Src: /src/libxml2/runxmlconf.c:480,1
    - Dst: xmlconfTestCases
      Src: /src/libxml2/runxmlconf.c:489,1
    - Dst: fprintf
      Src: /src/libxml2/runxmlconf.c:491,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - doc
    - cur
    argTypes:
    - xmlDocPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 497
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 497
    functionName: xmlconfTestSuite
    functionSourceFile: /src/libxml2/runxmlconf.c
    functionUses: []
    functionsReached:
    - xmlFree
    - fprintf
    - xmlconfTestCases
    - xmlStrEqual
    - xmlGetProp
    - printf
    linkageType: ''
    returnType: int
    signature: 'static int xmlconfTestSuite(xmlDocPtr doc, xmlNodePtr cur) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libxml2/runxmlconf.c:514,1
    - Dst: xmlconfInfo
      Src: /src/libxml2/runxmlconf.c:518,1
    - Dst: checkTestFile
      Src: /src/libxml2/runxmlconf.c:516,1
    - Dst: fprintf
      Src: /src/libxml2/runxmlconf.c:517,1
    - Dst: xmlReadFile
      Src: /src/libxml2/runxmlconf.c:521,1
    - Dst: fprintf
      Src: /src/libxml2/runxmlconf.c:523,1
    - Dst: xmlconfInfo
      Src: /src/libxml2/runxmlconf.c:524,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/runxmlconf.c:528,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runxmlconf.c:529,1
    - Dst: fprintf
      Src: /src/libxml2/runxmlconf.c:530,1
    - Dst: xmlconfTestSuite
      Src: /src/libxml2/runxmlconf.c:534,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runxmlconf.c:536,1
    - Dst: xmlconfInfo
      Src: /src/libxml2/runxmlconf.c:531,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - dir
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 538
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 538
    functionName: xmlconfTest
    functionSourceFile: /src/libxml2/runxmlconf.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlconfInfo
    - checkTestFile
    - xmlReadFile
    - xmlStrEqual
    - xmlFreeDoc
    - snprintf
    - fprintf
    - xmlconfTestSuite
    linkageType: ''
    returnType: int
    signature: 'static int xmlconfTest(const char *dir) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runxmlconf.c:609,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 611
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 611
    functionName: main
    functionSourceFile: /src/libxml2/runxmlconf.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc ATTRIBUTE_UNUSED, char **argv) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/libxml2/runxmlconf.c:49,1
    - Dst: S_ISREG
      Src: /src/libxml2/runxmlconf.c:56,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: checkTestFile
    functionSourceFile: /src/libxml2/runxmlconf.c
    functionUses: []
    functionsReached:
    - stat
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: 'static int checkTestFile(const char *filename) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMemSetup
      Src: /src/libxml2/runxmlconf.c:138,1
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/runxmlconf.c:141,1
    - Dst: xmlXPathNewContext
      Src: /src/libxml2/runxmlconf.c:144,1
    - Dst: xmlCatalogSetDefaults
      Src: /src/libxml2/runxmlconf.c:142,1
    - Dst: xmlInitParser
      Src: /src/libxml2/runxmlconf.c:139,1
    - Dst: xmlXPathContextSetCache
      Src: /src/libxml2/runxmlconf.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 155
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 155
    functionName: initializeLibxml2
    functionSourceFile: /src/libxml2/runxmlconf.c
    functionUses: []
    functionsReached:
    - xmlXPathNewContext
    - xmlCatalogSetDefaults
    - xmlInitParser
    - xmlInitializeCatalog
    - xmlXPathContextSetCache
    - xmlMemSetup
    linkageType: ''
    returnType: void
    signature: 'static void initializeLibxml2(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompile
      Src: /src/libxml2/runsuite.c:161,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:163,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/runsuite.c:175,1
    - Dst: xmlXPathCompiledEval
      Src: /src/libxml2/runsuite.c:166,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxml2/runsuite.c:167,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - cur
    - xpath
    argTypes:
    - xmlNodePtr
    - char*
    constantsTouched: []
    func_position:
      end: 177
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 177
    functionName: getNext
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeObject
    - xmlXPathCompiledEval
    - fprintf
    - xmlXPathFreeCompExpr
    - xmlXPathCompile
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr getNext(xmlNodePtr cur, const char *xpath) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:265,1
    - Dst: exit
      Src: /src/libxml2/runsuite.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 267
    functionName: fatalError
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: int
    signature: 'static int fatalError(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getString
      Src: /src/libxml2/runsuite.c:586,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:593,1
    - Dst: xsdTestCase
      Src: /src/libxml2/runsuite.c:595,1
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:590,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:589,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:596,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 600
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 600
    functionName: xsdTestSuite
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xmlFree
    - getNext
    - getString
    - xsdTestCase
    - printf
    linkageType: ''
    returnType: int
    signature: 'static int xsdTestSuite(xmlNodePtr cur) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlResetLastError
      Src: /src/libxml2/runsuite.c:759,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:824,1
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:831,1
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:832,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/runsuite.c:833,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:837,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:795,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runsuite.c:761,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:772,1
    - Dst: xmlReadFile
      Src: /src/libxml2/runsuite.c:793,1
    - Dst: xmlSchemaSetValidErrors
      Src: /src/libxml2/runsuite.c:802,1
    - Dst: getString
      Src: /src/libxml2/runsuite.c:784,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runsuite.c:805,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:807,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runsuite.c:816,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:811,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:823,1
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:830,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:838,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:766,1
    - Dst: getString
      Src: /src/libxml2/runsuite.c:762,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:818,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runsuite.c:834,1
    - Dst: xmlResetLastError
      Src: /src/libxml2/runsuite.c:835,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runsuite.c:838,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runsuite.c:836,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:765,1
    - Dst: xmlBuildURI
      Src: /src/libxml2/runsuite.c:770,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:774,1
    - Dst: checkTestFile
      Src: /src/libxml2/runsuite.c:778,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:779,1
    - Dst: xmlSchemaNewValidCtxt
      Src: /src/libxml2/runsuite.c:801,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:788,1
    - Dst: xmlSchemaValidateDoc
      Src: /src/libxml2/runsuite.c:803,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:787,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:780,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 81
    argCount: 4
    argNames:
    - cur
    - schemas
    - spath
    - base
    argTypes:
    - xmlNodePtr
    - xmlSchemaPtr
    - xmlChar*
    - char*
    constantsTouched: []
    func_position:
      end: 842
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 842
    functionName: xstcTestInstance
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xmlGetLineNo
    - xmlFree
    - xmlSchemaSetValidErrors
    - xmlResetLastError
    - checkTestFile
    - xmlSchemaFreeValidCtxt
    - xmlSchemaNewValidCtxt
    - getString
    - xmlSchemaValidateDoc
    - test_log
    - xmlReadFile
    - xmlStrEqual
    - xmlMemUsed
    - xmlFreeDoc
    - fprintf
    - xmlBuildURI
    linkageType: ''
    returnType: int
    signature: 'static int xstcTestInstance(xmlNodePtr cur, xmlSchemaPtr schemas,
      const xmlChar *spath, const char *base) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompile
      Src: /src/libxml2/runsuite.c:189,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:191,1
    - Dst: xmlXPathCompiledEval
      Src: /src/libxml2/runsuite.c:194,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/runsuite.c:202,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxml2/runsuite.c:195,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - cur
    - xpath
    argTypes:
    - xmlNodePtr
    - char*
    constantsTouched: []
    func_position:
      end: 204
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 204
    functionName: getString
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeObject
    - xmlXPathCompiledEval
    - fprintf
    - xmlXPathFreeCompExpr
    - xmlXPathCompile
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *getString(xmlNodePtr cur, const char *xpath) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:277,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:284,1
    - Dst: fatalError
      Src: /src/libxml2/runsuite.c:296,1
    - Dst: xmlBufferLength
      Src: /src/libxml2/runsuite.c:301,1
    - Dst: xmlRelaxNGSetResourceLoader
      Src: /src/libxml2/runsuite.c:304,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:309,1
    - Dst: xmlRelaxNGFree
      Src: /src/libxml2/runsuite.c:318,1
    - Dst: xmlResetLastError
      Src: /src/libxml2/runsuite.c:319,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runsuite.c:320,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:321,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:282,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runsuite.c:289,1
    - Dst: xmlNodeDump
      Src: /src/libxml2/runsuite.c:299,1
    - Dst: xmlRelaxNGNewMemParserCtxt
      Src: /src/libxml2/runsuite.c:300,1
    - Dst: xmlBufferContent
      Src: /src/libxml2/runsuite.c:301,1
    - Dst: xmlRelaxNGParse
      Src: /src/libxml2/runsuite.c:305,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:308,1
    - Dst: xmlRelaxNGSetParserErrors
      Src: /src/libxml2/runsuite.c:302,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/runsuite.c:316,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:285,1
    - Dst: xmlBufferCreate
      Src: /src/libxml2/runsuite.c:293,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:295,1
    - Dst: xmlBufferSetAllocationScheme
      Src: /src/libxml2/runsuite.c:298,1
    - Dst: xmlRelaxNGFreeParserCtxt
      Src: /src/libxml2/runsuite.c:306,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runsuite.c:322,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:322,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 326
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 326
    functionName: xsdIncorrectTestCase
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xmlResetLastError
    - xmlBufferCreate
    - fatalError
    - test_log
    - xmlRelaxNGSetResourceLoader
    - xmlRelaxNGNewMemParserCtxt
    - xmlMemUsed
    - xmlBufferLength
    - getNext
    - xmlNodeDump
    - xmlBufferContent
    - xmlRelaxNGSetParserErrors
    - xmlRelaxNGFreeParserCtxt
    - xmlRelaxNGParse
    - xmlBufferFree
    - xmlGetLineNo
    - xmlBufferSetAllocationScheme
    - xmlRelaxNGFree
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int xsdIncorrectTestCase(xmlNodePtr cur) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadFile
      Src: /src/libxml2/runsuite.c:609,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runsuite.c:617,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:611,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/runsuite.c:616,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:614,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:618,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:623,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runsuite.c:624,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:625,1
    - Dst: xsdTestSuite
      Src: /src/libxml2/runsuite.c:630,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:631,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runsuite.c:636,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 638
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 638
    functionName: xsdTest
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - getNext
    - printf
    - xmlReadFile
    - xmlStrEqual
    - xmlFreeDoc
    - xsdTestSuite
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int xsdTest(void) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlMemUsed
      Src: /src/libxml2/runsuite.c:856,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:867,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:868,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:881,1
    - Dst: xmlSchemaSetParserErrors
      Src: /src/libxml2/runsuite.c:890,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:895,1
    - Dst: strstr
      Src: /src/libxml2/runsuite.c:900,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:901,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:907,1
    - Dst: xstcTestInstance
      Src: /src/libxml2/runsuite.c:910,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runsuite.c:921,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:936,1
    - Dst: xmlResetLastError
      Src: /src/libxml2/runsuite.c:854,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:861,1
    - Dst: xmlSchemaFreeParserCtxt
      Src: /src/libxml2/runsuite.c:927,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:929,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:956,1
    - Dst: xmlSchemaSetParserErrors
      Src: /src/libxml2/runsuite.c:924,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runsuite.c:956,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:955,1
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:951,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:860,1
    - Dst: xmlBuildURI
      Src: /src/libxml2/runsuite.c:865,1
    - Dst: checkTestFile
      Src: /src/libxml2/runsuite.c:872,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:873,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:874,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runsuite.c:887,1
    - Dst: xmlSchemaParse
      Src: /src/libxml2/runsuite.c:892,1
    - Dst: xmlSchemaFreeParserCtxt
      Src: /src/libxml2/runsuite.c:893,1
    - Dst: getString
      Src: /src/libxml2/runsuite.c:878,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:882,1
    - Dst: xmlSchemaNewParserCtxt
      Src: /src/libxml2/runsuite.c:923,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:943,1
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:950,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runsuite.c:954,1
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:949,1
    - Dst: xmlSchemaNewParserCtxt
      Src: /src/libxml2/runsuite.c:889,1
    - Dst: getString
      Src: /src/libxml2/runsuite.c:857,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:942,1
    - Dst: xmlResetLastError
      Src: /src/libxml2/runsuite.c:953,1
    - Dst: strstr
      Src: /src/libxml2/runsuite.c:934,1
    - Dst: xmlSchemaParse
      Src: /src/libxml2/runsuite.c:926,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/runsuite.c:952,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:918,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 103
    argCount: 2
    argNames:
    - cur
    - base
    argTypes:
    - xmlNodePtr
    - char*
    constantsTouched: []
    func_position:
      end: 960
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 960
    functionName: xstcTestGroup
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xmlGetLineNo
    - xmlFree
    - xmlResetLastError
    - checkTestFile
    - xmlSchemaSetParserErrors
    - getString
    - getNext
    - xstcTestInstance
    - test_log
    - xmlSchemaFree
    - xmlStrEqual
    - xmlMemUsed
    - xmlSchemaNewParserCtxt
    - xmlSchemaParse
    - xmlSchemaFreeParserCtxt
    - strstr
    - xmlBuildURI
    linkageType: ''
    returnType: int
    signature: 'static int xstcTestGroup(xmlNodePtr cur, const char *base) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:1026,1
    - Dst: initializeLibxml2
      Src: /src/libxml2/runsuite.c:1030,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:1046,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:1059,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:1061,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:1071,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:1088,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:1106,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:1109,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:1115,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/runsuite.c:1150,1
    - Dst: fopen
      Src: /src/libxml2/runsuite.c:1024,1
    - Dst: rngTest2
      Src: /src/libxml2/runsuite.c:1069,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:1147,1
    - Dst: strcmp
      Src: /src/libxml2/runsuite.c:1032,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:1041,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:1049,1
    - Dst: xstcMetadata
      Src: /src/libxml2/runsuite.c:1085,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:1091,1
    - Dst: xstcMetadata
      Src: /src/libxml2/runsuite.c:1103,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:1073,1
    - Dst: xstcMetadata
      Src: /src/libxml2/runsuite.c:1124,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:1127,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:1143,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:1130,1
    - Dst: xsdTest
      Src: /src/libxml2/runsuite.c:1039,1
    - Dst: rngTest1
      Src: /src/libxml2/runsuite.c:1057,1
    - Dst: xmlCleanupParser
      Src: /src/libxml2/runsuite.c:1151,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:1136,1
    - Dst: fclose
      Src: /src/libxml2/runsuite.c:1154,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 124
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 1156
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1156
    functionName: main
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xsdTest
    - fclose
    - fopen
    - xmlXPathFreeContext
    - rngTest1
    - strcmp
    - printf
    - initializeLibxml2
    - rngTest2
    - xstcMetadata
    - fprintf
    - xmlCleanupParser
    linkageType: ''
    returnType: int
    signature: 'int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getString
      Src: /src/libxml2/runsuite.c:643,1
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:647,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:646,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:651,1
    - Dst: getString
      Src: /src/libxml2/runsuite.c:649,1
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:652,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:656,1
    - Dst: xsdTestSuite
      Src: /src/libxml2/runsuite.c:658,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:659,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 663
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 663
    functionName: rngTestSuite
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xmlFree
    - getNext
    - getString
    - xsdTestSuite
    - printf
    linkageType: ''
    returnType: int
    signature: 'static int rngTestSuite(xmlNodePtr cur) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadFile
      Src: /src/libxml2/runsuite.c:672,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:674,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/runsuite.c:679,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runsuite.c:680,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:677,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:681,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:686,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runsuite.c:687,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:688,1
    - Dst: rngTestSuite
      Src: /src/libxml2/runsuite.c:693,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:694,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runsuite.c:699,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 701
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 701
    functionName: rngTest1
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - getNext
    - printf
    - xmlReadFile
    - xmlStrEqual
    - rngTestSuite
    - xmlFreeDoc
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int rngTest1(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadFile
      Src: /src/libxml2/runsuite.c:710,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:715,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runsuite.c:718,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:712,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/runsuite.c:717,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:719,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:724,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runsuite.c:725,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:726,1
    - Dst: xsdTestSuite
      Src: /src/libxml2/runsuite.c:731,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:732,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runsuite.c:737,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 739
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 739
    functionName: rngTest2
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - getNext
    - printf
    - xmlReadFile
    - xmlStrEqual
    - xmlFreeDoc
    - xsdTestSuite
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int rngTest2(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:1160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 1161
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1161
    functionName: main
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMemSetup
      Src: /src/libxml2/runsuite.c:121,1
    - Dst: xmlXPathContextSetCache
      Src: /src/libxml2/runsuite.c:133,1
    - Dst: xmlInitParser
      Src: /src/libxml2/runsuite.c:122,1
    - Dst: xmlXPathNewContext
      Src: /src/libxml2/runsuite.c:123,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxml2/runsuite.c:135,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxml2/runsuite.c:136,1
    - Dst: xmlSetGenericErrorFunc
      Src: /src/libxml2/runsuite.c:138,1
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/runsuite.c:140,1
    - Dst: xmlCatalogSetDefaults
      Src: /src/libxml2/runsuite.c:141,1
    - Dst: xmlSchemaInitTypes
      Src: /src/libxml2/runsuite.c:144,1
    - Dst: xmlRelaxNGInitTypes
      Src: /src/libxml2/runsuite.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 149
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 149
    functionName: initializeLibxml2
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xmlXPathNewContext
    - xmlSetGenericErrorFunc
    - xmlCatalogSetDefaults
    - xmlInitParser
    - xmlInitializeCatalog
    - xmlRelaxNGInitTypes
    - xmlSchemaInitTypes
    - xmlXPathRegisterNs
    - xmlXPathContextSetCache
    - xmlMemSetup
    linkageType: ''
    returnType: void
    signature: 'static void initializeLibxml2(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadFile
      Src: /src/libxml2/runsuite.c:970,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:978,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/runsuite.c:976,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:972,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runsuite.c:977,1
    - Dst: xmlGetProp
      Src: /src/libxml2/runsuite.c:981,1
    - Dst: xmlStrdup
      Src: /src/libxml2/runsuite.c:983,1
    - Dst: xmlGetProp
      Src: /src/libxml2/runsuite.c:985,1
    - Dst: xmlStrdup
      Src: /src/libxml2/runsuite.c:987,1
    - Dst: printf
      Src: /src/libxml2/runsuite.c:989,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:993,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/runsuite.c:994,1
    - Dst: xstcTestGroup
      Src: /src/libxml2/runsuite.c:1000,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:1001,1
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:990,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:995,1
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:991,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runsuite.c:1005,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - metadata
    - base
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1007
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 1007
    functionName: xstcMetadata
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlFree
    - getNext
    - printf
    - xmlStrdup
    - xmlReadFile
    - xmlStrEqual
    - xstcTestGroup
    - xmlFreeDoc
    - xmlGetProp
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int xstcMetadata(const char *metadata, const char *base) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/libxml2/runsuite.c:44,1
    - Dst: S_ISREG
      Src: /src/libxml2/runsuite.c:51,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: checkTestFile
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - stat
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: 'static int checkTestFile(const char *filename) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:81,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:85,1
    - Dst: vfprintf
      Src: /src/libxml2/runsuite.c:83,1
    - Dst: va_start
      Src: /src/libxml2/runsuite.c:82,1
    - Dst: va_end
      Src: /src/libxml2/runsuite.c:84,1
    - Dst: va_start
      Src: /src/libxml2/runsuite.c:89,1
    - Dst: vfprintf
      Src: /src/libxml2/runsuite.c:90,1
    - Dst: va_end
      Src: /src/libxml2/runsuite.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - msg
    - '...'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: test_log
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - va_end
    - fprintf
    - vfprintf
    - va_start
    linkageType: ''
    returnType: void
    signature: 'static void test_log(const char *msg, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - name
    - content
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 241
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 241
    functionName: addEntity
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int addEntity(char *name, char *content) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/runsuite.c:331,1
    - Dst: snprintf
      Src: /src/libxml2/runsuite.c:334,1
    - Dst: xmlStrdup
      Src: /src/libxml2/runsuite.c:335,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - dir
    - path
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 336
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 336
    functionName: composeDir
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - snprintf
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *composeDir(const xmlChar *dir, const xmlChar *path) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getString
      Src: /src/libxml2/runsuite.c:379,1
    - Dst: installResources
      Src: /src/libxml2/runsuite.c:390,1
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:383,1
    - Dst: composeDir
      Src: /src/libxml2/runsuite.c:382,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:388,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:392,1
    - Dst: installDirs
      Src: /src/libxml2/runsuite.c:394,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:395,1
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:397,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - tst
    - base
    argTypes:
    - xmlNodePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 398
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 398
    functionName: installDirs
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xmlFree
    - getNext
    - getString
    - installDirs
    - installResources
    - composeDir
    linkageType: ''
    returnType: void
    signature: 'static void installDirs(xmlNodePtr tst, const xmlChar *base) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/runsuite.c:102,1
    - Dst: vsnprintf
      Src: /src/libxml2/runsuite.c:103,1
    - Dst: va_end
      Src: /src/libxml2/runsuite.c:106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 115
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 115
    functionName: testErrorHandler
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: 'static void testErrorHandler(void *ctx ATTRIBUTE_UNUSED, const char
      *msg, ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:226,1
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 231
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 231
    functionName: resetEntities
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void resetEntities(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/runsuite.c:252,1
    - Dst: xmlNewInputFromString
      Src: /src/libxml2/runsuite.c:253,1
    - Dst: xmlNewInputFromUrl
      Src: /src/libxml2/runsuite.c:260,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 6
    argNames:
    - ATTRIBUTE_UNUSED
    - URL
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - out
    argTypes:
    - void*
    - char*
    - char*
    - xmlResourceType
    - xmlParserInputFlags
    - xmlParserInputPtr*
    constantsTouched: []
    func_position:
      end: 261
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 261
    functionName: testResourceLoader
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xmlNewInputFromString
    - strcmp
    - xmlNewInputFromUrl
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'static xmlParserErrors testResourceLoader(void *vctxt ATTRIBUTE_UNUSED,
      const char *URL, const char *ID ATTRIBUTE_UNUSED, xmlResourceType type ATTRIBUTE_UNUSED,
      xmlParserInputFlags flags ATTRIBUTE_UNUSED, xmlParserInputPtr *out) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufferCreate
      Src: /src/libxml2/runsuite.c:344,1
    - Dst: fatalError
      Src: /src/libxml2/runsuite.c:347,1
    - Dst: xmlNodeDump
      Src: /src/libxml2/runsuite.c:350,1
    - Dst: xmlBufferSetAllocationScheme
      Src: /src/libxml2/runsuite.c:349,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:346,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:353,1
    - Dst: xmlBufferEmpty
      Src: /src/libxml2/runsuite.c:355,1
    - Dst: xmlNodeDump
      Src: /src/libxml2/runsuite.c:356,1
    - Dst: getString
      Src: /src/libxml2/runsuite.c:357,1
    - Dst: xmlStrdup
      Src: /src/libxml2/runsuite.c:358,1
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:361,1
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:365,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/runsuite.c:371,1
    - Dst: addEntity
      Src: /src/libxml2/runsuite.c:362,1
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:364,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:368,1
    - Dst: xmlBufferContent
      Src: /src/libxml2/runsuite.c:358,1
    - Dst: composeDir
      Src: /src/libxml2/runsuite.c:360,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - tst
    - base
    argTypes:
    - xmlNodePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 372
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 372
    functionName: installResources
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlBufferCreate
    - getNext
    - getString
    - fatalError
    - xmlStrdup
    - xmlNodeDump
    - xmlBufferContent
    - addEntity
    - composeDir
    - xmlBufferSetAllocationScheme
    - fprintf
    - xmlBufferEmpty
    - xmlBufferFree
    linkageType: ''
    returnType: void
    signature: 'static void installResources(xmlNodePtr tst, const xmlChar *base) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: installDirs
      Src: /src/libxml2/runsuite.c:416,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:428,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:549,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:525,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runsuite.c:509,1
    - Dst: installResources
      Src: /src/libxml2/runsuite.c:420,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:441,1
    - Dst: xmlBufferSetAllocationScheme
      Src: /src/libxml2/runsuite.c:444,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:470,1
    - Dst: xmlBufferLength
      Src: /src/libxml2/runsuite.c:536,1
    - Dst: xmlResetLastError
      Src: /src/libxml2/runsuite.c:559,1
    - Dst: xmlNodeDump
      Src: /src/libxml2/runsuite.c:529,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:566,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runsuite.c:577,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:509,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:501,1
    - Dst: xmlRelaxNGFreeValidCtxt
      Src: /src/libxml2/runsuite.c:547,1
    - Dst: xmlBufferContent
      Src: /src/libxml2/runsuite.c:535,1
    - Dst: xmlNodeDump
      Src: /src/libxml2/runsuite.c:445,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runsuite.c:481,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:577,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:508,1
    - Dst: fatalError
      Src: /src/libxml2/runsuite.c:442,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:464,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runsuite.c:504,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:520,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runsuite.c:560,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:576,1
    - Dst: xmlBufferCreate
      Src: /src/libxml2/runsuite.c:439,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:496,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:538,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:553,1
    - Dst: xmlRelaxNGValidateDoc
      Src: /src/libxml2/runsuite.c:546,1
    - Dst: resetEntities
      Src: /src/libxml2/runsuite.c:411,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:430,1
    - Dst: xmlBufferLength
      Src: /src/libxml2/runsuite.c:447,1
    - Dst: xmlRelaxNGSetResourceLoader
      Src: /src/libxml2/runsuite.c:450,1
    - Dst: xmlBufferLength
      Src: /src/libxml2/runsuite.c:483,1
    - Dst: xmlRelaxNGFree
      Src: /src/libxml2/runsuite.c:573,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runsuite.c:575,1
    - Dst: xmlRelaxNGFreeValidCtxt
      Src: /src/libxml2/runsuite.c:494,1
    - Dst: xmlBufferContent
      Src: /src/libxml2/runsuite.c:447,1
    - Dst: xmlBufferContent
      Src: /src/libxml2/runsuite.c:482,1
    - Dst: xmlBufferEmpty
      Src: /src/libxml2/runsuite.c:528,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runsuite.c:507,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:550,1
    - Dst: xsdIncorrectTestCase
      Src: /src/libxml2/runsuite.c:425,1
    - Dst: xmlRelaxNGFreeParserCtxt
      Src: /src/libxml2/runsuite.c:452,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:455,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:485,1
    - Dst: xmlFree
      Src: /src/libxml2/runsuite.c:514,1
    - Dst: xmlBufferAdd
      Src: /src/libxml2/runsuite.c:475,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:515,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:414,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:431,1
    - Dst: xmlRelaxNGValidateDoc
      Src: /src/libxml2/runsuite.c:493,1
    - Dst: xmlBufferEmpty
      Src: /src/libxml2/runsuite.c:473,1
    - Dst: xmlRelaxNGSetValidErrors
      Src: /src/libxml2/runsuite.c:544,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:418,1
    - Dst: xmlRelaxNGParse
      Src: /src/libxml2/runsuite.c:451,1
    - Dst: xmlResetLastError
      Src: /src/libxml2/runsuite.c:506,1
    - Dst: xmlRelaxNGNewValidCtxt
      Src: /src/libxml2/runsuite.c:543,1
    - Dst: xmlReadMemory
      Src: /src/libxml2/runsuite.c:535,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:500,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:539,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:423,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:467,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:497,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runsuite.c:435,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:524,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:554,1
    - Dst: xmlGetProp
      Src: /src/libxml2/runsuite.c:466,1
    - Dst: fprintf
      Src: /src/libxml2/runsuite.c:469,1
    - Dst: xmlNodeDump
      Src: /src/libxml2/runsuite.c:476,1
    - Dst: getNext
      Src: /src/libxml2/runsuite.c:522,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runsuite.c:562,1
    - Dst: xmlResetLastError
      Src: /src/libxml2/runsuite.c:574,1
    - Dst: xmlRelaxNGNewMemParserCtxt
      Src: /src/libxml2/runsuite.c:446,1
    - Dst: xmlRelaxNGSetParserErrors
      Src: /src/libxml2/runsuite.c:448,1
    - Dst: xmlRelaxNGNewValidCtxt
      Src: /src/libxml2/runsuite.c:490,1
    - Dst: xmlRelaxNGSetValidErrors
      Src: /src/libxml2/runsuite.c:491,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:562,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/runsuite.c:571,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/runsuite.c:557,1
    - Dst: xmlMemUsed
      Src: /src/libxml2/runsuite.c:534,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:456,1
    - Dst: xmlReadMemory
      Src: /src/libxml2/runsuite.c:482,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/runsuite.c:486,1
    - Dst: test_log
      Src: /src/libxml2/runsuite.c:561,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 167
    argCount: 1
    argNames:
    - tst
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 581
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 581
    functionName: xsdTestCase
    functionSourceFile: /src/libxml2/runsuite.c
    functionUses: []
    functionsReached:
    - xmlResetLastError
    - xmlReadMemory
    - xmlBufferCreate
    - fatalError
    - installDirs
    - test_log
    - xmlRelaxNGSetResourceLoader
    - xmlRelaxNGNewMemParserCtxt
    - xmlMemUsed
    - xmlFreeDoc
    - xmlBufferEmpty
    - xmlRelaxNGSetValidErrors
    - xmlBufferLength
    - getNext
    - xmlNodeDump
    - xmlBufferContent
    - installResources
    - xmlRelaxNGSetParserErrors
    - xmlRelaxNGFreeParserCtxt
    - xmlRelaxNGParse
    - xmlBufferFree
    - xmlGetLineNo
    - xmlFree
    - xmlRelaxNGFreeValidCtxt
    - xmlRelaxNGValidateDoc
    - xmlBufferAdd
    - xmlBufferSetAllocationScheme
    - xmlRelaxNGFree
    - xmlRelaxNGNewValidCtxt
    - xsdIncorrectTestCase
    - xmlGetProp
    - fprintf
    - resetEntities
    linkageType: ''
    returnType: int
    signature: 'static int xsdTestCase(xmlNodePtr tst) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxml2/testdict.c:102,1
    - Dst: printf
      Src: /src/libxml2/testdict.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: print_strings
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void print_strings(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:806,1
    - Dst: testall_hash
      Src: /src/libxml2/testdict.c:809,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:810,1
    - Dst: xmlCleanupParser
      Src: /src/libxml2/testdict.c:814,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 816
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 816
    functionName: main
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached:
    - testall_hash
    - fprintf
    - xmlCleanupParser
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pool_new
      Src: /src/libxml2/testdict.c:712,1
    - Dst: xmlHashCreateDict
      Src: /src/libxml2/testdict.c:707,1
    - Dst: pool_bulk_insert
      Src: /src/libxml2/testdict.c:720,1
    - Dst: pool_bulk_lookup
      Src: /src/libxml2/testdict.c:728,1
    - Dst: my_rand
      Src: /src/libxml2/testdict.c:720,1
    - Dst: pool_reset
      Src: /src/libxml2/testdict.c:727,1
    - Dst: pool_bulk_remove
      Src: /src/libxml2/testdict.c:740,1
    - Dst: my_rand
      Src: /src/libxml2/testdict.c:740,1
    - Dst: pool_reset
      Src: /src/libxml2/testdict.c:747,1
    - Dst: pool_free
      Src: /src/libxml2/testdict.c:760,1
    - Dst: xmlDictFree
      Src: /src/libxml2/testdict.c:763,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:729,1
    - Dst: pool_reset
      Src: /src/libxml2/testdict.c:734,1
    - Dst: pool_done
      Src: /src/libxml2/testdict.c:735,1
    - Dst: pool_bulk_insert
      Src: /src/libxml2/testdict.c:736,1
    - Dst: my_rand
      Src: /src/libxml2/testdict.c:736,1
    - Dst: xmlDictCreate
      Src: /src/libxml2/testdict.c:706,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/testdict.c:709,1
    - Dst: pool_done
      Src: /src/libxml2/testdict.c:715,1
    - Dst: pool_bulk_insert
      Src: /src/libxml2/testdict.c:716,1
    - Dst: my_rand
      Src: /src/libxml2/testdict.c:716,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:721,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:737,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:741,1
    - Dst: pool_reset
      Src: /src/libxml2/testdict.c:754,1
    - Dst: pool_free
      Src: /src/libxml2/testdict.c:761,1
    - Dst: xmlHashFree
      Src: /src/libxml2/testdict.c:762,1
    - Dst: pool_new
      Src: /src/libxml2/testdict.c:711,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:717,1
    - Dst: pool_done
      Src: /src/libxml2/testdict.c:735,1
    - Dst: pool_bulk_lookup
      Src: /src/libxml2/testdict.c:748,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:749,1
    - Dst: pool_bulk_lookup
      Src: /src/libxml2/testdict.c:755,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:756,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 3
    argNames:
    - num_entries
    - num_keys
    - use_dict
    argTypes:
    - size_t
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 766
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 766
    functionName: test_hash
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    - xmlDictCreate
    - pool_new
    - fprintf
    - pool_reset
    - xmlDictFree
    - xmlHashCreate
    - pool_bulk_remove
    - pool_done
    - my_rand
    - pool_bulk_lookup
    - pool_bulk_insert
    - pool_free
    - xmlHashCreateDict
    linkageType: ''
    returnType: int
    signature: 'static int test_hash(size_t num_entries, size_t num_keys, int use_dict) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/testdict.c:52,1
    - Dst: exit
      Src: /src/libxml2/testdict.c:55,1
    - Dst: xmlStrncatNew
      Src: /src/libxml2/testdict.c:59,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:54,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:61,1
    - Dst: exit
      Src: /src/libxml2/testdict.c:62,1
    - Dst: xmlStrlen
      Src: /src/libxml2/testdict.c:64,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:65,1
    - Dst: abort
      Src: /src/libxml2/testdict.c:66,1
    - Dst: xmlStrncatNew
      Src: /src/libxml2/testdict.c:76,1
    - Dst: exit
      Src: /src/libxml2/testdict.c:79,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:78,1
    - Dst: exit
      Src: /src/libxml2/testdict.c:88,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:87,1
    - Dst: xmlStrncatNew
      Src: /src/libxml2/testdict.c:85,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 2
    argNames:
    - strings
    - seeds
    argTypes:
    - xmlChar**
    - char**
    constantsTouched: []
    func_position:
      end: 95
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 95
    functionName: fill_string_pool
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached:
    - xmlStrlen
    - exit
    - xmlStrdup
    - xmlStrncatNew
    - abort
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void fill_string_pool(xmlChar **strings, const char **seeds) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_hash
      Src: /src/libxml2/testdict.c:784,1
    - Dst: test_hash
      Src: /src/libxml2/testdict.c:788,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 794
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 794
    functionName: testall_hash
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached:
    - test_hash
    linkageType: ''
    returnType: int
    signature: 'static int testall_hash(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/testdict.c:404,1
    - Dst: memset
      Src: /src/libxml2/testdict.c:403,1
    - Dst: memset
      Src: /src/libxml2/testdict.c:407,1
    - Dst: memset
      Src: /src/libxml2/testdict.c:409,1
    - Dst: print_strings
      Src: /src/libxml2/testdict.c:414,1
    - Dst: test_subdict
      Src: /src/libxml2/testdict.c:425,1
    - Dst: xmlDictFree
      Src: /src/libxml2/testdict.c:428,1
    - Dst: xmlFree
      Src: /src/libxml2/testdict.c:433,1
    - Dst: exit
      Src: /src/libxml2/testdict.c:420,1
    - Dst: xmlFree
      Src: /src/libxml2/testdict.c:432,1
    - Dst: xmlMalloc
      Src: /src/libxml2/testdict.c:402,1
    - Dst: xmlMalloc
      Src: /src/libxml2/testdict.c:406,1
    - Dst: memset
      Src: /src/libxml2/testdict.c:405,1
    - Dst: xmlMalloc
      Src: /src/libxml2/testdict.c:408,1
    - Dst: fill_string_pool
      Src: /src/libxml2/testdict.c:411,1
    - Dst: xmlFree
      Src: /src/libxml2/testdict.c:431,1
    - Dst: clean_strings
      Src: /src/libxml2/testdict.c:430,1
    - Dst: fill_string_pool
      Src: /src/libxml2/testdict.c:412,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:419,1
    - Dst: xmlDictCreate
      Src: /src/libxml2/testdict.c:417,1
    - Dst: test_dict
      Src: /src/libxml2/testdict.c:422,1
    - Dst: xmlFree
      Src: /src/libxml2/testdict.c:434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 437
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 437
    functionName: testall_dict
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictCreate
    - test_dict
    - fprintf
    - fill_string_pool
    - memset
    - test_subdict
    - exit
    - xmlDictFree
    - print_strings
    - xmlMalloc
    - clean_strings
    linkageType: ''
    returnType: int
    signature: 'static int testall_dict(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: gen_random_string
      Src: /src/libxml2/testdict.c:548,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/testdict.c:552,1
    - Dst: xmlHashUpdateEntry
      Src: /src/libxml2/testdict.c:554,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxml2/testdict.c:558,1
    - Dst: xmlHashUpdateEntry2
      Src: /src/libxml2/testdict.c:560,1
    - Dst: xmlHashAddEntry3
      Src: /src/libxml2/testdict.c:565,1
    - Dst: xmlHashUpdateEntry3
      Src: /src/libxml2/testdict.c:568,1
    - Dst: xmlFree
      Src: /src/libxml2/testdict.c:577,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 3
    argNames:
    - pool
    - hash
    - num
    argTypes:
    - StringPool*
    - xmlHashTablePtr
    - size_t
    constantsTouched: []
    func_position:
      end: 586
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 586
    functionName: pool_bulk_insert
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached:
    - gen_random_string
    - xmlFree
    - xmlHashAddEntry2
    - xmlHashUpdateEntry
    - xmlHashUpdateEntry3
    - xmlHashAddEntry3
    - xmlHashAddEntry
    - xmlHashUpdateEntry2
    linkageType: ''
    returnType: int
    signature: 'static int pool_bulk_insert(StringPool *pool, xmlHashTablePtr hash,
      size_t num) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hash_qlookup
      Src: /src/libxml2/testdict.c:636,1
    - Dst: xmlHashLookup3
      Src: /src/libxml2/testdict.c:646,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/testdict.c:643,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/testdict.c:640,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 4
    argNames:
    - pool
    - hash
    - num
    - existing
    argTypes:
    - StringPool*
    - xmlHashTablePtr
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 665
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 665
    functionName: pool_bulk_lookup
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached:
    - xmlHashLookup2
    - hash_qlookup
    - xmlHashLookup3
    - xmlHashLookup
    linkageType: ''
    returnType: int
    signature: 'static int pool_bulk_lookup(StringPool *pool, xmlHashTablePtr hash,
      size_t num, int existing) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/libxml2/testdict.c:601,1
    - Dst: xmlFree
      Src: /src/libxml2/testdict.c:617,1
    - Dst: xmlStrndup
      Src: /src/libxml2/testdict.c:607,1
    - Dst: xmlHashQLookup3
      Src: /src/libxml2/testdict.c:613,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 3
    argNames:
    - hash
    - names
    - num_keys
    argTypes:
    - xmlHashTable*
    - xmlChar**
    - size_t
    constantsTouched: []
    func_position:
      end: 620
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 620
    functionName: hash_qlookup
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashQLookup3
    - strchr
    - xmlStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *hash_qlookup(xmlHashTable *hash, xmlChar **names,
      size_t num_keys) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashRemoveEntry
      Src: /src/libxml2/testdict.c:678,1
    - Dst: xmlHashRemoveEntry2
      Src: /src/libxml2/testdict.c:681,1
    - Dst: xmlHashRemoveEntry3
      Src: /src/libxml2/testdict.c:684,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 3
    argNames:
    - pool
    - hash
    - num
    argTypes:
    - StringPool*
    - xmlHashTablePtr
    - size_t
    constantsTouched: []
    func_position:
      end: 696
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 696
    functionName: pool_bulk_remove
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached:
    - xmlHashRemoveEntry2
    - xmlHashRemoveEntry3
    - xmlHashRemoveEntry
    linkageType: ''
    returnType: int
    signature: 'static int pool_bulk_remove(StringPool *pool, xmlHashTablePtr hash,
      size_t num) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ()
    - '!= 0'
    argTypes:
    - testall_dict
    constantsTouched: []
    func_position:
      end: 808
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 808
    functionName: if
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: LIBXML_TEST_VERSION
    signature: 'LIBXML_TEST_VERSION if (testall_dict() != 0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/testdict.c:500,1
    - Dst: xmlMalloc
      Src: /src/libxml2/testdict.c:504,1
    - Dst: memset
      Src: /src/libxml2/testdict.c:505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - num_entries
    - num_keys
    - id
    argTypes:
    - size_t
    - size_t
    - xmlChar
    constantsTouched: []
    func_position:
      end: 511
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 511
    functionName: pool_new
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: StringPool*
    signature: 'static StringPool *pool_new(size_t num_entries, size_t num_keys, xmlChar
      id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - StringPool*
    constantsTouched: []
    func_position:
      end: 527
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 527
    functionName: pool_done
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int pool_done(StringPool *pool) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/testdict.c:115,1
    - Dst: xmlFree
      Src: /src/libxml2/testdict.c:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 121
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 121
    functionName: clean_strings
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void clean_strings(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASH_ROL
      Src: /src/libxml2/testdict.c:452,1
    - Dst: HASH_ROL
      Src: /src/libxml2/testdict.c:456,1
    - Dst: HASH_ROL
      Src: /src/libxml2/testdict.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - max
    argTypes:
    - unsigned
    constantsTouched: []
    func_position:
      end: 459
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 459
    functionName: my_rand
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached:
    - HASH_ROL
    linkageType: ''
    returnType: ATTRIBUTE_NO_SANITIZE_INTEGER
    signature: 'ATTRIBUTE_NO_SANITIZE_INTEGER static unsigned my_rand(unsigned max) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/testdict.c:518,1
    - Dst: xmlFree
      Src: /src/libxml2/testdict.c:521,1
    - Dst: xmlFree
      Src: /src/libxml2/testdict.c:520,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pool
    argTypes:
    - StringPool*
    constantsTouched: []
    func_position:
      end: 522
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 522
    functionName: pool_free
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void pool_free(StringPool *pool) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - StringPool*
    constantsTouched: []
    func_position:
      end: 532
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 532
    functionName: pool_reset
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void pool_reset(StringPool *pool) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libxml2/testdict.c:300,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/testdict.c:317,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/testdict.c:307,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:309,1
    - Dst: xmlStrlen
      Src: /src/libxml2/testdict.c:317,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:319,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/testdict.c:327,1
    - Dst: xmlStrlen
      Src: /src/libxml2/testdict.c:327,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:329,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/testdict.c:343,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/testdict.c:356,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:387,1
    - Dst: xmlDictQLookup
      Src: /src/libxml2/testdict.c:385,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/testdict.c:368,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:345,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:369,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:357,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 76
    argCount: 1
    argNames:
    - dict
    argTypes:
    - xmlDict*
    constantsTouched: []
    func_position:
      end: 395
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 395
    functionName: test_dict
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - xmlDictOwns
    - memset
    - xmlStrlen
    - xmlDictQLookup
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int test_dict(xmlDict *dict) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictLookup
      Src: /src/libxml2/testdict.c:170,1
    - Dst: xmlStrlen
      Src: /src/libxml2/testdict.c:170,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/testdict.c:205,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/testdict.c:241,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:242,1
    - Dst: xmlDictQLookup
      Src: /src/libxml2/testdict.c:275,1
    - Dst: xmlDictFree
      Src: /src/libxml2/testdict.c:284,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:277,1
    - Dst: exit
      Src: /src/libxml2/testdict.c:138,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:152,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:200,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:206,1
    - Dst: xmlDictQLookup
      Src: /src/libxml2/testdict.c:276,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:188,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/testdict.c:199,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:172,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:218,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/testdict.c:229,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:230,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:260,1
    - Dst: xmlDictCreateSub
      Src: /src/libxml2/testdict.c:135,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:137,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/testdict.c:150,1
    - Dst: memset
      Src: /src/libxml2/testdict.c:141,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/testdict.c:160,1
    - Dst: xmlStrlen
      Src: /src/libxml2/testdict.c:160,1
    - Dst: fprintf
      Src: /src/libxml2/testdict.c:162,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/testdict.c:186,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/testdict.c:217,1
    - Dst: xmlDictQLookup
      Src: /src/libxml2/testdict.c:258,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 119
    argCount: 1
    argNames:
    - parent
    argTypes:
    - xmlDictPtr
    constantsTouched: []
    func_position:
      end: 286
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 286
    functionName: test_subdict
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - xmlDictOwns
    - xmlDictCreateSub
    - memset
    - xmlStrlen
    - xmlDictQLookup
    - exit
    - xmlDictFree
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int test_subdict(xmlDictPtr parent) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: my_rand
      Src: /src/libxml2/testdict.c:463,1
    - Dst: xmlMalloc
      Src: /src/libxml2/testdict.c:467,1
    - Dst: my_rand
      Src: /src/libxml2/testdict.c:464,1
    - Dst: my_rand
      Src: /src/libxml2/testdict.c:469,1
    - Dst: my_rand
      Src: /src/libxml2/testdict.c:475,1
    - Dst: my_rand
      Src: /src/libxml2/testdict.c:476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - id
    argTypes:
    - xmlChar
    constantsTouched: []
    func_position:
      end: 484
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 484
    functionName: gen_random_string
    functionSourceFile: /src/libxml2/testdict.c
    functionUses: []
    functionsReached:
    - xmlMalloc
    - my_rand
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *gen_random_string(xmlChar id) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeCatalogEntry
      Src: /src/libxml2/catalog.c:372,1
    - Dst: xmlFreeCatalogEntry
      Src: /src/libxml2/catalog.c:376,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 377
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 377
    functionName: xmlFreeCatalogHashEntryList
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlFreeCatalogEntry
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeCatalogHashEntryList(void *payload, const xmlChar
      *name ATTRIBUTE_UNUSED) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetNsProp
      Src: /src/libxml2/catalog.c:1175,1
    - Dst: xmlParseXMLCatalogNodeList
      Src: /src/libxml2/catalog.c:1232,1
    - Dst: xmlParseXMLCatalogOneNode
      Src: /src/libxml2/catalog.c:1197,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1156,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1162,1
    - Dst: xmlCatalogErr
      Src: /src/libxml2/catalog.c:1167,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1164,1
    - Dst: xmlParseXMLCatalogOneNode
      Src: /src/libxml2/catalog.c:1185,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1188,1
    - Dst: xmlParseXMLCatalogOneNode
      Src: /src/libxml2/catalog.c:1189,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1192,1
    - Dst: xmlParseXMLCatalogOneNode
      Src: /src/libxml2/catalog.c:1193,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1196,1
    - Dst: xmlParseXMLCatalogOneNode
      Src: /src/libxml2/catalog.c:1201,1
    - Dst: xmlGetProp
      Src: /src/libxml2/catalog.c:1160,1
    - Dst: xmlGetProp
      Src: /src/libxml2/catalog.c:1174,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:1177,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1178,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:1236,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:1171,1
    - Dst: xmlNewCatalogEntry
      Src: /src/libxml2/catalog.c:1176,1
    - Dst: xmlParseXMLCatalogOneNode
      Src: /src/libxml2/catalog.c:1179,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1181,1
    - Dst: xmlParseXMLCatalogOneNode
      Src: /src/libxml2/catalog.c:1182,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1184,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1204,1
    - Dst: xmlParseXMLCatalogOneNode
      Src: /src/libxml2/catalog.c:1205,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1208,1
    - Dst: xmlParseXMLCatalogOneNode
      Src: /src/libxml2/catalog.c:1209,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1200,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 78
    argCount: 4
    argNames:
    - cur
    - prefer
    - parent
    - cgroup
    argTypes:
    - xmlNodePtr
    - xmlCatalogPrefer
    - xmlCatalogEntryPtr
    - xmlCatalogEntryPtr
    constantsTouched: []
    func_position:
      end: 1237
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1237
    functionName: xmlParseXMLCatalogNode
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetNsProp
    - xmlParseXMLCatalogOneNode
    - xmlCatalogErr
    - xmlNewCatalogEntry
    - xmlStrEqual
    - xmlParseXMLCatalogNodeList
    - xmlGetProp
    linkageType: ''
    returnType: void
    signature: "static void xmlParseXMLCatalogNode(xmlNodePtr cur, xmlCatalogPrefer
      prefer,\t xmlCatalogEntryPtr parent, xmlCatalogEntryPtr cgroup) "
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseSGMLCatalogComment
      Src: /src/libxml2/catalog.c:2251,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2295,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2304,1
    - Dst: xmlParseSGMLCatalogPubid
      Src: /src/libxml2/catalog.c:2326,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2346,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2387,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2422,1
    - Dst: xmlFreeCatalogEntry
      Src: /src/libxml2/catalog.c:2401,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2284,1
    - Dst: xmlStrdup
      Src: /src/libxml2/catalog.c:2244,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/catalog.c:2266,1
    - Dst: xmlParseSGMLCatalogName
      Src: /src/libxml2/catalog.c:2261,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2278,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2280,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2282,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2286,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2290,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2294,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2288,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/catalog.c:2355,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/catalog.c:2399,1
    - Dst: xmlNewCatalogEntry
      Src: /src/libxml2/catalog.c:2397,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2403,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2383,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2268,1
    - Dst: xmlParseSGMLCatalogPubid
      Src: /src/libxml2/catalog.c:2335,1
    - Dst: xmlParseSGMLCatalogPubid
      Src: /src/libxml2/catalog.c:2360,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2381,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2432,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2436,1
    - Dst: xmlNewCatalogEntry
      Src: /src/libxml2/catalog.c:2410,1
    - Dst: xmlFreeCatalogEntry
      Src: /src/libxml2/catalog.c:2414,1
    - Dst: xmlCatalogNormalizePublic
      Src: /src/libxml2/catalog.c:2343,1
    - Dst: xmlExpandCatalog
      Src: /src/libxml2/catalog.c:2421,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2292,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2272,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2274,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2276,1
    - Dst: xmlParseSGMLCatalogName
      Src: /src/libxml2/catalog.c:2296,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2301,1
    - Dst: xmlParseSGMLCatalogName
      Src: /src/libxml2/catalog.c:2316,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/catalog.c:2321,1
    - Dst: xmlParseSGMLCatalogPubid
      Src: /src/libxml2/catalog.c:2370,1
    - Dst: xmlStrdup
      Src: /src/libxml2/catalog.c:2388,1
    - Dst: xmlBuildURI
      Src: /src/libxml2/catalog.c:2393,1
    - Dst: xmlBuildURI
      Src: /src/libxml2/catalog.c:2419,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2430,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2350,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/catalog.c:2412,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 156
    argCount: 4
    argNames:
    - catal
    - value
    - file
    - super
    argTypes:
    - xmlCatalogPtr
    - xmlChar*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2440
      start: 2235
    functionDepth: 0
    functionLinenumber: 2235
    functionLinenumberEnd: 2440
    functionName: xmlParseSGMLCatalog
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeCatalogEntry
    - xmlHashAddEntry
    - xmlExpandCatalog
    - xmlParseSGMLCatalogName
    - xmlStrdup
    - xmlNewCatalogEntry
    - IS_BLANK_CH
    - xmlParseSGMLCatalogComment
    - xmlStrEqual
    - xmlParseSGMLCatalogPubid
    - xmlCatalogNormalizePublic
    - xmlBuildURI
    linkageType: ''
    returnType: int
    signature: "static int xmlParseSGMLCatalog(xmlCatalogPtr catal, const xmlChar
      *value,\t const char *file, int super) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlLoadFileContent
      Src: /src/libxml2/catalog.c:2646,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2655,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2652,1
    - Dst: xmlNewCatalogEntry
      Src: /src/libxml2/catalog.c:2658,1
    - Dst: xmlParseSGMLCatalog
      Src: /src/libxml2/catalog.c:2650,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - catal
    - filename
    argTypes:
    - xmlCatalogPtr
    - char*
    constantsTouched: []
    func_position:
      end: 2670
      start: 2634
    functionDepth: 0
    functionLinenumber: 2634
    functionLinenumberEnd: 2670
    functionName: xmlExpandCatalog
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlLoadFileContent
    - xmlParseSGMLCatalog
    - xmlNewCatalogEntry
    - xmlFree
    linkageType: ''
    returnType: int
    signature: 'static int xmlExpandCatalog(xmlCatalogPtr catal, const char *filename) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/catalog.c:2980,1
    - Dst: xmlRMutexLock
      Src: /src/libxml2/catalog.c:2982,1
    - Dst: xmlCreateNewCatalog
      Src: /src/libxml2/catalog.c:2995,1
    - Dst: xmlIsBlank_ch
      Src: /src/libxml2/catalog.c:3003,1
    - Dst: getenv
      Src: /src/libxml2/catalog.c:2991,1
    - Dst: xmlIsBlank_ch
      Src: /src/libxml2/catalog.c:3007,1
    - Dst: xmlStrndup
      Src: /src/libxml2/catalog.c:3009,1
    - Dst: xmlNewCatalogEntry
      Src: /src/libxml2/catalog.c:3011,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:3015,1
    - Dst: xmlRMutexUnlock
      Src: /src/libxml2/catalog.c:3023,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3026
      start: 2975
    functionDepth: 0
    functionLinenumber: 2975
    functionLinenumberEnd: 3026
    functionName: xmlInitializeCatalog
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrndup
    - xmlIsBlank_ch
    - xmlInitParser
    - xmlCreateNewCatalog
    - xmlRMutexLock
    - xmlNewCatalogEntry
    - getenv
    - xmlRMutexUnlock
    linkageType: ''
    returnType: void
    signature: 'void xmlInitializeCatalog(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCleanupRMutex
      Src: /src/libxml2/catalog.c:3137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3138
      start: 3135
    functionDepth: 0
    functionLinenumber: 3135
    functionLinenumberEnd: 3138
    functionName: xmlCleanupCatalogInternal
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlCleanupRMutex
    linkageType: ''
    returnType: void
    signature: 'void xmlCleanupCatalogInternal(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/catalog.c:3189,1
    - Dst: xmlACatalogResolve
      Src: /src/libxml2/catalog.c:3191,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 2
    argNames:
    - pubID
    - sysID
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3193
      start: 3184
    functionDepth: 0
    functionLinenumber: 3184
    functionLinenumberEnd: 3193
    functionName: xmlCatalogResolve
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlInitializeCatalog
    - xmlACatalogResolve
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlCatalogResolve(const xmlChar *pubID, const xmlChar *sysID) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/catalog.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: xmlCatalogErrMemory
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlRaiseMemoryError
    linkageType: ''
    returnType: void
    signature: 'static void xmlCatalogErrMemory(void) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrncmp
      Src: /src/libxml2/catalog.c:798,1
    - Dst: xmlStrdup
      Src: /src/libxml2/catalog.c:846,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 61
    argCount: 1
    argNames:
    - urn
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 847
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 847
    functionName: xmlCatalogUnWrapURN
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlStrncmp
    - xmlStrdup
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlCatalogUnWrapURN(const xmlChar *urn) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlFetchXMLCatalogFile
      Src: /src/libxml2/catalog.c:1435,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1457,1
    - Dst: xmlGetXMLCatalogEntryType
      Src: /src/libxml2/catalog.c:1440,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1443,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1455,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:1460,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:1462,1
    - Dst: xmlStrdup
      Src: /src/libxml2/catalog.c:1463,1
    - Dst: xmlStrdup
      Src: /src/libxml2/catalog.c:1464,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1473,1
    - Dst: xmlNewCatalogEntry
      Src: /src/libxml2/catalog.c:1476,1
    - Dst: xmlNewCatalogEntry
      Src: /src/libxml2/catalog.c:1479,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/catalog.c:1483,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 50
    argCount: 4
    argNames:
    - catal
    - type
    - orig
    - replace
    argTypes:
    - xmlCatalogEntryPtr
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1489
      start: 1423
    functionDepth: 0
    functionLinenumber: 1423
    functionLinenumberEnd: 1489
    functionName: xmlAddXMLCatalog
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFetchXMLCatalogFile
    - xmlCatalogPrintDebug
    - xmlStrdup
    - xmlNewCatalogEntry
    - xmlStrEqual
    - xmlGetXMLCatalogEntryType
    - xmlHashLookup
    linkageType: ''
    returnType: int
    signature: "static int xmlAddXMLCatalog(xmlCatalogEntryPtr catal, const xmlChar
      *type,\t const xmlChar *orig, const xmlChar *replace) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlAddXMLCatalog
      Src: /src/libxml2/catalog.c:2856,1
    - Dst: xmlGetSGMLCatalogEntryType
      Src: /src/libxml2/catalog.c:2860,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/catalog.c:2867,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/catalog.c:2868,1
    - Dst: xmlNewCatalogEntry
      Src: /src/libxml2/catalog.c:2864,1
    - Dst: xmlFreeCatalogEntry
      Src: /src/libxml2/catalog.c:2870,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 4
    argNames:
    - catal
    - type
    - orig
    - replace
    argTypes:
    - xmlCatalog*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2874
      start: 2846
    functionDepth: 0
    functionLinenumber: 2846
    functionLinenumberEnd: 2874
    functionName: xmlACatalogAdd
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlGetSGMLCatalogEntryType
    - xmlFreeCatalogEntry
    - xmlNewCatalogEntry
    - xmlHashCreate
    - xmlHashAddEntry
    - xmlAddXMLCatalog
    linkageType: ''
    returnType: int
    signature: 'int xmlACatalogAdd(xmlCatalog *catal, const xmlChar * type, const
      xmlChar * orig, const xmlChar * replace) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3326
      start: 3323
    functionDepth: 0
    functionLinenumber: 3323
    functionLinenumberEnd: 3326
    functionName: xmlCatalogGetDefaults
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlCatalogAllow
    signature: 'xmlCatalogAllow xmlCatalogGetDefaults(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/catalog.c:3562,1
    - Dst: snprintf
      Src: /src/libxml2/catalog.c:3579,1
    - Dst: xmlPrintErrorMessage
      Src: /src/libxml2/catalog.c:3565,1
    - Dst: xmlCatalogGetSGMLSystem
      Src: /src/libxml2/catalog.c:3586,1
    - Dst: xmlCatalogListXMLResolve
      Src: /src/libxml2/catalog.c:3577,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 1
    argNames:
    - sysID
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3588
      start: 3555
    functionDepth: 0
    functionLinenumber: 3555
    functionLinenumberEnd: 3588
    functionName: xmlCatalogGetSystem
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlCatalogGetSGMLSystem
    - xmlInitializeCatalog
    - snprintf
    - xmlCatalogListXMLResolve
    - xmlPrintErrorMessage
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlCatalogGetSystem(const xmlChar *sysID) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/catalog.c:3605,1
    - Dst: snprintf
      Src: /src/libxml2/catalog.c:3622,1
    - Dst: xmlPrintErrorMessage
      Src: /src/libxml2/catalog.c:3608,1
    - Dst: xmlCatalogGetSGMLPublic
      Src: /src/libxml2/catalog.c:3629,1
    - Dst: xmlCatalogListXMLResolve
      Src: /src/libxml2/catalog.c:3620,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 1
    argNames:
    - pubID
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3631
      start: 3598
    functionDepth: 0
    functionLinenumber: 3598
    functionLinenumberEnd: 3631
    functionName: xmlCatalogGetPublic
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlCatalogGetSGMLPublic
    - xmlInitializeCatalog
    - snprintf
    - xmlCatalogListXMLResolve
    - xmlPrintErrorMessage
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlCatalogGetPublic(const xmlChar *pubID) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:316,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:322,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:329,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:327,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:319,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:331,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:332,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 333
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 333
    functionName: xmlFreeCatalogEntry
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlCatalogPrintDebug
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeCatalogEntry(void *payload, const xmlChar *name
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeCatalogEntry
      Src: /src/libxml2/catalog.c:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ret
    argTypes:
    - xmlCatalogEntryPtr
    constantsTouched: []
    func_position:
      end: 349
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 349
    functionName: xmlFreeCatalogEntryList
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlFreeCatalogEntry
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeCatalogEntryList(xmlCatalogEntryPtr ret) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:773,1
    - Dst: xmlHashScan
      Src: /src/libxml2/catalog.c:776,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - catal
    argTypes:
    - xmlCatalog*
    constantsTouched: []
    func_position:
      end: 778
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 778
    functionName: xmlConvertSGMLCatalog
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlCatalogPrintDebug
    - xmlHashScan
    linkageType: ''
    returnType: int
    signature: 'int xmlConvertSGMLCatalog(xmlCatalog *catal) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetProp
      Src: /src/libxml2/catalog.c:1089,1
    - Dst: xmlCatalogErr
      Src: /src/libxml2/catalog.c:1098,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:1104,1
    - Dst: xmlGetProp
      Src: /src/libxml2/catalog.c:1096,1
    - Dst: xmlCatalogErr
      Src: /src/libxml2/catalog.c:1091,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:1106,1
    - Dst: xmlNodeGetBase
      Src: /src/libxml2/catalog.c:1110,1
    - Dst: xmlBuildURI
      Src: /src/libxml2/catalog.c:1111,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1115,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1118,1
    - Dst: xmlCatalogErr
      Src: /src/libxml2/catalog.c:1123,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:1133,1
    - Dst: xmlNewCatalogEntry
      Src: /src/libxml2/catalog.c:1121,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:1127,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:1129,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:1131,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 44
    argCount: 7
    argNames:
    - cur
    - type
    - name
    - attrName
    - uriAttrName
    - prefer
    - cgroup
    argTypes:
    - xmlNodePtr
    - xmlCatalogEntryType
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlCatalogPrefer
    - xmlCatalogEntryPtr
    constantsTouched: []
    func_position:
      end: 1135
      start: 1076
    functionDepth: 0
    functionLinenumber: 1076
    functionLinenumberEnd: 1135
    functionName: xmlParseXMLCatalogOneNode
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCatalogPrintDebug
    - xmlCatalogErr
    - xmlNodeGetBase
    - xmlNewCatalogEntry
    - xmlGetProp
    - xmlBuildURI
    linkageType: ''
    returnType: xmlCatalogEntryPtr
    signature: "static xmlCatalogEntryPtr xmlParseXMLCatalogOneNode(xmlNodePtr cur,
      xmlCatalogEntryType type,\t\t\t const xmlChar *name, const xmlChar *attrName,\t\t\t
      const xmlChar *uriAttrName, xmlCatalogPrefer prefer,\t\t\t xmlCatalogEntryPtr
      cgroup) "
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlRMutexLock
      Src: /src/libxml2/catalog.c:1348,1
    - Dst: xmlRMutexUnlock
      Src: /src/libxml2/catalog.c:1368,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/catalog.c:1357,1
    - Dst: xmlRMutexUnlock
      Src: /src/libxml2/catalog.c:1351,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1360,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1372,1
    - Dst: xmlParseXMLCatalogFile
      Src: /src/libxml2/catalog.c:1381,1
    - Dst: xmlRMutexUnlock
      Src: /src/libxml2/catalog.c:1384,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/catalog.c:1396,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1399,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/catalog.c:1401,1
    - Dst: xmlRMutexUnlock
      Src: /src/libxml2/catalog.c:1403,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 1
    argNames:
    - catal
    argTypes:
    - xmlCatalogEntryPtr
    constantsTouched: []
    func_position:
      end: 1405
      start: 1336
    functionDepth: 0
    functionLinenumber: 1336
    functionLinenumberEnd: 1405
    functionName: xmlFetchXMLCatalogFile
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlCatalogPrintDebug
    - xmlRMutexLock
    - xmlHashCreate
    - xmlHashLookup
    - xmlHashAddEntry
    - xmlParseXMLCatalogFile
    - xmlRMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'static int xmlFetchXMLCatalogFile(xmlCatalogEntryPtr catal) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2199,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2203,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2207,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2205,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2201,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2209,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2211,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2213,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2215,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2217,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:2219,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 1
    argNames:
    - name
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2222
      start: 2196
    functionDepth: 0
    functionLinenumber: 2196
    functionLinenumberEnd: 2222
    functionName: xmlGetSGMLCatalogEntryType
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: xmlCatalogEntryType
    signature: 'static xmlCatalogEntryType xmlGetSGMLCatalogEntryType(const xmlChar
      *name) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlLoadFileContent
      Src: /src/libxml2/catalog.c:2589,1
    - Dst: xmlFreeCatalog
      Src: /src/libxml2/catalog.c:2609,1
    - Dst: xmlCreateNewCatalog
      Src: /src/libxml2/catalog.c:2602,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2604,1
    - Dst: xmlParseSGMLCatalog
      Src: /src/libxml2/catalog.c:2607,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2610,1
    - Dst: xmlCreateNewCatalog
      Src: /src/libxml2/catalog.c:2614,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2616,1
    - Dst: xmlNewCatalogEntry
      Src: /src/libxml2/catalog.c:2619,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2622,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2624
      start: 2581
    functionDepth: 0
    functionLinenumber: 2581
    functionLinenumberEnd: 2624
    functionName: xmlLoadACatalog
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlLoadFileContent
    - xmlFreeCatalog
    - xmlFree
    - xmlCreateNewCatalog
    - xmlNewCatalogEntry
    - xmlParseSGMLCatalog
    linkageType: ''
    returnType: xmlCatalog*
    signature: 'xmlCatalog *xmlLoadACatalog(const char *filename) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/catalog.c:3170,1
    - Dst: xmlACatalogResolvePublic
      Src: /src/libxml2/catalog.c:3172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - pubID
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3174
      start: 3165
    functionDepth: 0
    functionLinenumber: 3165
    functionLinenumberEnd: 3174
    functionName: xmlCatalogResolvePublic
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlACatalogResolvePublic
    - xmlInitializeCatalog
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlCatalogResolvePublic(const xmlChar *pubID) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/catalog.c:3300,1
    - Dst: xmlRMutexLock
      Src: /src/libxml2/catalog.c:3302,1
    - Dst: xmlConvertSGMLCatalog
      Src: /src/libxml2/catalog.c:3303,1
    - Dst: xmlRMutexUnlock
      Src: /src/libxml2/catalog.c:3304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3306
      start: 3295
    functionDepth: 0
    functionLinenumber: 3295
    functionLinenumberEnd: 3306
    functionName: xmlCatalogConvert
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlRMutexLock
    - xmlInitializeCatalog
    - xmlConvertSGMLCatalog
    - xmlRMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'int xmlCatalogConvert(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:3530,1
    - Dst: xmlCatalogListXMLResolveURI
      Src: /src/libxml2/catalog.c:3536,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 2
    argNames:
    - catalogs
    - URI
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3540
      start: 3521
    functionDepth: 0
    functionLinenumber: 3521
    functionLinenumberEnd: 3540
    functionName: xmlCatalogLocalResolveURI
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlCatalogPrintDebug
    - xmlCatalogListXMLResolveURI
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlCatalogLocalResolveURI(void *catalogs, const xmlChar *URI) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/catalog.c:3282,1
    - Dst: xmlACatalogRemove
      Src: /src/libxml2/catalog.c:3285,1
    - Dst: xmlRMutexUnlock
      Src: /src/libxml2/catalog.c:3286,1
    - Dst: xmlRMutexLock
      Src: /src/libxml2/catalog.c:3284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3288
      start: 3277
    functionDepth: 0
    functionLinenumber: 3277
    functionLinenumberEnd: 3288
    functionName: xmlCatalogRemove
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlRMutexLock
    - xmlInitializeCatalog
    - xmlACatalogRemove
    - xmlRMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'int xmlCatalogRemove(const xmlChar *value) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:3342,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:3354,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:3350,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:3346,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - allow
    argTypes:
    - xmlCatalogAllow
    constantsTouched: []
    func_position:
      end: 3360
      start: 3337
    functionDepth: 0
    functionLinenumber: 3337
    functionLinenumberEnd: 3360
    functionName: xmlCatalogSetDefaults
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlCatalogPrintDebug
    linkageType: ''
    returnType: void
    signature: 'void xmlCatalogSetDefaults(xmlCatalogAllow allow) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashRemoveEntry
      Src: /src/libxml2/catalog.c:738,1
    - Dst: xmlHashRemoveEntry
      Src: /src/libxml2/catalog.c:745,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 29
    argCount: 3
    argNames:
    - payload
    - data
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 758
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 758
    functionName: xmlCatalogConvertEntry
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlHashRemoveEntry
    linkageType: ''
    returnType: void
    signature: 'static void xmlCatalogConvertEntry(void *payload, void *data, const
      xmlChar *name ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_LETTER
      Src: /src/libxml2/catalog.c:2173,1
    - Dst: xmlStrndup
      Src: /src/libxml2/catalog.c:2186,1
    - Dst: IS_LETTER
      Src: /src/libxml2/catalog.c:2177,1
    - Dst: IS_DIGIT
      Src: /src/libxml2/catalog.c:2177,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 2
    argNames:
    - cur
    - name
    argTypes:
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 2188
      start: 2161
    functionDepth: 0
    functionLinenumber: 2161
    functionLinenumberEnd: 2188
    functionName: xmlParseSGMLCatalogName
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - IS_DIGIT
    - IS_LETTER
    - xmlStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlParseSGMLCatalogName(const xmlChar *cur,
      xmlChar **name) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlCatalogGetSGMLPublic
      Src: /src/libxml2/catalog.c:2522,1
    - Dst: xmlCatalogGetSGMLSystem
      Src: /src/libxml2/catalog.c:2526,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 3
    argNames:
    - catal
    - pubID
    - sysID
    argTypes:
    - xmlCatalogPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2530
      start: 2513
    functionDepth: 0
    functionLinenumber: 2513
    functionLinenumberEnd: 2530
    functionName: xmlCatalogSGMLResolve
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlCatalogGetSGMLSystem
    - xmlCatalogGetSGMLPublic
    linkageType: ''
    returnType: xmlChar*
    signature: "static const xmlChar *xmlCatalogSGMLResolve(xmlCatalogPtr catal, const
      xmlChar *pubID,\t const xmlChar *sysID) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:3492,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:3498,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:3495,1
    - Dst: xmlCatalogListXMLResolve
      Src: /src/libxml2/catalog.c:3506,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 22
    argCount: 3
    argNames:
    - catalogs
    - pubID
    - sysID
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3510
      start: 3481
    functionDepth: 0
    functionLinenumber: 3481
    functionLinenumberEnd: 3510
    functionName: xmlCatalogLocalResolve
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlCatalogPrintDebug
    - xmlCatalogListXMLResolve
    linkageType: ''
    returnType: xmlChar*
    signature: "xmlChar *xmlCatalogLocalResolve(void *catalogs, const xmlChar *pubID,\t
      const xmlChar *sysID) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3413
      start: 3404
    functionDepth: 0
    functionLinenumber: 3404
    functionLinenumberEnd: 3413
    functionName: xmlCatalogSetDebug
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlCatalogSetDebug(int level) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeCatalogEntryList
      Src: /src/libxml2/catalog.c:416,1
    - Dst: xmlHashFree
      Src: /src/libxml2/catalog.c:418,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:419,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - catal
    argTypes:
    - xmlCatalog*
    constantsTouched: []
    func_position:
      end: 420
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 420
    functionName: xmlFreeCatalog
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFree
    - xmlFreeCatalogEntryList
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeCatalog(xmlCatalog *catal) '
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: xmlSetNsProp
      Src: /src/libxml2/catalog.c:549,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:559,1
    - Dst: xmlAddChild
      Src: /src/libxml2/catalog.c:563,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/catalog.c:572,1
    - Dst: xmlAddChild
      Src: /src/libxml2/catalog.c:575,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:579,1
    - Dst: xmlAddChild
      Src: /src/libxml2/catalog.c:587,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:591,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:598,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:610,1
    - Dst: xmlAddChild
      Src: /src/libxml2/catalog.c:538,1
    - Dst: xmlAddChild
      Src: /src/libxml2/catalog.c:569,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:573,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:580,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:585,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:592,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/catalog.c:602,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:604,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:609,1
    - Dst: xmlAddChild
      Src: /src/libxml2/catalog.c:605,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/catalog.c:536,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/catalog.c:543,1
    - Dst: xmlSearchNsByHref
      Src: /src/libxml2/catalog.c:547,1
    - Dst: xmlDumpXMLCatalogNode
      Src: /src/libxml2/catalog.c:562,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:574,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:567,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/catalog.c:584,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:586,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/catalog.c:596,1
    - Dst: xmlAddChild
      Src: /src/libxml2/catalog.c:599,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:603,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/catalog.c:608,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:544,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:537,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:556,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:568,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/catalog.c:566,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/catalog.c:578,1
    - Dst: xmlAddChild
      Src: /src/libxml2/catalog.c:581,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/catalog.c:590,1
    - Dst: xmlAddChild
      Src: /src/libxml2/catalog.c:593,1
    - Dst: xmlSetProp
      Src: /src/libxml2/catalog.c:597,1
    - Dst: xmlAddChild
      Src: /src/libxml2/catalog.c:611,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 69
    argCount: 5
    argNames:
    - catal
    - catalog
    - doc
    - ns
    - cgroup
    argTypes:
    - xmlCatalogEntryPtr
    - xmlNodePtr
    - xmlDocPtr
    - xmlNsPtr
    - xmlCatalogEntryPtr
    constantsTouched: []
    func_position:
      end: 630
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 630
    functionName: xmlDumpXMLCatalogNode
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlSetProp
    - xmlAddChild
    - xmlSetNsProp
    - xmlSearchNsByHref
    - xmlNewDocNode
    - xmlDumpXMLCatalogNode
    linkageType: ''
    returnType: void
    signature: "static void xmlDumpXMLCatalogNode(xmlCatalogEntryPtr catal, xmlNodePtr
      catalog,\t\t xmlDocPtr doc, xmlNsPtr ns, xmlCatalogEntryPtr cgroup) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/libxml2/catalog.c:934,1
    - Dst: xmlCatalogErrMemory
      Src: /src/libxml2/catalog.c:945,1
    - Dst: close
      Src: /src/libxml2/catalog.c:946,1
    - Dst: open
      Src: /src/libxml2/catalog.c:937,1
    - Dst: xmlMalloc
      Src: /src/libxml2/catalog.c:943,1
    - Dst: read
      Src: /src/libxml2/catalog.c:949,1
    - Dst: close
      Src: /src/libxml2/catalog.c:950,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:952,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 958
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 958
    functionName: xmlLoadFileContent
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCatalogErrMemory
    - stat
    - open
    - read
    - xmlMalloc
    - close
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlLoadFileContent(const char *filename) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseCatalogFile
      Src: /src/libxml2/catalog.c:1280,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1293,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/catalog.c:1292,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1283,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1289,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1295,1
    - Dst: xmlNewCatalogEntry
      Src: /src/libxml2/catalog.c:1297,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/catalog.c:1300,1
    - Dst: xmlGetProp
      Src: /src/libxml2/catalog.c:1304,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1306,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1308,1
    - Dst: xmlCatalogErr
      Src: /src/libxml2/catalog.c:1311,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/catalog.c:1323,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/catalog.c:1326,1
    - Dst: xmlParseXMLCatalogNodeList
      Src: /src/libxml2/catalog.c:1318,1
    - Dst: xmlCatalogErr
      Src: /src/libxml2/catalog.c:1320,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:1315,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 2
    argNames:
    - prefer
    - filename
    argTypes:
    - xmlCatalogPrefer
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1328
      start: 1270
    functionDepth: 0
    functionLinenumber: 1270
    functionLinenumberEnd: 1328
    functionName: xmlParseXMLCatalogFile
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlFree
    - xmlParseCatalogFile
    - xmlCatalogPrintDebug
    - xmlCatalogErr
    - xmlNewCatalogEntry
    - xmlStrEqual
    - xmlFreeDoc
    - xmlParseXMLCatalogNodeList
    - xmlGetProp
    linkageType: ''
    returnType: xmlCatalogEntryPtr
    signature: 'static xmlCatalogEntryPtr xmlParseXMLCatalogFile(xmlCatalogPrefer
      prefer, const xmlChar *filename) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: xmlCatalogNormalizePublic
      Src: /src/libxml2/catalog.c:1931,1
    - Dst: xmlCatalogUnWrapURN
      Src: /src/libxml2/catalog.c:1936,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1939,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/catalog.c:1935,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1959,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:1993,1
    - Dst: xmlCatalogListXMLResolve
      Src: /src/libxml2/catalog.c:1965,1
    - Dst: xmlCatalogListXMLResolve
      Src: /src/libxml2/catalog.c:1967,1
    - Dst: xmlCatalogListXMLResolve
      Src: /src/libxml2/catalog.c:1963,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1942,1
    - Dst: xmlCatalogListXMLResolve
      Src: /src/libxml2/catalog.c:1945,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:1947,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:1949,1
    - Dst: xmlCatalogUnWrapURN
      Src: /src/libxml2/catalog.c:1953,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1956,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/catalog.c:1952,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:1970,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:1972,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1964,1
    - Dst: xmlFetchXMLCatalogFile
      Src: /src/libxml2/catalog.c:1978,1
    - Dst: xmlCatalogXMLResolve
      Src: /src/libxml2/catalog.c:1981,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 68
    argCount: 3
    argNames:
    - catal
    - pubID
    - sysID
    argTypes:
    - xmlCatalogEntryPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1995
      start: 1919
    functionDepth: 0
    functionLinenumber: 1919
    functionLinenumberEnd: 1995
    functionName: xmlCatalogListXMLResolve
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCatalogPrintDebug
    - xmlFetchXMLCatalogFile
    - xmlStrncmp
    - xmlStrEqual
    - xmlCatalogUnWrapURN
    - xmlCatalogNormalizePublic
    - xmlCatalogXMLResolve
    - xmlCatalogListXMLResolve
    linkageType: ''
    returnType: xmlChar*
    signature: "static xmlChar *xmlCatalogListXMLResolve(xmlCatalogEntryPtr catal,
      const xmlChar *pubID,\t const xmlChar *sysID) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SKIP
      Src: /src/libxml2/catalog.c:2071,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2078
      start: 2067
    functionDepth: 0
    functionLinenumber: 2067
    functionLinenumberEnd: 2078
    functionName: xmlParseSGMLCatalogComment
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - SKIP
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlParseSGMLCatalogComment(const xmlChar *cur) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/catalog.c:2105,1
    - Dst: IS_PUBIDCHAR_CH
      Src: /src/libxml2/catalog.c:2110,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/catalog.c:2113,1
    - Dst: xmlCatalogErrMemory
      Src: /src/libxml2/catalog.c:2107,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/catalog.c:2119,1
    - Dst: xmlCatalogErrMemory
      Src: /src/libxml2/catalog.c:2121,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2122,1
    - Dst: xmlRealloc
      Src: /src/libxml2/catalog.c:2125,1
    - Dst: xmlCatalogErrMemory
      Src: /src/libxml2/catalog.c:2127,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2128,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/catalog.c:2139,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2145,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2140,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 2
    argNames:
    - cur
    - id
    argTypes:
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 2152
      start: 2087
    functionDepth: 0
    functionLinenumber: 2087
    functionLinenumberEnd: 2152
    functionName: xmlParseSGMLCatalogPubid
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCatalogErrMemory
    - xmlGrowCapacity
    - xmlRealloc
    - IS_BLANK_CH
    - IS_PUBIDCHAR_CH
    - xmlMalloc
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlParseSGMLCatalogPubid(const xmlChar *cur,
      xmlChar **id) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreateNewCatalog
      Src: /src/libxml2/catalog.c:2911,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/catalog.c:2914,1
    - Dst: xmlCreateNewCatalog
      Src: /src/libxml2/catalog.c:2916,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - sgml
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2919
      start: 2906
    functionDepth: 0
    functionLinenumber: 2906
    functionLinenumberEnd: 2919
    functionName: xmlNewCatalog
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlHashCreate
    - xmlCreateNewCatalog
    linkageType: ''
    returnType: xmlCatalog*
    signature: 'xmlCatalog *xmlNewCatalog(int sgml) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlLoadFileContent
      Src: /src/libxml2/catalog.c:2553,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2564,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2559,1
    - Dst: xmlCreateNewCatalog
      Src: /src/libxml2/catalog.c:2557,1
    - Dst: xmlParseSGMLCatalog
      Src: /src/libxml2/catalog.c:2563,1
    - Dst: xmlFreeCatalog
      Src: /src/libxml2/catalog.c:2566,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2570
      start: 2546
    functionDepth: 0
    functionLinenumber: 2546
    functionLinenumberEnd: 2570
    functionName: xmlLoadSGMLSuperCatalog
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlLoadFileContent
    - xmlFreeCatalog
    - xmlFree
    - xmlCreateNewCatalog
    - xmlParseSGMLCatalog
    linkageType: ''
    returnType: xmlCatalog*
    signature: 'xmlCatalog *xmlLoadSGMLSuperCatalog(const char *filename) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlDumpXMLCatalog
      Src: /src/libxml2/catalog.c:2829,1
    - Dst: xmlHashScan
      Src: /src/libxml2/catalog.c:2831,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - catal
    - out
    argTypes:
    - xmlCatalog*
    - FILE*
    constantsTouched: []
    func_position:
      end: 2833
      start: 2823
    functionDepth: 0
    functionLinenumber: 2823
    functionLinenumberEnd: 2833
    functionName: xmlACatalogDump
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlHashScan
    - xmlDumpXMLCatalog
    linkageType: ''
    returnType: void
    signature: 'void xmlACatalogDump(xmlCatalog *catal, FILE *out) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/catalog.c:3225,1
    - Dst: xmlACatalogDump
      Src: /src/libxml2/catalog.c:3227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 3228
      start: 3219
    functionDepth: 0
    functionLinenumber: 3219
    functionLinenumberEnd: 3228
    functionName: xmlCatalogDump
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlInitializeCatalog
    - xmlACatalogDump
    linkageType: ''
    returnType: void
    signature: 'void xmlCatalogDump(FILE *out) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeCatalogEntryList
      Src: /src/libxml2/catalog.c:3432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - catalogs
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 3433
      start: 3426
    functionDepth: 0
    functionLinenumber: 3426
    functionLinenumberEnd: 3433
    functionName: xmlCatalogFreeLocal
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlFreeCatalogEntryList
    linkageType: ''
    returnType: void
    signature: 'void xmlCatalogFreeLocal(void *catalogs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlRaiseError
      Src: /src/libxml2/catalog.c:213,1
    - Dst: va_end
      Src: /src/libxml2/catalog.c:228,1
    - Dst: xmlVPrintErrorMessage
      Src: /src/libxml2/catalog.c:227,1
    - Dst: va_start
      Src: /src/libxml2/catalog.c:226,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 0
    argNames:
    - 4,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 229
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlRaiseError
    - va_start
    - xmlVPrintErrorMessage
    - va_end
    linkageType: ''
    returnType: void
    signature: "static void LIBXML_ATTR_FORMAT(4,0) xmlCatalogErr(xmlCatalogEntryPtr
      catal, xmlNodePtr node, int error, const char *msg, const xmlChar *str1, const
      xmlChar *str2,\t const xmlChar *str3){ int res; res = xmlRaiseError(NULL, NULL,
      NULL, catal, node, XML_FROM_CATALOG, error, XML_ERR_ERROR, NULL, 0, (const char
      *) str1, (const char *) str2, (const char *) str3, 0, 0, msg, str1, str2, str3);
      if (res < 0) xmlCatalogErrMemory(); }static voidxmlCatalogPrintDebug(const char
      *fmt, ...) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/catalog.c:391,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/catalog.c:402,1
    - Dst: memset
      Src: /src/libxml2/catalog.c:396,1
    - Dst: xmlCatalogErrMemory
      Src: /src/libxml2/catalog.c:393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - type
    - prefer
    argTypes:
    - xmlCatalogType
    - xmlCatalogPrefer
    constantsTouched: []
    func_position:
      end: 404
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 404
    functionName: xmlCreateNewCatalog
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlHashCreate
    - memset
    - xmlMalloc
    - xmlCatalogErrMemory
    linkageType: ''
    returnType: xmlCatalogPtr
    signature: 'static xmlCatalogPtr xmlCreateNewCatalog(xmlCatalogType type, xmlCatalogPrefer
      prefer) '
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/catalog.c:445,1
    - Dst: fprintf
      Src: /src/libxml2/catalog.c:453,1
    - Dst: fprintf
      Src: /src/libxml2/catalog.c:447,1
    - Dst: fprintf
      Src: /src/libxml2/catalog.c:449,1
    - Dst: fprintf
      Src: /src/libxml2/catalog.c:451,1
    - Dst: fprintf
      Src: /src/libxml2/catalog.c:455,1
    - Dst: fprintf
      Src: /src/libxml2/catalog.c:457,1
    - Dst: fprintf
      Src: /src/libxml2/catalog.c:459,1
    - Dst: fprintf
      Src: /src/libxml2/catalog.c:461,1
    - Dst: fprintf
      Src: /src/libxml2/catalog.c:463,1
    - Dst: fprintf
      Src: /src/libxml2/catalog.c:467,1
    - Dst: fprintf
      Src: /src/libxml2/catalog.c:477,1
    - Dst: fprintf
      Src: /src/libxml2/catalog.c:498,1
    - Dst: fprintf
      Src: /src/libxml2/catalog.c:502,1
    - Dst: fprintf
      Src: /src/libxml2/catalog.c:485,1
    - Dst: fprintf
      Src: /src/libxml2/catalog.c:465,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 23
    argCount: 3
    argNames:
    - payload
    - data
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 503
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 503
    functionName: xmlCatalogDumpEntry
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlCatalogDumpEntry(void *payload, void *data, const xmlChar
      *name ATTRIBUTE_UNUSED) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/catalog.c:866,1
    - Dst: xmlParserInputBufferCreateFilename
      Src: /src/libxml2/catalog.c:872,1
    - Dst: xmlNewInputStream
      Src: /src/libxml2/catalog.c:878,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/catalog.c:874,1
    - Dst: xmlCatalogErrMemory
      Src: /src/libxml2/catalog.c:868,1
    - Dst: xmlFreeParserInputBuffer
      Src: /src/libxml2/catalog.c:880,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/catalog.c:881,1
    - Dst: xmlCanonicPath
      Src: /src/libxml2/catalog.c:885,1
    - Dst: xmlBufResetInput
      Src: /src/libxml2/catalog.c:887,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/catalog.c:889,1
    - Dst: xmlParseDocument
      Src: /src/libxml2/catalog.c:901,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/catalog.c:890,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/catalog.c:907,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/catalog.c:910,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/catalog.c:891,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 913
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 913
    functionName: xmlParseCatalogFile
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlParserInputBufferCreateFilename
    - xmlCatalogErrMemory
    - xmlBufResetInput
    - xmlFreeInputStream
    - xmlCtxtPushInput
    - xmlNewInputStream
    - xmlFreeParserInputBuffer
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - xmlCanonicPath
    - xmlParseDocument
    - xmlNewParserCtxt
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlParseCatalogFile(const char *filename) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsBlank_ch
      Src: /src/libxml2/catalog.c:984,1
    - Dst: xmlIsBlank_ch
      Src: /src/libxml2/catalog.c:998,1
    - Dst: xmlStrdup
      Src: /src/libxml2/catalog.c:994,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 34
    argCount: 1
    argNames:
    - pubID
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1011
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 1011
    functionName: xmlCatalogNormalizePublic
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlIsBlank_ch
    - xmlStrdup
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlCatalogNormalizePublic(const xmlChar *pubID) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1254,1
    - Dst: xmlParseXMLCatalogNode
      Src: /src/libxml2/catalog.c:1255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - cur
    - prefer
    - parent
    - cgroup
    argTypes:
    - xmlNodePtr
    - xmlCatalogPrefer
    - xmlCatalogEntryPtr
    - xmlCatalogEntryPtr
    constantsTouched: []
    func_position:
      end: 1260
      start: 1249
    functionDepth: 0
    functionLinenumber: 1249
    functionLinenumberEnd: 1260
    functionName: xmlParseXMLCatalogNodeList
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlParseXMLCatalogNode
    - xmlStrEqual
    linkageType: ''
    returnType: void
    signature: "static void xmlParseXMLCatalogNodeList(xmlNodePtr cur, xmlCatalogPrefer
      prefer,\t xmlCatalogEntryPtr parent, xmlCatalogEntryPtr cgroup) "
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1609,1
    - Dst: xmlStrdup
      Src: /src/libxml2/catalog.c:1611,1
    - Dst: xmlStrcat
      Src: /src/libxml2/catalog.c:1613,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1644,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/catalog.c:1681,1
    - Dst: xmlStrlen
      Src: /src/libxml2/catalog.c:1681,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1709,1
    - Dst: xmlFetchXMLCatalogFile
      Src: /src/libxml2/catalog.c:1719,1
    - Dst: xmlFetchXMLCatalogFile
      Src: /src/libxml2/catalog.c:1747,1
    - Dst: xmlCatalogListXMLResolve
      Src: /src/libxml2/catalog.c:1750,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1578,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/catalog.c:1596,1
    - Dst: xmlStrlen
      Src: /src/libxml2/catalog.c:1596,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1672,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1723,1
    - Dst: xmlStrdup
      Src: /src/libxml2/catalog.c:1584,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/catalog.c:1628,1
    - Dst: xmlStrlen
      Src: /src/libxml2/catalog.c:1628,1
    - Dst: xmlCatalogListXMLResolve
      Src: /src/libxml2/catalog.c:1646,1
    - Dst: xmlStrdup
      Src: /src/libxml2/catalog.c:1677,1
    - Dst: xmlCatalogErr
      Src: /src/libxml2/catalog.c:1560,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1580,1
    - Dst: xmlStrlen
      Src: /src/libxml2/catalog.c:1588,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/catalog.c:1590,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1630,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1674,1
    - Dst: xmlFetchXMLCatalogFile
      Src: /src/libxml2/catalog.c:1640,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/catalog.c:1706,1
    - Dst: xmlStrlen
      Src: /src/libxml2/catalog.c:1706,1
    - Dst: xmlCatalogListXMLResolve
      Src: /src/libxml2/catalog.c:1725,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 132
    argCount: 3
    argNames:
    - catal
    - pubID
    - sysID
    argTypes:
    - xmlCatalogEntryPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1765
      start: 1548
    functionDepth: 0
    functionLinenumber: 1548
    functionLinenumberEnd: 1765
    functionName: xmlCatalogXMLResolve
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlCatalogPrintDebug
    - xmlFetchXMLCatalogFile
    - xmlCatalogErr
    - xmlStrlen
    - xmlStrdup
    - xmlStrncmp
    - xmlStrEqual
    - xmlCatalogListXMLResolve
    - xmlStrcat
    linkageType: ''
    returnType: xmlChar*
    signature: "static xmlChar *xmlCatalogXMLResolve(xmlCatalogEntryPtr catal, const
      xmlChar *pubID,\t const xmlChar *sysID) "
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1808,1
    - Dst: xmlStrcat
      Src: /src/libxml2/catalog.c:1841,1
    - Dst: xmlCatalogListXMLResolveURI
      Src: /src/libxml2/catalog.c:1874,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/catalog.c:1824,1
    - Dst: xmlStrlen
      Src: /src/libxml2/catalog.c:1824,1
    - Dst: xmlFetchXMLCatalogFile
      Src: /src/libxml2/catalog.c:1868,1
    - Dst: xmlStrdup
      Src: /src/libxml2/catalog.c:1812,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1810,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1837,1
    - Dst: xmlStrdup
      Src: /src/libxml2/catalog.c:1839,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/catalog.c:1856,1
    - Dst: xmlFetchXMLCatalogFile
      Src: /src/libxml2/catalog.c:1892,1
    - Dst: xmlStrlen
      Src: /src/libxml2/catalog.c:1856,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1872,1
    - Dst: xmlCatalogErr
      Src: /src/libxml2/catalog.c:1794,1
    - Dst: xmlStrlen
      Src: /src/libxml2/catalog.c:1816,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/catalog.c:1818,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1858,1
    - Dst: xmlCatalogListXMLResolveURI
      Src: /src/libxml2/catalog.c:1895,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 81
    argCount: 2
    argNames:
    - catal
    - URI
    argTypes:
    - xmlCatalogEntryPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1905
      start: 1778
    functionDepth: 0
    functionLinenumber: 1778
    functionLinenumberEnd: 1905
    functionName: xmlCatalogXMLResolveURI
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlCatalogPrintDebug
    - xmlFetchXMLCatalogFile
    - xmlCatalogErr
    - xmlStrlen
    - xmlStrdup
    - xmlStrncmp
    - xmlStrEqual
    - xmlCatalogListXMLResolveURI
    - xmlStrcat
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlCatalogXMLResolveURI(xmlCatalogEntryPtr catal,
      const xmlChar *URI) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDoc
      Src: /src/libxml2/catalog.c:644,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/catalog.c:655,1
    - Dst: xmlNewNs
      Src: /src/libxml2/catalog.c:653,1
    - Dst: xmlAddChild
      Src: /src/libxml2/catalog.c:651,1
    - Dst: xmlNewDtd
      Src: /src/libxml2/catalog.c:647,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/catalog.c:658,1
    - Dst: xmlFreeNs
      Src: /src/libxml2/catalog.c:660,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/catalog.c:661,1
    - Dst: xmlAddChild
      Src: /src/libxml2/catalog.c:665,1
    - Dst: xmlDumpXMLCatalogNode
      Src: /src/libxml2/catalog.c:667,1
    - Dst: xmlSaveFormatFileTo
      Src: /src/libxml2/catalog.c:677,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/catalog.c:682,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/catalog.c:674,1
    - Dst: xmlOutputBufferCreateFile
      Src: /src/libxml2/catalog.c:672,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - out
    - catal
    argTypes:
    - FILE*
    - xmlCatalogEntryPtr
    constantsTouched: []
    func_position:
      end: 685
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 685
    functionName: xmlDumpXMLCatalog
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlSaveFormatFileTo
    - xmlAddChild
    - xmlNewNs
    - xmlOutputBufferCreateFile
    - xmlNewDtd
    - xmlNewDocNode
    - xmlNewDoc
    - xmlFreeDoc
    - xmlDumpXMLCatalogNode
    - xmlFreeNs
    linkageType: ''
    returnType: int
    signature: 'static int xmlDumpXMLCatalog(FILE *out, xmlCatalogEntryPtr catal) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup
      Src: /src/libxml2/catalog.c:2497,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - catal
    - sysID
    argTypes:
    - xmlHashTablePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2503
      start: 2490
    functionDepth: 0
    functionLinenumber: 2490
    functionLinenumberEnd: 2503
    functionName: xmlCatalogGetSGMLSystem
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlHashLookup
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlCatalogGetSGMLSystem(xmlHashTablePtr catal,
      const xmlChar *sysID) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:3382,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:3386,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 1
    argNames:
    - prefer
    argTypes:
    - xmlCatalogPrefer
    constantsTouched: []
    func_position:
      end: 3395
      start: 3372
    functionDepth: 0
    functionLinenumber: 3372
    functionLinenumberEnd: 3395
    functionName: xmlCatalogSetDefaultPrefer
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlCatalogPrintDebug
    linkageType: ''
    returnType: xmlCatalogPrefer
    signature: 'xmlCatalogPrefer xmlCatalogSetDefaultPrefer(xmlCatalogPrefer prefer) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlFetchXMLCatalogFile
      Src: /src/libxml2/catalog.c:1511,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1523,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:1526,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1519,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1520,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 2
    argNames:
    - catal
    - value
    argTypes:
    - xmlCatalogEntryPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1534
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1534
    functionName: xmlDelXMLCatalog
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlFetchXMLCatalogFile
    - xmlStrEqual
    - xmlCatalogPrintDebug
    linkageType: ''
    returnType: int
    signature: 'static int xmlDelXMLCatalog(xmlCatalogEntryPtr catal, const xmlChar
      *value) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlCatalogNormalizePublic
      Src: /src/libxml2/catalog.c:2463,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2475,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/catalog.c:2467,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2479,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2470,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 2
    argNames:
    - catal
    - pubID
    argTypes:
    - xmlHashTablePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2481
      start: 2455
    functionDepth: 0
    functionLinenumber: 2455
    functionLinenumberEnd: 2481
    functionName: xmlCatalogGetSGMLPublic
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCatalogNormalizePublic
    - xmlHashLookup
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlCatalogGetSGMLPublic(xmlHashTablePtr catal,
      const xmlChar *pubID) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:2721,1
    - Dst: xmlCatalogGetSGMLPublic
      Src: /src/libxml2/catalog.c:2731,1
    - Dst: xmlCatalogListXMLResolve
      Src: /src/libxml2/catalog.c:2725,1
    - Dst: xmlStrdup
      Src: /src/libxml2/catalog.c:2733,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 2
    argNames:
    - catal
    - pubID
    argTypes:
    - xmlCatalog*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2736
      start: 2713
    functionDepth: 0
    functionLinenumber: 2713
    functionLinenumberEnd: 2736
    functionName: xmlACatalogResolvePublic
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlCatalogPrintDebug
    - xmlStrdup
    - xmlCatalogGetSGMLPublic
    - xmlCatalogListXMLResolve
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlACatalogResolvePublic(xmlCatalog *catal, const xmlChar
      *pubID) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/catalog.c:3246,1
    - Dst: xmlRMutexLock
      Src: /src/libxml2/catalog.c:3248,1
    - Dst: xmlNewCatalogEntry
      Src: /src/libxml2/catalog.c:3258,1
    - Dst: xmlCreateNewCatalog
      Src: /src/libxml2/catalog.c:3255,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:3254,1
    - Dst: xmlRMutexUnlock
      Src: /src/libxml2/catalog.c:3261,1
    - Dst: xmlACatalogAdd
      Src: /src/libxml2/catalog.c:3266,1
    - Dst: xmlRMutexUnlock
      Src: /src/libxml2/catalog.c:3267,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - type
    - orig
    - replace
    argTypes:
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3269
      start: 3242
    functionDepth: 0
    functionLinenumber: 3242
    functionLinenumberEnd: 3269
    functionName: xmlCatalogAdd
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlACatalogAdd
    - xmlInitParser
    - xmlCreateNewCatalog
    - xmlRMutexLock
    - xmlNewCatalogEntry
    - xmlStrEqual
    - xmlRMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'int xmlCatalogAdd(const xmlChar *type, const xmlChar *orig, const
      xmlChar *replace) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/libxml2/catalog.c:2967,1
    - Dst: xmlInitRMutex
      Src: /src/libxml2/catalog.c:2969,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2970
      start: 2965
    functionDepth: 0
    functionLinenumber: 2965
    functionLinenumberEnd: 2970
    functionName: xmlInitCatalogInternal
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - getenv
    - xmlInitRMutex
    linkageType: ''
    returnType: void
    signature: 'void xmlInitCatalogInternal(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlDelXMLCatalog
      Src: /src/libxml2/catalog.c:2891,1
    - Dst: xmlHashRemoveEntry
      Src: /src/libxml2/catalog.c:2893,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - catal
    - value
    argTypes:
    - xmlCatalog*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2898
      start: 2883
    functionDepth: 0
    functionLinenumber: 2883
    functionLinenumberEnd: 2898
    functionName: xmlACatalogRemove
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlHashRemoveEntry
    - xmlDelXMLCatalog
    linkageType: ''
    returnType: int
    signature: 'int xmlACatalogRemove(xmlCatalog *catal, const xmlChar *value) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrncmp
      Src: /src/libxml2/catalog.c:2017,1
    - Dst: xmlCatalogListXMLResolve
      Src: /src/libxml2/catalog.c:2027,1
    - Dst: xmlCatalogUnWrapURN
      Src: /src/libxml2/catalog.c:2018,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:2021,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:2024,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:2029,1
    - Dst: xmlFetchXMLCatalogFile
      Src: /src/libxml2/catalog.c:2035,1
    - Dst: xmlCatalogXMLResolveURI
      Src: /src/libxml2/catalog.c:2038,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 2
    argNames:
    - catal
    - URI
    argTypes:
    - xmlCatalogEntryPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2046
      start: 2007
    functionDepth: 0
    functionLinenumber: 2007
    functionLinenumberEnd: 2046
    functionName: xmlCatalogListXMLResolveURI
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCatalogPrintDebug
    - xmlFetchXMLCatalogFile
    - xmlCatalogXMLResolveURI
    - xmlStrncmp
    - xmlCatalogUnWrapURN
    - xmlCatalogListXMLResolve
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlCatalogListXMLResolveURI(xmlCatalogEntryPtr catal,
      const xmlChar *URI) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:2688,1
    - Dst: xmlCatalogListXMLResolve
      Src: /src/libxml2/catalog.c:2692,1
    - Dst: xmlCatalogGetSGMLSystem
      Src: /src/libxml2/catalog.c:2698,1
    - Dst: xmlStrdup
      Src: /src/libxml2/catalog.c:2700,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 2
    argNames:
    - catal
    - sysID
    argTypes:
    - xmlCatalog*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2703
      start: 2680
    functionDepth: 0
    functionLinenumber: 2680
    functionLinenumberEnd: 2703
    functionName: xmlACatalogResolveSystem
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlCatalogPrintDebug
    - xmlCatalogGetSGMLSystem
    - xmlStrdup
    - xmlCatalogListXMLResolve
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlACatalogResolveSystem(xmlCatalog *catal, const xmlChar
      *sysID) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:2799,1
    - Dst: xmlStrdup
      Src: /src/libxml2/catalog.c:2811,1
    - Dst: xmlCatalogSGMLResolve
      Src: /src/libxml2/catalog.c:2809,1
    - Dst: xmlCatalogListXMLResolveURI
      Src: /src/libxml2/catalog.c:2803,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 2
    argNames:
    - catal
    - URI
    argTypes:
    - xmlCatalog*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2814
      start: 2791
    functionDepth: 0
    functionLinenumber: 2791
    functionLinenumberEnd: 2814
    functionName: xmlACatalogResolveURI
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlCatalogPrintDebug
    - xmlStrdup
    - xmlCatalogListXMLResolveURI
    - xmlCatalogSGMLResolve
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlACatalogResolveURI(xmlCatalog *catal, const xmlChar *URI) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashSize
      Src: /src/libxml2/catalog.c:2946,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 1
    argNames:
    - catal
    argTypes:
    - xmlCatalog*
    constantsTouched: []
    func_position:
      end: 2953
      start: 2927
    functionDepth: 0
    functionLinenumber: 2927
    functionLinenumberEnd: 2953
    functionName: xmlCatalogIsEmpty
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlHashSize
    linkageType: ''
    returnType: int
    signature: 'int xmlCatalogIsEmpty(xmlCatalog *catal) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlRMutexLock
      Src: /src/libxml2/catalog.c:3117,1
    - Dst: xmlHashFree
      Src: /src/libxml2/catalog.c:3122,1
    - Dst: xmlRMutexUnlock
      Src: /src/libxml2/catalog.c:3129,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:3119,1
    - Dst: xmlFreeCatalog
      Src: /src/libxml2/catalog.c:3125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3130
      start: 3115
    functionDepth: 0
    functionLinenumber: 3115
    functionLinenumberEnd: 3130
    functionName: xmlCatalogCleanup
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    - xmlFreeCatalog
    - xmlCatalogPrintDebug
    - xmlRMutexLock
    - xmlRMutexUnlock
    linkageType: ''
    returnType: void
    signature: 'void xmlCatalogCleanup(void) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1040,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1042,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1048,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1046,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1044,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1050,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1052,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1054,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1056,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/catalog.c:1058,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 1
    argNames:
    - name
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1061
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1061
    functionName: xmlGetXMLCatalogEntryType
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: xmlCatalogEntryType
    signature: 'static xmlCatalogEntryType xmlGetXMLCatalogEntryType(const xmlChar
      *name) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:2758,1
    - Dst: xmlCatalogSGMLResolve
      Src: /src/libxml2/catalog.c:2776,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:2764,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:2761,1
    - Dst: xmlCatalogListXMLResolve
      Src: /src/libxml2/catalog.c:2770,1
    - Dst: xmlStrdup
      Src: /src/libxml2/catalog.c:2778,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 29
    argCount: 3
    argNames:
    - catal
    - pubID
    - sysID
    argTypes:
    - xmlCatalog*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2781
      start: 2747
    functionDepth: 0
    functionLinenumber: 2747
    functionLinenumberEnd: 2781
    functionName: xmlACatalogResolve
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlCatalogPrintDebug
    - xmlStrdup
    - xmlCatalogListXMLResolve
    - xmlCatalogSGMLResolve
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlACatalogResolve(xmlCatalog *catal, const xmlChar * pubID,
      const xmlChar * sysID) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/catalog.c:3044,1
    - Dst: xmlRMutexUnlock
      Src: /src/libxml2/catalog.c:3056,1
    - Dst: xmlRMutexUnlock
      Src: /src/libxml2/catalog.c:3051,1
    - Dst: xmlLoadACatalog
      Src: /src/libxml2/catalog.c:3049,1
    - Dst: xmlRMutexLock
      Src: /src/libxml2/catalog.c:3046,1
    - Dst: xmlExpandCatalog
      Src: /src/libxml2/catalog.c:3061,1
    - Dst: xmlRMutexUnlock
      Src: /src/libxml2/catalog.c:3062,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3064
      start: 3038
    functionDepth: 0
    functionLinenumber: 3038
    functionLinenumberEnd: 3064
    functionName: xmlLoadCatalog
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlExpandCatalog
    - xmlInitParser
    - xmlRMutexLock
    - xmlLoadACatalog
    - xmlRMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'int xmlLoadCatalog(const char *filename) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsBlank_ch
      Src: /src/libxml2/catalog.c:3088,1
    - Dst: xmlStrndup
      Src: /src/libxml2/catalog.c:3093,1
    - Dst: strlen
      Src: /src/libxml2/catalog.c:3096,1
    - Dst: xmlIsBlank_ch
      Src: /src/libxml2/catalog.c:3091,1
    - Dst: xmlLoadCatalog
      Src: /src/libxml2/catalog.c:3103,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:3104,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 1
    argNames:
    - pathss
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3110
      start: 3074
    functionDepth: 0
    functionLinenumber: 3074
    functionLinenumberEnd: 3110
    functionName: xmlLoadCatalogs
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrndup
    - xmlIsBlank_ch
    - strlen
    - xmlLoadCatalog
    linkageType: ''
    returnType: void
    signature: 'void xmlLoadCatalogs(const char *pathss) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/catalog.c:3152,1
    - Dst: xmlACatalogResolveSystem
      Src: /src/libxml2/catalog.c:3154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - sysID
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3156
      start: 3147
    functionDepth: 0
    functionLinenumber: 3147
    functionLinenumberEnd: 3156
    functionName: xmlCatalogResolveSystem
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlInitializeCatalog
    - xmlACatalogResolveSystem
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlCatalogResolveSystem(const xmlChar *sysID) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/catalog.c:256,1
    - Dst: xmlCatalogErrMemory
      Src: /src/libxml2/catalog.c:258,1
    - Dst: xmlStrdup
      Src: /src/libxml2/catalog.c:271,1
    - Dst: xmlFree
      Src: /src/libxml2/catalog.c:275,1
    - Dst: xmlCatalogNormalizePublic
      Src: /src/libxml2/catalog.c:266,1
    - Dst: xmlStrdup
      Src: /src/libxml2/catalog.c:277,1
    - Dst: xmlStrdup
      Src: /src/libxml2/catalog.c:283,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 6
    argNames:
    - type
    - name
    - value
    - URL
    - prefer
    - group
    argTypes:
    - xmlCatalogEntryType
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlCatalogPrefer
    - xmlCatalogEntryPtr
    constantsTouched: []
    func_position:
      end: 291
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 291
    functionName: xmlNewCatalogEntry
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCatalogErrMemory
    - xmlStrdup
    - xmlCatalogNormalizePublic
    - xmlMalloc
    linkageType: ''
    returnType: xmlCatalogEntryPtr
    signature: "static xmlCatalogEntryPtr xmlNewCatalogEntry(xmlCatalogEntryType type,
      const xmlChar *name,\t const xmlChar *value, const xmlChar *URL, xmlCatalogPrefer
      prefer,\t xmlCatalogEntryPtr group) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/catalog.c:3207,1
    - Dst: xmlACatalogResolveURI
      Src: /src/libxml2/catalog.c:3209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - URI
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3211
      start: 3202
    functionDepth: 0
    functionLinenumber: 3202
    functionLinenumberEnd: 3211
    functionName: xmlCatalogResolveURI
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlInitializeCatalog
    - xmlACatalogResolveURI
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlCatalogResolveURI(const xmlChar *URI) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/catalog.c:3447,1
    - Dst: xmlNewCatalogEntry
      Src: /src/libxml2/catalog.c:3456,1
    - Dst: xmlCatalogPrintDebug
      Src: /src/libxml2/catalog.c:3453,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - catalogs
    - URL
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3469
      start: 3443
    functionDepth: 0
    functionLinenumber: 3443
    functionLinenumberEnd: 3469
    functionName: xmlCatalogAddLocal
    functionSourceFile: /src/libxml2/catalog.c
    functionUses: []
    functionsReached:
    - xmlCatalogPrintDebug
    - xmlNewCatalogEntry
    - xmlInitParser
    linkageType: ''
    returnType: void*
    signature: 'void *xmlCatalogAddLocal(void *catalogs, const xmlChar *URL) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 210
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 210
    functionName: xmlSAX2HasInternalSubset
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlSAX2HasInternalSubset(void *ctx) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlAddElementDecl
      Src: /src/libxml2/SAX2.c:685,1
    - Dst: xmlAddElementDecl
      Src: /src/libxml2/SAX2.c:688,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/SAX2.c:691,1
    - Dst: xmlValidateElementDecl
      Src: /src/libxml2/SAX2.c:702,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 4
    argNames:
    - ctx
    - name
    - type
    - content
    argTypes:
    - void*
    - xmlChar*
    - int
    - xmlElementContent*
    constantsTouched: []
    func_position:
      end: 704
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 704
    functionName: xmlSAX2ElementDecl
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlValidateElementDecl
    - xmlFatalErrMsg
    - xmlAddElementDecl
    linkageType: ''
    returnType: void
    signature: 'void xmlSAX2ElementDecl(void *ctx, const xmlChar * name, int type,
      xmlElementContent *content) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/SAX2.c:728,1
    - Dst: xmlAddNotationDecl
      Src: /src/libxml2/SAX2.c:733,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/SAX2.c:739,1
    - Dst: xmlValidateNotationDecl
      Src: /src/libxml2/SAX2.c:748,1
    - Dst: xmlAddNotationDecl
      Src: /src/libxml2/SAX2.c:736,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - name
    - publicId
    - systemId
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 751
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 751
    functionName: xmlSAX2NotationDecl
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlValidateNotationDecl
    - xmlAddNotationDecl
    - xmlFatalErrMsg
    linkageType: ''
    returnType: void
    signature: "void xmlSAX2NotationDecl(void *ctx, const xmlChar *name,\t const xmlChar
      *publicId, const xmlChar *systemId) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAX2Text
      Src: /src/libxml2/SAX2.c:2583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 2584
      start: 2580
    functionDepth: 0
    functionLinenumber: 2580
    functionLinenumberEnd: 2584
    functionName: xmlSAX2Characters
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlSAX2Text
    linkageType: ''
    returnType: void
    signature: 'void xmlSAX2Characters(void *ctx, const xmlChar *ch, int len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - hdlr
    argTypes:
    - xmlSAXHandler*
    constantsTouched: []
    func_position:
      end: 2807
      start: 2772
    functionDepth: 0
    functionLinenumber: 2772
    functionLinenumberEnd: 2807
    functionName: xmlSAX2InitHtmlDefaultSAXHandler
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlSAX2InitHtmlDefaultSAXHandler(xmlSAXHandler *hdlr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: xmlSAX2GetLineNumber
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlSAX2GetLineNumber(void *ctx) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/SAX2.c:626,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:633,1
    - Dst: xmlAddAttributeDecl
      Src: /src/libxml2/SAX2.c:636,1
    - Dst: xmlSplitQName4
      Src: /src/libxml2/SAX2.c:631,1
    - Dst: xmlErrId
      Src: /src/libxml2/SAX2.c:628,1
    - Dst: xmlAddAttributeDecl
      Src: /src/libxml2/SAX2.c:640,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/SAX2.c:644,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:647,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/SAX2.c:648,1
    - Dst: xmlValidateAttributeDecl
      Src: /src/libxml2/SAX2.c:656,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:660,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 35
    argCount: 7
    argNames:
    - ctx
    - elem
    - fullname
    - type
    - def
    - defaultValue
    - tree
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - int
    - int
    - xmlChar*
    - xmlEnumeration*
    constantsTouched: []
    func_position:
      end: 661
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 661
    functionName: xmlSAX2AttributeDecl
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFatalErrMsg
    - xmlErrId
    - xmlValidateAttributeDecl
    - xmlStrEqual
    - xmlFreeEnumeration
    - xmlSAX2ErrMemory
    - xmlSplitQName4
    - xmlAddAttributeDecl
    linkageType: ''
    returnType: void
    signature: "void xmlSAX2AttributeDecl(void *ctx, const xmlChar *elem, const xmlChar
      *fullname, int type, int def, const xmlChar *defaultValue,\t xmlEnumeration
      *tree) "
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAX2TextNode
      Src: /src/libxml2/SAX2.c:2473,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/SAX2.c:2505,1
    - Dst: xmlNewCDataBlock
      Src: /src/libxml2/SAX2.c:2475,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:2477,1
    - Dst: xmlSAX2AppendChild
      Src: /src/libxml2/SAX2.c:2486,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/SAX2.c:2511,1
    - Dst: xmlHaltParser
      Src: /src/libxml2/SAX2.c:2513,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/SAX2.c:2531,1
    - Dst: xmlMalloc
      Src: /src/libxml2/SAX2.c:2534,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:2536,1
    - Dst: xmlRealloc
      Src: /src/libxml2/SAX2.c:2544,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:2546,1
    - Dst: memcpy
      Src: /src/libxml2/SAX2.c:2540,1
    - Dst: memcpy
      Src: /src/libxml2/SAX2.c:2555,1
    - Dst: XML_INT_TO_PTR
      Src: /src/libxml2/SAX2.c:2568,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 98
    argCount: 4
    argNames:
    - ctxt
    - ch
    - len
    - type
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    - int
    - xmlElementType
    constantsTouched: []
    func_position:
      end: 2571
      start: 2445
    functionDepth: 0
    functionLinenumber: 2445
    functionLinenumberEnd: 2571
    functionName: xmlSAX2Text
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - memcpy
    - xmlSAX2AppendChild
    - xmlDictOwns
    - xmlRealloc
    - xmlFatalErr
    - xmlHaltParser
    - XML_INT_TO_PTR
    - xmlSAX2TextNode
    - xmlSAX2ErrMemory
    - xmlNewCDataBlock
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: 'static void xmlSAX2Text(xmlParserCtxtPtr ctxt, const xmlChar *ch,
      int len, xmlElementType type) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateOneNamespace
      Src: /src/libxml2/SAX2.c:1025,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - intSubset
    argTypes:
    - ctxt
    constantsTouched: []
    func_position:
      end: 1027
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1027
    functionName: if
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlValidateOneNamespace
    linkageType: ''
    returnType: else
    signature: 'else if (ctxt->validate && ctxt->wellFormed && ctxt->myDoc && ctxt->myDoc->intSubset) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateOneNamespace
      Src: /src/libxml2/SAX2.c:1088,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - intSubset
    argTypes:
    - ctxt
    constantsTouched: []
    func_position:
      end: 1090
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1090
    functionName: if
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlValidateOneNamespace
    linkageType: ''
    returnType: else
    signature: "else if (ctxt->validate && ctxt->wellFormed &&\t ctxt->myDoc && ctxt->myDoc->intSubset) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlExpandEntitiesInAttValue
      Src: /src/libxml2/SAX2.c:1871,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 3
    argNames:
    - ctxt
    - str
    - end
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1872
      start: 1855
    functionDepth: 0
    functionLinenumber: 1855
    functionLinenumberEnd: 1872
    functionName: xmlSAX2DecodeAttrEntities
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlExpandEntitiesInAttValue
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlSAX2DecodeAttrEntities(xmlParserCtxtPtr ctxt, const
      xmlChar *str, const xmlChar *end) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2675
      start: 2669
    functionDepth: 0
    functionLinenumber: 2669
    functionLinenumberEnd: 2675
    functionName: xmlSAXDefaultVersion
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlSAXDefaultVersion(int version) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 2
    argNames:
    - hdlr
    - version
    argTypes:
    - xmlSAXHandler*
    - int
    constantsTouched: []
    func_position:
      end: 2734
      start: 2685
    functionDepth: 0
    functionLinenumber: 2685
    functionLinenumberEnd: 2734
    functionName: xmlSAXVersion
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlSAXVersion(xmlSAXHandler *hdlr, int version) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/SAX2.c:1781,1
    - Dst: memcpy
      Src: /src/libxml2/SAX2.c:1799,1
    - Dst: memset
      Src: /src/libxml2/SAX2.c:1787,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/SAX2.c:1804,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/SAX2.c:1784,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1806,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:1807,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/SAX2.c:1810,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/SAX2.c:1815,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/SAX2.c:1817,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:1820,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1833,1
    - Dst: xmlStrndup
      Src: /src/libxml2/SAX2.c:1831,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:1834,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1819,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/SAX2.c:1841,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 74
    argCount: 4
    argNames:
    - ctxt
    - doc
    - str
    - len
    argTypes:
    - xmlParserCtxtPtr
    - xmlDocPtr
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1843
      start: 1767
    functionDepth: 0
    functionLinenumber: 1767
    functionLinenumberEnd: 1843
    functionName: xmlSAX2TextNode
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRegisterNodeDefaultValue
    - xmlDictLookup
    - memcpy
    - xmlStrndup
    - xmlCtxtErrMemory
    - memset
    - IS_BLANK_CH
    - xmlSAX2ErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlSAX2TextNode(xmlParserCtxtPtr ctxt, xmlDocPtr
      doc, const xmlChar *str, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/SAX2.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: xmlSAX2ErrMemory
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlCtxtErrMemory
    linkageType: ''
    returnType: void
    signature: 'static void xmlSAX2ErrMemory(xmlParserCtxtPtr ctxt) '
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: xmlSplitQName4
      Src: /src/libxml2/SAX2.c:966,1
    - Dst: xmlParseURISafe
      Src: /src/libxml2/SAX2.c:998,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:988,1
    - Dst: xmlExpandEntitiesInAttValue
      Src: /src/libxml2/SAX2.c:986,1
    - Dst: xmlNsWarnMsg
      Src: /src/libxml2/SAX2.c:1005,1
    - Dst: xmlNsErrMsg
      Src: /src/libxml2/SAX2.c:1054,1
    - Dst: xmlNsWarnMsg
      Src: /src/libxml2/SAX2.c:1063,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/SAX2.c:1070,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:1093,1
    - Dst: xmlSearchNsSafe
      Src: /src/libxml2/SAX2.c:1100,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/SAX2.c:1206,1
    - Dst: xmlErrId
      Src: /src/libxml2/SAX2.c:1213,1
    - Dst: xmlExpandEntitiesInAttValue
      Src: /src/libxml2/SAX2.c:1164,1
    - Dst: xmlAddRef
      Src: /src/libxml2/SAX2.c:1226,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/SAX2.c:1222,1
    - Dst: xmlNsWarnMsg
      Src: /src/libxml2/SAX2.c:1001,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/SAX2.c:1009,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1061,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1016,1
    - Dst: xmlExpandEntitiesInAttValue
      Src: /src/libxml2/SAX2.c:1043,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:1046,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:1076,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1102,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1135,1
    - Dst: xmlNodeParseContent
      Src: /src/libxml2/SAX2.c:1140,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:999,1
    - Dst: xmlValidateOneNamespace
      Src: /src/libxml2/SAX2.c:1025,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1079,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/SAX2.c:1114,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1145,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:1181,1
    - Dst: xmlValidateOneAttribute
      Src: /src/libxml2/SAX2.c:1185,1
    - Dst: xmlAddID
      Src: /src/libxml2/SAX2.c:1217,1
    - Dst: xmlIsID
      Src: /src/libxml2/SAX2.c:1219,1
    - Dst: xmlNsErrMsg
      Src: /src/libxml2/SAX2.c:1105,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/SAX2.c:1116,1
    - Dst: xmlValidateOneAttribute
      Src: /src/libxml2/SAX2.c:1190,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:1187,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:1232,1
    - Dst: xmlCtxtErr
      Src: /src/libxml2/SAX2.c:1117,1
    - Dst: xmlAddID
      Src: /src/libxml2/SAX2.c:1224,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:968,1
    - Dst: xmlNewNs
      Src: /src/libxml2/SAX2.c:1014,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:1030,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1045,1
    - Dst: xmlParseURISafe
      Src: /src/libxml2/SAX2.c:1060,1
    - Dst: xmlNsWarnMsg
      Src: /src/libxml2/SAX2.c:1067,1
    - Dst: xmlNewNs
      Src: /src/libxml2/SAX2.c:1075,1
    - Dst: xmlValidateOneNamespace
      Src: /src/libxml2/SAX2.c:1088,1
    - Dst: xmlNewNsProp
      Src: /src/libxml2/SAX2.c:1133,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1141,1
    - Dst: xmlValidateNCName
      Src: /src/libxml2/SAX2.c:1212,1
    - Dst: xmlIsRef
      Src: /src/libxml2/SAX2.c:1225,1
    - Dst: xmlNewDocText
      Src: /src/libxml2/SAX2.c:1143,1
    - Dst: xmlValidateOneAttribute
      Src: /src/libxml2/SAX2.c:1167,1
    - Dst: xmlValidCtxtNormalizeAttributeValue
      Src: /src/libxml2/SAX2.c:1177,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 202
    argCount: 0
    argNames:
    - 3,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 1233
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlFreeURI
    - xmlValidateOneNamespace
    - xmlNodeParseContent
    - xmlParseURISafe
    - xmlIsID
    - xmlNewNsProp
    - xmlCtxtErr
    - xmlIsRef
    - xmlExpandEntitiesInAttValue
    - xmlValidateOneAttribute
    - xmlSearchNsSafe
    - xmlAddRef
    - xmlNsErrMsg
    - xmlFree
    - xmlAddID
    - xmlNsWarnMsg
    - xmlCtxtErrMemory
    - xmlValidCtxtNormalizeAttributeValue
    - xmlSAX2ErrMemory
    - xmlSplitQName4
    - xmlValidateNCName
    - xmlNewNs
    - xmlErrId
    - xmlNewDocText
    - xmlStrEqual
    linkageType: ''
    returnType: void
    signature: 'static void LIBXML_ATTR_FORMAT(3,0) xmlNsErrMsg(xmlParserCtxtPtr ctxt,
      xmlParserErrors error, const char *msg, const xmlChar *str1, const xmlChar *str2){
      xmlCtxtErr(ctxt, NULL, XML_FROM_NAMESPACE, error, XML_ERR_ERROR, str1, str2,
      NULL, 0, msg, str1, str2); } /** * Handle an attribute that has been read by
      the parser. * * Deprecated SAX1 interface. * * @param ctxt the parser context
      * @param fullname the attribute name, including namespace prefix * @param value
      the attribute value * @param prefix the namespace prefix */ static voidxmlSAX1Attribute(xmlParserCtxtPtr
      ctxt, const xmlChar *fullname, const xmlChar *value, const xmlChar *prefix) '
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:2174,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:2167,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:2198,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/SAX2.c:2210,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:2236,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:2214,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/SAX2.c:2261,1
    - Dst: xmlParserNsLookupSax
      Src: /src/libxml2/SAX2.c:2278,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/SAX2.c:2279,1
    - Dst: xmlNewNs
      Src: /src/libxml2/SAX2.c:2287,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:2340,1
    - Dst: xmlSAX2AttributeNs
      Src: /src/libxml2/SAX2.c:2326,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:2334,1
    - Dst: xmlBuildQName
      Src: /src/libxml2/SAX2.c:2331,1
    - Dst: memset
      Src: /src/libxml2/SAX2.c:2186,1
    - Dst: xmlValidateOneNamespace
      Src: /src/libxml2/SAX2.c:2245,1
    - Dst: xmlParserNsUpdateSax
      Src: /src/libxml2/SAX2.c:2240,1
    - Dst: nodePush
      Src: /src/libxml2/SAX2.c:2260,1
    - Dst: xmlSearchNsSafe
      Src: /src/libxml2/SAX2.c:2282,1
    - Dst: xmlSAX2AttributeNs
      Src: /src/libxml2/SAX2.c:2337,1
    - Dst: xmlBuildQName
      Src: /src/libxml2/SAX2.c:2172,1
    - Dst: xmlStrdup
      Src: /src/libxml2/SAX2.c:2194,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:2199,1
    - Dst: xmlNewDocNodeEatName
      Src: /src/libxml2/SAX2.c:2207,1
    - Dst: xmlNewDocNodeEatName
      Src: /src/libxml2/SAX2.c:2212,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/SAX2.c:2262,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:2284,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:2290,1
    - Dst: xmlNsWarnMsg
      Src: /src/libxml2/SAX2.c:2298,1
    - Dst: xmlDictQLookup
      Src: /src/libxml2/SAX2.c:2320,1
    - Dst: xmlValidateDtdFinal
      Src: /src/libxml2/SAX2.c:2371,1
    - Dst: xmlErrValid
      Src: /src/libxml2/SAX2.c:2152,1
    - Dst: xmlDictQLookup
      Src: /src/libxml2/SAX2.c:2165,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/SAX2.c:2204,1
    - Dst: xmlSAX2AppendChild
      Src: /src/libxml2/SAX2.c:2255,1
    - Dst: xmlNewNs
      Src: /src/libxml2/SAX2.c:2225,1
    - Dst: xmlNsWarnMsg
      Src: /src/libxml2/SAX2.c:2294,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:2323,1
    - Dst: xmlValidateRoot
      Src: /src/libxml2/SAX2.c:2376,1
    - Dst: xmlSAX2AttributeNs
      Src: /src/libxml2/SAX2.c:2344,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 196
    argCount: 9
    argNames:
    - ctx
    - localname
    - prefix
    - URI
    - nb_namespaces
    - namespaces
    - nb_attributes
    - nb_defaulted
    - attributes
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - int
    - xmlChar**
    - int
    - int
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 2380
      start: 2120
    functionDepth: 0
    functionLinenumber: 2120
    functionLinenumberEnd: 2380
    functionName: xmlSAX2StartElementNs
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlValidateOneNamespace
    - xmlBuildQName
    - xmlSAX2AttributeNs
    - xmlRegisterNodeDefaultValue
    - xmlStrdup
    - xmlSearchNsSafe
    - nodePush
    - xmlFree
    - xmlUnlinkNode
    - xmlNsWarnMsg
    - xmlValidateDtdFinal
    - xmlErrValid
    - memset
    - xmlParserNsLookupSax
    - xmlSAX2ErrMemory
    - xmlValidateRoot
    - xmlNewDocNodeEatName
    - xmlSAX2AppendChild
    - xmlNewNs
    - xmlParserNsUpdateSax
    - xmlFreeNode
    - xmlDictQLookup
    - xmlNewDocNode
    - xmlStrEqual
    linkageType: ''
    returnType: void
    signature: "void xmlSAX2StartElementNs(void *ctx, const xmlChar *localname,\t\t
      const xmlChar *prefix,\t\t const xmlChar *URI,\t\t int nb_namespaces,\t\t const
      xmlChar **namespaces,\t\t int nb_attributes,\t\t int nb_defaulted,\t\t const
      xmlChar **attributes) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 2597
      start: 2594
    functionDepth: 0
    functionLinenumber: 2594
    functionLinenumberEnd: 2597
    functionName: xmlSAX2IgnorableWhitespace
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlSAX2IgnorableWhitespace(void *ctx ATTRIBUTE_UNUSED, const
      xmlChar *ch ATTRIBUTE_UNUSED, int len ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2763
      start: 2760
    functionDepth: 0
    functionLinenumber: 2760
    functionLinenumberEnd: 2763
    functionName: xmlDefaultSAXHandlerInit
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlDefaultSAXHandlerInit(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: xmlSAX2HasExternalSubset
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlSAX2HasExternalSubset(void *ctx) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAX2EntityDecl
      Src: /src/libxml2/SAX2.c:767,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - name
    - publicId
    - systemId
    - notationName
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 769
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 769
    functionName: xmlSAX2UnparsedEntityDecl
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlSAX2EntityDecl
    linkageType: ''
    returnType: void
    signature: "void xmlSAX2UnparsedEntityDecl(void *ctx, const xmlChar *name,\t\t
      const xmlChar *publicId, const xmlChar *systemId,\t\t const xmlChar *notationName) "
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserNsLookupSax
      Src: /src/libxml2/SAX2.c:1903,1
    - Dst: xmlSearchNsSafe
      Src: /src/libxml2/SAX2.c:1907,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1923,1
    - Dst: xmlNodeParseContent
      Src: /src/libxml2/SAX2.c:1971,1
    - Dst: xmlSAX2TextNode
      Src: /src/libxml2/SAX2.c:1978,1
    - Dst: xmlSAX2TextNode
      Src: /src/libxml2/SAX2.c:1964,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:2037,1
    - Dst: xmlValidateOneAttribute
      Src: /src/libxml2/SAX2.c:2057,1
    - Dst: xmlValidateNCName
      Src: /src/libxml2/SAX2.c:2081,1
    - Dst: xmlErrId
      Src: /src/libxml2/SAX2.c:2082,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/SAX2.c:2091,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1909,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/SAX2.c:1904,1
    - Dst: memset
      Src: /src/libxml2/SAX2.c:1928,1
    - Dst: xmlValidCtxtNormalizeAttributeValue
      Src: /src/libxml2/SAX2.c:2030,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:2039,1
    - Dst: xmlIsRef
      Src: /src/libxml2/SAX2.c:2094,1
    - Dst: xmlAddRef
      Src: /src/libxml2/SAX2.c:2095,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:2099,1
    - Dst: xmlMalloc
      Src: /src/libxml2/SAX2.c:1921,1
    - Dst: xmlStrdup
      Src: /src/libxml2/SAX2.c:1947,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1949,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/SAX2.c:1953,1
    - Dst: xmlValidateOneAttribute
      Src: /src/libxml2/SAX2.c:1997,1
    - Dst: xmlStrndup
      Src: /src/libxml2/SAX2.c:2005,1
    - Dst: xmlValidateOneAttribute
      Src: /src/libxml2/SAX2.c:2009,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1973,1
    - Dst: xmlBuildQName
      Src: /src/libxml2/SAX2.c:2025,1
    - Dst: xmlStrndup
      Src: /src/libxml2/SAX2.c:2053,1
    - Dst: xmlSAX2DecodeAttrEntities
      Src: /src/libxml2/SAX2.c:1994,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:2007,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:2027,1
    - Dst: xmlValidateOneAttribute
      Src: /src/libxml2/SAX2.c:2045,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:2055,1
    - Dst: xmlIsID
      Src: /src/libxml2/SAX2.c:2088,1
    - Dst: xmlAddID
      Src: /src/libxml2/SAX2.c:2093,1
    - Dst: xmlAddID
      Src: /src/libxml2/SAX2.c:2086,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 157
    argCount: 5
    argNames:
    - ctxt
    - localname
    - prefix
    - value
    - valueend
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2102
      start: 1888
    functionDepth: 0
    functionLinenumber: 1888
    functionLinenumberEnd: 2102
    functionName: xmlSAX2AttributeNs
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlStrndup
    - xmlNodeParseContent
    - xmlSAX2TextNode
    - xmlBuildQName
    - xmlIsID
    - xmlIsRef
    - xmlRegisterNodeDefaultValue
    - xmlStrdup
    - xmlSearchNsSafe
    - xmlValidateOneAttribute
    - xmlAddRef
    - xmlMalloc
    - xmlFree
    - xmlAddID
    - xmlCtxtErrMemory
    - memset
    - xmlValidCtxtNormalizeAttributeValue
    - xmlParserNsLookupSax
    - xmlSAX2ErrMemory
    - xmlValidateNCName
    - xmlErrId
    - xmlStrEqual
    - xmlSAX2DecodeAttrEntities
    linkageType: ''
    returnType: xmlAttrPtr
    signature: "static xmlAttrPtr xmlSAX2AttributeNs(xmlParserCtxtPtr ctxt, const
      xmlChar * localname, const xmlChar * prefix,\t\t const xmlChar * value,\t\t
      const xmlChar * valueend) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAXVersion
      Src: /src/libxml2/SAX2.c:2748,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - hdlr
    - warning
    argTypes:
    - xmlSAXHandler*
    - int
    constantsTouched: []
    func_position:
      end: 2751
      start: 2742
    functionDepth: 0
    functionLinenumber: 2742
    functionLinenumberEnd: 2751
    functionName: xmlSAX2InitDefaultSAXHandler
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlSAXVersion
    linkageType: ''
    returnType: void
    signature: 'void xmlSAX2InitDefaultSAXHandler(xmlSAXHandler *hdlr, int warning) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: xmlSAX2GetSystemId
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlSAX2GetSystemId(void *ctx) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: xmlSAX2GetColumnNumber
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlSAX2GetColumnNumber(void *ctx) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/SAX2.c:72,1
    - Dst: xmlNsWarnMsg
      Src: /src/libxml2/SAX2.c:121,1
    - Dst: xmlErrId
      Src: /src/libxml2/SAX2.c:88,1
    - Dst: xmlWarnMsg
      Src: /src/libxml2/SAX2.c:104,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 15
    argCount: 0
    argNames:
    - 3,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 139
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlWarnMsg
    - xmlFatalErrMsg
    - xmlErrId
    - xmlNsWarnMsg
    linkageType: ''
    returnType: void
    signature: "static void LIBXML_ATTR_FORMAT(3,0) xmlErrValid(xmlParserCtxtPtr ctxt,
      xmlParserErrors error, const char *msg, const xmlChar *str1, const xmlChar *str2){
      xmlCtxtErr(ctxt, NULL, XML_FROM_DTD, error, XML_ERR_ERROR, str1, str2, NULL,
      0, msg, str1, str2); if (ctxt != NULL)\tctxt->valid = 0; }#endif /* LIBXML_VALID_ENABLED
      */ /** * Handle a fatal parser error, i.e. violating Well-Formedness constraints
      * * @param ctxt an XML parser context * @param error the error number * @param
      msg the error message * @param str1 an error string * @param str2 an error string
      */ static void LIBXML_ATTR_FORMAT(3,0)xmlFatalErrMsg(xmlParserCtxtPtr ctxt,
      xmlParserErrors error, const char *msg, const xmlChar *str1, const xmlChar *str2){
      xmlCtxtErr(ctxt, NULL, XML_FROM_PARSER, error, XML_ERR_FATAL, str1, str2, NULL,
      0, msg, str1, str2); } /** * Handle an xml:id error * * @param ctxt an XML validation
      parser context * @param error the error number * @param msg the error message
      * @param str1 extra data */ static void LIBXML_ATTR_FORMAT(3,0)xmlErrId(xmlParserCtxtPtr
      ctxt, xmlParserErrors error, const char *msg, const xmlChar *str1){ xmlCtxtErr(ctxt,
      NULL, XML_FROM_PARSER, error, XML_ERR_ERROR, str1, NULL, NULL, 0, msg, str1);
      } /** * Handle a parser warning * * @param ctxt an XML parser context * @param
      error the error number * @param msg the error message * @param str1 an error
      string */ static void LIBXML_ATTR_FORMAT(3,0)xmlWarnMsg(xmlParserCtxtPtr ctxt,
      xmlParserErrors error, const char *msg, const xmlChar *str1){ xmlCtxtErr(ctxt,
      NULL, XML_FROM_PARSER, error, XML_ERR_WARNING, str1, NULL, NULL, 0, msg, str1);
      } /** * Handle a namespace warning * * @param ctxt an XML parser context * @param
      error the error number * @param msg the error message * @param str1 an error
      string * @param str2 an error string */ static void LIBXML_ATTR_FORMAT(3,0)xmlNsWarnMsg(xmlParserCtxtPtr
      ctxt, xmlParserErrors error, const char *msg, const xmlChar *str1, const xmlChar
      *str2){ xmlCtxtErr(ctxt, NULL, XML_FROM_NAMESPACE, error, XML_ERR_WARNING, str1,
      str2, NULL, 0, msg, str1, str2); } /** * Provides the public ID e.g. \"-//SGMLSOURCE//DTD
      DEMO//EN\" * * @param ctx the user data (XML parser context) * @returns a xmlChar
      * */ const xmlChar *xmlSAX2GetPublicId(void *ctx ATTRIBUTE_UNUSED) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrlen
      Src: /src/libxml2/SAX2.c:414,1
    - Dst: xmlStrlen
      Src: /src/libxml2/SAX2.c:415,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/SAX2.c:416,1
    - Dst: xmlBuildURISafe
      Src: /src/libxml2/SAX2.c:419,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:422,1
    - Dst: xmlWarnMsg
      Src: /src/libxml2/SAX2.c:424,1
    - Dst: xmlStrlen
      Src: /src/libxml2/SAX2.c:428,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/SAX2.c:429,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:430,1
    - Dst: xmlLoadResource
      Src: /src/libxml2/SAX2.c:435,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:438,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 3
    argNames:
    - ctx
    - publicId
    - systemId
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 440
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 440
    functionName: xmlSAX2ResolveEntity
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlLoadResource
    - xmlStrlen
    - xmlFatalErr
    - xmlBuildURISafe
    - xmlWarnMsg
    - xmlSAX2ErrMemory
    linkageType: ''
    returnType: xmlParserInput*
    signature: 'xmlParserInput *xmlSAX2ResolveEntity(void *ctx, const xmlChar *publicId,
      const xmlChar *systemId) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlAddEntity
      Src: /src/libxml2/SAX2.c:529,1
    - Dst: xmlWarnMsg
      Src: /src/libxml2/SAX2.c:543,1
    - Dst: xmlWarnMsg
      Src: /src/libxml2/SAX2.c:540,1
    - Dst: xmlWarnMsg
      Src: /src/libxml2/SAX2.c:552,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:535,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/SAX2.c:556,1
    - Dst: xmlBuildURISafe
      Src: /src/libxml2/SAX2.c:581,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:585,1
    - Dst: xmlWarnMsg
      Src: /src/libxml2/SAX2.c:587,1
    - Dst: xmlStrlen
      Src: /src/libxml2/SAX2.c:590,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/SAX2.c:591,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:592,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 44
    argCount: 6
    argNames:
    - ctx
    - name
    - type
    - publicId
    - systemId
    - content
    argTypes:
    - void*
    - xmlChar*
    - int
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 597
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 597
    functionName: xmlSAX2EntityDecl
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFatalErrMsg
    - xmlStrlen
    - xmlFatalErr
    - xmlBuildURISafe
    - xmlWarnMsg
    - xmlAddEntity
    - xmlSAX2ErrMemory
    linkageType: ''
    returnType: void
    signature: 'void xmlSAX2EntityDecl(void *ctx, const xmlChar *name, int type, const
      xmlChar *publicId, const xmlChar *systemId, xmlChar *content) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlSAXLocator*
    constantsTouched: []
    func_position:
      end: 781
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 781
    functionName: xmlSAX2SetDocumentLocator
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlSAX2SetDocumentLocator(void *ctx ATTRIBUTE_UNUSED, xmlSAXLocator
      *loc ATTRIBUTE_UNUSED) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateDocumentFinal
      Src: /src/libxml2/SAX2.c:848,1
    - Dst: xmlGetActualEncoding
      Src: /src/libxml2/SAX2.c:856,1
    - Dst: xmlCreateIntSubset
      Src: /src/libxml2/SAX2.c:869,1
    - Dst: xmlStrdup
      Src: /src/libxml2/SAX2.c:859,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:861,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:873,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 35
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 889
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 889
    functionName: xmlSAX2EndDocument
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlGetActualEncoding
    - xmlStrdup
    - xmlCreateIntSubset
    - xmlSAX2ErrMemory
    - xmlValidateDocumentFinal
    linkageType: ''
    returnType: void
    signature: 'void xmlSAX2EndDocument(void *ctx) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: xmlErrValid
      Src: /src/libxml2/SAX2.c:1431,1
    - Dst: nodePush
      Src: /src/libxml2/SAX2.c:1472,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:1476,1
    - Dst: xmlSAX1Attribute
      Src: /src/libxml2/SAX2.c:1499,1
    - Dst: xmlSplitQName4
      Src: /src/libxml2/SAX2.c:1440,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/SAX2.c:1451,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1442,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1454,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/SAX2.c:1474,1
    - Dst: xmlCheckDefaultedAttributes
      Src: /src/libxml2/SAX2.c:1486,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1516,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1512,1
    - Dst: xmlSAX1Attribute
      Src: /src/libxml2/SAX2.c:1545,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:1575,1
    - Dst: xmlSAX2AppendChild
      Src: /src/libxml2/SAX2.c:1467,1
    - Dst: xmlSetNs
      Src: /src/libxml2/SAX2.c:1533,1
    - Dst: xmlValidateDtdFinal
      Src: /src/libxml2/SAX2.c:1564,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:1453,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/SAX2.c:1473,1
    - Dst: xmlSearchNsSafe
      Src: /src/libxml2/SAX2.c:1510,1
    - Dst: xmlNsWarnMsg
      Src: /src/libxml2/SAX2.c:1519,1
    - Dst: xmlNewNs
      Src: /src/libxml2/SAX2.c:1522,1
    - Dst: xmlSearchNsSafe
      Src: /src/libxml2/SAX2.c:1514,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1524,1
    - Dst: xmlValidateRoot
      Src: /src/libxml2/SAX2.c:1569,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 135
    argCount: 3
    argNames:
    - ctx
    - fullname
    - atts
    argTypes:
    - void*
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1577
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1577
    functionName: xmlSAX1StartElement
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlUnlinkNode
    - xmlValidateRoot
    - xmlNsWarnMsg
    - xmlSAX2AppendChild
    - xmlValidateDtdFinal
    - xmlErrValid
    - xmlNewNs
    - xmlFreeNode
    - xmlCheckDefaultedAttributes
    - xmlSAX1Attribute
    - xmlNewDocNode
    - xmlSearchNsSafe
    - nodePush
    - xmlSAX2ErrMemory
    - xmlSplitQName4
    - xmlSetNs
    linkageType: ''
    returnType: void
    signature: 'static void xmlSAX1StartElement(void *ctx, const xmlChar *fullname,
      const xmlChar **atts) '
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 924
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 924
    functionName: xmlSAX2AppendChild
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xmlSAX2AppendChild(xmlParserCtxtPtr ctxt, xmlNodePtr node) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAX1StartElement
      Src: /src/libxml2/SAX2.c:1709,1
    - Dst: xmlSAX2StartHtmlElement
      Src: /src/libxml2/SAX2.c:1716,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - fullname
    - atts
    argTypes:
    - void*
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1720
      start: 1698
    functionDepth: 0
    functionLinenumber: 1698
    functionLinenumberEnd: 1720
    functionName: xmlSAX2StartElement
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlSAX1StartElement
    - xmlSAX2StartHtmlElement
    linkageType: ''
    returnType: void
    signature: 'void xmlSAX2StartElement(void *ctx, const xmlChar *fullname, const
      xmlChar **atts) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetParameterEntity
      Src: /src/libxml2/SAX2.c:501,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 503
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 503
    functionName: xmlSAX2GetParameterEntity
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlGetParameterEntity
    linkageType: ''
    returnType: xmlEntity*
    signature: 'xmlEntity *xmlSAX2GetParameterEntity(void *ctx, const xmlChar *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDocPI
      Src: /src/libxml2/SAX2.c:2615,1
    - Dst: xmlSAX2AppendChild
      Src: /src/libxml2/SAX2.c:2621,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:2617,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - target
    - data
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2622
      start: 2606
    functionDepth: 0
    functionLinenumber: 2606
    functionLinenumberEnd: 2622
    functionName: xmlSAX2ProcessingInstruction
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlSAX2ErrMemory
    - xmlSAX2AppendChild
    - xmlNewDocPI
    linkageType: ''
    returnType: void
    signature: 'void xmlSAX2ProcessingInstruction(void *ctx, const xmlChar *target,
      const xmlChar *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDocComment
      Src: /src/libxml2/SAX2.c:2638,1
    - Dst: xmlSAX2AppendChild
      Src: /src/libxml2/SAX2.c:2644,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:2640,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2645
      start: 2630
    functionDepth: 0
    functionLinenumber: 2630
    functionLinenumberEnd: 2645
    functionName: xmlSAX2Comment
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlNewDocComment
    - xmlSAX2ErrMemory
    - xmlSAX2AppendChild
    linkageType: ''
    returnType: void
    signature: 'void xmlSAX2Comment(void *ctx, const xmlChar *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSAX2Text
      Src: /src/libxml2/SAX2.c:2657,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - value
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 2658
      start: 2654
    functionDepth: 0
    functionLinenumber: 2654
    functionLinenumberEnd: 2658
    functionName: xmlSAX2CDataBlock
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlSAX2Text
    linkageType: ''
    returnType: void
    signature: 'void xmlSAX2CDataBlock(void *ctx, const xmlChar *value, int len) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/SAX2.c:319,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/SAX2.c:305,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:304,1
    - Dst: xmlNewDtd
      Src: /src/libxml2/SAX2.c:303,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:321,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/SAX2.c:327,1
    - Dst: xmlCanonicPath
      Src: /src/libxml2/SAX2.c:331,1
    - Dst: xmlParseExternalSubset
      Src: /src/libxml2/SAX2.c:341,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/SAX2.c:348,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:363,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:375,1
    - Dst: xmlCtxtPopInput
      Src: /src/libxml2/SAX2.c:348,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/SAX2.c:374,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/SAX2.c:362,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 77
    argCount: 4
    argNames:
    - ctx
    - name
    - publicId
    - systemId
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 379
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 379
    functionName: xmlSAX2ExternalSubset
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictOwns
    - xmlFreeInputStream
    - xmlCtxtPushInput
    - xmlNewDtd
    - xmlCtxtPopInput
    - xmlParseExternalSubset
    - xmlCanonicPath
    - xmlSAX2ErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: "void xmlSAX2ExternalSubset(void *ctx, const xmlChar *name,\t const
      xmlChar *publicId, const xmlChar *systemId) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDocNode
      Src: /src/libxml2/SAX2.c:1648,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/SAX2.c:1669,1
    - Dst: nodePush
      Src: /src/libxml2/SAX2.c:1668,1
    - Dst: xmlSAX2AppendChild
      Src: /src/libxml2/SAX2.c:1663,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1650,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/SAX2.c:1670,1
    - Dst: xmlSAX2HtmlAttribute
      Src: /src/libxml2/SAX2.c:1679,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - ctxt
    - fullname
    - atts
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1684
      start: 1639
    functionDepth: 0
    functionLinenumber: 1639
    functionLinenumberEnd: 1684
    functionName: xmlSAX2StartHtmlElement
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlUnlinkNode
    - xmlSAX2AppendChild
    - xmlFreeNode
    - xmlNewDocNode
    - nodePush
    - xmlSAX2HtmlAttribute
    - xmlSAX2ErrMemory
    linkageType: ''
    returnType: void
    signature: 'static void xmlSAX2StartHtmlElement(xmlParserCtxtPtr ctxt, const xmlChar
      *fullname, const xmlChar **atts) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewReference
      Src: /src/libxml2/SAX2.c:2428,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:2430,1
    - Dst: xmlSAX2AppendChild
      Src: /src/libxml2/SAX2.c:2434,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2435
      start: 2421
    functionDepth: 0
    functionLinenumber: 2421
    functionLinenumberEnd: 2435
    functionName: xmlSAX2Reference
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlNewReference
    - xmlSAX2AppendChild
    - xmlSAX2ErrMemory
    linkageType: ''
    returnType: void
    signature: 'void xmlSAX2Reference(void *ctx, const xmlChar *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: xmlSAX2IsStandalone
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlSAX2IsStandalone(void *ctx) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetIntSubset
      Src: /src/libxml2/SAX2.c:246,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/SAX2.c:248,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:255,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/SAX2.c:249,1
    - Dst: xmlCreateIntSubset
      Src: /src/libxml2/SAX2.c:253,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - name
    - publicId
    - systemId
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 256
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 256
    functionName: xmlSAX2InternalSubset
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlUnlinkNode
    - xmlCreateIntSubset
    - xmlSAX2ErrMemory
    - xmlGetIntSubset
    - xmlFreeDtd
    linkageType: ''
    returnType: void
    signature: "void xmlSAX2InternalSubset(void *ctx, const xmlChar *name,\t const
      xmlChar *publicId, const xmlChar *systemId) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetPredefinedEntity
      Src: /src/libxml2/SAX2.c:458,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/SAX2.c:471,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/SAX2.c:468,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/SAX2.c:465,1
    - Dst: xmlFatalErrMsg
      Src: /src/libxml2/SAX2.c:473,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/SAX2.c:481,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 484
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 484
    functionName: xmlSAX2GetEntity
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlFatalErrMsg
    - xmlGetDocEntity
    - xmlGetPredefinedEntity
    linkageType: ''
    returnType: xmlEntity*
    signature: 'xmlEntity *xmlSAX2GetEntity(void *ctx, const xmlChar *name) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: htmlNewDocNoDtD
      Src: /src/libxml2/SAX2.c:799,1
    - Dst: xmlNewDoc
      Src: /src/libxml2/SAX2.c:809,1
    - Dst: xmlDictReference
      Src: /src/libxml2/SAX2.c:822,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:817,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:801,1
    - Dst: xmlPathToURI
      Src: /src/libxml2/SAX2.c:827,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:829,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 831
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 831
    functionName: xmlSAX2StartDocument
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - htmlNewDocNoDtD
    - xmlDictReference
    - xmlNewDoc
    - xmlPathToURI
    - xmlSAX2ErrMemory
    linkageType: ''
    returnType: void
    signature: 'void xmlSAX2StartDocument(void *ctx) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/SAX2.c:1273,1
    - Dst: xmlStrcat
      Src: /src/libxml2/SAX2.c:1284,1
    - Dst: xmlStrcat
      Src: /src/libxml2/SAX2.c:1286,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1291,1
    - Dst: xmlErrValid
      Src: /src/libxml2/SAX2.c:1311,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/SAX2.c:1349,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:1316,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:1382,1
    - Dst: xmlStrdup
      Src: /src/libxml2/SAX2.c:1288,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/SAX2.c:1304,1
    - Dst: xmlBuildQName
      Src: /src/libxml2/SAX2.c:1356,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/SAX2.c:1371,1
    - Dst: xmlGetDtdQElementDesc
      Src: /src/libxml2/SAX2.c:1251,1
    - Dst: xmlStrdup
      Src: /src/libxml2/SAX2.c:1282,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/SAX2.c:1345,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1358,1
    - Dst: xmlGetDtdQElementDesc
      Src: /src/libxml2/SAX2.c:1389,1
    - Dst: xmlGetDtdQElementDesc
      Src: /src/libxml2/SAX2.c:1249,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/SAX2.c:1276,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/SAX2.c:1343,1
    - Dst: xmlSAX1Attribute
      Src: /src/libxml2/SAX2.c:1378,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 105
    argCount: 4
    argNames:
    - ctxt
    - name
    - prefix
    - atts
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1395
      start: 1241
    functionDepth: 0
    functionLinenumber: 1241
    functionLinenumberEnd: 1395
    functionName: xmlCheckDefaultedAttributes
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetDtdQAttrDesc
    - xmlGetDtdQElementDesc
    - xmlErrValid
    - xmlStrdup
    - xmlSAX1Attribute
    - xmlStrEqual
    - xmlBuildQName
    - xmlSAX2ErrMemory
    - xmlStrcat
    linkageType: ''
    returnType: void
    signature: "static void xmlCheckDefaultedAttributes(xmlParserCtxtPtr ctxt, const
      xmlChar *name,\tconst xmlChar *prefix, const xmlChar **atts) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewNsProp
      Src: /src/libxml2/SAX2.c:1587,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1589,1
    - Dst: xmlStrdup
      Src: /src/libxml2/SAX2.c:1594,1
    - Dst: htmlIsBooleanAttr
      Src: /src/libxml2/SAX2.c:1593,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1596,1
    - Dst: xmlNewDocText
      Src: /src/libxml2/SAX2.c:1603,1
    - Dst: xmlSAX2ErrMemory
      Src: /src/libxml2/SAX2.c:1605,1
    - Dst: xmlIsID
      Src: /src/libxml2/SAX2.c:1620,1
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/SAX2.c:1623,1
    - Dst: xmlAddID
      Src: /src/libxml2/SAX2.c:1625,1
    - Dst: xmlFree
      Src: /src/libxml2/SAX2.c:1629,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - ctxt
    - fullname
    - value
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1630
      start: 1581
    functionDepth: 0
    functionLinenumber: 1581
    functionLinenumberEnd: 1630
    functionName: xmlSAX2HtmlAttribute
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlAddID
    - htmlIsBooleanAttr
    - xmlCtxtErrMemory
    - xmlStrdup
    - xmlNewDocText
    - xmlIsID
    - xmlSAX2ErrMemory
    - xmlNewNsProp
    linkageType: ''
    returnType: void
    signature: 'static void xmlSAX2HtmlAttribute(xmlParserCtxtPtr ctxt, const xmlChar
      *fullname, const xmlChar *value) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateOneElement
      Src: /src/libxml2/SAX2.c:1743,1
    - Dst: nodePop
      Src: /src/libxml2/SAX2.c:1753,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1755
      start: 1732
    functionDepth: 0
    functionLinenumber: 1732
    functionLinenumberEnd: 1755
    functionName: xmlSAX2EndElement
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlValidateOneElement
    - nodePop
    linkageType: ''
    returnType: void
    signature: 'void xmlSAX2EndElement(void *ctx, const xmlChar *name ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateOneElement
      Src: /src/libxml2/SAX2.c:2405,1
    - Dst: nodePop
      Src: /src/libxml2/SAX2.c:2412,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2413
      start: 2391
    functionDepth: 0
    functionLinenumber: 2391
    functionLinenumberEnd: 2413
    functionName: xmlSAX2EndElementNs
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached:
    - xmlValidateOneElement
    - nodePop
    linkageType: ''
    returnType: void
    signature: "void xmlSAX2EndElementNs(void *ctx, const xmlChar * localname ATTRIBUTE_UNUSED,
      const xmlChar * prefix ATTRIBUTE_UNUSED,\t\t const xmlChar * URI ATTRIBUTE_UNUSED) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2816
      start: 2813
    functionDepth: 0
    functionLinenumber: 2813
    functionLinenumberEnd: 2816
    functionName: htmlDefaultSAXHandlerInit
    functionSourceFile: /src/libxml2/SAX2.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void htmlDefaultSAXHandlerInit(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrlen
      Src: /src/libxml2/xmlstring.c:334,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/xmlstring.c:339,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 2
    argNames:
    - str
    - val
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 344
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 344
    functionName: xmlStrstr
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - xmlStrncmp
    - xmlStrlen
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlStrstr(const xmlChar *str, const xmlChar *val) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libxml2/xmlstring.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 407
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 407
    functionName: xmlStrlen
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: 'int xmlStrlen(const xmlChar *str) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlstring.c:499,1
    - Dst: xmlStrncat
      Src: /src/libxml2/xmlstring.c:502,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 2
    argNames:
    - cur
    - add
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 503
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 503
    functionName: xmlStrcat
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlStrncat
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlStrcat(xmlChar *cur, const xmlChar *add) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/xmlstring.c:685,1
    - Dst: va_end
      Src: /src/libxml2/xmlstring.c:687,1
    - Dst: xmlStrVASPrintf
      Src: /src/libxml2/xmlstring.c:686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - out
    - maxSize
    - msg
    - '...'
    argTypes:
    - xmlChar**
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 690
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 690
    functionName: xmlStrASPrintf
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - xmlStrVASPrintf
    linkageType: ''
    returnType: int
    signature: 'int xmlStrASPrintf(xmlChar **out, int maxSize, const char *msg, ...) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - utf
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 734
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 734
    functionName: xmlUTF8Size
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlUTF8Size(const xmlChar *utf) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 2
    argNames:
    - str
    - val
    argTypes:
    - xmlChar*
    - xmlChar
    constantsTouched: []
    func_position:
      end: 318
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 318
    functionName: xmlStrchr
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlStrchr(const xmlChar *str, xmlChar val) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrlen
      Src: /src/libxml2/xmlstring.c:462,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlstring.c:474,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlstring.c:469,1
    - Dst: xmlStrlen
      Src: /src/libxml2/xmlstring.c:471,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xmlstring.c:467,1
    - Dst: memcpy
      Src: /src/libxml2/xmlstring.c:477,1
    - Dst: memcpy
      Src: /src/libxml2/xmlstring.c:478,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 3
    argNames:
    - str1
    - str2
    - len
    argTypes:
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 481
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 481
    functionName: xmlStrncatNew
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - memcpy
    - xmlStrndup
    - xmlStrlen
    - xmlStrdup
    - xmlMalloc
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlStrncatNew(const xmlChar *str1, const xmlChar *str2, int
      len) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/libxml2/xmlstring.c:580,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlstring.c:593,1
    - Dst: vsnprintf
      Src: /src/libxml2/xmlstring.c:596,1
    - Dst: va_end
      Src: /src/libxml2/xmlstring.c:582,1
    - Dst: vsnprintf
      Src: /src/libxml2/xmlstring.c:581,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlstring.c:597,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlstring.c:622,1
    - Dst: va_copy
      Src: /src/libxml2/xmlstring.c:626,1
    - Dst: vsnprintf
      Src: /src/libxml2/xmlstring.c:627,1
    - Dst: va_end
      Src: /src/libxml2/xmlstring.c:628,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlstring.c:637,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 4
    argNames:
    - out
    - maxSize
    - msg
    - ap
    argTypes:
    - xmlChar**
    - int
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 668
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 668
    functionName: xmlStrVASPrintf
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - xmlFree
    - va_copy
    - va_end
    - xmlMalloc
    - vsnprintf
    linkageType: ''
    returnType: int
    signature: 'int xmlStrVASPrintf(xmlChar **out, int maxSize, const char *msg, va_list
      ap) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 276
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 276
    functionName: xmlStrcasecmp
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlStrcasecmp(const xmlChar *str1, const xmlChar *str2) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vsnprintf
      Src: /src/libxml2/xmlstring.c:548,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - buf
    - len
    - msg
    - ap
    argTypes:
    - xmlChar*
    - int
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 552
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 552
    functionName: xmlStrVPrintf
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - vsnprintf
    linkageType: ''
    returnType: int
    signature: 'int xmlStrVPrintf(xmlChar *buf, int len, const char *msg, va_list
      ap) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - utf
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 791
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 791
    functionName: xmlUTF8Strlen
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlUTF8Strlen(const xmlChar *utf) '
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 2
    argNames:
    - utf
    - pos
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1004
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 1004
    functionName: xmlUTF8Strpos
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlUTF8Strpos(const xmlChar *utf, int pos) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlUTF8Strsize
      Src: /src/libxml2/xmlstring.c:1021,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/xmlstring.c:1023,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 2
    argNames:
    - utf
    - utfchar
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1038
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1038
    functionName: xmlUTF8Strloc
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - xmlStrncmp
    - xmlUTF8Strsize
    linkageType: ''
    returnType: int
    signature: 'int xmlUTF8Strloc(const xmlChar *utf, const xmlChar *utfchar) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrndup
      Src: /src/libxml2/xmlstring.c:431,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlstring.c:438,1
    - Dst: memcpy
      Src: /src/libxml2/xmlstring.c:441,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlstring.c:436,1
    - Dst: xmlStrlen
      Src: /src/libxml2/xmlstring.c:433,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 3
    argNames:
    - cur
    - add
    - len
    argTypes:
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 444
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 444
    functionName: xmlStrncat
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memcpy
    - xmlStrndup
    - xmlRealloc
    - xmlStrlen
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlStrncat(xmlChar *cur, const xmlChar *add, int len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/xmlstring.c:523,1
    - Dst: va_end
      Src: /src/libxml2/xmlstring.c:525,1
    - Dst: vsnprintf
      Src: /src/libxml2/xmlstring.c:524,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - buf
    - len
    - msg
    - '...'
    argTypes:
    - xmlChar*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 529
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 529
    functionName: xmlStrPrintf
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - vsnprintf
    linkageType: ''
    returnType: int
    signature: 'int xmlStrPrintf(xmlChar *buf, int len, const char *msg, ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrncmp
      Src: /src/libxml2/xmlstring.c:751,1
    - Dst: xmlUTF8Size
      Src: /src/libxml2/xmlstring.c:751,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - utf1
    - utf2
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 752
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 752
    functionName: xmlUTF8Charcmp
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - xmlStrncmp
    - xmlUTF8Size
    linkageType: ''
    returnType: int
    signature: 'int xmlUTF8Charcmp(const xmlChar *utf1, const xmlChar *utf2) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlUTF8Strsize
      Src: /src/libxml2/xmlstring.c:964,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlstring.c:965,1
    - Dst: memcpy
      Src: /src/libxml2/xmlstring.c:969,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - utf
    - len
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 972
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 972
    functionName: xmlUTF8Strndup
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - xmlUTF8Strsize
    - xmlMalloc
    - memcpy
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlUTF8Strndup(const xmlChar *utf, int len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCharStrndup
      Src: /src/libxml2/xmlstring.c:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 1
    argNames:
    - cur
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: xmlCharStrdup
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - xmlCharStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlCharStrdup(const char *cur) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlstring.c:181,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 11
    argCount: 3
    argNames:
    - pref
    - name
    - str
    argTypes:
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 193
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 193
    functionName: xmlStrQEqual
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'int xmlStrQEqual(const xmlChar *pref, const xmlChar *name, const xmlChar
      *str) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/libxml2/xmlstring.c:211,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 3
    argNames:
    - str1
    - str2
    - len
    argTypes:
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 219
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 219
    functionName: xmlStrncmp
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: 'int xmlStrncmp(const xmlChar *str1, const xmlChar *str2, int len) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 2
    argNames:
    - utf
    - len
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 948
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 948
    functionName: xmlUTF8Strsize
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlUTF8Strsize(const xmlChar *utf, int len) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/xmlstring.c:161,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 168
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 168
    functionName: xmlStrEqual
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: 'int xmlStrEqual(const xmlChar *str1, const xmlChar *str2) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 3
    argNames:
    - str1
    - str2
    - len
    argTypes:
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 300
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 300
    functionName: xmlStrncasecmp
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlStrncasecmp(const xmlChar *str1, const xmlChar *str2, int len) '
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 65
    argCount: 2
    argNames:
    - utf
    - len
    argTypes:
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 859
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 859
    functionName: xmlGetUTF8Char
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlGetUTF8Char(const unsigned char *utf, int *len) '
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 1
    argNames:
    - utf
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 912
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 912
    functionName: xmlCheckUTF8
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlCheckUTF8(const unsigned char *utf) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlUTF8Strndup
      Src: /src/libxml2/xmlstring.c:1078,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 3
    argNames:
    - utf
    - start
    - len
    argTypes:
    - xmlChar*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1079
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1079
    functionName: xmlUTF8Strsub
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - xmlUTF8Strndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlUTF8Strsub(const xmlChar *utf, int start, int len) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlstring.c:53,1
    - Dst: memcpy
      Src: /src/libxml2/xmlstring.c:57,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - cur
    - len
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: xmlStrndup
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - xmlMalloc
    - memcpy
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlStrndup(const xmlChar *cur, int len) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlstring.c:93,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - cur
    - len
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: xmlCharStrndup
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - xmlMalloc
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlCharStrndup(const char *cur, int len) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrndup
      Src: /src/libxml2/xmlstring.c:393,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 3
    argNames:
    - str
    - start
    - len
    argTypes:
    - xmlChar*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 394
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 394
    functionName: xmlStrsub
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - xmlStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlStrsub(const xmlChar *str, int start, int len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrndup
      Src: /src/libxml2/xmlstring.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: xmlStrdup
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - xmlStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlStrdup(const xmlChar *cur) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/xmlstring.c:136,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 144
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 144
    functionName: xmlStrcmp
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: 'int xmlStrcmp(const xmlChar *str1, const xmlChar *str2) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrlen
      Src: /src/libxml2/xmlstring.c:360,1
    - Dst: xmlStrncasecmp
      Src: /src/libxml2/xmlstring.c:365,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 2
    argNames:
    - str
    - val
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 369
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 369
    functionName: xmlStrcasestr
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - xmlStrncasecmp
    - xmlStrlen
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlStrcasestr(const xmlChar *str, const xmlChar *val) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlstring.c:1115,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlstring.c:1131,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlstring.c:1119,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 1
    argNames:
    - msg
    argTypes:
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1135
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1135
    functionName: xmlEscapeFormatString
    functionSourceFile: /src/libxml2/xmlstring.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlMalloc
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlEscapeFormatString(xmlChar **msg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 0
    argNames:
    - 4,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 251
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void LIBXML_ATTR_FORMAT(4,0) xmlSchematronPErr(xmlSchematronParserCtxtPtr
      ctxt, xmlNodePtr node, int error, const char *msg, const xmlChar * str1, const
      xmlChar * str2){ xmlGenericErrorFunc channel = NULL; xmlStructuredErrorFunc
      schannel = NULL; void *data = NULL; int res; if (ctxt != NULL) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:396,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:401,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxml2/schematron.c:398,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:400,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - tests
    argTypes:
    - xmlSchematronTestPtr
    constantsTouched: []
    func_position:
      end: 404
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 404
    functionName: xmlSchematronFreeTests
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathFreeCompExpr
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchematronFreeTests(xmlSchematronTestPtr tests) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/schematron.c:678,1
    - Dst: memset
      Src: /src/libxml2/schematron.c:683,1
    - Dst: xmlDictCreate
      Src: /src/libxml2/schematron.c:686,1
    - Dst: xmlSchematronPErrMemory
      Src: /src/libxml2/schematron.c:680,1
    - Dst: xmlXPathNewContext
      Src: /src/libxml2/schematron.c:687,1
    - Dst: xmlSchematronPErrMemory
      Src: /src/libxml2/schematron.c:689,1
    - Dst: xmlSchematronFreeParserCtxt
      Src: /src/libxml2/schematron.c:690,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 694
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 694
    functionName: xmlSchematronNewMemParserCtxt
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlDictCreate
    - xmlXPathNewContext
    - memset
    - xmlSchematronFreeParserCtxt
    - xmlSchematronPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchematronParserCtxt*
    signature: 'xmlSchematronParserCtxt *xmlSchematronNewMemParserCtxt(const char
      *buffer, int size) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1763
      start: 1730
    functionDepth: 0
    functionLinenumber: 1730
    functionLinenumberEnd: 1763
    functionName: xmlSchematronNextNode
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlSchematronNextNode(xmlNodePtr cur) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCtxtCompile
      Src: /src/libxml2/schematron.c:351,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:353,1
    - Dst: memset
      Src: /src/libxml2/schematron.c:365,1
    - Dst: xmlMalloc
      Src: /src/libxml2/schematron.c:360,1
    - Dst: xmlSchematronPErrMemory
      Src: /src/libxml2/schematron.c:362,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 6
    argNames:
    - ctxt
    - type
    - rule
    - node
    - test
    - report
    argTypes:
    - xmlSchematronParserCtxtPtr
    - xmlSchematronTestType
    - xmlSchematronRulePtr
    - xmlNodePtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 382
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 382
    functionName: xmlSchematronAddTest
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlXPathCtxtCompile
    - memset
    - xmlSchematronPErr
    - xmlSchematronPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchematronTestPtr
    signature: 'static xmlSchematronTestPtr xmlSchematronAddTest(xmlSchematronParserCtxtPtr
      ctxt, xmlSchematronTestType type, xmlSchematronRulePtr rule, xmlNodePtr node,
      xmlChar *test, xmlChar *report) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/schematron.c:588,1
    - Dst: xmlDictReference
      Src: /src/libxml2/schematron.c:595,1
    - Dst: xmlSchematronPErrMemory
      Src: /src/libxml2/schematron.c:590,1
    - Dst: memset
      Src: /src/libxml2/schematron.c:593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchematronParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 598
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 598
    functionName: xmlSchematronNewSchematron
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - memset
    - xmlSchematronPErrMemory
    - xmlDictReference
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchematronPtr
    signature: 'static xmlSchematronPtr xmlSchematronNewSchematron(xmlSchematronParserCtxtPtr
      ctxt) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/schematron.c:1908,1
    - Dst: xmlSchematronRegisterVariables
      Src: /src/libxml2/schematron.c:1927,1
    - Dst: xmlSchematronRunTest
      Src: /src/libxml2/schematron.c:1932,1
    - Dst: xmlPatternMatch
      Src: /src/libxml2/schematron.c:1924,1
    - Dst: xmlSchematronUnregisterVariables
      Src: /src/libxml2/schematron.c:1936,1
    - Dst: xmlSchematronNextNode
      Src: /src/libxml2/schematron.c:1944,1
    - Dst: xmlSchematronReportPattern
      Src: /src/libxml2/schematron.c:1953,1
    - Dst: xmlPatternMatch
      Src: /src/libxml2/schematron.c:1965,1
    - Dst: xmlSchematronRegisterVariables
      Src: /src/libxml2/schematron.c:1967,1
    - Dst: xmlSchematronRunTest
      Src: /src/libxml2/schematron.c:1971,1
    - Dst: xmlSchematronUnregisterVariables
      Src: /src/libxml2/schematron.c:1975,1
    - Dst: xmlSchematronNextNode
      Src: /src/libxml2/schematron.c:1981,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 2
    argNames:
    - ctxt
    - instance
    argTypes:
    - xmlSchematronValidCtxt*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 1987
      start: 1896
    functionDepth: 0
    functionLinenumber: 1896
    functionLinenumberEnd: 1987
    functionName: xmlSchematronValidateDoc
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlSchematronUnregisterVariables
    - xmlSchematronReportPattern
    - xmlSchematronNextNode
    - xmlSchematronRegisterVariables
    - xmlPatternMatch
    - xmlSchematronRunTest
    linkageType: ''
    returnType: int
    signature: 'int xmlSchematronValidateDoc(xmlSchematronValidCtxt *ctxt, xmlDoc
      *instance) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames:
    - 3,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 303
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void LIBXML_ATTR_FORMAT(3,0) xmlSchematronVErr(xmlSchematronValidCtxtPtr
      ctxt, int error, const char *msg, const xmlChar * str1){ xmlGenericErrorFunc
      channel = NULL; xmlStructuredErrorFunc schannel = NULL; void *data = NULL; int
      res; if (ctxt != NULL) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:571,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:572,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - patterns
    argTypes:
    - xmlSchematronPatternPtr
    constantsTouched: []
    func_position:
      end: 575
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 575
    functionName: xmlSchematronFreePatterns
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchematronFreePatterns(xmlSchematronPatternPtr patterns) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeDoc
      Src: /src/libxml2/schematron.c:744,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:749,1
    - Dst: xmlDictFree
      Src: /src/libxml2/schematron.c:750,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/schematron.c:746,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchematronParserCtxt*
    constantsTouched: []
    func_position:
      end: 752
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 752
    functionName: xmlSchematronFreeParserCtxt
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathFreeContext
    - xmlDictFree
    - xmlFreeDoc
    linkageType: ''
    returnType: void
    signature: 'void xmlSchematronFreeParserCtxt(xmlSchematronParserCtxt *ctxt) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetNoNsProp
      Src: /src/libxml2/schematron.c:1147,1
    - Dst: xmlReadFile
      Src: /src/libxml2/schematron.c:1158,1
    - Dst: xmlBuildURI
      Src: /src/libxml2/schematron.c:1157,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1149,1
    - Dst: xmlNodeGetBase
      Src: /src/libxml2/schematron.c:1156,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1160,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/schematron.c:1166,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1168,1
    - Dst: xmlSchematronPushInclude
      Src: /src/libxml2/schematron.c:1176,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/schematron.c:1181,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:1183,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:1185,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:1187,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlSchematronParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1189
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1189
    functionName: xmlSchematronLoadInclude
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlFree
    - xmlSchematronPushInclude
    - xmlGetNoNsProp
    - xmlNodeGetBase
    - xmlReadFile
    - xmlSchematronPErr
    - xmlFreeDoc
    - xmlBuildURI
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlSchematronLoadInclude(xmlSchematronParserCtxtPtr
      ctxt, xmlNodePtr cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlPrintErrorMessage
      Src: /src/libxml2/schematron.c:1401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - msg
    argTypes:
    - xmlSchematronValidCtxtPtr
    - xmlNodePtr
    - char*
    constantsTouched: []
    func_position:
      end: 1402
      start: 1396
    functionDepth: 0
    functionLinenumber: 1396
    functionLinenumberEnd: 1402
    functionName: xmlSchematronReportOutput
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlPrintErrorMessage
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchematronReportOutput(xmlSchematronValidCtxtPtr ctxt
      ATTRIBUTE_UNUSED, xmlNodePtr cur ATTRIBUTE_UNUSED, const char *msg) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/schematron.c:1724,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:1727,1
    - Dst: xmlDictFree
      Src: /src/libxml2/schematron.c:1726,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchematronValidCtxt*
    constantsTouched: []
    func_position:
      end: 1728
      start: 1718
    functionDepth: 0
    functionLinenumber: 1718
    functionLinenumberEnd: 1728
    functionName: xmlSchematronFreeValidCtxt
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathFreeContext
    - xmlDictFree
    linkageType: ''
    returnType: void
    signature: 'void xmlSchematronFreeValidCtxt(xmlSchematronValidCtxt *ctxt) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlPatterncompile
      Src: /src/libxml2/schematron.c:452,1
    - Dst: xmlMalloc
      Src: /src/libxml2/schematron.c:461,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:455,1
    - Dst: memset
      Src: /src/libxml2/schematron.c:466,1
    - Dst: xmlSchematronPErrMemory
      Src: /src/libxml2/schematron.c:463,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 6
    argNames:
    - ctxt
    - schema
    - pat
    - node
    - context
    - report
    argTypes:
    - xmlSchematronParserCtxtPtr
    - xmlSchematronPtr
    - xmlSchematronPatternPtr
    - xmlNodePtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 493
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 493
    functionName: xmlSchematronAddRule
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - memset
    - xmlSchematronPErr
    - xmlSchematronPErrMemory
    - xmlMalloc
    - xmlPatterncompile
    linkageType: ''
    returnType: xmlSchematronRulePtr
    signature: 'static xmlSchematronRulePtr xmlSchematronAddRule(xmlSchematronParserCtxtPtr
      ctxt, xmlSchematronPtr schema, xmlSchematronPatternPtr pat, xmlNodePtr node,
      xmlChar *context, xmlChar *report) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathEval
      Src: /src/libxml2/schematron.c:1377,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/schematron.c:1385,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - ctxt
    - cur
    - xpath
    argTypes:
    - xmlSchematronValidCtxtPtr
    - xmlNodePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1387
      start: 1366
    functionDepth: 0
    functionLinenumber: 1366
    functionLinenumberEnd: 1387
    functionName: xmlSchematronGetNode
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlXPathFreeObject
    - xmlXPathEval
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlSchematronGetNode(xmlSchematronValidCtxtPtr ctxt,
      xmlNodePtr cur, const xmlChar *xpath) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/schematron.c:1688,1
    - Dst: xmlSchematronVErrMemory
      Src: /src/libxml2/schematron.c:1690,1
    - Dst: xmlSchematronPErrMemory
      Src: /src/libxml2/schematron.c:1699,1
    - Dst: xmlXPathNewContext
      Src: /src/libxml2/schematron.c:1696,1
    - Dst: memset
      Src: /src/libxml2/schematron.c:1693,1
    - Dst: xmlSchematronFreeValidCtxt
      Src: /src/libxml2/schematron.c:1700,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxml2/schematron.c:1707,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - schema
    - options
    argTypes:
    - xmlSchematron*
    - int
    constantsTouched: []
    func_position:
      end: 1711
      start: 1679
    functionDepth: 0
    functionLinenumber: 1679
    functionLinenumberEnd: 1711
    functionName: xmlSchematronNewValidCtxt
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlXPathNewContext
    - memset
    - xmlSchematronFreeValidCtxt
    - xmlXPathRegisterNs
    - xmlSchematronPErrMemory
    - xmlMalloc
    - xmlSchematronVErrMemory
    linkageType: ''
    returnType: xmlSchematronValidCtxt*
    signature: 'xmlSchematronValidCtxt *xmlSchematronNewValidCtxt(xmlSchematron *schema,
      int options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathRegisterVariableNS
      Src: /src/libxml2/schematron.c:1878,1
    - Dst: xmlSchematronVErr
      Src: /src/libxml2/schematron.c:1879,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - vctxt
    - ctxt
    - let
    argTypes:
    - xmlSchematronValidCtxtPtr
    - xmlXPathContextPtr
    - xmlSchematronLetPtr
    constantsTouched: []
    func_position:
      end: 1886
      start: 1872
    functionDepth: 0
    functionLinenumber: 1872
    functionLinenumberEnd: 1886
    functionName: xmlSchematronUnregisterVariables
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlXPathRegisterVariableNS
    - xmlSchematronVErr
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchematronUnregisterVariables(xmlSchematronValidCtxtPtr
      vctxt, xmlXPathContextPtr ctxt, xmlSchematronLetPtr let) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ctxt
    - serror
    - ctx
    argTypes:
    - xmlSchematronValidCtxt*
    - xmlStructuredErrorFunc
    - void*
    constantsTouched: []
    func_position:
      end: 1670
      start: 1660
    functionDepth: 0
    functionLinenumber: 1660
    functionLinenumberEnd: 1670
    functionName: xmlSchematronSetValidStructuredErrors
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlSchematronSetValidStructuredErrors(xmlSchematronValidCtxt
      *ctxt, xmlStructuredErrorFunc serror, void *ctx) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:418,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxml2/schematron.c:420,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - lets
    argTypes:
    - xmlSchematronLetPtr
    constantsTouched: []
    func_position:
      end: 424
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 424
    functionName: xmlSchematronFreeLets
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXPathFreeCompExpr
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchematronFreeLets(xmlSchematronLetPtr lets) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libxml2/schematron.c:1641,1
    - Dst: xmlSchematronReportOutput
      Src: /src/libxml2/schematron.c:1642,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - ctxt
    - pattern
    argTypes:
    - xmlSchematronValidCtxtPtr
    - xmlSchematronPatternPtr
    constantsTouched: []
    func_position:
      end: 1644
      start: 1627
    functionDepth: 0
    functionLinenumber: 1627
    functionLinenumberEnd: 1644
    functionName: xmlSchematronReportPattern
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - snprintf
    - xmlSchematronReportOutput
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchematronReportPattern(xmlSchematronValidCtxtPtr ctxt,
      xmlSchematronPatternPtr pattern) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompiledEval
      Src: /src/libxml2/schematron.c:1847,1
    - Dst: xmlSchematronVErr
      Src: /src/libxml2/schematron.c:1855,1
    - Dst: xmlXPathRegisterVariableNS
      Src: /src/libxml2/schematron.c:1854,1
    - Dst: xmlSchematronVErr
      Src: /src/libxml2/schematron.c:1849,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - vctxt
    - ctxt
    - let
    - instance
    - cur
    argTypes:
    - xmlSchematronValidCtxtPtr
    - xmlXPathContextPtr
    - xmlSchematronLetPtr
    - xmlDocPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1862
      start: 1836
    functionDepth: 0
    functionLinenumber: 1836
    functionLinenumberEnd: 1862
    functionName: xmlSchematronRegisterVariables
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlXPathCompiledEval
    - xmlXPathRegisterVariableNS
    - xmlSchematronVErr
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchematronRegisterVariables(xmlSchematronValidCtxtPtr
      vctxt, xmlXPathContextPtr ctxt, xmlSchematronLetPtr let, xmlDocPtr instance,
      xmlNodePtr cur) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/schematron.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchematronValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 279
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 279
    functionName: xmlSchematronVErrMemory
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlRaiseMemoryError
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchematronVErrMemory(xmlSchematronValidCtxtPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/schematron.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchematronParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: xmlSchematronPErrMemory
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlRaiseMemoryError
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchematronPErrMemory(xmlSchematronParserCtxtPtr ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/schematron.c:640,1
    - Dst: xmlDictCreate
      Src: /src/libxml2/schematron.c:647,1
    - Dst: xmlSchematronPErrMemory
      Src: /src/libxml2/schematron.c:642,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/schematron.c:648,1
    - Dst: memset
      Src: /src/libxml2/schematron.c:645,1
    - Dst: xmlXPathNewContext
      Src: /src/libxml2/schematron.c:650,1
    - Dst: xmlSchematronPErrMemory
      Src: /src/libxml2/schematron.c:652,1
    - Dst: xmlSchematronFreeParserCtxt
      Src: /src/libxml2/schematron.c:653,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 658
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 658
    functionName: xmlSchematronNewParserCtxt
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlDictCreate
    - xmlDictLookup
    - xmlXPathNewContext
    - memset
    - xmlSchematronFreeParserCtxt
    - xmlSchematronPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchematronParserCtxt*
    signature: 'xmlSchematronParserCtxt *xmlSchematronNewParserCtxt(const char *URL) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeDoc
      Src: /src/libxml2/schematron.c:811,1
    - Dst: xmlSchematronPopInclude
      Src: /src/libxml2/schematron.c:815,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchematronParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 817
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 817
    functionName: xmlSchematronPopInclude
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlSchematronPopInclude
    - xmlFreeDoc
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlSchematronPopInclude(xmlSchematronParserCtxtPtr
      ctxt) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetLineNo
      Src: /src/libxml2/schematron.c:1562,1
    - Dst: xmlSchematronFormatReport
      Src: /src/libxml2/schematron.c:1571,1
    - Dst: xmlStrdup
      Src: /src/libxml2/schematron.c:1574,1
    - Dst: xmlStrdup
      Src: /src/libxml2/schematron.c:1576,1
    - Dst: xmlGetNodePath
      Src: /src/libxml2/schematron.c:1563,1
    - Dst: snprintf
      Src: /src/libxml2/schematron.c:1579,1
    - Dst: xmlRaiseError
      Src: /src/libxml2/schematron.c:1597,1
    - Dst: xmlSchematronVErrMemory
      Src: /src/libxml2/schematron.c:1609,1
    - Dst: xmlSchematronReportOutput
      Src: /src/libxml2/schematron.c:1611,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:1614,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:1617,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 68
    argCount: 5
    argNames:
    - ctxt
    - test
    - cur
    - pattern
    - success
    argTypes:
    - xmlSchematronValidCtxtPtr
    - xmlSchematronTestPtr
    - xmlNodePtr
    - xmlSchematronPatternPtr
    - int
    constantsTouched: []
    func_position:
      end: 1619
      start: 1541
    functionDepth: 0
    functionLinenumber: 1541
    functionLinenumberEnd: 1619
    functionName: xmlSchematronReportSuccess
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlGetLineNo
    - xmlFree
    - xmlStrdup
    - xmlRaiseError
    - xmlGetNodePath
    - xmlSchematronFormatReport
    - xmlSchematronReportOutput
    - snprintf
    - xmlSchematronVErrMemory
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchematronReportSuccess(xmlSchematronValidCtxtPtr ctxt,
      xmlSchematronTestPtr test, xmlNodePtr cur, xmlSchematronPatternPtr pattern,
      int success) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/schematron.c:539,1
    - Dst: memset
      Src: /src/libxml2/schematron.c:544,1
    - Dst: xmlSchematronPErrMemory
      Src: /src/libxml2/schematron.c:541,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - ctxt
    - schema
    - node
    - name
    argTypes:
    - xmlSchematronParserCtxtPtr
    - xmlSchematronPtr
    - xmlNodePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 557
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 557
    functionName: xmlSchematronAddPattern
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - memset
    - xmlSchematronPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchematronPatternPtr
    signature: 'static xmlSchematronPatternPtr xmlSchematronAddPattern(xmlSchematronParserCtxtPtr
      ctxt, xmlSchematronPtr schema, xmlNodePtr node, xmlChar *name) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeDoc
      Src: /src/libxml2/schematron.c:612,1
    - Dst: xmlSchematronFreePatterns
      Src: /src/libxml2/schematron.c:618,1
    - Dst: xmlSchematronFreeRules
      Src: /src/libxml2/schematron.c:617,1
    - Dst: xmlDictFree
      Src: /src/libxml2/schematron.c:619,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:615,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:620,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - schema
    argTypes:
    - xmlSchematron*
    constantsTouched: []
    func_position:
      end: 621
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 621
    functionName: xmlSchematronFree
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictFree
    - xmlSchematronFreePatterns
    - xmlFreeDoc
    - xmlSchematronFreeRules
    linkageType: ''
    returnType: void
    signature: 'void xmlSchematronFree(xmlSchematron *schema) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/schematron.c:769,1
    - Dst: xmlRealloc
      Src: /src/libxml2/schematron.c:779,1
    - Dst: xmlSchematronPErrMemory
      Src: /src/libxml2/schematron.c:782,1
    - Dst: xmlSchematronPErrMemory
      Src: /src/libxml2/schematron.c:771,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - ctxt
    - doc
    - cur
    argTypes:
    - xmlSchematronParserCtxtPtr
    - xmlDocPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 791
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 791
    functionName: xmlSchematronPushInclude
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlRealloc
    - xmlSchematronPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchematronPushInclude(xmlSchematronParserCtxtPtr ctxt,
      xmlDocPtr doc, xmlNodePtr cur) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IS_SCHEMATRON
      Src: /src/libxml2/schematron.c:881,1
    - Dst: xmlXPathCtxtCompile
      Src: /src/libxml2/schematron.c:897,1
    - Dst: IS_SCHEMATRON
      Src: /src/libxml2/schematron.c:883,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:889,1
    - Dst: xmlGetNoNsProp
      Src: /src/libxml2/schematron.c:886,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:899,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxml2/schematron.c:904,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:906,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - ctxt
    - con
    argTypes:
    - xmlSchematronParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 910
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 910
    functionName: xmlSchematronParseTestReportMsg
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlFree
    - IS_SCHEMATRON
    - xmlGetNoNsProp
    - xmlXPathCtxtCompile
    - xmlSchematronPErr
    - xmlXPathFreeCompExpr
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchematronParseTestReportMsg(xmlSchematronParserCtxtPtr
      ctxt, xmlNodePtr con) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetNoNsProp
      Src: /src/libxml2/schematron.c:1096,1
    - Dst: NEXT_SCHEMATRON
      Src: /src/libxml2/schematron.c:1107,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:1103,1
    - Dst: xmlGetNoNsProp
      Src: /src/libxml2/schematron.c:1098,1
    - Dst: xmlSchematronAddPattern
      Src: /src/libxml2/schematron.c:1100,1
    - Dst: IS_SCHEMATRON
      Src: /src/libxml2/schematron.c:1109,1
    - Dst: xmlSchematronParseRule
      Src: /src/libxml2/schematron.c:1110,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1113,1
    - Dst: NEXT_SCHEMATRON
      Src: /src/libxml2/schematron.c:1118,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1121,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - ctxt
    - pat
    argTypes:
    - xmlSchematronParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1125
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1125
    functionName: xmlSchematronParsePattern
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlFree
    - IS_SCHEMATRON
    - xmlSchematronAddPattern
    - xmlGetNoNsProp
    - xmlSchematronParseRule
    - NEXT_SCHEMATRON
    - xmlSchematronPErr
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchematronParsePattern(xmlSchematronParserCtxtPtr ctxt,
      xmlNodePtr pat) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchematronGetNode
      Src: /src/libxml2/schematron.c:1435,1
    - Dst: xmlGetNoNsProp
      Src: /src/libxml2/schematron.c:1431,1
    - Dst: xmlStrcat
      Src: /src/libxml2/schematron.c:1442,1
    - Dst: xmlXPathCompiledEval
      Src: /src/libxml2/schematron.c:1454,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:1438,1
    - Dst: xmlStrcat
      Src: /src/libxml2/schematron.c:1444,1
    - Dst: xmlXPathCtxtCompile
      Src: /src/libxml2/schematron.c:1453,1
    - Dst: xmlStrcat
      Src: /src/libxml2/schematron.c:1472,1
    - Dst: snprintf
      Src: /src/libxml2/schematron.c:1479,1
    - Dst: snprintf
      Src: /src/libxml2/schematron.c:1482,1
    - Dst: xmlMalloc
      Src: /src/libxml2/schematron.c:1480,1
    - Dst: xmlStrcat
      Src: /src/libxml2/schematron.c:1489,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/schematron.c:1495,1
    - Dst: xmlStrcat
      Src: /src/libxml2/schematron.c:1427,1
    - Dst: IS_SCHEMATRON
      Src: /src/libxml2/schematron.c:1428,1
    - Dst: xmlStrcat
      Src: /src/libxml2/schematron.c:1446,1
    - Dst: IS_SCHEMATRON
      Src: /src/libxml2/schematron.c:1448,1
    - Dst: xmlGetNoNsProp
      Src: /src/libxml2/schematron.c:1452,1
    - Dst: xmlStrcat
      Src: /src/libxml2/schematron.c:1465,1
    - Dst: xmlXPathFreeCompExpr
      Src: /src/libxml2/schematron.c:1496,1
    - Dst: xmlStrcat
      Src: /src/libxml2/schematron.c:1445,1
    - Dst: xmlStrcat
      Src: /src/libxml2/schematron.c:1464,1
    - Dst: xmlStrcat
      Src: /src/libxml2/schematron.c:1483,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:1484,1
    - Dst: xmlSchematronVErr
      Src: /src/libxml2/schematron.c:1492,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:1497,1
    - Dst: xmlStrlen
      Src: /src/libxml2/schematron.c:1507,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 109
    argCount: 3
    argNames:
    - ctxt
    - test
    - cur
    argTypes:
    - xmlSchematronValidCtxtPtr
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1529
      start: 1413
    functionDepth: 0
    functionLinenumber: 1413
    functionLinenumberEnd: 1529
    functionName: xmlSchematronFormatReport
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlFree
    - IS_SCHEMATRON
    - xmlSchematronVErr
    - xmlGetNoNsProp
    - xmlSchematronGetNode
    - xmlXPathCtxtCompile
    - xmlStrlen
    - xmlXPathFreeObject
    - xmlXPathCompiledEval
    - snprintf
    - xmlMalloc
    - xmlXPathFreeCompExpr
    - xmlStrcat
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlSchematronFormatReport(xmlSchematronValidCtxtPtr
      ctxt, xmlNodePtr test, xmlNodePtr cur) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchematronFreeTests
      Src: /src/libxml2/schematron.c:507,1
    - Dst: xmlFreePattern
      Src: /src/libxml2/schematron.c:511,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:509,1
    - Dst: xmlSchematronFreeLets
      Src: /src/libxml2/schematron.c:515,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:513,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:516,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - rules
    argTypes:
    - xmlSchematronRulePtr
    constantsTouched: []
    func_position:
      end: 519
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 519
    functionName: xmlSchematronFreeRules
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreePattern
    - xmlSchematronFreeTests
    - xmlSchematronFreeLets
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchematronFreeRules(xmlSchematronRulePtr rules) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/schematron.c:713,1
    - Dst: xmlXPathNewContext
      Src: /src/libxml2/schematron.c:723,1
    - Dst: memset
      Src: /src/libxml2/schematron.c:718,1
    - Dst: xmlDictCreate
      Src: /src/libxml2/schematron.c:720,1
    - Dst: xmlSchematronPErrMemory
      Src: /src/libxml2/schematron.c:715,1
    - Dst: xmlSchematronPErrMemory
      Src: /src/libxml2/schematron.c:725,1
    - Dst: xmlSchematronFreeParserCtxt
      Src: /src/libxml2/schematron.c:726,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 731
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 731
    functionName: xmlSchematronNewDocParserCtxt
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlDictCreate
    - xmlXPathNewContext
    - memset
    - xmlSchematronFreeParserCtxt
    - xmlSchematronPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchematronParserCtxt*
    signature: 'xmlSchematronParserCtxt *xmlSchematronNewDocParserCtxt(xmlDoc *doc) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/schematron.c:834,1
    - Dst: xmlSchematronPErrMemory
      Src: /src/libxml2/schematron.c:836,1
    - Dst: xmlRealloc
      Src: /src/libxml2/schematron.c:844,1
    - Dst: xmlSchematronPErrMemory
      Src: /src/libxml2/schematron.c:847,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/schematron.c:854,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/schematron.c:856,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - ctxt
    - prefix
    - ns
    argTypes:
    - xmlSchematronParserCtxtPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 861
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 861
    functionName: xmlSchematronAddNamespace
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlRealloc
    - xmlSchematronPErrMemory
    - xmlDictLookup
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchematronAddNamespace(xmlSchematronParserCtxtPtr ctxt,
      const xmlChar *prefix, const xmlChar *ns) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetNoNsProp
      Src: /src/libxml2/schematron.c:966,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:999,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:989,1
    - Dst: xmlXPathCtxtCompile
      Src: /src/libxml2/schematron.c:997,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:983,1
    - Dst: IS_SCHEMATRON
      Src: /src/libxml2/schematron.c:1018,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:1031,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1045,1
    - Dst: xmlSchematronParseTestReportMsg
      Src: /src/libxml2/schematron.c:1056,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1074,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:1062,1
    - Dst: xmlGetNoNsProp
      Src: /src/libxml2/schematron.c:936,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:968,1
    - Dst: xmlGetNoNsProp
      Src: /src/libxml2/schematron.c:981,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:993,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:974,1
    - Dst: xmlGetNoNsProp
      Src: /src/libxml2/schematron.c:1020,1
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/schematron.c:1034,1
    - Dst: IS_SCHEMATRON
      Src: /src/libxml2/schematron.c:1041,1
    - Dst: xmlGetNoNsProp
      Src: /src/libxml2/schematron.c:1043,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1050,1
    - Dst: xmlSchematronAddTest
      Src: /src/libxml2/schematron.c:1059,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1065,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:938,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:944,1
    - Dst: IS_SCHEMATRON
      Src: /src/libxml2/schematron.c:962,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:978,1
    - Dst: xmlMalloc
      Src: /src/libxml2/schematron.c:1006,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1022,1
    - Dst: xmlSchematronParseTestReportMsg
      Src: /src/libxml2/schematron.c:1033,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:1054,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:948,1
    - Dst: xmlSchematronAddRule
      Src: /src/libxml2/schematron.c:951,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:954,1
    - Dst: NEXT_SCHEMATRON
      Src: /src/libxml2/schematron.c:960,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:1017,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1027,1
    - Dst: xmlSchematronAddTest
      Src: /src/libxml2/schematron.c:1036,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:1039,1
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/schematron.c:1057,1
    - Dst: NEXT_SCHEMATRON
      Src: /src/libxml2/schematron.c:1071,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 103
    argCount: 3
    argNames:
    - ctxt
    - pattern
    - rule
    argTypes:
    - xmlSchematronParserCtxtPtr
    - xmlSchematronPatternPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1078
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 1078
    functionName: xmlSchematronParseRule
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchematronParseTestReportMsg
    - IS_SCHEMATRON
    - xmlGetNoNsProp
    - xmlXPathCtxtCompile
    - NEXT_SCHEMATRON
    - xmlSchematronPErr
    - xmlNodeGetContent
    - xmlMalloc
    - xmlSchematronAddRule
    - xmlSchematronAddTest
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchematronParseRule(xmlSchematronParserCtxtPtr ctxt,
      xmlSchematronPatternPtr pattern, xmlNodePtr rule) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1220,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1267,1
    - Dst: NEXT_SCHEMATRON
      Src: /src/libxml2/schematron.c:1282,1
    - Dst: xmlGetNoNsProp
      Src: /src/libxml2/schematron.c:1294,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxml2/schematron.c:1306,1
    - Dst: xmlSchematronAddNamespace
      Src: /src/libxml2/schematron.c:1307,1
    - Dst: NEXT_SCHEMATRON
      Src: /src/libxml2/schematron.c:1315,1
    - Dst: xmlSchematronFree
      Src: /src/libxml2/schematron.c:1349,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1231,1
    - Dst: xmlStrdup
      Src: /src/libxml2/schematron.c:1237,1
    - Dst: xmlReadMemory
      Src: /src/libxml2/schematron.c:1228,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/schematron.c:1238,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1245,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/schematron.c:1261,1
    - Dst: IS_SCHEMATRON
      Src: /src/libxml2/schematron.c:1266,1
    - Dst: NEXT_SCHEMATRON
      Src: /src/libxml2/schematron.c:1290,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:1287,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1301,1
    - Dst: xmlReadFile
      Src: /src/libxml2/schematron.c:1217,1
    - Dst: IS_SCHEMATRON
      Src: /src/libxml2/schematron.c:1283,1
    - Dst: IS_SCHEMATRON
      Src: /src/libxml2/schematron.c:1292,1
    - Dst: xmlGetNoNsProp
      Src: /src/libxml2/schematron.c:1293,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:1311,1
    - Dst: IS_SCHEMATRON
      Src: /src/libxml2/schematron.c:1318,1
    - Dst: xmlSchematronParsePattern
      Src: /src/libxml2/schematron.c:1319,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1322,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/schematron.c:1255,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1257,1
    - Dst: xmlSchematronNewSchematron
      Src: /src/libxml2/schematron.c:1273,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/schematron.c:1286,1
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/schematron.c:1284,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1296,1
    - Dst: xmlFree
      Src: /src/libxml2/schematron.c:1313,1
    - Dst: NEXT_SCHEMATRON
      Src: /src/libxml2/schematron.c:1327,1
    - Dst: xmlSchematronPErr
      Src: /src/libxml2/schematron.c:1330,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/schematron.c:1345,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 109
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchematronParserCtxt*
    constantsTouched: []
    func_position:
      end: 1358
      start: 1200
    functionDepth: 0
    functionLinenumber: 1200
    functionLinenumberEnd: 1358
    functionName: xmlSchematronParse
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlFree
    - IS_SCHEMATRON
    - xmlDictLookup
    - xmlSchematronAddNamespace
    - xmlReadMemory
    - xmlGetNoNsProp
    - xmlSchematronParsePattern
    - xmlSchematronNewSchematron
    - xmlStrdup
    - xmlReadFile
    - xmlSchematronPErr
    - NEXT_SCHEMATRON
    - xmlXPathRegisterNs
    - xmlFreeDoc
    - xmlNodeGetContent
    - xmlSchematronFree
    linkageType: ''
    returnType: xmlSchematron*
    signature: 'xmlSchematron *xmlSchematronParse(xmlSchematronParserCtxt *ctxt) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathCompiledEval
      Src: /src/libxml2/schematron.c:1785,1
    - Dst: xmlSchematronReportSuccess
      Src: /src/libxml2/schematron.c:1821,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/schematron.c:1814,1
    - Dst: xmlXPathIsNaN
      Src: /src/libxml2/schematron.c:1800,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 35
    argCount: 5
    argNames:
    - ctxt
    - test
    - instance
    - cur
    - pattern
    argTypes:
    - xmlSchematronValidCtxtPtr
    - xmlSchematronTestPtr
    - xmlDocPtr
    - xmlNodePtr
    - xmlSchematronPatternPtr
    constantsTouched: []
    func_position:
      end: 1824
      start: 1775
    functionDepth: 0
    functionLinenumber: 1775
    functionLinenumberEnd: 1824
    functionName: xmlSchematronRunTest
    functionSourceFile: /src/libxml2/schematron.c
    functionUses: []
    functionsReached:
    - xmlXPathIsNaN
    - xmlXPathCompiledEval
    - xmlXPathFreeObject
    - xmlSchematronReportSuccess
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchematronRunTest(xmlSchematronValidCtxtPtr ctxt, xmlSchematronTestPtr
      test, xmlDocPtr instance, xmlNodePtr cur, xmlSchematronPatternPtr pattern) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlDebugErr3
      Src: /src/libxml2/debugXML.c:159,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:163,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames:
    - 3,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlDebugErr3
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void LIBXML_ATTR_FORMAT(3,0) xmlDebugErr2(xmlDebugCtxtPtr ctxt,
      int error, const char *msg, int extra){ ctxt->errors++; fprintf(ctxt->output,
      "ERROR %d: ", error); fprintf(ctxt->output, msg, extra); }static void LIBXML_ATTR_FORMAT(3,0)xmlDebugErr3(xmlDebugCtxtPtr
      ctxt, int error, const char *msg, const char *extra) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:745,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:751,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:754,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:764,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:768,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:759,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:758,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:767,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:771,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:774,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:763,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:742,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:748,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:772,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:729,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:739,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:733,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:756,1
    - Dst: xmlCtxtDumpString
      Src: /src/libxml2/debugXML.c:773,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 2
    argNames:
    - ctxt
    - ent
    argTypes:
    - xmlDebugCtxtPtr
    - xmlEntityPtr
    constantsTouched: []
    func_position:
      end: 777
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 777
    functionName: xmlCtxtDumpEntity
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpSpaces
    - fprintf
    - xmlCtxtDumpString
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpEntity(xmlDebugCtxtPtr ctxt, xmlEntityPtr ent) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpDocHead
      Src: /src/libxml2/debugXML.c:1130,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1138,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1135,1
    - Dst: xmlCtxtDumpString
      Src: /src/libxml2/debugXML.c:1134,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1133,1
    - Dst: xmlCtxtDumpString
      Src: /src/libxml2/debugXML.c:1139,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1140,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1143,1
    - Dst: xmlCtxtDumpString
      Src: /src/libxml2/debugXML.c:1144,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1145,1
    - Dst: xmlCtxtDumpString
      Src: /src/libxml2/debugXML.c:1149,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1148,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1153,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1150,1
    - Dst: xmlCtxtDumpNamespaceList
      Src: /src/libxml2/debugXML.c:1156,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ctxt
    - doc
    argTypes:
    - xmlDebugCtxtPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 1157
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1157
    functionName: xmlCtxtDumpDocumentHead
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpString
    - xmlCtxtDumpNamespaceList
    - xmlCtxtDumpDocHead
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpDocumentHead(xmlDebugCtxtPtr ctxt, xmlDocPtr
      doc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpInitCtxt
      Src: /src/libxml2/debugXML.c:1331,1
    - Dst: xmlCtxtDumpCleanCtxt
      Src: /src/libxml2/debugXML.c:1335,1
    - Dst: xmlCtxtDumpAttr
      Src: /src/libxml2/debugXML.c:1334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - output
    - attr
    - depth
    argTypes:
    - FILE*
    - xmlAttr*
    - int
    constantsTouched: []
    func_position:
      end: 1336
      start: 1326
    functionDepth: 0
    functionLinenumber: 1326
    functionLinenumberEnd: 1336
    functionName: xmlDebugDumpAttr
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpCleanCtxt
    - xmlCtxtDumpInitCtxt
    - xmlCtxtDumpAttr
    linkageType: ''
    returnType: void
    signature: 'void xmlDebugDumpAttr(FILE *output, xmlAttr *attr, int depth) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpNode
      Src: /src/libxml2/debugXML.c:1046,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlDebugCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1049
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1049
    functionName: xmlCtxtDumpNodeList
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpNode
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpNodeList(xmlDebugCtxtPtr ctxt, xmlNodePtr node) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1056,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:1071,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:1067,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:1063,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:1075,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:1079,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:1083,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:1087,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:1091,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1096,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:1103,1
    - Dst: xmlDebugErr2
      Src: /src/libxml2/debugXML.c:1115,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:1107,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1100,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:1111,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 23
    argCount: 2
    argNames:
    - ctxt
    - doc
    argTypes:
    - xmlDebugCtxtPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 1118
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1118
    functionName: xmlCtxtDumpDocHead
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlDebugErr
    - fprintf
    - xmlDebugErr2
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpDocHead(xmlDebugCtxtPtr ctxt, xmlDocPtr doc) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1304,1
    - Dst: fputc
      Src: /src/libxml2/debugXML.c:1315,1
    - Dst: fputc
      Src: /src/libxml2/debugXML.c:1311,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/debugXML.c:1310,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1313,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1316,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - output
    - str
    argTypes:
    - FILE*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1317
      start: 1296
    functionDepth: 0
    functionLinenumber: 1296
    functionLinenumberEnd: 1317
    functionName: xmlDebugDumpString
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - fputc
    - IS_BLANK_CH
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'void xmlDebugDumpString(FILE * output, const xmlChar * str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - ctxt
    - error
    - msg
    argTypes:
    - xmlDebugCtxtPtr
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: xmlDebugErr
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlDebugErr(xmlDebugCtxtPtr ctxt, int error, const char
      *msg) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/debugXML.c:107,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 43
    argCount: 2
    argNames:
    - node
    - ns
    argTypes:
    - xmlNodePtr
    - xmlNsPtr
    constantsTouched: []
    func_position:
      end: 123
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 123
    functionName: xmlNsCheckScope
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xmlNsCheckScope(xmlNodePtr node, xmlNsPtr ns) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:683,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:691,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:687,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:701,1
    - Dst: xmlDebugErr3
      Src: /src/libxml2/debugXML.c:697,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:706,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:709,1
    - Dst: xmlCtxtDumpString
      Src: /src/libxml2/debugXML.c:711,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:712,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - ctxt
    - ns
    argTypes:
    - xmlDebugCtxtPtr
    - xmlNsPtr
    constantsTouched: []
    func_position:
      end: 715
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 715
    functionName: xmlCtxtDumpNamespace
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpSpaces
    - xmlCtxtDumpString
    - xmlDebugErr3
    - xmlDebugErr
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpNamespace(xmlDebugCtxtPtr ctxt, xmlNsPtr ns) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1170,1
    - Dst: xmlCtxtDumpDocumentHead
      Src: /src/libxml2/debugXML.c:1173,1
    - Dst: xmlCtxtDumpNodeList
      Src: /src/libxml2/debugXML.c:1178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ctxt
    - doc
    argTypes:
    - xmlDebugCtxtPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 1181
      start: 1165
    functionDepth: 0
    functionLinenumber: 1165
    functionLinenumberEnd: 1181
    functionName: xmlCtxtDumpDocument
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - fprintf
    - xmlCtxtDumpDocumentHead
    - xmlCtxtDumpNodeList
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpDocument(xmlDebugCtxtPtr ctxt, xmlDocPtr doc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpNamespace
      Src: /src/libxml2/debugXML.c:721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctxt
    - ns
    argTypes:
    - xmlDebugCtxtPtr
    - xmlNsPtr
    constantsTouched: []
    func_position:
      end: 724
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 724
    functionName: xmlCtxtDumpNamespaceList
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpNamespace
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpNamespaceList(xmlDebugCtxtPtr ctxt, xmlNsPtr
      ns) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1191,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1195,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1201,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1198,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1204,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1207,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1210,1
    - Dst: xmlDebugErr2
      Src: /src/libxml2/debugXML.c:1213,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1217,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1219,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1221,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1225,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1223,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 26
    argCount: 3
    argNames:
    - payload
    - data
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1227
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1227
    functionName: xmlCtxtDumpEntityCallback
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - fprintf
    - xmlDebugErr2
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpEntityCallback(void *payload, void *data, const
      xmlChar *name ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlDebugCtxtPtr
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: xmlCtxtDumpCleanCtxt
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpCleanCtxt(xmlDebugCtxtPtr ctxt ATTRIBUTE_UNUSED) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:132,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlDebugCtxtPtr
    constantsTouched: []
    func_position:
      end: 136
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 136
    functionName: xmlCtxtDumpSpaces
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpSpaces(xmlDebugCtxtPtr ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlNsCheckScope
      Src: /src/libxml2/debugXML.c:178,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:181,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:190,1
    - Dst: xmlDebugErr3
      Src: /src/libxml2/debugXML.c:193,1
    - Dst: xmlDebugErr3
      Src: /src/libxml2/debugXML.c:184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - ctxt
    - node
    - ns
    argTypes:
    - xmlDebugCtxtPtr
    - xmlNodePtr
    - xmlNsPtr
    constantsTouched: []
    func_position:
      end: 197
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 197
    functionName: xmlCtxtNsCheckScope
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlDebugErr
    - xmlNsCheckScope
    - xmlDebugErr3
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtNsCheckScope(xmlDebugCtxtPtr ctxt, xmlNodePtr node,
      xmlNsPtr ns) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:788,1
    - Dst: xmlCtxtDumpString
      Src: /src/libxml2/debugXML.c:797,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:796,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:798,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:792,1
    - Dst: xmlCtxtDumpNodeList
      Src: /src/libxml2/debugXML.c:801,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:806,1
    - Dst: xmlCtxtGenericNodeCheck
      Src: /src/libxml2/debugXML.c:812,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - ctxt
    - attr
    argTypes:
    - xmlDebugCtxtPtr
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 813
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 813
    functionName: xmlCtxtDumpAttr
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpSpaces
    - xmlCtxtGenericNodeCheck
    - xmlCtxtDumpNodeList
    - xmlCtxtDumpString
    - xmlDebugErr
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpAttr(xmlDebugCtxtPtr ctxt, xmlAttrPtr attr) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:229,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/debugXML.c:237,1
    - Dst: xmlDebugErr3
      Src: /src/libxml2/debugXML.c:240,1
    - Dst: xmlValidateName
      Src: /src/libxml2/debugXML.c:232,1
    - Dst: xmlDebugErr3
      Src: /src/libxml2/debugXML.c:233,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - ctxt
    - name
    argTypes:
    - xmlDebugCtxtPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 245
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 245
    functionName: xmlCtxtCheckName
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlDebugErr
    - xmlDebugErr3
    - xmlDictOwns
    - xmlValidateName
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtCheckName(xmlDebugCtxtPtr ctxt, const xmlChar *
      name) '
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:258,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/debugXML.c:274,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:296,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:300,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:303,1
    - Dst: xmlCtxtCheckName
      Src: /src/libxml2/debugXML.c:334,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/debugXML.c:342,1
    - Dst: xmlCtxtCheckString
      Src: /src/libxml2/debugXML.c:329,1
    - Dst: xmlDebugErr3
      Src: /src/libxml2/debugXML.c:363,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:275,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:281,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:289,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:255,1
    - Dst: xmlDebugErr3
      Src: /src/libxml2/debugXML.c:353,1
    - Dst: xmlCtxtNsCheckScope
      Src: /src/libxml2/debugXML.c:311,1
    - Dst: xmlDebugErr3
      Src: /src/libxml2/debugXML.c:346,1
    - Dst: xmlCtxtNsCheckScope
      Src: /src/libxml2/debugXML.c:318,1
    - Dst: xmlCtxtCheckName
      Src: /src/libxml2/debugXML.c:358,1
    - Dst: xmlCtxtNsCheckScope
      Src: /src/libxml2/debugXML.c:315,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:285,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 101
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlDebugCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 383
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 383
    functionName: xmlCtxtGenericNodeCheck
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - xmlCtxtCheckName
    - xmlCtxtCheckString
    - xmlCtxtNsCheckScope
    - xmlDebugErr3
    - xmlStrEqual
    - xmlDebugErr
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtGenericNodeCheck(xmlDebugCtxtPtr ctxt, xmlNodePtr
      node) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:551,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:559,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:555,1
    - Dst: xmlCtxtDumpString
      Src: /src/libxml2/debugXML.c:566,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:565,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:567,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:570,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:575,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:578,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:581,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:598,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:596,1
    - Dst: xmlSnprintfElementContent
      Src: /src/libxml2/debugXML.c:594,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:587,1
    - Dst: xmlCtxtGenericNodeCheck
      Src: /src/libxml2/debugXML.c:604,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:584,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 2
    argNames:
    - ctxt
    - elem
    argTypes:
    - xmlDebugCtxtPtr
    - xmlElementPtr
    constantsTouched: []
    func_position:
      end: 605
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 605
    functionName: xmlCtxtDumpElemDecl
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpSpaces
    - xmlCtxtGenericNodeCheck
    - xmlCtxtDumpString
    - xmlSnprintfElementContent
    - xmlDebugErr
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpElemDecl(xmlDebugCtxtPtr ctxt, xmlElementPtr
      elem) '
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:852,1
    - Dst: xmlCtxtGenericNodeCheck
      Src: /src/libxml2/debugXML.c:865,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:878,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:869,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:873,1
    - Dst: xmlCtxtGenericNodeCheck
      Src: /src/libxml2/debugXML.c:922,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:926,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:927,1
    - Dst: xmlCtxtDumpDtdNode
      Src: /src/libxml2/debugXML.c:943,1
    - Dst: xmlCtxtDumpNamespace
      Src: /src/libxml2/debugXML.c:955,1
    - Dst: xmlCtxtDumpNamespaceList
      Src: /src/libxml2/debugXML.c:984,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:913,1
    - Dst: xmlCtxtGenericNodeCheck
      Src: /src/libxml2/debugXML.c:1008,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:933,1
    - Dst: xmlCtxtDumpString
      Src: /src/libxml2/debugXML.c:992,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/debugXML.c:999,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:966,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:841,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:842,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:855,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:858,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:863,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:876,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:887,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:888,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:893,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:907,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:939,1
    - Dst: xmlCtxtDumpAttrDecl
      Src: /src/libxml2/debugXML.c:949,1
    - Dst: xmlDebugErr2
      Src: /src/libxml2/debugXML.c:972,1
    - Dst: xmlCtxtDumpEntity
      Src: /src/libxml2/debugXML.c:1001,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:993,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:912,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:990,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:991,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:932,1
    - Dst: xmlCtxtDumpString
      Src: /src/libxml2/debugXML.c:857,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:864,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:880,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:871,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:894,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:900,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:901,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:906,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:919,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:921,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:938,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:978,1
    - Dst: xmlCtxtDumpElemDecl
      Src: /src/libxml2/debugXML.c:946,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:851,1
    - Dst: xmlCtxtDumpString
      Src: /src/libxml2/debugXML.c:854,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:882,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/debugXML.c:877,1
    - Dst: xmlCtxtDumpEntityDecl
      Src: /src/libxml2/debugXML.c:952,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:959,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:960,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:965,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:971,1
    - Dst: xmlCtxtDumpAttrList
      Src: /src/libxml2/debugXML.c:986,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:980,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 125
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlDebugCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1009
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 1009
    functionName: xmlCtxtDumpOneNode
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpSpaces
    - xmlCtxtDumpEntityDecl
    - xmlCtxtGenericNodeCheck
    - xmlCtxtDumpDtdNode
    - xmlCtxtDumpNamespace
    - xmlDictOwns
    - xmlCtxtDumpEntity
    - xmlCtxtDumpAttrList
    - xmlCtxtDumpNamespaceList
    - xmlGetDocEntity
    - xmlCtxtDumpString
    - xmlCtxtDumpAttrDecl
    - xmlCtxtDumpElemDecl
    - xmlDebugErr2
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpOneNode(xmlDebugCtxtPtr ctxt, xmlNodePtr node) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpDocHead
      Src: /src/libxml2/debugXML.c:1239,1
    - Dst: xmlHashScan
      Src: /src/libxml2/debugXML.c:1246,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1245,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1254,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1248,1
    - Dst: xmlHashScan
      Src: /src/libxml2/debugXML.c:1255,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1257,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - ctxt
    - doc
    argTypes:
    - xmlDebugCtxtPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 1258
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1258
    functionName: xmlCtxtDumpEntities
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlHashScan
    - xmlCtxtDumpDocHead
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpEntities(xmlDebugCtxtPtr ctxt, xmlDocPtr doc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpInitCtxt
      Src: /src/libxml2/debugXML.c:1351,1
    - Dst: xmlCtxtDumpCleanCtxt
      Src: /src/libxml2/debugXML.c:1354,1
    - Dst: xmlCtxtDumpEntities
      Src: /src/libxml2/debugXML.c:1353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - output
    - doc
    argTypes:
    - FILE*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 1355
      start: 1345
    functionDepth: 0
    functionLinenumber: 1345
    functionLinenumberEnd: 1355
    functionName: xmlDebugDumpEntities
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpEntities
    - xmlCtxtDumpCleanCtxt
    - xmlCtxtDumpInitCtxt
    linkageType: ''
    returnType: void
    signature: 'void xmlDebugDumpEntities(FILE * output, xmlDoc *doc) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:395,1
    - Dst: fputc
      Src: /src/libxml2/debugXML.c:402,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/debugXML.c:401,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:404,1
    - Dst: fputc
      Src: /src/libxml2/debugXML.c:406,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:407,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - ctxt
    - str
    argTypes:
    - xmlDebugCtxtPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 408
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 408
    functionName: xmlCtxtDumpString
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - fputc
    - IS_BLANK_CH
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpString(xmlDebugCtxtPtr ctxt, const xmlChar
      * str) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:610,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:614,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:640,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:653,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:668,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:618,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:634,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:654,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:659,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:643,1
    - Dst: xmlCtxtGenericNodeCheck
      Src: /src/libxml2/debugXML.c:677,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:624,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:626,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:629,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:658,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:646,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:664,1
    - Dst: xmlCtxtDumpString
      Src: /src/libxml2/debugXML.c:625,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:637,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:649,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:663,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:667,1
    - Dst: xmlCtxtDumpString
      Src: /src/libxml2/debugXML.c:669,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:670,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 2
    argNames:
    - ctxt
    - ent
    argTypes:
    - xmlDebugCtxtPtr
    - xmlEntityPtr
    constantsTouched: []
    func_position:
      end: 678
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 678
    functionName: xmlCtxtDumpEntityDecl
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpSpaces
    - xmlCtxtGenericNodeCheck
    - xmlCtxtDumpString
    - xmlDebugErr
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpEntityDecl(xmlDebugCtxtPtr ctxt, xmlEntityPtr
      ent) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlCheckUTF8
      Src: /src/libxml2/debugXML.c:210,1
    - Dst: xmlDebugErr3
      Src: /src/libxml2/debugXML.c:211,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - ctxt
    - str
    argTypes:
    - xmlDebugCtxtPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 215
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 215
    functionName: xmlCtxtCheckString
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlDebugErr3
    - xmlCheckUTF8
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtCheckString(xmlDebugCtxtPtr ctxt, const xmlChar
      * str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpAttr
      Src: /src/libxml2/debugXML.c:825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctxt
    - attr
    argTypes:
    - xmlDebugCtxtPtr
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 828
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 828
    functionName: xmlCtxtDumpAttrList
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpAttr
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpAttrList(xmlDebugCtxtPtr ctxt, xmlAttrPtr attr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpInitCtxt
      Src: /src/libxml2/debugXML.c:1520,1
    - Dst: xmlCtxtDumpCleanCtxt
      Src: /src/libxml2/debugXML.c:1524,1
    - Dst: xmlCtxtDumpDocument
      Src: /src/libxml2/debugXML.c:1523,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - output
    - doc
    argTypes:
    - FILE*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 1526
      start: 1513
    functionDepth: 0
    functionLinenumber: 1513
    functionLinenumberEnd: 1526
    functionName: xmlDebugCheckDocument
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpCleanCtxt
    - xmlCtxtDumpDocument
    - xmlCtxtDumpInitCtxt
    linkageType: ''
    returnType: int
    signature: 'int xmlDebugCheckDocument(FILE * output, xmlDoc *doc) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:413,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:430,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:428,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:417,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:422,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:432,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:434,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:435,1
    - Dst: xmlCtxtGenericNodeCheck
      Src: /src/libxml2/debugXML.c:440,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - ctxt
    - dtd
    argTypes:
    - xmlDebugCtxtPtr
    - xmlDtdPtr
    constantsTouched: []
    func_position:
      end: 441
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 441
    functionName: xmlCtxtDumpDtdNode
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpSpaces
    - xmlDebugErr
    - xmlCtxtGenericNodeCheck
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpDtdNode(xmlDebugCtxtPtr ctxt, xmlDtdPtr dtd) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:1022,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1023,1
    - Dst: xmlCtxtDumpNodeList
      Src: /src/libxml2/debugXML.c:1031,1
    - Dst: xmlCtxtDumpOneNode
      Src: /src/libxml2/debugXML.c:1027,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlDebugCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1034
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1034
    functionName: xmlCtxtDumpNode
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpSpaces
    - xmlCtxtDumpOneNode
    - fprintf
    - xmlCtxtDumpNodeList
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpNode(xmlDebugCtxtPtr ctxt, xmlNodePtr node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpInitCtxt
      Src: /src/libxml2/debugXML.c:1411,1
    - Dst: xmlCtxtDumpCleanCtxt
      Src: /src/libxml2/debugXML.c:1415,1
    - Dst: xmlCtxtDumpNode
      Src: /src/libxml2/debugXML.c:1414,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - output
    - node
    - depth
    argTypes:
    - FILE*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 1416
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1416
    functionName: xmlDebugDumpNode
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpCleanCtxt
    - xmlCtxtDumpInitCtxt
    - xmlCtxtDumpNode
    linkageType: ''
    returnType: void
    signature: 'void xmlDebugDumpNode(FILE * output, xmlNode *node, int depth) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpInitCtxt
      Src: /src/libxml2/debugXML.c:1452,1
    - Dst: xmlCtxtDumpDocumentHead
      Src: /src/libxml2/debugXML.c:1455,1
    - Dst: xmlCtxtDumpCleanCtxt
      Src: /src/libxml2/debugXML.c:1456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - output
    - doc
    argTypes:
    - FILE*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 1457
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1457
    functionName: xmlDebugDumpDocumentHead
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpCleanCtxt
    - xmlCtxtDumpInitCtxt
    - xmlCtxtDumpDocumentHead
    linkageType: ''
    returnType: void
    signature: 'void xmlDebugDumpDocumentHead(FILE * output, xmlDoc *doc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpInitCtxt
      Src: /src/libxml2/debugXML.c:1492,1
    - Dst: xmlCtxtDumpDTD
      Src: /src/libxml2/debugXML.c:1495,1
    - Dst: xmlCtxtDumpCleanCtxt
      Src: /src/libxml2/debugXML.c:1496,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - output
    - dtd
    argTypes:
    - FILE*
    - xmlDtd*
    constantsTouched: []
    func_position:
      end: 1497
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1497
    functionName: xmlDebugDumpDTD
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpCleanCtxt
    - xmlCtxtDumpInitCtxt
    - xmlCtxtDumpDTD
    linkageType: ''
    returnType: void
    signature: 'void xmlDebugDumpDTD(FILE * output, xmlDtd *dtd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlDebugCtxtPtr
    constantsTouched: []
    func_position:
      end: 63
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 63
    functionName: xmlCtxtDumpInitCtxt
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpInitCtxt(xmlDebugCtxtPtr ctxt) '
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:468,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:473,1
    - Dst: xmlCtxtDumpString
      Src: /src/libxml2/debugXML.c:536,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:462,1
    - Dst: xmlDebugErr
      Src: /src/libxml2/debugXML.c:454,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:479,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:488,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:509,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:494,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:500,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:519,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:528,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:537,1
    - Dst: xmlCtxtDumpSpaces
      Src: /src/libxml2/debugXML.c:446,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:450,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:466,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:511,1
    - Dst: xmlCtxtGenericNodeCheck
      Src: /src/libxml2/debugXML.c:545,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:539,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:460,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:476,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:497,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:491,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:485,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:482,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:517,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:525,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:531,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:535,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 56
    argCount: 2
    argNames:
    - ctxt
    - attr
    argTypes:
    - xmlDebugCtxtPtr
    - xmlAttributePtr
    constantsTouched: []
    func_position:
      end: 546
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 546
    functionName: xmlCtxtDumpAttrDecl
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpSpaces
    - xmlCtxtGenericNodeCheck
    - xmlCtxtDumpString
    - xmlDebugErr
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpAttrDecl(xmlDebugCtxtPtr ctxt, xmlAttributePtr
      attr) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1271,1
    - Dst: fprintf
      Src: /src/libxml2/debugXML.c:1276,1
    - Dst: xmlCtxtDumpNodeList
      Src: /src/libxml2/debugXML.c:1279,1
    - Dst: xmlCtxtDumpDtdNode
      Src: /src/libxml2/debugXML.c:1274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - dtd
    argTypes:
    - xmlDebugCtxtPtr
    - xmlDtdPtr
    constantsTouched: []
    func_position:
      end: 1282
      start: 1266
    functionDepth: 0
    functionLinenumber: 1266
    functionLinenumberEnd: 1282
    functionName: xmlCtxtDumpDTD
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpDtdNode
    - fprintf
    - xmlCtxtDumpNodeList
    linkageType: ''
    returnType: void
    signature: 'static void xmlCtxtDumpDTD(xmlDebugCtxtPtr ctxt, xmlDtdPtr dtd) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpInitCtxt
      Src: /src/libxml2/debugXML.c:1370,1
    - Dst: xmlCtxtDumpCleanCtxt
      Src: /src/libxml2/debugXML.c:1374,1
    - Dst: xmlCtxtDumpAttrList
      Src: /src/libxml2/debugXML.c:1373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - output
    - attr
    - depth
    argTypes:
    - FILE*
    - xmlAttr*
    - int
    constantsTouched: []
    func_position:
      end: 1375
      start: 1364
    functionDepth: 0
    functionLinenumber: 1364
    functionLinenumberEnd: 1375
    functionName: xmlDebugDumpAttrList
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpAttrList
    - xmlCtxtDumpCleanCtxt
    - xmlCtxtDumpInitCtxt
    linkageType: ''
    returnType: void
    signature: 'void xmlDebugDumpAttrList(FILE * output, xmlAttr *attr, int depth) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpInitCtxt
      Src: /src/libxml2/debugXML.c:1390,1
    - Dst: xmlCtxtDumpOneNode
      Src: /src/libxml2/debugXML.c:1393,1
    - Dst: xmlCtxtDumpCleanCtxt
      Src: /src/libxml2/debugXML.c:1394,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - output
    - node
    - depth
    argTypes:
    - FILE*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 1395
      start: 1384
    functionDepth: 0
    functionLinenumber: 1384
    functionLinenumberEnd: 1395
    functionName: xmlDebugDumpOneNode
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpCleanCtxt
    - xmlCtxtDumpOneNode
    - xmlCtxtDumpInitCtxt
    linkageType: ''
    returnType: void
    signature: 'void xmlDebugDumpOneNode(FILE * output, xmlNode *node, int depth) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpInitCtxt
      Src: /src/libxml2/debugXML.c:1432,1
    - Dst: xmlCtxtDumpCleanCtxt
      Src: /src/libxml2/debugXML.c:1436,1
    - Dst: xmlCtxtDumpNodeList
      Src: /src/libxml2/debugXML.c:1435,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - output
    - node
    - depth
    argTypes:
    - FILE*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 1437
      start: 1425
    functionDepth: 0
    functionLinenumber: 1425
    functionLinenumberEnd: 1437
    functionName: xmlDebugDumpNodeList
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpCleanCtxt
    - xmlCtxtDumpInitCtxt
    - xmlCtxtDumpNodeList
    linkageType: ''
    returnType: void
    signature: 'void xmlDebugDumpNodeList(FILE * output, xmlNode *node, int depth) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtDumpInitCtxt
      Src: /src/libxml2/debugXML.c:1472,1
    - Dst: xmlCtxtDumpDocument
      Src: /src/libxml2/debugXML.c:1475,1
    - Dst: xmlCtxtDumpCleanCtxt
      Src: /src/libxml2/debugXML.c:1476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - output
    - doc
    argTypes:
    - FILE*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 1477
      start: 1465
    functionDepth: 0
    functionLinenumber: 1465
    functionLinenumberEnd: 1477
    functionName: xmlDebugDumpDocument
    functionSourceFile: /src/libxml2/debugXML.c
    functionUses: []
    functionsReached:
    - xmlCtxtDumpCleanCtxt
    - xmlCtxtDumpDocument
    - xmlCtxtDumpInitCtxt
    linkageType: ''
    returnType: void
    signature: 'void xmlDebugDumpDocument(FILE * output, xmlDoc *doc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup
      Src: /src/libxml2/tree.c:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - dtd
    - name
    argTypes:
    - xmlDtd*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 123
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 123
    functionName: xmlGetEntityFromDtd
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlHashLookup
    linkageType: ''
    returnType: xmlEntityPtr
    signature: 'static xmlEntityPtr xmlGetEntityFromDtd(const xmlDtd *dtd, const xmlChar
      *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - node
    - ns
    argTypes:
    - xmlNode*
    - xmlNs*
    constantsTouched: []
    func_position:
      end: 582
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 582
    functionName: xmlSetNs
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlSetNs(xmlNode *node, xmlNs *ns) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDocNode
      Src: /src/libxml2/tree.c:2683,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 20
    argCount: 4
    argNames:
    - parent
    - ns
    - name
    - content
    argTypes:
    - xmlNode*
    - xmlNs*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2702
      start: 2660
    functionDepth: 0
    functionLinenumber: 2660
    functionLinenumberEnd: 2702
    functionName: xmlNewChild
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNewDocNode
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewChild(xmlNode *parent, xmlNs *ns, const xmlChar *name,
      const xmlChar *content) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: IS_STR_XML
      Src: /src/libxml2/tree.c:7495,1
    - Dst: xmlTreeEnsureXMLDecl
      Src: /src/libxml2/tree.c:7499,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:7532,1
    - Dst: XML_NSMAP_FOREACH
      Src: /src/libxml2/tree.c:7514,1
    - Dst: XML_NSMAP_NOTEMPTY
      Src: /src/libxml2/tree.c:7508,1
    - Dst: xmlDOMWrapStoreNs
      Src: /src/libxml2/tree.c:7549,1
    - Dst: xmlDOMWrapNsMapAddItem
      Src: /src/libxml2/tree.c:7555,1
    - Dst: xmlDOMWrapNSNormDeclareNsForced
      Src: /src/libxml2/tree.c:7563,1
    - Dst: XML_NSMAP_FOREACH
      Src: /src/libxml2/tree.c:7572,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:7576,1
    - Dst: xmlDOMWrapNsMapAddItem
      Src: /src/libxml2/tree.c:7585,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 74
    argCount: 8
    argNames:
    - doc
    - elem
    - ns
    - retNs
    - nsMap
    - depth
    - ancestorsOnly
    - prefixed
    argTypes:
    - xmlDocPtr
    - xmlNodePtr
    - xmlNsPtr
    - xmlNsPtr*
    - xmlNsMapPtr*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 7591
      start: 7474
    functionDepth: 0
    functionLinenumber: 7474
    functionLinenumberEnd: 7591
    functionName: xmlDOMWrapNSNormAcquireNormalizedNs
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlDOMWrapStoreNs
    - xmlDOMWrapNSNormDeclareNsForced
    - XML_NSMAP_NOTEMPTY
    - xmlTreeEnsureXMLDecl
    - IS_STR_XML
    - xmlDOMWrapNsMapAddItem
    - xmlStrEqual
    - XML_NSMAP_FOREACH
    linkageType: ''
    returnType: int
    signature: "static int xmlDOMWrapNSNormAcquireNormalizedNs(xmlDocPtr doc,\t\t\t\t
      xmlNodePtr elem,\t\t\t\t xmlNsPtr ns,\t\t\t\t xmlNsPtr *retNs,\t\t\t\t xmlNsMapPtr
      *nsMap,\t\t\t\t int depth,\t\t\t\t int ancestorsOnly,\t\t\t\t int prefixed) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictOwns
      Src: /src/libxml2/tree.c:2712,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:2713,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - text
    - content
    argTypes:
    - xmlNodePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2718
      start: 2704
    functionDepth: 0
    functionLinenumber: 2704
    functionLinenumberEnd: 2718
    functionName: xmlTextSetContent
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictOwns
    linkageType: ''
    returnType: void
    signature: 'static void xmlTextSetContent(xmlNodePtr text, xmlChar *content) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:521,1
    - Dst: memset
      Src: /src/libxml2/tree.c:524,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:548,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:528,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:533,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:553,1
    - Dst: xmlFreeNs
      Src: /src/libxml2/tree.c:563,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 36
    argCount: 3
    argNames:
    - node
    - href
    - prefix
    argTypes:
    - xmlNode*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 565
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 565
    functionName: xmlNewNs
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - memset
    - xmlStrdup
    - xmlStrEqual
    - xmlMalloc
    - xmlFreeNs
    linkageType: ''
    returnType: xmlNs*
    signature: 'xmlNs *xmlNewNs(xmlNode *node, const xmlChar *href, const xmlChar
      *prefix) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlTreeNSListLookupByPrefix
      Src: /src/libxml2/tree.c:7420,1
    - Dst: snprintf
      Src: /src/libxml2/tree.c:7450,1
    - Dst: xmlSearchNsByPrefixStrict
      Src: /src/libxml2/tree.c:7427,1
    - Dst: snprintf
      Src: /src/libxml2/tree.c:7447,1
    - Dst: xmlNewNs
      Src: /src/libxml2/tree.c:7430,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 33
    argCount: 5
    argNames:
    - doc
    - elem
    - nsName
    - prefix
    - checkShadow
    argTypes:
    - xmlDocPtr
    - xmlNodePtr
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 7454
      start: 7396
    functionDepth: 0
    functionLinenumber: 7396
    functionLinenumberEnd: 7454
    functionName: xmlDOMWrapNSNormDeclareNsForced
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - snprintf
    - xmlSearchNsByPrefixStrict
    - xmlNewNs
    - xmlTreeNSListLookupByPrefix
    linkageType: ''
    returnType: xmlNsPtr
    signature: "static xmlNsPtr xmlDOMWrapNSNormDeclareNsForced(xmlDocPtr doc,\t\t\t\txmlNodePtr
      elem,\t\t\t\tconst xmlChar *nsName,\t\t\t\tconst xmlChar *prefix,\t\t\t\tint
      checkShadow) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeParseContentInternal
      Src: /src/libxml2/tree.c:1240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - node
    - content
    - len
    argTypes:
    - xmlNode*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1241
      start: 1238
    functionDepth: 0
    functionLinenumber: 1238
    functionLinenumberEnd: 1241
    functionName: xmlNodeParseContent
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNodeParseContentInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlNodeParseContent(xmlNode *node, const xmlChar *content, int
      len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 6721
      start: 6717
    functionDepth: 0
    functionLinenumber: 6717
    functionLinenumberEnd: 6721
    functionName: xmlGetCompressMode
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlGetCompressMode(void) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:7248,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:7271,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:7286,1
    - Dst: xmlNsInScope
      Src: /src/libxml2/tree.c:7295,1
    - Dst: xmlTreeEnsureXMLDecl
      Src: /src/libxml2/tree.c:7249,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 59
    argCount: 5
    argNames:
    - doc
    - node
    - nsName
    - retNs
    - prefixed
    argTypes:
    - xmlDocPtr
    - xmlNodePtr
    - xmlChar*
    - xmlNsPtr*
    - int
    constantsTouched: []
    func_position:
      end: 7320
      start: 7234
    functionDepth: 0
    functionLinenumber: 7234
    functionLinenumberEnd: 7320
    functionName: xmlSearchNsByNamespaceStrict
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    - xmlNsInScope
    - xmlTreeEnsureXMLDecl
    linkageType: ''
    returnType: int
    signature: "static int xmlSearchNsByNamespaceStrict(xmlDocPtr doc, xmlNodePtr
      node,\t\t\t const xmlChar* nsName,\t\t\t xmlNsPtr *retNs, int prefixed) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup
      Src: /src/libxml2/tree.c:137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - dtd
    - name
    argTypes:
    - xmlDtd*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: xmlGetParameterEntityFromDtd
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlHashLookup
    linkageType: ''
    returnType: xmlEntityPtr
    signature: 'static xmlEntityPtr xmlGetParameterEntityFromDtd(const xmlDtd *dtd,
      const xmlChar *name) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: IS_STR_XML
      Src: /src/libxml2/tree.c:5674,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:5693,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:5703,1
    - Dst: IS_STR_XML
      Src: /src/libxml2/tree.c:5718,1
    - Dst: xmlTreeEnsureXMLDecl
      Src: /src/libxml2/tree.c:5675,1
    - Dst: xmlNewXmlNs
      Src: /src/libxml2/tree.c:5719,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 54
    argCount: 3
    argNames:
    - node
    - prefix
    - out
    argTypes:
    - xmlNode*
    - xmlChar*
    - xmlNs**
    constantsTouched: []
    func_position:
      end: 5728
      start: 5658
    functionDepth: 0
    functionLinenumber: 5658
    functionLinenumberEnd: 5728
    functionName: xmlSearchNsSafe
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - IS_STR_XML
    - xmlNewXmlNs
    - xmlStrEqual
    - xmlTreeEnsureXMLDecl
    linkageType: ''
    returnType: int
    signature: 'int xmlSearchNsSafe(xmlNode *node, const xmlChar *prefix, xmlNs **out) '
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:7673,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:7710,1
    - Dst: xmlDOMWrapNsMapAddItem
      Src: /src/libxml2/tree.c:7719,1
    - Dst: XML_NSMAP_NOTEMPTY
      Src: /src/libxml2/tree.c:7809,1
    - Dst: xmlDOMWrapNSNormGatherInScopeNs
      Src: /src/libxml2/tree.c:7739,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:7671,1
    - Dst: XML_NSMAP_NOTEMPTY
      Src: /src/libxml2/tree.c:7705,1
    - Dst: XML_NSMAP_FOREACH
      Src: /src/libxml2/tree.c:7706,1
    - Dst: XML_NSMAP_FOREACH
      Src: /src/libxml2/tree.c:7821,1
    - Dst: xmlDOMWrapNSNormAcquireNormalizedNs
      Src: /src/libxml2/tree.c:7775,1
    - Dst: xmlDOMWrapNsMapFree
      Src: /src/libxml2/tree.c:7847,1
    - Dst: XML_NSMAP_FOREACH
      Src: /src/libxml2/tree.c:7667,1
    - Dst: XML_NSMAP_FOREACH
      Src: /src/libxml2/tree.c:7763,1
    - Dst: XML_NSMAP_NOTEMPTY
      Src: /src/libxml2/tree.c:7759,1
    - Dst: xmlFreeNs
      Src: /src/libxml2/tree.c:7842,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:7844,1
    - Dst: xmlDOMWrapNSNormGatherInScopeNs
      Src: /src/libxml2/tree.c:7656,1
    - Dst: XML_NSMAP_NOTEMPTY
      Src: /src/libxml2/tree.c:7666,1
    - Dst: xmlDOMWrapNSNormAddNsMapItem2
      Src: /src/libxml2/tree.c:7679,1
    - Dst: XML_NSMAP_POP
      Src: /src/libxml2/tree.c:7816,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 151
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - elem
    - options
    argTypes:
    - xmlDOMWrapCtxt*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 7849
      start: 7613
    functionDepth: 0
    functionLinenumber: 7613
    functionLinenumberEnd: 7849
    functionName: xmlDOMWrapReconcileNamespaces
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - XML_NSMAP_NOTEMPTY
    - xmlDOMWrapNsMapFree
    - XML_NSMAP_POP
    - xmlDOMWrapNSNormAcquireNormalizedNs
    - xmlDOMWrapNsMapAddItem
    - xmlStrEqual
    - xmlDOMWrapNSNormAddNsMapItem2
    - XML_NSMAP_FOREACH
    - xmlDOMWrapNSNormGatherInScopeNs
    - xmlFreeNs
    linkageType: ''
    returnType: int
    signature: "int xmlDOMWrapReconcileNamespaces(xmlDOMWrapCtxt *ctxt ATTRIBUTE_UNUSED,\t\t\t
      xmlNode *elem,\t\t\t int options) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libxml2/tree.c:178,1
    - Dst: memcpy
      Src: /src/libxml2/tree.c:190,1
    - Dst: memcpy
      Src: /src/libxml2/tree.c:192,1
    - Dst: strlen
      Src: /src/libxml2/tree.c:179,1
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:184,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 4
    argNames:
    - ncname
    - prefix
    - memory
    - len
    argTypes:
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 195
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 195
    functionName: xmlBuildQName
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - strlen
    - xmlMalloc
    - memcpy
    linkageType: ''
    returnType: xmlChar*
    signature: "xmlChar *xmlBuildQName(const xmlChar *ncname, const xmlChar *prefix,\t
      xmlChar *memory, int len) "
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - xmlChar*
    - int*
    constantsTouched: []
    func_position:
      end: 286
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 286
    functionName: xmlSplitQName3
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlSplitQName3(const xmlChar *name, int *len) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 3490
      start: 3467
    functionDepth: 0
    functionLinenumber: 3467
    functionLinenumberEnd: 3490
    functionName: xmlUnlinkNodeInternal
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xmlUnlinkNodeInternal(xmlNodePtr cur) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: XML_PTR_TO_INT
      Src: /src/libxml2/tree.c:4394,1
    - Dst: xmlGetLineNoInternal
      Src: /src/libxml2/tree.c:4401,1
    - Dst: xmlGetLineNoInternal
      Src: /src/libxml2/tree.c:4399,1
    - Dst: xmlGetLineNoInternal
      Src: /src/libxml2/tree.c:4397,1
    - Dst: xmlGetLineNoInternal
      Src: /src/libxml2/tree.c:4410,1
    - Dst: xmlGetLineNoInternal
      Src: /src/libxml2/tree.c:4413,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 54
    argCount: 2
    argNames:
    - node
    - depth
    argTypes:
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 4416
      start: 4378
    functionDepth: 0
    functionLinenumber: 4378
    functionLinenumberEnd: 4416
    functionName: xmlGetLineNoInternal
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - XML_PTR_TO_INT
    - xmlGetLineNoInternal
    linkageType: ''
    returnType: long
    signature: 'static long xmlGetLineNoInternal(const xmlNode *node, int depth) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSearchNsByHrefSafe
      Src: /src/libxml2/tree.c:4772,1
    - Dst: xmlSetNsProp
      Src: /src/libxml2/tree.c:4775,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - cur
    - lang
    argTypes:
    - xmlNode*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4780
      start: 4763
    functionDepth: 0
    functionLinenumber: 4763
    functionLinenumberEnd: 4780
    functionName: xmlNodeSetLang
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlSearchNsByHrefSafe
    - xmlSetNsProp
    linkageType: ''
    returnType: int
    signature: 'int xmlNodeSetLang(xmlNode *cur, const xmlChar *lang) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDocTextLen
      Src: /src/libxml2/tree.c:5438,1
    - Dst: xmlAddChild
      Src: /src/libxml2/tree.c:5441,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/tree.c:5443,1
    - Dst: xmlTextAddContent
      Src: /src/libxml2/tree.c:5453,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 16
    argCount: 3
    argNames:
    - cur
    - content
    - len
    argTypes:
    - xmlNode*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 5459
      start: 5425
    functionDepth: 0
    functionLinenumber: 5425
    functionLinenumberEnd: 5459
    functionName: xmlNodeAddContentLen
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlTextAddContent
    - xmlFreeNode
    - xmlAddChild
    - xmlNewDocTextLen
    linkageType: ''
    returnType: int
    signature: 'int xmlNodeAddContentLen(xmlNode *cur, const xmlChar *content, int
      len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:6797,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:6805,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:6803,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - nsmap
    argTypes:
    - xmlNsMapPtr
    constantsTouched: []
    func_position:
      end: 6806
      start: 6786
    functionDepth: 0
    functionLinenumber: 6786
    functionLinenumberEnd: 6806
    functionName: xmlDOMWrapNsMapFree
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlDOMWrapNsMapFree(xmlNsMapPtr nsmap) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlSetTreeDoc
      Src: /src/libxml2/tree.c:8698,1
    - Dst: xmlSearchNsByNamespaceStrict
      Src: /src/libxml2/tree.c:8720,1
    - Dst: IS_STR_XML
      Src: /src/libxml2/tree.c:8709,1
    - Dst: xmlTreeEnsureXMLDecl
      Src: /src/libxml2/tree.c:8710,1
    - Dst: xmlDOMWrapStoreNs
      Src: /src/libxml2/tree.c:8715,1
    - Dst: xmlDOMWrapNSNormDeclareNsForced
      Src: /src/libxml2/tree.c:8724,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 6
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - attr
    - destDoc
    - destParent
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlDOMWrapCtxtPtr
    - xmlDocPtr
    - xmlAttrPtr
    - xmlDocPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 8734
      start: 8684
    functionDepth: 0
    functionLinenumber: 8684
    functionLinenumberEnd: 8734
    functionName: xmlDOMWrapAdoptAttr
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlDOMWrapStoreNs
    - xmlDOMWrapNSNormDeclareNsForced
    - xmlTreeEnsureXMLDecl
    - IS_STR_XML
    - xmlSearchNsByNamespaceStrict
    - xmlSetTreeDoc
    linkageType: ''
    returnType: int
    signature: "static int xmlDOMWrapAdoptAttr(xmlDOMWrapCtxtPtr ctxt,\t\t xmlDocPtr
      sourceDoc ATTRIBUTE_UNUSED,\t\t xmlAttrPtr attr,\t\t xmlDocPtr destDoc,\t\t
      xmlNodePtr destParent,\t\t int options ATTRIBUTE_UNUSED) "
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeSetDoc
      Src: /src/libxml2/tree.c:7913,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:7960,1
    - Dst: XML_NSMAP_FOREACH
      Src: /src/libxml2/tree.c:7956,1
    - Dst: XML_NSMAP_NOTEMPTY
      Src: /src/libxml2/tree.c:7955,1
    - Dst: xmlDOMWrapNSNormGatherInScopeNs
      Src: /src/libxml2/tree.c:7943,1
    - Dst: xmlDOMWrapNsMapAddItem
      Src: /src/libxml2/tree.c:7970,1
    - Dst: xmlDOMWrapNSNormGatherInScopeNs
      Src: /src/libxml2/tree.c:7982,1
    - Dst: XML_NSMAP_NOTEMPTY
      Src: /src/libxml2/tree.c:7990,1
    - Dst: XML_NSMAP_FOREACH
      Src: /src/libxml2/tree.c:7994,1
    - Dst: xmlDOMWrapNsMapAddItem
      Src: /src/libxml2/tree.c:8016,1
    - Dst: XML_NSMAP_NOTEMPTY
      Src: /src/libxml2/tree.c:8080,1
    - Dst: XML_NSMAP_POP
      Src: /src/libxml2/tree.c:8087,1
    - Dst: xmlDOMWrapNsMapFree
      Src: /src/libxml2/tree.c:8126,1
    - Dst: xmlDOMWrapNSNormAcquireNormalizedNs
      Src: /src/libxml2/tree.c:8024,1
    - Dst: XML_NSMAP_FOREACH
      Src: /src/libxml2/tree.c:8092,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 129
    argCount: 6
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - node
    - destDoc
    - destParent
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlDOMWrapCtxtPtr
    - xmlDocPtr
    - xmlNodePtr
    - xmlDocPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 8129
      start: 7872
    functionDepth: 0
    functionLinenumber: 7872
    functionLinenumberEnd: 8129
    functionName: xmlDOMWrapAdoptBranch
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - XML_NSMAP_NOTEMPTY
    - xmlDOMWrapNsMapFree
    - xmlNodeSetDoc
    - XML_NSMAP_POP
    - xmlDOMWrapNSNormAcquireNormalizedNs
    - xmlDOMWrapNsMapAddItem
    - xmlStrEqual
    - XML_NSMAP_FOREACH
    - xmlDOMWrapNSNormGatherInScopeNs
    linkageType: ''
    returnType: int
    signature: "static int xmlDOMWrapAdoptBranch(xmlDOMWrapCtxtPtr ctxt,\t\t xmlDocPtr
      sourceDoc ATTRIBUTE_UNUSED,\t\t xmlNodePtr node,\t\t xmlDocPtr destDoc,\t\t
      xmlNodePtr destParent,\t\t int options ATTRIBUTE_UNUSED) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeProp
      Src: /src/libxml2/tree.c:1666,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlAttr*
    constantsTouched: []
    func_position:
      end: 1669
      start: 1660
    functionDepth: 0
    functionLinenumber: 1660
    functionLinenumberEnd: 1669
    functionName: xmlFreePropList
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFreeProp
    linkageType: ''
    returnType: void
    signature: 'void xmlFreePropList(xmlAttr *cur) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeDtd
      Src: /src/libxml2/tree.c:3408,1
    - Dst: xmlDeregisterNodeDefaultValue
      Src: /src/libxml2/tree.c:3425,1
    - Dst: xmlFreeProp
      Src: /src/libxml2/tree.c:3416,1
    - Dst: xmlFreeEntity
      Src: /src/libxml2/tree.c:3420,1
    - Dst: xmlFreeNs
      Src: /src/libxml2/tree.c:3412,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/tree.c:3431,1
    - Dst: xmlFreePropList
      Src: /src/libxml2/tree.c:3437,1
    - Dst: xmlFreeNsList
      Src: /src/libxml2/tree.c:3439,1
    - Dst: DICT_FREE
      Src: /src/libxml2/tree.c:3443,1
    - Dst: DICT_FREE
      Src: /src/libxml2/tree.c:3454,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:3456,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 46
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3457
      start: 3400
    functionDepth: 0
    functionLinenumber: 3400
    functionLinenumberEnd: 3457
    functionName: xmlFreeNode
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeNodeList
    - xmlFreeProp
    - xmlFreeNsList
    - xmlDeregisterNodeDefaultValue
    - xmlFreeDtd
    - xmlFreePropList
    - xmlFreeEntity
    - DICT_FREE
    - xmlFreeNs
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeNode(xmlNode *cur) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlUnlinkNodeInternal
      Src: /src/libxml2/tree.c:4738,1
    - Dst: xmlAddSibling
      Src: /src/libxml2/tree.c:4747,1
    - Dst: xmlReplaceNode
      Src: /src/libxml2/tree.c:4750,1
    - Dst: xmlSetTreeDoc
      Src: /src/libxml2/tree.c:4739,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 2
    argNames:
    - doc
    - root
    argTypes:
    - xmlDoc*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 4753
      start: 4723
    functionDepth: 0
    functionLinenumber: 4723
    functionLinenumberEnd: 4753
    functionName: xmlDocSetRootElement
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlUnlinkNodeInternal
    - xmlSetTreeDoc
    - xmlAddSibling
    - xmlReplaceNode
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlDocSetRootElement(xmlDoc *doc, xmlNode *root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeSetContentInternal
      Src: /src/libxml2/tree.c:5410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - cur
    - content
    - len
    argTypes:
    - xmlNode*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 5411
      start: 5408
    functionDepth: 0
    functionLinenumber: 5408
    functionLinenumberEnd: 5411
    functionName: xmlNodeSetContentLen
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNodeSetContentInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlNodeSetContentLen(xmlNode *cur, const xmlChar *content, int
      len) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetPropNodeInternal
      Src: /src/libxml2/tree.c:6368,1
    - Dst: xmlGetPropNodeValueInternal
      Src: /src/libxml2/tree.c:6372,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 4
    argNames:
    - node
    - name
    - nsUri
    - out
    argTypes:
    - xmlNode*
    - xmlChar*
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 6376
      start: 6359
    functionDepth: 0
    functionLinenumber: 6359
    functionLinenumberEnd: 6376
    functionName: xmlNodeGetAttrValue
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlGetPropNodeInternal
    - xmlGetPropNodeValueInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlNodeGetAttrValue(const xmlNode *node, const xmlChar *name,
      const xmlChar *nsUri, xmlChar **out) '
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/tree.c:5026,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/tree.c:5030,1
    - Dst: xmlNodeGetAttrValue
      Src: /src/libxml2/tree.c:5035,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:5052,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/tree.c:5034,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:5053,1
    - Dst: xmlNodeGetAttrValue
      Src: /src/libxml2/tree.c:5059,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:5061,1
    - Dst: xmlBuildURISafe
      Src: /src/libxml2/tree.c:5066,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:5067,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:5068,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/tree.c:5077,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:5086,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/tree.c:5075,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/tree.c:5076,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:5091,1
    - Dst: xmlBuildURISafe
      Src: /src/libxml2/tree.c:5090,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 90
    argCount: 3
    argNames:
    - doc
    - cur
    - baseOut
    argTypes:
    - xmlDoc*
    - xmlNode*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 5101
      start: 5003
    functionDepth: 0
    functionLinenumber: 5003
    functionLinenumberEnd: 5101
    functionName: xmlNodeGetBaseSafe
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrcasecmp
    - xmlNodeGetAttrValue
    - xmlStrdup
    - xmlBuildURISafe
    - xmlStrncmp
    linkageType: ''
    returnType: int
    signature: 'int xmlNodeGetBaseSafe(const xmlDoc *doc, const xmlNode *cur, xmlChar
      **baseOut) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/tree.c:5155,1
    - Dst: xmlBufGetChildContent
      Src: /src/libxml2/tree.c:5174,1
    - Dst: xmlBufCat
      Src: /src/libxml2/tree.c:5166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - buf
    - ref
    argTypes:
    - xmlBufPtr
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 5176
      start: 5147
    functionDepth: 0
    functionLinenumber: 5147
    functionLinenumberEnd: 5176
    functionName: xmlBufGetEntityRefContent
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlBufGetChildContent
    - xmlGetDocEntity
    - xmlBufCat
    linkageType: ''
    returnType: void
    signature: 'static void xmlBufGetEntityRefContent(xmlBufPtr buf, const xmlNode
      *ref) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:5822,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:5843,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:5855,1
    - Dst: xmlTreeEnsureXMLDecl
      Src: /src/libxml2/tree.c:5823,1
    - Dst: xmlNsInScope
      Src: /src/libxml2/tree.c:5845,1
    - Dst: xmlNsInScope
      Src: /src/libxml2/tree.c:5857,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:5874,1
    - Dst: xmlNewXmlNs
      Src: /src/libxml2/tree.c:5875,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 66
    argCount: 3
    argNames:
    - node
    - href
    - out
    argTypes:
    - xmlNode*
    - xmlChar*
    - xmlNs**
    constantsTouched: []
    func_position:
      end: 5884
      start: 5805
    functionDepth: 0
    functionLinenumber: 5805
    functionLinenumberEnd: 5884
    functionName: xmlSearchNsByHrefSafe
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNewXmlNs
    - xmlStrEqual
    - xmlNsInScope
    - xmlTreeEnsureXMLDecl
    linkageType: ''
    returnType: int
    signature: 'int xmlSearchNsByHrefSafe(xmlNode *node, const xmlChar *href, xmlNs
      **out) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - doc
    - mode
    argTypes:
    - xmlDoc*
    - int
    constantsTouched: []
    func_position:
      end: 6708
      start: 6702
    functionDepth: 0
    functionLinenumber: 6702
    functionLinenumberEnd: 6708
    functionName: xmlSetDocCompressMode
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlSetDocCompressMode (xmlDoc *doc, int mode) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufCat
      Src: /src/libxml2/tree.c:5186,1
    - Dst: xmlBufGetEntityRefContent
      Src: /src/libxml2/tree.c:5190,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - tree
    argTypes:
    - xmlBufPtr
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 5208
      start: 5178
    functionDepth: 0
    functionLinenumber: 5178
    functionLinenumberEnd: 5208
    functionName: xmlBufGetChildContent
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlBufGetEntityRefContent
    - xmlBufCat
    linkageType: ''
    returnType: void
    signature: 'static void xmlBufGetChildContent(xmlBufPtr buf, const xmlNode *tree) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrndup
      Src: /src/libxml2/tree.c:237,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:240,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:243,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 24
    argCount: 2
    argNames:
    - name
    - prefix
    argTypes:
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 250
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 250
    functionName: xmlSplitQName2
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlFree
    - xmlStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlSplitQName2(const xmlChar *name, xmlChar **prefix) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrndup
      Src: /src/libxml2/tree.c:327,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 18
    argCount: 2
    argNames:
    - name
    - prefixPtr
    argTypes:
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 333
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 333
    functionName: xmlSplitQName4
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlSplitQName4(const xmlChar *name, xmlChar **prefixPtr) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlRemoveEntity
      Src: /src/libxml2/tree.c:3520,1
    - Dst: xmlUnlinkNodeInternal
      Src: /src/libxml2/tree.c:3522,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3523
      start: 3500
    functionDepth: 0
    functionLinenumber: 3500
    functionLinenumberEnd: 3523
    functionName: xmlUnlinkNode
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlRemoveEntity
    - xmlUnlinkNodeInternal
    linkageType: ''
    returnType: void
    signature: 'void xmlUnlinkNode(xmlNode *cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetLineNoInternal
      Src: /src/libxml2/tree.c:4429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 4430
      start: 4426
    functionDepth: 0
    functionLinenumber: 4426
    functionLinenumberEnd: 4430
    functionName: xmlGetLineNo
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlGetLineNoInternal
    linkageType: ''
    returnType: long
    signature: 'long xmlGetLineNo(const xmlNode *node) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:4958,1
    - Dst: xmlPathToURI
      Src: /src/libxml2/tree.c:4962,1
    - Dst: xmlSetNsProp
      Src: /src/libxml2/tree.c:4978,1
    - Dst: xmlPathToURI
      Src: /src/libxml2/tree.c:4975,1
    - Dst: xmlSearchNsByHrefSafe
      Src: /src/libxml2/tree.c:4972,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:4979,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:4982,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 23
    argCount: 2
    argNames:
    - cur
    - uri
    argTypes:
    - xmlNode*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4985
      start: 4942
    functionDepth: 0
    functionLinenumber: 4942
    functionLinenumberEnd: 4985
    functionName: xmlNodeSetBase
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSearchNsByHrefSafe
    - xmlPathToURI
    - xmlSetNsProp
    linkageType: ''
    returnType: int
    signature: 'int xmlNodeSetBase(xmlNode *cur, const xmlChar* uri) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:5784,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - node
    - ancestor
    - prefix
    argTypes:
    - xmlDocPtr
    - xmlNodePtr
    - xmlNodePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5794
      start: 5766
    functionDepth: 0
    functionLinenumber: 5766
    functionLinenumberEnd: 5794
    functionName: xmlNsInScope
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xmlNsInScope(xmlDocPtr doc ATTRIBUTE_UNUSED, xmlNodePtr
      node, xmlNodePtr ancestor, const xmlChar * prefix) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 6692
      start: 6688
    functionDepth: 0
    functionLinenumber: 6688
    functionLinenumberEnd: 6692
    functionName: xmlGetDocCompressMode
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlGetDocCompressMode (const xmlDoc *doc) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xmlUnlinkNodeInternal
      Src: /src/libxml2/tree.c:8812,1
    - Dst: xmlDOMWrapAdoptBranch
      Src: /src/libxml2/tree.c:8815,1
    - Dst: xmlNodeSetDoc
      Src: /src/libxml2/tree.c:8822,1
    - Dst: xmlDOMWrapAdoptAttr
      Src: /src/libxml2/tree.c:8818,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 33
    argCount: 6
    argNames:
    - ctxt
    - sourceDoc
    - node
    - destDoc
    - destParent
    - options
    argTypes:
    - xmlDOMWrapCtxt*
    - xmlDoc*
    - xmlNode*
    - xmlDoc*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 8827
      start: 8764
    functionDepth: 0
    functionLinenumber: 8764
    functionLinenumberEnd: 8827
    functionName: xmlDOMWrapAdoptNode
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlUnlinkNodeInternal
    - xmlDOMWrapAdoptAttr
    - xmlDOMWrapAdoptBranch
    - xmlNodeSetDoc
    linkageType: ''
    returnType: int
    signature: "int xmlDOMWrapAdoptNode(xmlDOMWrapCtxt *ctxt,\t\t xmlDoc *sourceDoc,\t\t
      xmlNode *node,\t\t xmlDoc *destDoc,\t\t xmlNode *destParent,\t\t int options) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlStaticCopyNode
      Src: /src/libxml2/tree.c:4131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - node
    - extended
    argTypes:
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 4133
      start: 4127
    functionDepth: 0
    functionLinenumber: 4127
    functionLinenumberEnd: 4133
    functionName: xmlCopyNode
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStaticCopyNode
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlCopyNode(xmlNode *node, int extended) '
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:4455,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:4508,1
    - Dst: strlen
      Src: /src/libxml2/tree.c:4641,1
    - Dst: snprintf
      Src: /src/libxml2/tree.c:4626,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:4634,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:4656,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:4664,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:4505,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:4517,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:4601,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:4648,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:4649,1
    - Dst: snprintf
      Src: /src/libxml2/tree.c:4673,1
    - Dst: snprintf
      Src: /src/libxml2/tree.c:4676,1
    - Dst: snprintf
      Src: /src/libxml2/tree.c:4678,1
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:4458,1
    - Dst: snprintf
      Src: /src/libxml2/tree.c:4482,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:4520,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:4633,1
    - Dst: snprintf
      Src: /src/libxml2/tree.c:4623,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:4657,1
    - Dst: xmlRealloc
      Src: /src/libxml2/tree.c:4662,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:4665,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:4460,1
    - Dst: snprintf
      Src: /src/libxml2/tree.c:4588,1
    - Dst: xmlRealloc
      Src: /src/libxml2/tree.c:4654,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:4609,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:4681,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 217
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 4683
      start: 4439
    functionDepth: 0
    functionLinenumber: 4439
    functionLinenumberEnd: 4683
    functionName: xmlGetNodePath
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRealloc
    - xmlStrEqual
    - strlen
    - snprintf
    - xmlMalloc
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlGetNodePath(const xmlNode *node) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictLookup
      Src: /src/libxml2/tree.c:4921,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:4931,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:4923,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/tree.c:4930,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 23
    argCount: 2
    argNames:
    - cur
    - name
    argTypes:
    - xmlNode*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4932
      start: 4895
    functionDepth: 0
    functionLinenumber: 4895
    functionLinenumberEnd: 4932
    functionName: xmlNodeSetName
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlDictLookup
    - xmlDictOwns
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xmlNodeSetName(xmlNode *cur, const xmlChar *name) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufGetChildContent
      Src: /src/libxml2/tree.c:5235,1
    - Dst: xmlBufCat
      Src: /src/libxml2/tree.c:5242,1
    - Dst: xmlBufGetEntityRefContent
      Src: /src/libxml2/tree.c:5246,1
    - Dst: xmlBufCat
      Src: /src/libxml2/tree.c:5250,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - cur
    argTypes:
    - xmlBuf*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 5258
      start: 5222
    functionDepth: 0
    functionLinenumber: 5222
    functionLinenumberEnd: 5258
    functionName: xmlBufGetNodeContent
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlBufGetChildContent
    - xmlBufGetEntityRefContent
    - xmlBufCat
    linkageType: ''
    returnType: int
    signature: 'int xmlBufGetNodeContent(xmlBuf *buf, const xmlNode *cur) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSetTreeDoc
      Src: /src/libxml2/tree.c:2633,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - list
    - doc
    argTypes:
    - xmlNode*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 2640
      start: 2622
    functionDepth: 0
    functionLinenumber: 2622
    functionLinenumberEnd: 2640
    functionName: xmlSetListDoc
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlSetTreeDoc
    linkageType: ''
    returnType: int
    signature: 'int xmlSetListDoc(xmlNode *list, xmlDoc *doc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlStaticCopyNodeList
      Src: /src/libxml2/tree.c:4182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 4184
      start: 4181
    functionDepth: 0
    functionLinenumber: 4181
    functionLinenumberEnd: 4184
    functionName: xmlCopyNodeList
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStaticCopyNodeList
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlCopyNodeList(xmlNode *node) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDoc
      Src: /src/libxml2/tree.c:4304,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:4318,1
    - Dst: xmlCopyDtd
      Src: /src/libxml2/tree.c:4330,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:4313,1
    - Dst: xmlMemStrdup
      Src: /src/libxml2/tree.c:4308,1
    - Dst: xmlSetTreeDoc
      Src: /src/libxml2/tree.c:4334,1
    - Dst: xmlCopyNamespaceList
      Src: /src/libxml2/tree.c:4337,1
    - Dst: xmlStaticCopyNodeList
      Src: /src/libxml2/tree.c:4344,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/tree.c:4359,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 51
    argCount: 2
    argNames:
    - doc
    - recursive
    argTypes:
    - xmlDoc*
    - int
    constantsTouched: []
    func_position:
      end: 4361
      start: 4299
    functionDepth: 0
    functionLinenumber: 4299
    functionLinenumberEnd: 4361
    functionName: xmlCopyDoc
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlCopyDtd
    - xmlCopyNamespaceList
    - xmlStrdup
    - xmlNewDoc
    - xmlFreeDoc
    - xmlStaticCopyNodeList
    - xmlMemStrdup
    - xmlSetTreeDoc
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlCopyDoc(xmlDoc *doc, int recursive) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetAttrValue
      Src: /src/libxml2/tree.c:4867,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:4877,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:4873,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:4876,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:4872,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:4880,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 4887
      start: 4858
    functionDepth: 0
    functionLinenumber: 4858
    functionLinenumberEnd: 4887
    functionName: xmlNodeGetSpacePreserve
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrEqual
    - xmlNodeGetAttrValue
    linkageType: ''
    returnType: int
    signature: 'int xmlNodeGetSpacePreserve(const xmlNode *cur) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlSplitQName4
      Src: /src/libxml2/tree.c:6533,1
    - Dst: xmlSetNsProp
      Src: /src/libxml2/tree.c:6543,1
    - Dst: xmlSetNsProp
      Src: /src/libxml2/tree.c:6546,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:6539,1
    - Dst: xmlSearchNsSafe
      Src: /src/libxml2/tree.c:6538,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 18
    argCount: 3
    argNames:
    - node
    - name
    - value
    argTypes:
    - xmlNode*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 6547
      start: 6520
    functionDepth: 0
    functionLinenumber: 6520
    functionLinenumberEnd: 6547
    functionName: xmlSetProp
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSearchNsSafe
    - xmlSplitQName4
    - xmlSetNsProp
    linkageType: ''
    returnType: xmlAttr*
    signature: 'xmlAttr *xmlSetProp(xmlNode *node, const xmlChar *name, const xmlChar
      *value) '
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: xmlUnlinkNodeInternal
      Src: /src/libxml2/tree.c:7120,1
    - Dst: xmlDOMWrapNSNormAddNsMapItem2
      Src: /src/libxml2/tree.c:7138,1
    - Dst: xmlDOMWrapNSNormAddNsMapItem2
      Src: /src/libxml2/tree.c:7176,1
    - Dst: xmlDOMWrapStoreNs
      Src: /src/libxml2/tree.c:7167,1
    - Dst: xmlUnlinkNodeInternal
      Src: /src/libxml2/tree.c:7128,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:7217,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 75
    argCount: 4
    argNames:
    - ctxt
    - doc
    - node
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlDOMWrapCtxt*
    - xmlDoc*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 7219
      start: 7099
    functionDepth: 0
    functionLinenumber: 7099
    functionLinenumberEnd: 7219
    functionName: xmlDOMWrapRemoveNode
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlUnlinkNodeInternal
    - xmlDOMWrapStoreNs
    - xmlFree
    - xmlDOMWrapNSNormAddNsMapItem2
    linkageType: ''
    returnType: int
    signature: "int xmlDOMWrapRemoveNode(xmlDOMWrapCtxt *ctxt, xmlDoc *doc,\t\t xmlNode
      *node, int options ATTRIBUTE_UNUSED) "
  - BBCount: 87
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libxml2/tree.c:8253,1
    - Dst: memset
      Src: /src/libxml2/tree.c:8276,1
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:8273,1
    - Dst: xmlDOMWrapNSNormGatherInScopeNs
      Src: /src/libxml2/tree.c:8343,1
    - Dst: xmlFreeNs
      Src: /src/libxml2/tree.c:8366,1
    - Dst: XML_NSMAP_NOTEMPTY
      Src: /src/libxml2/tree.c:8392,1
    - Dst: XML_NSMAP_FOREACH
      Src: /src/libxml2/tree.c:8393,1
    - Dst: xmlAddIDSafe
      Src: /src/libxml2/tree.c:8551,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:8555,1
    - Dst: XML_NSMAP_POP
      Src: /src/libxml2/tree.c:8604,1
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:8250,1
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:8357,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:8397,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:8430,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/tree.c:8442,1
    - Dst: xmlDOMWrapNsMapAddItem
      Src: /src/libxml2/tree.c:8410,1
    - Dst: XML_NSMAP_NOTEMPTY
      Src: /src/libxml2/tree.c:8597,1
    - Dst: xmlDOMWrapNsMapFree
      Src: /src/libxml2/tree.c:8660,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:8319,1
    - Dst: memset
      Src: /src/libxml2/tree.c:8360,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:8371,1
    - Dst: XML_NSMAP_NOTEMPTY
      Src: /src/libxml2/tree.c:8482,1
    - Dst: XML_NSMAP_FOREACH
      Src: /src/libxml2/tree.c:8486,1
    - Dst: xmlDOMWrapNsMapAddItem
      Src: /src/libxml2/tree.c:8509,1
    - Dst: xmlIsID
      Src: /src/libxml2/tree.c:8542,1
    - Dst: XML_NSMAP_FOREACH
      Src: /src/libxml2/tree.c:8609,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/tree.c:8317,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:8364,1
    - Dst: xmlFreeNs
      Src: /src/libxml2/tree.c:8373,1
    - Dst: xmlDOMWrapNSNormGatherInScopeNs
      Src: /src/libxml2/tree.c:8474,1
    - Dst: xmlDOMWrapNSNormAcquireNormalizedNs
      Src: /src/libxml2/tree.c:8517,1
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/tree.c:8548,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:8552,1
    CyclomaticComplexity: 149
    EdgeCount: 149
    ICount: 255
    argCount: 8
    argNames:
    - ctxt
    - sourceDoc
    - node
    - resNode
    - destDoc
    - destParent
    - deep
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlDOMWrapCtxt*
    - xmlDoc*
    - xmlNode*
    - xmlNode**
    - xmlDoc*
    - xmlNode*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 8668
      start: 8158
    functionDepth: 0
    functionLinenumber: 8158
    functionLinenumberEnd: 8668
    functionName: xmlDOMWrapCloneNode
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictLookup
    - XML_NSMAP_NOTEMPTY
    - xmlDOMWrapNsMapFree
    - memset
    - XML_NSMAP_POP
    - xmlGetDocEntity
    - xmlDOMWrapNSNormAcquireNormalizedNs
    - xmlStrdup
    - xmlDOMWrapNsMapAddItem
    - xmlStrEqual
    - XML_NSMAP_FOREACH
    - xmlIsID
    - xmlDOMWrapNSNormGatherInScopeNs
    - xmlNodeGetContent
    - xmlMalloc
    - xmlAddIDSafe
    - xmlFreeNs
    linkageType: ''
    returnType: int
    signature: "int xmlDOMWrapCloneNode(xmlDOMWrapCtxt *ctxt,\t\t xmlDoc *sourceDoc,\t\t
      xmlNode *node,\t\t xmlNode **resNode,\t\t xmlDoc *destDoc,\t\t xmlNode *destParent,\t\t
      int deep,\t\t int options ATTRIBUTE_UNUSED) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - func
    argTypes:
    - xmlRegisterNodeFunc
    constantsTouched: []
    func_position:
      end: 8894
      start: 8886
    functionDepth: 0
    functionLinenumber: 8886
    functionLinenumberEnd: 8894
    functionName: xmlRegisterNodeDefault
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlRegisterNodeFunc
    signature: 'xmlRegisterNodeFunc xmlRegisterNodeDefault(xmlRegisterNodeFunc func) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup
      Src: /src/libxml2/tree.c:2425,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/tree.c:2435,1
    - Dst: xmlHashRemoveEntry
      Src: /src/libxml2/tree.c:2426,1
    - Dst: xmlHashRemoveEntry
      Src: /src/libxml2/tree.c:2430,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/tree.c:2429,1
    - Dst: xmlHashRemoveEntry
      Src: /src/libxml2/tree.c:2436,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/tree.c:2439,1
    - Dst: xmlHashRemoveEntry
      Src: /src/libxml2/tree.c:2440,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 1
    argNames:
    - ent
    argTypes:
    - xmlEntityPtr
    constantsTouched: []
    func_position:
      end: 2443
      start: 2411
    functionDepth: 0
    functionLinenumber: 2411
    functionLinenumberEnd: 2443
    functionName: xmlRemoveEntity
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlHashRemoveEntry
    - xmlHashLookup
    linkageType: ''
    returnType: void
    signature: 'static void xmlRemoveEntity(xmlEntityPtr ent) '
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: xmlCopyPropInternal
      Src: /src/libxml2/tree.c:3860,1
    - Dst: xmlCopyDoc
      Src: /src/libxml2/tree.c:3866,1
    - Dst: memset
      Src: /src/libxml2/tree.c:3877,1
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:3874,1
    - Dst: xmlCopyNamespaceList
      Src: /src/libxml2/tree.c:3862,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/tree.c:3890,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:3892,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:3901,1
    - Dst: xmlCopyNamespaceList
      Src: /src/libxml2/tree.c:3913,1
    - Dst: xmlSearchNsSafe
      Src: /src/libxml2/tree.c:3922,1
    - Dst: xmlSearchNsSafe
      Src: /src/libxml2/tree.c:3934,1
    - Dst: xmlNewReconciledNs
      Src: /src/libxml2/tree.c:3943,1
    - Dst: xmlStaticCopyNode
      Src: /src/libxml2/tree.c:3978,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/tree.c:4018,1
    - Dst: xmlNewNs
      Src: /src/libxml2/tree.c:3941,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/tree.c:4022,1
    - Dst: xmlCopyPropList
      Src: /src/libxml2/tree.c:3955,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/tree.c:3967,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 134
    argCount: 4
    argNames:
    - node
    - doc
    - parent
    - extended
    argTypes:
    - xmlNode*
    - xmlDoc*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 4024
      start: 3842
    functionDepth: 0
    functionLinenumber: 3842
    functionLinenumberEnd: 4024
    functionName: xmlStaticCopyNode
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlRegisterNodeDefaultValue
    - xmlStaticCopyNode
    - xmlDictLookup
    - xmlCopyNamespaceList
    - xmlCopyPropList
    - xmlNewNs
    - memset
    - xmlCopyPropInternal
    - xmlNewReconciledNs
    - xmlGetDocEntity
    - xmlFreeNode
    - xmlStrdup
    - xmlCopyDoc
    - xmlSearchNsSafe
    - xmlMalloc
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlStaticCopyNode(xmlNode *node, xmlDoc *doc, xmlNode *parent,
      int extended) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlSearchNsByHrefSafe
      Src: /src/libxml2/tree.c:5934,1
    - Dst: snprintf
      Src: /src/libxml2/tree.c:5945,1
    - Dst: snprintf
      Src: /src/libxml2/tree.c:5947,1
    - Dst: xmlSearchNsSafe
      Src: /src/libxml2/tree.c:5949,1
    - Dst: snprintf
      Src: /src/libxml2/tree.c:5955,1
    - Dst: snprintf
      Src: /src/libxml2/tree.c:5957,1
    - Dst: xmlSearchNsSafe
      Src: /src/libxml2/tree.c:5959,1
    - Dst: xmlNewNs
      Src: /src/libxml2/tree.c:5967,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - tree
    - ns
    argTypes:
    - xmlNodePtr
    - xmlNsPtr
    constantsTouched: []
    func_position:
      end: 5969
      start: 5918
    functionDepth: 0
    functionLinenumber: 5918
    functionLinenumberEnd: 5969
    functionName: xmlNewReconciledNs
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlSearchNsSafe
    - xmlSearchNsByHrefSafe
    - snprintf
    - xmlNewNs
    linkageType: ''
    returnType: xmlNsPtr
    signature: 'static xmlNsPtr xmlNewReconciledNs(xmlNodePtr tree, xmlNsPtr ns) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictOwns
      Src: /src/libxml2/tree.c:2465,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:2478,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/tree.c:2467,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/tree.c:2477,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:2469,1
    - Dst: xmlRemoveID
      Src: /src/libxml2/tree.c:2495,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/tree.c:2515,1
    - Dst: xmlRemoveEntity
      Src: /src/libxml2/tree.c:2536,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 66
    argCount: 2
    argNames:
    - node
    - doc
    argTypes:
    - xmlNodePtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 2555
      start: 2445
    functionDepth: 0
    functionLinenumber: 2445
    functionLinenumberEnd: 2555
    functionName: xmlNodeSetDoc
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - xmlDictOwns
    - xmlRemoveEntity
    - xmlGetDocEntity
    - xmlStrdup
    - xmlRemoveID
    linkageType: ''
    returnType: int
    signature: 'static int xmlNodeSetDoc(xmlNodePtr node, xmlDocPtr doc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlStaticCopyNode
      Src: /src/libxml2/tree.c:4155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 3
    argNames:
    - node
    - doc
    - extended
    argTypes:
    - xmlNode*
    - xmlDoc*
    - int
    constantsTouched: []
    func_position:
      end: 4157
      start: 4151
    functionDepth: 0
    functionLinenumber: 4151
    functionLinenumberEnd: 4157
    functionName: xmlDocCopyNode
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStaticCopyNode
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlDocCopyNode(xmlNode *node, xmlDoc *doc, int extended) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 4707
      start: 4695
    functionDepth: 0
    functionLinenumber: 4695
    functionLinenumberEnd: 4707
    functionName: xmlDocGetRootElement
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlDocGetRootElement(const xmlDoc *doc) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:5295,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:5314,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:5302,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:5316,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:5303,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:5319,1
    - Dst: xmlBufCreate
      Src: /src/libxml2/tree.c:5325,1
    - Dst: xmlBufGetNodeContent
      Src: /src/libxml2/tree.c:5328,1
    - Dst: xmlBufDetach
      Src: /src/libxml2/tree.c:5329,1
    - Dst: xmlBufFree
      Src: /src/libxml2/tree.c:5330,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 26
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 5333
      start: 5273
    functionDepth: 0
    functionLinenumber: 5273
    functionLinenumberEnd: 5333
    functionName: xmlNodeGetContent
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlBufDetach
    - xmlBufFree
    - xmlStrdup
    - xmlBufCreate
    - xmlBufGetNodeContent
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlNodeGetContent(const xmlNode *cur) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlInsertNode
      Src: /src/libxml2/tree.c:2890,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 2
    argNames:
    - prev
    - cur
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2891
      start: 2880
    functionDepth: 0
    functionLinenumber: 2880
    functionLinenumberEnd: 2891
    functionName: xmlAddNextSibling
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlInsertNode
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlAddNextSibling(xmlNode *prev, xmlNode *cur) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSearchNsByHrefSafe
      Src: /src/libxml2/tree.c:4833,1
    - Dst: xmlSetNsProp
      Src: /src/libxml2/tree.c:4842,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - cur
    - val
    argTypes:
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 4847
      start: 4823
    functionDepth: 0
    functionLinenumber: 4823
    functionLinenumberEnd: 4847
    functionName: xmlNodeSetSpacePreserve
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlSearchNsByHrefSafe
    - xmlSetNsProp
    linkageType: ''
    returnType: int
    signature: 'int xmlNodeSetSpacePreserve(xmlNode *cur, int val) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/tree.c:6650,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 6655
      start: 6639
    functionDepth: 0
    functionLinenumber: 6639
    functionLinenumberEnd: 6655
    functionName: xmlIsBlankNode
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - IS_BLANK_CH
    linkageType: ''
    returnType: int
    signature: 'int xmlIsBlankNode(const xmlNode *node) '
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 8
    argCount: 1
    argNames:
    - parent
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3168
      start: 3144
    functionDepth: 0
    functionLinenumber: 3144
    functionLinenumberEnd: 3168
    functionName: xmlChildElementCount
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: 'unsigned long xmlChildElementCount(xmlNode *parent) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeParseContentInternal
      Src: /src/libxml2/tree.c:1258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - doc
    - value
    - len
    argTypes:
    - xmlDoc*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1260
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1260
    functionName: xmlStringLenGetNodeList
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNodeParseContentInternal
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlStringLenGetNodeList(const xmlDoc *doc, const xmlChar
      *value, int len) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xmlInsertProp
      Src: /src/libxml2/tree.c:2783,1
    - Dst: xmlUnlinkNodeInternal
      Src: /src/libxml2/tree.c:2793,1
    - Dst: xmlStrncatNew
      Src: /src/libxml2/tree.c:2803,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/tree.c:2794,1
    - Dst: xmlTextAddContent
      Src: /src/libxml2/tree.c:2791,1
    - Dst: xmlTextSetContent
      Src: /src/libxml2/tree.c:2806,1
    - Dst: xmlUnlinkNodeInternal
      Src: /src/libxml2/tree.c:2809,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/tree.c:2810,1
    - Dst: xmlSetTreeDoc
      Src: /src/libxml2/tree.c:2829,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 64
    argCount: 6
    argNames:
    - doc
    - cur
    - parent
    - prev
    - next
    - coalesce
    argTypes:
    - xmlDocPtr
    - xmlNodePtr
    - xmlNodePtr
    - xmlNodePtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 2862
      start: 2777
    functionDepth: 0
    functionLinenumber: 2777
    functionLinenumberEnd: 2862
    functionName: xmlInsertNode
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlUnlinkNodeInternal
    - xmlFreeNode
    - xmlStrncatNew
    - xmlTextAddContent
    - xmlInsertProp
    - xmlSetTreeDoc
    - xmlTextSetContent
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlInsertNode(xmlDocPtr doc, xmlNodePtr cur, xmlNodePtr
      parent, xmlNodePtr prev, xmlNodePtr next, int coalesce) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - parent
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3129
      start: 3123
    functionDepth: 0
    functionLinenumber: 3123
    functionLinenumberEnd: 3129
    functionName: xmlGetLastChild
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlGetLastChild(const xmlNode *parent) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetAttrValue
      Src: /src/libxml2/tree.c:4801,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 4812
      start: 4792
    functionDepth: 0
    functionLinenumber: 4792
    functionLinenumberEnd: 4812
    functionName: xmlNodeGetLang
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNodeGetAttrValue
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlNodeGetLang(const xmlNode *cur) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 6737
      start: 6732
    functionDepth: 0
    functionLinenumber: 6732
    functionLinenumberEnd: 6737
    functionName: xmlSetCompressMode
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlSetCompressMode(int mode) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: IS_STR_XML
      Src: /src/libxml2/tree.c:7346,1
    - Dst: xmlTreeEnsureXMLDecl
      Src: /src/libxml2/tree.c:7348,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:7361,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 34
    argCount: 4
    argNames:
    - doc
    - node
    - prefix
    - retNs
    argTypes:
    - xmlDocPtr
    - xmlNodePtr
    - xmlChar*
    - xmlNsPtr*
    constantsTouched: []
    func_position:
      end: 7380
      start: 7333
    functionDepth: 0
    functionLinenumber: 7333
    functionLinenumberEnd: 7380
    functionName: xmlSearchNsByPrefixStrict
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - IS_STR_XML
    - xmlStrEqual
    - xmlTreeEnsureXMLDecl
    linkageType: ''
    returnType: int
    signature: "static int xmlSearchNsByPrefixStrict(xmlDocPtr doc, xmlNodePtr node,\t\t\t
      const xmlChar* prefix,\t\t\t xmlNsPtr *retNs) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:8860,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:8865,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:8866,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:8861,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:8862,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:8867,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 14
    argCount: 2
    argNames:
    - systemID
    - publicID
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 8870
      start: 8855
    functionDepth: 0
    functionLinenumber: 8855
    functionLinenumberEnd: 8870
    functionName: xmlIsXHTML
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'int xmlIsXHTML(const xmlChar *systemID, const xmlChar *publicID) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 698
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 698
    functionName: xmlGetIntSubset
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlDtd*
    signature: 'xmlDtd *xmlGetIntSubset(const xmlDoc *doc) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeProp
      Src: /src/libxml2/tree.c:1720,1
    - Dst: xmlFreeProp
      Src: /src/libxml2/tree.c:1728,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlAttr*
    constantsTouched: []
    func_position:
      end: 1734
      start: 1706
    functionDepth: 0
    functionLinenumber: 1706
    functionLinenumberEnd: 1734
    functionName: xmlRemoveProp
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFreeProp
    linkageType: ''
    returnType: int
    signature: 'int xmlRemoveProp(xmlAttr *cur) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlSetListDoc
      Src: /src/libxml2/tree.c:2588,1
    - Dst: xmlNodeSetDoc
      Src: /src/libxml2/tree.c:2605,1
    - Dst: xmlNodeSetDoc
      Src: /src/libxml2/tree.c:2592,1
    - Dst: xmlSetListDoc
      Src: /src/libxml2/tree.c:2601,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 2
    argNames:
    - tree
    - doc
    argTypes:
    - xmlNode*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 2609
      start: 2574
    functionDepth: 0
    functionLinenumber: 2574
    functionLinenumberEnd: 2609
    functionName: xmlSetTreeDoc
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNodeSetDoc
    - xmlSetListDoc
    linkageType: ''
    returnType: int
    signature: 'int xmlSetTreeDoc(xmlNode *tree, xmlDoc *doc) '
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 8
    argCount: 1
    argNames:
    - parent
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3234
      start: 3211
    functionDepth: 0
    functionLinenumber: 3211
    functionLinenumberEnd: 3234
    functionName: xmlLastElementChild
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlLastElementChild(xmlNode *parent) '
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 8
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3303
      start: 3278
    functionDepth: 0
    functionLinenumber: 3278
    functionLinenumberEnd: 3303
    functionName: xmlNextElementSibling
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNextElementSibling(xmlNode *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlStaticCopyNodeList
      Src: /src/libxml2/tree.c:4168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - doc
    - node
    argTypes:
    - xmlDoc*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 4170
      start: 4167
    functionDepth: 0
    functionLinenumber: 4167
    functionLinenumberEnd: 4170
    functionName: xmlDocCopyNodeList
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStaticCopyNodeList
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlDocCopyNodeList(xmlDoc *doc, xmlNode *node) '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDtd
      Src: /src/libxml2/tree.c:4198,1
    - Dst: xmlCopyEntitiesTable
      Src: /src/libxml2/tree.c:4201,1
    - Dst: xmlCopyNotationTable
      Src: /src/libxml2/tree.c:4207,1
    - Dst: xmlCopyElementTable
      Src: /src/libxml2/tree.c:4213,1
    - Dst: xmlCopyAttributeTable
      Src: /src/libxml2/tree.c:4219,1
    - Dst: xmlCopyEntitiesTable
      Src: /src/libxml2/tree.c:4225,1
    - Dst: xmlGetEntityFromDtd
      Src: /src/libxml2/tree.c:4241,1
    - Dst: xmlGetParameterEntityFromDtd
      Src: /src/libxml2/tree.c:4246,1
    - Dst: xmlGetDtdQElementDesc
      Src: /src/libxml2/tree.c:4254,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/tree.c:4258,1
    - Dst: xmlCopyNode
      Src: /src/libxml2/tree.c:4260,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/tree.c:4286,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 67
    argCount: 1
    argNames:
    - dtd
    argTypes:
    - xmlDtd*
    constantsTouched: []
    func_position:
      end: 4288
      start: 4192
    functionDepth: 0
    functionLinenumber: 4192
    functionLinenumberEnd: 4288
    functionName: xmlCopyDtd
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlGetDtdQElementDesc
    - xmlCopyAttributeTable
    - xmlCopyNotationTable
    - xmlGetDtdQAttrDesc
    - xmlNewDtd
    - xmlFreeDtd
    - xmlGetEntityFromDtd
    - xmlCopyElementTable
    - xmlCopyNode
    - xmlCopyEntitiesTable
    - xmlGetParameterEntityFromDtd
    linkageType: ''
    returnType: xmlDtd*
    signature: 'xmlDtd *xmlCopyDtd(xmlDtd *dtd) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetPropNodeInternal
      Src: /src/libxml2/tree.c:6501,1
    - Dst: xmlFreeProp
      Src: /src/libxml2/tree.c:6506,1
    - Dst: xmlUnlinkNodeInternal
      Src: /src/libxml2/tree.c:6505,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - node
    - ns
    - name
    argTypes:
    - xmlNode*
    - xmlNs*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 6508
      start: 6497
    functionDepth: 0
    functionLinenumber: 6497
    functionLinenumberEnd: 6508
    functionName: xmlUnsetNsProp
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlUnlinkNodeInternal
    - xmlFreeProp
    - xmlGetPropNodeInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlUnsetNsProp(xmlNode *node, xmlNs *ns, const xmlChar *name) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: XML_NSMAP_NOTEMPTY
      Src: /src/libxml2/tree.c:7024,1
    - Dst: xmlDOMWrapNsMapAddItem
      Src: /src/libxml2/tree.c:7039,1
    - Dst: XML_NSMAP_FOREACH
      Src: /src/libxml2/tree.c:7028,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:7030,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 2
    argNames:
    - map
    - node
    argTypes:
    - xmlNsMapPtr*
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 7052
      start: 7001
    functionDepth: 0
    functionLinenumber: 7001
    functionLinenumberEnd: 7052
    functionName: xmlDOMWrapNSNormGatherInScopeNs
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlDOMWrapNsMapAddItem
    - xmlStrEqual
    - XML_NSMAP_FOREACH
    - XML_NSMAP_NOTEMPTY
    linkageType: ''
    returnType: int
    signature: "static int xmlDOMWrapNSNormGatherInScopeNs(xmlNsMapPtr *map,\t\t\t\txmlNodePtr
      node) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/tree.c:7067,1
    - Dst: xmlRealloc
      Src: /src/libxml2/tree.c:7070,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 5
    argNames:
    - list
    - size
    - number
    - oldNs
    - newNs
    argTypes:
    - xmlNsPtr**
    - int*
    - int*
    - xmlNsPtr
    - xmlNsPtr
    constantsTouched: []
    func_position:
      end: 7081
      start: 7059
    functionDepth: 0
    functionLinenumber: 7059
    functionLinenumberEnd: 7081
    functionName: xmlDOMWrapNSNormAddNsMapItem2
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    linkageType: ''
    returnType: int
    signature: "static int xmlDOMWrapNSNormAddNsMapItem2(xmlNsPtr **list, int *size,
      int *number,\t\t\txmlNsPtr oldNs, xmlNsPtr newNs) "
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:645,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:652,1
    - Dst: memset
      Src: /src/libxml2/tree.c:648,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:662,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:657,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/tree.c:671,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/tree.c:675,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 31
    argCount: 4
    argNames:
    - doc
    - name
    - publicId
    - systemId
    argTypes:
    - xmlDoc*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 677
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 677
    functionName: xmlNewDtd
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlRegisterNodeDefaultValue
    - memset
    - xmlStrdup
    - xmlMalloc
    - xmlFreeDtd
    linkageType: ''
    returnType: xmlDtd*
    signature: 'xmlDtd *xmlNewDtd(xmlDoc *doc, const xmlChar *name, const xmlChar
      *publicId, const xmlChar *systemId) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlDeregisterNodeDefaultValue
      Src: /src/libxml2/tree.c:1684,1
    - Dst: DICT_FREE
      Src: /src/libxml2/tree.c:1691,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/tree.c:1690,1
    - Dst: xmlRemoveID
      Src: /src/libxml2/tree.c:1688,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:1692,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlAttr*
    constantsTouched: []
    func_position:
      end: 1693
      start: 1676
    functionDepth: 0
    functionLinenumber: 1676
    functionLinenumberEnd: 1693
    functionName: xmlFreeProp
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDeregisterNodeDefaultValue
    - xmlRemoveID
    - DICT_FREE
    - xmlFreeNodeList
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeProp(xmlAttr *cur) '
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 8
    argCount: 1
    argNames:
    - parent
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3201
      start: 3178
    functionDepth: 0
    functionLinenumber: 3178
    functionLinenumberEnd: 3201
    functionName: xmlFirstElementChild
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlFirstElementChild(xmlNode *parent) '
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 8
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3268
      start: 3244
    functionDepth: 0
    functionLinenumber: 3244
    functionLinenumberEnd: 3268
    functionName: xmlPreviousElementSibling
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlPreviousElementSibling(xmlNode *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextAddContent
      Src: /src/libxml2/tree.c:6679,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 3
    argNames:
    - node
    - content
    - len
    argTypes:
    - xmlNode*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 6680
      start: 6668
    functionDepth: 0
    functionLinenumber: 6668
    functionLinenumberEnd: 6680
    functionName: xmlTextConcat
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlTextAddContent
    linkageType: ''
    returnType: int
    signature: 'int xmlTextConcat(xmlNode *node, const xmlChar *content, int len) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:6985,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - nsList
    - prefix
    argTypes:
    - xmlNsPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 6992
      start: 6975
    functionDepth: 0
    functionLinenumber: 6975
    functionLinenumberEnd: 6992
    functionName: xmlTreeNSListLookupByPrefix
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: xmlNsPtr
    signature: 'static xmlNsPtr xmlTreeNSListLookupByPrefix(xmlNsPtr nsList, const
      xmlChar *prefix) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewPropInternal
      Src: /src/libxml2/tree.c:1548,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 3
    argNames:
    - node
    - name
    - value
    argTypes:
    - xmlNode*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1549
      start: 1541
    functionDepth: 0
    functionLinenumber: 1541
    functionLinenumberEnd: 1549
    functionName: xmlNewProp
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNewPropInternal
    linkageType: ''
    returnType: xmlAttr*
    signature: 'xmlAttr *xmlNewProp(xmlNode *node, const xmlChar *name, const xmlChar
      *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDocNode
      Src: /src/libxml2/tree.c:1811,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - ns
    - name
    argTypes:
    - xmlNs*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1812
      start: 1809
    functionDepth: 0
    functionLinenumber: 1809
    functionLinenumberEnd: 1812
    functionName: xmlNewNode
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNewDocNode
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewNode(xmlNs *ns, const xmlChar *name) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewElem
      Src: /src/libxml2/tree.c:1938,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:1944,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/tree.c:1943,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 4
    argNames:
    - doc
    - ns
    - name
    - content
    argTypes:
    - xmlDoc*
    - xmlNs*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1949
      start: 1930
    functionDepth: 0
    functionLinenumber: 1930
    functionLinenumberEnd: 1949
    functionName: xmlNewDocNodeEatName
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictOwns
    - xmlNewElem
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewDocNodeEatName(xmlDoc *doc, xmlNs *ns, xmlChar *name,
      const xmlChar *content) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewText
      Src: /src/libxml2/tree.c:2260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - doc
    - content
    argTypes:
    - xmlDoc*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2263
      start: 2256
    functionDepth: 0
    functionLinenumber: 2256
    functionLinenumberEnd: 2263
    functionName: xmlNewDocText
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNewText
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewDocText(const xmlDoc *doc, const xmlChar *content) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeParseContent
      Src: /src/libxml2/tree.c:5344,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:5356,1
    - Dst: xmlTextSetContent
      Src: /src/libxml2/tree.c:5363,1
    - Dst: xmlStrndup
      Src: /src/libxml2/tree.c:5358,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 16
    argCount: 3
    argNames:
    - cur
    - content
    - len
    argTypes:
    - xmlNodePtr
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 5372
      start: 5335
    functionDepth: 0
    functionLinenumber: 5335
    functionLinenumberEnd: 5372
    functionName: xmlNodeSetContentInternal
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlNodeParseContent
    - xmlStrndup
    - xmlTextSetContent
    linkageType: ''
    returnType: int
    signature: 'static int xmlNodeSetContentInternal(xmlNodePtr cur, const xmlChar
      *content, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeAddContentLen
      Src: /src/libxml2/tree.c:5474,1
    - Dst: xmlStrlen
      Src: /src/libxml2/tree.c:5474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - cur
    - content
    argTypes:
    - xmlNode*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5475
      start: 5472
    functionDepth: 0
    functionLinenumber: 5472
    functionLinenumberEnd: 5475
    functionName: xmlNodeAddContent
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStrlen
    - xmlNodeAddContentLen
    linkageType: ''
    returnType: int
    signature: 'int xmlNodeAddContent(xmlNode *cur, const xmlChar *content) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictOwns
      Src: /src/libxml2/tree.c:1439,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:1453,1
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:1447,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:1440,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/tree.c:1452,1
    - Dst: memset
      Src: /src/libxml2/tree.c:1456,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/tree.c:1468,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:1470,1
    - Dst: xmlNewDocText
      Src: /src/libxml2/tree.c:1479,1
    - Dst: xmlIsID
      Src: /src/libxml2/tree.c:1492,1
    - Dst: xmlFreeProp
      Src: /src/libxml2/tree.c:1522,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/tree.c:1518,1
    - Dst: xmlAddIDSafe
      Src: /src/libxml2/tree.c:1496,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 82
    argCount: 5
    argNames:
    - node
    - ns
    - name
    - value
    - eatname
    argTypes:
    - xmlNodePtr
    - xmlNsPtr
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1524
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1524
    functionName: xmlNewPropInternal
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRegisterNodeDefaultValue
    - xmlDictLookup
    - xmlFreeProp
    - xmlDictOwns
    - memset
    - xmlStrdup
    - xmlNewDocText
    - xmlIsID
    - xmlMalloc
    - xmlAddIDSafe
    linkageType: ''
    returnType: xmlAttrPtr
    signature: 'static xmlAttrPtr xmlNewPropInternal(xmlNodePtr node, xmlNsPtr ns,
      const xmlChar * name, const xmlChar * value, int eatname) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDocPI
      Src: /src/libxml2/tree.c:1796,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - name
    - content
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1797
      start: 1794
    functionDepth: 0
    functionLinenumber: 1794
    functionLinenumberEnd: 1797
    functionName: xmlNewPI
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNewDocPI
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewPI(const xmlChar *name, const xmlChar *content) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlDeregisterNodeDefaultValue
      Src: /src/libxml2/tree.c:924,1
    - Dst: xmlFreeRefTable
      Src: /src/libxml2/tree.c:931,1
    - Dst: xmlFreeIDTable
      Src: /src/libxml2/tree.c:929,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/tree.c:940,1
    - Dst: xmlUnlinkNodeInternal
      Src: /src/libxml2/tree.c:938,1
    - Dst: xmlUnlinkNodeInternal
      Src: /src/libxml2/tree.c:943,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/tree.c:945,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/tree.c:948,1
    - Dst: xmlFreeNsList
      Src: /src/libxml2/tree.c:949,1
    - Dst: DICT_FREE
      Src: /src/libxml2/tree.c:951,1
    - Dst: DICT_FREE
      Src: /src/libxml2/tree.c:954,1
    - Dst: DICT_FREE
      Src: /src/libxml2/tree.c:952,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:955,1
    - Dst: DICT_FREE
      Src: /src/libxml2/tree.c:953,1
    - Dst: xmlDictFree
      Src: /src/libxml2/tree.c:956,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 957
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 957
    functionName: xmlFreeDoc
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFreeIDTable
    - xmlFree
    - xmlFreeNodeList
    - xmlFreeNsList
    - xmlUnlinkNodeInternal
    - xmlDictFree
    - xmlDeregisterNodeDefaultValue
    - xmlFreeRefTable
    - DICT_FREE
    - xmlFreeDtd
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeDoc(xmlDoc *cur) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:2131,1
    - Dst: memset
      Src: /src/libxml2/tree.c:2136,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/tree.c:2142,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:2133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - doc
    - name
    argTypes:
    - xmlDocPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2145
      start: 2124
    functionDepth: 0
    functionLinenumber: 2124
    functionLinenumberEnd: 2145
    functionName: xmlNewEntityRef
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlMalloc
    - xmlRegisterNodeDefaultValue
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlNewEntityRef(xmlDocPtr doc, xmlChar *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlCopyNamespace
      Src: /src/libxml2/tree.c:3626,1
    - Dst: xmlFreeNsList
      Src: /src/libxml2/tree.c:3628,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlNs*
    constantsTouched: []
    func_position:
      end: 3640
      start: 3620
    functionDepth: 0
    functionLinenumber: 3620
    functionLinenumberEnd: 3640
    functionName: xmlCopyNamespaceList
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlCopyNamespace
    - xmlFreeNsList
    linkageType: ''
    returnType: xmlNs*
    signature: 'xmlNs *xmlCopyNamespaceList(xmlNs *cur) '
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDocProp
      Src: /src/libxml2/tree.c:3650,1
    - Dst: xmlNewDocProp
      Src: /src/libxml2/tree.c:3654,1
    - Dst: xmlNewDocProp
      Src: /src/libxml2/tree.c:3652,1
    - Dst: xmlNewDocProp
      Src: /src/libxml2/tree.c:3658,1
    - Dst: xmlNewDocProp
      Src: /src/libxml2/tree.c:3656,1
    - Dst: xmlSearchNsSafe
      Src: /src/libxml2/tree.c:3666,1
    - Dst: xmlSearchNsSafe
      Src: /src/libxml2/tree.c:3675,1
    - Dst: xmlNewNs
      Src: /src/libxml2/tree.c:3690,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:3700,1
    - Dst: xmlNewReconciledNs
      Src: /src/libxml2/tree.c:3708,1
    - Dst: xmlStaticCopyNodeList
      Src: /src/libxml2/tree.c:3720,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:3750,1
    - Dst: xmlFreeProp
      Src: /src/libxml2/tree.c:3758,1
    - Dst: xmlIsID
      Src: /src/libxml2/tree.c:3739,1
    - Dst: xmlAddIDSafe
      Src: /src/libxml2/tree.c:3749,1
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/tree.c:3746,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 90
    argCount: 3
    argNames:
    - doc
    - target
    - cur
    argTypes:
    - xmlDocPtr
    - xmlNodePtr
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 3760
      start: 3642
    functionDepth: 0
    functionLinenumber: 3642
    functionLinenumberEnd: 3760
    functionName: xmlCopyPropInternal
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeProp
    - xmlNewNs
    - xmlNewReconciledNs
    - xmlSearchNsSafe
    - xmlNewDocProp
    - xmlStrEqual
    - xmlIsID
    - xmlNodeGetContent
    - xmlStaticCopyNodeList
    - xmlAddIDSafe
    linkageType: ''
    returnType: xmlAttrPtr
    signature: 'static xmlAttrPtr xmlCopyPropInternal(xmlDocPtr doc, xmlNodePtr target,
      xmlAttrPtr cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDocNodeEatName
      Src: /src/libxml2/tree.c:1830,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - ns
    - name
    argTypes:
    - xmlNs*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1831
      start: 1828
    functionDepth: 0
    functionLinenumber: 1828
    functionLinenumberEnd: 1831
    functionName: xmlNewNodeEatName
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNewDocNodeEatName
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewNodeEatName(xmlNs *ns, xmlChar *name) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDocNode
      Src: /src/libxml2/tree.c:1968,1
    - Dst: xmlNewDocText
      Src: /src/libxml2/tree.c:1974,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/tree.c:1976,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - doc
    - ns
    - name
    - content
    argTypes:
    - xmlDoc*
    - xmlNs*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1986
      start: 1963
    functionDepth: 0
    functionLinenumber: 1963
    functionLinenumberEnd: 1986
    functionName: xmlNewDocRawNode
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNewDocText
    - xmlNewDocNode
    - xmlFreeNode
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewDocRawNode(xmlDoc *doc, xmlNs *ns, const xmlChar *name,
      const xmlChar *content) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDocRawNode
      Src: /src/libxml2/tree.c:2092,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 20
    argCount: 4
    argNames:
    - parent
    - ns
    - name
    - content
    argTypes:
    - xmlNode*
    - xmlNs*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2111
      start: 2069
    functionDepth: 0
    functionLinenumber: 2069
    functionLinenumberEnd: 2111
    functionName: xmlNewTextChild
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNewDocRawNode
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewTextChild(xmlNode *parent, xmlNs *ns, const xmlChar
      *name, const xmlChar *content) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:2282,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/tree.c:2298,1
    - Dst: xmlStrndup
      Src: /src/libxml2/tree.c:2290,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/tree.c:2292,1
    - Dst: memset
      Src: /src/libxml2/tree.c:2285,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - content
    - len
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 2300
      start: 2275
    functionDepth: 0
    functionLinenumber: 2275
    functionLinenumberEnd: 2300
    functionName: xmlNewTextLen
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlRegisterNodeDefaultValue
    - xmlStrndup
    - memset
    - xmlFreeNode
    - xmlMalloc
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewTextLen(const xmlChar *content, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeSetContentInternal
      Src: /src/libxml2/tree.c:5397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - cur
    - content
    argTypes:
    - xmlNode*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5398
      start: 5395
    functionDepth: 0
    functionLinenumber: 5395
    functionLinenumberEnd: 5398
    functionName: xmlNodeSetContent
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNodeSetContentInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlNodeSetContent(xmlNode *cur, const xmlChar *content) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextAddContent
      Src: /src/libxml2/tree.c:5499,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/tree.c:5503,1
    - Dst: xmlUnlinkNodeInternal
      Src: /src/libxml2/tree.c:5502,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 5505
      start: 5486
    functionDepth: 0
    functionLinenumber: 5486
    functionLinenumberEnd: 5505
    functionName: xmlTextMerge
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlUnlinkNodeInternal
    - xmlTextAddContent
    - xmlFreeNode
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlTextMerge(xmlNode *first, xmlNode *second) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextAddContent
      Src: /src/libxml2/tree.c:3095,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/tree.c:3097,1
    - Dst: xmlInsertNode
      Src: /src/libxml2/tree.c:3114,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 2
    argNames:
    - parent
    - cur
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3115
      start: 3081
    functionDepth: 0
    functionLinenumber: 3081
    functionLinenumberEnd: 3115
    functionName: xmlAddChild
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlTextAddContent
    - xmlFreeNode
    - xmlInsertNode
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlAddChild(xmlNode *parent, xmlNode *cur) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/tree.c:472,1
    - Dst: xmlScanName
      Src: /src/libxml2/tree.c:477,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/tree.c:482,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 2
    argNames:
    - value
    - space
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 487
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 487
    functionName: xmlValidateNMToken
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - IS_BLANK_CH
    - xmlScanName
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateNMToken(const xmlChar *value, int space) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictLookup
      Src: /src/libxml2/tree.c:1896,1
    - Dst: xmlNewElem
      Src: /src/libxml2/tree.c:1907,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:1903,1
    - Dst: xmlNewElem
      Src: /src/libxml2/tree.c:1900,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:1909,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 4
    argNames:
    - doc
    - ns
    - name
    - content
    argTypes:
    - xmlDoc*
    - xmlNs*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1914
      start: 1886
    functionDepth: 0
    functionLinenumber: 1886
    functionLinenumberEnd: 1914
    functionName: xmlNewDocNode
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlDictLookup
    - xmlFree
    - xmlNewElem
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewDocNode(xmlDoc *doc, xmlNs *ns, const xmlChar *name,
      const xmlChar *content) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:2374,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/tree.c:2390,1
    - Dst: xmlStrndup
      Src: /src/libxml2/tree.c:2382,1
    - Dst: memset
      Src: /src/libxml2/tree.c:2377,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:2384,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - doc
    - content
    - len
    argTypes:
    - xmlDoc*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 2392
      start: 2367
    functionDepth: 0
    functionLinenumber: 2367
    functionLinenumberEnd: 2392
    functionName: xmlNewCDataBlock
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRegisterNodeDefaultValue
    - xmlStrndup
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewCDataBlock(xmlDoc *doc, const xmlChar *content, int
      len) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrncatNew
      Src: /src/libxml2/tree.c:2727,1
    - Dst: xmlTextSetContent
      Src: /src/libxml2/tree.c:2731,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - text
    - content
    - len
    argTypes:
    - xmlNodePtr
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 2733
      start: 2720
    functionDepth: 0
    functionLinenumber: 2720
    functionLinenumberEnd: 2733
    functionName: xmlTextAddContent
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStrncatNew
    - xmlTextSetContent
    linkageType: ''
    returnType: int
    signature: 'static int xmlTextAddContent(xmlNodePtr text, const xmlChar *content,
      int len) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlInsertNode
      Src: /src/libxml2/tree.c:2919,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 2
    argNames:
    - next
    - cur
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2920
      start: 2909
    functionDepth: 0
    functionLinenumber: 2909
    functionLinenumberEnd: 2920
    functionName: xmlAddPrevSibling
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlInsertNode
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlAddPrevSibling(xmlNode *next, xmlNode *cur) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/tree.c:3550,1
    - Dst: xmlUnlinkNodeInternal
      Src: /src/libxml2/tree.c:3559,1
    - Dst: xmlSetTreeDoc
      Src: /src/libxml2/tree.c:3560,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 45
    argCount: 2
    argNames:
    - old
    - cur
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3583
      start: 3541
    functionDepth: 0
    functionLinenumber: 3541
    functionLinenumberEnd: 3583
    functionName: xmlReplaceNode
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlUnlinkNodeInternal
    - xmlUnlinkNode
    - xmlSetTreeDoc
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlReplaceNode(xmlNode *old, xmlNode *cur) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/tree.c:6262,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:6264,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - prop
    argTypes:
    - xmlAttr*
    constantsTouched: []
    func_position:
      end: 6267
      start: 6256
    functionDepth: 0
    functionLinenumber: 6256
    functionLinenumberEnd: 6267
    functionName: xmlGetPropNodeValueInternal
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlNodeGetContent
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlGetPropNodeValueInternal(const xmlAttr *prop) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetPropNodeInternal
      Src: /src/libxml2/tree.c:2745,1
    - Dst: xmlRemoveProp
      Src: /src/libxml2/tree.c:2771,1
    - Dst: xmlSetTreeDoc
      Src: /src/libxml2/tree.c:2751,1
    - Dst: xmlUnlinkNodeInternal
      Src: /src/libxml2/tree.c:2748,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 5
    argNames:
    - doc
    - cur
    - parent
    - prev
    - next
    argTypes:
    - xmlDocPtr
    - xmlNodePtr
    - xmlNodePtr
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2775
      start: 2735
    functionDepth: 0
    functionLinenumber: 2735
    functionLinenumberEnd: 2775
    functionName: xmlInsertProp
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlUnlinkNodeInternal
    - xmlRemoveProp
    - xmlGetPropNodeInternal
    - xmlSetTreeDoc
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlInsertProp(xmlDocPtr doc, xmlNodePtr cur, xmlNodePtr
      parent, xmlNodePtr prev, xmlNodePtr next) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlHasProp
      Src: /src/libxml2/tree.c:6402,1
    - Dst: xmlGetPropNodeValueInternal
      Src: /src/libxml2/tree.c:6405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - node
    - name
    argTypes:
    - xmlNode*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 6406
      start: 6398
    functionDepth: 0
    functionLinenumber: 6398
    functionLinenumberEnd: 6406
    functionName: xmlGetProp
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlGetPropNodeValueInternal
    - xmlHasProp
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlGetProp(const xmlNode *node, const xmlChar *name) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/tree.c:437,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/tree.c:447,1
    - Dst: xmlScanName
      Src: /src/libxml2/tree.c:442,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 2
    argNames:
    - value
    - space
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 452
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 452
    functionName: xmlValidateName
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - IS_BLANK_CH
    - xmlScanName
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateName(const xmlChar *value, int space) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:1838,1
    - Dst: memset
      Src: /src/libxml2/tree.c:1841,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/tree.c:1857,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:1851,1
    - Dst: xmlNodeParseContent
      Src: /src/libxml2/tree.c:1849,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 4
    argNames:
    - doc
    - ns
    - name
    - content
    argTypes:
    - xmlDocPtr
    - xmlNsPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1860
      start: 1833
    functionDepth: 0
    functionLinenumber: 1833
    functionLinenumberEnd: 1860
    functionName: xmlNewElem
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRegisterNodeDefaultValue
    - memset
    - xmlNodeParseContent
    - xmlMalloc
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlNewElem(xmlDocPtr doc, xmlNsPtr ns, const xmlChar
      *name, const xmlChar *content) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlSetTreeDoc
      Src: /src/libxml2/tree.c:2991,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/tree.c:3018,1
    - Dst: xmlTextAddContent
      Src: /src/libxml2/tree.c:3015,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 2
    argNames:
    - parent
    - cur
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3038
      start: 2974
    functionDepth: 0
    functionLinenumber: 2974
    functionLinenumberEnd: 3038
    functionName: xmlAddChildList
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlTextAddContent
    - xmlFreeNode
    - xmlSetTreeDoc
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlAddChildList(xmlNode *parent, xmlNode *cur) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlCopyDtd
      Src: /src/libxml2/tree.c:4052,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/tree.c:4102,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/tree.c:4100,1
    - Dst: xmlStaticCopyNode
      Src: /src/libxml2/tree.c:4083,1
    - Dst: xmlSetTreeDoc
      Src: /src/libxml2/tree.c:4055,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 61
    argCount: 3
    argNames:
    - node
    - doc
    - parent
    argTypes:
    - xmlNode*
    - xmlDoc*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 4108
      start: 4036
    functionDepth: 0
    functionLinenumber: 4036
    functionLinenumberEnd: 4108
    functionName: xmlStaticCopyNodeList
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlCopyDtd
    - xmlStaticCopyNode
    - xmlFreeNodeList
    - xmlSetTreeDoc
    - xmlFreeDtd
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlStaticCopyNodeList(xmlNode *node, xmlDoc *doc, xmlNode
      *parent) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetPropNodeInternal
      Src: /src/libxml2/tree.c:6463,1
    - Dst: xmlGetPropNodeValueInternal
      Src: /src/libxml2/tree.c:6466,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 3
    argNames:
    - node
    - name
    - nameSpace
    argTypes:
    - xmlNode*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 6467
      start: 6459
    functionDepth: 0
    functionLinenumber: 6459
    functionLinenumberEnd: 6467
    functionName: xmlGetNsProp
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlGetPropNodeInternal
    - xmlGetPropNodeValueInternal
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlGetNsProp(const xmlNode *node, const xmlChar *name, const
      xmlChar *nameSpace) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:1756,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:1766,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/tree.c:1764,1
    - Dst: memset
      Src: /src/libxml2/tree.c:1759,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:1770,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/tree.c:1776,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/tree.c:1780,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 25
    argCount: 3
    argNames:
    - doc
    - name
    - content
    argTypes:
    - xmlDoc*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1782
      start: 1745
    functionDepth: 0
    functionLinenumber: 1745
    functionLinenumberEnd: 1782
    functionName: xmlNewDocPI
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlRegisterNodeDefaultValue
    - xmlDictLookup
    - memset
    - xmlFreeNode
    - xmlStrdup
    - xmlMalloc
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewDocPI(xmlDoc *doc, const xmlChar *name, const xmlChar
      *content) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:2336,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/tree.c:2354,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:2344,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/tree.c:2350,1
    - Dst: memset
      Src: /src/libxml2/tree.c:2339,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - content
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2356
      start: 2329
    functionDepth: 0
    functionLinenumber: 2329
    functionLinenumberEnd: 2356
    functionName: xmlNewComment
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlRegisterNodeDefaultValue
    - memset
    - xmlFreeNode
    - xmlStrdup
    - xmlMalloc
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewComment(const xmlChar *content) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlDOMWrapNsMapFree
      Src: /src/libxml2/tree.c:6960,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:6964,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlDOMWrapCtxt*
    constantsTouched: []
    func_position:
      end: 6965
      start: 6954
    functionDepth: 0
    functionLinenumber: 6954
    functionLinenumberEnd: 6965
    functionName: xmlDOMWrapFreeCtxt
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlDOMWrapNsMapFree
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xmlDOMWrapFreeCtxt(xmlDOMWrapCtxt *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/tree.c:5981,1
    - Dst: xmlRealloc
      Src: /src/libxml2/tree.c:5985,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - cache
    - capacity
    argTypes:
    - xmlNsCache**
    - int*
    constantsTouched: []
    func_position:
      end: 5992
      start: 5976
    functionDepth: 0
    functionLinenumber: 5976
    functionLinenumberEnd: 5992
    functionName: xmlGrowNsCache
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlGrowNsCache(xmlNsCache **cache, int *capacity) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetIntSubset
      Src: /src/libxml2/tree.c:721,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:741,1
    - Dst: memset
      Src: /src/libxml2/tree.c:732,1
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:729,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:736,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:746,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/tree.c:790,1
    - Dst: xmlFreeDtd
      Src: /src/libxml2/tree.c:794,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 64
    argCount: 4
    argNames:
    - doc
    - name
    - publicId
    - systemId
    argTypes:
    - xmlDoc*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 796
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 796
    functionName: xmlCreateIntSubset
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlRegisterNodeDefaultValue
    - memset
    - xmlStrdup
    - xmlGetIntSubset
    - xmlMalloc
    - xmlFreeDtd
    linkageType: ''
    returnType: xmlDtd*
    signature: 'xmlDtd *xmlCreateIntSubset(xmlDoc *doc, const xmlChar *name, const
      xmlChar *publicId, const xmlChar *systemId) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewTextLen
      Src: /src/libxml2/tree.c:2315,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 3
    argNames:
    - doc
    - content
    - len
    argTypes:
    - xmlDoc*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 2318
      start: 2311
    functionDepth: 0
    functionLinenumber: 2311
    functionLinenumberEnd: 2318
    functionName: xmlNewDocTextLen
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNewTextLen
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewDocTextLen(xmlDoc *doc, const xmlChar *content, int
      len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewComment
      Src: /src/libxml2/tree.c:2406,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - doc
    - content
    argTypes:
    - xmlDoc*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2409
      start: 2402
    functionDepth: 0
    functionLinenumber: 2402
    functionLinenumberEnd: 2409
    functionName: xmlNewDocComment
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNewComment
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewDocComment(xmlDoc *doc, const xmlChar *content) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlInsertNode
      Src: /src/libxml2/tree.c:2962,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 21
    argCount: 2
    argNames:
    - node
    - cur
    argTypes:
    - xmlNode*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2963
      start: 2940
    functionDepth: 0
    functionLinenumber: 2940
    functionLinenumberEnd: 2963
    functionName: xmlAddSibling
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlInsertNode
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlAddSibling(xmlNode *node, xmlNode *cur) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:6293,1
    - Dst: xmlGetDtdAttrDesc
      Src: /src/libxml2/tree.c:6309,1
    - Dst: xmlGetDtdAttrDesc
      Src: /src/libxml2/tree.c:6307,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 2
    argNames:
    - node
    - name
    argTypes:
    - xmlNode*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 6317
      start: 6281
    functionDepth: 0
    functionLinenumber: 6281
    functionLinenumberEnd: 6317
    functionName: xmlHasProp
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    - xmlGetDtdAttrDesc
    linkageType: ''
    returnType: xmlAttr*
    signature: 'xmlAttr *xmlHasProp(const xmlNode *node, const xmlChar *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetPropNodeInternal
      Src: /src/libxml2/tree.c:6432,1
    - Dst: xmlGetPropNodeValueInternal
      Src: /src/libxml2/tree.c:6435,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - node
    - name
    argTypes:
    - xmlNode*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 6436
      start: 6428
    functionDepth: 0
    functionLinenumber: 6428
    functionLinenumberEnd: 6436
    functionName: xmlGetNoNsProp
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlGetPropNodeInternal
    - xmlGetPropNodeValueInternal
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlGetNoNsProp(const xmlNode *node, const xmlChar *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetPropNodeInternal
      Src: /src/libxml2/tree.c:6481,1
    - Dst: xmlUnlinkNodeInternal
      Src: /src/libxml2/tree.c:6484,1
    - Dst: xmlFreeProp
      Src: /src/libxml2/tree.c:6485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - node
    - name
    argTypes:
    - xmlNode*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 6487
      start: 6477
    functionDepth: 0
    functionLinenumber: 6477
    functionLinenumberEnd: 6487
    functionName: xmlUnsetProp
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlUnlinkNodeInternal
    - xmlFreeProp
    - xmlGetPropNodeInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlUnsetProp(xmlNode *node, const xmlChar *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:6942,1
    - Dst: memset
      Src: /src/libxml2/tree.c:6945,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 6947
      start: 6937
    functionDepth: 0
    functionLinenumber: 6937
    functionLinenumberEnd: 6947
    functionName: xmlDOMWrapNewCtxt
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlDOMWrapCtxt*
    signature: 'xmlDOMWrapCtxt *xmlDOMWrapNewCtxt(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewNs
      Src: /src/libxml2/tree.c:3605,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlNs*
    constantsTouched: []
    func_position:
      end: 3611
      start: 3598
    functionDepth: 0
    functionLinenumber: 3598
    functionLinenumberEnd: 3611
    functionName: xmlCopyNamespace
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNewNs
    linkageType: ''
    returnType: xmlNs*
    signature: 'xmlNs *xmlCopyNamespace(xmlNs *cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - func
    argTypes:
    - xmlDeregisterNodeFunc
    constantsTouched: []
    func_position:
      end: 8912
      start: 8904
    functionDepth: 0
    functionLinenumber: 8904
    functionLinenumberEnd: 8912
    functionName: xmlDeregisterNodeDefault
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlDeregisterNodeFunc
    signature: 'xmlDeregisterNodeFunc xmlDeregisterNodeDefault(xmlDeregisterNodeFunc
      func) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/tree.c:394,1
    - Dst: xmlScanName
      Src: /src/libxml2/tree.c:399,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/tree.c:412,1
    - Dst: xmlScanName
      Src: /src/libxml2/tree.c:406,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 2
    argNames:
    - value
    - space
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 417
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 417
    functionName: xmlValidateQName
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - IS_BLANK_CH
    - xmlScanName
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateQName(const xmlChar *value, int space) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeNs
      Src: /src/libxml2/tree.c:612,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlNs*
    constantsTouched: []
    func_position:
      end: 615
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 615
    functionName: xmlFreeNsList
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFreeNs
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeNsList(xmlNs *cur) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlDeregisterNodeDefaultValue
      Src: /src/libxml2/tree.c:824,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/tree.c:839,1
    - Dst: DICT_FREE
      Src: /src/libxml2/tree.c:845,1
    - Dst: xmlUnlinkNodeInternal
      Src: /src/libxml2/tree.c:838,1
    - Dst: DICT_FREE
      Src: /src/libxml2/tree.c:844,1
    - Dst: DICT_FREE
      Src: /src/libxml2/tree.c:846,1
    - Dst: xmlFreeNotationTable
      Src: /src/libxml2/tree.c:849,1
    - Dst: xmlFreeElementTable
      Src: /src/libxml2/tree.c:852,1
    - Dst: xmlFreeAttributeTable
      Src: /src/libxml2/tree.c:854,1
    - Dst: xmlFreeEntitiesTable
      Src: /src/libxml2/tree.c:856,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:860,1
    - Dst: xmlFreeEntitiesTable
      Src: /src/libxml2/tree.c:858,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlDtd*
    constantsTouched: []
    func_position:
      end: 861
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 861
    functionName: xmlFreeDtd
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFreeElementTable
    - xmlFreeEntitiesTable
    - xmlFree
    - xmlUnlinkNodeInternal
    - xmlFreeNode
    - DICT_FREE
    - xmlFreeAttributeTable
    - xmlFreeNotationTable
    - xmlDeregisterNodeDefaultValue
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeDtd(xmlDtd *cur) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewPropInternal
      Src: /src/libxml2/tree.c:1600,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 4
    argNames:
    - node
    - ns
    - name
    - value
    argTypes:
    - xmlNode*
    - xmlNs*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1601
      start: 1592
    functionDepth: 0
    functionLinenumber: 1592
    functionLinenumberEnd: 1601
    functionName: xmlNewNsPropEatName
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNewPropInternal
    linkageType: ''
    returnType: xmlAttr*
    signature: 'xmlAttr *xmlNewNsPropEatName(xmlNode *node, xmlNs *ns, xmlChar *name,
      const xmlChar *value) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:6835,1
    - Dst: memset
      Src: /src/libxml2/tree.c:6848,1
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:6853,1
    - Dst: memset
      Src: /src/libxml2/tree.c:6856,1
    - Dst: memset
      Src: /src/libxml2/tree.c:6838,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 5
    argNames:
    - nsmap
    - position
    - oldNs
    - newNs
    - depth
    argTypes:
    - xmlNsMapPtr*
    - int
    - xmlNsPtr
    - xmlNsPtr
    - int
    constantsTouched: []
    func_position:
      end: 6886
      start: 6818
    functionDepth: 0
    functionLinenumber: 6818
    functionLinenumberEnd: 6886
    functionName: xmlDOMWrapNsMapAddItem
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlNsMapItemPtr
    signature: "static xmlNsMapItemPtr xmlDOMWrapNsMapAddItem(xmlNsMapPtr *nsmap,
      int position,\t\t xmlNsPtr oldNs, xmlNsPtr newNs, int depth) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/tree.c:359,1
    - Dst: xmlScanName
      Src: /src/libxml2/tree.c:364,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/tree.c:369,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 2
    argNames:
    - value
    - space
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 374
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 374
    functionName: xmlValidateNCName
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - IS_BLANK_CH
    - xmlScanName
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateNCName(const xmlChar *value, int space) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:594,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:595,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:596,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlNs*
    constantsTouched: []
    func_position:
      end: 597
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 597
    functionName: xmlFreeNs
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeNs(xmlNs *cur) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewPropInternal
      Src: /src/libxml2/tree.c:1575,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 4
    argNames:
    - node
    - ns
    - name
    - value
    argTypes:
    - xmlNode*
    - xmlNs*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1576
      start: 1567
    functionDepth: 0
    functionLinenumber: 1567
    functionLinenumberEnd: 1576
    functionName: xmlNewNsProp
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNewPropInternal
    linkageType: ''
    returnType: xmlAttr*
    signature: 'xmlAttr *xmlNewNsProp(xmlNode *node, xmlNs *ns, const xmlChar *name,
      const xmlChar *value) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:2031,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:2039,1
    - Dst: memset
      Src: /src/libxml2/tree.c:2034,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/tree.c:2045,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/tree.c:2049,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - content
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2051
      start: 2024
    functionDepth: 0
    functionLinenumber: 2024
    functionLinenumberEnd: 2051
    functionName: xmlNewText
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlRegisterNodeDefaultValue
    - memset
    - xmlFreeNode
    - xmlStrdup
    - xmlMalloc
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewText(const xmlChar *content) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlCopyProp
      Src: /src/libxml2/tree.c:3797,1
    - Dst: xmlFreePropList
      Src: /src/libxml2/tree.c:3799,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - target
    - cur
    argTypes:
    - xmlNode*
    - xmlAttr*
    constantsTouched: []
    func_position:
      end: 3812
      start: 3789
    functionDepth: 0
    functionLinenumber: 3789
    functionLinenumberEnd: 3812
    functionName: xmlCopyPropList
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlCopyProp
    - xmlFreePropList
    linkageType: ''
    returnType: xmlAttr*
    signature: 'xmlAttr *xmlCopyPropList(xmlNode *target, xmlAttr *cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetNsListSafe
      Src: /src/libxml2/tree.c:5599,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 2
    argNames:
    - doc
    - node
    argTypes:
    - xmlDoc*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 5601
      start: 5594
    functionDepth: 0
    functionLinenumber: 5594
    functionLinenumberEnd: 5601
    functionName: xmlGetNsList
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlGetNsListSafe
    linkageType: ''
    returnType: xmlNs**
    signature: 'xmlNs **xmlGetNsList(const xmlDoc *doc, const xmlNode *node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeListGetStringInternal
      Src: /src/libxml2/tree.c:1425,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - list
    - inLine
    argTypes:
    - xmlDoc*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 1426
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1426
    functionName: xmlNodeListGetRawString
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNodeListGetStringInternal
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlNodeListGetRawString(const xmlDoc *doc ATTRIBUTE_UNUSED,
      const xmlNode *list, int inLine) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:1628,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/tree.c:1635,1
    - Dst: xmlNodeParseContent
      Src: /src/libxml2/tree.c:1642,1
    - Dst: memset
      Src: /src/libxml2/tree.c:1631,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:1637,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/tree.c:1647,1
    - Dst: xmlFreeProp
      Src: /src/libxml2/tree.c:1651,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 24
    argCount: 3
    argNames:
    - doc
    - name
    - value
    argTypes:
    - xmlDoc*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1653
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1653
    functionName: xmlNewDocProp
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlRegisterNodeDefaultValue
    - xmlDictLookup
    - xmlFreeProp
    - memset
    - xmlStrdup
    - xmlNodeParseContent
    - xmlMalloc
    linkageType: ''
    returnType: xmlAttr*
    signature: 'xmlAttr *xmlNewDocProp(xmlDoc *doc, const xmlChar *name, const xmlChar
      *value) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeNsList
      Src: /src/libxml2/tree.c:3319,1
    - Dst: xmlFreePropList
      Src: /src/libxml2/tree.c:3353,1
    - Dst: DICT_FREE
      Src: /src/libxml2/tree.c:3359,1
    - Dst: xmlDeregisterNodeDefaultValue
      Src: /src/libxml2/tree.c:3347,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/tree.c:3337,1
    - Dst: xmlFreeNsList
      Src: /src/libxml2/tree.c:3365,1
    - Dst: DICT_FREE
      Src: /src/libxml2/tree.c:3376,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:3377,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 78
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3390
      start: 3310
    functionDepth: 0
    functionLinenumber: 3310
    functionLinenumberEnd: 3390
    functionName: xmlFreeNodeList
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeNsList
    - xmlFreePropList
    - xmlFreeDoc
    - DICT_FREE
    - xmlDeregisterNodeDefaultValue
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeNodeList(xmlNode *cur) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewReconciledNs
      Src: /src/libxml2/tree.c:6035,1
    - Dst: xmlNewReconciledNs
      Src: /src/libxml2/tree.c:6070,1
    - Dst: xmlGrowNsCache
      Src: /src/libxml2/tree.c:6078,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:6122,1
    - Dst: xmlGrowNsCache
      Src: /src/libxml2/tree.c:6043,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 93
    argCount: 2
    argNames:
    - doc
    - tree
    argTypes:
    - xmlDoc*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 6124
      start: 6007
    functionDepth: 0
    functionLinenumber: 6007
    functionLinenumberEnd: 6124
    functionName: xmlReconciliateNs
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlNewReconciledNs
    - xmlGrowNsCache
    linkageType: ''
    returnType: int
    signature: 'int xmlReconciliateNs(xmlDoc *doc, xmlNode *tree) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetPropNodeInternal
      Src: /src/libxml2/tree.c:6338,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - node
    - name
    - nameSpace
    argTypes:
    - xmlNode*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 6339
      start: 6335
    functionDepth: 0
    functionLinenumber: 6335
    functionLinenumberEnd: 6339
    functionName: xmlHasNsProp
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlGetPropNodeInternal
    linkageType: ''
    returnType: xmlAttr*
    signature: 'xmlAttr *xmlHasNsProp(const xmlNode *node, const xmlChar *name, const
      xmlChar *nameSpace) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:6145,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:6157,1
    - Dst: xmlStrcat
      Src: /src/libxml2/tree.c:6184,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:6181,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:6155,1
    - Dst: xmlStrcat
      Src: /src/libxml2/tree.c:6187,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/tree.c:6197,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/tree.c:6200,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:6203,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/tree.c:6207,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/tree.c:6210,1
    - Dst: xmlGetNsList
      Src: /src/libxml2/tree.c:6220,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/tree.c:6229,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/tree.c:6234,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:6242,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:6245,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:6223,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:6228,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 94
    argCount: 4
    argNames:
    - node
    - name
    - nsName
    - useDTD
    argTypes:
    - xmlNode*
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 6254
      start: 6126
    functionDepth: 0
    functionLinenumber: 6126
    functionLinenumberEnd: 6254
    functionName: xmlGetPropNodeInternal
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetDtdQAttrDesc
    - xmlGetNsList
    - xmlStrdup
    - xmlStrEqual
    - xmlStrcat
    linkageType: ''
    returnType: xmlAttrPtr
    signature: "static xmlAttrPtr xmlGetPropNodeInternal(const xmlNode *node, const
      xmlChar *name,\t\t const xmlChar *nsName, int useDTD) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:879,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:887,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/tree.c:903,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:885,1
    - Dst: memset
      Src: /src/libxml2/tree.c:882,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - version
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 905
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 905
    functionName: xmlNewDoc
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRegisterNodeDefaultValue
    - memset
    - xmlStrdup
    - xmlMalloc
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *xmlNewDoc(const xmlChar *version) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeListGetStringInternal
      Src: /src/libxml2/tree.c:1392,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 3
    argNames:
    - doc
    - list
    - inLine
    argTypes:
    - xmlDoc*
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 1393
      start: 1369
    functionDepth: 0
    functionLinenumber: 1369
    functionLinenumberEnd: 1393
    functionName: xmlNodeListGetString
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNodeListGetStringInternal
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlNodeListGetString(xmlDoc *doc, const xmlNode *list, int
      inLine) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlTreeEnsureXMLDecl
      Src: /src/libxml2/tree.c:6907,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:6916,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:6915,1
    - Dst: xmlNewNs
      Src: /src/libxml2/tree.c:6926,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 3
    argNames:
    - doc
    - nsName
    - prefix
    argTypes:
    - xmlDocPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 6930
      start: 6898
    functionDepth: 0
    functionLinenumber: 6898
    functionLinenumberEnd: 6930
    functionName: xmlDOMWrapStoreNs
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    - xmlNewNs
    - xmlTreeEnsureXMLDecl
    linkageType: ''
    returnType: xmlNsPtr
    signature: "static xmlNsPtr xmlDOMWrapStoreNs(xmlDocPtr doc,\t\t const xmlChar
      *nsName,\t\t const xmlChar *prefix) "
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:1299,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:1307,1
    - Dst: xmlBufCat
      Src: /src/libxml2/tree.c:1319,1
    - Dst: xmlBufCreate
      Src: /src/libxml2/tree.c:1310,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:1306,1
    - Dst: xmlEscapeText
      Src: /src/libxml2/tree.c:1323,1
    - Dst: xmlBufCat
      Src: /src/libxml2/tree.c:1326,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:1327,1
    - Dst: xmlBufGetNodeContent
      Src: /src/libxml2/tree.c:1332,1
    - Dst: xmlBufAdd
      Src: /src/libxml2/tree.c:1334,1
    - Dst: xmlBufFree
      Src: /src/libxml2/tree.c:1348,1
    - Dst: xmlBufCat
      Src: /src/libxml2/tree.c:1335,1
    - Dst: xmlBufFree
      Src: /src/libxml2/tree.c:1344,1
    - Dst: xmlBufDetach
      Src: /src/libxml2/tree.c:1343,1
    - Dst: xmlBufAdd
      Src: /src/libxml2/tree.c:1336,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 48
    argCount: 3
    argNames:
    - node
    - escape
    - flags
    argTypes:
    - xmlNode*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1350
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1350
    functionName: xmlNodeListGetStringInternal
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlBufAdd
    - xmlBufDetach
    - xmlBufCat
    - xmlEscapeText
    - xmlBufFree
    - xmlStrdup
    - xmlBufCreate
    - xmlBufGetNodeContent
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlNodeListGetStringInternal(const xmlNode *node, int escape,
      int flags) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:2207,1
    - Dst: memset
      Src: /src/libxml2/tree.c:2210,1
    - Dst: xmlStrndup
      Src: /src/libxml2/tree.c:2219,1
    - Dst: xmlStrlen
      Src: /src/libxml2/tree.c:2217,1
    - Dst: xmlStrndup
      Src: /src/libxml2/tree.c:2221,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:2223,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/tree.c:2227,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/tree.c:2240,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/tree.c:2244,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - doc
    - name
    argTypes:
    - xmlDoc*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2246
      start: 2196
    functionDepth: 0
    functionLinenumber: 2196
    functionLinenumberEnd: 2246
    functionName: xmlNewReference
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlRegisterNodeDefaultValue
    - xmlStrndup
    - memset
    - xmlStrlen
    - xmlGetDocEntity
    - xmlFreeNode
    - xmlStrdup
    - xmlMalloc
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewReference(const xmlDoc *doc, const xmlChar *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewXmlNs
      Src: /src/libxml2/tree.c:5643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 5647
      start: 5634
    functionDepth: 0
    functionLinenumber: 5634
    functionLinenumberEnd: 5647
    functionName: xmlTreeEnsureXMLDecl
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNewXmlNs
    linkageType: ''
    returnType: xmlNsPtr
    signature: 'static xmlNsPtr xmlTreeEnsureXMLDecl(xmlDocPtr doc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 6630
      start: 6624
    functionDepth: 0
    functionLinenumber: 6624
    functionLinenumberEnd: 6630
    functionName: xmlNodeIsText
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlNodeIsText(const xmlNode *node) '
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:1143,1
    - Dst: xmlBufIsEmpty
      Src: /src/libxml2/tree.c:1177,1
    - Dst: xmlNewDocText
      Src: /src/libxml2/tree.c:1192,1
    - Dst: xmlBufFree
      Src: /src/libxml2/tree.c:1215,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:1217,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/tree.c:1219,1
    - Dst: xmlNewEntityRef
      Src: /src/libxml2/tree.c:1124,1
    - Dst: xmlBufFree
      Src: /src/libxml2/tree.c:1199,1
    - Dst: xmlCopyCharMultiByte
      Src: /src/libxml2/tree.c:1157,1
    - Dst: xmlBufAdd
      Src: /src/libxml2/tree.c:1173,1
    - Dst: xmlBufCreate
      Src: /src/libxml2/tree.c:995,1
    - Dst: xmlBufCat
      Src: /src/libxml2/tree.c:1084,1
    - Dst: xmlStrndup
      Src: /src/libxml2/tree.c:1075,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/tree.c:1078,1
    - Dst: xmlBufAdd
      Src: /src/libxml2/tree.c:1008,1
    - Dst: xmlNewDocText
      Src: /src/libxml2/tree.c:1091,1
    - Dst: xmlBufDetach
      Src: /src/libxml2/tree.c:1182,1
    - Dst: xmlBufIsEmpty
      Src: /src/libxml2/tree.c:1090,1
    - Dst: xmlBufDetach
      Src: /src/libxml2/tree.c:1094,1
    - Dst: xmlNodeParseContentInternal
      Src: /src/libxml2/tree.c:1113,1
    - Dst: xmlNewDocText
      Src: /src/libxml2/tree.c:1178,1
    - Dst: xmlBufCat
      Src: /src/libxml2/tree.c:1160,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/tree.c:1204,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 221
    argCount: 5
    argNames:
    - doc
    - parent
    - value
    - len
    - listPtr
    argTypes:
    - xmlDoc*
    - xmlNodePtr
    - xmlChar*
    - int
    - xmlNodePtr*
    constantsTouched: []
    func_position:
      end: 1221
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 1221
    functionName: xmlNodeParseContentInternal
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlBufAdd
    - xmlBufDetach
    - xmlNewEntityRef
    - xmlStrndup
    - xmlBufCat
    - xmlBufFree
    - xmlGetDocEntity
    - xmlNewDocText
    - xmlBufIsEmpty
    - xmlBufCreate
    - xmlNodeParseContentInternal
    - xmlCopyCharMultiByte
    - xmlFreeNodeList
    linkageType: ''
    returnType: int
    signature: 'static int xmlNodeParseContentInternal(const xmlDoc *doc, xmlNodePtr
      parent, const xmlChar *value, int len, xmlNodePtr *listPtr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeParseContentInternal
      Src: /src/libxml2/tree.c:1283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - doc
    - value
    argTypes:
    - xmlDoc*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1285
      start: 1279
    functionDepth: 0
    functionLinenumber: 1279
    functionLinenumberEnd: 1285
    functionName: xmlStringGetNodeList
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNodeParseContentInternal
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlStringGetNodeList(const xmlDoc *doc, const xmlChar *value) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrlen
      Src: /src/libxml2/tree.c:2172,1
    - Dst: xmlStrndup
      Src: /src/libxml2/tree.c:2176,1
    - Dst: xmlStrndup
      Src: /src/libxml2/tree.c:2174,1
    - Dst: xmlNewEntityRef
      Src: /src/libxml2/tree.c:2182,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:2178,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - doc
    - name
    argTypes:
    - xmlDoc*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2183
      start: 2162
    functionDepth: 0
    functionLinenumber: 2162
    functionLinenumberEnd: 2183
    functionName: xmlNewCharRef
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlNewEntityRef
    - xmlStrlen
    - xmlStrndup
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewCharRef(xmlDoc *doc, const xmlChar *name) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:5607,1
    - Dst: xmlFreeNs
      Src: /src/libxml2/tree.c:5614,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:5617,1
    - Dst: xmlStrdup
      Src: /src/libxml2/tree.c:5612,1
    - Dst: memset
      Src: /src/libxml2/tree.c:5610,1
    - Dst: xmlFreeNs
      Src: /src/libxml2/tree.c:5619,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 5624
      start: 5603
    functionDepth: 0
    functionLinenumber: 5603
    functionLinenumberEnd: 5624
    functionName: xmlNewXmlNs
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - memset
    - xmlMalloc
    - xmlFreeNs
    linkageType: ''
    returnType: xmlNsPtr
    signature: 'static xmlNsPtr xmlNewXmlNs(void) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetPropNodeInternal
      Src: /src/libxml2/tree.c:6570,1
    - Dst: xmlAddIDSafe
      Src: /src/libxml2/tree.c:6607,1
    - Dst: xmlNewDocText
      Src: /src/libxml2/tree.c:6579,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/tree.c:6589,1
    - Dst: xmlRemoveID
      Src: /src/libxml2/tree.c:6585,1
    - Dst: xmlNewPropInternal
      Src: /src/libxml2/tree.c:6615,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 4
    argNames:
    - node
    - ns
    - name
    - value
    argTypes:
    - xmlNode*
    - xmlNs*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 6616
      start: 6560
    functionDepth: 0
    functionLinenumber: 6560
    functionLinenumberEnd: 6616
    functionName: xmlSetNsProp
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNewPropInternal
    - xmlGetPropNodeInternal
    - xmlNewDocText
    - xmlRemoveID
    - xmlAddIDSafe
    - xmlFreeNodeList
    linkageType: ''
    returnType: xmlAttr*
    signature: "xmlAttr *xmlSetNsProp(xmlNode *node, xmlNs *ns, const xmlChar *name,\t
      const xmlChar *value) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/tree.c:2002,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/tree.c:2011,1
    - Dst: memset
      Src: /src/libxml2/tree.c:2005,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 2013
      start: 1995
    functionDepth: 0
    functionLinenumber: 1995
    functionLinenumberEnd: 2013
    functionName: xmlNewDocFragment
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    - xmlRegisterNodeDefaultValue
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *xmlNewDocFragment(xmlDoc *doc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCopyPropInternal
      Src: /src/libxml2/tree.c:3776,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - target
    - cur
    argTypes:
    - xmlNode*
    - xmlAttr*
    constantsTouched: []
    func_position:
      end: 3777
      start: 3774
    functionDepth: 0
    functionLinenumber: 3774
    functionLinenumberEnd: 3777
    functionName: xmlCopyProp
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlCopyPropInternal
    linkageType: ''
    returnType: xmlAttr*
    signature: 'xmlAttr *xmlCopyProp(xmlNode *target, xmlAttr *cur) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufFromBuffer
      Src: /src/libxml2/tree.c:5139,1
    - Dst: xmlBufGetNodeContent
      Src: /src/libxml2/tree.c:5140,1
    - Dst: xmlBufBackToBuffer
      Src: /src/libxml2/tree.c:5141,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - buffer
    - cur
    argTypes:
    - xmlBuffer*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 5145
      start: 5132
    functionDepth: 0
    functionLinenumber: 5132
    functionLinenumberEnd: 5145
    functionName: xmlNodeBufGetContent
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlBufFromBuffer
    - xmlBufGetNodeContent
    - xmlBufBackToBuffer
    linkageType: ''
    returnType: int
    signature: 'int xmlNodeBufGetContent(xmlBuffer *buffer, const xmlNode *cur) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/tree.c:5542,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/tree.c:5550,1
    - Dst: xmlRealloc
      Src: /src/libxml2/tree.c:5560,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:5553,1
    - Dst: xmlFree
      Src: /src/libxml2/tree.c:5563,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 45
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - node
    - out
    argTypes:
    - xmlDoc*
    - xmlNode*
    - xmlNs***
    constantsTouched: []
    func_position:
      end: 5581
      start: 5520
    functionDepth: 0
    functionLinenumber: 5520
    functionLinenumberEnd: 5581
    functionName: xmlGetNsListSafe
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlStrEqual
    - xmlFree
    linkageType: ''
    returnType: int
    signature: 'int xmlGetNsListSafe(const xmlDoc *doc ATTRIBUTE_UNUSED, const xmlNode
      *node, xmlNs ***out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetBaseSafe
      Src: /src/libxml2/tree.c:5116,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - doc
    - cur
    argTypes:
    - xmlDoc*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 5118
      start: 5112
    functionDepth: 0
    functionLinenumber: 5112
    functionLinenumberEnd: 5118
    functionName: xmlNodeGetBase
    functionSourceFile: /src/libxml2/tree.c
    functionUses: []
    functionsReached:
    - xmlNodeGetBaseSafe
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlNodeGetBase(const xmlDoc *doc, const xmlNode *cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/xinclude.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXIncludeCtxtPtr
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: xmlXIncludeErrMemory
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlRaiseMemoryError
    linkageType: ''
    returnType: void
    signature: 'static void xmlXIncludeErrMemory(xmlXIncludeCtxtPtr ctxt) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:729,1
    - Dst: xmlStaticCopyNode
      Src: /src/libxml2/xinclude.c:740,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:731,1
    - Dst: xmlXIncludeExpandNode
      Src: /src/libxml2/xinclude.c:732,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:730,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:742,1
    - Dst: xmlXIncludeBaseFixup
      Src: /src/libxml2/xinclude.c:757,1
    - Dst: xmlStaticCopyNode
      Src: /src/libxml2/xinclude.c:760,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:762,1
    - Dst: xmlXIncludeBaseFixup
      Src: /src/libxml2/xinclude.c:777,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/xinclude.c:809,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 87
    argCount: 4
    argNames:
    - ctxt
    - elem
    - copyChildren
    - targetBase
    argTypes:
    - xmlXIncludeCtxtPtr
    - xmlNodePtr
    - int
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 811
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 811
    functionName: xmlXIncludeCopyNode
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlStaticCopyNode
    - xmlXIncludeErrMemory
    - xmlXIncludeBaseFixup
    - xmlStrEqual
    - xmlXIncludeExpandNode
    - xmlFreeNodeList
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlXIncludeCopyNode(xmlXIncludeCtxtPtr ctxt, xmlNodePtr
      elem, int copyChildren, const xmlChar *targetBase) '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/xinclude.c:943,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:954,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xinclude.c:952,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:948,1
    - Dst: xmlAddDocEntity
      Src: /src/libxml2/xinclude.c:945,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:961,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:965,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:968,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:986,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 48
    argCount: 3
    argNames:
    - payload
    - vdata
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 989
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 989
    functionName: xmlXIncludeMergeEntity
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlXIncludeErr
    - xmlXIncludeErrMemory
    - xmlGetDocEntity
    - xmlStrdup
    - xmlStrEqual
    - xmlAddDocEntity
    linkageType: ''
    returnType: void
    signature: "static void xmlXIncludeMergeEntity(void *payload, void *vdata,\t const
      xmlChar *name ATTRIBUTE_UNUSED) "
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlAddPrevSibling
      Src: /src/libxml2/xinclude.c:1742,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/xinclude.c:1744,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/xinclude.c:1748,1
    - Dst: xmlUnsetProp
      Src: /src/libxml2/xinclude.c:1758,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/xinclude.c:1795,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/xinclude.c:1783,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1720,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/xinclude.c:1749,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1794,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/xinclude.c:1764,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/xinclude.c:1743,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1724,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/xinclude.c:1763,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/xinclude.c:1784,1
    - Dst: xmlAddNextSibling
      Src: /src/libxml2/xinclude.c:1770,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/xinclude.c:1771,1
    - Dst: xmlAddPrevSibling
      Src: /src/libxml2/xinclude.c:1782,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/xinclude.c:1727,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/xinclude.c:1766,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 2
    argNames:
    - ctxt
    - ref
    argTypes:
    - xmlXIncludeCtxtPtr
    - xmlXIncludeRefPtr
    constantsTouched: []
    func_position:
      end: 1797
      start: 1692
    functionDepth: 0
    functionLinenumber: 1692
    functionLinenumberEnd: 1797
    functionName: xmlXIncludeIncludeNode
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlAddPrevSibling
    - xmlUnlinkNode
    - xmlUnsetProp
    - xmlXIncludeErrMemory
    - xmlFreeNode
    - xmlNewDocNode
    - xmlAddNextSibling
    - xmlFreeNodeList
    - xmlXIncludeErr
    linkageType: ''
    returnType: int
    signature: 'static int xmlXIncludeIncludeNode(xmlXIncludeCtxtPtr ctxt, xmlXIncludeRefPtr
      ref) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1814,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1815,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1821,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1816,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1828,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1829,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1830,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1831,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1837,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1844,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1855,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1856,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1851,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1857,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1858,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 52
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlXIncludeCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1866
      start: 1806
    functionDepth: 0
    functionLinenumber: 1806
    functionLinenumberEnd: 1866
    functionName: xmlXIncludeTestNode
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    - xmlXIncludeErr
    linkageType: ''
    returnType: int
    signature: 'static int xmlXIncludeTestNode(xmlXIncludeCtxtPtr ctxt, xmlNodePtr
      node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - ctxt
    - handler
    - data
    argTypes:
    - xmlXIncludeCtxt*
    - xmlStructuredErrorFunc
    - void*
    constantsTouched: []
    func_position:
      end: 1996
      start: 1989
    functionDepth: 0
    functionLinenumber: 1989
    functionLinenumberEnd: 1996
    functionName: xmlXIncludeSetErrorHandler
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlXIncludeSetErrorHandler(xmlXIncludeCtxt *ctxt, xmlStructuredErrorFunc
      handler, void *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ctxt
    - mode
    argTypes:
    - xmlXIncludeCtxt*
    - int
    constantsTouched: []
    func_position:
      end: 2044
      start: 2038
    functionDepth: 0
    functionLinenumber: 2038
    functionLinenumberEnd: 2044
    functionName: xmlXIncludeSetStreamingMode
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlXIncludeSetStreamingMode(xmlXIncludeCtxt *ctxt, int mode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXIncludeProcessFlagsData
      Src: /src/libxml2/xinclude.c:2111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - doc
    - flags
    argTypes:
    - xmlDoc*
    - int
    constantsTouched: []
    func_position:
      end: 2112
      start: 2109
    functionDepth: 0
    functionLinenumber: 2109
    functionLinenumberEnd: 2112
    functionName: xmlXIncludeProcessFlags
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlXIncludeProcessFlagsData
    linkageType: ''
    returnType: int
    signature: 'int xmlXIncludeProcessFlags(xmlDoc *doc, int flags) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xinclude.c:324,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:328,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/xinclude.c:326,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/xinclude.c:332,1
    - Dst: xmlCtxtSetResourceLoader
      Src: /src/libxml2/xinclude.c:334,1
    - Dst: xmlDictFree
      Src: /src/libxml2/xinclude.c:348,1
    - Dst: xmlDictReference
      Src: /src/libxml2/xinclude.c:350,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/xinclude.c:357,1
    - Dst: xmlLoadResource
      Src: /src/libxml2/xinclude.c:359,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/xinclude.c:363,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:382,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xinclude.c:376,1
    - Dst: xmlCtxtIsCatastrophicError
      Src: /src/libxml2/xinclude.c:381,1
    - Dst: xmlParseDocument
      Src: /src/libxml2/xinclude.c:368,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/xinclude.c:364,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/xinclude.c:383,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 2
    argNames:
    - ctxt
    - URL
    argTypes:
    - xmlXIncludeCtxtPtr
    - char*
    constantsTouched: []
    func_position:
      end: 386
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 386
    functionName: xmlXIncludeParseFile
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlCtxtUseOptions
    - xmlLoadResource
    - xmlXIncludeErr
    - xmlXIncludeErrMemory
    - xmlFreeInputStream
    - xmlInitParser
    - xmlDictFree
    - xmlCtxtSetErrorHandler
    - xmlCtxtPushInput
    - xmlCtxtSetResourceLoader
    - xmlDictReference
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - xmlParseDocument
    - xmlCtxtIsCatastrophicError
    - xmlNewParserCtxt
    linkageType: ''
    returnType: xmlDocPtr
    signature: 'static xmlDocPtr xmlXIncludeParseFile(xmlXIncludeCtxtPtr ctxt, const
      char *URL) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetBaseSafe
      Src: /src/libxml2/xinclude.c:647,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:648,1
    - Dst: xmlStrlen
      Src: /src/libxml2/xinclude.c:652,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:650,1
    - Dst: xmlStrlen
      Src: /src/libxml2/xinclude.c:651,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xinclude.c:653,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:655,1
    - Dst: xmlBuildRelativeURISafe
      Src: /src/libxml2/xinclude.c:658,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:659,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:663,1
    - Dst: memset
      Src: /src/libxml2/xinclude.c:684,1
    - Dst: xmlNodeSetBase
      Src: /src/libxml2/xinclude.c:674,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:676,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:690,1
    - Dst: xmlUnsetNsProp
      Src: /src/libxml2/xinclude.c:686,1
    - Dst: xmlStrchr
      Src: /src/libxml2/xinclude.c:673,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:689,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 4
    argNames:
    - ctxt
    - cur
    - copy
    - targetBase
    argTypes:
    - xmlXIncludeCtxtPtr
    - xmlNodePtr
    - xmlNodePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 691
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 691
    functionName: xmlXIncludeBaseFixup
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlBuildRelativeURISafe
    - xmlFree
    - memset
    - xmlXIncludeErrMemory
    - xmlStrlen
    - xmlNodeSetBase
    - xmlStrdup
    - xmlNodeGetBaseSafe
    - xmlStrEqual
    - xmlUnsetNsProp
    - xmlStrchr
    - xmlXIncludeErr
    linkageType: ''
    returnType: void
    signature: 'static void xmlXIncludeBaseFixup(xmlXIncludeCtxtPtr ctxt, xmlNodePtr
      cur, xmlNodePtr copy, const xmlChar *targetBase) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlXIncludeLoadDoc
      Src: /src/libxml2/xinclude.c:1651,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1669,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1667,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1668,1
    - Dst: xmlXIncludeLoadTxt
      Src: /src/libxml2/xinclude.c:1654,1
    - Dst: xmlXIncludeLoadFallback
      Src: /src/libxml2/xinclude.c:1670,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1677,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 2
    argNames:
    - ctxt
    - ref
    argTypes:
    - xmlXIncludeCtxtPtr
    - xmlXIncludeRefPtr
    constantsTouched: []
    func_position:
      end: 1683
      start: 1639
    functionDepth: 0
    functionLinenumber: 1639
    functionLinenumberEnd: 1683
    functionName: xmlXIncludeLoadNode
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlXIncludeLoadDoc
    - xmlXIncludeLoadTxt
    - xmlStrEqual
    - xmlXIncludeLoadFallback
    - xmlXIncludeErr
    linkageType: ''
    returnType: int
    signature: 'static int xmlXIncludeLoadNode(xmlXIncludeCtxtPtr ctxt, xmlXIncludeRefPtr
      ref) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXIncludeCtxt*
    constantsTouched: []
    func_position:
      end: 1978
      start: 1973
    functionDepth: 0
    functionLinenumber: 1973
    functionLinenumberEnd: 1978
    functionName: xmlXIncludeGetLastError
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlXIncludeGetLastError(xmlXIncludeCtxt *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - ctxt
    - flags
    argTypes:
    - xmlXIncludeCtxt*
    - int
    constantsTouched: []
    func_position:
      end: 2029
      start: 2023
    functionDepth: 0
    functionLinenumber: 2023
    functionLinenumberEnd: 2029
    functionName: xmlXIncludeSetFlags
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlXIncludeSetFlags(xmlXIncludeCtxt *ctxt, int flags) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetAttrValue
      Src: /src/libxml2/xinclude.c:216,1
    - Dst: xmlNodeGetAttrValue
      Src: /src/libxml2/xinclude.c:228,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:217,1
    - Dst: xmlNodeGetAttrValue
      Src: /src/libxml2/xinclude.c:222,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:223,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:229,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 3
    argNames:
    - ctxt
    - cur
    - name
    argTypes:
    - xmlXIncludeCtxtPtr
    - xmlNodePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 231
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 231
    functionName: xmlXIncludeGetProp
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlXIncludeErrMemory
    - xmlNodeGetAttrValue
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlXIncludeGetProp(xmlXIncludeCtxtPtr ctxt, xmlNodePtr
      cur, const xmlChar *name) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xinclude.c:287,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:288,1
    - Dst: xmlXIncludeFreeRef
      Src: /src/libxml2/xinclude.c:294,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:290,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:297,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:300,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:301,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:303,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/xinclude.c:307,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:309,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXIncludeCtxt*
    constantsTouched: []
    func_position:
      end: 310
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 310
    functionName: xmlXIncludeFreeContext
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlXIncludeFreeRef
    - xmlFreeDoc
    - xmlXPathFreeContext
    linkageType: ''
    returnType: void
    signature: 'void xmlXIncludeFreeContext(xmlXIncludeCtxt *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXIncludeDoProcess
      Src: /src/libxml2/xinclude.c:1964,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ctxt
    - tree
    argTypes:
    - xmlXIncludeCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1965
      start: 1957
    functionDepth: 0
    functionLinenumber: 1957
    functionLinenumberEnd: 1965
    functionName: xmlXIncludeDoProcessRoot
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlXIncludeDoProcess
    linkageType: ''
    returnType: int
    signature: 'static int xmlXIncludeDoProcessRoot(xmlXIncludeCtxtPtr ctxt, xmlNodePtr
      tree) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/xinclude.c:2095,1
    - Dst: xmlXIncludeProcessTreeFlagsData
      Src: /src/libxml2/xinclude.c:2098,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - doc
    - flags
    - data
    argTypes:
    - xmlDoc*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 2099
      start: 2089
    functionDepth: 0
    functionLinenumber: 2089
    functionLinenumberEnd: 2099
    functionName: xmlXIncludeProcessFlagsData
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlXIncludeProcessTreeFlagsData
    linkageType: ''
    returnType: int
    signature: 'int xmlXIncludeProcessFlagsData(xmlDoc *doc, int flags, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXIncludeProcessTreeFlags
      Src: /src/libxml2/xinclude.c:2163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - tree
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2164
      start: 2161
    functionDepth: 0
    functionLinenumber: 2161
    functionLinenumberEnd: 2164
    functionName: xmlXIncludeProcessTree
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlXIncludeProcessTreeFlags
    linkageType: ''
    returnType: int
    signature: 'int xmlXIncludeProcessTree(xmlNode *tree) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXIncludeNewContext
      Src: /src/libxml2/xinclude.c:2066,1
    - Dst: xmlXIncludeFreeContext
      Src: /src/libxml2/xinclude.c:2075,1
    - Dst: xmlXIncludeDoProcessRoot
      Src: /src/libxml2/xinclude.c:2071,1
    - Dst: xmlXIncludeSetFlags
      Src: /src/libxml2/xinclude.c:2070,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - tree
    - flags
    - data
    argTypes:
    - xmlNode*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 2077
      start: 2057
    functionDepth: 0
    functionLinenumber: 2057
    functionLinenumberEnd: 2077
    functionName: xmlXIncludeProcessTreeFlagsData
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlXIncludeDoProcessRoot
    - xmlXIncludeNewContext
    - xmlXIncludeSetFlags
    - xmlXIncludeFreeContext
    linkageType: ''
    returnType: int
    signature: 'int xmlXIncludeProcessTreeFlagsData(xmlNode *tree, int flags, void
      *data) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXIncludeNewContext
      Src: /src/libxml2/xinclude.c:2142,1
    - Dst: xmlXIncludeSetFlags
      Src: /src/libxml2/xinclude.c:2145,1
    - Dst: xmlXIncludeFreeContext
      Src: /src/libxml2/xinclude.c:2150,1
    - Dst: xmlXIncludeDoProcessRoot
      Src: /src/libxml2/xinclude.c:2146,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - tree
    - flags
    argTypes:
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 2152
      start: 2134
    functionDepth: 0
    functionLinenumber: 2134
    functionLinenumberEnd: 2152
    functionName: xmlXIncludeProcessTreeFlags
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlXIncludeDoProcessRoot
    - xmlXIncludeNewContext
    - xmlXIncludeSetFlags
    - xmlXIncludeFreeContext
    linkageType: ''
    returnType: int
    signature: 'int xmlXIncludeProcessTreeFlags(xmlNode *tree, int flags) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/xinclude.c:845,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:862,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/xinclude.c:876,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:848,1
    - Dst: xmlXIncludeCopyNode
      Src: /src/libxml2/xinclude.c:874,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 33
    argCount: 3
    argNames:
    - ctxt
    - obj
    - targetBase
    argTypes:
    - xmlXIncludeCtxtPtr
    - xmlXPathObjectPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 895
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 895
    functionName: xmlXIncludeCopyXPointer
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlFreeNodeList
    - xmlXIncludeCopyNode
    - xmlXIncludeErr
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlXIncludeCopyXPointer(xmlXIncludeCtxtPtr ctxt,
      xmlXPathObjectPtr obj, const xmlChar *targetBase) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xinclude.c:262,1
    - Dst: memset
      Src: /src/libxml2/xinclude.c:265,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 272
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 272
    functionName: xmlXIncludeNewContext
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlXIncludeCtxt*
    signature: 'xmlXIncludeCtxt *xmlXIncludeNewContext(xmlDoc *doc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlXIncludeDoProcess
      Src: /src/libxml2/xinclude.c:615,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:620,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/xinclude.c:615,1
    - Dst: xmlXIncludeFreeRef
      Src: /src/libxml2/xinclude.c:619,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - ctxt
    - doc
    argTypes:
    - xmlXIncludeCtxtPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 628
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 628
    functionName: xmlXIncludeRecurseDoc
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlFree
    - xmlXIncludeFreeRef
    - xmlXIncludeDoProcess
    linkageType: ''
    returnType: void
    signature: 'static void xmlXIncludeRecurseDoc(xmlXIncludeCtxtPtr ctxt, xmlDocPtr
      doc) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1365,1
    - Dst: xmlOpenCharEncodingHandler
      Src: /src/libxml2/xinclude.c:1379,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1386,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1390,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1435,1
    - Dst: xmlBufContent
      Src: /src/libxml2/xinclude.c:1453,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1462,1
    - Dst: xmlNodeAddContentLen
      Src: /src/libxml2/xinclude.c:1470,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1480,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xinclude.c:1483,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1353,1
    - Dst: xmlNewDocText
      Src: /src/libxml2/xinclude.c:1363,1
    - Dst: xmlXIncludeGetProp
      Src: /src/libxml2/xinclude.c:1374,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1384,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1402,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/xinclude.c:1406,1
    - Dst: xmlCtxtSetResourceLoader
      Src: /src/libxml2/xinclude.c:1408,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/xinclude.c:1429,1
    - Dst: xmlNewDocText
      Src: /src/libxml2/xinclude.c:1433,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1447,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1499,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1494,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1362,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1449,1
    - Dst: xmlGetUTF8Char
      Src: /src/libxml2/xinclude.c:1460,1
    - Dst: IS_CHAR
      Src: /src/libxml2/xinclude.c:1461,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1471,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xinclude.c:1477,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:1500,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/xinclude.c:1514,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:1518,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/xinclude.c:1515,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xinclude.c:1491,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/xinclude.c:1516,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/xinclude.c:1400,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1418,1
    - Dst: xmlLoadResource
      Src: /src/libxml2/xinclude.c:1411,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1422,1
    - Dst: xmlParserInputBufferRead
      Src: /src/libxml2/xinclude.c:1443,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1485,1
    - Dst: xmlBufUse
      Src: /src/libxml2/xinclude.c:1454,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/xinclude.c:1517,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xinclude.c:1497,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 128
    argCount: 2
    argNames:
    - ctxt
    - ref
    argTypes:
    - xmlXIncludeCtxtPtr
    - xmlXIncludeRefPtr
    constantsTouched: []
    func_position:
      end: 1520
      start: 1333
    functionDepth: 0
    functionLinenumber: 1333
    functionLinenumberEnd: 1520
    functionName: xmlXIncludeLoadTxt
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - IS_CHAR
    - xmlGrowCapacity
    - xmlXIncludeGetProp
    - xmlXIncludeErr
    - xmlNodeAddContentLen
    - xmlRealloc
    - xmlCtxtSetErrorHandler
    - xmlStrdup
    - xmlFreeParserCtxt
    - xmlGetUTF8Char
    - xmlNewParserCtxt
    - xmlParserInputBufferRead
    - xmlFree
    - xmlLoadResource
    - xmlOpenCharEncodingHandler
    - xmlCtxtSetResourceLoader
    - xmlCharEncCloseFunc
    - xmlBufUse
    - xmlBufContent
    - xmlXIncludeErrMemory
    - xmlFreeInputStream
    - xmlFreeNode
    - xmlNewDocText
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xmlXIncludeLoadTxt(xmlXIncludeCtxtPtr ctxt, xmlXIncludeRefPtr
      ref) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1578,1
    - Dst: xmlXIncludeAddNode
      Src: /src/libxml2/xinclude.c:1620,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1612,1
    - Dst: xmlXIncludeLoadNode
      Src: /src/libxml2/xinclude.c:1625,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlXIncludeCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1630
      start: 1570
    functionDepth: 0
    functionLinenumber: 1570
    functionLinenumberEnd: 1630
    functionName: xmlXIncludeExpandNode
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlXIncludeLoadNode
    - xmlXIncludeAddNode
    - xmlXIncludeErr
    linkageType: ''
    returnType: xmlXIncludeRefPtr
    signature: 'static xmlXIncludeRefPtr xmlXIncludeExpandNode(xmlXIncludeCtxtPtr
      ctxt, xmlNodePtr node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:242,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:246,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:244,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ref
    argTypes:
    - xmlXIncludeRefPtr
    constantsTouched: []
    func_position:
      end: 248
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 248
    functionName: xmlXIncludeFreeRef
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlXIncludeFreeRef(xmlXIncludeRefPtr ref) '
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xinclude.c:427,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:422,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:469,1
    - Dst: xmlSaveUri
      Src: /src/libxml2/xinclude.c:479,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:552,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:585,1
    - Dst: xmlXIncludeGetProp
      Src: /src/libxml2/xinclude.c:417,1
    - Dst: xmlXIncludeGetProp
      Src: /src/libxml2/xinclude.c:438,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:442,1
    - Dst: xmlParseURISafe
      Src: /src/libxml2/xinclude.c:454,1
    - Dst: xmlBuildURISafe
      Src: /src/libxml2/xinclude.c:497,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:506,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:520,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xinclude.c:526,1
    - Dst: memset
      Src: /src/libxml2/xinclude.c:531,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xinclude.c:550,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:586,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:565,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:587,1
    - Dst: xmlStrlen
      Src: /src/libxml2/xinclude.c:432,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:445,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:484,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:459,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:492,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:498,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:509,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:528,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:570,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/xinclude.c:583,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xinclude.c:568,1
    - Dst: xmlFree
      Src: /src/libxml2/xinclude.c:584,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:429,1
    - Dst: xmlXIncludeGetProp
      Src: /src/libxml2/xinclude.c:419,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:433,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:440,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:457,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:481,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:472,1
    - Dst: xmlNodeGetBaseSafe
      Src: /src/libxml2/xinclude.c:491,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:502,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xinclude.c:562,1
    - Dst: xmlXIncludeFreeRef
      Src: /src/libxml2/xinclude.c:582,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 139
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlXIncludeCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 589
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 589
    functionName: xmlXIncludeAddNode
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeURI
    - xmlGrowCapacity
    - memset
    - xmlXIncludeErrMemory
    - xmlRealloc
    - xmlStrlen
    - xmlStrdup
    - xmlNodeGetBaseSafe
    - xmlSaveUri
    - xmlStrEqual
    - xmlXIncludeGetProp
    - xmlParseURISafe
    - xmlBuildURISafe
    - xmlMalloc
    - xmlXIncludeFreeRef
    - xmlXIncludeErr
    linkageType: ''
    returnType: xmlXIncludeRefPtr
    signature: 'static xmlXIncludeRefPtr xmlXIncludeAddNode(xmlXIncludeCtxtPtr ctxt,
      xmlNodePtr cur) '
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: xmlRealloc
      Src: /src/libxml2/xinclude.c:1131,1
    - Dst: xmlXIncludeRecurseDoc
      Src: /src/libxml2/xinclude.c:1181,1
    - Dst: xmlDocCopyNode
      Src: /src/libxml2/xinclude.c:1197,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1199,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1216,1
    - Dst: xmlXPathSetErrorHandler
      Src: /src/libxml2/xinclude.c:1229,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1256,1
    - Dst: xmlXIncludeCopyXPointer
      Src: /src/libxml2/xinclude.c:1312,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xinclude.c:1314,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1086,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xinclude.c:1124,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1088,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xinclude.c:1128,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xinclude.c:1134,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1159,1
    - Dst: xmlXIncludeMergeEntities
      Src: /src/libxml2/xinclude.c:1165,1
    - Dst: xmlXIncludeBaseFixup
      Src: /src/libxml2/xinclude.c:1204,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1077,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xinclude.c:1142,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1144,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xinclude.c:1145,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1192,1
    - Dst: xmlXPathNewContext
      Src: /src/libxml2/xinclude.c:1223,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1225,1
    - Dst: xmlXPtrEval
      Src: /src/libxml2/xinclude.c:1237,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1240,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1283,1
    - Dst: xmlXIncludeParseFile
      Src: /src/libxml2/xinclude.c:1114,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1127,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1133,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/xinclude.c:1190,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1242,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/xinclude.c:1259,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1289,1
    - Dst: xmlXIncludeErr
      Src: /src/libxml2/xinclude.c:1304,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 121
    argCount: 2
    argNames:
    - ctxt
    - ref
    argTypes:
    - xmlXIncludeCtxtPtr
    - xmlXIncludeRefPtr
    constantsTouched: []
    func_position:
      end: 1324
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1324
    functionName: xmlXIncludeLoadDoc
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlXIncludeRecurseDoc
    - xmlXIncludeCopyXPointer
    - xmlXPathNewContext
    - xmlXIncludeParseFile
    - xmlGrowCapacity
    - xmlRealloc
    - xmlXIncludeErrMemory
    - xmlXPtrEval
    - xmlXPathSetErrorHandler
    - xmlXIncludeMergeEntities
    - xmlStrdup
    - xmlXIncludeBaseFixup
    - xmlXPathFreeObject
    - xmlStrEqual
    - xmlFreeDoc
    - xmlDocCopyNode
    - xmlXIncludeErr
    linkageType: ''
    returnType: int
    signature: 'static int xmlXIncludeLoadDoc(xmlXIncludeCtxtPtr ctxt, xmlXIncludeRefPtr
      ref) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXIncludeCopyNode
      Src: /src/libxml2/xinclude.c:1546,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - ctxt
    - fallback
    - ref
    argTypes:
    - xmlXIncludeCtxtPtr
    - xmlNodePtr
    - xmlXIncludeRefPtr
    constantsTouched: []
    func_position:
      end: 1554
      start: 1531
    functionDepth: 0
    functionLinenumber: 1531
    functionLinenumberEnd: 1554
    functionName: xmlXIncludeLoadFallback
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlXIncludeCopyNode
    linkageType: ''
    returnType: int
    signature: 'static int xmlXIncludeLoadFallback(xmlXIncludeCtxtPtr ctxt, xmlNodePtr
      fallback, xmlXIncludeRefPtr ref) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlXIncludeDoProcessRoot
      Src: /src/libxml2/xinclude.c:2182,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlXIncludeCtxt*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2186
      start: 2175
    functionDepth: 0
    functionLinenumber: 2175
    functionLinenumberEnd: 2186
    functionName: xmlXIncludeProcessNode
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlXIncludeDoProcessRoot
    linkageType: ''
    returnType: int
    signature: 'int xmlXIncludeProcessNode(xmlXIncludeCtxt *ctxt, xmlNode *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames:
    - 4,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 169
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlXIncludeErrMemory
    linkageType: ''
    returnType: void
    signature: 'static void LIBXML_ATTR_FORMAT(4,0) xmlXIncludeErr(xmlXIncludeCtxtPtr
      ctxt, xmlNodePtr node, int error, const char *msg, const xmlChar *extra){ xmlStructuredErrorFunc
      schannel = NULL; xmlGenericErrorFunc channel = NULL; void *data = NULL; int
      res; if (error == XML_ERR_NO_MEMORY) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/xinclude.c:1013,1
    - Dst: xmlXIncludeErrMemory
      Src: /src/libxml2/xinclude.c:1018,1
    - Dst: xmlHashScan
      Src: /src/libxml2/xinclude.c:1030,1
    - Dst: xmlCreateIntSubset
      Src: /src/libxml2/xinclude.c:1016,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1043,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xinclude.c:1044,1
    - Dst: xmlHashScan
      Src: /src/libxml2/xinclude.c:1045,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - ctxt
    - doc
    - from
    argTypes:
    - xmlXIncludeCtxtPtr
    - xmlDocPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 1050
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1050
    functionName: xmlXIncludeMergeEntities
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlXIncludeErrMemory
    - xmlHashScan
    - xmlStrEqual
    - xmlCreateIntSubset
    linkageType: ''
    returnType: int
    signature: "static int xmlXIncludeMergeEntities(xmlXIncludeCtxtPtr ctxt, xmlDocPtr
      doc,\t xmlDocPtr from) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlXIncludeTestNode
      Src: /src/libxml2/xinclude.c:1890,1
    - Dst: xmlXIncludeFreeRef
      Src: /src/libxml2/xinclude.c:1941,1
    - Dst: xmlXIncludeExpandNode
      Src: /src/libxml2/xinclude.c:1891,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/xinclude.c:1927,1
    - Dst: xmlXIncludeIncludeNode
      Src: /src/libxml2/xinclude.c:1919,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - ctxt
    - tree
    argTypes:
    - xmlXIncludeCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1947
      start: 1876
    functionDepth: 0
    functionLinenumber: 1876
    functionLinenumberEnd: 1947
    functionName: xmlXIncludeDoProcess
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlXIncludeTestNode
    - xmlXIncludeIncludeNode
    - xmlXIncludeExpandNode
    - xmlXIncludeFreeRef
    - xmlFreeNodeList
    linkageType: ''
    returnType: int
    signature: 'static int xmlXIncludeDoProcess(xmlXIncludeCtxtPtr ctxt, xmlNodePtr
      tree) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - ctxt
    - loader
    - data
    argTypes:
    - xmlXIncludeCtxt*
    - xmlResourceLoader
    - void*
    constantsTouched: []
    func_position:
      end: 2014
      start: 2007
    functionDepth: 0
    functionLinenumber: 2007
    functionLinenumberEnd: 2014
    functionName: xmlXIncludeSetResourceLoader
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlXIncludeSetResourceLoader(xmlXIncludeCtxt *ctxt, xmlResourceLoader
      loader, void *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXIncludeProcessFlags
      Src: /src/libxml2/xinclude.c:2123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 2124
      start: 2121
    functionDepth: 0
    functionLinenumber: 2121
    functionLinenumberEnd: 2124
    functionName: xmlXIncludeProcess
    functionSourceFile: /src/libxml2/xinclude.c
    functionUses: []
    functionsReached:
    - xmlXIncludeProcessFlags
    linkageType: ''
    returnType: int
    signature: 'int xmlXIncludeProcess(xmlDoc *doc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 356
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 356
    functionName: vstateVPop
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int vstateVPop(xmlValidCtxtPtr ctxt) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictOwns
      Src: /src/libxml2/valid.c:891,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:896,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:892,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/valid.c:893,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:894,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:897,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:901,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:908,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 2
    argNames:
    - doc
    - cur
    argTypes:
    - xmlDoc*
    - xmlElementContent*
    constantsTouched: []
    func_position:
      end: 917
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 917
    functionName: xmlFreeDocElementContent
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictOwns
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeDocElementContent(xmlDoc *doc, xmlElementContent *cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/valid.c:929,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlElementContent*
    constantsTouched: []
    func_position:
      end: 930
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 930
    functionName: xmlFreeElementContent
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFreeDocElementContent
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeElementContent(xmlElementContent *cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateAttributeValueInternal
      Src: /src/libxml2/valid.c:3335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - type
    - value
    argTypes:
    - xmlAttributeType
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3336
      start: 3333
    functionDepth: 0
    functionLinenumber: 3333
    functionLinenumberEnd: 3336
    functionName: xmlValidateAttributeValue
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlValidateAttributeValueInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateAttributeValue(xmlAttributeType type, const xmlChar
      *value) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlBuildQName
      Src: /src/libxml2/valid.c:3590,1
    - Dst: xmlGetDtdAttrDesc
      Src: /src/libxml2/valid.c:3596,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:3594,1
    - Dst: xmlGetDtdAttrDesc
      Src: /src/libxml2/valid.c:3598,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:3605,1
    - Dst: xmlValidNormalizeString
      Src: /src/libxml2/valid.c:3608,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 29
    argCount: 4
    argNames:
    - doc
    - elem
    - name
    - value
    argTypes:
    - xmlDoc*
    - xmlNode*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3610
      start: 3575
    functionDepth: 0
    functionLinenumber: 3575
    functionLinenumberEnd: 3610
    functionName: xmlValidNormalizeAttributeValue
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrdup
    - xmlValidNormalizeString
    - xmlGetDtdAttrDesc
    - xmlBuildQName
    linkageType: ''
    returnType: xmlChar*
    signature: "xmlChar *xmlValidNormalizeAttributeValue(xmlDoc *doc, xmlNode *elem,\t\t\t
      const xmlChar *name, const xmlChar *value) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 3
    argNames:
    - payload
    - data
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3618
      start: 3612
    functionDepth: 0
    functionLinenumber: 3612
    functionLinenumberEnd: 3618
    functionName: xmlValidateAttributeIdCallback
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static void xmlValidateAttributeIdCallback(void *payload, void *data,\t
      const xmlChar *name ATTRIBUTE_UNUSED) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCopyDocElementContent
      Src: /src/libxml2/valid.c:861,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlElementContent*
    constantsTouched: []
    func_position:
      end: 862
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 862
    functionName: xmlCopyElementContent
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlCopyDocElementContent
    linkageType: ''
    returnType: xmlElementContent*
    signature: 'xmlElementContent *xmlCopyElementContent(xmlElementContent *cur) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateNamesValueInternal
      Src: /src/libxml2/valid.c:3292,1
    - Dst: xmlValidateNmtokensValueInternal
      Src: /src/libxml2/valid.c:3300,1
    - Dst: xmlValidateNameValueInternal
      Src: /src/libxml2/valid.c:3297,1
    - Dst: xmlValidateNmtokenValueInternal
      Src: /src/libxml2/valid.c:3302,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 10
    argCount: 3
    argNames:
    - doc
    - type
    - value
    argTypes:
    - xmlDocPtr
    - xmlAttributeType
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3307
      start: 3281
    functionDepth: 0
    functionLinenumber: 3281
    functionLinenumberEnd: 3307
    functionName: xmlValidateAttributeValueInternal
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlValidateNamesValueInternal
    - xmlValidateNmtokenValueInternal
    - xmlValidateNameValueInternal
    - xmlValidateNmtokensValueInternal
    linkageType: ''
    returnType: int
    signature: 'static int xmlValidateAttributeValueInternal(xmlDocPtr doc, xmlAttributeType
      type, const xmlChar *value) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlErrValid
      Src: /src/libxml2/valid.c:6252,1
    - Dst: xmlErrValid
      Src: /src/libxml2/valid.c:6269,1
    - Dst: xmlBuildURISafe
      Src: /src/libxml2/valid.c:6264,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:6266,1
    - Dst: xmlLoadResource
      Src: /src/libxml2/valid.c:6279,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:6283,1
    - Dst: xmlCtxtParseDtd
      Src: /src/libxml2/valid.c:6287,1
    - Dst: xmlParseDTD
      Src: /src/libxml2/valid.c:6291,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:6295,1
    - Dst: xmlErrValid
      Src: /src/libxml2/valid.c:6298,1
    - Dst: xmlValidateDtdFinal
      Src: /src/libxml2/valid.c:6318,1
    - Dst: xmlErrValid
      Src: /src/libxml2/valid.c:6302,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/valid.c:6321,1
    - Dst: xmlValidateRoot
      Src: /src/libxml2/valid.c:6319,1
    - Dst: xmlFreeIDTable
      Src: /src/libxml2/valid.c:6311,1
    - Dst: xmlFreeRefTable
      Src: /src/libxml2/valid.c:6315,1
    - Dst: xmlValidateDocumentFinal
      Src: /src/libxml2/valid.c:6323,1
    - Dst: xmlValidateElement
      Src: /src/libxml2/valid.c:6322,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 3
    argNames:
    - ctxt
    - vctxt
    - doc
    argTypes:
    - xmlParserCtxtPtr
    - xmlValidCtxtPtr
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 6325
      start: 6243
    functionDepth: 0
    functionLinenumber: 6243
    functionLinenumberEnd: 6325
    functionName: xmlValidateDocumentInternal
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeIDTable
    - xmlValidateRoot
    - xmlDocGetRootElement
    - xmlValidateDtdFinal
    - xmlErrValid
    - xmlLoadResource
    - xmlCtxtParseDtd
    - xmlParseDTD
    - xmlValidateElement
    - xmlBuildURISafe
    - xmlFreeRefTable
    - xmlVErrMemory
    - xmlValidateDocumentFinal
    linkageType: ''
    returnType: int
    signature: 'static int xmlValidateDocumentInternal(xmlParserCtxtPtr ctxt, xmlValidCtxtPtr
      vctxt, xmlDocPtr doc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/valid.c:367,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:375,1
    - Dst: xmlRealloc
      Src: /src/libxml2/valid.c:373,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ctxt
    - value
    argTypes:
    - xmlValidCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 384
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 384
    functionName: nodeVPush
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlVErrMemory
    linkageType: ''
    returnType: int
    signature: 'static int nodeVPush(xmlValidCtxtPtr ctxt, xmlNodePtr value) '
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashRemoveEntry2
      Src: /src/libxml2/valid.c:1152,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/valid.c:1148,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/valid.c:1162,1
    - Dst: xmlMalloc
      Src: /src/libxml2/valid.c:1185,1
    - Dst: xmlFreeElement
      Src: /src/libxml2/valid.c:1208,1
    - Dst: xmlCopyDocElementContent
      Src: /src/libxml2/valid.c:1232,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1251,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1257,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:1255,1
    - Dst: xmlHashCreateDict
      Src: /src/libxml2/valid.c:1137,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1175,1
    - Dst: xmlFreeElement
      Src: /src/libxml2/valid.c:1154,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:1170,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1179,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1196,1
    - Dst: memset
      Src: /src/libxml2/valid.c:1188,1
    - Dst: xmlSplitQName4
      Src: /src/libxml2/valid.c:1124,1
    - Dst: xmlHashAdd2
      Src: /src/libxml2/valid.c:1206,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:1194,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 97
    argCount: 5
    argNames:
    - ctxt
    - dtd
    - name
    - type
    - content
    argTypes:
    - xmlValidCtxt*
    - xmlDtd*
    - xmlChar*
    - xmlElementTypeVal
    - xmlElementContent*
    constantsTouched: []
    func_position:
      end: 1259
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1259
    functionName: xmlAddElementDecl
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFreeElement
    - xmlFree
    - xmlCopyDocElementContent
    - xmlHashLookup2
    - xmlHashRemoveEntry2
    - memset
    - xmlErrValidNode
    - xmlStrdup
    - xmlHashAdd2
    - xmlMalloc
    - xmlSplitQName4
    - xmlHashCreateDict
    - xmlVErrMemory
    linkageType: ''
    returnType: xmlElement*
    signature: "xmlElement *xmlAddElementDecl(xmlValidCtxt *ctxt, xmlDtd *dtd, const
      xmlChar *name, xmlElementTypeVal type,\t\t xmlElementContent *content) "
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreateDict
      Src: /src/libxml2/valid.c:1950,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:1967,1
    - Dst: xmlMalloc
      Src: /src/libxml2/valid.c:1955,1
    - Dst: memset
      Src: /src/libxml2/valid.c:1958,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:1963,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:1972,1
    - Dst: xmlHashAdd
      Src: /src/libxml2/valid.c:1981,1
    - Dst: xmlErrValid
      Src: /src/libxml2/valid.c:1987,1
    - Dst: xmlFreeNotation
      Src: /src/libxml2/valid.c:1991,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:1997,1
    - Dst: xmlFreeNotation
      Src: /src/libxml2/valid.c:1998,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 47
    argCount: 5
    argNames:
    - ctxt
    - dtd
    - name
    - publicId
    - systemId
    argTypes:
    - xmlValidCtxt*
    - xmlDtd*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2000
      start: 1924
    functionDepth: 0
    functionLinenumber: 1924
    functionLinenumberEnd: 2000
    functionName: xmlAddNotationDecl
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlHashAdd
    - xmlErrValid
    - memset
    - xmlStrdup
    - xmlFreeNotation
    - xmlMalloc
    - xmlVErrMemory
    - xmlHashCreateDict
    linkageType: ''
    returnType: xmlNotation*
    signature: 'xmlNotation *xmlAddNotationDecl(xmlValidCtxt *ctxt, xmlDtd *dtd, const
      xmlChar *name, const xmlChar *publicId, const xmlChar *systemId) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/valid.c:2677,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/valid.c:2680,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 3
    argNames:
    - doc
    - elem
    - attr
    argTypes:
    - xmlDoc*
    - xmlNode*
    - xmlAttr*
    constantsTouched: []
    func_position:
      end: 2689
      start: 2657
    functionDepth: 0
    functionLinenumber: 2657
    functionLinenumberEnd: 2689
    functionName: xmlIsRef
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlGetDtdQAttrDesc
    linkageType: ''
    returnType: int
    signature: 'int xmlIsRef(xmlDoc *doc, xmlNode *elem, xmlAttr *attr) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashScan
      Src: /src/libxml2/valid.c:6217,1
    - Dst: xmlHashScan
      Src: /src/libxml2/valid.c:6230,1
    - Dst: xmlHashScan
      Src: /src/libxml2/valid.c:6221,1
    - Dst: xmlHashScan
      Src: /src/libxml2/valid.c:6226,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 2
    argNames:
    - ctxt
    - doc
    argTypes:
    - xmlValidCtxt*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 6233
      start: 6203
    functionDepth: 0
    functionLinenumber: 6203
    functionLinenumberEnd: 6233
    functionName: xmlValidateDtdFinal
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlHashScan
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateDtdFinal(xmlValidCtxt *ctxt, xmlDoc *doc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 400
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 400
    functionName: nodeVPop
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr nodeVPop(xmlValidCtxtPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeElement
      Src: /src/libxml2/valid.c:1263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - elem
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1264
      start: 1261
    functionDepth: 0
    functionLinenumber: 1261
    functionLinenumberEnd: 1264
    functionName: xmlFreeElementTableEntry
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFreeElement
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeElementTableEntry(void *elem, const xmlChar *name
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeNotation
      Src: /src/libxml2/valid.c:2004,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - nota
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2005
      start: 2002
    functionDepth: 0
    functionLinenumber: 2002
    functionLinenumberEnd: 2005
    functionName: xmlFreeNotationTableEntry
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFreeNotation
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeNotationTableEntry(void *nota, const xmlChar *name
      ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveToBuffer
      Src: /src/libxml2/valid.c:1386,1
    - Dst: xmlSaveFinish
      Src: /src/libxml2/valid.c:1388,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1389,1
    - Dst: xmlBufferDetach
      Src: /src/libxml2/valid.c:1389,1
    - Dst: xmlHashScan
      Src: /src/libxml2/valid.c:1387,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - table
    argTypes:
    - xmlBuffer*
    - xmlElementTable*
    constantsTouched: []
    func_position:
      end: 1390
      start: 1379
    functionDepth: 0
    functionLinenumber: 1379
    functionLinenumberEnd: 1390
    functionName: xmlDumpElementTable
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlBufferDetach
    - xmlSaveFinish
    - xmlHashScan
    - xmlSaveToBuffer
    linkageType: ''
    returnType: void
    signature: 'void xmlDumpElementTable(xmlBuffer *buf, xmlElementTable *table) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveTree
      Src: /src/libxml2/valid.c:1863,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - attr
    - save
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1864
      start: 1860
    functionDepth: 0
    functionLinenumber: 1860
    functionLinenumberEnd: 1864
    functionName: xmlDumpAttributeDeclScan
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlSaveTree
    linkageType: ''
    returnType: void
    signature: 'static void xmlDumpAttributeDeclScan(void *attr, void *save, const
      xmlChar *name ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashFree
      Src: /src/libxml2/valid.c:2310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - table
    argTypes:
    - xmlIDTable*
    constantsTouched: []
    func_position:
      end: 2311
      start: 2308
    functionDepth: 0
    functionLinenumber: 2308
    functionLinenumberEnd: 2311
    functionName: xmlFreeIDTable
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeIDTable(xmlIDTable *table) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashFree
      Src: /src/libxml2/valid.c:2641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - table
    argTypes:
    - xmlRefTable*
    constantsTouched: []
    func_position:
      end: 2642
      start: 2639
    functionDepth: 0
    functionLinenumber: 2639
    functionLinenumberEnd: 2642
    functionName: xmlFreeRefTable
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeRefTable(xmlRefTable *table) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5327,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5342,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/valid.c:5341,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 23
    argCount: 3
    argNames:
    - ctxt
    - data
    - len
    argTypes:
    - xmlValidCtxt*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 5363
      start: 5304
    functionDepth: 0
    functionLinenumber: 5304
    functionLinenumberEnd: 5363
    functionName: xmlValidatePushCData
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - IS_BLANK_CH
    - xmlErrValidNode
    linkageType: ''
    returnType: int
    signature: 'int xmlValidatePushCData(xmlValidCtxt *ctxt, const xmlChar *data,
      int len) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSplitQName4
      Src: /src/libxml2/valid.c:2933,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:2938,1
    - Dst: xmlHashLookup3
      Src: /src/libxml2/valid.c:2936,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 3
    argNames:
    - dtd
    - elem
    - name
    argTypes:
    - xmlDtd*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2940
      start: 2918
    functionDepth: 0
    functionLinenumber: 2918
    functionLinenumberEnd: 2940
    functionName: xmlGetDtdAttrDesc
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSplitQName4
    - xmlHashLookup3
    linkageType: ''
    returnType: xmlAttribute*
    signature: 'xmlAttribute *xmlGetDtdAttrDesc(xmlDtd *dtd, const xmlChar *elem,
      const xmlChar *name) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:5873,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:5875,1
    - Dst: xmlErrValidNodeNr
      Src: /src/libxml2/valid.c:5886,1
    - Dst: xmlGetID
      Src: /src/libxml2/valid.c:5884,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/valid.c:5881,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/valid.c:5894,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:5896,1
    - Dst: xmlGetID
      Src: /src/libxml2/valid.c:5898,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5900,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:5908,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/valid.c:5917,1
    - Dst: xmlGetID
      Src: /src/libxml2/valid.c:5920,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/valid.c:5930,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:5932,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5922,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:5910,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 69
    argCount: 3
    argNames:
    - ref
    - ctxt
    - name
    argTypes:
    - xmlRefPtr
    - xmlValidCtxtPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5934
      start: 5859
    functionDepth: 0
    functionLinenumber: 5859
    functionLinenumberEnd: 5934
    functionName: xmlValidateRef
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlErrValidNodeNr
    - xmlErrValidNode
    - xmlStrdup
    - xmlGetID
    - IS_BLANK_CH
    - xmlVErrMemory
    linkageType: ''
    returnType: void
    signature: "static void xmlValidateRef(xmlRefPtr ref, xmlValidCtxtPtr ctxt,\t
      const xmlChar *name) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveToBuffer
      Src: /src/libxml2/valid.c:1882,1
    - Dst: xmlBufferDetach
      Src: /src/libxml2/valid.c:1885,1
    - Dst: xmlSaveFinish
      Src: /src/libxml2/valid.c:1884,1
    - Dst: xmlHashScan
      Src: /src/libxml2/valid.c:1883,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1885,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - table
    argTypes:
    - xmlBuffer*
    - xmlAttributeTable*
    constantsTouched: []
    func_position:
      end: 1886
      start: 1875
    functionDepth: 0
    functionLinenumber: 1875
    functionLinenumberEnd: 1886
    functionName: xmlDumpAttributeTable
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlBufferDetach
    - xmlSaveFinish
    - xmlHashScan
    - xmlSaveToBuffer
    linkageType: ''
    returnType: void
    signature: 'void xmlDumpAttributeTable(xmlBuffer *buf, xmlAttributeTable *table) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup2
      Src: /src/libxml2/valid.c:2905,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 3
    argNames:
    - dtd
    - name
    - prefix
    argTypes:
    - xmlDtd*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2906
      start: 2896
    functionDepth: 0
    functionLinenumber: 2896
    functionLinenumberEnd: 2906
    functionName: xmlGetDtdQElementDesc
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlHashLookup2
    linkageType: ''
    returnType: xmlElement*
    signature: "xmlElement *xmlGetDtdQElementDesc(xmlDtd *dtd, const xmlChar *name,\t
      const xmlChar *prefix) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlErrValid
      Src: /src/libxml2/valid.c:135,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:212,1
    - Dst: xmlErrValidNodeNr
      Src: /src/libxml2/valid.c:154,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/valid.c:209,1
    - Dst: xmlRealloc
      Src: /src/libxml2/valid.c:215,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:217,1
    - Dst: xmlValidBuildContentModel
      Src: /src/libxml2/valid.c:228,1
    - Dst: xmlRegNewExecCtxt
      Src: /src/libxml2/valid.c:231,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:233,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:238,1
    - Dst: xmlErrValidWarning
      Src: /src/libxml2/valid.c:175,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 47
    argCount: 0
    argNames:
    - 4,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 245
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlErrValid
    - xmlGrowCapacity
    - xmlRealloc
    - xmlErrValidNodeNr
    - xmlErrValidNode
    - xmlValidBuildContentModel
    - xmlRegNewExecCtxt
    - xmlErrValidWarning
    - xmlVErrMemory
    linkageType: ''
    returnType: void
    signature: "static void LIBXML_ATTR_FORMAT(4,0) xmlErrValidNode(xmlValidCtxtPtr
      ctxt, xmlNodePtr node, xmlParserErrors error, const char *msg, const xmlChar
      * str1, const xmlChar * str2, const xmlChar * str3){ xmlDoErrValid(ctxt, node,
      error, XML_ERR_ERROR, str1, str2, str3, 0, msg, str1, str2, str3); }#ifdef LIBXML_VALID_ENABLED/**
      * Handle a validation error * * @param ctxt an XML validation parser context
      * @param error the error number * @param msg the error message * @param extra
      extra information */static void LIBXML_ATTR_FORMAT(3,0)xmlErrValid(xmlValidCtxtPtr
      ctxt, xmlParserErrors error, const char *msg, const char *extra){ xmlDoErrValid(ctxt,
      NULL, error, XML_ERR_ERROR, (const xmlChar *) extra, NULL, NULL, 0, msg, extra);
      } /** * Handle a validation error, provide contextual information * * @param
      ctxt an XML validation parser context * @param node the node raising the error
      * @param error the error number * @param msg the error message * @param str1
      extra information * @param int2 extra information * @param str3 extra information
      */ static void LIBXML_ATTR_FORMAT(4,0)xmlErrValidNodeNr(xmlValidCtxtPtr ctxt,
      xmlNodePtr node, xmlParserErrors error, const char *msg, const xmlChar * str1,
      int int2, const xmlChar * str3){ xmlDoErrValid(ctxt, node, error, XML_ERR_ERROR,
      str1, str3, NULL, int2, msg, str1, int2, str3); } /** * Handle a validation
      error, provide contextual information * * @param ctxt an XML validation parser
      context * @param node the node raising the error * @param error the error number
      * @param msg the error message * @param str1 extra information * @param str2
      extra information * @param str3 extra information */ static void LIBXML_ATTR_FORMAT(4,0)xmlErrValidWarning(xmlValidCtxtPtr
      ctxt, xmlNodePtr node, xmlParserErrors error, const char *msg, const xmlChar
      * str1, const xmlChar * str2, const xmlChar * str3){ xmlDoErrValid(ctxt, node,
      error, XML_ERR_WARNING, str1, str2, str3, 0, msg, str1, str2, str3); }#ifdef
      LIBXML_REGEXP_ENABLED/* * If regexp are enabled we can do continuous validation
      without the * need of a tree to validate the content model. this is done in
      each * callbacks. * Each xmlValidState represent the validation state associated
      to the * set of nodes currently open from the document root to the current element.
      */typedef struct _xmlValidState { xmlElementPtr\t elemDecl;\t/* pointer to the
      content model */ xmlNodePtr node;\t\t/* pointer to the current node */ xmlRegExecCtxtPtr
      exec;\t\t/* regexp runtime */} _xmlValidState; static intvstateVPush(xmlValidCtxtPtr
      ctxt, xmlElementPtr elemDecl, xmlNodePtr node) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/valid.c:703,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/valid.c:718,1
    - Dst: memset
      Src: /src/libxml2/valid.c:706,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:716,1
    - Dst: xmlSplitQName3
      Src: /src/libxml2/valid.c:713,1
    - Dst: xmlStrndup
      Src: /src/libxml2/valid.c:721,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:722,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/valid.c:724,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/valid.c:725,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/valid.c:736,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 3
    argNames:
    - doc
    - name
    - type
    argTypes:
    - xmlDoc*
    - xmlChar*
    - xmlElementContentType
    constantsTouched: []
    func_position:
      end: 738
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 738
    functionName: xmlNewDocElementContent
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - xmlSplitQName3
    - xmlStrndup
    - memset
    - xmlStrdup
    - xmlFreeDocElementContent
    - xmlMalloc
    linkageType: ''
    returnType: xmlElementContent*
    signature: 'xmlElementContent *xmlNewDocElementContent(xmlDoc *doc, const xmlChar
      *name, xmlElementContentType type) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/valid.c:1290,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:1297,1
    - Dst: memset
      Src: /src/libxml2/valid.c:1293,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:1302,1
    - Dst: xmlCopyElementContent
      Src: /src/libxml2/valid.c:1307,1
    - Dst: xmlFreeElement
      Src: /src/libxml2/valid.c:1316,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1318
      start: 1285
    functionDepth: 0
    functionLinenumber: 1285
    functionLinenumberEnd: 1318
    functionName: xmlCopyElement
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFreeElement
    - memset
    - xmlCopyElementContent
    - xmlStrdup
    - xmlMalloc
    linkageType: ''
    returnType: void*
    signature: 'static void *xmlCopyElement(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1903,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1908,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1907,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1905,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - nota
    argTypes:
    - xmlNotationPtr
    constantsTouched: []
    func_position:
      end: 1909
      start: 1899
    functionDepth: 0
    functionLinenumber: 1899
    functionLinenumberEnd: 1909
    functionName: xmlFreeNotation
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeNotation(xmlNotationPtr nota) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCopySafe
      Src: /src/libxml2/valid.c:2067,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - table
    argTypes:
    - xmlNotationTable*
    constantsTouched: []
    func_position:
      end: 2068
      start: 2065
    functionDepth: 0
    functionLinenumber: 2065
    functionLinenumberEnd: 2068
    functionName: xmlCopyNotationTable
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlHashCopySafe
    linkageType: ''
    returnType: xmlNotationTable*
    signature: 'xmlNotationTable *xmlCopyNotationTable(xmlNotationTable *table) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/valid.c:3212,1
    - Dst: xmlScanName
      Src: /src/libxml2/valid.c:3228,1
    - Dst: xmlScanName
      Src: /src/libxml2/valid.c:3216,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 2
    argNames:
    - value
    - flags
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 3234
      start: 3204
    functionDepth: 0
    functionLinenumber: 3204
    functionLinenumberEnd: 3234
    functionName: xmlValidateNmtokensValueInternal
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - IS_BLANK_CH
    - xmlScanName
    linkageType: ''
    returnType: int
    signature: 'static int xmlValidateNmtokensValueInternal(const xmlChar *value,
      int flags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashFree
      Src: /src/libxml2/valid.c:1275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - table
    argTypes:
    - xmlElementTable*
    constantsTouched: []
    func_position:
      end: 1276
      start: 1273
    functionDepth: 0
    functionLinenumber: 1273
    functionLinenumberEnd: 1276
    functionName: xmlFreeElementTable
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeElementTable(xmlElementTable *table) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateNmtokenValueInternal
      Src: /src/libxml2/valid.c:3191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3192
      start: 3189
    functionDepth: 0
    functionLinenumber: 3189
    functionLinenumberEnd: 3192
    functionName: xmlValidateNmtokenValue
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlValidateNmtokenValueInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateNmtokenValue(const xmlChar *value) '
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: strcat
      Src: /src/libxml2/valid.c:4627,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:4633,1
    - Dst: xmlStrlen
      Src: /src/libxml2/valid.c:4641,1
    - Dst: xmlStrlen
      Src: /src/libxml2/valid.c:4638,1
    - Dst: strlen
      Src: /src/libxml2/valid.c:4630,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:4644,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:4648,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:4649,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:4652,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:4654,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:4663,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:4665,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:4674,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:4691,1
    - Dst: xmlIsBlankNode
      Src: /src/libxml2/valid.c:4658,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:4676,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 55
    argCount: 4
    argNames:
    - buf
    - size
    - node
    - glob
    argTypes:
    - char*
    - int
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 4692
      start: 4621
    functionDepth: 0
    functionLinenumber: 4621
    functionLinenumberEnd: 4692
    functionName: xmlSnprintfElements
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - strlen
    - xmlStrlen
    - strcat
    - xmlIsBlankNode
    linkageType: ''
    returnType: void
    signature: 'static void xmlSnprintfElements(char *buf, int size, xmlNodePtr node,
      int glob) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetDtdNotationDesc
      Src: /src/libxml2/valid.c:3004,1
    - Dst: xmlGetDtdNotationDesc
      Src: /src/libxml2/valid.c:3006,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3009,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 3
    argNames:
    - ctxt
    - doc
    - notationName
    argTypes:
    - xmlValidCtxt*
    - xmlDoc*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3015
      start: 2997
    functionDepth: 0
    functionLinenumber: 2997
    functionLinenumberEnd: 3015
    functionName: xmlValidateNotationUse
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlGetDtdNotationDesc
    - xmlErrValidNode
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateNotationUse(xmlValidCtxt *ctxt, xmlDoc *doc, const
      xmlChar *notationName) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - char*
    - xmlElementContent*
    - int
    constantsTouched: []
    func_position:
      end: 946
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 946
    functionName: xmlSprintfElementContent
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void xmlSprintfElementContent(char *buf ATTRIBUTE_UNUSED,\t xmlElementContent
      *content ATTRIBUTE_UNUSED,\t\t\t int englob ATTRIBUTE_UNUSED) "
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlSplitQName3
      Src: /src/libxml2/valid.c:5082,1
    - Dst: xmlErrValid
      Src: /src/libxml2/valid.c:5098,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/valid.c:5109,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:5087,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:5093,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:5110,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/valid.c:5116,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:5117,1
    - Dst: xmlErrValid
      Src: /src/libxml2/valid.c:5122,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 60
    argCount: 3
    argNames:
    - ctxt
    - cont
    - qname
    argTypes:
    - xmlValidCtxtPtr
    - xmlElementContentPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5131
      start: 5077
    functionDepth: 0
    functionLinenumber: 5077
    functionLinenumberEnd: 5131
    functionName: xmlValidateCheckMixed
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlStrncmp
    - xmlStrEqual
    - xmlSplitQName3
    - xmlErrValid
    linkageType: ''
    returnType: int
    signature: "static int xmlValidateCheckMixed(xmlValidCtxtPtr ctxt,\t xmlElementContentPtr
      cont, const xmlChar *qname) "
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:438,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/valid.c:462,1
    - Dst: xmlAutomataNewTransition
      Src: /src/libxml2/valid.c:467,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/valid.c:471,1
    - Dst: xmlValidBuildAContentModel
      Src: /src/libxml2/valid.c:495,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/valid.c:503,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/valid.c:508,1
    - Dst: xmlValidBuildAContentModel
      Src: /src/libxml2/valid.c:546,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/valid.c:548,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/valid.c:557,1
    - Dst: xmlAutomataNewTransition
      Src: /src/libxml2/valid.c:456,1
    - Dst: xmlAutomataNewTransition
      Src: /src/libxml2/valid.c:473,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:478,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/valid.c:511,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/valid.c:527,1
    - Dst: xmlValidBuildAContentModel
      Src: /src/libxml2/valid.c:539,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/valid.c:561,1
    - Dst: xmlErrValid
      Src: /src/libxml2/valid.c:567,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:450,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/valid.c:491,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/valid.c:512,1
    - Dst: xmlAutomataNewState
      Src: /src/libxml2/valid.c:531,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:431,1
    - Dst: xmlBuildQName
      Src: /src/libxml2/valid.c:448,1
    - Dst: xmlAutomataNewTransition
      Src: /src/libxml2/valid.c:460,1
    - Dst: xmlAutomataNewTransition
      Src: /src/libxml2/valid.c:465,1
    - Dst: xmlValidBuildAContentModel
      Src: /src/libxml2/valid.c:500,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/valid.c:515,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/valid.c:541,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/valid.c:549,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/valid.c:554,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/valid.c:558,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 85
    argCount: 3
    argNames:
    - content
    - ctxt
    - name
    argTypes:
    - xmlElementContentPtr
    - xmlValidCtxtPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 573
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 573
    functionName: xmlValidBuildAContentModel
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlErrValid
    - xmlAutomataNewTransition
    - xmlAutomataNewState
    - xmlValidBuildAContentModel
    - xmlErrValidNode
    - xmlAutomataNewEpsilon
    - xmlBuildQName
    - xmlVErrMemory
    linkageType: ''
    returnType: int
    signature: "static int xmlValidBuildAContentModel(xmlElementContentPtr content,\t\t
      xmlValidCtxtPtr ctxt,\t\t const xmlChar *name) "
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/valid.c:1776,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:1794,1
    - Dst: memset
      Src: /src/libxml2/valid.c:1779,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:1789,1
    - Dst: xmlCopyEnumeration
      Src: /src/libxml2/valid.c:1784,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:1799,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:1804,1
    - Dst: xmlFreeAttribute
      Src: /src/libxml2/valid.c:1811,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 34
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1813
      start: 1771
    functionDepth: 0
    functionLinenumber: 1771
    functionLinenumberEnd: 1813
    functionName: xmlCopyAttribute
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFreeAttribute
    - memset
    - xmlStrdup
    - xmlCopyEnumeration
    - xmlMalloc
    linkageType: ''
    returnType: void*
    signature: 'static void *xmlCopyAttribute(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup
      Src: /src/libxml2/valid.c:2435,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - doc
    - ID
    argTypes:
    - xmlDoc*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2446
      start: 2418
    functionDepth: 0
    functionLinenumber: 2418
    functionLinenumberEnd: 2446
    functionName: xmlGetID
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlHashLookup
    linkageType: ''
    returnType: xmlAttr*
    signature: 'xmlAttr *xmlGetID(xmlDoc *doc, const xmlChar *ID) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreateDict
      Src: /src/libxml2/valid.c:2565,1
    - Dst: xmlMalloc
      Src: /src/libxml2/valid.c:2570,1
    - Dst: memset
      Src: /src/libxml2/valid.c:2573,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:2578,1
    - Dst: xmlIsStreaming
      Src: /src/libxml2/valid.c:2581,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:2585,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/valid.c:2593,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/valid.c:2602,1
    - Dst: xmlListCreate
      Src: /src/libxml2/valid.c:2606,1
    - Dst: xmlHashAdd
      Src: /src/libxml2/valid.c:2609,1
    - Dst: xmlListAppend
      Src: /src/libxml2/valid.c:2615,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:2625,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:2620,1
    - Dst: xmlListDelete
      Src: /src/libxml2/valid.c:2611,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:2623,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:2626,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 54
    argCount: 4
    argNames:
    - ctxt
    - doc
    - value
    - attr
    argTypes:
    - xmlValidCtxt*
    - xmlDoc*
    - xmlChar*
    - xmlAttr*
    constantsTouched: []
    func_position:
      end: 2629
      start: 2543
    functionDepth: 0
    functionLinenumber: 2543
    functionLinenumberEnd: 2629
    functionName: xmlAddRef
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlGetLineNo
    - xmlFree
    - xmlHashAdd
    - xmlListAppend
    - memset
    - xmlHashLookup
    - xmlListCreate
    - xmlListDelete
    - xmlStrdup
    - xmlIsStreaming
    - xmlMalloc
    - xmlVErrMemory
    - xmlHashCreateDict
    linkageType: ''
    returnType: xmlRef*
    signature: 'xmlRef *xmlAddRef(xmlValidCtxt *ctxt, xmlDoc *doc, const xmlChar *value,
      xmlAttr *attr) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup
      Src: /src/libxml2/valid.c:2774,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - doc
    - ID
    argTypes:
    - xmlDoc*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2775
      start: 2758
    functionDepth: 0
    functionLinenumber: 2758
    functionLinenumberEnd: 2775
    functionName: xmlGetRefs
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlHashLookup
    linkageType: ''
    returnType: xmlList*
    signature: 'xmlList *xmlGetRefs(xmlDoc *doc, const xmlChar *ID) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup
      Src: /src/libxml2/valid.c:2981,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 2
    argNames:
    - dtd
    - name
    argTypes:
    - xmlDtd*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2982
      start: 2973
    functionDepth: 0
    functionLinenumber: 2973
    functionLinenumberEnd: 2982
    functionName: xmlGetDtdNotationDesc
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlHashLookup
    linkageType: ''
    returnType: xmlNotation*
    signature: 'xmlNotation *xmlGetDtdNotationDesc(xmlDtd *dtd, const xmlChar *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateNameValueInternal
      Src: /src/libxml2/valid.c:3113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3114
      start: 3111
    functionDepth: 0
    functionLinenumber: 3111
    functionLinenumberEnd: 3114
    functionName: xmlValidateNameValue
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlValidateNameValueInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateNameValue(const xmlChar *value) '
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegNewExecCtxt
      Src: /src/libxml2/valid.c:4736,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:4776,1
    - Dst: xmlRegExecPushString
      Src: /src/libxml2/valid.c:4803,1
    - Dst: xmlValidateElementType
      Src: /src/libxml2/valid.c:4836,1
    - Dst: xmlSnprintfElementContent
      Src: /src/libxml2/valid.c:4840,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4841,1
    - Dst: nodeVPush
      Src: /src/libxml2/valid.c:4861,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/valid.c:4862,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:4882,1
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/valid.c:4883,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4954,1
    - Dst: xmlSnprintfElements
      Src: /src/libxml2/valid.c:4944,1
    - Dst: xmlRegexpIsDeterminist
      Src: /src/libxml2/valid.c:4730,1
    - Dst: nodeVPush
      Src: /src/libxml2/valid.c:4751,1
    - Dst: xmlBuildQName
      Src: /src/libxml2/valid.c:4773,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:4782,1
    - Dst: xmlRegFreeExecCtxt
      Src: /src/libxml2/valid.c:4807,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:4791,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:4805,1
    - Dst: xmlRegExecPushString
      Src: /src/libxml2/valid.c:4784,1
    - Dst: xmlSnprintfElementContent
      Src: /src/libxml2/valid.c:4940,1
    - Dst: xmlSnprintfElements
      Src: /src/libxml2/valid.c:4947,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:4993,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4950,1
    - Dst: xmlValidBuildContentModel
      Src: /src/libxml2/valid.c:4724,1
    - Dst: xmlIsBlankNode
      Src: /src/libxml2/valid.c:4760,1
    - Dst: nodeVPop
      Src: /src/libxml2/valid.c:4797,1
    - Dst: xmlMalloc
      Src: /src/libxml2/valid.c:4818,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:4820,1
    - Dst: xmlIsBlankNode
      Src: /src/libxml2/valid.c:4871,1
    - Dst: xmlMalloc
      Src: /src/libxml2/valid.c:4880,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:4903,1
    - Dst: nodeVPop
      Src: /src/libxml2/valid.c:4914,1
    - Dst: xmlValidateElementType
      Src: /src/libxml2/valid.c:4931,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:4986,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4960,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:4738,1
    - Dst: xmlRegExecPushString
      Src: /src/libxml2/valid.c:4780,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4964,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:4981,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 198
    argCount: 5
    argNames:
    - ctxt
    - child
    - elemDecl
    - warn
    - parent
    argTypes:
    - xmlValidCtxtPtr
    - xmlNodePtr
    - xmlElementPtr
    - int
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 4998
      start: 4705
    functionDepth: 0
    functionLinenumber: 4705
    functionLinenumberEnd: 4998
    functionName: xmlValidateElementContent
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - nodeVPush
    - xmlRegFreeExecCtxt
    - xmlFreeNodeList
    - xmlIsBlankNode
    - xmlValidateElementType
    - xmlErrValidNode
    - xmlValidBuildContentModel
    - xmlSnprintfElementContent
    - xmlRegNewExecCtxt
    - xmlRegExecPushString
    - xmlStrdup
    - xmlBuildQName
    - xmlRegexpIsDeterminist
    - xmlSnprintfElements
    - nodeVPop
    - xmlMalloc
    - xmlVErrMemory
    linkageType: ''
    returnType: int
    signature: 'static int xmlValidateElementContent(xmlValidCtxtPtr ctxt, xmlNodePtr
      child, xmlElementPtr elemDecl, int warn, xmlNodePtr parent) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtReset
      Src: /src/libxml2/valid.c:6103,1
    - Dst: xmlValidateDtd
      Src: /src/libxml2/valid.c:6105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 3
    argNames:
    - ctxt
    - doc
    - dtd
    argTypes:
    - xmlParserCtxt*
    - xmlDoc*
    - xmlDtd*
    constantsTouched: []
    func_position:
      end: 6106
      start: 6098
    functionDepth: 0
    functionLinenumber: 6098
    functionLinenumberEnd: 6106
    functionName: xmlCtxtValidateDtd
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlValidateDtd
    - xmlCtxtReset
    linkageType: ''
    returnType: int
    signature: 'int xmlCtxtValidateDtd(xmlParserCtxt *ctxt, xmlDoc *doc, xmlDtd *dtd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveTree
      Src: /src/libxml2/valid.c:1367,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - elem
    - save
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1368
      start: 1364
    functionDepth: 0
    functionLinenumber: 1364
    functionLinenumberEnd: 1368
    functionName: xmlDumpElementDeclScan
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlSaveTree
    linkageType: ''
    returnType: void
    signature: 'static void xmlDumpElementDeclScan(void *elem, void *save, const xmlChar
      *name ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 2529
      start: 2524
    functionDepth: 0
    functionLinenumber: 2524
    functionLinenumberEnd: 2529
    functionName: xmlDummyCompare
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlDummyCompare(const void *data0 ATTRIBUTE_UNUSED, const
      void *data1 ATTRIBUTE_UNUSED) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeListGetString
      Src: /src/libxml2/valid.c:2715,1
    - Dst: xmlListEmpty
      Src: /src/libxml2/valid.c:2742,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/valid.c:2719,1
    - Dst: xmlListWalk
      Src: /src/libxml2/valid.c:2739,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:2721,1
    - Dst: xmlHashRemoveEntry
      Src: /src/libxml2/valid.c:2743,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:2744,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - doc
    - attr
    argTypes:
    - xmlDoc*
    - xmlAttr*
    constantsTouched: []
    func_position:
      end: 2746
      start: 2701
    functionDepth: 0
    functionLinenumber: 2701
    functionLinenumberEnd: 2746
    functionName: xmlRemoveRef
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlListEmpty
    - xmlHashRemoveEntry
    - xmlNodeListGetString
    - xmlListWalk
    - xmlHashLookup
    linkageType: ''
    returnType: int
    signature: 'int xmlRemoveRef(xmlDoc *doc, xmlAttr *attr) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup3
      Src: /src/libxml2/valid.c:2962,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 4
    argNames:
    - dtd
    - elem
    - name
    - prefix
    argTypes:
    - xmlDtd*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2963
      start: 2953
    functionDepth: 0
    functionLinenumber: 2953
    functionLinenumberEnd: 2963
    functionName: xmlGetDtdQAttrDesc
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlHashLookup3
    linkageType: ''
    returnType: xmlAttribute*
    signature: "xmlAttribute *xmlGetDtdQAttrDesc(xmlDtd *dtd, const xmlChar *elem,
      const xmlChar *name,\t const xmlChar *prefix) "
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/valid.c:4086,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:4082,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:4099,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/valid.c:4103,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4121,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4174,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4178,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:4187,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4213,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4217,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4233,1
    - Dst: xmlBuildQName
      Src: /src/libxml2/valid.c:4080,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/valid.c:4095,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/valid.c:4106,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4125,1
    - Dst: xmlGetDtdNotationDesc
      Src: /src/libxml2/valid.c:4170,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:4227,1
    - Dst: xmlValidateAttributeValue2
      Src: /src/libxml2/valid.c:4242,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/valid.c:4089,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4135,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/valid.c:4112,1
    - Dst: xmlValidateAttributeValueInternal
      Src: /src/libxml2/valid.c:4132,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:4208,1
    - Dst: xmlValidateAttributeValue2
      Src: /src/libxml2/valid.c:4245,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/valid.c:4092,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/valid.c:4109,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:4148,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4154,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4150,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4139,1
    - Dst: xmlGetDtdNotationDesc
      Src: /src/libxml2/valid.c:4168,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4192,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4196,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4229,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 141
    argCount: 6
    argNames:
    - ctxt
    - doc
    - elem
    - prefix
    - ns
    - value
    argTypes:
    - xmlValidCtxt*
    - xmlDoc*
    - xmlNode*
    - xmlChar*
    - xmlNs*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4250
      start: 4064
    functionDepth: 0
    functionLinenumber: 4064
    functionLinenumberEnd: 4250
    functionName: xmlValidateOneNamespace
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlValidateAttributeValue2
    - xmlGetDtdQAttrDesc
    - xmlValidateAttributeValueInternal
    - xmlErrValidNode
    - xmlStrEqual
    - xmlBuildQName
    - xmlGetDtdNotationDesc
    - xmlVErrMemory
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateOneNamespace(xmlValidCtxt *ctxt, xmlDoc *doc,xmlNode
      *elem, const xmlChar *prefix, xmlNs *ns, const xmlChar *value) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeIDTable
      Src: /src/libxml2/valid.c:6057,1
    - Dst: xmlValidateRoot
      Src: /src/libxml2/valid.c:6065,1
    - Dst: xmlValidateElement
      Src: /src/libxml2/valid.c:6068,1
    - Dst: xmlFreeRefTable
      Src: /src/libxml2/valid.c:6061,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/valid.c:6067,1
    - Dst: xmlValidateDocumentFinal
      Src: /src/libxml2/valid.c:6069,1
    - Dst: xmlFreeIDTable
      Src: /src/libxml2/valid.c:6075,1
    - Dst: xmlFreeRefTable
      Src: /src/libxml2/valid.c:6079,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - ctxt
    - doc
    - dtd
    argTypes:
    - xmlValidCtxt*
    - xmlDoc*
    - xmlDtd*
    constantsTouched: []
    func_position:
      end: 6084
      start: 6041
    functionDepth: 0
    functionLinenumber: 6041
    functionLinenumberEnd: 6084
    functionName: xmlValidateDtd
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFreeIDTable
    - xmlDocGetRootElement
    - xmlValidateRoot
    - xmlValidateElement
    - xmlFreeRefTable
    - xmlValidateDocumentFinal
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateDtd(xmlValidCtxt *ctxt, xmlDoc *doc, xmlDtd *dtd) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/valid.c:56,1
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/valid.c:62,1
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/valid.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: xmlVErrMemory
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlRaiseMemoryError
    - xmlCtxtErrMemory
    linkageType: ''
    returnType: void
    signature: 'static void xmlVErrMemory(xmlValidCtxtPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveToBuffer
      Src: /src/libxml2/valid.c:1350,1
    - Dst: xmlSaveFinish
      Src: /src/libxml2/valid.c:1352,1
    - Dst: xmlSaveTree
      Src: /src/libxml2/valid.c:1351,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1353,1
    - Dst: xmlBufferDetach
      Src: /src/libxml2/valid.c:1353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - elem
    argTypes:
    - xmlBuffer*
    - xmlElement*
    constantsTouched: []
    func_position:
      end: 1354
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1354
    functionName: xmlDumpElementDecl
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlBufferDetach
    - xmlSaveFinish
    - xmlSaveToBuffer
    - xmlSaveTree
    linkageType: ''
    returnType: void
    signature: 'void xmlDumpElementDecl(xmlBuffer *buf, xmlElement *elem) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: xmlBuildQName
      Src: /src/libxml2/valid.c:3913,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:3924,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/valid.c:3930,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3937,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3948,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3957,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3999,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:4010,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/valid.c:3921,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:3956,1
    - Dst: xmlGetDtdNotationDesc
      Src: /src/libxml2/valid.c:3982,1
    - Dst: xmlAddID
      Src: /src/libxml2/valid.c:3966,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3987,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4014,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:4023,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/valid.c:3927,1
    - Dst: xmlRemoveID
      Src: /src/libxml2/valid.c:3943,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:3995,1
    - Dst: xmlAddRef
      Src: /src/libxml2/valid.c:3972,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:4024,1
    - Dst: xmlValidateAttributeValue2
      Src: /src/libxml2/valid.c:4031,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:3915,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/valid.c:3918,1
    - Dst: xmlValidateAttributeValueInternal
      Src: /src/libxml2/valid.c:3946,1
    - Dst: xmlGetDtdNotationDesc
      Src: /src/libxml2/valid.c:3984,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 107
    argCount: 5
    argNames:
    - ctxt
    - doc
    - elem
    - attr
    - value
    argTypes:
    - xmlValidCtxt*
    - xmlDoc*
    - xmlNode*
    - xmlAttr*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4035
      start: 3894
    functionDepth: 0
    functionLinenumber: 3894
    functionLinenumberEnd: 4035
    functionName: xmlValidateOneAttribute
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlAddID
    - xmlValidateAttributeValue2
    - xmlGetDtdQAttrDesc
    - xmlValidateAttributeValueInternal
    - xmlErrValidNode
    - xmlStrEqual
    - xmlAddRef
    - xmlRemoveID
    - xmlBuildQName
    - xmlGetDtdNotationDesc
    - xmlVErrMemory
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateOneAttribute(xmlValidCtxt *ctxt, xmlDoc *doc, xmlNode
      *elem, xmlAttr *attr, const xmlChar *value) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/valid.c:313,1
    - Dst: xmlRealloc
      Src: /src/libxml2/valid.c:319,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:321,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:316,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 6
    argNames:
    - ctxt
    - cont
    - node
    - depth
    - occurs
    - state
    argTypes:
    - xmlValidCtxtPtr
    - xmlElementContentPtr
    - xmlNodePtr
    - unsigned char
    - long
    - unsigned char
    constantsTouched: []
    func_position:
      end: 343
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 343
    functionName: vstateVPush
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlVErrMemory
    linkageType: ''
    returnType: int
    signature: "static int vstateVPush(xmlValidCtxtPtr ctxt, xmlElementContentPtr
      cont,\t xmlNodePtr node, unsigned char depth, long occurs,\t unsigned char state) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/valid.c:80,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:99,1
    - Dst: xmlVRaiseError
      Src: /src/libxml2/valid.c:93,1
    - Dst: va_end
      Src: /src/libxml2/valid.c:101,1
    - Dst: xmlCtxtVErr
      Src: /src/libxml2/valid.c:82,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 9
    argNames:
    - ctxt
    - node
    - code
    - level
    - str1
    - str2
    - str3
    - int1
    - msg
    - '...'
    argTypes:
    - xmlValidCtxtPtr
    - xmlNodePtr
    - xmlParserErrors
    - int
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 102
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 102
    functionName: xmlDoErrValid
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - va_end
    - xmlCtxtVErr
    - xmlVRaiseError
    - va_start
    - xmlVErrMemory
    linkageType: ''
    returnType: void
    signature: 'static void xmlDoErrValid(xmlValidCtxtPtr ctxt, xmlNodePtr node, xmlParserErrors
      code, int level, const xmlChar *str1, const xmlChar *str2, const xmlChar *str3,
      int int1, const char *msg, ...) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:3793,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3800,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3796,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:3810,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:3794,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:3811,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3813,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3817,1
    - Dst: xmlSplitQName4
      Src: /src/libxml2/valid.c:3830,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:3832,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:3855,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:3864,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:3842,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/valid.c:3838,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/valid.c:3851,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3844,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3857,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 79
    argCount: 3
    argNames:
    - ctxt
    - doc
    - elem
    argTypes:
    - xmlValidCtxt*
    - xmlDoc*
    - xmlElement*
    constantsTouched: []
    func_position:
      end: 3866
      start: 3767
    functionDepth: 0
    functionLinenumber: 3767
    functionLinenumberEnd: 3866
    functionName: xmlValidateElementDecl
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashLookup2
    - xmlErrValidNode
    - xmlStrEqual
    - xmlSplitQName4
    - xmlVErrMemory
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateElementDecl(xmlValidCtxt *ctxt, xmlDoc *doc, xmlElement
      *elem) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveToBuffer
      Src: /src/libxml2/valid.c:1846,1
    - Dst: xmlSaveTree
      Src: /src/libxml2/valid.c:1847,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1849,1
    - Dst: xmlBufferDetach
      Src: /src/libxml2/valid.c:1849,1
    - Dst: xmlSaveFinish
      Src: /src/libxml2/valid.c:1848,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - attr
    argTypes:
    - xmlBuffer*
    - xmlAttribute*
    constantsTouched: []
    func_position:
      end: 1850
      start: 1839
    functionDepth: 0
    functionLinenumber: 1839
    functionLinenumberEnd: 1850
    functionName: xmlDumpAttributeDecl
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlBufferDetach
    - xmlSaveFinish
    - xmlSaveToBuffer
    - xmlSaveTree
    linkageType: ''
    returnType: void
    signature: 'void xmlDumpAttributeDecl(xmlBuffer *buf, xmlAttribute *attr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeID
      Src: /src/libxml2/valid.c:2300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - id
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2301
      start: 2298
    functionDepth: 0
    functionLinenumber: 2298
    functionLinenumberEnd: 2301
    functionName: xmlFreeIDTableEntry
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFreeID
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeIDTableEntry(void *id, const xmlChar *name ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlValidCtxt*
    - xmlDoc*
    - xmlNotation*
    constantsTouched: []
    func_position:
      end: 3270
      start: 3264
    functionDepth: 0
    functionLinenumber: 3264
    functionLinenumberEnd: 3270
    functionName: xmlValidateNotationDecl
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateNotationDecl(xmlValidCtxt *ctxt ATTRIBUTE_UNUSED, xmlDoc
      *doc ATTRIBUTE_UNUSED, xmlNotation *nota ATTRIBUTE_UNUSED) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5232,1
    - Dst: xmlRegExecPushString
      Src: /src/libxml2/valid.c:5270,1
    - Dst: xmlValidateCheckMixed
      Src: /src/libxml2/valid.c:5252,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5246,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5255,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:5272,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5276,1
    - Dst: xmlValidGetElemDecl
      Src: /src/libxml2/valid.c:5289,1
    - Dst: vstateVPush
      Src: /src/libxml2/valid.c:5290,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 41
    argCount: 4
    argNames:
    - ctxt
    - doc
    - elem
    - qname
    argTypes:
    - xmlValidCtxt*
    - xmlDoc*
    - xmlNode*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5292
      start: 5207
    functionDepth: 0
    functionLinenumber: 5207
    functionLinenumberEnd: 5292
    functionName: xmlValidatePushElement
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlValidateCheckMixed
    - vstateVPush
    - xmlValidGetElemDecl
    - xmlErrValidNode
    - xmlRegExecPushString
    - xmlVErrMemory
    linkageType: ''
    returnType: int
    signature: 'int xmlValidatePushElement(xmlValidCtxt *ctxt, xmlDoc *doc, xmlNode
      *elem, const xmlChar *qname) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetDtdQElementDesc
      Src: /src/libxml2/valid.c:5163,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5187,1
    - Dst: xmlGetDtdQElementDesc
      Src: /src/libxml2/valid.c:5166,1
    - Dst: xmlGetDtdQElementDesc
      Src: /src/libxml2/valid.c:5181,1
    - Dst: xmlGetDtdQElementDesc
      Src: /src/libxml2/valid.c:5179,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 4
    argNames:
    - ctxt
    - doc
    - elem
    - extsubset
    argTypes:
    - xmlValidCtxtPtr
    - xmlDocPtr
    - xmlNodePtr
    - int*
    constantsTouched: []
    func_position:
      end: 5193
      start: 5144
    functionDepth: 0
    functionLinenumber: 5144
    functionLinenumberEnd: 5193
    functionName: xmlValidGetElemDecl
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlGetDtdQElementDesc
    - xmlErrValidNode
    linkageType: ''
    returnType: xmlElementPtr
    signature: "static xmlElementPtr xmlValidGetElemDecl(xmlValidCtxtPtr ctxt, xmlDocPtr
      doc,\t xmlNodePtr elem, int *extsubset) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveToBuffer
      Src: /src/libxml2/valid.c:2109,1
    - Dst: xmlSaveFinish
      Src: /src/libxml2/valid.c:2111,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:2112,1
    - Dst: xmlBufferDetach
      Src: /src/libxml2/valid.c:2112,1
    - Dst: xmlSaveNotationTable
      Src: /src/libxml2/valid.c:2110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - table
    argTypes:
    - xmlBuffer*
    - xmlNotationTable*
    constantsTouched: []
    func_position:
      end: 2113
      start: 2102
    functionDepth: 0
    functionLinenumber: 2102
    functionLinenumberEnd: 2113
    functionName: xmlDumpNotationTable
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlBufferDetach
    - xmlSaveFinish
    - xmlSaveToBuffer
    - xmlSaveNotationTable
    linkageType: ''
    returnType: void
    signature: 'void xmlDumpNotationTable(xmlBuffer *buf, xmlNotationTable *table) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlScanName
      Src: /src/libxml2/valid.c:3176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - value
    - flags
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 3178
      start: 3171
    functionDepth: 0
    functionLinenumber: 3171
    functionLinenumberEnd: 3178
    functionName: xmlValidateNmtokenValueInternal
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlScanName
    linkageType: ''
    returnType: int
    signature: 'static int xmlValidateNmtokenValueInternal(const xmlChar *value, int
      flags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateNmtokensValueInternal
      Src: /src/libxml2/valid.c:3247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3248
      start: 3245
    functionDepth: 0
    functionLinenumber: 3245
    functionLinenumberEnd: 3248
    functionName: xmlValidateNmtokensValue
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlValidateNmtokensValueInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateNmtokensValue(const xmlChar *value) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateOneElement
      Src: /src/libxml2/valid.c:5803,1
    - Dst: xmlNodeListGetString
      Src: /src/libxml2/valid.c:5811,1
    - Dst: xmlValidateOneAttribute
      Src: /src/libxml2/valid.c:5816,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:5809,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:5813,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:5817,1
    - Dst: xmlValidateOneNamespace
      Src: /src/libxml2/valid.c:5825,1
    - Dst: xmlValidateOneNamespace
      Src: /src/libxml2/valid.c:5828,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 3
    argNames:
    - ctxt
    - doc
    - root
    argTypes:
    - xmlValidCtxt*
    - xmlDoc*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 5852
      start: 5789
    functionDepth: 0
    functionLinenumber: 5789
    functionLinenumberEnd: 5852
    functionName: xmlValidateElement
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlValidateOneElement
    - xmlValidateOneNamespace
    - xmlNodeListGetString
    - xmlStrdup
    - xmlValidateOneAttribute
    - xmlVErrMemory
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateElement(xmlValidCtxt *ctxt, xmlDoc *doc, xmlNode *root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1432,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlEnumeration*
    constantsTouched: []
    func_position:
      end: 1437
      start: 1427
    functionDepth: 0
    functionLinenumber: 1427
    functionLinenumberEnd: 1437
    functionName: xmlFreeEnumeration
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeEnumeration(xmlEnumeration *cur) '
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateAttributeValueInternal
      Src: /src/libxml2/valid.c:1592,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/valid.c:1644,1
    - Dst: xmlErrValidWarning
      Src: /src/libxml2/valid.c:1689,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:1704,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:1713,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:1741,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/valid.c:1579,1
    - Dst: xmlHashLookup3
      Src: /src/libxml2/valid.c:1609,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:1667,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/valid.c:1665,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/valid.c:1645,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:1593,1
    - Dst: xmlHashCreateDict
      Src: /src/libxml2/valid.c:1621,1
    - Dst: xmlMalloc
      Src: /src/libxml2/valid.c:1627,1
    - Dst: memset
      Src: /src/libxml2/valid.c:1630,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/valid.c:1654,1
    - Dst: xmlGetDtdElementDesc2
      Src: /src/libxml2/valid.c:1672,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:1656,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:1702,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:1711,1
    - Dst: xmlFreeAttribute
      Src: /src/libxml2/valid.c:1743,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/valid.c:1575,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/valid.c:1583,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/valid.c:1611,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:1647,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:1648,1
    - Dst: xmlHashAdd3
      Src: /src/libxml2/valid.c:1680,1
    - Dst: xmlFreeAttribute
      Src: /src/libxml2/valid.c:1694,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/valid.c:1742,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 133
    argCount: 9
    argNames:
    - ctxt
    - dtd
    - elem
    - name
    - ns
    - type
    - def
    - defaultValue
    - tree
    argTypes:
    - xmlValidCtxt*
    - xmlDtd*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlAttributeType
    - xmlAttributeDefault
    - xmlChar*
    - xmlEnumeration*
    constantsTouched: []
    func_position:
      end: 1745
      start: 1562
    functionDepth: 0
    functionLinenumber: 1562
    functionLinenumberEnd: 1745
    functionName: xmlAddAttributeDecl
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - xmlErrValidWarning
    - xmlValidateAttributeValueInternal
    - xmlFreeAttribute
    - memset
    - xmlErrValidNode
    - xmlStrdup
    - xmlHashAdd3
    - xmlHashLookup3
    - xmlStrEqual
    - xmlFreeEnumeration
    - xmlGetDtdElementDesc2
    - xmlMalloc
    - xmlHashCreateDict
    - xmlVErrMemory
    linkageType: ''
    returnType: xmlAttribute*
    signature: "xmlAttribute *xmlAddAttributeDecl(xmlValidCtxt *ctxt, xmlDtd *dtd,
      const xmlChar *elem, const xmlChar *name, const xmlChar *ns,\t\t xmlAttributeType
      type, xmlAttributeDefault def,\t\t const xmlChar *defaultValue, xmlEnumeration
      *tree) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveToBuffer
      Src: /src/libxml2/valid.c:2087,1
    - Dst: xmlSaveNotationDecl
      Src: /src/libxml2/valid.c:2088,1
    - Dst: xmlBufferDetach
      Src: /src/libxml2/valid.c:2090,1
    - Dst: xmlSaveFinish
      Src: /src/libxml2/valid.c:2089,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:2090,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - nota
    argTypes:
    - xmlBuffer*
    - xmlNotation*
    constantsTouched: []
    func_position:
      end: 2091
      start: 2080
    functionDepth: 0
    functionLinenumber: 2080
    functionLinenumberEnd: 2091
    functionName: xmlDumpNotationDecl
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlBufferDetach
    - xmlSaveFinish
    - xmlSaveNotationDecl
    - xmlSaveToBuffer
    linkageType: ''
    returnType: void
    signature: 'void xmlDumpNotationDecl(xmlBuffer *buf, xmlNotation *nota) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateNamesValueInternal
      Src: /src/libxml2/valid.c:3158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3159
      start: 3156
    functionDepth: 0
    functionLinenumber: 3156
    functionLinenumberEnd: 3159
    functionName: xmlValidateNamesValue
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlValidateNamesValueInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateNamesValue(const xmlChar *value) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/valid.c:5734,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:5750,1
    - Dst: xmlErrValid
      Src: /src/libxml2/valid.c:5736,1
    - Dst: xmlBuildQName
      Src: /src/libxml2/valid.c:5755,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:5757,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:5760,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:5762,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:5766,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:5767,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5769,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 36
    argCount: 2
    argNames:
    - ctxt
    - doc
    argTypes:
    - xmlValidCtxt*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 5777
      start: 5727
    functionDepth: 0
    functionLinenumber: 5727
    functionLinenumberEnd: 5777
    functionName: xmlValidateRoot
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlFree
    - xmlErrValid
    - xmlErrValidNode
    - xmlStrEqual
    - xmlBuildQName
    - xmlVErrMemory
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateRoot(xmlValidCtxt *ctxt, xmlDoc *doc) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegexpIsDeterminist
      Src: /src/libxml2/valid.c:596,1
    - Dst: xmlAutomataGetInitState
      Src: /src/libxml2/valid.c:608,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:605,1
    - Dst: xmlNewAutomata
      Src: /src/libxml2/valid.c:603,1
    - Dst: xmlValidBuildAContentModel
      Src: /src/libxml2/valid.c:609,1
    - Dst: xmlAutomataSetFinalState
      Src: /src/libxml2/valid.c:611,1
    - Dst: xmlAutomataCompile
      Src: /src/libxml2/valid.c:612,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:614,1
    - Dst: xmlRegexpIsDeterminist
      Src: /src/libxml2/valid.c:617,1
    - Dst: xmlSnprintfElementContent
      Src: /src/libxml2/valid.c:620,1
    - Dst: xmlFreeAutomata
      Src: /src/libxml2/valid.c:633,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:621,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 2
    argNames:
    - ctxt
    - elem
    argTypes:
    - xmlValidCtxt*
    - xmlElement*
    constantsTouched: []
    func_position:
      end: 636
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 636
    functionName: xmlValidBuildContentModel
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlNewAutomata
    - xmlAutomataGetInitState
    - xmlValidBuildAContentModel
    - xmlFreeAutomata
    - xmlErrValidNode
    - xmlSnprintfElementContent
    - xmlAutomataSetFinalState
    - xmlAutomataCompile
    - xmlRegexpIsDeterminist
    - xmlVErrMemory
    linkageType: ''
    returnType: int
    signature: 'int xmlValidBuildContentModel(xmlValidCtxt *ctxt, xmlElement *elem) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/valid.c:1406,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:1412,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1414,1
    - Dst: memset
      Src: /src/libxml2/valid.c:1409,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1420
      start: 1402
    functionDepth: 0
    functionLinenumber: 1402
    functionLinenumberEnd: 1420
    functionName: xmlCreateEnumeration
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - memset
    - xmlFree
    - xmlMalloc
    linkageType: ''
    returnType: xmlEnumeration*
    signature: 'xmlEnumeration *xmlCreateEnumeration(const xmlChar *name) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/valid.c:1519,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/valid.c:1523,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/valid.c:1521,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1524,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/valid.c:1525,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1526,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/valid.c:1527,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1528,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/valid.c:1530,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1531,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1536,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1538,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1534,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1542,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1540,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 1
    argNames:
    - attr
    argTypes:
    - xmlAttributePtr
    constantsTouched: []
    func_position:
      end: 1543
      start: 1510
    functionDepth: 0
    functionLinenumber: 1510
    functionLinenumberEnd: 1543
    functionName: xmlFreeAttribute
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlUnlinkNode
    - xmlFreeEnumeration
    - xmlDictOwns
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeAttribute(xmlAttributePtr attr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCopySafe
      Src: /src/libxml2/valid.c:1825,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - table
    argTypes:
    - xmlAttributeTable*
    constantsTouched: []
    func_position:
      end: 1827
      start: 1823
    functionDepth: 0
    functionLinenumber: 1823
    functionLinenumberEnd: 1827
    functionName: xmlCopyAttributeTable
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlHashCopySafe
    linkageType: ''
    returnType: xmlAttributeTable*
    signature: 'xmlAttributeTable *xmlCopyAttributeTable(xmlAttributeTable *table) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlScanName
      Src: /src/libxml2/valid.c:3131,1
    - Dst: xmlScanName
      Src: /src/libxml2/valid.c:3141,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 2
    argNames:
    - value
    - flags
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 3147
      start: 3124
    functionDepth: 0
    functionLinenumber: 3124
    functionLinenumberEnd: 3147
    functionName: xmlValidateNamesValueInternal
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlScanName
    linkageType: ''
    returnType: int
    signature: 'static int xmlValidateNamesValueInternal(const xmlChar *value, int
      flags) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: nodeVPush
      Src: /src/libxml2/valid.c:5030,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:5062,1
    - Dst: nodeVPop
      Src: /src/libxml2/valid.c:5052,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 36
    argCount: 3
    argNames:
    - ctxt
    - doc
    - elem
    argTypes:
    - xmlValidCtxtPtr
    - xmlDocPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5066
      start: 5008
    functionDepth: 0
    functionLinenumber: 5008
    functionLinenumberEnd: 5066
    functionName: xmlValidateOneCdataElement
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - nodeVPop
    - nodeVPush
    - xmlFree
    linkageType: ''
    returnType: int
    signature: 'static int xmlValidateOneCdataElement(xmlValidCtxtPtr ctxt, xmlDocPtr
      doc, xmlNodePtr elem) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeAttribute
      Src: /src/libxml2/valid.c:1749,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - attr
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1750
      start: 1747
    functionDepth: 0
    functionLinenumber: 1747
    functionLinenumberEnd: 1750
    functionName: xmlFreeAttributeTableEntry
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFreeAttribute
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeAttributeTableEntry(void *attr, const xmlChar *name
      ATTRIBUTE_UNUSED) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSplitQName4
      Src: /src/libxml2/valid.c:2808,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/valid.c:2811,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:2813,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 15
    argCount: 2
    argNames:
    - dtd
    - name
    argTypes:
    - xmlDtd*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2815
      start: 2793
    functionDepth: 0
    functionLinenumber: 2793
    functionLinenumberEnd: 2815
    functionName: xmlGetDtdElementDesc
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashLookup2
    - xmlSplitQName4
    linkageType: ''
    returnType: xmlElement*
    signature: 'xmlElement *xmlGetDtdElementDesc(xmlDtd *dtd, const xmlChar *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCopySafe
      Src: /src/libxml2/valid.c:1330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - table
    argTypes:
    - xmlElementTable*
    constantsTouched: []
    func_position:
      end: 1331
      start: 1328
    functionDepth: 0
    functionLinenumber: 1328
    functionLinenumberEnd: 1331
    functionName: xmlCopyElementTable
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlHashCopySafe
    linkageType: ''
    returnType: xmlElementTable*
    signature: 'xmlElementTable *xmlCopyElementTable(xmlElementTable *table) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtReset
      Src: /src/libxml2/valid.c:6365,1
    - Dst: xmlValidateDocumentInternal
      Src: /src/libxml2/valid.c:6367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - ctxt
    - doc
    argTypes:
    - xmlParserCtxt*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 6368
      start: 6360
    functionDepth: 0
    functionLinenumber: 6360
    functionLinenumberEnd: 6368
    functionName: xmlCtxtValidateDocument
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlCtxtReset
    - xmlValidateDocumentInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlCtxtValidateDocument(xmlParserCtxt *ctxt, xmlDoc *doc) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/valid.c:1066,1
    - Dst: xmlFreeDocElementContent
      Src: /src/libxml2/valid.c:1067,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1071,1
    - Dst: xmlRegFreeRegexp
      Src: /src/libxml2/valid.c:1074,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1069,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:1076,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - elem
    argTypes:
    - xmlElementPtr
    constantsTouched: []
    func_position:
      end: 1077
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1077
    functionName: xmlFreeElement
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlUnlinkNode
    - xmlFreeDocElementContent
    - xmlRegFreeRegexp
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeElement(xmlElementPtr elem) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: strcat
      Src: /src/libxml2/valid.c:974,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:987,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:990,1
    - Dst: xmlSnprintfElementContent
      Src: /src/libxml2/valid.c:1011,1
    - Dst: strlen
      Src: /src/libxml2/valid.c:999,1
    - Dst: xmlSnprintfElementContent
      Src: /src/libxml2/valid.c:996,1
    - Dst: xmlSnprintfElementContent
      Src: /src/libxml2/valid.c:1029,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:1041,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:1047,1
    - Dst: strlen
      Src: /src/libxml2/valid.c:965,1
    - Dst: xmlStrlen
      Src: /src/libxml2/valid.c:977,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:971,1
    - Dst: xmlSnprintfElementContent
      Src: /src/libxml2/valid.c:998,1
    - Dst: xmlSnprintfElementContent
      Src: /src/libxml2/valid.c:1009,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:1022,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:1036,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:1044,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:986,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:1002,1
    - Dst: xmlSnprintfElementContent
      Src: /src/libxml2/valid.c:1018,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:1025,1
    - Dst: strlen
      Src: /src/libxml2/valid.c:1034,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:968,1
    - Dst: xmlStrlen
      Src: /src/libxml2/valid.c:980,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:982,1
    - Dst: xmlSnprintfElementContent
      Src: /src/libxml2/valid.c:1016,1
    - Dst: strcat
      Src: /src/libxml2/valid.c:1005,1
    - Dst: strlen
      Src: /src/libxml2/valid.c:1019,1
    - Dst: xmlSnprintfElementContent
      Src: /src/libxml2/valid.c:1031,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 89
    argCount: 4
    argNames:
    - buf
    - size
    - content
    - englob
    argTypes:
    - char*
    - int
    - xmlElementContent*
    - int
    constantsTouched: []
    func_position:
      end: 1050
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 1050
    functionName: xmlSnprintfElementContent
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlSnprintfElementContent
    - strlen
    - xmlStrlen
    - strcat
    linkageType: ''
    returnType: void
    signature: 'void xmlSnprintfElementContent(char *buf, int size, xmlElementContent
      *content, int englob) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlScanName
      Src: /src/libxml2/valid.c:3100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - value
    - flags
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 3102
      start: 3095
    functionDepth: 0
    functionLinenumber: 3095
    functionLinenumberEnd: 3102
    functionName: xmlValidateNameValueInternal
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlScanName
    linkageType: ''
    returnType: int
    signature: 'static int xmlValidateNameValueInternal(const xmlChar *value, int
      flags) '
  - BBCount: 65
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateSkipIgnorable
      Src: /src/libxml2/valid.c:4300,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:4386,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:4379,1
    - Dst: xmlValidateSkipIgnorable
      Src: /src/libxml2/valid.c:4358,1
    - Dst: vstateVPush
      Src: /src/libxml2/valid.c:4337,1
    - Dst: xmlValidateSkipIgnorable
      Src: /src/libxml2/valid.c:4396,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:4415,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:4425,1
    - Dst: vstateVPush
      Src: /src/libxml2/valid.c:4437,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:4451,1
    - Dst: vstateVPop
      Src: /src/libxml2/valid.c:4492,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:4461,1
    - Dst: vstateVPop
      Src: /src/libxml2/valid.c:4501,1
    - Dst: vstateVPop
      Src: /src/libxml2/valid.c:4601,1
    - Dst: vstateVPop
      Src: /src/libxml2/valid.c:4590,1
    CyclomaticComplexity: 114
    EdgeCount: 114
    ICount: 227
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 4609
      start: 4295
    functionDepth: 0
    functionLinenumber: 4295
    functionLinenumberEnd: 4609
    functionName: xmlValidateElementType
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlValidateSkipIgnorable
    - xmlStrEqual
    - vstateVPop
    - vstateVPush
    linkageType: ''
    returnType: int
    signature: 'static int xmlValidateElementType(xmlValidCtxtPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateDocumentInternal
      Src: /src/libxml2/valid.c:6343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - vctxt
    - doc
    argTypes:
    - xmlValidCtxt*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 6344
      start: 6341
    functionDepth: 0
    functionLinenumber: 6341
    functionLinenumberEnd: 6344
    functionName: xmlValidateDocument
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlValidateDocumentInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateDocument(xmlValidCtxt *vctxt, xmlDoc *doc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 6427
      start: 6425
    functionDepth: 0
    functionLinenumber: 6425
    functionLinenumberEnd: 6427
    functionName: xmlNoValidityErr
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xmlNoValidityErr(void *ctx ATTRIBUTE_UNUSED, const char
      *msg ATTRIBUTE_UNUSED, ...) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:675,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:678,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:677,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlValidCtxt*
    constantsTouched: []
    func_position:
      end: 679
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 679
    functionName: xmlFreeValidCtxt
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeValidCtxt(xmlValidCtxt *cur) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/valid.c:775,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:785,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/valid.c:783,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/valid.c:792,1
    - Dst: memset
      Src: /src/libxml2/valid.c:778,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:794,1
    - Dst: xmlCopyDocElementContent
      Src: /src/libxml2/valid.c:799,1
    - Dst: xmlMalloc
      Src: /src/libxml2/valid.c:808,1
    - Dst: memset
      Src: /src/libxml2/valid.c:811,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/valid.c:818,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:829,1
    - Dst: xmlCopyDocElementContent
      Src: /src/libxml2/valid.c:834,1
    - Dst: xmlFreeElementContent
      Src: /src/libxml2/valid.c:846,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/valid.c:827,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:820,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 67
    argCount: 2
    argNames:
    - doc
    - cur
    argTypes:
    - xmlDoc*
    - xmlElementContent*
    constantsTouched: []
    func_position:
      end: 848
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 848
    functionName: xmlCopyDocElementContent
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFreeElementContent
    - xmlDictLookup
    - xmlCopyDocElementContent
    - memset
    - xmlStrdup
    - xmlMalloc
    linkageType: ''
    returnType: xmlElementContent*
    signature: 'xmlElementContent *xmlCopyDocElementContent(xmlDoc *doc, xmlElementContent
      *cur) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xmlSplitQName4
      Src: /src/libxml2/valid.c:3496,1
    - Dst: xmlBuildQName
      Src: /src/libxml2/valid.c:3504,1
    - Dst: xmlHashLookup3
      Src: /src/libxml2/valid.c:3511,1
    - Dst: xmlHashLookup3
      Src: /src/libxml2/valid.c:3508,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:3517,1
    - Dst: xmlHashLookup3
      Src: /src/libxml2/valid.c:3520,1
    - Dst: xmlHashLookup3
      Src: /src/libxml2/valid.c:3523,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:3534,1
    - Dst: xmlValidNormalizeString
      Src: /src/libxml2/valid.c:3537,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:3538,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3539,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:3545,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:3552,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:3549,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 60
    argCount: 5
    argNames:
    - ctxt
    - doc
    - elem
    - name
    - value
    argTypes:
    - xmlValidCtxt*
    - xmlDoc*
    - xmlNode*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3554
      start: 3482
    functionDepth: 0
    functionLinenumber: 3482
    functionLinenumberEnd: 3554
    functionName: xmlValidCtxtNormalizeAttributeValue
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlErrValidNode
    - xmlStrdup
    - xmlHashLookup3
    - xmlStrEqual
    - xmlValidNormalizeString
    - xmlBuildQName
    - xmlSplitQName4
    - xmlVErrMemory
    linkageType: ''
    returnType: xmlChar*
    signature: "xmlChar *xmlValidCtxtNormalizeAttributeValue(xmlValidCtxt *ctxt, xmlDoc
      *doc,\t xmlNode *elem, const xmlChar *name, const xmlChar *value) "
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateAttributeValueInternal
      Src: /src/libxml2/valid.c:3650,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3664,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3653,1
    - Dst: xmlSplitQName4
      Src: /src/libxml2/valid.c:3677,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:3679,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/valid.c:3685,1
    - Dst: xmlScanIDAttributeDecl
      Src: /src/libxml2/valid.c:3688,1
    - Dst: xmlHashScan3
      Src: /src/libxml2/valid.c:3699,1
    - Dst: xmlErrValidNodeNr
      Src: /src/libxml2/valid.c:3705,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/valid.c:3711,1
    - Dst: xmlErrValidNodeNr
      Src: /src/libxml2/valid.c:3717,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3722,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:3729,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:3736,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3740,1
    - Dst: xmlScanIDAttributeDecl
      Src: /src/libxml2/valid.c:3714,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 72
    argCount: 3
    argNames:
    - ctxt
    - doc
    - attr
    argTypes:
    - xmlValidCtxt*
    - xmlDoc*
    - xmlAttribute*
    constantsTouched: []
    func_position:
      end: 3748
      start: 3639
    functionDepth: 0
    functionLinenumber: 3639
    functionLinenumberEnd: 3748
    functionName: xmlValidateAttributeDecl
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlValidateAttributeValueInternal
    - xmlHashLookup2
    - xmlErrValidNodeNr
    - xmlErrValidNode
    - xmlStrEqual
    - xmlHashScan3
    - xmlScanIDAttributeDecl
    - xmlSplitQName4
    - xmlVErrMemory
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateAttributeDecl(xmlValidCtxt *ctxt, xmlDoc *doc, xmlAttribute
      *attr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/valid.c:655,1
    - Dst: memset
      Src: /src/libxml2/valid.c:659,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 663
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 663
    functionName: xmlNewValidCtxt
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlValidCtxt*
    signature: 'xmlValidCtxt *xmlNewValidCtxt(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDocElementContent
      Src: /src/libxml2/valid.c:753,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - xmlChar*
    - xmlElementContentType
    constantsTouched: []
    func_position:
      end: 754
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 754
    functionName: xmlNewElementContent
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlNewDocElementContent
    linkageType: ''
    returnType: xmlElementContent*
    signature: 'xmlElementContent *xmlNewElementContent(const xmlChar *name, xmlElementContentType
      type) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlListRemoveFirst
      Src: /src/libxml2/valid.c:2511,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - data
    - user
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 2515
      start: 2503
    functionDepth: 0
    functionLinenumber: 2503
    functionLinenumberEnd: 2515
    functionName: xmlWalkRemoveRef
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlListRemoveFirst
    linkageType: ''
    returnType: int
    signature: 'static int xmlWalkRemoveRef(const void *data, void *user) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/valid.c:3381,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/valid.c:3385,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3394,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3388,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:3406,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:3408,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/valid.c:3414,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/valid.c:3417,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3419,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3425,1
    - Dst: xmlGetDtdNotationDesc
      Src: /src/libxml2/valid.c:3442,1
    - Dst: xmlGetDtdNotationDesc
      Src: /src/libxml2/valid.c:3444,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:3447,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/valid.c:3434,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:3436,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 62
    argCount: 5
    argNames:
    - ctxt
    - doc
    - name
    - type
    - value
    argTypes:
    - xmlValidCtxtPtr
    - xmlDocPtr
    - xmlChar*
    - xmlAttributeType
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3457
      start: 3365
    functionDepth: 0
    functionLinenumber: 3365
    functionLinenumberEnd: 3457
    functionName: xmlValidateAttributeValue2
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetDocEntity
    - xmlErrValidNode
    - xmlStrdup
    - IS_BLANK_CH
    - xmlGetDtdNotationDesc
    - xmlVErrMemory
    linkageType: ''
    returnType: int
    signature: 'static int xmlValidateAttributeValue2(xmlValidCtxtPtr ctxt, xmlDocPtr
      doc, const xmlChar *name, xmlAttributeType type, const xmlChar *value) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetDtdElementDesc
      Src: /src/libxml2/valid.c:3036,1
    - Dst: xmlGetDtdElementDesc
      Src: /src/libxml2/valid.c:3038,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 13
    argCount: 2
    argNames:
    - doc
    - name
    argTypes:
    - xmlDoc*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3055
      start: 3030
    functionDepth: 0
    functionLinenumber: 3030
    functionLinenumberEnd: 3055
    functionName: xmlIsMixedElement
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlGetDtdElementDesc
    linkageType: ''
    returnType: int
    signature: 'int xmlIsMixedElement(xmlDoc *doc, const xmlChar *name) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashRemoveEntry
      Src: /src/libxml2/valid.c:2404,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 2
    argNames:
    - doc
    - attr
    argTypes:
    - xmlDoc*
    - xmlAttr*
    constantsTouched: []
    func_position:
      end: 2408
      start: 2393
    functionDepth: 0
    functionLinenumber: 2393
    functionLinenumberEnd: 2408
    functionName: xmlRemoveID
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlHashRemoveEntry
    linkageType: ''
    returnType: int
    signature: 'int xmlRemoveID(xmlDoc *doc, xmlAttr *attr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlListDelete
      Src: /src/libxml2/valid.c:2495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2496
      start: 2491
    functionDepth: 0
    functionLinenumber: 2491
    functionLinenumberEnd: 2496
    functionName: xmlFreeRefTableEntry
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlListDelete
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeRefTableEntry(void *payload, const xmlChar *name
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashFree
      Src: /src/libxml2/valid.c:1761,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - table
    argTypes:
    - xmlAttributeTable*
    constantsTouched: []
    func_position:
      end: 1762
      start: 1759
    functionDepth: 0
    functionLinenumber: 1759
    functionLinenumberEnd: 1762
    functionName: xmlFreeAttributeTable
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeAttributeTable(xmlAttributeTable *table) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:2331,1
    - Dst: strcmp
      Src: /src/libxml2/valid.c:2348,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:2337,1
    - Dst: strcmp
      Src: /src/libxml2/valid.c:2347,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:2338,1
    - Dst: xmlBuildQName
      Src: /src/libxml2/valid.c:2361,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/valid.c:2369,1
    - Dst: xmlGetDtdQAttrDesc
      Src: /src/libxml2/valid.c:2372,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:2377,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 59
    argCount: 3
    argNames:
    - doc
    - elem
    - attr
    argTypes:
    - xmlDoc*
    - xmlNode*
    - xmlAttr*
    constantsTouched: []
    func_position:
      end: 2384
      start: 2325
    functionDepth: 0
    functionLinenumber: 2325
    functionLinenumberEnd: 2384
    functionName: xmlIsID
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlGetDtdQAttrDesc
    - strcmp
    - xmlStrEqual
    - xmlBuildQName
    linkageType: ''
    returnType: int
    signature: 'int xmlIsID(xmlDoc *doc, xmlNode *elem, xmlAttr *attr) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreateDict
      Src: /src/libxml2/valid.c:2844,1
    - Dst: xmlSplitQName4
      Src: /src/libxml2/valid.c:2850,1
    - Dst: memset
      Src: /src/libxml2/valid.c:2858,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/valid.c:2853,1
    - Dst: xmlMalloc
      Src: /src/libxml2/valid.c:2855,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:2865,1
    - Dst: xmlHashAdd2
      Src: /src/libxml2/valid.c:2872,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:2877,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:2881,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:2882,1
    - Dst: xmlFreeElement
      Src: /src/libxml2/valid.c:2883,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 36
    argCount: 3
    argNames:
    - ctxt
    - dtd
    - name
    argTypes:
    - xmlValidCtxtPtr
    - xmlDtdPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2885
      start: 2826
    functionDepth: 0
    functionLinenumber: 2826
    functionLinenumberEnd: 2885
    functionName: xmlGetDtdElementDesc2
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeElement
    - xmlHashLookup2
    - memset
    - xmlStrdup
    - xmlHashAdd2
    - xmlSplitQName4
    - xmlMalloc
    - xmlVErrMemory
    - xmlHashCreateDict
    linkageType: ''
    returnType: xmlElementPtr
    signature: 'static xmlElementPtr xmlGetDtdElementDesc2(xmlValidCtxtPtr ctxt, xmlDtdPtr
      dtd, const xmlChar *name) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libxml2/valid.c:6480,1
    - Dst: xmlGetDtdElementDesc
      Src: /src/libxml2/valid.c:6493,1
    - Dst: xmlValidGetPotentialChildren
      Src: /src/libxml2/valid.c:6527,1
    - Dst: xmlGetDtdElementDesc
      Src: /src/libxml2/valid.c:6490,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/valid.c:6508,1
    - Dst: xmlValidateOneElement
      Src: /src/libxml2/valid.c:6532,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:6536,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/valid.c:6554,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 53
    argCount: 4
    argNames:
    - prev
    - next
    - names
    - max
    argTypes:
    - xmlNode*
    - xmlNode*
    - xmlChar**
    - int
    constantsTouched: []
    func_position:
      end: 6557
      start: 6454
    functionDepth: 0
    functionLinenumber: 6454
    functionLinenumberEnd: 6557
    functionName: xmlValidGetValidElements
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlValidGetPotentialChildren
    - xmlValidateOneElement
    - memset
    - xmlGetDtdElementDesc
    - xmlFreeNode
    - xmlNewDocNode
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'int xmlValidGetValidElements(xmlNode *prev, xmlNode *next, const xmlChar
      **names, int max) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DICT_FREE
      Src: /src/libxml2/valid.c:2160,1
    - Dst: DICT_FREE
      Src: /src/libxml2/valid.c:2162,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:2168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - id
    argTypes:
    - xmlIDPtr
    constantsTouched: []
    func_position:
      end: 2169
      start: 2150
    functionDepth: 0
    functionLinenumber: 2150
    functionLinenumberEnd: 2169
    functionName: xmlFreeID
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - DICT_FREE
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeID(xmlIDPtr id) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlErrValid
      Src: /src/libxml2/valid.c:5993,1
    - Dst: xmlHashScan
      Src: /src/libxml2/valid.c:6020,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - ctxt
    - doc
    argTypes:
    - xmlValidCtxt*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 6026
      start: 5984
    functionDepth: 0
    functionLinenumber: 5984
    functionLinenumberEnd: 6026
    functionName: xmlValidateDocumentFinal
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlHashScan
    - xmlErrValid
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateDocumentFinal(xmlValidCtxt *ctxt, xmlDoc *doc) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateNotationUse
      Src: /src/libxml2/valid.c:6121,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 3
    argNames:
    - payload
    - data
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 6127
      start: 6108
    functionDepth: 0
    functionLinenumber: 6108
    functionLinenumberEnd: 6127
    functionName: xmlValidateNotationCallback
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlValidateNotationUse
    linkageType: ''
    returnType: void
    signature: "static void xmlValidateNotationCallback(void *payload, void *data,\t
      const xmlChar *name ATTRIBUTE_UNUSED) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlErrValid
      Src: /src/libxml2/valid.c:6145,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/valid.c:6161,1
    - Dst: xmlSplitQName4
      Src: /src/libxml2/valid.c:6151,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/valid.c:6158,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:6153,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/valid.c:6165,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:6168,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:6171,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:6177,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 40
    argCount: 3
    argNames:
    - payload
    - data
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 6183
      start: 6129
    functionDepth: 0
    functionLinenumber: 6129
    functionLinenumberEnd: 6183
    functionName: xmlValidateAttributeCallback
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlErrValid
    - xmlHashLookup2
    - xmlErrValidNode
    - xmlSplitQName4
    - xmlVErrMemory
    linkageType: ''
    returnType: void
    signature: "static void xmlValidateAttributeCallback(void *payload, void *data,\t
      const xmlChar *name ATTRIBUTE_UNUSED) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlListWalk
      Src: /src/libxml2/valid.c:5965,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 3
    argNames:
    - payload
    - data
    - name
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5967
      start: 5954
    functionDepth: 0
    functionLinenumber: 5954
    functionLinenumberEnd: 5967
    functionName: xmlValidateCheckRefCallback
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlListWalk
    linkageType: ''
    returnType: void
    signature: 'static void xmlValidateCheckRefCallback(void *payload, void *data,
      const xmlChar *name) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlAddIDInternal
      Src: /src/libxml2/valid.c:2281,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:2283,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:2290,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 4
    argNames:
    - ctxt
    - doc
    - value
    - attr
    argTypes:
    - xmlValidCtxt*
    - xmlDoc*
    - xmlChar*
    - xmlAttr*
    constantsTouched: []
    func_position:
      end: 2296
      start: 2272
    functionDepth: 0
    functionLinenumber: 2272
    functionLinenumberEnd: 2296
    functionName: xmlAddID
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlAddIDInternal
    - xmlErrValidNode
    - xmlVErrMemory
    linkageType: ''
    returnType: xmlID*
    signature: 'xmlID *xmlAddID(xmlValidCtxt *ctxt, xmlDoc *doc, const xmlChar *value,
      xmlAttr *attr) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 2143
      start: 2133
    functionDepth: 0
    functionLinenumber: 2133
    functionLinenumberEnd: 2143
    functionName: xmlIsStreaming
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlIsStreaming(xmlValidCtxtPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlAddIDInternal
      Src: /src/libxml2/valid.c:2260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - attr
    - value
    argTypes:
    - xmlAttr*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2261
      start: 2258
    functionDepth: 0
    functionLinenumber: 2258
    functionLinenumberEnd: 2261
    functionName: xmlAddIDSafe
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlAddIDInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlAddIDSafe(xmlAttr *attr, const xmlChar *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateRef
      Src: /src/libxml2/valid.c:5945,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - data
    - user
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 5947
      start: 5941
    functionDepth: 0
    functionLinenumber: 5941
    functionLinenumberEnd: 5947
    functionName: xmlWalkValidateList
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlValidateRef
    linkageType: ''
    returnType: int
    signature: 'static int xmlWalkValidateList(const void *data, void *user) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreateEnumeration
      Src: /src/libxml2/valid.c:1454,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/valid.c:1457,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlEnumeration*
    constantsTouched: []
    func_position:
      end: 1472
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1472
    functionName: xmlCopyEnumeration
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFreeEnumeration
    - xmlCreateEnumeration
    linkageType: ''
    returnType: xmlEnumeration*
    signature: 'xmlEnumeration *xmlCopyEnumeration(xmlEnumeration *cur) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 1
    argNames:
    - str
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3085
      start: 3064
    functionDepth: 0
    functionLinenumber: 3064
    functionLinenumberEnd: 3085
    functionName: xmlValidNormalizeString
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xmlValidNormalizeString(xmlChar *str) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsBlankNode
      Src: /src/libxml2/valid.c:4273,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 7
    argCount: 1
    argNames:
    - child
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 4284
      start: 4261
    functionDepth: 0
    functionLinenumber: 4261
    functionLinenumberEnd: 4284
    functionName: xmlValidateSkipIgnorable
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlIsBlankNode
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlValidateSkipIgnorable(xmlNodePtr child) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:6401,1
    - Dst: xmlValidGetPotentialChildren
      Src: /src/libxml2/valid.c:6414,1
    - Dst: xmlValidGetPotentialChildren
      Src: /src/libxml2/valid.c:6410,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:6406,1
    - Dst: xmlValidGetPotentialChildren
      Src: /src/libxml2/valid.c:6411,1
    - Dst: xmlValidGetPotentialChildren
      Src: /src/libxml2/valid.c:6415,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 20
    argCount: 4
    argNames:
    - ctree
    - names
    - len
    - max
    argTypes:
    - xmlElementContent*
    - xmlChar**
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 6420
      start: 6388
    functionDepth: 0
    functionLinenumber: 6388
    functionLinenumberEnd: 6420
    functionName: xmlValidGetPotentialChildren
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlValidGetPotentialChildren
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'int xmlValidGetPotentialChildren(xmlElementContent *ctree, const xmlChar
      **names, int *len, int max) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegFreeExecCtxt
      Src: /src/libxml2/valid.c:257,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 265
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 265
    functionName: vstateVPop
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlRegFreeExecCtxt
    linkageType: ''
    returnType: int
    signature: 'static int vstateVPop(xmlValidCtxtPtr ctxt) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/valid.c:2031,1
    - Dst: memset
      Src: /src/libxml2/valid.c:2034,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:2046,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:2041,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:2036,1
    - Dst: xmlFreeNotation
      Src: /src/libxml2/valid.c:2053,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 21
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2055
      start: 2026
    functionDepth: 0
    functionLinenumber: 2026
    functionLinenumberEnd: 2055
    functionName: xmlCopyNotation
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - memset
    - xmlMalloc
    - xmlFreeNotation
    linkageType: ''
    returnType: void*
    signature: 'static void *xmlCopyNotation(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlLinkGetData
      Src: /src/libxml2/valid.c:2476,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:2479,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:2482,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:2481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - lk
    argTypes:
    - xmlLinkPtr
    constantsTouched: []
    func_position:
      end: 2483
      start: 2474
    functionDepth: 0
    functionLinenumber: 2474
    functionLinenumberEnd: 2483
    functionName: xmlFreeRef
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlLinkGetData
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeRef(xmlLinkPtr lk) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegExecPushString
      Src: /src/libxml2/valid.c:5397,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5402,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:5400,1
    - Dst: vstateVPop
      Src: /src/libxml2/valid.c:5417,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 4
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlValidCtxt*
    - xmlDoc*
    - xmlNode*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5420
      start: 5376
    functionDepth: 0
    functionLinenumber: 5376
    functionLinenumberEnd: 5420
    functionName: xmlValidatePopElement
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlErrValidNode
    - xmlRegExecPushString
    - vstateVPop
    - xmlVErrMemory
    linkageType: ''
    returnType: int
    signature: "int xmlValidatePopElement(xmlValidCtxt *ctxt, xmlDoc *doc ATTRIBUTE_UNUSED,
      xmlNode *elem ATTRIBUTE_UNUSED,\t\t const xmlChar *qname ATTRIBUTE_UNUSED) "
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidGetElemDecl
      Src: /src/libxml2/valid.c:5477,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:5535,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:5560,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5576,1
    - Dst: xmlValidateElementContent
      Src: /src/libxml2/valid.c:5615,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5602,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:5664,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5685,1
    - Dst: xmlErrValidWarning
      Src: /src/libxml2/valid.c:5696,1
    - Dst: xmlErrValidWarning
      Src: /src/libxml2/valid.c:5700,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5489,1
    - Dst: xmlValidateOneCdataElement
      Src: /src/libxml2/valid.c:5509,1
    - Dst: xmlVErrMemory
      Src: /src/libxml2/valid.c:5529,1
    - Dst: xmlFree
      Src: /src/libxml2/valid.c:5553,1
    - Dst: xmlErrValid
      Src: /src/libxml2/valid.c:5568,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:5629,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:5638,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5469,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5495,1
    - Dst: xmlBuildQName
      Src: /src/libxml2/valid.c:5526,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/valid.c:5599,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:5643,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5690,1
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:5511,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:5540,1
    - Dst: xmlErrValid
      Src: /src/libxml2/valid.c:5545,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:5564,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/valid.c:5652,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 170
    argCount: 3
    argNames:
    - ctxt
    - doc
    - elem
    argTypes:
    - xmlValidCtxt*
    - xmlDoc*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 5709
      start: 5443
    functionDepth: 0
    functionLinenumber: 5443
    functionLinenumberEnd: 5709
    functionName: xmlValidateOneElement
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlErrValid
    - xmlValidGetElemDecl
    - xmlValidateElementContent
    - xmlErrValidNode
    - xmlStrEqual
    - IS_BLANK_CH
    - xmlBuildQName
    - xmlValidateOneCdataElement
    - xmlErrValidWarning
    - xmlVErrMemory
    linkageType: ''
    returnType: int
    signature: 'int xmlValidateOneElement(xmlValidCtxt *ctxt, xmlDoc *doc, xmlNode
      *elem) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashFree
      Src: /src/libxml2/valid.c:2016,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - table
    argTypes:
    - xmlNotationTable*
    constantsTouched: []
    func_position:
      end: 2017
      start: 2014
    functionDepth: 0
    functionLinenumber: 2014
    functionLinenumberEnd: 2017
    functionName: xmlFreeNotationTable
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeNotationTable(xmlNotationTable *table) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreateDict
      Src: /src/libxml2/valid.c:2204,1
    - Dst: xmlStrdup
      Src: /src/libxml2/valid.c:2222,1
    - Dst: xmlMalloc
      Src: /src/libxml2/valid.c:2213,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/valid.c:2208,1
    - Dst: memset
      Src: /src/libxml2/valid.c:2216,1
    - Dst: xmlFreeID
      Src: /src/libxml2/valid.c:2224,1
    - Dst: xmlRemoveID
      Src: /src/libxml2/valid.c:2229,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/valid.c:2231,1
    - Dst: xmlFreeID
      Src: /src/libxml2/valid.c:2232,1
    - Dst: xmlGetLineNo
      Src: /src/libxml2/valid.c:2241,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 3
    argNames:
    - attr
    - value
    - idPtr
    argTypes:
    - xmlAttrPtr
    - xmlChar*
    - xmlIDPtr*
    constantsTouched: []
    func_position:
      end: 2246
      start: 2181
    functionDepth: 0
    functionLinenumber: 2181
    functionLinenumberEnd: 2246
    functionName: xmlAddIDInternal
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlGetLineNo
    - xmlFreeID
    - memset
    - xmlStrdup
    - xmlRemoveID
    - xmlHashLookup
    - xmlHashAddEntry
    - xmlMalloc
    - xmlHashCreateDict
    linkageType: ''
    returnType: int
    signature: 'static int xmlAddIDInternal(xmlAttrPtr attr, const xmlChar *value,
      xmlIDPtr *idPtr) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlErrValidNode
      Src: /src/libxml2/valid.c:1495,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - ctxt
    - elem
    - err
    argTypes:
    - xmlValidCtxtPtr
    - xmlElementPtr
    - int
    constantsTouched: []
    func_position:
      end: 1502
      start: 1484
    functionDepth: 0
    functionLinenumber: 1484
    functionLinenumberEnd: 1502
    functionName: xmlScanIDAttributeDecl
    functionSourceFile: /src/libxml2/valid.c
    functionUses: []
    functionsReached:
    - xmlErrValidNode
    linkageType: ''
    returnType: int
    signature: 'static int xmlScanIDAttributeDecl(xmlValidCtxtPtr ctxt, xmlElementPtr
      elem, int err) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemastypes.c:461,1
    - Dst: memset
      Src: /src/libxml2/xmlschemastypes.c:466,1
    - Dst: xmlSchemaTypeErrMemory
      Src: /src/libxml2/xmlschemastypes.c:463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 471
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 471
    functionName: xmlSchemaAddParticle
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaTypeErrMemory
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchemaParticlePtr
    signature: 'static xmlSchemaParticlePtr xmlSchemaAddParticle(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PARSE_2_DIGITS
      Src: /src/libxml2/xmlschemastypes.c:1507,1
    - Dst: VALID_MONTH
      Src: /src/libxml2/xmlschemastypes.c:1511,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - dt
    - str
    argTypes:
    - xmlSchemaValDatePtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1518
      start: 1501
    functionDepth: 0
    functionLinenumber: 1501
    functionLinenumberEnd: 1518
    functionName: _xmlSchemaParseGMonth
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - PARSE_2_DIGITS
    - VALID_MONTH
    linkageType: ''
    returnType: int
    signature: 'static int _xmlSchemaParseGMonth (xmlSchemaValDatePtr dt, const xmlChar
      **str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeType
      Src: /src/libxml2/xmlschemastypes.c:475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - type
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 476
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 476
    functionName: xmlSchemaFreeTypeEntry
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaFreeType
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaFreeTypeEntry(void *type, const xmlChar *name
      ATTRIBUTE_UNUSED) '
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:1780,1
    - Dst: _xmlSchemaParseGDay
      Src: /src/libxml2/xmlschemastypes.c:1796,1
    - Dst: _xmlSchemaParseTime
      Src: /src/libxml2/xmlschemastypes.c:1859,1
    - Dst: _xmlSchemaParseGYear
      Src: /src/libxml2/xmlschemastypes.c:1869,1
    - Dst: RETURN_TYPE_IF_VALID
      Src: /src/libxml2/xmlschemastypes.c:1885,1
    - Dst: VALID_DATE
      Src: /src/libxml2/xmlschemastypes.c:1892,1
    - Dst: IS_WSP_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:1909,1
    - Dst: RETURN_TYPE_IF_VALID
      Src: /src/libxml2/xmlschemastypes.c:1800,1
    - Dst: RETURN_TYPE_IF_VALID
      Src: /src/libxml2/xmlschemastypes.c:1849,1
    - Dst: RETURN_TYPE_IF_VALID
      Src: /src/libxml2/xmlschemastypes.c:1874,1
    - Dst: _xmlSchemaParseTime
      Src: /src/libxml2/xmlschemastypes.c:1903,1
    - Dst: RETURN_TYPE_IF_VALID
      Src: /src/libxml2/xmlschemastypes.c:1896,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:1953,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:1959,1
    - Dst: _xmlSchemaParseGMonth
      Src: /src/libxml2/xmlschemastypes.c:1808,1
    - Dst: _xmlSchemaParseGDay
      Src: /src/libxml2/xmlschemastypes.c:1824,1
    - Dst: RETURN_TYPE_IF_VALID
      Src: /src/libxml2/xmlschemastypes.c:1836,1
    - Dst: _xmlSchemaParseGDay
      Src: /src/libxml2/xmlschemastypes.c:1891,1
    - Dst: VALID_DATETIME
      Src: /src/libxml2/xmlschemastypes.c:1910,1
    - Dst: VALID_MDAY
      Src: /src/libxml2/xmlschemastypes.c:1834,1
    - Dst: _xmlSchemaParseGMonth
      Src: /src/libxml2/xmlschemastypes.c:1880,1
    - Dst: RETURN_TYPE_IF_VALID
      Src: /src/libxml2/xmlschemastypes.c:1862,1
    - Dst: _xmlSchemaParseTimeZone
      Src: /src/libxml2/xmlschemastypes.c:1907,1
    - Dst: IS_WSP_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:1775,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 115
    argCount: 4
    argNames:
    - type
    - dateTime
    - val
    - collapse
    argTypes:
    - xmlSchemaValType
    - xmlChar*
    - xmlSchemaValPtr*
    - int
    constantsTouched: []
    func_position:
      end: 1961
      start: 1752
    functionDepth: 0
    functionLinenumber: 1752
    functionLinenumberEnd: 1961
    functionName: xmlSchemaValidateDates
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaFreeValue
    - RETURN_TYPE_IF_VALID
    - xmlSchemaNewValue
    - VALID_DATE
    - VALID_MDAY
    - VALID_DATETIME
    - _xmlSchemaParseGMonth
    - _xmlSchemaParseGYear
    - _xmlSchemaParseTimeZone
    - IS_WSP_BLANK_CH
    - _xmlSchemaParseTime
    - _xmlSchemaParseGDay
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaValidateDates (xmlSchemaValType type,\t const
      xmlChar *dateTime, xmlSchemaValPtr *val,\t\t\tint collapse) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:2204,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xmlschemastypes.c:2222,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:2207,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:2219,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:2224,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:2229,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:2231,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 48
    argCount: 1
    argNames:
    - value
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2239
      start: 2197
    functionDepth: 0
    functionLinenumber: 2197
    functionLinenumberEnd: 2239
    functionName: xmlSchemaCollapseString
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - IS_BLANK_CH
    - xmlStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlSchemaCollapseString(const xmlChar *value) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:4712,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:4715,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:4716,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:4713,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:4720,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:4721,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:4731,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:4736,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 29
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4741
      start: 4707
    functionDepth: 0
    functionLinenumber: 4707
    functionLinenumberEnd: 4741
    functionName: xmlSchemaCompareNormStrings
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - IS_BLANK_CH
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCompareNormStrings(const xmlChar *x,\t\t\t const
      xmlChar *y) "
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlSchemaVal*
    constantsTouched: []
    func_position:
      end: 1128
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1128
    functionName: xmlSchemaValueGetAsString
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'const xmlChar *xmlSchemaValueGetAsString(xmlSchemaVal *val) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemastypes.c:1163,1
    - Dst: memset
      Src: /src/libxml2/xmlschemastypes.c:1167,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - type
    - value
    argTypes:
    - xmlSchemaValType
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1171
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1171
    functionName: xmlSchemaNewStringValue
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchemaVal*
    signature: "xmlSchemaVal *xmlSchemaNewStringValue(xmlSchemaValType type,\t\t\tconst
      xmlChar *value) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:2178,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 25
    argCount: 1
    argNames:
    - value
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2189
      start: 2164
    functionDepth: 0
    functionLinenumber: 2164
    functionLinenumberEnd: 2189
    functionName: xmlSchemaWhiteSpaceReplace
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlSchemaWhiteSpaceReplace(const xmlChar *value) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaValDecimalCompare
      Src: /src/libxml2/xmlschemastypes.c:3639,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - xmlSchemaValPtr
    - xmlSchemaValPtr
    constantsTouched: []
    func_position:
      end: 3649
      start: 3636
    functionDepth: 0
    functionLinenumber: 3636
    functionLinenumberEnd: 3649
    functionName: xmlSchemaCompareDecimals
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaValDecimalCompare
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaCompareDecimals(xmlSchemaValPtr x, xmlSchemaValPtr
      y) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: IS_WSP_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:4670,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 21
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4697
      start: 4662
    functionDepth: 0
    functionLinenumber: 4662
    functionLinenumberEnd: 4697
    functionName: xmlSchemaCompareReplacedStrings
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - IS_WSP_BLANK_CH
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCompareReplacedStrings(const xmlChar *x,\t\t\t\tconst
      xmlChar *y) "
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaAddParticle
      Src: /src/libxml2/xmlschemastypes.c:579,1
    - Dst: xmlSchemaTypeErrMemory
      Src: /src/libxml2/xmlschemastypes.c:588,1
    - Dst: memset
      Src: /src/libxml2/xmlschemastypes.c:591,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:609,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:637,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:647,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:667,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:687,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:698,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:728,1
    - Dst: xmlSchemaCleanupTypesInternal
      Src: /src/libxml2/xmlschemastypes.c:856,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:737,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:758,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:787,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:807,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:816,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/xmlschemastypes.c:539,1
    - Dst: xmlSchemaTypeErrMemory
      Src: /src/libxml2/xmlschemastypes.c:541,1
    - Dst: xmlSchemaAddParticle
      Src: /src/libxml2/xmlschemastypes.c:564,1
    - Dst: xmlSchemaTypeErrMemory
      Src: /src/libxml2/xmlschemastypes.c:572,1
    - Dst: memset
      Src: /src/libxml2/xmlschemastypes.c:575,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemastypes.c:586,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:617,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:622,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:642,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:652,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:672,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:702,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:782,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:821,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:802,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemastypes.c:570,1
    - Dst: memset
      Src: /src/libxml2/xmlschemastypes.c:604,1
    - Dst: xmlSchemaTypeErrMemory
      Src: /src/libxml2/xmlschemastypes.c:601,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:627,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:657,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:677,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:707,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:746,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:768,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:778,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:845,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:837,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:797,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:830,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:548,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemastypes.c:599,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:632,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:662,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:682,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:692,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:716,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:722,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:752,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:773,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:733,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:741,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:763,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:792,1
    - Dst: xmlSchemaInitBasicType
      Src: /src/libxml2/xmlschemastypes.c:812,1
    CyclomaticComplexity: 107
    EdgeCount: 107
    ICount: 202
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 858
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 858
    functionName: xmlSchemaInitTypes
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaCleanupTypesInternal
    - xmlSchemaAddParticle
    - memset
    - xmlHashCreate
    - xmlSchemaTypeErrMemory
    - xmlSchemaInitBasicType
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'int xmlSchemaInitTypes(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeWildcard
      Src: /src/libxml2/xmlschemastypes.c:490,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:505,1
    - Dst: xmlSchemaFreeWildcard
      Src: /src/libxml2/xmlschemastypes.c:497,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:499,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:503,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemastypes.c:511,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 514
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 514
    functionName: xmlSchemaCleanupTypesInternal
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFree
    - xmlSchemaFreeWildcard
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaCleanupTypesInternal(void) '
  - BBCount: 289
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:2453,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:2499,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:2715,1
    - Dst: xmlAddIDSafe
      Src: /src/libxml2/xmlschemastypes.c:3028,1
    - Dst: xmlSplitQName2
      Src: /src/libxml2/xmlschemastypes.c:2960,1
    - Dst: xmlAddRef
      Src: /src/libxml2/xmlschemastypes.c:3056,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:3204,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:3247,1
    - Dst: IS_WSP_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:2607,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xmlschemastypes.c:3254,1
    - Dst: xmlSchemaValDecimalCompareWithInteger
      Src: /src/libxml2/xmlschemastypes.c:3450,1
    - Dst: xmlValidateNCName
      Src: /src/libxml2/xmlschemastypes.c:3005,1
    - Dst: xmlSchemaCollapseString
      Src: /src/libxml2/xmlschemastypes.c:2510,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:2635,1
    - Dst: xmlSchemaValidateDates
      Src: /src/libxml2/xmlschemastypes.c:2655,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:2916,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:3007,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:2983,1
    - Dst: xmlSchemaValAtomicListNode
      Src: /src/libxml2/xmlschemastypes.c:3064,1
    - Dst: IS_WSP_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:2670,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:3089,1
    - Dst: xmlSchemaValDecimalCompareWithInteger
      Src: /src/libxml2/xmlschemastypes.c:3521,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:2527,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:2793,1
    - Dst: xmlValidateNCName
      Src: /src/libxml2/xmlschemastypes.c:3041,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:2985,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:3043,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:3377,1
    - Dst: xmlSchemaValDecimalCompare
      Src: /src/libxml2/xmlschemastypes.c:3467,1
    - Dst: xmlSchemaValDecimalCompareWithInteger
      Src: /src/libxml2/xmlschemastypes.c:3514,1
    - Dst: IS_WSP_SPACE_CH
      Src: /src/libxml2/xmlschemastypes.c:2478,1
    - Dst: IS_WSP_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:3238,1
    - Dst: IS_WSP_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:3433,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:3548,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:2900,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:2989,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemastypes.c:2629,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:2883,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:2977,1
    - Dst: xmlSchemaTypeErrMemory
      Src: /src/libxml2/xmlschemastypes.c:3256,1
    - Dst: xmlSchemaValDecimalCompareWithInteger
      Src: /src/libxml2/xmlschemastypes.c:3438,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemastypes.c:3381,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:3534,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:3564,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:2632,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xmlschemastypes.c:2942,1
    - Dst: xmlValidateQName
      Src: /src/libxml2/xmlschemastypes.c:3129,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:3177,1
    - Dst: xmlSchemaCollapseString
      Src: /src/libxml2/xmlschemastypes.c:3188,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:3214,1
    - Dst: xmlSchemaTypeErrMemory
      Src: /src/libxml2/xmlschemastypes.c:3383,1
    - Dst: xmlSchemaValDecimalCompareWithInteger
      Src: /src/libxml2/xmlschemastypes.c:3455,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:3542,1
    - Dst: xmlSchemaValDecimalCompareWithInteger
      Src: /src/libxml2/xmlschemastypes.c:3502,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:3560,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:2941,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:2936,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:2997,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:3175,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:3192,1
    - Dst: xmlSchemaCollapseString
      Src: /src/libxml2/xmlschemastypes.c:2441,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:2686,1
    - Dst: xmlSchemaValAtomicListNode
      Src: /src/libxml2/xmlschemastypes.c:2926,1
    - Dst: xmlSchemaStrip
      Src: /src/libxml2/xmlschemastypes.c:3054,1
    - Dst: xmlGetDtdNotationDesc
      Src: /src/libxml2/xmlschemastypes.c:3153,1
    - Dst: xmlSchemaValDecimalCompare
      Src: /src/libxml2/xmlschemastypes.c:3480,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:3163,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:3257,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:3568,1
    - Dst: xmlSchemaCollapseString
      Src: /src/libxml2/xmlschemastypes.c:2893,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:2455,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:2852,1
    - Dst: xmlSchemaValDecimalCompare
      Src: /src/libxml2/xmlschemastypes.c:3512,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:3556,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:3572,1
    - Dst: IS_WSP_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:3421,1
    - Dst: xmlSchemaValidateDuration
      Src: /src/libxml2/xmlschemastypes.c:2659,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:2708,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:2726,1
    - Dst: sscanf
      Src: /src/libxml2/xmlschemastypes.c:2772,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:2902,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:2914,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:3009,1
    - Dst: xmlAddIDSafe
      Src: /src/libxml2/xmlschemastypes.c:3031,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:2963,1
    - Dst: xmlAddRef
      Src: /src/libxml2/xmlschemastypes.c:3059,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:3057,1
    - Dst: xmlValidateNCName
      Src: /src/libxml2/xmlschemastypes.c:3080,1
    - Dst: xmlSplitQName2
      Src: /src/libxml2/xmlschemastypes.c:3133,1
    - Dst: xmlSearchNs
      Src: /src/libxml2/xmlschemastypes.c:3137,1
    - Dst: memset
      Src: /src/libxml2/xmlschemastypes.c:3416,1
    - Dst: xmlSchemaValDecimalCompareWithInteger
      Src: /src/libxml2/xmlschemastypes.c:3487,1
    - Dst: xmlSchemaValDecimalCompareWithInteger
      Src: /src/libxml2/xmlschemastypes.c:3494,1
    - Dst: xmlSchemaValDecimalCompareWithInteger
      Src: /src/libxml2/xmlschemastypes.c:3500,1
    - Dst: xmlSchemaValDecimalCompareWithInteger
      Src: /src/libxml2/xmlschemastypes.c:3528,1
    - Dst: xmlSchemaStrip
      Src: /src/libxml2/xmlschemastypes.c:3086,1
    - Dst: _xmlSchemaBase64Decode
      Src: /src/libxml2/xmlschemastypes.c:3352,1
    - Dst: xmlSchemaParseUInt
      Src: /src/libxml2/xmlschemastypes.c:3427,1
    - Dst: xmlSchemaStrip
      Src: /src/libxml2/xmlschemastypes.c:3026,1
    - Dst: memset
      Src: /src/libxml2/xmlschemastypes.c:2543,1
    - Dst: xmlSearchNs
      Src: /src/libxml2/xmlschemastypes.c:2961,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:3029,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:2881,1
    - Dst: xmlValidateNMToken
      Src: /src/libxml2/xmlschemastypes.c:2912,1
    - Dst: xmlSchemaValAtomicListNode
      Src: /src/libxml2/xmlschemastypes.c:3112,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/xmlschemastypes.c:3207,1
    - Dst: _xmlSchemaBase64Decode
      Src: /src/libxml2/xmlschemastypes.c:3389,1
    - Dst: xmlSchemaValDecimalCompareWithInteger
      Src: /src/libxml2/xmlschemastypes.c:3482,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:2965,1
    - Dst: xmlValidateName
      Src: /src/libxml2/xmlschemastypes.c:2934,1
    - Dst: xmlSchemaWhiteSpaceReplace
      Src: /src/libxml2/xmlschemastypes.c:2439,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:2529,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:2682,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:3146,1
    - Dst: xmlGetDtdNotationDesc
      Src: /src/libxml2/xmlschemastypes.c:3155,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:3211,1
    - Dst: IS_WSP_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:2759,1
    - Dst: IS_WSP_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:3228,1
    - Dst: xmlSchemaValDecimalCompareWithInteger
      Src: /src/libxml2/xmlschemastypes.c:3489,1
    - Dst: xmlSchemaWhiteSpaceReplace
      Src: /src/libxml2/xmlschemastypes.c:2493,1
    - Dst: xmlSchemaWhiteSpaceReplace
      Src: /src/libxml2/xmlschemastypes.c:2512,1
    - Dst: xmlValidateNCName
      Src: /src/libxml2/xmlschemastypes.c:2993,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:2974,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:2776,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:2995,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:3046,1
    - Dst: _xmlSchemaBase64Decode
      Src: /src/libxml2/xmlschemastypes.c:3312,1
    - Dst: xmlSchemaValDecimalCompareWithInteger
      Src: /src/libxml2/xmlschemastypes.c:3519,1
    - Dst: xmlSchemaValDecimalCompareWithInteger
      Src: /src/libxml2/xmlschemastypes.c:3526,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:3532,1
    - Dst: xmlSchemaValDecimalCompareWithInteger
      Src: /src/libxml2/xmlschemastypes.c:3496,1
    - Dst: xmlSchemaInitTypes
      Src: /src/libxml2/xmlschemastypes.c:2419,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:2611,1
    - Dst: xmlSchemaCheckLanguageType
      Src: /src/libxml2/xmlschemastypes.c:2898,1
    - Dst: xmlValidateQName
      Src: /src/libxml2/xmlschemastypes.c:2953,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:2939,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:3168,1
    - Dst: xmlParseURI
      Src: /src/libxml2/xmlschemastypes.c:3203,1
    - Dst: _xmlSchemaBase64Decode
      Src: /src/libxml2/xmlschemastypes.c:3364,1
    - Dst: _xmlSchemaBase64Decode
      Src: /src/libxml2/xmlschemastypes.c:3366,1
    - Dst: xmlSchemaValDecimalCompareWithInteger
      Src: /src/libxml2/xmlschemastypes.c:3445,1
    - Dst: xmlSchemaCollapseString
      Src: /src/libxml2/xmlschemastypes.c:2491,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:2497,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:2690,1
    - Dst: sscanf
      Src: /src/libxml2/xmlschemastypes.c:2789,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/xmlschemastypes.c:3091,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:3141,1
    - Dst: _xmlSchemaBase64Decode
      Src: /src/libxml2/xmlschemastypes.c:3302,1
    - Dst: xmlSchemaValDecimalCompare
      Src: /src/libxml2/xmlschemastypes.c:3470,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:2783,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:2971,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:2678,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:2719,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:2765,1
    - Dst: xmlGetDocEntity
      Src: /src/libxml2/xmlschemastypes.c:3088,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:3144,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:3384,1
    - Dst: IS_WSP_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:2552,1
    - Dst: _xmlSchemaBase64Decode
      Src: /src/libxml2/xmlschemastypes.c:3350,1
    CyclomaticComplexity: 565
    EdgeCount: 565
    ICount: 988
    argCount: 9
    argNames:
    - type
    - value
    - val
    - node
    - flags
    - ws
    - normOnTheFly
    - applyNorm
    - createStringValue
    argTypes:
    - xmlSchemaTypePtr
    - xmlChar*
    - xmlSchemaValPtr*
    - xmlNodePtr
    - int
    - xmlSchemaWhitespaceValueType
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3574
      start: 2408
    functionDepth: 0
    functionLinenumber: 2408
    functionLinenumberEnd: 3574
    functionName: xmlSchemaValAtomicType
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - IS_WSP_SPACE_CH
    - xmlSchemaStrip
    - xmlFreeURI
    - xmlStrndup
    - xmlSchemaWhiteSpaceReplace
    - xmlSchemaParseUInt
    - xmlSchemaValDecimalCompare
    - xmlSchemaNewValue
    - xmlSchemaTypeErrMemory
    - xmlValidateQName
    - xmlSplitQName2
    - xmlSchemaCheckLanguageType
    - xmlAddIDSafe
    - xmlSchemaValidateDates
    - xmlGetDocEntity
    - xmlStrdup
    - xmlAddRef
    - xmlSchemaValAtomicListNode
    - xmlSchemaValDecimalCompareWithInteger
    - snprintf
    - IS_WSP_BLANK_CH
    - xmlMalloc
    - xmlGetDtdNotationDesc
    - xmlValidateNMToken
    - xmlFree
    - xmlParseURI
    - memset
    - xmlSchemaCollapseString
    - xmlSchemaInitTypes
    - xmlValidateName
    - xmlSchemaFreeValue
    - sscanf
    - xmlValidateNCName
    - _xmlSchemaBase64Decode
    - xmlSchemaValidateDuration
    - IS_BLANK_CH
    - xmlSearchNs
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar
      * value, xmlSchemaValPtr * val, xmlNodePtr node, int flags,\t\t xmlSchemaWhitespaceValueType
      ws,\t\t int normOnTheFly, int applyNorm, int createStringValue) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DAY_IN_YEAR
      Src: /src/libxml2/xmlschemastypes.c:4089,1
    - Dst: DAY_IN_YEAR
      Src: /src/libxml2/xmlschemastypes.c:4094,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 1
    argNames:
    - dt
    argTypes:
    - xmlSchemaValPtr
    constantsTouched: []
    func_position:
      end: 4097
      start: 4076
    functionDepth: 0
    functionLinenumber: 4076
    functionLinenumberEnd: 4097
    functionName: _xmlSchemaDateCastYMToDays
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - DAY_IN_YEAR
    linkageType: ''
    returnType: long
    signature: 'static long _xmlSchemaDateCastYMToDays (const xmlSchemaValPtr dt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaValidateFacetInternal
      Src: /src/libxml2/xmlschemastypes.c:5699,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 6
    argNames:
    - facet
    - fws
    - valType
    - value
    - val
    - ws
    argTypes:
    - xmlSchemaFacet*
    - xmlSchemaWhitespaceValueType
    - xmlSchemaValType
    - xmlChar*
    - xmlSchemaVal*
    - xmlSchemaWhitespaceValueType
    constantsTouched: []
    func_position:
      end: 5701
      start: 5691
    functionDepth: 0
    functionLinenumber: 5691
    functionLinenumberEnd: 5701
    functionName: xmlSchemaValidateFacetWhtsp
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaValidateFacetInternal
    linkageType: ''
    returnType: int
    signature: "int xmlSchemaValidateFacetWhtsp(xmlSchemaFacet *facet,\t\t\t xmlSchemaWhitespaceValueType
      fws,\t\t\t xmlSchemaValType valType,\t\t\t const xmlChar *value,\t\t\t xmlSchemaVal
      *val,\t\t\t xmlSchemaWhitespaceValueType ws) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsDigit_ch
      Src: /src/libxml2/xmlschemastypes.c:2373,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 1
    argNames:
    - value
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2389
      start: 2362
    functionDepth: 0
    functionLinenumber: 2362
    functionLinenumberEnd: 2389
    functionName: xmlSchemaCheckLanguageType
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlIsDigit_ch
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaCheckLanguageType(const xmlChar* value) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4623
      start: 4608
    functionDepth: 0
    functionLinenumber: 4608
    functionLinenumberEnd: 4623
    functionName: (*x)
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: IS_WSP_BLANK_CH
    signature: 'IS_WSP_BLANK_CH (*x) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaDupVal
      Src: /src/libxml2/xmlschemastypes.c:4048,1
    - Dst: _xmlSchemaDateAdd
      Src: /src/libxml2/xmlschemastypes.c:4056,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4058,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:4050,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - dt
    - offset
    argTypes:
    - xmlSchemaValPtr
    - double
    constantsTouched: []
    func_position:
      end: 4065
      start: 4037
    functionDepth: 0
    functionLinenumber: 4037
    functionLinenumberEnd: 4065
    functionName: xmlSchemaDateNormalize
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaDupVal
    - _xmlSchemaDateAdd
    - xmlSchemaFreeValue
    - xmlSchemaNewValue
    linkageType: ''
    returnType: xmlSchemaValPtr
    signature: 'static xmlSchemaValPtr xmlSchemaDateNormalize (xmlSchemaValPtr dt,
      double offset) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaValidateFacetInternal
      Src: /src/libxml2/xmlschemastypes.c:5666,1
    - Dst: xmlSchemaValidateFacetInternal
      Src: /src/libxml2/xmlschemastypes.c:5670,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 4
    argNames:
    - base
    - facet
    - value
    - val
    argTypes:
    - xmlSchemaType*
    - xmlSchemaFacet*
    - xmlChar*
    - xmlSchemaVal*
    constantsTouched: []
    func_position:
      end: 5674
      start: 5654
    functionDepth: 0
    functionLinenumber: 5654
    functionLinenumberEnd: 5674
    functionName: xmlSchemaValidateFacet
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaValidateFacetInternal
    linkageType: ''
    returnType: int
    signature: "int xmlSchemaValidateFacet(xmlSchemaType *base,\t xmlSchemaFacet *facet,\t
      const xmlChar *value,\t\t xmlSchemaVal *val) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PARSE_2_DIGITS
      Src: /src/libxml2/xmlschemastypes.c:1535,1
    - Dst: VALID_DAY
      Src: /src/libxml2/xmlschemastypes.c:1539,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - dt
    - str
    argTypes:
    - xmlSchemaValDatePtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1545
      start: 1529
    functionDepth: 0
    functionLinenumber: 1529
    functionLinenumberEnd: 1545
    functionName: _xmlSchemaParseGDay
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - PARSE_2_DIGITS
    - VALID_DAY
    linkageType: ''
    returnType: int
    signature: 'static int _xmlSchemaParseGDay (xmlSchemaValDatePtr dt, const xmlChar
      **str) '
  - BBCount: 71
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4147,1
    - Dst: _xmlSchemaDateCastYMToDays
      Src: /src/libxml2/xmlschemastypes.c:4143,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4153,1
    - Dst: TIME_TO_NUMBER
      Src: /src/libxml2/xmlschemastypes.c:4159,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4169,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4184,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4218,1
    - Dst: _xmlSchemaDateCastYMToDays
      Src: /src/libxml2/xmlschemastypes.c:4229,1
    - Dst: _xmlSchemaDateCastYMToDays
      Src: /src/libxml2/xmlschemastypes.c:4260,1
    - Dst: _xmlSchemaDateCastYMToDays
      Src: /src/libxml2/xmlschemastypes.c:4267,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4247,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4284,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4264,1
    - Dst: xmlSchemaDateNormalize
      Src: /src/libxml2/xmlschemastypes.c:4140,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4161,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4183,1
    - Dst: _xmlSchemaDateCastYMToDays
      Src: /src/libxml2/xmlschemastypes.c:4198,1
    - Dst: xmlSchemaDateNormalize
      Src: /src/libxml2/xmlschemastypes.c:4201,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4210,1
    - Dst: TIME_TO_NUMBER
      Src: /src/libxml2/xmlschemastypes.c:4215,1
    - Dst: xmlSchemaDateNormalize
      Src: /src/libxml2/xmlschemastypes.c:4223,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4225,1
    - Dst: TIME_TO_NUMBER
      Src: /src/libxml2/xmlschemastypes.c:4234,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4248,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4240,1
    - Dst: xmlSchemaDateNormalize
      Src: /src/libxml2/xmlschemastypes.c:4257,1
    - Dst: xmlSchemaDateNormalize
      Src: /src/libxml2/xmlschemastypes.c:4145,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4154,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4170,1
    - Dst: _xmlSchemaDateCastYMToDays
      Src: /src/libxml2/xmlschemastypes.c:4173,1
    - Dst: _xmlSchemaDateCastYMToDays
      Src: /src/libxml2/xmlschemastypes.c:4206,1
    - Dst: TIME_TO_NUMBER
      Src: /src/libxml2/xmlschemastypes.c:4215,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4217,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4241,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4242,1
    - Dst: xmlSchemaDateNormalize
      Src: /src/libxml2/xmlschemastypes.c:4262,1
    - Dst: TIME_TO_NUMBER
      Src: /src/libxml2/xmlschemastypes.c:4276,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4203,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4283,1
    - Dst: TIME_TO_NUMBER
      Src: /src/libxml2/xmlschemastypes.c:4276,1
    - Dst: TIME_TO_NUMBER
      Src: /src/libxml2/xmlschemastypes.c:4234,1
    - Dst: _xmlSchemaDateCastYMToDays
      Src: /src/libxml2/xmlschemastypes.c:4151,1
    - Dst: TIME_TO_NUMBER
      Src: /src/libxml2/xmlschemastypes.c:4159,1
    - Dst: xmlSchemaDateNormalize
      Src: /src/libxml2/xmlschemastypes.c:4167,1
    - Dst: TIME_TO_NUMBER
      Src: /src/libxml2/xmlschemastypes.c:4177,1
    - Dst: TIME_TO_NUMBER
      Src: /src/libxml2/xmlschemastypes.c:4177,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4162,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4185,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4190,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4191,1
    - Dst: xmlSchemaDateNormalize
      Src: /src/libxml2/xmlschemastypes.c:4195,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4226,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4209,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 220
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - xmlSchemaValPtr
    - xmlSchemaValPtr
    constantsTouched: []
    func_position:
      end: 4400
      start: 4119
    functionDepth: 0
    functionLinenumber: 4119
    functionLinenumberEnd: 4400
    functionName: xmlSchemaCompareDates
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaDateNormalize
    - xmlSchemaFreeValue
    - _xmlSchemaDateCastYMToDays
    - TIME_TO_NUMBER
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaCompareDates (xmlSchemaValPtr x, xmlSchemaValPtr
      y) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/libxml2/xmlschemastypes.c:5191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - facet
    argTypes:
    - xmlSchemaFacet*
    constantsTouched: []
    func_position:
      end: 5192
      start: 5182
    functionDepth: 0
    functionLinenumber: 5182
    functionLinenumberEnd: 5192
    functionName: xmlSchemaGetFacetValueAsULong
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - strtoul
    linkageType: ''
    returnType: unsigned long
    signature: 'unsigned long xmlSchemaGetFacetValueAsULong(xmlSchemaFacet *facet) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PARSE_2_DIGITS
      Src: /src/libxml2/xmlschemastypes.c:1634,1
    - Dst: VALID_HOUR
      Src: /src/libxml2/xmlschemastypes.c:1637,1
    - Dst: VALID_TZO
      Src: /src/libxml2/xmlschemastypes.c:1656,1
    - Dst: PARSE_2_DIGITS
      Src: /src/libxml2/xmlschemastypes.c:1646,1
    - Dst: VALID_MIN
      Src: /src/libxml2/xmlschemastypes.c:1649,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 29
    argCount: 2
    argNames:
    - dt
    - str
    argTypes:
    - xmlSchemaValDatePtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1668
      start: 1606
    functionDepth: 0
    functionLinenumber: 1606
    functionLinenumberEnd: 1668
    functionName: _xmlSchemaParseTimeZone
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - VALID_HOUR
    - PARSE_2_DIGITS
    - VALID_TZO
    - VALID_MIN
    linkageType: ''
    returnType: int
    signature: 'static int _xmlSchemaParseTimeZone (xmlSchemaValDatePtr dt, const
      xmlChar **str) '
  - BBCount: 94
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCompareDecimals
      Src: /src/libxml2/xmlschemastypes.c:4845,1
    - Dst: xmlSchemaCompareDates
      Src: /src/libxml2/xmlschemastypes.c:4886,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemastypes.c:4941,1
    - Dst: xmlSchemaCompareDecimals
      Src: /src/libxml2/xmlschemastypes.c:4860,1
    - Dst: xmlSchemaCompareDurations
      Src: /src/libxml2/xmlschemastypes.c:4866,1
    - Dst: xmlSchemaComparePreserveReplaceStrings
      Src: /src/libxml2/xmlschemastypes.c:4946,1
    - Dst: xmlSchemaComparePreserveCollapseStrings
      Src: /src/libxml2/xmlschemastypes.c:4948,1
    - Dst: xmlSchemaComparePreserveReplaceStrings
      Src: /src/libxml2/xmlschemastypes.c:4953,1
    - Dst: xmlSchemaCompareReplacedStrings
      Src: /src/libxml2/xmlschemastypes.c:4955,1
    - Dst: xmlSchemaCompareReplaceCollapseStrings
      Src: /src/libxml2/xmlschemastypes.c:4957,1
    - Dst: xmlSchemaComparePreserveCollapseStrings
      Src: /src/libxml2/xmlschemastypes.c:4962,1
    - Dst: xmlSchemaCompareFloats
      Src: /src/libxml2/xmlschemastypes.c:4991,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/xmlschemastypes.c:5026,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemastypes.c:4980,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/xmlschemastypes.c:5009,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemastypes.c:4979,1
    - Dst: xmlSchemaCompareReplaceCollapseStrings
      Src: /src/libxml2/xmlschemastypes.c:4964,1
    - Dst: xmlSchemaCompareNormStrings
      Src: /src/libxml2/xmlschemastypes.c:4966,1
    CyclomaticComplexity: 141
    EdgeCount: 141
    ICount: 164
    argCount: 8
    argNames:
    - xtype
    - x
    - xvalue
    - xws
    - ytype
    - y
    - yvalue
    - yws
    argTypes:
    - xmlSchemaValType
    - xmlSchemaValPtr
    - xmlChar*
    - xmlSchemaWhitespaceValueType
    - xmlSchemaValType
    - xmlSchemaValPtr
    - xmlChar*
    - xmlSchemaWhitespaceValueType
    constantsTouched: []
    func_position:
      end: 5048
      start: 4814
    functionDepth: 0
    functionLinenumber: 4814
    functionLinenumberEnd: 5048
    functionName: xmlSchemaCompareValuesInternal
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaComparePreserveCollapseStrings
    - xmlSchemaCompareDates
    - xmlSchemaCompareReplacedStrings
    - xmlSchemaCompareReplaceCollapseStrings
    - xmlSchemaCompareNormStrings
    - xmlSchemaCompareDurations
    - xmlStrEqual
    - xmlSchemaCompareDecimals
    - xmlSchemaCompareFloats
    - xmlSchemaComparePreserveReplaceStrings
    - xmlStrcmp
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCompareValuesInternal(xmlSchemaValType xtype,\t\t\t
      xmlSchemaValPtr x,\t\t\t const xmlChar *xvalue,\t\t\t xmlSchemaWhitespaceValueType
      xws,\t\t\t xmlSchemaValType ytype,\t\t\t xmlSchemaValPtr y,\t\t\t const xmlChar
      *yvalue,\t\t\t xmlSchemaWhitespaceValueType yws) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PARSE_2_DIGITS
      Src: /src/libxml2/xmlschemastypes.c:1563,1
    - Dst: VALID_HOUR
      Src: /src/libxml2/xmlschemastypes.c:1568,1
    - Dst: PARSE_FLOAT
      Src: /src/libxml2/xmlschemastypes.c:1586,1
    - Dst: PARSE_2_DIGITS
      Src: /src/libxml2/xmlschemastypes.c:1575,1
    - Dst: VALID_MIN
      Src: /src/libxml2/xmlschemastypes.c:1578,1
    - Dst: VALID_TIME
      Src: /src/libxml2/xmlschemastypes.c:1590,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 2
    argNames:
    - dt
    - str
    argTypes:
    - xmlSchemaValDatePtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1595
      start: 1557
    functionDepth: 0
    functionLinenumber: 1557
    functionLinenumberEnd: 1595
    functionName: _xmlSchemaParseTime
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - PARSE_FLOAT
    - PARSE_2_DIGITS
    - VALID_HOUR
    - VALID_MIN
    - VALID_TIME
    linkageType: ''
    returnType: int
    signature: 'static int _xmlSchemaParseTime (xmlSchemaValDatePtr dt, const xmlChar
      **str) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IS_WSP_SPACE_CH
      Src: /src/libxml2/xmlschemastypes.c:4496,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4519
      start: 4495
    functionDepth: 0
    functionLinenumber: 4495
    functionLinenumberEnd: 4519
    functionName: (*y)
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - IS_WSP_SPACE_CH
    linkageType: ''
    returnType: IS_WSP_BLANK_CH
    signature: 'IS_WSP_BLANK_CH (*y) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IS_WSP_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:4584,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4607
      start: 4583
    functionDepth: 0
    functionLinenumber: 4583
    functionLinenumberEnd: 4607
    functionName: (*y)
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - IS_WSP_BLANK_CH
    linkageType: ''
    returnType: IS_WSP_BLANK_CH
    signature: 'IS_WSP_BLANK_CH (*y) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/libxml2/xmlschemastypes.c:4778,1
    - Dst: isnan
      Src: /src/libxml2/xmlschemastypes.c:4779,1
    - Dst: isnan
      Src: /src/libxml2/xmlschemastypes.c:4783,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - xmlSchemaValPtr
    - xmlSchemaValPtr
    constantsTouched: []
    func_position:
      end: 4798
      start: 4751
    functionDepth: 0
    functionLinenumber: 4751
    functionLinenumberEnd: 4798
    functionName: xmlSchemaCompareFloats
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - isnan
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaCompareFloats(xmlSchemaValPtr x, xmlSchemaValPtr
      y) '
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - xmlSchemaValPtr
    - xmlSchemaValPtr
    constantsTouched: []
    func_position:
      end: 3741
      start: 3659
    functionDepth: 0
    functionLinenumber: 3659
    functionLinenumberEnd: 3741
    functionName: xmlSchemaCompareDurations
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaCompareDurations(xmlSchemaValPtr x, xmlSchemaValPtr
      y) '
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemastypes.c:266,1
    - Dst: xmlSchemaTypeErrMemory
      Src: /src/libxml2/xmlschemastypes.c:268,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxml2/xmlschemastypes.c:323,1
    - Dst: xmlSchemaNewMinLengthFacet
      Src: /src/libxml2/xmlschemastypes.c:316,1
    - Dst: memset
      Src: /src/libxml2/xmlschemastypes.c:271,1
    - Dst: xmlSchemaFreeType
      Src: /src/libxml2/xmlschemastypes.c:325,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 25
    argCount: 3
    argNames:
    - name
    - type
    - baseType
    argTypes:
    - char*
    - xmlSchemaValType
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 330
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 330
    functionName: xmlSchemaInitBasicType
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlHashAddEntry2
    - memset
    - xmlSchemaNewMinLengthFacet
    - xmlSchemaTypeErrMemory
    - xmlSchemaFreeType
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchemaTypePtr
    signature: "static xmlSchemaTypePtr xmlSchemaInitBasicType(const char *name, xmlSchemaValType
      type,\t\t xmlSchemaTypePtr baseType) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlSchemaVal*
    constantsTouched: []
    func_position:
      end: 1096
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1096
    functionName: xmlSchemaValueGetNext
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlSchemaVal*
    signature: 'xmlSchemaVal *xmlSchemaValueGetNext(xmlSchemaVal *cur) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlSchemaVal*
    constantsTouched: []
    func_position:
      end: 1142
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1142
    functionName: xmlSchemaValueGetAsBoolean
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlSchemaValueGetAsBoolean(xmlSchemaVal *val) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaValPredefTypeNode
      Src: /src/libxml2/xmlschemastypes.c:3626,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - type
    - value
    - val
    argTypes:
    - xmlSchemaType*
    - xmlChar*
    - xmlSchemaVal**
    constantsTouched: []
    func_position:
      end: 3627
      start: 3623
    functionDepth: 0
    functionLinenumber: 3623
    functionLinenumberEnd: 3627
    functionName: xmlSchemaValidatePredefinedType
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaValPredefTypeNode
    linkageType: ''
    returnType: int
    signature: "int xmlSchemaValidatePredefinedType(xmlSchemaType *type, const xmlChar
      *value,\t xmlSchemaVal **val) "
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaDupVal
      Src: /src/libxml2/xmlschemastypes.c:3902,1
    - Dst: MODULO_RANGE
      Src: /src/libxml2/xmlschemastypes.c:3926,1
    - Dst: MAX_DAYINMONTH
      Src: /src/libxml2/xmlschemastypes.c:3966,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:3904,1
    - Dst: FQUOTIENT
      Src: /src/libxml2/xmlschemastypes.c:3944,1
    - Dst: FQUOTIENT
      Src: /src/libxml2/xmlschemastypes.c:3957,1
    - Dst: VALID_YEAR
      Src: /src/libxml2/xmlschemastypes.c:3990,1
    - Dst: MODULO_RANGE
      Src: /src/libxml2/xmlschemastypes.c:3976,1
    - Dst: VALID_MONTH
      Src: /src/libxml2/xmlschemastypes.c:3964,1
    - Dst: MAX_DAYINMONTH
      Src: /src/libxml2/xmlschemastypes.c:3965,1
    - Dst: MAX_DAYINMONTH
      Src: /src/libxml2/xmlschemastypes.c:3992,1
    - Dst: MODULO
      Src: /src/libxml2/xmlschemastypes.c:3956,1
    - Dst: VALID_YEAR
      Src: /src/libxml2/xmlschemastypes.c:3964,1
    - Dst: FQUOTIENT_RANGE
      Src: /src/libxml2/xmlschemastypes.c:3977,1
    - Dst: MAX_DAYINMONTH
      Src: /src/libxml2/xmlschemastypes.c:3988,1
    - Dst: VALID_MONTH
      Src: /src/libxml2/xmlschemastypes.c:3990,1
    - Dst: MODULO_RANGE
      Src: /src/libxml2/xmlschemastypes.c:3998,1
    - Dst: FQUOTIENT_RANGE
      Src: /src/libxml2/xmlschemastypes.c:3999,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:3897,1
    - Dst: FQUOTIENT_RANGE
      Src: /src/libxml2/xmlschemastypes.c:3927,1
    - Dst: MODULO
      Src: /src/libxml2/xmlschemastypes.c:3946,1
    - Dst: MODULO
      Src: /src/libxml2/xmlschemastypes.c:3951,1
    - Dst: FQUOTIENT
      Src: /src/libxml2/xmlschemastypes.c:3952,1
    - Dst: MAX_DAYINMONTH
      Src: /src/libxml2/xmlschemastypes.c:3991,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:4024,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 120
    argCount: 2
    argNames:
    - dt
    - dur
    argTypes:
    - xmlSchemaValPtr
    - xmlSchemaValPtr
    constantsTouched: []
    func_position:
      end: 4027
      start: 3886
    functionDepth: 0
    functionLinenumber: 3886
    functionLinenumberEnd: 4027
    functionName: _xmlSchemaDateAdd
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - VALID_MONTH
    - FQUOTIENT
    - xmlSchemaNewValue
    - xmlSchemaDupVal
    - MODULO
    - MAX_DAYINMONTH
    - FQUOTIENT_RANGE
    - VALID_YEAR
    - xmlSchemaFreeValue
    - MODULO_RANGE
    linkageType: ''
    returnType: xmlSchemaValPtr
    signature: 'static xmlSchemaValPtr _xmlSchemaDateAdd (xmlSchemaValPtr dt, xmlSchemaValPtr
      dur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - decimal
    argTypes:
    - xmlSchemaValDecimal*
    constantsTouched: []
    func_position:
      end: 337
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 337
    functionName: xmlSchemaValDecimalGetFractionalPart
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlSchemaValDecimalGetFractionalPart(const xmlSchemaValDecimal
      *decimal) '
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaDupVal
      Src: /src/libxml2/xmlschemastypes.c:3803,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:3816,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:3807,1
    - Dst: xmlSchemaDupVal
      Src: /src/libxml2/xmlschemastypes.c:3811,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:3819,1
    - Dst: xmlSchemaDupVal
      Src: /src/libxml2/xmlschemastypes.c:3822,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:3826,1
    - Dst: xmlSchemaDupVal
      Src: /src/libxml2/xmlschemastypes.c:3829,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:3834,1
    - Dst: xmlSchemaDupVal
      Src: /src/libxml2/xmlschemastypes.c:3850,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:3854,1
    - Dst: xmlSchemaDupVal
      Src: /src/libxml2/xmlschemastypes.c:3857,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:3872,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 46
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlSchemaVal*
    constantsTouched: []
    func_position:
      end: 3874
      start: 3776
    functionDepth: 0
    functionLinenumber: 3776
    functionLinenumberEnd: 3874
    functionName: xmlSchemaCopyValue
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaDupVal
    - xmlStrdup
    - xmlSchemaFreeValue
    linkageType: ''
    returnType: xmlSchemaVal*
    signature: 'xmlSchemaVal *xmlSchemaCopyValue(xmlSchemaVal *val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:3761,1
    - Dst: memcpy
      Src: /src/libxml2/xmlschemastypes.c:3765,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - xmlSchemaValPtr
    constantsTouched: []
    func_position:
      end: 3768
      start: 3758
    functionDepth: 0
    functionLinenumber: 3758
    functionLinenumberEnd: 3768
    functionName: xmlSchemaDupVal
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - memcpy
    - xmlSchemaNewValue
    linkageType: ''
    returnType: xmlSchemaValPtr
    signature: 'static xmlSchemaValPtr xmlSchemaDupVal (xmlSchemaValPtr v) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: IS_WSP_SPACE_CH
      Src: /src/libxml2/xmlschemastypes.c:4496,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 18
    argCount: 3
    argNames:
    - x
    - y
    - invert
    argTypes:
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 4534
      start: 4481
    functionDepth: 0
    functionLinenumber: 4481
    functionLinenumberEnd: 4534
    functionName: xmlSchemaComparePreserveCollapseStrings
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - IS_WSP_SPACE_CH
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaComparePreserveCollapseStrings(const xmlChar *x,\t\t\t\t
      const xmlChar *y,\t\t\t\t\tint invert) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaValDecimalGetFractionalPart
      Src: /src/libxml2/xmlschemastypes.c:342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - decimal
    argTypes:
    - xmlSchemaValDecimal*
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 343
    functionName: xmlSchemaValDecimalIsInteger
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaValDecimalGetFractionalPart
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaValDecimalIsInteger(const xmlSchemaValDecimal
      *decimal) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - prev
    - cur
    argTypes:
    - xmlSchemaVal*
    - xmlSchemaVal*
    constantsTouched: []
    func_position:
      end: 1081
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1081
    functionName: xmlSchemaValueAppend
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlSchemaValueAppend(xmlSchemaVal *prev, xmlSchemaVal *cur) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: VALID_YEAR
      Src: /src/libxml2/xmlschemastypes.c:1442,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 33
    argCount: 2
    argNames:
    - dt
    - str
    argTypes:
    - xmlSchemaValDatePtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1447
      start: 1405
    functionDepth: 0
    functionLinenumber: 1405
    functionLinenumberEnd: 1447
    functionName: _xmlSchemaParseGYear
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - VALID_YEAR
    linkageType: ''
    returnType: int
    signature: 'static int _xmlSchemaParseGYear (xmlSchemaValDatePtr dt, const xmlChar
      **str) '
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - ch
    argTypes:
    - xmlChar
    constantsTouched: []
    func_position:
      end: 1685
      start: 1676
    functionDepth: 0
    functionLinenumber: 1676
    functionLinenumberEnd: 1685
    functionName: _xmlSchemaBase64Decode
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int _xmlSchemaBase64Decode (const xmlChar ch) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaValDecimalIsInteger
      Src: /src/libxml2/xmlschemastypes.c:348,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - decimal
    argTypes:
    - xmlSchemaValDecimal*
    constantsTouched: []
    func_position:
      end: 360
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 360
    functionName: xmlSchemaValDecimalGetSignificantDigitCount
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaValDecimalIsInteger
    linkageType: ''
    returnType: unsigned long
    signature: 'static unsigned long xmlSchemaValDecimalGetSignificantDigitCount(const
      xmlSchemaValDecimal *decimal) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_WSP_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:4670,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4676
      start: 4669
    functionDepth: 0
    functionLinenumber: 4669
    functionLinenumberEnd: 4676
    functionName: (*y)
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - IS_WSP_BLANK_CH
    linkageType: ''
    returnType: IS_WSP_BLANK_CH
    signature: 'IS_WSP_BLANK_CH (*y) '
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaInitTypes
      Src: /src/libxml2/xmlschemastypes.c:966,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - xmlSchemaValType
    constantsTouched: []
    func_position:
      end: 1065
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 1065
    functionName: xmlSchemaGetBuiltInType
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaInitTypes
    linkageType: ''
    returnType: xmlSchemaType*
    signature: 'xmlSchemaType *xmlSchemaGetBuiltInType(xmlSchemaValType type) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: IS_WSP_REPLACE_CH
      Src: /src/libxml2/xmlschemastypes.c:4422,1
    - Dst: IS_WSP_SPACE_CH
      Src: /src/libxml2/xmlschemastypes.c:4423,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 25
    argCount: 3
    argNames:
    - x
    - y
    - invert
    argTypes:
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 4467
      start: 4414
    functionDepth: 0
    functionLinenumber: 4414
    functionLinenumberEnd: 4467
    functionName: xmlSchemaComparePreserveReplaceStrings
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - IS_WSP_SPACE_CH
    - IS_WSP_REPLACE_CH
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaComparePreserveReplaceStrings(const xmlChar *x,\t\t\t\t
      const xmlChar *y,\t\t\t\t int invert) "
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetFacetValueAsULong
      Src: /src/libxml2/xmlschemastypes.c:5217,1
    - Dst: xmlSchemaGetFacetValueAsULong
      Src: /src/libxml2/xmlschemastypes.c:5219,1
    - Dst: xmlSchemaGetFacetValueAsULong
      Src: /src/libxml2/xmlschemastypes.c:5225,1
    - Dst: xmlSchemaGetFacetValueAsULong
      Src: /src/libxml2/xmlschemastypes.c:5223,1
    - Dst: xmlSchemaGetFacetValueAsULong
      Src: /src/libxml2/xmlschemastypes.c:5229,1
    - Dst: xmlSchemaGetFacetValueAsULong
      Src: /src/libxml2/xmlschemastypes.c:5231,1
    - Dst: xmlSchemaValidateFacet
      Src: /src/libxml2/xmlschemastypes.c:5240,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 4
    argNames:
    - facet
    - value
    - actualLen
    - expectedLen
    argTypes:
    - xmlSchemaFacet*
    - xmlChar*
    - unsigned long
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 5242
      start: 5204
    functionDepth: 0
    functionLinenumber: 5204
    functionLinenumberEnd: 5242
    functionName: xmlSchemaValidateListSimpleTypeFacet
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetFacetValueAsULong
    - xmlSchemaValidateFacet
    linkageType: ''
    returnType: int
    signature: "int xmlSchemaValidateListSimpleTypeFacet(xmlSchemaFacet *facet,\t\t\t\t
      const xmlChar *value,\t\t\t\t unsigned long actualLen,\t\t\t\t unsigned long
      *expectedLen) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:2147,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xmlschemastypes.c:2155,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:2152,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 16
    argCount: 1
    argNames:
    - value
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2156
      start: 2142
    functionDepth: 0
    functionLinenumber: 2142
    functionLinenumberEnd: 2156
    functionName: xmlSchemaStrip
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - IS_BLANK_CH
    - xmlStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlSchemaStrip(const xmlChar *value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4682
      start: 4677
    functionDepth: 0
    functionLinenumber: 4677
    functionLinenumberEnd: 4682
    functionName: (*x)
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: IS_WSP_BLANK_CH
    signature: 'IS_WSP_BLANK_CH (*x) '
  - BBCount: 27
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 48
    argCount: 2
    argNames:
    - type
    - facetType
    argTypes:
    - xmlSchemaType*
    - int
    constantsTouched: []
    func_position:
      end: 953
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 953
    functionName: xmlSchemaIsBuiltInTypeFacet
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlSchemaIsBuiltInTypeFacet(xmlSchemaType *type, int facetType) '
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: IS_WSP_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:1989,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:2003,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:2126,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:2132,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 104
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - duration
    - val
    - collapse
    argTypes:
    - xmlSchemaTypePtr
    - xmlChar*
    - xmlSchemaValPtr*
    - int
    constantsTouched: []
    func_position:
      end: 2134
      start: 1974
    functionDepth: 0
    functionLinenumber: 1974
    functionLinenumberEnd: 2134
    functionName: xmlSchemaValidateDuration
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - IS_WSP_BLANK_CH
    - xmlSchemaFreeValue
    - xmlSchemaNewValue
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaValidateDuration (xmlSchemaTypePtr type ATTRIBUTE_UNUSED,\t
      const xmlChar *duration, xmlSchemaValPtr *val,\t\t\t int collapse) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCleanupTypesInternal
      Src: /src/libxml2/xmlschemastypes.c:872,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 875
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 875
    functionName: xmlSchemaCleanupTypes
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaCleanupTypesInternal
    linkageType: ''
    returnType: void
    signature: 'void xmlSchemaCleanupTypes(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - xmlSchemaVal*
    constantsTouched: []
    func_position:
      end: 6103
      start: 6097
    functionDepth: 0
    functionLinenumber: 6097
    functionLinenumberEnd: 6103
    functionName: xmlSchemaGetValType
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlSchemaValType
    signature: 'xmlSchemaValType xmlSchemaGetValType(xmlSchemaVal *val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:1211,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - namespaceName
    - localName
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1218
      start: 1205
    functionDepth: 0
    functionLinenumber: 1205
    functionLinenumberEnd: 1218
    functionName: xmlSchemaNewQNameValue
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaNewValue
    linkageType: ''
    returnType: xmlSchemaVal*
    signature: "xmlSchemaVal *xmlSchemaNewQNameValue(const xmlChar *namespaceName,\t\t
      const xmlChar *localName) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCompareValuesInternal
      Src: /src/libxml2/xmlschemastypes.c:5100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 4
    argNames:
    - x
    - xws
    - y
    - yws
    argTypes:
    - xmlSchemaVal*
    - xmlSchemaWhitespaceValueType
    - xmlSchemaVal*
    - xmlSchemaWhitespaceValueType
    constantsTouched: []
    func_position:
      end: 5102
      start: 5092
    functionDepth: 0
    functionLinenumber: 5092
    functionLinenumberEnd: 5102
    functionName: xmlSchemaCompareValuesWhtsp
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaCompareValuesInternal
    linkageType: ''
    returnType: int
    signature: "int xmlSchemaCompareValuesWhtsp(xmlSchemaVal *x,\t\t\t xmlSchemaWhitespaceValueType
      xws,\t\t\t xmlSchemaVal *y,\t\t\t xmlSchemaWhitespaceValueType yws) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:1187,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - name
    - ns
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1195
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1195
    functionName: xmlSchemaNewNOTATIONValue
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaNewValue
    linkageType: ''
    returnType: xmlSchemaVal*
    signature: "xmlSchemaVal *xmlSchemaNewNOTATIONValue(const xmlChar *name,\t\t\t
      const xmlChar *ns) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCompareValuesInternal
      Src: /src/libxml2/xmlschemastypes.c:5078,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - xmlSchemaVal*
    - xmlSchemaVal*
    constantsTouched: []
    func_position:
      end: 5080
      start: 5058
    functionDepth: 0
    functionLinenumber: 5058
    functionLinenumberEnd: 5080
    functionName: xmlSchemaCompareValues
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaCompareValuesInternal
    linkageType: ''
    returnType: int
    signature: 'int xmlSchemaCompareValues(xmlSchemaVal *x, xmlSchemaVal *y) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/xmlschemastypes.c:373,1
    - Dst: strcmp
      Src: /src/libxml2/xmlschemastypes.c:374,1
    - Dst: strcmp
      Src: /src/libxml2/xmlschemastypes.c:401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - xmlSchemaValDecimal*
    - xmlSchemaValDecimal*
    constantsTouched: []
    func_position:
      end: 402
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 402
    functionName: xmlSchemaValDecimalCompare
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaValDecimalCompare(const xmlSchemaValDecimal *lhs,
      const xmlSchemaValDecimal *rhs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:410,1
    - Dst: xmlSchemaValDecimalCompare
      Src: /src/libxml2/xmlschemastypes.c:413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - xmlSchemaValDecimal*
    - long
    constantsTouched: []
    func_position:
      end: 414
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 414
    functionName: xmlSchemaValDecimalCompareWithInteger
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - snprintf
    - xmlSchemaValDecimalCompare
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaValDecimalCompareWithInteger(const xmlSchemaValDecimal
      *lhs, long rhs) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:5146,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:5164,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:5165,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 1
    argNames:
    - value
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5174
      start: 5138
    functionDepth: 0
    functionLinenumber: 5138
    functionLinenumberEnd: 5174
    functionName: xmlSchemaNormLen
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - IS_BLANK_CH
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaNormLen(const xmlChar *value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaValAtomicType
      Src: /src/libxml2/xmlschemastypes.c:3609,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 4
    argNames:
    - type
    - value
    - val
    - node
    argTypes:
    - xmlSchemaType*
    - xmlChar*
    - xmlSchemaVal**
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3611
      start: 3606
    functionDepth: 0
    functionLinenumber: 3606
    functionLinenumberEnd: 3611
    functionName: xmlSchemaValPredefTypeNodeNoNorm
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaValAtomicType
    linkageType: ''
    returnType: int
    signature: "int xmlSchemaValPredefTypeNodeNoNorm(xmlSchemaType *type, const xmlChar
      *value,\t\t\t\t xmlSchemaVal **val, xmlNode *node) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCompareValuesInternal
      Src: /src/libxml2/xmlschemastypes.c:5128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 8
    argNames:
    - xtype
    - x
    - xvalue
    - xws
    - ytype
    - y
    - yvalue
    - yws
    argTypes:
    - xmlSchemaValType
    - xmlSchemaValPtr
    - xmlChar*
    - xmlSchemaWhitespaceValueType
    - xmlSchemaValType
    - xmlSchemaValPtr
    - xmlChar*
    - xmlSchemaWhitespaceValueType
    constantsTouched: []
    func_position:
      end: 5130
      start: 5118
    functionDepth: 0
    functionLinenumber: 5118
    functionLinenumberEnd: 5130
    functionName: xmlSchemaCompareValuesWhtspExt
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaCompareValuesInternal
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCompareValuesWhtspExt(xmlSchemaValType xtype,\t\t\t
      xmlSchemaValPtr x,\t\t\t const xmlChar *xvalue,\t\t\t xmlSchemaWhitespaceValueType
      xws,\t\t\t xmlSchemaValType ytype,\t\t\t xmlSchemaValPtr y,\t\t\t const xmlChar
      *yvalue,\t\t\t xmlSchemaWhitespaceValueType yws) "
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemastypes.c:5471,1
    - Dst: xmlSchemaGetFacetValueAsULong
      Src: /src/libxml2/xmlschemastypes.c:5632,1
    - Dst: xmlSchemaValDecimalIsInteger
      Src: /src/libxml2/xmlschemastypes.c:5542,1
    - Dst: xmlSchemaGetFacetValueAsULong
      Src: /src/libxml2/xmlschemastypes.c:5596,1
    - Dst: xmlSchemaValDecimalIsInteger
      Src: /src/libxml2/xmlschemastypes.c:5632,1
    - Dst: xmlRegexpExec
      Src: /src/libxml2/xmlschemastypes.c:5457,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemastypes.c:5485,1
    - Dst: xmlSchemaCompareValuesWhtspExt
      Src: /src/libxml2/xmlschemastypes.c:5510,1
    - Dst: xmlSchemaNormLen
      Src: /src/libxml2/xmlschemastypes.c:5563,1
    - Dst: xmlUTF8Strlen
      Src: /src/libxml2/xmlschemastypes.c:5571,1
    - Dst: xmlSchemaGetFacetValueAsULong
      Src: /src/libxml2/xmlschemastypes.c:5594,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemastypes.c:5464,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemastypes.c:5478,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemastypes.c:5507,1
    - Dst: xmlUTF8Strlen
      Src: /src/libxml2/xmlschemastypes.c:5561,1
    - Dst: xmlSchemaNormLen
      Src: /src/libxml2/xmlschemastypes.c:5566,1
    - Dst: xmlSchemaGetFacetValueAsULong
      Src: /src/libxml2/xmlschemastypes.c:5591,1
    - Dst: xmlSchemaValDecimalIsInteger
      Src: /src/libxml2/xmlschemastypes.c:5607,1
    - Dst: xmlSchemaValDecimalGetSignificantDigitCount
      Src: /src/libxml2/xmlschemastypes.c:5628,1
    - Dst: xmlSchemaGetFacetValueAsULong
      Src: /src/libxml2/xmlschemastypes.c:5628,1
    - Dst: xmlSchemaNormLen
      Src: /src/libxml2/xmlschemastypes.c:5583,1
    CyclomaticComplexity: 99
    EdgeCount: 99
    ICount: 154
    argCount: 6
    argNames:
    - facet
    - fws
    - valType
    - value
    - val
    - ws
    argTypes:
    - xmlSchemaFacetPtr
    - xmlSchemaWhitespaceValueType
    - xmlSchemaValType
    - xmlChar*
    - xmlSchemaValPtr
    - xmlSchemaWhitespaceValueType
    constantsTouched: []
    func_position:
      end: 5642
      start: 5422
    functionDepth: 0
    functionLinenumber: 5422
    functionLinenumberEnd: 5642
    functionName: xmlSchemaValidateFacetInternal
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaCompareValues
    - xmlUTF8Strlen
    - xmlSchemaGetFacetValueAsULong
    - xmlSchemaCompareValuesWhtspExt
    - xmlSchemaNormLen
    - xmlSchemaValDecimalIsInteger
    - xmlStrEqual
    - xmlRegexpExec
    - xmlSchemaValDecimalGetSignificantDigitCount
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaValidateFacetInternal(xmlSchemaFacetPtr facet,\t\t\t
      xmlSchemaWhitespaceValueType fws,\t\t\t xmlSchemaValType valType,\t\t\t const
      xmlChar *value,\t\t\t xmlSchemaValPtr val,\t\t\t xmlSchemaWhitespaceValueType
      ws) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaValAtomicType
      Src: /src/libxml2/xmlschemastypes.c:3590,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 4
    argNames:
    - type
    - value
    - val
    - node
    argTypes:
    - xmlSchemaType*
    - xmlChar*
    - xmlSchemaVal**
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 3592
      start: 3587
    functionDepth: 0
    functionLinenumber: 3587
    functionLinenumberEnd: 3592
    functionName: xmlSchemaValPredefTypeNode
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaValAtomicType
    linkageType: ''
    returnType: int
    signature: "int xmlSchemaValPredefTypeNode(xmlSchemaType *type, const xmlChar
      *value,\t xmlSchemaVal **val, xmlNode *node) "
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:6065,1
    - Dst: xmlSchemaWhiteSpaceReplace
      Src: /src/libxml2/xmlschemastypes.c:6069,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:6075,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:6071,1
    - Dst: xmlSchemaCollapseString
      Src: /src/libxml2/xmlschemastypes.c:6067,1
    - Dst: xmlSchemaCollapseString
      Src: /src/libxml2/xmlschemastypes.c:6078,1
    - Dst: xmlSchemaWhiteSpaceReplace
      Src: /src/libxml2/xmlschemastypes.c:6080,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:6082,1
    - Dst: xmlSchemaGetCanonValue
      Src: /src/libxml2/xmlschemastypes.c:6086,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 34
    argCount: 3
    argNames:
    - val
    - retValue
    - ws
    argTypes:
    - xmlSchemaVal*
    - xmlChar**
    - xmlSchemaWhitespaceValueType
    constantsTouched: []
    func_position:
      end: 6089
      start: 6050
    functionDepth: 0
    functionLinenumber: 6050
    functionLinenumberEnd: 6089
    functionName: xmlSchemaGetCanonValueWhtsp
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlSchemaWhiteSpaceReplace
    - xmlSchemaGetCanonValue
    - xmlSchemaCollapseString
    linkageType: ''
    returnType: int
    signature: "int xmlSchemaGetCanonValueWhtsp(xmlSchemaVal *val,\t\t\t const xmlChar
      **retValue,\t\t\t xmlSchemaWhitespaceValueType ws) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaValidateLengthFacetInternal
      Src: /src/libxml2/xmlschemastypes.c:5406,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 6
    argNames:
    - facet
    - valType
    - value
    - val
    - length
    - ws
    argTypes:
    - xmlSchemaFacet*
    - xmlSchemaValType
    - xmlChar*
    - xmlSchemaVal*
    - unsigned long*
    - xmlSchemaWhitespaceValueType
    constantsTouched: []
    func_position:
      end: 5408
      start: 5398
    functionDepth: 0
    functionLinenumber: 5398
    functionLinenumberEnd: 5408
    functionName: xmlSchemaValidateLengthFacetWhtsp
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaValidateLengthFacetInternal
    linkageType: ''
    returnType: int
    signature: "int xmlSchemaValidateLengthFacetWhtsp(xmlSchemaFacet *facet,\t\t\t\t
      xmlSchemaValType valType,\t\t\t\t const xmlChar *value,\t\t\t\t xmlSchemaVal
      *val,\t\t\t\t unsigned long *length,\t\t\t\t xmlSchemaWhitespaceValueType ws) "
  - BBCount: 68
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:5741,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:5766,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemastypes.c:5770,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemastypes.c:5774,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:5811,1
    - Dst: labs
      Src: /src/libxml2/xmlschemastypes.c:5835,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:5784,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemastypes.c:5808,1
    - Dst: FQUOTIENT
      Src: /src/libxml2/xmlschemastypes.c:5835,1
    - Dst: FQUOTIENT
      Src: /src/libxml2/xmlschemastypes.c:5844,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:5854,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:6032,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:5891,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemastypes.c:5888,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:5958,1
    - Dst: xmlSchemaDateNormalize
      Src: /src/libxml2/xmlschemastypes.c:5916,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:5952,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:5922,1
    - Dst: xmlSchemaDateNormalize
      Src: /src/libxml2/xmlschemastypes.c:5973,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:6016,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:5732,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemastypes.c:5772,1
    - Dst: labs
      Src: /src/libxml2/xmlschemastypes.c:5836,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemastypes.c:5878,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:5929,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:5963,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:5979,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:5935,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:5984,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:5986,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:5956,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:5904,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:5862,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:5992,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:5736,1
    - Dst: xmlSchemaCollapseString
      Src: /src/libxml2/xmlschemastypes.c:5758,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:5761,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:5819,1
    - Dst: FQUOTIENT
      Src: /src/libxml2/xmlschemastypes.c:5838,1
    - Dst: fabs
      Src: /src/libxml2/xmlschemastypes.c:5838,1
    - Dst: fabs
      Src: /src/libxml2/xmlschemastypes.c:5839,1
    - Dst: FQUOTIENT
      Src: /src/libxml2/xmlschemastypes.c:5841,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:5852,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:5861,1
    - Dst: labs
      Src: /src/libxml2/xmlschemastypes.c:5901,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:6027,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:5996,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:6015,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:6028,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:5729,1
    - Dst: xmlSchemaWhiteSpaceReplace
      Src: /src/libxml2/xmlschemastypes.c:5738,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:5769,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:5817,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemastypes.c:5868,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:5871,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:5881,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:5900,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:5906,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemastypes.c:5927,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:6005,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:5849,1
    - Dst: xmlSchemaDateNormalize
      Src: /src/libxml2/xmlschemastypes.c:5945,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 169
    argCount: 2
    argNames:
    - val
    - retValue
    argTypes:
    - xmlSchemaVal*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 6038
      start: 5720
    functionDepth: 0
    functionLinenumber: 5720
    functionLinenumberEnd: 6038
    functionName: xmlSchemaGetCanonValue
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - labs
    - xmlSchemaDateNormalize
    - FQUOTIENT
    - fabs
    - xmlSchemaFreeValue
    - xmlSchemaWhiteSpaceReplace
    - xmlSchemaCollapseString
    - xmlStrdup
    - snprintf
    - xmlMalloc
    - xmlStrcat
    linkageType: ''
    returnType: int
    signature: 'int xmlSchemaGetCanonValue(xmlSchemaVal *val, const xmlChar **retValue) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/xmlschemastypes.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: xmlSchemaTypeErrMemory
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlRaiseMemoryError
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaTypeErrMemory(void) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: IS_WSP_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:4584,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 29
    argCount: 3
    argNames:
    - x
    - y
    - invert
    argTypes:
    - xmlChar*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 4651
      start: 4569
    functionDepth: 0
    functionLinenumber: 4569
    functionLinenumberEnd: 4651
    functionName: xmlSchemaCompareReplaceCollapseStrings
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - IS_WSP_BLANK_CH
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCompareReplaceCollapseStrings(const xmlChar *x,\t\t\t\t
      const xmlChar *y,\t\t\t\t int invert) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:2340,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:2349,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemastypes.c:2343,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 2
    argNames:
    - str
    - val
    argTypes:
    - xmlChar**
    - xmlSchemaValDecimalPtr
    constantsTouched: []
    func_position:
      end: 2353
      start: 2317
    functionDepth: 0
    functionLinenumber: 2317
    functionLinenumberEnd: 2353
    functionName: xmlSchemaParseUInt
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlFree
    - snprintf
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaParseUInt(const xmlChar **str, xmlSchemaValDecimalPtr
      val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaValidateLengthFacetInternal
      Src: /src/libxml2/xmlschemastypes.c:5380,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 5
    argNames:
    - type
    - facet
    - value
    - val
    - length
    argTypes:
    - xmlSchemaType*
    - xmlSchemaFacet*
    - xmlChar*
    - xmlSchemaVal*
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 5383
      start: 5371
    functionDepth: 0
    functionLinenumber: 5371
    functionLinenumberEnd: 5383
    functionName: xmlSchemaValidateLengthFacet
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaValidateLengthFacetInternal
    linkageType: ''
    returnType: int
    signature: "int xmlSchemaValidateLengthFacet(xmlSchemaType *type,\t\t\t xmlSchemaFacet
      *facet,\t\t\t const xmlChar *value,\t\t\t xmlSchemaVal *val,\t\t\t unsigned
      long *length) "
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaValDecimalIsInteger
      Src: /src/libxml2/xmlschemastypes.c:5282,1
    - Dst: xmlUTF8Strlen
      Src: /src/libxml2/xmlschemastypes.c:5312,1
    - Dst: xmlSchemaNormLen
      Src: /src/libxml2/xmlschemastypes.c:5304,1
    - Dst: xmlUTF8Strlen
      Src: /src/libxml2/xmlschemastypes.c:5302,1
    - Dst: xmlSchemaNormLen
      Src: /src/libxml2/xmlschemastypes.c:5307,1
    - Dst: xmlSchemaNormLen
      Src: /src/libxml2/xmlschemastypes.c:5327,1
    - Dst: xmlSchemaGetFacetValueAsULong
      Src: /src/libxml2/xmlschemastypes.c:5346,1
    - Dst: xmlSchemaGetFacetValueAsULong
      Src: /src/libxml2/xmlschemastypes.c:5349,1
    - Dst: xmlSchemaGetFacetValueAsULong
      Src: /src/libxml2/xmlschemastypes.c:5352,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 58
    argCount: 6
    argNames:
    - facet
    - valType
    - value
    - val
    - length
    - ws
    argTypes:
    - xmlSchemaFacetPtr
    - xmlSchemaValType
    - xmlChar*
    - xmlSchemaValPtr
    - unsigned long*
    - xmlSchemaWhitespaceValueType
    constantsTouched: []
    func_position:
      end: 5357
      start: 5257
    functionDepth: 0
    functionLinenumber: 5257
    functionLinenumberEnd: 5357
    functionName: xmlSchemaValidateLengthFacetInternal
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaNormLen
    - xmlSchemaValDecimalIsInteger
    - xmlUTF8Strlen
    - xmlSchemaGetFacetValueAsULong
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaValidateLengthFacetInternal(xmlSchemaFacetPtr
      facet,\t\t\t\t xmlSchemaValType valType,\t\t\t\t const xmlChar *value,\t\t\t\t
      xmlSchemaValPtr val,\t\t\t\t unsigned long *length,\t\t\t\t xmlSchemaWhitespaceValueType
      ws) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemastypes.c:215,1
    - Dst: memset
      Src: /src/libxml2/xmlschemastypes.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - xmlSchemaValType
    constantsTouched: []
    func_position:
      end: 222
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 222
    functionName: xmlSchemaNewValue
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchemaValPtr
    signature: 'static xmlSchemaValPtr xmlSchemaNewValue(xmlSchemaValType type) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaInitTypes
      Src: /src/libxml2/xmlschemastypes.c:1300,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/xmlschemastypes.c:1304,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 2
    argNames:
    - name
    - ns
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1305
      start: 1297
    functionDepth: 0
    functionLinenumber: 1297
    functionLinenumberEnd: 1305
    functionName: xmlSchemaGetPredefinedType
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlSchemaInitTypes
    - xmlHashLookup2
    linkageType: ''
    returnType: xmlSchemaType*
    signature: 'xmlSchemaType *xmlSchemaGetPredefinedType(const xmlChar *name, const
      xmlChar *ns) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemastypes.c:2262,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:2275,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:2282,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:2273,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemastypes.c:2278,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:2286,1
    - Dst: xmlSchemaValPredefTypeNode
      Src: /src/libxml2/xmlschemastypes.c:2293,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:2303,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 44
    argCount: 4
    argNames:
    - type
    - value
    - ret
    - node
    argTypes:
    - xmlSchemaTypePtr
    - xmlChar*
    - xmlSchemaValPtr*
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2307
      start: 2252
    functionDepth: 0
    functionLinenumber: 2252
    functionLinenumberEnd: 2307
    functionName: xmlSchemaValAtomicListNode
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - IS_BLANK_CH
    - xmlSchemaValPredefTypeNode
    - xmlFree
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaValAtomicListNode(xmlSchemaTypePtr type, const
      xmlChar *value,\t xmlSchemaValPtr *ret, xmlNodePtr node) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaNewFacet
      Src: /src/libxml2/xmlschemastypes.c:231,1
    - Dst: xmlSchemaNewValue
      Src: /src/libxml2/xmlschemastypes.c:236,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:241,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:238,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemastypes.c:243,1
    - Dst: xmlSchemaFreeFacet
      Src: /src/libxml2/xmlschemastypes.c:246,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemastypes.c:249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 253
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 253
    functionName: xmlSchemaNewMinLengthFacet
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaFreeFacet
    - xmlSchemaNewFacet
    - xmlSchemaNewValue
    - snprintf
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchemaFacetPtr
    signature: 'static xmlSchemaFacetPtr xmlSchemaNewMinLengthFacet(int value) '
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:1247,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:1252,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:1262,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:1258,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:1254,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:1279,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemastypes.c:1286,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 19
    argCount: 1
    argNames:
    - value
    argTypes:
    - xmlSchemaVal*
    constantsTouched: []
    func_position:
      end: 1288
      start: 1225
    functionDepth: 0
    functionLinenumber: 1225
    functionLinenumberEnd: 1288
    functionName: xmlSchemaFreeValue
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xmlSchemaFreeValue(xmlSchemaVal *value) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - xmlSchemaType*
    constantsTouched: []
    func_position:
      end: 1329
      start: 1314
    functionDepth: 0
    functionLinenumber: 1314
    functionLinenumberEnd: 1329
    functionName: xmlSchemaGetBuiltInListSimpleTypeItemType
    functionSourceFile: /src/libxml2/xmlschemastypes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlSchemaType*
    signature: 'xmlSchemaType *xmlSchemaGetBuiltInListSimpleTypeItemType(xmlSchemaType
      *type) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewAutomata
      Src: /src/libxml2/xmlschemas.c:12858,1
    - Dst: xmlSchemaBuildAContentModel
      Src: /src/libxml2/xmlschemas.c:12867,1
    - Dst: WXS_TYPE_PARTICLE
      Src: /src/libxml2/xmlschemas.c:12867,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:12860,1
    - Dst: xmlAutomataGetInitState
      Src: /src/libxml2/xmlschemas.c:12863,1
    - Dst: xmlAutomataSetFinalState
      Src: /src/libxml2/xmlschemas.c:12868,1
    - Dst: xmlAutomataCompile
      Src: /src/libxml2/xmlschemas.c:12869,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:12871,1
    - Dst: xmlRegexpIsDeterminist
      Src: /src/libxml2/xmlschemas.c:12875,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:12876,1
    - Dst: xmlFreeAutomata
      Src: /src/libxml2/xmlschemas.c:12884,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - type
    - ctxt
    argTypes:
    - xmlSchemaTypePtr
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 12886
      start: 12847
    functionDepth: 0
    functionLinenumber: 12847
    functionLinenumberEnd: 12886
    functionName: xmlSchemaBuildContentModel
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlRegexpIsDeterminist
    - xmlNewAutomata
    - xmlAutomataGetInitState
    - xmlSchemaPCustomErr
    - xmlFreeAutomata
    - xmlAutomataSetFinalState
    - xmlSchemaPErrMemory
    - xmlAutomataCompile
    - WXS_TYPE_PARTICLE
    - xmlSchemaBuildAContentModel
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaBuildContentModel(xmlSchemaTypePtr type,\t\t\t
      xmlSchemaParserCtxtPtr ctxt) "
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:19484,1
    - Dst: xmlSchemaCheckElementDeclConsistent
      Src: /src/libxml2/xmlschemas.c:19478,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:19495,1
    - Dst: WXS_PARTICLE_TERM_AS_ELEM
      Src: /src/libxml2/xmlschemas.c:19496,1
    - Dst: WXS_PARTICLE_TERM_AS_ELEM
      Src: /src/libxml2/xmlschemas.c:19512,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:19515,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:19546,1
    - Dst: WXS_PARTICLE_TERM_AS_ELEM
      Src: /src/libxml2/xmlschemas.c:19495,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:19511,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:19509,1
    - Dst: WXS_ELEM_CAST
      Src: /src/libxml2/xmlschemas.c:19484,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:19473,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:19497,1
    - Dst: WXS_PARTICLE_TERM_AS_ELEM
      Src: /src/libxml2/xmlschemas.c:19498,1
    - Dst: WXS_ITEM_TYPE_NAME
      Src: /src/libxml2/xmlschemas.c:19546,1
    - Dst: WXS_PARTICLE_TERM_AS_ELEM
      Src: /src/libxml2/xmlschemas.c:19513,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:19465,1
    - Dst: WXS_PARTICLE_TERM_AS_ELEM
      Src: /src/libxml2/xmlschemas.c:19497,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:19514,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 37
    argCount: 6
    argNames:
    - pctxt
    - ctxtComponent
    - ctxtParticle
    - searchParticle
    - curParticle
    - search
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaBasicItemPtr
    - xmlSchemaParticlePtr
    - xmlSchemaParticlePtr
    - xmlSchemaParticlePtr
    - int
    constantsTouched: []
    func_position:
      end: 19554
      start: 19450
    functionDepth: 0
    functionLinenumber: 19450
    functionLinenumberEnd: 19554
    functionName: xmlSchemaCheckElementDeclConsistent
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_ITEM_TYPE_NAME
    - WXS_PARTICLE_TERM_AS_ELEM
    - xmlSchemaCheckElementDeclConsistent
    - xmlSchemaGetComponentDesignation
    - xmlSchemaFormatQName
    - xmlStrEqual
    - FREE_AND_NULL
    - WXS_ELEM_CAST
    - WXS_PARTICLE_TERM
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckElementDeclConsistent(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t\t xmlSchemaBasicItemPtr ctxtComponent,\t\t\t\t xmlSchemaParticlePtr
      ctxtParticle,\t\t\t\t xmlSchemaParticlePtr searchParticle,\t\t\t\t xmlSchemaParticlePtr
      curParticle,\t\t\t\t int search) "
  - BBCount: 67
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:24840,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:24884,1
    - Dst: ACTIVATE_ATTRIBUTE
      Src: /src/libxml2/xmlschemas.c:25065,1
    - Dst: xmlSchemaNormalizeValue
      Src: /src/libxml2/xmlschemas.c:25127,1
    - Dst: xmlNewProp
      Src: /src/libxml2/xmlschemas.c:25133,1
    - Dst: xmlSearchNs
      Src: /src/libxml2/xmlschemas.c:25156,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25159,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:25194,1
    - Dst: xmlSchemaXPathProcessHistory
      Src: /src/libxml2/xmlschemas.c:25306,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:25353,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:25334,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:24827,1
    - Dst: xmlSchemaGetAttributeDecl
      Src: /src/libxml2/xmlschemas.c:24968,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25076,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemas.c:25155,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:25164,1
    - Dst: xmlNewNs
      Src: /src/libxml2/xmlschemas.c:25168,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:25180,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:25226,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25234,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:25280,1
    - Dst: xmlSchemaXPathPop
      Src: /src/libxml2/xmlschemas.c:25313,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:24838,1
    - Dst: xmlSchemaGetFreshAttrInfo
      Src: /src/libxml2/xmlschemas.c:24898,1
    - Dst: WXS_ATTR_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:24985,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:24986,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:25007,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:25008,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25108,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25135,1
    - Dst: xmlNewNsProp
      Src: /src/libxml2/xmlschemas.c:25177,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25308,1
    - Dst: ACTIVATE_ATTRIBUTE
      Src: /src/libxml2/xmlschemas.c:25326,1
    - Dst: xmlSchemaGetFreshAttrInfo
      Src: /src/libxml2/xmlschemas.c:24882,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:24900,1
    - Dst: xmlSchemaCheckCVCWildcardNamespace
      Src: /src/libxml2/xmlschemas.c:24942,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25101,1
    - Dst: xmlSchemaCopyValue
      Src: /src/libxml2/xmlschemas.c:25106,1
    - Dst: xmlSchemaXPathEvaluate
      Src: /src/libxml2/xmlschemas.c:25073,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:25138,1
    - Dst: xmlSearchNsByHref
      Src: /src/libxml2/xmlschemas.c:25144,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:25221,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:25294,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:25342,1
    CyclomaticComplexity: 103
    EdgeCount: 103
    ICount: 246
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 25382
      start: 24784
    functionDepth: 0
    functionLinenumber: 24784
    functionLinenumberEnd: 25382
    functionName: xmlSchemaVAttributesComplex
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaIsDerivedFromBuiltInType
    - xmlSchemaGetAttributeDecl
    - WXS_ATTRUSE_TYPEDEF
    - xmlSchemaNormalizeValue
    - xmlNewProp
    - WXS_ATTR_TYPEDEF
    - xmlNewNsProp
    - xmlSchemaXPathEvaluate
    - xmlSchemaXPathPop
    - VERROR
    - xmlSchemaCheckCVCWildcardNamespace
    - xmlSearchNsByHref
    - snprintf
    - xmlFree
    - WXS_ATTRUSE_DECL
    - xmlSchemaXPathProcessHistory
    - xmlSchemaCopyValue
    - xmlSchemaFreeValue
    - VERROR_INT
    - xmlNewNs
    - xmlSchemaFormatQName
    - xmlStrEqual
    - xmlSchemaVCheckCVCSimpleType
    - xmlSchemaAreValuesEqual
    - ACTIVATE_ATTRIBUTE
    - xmlSchemaGetFreshAttrInfo
    - xmlSearchNs
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaVAttributesComplex(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchemaValidCtxt*
    constantsTouched: []
    func_position:
      end: 27413
      start: 27405
    functionDepth: 0
    functionLinenumber: 27405
    functionLinenumberEnd: 27413
    functionName: xmlSchemaValidCtxtGetOptions
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlSchemaValidCtxtGetOptions(xmlSchemaValidCtxt *ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1263,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1264,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1272,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1265,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1270,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 3
    argNames:
    - buf
    - namespaceName
    - localName
    argTypes:
    - xmlChar**
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1275
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1275
    functionName: xmlSchemaFormatQName
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlStrcat
    linkageType: ''
    returnType: xmlChar*
    signature: "static const xmlChar *xmlSchemaFormatQName(xmlChar **buf,\t\t const
      xmlChar *namespaceName,\t\t const xmlChar *localName) "
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: xmlAutomataNewTransition2
      Src: /src/libxml2/xmlschemas.c:12479,1
    - Dst: xmlAutomataNewTransition2
      Src: /src/libxml2/xmlschemas.c:12486,1
    - Dst: xmlAutomataNewTransition2
      Src: /src/libxml2/xmlschemas.c:12522,1
    - Dst: xmlAutomataNewTransition2
      Src: /src/libxml2/xmlschemas.c:12529,1
    - Dst: xmlAutomataNewCounterTrans
      Src: /src/libxml2/xmlschemas.c:12541,1
    - Dst: xmlSchemaBuildContentModelForElement
      Src: /src/libxml2/xmlschemas.c:12551,1
    - Dst: xmlAutomataNewCounter
      Src: /src/libxml2/xmlschemas.c:12582,1
    - Dst: xmlSchemaBuildAContentModel
      Src: /src/libxml2/xmlschemas.c:12587,1
    - Dst: xmlAutomataNewCountedTrans
      Src: /src/libxml2/xmlschemas.c:12593,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12599,1
    - Dst: xmlAutomataNewState
      Src: /src/libxml2/xmlschemas.c:12723,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12738,1
    - Dst: xmlAutomataNewState
      Src: /src/libxml2/xmlschemas.c:12722,1
    - Dst: xmlSchemaBuildAContentModel
      Src: /src/libxml2/xmlschemas.c:12728,1
    - Dst: xmlAutomataNewCountTrans2
      Src: /src/libxml2/xmlschemas.c:12802,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12816,1
    - Dst: xmlSchemaBuildAContentModel
      Src: /src/libxml2/xmlschemas.c:12702,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12741,1
    - Dst: xmlAutomataNewTransition2
      Src: /src/libxml2/xmlschemas.c:12494,1
    - Dst: xmlAutomataNewNegTrans
      Src: /src/libxml2/xmlschemas.c:12501,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12524,1
    - Dst: xmlAutomataNewNegTrans
      Src: /src/libxml2/xmlschemas.c:12536,1
    - Dst: xmlAutomataNewState
      Src: /src/libxml2/xmlschemas.c:12515,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12578,1
    - Dst: xmlSchemaBuildAContentModel
      Src: /src/libxml2/xmlschemas.c:12663,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12678,1
    - Dst: xmlAutomataNewState
      Src: /src/libxml2/xmlschemas.c:12692,1
    - Dst: xmlAutomataNewCounter
      Src: /src/libxml2/xmlschemas.c:12638,1
    - Dst: xmlAutomataNewCountedTrans
      Src: /src/libxml2/xmlschemas.c:12735,1
    - Dst: xmlAutomataNewOnceTrans2
      Src: /src/libxml2/xmlschemas.c:12794,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12762,1
    - Dst: xmlAutomataNewCountedTrans
      Src: /src/libxml2/xmlschemas.c:12650,1
    - Dst: xmlAutomataNewCounterTrans
      Src: /src/libxml2/xmlschemas.c:12736,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12621,1
    - Dst: xmlAutomataNewCounterTrans
      Src: /src/libxml2/xmlschemas.c:12653,1
    - Dst: xmlAutomataNewAllTrans
      Src: /src/libxml2/xmlschemas.c:12814,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12624,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12634,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:12449,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12481,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12488,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12496,1
    - Dst: xmlAutomataNewCounter
      Src: /src/libxml2/xmlschemas.c:12514,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12520,1
    - Dst: xmlAutomataNewCountedTrans
      Src: /src/libxml2/xmlschemas.c:12540,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12531,1
    - Dst: xmlAutomataNewTransition2
      Src: /src/libxml2/xmlschemas.c:12518,1
    - Dst: xmlAutomataNewCounterTrans
      Src: /src/libxml2/xmlschemas.c:12596,1
    - Dst: xmlSchemaBuildAContentModel
      Src: /src/libxml2/xmlschemas.c:12609,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12731,1
    - Dst: WXS_ITEM_TYPE_NAME
      Src: /src/libxml2/xmlschemas.c:12835,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12705,1
    - Dst: xmlAutomataNewCounter
      Src: /src/libxml2/xmlschemas.c:12787,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:12769,1
    - Dst: xmlAutomataNewState
      Src: /src/libxml2/xmlschemas.c:12469,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12544,1
    - Dst: xmlSchemaBuildAContentModel
      Src: /src/libxml2/xmlschemas.c:12565,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12603,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12614,1
    - Dst: xmlSchemaBuildAContentModel
      Src: /src/libxml2/xmlschemas.c:12644,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12656,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12674,1
    - Dst: xmlAutomataNewCounter
      Src: /src/libxml2/xmlschemas.c:12721,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12734,1
    - Dst: xmlSchemaBuildContentModelForSubstGroup
      Src: /src/libxml2/xmlschemas.c:12789,1
    - Dst: xmlAutomataNewState
      Src: /src/libxml2/xmlschemas.c:12761,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 267
    argCount: 2
    argNames:
    - pctxt
    - particle
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaParticlePtr
    constantsTouched: []
    func_position:
      end: 12839
      start: 12442
    functionDepth: 0
    functionLinenumber: 12442
    functionLinenumberEnd: 12839
    functionName: xmlSchemaBuildAContentModel
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_ITEM_TYPE_NAME
    - xmlAutomataNewCounterTrans
    - xmlSchemaBuildContentModelForSubstGroup
    - xmlAutomataNewTransition2
    - xmlAutomataNewNegTrans
    - xmlAutomataNewAllTrans
    - xmlAutomataNewEpsilon
    - xmlAutomataNewCountTrans2
    - PERROR_INT
    - xmlAutomataNewState
    - xmlAutomataNewCountedTrans
    - xmlAutomataNewOnceTrans2
    - xmlSchemaBuildContentModelForElement
    - xmlAutomataNewCounter
    - xmlSchemaBuildAContentModel
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaBuildAContentModel(xmlSchemaParserCtxtPtr pctxt,\t\t\t
      xmlSchemaParticlePtr particle) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:14876,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:14883,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:14888,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:14892,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:14884,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:14892,1
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:14893,1
    - Dst: WXS_IS_ANY_SIMPLE_TYPE
      Src: /src/libxml2/xmlschemas.c:14894,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:14896,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:14901,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:14909,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:14910,1
    - Dst: xmlSchemaTypeFinalContains
      Src: /src/libxml2/xmlschemas.c:14921,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:14908,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:14908,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:14923,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:14928,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 2
    argNames:
    - ctxt
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 14942
      start: 14853
    functionDepth: 0
    functionLinenumber: 14853
    functionLinenumberEnd: 14942
    functionName: xmlSchemaCheckSTPropsCorrect
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPCustomErr
    - WXS_IS_UNION
    - WXS_IS_RESTRICTION
    - WXS_IS_LIST
    - WXS_IS_SIMPLE
    - xmlSchemaGetComponentQName
    - WXS_IS_ATOMIC
    - WXS_IS_ANY_SIMPLE_TYPE
    - xmlSchemaTypeFinalContains
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckSTPropsCorrect(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      xmlSchemaTypePtr type) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24757,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:24766,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24759,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24763,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:24769,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 24772
      start: 24745
    functionDepth: 0
    functionLinenumber: 24745
    functionLinenumberEnd: 24772
    functionName: xmlSchemaClearAttrInfos
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlSchemaFreeValue
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaClearAttrInfos(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ctxt
    - options
    argTypes:
    - xmlSchemaValidCtxt*
    - int
    constantsTouched: []
    func_position:
      end: 27397
      start: 27376
    functionDepth: 0
    functionLinenumber: 27376
    functionLinenumberEnd: 27397
    functionName: xmlSchemaSetValidOptions
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xmlSchemaSetValidOptions(xmlSchemaValidCtxt *ctxt,\t\t\t int options) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:15591,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:15637,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:15638,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:15636,1
    - Dst: WXS_IS_EXTENSION
      Src: /src/libxml2/xmlschemas.c:15592,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:15639,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:15649,1
    - Dst: xmlSchemaItemListRemove
      Src: /src/libxml2/xmlschemas.c:15653,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:15665,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:15666,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:15679,1
    - Dst: xmlSchemaItemListRemove
      Src: /src/libxml2/xmlschemas.c:15682,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:15681,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:15667,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 47
    argCount: 2
    argNames:
    - pctxt
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 15695
      start: 15578
    functionDepth: 0
    functionLinenumber: 15578
    functionLinenumberEnd: 15695
    functionName: xmlSchemaCheckCTPropsCorrect
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaIsDerivedFromBuiltInType
    - WXS_ATTRUSE_DECL_NAME
    - WXS_ATTRUSE_TYPEDEF
    - xmlSchemaItemListRemove
    - WXS_IS_SIMPLE
    - WXS_ATTRUSE_DECL_TNS
    - FREE_AND_NULL
    - xmlSchemaGetComponentDesignation
    - WXS_IS_EXTENSION
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckCTPropsCorrect(xmlSchemaParserCtxtPtr pctxt,\t\t\t
      xmlSchemaTypePtr type) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:17678,1
    - Dst: xmlSchemaFinishMemberTypeDefinitionsProperty
      Src: /src/libxml2/xmlschemas.c:17698,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:17685,1
    - Dst: xmlSchemaTypeFixup
      Src: /src/libxml2/xmlschemas.c:17690,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:17689,1
    - Dst: xmlSchemaCheckSTPropsCorrect
      Src: /src/libxml2/xmlschemas.c:17710,1
    - Dst: xmlSchemaCheckCOSSTRestricts
      Src: /src/libxml2/xmlschemas.c:17716,1
    - Dst: xmlSchemaCheckFacetValues
      Src: /src/libxml2/xmlschemas.c:17733,1
    - Dst: xmlSchemaDeriveAndValidateFacets
      Src: /src/libxml2/xmlschemas.c:17737,1
    - Dst: xmlSchemaTypeFixupWhitespace
      Src: /src/libxml2/xmlschemas.c:17743,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - pctxt
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 17754
      start: 17669
    functionDepth: 0
    functionLinenumber: 17669
    functionLinenumberEnd: 17754
    functionName: xmlSchemaFixupSimpleTypeStageTwo
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaTypeFixupWhitespace
    - xmlSchemaTypeFixup
    - xmlSchemaCheckSTPropsCorrect
    - WXS_IS_TYPE_NOT_FIXED
    - xmlSchemaDeriveAndValidateFacets
    - xmlSchemaCheckFacetValues
    - PERROR_INT
    - xmlSchemaFinishMemberTypeDefinitionsProperty
    - xmlSchemaCheckCOSSTRestricts
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaFixupSimpleTypeStageTwo(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t\t xmlSchemaTypePtr type) "
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:21456,1
    - Dst: xmlSchemaLookupNamespace
      Src: /src/libxml2/xmlschemas.c:21472,1
    - Dst: xmlValidateQName
      Src: /src/libxml2/xmlschemas.c:21460,1
    - Dst: xmlSplitQName2
      Src: /src/libxml2/xmlschemas.c:21467,1
    - Dst: xmlSearchNs
      Src: /src/libxml2/xmlschemas.c:21474,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21478,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21479,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21483,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21484,1
    - Dst: xmlSchemaGetNotation
      Src: /src/libxml2/xmlschemas.c:21487,1
    - Dst: xmlSchemaNewNOTATIONValue
      Src: /src/libxml2/xmlschemas.c:21489,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21497,1
    - Dst: xmlSchemaGetNotation
      Src: /src/libxml2/xmlschemas.c:21499,1
    - Dst: xmlSchemaNewNOTATIONValue
      Src: /src/libxml2/xmlschemas.c:21501,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:21502,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:21490,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21496,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:21489,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 6
    argNames:
    - vctxt
    - schema
    - node
    - value
    - val
    - valNeeded
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    - xmlChar*
    - xmlSchemaValPtr*
    - int
    constantsTouched: []
    func_position:
      end: 21511
      start: 21445
    functionDepth: 0
    functionLinenumber: 21445
    functionLinenumberEnd: 21511
    functionName: xmlSchemaValidateNotation
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaNewNOTATIONValue
    - xmlSchemaLookupNamespace
    - xmlStrdup
    - xmlValidateQName
    - xmlSplitQName2
    - xmlSearchNs
    - xmlSchemaGetNotation
    - VERROR_INT
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaValidateNotation(xmlSchemaValidCtxtPtr vctxt,\t\t\t
      xmlSchemaPtr schema,\t\t\t xmlNodePtr node,\t\t\t const xmlChar *value,\t\t\t
      xmlSchemaValPtr *val,\t\t\t int valNeeded) "
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderDepth
      Src: /src/libxml2/xmlschemas.c:26575,1
    - Dst: xmlTextReaderNodeType
      Src: /src/libxml2/xmlschemas.c:26576,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26595,1
    - Dst: xmlTextReaderValue
      Src: /src/libxml2/xmlschemas.c:26621,1
    - Dst: xmlTextReaderNamespaceUri
      Src: /src/libxml2/xmlschemas.c:26620,1
    - Dst: xmlTextReaderMoveToFirstAttribute
      Src: /src/libxml2/xmlschemas.c:26606,1
    - Dst: xmlTextReaderLocalName
      Src: /src/libxml2/xmlschemas.c:26619,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26639,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmlschemas.c:26662,1
    - Dst: xmlTextReaderDepth
      Src: /src/libxml2/xmlschemas.c:26663,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmlschemas.c:26734,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmlschemas.c:26560,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26582,1
    - Dst: xmlTextReaderLocalName
      Src: /src/libxml2/xmlschemas.c:26587,1
    - Dst: xmlTextReaderIsEmptyElement
      Src: /src/libxml2/xmlschemas.c:26593,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmlschemas.c:26568,1
    - Dst: xmlSchemaValidatorPushAttribute
      Src: /src/libxml2/xmlschemas.c:26618,1
    - Dst: xmlTextReaderMoveToNextAttribute
      Src: /src/libxml2/xmlschemas.c:26627,1
    - Dst: xmlTextReaderMoveToElement
      Src: /src/libxml2/xmlschemas.c:26637,1
    - Dst: xmlSchemaValidateElem
      Src: /src/libxml2/xmlschemas.c:26647,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmlschemas.c:26665,1
    - Dst: xmlTextReaderDepth
      Src: /src/libxml2/xmlschemas.c:26666,1
    - Dst: xmlSchemaValidatorPopElem
      Src: /src/libxml2/xmlschemas.c:26689,1
    - Dst: xmlSchemaVPushText
      Src: /src/libxml2/xmlschemas.c:26715,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:26718,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26692,1
    - Dst: xmlTextReaderNodeType
      Src: /src/libxml2/xmlschemas.c:26565,1
    - Dst: xmlSchemaValidatorPushElem
      Src: /src/libxml2/xmlschemas.c:26581,1
    - Dst: xmlTextReaderNamespaceUri
      Src: /src/libxml2/xmlschemas.c:26588,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26623,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26608,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26629,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26650,1
    - Dst: xmlTextReaderValue
      Src: /src/libxml2/xmlschemas.c:26714,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26720,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 130
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 26741
      start: 26552
    functionDepth: 0
    functionLinenumber: 26552
    functionLinenumberEnd: 26741
    functionName: xmlSchemaVReaderWalk
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaValidatorPushAttribute
    - xmlTextReaderIsEmptyElement
    - xmlTextReaderRead
    - xmlSchemaValidatorPushElem
    - xmlTextReaderLocalName
    - xmlSchemaVPushText
    - xmlTextReaderNamespaceUri
    - xmlTextReaderValue
    - xmlTextReaderMoveToNextAttribute
    - xmlTextReaderMoveToElement
    - xmlSchemaValidatorPopElem
    - xmlTextReaderDepth
    - xmlTextReaderNodeType
    - xmlTextReaderMoveToFirstAttribute
    - VERROR_INT
    - xmlSchemaValidateElem
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaVReaderWalk(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - typeA
    - typeB
    argTypes:
    - xmlSchemaTypePtr
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 15708
      start: 15697
    functionDepth: 0
    functionLinenumber: 15697
    functionLinenumberEnd: 15708
    functionName: xmlSchemaAreEqualTypes
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaAreEqualTypes(xmlSchemaTypePtr typeA,\t\t xmlSchemaTypePtr
      typeB) "
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:17767,1
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:17797,1
    - Dst: xmlSchemaTypeFixup
      Src: /src/libxml2/xmlschemas.c:17864,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:17927,1
    - Dst: xmlSchemaAddModelGroup
      Src: /src/libxml2/xmlschemas.c:17979,1
    - Dst: WXS_TYPE_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18052,1
    - Dst: WXS_TYPE_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18072,1
    - Dst: xmlSchemaAddModelGroup
      Src: /src/libxml2/xmlschemas.c:18104,1
    - Dst: xmlSchemaAddParticle
      Src: /src/libxml2/xmlschemas.c:18116,1
    - Dst: xmlSchemaFixupTypeAttributeUses
      Src: /src/libxml2/xmlschemas.c:18164,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:17795,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemas.c:17835,1
    - Dst: xmlSchemaAddType
      Src: /src/libxml2/xmlschemas.c:17837,1
    - Dst: xmlSchemaFixupSimpleTypeStageOne
      Src: /src/libxml2/xmlschemas.c:17869,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:17874,1
    - Dst: WXS_IS_EXTENSION
      Src: /src/libxml2/xmlschemas.c:17896,1
    - Dst: WXS_IS_EXTENSION
      Src: /src/libxml2/xmlschemas.c:17917,1
    - Dst: xmlSchemaAddParticle
      Src: /src/libxml2/xmlschemas.c:17971,1
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:18005,1
    - Dst: xmlSchemaAddParticle
      Src: /src/libxml2/xmlschemas.c:18096,1
    - Dst: WXS_TYPE_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18071,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:17763,1
    - Dst: xmlSchemaCheckSRCCT
      Src: /src/libxml2/xmlschemas.c:17786,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:17774,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:17896,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:17907,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:17917,1
    - Dst: xmlSchemaCheckCTComponent
      Src: /src/libxml2/xmlschemas.c:18171,1
    - Dst: xmlSchemaTypeFixup
      Src: /src/libxml2/xmlschemas.c:17775,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:17836,1
    - Dst: xmlSchemaAddType
      Src: /src/libxml2/xmlschemas.c:17841,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:17887,1
    - Dst: xmlSchemaFixupSimpleTypeStageTwo
      Src: /src/libxml2/xmlschemas.c:17871,1
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:17876,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:17863,1
    - Dst: WXS_TYPE_PARTICLE
      Src: /src/libxml2/xmlschemas.c:18050,1
    - Dst: WXS_TYPE_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18051,1
    - Dst: WXS_TYPE_PARTICLE
      Src: /src/libxml2/xmlschemas.c:18070,1
    - Dst: WXS_TYPE_CONTENTTYPE
      Src: /src/libxml2/xmlschemas.c:18108,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 170
    argCount: 2
    argNames:
    - pctxt
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 18186
      start: 17756
    functionDepth: 0
    functionLinenumber: 17756
    functionLinenumberEnd: 18186
    functionName: xmlSchemaFixupComplexType
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPCustomErr
    - WXS_IS_RESTRICTION
    - WXS_TYPE_CONTENTTYPE
    - xmlSchemaFixupTypeAttributeUses
    - xmlSchemaAddParticle
    - WXS_TYPE_PARTICLE
    - snprintf
    - WXS_IS_EXTENSION
    - WXS_IS_COMPLEX
    - xmlSchemaCheckCTComponent
    - xmlSchemaFixupSimpleTypeStageOne
    - xmlSchemaFixupSimpleTypeStageTwo
    - WXS_IS_TYPE_NOT_FIXED
    - xmlSchemaCheckSRCCT
    - PERROR_INT
    - xmlSchemaAddType
    - xmlDictLookup
    - xmlSchemaAddModelGroup
    - xmlSchemaTypeFixup
    - WXS_IS_SIMPLE
    - WXS_TYPE_PARTICLE_TERM
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaFixupComplexType(xmlSchemaParserCtxtPtr pctxt,\t\t\t
      xmlSchemaTypePtr type) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:21520,1
    - Dst: xmlSchemaItemListAdd
      Src: /src/libxml2/xmlschemas.c:21536,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21537,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:21524,1
    - Dst: xmlSchemaItemListAdd
      Src: /src/libxml2/xmlschemas.c:21540,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21542,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - vctxt
    - lname
    - nsname
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 21546
      start: 21513
    functionDepth: 0
    functionLinenumber: 21513
    functionLinenumberEnd: 21546
    functionName: xmlSchemaVAddNodeQName
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaVErrMemory
    - xmlSchemaItemListAdd
    - xmlDictLookup
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaVAddNodeQName(xmlSchemaValidCtxtPtr vctxt,\t\t
      const xmlChar* lname,\t\t const xmlChar* nsname) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:25480,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:25495,1
    - Dst: WXS_HAS_MIXED_CONTENT
      Src: /src/libxml2/xmlschemas.c:25491,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:25490,1
    - Dst: WXS_EMPTIABLE
      Src: /src/libxml2/xmlschemas.c:25492,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:25513,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:25515,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:25518,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:25520,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25524,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - vctxt
    - value
    - val
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlChar*
    - xmlSchemaValPtr*
    constantsTouched: []
    func_position:
      end: 25528
      start: 25466
    functionDepth: 0
    functionLinenumber: 25466
    functionLinenumberEnd: 25528
    functionName: xmlSchemaCheckCOSValidDefault
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_HAS_SIMPLE_CONTENT
    - VERROR
    - WXS_EMPTIABLE
    - WXS_HAS_MIXED_CONTENT
    - WXS_IS_SIMPLE
    - xmlSchemaVCheckCVCSimpleType
    - VERROR_INT
    - WXS_IS_COMPLEX
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckCOSValidDefault(xmlSchemaValidCtxtPtr vctxt,\t\t\t
      const xmlChar *value,\t\t\t xmlSchemaValPtr *val) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25395,1
    - Dst: xmlSchemaProcessXSIType
      Src: /src/libxml2/xmlschemas.c:25436,1
    - Dst: xmlSchemaGetElem
      Src: /src/libxml2/xmlschemas.c:25411,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:25420,1
    - Dst: xmlSchemaGetMetaAttrInfo
      Src: /src/libxml2/xmlschemas.c:25433,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25438,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:25455,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - vctxt
    - skip
    argTypes:
    - xmlSchemaValidCtxtPtr
    - int*
    constantsTouched: []
    func_position:
      end: 25457
      start: 25384
    functionDepth: 0
    functionLinenumber: 25384
    functionLinenumberEnd: 25457
    functionName: xmlSchemaValidateElemWildcard
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetBuiltInType
    - VERROR
    - xmlSchemaGetElem
    - xmlSchemaProcessXSIType
    - VERROR_INT
    - xmlSchemaGetMetaAttrInfo
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaValidateElemWildcard(xmlSchemaValidCtxtPtr vctxt,\t\t\t
      int *skip) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFormatItemForReport
      Src: /src/libxml2/xmlschemas.c:3096,1
    - Dst: xmlSchemaPErrExt
      Src: /src/libxml2/xmlschemas.c:3097,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:3100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 6
    argNames:
    - ctxt
    - error
    - ownerItem
    - attr
    - name1
    - name2
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlParserErrors
    - xmlSchemaBasicItemPtr
    - xmlAttrPtr
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3101
      start: 3086
    functionDepth: 0
    functionLinenumber: 3086
    functionLinenumberEnd: 3101
    functionName: xmlSchemaPMutualExclAttrErr
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPErrExt
    - xmlSchemaFormatItemForReport
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaPMutualExclAttrErr(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      xmlParserErrors error,\t\t\t xmlSchemaBasicItemPtr ownerItem,\t\t\t xmlAttrPtr
      attr,\t\t\t const char *name1,\t\t\t const char *name2) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:5374,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:5376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 5382
      start: 5368
    functionDepth: 0
    functionLinenumber: 5368
    functionLinenumberEnd: 5382
    functionName: xmlSchemaNewWildcardNsConstraint
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlMalloc
    - xmlSchemaPErrMemory
    linkageType: ''
    returnType: xmlSchemaWildcardNsPtr
    signature: 'static xmlSchemaWildcardNsPtr xmlSchemaNewWildcardNsConstraint(xmlSchemaParserCtxtPtr
      ctxt) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:14755,1
    - Dst: xmlSchemaGetType
      Src: /src/libxml2/xmlschemas.c:14761,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:14765,1
    - Dst: WXS_TYPE_CONTENTTYPE
      Src: /src/libxml2/xmlschemas.c:14783,1
    - Dst: xmlSchemaPResCompAttrErr
      Src: /src/libxml2/xmlschemas.c:14805,1
    - Dst: WXS_TYPE_PARTICLE
      Src: /src/libxml2/xmlschemas.c:14806,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:14806,1
    - Dst: WXS_TYPE_CONTENTTYPE
      Src: /src/libxml2/xmlschemas.c:14810,1
    - Dst: WXS_MODELGROUPDEF_MODEL
      Src: /src/libxml2/xmlschemas.c:14821,1
    - Dst: WXS_TYPE_CONTENTTYPE
      Src: /src/libxml2/xmlschemas.c:14813,1
    - Dst: xmlSchemaResolveUnionMemberTypes
      Src: /src/libxml2/xmlschemas.c:14753,1
    - Dst: xmlSchemaPResCompAttrErr
      Src: /src/libxml2/xmlschemas.c:14768,1
    - Dst: WXS_TYPE_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:14791,1
    - Dst: WXS_TYPE_CONTENTTYPE
      Src: /src/libxml2/xmlschemas.c:14784,1
    - Dst: WXS_TYPE_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:14787,1
    - Dst: WXS_TYPE_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:14786,1
    - Dst: WXS_MODELGROUPDEF_MODEL
      Src: /src/libxml2/xmlschemas.c:14811,1
    - Dst: WXS_MODELGROUPDEF_MODEL
      Src: /src/libxml2/xmlschemas.c:14819,1
    - Dst: WXS_TYPE_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:14797,1
    - Dst: xmlSchemaPResCompAttrErr
      Src: /src/libxml2/xmlschemas.c:14740,1
    - Dst: xmlSchemaGetNamedComponent
      Src: /src/libxml2/xmlschemas.c:14802,1
    - Dst: WXS_TYPE_PARTICLE
      Src: /src/libxml2/xmlschemas.c:14828,1
    - Dst: xmlSchemaGetType
      Src: /src/libxml2/xmlschemas.c:14737,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:14749,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:14748,1
    - Dst: WXS_TYPE_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:14819,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 67
    argCount: 2
    argNames:
    - typeDef
    - ctxt
    argTypes:
    - xmlSchemaTypePtr
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 14840
      start: 14726
    functionDepth: 0
    functionLinenumber: 14726
    functionLinenumberEnd: 14840
    functionName: xmlSchemaResolveTypeReferences
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPResCompAttrErr
    - xmlSchemaGetNamedComponent
    - WXS_IS_UNION
    - xmlSchemaResolveUnionMemberTypes
    - xmlSchemaGetType
    - WXS_MODELGROUPDEF_MODEL
    - WXS_TYPE_CONTENTTYPE
    - WXS_IS_LIST
    - WXS_IS_SIMPLE
    - WXS_TYPE_PARTICLE
    - WXS_TYPE_PARTICLE_TERM
    - WXS_ITEM_NODE
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaResolveTypeReferences(xmlSchemaTypePtr typeDef,\t\t\t
      xmlSchemaParserCtxtPtr ctxt) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:15800,1
    - Dst: xmlSchemaCheckCOSCTDerivedOK
      Src: /src/libxml2/xmlschemas.c:15803,1
    - Dst: xmlSchemaCheckCOSSTDerivedOK
      Src: /src/libxml2/xmlschemas.c:15801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - actxt
    - type
    - baseType
    - set
    argTypes:
    - xmlSchemaAbstractCtxtPtr
    - xmlSchemaTypePtr
    - xmlSchemaTypePtr
    - int
    constantsTouched: []
    func_position:
      end: 15804
      start: 15794
    functionDepth: 0
    functionLinenumber: 15794
    functionLinenumberEnd: 15804
    functionName: xmlSchemaCheckCOSDerivedOK
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaCheckCOSSTDerivedOK
    - WXS_IS_SIMPLE
    - xmlSchemaCheckCOSCTDerivedOK
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckCOSDerivedOK(xmlSchemaAbstractCtxtPtr actxt,\t\t\t
      xmlSchemaTypePtr type,\t\t\t xmlSchemaTypePtr baseType,\t\t\t int set) "
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:16304,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:16330,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:16317,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:16310,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16312,1
    - Dst: WXS_IS_EXTENSION
      Src: /src/libxml2/xmlschemas.c:16331,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16338,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:16344,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16359,1
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:16367,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16408,1
    - Dst: xmlSchemaIsParticleEmptiable
      Src: /src/libxml2/xmlschemas.c:16374,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16390,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:16396,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:16415,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:16424,1
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:16407,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16418,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 49
    argCount: 2
    argNames:
    - ctxt
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 16444
      start: 16292
    functionDepth: 0
    functionLinenumber: 16292
    functionLinenumberEnd: 16444
    functionName: xmlSchemaCheckSRCCT
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_HAS_SIMPLE_CONTENT
    - xmlSchemaPCustomErr
    - WXS_IS_RESTRICTION
    - xmlSchemaFormatQName
    - xmlSchemaIsParticleEmptiable
    - WXS_IS_SIMPLE
    - WXS_IS_EXTENSION
    - WXS_IS_COMPLEX
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckSRCCT(xmlSchemaParserCtxtPtr ctxt,\t\t xmlSchemaTypePtr
      type) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFormatItemForReport
      Src: /src/libxml2/xmlschemas.c:3068,1
    - Dst: xmlSchemaPErr
      Src: /src/libxml2/xmlschemas.c:3070,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:3073,1
    - Dst: xmlSchemaFacetTypeToString
      Src: /src/libxml2/xmlschemas.c:3072,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ctxt
    - error
    - type
    - facet
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlParserErrors
    - xmlSchemaTypePtr
    - xmlSchemaFacetPtr
    constantsTouched: []
    func_position:
      end: 3074
      start: 3060
    functionDepth: 0
    functionLinenumber: 3060
    functionLinenumberEnd: 3074
    functionName: xmlSchemaPIllegalFacetListUnionErr
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPErr
    - xmlSchemaFacetTypeToString
    - xmlSchemaFormatItemForReport
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaPIllegalFacetListUnionErr(xmlSchemaParserCtxtPtr
      ctxt,\t\t\t xmlParserErrors error,\t\t\t xmlSchemaTypePtr type,\t\t\t xmlSchemaFacetPtr
      facet) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:5337,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:5342,1
    - Dst: xmlSchemaAddRedef
      Src: /src/libxml2/xmlschemas.c:5349,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:5339,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:5352,1
    - Dst: WXS_ADD_GLOBAL
      Src: /src/libxml2/xmlschemas.c:5357,1
    - Dst: WXS_ADD_PENDING
      Src: /src/libxml2/xmlschemas.c:5358,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 5
    argNames:
    - ctxt
    - schema
    - name
    - nsName
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlChar*
    - xmlChar*
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5360
      start: 5324
    functionDepth: 0
    functionLinenumber: 5324
    functionLinenumberEnd: 5360
    functionName: xmlSchemaAddModelGroupDefinition
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaAddRedef
    - memset
    - WXS_ADD_PENDING
    - WXS_ADD_GLOBAL
    - xmlSchemaPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchemaModelGroupDefPtr
    signature: "static xmlSchemaModelGroupDefPtr xmlSchemaAddModelGroupDefinition(xmlSchemaParserCtxtPtr
      ctxt,\t\t\t\t xmlSchemaPtr schema,\t\t\t\t const xmlChar *name,\t\t\t\t const
      xmlChar *nsName,\t\t\t\t xmlNodePtr node) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaAreEqualTypes
      Src: /src/libxml2/xmlschemas.c:15729,1
    - Dst: WXS_IS_EXTENSION
      Src: /src/libxml2/xmlschemas.c:15742,1
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:15743,1
    - Dst: WXS_IS_ANYTYPE
      Src: /src/libxml2/xmlschemas.c:15760,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:15763,1
    - Dst: xmlSchemaCheckCOSCTDerivedOK
      Src: /src/libxml2/xmlschemas.c:15769,1
    - Dst: xmlSchemaCheckCOSSTDerivedOK
      Src: /src/libxml2/xmlschemas.c:15777,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - actxt
    - type
    - baseType
    - set
    argTypes:
    - xmlSchemaAbstractCtxtPtr
    - xmlSchemaTypePtr
    - xmlSchemaTypePtr
    - int
    constantsTouched: []
    func_position:
      end: 15780
      start: 15723
    functionDepth: 0
    functionLinenumber: 15723
    functionLinenumberEnd: 15780
    functionName: xmlSchemaCheckCOSCTDerivedOK
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaAreEqualTypes
    - WXS_IS_RESTRICTION
    - xmlSchemaCheckCOSCTDerivedOK
    - xmlSchemaCheckCOSSTDerivedOK
    - WXS_IS_ANYTYPE
    - WXS_IS_EXTENSION
    - WXS_IS_COMPLEX
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckCOSCTDerivedOK(xmlSchemaAbstractCtxtPtr actxt,\t\t\t
      xmlSchemaTypePtr type,\t\t\t xmlSchemaTypePtr baseType,\t\t\t int set) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCheckCTPropsCorrect
      Src: /src/libxml2/xmlschemas.c:16272,1
    - Dst: xmlSchemaCheckDerivationOKRestriction
      Src: /src/libxml2/xmlschemas.c:16278,1
    - Dst: WXS_IS_EXTENSION
      Src: /src/libxml2/xmlschemas.c:16275,1
    - Dst: xmlSchemaCheckCOSCTExtends
      Src: /src/libxml2/xmlschemas.c:16276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ctxt
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 16280
      start: 16264
    functionDepth: 0
    functionLinenumber: 16264
    functionLinenumberEnd: 16280
    functionName: xmlSchemaCheckCTComponent
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaCheckCTPropsCorrect
    - xmlSchemaCheckCOSCTExtends
    - WXS_IS_EXTENSION
    - xmlSchemaCheckDerivationOKRestriction
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckCTComponent(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      xmlSchemaTypePtr type) "
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 8
    argCount: 1
    argNames:
    - item
    argTypes:
    - xmlSchemaBasicItemPtr
    constantsTouched: []
    func_position:
      end: 1242
      start: 1211
    functionDepth: 0
    functionLinenumber: 1211
    functionLinenumberEnd: 1242
    functionName: xmlSchemaGetNextComponent
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlSchemaBasicItemPtr
    signature: 'static xmlSchemaBasicItemPtr xmlSchemaGetNextComponent(xmlSchemaBasicItemPtr
      item) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/xmlschemas.c:1862,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 1863
      start: 1847
    functionDepth: 0
    functionLinenumber: 1847
    functionLinenumberEnd: 1863
    functionName: xmlSchemaPErrMemory
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlRaiseMemoryError
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaPErrMemory(xmlSchemaParserCtxtPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:3295,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:3299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3302
      start: 3290
    functionDepth: 0
    functionLinenumber: 3290
    functionLinenumberEnd: 3302
    functionName: xmlSchemaNewFacet
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchemaFacet*
    signature: 'xmlSchemaFacet *xmlSchemaNewFacet(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:9909,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:9914,1
    - Dst: xmlSchemaNewParserCtxtUseDict
      Src: /src/libxml2/xmlschemas.c:9924,1
    - Dst: xmlSchemaSetParserErrors
      Src: /src/libxml2/xmlschemas.c:9935,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:9919,1
    - Dst: xmlSchemaSetParserStructuredErrors
      Src: /src/libxml2/xmlschemas.c:9937,1
    - Dst: xmlSchemaParseNewDocWithContext
      Src: /src/libxml2/xmlschemas.c:9942,1
    - Dst: xmlSchemaFreeParserCtxt
      Src: /src/libxml2/xmlschemas.c:9951,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - pctxt
    - schema
    - bucket
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlSchemaBucketPtr
    constantsTouched: []
    func_position:
      end: 9953
      start: 9898
    functionDepth: 0
    functionLinenumber: 9898
    functionLinenumberEnd: 9953
    functionName: xmlSchemaParseNewDoc
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaNewParserCtxtUseDict
    - xmlSchemaSetParserErrors
    - xmlSchemaParseNewDocWithContext
    - xmlSchemaSetParserStructuredErrors
    - PERROR_INT
    - xmlSchemaFreeParserCtxt
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaParseNewDoc(xmlSchemaParserCtxtPtr pctxt,\t\t
      xmlSchemaPtr schema,\t\t xmlSchemaBucketPtr bucket) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:5198,1
    - Dst: WXS_ADD_LOCAL
      Src: /src/libxml2/xmlschemas.c:5212,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:5200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - pctxt
    - refType
    - refName
    - refNs
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypeType
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5214
      start: 5189
    functionDepth: 0
    functionLinenumber: 5189
    functionLinenumberEnd: 5214
    functionName: xmlSchemaNewQNameRef
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_ADD_LOCAL
    - xmlMalloc
    - xmlSchemaPErrMemory
    linkageType: ''
    returnType: xmlSchemaQNameRefPtr
    signature: "static xmlSchemaQNameRefPtr xmlSchemaNewQNameRef(xmlSchemaParserCtxtPtr
      pctxt,\t\t xmlSchemaTypeType refType,\t\t const xmlChar *refName,\t\t const
      xmlChar *refNs) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:5222,1
    - Dst: WXS_ADD_LOCAL
      Src: /src/libxml2/xmlschemas.c:5229,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:5227,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:5224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pctxt
    argTypes:
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 5231
      start: 5216
    functionDepth: 0
    functionLinenumber: 5216
    functionLinenumberEnd: 5231
    functionName: xmlSchemaAddAttributeUseProhib
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    - WXS_ADD_LOCAL
    - xmlSchemaPErrMemory
    linkageType: ''
    returnType: xmlSchemaAttributeUseProhibPtr
    signature: 'static xmlSchemaAttributeUseProhibPtr xmlSchemaAddAttributeUseProhib(xmlSchemaParserCtxtPtr
      pctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - bucket
    - rel
    argTypes:
    - xmlSchemaBucketPtr
    - xmlSchemaSchemaRelationPtr
    constantsTouched: []
    func_position:
      end: 9968
      start: 9955
    functionDepth: 0
    functionLinenumber: 9955
    functionLinenumberEnd: 9968
    functionName: xmlSchemaSchemaRelationAddChild
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaSchemaRelationAddChild(xmlSchemaBucketPtr bucket,\t\t\t\txmlSchemaSchemaRelationPtr
      rel) "
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaPMissingAttrErr
      Src: /src/libxml2/xmlschemas.c:9112,1
    - Dst: xmlGetMaxOccurs
      Src: /src/libxml2/xmlschemas.c:9122,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:9138,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:9110,1
    - Dst: xmlSchemaCheckReference
      Src: /src/libxml2/xmlschemas.c:9120,1
    - Dst: xmlSchemaPValAttrNodeQName
      Src: /src/libxml2/xmlschemas.c:9116,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:9137,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:9143,1
    - Dst: xmlSchemaNewQNameRef
      Src: /src/libxml2/xmlschemas.c:9152,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:9163,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:9130,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:9134,1
    - Dst: xmlSchemaPCheckParticleCorrect_2
      Src: /src/libxml2/xmlschemas.c:9153,1
    - Dst: xmlSchemaAddParticle
      Src: /src/libxml2/xmlschemas.c:9144,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:9167,1
    - Dst: xmlGetMinOccurs
      Src: /src/libxml2/xmlschemas.c:9121,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:9131,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:9132,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:9133,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9159,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 3
    argNames:
    - ctxt
    - schema
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 9179
      start: 9096
    functionDepth: 0
    functionLinenumber: 9096
    functionLinenumberEnd: 9179
    functionName: xmlSchemaParseModelGroupDefRef
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaAddParticle
    - xmlSchemaPCheckParticleCorrect_2
    - xmlSchemaGetPropNode
    - xmlSchemaPValAttrNodeQName
    - IS_SCHEMA
    - xmlSchemaPContentErr
    - xmlSchemaPValAttrID
    - xmlStrEqual
    - xmlSchemaCheckReference
    - xmlGetMaxOccurs
    - xmlSchemaPMissingAttrErr
    - xmlSchemaNewQNameRef
    - xmlSchemaParseAnnotation
    - xmlSchemaPIllegalAttrErr
    - xmlGetMinOccurs
    linkageType: ''
    returnType: xmlSchemaTreeItemPtr
    signature: "static xmlSchemaTreeItemPtr xmlSchemaParseModelGroupDefRef(xmlSchemaParserCtxtPtr
      ctxt,\t\t\t xmlSchemaPtr schema,\t\t\t xmlNodePtr node) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 12155
      start: 12147
    functionDepth: 0
    functionLinenumber: 12147
    functionLinenumberEnd: 12155
    functionName: xmlSchemaParserCtxtGetOptions
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaParserCtxtGetOptions(xmlSchemaParserCtxtPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaParserCtxtCreate
      Src: /src/libxml2/xmlschemas.c:12173,1
    - Dst: xmlDictCreate
      Src: /src/libxml2/xmlschemas.c:12176,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:12177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 12179
      start: 12165
    functionDepth: 0
    functionLinenumber: 12165
    functionLinenumberEnd: 12179
    functionName: xmlSchemaNewParserCtxt
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlDictCreate
    - xmlSchemaParserCtxtCreate
    - xmlDictLookup
    linkageType: ''
    returnType: xmlSchemaParserCtxt*
    signature: 'xmlSchemaParserCtxt *xmlSchemaNewParserCtxt(const char *URL) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19134,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19141,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19139,1
    - Dst: xmlSchemaCheckSubstGroupCircular
      Src: /src/libxml2/xmlschemas.c:19142,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19136,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19143,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - elemDecl
    - ancestor
    argTypes:
    - xmlSchemaElementPtr
    - xmlSchemaElementPtr
    constantsTouched: []
    func_position:
      end: 19147
      start: 19128
    functionDepth: 0
    functionLinenumber: 19128
    functionLinenumberEnd: 19147
    functionName: xmlSchemaCheckSubstGroupCircular
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_SUBST_HEAD
    - xmlSchemaCheckSubstGroupCircular
    linkageType: ''
    returnType: xmlSchemaElementPtr
    signature: "static xmlSchemaElementPtr xmlSchemaCheckSubstGroupCircular(xmlSchemaElementPtr
      elemDecl,\t\t\t\t xmlSchemaElementPtr ancestor) "
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/xmlschemas.c:27428,1
    - Dst: xmlSchemaValidatorPushElem
      Src: /src/libxml2/xmlschemas.c:27446,1
    - Dst: xmlNodeListGetString
      Src: /src/libxml2/xmlschemas.c:27470,1
    - Dst: xmlSchemaValidatorPushAttribute
      Src: /src/libxml2/xmlschemas.c:27472,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:27431,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:27482,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27484,1
    - Dst: xmlSchemaValidateElem
      Src: /src/libxml2/xmlschemas.c:27493,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:27496,1
    - Dst: xmlSchemaVPushText
      Src: /src/libxml2/xmlschemas.c:27516,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:27519,1
    - Dst: xmlSchemaValidatorPopElem
      Src: /src/libxml2/xmlschemas.c:27561,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:27557,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:27532,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:27564,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 93
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 27585
      start: 27415
    functionDepth: 0
    functionLinenumber: 27415
    functionLinenumberEnd: 27585
    functionName: xmlSchemaVDocWalk
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlSchemaValidatorPushAttribute
    - xmlFree
    - xmlSchemaVPushText
    - xmlSchemaValidatorPushElem
    - VERROR
    - xmlNodeListGetString
    - xmlSchemaValidatorPopElem
    - VERROR_INT
    - xmlSchemaValidateElem
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaVDocWalk(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateQName
      Src: /src/libxml2/xmlschemas.c:5574,1
    - Dst: strchr
      Src: /src/libxml2/xmlschemas.c:5586,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:5579,1
    - Dst: xmlSearchNs
      Src: /src/libxml2/xmlschemas.c:5587,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:5576,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:5589,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:5599,1
    - Dst: xmlSplitQName3
      Src: /src/libxml2/xmlschemas.c:5605,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:5606,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:5607,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:5610,1
    - Dst: xmlSearchNs
      Src: /src/libxml2/xmlschemas.c:5608,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:5618,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:5613,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 7
    argNames:
    - ctxt
    - schema
    - ownerItem
    - attr
    - value
    - uri
    - local
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlSchemaBasicItemPtr
    - xmlAttrPtr
    - xmlChar*
    - xmlChar**
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 5621
      start: 5559
    functionDepth: 0
    functionLinenumber: 5559
    functionLinenumberEnd: 5621
    functionName: xmlSchemaPValAttrNodeQNameValue
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetBuiltInType
    - xmlDictLookup
    - xmlSplitQName3
    - strchr
    - xmlValidateQName
    - xmlSearchNs
    - xmlSchemaPSimpleTypeErr
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaPValAttrNodeQNameValue(xmlSchemaParserCtxtPtr
      ctxt,\t\t\t\t xmlSchemaPtr schema,\t\t\t\t xmlSchemaBasicItemPtr ownerItem,\t\t\t\t
      xmlAttrPtr attr,\t\t\t\t const xmlChar *value,\t\t\t\t const xmlChar **uri,\t\t\t\t
      const xmlChar **local) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCreatePCtxtOnVCtxt
      Src: /src/libxml2/xmlschemas.c:27616,1
    - Dst: xmlHashScan
      Src: /src/libxml2/xmlschemas.c:27642,1
    - Dst: xmlSchemaConstructionCtxtCreate
      Src: /src/libxml2/xmlschemas.c:27629,1
    - Dst: xmlSchemaNewSchema
      Src: /src/libxml2/xmlschemas.c:27623,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 27646
      start: 27587
    functionDepth: 0
    functionLinenumber: 27587
    functionLinenumberEnd: 27646
    functionName: xmlSchemaPreRun
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaNewSchema
    - xmlSchemaCreatePCtxtOnVCtxt
    - xmlHashScan
    - xmlSchemaConstructionCtxtCreate
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaPreRun(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:3316,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:3321,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:3318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 3324
      start: 3311
    functionDepth: 0
    functionLinenumber: 3311
    functionLinenumberEnd: 3324
    functionName: xmlSchemaNewAnnot
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    - xmlSchemaPErrMemory
    linkageType: ''
    returnType: xmlSchemaAnnotPtr
    signature: 'static xmlSchemaAnnotPtr xmlSchemaNewAnnot(xmlSchemaParserCtxtPtr
      ctxt, xmlNodePtr node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaSubstGroupGet
      Src: /src/libxml2/xmlschemas.c:5528,1
    - Dst: xmlSchemaSubstGroupAdd
      Src: /src/libxml2/xmlschemas.c:5530,1
    - Dst: xmlSchemaItemListAdd
      Src: /src/libxml2/xmlschemas.c:5533,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - pctxt
    - head
    - member
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaElementPtr
    - xmlSchemaElementPtr
    constantsTouched: []
    func_position:
      end: 5536
      start: 5518
    functionDepth: 0
    functionLinenumber: 5518
    functionLinenumberEnd: 5536
    functionName: xmlSchemaAddElementSubstitutionMember
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaSubstGroupAdd
    - xmlSchemaItemListAdd
    - xmlSchemaSubstGroupGet
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaAddElementSubstitutionMember(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t\t xmlSchemaElementPtr head,\t\t\t\t xmlSchemaElementPtr member) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - options
    argTypes:
    - xmlSchemaParserCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 12141
      start: 12121
    functionDepth: 0
    functionLinenumber: 12121
    functionLinenumberEnd: 12141
    functionName: xmlSchemaParserCtxtSetOptions
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaParserCtxtSetOptions(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      int options) "
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:8907,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:8921,1
    - Dst: xmlSchemaGetPredefinedType
      Src: /src/libxml2/xmlschemas.c:8927,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemas.c:8947,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:8950,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:8972,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8997,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8998,1
    - Dst: xmlSchemaPValAttrBlockFinal
      Src: /src/libxml2/xmlschemas.c:9021,1
    - Dst: xmlSchemaParseList
      Src: /src/libxml2/xmlschemas.c:9058,1
    - Dst: xmlSchemaAddType
      Src: /src/libxml2/xmlschemas.c:8953,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8967,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8971,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:9003,1
    - Dst: xmlSchemaGetProp
      Src: /src/libxml2/xmlschemas.c:9020,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:9035,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9044,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:9045,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9057,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:9065,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9060,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:8897,1
    - Dst: xmlSchemaPMissingAttrErr
      Src: /src/libxml2/xmlschemas.c:8899,1
    - Dst: xmlSchemaAddType
      Src: /src/libxml2/xmlschemas.c:8948,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:8968,1
    - Dst: xmlSchemaAddType
      Src: /src/libxml2/xmlschemas.c:8983,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:9002,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:9049,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9052,1
    - Dst: xmlSchemaParseRestriction
      Src: /src/libxml2/xmlschemas.c:9053,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:9077,1
    - Dst: xmlSchemaPValAttrNode
      Src: /src/libxml2/xmlschemas.c:8905,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8996,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:8999,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:9011,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:9026,1
    - Dst: xmlSchemaParseUnion
      Src: /src/libxml2/xmlschemas.c:9061,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 125
    argCount: 4
    argNames:
    - ctxt
    - schema
    - node
    - topLevel
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 9084
      start: 8883
    functionDepth: 0
    functionLinenumber: 8883
    functionLinenumberEnd: 9084
    functionName: xmlSchemaParseSimpleType
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPCustomErr
    - xmlSchemaParseAnnotation
    - xmlSchemaGetPredefinedType
    - xmlSchemaGetBuiltInType
    - xmlSchemaPValAttrNode
    - xmlSchemaPValAttrID
    - xmlSchemaPValAttrBlockFinal
    - snprintf
    - xmlSchemaPSimpleTypeErr
    - xmlSchemaGetProp
    - xmlSchemaPIllegalAttrErr
    - xmlSchemaParseUnion
    - IS_SCHEMA
    - xmlSchemaParseRestriction
    - xmlSchemaParseList
    - xmlSchemaAddType
    - xmlSchemaPContentErr
    - xmlSchemaGetPropNode
    - xmlDictLookup
    - xmlStrEqual
    - xmlSchemaPMissingAttrErr
    linkageType: ''
    returnType: xmlSchemaTypePtr
    signature: 'static xmlSchemaTypePtr xmlSchemaParseSimpleType(xmlSchemaParserCtxtPtr
      ctxt, xmlSchemaPtr schema, xmlNodePtr node, int topLevel) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetMetaAttrInfo
      Src: /src/libxml2/xmlschemas.c:21320,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:21339,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:21336,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:21344,1
    - Dst: xmlSchemaGetMetaAttrInfo
      Src: /src/libxml2/xmlschemas.c:21323,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:21350,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:21353,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:21371,1
    - Dst: xmlSchemaAssembleByLocation
      Src: /src/libxml2/xmlschemas.c:21373,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:21376,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 21382
      start: 21304
    functionDepth: 0
    functionLinenumber: 21304
    functionLinenumberEnd: 21382
    functionName: xmlSchemaAssembleByXSI
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - IS_BLANK_CH
    - xmlSchemaAssembleByLocation
    - VERROR_INT
    - xmlSchemaGetMetaAttrInfo
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaAssembleByXSI(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:21398,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:21430,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:21419,1
    - Dst: xmlTextReaderLookupNamespace
      Src: /src/libxml2/xmlschemas.c:21415,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21420,1
    - Dst: xmlSearchNs
      Src: /src/libxml2/xmlschemas.c:21434,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 2
    argNames:
    - vctxt
    - prefix
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 21440
      start: 21384
    functionDepth: 0
    functionLinenumber: 21384
    functionLinenumberEnd: 21440
    functionName: xmlSchemaLookupNamespace
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictLookup
    - xmlTextReaderLookupNamespace
    - xmlStrEqual
    - xmlSearchNs
    - VERROR_INT
    linkageType: ''
    returnType: xmlChar*
    signature: "static const xmlChar *xmlSchemaLookupNamespace(xmlSchemaValidCtxtPtr
      vctxt,\t\t\t const xmlChar *prefix) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - schema
    - name
    - nsName
    argTypes:
    - xmlSchemaPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4696
      start: 4677
    functionDepth: 0
    functionLinenumber: 4677
    functionLinenumberEnd: 4696
    functionName: xmlSchemaGetAttributeGroup
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlSchemaAttributeGroupPtr
    signature: 'static xmlSchemaAttributeGroupPtr xmlSchemaGetAttributeGroup(xmlSchemaPtr
      schema, const xmlChar * name, const xmlChar * nsName) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:5162,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:5177,1
    - Dst: xmlSchemaAddRedef
      Src: /src/libxml2/xmlschemas.c:5174,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:5167,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:5164,1
    - Dst: WXS_ADD_GLOBAL
      Src: /src/libxml2/xmlschemas.c:5182,1
    - Dst: WXS_ADD_LOCAL
      Src: /src/libxml2/xmlschemas.c:5184,1
    - Dst: WXS_ADD_PENDING
      Src: /src/libxml2/xmlschemas.c:5185,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 7
    argNames:
    - ctxt
    - schema
    - type
    - name
    - nsName
    - node
    - topLevel
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlSchemaTypeType
    - xmlChar*
    - xmlChar*
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 5187
      start: 5151
    functionDepth: 0
    functionLinenumber: 5151
    functionLinenumberEnd: 5187
    functionName: xmlSchemaAddType
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaAddRedef
    - memset
    - WXS_ADD_PENDING
    - WXS_ADD_GLOBAL
    - xmlSchemaPErrMemory
    - WXS_ADD_LOCAL
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchemaTypePtr
    signature: "static xmlSchemaTypePtr xmlSchemaAddType(xmlSchemaParserCtxtPtr ctxt,
      xmlSchemaPtr schema,\t\t xmlSchemaTypeType type, const xmlChar * name, const
      xmlChar * nsName,\t\t xmlNodePtr node, int topLevel) "
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 8
    argCount: 4
    argNames:
    - ctxt
    - err
    - warn
    - ctx
    argTypes:
    - xmlSchemaValidCtxt*
    - xmlSchemaValidityErrorFunc*
    - xmlSchemaValidityWarningFunc*
    - void**
    constantsTouched: []
    func_position:
      end: 27365
      start: 27351
    functionDepth: 0
    functionLinenumber: 27351
    functionLinenumberEnd: 27365
    functionName: xmlSchemaGetValidErrors
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xmlSchemaGetValidErrors(xmlSchemaValidCtxt *ctxt,\t\t\txmlSchemaValidityErrorFunc
      * err,\t\t\txmlSchemaValidityWarningFunc * warn, void **ctx) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: return
      Src: /src/libxml2/xmlschemas.c:16721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - ctxt
    - r
    - b
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaParticlePtr
    - xmlSchemaParticlePtr
    constantsTouched: []
    func_position:
      end: 16725
      start: 16704
    functionDepth: 0
    functionLinenumber: 16704
    functionLinenumberEnd: 16725
    functionName: xmlSchemaCheckCOSParticleRestrict
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - return
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckCOSParticleRestrict(xmlSchemaParserCtxtPtr
      ctxt,\t\t\t\t xmlSchemaParticlePtr r,\t\t\t\t xmlSchemaParticlePtr b) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:1281,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:1283,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 3
    argNames:
    - buf
    - ns
    - localName
    argTypes:
    - xmlChar**
    - xmlNsPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1284
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1284
    functionName: xmlSchemaFormatQNameNs
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaFormatQName
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlSchemaFormatQNameNs(xmlChar **buf, xmlNsPtr
      ns, const xmlChar *localName) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFormatItemForReport
      Src: /src/libxml2/xmlschemas.c:2880,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:2897,1
    - Dst: xmlSchemaPErrExt
      Src: /src/libxml2/xmlschemas.c:2892,1
    - Dst: xmlSchemaFormatItemForReport
      Src: /src/libxml2/xmlschemas.c:2882,1
    - Dst: xmlSchemaPErrExt
      Src: /src/libxml2/xmlschemas.c:2887,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 6
    argNames:
    - ctxt
    - error
    - ownerDes
    - ownerItem
    - attr
    - msg
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlParserErrors
    - xmlChar**
    - xmlSchemaBasicItemPtr
    - xmlAttrPtr
    - char*
    constantsTouched: []
    func_position:
      end: 2898
      start: 2869
    functionDepth: 0
    functionLinenumber: 2869
    functionLinenumberEnd: 2898
    functionName: xmlSchemaPCustomAttrErr
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPErrExt
    - xmlSchemaFormatItemForReport
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaPCustomAttrErr(xmlSchemaParserCtxtPtr ctxt,\t\t\txmlParserErrors
      error,\t\t\txmlChar **ownerDes,\t\t\txmlSchemaBasicItemPtr ownerItem,\t\t\txmlAttrPtr
      attr,\t\t\tconst char *msg) "
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:8793,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:8802,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8805,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8800,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8801,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:8806,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:8812,1
    - Dst: xmlSchemaPValAttrQName
      Src: /src/libxml2/xmlschemas.c:8821,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8827,1
    - Dst: xmlSchemaAddAnnotation
      Src: /src/libxml2/xmlschemas.c:8828,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:8856,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:8862,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8832,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:8829,1
    - Dst: xmlSchemaParseSimpleType
      Src: /src/libxml2/xmlschemas.c:8845,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:8849,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:8863,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:8839,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 3
    argNames:
    - ctxt
    - schema
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 8870
      start: 8773
    functionDepth: 0
    functionLinenumber: 8773
    functionLinenumberEnd: 8870
    functionName: xmlSchemaParseList
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetBuiltInType
    - xmlSchemaPValAttrQName
    - xmlSchemaPCustomErr
    - xmlSchemaGetPropNode
    - IS_SCHEMA
    - xmlSchemaPContentErr
    - xmlSchemaPValAttrID
    - xmlStrEqual
    - xmlSchemaAddAnnotation
    - xmlSchemaParseAnnotation
    - xmlSchemaPIllegalAttrErr
    - xmlSchemaParseSimpleType
    linkageType: ''
    returnType: xmlSchemaTypePtr
    signature: 'static xmlSchemaTypePtr xmlSchemaParseList(xmlSchemaParserCtxtPtr
      ctxt, xmlSchemaPtr schema, xmlNodePtr node) '
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 2
    argNames:
    - sub
    - super
    argTypes:
    - xmlSchemaWildcardPtr
    - xmlSchemaWildcardPtr
    constantsTouched: []
    func_position:
      end: 13712
      start: 13651
    functionDepth: 0
    functionLinenumber: 13651
    functionLinenumberEnd: 13712
    functionName: xmlSchemaCheckCOSNSSubset
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckCOSNSSubset(xmlSchemaWildcardPtr sub,\t\t\t
      xmlSchemaWildcardPtr super) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:21806,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - xmlSchemaPSVIIDCKeyPtr
    constantsTouched: []
    func_position:
      end: 21808
      start: 21802
    functionDepth: 0
    functionLinenumber: 21802
    functionLinenumberEnd: 21808
    functionName: xmlSchemaIDCFreeKey
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaFreeValue
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaIDCFreeKey(xmlSchemaPSVIIDCKeyPtr key) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:23684,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:23698,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:23693,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23695,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23700,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:23718,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23720,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:23726,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:23731,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 23736
      start: 23678
    functionDepth: 0
    functionLinenumber: 23678
    functionLinenumberEnd: 23736
    functionName: xmlSchemaGetFreshElemInfo
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - memset
    - xmlSchemaVErrMemory
    - xmlMalloc
    - VERROR_INT
    linkageType: ''
    returnType: xmlSchemaNodeInfoPtr
    signature: 'static xmlSchemaNodeInfoPtr xmlSchemaGetFreshElemInfo(xmlSchemaValidCtxtPtr
      vctxt) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:1310,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - xmlSchemaBasicItemPtr
    constantsTouched: []
    func_position:
      end: 1326
      start: 1286
    functionDepth: 0
    functionLinenumber: 1286
    functionLinenumberEnd: 1326
    functionName: xmlSchemaGetComponentName
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_ATTRUSE_DECL
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlSchemaGetComponentName(xmlSchemaBasicItemPtr
      item) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFormatItemForReport
      Src: /src/libxml2/xmlschemas.c:2846,1
    - Dst: xmlSchemaItemTypeToStr
      Src: /src/libxml2/xmlschemas.c:2848,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:2853,1
    - Dst: xmlSchemaPErrExt
      Src: /src/libxml2/xmlschemas.c:2849,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 9
    argNames:
    - ctxt
    - error
    - ownerItem
    - ownerElem
    - name
    - refName
    - refURI
    - refType
    - refTypeStr
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlParserErrors
    - xmlSchemaBasicItemPtr
    - xmlNodePtr
    - char*
    - xmlChar*
    - xmlChar*
    - xmlSchemaTypeType
    - char*
    constantsTouched: []
    func_position:
      end: 2857
      start: 2833
    functionDepth: 0
    functionLinenumber: 2833
    functionLinenumberEnd: 2857
    functionName: xmlSchemaPResCompAttrErr
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaItemTypeToStr
    - xmlSchemaPErrExt
    - xmlSchemaFormatItemForReport
    - xmlSchemaFormatQName
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaPResCompAttrErr(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      xmlParserErrors error,\t\t\t xmlSchemaBasicItemPtr ownerItem,\t\t\t xmlNodePtr
      ownerElem,\t\t\t const char *name,\t\t\t const xmlChar *refName,\t\t\t const
      xmlChar *refURI,\t\t\t xmlSchemaTypeType refType,\t\t\t const char *refTypeStr) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFormatNodeForError
      Src: /src/libxml2/xmlschemas.c:2916,1
    - Dst: xmlSchemaFormatQNameNs
      Src: /src/libxml2/xmlschemas.c:2919,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:2922,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:2921,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 4
    argNames:
    - ctxt
    - error
    - ATTRIBUTE_UNUSED
    - attr
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlParserErrors
    - xmlSchemaBasicItemPtr
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 2923
      start: 2908
    functionDepth: 0
    functionLinenumber: 2908
    functionLinenumberEnd: 2923
    functionName: xmlSchemaPIllegalAttrErr
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaFormatNodeForError
    - xmlSchemaFormatQNameNs
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaPIllegalAttrErr(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      xmlParserErrors error,\t\t\t xmlSchemaBasicItemPtr ownerComp ATTRIBUTE_UNUSED,\t\t\t
      xmlAttrPtr attr) "
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8626,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:8636,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:8654,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:8686,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8712,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:8754,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:8631,1
    - Dst: xmlSchemaPValAttrNodeQNameValue
      Src: /src/libxml2/xmlschemas.c:8666,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:8657,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:8674,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8720,1
    - Dst: xmlSchemaParseSimpleType
      Src: /src/libxml2/xmlschemas.c:8729,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:8618,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8630,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:8641,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:8687,1
    - Dst: xmlSchemaNewQNameRef
      Src: /src/libxml2/xmlschemas.c:8683,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xmlschemas.c:8661,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:8717,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:8744,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8625,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:8627,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:8649,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:8663,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:8672,1
    - Dst: xmlSchemaAddAnnotation
      Src: /src/libxml2/xmlschemas.c:8716,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8727,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 102
    argCount: 3
    argNames:
    - ctxt
    - schema
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 8761
      start: 8597
    functionDepth: 0
    functionLinenumber: 8597
    functionLinenumberEnd: 8761
    functionName: xmlSchemaParseUnion
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPCustomErr
    - xmlStrndup
    - xmlSchemaParseAnnotation
    - xmlSchemaGetBuiltInType
    - xmlSchemaPValAttrID
    - xmlMalloc
    - xmlSchemaPIllegalAttrErr
    - xmlFree
    - IS_SCHEMA
    - xmlSchemaAddAnnotation
    - xmlSchemaNewQNameRef
    - xmlSchemaPValAttrNodeQNameValue
    - xmlSchemaPContentErr
    - xmlSchemaGetPropNode
    - xmlSchemaGetNodeContent
    - xmlStrEqual
    - IS_BLANK_CH
    - xmlSchemaPErrMemory
    - xmlSchemaParseSimpleType
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaParseUnion(xmlSchemaParserCtxtPtr ctxt, xmlSchemaPtr
      schema, xmlNodePtr node) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCloneWildcardNsConstraints
      Src: /src/libxml2/xmlschemas.c:13525,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:13556,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:13571,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:13606,1
    - Dst: xmlSchemaCloneWildcardNsConstraints
      Src: /src/libxml2/xmlschemas.c:13541,1
    - Dst: xmlSchemaPErr
      Src: /src/libxml2/xmlschemas.c:13625,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 121
    argCount: 3
    argNames:
    - ctxt
    - completeWild
    - curWild
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaWildcardPtr
    - xmlSchemaWildcardPtr
    constantsTouched: []
    func_position:
      end: 13641
      start: 13476
    functionDepth: 0
    functionLinenumber: 13476
    functionLinenumberEnd: 13641
    functionName: xmlSchemaIntersectWildcards
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaPErr
    - xmlSchemaCloneWildcardNsConstraints
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaIntersectWildcards(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      xmlSchemaWildcardPtr completeWild,\t\t\t xmlSchemaWildcardPtr curWild) "
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4226,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4237,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4233,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:4237,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4228,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:4240,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4243,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4246,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4249,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4252,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4262,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4260,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4264,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4265,1
    - Dst: xmlSchemaContentModelDump
      Src: /src/libxml2/xmlschemas.c:4275,1
    - Dst: xmlSchemaContentModelDump
      Src: /src/libxml2/xmlschemas.c:4271,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4255,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 54
    argCount: 3
    argNames:
    - particle
    - output
    - depth
    argTypes:
    - xmlSchemaParticlePtr
    - FILE*
    - int
    constantsTouched: []
    func_position:
      end: 4277
      start: 4213
    functionDepth: 0
    functionLinenumber: 4213
    functionLinenumberEnd: 4277
    functionName: xmlSchemaContentModelDump
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaContentModelDump
    - fprintf
    - xmlSchemaFormatQName
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaContentModelDump(xmlSchemaParticlePtr particle,
      FILE * output, int depth) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 4
    argNames:
    - attruse
    - fixed
    - value
    - val
    argTypes:
    - xmlSchemaAttributeUsePtr
    - int*
    - xmlChar**
    - xmlSchemaValPtr*
    constantsTouched: []
    func_position:
      end: 13742
      start: 13714
    functionDepth: 0
    functionLinenumber: 13714
    functionLinenumberEnd: 13742
    functionName: xmlSchemaGetEffectiveValueConstraint
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaGetEffectiveValueConstraint(xmlSchemaAttributeUsePtr
      attruse,\t\t\t\t int *fixed,\t\t\t\t const xmlChar **value,\t\t\t\t xmlSchemaValPtr
      *val) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 4
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - transdata
    - inputdata
    argTypes:
    - xmlRegExecCtxtPtr
    - xmlChar*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 25538
      start: 25530
    functionDepth: 0
    functionLinenumber: 25530
    functionLinenumberEnd: 25538
    functionName: xmlSchemaVContentModelCallback
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaVContentModelCallback(xmlRegExecCtxtPtr exec
      ATTRIBUTE_UNUSED,\t\t\t const xmlChar * name ATTRIBUTE_UNUSED,\t\t\t void *transdata,
      void *inputdata) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetFreshElemInfo
      Src: /src/libxml2/xmlschemas.c:25543,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 25551
      start: 25540
    functionDepth: 0
    functionLinenumber: 25540
    functionLinenumberEnd: 25551
    functionName: xmlSchemaValidatorPushElem
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - VERROR_INT
    - xmlSchemaGetFreshElemInfo
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaValidatorPushElem(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - set
    argTypes:
    - xmlSchemaWildcardNsPtr
    constantsTouched: []
    func_position:
      end: 3742
      start: 3732
    functionDepth: 0
    functionLinenumber: 3732
    functionLinenumberEnd: 3742
    functionName: xmlSchemaFreeWildcardNsSet
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaFreeWildcardNsSet(xmlSchemaWildcardNsPtr set) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetParticleEmptiable
      Src: /src/libxml2/xmlschemas.c:14456,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 1
    argNames:
    - particle
    argTypes:
    - xmlSchemaParticlePtr
    constantsTouched: []
    func_position:
      end: 14472
      start: 14438
    functionDepth: 0
    functionLinenumber: 14438
    functionLinenumberEnd: 14472
    functionName: xmlSchemaGetParticleEmptiable
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetParticleEmptiable
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaGetParticleEmptiable(xmlSchemaParticlePtr particle) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/xmlschemas.c:2005,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 2006
      start: 1990
    functionDepth: 0
    functionLinenumber: 1990
    functionLinenumberEnd: 2006
    functionName: xmlSchemaVErrMemory
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlRaiseMemoryError
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaVErrMemory(xmlSchemaValidCtxtPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - schema
    - name
    - nsName
    argTypes:
    - xmlSchemaPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4667
      start: 4654
    functionDepth: 0
    functionLinenumber: 4654
    functionLinenumberEnd: 4667
    functionName: xmlSchemaGetAttributeDecl
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlSchemaAttributePtr
    signature: 'static xmlSchemaAttributePtr xmlSchemaGetAttributeDecl(xmlSchemaPtr
      schema, const xmlChar * name, const xmlChar * nsName) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:5119,1
    - Dst: WXS_ADD_GLOBAL
      Src: /src/libxml2/xmlschemas.c:5131,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:5124,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:5121,1
    - Dst: WXS_ADD_LOCAL
      Src: /src/libxml2/xmlschemas.c:5133,1
    - Dst: WXS_ADD_PENDING
      Src: /src/libxml2/xmlschemas.c:5134,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 5
    argNames:
    - ctxt
    - name
    - nsName
    - node
    - topLevel
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlChar*
    - xmlChar*
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 5136
      start: 5109
    functionDepth: 0
    functionLinenumber: 5109
    functionLinenumberEnd: 5136
    functionName: xmlSchemaAddElement
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - memset
    - WXS_ADD_PENDING
    - WXS_ADD_GLOBAL
    - xmlSchemaPErrMemory
    - WXS_ADD_LOCAL
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchemaElementPtr
    signature: "static xmlSchemaElementPtr xmlSchemaAddElement(xmlSchemaParserCtxtPtr
      ctxt, const xmlChar * name, const xmlChar * nsName,\t\t xmlNodePtr node, int
      topLevel) "
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlStreamPush
      Src: /src/libxml2/xmlschemas.c:22052,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22078,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:22059,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:22075,1
    - Dst: xmlStreamPushAttr
      Src: /src/libxml2/xmlschemas.c:22055,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:22081,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22083,1
    - Dst: xmlSchemaIDCAddStateObject
      Src: /src/libxml2/xmlschemas.c:22100,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 2
    argNames:
    - vctxt
    - nodeType
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlElementType
    constantsTouched: []
    func_position:
      end: 22131
      start: 22033
    functionDepth: 0
    functionLinenumber: 22033
    functionLinenumberEnd: 22131
    functionName: xmlSchemaXPathEvaluate
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlStreamPushAttr
    - xmlSchemaVErrMemory
    - xmlStreamPush
    - xmlSchemaIDCAddStateObject
    - VERROR_INT
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaXPathEvaluate(xmlSchemaValidCtxtPtr vctxt,\t\t
      xmlElementType nodeType) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaSetParserStructuredErrors
      Src: /src/libxml2/xmlschemas.c:27339,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - ctxt
    - serror
    - ctx
    argTypes:
    - xmlSchemaValidCtxt*
    - xmlStructuredErrorFunc
    - void*
    constantsTouched: []
    func_position:
      end: 27340
      start: 27328
    functionDepth: 0
    functionLinenumber: 27328
    functionLinenumberEnd: 27340
    functionName: xmlSchemaSetValidStructuredErrors
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaSetParserStructuredErrors
    linkageType: ''
    returnType: void
    signature: "void xmlSchemaSetValidStructuredErrors(xmlSchemaValidCtxt *ctxt,\t\t\t\t
      xmlStructuredErrorFunc serror, void *ctx) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4298,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4307,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4302,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:4313,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4312,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:4314,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4316,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:4317,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:4318,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - uses
    - output
    argTypes:
    - xmlSchemaItemListPtr
    - FILE*
    constantsTouched: []
    func_position:
      end: 4320
      start: 4285
    functionDepth: 0
    functionLinenumber: 4285
    functionLinenumberEnd: 4320
    functionName: xmlSchemaAttrUsesDump
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_ATTRUSE_DECL_NAME
    - xmlSchemaFormatQName
    - WXS_ATTRUSE_DECL_TNS
    - FREE_AND_NULL
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaAttrUsesDump(xmlSchemaItemListPtr uses, FILE
      * output) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:13766,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:13771,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 2
    argNames:
    - wild
    - ns
    argTypes:
    - xmlSchemaWildcardPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 13775
      start: 13752
    functionDepth: 0
    functionLinenumber: 13752
    functionLinenumberEnd: 13775
    functionName: xmlSchemaCheckCVCWildcardNamespace
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckCVCWildcardNamespace(xmlSchemaWildcardPtr
      wild,\t\t\t\t const xmlChar* ns) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCheckCVCWildcardNamespace
      Src: /src/libxml2/xmlschemas.c:16604,1
    - Dst: xmlSchemaCheckParticleRangeOK
      Src: /src/libxml2/xmlschemas.c:16611,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - ctxt
    - r
    - b
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaParticlePtr
    - xmlSchemaParticlePtr
    constantsTouched: []
    func_position:
      end: 16616
      start: 16590
    functionDepth: 0
    functionLinenumber: 16590
    functionLinenumberEnd: 16616
    functionName: xmlSchemaCheckRCaseNSCompat
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaCheckParticleRangeOK
    - xmlSchemaCheckCVCWildcardNamespace
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckRCaseNSCompat(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      xmlSchemaParticlePtr r,\t\t\t xmlSchemaParticlePtr b) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:21986,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21988,1
    - Dst: xmlFreeStreamCtxt
      Src: /src/libxml2/xmlschemas.c:22004,1
    - Dst: xmlPatternGetStreamCtxt
      Src: /src/libxml2/xmlschemas.c:22009,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:21991,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:22012,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - vctxt
    - matcher
    - sel
    - type
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlSchemaIDCMatcherPtr
    - xmlSchemaIDCSelectPtr
    - int
    constantsTouched: []
    func_position:
      end: 22023
      start: 21967
    functionDepth: 0
    functionLinenumber: 21967
    functionLinenumberEnd: 22023
    functionName: xmlSchemaIDCAddStateObject
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFreeStreamCtxt
    - memset
    - xmlPatternGetStreamCtxt
    - xmlSchemaVErrMemory
    - xmlMalloc
    - VERROR_INT
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaIDCAddStateObject(xmlSchemaValidCtxtPtr vctxt,\t\t\txmlSchemaIDCMatcherPtr
      matcher,\t\t\txmlSchemaIDCSelectPtr sel,\t\t\tint type) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:5029,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:5040,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:5039,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:5034,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:5031,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:5042,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:5043,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - pctxt
    - targetBucket
    - item
    - refName
    - refTargetNs
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaBucketPtr
    - void*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5046
      start: 5019
    functionDepth: 0
    functionLinenumber: 5019
    functionLinenumberEnd: 5046
    functionName: xmlSchemaAddRedef
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - memset
    - WXS_CONSTRUCTOR
    - xmlMalloc
    - xmlSchemaPErrMemory
    linkageType: ''
    returnType: xmlSchemaRedefPtr
    signature: "static xmlSchemaRedefPtr xmlSchemaAddRedef(xmlSchemaParserCtxtPtr
      pctxt,\t\t xmlSchemaBucketPtr targetBucket,\t\t void *item,\t\t const xmlChar
      *refName,\t\t const xmlChar *refTargetNs) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetProp
      Src: /src/libxml2/xmlschemas.c:6754,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6767,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:6764,1
    - Dst: xmlSchemaPErr2
      Src: /src/libxml2/xmlschemas.c:6756,1
    - Dst: xmlSchemaAddNotation
      Src: /src/libxml2/xmlschemas.c:6760,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:6768,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:6772,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - ctxt
    - schema
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 6779
      start: 6744
    functionDepth: 0
    functionLinenumber: 6744
    functionLinenumberEnd: 6779
    functionName: xmlSchemaParseNotation
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaAddNotation
    - IS_SCHEMA
    - xmlSchemaPContentErr
    - xmlSchemaPValAttrID
    - xmlSchemaParseAnnotation
    - xmlSchemaGetProp
    - xmlSchemaPErr2
    linkageType: ''
    returnType: xmlSchemaNotationPtr
    signature: 'static xmlSchemaNotationPtr xmlSchemaParseNotation(xmlSchemaParserCtxtPtr
      ctxt, xmlSchemaPtr schema, xmlNodePtr node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCheckTypeDefCircularInternal
      Src: /src/libxml2/xmlschemas.c:14654,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - item
    - ctxt
    argTypes:
    - xmlSchemaTypePtr
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 14656
      start: 14646
    functionDepth: 0
    functionLinenumber: 14646
    functionLinenumberEnd: 14656
    functionName: xmlSchemaCheckTypeDefCircular
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaCheckTypeDefCircularInternal
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaCheckTypeDefCircular(xmlSchemaTypePtr item,\t\t\t
      xmlSchemaParserCtxtPtr ctxt) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 27800
      start: 27792
    functionDepth: 0
    functionLinenumber: 27792
    functionLinenumberEnd: 27800
    functionName: isStandaloneSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int isStandaloneSplit(void *ctx) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 27810
      start: 27802
    functionDepth: 0
    functionLinenumber: 27802
    functionLinenumberEnd: 27810
    functionName: hasInternalSubsetSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int hasInternalSubsetSplit(void *ctx) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:14621,1
    - Dst: xmlSchemaCheckTypeDefCircularInternal
      Src: /src/libxml2/xmlschemas.c:14634,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:14623,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - pctxt
    - ctxtType
    - ancestor
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypePtr
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 14638
      start: 14610
    functionDepth: 0
    functionLinenumber: 14610
    functionLinenumberEnd: 14638
    functionName: xmlSchemaCheckTypeDefCircularInternal
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPCustomErr
    - WXS_ITEM_NODE
    - xmlSchemaCheckTypeDefCircularInternal
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckTypeDefCircularInternal(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t xmlSchemaTypePtr ctxtType,\t\t\t xmlSchemaTypePtr ancestor) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:5071,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:5088,1
    - Dst: xmlSchemaAddRedef
      Src: /src/libxml2/xmlschemas.c:5085,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:5076,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:5073,1
    - Dst: WXS_ADD_GLOBAL
      Src: /src/libxml2/xmlschemas.c:5093,1
    - Dst: WXS_ADD_PENDING
      Src: /src/libxml2/xmlschemas.c:5094,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - pctxt
    - ATTRIBUTE_UNUSED
    - name
    - nsName
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlChar*
    - xmlChar*
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5096
      start: 5058
    functionDepth: 0
    functionLinenumber: 5058
    functionLinenumberEnd: 5096
    functionName: xmlSchemaAddAttributeGroupDefinition
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaAddRedef
    - memset
    - WXS_ADD_PENDING
    - WXS_ADD_GLOBAL
    - xmlSchemaPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchemaAttributeGroupPtr
    signature: "static xmlSchemaAttributeGroupPtr xmlSchemaAddAttributeGroupDefinition(xmlSchemaParserCtxtPtr
      pctxt, xmlSchemaPtr schema ATTRIBUTE_UNUSED,\t\t\t const xmlChar *name,\t\t\t
      const xmlChar *nsName,\t\t\t xmlNodePtr node) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaAddWildcard
      Src: /src/libxml2/xmlschemas.c:6801,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:6815,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6812,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6813,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6814,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6818,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:6819,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:6824,1
    - Dst: xmlSchemaParseWildcardNs
      Src: /src/libxml2/xmlschemas.c:6828,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6834,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:6835,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:6839,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - ctxt
    - schema
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 6846
      start: 6790
    functionDepth: 0
    functionLinenumber: 6790
    functionLinenumberEnd: 6846
    functionName: xmlSchemaParseAnyAttribute
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaParseWildcardNs
    - xmlSchemaAddWildcard
    - IS_SCHEMA
    - xmlSchemaPContentErr
    - xmlSchemaPValAttrID
    - xmlStrEqual
    - xmlSchemaParseAnnotation
    - xmlSchemaPIllegalAttrErr
    linkageType: ''
    returnType: xmlSchemaWildcardPtr
    signature: 'static xmlSchemaWildcardPtr xmlSchemaParseAnyAttribute(xmlSchemaParserCtxtPtr
      ctxt, xmlSchemaPtr schema, xmlNodePtr node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:15527,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15530,1
    - Dst: WXS_EMPTIABLE
      Src: /src/libxml2/xmlschemas.c:15528,1
    - Dst: WXS_HAS_MIXED_CONTENT
      Src: /src/libxml2/xmlschemas.c:15528,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:15550,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:15551,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:15553,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:15554,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:15560,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 5
    argNames:
    - pctxt
    - node
    - type
    - value
    - val
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlNodePtr
    - xmlSchemaTypePtr
    - xmlChar*
    - xmlSchemaValPtr*
    constantsTouched: []
    func_position:
      end: 15565
      start: 15502
    functionDepth: 0
    functionLinenumber: 15502
    functionLinenumberEnd: 15565
    functionName: xmlSchemaParseCheckCOSValidDefault
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_HAS_SIMPLE_CONTENT
    - xmlSchemaPCustomErr
    - WXS_EMPTIABLE
    - WXS_HAS_MIXED_CONTENT
    - WXS_IS_SIMPLE
    - xmlSchemaVCheckCVCSimpleType
    - PERROR_INT
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaParseCheckCOSValidDefault(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t\t xmlNodePtr node,\t\t\t\t xmlSchemaTypePtr type,\t\t\t\t const
      xmlChar *value,\t\t\t\t xmlSchemaValPtr *val) "
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11534,1
    - Dst: xmlSchemaPValAttrQName
      Src: /src/libxml2/xmlschemas.c:11546,1
    - Dst: xmlSchemaParseAnyAttribute
      Src: /src/libxml2/xmlschemas.c:11609,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:11623,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11529,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:11531,1
    - Dst: xmlSchemaPMissingAttrErr
      Src: /src/libxml2/xmlschemas.c:11549,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11571,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:11562,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11581,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11576,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11586,1
    - Dst: xmlSchemaParseModelGroupDefRef
      Src: /src/libxml2/xmlschemas.c:11588,1
    - Dst: xmlSchemaParseLocalAttributes
      Src: /src/libxml2/xmlschemas.c:11600,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11530,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:11541,1
    - Dst: xmlSchemaAddAnnotation
      Src: /src/libxml2/xmlschemas.c:11561,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:11535,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11557,1
    - Dst: xmlSchemaParseModelGroup
      Src: /src/libxml2/xmlschemas.c:11573,1
    - Dst: xmlSchemaParseModelGroup
      Src: /src/libxml2/xmlschemas.c:11583,1
    - Dst: xmlSchemaParseModelGroup
      Src: /src/libxml2/xmlschemas.c:11578,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11607,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:11616,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 75
    argCount: 4
    argNames:
    - ctxt
    - schema
    - node
    - parentType
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    - xmlSchemaTypeType
    constantsTouched: []
    func_position:
      end: 11631
      start: 11509
    functionDepth: 0
    functionLinenumber: 11509
    functionLinenumberEnd: 11631
    functionName: xmlSchemaParseExtension
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPValAttrQName
    - xmlSchemaParseModelGroup
    - xmlSchemaParseLocalAttributes
    - xmlSchemaParseModelGroupDefRef
    - IS_SCHEMA
    - xmlSchemaPContentErr
    - xmlSchemaPValAttrID
    - xmlStrEqual
    - xmlSchemaAddAnnotation
    - xmlSchemaParseAnyAttribute
    - xmlSchemaPMissingAttrErr
    - xmlSchemaParseAnnotation
    - xmlSchemaPIllegalAttrErr
    linkageType: ''
    returnType: xmlSchemaTypePtr
    signature: 'static xmlSchemaTypePtr xmlSchemaParseExtension(xmlSchemaParserCtxtPtr
      ctxt, xmlSchemaPtr schema, xmlNodePtr node, xmlSchemaTypeType parentType) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewSAXParserCtxt
      Src: /src/libxml2/xmlschemas.c:28393,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/xmlschemas.c:28397,1
    - Dst: xmlNewIOInputStream
      Src: /src/libxml2/xmlschemas.c:28409,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/xmlschemas.c:28406,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:28401,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/xmlschemas.c:28414,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/xmlschemas.c:28415,1
    - Dst: xmlSchemaValidateStreamInternal
      Src: /src/libxml2/xmlschemas.c:28422,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/xmlschemas.c:28427,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 5
    argNames:
    - ctxt
    - input
    - enc
    - sax
    - user_data
    argTypes:
    - xmlSchemaValidCtxt*
    - xmlParserInputBuffer*
    - xmlCharEncoding
    - xmlSAXHandler*
    - void*
    constantsTouched: []
    func_position:
      end: 28430
      start: 28377
    functionDepth: 0
    functionLinenumber: 28377
    functionLinenumberEnd: 28430
    functionName: xmlSchemaValidateStream
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCtxtUseOptions
    - xmlNewSAXParserCtxt
    - xmlFreeInputStream
    - xmlCtxtPushInput
    - xmlNewIOInputStream
    - xmlFreeParserCtxt
    - xmlSchemaValidateStreamInternal
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: 'int xmlSchemaValidateStream(xmlSchemaValidCtxt *ctxt, xmlParserInputBuffer
      *input, xmlCharEncoding enc, const xmlSAXHandler *sax, void *user_data) '
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaPValAttrQName
      Src: /src/libxml2/xmlschemas.c:11253,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:11283,1
    - Dst: xmlSchemaAddAnnotation
      Src: /src/libxml2/xmlschemas.c:11301,1
    - Dst: xmlSchemaPCustomErrExt
      Src: /src/libxml2/xmlschemas.c:11278,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:11286,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:11316,1
    - Dst: xmlSchemaParseModelGroup
      Src: /src/libxml2/xmlschemas.c:11342,1
    - Dst: xmlSchemaParseModelGroup
      Src: /src/libxml2/xmlschemas.c:11347,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11350,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11358,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11403,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:11435,1
    - Dst: xmlSchemaParseFacet
      Src: /src/libxml2/xmlschemas.c:11415,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11227,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:11240,1
    - Dst: xmlSchemaPMissingAttrErr
      Src: /src/libxml2/xmlschemas.c:11257,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11297,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11309,1
    - Dst: xmlSchemaParseSimpleType
      Src: /src/libxml2/xmlschemas.c:11380,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11405,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11409,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11413,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11414,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11404,1
    - Dst: xmlSchemaParseAnyAttribute
      Src: /src/libxml2/xmlschemas.c:11465,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:11228,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:11232,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11267,1
    - Dst: xmlSchemaParseSimpleType
      Src: /src/libxml2/xmlschemas.c:11323,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11340,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11345,1
    - Dst: xmlSchemaParseModelGroup
      Src: /src/libxml2/xmlschemas.c:11352,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11408,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11412,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11374,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:11437,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:11486,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:11471,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11463,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11411,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11410,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:11438,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11226,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11231,1
    - Dst: xmlSchemaPMissingAttrErr
      Src: /src/libxml2/xmlschemas.c:11264,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11268,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:11285,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:11282,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:11302,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:11327,1
    - Dst: xmlSchemaParseModelGroupDefRef
      Src: /src/libxml2/xmlschemas.c:11360,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11407,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:11477,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11406,1
    - Dst: xmlSchemaParseLocalAttributes
      Src: /src/libxml2/xmlschemas.c:11456,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 177
    argCount: 4
    argNames:
    - ctxt
    - schema
    - node
    - parentType
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    - xmlSchemaTypeType
    constantsTouched: []
    func_position:
      end: 11496
      start: 11206
    functionDepth: 0
    functionLinenumber: 11206
    functionLinenumberEnd: 11496
    functionName: xmlSchemaParseRestriction
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPValAttrQName
    - xmlSchemaParseAnnotation
    - xmlSchemaParseModelGroupDefRef
    - xmlSchemaPValAttrID
    - xmlMalloc
    - xmlSchemaPIllegalAttrErr
    - xmlFree
    - xmlSchemaParseModelGroup
    - IS_SCHEMA
    - xmlSchemaAddAnnotation
    - FREE_AND_NULL
    - xmlSchemaPContentErr
    - xmlSchemaParseFacet
    - xmlSchemaParseLocalAttributes
    - xmlSchemaFormatQName
    - xmlSchemaPCustomErrExt
    - xmlSchemaParseAnyAttribute
    - xmlStrEqual
    - xmlSchemaPMissingAttrErr
    - xmlSchemaPErrMemory
    - xmlSchemaParseSimpleType
    linkageType: ''
    returnType: xmlSchemaTypePtr
    signature: 'static xmlSchemaTypePtr xmlSchemaParseRestriction(xmlSchemaParserCtxtPtr
      ctxt, xmlSchemaPtr schema, xmlNodePtr node, xmlSchemaTypeType parentType) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21818,1
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:21820,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21821,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - bind
    argTypes:
    - xmlSchemaPSVIIDCBindingPtr
    constantsTouched: []
    func_position:
      end: 21822
      start: 21814
    functionDepth: 0
    functionLinenumber: 21814
    functionLinenumberEnd: 21822
    functionName: xmlSchemaIDCFreeBinding
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaItemListFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaIDCFreeBinding(xmlSchemaPSVIIDCBindingPtr bind) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaValidateSetLocator
      Src: /src/libxml2/xmlschemas.c:28330,1
    - Dst: xmlSchemaSAXUnplug
      Src: /src/libxml2/xmlschemas.c:28359,1
    - Dst: xmlSchemaSAXPlug
      Src: /src/libxml2/xmlschemas.c:28338,1
    - Dst: xmlSchemaVStart
      Src: /src/libxml2/xmlschemas.c:28346,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - ctxt
    - pctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 28362
      start: 28324
    functionDepth: 0
    functionLinenumber: 28324
    functionLinenumberEnd: 28362
    functionName: xmlSchemaValidateStreamInternal
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaSAXUnplug
    - xmlSchemaValidateSetLocator
    - xmlSchemaSAXPlug
    - xmlSchemaVStart
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaValidateStreamInternal(xmlSchemaValidCtxtPtr ctxt,
      xmlParserCtxtPtr pctxt) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:3502,1
    - Dst: WXS_IS_BUCKET_INCREDEF
      Src: /src/libxml2/xmlschemas.c:3509,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:3513,1
    - Dst: WXS_IMPBUCKET
      Src: /src/libxml2/xmlschemas.c:3549,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:3548,1
    - Dst: xmlSchemaBucketFree
      Src: /src/libxml2/xmlschemas.c:3558,1
    - Dst: WXS_HAS_BUCKETS
      Src: /src/libxml2/xmlschemas.c:3538,1
    - Dst: WXS_IMPBUCKET
      Src: /src/libxml2/xmlschemas.c:3566,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/xmlschemas.c:3589,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:3604,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:3515,1
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:3526,1
    - Dst: xmlSchemaBucketFree
      Src: /src/libxml2/xmlschemas.c:3542,1
    - Dst: xmlSchemaBucketFree
      Src: /src/libxml2/xmlschemas.c:3567,1
    - Dst: WXS_IMPBUCKET
      Src: /src/libxml2/xmlschemas.c:3570,1
    - Dst: WXS_IS_BUCKET_IMPMAIN
      Src: /src/libxml2/xmlschemas.c:3573,1
    - Dst: WXS_IS_BUCKET_IMPMAIN
      Src: /src/libxml2/xmlschemas.c:3602,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:3602,1
    - Dst: WXS_INCBUCKET
      Src: /src/libxml2/xmlschemas.c:3603,1
    - Dst: WXS_IMPBUCKET
      Src: /src/libxml2/xmlschemas.c:3604,1
    - Dst: xmlSchemaBucketFree
      Src: /src/libxml2/xmlschemas.c:3618,1
    - Dst: xmlSchemaItemListAdd
      Src: /src/libxml2/xmlschemas.c:3617,1
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:3611,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:3503,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:3507,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:3518,1
    - Dst: WXS_IS_BUCKET_INCREDEF
      Src: /src/libxml2/xmlschemas.c:3539,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:3540,1
    - Dst: WXS_IMPBUCKET
      Src: /src/libxml2/xmlschemas.c:3565,1
    - Dst: xmlHashCreateDict
      Src: /src/libxml2/xmlschemas.c:3581,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:3582,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:3595,1
    - Dst: WXS_INCBUCKET
      Src: /src/libxml2/xmlschemas.c:3606,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:3607,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:3626,1
    - Dst: xmlSchemaItemListAdd
      Src: /src/libxml2/xmlschemas.c:3626,1
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:3521,1
    - Dst: xmlSchemaBucketFree
      Src: /src/libxml2/xmlschemas.c:3523,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:3556,1
    - Dst: xmlSchemaBucketFree
      Src: /src/libxml2/xmlschemas.c:3528,1
    - Dst: xmlSchemaNewSchema
      Src: /src/libxml2/xmlschemas.c:3565,1
    - Dst: xmlSchemaBucketFree
      Src: /src/libxml2/xmlschemas.c:3584,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/xmlschemas.c:3592,1
    - Dst: xmlSchemaBucketFree
      Src: /src/libxml2/xmlschemas.c:3597,1
    - Dst: WXS_INCBUCKET
      Src: /src/libxml2/xmlschemas.c:3607,1
    - Dst: xmlSchemaBucketFree
      Src: /src/libxml2/xmlschemas.c:3613,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 101
    argCount: 3
    argNames:
    - pctxt
    - type
    - targetNamespace
    argTypes:
    - xmlSchemaParserCtxtPtr
    - int
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3629
      start: 3494
    functionDepth: 0
    functionLinenumber: 3494
    functionLinenumberEnd: 3629
    functionName: xmlSchemaBucketCreate
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_CONSTRUCTOR
    - WXS_IS_BUCKET_IMPMAIN
    - WXS_IMPBUCKET
    - WXS_INCBUCKET
    - xmlSchemaNewSchema
    - memset
    - WXS_HAS_BUCKETS
    - xmlSchemaItemListAdd
    - WXS_IS_BUCKET_INCREDEF
    - xmlSchemaPErrMemory
    - PERROR_INT
    - xmlHashAddEntry
    - xmlSchemaItemListCreate
    - xmlMalloc
    - xmlSchemaBucketFree
    - xmlHashCreateDict
    linkageType: ''
    returnType: xmlSchemaBucketPtr
    signature: "static xmlSchemaBucketPtr xmlSchemaBucketCreate(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t int type, const xmlChar *targetNamespace) "
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4341,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4344,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4347,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4365,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4380,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4377,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4395,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4339,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4356,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4374,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4362,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4371,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4392,1
    - Dst: xmlSchemaContentModelDump
      Src: /src/libxml2/xmlschemas.c:4416,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4337,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4353,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4359,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4386,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4403,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4407,1
    - Dst: xmlSchemaAttrUsesDump
      Src: /src/libxml2/xmlschemas.c:4410,1
    - Dst: xmlSchemaAnnotDump
      Src: /src/libxml2/xmlschemas.c:4412,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4332,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4335,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4350,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4368,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4383,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4398,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4401,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4405,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 46
    argCount: 2
    argNames:
    - type
    - output
    argTypes:
    - xmlSchemaTypePtr
    - FILE*
    constantsTouched: []
    func_position:
      end: 4420
      start: 4328
    functionDepth: 0
    functionLinenumber: 4328
    functionLinenumberEnd: 4420
    functionName: xmlSchemaTypeDump
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaAttrUsesDump
    - xmlSchemaContentModelDump
    - xmlSchemaAnnotDump
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaTypeDump(xmlSchemaTypePtr type, FILE * output) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:3635,1
    - Dst: xmlSchemaItemListAddSize
      Src: /src/libxml2/xmlschemas.c:3639,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - list
    - initialSize
    - item
    argTypes:
    - xmlSchemaItemListPtr*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 3640
      start: 3631
    functionDepth: 0
    functionLinenumber: 3631
    functionLinenumberEnd: 3640
    functionName: xmlSchemaAddItemSize
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaItemListAddSize
    - xmlSchemaItemListCreate
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaAddItemSize(xmlSchemaItemListPtr *list, int initialSize,
      void *item) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaTypeDump
      Src: /src/libxml2/xmlschemas.c:4426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - type
    - output
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4427
      start: 4422
    functionDepth: 0
    functionLinenumber: 4422
    functionLinenumberEnd: 4427
    functionName: xmlSchemaTypeDumpEntry
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaTypeDump
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaTypeDumpEntry(void *type, void *output, const
      xmlChar *name ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: return
      Src: /src/libxml2/xmlschemas.c:8569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - topLevel
    argTypes:
    - topLevel
    constantsTouched: []
    func_position:
      end: 8573
      start: 8567
    functionDepth: 0
    functionLinenumber: 8567
    functionLinenumberEnd: 8573
    functionName: if
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - return
    linkageType: ''
    returnType: FREE_AND_NULL(des)
    signature: "FREE_AND_NULL(des) if (topLevel)\treturn ((xmlSchemaBasicItemPtr)
      decl) ; else "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21868,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21884,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21883,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21869,1
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:21887,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:21890,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21891,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - xmlSchemaIDCMatcherPtr
    constantsTouched: []
    func_position:
      end: 21894
      start: 21857
    functionDepth: 0
    functionLinenumber: 21857
    functionLinenumberEnd: 21894
    functionName: xmlSchemaIDCFreeMatcherList
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFree
    - xmlSchemaItemListFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaIDCFreeMatcherList(xmlSchemaIDCMatcherPtr matcher) '
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeWildcardNsSet
      Src: /src/libxml2/xmlschemas.c:13269,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:13273,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:13364,1
    - Dst: xmlSchemaFreeWildcardNsSet
      Src: /src/libxml2/xmlschemas.c:13360,1
    - Dst: xmlSchemaNewWildcardNsConstraint
      Src: /src/libxml2/xmlschemas.c:13300,1
    - Dst: xmlSchemaFreeWildcardNsSet
      Src: /src/libxml2/xmlschemas.c:13374,1
    - Dst: xmlSchemaNewWildcardNsConstraint
      Src: /src/libxml2/xmlschemas.c:13378,1
    - Dst: xmlSchemaPErr
      Src: /src/libxml2/xmlschemas.c:13388,1
    - Dst: xmlSchemaFreeWildcardNsSet
      Src: /src/libxml2/xmlschemas.c:13401,1
    - Dst: xmlSchemaNewWildcardNsConstraint
      Src: /src/libxml2/xmlschemas.c:13404,1
    - Dst: xmlSchemaFreeWildcardNsSet
      Src: /src/libxml2/xmlschemas.c:13435,1
    - Dst: xmlSchemaFreeWildcardNsSet
      Src: /src/libxml2/xmlschemas.c:13452,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:13439,1
    - Dst: xmlSchemaNewWildcardNsConstraint
      Src: /src/libxml2/xmlschemas.c:13455,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 186
    argCount: 3
    argNames:
    - ctxt
    - completeWild
    - curWild
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaWildcardPtr
    - xmlSchemaWildcardPtr
    constantsTouched: []
    func_position:
      end: 13464
      start: 13217
    functionDepth: 0
    functionLinenumber: 13217
    functionLinenumberEnd: 13464
    functionName: xmlSchemaUnionWildcards
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaNewWildcardNsConstraint
    - xmlSchemaPErr
    - xmlSchemaFreeWildcardNsSet
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaUnionWildcards(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      xmlSchemaWildcardPtr completeWild,\t\t\t xmlSchemaWildcardPtr curWild) "
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:22266,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:22272,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:22345,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22348,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:22404,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:22411,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:22394,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:22351,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22423,1
    - Dst: xmlSchemaFormatIDCKeySequence
      Src: /src/libxml2/xmlschemas.c:22573,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/xmlschemas.c:22659,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22660,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22600,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22408,1
    - Dst: xmlSchemaGetIDCDesignation
      Src: /src/libxml2/xmlschemas.c:22393,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:22419,1
    - Dst: xmlSchemaIDCAcquireTargetList
      Src: /src/libxml2/xmlschemas.c:22517,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:22534,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:22584,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22588,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22636,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22637,1
    - Dst: xmlSchemaGetIDCDesignation
      Src: /src/libxml2/xmlschemas.c:22575,1
    - Dst: xmlSchemaIDCStoreNodeTableItem
      Src: /src/libxml2/xmlschemas.c:22598,1
    - Dst: xmlSchemaIDCAppendNodeTableItem
      Src: /src/libxml2/xmlschemas.c:22628,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:22647,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:22703,1
    - Dst: xmlSchemaGetIDCDesignation
      Src: /src/libxml2/xmlschemas.c:22682,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22649,1
    - Dst: xmlStreamPop
      Src: /src/libxml2/xmlschemas.c:22240,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:22265,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:22242,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:22295,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:22305,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22354,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22422,1
    - Dst: xmlSchemaIDCFreeKey
      Src: /src/libxml2/xmlschemas.c:22437,1
    - Dst: xmlSchemaIDCAcquireBinding
      Src: /src/libxml2/xmlschemas.c:22515,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:22546,1
    - Dst: xmlSchemaVAddNodeQName
      Src: /src/libxml2/xmlschemas.c:22610,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22690,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22613,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/xmlschemas.c:22653,1
    - Dst: xmlSchemaGetIDCDesignation
      Src: /src/libxml2/xmlschemas.c:22294,1
    - Dst: xmlSchemaIDCStoreKey
      Src: /src/libxml2/xmlschemas.c:22436,1
    - Dst: xmlSchemaHashKeySequence
      Src: /src/libxml2/xmlschemas.c:22532,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/xmlschemas.c:22533,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:22576,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:22577,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:22592,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22599,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22614,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/xmlschemas.c:22645,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22587,1
    - Dst: xmlSchemaHashKeySequence
      Src: /src/libxml2/xmlschemas.c:22646,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22661,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:22665,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:22683,1
    - Dst: xmlSchemaItemListAdd
      Src: /src/libxml2/xmlschemas.c:22630,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 239
    argCount: 2
    argNames:
    - vctxt
    - depth
    argTypes:
    - xmlSchemaValidCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 22722
      start: 22223
    functionDepth: 0
    functionLinenumber: 22223
    functionLinenumberEnd: 22722
    functionName: xmlSchemaXPathProcessHistory
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaIDCStoreNodeTableItem
    - xmlSchemaIDCStoreKey
    - xmlGrowCapacity
    - xmlSchemaVErrMemory
    - xmlSchemaHashKeySequence
    - WXS_HAS_SIMPLE_CONTENT
    - xmlSchemaVAddNodeQName
    - xmlSchemaIDCAppendNodeTableItem
    - xmlSchemaGetIDCDesignation
    - VERROR
    - xmlRealloc
    - xmlSchemaFormatIDCKeySequence
    - xmlHashLookup
    - xmlMalloc
    - WXS_IS_COMPLEX
    - xmlFree
    - xmlSchemaIDCAcquireBinding
    - memset
    - FREE_AND_NULL
    - xmlHashAddEntry
    - VERROR_INT
    - xmlSchemaIDCAcquireTargetList
    - xmlStreamPop
    - xmlHashCreate
    - xmlSchemaItemListAdd
    - xmlSchemaIDCFreeKey
    - xmlSchemaAreValuesEqual
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaXPathProcessHistory(xmlSchemaValidCtxtPtr vctxt,\t\t\t
      int depth) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/xmlschemas.c:27887,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 7
    argNames:
    - ctx
    - elem
    - name
    - type
    - def
    - defaultValue
    - tree
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - int
    - int
    - xmlChar*
    - xmlEnumerationPtr
    constantsTouched: []
    func_position:
      end: 27889
      start: 27876
    functionDepth: 0
    functionLinenumber: 27876
    functionLinenumberEnd: 27889
    functionName: attributeDeclSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFreeEnumeration
    linkageType: ''
    returnType: void
    signature: 'static void attributeDeclSplit(void *ctx, const xmlChar * elem, const
      xmlChar * name, int type, int def, const xmlChar * defaultValue, xmlEnumerationPtr
      tree) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - ATTRIBUTE_UNUSED
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 27989
      start: 27982
    functionDepth: 0
    functionLinenumber: 27982
    functionLinenumberEnd: 27989
    functionName: errorSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void errorSplit(void *ctx, const char *msg ATTRIBUTE_UNUSED,
      ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - name
    - type
    - content
    argTypes:
    - void*
    - xmlChar*
    - int
    - xmlElementContentPtr
    constantsTouched: []
    func_position:
      end: 27899
      start: 27891
    functionDepth: 0
    functionLinenumber: 27891
    functionLinenumberEnd: 27899
    functionName: elementDeclSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static void elementDeclSplit(void *ctx, const xmlChar *name, int type,\t
      xmlElementContentPtr content) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - ATTRIBUTE_UNUSED
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 27997
      start: 27990
    functionDepth: 0
    functionLinenumber: 27990
    functionLinenumberEnd: 27997
    functionName: fatalErrorSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void fatalErrorSplit(void *ctx, const char *msg ATTRIBUTE_UNUSED,
      ...) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaNewWildcardNsConstraint
      Src: /src/libxml2/xmlschemas.c:13184,1
    - Dst: xmlSchemaNewWildcardNsConstraint
      Src: /src/libxml2/xmlschemas.c:13198,1
    - Dst: xmlSchemaFreeWildcardNsSet
      Src: /src/libxml2/xmlschemas.c:13196,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - ctxt
    - dest
    - source
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaWildcardPtr
    - xmlSchemaWildcardPtr
    constantsTouched: []
    func_position:
      end: 13205
      start: 13171
    functionDepth: 0
    functionLinenumber: 13171
    functionLinenumberEnd: 13205
    functionName: xmlSchemaCloneWildcardNsConstraints
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaNewWildcardNsConstraint
    - xmlSchemaFreeWildcardNsSet
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCloneWildcardNsConstraints(xmlSchemaParserCtxtPtr
      ctxt,\t\t\t\t xmlSchemaWildcardPtr dest,\t\t\t\t xmlSchemaWildcardPtr source) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21917,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21934,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21933,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:21941,1
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:21937,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - vctxt
    - matcher
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlSchemaIDCMatcherPtr
    constantsTouched: []
    func_position:
      end: 21954
      start: 21902
    functionDepth: 0
    functionLinenumber: 21902
    functionLinenumberEnd: 21954
    functionName: xmlSchemaIDCReleaseMatcherList
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFree
    - xmlSchemaItemListFree
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaIDCReleaseMatcherList(xmlSchemaValidCtxtPtr vctxt,\t\t\t
      xmlSchemaIDCMatcherPtr matcher) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:19781,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:19782,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:19793,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:19794,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:19797,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19809,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:19818,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19819,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:19830,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19831,1
    - Dst: PERROR_INT2
      Src: /src/libxml2/xmlschemas.c:19836,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:19856,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:19858,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:19867,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:19855,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:19861,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:19859,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 2
    argNames:
    - ctxt
    - use
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaAttributeUsePtr
    constantsTouched: []
    func_position:
      end: 19872
      start: 19775
    functionDepth: 0
    functionLinenumber: 19775
    functionLinenumberEnd: 19872
    functionName: xmlSchemaCheckAttrUsePropsCorrect
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_ATTRUSE_DECL
    - xmlSchemaPCustomErr
    - xmlSchemaIsDerivedFromBuiltInType
    - WXS_ATTRUSE_TYPEDEF
    - PERROR_INT2
    - xmlSchemaVCheckCVCSimpleType
    - xmlSchemaAreValuesEqual
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckAttrUsePropsCorrect(xmlSchemaParserCtxtPtr
      ctxt,\t\t\t xmlSchemaAttributeUsePtr use) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3815,1
    - Dst: xmlFreeStreamCtxt
      Src: /src/libxml2/xmlschemas.c:3817,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3818,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - sto
    argTypes:
    - xmlSchemaIDCStateObjPtr
    constantsTouched: []
    func_position:
      end: 3821
      start: 3808
    functionDepth: 0
    functionLinenumber: 3808
    functionLinenumberEnd: 3821
    functionName: xmlSchemaFreeIDCStateObjList
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFreeStreamCtxt
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaFreeIDCStateObjList(xmlSchemaIDCStateObjPtr sto) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:1369,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - xmlSchemaBasicItemPtr
    constantsTouched: []
    func_position:
      end: 1386
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1386
    functionName: xmlSchemaGetComponentTargetNs
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_ATTRUSE_DECL
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlSchemaGetComponentTargetNs(xmlSchemaBasicItemPtr
      item) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFormatItemForReport
      Src: /src/libxml2/xmlschemas.c:2807,1
    - Dst: xmlSchemaPErr
      Src: /src/libxml2/xmlschemas.c:2810,1
    - Dst: xmlSchemaPErr
      Src: /src/libxml2/xmlschemas.c:2812,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:2815,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 6
    argNames:
    - ctxt
    - error
    - ownerItem
    - ownerElem
    - name
    - message
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlParserErrors
    - xmlSchemaBasicItemPtr
    - xmlNodePtr
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2816
      start: 2797
    functionDepth: 0
    functionLinenumber: 2797
    functionLinenumberEnd: 2816
    functionName: xmlSchemaPMissingAttrErr
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPErr
    - xmlSchemaFormatItemForReport
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaPMissingAttrErr(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      xmlParserErrors error,\t\t\t xmlSchemaBasicItemPtr ownerItem,\t\t\t xmlNodePtr
      ownerElem,\t\t\t const char *name,\t\t\t const char *message) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaSetValidErrors
      Src: /src/libxml2/xmlschemas.c:20994,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 4
    argNames:
    - ctxt
    - err
    - warn
    - ctx
    argTypes:
    - xmlSchemaParserCtxt*
    - xmlSchemaValidityErrorFunc
    - xmlSchemaValidityWarningFunc
    - void*
    constantsTouched: []
    func_position:
      end: 20995
      start: 20983
    functionDepth: 0
    functionLinenumber: 20983
    functionLinenumberEnd: 20995
    functionName: xmlSchemaSetParserErrors
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaSetValidErrors
    linkageType: ''
    returnType: void
    signature: 'void xmlSchemaSetParserErrors(xmlSchemaParserCtxt *ctxt, xmlSchemaValidityErrorFunc
      err, xmlSchemaValidityWarningFunc warn, void *ctx) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:1392,1
    - Dst: xmlSchemaGetComponentName
      Src: /src/libxml2/xmlschemas.c:1394,1
    - Dst: xmlSchemaGetComponentTargetNs
      Src: /src/libxml2/xmlschemas.c:1393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - item
    argTypes:
    - xmlChar**
    - void*
    constantsTouched: []
    func_position:
      end: 1395
      start: 1388
    functionDepth: 0
    functionLinenumber: 1388
    functionLinenumberEnd: 1395
    functionName: xmlSchemaGetComponentQName
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetComponentTargetNs
    - xmlSchemaGetComponentName
    - xmlSchemaFormatQName
    linkageType: ''
    returnType: xmlChar*
    signature: "static const xmlChar *xmlSchemaGetComponentQName(xmlChar **buf,\t\t\t
      void *item) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetProp
      Src: /src/libxml2/xmlschemas.c:5967,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:5979,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:5977,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:5981,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:5975,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:5984,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:5987,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:5988,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 4
    argNames:
    - ctxt
    - node
    - name
    - def
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlNodePtr
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5992
      start: 5960
    functionDepth: 0
    functionLinenumber: 5960
    functionLinenumberEnd: 5992
    functionName: xmlGetBooleanProp
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetBuiltInType
    - xmlSchemaGetProp
    - xmlStrEqual
    - xmlSchemaPSimpleTypeErr
    - xmlSchemaGetPropNode
    linkageType: ''
    returnType: int
    signature: "static int xmlGetBooleanProp(xmlSchemaParserCtxtPtr ctxt,\t\t xmlNodePtr
      node, const char *name, int def) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:16502,1
    - Dst: xmlSchemaCheckCOSDerivedOK
      Src: /src/libxml2/xmlschemas.c:16569,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:16533,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:16503,1
    - Dst: xmlSchemaCheckParticleRangeOK
      Src: /src/libxml2/xmlschemas.c:16509,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 50
    argCount: 3
    argNames:
    - ctxt
    - r
    - b
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaParticlePtr
    - xmlSchemaParticlePtr
    constantsTouched: []
    func_position:
      end: 16574
      start: 16487
    functionDepth: 0
    functionLinenumber: 16487
    functionLinenumberEnd: 16574
    functionName: xmlSchemaCheckRCaseNameAndTypeOK
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaCheckParticleRangeOK
    - xmlStrEqual
    - xmlSchemaCheckCOSDerivedOK
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckRCaseNameAndTypeOK(xmlSchemaParserCtxtPtr
      ctxt,\t\t\t\t xmlSchemaParticlePtr r,\t\t\t\t xmlSchemaParticlePtr b) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaPostRun
      Src: /src/libxml2/xmlschemas.c:28250,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:28260,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - plug
    argTypes:
    - xmlSchemaSAXPlugStruct*
    constantsTouched: []
    func_position:
      end: 28262
      start: 28240
    functionDepth: 0
    functionLinenumber: 28240
    functionLinenumberEnd: 28262
    functionName: xmlSchemaSAXUnplug
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaPostRun
    linkageType: ''
    returnType: int
    signature: 'int xmlSchemaSAXUnplug(xmlSchemaSAXPlugStruct *plug) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchemaValidCtxt*
    constantsTouched: []
    func_position:
      end: 28477
      start: 28471
    functionDepth: 0
    functionLinenumber: 28471
    functionLinenumberEnd: 28477
    functionName: xmlSchemaValidCtxtGetParserCtxt
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlParserCtxt*
    signature: 'xmlParserCtxt *xmlSchemaValidCtxtGetParserCtxt(xmlSchemaValidCtxt
      *ctxt) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeAnnot
      Src: /src/libxml2/xmlschemas.c:3836,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3841,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3851,1
    - Dst: xmlFreePattern
      Src: /src/libxml2/xmlschemas.c:3840,1
    - Dst: xmlFreePattern
      Src: /src/libxml2/xmlschemas.c:3850,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3854,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - idcDef
    argTypes:
    - xmlSchemaIDCPtr
    constantsTouched: []
    func_position:
      end: 3855
      start: 3828
    functionDepth: 0
    functionLinenumber: 3828
    functionLinenumberEnd: 3855
    functionName: xmlSchemaFreeIDC
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaFreeAnnot
    - xmlFreePattern
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaFreeIDC(xmlSchemaIDCPtr idcDef) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/xmlschemas.c:5923,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:5929,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:5931,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:5933,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:5935,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:5938,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:5941,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:5946,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - ctxt
    - ownerItem
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaBasicItemPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5948
      start: 5915
    functionDepth: 0
    functionLinenumber: 5915
    functionLinenumberEnd: 5948
    functionName: xmlSchemaPGetBoolNodeValue
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaGetBuiltInType
    - xmlStrEqual
    - xmlNodeGetContent
    - xmlSchemaPSimpleTypeErr
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaPGetBoolNodeValue(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      xmlSchemaBasicItemPtr ownerItem,\t\t\t xmlNodePtr node) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 4
    argNames:
    - rmin
    - rmax
    - bmin
    - bmax
    argTypes:
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 16469
      start: 16459
    functionDepth: 0
    functionLinenumber: 16459
    functionLinenumberEnd: 16469
    functionName: xmlSchemaCheckParticleRangeOK
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckParticleRangeOK(int rmin, int rmax,\t\t\t
      int bmin, int bmax) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetType
      Src: /src/libxml2/xmlschemas.c:19901,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:19917,1
    - Dst: xmlSchemaPResCompAttrErr
      Src: /src/libxml2/xmlschemas.c:19904,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:19903,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - item
    - ctxt
    argTypes:
    - xmlSchemaAttributePtr
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 19920
      start: 19883
    functionDepth: 0
    functionLinenumber: 19883
    functionLinenumberEnd: 19920
    functionName: xmlSchemaResolveAttrTypeReferences
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetBuiltInType
    - xmlSchemaPResCompAttrErr
    - WXS_IS_SIMPLE
    - xmlSchemaGetType
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaResolveAttrTypeReferences(xmlSchemaAttributePtr
      item,\t\t\t\t xmlSchemaParserCtxtPtr ctxt) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaSetValidStructuredErrors
      Src: /src/libxml2/xmlschemas.c:21014,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - ctxt
    - serror
    - ctx
    argTypes:
    - xmlSchemaParserCtxt*
    - xmlStructuredErrorFunc
    - void*
    constantsTouched: []
    func_position:
      end: 21015
      start: 21004
    functionDepth: 0
    functionLinenumber: 21004
    functionLinenumberEnd: 21015
    functionName: xmlSchemaSetParserStructuredErrors
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaSetValidStructuredErrors
    linkageType: ''
    returnType: void
    signature: "void xmlSchemaSetParserStructuredErrors(xmlSchemaParserCtxt *ctxt,\t\t\t\t
      xmlStructuredErrorFunc serror,\t\t\t\t void *ctx) "
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:28124,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:28128,1
    - Dst: xmlSchemaPreRun
      Src: /src/libxml2/xmlschemas.c:28229,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 99
    argCount: 3
    argNames:
    - ctxt
    - sax
    - user_data
    argTypes:
    - xmlSchemaValidCtxt*
    - xmlSAXHandler**
    - void**
    constantsTouched: []
    func_position:
      end: 28231
      start: 28100
    functionDepth: 0
    functionLinenumber: 28100
    functionLinenumberEnd: 28231
    functionName: xmlSchemaSAXPlug
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPreRun
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchemaSAXPlugStruct*
    signature: "xmlSchemaSAXPlugStruct *xmlSchemaSAXPlug(xmlSchemaValidCtxt *ctxt,\t\t
      xmlSAXHandler **sax, void **user_data) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreateURLParserCtxt
      Src: /src/libxml2/xmlschemas.c:28453,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/xmlschemas.c:28460,1
    - Dst: xmlSchemaValidateStreamInternal
      Src: /src/libxml2/xmlschemas.c:28459,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:28457,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - ctxt
    - filename
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlSchemaValidCtxt*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 28462
      start: 28442
    functionDepth: 0
    functionLinenumber: 28442
    functionLinenumberEnd: 28462
    functionName: xmlSchemaValidateFile
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCreateURLParserCtxt
    - xmlSchemaValidateStreamInternal
    - xmlFreeParserCtxt
    linkageType: ''
    returnType: int
    signature: "int xmlSchemaValidateFile(xmlSchemaValidCtxt *ctxt, const char * filename,\t\t
      int options ATTRIBUTE_UNUSED) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:21724,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21727,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:21730,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21732,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - bind
    - ntItem
    argTypes:
    - xmlSchemaPSVIIDCBindingPtr
    - xmlSchemaPSVIIDCNodePtr
    constantsTouched: []
    func_position:
      end: 21742
      start: 21716
    functionDepth: 0
    functionLinenumber: 21716
    functionLinenumberEnd: 21742
    functionName: xmlSchemaIDCAppendNodeTableItem
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlSchemaVErrMemory
    - xmlRealloc
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaIDCAppendNodeTableItem(xmlSchemaPSVIIDCBindingPtr
      bind,\t\t\t\txmlSchemaPSVIIDCNodePtr ntItem) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 0
    argNames:
    - 11,12
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 2008
    functionDepth: 0
    functionLinenumber: 2008
    functionLinenumberEnd: 2033
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void LIBXML_ATTR_FORMAT(11,12) xmlSchemaVErrFull(xmlSchemaValidCtxtPtr
      ctxt, xmlNodePtr node, int code, xmlErrorLevel level, const char *file, int
      line, const xmlChar *str1, const xmlChar *str2, const xmlChar *str3, int col,
      const char *msg, ...) { xmlGenericErrorFunc channel = NULL; xmlStructuredErrorFunc
      schannel = NULL; void *data = NULL; int res; va_list ap; if (ctxt != NULL) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaParserCtxtCreate
      Src: /src/libxml2/xmlschemas.c:12219,1
    - Dst: xmlDictCreate
      Src: /src/libxml2/xmlschemas.c:12223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 12228
      start: 12212
    functionDepth: 0
    functionLinenumber: 12212
    functionLinenumberEnd: 12228
    functionName: xmlSchemaNewDocParserCtxt
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlDictCreate
    - xmlSchemaParserCtxtCreate
    linkageType: ''
    returnType: xmlSchemaParserCtxt*
    signature: 'xmlSchemaParserCtxt *xmlSchemaNewDocParserCtxt(xmlDoc *doc) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:24596,1
    - Dst: xmlSchemaGetMetaAttrInfo
      Src: /src/libxml2/xmlschemas.c:24621,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:24610,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:24605,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:24600,1
    - Dst: ACTIVATE_ATTRIBUTE
      Src: /src/libxml2/xmlschemas.c:24624,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:24628,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:24630,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:24634,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:24644,1
    - Dst: xmlSchemaProcessXSIType
      Src: /src/libxml2/xmlschemas.c:24675,1
    - Dst: xmlSchemaGetMetaAttrInfo
      Src: /src/libxml2/xmlschemas.c:24670,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:24702,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:24654,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:24679,1
    - Dst: xmlSchemaIDCRegisterMatchers
      Src: /src/libxml2/xmlschemas.c:24696,1
    - Dst: xmlSchemaValueGetAsBoolean
      Src: /src/libxml2/xmlschemas.c:24648,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 24712
      start: 24586
    functionDepth: 0
    functionLinenumber: 24586
    functionLinenumberEnd: 24712
    functionName: xmlSchemaValidateElemDecl
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_ELEM_TYPEDEF
    - xmlSchemaIDCRegisterMatchers
    - xmlSchemaGetBuiltInType
    - xmlSchemaValueGetAsBoolean
    - VERROR
    - xmlSchemaVCheckCVCSimpleType
    - ACTIVATE_ATTRIBUTE
    - xmlSchemaProcessXSIType
    - VERROR_INT
    - xmlSchemaGetMetaAttrInfo
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaValidateElemDecl(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 24740
      start: 24714
    functionDepth: 0
    functionLinenumber: 24714
    functionLinenumberEnd: 24740
    functionName: xmlSchemaVAttributesSimple
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaVAttributesSimple(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:21689,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:21695,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21697,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21692,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - vctxt
    - key
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlSchemaPSVIIDCKeyPtr
    constantsTouched: []
    func_position:
      end: 21707
      start: 21678
    functionDepth: 0
    functionLinenumber: 21678
    functionLinenumberEnd: 21707
    functionName: xmlSchemaIDCStoreKey
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlSchemaVErrMemory
    - xmlRealloc
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaIDCStoreKey(xmlSchemaValidCtxtPtr vctxt,\t\t xmlSchemaPSVIIDCKeyPtr
      key) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaErr4
      Src: /src/libxml2/xmlschemas.c:2171,1
    - Dst: xmlSchemaErr4Line
      Src: /src/libxml2/xmlschemas.c:2176,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 0
    argNames:
    - 4,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 2161
    functionDepth: 0
    functionLinenumber: 2161
    functionLinenumberEnd: 2178
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaErr4Line
    - xmlSchemaErr4
    linkageType: ''
    returnType: void
    signature: "static void LIBXML_ATTR_FORMAT(4,0) xmlSchemaErr3(xmlSchemaAbstractCtxtPtr
      actxt,\t int error, xmlNodePtr node, const char *msg,\t const xmlChar *str1,
      const xmlChar *str2, const xmlChar *str3){ xmlSchemaErr4Line(actxt, XML_ERR_ERROR,
      error, node, 0,\tmsg, str1, str2, str3, NULL); }static void LIBXML_ATTR_FORMAT(4,0)xmlSchemaErr4(xmlSchemaAbstractCtxtPtr
      actxt,\t int error, xmlNodePtr node, const char *msg,\t const xmlChar *str1,
      const xmlChar *str2,\t const xmlChar *str3, const xmlChar *str4) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaEvalErrorNodeType
      Src: /src/libxml2/xmlschemas.c:2667,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 0
    argNames:
    - 8,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2676
      start: 2653
    functionDepth: 0
    functionLinenumber: 2653
    functionLinenumberEnd: 2676
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaEvalErrorNodeType
    linkageType: ''
    returnType: void
    signature: "static void LIBXML_ATTR_FORMAT(8,0) xmlSchemaFacetErr(xmlSchemaAbstractCtxtPtr
      actxt,\t\t xmlParserErrors error,\t\t xmlNodePtr node,\t\t const xmlChar *value,\t\t
      unsigned long length,\t\t xmlSchemaTypePtr type,\t\t xmlSchemaFacetPtr facet,\t\t
      const char *message,\t\t const xmlChar *str1,\t\t const xmlChar *str2){ xmlChar
      *str = NULL, *msg = NULL; xmlSchemaTypeType facetType; int nodeType = xmlSchemaEvalErrorNodeType(actxt,
      node); xmlSchemaFormatNodeForError(&msg, actxt, node); if (error == XML_SCHEMAV_CVC_ENUMERATION_VALID) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - prohib
    argTypes:
    - xmlSchemaAttributeUseProhibPtr
    constantsTouched: []
    func_position:
      end: 3725
      start: 3719
    functionDepth: 0
    functionLinenumber: 3719
    functionLinenumberEnd: 3725
    functionName: xmlSchemaFreeAttributeUseProhib
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaFreeAttributeUseProhib(xmlSchemaAttributeUseProhibPtr
      prohib) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaPErr
      Src: /src/libxml2/xmlschemas.c:6160,1
    - Dst: xmlSchemaPValAttrNode
      Src: /src/libxml2/xmlschemas.c:6173,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:6167,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 6
    argNames:
    - ctxt
    - ownerItem
    - ownerElem
    - name
    - type
    - value
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaBasicItemPtr
    - xmlNodePtr
    - char*
    - xmlSchemaTypePtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 6175
      start: 6142
    functionDepth: 0
    functionLinenumber: 6142
    functionLinenumberEnd: 6175
    functionName: xmlSchemaPValAttr
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPValAttrNode
    - xmlSchemaPErr
    - xmlSchemaGetPropNode
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaPValAttr(xmlSchemaParserCtxtPtr ctxt,\t\t xmlSchemaBasicItemPtr
      ownerItem,\t\t xmlNodePtr ownerElem,\t\t const char *name,\t\t xmlSchemaTypePtr
      type,\t\t const xmlChar **value) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetIDC
      Src: /src/libxml2/xmlschemas.c:19938,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:19981,1
    - Dst: xmlSchemaPResCompAttrErr
      Src: /src/libxml2/xmlschemas.c:19945,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - idc
    - pctxt
    argTypes:
    - xmlSchemaIDCPtr
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 19990
      start: 19930
    functionDepth: 0
    functionLinenumber: 19930
    functionLinenumberEnd: 19990
    functionName: xmlSchemaResolveIDCKeyReferences
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPResCompAttrErr
    - xmlSchemaFormatQName
    - xmlSchemaGetIDC
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaResolveIDCKeyReferences(xmlSchemaIDCPtr idc,\t\t\t
      xmlSchemaParserCtxtPtr pctxt) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - name
    - ExternalID
    - SystemID
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 27790
      start: 27781
    functionDepth: 0
    functionLinenumber: 27781
    functionLinenumberEnd: 27790
    functionName: internalSubsetSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static void internalSubsetSplit(void *ctx, const xmlChar *name,\t
      const xmlChar *ExternalID, const xmlChar *SystemID) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6185,1
    - Dst: WXS_IS_BUCKET_IMPMAIN
      Src: /src/libxml2/xmlschemas.c:6197,1
    - Dst: WXS_BUCKET
      Src: /src/libxml2/xmlschemas.c:6195,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6187,1
    - Dst: WXS_BUCKET
      Src: /src/libxml2/xmlschemas.c:6192,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6198,1
    - Dst: xmlSchemaCustomErr
      Src: /src/libxml2/xmlschemas.c:6210,1
    - Dst: xmlSchemaCustomErr
      Src: /src/libxml2/xmlschemas.c:6216,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 5
    argNames:
    - pctxt
    - ATTRIBUTE_UNUSED
    - node
    - attr
    - namespaceName
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    - xmlAttrPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 6223
      start: 6177
    functionDepth: 0
    functionLinenumber: 6177
    functionLinenumberEnd: 6223
    functionName: xmlSchemaCheckReference
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_IS_BUCKET_IMPMAIN
    - xmlStrEqual
    - WXS_BUCKET
    - xmlSchemaCustomErr
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckReference(xmlSchemaParserCtxtPtr pctxt,\t\t
      xmlSchemaPtr schema ATTRIBUTE_UNUSED,\t\t xmlNodePtr node,\t\t xmlAttrPtr attr,\t\t
      const xmlChar *namespaceName) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetAttributeDecl
      Src: /src/libxml2/xmlschemas.c:19996,1
    - Dst: xmlSchemaPResCompAttrErr
      Src: /src/libxml2/xmlschemas.c:19999,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - prohib
    - pctxt
    argTypes:
    - xmlSchemaAttributeUseProhibPtr
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 20007
      start: 19992
    functionDepth: 0
    functionLinenumber: 19992
    functionLinenumberEnd: 20007
    functionName: xmlSchemaResolveAttrUseProhibReferences
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetAttributeDecl
    - xmlSchemaPResCompAttrErr
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaResolveAttrUseProhibReferences(xmlSchemaAttributeUseProhibPtr
      prohib,\t\t\t\t xmlSchemaParserCtxtPtr pctxt) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xmlschemas.c:12241,1
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:12251,1
    - Dst: xmlDictFree
      Src: /src/libxml2/xmlschemas.c:12252,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/xmlschemas.c:12243,1
    - Dst: xmlSchemaConstructionCtxtFree
      Src: /src/libxml2/xmlschemas.c:12246,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:12253,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchemaParserCtxt*
    constantsTouched: []
    func_position:
      end: 12254
      start: 12235
    functionDepth: 0
    functionLinenumber: 12235
    functionLinenumberEnd: 12254
    functionName: xmlSchemaFreeParserCtxt
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaItemListFree
    - xmlSchemaFreeValidCtxt
    - xmlSchemaConstructionCtxtFree
    - xmlDictFree
    - xmlFreeDoc
    linkageType: ''
    returnType: void
    signature: 'void xmlSchemaFreeParserCtxt(xmlSchemaParserCtxt *ctxt) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetParticleTotalRangeMin
      Src: /src/libxml2/xmlschemas.c:14347,1
    - Dst: xmlSchemaGetParticleTotalRangeMin
      Src: /src/libxml2/xmlschemas.c:14368,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 1
    argNames:
    - particle
    argTypes:
    - xmlSchemaParticlePtr
    constantsTouched: []
    func_position:
      end: 14373
      start: 14329
    functionDepth: 0
    functionLinenumber: 14329
    functionLinenumberEnd: 14373
    functionName: xmlSchemaGetParticleTotalRangeMin
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetParticleTotalRangeMin
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaGetParticleTotalRangeMin(xmlSchemaParticlePtr
      particle) '
  - BBCount: 75
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaResolveTypeReferences
      Src: /src/libxml2/xmlschemas.c:20471,1
    - Dst: xmlSchemaResolveElementReferences
      Src: /src/libxml2/xmlschemas.c:20465,1
    - Dst: xmlSchemaResolveAttrUseReferences
      Src: /src/libxml2/xmlschemas.c:20481,1
    - Dst: xmlSchemaAttributeGroupExpandRefs
      Src: /src/libxml2/xmlschemas.c:20598,1
    - Dst: xmlSchemaFixupSimpleTypeStageTwo
      Src: /src/libxml2/xmlschemas.c:20659,1
    - Dst: xmlSchemaCheckAttrUsePropsCorrect
      Src: /src/libxml2/xmlschemas.c:20696,1
    - Dst: xmlSchemaCheckAGPropsCorrect
      Src: /src/libxml2/xmlschemas.c:20718,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:20732,1
    - Dst: xmlSchemaCheckSRCRedefineSecond
      Src: /src/libxml2/xmlschemas.c:20733,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:20744,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:20841,1
    - Dst: xmlSchemaCheckElementDeclConsistent
      Src: /src/libxml2/xmlschemas.c:20788,1
    - Dst: xmlSchemaCheckSRCRedefineFirst
      Src: /src/libxml2/xmlschemas.c:20425,1
    - Dst: xmlSchemaResolveModelGroupParticleReferences
      Src: /src/libxml2/xmlschemas.c:20497,1
    - Dst: WXS_IS_TYPE_NOT_FIXED_1
      Src: /src/libxml2/xmlschemas.c:20618,1
    - Dst: WXS_ATTR_GROUP_EXPANDED
      Src: /src/libxml2/xmlschemas.c:20595,1
    - Dst: xmlSchemaCheckElementDeclComponent
      Src: /src/libxml2/xmlschemas.c:20774,1
    - Dst: WXS_TYPE_PARTICLE
      Src: /src/libxml2/xmlschemas.c:20790,1
    - Dst: xmlSchemaRedefListFree
      Src: /src/libxml2/xmlschemas.c:20845,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:20784,1
    - Dst: xmlSchemaResolveAttrTypeReferences
      Src: /src/libxml2/xmlschemas.c:20476,1
    - Dst: xmlSchemaResolveIDCKeyReferences
      Src: /src/libxml2/xmlschemas.c:20504,1
    - Dst: xmlSchemaModelGroupToModelGroupDefFixup
      Src: /src/libxml2/xmlschemas.c:20579,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:20658,1
    - Dst: xmlSchemaCheckAttrPropsCorrect
      Src: /src/libxml2/xmlschemas.c:20679,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:20786,1
    - Dst: xmlSchemaBuildContentModel
      Src: /src/libxml2/xmlschemas.c:20811,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:20790,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:20785,1
    - Dst: xmlSchemaAddComponents
      Src: /src/libxml2/xmlschemas.c:20430,1
    - Dst: xmlSchemaCheckTypeDefCircular
      Src: /src/libxml2/xmlschemas.c:20540,1
    - Dst: xmlSchemaCheckGroupDefCircular
      Src: /src/libxml2/xmlschemas.c:20547,1
    - Dst: xmlSchemaFixupSimpleTypeStageOne
      Src: /src/libxml2/xmlschemas.c:20619,1
    - Dst: xmlSchemaCheckUnionTypeDefCircular
      Src: /src/libxml2/xmlschemas.c:20639,1
    - Dst: xmlSchemaCheckAttrGroupCircular
      Src: /src/libxml2/xmlschemas.c:20554,1
    - Dst: WXS_ATTR_GROUP_HAS_REFS
      Src: /src/libxml2/xmlschemas.c:20596,1
    - Dst: xmlSchemaFixupComplexType
      Src: /src/libxml2/xmlschemas.c:20745,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:20785,1
    - Dst: WXS_TYPE_IS_LOCAL
      Src: /src/libxml2/xmlschemas.c:20786,1
    CyclomaticComplexity: 126
    EdgeCount: 126
    ICount: 167
    argCount: 2
    argNames:
    - pctxt
    - rootBucket
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaBucketPtr
    constantsTouched: []
    func_position:
      end: 20849
      start: 20388
    functionDepth: 0
    functionLinenumber: 20388
    functionLinenumberEnd: 20849
    functionName: xmlSchemaFixupComponents
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaCheckTypeDefCircular
    - xmlSchemaCheckGroupDefCircular
    - WXS_IS_TYPE_NOT_FIXED_1
    - xmlSchemaCheckAGPropsCorrect
    - xmlSchemaCheckAttrGroupCircular
    - WXS_TYPE_IS_LOCAL
    - WXS_ELEM_TYPEDEF
    - xmlHashFree
    - xmlSchemaAttributeGroupExpandRefs
    - xmlSchemaRedefListFree
    - xmlSchemaCheckAttrPropsCorrect
    - WXS_TYPE_PARTICLE
    - xmlSchemaAddComponents
    - WXS_IS_COMPLEX
    - xmlSchemaModelGroupToModelGroupDefFixup
    - WXS_ATTR_GROUP_EXPANDED
    - xmlSchemaResolveAttrUseReferences
    - xmlSchemaFixupSimpleTypeStageOne
    - xmlSchemaFixupSimpleTypeStageTwo
    - xmlSchemaResolveModelGroupParticleReferences
    - xmlSchemaResolveElementReferences
    - xmlSchemaCheckElementDeclConsistent
    - xmlSchemaCheckElementDeclComponent
    - WXS_IS_TYPE_NOT_FIXED
    - xmlSchemaCheckUnionTypeDefCircular
    - xmlSchemaResolveAttrTypeReferences
    - xmlSchemaResolveTypeReferences
    - WXS_ATTR_GROUP_HAS_REFS
    - xmlSchemaCheckAttrUsePropsCorrect
    - xmlSchemaCheckSRCRedefineSecond
    - WXS_CONSTRUCTOR
    - xmlSchemaResolveIDCKeyReferences
    - xmlSchemaFixupComplexType
    - xmlSchemaCheckSRCRedefineFirst
    - xmlSchemaBuildContentModel
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaFixupComponents(xmlSchemaParserCtxtPtr pctxt,\t\t\t
      xmlSchemaBucketPtr rootBucket) "
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:22745,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:22810,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:22794,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22812,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:22774,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:22815,1
    - Dst: xmlSchemaIDCAddStateObject
      Src: /src/libxml2/xmlschemas.c:22830,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 2
    argNames:
    - vctxt
    - elemDecl
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlSchemaElementPtr
    constantsTouched: []
    func_position:
      end: 22837
      start: 22732
    functionDepth: 0
    functionLinenumber: 22732
    functionLinenumberEnd: 22837
    functionName: xmlSchemaIDCRegisterMatchers
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - memset
    - xmlSchemaVErrMemory
    - xmlSchemaIDCAddStateObject
    - xmlMalloc
    - VERROR_INT
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaIDCRegisterMatchers(xmlSchemaValidCtxtPtr vctxt,\t\t\t
      xmlSchemaElementPtr elemDecl) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 14319
      start: 14309
    functionDepth: 0
    functionLinenumber: 14309
    functionLinenumberEnd: 14319
    functionName: xmlSchemaGetUnionSimpleTypeMemberTypes
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlSchemaTypeLinkPtr
    signature: 'static xmlSchemaTypeLinkPtr xmlSchemaGetUnionSimpleTypeMemberTypes(xmlSchemaTypePtr
      type) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:18763,1
    - Dst: xmlSchemaAttributeGroupExpandRefs
      Src: /src/libxml2/xmlschemas.c:18795,1
    - Dst: WXS_ATTR_GROUP_CAST
      Src: /src/libxml2/xmlschemas.c:18788,1
    - Dst: xmlSchemaItemListRemove
      Src: /src/libxml2/xmlschemas.c:18770,1
    - Dst: xmlSchemaItemListAddSize
      Src: /src/libxml2/xmlschemas.c:18780,1
    - Dst: xmlSchemaAddWildcard
      Src: /src/libxml2/xmlschemas.c:18817,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:18819,1
    - Dst: xmlSchemaCloneWildcardNsConstraints
      Src: /src/libxml2/xmlschemas.c:18822,1
    - Dst: xmlSchemaIntersectWildcards
      Src: /src/libxml2/xmlschemas.c:18830,1
    - Dst: xmlSchemaItemListRemove
      Src: /src/libxml2/xmlschemas.c:18841,1
    - Dst: xmlSchemaItemListInsert
      Src: /src/libxml2/xmlschemas.c:18853,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:18872,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:18883,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:18886,1
    - Dst: xmlSchemaItemListRemove
      Src: /src/libxml2/xmlschemas.c:18890,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:18873,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 85
    argCount: 5
    argNames:
    - pctxt
    - item
    - completeWild
    - list
    - prohibs
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaBasicItemPtr
    - xmlSchemaWildcardPtr*
    - xmlSchemaItemListPtr
    - xmlSchemaItemListPtr
    constantsTouched: []
    func_position:
      end: 18898
      start: 18742
    functionDepth: 0
    functionLinenumber: 18742
    functionLinenumberEnd: 18898
    functionName: xmlSchemaExpandAttributeGroupRefs
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaIntersectWildcards
    - WXS_ATTR_GROUP_CAST
    - xmlSchemaAddWildcard
    - WXS_ATTRUSE_DECL_NAME
    - xmlSchemaFormatQName
    - xmlSchemaItemListRemove
    - xmlSchemaItemListAddSize
    - xmlSchemaAttributeGroupExpandRefs
    - xmlSchemaCloneWildcardNsConstraints
    - xmlSchemaItemListInsert
    - WXS_ATTRUSE_DECL_TNS
    - PERROR_INT
    - FREE_AND_NULL
    - WXS_ITEM_NODE
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaExpandAttributeGroupRefs(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t\t xmlSchemaBasicItemPtr item,\t\t\t\t xmlSchemaWildcardPtr *completeWild,\t\t\t\t
      xmlSchemaItemListPtr list,\t\t\t\t xmlSchemaItemListPtr prohibs) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateQName
      Src: /src/libxml2/xmlschemas.c:24410,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:24429,1
    - Dst: xmlSplitQName2
      Src: /src/libxml2/xmlschemas.c:24427,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:24431,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24432,1
    - Dst: xmlSchemaLookupNamespace
      Src: /src/libxml2/xmlschemas.c:24435,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24438,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 4
    argNames:
    - vctxt
    - value
    - nsName
    - localName
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlChar*
    - xmlChar**
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 24454
      start: 24397
    functionDepth: 0
    functionLinenumber: 24397
    functionLinenumberEnd: 24454
    functionName: xmlSchemaVExpandQName
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictLookup
    - xmlSchemaLookupNamespace
    - xmlValidateQName
    - xmlSplitQName2
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaVExpandQName(xmlSchemaValidCtxtPtr vctxt,\t\t\t
      const xmlChar *value,\t\t\t const xmlChar **nsName,\t\t\t const xmlChar **localName) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFree
      Src: /src/libxml2/xmlschemas.c:27652,1
    - Dst: xmlSchemaClearValidCtxt
      Src: /src/libxml2/xmlschemas.c:27656,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 27657
      start: 27648
    functionDepth: 0
    functionLinenumber: 27648
    functionLinenumberEnd: 27657
    functionName: xmlSchemaPostRun
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaFree
    - xmlSchemaClearValidCtxt
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaPostRun(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ACTIVATE_ATTRIBUTE
      Src: /src/libxml2/xmlschemas.c:24481,1
    - Dst: xmlSchemaGetType
      Src: /src/libxml2/xmlschemas.c:24501,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:24490,1
    - Dst: xmlSchemaVExpandQName
      Src: /src/libxml2/xmlschemas.c:24486,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:24510,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:24511,1
    - Dst: xmlSchemaCheckCOSDerivedOK
      Src: /src/libxml2/xmlschemas.c:24559,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:24568,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:24572,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 37
    argCount: 4
    argNames:
    - vctxt
    - iattr
    - localType
    - elemDecl
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlSchemaAttrInfoPtr
    - xmlSchemaTypePtr*
    - xmlSchemaElementPtr
    constantsTouched: []
    func_position:
      end: 24584
      start: 24456
    functionDepth: 0
    functionLinenumber: 24456
    functionLinenumberEnd: 24584
    functionName: xmlSchemaProcessXSIType
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaCheckCOSDerivedOK
    - xmlSchemaGetType
    - xmlSchemaFormatQName
    - xmlSchemaVExpandQName
    - FREE_AND_NULL
    - ACTIVATE_ATTRIBUTE
    - VERROR_INT
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaProcessXSIType(xmlSchemaValidCtxtPtr vctxt,\t\t\txmlSchemaAttrInfoPtr
      iattr,\t\t\txmlSchemaTypePtr *localType,\t\t\txmlSchemaElementPtr elemDecl) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaPreRun
      Src: /src/libxml2/xmlschemas.c:27664,1
    - Dst: xmlSchemaVReaderWalk
      Src: /src/libxml2/xmlschemas.c:27678,1
    - Dst: xmlSchemaVDocWalk
      Src: /src/libxml2/xmlschemas.c:27671,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:27687,1
    - Dst: xmlParseDocument
      Src: /src/libxml2/xmlschemas.c:27685,1
    - Dst: xmlSchemaPostRun
      Src: /src/libxml2/xmlschemas.c:27692,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 27696
      start: 27659
    functionDepth: 0
    functionLinenumber: 27659
    functionLinenumberEnd: 27696
    functionName: xmlSchemaVStart
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaVReaderWalk
    - xmlSchemaPostRun
    - xmlSchemaPreRun
    - xmlSchemaVDocWalk
    - xmlParseDocument
    - VERROR_INT
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaVStart(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - type
    - final
    argTypes:
    - xmlSchemaTypePtr
    - int
    constantsTouched: []
    func_position:
      end: 14302
      start: 14293
    functionDepth: 0
    functionLinenumber: 14293
    functionLinenumberEnd: 14302
    functionName: xmlSchemaTypeFinalContains
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaTypeFinalContains(xmlSchemaTypePtr type, int final) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetParticleTotalRangeMax
      Src: /src/libxml2/xmlschemas.c:14400,1
    - Dst: xmlSchemaGetParticleTotalRangeMax
      Src: /src/libxml2/xmlschemas.c:14421,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 1
    argNames:
    - particle
    argTypes:
    - xmlSchemaParticlePtr
    constantsTouched: []
    func_position:
      end: 14431
      start: 14382
    functionDepth: 0
    functionLinenumber: 14382
    functionLinenumberEnd: 14431
    functionName: xmlSchemaGetParticleTotalRangeMax
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetParticleTotalRangeMax
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaGetParticleTotalRangeMax(xmlSchemaParticlePtr
      particle) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaInitTypes
      Src: /src/libxml2/xmlschemas.c:20870,1
    - Dst: xmlSchemaAddSchemaDoc
      Src: /src/libxml2/xmlschemas.c:20899,1
    - Dst: xmlSchemaCustomErr
      Src: /src/libxml2/xmlschemas.c:20910,1
    - Dst: xmlSchemaNewSchema
      Src: /src/libxml2/xmlschemas.c:20882,1
    - Dst: xmlSchemaConstructionCtxtCreate
      Src: /src/libxml2/xmlschemas.c:20889,1
    - Dst: xmlSchemaCustomErr
      Src: /src/libxml2/xmlschemas.c:20915,1
    - Dst: xmlSchemaParseNewDocWithContext
      Src: /src/libxml2/xmlschemas.c:20922,1
    - Dst: xmlSchemaFixupComponents
      Src: /src/libxml2/xmlschemas.c:20932,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:20932,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/xmlschemas.c:20942,1
    - Dst: xmlSchemaConstructionCtxtFree
      Src: /src/libxml2/xmlschemas.c:20963,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/xmlschemas.c:20959,1
    - Dst: xmlSchemaConstructionCtxtFree
      Src: /src/libxml2/xmlschemas.c:20946,1
    - Dst: PERROR_INT2
      Src: /src/libxml2/xmlschemas.c:20967,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 53
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchemaParserCtxt*
    constantsTouched: []
    func_position:
      end: 20971
      start: 20858
    functionDepth: 0
    functionLinenumber: 20858
    functionLinenumberEnd: 20971
    functionName: xmlSchemaParse
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_CONSTRUCTOR
    - xmlSchemaNewSchema
    - xmlSchemaAddSchemaDoc
    - xmlSchemaFixupComponents
    - xmlSchemaParseNewDocWithContext
    - xmlSchemaConstructionCtxtFree
    - xmlSchemaCustomErr
    - xmlSchemaConstructionCtxtCreate
    - PERROR_INT2
    - xmlSchemaFree
    - xmlSchemaInitTypes
    linkageType: ''
    returnType: xmlSchema*
    signature: 'xmlSchema *xmlSchemaParse(xmlSchemaParserCtxt *ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:9625,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - redef
    argTypes:
    - xmlSchemaRedefPtr
    constantsTouched: []
    func_position:
      end: 9627
      start: 9617
    functionDepth: 0
    functionLinenumber: 9617
    functionLinenumberEnd: 9627
    functionName: xmlSchemaRedefListFree
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaRedefListFree(xmlSchemaRedefPtr redef) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaBuildContentModelForSubstGroup
      Src: /src/libxml2/xmlschemas.c:12391,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12419,1
    - Dst: xmlAutomataNewTransition2
      Src: /src/libxml2/xmlschemas.c:12402,1
    - Dst: xmlAutomataNewTransition2
      Src: /src/libxml2/xmlschemas.c:12410,1
    - Dst: xmlAutomataNewTransition2
      Src: /src/libxml2/xmlschemas.c:12408,1
    - Dst: xmlAutomataNewCounter
      Src: /src/libxml2/xmlschemas.c:12420,1
    - Dst: xmlAutomataNewTransition2
      Src: /src/libxml2/xmlschemas.c:12421,1
    - Dst: xmlAutomataNewCountedTrans
      Src: /src/libxml2/xmlschemas.c:12423,1
    - Dst: xmlAutomataNewCounterTrans
      Src: /src/libxml2/xmlschemas.c:12424,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12428,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 2
    argNames:
    - ctxt
    - particle
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaParticlePtr
    constantsTouched: []
    func_position:
      end: 12433
      start: 12380
    functionDepth: 0
    functionLinenumber: 12380
    functionLinenumberEnd: 12433
    functionName: xmlSchemaBuildContentModelForElement
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlAutomataNewCounterTrans
    - xmlSchemaBuildContentModelForSubstGroup
    - xmlAutomataNewTransition2
    - xmlAutomataNewEpsilon
    - xmlAutomataNewCountedTrans
    - xmlAutomataNewCounter
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaBuildContentModelForElement(xmlSchemaParserCtxtPtr
      ctxt,\t\t\t\t xmlSchemaParticlePtr particle) "
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaPAttrUseErr4
      Src: /src/libxml2/xmlschemas.c:13839,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:13846,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:13876,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:13877,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:13923,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:13954,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:13978,1
    - Dst: WXS_ACTION_STR
      Src: /src/libxml2/xmlschemas.c:14023,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:14025,1
    - Dst: xmlSchemaCheckCOSNSSubset
      Src: /src/libxml2/xmlschemas.c:14029,1
    - Dst: WXS_ACTION_STR
      Src: /src/libxml2/xmlschemas.c:14065,1
    - Dst: WXS_ITEM_TYPE_NAME
      Src: /src/libxml2/xmlschemas.c:14066,1
    - Dst: xmlSchemaCheckCVCWildcardNamespace
      Src: /src/libxml2/xmlschemas.c:13941,1
    - Dst: WXS_ACTION_STR
      Src: /src/libxml2/xmlschemas.c:13995,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:14026,1
    - Dst: WXS_ITEM_TYPE_NAME
      Src: /src/libxml2/xmlschemas.c:14022,1
    - Dst: WXS_ACTION_STR
      Src: /src/libxml2/xmlschemas.c:14043,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:13817,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:13820,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:13841,1
    - Dst: xmlSchemaCheckCOSSTDerivedOK
      Src: /src/libxml2/xmlschemas.c:13850,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:13871,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:13851,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:13870,1
    - Dst: xmlSchemaGetEffectiveValueConstraint
      Src: /src/libxml2/xmlschemas.c:13887,1
    - Dst: WXS_ARE_DEFAULT_STR_EQUAL
      Src: /src/libxml2/xmlschemas.c:13909,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:13915,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:13998,1
    - Dst: WXS_ACTION_STR
      Src: /src/libxml2/xmlschemas.c:13951,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:13977,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:13996,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:14067,1
    - Dst: xmlSchemaPAttrUseErr4
      Src: /src/libxml2/xmlschemas.c:13946,1
    - Dst: WXS_ACTION_STR
      Src: /src/libxml2/xmlschemas.c:13845,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:13848,1
    - Dst: xmlSchemaPAttrUseErr4
      Src: /src/libxml2/xmlschemas.c:13913,1
    - Dst: WXS_ACTION_STR
      Src: /src/libxml2/xmlschemas.c:13919,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:13920,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:13979,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:13999,1
    - Dst: WXS_ITEM_TYPE_NAME
      Src: /src/libxml2/xmlschemas.c:14024,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:13942,1
    - Dst: WXS_ITEM_TYPE_NAME
      Src: /src/libxml2/xmlschemas.c:14044,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:14047,1
    - Dst: WXS_IS_ANYTYPE
      Src: /src/libxml2/xmlschemas.c:14057,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:13980,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:13819,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:13818,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:13864,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:13869,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:13872,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:13852,1
    - Dst: WXS_ACTION_STR
      Src: /src/libxml2/xmlschemas.c:13873,1
    - Dst: xmlSchemaPAttrUseErr4
      Src: /src/libxml2/xmlschemas.c:13862,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:13874,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:13878,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:13948,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:13952,1
    - Dst: xmlSchemaGetEffectiveValueConstraint
      Src: /src/libxml2/xmlschemas.c:13899,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:14045,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:13994,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 132
    argCount: 8
    argNames:
    - pctxt
    - action
    - item
    - baseItem
    - uses
    - baseUses
    - wild
    - baseWild
    argTypes:
    - xmlSchemaParserCtxtPtr
    - int
    - xmlSchemaBasicItemPtr
    - xmlSchemaBasicItemPtr
    - xmlSchemaItemListPtr
    - xmlSchemaItemListPtr
    - xmlSchemaWildcardPtr
    - xmlSchemaWildcardPtr
    constantsTouched: []
    func_position:
      end: 14074
      start: 13794
    functionDepth: 0
    functionLinenumber: 13794
    functionLinenumberEnd: 14074
    functionName: xmlSchemaCheckDerivationOKRestriction2to4
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_ITEM_TYPE_NAME
    - WXS_ATTRUSE_DECL
    - xmlSchemaGetEffectiveValueConstraint
    - WXS_ATTRUSE_DECL_NAME
    - WXS_ATTRUSE_TYPEDEF
    - xmlSchemaCheckCVCWildcardNamespace
    - xmlSchemaGetComponentDesignation
    - xmlSchemaCheckCOSNSSubset
    - xmlSchemaGetComponentQName
    - xmlSchemaPAttrUseErr4
    - WXS_ATTRUSE_DECL_TNS
    - WXS_ITEM_NODE
    - FREE_AND_NULL
    - WXS_ARE_DEFAULT_STR_EQUAL
    - xmlSchemaCheckCOSSTDerivedOK
    - WXS_IS_ANYTYPE
    - WXS_ACTION_STR
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckDerivationOKRestriction2to4(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t\t int action,\t\t\t\t xmlSchemaBasicItemPtr item,\t\t\t\t xmlSchemaBasicItemPtr
      baseItem,\t\t\t\t xmlSchemaItemListPtr uses,\t\t\t\t xmlSchemaItemListPtr baseUses,\t\t\t\t
      xmlSchemaWildcardPtr wild,\t\t\t\t xmlSchemaWildcardPtr baseWild) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:9613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - rel
    argTypes:
    - xmlSchemaSchemaRelationPtr
    constantsTouched: []
    func_position:
      end: 9614
      start: 9610
    functionDepth: 0
    functionLinenumber: 9610
    functionLinenumberEnd: 9614
    functionName: xmlSchemaSchemaRelationFree
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaSchemaRelationFree(xmlSchemaSchemaRelationPtr
      rel) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:4485,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - node
    - name
    argTypes:
    - xmlNodePtr
    - char*
    constantsTouched: []
    func_position:
      end: 4490
      start: 4476
    functionDepth: 0
    functionLinenumber: 4476
    functionLinenumberEnd: 4490
    functionName: xmlSchemaGetPropNode
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: xmlAttrPtr
    signature: 'static xmlAttrPtr xmlSchemaGetPropNode(xmlNodePtr node, const char
      *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_BAD_SCHEMA_DOC
      Src: /src/libxml2/xmlschemas.c:9819,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 3
    argNames:
    - pctxt
    - targetNamespace
    - imported
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 9827
      start: 9804
    functionDepth: 0
    functionLinenumber: 9804
    functionLinenumberEnd: 9827
    functionName: xmlSchemaGetSchemaBucketByTNS
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - IS_BAD_SCHEMA_DOC
    linkageType: ''
    returnType: xmlSchemaBucketPtr
    signature: "static xmlSchemaBucketPtr xmlSchemaGetSchemaBucketByTNS(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t\t const xmlChar *targetNamespace,\t\t\t\t int imported) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:21570,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21572,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - payload
    - data
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 21590
      start: 21562
    functionDepth: 0
    functionLinenumber: 21562
    functionLinenumberEnd: 21590
    functionName: xmlSchemaAugmentIDC
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaVErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaAugmentIDC(void *payload, void *data, const xmlChar
      *name ATTRIBUTE_UNUSED) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaClearSchemaDefaults
      Src: /src/libxml2/xmlschemas.c:9849,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:9857,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/xmlschemas.c:9869,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:9860,1
    - Dst: xmlSchemaParseSchemaElement
      Src: /src/libxml2/xmlschemas.c:9870,1
    - Dst: xmlSchemaParseSchemaTopLevel
      Src: /src/libxml2/xmlschemas.c:9877,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:9891,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - pctxt
    - schema
    - bucket
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlSchemaBucketPtr
    constantsTouched: []
    func_position:
      end: 9896
      start: 9829
    functionDepth: 0
    functionLinenumber: 9829
    functionLinenumberEnd: 9896
    functionName: xmlSchemaParseNewDocWithContext
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - WXS_CONSTRUCTOR
    - xmlSchemaClearSchemaDefaults
    - xmlSchemaParseSchemaElement
    - xmlStrEqual
    - xmlSchemaParseSchemaTopLevel
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaParseNewDocWithContext(xmlSchemaParserCtxtPtr
      pctxt,\t\t xmlSchemaPtr schema,\t\t xmlSchemaBucketPtr bucket) "
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 1
    argNames:
    - pc
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1435
      start: 1422
    functionDepth: 0
    functionLinenumber: 1422
    functionLinenumberEnd: 1435
    functionName: xmlSchemaWildcardPCToString
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlSchemaWildcardPCToString(int pc) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:1788,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:1807,1
    - Dst: xmlSchemaInternalErr
      Src: /src/libxml2/xmlschemas.c:1803,1
    - Dst: xmlSchemaGetWhiteSpaceFacetValue
      Src: /src/libxml2/xmlschemas.c:1795,1
    - Dst: xmlSchemaGetCanonValueWhtspExt
      Src: /src/libxml2/xmlschemas.c:1800,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1812,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1814,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1815,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1816,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:1818,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - actxt
    - buf
    - type
    argTypes:
    - xmlSchemaAbstractCtxtPtr
    - xmlChar**
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 1834
      start: 1778
    functionDepth: 0
    functionLinenumber: 1778
    functionLinenumberEnd: 1834
    functionName: xmlSchemaFormatFacetEnumSet
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaGetCanonValueWhtspExt
    - xmlStrdup
    - xmlSchemaGetWhiteSpaceFacetValue
    - xmlSchemaInternalErr
    - xmlStrcat
    linkageType: ''
    returnType: xmlChar*
    signature: "static const xmlChar *xmlSchemaFormatFacetEnumSet(xmlSchemaAbstractCtxtPtr
      actxt,\t\t\t xmlChar **buf, xmlSchemaTypePtr type) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 0
    argNames:
    - 11,12
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1865
    functionDepth: 0
    functionLinenumber: 1865
    functionLinenumberEnd: 1890
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void LIBXML_ATTR_FORMAT(11,12) xmlSchemaPErrFull(xmlSchemaParserCtxtPtr
      ctxt, xmlNodePtr node, int code, xmlErrorLevel level, const char *file, int
      line, const xmlChar *str1, const xmlChar *str2, const xmlChar *str3, int col,
      const char *msg, ...) { xmlGenericErrorFunc channel = NULL; xmlStructuredErrorFunc
      schannel = NULL; void *data = NULL; int res; va_list ap; if (ctxt != NULL) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6243,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6245,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6244,1
    - Dst: xmlSchemaParseAttributeGroupRef
      Src: /src/libxml2/xmlschemas.c:6249,1
    - Dst: xmlSchemaParseLocalAttribute
      Src: /src/libxml2/xmlschemas.c:6246,1
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:6256,1
    - Dst: xmlSchemaItemListAddSize
      Src: /src/libxml2/xmlschemas.c:6260,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 6
    argNames:
    - ctxt
    - schema
    - child
    - list
    - parentType
    - hasRefs
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr*
    - xmlSchemaItemListPtr*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 6266
      start: 6236
    functionDepth: 0
    functionLinenumber: 6236
    functionLinenumberEnd: 6266
    functionName: xmlSchemaParseLocalAttributes
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaParseLocalAttribute
    - IS_SCHEMA
    - xmlSchemaItemListAddSize
    - xmlSchemaParseAttributeGroupRef
    - xmlSchemaItemListCreate
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaParseLocalAttributes(xmlSchemaParserCtxtPtr ctxt,
      xmlSchemaPtr schema, xmlNodePtr *child, xmlSchemaItemListPtr *list,\t\t\tint
      parentType, int *hasRefs) "
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1671,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1690,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1726,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:1713,1
    - Dst: WXS_ITEM_TYPE_NAME
      Src: /src/libxml2/xmlschemas.c:1725,1
    - Dst: WXS_ITEM_TYPE_NAME
      Src: /src/libxml2/xmlschemas.c:1722,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1711,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1659,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1607,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1609,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1655,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1745,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1646,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:1663,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1585,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1605,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1630,1
    - Dst: xmlSchemaFacetTypeToString
      Src: /src/libxml2/xmlschemas.c:1707,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1669,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1747,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1680,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:1584,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1611,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1613,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1656,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1727,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1762,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1591,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1600,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1756,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1626,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1629,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:1643,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:1748,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1641,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1763,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:1658,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1708,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1592,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1758,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:1606,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1625,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:1642,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1713,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:1642,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1685,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1684,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:1671,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1722,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1686,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1615,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1640,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1714,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:1727,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1725,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1707,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1706,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1692,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1628,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1644,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1654,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1587,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:1608,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1638,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:1639,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1673,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1728,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:1656,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1682,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1578,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:1586,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1623,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1752,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1670,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:1573,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1589,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:1604,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1593,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1614,1
    - Dst: xmlSchemaWildcardPCToString
      Src: /src/libxml2/xmlschemas.c:1690,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1712,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1751,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:1758,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:1729,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:1588,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1602,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 200
    argCount: 4
    argNames:
    - buf
    - itemDes
    - item
    - itemNode
    argTypes:
    - xmlChar**
    - xmlChar*
    - xmlSchemaBasicItemPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1768
      start: 1563
    functionDepth: 0
    functionLinenumber: 1563
    functionLinenumberEnd: 1768
    functionName: xmlSchemaFormatItemForReport
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - WXS_ATTRUSE_DECL
    - WXS_ITEM_TYPE_NAME
    - xmlSchemaFacetTypeToString
    - WXS_IS_UNION
    - xmlSchemaFormatQName
    - xmlStrdup
    - WXS_IS_LIST
    - xmlSchemaGetComponentQName
    - WXS_IS_ATOMIC
    - FREE_AND_NULL
    - xmlSchemaGetComponentDesignation
    - xmlSchemaWildcardPCToString
    - xmlStrcat
    linkageType: ''
    returnType: xmlChar*
    signature: "static xmlChar *xmlSchemaFormatItemForReport(xmlChar **buf,\t\t const
      xmlChar *itemDes,\t\t xmlSchemaBasicItemPtr item,\t\t xmlNodePtr itemNode) "
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4119,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4127,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4131,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4143,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4165,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4145,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4161,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4176,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4180,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4125,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4141,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4163,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4147,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4178,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4121,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4118,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4149,1
    - Dst: xmlSchemaTypeDump
      Src: /src/libxml2/xmlschemas.c:4170,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4116,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4122,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4129,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4156,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4150,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 54
    argCount: 5
    argNames:
    - payload
    - data
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4182
      start: 4104
    functionDepth: 0
    functionLinenumber: 4104
    functionLinenumberEnd: 4182
    functionName: xmlSchemaElementDump
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - fprintf
    - xmlSchemaTypeDump
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaElementDump(void *payload, void *data, const
      xmlChar * name ATTRIBUTE_UNUSED,\t\t const xmlChar * namespace ATTRIBUTE_UNUSED,
      const xmlChar * context ATTRIBUTE_UNUSED) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlAutomataNewTransition2
      Src: /src/libxml2/xmlschemas.c:12306,1
    - Dst: xmlAutomataNewTransition2
      Src: /src/libxml2/xmlschemas.c:12335,1
    - Dst: xmlAutomataNewCounter
      Src: /src/libxml2/xmlschemas.c:12346,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12350,1
    - Dst: xmlAutomataNewCountedTrans
      Src: /src/libxml2/xmlschemas.c:12298,1
    - Dst: xmlAutomataNewTransition2
      Src: /src/libxml2/xmlschemas.c:12299,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12313,1
    - Dst: xmlAutomataNewTransition2
      Src: /src/libxml2/xmlschemas.c:12361,1
    - Dst: xmlAutomataNewCountedTrans
      Src: /src/libxml2/xmlschemas.c:12366,1
    - Dst: xmlAutomataNewCounterTrans
      Src: /src/libxml2/xmlschemas.c:12367,1
    - Dst: xmlAutomataNewState
      Src: /src/libxml2/xmlschemas.c:12281,1
    - Dst: xmlAutomataNewTransition2
      Src: /src/libxml2/xmlschemas.c:12351,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12370,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:12284,1
    - Dst: xmlSchemaPErr
      Src: /src/libxml2/xmlschemas.c:12284,1
    - Dst: xmlSchemaSubstGroupGet
      Src: /src/libxml2/xmlschemas.c:12282,1
    - Dst: xmlAutomataNewTransition2
      Src: /src/libxml2/xmlschemas.c:12314,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12360,1
    - Dst: xmlAutomataNewState
      Src: /src/libxml2/xmlschemas.c:12348,1
    - Dst: xmlAutomataNewEpsilon
      Src: /src/libxml2/xmlschemas.c:12337,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 57
    argCount: 4
    argNames:
    - pctxt
    - particle
    - counter
    - end
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaParticlePtr
    - int
    - xmlAutomataStatePtr
    constantsTouched: []
    func_position:
      end: 12375
      start: 12265
    functionDepth: 0
    functionLinenumber: 12265
    functionLinenumberEnd: 12375
    functionName: xmlSchemaBuildContentModelForSubstGroup
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlAutomataNewCounterTrans
    - xmlAutomataNewTransition2
    - xmlAutomataNewEpsilon
    - xmlSchemaSubstGroupGet
    - xmlSchemaPErr
    - xmlAutomataNewState
    - xmlAutomataNewCountedTrans
    - xmlAutomataNewCounter
    - WXS_ITEM_NODE
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaBuildContentModelForSubstGroup(xmlSchemaParserCtxtPtr
      pctxt,\txmlSchemaParticlePtr particle, int counter, xmlAutomataStatePtr end) "
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaValueGetNext
      Src: /src/libxml2/xmlschemas.c:1461,1
    - Dst: xmlSchemaValueGetAsString
      Src: /src/libxml2/xmlschemas.c:1470,1
    - Dst: xmlSchemaGetValType
      Src: /src/libxml2/xmlschemas.c:1465,1
    - Dst: xmlSchemaCollapseString
      Src: /src/libxml2/xmlschemas.c:1473,1
    - Dst: xmlSchemaWhiteSpaceReplace
      Src: /src/libxml2/xmlschemas.c:1475,1
    - Dst: xmlSchemaGetCanonValue
      Src: /src/libxml2/xmlschemas.c:1481,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:1483,1
    - Dst: xmlStrlen
      Src: /src/libxml2/xmlschemas.c:1496,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1505,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:1507,1
    - Dst: xmlSchemaValueGetNext
      Src: /src/libxml2/xmlschemas.c:1514,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:1522,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1511,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1510,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:1520,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 63
    argCount: 4
    argNames:
    - val
    - ws
    - retValue
    - for_hash
    argTypes:
    - xmlSchemaValPtr
    - xmlSchemaWhitespaceValueType
    - xmlChar**
    - int
    constantsTouched: []
    func_position:
      end: 1524
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1524
    functionName: xmlSchemaGetCanonValueWhtspExt_1
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaValueGetAsString
    - xmlSchemaWhiteSpaceReplace
    - xmlStrlen
    - xmlSchemaValueGetNext
    - xmlSchemaCollapseString
    - xmlStrdup
    - xmlSchemaGetValType
    - xmlSchemaGetCanonValue
    - xmlStrcat
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaGetCanonValueWhtspExt_1(xmlSchemaValPtr val,\t\t\t
      xmlSchemaWhitespaceValueType ws,\t\t\t xmlChar **retValue,\t\t\t\t int for_hash) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - actxt
    - node
    argTypes:
    - xmlSchemaAbstractCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2436
      start: 2426
    functionDepth: 0
    functionLinenumber: 2426
    functionLinenumberEnd: 2436
    functionName: xmlSchemaEvalErrorNodeType
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaEvalErrorNodeType(xmlSchemaAbstractCtxtPtr actxt,\t\t\t
      xmlNodePtr node) "
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:6312,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:6351,1
    - Dst: xmlSchemaPValAttrNode
      Src: /src/libxml2/xmlschemas.c:6370,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:6371,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:6307,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6328,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6357,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6340,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6305,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6303,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6318,1
    - Dst: xmlSchemaPValAttr
      Src: /src/libxml2/xmlschemas.c:6337,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:6359,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:6338,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:6375,1
    - Dst: xmlSchemaNewAnnot
      Src: /src/libxml2/xmlschemas.c:6297,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6330,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:6332,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6356,1
    - Dst: xmlSchemaGetPropNodeNs
      Src: /src/libxml2/xmlschemas.c:6368,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6350,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6355,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 76
    argCount: 3
    argNames:
    - ctxt
    - node
    - needed
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 6384
      start: 6278
    functionDepth: 0
    functionLinenumber: 6278
    functionLinenumberEnd: 6384
    functionName: xmlSchemaParseAnnotation
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetBuiltInType
    - IS_SCHEMA
    - xmlSchemaPValAttrNode
    - xmlSchemaGetPropNodeNs
    - xmlSchemaPValAttrID
    - xmlStrEqual
    - xmlSchemaNewAnnot
    - xmlSchemaPContentErr
    - xmlSchemaPIllegalAttrErr
    - xmlSchemaPValAttr
    linkageType: ''
    returnType: xmlSchemaAnnotPtr
    signature: 'static xmlSchemaAnnotPtr xmlSchemaParseAnnotation(xmlSchemaParserCtxtPtr
      ctxt, xmlNodePtr node, int needed) '
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:10112,1
    - Dst: WXS_IS_BUCKET_IMPMAIN
      Src: /src/libxml2/xmlschemas.c:10141,1
    - Dst: xmlSchemaGetChameleonSchemaBucket
      Src: /src/libxml2/xmlschemas.c:10225,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/xmlschemas.c:10338,1
    - Dst: xmlSchemaCleanupDoc
      Src: /src/libxml2/xmlschemas.c:10367,1
    - Dst: xmlSchemaBucketCreate
      Src: /src/libxml2/xmlschemas.c:10389,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xmlschemas.c:10424,1
    - Dst: WXS_IS_BUCKET_IMPMAIN
      Src: /src/libxml2/xmlschemas.c:10090,1
    - Dst: WXS_IS_BUCKET_IMPMAIN
      Src: /src/libxml2/xmlschemas.c:10105,1
    - Dst: WXS_IS_BUCKET_IMPMAIN
      Src: /src/libxml2/xmlschemas.c:10121,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:10247,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/xmlschemas.c:10270,1
    - Dst: xmlDictFree
      Src: /src/libxml2/xmlschemas.c:10287,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:10301,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/xmlschemas.c:10356,1
    - Dst: xmlSchemaGetProp
      Src: /src/libxml2/xmlschemas.c:10382,1
    - Dst: WXS_IS_BUCKET_IMPMAIN
      Src: /src/libxml2/xmlschemas.c:10404,1
    - Dst: WXS_HAS_BUCKETS
      Src: /src/libxml2/xmlschemas.c:10060,1
    - Dst: xmlSchemaSchemaRelationCreate
      Src: /src/libxml2/xmlschemas.c:10080,1
    - Dst: xmlSchemaGetSchemaBucket
      Src: /src/libxml2/xmlschemas.c:10065,1
    - Dst: xmlSchemaSchemaRelationAddChild
      Src: /src/libxml2/xmlschemas.c:10083,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:10129,1
    - Dst: xmlSchemaGetSchemaBucketByTNS
      Src: /src/libxml2/xmlschemas.c:10166,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:10263,1
    - Dst: xmlSchemaPErr
      Src: /src/libxml2/xmlschemas.c:10342,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:10371,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:10272,1
    - Dst: xmlCtxtSetResourceLoader
      Src: /src/libxml2/xmlschemas.c:10279,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/xmlschemas.c:10277,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:10175,1
    - Dst: xmlDictReference
      Src: /src/libxml2/xmlschemas.c:10289,1
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/xmlschemas.c:10293,1
    - Dst: xmlCtxtReadMemory
      Src: /src/libxml2/xmlschemas.c:10297,1
    - Dst: xmlGetLastError
      Src: /src/libxml2/xmlschemas.c:10318,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xmlschemas.c:10432,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 192
    argCount: 10
    argNames:
    - pctxt
    - type
    - schemaLocation
    - schemaDoc
    - schemaBuffer
    - schemaBufferLen
    - invokingNode
    - sourceTargetNamespace
    - importNamespace
    - bucket
    argTypes:
    - xmlSchemaParserCtxtPtr
    - int
    - xmlChar*
    - xmlDocPtr
    - char*
    - int
    - xmlNodePtr
    - xmlChar*
    - xmlChar*
    - xmlSchemaBucketPtr*
    constantsTouched: []
    func_position:
      end: 10437
      start: 10021
    functionDepth: 0
    functionLinenumber: 10021
    functionLinenumberEnd: 10437
    functionName: xmlSchemaAddSchemaDoc
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlCtxtReadMemory
    - xmlSchemaSchemaRelationAddChild
    - WXS_HAS_BUCKETS
    - xmlDictReference
    - xmlFreeDoc
    - xmlSchemaBucketCreate
    - xmlCtxtSetErrorHandler
    - xmlStrdup
    - xmlFreeParserCtxt
    - xmlSchemaCleanupDoc
    - xmlSchemaGetProp
    - xmlSchemaSchemaRelationCreate
    - xmlNewParserCtxt
    - xmlSchemaGetSchemaBucket
    - xmlDictFree
    - IS_SCHEMA
    - xmlCtxtSetResourceLoader
    - PERROR_INT
    - xmlSchemaGetChameleonSchemaBucket
    - WXS_IS_BUCKET_IMPMAIN
    - xmlCtxtReadFile
    - xmlDictLookup
    - xmlGetLastError
    - xmlStrEqual
    - xmlSchemaPErr
    - xmlSchemaPErrMemory
    - xmlSchemaGetSchemaBucketByTNS
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaAddSchemaDoc(xmlSchemaParserCtxtPtr pctxt,\t\tint
      type,\t\tconst xmlChar *schemaLocation,\t\txmlDocPtr schemaDoc,\t\tconst char
      *schemaBuffer,\t\tint schemaBufferLen,\t\txmlNodePtr invokingNode,\t\tconst
      xmlChar *sourceTargetNamespace,\t\tconst xmlChar *importNamespace,\t\txmlSchemaBucketPtr
      *bucket) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaSAXHandleCDataSection
      Src: /src/libxml2/xmlschemas.c:28038,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - value
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 28039
      start: 28028
    functionDepth: 0
    functionLinenumber: 28028
    functionLinenumberEnd: 28039
    functionName: cdataBlockSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaSAXHandleCDataSection
    linkageType: ''
    returnType: void
    signature: 'static void cdataBlockSplit(void *ctx, const xmlChar *value, int len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:3273,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:3275,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:3278,1
    - Dst: xmlDictReference
      Src: /src/libxml2/xmlschemas.c:3280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 3283
      start: 3268
    functionDepth: 0
    functionLinenumber: 3268
    functionLinenumberEnd: 3283
    functionName: xmlSchemaNewSchema
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - memset
    - xmlDictReference
    - xmlMalloc
    - xmlSchemaPErrMemory
    linkageType: ''
    returnType: xmlSchemaPtr
    signature: 'static xmlSchemaPtr xmlSchemaNewSchema(xmlSchemaParserCtxtPtr ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaSAXHandleReference
      Src: /src/libxml2/xmlschemas.c:28051,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 28052
      start: 28041
    functionDepth: 0
    functionLinenumber: 28041
    functionLinenumberEnd: 28052
    functionName: referenceSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaSAXHandleReference
    linkageType: ''
    returnType: void
    signature: 'static void referenceSplit(void *ctx, const xmlChar *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/xmlschemas.c:4198,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:4201,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4200,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4203,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - output
    - annot
    argTypes:
    - FILE*
    - xmlSchemaAnnotPtr
    constantsTouched: []
    func_position:
      end: 4204
      start: 4190
    functionDepth: 0
    functionLinenumber: 4190
    functionLinenumberEnd: 4204
    functionName: xmlSchemaAnnotDump
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlNodeGetContent
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaAnnotDump(FILE * output, xmlSchemaAnnotPtr annot) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetBase
      Src: /src/libxml2/xmlschemas.c:9985,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:9993,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:9990,1
    - Dst: xmlBuildURI
      Src: /src/libxml2/xmlschemas.c:9987,1
    - Dst: xmlBuildURI
      Src: /src/libxml2/xmlschemas.c:9989,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:9994,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - dict
    - location
    - ctxtNode
    argTypes:
    - xmlDictPtr
    - xmlChar*
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 10000
      start: 9971
    functionDepth: 0
    functionLinenumber: 9971
    functionLinenumberEnd: 10000
    functionName: xmlSchemaBuildAbsoluteURI
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlBuildURI
    - xmlDictLookup
    - xmlNodeGetBase
    linkageType: ''
    returnType: xmlChar*
    signature: "static const xmlChar *xmlSchemaBuildAbsoluteURI(xmlDictPtr dict, const
      xmlChar* location,\t\t\t xmlNodePtr ctxtNode) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:14685,1
    - Dst: xmlSchemaCheckUnionTypeDefCircularRecur
      Src: /src/libxml2/xmlschemas.c:14696,1
    - Dst: xmlSchemaGetUnionSimpleTypeMemberTypes
      Src: /src/libxml2/xmlschemas.c:14698,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:14691,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - pctxt
    - ctxType
    - members
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypePtr
    - xmlSchemaTypeLinkPtr
    constantsTouched: []
    func_position:
      end: 14708
      start: 14671
    functionDepth: 0
    functionLinenumber: 14671
    functionLinenumberEnd: 14708
    functionName: xmlSchemaCheckUnionTypeDefCircularRecur
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPCustomErr
    - WXS_IS_UNION
    - xmlSchemaCheckUnionTypeDefCircularRecur
    - xmlSchemaGetUnionSimpleTypeMemberTypes
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckUnionTypeDefCircularRecur(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t\t\txmlSchemaTypePtr ctxType,\t\t\t\t\txmlSchemaTypeLinkPtr members) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2246,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:2256,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2263,1
    - Dst: xmlSchemaFormatItemForReport
      Src: /src/libxml2/xmlschemas.c:2282,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:2220,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:2222,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:2234,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:2232,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:2248,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2252,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2257,1
    - Dst: xmlEscapeFormatString
      Src: /src/libxml2/xmlschemas.c:2273,1
    - Dst: xmlSchemaIsGlobalItem
      Src: /src/libxml2/xmlschemas.c:2280,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2282,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:2217,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2220,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2223,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:2229,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2232,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2235,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2245,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2249,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:2254,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2281,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2205,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2215,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2217,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2224,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2226,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2229,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:2246,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2250,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2254,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2285,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:2284,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 83
    argCount: 0
    argNames:
    - 4,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2180
    functionDepth: 0
    functionLinenumber: 2180
    functionLinenumberEnd: 2289
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaFormatItemForReport
    - xmlSchemaFormatQName
    - xmlStrdup
    - FREE_AND_NULL
    - xmlStrcat
    - xmlSchemaIsGlobalItem
    - xmlEscapeFormatString
    linkageType: ''
    returnType: void
    signature: "static void LIBXML_ATTR_FORMAT(4,0) xmlSchemaErr(xmlSchemaAbstractCtxtPtr
      actxt,\t int error, xmlNodePtr node, const char *msg,\t const xmlChar *str1,
      const xmlChar *str2){ xmlSchemaErr4(actxt, error, node, msg, str1, str2, NULL,
      NULL); }static xmlChar *xmlSchemaFormatNodeForError(xmlChar ** msg,\t\t\t xmlSchemaAbstractCtxtPtr
      actxt,\t\t\t xmlNodePtr node) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:5647,1
    - Dst: xmlSchemaPValAttrNodeQNameValue
      Src: /src/libxml2/xmlschemas.c:5648,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 6
    argNames:
    - ctxt
    - schema
    - ownerItem
    - attr
    - uri
    - local
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlSchemaBasicItemPtr
    - xmlAttrPtr
    - xmlChar**
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 5650
      start: 5637
    functionDepth: 0
    functionLinenumber: 5637
    functionLinenumberEnd: 5650
    functionName: xmlSchemaPValAttrNodeQName
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetNodeContent
    - xmlSchemaPValAttrNodeQNameValue
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaPValAttrNodeQName(xmlSchemaParserCtxtPtr ctxt,\t\t\t\t
      xmlSchemaPtr schema,\t\t\t\t xmlSchemaBasicItemPtr ownerItem,\t\t\t\t xmlAttrPtr
      attr,\t\t\t\t const xmlChar **uri,\t\t\t\t const xmlChar **local) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:23622,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:23629,1
    - Dst: xmlSchemaIDCReleaseMatcherList
      Src: /src/libxml2/xmlschemas.c:23646,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:23623,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:23638,1
    - Dst: xmlSchemaIDCFreeMatcherList
      Src: /src/libxml2/xmlschemas.c:23648,1
    - Dst: xmlSchemaIDCFreeIDCTable
      Src: /src/libxml2/xmlschemas.c:23656,1
    - Dst: xmlRegFreeExecCtxt
      Src: /src/libxml2/xmlschemas.c:23660,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:23664,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 2
    argNames:
    - vctxt
    - ielem
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlSchemaNodeInfoPtr
    constantsTouched: []
    func_position:
      end: 23669
      start: 23615
    functionDepth: 0
    functionLinenumber: 23615
    functionLinenumberEnd: 23669
    functionName: xmlSchemaClearElemInfo
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaIDCFreeMatcherList
    - xmlRegFreeExecCtxt
    - xmlFree
    - xmlSchemaIDCReleaseMatcherList
    - FREE_AND_NULL
    - xmlSchemaIDCFreeIDCTable
    - xmlSchemaFreeValue
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaClearElemInfo(xmlSchemaValidCtxtPtr vctxt,\t\t
      xmlSchemaNodeInfoPtr ielem) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:14714,1
    - Dst: xmlSchemaCheckUnionTypeDefCircularRecur
      Src: /src/libxml2/xmlschemas.c:14716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - pctxt
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 14718
      start: 14710
    functionDepth: 0
    functionLinenumber: 14710
    functionLinenumberEnd: 14718
    functionName: xmlSchemaCheckUnionTypeDefCircular
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_IS_UNION
    - xmlSchemaCheckUnionTypeDefCircularRecur
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckUnionTypeDefCircular(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t\t xmlSchemaTypePtr type) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:4511,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:4512,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 3
    argNames:
    - node
    - uri
    - name
    argTypes:
    - xmlNodePtr
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 4517
      start: 4501
    functionDepth: 0
    functionLinenumber: 4501
    functionLinenumberEnd: 4517
    functionName: xmlSchemaGetPropNodeNs
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: xmlAttrPtr
    signature: 'static xmlAttrPtr xmlSchemaGetPropNodeNs(xmlNodePtr node, const char
      *uri, const char *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashScan
      Src: /src/libxml2/xmlschemas.c:21605,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 3
    argNames:
    - payload
    - data
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 21607
      start: 21599
    functionDepth: 0
    functionLinenumber: 21599
    functionLinenumberEnd: 21607
    functionName: xmlSchemaAugmentImportedIDC
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlHashScan
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaAugmentImportedIDC(void *payload, void *data,
      const xmlChar *name ATTRIBUTE_UNUSED) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetFreshAttrInfo
      Src: /src/libxml2/xmlschemas.c:23566,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:23587,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:23568,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:23583,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:23584,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:23588,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:23591,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:23592,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:23595,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:23596,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:23599,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 8
    argNames:
    - vctxt
    - attrNode
    - nodeLine
    - localName
    - nsName
    - ownedNames
    - value
    - ownedValue
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlNodePtr
    - int
    - xmlChar*
    - xmlChar*
    - int
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 23609
      start: 23554
    functionDepth: 0
    functionLinenumber: 23554
    functionLinenumberEnd: 23609
    functionName: xmlSchemaValidatorPushAttribute
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetFreshAttrInfo
    - xmlStrEqual
    - VERROR_INT
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaValidatorPushAttribute(xmlSchemaValidCtxtPtr vctxt,\t\t\txmlNodePtr
      attrNode,\t\t\tint nodeLine,\t\t\tconst xmlChar *localName,\t\t\tconst xmlChar
      *nsName,\t\t\tint ownedNames,\t\t\txmlChar *value,\t\t\tint ownedValue) "
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:21183,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:21223,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:21189,1
    - Dst: xmlSchemaAddSchemaDoc
      Src: /src/libxml2/xmlschemas.c:21203,1
    - Dst: xmlSchemaBuildAbsoluteURI
      Src: /src/libxml2/xmlschemas.c:21196,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:21224,1
    - Dst: CAN_PARSE_SCHEMA
      Src: /src/libxml2/xmlschemas.c:21229,1
    - Dst: xmlSchemaParseNewDocWithContext
      Src: /src/libxml2/xmlschemas.c:21239,1
    - Dst: xmlSchemaFixupComponents
      Src: /src/libxml2/xmlschemas.c:21254,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 5
    argNames:
    - vctxt
    - schema
    - node
    - nsName
    - location
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 21272
      start: 21168
    functionDepth: 0
    functionLinenumber: 21168
    functionLinenumberEnd: 21272
    functionName: xmlSchemaAssembleByLocation
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_CONSTRUCTOR
    - xmlSchemaBuildAbsoluteURI
    - xmlSchemaFixupComponents
    - xmlSchemaAddSchemaDoc
    - xmlSchemaParseNewDocWithContext
    - PERROR_INT
    - CAN_PARSE_SCHEMA
    - VERROR_INT
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaAssembleByLocation(xmlSchemaValidCtxtPtr vctxt,\t\t\t
      xmlSchemaPtr schema,\t\t\t xmlNodePtr node,\t\t\t const xmlChar *nsName,\t\t\t
      const xmlChar *location) "
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6909,1
    - Dst: xmlSchemaPValAttrNodeQName
      Src: /src/libxml2/xmlschemas.c:6915,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6942,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6927,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:6923,1
    - Dst: xmlSchemaAddAttributeUse
      Src: /src/libxml2/xmlschemas.c:7088,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:7125,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:7126,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:7130,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:7205,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:7243,1
    - Dst: xmlSchemaAddAttributeUseProhib
      Src: /src/libxml2/xmlschemas.c:7187,1
    - Dst: xmlSchemaAddAttribute
      Src: /src/libxml2/xmlschemas.c:7066,1
    - Dst: WXS_ADD_PENDING
      Src: /src/libxml2/xmlschemas.c:7197,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6902,1
    - Dst: xmlSchemaPValAttrNodeID
      Src: /src/libxml2/xmlschemas.c:6903,1
    - Dst: xmlSchemaPValAttrNodeQName
      Src: /src/libxml2/xmlschemas.c:6886,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6925,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6944,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:6949,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6956,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6970,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:6988,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7024,1
    - Dst: xmlSchemaAddAttributeUse
      Src: /src/libxml2/xmlschemas.c:7059,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:7216,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:7233,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:7038,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:7210,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:7227,1
    - Dst: xmlSchemaPValAttrNode
      Src: /src/libxml2/xmlschemas.c:7037,1
    - Dst: xmlSchemaParseSimpleType
      Src: /src/libxml2/xmlschemas.c:7239,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:6884,1
    - Dst: xmlSchemaCheckReference
      Src: /src/libxml2/xmlschemas.c:6890,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6905,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6911,1
    - Dst: xmlSchemaPValAttrNodeID
      Src: /src/libxml2/xmlschemas.c:6912,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:6940,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6946,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6985,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:7001,1
    - Dst: xmlSchemaPMissingAttrErr
      Src: /src/libxml2/xmlschemas.c:7033,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7045,1
    - Dst: xmlSchemaNewQNameRef
      Src: /src/libxml2/xmlschemas.c:7099,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:7221,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:7049,1
    - Dst: WXS_ADD_PENDING
      Src: /src/libxml2/xmlschemas.c:7094,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:7177,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:7228,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6914,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6918,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:6929,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6938,1
    - Dst: xmlSchemaPMutualExclAttrErr
      Src: /src/libxml2/xmlschemas.c:6962,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:6966,1
    - Dst: xmlSchemaPMutualExclAttrErr
      Src: /src/libxml2/xmlschemas.c:6976,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:6980,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:7031,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:7046,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:7238,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:7201,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 204
    argCount: 5
    argNames:
    - pctxt
    - schema
    - node
    - uses
    - parentType
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    - xmlSchemaItemListPtr
    - int
    constantsTouched: []
    func_position:
      end: 7249
      start: 6860
    functionDepth: 0
    functionLinenumber: 6860
    functionLinenumberEnd: 7249
    functionName: xmlSchemaParseLocalAttribute
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_ATTRUSE_TYPEDEF
    - WXS_ADD_PENDING
    - xmlSchemaPValAttrNodeID
    - xmlSchemaParseAnnotation
    - xmlSchemaGetBuiltInType
    - xmlSchemaPValAttrNode
    - xmlSchemaAddAttribute
    - xmlSchemaPSimpleTypeErr
    - xmlSchemaPIllegalAttrErr
    - xmlSchemaAddAttributeUse
    - WXS_ATTRUSE_DECL
    - xmlSchemaPValAttrNodeQName
    - IS_SCHEMA
    - xmlSchemaCheckReference
    - xmlSchemaNewQNameRef
    - xmlSchemaAddAttributeUseProhib
    - xmlSchemaPContentErr
    - xmlSchemaGetPropNode
    - xmlSchemaGetNodeContent
    - xmlSchemaFormatQName
    - xmlSchemaPMutualExclAttrErr
    - xmlStrEqual
    - xmlSchemaPMissingAttrErr
    - xmlSchemaParseSimpleType
    linkageType: ''
    returnType: xmlSchemaBasicItemPtr
    signature: "static xmlSchemaBasicItemPtr xmlSchemaParseLocalAttribute(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t xmlSchemaPtr schema,\t\t\t xmlNodePtr node,\t\t\t xmlSchemaItemListPtr
      uses,\t\t\t int parentType) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:21651,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:21657,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21654,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21659,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - vctxt
    - item
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlSchemaPSVIIDCNodePtr
    constantsTouched: []
    func_position:
      end: 21669
      start: 21640
    functionDepth: 0
    functionLinenumber: 21640
    functionLinenumberEnd: 21669
    functionName: xmlSchemaIDCStoreNodeTableItem
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlSchemaVErrMemory
    - xmlRealloc
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaIDCStoreNodeTableItem(xmlSchemaValidCtxtPtr vctxt,\t\t\t
      xmlSchemaPSVIIDCNodePtr item) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFormatItemForReport
      Src: /src/libxml2/xmlschemas.c:3221,1
    - Dst: xmlSchemaPErr2
      Src: /src/libxml2/xmlschemas.c:3232,1
    - Dst: xmlSchemaPErr2
      Src: /src/libxml2/xmlschemas.c:3228,1
    - Dst: xmlSchemaPErr2
      Src: /src/libxml2/xmlschemas.c:3223,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 7
    argNames:
    - ctxt
    - error
    - ownerItem
    - ownerElem
    - child
    - message
    - content
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlParserErrors
    - xmlSchemaBasicItemPtr
    - xmlNodePtr
    - xmlNodePtr
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3238
      start: 3196
    functionDepth: 0
    functionLinenumber: 3196
    functionLinenumberEnd: 3238
    functionName: xmlSchemaPContentErr
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaFormatItemForReport
    - xmlSchemaPErr2
    linkageType: ''
    returnType: FREE_AND_NULL(msg)
    signature: "FREE_AND_NULL(msg) } /** * Reports an error concerning the content
      of a schema element. * * @param ctxt the schema parser context * @param error
      the error code * @param ownerItem the owner item of the holder of the content
      * @param ownerElem the node of the holder of the content * @param child the
      invalid child node * @param message the optional error message * @param content
      the optional string describing the correct content */ static void xmlSchemaPContentErr(xmlSchemaParserCtxtPtr
      ctxt,\t\t xmlParserErrors error,\t\t xmlSchemaBasicItemPtr ownerItem,\t\t xmlNodePtr
      ownerElem,\t\t xmlNodePtr child,\t\t const char *message,\t\t const char *content) "
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:7274,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:7281,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7303,1
    - Dst: xmlSchemaAddAttribute
      Src: /src/libxml2/xmlschemas.c:7310,1
    - Dst: xmlSchemaParseSimpleType
      Src: /src/libxml2/xmlschemas.c:7381,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:7289,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7331,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:7340,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:7350,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:7370,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:7385,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7288,1
    - Dst: xmlSchemaPValAttrNode
      Src: /src/libxml2/xmlschemas.c:7280,1
    - Dst: xmlSchemaPMissingAttrErr
      Src: /src/libxml2/xmlschemas.c:7276,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:7292,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7322,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:7332,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:7328,1
    - Dst: xmlSchemaPValAttrQName
      Src: /src/libxml2/xmlschemas.c:7337,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:7376,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7326,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7324,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7325,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7323,1
    - Dst: xmlSchemaGetProp
      Src: /src/libxml2/xmlschemas.c:7344,1
    - Dst: xmlSchemaPMutualExclAttrErr
      Src: /src/libxml2/xmlschemas.c:7357,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:7360,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:7366,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:7367,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 81
    argCount: 3
    argNames:
    - pctxt
    - schema
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 7390
      start: 7252
    functionDepth: 0
    functionLinenumber: 7252
    functionLinenumberEnd: 7390
    functionName: xmlSchemaParseGlobalAttribute
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetBuiltInType
    - xmlSchemaPValAttrQName
    - xmlSchemaGetNodeContent
    - xmlSchemaParseSimpleType
    - IS_SCHEMA
    - xmlSchemaPValAttrNode
    - xmlSchemaAddAttribute
    - xmlSchemaPValAttrID
    - xmlStrEqual
    - xmlSchemaGetProp
    - xmlSchemaPMutualExclAttrErr
    - xmlSchemaPMissingAttrErr
    - xmlSchemaPContentErr
    - xmlSchemaParseAnnotation
    - xmlSchemaPSimpleTypeErr
    - xmlSchemaPIllegalAttrErr
    - xmlSchemaGetPropNode
    linkageType: ''
    returnType: xmlSchemaAttributePtr
    signature: "static xmlSchemaAttributePtr xmlSchemaParseGlobalAttribute(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t xmlSchemaPtr schema,\t\t\t xmlNodePtr node) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - vctxt
    - metaType
    argTypes:
    - xmlSchemaValidCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 21292
      start: 21274
    functionDepth: 0
    functionLinenumber: 21274
    functionLinenumberEnd: 21292
    functionName: xmlSchemaGetMetaAttrInfo
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlSchemaAttrInfoPtr
    signature: "static xmlSchemaAttrInfoPtr xmlSchemaGetMetaAttrInfo(xmlSchemaValidCtxtPtr
      vctxt,\t\t\t int metaType) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:4805,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:4810,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 4817
      start: 4798
    functionDepth: 0
    functionLinenumber: 4798
    functionLinenumberEnd: 4817
    functionName: xmlSchemaIsBlank
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - IS_BLANK_CH
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaIsBlank(xmlChar * str, int len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:5676,1
    - Dst: xmlSchemaPValAttrNodeQName
      Src: /src/libxml2/xmlschemas.c:5682,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 7
    argNames:
    - ctxt
    - schema
    - ownerItem
    - ownerElem
    - name
    - uri
    - local
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlSchemaBasicItemPtr
    - xmlNodePtr
    - char*
    - xmlChar**
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 5684
      start: 5665
    functionDepth: 0
    functionLinenumber: 5665
    functionLinenumberEnd: 5684
    functionName: xmlSchemaPValAttrQName
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPValAttrNodeQName
    - xmlSchemaGetPropNode
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaPValAttrQName(xmlSchemaParserCtxtPtr ctxt,\t\t\t\t
      xmlSchemaPtr schema,\t\t\t\t xmlSchemaBasicItemPtr ownerItem,\t\t\t\t xmlNodePtr
      ownerElem,\t\t\t\t const char *name,\t\t\t\t const xmlChar **uri,\t\t\t\t const
      xmlChar **local) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:21620,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21623,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:21626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - idcDef
    argTypes:
    - xmlSchemaIDCPtr
    constantsTouched: []
    func_position:
      end: 21629
      start: 21615
    functionDepth: 0
    functionLinenumber: 21615
    functionLinenumberEnd: 21629
    functionName: xmlSchemaIDCNewBinding
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaVErrMemory
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchemaPSVIIDCBindingPtr
    signature: 'static xmlSchemaPSVIIDCBindingPtr xmlSchemaIDCNewBinding(xmlSchemaIDCPtr
      idcDef) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:3359,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:3363,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - list
    - initialSize
    argTypes:
    - xmlSchemaItemListPtr
    - int
    constantsTouched: []
    func_position:
      end: 3370
      start: 3351
    functionDepth: 0
    functionLinenumber: 3351
    functionLinenumberEnd: 3370
    functionName: xmlSchemaItemListGrow
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaItemListGrow(xmlSchemaItemListPtr list, int initialSize) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeAnnot
      Src: /src/libxml2/xmlschemas.c:3906,1
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:3918,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3927,1
    - Dst: xmlSchemaFreeFacet
      Src: /src/libxml2/xmlschemas.c:3913,1
    - Dst: xmlSchemaFreeTypeLinkList
      Src: /src/libxml2/xmlschemas.c:3920,1
    - Dst: xmlRegFreeRegexp
      Src: /src/libxml2/xmlschemas.c:3932,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3933,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - type
    argTypes:
    - xmlSchemaType*
    constantsTouched: []
    func_position:
      end: 3934
      start: 3900
    functionDepth: 0
    functionLinenumber: 3900
    functionLinenumberEnd: 3934
    functionName: xmlSchemaFreeType
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaFreeAnnot
    - xmlRegFreeRegexp
    - xmlSchemaFreeFacet
    - xmlSchemaItemListFree
    - xmlSchemaFreeTypeLinkList
    linkageType: ''
    returnType: void
    signature: 'void xmlSchemaFreeType(xmlSchemaType *type) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:5861,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:5891,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:5871,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:5864,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:5868,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:5897,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 6
    argNames:
    - ctxt
    - node
    - min
    - max
    - def
    - expected
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlNodePtr
    - int
    - int
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 5905
      start: 5853
    functionDepth: 0
    functionLinenumber: 5853
    functionLinenumberEnd: 5905
    functionName: xmlGetMinOccurs
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetNodeContent
    - IS_BLANK_CH
    - xmlSchemaPSimpleTypeErr
    - xmlSchemaGetPropNode
    linkageType: ''
    returnType: int
    signature: "static int xmlGetMinOccurs(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr
      node,\t\tint min, int max, int def, const char *expected) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlStreamPop
      Src: /src/libxml2/xmlschemas.c:22207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 22213
      start: 22197
    functionDepth: 0
    functionLinenumber: 22197
    functionLinenumberEnd: 22213
    functionName: xmlSchemaXPathPop
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlStreamPop
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaXPathPop(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaItemListGrow
      Src: /src/libxml2/xmlschemas.c:3378,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:3379,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - list
    - initialSize
    - item
    argTypes:
    - xmlSchemaItemListPtr
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 3386
      start: 3372
    functionDepth: 0
    functionLinenumber: 3372
    functionLinenumberEnd: 3386
    functionName: xmlSchemaItemListAddSize
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaItemListGrow
    - xmlSchemaPErrMemory
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaItemListAddSize(xmlSchemaItemListPtr list,\t\t\t
      int initialSize,\t\t\t void *item) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:5783,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:5786,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:5792,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:5790,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:5803,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:5806,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:5826,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:5832,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 6
    argNames:
    - ctxt
    - node
    - min
    - max
    - def
    - expected
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlNodePtr
    - int
    - int
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 5840
      start: 5775
    functionDepth: 0
    functionLinenumber: 5775
    functionLinenumberEnd: 5840
    functionName: xmlGetMaxOccurs
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetNodeContent
    - xmlStrEqual
    - IS_BLANK_CH
    - xmlSchemaPSimpleTypeErr
    - xmlSchemaGetPropNode
    linkageType: ''
    returnType: int
    signature: "static int xmlGetMaxOccurs(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr
      node,\t\tint min, int max, int def, const char *expected) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - pctxt
    - schemaLocation
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 9773
      start: 9753
    functionDepth: 0
    functionLinenumber: 9753
    functionLinenumberEnd: 9773
    functionName: xmlSchemaGetSchemaBucket
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlSchemaBucketPtr
    signature: "static xmlSchemaBucketPtr xmlSchemaGetSchemaBucket(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t const xmlChar *schemaLocation) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFormatIDCKeySequence_1
      Src: /src/libxml2/xmlschemas.c:22188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - vctxt
    - buf
    - seq
    - count
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlChar**
    - xmlSchemaPSVIIDCKeyPtr*
    - int
    constantsTouched: []
    func_position:
      end: 22189
      start: 22182
    functionDepth: 0
    functionLinenumber: 22182
    functionLinenumberEnd: 22189
    functionName: xmlSchemaHashKeySequence
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaFormatIDCKeySequence_1
    linkageType: ''
    returnType: xmlChar*
    signature: "static const xmlChar *xmlSchemaHashKeySequence(xmlSchemaValidCtxtPtr
      vctxt,\t\t\t xmlChar **buf,\t\t\t xmlSchemaPSVIIDCKeyPtr *seq,\t\t\t int count) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeAnnot
      Src: /src/libxml2/xmlschemas.c:3774,1
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:3776,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3777,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - attrGr
    argTypes:
    - xmlSchemaAttributeGroupPtr
    constantsTouched: []
    func_position:
      end: 3778
      start: 3768
    functionDepth: 0
    functionLinenumber: 3768
    functionLinenumberEnd: 3778
    functionName: xmlSchemaFreeAttributeGroup
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaFreeAnnot
    - xmlSchemaItemListFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaFreeAttributeGroup(xmlSchemaAttributeGroupPtr
      attrGr) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:15247,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:15246,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15301,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15310,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:15243,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15285,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:15343,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:15296,1
    - Dst: xmlSchemaPCustomErrExt
      Src: /src/libxml2/xmlschemas.c:15355,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15361,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15363,1
    - Dst: xmlSchemaPIllegalFacetListUnionErr
      Src: /src/libxml2/xmlschemas.c:15387,1
    - Dst: xmlSchemaTypeFixup
      Src: /src/libxml2/xmlschemas.c:15244,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15271,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15314,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15297,1
    - Dst: xmlSchemaTypeFinalContains
      Src: /src/libxml2/xmlschemas.c:15308,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:15366,1
    - Dst: return
      Src: /src/libxml2/xmlschemas.c:15367,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:15364,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:15365,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15248,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15252,1
    - Dst: xmlSchemaTypeFinalContains
      Src: /src/libxml2/xmlschemas.c:15269,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15275,1
    - Dst: xmlSchemaGetUnionSimpleTypeMemberTypes
      Src: /src/libxml2/xmlschemas.c:15341,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:15348,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15362,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 83
    argCount: 1
    argNames:
    - (type)
    argTypes:
    - WXS_IS_UNION
    constantsTouched: []
    func_position:
      end: 15405
      start: 15234
    functionDepth: 0
    functionLinenumber: 15234
    functionLinenumberEnd: 15405
    functionName: if
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPCustomErr
    - WXS_IS_UNION
    - xmlSchemaTypeFixup
    - xmlSchemaPCustomErrExt
    - xmlSchemaGetUnionSimpleTypeMemberTypes
    - xmlSchemaPIllegalFacetListUnionErr
    - WXS_IS_TYPE_NOT_FIXED
    - WXS_IS_LIST
    - xmlSchemaGetComponentQName
    - return
    - WXS_IS_ATOMIC
    - PERROR_INT
    - FREE_AND_NULL
    - xmlSchemaTypeFinalContains
    linkageType: ''
    returnType: else
    signature: 'else if (WXS_IS_UNION(type)) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeAnnot
      Src: /src/libxml2/xmlschemas.c:3755,1
    - Dst: xmlSchemaFreeWildcardNsSet
      Src: /src/libxml2/xmlschemas.c:3757,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3760,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3759,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - wildcard
    argTypes:
    - xmlSchemaWildcard*
    constantsTouched: []
    func_position:
      end: 3761
      start: 3749
    functionDepth: 0
    functionLinenumber: 3749
    functionLinenumberEnd: 3761
    functionName: xmlSchemaFreeWildcard
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaFreeAnnot
    - xmlSchemaFreeWildcardNsSet
    linkageType: ''
    returnType: void
    signature: 'void xmlSchemaFreeWildcard(xmlSchemaWildcard *wildcard) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeAnnot
      Src: /src/libxml2/xmlschemas.c:3945,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - item
    argTypes:
    - xmlSchemaModelGroupDefPtr
    constantsTouched: []
    func_position:
      end: 3947
      start: 3941
    functionDepth: 0
    functionLinenumber: 3941
    functionLinenumberEnd: 3947
    functionName: xmlSchemaFreeModelGroupDef
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaFreeAnnot
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaFreeModelGroupDef(xmlSchemaModelGroupDefPtr item) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:5434,1
    - Dst: WXS_ADD_LOCAL
      Src: /src/libxml2/xmlschemas.c:5442,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:5436,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:5439,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ctxt
    - schema
    - type
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlSchemaTypeType
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5444
      start: 5425
    functionDepth: 0
    functionLinenumber: 5425
    functionLinenumberEnd: 5444
    functionName: xmlSchemaAddWildcard
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    - WXS_ADD_LOCAL
    - xmlSchemaPErrMemory
    linkageType: ''
    returnType: xmlSchemaWildcardPtr
    signature: "static xmlSchemaWildcardPtr xmlSchemaAddWildcard(xmlSchemaParserCtxtPtr
      ctxt, xmlSchemaPtr schema,\t\t xmlSchemaTypeType type, xmlNodePtr node) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:6120,1
    - Dst: xmlSchemaPValAttrNodeValue
      Src: /src/libxml2/xmlschemas.c:6124,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 5
    argNames:
    - ctxt
    - ownerItem
    - attr
    - type
    - value
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaBasicItemPtr
    - xmlAttrPtr
    - xmlSchemaTypePtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 6126
      start: 6108
    functionDepth: 0
    functionLinenumber: 6108
    functionLinenumberEnd: 6126
    functionName: xmlSchemaPValAttrNode
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetNodeContent
    - xmlSchemaPValAttrNodeValue
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaPValAttrNode(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      xmlSchemaBasicItemPtr ownerItem,\t\t\t xmlAttrPtr attr,\t\t\t xmlSchemaTypePtr
      type,\t\t\t const xmlChar **value) "
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/xmlschemas.c:9295,1
    - Dst: xmlNodeGetSpacePreserve
      Src: /src/libxml2/xmlschemas.c:9301,1
    - Dst: xmlUnlinkNode
      Src: /src/libxml2/xmlschemas.c:9343,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/xmlschemas.c:9296,1
    - Dst: IS_BLANK_NODE
      Src: /src/libxml2/xmlschemas.c:9300,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/xmlschemas.c:9344,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 2
    argNames:
    - ctxt
    - root
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 9347
      start: 9281
    functionDepth: 0
    functionLinenumber: 9281
    functionLinenumberEnd: 9347
    functionName: xmlSchemaCleanupDoc
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlUnlinkNode
    - xmlFreeNode
    - xmlNodeGetSpacePreserve
    - IS_BLANK_NODE
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaCleanupDoc(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr
      root) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:5394,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:5399,1
    - Dst: WXS_ADD_PENDING
      Src: /src/libxml2/xmlschemas.c:5411,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:5396,1
    - Dst: WXS_ADD_GLOBAL
      Src: /src/libxml2/xmlschemas.c:5406,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 6
    argNames:
    - ctxt
    - schema
    - name
    - nsName
    - category
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlChar*
    - xmlChar*
    - int
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5413
      start: 5384
    functionDepth: 0
    functionLinenumber: 5384
    functionLinenumberEnd: 5413
    functionName: xmlSchemaAddIDC
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - memset
    - WXS_ADD_PENDING
    - WXS_ADD_GLOBAL
    - xmlSchemaPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchemaIDCPtr
    signature: "static xmlSchemaIDCPtr xmlSchemaAddIDC(xmlSchemaParserCtxtPtr ctxt,
      xmlSchemaPtr schema, const xmlChar *name, const xmlChar *nsName,\t\t int category,
      xmlNodePtr node) "
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:6056,1
    - Dst: xmlSchemaValPredefTypeNode
      Src: /src/libxml2/xmlschemas.c:6066,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:6070,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:6084,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:6080,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:6088,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 23
    argCount: 5
    argNames:
    - pctxt
    - ownerItem
    - attr
    - value
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaBasicItemPtr
    - xmlAttrPtr
    - xmlChar*
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 6093
      start: 6039
    functionDepth: 0
    functionLinenumber: 6039
    functionLinenumberEnd: 6093
    functionName: xmlSchemaPValAttrNodeValue
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_IS_LIST
    - xmlSchemaPSimpleTypeErr
    - xmlSchemaValPredefTypeNode
    - PERROR_INT
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaPValAttrNodeValue(xmlSchemaParserCtxtPtr pctxt,\t\t\t
      xmlSchemaBasicItemPtr ownerItem,\t\t\t xmlAttrPtr attr,\t\t\t const xmlChar
      *value,\t\t\t xmlSchemaTypePtr type) "
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:9230,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:9232,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9254,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:9247,1
    - Dst: xmlSchemaPValAttrNode
      Src: /src/libxml2/xmlschemas.c:9216,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:9231,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9250,1
    - Dst: xmlSchemaParseModelGroup
      Src: /src/libxml2/xmlschemas.c:9259,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:9241,1
    - Dst: xmlSchemaParseModelGroup
      Src: /src/libxml2/xmlschemas.c:9251,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9258,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:9267,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:9217,1
    - Dst: xmlSchemaAddModelGroupDefinition
      Src: /src/libxml2/xmlschemas.c:9220,1
    - Dst: xmlSchemaPMissingAttrErr
      Src: /src/libxml2/xmlschemas.c:9211,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:9236,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9246,1
    - Dst: xmlSchemaParseModelGroup
      Src: /src/libxml2/xmlschemas.c:9255,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:9209,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:9235,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 3
    argNames:
    - ctxt
    - schema
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 9273
      start: 9196
    functionDepth: 0
    functionLinenumber: 9196
    functionLinenumberEnd: 9273
    functionName: xmlSchemaParseModelGroupDefinition
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetBuiltInType
    - xmlSchemaParseModelGroup
    - IS_SCHEMA
    - xmlSchemaAddModelGroupDefinition
    - xmlSchemaPValAttrNode
    - xmlSchemaPContentErr
    - xmlSchemaPValAttrID
    - xmlStrEqual
    - xmlSchemaPMissingAttrErr
    - xmlSchemaParseAnnotation
    - xmlSchemaPIllegalAttrErr
    - xmlSchemaGetPropNode
    linkageType: ''
    returnType: xmlSchemaModelGroupDefPtr
    signature: "static xmlSchemaModelGroupDefPtr xmlSchemaParseModelGroupDefinition(xmlSchemaParserCtxtPtr
      ctxt,\t\t\t\t xmlSchemaPtr schema,\t\t\t\t xmlNodePtr node) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaVPushText
      Src: /src/libxml2/xmlschemas.c:26766,1
    - Dst: xmlStopParser
      Src: /src/libxml2/xmlschemas.c:26771,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26768,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 26773
      start: 26753
    functionDepth: 0
    functionLinenumber: 26753
    functionLinenumberEnd: 26773
    functionName: xmlSchemaSAXHandleText
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlStopParser
    - VERROR_INT
    - xmlSchemaVPushText
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaSAXHandleText(void *ctx,\t\t const xmlChar *
      ch,\t\t int len) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaNewParserCtxtUseDict
      Src: /src/libxml2/xmlschemas.c:9730,1
    - Dst: xmlSchemaNewParserCtxt
      Src: /src/libxml2/xmlschemas.c:9732,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:9734,1
    - Dst: xmlSchemaSetParserErrors
      Src: /src/libxml2/xmlschemas.c:9739,1
    - Dst: xmlSchemaSetParserStructuredErrors
      Src: /src/libxml2/xmlschemas.c:9741,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 9745
      start: 9724
    functionDepth: 0
    functionLinenumber: 9724
    functionLinenumberEnd: 9745
    functionName: xmlSchemaCreatePCtxtOnVCtxt
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaNewParserCtxtUseDict
    - xmlSchemaSetParserErrors
    - xmlSchemaSetParserStructuredErrors
    - xmlSchemaNewParserCtxt
    - VERROR_INT
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaCreatePCtxtOnVCtxt(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:13150,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:13150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 13159
      start: 13147
    functionDepth: 0
    functionLinenumber: 13147
    functionLinenumberEnd: 13159
    functionName: xmlSchemaGetBuiltInTypeAncestor
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_IS_LIST
    - WXS_IS_UNION
    linkageType: ''
    returnType: xmlSchemaTypePtr
    signature: 'static xmlSchemaTypePtr xmlSchemaGetBuiltInTypeAncestor(xmlSchemaTypePtr
      type) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetAttributeGroup
      Src: /src/libxml2/xmlschemas.c:19038,1
    - Dst: xmlSchemaPResCompAttrErr
      Src: /src/libxml2/xmlschemas.c:19042,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ref
    - ctxt
    argTypes:
    - xmlSchemaQNameRefPtr
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 19051
      start: 19030
    functionDepth: 0
    functionLinenumber: 19030
    functionLinenumberEnd: 19051
    functionName: xmlSchemaResolveAttrGroupReferences
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetAttributeGroup
    - xmlSchemaPResCompAttrErr
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaResolveAttrGroupReferences(xmlSchemaQNameRefPtr
      ref,\t\t\t\t xmlSchemaParserCtxtPtr ctxt) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaVPushText
      Src: /src/libxml2/xmlschemas.c:26791,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26793,1
    - Dst: xmlStopParser
      Src: /src/libxml2/xmlschemas.c:26796,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 26798
      start: 26778
    functionDepth: 0
    functionLinenumber: 26778
    functionLinenumberEnd: 26798
    functionName: xmlSchemaSAXHandleCDataSection
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlStopParser
    - VERROR_INT
    - xmlSchemaVPushText
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaSAXHandleCDataSection(void *ctx,\t\t\t const
      xmlChar * ch,\t\t\t int len) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 26811
      start: 26800
    functionDepth: 0
    functionLinenumber: 26800
    functionLinenumberEnd: 26811
    functionName: xmlSchemaSAXHandleReference
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaSAXHandleReference(void *ctx ATTRIBUTE_UNUSED,\t\t\t
      const xmlChar * name ATTRIBUTE_UNUSED) "
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:14105,1
    - Dst: xmlSchemaExpandAttributeGroupRefs
      Src: /src/libxml2/xmlschemas.c:14127,1
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:14155,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:14187,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:14190,1
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:14224,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:14110,1
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:14122,1
    - Dst: xmlSchemaTypeFixup
      Src: /src/libxml2/xmlschemas.c:14111,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:14174,1
    - Dst: xmlSchemaUnionWildcards
      Src: /src/libxml2/xmlschemas.c:14252,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:14131,1
    - Dst: xmlSchemaExpandAttributeGroupRefs
      Src: /src/libxml2/xmlschemas.c:14138,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:14142,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:14173,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:14188,1
    - Dst: xmlSchemaItemListAddSize
      Src: /src/libxml2/xmlschemas.c:14202,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:14189,1
    - Dst: WXS_IS_EXTENSION
      Src: /src/libxml2/xmlschemas.c:14235,1
    - Dst: xmlSchemaItemListAddSize
      Src: /src/libxml2/xmlschemas.c:14215,1
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:14197,1
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:14210,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 97
    argCount: 2
    argNames:
    - pctxt
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 14282
      start: 14096
    functionDepth: 0
    functionLinenumber: 14096
    functionLinenumberEnd: 14282
    functionName: xmlSchemaFixupTypeAttributeUses
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaExpandAttributeGroupRefs
    - xmlSchemaItemListFree
    - xmlSchemaUnionWildcards
    - WXS_IS_RESTRICTION
    - WXS_ATTRUSE_DECL_NAME
    - xmlSchemaTypeFixup
    - xmlSchemaItemListAddSize
    - WXS_IS_TYPE_NOT_FIXED
    - WXS_ATTRUSE_DECL_TNS
    - PERROR_INT
    - xmlSchemaItemListCreate
    - WXS_IS_EXTENSION
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaFixupTypeAttributeUses(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t\t xmlSchemaTypePtr type) "
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:6508,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6501,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6523,1
    - Dst: xmlSchemaPValAttrNodeValue
      Src: /src/libxml2/xmlschemas.c:6563,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:6564,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:6565,1
    - Dst: xmlSchemaGetProp
      Src: /src/libxml2/xmlschemas.c:6499,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6503,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6505,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:6520,1
    - Dst: xmlSchemaNewWildcardNsConstraint
      Src: /src/libxml2/xmlschemas.c:6526,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:6546,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6557,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:6536,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xmlschemas.c:6543,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:6592,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:6519,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6525,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6544,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:6539,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6545,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6555,1
    - Dst: xmlSchemaNewWildcardNsConstraint
      Src: /src/libxml2/xmlschemas.c:6577,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:6579,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 87
    argCount: 4
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - wildc
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlSchemaWildcardPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 6597
      start: 6487
    functionDepth: 0
    functionLinenumber: 6487
    functionLinenumberEnd: 6597
    functionName: xmlSchemaParseWildcardNs
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaGetBuiltInType
    - xmlDictLookup
    - xmlStrndup
    - xmlSchemaPValAttrNodeValue
    - xmlSchemaGetNodeContent
    - xmlSchemaGetProp
    - xmlStrEqual
    - IS_BLANK_CH
    - xmlSchemaNewWildcardNsConstraint
    - xmlSchemaPSimpleTypeErr
    - xmlSchemaGetPropNode
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaParseWildcardNs(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      xmlSchemaPtr schema ATTRIBUTE_UNUSED,\t\t\t xmlSchemaWildcardPtr wildc,\t\t\t
      xmlNodePtr node) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaNewValidCtxt
      Src: /src/libxml2/xmlschemas.c:15459,1
    - Dst: xmlSchemaPErr
      Src: /src/libxml2/xmlschemas.c:15461,1
    - Dst: xmlSchemaSetValidStructuredErrors
      Src: /src/libxml2/xmlschemas.c:15471,1
    - Dst: xmlSchemaSetValidErrors
      Src: /src/libxml2/xmlschemas.c:15469,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 15475
      start: 15455
    functionDepth: 0
    functionLinenumber: 15455
    functionLinenumberEnd: 15475
    functionName: xmlSchemaCreateVCtxtOnPCtxt
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaSetValidStructuredErrors
    - xmlSchemaSetValidErrors
    - xmlSchemaPErr
    - xmlSchemaNewValidCtxt
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaCreateVCtxtOnPCtxt(xmlSchemaParserCtxtPtr ctxt) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetProp
      Src: /src/libxml2/xmlschemas.c:6412,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6429,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6437,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6457,1
    - Dst: xmlSchemaPErr2
      Src: /src/libxml2/xmlschemas.c:6468,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6423,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6427,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6435,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:6464,1
    - Dst: xmlSchemaNewFacet
      Src: /src/libxml2/xmlschemas.c:6406,1
    - Dst: xmlSchemaFreeFacet
      Src: /src/libxml2/xmlschemas.c:6416,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6421,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6425,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6441,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6433,1
    - Dst: xmlSchemaFreeFacet
      Src: /src/libxml2/xmlschemas.c:6446,1
    - Dst: xmlSchemaPErr2
      Src: /src/libxml2/xmlschemas.c:6414,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:6408,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6419,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6431,1
    - Dst: xmlSchemaPErr2
      Src: /src/libxml2/xmlschemas.c:6444,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6439,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:6449,1
    - Dst: xmlSchemaGetProp
      Src: /src/libxml2/xmlschemas.c:6455,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6463,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 78
    argCount: 3
    argNames:
    - ctxt
    - schema
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 6473
      start: 6395
    functionDepth: 0
    functionLinenumber: 6395
    functionLinenumberEnd: 6473
    functionName: xmlSchemaParseFacet
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaFreeFacet
    - xmlSchemaNewFacet
    - IS_SCHEMA
    - xmlSchemaPValAttrID
    - xmlStrEqual
    - xmlSchemaPErrMemory
    - xmlSchemaParseAnnotation
    - xmlSchemaGetProp
    - xmlSchemaPErr2
    linkageType: ''
    returnType: xmlSchemaFacetPtr
    signature: 'static xmlSchemaFacetPtr xmlSchemaParseFacet(xmlSchemaParserCtxtPtr
      ctxt, xmlSchemaPtr schema, xmlNodePtr node) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WXS_ATTR_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19076,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:19106,1
    - Dst: WXS_ATTR_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19088,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:19087,1
    - Dst: WXS_ATTR_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19107,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:19112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - pctxt
    - attr
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaAttributePtr
    constantsTouched: []
    func_position:
      end: 19126
      start: 19063
    functionDepth: 0
    functionLinenumber: 19063
    functionLinenumberEnd: 19126
    functionName: xmlSchemaCheckAttrPropsCorrect
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaIsDerivedFromBuiltInType
    - xmlSchemaVCheckCVCSimpleType
    - WXS_ATTR_TYPEDEF
    - PERROR_INT
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckAttrPropsCorrect(xmlSchemaParserCtxtPtr pctxt,\t\t\t
      xmlSchemaAttributePtr attr) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - xmlSchemaQNameRefPtr
    constantsTouched: []
    func_position:
      end: 3789
      start: 3785
    functionDepth: 0
    functionLinenumber: 3785
    functionLinenumberEnd: 3789
    functionName: xmlSchemaFreeQNameRef
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaFreeQNameRef(xmlSchemaQNameRefPtr item) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrncat
      Src: /src/libxml2/xmlschemas.c:2604,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2618,1
    - Dst: xmlStrncat
      Src: /src/libxml2/xmlschemas.c:2628,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2626,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2638,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2624,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2645,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2569,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2590,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2629,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2631,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:2634,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2648,1
    - Dst: xmlSchemaErr
      Src: /src/libxml2/xmlschemas.c:2649,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2570,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2580,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2599,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2642,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:2639,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2644,1
    - Dst: xmlEscapeFormatString
      Src: /src/libxml2/xmlschemas.c:2645,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:2650,1
    - Dst: xmlSchemaComplexTypeErr
      Src: /src/libxml2/xmlschemas.c:2554,1
    - Dst: xmlSchemaFormatNodeForError
      Src: /src/libxml2/xmlschemas.c:2568,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2578,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 96
    argCount: 0
    argNames:
    - msg
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2549
    functionDepth: 0
    functionLinenumber: 2549
    functionLinenumberEnd: 2651
    functionName: FREE_AND_NULL
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlEscapeFormatString
    - xmlSchemaComplexTypeErr
    - xmlSchemaErr
    - xmlStrncat
    - xmlStrdup
    - FREE_AND_NULL
    - xmlSchemaFormatNodeForError
    - xmlStrcat
    linkageType: ''
    returnType: FREE_AND_NULL(str)
    signature: "FREE_AND_NULL(str) FREE_AND_NULL(msg) }static void LIBXML_ATTR_FORMAT(5,0)xmlSchemaComplexTypeErr(xmlSchemaAbstractCtxtPtr
      actxt,\t\t xmlParserErrors error,\t\t xmlNodePtr node,\t\t\txmlSchemaTypePtr
      type ATTRIBUTE_UNUSED,\t\t\tconst char *message,\t\t\tint nbval,\t\t\tint nbneg,\t\t\txmlChar
      **values) "
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:7547,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:7559,1
    - Dst: xmlSchemaPMissingAttrErr
      Src: /src/libxml2/xmlschemas.c:7549,1
    - Dst: xmlSchemaAddAttributeGroupDefinition
      Src: /src/libxml2/xmlschemas.c:7562,1
    - Dst: xmlSchemaPValAttrNode
      Src: /src/libxml2/xmlschemas.c:7557,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7572,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7573,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:7575,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7578,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:7579,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:7585,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:7607,1
    - Dst: xmlSchemaParseAnyAttribute
      Src: /src/libxml2/xmlschemas.c:7608,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:7590,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:7591,1
    - Dst: xmlSchemaParseLocalAttributes
      Src: /src/libxml2/xmlschemas.c:7597,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:7613,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 3
    argNames:
    - pctxt
    - schema
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 7619
      start: 7532
    functionDepth: 0
    functionLinenumber: 7532
    functionLinenumberEnd: 7619
    functionName: xmlSchemaParseAttributeGroupDefinition
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetBuiltInType
    - xmlSchemaParseLocalAttributes
    - IS_SCHEMA
    - xmlSchemaPValAttrNode
    - xmlSchemaPContentErr
    - xmlSchemaPValAttrID
    - xmlStrEqual
    - xmlSchemaAddAttributeGroupDefinition
    - xmlSchemaParseAnyAttribute
    - xmlSchemaPMissingAttrErr
    - xmlSchemaParseAnnotation
    - xmlSchemaPIllegalAttrErr
    - xmlSchemaGetPropNode
    linkageType: ''
    returnType: xmlSchemaAttributeGroupPtr
    signature: "static xmlSchemaAttributeGroupPtr xmlSchemaParseAttributeGroupDefinition(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t\t xmlSchemaPtr schema,\t\t\t\t xmlNodePtr node) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCheckElemPropsCorrect
      Src: /src/libxml2/xmlschemas.c:19575,1
    - Dst: xmlSchemaCheckElemSubstGroup
      Src: /src/libxml2/xmlschemas.c:19579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - elemDecl
    - ctxt
    argTypes:
    - xmlSchemaElementPtr
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 19581
      start: 19566
    functionDepth: 0
    functionLinenumber: 19566
    functionLinenumberEnd: 19581
    functionName: xmlSchemaCheckElementDeclComponent
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaCheckElemSubstGroup
    - xmlSchemaCheckElemPropsCorrect
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaCheckElementDeclComponent(xmlSchemaElementPtr
      elemDecl,\t\t\t\t xmlSchemaParserCtxtPtr ctxt) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 27820
      start: 27812
    functionDepth: 0
    functionLinenumber: 27812
    functionLinenumberEnd: 27820
    functionName: hasExternalSubsetSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int hasExternalSubsetSplit(void *ctx) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - name
    - ExternalID
    - SystemID
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 27831
      start: 27822
    functionDepth: 0
    functionLinenumber: 27822
    functionLinenumberEnd: 27831
    functionName: externalSubsetSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static void externalSubsetSplit(void *ctx, const xmlChar *name,\t
      const xmlChar *ExternalID, const xmlChar *SystemID) "
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:7416,1
    - Dst: xmlSchemaPValAttrNodeQName
      Src: /src/libxml2/xmlschemas.c:7423,1
    - Dst: xmlSchemaPMissingAttrErr
      Src: /src/libxml2/xmlschemas.c:7418,1
    - Dst: xmlSchemaCheckReference
      Src: /src/libxml2/xmlschemas.c:7425,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7434,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7435,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:7437,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7440,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:7441,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:7447,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:7457,1
    - Dst: xmlSchemaNewQNameRef
      Src: /src/libxml2/xmlschemas.c:7512,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:7461,1
    - Dst: xmlSchemaNewQNameRef
      Src: /src/libxml2/xmlschemas.c:7500,1
    - Dst: WXS_ADD_PENDING
      Src: /src/libxml2/xmlschemas.c:7518,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:7492,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:7491,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:7453,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 3
    argNames:
    - pctxt
    - schema
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 7521
      start: 7403
    functionDepth: 0
    functionLinenumber: 7403
    functionLinenumberEnd: 7521
    functionName: xmlSchemaParseAttributeGroupRef
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPValAttrNodeQName
    - IS_SCHEMA
    - xmlSchemaFormatQName
    - WXS_ADD_PENDING
    - xmlSchemaPContentErr
    - xmlSchemaPValAttrID
    - xmlStrEqual
    - xmlSchemaCheckReference
    - xmlSchemaNewQNameRef
    - xmlSchemaPMissingAttrErr
    - FREE_AND_NULL
    - xmlSchemaParseAnnotation
    - xmlSchemaPIllegalAttrErr
    - xmlSchemaGetPropNode
    linkageType: ''
    returnType: xmlSchemaQNameRefPtr
    signature: "static xmlSchemaQNameRefPtr xmlSchemaParseAttributeGroupRef(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t\txmlSchemaPtr schema,\t\t\t\txmlNodePtr node) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1402,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1404,1
    - Dst: WXS_ITEM_TYPE_NAME
      Src: /src/libxml2/xmlschemas.c:1402,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:1404,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1403,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:1406,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:1407,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - item
    argTypes:
    - xmlChar**
    - void*
    constantsTouched: []
    func_position:
      end: 1409
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1409
    functionName: xmlSchemaGetComponentDesignation
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_ITEM_TYPE_NAME
    - xmlSchemaGetComponentQName
    - FREE_AND_NULL
    - xmlStrcat
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlSchemaGetComponentDesignation(xmlChar **buf,
      void *item) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 13139
      start: 13123
    functionDepth: 0
    functionLinenumber: 13123
    functionLinenumberEnd: 13139
    functionName: xmlSchemaGetPrimitiveType
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlSchemaTypePtr
    signature: 'static xmlSchemaTypePtr xmlSchemaGetPrimitiveType(xmlSchemaTypePtr
      type) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:1414,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - idc
    argTypes:
    - xmlChar**
    - xmlSchemaIDCPtr
    constantsTouched: []
    func_position:
      end: 1415
      start: 1411
    functionDepth: 0
    functionLinenumber: 1411
    functionLinenumberEnd: 1415
    functionName: xmlSchemaGetIDCDesignation
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetComponentDesignation
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlSchemaGetIDCDesignation(xmlChar **buf, xmlSchemaIDCPtr
      idc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3803,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - link
    argTypes:
    - xmlSchemaTypeLinkPtr
    constantsTouched: []
    func_position:
      end: 3806
      start: 3796
    functionDepth: 0
    functionLinenumber: 3796
    functionLinenumberEnd: 3806
    functionName: xmlSchemaFreeTypeLinkList
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaFreeTypeLinkList(xmlSchemaTypeLinkPtr link) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WXS_MODELGROUP_PARTICLE
      Src: /src/libxml2/xmlschemas.c:19595,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:19609,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:19603,1
    - Dst: xmlSchemaGetNamedComponent
      Src: /src/libxml2/xmlschemas.c:19616,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:19604,1
    - Dst: xmlSchemaPResCompAttrErr
      Src: /src/libxml2/xmlschemas.c:19619,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:19620,1
    - Dst: WXS_MODELGROUPDEF_MODEL
      Src: /src/libxml2/xmlschemas.c:19626,1
    - Dst: WXS_MODELGROUPDEF_MODEL
      Src: /src/libxml2/xmlschemas.c:19636,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - ctxt
    - mg
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaModelGroupPtr
    constantsTouched: []
    func_position:
      end: 19670
      start: 19590
    functionDepth: 0
    functionLinenumber: 19590
    functionLinenumberEnd: 19670
    functionName: xmlSchemaResolveModelGroupParticleReferences
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPResCompAttrErr
    - xmlSchemaGetNamedComponent
    - WXS_MODELGROUPDEF_MODEL
    - WXS_MODELGROUP_PARTICLE
    - WXS_ITEM_NODE
    - WXS_PARTICLE_TERM
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaResolveModelGroupParticleReferences( xmlSchemaParserCtxtPtr
      ctxt, xmlSchemaModelGroupPtr mg) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:5291,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:5293,1
    - Dst: WXS_ADD_LOCAL
      Src: /src/libxml2/xmlschemas.c:5304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ctxt
    - node
    - min
    - max
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlNodePtr
    - int
    - int
    constantsTouched: []
    func_position:
      end: 5312
      start: 5282
    functionDepth: 0
    functionLinenumber: 5282
    functionLinenumberEnd: 5312
    functionName: xmlSchemaAddParticle
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_ADD_LOCAL
    - xmlMalloc
    - xmlSchemaPErrMemory
    linkageType: ''
    returnType: xmlSchemaParticlePtr
    signature: "static xmlSchemaParticlePtr xmlSchemaAddParticle(xmlSchemaParserCtxtPtr
      ctxt,\t\t xmlNodePtr node, int min, int max) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaPErr
      Src: /src/libxml2/xmlschemas.c:7761,1
    - Dst: xmlGetNsList
      Src: /src/libxml2/xmlschemas.c:7792,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:7802,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:7805,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:7772,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:7806,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:7814,1
    - Dst: xmlPatterncompile
      Src: /src/libxml2/xmlschemas.c:7820,1
    - Dst: xmlPatterncompile
      Src: /src/libxml2/xmlschemas.c:7823,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:7826,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:7829,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 5
    argNames:
    - ctxt
    - idc
    - selector
    - attr
    - isField
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaIDCPtr
    - xmlSchemaIDCSelectPtr
    - xmlAttrPtr
    - int
    constantsTouched: []
    func_position:
      end: 7839
      start: 7744
    functionDepth: 0
    functionLinenumber: 7744
    functionLinenumberEnd: 7839
    functionName: xmlSchemaCheckCSelectorXPath
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaPCustomErr
    - xmlGetNsList
    - xmlSchemaPErr
    - xmlSchemaPErrMemory
    - xmlMalloc
    - xmlPatterncompile
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckCSelectorXPath(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      xmlSchemaIDCPtr idc,\t\t\t xmlSchemaIDCSelectPtr selector,\t\t\t xmlAttrPtr
      attr,\t\t\t int isField) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCheckCOSParticleRestrict
      Src: /src/libxml2/xmlschemas.c:16762,1
    - Dst: xmlSchemaCheckParticleRangeOK
      Src: /src/libxml2/xmlschemas.c:16771,1
    - Dst: xmlSchemaGetParticleTotalRangeMax
      Src: /src/libxml2/xmlschemas.c:16773,1
    - Dst: xmlSchemaGetParticleTotalRangeMin
      Src: /src/libxml2/xmlschemas.c:16772,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - ctxt
    - r
    - b
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaParticlePtr
    - xmlSchemaParticlePtr
    constantsTouched: []
    func_position:
      end: 16777
      start: 16743
    functionDepth: 0
    functionLinenumber: 16743
    functionLinenumberEnd: 16777
    functionName: xmlSchemaCheckRCaseNSRecurseCheckCardinality
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetParticleTotalRangeMin
    - xmlSchemaCheckCOSParticleRestrict
    - xmlSchemaCheckParticleRangeOK
    - xmlSchemaGetParticleTotalRangeMax
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckRCaseNSRecurseCheckCardinality(xmlSchemaParserCtxtPtr
      ctxt,\t\t\t\t\t xmlSchemaParticlePtr r,\t\t\t\t\t xmlSchemaParticlePtr b) "
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:17538,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:17541,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 1
    argNames:
    - type
    argTypes:
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 17593
      start: 17530
    functionDepth: 0
    functionLinenumber: 17530
    functionLinenumberEnd: 17593
    functionName: xmlSchemaTypeFixupWhitespace
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_IS_LIST
    - WXS_IS_UNION
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaTypeFixupWhitespace(xmlSchemaTypePtr type) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 4
    argNames:
    - vctxt
    - inode
    - type
    - value
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlSchemaNodeInfoPtr
    - xmlSchemaTypePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 25567
      start: 25553
    functionDepth: 0
    functionLinenumber: 25553
    functionLinenumberEnd: 25567
    functionName: xmlSchemaVCheckINodeDataType
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaVCheckINodeDataType(xmlSchemaValidCtxtPtr vctxt,\t\t\t
      xmlSchemaNodeInfoPtr inode,\t\t\t xmlSchemaTypePtr type,\t\t\t const xmlChar
      *value) "
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:27097,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27107,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27119,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27120,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27122,1
    - Dst: xmlSchemaIDCFreeKey
      Src: /src/libxml2/xmlschemas.c:27131,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27132,1
    - Dst: xmlSchemaFreeIDCStateObjList
      Src: /src/libxml2/xmlschemas.c:27142,1
    - Dst: xmlSchemaClearAttrInfos
      Src: /src/libxml2/xmlschemas.c:27149,1
    - Dst: xmlSchemaClearElemInfo
      Src: /src/libxml2/xmlschemas.c:27162,1
    - Dst: xmlDictFree
      Src: /src/libxml2/xmlschemas.c:27167,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27175,1
    - Dst: xmlSchemaIDCFreeMatcherList
      Src: /src/libxml2/xmlschemas.c:27189,1
    - Dst: xmlDictCreate
      Src: /src/libxml2/xmlschemas.c:27172,1
    - Dst: xmlSchemaItemListClear
      Src: /src/libxml2/xmlschemas.c:27165,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 70
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 27193
      start: 27077
    functionDepth: 0
    functionLinenumber: 27077
    functionLinenumberEnd: 27193
    functionName: xmlSchemaClearValidCtxt
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaIDCFreeMatcherList
    - xmlDictCreate
    - xmlSchemaItemListClear
    - xmlSchemaFreeIDCStateObjList
    - xmlSchemaClearElemInfo
    - xmlDictFree
    - xmlSchemaClearAttrInfos
    - xmlSchemaIDCFreeKey
    - xmlSchemaFreeValue
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaClearValidCtxt(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_TYPE_NOT_FIXED_1
      Src: /src/libxml2/xmlschemas.c:17601,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:17625,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:17605,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:17617,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:17613,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:17634,1
    - Dst: WXS_IS_TYPE_NOT_FIXED_1
      Src: /src/libxml2/xmlschemas.c:17638,1
    - Dst: xmlSchemaFixupSimpleTypeStageOne
      Src: /src/libxml2/xmlschemas.c:17639,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:17646,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:17648,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:17654,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - pctxt
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 17664
      start: 17595
    functionDepth: 0
    functionLinenumber: 17595
    functionLinenumberEnd: 17664
    functionName: xmlSchemaFixupSimpleTypeStageOne
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_IS_UNION
    - xmlSchemaFixupSimpleTypeStageOne
    - WXS_IS_TYPE_NOT_FIXED_1
    - WXS_IS_LIST
    - WXS_IS_ATOMIC
    - PERROR_INT
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaFixupSimpleTypeStageOne(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t xmlSchemaTypePtr type) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:5256,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:5258,1
    - Dst: WXS_ADD_LOCAL
      Src: /src/libxml2/xmlschemas.c:5264,1
    - Dst: WXS_ADD_PENDING
      Src: /src/libxml2/xmlschemas.c:5267,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:5261,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - ctxt
    - schema
    - type
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlSchemaTypeType
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5269
      start: 5244
    functionDepth: 0
    functionLinenumber: 5244
    functionLinenumberEnd: 5269
    functionName: xmlSchemaAddModelGroup
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - memset
    - WXS_ADD_PENDING
    - xmlSchemaPErrMemory
    - WXS_ADD_LOCAL
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchemaModelGroupPtr
    signature: "static xmlSchemaModelGroupPtr xmlSchemaAddModelGroup(xmlSchemaParserCtxtPtr
      ctxt,\t\t xmlSchemaPtr schema,\t\t xmlSchemaTypeType type,\t\t xmlNodePtr node) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/xmlschemas.c:27736,1
    - Dst: xmlSchemaVStart
      Src: /src/libxml2/xmlschemas.c:27745,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ctxt
    - doc
    argTypes:
    - xmlSchemaValidCtxt*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 27746
      start: 27729
    functionDepth: 0
    functionLinenumber: 27729
    functionLinenumberEnd: 27746
    functionName: xmlSchemaValidateDoc
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlSchemaVStart
    linkageType: ''
    returnType: int
    signature: 'int xmlSchemaValidateDoc(xmlSchemaValidCtxt *ctxt, xmlDoc *doc) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 22
    argCount: 0
    argNames:
    - 6,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2069
    functionDepth: 0
    functionLinenumber: 2069
    functionLinenumberEnd: 2108
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static void LIBXML_ATTR_FORMAT(6,0) xmlSchemaErr4Line(xmlSchemaAbstractCtxtPtr
      ctxt,\t\t xmlErrorLevel errorLevel,\t\t int code, xmlNodePtr node, int line,
      const char *msg,\t\t const xmlChar *str1, const xmlChar *str2,\t\t const xmlChar
      *str3, const xmlChar *str4){ if (ctxt != NULL) {\tif (ctxt->type == XML_SCHEMA_CTXT_VALIDATOR)
      {\t xmlSchemaValidCtxtPtr vctxt = (xmlSchemaValidCtxtPtr) ctxt; const char *file
      = NULL; int col = 0; /*\t * Error node. If we specify a line number, then\t
      * do not channel any node to the error function.\t */ if (line == 0) "
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - schema
    argTypes:
    - xmlSchemaPtr
    constantsTouched: []
    func_position:
      end: 9374
      start: 9350
    functionDepth: 0
    functionLinenumber: 9350
    functionLinenumberEnd: 9374
    functionName: xmlSchemaClearSchemaDefaults
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaClearSchemaDefaults(xmlSchemaPtr schema) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCheckParticleRangeOK
      Src: /src/libxml2/xmlschemas.c:16813,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - ctxt
    - r
    - b
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaParticlePtr
    - xmlSchemaParticlePtr
    constantsTouched: []
    func_position:
      end: 16819
      start: 16796
    functionDepth: 0
    functionLinenumber: 16796
    functionLinenumberEnd: 16819
    functionName: xmlSchemaCheckRCaseRecurse
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaCheckParticleRangeOK
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckRCaseRecurse(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      xmlSchemaParticlePtr r,\t\t\t xmlSchemaParticlePtr b) "
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:9415,1
    - Dst: xmlSchemaPValAttrFormDefault
      Src: /src/libxml2/xmlschemas.c:9418,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:9430,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:9441,1
    - Dst: xmlSchemaPValAttrBlockFinal
      Src: /src/libxml2/xmlschemas.c:9444,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:9461,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:9452,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:9405,1
    - Dst: xmlSchemaPValAttrFormDefault
      Src: /src/libxml2/xmlschemas.c:9431,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:9459,1
    - Dst: xmlSchemaPValAttrBlockFinal
      Src: /src/libxml2/xmlschemas.c:9462,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:9408,1
    - Dst: xmlSchemaPValAttrNode
      Src: /src/libxml2/xmlschemas.c:9407,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:9422,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:9390,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:9417,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:9428,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:9435,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:9443,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:9468,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 3
    argNames:
    - ctxt
    - schema
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 9482
      start: 9376
    functionDepth: 0
    functionLinenumber: 9376
    functionLinenumberEnd: 9482
    functionName: xmlSchemaParseSchemaElement
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetBuiltInType
    - xmlSchemaPValAttrFormDefault
    - xmlSchemaGetNodeContent
    - xmlSchemaPValAttrNode
    - xmlSchemaPValAttrID
    - xmlSchemaPValAttrBlockFinal
    - xmlSchemaPSimpleTypeErr
    - xmlSchemaGetPropNode
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaParseSchemaElement(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      xmlSchemaPtr schema,\t\t\t xmlNodePtr node) "
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaClearAttrInfos
      Src: /src/libxml2/xmlschemas.c:25581,1
    - Dst: xmlRegNewExecCtxt
      Src: /src/libxml2/xmlschemas.c:25621,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25624,1
    - Dst: xmlRegExecNextValues
      Src: /src/libxml2/xmlschemas.c:25642,1
    - Dst: xmlSchemaVCheckINodeDataType
      Src: /src/libxml2/xmlschemas.c:25685,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25731,1
    - Dst: xmlSchemaVCheckINodeDataType
      Src: /src/libxml2/xmlschemas.c:25688,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25761,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:25784,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25789,1
    - Dst: xmlSchemaBubbleIDCNodeTables
      Src: /src/libxml2/xmlschemas.c:25969,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:25889,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25831,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:25674,1
    - Dst: xmlSchemaCheckCOSValidDefault
      Src: /src/libxml2/xmlschemas.c:25727,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:25754,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:25751,1
    - Dst: xmlSchemaVCheckINodeDataType
      Src: /src/libxml2/xmlschemas.c:25755,1
    - Dst: INODE_NILLED
      Src: /src/libxml2/xmlschemas.c:25796,1
    - Dst: xmlSchemaClearElemInfo
      Src: /src/libxml2/xmlschemas.c:25978,1
    - Dst: xmlSchemaXPathProcessHistory
      Src: /src/libxml2/xmlschemas.c:25929,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:25813,1
    - Dst: INODE_NILLED
      Src: /src/libxml2/xmlschemas.c:25633,1
    - Dst: xmlRegExecPushString
      Src: /src/libxml2/xmlschemas.c:25644,1
    - Dst: INODE_NILLED
      Src: /src/libxml2/xmlschemas.c:25645,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:25684,1
    - Dst: INODE_NILLED
      Src: /src/libxml2/xmlschemas.c:25711,1
    - Dst: xmlSchemaVCheckINodeDataType
      Src: /src/libxml2/xmlschemas.c:25752,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25693,1
    - Dst: xmlNewDocText
      Src: /src/libxml2/xmlschemas.c:25782,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:25802,1
    - Dst: xmlSchemaVCheckINodeDataType
      Src: /src/libxml2/xmlschemas.c:25811,1
    - Dst: WXS_HAS_MIXED_CONTENT
      Src: /src/libxml2/xmlschemas.c:25864,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:25855,1
    - Dst: xmlSchemaVCheckINodeDataType
      Src: /src/libxml2/xmlschemas.c:25826,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:25876,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:25902,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:25687,1
    - Dst: xmlSchemaNormalizeValue
      Src: /src/libxml2/xmlschemas.c:25779,1
    - Dst: xmlNewDocText
      Src: /src/libxml2/xmlschemas.c:25786,1
    - Dst: xmlSchemaCheckCVCIDCKeyRef
      Src: /src/libxml2/xmlschemas.c:25957,1
    - Dst: xmlAddChild
      Src: /src/libxml2/xmlschemas.c:25793,1
    - Dst: xmlSchemaIDCFillNodeTables
      Src: /src/libxml2/xmlschemas.c:25950,1
    CyclomaticComplexity: 91
    EdgeCount: 91
    ICount: 181
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 26015
      start: 25574
    functionDepth: 0
    functionLinenumber: 25574
    functionLinenumberEnd: 26015
    functionName: xmlSchemaValidatorPopElem
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaBubbleIDCNodeTables
    - xmlSchemaNormalizeValue
    - xmlSchemaCheckCVCIDCKeyRef
    - WXS_HAS_SIMPLE_CONTENT
    - INODE_NILLED
    - xmlAddChild
    - xmlSchemaCheckCOSValidDefault
    - VERROR
    - xmlSchemaClearElemInfo
    - xmlRegNewExecCtxt
    - xmlSchemaVCheckINodeDataType
    - xmlFree
    - xmlSchemaXPathProcessHistory
    - xmlSchemaIDCFillNodeTables
    - WXS_HAS_MIXED_CONTENT
    - xmlRegExecPushString
    - xmlSchemaFreeValue
    - VERROR_INT
    - xmlNewDocText
    - WXS_IS_SIMPLE
    - xmlStrEqual
    - xmlSchemaClearAttrInfos
    - xmlRegExecNextValues
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaValidatorPopElem(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27215,1
    - Dst: xmlSchemaIDCFreeKey
      Src: /src/libxml2/xmlschemas.c:27223,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27279,1
    - Dst: xmlSchemaFreeParserCtxt
      Src: /src/libxml2/xmlschemas.c:27208,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27218,1
    - Dst: xmlDictFree
      Src: /src/libxml2/xmlschemas.c:27276,1
    - Dst: xmlSchemaClearAttrInfos
      Src: /src/libxml2/xmlschemas.c:27253,1
    - Dst: xmlSchemaClearElemInfo
      Src: /src/libxml2/xmlschemas.c:27268,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27216,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27271,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27258,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:27206,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27224,1
    - Dst: xmlSchemaFreeIDCStateObjList
      Src: /src/libxml2/xmlschemas.c:27228,1
    - Dst: xmlSchemaFreeIDCStateObjList
      Src: /src/libxml2/xmlschemas.c:27232,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27243,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27269,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27256,1
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:27274,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27278,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchemaValidCtxt*
    constantsTouched: []
    func_position:
      end: 27280
      start: 27200
    functionDepth: 0
    functionLinenumber: 27200
    functionLinenumberEnd: 27280
    functionName: xmlSchemaFreeValidCtxt
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaItemListFree
    - xmlSchemaFreeIDCStateObjList
    - xmlSchemaClearElemInfo
    - xmlDictFree
    - xmlSchemaClearAttrInfos
    - xmlSchemaIDCFreeKey
    - xmlSchemaFreeValue
    - xmlSchemaFreeParserCtxt
    linkageType: ''
    returnType: void
    signature: 'void xmlSchemaFreeValidCtxt(xmlSchemaValidCtxt *ctxt) '
  - BBCount: 21
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - xmlSchemaTypeType
    constantsTouched: []
    func_position:
      end: 1137
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1137
    functionName: xmlSchemaItemTypeToStr
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlSchemaItemTypeToStr(xmlSchemaTypeType type) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - schema
    - name
    - nsName
    argTypes:
    - xmlSchemaPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4608
      start: 4595
    functionDepth: 0
    functionLinenumber: 4595
    functionLinenumberEnd: 4608
    functionName: xmlSchemaGetElem
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlSchemaElementPtr
    signature: 'static xmlSchemaElementPtr xmlSchemaGetElem(xmlSchemaPtr schema, const
      xmlChar * name, const xmlChar * nsName) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaIDCNewBinding
      Src: /src/libxml2/xmlschemas.c:21762,1
    - Dst: xmlSchemaIDCNewBinding
      Src: /src/libxml2/xmlschemas.c:21774,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - vctxt
    - matcher
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlSchemaIDCMatcherPtr
    constantsTouched: []
    func_position:
      end: 21783
      start: 21753
    functionDepth: 0
    functionLinenumber: 21753
    functionLinenumberEnd: 21783
    functionName: xmlSchemaIDCAcquireBinding
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaIDCNewBinding
    linkageType: ''
    returnType: xmlSchemaPSVIIDCBindingPtr
    signature: "static xmlSchemaPSVIIDCBindingPtr xmlSchemaIDCAcquireBinding(xmlSchemaValidCtxtPtr
      vctxt,\t\t\t xmlSchemaIDCMatcherPtr matcher) "
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:14533,1
    - Dst: xmlSchemaTypeFixup
      Src: /src/libxml2/xmlschemas.c:14537,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:14536,1
    - Dst: xmlSchemaTypeFixup
      Src: /src/libxml2/xmlschemas.c:14534,1
    - Dst: xmlSchemaTypeFinalContains
      Src: /src/libxml2/xmlschemas.c:14540,1
    - Dst: WXS_IS_ANYTYPE
      Src: /src/libxml2/xmlschemas.c:14556,1
    - Dst: xmlSchemaCheckCOSSTDerivedOK
      Src: /src/libxml2/xmlschemas.c:14557,1
    - Dst: WXS_IS_ANY_SIMPLE_TYPE
      Src: /src/libxml2/xmlschemas.c:14565,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:14566,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:14566,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:14577,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:14582,1
    - Dst: xmlSchemaCheckCOSSTDerivedOK
      Src: /src/libxml2/xmlschemas.c:14585,1
    - Dst: xmlSchemaTypeFixup
      Src: /src/libxml2/xmlschemas.c:14583,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 4
    argNames:
    - actxt
    - type
    - baseType
    - subset
    argTypes:
    - xmlSchemaAbstractCtxtPtr
    - xmlSchemaTypePtr
    - xmlSchemaTypePtr
    - int
    constantsTouched: []
    func_position:
      end: 14598
      start: 14512
    functionDepth: 0
    functionLinenumber: 14512
    functionLinenumberEnd: 14598
    functionName: xmlSchemaCheckCOSSTDerivedOK
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_IS_UNION
    - xmlSchemaTypeFixup
    - WXS_IS_TYPE_NOT_FIXED
    - WXS_IS_LIST
    - WXS_IS_ANY_SIMPLE_TYPE
    - xmlSchemaCheckCOSSTDerivedOK
    - WXS_IS_ANYTYPE
    - xmlSchemaTypeFinalContains
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckCOSSTDerivedOK(xmlSchemaAbstractCtxtPtr actxt,\t\t\t
      xmlSchemaTypePtr type,\t\t\t xmlSchemaTypePtr baseType,\t\t\t int subset) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:21790,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21792,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - vctxt
    - matcher
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlSchemaIDCMatcherPtr
    constantsTouched: []
    func_position:
      end: 21795
      start: 21785
    functionDepth: 0
    functionLinenumber: 21785
    functionLinenumberEnd: 21795
    functionName: xmlSchemaIDCAcquireTargetList
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaVErrMemory
    - xmlSchemaItemListCreate
    linkageType: ''
    returnType: xmlSchemaItemListPtr
    signature: "static xmlSchemaItemListPtr xmlSchemaIDCAcquireTargetList(xmlSchemaValidCtxtPtr
      vctxt,\t\t\t xmlSchemaIDCMatcherPtr matcher) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_MODEL_GROUP
      Src: /src/libxml2/xmlschemas.c:14494,1
    - Dst: xmlSchemaGetParticleEmptiable
      Src: /src/libxml2/xmlschemas.c:14495,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - particle
    argTypes:
    - xmlSchemaParticlePtr
    constantsTouched: []
    func_position:
      end: 14497
      start: 14481
    functionDepth: 0
    functionLinenumber: 14481
    functionLinenumberEnd: 14497
    functionName: xmlSchemaIsParticleEmptiable
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetParticleEmptiable
    - WXS_IS_MODEL_GROUP
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaIsParticleEmptiable(xmlSchemaParticlePtr particle) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaVStart
      Src: /src/libxml2/xmlschemas.c:27718,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - ctxt
    - elem
    argTypes:
    - xmlSchemaValidCtxt*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 27719
      start: 27706
    functionDepth: 0
    functionLinenumber: 27706
    functionLinenumberEnd: 27719
    functionName: xmlSchemaValidateOneElement
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaVStart
    linkageType: ''
    returnType: int
    signature: 'int xmlSchemaValidateOneElement(xmlSchemaValidCtxt *ctxt, xmlNode
      *elem) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 27862
      start: 27854
    functionDepth: 0
    functionLinenumber: 27854
    functionLinenumberEnd: 27862
    functionName: getParameterEntitySplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlEntityPtr
    signature: 'static xmlEntityPtr getParameterEntitySplit(void *ctx, const xmlChar
      *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 6
    argNames:
    - ctx
    - name
    - type
    - publicId
    - systemId
    - content
    argTypes:
    - void*
    - xmlChar*
    - int
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 27874
      start: 27865
    functionDepth: 0
    functionLinenumber: 27865
    functionLinenumberEnd: 27874
    functionName: entityDeclSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void entityDeclSplit(void *ctx, const xmlChar *name, int type,
      const xmlChar *publicId, const xmlChar *systemId, xmlChar *content) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:4627,1
    - Dst: xmlSchemaGetPredefinedType
      Src: /src/libxml2/xmlschemas.c:4628,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 3
    argNames:
    - schema
    - name
    - nsName
    argTypes:
    - xmlSchemaPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4644
      start: 4618
    functionDepth: 0
    functionLinenumber: 4618
    functionLinenumberEnd: 4644
    functionName: xmlSchemaGetType
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetPredefinedType
    - xmlStrEqual
    linkageType: ''
    returnType: xmlSchemaTypePtr
    signature: 'static xmlSchemaTypePtr xmlSchemaGetType(xmlSchemaPtr schema, const
      xmlChar * name, const xmlChar * nsName) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:20197,1
    - Dst: xmlSchemaCheckDerivationOKRestriction2to4
      Src: /src/libxml2/xmlschemas.c:20250,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 1
    argNames:
    - pctxt
    argTypes:
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 20266
      start: 20193
    functionDepth: 0
    functionLinenumber: 20193
    functionLinenumberEnd: 20266
    functionName: xmlSchemaCheckSRCRedefineSecond
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_CONSTRUCTOR
    - xmlSchemaCheckDerivationOKRestriction2to4
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaCheckSRCRedefineSecond(xmlSchemaParserCtxtPtr
      pctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaPErr2
      Src: /src/libxml2/xmlschemas.c:1940,1
    - Dst: xmlSchemaPErr
      Src: /src/libxml2/xmlschemas.c:1945,1
    - Dst: xmlSchemaPErrExt
      Src: /src/libxml2/xmlschemas.c:1968,1
    - Dst: xmlSchemaPErrFull
      Src: /src/libxml2/xmlschemas.c:1974,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 0
    argNames:
    - 4,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1920
    functionDepth: 0
    functionLinenumber: 1920
    functionLinenumberEnd: 1977
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPErrExt
    - xmlSchemaPErrFull
    - xmlSchemaPErr
    - xmlSchemaPErr2
    linkageType: ''
    returnType: void
    signature: "static void LIBXML_ATTR_FORMAT(4,0) xmlSchemaPErr(xmlSchemaParserCtxtPtr
      ctxt, xmlNodePtr node, int code, const char *msg, const xmlChar * str1, const
      xmlChar * str2){ xmlSchemaPErrFull(ctxt, node, code, XML_ERR_ERROR, NULL, 0,
      str1, str2, NULL, 0, msg, str1, str2); } /** * Handle a parser error * * @param
      ctxt the parsing context * @param node the context node * @param child the current
      child * @param error the error code * @param msg the error message * @param
      str1 extra data * @param str2 extra data */ static void LIBXML_ATTR_FORMAT(5,0)xmlSchemaPErr2(xmlSchemaParserCtxtPtr
      ctxt, xmlNodePtr node, xmlNodePtr child, int error, const char *msg, const xmlChar
      * str1, const xmlChar * str2){ if (child != NULL) xmlSchemaPErr(ctxt, child,
      error, msg, str1, str2); else xmlSchemaPErr(ctxt, node, error, msg, str1, str2);
      } /** * Handle a parser error * * @param ctxt the parsing context * @param node
      the context node * @param code the error code * @param strData1 extra data *
      @param strData2 extra data * @param strData3 extra data * @param msg the message
      * @param str1 extra parameter for the message display * @param str2 extra parameter
      for the message display * @param str3 extra parameter for the message display
      * @param str4 extra parameter for the message display * @param str5 extra parameter
      for the message display */ static void LIBXML_ATTR_FORMAT(7,0)xmlSchemaPErrExt(xmlSchemaParserCtxtPtr
      ctxt, xmlNodePtr node, int code,\t\tconst xmlChar * strData1, const xmlChar
      * strData2,\t\tconst xmlChar * strData3, const char *msg, const xmlChar * str1,\t\tconst
      xmlChar * str2, const xmlChar * str3, const xmlChar * str4,\t\tconst xmlChar
      * str5) "
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:10475,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:10485,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:10496,1
    - Dst: WXS_BUCKET
      Src: /src/libxml2/xmlschemas.c:10530,1
    - Dst: xmlSchemaAddSchemaDoc
      Src: /src/libxml2/xmlschemas.c:10567,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:10469,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:10472,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:10509,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:10517,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:10552,1
    - Dst: xmlSchemaParseNewDoc
      Src: /src/libxml2/xmlschemas.c:10590,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:10470,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:10471,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:10490,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:10501,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:10537,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:10538,1
    - Dst: xmlSchemaBuildAbsoluteURI
      Src: /src/libxml2/xmlschemas.c:10565,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:10476,1
    - Dst: xmlSchemaPValAttr
      Src: /src/libxml2/xmlschemas.c:10484,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:10487,1
    - Dst: xmlSchemaPValAttr
      Src: /src/libxml2/xmlschemas.c:10495,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:10498,1
    - Dst: CAN_PARSE_SCHEMA
      Src: /src/libxml2/xmlschemas.c:10589,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 71
    argCount: 3
    argNames:
    - pctxt
    - schema
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 10594
      start: 10449
    functionDepth: 0
    functionLinenumber: 10449
    functionLinenumberEnd: 10594
    functionName: xmlSchemaParseImport
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetBuiltInType
    - WXS_BUCKET
    - xmlSchemaPCustomErr
    - xmlSchemaBuildAbsoluteURI
    - xmlSchemaParseNewDoc
    - xmlSchemaAddSchemaDoc
    - IS_SCHEMA
    - xmlStrEqual
    - CAN_PARSE_SCHEMA
    - xmlSchemaPContentErr
    - xmlSchemaPSimpleTypeErr
    - xmlSchemaPIllegalAttrErr
    - xmlSchemaPValAttr
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaParseImport(xmlSchemaParserCtxtPtr pctxt, xmlSchemaPtr
      schema, xmlNodePtr node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - loc
    argTypes:
    - void*
    - xmlSAXLocatorPtr
    constantsTouched: []
    func_position:
      end: 27931
      start: 27924
    functionDepth: 0
    functionLinenumber: 27924
    functionLinenumberEnd: 27931
    functionName: setDocumentLocatorSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void setDocumentLocatorSplit(void *ctx, xmlSAXLocatorPtr loc) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:10618,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:10628,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:10636,1
    - Dst: xmlSchemaPValAttrNode
      Src: /src/libxml2/xmlschemas.c:10641,1
    - Dst: xmlNodeGetBase
      Src: /src/libxml2/xmlschemas.c:10645,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:10653,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:10657,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:10658,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:10650,1
    - Dst: xmlSchemaPMissingAttrErr
      Src: /src/libxml2/xmlschemas.c:10660,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:10623,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:10676,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:10622,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:10642,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:10670,1
    - Dst: xmlBuildURI
      Src: /src/libxml2/xmlschemas.c:10647,1
    - Dst: xmlBuildURI
      Src: /src/libxml2/xmlschemas.c:10649,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:10617,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:10619,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:10668,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 58
    argCount: 5
    argNames:
    - pctxt
    - schema
    - node
    - schemaLocation
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    - xmlChar**
    - int
    constantsTouched: []
    func_position:
      end: 10690
      start: 10596
    functionDepth: 0
    functionLinenumber: 10596
    functionLinenumberEnd: 10690
    functionName: xmlSchemaParseIncludeOrRedefineAttrs
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaGetBuiltInType
    - xmlDictLookup
    - xmlSchemaPCustomErr
    - xmlBuildURI
    - xmlNodeGetBase
    - xmlSchemaPValAttrNode
    - xmlSchemaPValAttrID
    - xmlStrEqual
    - PERROR_INT
    - xmlSchemaPMissingAttrErr
    - xmlSchemaPIllegalAttrErr
    - xmlSchemaGetPropNode
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaParseIncludeOrRedefineAttrs(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t\t xmlSchemaPtr schema,\t\t\t\t xmlNodePtr node,\t\t\t\t xmlChar
      **schemaLocation,\t\t\t\t int type) "
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: WXS_REDEFINED_TYPE
      Src: /src/libxml2/xmlschemas.c:20309,1
    - Dst: WXS_GET_GLOBAL_HASH
      Src: /src/libxml2/xmlschemas.c:20316,1
    - Dst: WXS_GET_GLOBAL_HASH
      Src: /src/libxml2/xmlschemas.c:20312,1
    - Dst: WXS_REDEFINED_MODEL_GROUP_DEF
      Src: /src/libxml2/xmlschemas.c:20323,1
    - Dst: WXS_GET_GLOBAL_HASH
      Src: /src/libxml2/xmlschemas.c:20320,1
    - Dst: WXS_GET_GLOBAL_HASH
      Src: /src/libxml2/xmlschemas.c:20326,1
    - Dst: WXS_REDEFINED_ATTR_GROUP
      Src: /src/libxml2/xmlschemas.c:20329,1
    - Dst: WXS_GET_GLOBAL_HASH
      Src: /src/libxml2/xmlschemas.c:20332,1
    - Dst: WXS_GET_GLOBAL_HASH
      Src: /src/libxml2/xmlschemas.c:20338,1
    - Dst: WXS_GET_GLOBAL_HASH
      Src: /src/libxml2/xmlschemas.c:20342,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:20352,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:20345,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:20367,1
    - Dst: xmlSchemaAddComponents
      Src: /src/libxml2/xmlschemas.c:20379,1
    - Dst: xmlHashCreateDict
      Src: /src/libxml2/xmlschemas.c:20350,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:20368,1
    - Dst: WXS_ITEM_TYPE_NAME
      Src: /src/libxml2/xmlschemas.c:20366,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/xmlschemas.c:20357,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 54
    argCount: 2
    argNames:
    - pctxt
    - bucket
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaBucketPtr
    constantsTouched: []
    func_position:
      end: 20386
      start: 20269
    functionDepth: 0
    functionLinenumber: 20269
    functionLinenumberEnd: 20386
    functionName: xmlSchemaAddComponents
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_ITEM_TYPE_NAME
    - WXS_REDEFINED_ATTR_GROUP
    - WXS_REDEFINED_TYPE
    - WXS_REDEFINED_MODEL_GROUP_DEF
    - xmlSchemaGetComponentQName
    - PERROR_INT
    - WXS_GET_GLOBAL_HASH
    - FREE_AND_NULL
    - xmlHashAddEntry
    - xmlSchemaAddComponents
    - xmlHashCreateDict
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaAddComponents(xmlSchemaParserCtxtPtr pctxt,\t\t
      xmlSchemaBucketPtr bucket) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 27940
      start: 27933
    functionDepth: 0
    functionLinenumber: 27933
    functionLinenumberEnd: 27940
    functionName: startDocumentSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void startDocumentSplit(void *ctx) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:4052,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:4054,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:4056,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:4060,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:4058,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:4062,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:4064,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:4067,1
    - Dst: xmlSchemaBucketFree
      Src: /src/libxml2/xmlschemas.c:4072,1
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:4074,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:4081,1
    - Dst: xmlSchemaFreeAnnot
      Src: /src/libxml2/xmlschemas.c:4077,1
    - Dst: xmlDictFree
      Src: /src/libxml2/xmlschemas.c:4080,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 1
    argNames:
    - schema
    argTypes:
    - xmlSchema*
    constantsTouched: []
    func_position:
      end: 4082
      start: 4041
    functionDepth: 0
    functionLinenumber: 4041
    functionLinenumberEnd: 4082
    functionName: xmlSchemaFree
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFree
    - xmlSchemaFreeAnnot
    - xmlSchemaItemListFree
    - xmlDictFree
    - xmlSchemaBucketFree
    linkageType: ''
    returnType: void
    signature: 'void xmlSchemaFree(xmlSchema *schema) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeAnnot
      Src: /src/libxml2/xmlschemas.c:3708,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3711,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:3710,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - use
    argTypes:
    - xmlSchemaAttributeUsePtr
    constantsTouched: []
    func_position:
      end: 3712
      start: 3702
    functionDepth: 0
    functionLinenumber: 3702
    functionLinenumberEnd: 3712
    functionName: xmlSchemaFreeAttributeUse
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaFreeAnnot
    - xmlSchemaFreeValue
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaFreeAttributeUse(xmlSchemaAttributeUsePtr use) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaComponentListFree
      Src: /src/libxml2/xmlschemas.c:3463,1
    - Dst: xmlSchemaComponentListFree
      Src: /src/libxml2/xmlschemas.c:3467,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3475,1
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:3464,1
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:3468,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/xmlschemas.c:3479,1
    - Dst: WXS_IMPBUCKET
      Src: /src/libxml2/xmlschemas.c:3482,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/xmlschemas.c:3483,1
    - Dst: WXS_IMPBUCKET
      Src: /src/libxml2/xmlschemas.c:3483,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3485,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - bucket
    argTypes:
    - xmlSchemaBucketPtr
    constantsTouched: []
    func_position:
      end: 3486
      start: 3457
    functionDepth: 0
    functionLinenumber: 3457
    functionLinenumberEnd: 3486
    functionName: xmlSchemaBucketFree
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaItemListFree
    - WXS_IMPBUCKET
    - xmlSchemaComponentListFree
    - xmlSchemaFree
    - xmlFreeDoc
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaBucketFree(xmlSchemaBucketPtr bucket) '
  - BBCount: 1555
    BranchProfiles: []
    Callsites:
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:15560,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16418,1
    - Dst: xmlSchemaAddParticle
      Src: /src/libxml2/xmlschemas.c:18096,1
    - Dst: xmlSchemaCheckCOSDerivedOK
      Src: /src/libxml2/xmlschemas.c:19236,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:24490,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:21339,1
    - Dst: WXS_HAS_MIXED_CONTENT
      Src: /src/libxml2/xmlschemas.c:15528,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:18711,1
    - Dst: xmlSchemaItemListRemove
      Src: /src/libxml2/xmlschemas.c:18982,1
    - Dst: WXS_PARTICLE_TERM_AS_ELEM
      Src: /src/libxml2/xmlschemas.c:19498,1
    - Dst: INODE_NILLED
      Src: /src/libxml2/xmlschemas.c:25711,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:24044,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:27097,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:27519,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:18326,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18612,1
    - Dst: xmlSchemaCloneWildcardNsConstraints
      Src: /src/libxml2/xmlschemas.c:18822,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:18886,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19134,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19228,1
    - Dst: xmlSchemaIDCNewBinding
      Src: /src/libxml2/xmlschemas.c:21774,1
    - Dst: xmlSchemaAssembleByXSI
      Src: /src/libxml2/xmlschemas.c:26384,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:23840,1
    - Dst: xmlSchemaSetParserStructuredErrors
      Src: /src/libxml2/xmlschemas.c:27339,1
    - Dst: xmlSchemaPIllegalFacetAtomicErr
      Src: /src/libxml2/xmlschemas.c:15017,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17285,1
    - Dst: WXS_IS_TYPE_NOT_FIXED_1
      Src: /src/libxml2/xmlschemas.c:17638,1
    - Dst: xmlSchemaIntersectWildcards
      Src: /src/libxml2/xmlschemas.c:18830,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21869,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:21224,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:19267,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22423,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:23684,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:24610,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:15051,1
    - Dst: WXS_IS_ANYTYPE
      Src: /src/libxml2/xmlschemas.c:15760,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15840,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15975,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:16415,1
    - Dst: WXS_IS_EXTENSION
      Src: /src/libxml2/xmlschemas.c:17896,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:19179,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:23137,1
    - Dst: xmlStrncatNew
      Src: /src/libxml2/xmlschemas.c:26354,1
    - Dst: xmlSchemaCheckDerivationOKRestriction2to4
      Src: /src/libxml2/xmlschemas.c:20250,1
    - Dst: xmlSchemaGetValType
      Src: /src/libxml2/xmlschemas.c:19682,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21821,1
    - Dst: xmlSchemaVPushText
      Src: /src/libxml2/xmlschemas.c:26791,1
    - Dst: xmlSchemaVPushText
      Src: /src/libxml2/xmlschemas.c:26715,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:25684,1
    - Dst: xmlTextReaderDepth
      Src: /src/libxml2/xmlschemas.c:26666,1
    - Dst: xmlSchemaNewSchema
      Src: /src/libxml2/xmlschemas.c:27623,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/xmlschemas.c:22659,1
    - Dst: xmlSchemaLookupNamespace
      Src: /src/libxml2/xmlschemas.c:24435,1
    - Dst: xmlSchemaValidatorPushAttribute
      Src: /src/libxml2/xmlschemas.c:26941,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:17422,1
    - Dst: xmlSchemaCheckDerivationOKRestriction
      Src: /src/libxml2/xmlschemas.c:16278,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:19207,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:20841,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:21223,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23515,1
    - Dst: xmlSchemaGetFreshElemInfo
      Src: /src/libxml2/xmlschemas.c:25543,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:15343,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17065,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:19603,1
    - Dst: xmlSchemaGetNotation
      Src: /src/libxml2/xmlschemas.c:21499,1
    - Dst: xmlSchemaXPathPop
      Src: /src/libxml2/xmlschemas.c:25313,1
    - Dst: xmlStrncat
      Src: /src/libxml2/xmlschemas.c:26350,1
    - Dst: xmlSchemaFormatIDCKeySequence
      Src: /src/libxml2/xmlschemas.c:23455,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemas.c:25155,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:25754,1
    - Dst: xmlSchemaValidatorPopElem
      Src: /src/libxml2/xmlschemas.c:27561,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:22926,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:26879,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:20367,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:22242,1
    - Dst: xmlSchemaValidatorPushAttribute
      Src: /src/libxml2/xmlschemas.c:26618,1
    - Dst: xmlSchemaTypeFixupWhitespace
      Src: /src/libxml2/xmlschemas.c:17743,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:19515,1
    - Dst: xmlSchemaResolveAttrUseReferences
      Src: /src/libxml2/xmlschemas.c:20481,1
    - Dst: xmlSchemaNewSchema
      Src: /src/libxml2/xmlschemas.c:20882,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27279,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26510,1
    - Dst: FACET_RESTR_MUTUAL_ERR
      Src: /src/libxml2/xmlschemas.c:17009,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16863,1
    - Dst: xmlSchemaFacetTypeToString
      Src: /src/libxml2/xmlschemas.c:18312,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21697,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:23591,1
    - Dst: xmlSchemaValPredefTypeNodeNoNorm
      Src: /src/libxml2/xmlschemas.c:24158,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:23437,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/xmlschemas.c:27040,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22600,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:23698,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:24385,1
    - Dst: xmlSchemaPCustomErrExt
      Src: /src/libxml2/xmlschemas.c:15174,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16359,1
    - Dst: xmlSchemaAddParticle
      Src: /src/libxml2/xmlschemas.c:18116,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:20744,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:21430,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:27496,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26448,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:18398,1
    - Dst: WXS_PARTICLE_TERM_AS_ELEM
      Src: /src/libxml2/xmlschemas.c:19497,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21623,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/xmlschemas.c:28397,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24763,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:17406,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:15039,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15071,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15285,1
    - Dst: xmlSchemaPCustomErrExt
      Src: /src/libxml2/xmlschemas.c:15355,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:19309,1
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:27043,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:25515,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17115,1
    - Dst: xmlSchemaCustomErr
      Src: /src/libxml2/xmlschemas.c:20915,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21792,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:22774,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:23164,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:24368,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27132,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:27431,1
    - Dst: WXS_IS_TYPE_NOT_FIXED_1
      Src: /src/libxml2/xmlschemas.c:17601,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15252,1
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:17876,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:22162,1
    - Dst: xmlTextReaderLocalName
      Src: /src/libxml2/xmlschemas.c:26619,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:19465,1
    - Dst: WXS_ATTR_GROUP_HAS_REFS
      Src: /src/libxml2/xmlschemas.c:20596,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:22979,1
    - Dst: return
      Src: /src/libxml2/xmlschemas.c:16721,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26197,1
    - Dst: xmlSchemaIsParticleEmptiable
      Src: /src/libxml2/xmlschemas.c:16173,1
    - Dst: xmlSchemaAddElementSubstitutionMember
      Src: /src/libxml2/xmlschemas.c:19430,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:19859,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21542,1
    - Dst: xmlFreeStreamCtxt
      Src: /src/libxml2/xmlschemas.c:22004,1
    - Dst: xmlTextReaderLocalName
      Src: /src/libxml2/xmlschemas.c:26587,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:25164,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:15800,1
    - Dst: WXS_HAS_MIXED_CONTENT
      Src: /src/libxml2/xmlschemas.c:16225,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:19818,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:23629,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:26871,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:15901,1
    - Dst: xmlSchemaFreeParserCtxt
      Src: /src/libxml2/xmlschemas.c:18419,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:19794,1
    - Dst: xmlSchemaCheckGroupDefCircular
      Src: /src/libxml2/xmlschemas.c:20547,1
    - Dst: WXS_TYPE_IS_LOCAL
      Src: /src/libxml2/xmlschemas.c:20786,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:21133,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:21724,1
    - Dst: xmlSchemaCheckAGPropsCorrect
      Src: /src/libxml2/xmlschemas.c:20718,1
    - Dst: xmlSchemaValidateFacets
      Src: /src/libxml2/xmlschemas.c:24200,1
    - Dst: xmlSchemaAssembleByLocation
      Src: /src/libxml2/xmlschemas.c:21373,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15179,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26254,1
    - Dst: xmlSchemaVStart
      Src: /src/libxml2/xmlschemas.c:28346,1
    - Dst: xmlSplitQName2
      Src: /src/libxml2/xmlschemas.c:21467,1
    - Dst: memcpy
      Src: /src/libxml2/xmlschemas.c:23299,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:24510,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23237,1
    - Dst: xmlRegNewExecCtxt
      Src: /src/libxml2/xmlschemas.c:26146,1
    - Dst: WXS_EMPTIABLE
      Src: /src/libxml2/xmlschemas.c:25492,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:25902,1
    - Dst: INODE_NILLED
      Src: /src/libxml2/xmlschemas.c:25633,1
    - Dst: xmlSchemaCheckCOSNSSubset
      Src: /src/libxml2/xmlschemas.c:16674,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17170,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:17447,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:18203,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:18373,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmlschemas.c:26665,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:28457,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21727,1
    - Dst: xmlSchemaLookupNamespace
      Src: /src/libxml2/xmlschemas.c:21472,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:15185,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:15763,1
    - Dst: xmlSchemaCheckCOSParticleRestrict
      Src: /src/libxml2/xmlschemas.c:16762,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17120,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:17927,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:27031,1
    - Dst: xmlParseDocument
      Src: /src/libxml2/xmlschemas.c:27685,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:15183,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:15184,1
    - Dst: xmlSchemaValidateChildElem
      Src: /src/libxml2/xmlschemas.c:26403,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17239,1
    - Dst: xmlSchemaTypeFinalContains
      Src: /src/libxml2/xmlschemas.c:15269,1
    - Dst: WXS_IS_ANY_SIMPLE_TYPE
      Src: /src/libxml2/xmlschemas.c:24110,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23720,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:20785,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26945,1
    - Dst: xmlSchemaItemListRemove
      Src: /src/libxml2/xmlschemas.c:15653,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17276,1
    - Dst: xmlSchemaCheckCTComponent
      Src: /src/libxml2/xmlschemas.c:18171,1
    - Dst: xmlSchemaAddComponents
      Src: /src/libxml2/xmlschemas.c:20379,1
    - Dst: xmlSchemaResolveIDCKeyReferences
      Src: /src/libxml2/xmlschemas.c:20504,1
    - Dst: xmlSchemaVCheckINodeDataType
      Src: /src/libxml2/xmlschemas.c:25811,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:28401,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:23891,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:16502,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17032,1
    - Dst: xmlSchemaAddType
      Src: /src/libxml2/xmlschemas.c:17841,1
    - Dst: xmlPatternGetStreamCtxt
      Src: /src/libxml2/xmlschemas.c:22009,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:18400,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:21376,1
    - Dst: xmlRegExecPushString2
      Src: /src/libxml2/xmlschemas.c:26164,1
    - Dst: xmlSchemaFixupSimpleTypeStageOne
      Src: /src/libxml2/xmlschemas.c:17639,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:15166,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:15243,1
    - Dst: xmlSchemaAddParticle
      Src: /src/libxml2/xmlschemas.c:17971,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:23414,1
    - Dst: WXS_ILIST_IS_EMPTY
      Src: /src/libxml2/xmlschemas.c:23064,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:22906,1
    - Dst: WXS_ATTR_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:24985,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:22265,1
    - Dst: xmlSchemaIsParticleEmptiable
      Src: /src/libxml2/xmlschemas.c:16374,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17175,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:17457,1
    - Dst: xmlSchemaCheckSRCCT
      Src: /src/libxml2/xmlschemas.c:17786,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19250,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22587,1
    - Dst: xmlTextReaderLookupNamespace
      Src: /src/libxml2/xmlschemas.c:21415,1
    - Dst: xmlSchemaCheckElementDeclConsistent
      Src: /src/libxml2/xmlschemas.c:20788,1
    - Dst: xmlSchemaFixupComponents
      Src: /src/libxml2/xmlschemas.c:21254,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:24347,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:19604,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:22576,1
    - Dst: xmlSchemaTypeFixup
      Src: /src/libxml2/xmlschemas.c:17775,1
    - Dst: WXS_TYPE_PARTICLE
      Src: /src/libxml2/xmlschemas.c:18070,1
    - Dst: xmlSchemaVAttributesSimple
      Src: /src/libxml2/xmlschemas.c:26526,1
    - Dst: xmlSchemaIDCAppendNodeTableItem
      Src: /src/libxml2/xmlschemas.c:22628,1
    - Dst: xmlStreamPushAttr
      Src: /src/libxml2/xmlschemas.c:22055,1
    - Dst: xmlSchemaFormatIDCKeySequence
      Src: /src/libxml2/xmlschemas.c:23473,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17201,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:15009,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:16317,1
    - Dst: WXS_ATTR_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19107,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:25420,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:19009,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:24254,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:23457,1
    - Dst: xmlSchemaValidateQName
      Src: /src/libxml2/xmlschemas.c:24149,1
    - Dst: WXS_IS_EXTENSION
      Src: /src/libxml2/xmlschemas.c:15592,1
    - Dst: xmlSchemaAttributeGroupExpandRefs
      Src: /src/libxml2/xmlschemas.c:18795,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22408,1
    - Dst: xmlSchemaClearAttrInfos
      Src: /src/libxml2/xmlschemas.c:27253,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:24387,1
    - Dst: return
      Src: /src/libxml2/xmlschemas.c:15367,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:15551,1
    - Dst: xmlSchemaPResCompAttrErr
      Src: /src/libxml2/xmlschemas.c:19757,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19809,1
    - Dst: xmlHashCreateDict
      Src: /src/libxml2/xmlschemas.c:20350,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:23542,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26127,1
    - Dst: xmlSchemaClearElemInfo
      Src: /src/libxml2/xmlschemas.c:27162,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/xmlschemas.c:27736,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17324,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19237,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:25455,1
    - Dst: xmlSchemaInitTypes
      Src: /src/libxml2/xmlschemas.c:20870,1
    - Dst: xmlSchemaPErr
      Src: /src/libxml2/xmlschemas.c:15461,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:23592,1
    - Dst: xmlSAX2GetLineNumber
      Src: /src/libxml2/xmlschemas.c:26850,1
    - Dst: xmlRegFreeExecCtxt
      Src: /src/libxml2/xmlschemas.c:23660,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22078,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:18207,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:19917,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:24654,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15297,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:15366,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17230,1
    - Dst: xmlStreamPop
      Src: /src/libxml2/xmlschemas.c:22207,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27119,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:15364,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:15365,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:22665,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/xmlschemas.c:20959,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:19682,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17256,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17293,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:17767,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:18328,1
    - Dst: xmlSchemaGetCircModelGrDefRef
      Src: /src/libxml2/xmlschemas.c:18547,1
    - Dst: xmlSchemaItemListRemove
      Src: /src/libxml2/xmlschemas.c:18770,1
    - Dst: WXS_GET_GLOBAL_HASH
      Src: /src/libxml2/xmlschemas.c:20320,1
    - Dst: xmlSearchNsByHref
      Src: /src/libxml2/xmlschemas.c:25144,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25395,1
    - Dst: xmlSchemaGetElem
      Src: /src/libxml2/xmlschemas.c:26425,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:23824,1
    - Dst: WXS_EMPTIABLE
      Src: /src/libxml2/xmlschemas.c:15528,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:15878,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:17887,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:19797,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:27001,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:24511,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25789,1
    - Dst: xmlSchemaGetUnionSimpleTypeMemberTypes
      Src: /src/libxml2/xmlschemas.c:17448,1
    - Dst: WXS_MODELGROUPDEF_MODEL
      Src: /src/libxml2/xmlschemas.c:18600,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:18965,1
    - Dst: xmlSchemaLookupNamespace
      Src: /src/libxml2/xmlschemas.c:24021,1
    - Dst: xmlSchemaNewQNameValue
      Src: /src/libxml2/xmlschemas.c:24043,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26077,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:19793,1
    - Dst: WXS_GET_GLOBAL_HASH
      Src: /src/libxml2/xmlschemas.c:20342,1
    - Dst: xmlTextReaderNodeType
      Src: /src/libxml2/xmlschemas.c:26565,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16035,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17309,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:15060,1
    - Dst: xmlSchemaFreeIDCStateObjList
      Src: /src/libxml2/xmlschemas.c:27228,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/xmlschemas.c:27652,1
    - Dst: xmlSchemaHashKeySequence
      Src: /src/libxml2/xmlschemas.c:22646,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:24827,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:20080,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21654,1
    - Dst: xmlSchemaClearElemInfo
      Src: /src/libxml2/xmlschemas.c:27268,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:22647,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:24702,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25108,1
    - Dst: xmlNewDocText
      Src: /src/libxml2/xmlschemas.c:25782,1
    - Dst: xmlSchemaFormatIDCKeySequence_1
      Src: /src/libxml2/xmlschemas.c:22188,1
    - Dst: xmlSchemaValidateElem
      Src: /src/libxml2/xmlschemas.c:26647,1
    - Dst: xmlValidateQName
      Src: /src/libxml2/xmlschemas.c:23997,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:15942,1
    - Dst: xmlSchemaGetAttributeGroup
      Src: /src/libxml2/xmlschemas.c:19038,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:19497,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/xmlschemas.c:20357,1
    - Dst: xmlSchemaPreRun
      Src: /src/libxml2/xmlschemas.c:27664,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:21570,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:21520,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:21986,1
    - Dst: xmlStrlen
      Src: /src/libxml2/xmlschemas.c:26345,1
    - Dst: xmlSchemaGetWhiteSpaceFacetValue
      Src: /src/libxml2/xmlschemas.c:23976,1
    - Dst: xmlSchemaValidateElemDecl
      Src: /src/libxml2/xmlschemas.c:26473,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15248,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:18706,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19228,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:25342,1
    - Dst: xmlSchemaAddModelGroup
      Src: /src/libxml2/xmlschemas.c:17979,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:19407,1
    - Dst: WXS_PARTICLE_TERM_AS_ELEM
      Src: /src/libxml2/xmlschemas.c:19512,1
    - Dst: WXS_GET_GLOBAL_HASH
      Src: /src/libxml2/xmlschemas.c:20316,1
    - Dst: xmlSearchNs
      Src: /src/libxml2/xmlschemas.c:25156,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:24630,1
    - Dst: xmlSchemaXPathProcessHistory
      Src: /src/libxml2/xmlschemas.c:25929,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:24840,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25624,1
    - Dst: xmlSchemaSAXUnplug
      Src: /src/libxml2/xmlschemas.c:28359,1
    - Dst: WXS_TYPE_CONTENTTYPE
      Src: /src/libxml2/xmlschemas.c:18108,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18604,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17338,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:18557,1
    - Dst: WXS_GET_GLOBAL_HASH
      Src: /src/libxml2/xmlschemas.c:20338,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:23860,1
    - Dst: WXS_ILIST_IS_EMPTY
      Src: /src/libxml2/xmlschemas.c:22855,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:21626,1
    - Dst: xmlDictCreate
      Src: /src/libxml2/xmlschemas.c:27038,1
    - Dst: xmlSchemaSAXHandleEndElementNs
      Src: /src/libxml2/xmlschemas.c:28086,1
    - Dst: xmlSchemaFreeParserCtxt
      Src: /src/libxml2/xmlschemas.c:27208,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17234,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:17689,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:18396,1
    - Dst: WXS_PARTICLE_TERM_AS_ELEM
      Src: /src/libxml2/xmlschemas.c:19495,1
    - Dst: xmlSchemaCheckCOSCTExtends
      Src: /src/libxml2/xmlschemas.c:16276,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17197,1
    - Dst: xmlSchemaGetCircModelGrDefRef
      Src: /src/libxml2/xmlschemas.c:18503,1
    - Dst: xmlSchemaModelGroupToModelGroupDefFixup
      Src: /src/libxml2/xmlschemas.c:20579,1
    - Dst: xmlSchemaItemListAdd
      Src: /src/libxml2/xmlschemas.c:23215,1
    - Dst: xmlFreeEnumeration
      Src: /src/libxml2/xmlschemas.c:27887,1
    - Dst: xmlSchemaVAttributesComplex
      Src: /src/libxml2/xmlschemas.c:26522,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:15679,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22599,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27243,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:28128,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:24217,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:23587,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:24243,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmlschemas.c:26560,1
    - Dst: WXS_ELEM_CAST
      Src: /src/libxml2/xmlschemas.c:19484,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:21890,1
    - Dst: xmlSchemaGetUnionSimpleTypeMemberTypes
      Src: /src/libxml2/xmlschemas.c:24322,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:24431,1
    - Dst: xmlSchemaGetMetaAttrInfo
      Src: /src/libxml2/xmlschemas.c:24670,1
    - Dst: xmlTextReaderMoveToElement
      Src: /src/libxml2/xmlschemas.c:26637,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/xmlschemas.c:27428,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16872,1
    - Dst: xmlSchemaItemListRemove
      Src: /src/libxml2/xmlschemas.c:15682,1
    - Dst: WXS_ATTR_GROUP_CAST
      Src: /src/libxml2/xmlschemas.c:18788,1
    - Dst: WXS_MODELGROUP_PARTICLE
      Src: /src/libxml2/xmlschemas.c:19595,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:21126,1
    - Dst: xmlSchemaIDCFreeBinding
      Src: /src/libxml2/xmlschemas.c:23294,1
    - Dst: xmlSchemaValPredefTypeNodeNoNorm
      Src: /src/libxml2/xmlschemas.c:24175,1
    - Dst: xmlSchemaValidateFacets
      Src: /src/libxml2/xmlschemas.c:24363,1
    - Dst: xmlSchemaTypeFixup
      Src: /src/libxml2/xmlschemas.c:17864,1
    - Dst: xmlSchemaGetPrimitiveType
      Src: /src/libxml2/xmlschemas.c:15007,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:20197,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:21336,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:24605,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:22345,1
    - Dst: xmlSchemaIDCFreeKey
      Src: /src/libxml2/xmlschemas.c:27223,1
    - Dst: xmlNewSAXParserCtxt
      Src: /src/libxml2/xmlschemas.c:28393,1
    - Dst: xmlCreateURLParserCtxt
      Src: /src/libxml2/xmlschemas.c:28453,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23381,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25076,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17104,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17289,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:17874,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:20022,1
    - Dst: xmlSchemaAddSchemaDoc
      Src: /src/libxml2/xmlschemas.c:20899,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:25490,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:22683,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:25674,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17252,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:19269,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:19681,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:25007,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:25889,1
    - Dst: WXS_TYPE_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18072,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:20785,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21868,1
    - Dst: WXS_HAS_MIXED_CONTENT
      Src: /src/libxml2/xmlschemas.c:16220,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16859,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17158,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:19484,1
    - Dst: xmlSchemaGetAttributeDecl
      Src: /src/libxml2/xmlschemas.c:19754,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:21695,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26692,1
    - Dst: xmlHashScan
      Src: /src/libxml2/xmlschemas.c:27642,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:24191,1
    - Dst: xmlSchemaTypeFixup
      Src: /src/libxml2/xmlschemas.c:15045,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16211,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:19509,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:24339,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:23529,1
    - Dst: xmlSchemaValidateFacets
      Src: /src/libxml2/xmlschemas.c:24284,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:25751,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26369,1
    - Dst: xmlSchemaPCustomErrExt
      Src: /src/libxml2/xmlschemas.c:19201,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:17907,1
    - Dst: xmlSchemaValidatePredefinedType
      Src: /src/libxml2/xmlschemas.c:18365,1
    - Dst: WXS_GET_GLOBAL_HASH
      Src: /src/libxml2/xmlschemas.c:20312,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21818,1
    - Dst: xmlSplitQName2
      Src: /src/libxml2/xmlschemas.c:24012,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:24679,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:25008,1
    - Dst: xmlSchemaGetElem
      Src: /src/libxml2/xmlschemas.c:25411,1
    - Dst: xmlSchemaVDocWalk
      Src: /src/libxml2/xmlschemas.c:27671,1
    - Dst: xmlSchemaVCheckINodeDataType
      Src: /src/libxml2/xmlschemas.c:25826,1
    - Dst: xmlTextReaderDepth
      Src: /src/libxml2/xmlschemas.c:26663,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15148,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:17541,1
    - Dst: xmlSchemaValueGetAsString
      Src: /src/libxml2/xmlschemas.c:19704,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21496,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:25876,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25308,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26111,1
    - Dst: xmlStopParser
      Src: /src/libxml2/xmlschemas.c:27011,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:22577,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:25294,1
    - Dst: xmlSchemaNewValidCtxt
      Src: /src/libxml2/xmlschemas.c:15459,1
    - Dst: xmlSchemaCheckCOSDerivedOK
      Src: /src/libxml2/xmlschemas.c:16569,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:18561,1
    - Dst: xmlSchemaCheckSubstGroupCircular
      Src: /src/libxml2/xmlschemas.c:19195,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:23476,1
    - Dst: xmlSchemaIDCRegisterMatchers
      Src: /src/libxml2/xmlschemas.c:24696,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25101,1
    - Dst: xmlSchemaGetWhiteSpaceFacetValue
      Src: /src/libxml2/xmlschemas.c:23788,1
    - Dst: WXS_IS_EXTENSION
      Src: /src/libxml2/xmlschemas.c:15742,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:15881,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17213,1
    - Dst: xmlSchemaTypeFixup
      Src: /src/libxml2/xmlschemas.c:17445,1
    - Dst: WXS_TYPE_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18052,1
    - Dst: xmlSchemaGetValType
      Src: /src/libxml2/xmlschemas.c:19681,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:20161,1
    - Dst: xmlTextReaderDepth
      Src: /src/libxml2/xmlschemas.c:26575,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18611,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:15348,1
    - Dst: xmlSchemaAddComponents
      Src: /src/libxml2/xmlschemas.c:20430,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24759,1
    - Dst: xmlSchemaProcessXSIType
      Src: /src/libxml2/xmlschemas.c:25436,1
    - Dst: xmlSchemaItemListAdd
      Src: /src/libxml2/xmlschemas.c:21540,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17305,1
    - Dst: WXS_IS_EXTENSION
      Src: /src/libxml2/xmlschemas.c:17917,1
    - Dst: WXS_ATTR_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19076,1
    - Dst: xmlSchemaCheckSubstGroupCircular
      Src: /src/libxml2/xmlschemas.c:19142,1
    - Dst: WXS_REDEFINED_ATTR_GROUP
      Src: /src/libxml2/xmlschemas.c:20329,1
    - Dst: xmlSchemaCheckSRCRedefineFirst
      Src: /src/libxml2/xmlschemas.c:20425,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:23397,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:23513,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25693,1
    - Dst: xmlSearchNs
      Src: /src/libxml2/xmlschemas.c:21474,1
    - Dst: INODE_NILLED
      Src: /src/libxml2/xmlschemas.c:25645,1
    - Dst: ACTIVATE_ATTRIBUTE
      Src: /src/libxml2/xmlschemas.c:24481,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15066,1
    - Dst: xmlSchemaItemListRemove
      Src: /src/libxml2/xmlschemas.c:18841,1
    - Dst: xmlSchemaGetNotation
      Src: /src/libxml2/xmlschemas.c:21487,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21497,1
    - Dst: xmlSchemaGetIDCDesignation
      Src: /src/libxml2/xmlschemas.c:22294,1
    - Dst: INODE_NILLED
      Src: /src/libxml2/xmlschemas.c:26039,1
    - Dst: xmlSchemaClearAttrInfos
      Src: /src/libxml2/xmlschemas.c:27149,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24432,1
    - Dst: xmlSchemaGetAttributeDecl
      Src: /src/libxml2/xmlschemas.c:19996,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17225,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:19495,1
    - Dst: xmlStreamPush
      Src: /src/libxml2/xmlschemas.c:22052,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26639,1
    - Dst: xmlSchemaNewNOTATIONValue
      Src: /src/libxml2/xmlschemas.c:21489,1
    - Dst: xmlSchemaCheckCOSDerivedOK
      Src: /src/libxml2/xmlschemas.c:24559,1
    - Dst: WXS_IS_EXTENSION
      Src: /src/libxml2/xmlschemas.c:16331,1
    - Dst: xmlSchemaCheckAttrGroupCircularRecur
      Src: /src/libxml2/xmlschemas.c:18699,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:19273,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:19511,1
    - Dst: xmlSchemaPResCompAttrErr
      Src: /src/libxml2/xmlschemas.c:19619,1
    - Dst: WXS_TYPE_PARTICLE
      Src: /src/libxml2/xmlschemas.c:20790,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:25280,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/xmlschemas.c:23385,1
    - Dst: xmlSchemaGetValType
      Src: /src/libxml2/xmlschemas.c:23798,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22637,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:19856,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:20786,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:22745,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:14974,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:15133,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:16164,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:18883,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:19249,1
    - Dst: xmlSchemaVCheckINodeDataType
      Src: /src/libxml2/xmlschemas.c:25752,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26045,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15301,1
    - Dst: xmlSchemaValidateNotation
      Src: /src/libxml2/xmlschemas.c:24165,1
    - Dst: NORMALIZE
      Src: /src/libxml2/xmlschemas.c:24232,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:24289,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27064,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:24324,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:25221,1
    - Dst: xmlSchemaNormalizeValue
      Src: /src/libxml2/xmlschemas.c:25779,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:19268,1
    - Dst: xmlSchemaPErr
      Src: /src/libxml2/xmlschemas.c:19290,1
    - Dst: xmlSchemaPResCompAttrErr
      Src: /src/libxml2/xmlschemas.c:19945,1
    - Dst: WXS_ITEM_TYPE_NAME
      Src: /src/libxml2/xmlschemas.c:20079,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21891,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:22142,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:22153,1
    - Dst: WXS_LIST_ITEMTYPE
      Src: /src/libxml2/xmlschemas.c:24237,1
    - Dst: xmlStopParser
      Src: /src/libxml2/xmlschemas.c:26968,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:22404,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26595,1
    - Dst: xmlSchemaTypeFinalContains
      Src: /src/libxml2/xmlschemas.c:15146,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15181,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:15550,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17280,1
    - Dst: PERROR_INT2
      Src: /src/libxml2/xmlschemas.c:19836,1
    - Dst: xmlSchemaCheckUnionTypeDefCircular
      Src: /src/libxml2/xmlschemas.c:20639,1
    - Dst: xmlSchemaCopyValue
      Src: /src/libxml2/xmlschemas.c:25106,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17036,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17088,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17124,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:15527,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:18710,1
    - Dst: xmlSchemaGetNamedComponent
      Src: /src/libxml2/xmlschemas.c:19616,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/xmlschemas.c:23373,1
    - Dst: xmlTextReaderNodeType
      Src: /src/libxml2/xmlschemas.c:26576,1
    - Dst: xmlSchemaPostRun
      Src: /src/libxml2/xmlschemas.c:28250,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:23718,1
    - Dst: xmlSchemaGetAttributeDecl
      Src: /src/libxml2/xmlschemas.c:24968,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:17634,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:17795,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15363,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16861,1
    - Dst: FACET_RESTR_MUTUAL_ERR
      Src: /src/libxml2/xmlschemas.c:17003,1
    - Dst: xmlSchemaCreateVCtxtOnPCtxt
      Src: /src/libxml2/xmlschemas.c:18451,1
    - Dst: xmlSchemaGetIDC
      Src: /src/libxml2/xmlschemas.c:19938,1
    - Dst: xmlSchemaValidateFacetWhtsp
      Src: /src/libxml2/xmlschemas.c:23819,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22422,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:24270,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:18967,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24013,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:22075,1
    - Dst: xmlSchemaCheckCVCWildcardNamespace
      Src: /src/libxml2/xmlschemas.c:16604,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18594,1
    - Dst: xmlHasProp
      Src: /src/libxml2/xmlschemas.c:19302,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:27557,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:22584,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:22534,1
    - Dst: xmlHashScan
      Src: /src/libxml2/xmlschemas.c:26395,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15134,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:15165,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:14975,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:19265,1
    - Dst: xmlNodeListGetString
      Src: /src/libxml2/xmlschemas.c:27470,1
    - Dst: xmlSchemaVPushText
      Src: /src/libxml2/xmlschemas.c:27516,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:23588,1
    - Dst: xmlSchemaVExpandQName
      Src: /src/libxml2/xmlschemas.c:24486,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:21490,1
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:21790,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/xmlschemas.c:20942,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:22305,1
    - Dst: WXS_HAS_MIXED_CONTENT
      Src: /src/libxml2/xmlschemas.c:16225,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:16424,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17046,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:19266,1
    - Dst: xmlSchemaValidatorPopElem
      Src: /src/libxml2/xmlschemas.c:26689,1
    - Dst: xmlRegExecErrInfo
      Src: /src/libxml2/xmlschemas.c:26174,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17179,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15091,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:19702,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:21131,1
    - Dst: xmlSchemaIDCFreeIDCTable
      Src: /src/libxml2/xmlschemas.c:23656,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23695,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27278,1
    - Dst: WXS_PARTICLE_TERM_AS_ELEM
      Src: /src/libxml2/xmlschemas.c:19496,1
    - Dst: xmlSchemaAttributeGroupExpandRefs
      Src: /src/libxml2/xmlschemas.c:20598,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:25194,1
    - Dst: xmlSchemaProcessXSIType
      Src: /src/libxml2/xmlschemas.c:26073,1
    - Dst: xmlSchemaTypeFixup
      Src: /src/libxml2/xmlschemas.c:17690,1
    - Dst: xmlSchemaFixupTypeAttributeUses
      Src: /src/libxml2/xmlschemas.c:18164,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19144,1
    - Dst: xmlSchemaProcessXSIType
      Src: /src/libxml2/xmlschemas.c:24675,1
    - Dst: WXS_HAS_MIXED_CONTENT
      Src: /src/libxml2/xmlschemas.c:25491,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25524,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:15591,1
    - Dst: xmlSchemaDeriveAndValidateFacets
      Src: /src/libxml2/xmlschemas.c:17737,1
    - Dst: xmlSchemaNewParserCtxt
      Src: /src/libxml2/xmlschemas.c:18289,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:19112,1
    - Dst: xmlHashScan
      Src: /src/libxml2/xmlschemas.c:21605,1
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:21820,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25135,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21483,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:22295,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:24015,1
    - Dst: WXS_PARTICLE_TERM_AS_ELEM
      Src: /src/libxml2/xmlschemas.c:19513,1
    - Dst: WXS_ITEM_TYPE_NAME
      Src: /src/libxml2/xmlschemas.c:20366,1
    - Dst: xmlSchemaBuildAbsoluteURI
      Src: /src/libxml2/xmlschemas.c:21196,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:26994,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/xmlschemas.c:28414,1
    - Dst: xmlSchemaCheckElemSubstGroup
      Src: /src/libxml2/xmlschemas.c:19579,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24037,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26534,1
    - Dst: xmlSchemaConstructionCtxtFree
      Src: /src/libxml2/xmlschemas.c:20946,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:22794,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:24251,1
    - Dst: xmlNewNs
      Src: /src/libxml2/xmlschemas.c:25168,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:23568,1
    - Dst: xmlStopParser
      Src: /src/libxml2/xmlschemas.c:26771,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:16330,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17069,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:15296,1
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:15743,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18600,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:17896,1
    - Dst: xmlSchemaResolveAttrTypeReferences
      Src: /src/libxml2/xmlschemas.c:20476,1
    - Dst: xmlSchemaFormatIDCKeySequence_1
      Src: /src/libxml2/xmlschemas.c:22179,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22649,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26284,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:26920,1
    - Dst: xmlTextReaderValue
      Src: /src/libxml2/xmlschemas.c:26621,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17142,1
    - Dst: xmlSchemaTypeFinalContains
      Src: /src/libxml2/xmlschemas.c:14987,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16338,1
    - Dst: xmlSchemaSAXHandleText
      Src: /src/libxml2/xmlschemas.c:28012,1
    - Dst: WXS_ILIST_IS_EMPTY
      Src: /src/libxml2/xmlschemas.c:22878,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:21941,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25438,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26608,1
    - Dst: INODE_NILLED
      Src: /src/libxml2/xmlschemas.c:26248,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:17836,1
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:16407,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:19781,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15310,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:20352,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:21398,1
    - Dst: xmlSchemaFormatIDCKeySequence
      Src: /src/libxml2/xmlschemas.c:22573,1
    - Dst: xmlSchemaValidateListSimpleTypeFacet
      Src: /src/libxml2/xmlschemas.c:23853,1
    - Dst: xmlSchemaSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:24302,1
    - Dst: FACET_RESTR_ERR
      Src: /src/libxml2/xmlschemas.c:17380,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24049,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:19782,1
    - Dst: xmlTextReaderIsEmptyElement
      Src: /src/libxml2/xmlschemas.c:26593,1
    - Dst: xmlSchemaClearElemInfo
      Src: /src/libxml2/xmlschemas.c:25978,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:23599,1
    - Dst: ACTIVATE_ATTRIBUTE
      Src: /src/libxml2/xmlschemas.c:24624,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:14993,1
    - Dst: xmlSchemaCheckParticleRangeOK
      Src: /src/libxml2/xmlschemas.c:16667,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:17763,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:18995,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21420,1
    - Dst: xmlSchemaIDCAddStateObject
      Src: /src/libxml2/xmlschemas.c:22830,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:23175,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:23481,1
    - Dst: WXS_HAS_MIXED_CONTENT
      Src: /src/libxml2/xmlschemas.c:25864,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21807,1
    - Dst: xmlSchemaFixupSimpleTypeStageTwo
      Src: /src/libxml2/xmlschemas.c:20659,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:23379,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:26336,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21479,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26768,1
    - Dst: xmlSchemaCollapseString
      Src: /src/libxml2/xmlschemas.c:24011,1
    - Dst: xmlNewIOInputStream
      Src: /src/libxml2/xmlschemas.c:28409,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15057,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:15554,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17188,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17342,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:19858,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21537,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22812,1
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:23211,1
    - Dst: xmlSchemaCheckCVCWildcardNamespace
      Src: /src/libxml2/xmlschemas.c:24942,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26629,1
    - Dst: xmlSchemaCheckCOSSTDerivedOK
      Src: /src/libxml2/xmlschemas.c:16152,1
    - Dst: xmlSchemaCheckParticleRangeOK
      Src: /src/libxml2/xmlschemas.c:16813,1
    - Dst: xmlSchemaFinishMemberTypeDefinitionsProperty
      Src: /src/libxml2/xmlschemas.c:17698,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26205,1
    - Dst: xmlSchemaNormalizeValue
      Src: /src/libxml2/xmlschemas.c:25127,1
    - Dst: xmlSchemaGetCanonValueWhtspExt
      Src: /src/libxml2/xmlschemas.c:22146,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25731,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27107,1
    - Dst: xmlSchemaSAXHandleStartElementNs
      Src: /src/libxml2/xmlschemas.c:28070,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:23583,1
    - Dst: xmlSchemaGetParticleTotalRangeMax
      Src: /src/libxml2/xmlschemas.c:16773,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:15639,1
    - Dst: xmlSchemaCheckCOSSTDerivedOK
      Src: /src/libxml2/xmlschemas.c:15777,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:19206,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:19867,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:23622,1
    - Dst: xmlSchemaClearAttrInfos
      Src: /src/libxml2/xmlschemas.c:26532,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:24393,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:25138,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:15638,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:17404,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19194,1
    - Dst: xmlSchemaResolveModelGroupParticleReferences
      Src: /src/libxml2/xmlschemas.c:20497,1
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:21937,1
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:21887,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:22815,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26582,1
    - Dst: xmlSchemaXPathEvaluate
      Src: /src/libxml2/xmlschemas.c:26507,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:27564,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22083,1
    - Dst: xmlSchemaValueAppend
      Src: /src/libxml2/xmlschemas.c:24264,1
    - Dst: xmlRegexpCompile
      Src: /src/libxml2/xmlschemas.c:18341,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:18559,1
    - Dst: WXS_ITEM_TYPE_NAME
      Src: /src/libxml2/xmlschemas.c:19546,1
    - Dst: xmlSchemaCompareValuesWhtsp
      Src: /src/libxml2/xmlschemas.c:19707,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:20067,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:20172,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:22157,1
    - Dst: xmlRegExecPushString
      Src: /src/libxml2/xmlschemas.c:25644,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17243,1
    - Dst: xmlSchemaFixupSimpleTypeStageTwo
      Src: /src/libxml2/xmlschemas.c:17871,1
    - Dst: xmlSchemaItemListRemove
      Src: /src/libxml2/xmlschemas.c:18890,1
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:27274,1
    - Dst: xmlDictCreate
      Src: /src/libxml2/xmlschemas.c:27172,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:16166,1
    - Dst: WXS_GET_GLOBAL_HASH
      Src: /src/libxml2/xmlschemas.c:20332,1
    - Dst: xmlSchemaCheckElementDeclComponent
      Src: /src/libxml2/xmlschemas.c:20774,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21884,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21934,1
    - Dst: xmlSchemaIDCNewBinding
      Src: /src/libxml2/xmlschemas.c:23260,1
    - Dst: xmlSchemaSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:24216,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24757,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26476,1
    - Dst: xmlSchemaSAXPlug
      Src: /src/libxml2/xmlschemas.c:28338,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17297,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:17917,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22613,1
    - Dst: NORMALIZE
      Src: /src/libxml2/xmlschemas.c:24362,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26995,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27258,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:27687,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:23726,1
    - Dst: xmlSchemaGetUnionSimpleTypeMemberTypes
      Src: /src/libxml2/xmlschemas.c:15341,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:15665,1
    - Dst: xmlSchemaAreEqualTypes
      Src: /src/libxml2/xmlschemas.c:15729,1
    - Dst: WXS_TYPE_PARTICLE
      Src: /src/libxml2/xmlschemas.c:18050,1
    - Dst: xmlSchemaValidatePredefinedType
      Src: /src/libxml2/xmlschemas.c:18361,1
    - Dst: xmlValidateQName
      Src: /src/libxml2/xmlschemas.c:21460,1
    - Dst: xmlSchemaIDCReleaseMatcherList
      Src: /src/libxml2/xmlschemas.c:23646,1
    - Dst: xmlSchemaSetValidStructuredErrors
      Src: /src/libxml2/xmlschemas.c:21014,1
    - Dst: xmlTextReaderMoveToFirstAttribute
      Src: /src/libxml2/xmlschemas.c:26606,1
    - Dst: xmlSchemaVCheckINodeDataType
      Src: /src/libxml2/xmlschemas.c:25688,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:17617,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:16168,1
    - Dst: xmlSchemaCheckElementDeclConsistent
      Src: /src/libxml2/xmlschemas.c:19478,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:19546,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19831,1
    - Dst: xmlSchemaCheckSRCRedefineSecond
      Src: /src/libxml2/xmlschemas.c:20733,1
    - Dst: xmlSchemaConstructionCtxtCreate
      Src: /src/libxml2/xmlschemas.c:20889,1
    - Dst: xmlSchemaAddType
      Src: /src/libxml2/xmlschemas.c:17837,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26169,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:15065,1
    - Dst: xmlSchemaPIllegalFacetListUnionErr
      Src: /src/libxml2/xmlschemas.c:15387,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16047,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16868,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17021,1
    - Dst: xmlSchemaRedefListFree
      Src: /src/libxml2/xmlschemas.c:20845,1
    - Dst: xmlSchemaGetIDCDesignation
      Src: /src/libxml2/xmlschemas.c:22393,1
    - Dst: xmlSchemaGetPrimitiveType
      Src: /src/libxml2/xmlschemas.c:23785,1
    - Dst: xmlSchemaCheckElementDeclComponent
      Src: /src/libxml2/xmlschemas.c:19173,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21659,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/xmlschemas.c:23408,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:24187,1
    - Dst: xmlSchemaValidatorPushElem
      Src: /src/libxml2/xmlschemas.c:26841,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:23664,1
    - Dst: xmlSchemaClearAttrInfos
      Src: /src/libxml2/xmlschemas.c:25581,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25761,1
    - Dst: xmlSchemaIsParticleEmptiable
      Src: /src/libxml2/xmlschemas.c:16202,1
    - Dst: xmlSchemaFacetTypeToString
      Src: /src/libxml2/xmlschemas.c:18386,1
    - Dst: xmlSchemaIDCFreeBinding
      Src: /src/libxml2/xmlschemas.c:21837,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:27033,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19355,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:23477,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:25520,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:23125,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:22546,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15180,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:15879,1
    - Dst: xmlSchemaValueGetNext
      Src: /src/libxml2/xmlschemas.c:19718,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:20658,1
    - Dst: xmlSchemaSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:24376,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:25784,1
    - Dst: xmlSchemaFacetErr
      Src: /src/libxml2/xmlschemas.c:23916,1
    - Dst: xmlSchemaFacetTypeToString
      Src: /src/libxml2/xmlschemas.c:16868,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15152,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:15246,1
    - Dst: xmlSchemaCheckCOSCTDerivedOK
      Src: /src/libxml2/xmlschemas.c:15803,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16182,1
    - Dst: xmlSchemaCheckAttrUsePropsCorrect
      Src: /src/libxml2/xmlschemas.c:20696,1
    - Dst: xmlSchemaValidateSetLocator
      Src: /src/libxml2/xmlschemas.c:28330,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/xmlschemas.c:22533,1
    - Dst: xmlSchemaGetParticleTotalRangeMin
      Src: /src/libxml2/xmlschemas.c:16772,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:21524,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:21620,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:23945,1
    - Dst: xmlSchemaXPathProcessHistory
      Src: /src/libxml2/xmlschemas.c:25306,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23392,1
    - Dst: xmlSchemaPreRun
      Src: /src/libxml2/xmlschemas.c:28229,1
    - Dst: return
      Src: /src/libxml2/xmlschemas.c:15186,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:17685,1
    - Dst: WXS_IS_TYPE_NOT_FIXED_1
      Src: /src/libxml2/xmlschemas.c:20618,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:21371,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:24304,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/xmlschemas.c:28460,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26720,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/xmlschemas.c:22645,1
    - Dst: xmlSchemaCheckCVCIDCKeyRef
      Src: /src/libxml2/xmlschemas.c:25957,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:14979,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15138,1
    - Dst: WXS_IS_EXTENSION
      Src: /src/libxml2/xmlschemas.c:16275,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17268,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:19248,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:26718,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19819,1
    - Dst: xmlSchemaCheckTypeDefCircular
      Src: /src/libxml2/xmlschemas.c:20540,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:23409,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:19106,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:25480,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21917,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:25353,1
    - Dst: FACET_RESTR_ERR
      Src: /src/libxml2/xmlschemas.c:16992,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19143,1
    - Dst: xmlSchemaGetPrimitiveType
      Src: /src/libxml2/xmlschemas.c:19684,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:24634,1
    - Dst: INODE_NILLED
      Src: /src/libxml2/xmlschemas.c:25796,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26842,1
    - Dst: xmlSchemaValidatorPopElem
      Src: /src/libxml2/xmlschemas.c:26998,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26430,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18593,1
    - Dst: xmlSchemaIDCAcquireTargetList
      Src: /src/libxml2/xmlschemas.c:22517,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:23731,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24380,1
    - Dst: xmlDictFree
      Src: /src/libxml2/xmlschemas.c:27276,1
    - Dst: xmlSchemaVStart
      Src: /src/libxml2/xmlschemas.c:27718,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:23234,1
    - Dst: xmlSchemaIsBuiltInTypeFacet
      Src: /src/libxml2/xmlschemas.c:15015,1
    - Dst: xmlSchemaGetCanonValueHash
      Src: /src/libxml2/xmlschemas.c:22150,1
    - Dst: xmlSchemaValidatorPushElem
      Src: /src/libxml2/xmlschemas.c:27446,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:27482,1
    - Dst: xmlSchemaItemListAdd
      Src: /src/libxml2/xmlschemas.c:22999,1
    - Dst: xmlSchemaGetIDCDesignation
      Src: /src/libxml2/xmlschemas.c:22575,1
    - Dst: xmlSchemaCheckParticleRangeOK
      Src: /src/libxml2/xmlschemas.c:16771,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19341,1
    - Dst: xmlSchemaCustomErr
      Src: /src/libxml2/xmlschemas.c:20910,1
    - Dst: xmlSchemaParseNewDocWithContext
      Src: /src/libxml2/xmlschemas.c:21239,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:23693,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:25226,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:21189,1
    - Dst: xmlSchemaGetFreshAttrInfo
      Src: /src/libxml2/xmlschemas.c:23566,1
    - Dst: WXS_IS_ANY_SIMPLE_TYPE
      Src: /src/libxml2/xmlschemas.c:23787,1
    - Dst: xmlSchemaIsBlank
      Src: /src/libxml2/xmlschemas.c:26275,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16870,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:17444,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:15044,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22661,1
    - Dst: xmlSchemaBuildContentModel
      Src: /src/libxml2/xmlschemas.c:20811,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:24838,1
    - Dst: xmlNewNsProp
      Src: /src/libxml2/xmlschemas.c:25177,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17050,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:17654,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:16344,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:20345,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:28260,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmlschemas.c:26662,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:22272,1
    - Dst: xmlSchemaIDCStoreNodeTableItem
      Src: /src/libxml2/xmlschemas.c:22598,1
    - Dst: xmlSchemaFacetErr
      Src: /src/libxml2/xmlschemas.c:23829,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17320,1
    - Dst: xmlSchemaCheckSTPropsCorrect
      Src: /src/libxml2/xmlschemas.c:17710,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:15247,1
    - Dst: xmlSchemaHashKeySequence
      Src: /src/libxml2/xmlschemas.c:22532,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22614,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17079,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:17625,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15362,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15053,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:18968,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:20069,1
    - Dst: xmlSchemaValPredefTypeNodeNoNorm
      Src: /src/libxml2/xmlschemas.c:24155,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27175,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:22394,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:22703,1
    - Dst: xmlSchemaResolveTypeReferences
      Src: /src/libxml2/xmlschemas.c:20471,1
    - Dst: xmlTextReaderNamespaceUri
      Src: /src/libxml2/xmlschemas.c:26620,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15530,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:17459,1
    - Dst: xmlSchemaValueGetAsString
      Src: /src/libxml2/xmlschemas.c:19703,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22348,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:23459,1
    - Dst: xmlRegNewExecCtxt
      Src: /src/libxml2/xmlschemas.c:25621,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:19830,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:25334,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27256,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:23774,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:23393,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:22419,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:15929,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemas.c:17835,1
    - Dst: xmlSchemaItemListAddSize
      Src: /src/libxml2/xmlschemas.c:18780,1
    - Dst: WXS_MODELGROUPDEF_MODEL
      Src: /src/libxml2/xmlschemas.c:19636,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:25802,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21692,1
    - Dst: xmlSchemaValidateLengthFacetWhtsp
      Src: /src/libxml2/xmlschemas.c:23815,1
    - Dst: xmlSchemaTypeFinalContains
      Src: /src/libxml2/xmlschemas.c:15308,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15271,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:16087,1
    - Dst: xmlSchemaCheckParticleRangeOK
      Src: /src/libxml2/xmlschemas.c:16509,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:16880,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19141,1
    - Dst: xmlSchemaCheckAttrPropsCorrect
      Src: /src/libxml2/xmlschemas.c:20679,1
    - Dst: xmlSchemaPostRun
      Src: /src/libxml2/xmlschemas.c:27692,1
    - Dst: xmlSchemaSetParserErrors
      Src: /src/libxml2/xmlschemas.c:27318,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:21350,1
    - Dst: xmlSchemaValidateNotation
      Src: /src/libxml2/xmlschemas.c:24143,1
    - Dst: xmlSchemaXPathEvaluate
      Src: /src/libxml2/xmlschemas.c:25073,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:24209,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:15666,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:15882,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:16310,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:18966,1
    - Dst: xmlSchemaItemListRemove
      Src: /src/libxml2/xmlschemas.c:19012,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:27206,1
    - Dst: xmlSchemaGetMetaAttrInfo
      Src: /src/libxml2/xmlschemas.c:26070,1
    - Dst: xmlSchemaValidateElemWildcard
      Src: /src/libxml2/xmlschemas.c:26445,1
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:18005,1
    - Dst: xmlSchemaParseCheckCOSValidDefault
      Src: /src/libxml2/xmlschemas.c:19305,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21572,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:21651,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:22940,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:24429,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:15035,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16857,1
    - Dst: xmlHasProp
      Src: /src/libxml2/xmlschemas.c:19299,1
    - Dst: xmlNewDocText
      Src: /src/libxml2/xmlschemas.c:25786,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26406,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26957,1
    - Dst: xmlSchemaSetValidStructuredErrors
      Src: /src/libxml2/xmlschemas.c:15471,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:15667,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:17863,1
    - Dst: WXS_TYPE_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18051,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:18763,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:19087,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22164,1
    - Dst: xmlSchemaVReaderWalk
      Src: /src/libxml2/xmlschemas.c:27678,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:24884,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:23623,1
    - Dst: xmlStopParser
      Src: /src/libxml2/xmlschemas.c:26796,1
    - Dst: xmlSchemaGetPrimitiveType
      Src: /src/libxml2/xmlschemas.c:17519,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:20784,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:21489,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21732,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23510,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:23584,1
    - Dst: xmlValidateQName
      Src: /src/libxml2/xmlschemas.c:24410,1
    - Dst: ACTIVATE_ATTRIBUTE
      Src: /src/libxml2/xmlschemas.c:25326,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17133,1
    - Dst: xmlSchemaPResCompAttrErr
      Src: /src/libxml2/xmlschemas.c:19904,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22636,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23293,1
    - Dst: NORMALIZE
      Src: /src/libxml2/xmlschemas.c:24119,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25545,1
    - Dst: xmlSchemaGetType
      Src: /src/libxml2/xmlschemas.c:19901,1
    - Dst: xmlSchemaCheckAttrGroupCircular
      Src: /src/libxml2/xmlschemas.c:20554,1
    - Dst: xmlSchemaValueGetAsBoolean
      Src: /src/libxml2/xmlschemas.c:24648,1
    - Dst: xmlSchemaIDCFreeMatcherList
      Src: /src/libxml2/xmlschemas.c:23648,1
    - Dst: xmlSchemaIDCAcquireBinding
      Src: /src/libxml2/xmlschemas.c:22515,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:26877,1
    - Dst: xmlSchemaIDCFreeKey
      Src: /src/libxml2/xmlschemas.c:22437,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23231,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:14963,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:15834,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:18366,1
    - Dst: xmlSchemaPResCompAttrErr
      Src: /src/libxml2/xmlschemas.c:19042,1
    - Dst: xmlRegExecNextValues
      Src: /src/libxml2/xmlschemas.c:25642,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:22160,1
    - Dst: xmlSchemaFacetTypeToString
      Src: /src/libxml2/xmlschemas.c:16856,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17075,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:17678,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:18333,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26793,1
    - Dst: xmlSchemaItemListAdd
      Src: /src/libxml2/xmlschemas.c:21536,1
    - Dst: WXS_ILIST_IS_EMPTY
      Src: /src/libxml2/xmlschemas.c:23102,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:22810,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15314,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17111,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:20932,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:21730,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24024,1
    - Dst: xmlSchemaCheckFacet
      Src: /src/libxml2/xmlschemas.c:18456,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:18997,1
    - Dst: xmlSchemaFixupSimpleTypeStageOne
      Src: /src/libxml2/xmlschemas.c:20619,1
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:19395,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26266,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:23595,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26650,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27269,1
    - Dst: xmlSchemaValidateElem
      Src: /src/libxml2/xmlschemas.c:27493,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17264,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:15439,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:15553,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16231,1
    - Dst: xmlSchemaCheckCTPropsCorrect
      Src: /src/libxml2/xmlschemas.c:16272,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:16503,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25159,1
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:20732,1
    - Dst: xmlSchemaAddSchemaDoc
      Src: /src/libxml2/xmlschemas.c:21203,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/xmlschemas.c:23391,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:14968,1
    - Dst: xmlSchemaFixupSimpleTypeStageOne
      Src: /src/libxml2/xmlschemas.c:17869,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22588,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:21183,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26136,1
    - Dst: xmlSchemaAddWildcard
      Src: /src/libxml2/xmlschemas.c:18817,1
    - Dst: xmlSchemaCheckCOSValidDefault
      Src: /src/libxml2/xmlschemas.c:25727,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:20180,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:23475,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26029,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:17646,1
    - Dst: xmlSchemaCheckCOSSTDerivedOK
      Src: /src/libxml2/xmlschemas.c:15801,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19170,1
    - Dst: xmlSchemaPCustomErrExt
      Src: /src/libxml2/xmlschemas.c:19241,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:21456,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22354,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:22660,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:23290,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16408,1
    - Dst: xmlSchemaVAddNodeQName
      Src: /src/libxml2/xmlschemas.c:22610,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:24081,1
    - Dst: xmlSearchNs
      Src: /src/libxml2/xmlschemas.c:21434,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27120,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:24110,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:14989,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:18872,1
    - Dst: xmlSchemaSetValidErrors
      Src: /src/libxml2/xmlschemas.c:20994,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17166,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:15649,1
    - Dst: xmlSchemaGetCircModelGrDefRef
      Src: /src/libxml2/xmlschemas.c:18513,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19354,1
    - Dst: WXS_IS_EXTENSION
      Src: /src/libxml2/xmlschemas.c:19391,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:24986,1
    - Dst: xmlSchemaBubbleIDCNodeTables
      Src: /src/libxml2/xmlschemas.c:25969,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27271,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:21353,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:25855,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:16396,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:20790,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21847,1
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:23308,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23700,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19136,1
    - Dst: xmlSchemaFindRedefCompInGraph
      Src: /src/libxml2/xmlschemas.c:20044,1
    - Dst: xmlSchemaGetMetaAttrInfo
      Src: /src/libxml2/xmlschemas.c:21320,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:21502,1
    - Dst: xmlSchemaValidatorPushElem
      Src: /src/libxml2/xmlschemas.c:26581,1
    - Dst: xmlSchemaConstructionCtxtCreate
      Src: /src/libxml2/xmlschemas.c:27629,1
    - Dst: CAN_PARSE_SCHEMA
      Src: /src/libxml2/xmlschemas.c:21229,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:22266,1
    - Dst: xmlSchemaFacetErr
      Src: /src/libxml2/xmlschemas.c:23958,1
    - Dst: xmlSchemaPIllegalFacetListUnionErr
      Src: /src/libxml2/xmlschemas.c:15109,1
    - Dst: WXS_ATTRUSE_DECL
      Src: /src/libxml2/xmlschemas.c:19855,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21478,1
    - Dst: xmlSchemaValueGetNext
      Src: /src/libxml2/xmlschemas.c:19720,1
    - Dst: xmlSchemaIDCFreeKey
      Src: /src/libxml2/xmlschemas.c:27131,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:19981,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:20170,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:15052,1
    - Dst: WXS_IS_ANY_SIMPLE_TYPE
      Src: /src/libxml2/xmlschemas.c:15079,1
    - Dst: WXS_TYPE_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18071,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:19011,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:22081,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26623,1
    - Dst: xmlSchemaFixupComplexType
      Src: /src/libxml2/xmlschemas.c:20745,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:24240,1
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:15429,1
    - Dst: WXS_MODELGROUPDEF_MODEL
      Src: /src/libxml2/xmlschemas.c:19626,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26497,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:26993,1
    - Dst: xmlRegexpExec
      Src: /src/libxml2/xmlschemas.c:23941,1
    - Dst: xmlSchemaCollapseString
      Src: /src/libxml2/xmlschemas.c:23978,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25831,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmlschemas.c:26734,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17092,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17129,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:18708,1
    - Dst: xmlSchemaExpandAttributeGroupRefs
      Src: /src/libxml2/xmlschemas.c:18920,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19163,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:20082,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24438,1
    - Dst: xmlSchemaValidatorPushAttribute
      Src: /src/libxml2/xmlschemas.c:27472,1
    - Dst: xmlSchemaKeyrefErr
      Src: /src/libxml2/xmlschemas.c:23450,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17184,1
    - Dst: xmlSchemaCheckAttrGroupCircularRecur
      Src: /src/libxml2/xmlschemas.c:18656,1
    - Dst: xmlSplitQName2
      Src: /src/libxml2/xmlschemas.c:24427,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:25495,1
    - Dst: xmlSchemaVCheckINodeDataType
      Src: /src/libxml2/xmlschemas.c:25755,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17146,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:17605,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:15681,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:19473,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21484,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21883,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:27066,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:21657,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16866,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:18278,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:18300,1
    - Dst: xmlTextReaderNamespaceUri
      Src: /src/libxml2/xmlschemas.c:26588,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:24766,1
    - Dst: xmlSchemaIDCFreeMatcherList
      Src: /src/libxml2/xmlschemas.c:27189,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:22155,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:22351,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17221,1
    - Dst: xmlSchemaFreeParserCtxt
      Src: /src/libxml2/xmlschemas.c:18423,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:18978,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/xmlschemas.c:22653,1
    - Dst: xmlSchemaVCheckINodeDataType
      Src: /src/libxml2/xmlschemas.c:25685,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27215,1
    - Dst: xmlSchemaValidateStreamInternal
      Src: /src/libxml2/xmlschemas.c:28422,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16247,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:18819,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:23638,1
    - Dst: xmlSchemaIDCAddStateObject
      Src: /src/libxml2/xmlschemas.c:22100,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/xmlschemas.c:28415,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27122,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:25518,1
    - Dst: xmlSchemaGetFreshAttrInfo
      Src: /src/libxml2/xmlschemas.c:24898,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:22144,1
    - Dst: xmlSchemaCheckFacetValues
      Src: /src/libxml2/xmlschemas.c:17733,1
    - Dst: xmlSchemaTypeFixup
      Src: /src/libxml2/xmlschemas.c:15244,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:15877,1
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:16367,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:19250,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:19903,1
    - Dst: PERROR_INT2
      Src: /src/libxml2/xmlschemas.c:20967,1
    - Dst: xmlTextReaderValue
      Src: /src/libxml2/xmlschemas.c:26714,1
    - Dst: xmlSchemaParseNewDocWithContext
      Src: /src/libxml2/xmlschemas.c:20922,1
    - Dst: xmlSchemaIDCNewBinding
      Src: /src/libxml2/xmlschemas.c:21762,1
    - Dst: ACTIVATE_ATTRIBUTE
      Src: /src/libxml2/xmlschemas.c:25065,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:22592,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19171,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:16304,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:17538,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:17648,1
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:17797,1
    - Dst: WXS_ATTR_GROUP_EXPANDED
      Src: /src/libxml2/xmlschemas.c:20595,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:23460,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27224,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:24130,1
    - Dst: xmlSchemaGetFreshAttrInfo
      Src: /src/libxml2/xmlschemas.c:24882,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22690,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:23895,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15275,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:15636,1
    - Dst: xmlSchemaCheckParticleRangeOK
      Src: /src/libxml2/xmlschemas.c:16611,1
    - Dst: WXS_MODELGROUPDEF_MODEL
      Src: /src/libxml2/xmlschemas.c:18612,1
    - Dst: WXS_REDEFINED_MODEL_GROUP_DEF
      Src: /src/libxml2/xmlschemas.c:20323,1
    - Dst: xmlDictFree
      Src: /src/libxml2/xmlschemas.c:27167,1
    - Dst: xmlSchemaTypeFinalContains
      Src: /src/libxml2/xmlschemas.c:15089,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:16169,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16856,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:25180,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/xmlschemas.c:28427,1
    - Dst: xmlSchemaVStart
      Src: /src/libxml2/xmlschemas.c:27745,1
    - Dst: xmlSchemaValPredefTypeNodeNoNorm
      Src: /src/libxml2/xmlschemas.c:24172,1
    - Dst: xmlSchemaValueGetNext
      Src: /src/libxml2/xmlschemas.c:19723,1
    - Dst: xmlSchemaGetMetaAttrInfo
      Src: /src/libxml2/xmlschemas.c:21323,1
    - Dst: xmlStreamPop
      Src: /src/libxml2/xmlschemas.c:22240,1
    - Dst: xmlSchemaGetMetaAttrInfo
      Src: /src/libxml2/xmlschemas.c:25433,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:27036,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:21344,1
    - Dst: xmlSchemaIDCStoreKey
      Src: /src/libxml2/xmlschemas.c:22436,1
    - Dst: xmlSchemaHashKeySequence
      Src: /src/libxml2/xmlschemas.c:23378,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:24572,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17100,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:18996,1
    - Dst: WXS_ATTR_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19088,1
    - Dst: xmlSchemaGetWhiteSpaceFacetValue
      Src: /src/libxml2/xmlschemas.c:22147,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22896,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:25234,1
    - Dst: xmlSchemaConstructionCtxtFree
      Src: /src/libxml2/xmlschemas.c:20963,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15361,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:15637,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:17518,1
    - Dst: xmlSchemaItemListInsert
      Src: /src/libxml2/xmlschemas.c:18853,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:28124,1
    - Dst: xmlSchemaFixupComponents
      Src: /src/libxml2/xmlschemas.c:20932,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:23508,1
    - Dst: xmlTextReaderMoveToNextAttribute
      Src: /src/libxml2/xmlschemas.c:26627,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17154,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:17774,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:23547,1
    - Dst: NORMALIZE
      Src: /src/libxml2/xmlschemas.c:24301,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:25513,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27216,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:24900,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16390,1
    - Dst: xmlSchemaHashKeySequence
      Src: /src/libxml2/xmlschemas.c:23407,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:24279,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:19514,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:26518,1
    - Dst: xmlSchemaNewNOTATIONValue
      Src: /src/libxml2/xmlschemas.c:21501,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:21689,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19139,1
    - Dst: xmlSchemaGetPrimitiveType
      Src: /src/libxml2/xmlschemas.c:19683,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23544,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:24596,1
    - Dst: xmlSchemaSAXHandleCDataSection
      Src: /src/libxml2/xmlschemas.c:28038,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27484,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26490,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:22965,1
    - Dst: xmlSchemaSetValidErrors
      Src: /src/libxml2/xmlschemas.c:15469,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17017,1
    - Dst: xmlSchemaFreeIDCStateObjList
      Src: /src/libxml2/xmlschemas.c:27142,1
    - Dst: xmlSchemaSAXHandleReference
      Src: /src/libxml2/xmlschemas.c:28051,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/xmlschemas.c:28406,1
    - Dst: WXS_IS_ANY_SIMPLE_TYPE
      Src: /src/libxml2/xmlschemas.c:19701,1
    - Dst: xmlSchemaIDCAppendNodeTableItem
      Src: /src/libxml2/xmlschemas.c:23018,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:24644,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:25813,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/xmlschemas.c:26568,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xmlschemas.c:24247,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:24769,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xmlschemas.c:26334,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:24336,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:16533,1
    - Dst: xmlSchemaCheckDerivationOKRestriction2to4
      Src: /src/libxml2/xmlschemas.c:16112,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26416,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:20368,1
    - Dst: xmlSchemaIDCFillNodeTables
      Src: /src/libxml2/xmlschemas.c:25950,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:21988,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:24256,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24391,1
    - Dst: xmlNewProp
      Src: /src/libxml2/xmlschemas.c:25133,1
    - Dst: xmlAddChild
      Src: /src/libxml2/xmlschemas.c:25793,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16001,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:16855,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16874,1
    - Dst: xmlSchemaCreatePCtxtOnVCtxt
      Src: /src/libxml2/xmlschemas.c:27616,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:24568,1
    - Dst: xmlSchemaIDCAcquireBinding
      Src: /src/libxml2/xmlschemas.c:22874,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:15880,1
    - Dst: WXS_MODELGROUP_PARTICLE
      Src: /src/libxml2/xmlschemas.c:18590,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:18873,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:19620,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:21419,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/xmlschemas.c:27045,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:27532,1
    - Dst: xmlSchemaClearValidCtxt
      Src: /src/libxml2/xmlschemas.c:27656,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:22012,1
    - Dst: xmlSchemaCheckElemPropsCorrect
      Src: /src/libxml2/xmlschemas.c:19575,1
    - Dst: xmlSchemaPResCompAttrErr
      Src: /src/libxml2/xmlschemas.c:19999,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:24205,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:26874,1
    - Dst: xmlSchemaGetIDCDesignation
      Src: /src/libxml2/xmlschemas.c:22682,1
    - Dst: xmlSchemaKeyrefErr
      Src: /src/libxml2/xmlschemas.c:23469,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:22059,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17209,1
    - Dst: xmlSchemaCheckCOSSTRestricts
      Src: /src/libxml2/xmlschemas.c:17716,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:22411,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:23227,1
    - Dst: xmlSchemaGetMetaAttrInfo
      Src: /src/libxml2/xmlschemas.c:24621,1
    - Dst: xmlSchemaValidateElem
      Src: /src/libxml2/xmlschemas.c:26954,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:23775,1
    - Dst: xmlSchemaItemListAdd
      Src: /src/libxml2/xmlschemas.c:22630,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:23596,1
    - Dst: xmlSchemaAddModelGroup
      Src: /src/libxml2/xmlschemas.c:18104,1
    - Dst: xmlSchemaResolveElementReferences
      Src: /src/libxml2/xmlschemas.c:20465,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:21806,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:26918,1
    - Dst: xmlSchemaNewQNameValue
      Src: /src/libxml2/xmlschemas.c:24046,1
    - Dst: xmlSchemaGetElem
      Src: /src/libxml2/xmlschemas.c:26060,1
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:22995,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:19609,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:19861,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:15446,1
    - Dst: xmlSchemaGetType
      Src: /src/libxml2/xmlschemas.c:24501,1
    - Dst: xmlSchemaVPushText
      Src: /src/libxml2/xmlschemas.c:26766,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:15040,1
    - Dst: xmlSchemaFacetErr
      Src: /src/libxml2/xmlschemas.c:23865,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:25687,1
    - Dst: xmlSchemaWhiteSpaceReplace
      Src: /src/libxml2/xmlschemas.c:23980,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21933,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26149,1
    - Dst: xmlSchemaCheckCOSCTDerivedOK
      Src: /src/libxml2/xmlschemas.c:15769,1
    - Dst: xmlSchemaItemListClear
      Src: /src/libxml2/xmlschemas.c:27165,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:17613,1
    - Dst: xmlSchemaCheckCOSNSSubset
      Src: /src/libxml2/xmlschemas.c:15932,1
    - Dst: WXS_GET_GLOBAL_HASH
      Src: /src/libxml2/xmlschemas.c:20326,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27218,1
    - Dst: xmlSchemaValidateStreamInternal
      Src: /src/libxml2/xmlschemas.c:28459,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:22168,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:21991,1
    - Dst: xmlSchemaPIllegalFacetListUnionErr
      Src: /src/libxml2/xmlschemas.c:15212,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:24000,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:26096,1
    - Dst: WXS_REDEFINED_TYPE
      Src: /src/libxml2/xmlschemas.c:20309,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16867,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:15095,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16312,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:18362,1
    - Dst: xmlSchemaFreeIDCStateObjList
      Src: /src/libxml2/xmlschemas.c:27232,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:24600,1
    - Dst: xmlSchemaSAXHandleText
      Src: /src/libxml2/xmlschemas.c:28025,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:24628,1
    CyclomaticComplexity: 2841
    EdgeCount: 2841
    ICount: 6028
    argCount: 2
    argNames:
    - pctxt
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 28480
      start: 14956
    functionDepth: 0
    functionLinenumber: 14956
    functionLinenumberEnd: 28480
    functionName: xmlSchemaCheckCOSSTRestricts
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlRegFreeExecCtxt
    - xmlSchemaPostRun
    - xmlSchemaFreeIDCStateObjList
    - xmlSchemaFacetErr
    - xmlSchemaCreateVCtxtOnPCtxt
    - xmlSchemaSetValidErrors
    - xmlTextReaderLocalName
    - xmlRealloc
    - xmlSchemaCheckParticleRangeOK
    - xmlSchemaXPathProcessHistory
    - xmlSchemaIsParticleEmptiable
    - xmlSchemaResolveTypeReferences
    - xmlSchemaSAXHandleReference
    - xmlNewNs
    - xmlStrncat
    - xmlRegexpCompile
    - xmlSchemaValidatorPushAttribute
    - xmlSchemaPCustomErr
    - xmlSchemaValueAppend
    - xmlNewProp
    - WXS_ATTR_TYPEDEF
    - xmlSchemaCheckAGPropsCorrect
    - xmlSchemaKeyrefErr
    - xmlSchemaCheckCOSSTDerivedOK
    - xmlSchemaCompareValues
    - xmlDictCreate
    - xmlSchemaValueGetAsBoolean
    - xmlSchemaGetIDCDesignation
    - xmlSchemaParseNewDocWithContext
    - xmlSearchNsByHref
    - xmlSchemaCollapseString
    - xmlStrncatNew
    - xmlTextReaderValue
    - xmlSchemaValidateFacetWhtsp
    - xmlSchemaValidateQName
    - xmlSchemaResolveIDCKeyReferences
    - WXS_ATTR_GROUP_CAST
    - xmlStreamPop
    - xmlSchemaGetComponentQName
    - WXS_IS_RESTRICTION
    - xmlPatternGetStreamCtxt
    - xmlSAX2GetLineNumber
    - WXS_ELEM_TYPEDEF
    - xmlSchemaIDCRegisterMatchers
    - INODE_NILLED
    - xmlSchemaFixupTypeAttributeUses
    - VERROR
    - xmlSchemaAssembleByXSI
    - snprintf
    - WXS_ATTR_GROUP_EXPANDED
    - xmlSchemaCheckCOSCTExtends
    - xmlSchemaValidateElem
    - xmlSchemaAddWildcard
    - xmlNewSAXParserCtxt
    - xmlSchemaCheckSRCRedefineFirst
    - WXS_IS_ATOMIC
    - xmlSchemaPErrMemory
    - xmlSchemaValidateLengthFacetWhtsp
    - xmlDocGetRootElement
    - xmlSchemaCheckGroupDefCircular
    - xmlSchemaBuildAbsoluteURI
    - xmlSchemaSetParserErrors
    - xmlSplitQName2
    - WXS_GET_GLOBAL_HASH
    - xmlSchemaGetNotation
    - xmlHashFree
    - xmlSchemaXPathPop
    - xmlSchemaCheckCOSValidDefault
    - xmlSchemaCheckCOSParticleRestrict
    - xmlMalloc
    - memset
    - xmlTextReaderNamespaceUri
    - xmlSchemaResolveModelGroupParticleReferences
    - PERROR_INT2
    - xmlSchemaResolveAttrTypeReferences
    - xmlSchemaCheckAttrUsePropsCorrect
    - WXS_LIST_ITEMTYPE
    - xmlHashScan
    - xmlSearchNs
    - xmlSchemaParseCheckCOSValidDefault
    - xmlSchemaVReaderWalk
    - xmlSchemaGetAttributeDecl
    - xmlSchemaAddElementSubstitutionMember
    - xmlSchemaFinishMemberTypeDefinitionsProperty
    - xmlSchemaFindRedefCompInGraph
    - xmlSchemaGetElem
    - xmlSchemaPResCompAttrErr
    - xmlSchemaValidatorPushElem
    - xmlSchemaItemListInsert
    - xmlSchemaNewParserCtxt
    - xmlHashCreateDict
    - VERROR_INT
    - WXS_CONSTRUCTOR
    - xmlNewDocText
    - xmlSchemaItemListAdd
    - xmlStreamPush
    - ACTIVATE_ATTRIBUTE
    - xmlRegExecErrInfo
    - WXS_ATTRUSE_DECL_NAME
    - xmlSchemaCloneWildcardNsConstraints
    - xmlRegExecPushString2
    - xmlSchemaValidateSetLocator
    - xmlSchemaVAddNodeQName
    - xmlSchemaNewSchema
    - xmlSchemaSAXUnplug
    - xmlSchemaGetCanonValueHash
    - xmlSchemaGetCircModelGrDefRef
    - xmlHashLookup
    - xmlSchemaTypeFinalContains
    - xmlSchemaResolveAttrUseReferences
    - WXS_REDEFINED_MODEL_GROUP_DEF
    - xmlSchemaInitTypes
    - FREE_AND_NULL
    - xmlSchemaAssembleByLocation
    - xmlSchemaIntersectWildcards
    - WXS_REDEFINED_ATTR_GROUP
    - xmlSchemaPIllegalFacetAtomicErr
    - xmlSchemaValidateFacets
    - WXS_IS_UNION
    - xmlTextReaderRead
    - xmlSchemaWhiteSpaceReplace
    - WXS_TYPE_CONTENTTYPE
    - xmlTextReaderNodeType
    - xmlSchemaProcessXSIType
    - xmlSchemaAreEqualTypes
    - xmlSchemaAddParticle
    - WXS_TYPE_PARTICLE
    - FACET_RESTR_ERR
    - xmlFreeStreamCtxt
    - xmlSchemaFixupSimpleTypeStageTwo
    - xmlSchemaSAXHandleCDataSection
    - xmlSchemaValPredefTypeNodeNoNorm
    - xmlSchemaGetComponentDesignation
    - xmlSchemaCreatePCtxtOnVCtxt
    - xmlSchemaFreeValue
    - xmlSchemaGetParticleTotalRangeMin
    - xmlSchemaExpandAttributeGroupRefs
    - xmlSchemaAddModelGroup
    - WXS_MODELGROUPDEF_MODEL
    - WXS_IS_SIMPLE
    - xmlSchemaPErr
    - xmlSchemaCheckFacetValues
    - xmlSchemaAreValuesEqual
    - xmlSchemaIDCStoreNodeTableItem
    - xmlStrndup
    - xmlSchemaFreeParserCtxt
    - xmlAddChild
    - xmlSchemaAddSchemaDoc
    - xmlSchemaCheckCVCWildcardNamespace
    - FACET_RESTR_MUTUAL_ERR
    - xmlSchemaRedefListFree
    - WXS_ELEM_CAST
    - xmlSchemaClearValidCtxt
    - xmlStreamPushAttr
    - xmlSchemaCheckCTPropsCorrect
    - xmlSchemaCheckCOSCTDerivedOK
    - xmlSchemaIDCAcquireTargetList
    - xmlSchemaClearAttrInfos
    - xmlSchemaIDCFreeKey
    - xmlSchemaBuildContentModel
    - xmlCtxtUseOptions
    - xmlGrowCapacity
    - xmlSchemaSimpleTypeErr
    - xmlSchemaValidateElemWildcard
    - xmlStrcat
    - xmlTextReaderMoveToElement
    - xmlSchemaCheckCTComponent
    - xmlSchemaIDCAcquireBinding
    - xmlSchemaValidateElemDecl
    - xmlSchemaNewQNameValue
    - xmlDictFree
    - WXS_ITEM_TYPE_NAME
    - xmlSchemaItemListRemove
    - xmlSchemaGetFreshAttrInfo
    - WXS_IS_ANYTYPE
    - xmlSchemaCheckDerivationOKRestriction
    - xmlSchemaGetNamedComponent
    - xmlSchemaDeriveAndValidateFacets
    - xmlSchemaCompareValuesWhtsp
    - xmlNewNsProp
    - WXS_HAS_SIMPLE_CONTENT
    - xmlSchemaFreeValidCtxt
    - xmlSchemaIDCAppendNodeTableItem
    - xmlSchemaClearElemInfo
    - xmlSchemaCustomErr
    - xmlSchemaPIllegalFacetListUnionErr
    - xmlSchemaIDCFreeIDCTable
    - xmlSchemaIsBlank
    - xmlSchemaConstructionCtxtFree
    - xmlSchemaConstructionCtxtCreate
    - xmlSchemaCheckUnionTypeDefCircular
    - xmlSchemaGetWhiteSpaceFacetValue
    - xmlSchemaItemListCreate
    - WXS_ATTRUSE_DECL_TNS
    - xmlSchemaGetMetaAttrInfo
    - xmlSchemaVPushText
    - xmlSchemaFixupComponents
    - xmlSchemaVErrMemory
    - WXS_PARTICLE_TERM
    - xmlSchemaTypeFixupWhitespace
    - memcpy
    - xmlSchemaSAXPlug
    - xmlSchemaXPathEvaluate
    - xmlSchemaAttributeGroupExpandRefs
    - xmlSchemaValidateStreamInternal
    - xmlNewParserCtxt
    - xmlFree
    - WXS_ATTRUSE_DECL
    - xmlSchemaCheckElementDeclComponent
    - WXS_MODELGROUP_PARTICLE
    - xmlRegExecPushString
    - xmlSchemaCheckSRCCT
    - xmlSchemaSetParserStructuredErrors
    - xmlHashAddEntry
    - WXS_ITEM_NODE
    - xmlSchemaSetValidStructuredErrors
    - xmlDictLookup
    - xmlSchemaCheckFacet
    - xmlCreateURLParserCtxt
    - xmlSchemaSAXHandleText
    - xmlHashCreate
    - return
    - xmlSchemaIsBuiltInTypeFacet
    - xmlSchemaNormalizeValue
    - xmlSchemaSAXHandleEndElementNs
    - xmlSchemaIDCFreeBinding
    - WXS_ILIST_IS_EMPTY
    - xmlSchemaCheckCVCIDCKeyRef
    - xmlSchemaValidateNotation
    - xmlSchemaVAttributesComplex
    - xmlSchemaSAXHandleStartElementNs
    - xmlNodeListGetString
    - xmlNewIOInputStream
    - xmlFreeEnumeration
    - WXS_IS_ANY_SIMPLE_TYPE
    - WXS_SUBST_HEAD
    - xmlSchemaDeriveFacetErr
    - xmlSchemaCopyValue
    - xmlSchemaNewValidCtxt
    - xmlSchemaFixupSimpleTypeStageOne
    - xmlSchemaResolveElementReferences
    - WXS_IS_TYPE_NOT_FIXED
    - xmlSchemaCheckSRCRedefineSecond
    - xmlSchemaFormatQName
    - IS_BLANK_CH
    - xmlSchemaItemListClear
    - WXS_ATTRUSE_TYPEDEF
    - xmlSchemaCheckElemPropsCorrect
    - xmlSchemaHashKeySequence
    - xmlSchemaCheckSubstGroupCircular
    - xmlSchemaVDocWalk
    - xmlSchemaValueGetAsString
    - xmlSchemaValidateListSimpleTypeFacet
    - xmlFreeParserCtxt
    - xmlHasProp
    - xmlSchemaValidatorPopElem
    - xmlSchemaTypeFixup
    - xmlSchemaGetParticleTotalRangeMax
    - xmlSchemaVCheckCVCSimpleType
    - WXS_TYPE_PARTICLE_TERM
    - xmlRegExecNextValues
    - xmlSchemaValidatePredefinedType
    - xmlSchemaNewNOTATIONValue
    - xmlSchemaGetAttributeGroup
    - xmlCtxtPushInput
    - xmlValidateQName
    - CAN_PARSE_SCHEMA
    - WXS_TYPE_IS_LOCAL
    - xmlSchemaItemListFree
    - xmlRegNewExecCtxt
    - xmlParseDocument
    - xmlSchemaGetCanonValueWhtspExt
    - WXS_EMPTIABLE
    - WXS_HAS_MIXED_CONTENT
    - xmlSchemaIDCAddStateObject
    - xmlRegexpExec
    - WXS_ATTR_GROUP_HAS_REFS
    - xmlSchemaCheckElemSubstGroup
    - xmlSchemaCheckDerivationOKRestriction2to4
    - xmlSchemaPCustomErrExt
    - xmlStrEqual
    - xmlSchemaFormatIDCKeySequence_1
    - xmlSchemaCheckTypeDefCircular
    - xmlSchemaGetIDC
    - xmlSchemaIsDerivedFromBuiltInType
    - WXS_IS_TYPE_NOT_FIXED_1
    - xmlSchemaCheckSTPropsCorrect
    - WXS_IS_LIST
    - xmlSchemaCheckAttrGroupCircular
    - AERROR_INT
    - xmlSchemaGetBuiltInType
    - xmlSchemaFormatIDCKeySequence
    - xmlStrdup
    - xmlSchemaFree
    - NORMALIZE
    - xmlSchemaVCheckINodeDataType
    - xmlSchemaCheckAttrPropsCorrect
    - xmlSchemaModelGroupToModelGroupDefFixup
    - xmlSchemaCheckAttrGroupCircularRecur
    - xmlSchemaCheckElementDeclConsistent
    - xmlSchemaValueGetNext
    - xmlSchemaGetUnionSimpleTypeMemberTypes
    - xmlSchemaItemListAddSize
    - xmlTextReaderIsEmptyElement
    - xmlSchemaPreRun
    - xmlSchemaFixupComplexType
    - xmlSchemaGetValType
    - xmlTextReaderDepth
    - xmlTextReaderMoveToFirstAttribute
    - xmlSchemaVAttributesSimple
    - xmlSchemaGetFreshElemInfo
    - WXS_REDEFINED_TYPE
    - xmlSchemaCheckCOSDerivedOK
    - xmlSchemaIDCStoreKey
    - xmlSchemaBubbleIDCNodeTables
    - xmlStrlen
    - xmlSchemaIDCNewBinding
    - xmlSchemaGetType
    - xmlSchemaIDCReleaseMatcherList
    - xmlSchemaVStart
    - xmlSchemaVExpandQName
    - xmlSchemaCheckCOSNSSubset
    - xmlTextReaderLookupNamespace
    - xmlTextReaderMoveToNextAttribute
    - xmlSchemaAddComponents
    - xmlStopParser
    - WXS_IS_EXTENSION
    - WXS_IS_COMPLEX
    - xmlSchemaCheckCOSSTRestricts
    - xmlSchemaGetPrimitiveType
    - xmlSchemaIDCFillNodeTables
    - xmlSchemaValidateChildElem
    - WXS_PARTICLE_TERM_AS_ELEM
    - PERROR_INT
    - xmlSchemaAddType
    - xmlSchemaIDCFreeMatcherList
    - xmlSchemaFacetTypeToString
    - xmlSchemaLookupNamespace
    - xmlFreeInputStream
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckCOSSTRestricts(xmlSchemaParserCtxtPtr pctxt,\t\t\t
      xmlSchemaTypePtr type) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaBucketFree
      Src: /src/libxml2/xmlschemas.c:3491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - bucket
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3492
      start: 3488
    functionDepth: 0
    functionLinenumber: 3488
    functionLinenumberEnd: 3492
    functionName: xmlSchemaBucketFreeEntry
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaBucketFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaBucketFreeEntry(void *bucket, const xmlChar *name
      ATTRIBUTE_UNUSED) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeAnnot
      Src: /src/libxml2/xmlschemas.c:3691,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3694,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:3693,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - attr
    argTypes:
    - xmlSchemaAttributePtr
    constantsTouched: []
    func_position:
      end: 3695
      start: 3685
    functionDepth: 0
    functionLinenumber: 3685
    functionLinenumberEnd: 3695
    functionName: xmlSchemaFreeAttribute
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaFreeAnnot
    - xmlSchemaFreeValue
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaFreeAttribute(xmlSchemaAttributePtr attr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaIDCFreeBinding
      Src: /src/libxml2/xmlschemas.c:21837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bind
    argTypes:
    - xmlSchemaPSVIIDCBindingPtr
    constantsTouched: []
    func_position:
      end: 21839
      start: 21829
    functionDepth: 0
    functionLinenumber: 21829
    functionLinenumberEnd: 21839
    functionName: xmlSchemaIDCFreeIDCTable
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaIDCFreeBinding
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaIDCFreeIDCTable(xmlSchemaPSVIIDCBindingPtr bind) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:3887,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3892,1
    - Dst: xmlSchemaFreeAnnot
      Src: /src/libxml2/xmlschemas.c:3891,1
    - Dst: xmlRegFreeRegexp
      Src: /src/libxml2/xmlschemas.c:3889,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - facet
    argTypes:
    - xmlSchemaFacet*
    constantsTouched: []
    func_position:
      end: 3893
      start: 3881
    functionDepth: 0
    functionLinenumber: 3881
    functionLinenumberEnd: 3893
    functionName: xmlSchemaFreeFacet
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlRegFreeRegexp
    - xmlSchemaFreeAnnot
    - xmlFree
    - xmlSchemaFreeValue
    linkageType: ''
    returnType: void
    signature: 'void xmlSchemaFreeFacet(xmlSchemaFacet *facet) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaSAXHandleText
      Src: /src/libxml2/xmlschemas.c:28012,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 28013
      start: 28003
    functionDepth: 0
    functionLinenumber: 28003
    functionLinenumberEnd: 28013
    functionName: charactersSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaSAXHandleText
    linkageType: ''
    returnType: void
    signature: 'static void charactersSplit(void *ctx, const xmlChar *ch, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:21847,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 21850
      start: 21841
    functionDepth: 0
    functionLinenumber: 21841
    functionLinenumberEnd: 21850
    functionName: xmlFreeIDCHashEntry
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeIDCHashEntry (void *payload, const xmlChar *name
      ATTRIBUTE_UNUSED) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaSAXHandleText
      Src: /src/libxml2/xmlschemas.c:28025,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 28026
      start: 28015
    functionDepth: 0
    functionLinenumber: 28015
    functionLinenumberEnd: 28026
    functionName: ignorableWhitespaceSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaSAXHandleText
    linkageType: ''
    returnType: void
    signature: 'static void ignorableWhitespaceSplit(void *ctx, const xmlChar *ch,
      int len) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeAnnot
      Src: /src/libxml2/xmlschemas.c:3868,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3873,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:3872,1
    - Dst: xmlRegFreeRegexp
      Src: /src/libxml2/xmlschemas.c:3870,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - elem
    argTypes:
    - xmlSchemaElementPtr
    constantsTouched: []
    func_position:
      end: 3874
      start: 3862
    functionDepth: 0
    functionLinenumber: 3862
    functionLinenumberEnd: 3874
    functionName: xmlSchemaFreeElement
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlRegFreeRegexp
    - xmlSchemaFreeAnnot
    - xmlFree
    - xmlSchemaFreeValue
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaFreeElement(xmlSchemaElementPtr elem) '
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 2464
      start: 2438
    functionDepth: 0
    functionLinenumber: 2438
    functionLinenumberEnd: 2464
    functionName: xmlSchemaIsGlobalItem
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaIsGlobalItem(xmlSchemaTypePtr item) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - schema
    - name
    - nsName
    argTypes:
    - xmlSchemaPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4720
      start: 4706
    functionDepth: 0
    functionLinenumber: 4706
    functionLinenumberEnd: 4720
    functionName: xmlSchemaGetGroup
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlSchemaModelGroupDefPtr
    signature: 'static xmlSchemaModelGroupDefPtr xmlSchemaGetGroup(xmlSchemaPtr schema,
      const xmlChar * name, const xmlChar * nsName) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetGroup
      Src: /src/libxml2/xmlschemas.c:4771,1
    - Dst: xmlSchemaGetElem
      Src: /src/libxml2/xmlschemas.c:4774,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 4
    argNames:
    - schema
    - itemType
    - name
    - targetNs
    argTypes:
    - xmlSchemaPtr
    - xmlSchemaTypeType
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4780
      start: 4763
    functionDepth: 0
    functionLinenumber: 4763
    functionLinenumberEnd: 4780
    functionName: xmlSchemaGetNamedComponent
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetElem
    - xmlSchemaGetGroup
    linkageType: ''
    returnType: xmlSchemaBasicItemPtr
    signature: "static xmlSchemaBasicItemPtr xmlSchemaGetNamedComponent(xmlSchemaPtr
      schema,\t\t\t xmlSchemaTypeType itemType,\t\t\t const xmlChar *name,\t\t\t const
      xmlChar *targetNs) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:5452,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:5453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - group
    argTypes:
    - xmlSchemaSubstGroupPtr
    constantsTouched: []
    func_position:
      end: 5454
      start: 5446
    functionDepth: 0
    functionLinenumber: 5446
    functionLinenumberEnd: 5454
    functionName: xmlSchemaSubstGroupFree
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaItemListFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaSubstGroupFree(xmlSchemaSubstGroupPtr group) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2480,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2486,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:2490,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:2510,1
    - Dst: xmlSchemaErr
      Src: /src/libxml2/xmlschemas.c:2515,1
    - Dst: xmlSchemaIsGlobalItem
      Src: /src/libxml2/xmlschemas.c:2485,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2491,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2499,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2501,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2502,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:2504,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2493,1
    - Dst: xmlEscapeFormatString
      Src: /src/libxml2/xmlschemas.c:2508,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2512,1
    - Dst: xmlSchemaErr
      Src: /src/libxml2/xmlschemas.c:2517,1
    - Dst: xmlSchemaFormatNodeForError
      Src: /src/libxml2/xmlschemas.c:2476,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2488,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:2492,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:2494,1
    - Dst: xmlSchemaIsGlobalItem
      Src: /src/libxml2/xmlschemas.c:2497,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2506,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2508,1
    - Dst: xmlSchemaEvalErrorNodeType
      Src: /src/libxml2/xmlschemas.c:2513,1
    - Dst: xmlSchemaEvalErrorNodeType
      Src: /src/libxml2/xmlschemas.c:2478,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2482,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2495,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2509,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 6
    argNames:
    - actxt
    - error
    - node
    - value
    - type
    - displayValue
    argTypes:
    - xmlSchemaAbstractCtxtPtr
    - xmlParserErrors
    - xmlNodePtr
    - xmlChar*
    - xmlSchemaTypePtr
    - int
    constantsTouched: []
    func_position:
      end: 2519
      start: 2466
    functionDepth: 0
    functionLinenumber: 2466
    functionLinenumberEnd: 2519
    functionName: xmlSchemaSimpleTypeErr
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlEscapeFormatString
    - WXS_IS_UNION
    - xmlSchemaIsGlobalItem
    - xmlSchemaEvalErrorNodeType
    - xmlSchemaErr
    - xmlSchemaFormatQName
    - xmlStrdup
    - WXS_IS_LIST
    - WXS_IS_ATOMIC
    - FREE_AND_NULL
    - xmlSchemaFormatNodeForError
    - xmlStrcat
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaSimpleTypeErr(xmlSchemaAbstractCtxtPtr actxt,\t\t
      xmlParserErrors error,\t\t xmlNodePtr node,\t\t const xmlChar *value,\t\t xmlSchemaTypePtr
      type,\t\t int displayValue) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - schema
    - name
    - nsName
    argTypes:
    - xmlSchemaPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4736
      start: 4722
    functionDepth: 0
    functionLinenumber: 4722
    functionLinenumberEnd: 4736
    functionName: xmlSchemaGetNotation
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlSchemaNotationPtr
    signature: "static xmlSchemaNotationPtr xmlSchemaGetNotation(xmlSchemaPtr schema,\t\t
      const xmlChar *name,\t\t const xmlChar *nsName) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaSubstGroupFree
      Src: /src/libxml2/xmlschemas.c:5459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - group
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5460
      start: 5456
    functionDepth: 0
    functionLinenumber: 5456
    functionLinenumberEnd: 5460
    functionName: xmlSchemaSubstGroupFreeEntry
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaSubstGroupFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaSubstGroupFreeEntry(void *group, const xmlChar
      *name ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - schema
    - name
    - nsName
    argTypes:
    - xmlSchemaPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4752
      start: 4738
    functionDepth: 0
    functionLinenumber: 4738
    functionLinenumberEnd: 4752
    functionName: xmlSchemaGetIDC
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlSchemaIDCPtr
    signature: "static xmlSchemaIDCPtr xmlSchemaGetIDC(xmlSchemaPtr schema,\t\tconst
      xmlChar *name,\t\tconst xmlChar *nsName) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WXS_SUBST_GROUPS
      Src: /src/libxml2/xmlschemas.c:5469,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:5475,1
    - Dst: WXS_SUBST_GROUPS
      Src: /src/libxml2/xmlschemas.c:5471,1
    - Dst: xmlHashCreateDict
      Src: /src/libxml2/xmlschemas.c:5470,1
    - Dst: WXS_SUBST_GROUPS
      Src: /src/libxml2/xmlschemas.c:5470,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:5477,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:5480,1
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:5483,1
    - Dst: xmlSchemaSubstGroupFree
      Src: /src/libxml2/xmlschemas.c:5485,1
    - Dst: xmlHashAddEntry2
      Src: /src/libxml2/xmlschemas.c:5489,1
    - Dst: WXS_SUBST_GROUPS
      Src: /src/libxml2/xmlschemas.c:5489,1
    - Dst: xmlSchemaSubstGroupFree
      Src: /src/libxml2/xmlschemas.c:5493,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:5491,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - pctxt
    - head
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaElementPtr
    constantsTouched: []
    func_position:
      end: 5497
      start: 5462
    functionDepth: 0
    functionLinenumber: 5462
    functionLinenumberEnd: 5497
    functionName: xmlSchemaSubstGroupAdd
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_SUBST_GROUPS
    - xmlHashAddEntry2
    - memset
    - xmlSchemaPErrMemory
    - xmlSchemaItemListCreate
    - PERROR_INT
    - xmlSchemaSubstGroupFree
    - xmlMalloc
    - xmlHashCreateDict
    linkageType: ''
    returnType: xmlSchemaSubstGroupPtr
    signature: "static xmlSchemaSubstGroupPtr xmlSchemaSubstGroupAdd(xmlSchemaParserCtxtPtr
      pctxt,\t\t xmlSchemaElementPtr head) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetNodeContentNoDict
      Src: /src/libxml2/xmlschemas.c:5702,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:5718,1
    - Dst: xmlValidateNCName
      Src: /src/libxml2/xmlschemas.c:5703,1
    - Dst: xmlAddIDSafe
      Src: /src/libxml2/xmlschemas.c:5721,1
    - Dst: xmlSchemaCollapseString
      Src: /src/libxml2/xmlschemas.c:5716,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:5723,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:5726,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:5729,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:5736,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:5739,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:5745,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - ctxt
    - attr
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 5748
      start: 5694
    functionDepth: 0
    functionLinenumber: 5694
    functionLinenumberEnd: 5748
    functionName: xmlSchemaPValAttrNodeID
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaGetBuiltInType
    - xmlSchemaCollapseString
    - xmlSchemaPErrMemory
    - xmlSchemaGetNodeContentNoDict
    - xmlSchemaPSimpleTypeErr
    - xmlAddIDSafe
    - xmlValidateNCName
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaPValAttrNodeID(xmlSchemaParserCtxtPtr ctxt, xmlAttrPtr
      attr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WXS_SUBST_GROUPS
      Src: /src/libxml2/xmlschemas.c:5503,1
    - Dst: WXS_SUBST_GROUPS
      Src: /src/libxml2/xmlschemas.c:5505,1
    - Dst: xmlHashLookup2
      Src: /src/libxml2/xmlschemas.c:5505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pctxt
    - head
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaElementPtr
    constantsTouched: []
    func_position:
      end: 5508
      start: 5499
    functionDepth: 0
    functionLinenumber: 5499
    functionLinenumberEnd: 5508
    functionName: xmlSchemaSubstGroupGet
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlHashLookup2
    - WXS_SUBST_GROUPS
    linkageType: ''
    returnType: xmlSchemaSubstGroupPtr
    signature: "static xmlSchemaSubstGroupPtr xmlSchemaSubstGroupGet(xmlSchemaParserCtxtPtr
      pctxt,\t\t xmlSchemaElementPtr head) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:5757,1
    - Dst: xmlSchemaPValAttrNodeID
      Src: /src/libxml2/xmlschemas.c:5760,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - ctxt
    - ownerElem
    - name
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlNodePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5762
      start: 5750
    functionDepth: 0
    functionLinenumber: 5750
    functionLinenumberEnd: 5762
    functionName: xmlSchemaPValAttrID
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPValAttrNodeID
    - xmlSchemaGetPropNode
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaPValAttrID(xmlSchemaParserCtxtPtr ctxt,\t\t xmlNodePtr
      ownerElem,\t\t const xmlChar *name) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeAnnot
      Src: /src/libxml2/xmlschemas.c:3676,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3677,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - nota
    argTypes:
    - xmlSchemaNotationPtr
    constantsTouched: []
    func_position:
      end: 3678
      start: 3670
    functionDepth: 0
    functionLinenumber: 3670
    functionLinenumberEnd: 3678
    functionName: xmlSchemaFreeNotation
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaFreeAnnot
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaFreeNotation(xmlSchemaNotationPtr nota) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26029,1
    - Dst: xmlSchemaGetMetaAttrInfo
      Src: /src/libxml2/xmlschemas.c:26070,1
    - Dst: INODE_NILLED
      Src: /src/libxml2/xmlschemas.c:26039,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26045,1
    - Dst: xmlSchemaGetElem
      Src: /src/libxml2/xmlschemas.c:26060,1
    - Dst: xmlSchemaProcessXSIType
      Src: /src/libxml2/xmlschemas.c:26073,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26077,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:26096,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26111,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26127,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26136,1
    - Dst: xmlRegExecPushString2
      Src: /src/libxml2/xmlschemas.c:26164,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26205,1
    - Dst: xmlRegExecErrInfo
      Src: /src/libxml2/xmlschemas.c:26174,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26169,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26197,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26149,1
    - Dst: xmlRegNewExecCtxt
      Src: /src/libxml2/xmlschemas.c:26146,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 70
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 26226
      start: 26021
    functionDepth: 0
    functionLinenumber: 26021
    functionLinenumberEnd: 26226
    functionName: xmlSchemaValidateChildElem
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlRegExecErrInfo
    - INODE_NILLED
    - xmlSchemaGetBuiltInType
    - VERROR
    - xmlRegExecPushString2
    - xmlRegNewExecCtxt
    - xmlSchemaGetElem
    - xmlSchemaProcessXSIType
    - VERROR_INT
    - xmlSchemaGetMetaAttrInfo
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaValidateChildElem(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3653,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3660,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - annot
    argTypes:
    - xmlSchemaAnnotPtr
    constantsTouched: []
    func_position:
      end: 3663
      start: 3647
    functionDepth: 0
    functionLinenumber: 3647
    functionLinenumberEnd: 3663
    functionName: xmlSchemaFreeAnnot
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaFreeAnnot(xmlSchemaAnnotPtr annot) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:3331,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:3336,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:3333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3338
      start: 3326
    functionDepth: 0
    functionLinenumber: 3326
    functionLinenumberEnd: 3338
    functionName: xmlSchemaItemListCreate
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    - xmlSchemaPErrMemory
    linkageType: ''
    returnType: xmlSchemaItemListPtr
    signature: 'static xmlSchemaItemListPtr xmlSchemaItemListCreate(void) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19341,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19355,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19354,1
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:19395,1
    - Dst: WXS_IS_EXTENSION
      Src: /src/libxml2/xmlschemas.c:19391,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:19407,1
    - Dst: xmlSchemaAddElementSubstitutionMember
      Src: /src/libxml2/xmlschemas.c:19430,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 70
    argCount: 2
    argNames:
    - ctxt
    - elemDecl
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaElementPtr
    constantsTouched: []
    func_position:
      end: 19435
      start: 19337
    functionDepth: 0
    functionLinenumber: 19337
    functionLinenumberEnd: 19435
    functionName: xmlSchemaCheckElemSubstGroup
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_SUBST_HEAD
    - WXS_IS_RESTRICTION
    - xmlSchemaAddElementSubstitutionMember
    - WXS_IS_EXTENSION
    - WXS_IS_COMPLEX
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaCheckElemSubstGroup(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      xmlSchemaElementPtr elemDecl) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaSAXHandleStartElementNs
      Src: /src/libxml2/xmlschemas.c:28070,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 8
    argCount: 9
    argNames:
    - ctx
    - localname
    - prefix
    - URI
    - nb_namespaces
    - namespaces
    - nb_attributes
    - nb_defaulted
    - attributes
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - int
    - xmlChar**
    - int
    - int
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 28074
      start: 28054
    functionDepth: 0
    functionLinenumber: 28054
    functionLinenumberEnd: 28074
    functionName: startElementNsSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaSAXHandleStartElementNs
    linkageType: ''
    returnType: void
    signature: "static void startElementNsSplit(void *ctx, const xmlChar * localname,\t\t
      const xmlChar * prefix, const xmlChar * URI,\t\t int nb_namespaces, const xmlChar
      ** namespaces,\t\t int nb_attributes, int nb_defaulted,\t\t const xmlChar **
      attributes) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - xmlSchemaItemListPtr
    constantsTouched: []
    func_position:
      end: 3349
      start: 3340
    functionDepth: 0
    functionLinenumber: 3340
    functionLinenumberEnd: 3349
    functionName: xmlSchemaItemListClear
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaItemListClear(xmlSchemaItemListPtr list) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: WXS_CONSTRUCTOR
      Src: /src/libxml2/xmlschemas.c:20022,1
    - Dst: WXS_ITEM_TYPE_NAME
      Src: /src/libxml2/xmlschemas.c:20079,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:20069,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:20067,1
    - Dst: xmlSchemaFindRedefCompInGraph
      Src: /src/libxml2/xmlschemas.c:20044,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:20080,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:20082,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:20161,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:20170,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:20172,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:20180,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 1
    argNames:
    - pctxt
    argTypes:
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 20191
      start: 20018
    functionDepth: 0
    functionLinenumber: 20018
    functionLinenumberEnd: 20191
    functionName: xmlSchemaCheckSRCRedefineFirst
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaFindRedefCompInGraph
    - WXS_CONSTRUCTOR
    - WXS_ITEM_TYPE_NAME
    - xmlSchemaFormatQName
    - xmlSchemaGetComponentDesignation
    - FREE_AND_NULL
    - PERROR_INT
    - WXS_ITEM_NODE
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaCheckSRCRedefineFirst(xmlSchemaParserCtxtPtr pctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaSAXHandleEndElementNs
      Src: /src/libxml2/xmlschemas.c:28086,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - localname
    - prefix
    - URI
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 28087
      start: 28076
    functionDepth: 0
    functionLinenumber: 28076
    functionLinenumberEnd: 28087
    functionName: endElementNsSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaSAXHandleEndElementNs
    linkageType: ''
    returnType: void
    signature: "static void endElementNsSplit(void *ctx, const xmlChar * localname,\t\t
      const xmlChar * prefix, const xmlChar * URI) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:4927,1
    - Dst: WXS_ADD_GLOBAL
      Src: /src/libxml2/xmlschemas.c:4938,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:4932,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:4929,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 5
    argNames:
    - ctxt
    - schema
    - name
    - nsName
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlChar*
    - xmlChar*
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 4940
      start: 4917
    functionDepth: 0
    functionLinenumber: 4917
    functionLinenumberEnd: 4940
    functionName: xmlSchemaAddNotation
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    - WXS_ADD_GLOBAL
    - xmlSchemaPErrMemory
    linkageType: ''
    returnType: xmlSchemaNotationPtr
    signature: "static xmlSchemaNotationPtr xmlSchemaAddNotation(xmlSchemaParserCtxtPtr
      ctxt, xmlSchemaPtr schema, const xmlChar *name, const xmlChar *nsName,\t\t xmlNodePtr
      node ATTRIBUTE_UNUSED) "
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - xmlSchemaBasicItemPtr
    constantsTouched: []
    func_position:
      end: 1204
      start: 1165
    functionDepth: 0
    functionLinenumber: 1165
    functionLinenumberEnd: 1204
    functionName: xmlSchemaGetComponentNode
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr xmlSchemaGetComponentNode(xmlSchemaBasicItemPtr
      item) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:9639,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:9643,1
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:9641,1
    - Dst: xmlSchemaRedefListFree
      Src: /src/libxml2/xmlschemas.c:9645,1
    - Dst: xmlDictFree
      Src: /src/libxml2/xmlschemas.c:9647,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:9648,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - con
    argTypes:
    - xmlSchemaConstructionCtxtPtr
    constantsTouched: []
    func_position:
      end: 9649
      start: 9629
    functionDepth: 0
    functionLinenumber: 9629
    functionLinenumberEnd: 9649
    functionName: xmlSchemaConstructionCtxtFree
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFree
    - xmlSchemaItemListFree
    - xmlDictFree
    - xmlSchemaRedefListFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaConstructionCtxtFree(xmlSchemaConstructionCtxtPtr
      con) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCheckParticleRangeOK
      Src: /src/libxml2/xmlschemas.c:16667,1
    - Dst: xmlSchemaCheckCOSNSSubset
      Src: /src/libxml2/xmlschemas.c:16674,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 4
    argNames:
    - ctxt
    - r
    - b
    - isAnyTypeBase
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaParticlePtr
    - xmlSchemaParticlePtr
    - int
    constantsTouched: []
    func_position:
      end: 16690
      start: 16656
    functionDepth: 0
    functionLinenumber: 16656
    functionLinenumberEnd: 16690
    functionName: xmlSchemaCheckRCaseNSSubset
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaCheckCOSNSSubset
    - xmlSchemaCheckParticleRangeOK
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckRCaseNSSubset(xmlSchemaParserCtxtPtr ctxt,\t\t\t\t
      xmlSchemaParticlePtr r,\t\t\t\t xmlSchemaParticlePtr b,\t\t\t\t int isAnyTypeBase) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:9657,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:9666,1
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:9664,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:9662,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:9659,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:9667,1
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:9670,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:9672,1
    - Dst: xmlSchemaConstructionCtxtFree
      Src: /src/libxml2/xmlschemas.c:9673,1
    - Dst: xmlDictReference
      Src: /src/libxml2/xmlschemas.c:9677,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - dict
    argTypes:
    - xmlDictPtr
    constantsTouched: []
    func_position:
      end: 9679
      start: 9651
    functionDepth: 0
    functionLinenumber: 9651
    functionLinenumberEnd: 9679
    functionName: xmlSchemaConstructionCtxtCreate
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaConstructionCtxtFree
    - memset
    - xmlDictReference
    - xmlSchemaPErrMemory
    - xmlSchemaItemListCreate
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchemaConstructionCtxtPtr
    signature: 'static xmlSchemaConstructionCtxtPtr xmlSchemaConstructionCtxtCreate(xmlDictPtr
      dict) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:1148,1
    - Dst: xmlSchemaItemTypeToStr
      Src: /src/libxml2/xmlschemas.c:1153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 1
    argNames:
    - item
    argTypes:
    - xmlSchemaBasicItemPtr
    constantsTouched: []
    func_position:
      end: 1155
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1155
    functionName: xmlSchemaGetComponentTypeStr
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaItemTypeToStr
    - WXS_IS_COMPLEX
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlSchemaGetComponentTypeStr(xmlSchemaBasicItemPtr
      item) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 3
    argNames:
    - ctxt
    - r
    - b
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaParticlePtr
    - xmlSchemaParticlePtr
    constantsTouched: []
    func_position:
      end: 16640
      start: 16632
    functionDepth: 0
    functionLinenumber: 16632
    functionLinenumberEnd: 16640
    functionName: xmlSchemaCheckRCaseRecurseAsIfGroup
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckRCaseRecurseAsIfGroup(xmlSchemaParserCtxtPtr
      ctxt,\t\t\t\t xmlSchemaParticlePtr r,\t\t\t\t xmlSchemaParticlePtr b) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetCanonValueWhtspExt_1
      Src: /src/libxml2/xmlschemas.c:1531,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - val
    - ws
    - retValue
    argTypes:
    - xmlSchemaValPtr
    - xmlSchemaWhitespaceValueType
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1532
      start: 1526
    functionDepth: 0
    functionLinenumber: 1526
    functionLinenumberEnd: 1532
    functionName: xmlSchemaGetCanonValueWhtspExt
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetCanonValueWhtspExt_1
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaGetCanonValueWhtspExt(xmlSchemaValPtr val,\t\t\t
      xmlSchemaWhitespaceValueType ws,\t\t\t xmlChar **retValue) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:2528,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:2532,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:2530,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 3
    argNames:
    - str
    - ni
    - node
    argTypes:
    - xmlChar**
    - xmlSchemaNodeInfoPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2534
      start: 2521
    functionDepth: 0
    functionLinenumber: 2521
    functionLinenumberEnd: 2534
    functionName: xmlSchemaFormatErrorNodeQName
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaFormatQName
    linkageType: ''
    returnType: xmlChar*
    signature: "static const xmlChar *xmlSchemaFormatErrorNodeQName(xmlChar ** str,\t\t\t
      xmlSchemaNodeInfoPtr ni,\t\t\t xmlNodePtr node) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3453,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - xmlSchemaItemListPtr
    constantsTouched: []
    func_position:
      end: 3455
      start: 3447
    functionDepth: 0
    functionLinenumber: 3447
    functionLinenumberEnd: 3455
    functionName: xmlSchemaItemListFree
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaItemListFree(xmlSchemaItemListPtr list) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:5000,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:5005,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:5002,1
    - Dst: WXS_ADD_LOCAL
      Src: /src/libxml2/xmlschemas.c:5009,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - pctxt
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 5011
      start: 4991
    functionDepth: 0
    functionLinenumber: 4991
    functionLinenumberEnd: 5011
    functionName: xmlSchemaAddAttributeUse
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    - WXS_ADD_LOCAL
    - xmlSchemaPErrMemory
    linkageType: ''
    returnType: xmlSchemaAttributeUsePtr
    signature: "static xmlSchemaAttributeUsePtr xmlSchemaAddAttributeUse(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t xmlNodePtr node) "
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - pctxt
    - schemaLocation
    - targetNamespace
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 9798
      start: 9775
    functionDepth: 0
    functionLinenumber: 9775
    functionLinenumberEnd: 9798
    functionName: xmlSchemaGetChameleonSchemaBucket
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlSchemaBucketPtr
    signature: "static xmlSchemaBucketPtr xmlSchemaGetChameleonSchemaBucket(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t\t const xmlChar *schemaLocation,\t\t\t\t const xmlChar *targetNamespace) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_RESTRICTION
      Src: /src/libxml2/xmlschemas.c:15429,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:15446,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:15439,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ctxt
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 15452
      start: 15420
    functionDepth: 0
    functionLinenumber: 15420
    functionLinenumberEnd: 15452
    functionName: xmlSchemaCheckSRCSimpleType
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_IS_RESTRICTION
    - WXS_IS_LIST
    - WXS_IS_UNION
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckSRCSimpleType(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      xmlSchemaTypePtr type) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - publicId
    - systemId
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 27842
      start: 27833
    functionDepth: 0
    functionLinenumber: 27833
    functionLinenumberEnd: 27842
    functionName: resolveEntitySplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlParserInputPtr
    signature: 'static xmlParserInputPtr resolveEntitySplit(void *ctx, const xmlChar
      *publicId, const xmlChar *systemId) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetCanonValueWhtspExt_1
      Src: /src/libxml2/xmlschemas.c:1538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - val
    - retValue
    argTypes:
    - xmlSchemaValPtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1540
      start: 1534
    functionDepth: 0
    functionLinenumber: 1534
    functionLinenumberEnd: 1540
    functionName: xmlSchemaGetCanonValueHash
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetCanonValueWhtspExt_1
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaGetCanonValueHash(xmlSchemaValPtr val,\t\t\t xmlChar
      **retValue) "
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2545,1
    - Dst: xmlStrncat
      Src: /src/libxml2/xmlschemas.c:2628,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2626,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2618,1
    - Dst: xmlStrncat
      Src: /src/libxml2/xmlschemas.c:2604,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2624,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2638,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2645,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2678,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2680,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2707,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2721,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2736,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2746,1
    - Dst: xmlSchemaErr3
      Src: /src/libxml2/xmlschemas.c:2714,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2710,1
    - Dst: xmlSchemaErr
      Src: /src/libxml2/xmlschemas.c:2748,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2569,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2629,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2590,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2631,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:2634,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2648,1
    - Dst: xmlSchemaErr
      Src: /src/libxml2/xmlschemas.c:2649,1
    - Dst: xmlSchemaEvalErrorNodeType
      Src: /src/libxml2/xmlschemas.c:2667,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2679,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2681,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2704,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2741,1
    - Dst: xmlSchemaErr
      Src: /src/libxml2/xmlschemas.c:2753,1
    - Dst: xmlSchemaErr
      Src: /src/libxml2/xmlschemas.c:2762,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2769,1
    - Dst: xmlSchemaErr
      Src: /src/libxml2/xmlschemas.c:2733,1
    - Dst: xmlSchemaErr
      Src: /src/libxml2/xmlschemas.c:2765,1
    - Dst: xmlSchemaErr
      Src: /src/libxml2/xmlschemas.c:2743,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2768,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2570,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2580,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2599,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:2639,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2642,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2644,1
    - Dst: xmlEscapeFormatString
      Src: /src/libxml2/xmlschemas.c:2645,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:2650,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2696,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2726,1
    - Dst: xmlSchemaErr
      Src: /src/libxml2/xmlschemas.c:2728,1
    - Dst: xmlSchemaErr
      Src: /src/libxml2/xmlschemas.c:2770,1
    - Dst: xmlSchemaErr
      Src: /src/libxml2/xmlschemas.c:2738,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemas.c:2701,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2756,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2761,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2731,1
    - Dst: xmlSchemaFormatNodeForError
      Src: /src/libxml2/xmlschemas.c:2544,1
    - Dst: xmlSchemaErr
      Src: /src/libxml2/xmlschemas.c:2546,1
    - Dst: xmlSchemaComplexTypeErr
      Src: /src/libxml2/xmlschemas.c:2554,1
    - Dst: xmlSchemaFormatErrorNodeQName
      Src: /src/libxml2/xmlschemas.c:2547,1
    - Dst: xmlSchemaFormatNodeForError
      Src: /src/libxml2/xmlschemas.c:2568,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2578,1
    - Dst: xmlSchemaFacetTypeToString
      Src: /src/libxml2/xmlschemas.c:2680,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2698,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemas.c:2700,1
    - Dst: xmlSchemaGetFacetValueAsULong
      Src: /src/libxml2/xmlschemas.c:2700,1
    - Dst: xmlSchemaErr
      Src: /src/libxml2/xmlschemas.c:2723,1
    - Dst: xmlSchemaFormatFacetEnumSet
      Src: /src/libxml2/xmlschemas.c:2724,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2751,1
    - Dst: xmlSchemaErr
      Src: /src/libxml2/xmlschemas.c:2758,1
    - Dst: xmlSchemaErr
      Src: /src/libxml2/xmlschemas.c:2717,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2764,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 198
    argCount: 4
    argNames:
    - actxt
    - error
    - ni
    - node
    argTypes:
    - xmlSchemaAbstractCtxtPtr
    - xmlParserErrors
    - xmlSchemaAttrInfoPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 2774
      start: 2536
    functionDepth: 0
    functionLinenumber: 2536
    functionLinenumberEnd: 2774
    functionName: xmlSchemaIllegalAttrErr
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaFormatErrorNodeQName
    - xmlEscapeFormatString
    - xmlSchemaFacetTypeToString
    - xmlSchemaGetFacetValueAsULong
    - xmlSchemaFormatFacetEnumSet
    - xmlSchemaComplexTypeErr
    - xmlSchemaEvalErrorNodeType
    - xmlSchemaErr
    - xmlStrncat
    - xmlStrdup
    - xmlSchemaErr3
    - FREE_AND_NULL
    - xmlSchemaFormatNodeForError
    - snprintf
    - xmlStrcat
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaIllegalAttrErr(xmlSchemaAbstractCtxtPtr actxt,\t\t\txmlParserErrors
      error,\t\t\txmlSchemaAttrInfoPtr ni,\t\t\txmlNodePtr node) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 27852
      start: 27844
    functionDepth: 0
    functionLinenumber: 27844
    functionLinenumberEnd: 27852
    functionName: getEntitySplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlEntityPtr
    signature: 'static xmlEntityPtr getEntitySplit(void *ctx, const xmlChar *name) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3428,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - list
    - idx
    argTypes:
    - xmlSchemaItemListPtr
    - int
    constantsTouched: []
    func_position:
      end: 3440
      start: 3419
    functionDepth: 0
    functionLinenumber: 3419
    functionLinenumberEnd: 3440
    functionName: xmlSchemaItemListRemove
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaItemListRemove(xmlSchemaItemListPtr list, int
      idx) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:4964,1
    - Dst: WXS_ADD_GLOBAL
      Src: /src/libxml2/xmlschemas.c:4976,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:4966,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:4969,1
    - Dst: WXS_ADD_LOCAL
      Src: /src/libxml2/xmlschemas.c:4978,1
    - Dst: WXS_ADD_PENDING
      Src: /src/libxml2/xmlschemas.c:4979,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 6
    argNames:
    - ctxt
    - schema
    - name
    - nsName
    - node
    - topLevel
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlChar*
    - xmlChar*
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 4981
      start: 4954
    functionDepth: 0
    functionLinenumber: 4954
    functionLinenumberEnd: 4981
    functionName: xmlSchemaAddAttribute
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - memset
    - WXS_ADD_PENDING
    - WXS_ADD_GLOBAL
    - xmlSchemaPErrMemory
    - WXS_ADD_LOCAL
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchemaAttributePtr
    signature: "static xmlSchemaAttributePtr xmlSchemaAddAttribute(xmlSchemaParserCtxtPtr
      ctxt, xmlSchemaPtr schema, const xmlChar * name, const xmlChar * nsName,\t\t
      xmlNodePtr node, int topLevel) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:18965,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:18968,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:18978,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:18966,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:18967,1
    - Dst: xmlSchemaItemListRemove
      Src: /src/libxml2/xmlschemas.c:18982,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:18995,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:18996,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:18997,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:19009,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:19011,1
    - Dst: xmlSchemaItemListRemove
      Src: /src/libxml2/xmlschemas.c:19012,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 2
    argNames:
    - pctxt
    - attrGr
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaAttributeGroupPtr
    constantsTouched: []
    func_position:
      end: 19022
      start: 18935
    functionDepth: 0
    functionLinenumber: 18935
    functionLinenumberEnd: 19022
    functionName: xmlSchemaCheckAGPropsCorrect
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaIsDerivedFromBuiltInType
    - WXS_ATTRUSE_DECL_NAME
    - WXS_ATTRUSE_TYPEDEF
    - xmlSchemaItemListRemove
    - WXS_ATTRUSE_DECL_TNS
    - FREE_AND_NULL
    - xmlSchemaGetComponentDesignation
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckAGPropsCorrect(xmlSchemaParserCtxtPtr pctxt,\t\t\t\t
      xmlSchemaAttributeGroupPtr attrGr) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4441,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4450,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4448,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4444,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4446,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4452,1
    - Dst: fprintf
      Src: /src/libxml2/xmlschemas.c:4453,1
    - Dst: xmlSchemaAnnotDump
      Src: /src/libxml2/xmlschemas.c:4455,1
    - Dst: xmlHashScan
      Src: /src/libxml2/xmlschemas.c:4456,1
    - Dst: xmlHashScanFull
      Src: /src/libxml2/xmlschemas.c:4457,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - output
    - schema
    argTypes:
    - FILE*
    - xmlSchema*
    constantsTouched: []
    func_position:
      end: 4458
      start: 4435
    functionDepth: 0
    functionLinenumber: 4435
    functionLinenumberEnd: 4458
    functionName: xmlSchemaDump
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlHashScanFull
    - xmlSchemaAnnotDump
    - fprintf
    - xmlHashScan
    linkageType: ''
    returnType: void
    signature: 'void xmlSchemaDump(FILE * output, xmlSchema *schema) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:22142,1
    - Dst: xmlSchemaGetCanonValueWhtspExt
      Src: /src/libxml2/xmlschemas.c:22146,1
    - Dst: xmlSchemaGetCanonValueHash
      Src: /src/libxml2/xmlschemas.c:22150,1
    - Dst: xmlSchemaGetWhiteSpaceFacetValue
      Src: /src/libxml2/xmlschemas.c:22147,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:22144,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:22153,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:22155,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:22157,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:22160,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:22162,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22164,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:22168,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 5
    argNames:
    - vctxt
    - buf
    - seq
    - count
    - for_hash
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlChar**
    - xmlSchemaPSVIIDCKeyPtr*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 22171
      start: 22133
    functionDepth: 0
    functionLinenumber: 22133
    functionLinenumberEnd: 22171
    functionName: xmlSchemaFormatIDCKeySequence_1
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaGetCanonValueWhtspExt
    - xmlStrdup
    - xmlSchemaGetWhiteSpaceFacetValue
    - xmlSchemaGetCanonValueHash
    - VERROR_INT
    - xmlStrcat
    linkageType: ''
    returnType: xmlChar*
    signature: "static const xmlChar *xmlSchemaFormatIDCKeySequence_1(xmlSchemaValidCtxtPtr
      vctxt,\t\t\t\txmlChar **buf,\t\t\t\txmlSchemaPSVIIDCKeyPtr *seq,\t\t\t\tint
      count, int for_hash) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:27064,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:27066,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - vctxt
    - filename
    argTypes:
    - xmlSchemaValidCtxt*
    - char*
    constantsTouched: []
    func_position:
      end: 27069
      start: 27059
    functionDepth: 0
    functionLinenumber: 27059
    functionLinenumberEnd: 27069
    functionName: xmlSchemaValidateSetFilename
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrdup
    linkageType: ''
    returnType: void
    signature: 'void xmlSchemaValidateSetFilename(xmlSchemaValidCtxt *vctxt, const
      char *filename) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - name
    - publicId
    - systemId
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 27910
      start: 27901
    functionDepth: 0
    functionLinenumber: 27901
    functionLinenumberEnd: 27910
    functionName: notationDeclSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static void notationDeclSplit(void *ctx, const xmlChar *name,\t const
      xmlChar *publicId, const xmlChar *systemId) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFormatIDCKeySequence_1
      Src: /src/libxml2/xmlschemas.c:22179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - vctxt
    - buf
    - seq
    - count
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlChar**
    - xmlSchemaPSVIIDCKeyPtr*
    - int
    constantsTouched: []
    func_position:
      end: 22180
      start: 22173
    functionDepth: 0
    functionLinenumber: 22173
    functionLinenumberEnd: 22180
    functionName: xmlSchemaFormatIDCKeySequence
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaFormatIDCKeySequence_1
    linkageType: ''
    returnType: xmlChar*
    signature: "static const xmlChar *xmlSchemaFormatIDCKeySequence(xmlSchemaValidCtxtPtr
      vctxt,\t\t\t xmlChar **buf,\t\t\t xmlSchemaPSVIIDCKeyPtr *seq,\t\t\t int count) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - name
    - publicId
    - systemId
    - notationName
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 27922
      start: 27912
    functionDepth: 0
    functionLinenumber: 27912
    functionLinenumberEnd: 27922
    functionName: unparsedEntityDeclSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "static void unparsedEntityDeclSplit(void *ctx, const xmlChar *name,\t\t
      const xmlChar *publicId, const xmlChar *systemId,\t\t const xmlChar *notationName) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:27031,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:27033,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/xmlschemas.c:27040,1
    - Dst: xmlDictCreate
      Src: /src/libxml2/xmlschemas.c:27038,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:27036,1
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:27043,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/xmlschemas.c:27045,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - schema
    argTypes:
    - xmlSchema*
    constantsTouched: []
    func_position:
      end: 27050
      start: 27026
    functionDepth: 0
    functionLinenumber: 27026
    functionLinenumberEnd: 27050
    functionName: xmlSchemaNewValidCtxt
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlDictCreate
    - xmlSchemaFreeValidCtxt
    - memset
    - xmlSchemaVErrMemory
    - xmlSchemaItemListCreate
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchemaValidCtxt*
    signature: 'xmlSchemaValidCtxt *xmlSchemaNewValidCtxt(xmlSchema *schema) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:15527,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15530,1
    - Dst: WXS_EMPTIABLE
      Src: /src/libxml2/xmlschemas.c:15528,1
    - Dst: WXS_HAS_MIXED_CONTENT
      Src: /src/libxml2/xmlschemas.c:15528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 15538
      start: 15517
    functionDepth: 0
    functionLinenumber: 15517
    functionLinenumberEnd: 15538
    functionName: (type)
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_HAS_SIMPLE_CONTENT
    - WXS_HAS_MIXED_CONTENT
    - WXS_EMPTIABLE
    - xmlSchemaPCustomErr
    linkageType: ''
    returnType: WXS_IS_COMPLEX
    signature: 'WXS_IS_COMPLEX (type) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaItemListAddSize
      Src: /src/libxml2/xmlschemas.c:3391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - list
    - item
    argTypes:
    - xmlSchemaItemListPtr
    - void*
    constantsTouched: []
    func_position:
      end: 3392
      start: 3388
    functionDepth: 0
    functionLinenumber: 3388
    functionLinenumberEnd: 3392
    functionName: xmlSchemaItemListAdd
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaItemListAddSize
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaItemListAdd(xmlSchemaItemListPtr list, void *item) '
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:7937,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 16
    argCount: 2
    argNames:
    - annItem
    - annot
    argTypes:
    - xmlSchemaAnnotItemPtr
    - xmlSchemaAnnotPtr
    constantsTouched: []
    func_position:
      end: 7945
      start: 7860
    functionDepth: 0
    functionLinenumber: 7860
    functionLinenumberEnd: 7945
    functionName: xmlSchemaAddAnnotation
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPCustomErr
    linkageType: ''
    returnType: xmlSchemaAnnotPtr
    signature: "static xmlSchemaAnnotPtr xmlSchemaAddAnnotation(xmlSchemaAnnotItemPtr
      annItem,\t\t xmlSchemaAnnotPtr annot) "
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaPCheckParticleCorrect_2
      Src: /src/libxml2/xmlschemas.c:10971,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:10986,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:10987,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:11005,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:11052,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11082,1
    - Dst: xmlSchemaParseElement
      Src: /src/libxml2/xmlschemas.c:11086,1
    - Dst: xmlSchemaGetQNameRefTargetNs
      Src: /src/libxml2/xmlschemas.c:11103,1
    - Dst: WXS_PARTICLE
      Src: /src/libxml2/xmlschemas.c:11129,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:11145,1
    - Dst: xmlSchemaParseAny
      Src: /src/libxml2/xmlschemas.c:11158,1
    - Dst: WXS_PARTICLE
      Src: /src/libxml2/xmlschemas.c:11130,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11159,1
    - Dst: xmlSchemaAddModelGroup
      Src: /src/libxml2/xmlschemas.c:10957,1
    - Dst: xmlGetMinOccurs
      Src: /src/libxml2/xmlschemas.c:10967,1
    - Dst: xmlGetMaxOccurs
      Src: /src/libxml2/xmlschemas.c:10964,1
    - Dst: xmlSchemaAddParticle
      Src: /src/libxml2/xmlschemas.c:10975,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:10985,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:11019,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11024,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:10992,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:11069,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11081,1
    - Dst: xmlSchemaParseModelGroup
      Src: /src/libxml2/xmlschemas.c:11160,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:11009,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:10991,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11031,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11080,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11089,1
    - Dst: xmlSchemaGetQNameRefName
      Src: /src/libxml2/xmlschemas.c:11101,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:11123,1
    - Dst: xmlSchemaParseModelGroup
      Src: /src/libxml2/xmlschemas.c:11163,1
    - Dst: xmlSchemaParseModelGroupDefRef
      Src: /src/libxml2/xmlschemas.c:11091,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11156,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:11176,1
    - Dst: WXS_ADD_PENDING
      Src: /src/libxml2/xmlschemas.c:11188,1
    - Dst: xmlGetMaxOccurs
      Src: /src/libxml2/xmlschemas.c:10968,1
    - Dst: xmlGetMinOccurs
      Src: /src/libxml2/xmlschemas.c:10963,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11004,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11008,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:10988,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:11025,1
    - Dst: xmlSchemaParseElement
      Src: /src/libxml2/xmlschemas.c:11032,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:11043,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11078,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11079,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11084,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11162,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 161
    argCount: 5
    argNames:
    - ctxt
    - schema
    - node
    - type
    - withParticle
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    - xmlSchemaTypeType
    - int
    constantsTouched: []
    func_position:
      end: 11194
      start: 10941
    functionDepth: 0
    functionLinenumber: 10941
    functionLinenumberEnd: 11194
    functionName: xmlSchemaParseModelGroup
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPCustomErr
    - xmlSchemaGetQNameRefName
    - WXS_ADD_PENDING
    - xmlSchemaParseAny
    - xmlGetMaxOccurs
    - xmlSchemaParseAnnotation
    - xmlSchemaParseElement
    - xmlSchemaAddParticle
    - xmlSchemaParseModelGroupDefRef
    - xmlSchemaPValAttrID
    - xmlSchemaPIllegalAttrErr
    - xmlGetMinOccurs
    - xmlSchemaParseModelGroup
    - xmlSchemaPCheckParticleCorrect_2
    - IS_SCHEMA
    - xmlSchemaGetQNameRefTargetNs
    - xmlSchemaPContentErr
    - xmlSchemaAddModelGroup
    - xmlSchemaFormatQName
    - xmlStrEqual
    - WXS_PARTICLE
    linkageType: ''
    returnType: xmlSchemaTreeItemPtr
    signature: "static xmlSchemaTreeItemPtr xmlSchemaParseModelGroup(xmlSchemaParserCtxtPtr
      ctxt, xmlSchemaPtr schema,\t\t\t xmlNodePtr node, xmlSchemaTypeType type,\t\t\t
      int withParticle) "
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11753,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:11760,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11759,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11754,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:11756,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:11766,1
    - Dst: xmlGetBooleanProp
      Src: /src/libxml2/xmlschemas.c:11771,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11776,1
    - Dst: xmlSchemaAddAnnotation
      Src: /src/libxml2/xmlschemas.c:11780,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:11781,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11801,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11796,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:11808,1
    - Dst: xmlSchemaParseRestriction
      Src: /src/libxml2/xmlschemas.c:11797,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:11791,1
    - Dst: xmlSchemaParseExtension
      Src: /src/libxml2/xmlschemas.c:11802,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:11785,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 4
    argNames:
    - ctxt
    - schema
    - node
    - hasRestrictionOrExtension
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    - int*
    constantsTouched: []
    func_position:
      end: 11814
      start: 11732
    functionDepth: 0
    functionLinenumber: 11732
    functionLinenumberEnd: 11814
    functionName: xmlSchemaParseComplexContent
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaParseExtension
    - xmlGetBooleanProp
    - IS_SCHEMA
    - xmlSchemaPContentErr
    - xmlSchemaPValAttrID
    - xmlStrEqual
    - xmlSchemaAddAnnotation
    - xmlSchemaParseRestriction
    - xmlSchemaParseAnnotation
    - xmlSchemaPIllegalAttrErr
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaParseComplexContent(xmlSchemaParserCtxtPtr ctxt,
      xmlSchemaPtr schema, xmlNodePtr node,\t\t\t int *hasRestrictionOrExtension) "
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: WXS_ILIST_IS_EMPTY
      Src: /src/libxml2/xmlschemas.c:23064,1
    - Dst: WXS_ILIST_IS_EMPTY
      Src: /src/libxml2/xmlschemas.c:23102,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:23164,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:23137,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:23125,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:23175,1
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:23211,1
    - Dst: xmlSchemaItemListAdd
      Src: /src/libxml2/xmlschemas.c:23215,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:23227,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23231,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:23234,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:23290,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23293,1
    - Dst: xmlSchemaIDCFreeBinding
      Src: /src/libxml2/xmlschemas.c:23294,1
    - Dst: memcpy
      Src: /src/libxml2/xmlschemas.c:23299,1
    - Dst: xmlSchemaItemListFree
      Src: /src/libxml2/xmlschemas.c:23308,1
    - Dst: xmlSchemaIDCNewBinding
      Src: /src/libxml2/xmlschemas.c:23260,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23237,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 161
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 23329
      start: 23042
    functionDepth: 0
    functionLinenumber: 23042
    functionLinenumberEnd: 23329
    functionName: xmlSchemaBubbleIDCNodeTables
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_ILIST_IS_EMPTY
    - xmlSchemaItemListFree
    - memcpy
    - xmlGrowCapacity
    - xmlRealloc
    - xmlSchemaIDCNewBinding
    - xmlSchemaVErrMemory
    - xmlSchemaItemListAdd
    - xmlSchemaIDCFreeBinding
    - xmlSchemaItemListCreate
    - xmlSchemaAreValuesEqual
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaBubbleIDCNodeTables(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:23379,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/xmlschemas.c:23391,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:23460,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:23459,1
    - Dst: xmlSchemaFormatIDCKeySequence
      Src: /src/libxml2/xmlschemas.c:23473,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/xmlschemas.c:23385,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23381,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:23393,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:23397,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:23414,1
    - Dst: xmlSchemaFormatIDCKeySequence
      Src: /src/libxml2/xmlschemas.c:23455,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:23457,1
    - Dst: xmlSchemaKeyrefErr
      Src: /src/libxml2/xmlschemas.c:23450,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:23477,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/xmlschemas.c:23408,1
    - Dst: xmlSchemaKeyrefErr
      Src: /src/libxml2/xmlschemas.c:23469,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:23475,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:23481,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/xmlschemas.c:23373,1
    - Dst: xmlSchemaHashKeySequence
      Src: /src/libxml2/xmlschemas.c:23378,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23392,1
    - Dst: xmlSchemaHashKeySequence
      Src: /src/libxml2/xmlschemas.c:23407,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:23409,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:23437,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:23476,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 103
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 23488
      start: 23336
    functionDepth: 0
    functionLinenumber: 23336
    functionLinenumberEnd: 23488
    functionName: xmlSchemaCheckCVCIDCKeyRef
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFree
    - xmlSchemaFormatIDCKeySequence
    - xmlHashCreate
    - xmlSchemaVErrMemory
    - xmlSchemaGetComponentQName
    - xmlSchemaKeyrefErr
    - FREE_AND_NULL
    - xmlHashLookup
    - xmlSchemaAreValuesEqual
    - xmlHashAddEntry
    - xmlMalloc
    - xmlSchemaHashKeySequence
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaCheckCVCIDCKeyRef(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 27949
      start: 27942
    functionDepth: 0
    functionLinenumber: 27942
    functionLinenumberEnd: 27949
    functionName: endDocumentSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void endDocumentSplit(void *ctx) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaItemListGrow
      Src: /src/libxml2/xmlschemas.c:3398,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:3399,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - list
    - item
    - idx
    argTypes:
    - xmlSchemaItemListPtr
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 3417
      start: 3394
    functionDepth: 0
    functionLinenumber: 3394
    functionLinenumberEnd: 3417
    functionName: xmlSchemaItemListInsert
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaItemListGrow
    - xmlSchemaPErrMemory
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaItemListInsert(xmlSchemaItemListPtr list, void
      *item, int idx) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - target
    - data
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 27959
      start: 27951
    functionDepth: 0
    functionLinenumber: 27951
    functionLinenumberEnd: 27959
    functionName: processingInstructionSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void processingInstructionSplit(void *ctx, const xmlChar *target,
      const xmlChar *data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaParseIncludeOrRedefine
      Src: /src/libxml2/xmlschemas.c:10911,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - pctxt
    - schema
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 10916
      start: 10905
    functionDepth: 0
    functionLinenumber: 10905
    functionLinenumberEnd: 10916
    functionName: xmlSchemaParseInclude
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaParseIncludeOrRedefine
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaParseInclude(xmlSchemaParserCtxtPtr pctxt, xmlSchemaPtr
      schema, xmlNodePtr node) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11665,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:11676,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11669,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:11666,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:11670,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11682,1
    - Dst: xmlSchemaAddAnnotation
      Src: /src/libxml2/xmlschemas.c:11686,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:11687,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:11691,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:11697,1
    - Dst: xmlSchemaParseRestriction
      Src: /src/libxml2/xmlschemas.c:11703,1
    - Dst: xmlSchemaParseExtension
      Src: /src/libxml2/xmlschemas.c:11708,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:11714,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11707,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:11702,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 4
    argNames:
    - ctxt
    - schema
    - node
    - hasRestrictionOrExtension
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    - int*
    constantsTouched: []
    func_position:
      end: 11720
      start: 11643
    functionDepth: 0
    functionLinenumber: 11643
    functionLinenumberEnd: 11720
    functionName: xmlSchemaParseSimpleContent
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaParseExtension
    - IS_SCHEMA
    - xmlSchemaPContentErr
    - xmlSchemaPValAttrID
    - xmlStrEqual
    - xmlSchemaAddAnnotation
    - xmlSchemaParseRestriction
    - xmlSchemaParseAnnotation
    - xmlSchemaPIllegalAttrErr
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaParseSimpleContent(xmlSchemaParserCtxtPtr ctxt,
      xmlSchemaPtr schema, xmlNodePtr node,\t\t\t int *hasRestrictionOrExtension) "
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: WXS_ILIST_IS_EMPTY
      Src: /src/libxml2/xmlschemas.c:22855,1
    - Dst: xmlHashFree
      Src: /src/libxml2/xmlschemas.c:22906,1
    - Dst: xmlSchemaIDCAcquireBinding
      Src: /src/libxml2/xmlschemas.c:22874,1
    - Dst: WXS_ILIST_IS_EMPTY
      Src: /src/libxml2/xmlschemas.c:22878,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:22896,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:22926,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:22940,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:22965,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:22979,1
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:22995,1
    - Dst: xmlSchemaItemListAdd
      Src: /src/libxml2/xmlschemas.c:22999,1
    - Dst: xmlSchemaIDCAppendNodeTableItem
      Src: /src/libxml2/xmlschemas.c:23018,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 113
    argCount: 2
    argNames:
    - vctxt
    - ielem
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlSchemaNodeInfoPtr
    constantsTouched: []
    func_position:
      end: 23031
      start: 22839
    functionDepth: 0
    functionLinenumber: 22839
    functionLinenumberEnd: 23031
    functionName: xmlSchemaIDCFillNodeTables
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFree
    - xmlSchemaIDCAcquireBinding
    - xmlSchemaIDCAppendNodeTableItem
    - xmlSchemaItemListAdd
    - WXS_ILIST_IS_EMPTY
    - xmlSchemaAreValuesEqual
    - xmlSchemaItemListCreate
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaIDCFillNodeTables(xmlSchemaValidCtxtPtr vctxt,\t\t\t
      xmlSchemaNodeInfoPtr ielem) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaExpandAttributeGroupRefs
      Src: /src/libxml2/xmlschemas.c:18920,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - pctxt
    - attrGr
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaAttributeGroupPtr
    constantsTouched: []
    func_position:
      end: 18924
      start: 18911
    functionDepth: 0
    functionLinenumber: 18911
    functionLinenumberEnd: 18924
    functionName: xmlSchemaAttributeGroupExpandRefs
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaExpandAttributeGroupRefs
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaAttributeGroupExpandRefs(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t\t xmlSchemaAttributeGroupPtr attrGr) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaSetParserErrors
      Src: /src/libxml2/xmlschemas.c:27318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 4
    argNames:
    - ctxt
    - err
    - warn
    - ctx
    argTypes:
    - xmlSchemaValidCtxt*
    - xmlSchemaValidityErrorFunc
    - xmlSchemaValidityWarningFunc
    - void*
    constantsTouched: []
    func_position:
      end: 27319
      start: 27307
    functionDepth: 0
    functionLinenumber: 27307
    functionLinenumberEnd: 27319
    functionName: xmlSchemaSetValidErrors
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaSetParserErrors
    linkageType: ''
    returnType: void
    signature: 'void xmlSchemaSetValidErrors(xmlSchemaValidCtxt *ctxt, xmlSchemaValidityErrorFunc
      err, xmlSchemaValidityWarningFunc warn, void *ctx) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7973,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:7975,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7978,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:7979,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7974,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:7987,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:7989,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:7992,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:7996,1
    - Dst: xmlSchemaPMissingAttrErr
      Src: /src/libxml2/xmlschemas.c:7998,1
    - Dst: xmlSchemaAddAnnotation
      Src: /src/libxml2/xmlschemas.c:8028,1
    - Dst: xmlSchemaCheckCSelectorXPath
      Src: /src/libxml2/xmlschemas.c:8008,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:8029,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:8033,1
    - Dst: xmlSchemaPErr
      Src: /src/libxml2/xmlschemas.c:8010,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8024,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:8019,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:8003,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 4
    argNames:
    - ctxt
    - idc
    - node
    - isField
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaIDCPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 8040
      start: 7957
    functionDepth: 0
    functionLinenumber: 7957
    functionLinenumberEnd: 8040
    functionName: xmlSchemaParseIDCSelectorAndField
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - memset
    - xmlSchemaGetNodeContent
    - IS_SCHEMA
    - xmlSchemaPContentErr
    - xmlSchemaPValAttrID
    - xmlStrEqual
    - xmlSchemaPErr
    - xmlSchemaAddAnnotation
    - xmlSchemaPErrMemory
    - xmlSchemaPMissingAttrErr
    - xmlSchemaParseAnnotation
    - xmlSchemaCheckCSelectorXPath
    - xmlMalloc
    - xmlSchemaPIllegalAttrErr
    - xmlSchemaGetPropNode
    linkageType: ''
    returnType: xmlSchemaIDCSelectPtr
    signature: "static xmlSchemaIDCSelectPtr xmlSchemaParseIDCSelectorAndField(xmlSchemaParserCtxtPtr
      ctxt,\t\t\t xmlSchemaIDCPtr idc,\t\t\t xmlNodePtr node,\t\t\t int isField) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:23508,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23515,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:23529,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23510,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:23513,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:23542,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:23544,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:23547,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 23552
      start: 23496
    functionDepth: 0
    functionLinenumber: 23496
    functionLinenumberEnd: 23552
    functionName: xmlSchemaGetFreshAttrInfo
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - memset
    - xmlSchemaVErrMemory
    - xmlMalloc
    - VERROR_INT
    linkageType: ''
    returnType: xmlSchemaAttrInfoPtr
    signature: 'static xmlSchemaAttrInfoPtr xmlSchemaGetFreshAttrInfo(xmlSchemaValidCtxtPtr
      vctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchemaValidCtxt*
    constantsTouched: []
    func_position:
      end: 27295
      start: 27289
    functionDepth: 0
    functionLinenumber: 27289
    functionLinenumberEnd: 27295
    functionName: xmlSchemaIsValid
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlSchemaIsValid(xmlSchemaValidCtxt *ctxt) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetCircModelGrDefRef
      Src: /src/libxml2/xmlschemas.c:18503,1
    - Dst: xmlSchemaGetCircModelGrDefRef
      Src: /src/libxml2/xmlschemas.c:18513,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 20
    argCount: 2
    argNames:
    - groupDef
    - particle
    argTypes:
    - xmlSchemaModelGroupDefPtr
    - xmlSchemaTreeItemPtr
    constantsTouched: []
    func_position:
      end: 18522
      start: 18478
    functionDepth: 0
    functionLinenumber: 18478
    functionLinenumberEnd: 18522
    functionName: xmlSchemaGetCircModelGrDefRef
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetCircModelGrDefRef
    linkageType: ''
    returnType: xmlSchemaTreeItemPtr
    signature: "static xmlSchemaTreeItemPtr xmlSchemaGetCircModelGrDefRef(xmlSchemaModelGroupDefPtr
      groupDef,\t\t\t xmlSchemaTreeItemPtr particle) "
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:3141,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:3144,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:3148,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:3152,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:3166,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:3164,1
    - Dst: xmlSchemaIsGlobalItem
      Src: /src/libxml2/xmlschemas.c:3155,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:3168,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:3174,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:3180,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:3139,1
    - Dst: xmlSchemaIsGlobalItem
      Src: /src/libxml2/xmlschemas.c:3143,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:3149,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:3153,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:3172,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:3181,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:3184,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:3146,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:3150,1
    - Dst: xmlEscapeFormatString
      Src: /src/libxml2/xmlschemas.c:3180,1
    - Dst: xmlSchemaPErr
      Src: /src/libxml2/xmlschemas.c:3188,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:3182,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:3151,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:3160,1
    - Dst: xmlEscapeFormatString
      Src: /src/libxml2/xmlschemas.c:3166,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:3162,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:3159,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:3157,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:3167,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/xmlschemas.c:3178,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:3179,1
    - Dst: xmlSchemaPErr
      Src: /src/libxml2/xmlschemas.c:3186,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    argCount: 0
    argNames:
    - 8,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3189
      start: 3118
    functionDepth: 0
    functionLinenumber: 3118
    functionLinenumberEnd: 3189
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlEscapeFormatString
    - WXS_IS_UNION
    - xmlSchemaFormatQName
    - xmlStrdup
    - WXS_IS_LIST
    - xmlCharStrdup
    - xmlSchemaPErr
    - WXS_IS_ATOMIC
    - FREE_AND_NULL
    - xmlSchemaIsGlobalItem
    - xmlStrcat
    linkageType: ''
    returnType: void
    signature: "static void LIBXML_ATTR_FORMAT(8,0) xmlSchemaPSimpleTypeErr(xmlSchemaParserCtxtPtr
      ctxt,\t\t\txmlParserErrors error,\t\t\txmlSchemaBasicItemPtr ownerItem ATTRIBUTE_UNUSED,\t\t\txmlNodePtr
      node,\t\t\txmlSchemaTypePtr type,\t\t\tconst char *expected,\t\t\tconst xmlChar
      *value,\t\t\tconst char *message,\t\t\tconst xmlChar *str1,\t\t\tconst xmlChar
      *str2){ xmlChar *msg = NULL; xmlSchemaFormatNodeForError(&msg, ACTXT_CAST ctxt,
      node); if (message == NULL) "
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaPValAttrNode
      Src: /src/libxml2/xmlschemas.c:11852,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11906,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11946,1
    - Dst: xmlSchemaPValAttrBlockFinal
      Src: /src/libxml2/xmlschemas.c:11952,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:12000,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:12035,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:12040,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:12045,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:12050,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:12055,1
    - Dst: xmlSchemaParseComplexContent
      Src: /src/libxml2/xmlschemas.c:12022,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:11847,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:11853,1
    - Dst: xmlSchemaPMissingAttrErr
      Src: /src/libxml2/xmlschemas.c:11849,1
    - Dst: xmlSchemaAddType
      Src: /src/libxml2/xmlschemas.c:11864,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11901,1
    - Dst: xmlSchemaPGetBoolNodeValue
      Src: /src/libxml2/xmlschemas.c:11923,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:11930,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:11973,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:12005,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:12074,1
    - Dst: xmlSchemaParseModelGroupDefRef
      Src: /src/libxml2/xmlschemas.c:12057,1
    - Dst: xmlSchemaParseAnyAttribute
      Src: /src/libxml2/xmlschemas.c:12075,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:12080,1
    - Dst: xmlSchemaParseSimpleContent
      Src: /src/libxml2/xmlschemas.c:12014,1
    - Dst: xmlSchemaAddType
      Src: /src/libxml2/xmlschemas.c:11869,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11919,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11926,1
    - Dst: xmlSchemaPValAttrBlockFinal
      Src: /src/libxml2/xmlschemas.c:11932,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:11969,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11972,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:12001,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:12017,1
    - Dst: xmlSchemaParseModelGroup
      Src: /src/libxml2/xmlschemas.c:12042,1
    - Dst: xmlSchemaParseModelGroup
      Src: /src/libxml2/xmlschemas.c:12047,1
    - Dst: xmlSchemaParseModelGroup
      Src: /src/libxml2/xmlschemas.c:12052,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:12091,1
    - Dst: snprintf
      Src: /src/libxml2/xmlschemas.c:11863,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:11866,1
    - Dst: xmlSchemaAddType
      Src: /src/libxml2/xmlschemas.c:11885,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:11917,1
    - Dst: xmlSchemaPGetBoolNodeValue
      Src: /src/libxml2/xmlschemas.c:11910,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:11905,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:11939,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:11950,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:11957,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:11965,1
    - Dst: xmlSchemaParseLocalAttributes
      Src: /src/libxml2/xmlschemas.c:12067,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 153
    argCount: 4
    argNames:
    - ctxt
    - schema
    - node
    - topLevel
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 12098
      start: 11826
    functionDepth: 0
    functionLinenumber: 11826
    functionLinenumberEnd: 12098
    functionName: xmlSchemaParseComplexType
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPCustomErr
    - xmlSchemaParseAnnotation
    - xmlSchemaGetBuiltInType
    - xmlSchemaParseModelGroupDefRef
    - xmlSchemaPValAttrNode
    - xmlSchemaPValAttrID
    - xmlSchemaPValAttrBlockFinal
    - snprintf
    - xmlSchemaPSimpleTypeErr
    - xmlSchemaPIllegalAttrErr
    - xmlSchemaParseModelGroup
    - IS_SCHEMA
    - xmlSchemaParseSimpleContent
    - xmlSchemaParseComplexContent
    - xmlSchemaAddType
    - xmlSchemaPContentErr
    - xmlSchemaGetPropNode
    - xmlDictLookup
    - xmlSchemaParseLocalAttributes
    - xmlSchemaGetNodeContent
    - xmlSchemaParseAnyAttribute
    - xmlStrEqual
    - xmlSchemaPMissingAttrErr
    - xmlSchemaPGetBoolNodeValue
    linkageType: ''
    returnType: xmlSchemaTypePtr
    signature: 'static xmlSchemaTypePtr xmlSchemaParseComplexType(xmlSchemaParserCtxtPtr
      ctxt, xmlSchemaPtr schema, xmlNodePtr node, int topLevel) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetType
      Src: /src/libxml2/xmlschemas.c:12912,1
    - Dst: xmlSchemaGetElem
      Src: /src/libxml2/xmlschemas.c:12930,1
    - Dst: xmlSchemaPResCompAttrErr
      Src: /src/libxml2/xmlschemas.c:12915,1
    - Dst: xmlSchemaPResCompAttrErr
      Src: /src/libxml2/xmlschemas.c:12933,1
    - Dst: xmlSchemaResolveElementReferences
      Src: /src/libxml2/xmlschemas.c:12939,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:12958,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:12973,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:12944,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 2
    argNames:
    - elemDecl
    - ctxt
    argTypes:
    - xmlSchemaElementPtr
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 12974
      start: 12896
    functionDepth: 0
    functionLinenumber: 12896
    functionLinenumberEnd: 12974
    functionName: xmlSchemaResolveElementReferences
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_SUBST_HEAD
    - xmlSchemaPResCompAttrErr
    - xmlSchemaGetBuiltInType
    - xmlSchemaGetType
    - xmlSchemaResolveElementReferences
    - xmlSchemaGetElem
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaResolveElementReferences(xmlSchemaElementPtr
      elemDecl,\t\t\t\t xmlSchemaParserCtxtPtr ctxt) "
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - file
    - line
    argTypes:
    - void*
    - char**
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 28316
      start: 28294
    functionDepth: 0
    functionLinenumber: 28294
    functionLinenumberEnd: 28316
    functionName: xmlSchemaValidateStreamLocator
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaValidateStreamLocator(void *ctx, const char **file,
      unsigned long *line) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCreateVCtxtOnPCtxt
      Src: /src/libxml2/xmlschemas.c:18451,1
    - Dst: xmlSchemaCheckFacet
      Src: /src/libxml2/xmlschemas.c:18456,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - typeDecl
    - pctxt
    argTypes:
    - xmlSchemaTypePtr
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 18467
      start: 18433
    functionDepth: 0
    functionLinenumber: 18433
    functionLinenumberEnd: 18467
    functionName: xmlSchemaCheckFacetValues
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaCheckFacet
    - xmlSchemaCreateVCtxtOnPCtxt
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckFacetValues(xmlSchemaTypePtr typeDecl,\t\t\t
      xmlSchemaParserCtxtPtr pctxt) "
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaPValAttrNodeQName
      Src: /src/libxml2/xmlschemas.c:8270,1
    - Dst: xmlSchemaPCustomAttrErr
      Src: /src/libxml2/xmlschemas.c:8296,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:8389,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:8465,1
    - Dst: xmlSchemaGetProp
      Src: /src/libxml2/xmlschemas.c:8484,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:8576,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8504,1
    - Dst: xmlGetMaxOccurs
      Src: /src/libxml2/xmlschemas.c:8253,1
    - Dst: xmlSchemaNewQNameRef
      Src: /src/libxml2/xmlschemas.c:8321,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:8485,1
    - Dst: return
      Src: /src/libxml2/xmlschemas.c:8569,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:8476,1
    - Dst: xmlSchemaParseComplexType
      Src: /src/libxml2/xmlschemas.c:8517,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:8226,1
    - Dst: xmlSchemaPValAttrNode
      Src: /src/libxml2/xmlschemas.c:8342,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8356,1
    - Dst: xmlSchemaAddElement
      Src: /src/libxml2/xmlschemas.c:8366,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:8526,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:8396,1
    - Dst: xmlGetMinOccurs
      Src: /src/libxml2/xmlschemas.c:8252,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:8436,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8376,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:8487,1
    - Dst: xmlSchemaParseSimpleType
      Src: /src/libxml2/xmlschemas.c:8532,1
    - Dst: xmlGetBooleanProp
      Src: /src/libxml2/xmlschemas.c:8473,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8377,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:8447,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:8431,1
    - Dst: xmlSchemaPValAttrBlockFinal
      Src: /src/libxml2/xmlschemas.c:8460,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8287,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8400,1
    - Dst: xmlSchemaPValAttrBlockFinal
      Src: /src/libxml2/xmlschemas.c:8432,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8536,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:8424,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8290,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8303,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:8343,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8380,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:8555,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8289,1
    - Dst: WXS_ADD_PENDING
      Src: /src/libxml2/xmlschemas.c:8331,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8385,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8393,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:8459,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:8511,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8543,1
    - Dst: xmlSchemaParseIDC
      Src: /src/libxml2/xmlschemas.c:8544,1
    - Dst: xmlSchemaPValAttrQName
      Src: /src/libxml2/xmlschemas.c:8416,1
    - Dst: xmlSchemaPSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:8357,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8378,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8386,1
    - Dst: xmlGetBooleanProp
      Src: /src/libxml2/xmlschemas.c:8419,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:8402,1
    - Dst: xmlSchemaCheckReference
      Src: /src/libxml2/xmlschemas.c:8272,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8537,1
    - Dst: xmlSchemaParseIDC
      Src: /src/libxml2/xmlschemas.c:8538,1
    - Dst: xmlSchemaFreeAnnot
      Src: /src/libxml2/xmlschemas.c:8582,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8519,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8381,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8392,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:8241,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:8351,1
    - Dst: xmlSchemaGetNodeContent
      Src: /src/libxml2/xmlschemas.c:8353,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8354,1
    - Dst: xmlSchemaPValAttrNodeQName
      Src: /src/libxml2/xmlschemas.c:8478,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8540,1
    - Dst: xmlSchemaParseIDC
      Src: /src/libxml2/xmlschemas.c:8541,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:8532,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:8238,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8240,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:8227,1
    - Dst: xmlSchemaPMutualExclAttrErr
      Src: /src/libxml2/xmlschemas.c:8277,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8394,1
    - Dst: xmlSchemaPCheckParticleCorrect_2
      Src: /src/libxml2/xmlschemas.c:8254,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8288,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:8313,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8379,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8387,1
    - Dst: xmlSchemaCheckReference
      Src: /src/libxml2/xmlschemas.c:8481,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8536,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8535,1
    - Dst: xmlSchemaAddParticle
      Src: /src/libxml2/xmlschemas.c:8255,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8286,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:8304,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:8517,1
    - Dst: xmlSchemaPMissingAttrErr
      Src: /src/libxml2/xmlschemas.c:8230,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8382,1
    - Dst: xmlSchemaPMutualExclAttrErr
      Src: /src/libxml2/xmlschemas.c:8493,1
    CyclomaticComplexity: 95
    EdgeCount: 95
    ICount: 270
    argCount: 5
    argNames:
    - ctxt
    - schema
    - node
    - isElemRef
    - topLevel
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 8585
      start: 8201
    functionDepth: 0
    functionLinenumber: 8201
    functionLinenumberEnd: 8585
    functionName: xmlSchemaParseElement
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPValAttrQName
    - WXS_ADD_PENDING
    - xmlGetMaxOccurs
    - xmlSchemaParseAnnotation
    - xmlSchemaPCustomAttrErr
    - WXS_ELEM_TYPEDEF
    - xmlSchemaGetBuiltInType
    - xmlSchemaAddParticle
    - xmlGetBooleanProp
    - xmlSchemaPValAttrNode
    - xmlSchemaPValAttrID
    - xmlSchemaParseComplexType
    - xmlSchemaPValAttrBlockFinal
    - xmlSchemaPSimpleTypeErr
    - xmlSchemaGetProp
    - xmlSchemaPIllegalAttrErr
    - xmlGetMinOccurs
    - xmlSchemaPCheckParticleCorrect_2
    - xmlSchemaPValAttrNodeQName
    - IS_SCHEMA
    - xmlSchemaCheckReference
    - xmlSchemaNewQNameRef
    - xmlSchemaAddElement
    - xmlSchemaParseIDC
    - FREE_AND_NULL
    - xmlSchemaPContentErr
    - xmlSchemaGetPropNode
    - xmlSchemaFreeAnnot
    - xmlSchemaGetNodeContent
    - xmlSchemaPMutualExclAttrErr
    - xmlStrEqual
    - return
    - xmlSchemaPMissingAttrErr
    - xmlSchemaParseSimpleType
    linkageType: ''
    returnType: xmlSchemaBasicItemPtr
    signature: 'static xmlSchemaBasicItemPtr xmlSchemaParseElement(xmlSchemaParserCtxtPtr
      ctxt, xmlSchemaPtr schema, xmlNodePtr node, int *isElemRef, int topLevel) '
  - BBCount: 138
    BranchProfiles: []
    Callsites:
    - Dst: FACET_RESTR_ERR
      Src: /src/libxml2/xmlschemas.c:16992,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17120,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17142,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17158,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17201,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17213,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17221,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17225,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17239,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17256,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17285,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:17422,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17252,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17309,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17021,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17017,1
    - Dst: FACET_RESTR_MUTUAL_ERR
      Src: /src/libxml2/xmlschemas.c:17003,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17065,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17075,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17104,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17069,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17133,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17184,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17234,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17338,1
    - Dst: FACET_RESTR_ERR
      Src: /src/libxml2/xmlschemas.c:17380,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17320,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:17404,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17209,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17293,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:17406,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17046,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17050,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17115,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17111,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17146,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17154,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17166,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17170,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17175,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17197,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17264,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17297,1
    - Dst: FACET_RESTR_MUTUAL_ERR
      Src: /src/libxml2/xmlschemas.c:17009,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17032,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17036,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17100,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17088,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17079,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17092,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17124,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17129,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17179,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17188,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17268,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17276,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17280,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17289,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17342,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17243,1
    - Dst: xmlSchemaDeriveFacetErr
      Src: /src/libxml2/xmlschemas.c:17324,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17230,1
    - Dst: xmlSchemaCompareValues
      Src: /src/libxml2/xmlschemas.c:17305,1
    CyclomaticComplexity: 196
    EdgeCount: 196
    ICount: 317
    argCount: 2
    argNames:
    - pctxt
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 17425
      start: 16889
    functionDepth: 0
    functionLinenumber: 16889
    functionLinenumberEnd: 17425
    functionName: xmlSchemaDeriveAndValidateFacets
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaDeriveFacetErr
    - xmlSchemaCompareValues
    - FACET_RESTR_MUTUAL_ERR
    - xmlSchemaPErrMemory
    - PERROR_INT
    - xmlMalloc
    - FACET_RESTR_ERR
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaDeriveAndValidateFacets(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t\t xmlSchemaTypePtr type) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WXS_MODELGROUP_PARTICLE
      Src: /src/libxml2/xmlschemas.c:18590,1
    - Dst: WXS_MODELGROUPDEF_MODEL
      Src: /src/libxml2/xmlschemas.c:18600,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18600,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18594,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18593,1
    - Dst: WXS_MODELGROUPDEF_MODEL
      Src: /src/libxml2/xmlschemas.c:18612,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18612,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18604,1
    - Dst: WXS_PARTICLE_TERM
      Src: /src/libxml2/xmlschemas.c:18611,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - mg
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaModelGroupPtr
    constantsTouched: []
    func_position:
      end: 18616
      start: 18585
    functionDepth: 0
    functionLinenumber: 18585
    functionLinenumberEnd: 18616
    functionName: xmlSchemaModelGroupToModelGroupDefFixup
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_MODELGROUPDEF_MODEL
    - WXS_MODELGROUP_PARTICLE
    - WXS_PARTICLE_TERM
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaModelGroupToModelGroupDefFixup( xmlSchemaParserCtxtPtr
      ctxt ATTRIBUTE_UNUSED, xmlSchemaModelGroupPtr mg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - vctxt
    - f
    - ctxt
    argTypes:
    - xmlSchemaValidCtxt*
    - xmlSchemaValidityLocatorFunc
    - void*
    constantsTouched: []
    func_position:
      end: 28283
      start: 28275
    functionDepth: 0
    functionLinenumber: 28275
    functionLinenumberEnd: 28283
    functionName: xmlSchemaValidateSetLocator
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void xmlSchemaValidateSetLocator(xmlSchemaValidCtxt *vctxt, xmlSchemaValidityLocatorFunc
      f,\t\t\t void *ctxt) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - ATTRIBUTE_UNUSED
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 27981
      start: 27974
    functionDepth: 0
    functionLinenumber: 27974
    functionLinenumberEnd: 27981
    functionName: warningSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void warningSplit(void *ctx, const char *msg ATTRIBUTE_UNUSED,
      ...) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetType
      Src: /src/libxml2/xmlschemas.c:13011,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:13012,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:13025,1
    - Dst: xmlSchemaPResCompAttrErr
      Src: /src/libxml2/xmlschemas.c:13013,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:13037,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:13039,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - ctxt
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 13052
      start: 12985
    functionDepth: 0
    functionLinenumber: 12985
    functionLinenumberEnd: 13052
    functionName: xmlSchemaResolveUnionMemberTypes
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaPResCompAttrErr
    - xmlSchemaGetType
    - WXS_IS_SIMPLE
    - xmlSchemaPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaResolveUnionMemberTypes(xmlSchemaParserCtxtPtr
      ctxt,\t\t\t\t xmlSchemaTypePtr type) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 27968
      start: 27961
    functionDepth: 0
    functionLinenumber: 27961
    functionLinenumberEnd: 27968
    functionName: commentSplit
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void commentSplit(void *ctx, const xmlChar *value) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCheckAttrGroupCircularRecur
      Src: /src/libxml2/xmlschemas.c:18699,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:18706,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:18711,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:18710,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:18708,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - attrGr
    - ctxt
    argTypes:
    - xmlSchemaAttributeGroupPtr
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 18722
      start: 18674
    functionDepth: 0
    functionLinenumber: 18674
    functionLinenumberEnd: 18722
    functionName: xmlSchemaCheckAttrGroupCircular
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPCustomErr
    - xmlSchemaCheckAttrGroupCircularRecur
    - xmlSchemaGetComponentQName
    - FREE_AND_NULL
    - WXS_ITEM_NODE
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckAttrGroupCircular(xmlSchemaAttributeGroupPtr
      attrGr,\t\t\t\txmlSchemaParserCtxtPtr ctxt) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/xmlschemas.c:4525,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:4531,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:4528,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:4527,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:4529,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ctxt
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 4533
      start: 4519
    functionDepth: 0
    functionLinenumber: 4519
    functionLinenumberEnd: 4533
    functionName: xmlSchemaGetNodeContent
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictLookup
    - xmlStrdup
    - xmlSchemaPErrMemory
    - xmlNodeGetContent
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlSchemaGetNodeContent(xmlSchemaParserCtxtPtr
      ctxt, xmlNodePtr node) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7632,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7635,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - value
    - flags
    - flagQualified
    argTypes:
    - xmlChar*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 7639
      start: 7627
    functionDepth: 0
    functionLinenumber: 7627
    functionLinenumberEnd: 7639
    functionName: xmlSchemaPValAttrFormDefault
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaPValAttrFormDefault(const xmlChar *value,\t\t\t
      int *flags,\t\t\t int flagQualified) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/xmlschemas.c:4538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 4539
      start: 4535
    functionDepth: 0
    functionLinenumber: 4535
    functionLinenumberEnd: 4539
    functionName: xmlSchemaGetNodeContentNoDict
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlNodeGetContent
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlSchemaGetNodeContentNoDict(xmlNodePtr node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaParserCtxtCreate
      Src: /src/libxml2/xmlschemas.c:12196,1
    - Dst: xmlDictCreate
      Src: /src/libxml2/xmlschemas.c:12201,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 12203
      start: 12189
    functionDepth: 0
    functionLinenumber: 12189
    functionLinenumberEnd: 12203
    functionName: xmlSchemaNewMemParserCtxt
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlDictCreate
    - xmlSchemaParserCtxtCreate
    linkageType: ''
    returnType: xmlSchemaParserCtxt*
    signature: 'xmlSchemaParserCtxt *xmlSchemaNewMemParserCtxt(const char *buffer,
      int size) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaCheckAttrGroupCircularRecur
      Src: /src/libxml2/xmlschemas.c:18656,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - ctxtGr
    - list
    argTypes:
    - xmlSchemaAttributeGroupPtr
    - xmlSchemaItemListPtr
    constantsTouched: []
    func_position:
      end: 18666
      start: 18626
    functionDepth: 0
    functionLinenumber: 18626
    functionLinenumberEnd: 18666
    functionName: xmlSchemaCheckAttrGroupCircularRecur
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaCheckAttrGroupCircularRecur
    linkageType: ''
    returnType: xmlSchemaQNameRefPtr
    signature: "static xmlSchemaQNameRefPtr xmlSchemaCheckAttrGroupCircularRecur(xmlSchemaAttributeGroupPtr
      ctxtGr,\t\t\t\t xmlSchemaItemListPtr list) "
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19171,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:19207,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19237,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:19267,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:19179,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19194,1
    - Dst: xmlSchemaCheckCOSDerivedOK
      Src: /src/libxml2/xmlschemas.c:19236,1
    - Dst: WXS_IS_SIMPLE
      Src: /src/libxml2/xmlschemas.c:19265,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:19273,1
    - Dst: xmlSchemaParseCheckCOSValidDefault
      Src: /src/libxml2/xmlschemas.c:19305,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:19309,1
    - Dst: xmlSchemaCheckElementDeclComponent
      Src: /src/libxml2/xmlschemas.c:19173,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19170,1
    - Dst: xmlSchemaPCustomErrExt
      Src: /src/libxml2/xmlschemas.c:19201,1
    - Dst: xmlSchemaPCustomErrExt
      Src: /src/libxml2/xmlschemas.c:19241,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:19248,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19250,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:19249,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:19250,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:19266,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:19269,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19163,1
    - Dst: xmlSchemaCheckSubstGroupCircular
      Src: /src/libxml2/xmlschemas.c:19195,1
    - Dst: xmlSchemaGetComponentQName
      Src: /src/libxml2/xmlschemas.c:19206,1
    - Dst: WXS_SUBST_HEAD
      Src: /src/libxml2/xmlschemas.c:19228,1
    - Dst: WXS_ELEM_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:19228,1
    - Dst: WXS_HAS_SIMPLE_CONTENT
      Src: /src/libxml2/xmlschemas.c:19268,1
    - Dst: xmlSchemaPErr
      Src: /src/libxml2/xmlschemas.c:19290,1
    - Dst: xmlHasProp
      Src: /src/libxml2/xmlschemas.c:19299,1
    - Dst: xmlHasProp
      Src: /src/libxml2/xmlschemas.c:19302,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 75
    argCount: 2
    argNames:
    - pctxt
    - elemDecl
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaElementPtr
    constantsTouched: []
    func_position:
      end: 19319
      start: 19158
    functionDepth: 0
    functionLinenumber: 19158
    functionLinenumberEnd: 19319
    functionName: xmlSchemaCheckElemPropsCorrect
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_ELEM_TYPEDEF
    - xmlSchemaCheckSubstGroupCircular
    - WXS_SUBST_HEAD
    - xmlSchemaPCustomErr
    - WXS_HAS_SIMPLE_CONTENT
    - xmlSchemaCheckCOSDerivedOK
    - xmlSchemaIsDerivedFromBuiltInType
    - xmlSchemaParseCheckCOSValidDefault
    - xmlHasProp
    - xmlSchemaPCustomErrExt
    - xmlSchemaCheckElementDeclComponent
    - xmlSchemaGetComponentQName
    - WXS_IS_SIMPLE
    - xmlSchemaPErr
    - PERROR_INT
    - WXS_IS_COMPLEX
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckElemPropsCorrect(xmlSchemaParserCtxtPtr pctxt,\t\t\t
      xmlSchemaElementPtr elemDecl) "
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8071,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:8079,1
    - Dst: xmlSchemaNewQNameRef
      Src: /src/libxml2/xmlschemas.c:8120,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:8180,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8074,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8078,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:8072,1
    - Dst: xmlSchemaPValAttrNodeQName
      Src: /src/libxml2/xmlschemas.c:8124,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8136,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8171,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:8075,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:8087,1
    - Dst: xmlSchemaPMissingAttrErr
      Src: /src/libxml2/xmlschemas.c:8089,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:8096,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:8110,1
    - Dst: xmlSchemaPMissingAttrErr
      Src: /src/libxml2/xmlschemas.c:8112,1
    - Dst: xmlSchemaAddIDC
      Src: /src/libxml2/xmlschemas.c:8100,1
    - Dst: xmlSchemaParseIDCSelectorAndField
      Src: /src/libxml2/xmlschemas.c:8151,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8157,1
    - Dst: xmlSchemaParseIDCSelectorAndField
      Src: /src/libxml2/xmlschemas.c:8159,1
    - Dst: xmlSchemaPValAttrNode
      Src: /src/libxml2/xmlschemas.c:8094,1
    - Dst: xmlSchemaCheckReference
      Src: /src/libxml2/xmlschemas.c:8128,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:8105,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:8137,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:8141,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:8150,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:8173,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 81
    argCount: 5
    argNames:
    - ctxt
    - schema
    - node
    - idcCategory
    - targetNamespace
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    - xmlSchemaTypeType
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 8187
      start: 8052
    functionDepth: 0
    functionLinenumber: 8052
    functionLinenumberEnd: 8187
    functionName: xmlSchemaParseIDC
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetBuiltInType
    - xmlSchemaAddIDC
    - xmlSchemaPValAttrNodeQName
    - IS_SCHEMA
    - xmlSchemaParseIDCSelectorAndField
    - xmlSchemaPValAttrNode
    - xmlSchemaPContentErr
    - xmlSchemaPValAttrID
    - xmlStrEqual
    - xmlSchemaCheckReference
    - xmlSchemaNewQNameRef
    - xmlSchemaPMissingAttrErr
    - xmlSchemaParseAnnotation
    - xmlSchemaPIllegalAttrErr
    - xmlSchemaGetPropNode
    linkageType: ''
    returnType: xmlSchemaIDCPtr
    signature: "static xmlSchemaIDCPtr xmlSchemaParseIDC(xmlSchemaParserCtxtPtr ctxt,\t\t
      xmlSchemaPtr schema,\t\t xmlNodePtr node,\t\t xmlSchemaTypeType idcCategory,\t\t
      const xmlChar *targetNamespace) "
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9506,1
    - Dst: xmlSchemaFreeAnnot
      Src: /src/libxml2/xmlschemas.c:9513,1
    - Dst: HSTOP
      Src: /src/libxml2/xmlschemas.c:9518,1
    - Dst: HSTOP
      Src: /src/libxml2/xmlschemas.c:9532,1
    - Dst: HSTOP
      Src: /src/libxml2/xmlschemas.c:9525,1
    - Dst: xmlSchemaParseModelGroupDefinition
      Src: /src/libxml2/xmlschemas.c:9559,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9561,1
    - Dst: xmlSchemaFreeAnnot
      Src: /src/libxml2/xmlschemas.c:9581,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9558,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9504,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9505,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:9509,1
    - Dst: xmlSchemaParseImport
      Src: /src/libxml2/xmlschemas.c:9516,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9546,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9543,1
    - Dst: xmlSchemaParseComplexType
      Src: /src/libxml2/xmlschemas.c:9544,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9521,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9528,1
    - Dst: xmlSchemaParseAttributeGroupDefinition
      Src: /src/libxml2/xmlschemas.c:9556,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9508,1
    - Dst: xmlSchemaParseGlobalAttribute
      Src: /src/libxml2/xmlschemas.c:9553,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9555,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:9565,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9573,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:9577,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9507,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9514,1
    - Dst: xmlSchemaParseRedefine
      Src: /src/libxml2/xmlschemas.c:9530,1
    - Dst: xmlSchemaParseInclude
      Src: /src/libxml2/xmlschemas.c:9523,1
    - Dst: xmlSchemaParseSimpleType
      Src: /src/libxml2/xmlschemas.c:9547,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9549,1
    - Dst: xmlSchemaParseElement
      Src: /src/libxml2/xmlschemas.c:9550,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:9552,1
    - Dst: xmlSchemaParseNotation
      Src: /src/libxml2/xmlschemas.c:9562,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 89
    argCount: 3
    argNames:
    - ctxt
    - schema
    - nodes
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 9592
      start: 9491
    functionDepth: 0
    functionLinenumber: 9491
    functionLinenumberEnd: 9592
    functionName: xmlSchemaParseSchemaTopLevel
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaParseNotation
    - xmlSchemaFreeAnnot
    - xmlSchemaParseElement
    - xmlSchemaParseRedefine
    - xmlSchemaParseModelGroupDefinition
    - IS_SCHEMA
    - xmlSchemaParseAttributeGroupDefinition
    - HSTOP
    - xmlSchemaParseComplexType
    - xmlSchemaParseImport
    - xmlSchemaPContentErr
    - xmlSchemaParseInclude
    - xmlSchemaParseGlobalAttribute
    - xmlSchemaParseAnnotation
    - xmlSchemaParseSimpleType
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaParseSchemaTopLevel(xmlSchemaParserCtxtPtr ctxt,
      xmlSchemaPtr schema, xmlNodePtr nodes) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:16087,1
    - Dst: xmlSchemaCheckCOSSTDerivedOK
      Src: /src/libxml2/xmlschemas.c:16152,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:16166,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:16164,1
    - Dst: xmlSchemaCheckDerivationOKRestriction2to4
      Src: /src/libxml2/xmlschemas.c:16112,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:16168,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:16169,1
    - Dst: xmlSchemaIsParticleEmptiable
      Src: /src/libxml2/xmlschemas.c:16173,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16182,1
    - Dst: xmlSchemaIsParticleEmptiable
      Src: /src/libxml2/xmlschemas.c:16202,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16231,1
    - Dst: WXS_HAS_MIXED_CONTENT
      Src: /src/libxml2/xmlschemas.c:16220,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16211,1
    - Dst: WXS_HAS_MIXED_CONTENT
      Src: /src/libxml2/xmlschemas.c:16225,1
    - Dst: WXS_HAS_MIXED_CONTENT
      Src: /src/libxml2/xmlschemas.c:16225,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16247,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 59
    argCount: 2
    argNames:
    - ctxt
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 16254
      start: 16076
    functionDepth: 0
    functionLinenumber: 16076
    functionLinenumberEnd: 16254
    functionName: xmlSchemaCheckDerivationOKRestriction
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPCustomErr
    - xmlSchemaCheckDerivationOKRestriction2to4
    - xmlSchemaIsParticleEmptiable
    - WXS_HAS_MIXED_CONTENT
    - FREE_AND_NULL
    - xmlSchemaGetComponentDesignation
    - xmlSchemaCheckCOSSTDerivedOK
    - WXS_IS_COMPLEX
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckDerivationOKRestriction(xmlSchemaParserCtxtPtr
      ctxt,\t\t\t\t xmlSchemaTypePtr type) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:16855,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16859,1
    - Dst: xmlSchemaFacetTypeToString
      Src: /src/libxml2/xmlschemas.c:16856,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16857,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16856,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16861,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16863,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16866,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16867,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16868,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16870,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:16872,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16874,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:16880,1
    - Dst: xmlSchemaFacetTypeToString
      Src: /src/libxml2/xmlschemas.c:16868,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 6
    argNames:
    - pctxt
    - facet1
    - facet2
    - lessGreater
    - orEqual
    - ofBase
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaFacetPtr
    - xmlSchemaFacetPtr
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 16881
      start: 16845
    functionDepth: 0
    functionLinenumber: 16845
    functionLinenumberEnd: 16881
    functionName: xmlSchemaDeriveFacetErr
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaFacetTypeToString
    - xmlSchemaPCustomErr
    - xmlStrdup
    - xmlStrcat
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaDeriveFacetErr(xmlSchemaParserCtxtPtr pctxt,\t\t\txmlSchemaFacetPtr
      facet1,\t\t\txmlSchemaFacetPtr facet2,\t\t\tint lessGreater,\t\t\tint orEqual,\t\t\tint
      ofBase) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetCircModelGrDefRef
      Src: /src/libxml2/xmlschemas.c:18547,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:18561,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:18557,1
    - Dst: WXS_ITEM_NODE
      Src: /src/libxml2/xmlschemas.c:18559,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - item
    - ctxt
    argTypes:
    - xmlSchemaModelGroupDefPtr
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 18571
      start: 18530
    functionDepth: 0
    functionLinenumber: 18530
    functionLinenumberEnd: 18571
    functionName: xmlSchemaCheckGroupDefCircular
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetCircModelGrDefRef
    - xmlSchemaPCustomErr
    - WXS_ITEM_NODE
    - xmlSchemaFormatQName
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaCheckGroupDefCircular(xmlSchemaModelGroupDefPtr
      item,\t\t\t xmlSchemaParserCtxtPtr ctxt) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetAttributeDecl
      Src: /src/libxml2/xmlschemas.c:19754,1
    - Dst: xmlSchemaPResCompAttrErr
      Src: /src/libxml2/xmlschemas.c:19757,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ause
    - ctxt
    argTypes:
    - xmlSchemaAttributeUsePtr
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 19766
      start: 19737
    functionDepth: 0
    functionLinenumber: 19737
    functionLinenumberEnd: 19766
    functionName: xmlSchemaResolveAttrUseReferences
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetAttributeDecl
    - xmlSchemaPResCompAttrErr
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaResolveAttrUseReferences(xmlSchemaAttributeUsePtr
      ause,\t\t\t\t xmlSchemaParserCtxtPtr ctxt) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:9600,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:9605,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:9602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 9607
      start: 9594
    functionDepth: 0
    functionLinenumber: 9594
    functionLinenumberEnd: 9607
    functionName: xmlSchemaSchemaRelationCreate
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    - xmlSchemaPErrMemory
    linkageType: ''
    returnType: xmlSchemaSchemaRelationPtr
    signature: 'static xmlSchemaSchemaRelationPtr xmlSchemaSchemaRelationCreate(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:19681,1
    - Dst: xmlSchemaGetValType
      Src: /src/libxml2/xmlschemas.c:19681,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:19682,1
    - Dst: xmlSchemaGetPrimitiveType
      Src: /src/libxml2/xmlschemas.c:19683,1
    - Dst: xmlSchemaGetValType
      Src: /src/libxml2/xmlschemas.c:19682,1
    - Dst: xmlSchemaGetPrimitiveType
      Src: /src/libxml2/xmlschemas.c:19684,1
    - Dst: WXS_IS_ANY_SIMPLE_TYPE
      Src: /src/libxml2/xmlschemas.c:19701,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:19702,1
    - Dst: xmlSchemaValueGetAsString
      Src: /src/libxml2/xmlschemas.c:19703,1
    - Dst: xmlSchemaValueGetAsString
      Src: /src/libxml2/xmlschemas.c:19704,1
    - Dst: xmlSchemaValueGetNext
      Src: /src/libxml2/xmlschemas.c:19723,1
    - Dst: xmlSchemaCompareValuesWhtsp
      Src: /src/libxml2/xmlschemas.c:19707,1
    - Dst: xmlSchemaValueGetNext
      Src: /src/libxml2/xmlschemas.c:19720,1
    - Dst: xmlSchemaValueGetNext
      Src: /src/libxml2/xmlschemas.c:19718,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - xmlSchemaValPtr
    - xmlSchemaValPtr
    constantsTouched: []
    func_position:
      end: 19729
      start: 19672
    functionDepth: 0
    functionLinenumber: 19672
    functionLinenumberEnd: 19729
    functionName: xmlSchemaAreValuesEqual
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetPrimitiveType
    - xmlSchemaGetBuiltInType
    - xmlSchemaValueGetAsString
    - xmlSchemaValueGetNext
    - xmlStrEqual
    - xmlSchemaGetValType
    - WXS_IS_ANY_SIMPLE_TYPE
    - xmlSchemaCompareValuesWhtsp
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaAreValuesEqual(xmlSchemaValPtr x,\t\t xmlSchemaValPtr
      y) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetNoNsProp
      Src: /src/libxml2/xmlschemas.c:4556,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:4560,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:4559,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 3
    argNames:
    - ctxt
    - node
    - name
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlNodePtr
    - char*
    constantsTouched: []
    func_position:
      end: 4562
      start: 4549
    functionDepth: 0
    functionLinenumber: 4549
    functionLinenumberEnd: 4562
    functionName: xmlSchemaGetProp
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictLookup
    - xmlGetNoNsProp
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlSchemaGetProp(xmlSchemaParserCtxtPtr ctxt,
      xmlNodePtr node, const char *name) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7675,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:7695,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7703,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xmlschemas.c:7702,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:7698,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7709,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7715,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7721,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:7727,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:7736,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 79
    argCount: 8
    argNames:
    - value
    - flags
    - flagAll
    - flagExtension
    - flagRestriction
    - flagSubstitution
    - flagList
    - flagUnion
    argTypes:
    - xmlChar*
    - int*
    - int
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 7742
      start: 7656
    functionDepth: 0
    functionLinenumber: 7656
    functionLinenumberEnd: 7742
    functionName: xmlSchemaPValAttrBlockFinal
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrEqual
    - xmlStrndup
    - IS_BLANK_CH
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaPValAttrBlockFinal(const xmlChar *value,\t\t\t
      int *flags,\t\t\t int flagAll,\t\t\t int flagExtension,\t\t\t int flagRestriction,\t\t\t
      int flagSubstitution,\t\t\t int flagList,\t\t\t int flagUnion) "
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:15834,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:15878,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:15879,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15840,1
    - Dst: WXS_ATTRUSE_DECL_NAME
      Src: /src/libxml2/xmlschemas.c:15877,1
    - Dst: WXS_ATTRUSE_DECL_TNS
      Src: /src/libxml2/xmlschemas.c:15880,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:15881,1
    - Dst: WXS_ATTRUSE_TYPEDEF
      Src: /src/libxml2/xmlschemas.c:15882,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:15901,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:15929,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:15975,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16001,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16047,1
    - Dst: xmlSchemaPCustomErr
      Src: /src/libxml2/xmlschemas.c:16035,1
    - Dst: xmlSchemaCheckCOSNSSubset
      Src: /src/libxml2/xmlschemas.c:15932,1
    - Dst: xmlSchemaGetComponentDesignation
      Src: /src/libxml2/xmlschemas.c:15942,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 72
    argCount: 2
    argNames:
    - ctxt
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 16056
      start: 15821
    functionDepth: 0
    functionLinenumber: 15821
    functionLinenumberEnd: 16056
    functionName: xmlSchemaCheckCOSCTExtends
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaPCustomErr
    - WXS_ATTRUSE_DECL_NAME
    - WXS_ATTRUSE_TYPEDEF
    - xmlSchemaCheckCOSNSSubset
    - WXS_ATTRUSE_DECL_TNS
    - xmlSchemaGetComponentDesignation
    - WXS_IS_COMPLEX
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaCheckCOSCTExtends(xmlSchemaParserCtxtPtr ctxt,\t\t\t
      xmlSchemaTypePtr type) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeAnnot
      Src: /src/libxml2/xmlschemas.c:3958,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - item
    argTypes:
    - xmlSchemaModelGroupPtr
    constantsTouched: []
    func_position:
      end: 3960
      start: 3954
    functionDepth: 0
    functionLinenumber: 3954
    functionLinenumberEnd: 3960
    functionName: xmlSchemaFreeModelGroup
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaFreeAnnot
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaFreeModelGroup(xmlSchemaModelGroupPtr item) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaValidatorPushElem
      Src: /src/libxml2/xmlschemas.c:26841,1
    - Dst: xmlSAX2GetLineNumber
      Src: /src/libxml2/xmlschemas.c:26850,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlschemas.c:26871,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26842,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:26874,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlschemas.c:26877,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:26879,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:26918,1
    - Dst: xmlSchemaVErrMemory
      Src: /src/libxml2/xmlschemas.c:26920,1
    - Dst: xmlSchemaValidatorPushAttribute
      Src: /src/libxml2/xmlschemas.c:26941,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26945,1
    - Dst: xmlStopParser
      Src: /src/libxml2/xmlschemas.c:26968,1
    - Dst: xmlSchemaValidateElem
      Src: /src/libxml2/xmlschemas.c:26954,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26957,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 114
    argCount: 9
    argNames:
    - ctx
    - localname
    - ATTRIBUTE_UNUSED
    - URI
    - nb_namespaces
    - namespaces
    - nb_attributes
    - ATTRIBUTE_UNUSED
    - attributes
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - int
    - xmlChar**
    - int
    - int
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 26969
      start: 26813
    functionDepth: 0
    functionLinenumber: 26813
    functionLinenumberEnd: 26969
    functionName: xmlSchemaSAXHandleStartElementNs
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaValidatorPushAttribute
    - xmlSchemaValidateElem
    - xmlSchemaValidatorPushElem
    - xmlGrowCapacity
    - xmlRealloc
    - xmlSchemaVErrMemory
    - xmlStopParser
    - xmlMalloc
    - VERROR_INT
    - xmlSAX2GetLineNumber
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaSAXHandleStartElementNs(void *ctx,\t\t\t\t const
      xmlChar * localname,\t\t\t\t const xmlChar * prefix ATTRIBUTE_UNUSED,\t\t\t\t
      const xmlChar * URI,\t\t\t\t int nb_namespaces,\t\t\t\t const xmlChar ** namespaces,\t\t\t\t
      int nb_attributes,\t\t\t\t int nb_defaulted ATTRIBUTE_UNUSED,\t\t\t\t const
      xmlChar ** attributes) "
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeType
      Src: /src/libxml2/xmlschemas.c:3979,1
    - Dst: xmlSchemaFreeAttributeUse
      Src: /src/libxml2/xmlschemas.c:3985,1
    - Dst: xmlSchemaFreeAttribute
      Src: /src/libxml2/xmlschemas.c:3982,1
    - Dst: xmlSchemaFreeElement
      Src: /src/libxml2/xmlschemas.c:3992,1
    - Dst: xmlSchemaFreeAttributeUseProhib
      Src: /src/libxml2/xmlschemas.c:3988,1
    - Dst: xmlSchemaFreeAnnot
      Src: /src/libxml2/xmlschemas.c:3996,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:3997,1
    - Dst: xmlSchemaFreeModelGroup
      Src: /src/libxml2/xmlschemas.c:4002,1
    - Dst: xmlSchemaFreeAttributeGroup
      Src: /src/libxml2/xmlschemas.c:4005,1
    - Dst: xmlSchemaFreeModelGroupDef
      Src: /src/libxml2/xmlschemas.c:4009,1
    - Dst: xmlSchemaFreeQNameRef
      Src: /src/libxml2/xmlschemas.c:4025,1
    - Dst: xmlSchemaFreeWildcard
      Src: /src/libxml2/xmlschemas.c:4014,1
    - Dst: xmlSchemaFreeNotation
      Src: /src/libxml2/xmlschemas.c:4022,1
    - Dst: xmlSchemaFreeIDC
      Src: /src/libxml2/xmlschemas.c:4019,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 27
    argCount: 1
    argNames:
    - list
    argTypes:
    - xmlSchemaItemListPtr
    constantsTouched: []
    func_position:
      end: 4034
      start: 3962
    functionDepth: 0
    functionLinenumber: 3962
    functionLinenumberEnd: 4034
    functionName: xmlSchemaComponentListFree
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaFreeAnnot
    - xmlSchemaFreeElement
    - xmlSchemaFreeModelGroupDef
    - xmlSchemaFreeIDC
    - xmlSchemaFreeNotation
    - xmlSchemaFreeAttribute
    - xmlSchemaFreeWildcard
    - xmlSchemaFreeModelGroup
    - xmlSchemaFreeAttributeUseProhib
    - xmlSchemaFreeAttributeUse
    - xmlSchemaFreeAttributeGroup
    - xmlSchemaFreeQNameRef
    - xmlSchemaFreeType
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaComponentListFree(xmlSchemaItemListPtr list) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:26993,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:27001,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26995,1
    - Dst: xmlSchemaValidatorPopElem
      Src: /src/libxml2/xmlschemas.c:26998,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:26994,1
    - Dst: xmlStopParser
      Src: /src/libxml2/xmlschemas.c:27011,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 27012
      start: 26971
    functionDepth: 0
    functionLinenumber: 26971
    functionLinenumberEnd: 27012
    functionName: xmlSchemaSAXHandleEndElementNs
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaValidatorPopElem
    - xmlStrEqual
    - xmlStopParser
    - VERROR_INT
    linkageType: ''
    returnType: void
    signature: "static void xmlSchemaSAXHandleEndElementNs(void *ctx,\t\t\t const
      xmlChar * localname ATTRIBUTE_UNUSED,\t\t\t const xmlChar * prefix ATTRIBUTE_UNUSED,\t\t\t
      const xmlChar * URI ATTRIBUTE_UNUSED) "
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: WXS_COMP_NAME
      Src: /src/libxml2/xmlschemas.c:4848,1
    - Dst: WXS_COMP_TNS
      Src: /src/libxml2/xmlschemas.c:4849,1
    - Dst: WXS_COMP_TNS
      Src: /src/libxml2/xmlschemas.c:4858,1
    - Dst: WXS_COMP_NAME
      Src: /src/libxml2/xmlschemas.c:4856,1
    - Dst: WXS_COMP_NAME
      Src: /src/libxml2/xmlschemas.c:4865,1
    - Dst: WXS_COMP_TNS
      Src: /src/libxml2/xmlschemas.c:4867,1
    - Dst: xmlSchemaFindRedefCompInGraph
      Src: /src/libxml2/xmlschemas.c:4894,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 47
    argCount: 4
    argNames:
    - bucket
    - type
    - name
    - nsName
    argTypes:
    - xmlSchemaBucketPtr
    - xmlSchemaTypeType
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 4904
      start: 4825
    functionDepth: 0
    functionLinenumber: 4825
    functionLinenumberEnd: 4904
    functionName: xmlSchemaFindRedefCompInGraph
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaFindRedefCompInGraph
    - WXS_COMP_TNS
    - WXS_COMP_NAME
    linkageType: ''
    returnType: xmlSchemaBasicItemPtr
    signature: "static xmlSchemaBasicItemPtr xmlSchemaFindRedefCompInGraph(xmlSchemaBucketPtr
      bucket,\t\t\t xmlSchemaTypeType type,\t\t\t const xmlChar *name,\t\t\t const
      xmlChar *nsName) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:13066,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:13074,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:13076,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - type
    - valType
    argTypes:
    - xmlSchemaTypePtr
    - int
    constantsTouched: []
    func_position:
      end: 13077
      start: 13061
    functionDepth: 0
    functionLinenumber: 13061
    functionLinenumberEnd: 13077
    functionName: xmlSchemaIsDerivedFromBuiltInType
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaIsDerivedFromBuiltInType
    - WXS_IS_COMPLEX
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaIsDerivedFromBuiltInType(xmlSchemaTypePtr type,
      int valType) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - ctxt
    - loader
    - data
    argTypes:
    - xmlSchemaParserCtxt*
    - xmlResourceLoader
    - void*
    constantsTouched: []
    func_position:
      end: 21058
      start: 21051
    functionDepth: 0
    functionLinenumber: 21051
    functionLinenumberEnd: 21058
    functionName: xmlSchemaSetResourceLoader
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlSchemaSetResourceLoader(xmlSchemaParserCtxt *ctxt, xmlResourceLoader
      loader, void *data) '
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - xmlSchemaTypeType
    constantsTouched: []
    func_position:
      end: 21099
      start: 21067
    functionDepth: 0
    functionLinenumber: 21067
    functionLinenumberEnd: 21099
    functionName: xmlSchemaFacetTypeToString
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *xmlSchemaFacetTypeToString(xmlSchemaTypeType
      type) '
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:24081,1
    - Dst: xmlSchemaValidateNotation
      Src: /src/libxml2/xmlschemas.c:24165,1
    - Dst: xmlSchemaValPredefTypeNodeNoNorm
      Src: /src/libxml2/xmlschemas.c:24175,1
    - Dst: xmlSchemaValidateFacets
      Src: /src/libxml2/xmlschemas.c:24200,1
    - Dst: NORMALIZE
      Src: /src/libxml2/xmlschemas.c:24232,1
    - Dst: WXS_LIST_ITEMTYPE
      Src: /src/libxml2/xmlschemas.c:24237,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:24256,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:24289,1
    - Dst: xmlSchemaSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:24302,1
    - Dst: xmlSchemaValidateFacets
      Src: /src/libxml2/xmlschemas.c:24363,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:24385,1
    - Dst: xmlSchemaSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:24376,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:24110,1
    - Dst: NORMALIZE
      Src: /src/libxml2/xmlschemas.c:24119,1
    - Dst: xmlSchemaValidateQName
      Src: /src/libxml2/xmlschemas.c:24149,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:24217,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:24191,1
    - Dst: xmlSchemaSimpleTypeErr
      Src: /src/libxml2/xmlschemas.c:24216,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:24243,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:24251,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:24254,1
    - Dst: xmlSchemaValidateFacets
      Src: /src/libxml2/xmlschemas.c:24284,1
    - Dst: xmlSchemaValPredefTypeNodeNoNorm
      Src: /src/libxml2/xmlschemas.c:24172,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:24205,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:24187,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xmlschemas.c:24247,1
    - Dst: xmlSchemaValueAppend
      Src: /src/libxml2/xmlschemas.c:24264,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:24270,1
    - Dst: NORMALIZE
      Src: /src/libxml2/xmlschemas.c:24301,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:24304,1
    - Dst: xmlSchemaGetUnionSimpleTypeMemberTypes
      Src: /src/libxml2/xmlschemas.c:24322,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:24336,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24380,1
    - Dst: NORMALIZE
      Src: /src/libxml2/xmlschemas.c:24362,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:24368,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:24130,1
    - Dst: WXS_IS_ANY_SIMPLE_TYPE
      Src: /src/libxml2/xmlschemas.c:24110,1
    - Dst: xmlSchemaValidateNotation
      Src: /src/libxml2/xmlschemas.c:24143,1
    - Dst: xmlSchemaValPredefTypeNodeNoNorm
      Src: /src/libxml2/xmlschemas.c:24155,1
    - Dst: xmlSchemaValPredefTypeNodeNoNorm
      Src: /src/libxml2/xmlschemas.c:24158,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:24209,1
    - Dst: IS_BLANK_CH
      Src: /src/libxml2/xmlschemas.c:24240,1
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:24279,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:24324,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:24347,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:24393,1
    - Dst: xmlSchemaFreeValue
      Src: /src/libxml2/xmlschemas.c:24387,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24391,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:24339,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 182
    argCount: 8
    argNames:
    - actxt
    - node
    - type
    - value
    - retVal
    - fireErrors
    - normalize
    - isNormalized
    argTypes:
    - xmlSchemaAbstractCtxtPtr
    - xmlNodePtr
    - xmlSchemaTypePtr
    - xmlChar*
    - xmlSchemaValPtr*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 24395
      start: 24056
    functionDepth: 0
    functionLinenumber: 24056
    functionLinenumberEnd: 24395
    functionName: xmlSchemaVCheckCVCSimpleType
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaValidateFacets
    - xmlSchemaValueAppend
    - WXS_IS_UNION
    - xmlStrndup
    - xmlSchemaSimpleTypeErr
    - WXS_IS_LIST
    - AERROR_INT
    - xmlSchemaValidateNotation
    - NORMALIZE
    - WXS_IS_ANY_SIMPLE_TYPE
    - xmlFree
    - xmlSchemaValPredefTypeNodeNoNorm
    - xmlSchemaGetUnionSimpleTypeMemberTypes
    - FREE_AND_NULL
    - xmlSchemaValidateQName
    - xmlSchemaFreeValue
    - WXS_LIST_ITEMTYPE
    - IS_BLANK_CH
    - xmlSchemaVCheckCVCSimpleType
    - WXS_IS_ATOMIC
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaVCheckCVCSimpleType(xmlSchemaAbstractCtxtPtr actxt,\t\t\t
      xmlNodePtr node,\t\t\t xmlSchemaTypePtr type,\t\t\t const xmlChar *value,\t\t\t
      xmlSchemaValPtr *retVal,\t\t\t int fireErrors,\t\t\t int normalize,\t\t\t int
      isNormalized) "
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: INODE_NILLED
      Src: /src/libxml2/xmlschemas.c:26248,1
    - Dst: xmlSchemaIsBlank
      Src: /src/libxml2/xmlschemas.c:26275,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26284,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26266,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26254,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xmlschemas.c:26334,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:26336,1
    - Dst: xmlStrlen
      Src: /src/libxml2/xmlschemas.c:26345,1
    - Dst: xmlStrncat
      Src: /src/libxml2/xmlschemas.c:26350,1
    - Dst: xmlStrncatNew
      Src: /src/libxml2/xmlschemas.c:26354,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 53
    argCount: 6
    argNames:
    - vctxt
    - nodeType
    - value
    - len
    - mode
    - consumed
    argTypes:
    - xmlSchemaValidCtxtPtr
    - int
    - xmlChar*
    - int
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 26360
      start: 26232
    functionDepth: 0
    functionLinenumber: 26232
    functionLinenumberEnd: 26360
    functionName: xmlSchemaVPushText
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaIsBlank
    - INODE_NILLED
    - xmlStrndup
    - VERROR
    - xmlStrlen
    - xmlStrncat
    - xmlStrdup
    - xmlStrncatNew
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaVPushText(xmlSchemaValidCtxtPtr vctxt,\t\t int
      nodeType, const xmlChar *value, int len,\t\t int mode, int *consumed) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:21126,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:21131,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:21133,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 1
    argNames:
    - type
    argTypes:
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 21142
      start: 21101
    functionDepth: 0
    functionLinenumber: 21101
    functionLinenumberEnd: 21142
    functionName: xmlSchemaGetWhiteSpaceFacetValue
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_IS_LIST
    - WXS_IS_UNION
    - WXS_IS_ATOMIC
    linkageType: ''
    returnType: xmlSchemaWhitespaceValueType
    signature: 'static xmlSchemaWhitespaceValueType xmlSchemaGetWhiteSpaceFacetValue(xmlSchemaTypePtr
      type) '
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26534,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26369,1
    - Dst: xmlHashScan
      Src: /src/libxml2/xmlschemas.c:26395,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26430,1
    - Dst: xmlSchemaValidateElemWildcard
      Src: /src/libxml2/xmlschemas.c:26445,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26490,1
    - Dst: xmlSchemaXPathEvaluate
      Src: /src/libxml2/xmlschemas.c:26507,1
    - Dst: xmlSchemaValidateElemDecl
      Src: /src/libxml2/xmlschemas.c:26473,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26476,1
    - Dst: VERROR
      Src: /src/libxml2/xmlschemas.c:26497,1
    - Dst: xmlSchemaAssembleByXSI
      Src: /src/libxml2/xmlschemas.c:26384,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26406,1
    - Dst: xmlSchemaValidateChildElem
      Src: /src/libxml2/xmlschemas.c:26403,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26416,1
    - Dst: xmlSchemaGetElem
      Src: /src/libxml2/xmlschemas.c:26425,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26448,1
    - Dst: xmlSchemaVAttributesComplex
      Src: /src/libxml2/xmlschemas.c:26522,1
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:26518,1
    - Dst: xmlSchemaVAttributesSimple
      Src: /src/libxml2/xmlschemas.c:26526,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:26510,1
    - Dst: xmlSchemaClearAttrInfos
      Src: /src/libxml2/xmlschemas.c:26532,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 96
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 26549
      start: 26362
    functionDepth: 0
    functionLinenumber: 26362
    functionLinenumberEnd: 26549
    functionName: xmlSchemaValidateElem
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaVAttributesComplex
    - xmlSchemaValidateElemDecl
    - xmlSchemaValidateChildElem
    - VERROR
    - xmlSchemaXPathEvaluate
    - xmlHashScan
    - xmlSchemaValidateElemWildcard
    - xmlSchemaAssembleByXSI
    - xmlSchemaGetElem
    - xmlSchemaClearAttrInfos
    - xmlSchemaVAttributesSimple
    - VERROR_INT
    - WXS_IS_COMPLEX
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaValidateElem(xmlSchemaValidCtxtPtr vctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 8
    argCount: 4
    argNames:
    - ctxt
    - err
    - warn
    - ctx
    argTypes:
    - xmlSchemaParserCtxt*
    - xmlSchemaValidityErrorFunc*
    - xmlSchemaValidityWarningFunc*
    - void**
    constantsTouched: []
    func_position:
      end: 21040
      start: 21026
    functionDepth: 0
    functionLinenumber: 21026
    functionLinenumberEnd: 21040
    functionName: xmlSchemaGetParserErrors
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xmlSchemaGetParserErrors(xmlSchemaParserCtxt *ctxt,\t\t\t xmlSchemaValidityErrorFunc
      * err,\t\t\t xmlSchemaValidityWarningFunc * warn, void **ctx) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlValidateQName
      Src: /src/libxml2/xmlschemas.c:23997,1
    - Dst: VERROR_INT
      Src: /src/libxml2/xmlschemas.c:24000,1
    - Dst: xmlSplitQName2
      Src: /src/libxml2/xmlschemas.c:24012,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24013,1
    - Dst: xmlSchemaCollapseString
      Src: /src/libxml2/xmlschemas.c:24011,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:24015,1
    - Dst: xmlSchemaLookupNamespace
      Src: /src/libxml2/xmlschemas.c:24021,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24024,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24037,1
    - Dst: xmlSchemaNewQNameValue
      Src: /src/libxml2/xmlschemas.c:24043,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:24044,1
    - Dst: xmlSchemaNewQNameValue
      Src: /src/libxml2/xmlschemas.c:24046,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:24049,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 4
    argNames:
    - vctxt
    - value
    - val
    - valNeeded
    argTypes:
    - xmlSchemaValidCtxtPtr
    - xmlChar*
    - xmlSchemaValPtr*
    - int
    constantsTouched: []
    func_position:
      end: 24051
      start: 23986
    functionDepth: 0
    functionLinenumber: 23986
    functionLinenumberEnd: 24051
    functionName: xmlSchemaValidateQName
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaLookupNamespace
    - xmlSchemaNewQNameValue
    - xmlSchemaCollapseString
    - xmlStrdup
    - xmlValidateQName
    - xmlSplitQName2
    - VERROR_INT
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaValidateQName(xmlSchemaValidCtxtPtr vctxt,\t\t
      const xmlChar *value,\t\t xmlSchemaValPtr *val,\t\t int valNeeded) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:18203,1
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:18207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - type
    - actxt
    argTypes:
    - xmlSchemaTypePtr
    - xmlSchemaAbstractCtxtPtr
    constantsTouched: []
    func_position:
      end: 18214
      start: 18196
    functionDepth: 0
    functionLinenumber: 18196
    functionLinenumberEnd: 18214
    functionName: xmlSchemaTypeFixup
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_IS_TYPE_NOT_FIXED
    - AERROR_INT
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaTypeFixup(xmlSchemaTypePtr type, xmlSchemaAbstractCtxtPtr
      actxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaPCustomAttrErr
      Src: /src/libxml2/xmlschemas.c:6622,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:6635,1
    - Dst: xmlSchemaPCustomAttrErr
      Src: /src/libxml2/xmlschemas.c:6632,1
    - Dst: xmlSchemaGetPropNode
      Src: /src/libxml2/xmlschemas.c:6625,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 5
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    - node
    - minOccurs
    - maxOccurs
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaParticlePtr
    - xmlNodePtr
    - int
    - int
    constantsTouched: []
    func_position:
      end: 6641
      start: 6599
    functionDepth: 0
    functionLinenumber: 6599
    functionLinenumberEnd: 6641
    functionName: xmlSchemaPCheckParticleCorrect_2
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetPropNode
    - xmlSchemaPCustomAttrErr
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaPCheckParticleCorrect_2(xmlSchemaParserCtxtPtr
      ctxt,\t\t\t\t xmlSchemaParticlePtr item ATTRIBUTE_UNUSED,\t\t\t\t xmlNodePtr
      node,\t\t\t\t int minOccurs,\t\t\t\t int maxOccurs) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaParserCtxtCreate
      Src: /src/libxml2/xmlschemas.c:9714,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/xmlschemas.c:9720,1
    - Dst: xmlDictReference
      Src: /src/libxml2/xmlschemas.c:9718,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - URL
    - dict
    argTypes:
    - char*
    - xmlDictPtr
    constantsTouched: []
    func_position:
      end: 9722
      start: 9709
    functionDepth: 0
    functionLinenumber: 9709
    functionLinenumberEnd: 9722
    functionName: xmlSchemaNewParserCtxtUseDict
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlDictReference
    - xmlSchemaParserCtxtCreate
    - xmlDictLookup
    linkageType: ''
    returnType: xmlSchemaParserCtxtPtr
    signature: 'static xmlSchemaParserCtxtPtr xmlSchemaNewParserCtxtUseDict(const
      char *URL, xmlDictPtr dict) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaParseIncludeOrRedefineAttrs
      Src: /src/libxml2/xmlschemas.c:10711,1
    - Dst: xmlSchemaPCustomErrExt
      Src: /src/libxml2/xmlschemas.c:10788,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:10837,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:10838,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:10839,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:10840,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:10845,1
    - Dst: xmlSchemaParseAttributeGroupDefinition
      Src: /src/libxml2/xmlschemas.c:10856,1
    - Dst: xmlSchemaParseSimpleType
      Src: /src/libxml2/xmlschemas.c:10846,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:10850,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:10785,1
    - Dst: xmlSchemaAddSchemaDoc
      Src: /src/libxml2/xmlschemas.c:10718,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:10854,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:10847,1
    - Dst: xmlSchemaParseComplexType
      Src: /src/libxml2/xmlschemas.c:10848,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:10874,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:10864,1
    - Dst: xmlSchemaParseNewDoc
      Src: /src/libxml2/xmlschemas.c:10818,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:10836,1
    - Dst: xmlSchemaParseModelGroupDefinition
      Src: /src/libxml2/xmlschemas.c:10852,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:10878,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:10841,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 93
    argCount: 4
    argNames:
    - pctxt
    - schema
    - node
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 10887
      start: 10692
    functionDepth: 0
    functionLinenumber: 10692
    functionLinenumberEnd: 10887
    functionName: xmlSchemaParseIncludeOrRedefine
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaParseIncludeOrRedefineAttrs
    - xmlSchemaAddSchemaDoc
    - xmlSchemaParseModelGroupDefinition
    - IS_SCHEMA
    - xmlSchemaPCustomErrExt
    - xmlSchemaParseAttributeGroupDefinition
    - xmlSchemaParseComplexType
    - xmlStrEqual
    - xmlSchemaPContentErr
    - xmlSchemaParseNewDoc
    - xmlSchemaParseSimpleType
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaParseIncludeOrRedefine(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t\txmlSchemaPtr schema,\t\t\t\txmlNodePtr node,\t\t\t\tint type) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:13093,1
    - Dst: xmlSchemaIsDerivedFromBuiltInType
      Src: /src/libxml2/xmlschemas.c:13100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - type
    - valType
    argTypes:
    - xmlSchemaTypePtr
    - int
    constantsTouched: []
    func_position:
      end: 13103
      start: 13088
    functionDepth: 0
    functionLinenumber: 13088
    functionLinenumberEnd: 13103
    functionName: xmlSchemaIsUserDerivedFromBuiltInType
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaIsDerivedFromBuiltInType
    - WXS_IS_COMPLEX
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaIsUserDerivedFromBuiltInType(xmlSchemaTypePtr
      type, int valType) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_TYPE_NOT_FIXED
      Src: /src/libxml2/xmlschemas.c:17444,1
    - Dst: xmlSchemaTypeFixup
      Src: /src/libxml2/xmlschemas.c:17445,1
    - Dst: xmlSchemaGetUnionSimpleTypeMemberTypes
      Src: /src/libxml2/xmlschemas.c:17448,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:17457,1
    - Dst: WXS_IS_UNION
      Src: /src/libxml2/xmlschemas.c:17447,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:17459,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - pctxt
    - type
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 17475
      start: 17427
    functionDepth: 0
    functionLinenumber: 17427
    functionLinenumberEnd: 17475
    functionName: xmlSchemaFinishMemberTypeDefinitionsProperty
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - WXS_IS_UNION
    - xmlSchemaTypeFixup
    - xmlSchemaGetUnionSimpleTypeMemberTypes
    - WXS_IS_TYPE_NOT_FIXED
    - xmlSchemaPErrMemory
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaFinishMemberTypeDefinitionsProperty(xmlSchemaParserCtxtPtr
      pctxt,\t\t\t\t\t xmlSchemaTypePtr type) "
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetWhiteSpaceFacetValue
      Src: /src/libxml2/xmlschemas.c:23788,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:23775,1
    - Dst: xmlSchemaFacetErr
      Src: /src/libxml2/xmlschemas.c:23829,1
    - Dst: xmlSchemaValidateListSimpleTypeFacet
      Src: /src/libxml2/xmlschemas.c:23853,1
    - Dst: xmlSchemaFacetErr
      Src: /src/libxml2/xmlschemas.c:23865,1
    - Dst: xmlSchemaFacetErr
      Src: /src/libxml2/xmlschemas.c:23916,1
    - Dst: xmlSchemaFacetErr
      Src: /src/libxml2/xmlschemas.c:23958,1
    - Dst: WXS_IS_ANY_SIMPLE_TYPE
      Src: /src/libxml2/xmlschemas.c:23787,1
    - Dst: xmlSchemaGetPrimitiveType
      Src: /src/libxml2/xmlschemas.c:23785,1
    - Dst: xmlSchemaGetValType
      Src: /src/libxml2/xmlschemas.c:23798,1
    - Dst: xmlSchemaValidateFacetWhtsp
      Src: /src/libxml2/xmlschemas.c:23819,1
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:23774,1
    - Dst: xmlSchemaValidateLengthFacetWhtsp
      Src: /src/libxml2/xmlschemas.c:23815,1
    - Dst: xmlRegexpExec
      Src: /src/libxml2/xmlschemas.c:23941,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:23824,1
    - Dst: WXS_IS_LIST
      Src: /src/libxml2/xmlschemas.c:23840,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:23860,1
    - Dst: xmlSchemaAreValuesEqual
      Src: /src/libxml2/xmlschemas.c:23891,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:23895,1
    - Dst: AERROR_INT
      Src: /src/libxml2/xmlschemas.c:23945,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 116
    argCount: 8
    argNames:
    - actxt
    - node
    - type
    - valType
    - value
    - val
    - length
    - fireErrors
    argTypes:
    - xmlSchemaAbstractCtxtPtr
    - xmlNodePtr
    - xmlSchemaTypePtr
    - xmlSchemaValType
    - xmlChar*
    - xmlSchemaValPtr
    - unsigned long
    - int
    constantsTouched: []
    func_position:
      end: 23970
      start: 23742
    functionDepth: 0
    functionLinenumber: 23742
    functionLinenumberEnd: 23970
    functionName: xmlSchemaValidateFacets
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetPrimitiveType
    - xmlSchemaFacetErr
    - xmlSchemaValidateListSimpleTypeFacet
    - WXS_IS_LIST
    - xmlSchemaValidateFacetWhtsp
    - xmlSchemaGetWhiteSpaceFacetValue
    - WXS_IS_ATOMIC
    - xmlSchemaGetValType
    - xmlRegexpExec
    - xmlSchemaAreValuesEqual
    - WXS_IS_ANY_SIMPLE_TYPE
    - xmlSchemaValidateLengthFacetWhtsp
    - AERROR_INT
    linkageType: ''
    returnType: int
    signature: "static int xmlSchemaValidateFacets(xmlSchemaAbstractCtxtPtr actxt,\t\t\txmlNodePtr
      node,\t\t\txmlSchemaTypePtr type,\t\t\txmlSchemaValType valType,\t\t\tconst
      xmlChar * value,\t\t\txmlSchemaValPtr val,\t\t\tunsigned long length,\t\t\tint
      fireErrors) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaParseIncludeOrRedefine
      Src: /src/libxml2/xmlschemas.c:10898,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - pctxt
    - schema
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 10903
      start: 10889
    functionDepth: 0
    functionLinenumber: 10889
    functionLinenumberEnd: 10903
    functionName: xmlSchemaParseRedefine
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaParseIncludeOrRedefine
    linkageType: ''
    returnType: int
    signature: 'static int xmlSchemaParseRedefine(xmlSchemaParserCtxtPtr pctxt, xmlSchemaPtr
      schema, xmlNodePtr node) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_COMPLEX
      Src: /src/libxml2/xmlschemas.c:13110,1
    - Dst: xmlSchemaQueryBuiltInType
      Src: /src/libxml2/xmlschemas.c:13114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 13115
      start: 13105
    functionDepth: 0
    functionLinenumber: 13105
    functionLinenumberEnd: 13115
    functionName: xmlSchemaQueryBuiltInType
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaQueryBuiltInType
    - WXS_IS_COMPLEX
    linkageType: ''
    returnType: xmlSchemaTypePtr
    signature: 'static xmlSchemaTypePtr xmlSchemaQueryBuiltInType(xmlSchemaTypePtr
      type) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: WXS_IS_ATOMIC
      Src: /src/libxml2/xmlschemas.c:17518,1
    - Dst: xmlSchemaGetPrimitiveType
      Src: /src/libxml2/xmlschemas.c:17519,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 1
    argNames:
    - type
    argTypes:
    - xmlSchemaTypePtr
    constantsTouched: []
    func_position:
      end: 17528
      start: 17477
    functionDepth: 0
    functionLinenumber: 17477
    functionLinenumberEnd: 17528
    functionName: xmlSchemaTypeFixupOptimFacets
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaGetPrimitiveType
    - WXS_IS_ATOMIC
    linkageType: ''
    returnType: void
    signature: 'static void xmlSchemaTypeFixupOptimFacets(xmlSchemaTypePtr type) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSchemaGetWhiteSpaceFacetValue
      Src: /src/libxml2/xmlschemas.c:23976,1
    - Dst: xmlSchemaWhiteSpaceReplace
      Src: /src/libxml2/xmlschemas.c:23980,1
    - Dst: xmlSchemaCollapseString
      Src: /src/libxml2/xmlschemas.c:23978,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 2
    argNames:
    - type
    - value
    argTypes:
    - xmlSchemaTypePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 23984
      start: 23972
    functionDepth: 0
    functionLinenumber: 23972
    functionLinenumberEnd: 23984
    functionName: xmlSchemaNormalizeValue
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaWhiteSpaceReplace
    - xmlSchemaGetWhiteSpaceFacetValue
    - xmlSchemaCollapseString
    linkageType: ''
    returnType: xmlChar*
    signature: "static xmlChar *xmlSchemaNormalizeValue(xmlSchemaTypePtr type,\t\t\tconst
      xmlChar *value) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlschemas.c:9686,1
    - Dst: memset
      Src: /src/libxml2/xmlschemas.c:9691,1
    - Dst: xmlSchemaPErrMemory
      Src: /src/libxml2/xmlschemas.c:9688,1
    - Dst: xmlSchemaItemListCreate
      Src: /src/libxml2/xmlschemas.c:9693,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlschemas.c:9695,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 9699
      start: 9681
    functionDepth: 0
    functionLinenumber: 9681
    functionLinenumberEnd: 9699
    functionName: xmlSchemaParserCtxtCreate
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlSchemaPErrMemory
    - xmlSchemaItemListCreate
    - xmlMalloc
    linkageType: ''
    returnType: xmlSchemaParserCtxtPtr
    signature: 'static xmlSchemaParserCtxtPtr xmlSchemaParserCtxtCreate(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlschemas.c:2302,1
    - Dst: xmlStrcat
      Src: /src/libxml2/xmlschemas.c:2304,1
    - Dst: LIBXML_ATTR_FORMAT
      Src: /src/libxml2/xmlschemas.c:2316,1
    - Dst: xmlSchemaErr3
      Src: /src/libxml2/xmlschemas.c:2310,1
    - Dst: xmlSchemaPInternalErr
      Src: /src/libxml2/xmlschemas.c:2326,1
    - Dst: xmlSchemaInternalErr
      Src: /src/libxml2/xmlschemas.c:2317,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 15
    argCount: 0
    argNames:
    - 3,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2291
    functionDepth: 0
    functionLinenumber: 2291
    functionLinenumberEnd: 2334
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlSchemaErr3
    - xmlSchemaPInternalErr
    - LIBXML_ATTR_FORMAT
    - xmlSchemaInternalErr
    - xmlStrcat
    linkageType: ''
    returnType: void
    signature: "static void LIBXML_ATTR_FORMAT(3,0) xmlSchemaInternalErr2(xmlSchemaAbstractCtxtPtr
      actxt,\t\t const char *funcName,\t\t const char *message,\t\t const xmlChar
      *str1,\t\t const xmlChar *str2){ xmlChar *msg = NULL; if (actxt == NULL) return;
      msg = xmlStrdup(BAD_CAST \"Internal error: %s, \"); msg = xmlStrcat(msg, BAD_CAST
      message); msg = xmlStrcat(msg, BAD_CAST \".\"); if (actxt->type == XML_SCHEMA_CTXT_VALIDATOR)\txmlSchemaErr3(actxt,
      XML_SCHEMAV_INTERNAL, NULL,\t (const char *) msg, (const xmlChar *) funcName,
      str1, str2); else if (actxt->type == XML_SCHEMA_CTXT_PARSER)\txmlSchemaErr3(actxt,
      XML_SCHEMAP_INTERNAL, NULL,\t (const char *) msg, (const xmlChar *) funcName,
      str1, str2); FREE_AND_NULL(msg)}static void LIBXML_ATTR_FORMAT(3,0)xmlSchemaInternalErr(xmlSchemaAbstractCtxtPtr
      actxt,\t\t const char *funcName,\t\t const char *message){ xmlSchemaInternalErr2(actxt,
      funcName, message, NULL, NULL); }#if 0static void LIBXML_ATTR_FORMAT(3,0)xmlSchemaPInternalErr(xmlSchemaParserCtxtPtr
      pctxt,\t\t const char *funcName,\t\t const char *message,\t\t const xmlChar
      *str1,\t\t const xmlChar *str2) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6673,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6677,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6676,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6674,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6675,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:6678,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:6681,1
    - Dst: xmlSchemaPIllegalAttrErr
      Src: /src/libxml2/xmlschemas.c:6682,1
    - Dst: xmlSchemaPValAttrID
      Src: /src/libxml2/xmlschemas.c:6687,1
    - Dst: xmlGetMaxOccurs
      Src: /src/libxml2/xmlschemas.c:6691,1
    - Dst: xmlSchemaAddWildcard
      Src: /src/libxml2/xmlschemas.c:6699,1
    - Dst: xmlSchemaPCheckParticleCorrect_2
      Src: /src/libxml2/xmlschemas.c:6695,1
    - Dst: xmlSchemaParseAnnotation
      Src: /src/libxml2/xmlschemas.c:6708,1
    - Dst: IS_SCHEMA
      Src: /src/libxml2/xmlschemas.c:6707,1
    - Dst: xmlGetMinOccurs
      Src: /src/libxml2/xmlschemas.c:6693,1
    - Dst: xmlSchemaParseWildcardNs
      Src: /src/libxml2/xmlschemas.c:6702,1
    - Dst: xmlSchemaPContentErr
      Src: /src/libxml2/xmlschemas.c:6712,1
    - Dst: xmlSchemaAddParticle
      Src: /src/libxml2/xmlschemas.c:6727,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 3
    argNames:
    - ctxt
    - schema
    - node
    argTypes:
    - xmlSchemaParserCtxtPtr
    - xmlSchemaPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 6734
      start: 6654
    functionDepth: 0
    functionLinenumber: 6654
    functionLinenumberEnd: 6734
    functionName: xmlSchemaParseAny
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlSchemaParseWildcardNs
    - xmlSchemaAddParticle
    - xmlSchemaPCheckParticleCorrect_2
    - xmlSchemaAddWildcard
    - IS_SCHEMA
    - xmlSchemaPContentErr
    - xmlSchemaPValAttrID
    - xmlStrEqual
    - xmlGetMaxOccurs
    - xmlSchemaParseAnnotation
    - xmlSchemaPIllegalAttrErr
    - xmlGetMinOccurs
    linkageType: ''
    returnType: xmlSchemaParticlePtr
    signature: 'static xmlSchemaParticlePtr xmlSchemaParseAny(xmlSchemaParserCtxtPtr
      ctxt, xmlSchemaPtr schema, xmlNodePtr node) '
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: FREE_AND_NULL
      Src: /src/libxml2/xmlschemas.c:18328,1
    - Dst: xmlSchemaFreeParserCtxt
      Src: /src/libxml2/xmlschemas.c:18423,1
    - Dst: xmlSchemaFacetTypeToString
      Src: /src/libxml2/xmlschemas.c:18386,1
    - Dst: xmlSchemaNewParserCtxt
      Src: /src/libxml2/xmlschemas.c:18289,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:18333,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:18396,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:18400,1
    - Dst: xmlRegexpCompile
      Src: /src/libxml2/xmlschemas.c:18341,1
    - Dst: xmlSchemaValidatePredefinedType
      Src: /src/libxml2/xmlschemas.c:18365,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:18373,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:18366,1
    - Dst: PERROR_INT
      Src: /src/libxml2/xmlschemas.c:18278,1
    - Dst: xmlSchemaFacetTypeToString
      Src: /src/libxml2/xmlschemas.c:18312,1
    - Dst: xmlSchemaVCheckCVCSimpleType
      Src: /src/libxml2/xmlschemas.c:18300,1
    - Dst: xmlSchemaFormatQName
      Src: /src/libxml2/xmlschemas.c:18326,1
    - Dst: xmlSchemaValidatePredefinedType
      Src: /src/libxml2/xmlschemas.c:18361,1
    - Dst: xmlSchemaGetBuiltInType
      Src: /src/libxml2/xmlschemas.c:18362,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlschemas.c:18398,1
    - Dst: xmlSchemaFreeParserCtxt
      Src: /src/libxml2/xmlschemas.c:18419,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 83
    argCount: 4
    argNames:
    - facet
    - typeDecl
    - pctxt
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlSchemaFacet*
    - xmlSchemaType*
    - xmlSchemaParserCtxt*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 18425
      start: 18226
    functionDepth: 0
    functionLinenumber: 18226
    functionLinenumberEnd: 18425
    functionName: xmlSchemaCheckFacet
    functionSourceFile: /src/libxml2/xmlschemas.c
    functionUses: []
    functionsReached:
    - xmlRegexpCompile
    - xmlSchemaFacetTypeToString
    - xmlSchemaGetBuiltInType
    - xmlSchemaFormatQName
    - xmlSchemaVCheckCVCSimpleType
    - xmlStrEqual
    - xmlSchemaNewParserCtxt
    - PERROR_INT
    - FREE_AND_NULL
    - xmlSchemaValidatePredefinedType
    - xmlSchemaFreeParserCtxt
    linkageType: ''
    returnType: int
    signature: "int xmlSchemaCheckFacet(xmlSchemaFacet *facet, xmlSchemaType *typeDecl,
      xmlSchemaParserCtxt *pctxt,\t\t const xmlChar * name ATTRIBUTE_UNUSED) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlFARecurseDeterminism
      Src: /src/libxml2/xmlregexp.c:2744,1
    - Dst: xmlFACompareAtoms
      Src: /src/libxml2/xmlregexp.c:2752,1
    - Dst: xmlFAEqualAtoms
      Src: /src/libxml2/xmlregexp.c:2755,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 5
    argNames:
    - ctxt
    - state
    - fromnr
    - tonr
    - atom
    argTypes:
    - xmlRegParserCtxtPtr
    - xmlRegStatePtr
    - int
    - int
    - xmlRegAtomPtr
    constantsTouched: []
    func_position:
      end: 2762
      start: 2713
    functionDepth: 0
    functionLinenumber: 2713
    functionLinenumberEnd: 2762
    functionName: xmlFARecurseDeterminism
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFAEqualAtoms
    - xmlFACompareAtoms
    - xmlFARecurseDeterminism
    linkageType: ''
    returnType: int
    signature: "static int xmlFARecurseDeterminism(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr
      state,\t int fromnr, int tonr, xmlRegAtomPtr atom) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegExecGetValues
      Src: /src/libxml2/xmlregexp.c:4458,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 8
    argCount: 6
    argNames:
    - exec
    - string
    - nbval
    - nbneg
    - values
    - terminal
    argTypes:
    - xmlRegExecCtxt*
    - xmlChar**
    - int*
    - int*
    - xmlChar**
    - int*
    constantsTouched: []
    func_position:
      end: 4459
      start: 4447
    functionDepth: 0
    functionLinenumber: 4447
    functionLinenumberEnd: 4459
    functionName: xmlRegExecErrInfo
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegExecGetValues
    linkageType: ''
    returnType: int
    signature: 'int xmlRegExecErrInfo(xmlRegExecCtxt *exec, const xmlChar **string,
      int *nbval, int *nbneg, xmlChar **values, int *terminal) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFAParseAtom
      Src: /src/libxml2/xmlregexp.c:5297,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:5301,1
    - Dst: xmlFAParseQuantifier
      Src: /src/libxml2/xmlregexp.c:5303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 5305
      start: 5292
    functionDepth: 0
    functionLinenumber: 5292
    functionLinenumberEnd: 5305
    functionName: xmlFAParsePiece
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - ERROR
    - xmlFAParseAtom
    - xmlFAParseQuantifier
    linkageType: ''
    returnType: int
    signature: 'static int xmlFAParsePiece(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegNewAtom
      Src: /src/libxml2/xmlregexp.c:5725,1
    - Dst: strlen
      Src: /src/libxml2/xmlregexp.c:5736,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlregexp.c:5730,1
    - Dst: strlen
      Src: /src/libxml2/xmlregexp.c:5735,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:5738,1
    - Dst: xmlRegFreeAtom
      Src: /src/libxml2/xmlregexp.c:5740,1
    - Dst: memcpy
      Src: /src/libxml2/xmlregexp.c:5743,1
    - Dst: memcpy
      Src: /src/libxml2/xmlregexp.c:5745,1
    - Dst: xmlFAGenerateTransitions
      Src: /src/libxml2/xmlregexp.c:5751,1
    - Dst: xmlRegFreeAtom
      Src: /src/libxml2/xmlregexp.c:5752,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 6
    argNames:
    - am
    - from
    - to
    - token
    - token2
    - data
    argTypes:
    - xmlAutomata*
    - xmlAutomataState*
    - xmlAutomataState*
    - xmlChar*
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 5758
      start: 5717
    functionDepth: 0
    functionLinenumber: 5717
    functionLinenumberEnd: 5758
    functionName: xmlAutomataNewTransition2
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegNewAtom
    - memcpy
    - xmlRegFreeAtom
    - xmlStrdup
    - xmlFAGenerateTransitions
    - strlen
    - xmlMalloc
    linkageType: ''
    returnType: xmlAutomataState*
    signature: "xmlAutomataState *xmlAutomataNewTransition2(xmlAutomata *am, xmlAutomataState
      *from,\t\t\t xmlAutomataState *to, const xmlChar *token,\t\t\t const xmlChar
      *token2, void *data) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:784,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:785,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - range
    argTypes:
    - xmlRegRangePtr
    constantsTouched: []
    func_position:
      end: 786
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 786
    functionName: xmlRegFreeRange
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlRegFreeRange(xmlRegRangePtr range) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:936,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:939,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:938,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - xmlRegStatePtr
    constantsTouched: []
    func_position:
      end: 940
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 940
    functionName: xmlRegFreeState
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlRegFreeState(xmlRegStatePtr state) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xmlFACompareAtomTypes
      Src: /src/libxml2/xmlregexp.c:2635,1
    - Dst: xmlStrchr
      Src: /src/libxml2/xmlregexp.c:2648,1
    - Dst: xmlRegCheckCharacter
      Src: /src/libxml2/xmlregexp.c:2663,1
    - Dst: xmlStrchr
      Src: /src/libxml2/xmlregexp.c:2647,1
    - Dst: xmlRegStrEqualWildcard
      Src: /src/libxml2/xmlregexp.c:2654,1
    - Dst: xmlFACompareRanges
      Src: /src/libxml2/xmlregexp.c:2680,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 60
    argCount: 3
    argNames:
    - atom1
    - atom2
    - deep
    argTypes:
    - xmlRegAtomPtr
    - xmlRegAtomPtr
    - int
    constantsTouched: []
    func_position:
      end: 2701
      start: 2615
    functionDepth: 0
    functionLinenumber: 2615
    functionLinenumberEnd: 2701
    functionName: xmlFACompareAtoms
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFACompareAtomTypes
    - xmlRegStrEqualWildcard
    - xmlFACompareRanges
    - xmlRegCheckCharacter
    - xmlStrchr
    linkageType: ''
    returnType: int
    signature: 'static int xmlFACompareAtoms(xmlRegAtomPtr atom1, xmlRegAtomPtr atom2,
      int deep) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlFAIsChar
      Src: /src/libxml2/xmlregexp.c:5225,1
    - Dst: xmlGetUTF8Char
      Src: /src/libxml2/xmlregexp.c:5231,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:5233,1
    - Dst: xmlRegNewAtom
      Src: /src/libxml2/xmlregexp.c:5227,1
    - Dst: NEXTL
      Src: /src/libxml2/xmlregexp.c:5237,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:5250,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:5257,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:5259,1
    - Dst: xmlFAParseRegExp
      Src: /src/libxml2/xmlregexp.c:5265,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:5270,1
    - Dst: xmlFAParseCharClass
      Src: /src/libxml2/xmlregexp.c:5281,1
    - Dst: xmlRegNewAtom
      Src: /src/libxml2/xmlregexp.c:5272,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 5285
      start: 5221
    functionDepth: 0
    functionLinenumber: 5221
    functionLinenumberEnd: 5285
    functionName: xmlFAParseAtom
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegNewAtom
    - NEXTL
    - xmlFAGenerateEpsilonTransition
    - ERROR
    - xmlFAParseCharClass
    - xmlFAIsChar
    - xmlFAParseRegExp
    - xmlGetUTF8Char
    linkageType: ''
    returnType: int
    signature: 'static int xmlFAParseAtom(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegNewAtom
      Src: /src/libxml2/xmlregexp.c:5682,1
    - Dst: xmlRegFreeAtom
      Src: /src/libxml2/xmlregexp.c:5688,1
    - Dst: xmlFAGenerateTransitions
      Src: /src/libxml2/xmlregexp.c:5693,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:5689,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlregexp.c:5686,1
    - Dst: xmlRegFreeAtom
      Src: /src/libxml2/xmlregexp.c:5694,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 21
    argCount: 5
    argNames:
    - am
    - from
    - to
    - token
    - data
    argTypes:
    - xmlAutomata*
    - xmlAutomataState*
    - xmlAutomataState*
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 5700
      start: 5674
    functionDepth: 0
    functionLinenumber: 5674
    functionLinenumberEnd: 5700
    functionName: xmlAutomataNewTransition
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegNewAtom
    - xmlRegFreeAtom
    - xmlRegexpErrMemory
    - xmlStrdup
    - xmlFAGenerateTransitions
    linkageType: ''
    returnType: xmlAutomataState*
    signature: "xmlAutomataState *xmlAutomataNewTransition(xmlAutomata *am, xmlAutomataState
      *from,\t\t\t xmlAutomataState *to, const xmlChar *token,\t\t\t void *data) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFAGenerateAllTransition
      Src: /src/libxml2/xmlregexp.c:6209,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 4
    argNames:
    - am
    - from
    - to
    - lax
    argTypes:
    - xmlAutomata*
    - xmlAutomataState*
    - xmlAutomataState*
    - int
    constantsTouched: []
    func_position:
      end: 6213
      start: 6204
    functionDepth: 0
    functionLinenumber: 6204
    functionLinenumberEnd: 6213
    functionName: xmlAutomataNewAllTrans
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFAGenerateAllTransition
    linkageType: ''
    returnType: xmlAutomataState*
    signature: "xmlAutomataState *xmlAutomataNewAllTrans(xmlAutomata *am, xmlAutomataState
      *from,\t\t xmlAutomataState *to, int lax) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegStateAddTrans
      Src: /src/libxml2/xmlregexp.c:2045,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 2063
      start: 2016
    functionDepth: 0
    functionLinenumber: 2016
    functionLinenumberEnd: 2063
    functionName: xmlFAEliminateSimpleEpsilonTransitions
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegStateAddTrans
    linkageType: ''
    returnType: void
    signature: 'static void xmlFAEliminateSimpleEpsilonTransitions(xmlRegParserCtxtPtr
      ctxt) '
  - BBCount: 64
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 130
    EdgeCount: 130
    ICount: 151
    argCount: 2
    argNames:
    - type1
    - type2
    argTypes:
    - xmlRegAtomType
    - xmlRegAtomType
    constantsTouched: []
    func_position:
      end: 2561
      start: 2372
    functionDepth: 0
    functionLinenumber: 2372
    functionLinenumberEnd: 2561
    functionName: xmlFACompareAtomTypes
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlFACompareAtomTypes(xmlRegAtomType type1, xmlRegAtomType
      type2) '
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 23
    argCount: 2
    argNames:
    - expStr
    - valStr
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3798
      start: 3763
    functionDepth: 0
    functionLinenumber: 3763
    functionLinenumberEnd: 3798
    functionName: xmlRegStrEqualWildcard
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlRegStrEqualWildcard(const xmlChar *expStr, const xmlChar
      *valStr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegStatePush
      Src: /src/libxml2/xmlregexp.c:6164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - am
    argTypes:
    - xmlAutomata*
    constantsTouched: []
    func_position:
      end: 6165
      start: 6160
    functionDepth: 0
    functionLinenumber: 6160
    functionLinenumberEnd: 6165
    functionName: xmlAutomataNewState
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegStatePush
    linkageType: ''
    returnType: xmlAutomataState*
    signature: 'xmlAutomataState *xmlAutomataNewState(xmlAutomata *am) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFAComputesDeterminism
      Src: /src/libxml2/xmlregexp.c:6326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - am
    argTypes:
    - xmlAutomata*
    constantsTouched: []
    func_position:
      end: 6328
      start: 6319
    functionDepth: 0
    functionLinenumber: 6319
    functionLinenumberEnd: 6328
    functionName: xmlAutomataIsDeterminist
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFAComputesDeterminism
    linkageType: ''
    returnType: int
    signature: 'int xmlAutomataIsDeterminist(xmlAutomata *am) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFAFinishReduceEpsilonTransitions
      Src: /src/libxml2/xmlregexp.c:1992,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - ctxt
    - tonr
    argTypes:
    - xmlRegParserCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 1994
      start: 1976
    functionDepth: 0
    functionLinenumber: 1976
    functionLinenumberEnd: 1994
    functionName: xmlFAFinishReduceEpsilonTransitions
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFAFinishReduceEpsilonTransitions
    linkageType: ''
    returnType: void
    signature: 'static void xmlFAFinishReduceEpsilonTransitions(xmlRegParserCtxtPtr
      ctxt, int tonr) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlregexp.c:3719,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlregexp.c:3740,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlregexp.c:3729,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - exec
    - value
    - data
    argTypes:
    - xmlRegExecCtxtPtr
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 3750
      start: 3712
    functionDepth: 0
    functionLinenumber: 3712
    functionLinenumberEnd: 3750
    functionName: xmlFARegExecSaveInputString
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlStrdup
    linkageType: ''
    returnType: void
    signature: "static void xmlFARegExecSaveInputString(xmlRegExecCtxtPtr exec, const
      xmlChar *value,\t void *data) "
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegNewAtom
      Src: /src/libxml2/xmlregexp.c:6118,1
    - Dst: xmlRegStatePush
      Src: /src/libxml2/xmlregexp.c:6137,1
    - Dst: xmlRegStateAddTrans
      Src: /src/libxml2/xmlregexp.c:6141,1
    - Dst: xmlRegGetCounter
      Src: /src/libxml2/xmlregexp.c:6129,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlregexp.c:6121,1
    - Dst: xmlRegAtomPush
      Src: /src/libxml2/xmlregexp.c:6142,1
    - Dst: xmlRegFreeAtom
      Src: /src/libxml2/xmlregexp.c:6148,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 32
    argCount: 7
    argNames:
    - am
    - from
    - to
    - token
    - min
    - max
    - data
    argTypes:
    - xmlAutomata*
    - xmlAutomataState*
    - xmlAutomataState*
    - xmlChar*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 6150
      start: 6105
    functionDepth: 0
    functionLinenumber: 6105
    functionLinenumberEnd: 6150
    functionName: xmlAutomataNewOnceTrans
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegNewAtom
    - xmlRegStatePush
    - xmlRegStateAddTrans
    - xmlRegGetCounter
    - xmlRegFreeAtom
    - xmlStrdup
    - xmlRegAtomPush
    linkageType: ''
    returnType: xmlAutomataState*
    signature: "xmlAutomataState *xmlAutomataNewOnceTrans(xmlAutomata *am, xmlAutomataState
      *from,\t\t\t xmlAutomataState *to, const xmlChar *token,\t\t\t int min, int
      max, void *data) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetUTF8Char
      Src: /src/libxml2/xmlregexp.c:4479,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:4481,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 4490
      start: 4473
    functionDepth: 0
    functionLinenumber: 4473
    functionLinenumberEnd: 4490
    functionName: xmlFAIsChar
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - ERROR
    - xmlGetUTF8Char
    linkageType: ''
    returnType: int
    signature: 'static int xmlFAIsChar(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlUnicodeLookup
      Src: /src/libxml2/xmlregexp.c:114,1
    - Dst: xmlCharInRange
      Src: /src/libxml2/xmlregexp.c:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - code
    - block
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: xmlUCSIsBlock
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlUnicodeLookup
    - xmlCharInRange
    linkageType: ''
    returnType: int
    signature: 'static int xmlUCSIsBlock(int code, const char *block) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:1397,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:1411,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlregexp.c:1408,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:1401,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlregexp.c:1414,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:1416,1
    - Dst: xmlRegNewRange
      Src: /src/libxml2/xmlregexp.c:1422,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 7
    argNames:
    - ctxt
    - atom
    - neg
    - type
    - start
    - end
    - blockName
    argTypes:
    - xmlRegParserCtxtPtr
    - xmlRegAtomPtr
    - int
    - xmlRegAtomType
    - int
    - int
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1429
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1429
    functionName: xmlRegAtomAddRange
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlRegNewRange
    - xmlRegexpErrMemory
    - ERROR
    linkageType: ''
    returnType: xmlRegRangePtr
    signature: "static xmlRegRangePtr xmlRegAtomAddRange(xmlRegParserCtxtPtr ctxt,
      xmlRegAtomPtr atom,\t int neg, xmlRegAtomType type, int start, int end,\t\t
      xmlChar *blockName) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFAFinishRecurseDeterminism
      Src: /src/libxml2/xmlregexp.c:2784,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ctxt
    - state
    argTypes:
    - xmlRegParserCtxtPtr
    - xmlRegStatePtr
    constantsTouched: []
    func_position:
      end: 2786
      start: 2770
    functionDepth: 0
    functionLinenumber: 2770
    functionLinenumberEnd: 2786
    functionName: xmlFAFinishRecurseDeterminism
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFAFinishRecurseDeterminism
    linkageType: ''
    returnType: void
    signature: 'static void xmlFAFinishRecurseDeterminism(xmlRegParserCtxtPtr ctxt,
      xmlRegStatePtr state) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegNewAtom
      Src: /src/libxml2/xmlregexp.c:5858,1
    - Dst: strlen
      Src: /src/libxml2/xmlregexp.c:5869,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:5872,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlregexp.c:5862,1
    - Dst: strlen
      Src: /src/libxml2/xmlregexp.c:5870,1
    - Dst: memcpy
      Src: /src/libxml2/xmlregexp.c:5875,1
    - Dst: memcpy
      Src: /src/libxml2/xmlregexp.c:5877,1
    - Dst: xmlRegGetCounter
      Src: /src/libxml2/xmlregexp.c:5892,1
    - Dst: xmlRegStatePush
      Src: /src/libxml2/xmlregexp.c:5900,1
    - Dst: xmlRegStateAddTrans
      Src: /src/libxml2/xmlregexp.c:5904,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:5914,1
    - Dst: xmlRegFreeAtom
      Src: /src/libxml2/xmlregexp.c:5918,1
    - Dst: xmlRegAtomPush
      Src: /src/libxml2/xmlregexp.c:5905,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 63
    argCount: 8
    argNames:
    - am
    - from
    - to
    - token
    - token2
    - min
    - max
    - data
    argTypes:
    - xmlAutomata*
    - xmlAutomataState*
    - xmlAutomataState*
    - xmlChar*
    - xmlChar*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 5920
      start: 5844
    functionDepth: 0
    functionLinenumber: 5844
    functionLinenumberEnd: 5920
    functionName: xmlAutomataNewCountTrans2
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegNewAtom
    - memcpy
    - xmlRegStatePush
    - xmlRegStateAddTrans
    - xmlRegGetCounter
    - xmlRegFreeAtom
    - xmlFAGenerateEpsilonTransition
    - xmlStrdup
    - xmlRegAtomPush
    - strlen
    - xmlMalloc
    linkageType: ''
    returnType: xmlAutomataState*
    signature: "xmlAutomataState *xmlAutomataNewCountTrans2(xmlAutomata *am, xmlAutomataState
      *from,\t\t\t xmlAutomataState *to, const xmlChar *token,\t\t\t const xmlChar
      *token2,\t\t\t int min, int max, void *data) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlregexp.c:1437,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlregexp.c:1443,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:1440,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:1445,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 1454
      start: 1431
    functionDepth: 0
    functionLinenumber: 1431
    functionLinenumberEnd: 1454
    functionName: xmlRegGetCounter
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlRegexpErrMemory
    linkageType: ''
    returnType: int
    signature: 'static int xmlRegGetCounter(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlregexp.c:2591,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 3
    argNames:
    - atom1
    - atom2
    - deep
    argTypes:
    - xmlRegAtomPtr
    - xmlRegAtomPtr
    - int
    constantsTouched: []
    func_position:
      end: 2604
      start: 2572
    functionDepth: 0
    functionLinenumber: 2572
    functionLinenumberEnd: 2604
    functionName: xmlFAEqualAtoms
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xmlFAEqualAtoms(xmlRegAtomPtr atom1, xmlRegAtomPtr atom2,
      int deep) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegNewAtom
      Src: /src/libxml2/xmlregexp.c:5786,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:5800,1
    - Dst: strlen
      Src: /src/libxml2/xmlregexp.c:5798,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlregexp.c:5792,1
    - Dst: strlen
      Src: /src/libxml2/xmlregexp.c:5797,1
    - Dst: xmlRegFreeAtom
      Src: /src/libxml2/xmlregexp.c:5802,1
    - Dst: memcpy
      Src: /src/libxml2/xmlregexp.c:5805,1
    - Dst: memcpy
      Src: /src/libxml2/xmlregexp.c:5807,1
    - Dst: snprintf
      Src: /src/libxml2/xmlregexp.c:5812,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlregexp.c:5814,1
    - Dst: xmlFAGenerateTransitions
      Src: /src/libxml2/xmlregexp.c:5816,1
    - Dst: xmlRegFreeAtom
      Src: /src/libxml2/xmlregexp.c:5817,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 6
    argNames:
    - am
    - from
    - to
    - token
    - token2
    - data
    argTypes:
    - xmlAutomata*
    - xmlAutomataState*
    - xmlAutomataState*
    - xmlChar*
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 5824
      start: 5777
    functionDepth: 0
    functionLinenumber: 5777
    functionLinenumberEnd: 5824
    functionName: xmlAutomataNewNegTrans
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegNewAtom
    - memcpy
    - xmlRegFreeAtom
    - xmlStrdup
    - xmlFAGenerateTransitions
    - strlen
    - snprintf
    - xmlMalloc
    linkageType: ''
    returnType: xmlAutomataState*
    signature: "xmlAutomataState *xmlAutomataNewNegTrans(xmlAutomata *am, xmlAutomataState
      *from,\t\t xmlAutomataState *to, const xmlChar *token,\t\t const xmlChar *token2,
      void *data) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegFreeRange
      Src: /src/libxml2/xmlregexp.c:854,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:862,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:860,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:858,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:856,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:863,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - atom
    argTypes:
    - xmlRegAtomPtr
    constantsTouched: []
    func_position:
      end: 864
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 864
    functionName: xmlRegFreeAtom
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRegFreeRange
    linkageType: ''
    returnType: void
    signature: 'static void xmlRegFreeAtom(xmlRegAtomPtr atom) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegStatePush
      Src: /src/libxml2/xmlregexp.c:1672,1
    - Dst: xmlRegStateAddTrans
      Src: /src/libxml2/xmlregexp.c:1677,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - ctxt
    - from
    - to
    - counter
    argTypes:
    - xmlRegParserCtxtPtr
    - xmlRegStatePtr
    - xmlRegStatePtr
    - int
    constantsTouched: []
    func_position:
      end: 1679
      start: 1668
    functionDepth: 0
    functionLinenumber: 1668
    functionLinenumberEnd: 1679
    functionName: xmlFAGenerateCountedTransition
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegStateAddTrans
    - xmlRegStatePush
    linkageType: ''
    returnType: int
    signature: "static int xmlFAGenerateCountedTransition(xmlRegParserCtxtPtr ctxt,\t
      xmlRegStatePtr from, xmlRegStatePtr to, int counter) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:483,1
    - Dst: memset
      Src: /src/libxml2/xmlregexp.c:485,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - dim1
    - dim2
    - elemSize
    argTypes:
    - size_t
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 487
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 487
    functionName: xmlRegCalloc2
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: void*
    signature: 'static void *xmlRegCalloc2(size_t dim1, size_t dim2, size_t elemSize) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegStatePush
      Src: /src/libxml2/xmlregexp.c:1653,1
    - Dst: xmlRegStateAddTrans
      Src: /src/libxml2/xmlregexp.c:1658,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - ctxt
    - from
    - to
    - counter
    argTypes:
    - xmlRegParserCtxtPtr
    - xmlRegStatePtr
    - xmlRegStatePtr
    - int
    constantsTouched: []
    func_position:
      end: 1660
      start: 1649
    functionDepth: 0
    functionLinenumber: 1649
    functionLinenumberEnd: 1660
    functionName: xmlFAGenerateCountedEpsilonTransition
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegStateAddTrans
    - xmlRegStatePush
    linkageType: ''
    returnType: int
    signature: "static int xmlFAGenerateCountedEpsilonTransition(xmlRegParserCtxtPtr
      ctxt,\t xmlRegStatePtr from, xmlRegStatePtr to, int counter) "
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: xmlFAEqualAtoms
      Src: /src/libxml2/xmlregexp.c:2840,1
    - Dst: xmlFAFinishRecurseDeterminism
      Src: /src/libxml2/xmlregexp.c:2904,1
    - Dst: xmlFARecurseDeterminism
      Src: /src/libxml2/xmlregexp.c:2902,1
    - Dst: xmlFACompareAtoms
      Src: /src/libxml2/xmlregexp.c:2881,1
    - Dst: xmlFAEqualAtoms
      Src: /src/libxml2/xmlregexp.c:2888,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 78
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 2941
      start: 2794
    functionDepth: 0
    functionLinenumber: 2794
    functionLinenumberEnd: 2941
    functionName: xmlFAComputesDeterminism
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFAEqualAtoms
    - xmlFARecurseDeterminism
    - xmlFAFinishRecurseDeterminism
    - xmlFACompareAtoms
    linkageType: ''
    returnType: int
    signature: 'static int xmlFAComputesDeterminism(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:1518,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:1548,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlregexp.c:1545,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlregexp.c:1551,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:1522,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:1553,1
    - Dst: xmlRegStateAddTransTo
      Src: /src/libxml2/xmlregexp.c:1566,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 6
    argNames:
    - ctxt
    - state
    - atom
    - target
    - counter
    - count
    argTypes:
    - xmlRegParserCtxtPtr
    - xmlRegStatePtr
    - xmlRegAtomPtr
    - xmlRegStatePtr
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1567
      start: 1510
    functionDepth: 0
    functionLinenumber: 1510
    functionLinenumberEnd: 1567
    functionName: xmlRegStateAddTrans
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegStateAddTransTo
    - xmlGrowCapacity
    - xmlRealloc
    - xmlRegexpErrMemory
    - ERROR
    linkageType: ''
    returnType: void
    signature: "static void xmlRegStateAddTrans(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr
      state,\t xmlRegAtomPtr atom, xmlRegStatePtr target,\t\t int counter, int count) "
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xmlFAEliminateSimpleEpsilonTransitions
      Src: /src/libxml2/xmlregexp.c:2079,1
    - Dst: xmlFAReduceEpsilonTransitions
      Src: /src/libxml2/xmlregexp.c:2117,1
    - Dst: xmlRegFreeState
      Src: /src/libxml2/xmlregexp.c:2194,1
    - Dst: xmlRegFreeState
      Src: /src/libxml2/xmlregexp.c:2083,1
    - Dst: xmlFAFinishReduceEpsilonTransitions
      Src: /src/libxml2/xmlregexp.c:2119,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 107
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 2199
      start: 2067
    functionDepth: 0
    functionLinenumber: 2067
    functionLinenumberEnd: 2199
    functionName: xmlFAEliminateEpsilonTransitions
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegFreeState
    - xmlFAEliminateSimpleEpsilonTransitions
    - xmlFAFinishReduceEpsilonTransitions
    - xmlFAReduceEpsilonTransitions
    linkageType: ''
    returnType: void
    signature: 'static void xmlFAEliminateEpsilonTransitions(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:3676,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:3681,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:3689,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:3687,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:3678,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:3692,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:3693,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 1
    argNames:
    - exec
    argTypes:
    - xmlRegExecCtxt*
    constantsTouched: []
    func_position:
      end: 3694
      start: 3665
    functionDepth: 0
    functionLinenumber: 3665
    functionLinenumberEnd: 3694
    functionName: xmlRegFreeExecCtxt
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'void xmlRegFreeExecCtxt(xmlRegExecCtxt *exec) '
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:4678,1
    - Dst: xmlStrndup
      Src: /src/libxml2/xmlregexp.c:4699,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:4703,1
    - Dst: xmlRegNewAtom
      Src: /src/libxml2/xmlregexp.c:4707,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:4701,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:4709,1
    - Dst: xmlRegAtomAddRange
      Src: /src/libxml2/xmlregexp.c:4714,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:4716,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 184
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 4719
      start: 4507
    functionDepth: 0
    functionLinenumber: 4507
    functionLinenumberEnd: 4719
    functionName: xmlFAParseCharProp
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRegAtomAddRange
    - xmlRegNewAtom
    - xmlStrndup
    - xmlRegexpErrMemory
    - ERROR
    linkageType: ''
    returnType: void
    signature: 'static void xmlFAParseCharProp(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlregexp.c:1577,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:1585,1
    - Dst: xmlRegNewState
      Src: /src/libxml2/xmlregexp.c:1592,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:1580,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlregexp.c:1583,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 1600
      start: 1569
    functionDepth: 0
    functionLinenumber: 1569
    functionLinenumberEnd: 1600
    functionName: xmlRegStatePush
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlRegNewState
    - xmlRegexpErrMemory
    linkageType: ''
    returnType: xmlRegStatePtr
    signature: 'static xmlRegStatePtr xmlRegStatePush(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegCheckCharacterRange
      Src: /src/libxml2/xmlregexp.c:2250,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlregexp.c:2263,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 165
    argCount: 2
    argNames:
    - range1
    - range2
    argTypes:
    - xmlRegRangePtr
    - xmlRegRangePtr
    constantsTouched: []
    func_position:
      end: 2362
      start: 2201
    functionDepth: 0
    functionLinenumber: 2201
    functionLinenumberEnd: 2362
    functionName: xmlFACompareRanges
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegCheckCharacterRange
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xmlFACompareRanges(xmlRegRangePtr range1, xmlRegRangePtr
      range2) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:3699,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlregexp.c:3703,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - exec
    - value
    argTypes:
    - xmlRegExecCtxtPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3710
      start: 3696
    functionDepth: 0
    functionLinenumber: 3696
    functionLinenumberEnd: 3710
    functionName: xmlRegExecSetErrString
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrdup
    linkageType: ''
    returnType: int
    signature: 'static int xmlRegExecSetErrString(xmlRegExecCtxtPtr exec, const xmlChar
      *value) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:4735,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 4740
      start: 4721
    functionDepth: 0
    functionLinenumber: 4721
    functionLinenumberEnd: 4740
    functionName: parse_escaped_codeunit
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - ERROR
    linkageType: ''
    returnType: int
    signature: 'static int parse_escaped_codeunit(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:828,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:830,1
    - Dst: memset
      Src: /src/libxml2/xmlregexp.c:833,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctxt
    - type
    argTypes:
    - xmlRegParserCtxtPtr
    - xmlRegAtomType
    constantsTouched: []
    func_position:
      end: 839
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 839
    functionName: xmlRegNewAtom
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    - xmlRegexpErrMemory
    linkageType: ''
    returnType: xmlRegAtomPtr
    signature: 'static xmlRegAtomPtr xmlRegNewAtom(xmlRegParserCtxtPtr ctxt, xmlRegAtomType
      type) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegExecGetValues
      Src: /src/libxml2/xmlregexp.c:4425,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 5
    argNames:
    - exec
    - nbval
    - nbneg
    - values
    - terminal
    argTypes:
    - xmlRegExecCtxt*
    - int*
    - int*
    - xmlChar**
    - int*
    constantsTouched: []
    func_position:
      end: 4426
      start: 4422
    functionDepth: 0
    functionLinenumber: 4422
    functionLinenumberEnd: 4426
    functionName: xmlRegExecNextValues
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegExecGetValues
    linkageType: ''
    returnType: int
    signature: 'int xmlRegExecNextValues(xmlRegExecCtxt *exec, int *nbval, int *nbneg,
      xmlChar **values, int *terminal) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFAParseBranch
      Src: /src/libxml2/xmlregexp.c:5367,1
    - Dst: xmlFAParseBranch
      Src: /src/libxml2/xmlregexp.c:5380,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - top
    argTypes:
    - xmlRegParserCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 5386
      start: 5360
    functionDepth: 0
    functionLinenumber: 5360
    functionLinenumberEnd: 5386
    functionName: xmlFAParseRegExp
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFAParseBranch
    linkageType: ''
    returnType: void
    signature: 'static void xmlFAParseRegExp(xmlRegParserCtxtPtr ctxt, int top) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFAEliminateEpsilonTransitions
      Src: /src/libxml2/xmlregexp.c:6302,1
    - Dst: xmlRegEpxFromParse
      Src: /src/libxml2/xmlregexp.c:6306,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - am
    argTypes:
    - xmlAutomata*
    constantsTouched: []
    func_position:
      end: 6309
      start: 6297
    functionDepth: 0
    functionLinenumber: 6297
    functionLinenumberEnd: 6309
    functionName: xmlAutomataCompile
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFAEliminateEpsilonTransitions
    - xmlRegEpxFromParse
    linkageType: ''
    returnType: xmlRegexp*
    signature: 'xmlRegexp *xmlAutomataCompile(xmlAutomata *am) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlregexp.c:3247,1
    - Dst: memset
      Src: /src/libxml2/xmlregexp.c:3261,1
    - Dst: memcpy
      Src: /src/libxml2/xmlregexp.c:3275,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlregexp.c:3253,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:3269,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 1
    argNames:
    - exec
    argTypes:
    - xmlRegExecCtxtPtr
    constantsTouched: []
    func_position:
      end: 3279
      start: 3232
    functionDepth: 0
    functionLinenumber: 3232
    functionLinenumberEnd: 3279
    functionName: xmlFARegExecSave
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - memcpy
    - xmlGrowCapacity
    - xmlRealloc
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: 'static void xmlFARegExecSave(xmlRegExecCtxtPtr exec) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libxml2/xmlregexp.c:3299,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - exec
    argTypes:
    - xmlRegExecCtxtPtr
    constantsTouched: []
    func_position:
      end: 3303
      start: 3281
    functionDepth: 0
    functionLinenumber: 3281
    functionLinenumberEnd: 3303
    functionName: xmlFARegExecRollBack
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: 'static void xmlFARegExecRollBack(xmlRegExecCtxtPtr exec) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegNewParserCtxt
      Src: /src/libxml2/xmlregexp.c:5578,1
    - Dst: xmlFreeAutomata
      Src: /src/libxml2/xmlregexp.c:5585,1
    - Dst: xmlRegStatePush
      Src: /src/libxml2/xmlregexp.c:5583,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 5595
      start: 5574
    functionDepth: 0
    functionLinenumber: 5574
    functionLinenumberEnd: 5595
    functionName: xmlNewAutomata
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegNewParserCtxt
    - xmlFreeAutomata
    - xmlRegStatePush
    linkageType: ''
    returnType: xmlAutomata*
    signature: 'xmlAutomata *xmlNewAutomata(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:5535,1
    - Dst: xmlRegFreeAtom
      Src: /src/libxml2/xmlregexp.c:5543,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:5539,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:5544,1
    - Dst: xmlRegFreeState
      Src: /src/libxml2/xmlregexp.c:5538,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:5547,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:5549,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:5551,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:5554,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:5555,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:5558,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 1
    argNames:
    - regexp
    argTypes:
    - xmlRegexp*
    constantsTouched: []
    func_position:
      end: 5559
      start: 5528
    functionDepth: 0
    functionLinenumber: 5528
    functionLinenumberEnd: 5559
    functionName: xmlRegFreeRegexp
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRegFreeState
    - xmlRegFreeAtom
    linkageType: ''
    returnType: void
    signature: 'void xmlRegFreeRegexp(xmlRegexp *regexp) '
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:991,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:999,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1007,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1011,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1019,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1027,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1035,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1039,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1047,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1055,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1073,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1077,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:989,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:997,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1017,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1005,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1025,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1033,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1037,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1045,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1053,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1061,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1079,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1083,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1065,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1069,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:981,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:987,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:983,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:995,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1003,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1015,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1023,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1031,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1043,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1051,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1071,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1075,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1059,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:985,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:993,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1009,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1001,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1013,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1021,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1029,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1041,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1049,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1057,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1081,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1063,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1085,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1067,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 55
    argCount: 2
    argNames:
    - output
    - type
    argTypes:
    - FILE*
    - xmlRegAtomType
    constantsTouched: []
    func_position:
      end: 1087
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 1087
    functionName: xmlRegPrintAtomType
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlRegPrintAtomType(FILE *output, xmlRegAtomType type) '
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegCompactPushString
      Src: /src/libxml2/xmlregexp.c:3893,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlregexp.c:3953,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlregexp.c:3960,1
    - Dst: xmlRegStrEqualWildcard
      Src: /src/libxml2/xmlregexp.c:4003,1
    - Dst: xmlFARegExecSaveInputString
      Src: /src/libxml2/xmlregexp.c:3906,1
    - Dst: xmlFARegExecSaveInputString
      Src: /src/libxml2/xmlregexp.c:4027,1
    - Dst: xmlFARegExecSave
      Src: /src/libxml2/xmlregexp.c:4029,1
    - Dst: xmlFARegExecSaveInputString
      Src: /src/libxml2/xmlregexp.c:4060,1
    - Dst: xmlFARegExecSave
      Src: /src/libxml2/xmlregexp.c:4062,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlregexp.c:4066,1
    - Dst: xmlFARegExecSave
      Src: /src/libxml2/xmlregexp.c:4093,1
    - Dst: xmlRegExecSetErrString
      Src: /src/libxml2/xmlregexp.c:4109,1
    - Dst: memcpy
      Src: /src/libxml2/xmlregexp.c:4151,1
    - Dst: xmlRegExecSetErrString
      Src: /src/libxml2/xmlregexp.c:4147,1
    - Dst: xmlFARegExecRollBack
      Src: /src/libxml2/xmlregexp.c:4159,1
    - Dst: memcpy
      Src: /src/libxml2/xmlregexp.c:4112,1
    - Dst: xmlFARegExecSaveInputString
      Src: /src/libxml2/xmlregexp.c:4091,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 232
    argCount: 4
    argNames:
    - exec
    - value
    - data
    - compound
    argTypes:
    - xmlRegExecCtxtPtr
    - xmlChar*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 4174
      start: 3876
    functionDepth: 0
    functionLinenumber: 3876
    functionLinenumberEnd: 4174
    functionName: xmlRegExecPushStringInternal
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFARegExecSave
    - xmlRegExecSetErrString
    - xmlFARegExecSaveInputString
    - memcpy
    - xmlRegStrEqualWildcard
    - xmlFARegExecRollBack
    - xmlStrEqual
    - xmlRegCompactPushString
    linkageType: ''
    returnType: int
    signature: "static int xmlRegExecPushStringInternal(xmlRegExecCtxtPtr exec, const
      xmlChar *value,\t void *data, int compound) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFARegExec
      Src: /src/libxml2/xmlregexp.c:5471,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - comp
    - content
    argTypes:
    - xmlRegexp*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5472
      start: 5467
    functionDepth: 0
    functionLinenumber: 5467
    functionLinenumberEnd: 5472
    functionName: xmlRegexpExec
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFARegExec
    linkageType: ''
    returnType: int
    signature: 'int xmlRegexpExec(xmlRegexp *comp, const xmlChar *content) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - am
    - state
    argTypes:
    - xmlAutomata*
    - xmlAutomataState*
    constantsTouched: []
    func_position:
      end: 5656
      start: 5650
    functionDepth: 0
    functionLinenumber: 5650
    functionLinenumberEnd: 5656
    functionName: xmlAutomataSetFinalState
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlAutomataSetFinalState(xmlAutomata *am, xmlAutomataState *state) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1093,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1097,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1095,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1099,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1101,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1103,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1105,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1107,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 10
    argCount: 2
    argNames:
    - output
    - type
    argTypes:
    - FILE*
    - xmlRegQuantType
    constantsTouched: []
    func_position:
      end: 1109
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1109
    functionName: xmlRegPrintQuantType
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlRegPrintQuantType(FILE *output, xmlRegQuantType type) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:954,1
    - Dst: xmlRegFreeState
      Src: /src/libxml2/xmlregexp.c:957,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:958,1
    - Dst: xmlRegFreeAtom
      Src: /src/libxml2/xmlregexp.c:962,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:963,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:966,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:967,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 968
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 968
    functionName: xmlRegFreeParserCtxt
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRegFreeState
    - xmlRegFreeAtom
    linkageType: ''
    returnType: void
    signature: 'static void xmlRegFreeParserCtxt(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegStrEqualWildcard
      Src: /src/libxml2/xmlregexp.c:3838,1
    - Dst: xmlRegExecSetErrString
      Src: /src/libxml2/xmlregexp.c:3862,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 4
    argNames:
    - exec
    - comp
    - value
    - data
    argTypes:
    - xmlRegExecCtxtPtr
    - xmlRegexpPtr
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 3864
      start: 3810
    functionDepth: 0
    functionLinenumber: 3810
    functionLinenumberEnd: 3864
    functionName: xmlRegCompactPushString
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegExecSetErrString
    - xmlRegStrEqualWildcard
    linkageType: ''
    returnType: int
    signature: "static int xmlRegCompactPushString(xmlRegExecCtxtPtr exec,\t xmlRegexpPtr
      comp,\t const xmlChar *value,\t void *data) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - am
    argTypes:
    - xmlAutomata*
    constantsTouched: []
    func_position:
      end: 5639
      start: 5634
    functionDepth: 0
    functionLinenumber: 5634
    functionLinenumberEnd: 5639
    functionName: xmlAutomataGetInitState
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlAutomataState*
    signature: 'xmlAutomataState *xmlAutomataGetInitState(xmlAutomata *am) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:761,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ctxt
    - neg
    - type
    - start
    - end
    argTypes:
    - xmlRegParserCtxtPtr
    - int
    - xmlRegAtomType
    - int
    - int
    constantsTouched: []
    func_position:
      end: 771
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 771
    functionName: xmlRegNewRange
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlMalloc
    - xmlRegexpErrMemory
    linkageType: ''
    returnType: xmlRegRangePtr
    signature: "static xmlRegRangePtr xmlRegNewRange(xmlRegParserCtxtPtr ctxt,\t int
      neg, xmlRegAtomType type, int start, int end) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:914,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:916,1
    - Dst: memset
      Src: /src/libxml2/xmlregexp.c:919,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 923
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 923
    functionName: xmlRegNewState
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    - xmlRegexpErrMemory
    linkageType: ''
    returnType: xmlRegStatePtr
    signature: 'static xmlRegStatePtr xmlRegNewState(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:6184,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 3
    argNames:
    - am
    - from
    - to
    argTypes:
    - xmlAutomata*
    - xmlAutomataState*
    - xmlAutomataState*
    constantsTouched: []
    func_position:
      end: 6188
      start: 6179
    functionDepth: 0
    functionLinenumber: 6179
    functionLinenumberEnd: 6188
    functionName: xmlAutomataNewEpsilon
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFAGenerateEpsilonTransition
    linkageType: ''
    returnType: xmlAutomataState*
    signature: "xmlAutomataState *xmlAutomataNewEpsilon(xmlAutomata *am, xmlAutomataState
      *from,\t\t xmlAutomataState *to) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewAutomata
      Src: /src/libxml2/xmlregexp.c:5499,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:5507,1
    - Dst: xmlFAComputesDeterminism
      Src: /src/libxml2/xmlregexp.c:5515,1
    - Dst: xmlFreeAutomata
      Src: /src/libxml2/xmlregexp.c:5518,1
    - Dst: xmlRegFreeState
      Src: /src/libxml2/xmlregexp.c:5506,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - comp
    argTypes:
    - xmlRegexp*
    constantsTouched: []
    func_position:
      end: 5521
      start: 5489
    functionDepth: 0
    functionLinenumber: 5489
    functionLinenumberEnd: 5521
    functionName: xmlRegexpIsDeterminist
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlNewAutomata
    - xmlFreeAutomata
    - xmlFAComputesDeterminism
    - xmlRegFreeState
    linkageType: ''
    returnType: int
    signature: 'int xmlRegexpIsDeterminist(xmlRegexp *comp) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlRaiseError
      Src: /src/libxml2/xmlregexp.c:449,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:454,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ctxt
    - extra
    argTypes:
    - xmlRegParserCtxtPtr
    - char*
    constantsTouched: []
    func_position:
      end: 455
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 455
    functionName: xmlRegexpErrCompile
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRaiseError
    - xmlRegexpErrMemory
    linkageType: ''
    returnType: void
    signature: 'static void xmlRegexpErrCompile(xmlRegParserCtxtPtr ctxt, const char
      *extra) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1112,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1114,1
    - Dst: xmlRegPrintAtomType
      Src: /src/libxml2/xmlregexp.c:1115,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - output
    - range
    argTypes:
    - FILE*
    - xmlRegRangePtr
    constantsTouched: []
    func_position:
      end: 1117
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1117
    functionName: xmlRegPrintRange
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegPrintAtomType
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlRegPrintRange(FILE *output, xmlRegRangePtr range) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1209,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1245,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1213,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - output
    - regexp
    - state
    - atom
    argTypes:
    - FILE*
    - xmlRegexpPtr
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1246
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1246
    functionName: xmlRegPrintTransCompact
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlRegPrintTransCompact( FILE* output, xmlRegexpPtr regexp,
      int state, int atom) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:1459,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlregexp.c:1472,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:1469,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:1474,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlregexp.c:1466,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - atom
    argTypes:
    - xmlRegParserCtxtPtr
    - xmlRegAtomPtr
    constantsTouched: []
    func_position:
      end: 1483
      start: 1456
    functionDepth: 0
    functionLinenumber: 1456
    functionLinenumberEnd: 1483
    functionName: xmlRegAtomPush
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - ERROR
    - xmlRegexpErrMemory
    linkageType: ''
    returnType: int
    signature: 'static int xmlRegAtomPush(xmlRegParserCtxtPtr ctxt, xmlRegAtomPtr
      atom) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegStateAddTrans
      Src: /src/libxml2/xmlregexp.c:1958,1
    - Dst: xmlFAReduceEpsilonTransitions
      Src: /src/libxml2/xmlregexp.c:1961,1
    - Dst: xmlRegStateAddTrans
      Src: /src/libxml2/xmlregexp.c:1966,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - ctxt
    - fromnr
    - tonr
    - counter
    argTypes:
    - xmlRegParserCtxtPtr
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1970
      start: 1918
    functionDepth: 0
    functionLinenumber: 1918
    functionLinenumberEnd: 1970
    functionName: xmlFAReduceEpsilonTransitions
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegStateAddTrans
    - xmlFAReduceEpsilonTransitions
    linkageType: ''
    returnType: void
    signature: "static void xmlFAReduceEpsilonTransitions(xmlRegParserCtxtPtr ctxt,
      int fromnr,\t int tonr, int counter) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - FILE*
    - xmlRegexp*
    constantsTouched: []
    func_position:
      end: 5405
      start: 5402
    functionDepth: 0
    functionLinenumber: 5402
    functionLinenumberEnd: 5405
    functionName: xmlRegexpPrint
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlRegexpPrint(FILE *output ATTRIBUTE_UNUSED, xmlRegexp *regexp
      ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegFreeParserCtxt
      Src: /src/libxml2/xmlregexp.c:5608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - am
    argTypes:
    - xmlAutomata*
    constantsTouched: []
    func_position:
      end: 5609
      start: 5604
    functionDepth: 0
    functionLinenumber: 5604
    functionLinenumberEnd: 5609
    functionName: xmlFreeAutomata
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegFreeParserCtxt
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeAutomata(xmlAutomata *am) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1121,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1123,1
    - Dst: xmlRegPrintAtomType
      Src: /src/libxml2/xmlregexp.c:1128,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1127,1
    - Dst: xmlRegPrintQuantType
      Src: /src/libxml2/xmlregexp.c:1129,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1131,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1133,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1135,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1138,1
    - Dst: xmlRegPrintRange
      Src: /src/libxml2/xmlregexp.c:1140,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1142,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - output
    - atom
    argTypes:
    - FILE*
    - xmlRegAtomPtr
    constantsTouched: []
    func_position:
      end: 1144
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1144
    functionName: xmlRegPrintAtom
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegPrintAtomType
    - xmlRegPrintRange
    - fprintf
    - xmlRegPrintQuantType
    linkageType: ''
    returnType: void
    signature: 'static void xmlRegPrintAtom(FILE *output, xmlRegAtomPtr atom) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1252,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1260,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1254,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1258,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1262,1
    - Dst: xmlRegPrintTrans
      Src: /src/libxml2/xmlregexp.c:1264,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - output
    - state
    argTypes:
    - FILE*
    - xmlRegStatePtr
    constantsTouched: []
    func_position:
      end: 1266
      start: 1248
    functionDepth: 0
    functionLinenumber: 1248
    functionLinenumberEnd: 1266
    functionName: xmlRegPrintState
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - fprintf
    - xmlRegPrintTrans
    linkageType: ''
    returnType: void
    signature: 'static void xmlRegPrintState(FILE *output, xmlRegStatePtr state) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/xmlregexp.c:1492,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:1500,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:1495,1
    - Dst: xmlRealloc
      Src: /src/libxml2/xmlregexp.c:1498,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - ctxt
    - target
    - from
    argTypes:
    - xmlRegParserCtxtPtr
    - xmlRegStatePtr
    - int
    constantsTouched: []
    func_position:
      end: 1508
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1508
    functionName: xmlRegStateAddTransTo
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlRegexpErrMemory
    linkageType: ''
    returnType: void
    signature: 'static void xmlRegStateAddTransTo(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr
      target, int from) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/xmlregexp.c:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 428
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 428
    functionName: xmlRegexpErrMemory
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRaiseMemoryError
    linkageType: ''
    returnType: void
    signature: 'static void xmlRegexpErrMemory(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:1732,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:1738,1
    - Dst: xmlRegGetCounter
      Src: /src/libxml2/xmlregexp.c:1809,1
    - Dst: xmlRegStateAddTrans
      Src: /src/libxml2/xmlregexp.c:1898,1
    - Dst: xmlRegAtomPush
      Src: /src/libxml2/xmlregexp.c:1907,1
    - Dst: xmlRegStateAddTrans
      Src: /src/libxml2/xmlregexp.c:1894,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:1851,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:1716,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:1737,1
    - Dst: xmlRegStatePush
      Src: /src/libxml2/xmlregexp.c:1754,1
    - Dst: xmlFAGenerateCountedEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:1795,1
    - Dst: xmlRegStatePush
      Src: /src/libxml2/xmlregexp.c:1847,1
    - Dst: xmlRegStatePush
      Src: /src/libxml2/xmlregexp.c:1871,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:1902,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:1695,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:1708,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:1729,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:1742,1
    - Dst: xmlRegFreeAtom
      Src: /src/libxml2/xmlregexp.c:1785,1
    - Dst: xmlRegGetCounter
      Src: /src/libxml2/xmlregexp.c:1789,1
    - Dst: xmlFAGenerateCountedTransition
      Src: /src/libxml2/xmlregexp.c:1815,1
    - Dst: xmlFAGenerateCountedEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:1818,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:1822,1
    - Dst: xmlRegAtomPush
      Src: /src/libxml2/xmlregexp.c:1837,1
    - Dst: xmlRegFreeAtom
      Src: /src/libxml2/xmlregexp.c:1853,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:1728,1
    - Dst: xmlRegStatePush
      Src: /src/libxml2/xmlregexp.c:1712,1
    - Dst: xmlFAGenerateTransitions
      Src: /src/libxml2/xmlregexp.c:1783,1
    - Dst: xmlFAGenerateCountedTransition
      Src: /src/libxml2/xmlregexp.c:1798,1
    - Dst: xmlRegCopyAtom
      Src: /src/libxml2/xmlregexp.c:1776,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:1801,1
    - Dst: xmlRegStatePush
      Src: /src/libxml2/xmlregexp.c:1857,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:1874,1
    - Dst: xmlRegStateAddTrans
      Src: /src/libxml2/xmlregexp.c:1884,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:1893,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:1889,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 143
    argCount: 4
    argNames:
    - ctxt
    - from
    - to
    - atom
    argTypes:
    - xmlRegParserCtxtPtr
    - xmlRegStatePtr
    - xmlRegStatePtr
    - xmlRegAtomPtr
    constantsTouched: []
    func_position:
      end: 1910
      start: 1688
    functionDepth: 0
    functionLinenumber: 1688
    functionLinenumberEnd: 1910
    functionName: xmlFAGenerateTransitions
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegStatePush
    - xmlRegCopyAtom
    - xmlRegStateAddTrans
    - xmlRegFreeAtom
    - xmlRegGetCounter
    - xmlFAGenerateCountedTransition
    - xmlFAGenerateEpsilonTransition
    - xmlFAGenerateTransitions
    - ERROR
    - xmlRegAtomPush
    - xmlFAGenerateCountedEpsilonTransition
    linkageType: ''
    returnType: int
    signature: "static int xmlFAGenerateTransitions(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr
      from,\t xmlRegStatePtr to, xmlRegAtomPtr atom) "
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:499,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:516,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:544,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:546,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:568,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:570,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:590,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:602,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:613,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:614,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:704,1
    - Dst: xmlRegFreeAtom
      Src: /src/libxml2/xmlregexp.c:692,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:703,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:646,1
    - Dst: xmlRegFreeState
      Src: /src/libxml2/xmlregexp.c:685,1
    - Dst: xmlRegexpIsDeterminist
      Src: /src/libxml2/xmlregexp.c:515,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:501,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:569,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:565,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:561,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlregexp.c:585,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:588,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:591,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:598,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:603,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:663,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:615,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:517,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:547,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:558,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:567,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlregexp.c:578,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:562,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:592,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:601,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:667,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:664,1
    - Dst: memset
      Src: /src/libxml2/xmlregexp.c:504,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:560,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:589,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:599,1
    - Dst: xmlRegCalloc2
      Src: /src/libxml2/xmlregexp.c:607,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:610,1
    - Dst: xmlRegCalloc2
      Src: /src/libxml2/xmlregexp.c:643,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:661,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:666,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:693,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:662,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:686,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:611,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 206
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 715
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 715
    functionName: xmlRegEpxFromParse
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlRegFreeAtom
    - xmlRegexpErrMemory
    - xmlStrdup
    - xmlStrEqual
    - xmlRegexpIsDeterminist
    - xmlRegFreeState
    - xmlMalloc
    - xmlRegCalloc2
    linkageType: ''
    returnType: xmlRegexpPtr
    signature: 'static xmlRegexpPtr xmlRegEpxFromParse(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:4951,1
    - Dst: xmlGetUTF8Char
      Src: /src/libxml2/xmlregexp.c:4975,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:4977,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:4968,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:4981,1
    - Dst: NXT
      Src: /src/libxml2/xmlregexp.c:4988,1
    - Dst: NEXTL
      Src: /src/libxml2/xmlregexp.c:4989,1
    - Dst: NEXTL
      Src: /src/libxml2/xmlregexp.c:4992,1
    - Dst: NXT
      Src: /src/libxml2/xmlregexp.c:4994,1
    - Dst: NXT
      Src: /src/libxml2/xmlregexp.c:4994,1
    - Dst: xmlGetUTF8Char
      Src: /src/libxml2/xmlregexp.c:5019,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:5021,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:5013,1
    - Dst: xmlRegAtomAddRange
      Src: /src/libxml2/xmlregexp.c:5034,1
    - Dst: xmlRegAtomAddRange
      Src: /src/libxml2/xmlregexp.c:4995,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:5025,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:5031,1
    - Dst: NEXTL
      Src: /src/libxml2/xmlregexp.c:5033,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 81
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 5037
      start: 4944
    functionDepth: 0
    functionLinenumber: 4944
    functionLinenumberEnd: 5037
    functionName: xmlFAParseCharRange
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegAtomAddRange
    - NXT
    - NEXTL
    - ERROR
    - xmlGetUTF8Char
    linkageType: ''
    returnType: void
    signature: 'static void xmlFAParseCharRange(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegNewParserCtxt
      Src: /src/libxml2/xmlregexp.c:5425,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:5439,1
    - Dst: xmlFAParseRegExp
      Src: /src/libxml2/xmlregexp.c:5437,1
    - Dst: xmlRegStatePush
      Src: /src/libxml2/xmlregexp.c:5430,1
    - Dst: xmlFAEliminateEpsilonTransitions
      Src: /src/libxml2/xmlregexp.c:5448,1
    - Dst: xmlRegEpxFromParse
      Src: /src/libxml2/xmlregexp.c:5453,1
    - Dst: xmlRegFreeParserCtxt
      Src: /src/libxml2/xmlregexp.c:5456,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 1
    argNames:
    - regexp
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5458
      start: 5417
    functionDepth: 0
    functionLinenumber: 5417
    functionLinenumberEnd: 5458
    functionName: xmlRegexpCompile
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegStatePush
    - xmlFAEliminateEpsilonTransitions
    - xmlRegFreeParserCtxt
    - xmlRegEpxFromParse
    - xmlRegNewParserCtxt
    - ERROR
    - xmlFAParseRegExp
    linkageType: ''
    returnType: xmlRegexp*
    signature: 'xmlRegexp *xmlRegexpCompile(const xmlChar *regexp) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - am
    - flags
    argTypes:
    - xmlAutomata*
    - int
    constantsTouched: []
    func_position:
      end: 5624
      start: 5619
    functionDepth: 0
    functionLinenumber: 5619
    functionLinenumberEnd: 5624
    functionName: xmlAutomataSetFlags
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlAutomataSetFlags(xmlAutomata *am, int flags) '
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegNewAtom
      Src: /src/libxml2/xmlregexp.c:4779,1
    - Dst: xmlFAParseCharProp
      Src: /src/libxml2/xmlregexp.c:4800,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:4788,1
    - Dst: xmlRegAtomAddRange
      Src: /src/libxml2/xmlregexp.c:4781,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:4796,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:4802,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:4809,1
    - Dst: xmlFAParseCharProp
      Src: /src/libxml2/xmlregexp.c:4813,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:4817,1
    - Dst: xmlRegNewAtom
      Src: /src/libxml2/xmlregexp.c:4845,1
    - Dst: parse_escaped_codepoint
      Src: /src/libxml2/xmlregexp.c:4858,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:4929,1
    - Dst: xmlRegAtomAddRange
      Src: /src/libxml2/xmlregexp.c:4880,1
    - Dst: xmlRegAtomAddRange
      Src: /src/libxml2/xmlregexp.c:4925,1
    - Dst: xmlRegNewAtom
      Src: /src/libxml2/xmlregexp.c:4923,1
    CyclomaticComplexity: 81
    EdgeCount: 81
    ICount: 161
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 4931
      start: 4773
    functionDepth: 0
    functionLinenumber: 4773
    functionLinenumberEnd: 4931
    functionName: xmlFAParseCharClassEsc
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegAtomAddRange
    - xmlRegNewAtom
    - parse_escaped_codepoint
    - ERROR
    - xmlFAParseCharProp
    linkageType: ''
    returnType: void
    signature: 'static void xmlFAParseCharClassEsc(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlFAParseQuantExact
      Src: /src/libxml2/xmlregexp.c:5180,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:5202,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:5184,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:5195,1
    - Dst: xmlFAParseQuantExact
      Src: /src/libxml2/xmlregexp.c:5191,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 5214
      start: 5159
    functionDepth: 0
    functionLinenumber: 5159
    functionLinenumberEnd: 5214
    functionName: xmlFAParseQuantifier
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - ERROR
    - xmlFAParseQuantExact
    linkageType: ''
    returnType: int
    signature: 'static int xmlFAParseQuantifier(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegNewAtom
      Src: /src/libxml2/xmlregexp.c:6031,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlregexp.c:6035,1
    - Dst: strlen
      Src: /src/libxml2/xmlregexp.c:6042,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:6045,1
    - Dst: strlen
      Src: /src/libxml2/xmlregexp.c:6043,1
    - Dst: memcpy
      Src: /src/libxml2/xmlregexp.c:6048,1
    - Dst: memcpy
      Src: /src/libxml2/xmlregexp.c:6050,1
    - Dst: xmlRegGetCounter
      Src: /src/libxml2/xmlregexp.c:6062,1
    - Dst: xmlRegStatePush
      Src: /src/libxml2/xmlregexp.c:6070,1
    - Dst: xmlRegStateAddTrans
      Src: /src/libxml2/xmlregexp.c:6074,1
    - Dst: xmlRegFreeAtom
      Src: /src/libxml2/xmlregexp.c:6081,1
    - Dst: xmlRegAtomPush
      Src: /src/libxml2/xmlregexp.c:6075,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 55
    argCount: 8
    argNames:
    - am
    - from
    - to
    - token
    - token2
    - min
    - max
    - data
    argTypes:
    - xmlAutomata*
    - xmlAutomataState*
    - xmlAutomataState*
    - xmlChar*
    - xmlChar*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 6083
      start: 6017
    functionDepth: 0
    functionLinenumber: 6017
    functionLinenumberEnd: 6083
    functionName: xmlAutomataNewOnceTrans2
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegNewAtom
    - memcpy
    - xmlRegStatePush
    - xmlRegStateAddTrans
    - xmlRegGetCounter
    - xmlRegFreeAtom
    - xmlStrdup
    - xmlRegAtomPush
    - strlen
    - xmlMalloc
    linkageType: ''
    returnType: xmlAutomataState*
    signature: "xmlAutomataState *xmlAutomataNewOnceTrans2(xmlAutomata *am, xmlAutomataState
      *from,\t\t\t xmlAutomataState *to, const xmlChar *token,\t\t\t const xmlChar
      *token2,\t\t\t int min, int max, void *data) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:727,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlregexp.c:732,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:734,1
    - Dst: memset
      Src: /src/libxml2/xmlregexp.c:730,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - string
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 744
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 744
    functionName: xmlRegNewParserCtxt
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - memset
    - xmlFree
    - xmlMalloc
    linkageType: ''
    returnType: xmlRegParserCtxtPtr
    signature: 'static xmlRegParserCtxtPtr xmlRegNewParserCtxt(const xmlChar *string) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_escaped_codeunit
      Src: /src/libxml2/xmlregexp.c:4744,1
    - Dst: parse_escaped_codeunit
      Src: /src/libxml2/xmlregexp.c:4750,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:4756,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 4760
      start: 4742
    functionDepth: 0
    functionLinenumber: 4742
    functionLinenumberEnd: 4760
    functionName: parse_escaped_codepoint
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - parse_escaped_codeunit
    - ERROR
    linkageType: ''
    returnType: int
    signature: 'static int parse_escaped_codepoint(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFAParseCharClassEsc
      Src: /src/libxml2/xmlregexp.c:5048,1
    - Dst: xmlFAParseCharRange
      Src: /src/libxml2/xmlregexp.c:5050,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 5054
      start: 5044
    functionDepth: 0
    functionLinenumber: 5044
    functionLinenumberEnd: 5054
    functionName: xmlFAParsePosCharGroup
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFAParseCharClassEsc
    - xmlFAParseCharRange
    linkageType: ''
    returnType: void
    signature: 'static void xmlFAParsePosCharGroup(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 5148
      start: 5123
    functionDepth: 0
    functionLinenumber: 5123
    functionLinenumberEnd: 5148
    functionName: xmlFAParseQuantExact
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlFAParseQuantExact(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegNewAtom
      Src: /src/libxml2/xmlregexp.c:5952,1
    - Dst: xmlRegStateAddTrans
      Src: /src/libxml2/xmlregexp.c:5980,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlregexp.c:5955,1
    - Dst: xmlRegStatePush
      Src: /src/libxml2/xmlregexp.c:5976,1
    - Dst: xmlRegGetCounter
      Src: /src/libxml2/xmlregexp.c:5968,1
    - Dst: xmlRegAtomPush
      Src: /src/libxml2/xmlregexp.c:5981,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:5990,1
    - Dst: xmlRegFreeAtom
      Src: /src/libxml2/xmlregexp.c:5994,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 41
    argCount: 7
    argNames:
    - am
    - from
    - to
    - token
    - min
    - max
    - data
    argTypes:
    - xmlAutomata*
    - xmlAutomataState*
    - xmlAutomataState*
    - xmlChar*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 5996
      start: 5939
    functionDepth: 0
    functionLinenumber: 5939
    functionLinenumberEnd: 5996
    functionName: xmlAutomataNewCountTrans
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegNewAtom
    - xmlRegStatePush
    - xmlRegStateAddTrans
    - xmlRegGetCounter
    - xmlRegFreeAtom
    - xmlFAGenerateEpsilonTransition
    - xmlStrdup
    - xmlRegAtomPush
    linkageType: ''
    returnType: xmlAutomataState*
    signature: "xmlAutomataState *xmlAutomataNewCountTrans(xmlAutomata *am, xmlAutomataState
      *from,\t\t\t xmlAutomataState *to, const xmlChar *token,\t\t\t int min, int
      max, void *data) "
  - BBCount: 32
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 142
    argCount: 6
    argNames:
    - exec
    - err
    - nbval
    - nbneg
    - values
    - terminal
    argTypes:
    - xmlRegExecCtxtPtr
    - int
    - int*
    - int*
    - xmlChar**
    - int*
    constantsTouched: []
    func_position:
      end: 4403
      start: 4261
    functionDepth: 0
    functionLinenumber: 4261
    functionLinenumberEnd: 4403
    functionName: xmlRegExecGetValues
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "static int xmlRegExecGetValues(xmlRegExecCtxtPtr exec, int err, int
      *nbval, int *nbneg,\t\t xmlChar **values, int *terminal) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegNewRange
      Src: /src/libxml2/xmlregexp.c:802,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlregexp.c:807,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:809,1
    - Dst: xmlRegFreeRange
      Src: /src/libxml2/xmlregexp.c:810,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ctxt
    - range
    argTypes:
    - xmlRegParserCtxtPtr
    - xmlRegRangePtr
    constantsTouched: []
    func_position:
      end: 815
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 815
    functionName: xmlRegCopyRange
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - xmlRegNewRange
    - xmlRegFreeRange
    - xmlRegexpErrMemory
    linkageType: ''
    returnType: xmlRegRangePtr
    signature: 'static xmlRegRangePtr xmlRegCopyRange(xmlRegParserCtxtPtr ctxt, xmlRegRangePtr
      range) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1153,1
    - Dst: xmlRegPrintAtomType
      Src: /src/libxml2/xmlregexp.c:1155,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1158,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1157,1
    - Dst: xmlRegPrintQuantType
      Src: /src/libxml2/xmlregexp.c:1156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - output
    - regexp
    - atom
    argTypes:
    - FILE*
    - xmlRegexpPtr
    - int
    constantsTouched: []
    func_position:
      end: 1159
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1159
    functionName: xmlRegPrintAtomCompact
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegPrintAtomType
    - fprintf
    - xmlRegPrintQuantType
    linkageType: ''
    returnType: void
    signature: 'static void xmlRegPrintAtomCompact(FILE* output, xmlRegexpPtr regexp,
      int atom) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlFAParsePiece
      Src: /src/libxml2/xmlregexp.c:5322,1
    - Dst: xmlFAGenerateEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:5325,1
    - Dst: xmlRegFreeAtom
      Src: /src/libxml2/xmlregexp.c:5330,1
    - Dst: xmlFAParsePiece
      Src: /src/libxml2/xmlregexp.c:5338,1
    - Dst: xmlFAGenerateTransitions
      Src: /src/libxml2/xmlregexp.c:5327,1
    - Dst: xmlFAGenerateTransitions
      Src: /src/libxml2/xmlregexp.c:5340,1
    - Dst: xmlRegFreeAtom
      Src: /src/libxml2/xmlregexp.c:5343,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - ctxt
    - to
    argTypes:
    - xmlRegParserCtxtPtr
    - xmlRegStatePtr
    constantsTouched: []
    func_position:
      end: 5352
      start: 5316
    functionDepth: 0
    functionLinenumber: 5316
    functionLinenumberEnd: 5352
    functionName: xmlFAParseBranch
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFAGenerateTransitions
    - xmlRegFreeAtom
    - xmlFAGenerateEpsilonTransition
    - xmlFAParsePiece
    linkageType: ''
    returnType: int
    signature: 'static int xmlFAParseBranch(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr
      to) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFAGenerateCountedTransition
      Src: /src/libxml2/xmlregexp.c:6282,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 4
    argNames:
    - am
    - from
    - to
    - counter
    argTypes:
    - xmlAutomata*
    - xmlAutomataState*
    - xmlAutomataState*
    - int
    constantsTouched: []
    func_position:
      end: 6286
      start: 6277
    functionDepth: 0
    functionLinenumber: 6277
    functionLinenumberEnd: 6286
    functionName: xmlAutomataNewCounterTrans
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFAGenerateCountedTransition
    linkageType: ''
    returnType: xmlAutomataState*
    signature: "xmlAutomataState *xmlAutomataNewCounterTrans(xmlAutomata *am, xmlAutomataState
      *from,\t\txmlAutomataState *to, int counter) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1163,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1174,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1176,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1169,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1165,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1179,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1182,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1184,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1187,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1191,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1192,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - output
    - trans
    argTypes:
    - FILE*
    - xmlRegTransPtr
    constantsTouched: []
    func_position:
      end: 1193
      start: 1161
    functionDepth: 0
    functionLinenumber: 1161
    functionLinenumberEnd: 1193
    functionName: xmlRegPrintTrans
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlRegPrintTrans(FILE *output, xmlRegTransPtr trans) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:3614,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:3640,1
    - Dst: memset
      Src: /src/libxml2/xmlregexp.c:3643,1
    - Dst: memset
      Src: /src/libxml2/xmlregexp.c:3617,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:3637,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 3
    argNames:
    - comp
    - callback
    - data
    argTypes:
    - xmlRegexp*
    - xmlRegExecCallbacks
    - void*
    constantsTouched: []
    func_position:
      end: 3656
      start: 3606
    functionDepth: 0
    functionLinenumber: 3606
    functionLinenumberEnd: 3656
    functionName: xmlRegNewExecCtxt
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlRegExecCtxt*
    signature: 'xmlRegExecCtxt *xmlRegNewExecCtxt(xmlRegexp *comp, xmlRegExecCallbacks
      callback, void *data) '
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:3332,1
    - Dst: xmlGetUTF8Char
      Src: /src/libxml2/xmlregexp.c:3400,1
    - Dst: xmlFARegExecSave
      Src: /src/libxml2/xmlregexp.c:3431,1
    - Dst: memset
      Src: /src/libxml2/xmlregexp.c:3336,1
    - Dst: xmlRegCheckCharacter
      Src: /src/libxml2/xmlregexp.c:3406,1
    - Dst: xmlFARegExecSave
      Src: /src/libxml2/xmlregexp.c:3463,1
    - Dst: xmlGetUTF8Char
      Src: /src/libxml2/xmlregexp.c:3470,1
    - Dst: xmlRegCheckCharacter
      Src: /src/libxml2/xmlregexp.c:3476,1
    - Dst: xmlFARegExecSave
      Src: /src/libxml2/xmlregexp.c:3518,1
    - Dst: xmlFARegExecRollBack
      Src: /src/libxml2/xmlregexp.c:3562,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:3581,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:3574,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:3576,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 221
    argCount: 2
    argNames:
    - comp
    - content
    argTypes:
    - xmlRegexpPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3587
      start: 3311
    functionDepth: 0
    functionLinenumber: 3311
    functionLinenumberEnd: 3587
    functionName: xmlFARegExec
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFARegExecSave
    - xmlFree
    - memset
    - xmlRegCheckCharacter
    - xmlFARegExecRollBack
    - xmlMalloc
    - xmlGetUTF8Char
    linkageType: ''
    returnType: int
    signature: 'static int xmlFARegExec(xmlRegexpPtr comp, const xmlChar *content) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegExecPushStringInternal
      Src: /src/libxml2/xmlregexp.c:4190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - exec
    - value
    - data
    argTypes:
    - xmlRegExecCtxt*
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 4191
      start: 4187
    functionDepth: 0
    functionLinenumber: 4187
    functionLinenumberEnd: 4191
    functionName: xmlRegExecPushString
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegExecPushStringInternal
    linkageType: ''
    returnType: int
    signature: "int xmlRegExecPushString(xmlRegExecCtxt *exec, const xmlChar *value,\t
      void *data) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegNewAtom
      Src: /src/libxml2/xmlregexp.c:5103,1
    - Dst: xmlFAParseCharClassEsc
      Src: /src/libxml2/xmlregexp.c:5113,1
    - Dst: xmlFAParseCharGroup
      Src: /src/libxml2/xmlregexp.c:5106,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:5110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 5115
      start: 5099
    functionDepth: 0
    functionLinenumber: 5099
    functionLinenumberEnd: 5115
    functionName: xmlFAParseCharClass
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFAParseCharClassEsc
    - ERROR
    - xmlRegNewAtom
    - xmlFAParseCharGroup
    linkageType: ''
    returnType: void
    signature: 'static void xmlFAParseCharClass(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:877,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:893,1
    - Dst: xmlRegexpErrMemory
      Src: /src/libxml2/xmlregexp.c:879,1
    - Dst: memset
      Src: /src/libxml2/xmlregexp.c:882,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:890,1
    - Dst: xmlRegCopyRange
      Src: /src/libxml2/xmlregexp.c:897,1
    - Dst: xmlRegFreeAtom
      Src: /src/libxml2/xmlregexp.c:906,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - ctxt
    - atom
    argTypes:
    - xmlRegParserCtxtPtr
    - xmlRegAtomPtr
    constantsTouched: []
    func_position:
      end: 908
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 908
    functionName: xmlRegCopyAtom
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - memset
    - xmlRegFreeAtom
    - xmlRegexpErrMemory
    - xmlMalloc
    - xmlRegCopyRange
    linkageType: ''
    returnType: xmlRegAtomPtr
    signature: 'static xmlRegAtomPtr xmlRegCopyAtom(xmlRegParserCtxtPtr ctxt, xmlRegAtomPtr
      atom) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFAParsePosCharGroup
      Src: /src/libxml2/xmlregexp.c:5071,1
    - Dst: ERROR
      Src: /src/libxml2/xmlregexp.c:5084,1
    - Dst: xmlFAParseCharGroup
      Src: /src/libxml2/xmlregexp.c:5079,1
    - Dst: xmlFAParsePosCharGroup
      Src: /src/libxml2/xmlregexp.c:5088,1
    - Dst: NXT
      Src: /src/libxml2/xmlregexp.c:5075,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRegParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 5091
      start: 5064
    functionDepth: 0
    functionLinenumber: 5064
    functionLinenumberEnd: 5091
    functionName: xmlFAParseCharGroup
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - ERROR
    - NXT
    - xmlFAParseCharGroup
    - xmlFAParsePosCharGroup
    linkageType: ''
    returnType: void
    signature: 'static void xmlFAParseCharGroup(xmlRegParserCtxtPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegGetCounter
      Src: /src/libxml2/xmlregexp.c:6232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - am
    - min
    - max
    argTypes:
    - xmlAutomata*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 6238
      start: 6225
    functionDepth: 0
    functionLinenumber: 6225
    functionLinenumberEnd: 6238
    functionName: xmlAutomataNewCounter
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegGetCounter
    linkageType: ''
    returnType: int
    signature: 'int xmlAutomataNewCounter(xmlAutomata *am, int min, int max) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/xmlregexp.c:92,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - sptr
    - numentries
    - tname
    argTypes:
    - xmlUnicodeRange*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 101
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 101
    functionName: xmlUnicodeLookup
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: xmlChRangeGroup*
    signature: 'static const xmlChRangeGroup *xmlUnicodeLookup(const xmlUnicodeRange
      *sptr, int numentries, const char *tname) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegExecPushString
      Src: /src/libxml2/xmlregexp.c:4220,1
    - Dst: strlen
      Src: /src/libxml2/xmlregexp.c:4223,1
    - Dst: memcpy
      Src: /src/libxml2/xmlregexp.c:4234,1
    - Dst: strlen
      Src: /src/libxml2/xmlregexp.c:4222,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlregexp.c:4226,1
    - Dst: memcpy
      Src: /src/libxml2/xmlregexp.c:4236,1
    - Dst: xmlRegCompactPushString
      Src: /src/libxml2/xmlregexp.c:4240,1
    - Dst: xmlRegExecPushStringInternal
      Src: /src/libxml2/xmlregexp.c:4242,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlregexp.c:4245,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 4
    argNames:
    - exec
    - value
    - value2
    - data
    argTypes:
    - xmlRegExecCtxt*
    - xmlChar*
    - xmlChar*
    - void*
    constantsTouched: []
    func_position:
      end: 4247
      start: 4205
    functionDepth: 0
    functionLinenumber: 4205
    functionLinenumberEnd: 4247
    functionName: xmlRegExecPushString2
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFree
    - memcpy
    - xmlRegExecPushString
    - xmlRegExecPushStringInternal
    - strlen
    - xmlRegCompactPushString
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'int xmlRegExecPushString2(xmlRegExecCtxt *exec, const xmlChar *value,
      const xmlChar *value2, void *data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFAGenerateCountedEpsilonTransition
      Src: /src/libxml2/xmlregexp.c:6258,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 4
    argNames:
    - am
    - from
    - to
    - counter
    argTypes:
    - xmlAutomata*
    - xmlAutomataState*
    - xmlAutomataState*
    - int
    constantsTouched: []
    func_position:
      end: 6262
      start: 6253
    functionDepth: 0
    functionLinenumber: 6253
    functionLinenumberEnd: 6262
    functionName: xmlAutomataNewCountedTrans
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlFAGenerateCountedEpsilonTransition
    linkageType: ''
    returnType: xmlAutomataState*
    signature: "xmlAutomataState *xmlAutomataNewCountedTrans(xmlAutomata *am, xmlAutomataState
      *from,\t\txmlAutomataState *to, int counter) "
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: IS_LETTER
      Src: /src/libxml2/xmlregexp.c:2984,1
    - Dst: IS_EXTENDER
      Src: /src/libxml2/xmlregexp.c:2987,1
    - Dst: xmlUCSIsCatP
      Src: /src/libxml2/xmlregexp.c:2999,1
    - Dst: xmlUCSIsCatC
      Src: /src/libxml2/xmlregexp.c:3003,1
    - Dst: xmlUCSIsCatL
      Src: /src/libxml2/xmlregexp.c:3006,1
    - Dst: xmlUCSIsCatMc
      Src: /src/libxml2/xmlregexp.c:3030,1
    - Dst: xmlUCSIsCatLm
      Src: /src/libxml2/xmlregexp.c:3018,1
    - Dst: xmlUCSIsCatP
      Src: /src/libxml2/xmlregexp.c:3048,1
    - Dst: xmlUCSIsCatPe
      Src: /src/libxml2/xmlregexp.c:3060,1
    - Dst: xmlUCSIsCatZ
      Src: /src/libxml2/xmlregexp.c:3072,1
    - Dst: IS_LETTER
      Src: /src/libxml2/xmlregexp.c:2977,1
    - Dst: IS_COMBINING
      Src: /src/libxml2/xmlregexp.c:2987,1
    - Dst: xmlUCSIsCatLu
      Src: /src/libxml2/xmlregexp.c:3009,1
    - Dst: xmlUCSIsCatMe
      Src: /src/libxml2/xmlregexp.c:3033,1
    - Dst: xmlUCSIsCatLo
      Src: /src/libxml2/xmlregexp.c:3021,1
    - Dst: xmlUCSIsCatNd
      Src: /src/libxml2/xmlregexp.c:3039,1
    - Dst: xmlUCSIsCatPc
      Src: /src/libxml2/xmlregexp.c:3051,1
    - Dst: xmlUCSIsCatPi
      Src: /src/libxml2/xmlregexp.c:3063,1
    - Dst: xmlUCSIsCatZs
      Src: /src/libxml2/xmlregexp.c:3075,1
    - Dst: xmlUCSIsCatSk
      Src: /src/libxml2/xmlregexp.c:3093,1
    - Dst: IS_DIGIT
      Src: /src/libxml2/xmlregexp.c:2984,1
    - Dst: xmlUCSIsCatNd
      Src: /src/libxml2/xmlregexp.c:2993,1
    - Dst: xmlUCSIsCatLl
      Src: /src/libxml2/xmlregexp.c:3012,1
    - Dst: xmlUCSIsCatM
      Src: /src/libxml2/xmlregexp.c:3024,1
    - Dst: xmlUCSIsCatN
      Src: /src/libxml2/xmlregexp.c:3036,1
    - Dst: xmlUCSIsCatNl
      Src: /src/libxml2/xmlregexp.c:3042,1
    - Dst: xmlUCSIsCatPd
      Src: /src/libxml2/xmlregexp.c:3054,1
    - Dst: xmlUCSIsCatPf
      Src: /src/libxml2/xmlregexp.c:3066,1
    - Dst: xmlUCSIsCatZl
      Src: /src/libxml2/xmlregexp.c:3078,1
    - Dst: xmlUCSIsCatS
      Src: /src/libxml2/xmlregexp.c:3084,1
    - Dst: xmlUCSIsBlock
      Src: /src/libxml2/xmlregexp.c:3116,1
    - Dst: xmlUCSIsCatZ
      Src: /src/libxml2/xmlregexp.c:3001,1
    - Dst: xmlUCSIsCatLt
      Src: /src/libxml2/xmlregexp.c:3015,1
    - Dst: xmlUCSIsCatMn
      Src: /src/libxml2/xmlregexp.c:3027,1
    - Dst: xmlUCSIsCatNo
      Src: /src/libxml2/xmlregexp.c:3045,1
    - Dst: xmlUCSIsCatPs
      Src: /src/libxml2/xmlregexp.c:3057,1
    - Dst: xmlUCSIsCatPo
      Src: /src/libxml2/xmlregexp.c:3069,1
    - Dst: xmlUCSIsCatZp
      Src: /src/libxml2/xmlregexp.c:3081,1
    - Dst: xmlUCSIsCatSm
      Src: /src/libxml2/xmlregexp.c:3087,1
    - Dst: xmlUCSIsCatC
      Src: /src/libxml2/xmlregexp.c:3099,1
    - Dst: xmlUCSIsCatSc
      Src: /src/libxml2/xmlregexp.c:3090,1
    - Dst: xmlUCSIsCatSo
      Src: /src/libxml2/xmlregexp.c:3096,1
    - Dst: xmlUCSIsCatCc
      Src: /src/libxml2/xmlregexp.c:3102,1
    - Dst: xmlUCSIsCatCf
      Src: /src/libxml2/xmlregexp.c:3105,1
    - Dst: xmlUCSIsCatCo
      Src: /src/libxml2/xmlregexp.c:3108,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 134
    argCount: 6
    argNames:
    - type
    - codepoint
    - neg
    - start
    - end
    - blockName
    argTypes:
    - xmlRegAtomType
    - int
    - int
    - int
    - int
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3122
      start: 2949
    functionDepth: 0
    functionLinenumber: 2949
    functionLinenumberEnd: 3122
    functionName: xmlRegCheckCharacterRange
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlUCSIsCatN
    - xmlUCSIsBlock
    - xmlUCSIsCatLt
    - xmlUCSIsCatPf
    - xmlUCSIsCatMe
    - xmlUCSIsCatLm
    - xmlUCSIsCatNd
    - xmlUCSIsCatPe
    - xmlUCSIsCatC
    - xmlUCSIsCatLo
    - IS_COMBINING
    - IS_LETTER
    - xmlUCSIsCatPd
    - xmlUCSIsCatMn
    - xmlUCSIsCatSk
    - xmlUCSIsCatM
    - xmlUCSIsCatS
    - xmlUCSIsCatZp
    - xmlUCSIsCatCc
    - xmlUCSIsCatPo
    - xmlUCSIsCatL
    - xmlUCSIsCatZ
    - xmlUCSIsCatPc
    - xmlUCSIsCatSc
    - xmlUCSIsCatSo
    - xmlUCSIsCatLu
    - xmlUCSIsCatPi
    - xmlUCSIsCatLl
    - xmlUCSIsCatPs
    - xmlUCSIsCatZl
    - xmlUCSIsCatNo
    - IS_DIGIT
    - xmlUCSIsCatCo
    - IS_EXTENDER
    - xmlUCSIsCatP
    - xmlUCSIsCatMc
    - xmlUCSIsCatZs
    - xmlUCSIsCatSm
    - xmlUCSIsCatNl
    - xmlUCSIsCatCf
    linkageType: ''
    returnType: int
    signature: "static int xmlRegCheckCharacterRange(xmlRegAtomType type, int codepoint,
      int neg,\t int start, int end, const xmlChar *blockName) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1330,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1332,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1335,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1333,1
    - Dst: xmlRegPrintAtomCompact
      Src: /src/libxml2/xmlregexp.c:1336,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1339,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1340,1
    - Dst: xmlRegPrintStateCompact
      Src: /src/libxml2/xmlregexp.c:1342,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1345,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - output
    - regexp
    argTypes:
    - FILE*
    - xmlRegexpPtr
    constantsTouched: []
    func_position:
      end: 1346
      start: 1322
    functionDepth: 0
    functionLinenumber: 1322
    functionLinenumberEnd: 1346
    functionName: xmlRegPrintCompact
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegPrintAtomCompact
    - fprintf
    - xmlRegPrintStateCompact
    linkageType: ''
    returnType: void
    signature: 'static void xmlRegPrintCompact(FILE* output, xmlRegexpPtr regexp) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegStatePush
      Src: /src/libxml2/xmlregexp.c:1634,1
    - Dst: xmlRegStateAddTrans
      Src: /src/libxml2/xmlregexp.c:1639,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ctxt
    - from
    - to
    argTypes:
    - xmlRegParserCtxtPtr
    - xmlRegStatePtr
    - xmlRegStatePtr
    constantsTouched: []
    func_position:
      end: 1641
      start: 1630
    functionDepth: 0
    functionLinenumber: 1630
    functionLinenumberEnd: 1641
    functionName: xmlFAGenerateEpsilonTransition
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegStateAddTrans
    - xmlRegStatePush
    linkageType: ''
    returnType: int
    signature: "static int xmlFAGenerateEpsilonTransition(xmlRegParserCtxtPtr ctxt,\t\t\t
      xmlRegStatePtr from, xmlRegStatePtr to) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1354,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1365,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1356,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1364,1
    - Dst: xmlRegPrintCompact
      Src: /src/libxml2/xmlregexp.c:1360,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1366,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1368,1
    - Dst: xmlRegPrintAtom
      Src: /src/libxml2/xmlregexp.c:1369,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1371,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1372,1
    - Dst: xmlRegPrintState
      Src: /src/libxml2/xmlregexp.c:1374,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1378,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1376,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - output
    - regexp
    argTypes:
    - FILE*
    - xmlRegexpPtr
    constantsTouched: []
    func_position:
      end: 1381
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1381
    functionName: xmlRegexpPrintInternal
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegPrintCompact
    - xmlRegPrintAtom
    - fprintf
    - xmlRegPrintState
    linkageType: ''
    returnType: void
    signature: 'static void xmlRegexpPrintInternal(FILE *output, xmlRegexpPtr regexp) '
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: IS_CHAR
      Src: /src/libxml2/xmlregexp.c:3129,1
    - Dst: xmlRegCheckCharacterRange
      Src: /src/libxml2/xmlregexp.c:3144,1
    - Dst: xmlRegCheckCharacterRange
      Src: /src/libxml2/xmlregexp.c:3158,1
    - Dst: xmlRegCheckCharacterRange
      Src: /src/libxml2/xmlregexp.c:3217,1
    - Dst: xmlRegCheckCharacterRange
      Src: /src/libxml2/xmlregexp.c:3150,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 31
    argCount: 2
    argNames:
    - atom
    - codepoint
    argTypes:
    - xmlRegAtomPtr
    - int
    constantsTouched: []
    func_position:
      end: 3224
      start: 3124
    functionDepth: 0
    functionLinenumber: 3124
    functionLinenumberEnd: 3224
    functionName: xmlRegCheckCharacter
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegCheckCharacterRange
    - IS_CHAR
    linkageType: ''
    returnType: int
    signature: 'static int xmlRegCheckCharacter(xmlRegAtomPtr atom, int codepoint) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1281,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1307,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1289,1
    - Dst: xmlRegPrintAtomCompact
      Src: /src/libxml2/xmlregexp.c:1294,1
    - Dst: fprintf
      Src: /src/libxml2/xmlregexp.c:1285,1
    - Dst: xmlRegPrintTransCompact
      Src: /src/libxml2/xmlregexp.c:1311,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 3
    argNames:
    - output
    - regexp
    - state
    argTypes:
    - FILE*
    - xmlRegexpPtr
    - int
    constantsTouched: []
    func_position:
      end: 1313
      start: 1268
    functionDepth: 0
    functionLinenumber: 1268
    functionLinenumberEnd: 1313
    functionName: xmlRegPrintStateCompact
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegPrintAtomCompact
    - xmlRegPrintTransCompact
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void xmlRegPrintStateCompact(FILE* output, xmlRegexpPtr regexp,
      int state) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlRegStatePush
      Src: /src/libxml2/xmlregexp.c:1613,1
    - Dst: xmlRegStateAddTrans
      Src: /src/libxml2/xmlregexp.c:1621,1
    - Dst: xmlRegStateAddTrans
      Src: /src/libxml2/xmlregexp.c:1619,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - ctxt
    - from
    - to
    - lax
    argTypes:
    - xmlRegParserCtxtPtr
    - xmlRegStatePtr
    - xmlRegStatePtr
    - int
    constantsTouched: []
    func_position:
      end: 1623
      start: 1608
    functionDepth: 0
    functionLinenumber: 1608
    functionLinenumberEnd: 1623
    functionName: xmlFAGenerateAllTransition
    functionSourceFile: /src/libxml2/xmlregexp.c
    functionUses: []
    functionsReached:
    - xmlRegStateAddTrans
    - xmlRegStatePush
    linkageType: ''
    returnType: int
    signature: "static int xmlFAGenerateAllTransition(xmlRegParserCtxtPtr ctxt,\t\t\t
      xmlRegStatePtr from, xmlRegStatePtr to,\t\t\t int lax) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/c14n.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlC14NCtxPtr
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: xmlC14NErrMemory
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlRaiseMemoryError
    linkageType: ''
    returnType: void
    signature: 'static void xmlC14NErrMemory(xmlC14NCtxPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrFull
      Src: /src/libxml2/c14n.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlC14NCtxPtr
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: xmlC14NErrParam
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NErrFull
    linkageType: ''
    returnType: void
    signature: 'static void xmlC14NErrParam(xmlC14NCtxPtr ctxt) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: xmlListCreate
      Src: /src/libxml2/c14n.c:709,1
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:701,1
    - Dst: xmlC14NIsExclusive
      Src: /src/libxml2/c14n.c:700,1
    - Dst: xmlC14NIsXmlNs
      Src: /src/libxml2/c14n.c:761,1
    - Dst: xmlExcC14NVisibleNsStackFind
      Src: /src/libxml2/c14n.c:763,1
    - Dst: xmlSearchNs
      Src: /src/libxml2/c14n.c:758,1
    - Dst: xmlStrlen
      Src: /src/libxml2/c14n.c:773,1
    - Dst: xmlExcC14NVisibleNsStackFind
      Src: /src/libxml2/c14n.c:787,1
    - Dst: xmlStrlen
      Src: /src/libxml2/c14n.c:798,1
    - Dst: xmlC14NPrintNamespaces
      Src: /src/libxml2/c14n.c:821,1
    - Dst: xmlListWalk
      Src: /src/libxml2/c14n.c:830,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/c14n.c:729,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/c14n.c:730,1
    - Dst: xmlC14NIsXmlNs
      Src: /src/libxml2/c14n.c:736,1
    - Dst: xmlC14NIsVisible
      Src: /src/libxml2/c14n.c:736,1
    - Dst: xmlC14NVisibleNsStackFind
      Src: /src/libxml2/c14n.c:737,1
    - Dst: xmlListInsert
      Src: /src/libxml2/c14n.c:745,1
    - Dst: xmlStrlen
      Src: /src/libxml2/c14n.c:747,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:789,1
    - Dst: memset
      Src: /src/libxml2/c14n.c:810,1
    - Dst: xmlExcC14NVisibleNsStackFind
      Src: /src/libxml2/c14n.c:812,1
    - Dst: xmlSearchNs
      Src: /src/libxml2/c14n.c:735,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:740,1
    - Dst: xmlListInsert
      Src: /src/libxml2/c14n.c:764,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:769,1
    - Dst: xmlC14NIsXmlNs
      Src: /src/libxml2/c14n.c:786,1
    - Dst: xmlC14NIsVisible
      Src: /src/libxml2/c14n.c:786,1
    - Dst: xmlC14NVisibleNsStackAdd
      Src: /src/libxml2/c14n.c:788,1
    - Dst: xmlStrlen
      Src: /src/libxml2/c14n.c:795,1
    - Dst: xmlStrlen
      Src: /src/libxml2/c14n.c:798,1
    - Dst: xmlC14NPrintNamespaces
      Src: /src/libxml2/c14n.c:814,1
    - Dst: xmlC14NVisibleNsStackFind
      Src: /src/libxml2/c14n.c:820,1
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:696,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:711,1
    - Dst: xmlC14NVisibleNsStackAdd
      Src: /src/libxml2/c14n.c:739,1
    - Dst: xmlC14NIsVisible
      Src: /src/libxml2/c14n.c:762,1
    - Dst: xmlC14NVisibleNsStackAdd
      Src: /src/libxml2/c14n.c:768,1
    - Dst: xmlListInsert
      Src: /src/libxml2/c14n.c:793,1
    - Dst: memset
      Src: /src/libxml2/c14n.c:819,1
    - Dst: xmlListDelete
      Src: /src/libxml2/c14n.c:836,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 137
    argCount: 3
    argNames:
    - ctx
    - cur
    - visible
    argTypes:
    - xmlC14NCtxPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 838
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 838
    functionName: xmlExcC14NProcessNamespacesAxis
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NIsXmlNs
    - xmlC14NVisibleNsStackFind
    - memset
    - xmlC14NIsExclusive
    - xmlC14NErrMemory
    - xmlListCreate
    - xmlC14NIsVisible
    - xmlC14NVisibleNsStackAdd
    - xmlStrlen
    - xmlExcC14NVisibleNsStackFind
    - xmlListDelete
    - xmlC14NPrintNamespaces
    - xmlStrEqual
    - xmlListWalk
    - xmlC14NErrParam
    - xmlSearchNs
    - xmlListInsert
    linkageType: ''
    returnType: int
    signature: 'static int xmlExcC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr
      cur, int visible) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:926,1
    - Dst: xmlStrlen
      Src: /src/libxml2/c14n.c:931,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:934,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:930,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:932,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:936,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:937,1
    - Dst: xmlNodeListGetString
      Src: /src/libxml2/c14n.c:939,1
    - Dst: xmlC11NNormalizeAttr
      Src: /src/libxml2/c14n.c:942,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:943,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:948,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:952,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:946,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:945,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - data
    - user
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 954
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 954
    functionName: xmlC14NPrintAttrs
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlOutputBufferWriteString
    - xmlC14NErrMemory
    - xmlStrlen
    - xmlNodeListGetString
    - xmlC14NErrParam
    - xmlC11NNormalizeAttr
    linkageType: ''
    returnType: int
    signature: 'static int xmlC14NPrintAttrs(const void *data, void *user) '
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1523,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1547,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:1564,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1598,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1574,1
    - Dst: xmlC14NErrInvalidNode
      Src: /src/libxml2/c14n.c:1639,1
    - Dst: xmlC14NErrUnknownNode
      Src: /src/libxml2/c14n.c:1663,1
    - Dst: xmlC14NProcessNodeList
      Src: /src/libxml2/c14n.c:1631,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1549,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1562,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:1609,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:1611,1
    - Dst: xmlC14NErrInvalidNode
      Src: /src/libxml2/c14n.c:1636,1
    - Dst: xmlC14NErrInvalidNode
      Src: /src/libxml2/c14n.c:1642,1
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:1498,1
    - Dst: xmlC14NProcessElementNode
      Src: /src/libxml2/c14n.c:1505,1
    - Dst: xmlC14NIsVisible
      Src: /src/libxml2/c14n.c:1502,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:1566,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1607,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1617,1
    - Dst: xmlC11NNormalizeText
      Src: /src/libxml2/c14n.c:1521,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:1525,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:1527,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1552,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1557,1
    - Dst: xmlC11NNormalizePI
      Src: /src/libxml2/c14n.c:1560,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1596,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1572,1
    - Dst: xmlC11NNormalizeComment
      Src: /src/libxml2/c14n.c:1605,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1619,1
    - Dst: xmlC14NErrInvalidNode
      Src: /src/libxml2/c14n.c:1645,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 80
    argCount: 2
    argNames:
    - ctx
    - cur
    argTypes:
    - xmlC14NCtxPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1668
      start: 1491
    functionDepth: 0
    functionLinenumber: 1491
    functionLinenumberEnd: 1668
    functionName: xmlC14NProcessNode
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlC11NNormalizePI
    - xmlOutputBufferWriteString
    - xmlC14NIsVisible
    - xmlC11NNormalizeText
    - xmlC14NErrMemory
    - xmlC11NNormalizeComment
    - xmlC14NProcessElementNode
    - xmlC14NProcessNodeList
    - xmlC14NErrUnknownNode
    - xmlC14NErrParam
    - xmlC14NErrInvalidNode
    linkageType: ''
    returnType: int
    signature: 'static int xmlC14NProcessNode(xmlC14NCtxPtr ctx, xmlNodePtr cur) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/c14n.c:2085,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:2098,1
    - Dst: xmlRealloc
      Src: /src/libxml2/c14n.c:2101,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:2103,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/c14n.c:2096,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 102
    argCount: 2
    argNames:
    - input
    - mode
    argTypes:
    - xmlChar*
    - xmlC14NNormalizationMode
    constantsTouched: []
    func_position:
      end: 2168
      start: 2069
    functionDepth: 0
    functionLinenumber: 2069
    functionLinenumberEnd: 2168
    functionName: xmlC11NNormalizeString
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlFree
    - xmlMalloc
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *xmlC11NNormalizeString(const xmlChar * input, xmlC14NNormalizationMode
      mode) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/c14n.c:154,1
    - Dst: xmlVRaiseError
      Src: /src/libxml2/c14n.c:155,1
    - Dst: va_end
      Src: /src/libxml2/c14n.c:159,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:161,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 5
    argNames:
    - ctxt
    - node
    - code
    - str1
    - msg
    - '...'
    argTypes:
    - xmlC14NCtxPtr
    - xmlNodePtr
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 162
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 162
    functionName: xmlC14NErrFull
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlVRaiseError
    - xmlC14NErrMemory
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: 'static void xmlC14NErrFull(xmlC14NCtxPtr ctxt, xmlNodePtr node, int
      code, const char *str1, const char *msg, ...) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:586,1
    - Dst: xmlSearchNs
      Src: /src/libxml2/c14n.c:602,1
    - Dst: xmlC14NIsXmlNs
      Src: /src/libxml2/c14n.c:604,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:595,1
    - Dst: xmlListCreate
      Src: /src/libxml2/c14n.c:593,1
    - Dst: xmlC14NIsVisible
      Src: /src/libxml2/c14n.c:604,1
    - Dst: xmlC14NVisibleNsStackFind
      Src: /src/libxml2/c14n.c:605,1
    - Dst: xmlC14NVisibleNsStackAdd
      Src: /src/libxml2/c14n.c:607,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:608,1
    - Dst: xmlListInsert
      Src: /src/libxml2/c14n.c:613,1
    - Dst: xmlC14NPrintNamespaces
      Src: /src/libxml2/c14n.c:636,1
    - Dst: xmlListWalk
      Src: /src/libxml2/c14n.c:644,1
    - Dst: xmlListDelete
      Src: /src/libxml2/c14n.c:650,1
    - Dst: xmlC14NVisibleNsStackFind
      Src: /src/libxml2/c14n.c:635,1
    - Dst: memset
      Src: /src/libxml2/c14n.c:634,1
    - Dst: xmlStrlen
      Src: /src/libxml2/c14n.c:615,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 3
    argNames:
    - ctx
    - cur
    - visible
    argTypes:
    - xmlC14NCtxPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 652
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 652
    functionName: xmlC14NProcessNamespacesAxis
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NIsXmlNs
    - xmlC14NVisibleNsStackFind
    - memset
    - xmlListCreate
    - xmlC14NErrMemory
    - xmlC14NIsVisible
    - xmlC14NVisibleNsStackAdd
    - xmlStrlen
    - xmlListDelete
    - xmlC14NPrintNamespaces
    - xmlListWalk
    - xmlC14NErrParam
    - xmlSearchNs
    - xmlListInsert
    linkageType: ''
    returnType: int
    signature: 'static int xmlC14NProcessNamespacesAxis(xmlC14NCtxPtr ctx, xmlNodePtr
      cur, int visible) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcmp
      Src: /src/libxml2/c14n.c:498,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 2
    argNames:
    - data1
    - data2
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 499
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 499
    functionName: xmlC14NNsCompare
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlStrcmp
    linkageType: ''
    returnType: int
    signature: 'static int xmlC14NNsCompare(const void *data1, const void *data2) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:514,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:521,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:523,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:520,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:519,1
    - Dst: xmlOutputBufferWriteQuotedString
      Src: /src/libxml2/c14n.c:526,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:528,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - ns
    - ctx
    argTypes:
    - xmlNs*
    - xmlC14NCtxPtr
    constantsTouched: []
    func_position:
      end: 531
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 531
    functionName: xmlC14NPrintNamespaces
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NErrParam
    - xmlOutputBufferWriteString
    - xmlOutputBufferWriteQuotedString
    linkageType: ''
    returnType: int
    signature: 'static int xmlC14NPrintNamespaces(const xmlNs *ns, xmlC14NCtxPtr ctx) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcmp
      Src: /src/libxml2/c14n.c:882,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/c14n.c:901,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/c14n.c:899,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 2
    argNames:
    - data1
    - data2
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 904
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 904
    functionName: xmlC14NAttrsCompare
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlStrcmp
    linkageType: ''
    returnType: int
    signature: 'static int xmlC14NAttrsCompare(const void *data1, const void *data2) '
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:1124,1
    - Dst: xmlListCreate
      Src: /src/libxml2/c14n.c:1131,1
    - Dst: xmlC14NIsVisible
      Src: /src/libxml2/c14n.c:1202,1
    - Dst: xmlC14NIsXmlAttr
      Src: /src/libxml2/c14n.c:1245,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/c14n.c:1258,1
    - Dst: xmlC14NIsVisible
      Src: /src/libxml2/c14n.c:1270,1
    - Dst: xmlListInsert
      Src: /src/libxml2/c14n.c:1203,1
    - Dst: xmlC14NFindHiddenParentAttr
      Src: /src/libxml2/c14n.c:1299,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:1133,1
    - Dst: xmlC14NIsVisible
      Src: /src/libxml2/c14n.c:1247,1
    - Dst: xmlListInsert
      Src: /src/libxml2/c14n.c:1248,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/c14n.c:1264,1
    - Dst: xmlListInsert
      Src: /src/libxml2/c14n.c:1293,1
    - Dst: xmlC14NFixupBaseAttr
      Src: /src/libxml2/c14n.c:1302,1
    - Dst: xmlFreePropList
      Src: /src/libxml2/c14n.c:1325,1
    - Dst: xmlC14NIsXmlAttr
      Src: /src/libxml2/c14n.c:1178,1
    - Dst: xmlListSearch
      Src: /src/libxml2/c14n.c:1179,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/c14n.c:1254,1
    - Dst: xmlListInsert
      Src: /src/libxml2/c14n.c:1287,1
    - Dst: xmlListInsert
      Src: /src/libxml2/c14n.c:1304,1
    - Dst: xmlListWalk
      Src: /src/libxml2/c14n.c:1320,1
    - Dst: xmlListInsert
      Src: /src/libxml2/c14n.c:1157,1
    - Dst: xmlC14NIsVisible
      Src: /src/libxml2/c14n.c:1156,1
    - Dst: xmlC14NIsVisible
      Src: /src/libxml2/c14n.c:1166,1
    - Dst: xmlListInsert
      Src: /src/libxml2/c14n.c:1180,1
    - Dst: xmlListInsert
      Src: /src/libxml2/c14n.c:1271,1
    - Dst: xmlC14NFindHiddenParentAttr
      Src: /src/libxml2/c14n.c:1284,1
    - Dst: xmlC14NFindHiddenParentAttr
      Src: /src/libxml2/c14n.c:1290,1
    - Dst: xmlListDelete
      Src: /src/libxml2/c14n.c:1326,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 122
    argCount: 3
    argNames:
    - ctx
    - cur
    - parent_visible
    argTypes:
    - xmlC14NCtxPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 1328
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1328
    functionName: xmlC14NProcessAttrsAxis
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlListCreate
    - xmlC14NErrMemory
    - xmlC14NIsVisible
    - xmlListDelete
    - xmlListSearch
    - xmlC14NFindHiddenParentAttr
    - xmlStrEqual
    - xmlC14NIsXmlAttr
    - xmlListWalk
    - xmlFreePropList
    - xmlC14NErrParam
    - xmlC14NFixupBaseAttr
    - xmlListInsert
    linkageType: ''
    returnType: int
    signature: 'static int xmlC14NProcessAttrsAxis(xmlC14NCtxPtr ctx, xmlNodePtr cur,
      int parent_visible) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:1742,1
    - Dst: memset
      Src: /src/libxml2/c14n.c:1763,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:1760,1
    - Dst: xmlMalloc
      Src: /src/libxml2/c14n.c:1758,1
    - Dst: xmlC14NErr
      Src: /src/libxml2/c14n.c:1750,1
    - Dst: xmlC14NVisibleNsStackCreate
      Src: /src/libxml2/c14n.c:1775,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:1778,1
    - Dst: xmlC14NFreeCtx
      Src: /src/libxml2/c14n.c:1779,1
    - Dst: xmlC14NIsExclusive
      Src: /src/libxml2/c14n.c:1788,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 7
    argNames:
    - doc
    - is_visible_callback
    - user_data
    - mode
    - inclusive_ns_prefixes
    - with_comments
    - buf
    argTypes:
    - xmlDocPtr
    - xmlC14NIsVisibleCallback
    - void*
    - xmlC14NMode
    - xmlChar**
    - int
    - xmlOutputBufferPtr
    constantsTouched: []
    func_position:
      end: 1793
      start: 1733
    functionDepth: 0
    functionLinenumber: 1733
    functionLinenumberEnd: 1793
    functionName: xmlC14NNewCtx
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NVisibleNsStackCreate
    - memset
    - xmlC14NErr
    - xmlC14NErrMemory
    - xmlC14NFreeCtx
    - xmlC14NIsExclusive
    - xmlC14NErrParam
    - xmlMalloc
    linkageType: ''
    returnType: xmlC14NCtxPtr
    signature: "static xmlC14NCtxPtr xmlC14NNewCtx(xmlDocPtr doc,\t xmlC14NIsVisibleCallback
      is_visible_callback, void* user_data, xmlC14NMode mode, xmlChar ** inclusive_ns_prefixes,
      int with_comments, xmlOutputBufferPtr buf) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:1957,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/c14n.c:1978,1
    - Dst: xmlC14NDocSaveTo
      Src: /src/libxml2/c14n.c:1975,1
    - Dst: xmlAllocOutputBuffer
      Src: /src/libxml2/c14n.c:1966,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:1968,1
    - Dst: xmlBufUse
      Src: /src/libxml2/c14n.c:1982,1
    - Dst: xmlStrndup
      Src: /src/libxml2/c14n.c:1984,1
    - Dst: xmlBufContent
      Src: /src/libxml2/c14n.c:1984,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/c14n.c:1986,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:1989,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 6
    argNames:
    - doc
    - nodes
    - mode
    - inclusive_ns_prefixes
    - with_comments
    - doc_txt_ptr
    argTypes:
    - xmlDoc*
    - xmlNodeSet*
    - int
    - xmlChar**
    - int
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 1993
      start: 1948
    functionDepth: 0
    functionLinenumber: 1948
    functionLinenumberEnd: 1993
    functionName: xmlC14NDocDumpMemory
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferClose
    - xmlStrndup
    - xmlC14NErrMemory
    - xmlC14NDocSaveTo
    - xmlBufUse
    - xmlC14NErrParam
    - xmlAllocOutputBuffer
    - xmlBufContent
    linkageType: ''
    returnType: int
    signature: 'int xmlC14NDocDumpMemory(xmlDoc *doc, xmlNodeSet *nodes, int mode,
      xmlChar ** inclusive_ns_prefixes, int with_comments, xmlChar ** doc_txt_ptr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NPrintNamespaces
      Src: /src/libxml2/c14n.c:535,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ns
    - ctx
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 536
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 536
    functionName: xmlC14NPrintNamespacesWalker
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NPrintNamespaces
    linkageType: ''
    returnType: int
    signature: 'static int xmlC14NPrintNamespacesWalker(const void *ns, void *ctx) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrFull
      Src: /src/libxml2/c14n.c:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - ctxt
    - node_type
    - extra
    argTypes:
    - xmlC14NCtxPtr
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: xmlC14NErrInvalidNode
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NErrFull
    linkageType: ''
    returnType: void
    signature: 'static void xmlC14NErrInvalidNode(xmlC14NCtxPtr ctxt, const char *node_type,
      const char *extra) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/c14n.c:474,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/c14n.c:475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ns
    argTypes:
    - xmlNsPtr
    constantsTouched: []
    func_position:
      end: 476
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 476
    functionName: xmlC14NIsXmlNs
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xmlC14NIsXmlNs(xmlNsPtr ns) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NIsXmlNs
      Src: /src/libxml2/c14n.c:854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - attr
    argTypes:
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 855
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 855
    functionName: xmlC14NIsXmlAttr
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NIsXmlNs
    linkageType: ''
    returnType: int
    signature: 'static int xmlC14NIsXmlAttr(xmlAttrPtr attr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NIsVisible
      Src: /src/libxml2/c14n.c:965,1
    - Dst: xmlHasNsProp
      Src: /src/libxml2/c14n.c:966,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - cur
    - name
    - ns
    argTypes:
    - xmlC14NCtxPtr
    - xmlNodePtr
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 975
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 975
    functionName: xmlC14NFindHiddenParentAttr
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NIsVisible
    - xmlHasNsProp
    linkageType: ''
    returnType: xmlAttrPtr
    signature: 'static xmlAttrPtr xmlC14NFindHiddenParentAttr(xmlC14NCtxPtr ctx, xmlNodePtr
      cur, const xmlChar * name, const xmlChar * ns) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlHasNsProp
      Src: /src/libxml2/c14n.c:1009,1
    - Dst: xmlStrcat
      Src: /src/libxml2/c14n.c:1024,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:1027,1
    - Dst: xmlBuildURISafe
      Src: /src/libxml2/c14n.c:1037,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/c14n.c:1062,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:1063,1
    - Dst: xmlC14NIsVisible
      Src: /src/libxml2/c14n.c:1006,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:1000,1
    - Dst: xmlNodeListGetString
      Src: /src/libxml2/c14n.c:1012,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:1016,1
    - Dst: xmlStrlen
      Src: /src/libxml2/c14n.c:1022,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:1040,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:1053,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:1070,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:1072,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:1077,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:1026,1
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:993,1
    - Dst: xmlNodeListGetString
      Src: /src/libxml2/c14n.c:998,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:1014,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:1043,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:1039,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:1029,1
    - Dst: xmlC14NErr
      Src: /src/libxml2/c14n.c:1045,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:1052,1
    - Dst: xmlNewNsProp
      Src: /src/libxml2/c14n.c:1068,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 2
    argNames:
    - ctx
    - xml_base_attr
    argTypes:
    - xmlC14NCtxPtr
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 1079
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 1079
    functionName: xmlC14NFixupBaseAttr
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlC14NErr
    - xmlC14NIsVisible
    - xmlC14NErrMemory
    - xmlNodeListGetString
    - xmlStrlen
    - xmlBuildURISafe
    - xmlStrEqual
    - xmlHasNsProp
    - xmlC14NErrParam
    - xmlNewNsProp
    - xmlStrcat
    linkageType: ''
    returnType: xmlAttrPtr
    signature: 'static xmlAttrPtr xmlC14NFixupBaseAttr(xmlC14NCtxPtr ctx, xmlAttrPtr
      xml_base_attr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:1683,1
    - Dst: xmlC14NProcessNode
      Src: /src/libxml2/c14n.c:1688,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - cur
    argTypes:
    - xmlC14NCtxPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1691
      start: 1677
    functionDepth: 0
    functionLinenumber: 1677
    functionLinenumberEnd: 1691
    functionName: xmlC14NProcessNodeList
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NErrParam
    - xmlC14NProcessNode
    linkageType: ''
    returnType: int
    signature: 'static int xmlC14NProcessNodeList(xmlC14NCtxPtr ctx, xmlNodePtr cur) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:1704,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:1711,1
    - Dst: xmlC14NVisibleNsStackDestroy
      Src: /src/libxml2/c14n.c:1709,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - xmlC14NCtxPtr
    constantsTouched: []
    func_position:
      end: 1712
      start: 1700
    functionDepth: 0
    functionLinenumber: 1700
    functionLinenumberEnd: 1712
    functionName: xmlC14NFreeCtx
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NErrParam
    - xmlC14NVisibleNsStackDestroy
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlC14NFreeCtx(xmlC14NCtxPtr ctx) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlC14NVisibleNsStackPtr
    constantsTouched: []
    func_position:
      end: 367
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 367
    functionName: xmlC14NVisibleNsStackShift
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NErrParam
    linkageType: ''
    returnType: void
    signature: 'static void xmlC14NVisibleNsStackShift(xmlC14NVisibleNsStackPtr cur) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:396,1
    - Dst: xmlC14NStrEqual
      Src: /src/libxml2/c14n.c:406,1
    - Dst: xmlC14NStrEqual
      Src: /src/libxml2/c14n.c:413,1
    - Dst: xmlC14NStrEqual
      Src: /src/libxml2/c14n.c:414,1
    - Dst: xmlC14NStrEqual
      Src: /src/libxml2/c14n.c:406,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - cur
    - ns
    argTypes:
    - xmlC14NVisibleNsStackPtr
    - xmlNsPtr
    constantsTouched: []
    func_position:
      end: 419
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 419
    functionName: xmlC14NVisibleNsStackFind
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NErrParam
    - xmlC14NStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xmlC14NVisibleNsStackFind(xmlC14NVisibleNsStackPtr cur,
      xmlNsPtr ns) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:1343,1
    - Dst: xmlParseURISafe
      Src: /src/libxml2/c14n.c:1353,1
    - Dst: xmlStrlen
      Src: /src/libxml2/c14n.c:1349,1
    - Dst: xmlC14NErr
      Src: /src/libxml2/c14n.c:1358,1
    - Dst: xmlC14NErrMemory
      Src: /src/libxml2/c14n.c:1356,1
    - Dst: xmlStrlen
      Src: /src/libxml2/c14n.c:1362,1
    - Dst: xmlC14NErrRelativeNamespace
      Src: /src/libxml2/c14n.c:1363,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/c14n.c:1364,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/c14n.c:1367,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ctx
    - cur
    argTypes:
    - xmlC14NCtxPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1372
      start: 1337
    functionDepth: 0
    functionLinenumber: 1337
    functionLinenumberEnd: 1372
    functionName: xmlC14NCheckForRelativeNamespaces
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlFreeURI
    - xmlC14NErr
    - xmlC14NErrMemory
    - xmlStrlen
    - xmlParseURISafe
    - xmlC14NErrRelativeNamespace
    - xmlC14NErrParam
    linkageType: ''
    returnType: int
    signature: 'static int xmlC14NCheckForRelativeNamespaces(xmlC14NCtxPtr ctx, xmlNodePtr
      cur) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:1826,1
    - Dst: xmlC14NErr
      Src: /src/libxml2/c14n.c:1856,1
    - Dst: xmlC14NErr
      Src: /src/libxml2/c14n.c:1847,1
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:1839,1
    - Dst: xmlC14NNewCtx
      Src: /src/libxml2/c14n.c:1852,1
    - Dst: xmlC14NProcessNodeList
      Src: /src/libxml2/c14n.c:1872,1
    - Dst: xmlC14NFreeCtx
      Src: /src/libxml2/c14n.c:1874,1
    - Dst: xmlOutputBufferFlush
      Src: /src/libxml2/c14n.c:1882,1
    - Dst: xmlC14NErr
      Src: /src/libxml2/c14n.c:1884,1
    - Dst: xmlC14NFreeCtx
      Src: /src/libxml2/c14n.c:1885,1
    - Dst: xmlC14NFreeCtx
      Src: /src/libxml2/c14n.c:1892,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 31
    argCount: 7
    argNames:
    - doc
    - is_visible_callback
    - user_data
    - mode
    - inclusive_ns_prefixes
    - with_comments
    - buf
    argTypes:
    - xmlDoc*
    - xmlC14NIsVisibleCallback
    - void*
    - int
    - xmlChar**
    - int
    - xmlOutputBuffer*
    constantsTouched: []
    func_position:
      end: 1894
      start: 1816
    functionDepth: 0
    functionLinenumber: 1816
    functionLinenumberEnd: 1894
    functionName: xmlC14NExecute
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NNewCtx
    - xmlC14NErr
    - xmlC14NFreeCtx
    - xmlOutputBufferFlush
    - xmlC14NProcessNodeList
    - xmlC14NErrParam
    linkageType: ''
    returnType: int
    signature: "int xmlC14NExecute(xmlDoc *doc, xmlC14NIsVisibleCallback is_visible_callback,\t
      void* user_data, int mode, xmlChar **inclusive_ns_prefixes,\t int with_comments,
      xmlOutputBuffer *buf) "
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 378
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 378
    functionName: xmlC14NStrEqual
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int xmlC14NStrEqual(const xmlChar *str1, const xmlChar *str2) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:429,1
    - Dst: xmlC14NStrEqual
      Src: /src/libxml2/c14n.c:447,1
    - Dst: xmlC14NStrEqual
      Src: /src/libxml2/c14n.c:439,1
    - Dst: xmlC14NStrEqual
      Src: /src/libxml2/c14n.c:439,1
    - Dst: xmlC14NStrEqual
      Src: /src/libxml2/c14n.c:446,1
    - Dst: xmlC14NIsVisible
      Src: /src/libxml2/c14n.c:448,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - cur
    - ns
    - ctx
    argTypes:
    - xmlC14NVisibleNsStackPtr
    - xmlNsPtr
    - xmlC14NCtxPtr
    constantsTouched: []
    func_position:
      end: 456
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 456
    functionName: xmlExcC14NVisibleNsStackFind
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NErrParam
    - xmlC14NIsVisible
    - xmlC14NStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xmlExcC14NVisibleNsStackFind(xmlC14NVisibleNsStackPtr cur,
      xmlNsPtr ns, xmlC14NCtxPtr ctx) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:2025,1
    - Dst: xmlC14NDocSaveTo
      Src: /src/libxml2/c14n.c:2045,1
    - Dst: xmlOutputBufferCreateFilename
      Src: /src/libxml2/c14n.c:2036,1
    - Dst: xmlC14NErr
      Src: /src/libxml2/c14n.c:2038,1
    - Dst: xmlGetCompressMode
      Src: /src/libxml2/c14n.c:2030,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/c14n.c:2048,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/c14n.c:2055,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 7
    argNames:
    - doc
    - nodes
    - mode
    - inclusive_ns_prefixes
    - with_comments
    - filename
    - compression
    argTypes:
    - xmlDoc*
    - xmlNodeSet*
    - int
    - xmlChar**
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2057
      start: 2016
    functionDepth: 0
    functionLinenumber: 2016
    functionLinenumberEnd: 2057
    functionName: xmlC14NDocSave
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferClose
    - xmlC14NErr
    - xmlC14NDocSaveTo
    - xmlOutputBufferCreateFilename
    - xmlGetCompressMode
    - xmlC14NErrParam
    linkageType: ''
    returnType: int
    signature: 'int xmlC14NDocSave(xmlDoc *doc, xmlNodeSet *nodes, int mode, xmlChar
      ** inclusive_ns_prefixes, int with_comments, const char *filename, int compression) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrFull
      Src: /src/libxml2/c14n.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ctxt
    - ns_uri
    argTypes:
    - xmlC14NCtxPtr
    - char*
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: xmlC14NErrRelativeNamespace
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NErrFull
    linkageType: ''
    returnType: void
    signature: 'static void xmlC14NErrRelativeNamespace(xmlC14NCtxPtr ctxt, const
      char *ns_uri) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetContains
      Src: /src/libxml2/c14n.c:247,1
    - Dst: memcpy
      Src: /src/libxml2/c14n.c:251,1
    - Dst: xmlXPathNodeSetContains
      Src: /src/libxml2/c14n.c:264,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - user_data
    - node
    - parent
    argTypes:
    - void*
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 268
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 268
    functionName: xmlC14NIsNodeInNodeset
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlXPathNodeSetContains
    - memcpy
    linkageType: ''
    returnType: int
    signature: 'static int xmlC14NIsNodeInNodeset(void *user_data, xmlNodePtr node,
      xmlNodePtr parent) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:284,1
    - Dst: memset
      Src: /src/libxml2/c14n.c:292,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:289,1
    - Dst: memset
      Src: /src/libxml2/c14n.c:288,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:293,1
    - Dst: memset
      Src: /src/libxml2/c14n.c:295,1
    - Dst: xmlFree
      Src: /src/libxml2/c14n.c:296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - cur
    argTypes:
    - xmlC14NVisibleNsStackPtr
    constantsTouched: []
    func_position:
      end: 298
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 298
    functionName: xmlC14NVisibleNsStackDestroy
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NErrParam
    - memset
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void xmlC14NVisibleNsStackDestroy(xmlC14NVisibleNsStackPtr
      cur) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - cur
    - state
    argTypes:
    - xmlC14NVisibleNsStackPtr
    - xmlC14NVisibleNsStackPtr
    constantsTouched: []
    func_position:
      end: 346
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 346
    functionName: xmlC14NVisibleNsStackSave
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NErrParam
    linkageType: ''
    returnType: void
    signature: 'static void xmlC14NVisibleNsStackSave(xmlC14NVisibleNsStackPtr cur,
      xmlC14NVisibleNsStackPtr state) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/c14n.c:274,1
    - Dst: memset
      Src: /src/libxml2/c14n.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 279
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 279
    functionName: xmlC14NVisibleNsStackCreate
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - memset
    - xmlMalloc
    linkageType: ''
    returnType: xmlC14NVisibleNsStackPtr
    signature: 'static xmlC14NVisibleNsStackPtr xmlC14NVisibleNsStackCreate(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/c14n.c:312,1
    - Dst: xmlRealloc
      Src: /src/libxml2/c14n.c:321,1
    - Dst: xmlRealloc
      Src: /src/libxml2/c14n.c:316,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - cur
    - ns
    - node
    argTypes:
    - xmlC14NVisibleNsStackPtr
    - xmlNsPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 334
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 334
    functionName: xmlC14NVisibleNsStackAdd
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    linkageType: ''
    returnType: int
    signature: 'static int xmlC14NVisibleNsStackAdd(xmlC14NVisibleNsStackPtr cur,
      xmlNsPtr ns, xmlNodePtr node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - cur
    - state
    argTypes:
    - xmlC14NVisibleNsStackPtr
    - xmlC14NVisibleNsStackPtr
    constantsTouched: []
    func_position:
      end: 357
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 357
    functionName: xmlC14NVisibleNsStackRestore
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NErrParam
    linkageType: ''
    returnType: void
    signature: 'static void xmlC14NVisibleNsStackRestore(xmlC14NVisibleNsStackPtr
      cur, xmlC14NVisibleNsStackPtr state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrFull
      Src: /src/libxml2/c14n.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - ctxt
    - node_type
    - extra
    argTypes:
    - xmlC14NCtxPtr
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: xmlC14NErrUnknownNode
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NErrFull
    linkageType: ''
    returnType: void
    signature: 'static void xmlC14NErrUnknownNode(xmlC14NCtxPtr ctxt, int node_type,
      const char *extra) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NErrFull
      Src: /src/libxml2/c14n.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 4
    argNames:
    - ctxt
    - node
    - error
    - msg
    argTypes:
    - xmlC14NCtxPtr
    - xmlNodePtr
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: xmlC14NErr
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NErrFull
    linkageType: ''
    returnType: void
    signature: 'static void xmlC14NErr(xmlC14NCtxPtr ctxt, xmlNodePtr node, int error,
      const char * msg) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NIsExclusive
      Src: /src/libxml2/c14n.c:1437,1
    - Dst: xmlC14NProcessNodeList
      Src: /src/libxml2/c14n.c:1457,1
    - Dst: xmlExcC14NProcessNamespacesAxis
      Src: /src/libxml2/c14n.c:1440,1
    - Dst: xmlC14NCheckForRelativeNamespaces
      Src: /src/libxml2/c14n.c:1411,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1430,1
    - Dst: xmlC14NProcessNamespacesAxis
      Src: /src/libxml2/c14n.c:1438,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1454,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1462,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1464,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1466,1
    - Dst: xmlC14NVisibleNsStackRestore
      Src: /src/libxml2/c14n.c:1480,1
    - Dst: xmlC14NErrParam
      Src: /src/libxml2/c14n.c:1402,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1427,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1434,1
    - Dst: xmlC14NProcessAttrsAxis
      Src: /src/libxml2/c14n.c:1449,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1468,1
    - Dst: memset
      Src: /src/libxml2/c14n.c:1417,1
    - Dst: xmlC14NVisibleNsStackSave
      Src: /src/libxml2/c14n.c:1418,1
    - Dst: xmlStrlen
      Src: /src/libxml2/c14n.c:1429,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1432,1
    - Dst: xmlC14NVisibleNsStackShift
      Src: /src/libxml2/c14n.c:1446,1
    - Dst: xmlStrlen
      Src: /src/libxml2/c14n.c:1463,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/c14n.c:1469,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 3
    argNames:
    - ctx
    - cur
    - visible
    argTypes:
    - xmlC14NCtxPtr
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 1482
      start: 1394
    functionDepth: 0
    functionLinenumber: 1394
    functionLinenumberEnd: 1482
    functionName: xmlC14NProcessElementNode
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NProcessAttrsAxis
    - xmlC14NVisibleNsStackShift
    - xmlC14NProcessNamespacesAxis
    - memset
    - xmlOutputBufferWriteString
    - xmlC14NIsExclusive
    - xmlStrlen
    - xmlExcC14NProcessNamespacesAxis
    - xmlC14NVisibleNsStackRestore
    - xmlC14NVisibleNsStackSave
    - xmlC14NProcessNodeList
    - xmlC14NErrParam
    - xmlC14NCheckForRelativeNamespaces
    linkageType: ''
    returnType: int
    signature: 'static int xmlC14NProcessElementNode(xmlC14NCtxPtr ctx, xmlNodePtr
      cur, int visible) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlC14NExecute
      Src: /src/libxml2/c14n.c:1919,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 6
    argNames:
    - doc
    - nodes
    - mode
    - inclusive_ns_prefixes
    - with_comments
    - buf
    argTypes:
    - xmlDoc*
    - xmlNodeSet*
    - int
    - xmlChar**
    - int
    - xmlOutputBuffer*
    constantsTouched: []
    func_position:
      end: 1926
      start: 1915
    functionDepth: 0
    functionLinenumber: 1915
    functionLinenumberEnd: 1926
    functionName: xmlC14NDocSaveTo
    functionSourceFile: /src/libxml2/c14n.c
    functionUses: []
    functionsReached:
    - xmlC14NExecute
    linkageType: ''
    returnType: int
    signature: 'int xmlC14NDocSaveTo(xmlDoc *doc, xmlNodeSet *nodes, int mode, xmlChar
      ** inclusive_ns_prefixes, int with_comments, xmlOutputBuffer *buf) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:306,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 322
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 322
    functionName: usage
    functionSourceFile: /src/libxml2/xmlcatalog.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void usage(const char *name) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/libxml2/xmlcatalog.c:74,1
    - Dst: readline
      Src: /src/libxml2/xmlcatalog.c:78,1
    - Dst: fprintf
      Src: /src/libxml2/xmlcatalog.c:91,1
    - Dst: fflush
      Src: /src/libxml2/xmlcatalog.c:92,1
    - Dst: add_history
      Src: /src/libxml2/xmlcatalog.c:83,1
    - Dst: fgets
      Src: /src/libxml2/xmlcatalog.c:93,1
    - Dst: strlen
      Src: /src/libxml2/xmlcatalog.c:96,1
    - Dst: malloc
      Src: /src/libxml2/xmlcatalog.c:97,1
    - Dst: memcpy
      Src: /src/libxml2/xmlcatalog.c:99,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - prompt
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 102
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 102
    functionName: xmlShellReadline
    functionSourceFile: /src/libxml2/xmlcatalog.c
    functionUses: []
    functionsReached:
    - malloc
    - memcpy
    - fgets
    - readline
    - add_history
    - strlen
    - fflush
    - fprintf
    - isatty
    linkageType: ''
    returnType: char*
    signature: 'static char *xmlShellReadline(const char *prompt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/xmlcatalog.c:628,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 630
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 630
    functionName: main
    functionSourceFile: /src/libxml2/xmlcatalog.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) '
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:361,1
    - Dst: fclose
      Src: /src/libxml2/xmlcatalog.c:510,1
    - Dst: xmlCatalogResolveSystem
      Src: /src/libxml2/xmlcatalog.c:585,1
    - Dst: xmlCatalogDump
      Src: /src/libxml2/xmlcatalog.c:613,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:443,1
    - Dst: fprintf
      Src: /src/libxml2/xmlcatalog.c:476,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:352,1
    - Dst: xmlCatalogAdd
      Src: /src/libxml2/xmlcatalog.c:419,1
    - Dst: xmlACatalogDump
      Src: /src/libxml2/xmlcatalog.c:526,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlcatalog.c:598,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:346,1
    - Dst: fprintf
      Src: /src/libxml2/xmlcatalog.c:382,1
    - Dst: fclose
      Src: /src/libxml2/xmlcatalog.c:527,1
    - Dst: xmlACatalogAdd
      Src: /src/libxml2/xmlcatalog.c:459,1
    - Dst: xmlParseURI
      Src: /src/libxml2/xmlcatalog.c:573,1
    - Dst: xmlCatalogResolvePublic
      Src: /src/libxml2/xmlcatalog.c:575,1
    - Dst: fprintf
      Src: /src/libxml2/xmlcatalog.c:402,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:442,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:358,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:365,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:389,1
    - Dst: fprintf
      Src: /src/libxml2/xmlcatalog.c:488,1
    - Dst: xmlCatalogResolvePublic
      Src: /src/libxml2/xmlcatalog.c:427,1
    - Dst: usershell
      Src: /src/libxml2/xmlcatalog.c:567,1
    - Dst: fprintf
      Src: /src/libxml2/xmlcatalog.c:609,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:362,1
    - Dst: xmlCatalogConvert
      Src: /src/libxml2/xmlcatalog.c:433,1
    - Dst: remove
      Src: /src/libxml2/xmlcatalog.c:500,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:539,1
    - Dst: fprintf
      Src: /src/libxml2/xmlcatalog.c:504,1
    - Dst: xmlACatalogRemove
      Src: /src/libxml2/xmlcatalog.c:472,1
    - Dst: remove
      Src: /src/libxml2/xmlcatalog.c:515,1
    - Dst: _fileno
      Src: /src/libxml2/xmlcatalog.c:329,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:443,1
    - Dst: xmlCatalogAdd
      Src: /src/libxml2/xmlcatalog.c:545,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:554,1
    - Dst: xmlCleanupParser
      Src: /src/libxml2/xmlcatalog.c:623,1
    - Dst: xmlLoadSGMLSuperCatalog
      Src: /src/libxml2/xmlcatalog.c:482,1
    - Dst: xmlFreeCatalog
      Src: /src/libxml2/xmlcatalog.c:536,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:347,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:553,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:580,1
    - Dst: xmlFreeURI
      Src: /src/libxml2/xmlcatalog.c:584,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:593,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:455,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:390,1
    - Dst: xmlNewCatalog
      Src: /src/libxml2/xmlcatalog.c:458,1
    - Dst: _setmode
      Src: /src/libxml2/xmlcatalog.c:331,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:354,1
    - Dst: fopen
      Src: /src/libxml2/xmlcatalog.c:502,1
    - Dst: xmlCatalogDump
      Src: /src/libxml2/xmlcatalog.c:616,1
    - Dst: _fileno
      Src: /src/libxml2/xmlcatalog.c:330,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:351,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:377,1
    - Dst: xmlCatalogIsEmpty
      Src: /src/libxml2/xmlcatalog.c:514,1
    - Dst: fprintf
      Src: /src/libxml2/xmlcatalog.c:519,1
    - Dst: xmlCatalogAdd
      Src: /src/libxml2/xmlcatalog.c:542,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:577,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:590,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:442,1
    - Dst: _fileno
      Src: /src/libxml2/xmlcatalog.c:331,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:359,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:370,1
    - Dst: xmlLoadSGMLSuperCatalog
      Src: /src/libxml2/xmlcatalog.c:453,1
    - Dst: xmlLoadSGMLSuperCatalog
      Src: /src/libxml2/xmlcatalog.c:463,1
    - Dst: fprintf
      Src: /src/libxml2/xmlcatalog.c:557,1
    - Dst: _setmode
      Src: /src/libxml2/xmlcatalog.c:330,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:367,1
    - Dst: xmlACatalogRemove
      Src: /src/libxml2/xmlcatalog.c:485,1
    - Dst: xmlNewCatalog
      Src: /src/libxml2/xmlcatalog.c:465,1
    - Dst: xmlCatalogRemove
      Src: /src/libxml2/xmlcatalog.c:555,1
    - Dst: xmlACatalogAdd
      Src: /src/libxml2/xmlcatalog.c:467,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:396,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:540,1
    - Dst: xmlLoadCatalog
      Src: /src/libxml2/xmlcatalog.c:417,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:341,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:355,1
    - Dst: xmlCatalogSetDebug
      Src: /src/libxml2/xmlcatalog.c:350,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:549,1
    - Dst: usage
      Src: /src/libxml2/xmlcatalog.c:403,1
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/xmlcatalog.c:414,1
    - Dst: xmlCatalogIsEmpty
      Src: /src/libxml2/xmlcatalog.c:499,1
    - Dst: xmlCatalogResolveURI
      Src: /src/libxml2/xmlcatalog.c:588,1
    - Dst: fopen
      Src: /src/libxml2/xmlcatalog.c:607,1
    - Dst: xmlACatalogDump
      Src: /src/libxml2/xmlcatalog.c:509,1
    - Dst: _setmode
      Src: /src/libxml2/xmlcatalog.c:329,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:371,1
    - Dst: usage
      Src: /src/libxml2/xmlcatalog.c:383,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:437,1
    - Dst: xmlCatalogIsEmpty
      Src: /src/libxml2/xmlcatalog.c:481,1
    - Dst: usage
      Src: /src/libxml2/xmlcatalog.c:335,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:368,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:378,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlcatalog.c:581,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:587,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlcatalog.c:594,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:597,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:456,1
    - Dst: xmlACatalogDump
      Src: /src/libxml2/xmlcatalog.c:532,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:397,1
    - Dst: fopen
      Src: /src/libxml2/xmlcatalog.c:517,1
    - Dst: xmlFreeCatalog
      Src: /src/libxml2/xmlcatalog.c:537,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:348,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:364,1
    CyclomaticComplexity: 98
    EdgeCount: 98
    ICount: 332
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 625
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 625
    functionName: main
    functionSourceFile: /src/libxml2/xmlcatalog.c
    functionUses: []
    functionsReached:
    - xmlFreeURI
    - fclose
    - _fileno
    - remove
    - xmlACatalogRemove
    - xmlCatalogResolveURI
    - xmlInitializeCatalog
    - printf
    - usage
    - xmlFreeCatalog
    - xmlCatalogRemove
    - fopen
    - usershell
    - xmlCatalogDump
    - xmlCatalogResolvePublic
    - xmlCatalogSetDebug
    - xmlLoadCatalog
    - xmlCleanupParser
    - xmlACatalogAdd
    - xmlParseURI
    - xmlLoadSGMLSuperCatalog
    - xmlFree
    - xmlCatalogConvert
    - strcmp
    - xmlCatalogAdd
    - xmlACatalogDump
    - xmlCatalogIsEmpty
    - xmlCatalogResolveSystem
    - xmlNewCatalog
    - _setmode
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libxml2/xmlcatalog.c:140,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:194,1
    - Dst: free
      Src: /src/libxml2/xmlcatalog.c:196,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:200,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:214,1
    - Dst: xmlCatalogResolvePublic
      Src: /src/libxml2/xmlcatalog.c:204,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:239,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:246,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:265,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:267,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:284,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:286,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:237,1
    - Dst: xmlShellReadline
      Src: /src/libxml2/xmlcatalog.c:114,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:206,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:212,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:218,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:208,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:220,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:224,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:243,1
    - Dst: xmlCatalogDump
      Src: /src/libxml2/xmlcatalog.c:263,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:272,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:274,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:281,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:289,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:290,1
    - Dst: free
      Src: /src/libxml2/xmlcatalog.c:133,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:195,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:202,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlcatalog.c:209,1
    - Dst: xmlCatalogResolveSystem
      Src: /src/libxml2/xmlcatalog.c:216,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlcatalog.c:221,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:226,1
    - Dst: xmlCatalogAdd
      Src: /src/libxml2/xmlcatalog.c:229,1
    - Dst: xmlCatalogAdd
      Src: /src/libxml2/xmlcatalog.c:232,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:235,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:285,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:287,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:253,1
    - Dst: free
      Src: /src/libxml2/xmlcatalog.c:295,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:282,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:248,1
    - Dst: memset
      Src: /src/libxml2/xmlcatalog.c:156,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:193,1
    - Dst: xmlCatalogRemove
      Src: /src/libxml2/xmlcatalog.c:241,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:255,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlcatalog.c:256,1
    - Dst: strcmp
      Src: /src/libxml2/xmlcatalog.c:259,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:261,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:291,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:292,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:293,1
    - Dst: xmlCatalogSetDebug
      Src: /src/libxml2/xmlcatalog.c:270,1
    - Dst: printf
      Src: /src/libxml2/xmlcatalog.c:288,1
    - Dst: xmlCatalogSetDebug
      Src: /src/libxml2/xmlcatalog.c:278,1
    - Dst: xmlCatalogResolve
      Src: /src/libxml2/xmlcatalog.c:250,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 196
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 297
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 297
    functionName: usershell
    functionSourceFile: /src/libxml2/xmlcatalog.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCatalogRemove
    - memset
    - strcmp
    - xmlCatalogResolve
    - xmlCatalogAdd
    - xmlCatalogDump
    - free
    - xmlShellReadline
    - xmlCatalogResolvePublic
    - xmlCatalogSetDebug
    - printf
    - xmlCatalogResolveSystem
    linkageType: ''
    returnType: void
    signature: 'static void usershell(void) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufDumpEnumeration
      Src: /src/libxml2/xmlsave.c:509,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:524,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:527,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:530,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:543,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:473,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:475,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:478,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:477,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:480,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:484,1
    - Dst: xmlBufDumpEnumeration
      Src: /src/libxml2/xmlsave.c:513,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:540,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:474,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:487,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:490,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:493,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:499,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:502,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:505,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:508,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:496,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:538,1
    - Dst: xmlSaveWriteText
      Src: /src/libxml2/xmlsave.c:539,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:512,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 32
    argCount: 2
    argNames:
    - ctxt
    - attr
    argTypes:
    - xmlSaveCtxtPtr
    - xmlAttributePtr
    constantsTouched: []
    func_position:
      end: 544
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 544
    functionName: xmlSaveWriteAttributeDecl
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlBufDumpEnumeration
    - xmlOutputBufferWrite
    - xmlSaveWriteText
    - xmlOutputBufferWriteString
    linkageType: ''
    returnType: void
    signature: 'static void xmlSaveWriteAttributeDecl(xmlSaveCtxtPtr ctxt, xmlAttributePtr
      attr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferFlush
      Src: /src/libxml2/xmlsave.c:689,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/xmlsave.c:692,1
    - Dst: xmlBufFree
      Src: /src/libxml2/xmlsave.c:694,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSaveCtxtPtr
    constantsTouched: []
    func_position:
      end: 702
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 702
    functionName: xmlSaveClearEncoding
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlBufFree
    - xmlOutputBufferFlush
    - xmlCharEncCloseFunc
    linkageType: ''
    returnType: int
    signature: 'static int xmlSaveClearEncoding(xmlSaveCtxtPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:727,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ctxt
    - extra
    argTypes:
    - xmlSaveCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 728
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 728
    functionName: xmlSaveWriteIndent
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWrite
    linkageType: ''
    returnType: void
    signature: 'static void xmlSaveWriteIndent(xmlSaveCtxtPtr ctxt, int extra) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferWriteWSNonSig
      Src: /src/libxml2/xmlsave.c:887,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:889,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:894,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:891,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:892,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:895,1
    - Dst: htmlIsBooleanAttr
      Src: /src/libxml2/xmlsave.c:902,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:903,1
    - Dst: xmlSaveWriteAttrContent
      Src: /src/libxml2/xmlsave.c:907,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:909,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlSaveCtxtPtr
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 910
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 910
    functionName: xmlAttrDumpOutput
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWriteWSNonSig
    - xmlSaveWriteAttrContent
    - xmlOutputBufferWrite
    - htmlIsBooleanAttr
    - xmlOutputBufferWriteString
    linkageType: ''
    returnType: void
    signature: 'static void xmlAttrDumpOutput(xmlSaveCtxtPtr ctxt, xmlAttrPtr cur) '
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveWriteAttributeDecl
      Src: /src/libxml2/xmlsave.c:1530,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1555,1
    - Dst: xmlNodeGetAttrValue
      Src: /src/libxml2/xmlsave.c:1584,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlsave.c:1594,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1637,1
    - Dst: xmlAttrDumpOutput
      Src: /src/libxml2/xmlsave.c:1760,1
    - Dst: xmlOutputBufferWriteEscape
      Src: /src/libxml2/xmlsave.c:1691,1
    - Dst: xmlSaveWriteIndent
      Src: /src/libxml2/xmlsave.c:1615,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1655,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1708,1
    - Dst: xhtmlNodeDumpOutput
      Src: /src/libxml2/xmlsave.c:1549,1
    - Dst: xmlSaveWriteIndent
      Src: /src/libxml2/xmlsave.c:1649,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1676,1
    - Dst: xmlSaveWriteText
      Src: /src/libxml2/xmlsave.c:1694,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1722,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1575,1
    - Dst: xhtmlIsEmpty
      Src: /src/libxml2/xmlsave.c:1605,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1621,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1724,1
    - Dst: xmlBufDumpElementDecl
      Src: /src/libxml2/xmlsave.c:1526,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1580,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1642,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1788,1
    - Dst: xmlSaveDocInternal
      Src: /src/libxml2/xmlsave.c:1505,1
    - Dst: xhtmlAttrListDumpOutput
      Src: /src/libxml2/xmlsave.c:1571,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1556,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1567,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1639,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1699,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1730,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1714,1
    - Dst: xmlSaveErrMemory
      Src: /src/libxml2/xmlsave.c:1587,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1645,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1716,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1794,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1753,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1553,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1559,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1658,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1744,1
    - Dst: xmlSaveWriteIndent
      Src: /src/libxml2/xmlsave.c:1541,1
    - Dst: xmlNsListDumpOutputCtxt
      Src: /src/libxml2/xmlsave.c:1561,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/xmlsave.c:1589,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1731,1
    - Dst: xmlDtdDumpOutput
      Src: /src/libxml2/xmlsave.c:1513,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1562,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1624,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1635,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1706,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1786,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1790,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1660,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1771,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1723,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1712,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1709,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1729,1
    - Dst: xmlNsDumpOutput
      Src: /src/libxml2/xmlsave.c:1509,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1626,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1612,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1614,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1609,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1641,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1630,1
    - Dst: xmlBufDumpEntityDecl
      Src: /src/libxml2/xmlsave.c:1534,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1576,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1651,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1754,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1743,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1752,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1746,1
    - Dst: xmlSaveWriteIndent
      Src: /src/libxml2/xmlsave.c:1784,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1736,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1705,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlsave.c:1591,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1617,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1628,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1648,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1715,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1793,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 235
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlSaveCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1805
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1805
    functionName: xhtmlNodeDumpOutput
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xhtmlNodeDumpOutput
    - xmlOutputBufferWriteString
    - xmlBufDumpElementDecl
    - xmlAttrDumpOutput
    - xmlSaveWriteText
    - xhtmlAttrListDumpOutput
    - xmlBufDumpEntityDecl
    - xmlOutputBufferWriteEscape
    - xmlFree
    - xmlOutputBufferWrite
    - xmlSaveDocInternal
    - xmlSaveWriteAttributeDecl
    - xhtmlIsEmpty
    - xmlSaveErrMemory
    - xmlNsDumpOutput
    - xmlSaveWriteIndent
    - xmlStrcasecmp
    - xmlNodeGetAttrValue
    - xmlStrEqual
    - xmlNsListDumpOutputCtxt
    - xmlDtdDumpOutput
    linkageType: ''
    returnType: void
    signature: 'static void xhtmlNodeDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewSaveCtxt
      Src: /src/libxml2/xmlsave.c:1866,1
    - Dst: xmlOutputBufferCreateFilename
      Src: /src/libxml2/xmlsave.c:1868,1
    - Dst: xmlFreeSaveCtxt
      Src: /src/libxml2/xmlsave.c:1872,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/xmlsave.c:1871,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - filename
    - encoding
    - options
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1876
      start: 1860
    functionDepth: 0
    functionLinenumber: 1860
    functionLinenumberEnd: 1876
    functionName: xmlSaveToFilename
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlFreeSaveCtxt
    - xmlNewSaveCtxt
    - xmlOutputBufferCreateFilename
    - xmlCharEncCloseFunc
    linkageType: ''
    returnType: xmlSaveCtxt*
    signature: 'xmlSaveCtxt *xmlSaveToFilename(const char *filename, const char *encoding,
      int options) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xhtmlNodeDumpOutput
      Src: /src/libxml2/xmlsave.c:1984,1
    - Dst: xmlNodeDumpOutputInternal
      Src: /src/libxml2/xmlsave.c:1995,1
    - Dst: htmlNodeDumpOutputInternal
      Src: /src/libxml2/xmlsave.c:1991,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlSaveCtxt*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1997
      start: 1976
    functionDepth: 0
    functionLinenumber: 1976
    functionLinenumberEnd: 1997
    functionName: xmlSaveTree
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlNodeDumpOutputInternal
    - xhtmlNodeDumpOutput
    - htmlNodeDumpOutputInternal
    linkageType: ''
    returnType: long
    signature: 'long xmlSaveTree(xmlSaveCtxt *ctxt, xmlNode *cur) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufDumpNotationTable
      Src: /src/libxml2/xmlsave.c:2025,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlSaveCtxt*
    - xmlNotationTable*
    constantsTouched: []
    func_position:
      end: 2027
      start: 2021
    functionDepth: 0
    functionLinenumber: 2021
    functionLinenumberEnd: 2027
    functionName: xmlSaveNotationTable
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlBufDumpNotationTable
    linkageType: ''
    returnType: int
    signature: 'int xmlSaveNotationTable(xmlSaveCtxt *ctxt, xmlNotationTable *cur) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSerializeText
      Src: /src/libxml2/xmlsave.c:2146,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - doc
    - string
    argTypes:
    - xmlOutputBuffer*
    - xmlDoc*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2147
      start: 2138
    functionDepth: 0
    functionLinenumber: 2138
    functionLinenumberEnd: 2147
    functionName: xmlBufAttrSerializeTxtContent
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlSerializeText
    linkageType: ''
    returnType: void
    signature: 'void xmlBufAttrSerializeTxtContent(xmlOutputBuffer *buf, xmlDoc *doc,
      const xmlChar *string) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocDumpFormatMemoryEnc
      Src: /src/libxml2/xmlsave.c:2484,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - cur
    - mem
    - size
    - format
    argTypes:
    - xmlDoc*
    - xmlChar**
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 2485
      start: 2482
    functionDepth: 0
    functionLinenumber: 2482
    functionLinenumberEnd: 2485
    functionName: xmlDocDumpFormatMemory
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlDocDumpFormatMemoryEnc
    linkageType: ''
    returnType: void
    signature: 'void xmlDocDumpFormatMemory(xmlDoc *cur, xmlChar**mem, int *size,
      int format) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocDumpFormatMemoryEnc
      Src: /src/libxml2/xmlsave.c:2470,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - cur
    - mem
    - size
    argTypes:
    - xmlDoc*
    - xmlChar**
    - int*
    constantsTouched: []
    func_position:
      end: 2471
      start: 2468
    functionDepth: 0
    functionLinenumber: 2468
    functionLinenumberEnd: 2471
    functionName: xmlDocDumpMemory
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlDocDumpFormatMemoryEnc
    linkageType: ''
    returnType: void
    signature: 'void xmlDocDumpMemory(xmlDoc *cur, xmlChar**mem, int *size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveFormatFileTo
      Src: /src/libxml2/xmlsave.c:2560,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - cur
    - encoding
    argTypes:
    - xmlOutputBuffer*
    - xmlDoc*
    - char*
    constantsTouched: []
    func_position:
      end: 2561
      start: 2558
    functionDepth: 0
    functionLinenumber: 2558
    functionLinenumberEnd: 2561
    functionName: xmlSaveFileTo
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlSaveFormatFileTo
    linkageType: ''
    returnType: int
    signature: 'int xmlSaveFileTo(xmlOutputBuffer *buf, xmlDoc *cur, const char *encoding) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetCompressMode
      Src: /src/libxml2/xmlsave.c:2626,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/xmlsave.c:2636,1
    - Dst: xmlDocDumpInternal
      Src: /src/libxml2/xmlsave.c:2634,1
    - Dst: xmlOutputBufferCreateFilename
      Src: /src/libxml2/xmlsave.c:2631,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - filename
    - cur
    - encoding
    - format
    argTypes:
    - char*
    - xmlDoc*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2637
      start: 2617
    functionDepth: 0
    functionLinenumber: 2617
    functionLinenumberEnd: 2637
    functionName: xmlSaveFormatFileEnc
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlDocDumpInternal
    - xmlGetCompressMode
    - xmlOutputBufferCreateFilename
    - xmlOutputBufferClose
    linkageType: ''
    returnType: int
    signature: "int xmlSaveFormatFileEnc( const char * filename, xmlDoc *cur,\t\t\tconst
      char * encoding, int format ) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveFormatFileEnc
      Src: /src/libxml2/xmlsave.c:2676,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - cur
    argTypes:
    - char*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 2677
      start: 2674
    functionDepth: 0
    functionLinenumber: 2674
    functionLinenumberEnd: 2677
    functionName: xmlSaveFile
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlSaveFormatFileEnc
    linkageType: ''
    returnType: int
    signature: 'int xmlSaveFile(const char *filename, xmlDoc *cur) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:271,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:272,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:278,1
    - Dst: xmlOutputBufferWriteQuotedString
      Src: /src/libxml2/xmlsave.c:276,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:275,1
    - Dst: xmlOutputBufferWriteQuotedString
      Src: /src/libxml2/xmlsave.c:279,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:282,1
    - Dst: xmlOutputBufferWriteQuotedString
      Src: /src/libxml2/xmlsave.c:283,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - nota
    argTypes:
    - xmlOutputBufferPtr
    - xmlNotationPtr
    constantsTouched: []
    func_position:
      end: 287
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 287
    functionName: xmlBufDumpNotationDecl
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWriteQuotedString
    - xmlOutputBufferWrite
    - xmlOutputBufferWriteString
    linkageType: ''
    returnType: void
    signature: 'static void xmlBufDumpNotationDecl(xmlOutputBufferPtr buf, xmlNotationPtr
      nota) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:325,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:328,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:331,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - cur
    argTypes:
    - xmlOutputBufferPtr
    - xmlElementContentPtr
    constantsTouched: []
    func_position:
      end: 334
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 334
    functionName: xmlBufDumpElementOccur
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWrite
    linkageType: ''
    returnType: void
    signature: 'static void xmlBufDumpElementOccur(xmlOutputBufferPtr buf, xmlElementContentPtr
      cur) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1360,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1370,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1372,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1374,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1366,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1378,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1382,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1386,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1390,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1392,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1398,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1406,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1394,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1402,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 22
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1411
      start: 1354
    functionDepth: 0
    functionLinenumber: 1354
    functionLinenumberEnd: 1411
    functionName: xhtmlIsEmpty
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int xhtmlIsEmpty(xmlNodePtr node) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufFromBuffer
      Src: /src/libxml2/xmlsave.c:2207,1
    - Dst: xmlBufBackToBuffer
      Src: /src/libxml2/xmlsave.c:2211,1
    - Dst: xmlBufNodeDump
      Src: /src/libxml2/xmlsave.c:2210,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 5
    argNames:
    - buf
    - doc
    - cur
    - level
    - format
    argTypes:
    - xmlBuffer*
    - xmlDoc*
    - xmlNode*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2215
      start: 2193
    functionDepth: 0
    functionLinenumber: 2193
    functionLinenumberEnd: 2215
    functionName: xmlNodeDump
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlBufFromBuffer
    - xmlBufNodeDump
    - xmlBufBackToBuffer
    linkageType: ''
    returnType: int
    signature: 'int xmlNodeDump(xmlBuffer *buf, xmlDoc *doc, xmlNode *cur, int level,
      int format) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocDumpFormatMemoryEnc
      Src: /src/libxml2/xmlsave.c:2499,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 4
    argNames:
    - out_doc
    - doc_txt_ptr
    - doc_txt_len
    - txt_encoding
    argTypes:
    - xmlDoc*
    - xmlChar**
    - int*
    - char*
    constantsTouched: []
    func_position:
      end: 2501
      start: 2496
    functionDepth: 0
    functionLinenumber: 2496
    functionLinenumberEnd: 2501
    functionName: xmlDocDumpMemoryEnc
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlDocDumpFormatMemoryEnc
    linkageType: ''
    returnType: void
    signature: "void xmlDocDumpMemoryEnc(xmlDoc *out_doc, xmlChar **doc_txt_ptr,\t
      int * doc_txt_len, const char * txt_encoding) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveFormatFileEnc
      Src: /src/libxml2/xmlsave.c:2650,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - filename
    - cur
    - encoding
    argTypes:
    - char*
    - xmlDoc*
    - char*
    constantsTouched: []
    func_position:
      end: 2651
      start: 2648
    functionDepth: 0
    functionLinenumber: 2648
    functionLinenumberEnd: 2651
    functionName: xmlSaveFileEnc
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlSaveFormatFileEnc
    linkageType: ''
    returnType: int
    signature: 'int xmlSaveFileEnc(const char *filename, xmlDoc *cur, const char *encoding) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveWriteText
      Src: /src/libxml2/xmlsave.c:248,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:253,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:251,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:252,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - attr
    argTypes:
    - xmlSaveCtxt*
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 261
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 261
    functionName: xmlSaveWriteAttrContent
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWrite
    - xmlSaveWriteText
    - xmlOutputBufferWriteString
    linkageType: ''
    returnType: void
    signature: 'static void xmlSaveWriteAttrContent(xmlSaveCtxt *ctxt, xmlAttrPtr
      attr) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:560,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:572,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:565,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:571,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:566,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:580,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:581,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - buf
    - content
    argTypes:
    - xmlOutputBufferPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 582
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 582
    functionName: xmlBufDumpEntityContent
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWrite
    linkageType: ''
    returnType: void
    signature: 'static void xmlBufDumpEntityContent(xmlOutputBufferPtr buf, const
      xmlChar *content) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:742,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:744,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ctxt
    - extra
    argTypes:
    - xmlSaveCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 749
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 749
    functionName: xmlOutputBufferWriteWSNonSig
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWrite
    linkageType: ''
    returnType: void
    signature: 'static void xmlOutputBufferWriteWSNonSig(xmlSaveCtxtPtr ctxt, int
      extra) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewSaveCtxt
      Src: /src/libxml2/xmlsave.c:1899,1
    - Dst: xmlOutputBufferCreateBuffer
      Src: /src/libxml2/xmlsave.c:1901,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/xmlsave.c:1903,1
    - Dst: xmlFreeSaveCtxt
      Src: /src/libxml2/xmlsave.c:1904,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - buffer
    - encoding
    - options
    argTypes:
    - xmlBuffer*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1908
      start: 1894
    functionDepth: 0
    functionLinenumber: 1894
    functionLinenumberEnd: 1908
    functionName: xmlSaveToBuffer
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferCreateBuffer
    - xmlFreeSaveCtxt
    - xmlNewSaveCtxt
    - xmlCharEncCloseFunc
    linkageType: ''
    returnType: xmlSaveCtxt*
    signature: 'xmlSaveCtxt *xmlSaveToBuffer(xmlBuffer *buffer, const char *encoding,
      int options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufDumpNotationDecl
      Src: /src/libxml2/xmlsave.c:2010,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlSaveCtxt*
    - xmlNotation*
    constantsTouched: []
    func_position:
      end: 2012
      start: 2006
    functionDepth: 0
    functionLinenumber: 2006
    functionLinenumberEnd: 2012
    functionName: xmlSaveNotationDecl
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlBufDumpNotationDecl
    linkageType: ''
    returnType: int
    signature: 'int xmlSaveNotationDecl(xmlSaveCtxt *ctxt, xmlNotation *cur) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferFlush
      Src: /src/libxml2/xmlsave.c:2041,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSaveCtxt*
    constantsTouched: []
    func_position:
      end: 2042
      start: 2036
    functionDepth: 0
    functionLinenumber: 2036
    functionLinenumberEnd: 2042
    functionName: xmlSaveFlush
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferFlush
    linkageType: ''
    returnType: int
    signature: 'int xmlSaveFlush(xmlSaveCtxt *ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferCreateBuffer
      Src: /src/libxml2/xmlsave.c:2166,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlsave.c:2170,1
    - Dst: xmlBufAttrSerializeTxtContent
      Src: /src/libxml2/xmlsave.c:2167,1
    - Dst: xmlOutputBufferFlush
      Src: /src/libxml2/xmlsave.c:2168,1
    - Dst: xmlBufferDetach
      Src: /src/libxml2/xmlsave.c:2170,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/xmlsave.c:2171,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 4
    argNames:
    - buf
    - doc
    - ATTRIBUTE_UNUSED
    - string
    argTypes:
    - xmlBuffer*
    - xmlDoc*
    - xmlAttr*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2172
      start: 2157
    functionDepth: 0
    functionLinenumber: 2157
    functionLinenumberEnd: 2172
    functionName: xmlAttrSerializeTxtContent
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferCreateBuffer
    - xmlFree
    - xmlBufAttrSerializeTxtContent
    - xmlOutputBufferClose
    - xmlBufferDetach
    - xmlOutputBufferFlush
    linkageType: ''
    returnType: void
    signature: 'void xmlAttrSerializeTxtContent(xmlBuffer *buf, xmlDoc *doc, xmlAttr
      *attr ATTRIBUTE_UNUSED, const xmlChar *string) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferCreateFile
      Src: /src/libxml2/xmlsave.c:2525,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/xmlsave.c:2530,1
    - Dst: xmlDocDumpInternal
      Src: /src/libxml2/xmlsave.c:2528,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - f
    - cur
    - format
    argTypes:
    - FILE*
    - xmlDoc*
    - int
    constantsTouched: []
    func_position:
      end: 2531
      start: 2517
    functionDepth: 0
    functionLinenumber: 2517
    functionLinenumberEnd: 2531
    functionName: xmlDocFormatDump
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferCreateFile
    - xmlDocDumpInternal
    - xmlOutputBufferClose
    linkageType: ''
    returnType: int
    signature: 'int xmlDocFormatDump(FILE *f, xmlDoc *cur, int format) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlsave.c:193,1
    - Dst: xmlSaveErr
      Src: /src/libxml2/xmlsave.c:206,1
    - Dst: xmlOpenCharEncodingHandler
      Src: /src/libxml2/xmlsave.c:203,1
    - Dst: xmlSaveErrMemory
      Src: /src/libxml2/xmlsave.c:195,1
    - Dst: memset
      Src: /src/libxml2/xmlsave.c:198,1
    - Dst: xmlFreeSaveCtxt
      Src: /src/libxml2/xmlsave.c:207,1
    - Dst: xmlStrdup
      Src: /src/libxml2/xmlsave.c:210,1
    - Dst: xmlSaveCtxtInit
      Src: /src/libxml2/xmlsave.c:213,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - encoding
    - options
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 216
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 216
    functionName: xmlNewSaveCtxt
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - memset
    - xmlSaveErr
    - xmlOpenCharEncodingHandler
    - xmlSaveErrMemory
    - xmlFreeSaveCtxt
    - xmlStrdup
    - xmlSaveCtxtInit
    - xmlMalloc
    linkageType: ''
    returnType: xmlSaveCtxtPtr
    signature: 'static xmlSaveCtxtPtr xmlNewSaveCtxt(const char *encoding, int options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufDumpNotationDecl
      Src: /src/libxml2/xmlsave.c:299,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - nota
    - buf
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: xmlBufDumpNotationDeclScan
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlBufDumpNotationDecl
    linkageType: ''
    returnType: void
    signature: 'static void xmlBufDumpNotationDeclScan(void *nota, void *buf, const
      xmlChar *name ATTRIBUTE_UNUSED) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:417,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:419,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:423,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:422,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:420,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:427,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:430,1
    - Dst: xmlBufDumpElementContent
      Src: /src/libxml2/xmlsave.c:434,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:441,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - buf
    - elem
    argTypes:
    - xmlOutputBufferPtr
    - xmlElementPtr
    constantsTouched: []
    func_position:
      end: 442
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 442
    functionName: xmlBufDumpElementDecl
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlBufDumpElementContent
    - xmlOutputBufferWrite
    - xmlOutputBufferWriteString
    linkageType: ''
    returnType: void
    signature: 'static void xmlBufDumpElementDecl(xmlOutputBufferPtr buf, xmlElementPtr
      elem) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlOpenCharEncodingHandler
      Src: /src/libxml2/xmlsave.c:654,1
    - Dst: xmlBufCreate
      Src: /src/libxml2/xmlsave.c:663,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/xmlsave.c:665,1
    - Dst: xmlSaveErrMemory
      Src: /src/libxml2/xmlsave.c:666,1
    - Dst: xmlSaveErr
      Src: /src/libxml2/xmlsave.c:656,1
    - Dst: xmlCharEncOutput
      Src: /src/libxml2/xmlsave.c:680,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - ctxt
    - encoding
    argTypes:
    - xmlSaveCtxtPtr
    - char*
    constantsTouched: []
    func_position:
      end: 683
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 683
    functionName: xmlSaveSwitchEncoding
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlCharEncOutput
    - xmlSaveErr
    - xmlOpenCharEncodingHandler
    - xmlSaveErrMemory
    - xmlBufCreate
    - xmlCharEncCloseFunc
    linkageType: ''
    returnType: int
    signature: 'static int xmlSaveSwitchEncoding(xmlSaveCtxtPtr ctxt, const char *encoding) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNsDumpOutput
      Src: /src/libxml2/xmlsave.c:800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlSaveCtxtPtr
    - xmlNsPtr
    constantsTouched: []
    func_position:
      end: 803
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 803
    functionName: xmlNsListDumpOutputCtxt
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlNsDumpOutput
    linkageType: ''
    returnType: void
    signature: 'static void xmlNsListDumpOutputCtxt(xmlSaveCtxtPtr ctxt, xmlNsPtr
      cur) '
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: xmlBufDumpEntityDecl
      Src: /src/libxml2/xmlsave.c:1001,1
    - Dst: xmlDtdDumpOutput
      Src: /src/libxml2/xmlsave.c:980,1
    - Dst: xmlNodeDumpOutputInternal
      Src: /src/libxml2/xmlsave.c:1014,1
    - Dst: xmlAttrDumpOutput
      Src: /src/libxml2/xmlsave.c:1027,1
    - Dst: xmlOutputBufferWriteWSNonSig
      Src: /src/libxml2/xmlsave.c:1036,1
    - Dst: xmlOutputBufferWriteWSNonSig
      Src: /src/libxml2/xmlsave.c:1045,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1091,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1101,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1106,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1107,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1134,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1112,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1180,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1157,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1113,1
    - Dst: xmlAttrDumpOutput
      Src: /src/libxml2/xmlsave.c:1163,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1195,1
    - Dst: xmlSaveDocInternal
      Src: /src/libxml2/xmlsave.c:976,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1039,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1041,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1043,1
    - Dst: xmlOutputBufferWriteWSNonSig
      Src: /src/libxml2/xmlsave.c:1063,1
    - Dst: xmlOutputBufferWriteEscape
      Src: /src/libxml2/xmlsave.c:1083,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1110,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1116,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1125,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1205,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1133,1
    - Dst: xmlSaveWriteIndent
      Src: /src/libxml2/xmlsave.c:1193,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1197,1
    - Dst: xmlBufDumpElementDecl
      Src: /src/libxml2/xmlsave.c:993,1
    - Dst: xmlSaveWriteIndent
      Src: /src/libxml2/xmlsave.c:1006,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1018,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1023,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1033,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1046,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1065,1
    - Dst: xmlOutputBufferWriteEscape
      Src: /src/libxml2/xmlsave.c:1079,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1100,1
    - Dst: xmlOutputBufferWriteWSNonSig
      Src: /src/libxml2/xmlsave.c:1104,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1149,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1202,1
    - Dst: xmlOutputBufferWriteWSNonSig
      Src: /src/libxml2/xmlsave.c:1204,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1139,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1147,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1199,1
    - Dst: xmlSaveWriteAttributeDecl
      Src: /src/libxml2/xmlsave.c:997,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1020,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1021,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1037,1
    - Dst: xmlNsListDumpOutputCtxt
      Src: /src/libxml2/xmlsave.c:1025,1
    - Dst: xmlOutputBufferWriteWSNonSig
      Src: /src/libxml2/xmlsave.c:1032,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1064,1
    - Dst: xmlSaveWriteIndent
      Src: /src/libxml2/xmlsave.c:1097,1
    - Dst: xmlOutputBufferWriteWSNonSig
      Src: /src/libxml2/xmlsave.c:1115,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1126,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1146,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1155,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1156,1
    - Dst: xmlNsDumpOutput
      Src: /src/libxml2/xmlsave.c:1167,1
    - Dst: xmlSaveWriteIndent
      Src: /src/libxml2/xmlsave.c:1122,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1132,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1127,1
    CyclomaticComplexity: 81
    EdgeCount: 81
    ICount: 191
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlSaveCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 1214
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 1214
    functionName: xmlNodeDumpOutputInternal
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWriteWSNonSig
    - xmlOutputBufferWrite
    - xmlSaveDocInternal
    - xmlSaveWriteAttributeDecl
    - xmlOutputBufferWriteString
    - xmlBufDumpElementDecl
    - xmlAttrDumpOutput
    - xmlNsDumpOutput
    - xmlBufDumpEntityDecl
    - xmlOutputBufferWriteEscape
    - xmlSaveWriteIndent
    - xmlNsListDumpOutputCtxt
    - xmlDtdDumpOutput
    - xmlNodeDumpOutputInternal
    linkageType: ''
    returnType: void
    signature: 'static void xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr
      cur) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/xmlsave.c:2079,1
    - Dst: xmlFreeSaveCtxt
      Src: /src/libxml2/xmlsave.c:2086,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSaveCtxt*
    constantsTouched: []
    func_position:
      end: 2088
      start: 2071
    functionDepth: 0
    functionLinenumber: 2071
    functionLinenumberEnd: 2088
    functionName: xmlSaveFinish
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlFreeSaveCtxt
    - xmlOutputBufferClose
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'xmlParserErrors xmlSaveFinish(xmlSaveCtxt *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlSaveCtxt*
    - xmlCharEncodingOutputFunc
    constantsTouched: []
    func_position:
      end: 2123
      start: 2117
    functionDepth: 0
    functionLinenumber: 2117
    functionLinenumberEnd: 2123
    functionName: xmlSaveSetAttrEscape
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlSaveSetAttrEscape(xmlSaveCtxt *ctxt, xmlCharEncodingOutputFunc
      escape ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlRaiseMemoryError
      Src: /src/libxml2/xmlsave.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - xmlOutputBufferPtr
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: xmlSaveErrMemory
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlRaiseMemoryError
    linkageType: ''
    returnType: void
    signature: 'static void xmlSaveErrMemory(xmlOutputBufferPtr out) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libxml2/xmlsave.c:132,1
    - Dst: memcpy
      Src: /src/libxml2/xmlsave.c:139,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - ctxt
    - indent
    argTypes:
    - xmlSaveCtxt*
    - char*
    constantsTouched: []
    func_position:
      end: 142
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 142
    functionName: xmlSaveSetIndentString
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: int
    signature: 'int xmlSaveSetIndentString(xmlSaveCtxt *ctxt, const char *indent) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewSaveCtxt
      Src: /src/libxml2/xmlsave.c:1834,1
    - Dst: xmlOutputBufferCreateFd
      Src: /src/libxml2/xmlsave.c:1836,1
    - Dst: xmlFreeSaveCtxt
      Src: /src/libxml2/xmlsave.c:1839,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/xmlsave.c:1838,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - encoding
    - options
    argTypes:
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1843
      start: 1829
    functionDepth: 0
    functionLinenumber: 1829
    functionLinenumberEnd: 1843
    functionName: xmlSaveToFd
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferCreateFd
    - xmlFreeSaveCtxt
    - xmlNewSaveCtxt
    - xmlCharEncCloseFunc
    linkageType: ''
    returnType: xmlSaveCtxt*
    signature: 'xmlSaveCtxt *xmlSaveToFd(int fd, const char *encoding, int options) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlIsCatastrophicError
      Src: /src/libxml2/xmlsave.c:83,1
    - Dst: xmlSaveErrMemory
      Src: /src/libxml2/xmlsave.c:106,1
    - Dst: xmlRaiseError
      Src: /src/libxml2/xmlsave.c:101,1
    - Dst: xmlErrString
      Src: /src/libxml2/xmlsave.c:97,1
    - Dst: xmlSaveErrMemory
      Src: /src/libxml2/xmlsave.c:87,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 4
    argNames:
    - out
    - code
    - node
    - extra
    argTypes:
    - xmlOutputBufferPtr
    - int
    - xmlNodePtr
    - char*
    constantsTouched: []
    func_position:
      end: 107
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 107
    functionName: xmlSaveErr
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlSaveErrMemory
    - xmlIsCatastrophicError
    - xmlRaiseError
    - xmlErrString
    linkageType: ''
    returnType: void
    signature: 'static void xmlSaveErr(xmlOutputBufferPtr out, int code, xmlNodePtr
      node, const char *extra) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:349,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:361,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:365,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:357,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:363,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:373,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:387,1
    - Dst: xmlBufDumpElementOccur
      Src: /src/libxml2/xmlsave.c:388,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:392,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:394,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:404,1
    - Dst: xmlBufDumpElementOccur
      Src: /src/libxml2/xmlsave.c:405,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 45
    argCount: 2
    argNames:
    - buf
    - content
    argTypes:
    - xmlOutputBufferPtr
    - xmlElementContentPtr
    constantsTouched: []
    func_position:
      end: 406
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 406
    functionName: xmlBufDumpElementContent
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlBufDumpElementOccur
    - xmlOutputBufferWrite
    - xmlOutputBufferWriteString
    linkageType: ''
    returnType: void
    signature: 'static void xmlBufDumpElementContent(xmlOutputBufferPtr buf, xmlElementContentPtr
      content) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:594,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:604,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:597,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:598,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:596,1
    - Dst: xmlOutputBufferWriteQuotedString
      Src: /src/libxml2/xmlsave.c:605,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:606,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:608,1
    - Dst: xmlOutputBufferWriteQuotedString
      Src: /src/libxml2/xmlsave.c:610,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:615,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:635,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:617,1
    - Dst: xmlBufDumpEntityContent
      Src: /src/libxml2/xmlsave.c:632,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:619,1
    - Dst: xmlOutputBufferWriteQuotedString
      Src: /src/libxml2/xmlsave.c:630,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - buf
    - ent
    argTypes:
    - xmlOutputBufferPtr
    - xmlEntityPtr
    constantsTouched: []
    func_position:
      end: 636
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 636
    functionName: xmlBufDumpEntityDecl
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWriteQuotedString
    - xmlOutputBufferWrite
    - xmlBufDumpEntityContent
    - xmlOutputBufferWriteString
    linkageType: ''
    returnType: void
    signature: 'static void xmlBufDumpEntityDecl(xmlOutputBufferPtr buf, xmlEntityPtr
      ent) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:770,1
    - Dst: xmlOutputBufferWriteWSNonSig
      Src: /src/libxml2/xmlsave.c:774,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:781,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:776,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:780,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:783,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:784,1
    - Dst: xmlSerializeText
      Src: /src/libxml2/xmlsave.c:785,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:786,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - buf
    - cur
    - ctxt
    argTypes:
    - xmlOutputBufferPtr
    - xmlNsPtr
    - xmlSaveCtxtPtr
    constantsTouched: []
    func_position:
      end: 788
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 788
    functionName: xmlNsDumpOutput
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWriteWSNonSig
    - xmlOutputBufferWrite
    - xmlOutputBufferWriteString
    - xmlStrEqual
    - xmlSerializeText
    linkageType: ''
    returnType: void
    signature: 'static void xmlNsDumpOutput(xmlOutputBufferPtr buf, xmlNsPtr cur,
      xmlSaveCtxtPtr ctxt) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1461,1
    - Dst: xmlSaveWriteAttrContent
      Src: /src/libxml2/xmlsave.c:1471,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1477,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1432,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1435,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1438,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1441,1
    - Dst: xmlAttrDumpOutput
      Src: /src/libxml2/xmlsave.c:1444,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1453,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1455,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1459,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1457,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1475,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1442,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1452,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1470,1
    - Dst: xmlSaveWriteAttrContent
      Src: /src/libxml2/xmlsave.c:1462,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1454,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1460,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1463,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1458,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/xmlsave.c:1456,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1472,1
    - Dst: xmlSaveWriteAttrContent
      Src: /src/libxml2/xmlsave.c:1476,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 69
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlSaveCtxtPtr
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 1479
      start: 1419
    functionDepth: 0
    functionLinenumber: 1419
    functionLinenumberEnd: 1479
    functionName: xhtmlAttrListDumpOutput
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlSaveWriteAttrContent
    - xmlOutputBufferWrite
    - xmlAttrDumpOutput
    - xmlStrEqual
    linkageType: ''
    returnType: void
    signature: 'static void xhtmlAttrListDumpOutput(xmlSaveCtxtPtr ctxt, xmlAttrPtr
      cur) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveFlush
      Src: /src/libxml2/xmlsave.c:2057,1
    - Dst: xmlFreeSaveCtxt
      Src: /src/libxml2/xmlsave.c:2058,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSaveCtxt*
    constantsTouched: []
    func_position:
      end: 2060
      start: 2051
    functionDepth: 0
    functionLinenumber: 2051
    functionLinenumberEnd: 2060
    functionName: xmlSaveClose
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlFreeSaveCtxt
    - xmlSaveFlush
    linkageType: ''
    returnType: int
    signature: 'int xmlSaveClose(xmlSaveCtxt *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - ctxt
    - escape
    argTypes:
    - xmlSaveCtxt*
    - xmlCharEncodingOutputFunc
    constantsTouched: []
    func_position:
      end: 2106
      start: 2100
    functionDepth: 0
    functionLinenumber: 2100
    functionLinenumberEnd: 2106
    functionName: xmlSaveSetEscape
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlSaveSetEscape(xmlSaveCtxt *ctxt, xmlCharEncodingOutputFunc
      escape) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xmlsave.c:2243,1
    - Dst: xmlMalloc
      Src: /src/libxml2/xmlsave.c:2251,1
    - Dst: xmlBufUse
      Src: /src/libxml2/xmlsave.c:2264,1
    - Dst: memset
      Src: /src/libxml2/xmlsave.c:2256,1
    - Dst: xmlSaveErrMemory
      Src: /src/libxml2/xmlsave.c:2253,1
    - Dst: xmlNodeDumpOutput
      Src: /src/libxml2/xmlsave.c:2265,1
    - Dst: xmlBufUse
      Src: /src/libxml2/xmlsave.c:2269,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlsave.c:2270,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - buf
    - doc
    - cur
    - level
    - format
    argTypes:
    - xmlBuf*
    - xmlDoc*
    - xmlNode*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2272
      start: 2235
    functionDepth: 0
    functionLinenumber: 2235
    functionLinenumberEnd: 2272
    functionName: xmlBufNodeDump
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlNodeDumpOutput
    - memset
    - xmlInitParser
    - xmlSaveErrMemory
    - xmlBufUse
    - xmlMalloc
    linkageType: ''
    returnType: size_t
    signature: 'size_t xmlBufNodeDump(xmlBuf *buf, xmlDoc *doc, xmlNode *cur, int
      level, int format) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xmlsave.c:924,1
    - Dst: xmlSaveClearEncoding
      Src: /src/libxml2/xmlsave.c:946,1
    - Dst: htmlNodeDumpInternal
      Src: /src/libxml2/xmlsave.c:943,1
    - Dst: xmlSaveSwitchEncoding
      Src: /src/libxml2/xmlsave.c:935,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - ctxt
    - cur
    argTypes:
    - xmlSaveCtxtPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 950
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 950
    functionName: htmlNodeDumpOutputInternal
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlSaveClearEncoding
    - htmlNodeDumpInternal
    - xmlSaveSwitchEncoding
    - xmlInitParser
    linkageType: ''
    returnType: int
    signature: 'static int htmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr
      cur) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libxml2/xmlsave.c:2386,1
    - Dst: xmlSaveCtxtInit
      Src: /src/libxml2/xmlsave.c:2400,1
    - Dst: xmlSaveDocInternal
      Src: /src/libxml2/xmlsave.c:2402,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - buf
    - doc
    - encoding
    - format
    argTypes:
    - xmlOutputBufferPtr
    - xmlDocPtr
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2403
      start: 2380
    functionDepth: 0
    functionLinenumber: 2380
    functionLinenumberEnd: 2403
    functionName: xmlDocDumpInternal
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - memset
    - xmlSaveDocInternal
    - xmlSaveCtxtInit
    linkageType: ''
    returnType: void
    signature: 'static void xmlDocDumpInternal(xmlOutputBufferPtr buf, xmlDocPtr doc,
      const char *encoding, int format) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveFormatFileEnc
      Src: /src/libxml2/xmlsave.c:2663,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - filename
    - cur
    - format
    argTypes:
    - char*
    - xmlDoc*
    - int
    constantsTouched: []
    func_position:
      end: 2664
      start: 2661
    functionDepth: 0
    functionLinenumber: 2661
    functionLinenumberEnd: 2664
    functionName: xmlSaveFormatFile
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlSaveFormatFileEnc
    linkageType: ''
    returnType: int
    signature: 'int xmlSaveFormatFile(const char *filename, xmlDoc *cur, int format) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/xmlsave.c:177,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/xmlsave.c:179,1
    - Dst: xmlFree
      Src: /src/libxml2/xmlsave.c:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSaveCtxtPtr
    constantsTouched: []
    func_position:
      end: 181
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: xmlFreeSaveCtxt
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlOutputBufferClose
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeSaveCtxt(xmlSaveCtxtPtr ctxt) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:835,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:836,1
    - Dst: xmlOutputBufferWriteQuotedString
      Src: /src/libxml2/xmlsave.c:839,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:840,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:838,1
    - Dst: xmlOutputBufferWriteQuotedString
      Src: /src/libxml2/xmlsave.c:841,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:843,1
    - Dst: xmlOutputBufferWriteQuotedString
      Src: /src/libxml2/xmlsave.c:844,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:849,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:852,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:870,1
    - Dst: xmlBufDumpNotationTable
      Src: /src/libxml2/xmlsave.c:859,1
    - Dst: xmlNodeDumpOutputInternal
      Src: /src/libxml2/xmlsave.c:866,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 2
    argNames:
    - ctxt
    - dtd
    argTypes:
    - xmlSaveCtxtPtr
    - xmlDtdPtr
    constantsTouched: []
    func_position:
      end: 871
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 871
    functionName: xmlDtdDumpOutput
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWrite
    - xmlOutputBufferWriteQuotedString
    - xmlBufDumpNotationTable
    - xmlOutputBufferWriteString
    - xmlNodeDumpOutputInternal
    linkageType: ''
    returnType: void
    signature: 'static void xmlDtdDumpOutput(xmlSaveCtxtPtr ctxt, xmlDtdPtr dtd) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveDocInternal
      Src: /src/libxml2/xmlsave.c:1962,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - ctxt
    - doc
    argTypes:
    - xmlSaveCtxt*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 1965
      start: 1956
    functionDepth: 0
    functionLinenumber: 1956
    functionLinenumberEnd: 1965
    functionName: xmlSaveDoc
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlSaveDocInternal
    linkageType: ''
    returnType: long
    signature: 'long xmlSaveDoc(xmlSaveCtxt *ctxt, xmlDoc *doc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocFormatDump
      Src: /src/libxml2/xmlsave.c:2545,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - f
    - cur
    argTypes:
    - FILE*
    - xmlDoc*
    constantsTouched: []
    func_position:
      end: 2546
      start: 2543
    functionDepth: 0
    functionLinenumber: 2543
    functionLinenumberEnd: 2546
    functionName: xmlDocDump
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlDocFormatDump
    linkageType: ''
    returnType: int
    signature: 'int xmlDocDump(FILE *f, xmlDoc *cur) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/xmlsave.c:2590,1
    - Dst: xmlDocDumpInternal
      Src: /src/libxml2/xmlsave.c:2594,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/xmlsave.c:2596,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 4
    argNames:
    - buf
    - cur
    - encoding
    - format
    argTypes:
    - xmlOutputBuffer*
    - xmlDoc*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2597
      start: 2582
    functionDepth: 0
    functionLinenumber: 2582
    functionLinenumberEnd: 2597
    functionName: xmlSaveFormatFileTo
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlDocDumpInternal
    - xmlOutputBufferClose
    linkageType: ''
    returnType: int
    signature: 'int xmlSaveFormatFileTo(xmlOutputBuffer *buf, xmlDoc *cur, const char
      *encoding, int format) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveSetIndentString
      Src: /src/libxml2/xmlsave.c:155,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ctxt
    - options
    argTypes:
    - xmlSaveCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 167
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 167
    functionName: xmlSaveCtxtInit
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlSaveSetIndentString
    linkageType: ''
    returnType: void
    signature: 'static void xmlSaveCtxtInit(xmlSaveCtxtPtr ctxt, int options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSerializeText
      Src: /src/libxml2/xmlsave.c:229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - ctxt
    - text
    - flags
    argTypes:
    - xmlSaveCtxt*
    - xmlChar*
    - unsigned
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: xmlSaveWriteText
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlSerializeText
    linkageType: ''
    returnType: void
    signature: 'static void xmlSaveWriteText(xmlSaveCtxt *ctxt, const xmlChar *text,
      unsigned flags) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashScan
      Src: /src/libxml2/xmlsave.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - table
    argTypes:
    - xmlOutputBufferPtr
    - xmlNotationTablePtr
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: xmlBufDumpNotationTable
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlHashScan
    linkageType: ''
    returnType: void
    signature: 'static void xmlBufDumpNotationTable(xmlOutputBufferPtr buf, xmlNotationTablePtr
      table) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:453,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:455,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - cur
    argTypes:
    - xmlOutputBufferPtr
    - xmlEnumerationPtr
    constantsTouched: []
    func_position:
      end: 461
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 461
    functionName: xmlBufDumpEnumeration
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWrite
    - xmlOutputBufferWriteString
    linkageType: ''
    returnType: void
    signature: 'static void xmlBufDumpEnumeration(xmlOutputBufferPtr buf, xmlEnumerationPtr
      cur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNsDumpOutput
      Src: /src/libxml2/xmlsave.c:814,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - cur
    argTypes:
    - xmlOutputBuffer*
    - xmlNs*
    constantsTouched: []
    func_position:
      end: 817
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 817
    functionName: xmlNsListDumpOutput
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlNsDumpOutput
    linkageType: ''
    returnType: void
    signature: 'void xmlNsListDumpOutput(xmlOutputBuffer *buf, xmlNs *cur) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveSwitchEncoding
      Src: /src/libxml2/xmlsave.c:1270,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1287,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1279,1
    - Dst: xmlSaveSwitchEncoding
      Src: /src/libxml2/xmlsave.c:1253,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1286,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1295,1
    - Dst: htmlNodeDumpInternal
      Src: /src/libxml2/xmlsave.c:1261,1
    - Dst: xmlOutputBufferWriteString
      Src: /src/libxml2/xmlsave.c:1281,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1283,1
    - Dst: xhtmlNodeDumpOutput
      Src: /src/libxml2/xmlsave.c:1319,1
    - Dst: xmlGetIntSubset
      Src: /src/libxml2/xmlsave.c:1305,1
    - Dst: xmlNodeDumpOutputInternal
      Src: /src/libxml2/xmlsave.c:1322,1
    - Dst: xmlInitParser
      Src: /src/libxml2/xmlsave.c:1233,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1284,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1292,1
    - Dst: xmlIsXHTML
      Src: /src/libxml2/xmlsave.c:1307,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1298,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1288,1
    - Dst: xmlOutputBufferWrite
      Src: /src/libxml2/xmlsave.c:1325,1
    - Dst: xmlSaveClearEncoding
      Src: /src/libxml2/xmlsave.c:1335,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 85
    argCount: 3
    argNames:
    - ctxt
    - cur
    - encoding
    argTypes:
    - xmlSaveCtxtPtr
    - xmlDocPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1339
      start: 1223
    functionDepth: 0
    functionLinenumber: 1223
    functionLinenumberEnd: 1339
    functionName: xmlSaveDocInternal
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferWrite
    - xmlIsXHTML
    - xmlOutputBufferWriteString
    - htmlNodeDumpInternal
    - xmlSaveSwitchEncoding
    - xmlInitParser
    - xhtmlNodeDumpOutput
    - xmlSaveClearEncoding
    - xmlGetIntSubset
    - xmlNodeDumpOutputInternal
    linkageType: ''
    returnType: int
    signature: 'static int xmlSaveDocInternal(xmlSaveCtxtPtr ctxt, xmlDocPtr cur,
      const xmlChar *encoding) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewSaveCtxt
      Src: /src/libxml2/xmlsave.c:1934,1
    - Dst: xmlOutputBufferCreateIO
      Src: /src/libxml2/xmlsave.c:1936,1
    - Dst: xmlFreeSaveCtxt
      Src: /src/libxml2/xmlsave.c:1939,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/xmlsave.c:1938,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 5
    argNames:
    - iowrite
    - ioclose
    - ioctx
    - encoding
    - options
    argTypes:
    - xmlOutputWriteCallback
    - xmlOutputCloseCallback
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1943
      start: 1927
    functionDepth: 0
    functionLinenumber: 1927
    functionLinenumberEnd: 1943
    functionName: xmlSaveToIO
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlFreeSaveCtxt
    - xmlNewSaveCtxt
    - xmlCharEncCloseFunc
    - xmlOutputBufferCreateIO
    linkageType: ''
    returnType: xmlSaveCtxt*
    signature: 'xmlSaveCtxt *xmlSaveToIO(xmlOutputWriteCallback iowrite, xmlOutputCloseCallback
      ioclose, void *ioctx, const char *encoding, int options) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xmlsave.c:2289,1
    - Dst: htmlNodeDumpOutput
      Src: /src/libxml2/xmlsave.c:2300,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/xmlsave.c:2304,1
    - Dst: xmlNodeDumpOutput
      Src: /src/libxml2/xmlsave.c:2303,1
    - Dst: xmlOutputBufferCreateFile
      Src: /src/libxml2/xmlsave.c:2295,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - f
    - doc
    - cur
    argTypes:
    - FILE*
    - xmlDoc*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 2305
      start: 2284
    functionDepth: 0
    functionLinenumber: 2284
    functionLinenumberEnd: 2305
    functionName: xmlElemDump
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlNodeDumpOutput
    - htmlNodeDumpOutput
    - xmlOutputBufferClose
    - xmlInitParser
    - xmlOutputBufferCreateFile
    linkageType: ''
    returnType: void
    signature: 'void xmlElemDump(FILE * f, xmlDoc *doc, xmlNode *cur) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/xmlsave.c:2343,1
    - Dst: memset
      Src: /src/libxml2/xmlsave.c:2355,1
    - Dst: xmlIsXHTML
      Src: /src/libxml2/xmlsave.c:2368,1
    - Dst: xmlGetIntSubset
      Src: /src/libxml2/xmlsave.c:2366,1
    - Dst: xmlSaveCtxtInit
      Src: /src/libxml2/xmlsave.c:2363,1
    - Dst: xhtmlNodeDumpOutput
      Src: /src/libxml2/xmlsave.c:2374,1
    - Dst: xmlNodeDumpOutputInternal
      Src: /src/libxml2/xmlsave.c:2377,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 6
    argNames:
    - buf
    - doc
    - cur
    - level
    - format
    - encoding
    argTypes:
    - xmlOutputBuffer*
    - xmlDoc*
    - xmlNode*
    - int
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 2378
      start: 2330
    functionDepth: 0
    functionLinenumber: 2330
    functionLinenumberEnd: 2378
    functionName: xmlNodeDumpOutput
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlIsXHTML
    - memset
    - xhtmlNodeDumpOutput
    - xmlInitParser
    - xmlSaveCtxtInit
    - xmlGetIntSubset
    - xmlNodeDumpOutputInternal
    linkageType: ''
    returnType: void
    signature: 'void xmlNodeDumpOutput(xmlOutputBuffer *buf, xmlDoc *doc, xmlNode
      *cur, int level, int format, const char *encoding) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlAllocOutputBuffer
      Src: /src/libxml2/xmlsave.c:2441,1
    - Dst: xmlDocDumpInternal
      Src: /src/libxml2/xmlsave.c:2447,1
    - Dst: xmlSaveErrMemory
      Src: /src/libxml2/xmlsave.c:2443,1
    - Dst: xmlBufUse
      Src: /src/libxml2/xmlsave.c:2453,1
    - Dst: xmlOutputBufferFlush
      Src: /src/libxml2/xmlsave.c:2449,1
    - Dst: xmlBufDetach
      Src: /src/libxml2/xmlsave.c:2454,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/xmlsave.c:2457,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 5
    argNames:
    - out_doc
    - doc_txt_ptr
    - doc_txt_len
    - txt_encoding
    - format
    argTypes:
    - xmlDoc*
    - xmlChar**
    - int*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2458
      start: 2425
    functionDepth: 0
    functionLinenumber: 2425
    functionLinenumberEnd: 2458
    functionName: xmlDocDumpFormatMemoryEnc
    functionSourceFile: /src/libxml2/xmlsave.c
    functionUses: []
    functionsReached:
    - xmlBufDetach
    - xmlOutputBufferClose
    - xmlSaveErrMemory
    - xmlOutputBufferFlush
    - xmlBufUse
    - xmlAllocOutputBuffer
    - xmlDocDumpInternal
    linkageType: ''
    returnType: void
    signature: "void xmlDocDumpFormatMemoryEnc(xmlDoc *out_doc, xmlChar **doc_txt_ptr,\t\tint
      * doc_txt_len, const char * txt_encoding,\t\tint format) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGlobalRandom
      Src: /src/libxml2/globals.c:538,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/globals.c:585,1
    - Dst: memset
      Src: /src/libxml2/globals.c:541,1
    - Dst: xmlMutexLock
      Src: /src/libxml2/globals.c:552,1
    - Dst: xmlGlobalRandom
      Src: /src/libxml2/globals.c:539,1
    - Dst: pthread_setspecific
      Src: /src/libxml2/globals.c:592,1
    - Dst: TlsSetValue
      Src: /src/libxml2/globals.c:595,1
    - Dst: xmlRegisterGlobalStateDtor
      Src: /src/libxml2/globals.c:598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - gs
    argTypes:
    - xmlGlobalStatePtr
    constantsTouched: []
    func_position:
      end: 601
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 601
    functionName: xmlInitGlobalState
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - TlsSetValue
    - memset
    - xmlMutexUnlock
    - xmlRegisterGlobalStateDtor
    - xmlGlobalRandom
    - pthread_setspecific
    linkageType: ''
    returnType: void
    signature: 'static void xmlInitGlobalState(xmlGlobalStatePtr gs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 641
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 641
    functionName: __xmlSubstituteEntitiesDefaultValue
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: int*
    signature: 'int *__xmlSubstituteEntitiesDefaultValue(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 704
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 704
    functionName: __xmlMalloc
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: xmlMallocFunc*
    signature: 'xmlMallocFunc *__xmlMalloc(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 763
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 763
    functionName: xmlGetLastErrorInternal
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: xmlError*
    signature: 'xmlError *xmlGetLastErrorInternal(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/globals.c:872,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/globals.c:875,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 877
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 877
    functionName: xmlThrDefDoValidityCheckingDefaultValue
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'int xmlThrDefDoValidityCheckingDefaultValue(int v) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 606
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 606
    functionName: __xmlLastError
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: xmlError*
    signature: 'const xmlError *__xmlLastError(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:708,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 709
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 709
    functionName: __xmlMallocAtomic
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: xmlMallocFunc*
    signature: 'xmlMallocFunc *__xmlMallocAtomic(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:751,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 755
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 755
    functionName: xmlCheckThreadLocalStorage
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: int
    signature: 'int xmlCheckThreadLocalStorage(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/globals.c:856,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/globals.c:859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - handler
    argTypes:
    - void*
    - xmlStructuredErrorFunc
    constantsTouched: []
    func_position:
      end: 860
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 860
    functionName: xmlThrDefSetStructuredErrorFunc
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: void
    signature: 'void xmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc
      handler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:732,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 733
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 733
    functionName: xmlGetLocalRngState
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: unsigned*
    signature: 'unsigned *xmlGetLocalRngState(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_getspecific
      Src: /src/libxml2/globals.c:394,1
    - Dst: xmlResetError
      Src: /src/libxml2/globals.c:406,1
    - Dst: TlsFree
      Src: /src/libxml2/globals.c:401,1
    - Dst: xmlFreeGlobalState
      Src: /src/libxml2/globals.c:396,1
    - Dst: pthread_key_delete
      Src: /src/libxml2/globals.c:397,1
    - Dst: xmlCleanupMutex
      Src: /src/libxml2/globals.c:409,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 410
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 410
    functionName: xmlCleanupGlobalsInternal
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - TlsFree
    - xmlFreeGlobalState
    - xmlCleanupMutex
    - pthread_getspecific
    - xmlResetError
    - pthread_key_delete
    linkageType: ''
    returnType: void
    signature: 'void xmlCleanupGlobalsInternal(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterWait
      Src: /src/libxml2/globals.c:435,1
    - Dst: xmlFreeGlobalState
      Src: /src/libxml2/globals.c:437,1
    - Dst: CloseHandle
      Src: /src/libxml2/globals.c:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ctxt
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - unsigned char
    constantsTouched: []
    func_position:
      end: 438
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 438
    functionName: xmlGlobalStateDtor
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlFreeGlobalState
    - UnregisterWait
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: 'static void WINAPI xmlGlobalStateDtor(void *ctxt, unsigned char timedOut
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 673
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 673
    functionName: __xmlStructuredError
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: xmlStructuredErrorFunc*
    signature: 'xmlStructuredErrorFunc *__xmlStructuredError(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:682,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 683
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 683
    functionName: __xmlRegisterNodeDefaultValue
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: xmlRegisterNodeFunc*
    signature: 'xmlRegisterNodeFunc *__xmlRegisterNodeDefaultValue(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:692,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 693
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 693
    functionName: __xmlParserInputBufferCreateFilenameValue
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: xmlParserInputBufferCreateFilenameFunc*
    signature: 'xmlParserInputBufferCreateFilenameFunc *__xmlParserInputBufferCreateFilenameValue(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/globals.c:1091,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/globals.c:1098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - func
    argTypes:
    - xmlParserInputBufferCreateFilenameFunc
    constantsTouched: []
    func_position:
      end: 1101
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1101
    functionName: xmlThrDefParserInputBufferCreateFilenameDefault
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: xmlParserInputBufferCreateFilenameFunc
    signature: 'xmlParserInputBufferCreateFilenameFunc xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc
      func) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/globals.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 350
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 350
    functionName: xmlInitGlobals
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlInitParser
    linkageType: ''
    returnType: void
    signature: 'void xmlInitGlobals(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcess
      Src: /src/libxml2/globals.c:442,1
    - Dst: RegisterWaitForSingleObject
      Src: /src/libxml2/globals.c:451,1
    - Dst: CloseHandle
      Src: /src/libxml2/globals.c:453,1
    - Dst: GetCurrentThread
      Src: /src/libxml2/globals.c:446,1
    - Dst: DuplicateHandle
      Src: /src/libxml2/globals.c:446,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - gs
    argTypes:
    - xmlGlobalState*
    constantsTouched: []
    func_position:
      end: 460
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 460
    functionName: xmlRegisterGlobalStateDtor
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - GetCurrentProcess
    - DuplicateHandle
    - GetCurrentThread
    - RegisterWaitForSingleObject
    - CloseHandle
    linkageType: ''
    returnType: int
    signature: 'static int xmlRegisterGlobalStateDtor(xmlGlobalState *gs) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:677,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 678
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 678
    functionName: __xmlStructuredErrorContext
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: void**
    signature: 'void **__xmlStructuredErrorContext(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 688
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 688
    functionName: __xmlDeregisterNodeDefaultValue
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: xmlDeregisterNodeFunc*
    signature: 'xmlDeregisterNodeFunc *__xmlDeregisterNodeDefaultValue(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:697,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 698
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 698
    functionName: __xmlOutputBufferCreateFilenameValue
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: xmlOutputBufferCreateFilenameFunc*
    signature: 'xmlOutputBufferCreateFilenameFunc *__xmlOutputBufferCreateFilenameValue(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeGlobalState
      Src: /src/libxml2/globals.c:798,1
    - Dst: xmlFreeGlobalState
      Src: /src/libxml2/globals.c:805,1
    - Dst: xmlCleanupParser
      Src: /src/libxml2/globals.c:815,1
    - Dst: TlsGetValue
      Src: /src/libxml2/globals.c:803,1
    - Dst: TlsSetValue
      Src: /src/libxml2/globals.c:806,1
    - Dst: TlsFree
      Src: /src/libxml2/globals.c:817,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - HINSTANCE
    - hinstDLL
    - fdwReason
    - lpvReserved
    argTypes:
    - ATTRIBUTE_UNUSED
    - DWORD
    - ATTRIBUTE_UNUSED
    constantsTouched: []
    func_position:
      end: 824
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 824
    functionName: DllMain
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - TlsFree
    - TlsSetValue
    - xmlFreeGlobalState
    - TlsGetValue
    - xmlCleanupParser
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL WINAPI DllMain(ATTRIBUTE_UNUSED HINSTANCE hinstDLL, DWORD fdwReason,
      ATTRIBUTE_UNUSED LPVOID lpvReserved) #endif '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 377
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 377
    functionName: xmlCleanupGlobals
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlCleanupGlobals(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 532
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 532
    functionName: xmlGetThreadLocalStorage
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlGlobalStatePtr
    signature: 'static xmlGlobalStatePtr xmlGetThreadLocalStorage(int allowFailure
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/globals.c:1007,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/globals.c:1010,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1012
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1012
    functionName: xmlThrDefPedanticParserDefaultValue
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'int xmlThrDefPedanticParserDefaultValue(int v) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/globals.c:1067,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/globals.c:1072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - func
    argTypes:
    - xmlDeregisterNodeFunc
    constantsTouched: []
    func_position:
      end: 1075
      start: 1062
    functionDepth: 0
    functionLinenumber: 1062
    functionLinenumberEnd: 1075
    functionName: xmlThrDefDeregisterNodeDefault
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: xmlDeregisterNodeFunc
    signature: 'xmlDeregisterNodeFunc xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc
      func) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/globals.c:1117,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/globals.c:1125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - func
    argTypes:
    - xmlOutputBufferCreateFilenameFunc
    constantsTouched: []
    func_position:
      end: 1128
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1128
    functionName: xmlThrDefOutputBufferCreateFilenameDefault
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: xmlOutputBufferCreateFilenameFunc
    signature: 'xmlOutputBufferCreateFilenameFunc xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc
      func) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libxml2/globals.c:480,1
    - Dst: memset
      Src: /src/libxml2/globals.c:494,1
    - Dst: xmlAbort
      Src: /src/libxml2/globals.c:490,1
    - Dst: xmlInitGlobalState
      Src: /src/libxml2/globals.c:495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - allowFailure
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 497
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 497
    functionName: xmlNewGlobalState
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - memset
    - malloc
    - xmlAbort
    - xmlInitGlobalState
    linkageType: ''
    returnType: xmlGlobalStatePtr
    signature: 'static xmlGlobalStatePtr xmlNewGlobalState(int allowFailure) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCharStrdup
      Src: /src/libxml2/globals.c:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - cur
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: xmlPosixStrdup
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlCharStrdup
    linkageType: ''
    returnType: char*
    signature: 'static char *xmlPosixStrdup(const char *cur) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitMutex
      Src: /src/libxml2/globals.c:356,1
    - Dst: TlsAlloc
      Src: /src/libxml2/globals.c:363,1
    - Dst: pthread_key_create
      Src: /src/libxml2/globals.c:359,1
    - Dst: xmlInitGlobalState
      Src: /src/libxml2/globals.c:366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 368
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 368
    functionName: xmlInitGlobalsInternal
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - pthread_key_create
    - xmlInitGlobalState
    - xmlInitMutex
    - TlsAlloc
    linkageType: ''
    returnType: void
    signature: 'void xmlInitGlobalsInternal(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 621
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 621
    functionName: __xmlKeepBlanksDefaultValue
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: int*
    signature: 'int *__xmlKeepBlanksDefaultValue(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 631
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 631
    functionName: __xmlLoadExtDtdDefaultValue
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: int*
    signature: 'int *__xmlLoadExtDtdDefaultValue(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:713,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 714
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 714
    functionName: __xmlRealloc
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: xmlReallocFunc*
    signature: 'xmlReallocFunc *__xmlRealloc(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/globals.c:889,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/globals.c:892,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 894
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 894
    functionName: xmlThrDefGetWarningsDefaultValue
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'int xmlThrDefGetWarningsDefaultValue(int v) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/globals.c:990,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/globals.c:993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 995
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 995
    functionName: xmlThrDefLoadExtDtdDefaultValue
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'int xmlThrDefLoadExtDtdDefaultValue(int v) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/globals.c:506,1
    - Dst: pthread_getspecific
      Src: /src/libxml2/globals.c:513,1
    - Dst: TlsGetValue
      Src: /src/libxml2/globals.c:517,1
    - Dst: xmlInitGlobalState
      Src: /src/libxml2/globals.c:511,1
    - Dst: xmlNewGlobalState
      Src: /src/libxml2/globals.c:515,1
    - Dst: xmlNewGlobalState
      Src: /src/libxml2/globals.c:519,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - allowFailure
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 525
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 525
    functionName: xmlGetThreadLocalStorage
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlNewGlobalState
    - xmlInitParser
    - TlsGetValue
    - xmlInitGlobalState
    - pthread_getspecific
    linkageType: ''
    returnType: xmlGlobalStatePtr
    signature: 'static xmlGlobalStatePtr xmlGetThreadLocalStorage(int allowFailure) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 626
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 626
    functionName: __xmlLineNumbersDefaultValue
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int*
    signature: 'int *__xmlLineNumbersDefaultValue(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 636
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 636
    functionName: __xmlPedanticParserDefaultValue
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: int*
    signature: 'int *__xmlPedanticParserDefaultValue(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:718,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 719
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 719
    functionName: __xmlFree
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: xmlFreeFunc*
    signature: 'xmlFreeFunc *__xmlFree(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 724
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 724
    functionName: __xmlMemStrdup
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: xmlStrdupFunc*
    signature: 'xmlStrdupFunc *__xmlMemStrdup(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/globals.c:837,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/globals.c:843,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - handler
    argTypes:
    - void*
    - xmlGenericErrorFunc
    constantsTouched: []
    func_position:
      end: 844
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 844
    functionName: xmlThrDefSetGenericErrorFunc
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: void
    signature: 'void xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlResetError
      Src: /src/libxml2/globals.c:424,1
    - Dst: free
      Src: /src/libxml2/globals.c:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 428
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 428
    functionName: xmlFreeGlobalState
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - free
    - xmlResetError
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeGlobalState(void *state) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 611
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 611
    functionName: __xmlDoValidityCheckingDefaultValue
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: int*
    signature: 'int *__xmlDoValidityCheckingDefaultValue(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 647
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 647
    functionName: __xmlIndentTreeOutput
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: int*
    signature: 'int *__xmlIndentTreeOutput(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 663
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 663
    functionName: __xmlGenericError
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: xmlGenericErrorFunc*
    signature: 'xmlGenericErrorFunc *__xmlGenericError(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/globals.c:925,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/globals.c:928,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 930
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 930
    functionName: xmlThrDefTreeIndentString
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: char*
    signature: 'const char * xmlThrDefTreeIndentString(const char * v) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 978
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 978
    functionName: xmlThrDefLineNumbersDefaultValue
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlThrDefLineNumbersDefaultValue(int v ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/globals.c:1044,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/globals.c:1049,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - func
    argTypes:
    - xmlRegisterNodeFunc
    constantsTouched: []
    func_position:
      end: 1052
      start: 1039
    functionDepth: 0
    functionLinenumber: 1039
    functionLinenumberEnd: 1052
    functionName: xmlThrDefRegisterNodeDefault
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: xmlRegisterNodeFunc
    signature: 'xmlRegisterNodeFunc xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc
      func) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 616
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 616
    functionName: __xmlGetWarningsDefaultValue
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: int*
    signature: 'int *__xmlGetWarningsDefaultValue(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 652
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 652
    functionName: __xmlTreeIndentString
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: char**
    signature: 'const char **__xmlTreeIndentString(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 657
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 657
    functionName: __xmlSaveNoEmptyTags
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: int*
    signature: 'int *__xmlSaveNoEmptyTags(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetThreadLocalStorage
      Src: /src/libxml2/globals.c:667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 668
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 668
    functionName: __xmlGenericErrorContext
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlGetThreadLocalStorage
    linkageType: ''
    returnType: void**
    signature: 'void **__xmlGenericErrorContext(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/globals.c:908,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/globals.c:911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 913
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 913
    functionName: xmlThrDefIndentTreeOutput
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'int xmlThrDefIndentTreeOutput(int v) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/globals.c:942,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/globals.c:945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 947
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 947
    functionName: xmlThrDefSaveNoEmptyTags
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'int xmlThrDefSaveNoEmptyTags(int v) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/globals.c:961,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/globals.c:964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 966
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 966
    functionName: xmlThrDefKeepBlanksDefaultValue
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'int xmlThrDefKeepBlanksDefaultValue(int v) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMutexLock
      Src: /src/libxml2/globals.c:1024,1
    - Dst: xmlMutexUnlock
      Src: /src/libxml2/globals.c:1027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1029
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1029
    functionName: xmlThrDefSubstituteEntitiesDefaultValue
    functionSourceFile: /src/libxml2/globals.c
    functionUses: []
    functionsReached:
    - xmlMutexLock
    - xmlMutexUnlock
    linkageType: ''
    returnType: int
    signature: 'int xmlThrDefSubstituteEntitiesDefaultValue(int v) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htmlCtxtReset
      Src: /src/libxml2/HTMLparser.c:5983,1
    - Dst: htmlCtxtParseDocument
      Src: /src/libxml2/HTMLparser.c:5990,1
    - Dst: htmlCtxtUseOptions
      Src: /src/libxml2/HTMLparser.c:5984,1
    - Dst: xmlCtxtNewInputFromFd
      Src: /src/libxml2/HTMLparser.c:5986,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 5
    argNames:
    - ctxt
    - fd
    - URL
    - encoding
    - options
    argTypes:
    - xmlParserCtxt*
    - int
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5991
      start: 5974
    functionDepth: 0
    functionLinenumber: 5974
    functionLinenumberEnd: 5991
    functionName: htmlCtxtReadFd
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlCtxtUseOptions
    - htmlCtxtReset
    - xmlCtxtNewInputFromFd
    - htmlCtxtParseDocument
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *htmlCtxtReadFd(xmlParserCtxt *ctxt, int fd, const char *URL,
      const char *encoding, int options) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htmlCtxtReset
      Src: /src/libxml2/HTMLparser.c:5948,1
    - Dst: htmlCtxtUseOptions
      Src: /src/libxml2/HTMLparser.c:5949,1
    - Dst: htmlCtxtParseDocument
      Src: /src/libxml2/HTMLparser.c:5956,1
    - Dst: xmlCtxtNewInputFromMemory
      Src: /src/libxml2/HTMLparser.c:5951,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 6
    argNames:
    - ctxt
    - buffer
    - size
    - URL
    - encoding
    - options
    argTypes:
    - xmlParserCtxt*
    - char*
    - int
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5957
      start: 5939
    functionDepth: 0
    functionLinenumber: 5939
    functionLinenumberEnd: 5957
    functionName: htmlCtxtReadMemory
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlCtxtUseOptions
    - htmlCtxtReset
    - xmlCtxtNewInputFromMemory
    - htmlCtxtParseDocument
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *htmlCtxtReadMemory(xmlParserCtxt *ctxt, const char *buffer,
      int size, const char *URL, const char *encoding, int options) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: IS_ASCII_LETTER
      Src: /src/libxml2/HTMLparser.c:4064,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:4060,1
    - Dst: htmlParseComment
      Src: /src/libxml2/HTMLparser.c:4065,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4079,1
    - Dst: xmlFree
      Src: /src/libxml2/HTMLparser.c:4092,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:4116,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:4128,1
    - Dst: htmlParserFinishElementParsing
      Src: /src/libxml2/HTMLparser.c:4160,1
    - Dst: htmlParseHTMLName
      Src: /src/libxml2/HTMLparser.c:4069,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:4085,1
    - Dst: htmlParseAttribute
      Src: /src/libxml2/HTMLparser.c:4090,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4099,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:4117,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:4118,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:4100,1
    - Dst: htmlParseErr
      Src: /src/libxml2/HTMLparser.c:4150,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:4159,1
    - Dst: htmlnamePop
      Src: /src/libxml2/HTMLparser.c:4163,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:4048,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:4098,1
    - Dst: htmlParseErr
      Src: /src/libxml2/HTMLparser.c:4132,1
    - Dst: htmlAutoCloseOnClose
      Src: /src/libxml2/HTMLparser.c:4142,1
    - Dst: htmlStartCharData
      Src: /src/libxml2/HTMLparser.c:4051,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:4149,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 89
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - htmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 4165
      start: 4039
    functionDepth: 0
    functionLinenumber: 4039
    functionLinenumberEnd: 4165
    functionName: htmlParseEndTag
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - NXT
    - htmlParseHTMLName
    - htmlStartCharData
    - IS_ASCII_LETTER
    - htmlParseAttribute
    - htmlParserFinishElementParsing
    - xmlStrEqual
    - htmlParseComment
    - SKIP
    - htmlAutoCloseOnClose
    - htmlnamePop
    - htmlParseErr
    linkageType: ''
    returnType: void
    signature: 'static void htmlParseEndTag(htmlParserCtxtPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htmlCtxtSetOptionsInternal
      Src: /src/libxml2/HTMLparser.c:5634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctxt
    - options
    argTypes:
    - htmlParserCtxt*
    - int
    constantsTouched: []
    func_position:
      end: 5635
      start: 5617
    functionDepth: 0
    functionLinenumber: 5617
    functionLinenumberEnd: 5635
    functionName: htmlCtxtUseOptions
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlCtxtSetOptionsInternal
    linkageType: ''
    returnType: int
    signature: 'int htmlCtxtUseOptions(htmlParserCtxt *ctxt, int options) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libxml2/HTMLparser.c:4523,1
    - Dst: xmlMalloc
      Src: /src/libxml2/HTMLparser.c:4530,1
    - Dst: xmlSAX2InitHtmlDefaultSAXHandler
      Src: /src/libxml2/HTMLparser.c:4535,1
    - Dst: xmlDictCreate
      Src: /src/libxml2/HTMLparser.c:4525,1
    - Dst: memset
      Src: /src/libxml2/HTMLparser.c:4534,1
    - Dst: memcpy
      Src: /src/libxml2/HTMLparser.c:4538,1
    - Dst: xmlMalloc
      Src: /src/libxml2/HTMLparser.c:4544,1
    - Dst: xmlMalloc
      Src: /src/libxml2/HTMLparser.c:4556,1
    - Dst: xmlMalloc
      Src: /src/libxml2/HTMLparser.c:4564,1
    - Dst: xmlInitNodeInfoSeq
      Src: /src/libxml2/HTMLparser.c:4588,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 59
    argCount: 3
    argNames:
    - ctxt
    - sax
    - userData
    argTypes:
    - htmlParserCtxtPtr
    - htmlSAXHandler*
    - void*
    constantsTouched: []
    func_position:
      end: 4590
      start: 4512
    functionDepth: 0
    functionLinenumber: 4512
    functionLinenumberEnd: 4590
    functionName: htmlInitParserCtxt
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlDictCreate
    - memcpy
    - memset
    - xmlSAX2InitHtmlDefaultSAXHandler
    - xmlInitNodeInfoSeq
    - xmlMalloc
    linkageType: ''
    returnType: int
    signature: 'static int htmlInitParserCtxt(htmlParserCtxtPtr ctxt, const htmlSAXHandler
      *sax, void *userData) '
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:3788,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:3850,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:3856,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/HTMLparser.c:3851,1
    - Dst: htmlErrMemory
      Src: /src/libxml2/HTMLparser.c:3894,1
    - Dst: xmlRealloc
      Src: /src/libxml2/HTMLparser.c:3936,1
    - Dst: htmlAttrHashInsert
      Src: /src/libxml2/HTMLparser.c:3955,1
    - Dst: htmlnamePush
      Src: /src/libxml2/HTMLparser.c:4008,1
    - Dst: htmlCheckImplied
      Src: /src/libxml2/HTMLparser.c:3807,1
    - Dst: htmlParseHTMLName
      Src: /src/libxml2/HTMLparser.c:3794,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:3813,1
    - Dst: htmlAutoClose
      Src: /src/libxml2/HTMLparser.c:3802,1
    - Dst: htmlParseErr
      Src: /src/libxml2/HTMLparser.c:3814,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:3821,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:3831,1
    - Dst: htmlParseAttribute
      Src: /src/libxml2/HTMLparser.c:3861,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/HTMLparser.c:3873,1
    - Dst: xmlRealloc
      Src: /src/libxml2/HTMLparser.c:3892,1
    - Dst: htmlErrMemory
      Src: /src/libxml2/HTMLparser.c:3886,1
    - Dst: htmlErrMemory
      Src: /src/libxml2/HTMLparser.c:3938,1
    - Dst: xmlFree
      Src: /src/libxml2/HTMLparser.c:3965,1
    - Dst: xmlFree
      Src: /src/libxml2/HTMLparser.c:4021,1
    - Dst: htmlParseErr
      Src: /src/libxml2/HTMLparser.c:3822,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:3828,1
    - Dst: htmlErrMemory
      Src: /src/libxml2/HTMLparser.c:3877,1
    - Dst: htmlParseErr
      Src: /src/libxml2/HTMLparser.c:3832,1
    - Dst: xmlRealloc
      Src: /src/libxml2/HTMLparser.c:3884,1
    - Dst: xmlFree
      Src: /src/libxml2/HTMLparser.c:3912,1
    - Dst: memset
      Src: /src/libxml2/HTMLparser.c:3946,1
    - Dst: strcmp
      Src: /src/libxml2/HTMLparser.c:3993,1
    - Dst: htmlCheckMeta
      Src: /src/libxml2/HTMLparser.c:3994,1
    - Dst: htmlnamePop
      Src: /src/libxml2/HTMLparser.c:4005,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 174
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - htmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 4024
      start: 3775
    functionDepth: 0
    functionLinenumber: 3775
    functionLinenumberEnd: 4024
    functionName: htmlParseStartTag
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlCheckMeta
    - xmlGrowCapacity
    - htmlErrMemory
    - htmlCheckImplied
    - xmlRealloc
    - htmlAttrHashInsert
    - htmlnamePush
    - xmlFree
    - NXT
    - PARSER_STOPPED
    - htmlParseHTMLName
    - memset
    - strcmp
    - SKIP
    - htmlAutoClose
    - htmlParseAttribute
    - xmlStrEqual
    - htmlnamePop
    - htmlParseErr
    linkageType: ''
    returnType: void
    signature: 'static void htmlParseStartTag(htmlParserCtxtPtr ctxt) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlDetectEncoding
      Src: /src/libxml2/HTMLparser.c:4405,1
    - Dst: htmlParseContent
      Src: /src/libxml2/HTMLparser.c:4480,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/HTMLparser.c:4418,1
    - Dst: xmlSwitchEncoding
      Src: /src/libxml2/HTMLparser.c:4419,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4436,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:4453,1
    - Dst: htmlParseDocTypeDecl
      Src: /src/libxml2/HTMLparser.c:4455,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4467,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4433,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4433,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:4434,1
    - Dst: htmlParseComment
      Src: /src/libxml2/HTMLparser.c:4435,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4464,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4464,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:4465,1
    - Dst: htmlParseComment
      Src: /src/libxml2/HTMLparser.c:4466,1
    - Dst: htmlParseComment
      Src: /src/libxml2/HTMLparser.c:4469,1
    - Dst: xmlParserCheckEOF
      Src: /src/libxml2/HTMLparser.c:4485,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4433,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:4451,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:4450,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:4451,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4449,1
    - Dst: htmlParseComment
      Src: /src/libxml2/HTMLparser.c:4438,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:4450,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:4452,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:4437,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:4452,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4464,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:4468,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 92
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - htmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 4495
      start: 4395
    functionDepth: 0
    functionLinenumber: 4395
    functionLinenumberEnd: 4495
    functionName: htmlParseDocument
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - NXT
    - xmlParserCheckEOF
    - htmlParseDocTypeDecl
    - xmlSwitchEncoding
    - xmlStrncmp
    - UPP
    - SKIP
    - htmlParseComment
    - xmlDetectEncoding
    - htmlParseContent
    linkageType: ''
    returnType: int
    signature: 'int htmlParseDocument(htmlParserCtxt *ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htmlCtxtSetOptionsInternal
      Src: /src/libxml2/HTMLparser.c:5594,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ctxt
    - options
    argTypes:
    - htmlParserCtxt*
    - int
    constantsTouched: []
    func_position:
      end: 5595
      start: 5591
    functionDepth: 0
    functionLinenumber: 5591
    functionLinenumberEnd: 5595
    functionName: htmlCtxtSetOptions
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlCtxtSetOptionsInternal
    linkageType: ''
    returnType: int
    signature: 'int htmlCtxtSetOptions(htmlParserCtxt *ctxt, int options) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mask
    - c
    argTypes:
    - htmlAsciiMask
    - unsigned
    constantsTouched: []
    func_position:
      end: 366
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 366
    functionName: htmlMaskMatch
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int htmlMaskMatch(htmlAsciiMask mask, unsigned c) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: htmlEntityValueLookup
      Src: /src/libxml2/HTMLparser.c:2112,1
    - Dst: snprintf
      Src: /src/libxml2/HTMLparser.c:2114,1
    - Dst: memcpy
      Src: /src/libxml2/HTMLparser.c:2123,1
    - Dst: strlen
      Src: /src/libxml2/HTMLparser.c:2119,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 93
    argCount: 5
    argNames:
    - out
    - outlen
    - in
    - inlen
    - quoteChar
    argTypes:
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 2132
      start: 2051
    functionDepth: 0
    functionLinenumber: 2051
    functionLinenumberEnd: 2132
    functionName: htmlEncodeEntities
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - strlen
    - snprintf
    - memcpy
    - htmlEntityValueLookup
    linkageType: ''
    returnType: int
    signature: "int htmlEncodeEntities(unsigned char* out, int *outlen,\t\t const
      unsigned char* in, int *inlen, int quoteChar) "
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLparser.c:2170,1
    - Dst: xmlGetIntSubset
      Src: /src/libxml2/HTMLparser.c:2183,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:2182,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:2176,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:2178,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLparser.c:2185,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLparser.c:2186,1
    - Dst: xmlGetLastChild
      Src: /src/libxml2/HTMLparser.c:2192,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:2201,1
    - Dst: xmlNodeIsText
      Src: /src/libxml2/HTMLparser.c:2205,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:2211,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 51
    argCount: 3
    argNames:
    - ctxt
    - str
    - len
    argTypes:
    - htmlParserCtxtPtr
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 2217
      start: 2163
    functionDepth: 0
    functionLinenumber: 2163
    functionLinenumberEnd: 2217
    functionName: areBlanks
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlStrcasecmp
    - IS_WS_HTML
    - xmlNodeIsText
    - xmlStrEqual
    - xmlGetLastChild
    - xmlGetIntSubset
    linkageType: ''
    returnType: int
    signature: 'static int areBlanks(htmlParserCtxtPtr ctxt, const xmlChar *str, int
      len) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:3544,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:3545,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:3545,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:3546,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:3546,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:3547,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:3557,1
    - Dst: htmlParseData
      Src: /src/libxml2/HTMLparser.c:3527,1
    - Dst: IS_UPPER
      Src: /src/libxml2/HTMLparser.c:3533,1
    - Dst: htmlParseDoctypeLiteral
      Src: /src/libxml2/HTMLparser.c:3553,1
    - Dst: xmlFree
      Src: /src/libxml2/HTMLparser.c:3574,1
    - Dst: htmlParseDoctypeLiteral
      Src: /src/libxml2/HTMLparser.c:3549,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:3554,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:3556,1
    - Dst: htmlSkipBogusDoctype
      Src: /src/libxml2/HTMLparser.c:3563,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:3556,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:3555,1
    - Dst: htmlParseDoctypeLiteral
      Src: /src/libxml2/HTMLparser.c:3559,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:3555,1
    - Dst: xmlFree
      Src: /src/libxml2/HTMLparser.c:3573,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:3522,1
    - Dst: xmlFree
      Src: /src/libxml2/HTMLparser.c:3572,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 70
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - htmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 3575
      start: 3510
    functionDepth: 0
    functionLinenumber: 3510
    functionLinenumberEnd: 3575
    functionName: htmlParseDocTypeDecl
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - htmlSkipBogusDoctype
    - htmlParseDoctypeLiteral
    - UPP
    - htmlParseData
    - SKIP
    - IS_UPPER
    linkageType: ''
    returnType: void
    signature: 'static void htmlParseDocTypeDecl(htmlParserCtxtPtr ctxt) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: htmlParseErr
      Src: /src/libxml2/HTMLparser.c:421,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 47
    argCount: 4
    argNames:
    - ctxt
    - str
    - len
    - partial
    argTypes:
    - xmlParserCtxtPtr
    - xmlChar*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 427
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 427
    functionName: htmlValidateUtf8
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlParseErr
    linkageType: ''
    returnType: int
    signature: 'static int htmlValidateUtf8(xmlParserCtxtPtr ctxt, const xmlChar *str,
      size_t len, int partial) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: IS_ASCII_LETTER
      Src: /src/libxml2/HTMLparser.c:2451,1
    - Dst: strncmp
      Src: /src/libxml2/HTMLparser.c:2485,1
    - Dst: IS_ALNUM
      Src: /src/libxml2/HTMLparser.c:2499,1
    - Dst: strncmp
      Src: /src/libxml2/HTMLparser.c:2478,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 95
    argCount: 5
    argNames:
    - string
    - slen
    - isAttr
    - nlen
    - rlen
    argTypes:
    - xmlChar*
    - size_t
    - int
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 2534
      start: 2440
    functionDepth: 0
    functionLinenumber: 2440
    functionLinenumberEnd: 2534
    functionName: htmlFindEntityPrefix
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - strncmp
    - IS_ALNUM
    - IS_ASCII_LETTER
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *htmlFindEntityPrefix(const xmlChar *string,
      size_t slen, int isAttr, int *nlen, int *rlen) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1580,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1584
      start: 1566
    functionDepth: 0
    functionLinenumber: 1566
    functionLinenumberEnd: 1584
    functionName: htmlIsScriptAttribute
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'int htmlIsScriptAttribute(const xmlChar *name) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: htmlEntityValueLookup
      Src: /src/libxml2/HTMLparser.c:2006,1
    - Dst: snprintf
      Src: /src/libxml2/HTMLparser.c:2009,1
    - Dst: memcpy
      Src: /src/libxml2/HTMLparser.c:2020,1
    - Dst: strlen
      Src: /src/libxml2/HTMLparser.c:2015,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 69
    argCount: 4
    argNames:
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 2033
      start: 1950
    functionDepth: 0
    functionLinenumber: 1950
    functionLinenumberEnd: 2033
    functionName: htmlUTF8ToHtml
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - strlen
    - snprintf
    - memcpy
    - htmlEntityValueLookup
    linkageType: ''
    returnType: int
    signature: 'int htmlUTF8ToHtml(unsigned char* out, int *outlen, const unsigned
      char* in, int *inlen) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:3433,1
    - Dst: htmlParseData
      Src: /src/libxml2/HTMLparser.c:3434,1
    - Dst: htmlParseData
      Src: /src/libxml2/HTMLparser.c:3439,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:3436,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:3438,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:3441,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - htmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 3447
      start: 3425
    functionDepth: 0
    functionLinenumber: 3425
    functionLinenumberEnd: 3447
    functionName: htmlParseDoctypeLiteral
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlParseData
    - SKIP
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *htmlParseDoctypeLiteral(htmlParserCtxtPtr ctxt) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PARSER_PROGRESSIVE
      Src: /src/libxml2/HTMLparser.c:3453,1
    - Dst: xmlParserGrow
      Src: /src/libxml2/HTMLparser.c:3470,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/HTMLparser.c:3462,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - htmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 3502
      start: 3449
    functionDepth: 0
    functionLinenumber: 3449
    functionLinenumberEnd: 3502
    functionName: htmlSkipBogusDoctype
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - PARSER_STOPPED
    - xmlParserGrow
    - PARSER_PROGRESSIVE
    linkageType: ''
    returnType: void
    signature: 'static void htmlSkipBogusDoctype(htmlParserCtxtPtr ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1553,1
    - Dst: htmlAutoClose
      Src: /src/libxml2/HTMLparser.c:1554,1
    - Dst: htmlCheckImplied
      Src: /src/libxml2/HTMLparser.c:1555,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - htmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 1556
      start: 1546
    functionDepth: 0
    functionLinenumber: 1546
    functionLinenumberEnd: 1556
    functionName: htmlStartCharData
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlAutoClose
    - xmlStrEqual
    - htmlCheckImplied
    linkageType: ''
    returnType: void
    signature: 'static void htmlStartCharData(htmlParserCtxtPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - htmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 3415
      start: 3412
    functionDepth: 0
    functionLinenumber: 3412
    functionLinenumberEnd: 3415
    functionName: htmlParseCharRef
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int htmlParseCharRef(htmlParserCtxt *ctxt ATTRIBUTE_UNUSED) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/HTMLparser.c:219,1
    - Dst: htmlErrMemory
      Src: /src/libxml2/HTMLparser.c:227,1
    - Dst: htmlErrMemory
      Src: /src/libxml2/HTMLparser.c:222,1
    - Dst: xmlRealloc
      Src: /src/libxml2/HTMLparser.c:225,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - ctxt
    - value
    argTypes:
    - htmlParserCtxtPtr
    - htmlParserNodeInfo*
    constantsTouched: []
    func_position:
      end: 236
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 236
    functionName: htmlNodeInfoPush
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - htmlErrMemory
    linkageType: ''
    returnType: int
    signature: 'static int htmlNodeInfoPush(htmlParserCtxtPtr ctxt, htmlParserNodeInfo
      *value) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - c
    - out
    - osize
    argTypes:
    - int
    - xmlChar*
    - int*
    constantsTouched: []
    func_position:
      end: 2432
      start: 2405
    functionDepth: 0
    functionLinenumber: 2405
    functionLinenumberEnd: 2432
    functionName: htmlCodePointToUtf8
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *htmlCodePointToUtf8(int c, xmlChar *out, int
      *osize) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htmlSAXParseDoc
      Src: /src/libxml2/HTMLparser.c:5323,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - cur
    - encoding
    argTypes:
    - xmlChar*
    - char*
    constantsTouched: []
    func_position:
      end: 5324
      start: 5321
    functionDepth: 0
    functionLinenumber: 5321
    functionLinenumberEnd: 5324
    functionName: htmlParseDoc
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlSAXParseDoc
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *htmlParseDoc(const xmlChar *cur, const char *encoding) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - htmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 203
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 203
    functionName: htmlnamePop
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *htmlnamePop(htmlParserCtxtPtr ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htmlParseLookupString
      Src: /src/libxml2/HTMLparser.c:4926,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4936,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4936,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4940,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4935,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - htmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 4948
      start: 4919
    functionDepth: 0
    functionLinenumber: 4919
    functionLinenumberEnd: 4948
    functionName: htmlParseLookupCommentEnd
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - NXT
    - htmlParseLookupString
    linkageType: ''
    returnType: int
    signature: 'static int htmlParseLookupCommentEnd(htmlParserCtxtPtr ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htmlNewParserCtxt
      Src: /src/libxml2/HTMLparser.c:5771,1
    - Dst: htmlCtxtParseDocument
      Src: /src/libxml2/HTMLparser.c:5781,1
    - Dst: htmlCtxtUseOptions
      Src: /src/libxml2/HTMLparser.c:5775,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/HTMLparser.c:5783,1
    - Dst: xmlCtxtNewInputFromMemory
      Src: /src/libxml2/HTMLparser.c:5777,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 5
    argNames:
    - buffer
    - size
    - url
    - encoding
    - options
    argTypes:
    - char*
    - int
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5785
      start: 5760
    functionDepth: 0
    functionLinenumber: 5760
    functionLinenumberEnd: 5785
    functionName: htmlReadMemory
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlCtxtUseOptions
    - htmlNewParserCtxt
    - xmlCtxtNewInputFromMemory
    - htmlCtxtParseDocument
    - htmlFreeParserCtxt
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *htmlReadMemory(const char *buffer, int size, const char *url,
      const char *encoding, int options) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libxml2/HTMLparser.c:4879,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 5
    argNames:
    - ctxt
    - startDelta
    - str
    - strLen
    - extraLen
    argTypes:
    - xmlParserCtxtPtr
    - size_t
    - char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 4908
      start: 4865
    functionDepth: 0
    functionLinenumber: 4865
    functionLinenumberEnd: 4908
    functionName: htmlParseLookupString
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - strstr
    linkageType: ''
    returnType: int
    signature: 'static int htmlParseLookupString(xmlParserCtxtPtr ctxt, size_t startDelta,
      const char *str, size_t strLen, size_t extraLen) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/HTMLparser.c:444,1
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLparser.c:458,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 479
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 479
    functionName: htmlSkipBlankChars
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - IS_WS_HTML
    - PARSER_STOPPED
    linkageType: ''
    returnType: int
    signature: 'static int htmlSkipBlankChars(xmlParserCtxtPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1245
      start: 1243
    functionDepth: 0
    functionLinenumber: 1243
    functionLinenumberEnd: 1245
    functionName: htmlInitAutoClose
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void htmlInitAutoClose(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:2880,1
    - Dst: htmlParseData
      Src: /src/libxml2/HTMLparser.c:2886,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:2883,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:2885,1
    - Dst: htmlParseData
      Src: /src/libxml2/HTMLparser.c:2881,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:2888,1
    - Dst: htmlParseData
      Src: /src/libxml2/HTMLparser.c:2890,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - htmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 2893
      start: 2872
    functionDepth: 0
    functionLinenumber: 2872
    functionLinenumberEnd: 2893
    functionName: htmlParseAttValue
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlParseData
    - SKIP
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *htmlParseAttValue(htmlParserCtxtPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlInitParser
      Src: /src/libxml2/HTMLparser.c:4644,1
    - Dst: xmlMalloc
      Src: /src/libxml2/HTMLparser.c:4646,1
    - Dst: memset
      Src: /src/libxml2/HTMLparser.c:4649,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/HTMLparser.c:4651,1
    - Dst: htmlInitParserCtxt
      Src: /src/libxml2/HTMLparser.c:4650,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - sax
    - userData
    argTypes:
    - htmlSAXHandler*
    - void*
    constantsTouched: []
    func_position:
      end: 4655
      start: 4639
    functionDepth: 0
    functionLinenumber: 4639
    functionLinenumberEnd: 4655
    functionName: htmlNewSAXParserCtxt
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - memset
    - htmlInitParserCtxt
    - xmlInitParser
    - xmlMalloc
    - htmlFreeParserCtxt
    linkageType: ''
    returnType: htmlParserCtxt*
    signature: 'htmlParserCtxt *htmlNewSAXParserCtxt(const htmlSAXHandler *sax, void
      *userData) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htmlNewParserCtxt
      Src: /src/libxml2/HTMLparser.c:5698,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/HTMLparser.c:5710,1
    - Dst: htmlCtxtUseOptions
      Src: /src/libxml2/HTMLparser.c:5702,1
    - Dst: xmlCtxtNewInputFromString
      Src: /src/libxml2/HTMLparser.c:5704,1
    - Dst: htmlCtxtParseDocument
      Src: /src/libxml2/HTMLparser.c:5708,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 4
    argNames:
    - str
    - url
    - encoding
    - options
    argTypes:
    - xmlChar*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5712
      start: 5690
    functionDepth: 0
    functionLinenumber: 5690
    functionLinenumberEnd: 5712
    functionName: htmlReadDoc
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlCtxtUseOptions
    - htmlNewParserCtxt
    - xmlCtxtNewInputFromString
    - htmlCtxtParseDocument
    - htmlFreeParserCtxt
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *htmlReadDoc(const xmlChar *str, const char *url, const char
      *encoding, int options) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htmlNewParserCtxt
      Src: /src/libxml2/HTMLparser.c:5732,1
    - Dst: xmlCtxtNewInputFromUrl
      Src: /src/libxml2/HTMLparser.c:5738,1
    - Dst: htmlCtxtParseDocument
      Src: /src/libxml2/HTMLparser.c:5741,1
    - Dst: htmlCtxtUseOptions
      Src: /src/libxml2/HTMLparser.c:5736,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/HTMLparser.c:5743,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - filename
    - encoding
    - options
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5745
      start: 5725
    functionDepth: 0
    functionLinenumber: 5725
    functionLinenumberEnd: 5745
    functionName: htmlReadFile
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlCtxtUseOptions
    - htmlNewParserCtxt
    - xmlCtxtNewInputFromUrl
    - htmlCtxtParseDocument
    - htmlFreeParserCtxt
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *htmlReadFile(const char *filename, const char *encoding, int
      options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 2
    argNames:
    - key
    - member
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 1253
      start: 1247
    functionDepth: 0
    functionLinenumber: 1247
    functionLinenumberEnd: 1253
    functionName: htmlCompareTags
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int htmlCompareTags(const void *key, const void *member) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:2904,1
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLparser.c:2913,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:2905,1
    - Dst: htmlStartCharData
      Src: /src/libxml2/HTMLparser.c:2932,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/HTMLparser.c:2934,1
    - Dst: areBlanks
      Src: /src/libxml2/HTMLparser.c:2940,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 47
    argCount: 4
    argNames:
    - ctxt
    - buf
    - size
    - mode
    argTypes:
    - htmlParserCtxtPtr
    - xmlChar*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2953
      start: 2895
    functionDepth: 0
    functionLinenumber: 2895
    functionLinenumberEnd: 2953
    functionName: htmlCharDataSAXCallback
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - areBlanks
    - PARSER_STOPPED
    - htmlStartCharData
    - IS_WS_HTML
    - xmlStrEqual
    linkageType: ''
    returnType: void
    signature: 'static void htmlCharDataSAXCallback(htmlParserCtxtPtr ctxt, const
      xmlChar *buf, int size, int mode) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: htmlNewParserCtxt
      Src: /src/libxml2/HTMLparser.c:4667,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/HTMLparser.c:4673,1
    - Dst: xmlCtxtNewInputFromMemory
      Src: /src/libxml2/HTMLparser.c:4671,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/HTMLparser.c:4677,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/HTMLparser.c:4678,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/HTMLparser.c:4679,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - url
    - buffer
    - size
    - encoding
    argTypes:
    - char*
    - char*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 4684
      start: 4657
    functionDepth: 0
    functionLinenumber: 4657
    functionLinenumberEnd: 4684
    functionName: htmlCreateMemoryParserCtxtInternal
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlFreeInputStream
    - htmlNewParserCtxt
    - xmlCtxtPushInput
    - xmlCtxtNewInputFromMemory
    - xmlFreeParserCtxt
    linkageType: ''
    returnType: htmlParserCtxtPtr
    signature: 'static htmlParserCtxtPtr htmlCreateMemoryParserCtxtInternal(const
      char *url, const char *buffer, size_t size, const char *encoding) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFatalErr
      Src: /src/libxml2/HTMLparser.c:5652,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/HTMLparser.c:5653,1
    - Dst: xmlCtxtPopInput
      Src: /src/libxml2/HTMLparser.c:5659,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/HTMLparser.c:5661,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/HTMLparser.c:5659,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/HTMLparser.c:5662,1
    - Dst: htmlParseDocument
      Src: /src/libxml2/HTMLparser.c:5667,1
    - Dst: xmlCtxtGetDocument
      Src: /src/libxml2/HTMLparser.c:5669,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/HTMLparser.c:5673,1
    - Dst: xmlCtxtPopInput
      Src: /src/libxml2/HTMLparser.c:5673,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - ctxt
    - input
    argTypes:
    - htmlParserCtxt*
    - xmlParserInput*
    constantsTouched: []
    func_position:
      end: 5676
      start: 5646
    functionDepth: 0
    functionLinenumber: 5646
    functionLinenumberEnd: 5676
    functionName: htmlCtxtParseDocument
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlFreeInputStream
    - xmlFatalErr
    - xmlCtxtPushInput
    - htmlParseDocument
    - xmlCtxtPopInput
    - xmlCtxtGetDocument
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *htmlCtxtParseDocument(htmlParserCtxt *ctxt, xmlParserInput
      *input) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PARSER_PROGRESSIVE
      Src: /src/libxml2/HTMLparser.c:2316,1
    - Dst: xmlParserGrow
      Src: /src/libxml2/HTMLparser.c:2332,1
    - Dst: htmlValidateUtf8
      Src: /src/libxml2/HTMLparser.c:2365,1
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLparser.c:2349,1
    - Dst: IS_UPPER
      Src: /src/libxml2/HTMLparser.c:2360,1
    - Dst: memcpy
      Src: /src/libxml2/HTMLparser.c:2369,1
    - Dst: xmlDictLookupHashed
      Src: /src/libxml2/HTMLparser.c:2391,1
    - Dst: htmlErrMemory
      Src: /src/libxml2/HTMLparser.c:2393,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 2
    argNames:
    - ctxt
    - attr
    argTypes:
    - htmlParserCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 2396
      start: 2310
    functionDepth: 0
    functionLinenumber: 2310
    functionLinenumberEnd: 2396
    functionName: htmlParseHTMLName
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - memcpy
    - xmlParserGrow
    - PARSER_PROGRESSIVE
    - htmlErrMemory
    - xmlDictLookupHashed
    - IS_WS_HTML
    - IS_UPPER
    - htmlValidateUtf8
    linkageType: ''
    returnType: xmlHashedString
    signature: 'static xmlHashedString htmlParseHTMLName(htmlParserCtxtPtr ctxt, int
      attr) '
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: xmlDetectEncoding
      Src: /src/libxml2/HTMLparser.c:4982,1
    - Dst: xmlSwitchEncoding
      Src: /src/libxml2/HTMLparser.c:4996,1
    - Dst: htmlParseLookupCommentEnd
      Src: /src/libxml2/HTMLparser.c:5064,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:5076,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:5115,1
    - Dst: xmlStrncmp
      Src: /src/libxml2/HTMLparser.c:4995,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:5077,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:5075,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:5076,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:5075,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:5066,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:5092,1
    - Dst: htmlParseLookupString
      Src: /src/libxml2/HTMLparser.c:5097,1
    - Dst: htmlStartCharData
      Src: /src/libxml2/HTMLparser.c:5110,1
    - Dst: htmlParseComment
      Src: /src/libxml2/HTMLparser.c:5100,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:5074,1
    - Dst: htmlParseLookupString
      Src: /src/libxml2/HTMLparser.c:5090,1
    - Dst: htmlParseComment
      Src: /src/libxml2/HTMLparser.c:5093,1
    - Dst: htmlParseLookupString
      Src: /src/libxml2/HTMLparser.c:5124,1
    - Dst: htmlParseLookupGt
      Src: /src/libxml2/HTMLparser.c:5137,1
    - Dst: htmlParseEndTag
      Src: /src/libxml2/HTMLparser.c:5139,1
    - Dst: htmlParseCharData
      Src: /src/libxml2/HTMLparser.c:5128,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/HTMLparser.c:4960,1
    - Dst: htmlParseLookupGt
      Src: /src/libxml2/HTMLparser.c:5018,1
    - Dst: htmlParseElementInternal
      Src: /src/libxml2/HTMLparser.c:5021,1
    - Dst: htmlParseCharData
      Src: /src/libxml2/HTMLparser.c:5046,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:5074,1
    - Dst: htmlParseComment
      Src: /src/libxml2/HTMLparser.c:5067,1
    - Dst: htmlParseLookupString
      Src: /src/libxml2/HTMLparser.c:5079,1
    - Dst: htmlParseDocTypeDecl
      Src: /src/libxml2/HTMLparser.c:5082,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:5099,1
    - Dst: IS_ASCII_LETTER
      Src: /src/libxml2/HTMLparser.c:5105,1
    - Dst: htmlParseErr
      Src: /src/libxml2/HTMLparser.c:5145,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 161
    argCount: 2
    argNames:
    - ctxt
    - terminate
    argTypes:
    - htmlParserCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 5151
      start: 4958
    functionDepth: 0
    functionLinenumber: 4958
    functionLinenumberEnd: 5151
    functionName: htmlParseTryOrFinish
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlParseLookupGt
    - htmlParseEndTag
    - PARSER_STOPPED
    - htmlParseDocTypeDecl
    - xmlSwitchEncoding
    - htmlStartCharData
    - htmlParseLookupCommentEnd
    - IS_ASCII_LETTER
    - xmlStrncmp
    - UPP
    - SKIP
    - htmlParseElementInternal
    - htmlParseComment
    - xmlDetectEncoding
    - htmlParseCharData
    - htmlParseErr
    - htmlParseLookupString
    linkageType: ''
    returnType: void
    signature: 'static void htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htmlSAXParseFile
      Src: /src/libxml2/HTMLparser.c:5422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - encoding
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 5423
      start: 5420
    functionDepth: 0
    functionLinenumber: 5420
    functionLinenumberEnd: 5423
    functionName: htmlParseFile
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlSAXParseFile
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *htmlParseFile(const char *filename, const char *encoding) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/libxml2/HTMLparser.c:1929,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1933
      start: 1923
    functionDepth: 0
    functionLinenumber: 1923
    functionLinenumberEnd: 1933
    functionName: htmlEntityValueLookup
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - bsearch
    linkageType: ''
    returnType: htmlEntityDesc*
    signature: 'const htmlEntityDesc *htmlEntityValueLookup(unsigned int value) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htmlCreateFileParserCtxt
      Src: /src/libxml2/HTMLparser.c:5392,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/HTMLparser.c:5407,1
    - Dst: htmlParseDocument
      Src: /src/libxml2/HTMLparser.c:5400,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - filename
    - encoding
    - sax
    - userData
    argTypes:
    - char*
    - char*
    - htmlSAXHandler*
    - void*
    constantsTouched: []
    func_position:
      end: 5410
      start: 5385
    functionDepth: 0
    functionLinenumber: 5385
    functionLinenumberEnd: 5410
    functionName: htmlSAXParseFile
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlCreateFileParserCtxt
    - htmlParseDocument
    - htmlFreeParserCtxt
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *htmlSAXParseFile(const char *filename, const char *encoding,
      htmlSAXHandler *sax, void *userData) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - vkey
    - vdesc
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 1911
      start: 1905
    functionDepth: 0
    functionLinenumber: 1905
    functionLinenumberEnd: 1911
    functionName: htmlCompareEntityDesc
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int htmlCompareEntityDesc(const void *vkey, const void *vdesc) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: htmlNewParserCtxt
      Src: /src/libxml2/HTMLparser.c:5350,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/HTMLparser.c:5357,1
    - Dst: xmlCtxtNewInputFromUrl
      Src: /src/libxml2/HTMLparser.c:5355,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/HTMLparser.c:5361,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/HTMLparser.c:5360,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/HTMLparser.c:5362,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - filename
    - encoding
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 5367
      start: 5341
    functionDepth: 0
    functionLinenumber: 5341
    functionLinenumberEnd: 5367
    functionName: htmlCreateFileParserCtxt
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlFreeInputStream
    - htmlNewParserCtxt
    - xmlCtxtPushInput
    - xmlCtxtNewInputFromUrl
    - xmlFreeParserCtxt
    linkageType: ''
    returnType: htmlParserCtxt*
    signature: 'htmlParserCtxt *htmlCreateFileParserCtxt(const char *filename, const
      char *encoding) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:154,1
    - Dst: htmlErrMemory
      Src: /src/libxml2/HTMLparser.c:165,1
    - Dst: xmlRealloc
      Src: /src/libxml2/HTMLparser.c:168,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:156,1
    - Dst: xmlGrowCapacity
      Src: /src/libxml2/HTMLparser.c:162,1
    - Dst: htmlErrMemory
      Src: /src/libxml2/HTMLparser.c:170,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 0
    argNames:
    - 3,0
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 179
    functionName: LIBXML_ATTR_FORMAT
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlGrowCapacity
    - xmlRealloc
    - xmlStrEqual
    - htmlErrMemory
    linkageType: ''
    returnType: void
    signature: "static void LIBXML_ATTR_FORMAT(3,0) htmlParseErr(xmlParserCtxtPtr
      ctxt, xmlParserErrors error, const char *msg, const xmlChar *str1, const xmlChar
      *str2){ xmlCtxtErr(ctxt, NULL, XML_FROM_HTML, error, XML_ERR_ERROR, str1, str2,
      NULL, 0, msg, str1, str2); } /************************************************************************
      *\t\t\t\t\t\t\t\t\t* *\tParser stacks related functions and macros\t\t* *\t\t\t\t\t\t\t\t\t*
      ************************************************************************/ /**
      * Pushes a new element name on top of the name stack * * @param ctxt an HTML
      parser context * @param value the element name * @returns -1 in case of error,
      the index in the stack otherwise */ static inthtmlnamePush(htmlParserCtxtPtr
      ctxt, const xmlChar * value) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htmlAutoCloseTag
      Src: /src/libxml2/HTMLparser.c:1469,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - doc
    - elem
    argTypes:
    - xmlDoc*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1473
      start: 1462
    functionDepth: 0
    functionLinenumber: 1462
    functionLinenumberEnd: 1473
    functionName: htmlIsAutoClosed
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlAutoCloseTag
    linkageType: ''
    returnType: int
    signature: 'int htmlIsAutoClosed(xmlDoc *doc, xmlNode *elem) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htmlParseHTMLName
      Src: /src/libxml2/HTMLparser.c:3602,1
    - Dst: htmlParseAttValue
      Src: /src/libxml2/HTMLparser.c:3613,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:3611,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ctxt
    - value
    argTypes:
    - htmlParserCtxtPtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 3618
      start: 3596
    functionDepth: 0
    functionLinenumber: 3596
    functionLinenumberEnd: 3618
    functionName: htmlParseAttribute
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlParseHTMLName
    - htmlParseAttValue
    - SKIP
    linkageType: ''
    returnType: xmlHashedString
    signature: 'static xmlHashedString htmlParseAttribute(htmlParserCtxtPtr ctxt,
      xmlChar **value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - htmlElemDesc*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 5481
      start: 5476
    functionDepth: 0
    functionLinenumber: 5476
    functionLinenumberEnd: 5481
    functionName: htmlAttrAllowed
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: htmlStatus
    signature: 'htmlStatus htmlAttrAllowed(const htmlElemDesc* elt ATTRIBUTE_UNUSED,
      const xmlChar* attr ATTRIBUTE_UNUSED, int legacy ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htmlCtxtReset
      Src: /src/libxml2/HTMLparser.c:5915,1
    - Dst: htmlCtxtParseDocument
      Src: /src/libxml2/HTMLparser.c:5922,1
    - Dst: htmlCtxtUseOptions
      Src: /src/libxml2/HTMLparser.c:5916,1
    - Dst: xmlCtxtNewInputFromUrl
      Src: /src/libxml2/HTMLparser.c:5918,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 4
    argNames:
    - ctxt
    - filename
    - encoding
    - options
    argTypes:
    - xmlParserCtxt*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5923
      start: 5906
    functionDepth: 0
    functionLinenumber: 5906
    functionLinenumberEnd: 5923
    functionName: htmlCtxtReadFile
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlCtxtUseOptions
    - htmlCtxtReset
    - xmlCtxtNewInputFromUrl
    - htmlCtxtParseDocument
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *htmlCtxtReadFile(xmlParserCtxt *ctxt, const char *filename,
      const char *encoding, int options) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlCreateCharEncodingHandler
      Src: /src/libxml2/HTMLparser.c:3629,1
    - Dst: xmlFatalErr
      Src: /src/libxml2/HTMLparser.c:3635,1
    - Dst: memcmp
      Src: /src/libxml2/HTMLparser.c:3651,1
    - Dst: xmlEncInputChunk
      Src: /src/libxml2/HTMLparser.c:3645,1
    - Dst: xmlCharEncCloseFunc
      Src: /src/libxml2/HTMLparser.c:3647,1
    - Dst: htmlParseErr
      Src: /src/libxml2/HTMLparser.c:3652,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - ctxt
    - encoding
    argTypes:
    - htmlParserCtxt*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 3658
      start: 3620
    functionDepth: 0
    functionLinenumber: 3620
    functionLinenumberEnd: 3658
    functionName: htmlCharEncCheckAsciiCompatible
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlFatalErr
    - xmlCharEncCloseFunc
    - memcmp
    - xmlCreateCharEncodingHandler
    - htmlParseErr
    - xmlEncInputChunk
    linkageType: ''
    returnType: int
    signature: 'static int htmlCharEncCheckAsciiCompatible(htmlParserCtxt *ctxt, const
      xmlChar *encoding) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - htmlElemDesc*
    - htmlElemDesc*
    constantsTouched: []
    func_position:
      end: 5466
      start: 5462
    functionDepth: 0
    functionLinenumber: 5462
    functionLinenumberEnd: 5466
    functionName: htmlElementStatusHere
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: htmlStatus
    signature: 'htmlStatus htmlElementStatusHere(const htmlElemDesc* parent ATTRIBUTE_UNUSED,
      const htmlElemDesc* elt ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htmlCtxtReset
      Src: /src/libxml2/HTMLparser.c:5883,1
    - Dst: htmlCtxtParseDocument
      Src: /src/libxml2/HTMLparser.c:5891,1
    - Dst: xmlCtxtNewInputFromString
      Src: /src/libxml2/HTMLparser.c:5886,1
    - Dst: htmlCtxtUseOptions
      Src: /src/libxml2/HTMLparser.c:5884,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 5
    argNames:
    - ctxt
    - str
    - URL
    - encoding
    - options
    argTypes:
    - xmlParserCtxt*
    - xmlChar*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5892
      start: 5874
    functionDepth: 0
    functionLinenumber: 5874
    functionLinenumberEnd: 5892
    functionName: htmlCtxtReadDoc
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlCtxtUseOptions
    - htmlCtxtReset
    - xmlCtxtNewInputFromString
    - htmlCtxtParseDocument
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *htmlCtxtReadDoc(xmlParserCtxt *ctxt, const xmlChar *str, const
      char *URL, const char *encoding, int options) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1441,1
    - Dst: htmlCheckAutoClose
      Src: /src/libxml2/HTMLparser.c:1442,1
    - Dst: htmlAutoCloseTag
      Src: /src/libxml2/HTMLparser.c:1445,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 3
    argNames:
    - doc
    - name
    - elem
    argTypes:
    - xmlDoc*
    - xmlChar*
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 1449
      start: 1436
    functionDepth: 0
    functionLinenumber: 1436
    functionLinenumberEnd: 1449
    functionName: htmlAutoCloseTag
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    - htmlAutoCloseTag
    - htmlCheckAutoClose
    linkageType: ''
    returnType: int
    signature: 'int htmlAutoCloseTag(xmlDoc *doc, const xmlChar *name, xmlNode *elem) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 5
    argNames:
    - ctxt
    - size
    - name
    - hashValue
    - aindex
    argTypes:
    - xmlParserCtxtPtr
    - unsigned
    - xmlChar*
    - unsigned
    - int
    constantsTouched: []
    func_position:
      end: 3755
      start: 3728
    functionDepth: 0
    functionLinenumber: 3728
    functionLinenumberEnd: 3755
    functionName: htmlAttrHashInsert
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int htmlAttrHashInsert(xmlParserCtxtPtr ctxt, unsigned size,
      const xmlChar *name, unsigned hashValue, int aindex) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDocNode
      Src: /src/libxml2/HTMLparser.c:4343,1
    - Dst: htmlErrMemory
      Src: /src/libxml2/HTMLparser.c:4345,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/HTMLparser.c:4350,1
    - Dst: htmlnamePush
      Src: /src/libxml2/HTMLparser.c:4354,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/HTMLparser.c:4349,1
    - Dst: nodePush
      Src: /src/libxml2/HTMLparser.c:4355,1
    - Dst: htmlParseContent
      Src: /src/libxml2/HTMLparser.c:4357,1
    - Dst: xmlParserCheckEOF
      Src: /src/libxml2/HTMLparser.c:4362,1
    - Dst: nodePop
      Src: /src/libxml2/HTMLparser.c:4378,1
    - Dst: htmlnamePop
      Src: /src/libxml2/HTMLparser.c:4379,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/HTMLparser.c:4383,1
    - Dst: xmlCtxtPopInput
      Src: /src/libxml2/HTMLparser.c:4381,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - ctxt
    - input
    argTypes:
    - htmlParserCtxt*
    - xmlParserInput*
    constantsTouched: []
    func_position:
      end: 4385
      start: 4337
    functionDepth: 0
    functionLinenumber: 4337
    functionLinenumberEnd: 4385
    functionName: htmlCtxtParseContentInternal
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlParserCheckEOF
    - xmlFreeNode
    - htmlErrMemory
    - xmlCtxtPushInput
    - xmlCtxtPopInput
    - xmlNewDocNode
    - htmlnamePush
    - nodePush
    - nodePop
    - htmlnamePop
    - htmlParseContent
    linkageType: ''
    returnType: xmlNode*
    signature: 'xmlNode *htmlCtxtParseContentInternal(htmlParserCtxt *ctxt, xmlParserInput
      *input) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htmlNewParserCtxt
      Src: /src/libxml2/HTMLparser.c:5846,1
    - Dst: htmlCtxtUseOptions
      Src: /src/libxml2/HTMLparser.c:5850,1
    - Dst: htmlCtxtParseDocument
      Src: /src/libxml2/HTMLparser.c:5856,1
    - Dst: xmlCtxtNewInputFromIO
      Src: /src/libxml2/HTMLparser.c:5852,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/HTMLparser.c:5858,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 6
    argNames:
    - ioread
    - ioclose
    - ioctx
    - url
    - encoding
    - options
    argTypes:
    - xmlInputReadCallback
    - xmlInputCloseCallback
    - void*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5860
      start: 5838
    functionDepth: 0
    functionLinenumber: 5838
    functionLinenumberEnd: 5860
    functionName: htmlReadIO
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlCtxtUseOptions
    - xmlCtxtNewInputFromIO
    - htmlNewParserCtxt
    - htmlCtxtParseDocument
    - htmlFreeParserCtxt
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *htmlReadIO(xmlInputReadCallback ioread, xmlInputCloseCallback
      ioclose, void *ioctx, const char *url, const char *encoding, int options) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: htmlNewSAXParserCtxt
      Src: /src/libxml2/HTMLparser.c:5245,1
    - Dst: xmlNewPushInput
      Src: /src/libxml2/HTMLparser.c:5250,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/HTMLparser.c:5256,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/HTMLparser.c:5252,1
    - Dst: xmlGetCharEncodingName
      Src: /src/libxml2/HTMLparser.c:5249,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/HTMLparser.c:5257,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/HTMLparser.c:5258,1
    - Dst: xmlSwitchEncodingName
      Src: /src/libxml2/HTMLparser.c:5263,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 6
    argNames:
    - sax
    - user_data
    - chunk
    - size
    - filename
    - enc
    argTypes:
    - htmlSAXHandler*
    - void*
    - char*
    - int
    - char*
    - xmlCharEncoding
    constantsTouched: []
    func_position:
      end: 5266
      start: 5237
    functionDepth: 0
    functionLinenumber: 5237
    functionLinenumberEnd: 5266
    functionName: htmlCreatePushParserCtxt
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlSwitchEncodingName
    - xmlNewPushInput
    - xmlFreeInputStream
    - xmlCtxtPushInput
    - htmlNewSAXParserCtxt
    - xmlGetCharEncodingName
    - xmlFreeParserCtxt
    - htmlFreeParserCtxt
    linkageType: ''
    returnType: htmlParserCtxt*
    signature: "htmlParserCtxt *htmlCreatePushParserCtxt(htmlSAXHandler *sax, void
      *user_data, const char *chunk, int size, const char *filename,\t\t\t xmlCharEncoding
      enc) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htmlCreateDocParserCtxt
      Src: /src/libxml2/HTMLparser.c:5293,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/HTMLparser.c:5304,1
    - Dst: htmlParseDocument
      Src: /src/libxml2/HTMLparser.c:5302,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 4
    argNames:
    - cur
    - encoding
    - sax
    - userData
    argTypes:
    - xmlChar*
    - char*
    - htmlSAXHandler*
    - void*
    constantsTouched: []
    func_position:
      end: 5307
      start: 5284
    functionDepth: 0
    functionLinenumber: 5284
    functionLinenumberEnd: 5307
    functionName: htmlSAXParseDoc
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlParseDocument
    - htmlCreateDocParserCtxt
    - htmlFreeParserCtxt
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *htmlSAXParseDoc(const xmlChar *cur, const char *encoding,
      htmlSAXHandler *sax, void *userData) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htmlCheckAutoClose
      Src: /src/libxml2/HTMLparser.c:1415,1
    - Dst: htmlnamePop
      Src: /src/libxml2/HTMLparser.c:1419,1
    - Dst: htmlParserFinishElementParsing
      Src: /src/libxml2/HTMLparser.c:1416,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - ctxt
    - newtag
    argTypes:
    - htmlParserCtxtPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1421
      start: 1405
    functionDepth: 0
    functionLinenumber: 1405
    functionLinenumberEnd: 1421
    functionName: htmlAutoClose
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlnamePop
    - htmlParserFinishElementParsing
    - htmlCheckAutoClose
    linkageType: ''
    returnType: void
    signature: 'static void htmlAutoClose(htmlParserCtxtPtr ctxt, const xmlChar *
      newtag) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLparser.c:3682,1
    - Dst: htmlErrMemory
      Src: /src/libxml2/HTMLparser.c:3688,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLparser.c:3685,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLparser.c:3683,1
    - Dst: xmlStrdup
      Src: /src/libxml2/HTMLparser.c:3686,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/HTMLparser.c:3690,1
    - Dst: htmlParseContentType
      Src: /src/libxml2/HTMLparser.c:3700,1
    - Dst: xmlStrndup
      Src: /src/libxml2/HTMLparser.c:3701,1
    - Dst: htmlErrMemory
      Src: /src/libxml2/HTMLparser.c:3703,1
    - Dst: htmlCharEncCheckAsciiCompatible
      Src: /src/libxml2/HTMLparser.c:3708,1
    - Dst: xmlFree
      Src: /src/libxml2/HTMLparser.c:3709,1
    - Dst: xmlSetDeclaredEncoding
      Src: /src/libxml2/HTMLparser.c:3713,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 50
    argCount: 2
    argNames:
    - ctxt
    - atts
    argTypes:
    - htmlParserCtxtPtr
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 3715
      start: 3666
    functionDepth: 0
    functionLinenumber: 3666
    functionLinenumberEnd: 3715
    functionName: htmlCheckMeta
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlStrcasecmp
    - xmlStrndup
    - xmlSetDeclaredEncoding
    - htmlCharEncCheckAsciiCompatible
    - htmlErrMemory
    - xmlStrdup
    - htmlParseContentType
    linkageType: ''
    returnType: void
    signature: 'static void htmlCheckMeta(htmlParserCtxtPtr ctxt, const xmlChar **atts) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: htmlParseElementInternal
      Src: /src/libxml2/HTMLparser.c:4313,1
    - Dst: htmlParseContent
      Src: /src/libxml2/HTMLparser.c:4322,1
    - Dst: htmlAutoCloseOnEnd
      Src: /src/libxml2/HTMLparser.c:4328,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - htmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 4330
      start: 4305
    functionDepth: 0
    functionLinenumber: 4305
    functionLinenumberEnd: 4330
    functionName: htmlParseElement
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlAutoCloseOnEnd
    - htmlParseElementInternal
    - htmlParseContent
    linkageType: ''
    returnType: void
    signature: 'void htmlParseElement(htmlParserCtxt *ctxt) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/HTMLparser.c:5183,1
    - Dst: xmlHaltParser
      Src: /src/libxml2/HTMLparser.c:5195,1
    - Dst: xmlParserInputBufferPush
      Src: /src/libxml2/HTMLparser.c:5190,1
    - Dst: xmlBufUpdateInput
      Src: /src/libxml2/HTMLparser.c:5191,1
    - Dst: htmlParseErr
      Src: /src/libxml2/HTMLparser.c:5193,1
    - Dst: htmlParseTryOrFinish
      Src: /src/libxml2/HTMLparser.c:5200,1
    - Dst: htmlAutoCloseOnEnd
      Src: /src/libxml2/HTMLparser.c:5203,1
    - Dst: xmlParserCheckEOF
      Src: /src/libxml2/HTMLparser.c:5208,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 4
    argNames:
    - ctxt
    - chunk
    - size
    - terminate
    argTypes:
    - htmlParserCtxt*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 5217
      start: 5175
    functionDepth: 0
    functionLinenumber: 5175
    functionLinenumberEnd: 5217
    functionName: htmlParseChunk
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlParserCheckEOF
    - PARSER_STOPPED
    - htmlParseTryOrFinish
    - htmlAutoCloseOnEnd
    - xmlHaltParser
    - xmlParserInputBufferPush
    - xmlBufUpdateInput
    - htmlParseErr
    linkageType: ''
    returnType: int
    signature: 'int htmlParseChunk(htmlParserCtxt *ctxt, const char *chunk, int size,
      int terminate) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htmlNewParserCtxt
      Src: /src/libxml2/HTMLparser.c:5809,1
    - Dst: xmlCtxtNewInputFromFd
      Src: /src/libxml2/HTMLparser.c:5815,1
    - Dst: htmlCtxtParseDocument
      Src: /src/libxml2/HTMLparser.c:5818,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/HTMLparser.c:5820,1
    - Dst: htmlCtxtUseOptions
      Src: /src/libxml2/HTMLparser.c:5813,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - fd
    - url
    - encoding
    - options
    argTypes:
    - int
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 5822
      start: 5802
    functionDepth: 0
    functionLinenumber: 5802
    functionLinenumberEnd: 5822
    functionName: htmlReadFd
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlCtxtUseOptions
    - xmlCtxtNewInputFromFd
    - htmlNewParserCtxt
    - htmlCtxtParseDocument
    - htmlFreeParserCtxt
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *htmlReadFd(int fd, const char *url, const char *encoding,
      int options) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: htmlParseData
      Src: /src/libxml2/HTMLparser.c:3377,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:3387,1
    - Dst: PARSER_PROGRESSIVE
      Src: /src/libxml2/HTMLparser.c:3382,1
    - Dst: xmlParserGrow
      Src: /src/libxml2/HTMLparser.c:3384,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:3379,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:3388,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:3389,1
    - Dst: htmlParseData
      Src: /src/libxml2/HTMLparser.c:3391,1
    - Dst: xmlFree
      Src: /src/libxml2/HTMLparser.c:3403,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - ctxt
    - bogus
    argTypes:
    - htmlParserCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 3404
      start: 3368
    functionDepth: 0
    functionLinenumber: 3368
    functionLinenumberEnd: 3404
    functionName: htmlParseComment
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - NXT
    - xmlParserGrow
    - PARSER_PROGRESSIVE
    - htmlParseData
    - SKIP
    linkageType: ''
    returnType: void
    signature: 'static void htmlParseComment(htmlParserCtxtPtr ctxt, int bogus) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtErrMemory
      Src: /src/libxml2/HTMLparser.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: htmlErrMemory
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlCtxtErrMemory
    linkageType: ''
    returnType: void
    signature: 'static void htmlErrMemory(xmlParserCtxtPtr ctxt) '
  - BBCount: 64
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserGrow
      Src: /src/libxml2/HTMLparser.c:3005,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/HTMLparser.c:2994,1
    - Dst: IS_ASCII_DIGIT
      Src: /src/libxml2/HTMLparser.c:3203,1
    - Dst: htmlFindEntityPrefix
      Src: /src/libxml2/HTMLparser.c:3215,1
    - Dst: xmlFree
      Src: /src/libxml2/HTMLparser.c:3295,1
    - Dst: xmlSwitchEncoding
      Src: /src/libxml2/HTMLparser.c:3291,1
    - Dst: PARSER_PROGRESSIVE
      Src: /src/libxml2/HTMLparser.c:3299,1
    - Dst: xmlSwitchEncodingName
      Src: /src/libxml2/HTMLparser.c:3294,1
    - Dst: PARSER_PROGRESSIVE
      Src: /src/libxml2/HTMLparser.c:2970,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/HTMLparser.c:2978,1
    - Dst: IS_ASCII_LETTER
      Src: /src/libxml2/HTMLparser.c:3202,1
    - Dst: htmlCodePointToUtf8
      Src: /src/libxml2/HTMLparser.c:3330,1
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLparser.c:3124,1
    - Dst: IS_HEX_DIGIT
      Src: /src/libxml2/HTMLparser.c:3179,1
    - Dst: IS_ASCII_DIGIT
      Src: /src/libxml2/HTMLparser.c:3185,1
    - Dst: htmlFindEncoding
      Src: /src/libxml2/HTMLparser.c:3288,1
    - Dst: htmlValidateUtf8
      Src: /src/libxml2/HTMLparser.c:3303,1
    - Dst: htmlCharDataSAXCallback
      Src: /src/libxml2/HTMLparser.c:3340,1
    - Dst: htmlCharDataSAXCallback
      Src: /src/libxml2/HTMLparser.c:3335,1
    CyclomaticComplexity: 119
    EdgeCount: 119
    ICount: 297
    argCount: 2
    argNames:
    - ctxt
    - partial
    argTypes:
    - htmlParserCtxtPtr
    - int
    constantsTouched: []
    func_position:
      end: 3360
      start: 2963
    functionDepth: 0
    functionLinenumber: 2963
    functionLinenumberEnd: 3360
    functionName: htmlParseCharData
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - IS_ASCII_DIGIT
    - xmlFree
    - PARSER_STOPPED
    - xmlParserGrow
    - IS_HEX_DIGIT
    - PARSER_PROGRESSIVE
    - xmlSwitchEncodingName
    - xmlSwitchEncoding
    - htmlFindEncoding
    - IS_ASCII_LETTER
    - IS_WS_HTML
    - htmlCodePointToUtf8
    - htmlValidateUtf8
    - htmlCharDataSAXCallback
    - htmlFindEntityPrefix
    linkageType: ''
    returnType: int
    signature: 'static int htmlParseCharData(htmlParserCtxtPtr ctxt, int partial) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcasestr
      Src: /src/libxml2/HTMLparser.c:339,1
    - Dst: xmlStrcasestr
      Src: /src/libxml2/HTMLparser.c:342,1
    - Dst: xmlStrcasestr
      Src: /src/libxml2/HTMLparser.c:345,1
    - Dst: xmlStrndup
      Src: /src/libxml2/HTMLparser.c:355,1
    - Dst: IS_ALNUM
      Src: /src/libxml2/HTMLparser.c:350,1
    - Dst: htmlErrMemory
      Src: /src/libxml2/HTMLparser.c:357,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 38
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 359
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 359
    functionName: htmlFindEncoding
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - IS_ALNUM
    - htmlErrMemory
    - xmlStrcasestr
    - xmlStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *htmlFindEncoding(xmlParserCtxtPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/libxml2/HTMLparser.c:1318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - newtag
    - oldtag
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1322
      start: 1310
    functionDepth: 0
    functionLinenumber: 1310
    functionLinenumberEnd: 1322
    functionName: htmlCheckAutoClose
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - bsearch
    linkageType: ''
    returnType: int
    signature: 'static int htmlCheckAutoClose(const xmlChar * newtag, const xmlChar
      * oldtag) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htmlNewSAXParserCtxt
      Src: /src/libxml2/HTMLparser.c:4621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4622
      start: 4618
    functionDepth: 0
    functionLinenumber: 4618
    functionLinenumberEnd: 4622
    functionName: htmlNewParserCtxt
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlNewSAXParserCtxt
    linkageType: ''
    returnType: htmlParserCtxt*
    signature: 'htmlParserCtxt *htmlNewParserCtxt(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: htmlNewParserCtxt
      Src: /src/libxml2/HTMLparser.c:4721,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/HTMLparser.c:4728,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/HTMLparser.c:4733,1
    - Dst: xmlCtxtNewInputFromString
      Src: /src/libxml2/HTMLparser.c:4725,1
    - Dst: xmlCtxtPushInput
      Src: /src/libxml2/HTMLparser.c:4732,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/HTMLparser.c:4734,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - str
    - url
    - encoding
    argTypes:
    - xmlChar*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 4739
      start: 4712
    functionDepth: 0
    functionLinenumber: 4712
    functionLinenumberEnd: 4739
    functionName: htmlCreateDocParserCtxt
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlFreeInputStream
    - htmlNewParserCtxt
    - xmlCtxtPushInput
    - xmlCtxtNewInputFromString
    - xmlFreeParserCtxt
    linkageType: ''
    returnType: htmlParserCtxtPtr
    signature: 'static htmlParserCtxtPtr htmlCreateDocParserCtxt(const xmlChar *str,
      const char *url, const char *encoding) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlParserAddNodeInfo
      Src: /src/libxml2/HTMLparser.c:1235,1
    - Dst: htmlNodeInfoPop
      Src: /src/libxml2/HTMLparser.c:1236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - htmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 1238
      start: 1225
    functionDepth: 0
    functionLinenumber: 1225
    functionLinenumberEnd: 1238
    functionName: htmlParserFinishElementParsing
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlNodeInfoPop
    - xmlParserAddNodeInfo
    linkageType: ''
    returnType: void
    signature: 'static void htmlParserFinishElementParsing(htmlParserCtxtPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libxml2/HTMLparser.c:1295,1
    - Dst: strcmp
      Src: /src/libxml2/HTMLparser.c:1297,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - vkey
    - member
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 1300
      start: 1289
    functionDepth: 0
    functionLinenumber: 1289
    functionLinenumberEnd: 1300
    functionName: htmlCompareStartClose
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: 'static int htmlCompareStartClose(const void *vkey, const void *member) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1505,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1519,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1498,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1498,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1501,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1502,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1506,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1491,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1503,1
    - Dst: htmlnamePush
      Src: /src/libxml2/HTMLparser.c:1515,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1518,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1526,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1529,1
    - Dst: htmlnamePush
      Src: /src/libxml2/HTMLparser.c:1494,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1504,1
    - Dst: htmlnamePush
      Src: /src/libxml2/HTMLparser.c:1534,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1520,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 59
    argCount: 2
    argNames:
    - ctxt
    - newtag
    argTypes:
    - htmlParserCtxtPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1538
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1538
    functionName: htmlCheckImplied
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    - htmlnamePush
    linkageType: ''
    returnType: void
    signature: 'static void htmlCheckImplied(htmlParserCtxtPtr ctxt, const xmlChar
      *newtag) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/HTMLparser.c:4601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - htmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 4602
      start: 4598
    functionDepth: 0
    functionLinenumber: 4598
    functionLinenumberEnd: 4602
    functionName: htmlFreeParserCtxt
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlFreeParserCtxt
    linkageType: ''
    returnType: void
    signature: 'void htmlFreeParserCtxt(htmlParserCtxt *ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htmlCreateMemoryParserCtxtInternal
      Src: /src/libxml2/HTMLparser.c:4701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 4702
      start: 4696
    functionDepth: 0
    functionLinenumber: 4696
    functionLinenumberEnd: 4702
    functionName: htmlCreateMemoryParserCtxt
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlCreateMemoryParserCtxtInternal
    linkageType: ''
    returnType: htmlParserCtxt*
    signature: 'htmlParserCtxt *htmlCreateMemoryParserCtxt(const char *buffer, int
      size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - xmlNode*
    - int
    constantsTouched: []
    func_position:
      end: 5495
      start: 5491
    functionDepth: 0
    functionLinenumber: 5491
    functionLinenumberEnd: 5495
    functionName: htmlNodeStatus
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: htmlStatus
    signature: 'htmlStatus htmlNodeStatus(xmlNode *node ATTRIBUTE_UNUSED, int legacy
      ATTRIBUTE_UNUSED) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/libxml2/HTMLparser.c:1268,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - tag
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1271
      start: 1263
    functionDepth: 0
    functionLinenumber: 1263
    functionLinenumberEnd: 1271
    functionName: htmlTagLookup
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - bsearch
    linkageType: ''
    returnType: htmlElemDesc*
    signature: 'const htmlElemDesc *htmlTagLookup(const xmlChar *tag) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htmlParserFinishElementParsing
      Src: /src/libxml2/HTMLparser.c:1387,1
    - Dst: htmlnamePop
      Src: /src/libxml2/HTMLparser.c:1390,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - htmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 1392
      start: 1376
    functionDepth: 0
    functionLinenumber: 1376
    functionLinenumberEnd: 1392
    functionName: htmlAutoCloseOnEnd
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlnamePop
    - htmlParserFinishElementParsing
    linkageType: ''
    returnType: void
    signature: 'static void htmlAutoCloseOnEnd(htmlParserCtxtPtr ctxt) '
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/HTMLparser.c:2575,1
    - Dst: htmlCodePointToUtf8
      Src: /src/libxml2/HTMLparser.c:2781,1
    - Dst: htmlValidateUtf8
      Src: /src/libxml2/HTMLparser.c:2759,1
    - Dst: htmlErrMemory
      Src: /src/libxml2/HTMLparser.c:2798,1
    - Dst: IS_HEX_DIGIT
      Src: /src/libxml2/HTMLparser.c:2684,1
    - Dst: IS_ASCII_DIGIT
      Src: /src/libxml2/HTMLparser.c:2690,1
    - Dst: PARSER_PROGRESSIVE
      Src: /src/libxml2/HTMLparser.c:2755,1
    - Dst: htmlFindEncoding
      Src: /src/libxml2/HTMLparser.c:2744,1
    - Dst: memcpy
      Src: /src/libxml2/HTMLparser.c:2813,1
    - Dst: htmlErrMemory
      Src: /src/libxml2/HTMLparser.c:2567,1
    - Dst: htmlMaskMatch
      Src: /src/libxml2/HTMLparser.c:2621,1
    - Dst: htmlFindEntityPrefix
      Src: /src/libxml2/HTMLparser.c:2698,1
    - Dst: xmlSwitchEncoding
      Src: /src/libxml2/HTMLparser.c:2747,1
    - Dst: htmlParseErr
      Src: /src/libxml2/HTMLparser.c:2788,1
    - Dst: xmlSwitchEncodingName
      Src: /src/libxml2/HTMLparser.c:2750,1
    - Dst: memcpy
      Src: /src/libxml2/HTMLparser.c:2807,1
    - Dst: htmlErrMemory
      Src: /src/libxml2/HTMLparser.c:2836,1
    - Dst: PARSER_PROGRESSIVE
      Src: /src/libxml2/HTMLparser.c:2556,1
    - Dst: xmlMalloc
      Src: /src/libxml2/HTMLparser.c:2565,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/HTMLparser.c:2591,1
    - Dst: xmlParserGrow
      Src: /src/libxml2/HTMLparser.c:2601,1
    - Dst: xmlRealloc
      Src: /src/libxml2/HTMLparser.c:2795,1
    - Dst: xmlFree
      Src: /src/libxml2/HTMLparser.c:2751,1
    - Dst: xmlMalloc
      Src: /src/libxml2/HTMLparser.c:2834,1
    - Dst: memcpy
      Src: /src/libxml2/HTMLparser.c:2838,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 230
    argCount: 5
    argNames:
    - ctxt
    - mask
    - comment
    - refs
    - maxLength
    argTypes:
    - htmlParserCtxtPtr
    - htmlAsciiMask
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2847
      start: 2547
    functionDepth: 0
    functionLinenumber: 2547
    functionLinenumberEnd: 2847
    functionName: htmlParseData
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - IS_ASCII_DIGIT
    - xmlFree
    - memcpy
    - PARSER_STOPPED
    - xmlParserGrow
    - PARSER_PROGRESSIVE
    - IS_HEX_DIGIT
    - xmlSwitchEncodingName
    - xmlRealloc
    - xmlSwitchEncoding
    - htmlFindEncoding
    - htmlErrMemory
    - htmlCodePointToUtf8
    - htmlValidateUtf8
    - htmlParseErr
    - xmlMalloc
    - htmlFindEntityPrefix
    - htmlMaskMatch
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *htmlParseData(htmlParserCtxtPtr ctxt, htmlAsciiMask
      mask, int comment, int refs, int maxLength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 5440
      start: 5434
    functionDepth: 0
    functionLinenumber: 5434
    functionLinenumberEnd: 5440
    functionName: htmlHandleOmittedElem
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int htmlHandleOmittedElem(int val) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: htmlGetEndPriority
      Src: /src/libxml2/HTMLparser.c:1339,1
    - Dst: htmlGetEndPriority
      Src: /src/libxml2/HTMLparser.c:1351,1
    - Dst: htmlTagLookup
      Src: /src/libxml2/HTMLparser.c:1358,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1343,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1357,1
    - Dst: htmlParseErr
      Src: /src/libxml2/HTMLparser.c:1360,1
    - Dst: htmlParserFinishElementParsing
      Src: /src/libxml2/HTMLparser.c:1364,1
    - Dst: htmlnamePop
      Src: /src/libxml2/HTMLparser.c:1367,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - ctxt
    - newtag
    argTypes:
    - htmlParserCtxtPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1369
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1369
    functionName: htmlAutoCloseOnClose
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlGetEndPriority
    - htmlParserFinishElementParsing
    - xmlStrEqual
    - htmlnamePop
    - htmlParseErr
    - htmlTagLookup
    linkageType: ''
    returnType: void
    signature: 'static void htmlAutoCloseOnClose(htmlParserCtxtPtr ctxt, const xmlChar
      * newtag) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlCtxtReset
      Src: /src/libxml2/HTMLparser.c:5523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - htmlParserCtxt*
    constantsTouched: []
    func_position:
      end: 5524
      start: 5520
    functionDepth: 0
    functionLinenumber: 5520
    functionLinenumberEnd: 5524
    functionName: htmlCtxtReset
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlCtxtReset
    linkageType: ''
    returnType: void
    signature: 'void htmlCtxtReset(htmlParserCtxt *ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlDictSetLimit
      Src: /src/libxml2/HTMLparser.c:5564,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 3
    argNames:
    - ctxt
    - options
    - keepMask
    argTypes:
    - xmlParserCtxtPtr
    - int
    - int
    constantsTouched: []
    func_position:
      end: 5576
      start: 5526
    functionDepth: 0
    functionLinenumber: 5526
    functionLinenumberEnd: 5576
    functionName: htmlCtxtSetOptionsInternal
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlDictSetLimit
    linkageType: ''
    returnType: int
    signature: 'static int htmlCtxtSetOptionsInternal(xmlParserCtxtPtr ctxt, int options,
      int keepMask) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - htmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 257
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 257
    functionName: htmlNodeInfoPop
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: htmlParserNodeInfo*
    signature: 'static htmlParserNodeInfo *htmlNodeInfoPop(htmlParserCtxtPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1898,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1903
      start: 1892
    functionDepth: 0
    functionLinenumber: 1892
    functionLinenumberEnd: 1903
    functionName: htmlEntityLookup
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: htmlEntityDesc*
    signature: 'const htmlEntityDesc *htmlEntityLookup(const xmlChar *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htmlNewDocNoDtD
      Src: /src/libxml2/HTMLparser.c:2280,1
    - Dst: htmlNewDocNoDtD
      Src: /src/libxml2/HTMLparser.c:2284,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - URI
    - publicId
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2285
      start: 2277
    functionDepth: 0
    functionLinenumber: 2277
    functionLinenumberEnd: 2285
    functionName: htmlNewDoc
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlNewDocNoDtD
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *htmlNewDoc(const xmlChar *URI, const xmlChar *publicId) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: htmlParseStartTag
      Src: /src/libxml2/HTMLparser.c:4248,1
    - Dst: htmlNodeInfoPush
      Src: /src/libxml2/HTMLparser.c:4254,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:4260,1
    - Dst: htmlParserFinishElementParsing
      Src: /src/libxml2/HTMLparser.c:4261,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4259,1
    - Dst: htmlnamePop
      Src: /src/libxml2/HTMLparser.c:4266,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:4272,1
    - Dst: htmlTagLookup
      Src: /src/libxml2/HTMLparser.c:4277,1
    - Dst: htmlParserFinishElementParsing
      Src: /src/libxml2/HTMLparser.c:4283,1
    - Dst: htmlnamePop
      Src: /src/libxml2/HTMLparser.c:4288,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - htmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 4296
      start: 4232
    functionDepth: 0
    functionLinenumber: 4232
    functionLinenumberEnd: 4296
    functionName: htmlParseElementInternal
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - NXT
    - htmlParseStartTag
    - htmlParserFinishElementParsing
    - SKIP
    - htmlNodeInfoPush
    - htmlnamePop
    - htmlTagLookup
    linkageType: ''
    returnType: int
    signature: 'static int htmlParseElementInternal(htmlParserCtxtPtr ctxt) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/HTMLparser.c:2234,1
    - Dst: memset
      Src: /src/libxml2/HTMLparser.c:2237,1
    - Dst: xmlRegisterNodeDefaultValue
      Src: /src/libxml2/HTMLparser.c:2266,1
    - Dst: xmlCreateIntSubset
      Src: /src/libxml2/HTMLparser.c:2259,1
    - Dst: xmlFree
      Src: /src/libxml2/HTMLparser.c:2261,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - URI
    - publicId
    argTypes:
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2268
      start: 2227
    functionDepth: 0
    functionLinenumber: 2227
    functionLinenumberEnd: 2268
    functionName: htmlNewDocNoDtD
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRegisterNodeDefaultValue
    - memset
    - xmlCreateIntSubset
    - xmlMalloc
    linkageType: ''
    returnType: xmlDoc*
    signature: 'xmlDoc *htmlNewDocNoDtD(const xmlChar *URI, const xmlChar *publicId) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4187,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:4191,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4196,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:4204,1
    - Dst: htmlParseComment
      Src: /src/libxml2/HTMLparser.c:4205,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4206,1
    - Dst: htmlStartCharData
      Src: /src/libxml2/HTMLparser.c:4209,1
    - Dst: htmlAutoCloseOnEnd
      Src: /src/libxml2/HTMLparser.c:4224,1
    - Dst: PARSER_STOPPED
      Src: /src/libxml2/HTMLparser.c:4178,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4185,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:4197,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4196,1
    - Dst: htmlParseElementInternal
      Src: /src/libxml2/HTMLparser.c:4207,1
    - Dst: htmlParseEndTag
      Src: /src/libxml2/HTMLparser.c:4186,1
    - Dst: htmlParseDocTypeDecl
      Src: /src/libxml2/HTMLparser.c:4195,1
    - Dst: htmlParseComment
      Src: /src/libxml2/HTMLparser.c:4201,1
    - Dst: NXT
      Src: /src/libxml2/HTMLparser.c:4203,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:4200,1
    - Dst: IS_ASCII_LETTER
      Src: /src/libxml2/HTMLparser.c:4206,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:4191,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:4192,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:4192,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:4193,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:4193,1
    - Dst: htmlParseComment
      Src: /src/libxml2/HTMLparser.c:4198,1
    - Dst: UPP
      Src: /src/libxml2/HTMLparser.c:4194,1
    - Dst: SKIP
      Src: /src/libxml2/HTMLparser.c:4213,1
    - Dst: htmlParseCharData
      Src: /src/libxml2/HTMLparser.c:4216,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 73
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - htmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 4225
      start: 4174
    functionDepth: 0
    functionLinenumber: 4174
    functionLinenumberEnd: 4225
    functionName: htmlParseContent
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - NXT
    - htmlParseEndTag
    - htmlParseDocTypeDecl
    - PARSER_STOPPED
    - htmlAutoCloseOnEnd
    - htmlStartCharData
    - IS_ASCII_LETTER
    - UPP
    - SKIP
    - htmlParseComment
    - htmlParseElementInternal
    - htmlParseCharData
    linkageType: ''
    returnType: void
    signature: 'static void htmlParseContent(htmlParserCtxtPtr ctxt) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htmlCtxtReset
      Src: /src/libxml2/HTMLparser.c:6018,1
    - Dst: htmlCtxtUseOptions
      Src: /src/libxml2/HTMLparser.c:6019,1
    - Dst: xmlCtxtNewInputFromIO
      Src: /src/libxml2/HTMLparser.c:6021,1
    - Dst: htmlCtxtParseDocument
      Src: /src/libxml2/HTMLparser.c:6026,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 7
    argNames:
    - ctxt
    - ioread
    - ioclose
    - ioctx
    - URL
    - encoding
    - options
    argTypes:
    - xmlParserCtxt*
    - xmlInputReadCallback
    - xmlInputCloseCallback
    - void*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 6027
      start: 6007
    functionDepth: 0
    functionLinenumber: 6007
    functionLinenumberEnd: 6027
    functionName: htmlCtxtReadIO
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - htmlCtxtUseOptions
    - xmlCtxtNewInputFromIO
    - htmlCtxtReset
    - htmlCtxtParseDocument
    linkageType: ''
    returnType: xmlDoc*
    signature: "xmlDoc *htmlCtxtReadIO(xmlParserCtxt *ctxt, xmlInputReadCallback ioread,
      xmlInputCloseCallback ioclose, void *ioctx,\t const char *URL, const char *encoding,
      int options) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - htmlElemDesc*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 5453
      start: 5449
    functionDepth: 0
    functionLinenumber: 5449
    functionLinenumberEnd: 5453
    functionName: htmlElementAllowedHere
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int htmlElementAllowedHere(const htmlElemDesc* parent ATTRIBUTE_UNUSED,
      const xmlChar* elt ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/HTMLparser.c:1282,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1286
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1286
    functionName: htmlGetEndPriority
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: 'static int htmlGetEndPriority (const xmlChar *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - htmlParserCtxt*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 2860
      start: 2856
    functionDepth: 0
    functionLinenumber: 2856
    functionLinenumberEnd: 2860
    functionName: htmlParseEntityRef
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: htmlEntityDesc*
    signature: 'const htmlEntityDesc *htmlParseEntityRef(htmlParserCtxt *ctxt ATTRIBUTE_UNUSED,
      const xmlChar **str ATTRIBUTE_UNUSED) '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLparser.c:4796,1
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLparser.c:4824,1
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLparser.c:4801,1
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLparser.c:4808,1
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLparser.c:4815,1
    - Dst: IS_WS_HTML
      Src: /src/libxml2/HTMLparser.c:4839,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 59
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 4854
      start: 4765
    functionDepth: 0
    functionLinenumber: 4765
    functionLinenumberEnd: 4854
    functionName: htmlParseLookupGt
    functionSourceFile: /src/libxml2/HTMLparser.c
    functionUses: []
    functionsReached:
    - IS_WS_HTML
    linkageType: ''
    returnType: int
    signature: 'static int htmlParseLookupGt(xmlParserCtxtPtr ctxt) '
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetPredefinedEntity
      Src: /src/libxml2/entities.c:210,1
    - Dst: xmlHashCreateDict
      Src: /src/libxml2/entities.c:254,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/entities.c:236,1
    - Dst: xmlHashCreateDict
      Src: /src/libxml2/entities.c:245,1
    - Dst: xmlStrcasecmp
      Src: /src/libxml2/entities.c:229,1
    - Dst: xmlCreateEntity
      Src: /src/libxml2/entities.c:263,1
    - Dst: xmlHashAdd
      Src: /src/libxml2/entities.c:267,1
    - Dst: xmlFreeEntity
      Src: /src/libxml2/entities.c:269,1
    - Dst: xmlFreeEntity
      Src: /src/libxml2/entities.c:275,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 90
    argCount: 8
    argNames:
    - doc
    - extSubset
    - name
    - type
    - publicId
    - systemId
    - content
    - out
    argTypes:
    - xmlDoc*
    - int
    - xmlChar*
    - int
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlEntity**
    constantsTouched: []
    func_position:
      end: 295
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 295
    functionName: xmlAddEntity
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlStrcasecmp
    - xmlHashAdd
    - xmlCreateEntity
    - xmlStrEqual
    - xmlFreeEntity
    - xmlHashCreateDict
    - xmlGetPredefinedEntity
    linkageType: ''
    returnType: int
    signature: "int xmlAddEntity(xmlDoc *doc, int extSubset, const xmlChar *name,
      int type,\t const xmlChar *publicId, const xmlChar *systemId,\t const xmlChar
      *content, xmlEntity **out) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlAddEntity
      Src: /src/libxml2/entities.c:350,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 6
    argNames:
    - doc
    - name
    - type
    - publicId
    - systemId
    - content
    argTypes:
    - xmlDoc*
    - xmlChar*
    - int
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 352
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 352
    functionName: xmlAddDtdEntity
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlAddEntity
    linkageType: ''
    returnType: xmlEntity*
    signature: "xmlEntity *xmlAddDtdEntity(xmlDoc *doc, const xmlChar *name, int type,\t
      const xmlChar *publicId, const xmlChar *systemId,\t\tconst xmlChar *content) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlAddDocEntity
      Src: /src/libxml2/entities.c:398,1
    - Dst: xmlCreateEntity
      Src: /src/libxml2/entities.c:402,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 8
    argCount: 6
    argNames:
    - doc
    - name
    - type
    - publicId
    - systemId
    - content
    argTypes:
    - xmlDoc*
    - xmlChar*
    - int
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 403
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 403
    functionName: xmlNewEntity
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlCreateEntity
    - xmlAddDocEntity
    linkageType: ''
    returnType: xmlEntity*
    signature: "xmlEntity *xmlNewEntity(xmlDoc *doc, const xmlChar *name, int type,\t
      const xmlChar *publicId, const xmlChar *systemId,\t const xmlChar *content) "
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetEntityFromTable
      Src: /src/libxml2/entities.c:481,1
    - Dst: xmlGetPredefinedEntity
      Src: /src/libxml2/entities.c:495,1
    - Dst: xmlGetEntityFromTable
      Src: /src/libxml2/entities.c:489,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - doc
    - name
    argTypes:
    - xmlDoc*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 496
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 496
    functionName: xmlGetDocEntity
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlGetPredefinedEntity
    - xmlGetEntityFromTable
    linkageType: ''
    returnType: xmlEntity*
    signature: 'xmlEntity *xmlGetDocEntity(const xmlDoc *doc, const xmlChar *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveToBuffer
      Src: /src/libxml2/entities.c:677,1
    - Dst: xmlSaveFinish
      Src: /src/libxml2/entities.c:679,1
    - Dst: xmlSaveTree
      Src: /src/libxml2/entities.c:678,1
    - Dst: xmlFree
      Src: /src/libxml2/entities.c:680,1
    - Dst: xmlBufferDetach
      Src: /src/libxml2/entities.c:680,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - ent
    argTypes:
    - xmlBuffer*
    - xmlEntity*
    constantsTouched: []
    func_position:
      end: 681
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 681
    functionName: xmlDumpEntityDecl
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlBufferDetach
    - xmlSaveFinish
    - xmlSaveToBuffer
    - xmlSaveTree
    linkageType: ''
    returnType: void
    signature: 'void xmlDumpEntityDecl(xmlBuffer *buf, xmlEntity *ent) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetEntityFromTable
      Src: /src/libxml2/entities.c:460,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - doc
    - name
    argTypes:
    - xmlDoc*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 463
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 463
    functionName: xmlGetDtdEntity
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlGetEntityFromTable
    linkageType: ''
    returnType: xmlEntity*
    signature: 'xmlEntity *xmlGetDtdEntity(xmlDoc *doc, const xmlChar *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveToBuffer
      Src: /src/libxml2/entities.c:713,1
    - Dst: xmlSaveFinish
      Src: /src/libxml2/entities.c:715,1
    - Dst: xmlHashScan
      Src: /src/libxml2/entities.c:714,1
    - Dst: xmlBufferDetach
      Src: /src/libxml2/entities.c:716,1
    - Dst: xmlFree
      Src: /src/libxml2/entities.c:716,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - table
    argTypes:
    - xmlBuffer*
    - xmlEntitiesTable*
    constantsTouched: []
    func_position:
      end: 717
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 717
    functionName: xmlDumpEntitiesTable
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlBufferDetach
    - xmlSaveFinish
    - xmlHashScan
    - xmlSaveToBuffer
    linkageType: ''
    returnType: void
    signature: 'void xmlDumpEntitiesTable(xmlBuffer *buf, xmlEntitiesTable *table) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/entities.c:308,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/entities.c:316,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/entities.c:322,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/entities.c:312,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/entities.c:318,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 329
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 329
    functionName: xmlGetPredefinedEntity
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: xmlEntity*
    signature: 'xmlEntity *xmlGetPredefinedEntity(const xmlChar *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlAddEntity
      Src: /src/libxml2/entities.c:373,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 6
    argNames:
    - doc
    - name
    - type
    - publicId
    - systemId
    - content
    argTypes:
    - xmlDoc*
    - xmlChar*
    - int
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 375
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 375
    functionName: xmlAddDocEntity
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlAddEntity
    linkageType: ''
    returnType: xmlEntity*
    signature: "xmlEntity *xmlAddDocEntity(xmlDoc *doc, const xmlChar *name, int type,\t
      const xmlChar *publicId, const xmlChar *systemId,\t const xmlChar *content) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup
      Src: /src/libxml2/entities.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - table
    - name
    argTypes:
    - xmlEntitiesTablePtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: xmlGetEntityFromTable
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlHashLookup
    linkageType: ''
    returnType: xmlEntityPtr
    signature: 'static xmlEntityPtr xmlGetEntityFromTable(xmlEntitiesTablePtr table,
      const xmlChar *name) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlEscapeText
      Src: /src/libxml2/entities.c:531,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 2
    argNames:
    - doc
    - input
    argTypes:
    - xmlDoc*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 532
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 532
    functionName: xmlEncodeEntitiesReentrant
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlEscapeText
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlEncodeEntitiesReentrant(xmlDoc *doc, const xmlChar *input) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveTree
      Src: /src/libxml2/entities.c:694,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - ent
    - save
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 695
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 695
    functionName: xmlDumpEntityDeclScan
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlSaveTree
    linkageType: ''
    returnType: void
    signature: 'static void xmlDumpEntityDeclScan(void *ent, void *save, const xmlChar
      *name ATTRIBUTE_UNUSED) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeNodeList
      Src: /src/libxml2/entities.c:95,1
    - Dst: xmlFree
      Src: /src/libxml2/entities.c:98,1
    - Dst: xmlFree
      Src: /src/libxml2/entities.c:102,1
    - Dst: xmlDictOwns
      Src: /src/libxml2/entities.c:97,1
    - Dst: xmlFree
      Src: /src/libxml2/entities.c:100,1
    - Dst: xmlFree
      Src: /src/libxml2/entities.c:104,1
    - Dst: xmlFree
      Src: /src/libxml2/entities.c:106,1
    - Dst: xmlFree
      Src: /src/libxml2/entities.c:108,1
    - Dst: xmlFree
      Src: /src/libxml2/entities.c:109,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 1
    argNames:
    - entity
    argTypes:
    - xmlEntity*
    constantsTouched: []
    func_position:
      end: 110
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 110
    functionName: xmlFreeEntity
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDictOwns
    - xmlFreeNodeList
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeEntity(xmlEntity *entity) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxml2/entities.c:563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 564
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 564
    functionName: xmlCreateEntitiesTable
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlHashCreate
    linkageType: ''
    returnType: xmlEntitiesTable*
    signature: 'xmlEntitiesTable *xmlCreateEntitiesTable(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashFree
      Src: /src/libxml2/entities.c:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - table
    argTypes:
    - xmlEntitiesTable*
    constantsTouched: []
    func_position:
      end: 588
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 588
    functionName: xmlFreeEntitiesTable
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'void xmlFreeEntitiesTable(xmlEntitiesTable *table) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCopySafe
      Src: /src/libxml2/entities.c:656,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - table
    argTypes:
    - xmlEntitiesTable*
    constantsTouched: []
    func_position:
      end: 657
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 657
    functionName: xmlCopyEntitiesTable
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlHashCopySafe
    linkageType: ''
    returnType: xmlEntitiesTable*
    signature: 'xmlEntitiesTable *xmlCopyEntitiesTable(xmlEntitiesTable *table) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlEscapeText
      Src: /src/libxml2/entities.c:551,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - input
    argTypes:
    - xmlDoc*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 552
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 552
    functionName: xmlEncodeSpecialChars
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlEscapeText
    linkageType: ''
    returnType: xmlChar*
    signature: 'xmlChar *xmlEncodeSpecialChars(const xmlDoc *doc ATTRIBUTE_UNUSED,
      const xmlChar *input) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFreeEntity
      Src: /src/libxml2/entities.c:575,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - entity
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 576
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 576
    functionName: xmlFreeEntityWrapper
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlFreeEntity
    linkageType: ''
    returnType: void
    signature: 'static void xmlFreeEntityWrapper(void *entity, const xmlChar *name
      ATTRIBUTE_UNUSED) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/entities.c:602,1
    - Dst: xmlStrdup
      Src: /src/libxml2/entities.c:620,1
    - Dst: xmlStrdup
      Src: /src/libxml2/entities.c:610,1
    - Dst: xmlStrdup
      Src: /src/libxml2/entities.c:615,1
    - Dst: memset
      Src: /src/libxml2/entities.c:605,1
    - Dst: xmlStrdup
      Src: /src/libxml2/entities.c:625,1
    - Dst: xmlStrdup
      Src: /src/libxml2/entities.c:630,1
    - Dst: xmlStrdup
      Src: /src/libxml2/entities.c:635,1
    - Dst: xmlFreeEntity
      Src: /src/libxml2/entities.c:642,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 38
    argCount: 2
    argNames:
    - payload
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 644
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 644
    functionName: xmlCopyEntity
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlStrdup
    - memset
    - xmlMalloc
    - xmlFreeEntity
    linkageType: ''
    returnType: void*
    signature: 'static void *xmlCopyEntity(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlGetEntityFromTable
      Src: /src/libxml2/entities.c:434,1
    - Dst: xmlGetEntityFromTable
      Src: /src/libxml2/entities.c:440,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 2
    argNames:
    - doc
    - name
    argTypes:
    - xmlDoc*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 443
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 443
    functionName: xmlGetParameterEntity
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlGetEntityFromTable
    linkageType: ''
    returnType: xmlEntity*
    signature: 'xmlEntity *xmlGetParameterEntity(xmlDoc *doc, const xmlChar *name) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/entities.c:121,1
    - Dst: xmlDictLookup
      Src: /src/libxml2/entities.c:135,1
    - Dst: xmlStrdup
      Src: /src/libxml2/entities.c:139,1
    - Dst: xmlStrdup
      Src: /src/libxml2/entities.c:133,1
    - Dst: memset
      Src: /src/libxml2/entities.c:124,1
    - Dst: xmlStrdup
      Src: /src/libxml2/entities.c:144,1
    - Dst: xmlStrlen
      Src: /src/libxml2/entities.c:149,1
    - Dst: xmlStrndup
      Src: /src/libxml2/entities.c:150,1
    - Dst: xmlFreeEntity
      Src: /src/libxml2/entities.c:164,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 6
    argNames:
    - doc
    - name
    - type
    - publicId
    - systemId
    - content
    argTypes:
    - xmlDocPtr
    - xmlChar*
    - int
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 166
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 166
    functionName: xmlCreateEntity
    functionSourceFile: /src/libxml2/entities.c
    functionUses: []
    functionsReached:
    - xmlDictLookup
    - xmlStrndup
    - memset
    - xmlStrlen
    - xmlStrdup
    - xmlFreeEntity
    - xmlMalloc
    linkageType: ''
    returnType: xmlEntityPtr
    signature: "static xmlEntityPtr xmlCreateEntity(xmlDocPtr doc, const xmlChar *name,
      int type,\t const xmlChar *publicId, const xmlChar *systemId,\t const xmlChar
      *content) "
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:1012,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:1021,1
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:1014,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:1018,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1023,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 3
    argNames:
    - user_data
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1025
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1025
    functionName: pythonIgnorableWhitespace
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - Py_XDECREF
    - PyObject_HasAttrString
    linkageType: ''
    returnType: void
    signature: 'static void pythonIgnorableWhitespace(void *user_data, const xmlChar
      * ch, int len) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2841,1
    - Dst: xmlNewNode
      Src: /src/libxml2/python/libxml.c:2843,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:2846,1
    - Dst: libxml_xmlNodePtrWrap
      Src: /src/libxml2/python/libxml.c:2849,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2851
      start: 2834
    functionDepth: 0
    functionLinenumber: 2834
    functionLinenumberEnd: 2851
    functionName: libxml_xmlNewNode
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - libxml_xmlNodePtrWrap
    - xmlNewNode
    - PyArg_ParseTuple
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlNewNode(ATTRIBUTE_UNUSED PyObject * self, PyObject
      * args) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/libxml2/python/libxml.c:3213,1
    - Dst: PyList_Check
      Src: /src/libxml2/python/libxml.c:3215,1
    - Dst: xmlMalloc
      Src: /src/libxml2/python/libxml.c:3227,1
    - Dst: PyErr_SetString
      Src: /src/libxml2/python/libxml.c:3222,1
    - Dst: PyErr_SetString
      Src: /src/libxml2/python/libxml.c:3229,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/libxml2/python/libxml.c:3235,1
    - Dst: PyList_GET_SIZE
      Src: /src/libxml2/python/libxml.c:3236,1
    - Dst: xmlMalloc
      Src: /src/libxml2/python/libxml.c:3238,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:3241,1
    - Dst: PyErr_SetString
      Src: /src/libxml2/python/libxml.c:3242,1
    - Dst: PyList_GET_ITEM
      Src: /src/libxml2/python/libxml.c:3254,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:3252,1
    - Dst: memset
      Src: /src/libxml2/python/libxml.c:3245,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/libxml2/python/libxml.c:3253,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - py_nodeset
    - result
    argTypes:
    - PyObject*
    - xmlNodeSetPtr*
    constantsTouched: []
    func_position:
      end: 3261
      start: 3207
    functionDepth: 0
    functionLinenumber: 3207
    functionLinenumberEnd: 3261
    functionName: PyxmlNodeSet_Convert
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlFree
    - PyList_Check
    - PyList_GET_ITEM
    - memset
    - PyErr_SetString
    - PyxmlNode_Get
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - PyList_GET_SIZE
    - xmlMalloc
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: 'static int PyxmlNodeSet_Convert(PyObject *py_nodeset, xmlNodeSetPtr
      *result) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:1035,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1038,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:1036,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 3
    argNames:
    - user_data
    - target
    - data
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1040
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1040
    functionName: pythonProcessingInstruction
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - Py_XDECREF
    - PyObject_HasAttrString
    linkageType: ''
    returnType: void
    signature: 'static void pythonProcessingInstruction(void *user_data, const xmlChar
      * target, const xmlChar * data) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/libxml2/python/libxml.c:3274,1
    - Dst: PyList_GET_SIZE
      Src: /src/libxml2/python/libxml.c:3290,1
    - Dst: PyErr_SetString
      Src: /src/libxml2/python/libxml.c:3283,1
    - Dst: PyList_Check
      Src: /src/libxml2/python/libxml.c:3276,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/libxml2/python/libxml.c:3289,1
    - Dst: xmlMalloc
      Src: /src/libxml2/python/libxml.c:3292,1
    - Dst: PyErr_SetString
      Src: /src/libxml2/python/libxml.c:3295,1
    - Dst: memset
      Src: /src/libxml2/python/libxml.c:3299,1
    - Dst: PyBytes_AsString
      Src: /src/libxml2/python/libxml.c:3304,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/libxml2/python/libxml.c:3306,1
    - Dst: PyErr_SetString
      Src: /src/libxml2/python/libxml.c:3312,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:3311,1
    - Dst: PyList_GET_ITEM
      Src: /src/libxml2/python/libxml.c:3307,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 2
    argNames:
    - py_strings
    - result
    argTypes:
    - PyObject*
    - xmlChar***
    constantsTouched: []
    func_position:
      end: 3321
      start: 3263
    functionDepth: 0
    functionLinenumber: 3263
    functionLinenumberEnd: 3321
    functionName: PystringSet_Convert
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlFree
    - PyList_Check
    - PyList_GET_ITEM
    - memset
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - PyList_GET_SIZE
    - xmlMalloc
    - PyBytes_AsString
    linkageType: ''
    returnType: int
    signature: 'static int PystringSet_Convert(PyObject *py_strings, xmlChar *** result) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:3429,1
    - Dst: PyFile_Get
      Src: /src/libxml2/python/libxml.c:3435,1
    - Dst: PyFile_Release
      Src: /src/libxml2/python/libxml.c:3477,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/python/libxml.c:3455,1
    - Dst: xmlC14NDocSaveTo
      Src: /src/libxml2/python/libxml.c:3460,1
    - Dst: PyErr_SetString
      Src: /src/libxml2/python/libxml.c:3481,1
    - Dst: PyErr_SetString
      Src: /src/libxml2/python/libxml.c:3431,1
    - Dst: PyErr_SetString
      Src: /src/libxml2/python/libxml.c:3437,1
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:3420,1
    - Dst: PystringSet_Convert
      Src: /src/libxml2/python/libxml.c:3449,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:3452,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/python/libxml.c:3478,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:3474,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:3468,1
    - Dst: xmlOutputBufferCreateFile
      Src: /src/libxml2/python/libxml.c:3440,1
    - Dst: PyxmlNodeSet_Convert
      Src: /src/libxml2/python/libxml.c:3442,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/python/libxml.c:3444,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:3469,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:3453,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:3473,1
    - Dst: PyLong_FromLong
      Src: /src/libxml2/python/libxml.c:3486,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 44
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 3487
      start: 3400
    functionDepth: 0
    functionLinenumber: 3400
    functionLinenumberEnd: 3487
    functionName: libxml_C14NDocSaveTo
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlFree
    - PyxmlNodeSet_Convert
    - xmlOutputBufferClose
    - xmlC14NDocSaveTo
    - PyErr_SetString
    - PystringSet_Convert
    - PyxmlNode_Get
    - PyFile_Get
    - PyArg_ParseTuple
    - PyFile_Release
    - PyLong_FromLong
    - xmlOutputBufferCreateFile
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_C14NDocSaveTo(ATTRIBUTE_UNUSED PyObject *
      self, PyObject * args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:3498,1
    - Dst: Py_BuildValue
      Src: /src/libxml2/python/libxml.c:3501,1
    - Dst: PyCapsule_GetPointer
      Src: /src/libxml2/python/libxml.c:3500,1
    - Dst: PyCapsule_GetName
      Src: /src/libxml2/python/libxml.c:3500,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - args
    argTypes:
    - PyObject*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 3502
      start: 3492
    functionDepth: 0
    functionLinenumber: 3492
    functionLinenumberEnd: 3502
    functionName: libxml_getObjDesc
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_BuildValue
    - PyCapsule_GetName
    - PyArg_ParseTuple
    - PyCapsule_GetPointer
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_getObjDesc(PyObject *self ATTRIBUTE_UNUSED,
      PyObject *args) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:863,1
    - Dst: PyDict_New
      Src: /src/libxml2/python/libxml.c:876,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:873,1
    - Dst: PyDict_New
      Src: /src/libxml2/python/libxml.c:878,1
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:865,1
    - Dst: PY_IMPORT_STRING
      Src: /src/libxml2/python/libxml.c:880,1
    - Dst: PY_IMPORT_STRING
      Src: /src/libxml2/python/libxml.c:883,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:885,1
    - Dst: PyDict_SetItem
      Src: /src/libxml2/python/libxml.c:888,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:889,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:898,1
    - Dst: PyErr_Occurred
      Src: /src/libxml2/python/libxml.c:900,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:903,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:901,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:890,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:895,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:902,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 46
    argCount: 3
    argNames:
    - user_data
    - name
    - attrs
    argTypes:
    - void*
    - xmlChar*
    - xmlChar**
    constantsTouched: []
    func_position:
      end: 905
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 905
    functionName: pythonStartElement
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_XINCREF
    - PyObject_CallMethod
    - PY_IMPORT_STRING
    - PyObject_HasAttrString
    - PyDict_SetItem
    - Py_XDECREF
    - PyErr_Print
    - PyErr_Occurred
    - PyDict_New
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: 'static void pythonStartElement(void *user_data, const xmlChar * name,
      const xmlChar ** attrs) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:1049,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:1050,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1053,1
    - Dst: PyErr_Occurred
      Src: /src/libxml2/python/libxml.c:1051,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:1052,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - user_data
    - value
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1055
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1055
    functionName: pythonComment
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - Py_XDECREF
    - PyErr_Print
    - PyErr_Occurred
    linkageType: ''
    returnType: void
    signature: 'static void pythonComment(void *user_data, const xmlChar * value) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2590,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:2596,1
    - Dst: libxml_xmlNsPtrWrap
      Src: /src/libxml2/python/libxml.c:2600,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:2593,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2602
      start: 2582
    functionDepth: 0
    functionLinenumber: 2582
    functionLinenumberEnd: 2602
    functionName: libxml_xmlNodeGetNsDefs
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - libxml_xmlNsPtrWrap
    - PyArg_ParseTuple
    - Py_INCREF
    - PyxmlNode_Get
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlNodeGetNsDefs(ATTRIBUTE_UNUSED PyObject * self,
      PyObject * args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/python/libxml.c:2959,1
    - Dst: va_end
      Src: /src/libxml2/python/libxml.c:2961,1
    - Dst: libxml_buildMessage
      Src: /src/libxml2/python/libxml.c:2960,1
    - Dst: libxml_xmlRelaxNGValidityGenericWarningFuncHandler
      Src: /src/libxml2/python/libxml.c:2960,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 2962
      start: 2954
    functionDepth: 0
    functionLinenumber: 2954
    functionLinenumberEnd: 2962
    functionName: libxml_xmlRelaxNGValidityWarningFunc
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - va_start
    - libxml_xmlRelaxNGValidityGenericWarningFuncHandler
    - libxml_buildMessage
    - va_end
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlRelaxNGValidityWarningFunc(void *ctx, const
      char *msg, ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:914,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:917,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:915,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:918,1
    - Dst: PyErr_Occurred
      Src: /src/libxml2/python/libxml.c:916,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 920
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 920
    functionName: pythonStartDocument
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - Py_XDECREF
    - PyErr_Print
    - PyErr_Occurred
    linkageType: ''
    returnType: void
    signature: 'static void pythonStartDocument(void *user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:1066,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:1070,1
    - Dst: va_end
      Src: /src/libxml2/python/libxml.c:1069,1
    - Dst: vsnprintf
      Src: /src/libxml2/python/libxml.c:1068,1
    - Dst: va_start
      Src: /src/libxml2/python/libxml.c:1067,1
    - Dst: PyErr_Occurred
      Src: /src/libxml2/python/libxml.c:1071,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:1072,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1073,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - user_data
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 1075
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1075
    functionName: pythonWarning
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - Py_XDECREF
    - va_end
    - PyErr_Print
    - va_start
    - PyErr_Occurred
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: 'static void pythonWarning(void *user_data, const char *msg, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2207,1
    - Dst: PyxmlXPathContext_Get
      Src: /src/libxml2/python/libxml.c:2212,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:2216,1
    - Dst: libxml_xmlXPathObjectPtrConvert
      Src: /src/libxml2/python/libxml.c:2213,1
    - Dst: xmlXPathRegisterVariableNS
      Src: /src/libxml2/python/libxml.c:2215,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2218
      start: 2194
    functionDepth: 0
    functionLinenumber: 2194
    functionLinenumberEnd: 2218
    functionName: libxml_xmlXPathRegisterVariable
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - libxml_xmlXPathObjectPtrConvert
    - xmlXPathRegisterVariableNS
    - PyArg_ParseTuple
    - PyxmlXPathContext_Get
    - libxml_intWrap
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlXPathRegisterVariable(ATTRIBUTE_UNUSED PyObject
      * self, PyObject * args) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2614,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/python/libxml.c:2634,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:2621,1
    - Dst: libxml_xmlNsPtrWrap
      Src: /src/libxml2/python/libxml.c:2649,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:2617,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2651
      start: 2604
    functionDepth: 0
    functionLinenumber: 2604
    functionLinenumberEnd: 2651
    functionName: libxml_xmlNodeRemoveNsDef
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_INCREF
    - PyxmlNode_Get
    - xmlStrEqual
    - PyArg_ParseTuple
    - libxml_xmlNsPtrWrap
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlNodeRemoveNsDef(ATTRIBUTE_UNUSED PyObject * self,
      PyObject * args) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2975,1
    - Dst: xmlMalloc
      Src: /src/libxml2/python/libxml.c:2989,1
    - Dst: xmlRelaxNGGetValidErrors
      Src: /src/libxml2/python/libxml.c:2980,1
    - Dst: PyrelaxNgValidCtxt_Get
      Src: /src/libxml2/python/libxml.c:2979,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:2982,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:2991,1
    - Dst: memset
      Src: /src/libxml2/python/libxml.c:2994,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:2998,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:2999,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:3002,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:3006,1
    - Dst: xmlRelaxNGSetValidErrors
      Src: /src/libxml2/python/libxml.c:3010,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:3003,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:3007,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:3012,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 3014
      start: 2964
    functionDepth: 0
    functionLinenumber: 2964
    functionLinenumberEnd: 3014
    functionName: libxml_xmlRelaxNGSetValidErrors
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_XINCREF
    - xmlRelaxNGSetValidErrors
    - xmlRelaxNGGetValidErrors
    - memset
    - PyrelaxNgValidCtxt_Get
    - Py_XDECREF
    - PyArg_ParseTuple
    - libxml_intWrap
    - xmlMalloc
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_xmlRelaxNGSetValidErrors(ATTRIBUTE_UNUSED
      PyObject * self, PyObject * args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:3022,1
    - Dst: PyrelaxNgValidCtxt_Get
      Src: /src/libxml2/python/libxml.c:3024,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:3030,1
    - Dst: xmlRelaxNGGetValidErrors
      Src: /src/libxml2/python/libxml.c:3026,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:3031,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:3032,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:3033,1
    - Dst: xmlRelaxNGFreeValidCtxt
      Src: /src/libxml2/python/libxml.c:3037,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:3038,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 3040
      start: 3016
    functionDepth: 0
    functionLinenumber: 3016
    functionLinenumberEnd: 3040
    functionName: libxml_xmlRelaxNGFreeValidCtxt
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlRelaxNGFreeValidCtxt
    - xmlRelaxNGGetValidErrors
    - Py_INCREF
    - PyrelaxNgValidCtxt_Get
    - Py_XDECREF
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_xmlRelaxNGFreeValidCtxt(ATTRIBUTE_UNUSED PyObject
      *self, PyObject *args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/libxml2/python/libxml.c:3061,1
    - Dst: libxml_charPtrWrap
      Src: /src/libxml2/python/libxml.c:3062,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:3064,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:3062,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:3063,1
    - Dst: PyObject_CallObject
      Src: /src/libxml2/python/libxml.c:3065,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:3069,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:3071,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:3072,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - str
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 3073
      start: 3052
    functionDepth: 0
    functionLinenumber: 3052
    functionLinenumberEnd: 3073
    functionName: libxml_xmlSchemaValidityGenericErrorFuncHandler
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_XINCREF
    - PyObject_CallObject
    - PyTuple_New
    - PyTuple_SetItem
    - libxml_charPtrWrap
    - Py_XDECREF
    - PyErr_Print
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlSchemaValidityGenericErrorFuncHandler(void *ctx,
      char *str) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2868,1
    - Dst: PyparserCtxt_Get
      Src: /src/libxml2/python/libxml.c:2871,1
    - Dst: xmlCtxtSetCatalogs
      Src: /src/libxml2/python/libxml.c:2875,1
    - Dst: xmlCtxtGetCatalogs
      Src: /src/libxml2/python/libxml.c:2874,1
    - Dst: xmlCatalogAddLocal
      Src: /src/libxml2/python/libxml.c:2875,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:2878,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2880
      start: 2861
    functionDepth: 0
    functionLinenumber: 2861
    functionLinenumberEnd: 2880
    functionName: libxml_addLocalCatalog
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyparserCtxt_Get
    - xmlCatalogAddLocal
    - Py_INCREF
    - xmlCtxtSetCatalogs
    - PyArg_ParseTuple
    - xmlCtxtGetCatalogs
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_addLocalCatalog(ATTRIBUTE_UNUSED PyObject
      * self, PyObject * args) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2005,1
    - Dst: PyxmlTextReader_Get
      Src: /src/libxml2/python/libxml.c:2011,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:2013,1
    - Dst: PyCapsule_CheckExact
      Src: /src/libxml2/python/libxml.c:2007,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:2008,1
    - Dst: xmlTextReaderGetErrorHandler
      Src: /src/libxml2/python/libxml.c:2017,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:2022,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:2023,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:2024,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/python/libxml.c:2032,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:2033,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2035
      start: 1997
    functionDepth: 0
    functionLinenumber: 1997
    functionLinenumberEnd: 2035
    functionName: libxml_xmlFreeTextReader
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlFree
    - Py_INCREF
    - Py_XDECREF
    - xmlTextReaderGetErrorHandler
    - PyxmlTextReader_Get
    - PyCapsule_CheckExact
    - PyArg_ParseTuple
    - xmlFreeTextReader
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_xmlFreeTextReader(ATTRIBUTE_UNUSED PyObject
      *self, PyObject *args) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2233,1
    - Dst: libxml_constxmlCharPtrWrap
      Src: /src/libxml2/python/libxml.c:2261,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:2235,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2264
      start: 2226
    functionDepth: 0
    functionLinenumber: 2226
    functionLinenumberEnd: 2264
    functionName: libxml_name
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - libxml_constxmlCharPtrWrap
    - PyArg_ParseTuple
    - PyxmlNode_Get
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_name(ATTRIBUTE_UNUSED PyObject * self, PyObject
      * args) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2394,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:2396,1
    - Dst: libxml_xmlNodePtrWrap
      Src: /src/libxml2/python/libxml.c:2419,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2421
      start: 2387
    functionDepth: 0
    functionLinenumber: 2387
    functionLinenumberEnd: 2421
    functionName: libxml_children
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - libxml_xmlNodePtrWrap
    - PyArg_ParseTuple
    - PyxmlNode_Get
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_children(ATTRIBUTE_UNUSED PyObject * self,
      PyObject * args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/libxml2/python/libxml.c:1761,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1764,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1763,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1762,1
    - Dst: libxml_charPtrWrap
      Src: /src/libxml2/python/libxml.c:1762,1
    - Dst: PyObject_CallObject
      Src: /src/libxml2/python/libxml.c:1765,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:1769,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1771,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1772,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - severity
    - str
    argTypes:
    - void*
    - ATTRIBUTE_UNUSED
    - char*
    constantsTouched: []
    func_position:
      end: 1773
      start: 1752
    functionDepth: 0
    functionLinenumber: 1752
    functionLinenumberEnd: 1773
    functionName: libxml_xmlValidCtxtGenericWarningFuncHandler
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_XINCREF
    - PyObject_CallObject
    - PyTuple_New
    - PyTuple_SetItem
    - libxml_charPtrWrap
    - Py_XDECREF
    - PyErr_Print
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlValidCtxtGenericWarningFuncHandler(void *ctx,
      ATTRIBUTE_UNUSED int severity, char *str) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2273,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:2275,1
    - Dst: libxml_xmlDocPtrWrap
      Src: /src/libxml2/python/libxml.c:2295,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2297
      start: 2266
    functionDepth: 0
    functionLinenumber: 2266
    functionLinenumberEnd: 2297
    functionName: libxml_doc
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - libxml_xmlDocPtrWrap
    - PyArg_ParseTuple
    - PyxmlNode_Get
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_doc(ATTRIBUTE_UNUSED PyObject * self, PyObject
      * args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - URI
    argTypes:
    - ATTRIBUTE_UNUSED*
    constantsTouched: []
    func_position:
      end: 769
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 769
    functionName: pythonInputMatchCallback
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int pythonInputMatchCallback(ATTRIBUTE_UNUSED const char *URI) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:1086,1
    - Dst: va_start
      Src: /src/libxml2/python/libxml.c:1087,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:1090,1
    - Dst: va_end
      Src: /src/libxml2/python/libxml.c:1089,1
    - Dst: vsnprintf
      Src: /src/libxml2/python/libxml.c:1088,1
    - Dst: PyErr_Occurred
      Src: /src/libxml2/python/libxml.c:1091,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:1092,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1093,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - user_data
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 1095
      start: 1077
    functionDepth: 0
    functionLinenumber: 1077
    functionLinenumberEnd: 1095
    functionName: pythonError
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - Py_XDECREF
    - va_end
    - PyErr_Print
    - va_start
    - PyErr_Occurred
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: 'static void pythonError(void *user_data, const char *msg, ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:1216,1
    - Dst: PY_IMPORT_STRING
      Src: /src/libxml2/python/libxml.c:1224,1
    - Dst: PyList_SetItem
      Src: /src/libxml2/python/libxml.c:1225,1
    - Dst: PyList_New
      Src: /src/libxml2/python/libxml.c:1221,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:1226,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:1229,1
    - Dst: PyErr_Occurred
      Src: /src/libxml2/python/libxml.c:1232,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:1233,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1234,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1235,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 7
    argNames:
    - user_data
    - elem
    - name
    - type
    - def
    - defaultValue
    - tree
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - int
    - int
    - xmlChar*
    - xmlEnumerationPtr
    constantsTouched: []
    func_position:
      end: 1238
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1238
    functionName: pythonAttributeDecl
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PY_IMPORT_STRING
    - PyObject_HasAttrString
    - Py_XDECREF
    - PyList_New
    - PyErr_Print
    - PyErr_Occurred
    - PyList_SetItem
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: 'static void pythonAttributeDecl(void *user_data, const xmlChar * elem,
      const xmlChar * name, int type, int def, const xmlChar * defaultValue, xmlEnumerationPtr
      tree) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:1275,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:1276,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1280,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:1279,1
    - Dst: PyErr_Occurred
      Src: /src/libxml2/python/libxml.c:1278,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 5
    argNames:
    - user_data
    - name
    - publicId
    - systemId
    - notationName
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1282
      start: 1264
    functionDepth: 0
    functionLinenumber: 1264
    functionLinenumberEnd: 1282
    functionName: pythonUnparsedEntityDecl
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - Py_XDECREF
    - PyErr_Print
    - PyErr_Occurred
    linkageType: ''
    returnType: void
    signature: 'static void pythonUnparsedEntityDecl(void *user_data, const xmlChar
      * name, const xmlChar * publicId, const xmlChar * systemId, const xmlChar *
      notationName) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlSetGenericErrorFunc
      Src: /src/libxml2/python/libxml.c:1523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1527
      start: 1520
    functionDepth: 0
    functionLinenumber: 1520
    functionLinenumberEnd: 1527
    functionName: libxml_xmlErrorInitialize
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlSetGenericErrorFunc
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlErrorInitialize(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2306,1
    - Dst: libxml_xmlAttrPtrWrap
      Src: /src/libxml2/python/libxml.c:2313,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:2308,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2315
      start: 2299
    functionDepth: 0
    functionLinenumber: 2299
    functionLinenumberEnd: 2315
    functionName: libxml_properties
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - libxml_xmlAttrPtrWrap
    - PyArg_ParseTuple
    - PyxmlNode_Get
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_properties(ATTRIBUTE_UNUSED PyObject * self,
      PyObject * args) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2430,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:2432,1
    - Dst: libxml_xmlNodePtrWrap
      Src: /src/libxml2/python/libxml.c:2455,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2457
      start: 2423
    functionDepth: 0
    functionLinenumber: 2423
    functionLinenumberEnd: 2457
    functionName: libxml_last
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - libxml_xmlNodePtrWrap
    - PyArg_ParseTuple
    - PyxmlNode_Get
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_last(ATTRIBUTE_UNUSED PyObject * self, PyObject
      * args) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2361,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:2363,1
    - Dst: libxml_xmlNodePtrWrap
      Src: /src/libxml2/python/libxml.c:2383,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2385
      start: 2354
    functionDepth: 0
    functionLinenumber: 2354
    functionLinenumberEnd: 2385
    functionName: libxml_prev
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - libxml_xmlNodePtrWrap
    - PyArg_ParseTuple
    - PyxmlNode_Get
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_prev(ATTRIBUTE_UNUSED PyObject * self, PyObject
      * args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/libxml2/python/libxml.c:776,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:779,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - URI
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 783
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 783
    functionName: pythonInputOpenCallback
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallFunction
    - Py_DECREF
    linkageType: ''
    returnType: void*
    signature: 'static void *pythonInputOpenCallback(const char *URI) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:1106,1
    - Dst: vsnprintf
      Src: /src/libxml2/python/libxml.c:1108,1
    - Dst: va_start
      Src: /src/libxml2/python/libxml.c:1107,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:1110,1
    - Dst: va_end
      Src: /src/libxml2/python/libxml.c:1109,1
    - Dst: PyErr_Occurred
      Src: /src/libxml2/python/libxml.c:1111,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:1112,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1113,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - user_data
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 1115
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1115
    functionName: pythonFatalError
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - Py_XDECREF
    - va_end
    - PyErr_Print
    - va_start
    - PyErr_Occurred
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: 'static void pythonFatalError(void *user_data, const char *msg, ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:1250,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:1259,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:1256,1
    - Dst: PyErr_Occurred
      Src: /src/libxml2/python/libxml.c:1258,1
    - Dst: printf
      Src: /src/libxml2/python/libxml.c:1252,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1260,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 4
    argNames:
    - user_data
    - name
    - type
    - xmlElementContentPtr
    - content
    argTypes:
    - void*
    - xmlChar*
    - int
    - ATTRIBUTE_UNUSED
    constantsTouched: []
    func_position:
      end: 1262
      start: 1240
    functionDepth: 0
    functionLinenumber: 1240
    functionLinenumberEnd: 1262
    functionName: pythonElementDecl
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - Py_XDECREF
    - PyErr_Print
    - PyErr_Occurred
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void pythonElementDecl(void *user_data, const xmlChar * name,
      int type, ATTRIBUTE_UNUSED xmlElementContentPtr content) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:1292,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:1296,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:1293,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1297,1
    - Dst: PyErr_Occurred
      Src: /src/libxml2/python/libxml.c:1295,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 4
    argNames:
    - user_data
    - name
    - ExternalID
    - SystemID
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1299
      start: 1284
    functionDepth: 0
    functionLinenumber: 1284
    functionLinenumberEnd: 1299
    functionName: pythonInternalSubset
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - Py_XDECREF
    - PyErr_Print
    - PyErr_Occurred
    linkageType: ''
    returnType: void
    signature: 'static void pythonInternalSubset(void *user_data, const xmlChar *
      name, const xmlChar * ExternalID, const xmlChar * SystemID) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:1537,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1543,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1546,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1550,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1549,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:1556,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 1558
      start: 1529
    functionDepth: 0
    functionLinenumber: 1529
    functionLinenumberEnd: 1558
    functionName: libxml_xmlRegisterErrorHandler
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_XINCREF
    - libxml_intWrap
    - Py_XDECREF
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_xmlRegisterErrorHandler(ATTRIBUTE_UNUSED PyObject
      * self, PyObject * args) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:1626,1
    - Dst: PyparserCtxt_Get
      Src: /src/libxml2/python/libxml.c:1629,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:1633,1
    - Dst: xmlMalloc
      Src: /src/libxml2/python/libxml.c:1631,1
    - Dst: memset
      Src: /src/libxml2/python/libxml.c:1636,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1643,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1644,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1646,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1647,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/python/libxml.c:1651,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/python/libxml.c:1654,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:1657,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 1659
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1659
    functionName: libxml_xmlParserCtxtSetErrorHandler
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_XINCREF
    - PyparserCtxt_Get
    - memset
    - Py_XDECREF
    - xmlCtxtSetErrorHandler
    - PyArg_ParseTuple
    - libxml_intWrap
    - xmlMalloc
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_xmlParserCtxtSetErrorHandler(ATTRIBUTE_UNUSED
      PyObject *self, PyObject *args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/python/libxml.c:1780,1
    - Dst: libxml_buildMessage
      Src: /src/libxml2/python/libxml.c:1781,1
    - Dst: libxml_xmlValidCtxtGenericErrorFuncHandler
      Src: /src/libxml2/python/libxml.c:1781,1
    - Dst: va_end
      Src: /src/libxml2/python/libxml.c:1782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 1783
      start: 1775
    functionDepth: 0
    functionLinenumber: 1775
    functionLinenumberEnd: 1783
    functionName: libxml_xmlValidCtxtErrorFuncHandler
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - libxml_xmlValidCtxtGenericErrorFuncHandler
    - va_start
    - va_end
    - libxml_buildMessage
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlValidCtxtErrorFuncHandler(void *ctx, const char
      *msg, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:609,1
    - Dst: xmlSaveFormatFileTo
      Src: /src/libxml2/python/libxml.c:614,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:618,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:612,1
    - Dst: PyoutputBuffer_Get
      Src: /src/libxml2/python/libxml.c:611,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - args
    argTypes:
    - PyObject*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 620
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 620
    functionName: libxml_xmlSaveFormatFileTo
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlSaveFormatFileTo
    - PyxmlNode_Get
    - PyoutputBuffer_Get
    - PyArg_ParseTuple
    - libxml_intWrap
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_xmlSaveFormatFileTo(PyObject *self ATTRIBUTE_UNUSED,
      PyObject *args) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:435,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:438,1
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:437,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:436,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:441,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 444
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 444
    functionName: xmlPythonFileClose
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: 'static int xmlPythonFileClose (void * context) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:512,1
    - Dst: fprintf
      Src: /src/libxml2/python/libxml.c:524,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:520,1
    - Dst: fprintf
      Src: /src/libxml2/python/libxml.c:518,1
    - Dst: PyoutputBuffer_Get
      Src: /src/libxml2/python/libxml.c:516,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:526,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:531,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:534,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 536
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 536
    functionName: libxml_outputBufferGetPythonFile
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyoutputBuffer_Get
    - fprintf
    - PyArg_ParseTuple
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_outputBufferGetPythonFile(ATTRIBUTE_UNUSED
      PyObject *self, PyObject *args) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: libxml_xmlParserCtxtPtrWrap
      Src: /src/libxml2/python/libxml.c:691,1
    - Dst: PyObject_CallFunction
      Src: /src/libxml2/python/libxml.c:693,1
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:698,1
    - Dst: xmlAllocParserInputBuffer
      Src: /src/libxml2/python/libxml.c:701,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:695,1
    - Dst: xmlNewIOInputStream
      Src: /src/libxml2/python/libxml.c:706,1
    - Dst: printf
      Src: /src/libxml2/python/libxml.c:712,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:717,1
    - Dst: xmlStrdup
      Src: /src/libxml2/python/libxml.c:719,1
    - Dst: defaultExternalEntityLoader
      Src: /src/libxml2/python/libxml.c:724,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 3
    argNames:
    - URL
    - ID
    - ctxt
    argTypes:
    - char*
    - char*
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 727
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 727
    functionName: pythonExternalEntityLoader
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - defaultExternalEntityLoader
    - PyObject_HasAttrString
    - PyObject_CallFunction
    - Py_XDECREF
    - xmlStrdup
    - xmlNewIOInputStream
    - libxml_xmlParserCtxtPtrWrap
    - xmlAllocParserInputBuffer
    - printf
    - Py_DECREF
    linkageType: ''
    returnType: xmlParserInputPtr
    signature: "static xmlParserInputPtr pythonExternalEntityLoader(const char *URL,
      const char *ID,\t\t\t xmlParserCtxtPtr ctxt) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/python/libxml.c:3113,1
    - Dst: libxml_buildMessage
      Src: /src/libxml2/python/libxml.c:3114,1
    - Dst: va_end
      Src: /src/libxml2/python/libxml.c:3115,1
    - Dst: libxml_xmlSchemaValidityGenericWarningFuncHandler
      Src: /src/libxml2/python/libxml.c:3114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 3116
      start: 3108
    functionDepth: 0
    functionLinenumber: 3108
    functionLinenumberEnd: 3116
    functionName: libxml_xmlSchemaValidityWarningFunc
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - libxml_buildMessage
    - libxml_xmlSchemaValidityGenericWarningFuncHandler
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlSchemaValidityWarningFunc(void *ctx, const char
      *msg, ...) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2324,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:2326,1
    - Dst: libxml_xmlNodePtrWrap
      Src: /src/libxml2/python/libxml.c:2350,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2352
      start: 2317
    functionDepth: 0
    functionLinenumber: 2317
    functionLinenumberEnd: 2352
    functionName: libxml_next
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - libxml_xmlNodePtrWrap
    - PyArg_ParseTuple
    - PyxmlNode_Get
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_next(ATTRIBUTE_UNUSED PyObject * self, PyObject
      * args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:545,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:555,1
    - Dst: PyoutputBuffer_Get
      Src: /src/libxml2/python/libxml.c:547,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:550,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/python/libxml.c:554,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - args
    argTypes:
    - PyObject*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 557
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 557
    functionName: libxml_xmlOutputBufferClose
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferClose
    - Py_INCREF
    - PyoutputBuffer_Get
    - PyArg_ParseTuple
    - libxml_intWrap
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_xmlOutputBufferClose(PyObject *self ATTRIBUTE_UNUSED,
      PyObject *args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:734,1
    - Dst: xmlGetExternalEntityLoader
      Src: /src/libxml2/python/libxml.c:744,1
    - Dst: PyCallable_Check
      Src: /src/libxml2/python/libxml.c:738,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:746,1
    - Dst: PyErr_SetString
      Src: /src/libxml2/python/libxml.c:739,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:748,1
    - Dst: xmlSetExternalEntityLoader
      Src: /src/libxml2/python/libxml.c:749,1
    - Dst: PyLong_FromLong
      Src: /src/libxml2/python/libxml.c:751,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 753
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 753
    functionName: libxml_xmlSetEntityLoader
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_XINCREF
    - xmlSetExternalEntityLoader
    - Py_XDECREF
    - PyErr_SetString
    - xmlGetExternalEntityLoader
    - PyArg_ParseTuple
    - PyCallable_Check
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlSetEntityLoader(ATTRIBUTE_UNUSED PyObject *self,
      PyObject *args) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:3129,1
    - Dst: PySchemaValidCtxt_Get
      Src: /src/libxml2/python/libxml.c:3133,1
    - Dst: xmlMalloc
      Src: /src/libxml2/python/libxml.c:3143,1
    - Dst: xmlSchemaGetValidErrors
      Src: /src/libxml2/python/libxml.c:3134,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:3136,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:3145,1
    - Dst: memset
      Src: /src/libxml2/python/libxml.c:3148,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:3152,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:3153,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:3156,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:3160,1
    - Dst: xmlSchemaSetValidErrors
      Src: /src/libxml2/python/libxml.c:3164,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:3157,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:3161,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:3166,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 3168
      start: 3118
    functionDepth: 0
    functionLinenumber: 3118
    functionLinenumberEnd: 3168
    functionName: libxml_xmlSchemaSetValidErrors
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_XINCREF
    - xmlSchemaSetValidErrors
    - xmlSchemaGetValidErrors
    - memset
    - Py_XDECREF
    - PyArg_ParseTuple
    - PySchemaValidCtxt_Get
    - libxml_intWrap
    - xmlMalloc
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlSchemaSetValidErrors(ATTRIBUTE_UNUSED PyObject
      * self, PyObject * args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:3177,1
    - Dst: xmlSchemaGetValidErrors
      Src: /src/libxml2/python/libxml.c:3181,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:3186,1
    - Dst: PySchemaValidCtxt_Get
      Src: /src/libxml2/python/libxml.c:3179,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:3185,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:3187,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:3188,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/python/libxml.c:3192,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:3193,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 3195
      start: 3170
    functionDepth: 0
    functionLinenumber: 3170
    functionLinenumberEnd: 3195
    functionName: libxml_xmlSchemaFreeValidCtxt
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlSchemaFreeValidCtxt
    - xmlSchemaGetValidErrors
    - Py_INCREF
    - Py_XDECREF
    - PyArg_ParseTuple
    - PySchemaValidCtxt_Get
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_xmlSchemaFreeValidCtxt(ATTRIBUTE_UNUSED PyObject
      * self, PyObject * args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:1440,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:1446,1
    - Dst: htmlNewSAXParserCtxt
      Src: /src/libxml2/python/libxml.c:1452,1
    - Dst: htmlCtxtReadFile
      Src: /src/libxml2/python/libxml.c:1453,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:1450,1
    - Dst: htmlFreeParserCtxt
      Src: /src/libxml2/python/libxml.c:1454,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:1455,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 1457
      start: 1431
    functionDepth: 0
    functionLinenumber: 1431
    functionLinenumberEnd: 1457
    functionName: libxml_htmlSAXParseFile
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_INCREF
    - htmlNewSAXParserCtxt
    - PyArg_ParseTuple
    - htmlFreeParserCtxt
    - htmlCtxtReadFile
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_htmlSAXParseFile(ATTRIBUTE_UNUSED PyObject * self,
      PyObject * args) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PY_IMPORT_STRING_SIZE
      Src: /src/libxml2/python/libxml.c:396,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:399,1
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:401,1
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:398,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:402,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:405,1
    - Dst: printf
      Src: /src/libxml2/python/libxml.c:407,1
    - Dst: PyLong_Check
      Src: /src/libxml2/python/libxml.c:409,1
    - Dst: PyLong_AsLong
      Src: /src/libxml2/python/libxml.c:410,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:411,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:414,1
    - Dst: printf
      Src: /src/libxml2/python/libxml.c:416,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:417,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - context
    - buffer
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 420
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 420
    functionName: xmlPythonFileWrite
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PY_IMPORT_STRING_SIZE
    - PyObject_HasAttrString
    - PyLong_Check
    - PyLong_AsLong
    - printf
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: 'static int xmlPythonFileWrite (void * context, const char * buffer,
      int len) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlAllocParserInputBuffer
      Src: /src/libxml2/python/libxml.c:641,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - file
    - encoding
    argTypes:
    - PyObject*
    - xmlCharEncoding
    constantsTouched: []
    func_position:
      end: 650
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 650
    functionName: xmlParserInputBufferCreatePythonFile
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlAllocParserInputBuffer
    linkageType: ''
    returnType: xmlParserInputBufferPtr
    signature: "static xmlParserInputBufferPtr xmlParserInputBufferCreatePythonFile(PyObject
      *file, \t xmlCharEncoding encoding) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/libxml2/python/libxml.c:2930,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:2931,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:2932,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:2933,1
    - Dst: libxml_charPtrWrap
      Src: /src/libxml2/python/libxml.c:2931,1
    - Dst: PyObject_CallObject
      Src: /src/libxml2/python/libxml.c:2934,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:2938,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:2940,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:2941,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - str
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 2942
      start: 2921
    functionDepth: 0
    functionLinenumber: 2921
    functionLinenumberEnd: 2942
    functionName: libxml_xmlRelaxNGValidityGenericWarningFuncHandler
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_XINCREF
    - PyObject_CallObject
    - PyTuple_New
    - PyTuple_SetItem
    - libxml_charPtrWrap
    - Py_XDECREF
    - PyErr_Print
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlRelaxNGValidityGenericWarningFuncHandler(void
      *ctx, char *str) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:661,1
    - Dst: xmlParseCharEncoding
      Src: /src/libxml2/python/libxml.c:665,1
    - Dst: printf
      Src: /src/libxml2/python/libxml.c:669,1
    - Dst: xmlParserInputBufferCreatePythonFile
      Src: /src/libxml2/python/libxml.c:667,1
    - Dst: libxml_xmlParserInputBufferPtrWrap
      Src: /src/libxml2/python/libxml.c:670,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 672
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 672
    functionName: libxml_xmlCreateInputBuffer
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlParseCharEncoding
    - libxml_xmlParserInputBufferPtrWrap
    - xmlParserInputBufferCreatePythonFile
    - PyArg_ParseTuple
    - printf
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlCreateInputBuffer(ATTRIBUTE_UNUSED PyObject *self,
      PyObject *args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/python/libxml.c:2949,1
    - Dst: va_end
      Src: /src/libxml2/python/libxml.c:2951,1
    - Dst: libxml_xmlRelaxNGValidityGenericErrorFuncHandler
      Src: /src/libxml2/python/libxml.c:2950,1
    - Dst: libxml_buildMessage
      Src: /src/libxml2/python/libxml.c:2950,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 2952
      start: 2944
    functionDepth: 0
    functionLinenumber: 2944
    functionLinenumberEnd: 2952
    functionName: libxml_xmlRelaxNGValidityErrorFunc
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - libxml_xmlRelaxNGValidityGenericErrorFuncHandler
    - va_start
    - va_end
    - libxml_buildMessage
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlRelaxNGValidityErrorFunc(void *ctx, const char
      *msg, ...) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:322,1
    - Dst: PyBytes_Size
      Src: /src/libxml2/python/libxml.c:347,1
    - Dst: printf
      Src: /src/libxml2/python/libxml.c:357,1
    - Dst: PyBytes_AsString
      Src: /src/libxml2/python/libxml.c:348,1
    - Dst: memcpy
      Src: /src/libxml2/python/libxml.c:366,1
    - Dst: PyBytes_AsString
      Src: /src/libxml2/python/libxml.c:328,1
    - Dst: printf
      Src: /src/libxml2/python/libxml.c:324,1
    - Dst: PyUnicode_Check
      Src: /src/libxml2/python/libxml.c:330,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:343,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:358,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:370,1
    - Dst: PyBytes_Check
      Src: /src/libxml2/python/libxml.c:326,1
    - Dst: PyBytes_Size
      Src: /src/libxml2/python/libxml.c:327,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/libxml2/python/libxml.c:336,1
    - Dst: printf
      Src: /src/libxml2/python/libxml.c:344,1
    - Dst: printf
      Src: /src/libxml2/python/libxml.c:352,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:367,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:361,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/libxml2/python/libxml.c:341,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:353,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 3
    argNames:
    - context
    - buffer
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 374
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 374
    functionName: xmlPythonFileRead
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyBytes_Check
    - memcpy
    - PyUnicode_Check
    - PyUnicode_AsUTF8String
    - PyUnicode_AsUTF8AndSize
    - PyBytes_Size
    - printf
    - PyBytes_AsString
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: 'static int xmlPythonFileRead (void * context, char * buffer, int len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:566,1
    - Dst: xmlOutputBufferFlush
      Src: /src/libxml2/python/libxml.c:570,1
    - Dst: PyoutputBuffer_Get
      Src: /src/libxml2/python/libxml.c:568,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:571,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - args
    argTypes:
    - PyObject*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 573
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 573
    functionName: libxml_xmlOutputBufferFlush
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferFlush
    - PyoutputBuffer_Get
    - libxml_intWrap
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_xmlOutputBufferFlush(PyObject *self ATTRIBUTE_UNUSED,
      PyObject *args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:1669,1
    - Dst: PyparserCtxt_Get
      Src: /src/libxml2/python/libxml.c:1672,1
    - Dst: PyTuple_New
      Src: /src/libxml2/python/libxml.c:1673,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1678,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1677,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1679,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1680,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1684,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1685,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1686,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1687,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 1690
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1690
    functionName: libxml_xmlParserCtxtGetErrorHandler
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_XINCREF
    - PyTuple_New
    - PyparserCtxt_Get
    - PyTuple_SetItem
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_xmlParserCtxtGetErrorHandler(ATTRIBUTE_UNUSED
      PyObject *self, PyObject *args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/python/libxml.c:1790,1
    - Dst: va_end
      Src: /src/libxml2/python/libxml.c:1792,1
    - Dst: libxml_buildMessage
      Src: /src/libxml2/python/libxml.c:1791,1
    - Dst: libxml_xmlValidCtxtGenericWarningFuncHandler
      Src: /src/libxml2/python/libxml.c:1791,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 1793
      start: 1785
    functionDepth: 0
    functionLinenumber: 1785
    functionLinenumberEnd: 1793
    functionName: libxml_xmlValidCtxtWarningFuncHandler
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    - libxml_buildMessage
    - libxml_xmlValidCtxtGenericWarningFuncHandler
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlValidCtxtWarningFuncHandler(void *ctx, const
      char *msg, ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2661,1
    - Dst: libxml_xmlNsPtrWrap
      Src: /src/libxml2/python/libxml.c:2672,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:2663,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:2668,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2674
      start: 2653
    functionDepth: 0
    functionLinenumber: 2653
    functionLinenumberEnd: 2674
    functionName: libxml_xmlNodeGetNs
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - libxml_xmlNsPtrWrap
    - PyArg_ParseTuple
    - Py_INCREF
    - PyxmlNode_Get
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlNodeGetNs(ATTRIBUTE_UNUSED PyObject * self, PyObject
      * args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/libxml2/python/libxml.c:3084,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:3087,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:3085,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:3086,1
    - Dst: libxml_charPtrWrap
      Src: /src/libxml2/python/libxml.c:3085,1
    - Dst: PyObject_CallObject
      Src: /src/libxml2/python/libxml.c:3088,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:3092,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:3094,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:3095,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - str
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 3096
      start: 3075
    functionDepth: 0
    functionLinenumber: 3075
    functionLinenumberEnd: 3096
    functionName: libxml_xmlSchemaValidityGenericWarningFuncHandler
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_XINCREF
    - PyObject_CallObject
    - PyTuple_New
    - PyTuple_SetItem
    - libxml_charPtrWrap
    - Py_XDECREF
    - PyErr_Print
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlSchemaValidityGenericWarningFuncHandler(void
      *ctx, char *str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:585,1
    - Dst: PyoutputBuffer_Get
      Src: /src/libxml2/python/libxml.c:587,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:588,1
    - Dst: xmlSaveFileTo
      Src: /src/libxml2/python/libxml.c:590,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:594,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - args
    argTypes:
    - PyObject*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 596
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 596
    functionName: libxml_xmlSaveFileTo
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlSaveFileTo
    - PyxmlNode_Get
    - PyoutputBuffer_Get
    - PyArg_ParseTuple
    - libxml_intWrap
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_xmlSaveFileTo(PyObject *self ATTRIBUTE_UNUSED,
      PyObject *args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:1698,1
    - Dst: PyparserCtxt_Get
      Src: /src/libxml2/python/libxml.c:1700,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1706,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1705,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:1707,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/python/libxml.c:1709,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:1712,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 1714
      start: 1692
    functionDepth: 0
    functionLinenumber: 1692
    functionLinenumberEnd: 1714
    functionName: libxml_xmlFreeParserCtxt
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlFree
    - PyparserCtxt_Get
    - Py_INCREF
    - Py_XDECREF
    - PyArg_ParseTuple
    - xmlFreeParserCtxt
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_xmlFreeParserCtxt(ATTRIBUTE_UNUSED PyObject
      *self, PyObject *args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:1806,1
    - Dst: memset
      Src: /src/libxml2/python/libxml.c:1816,1
    - Dst: xmlMalloc
      Src: /src/libxml2/python/libxml.c:1811,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:1813,1
    - Dst: PyValidCtxt_Get
      Src: /src/libxml2/python/libxml.c:1810,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1820,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1821,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1824,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1825,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1828,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:1836,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1829,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 1838
      start: 1795
    functionDepth: 0
    functionLinenumber: 1795
    functionLinenumberEnd: 1838
    functionName: libxml_xmlSetValidErrors
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_XINCREF
    - memset
    - Py_XDECREF
    - PyArg_ParseTuple
    - PyValidCtxt_Get
    - libxml_intWrap
    - xmlMalloc
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_xmlSetValidErrors(ATTRIBUTE_UNUSED PyObject
      * self, PyObject * args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/libxml2/python/libxml.c:2907,1
    - Dst: libxml_charPtrWrap
      Src: /src/libxml2/python/libxml.c:2908,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:2910,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:2908,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:2909,1
    - Dst: PyObject_CallObject
      Src: /src/libxml2/python/libxml.c:2911,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:2915,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:2917,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:2918,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - str
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 2919
      start: 2898
    functionDepth: 0
    functionLinenumber: 2898
    functionLinenumberEnd: 2919
    functionName: libxml_xmlRelaxNGValidityGenericErrorFuncHandler
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_XINCREF
    - PyObject_CallObject
    - PyTuple_New
    - PyTuple_SetItem
    - libxml_charPtrWrap
    - Py_XDECREF
    - PyErr_Print
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlRelaxNGValidityGenericErrorFuncHandler(void
      *ctx, char *str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/python/libxml.c:3103,1
    - Dst: va_end
      Src: /src/libxml2/python/libxml.c:3105,1
    - Dst: libxml_xmlSchemaValidityGenericErrorFuncHandler
      Src: /src/libxml2/python/libxml.c:3104,1
    - Dst: libxml_buildMessage
      Src: /src/libxml2/python/libxml.c:3104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - msg
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 3106
      start: 3098
    functionDepth: 0
    functionLinenumber: 3098
    functionLinenumberEnd: 3106
    functionName: libxml_xmlSchemaValidityErrorFunc
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - libxml_xmlSchemaValidityGenericErrorFuncHandler
    - va_start
    - va_end
    - libxml_buildMessage
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlSchemaValidityErrorFunc(void *ctx, const char
      *msg, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnFormat
      Src: /src/libxml2/python/libxml.c:3547,1
    - Dst: PyErr_WarnEx
      Src: /src/libxml2/python/libxml.c:3551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - func
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3553
      start: 3544
    functionDepth: 0
    functionLinenumber: 3544
    functionLinenumberEnd: 3553
    functionName: libxml_deprecationWarning
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyErr_WarnFormat
    - PyErr_WarnEx
    linkageType: ''
    returnType: int
    signature: 'int libxml_deprecationWarning(const char *func) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:929,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:932,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:930,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:933,1
    - Dst: PyErr_Occurred
      Src: /src/libxml2/python/libxml.c:931,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:938,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 939
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 939
    functionName: pythonEndDocument
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - Py_XDECREF
    - PyErr_Print
    - PyErr_Occurred
    linkageType: ''
    returnType: void
    signature: 'static void pythonEndDocument(void *user_data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:970,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:974,1
    - Dst: PyErr_Occurred
      Src: /src/libxml2/python/libxml.c:973,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:971,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:975,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - user_data
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 977
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 977
    functionName: pythonReference
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - Py_XDECREF
    - PyErr_Print
    - PyErr_Occurred
    linkageType: ''
    returnType: void
    signature: 'static void pythonReference(void *user_data, const xmlChar * name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/python/libxml.c:1481,1
    - Dst: vsnprintf
      Src: /src/libxml2/python/libxml.c:1485,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - ap
    argTypes:
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 1488
      start: 1475
    functionDepth: 0
    functionLinenumber: 1475
    functionLinenumberEnd: 1488
    functionName: libxml_buildMessage
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlMalloc
    - vsnprintf
    linkageType: ''
    returnType: char*
    signature: 'static char *libxml_buildMessage(const char *msg, va_list ap) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/python/libxml.c:2069,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:2082,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/python/libxml.c:2070,1
    - Dst: PyTuple_New
      Src: /src/libxml2/python/libxml.c:2081,1
    - Dst: printf
      Src: /src/libxml2/python/libxml.c:2075,1
    - Dst: libxml_xmlXPathParserContextPtrWrap
      Src: /src/libxml2/python/libxml.c:2082,1
    - Dst: xmlXPathValuePop
      Src: /src/libxml2/python/libxml.c:2084,1
    - Dst: libxml_xmlXPathObjectPtrWrap
      Src: /src/libxml2/python/libxml.c:2085,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:2086,1
    - Dst: PyObject_CallObject
      Src: /src/libxml2/python/libxml.c:2088,1
    - Dst: libxml_xmlXPathObjectPtrConvert
      Src: /src/libxml2/python/libxml.c:2091,1
    - Dst: xmlXPathValuePush
      Src: /src/libxml2/python/libxml.c:2092,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:2089,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - ctxt
    - nargs
    argTypes:
    - xmlXPathParserContextPtr
    - int
    constantsTouched: []
    func_position:
      end: 2093
      start: 2045
    functionDepth: 0
    functionLinenumber: 2045
    functionLinenumberEnd: 2093
    functionName: libxml_xmlXPathFuncCallback
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallObject
    - PyTuple_New
    - libxml_xmlXPathParserContextPtrWrap
    - PyTuple_SetItem
    - libxml_xmlXPathObjectPtrConvert
    - xmlXPathValuePush
    - xmlStrEqual
    - xmlXPathValuePop
    - libxml_xmlXPathObjectPtrWrap
    - printf
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlXPathFuncCallback(xmlXPathParserContextPtr ctxt,
      int nargs) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/python/libxml.c:2125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2135
      start: 2117
    functionDepth: 0
    functionLinenumber: 2117
    functionLinenumberEnd: 2135
    functionName: libxml_xpathCallbacksInitialize
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xpathCallbacksInitialize(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:3510,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:3515,1
    - Dst: Py_BuildValue
      Src: /src/libxml2/python/libxml.c:3517,1
    - Dst: Py_BuildValue
      Src: /src/libxml2/python/libxml.c:3519,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:3514,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - args
    argTypes:
    - PyObject*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 3521
      start: 3504
    functionDepth: 0
    functionLinenumber: 3504
    functionLinenumberEnd: 3521
    functionName: libxml_compareNodesEqual
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_BuildValue
    - PyArg_ParseTuple
    - PyxmlNode_Get
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_compareNodesEqual(PyObject *self ATTRIBUTE_UNUSED,
      PyObject *args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:1847,1
    - Dst: PyValidCtxt_Get
      Src: /src/libxml2/python/libxml.c:1849,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1854,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1855,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1856,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:1857,1
    - Dst: xmlFreeValidCtxt
      Src: /src/libxml2/python/libxml.c:1860,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:1861,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - args
    argTypes:
    - PyObject*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 1863
      start: 1841
    functionDepth: 0
    functionLinenumber: 1841
    functionLinenumberEnd: 1863
    functionName: libxml_xmlFreeValidCtxt
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlFree
    - Py_INCREF
    - Py_XDECREF
    - PyArg_ParseTuple
    - PyValidCtxt_Get
    - xmlFreeValidCtxt
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_xmlFreeValidCtxt(PyObject *self ATTRIBUTE_UNUSED,
      PyObject *args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/libxml2/python/libxml.c:2109,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/python/libxml.c:2110,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 3
    argNames:
    - ctxt
    - name
    - ns_uri
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 2115
      start: 2095
    functionDepth: 0
    functionLinenumber: 2095
    functionLinenumberEnd: 2115
    functionName: libxml_xmlXPathFuncLookupFunc
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: xmlXPathFunction
    signature: 'static xmlXPathFunction libxml_xmlXPathFuncLookupFunc(void *ctxt,
      const xmlChar * name, const xmlChar * ns_uri) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2150,1
    - Dst: PyxmlXPathContext_Get
      Src: /src/libxml2/python/libxml.c:2155,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:2161,1
    - Dst: libxml_xpathCallbacksInitialize
      Src: /src/libxml2/python/libxml.c:2157,1
    - Dst: xmlXPathRegisterFuncLookup
      Src: /src/libxml2/python/libxml.c:2158,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/python/libxml.c:2166,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/python/libxml.c:2167,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:2168,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:2169,1
    - Dst: xmlRealloc
      Src: /src/libxml2/python/libxml.c:2177,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:2190,1
    - Dst: xmlStrdup
      Src: /src/libxml2/python/libxml.c:2184,1
    - Dst: xmlStrdup
      Src: /src/libxml2/python/libxml.c:2185,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:2182,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2192
      start: 2137
    functionDepth: 0
    functionLinenumber: 2137
    functionLinenumberEnd: 2192
    functionName: libxml_xmlRegisterXPathFunction
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - libxml_xpathCallbacksInitialize
    - Py_XINCREF
    - xmlRealloc
    - xmlXPathRegisterFuncLookup
    - Py_XDECREF
    - xmlStrdup
    - xmlStrEqual
    - PyArg_ParseTuple
    - PyxmlXPathContext_Get
    - libxml_intWrap
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlRegisterXPathFunction(ATTRIBUTE_UNUSED PyObject
      * self, PyObject * args) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:948,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:953,1
    - Dst: PyErr_Occurred
      Src: /src/libxml2/python/libxml.c:951,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:952,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:949,1
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:954,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:955,1
    - Dst: PyErr_Occurred
      Src: /src/libxml2/python/libxml.c:957,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:958,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:959,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - user_data
    - name
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 961
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 961
    functionName: pythonEndElement
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - Py_XDECREF
    - PyErr_Print
    - PyErr_Occurred
    linkageType: ''
    returnType: void
    signature: 'static void pythonEndElement(void *user_data, const xmlChar * name) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:987,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:996,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:993,1
    - Dst: PyErr_Occurred
      Src: /src/libxml2/python/libxml.c:998,1
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:989,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:999,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1000,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 3
    argNames:
    - user_data
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1002
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 1002
    functionName: pythonCharacters
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - Py_XDECREF
    - PyErr_Print
    - PyErr_Occurred
    linkageType: ''
    returnType: void
    signature: 'static void pythonCharacters(void *user_data, const xmlChar * ch,
      int len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libxml2/python/libxml.c:1501,1
    - Dst: va_end
      Src: /src/libxml2/python/libxml.c:1503,1
    - Dst: vfprintf
      Src: /src/libxml2/python/libxml.c:1502,1
    - Dst: vsnprintf
      Src: /src/libxml2/python/libxml.c:1506,1
    - Dst: va_start
      Src: /src/libxml2/python/libxml.c:1505,1
    - Dst: va_end
      Src: /src/libxml2/python/libxml.c:1507,1
    - Dst: PyTuple_New
      Src: /src/libxml2/python/libxml.c:1509,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1510,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1511,1
    - Dst: libxml_charPtrConstWrap
      Src: /src/libxml2/python/libxml.c:1512,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1513,1
    - Dst: PyObject_CallObject
      Src: /src/libxml2/python/libxml.c:1514,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1516,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1515,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - msg
    - '...'
    argTypes:
    - ATTRIBUTE_UNUSED*
    - char*
    constantsTouched: []
    func_position:
      end: 1518
      start: 1490
    functionDepth: 0
    functionLinenumber: 1490
    functionLinenumberEnd: 1518
    functionName: libxml_xmlErrorFuncHandler
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_XINCREF
    - PyObject_CallObject
    - PyTuple_New
    - vfprintf
    - PyTuple_SetItem
    - Py_XDECREF
    - va_end
    - libxml_charPtrConstWrap
    - va_start
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlErrorFuncHandler(ATTRIBUTE_UNUSED void *ctx,
      const char *msg, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:3529,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:3532,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/libxml2/python/libxml.c:3534,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - args
    argTypes:
    - PyObject*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 3536
      start: 3523
    functionDepth: 0
    functionLinenumber: 3523
    functionLinenumberEnd: 3536
    functionName: libxml_nodeHash
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyLong_FromVoidPtr
    - PyArg_ParseTuple
    - PyxmlNode_Get
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_nodeHash(PyObject *self ATTRIBUTE_UNUSED,
      PyObject *args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:1383,1
    - Dst: htmlCreatePushParserCtxt
      Src: /src/libxml2/python/libxml.c:1393,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:1390,1
    - Dst: libxml_xmlParserCtxtPtrWrap
      Src: /src/libxml2/python/libxml.c:1395,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 1397
      start: 1371
    functionDepth: 0
    functionLinenumber: 1371
    functionLinenumberEnd: 1397
    functionName: libxml_htmlCreatePushParser
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - libxml_xmlParserCtxtPtrWrap
    - htmlCreatePushParserCtxt
    - PyArg_ParseTuple
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_htmlCreatePushParser(ATTRIBUTE_UNUSED PyObject *
      self, PyObject * args) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:790,1
    - Dst: PyErr_SetString
      Src: /src/libxml2/python/libxml.c:795,1
    - Dst: PyErr_NoMemory
      Src: /src/libxml2/python/libxml.c:808,1
    - Dst: xmlRegisterInputCallbacks
      Src: /src/libxml2/python/libxml.c:804,1
    - Dst: PyCallable_Check
      Src: /src/libxml2/python/libxml.c:794,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:810,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:813,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 815
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 815
    functionName: libxml_xmlRegisterInputCallback
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_INCREF
    - PyErr_SetString
    - PyErr_NoMemory
    - PyArg_ParseTuple
    - PyCallable_Check
    - xmlRegisterInputCallbacks
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlRegisterInputCallback(ATTRIBUTE_UNUSED PyObject
      *self, PyObject *args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:1355,1
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/python/libxml.c:1365,1
    - Dst: libxml_xmlParserCtxtPtrWrap
      Src: /src/libxml2/python/libxml.c:1366,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:1362,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 1368
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1368
    functionName: libxml_xmlCreatePushParser
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlCreatePushParserCtxt
    - PyArg_ParseTuple
    - Py_INCREF
    - libxml_xmlParserCtxtPtrWrap
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlCreatePushParser(ATTRIBUTE_UNUSED PyObject * self,
      PyObject * args) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/libxml2/python/libxml.c:1599,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1600,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1601,1
    - Dst: libxml_constcharPtrWrap
      Src: /src/libxml2/python/libxml.c:1602,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1602,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1603,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:1603,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1604,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:1605,1
    - Dst: PyObject_CallObject
      Src: /src/libxml2/python/libxml.c:1606,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1612,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1613,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:1610,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - ctx
    - error
    argTypes:
    - void*
    - xmlError*
    constantsTouched: []
    func_position:
      end: 1614
      start: 1574
    functionDepth: 0
    functionLinenumber: 1574
    functionLinenumberEnd: 1614
    functionName: libxml_xmlParserCtxtErrorHandler
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_XINCREF
    - PyObject_CallObject
    - PyTuple_New
    - libxml_constcharPtrWrap
    - PyTuple_SetItem
    - Py_INCREF
    - Py_XDECREF
    - PyErr_Print
    - libxml_intWrap
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlParserCtxtErrorHandler(void *ctx, const xmlError
      *error) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlPopInputCallbacks
      Src: /src/libxml2/python/libxml.c:822,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:840,1
    - Dst: PyErr_SetString
      Src: /src/libxml2/python/libxml.c:836,1
    - Dst: PyErr_SetString
      Src: /src/libxml2/python/libxml.c:831,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:828,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - ATTRIBUTE_UNUSED*
    constantsTouched: []
    func_position:
      end: 842
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 842
    functionName: libxml_xmlUnregisterInputCallback
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlPopInputCallbacks
    - PyErr_SetString
    - Py_INCREF
    - Py_DECREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlUnregisterInputCallback(ATTRIBUTE_UNUSED PyObject
      *self, ATTRIBUTE_UNUSED PyObject *args) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxml2/python/libxml.c:246,1
    - Dst: PyBytes_AsString
      Src: /src/libxml2/python/libxml.c:250,1
    - Dst: PyUnicode_Check
      Src: /src/libxml2/python/libxml.c:252,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:265,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:292,1
    - Dst: PyBytes_Size
      Src: /src/libxml2/python/libxml.c:249,1
    - Dst: PyBytes_Check
      Src: /src/libxml2/python/libxml.c:248,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/libxml2/python/libxml.c:258,1
    - Dst: printf
      Src: /src/libxml2/python/libxml.c:266,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:283,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:289,1
    - Dst: printf
      Src: /src/libxml2/python/libxml.c:274,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/libxml2/python/libxml.c:263,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:275,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:280,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:244,1
    - Dst: printf
      Src: /src/libxml2/python/libxml.c:279,1
    - Dst: PyBytes_AsString
      Src: /src/libxml2/python/libxml.c:270,1
    - Dst: PyBytes_Size
      Src: /src/libxml2/python/libxml.c:269,1
    - Dst: memcpy
      Src: /src/libxml2/python/libxml.c:288,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 3
    argNames:
    - context
    - buffer
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 296
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 296
    functionName: xmlPythonFileReadRaw
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyBytes_Check
    - memcpy
    - PyUnicode_Check
    - PyUnicode_AsUTF8String
    - PyUnicode_AsUTF8AndSize
    - PyBytes_Size
    - printf
    - PyBytes_AsString
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: 'static int xmlPythonFileReadRaw (void * context, char * buffer, int
      len) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:212,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:216,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/libxml.c:214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 218
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 218
    functionName: xmlPythonFileCloseRaw
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: 'static int xmlPythonFileCloseRaw (void * context) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2697,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:2703,1
    - Dst: xmlBufferCreate
      Src: /src/libxml2/python/libxml.c:2730,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:2700,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:2724,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:2732,1
    - Dst: xmlSaveToBuffer
      Src: /src/libxml2/python/libxml.c:2736,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/python/libxml.c:2738,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:2739,1
    - Dst: xmlSaveDoc
      Src: /src/libxml2/python/libxml.c:2743,1
    - Dst: xmlSaveTree
      Src: /src/libxml2/python/libxml.c:2745,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/python/libxml.c:2750,1
    - Dst: libxml_charPtrWrap
      Src: /src/libxml2/python/libxml.c:2751,1
    - Dst: xmlBufferDetach
      Src: /src/libxml2/python/libxml.c:2748,1
    - Dst: xmlSaveClose
      Src: /src/libxml2/python/libxml.c:2746,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2754
      start: 2683
    functionDepth: 0
    functionLinenumber: 2683
    functionLinenumberEnd: 2754
    functionName: libxml_serializeNode
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_INCREF
    - xmlBufferCreate
    - xmlBufferDetach
    - libxml_charPtrWrap
    - xmlSaveToBuffer
    - PyxmlNode_Get
    - xmlSaveClose
    - PyArg_ParseTuple
    - xmlSaveTree
    - xmlSaveDoc
    - xmlBufferFree
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_serializeNode(ATTRIBUTE_UNUSED PyObject *
      self, PyObject * args) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2770,1
    - Dst: PyLong_FromLong
      Src: /src/libxml2/python/libxml.c:2775,1
    - Dst: PyFile_Get
      Src: /src/libxml2/python/libxml.c:2777,1
    - Dst: PyFile_Release
      Src: /src/libxml2/python/libxml.c:2798,1
    - Dst: PyLong_FromLong
      Src: /src/libxml2/python/libxml.c:2799,1
    - Dst: xmlFindCharEncodingHandler
      Src: /src/libxml2/python/libxml.c:2804,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/python/libxml.c:2822,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/python/libxml.c:2815,1
    - Dst: htmlNodeDumpFormatOutput
      Src: /src/libxml2/python/libxml.c:2817,1
    - Dst: PyLong_FromLong
      Src: /src/libxml2/python/libxml.c:2779,1
    - Dst: xmlFindCharEncodingHandler
      Src: /src/libxml2/python/libxml.c:2806,1
    - Dst: PyLong_FromLong
      Src: /src/libxml2/python/libxml.c:2825,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:2773,1
    - Dst: htmlGetMetaEncoding
      Src: /src/libxml2/python/libxml.c:2792,1
    - Dst: xmlFindCharEncodingHandler
      Src: /src/libxml2/python/libxml.c:2796,1
    - Dst: htmlDocContentDumpFormatOutput
      Src: /src/libxml2/python/libxml.c:2814,1
    - Dst: xmlOutputBufferClose
      Src: /src/libxml2/python/libxml.c:2818,1
    - Dst: xmlNodeDumpOutput
      Src: /src/libxml2/python/libxml.c:2821,1
    - Dst: xmlSaveFormatFileTo
      Src: /src/libxml2/python/libxml.c:2811,1
    - Dst: xmlOutputBufferCreateFile
      Src: /src/libxml2/python/libxml.c:2809,1
    - Dst: PyFile_Release
      Src: /src/libxml2/python/libxml.c:2824,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2826
      start: 2756
    functionDepth: 0
    functionLinenumber: 2756
    functionLinenumberEnd: 2826
    functionName: libxml_saveNodeTo
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlSaveFormatFileTo
    - xmlNodeDumpOutput
    - htmlGetMetaEncoding
    - xmlOutputBufferClose
    - htmlNodeDumpFormatOutput
    - xmlFindCharEncodingHandler
    - PyxmlNode_Get
    - htmlDocContentDumpFormatOutput
    - PyFile_Get
    - PyArg_ParseTuple
    - PyFile_Release
    - PyLong_FromLong
    - xmlOutputBufferCreateFile
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_saveNodeTo(ATTRIBUTE_UNUSED PyObject * self,
      PyObject * args) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:3342,1
    - Dst: PyxmlNodeSet_Convert
      Src: /src/libxml2/python/libxml.c:3356,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:3350,1
    - Dst: PyErr_SetString
      Src: /src/libxml2/python/libxml.c:3352,1
    - Dst: PystringSet_Convert
      Src: /src/libxml2/python/libxml.c:3360,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:3363,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:3364,1
    - Dst: xmlC14NDocDumpMemory
      Src: /src/libxml2/python/libxml.c:3370,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:3378,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:3379,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:3383,1
    - Dst: PyErr_SetString
      Src: /src/libxml2/python/libxml.c:3388,1
    - Dst: PY_IMPORT_STRING_SIZE
      Src: /src/libxml2/python/libxml.c:3393,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:3395,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:3384,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 34
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 3398
      start: 3323
    functionDepth: 0
    functionLinenumber: 3323
    functionLinenumberEnd: 3398
    functionName: libxml_C14NDocDumpMemory
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlC14NDocDumpMemory
    - PyxmlNodeSet_Convert
    - PyErr_SetString
    - PystringSet_Convert
    - PyxmlNode_Get
    - PyArg_ParseTuple
    - PY_IMPORT_STRING_SIZE
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_C14NDocDumpMemory(ATTRIBUTE_UNUSED PyObject
      * self, PyObject * args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:1411,1
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/python/libxml.c:1423,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:1416,1
    - Dst: xmlNewSAXParserCtxt
      Src: /src/libxml2/python/libxml.c:1422,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:1420,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/python/libxml.c:1424,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:1425,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 1427
      start: 1402
    functionDepth: 0
    functionLinenumber: 1402
    functionLinenumberEnd: 1427
    functionName: libxml_xmlSAXParseFile
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlCtxtReadFile
    - Py_INCREF
    - xmlNewSAXParserCtxt
    - PyArg_ParseTuple
    - xmlFreeParserCtxt
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlSAXParseFile(ATTRIBUTE_UNUSED PyObject * self,
      PyObject * args) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:1125,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:1131,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:1133,1
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:1127,1
    - Dst: PyErr_Occurred
      Src: /src/libxml2/python/libxml.c:1134,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:1135,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1136,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 3
    argNames:
    - user_data
    - ch
    - len
    argTypes:
    - void*
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 1138
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1138
    functionName: pythonCdataBlock
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - Py_XDECREF
    - PyErr_Print
    - PyErr_Occurred
    linkageType: ''
    returnType: void
    signature: 'static void pythonCdataBlock(void *user_data, const xmlChar * ch,
      int len) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:1167,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1173,1
    - Dst: PyErr_Occurred
      Src: /src/libxml2/python/libxml.c:1171,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:1172,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:1168,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 6
    argNames:
    - user_data
    - name
    - type
    - publicId
    - systemId
    - content
    argTypes:
    - void*
    - xmlChar*
    - int
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1175
      start: 1156
    functionDepth: 0
    functionLinenumber: 1156
    functionLinenumberEnd: 1175
    functionName: pythonEntityDecl
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - Py_XDECREF
    - PyErr_Print
    - PyErr_Occurred
    linkageType: ''
    returnType: void
    signature: 'static void pythonEntityDecl(void *user_data, const xmlChar * name,
      int type, const xmlChar * publicId, const xmlChar * systemId, xmlChar * content) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:1149,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:1150,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1152,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 4
    argNames:
    - user_data
    - name
    - externalID
    - systemID
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1154
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1154
    functionName: pythonExternalSubset
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - Py_XDECREF
    - PyObject_HasAttrString
    linkageType: ''
    returnType: void
    signature: 'static void pythonExternalSubset(void *user_data, const xmlChar *
      name, const xmlChar * externalID, const xmlChar * systemID) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/libxml.c:1189,1
    - Dst: PyErr_Occurred
      Src: /src/libxml2/python/libxml.c:1193,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1195,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:1194,1
    - Dst: PyObject_CallMethod
      Src: /src/libxml2/python/libxml.c:1190,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 4
    argNames:
    - user_data
    - name
    - publicId
    - systemId
    argTypes:
    - void*
    - xmlChar*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 1197
      start: 1179
    functionDepth: 0
    functionLinenumber: 1179
    functionLinenumberEnd: 1197
    functionName: pythonNotationDecl
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - Py_XDECREF
    - PyErr_Print
    - PyErr_Occurred
    linkageType: ''
    returnType: void
    signature: 'static void pythonNotationDecl(void *user_data, const xmlChar * name,
      const xmlChar * publicId, const xmlChar * systemId) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlAllocOutputBuffer
      Src: /src/libxml2/python/libxml.c:464,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - file
    - encoder
    argTypes:
    - PyObject*
    - xmlCharEncodingHandlerPtr
    constantsTouched: []
    func_position:
      end: 473
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 473
    functionName: xmlOutputBufferCreatePythonFile
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlAllocOutputBuffer
    linkageType: ''
    returnType: xmlOutputBufferPtr
    signature: "static xmlOutputBufferPtr xmlOutputBufferCreatePythonFile(PyObject
      *file, \t xmlCharEncodingHandlerPtr encoder) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2466,1
    - Dst: libxml_xmlNodePtrWrap
      Src: /src/libxml2/python/libxml.c:2491,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:2468,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2493
      start: 2459
    functionDepth: 0
    functionLinenumber: 2459
    functionLinenumberEnd: 2493
    functionName: libxml_parent
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - libxml_xmlNodePtrWrap
    - PyArg_ParseTuple
    - PyxmlNode_Get
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_parent(ATTRIBUTE_UNUSED PyObject * self, PyObject
      * args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:484,1
    - Dst: printf
      Src: /src/libxml2/python/libxml.c:492,1
    - Dst: xmlOutputBufferCreatePythonFile
      Src: /src/libxml2/python/libxml.c:490,1
    - Dst: libxml_xmlOutputBufferPtrWrap
      Src: /src/libxml2/python/libxml.c:493,1
    - Dst: xmlFindCharEncodingHandler
      Src: /src/libxml2/python/libxml.c:488,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 495
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 495
    functionName: libxml_xmlCreateOutputBuffer
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlOutputBufferCreatePythonFile
    - xmlFindCharEncodingHandler
    - libxml_xmlOutputBufferPtrWrap
    - PyArg_ParseTuple
    - printf
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlCreateOutputBuffer(ATTRIBUTE_UNUSED PyObject *self,
      PyObject *args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/libxml2/python/libxml.c:1890,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1891,1
    - Dst: libxml_charPtrConstWrap
      Src: /src/libxml2/python/libxml.c:1893,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1893,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1892,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1894,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:1894,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1895,1
    - Dst: libxml_xmlTextReaderLocatorPtrWrap
      Src: /src/libxml2/python/libxml.c:1895,1
    - Dst: PyObject_CallObject
      Src: /src/libxml2/python/libxml.c:1896,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:1900,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1903,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1902,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - arg
    - msg
    - severity
    - locator
    argTypes:
    - void*
    - char*
    - xmlParserSeverities
    - xmlTextReaderLocatorPtr
    constantsTouched: []
    func_position:
      end: 1904
      start: 1880
    functionDepth: 0
    functionLinenumber: 1880
    functionLinenumberEnd: 1904
    functionName: libxml_xmlTextReaderErrorCallback
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_XINCREF
    - PyObject_CallObject
    - PyTuple_New
    - PyTuple_SetItem
    - Py_XDECREF
    - PyErr_Print
    - libxml_charPtrConstWrap
    - libxml_xmlTextReaderLocatorPtrWrap
    - libxml_intWrap
    linkageType: ''
    returnType: void
    signature: "static void libxml_xmlTextReaderErrorCallback(void *arg, \t\t\t\t
      const char *msg,\t\t\t\t xmlParserSeverities severity,\t\t\t\t xmlTextReaderLocatorPtr
      locator) "
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:2502,1
    - Dst: libxml_constxmlCharPtrWrap
      Src: /src/libxml2/python/libxml.c:2573,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/libxml.c:2506,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/libxml.c:2504,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 31
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 2575
      start: 2495
    functionDepth: 0
    functionLinenumber: 2495
    functionLinenumberEnd: 2575
    functionName: libxml_type
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - libxml_constxmlCharPtrWrap
    - PyArg_ParseTuple
    - Py_INCREF
    - PyxmlNode_Get
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_type(ATTRIBUTE_UNUSED PyObject * self, PyObject
      * args) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:1918,1
    - Dst: PyxmlTextReader_Get
      Src: /src/libxml2/python/libxml.c:1920,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1927,1
    - Dst: xmlTextReaderGetErrorHandler
      Src: /src/libxml2/python/libxml.c:1922,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1928,1
    - Dst: xmlFree
      Src: /src/libxml2/python/libxml.c:1929,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:1937,1
    - Dst: xmlTextReaderSetErrorHandler
      Src: /src/libxml2/python/libxml.c:1941,1
    - Dst: xmlMalloc
      Src: /src/libxml2/python/libxml.c:1945,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:1947,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1950,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1952,1
    - Dst: xmlTextReaderSetErrorHandler
      Src: /src/libxml2/python/libxml.c:1954,1
    - Dst: libxml_intWrap
      Src: /src/libxml2/python/libxml.c:1959,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 1961
      start: 1906
    functionDepth: 0
    functionLinenumber: 1906
    functionLinenumberEnd: 1961
    functionName: libxml_xmlTextReaderSetErrorHandler
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlTextReaderSetErrorHandler
    - Py_XINCREF
    - Py_XDECREF
    - xmlTextReaderGetErrorHandler
    - PyxmlTextReader_Get
    - PyArg_ParseTuple
    - libxml_intWrap
    - xmlMalloc
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_xmlTextReaderSetErrorHandler(ATTRIBUTE_UNUSED
      PyObject *self, PyObject *args) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/libxml2/python/libxml.c:1973,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1981,1
    - Dst: PyTuple_New
      Src: /src/libxml2/python/libxml.c:1977,1
    - Dst: PyxmlTextReader_Get
      Src: /src/libxml2/python/libxml.c:1975,1
    - Dst: xmlTextReaderGetErrorHandler
      Src: /src/libxml2/python/libxml.c:1976,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1982,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1983,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1984,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1989,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1990,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1992,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1991,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ATTRIBUTE_UNUSED*
    - PyObject*
    constantsTouched: []
    func_position:
      end: 1995
      start: 1963
    functionDepth: 0
    functionLinenumber: 1963
    functionLinenumberEnd: 1995
    functionName: libxml_xmlTextReaderGetErrorHandler
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_XINCREF
    - PyTuple_New
    - PyTuple_SetItem
    - xmlTextReaderGetErrorHandler
    - PyxmlTextReader_Get
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject*
    signature: 'static PyObject *libxml_xmlTextReaderGetErrorHandler(ATTRIBUTE_UNUSED
      PyObject *self, PyObject *args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/libxml2/python/libxml.c:1738,1
    - Dst: libxml_charPtrWrap
      Src: /src/libxml2/python/libxml.c:1739,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1739,1
    - Dst: Py_XINCREF
      Src: /src/libxml2/python/libxml.c:1741,1
    - Dst: PyTuple_SetItem
      Src: /src/libxml2/python/libxml.c:1740,1
    - Dst: PyObject_CallObject
      Src: /src/libxml2/python/libxml.c:1742,1
    - Dst: PyErr_Print
      Src: /src/libxml2/python/libxml.c:1746,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1748,1
    - Dst: Py_XDECREF
      Src: /src/libxml2/python/libxml.c:1749,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - severity
    - str
    argTypes:
    - void*
    - ATTRIBUTE_UNUSED
    - char*
    constantsTouched: []
    func_position:
      end: 1750
      start: 1729
    functionDepth: 0
    functionLinenumber: 1729
    functionLinenumberEnd: 1750
    functionName: libxml_xmlValidCtxtGenericErrorFuncHandler
    functionSourceFile: /src/libxml2/python/libxml.c
    functionUses: []
    functionsReached:
    - Py_XINCREF
    - PyObject_CallObject
    - PyTuple_New
    - PyTuple_SetItem
    - libxml_charPtrWrap
    - Py_XDECREF
    - PyErr_Print
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlValidCtxtGenericErrorFuncHandler(void *ctx,
      ATTRIBUTE_UNUSED int severity, char *str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:259,1
    - Dst: PY_IMPORT_STRING
      Src: /src/libxml2/python/types.c:262,1
    - Dst: xmlFree
      Src: /src/libxml2/python/types.c:263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 265
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 265
    functionName: libxml_charPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - xmlFree
    - PY_IMPORT_STRING
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_charPtrWrap(char *str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:286,1
    - Dst: xmlFree
      Src: /src/libxml2/python/types.c:290,1
    - Dst: PY_IMPORT_STRING
      Src: /src/libxml2/python/types.c:289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 292
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 292
    functionName: libxml_xmlCharPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - xmlFree
    - PY_IMPORT_STRING
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlCharPtrWrap(xmlChar * str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:418,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - elem
    argTypes:
    - xmlElementPtr
    constantsTouched: []
    func_position:
      end: 423
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 423
    functionName: libxml_xmlElementPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlElementPtrWrap(xmlElementPtr elem) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNodeSetFreeNs
      Src: /src/libxml2/python/types.c:484,1
    - Dst: PyCapsule_GetPointer
      Src: /src/libxml2/python/types.c:486,1
    - Dst: xmlXPathNodeSetFreeNs
      Src: /src/libxml2/python/types.c:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cap
    argTypes:
    - PyObject*
    constantsTouched: []
    func_position:
      end: 488
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 488
    functionName: libxml_xmlXPathDestructNsNode
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_GetPointer
    - xmlXPathNodeSetFreeNs
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlXPathDestructNsNode(PyObject *cap) #endif '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:730,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:734,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - regexp
    argTypes:
    - xmlRegexpPtr
    constantsTouched: []
    func_position:
      end: 737
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 737
    functionName: libxml_xmlRegexpPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlRegexpPtrWrap(xmlRegexpPtr regexp) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:273,1
    - Dst: PY_IMPORT_STRING
      Src: /src/libxml2/python/types.c:276,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 278
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 278
    functionName: libxml_charPtrConstWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PY_IMPORT_STRING
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_charPtrConstWrap(const char *str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:300,1
    - Dst: PY_IMPORT_STRING
      Src: /src/libxml2/python/types.c:303,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 305
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 305
    functionName: libxml_xmlCharPtrConstWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PY_IMPORT_STRING
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlCharPtrConstWrap(const xmlChar * str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:431,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:435,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 437
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 437
    functionName: libxml_xmlParserCtxtPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlParserCtxtPtrWrap(xmlParserCtxtPtr ctxt) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:496,1
    - Dst: PyList_New
      Src: /src/libxml2/python/types.c:504,1
    - Dst: PyList_SetItem
      Src: /src/libxml2/python/types.c:517,1
    - Dst: libxml_xmlNodePtrWrap
      Src: /src/libxml2/python/types.c:517,1
    - Dst: PyList_New
      Src: /src/libxml2/python/types.c:514,1
    - Dst: PyList_New
      Src: /src/libxml2/python/types.c:529,1
    - Dst: PyList_New
      Src: /src/libxml2/python/types.c:534,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:538,1
    - Dst: PyList_SetItem
      Src: /src/libxml2/python/types.c:541,1
    - Dst: PyList_SetItem
      Src: /src/libxml2/python/types.c:545,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/python/types.c:563,1
    - Dst: PyFloat_FromDouble
      Src: /src/libxml2/python/types.c:554,1
    - Dst: PY_IMPORT_STRING
      Src: /src/libxml2/python/types.c:557,1
    - Dst: libxml_xmlNodePtrWrap
      Src: /src/libxml2/python/types.c:545,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:560,1
    - Dst: PY_IMPORT_INT
      Src: /src/libxml2/python/types.c:551,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 58
    argCount: 1
    argNames:
    - obj
    argTypes:
    - xmlXPathObjectPtr
    constantsTouched: []
    func_position:
      end: 565
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 565
    functionName: libxml_xmlXPathObjectPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PY_IMPORT_INT
    - PY_IMPORT_STRING
    - Py_INCREF
    - PyCapsule_New
    - libxml_xmlNodePtrWrap
    - PyList_New
    - xmlXPathFreeObject
    - PyFloat_FromDouble
    - PyList_SetItem
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlXPathObjectPtrWrap(xmlXPathObjectPtr obj) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:808,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:812,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - valid
    argTypes:
    - xmlRelaxNGValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 815
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 815
    functionName: libxml_xmlRelaxNGValidCtxtPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlRelaxNGValidCtxtPtrWrap(xmlRelaxNGValidCtxtPtr
      valid) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:683,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:687,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - catal
    argTypes:
    - xmlCatalogPtr
    constantsTouched: []
    func_position:
      end: 690
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 690
    functionName: libxml_xmlCatalogPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlCatalogPtrWrap(xmlCatalogPtr catal) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:779,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:783,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRelaxNGPtr
    constantsTouched: []
    func_position:
      end: 786
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 786
    functionName: libxml_xmlRelaxNGPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlRelaxNGPtrWrap(xmlRelaxNGPtr ctxt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PY_IMPORT_INT
      Src: /src/libxml2/python/types.c:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 233
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 233
    functionName: libxml_intWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PY_IMPORT_INT
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_intWrap(int val) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_Check
      Src: /src/libxml2/python/types.c:584,1
    - Dst: PyBytes_Check
      Src: /src/libxml2/python/types.c:593,1
    - Dst: PyUnicode_Check
      Src: /src/libxml2/python/types.c:600,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/libxml2/python/types.c:597,1
    - Dst: xmlStrndup
      Src: /src/libxml2/python/types.c:608,1
    - Dst: xmlXPathWrapString
      Src: /src/libxml2/python/types.c:609,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/libxml2/python/types.c:614,1
    - Dst: Py_DECREF
      Src: /src/libxml2/python/types.c:618,1
    - Dst: PyList_Size
      Src: /src/libxml2/python/types.c:631,1
    - Dst: xmlXPathWrapNodeSet
      Src: /src/libxml2/python/types.c:652,1
    - Dst: PyFloat_Check
      Src: /src/libxml2/python/types.c:575,1
    - Dst: PyLong_Check
      Src: /src/libxml2/python/types.c:577,1
    - Dst: xmlXPathWrapString
      Src: /src/libxml2/python/types.c:598,1
    - Dst: xmlXPathNodeSetCreate
      Src: /src/libxml2/python/types.c:629,1
    - Dst: PyCapsule_CheckExact
      Src: /src/libxml2/python/types.c:637,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/types.c:638,1
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/types.c:639,1
    - Dst: PyxmlNode_Get
      Src: /src/libxml2/python/types.c:645,1
    - Dst: xmlXPathNewFloat
      Src: /src/libxml2/python/types.c:579,1
    - Dst: xmlXPathNewFloat
      Src: /src/libxml2/python/types.c:581,1
    - Dst: xmlStrndup
      Src: /src/libxml2/python/types.c:616,1
    - Dst: PyBytes_AS_STRING
      Src: /src/libxml2/python/types.c:616,1
    - Dst: xmlXPathWrapString
      Src: /src/libxml2/python/types.c:620,1
    - Dst: PyList_Check
      Src: /src/libxml2/python/types.c:623,1
    - Dst: PyList_GetItem
      Src: /src/libxml2/python/types.c:632,1
    - Dst: PyObject_HasAttrString
      Src: /src/libxml2/python/types.c:640,1
    - Dst: PyObject_GetAttrString
      Src: /src/libxml2/python/types.c:643,1
    - Dst: xmlXPathNodeSetAdd
      Src: /src/libxml2/python/types.c:649,1
    - Dst: xmlXPathNewFloat
      Src: /src/libxml2/python/types.c:576,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/libxml2/python/types.c:576,1
    - Dst: PyLong_AS_LONG
      Src: /src/libxml2/python/types.c:579,1
    - Dst: PyInt_AS_LONG
      Src: /src/libxml2/python/types.c:581,1
    - Dst: xmlXPathNewBoolean
      Src: /src/libxml2/python/types.c:587,1
    - Dst: xmlXPathNewBoolean
      Src: /src/libxml2/python/types.c:590,1
    - Dst: PyBytes_AS_STRING
      Src: /src/libxml2/python/types.c:596,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/libxml2/python/types.c:607,1
    - Dst: xmlStrndup
      Src: /src/libxml2/python/types.c:596,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/libxml2/python/types.c:617,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 87
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    constantsTouched: []
    func_position:
      end: 656
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 656
    functionName: libxml_xmlXPathObjectPtrConvert
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyBytes_Check
    - PyList_Check
    - xmlStrndup
    - PyLong_Check
    - PyUnicode_AsUTF8String
    - xmlXPathWrapNodeSet
    - PyBool_Check
    - PyLong_AS_LONG
    - xmlXPathNewBoolean
    - PyCapsule_CheckExact
    - xmlXPathNewFloat
    - xmlXPathNodeSetCreate
    - PyUnicode_Check
    - PyObject_GetAttrString
    - PyFloat_Check
    - PyUnicode_AsUTF8AndSize
    - PyList_Size
    - xmlXPathNodeSetAdd
    - xmlXPathWrapString
    - PyObject_HasAttrString
    - PyFloat_AS_DOUBLE
    - PyList_GetItem
    - PyxmlNode_Get
    - PyInt_AS_LONG
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    - Py_DECREF
    linkageType: ''
    returnType: xmlXPathObjectPtr
    signature: 'xmlXPathObjectPtr libxml_xmlXPathObjectPtrConvert(PyObject *obj) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:794,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:798,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlRelaxNGParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 801
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 801
    functionName: libxml_xmlRelaxNGParserCtxtPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlRelaxNGParserCtxtPtrWrap(xmlRelaxNGParserCtxtPtr
      ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:339,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - doc
    argTypes:
    - xmlDocPtr
    constantsTouched: []
    func_position:
      end: 345
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 345
    functionName: libxml_xmlDocPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlDocPtrWrap(xmlDocPtr doc) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:366,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:369,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - uri
    argTypes:
    - xmlURIPtr
    constantsTouched: []
    func_position:
      end: 371
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 371
    functionName: libxml_xmlURIPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlURIPtrWrap(xmlURIPtr uri) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:392,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:395,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - attr
    argTypes:
    - xmlAttrPtr
    constantsTouched: []
    func_position:
      end: 397
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 397
    functionName: libxml_xmlAttrPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlAttrPtrWrap(xmlAttrPtr attr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:699,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:703,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - xmlOutputBufferPtr
    constantsTouched: []
    func_position:
      end: 706
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 706
    functionName: libxml_xmlOutputBufferPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlOutputBufferPtrWrap(xmlOutputBufferPtr buffer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:747,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:751,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReaderPtr
    constantsTouched: []
    func_position:
      end: 754
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 754
    functionName: libxml_xmlTextReaderPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlTextReaderPtrWrap(xmlTextReaderPtr reader) '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/libxml2/python/types.c:83,1
    - Dst: GetModuleHandleW
      Src: /src/libxml2/python/types.c:110,1
    - Dst: _set_invalid_parameter_handler
      Src: /src/libxml2/python/types.c:99,1
    - Dst: _get_osfhandle
      Src: /src/libxml2/python/types.c:105,1
    - Dst: _CrtSetReportMode
      Src: /src/libxml2/python/types.c:102,1
    - Dst: GetProcAddress
      Src: /src/libxml2/python/types.c:115,1
    - Dst: NtQueryInformationFile
      Src: /src/libxml2/python/types.c:118,1
    - Dst: FreeLibrary
      Src: /src/libxml2/python/types.c:151,1
    - Dst: fcntl
      Src: /src/libxml2/python/types.c:174,1
    - Dst: dup
      Src: /src/libxml2/python/types.c:209,1
    - Dst: fdopen
      Src: /src/libxml2/python/types.c:212,1
    - Dst: close
      Src: /src/libxml2/python/types.c:214,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 65
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyObject*
    constantsTouched: []
    func_position:
      end: 218
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 218
    functionName: libxml_PyFileGet
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - NtQueryInformationFile
    - GetModuleHandleW
    - _CrtSetReportMode
    - close
    - dup
    - fdopen
    - _set_invalid_parameter_handler
    - fcntl
    - FreeLibrary
    - PyObject_AsFileDescriptor
    - GetProcAddress
    - _get_osfhandle
    linkageType: ''
    returnType: FILE*
    signature: 'FILE *libxml_PyFileGet(PyObject *f) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:353,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 358
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 358
    functionName: libxml_xmlNodePtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlNodePtrWrap(xmlNodePtr node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:379,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:382,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ns
    argTypes:
    - xmlNsPtr
    constantsTouched: []
    func_position:
      end: 384
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 384
    functionName: libxml_xmlNsPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlNsPtrWrap(xmlNsPtr ns) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:405,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - attr
    argTypes:
    - xmlAttributePtr
    constantsTouched: []
    func_position:
      end: 410
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 410
    functionName: libxml_xmlAttributePtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlAttributePtrWrap(xmlAttributePtr attr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:762,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:766,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - locator
    argTypes:
    - xmlTextReaderLocatorPtr
    constantsTouched: []
    func_position:
      end: 769
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 769
    functionName: libxml_xmlTextReaderLocatorPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlTextReaderLocatorPtrWrap(xmlTextReaderLocatorPtr
      locator) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:856,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:861,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - valid
    argTypes:
    - xmlSchemaValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 865
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 865
    functionName: libxml_xmlSchemaValidCtxtPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlSchemaValidCtxtPtrWrap(xmlSchemaValidCtxtPtr valid) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:882,1
    - Dst: xmlCopyError
      Src: /src/libxml2/python/types.c:891,1
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:887,1
    - Dst: xmlMalloc
      Src: /src/libxml2/python/types.c:885,1
    - Dst: memset
      Src: /src/libxml2/python/types.c:890,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:892,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - error
    argTypes:
    - xmlError*
    constantsTouched: []
    func_position:
      end: 894
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 894
    functionName: libxml_xmlErrorPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - Py_INCREF
    - PyCapsule_New
    - memset
    - xmlCopyError
    - xmlMalloc
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlErrorPtrWrap(const xmlError *error) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/libxml2/python/types.c:870,1
    - Dst: xmlFree
      Src: /src/libxml2/python/types.c:872,1
    - Dst: xmlResetError
      Src: /src/libxml2/python/types.c:871,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cap
    argTypes:
    - PyObject*
    constantsTouched: []
    func_position:
      end: 873
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 873
    functionName: libxml_xmlDestructError
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlResetError
    - PyCapsule_GetPointer
    linkageType: ''
    returnType: void
    signature: 'static void libxml_xmlDestructError(PyObject *cap) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 5
    argNames:
    - expression
    - function
    - file
    - line
    - pReserved
    argTypes:
    - wchar_t*
    - wchar_t*
    - wchar_t*
    - unsigned int
    - uintptr_t
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: myInvalidParameterHandler
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void myInvalidParameterHandler(const wchar_t *expression, const wchar_t
      *function, const wchar_t *file, unsigned int line, uintptr_t pReserved) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/libxml2/python/types.c:240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 242
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 242
    functionName: libxml_longWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_longWrap(long val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:313,1
    - Dst: PY_IMPORT_STRING
      Src: /src/libxml2/python/types.c:316,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 318
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 318
    functionName: libxml_constcharPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PY_IMPORT_STRING
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_constcharPtrWrap(const char *str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:446,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:449,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathContextPtr
    constantsTouched: []
    func_position:
      end: 451
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 451
    functionName: libxml_xmlXPathContextPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlXPathContextPtrWrap(xmlXPathContextPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:665,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - valid
    argTypes:
    - xmlValidCtxtPtr
    constantsTouched: []
    func_position:
      end: 674
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 674
    functionName: libxml_xmlValidCtxtPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlValidCtxtPtrWrap(xmlValidCtxtPtr valid) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:714,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:718,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - xmlParserInputBufferPtr
    constantsTouched: []
    func_position:
      end: 721
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 721
    functionName: libxml_xmlParserInputBufferPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlParserInputBufferPtrWrap(xmlParserInputBufferPtr
      buffer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:825,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:829,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchemaPtr
    constantsTouched: []
    func_position:
      end: 832
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 832
    functionName: libxml_xmlSchemaPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlSchemaPtrWrap(xmlSchemaPtr ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/libxml2/python/types.c:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: libxml_PyFileRelease
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: 'void libxml_PyFileRelease(FILE *f) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/libxml2/python/types.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 251
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 251
    functionName: libxml_doubleWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_doubleWrap(double val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:326,1
    - Dst: PY_IMPORT_STRING
      Src: /src/libxml2/python/types.c:329,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 331
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 331
    functionName: libxml_constxmlCharPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PY_IMPORT_STRING
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_constxmlCharPtrWrap(const xmlChar * str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:459,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:462,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlXPathParserContextPtr
    constantsTouched: []
    func_position:
      end: 464
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 464
    functionName: libxml_xmlXPathParserContextPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlXPathParserContextPtrWrap(xmlXPathParserContextPtr
      ctxt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/libxml2/python/types.c:840,1
    - Dst: PyCapsule_New
      Src: /src/libxml2/python/types.c:844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - xmlSchemaParserCtxtPtr
    constantsTouched: []
    func_position:
      end: 848
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 848
    functionName: libxml_xmlSchemaParserCtxtPtrWrap
    functionSourceFile: /src/libxml2/python/types.c
    functionUses: []
    functionsReached:
    - PyCapsule_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject*
    signature: 'PyObject *libxml_xmlSchemaParserCtxtPtrWrap(xmlSchemaParserCtxtPtr
      ctxt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - capacity
    - elemSize
    - min
    - max
    argTypes:
    - int
    - size_t
    - int
    - int
    constantsTouched: []
    func_position:
      end: 54
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 54
    functionName: xmlGrowCapacity
    functionSourceFile: /src/libxml2/include/private/memory.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: XML_INLINE
    signature: 'static XML_INLINE int xmlGrowCapacity(int capacity, size_t elemSize,
      int min, int max) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewInputFromUrl
      Src: /src/libxml2/fuzz/genSeed.c:68,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/fuzz/genSeed.c:74,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/fuzz/genSeed.c:73,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:83,1
    - Dst: xmlParserInputGrow
      Src: /src/libxml2/fuzz/genSeed.c:81,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/fuzz/genSeed.c:84,1
    - Dst: xmlStrdup
      Src: /src/libxml2/fuzz/genSeed.c:89,1
    - Dst: xmlBufContent
      Src: /src/libxml2/fuzz/genSeed.c:89,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:91,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/fuzz/genSeed.c:92,1
    - Dst: xmlNewInputFromUrl
      Src: /src/libxml2/fuzz/genSeed.c:100,1
    - Dst: xmlFreeInputStream
      Src: /src/libxml2/fuzz/genSeed.c:96,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/fuzz/genSeed.c:98,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 6
    argNames:
    - ATTRIBUTE_UNUSED
    - URL
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - flags
    - out
    argTypes:
    - void*
    - char*
    - char*
    - xmlResourceType
    - xmlParserInputFlags
    - xmlParserInputPtr*
    constantsTouched: []
    func_position:
      end: 101
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 101
    functionName: fuzzResourceRecorder
    functionSourceFile: /src/libxml2/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - xmlBufContent
    - xmlParserInputGrow
    - xmlFreeInputStream
    - xmlNewInputFromUrl
    - xmlHashCreate
    - xmlStrdup
    - xmlHashLookup
    - xmlHashAddEntry
    - fprintf
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'static xmlParserErrors fuzzResourceRecorder(void *data ATTRIBUTE_UNUSED,
      const char *URL, const char *ID ATTRIBUTE_UNUSED, xmlResourceType type ATTRIBUTE_UNUSED,
      xmlParserInputFlags flags, xmlParserInputPtr *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzWriteString
      Src: /src/libxml2/fuzz/genSeed.c:113,1
    - Dst: xmlFree
      Src: /src/libxml2/fuzz/genSeed.c:115,1
    - Dst: xmlFuzzWriteString
      Src: /src/libxml2/fuzz/genSeed.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - entry
    - file
    argTypes:
    - void*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: fuzzRecorderWriteAndFree
    functionSourceFile: /src/libxml2/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlFuzzWriteString
    linkageType: ''
    returnType: void
    signature: 'static void fuzzRecorderWriteAndFree(void *entry, const xmlChar *file) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fuzzRecorderInit
      Src: /src/libxml2/fuzz/genSeed.c:320,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/fuzz/genSeed.c:333,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/fuzz/genSeed.c:337,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/fuzz/genSeed.c:344,1
    - Dst: fuzzRecorderWrite
      Src: /src/libxml2/fuzz/genSeed.c:349,1
    - Dst: xmlFuzzWriteInt
      Src: /src/libxml2/fuzz/genSeed.c:318,1
    - Dst: xmlSchemaSetResourceLoader
      Src: /src/libxml2/fuzz/genSeed.c:324,1
    - Dst: xmlSchemaFree
      Src: /src/libxml2/fuzz/genSeed.c:345,1
    - Dst: xmlSchemaSetParserStructuredErrors
      Src: /src/libxml2/fuzz/genSeed.c:323,1
    - Dst: xmlSchemaNewParserCtxt
      Src: /src/libxml2/fuzz/genSeed.c:322,1
    - Dst: xmlSchemaParse
      Src: /src/libxml2/fuzz/genSeed.c:325,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/fuzz/genSeed.c:334,1
    - Dst: xmlSchemaNewValidCtxt
      Src: /src/libxml2/fuzz/genSeed.c:339,1
    - Dst: xmlSchemaSetValidStructuredErrors
      Src: /src/libxml2/fuzz/genSeed.c:340,1
    - Dst: xmlSchemaFreeParserCtxt
      Src: /src/libxml2/fuzz/genSeed.c:326,1
    - Dst: xmlCtxtSetResourceLoader
      Src: /src/libxml2/fuzz/genSeed.c:335,1
    - Dst: xmlSchemaValidateDoc
      Src: /src/libxml2/fuzz/genSeed.c:341,1
    - Dst: fuzzRecorderWrite
      Src: /src/libxml2/fuzz/genSeed.c:348,1
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/fuzz/genSeed.c:336,1
    - Dst: xmlSchemaFreeValidCtxt
      Src: /src/libxml2/fuzz/genSeed.c:342,1
    - Dst: fuzzRecorderCleanup
      Src: /src/libxml2/fuzz/genSeed.c:350,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - xsdFile
    - xmlFile
    - out
    argTypes:
    - char*
    - char*
    - FILE*
    constantsTouched: []
    func_position:
      end: 353
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 353
    functionName: processSchema
    functionSourceFile: /src/libxml2/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - xmlSchemaValidateDoc
    - xmlFreeDoc
    - xmlSchemaFreeParserCtxt
    - xmlSchemaFreeValidCtxt
    - fuzzRecorderCleanup
    - xmlSchemaSetResourceLoader
    - xmlCtxtSetErrorHandler
    - xmlSchemaFree
    - xmlFreeParserCtxt
    - xmlSchemaParse
    - fuzzRecorderWrite
    - xmlFuzzWriteInt
    - xmlNewParserCtxt
    - xmlSchemaNewValidCtxt
    - xmlCtxtSetResourceLoader
    - xmlSchemaSetParserStructuredErrors
    - xmlSchemaNewParserCtxt
    - fuzzRecorderInit
    - xmlSchemaSetValidStructuredErrors
    - xmlCtxtReadFile
    linkageType: ''
    returnType: int
    signature: 'static int processSchema(const char *xsdFile, const char *xmlFile,
      FILE *out) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libxml2/fuzz/genSeed.c:489,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:497,1
    - Dst: stat
      Src: /src/libxml2/fuzz/genSeed.c:507,1
    - Dst: S_ISREG
      Src: /src/libxml2/fuzz/genSeed.c:507,1
    - Dst: glob
      Src: /src/libxml2/fuzz/genSeed.c:493,1
    - Dst: fopen
      Src: /src/libxml2/fuzz/genSeed.c:510,1
    - Dst: fgets
      Src: /src/libxml2/fuzz/genSeed.c:516,1
    - Dst: snprintf
      Src: /src/libxml2/fuzz/genSeed.c:526,1
    - Dst: fopen
      Src: /src/libxml2/fuzz/genSeed.c:532,1
    - Dst: xmlFuzzWriteInt
      Src: /src/libxml2/fuzz/genSeed.c:539,1
    - Dst: snprintf
      Src: /src/libxml2/fuzz/genSeed.c:547,1
    - Dst: fclose
      Src: /src/libxml2/fuzz/genSeed.c:557,1
    - Dst: xmlFuzzWriteString
      Src: /src/libxml2/fuzz/genSeed.c:551,1
    - Dst: xmlFuzzWriteString
      Src: /src/libxml2/fuzz/genSeed.c:548,1
    - Dst: xmlFuzzWriteString
      Src: /src/libxml2/fuzz/genSeed.c:542,1
    - Dst: globfree
      Src: /src/libxml2/fuzz/genSeed.c:560,1
    - Dst: fclose
      Src: /src/libxml2/fuzz/genSeed.c:553,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 53
    argCount: 6
    argNames:
    - testDir
    - prefix
    - name
    - data
    - subdir
    - xptr
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 563
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 563
    functionName: processXPath
    functionSourceFile: /src/libxml2/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - globfree
    - fclose
    - glob
    - fprintf
    - fopen
    - stat
    - fgets
    - xmlFuzzWriteString
    - xmlFuzzWriteInt
    - snprintf
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: 'static int processXPath(const char *testDir, const char *prefix, const
      char *name, const char *data, const char *subdir, int xptr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashRemoveEntry
      Src: /src/libxml2/fuzz/genSeed.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: fuzzRecorderWrite
    functionSourceFile: /src/libxml2/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - xmlHashRemoveEntry
    linkageType: ''
    returnType: void
    signature: 'static void fuzzRecorderWrite(const char *file) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashFree
      Src: /src/libxml2/fuzz/genSeed.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: fuzzRecorderCleanup
    functionSourceFile: /src/libxml2/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'static void fuzzRecorderCleanup(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashCreate
      Src: /src/libxml2/fuzz/genSeed.c:106,1
    - Dst: xmlGetExternalEntityLoader
      Src: /src/libxml2/fuzz/genSeed.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: fuzzRecorderInit
    functionSourceFile: /src/libxml2/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - xmlHashCreate
    - xmlGetExternalEntityLoader
    linkageType: ''
    returnType: void
    signature: 'static void fuzzRecorderInit(FILE *out) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libxml2/fuzz/genSeed.c:428,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:446,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:462,1
    - Dst: xmlFree
      Src: /src/libxml2/fuzz/genSeed.c:472,1
    - Dst: globfree
      Src: /src/libxml2/fuzz/genSeed.c:475,1
    - Dst: glob
      Src: /src/libxml2/fuzz/genSeed.c:362,1
    - Dst: stat
      Src: /src/libxml2/fuzz/genSeed.c:381,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:366,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/fuzz/genSeed.c:385,1
    - Dst: snprintf
      Src: /src/libxml2/fuzz/genSeed.c:404,1
    - Dst: snprintf
      Src: /src/libxml2/fuzz/genSeed.c:432,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:440,1
    - Dst: processSchema
      Src: /src/libxml2/fuzz/genSeed.c:455,1
    - Dst: chdir
      Src: /src/libxml2/fuzz/genSeed.c:461,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/fuzz/genSeed.c:384,1
    - Dst: S_ISREG
      Src: /src/libxml2/fuzz/genSeed.c:381,1
    - Dst: snprintf
      Src: /src/libxml2/fuzz/genSeed.c:436,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:407,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:452,1
    - Dst: globfree
      Src: /src/libxml2/fuzz/genSeed.c:468,1
    - Dst: fclose
      Src: /src/libxml2/fuzz/genSeed.c:459,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:387,1
    - Dst: dirname
      Src: /src/libxml2/fuzz/genSeed.c:391,1
    - Dst: strlen
      Src: /src/libxml2/fuzz/genSeed.c:392,1
    - Dst: basename
      Src: /src/libxml2/fuzz/genSeed.c:393,1
    - Dst: strlen
      Src: /src/libxml2/fuzz/genSeed.c:394,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:416,1
    - Dst: strlen
      Src: /src/libxml2/fuzz/genSeed.c:396,1
    - Dst: glob
      Src: /src/libxml2/fuzz/genSeed.c:412,1
    - Dst: fopen
      Src: /src/libxml2/fuzz/genSeed.c:444,1
    - Dst: chdir
      Src: /src/libxml2/fuzz/genSeed.c:451,1
    - Dst: xmlFree
      Src: /src/libxml2/fuzz/genSeed.c:471,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 106
    argCount: 1
    argNames:
    - pattern
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 477
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 477
    functionName: processSchemaPattern
    functionSourceFile: /src/libxml2/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - chdir
    - xmlFree
    - globfree
    - dirname
    - glob
    - fprintf
    - fopen
    - stat
    - fclose
    - snprintf
    - processSchema
    - strlen
    - basename
    - S_ISREG
    - xmlCharStrdup
    linkageType: ''
    returnType: int
    signature: 'static int processSchemaPattern(const char *pattern) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: processXPath
      Src: /src/libxml2/fuzz/genSeed.c:573,1
    - Dst: basename
      Src: /src/libxml2/fuzz/genSeed.c:592,1
    - Dst: xmlSlurpFile
      Src: /src/libxml2/fuzz/genSeed.c:587,1
    - Dst: glob
      Src: /src/libxml2/fuzz/genSeed.c:579,1
    - Dst: snprintf
      Src: /src/libxml2/fuzz/genSeed.c:576,1
    - Dst: processXPath
      Src: /src/libxml2/fuzz/genSeed.c:595,1
    - Dst: processXPath
      Src: /src/libxml2/fuzz/genSeed.c:597,1
    - Dst: processXPath
      Src: /src/libxml2/fuzz/genSeed.c:599,1
    - Dst: xmlFree
      Src: /src/libxml2/fuzz/genSeed.c:602,1
    - Dst: globfree
      Src: /src/libxml2/fuzz/genSeed.c:605,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 1
    argNames:
    - testDir
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 608
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 608
    functionName: processXPathDir
    functionSourceFile: /src/libxml2/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - xmlFree
    - globfree
    - glob
    - basename
    - xmlSlurpFile
    - snprintf
    - processXPath
    linkageType: ''
    returnType: int
    signature: 'static int processXPathDir(const char *testDir) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:619,1
    - Dst: strcmp
      Src: /src/libxml2/fuzz/genSeed.c:624,1
    - Dst: strcmp
      Src: /src/libxml2/fuzz/genSeed.c:636,1
    - Dst: strcmp
      Src: /src/libxml2/fuzz/genSeed.c:642,1
    - Dst: strcmp
      Src: /src/libxml2/fuzz/genSeed.c:630,1
    - Dst: strcmp
      Src: /src/libxml2/fuzz/genSeed.c:646,1
    - Dst: strcmp
      Src: /src/libxml2/fuzz/genSeed.c:651,1
    - Dst: strcmp
      Src: /src/libxml2/fuzz/genSeed.c:656,1
    - Dst: strcmp
      Src: /src/libxml2/fuzz/genSeed.c:662,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:667,1
    - Dst: getcwd
      Src: /src/libxml2/fuzz/genSeed.c:672,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:673,1
    - Dst: processArg
      Src: /src/libxml2/fuzz/genSeed.c:679,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 682
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 682
    functionName: main
    functionSourceFile: /src/libxml2/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - getcwd
    - fprintf
    - processArg
    - strcmp
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, const char **argv) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fuzzRecorderInit
      Src: /src/libxml2/fuzz/genSeed.c:174,1
    - Dst: xmlXIncludeNewContext
      Src: /src/libxml2/fuzz/genSeed.c:182,1
    - Dst: xmlFuzzWriteString
      Src: /src/libxml2/fuzz/genSeed.c:170,1
    - Dst: xmlXIncludeProcessNode
      Src: /src/libxml2/fuzz/genSeed.c:187,1
    - Dst: xmlFuzzWriteString
      Src: /src/libxml2/fuzz/genSeed.c:152,1
    - Dst: xmlFuzzWriteString
      Src: /src/libxml2/fuzz/genSeed.c:156,1
    - Dst: xmlFuzzWriteInt
      Src: /src/libxml2/fuzz/genSeed.c:159,1
    - Dst: xmlCtxtSetResourceLoader
      Src: /src/libxml2/fuzz/genSeed.c:178,1
    - Dst: xmlXIncludeSetResourceLoader
      Src: /src/libxml2/fuzz/genSeed.c:185,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/fuzz/genSeed.c:191,1
    - Dst: xmlFuzzWriteInt
      Src: /src/libxml2/fuzz/genSeed.c:143,1
    - Dst: xmlFuzzWriteInt
      Src: /src/libxml2/fuzz/genSeed.c:148,1
    - Dst: xmlFuzzWriteInt
      Src: /src/libxml2/fuzz/genSeed.c:161,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/fuzz/genSeed.c:176,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/fuzz/genSeed.c:177,1
    - Dst: xmlXIncludeSetErrorHandler
      Src: /src/libxml2/fuzz/genSeed.c:184,1
    - Dst: xmlXIncludeSetFlags
      Src: /src/libxml2/fuzz/genSeed.c:186,1
    - Dst: xmlXIncludeFreeContext
      Src: /src/libxml2/fuzz/genSeed.c:188,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/fuzz/genSeed.c:192,1
    - Dst: fuzzRecorderCleanup
      Src: /src/libxml2/fuzz/genSeed.c:195,1
    - Dst: xmlFuzzWriteInt
      Src: /src/libxml2/fuzz/genSeed.c:150,1
    - Dst: xmlFuzzWriteInt
      Src: /src/libxml2/fuzz/genSeed.c:146,1
    - Dst: xmlFuzzWriteInt
      Src: /src/libxml2/fuzz/genSeed.c:144,1
    - Dst: xmlFuzzWriteString
      Src: /src/libxml2/fuzz/genSeed.c:154,1
    - Dst: xmlFuzzWriteInt
      Src: /src/libxml2/fuzz/genSeed.c:165,1
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/fuzz/genSeed.c:179,1
    - Dst: fuzzRecorderWrite
      Src: /src/libxml2/fuzz/genSeed.c:194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 2
    argNames:
    - docFile
    - out
    argTypes:
    - char*
    - FILE*
    constantsTouched: []
    func_position:
      end: 198
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 198
    functionName: processXml
    functionSourceFile: /src/libxml2/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - xmlCtxtReadFile
    - xmlXIncludeNewContext
    - xmlXIncludeSetResourceLoader
    - fuzzRecorderCleanup
    - xmlXIncludeSetErrorHandler
    - xmlCtxtSetErrorHandler
    - xmlCtxtSetResourceLoader
    - xmlFuzzWriteString
    - xmlFreeDoc
    - xmlXIncludeProcessNode
    - xmlFreeParserCtxt
    - fuzzRecorderWrite
    - xmlFuzzWriteInt
    - fuzzRecorderInit
    - xmlXIncludeSetFlags
    - xmlXIncludeFreeContext
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int processXml(const char *docFile, FILE *out) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzWriteInt
      Src: /src/libxml2/fuzz/genSeed.c:209,1
    - Dst: fread
      Src: /src/libxml2/fuzz/genSeed.c:220,1
    - Dst: fopen
      Src: /src/libxml2/fuzz/genSeed.c:214,1
    - Dst: xmlFuzzWriteInt
      Src: /src/libxml2/fuzz/genSeed.c:211,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:216,1
    - Dst: fwrite
      Src: /src/libxml2/fuzz/genSeed.c:222,1
    - Dst: fclose
      Src: /src/libxml2/fuzz/genSeed.c:224,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - docFile
    - out
    argTypes:
    - char*
    - FILE*
    constantsTouched: []
    func_position:
      end: 227
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 227
    functionName: processHtml
    functionSourceFile: /src/libxml2/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - fwrite
    - fclose
    - fopen
    - fread
    - xmlFuzzWriteInt
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int processHtml(const char *docFile, FILE *out) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:243,1
    - Dst: stat
      Src: /src/libxml2/fuzz/genSeed.c:259,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/fuzz/genSeed.c:263,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:265,1
    - Dst: dirname
      Src: /src/libxml2/fuzz/genSeed.c:269,1
    - Dst: basename
      Src: /src/libxml2/fuzz/genSeed.c:270,1
    - Dst: fopen
      Src: /src/libxml2/fuzz/genSeed.c:279,1
    - Dst: fclose
      Src: /src/libxml2/fuzz/genSeed.c:296,1
    - Dst: xmlFree
      Src: /src/libxml2/fuzz/genSeed.c:297,1
    - Dst: S_ISREG
      Src: /src/libxml2/fuzz/genSeed.c:259,1
    - Dst: xmlCharStrdup
      Src: /src/libxml2/fuzz/genSeed.c:262,1
    - Dst: chdir
      Src: /src/libxml2/fuzz/genSeed.c:285,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:281,1
    - Dst: xmlFree
      Src: /src/libxml2/fuzz/genSeed.c:298,1
    - Dst: glob
      Src: /src/libxml2/fuzz/genSeed.c:239,1
    - Dst: snprintf
      Src: /src/libxml2/fuzz/genSeed.c:272,1
    - Dst: chdir
      Src: /src/libxml2/fuzz/genSeed.c:299,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:300,1
    - Dst: globfree
      Src: /src/libxml2/fuzz/genSeed.c:306,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:286,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/genSeed.c:275,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 62
    argCount: 1
    argNames:
    - pattern
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 308
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 308
    functionName: processPattern
    functionSourceFile: /src/libxml2/fuzz/genSeed.c
    functionUses: []
    functionsReached:
    - chdir
    - xmlFree
    - globfree
    - dirname
    - glob
    - fprintf
    - fopen
    - stat
    - fclose
    - snprintf
    - basename
    - S_ISREG
    - xmlCharStrdup
    linkageType: ''
    returnType: int
    signature: 'static int processPattern(const char *pattern) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzTryMalloc
      Src: /src/libxml2/fuzz/fuzz.c:139,1
    - Dst: realloc
      Src: /src/libxml2/fuzz/fuzz.c:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 147
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 147
    functionName: xmlFuzzRealloc
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - realloc
    - xmlFuzzTryMalloc
    linkageType: ''
    returnType: void*
    signature: 'static void *xmlFuzzRealloc(void *ptr, size_t size) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/fuzz/fuzz.c:168,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/fuzz.c:173,1
    - Dst: abort
      Src: /src/libxml2/fuzz/fuzz.c:175,1
    - Dst: abort
      Src: /src/libxml2/fuzz/fuzz.c:170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - func
    - oomReport
    - ioReport
    argTypes:
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 179
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 179
    functionName: xmlFuzzCheckFailureReport
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - abort
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzCheckFailureReport(const char *func, int oomReport, int
      ioReport) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: putc
      Src: /src/libxml2/fuzz/fuzz.c:298,1
    - Dst: putc
      Src: /src/libxml2/fuzz/fuzz.c:302,1
    - Dst: putc
      Src: /src/libxml2/fuzz/fuzz.c:300,1
    - Dst: putc
      Src: /src/libxml2/fuzz/fuzz.c:303,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - out
    - str
    argTypes:
    - FILE*
    - char*
    constantsTouched: []
    func_position:
      end: 304
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 304
    functionName: xmlFuzzWriteString
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - putc
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzWriteString(FILE *out, const char *str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzTryIo
      Src: /src/libxml2/fuzz/fuzz.c:518,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 522
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 522
    functionName: xmlFuzzOutputWrite
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xmlFuzzTryIo
    linkageType: ''
    returnType: int
    signature: 'int xmlFuzzOutputWrite(void *ctxt ATTRIBUTE_UNUSED, const char *buffer
      ATTRIBUTE_UNUSED, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMemSetup
      Src: /src/libxml2/fuzz/fuzz.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: xmlFuzzMemSetup
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xmlMemSetup
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzMemSetup(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzTryIo
      Src: /src/libxml2/fuzz/fuzz.c:526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 530
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 530
    functionName: xmlFuzzOutputClose
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xmlFuzzTryIo
    linkageType: ''
    returnType: int
    signature: 'int xmlFuzzOutputClose(void *ctxt ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t*
    constantsTouched: []
    func_position:
      end: 283
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 283
    functionName: xmlFuzzReadRemaining
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlFuzzReadRemaining(size_t *size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - failurePos
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: xmlFuzzInjectFailure
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzInjectFailure(size_t failurePos) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzReadString
      Src: /src/libxml2/fuzz/fuzz.c:373,1
    - Dst: xmlHashAddEntry
      Src: /src/libxml2/fuzz/fuzz.c:391,1
    - Dst: xmlMalloc
      Src: /src/libxml2/fuzz/fuzz.c:385,1
    - Dst: xmlHashLookup
      Src: /src/libxml2/fuzz/fuzz.c:384,1
    - Dst: xmlFuzzReadString
      Src: /src/libxml2/fuzz/fuzz.c:376,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 404
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 404
    functionName: xmlFuzzReadEntities
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xmlHashAddEntry
    - xmlHashLookup
    - xmlMalloc
    - xmlFuzzReadString
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzReadEntities(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t*
    constantsTouched: []
    func_position:
      end: 428
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 428
    functionName: xmlFuzzMainEntity
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlFuzzMainEntity(size_t *size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t*
    constantsTouched: []
    func_position:
      end: 452
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 452
    functionName: xmlFuzzSecondaryEntity
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlFuzzSecondaryEntity(size_t *size) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/libxml2/fuzz/fuzz.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 103
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 103
    functionName: xmlFuzzTryMalloc
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: 'static int xmlFuzzTryMalloc(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t*
    constantsTouched: []
    func_position:
      end: 356
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 356
    functionName: xmlFuzzReadString
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlFuzzReadString(size_t *size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 414
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 414
    functionName: xmlFuzzMainUrl
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlFuzzMainUrl(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 438
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 438
    functionName: xmlFuzzSecondaryUrl
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *xmlFuzzSecondaryUrl(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - '...'
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: xmlFuzzErrorFunc
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzErrorFunc(void *ctx ATTRIBUTE_UNUSED, const char *msg
      ATTRIBUTE_UNUSED, ...) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/libxml2/fuzz/fuzz.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 119
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 119
    functionName: xmlFuzzTryIo
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: 'static int xmlFuzzTryIo(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - void*
    - xmlError*
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: xmlFuzzSErrorFunc
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzSErrorFunc(void *ctx ATTRIBUTE_UNUSED, const xmlError
      *error ATTRIBUTE_UNUSED) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzTryMalloc
      Src: /src/libxml2/fuzz/fuzz.c:125,1
    - Dst: malloc
      Src: /src/libxml2/fuzz/fuzz.c:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 133
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 133
    functionName: xmlFuzzMalloc
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - malloc
    - xmlFuzzTryMalloc
    linkageType: ''
    returnType: void*
    signature: 'static void *xmlFuzzMalloc(size_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putc
      Src: /src/libxml2/fuzz/fuzz.c:227,1
    - Dst: putc
      Src: /src/libxml2/fuzz/fuzz.c:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - out
    - v
    - size
    argTypes:
    - FILE*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 236
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 236
    functionName: xmlFuzzWriteInt
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - putc
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzWriteInt(FILE *out, size_t v, int size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: xmlFuzzBytesRemaining
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: 'size_t xmlFuzzBytesRemaining(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: xmlFuzzMallocFailed
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int xmlFuzzMallocFailed(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/fuzz/fuzz.c:210,1
    - Dst: xmlHashFree
      Src: /src/libxml2/fuzz/fuzz.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: xmlFuzzDataCleanup
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlHashFree
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzDataCleanup(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 256
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 256
    functionName: xmlFuzzReadInt
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: 'size_t xmlFuzzReadInt(int size) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlHashLookup
      Src: /src/libxml2/fuzz/fuzz.c:468,1
    - Dst: xmlFuzzTryIo
      Src: /src/libxml2/fuzz/fuzz.c:473,1
    - Dst: xmlNewInputFromMemory
      Src: /src/libxml2/fuzz/fuzz.c:476,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 6
    argNames:
    - ATTRIBUTE_UNUSED
    - URL
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    - out
    argTypes:
    - void*
    - char*
    - char*
    - xmlResourceType
    - xmlParserInputFlags
    - xmlParserInputPtr*
    constantsTouched: []
    func_position:
      end: 484
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 484
    functionName: xmlFuzzResourceLoader
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xmlNewInputFromMemory
    - xmlFuzzTryIo
    - xmlHashLookup
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'xmlParserErrors xmlFuzzResourceLoader(void *data ATTRIBUTE_UNUSED,
      const char *URL, const char *ID ATTRIBUTE_UNUSED, xmlResourceType type ATTRIBUTE_UNUSED,
      xmlParserInputFlags flags ATTRIBUTE_UNUSED, xmlParserInputPtr *out) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mutator
      Src: /src/libxml2/fuzz/fuzz.c:587,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 6
    argNames:
    - chunks
    - data
    - size
    - maxSize
    - seed
    - mutator
    argTypes:
    - xmlFuzzChunkDesc*
    - char*
    - size_t
    - size_t
    - unsigned
    - xmlFuzzMutator
    constantsTouched: []
    func_position:
      end: 601
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 601
    functionName: xmlFuzzMutateChunks
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - mutator
    linkageType: ''
    returnType: size_t
    signature: 'size_t xmlFuzzMutateChunks(const xmlFuzzChunkDesc *chunks, char *data,
      size_t size, size_t maxSize, unsigned seed, xmlFuzzMutator mutator) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: xmlFuzzResetFailure
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzResetFailure(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/libxml2/fuzz/fuzz.c:493,1
    - Dst: fread
      Src: /src/libxml2/fuzz/fuzz.c:501,1
    - Dst: S_ISREG
      Src: /src/libxml2/fuzz/fuzz.c:493,1
    - Dst: fopen
      Src: /src/libxml2/fuzz/fuzz.c:496,1
    - Dst: xmlMalloc
      Src: /src/libxml2/fuzz/fuzz.c:499,1
    - Dst: xmlFree
      Src: /src/libxml2/fuzz/fuzz.c:502,1
    - Dst: fclose
      Src: /src/libxml2/fuzz/fuzz.c:510,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 2
    argNames:
    - path
    - sizeRet
    argTypes:
    - char*
    - size_t*
    constantsTouched: []
    func_position:
      end: 513
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 513
    functionName: xmlSlurpFile
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xmlFree
    - fclose
    - fopen
    - stat
    - S_ISREG
    - fread
    - xmlMalloc
    linkageType: ''
    returnType: char*
    signature: 'char *xmlSlurpFile(const char *path, size_t *sizeRet) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/fuzz/fuzz.c:193,1
    - Dst: xmlHashCreate
      Src: /src/libxml2/fuzz/fuzz.c:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 201
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 201
    functionName: xmlFuzzDataInit
    functionSourceFile: /src/libxml2/fuzz/fuzz.c
    functionUses: []
    functionsReached:
    - xmlHashCreate
    - xmlMalloc
    linkageType: ''
    returnType: void
    signature: 'void xmlFuzzDataInit(const char *data, size_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 3
    argNames:
    - data
    - size
    - maxSize
    argTypes:
    - char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: LLVMFuzzerMutate
    functionSourceFile: /src/libxml2/fuzz/testFuzzer.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: 'size_t LLVMFuzzerMutate(char *data, size_t size, size_t maxSize) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: glob
      Src: /src/libxml2/fuzz/testFuzzer.c:170,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/testFuzzer.c:171,1
    - Dst: init
      Src: /src/libxml2/fuzz/testFuzzer.c:176,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/testFuzzer.c:185,1
    - Dst: xmlSlurpFile
      Src: /src/libxml2/fuzz/testFuzzer.c:183,1
    - Dst: fuzz
      Src: /src/libxml2/fuzz/testFuzzer.c:188,1
    - Dst: xmlFree
      Src: /src/libxml2/fuzz/testFuzzer.c:189,1
    - Dst: globfree
      Src: /src/libxml2/fuzz/testFuzzer.c:196,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - init
    - fuzz
    - mutate
    - pattern
    argTypes:
    - initFunc
    - fuzzFunc
    - mutateFunc
    - char*
    constantsTouched: []
    func_position:
      end: 198
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 198
    functionName: testFuzzer
    functionSourceFile: /src/libxml2/fuzz/testFuzzer.c
    functionUses: []
    functionsReached:
    - xmlFree
    - globfree
    - fuzz
    - glob
    - init
    - xmlSlurpFile
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int testFuzzer(initFunc init, fuzzFunc fuzz, mutateFunc mutate,
      const char *pattern) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzReadEntities
      Src: /src/libxml2/fuzz/testFuzzer.c:219,1
    - Dst: strcmp
      Src: /src/libxml2/fuzz/testFuzzer.c:228,1
    - Dst: xmlCtxtReadMemory
      Src: /src/libxml2/fuzz/testFuzzer.c:236,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/testFuzzer.c:250,1
    - Dst: xmlDocDumpMemory
      Src: /src/libxml2/fuzz/testFuzzer.c:248,1
    - Dst: xmlFuzzDataCleanup
      Src: /src/libxml2/fuzz/testFuzzer.c:258,1
    - Dst: xmlFuzzDataInit
      Src: /src/libxml2/fuzz/testFuzzer.c:218,1
    - Dst: xmlFuzzSecondaryUrl
      Src: /src/libxml2/fuzz/testFuzzer.c:227,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/testFuzzer.c:229,1
    - Dst: xmlFuzzMainEntity
      Src: /src/libxml2/fuzz/testFuzzer.c:233,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/fuzz/testFuzzer.c:234,1
    - Dst: xmlFree
      Src: /src/libxml2/fuzz/testFuzzer.c:253,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/fuzz/testFuzzer.c:249,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/fuzz/testFuzzer.c:238,1
    - Dst: strcmp
      Src: /src/libxml2/fuzz/testFuzzer.c:222,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/fuzz/testFuzzer.c:257,1
    - Dst: xmlFuzzMainUrl
      Src: /src/libxml2/fuzz/testFuzzer.c:221,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/testFuzzer.c:223,1
    - Dst: xmlCtxtSetResourceLoader
      Src: /src/libxml2/fuzz/testFuzzer.c:235,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 261
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 261
    functionName: testEntityLoader
    functionSourceFile: /src/libxml2/fuzz/testFuzzer.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDocDumpMemory
    - xmlFuzzReadEntities
    - xmlFuzzSecondaryUrl
    - strcmp
    - xmlFuzzMainEntity
    - xmlCtxtReadMemory
    - xmlFuzzDataCleanup
    - xmlCtxtSetResourceLoader
    - xmlFuzzDataInit
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - xmlStrcmp
    - fprintf
    - xmlFuzzMainUrl
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: 'static int testEntityLoader(void) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: testEntityLoader
      Src: /src/libxml2/fuzz/testFuzzer.c:269,1
    - Dst: testFuzzer
      Src: /src/libxml2/fuzz/testFuzzer.c:283,1
    - Dst: testFuzzer
      Src: /src/libxml2/fuzz/testFuzzer.c:288,1
    - Dst: testFuzzer
      Src: /src/libxml2/fuzz/testFuzzer.c:273,1
    - Dst: testFuzzer
      Src: /src/libxml2/fuzz/testFuzzer.c:278,1
    - Dst: testFuzzer
      Src: /src/libxml2/fuzz/testFuzzer.c:293,1
    - Dst: testFuzzer
      Src: /src/libxml2/fuzz/testFuzzer.c:298,1
    - Dst: testFuzzer
      Src: /src/libxml2/fuzz/testFuzzer.c:303,1
    - Dst: testFuzzer
      Src: /src/libxml2/fuzz/testFuzzer.c:308,1
    - Dst: testFuzzer
      Src: /src/libxml2/fuzz/testFuzzer.c:313,1
    - Dst: printf
      Src: /src/libxml2/fuzz/testFuzzer.c:319,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 322
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 322
    functionName: main
    functionSourceFile: /src/libxml2/fuzz/testFuzzer.c
    functionUses: []
    functionsReached:
    - testFuzzer
    - testEntityLoader
    - printf
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: sqlClose
    functionSourceFile: /src/libxml2/example/io1.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int sqlClose(void * context) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libxml2/example/io1.c:93,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 3
    argNames:
    - context
    - buffer
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 96
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: sqlRead
    functionSourceFile: /src/libxml2/example/io1.c
    functionUses: []
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: 'static int sqlRead(void * context, char * buffer, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/example/io1.c:118,1
    - Dst: exit
      Src: /src/libxml2/example/io1.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - (sqlMatch, sqlOpen, sqlRead, sqlClose)
    - < 0
    argTypes:
    - xmlRegisterInputCallbacks
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: if
    functionSourceFile: /src/libxml2/example/io1.c
    functionUses: []
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: LIBXML_TEST_VERSION
    signature: 'LIBXML_TEST_VERSION /* * register the new I/O handlers */ if (xmlRegisterInputCallbacks(sqlMatch,
      sqlOpen, sqlRead, sqlClose) < 0) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/example/io1.c:118,1
    - Dst: strlen
      Src: /src/libxml2/example/io1.c:124,1
    - Dst: fprintf
      Src: /src/libxml2/example/io1.c:126,1
    - Dst: exit
      Src: /src/libxml2/example/io1.c:119,1
    - Dst: xmlReadMemory
      Src: /src/libxml2/example/io1.c:124,1
    - Dst: exit
      Src: /src/libxml2/example/io1.c:127,1
    - Dst: xmlXIncludeProcess
      Src: /src/libxml2/example/io1.c:134,1
    - Dst: fprintf
      Src: /src/libxml2/example/io1.c:135,1
    - Dst: exit
      Src: /src/libxml2/example/io1.c:136,1
    - Dst: xmlDocDump
      Src: /src/libxml2/example/io1.c:143,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/io1.c:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 152
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 152
    functionName: main
    functionSourceFile: /src/libxml2/example/io1.c
    functionUses: []
    functionsReached:
    - xmlReadMemory
    - xmlXIncludeProcess
    - exit
    - xmlFreeDoc
    - strlen
    - xmlDocDump
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/example/io1.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: main
    functionSourceFile: /src/libxml2/example/io1.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/libxml2/example/io1.c:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - URI
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: sqlMatch
    functionSourceFile: /src/libxml2/example/io1.c
    functionUses: []
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: 'static int sqlMatch(const char * URI) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/libxml2/example/io1.c:52,1
    - Dst: strlen
      Src: /src/libxml2/example/io1.c:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - URI
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: sqlOpen
    functionSourceFile: /src/libxml2/example/io1.c
    functionUses: []
    functionsReached:
    - strlen
    - strncmp
    linkageType: ''
    returnType: void*
    signature: 'static void *sqlOpen(const char * URI) '
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewTextWriterFilename
      Src: /src/libxml2/example/testWriter.c:71,1
    - Dst: xmlTextWriterStartDocument
      Src: /src/libxml2/example/testWriter.c:80,1
    - Dst: xmlTextWriterWriteComment
      Src: /src/libxml2/example/testWriter.c:96,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:124,1
    - Dst: xmlTextWriterWriteFormatElement
      Src: /src/libxml2/example/testWriter.c:146,1
    - Dst: xmlTextWriterWriteAttribute
      Src: /src/libxml2/example/testWriter.c:121,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:149,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:198,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:200,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:274,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:282,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:234,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:218,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:258,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:98,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:104,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:106,1
    - Dst: xmlTextWriterWriteComment
      Src: /src/libxml2/example/testWriter.c:130,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:132,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:164,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:167,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:206,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:209,1
    - Dst: xmlTextWriterWriteFormatElement
      Src: /src/libxml2/example/testWriter.c:215,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:226,1
    - Dst: xmlFreeTextWriter
      Src: /src/libxml2/example/testWriter.c:309,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:232,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:252,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:276,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:293,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:73,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:82,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:138,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:140,1
    - Dst: xmlTextWriterWriteFormatElement
      Src: /src/libxml2/example/testWriter.c:155,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:158,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:173,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:176,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:182,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:184,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:304,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:268,1
    - Dst: xmlTextWriterWriteFormatElement
      Src: /src/libxml2/example/testWriter.c:249,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:291,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:89,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:91,1
    - Dst: xmlTextWriterWriteAttribute
      Src: /src/libxml2/example/testWriter.c:112,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:115,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:190,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:192,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:240,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:243,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:260,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:266,1
    - Dst: xmlTextWriterEndDocument
      Src: /src/libxml2/example/testWriter.c:302,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:285,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:224,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 142
    argCount: 1
    argNames:
    - uri
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 310
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 310
    functionName: testXmlwriterFilename
    functionSourceFile: /src/libxml2/example/testWriter.c
    functionUses: []
    functionsReached:
    - xmlNewTextWriterFilename
    - xmlTextWriterStartDocument
    - xmlTextWriterEndElement
    - xmlTextWriterEndDocument
    - xmlTextWriterWriteComment
    - xmlTextWriterWriteAttribute
    - xmlTextWriterWriteFormatElement
    - xmlTextWriterStartElement
    - xmlFreeTextWriter
    - printf
    - xmlTextWriterWriteElement
    linkageType: ''
    returnType: void
    signature: 'void testXmlwriterFilename(const char *uri) '
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewTextWriterDoc
      Src: /src/libxml2/example/testWriter.c:589,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:620,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:622,1
    - Dst: xmlTextWriterWriteFormatElement
      Src: /src/libxml2/example/testWriter.c:658,1
    - Dst: xmlTextWriterWriteAttribute
      Src: /src/libxml2/example/testWriter.c:635,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:638,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:661,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:706,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:708,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:775,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:785,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:730,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:763,1
    - Dst: xmlTextWriterStartDocument
      Src: /src/libxml2/example/testWriter.c:598,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:600,1
    - Dst: xmlTextWriterWriteComment
      Src: /src/libxml2/example/testWriter.c:643,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:645,1
    - Dst: xmlTextWriterWriteAttribute
      Src: /src/libxml2/example/testWriter.c:627,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:676,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:679,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:713,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:716,1
    - Dst: xmlTextWriterWriteFormatElement
      Src: /src/libxml2/example/testWriter.c:721,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:782,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:739,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:724,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:761,1
    - Dst: xmlTextWriterEndDocument
      Src: /src/libxml2/example/testWriter.c:800,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:606,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:608,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:653,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:651,1
    - Dst: xmlTextWriterWriteFormatElement
      Src: /src/libxml2/example/testWriter.c:667,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:670,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:684,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:687,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:692,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:694,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:737,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:755,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:777,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:792,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:591,1
    - Dst: xmlTextWriterWriteComment
      Src: /src/libxml2/example/testWriter.c:613,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:615,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:630,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:699,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:701,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:744,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:747,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:768,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:770,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:802,1
    - Dst: xmlTextWriterWriteFormatElement
      Src: /src/libxml2/example/testWriter.c:752,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/testWriter.c:808,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:790,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:732,1
    - Dst: xmlFreeTextWriter
      Src: /src/libxml2/example/testWriter.c:806,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 143
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 809
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 809
    functionName: testXmlwriterDoc
    functionSourceFile: /src/libxml2/example/testWriter.c
    functionUses: []
    functionsReached:
    - xmlTextWriterStartDocument
    - xmlTextWriterEndElement
    - xmlTextWriterEndDocument
    - xmlTextWriterWriteComment
    - xmlTextWriterWriteAttribute
    - xmlTextWriterWriteFormatElement
    - xmlTextWriterStartElement
    - xmlFreeDoc
    - xmlNewTextWriterDoc
    - xmlFreeTextWriter
    - printf
    - xmlTextWriterWriteElement
    linkageType: ''
    returnType: void
    signature: 'void testXmlwriterDoc(void) '
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:829,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:838,1
    - Dst: xmlTextWriterStartDocument
      Src: /src/libxml2/example/testWriter.c:855,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:902,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:904,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:935,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:938,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:943,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:945,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:988,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:1014,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:1043,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:990,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:1033,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/testWriter.c:1059,1
    - Dst: xmlDocSetRootElement
      Src: /src/libxml2/example/testWriter.c:843,1
    - Dst: xmlTextWriterWriteAttribute
      Src: /src/libxml2/example/testWriter.c:876,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:879,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:869,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:950,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:952,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:964,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:967,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:995,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:998,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:959,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:1006,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:1028,1
    - Dst: xmlNewDoc
      Src: /src/libxml2/example/testWriter.c:827,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/example/testWriter.c:836,1
    - Dst: xmlNewTextWriterTree
      Src: /src/libxml2/example/testWriter.c:846,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:848,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:857,1
    - Dst: xmlTextWriterWriteAttribute
      Src: /src/libxml2/example/testWriter.c:885,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:888,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:871,1
    - Dst: xmlTextWriterWriteFormatElement
      Src: /src/libxml2/example/testWriter.c:909,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:912,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:1021,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:1053,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:921,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:957,1
    - Dst: xmlTextWriterWriteFormatElement
      Src: /src/libxml2/example/testWriter.c:1003,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:1026,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:1012,1
    - Dst: xmlTextWriterWriteComment
      Src: /src/libxml2/example/testWriter.c:862,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:864,1
    - Dst: xmlTextWriterWriteComment
      Src: /src/libxml2/example/testWriter.c:894,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:896,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:927,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:930,1
    - Dst: xmlTextWriterWriteFormatElement
      Src: /src/libxml2/example/testWriter.c:972,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:975,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:981,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:983,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:1019,1
    - Dst: xmlTextWriterEndDocument
      Src: /src/libxml2/example/testWriter.c:1051,1
    - Dst: xmlFreeTextWriter
      Src: /src/libxml2/example/testWriter.c:1057,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:1041,1
    - Dst: xmlTextWriterWriteFormatElement
      Src: /src/libxml2/example/testWriter.c:918,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:1036,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 149
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1060
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 1060
    functionName: testXmlwriterTree
    functionSourceFile: /src/libxml2/example/testWriter.c
    functionUses: []
    functionsReached:
    - xmlDocSetRootElement
    - xmlTextWriterStartDocument
    - xmlTextWriterEndElement
    - xmlTextWriterEndDocument
    - xmlTextWriterWriteComment
    - xmlTextWriterWriteAttribute
    - xmlNewDocNode
    - xmlNewDoc
    - xmlTextWriterStartElement
    - xmlTextWriterWriteFormatElement
    - xmlFreeDoc
    - xmlNewTextWriterTree
    - xmlFreeTextWriter
    - printf
    - xmlTextWriterWriteElement
    linkageType: ''
    returnType: void
    signature: 'void testXmlwriterTree(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/example/testWriter.c:1064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1066
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1066
    functionName: main
    functionSourceFile: /src/libxml2/example/testWriter.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/libxml2/example/testWriter.c:44,1
    - Dst: testXmlwriterDoc
      Src: /src/libxml2/example/testWriter.c:50,1
    - Dst: testXmlwriterMemory
      Src: /src/libxml2/example/testWriter.c:47,1
    - Dst: testXmlwriterTree
      Src: /src/libxml2/example/testWriter.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 56
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 56
    functionName: main
    functionSourceFile: /src/libxml2/example/testWriter.c
    functionUses: []
    functionsReached:
    - testXmlwriterDoc
    - testXmlwriterTree
    - testXmlwriterMemory
    - unlink
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:329,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:353,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:355,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:403,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:405,1
    - Dst: xmlTextWriterWriteFormatElement
      Src: /src/libxml2/example/testWriter.c:420,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:423,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:438,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:442,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:448,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:489,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:531,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:565,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:516,1
    - Dst: xmlBufferFree
      Src: /src/libxml2/example/testWriter.c:571,1
    - Dst: xmlTextWriterWriteFormatElement
      Src: /src/libxml2/example/testWriter.c:513,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:536,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:337,1
    - Dst: xmlTextWriterWriteComment
      Src: /src/libxml2/example/testWriter.c:361,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:363,1
    - Dst: xmlTextWriterWriteAttribute
      Src: /src/libxml2/example/testWriter.c:377,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:380,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:455,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:457,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:483,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:504,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:507,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:522,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:529,1
    - Dst: xmlTextWriterEndDocument
      Src: /src/libxml2/example/testWriter.c:563,1
    - Dst: xmlNewTextWriterMemory
      Src: /src/libxml2/example/testWriter.c:335,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:369,1
    - Dst: xmlTextWriterWriteAttribute
      Src: /src/libxml2/example/testWriter.c:386,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:389,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:371,1
    - Dst: xmlTextWriterWriteFormatElement
      Src: /src/libxml2/example/testWriter.c:411,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:414,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:463,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:465,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:524,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:538,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:555,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:450,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:498,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:544,1
    - Dst: xmlBufferCreate
      Src: /src/libxml2/example/testWriter.c:327,1
    - Dst: xmlTextWriterStartDocument
      Src: /src/libxml2/example/testWriter.c:344,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:346,1
    - Dst: xmlTextWriterWriteComment
      Src: /src/libxml2/example/testWriter.c:395,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:397,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:429,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:432,1
    - Dst: xmlTextWriterWriteElement
      Src: /src/libxml2/example/testWriter.c:471,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:474,1
    - Dst: xmlTextWriterWriteFormatElement
      Src: /src/libxml2/example/testWriter.c:480,1
    - Dst: xmlTextWriterEndElement
      Src: /src/libxml2/example/testWriter.c:553,1
    - Dst: xmlFreeTextWriter
      Src: /src/libxml2/example/testWriter.c:569,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:491,1
    - Dst: printf
      Src: /src/libxml2/example/testWriter.c:547,1
    - Dst: xmlTextWriterStartElement
      Src: /src/libxml2/example/testWriter.c:496,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 148
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 572
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 572
    functionName: testXmlwriterMemory
    functionSourceFile: /src/libxml2/example/testWriter.c
    functionUses: []
    functionsReached:
    - xmlNewTextWriterMemory
    - xmlTextWriterStartDocument
    - xmlTextWriterEndElement
    - xmlBufferCreate
    - xmlTextWriterEndDocument
    - xmlTextWriterWriteComment
    - xmlTextWriterWriteAttribute
    - xmlTextWriterWriteFormatElement
    - xmlTextWriterStartElement
    - xmlFreeTextWriter
    - printf
    - xmlBufferFree
    - xmlTextWriterWriteElement
    linkageType: ''
    returnType: void
    signature: 'void testXmlwriterMemory(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/example/reader4.c:23,1
    - Dst: fprintf
      Src: /src/libxml2/example/reader4.c:35,1
    - Dst: xmlTextReaderCurrentDoc
      Src: /src/libxml2/example/reader4.c:33,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/example/reader4.c:25,1
    - Dst: fprintf
      Src: /src/libxml2/example/reader4.c:41,1
    - Dst: fprintf
      Src: /src/libxml2/example/reader4.c:45,1
    - Dst: printf
      Src: /src/libxml2/example/reader4.c:49,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - readerPtr
    argTypes:
    - xmlTextReaderPtr
    constantsTouched: []
    func_position:
      end: 50
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 50
    functionName: processDoc
    functionSourceFile: /src/libxml2/example/reader4.c
    functionUses: []
    functionsReached:
    - printf
    - xmlTextReaderCurrentDoc
    - xmlTextReaderRead
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void processDoc(xmlTextReaderPtr readerPtr) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlReaderForFile
      Src: /src/libxml2/example/reader4.c:71,1
    - Dst: fprintf
      Src: /src/libxml2/example/reader4.c:73,1
    - Dst: processDoc
      Src: /src/libxml2/example/reader4.c:76,1
    - Dst: xmlReaderNewFile
      Src: /src/libxml2/example/reader4.c:82,1
    - Dst: fprintf
      Src: /src/libxml2/example/reader4.c:84,1
    - Dst: processDoc
      Src: /src/libxml2/example/reader4.c:87,1
    - Dst: xmlTextReaderCurrentDoc
      Src: /src/libxml2/example/reader4.c:96,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/reader4.c:98,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/example/reader4.c:103,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 106
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 106
    functionName: main
    functionSourceFile: /src/libxml2/example/reader4.c
    functionUses: []
    functionsReached:
    - xmlReaderNewFile
    - processDoc
    - xmlTextReaderCurrentDoc
    - xmlFreeDoc
    - xmlReaderForFile
    - xmlFreeTextReader
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/example/reader4.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: main
    functionSourceFile: /src/libxml2/example/reader4.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlReaderForFile
      Src: /src/libxml2/example/reader3.c:37,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/example/reader3.c:49,1
    - Dst: xmlTextReaderPreservePattern
      Src: /src/libxml2/example/reader3.c:42,1
    - Dst: fprintf
      Src: /src/libxml2/example/reader3.c:43,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/example/reader3.c:51,1
    - Dst: fprintf
      Src: /src/libxml2/example/reader3.c:54,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/example/reader3.c:55,1
    - Dst: xmlTextReaderCurrentDoc
      Src: /src/libxml2/example/reader3.c:61,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/example/reader3.c:65,1
    - Dst: fprintf
      Src: /src/libxml2/example/reader3.c:67,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - filename
    - pattern
    argTypes:
    - char*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 71
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 71
    functionName: extractFile
    functionSourceFile: /src/libxml2/example/reader3.c
    functionUses: []
    functionsReached:
    - xmlTextReaderRead
    - xmlTextReaderPreservePattern
    - xmlTextReaderCurrentDoc
    - xmlReaderForFile
    - xmlFreeTextReader
    - fprintf
    linkageType: ''
    returnType: xmlDocPtr
    signature: 'static xmlDocPtr extractFile(const char *filename, const xmlChar *pattern) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: extractFile
      Src: /src/libxml2/example/reader3.c:90,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/reader3.c:99,1
    - Dst: xmlDocDump
      Src: /src/libxml2/example/reader3.c:95,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 103
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 103
    functionName: main
    functionSourceFile: /src/libxml2/example/reader3.c
    functionUses: []
    functionsReached:
    - xmlDocDump
    - xmlFreeDoc
    - extractFile
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/example/reader3.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: main
    functionSourceFile: /src/libxml2/example/reader3.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderConstName
      Src: /src/libxml2/example/reader2.c:30,1
    - Dst: xmlTextReaderConstValue
      Src: /src/libxml2/example/reader2.c:34,1
    - Dst: xmlTextReaderNodeType
      Src: /src/libxml2/example/reader2.c:38,1
    - Dst: xmlTextReaderDepth
      Src: /src/libxml2/example/reader2.c:37,1
    - Dst: printf
      Src: /src/libxml2/example/reader2.c:36,1
    - Dst: xmlTextReaderIsEmptyElement
      Src: /src/libxml2/example/reader2.c:40,1
    - Dst: xmlTextReaderHasValue
      Src: /src/libxml2/example/reader2.c:41,1
    - Dst: printf
      Src: /src/libxml2/example/reader2.c:43,1
    - Dst: xmlStrlen
      Src: /src/libxml2/example/reader2.c:45,1
    - Dst: printf
      Src: /src/libxml2/example/reader2.c:46,1
    - Dst: printf
      Src: /src/libxml2/example/reader2.c:48,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReaderPtr
    constantsTouched: []
    func_position:
      end: 50
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 50
    functionName: processNode
    functionSourceFile: /src/libxml2/example/reader2.c
    functionUses: []
    functionsReached:
    - xmlTextReaderHasValue
    - xmlTextReaderConstValue
    - xmlTextReaderIsEmptyElement
    - xmlStrlen
    - xmlTextReaderConstName
    - xmlTextReaderDepth
    - xmlTextReaderNodeType
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void processNode(xmlTextReaderPtr reader) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: main
    functionSourceFile: /src/libxml2/example/reader2.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/example/reader2.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: main
    functionSourceFile: /src/libxml2/example/reader2.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlReaderForFile
      Src: /src/libxml2/example/reader2.c:68,1
    - Dst: xmlTextReaderIsValid
      Src: /src/libxml2/example/reader2.c:81,1
    - Dst: processNode
      Src: /src/libxml2/example/reader2.c:75,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/example/reader2.c:76,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/example/reader2.c:73,1
    - Dst: fprintf
      Src: /src/libxml2/example/reader2.c:82,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/example/reader2.c:84,1
    - Dst: fprintf
      Src: /src/libxml2/example/reader2.c:86,1
    - Dst: fprintf
      Src: /src/libxml2/example/reader2.c:89,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 91
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 91
    functionName: streamFile
    functionSourceFile: /src/libxml2/example/reader2.c
    functionUses: []
    functionsReached:
    - processNode
    - xmlTextReaderRead
    - xmlTextReaderIsValid
    - xmlReaderForFile
    - xmlFreeTextReader
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void streamFile(const char *filename) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewDoc
      Src: /src/libxml2/example/io2.c:26,1
    - Dst: xmlDocDumpFormatMemory
      Src: /src/libxml2/example/io2.c:35,1
    - Dst: xmlDocSetRootElement
      Src: /src/libxml2/example/io2.c:29,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/example/io2.c:27,1
    - Dst: xmlNodeSetContent
      Src: /src/libxml2/example/io2.c:28,1
    - Dst: printf
      Src: /src/libxml2/example/io2.c:36,1
    - Dst: xmlFree
      Src: /src/libxml2/example/io2.c:41,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/io2.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 46
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 46
    functionName: main
    functionSourceFile: /src/libxml2/example/io2.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlDocSetRootElement
    - xmlNodeSetContent
    - xmlDocDumpFormatMemory
    - xmlNewDocNode
    - xmlNewDoc
    - xmlFreeDoc
    - printf
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/example/io2.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: main
    functionSourceFile: /src/libxml2/example/io2.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewChild
      Src: /src/libxml2/example/tree2.c:50,1
    - Dst: xmlNewProp
      Src: /src/libxml2/example/tree2.c:64,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/example/tree2.c:72,1
    - Dst: snprintf
      Src: /src/libxml2/example/tree2.c:85,1
    - Dst: BAD_CAST
      Src: /src/libxml2/example/tree2.c:87,1
    - Dst: xmlNewProp
      Src: /src/libxml2/example/tree2.c:87,1
    - Dst: xmlSaveFormatFileEnc
      Src: /src/libxml2/example/tree2.c:94,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/tree2.c:97,1
    - Dst: xmlNewDoc
      Src: /src/libxml2/example/tree2.c:37,1
    - Dst: xmlNewChild
      Src: /src/libxml2/example/tree2.c:55,1
    - Dst: xmlAddChild
      Src: /src/libxml2/example/tree2.c:76,1
    - Dst: xmlNewChild
      Src: /src/libxml2/example/tree2.c:62,1
    - Dst: xmlNewProp
      Src: /src/libxml2/example/tree2.c:65,1
    - Dst: snprintf
      Src: /src/libxml2/example/tree2.c:82,1
    - Dst: xmlNewDocText
      Src: /src/libxml2/example/tree2.c:73,1
    - Dst: xmlNewChild
      Src: /src/libxml2/example/tree2.c:83,1
    - Dst: xmlAddChild
      Src: /src/libxml2/example/tree2.c:75,1
    - Dst: xmlCreateIntSubset
      Src: /src/libxml2/example/tree2.c:44,1
    - Dst: xmlNewDocNode
      Src: /src/libxml2/example/tree2.c:38,1
    - Dst: xmlDocSetRootElement
      Src: /src/libxml2/example/tree2.c:39,1
    - Dst: xmlNewChild
      Src: /src/libxml2/example/tree2.c:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 100
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 100
    functionName: main
    functionSourceFile: /src/libxml2/example/tree2.c
    functionUses: []
    functionsReached:
    - xmlDocSetRootElement
    - xmlAddChild
    - BAD_CAST
    - xmlNewProp
    - xmlNewDocText
    - xmlNewChild
    - xmlNewDocNode
    - xmlNewDoc
    - xmlSaveFormatFileEnc
    - xmlFreeDoc
    - xmlCreateIntSubset
    - snprintf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/example/tree2.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: main
    functionSourceFile: /src/libxml2/example/tree2.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadMemory
      Src: /src/libxml2/example/parse3.c:32,1
    - Dst: fprintf
      Src: /src/libxml2/example/parse3.c:34,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/parse3.c:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - content
    - length
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 38
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: example3Func
    functionSourceFile: /src/libxml2/example/parse3.c
    functionUses: []
    functionsReached:
    - xmlFreeDoc
    - fprintf
    - xmlReadMemory
    linkageType: ''
    returnType: void
    signature: 'static void example3Func(const char *content, int length) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: main
    functionSourceFile: /src/libxml2/example/parse3.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxml2/example/gjobread.c:81,1
    - Dst: printf
      Src: /src/libxml2/example/gjobread.c:82,1
    - Dst: printf
      Src: /src/libxml2/example/gjobread.c:85,1
    - Dst: printf
      Src: /src/libxml2/example/gjobread.c:83,1
    - Dst: printf
      Src: /src/libxml2/example/gjobread.c:84,1
    - Dst: printf
      Src: /src/libxml2/example/gjobread.c:86,1
    - Dst: printf
      Src: /src/libxml2/example/gjobread.c:87,1
    - Dst: printf
      Src: /src/libxml2/example/gjobread.c:88,1
    - Dst: printf
      Src: /src/libxml2/example/gjobread.c:89,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 1
    argNames:
    - cur
    argTypes:
    - personPtr
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: printPerson
    functionSourceFile: /src/libxml2/example/gjobread.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void printPerson(personPtr cur) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxml2/example/gjobread.c:158,1
    - Dst: printf
      Src: /src/libxml2/example/gjobread.c:159,1
    - Dst: printf
      Src: /src/libxml2/example/gjobread.c:160,1
    - Dst: printPerson
      Src: /src/libxml2/example/gjobread.c:162,1
    - Dst: printf
      Src: /src/libxml2/example/gjobread.c:161,1
    - Dst: printf
      Src: /src/libxml2/example/gjobread.c:163,1
    - Dst: printPerson
      Src: /src/libxml2/example/gjobread.c:165,1
    - Dst: printf
      Src: /src/libxml2/example/gjobread.c:166,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - cur
    argTypes:
    - jobPtr
    constantsTouched: []
    func_position:
      end: 167
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 167
    functionName: printJob
    functionSourceFile: /src/libxml2/example/gjobread.c
    functionUses: []
    functionsReached:
    - printPerson
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void printJob(jobPtr cur) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrcmp
      Src: /src/libxml2/example/gjobread.c:210,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/gjobread.c:212,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/gjobread.c:236,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/gjobread.c:222,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/example/gjobread.c:240,1
    - Dst: fprintf
      Src: /src/libxml2/example/gjobread.c:243,1
    - Dst: free
      Src: /src/libxml2/example/gjobread.c:249,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/example/gjobread.c:256,1
    - Dst: fprintf
      Src: /src/libxml2/example/gjobread.c:211,1
    - Dst: fprintf
      Src: /src/libxml2/example/gjobread.c:221,1
    - Dst: xmlIsBlankNode
      Src: /src/libxml2/example/gjobread.c:232,1
    - Dst: memset
      Src: /src/libxml2/example/gjobread.c:225,1
    - Dst: xmlReadFile
      Src: /src/libxml2/example/gjobread.c:189,1
    - Dst: xmlSearchNsByHref
      Src: /src/libxml2/example/gjobread.c:202,1
    - Dst: fprintf
      Src: /src/libxml2/example/gjobread.c:198,1
    - Dst: fprintf
      Src: /src/libxml2/example/gjobread.c:205,1
    - Dst: fprintf
      Src: /src/libxml2/example/gjobread.c:241,1
    - Dst: malloc
      Src: /src/libxml2/example/gjobread.c:219,1
    - Dst: free
      Src: /src/libxml2/example/gjobread.c:237,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/gjobread.c:248,1
    - Dst: parseJob
      Src: /src/libxml2/example/gjobread.c:258,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/gjobread.c:199,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/example/gjobread.c:196,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/gjobread.c:207,1
    - Dst: xmlDocDump
      Src: /src/libxml2/example/gjobread.c:245,1
    - Dst: fprintf
      Src: /src/libxml2/example/gjobread.c:246,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 267
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 267
    functionName: parseGjobFile
    functionSourceFile: /src/libxml2/example/gjobread.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - malloc
    - xmlIsBlankNode
    - memset
    - xmlSearchNsByHref
    - xmlReadFile
    - free
    - parseJob
    - xmlFreeDoc
    - xmlDocDump
    - xmlStrcmp
    - fprintf
    linkageType: ''
    returnType: gJobPtr
    signature: 'static gJobPtr parseGjobFile(char *filename) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxml2/example/gjobread.c:276,1
    - Dst: printJob
      Src: /src/libxml2/example/gjobread.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cur
    argTypes:
    - gJobPtr
    constantsTouched: []
    func_position:
      end: 278
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 278
    functionName: handleGjob
    functionSourceFile: /src/libxml2/example/gjobread.c
    functionUses: []
    functionsReached:
    - printf
    - printJob
    linkageType: ''
    returnType: void
    signature: 'static void handleGjob(gJobPtr cur) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parseGjobFile
      Src: /src/libxml2/example/gjobread.c:288,1
    - Dst: handleGjob
      Src: /src/libxml2/example/gjobread.c:290,1
    - Dst: xmlCleanupParser
      Src: /src/libxml2/example/gjobread.c:297,1
    - Dst: fprintf
      Src: /src/libxml2/example/gjobread.c:292,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 300
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 300
    functionName: main
    functionSourceFile: /src/libxml2/example/gjobread.c
    functionUses: []
    functionsReached:
    - parseGjobFile
    - fprintf
    - handleGjob
    - xmlCleanupParser
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/libxml2/example/gjobread.c:48,1
    - Dst: fprintf
      Src: /src/libxml2/example/gjobread.c:54,1
    - Dst: malloc
      Src: /src/libxml2/example/gjobread.c:52,1
    - Dst: memset
      Src: /src/libxml2/example/gjobread.c:57,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/example/gjobread.c:63,1
    - Dst: xmlNodeListGetString
      Src: /src/libxml2/example/gjobread.c:65,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/example/gjobread.c:66,1
    - Dst: xmlNodeListGetString
      Src: /src/libxml2/example/gjobread.c:68,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - doc
    - ns
    - cur
    argTypes:
    - xmlDocPtr
    - xmlNsPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 73
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 73
    functionName: parsePerson
    functionSourceFile: /src/libxml2/example/gjobread.c
    functionUses: []
    functionsReached:
    - malloc
    - memset
    - xmlNodeListGetString
    - xmlStrcmp
    - fprintf
    - DEBUG
    linkageType: ''
    returnType: personPtr
    signature: 'static personPtr parsePerson(xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr
      cur) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/libxml2/example/gjobread.c:111,1
    - Dst: malloc
      Src: /src/libxml2/example/gjobread.c:115,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/example/gjobread.c:126,1
    - Dst: memset
      Src: /src/libxml2/example/gjobread.c:120,1
    - Dst: fprintf
      Src: /src/libxml2/example/gjobread.c:117,1
    - Dst: xmlGetProp
      Src: /src/libxml2/example/gjobread.c:128,1
    - Dst: fprintf
      Src: /src/libxml2/example/gjobread.c:130,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/example/gjobread.c:133,1
    - Dst: xmlNodeListGetString
      Src: /src/libxml2/example/gjobread.c:136,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/example/gjobread.c:137,1
    - Dst: xmlStrcmp
      Src: /src/libxml2/example/gjobread.c:141,1
    - Dst: xmlNodeListGetString
      Src: /src/libxml2/example/gjobread.c:140,1
    - Dst: parsePerson
      Src: /src/libxml2/example/gjobread.c:143,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 3
    argNames:
    - doc
    - ns
    - cur
    argTypes:
    - xmlDocPtr
    - xmlNsPtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 148
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 148
    functionName: parseJob
    functionSourceFile: /src/libxml2/example/gjobread.c
    functionUses: []
    functionsReached:
    - malloc
    - memset
    - parsePerson
    - xmlNodeListGetString
    - xmlGetProp
    - xmlStrcmp
    - fprintf
    - DEBUG
    linkageType: ''
    returnType: jobPtr
    signature: 'static jobPtr parseJob(xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libxml2/example/xpath2.c:82,1
    - Dst: assert
      Src: /src/libxml2/example/xpath2.c:83,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath2.c:89,1
    - Dst: assert
      Src: /src/libxml2/example/xpath2.c:84,1
    - Dst: xmlParseFile
      Src: /src/libxml2/example/xpath2.c:87,1
    - Dst: xmlXPathNewContext
      Src: /src/libxml2/example/xpath2.c:94,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath2.c:96,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/xpath2.c:97,1
    - Dst: xmlXPathEvalExpression
      Src: /src/libxml2/example/xpath2.c:102,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath2.c:104,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/example/xpath2.c:105,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/xpath2.c:123,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/example/xpath2.c:115,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/xpath2.c:106,1
    - Dst: update_xpath_nodes
      Src: /src/libxml2/example/xpath2.c:111,1
    - Dst: xmlDocDump
      Src: /src/libxml2/example/xpath2.c:119,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/example/xpath2.c:116,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - filename
    - xpathExpr
    - value
    argTypes:
    - char*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 126
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 126
    functionName: example4
    functionSourceFile: /src/libxml2/example/xpath2.c
    functionUses: []
    functionsReached:
    - xmlXPathNewContext
    - assert
    - xmlXPathFreeContext
    - update_xpath_nodes
    - xmlXPathFreeObject
    - xmlFreeDoc
    - xmlXPathEvalExpression
    - xmlDocDump
    - fprintf
    - xmlParseFile
    linkageType: ''
    returnType: int
    signature: 'static int example4(const char* filename, const xmlChar* xpathExpr,
      const xmlChar* value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/example/xpath2.c:34,1
    - Dst: usage
      Src: /src/libxml2/example/xpath2.c:45,1
    - Dst: xmlInitParser
      Src: /src/libxml2/example/xpath2.c:40,1
    - Dst: usage
      Src: /src/libxml2/example/xpath2.c:35,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 50
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 50
    functionName: main
    functionSourceFile: /src/libxml2/example/xpath2.c
    functionUses: []
    functionsReached:
    - usage
    - fprintf
    - xmlInitParser
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/libxml2/example/xpath2.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - (argv[1], BAD_CAST argv[2], BAD_CAST argv[3])
    argTypes:
    - example4
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: if
    functionSourceFile: /src/libxml2/example/xpath2.c
    functionUses: []
    functionsReached:
    - usage
    linkageType: ''
    returnType: LIBXML_TEST_VERSION
    signature: 'LIBXML_TEST_VERSION /* Do the main job */ if (example4(argv[1], BAD_CAST
      argv[2], BAD_CAST argv[3])) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/example/xpath2.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: main
    functionSourceFile: /src/libxml2/example/xpath2.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libxml2/example/xpath2.c:60,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath2.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: usage
    functionSourceFile: /src/libxml2/example/xpath2.c
    functionUses: []
    functionsReached:
    - fprintf
    - assert
    linkageType: ''
    returnType: void
    signature: 'static void usage(const char *name) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libxml2/example/xpath2.c:140,1
    - Dst: assert
      Src: /src/libxml2/example/xpath2.c:152,1
    - Dst: xmlNodeSetContent
      Src: /src/libxml2/example/xpath2.c:154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - nodes
    - value
    argTypes:
    - xmlNodeSetPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 175
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 175
    functionName: update_xpath_nodes
    functionSourceFile: /src/libxml2/example/xpath2.c
    functionUses: []
    functionsReached:
    - xmlNodeSetContent
    - assert
    linkageType: ''
    returnType: void
    signature: 'static void update_xpath_nodes(xmlNodeSetPtr nodes, const xmlChar*
      value) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xmlMalloc
      Src: /src/libxml2/example/icu.c:112,1
    - Dst: U_FAILURE
      Src: /src/libxml2/example/icu.c:122,1
    - Dst: ucnv_open
      Src: /src/libxml2/example/icu.c:121,1
    - Dst: ucnv_setFromUCallBack
      Src: /src/libxml2/example/icu.c:131,1
    - Dst: ucnv_setToUCallBack
      Src: /src/libxml2/example/icu.c:127,1
    - Dst: U_FAILURE
      Src: /src/libxml2/example/icu.c:134,1
    - Dst: ucnv_open
      Src: /src/libxml2/example/icu.c:138,1
    - Dst: U_FAILURE
      Src: /src/libxml2/example/icu.c:139,1
    - Dst: ucnv_close
      Src: /src/libxml2/example/icu.c:147,1
    - Dst: xmlFree
      Src: /src/libxml2/example/icu.c:148,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 27
    argCount: 3
    argNames:
    - name
    - isInput
    - out
    argTypes:
    - char*
    - int
    - myConvCtxt**
    constantsTouched: []
    func_position:
      end: 155
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 155
    functionName: icuOpen
    functionSourceFile: /src/libxml2/example/icu.c
    functionUses: []
    functionsReached:
    - xmlFree
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - ucnv_setFromUCallBack
    - ucnv_setToUCallBack
    - xmlMalloc
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'static xmlParserErrors icuOpen(const char* name, int isInput, myConvCtxt
      **out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: icuClose
      Src: /src/libxml2/example/icu.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - vctxt
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: icuConvCtxtDtor
    functionSourceFile: /src/libxml2/example/icu.c
    functionUses: []
    functionsReached:
    - icuClose
    linkageType: ''
    returnType: void
    signature: 'static void icuConvCtxtDtor(void *vctxt) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_convertEx
      Src: /src/libxml2/example/icu.c:62,1
    - Dst: U_SUCCESS
      Src: /src/libxml2/example/icu.c:71,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 35
    argCount: 6
    argNames:
    - vctxt
    - out
    - outlen
    - in
    - inlen
    - flush
    argTypes:
    - void*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 102
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 102
    functionName: icuConvert
    functionSourceFile: /src/libxml2/example/icu.c
    functionUses: []
    functionsReached:
    - ucnv_convertEx
    - U_SUCCESS
    linkageType: ''
    returnType: xmlCharEncError
    signature: 'static xmlCharEncError icuConvert(void *vctxt, unsigned char *out,
      int *outlen, const unsigned char *in, int *inlen, int flush) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_close
      Src: /src/libxml2/example/icu.c:162,1
    - Dst: ucnv_close
      Src: /src/libxml2/example/icu.c:163,1
    - Dst: xmlFree
      Src: /src/libxml2/example/icu.c:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - cd
    argTypes:
    - myConvCtxt*
    constantsTouched: []
    func_position:
      end: 165
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 165
    functionName: icuClose
    functionSourceFile: /src/libxml2/example/icu.c
    functionUses: []
    functionsReached:
    - xmlFree
    - ucnv_close
    linkageType: ''
    returnType: void
    signature: 'static void icuClose(myConvCtxt *cd) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: icuOpen
      Src: /src/libxml2/example/icu.c:181,1
    - Dst: xmlCharEncNewCustomHandler
      Src: /src/libxml2/example/icu.c:194,1
    - Dst: icuClose
      Src: /src/libxml2/example/icu.c:199,1
    - Dst: icuClose
      Src: /src/libxml2/example/icu.c:201,1
    - Dst: icuOpen
      Src: /src/libxml2/example/icu.c:188,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 18
    argCount: 4
    argNames:
    - vctxt
    - name
    - flags
    - result
    argTypes:
    - void*
    - char*
    - xmlCharEncFlags
    - xmlCharEncodingHandler**
    constantsTouched: []
    func_position:
      end: 203
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 203
    functionName: icuConvImpl
    functionSourceFile: /src/libxml2/example/icu.c
    functionUses: []
    functionsReached:
    - icuClose
    - xmlCharEncNewCustomHandler
    - icuOpen
    linkageType: ''
    returnType: xmlParserErrors
    signature: 'static xmlParserErrors icuConvImpl(void *vctxt, const char *name,
      xmlCharEncFlags flags, xmlCharEncodingHandler **result) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/example/icu.c:221,1
    - Dst: xmlNodeGetContent
      Src: /src/libxml2/example/icu.c:226,1
    - Dst: xmlCtxtReadDoc
      Src: /src/libxml2/example/icu.c:223,1
    - Dst: xmlCtxtSetCharEncConvImpl
      Src: /src/libxml2/example/icu.c:222,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/example/icu.c:224,1
    - Dst: printf
      Src: /src/libxml2/example/icu.c:228,1
    - Dst: xmlStrEqual
      Src: /src/libxml2/example/icu.c:230,1
    - Dst: fprintf
      Src: /src/libxml2/example/icu.c:231,1
    - Dst: xmlFree
      Src: /src/libxml2/example/icu.c:235,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/icu.c:236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 239
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 239
    functionName: main
    functionSourceFile: /src/libxml2/example/icu.c
    functionUses: []
    functionsReached:
    - xmlFree
    - xmlCtxtReadDoc
    - xmlCtxtSetCharEncConvImpl
    - fprintf
    - xmlStrEqual
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - xmlNodeGetContent
    - printf
    - xmlNewParserCtxt
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libxml2/example/xpath1.c:58,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath1.c:62,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath1.c:61,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath1.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: usage
    functionSourceFile: /src/libxml2/example/xpath1.c
    functionUses: []
    functionsReached:
    - fprintf
    - assert
    linkageType: ''
    returnType: void
    signature: 'static void usage(const char *name) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlXPathNewContext
      Src: /src/libxml2/example/xpath1.c:93,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/xpath1.c:96,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath1.c:102,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/example/xpath1.c:122,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/example/xpath1.c:112,1
    - Dst: assert
      Src: /src/libxml2/example/xpath1.c:82,1
    - Dst: xmlParseFile
      Src: /src/libxml2/example/xpath1.c:86,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath1.c:88,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath1.c:95,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath1.c:111,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/xpath1.c:113,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/xpath1.c:123,1
    - Dst: assert
      Src: /src/libxml2/example/xpath1.c:83,1
    - Dst: register_namespaces
      Src: /src/libxml2/example/xpath1.c:101,1
    - Dst: xmlXPathEvalExpression
      Src: /src/libxml2/example/xpath1.c:109,1
    - Dst: xmlXPathFreeObject
      Src: /src/libxml2/example/xpath1.c:121,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/xpath1.c:104,1
    - Dst: xmlXPathFreeContext
      Src: /src/libxml2/example/xpath1.c:103,1
    - Dst: print_xpath_nodes
      Src: /src/libxml2/example/xpath1.c:118,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - filename
    - xpathExpr
    - nsList
    argTypes:
    - char*
    - xmlChar*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 126
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 126
    functionName: execute_xpath_expression
    functionSourceFile: /src/libxml2/example/xpath1.c
    functionUses: []
    functionsReached:
    - xmlXPathNewContext
    - register_namespaces
    - assert
    - xmlXPathFreeContext
    - print_xpath_nodes
    - xmlXPathFreeObject
    - xmlFreeDoc
    - xmlXPathEvalExpression
    - fprintf
    - xmlParseFile
    linkageType: ''
    returnType: int
    signature: 'int execute_xpath_expression(const char* filename, const xmlChar*
      xpathExpr, const xmlChar* nsList) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libxml2/example/xpath1.c:202,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath1.c:205,1
    - Dst: assert
      Src: /src/libxml2/example/xpath1.c:207,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath1.c:218,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath1.c:215,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath1.c:224,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath1.c:227,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath1.c:232,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - nodes
    - output
    argTypes:
    - xmlNodeSetPtr
    - FILE*
    constantsTouched: []
    func_position:
      end: 235
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 235
    functionName: print_xpath_nodes
    functionSourceFile: /src/libxml2/example/xpath1.c
    functionUses: []
    functionsReached:
    - fprintf
    - assert
    linkageType: ''
    returnType: void
    signature: 'void print_xpath_nodes(xmlNodeSetPtr nodes, FILE* output) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/libxml2/example/xpath1.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - (argv[1], BAD_CAST argv[2], (argc > 3)
    - ': NULL'
    argTypes:
    - execute_xpath_expression
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: if
    functionSourceFile: /src/libxml2/example/xpath1.c
    functionUses: []
    functionsReached:
    - usage
    linkageType: ''
    returnType: LIBXML_TEST_VERSION
    signature: 'LIBXML_TEST_VERSION /* Do the main job */ if(execute_xpath_expression(argv[1],
      BAD_CAST argv[2], (argc > 3) ? BAD_CAST argv[3] : NULL) < 0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/example/xpath1.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: main
    functionSourceFile: /src/libxml2/example/xpath1.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/example/xpath1.c:32,1
    - Dst: usage
      Src: /src/libxml2/example/xpath1.c:33,1
    - Dst: usage
      Src: /src/libxml2/example/xpath1.c:43,1
    - Dst: xmlInitParser
      Src: /src/libxml2/example/xpath1.c:38,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 48
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 48
    functionName: main
    functionSourceFile: /src/libxml2/example/xpath1.c
    functionUses: []
    functionsReached:
    - usage
    - fprintf
    - xmlInitParser
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libxml2/example/xpath1.c:145,1
    - Dst: xmlStrchr
      Src: /src/libxml2/example/xpath1.c:162,1
    - Dst: xmlStrdup
      Src: /src/libxml2/example/xpath1.c:148,1
    - Dst: assert
      Src: /src/libxml2/example/xpath1.c:146,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath1.c:150,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath1.c:164,1
    - Dst: xmlFree
      Src: /src/libxml2/example/xpath1.c:165,1
    - Dst: xmlStrchr
      Src: /src/libxml2/example/xpath1.c:172,1
    - Dst: xmlXPathRegisterNs
      Src: /src/libxml2/example/xpath1.c:178,1
    - Dst: fprintf
      Src: /src/libxml2/example/xpath1.c:179,1
    - Dst: xmlFree
      Src: /src/libxml2/example/xpath1.c:180,1
    - Dst: xmlFree
      Src: /src/libxml2/example/xpath1.c:185,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 2
    argNames:
    - xpathCtx
    - nsList
    argTypes:
    - xmlXPathContextPtr
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 187
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 187
    functionName: register_namespaces
    functionSourceFile: /src/libxml2/example/xpath1.c
    functionUses: []
    functionsReached:
    - xmlFree
    - assert
    - xmlStrdup
    - xmlXPathRegisterNs
    - xmlStrchr
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int register_namespaces(xmlXPathContextPtr xpathCtx, const xmlChar*
      nsList) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderConstName
      Src: /src/libxml2/example/reader1.c:28,1
    - Dst: printf
      Src: /src/libxml2/example/reader1.c:34,1
    - Dst: xmlTextReaderConstValue
      Src: /src/libxml2/example/reader1.c:32,1
    - Dst: xmlTextReaderDepth
      Src: /src/libxml2/example/reader1.c:35,1
    - Dst: xmlTextReaderNodeType
      Src: /src/libxml2/example/reader1.c:36,1
    - Dst: xmlTextReaderIsEmptyElement
      Src: /src/libxml2/example/reader1.c:38,1
    - Dst: xmlTextReaderHasValue
      Src: /src/libxml2/example/reader1.c:39,1
    - Dst: printf
      Src: /src/libxml2/example/reader1.c:41,1
    - Dst: xmlStrlen
      Src: /src/libxml2/example/reader1.c:43,1
    - Dst: printf
      Src: /src/libxml2/example/reader1.c:44,1
    - Dst: printf
      Src: /src/libxml2/example/reader1.c:46,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReaderPtr
    constantsTouched: []
    func_position:
      end: 48
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 48
    functionName: processNode
    functionSourceFile: /src/libxml2/example/reader1.c
    functionUses: []
    functionsReached:
    - xmlTextReaderHasValue
    - xmlTextReaderConstValue
    - xmlTextReaderIsEmptyElement
    - xmlStrlen
    - xmlTextReaderConstName
    - xmlTextReaderDepth
    - xmlTextReaderNodeType
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void processNode(xmlTextReaderPtr reader) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: main
    functionSourceFile: /src/libxml2/example/reader1.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlReaderForFile
      Src: /src/libxml2/example/reader1.c:61,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/example/reader1.c:63,1
    - Dst: xmlFreeTextReader
      Src: /src/libxml2/example/reader1.c:68,1
    - Dst: processNode
      Src: /src/libxml2/example/reader1.c:65,1
    - Dst: xmlTextReaderRead
      Src: /src/libxml2/example/reader1.c:66,1
    - Dst: fprintf
      Src: /src/libxml2/example/reader1.c:70,1
    - Dst: fprintf
      Src: /src/libxml2/example/reader1.c:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 75
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 75
    functionName: streamFile
    functionSourceFile: /src/libxml2/example/reader1.c
    functionUses: []
    functionsReached:
    - processNode
    - xmlTextReaderRead
    - xmlReaderForFile
    - xmlFreeTextReader
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void streamFile(const char *filename) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/example/reader1.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: main
    functionSourceFile: /src/libxml2/example/reader1.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/example/parse2.c:28,1
    - Dst: fprintf
      Src: /src/libxml2/example/parse2.c:41,1
    - Dst: fprintf
      Src: /src/libxml2/example/parse2.c:37,1
    - Dst: xmlCtxtReadFile
      Src: /src/libxml2/example/parse2.c:34,1
    - Dst: fprintf
      Src: /src/libxml2/example/parse2.c:30,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/parse2.c:43,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/example/parse2.c:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 47
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 47
    functionName: exampleFunc
    functionSourceFile: /src/libxml2/example/parse2.c
    functionUses: []
    functionsReached:
    - xmlCtxtReadFile
    - xmlFreeDoc
    - xmlFreeParserCtxt
    - fprintf
    - xmlNewParserCtxt
    linkageType: ''
    returnType: void
    signature: 'static void exampleFunc(const char *filename) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: main
    functionSourceFile: /src/libxml2/example/parse2.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadFile
      Src: /src/libxml2/example/parse1.c:25,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/parse1.c:30,1
    - Dst: fprintf
      Src: /src/libxml2/example/parse1.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: example1Func
    functionSourceFile: /src/libxml2/example/parse1.c
    functionUses: []
    functionsReached:
    - xmlReadFile
    - fprintf
    - xmlFreeDoc
    linkageType: ''
    returnType: void
    signature: 'static void example1Func(const char *filename) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 47
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 47
    functionName: main
    functionSourceFile: /src/libxml2/example/parse1.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/libxml2/example/parse4.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - mem
    - size
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: readPacket
    functionSourceFile: /src/libxml2/example/parse4.c
    functionUses: []
    functionsReached:
    - fread
    linkageType: ''
    returnType: int
    signature: 'static int readPacket(char *mem, int size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/example/parse4.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: main
    functionSourceFile: /src/libxml2/example/parse4.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: readPacket
      Src: /src/libxml2/example/parse4.c:53,1
    - Dst: readPacket
      Src: /src/libxml2/example/parse4.c:78,1
    - Dst: fprintf
      Src: /src/libxml2/example/parse4.c:69,1
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/example/parse4.c:66,1
    - Dst: fprintf
      Src: /src/libxml2/example/parse4.c:55,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/example/parse4.c:79,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/example/parse4.c:85,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/example/parse4.c:93,1
    - Dst: fprintf
      Src: /src/libxml2/example/parse4.c:96,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/parse4.c:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 103
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 103
    functionName: example4Func
    functionSourceFile: /src/libxml2/example/parse4.c
    functionUses: []
    functionsReached:
    - xmlParseChunk
    - readPacket
    - xmlCreatePushParserCtxt
    - xmlFreeParserCtxt
    - xmlFreeDoc
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void example4Func(const char *filename) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/libxml2/example/parse4.c:119,1
    - Dst: fprintf
      Src: /src/libxml2/example/parse4.c:124,1
    - Dst: fclose
      Src: /src/libxml2/example/parse4.c:122,1
    - Dst: example4Func
      Src: /src/libxml2/example/parse4.c:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 128
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 128
    functionName: main
    functionSourceFile: /src/libxml2/example/parse4.c
    functionUses: []
    functionsReached:
    - example4Func
    - fclose
    - fprintf
    - fopen
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libxml2/example/tree1.c:34,1
    - Dst: print_element_names
      Src: /src/libxml2/example/tree1.c:37,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - a_node
    argTypes:
    - xmlNode*
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: print_element_names
    functionSourceFile: /src/libxml2/example/tree1.c
    functionUses: []
    functionsReached:
    - print_element_names
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void print_element_names(xmlNode * a_node) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlReadFile
      Src: /src/libxml2/example/tree1.c:64,1
    - Dst: print_element_names
      Src: /src/libxml2/example/tree1.c:73,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/example/tree1.c:71,1
    - Dst: printf
      Src: /src/libxml2/example/tree1.c:67,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/example/tree1.c:76,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 79
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 79
    functionName: main
    functionSourceFile: /src/libxml2/example/tree1.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - xmlReadFile
    - xmlFreeDoc
    - print_element_names
    - printf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/as_is/os400/iculd.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: Qp0zSystem
    functionSourceFile: /src/icu/as_is/os400/iculd.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: 'static int Qp0zSystem(const char *cmd) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/as_is/os400/iculd.c:42,1
    - Dst: printf
      Src: /src/icu/as_is/os400/iculd.c:48,1
    - Dst: Qp0zSystem
      Src: /src/icu/as_is/os400/iculd.c:43,1
    - Dst: printf
      Src: /src/icu/as_is/os400/iculd.c:45,1
    - Dst: printf
      Src: /src/icu/as_is/os400/iculd.c:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 54
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 54
    functionName: runcmd
    functionSourceFile: /src/icu/as_is/os400/iculd.c
    functionUses: []
    functionsReached:
    - printf
    - Qp0zSystem
    linkageType: ''
    returnType: int
    signature: 'static int runcmd(const char *cmd) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/as_is/os400/iculd.c:72,1
    - Dst: printf
      Src: /src/icu/as_is/os400/iculd.c:87,1
    - Dst: strrchr
      Src: /src/icu/as_is/os400/iculd.c:98,1
    - Dst: printf
      Src: /src/icu/as_is/os400/iculd.c:114,1
    - Dst: strcpy
      Src: /src/icu/as_is/os400/iculd.c:139,1
    - Dst: readlink
      Src: /src/icu/as_is/os400/iculd.c:130,1
    - Dst: strlen
      Src: /src/icu/as_is/os400/iculd.c:118,1
    - Dst: strrchr
      Src: /src/icu/as_is/os400/iculd.c:167,1
    - Dst: strcat
      Src: /src/icu/as_is/os400/iculd.c:183,1
    - Dst: strncat
      Src: /src/icu/as_is/os400/iculd.c:185,1
    - Dst: printf
      Src: /src/icu/as_is/os400/iculd.c:192,1
    - Dst: strcat
      Src: /src/icu/as_is/os400/iculd.c:196,1
    - Dst: printf
      Src: /src/icu/as_is/os400/iculd.c:233,1
    - Dst: printf
      Src: /src/icu/as_is/os400/iculd.c:84,1
    - Dst: strrchr
      Src: /src/icu/as_is/os400/iculd.c:133,1
    - Dst: strcat
      Src: /src/icu/as_is/os400/iculd.c:149,1
    - Dst: strncat
      Src: /src/icu/as_is/os400/iculd.c:151,1
    - Dst: strcat
      Src: /src/icu/as_is/os400/iculd.c:152,1
    - Dst: strrchr
      Src: /src/icu/as_is/os400/iculd.c:170,1
    - Dst: strlen
      Src: /src/icu/as_is/os400/iculd.c:175,1
    - Dst: strlen
      Src: /src/icu/as_is/os400/iculd.c:197,1
    - Dst: printf
      Src: /src/icu/as_is/os400/iculd.c:207,1
    - Dst: symlink
      Src: /src/icu/as_is/os400/iculd.c:234,1
    - Dst: perror
      Src: /src/icu/as_is/os400/iculd.c:235,1
    - Dst: getenv
      Src: /src/icu/as_is/os400/iculd.c:66,1
    - Dst: printf
      Src: /src/icu/as_is/os400/iculd.c:70,1
    - Dst: printf
      Src: /src/icu/as_is/os400/iculd.c:68,1
    - Dst: printf
      Src: /src/icu/as_is/os400/iculd.c:90,1
    - Dst: printf
      Src: /src/icu/as_is/os400/iculd.c:93,1
    - Dst: strncmp
      Src: /src/icu/as_is/os400/iculd.c:106,1
    - Dst: strrchr
      Src: /src/icu/as_is/os400/iculd.c:136,1
    - Dst: strcat
      Src: /src/icu/as_is/os400/iculd.c:107,1
    - Dst: strlen
      Src: /src/icu/as_is/os400/iculd.c:141,1
    - Dst: strcat
      Src: /src/icu/as_is/os400/iculd.c:184,1
    - Dst: strcat
      Src: /src/icu/as_is/os400/iculd.c:186,1
    - Dst: sprintf
      Src: /src/icu/as_is/os400/iculd.c:211,1
    - Dst: printf
      Src: /src/icu/as_is/os400/iculd.c:109,1
    - Dst: strcat
      Src: /src/icu/as_is/os400/iculd.c:150,1
    - Dst: readlink
      Src: /src/icu/as_is/os400/iculd.c:164,1
    - Dst: strcpy
      Src: /src/icu/as_is/os400/iculd.c:173,1
    - Dst: strrchr
      Src: /src/icu/as_is/os400/iculd.c:190,1
    - Dst: strcat
      Src: /src/icu/as_is/os400/iculd.c:195,1
    - Dst: strncat
      Src: /src/icu/as_is/os400/iculd.c:197,1
    - Dst: strcat
      Src: /src/icu/as_is/os400/iculd.c:198,1
    - Dst: printf
      Src: /src/icu/as_is/os400/iculd.c:200,1
    - Dst: runcmd
      Src: /src/icu/as_is/os400/iculd.c:223,1
    - Dst: sprintf
      Src: /src/icu/as_is/os400/iculd.c:230,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 135
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 242
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 242
    functionName: main
    functionSourceFile: /src/icu/as_is/os400/iculd.c
    functionUses: []
    functionsReached:
    - sprintf
    - runcmd
    - readlink
    - strncat
    - symlink
    - strrchr
    - strcpy
    - strncmp
    - strlen
    - getenv
    - printf
    - perror
    - strcat
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, const char *argv[]) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: std
    functionSourceFile: /src/icu/source/io/unicode/ustream.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace std '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getAvailableLocales
      Src: /src/icu/source/test/fuzzer/fuzzer_utils.h:18,1
    - Dst: assert
      Src: /src/icu/source/test/fuzzer/fuzzer_utils.h:19,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - rnd
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: GetRandomLocale
    functionSourceFile: /src/icu/source/test/fuzzer/fuzzer_utils.h
    functionUses: []
    functionsReached:
    - getAvailableLocales
    - assert
    linkageType: ''
    returnType: icu
    signature: 'const icu ::Locale& GetRandomLocale(uint16_t rnd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/spreptst.c:50,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/spreptst.c:54,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/spreptst.c:53,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/spreptst.c:51,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/spreptst.c:52,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/spreptst.c:55,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/spreptst.c:56,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/spreptst.c:58,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/spreptst.c:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: addUStringPrepTest
    functionSourceFile: /src/icu/source/test/cintltst/spreptst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addUStringPrepTest(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/spreptst.c:306,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/spreptst.c:308,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 5
    argNames:
    - src
    - srcLen
    - dest
    - destCapacity
    - status
    argTypes:
    - char*
    - int32_t
    - char*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 311
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 311
    functionName: unescapeData
    functionSourceFile: /src/icu/source/test/cintltst/spreptst.c
    functionUses: []
    functionsReached:
    - u_strToUTF8
    - u_unescape
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t unescapeData(const char* src, int32_t srcLen, char*
      dest, int32_t destCapacity, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/spreptst.c:83,1
    - Dst: doStringPrepTest
      Src: /src/icu/source/test/cintltst/spreptst.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: Test_nfs4_cis_prep_data
    functionSourceFile: /src/icu/source/test/cintltst/spreptst.c
    functionUses: []
    functionsReached:
    - doStringPrepTest
    - log_verbose
    linkageType: ''
    returnType: void
    signature: 'static void Test_nfs4_cis_prep_data(void) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/spreptst.c:495,1
    - Dst: nfs4_cs_prepare
      Src: /src/icu/source/test/cintltst/spreptst.c:508,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:510,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:519,1
    - Dst: nfs4_cs_prepare
      Src: /src/icu/source/test/cintltst/spreptst.c:531,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:533,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:542,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/spreptst.c:551,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/spreptst.c:552,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:562,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:582,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:585,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:584,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/spreptst.c:588,1
    - Dst: unescapeData
      Src: /src/icu/source/test/cintltst/spreptst.c:576,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/spreptst.c:494,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:495,1
    - Dst: unescapeData
      Src: /src/icu/source/test/cintltst/spreptst.c:505,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/spreptst.c:509,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:510,1
    - Dst: unescapeData
      Src: /src/icu/source/test/cintltst/spreptst.c:528,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/spreptst.c:532,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:533,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:558,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:559,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/spreptst.c:581,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:591,1
    - Dst: unescapeData
      Src: /src/icu/source/test/cintltst/spreptst.c:577,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/spreptst.c:578,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/spreptst.c:493,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/spreptst.c:505,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/spreptst.c:506,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:516,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/spreptst.c:529,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/spreptst.c:528,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:539,1
    - Dst: nfs4_cs_prepare
      Src: /src/icu/source/test/cintltst/spreptst.c:554,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:556,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:565,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:588,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:591,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:582,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:513,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:519,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:512,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:535,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:536,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:542,1
    - Dst: unescapeData
      Src: /src/icu/source/test/cintltst/spreptst.c:551,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/spreptst.c:555,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:556,1
    - Dst: nfs4_cs_prepare
      Src: /src/icu/source/test/cintltst/spreptst.c:580,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/spreptst.c:576,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/spreptst.c:577,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:565,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 89
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 594
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 594
    functionName: Test_nfs4_cs_prep
    functionSourceFile: /src/icu/source/test/cintltst/spreptst.c
    functionUses: []
    functionsReached:
    - unescapeData
    - U_FAILURE
    - loadTestData
    - log_data_err
    - strcmp
    - U_SUCCESS
    - log_err
    - strlen
    - u_errorName
    - nfs4_cs_prepare
    linkageType: ''
    returnType: void
    signature: 'static void Test_nfs4_cs_prep(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/spreptst.c:605,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/spreptst.c:606,1
    - Dst: usprep_open
      Src: /src/icu/source/test/cintltst/spreptst.c:611,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/spreptst.c:607,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:607,1
    - Dst: usprep_prepare
      Src: /src/icu/source/test/cintltst/spreptst.c:612,1
    - Dst: usprep_close
      Src: /src/icu/source/test/cintltst/spreptst.c:614,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 615
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 615
    functionName: TestBEAMWarning
    functionSourceFile: /src/icu/source/test/cintltst/spreptst.c
    functionUses: []
    functionsReached:
    - usprep_close
    - usprep_open
    - U_FAILURE
    - loadTestData
    - log_data_err
    - usprep_prepare
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestBEAMWarning() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/spreptst.c:65,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/spreptst.c:71,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/spreptst.c:67,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:67,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/spreptst.c:66,1
    - Dst: doStringPrepTest
      Src: /src/icu/source/test/cintltst/spreptst.c:72,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/spreptst.c:74,1
    - Dst: doStringPrepTest
      Src: /src/icu/source/test/cintltst/spreptst.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 79
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 79
    functionName: Test_nfs4_cs_prep_data
    functionSourceFile: /src/icu/source/test/cintltst/spreptst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - doStringPrepTest
    - loadTestData
    - log_data_err
    - log_verbose
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void Test_nfs4_cs_prep_data(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/spreptst.c:89,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:91,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/spreptst.c:95,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/spreptst.c:91,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/spreptst.c:90,1
    - Dst: doStringPrepTest
      Src: /src/icu/source/test/cintltst/spreptst.c:96,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/spreptst.c:99,1
    - Dst: doStringPrepTest
      Src: /src/icu/source/test/cintltst/spreptst.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 102
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 102
    functionName: Test_nfs4_mixed_prep_data
    functionSourceFile: /src/icu/source/test/cintltst/spreptst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - doStringPrepTest
    - loadTestData
    - log_data_err
    - log_verbose
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void Test_nfs4_mixed_prep_data(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/spreptst.c:317,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/spreptst.c:318,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/spreptst.c:319,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/spreptst.c:323,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:319,1
    - Dst: nfs4_cis_prepare
      Src: /src/icu/source/test/cintltst/spreptst.c:332,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/spreptst.c:332,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/spreptst.c:335,1
    - Dst: nfs4_cis_prepare
      Src: /src/icu/source/test/cintltst/spreptst.c:336,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/spreptst.c:336,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:340,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:340,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/spreptst.c:340,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/spreptst.c:342,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/spreptst.c:345,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:342,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:343,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 347
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 347
    functionName: Test_nfs4_cis_prep
    functionSourceFile: /src/icu/source/test/cintltst/spreptst.c
    functionUses: []
    functionsReached:
    - malloc
    - U_FAILURE
    - loadTestData
    - log_data_err
    - strcmp
    - U_SUCCESS
    - free
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    - strlen
    - nfs4_cis_prepare
    linkageType: ''
    returnType: void
    signature: 'static void Test_nfs4_cis_prep(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/spreptst.c:447,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:438,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/spreptst.c:437,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:454,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:454,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/spreptst.c:460,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:483,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:483,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/spreptst.c:436,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/spreptst.c:452,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/spreptst.c:463,1
    - Dst: nfs4_mixed_prepare
      Src: /src/icu/source/test/cintltst/spreptst.c:480,1
    - Dst: unescapeData
      Src: /src/icu/source/test/cintltst/spreptst.c:452,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/spreptst.c:453,1
    - Dst: unescapeData
      Src: /src/icu/source/test/cintltst/spreptst.c:478,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/spreptst.c:438,1
    - Dst: nfs4_mixed_prepare
      Src: /src/icu/source/test/cintltst/spreptst.c:461,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/spreptst.c:465,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/spreptst.c:478,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:465,1
    - Dst: nfs4_mixed_prepare
      Src: /src/icu/source/test/cintltst/spreptst.c:457,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/spreptst.c:464,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/spreptst.c:483,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 488
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 488
    functionName: Test_nfs4_mixed_prep
    functionSourceFile: /src/icu/source/test/cintltst/spreptst.c
    functionUses: []
    functionsReached:
    - nfs4_mixed_prepare
    - malloc
    - unescapeData
    - U_FAILURE
    - loadTestData
    - log_data_err
    - free
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void Test_nfs4_mixed_prep(void) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:724,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:730,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:726,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:728,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:732,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:734,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:736,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:738,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:740,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:742,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:744,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:746,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:748,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 1
    argNames:
    - profileName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 753
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 753
    functionName: getTypeFromProfileName
    functionSourceFile: /src/icu/source/test/cintltst/spreptst.c
    functionUses: []
    functionsReached:
    - uprv_strcmp
    linkageType: ''
    returnType: UStringPrepProfileType
    signature: 'UStringPrepProfileType getTypeFromProfileName(const char* profileName) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/spreptst.c:764,1
    - Dst: getTypeFromProfileName
      Src: /src/icu/source/test/cintltst/spreptst.c:771,1
    - Dst: usprep_openByType
      Src: /src/icu/source/test/cintltst/spreptst.c:771,1
    - Dst: uprv_strstr
      Src: /src/icu/source/test/cintltst/spreptst.c:765,1
    - Dst: usprep_close
      Src: /src/icu/source/test/cintltst/spreptst.c:767,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/spreptst.c:772,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/spreptst.c:773,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/spreptst.c:784,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/spreptst.c:785,1
    - Dst: usprep_prepare
      Src: /src/icu/source/test/cintltst/spreptst.c:787,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/spreptst.c:800,1
    - Dst: uprv_strstr
      Src: /src/icu/source/test/cintltst/spreptst.c:789,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:801,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:790,1
    - Dst: uprv_strstr
      Src: /src/icu/source/test/cintltst/spreptst.c:796,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/spreptst.c:788,1
    - Dst: usprep_close
      Src: /src/icu/source/test/cintltst/spreptst.c:807,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:797,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 809
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 809
    functionName: TestStringPrepProfiles
    functionSourceFile: /src/icu/source/test/cintltst/spreptst.c
    functionUses: []
    functionsReached:
    - usprep_close
    - u_unescape
    - usprep_openByType
    - U_FAILURE
    - uprv_strstr
    - log_data_err
    - usprep_prepare
    - log_err
    - UPRV_LENGTHOF
    - u_strcmp
    - getTypeFromProfileName
    linkageType: ''
    returnType: void
    signature: 'static void TestStringPrepProfiles(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: usprep_open
      Src: /src/icu/source/test/cintltst/spreptst.c:621,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:627,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:623,1
    - Dst: usprep_prepare
      Src: /src/icu/source/test/cintltst/spreptst.c:630,1
    - Dst: usprep_prepare
      Src: /src/icu/source/test/cintltst/spreptst.c:625,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/spreptst.c:632,1
    - Dst: usprep_close
      Src: /src/icu/source/test/cintltst/spreptst.c:636,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 637
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 637
    functionName: TestCoverage
    functionSourceFile: /src/icu/source/test/cintltst/spreptst.c
    functionUses: []
    functionsReached:
    - usprep_prepare
    - usprep_close
    - log_err
    - usprep_open
    linkageType: ''
    returnType: void
    signature: 'static void TestCoverage(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNewConvertWithBufferSizes
      Src: /src/icu/source/test/cintltst/nucnvtst.c:238,1
    - Dst: TestNewConvertWithBufferSizes
      Src: /src/icu/source/test/cintltst/nucnvtst.c:241,1
    - Dst: TestNewConvertWithBufferSizes
      Src: /src/icu/source/test/cintltst/nucnvtst.c:239,1
    - Dst: TestNewConvertWithBufferSizes
      Src: /src/icu/source/test/cintltst/nucnvtst.c:242,1
    - Dst: TestNewConvertWithBufferSizes
      Src: /src/icu/source/test/cintltst/nucnvtst.c:240,1
    - Dst: TestNewConvertWithBufferSizes
      Src: /src/icu/source/test/cintltst/nucnvtst.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 246
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 246
    functionName: TestOutBufSizes
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - TestNewConvertWithBufferSizes
    linkageType: ''
    returnType: void
    signature: 'static void TestOutBufSizes(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_getStarters
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1423,1
    - Dst: TestConverterType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1450,1
    - Dst: TestConverterType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1434,1
    - Dst: TestConverterType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1441,1
    - Dst: TestConverterType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1443,1
    - Dst: TestConverterType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1445,1
    - Dst: TestConverterType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1456,1
    - Dst: TestConverterType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1459,1
    - Dst: TestConverterType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1463,1
    - Dst: TestConverterType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1465,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1412,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1431,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1408,1
    - Dst: TestConverterType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1439,1
    - Dst: TestConverterType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1437,1
    - Dst: TestConverterType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1442,1
    - Dst: TestConverterType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1444,1
    - Dst: TestConverterType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1462,1
    - Dst: TestConverterType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1464,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1411,1
    - Dst: ucnv_getType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1417,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1410,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1418,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1420,1
    - Dst: TestConverterType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1433,1
    - Dst: TestConverterType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1453,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1372
    functionDepth: 0
    functionLinenumber: 1372
    functionLinenumberEnd: 1466
    functionName: TestConverterTypesAndStarters
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - TestConverterType
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - ucnv_getType
    - log_verbose
    - log_err
    - ucnv_getStarters
    linkageType: ''
    returnType: void
    signature: 'static void TestConverterTypesAndStarters() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1883,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1885,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1885,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1888,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1884,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1890,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1891,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1892,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1892,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1893,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1893,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1895,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1855
    functionDepth: 0
    functionLinenumber: 1855
    functionLinenumberEnd: 1896
    functionName: TestIMAP
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - TestNextUChar
    - uprv_strcmp
    - log_err
    - TestNextUCharError
    - ucnv_getName
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestIMAP() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2016,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2018,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2018,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2021,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2017,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2023,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2026,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2029,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2031,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 1963
    functionDepth: 0
    functionLinenumber: 1963
    functionLinenumberEnd: 2032
    functionName: TestCESU8
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - TestNextUChar
    - ucnv_setToUCallBack
    - TestNextUCharError
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestCESU8() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2977,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2984,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2984,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2983,1
    - Dst: ucnv_getNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2980,1
    - Dst: U16_IS_LEAD
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2987,1
    - Dst: U16_NEXT
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2989,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2995,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 5
    argNames:
    - cnv
    - source
    - limit
    - results
    - message
    argTypes:
    - UConverter*
    - char*
    - char*
    - uint16_t
    - char*
    constantsTouched: []
    func_position:
      end: 2999
      start: 2969
    functionDepth: 0
    functionLinenumber: 2969
    functionLinenumberEnd: 2999
    functionName: TestGetNextUChar2022
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - U16_IS_LEAD
    - U_FAILURE
    - U16_NEXT
    - ucnv_getNextUChar
    - ucnv_reset
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestGetNextUChar2022(UConverter* cnv, const char* source,
      const char* limit, const uint16_t results[], const char* message) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3807,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3812,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3808,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3809,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3809,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3813,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3814,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3814,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3822,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3827,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3829,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3834,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3829,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3828,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3837
      start: 3791
    functionDepth: 0
    functionLinenumber: 3791
    functionLinenumberEnd: 3837
    functionName: TestJitterbug2346
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - ucnv_toUnicode
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - log_err
    - ucnv_fromUnicode
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestJitterbug2346() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3137,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3143,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3145,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3151,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3149,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3111,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3114,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3128,1
    - Dst: TestSmallTargetBuffer
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3143,1
    - Dst: TestGetNextUChar2022
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3142,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3121,1
    - Dst: TestToAndFromUChars
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3145,1
    - Dst: TestJitterbug930
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3146,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3152,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3103,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3105,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3106,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3107,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3112,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3119,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3129,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3121,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3130,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3144,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3107,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3120,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3130,1
    - Dst: TestSmallSourceBuffer
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3144,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3150,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3153
      start: 3072
    functionDepth: 0
    functionLinenumber: 3072
    functionLinenumberEnd: 3153
    functionName: TestHZ
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - malloc
    - ucnv_close
    - ucnv_toUnicode
    - TestSmallSourceBuffer
    - TestToAndFromUChars
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - TestGetNextUChar2022
    - TestSmallTargetBuffer
    - free
    - log_err
    - ucnv_fromUnicode
    - UPRV_LENGTHOF
    - u_errorName
    - TestJitterbug930
    linkageType: ''
    returnType: void
    signature: 'static void TestHZ() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4206,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4209,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4213,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4208,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4194,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4209,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4214,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4189,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4191,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4190,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4194,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4195,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4196,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4199,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4201,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4200,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4191,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4196,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4201,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4206,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4216
      start: 4181
    functionDepth: 0
    functionLinenumber: 4181
    functionLinenumberEnd: 4216
    functionName: TestJitterbug2411
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - ucnv_toUnicode
    - U_FAILURE
    - uprv_strlen
    - ucnv_open
    - log_data_err
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestJitterbug2411() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:252,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:256,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:258,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:267,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:275,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:290,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:301,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:307,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:310,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:315,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:259,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:264,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:268,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:281,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:283,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:291,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:293,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:304,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:311,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:313,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:323,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:253,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:260,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:265,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:269,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:286,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:292,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:294,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:308,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:312,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:326,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:333,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:329,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:331,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:255,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:257,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:263,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:266,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:272,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:278,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:280,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:289,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:295,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:309,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:330,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nucnvtst.c:318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 57
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 335
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 335
    functionName: addTestNewConvert
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addTestNewConvert(TestNode** root) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2794,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2796,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2815,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2809,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2795,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2816,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2816,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2825,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2830,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2831,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2831,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2845,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2840,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2844,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 3
    argNames:
    - source
    - sourceLimit
    - cnv
    argTypes:
    - uint16_t*
    - UChar*
    - UConverter*
    constantsTouched: []
    func_position:
      end: 2846
      start: 2778
    functionDepth: 0
    functionLinenumber: 2778
    functionLinenumberEnd: 2846
    functionName: TestSmallTargetBuffer
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - malloc
    - ucnv_toUnicode
    - U_FAILURE
    - free
    - ucnv_reset
    - log_err
    - ucnv_fromUnicode
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestSmallTargetBuffer(const uint16_t* source, const UChar*
      sourceLimit,UConverter* cnv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: my_ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3012,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3039,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3037,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3021,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3019,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3044,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3048,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3060,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3068,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - enc
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3070
      start: 3001
    functionDepth: 0
    functionLinenumber: 3001
    functionLinenumberEnd: 3070
    functionName: TestJitterbug930
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - my_ucnv_open
    - ucnv_close
    - memset
    - log_verbose
    - log_err
    - ucnv_fromUnicode
    linkageType: ''
    returnType: int
    signature: 'static int TestJitterbug930(const char* enc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4283,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4287,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4286,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4285,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4284,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4291
      start: 4218
    functionDepth: 0
    functionLinenumber: 4218
    functionLinenumberEnd: 4291
    functionName: TestJIS
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - testConvertToU
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestJIS() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4638,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4640,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4643,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4639,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4640,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4644,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4645,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4645,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4646,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4655,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4657,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4659
      start: 4619
    functionDepth: 0
    functionLinenumber: 4619
    functionLinenumberEnd: 4659
    functionName: TestJitterbug6175
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - ucnv_toUnicode
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - ucnv_setToUCallBack
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestJitterbug6175(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4348,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4349,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4350,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4353,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4350,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4354,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4355,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4355,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4360,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4361,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4362,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4362,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4369,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4375,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4376
      start: 4297
    functionDepth: 0
    functionLinenumber: 4297
    functionLinenumberEnd: 4376
    functionName: TestJitterbug915
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - ucnv_toUnicode
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - log_err
    - ucnv_fromUnicode
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestJitterbug915() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2861,1
    - Dst: ucnv_fromUChars
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2870,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2862,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2869,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2871,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2872,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2872,1
    - Dst: ucnv_toUChars
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2877,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2878,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2879,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2879,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2892,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2886,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2891,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 3
    argNames:
    - source
    - sourceLimit
    - cnv
    argTypes:
    - uint16_t*
    - UChar*
    - UConverter*
    constantsTouched: []
    func_position:
      end: 2893
      start: 2848
    functionDepth: 0
    functionLinenumber: 2848
    functionLinenumberEnd: 2893
    functionName: TestToAndFromUChars
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - malloc
    - ucnv_fromUChars
    - ucnv_toUChars
    - U_FAILURE
    - free
    - ucnv_reset
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestToAndFromUChars(const uint16_t* source, const UChar*
      sourceLimit,UConverter* cnv) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:559,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/nucnvtst.c:574,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:603,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:579,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/nucnvtst.c:609,1
    - Dst: printUSeq
      Src: /src/icu/source/test/cintltst/nucnvtst.c:625,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:631,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:633,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/nucnvtst.c:639,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:640,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:646,1
    - Dst: printf
      Src: /src/icu/source/test/cintltst/nucnvtst.c:673,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:666,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:645,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:547,1
    - Dst: ucnv_setFallback
      Src: /src/icu/source/test/cintltst/nucnvtst.c:557,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:565,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/nucnvtst.c:575,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:582,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:603,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/nucnvtst.c:599,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nucnvtst.c:620,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:629,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:641,1
    - Dst: printUSeqErr
      Src: /src/icu/source/test/cintltst/nucnvtst.c:674,1
    - Dst: printf
      Src: /src/icu/source/test/cintltst/nucnvtst.c:675,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:658,1
    - Dst: printUSeqErr
      Src: /src/icu/source/test/cintltst/nucnvtst.c:676,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/nucnvtst.c:664,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:551,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:553,1
    - Dst: my_ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:549,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:601,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:624,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:628,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:648,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:650,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:653,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:671,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:656,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:660,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:672,1
    - Dst: setNuConvTestName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:545,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:607,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:588,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/nucnvtst.c:620,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/nucnvtst.c:621,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nucnvtst.c:621,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:635,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:643,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:651,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:655,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 129
    argCount: 7
    argNames:
    - source
    - sourcelen
    - expect
    - expectlen
    - codepage
    - expectOffsets
    - useFallback
    argTypes:
    - uint8_t*
    - int
    - UChar*
    - int
    - char*
    - int32_t*
    - UBool
    constantsTouched: []
    func_position:
      end: 679
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 679
    functionName: testConvertToU
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - printUSeq
    - ucnv_setFallback
    - U_SUCCESS
    - nct_min
    - printf
    - U_FAILURE
    - log_data_err
    - log_verbose
    - memcmp
    - UPRV_LENGTHOF
    - getTestOption
    - ucnv_toUnicode
    - printUSeqErr
    - log_err
    - sprintf
    - my_ucnv_open
    - setNuConvTestName
    - ucnv_close
    - myErrorName
    - strlen
    linkageType: ''
    returnType: ETestConvertResult
    signature: 'static ETestConvertResult testConvertToU( const uint8_t *source, int
      sourcelen, const UChar *expect, int expectlen, const char *codepage, const int32_t
      *expectOffsets, UBool useFallback) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - offset
    - context
    argTypes:
    - int32_t
    - void*
    constantsTouched: []
    func_position:
      end: 3469
      start: 3466
    functionDepth: 0
    functionLinenumber: 3466
    functionLinenumberEnd: 3469
    functionName: _charAt
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UChar
    signature: 'static UChar U_CALLCONV _charAt(int32_t offset, void *context) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4775,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4776,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4780,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4777,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4777,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4781,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4782
      start: 4728
    functionDepth: 0
    functionLinenumber: 4728
    functionLinenumberEnd: 4782
    functionName: TestGB18030
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - TestNextUChar
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestGB18030() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5473,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5474,1
    - Dst: ucnv_fromUChars
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5481,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5475,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5475,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5481,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5484,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5488,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5489,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5489,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5492,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5493
      start: 5467
    functionDepth: 0
    functionLinenumber: 5467
    functionLinenumberEnd: 5493
    functionName: TestJitterbug1293
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - ucnv_fromUChars
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - u_strlen
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestJitterbug1293() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:151,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:152,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - len
    argTypes:
    - UChar*
    - int
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: printUSeq
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - log_verbose
    linkageType: ''
    returnType: void
    signature: 'static void printUSeq(const UChar* a, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/nucnvtst.c:168,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/nucnvtst.c:171,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/nucnvtst.c:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - len
    argTypes:
    - UChar*
    - int
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 172
    functionName: printUSeqErr
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void printUSeqErr(const UChar* a, int len) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TestAmbiguousConverter
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1537,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1549,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1561,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1560,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1569,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1580,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1589,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1591,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1593,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1546,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1555,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1564,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1560,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1569,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1570,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1579,1
    - Dst: ucnv_fixFileSeparator
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1588,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1594,1
    - Dst: ucnv_getAvailableName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1534,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1538,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1535,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1540,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1547,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1563,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1556,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1565,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1573,1
    - Dst: ucnv_isAmbiguous
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1577,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1536,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1552,1
    - Dst: ucnv_toUChars
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1560,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1553,1
    - Dst: ucnv_toUChars
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1569,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1572,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1574,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1581,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1584,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1586,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1596
    functionName: TestAmbiguous
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_getAvailableName
    - ucnv_close
    - ucnv_fixFileSeparator
    - ucnv_toUChars
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - U_SUCCESS
    - ucnv_isAmbiguous
    - TestAmbiguousConverter
    - log_err
    - UPRV_LENGTHOF
    - u_strcmp
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestAmbiguous() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1840,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1841,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1842,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1842,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1845,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1847,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1848,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1849,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1849,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1850,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1850,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1852,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1812
    functionDepth: 0
    functionLinenumber: 1812
    functionLinenumberEnd: 1853
    functionName: TestUTF7
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - TestNextUChar
    - uprv_strcmp
    - log_err
    - TestNextUCharError
    - ucnv_getName
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUTF7() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2116,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2121,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2118,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2118,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2117,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2123,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2127,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2128,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2141,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2092
    functionDepth: 0
    functionLinenumber: 2092
    functionLinenumberEnd: 2145
    functionName: TestUTF16BE
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - TestNextUChar
    - ucnv_setToUCallBack
    - log_err
    - TestNextUCharError
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUTF16BE() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2170,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2172,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2171,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2172,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2175,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2177,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2181,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2182,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2195,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2199,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2147
    functionDepth: 0
    functionLinenumber: 2147
    functionLinenumberEnd: 2200
    functionName: TestUTF16LE
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - TestNextUChar
    - ucnv_setToUCallBack
    - log_err
    - TestNextUCharError
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUTF16LE() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2383,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2385,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2385,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2388,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2384,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2391,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2394,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2397,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2399,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2400
      start: 2331
    functionDepth: 0
    functionLinenumber: 2331
    functionLinenumberEnd: 2400
    functionName: TestUTF32LE
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - TestNextUChar
    - ucnv_setToUCallBack
    - TestNextUCharError
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUTF32LE() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2547,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2549,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2549,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2548,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2552,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2554,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2562,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2563
      start: 2530
    functionDepth: 0
    functionLinenumber: 2530
    functionLinenumberEnd: 2563
    functionName: TestSBCS
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - TestNextUChar
    - TestNextUCharError
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestSBCS() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/nucnvtst.c:159,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/nucnvtst.c:161,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/nucnvtst.c:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - len
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 163
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 163
    functionName: printSeqErr
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void printSeqErr(const unsigned char* a, int len) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_getNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:185,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:189,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:196,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:188,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:189,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 5
    argNames:
    - cnv
    - source
    - limit
    - results
    - message
    argTypes:
    - UConverter*
    - char*
    - char*
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 202
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 202
    functionName: TestNextUChar
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_getNextUChar
    - U_FAILURE
    - u_errorName
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestNextUChar(UConverter* cnv, const char* source, const
      char* limit, const int32_t results[], const char* message) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2911,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2914,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2935,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2929,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2912,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2936,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2936,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2947,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2952,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2953,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2953,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2962,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2966,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2967,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 64
    argCount: 3
    argNames:
    - source
    - sourceLimit
    - cnv
    argTypes:
    - uint16_t*
    - UChar*
    - UConverter*
    constantsTouched: []
    func_position:
      end: 2968
      start: 2895
    functionDepth: 0
    functionLinenumber: 2895
    functionLinenumberEnd: 2968
    functionName: TestSmallSourceBuffer
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - malloc
    - ucnv_toUnicode
    - U_FAILURE
    - free
    - ucnv_reset
    - log_err
    - ucnv_fromUnicode
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestSmallSourceBuffer(const uint16_t* source, const UChar*
      sourceLimit,UConverter* cnv) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3475,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3499,1
    - Dst: u_unescapeAt
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3489,1
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3497,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3483,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 5
    argNames:
    - dst
    - dstLen
    - src
    - srcLen
    - status
    argTypes:
    - UChar*
    - int32_t
    - char*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 3513
      start: 3471
    functionDepth: 0
    functionLinenumber: 3471
    functionLinenumberEnd: 3513
    functionName: unescape
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - U16_TRAIL
    - U_FAILURE
    - uprv_strlen
    - u_unescapeAt
    - U16_LEAD
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t unescape(UChar* dst, int32_t dstLen,const char* src,int32_t
      srcLen,UErrorCode *status) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3871,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3872,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3873,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3885,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3893,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3916,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3918,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3873,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3886,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3887,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3894,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3895,1
    - Dst: TestSmallSourceBuffer
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3916,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3919,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3877,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3880,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3887,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3895,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3902,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3910,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3915,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3878,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3913,1
    - Dst: TestSmallTargetBuffer
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3915,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3917,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3920
      start: 3839
    functionDepth: 0
    functionLinenumber: 3839
    functionLinenumberEnd: 3920
    functionName: TestISO_2022_JP_1
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - malloc
    - ucnv_close
    - ucnv_toUnicode
    - TestSmallSourceBuffer
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - TestSmallTargetBuffer
    - free
    - ucnv_reset
    - log_err
    - TestNextUCharError
    - ucnv_fromUnicode
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestISO_2022_JP_1() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5611,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5613,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5614,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5612,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5614,1
    - Dst: ucnv_isFixedWidth
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5618,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5619,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5621,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5624,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5625,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5627,1
    - Dst: ucnv_isFixedWidth
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5631,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5626,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5632,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5634,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5627,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5636
      start: 5592
    functionDepth: 0
    functionLinenumber: 5592
    functionLinenumberEnd: 5636
    functionName: TestIsFixedWidth
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_isFixedWidth
    - ucnv_open
    - log_data_err
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestIsFixedWidth() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4433,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4435,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4434,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4440,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4449,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4457,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4458,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4464,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4473,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4478,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4485,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4435,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4458,1
    - Dst: TestSmallSourceBuffer
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4473,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4431,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4447,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4467,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4472,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4483,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4439,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4442,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4448,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4456,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4449,1
    - Dst: TestSmallTargetBuffer
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4472,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4475,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4482,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4484,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4486
      start: 4378
    functionDepth: 0
    functionLinenumber: 4378
    functionLinenumberEnd: 4486
    functionName: TestISO_2022_CN_EXT
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - malloc
    - ucnv_close
    - ucnv_toUnicode
    - TestSmallSourceBuffer
    - U_FAILURE
    - TestNextUCharError
    - ucnv_open
    - log_data_err
    - TestSmallTargetBuffer
    - free
    - log_verbose
    - log_err
    - ucnv_reset
    - ucnv_fromUnicode
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestISO_2022_CN_EXT() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4699,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4700,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4704,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4701,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4701,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4705,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4707,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4708,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4712,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4715,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4720,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4724,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4723,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4718,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4726
      start: 4661
    functionDepth: 0
    functionLinenumber: 4661
    functionLinenumberEnd: 4726
    functionName: TestEBCDIC_STATEFUL
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - TestNextUChar
    - ucnv_reset
    - TestNextUCharError
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestEBCDIC_STATEFUL() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3960,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3964,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3969,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3976,1
    - Dst: TestSmallTargetBuffer
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3999,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3986,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3987,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4003,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4010,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3964,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3977,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3978,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3987,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4000,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4001,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4006,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4011,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3963,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3962,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3978,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3994,1
    - Dst: TestSmallSourceBuffer
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4000,1
    - Dst: TestToAndFromUChars
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4001,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4012,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3968,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3971,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3999,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3985,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4013,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4014
      start: 3922
    functionDepth: 0
    functionLinenumber: 3922
    functionLinenumberEnd: 4014
    functionName: TestISO_2022_JP_2
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - malloc
    - ucnv_close
    - ucnv_toUnicode
    - TestSmallSourceBuffer
    - TestToAndFromUChars
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - TestSmallTargetBuffer
    - free
    - ucnv_reset
    - log_err
    - TestNextUCharError
    - ucnv_fromUnicode
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestISO_2022_JP_2() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TestConv
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3523,1
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3537,1
    - Dst: TestConv
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3526,1
    - Dst: TestConv
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3524,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3538,1
    - Dst: TestConv
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3546,1
    - Dst: TestConv
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3551,1
    - Dst: TestConv
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3556,1
    - Dst: TestConv
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3561,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3562,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 1
    argNames:
    - cp
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3564
      start: 3515
    functionDepth: 0
    functionLinenumber: 3515
    functionLinenumberEnd: 3564
    functionName: TestFullRoundtrip
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - U16_TRAIL
    - uprv_memset
    - U16_LEAD
    - TestConv
    linkageType: ''
    returnType: void
    signature: 'static void TestFullRoundtrip(const char* cp) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_getNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:210,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:212,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:212,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:212,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:215,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 5
    argNames:
    - cnv
    - source
    - limit
    - expected
    - message
    argTypes:
    - UConverter*
    - char*
    - char*
    - UErrorCode
    - char*
    constantsTouched: []
    func_position:
      end: 218
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 218
    functionName: TestNextUCharError
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_getNextUChar
    - myErrorName
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestNextUCharError(UConverter* cnv, const char* source,
      const char* limit, UErrorCode expected, const char* message) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1261,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1264,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1267,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1268,1
    - Dst: strrchr
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1271,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1277,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1331,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1335,1
    - Dst: u_setDataDirectory
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1343,1
    - Dst: u_getDataDirectory
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1263,1
    - Dst: u_getDataDirectory
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1268,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1269,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1290,1
    - Dst: u_setDataDirectory
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1276,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1312,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1270,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1273,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1331,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1336,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1340,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1263,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1263,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1290,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1308,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1308,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1313,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1342,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1344,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1258
    functionDepth: 0
    functionLinenumber: 1258
    functionLinenumberEnd: 1347
    functionName: TestCoverageMBCS
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - malloc
    - testConvertToU
    - UPRV_LENGTHOF
    - u_setDataDirectory
    - u_getDataDirectory
    - loadTestData
    - strrchr
    - free
    - log_verbose
    - uprv_strcpy
    - strlen
    - testConvertFromU
    linkageType: ''
    returnType: void
    signature: 'static void TestCoverageMBCS() '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1677,1
    - Dst: ucnv_detectUnicodeSignature
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1680,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1682,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1681,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1682,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1685,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1686,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1690,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1790,1
    - Dst: ucnv_detectUnicodeSignature
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1794,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1796,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1799,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1806,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1801,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1795,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1796,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1598
    functionDepth: 0
    functionLinenumber: 1598
    functionLinenumberEnd: 1810
    functionName: TestSignatureDetection
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_detectUnicodeSignature
    - U_FAILURE
    - strcmp
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestSignatureDetection() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1945,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1947,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1947,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1950,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1946,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1952,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1955,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1958,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1960,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1898
    functionDepth: 0
    functionLinenumber: 1898
    functionLinenumberEnd: 1961
    functionName: TestUTF8
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - TestNextUChar
    - ucnv_setToUCallBack
    - log_err
    - TestNextUCharError
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUTF8() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2312,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2317,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2313,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2314,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2314,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2320,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2323,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2326,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2328,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2329
      start: 2260
    functionDepth: 0
    functionLinenumber: 2260
    functionLinenumberEnd: 2329
    functionName: TestUTF32BE
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - TestNextUChar
    - ucnv_setToUCallBack
    - TestNextUCharError
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUTF32BE() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2516,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2521,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2517,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2518,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2518,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2523,1
    - Dst: TestConv
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2524,1
    - Dst: TestConv
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2525,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2527,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2402
    functionDepth: 0
    functionLinenumber: 2402
    functionLinenumberEnd: 2528
    functionName: TestLATIN1
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - TestConv
    - ucnv_open
    - log_data_err
    - TestNextUChar
    - TestNextUCharError
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestLATIN1() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3342,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3352,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3343,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3367,1
    - Dst: TestGetNextUChar2022
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3368,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3374,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3329,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3327,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3328,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3343,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3360,1
    - Dst: TestSmallSourceBuffer
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3367,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3369,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3375,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3329,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3333,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3336,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3366,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3350,1
    - Dst: TestToAndFromUChars
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3369,1
    - Dst: TestJitterbug930
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3370,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3376,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3325,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3334,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3341,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3351,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3352,1
    - Dst: TestSmallTargetBuffer
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3366,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3373,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3377
      start: 3298
    functionDepth: 0
    functionLinenumber: 3298
    functionLinenumberEnd: 3377
    functionName: TestISO_2022_JP
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - malloc
    - ucnv_close
    - ucnv_toUnicode
    - TestSmallSourceBuffer
    - TestToAndFromUChars
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - TestGetNextUChar2022
    - TestSmallTargetBuffer
    - free
    - log_err
    - ucnv_fromUnicode
    - UPRV_LENGTHOF
    - u_errorName
    - TestJitterbug930
    linkageType: ''
    returnType: void
    signature: 'static void TestISO_2022_JP() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3768,1
    - Dst: unescape
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3776,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3775,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3777,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3774,1
    - Dst: TestConv
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3778,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3779,1
    - Dst: TestConv
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3781,1
    - Dst: TestConv
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3782,1
    - Dst: TestConv
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3783,1
    - Dst: TestConv
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3785,1
    - Dst: TestConv
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3787,1
    - Dst: TestConv
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3784,1
    - Dst: TestConv
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3786,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3788
      start: 3611
    functionDepth: 0
    functionLinenumber: 3611
    functionLinenumberEnd: 3788
    functionName: TestSCSU
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - unescape
    - malloc
    - uprv_strlen
    - free
    - log_verbose
    - TestConv
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestSCSU() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNewConvertWithBufferSizes
      Src: /src/icu/source/test/cintltst/nucnvtst.c:222,1
    - Dst: TestNewConvertWithBufferSizes
      Src: /src/icu/source/test/cintltst/nucnvtst.c:226,1
    - Dst: TestNewConvertWithBufferSizes
      Src: /src/icu/source/test/cintltst/nucnvtst.c:225,1
    - Dst: TestNewConvertWithBufferSizes
      Src: /src/icu/source/test/cintltst/nucnvtst.c:227,1
    - Dst: TestNewConvertWithBufferSizes
      Src: /src/icu/source/test/cintltst/nucnvtst.c:224,1
    - Dst: TestNewConvertWithBufferSizes
      Src: /src/icu/source/test/cintltst/nucnvtst.c:228,1
    - Dst: TestNewConvertWithBufferSizes
      Src: /src/icu/source/test/cintltst/nucnvtst.c:229,1
    - Dst: TestNewConvertWithBufferSizes
      Src: /src/icu/source/test/cintltst/nucnvtst.c:230,1
    - Dst: TestNewConvertWithBufferSizes
      Src: /src/icu/source/test/cintltst/nucnvtst.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 233
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 233
    functionName: TestInBufSizes
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - TestNewConvertWithBufferSizes
    linkageType: ''
    returnType: void
    signature: 'static void TestInBufSizes(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3393,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3401,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3421,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3461,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3464,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3397,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3397,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3409,1
    - Dst: TestSmallSourceBuffer
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3434,1
    - Dst: TestGetNextUChar2022
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3437,1
    - Dst: TestToAndFromUChars
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3438,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3444,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3462,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3410,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3419,1
    - Dst: TestSmallTargetBuffer
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3433,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3411,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3445,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3446,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3463,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3396,1
    - Dst: my_ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3395,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3402,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3411,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3421,1
    - Dst: TestGetNextUChar2022
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3435,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3428,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3420,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3446,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3453,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 75
    argCount: 6
    argNames:
    - in
    - len
    - conv
    - lang
    - byteArr
    - byteArrLen
    argTypes:
    - uint16_t
    - int
    - char*
    - char*
    - char
    - int
    constantsTouched: []
    func_position:
      end: 3465
      start: 3379
    functionDepth: 0
    functionLinenumber: 3379
    functionLinenumberEnd: 3465
    functionName: TestConv
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - my_ucnv_open
    - malloc
    - ucnv_close
    - ucnv_toUnicode
    - TestSmallSourceBuffer
    - TestToAndFromUChars
    - U_FAILURE
    - log_data_err
    - TestGetNextUChar2022
    - TestSmallTargetBuffer
    - free
    - log_err
    - ucnv_fromUnicode
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestConv(const uint16_t in[],int len, const char* conv,
      const char* lang, char byteArr[],int byteArrLen) '
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_setSubstChars
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4918,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4933,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5054,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5144,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5225,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5225,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5228,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5253,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5267,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5284,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4888,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4913,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5037,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5026,1
    - Dst: ucnv_getNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5006,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5119,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5137,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5186,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5218,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5252,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4975,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4924,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4892,1
    - Dst: ucnv_getSubstChars
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4908,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5083,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5181,1
    - Dst: ucnv_getNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5211,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5270,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5008,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5049,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4893,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4898,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4904,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5099,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5101,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5121,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5334,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4946,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4957,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4959,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5008,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5097,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5121,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5126,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5196,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5204,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5214,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5253,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4902,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4920,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5042,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5103,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5202,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5285,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5301,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5321,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5076,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4997,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5065,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4899,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4910,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5019,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5089,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5234,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5318,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4998,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5128,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5178,1
    - Dst: ucnv_getNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5193,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5208,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5334,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5102,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5072,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4887,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5011,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5061,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4979,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5116,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5181,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5268,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5338,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4983,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4981,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4888,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4891,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4893,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4923,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5256,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5007,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5079,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4903,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4924,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4930,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4932,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5120,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5154,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5189,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5237,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4886,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4909,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4958,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4965,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5025,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5035,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5154,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5189,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5203,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5319,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4919,1
    - Dst: ucnv_getSubstChars
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4922,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4927,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4959,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5067,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4977,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5196,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5204,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5214,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5267,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4998,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5048,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4953,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5047,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4996,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4900,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4920,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5287,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5301,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5024,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5036,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5093,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4910,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4916,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5087,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5201,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5284,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5304,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5318,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5342,1
    CyclomaticComplexity: 117
    EdgeCount: 117
    ICount: 454
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5343
      start: 4784
    functionDepth: 0
    functionLinenumber: 4784
    functionLinenumberEnd: 5343
    functionName: TestLMBCS
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_getSubstChars
    - ucnv_close
    - ucnv_toUnicode
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - strcmp
    - ucnv_fromUnicode
    - ucnv_getNextUChar
    - U_SUCCESS
    - ucnv_setToUCallBack
    - log_err
    - memcmp
    - ucnv_getName
    - UPRV_LENGTHOF
    - u_errorName
    - ucnv_setSubstChars
    linkageType: ''
    returnType: void
    signature: 'static void TestLMBCS() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5355,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5357,1
    - Dst: ucnv_getNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5362,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5356,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5363,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5365,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5369,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5370
      start: 5346
    functionDepth: 0
    functionLinenumber: 5346
    functionLinenumberEnd: 5370
    functionName: TestJitterbug255
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - ucnv_getNextUChar
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestJitterbug255() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2641,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2643,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2643,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2642,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2646,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2648,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2652,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2657,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2658,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2660,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2662
      start: 2612
    functionDepth: 0
    functionLinenumber: 2612
    functionLinenumberEnd: 2662
    functionName: TestMBCS
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - TestNextUChar
    - ucnv_setToUCallBack
    - TestNextUCharError
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestMBCS() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5386,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5387,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5388,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5391,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5392,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5392,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5393,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5394,1
    - Dst: printUSeqErr
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5395,1
    - Dst: printUSeqErr
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5396,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5399,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5402,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5404,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5403,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5406,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5400,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5401,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5400,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5407
      start: 5372
    functionDepth: 0
    functionLinenumber: 5372
    functionLinenumberEnd: 5407
    functionName: TestEBCDICUS4XML
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - ucnv_toUnicode
    - printUSeqErr
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - printSeqErr
    - log_err
    - memcmp
    - ucnv_fromUnicode
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestEBCDICUS4XML() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2676,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2678,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2687,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2678,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2689,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2690,1
    - Dst: ucnv_getNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2703,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2692,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2693,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2704,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2704,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2715,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2693,1
    - Dst: ucnv_getNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2700,1
    - Dst: ucnv_getNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2706,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2712,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2677,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2707,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2701,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2707,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2701,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2710,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2717
      start: 2665
    functionDepth: 0
    functionLinenumber: 2665
    functionLinenumberEnd: 2717
    functionName: TestICCRunout
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - log_info
    - ucnv_close
    - ucnv_toUnicode
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - ucnv_getNextUChar
    - log_verbose
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestICCRunout() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4533,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4542,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4549,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4560,1
    - Dst: TestGetNextUChar2022
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4574,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4569,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4559,1
    - Dst: TestSmallSourceBuffer
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4576,1
    - Dst: TestToAndFromUChars
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4577,1
    - Dst: TestJitterbug930
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4578,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4541,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4550,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4560,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4551,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4575,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4590,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4536,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4535,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4537,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4551,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4566,1
    - Dst: TestSmallTargetBuffer
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4575,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4580,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4587,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4537,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4544,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4558,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4576,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4577,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4583,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4588,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4589,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4591
      start: 4489
    functionDepth: 0
    functionLinenumber: 4489
    functionLinenumberEnd: 4591
    functionName: TestISO_2022_CN
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_open
    - free
    - ucnv_fromUnicode
    - u_errorName
    - TestJitterbug930
    - TestSmallSourceBuffer
    - U_FAILURE
    - log_data_err
    - TestGetNextUChar2022
    - TestSmallTargetBuffer
    - log_verbose
    - UPRV_LENGTHOF
    - ucnv_toUnicode
    - TestToAndFromUChars
    - ucnv_reset
    - log_err
    - TestNextUCharError
    - malloc
    - ucnv_close
    linkageType: ''
    returnType: void
    signature: 'static void TestISO_2022_CN() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3293,1
    - Dst: TestConv
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3294,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3296
      start: 3155
    functionDepth: 0
    functionLinenumber: 3155
    functionLinenumberEnd: 3296
    functionName: TestISCII
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - testConvertToU
    - UPRV_LENGTHOF
    - TestConv
    linkageType: ''
    returnType: void
    signature: 'static void TestISCII() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4126,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4124,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4125,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4131,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4138,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4140,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4148,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4149,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4163,1
    - Dst: TestToAndFromUChars
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4165,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4126,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4149,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4155,1
    - Dst: TestGetNextUChar2022
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4161,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4160,1
    - Dst: TestSmallSourceBuffer
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4163,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4171,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4178,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4122,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4162,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4167,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4175,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4130,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4133,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4139,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4147,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4140,1
    - Dst: TestSmallTargetBuffer
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4162,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4164,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4165,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4170,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4176,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4177,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4179
      start: 4098
    functionDepth: 0
    functionLinenumber: 4098
    functionLinenumberEnd: 4179
    functionName: TestISO_2022_KR_1
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - malloc
    - ucnv_close
    - ucnv_toUnicode
    - TestSmallSourceBuffer
    - TestToAndFromUChars
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - TestGetNextUChar2022
    - TestSmallTargetBuffer
    - free
    - ucnv_setToUCallBack
    - ucnv_reset
    - log_err
    - TestNextUCharError
    - ucnv_fromUnicode
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestISO_2022_KR_1() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_openPackage
      Src: /src/icu/source/test/cintltst/nucnvtst.c:133,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/nucnvtst.c:133,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - cnv
    - err
    argTypes:
    - char*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 137
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 137
    functionName: my_ucnv_open
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_openPackage
    - loadTestData
    - ucnv_open
    linkageType: ''
    returnType: UConverter*
    signature: 'static UConverter *my_ucnv_open(const char *cnv, UErrorCode *err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/nucnvtst.c:345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - codepage
    - direction
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 350
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 350
    functionName: setNuConvTestName
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: void
    signature: 'static void setNuConvTestName(const char *codepage, const char *direction) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:401,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:430,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:440,1
    - Dst: printSeq
      Src: /src/icu/source/test/cintltst/nucnvtst.c:462,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:464,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:469,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/nucnvtst.c:483,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:484,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/nucnvtst.c:485,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:489,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/nucnvtst.c:508,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/nucnvtst.c:476,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/nucnvtst.c:507,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:482,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:502,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:388,1
    - Dst: ucnv_setFallback
      Src: /src/icu/source/test/cintltst/nucnvtst.c:398,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/nucnvtst.c:416,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:425,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/nucnvtst.c:457,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nucnvtst.c:458,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:461,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:473,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/nucnvtst.c:475,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:496,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:505,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/nucnvtst.c:501,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/nucnvtst.c:510,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:392,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:394,1
    - Dst: my_ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:390,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:407,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/nucnvtst.c:417,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:422,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:441,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:445,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/nucnvtst.c:438,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nucnvtst.c:457,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:467,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/nucnvtst.c:458,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/nucnvtst.c:509,1
    - Dst: printUSeqErr
      Src: /src/icu/source/test/cintltst/nucnvtst.c:506,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:500,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:487,1
    - Dst: setNuConvTestName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:386,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:441,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/nucnvtst.c:448,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:465,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:472,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/nucnvtst.c:477,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:492,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:494,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/nucnvtst.c:474,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:486,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:491,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 131
    argCount: 7
    argNames:
    - source
    - sourceLen
    - expect
    - expectLen
    - codepage
    - expectOffsets
    - useFallback
    argTypes:
    - UChar*
    - int
    - uint8_t*
    - int
    - char*
    - int32_t*
    - UBool
    constantsTouched: []
    func_position:
      end: 514
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 514
    functionName: testConvertFromU
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_setFallback
    - U_SUCCESS
    - nct_min
    - ucnv_fromUnicode
    - U_FAILURE
    - log_data_err
    - log_verbose
    - memcmp
    - UPRV_LENGTHOF
    - getTestOption
    - printUSeqErr
    - log_err
    - sprintf
    - my_ucnv_open
    - setNuConvTestName
    - ucnv_close
    - printSeqErr
    - printSeq
    - myErrorName
    - strlen
    - fprintf
    linkageType: ''
    returnType: ETestConvertResult
    signature: 'static ETestConvertResult testConvertFromU( const UChar *source, int
      sourceLen, const uint8_t *expect, int expectLen, const char *codepage, const
      int32_t *expectOffsets , UBool useFallback) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:861,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:870,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:837,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:896,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:949,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:923,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:928,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:946,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1018,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:919,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1251,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1100,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:848,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:874,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:864,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:879,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1022,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:856,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:887,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:914,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:882,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1100,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:890,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:913,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:917,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1200,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1024,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1146,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:908,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1020,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1199,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1253,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:867,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:904,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1098,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:893,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:861,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:870,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1024,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1198,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:946,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:837,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:840,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:887,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:896,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:942,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:936,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:848,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:864,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:879,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:874,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:940,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:931,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:948,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1022,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:856,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:922,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:927,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:833,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:882,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:905,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:909,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:935,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:942,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1147,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1020,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:890,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1200,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:867,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1253,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:930,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1252,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1018,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:939,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:893,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/nucnvtst.c:916,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:920,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 94
    argCount: 2
    argNames:
    - outsize
    - insize
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1256
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 1256
    functionName: TestNewConvertWithBufferSizes
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - testConvertToU
    - UPRV_LENGTHOF
    - testConvertFromU
    - log_verbose
    linkageType: ''
    returnType: void
    signature: 'static void TestNewConvertWithBufferSizes(int32_t outsize, int32_t
      insize ) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1482,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1499,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1483,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1500,1
    - Dst: ucnv_isAmbiguous
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1495,1
    - Dst: ucnv_fixFileSeparator
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1506,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1509,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1509,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - cnv
    argTypes:
    - UConverter*
    constantsTouched: []
    func_position:
      end: 1513
      start: 1468
    functionDepth: 0
    functionLinenumber: 1468
    functionLinenumberEnd: 1513
    functionName: TestAmbiguousConverter
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_fixFileSeparator
    - ucnv_toUnicode
    - U_FAILURE
    - ucnv_isAmbiguous
    - log_err
    - ucnv_getName
    linkageType: ''
    returnType: void
    signature: 'static void TestAmbiguousConverter(UConverter *cnv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: my_ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1353,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1362,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1356,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1355,1
    - Dst: ucnv_getType
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1361,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1366,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:1369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - convName
    - convType
    argTypes:
    - char*
    - UConverterType
    constantsTouched: []
    func_position:
      end: 1370
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1370
    functionName: TestConverterType
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - my_ucnv_open
    - ucnv_close
    - U_FAILURE
    - log_data_err
    - ucnv_getType
    - log_verbose
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestConverterType(const char *convName, UConverterType
      convType) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2068,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2069,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2070,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2070,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2075,1
    - Dst: ucnv_resetToUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2078,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2079,1
    - Dst: ucnv_resetToUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2082,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2083,1
    - Dst: ucnv_resetToUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2086,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2087,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2089,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 2034
    functionDepth: 0
    functionLinenumber: 2034
    functionLinenumberEnd: 2090
    functionName: TestUTF16
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - TestNextUChar
    - ucnv_resetToUnicode
    - log_err
    - TestNextUCharError
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUTF16() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2236,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2237,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2238,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2238,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2243,1
    - Dst: ucnv_resetToUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2246,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2247,1
    - Dst: ucnv_resetToUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2250,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2251,1
    - Dst: ucnv_resetToUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2254,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2257,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2202
    functionDepth: 0
    functionLinenumber: 2202
    functionLinenumberEnd: 2258
    functionName: TestUTF32
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - TestNextUChar
    - ucnv_resetToUnicode
    - TestNextUCharError
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUTF32() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:142,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:144,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - len
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: printSeq
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - log_verbose
    linkageType: ''
    returnType: void
    signature: 'static void printSeq(const unsigned char* a, int len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: my_ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2590,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2591,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2595,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2592,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2592,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2597,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2601,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2606,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2607,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2609,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2610
      start: 2565
    functionDepth: 0
    functionLinenumber: 2565
    functionLinenumberEnd: 2610
    functionName: TestDBCS
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - my_ucnv_open
    - ucnv_close
    - U_FAILURE
    - log_data_err
    - TestNextUChar
    - ucnv_setToUCallBack
    - TestNextUCharError
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestDBCS() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3568,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3569,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3571,1
    - Dst: TestFullRoundtrip
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3572,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3575,1
    - Dst: TestFullRoundtrip
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3576,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3583,1
    - Dst: TestFullRoundtrip
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3584,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3591,1
    - Dst: TestFullRoundtrip
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3592,1
    - Dst: TestFullRoundtrip
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3570,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3573,1
    - Dst: TestFullRoundtrip
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3574,1
    - Dst: TestFullRoundtrip
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3582,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3581,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3589,1
    - Dst: TestFullRoundtrip
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3590,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3593,1
    - Dst: TestFullRoundtrip
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3594,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3579,1
    - Dst: TestFullRoundtrip
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3580,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3587,1
    - Dst: TestFullRoundtrip
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3588,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3577,1
    - Dst: TestFullRoundtrip
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3578,1
    - Dst: TestFullRoundtrip
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3586,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:3585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3609
      start: 3566
    functionDepth: 0
    functionLinenumber: 3566
    functionLinenumberEnd: 3609
    functionName: TestRoundTrippingAllUTF
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - getTestOption
    - TestFullRoundtrip
    - log_verbose
    linkageType: ''
    returnType: void
    signature: 'static void TestRoundTrippingAllUTF(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5426,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5427,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5428,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5454,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5435,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5461,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5427,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5434,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5436,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5440,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5444,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5420,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5425,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5422,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5421,1
    - Dst: ucol_getRules
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5432,1
    - Dst: ucnv_getMaxCharSize
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5439,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5459,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5422,1
    - Dst: ucnv_fromUChars
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5450,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5447,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5460,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5462
      start: 5412
    functionDepth: 0
    functionLinenumber: 5412
    functionLinenumberEnd: 5462
    functionName: TestJitterbug981
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - malloc
    - ucol_getRules
    - ucol_open
    - ucnv_close
    - ucnv_fromUChars
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - free
    - ucnv_reset
    - log_err
    - u_errorName
    - ucnv_getMaxCharSize
    linkageType: ''
    returnType: void
    signature: 'static void TestJitterbug981() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5566,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5574,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5571,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5575,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5573,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5575,1
    - Dst: printUSeq
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5580,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5584,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5589,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5590
      start: 5544
    functionDepth: 0
    functionLinenumber: 5544
    functionLinenumberEnd: 5590
    functionName: TestJB5275
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - printUSeq
    - ucnv_close
    - ucnv_toUnicode
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - log_err
    - strlen
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestJB5275() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4611,1
    - Dst: ucnv_cbToUWriteSub
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4615,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 6
    argNames:
    - context
    - toArgs
    - codeUnits
    - length
    - reason
    - err
    argTypes:
    - void*
    - UConverterToUnicodeArgs*
    - char*
    - int32_t
    - UConverterCallbackReason
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 4616
      start: 4601
    functionDepth: 0
    functionLinenumber: 4601
    functionLinenumberEnd: 4616
    functionName: UCNV_TO_U_CALLBACK_EMPTYSEGMENT
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_cbToUWriteSub
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void UCNV_TO_U_CALLBACK_EMPTYSEGMENT( const void *context,
      UConverterToUnicodeArgs *toArgs, const char* codeUnits, int32_t length, UConverterCallbackReason
      reason, UErrorCode * err ) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2752,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2754,1
    - Dst: TestNextUChar
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2757,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2753,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2754,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2760,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2761,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2765,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2766,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2771,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:2773,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2774
      start: 2722
    functionDepth: 0
    functionLinenumber: 2722
    functionLinenumberEnd: 2774
    functionName: TestISO_2022
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - TestNextUChar
    - ucnv_setToUCallBack
    - TestNextUCharError
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestISO_2022() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4040,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4056,1
    - Dst: TestSmallTargetBuffer
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4079,1
    - Dst: TestToAndFromUChars
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4081,1
    - Dst: TestJitterbug930
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4082,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4094,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4048,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4051,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4057,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4065,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4058,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4073,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4080,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4095,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4042,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4044,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4043,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4049,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4058,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4066,1
    - Dst: TestGetNextUChar2022
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4078,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4067,1
    - Dst: TestSmallSourceBuffer
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4080,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4084,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4044,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4067,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4079,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4081,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4087,1
    - Dst: TestNextUCharError
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4088,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4093,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:4092,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4096
      start: 4016
    functionDepth: 0
    functionLinenumber: 4016
    functionLinenumberEnd: 4096
    functionName: TestISO_2022_KR
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_open
    - free
    - ucnv_fromUnicode
    - u_errorName
    - TestJitterbug930
    - TestSmallSourceBuffer
    - U_FAILURE
    - log_data_err
    - TestGetNextUChar2022
    - TestSmallTargetBuffer
    - UPRV_LENGTHOF
    - ucnv_toUnicode
    - TestToAndFromUChars
    - ucnv_reset
    - log_err
    - TestNextUCharError
    - malloc
    - ucnv_close
    - ucnv_setToUCallBack
    linkageType: ''
    returnType: void
    signature: 'static void TestISO_2022_KR() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5513,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5518,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5521,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5522,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5522,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5526,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5527,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5528,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5529,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5529,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5541,1
    - Dst: printUSeq
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5533,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nucnvtst.c:5536,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5542
      start: 5496
    functionDepth: 0
    functionLinenumber: 5496
    functionLinenumberEnd: 5542
    functionName: TestJB5275_1
    functionSourceFile: /src/icu/source/test/cintltst/nucnvtst.c
    functionUses: []
    functionsReached:
    - printUSeq
    - ucnv_close
    - ucnv_toUnicode
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - log_verbose
    - log_err
    - strlen
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestJB5275_1() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cestst.c:80,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cestst.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: addSpanishCollTest
    functionSourceFile: /src/icu/source/test/cintltst/cestst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addSpanishCollTest(TestNode** root) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cestst.c:91,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cestst.c:93,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cestst.c:96,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cestst.c:93,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cestst.c:92,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cestst.c:97,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cestst.c:100,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cestst.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: TestTertiary
    functionSourceFile: /src/icu/source/test/cintltst/cestst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - log_verbose
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestTertiary( ) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cestst.c:110,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cestst.c:115,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cestst.c:112,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cestst.c:111,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cestst.c:112,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cestst.c:116,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cestst.c:119,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cestst.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 122
    functionName: TestPrimary
    functionSourceFile: /src/icu/source/test/cintltst/cestst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - log_verbose
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestPrimary() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiapts.c:66,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiapts.c:68,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiapts.c:67,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiapts.c:71,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiapts.c:70,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiapts.c:72,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiapts.c:73,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiapts.c:74,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiapts.c:75,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiapts.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: addBrkIterAPITest
    functionSourceFile: /src/icu/source/test/cintltst/cbiapts.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addBrkIterAPITest(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/icu/source/test/cintltst/cbiapts.c:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 1
    argNames:
    - hook
    argTypes:
    - void**
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: freeToUCharStrings
    functionSourceFile: /src/icu/source/test/cintltst/cbiapts.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void freeToUCharStrings(void **hook) '
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cbiapts.c:181,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cbiapts.c:196,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:263,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:350,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:371,1
    - Dst: utext_openUChars
      Src: /src/icu/source/test/cintltst/cbiapts.c:359,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:173,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:292,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:300,1
    - Dst: ubrk_first
      Src: /src/icu/source/test/cintltst/cbiapts.c:305,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:312,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:362,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:370,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:242,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:251,1
    - Dst: ubrk_previous
      Src: /src/icu/source/test/cintltst/cbiapts.c:272,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:207,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/cbiapts.c:214,1
    - Dst: ubrk_first
      Src: /src/icu/source/test/cintltst/cbiapts.c:289,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:311,1
    - Dst: ubrk_first
      Src: /src/icu/source/test/cintltst/cbiapts.c:316,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:322,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:357,1
    - Dst: ubrk_isBoundary
      Src: /src/icu/source/test/cintltst/cbiapts.c:275,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:259,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:206,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:221,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:223,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:327,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/cbiapts.c:352,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/cbiapts.c:176,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiapts.c:181,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/cbiapts.c:187,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:198,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiapts.c:218,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:258,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:283,1
    - Dst: ubrk_current
      Src: /src/icu/source/test/cintltst/cbiapts.c:278,1
    - Dst: ubrk_getAvailable
      Src: /src/icu/source/test/cintltst/cbiapts.c:243,1
    - Dst: ubrk_first
      Src: /src/icu/source/test/cintltst/cbiapts.c:252,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:372,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:262,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:197,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:246,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/cbiapts.c:336,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiapts.c:338,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:363,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:180,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cbiapts.c:189,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:211,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:219,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:273,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiapts.c:355,1
    - Dst: ubrk_last
      Src: /src/icu/source/test/cintltst/cbiapts.c:264,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:307,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:321,1
    - Dst: ubrk_following
      Src: /src/icu/source/test/cintltst/cbiapts.c:324,1
    - Dst: ubrk_current
      Src: /src/icu/source/test/cintltst/cbiapts.c:328,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiapts.c:361,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:178,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:202,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiapts.c:223,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:255,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:288,1
    - Dst: ubrk_preceding
      Src: /src/icu/source/test/cintltst/cbiapts.c:298,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cbiapts.c:336,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:366,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cbiapts.c:187,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cbiapts.c:214,1
    - Dst: ubrk_following
      Src: /src/icu/source/test/cintltst/cbiapts.c:294,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:318,1
    - Dst: ubrk_first
      Src: /src/icu/source/test/cintltst/cbiapts.c:323,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:231,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiapts.c:189,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:193,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:238,1
    - Dst: ubrk_getAvailable
      Src: /src/icu/source/test/cintltst/cbiapts.c:246,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:304,1
    - Dst: ubrk_current
      Src: /src/icu/source/test/cintltst/cbiapts.c:317,1
    - Dst: ubrk_preceding
      Src: /src/icu/source/test/cintltst/cbiapts.c:326,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:329,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:369,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:276,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cbiapts.c:176,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/cbiapts.c:205,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiapts.c:207,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:216,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:235,1
    - Dst: ubrk_getAvailable
      Src: /src/icu/source/test/cintltst/cbiapts.c:242,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:267,1
    - Dst: ubrk_first
      Src: /src/icu/source/test/cintltst/cbiapts.c:328,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:358,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:188,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:244,1
    - Dst: ubrk_isBoundary
      Src: /src/icu/source/test/cintltst/cbiapts.c:282,1
    - Dst: ubrk_countAvailable
      Src: /src/icu/source/test/cintltst/cbiapts.c:232,1
    - Dst: ubrk_following
      Src: /src/icu/source/test/cintltst/cbiapts.c:260,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:266,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:293,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:301,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:325,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:338,1
    - Dst: ubrk_setText
      Src: /src/icu/source/test/cintltst/cbiapts.c:354,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:184,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/cbiapts.c:196,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiapts.c:198,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:280,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:254,1
    - Dst: ubrk_following
      Src: /src/icu/source/test/cintltst/cbiapts.c:309,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:337,1
    - Dst: ubrk_first
      Src: /src/icu/source/test/cintltst/cbiapts.c:356,1
    - Dst: ubrk_setUText
      Src: /src/icu/source/test/cintltst/cbiapts.c:360,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cbiapts.c:169,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cbiapts.c:205,1
    - Dst: ubrk_previous
      Src: /src/icu/source/test/cintltst/cbiapts.c:269,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:296,1
    - Dst: ubrk_last
      Src: /src/icu/source/test/cintltst/cbiapts.c:319,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:335,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:340,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiapts.c:353,1
    - Dst: ubrk_following
      Src: /src/icu/source/test/cintltst/cbiapts.c:290,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:270,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:256,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:297,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:308,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:315,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:365,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 207
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 373
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 373
    functionName: TestBreakIteratorCAPI
    functionSourceFile: /src/icu/source/test/cintltst/cbiapts.c
    functionUses: []
    functionsReached:
    - utext_close
    - log_err_status
    - U_SUCCESS
    - ubrk_current
    - ubrk_setUText
    - ubrk_first
    - U_FAILURE
    - log_data_err
    - ubrk_countAvailable
    - u_strlen
    - ubrk_open
    - log_verbose
    - ubrk_setText
    - TEST_ASSERT
    - ubrk_close
    - ubrk_previous
    - u_uastrcpy
    - ubrk_getAvailable
    - ubrk_following
    - ubrk_next
    - utext_openUChars
    - log_err
    - TEST_ASSERT_SUCCESS
    - ubrk_isBoundary
    - myErrorName
    - ubrk_preceding
    - ubrk_last
    linkageType: ''
    returnType: void
    signature: 'static void TestBreakIteratorCAPI() '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_setText
      Src: /src/icu/source/test/cintltst/cbiapts.c:571,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:600,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:609,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:623,1
    - Dst: freeToUCharStrings
      Src: /src/icu/source/test/cintltst/cbiapts.c:633,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiapts.c:609,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:613,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:634,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:576,1
    - Dst: toUChar
      Src: /src/icu/source/test/cintltst/cbiapts.c:570,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:580,1
    - Dst: ubrk_getRuleStatus
      Src: /src/icu/source/test/cintltst/cbiapts.c:585,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:605,1
    - Dst: uprv_malloc
      Src: /src/icu/source/test/cintltst/cbiapts.c:603,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:608,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:601,1
    - Dst: ubrk_openBinaryRules
      Src: /src/icu/source/test/cintltst/cbiapts.c:611,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiapts.c:613,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/cbiapts.c:629,1
    - Dst: testOpenRules
      Src: /src/icu/source/test/cintltst/cbiapts.c:568,1
    - Dst: ubrk_first
      Src: /src/icu/source/test/cintltst/cbiapts.c:573,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:588,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:592,1
    - Dst: ubrk_getBinaryRules
      Src: /src/icu/source/test/cintltst/cbiapts.c:599,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiapts.c:601,1
    - Dst: ubrk_getBinaryRules
      Src: /src/icu/source/test/cintltst/cbiapts.c:607,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:612,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:620,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:622,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:626,1
    - Dst: ubrk_first
      Src: /src/icu/source/test/cintltst/cbiapts.c:617,1
    - Dst: ubrk_first
      Src: /src/icu/source/test/cintltst/cbiapts.c:616,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 635
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 635
    functionName: TestBreakIteratorRules
    functionSourceFile: /src/icu/source/test/cintltst/cbiapts.c
    functionUses: []
    functionsReached:
    - uprv_malloc
    - ubrk_first
    - testOpenRules
    - ubrk_getBinaryRules
    - U_FAILURE
    - uprv_free
    - ubrk_next
    - ubrk_openBinaryRules
    - toUChar
    - log_err
    - ubrk_setText
    - ubrk_close
    - u_errorName
    - ubrk_getRuleStatus
    - freeToUCharStrings
    linkageType: ''
    returnType: void
    signature: 'static void TestBreakIteratorRules() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: toUChar
      Src: /src/icu/source/test/cintltst/cbiapts.c:651,1
    - Dst: ubrk_openRules
      Src: /src/icu/source/test/cintltst/cbiapts.c:652,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:656,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiapts.c:655,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:657,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:660,1
    - Dst: freeToUCharStrings
      Src: /src/icu/source/test/cintltst/cbiapts.c:664,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 665
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 665
    functionName: TestBreakIteratorRuleError
    functionSourceFile: /src/icu/source/test/cintltst/cbiapts.c
    functionUses: []
    functionsReached:
    - log_data_err
    - ubrk_openRules
    - U_SUCCESS
    - toUChar
    - log_err
    - ubrk_close
    - freeToUCharStrings
    linkageType: ''
    returnType: void
    signature: 'static void TestBreakIteratorRuleError() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/cbiapts.c:683,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiapts.c:693,1
    - Dst: ubrk_openRules
      Src: /src/icu/source/test/cintltst/cbiapts.c:692,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/cbiapts.c:689,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:694,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:698,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:699,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/cbiapts.c:701,1
    - Dst: ubrk_getRuleStatusVec
      Src: /src/icu/source/test/cintltst/cbiapts.c:702,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiapts.c:703,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:706,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:705,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:714,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:707,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:704,1
    - Dst: ubrk_getRuleStatusVec
      Src: /src/icu/source/test/cintltst/cbiapts.c:709,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:711,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:710,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 715
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 715
    functionName: TestBreakIteratorStatusVec
    functionSourceFile: /src/icu/source/test/cintltst/cbiapts.c
    functionUses: []
    functionsReached:
    - ubrk_getRuleStatusVec
    - memset
    - ubrk_next
    - u_uastrncpy
    - ubrk_openRules
    - TEST_ASSERT
    - TEST_ASSERT_SUCCESS
    - ubrk_close
    linkageType: ''
    returnType: void
    signature: 'static void TestBreakIteratorStatusVec() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:907,1
    - Dst: ubrk_setUText
      Src: /src/icu/source/test/cintltst/cbiapts.c:913,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiapts.c:916,1
    - Dst: utext_openUChars
      Src: /src/icu/source/test/cintltst/cbiapts.c:924,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:932,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:933,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:937,1
    - Dst: utext_openUChars
      Src: /src/icu/source/test/cintltst/cbiapts.c:911,1
    - Dst: u_memset
      Src: /src/icu/source/test/cintltst/cbiapts.c:923,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cbiapts.c:923,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/cbiapts.c:922,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiapts.c:927,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:930,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:931,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiapts.c:934,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:939,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiapts.c:906,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiapts.c:914,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiapts.c:925,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:919,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:930,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:931,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:936,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/cbiapts.c:905,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiapts.c:912,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:918,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:918,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:919,1
    - Dst: ubrk_refreshUText
      Src: /src/icu/source/test/cintltst/cbiapts.c:926,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:932,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:933,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 940
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 940
    functionName: TestBreakIteratorRefresh
    functionSourceFile: /src/icu/source/test/cintltst/cbiapts.c
    functionUses: []
    functionsReached:
    - ubrk_setUText
    - utext_close
    - U_FAILURE
    - u_memset
    - ubrk_next
    - ubrk_refreshUText
    - U_SUCCESS
    - u_strcpy
    - u_strlen
    - utext_openUChars
    - ubrk_open
    - TEST_ASSERT_SUCCESS
    - TEST_ASSERT
    - ubrk_close
    linkageType: ''
    returnType: void
    signature: 'static void TestBreakIteratorRefresh(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/cbiapts.c:109,1
    - Dst: ucnv_toUChars
      Src: /src/icu/source/test/cintltst/cbiapts.c:114,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/cbiapts.c:113,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:110,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cbiapts.c:121,1
    - Dst: ucnv_toUChars
      Src: /src/icu/source/test/cintltst/cbiapts.c:124,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/cbiapts.c:126,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cbiapts.c:128,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/cbiapts.c:133,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:134,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 2
    argNames:
    - src
    - freeHook
    argTypes:
    - char*
    - void**
    constantsTouched: []
    func_position:
      end: 142
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 142
    functionName: toUChar
    functionSourceFile: /src/icu/source/test/cintltst/cbiapts.c
    functionUses: []
    functionsReached:
    - malloc
    - ucnv_close
    - ucnv_toUChars
    - U_FAILURE
    - ucnv_open
    - u_strcpy
    - free
    - ucnv_reset
    linkageType: ''
    returnType: UChar*
    signature: 'static UChar * toUChar(const char *src, void **freeHook) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:400,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:401,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:406,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:407,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:420,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:433,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:463,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:485,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:488,1
    - Dst: ubrk_safeClone
      Src: /src/icu/source/test/cintltst/cbiapts.c:496,1
    - Dst: ubrk_safeClone
      Src: /src/icu/source/test/cintltst/cbiapts.c:504,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cbiapts.c:399,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiapts.c:401,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:426,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:431,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiapts.c:407,1
    - Dst: ubrk_safeClone
      Src: /src/icu/source/test/cintltst/cbiapts.c:418,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:448,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:453,1
    - Dst: ubrk_safeClone
      Src: /src/icu/source/test/cintltst/cbiapts.c:471,1
    - Dst: ubrk_safeClone
      Src: /src/icu/source/test/cintltst/cbiapts.c:483,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:484,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/cbiapts.c:399,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cbiapts.c:405,1
    - Dst: ubrk_safeClone
      Src: /src/icu/source/test/cintltst/cbiapts.c:424,1
    - Dst: ubrk_safeClone
      Src: /src/icu/source/test/cintltst/cbiapts.c:431,1
    - Dst: ubrk_safeClone
      Src: /src/icu/source/test/cintltst/cbiapts.c:440,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:443,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:451,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:456,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:466,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:473,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:508,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:491,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:514,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:513,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cbiapts.c:396,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/cbiapts.c:405,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:435,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:441,1
    - Dst: ubrk_safeClone
      Src: /src/icu/source/test/cintltst/cbiapts.c:451,1
    - Dst: ubrk_safeClone
      Src: /src/icu/source/test/cintltst/cbiapts.c:461,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:476,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:498,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:509,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:511,1
    - Dst: ubrk_first
      Src: /src/icu/source/test/cintltst/cbiapts.c:506,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 118
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 516
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 516
    functionName: TestBreakIteratorSafeClone
    functionSourceFile: /src/icu/source/test/cintltst/cbiapts.c
    functionUses: []
    functionsReached:
    - ubrk_safeClone
    - u_uastrcpy
    - ubrk_first
    - U_FAILURE
    - log_data_err
    - ubrk_next
    - u_strlen
    - ubrk_open
    - log_verbose
    - log_err
    - ubrk_close
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestBreakIteratorSafeClone(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/cbiapts.c:843,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiapts.c:844,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:849,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:851,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:855,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:861,1
    - Dst: ubrk_previous
      Src: /src/icu/source/test/cintltst/cbiapts.c:866,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:868,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:872,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:878,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiapts.c:884,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:882,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cbiapts.c:884,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 887
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 887
    functionName: TestBreakIteratorTailoring
    functionSourceFile: /src/icu/source/test/cintltst/cbiapts.c
    functionUses: []
    functionsReached:
    - log_err_status
    - u_errorName
    - ubrk_next
    - U_SUCCESS
    - ubrk_open
    - log_err
    - ubrk_close
    - ubrk_previous
    linkageType: ''
    returnType: void
    signature: 'static void TestBreakIteratorTailoring(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ctest_resetICU
      Src: /src/icu/source/test/cintltst/cbiapts.c:960,1
    - Dst: ubrk_first
      Src: /src/icu/source/test/cintltst/cbiapts.c:966,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiapts.c:962,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiapts.c:961,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/cbiapts.c:961,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:966,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiapts.c:968,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiapts.c:972,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:973,1
    - Dst: ubrk_first
      Src: /src/icu/source/test/cintltst/cbiapts.c:977,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:977,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiapts.c:982,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:991,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:988,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:979,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:983,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 992
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 992
    functionName: TestBug11665
    functionSourceFile: /src/icu/source/test/cintltst/cbiapts.c
    functionUses: []
    functionsReached:
    - ubrk_first
    - ctest_resetICU
    - ubrk_next
    - ubrk_open
    - TEST_ASSERT_SUCCESS
    - log_err
    - UPRV_LENGTHOF
    - ubrk_close
    linkageType: ''
    returnType: void
    signature: 'static void TestBug11665(void) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_first
      Src: /src/icu/source/test/cintltst/cbiapts.c:1060,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:1053,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:1067,1
    - Dst: ubrk_first
      Src: /src/icu/source/test/cintltst/cbiapts.c:1071,1
    - Dst: ubrk_following
      Src: /src/icu/source/test/cintltst/cbiapts.c:1072,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:1074,1
    - Dst: ubrk_previous
      Src: /src/icu/source/test/cintltst/cbiapts.c:1088,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiapts.c:1050,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:1079,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:1084,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:1096,1
    - Dst: ubrk_last
      Src: /src/icu/source/test/cintltst/cbiapts.c:1083,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:1090,1
    - Dst: ubrk_last
      Src: /src/icu/source/test/cintltst/cbiapts.c:1102,1
    - Dst: ubrk_preceding
      Src: /src/icu/source/test/cintltst/cbiapts.c:1103,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:1061,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiapts.c:1092,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/cbiapts.c:1052,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiapts.c:1054,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:1063,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:1086,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:1105,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:1110,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:1113,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:1115,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiapts.c:1115,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 101
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1118
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1118
    functionName: TestBreakIteratorSuppressions
    functionSourceFile: /src/icu/source/test/cintltst/cbiapts.c
    functionUses: []
    functionsReached:
    - ubrk_first
    - u_unescape
    - ubrk_following
    - log_data_err
    - u_errorName
    - ubrk_previous
    - ubrk_next
    - U_SUCCESS
    - ubrk_open
    - log_verbose
    - log_err
    - ubrk_preceding
    - ubrk_close
    - ubrk_last
    linkageType: ''
    returnType: void
    signature: 'static void TestBreakIteratorSuppressions(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: toUChar
      Src: /src/icu/source/test/cintltst/cbiapts.c:531,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:538,1
    - Dst: ubrk_openRules
      Src: /src/icu/source/test/cintltst/cbiapts.c:533,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:537,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiapts.c:538,1
    - Dst: freeToUCharStrings
      Src: /src/icu/source/test/cintltst/cbiapts.c:541,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - rules
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 544
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 544
    functionName: testOpenRules
    functionSourceFile: /src/icu/source/test/cintltst/cbiapts.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_data_err
    - ubrk_openRules
    - toUChar
    - u_errorName
    - freeToUCharStrings
    linkageType: ''
    returnType: UBreakIterator*
    signature: 'static UBreakIterator * testOpenRules(char *rules) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiapts.c:733,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:738,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:754,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:745,1
    - Dst: ubrk_first
      Src: /src/icu/source/test/cintltst/cbiapts.c:750,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:751,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:759,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:765,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:757,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:762,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:764,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:743,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:753,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:760,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/cbiapts.c:763,1
    - Dst: utext_openUTF8
      Src: /src/icu/source/test/cintltst/cbiapts.c:732,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/cbiapts.c:735,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cbiapts.c:737,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiapts.c:736,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiapts.c:737,1
    - Dst: ubrk_setUText
      Src: /src/icu/source/test/cintltst/cbiapts.c:742,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiapts.c:744,1
    - Dst: ubrk_next
      Src: /src/icu/source/test/cintltst/cbiapts.c:756,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/cbiapts.c:746,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiapts.c:744,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 766
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 766
    functionName: TestBreakIteratorUText
    functionSourceFile: /src/icu/source/test/cintltst/cbiapts.c
    functionUses: []
    functionsReached:
    - ubrk_setUText
    - ubrk_first
    - utext_close
    - U_FAILURE
    - log_err_status
    - utext_openUTF8
    - ubrk_next
    - ubrk_open
    - TEST_ASSERT_SUCCESS
    - log_err
    - TEST_ASSERT
    - ubrk_close
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestBreakIteratorUText(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:33,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:36,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:37,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:34,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: addUNumberFormatterTest
    functionSourceFile: /src/icu/source/test/cintltst/unumberformattertst.c
    functionUses: []
    functionsReached:
    - TESTCASE
    linkageType: ''
    returnType: void
    signature: 'void addUNumberFormatterTest(TestNode** root) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unumf_openForSkeletonAndLocale
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:201,1
    - Dst: unumf_formatInt
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:207,1
    - Dst: assertSuccessCheck
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:203,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:205,1
    - Dst: unumf_openResult
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:204,1
    - Dst: assertSuccessCheck
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:208,1
    - Dst: unumf_resultAsValue
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:209,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:210,1
    - Dst: checkFormattedValue
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:217,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:223,1
    - Dst: unumf_closeResult
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:227,1
    - Dst: unumf_close
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 229
    functionName: TestFormattedValue
    functionSourceFile: /src/icu/source/test/cintltst/unumberformattertst.c
    functionUses: []
    functionsReached:
    - unumf_closeResult
    - unumf_close
    - unumf_openResult
    - assertSuccess
    - unumf_formatInt
    - unumf_resultAsValue
    - assertSuccessCheck
    - UPRV_LENGTHOF
    - checkFormattedValue
    - unumf_openForSkeletonAndLocale
    linkageType: ''
    returnType: void
    signature: 'static void TestFormattedValue() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unumf_openForSkeletonAndLocale
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:173,1
    - Dst: unumf_formatDouble
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:179,1
    - Dst: assertSuccessCheck
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:180,1
    - Dst: unumf_openResult
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:174,1
    - Dst: assertSuccessCheck
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:176,1
    - Dst: unumf_resultToString
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:183,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:184,1
    - Dst: uprv_malloc
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:186,1
    - Dst: unumf_resultToString
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:187,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:188,1
    - Dst: assertUEquals
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:189,1
    - Dst: unumf_closeResult
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:194,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:195,1
    - Dst: unumf_close
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 196
    functionName: TestExampleCode
    functionSourceFile: /src/icu/source/test/cintltst/unumberformattertst.c
    functionUses: []
    functionsReached:
    - uprv_malloc
    - assertTrue
    - unumf_closeResult
    - unumf_close
    - assertUEquals
    - unumf_openResult
    - unumf_formatDouble
    - assertSuccess
    - unumf_resultToString
    - uprv_free
    - assertSuccessCheck
    - unumf_openForSkeletonAndLocale
    linkageType: ''
    returnType: void
    signature: 'static void TestExampleCode() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unumf_openResult
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:52,1
    - Dst: assertSuccessCheck
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:58,1
    - Dst: assertUEquals
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:68,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:72,1
    - Dst: assertSuccessCheck
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:51,1
    - Dst: assertUEquals
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:75,1
    - Dst: unumf_close
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:80,1
    - Dst: unumf_openForSkeletonAndLocale
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:49,1
    - Dst: unumf_formatInt
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:56,1
    - Dst: unumf_resultToString
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:59,1
    - Dst: unumf_formatDouble
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:64,1
    - Dst: unumf_resultToString
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:66,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:67,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:53,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:60,1
    - Dst: assertUEquals
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:61,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:65,1
    - Dst: unumf_formatDecimal
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:71,1
    - Dst: unumf_resultToString
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:73,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:74,1
    - Dst: unumf_closeResult
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 81
    functionName: TestSkeletonFormatToString
    functionSourceFile: /src/icu/source/test/cintltst/unumberformattertst.c
    functionUses: []
    functionsReached:
    - unumf_closeResult
    - unumf_close
    - assertUEquals
    - unumf_formatDecimal
    - unumf_openResult
    - unumf_formatDouble
    - assertSuccess
    - unumf_resultToString
    - unumf_formatInt
    - assertSuccessCheck
    - unumf_openForSkeletonAndLocale
    linkageType: ''
    returnType: void
    signature: 'static void TestSkeletonFormatToString() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assertSuccessCheck
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:91,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:93,1
    - Dst: assertSuccessCheck
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:95,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:100,1
    - Dst: ufieldpositer_next
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:123,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:126,1
    - Dst: ufieldpositer_next
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:144,1
    - Dst: assertSuccessCheck
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:105,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:137,1
    - Dst: unumf_resultNextFieldPosition
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:152,1
    - Dst: unumf_openForSkeletonAndLocale
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:89,1
    - Dst: unumf_resultGetAllFieldPositions
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:107,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:154,1
    - Dst: unumf_resultNextFieldPosition
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:99,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:101,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:124,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:130,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:145,1
    - Dst: unumf_closeResult
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:162,1
    - Dst: unumf_close
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:163,1
    - Dst: unumf_openResult
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:92,1
    - Dst: unumf_formatInt
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:94,1
    - Dst: ufieldpositer_open
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:104,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:155,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:157,1
    - Dst: ufieldpositer_close
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:164,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 165
    functionName: TestSkeletonFormatToFields
    functionSourceFile: /src/icu/source/test/cintltst/unumberformattertst.c
    functionUses: []
    functionsReached:
    - assertIntEquals
    - assertTrue
    - unumf_closeResult
    - unumf_close
    - ufieldpositer_close
    - unumf_openResult
    - assertSuccess
    - ufieldpositer_next
    - unumf_resultNextFieldPosition
    - ufieldpositer_open
    - unumf_resultGetAllFieldPositions
    - unumf_formatInt
    - log_err
    - assertSuccessCheck
    - unumf_openForSkeletonAndLocale
    linkageType: ''
    returnType: void
    signature: 'static void TestSkeletonFormatToFields() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unumf_openForSkeletonAndLocaleWithError
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:238,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:248,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:247,1
    - Dst: unumf_openForSkeletonAndLocaleWithError
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:244,1
    - Dst: unumf_close
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:240,1
    - Dst: assertUEquals
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:249,1
    - Dst: assertUEquals
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:250,1
    - Dst: unumf_close
      Src: /src/icu/source/test/cintltst/unumberformattertst.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 254
    functionName: TestSkeletonParseError
    functionSourceFile: /src/icu/source/test/cintltst/unumberformattertst.c
    functionUses: []
    functionsReached:
    - unumf_openForSkeletonAndLocaleWithError
    - unumf_close
    - assertUEquals
    - assertIntEquals
    linkageType: ''
    returnType: void
    signature: 'static void TestSkeletonParseError() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/utransts.c:45,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/utransts.c:48,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/utransts.c:46,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/utransts.c:47,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/utransts.c:49,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/utransts.c:50,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/utransts.c:51,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/utransts.c:52,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/utransts.c:53,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/utransts.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: addUTransTest
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - TEST
    linkageType: ''
    returnType: void
    signature: 'void addUTransTest(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/utransts.c:69,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/utransts.c:69,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/utransts.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - rep
    - cstring
    argTypes:
    - XReplaceable*
    - char*
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: InitXReplaceable
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - strlen
    - malloc
    linkageType: ''
    returnType: void
    signature: 'static void InitXReplaceable(XReplaceable* rep, const char* cstring) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utransts.c:277,1
    - Dst: utrans_open
      Src: /src/icu/source/test/cintltst/utransts.c:279,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:281,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:280,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/utransts.c:281,1
    - Dst: utrans_openInverse
      Src: /src/icu/source/test/cintltst/utransts.c:284,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:285,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:286,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/utransts.c:286,1
    - Dst: utrans_getID
      Src: /src/icu/source/test/cintltst/utransts.c:289,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:293,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:294,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/utransts.c:290,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:291,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 296
    functionName: TestOpenInverse
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - utrans_open
    - U_FAILURE
    - log_data_err
    - strcmp
    - utrans_openInverse
    - utrans_close
    - utrans_getID
    - myErrorName
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestOpenInverse() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/icu/source/test/cintltst/utransts.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - rep
    argTypes:
    - XReplaceable*
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: FreeXReplaceable
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void FreeXReplaceable(XReplaceable* rep) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Xlength
      Src: /src/icu/source/test/cintltst/utransts.c:102,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/utransts.c:106,1
    - Dst: u_strncpy
      Src: /src/icu/source/test/cintltst/utransts.c:104,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/utransts.c:103,1
    - Dst: u_strncpy
      Src: /src/icu/source/test/cintltst/utransts.c:105,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/utransts.c:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - rep
    - start
    - limit
    - text
    - textLength
    argTypes:
    - UReplaceable*
    - int32_t
    - int32_t
    - UChar*
    - int32_t
    constantsTouched: []
    func_position:
      end: 109
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 109
    functionName: Xreplace
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - malloc
    - Xlength
    - u_strncpy
    - u_strcpy
    - free
    linkageType: ''
    returnType: void
    signature: 'static void Xreplace(UReplaceable* rep, int32_t start, int32_t limit,
      const UChar* text, int32_t textLength) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: utrans_countAvailableIDs
      Src: /src/icu/source/test/cintltst/utransts.c:151,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/utransts.c:155,1
    - Dst: utrans_getAvailableID
      Src: /src/icu/source/test/cintltst/utransts.c:158,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:153,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:160,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/utransts.c:162,1
    - Dst: utrans_getAvailableID
      Src: /src/icu/source/test/cintltst/utransts.c:167,1
    - Dst: utrans_open
      Src: /src/icu/source/test/cintltst/utransts.c:168,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:169,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:170,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/utransts.c:177,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:181,1
    - Dst: utrans_getID
      Src: /src/icu/source/test/cintltst/utransts.c:176,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:178,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:171,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 183
    functionName: TestAPI
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - utrans_open
    - utrans_getAvailableID
    - U_FAILURE
    - strcmp
    - utrans_close
    - utrans_getID
    - log_verbose
    - log_err
    - u_errorName
    - utrans_countAvailableIDs
    linkageType: ''
    returnType: void
    signature: 'static void TestAPI() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:607,1
    - Dst: utrans_getSourceSet
      Src: /src/icu/source/test/cintltst/utransts.c:618,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:622,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:632,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:598,1
    - Dst: utrans_toRules
      Src: /src/icu/source/test/cintltst/utransts.c:597,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:600,1
    - Dst: utrans_toRules
      Src: /src/icu/source/test/cintltst/utransts.c:604,1
    - Dst: utrans_toRules
      Src: /src/icu/source/test/cintltst/utransts.c:611,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:614,1
    - Dst: uset_toPattern
      Src: /src/icu/source/test/cintltst/utransts.c:619,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:621,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:612,1
    - Dst: utrans_getSourceSet
      Src: /src/icu/source/test/cintltst/utransts.c:627,1
    - Dst: utrans_openU
      Src: /src/icu/source/test/cintltst/utransts.c:590,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:606,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:623,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/utransts.c:620,1
    - Dst: uset_toPattern
      Src: /src/icu/source/test/cintltst/utransts.c:628,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/utransts.c:637,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:638,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:599,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/utransts.c:591,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:613,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:630,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:631,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:635,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/utransts.c:629,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 640
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 640
    functionName: TestGetRulesAndSourceSet
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - utrans_toRules
    - log_data_err
    - uset_toPattern
    - U_SUCCESS
    - utrans_getSourceSet
    - utrans_close
    - log_err
    - uset_close
    - u_errorName
    - utrans_openU
    linkageType: ''
    returnType: void
    signature: 'static void TestGetRulesAndSourceSet() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/utransts.c:715,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:719,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/utransts.c:721,1
    - Dst: utrans_open
      Src: /src/icu/source/test/cintltst/utransts.c:717,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:720,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:722,1
    - Dst: _expect
      Src: /src/icu/source/test/cintltst/utransts.c:726,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:728,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - crules
    - cfrom
    - cto
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 729
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 729
    functionName: _expectRules
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - utrans_open
    - _expect
    - U_FAILURE
    - log_data_err
    - utrans_close
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void _expectRules(const char* crules, const char* cfrom, const
      char* cto) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - rep
    - offset
    argTypes:
    - UReplaceable*
    - int32_t
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: Xchar32At
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UChar32
    signature: 'static UChar32 Xchar32At(const UReplaceable* rep, int32_t offset) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_strncpy
      Src: /src/icu/source/test/cintltst/utransts.c:127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 4
    argNames:
    - rep
    - start
    - limit
    - dst
    argTypes:
    - UReplaceable*
    - int32_t
    - int32_t
    - UChar*
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: Xextract
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - u_strncpy
    linkageType: ''
    returnType: void
    signature: 'static void Xextract(UReplaceable* rep, int32_t start, int32_t limit,
      UChar* dst) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Xlength
      Src: /src/icu/source/test/cintltst/utransts.c:114,1
    - Dst: u_strncpy
      Src: /src/icu/source/test/cintltst/utransts.c:116,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/utransts.c:115,1
    - Dst: u_strncpy
      Src: /src/icu/source/test/cintltst/utransts.c:117,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/utransts.c:118,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/utransts.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - rep
    - start
    - limit
    - dest
    argTypes:
    - UReplaceable*
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 121
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 121
    functionName: Xcopy
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - malloc
    - Xlength
    - u_strncpy
    - u_strcpy
    - free
    linkageType: ''
    returnType: void
    signature: 'static void Xcopy(UReplaceable* rep, int32_t start, int32_t limit,
      int32_t dest) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:202,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:202,1
    - Dst: uenum_unext
      Src: /src/icu/source/test/cintltst/utransts.c:207,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/utransts.c:239,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/utransts.c:247,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:208,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/utransts.c:223,1
    - Dst: uenum_reset
      Src: /src/icu/source/test/cintltst/utransts.c:235,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:237,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:241,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:241,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/utransts.c:200,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:196,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:201,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:223,1
    - Dst: utrans_getUnicodeID
      Src: /src/icu/source/test/cintltst/utransts.c:227,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:223,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:229,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:232,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:236,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:237,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:243,1
    - Dst: utrans_openIDs
      Src: /src/icu/source/test/cintltst/utransts.c:194,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:195,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:196,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/utransts.c:228,1
    - Dst: utrans_openU
      Src: /src/icu/source/test/cintltst/utransts.c:221,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:209,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:222,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:209,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/utransts.c:229,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:240,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 248
    functionName: TestUnicodeIDs
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - uenum_reset
    - utrans_getUnicodeID
    - U_FAILURE
    - utrans_openIDs
    - aescstrdup
    - uenum_count
    - utrans_close
    - log_err
    - uenum_unext
    - u_memcmp
    - uenum_close
    - u_errorName
    - utrans_openU
    linkageType: ''
    returnType: void
    signature: 'static void TestUnicodeIDs() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utrans_open
      Src: /src/icu/source/test/cintltst/utransts.c:565,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:570,1
    - Dst: _expect
      Src: /src/icu/source/test/cintltst/utransts.c:572,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:568,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:569,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 576
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 576
    functionName: TestExtractBetween
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - utrans_open
    - _expect
    - U_FAILURE
    - utrans_close
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestExtractBetween() '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/utransts.c:352,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:358,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/utransts.c:353,1
    - Dst: utrans_open
      Src: /src/icu/source/test/cintltst/utransts.c:363,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:365,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:378,1
    - Dst: utrans_register
      Src: /src/icu/source/test/cintltst/utransts.c:385,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/utransts.c:379,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:397,1
    - Dst: utrans_unregister
      Src: /src/icu/source/test/cintltst/utransts.c:401,1
    - Dst: utrans_register
      Src: /src/icu/source/test/cintltst/utransts.c:412,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:408,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:436,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/utransts.c:357,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/utransts.c:364,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:387,1
    - Dst: utrans_clone
      Src: /src/icu/source/test/cintltst/utransts.c:377,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:372,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:394,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:405,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:424,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:432,1
    - Dst: utrans_open
      Src: /src/icu/source/test/cintltst/utransts.c:356,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:371,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/utransts.c:372,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:386,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/utransts.c:387,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:393,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/utransts.c:404,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:414,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:421,1
    - Dst: utrans_unregisterID
      Src: /src/icu/source/test/cintltst/utransts.c:428,1
    - Dst: utrans_open
      Src: /src/icu/source/test/cintltst/utransts.c:419,1
    - Dst: utrans_open
      Src: /src/icu/source/test/cintltst/utransts.c:370,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:379,1
    - Dst: utrans_open
      Src: /src/icu/source/test/cintltst/utransts.c:392,1
    - Dst: utrans_open
      Src: /src/icu/source/test/cintltst/utransts.c:403,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:413,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/utransts.c:414,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:420,1
    - Dst: utrans_openU
      Src: /src/icu/source/test/cintltst/utransts.c:430,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:437,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/utransts.c:431,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 438
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 438
    functionName: TestRegisterUnregister
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - utrans_open
    - U_STRING_DECL
    - utrans_register
    - U_FAILURE
    - U_SUCCESS
    - utrans_close
    - U_STRING_INIT
    - myErrorName
    - utrans_clone
    - log_err
    - utrans_unregisterID
    - utrans_unregister
    - utrans_openU
    linkageType: ''
    returnType: void
    signature: 'static void TestRegisterUnregister() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - rep
    - offset
    argTypes:
    - UReplaceable*
    - int32_t
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: XcharAt
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UChar
    signature: 'static UChar XcharAt(const UReplaceable* rep, int32_t offset) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - callbacks
    argTypes:
    - UReplaceableCallbacks*
    constantsTouched: []
    func_position:
      end: 137
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 137
    functionName: InitXReplaceableCallbacks
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void InitXReplaceableCallbacks(UReplaceableCallbacks* callbacks) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/utransts.c:309,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:315,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/utransts.c:326,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/utransts.c:333,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/utransts.c:327,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/utransts.c:334,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:339,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:341,1
    - Dst: utrans_open
      Src: /src/icu/source/test/cintltst/utransts.c:307,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:309,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:308,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:313,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:328,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:335,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:338,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:340,1
    - Dst: utrans_clone
      Src: /src/icu/source/test/cintltst/utransts.c:319,1
    - Dst: utrans_clone
      Src: /src/icu/source/test/cintltst/utransts.c:320,1
    - Dst: utrans_open
      Src: /src/icu/source/test/cintltst/utransts.c:312,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:314,1
    - Dst: utrans_getID
      Src: /src/icu/source/test/cintltst/utransts.c:331,1
    - Dst: utrans_getID
      Src: /src/icu/source/test/cintltst/utransts.c:322,1
    - Dst: utrans_getID
      Src: /src/icu/source/test/cintltst/utransts.c:323,1
    - Dst: utrans_getID
      Src: /src/icu/source/test/cintltst/utransts.c:324,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 343
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 343
    functionName: TestClone
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - utrans_open
    - U_FAILURE
    - log_data_err
    - strcmp
    - utrans_close
    - utrans_clone
    - utrans_getID
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestClone() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/utransts.c:522,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:537,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/utransts.c:543,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utransts.c:509,1
    - Dst: utrans_open
      Src: /src/icu/source/test/cintltst/utransts.c:512,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:526,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:536,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:538,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/utransts.c:542,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/utransts.c:532,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/utransts.c:543,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:547,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:514,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:515,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:525,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:527,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/utransts.c:532,1
    - Dst: utrans_transUChars
      Src: /src/icu/source/test/cintltst/utransts.c:534,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/utransts.c:544,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:552,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:516,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/utransts.c:522,1
    - Dst: utrans_setFilter
      Src: /src/icu/source/test/cintltst/utransts.c:523,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/utransts.c:545,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 553
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 553
    functionName: TestFilter
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - utrans_open
    - U_FAILURE
    - aescstrdup
    - utrans_setFilter
    - utrans_close
    - log_verbose
    - log_err
    - utrans_transUChars
    - UPRV_LENGTHOF
    - u_strcmp
    - u_charsToUChars
    - u_errorName
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestFilter() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _expectRules
      Src: /src/icu/source/test/cintltst/utransts.c:451,1
    - Dst: _expectRules
      Src: /src/icu/source/test/cintltst/utransts.c:487,1
    - Dst: _expectRules
      Src: /src/icu/source/test/cintltst/utransts.c:475,1
    - Dst: _expectRules
      Src: /src/icu/source/test/cintltst/utransts.c:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 491
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 491
    functionName: TestSimpleRules
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - _expectRules
    linkageType: ''
    returnType: void
    signature: 'static void TestSimpleRules() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/utransts.c:678,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:681,1
    - Dst: utrans_openU
      Src: /src/icu/source/test/cintltst/utransts.c:679,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:680,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/utransts.c:681,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/utransts.c:685,1
    - Dst: utrans_transUChars
      Src: /src/icu/source/test/cintltst/utransts.c:687,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:688,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:689,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:689,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:697,1
    - Dst: utrans_close
      Src: /src/icu/source/test/cintltst/utransts.c:700,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/utransts.c:695,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/utransts.c:693,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/utransts.c:696,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/utransts.c:692,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 702
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 702
    functionName: TestDataVariantsCompounds
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - u_unescape
    - U_FAILURE
    - log_data_err
    - u_austrncpy
    - utrans_close
    - u_strncmp
    - log_err
    - utrans_transUChars
    - u_errorName
    - utrans_openU
    linkageType: ''
    returnType: void
    signature: 'static void TestDataVariantsCompounds() '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: utrans_getUnicodeID
      Src: /src/icu/source/test/cintltst/utransts.c:754,1
    - Dst: utrans_transUChars
      Src: /src/icu/source/test/cintltst/utransts.c:760,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/utransts.c:772,1
    - Dst: utrans_transUChars
      Src: /src/icu/source/test/cintltst/utransts.c:782,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/utransts.c:768,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/utransts.c:790,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/utransts.c:794,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:817,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:828,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:829,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/utransts.c:835,1
    - Dst: InitXReplaceable
      Src: /src/icu/source/test/cintltst/utransts.c:823,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:841,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/utransts.c:836,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/utransts.c:816,1
    - Dst: utrans_transIncrementalUChars
      Src: /src/icu/source/test/cintltst/utransts.c:781,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/utransts.c:780,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/utransts.c:767,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/utransts.c:789,1
    - Dst: InitXReplaceableCallbacks
      Src: /src/icu/source/test/cintltst/utransts.c:800,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:805,1
    - Dst: FreeXReplaceable
      Src: /src/icu/source/test/cintltst/utransts.c:807,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/utransts.c:812,1
    - Dst: FreeXReplaceable
      Src: /src/icu/source/test/cintltst/utransts.c:820,1
    - Dst: utrans_transIncremental
      Src: /src/icu/source/test/cintltst/utransts.c:826,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/utransts.c:811,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:830,1
    - Dst: FreeXReplaceable
      Src: /src/icu/source/test/cintltst/utransts.c:831,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/utransts.c:751,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/utransts.c:755,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/utransts.c:758,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/utransts.c:759,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:762,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:773,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:784,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utransts.c:795,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/utransts.c:802,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:804,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:806,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/utransts.c:840,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/utransts.c:825,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/utransts.c:752,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:761,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:763,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utransts.c:783,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/utransts.c:778,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utransts.c:785,1
    - Dst: InitXReplaceable
      Src: /src/icu/source/test/cintltst/utransts.c:801,1
    - Dst: utrans_trans
      Src: /src/icu/source/test/cintltst/utransts.c:803,1
    - Dst: utrans_trans
      Src: /src/icu/source/test/cintltst/utransts.c:827,1
    - Dst: FreeXReplaceable
      Src: /src/icu/source/test/cintltst/utransts.c:844,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 80
    argCount: 3
    argNames:
    - trans
    - cfrom
    - cto
    argTypes:
    - UTransliterator*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 845
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 845
    functionName: _expect
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - utrans_getUnicodeID
    - InitXReplaceable
    - utrans_transIncremental
    - U_FAILURE
    - utrans_trans
    - FreeXReplaceable
    - InitXReplaceableCallbacks
    - u_strcpy
    - u_strlen
    - log_verbose
    - log_err
    - utrans_transUChars
    - utrans_transIncrementalUChars
    - u_strcmp
    - u_errorName
    - aescstrdup
    - u_austrcpy
    linkageType: ''
    returnType: void
    signature: 'static void _expect(const UTransliterator* trans, const char* cfrom,
      const char* cto) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/utransts.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - rep
    argTypes:
    - UReplaceable*
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: Xlength
    functionSourceFile: /src/icu/source/test/cintltst/utransts.c
    functionUses: []
    functionsReached:
    - u_strlen
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t Xlength(const UReplaceable* rep) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/eurocreg.c:18,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: addTestEuroRegression
    functionSourceFile: /src/icu/source/test/cintltst/eurocreg.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addTestEuroRegression(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: addTestEuroRegression
    functionSourceFile: /src/icu/source/test/cintltst/eurocreg.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void addTestEuroRegression(TestNode** root) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/eurocreg.c:127,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/eurocreg.c:129,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/eurocreg.c:128,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/eurocreg.c:129,1
    - Dst: isEuroAware
      Src: /src/icu/source/test/cintltst/eurocreg.c:132,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/eurocreg.c:133,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/eurocreg.c:135,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/eurocreg.c:136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 139
    functionName: TestEuroRegression
    functionSourceFile: /src/icu/source/test/cintltst/eurocreg.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - isEuroAware
    - log_verbose
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'void TestEuroRegression() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_fromUChars
      Src: /src/icu/source/test/cintltst/eurocreg.c:150,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/eurocreg.c:156,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/eurocreg.c:168,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/eurocreg.c:158,1
    - Dst: ucnv_toUChars
      Src: /src/icu/source/test/cintltst/eurocreg.c:161,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/eurocreg.c:170,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/eurocreg.c:173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - myConv
    argTypes:
    - UConverter*
    constantsTouched: []
    func_position:
      end: 184
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 184
    functionName: isEuroAware
    functionSourceFile: /src/icu/source/test/cintltst/eurocreg.c
    functionUses: []
    functionsReached:
    - ucnv_toUChars
    - ucnv_fromUChars
    - U_FAILURE
    - log_err
    - u_strcmp
    linkageType: ''
    returnType: UBool
    signature: 'UBool isEuroAware(UConverter* myConv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/uenumtst.c:207,1
    - Dst: memcpy
      Src: /src/icu/source/test/cintltst/uenumtst.c:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - source
    - size
    argTypes:
    - char**
    - int32_t
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: getchArrayEnum
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached:
    - malloc
    - memcpy
    linkageType: ''
    returnType: UEnumeration*
    signature: 'static UEnumeration *getchArrayEnum(const char** source, int32_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_UCharsToChars
      Src: /src/icu/source/test/cintltst/uenumtst.c:26,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - UChar*
    - int32_t
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: quikU2C
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached:
    - u_UCharsToChars
    linkageType: ''
    returnType: char*
    signature: 'static char * quikU2C(const UChar* str, int32_t len) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uenum_openUCharStringsEnumeration
      Src: /src/icu/source/test/cintltst/uenumtst.c:442,1
    - Dst: verifyEnumeration
      Src: /src/icu/source/test/cintltst/uenumtst.c:449,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/uenumtst.c:445,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/uenumtst.c:444,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:445,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/uenumtst.c:450,1
    - Dst: uenum_openUCharStringsEnumeration
      Src: /src/icu/source/test/cintltst/uenumtst.c:453,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/uenumtst.c:454,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:455,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/uenumtst.c:455,1
    - Dst: verifyEnumeration
      Src: /src/icu/source/test/cintltst/uenumtst.c:458,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/uenumtst.c:459,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 461
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 461
    functionName: TestUCharStringsEnumeration
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached:
    - verifyEnumeration
    - U_FAILURE
    - log_err
    - uenum_openUCharStringsEnumeration
    - uenum_close
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUCharStringsEnumeration(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/icu/source/test/cintltst/uenumtst.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - en
    argTypes:
    - UEnumeration*
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: uchArrayClose
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV uchArrayClose(UEnumeration *en) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - en
    - status
    argTypes:
    - UEnumeration*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: uchArrayCount
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t U_CALLCONV uchArrayCount(UEnumeration *en, UErrorCode
      *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - en
    - status
    argTypes:
    - UEnumeration*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: uchArrayReset
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV uchArrayReset(UEnumeration *en, UErrorCode
      *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getchArrayEnum
      Src: /src/icu/source/test/cintltst/uenumtst.c:217,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/uenumtst.c:221,1
    - Dst: uenum_reset
      Src: /src/icu/source/test/cintltst/uenumtst.c:223,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/uenumtst.c:220,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/uenumtst.c:217,1
    - Dst: uenum_unext
      Src: /src/icu/source/test/cintltst/uenumtst.c:224,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/uenumtst.c:225,1
    - Dst: quikU2C
      Src: /src/icu/source/test/cintltst/uenumtst.c:225,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/uenumtst.c:228,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 229
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 229
    functionName: EnumerationTest
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached:
    - uenum_reset
    - uenum_next
    - getchArrayEnum
    - log_verbose
    - uenum_close
    - uenum_unext
    - UPRV_LENGTHOF
    - quikU2C
    linkageType: ''
    returnType: void
    signature: 'static void EnumerationTest(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/uenumtst.c:278,1
    - Dst: memcpy
      Src: /src/icu/source/test/cintltst/uenumtst.c:279,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - source
    - size
    argTypes:
    - UChar**
    - int32_t
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: getuchArrayEnum
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached:
    - malloc
    - memcpy
    linkageType: ''
    returnType: UEnumeration*
    signature: 'static UEnumeration *getuchArrayEnum(const UChar** source, int32_t
      size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/uenumtst.c:178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - en
    - resultLength
    - status
    argTypes:
    - UEnumeration*
    - int32_t*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 181
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 181
    functionName: uchArrayUNext
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached:
    - u_strlen
    linkageType: ''
    returnType: UChar*
    signature: 'static const UChar * U_CALLCONVuchArrayUNext(UEnumeration *en, int32_t
      *resultLength, UErrorCode *status) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:241,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:272,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/uenumtst.c:274,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:237,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/uenumtst.c:236,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/test/cintltst/uenumtst.c:235,1
    - Dst: uenum_reset
      Src: /src/icu/source/test/cintltst/uenumtst.c:248,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:250,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/uenumtst.c:252,1
    - Dst: uenum_reset
      Src: /src/icu/source/test/cintltst/uenumtst.c:263,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:265,1
    - Dst: uenum_unext
      Src: /src/icu/source/test/cintltst/uenumtst.c:259,1
    - Dst: uprv_malloc
      Src: /src/icu/source/test/cintltst/uenumtst.c:233,1
    - Dst: uenum_unext
      Src: /src/icu/source/test/cintltst/uenumtst.c:244,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:260,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/test/cintltst/uenumtst.c:269,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:256,1
    - Dst: uprv_malloc
      Src: /src/icu/source/test/cintltst/uenumtst.c:268,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/uenumtst.c:240,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:245,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/uenumtst.c:255,1
    - Dst: uenum_unext
      Src: /src/icu/source/test/cintltst/uenumtst.c:271,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 275
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 275
    functionName: EmptyEnumerationTest
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached:
    - uprv_memcpy
    - uprv_malloc
    - uenum_reset
    - uenum_next
    - uenum_count
    - log_err
    - uenum_unext
    - uenum_close
    linkageType: ''
    returnType: void
    signature: 'static void EmptyEnumerationTest(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getuchArrayEnum
      Src: /src/icu/source/test/cintltst/uenumtst.c:288,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/uenumtst.c:288,1
    - Dst: quikU2C
      Src: /src/icu/source/test/cintltst/uenumtst.c:292,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/uenumtst.c:292,1
    - Dst: uenum_unext
      Src: /src/icu/source/test/cintltst/uenumtst.c:291,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/uenumtst.c:294,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:295,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/uenumtst.c:295,1
    - Dst: uenum_reset
      Src: /src/icu/source/test/cintltst/uenumtst.c:297,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/uenumtst.c:298,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/uenumtst.c:302,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/uenumtst.c:305,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:302,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/uenumtst.c:301,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/uenumtst.c:299,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 306
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 306
    functionName: DefaultNextTest
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached:
    - uenum_reset
    - uenum_next
    - U_FAILURE
    - getuchArrayEnum
    - log_verbose
    - log_err
    - uenum_unext
    - uenum_close
    - UPRV_LENGTHOF
    - u_errorName
    - quikU2C
    linkageType: ''
    returnType: void
    signature: 'static void DefaultNextTest(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/uenumtst.c:73,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/uenumtst.c:78,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/uenumtst.c:77,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - en
    - resultLength
    - status
    argTypes:
    - UEnumeration*
    - int32_t*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 81
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 81
    functionName: chArrayUNext
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached:
    - strlen
    - malloc
    - u_charsToUChars
    linkageType: ''
    returnType: UChar*
    signature: 'static const UChar * U_CALLCONV chArrayUNext(UEnumeration *en, int32_t
      *resultLength, UErrorCode *status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/icu/source/test/cintltst/uenumtst.c:53,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/uenumtst.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - en
    argTypes:
    - UEnumeration*
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: chArrayClose
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV chArrayClose(UEnumeration *en) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - en
    - status
    argTypes:
    - UEnumeration*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: chArrayReset
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV chArrayReset(UEnumeration *en, UErrorCode *status) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: uenum_reset
      Src: /src/icu/source/test/cintltst/uenumtst.c:316,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/uenumtst.c:318,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:318,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/uenumtst.c:322,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/uenumtst.c:323,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/uenumtst.c:338,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:347,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/uenumtst.c:337,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/uenumtst.c:349,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:408,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/uenumtst.c:407,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:399,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/uenumtst.c:401,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:324,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/uenumtst.c:324,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:329,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/uenumtst.c:336,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/uenumtst.c:362,1
    - Dst: uenum_unext
      Src: /src/icu/source/test/cintltst/uenumtst.c:368,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/uenumtst.c:369,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:370,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/uenumtst.c:370,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:374,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/uenumtst.c:389,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/uenumtst.c:383,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/uenumtst.c:399,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:390,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/uenumtst.c:331,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/uenumtst.c:342,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/uenumtst.c:346,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:338,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:342,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:353,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/uenumtst.c:355,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:363,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/uenumtst.c:363,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/uenumtst.c:378,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/uenumtst.c:379,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/uenumtst.c:404,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/uenumtst.c:404,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/uenumtst.c:408,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/uenumtst.c:397,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/uenumtst.c:374,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/uenumtst.c:410,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/uenumtst.c:314,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/uenumtst.c:317,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/uenumtst.c:352,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/uenumtst.c:353,1
    - Dst: uenum_reset
      Src: /src/icu/source/test/cintltst/uenumtst.c:361,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/uenumtst.c:378,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:381,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/uenumtst.c:381,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/uenumtst.c:386,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/uenumtst.c:390,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/uenumtst.c:392,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/uenumtst.c:399,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 105
    argCount: 5
    argNames:
    - line
    - u
    - compareToChar
    - compareToUChar
    - expect_count
    argTypes:
    - int
    - UEnumeration*
    - char**
    - UChar**
    - int32_t
    constantsTouched: []
    func_position:
      end: 414
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 414
    functionName: verifyEnumeration
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached:
    - uenum_reset
    - uenum_next
    - U_FAILURE
    - strcmp
    - uenum_count
    - austrdup
    - u_strlen
    - log_verbose
    - log_err
    - uenum_unext
    - u_strncmp
    - strlen
    - u_strcmp
    - u_charsToUChars
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void verifyEnumeration(int line, UEnumeration *u, const char
      * const * compareToChar, const UChar * const * compareToUChar, int32_t expect_count) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 2
    argNames:
    - en
    - status
    argTypes:
    - UEnumeration*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: chArrayCount
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t U_CALLCONV chArrayCount(UEnumeration *en, UErrorCode
      *status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/uenumtst.c:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - en
    - resultLength
    - status
    argTypes:
    - UEnumeration*
    - int32_t*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: chArrayNext
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached:
    - strlen
    linkageType: ''
    returnType: char*
    signature: 'static const char * U_CALLCONVchArrayNext(UEnumeration *en, int32_t
      *resultLength, UErrorCode *status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uenum_openCharStringsEnumeration
      Src: /src/icu/source/test/cintltst/uenumtst.c:425,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uenumtst.c:428,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/uenumtst.c:428,1
    - Dst: verifyEnumeration
      Src: /src/icu/source/test/cintltst/uenumtst.c:432,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/uenumtst.c:427,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/uenumtst.c:434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 435
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 435
    functionName: TestCharStringsEnumeration
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached:
    - verifyEnumeration
    - U_FAILURE
    - uenum_openCharStringsEnumeration
    - log_err
    - uenum_close
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestCharStringsEnumeration(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/uenumtst.c:467,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/uenumtst.c:470,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/uenumtst.c:471,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/uenumtst.c:468,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/uenumtst.c:469,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 472
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 472
    functionName: addEnumerationTest
    functionSourceFile: /src/icu/source/test/cintltst/uenumtst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addEnumerationTest(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addCalTest
      Src: /src/icu/source/test/cintltst/cformtst.c:48,1
    - Dst: addDateTimePatternGeneratorTest
      Src: /src/icu/source/test/cintltst/cformtst.c:50,1
    - Dst: addDateForTest
      Src: /src/icu/source/test/cintltst/cformtst.c:49,1
    - Dst: addRelativeDateFormatTest
      Src: /src/icu/source/test/cintltst/cformtst.c:53,1
    - Dst: addDateIntervalFormatTest
      Src: /src/icu/source/test/cintltst/cformtst.c:51,1
    - Dst: addNumForTest
      Src: /src/icu/source/test/cintltst/cformtst.c:55,1
    - Dst: addNumFrDepTest
      Src: /src/icu/source/test/cintltst/cformtst.c:56,1
    - Dst: addMsgForTest
      Src: /src/icu/source/test/cintltst/cformtst.c:57,1
    - Dst: addDateForRgrTest
      Src: /src/icu/source/test/cintltst/cformtst.c:58,1
    - Dst: addDtFrDepTest
      Src: /src/icu/source/test/cintltst/cformtst.c:59,1
    - Dst: addCurrencyTest
      Src: /src/icu/source/test/cintltst/cformtst.c:61,1
    - Dst: addUListFmtTest
      Src: /src/icu/source/test/cintltst/cformtst.c:64,1
    - Dst: addPluralRulesTest
      Src: /src/icu/source/test/cintltst/cformtst.c:62,1
    - Dst: addUNumberFormatterTest
      Src: /src/icu/source/test/cintltst/cformtst.c:65,1
    - Dst: addUtmsTest
      Src: /src/icu/source/test/cintltst/cformtst.c:60,1
    - Dst: addURegionTest
      Src: /src/icu/source/test/cintltst/cformtst.c:63,1
    - Dst: addUFormattedValueTest
      Src: /src/icu/source/test/cintltst/cformtst.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 67
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 67
    functionName: addFormatTest
    functionSourceFile: /src/icu/source/test/cintltst/cformtst.c
    functionUses: []
    functionsReached:
    - addPluralRulesTest
    - addMsgForTest
    - addDateIntervalFormatTest
    - addUListFmtTest
    - addDateForTest
    - addDtFrDepTest
    - addUNumberFormatterTest
    - addNumForTest
    - addCalTest
    - addUFormattedValueTest
    - addDateTimePatternGeneratorTest
    - addRelativeDateFormatTest
    - addNumFrDepTest
    - addURegionTest
    - addCurrencyTest
    - addUtmsTest
    - addDateForRgrTest
    linkageType: ''
    returnType: void
    signature: 'void addFormatTest(TestNode** root) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/cformtst.c:78,1
    - Dst: ctst_malloc
      Src: /src/icu/source/test/cintltst/cformtst.c:83,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cformtst.c:88,1
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/cformtst.c:84,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cformtst.c:86,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cformtst.c:88,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - dat
    - d1
    argTypes:
    - UDateFormat*
    - UDate
    constantsTouched: []
    func_position:
      end: 93
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 93
    functionName: myDateFormat
    functionSourceFile: /src/icu/source/test/cintltst/cformtst.c
    functionUses: []
    functionsReached:
    - udat_format
    - U_FAILURE
    - myErrorName
    - ctst_malloc
    - log_err
    linkageType: ''
    returnType: UChar*
    signature: 'UChar * myDateFormat(UDateFormat* dat, UDate d1) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: SearchData
    functionSourceFile: /src/icu/source/test/cintltst/usrchdat.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_CDECL_BEGIN
    signature: 'U_CDECL_BEGIN struct SearchData '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/putiltst.c:40,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 48
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 48
    functionName: TestSignedRightShiftIsArithmetic
    functionSourceFile: /src/icu/source/test/cintltst/putiltst.c
    functionUses: []
    functionsReached:
    - log_info
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestSignedRightShiftIsArithmetic(void) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:246,1
    - Dst: u_versionToString
      Src: /src/icu/source/test/cintltst/putiltst.c:245,1
    - Dst: u_versionToString
      Src: /src/icu/source/test/cintltst/putiltst.c:250,1
    - Dst: u_versionToString
      Src: /src/icu/source/test/cintltst/putiltst.c:255,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:265,1
    - Dst: u_versionToString
      Src: /src/icu/source/test/cintltst/putiltst.c:266,1
    - Dst: u_versionToString
      Src: /src/icu/source/test/cintltst/putiltst.c:277,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:278,1
    - Dst: u_versionToString
      Src: /src/icu/source/test/cintltst/putiltst.c:296,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:297,1
    - Dst: u_versionFromUString
      Src: /src/icu/source/test/cintltst/putiltst.c:310,1
    - Dst: u_versionToString
      Src: /src/icu/source/test/cintltst/putiltst.c:303,1
    - Dst: u_versionFromString
      Src: /src/icu/source/test/cintltst/putiltst.c:309,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/putiltst.c:327,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:304,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:321,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:244,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:268,1
    - Dst: u_versionToString
      Src: /src/icu/source/test/cintltst/putiltst.c:271,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:272,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:285,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:292,1
    - Dst: u_getVersion
      Src: /src/icu/source/test/cintltst/putiltst.c:302,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:305,1
    - Dst: u_versionToString
      Src: /src/icu/source/test/cintltst/putiltst.c:311,1
    - Dst: u_getDataVersion
      Src: /src/icu/source/test/cintltst/putiltst.c:325,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:298,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:294,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:247,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:251,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:252,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:261,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:262,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:257,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:256,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:279,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:288,1
    - Dst: u_versionFromString
      Src: /src/icu/source/test/cintltst/putiltst.c:289,1
    - Dst: u_versionFromString
      Src: /src/icu/source/test/cintltst/putiltst.c:295,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/putiltst.c:326,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:313,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:249,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:254,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:267,1
    - Dst: u_versionToString
      Src: /src/icu/source/test/cintltst/putiltst.c:260,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:259,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:273,1
    - Dst: u_versionToString
      Src: /src/icu/source/test/cintltst/putiltst.c:283,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:284,1
    - Dst: u_versionToString
      Src: /src/icu/source/test/cintltst/putiltst.c:290,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:291,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:308,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:301,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/putiltst.c:327,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:312,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 87
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 329
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 329
    functionName: TestVersion
    functionSourceFile: /src/icu/source/test/cintltst/putiltst.c
    functionUses: []
    functionsReached:
    - u_versionFromUString
    - U_FAILURE
    - u_getVersion
    - u_versionToString
    - strcmp
    - log_data_err
    - u_errorName
    - u_getDataVersion
    - log_verbose
    - log_err
    - memcmp
    - u_versionFromString
    linkageType: ''
    returnType: void
    signature: 'static void TestVersion(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_getInfinity
      Src: /src/icu/source/test/cintltst/putiltst.c:385,1
    - Dst: uprv_getInfinity
      Src: /src/icu/source/test/cintltst/putiltst.c:386,1
    - Dst: remainderTest
      Src: /src/icu/source/test/cintltst/putiltst.c:393,1
    - Dst: remainderTest
      Src: /src/icu/source/test/cintltst/putiltst.c:394,1
    - Dst: uprv_getNaN
      Src: /src/icu/source/test/cintltst/putiltst.c:387,1
    - Dst: remainderTest
      Src: /src/icu/source/test/cintltst/putiltst.c:400,1
    - Dst: remainderTest
      Src: /src/icu/source/test/cintltst/putiltst.c:401,1
    - Dst: remainderTest
      Src: /src/icu/source/test/cintltst/putiltst.c:404,1
    - Dst: remainderTest
      Src: /src/icu/source/test/cintltst/putiltst.c:405,1
    - Dst: remainderTest
      Src: /src/icu/source/test/cintltst/putiltst.c:407,1
    - Dst: remainderTest
      Src: /src/icu/source/test/cintltst/putiltst.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 415
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 415
    functionName: testIEEEremainder
    functionSourceFile: /src/icu/source/test/cintltst/putiltst.c
    functionUses: []
    functionsReached:
    - remainderTest
    - uprv_getNaN
    - uprv_getInfinity
    linkageType: ''
    returnType: void
    signature: 'static void testIEEEremainder() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compareWithNAN
      Src: /src/icu/source/test/cintltst/putiltst.c:451,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:452,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - got
    - expect
    - message
    argTypes:
    - double
    - double
    - char*
    constantsTouched: []
    func_position:
      end: 454
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 454
    functionName: doAssert
    functionSourceFile: /src/icu/source/test/cintltst/putiltst.c
    functionUses: []
    functionsReached:
    - compareWithNAN
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void doAssert(double got, double expect, const char *message) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/putiltst.c:484,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:493,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:492,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:486,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/putiltst.c:491,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 496
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 496
    functionName: TestErrorName
    functionSourceFile: /src/icu/source/test/cintltst/putiltst.c
    functionUses: []
    functionsReached:
    - uprv_strcmp
    - u_errorName
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestErrorName(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/putiltst.c:504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 507
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 507
    functionName: dump_binline
    functionSourceFile: /src/icu/source/test/cintltst/putiltst.c
    functionUses: []
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: char*
    signature: 'static const char * dump_binline(uint8_t *bytes) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_aestrncpy
      Src: /src/icu/source/test/cintltst/putiltst.c:542,1
    - Dst: Test_aestrncpy
      Src: /src/icu/source/test/cintltst/putiltst.c:543,1
    - Dst: Test_aestrncpy
      Src: /src/icu/source/test/cintltst/putiltst.c:545,1
    - Dst: Test_aestrncpy
      Src: /src/icu/source/test/cintltst/putiltst.c:544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 546
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 546
    functionName: TestString
    functionSourceFile: /src/icu/source/test/cintltst/putiltst.c
    functionUses: []
    functionsReached:
    - Test_aestrncpy
    linkageType: ''
    returnType: void
    signature: 'static void TestString(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/putiltst.c:597,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:606,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:601,1
    - Dst: STRNULL
      Src: /src/icu/source/test/cintltst/putiltst.c:604,1
    - Dst: STRNULL
      Src: /src/icu/source/test/cintltst/putiltst.c:605,1
    - Dst: STRNULL
      Src: /src/icu/source/test/cintltst/putiltst.c:607,1
    - Dst: findBasename
      Src: /src/icu/source/test/cintltst/putiltst.c:607,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:608,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:609,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:611,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 614
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 614
    functionName: toolutil_findBasename
    functionSourceFile: /src/icu/source/test/cintltst/putiltst.c
    functionUses: []
    functionsReached:
    - findBasename
    - strcmp
    - STRNULL
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void toolutil_findBasename(void) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:85,1
    - Dst: uprv_fmax
      Src: /src/icu/source/test/cintltst/putiltst.c:91,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:135,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:114,1
    - Dst: uprv_mul32_overflow
      Src: /src/icu/source/test/cintltst/putiltst.c:142,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/putiltst.c:161,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:172,1
    - Dst: uprv_timezone
      Src: /src/icu/source/test/cintltst/putiltst.c:210,1
    - Dst: uprv_tzname
      Src: /src/icu/source/test/cintltst/putiltst.c:216,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:110,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:60,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:69,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:77,1
    - Dst: uprv_floor
      Src: /src/icu/source/test/cintltst/putiltst.c:80,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:88,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:101,1
    - Dst: uprv_max
      Src: /src/icu/source/test/cintltst/putiltst.c:102,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:138,1
    - Dst: uprv_getNaN
      Src: /src/icu/source/test/cintltst/putiltst.c:110,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:71,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:75,1
    - Dst: uprv_min
      Src: /src/icu/source/test/cintltst/putiltst.c:105,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:125,1
    - Dst: uprv_mul32_overflow
      Src: /src/icu/source/test/cintltst/putiltst.c:140,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:149,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:163,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:170,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:228,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:127,1
    - Dst: uprv_add32_overflow
      Src: /src/icu/source/test/cintltst/putiltst.c:137,1
    - Dst: uprv_getInfinity
      Src: /src/icu/source/test/cintltst/putiltst.c:111,1
    - Dst: uprv_isNegativeInfinity
      Src: /src/icu/source/test/cintltst/putiltst.c:118,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:92,1
    - Dst: uprv_fmin
      Src: /src/icu/source/test/cintltst/putiltst.c:98,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:165,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:167,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/putiltst.c:189,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:195,1
    - Dst: uprv_modf
      Src: /src/icu/source/test/cintltst/putiltst.c:61,1
    - Dst: uprv_getNaN
      Src: /src/icu/source/test/cintltst/putiltst.c:91,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:95,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:104,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:115,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:162,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:168,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/putiltst.c:191,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:197,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/putiltst.c:198,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:109,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:107,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:108,1
    - Dst: uprv_getInfinity
      Src: /src/icu/source/test/cintltst/putiltst.c:123,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:142,1
    - Dst: uprv_add32_overflow
      Src: /src/icu/source/test/cintltst/putiltst.c:144,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/putiltst.c:204,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/putiltst.c:216,1
    - Dst: uprv_fabs
      Src: /src/icu/source/test/cintltst/putiltst.c:84,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:83,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:99,1
    - Dst: uprv_pow10
      Src: /src/icu/source/test/cintltst/putiltst.c:115,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:150,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:160,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/putiltst.c:166,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/putiltst.c:205,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/putiltst.c:195,1
    - Dst: uprv_add32_overflow
      Src: /src/icu/source/test/cintltst/putiltst.c:139,1
    - Dst: uprv_trunc
      Src: /src/icu/source/test/cintltst/putiltst.c:109,1
    - Dst: uprv_getInfinity
      Src: /src/icu/source/test/cintltst/putiltst.c:118,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:140,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/putiltst.c:68,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:73,1
    - Dst: uprv_ceil
      Src: /src/icu/source/test/cintltst/putiltst.c:76,1
    - Dst: uprv_getNaN
      Src: /src/icu/source/test/cintltst/putiltst.c:98,1
    - Dst: uprv_trunc
      Src: /src/icu/source/test/cintltst/putiltst.c:108,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/putiltst.c:195,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:201,1
    - Dst: uprv_getNaN
      Src: /src/icu/source/test/cintltst/putiltst.c:92,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:137,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:130,1
    - Dst: uprv_digitsAfterDecimal
      Src: /src/icu/source/test/cintltst/putiltst.c:149,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:151,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:152,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:153,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:154,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:155,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:156,1
    - Dst: uprv_detectWindowsTimeZone
      Src: /src/icu/source/test/cintltst/putiltst.c:224,1
    - Dst: uprv_fmax
      Src: /src/icu/source/test/cintltst/putiltst.c:88,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:102,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:133,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:148,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:182,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/putiltst.c:192,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:213,1
    - Dst: uprv_tzname
      Src: /src/icu/source/test/cintltst/putiltst.c:216,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/putiltst.c:198,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:105,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:141,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:144,1
    - Dst: uprv_digitsAfterDecimal
      Src: /src/icu/source/test/cintltst/putiltst.c:151,1
    - Dst: uprv_digitsAfterDecimal
      Src: /src/icu/source/test/cintltst/putiltst.c:152,1
    - Dst: uprv_digitsAfterDecimal
      Src: /src/icu/source/test/cintltst/putiltst.c:153,1
    - Dst: uprv_digitsAfterDecimal
      Src: /src/icu/source/test/cintltst/putiltst.c:154,1
    - Dst: uprv_digitsAfterDecimal
      Src: /src/icu/source/test/cintltst/putiltst.c:155,1
    - Dst: uprv_digitsAfterDecimal
      Src: /src/icu/source/test/cintltst/putiltst.c:156,1
    - Dst: uprv_digitsAfterDecimal
      Src: /src/icu/source/test/cintltst/putiltst.c:157,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:211,1
    - Dst: uprv_getInfinity
      Src: /src/icu/source/test/cintltst/putiltst.c:128,1
    - Dst: uprv_add32_overflow
      Src: /src/icu/source/test/cintltst/putiltst.c:135,1
    - Dst: uprv_isPositiveInfinity
      Src: /src/icu/source/test/cintltst/putiltst.c:123,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:87,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:81,1
    - Dst: uprv_getNaN
      Src: /src/icu/source/test/cintltst/putiltst.c:99,1
    - Dst: uprv_getNaN
      Src: /src/icu/source/test/cintltst/putiltst.c:110,1
    - Dst: uprv_digitsAfterDecimal
      Src: /src/icu/source/test/cintltst/putiltst.c:150,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:202,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:65,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:79,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:90,1
    - Dst: uprv_fmin
      Src: /src/icu/source/test/cintltst/putiltst.c:95,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:120,1
    - Dst: uprv_trunc
      Src: /src/icu/source/test/cintltst/putiltst.c:110,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:139,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/putiltst.c:171,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/putiltst.c:200,1
    - Dst: uprv_fmod
      Src: /src/icu/source/test/cintltst/putiltst.c:72,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:136,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:122,1
    - Dst: uprv_getInfinity
      Src: /src/icu/source/test/cintltst/putiltst.c:111,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:94,1
    - Dst: uprv_trunc
      Src: /src/icu/source/test/cintltst/putiltst.c:111,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:145,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:173,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:157,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:117,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:97,1
    - Dst: uprv_isInfinite
      Src: /src/icu/source/test/cintltst/putiltst.c:128,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/putiltst.c:111,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/putiltst.c:190,1
    - Dst: u_UCharsToChars
      Src: /src/icu/source/test/cintltst/putiltst.c:200,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:222,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:226,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:208,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:194,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 213
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 232
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 232
    functionName: TestPUtilAPI
    functionSourceFile: /src/icu/source/test/cintltst/putiltst.c
    functionUses: []
    functionsReached:
    - uprv_ceil
    - uprv_floor
    - uprv_fmax
    - uprv_tzname
    - free
    - uprv_isInfinite
    - uprv_timezone
    - u_errorName
    - uprv_digitsAfterDecimal
    - log_info
    - uprv_isNegativeInfinity
    - uprv_trunc
    - u_strlen
    - log_verbose
    - uprv_fmin
    - uprv_isPositiveInfinity
    - doAssert
    - u_charsToUChars
    - uprv_mul32_overflow
    - uprv_detectWindowsTimeZone
    - getTestOption
    - u_uastrcpy
    - uprv_getNaN
    - uprv_getInfinity
    - uprv_fabs
    - strcmp
    - uprv_add32_overflow
    - log_err
    - uprv_max
    - uprv_fmod
    - malloc
    - u_UCharsToChars
    - austrdup
    - uprv_modf
    - uprv_pow10
    - uprv_min
    - strlen
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestPUtilAPI(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:348,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:360,1
    - Dst: u_versionFromString
      Src: /src/icu/source/test/cintltst/putiltst.c:363,1
    - Dst: u_versionFromString
      Src: /src/icu/source/test/cintltst/putiltst.c:364,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:365,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:366,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:368,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:370,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:373,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:375,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 378
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 378
    functionName: TestCompareVersions
    functionSourceFile: /src/icu/source/test/cintltst/putiltst.c
    functionUses: []
    functionsReached:
    - memcmp
    - u_versionFromString
    - log_verbose
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestCompareVersions(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uprv_IEEEremainder
      Src: /src/icu/source/test/cintltst/putiltst.c:419,1
    - Dst: uprv_isNaN
      Src: /src/icu/source/test/cintltst/putiltst.c:422,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:423,1
    - Dst: uprv_isNaN
      Src: /src/icu/source/test/cintltst/putiltst.c:422,1
    - Dst: uprv_isNaN
      Src: /src/icu/source/test/cintltst/putiltst.c:421,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:424,1
    - Dst: compareWithNAN
      Src: /src/icu/source/test/cintltst/putiltst.c:426,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:427,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - x
    - y
    - exp
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 432
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 432
    functionName: remainderTest
    functionSourceFile: /src/icu/source/test/cintltst/putiltst.c
    functionUses: []
    functionsReached:
    - uprv_IEEEremainder
    - compareWithNAN
    - log_verbose
    - log_err
    - uprv_isNaN
    linkageType: ''
    returnType: void
    signature: 'static void remainderTest(double x, double y, double exp) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uprv_isNaN
      Src: /src/icu/source/test/cintltst/putiltst.c:437,1
    - Dst: uprv_isNaN
      Src: /src/icu/source/test/cintltst/putiltst.c:438,1
    - Dst: uprv_isNaN
      Src: /src/icu/source/test/cintltst/putiltst.c:438,1
    - Dst: uprv_isNaN
      Src: /src/icu/source/test/cintltst/putiltst.c:437,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 447
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 447
    functionName: compareWithNAN
    functionSourceFile: /src/icu/source/test/cintltst/putiltst.c
    functionUses: []
    functionsReached:
    - uprv_isNaN
    linkageType: ''
    returnType: UBool
    signature: 'static UBool compareWithNAN(double x, double y) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:514,1
    - Dst: uprv_aestrncpy
      Src: /src/icu/source/test/cintltst/putiltst.c:515,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:517,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:520,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:519,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:521,1
    - Dst: dump_binline
      Src: /src/icu/source/test/cintltst/putiltst.c:521,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:522,1
    - Dst: dump_binline
      Src: /src/icu/source/test/cintltst/putiltst.c:522,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:524,1
    - Dst: dump_binline
      Src: /src/icu/source/test/cintltst/putiltst.c:526,1
    - Dst: dump_binline
      Src: /src/icu/source/test/cintltst/putiltst.c:525,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:526,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:525,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - line
    - expect
    - src
    - len
    argTypes:
    - int32_t
    - uint8_t*
    - uint8_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 528
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 528
    functionName: Test_aestrncpy
    functionSourceFile: /src/icu/source/test/cintltst/putiltst.c
    functionUses: []
    functionsReached:
    - uprv_aestrncpy
    - dump_binline
    - log_verbose
    - log_err
    - uprv_memcmp
    linkageType: ''
    returnType: void
    signature: 'static void Test_aestrncpy(int32_t line, const uint8_t *expect, const
      uint8_t *src, int32_t len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/putiltst.c:555,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/putiltst.c:560,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/putiltst.c:558,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/putiltst.c:559,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/putiltst.c:556,1
    - Dst: addToolUtilTests
      Src: /src/icu/source/test/cintltst/putiltst.c:561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 562
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 562
    functionName: addPUtilTest
    functionSourceFile: /src/icu/source/test/cintltst/putiltst.c
    functionUses: []
    functionsReached:
    - addToolUtilTests
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addPUtilTest(TestNode** root) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/putiltst.c:693,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:695,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/putiltst.c:701,1
    - Dst: STRNULL
      Src: /src/icu/source/test/cintltst/putiltst.c:698,1
    - Dst: STRNULL
      Src: /src/icu/source/test/cintltst/putiltst.c:699,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:703,1
    - Dst: STRNULL
      Src: /src/icu/source/test/cintltst/putiltst.c:704,1
    - Dst: findDirname
      Src: /src/icu/source/test/cintltst/putiltst.c:704,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:705,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/putiltst.c:705,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/putiltst.c:709,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:710,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/putiltst.c:707,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/putiltst.c:712,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/putiltst.c:707,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/putiltst.c:707,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 715
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 715
    functionName: toolutil_findDirname
    functionSourceFile: /src/icu/source/test/cintltst/putiltst.c
    functionUses: []
    functionsReached:
    - findDirname
    - strcmp
    - STRNULL
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    - uprv_memset
    linkageType: ''
    returnType: void
    signature: 'static void toolutil_findDirname(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/putiltst.c:720,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/putiltst.c:722,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/putiltst.c:721,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 730
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 730
    functionName: addToolUtilTests
    functionSourceFile: /src/icu/source/test/cintltst/putiltst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'static void addToolUtilTests(TestNode** root) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tryPat994
      Src: /src/icu/source/test/cintltst/cdtdptst.c:150,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:137,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cdtdptst.c:140,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdtdptst.c:127,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:132,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtdptst.c:133,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdtdptst.c:135,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtdptst.c:136,1
    - Dst: tryPat994
      Src: /src/icu/source/test/cintltst/cdtdptst.c:149,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdtdptst.c:152,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtdptst.c:129,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtdptst.c:128,1
    - Dst: tryPat994
      Src: /src/icu/source/test/cintltst/cdtdptst.c:148,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:144,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdtdptst.c:153,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:129,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdtdptst.c:132,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:135,1
    - Dst: tryPat994
      Src: /src/icu/source/test/cintltst/cdtdptst.c:147,1
    - Dst: tryPat994
      Src: /src/icu/source/test/cintltst/cdtdptst.c:151,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtdptst.c:142,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 154
    functionName: TestPartialParse994
    functionSourceFile: /src/icu/source/test/cintltst/cdtdptst.c
    functionUses: []
    functionsReached:
    - udat_open
    - malloc
    - u_uastrcpy
    - udat_parse
    - U_FAILURE
    - log_data_err
    - tryPat994
    - u_strlen
    - myErrorName
    - log_verbose
    - free
    - udat_close
    - strlen
    - myDateFormat
    linkageType: ''
    returnType: void
    signature: 'void TestPartialParse994() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdtdptst.c:61,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdtdptst.c:63,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtdptst.c:64,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtdptst.c:66,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtdptst.c:69,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtdptst.c:80,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/cintltst/cdtdptst.c:82,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cdtdptst.c:84,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdtdptst.c:84,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:90,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:65,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdtdptst.c:72,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:78,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdtdptst.c:75,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtdptst.c:71,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:80,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/cdtdptst.c:88,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtdptst.c:89,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdtdptst.c:100,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdtdptst.c:101,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtdptst.c:62,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:61,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:72,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtdptst.c:83,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtdptst.c:93,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:92,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/cdtdptst.c:95,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdtdptst.c:103,1
    - Dst: ctest_setTimeZone
      Src: /src/icu/source/test/cintltst/cdtdptst.c:59,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:63,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:75,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtdptst.c:79,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtdptst.c:76,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdtdptst.c:78,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cdtdptst.c:82,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/cdtdptst.c:87,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdtdptst.c:99,1
    - Dst: ctest_resetTimeZone
      Src: /src/icu/source/test/cintltst/cdtdptst.c:105,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 106
    functionName: TestTwoDigitYearDSTParse
    functionSourceFile: /src/icu/source/test/cintltst/cdtdptst.c
    functionUses: []
    functionsReached:
    - log_err_status
    - ucal_get
    - free
    - udat_close
    - u_errorName
    - ctest_resetTimeZone
    - udat_open
    - U_FAILURE
    - log_data_err
    - u_strlen
    - ucal_close
    - log_verbose
    - ucal_setMillis
    - u_uastrcpy
    - udat_parse
    - ctest_setTimeZone
    - ucal_open
    - log_err
    - malloc
    - austrdup
    - myErrorName
    - strlen
    - uloc_getDefault
    linkageType: ''
    returnType: void
    signature: 'void TestTwoDigitYearDSTParse() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:206,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:208,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtdptst.c:219,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdtdptst.c:216,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtdptst.c:214,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:216,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdtdptst.c:204,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cdtdptst.c:218,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtdptst.c:217,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:220,1
    - Dst: ucal_getNow
      Src: /src/icu/source/test/cintltst/cdtdptst.c:212,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdtdptst.c:222,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtdptst.c:205,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdtdptst.c:206,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:204,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtdptst.c:207,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtdptst.c:208,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdtdptst.c:209,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cdtdptst.c:213,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtdptst.c:214,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtdptst.c:219,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdtdptst.c:223,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 225
    functionName: TestRunTogetherPattern985
    functionSourceFile: /src/icu/source/test/cintltst/cdtdptst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - malloc
    - udat_open
    - udat_parse
    - U_FAILURE
    - ucal_getNow
    - log_data_err
    - austrdup
    - u_strlen
    - myErrorName
    - free
    - log_verbose
    - log_err
    - udat_close
    - strlen
    - myDateFormat
    linkageType: ''
    returnType: void
    signature: 'void TestRunTogetherPattern985() '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ctest_resetTimeZone
      Src: /src/icu/source/test/cintltst/cdtdptst.c:246,1
    - Dst: udat_toPattern
      Src: /src/icu/source/test/cintltst/cdtdptst.c:250,1
    - Dst: ucal_setDate
      Src: /src/icu/source/test/cintltst/cdtdptst.c:262,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:259,1
    - Dst: ucal_setDate
      Src: /src/icu/source/test/cintltst/cdtdptst.c:264,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cdtdptst.c:275,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cdtdptst.c:277,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdtdptst.c:280,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:281,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtdptst.c:283,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdtdptst.c:299,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtdptst.c:293,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdtdptst.c:245,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtdptst.c:244,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdtdptst.c:243,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdtdptst.c:253,1
    - Dst: udat_toPattern
      Src: /src/icu/source/test/cintltst/cdtdptst.c:254,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:256,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cdtdptst.c:259,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtdptst.c:260,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtdptst.c:260,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/cdtdptst.c:263,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/cdtdptst.c:297,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cdtdptst.c:289,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cdtdptst.c:268,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:245,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:260,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:271,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdtdptst.c:274,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:274,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cdtdptst.c:278,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdtdptst.c:285,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdtdptst.c:288,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cdtdptst.c:293,1
    - Dst: ctest_resetTimeZone
      Src: /src/icu/source/test/cintltst/cdtdptst.c:295,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdtdptst.c:298,1
    - Dst: ctest_setTimeZone
      Src: /src/icu/source/test/cintltst/cdtdptst.c:242,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtdptst.c:256,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtdptst.c:258,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdtdptst.c:257,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/cdtdptst.c:265,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cdtdptst.c:267,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cdtdptst.c:279,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cdtdptst.c:283,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:285,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cdtdptst.c:290,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdtdptst.c:296,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:291,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:288,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdtdptst.c:290,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cdtdptst.c:290,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 300
    functionName: TestCzechMonths459
    functionSourceFile: /src/icu/source/test/cintltst/cdtdptst.c
    functionUses: []
    functionsReached:
    - ucal_setDate
    - U_SUCCESS
    - free
    - udat_close
    - u_errorName
    - aescstrdup
    - ucal_getMillis
    - ctest_resetTimeZone
    - udat_open
    - U_FAILURE
    - log_data_err
    - u_strlen
    - ucal_close
    - log_verbose
    - myDateFormat
    - u_uastrcpy
    - udat_toPattern
    - udat_parse
    - ctest_setTimeZone
    - ucal_open
    - log_err
    - malloc
    - myErrorName
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'void TestCzechMonths459() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:319,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtdptst.c:320,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:327,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdtdptst.c:329,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:334,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/cdtdptst.c:337,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtdptst.c:344,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:345,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/cdtdptst.c:350,1
    - Dst: ctest_setTimeZone
      Src: /src/icu/source/test/cintltst/cdtdptst.c:317,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/cdtdptst.c:338,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cdtdptst.c:340,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cdtdptst.c:334,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtdptst.c:342,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtdptst.c:344,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdtdptst.c:351,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdtdptst.c:319,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdtdptst.c:325,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtdptst.c:335,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtdptst.c:335,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:341,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdtdptst.c:352,1
    - Dst: ctest_resetTimeZone
      Src: /src/icu/source/test/cintltst/cdtdptst.c:355,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:325,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtdptst.c:326,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtdptst.c:327,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtdptst.c:330,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:335,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdtdptst.c:341,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cdtdptst.c:345,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:346,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdtdptst.c:349,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdtdptst.c:353,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 356
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 356
    functionName: TestQuotePattern161
    functionSourceFile: /src/icu/source/test/cintltst/cdtdptst.c
    functionUses: []
    functionsReached:
    - ucal_setDateTime
    - free
    - udat_close
    - ucal_getMillis
    - ctest_resetTimeZone
    - udat_open
    - U_FAILURE
    - log_data_err
    - u_strlen
    - ucal_close
    - log_verbose
    - u_strncmp
    - myDateFormat
    - u_uastrcpy
    - ctest_setTimeZone
    - ucal_open
    - log_err
    - malloc
    - austrdup
    - myErrorName
    - strlen
    linkageType: ''
    returnType: void
    signature: 'void TestQuotePattern161() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtdptst.c:368,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtdptst.c:372,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtdptst.c:370,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdtdptst.c:369,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:371,1
    - Dst: udat_getBooleanAttribute
      Src: /src/icu/source/test/cintltst/cdtdptst.c:377,1
    - Dst: udat_setBooleanAttribute
      Src: /src/icu/source/test/cintltst/cdtdptst.c:380,1
    - Dst: udat_getBooleanAttribute
      Src: /src/icu/source/test/cintltst/cdtdptst.c:381,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:382,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdtdptst.c:386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 387
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 387
    functionName: TestBooleanAttributes
    functionSourceFile: /src/icu/source/test/cintltst/cdtdptst.c
    functionUses: []
    functionsReached:
    - udat_open
    - U_FAILURE
    - log_data_err
    - udat_setBooleanAttribute
    - myErrorName
    - log_verbose
    - log_err
    - udat_close
    - udat_getBooleanAttribute
    linkageType: ''
    returnType: void
    signature: 'void TestBooleanAttributes(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cdtdptst.c:37,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cdtdptst.c:40,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cdtdptst.c:39,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cdtdptst.c:38,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cdtdptst.c:41,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cdtdptst.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: addDtFrDepTest
    functionSourceFile: /src/icu/source/test/cintltst/cdtdptst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addDtFrDepTest(TestNode** root) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdtdptst.c:168,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:166,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtdptst.c:170,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtdptst.c:170,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdtdptst.c:173,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtdptst.c:181,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdtdptst.c:184,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdtdptst.c:188,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdtdptst.c:166,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtdptst.c:170,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtdptst.c:177,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdtdptst.c:189,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtdptst.c:169,1
    - Dst: udat_applyPattern
      Src: /src/icu/source/test/cintltst/cdtdptst.c:171,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:171,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:173,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtdptst.c:174,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtdptst.c:175,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:177,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:183,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtdptst.c:185,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtdptst.c:167,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cdtdptst.c:168,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cdtdptst.c:177,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtdptst.c:175,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cdtdptst.c:180,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtdptst.c:181,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtdptst.c:181,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtdptst.c:185,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 4
    argNames:
    - format
    - pattern
    - s
    - expected
    argTypes:
    - UDateFormat*
    - char*
    - char*
    - UDate
    constantsTouched: []
    func_position:
      end: 190
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 190
    functionName: tryPat994
    functionSourceFile: /src/icu/source/test/cintltst/cdtdptst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - malloc
    - udat_parse
    - U_FAILURE
    - austrdup
    - u_strlen
    - myErrorName
    - log_verbose
    - udat_applyPattern
    - log_err
    - free
    - strlen
    - u_strcmp
    - myDateFormat
    linkageType: ''
    returnType: void
    signature: 'void tryPat994(UDateFormat* format, const char* pattern, const char*
      s, UDate expected) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cfrtst.c:138,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cfrtst.c:140,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cfrtst.c:141,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cfrtst.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: addFrenchCollTest
    functionSourceFile: /src/icu/source/test/cintltst/cfrtst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addFrenchCollTest(TestNode** root) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cfrtst.c:150,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cfrtst.c:156,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cfrtst.c:151,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cfrtst.c:152,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cfrtst.c:152,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cfrtst.c:157,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cfrtst.c:158,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cfrtst.c:158,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cfrtst.c:161,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cfrtst.c:162,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cfrtst.c:167,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cfrtst.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 168
    functionName: TestTertiary
    functionSourceFile: /src/icu/source/test/cintltst/cfrtst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - ucol_setAttribute
    - doTest
    - myErrorName
    - log_verbose
    - log_err
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestTertiary( ) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cfrtst.c:175,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cfrtst.c:177,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cfrtst.c:176,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cfrtst.c:177,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cfrtst.c:180,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cfrtst.c:181,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cfrtst.c:182,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cfrtst.c:182,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cfrtst.c:185,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cfrtst.c:187,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cfrtst.c:198,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cfrtst.c:195,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 199
    functionName: TestSecondary
    functionSourceFile: /src/icu/source/test/cintltst/cfrtst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - ucol_setAttribute
    - doTest
    - myErrorName
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestSecondary() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucol_prepareShortStringOpen
      Src: /src/icu/source/test/cintltst/cfrtst.c:314,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cfrtst.c:318,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cfrtst.c:319,1
    - Dst: ucol_openFromShortString
      Src: /src/icu/source/test/cintltst/cfrtst.c:316,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cfrtst.c:319,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cfrtst.c:323,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cfrtst.c:325,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cfrtst.c:330,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cfrtst.c:334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 335
    functionName: TestGetSortKey
    functionSourceFile: /src/icu/source/test/cintltst/cfrtst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_prepareShortStringOpen
    - ucol_getSortKey
    - ucol_openFromShortString
    - U_FAILURE
    - log_data_err
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestGetSortKey() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cfrtst.c:205,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cfrtst.c:207,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cfrtst.c:206,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cfrtst.c:207,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cfrtst.c:210,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cfrtst.c:211,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cfrtst.c:216,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cfrtst.c:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 220
    functionName: TestExtra
    functionSourceFile: /src/icu/source/test/cintltst/cfrtst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - log_verbose
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestExtra() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:84,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:87,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/reapits.c:89,1
    - Dst: strncmp
      Src: /src/icu/source/test/cintltst/reapits.c:93,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:91,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/reapits.c:96,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - expected
    - actual
    - nulTerm
    - file
    - line
    argTypes:
    - char*
    - UChar*
    - UBool
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 99
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 99
    functionName: test_assert_string
    functionSourceFile: /src/icu/source/test/cintltst/reapits.c
    functionUses: []
    functionsReached:
    - strcmp
    - u_austrncpy
    - strncmp
    - log_err
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void test_assert_string(const char *expected, const UChar *actual,
      UBool nulTerm, const char *file, int line) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utext_setNativeIndex
      Src: /src/icu/source/test/cintltst/reapits.c:109,1
    - Dst: U8_NEXT_UNSAFE
      Src: /src/icu/source/test/cintltst/reapits.c:111,1
    - Dst: utext_next32
      Src: /src/icu/source/test/cintltst/reapits.c:112,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - utf8
    - utext
    argTypes:
    - char*
    - UText*
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: equals_utf8_utext
    functionSourceFile: /src/icu/source/test/cintltst/reapits.c
    functionUses: []
    functionsReached:
    - utext_setNativeIndex
    - utext_next32
    - U8_NEXT_UNSAFE
    linkageType: ''
    returnType: UBool
    signature: 'static UBool equals_utf8_utext(const char *utf8, UText *utext) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/reapits.c:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - context
    - steps
    argTypes:
    - void*
    - int32_t
    constantsTouched: []
    func_position:
      end: 206
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 206
    functionName: TestCallbackFn
    functionSourceFile: /src/icu/source/test/cintltst/reapits.c
    functionUses: []
    functionsReached:
    - log_err
    linkageType: ''
    returnType: U_CALLCONV
    signature: 'U_CALLCONV TestCallbackFn(const void *context, int32_t steps) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1471,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1542,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1835,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1632,1
    - Dst: utext_openUTF8
      Src: /src/icu/source/test/cintltst/reapits.c:1690,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1922,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:2185,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1597,1
    - Dst: uregex_getUText
      Src: /src/icu/source/test/cintltst/reapits.c:1637,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1919,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:1971,1
    - Dst: uregex_replaceAllUText
      Src: /src/icu/source/test/cintltst/reapits.c:1897,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1648,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2174,1
    - Dst: utext_openUTF8
      Src: /src/icu/source/test/cintltst/reapits.c:1566,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1658,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1936,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2047,1
    - Dst: uregex_lookingAt
      Src: /src/icu/source/test/cintltst/reapits.c:1591,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1720,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:1853,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1963,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:2027,1
    - Dst: uregex_pattern
      Src: /src/icu/source/test/cintltst/reapits.c:1537,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:1727,1
    - Dst: uregex_groupUText
      Src: /src/icu/source/test/cintltst/reapits.c:1801,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:2152,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2112,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:1716,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:1731,1
    - Dst: uregex_lookingAt
      Src: /src/icu/source/test/cintltst/reapits.c:1574,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1586,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1596,1
    - Dst: utext_setNativeIndex
      Src: /src/icu/source/test/cintltst/reapits.c:1629,1
    - Dst: uregex_findNext
      Src: /src/icu/source/test/cintltst/reapits.c:1744,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1789,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1847,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1784,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2053,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1492,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1728,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2139,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2163,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1448,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1687,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1962,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1796,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1435,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1467,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1494,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:1896,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2044,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2141,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2178,1
    - Dst: uregex_replaceFirstUText
      Src: /src/icu/source/test/cintltst/reapits.c:1859,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1852,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:1885,1
    - Dst: utext_openUTF8
      Src: /src/icu/source/test/cintltst/reapits.c:1565,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1526,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1807,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2018,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2143,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1882,1
    - Dst: uregex_lookingAt
      Src: /src/icu/source/test/cintltst/reapits.c:1579,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1593,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:1966,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2020,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2050,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:2147,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1922,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1643,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1651,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2160,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:1846,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1733,1
    - Dst: utext_openUTF8
      Src: /src/icu/source/test/cintltst/reapits.c:1858,1
    - Dst: uregex_replaceAllUText
      Src: /src/icu/source/test/cintltst/reapits.c:1890,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1921,1
    - Dst: uregex_openUText
      Src: /src/icu/source/test/cintltst/reapits.c:1440,1
    - Dst: uregex_setUText
      Src: /src/icu/source/test/cintltst/reapits.c:1625,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1657,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1694,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1727,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1898,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1938,1
    - Dst: uregex_clone
      Src: /src/icu/source/test/cintltst/reapits.c:1476,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1697,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1742,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1996,1
    - Dst: uregex_splitUText
      Src: /src/icu/source/test/cintltst/reapits.c:2127,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1840,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1817,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1485,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1498,1
    - Dst: uregex_matches
      Src: /src/icu/source/test/cintltst/reapits.c:1677,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1927,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1631,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1814,1
    - Dst: utext_openUTF8
      Src: /src/icu/source/test/cintltst/reapits.c:1883,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:2187,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1428,1
    - Dst: uregex_open
      Src: /src/icu/source/test/cintltst/reapits.c:1536,1
    - Dst: utext_setNativeIndex
      Src: /src/icu/source/test/cintltst/reapits.c:1640,1
    - Dst: uregex_findNext
      Src: /src/icu/source/test/cintltst/reapits.c:1738,1
    - Dst: uregex_splitUText
      Src: /src/icu/source/test/cintltst/reapits.c:2010,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2110,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1757,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1845,1
    - Dst: uregex_clone
      Src: /src/icu/source/test/cintltst/reapits.c:1470,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1524,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1581,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1962,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1989,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2102,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1487,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1544,1
    - Dst: uregex_getUText
      Src: /src/icu/source/test/cintltst/reapits.c:1647,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1726,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1748,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:1889,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:1918,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:2038,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:2048,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2061,1
    - Dst: uregex_setUText
      Src: /src/icu/source/test/cintltst/reapits.c:1684,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1425,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1442,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1500,1
    - Dst: uregex_splitUText
      Src: /src/icu/source/test/cintltst/reapits.c:2078,1
    - Dst: uregex_groupUText
      Src: /src/icu/source/test/cintltst/reapits.c:1788,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1533,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2063,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1636,1
    - Dst: uregex_getText
      Src: /src/icu/source/test/cintltst/reapits.c:1653,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:1857,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1882,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:2116,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1481,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:2069,1
    - Dst: uregex_findNext
      Src: /src/icu/source/test/cintltst/reapits.c:1753,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1939,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1881,1
    - Dst: uregex_openUText
      Src: /src/icu/source/test/cintltst/reapits.c:1432,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1521,1
    - Dst: uregex_setUText
      Src: /src/icu/source/test/cintltst/reapits.c:1590,1
    - Dst: uregex_end
      Src: /src/icu/source/test/cintltst/reapits.c:1741,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1466,1
    - Dst: uregex_openUText
      Src: /src/icu/source/test/cintltst/reapits.c:1446,1
    - Dst: uregex_openUText
      Src: /src/icu/source/test/cintltst/reapits.c:1622,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1679,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1692,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1903,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2006,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2065,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1551,1
    - Dst: uregex_lookingAt
      Src: /src/icu/source/test/cintltst/reapits.c:1493,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1628,1
    - Dst: uregex_getText
      Src: /src/icu/source/test/cintltst/reapits.c:1634,1
    - Dst: testUTextEqual
      Src: /src/icu/source/test/cintltst/reapits.c:1651,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1805,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:1935,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2177,1
    - Dst: utext_getNativeIndex
      Src: /src/icu/source/test/cintltst/reapits.c:1803,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1921,1
    - Dst: uregex_replaceFirstUText
      Src: /src/icu/source/test/cintltst/reapits.c:1851,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:1491,1
    - Dst: utext_openUTF8
      Src: /src/icu/source/test/cintltst/reapits.c:1621,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1642,1
    - Dst: uregex_splitUText
      Src: /src/icu/source/test/cintltst/reapits.c:2049,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2156,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2171,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1436,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1686,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:1987,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2153,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1618,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1776,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1795,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1985,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:2043,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2087,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1931,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1780,1
    - Dst: testUTextEqual
      Src: /src/icu/source/test/cintltst/reapits.c:1631,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2085,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:2091,1
    - Dst: uregex_splitUText
      Src: /src/icu/source/test/cintltst/reapits.c:2159,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:1531,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1575,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1595,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1941,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1900,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1865,1
    - Dst: uregex_end
      Src: /src/icu/source/test/cintltst/reapits.c:1756,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:1740,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2003,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:2038,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1464,1
    - Dst: uregex_setUText
      Src: /src/icu/source/test/cintltst/reapits.c:1578,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1592,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1656,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1723,1
    - Dst: uregex_end
      Src: /src/icu/source/test/cintltst/reapits.c:1747,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:1683,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1975,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:1839,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2175,1
    - Dst: utext_openUChars
      Src: /src/icu/source/test/cintltst/reapits.c:1619,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1732,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:1850,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1981,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1741,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1481,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1570,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1627,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1929,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1944,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1836,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:1719,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1497,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:1549,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1939,1
    - Dst: utext_extract
      Src: /src/icu/source/test/cintltst/reapits.c:1806,1
    - Dst: uregex_replaceFirstUText
      Src: /src/icu/source/test/cintltst/reapits.c:1844,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1862,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1530,1
    - Dst: uregex_openUText
      Src: /src/icu/source/test/cintltst/reapits.c:1422,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:1484,1
    - Dst: uregex_setUText
      Src: /src/icu/source/test/cintltst/reapits.c:1676,1
    - Dst: uregex_splitUText
      Src: /src/icu/source/test/cintltst/reapits.c:2101,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:2152,1
    - Dst: uregex_findNext
      Src: /src/icu/source/test/cintltst/reapits.c:1759,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1881,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:1755,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:1783,1
    - Dst: uregex_lookingAt
      Src: /src/icu/source/test/cintltst/reapits.c:1486,1
    - Dst: uregex_lookingAt
      Src: /src/icu/source/test/cintltst/reapits.c:1585,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1639,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2140,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:1746,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1480,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1525,1
    - Dst: utext_setNativeIndex
      Src: /src/icu/source/test/cintltst/reapits.c:1650,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1972,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:2041,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2138,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2144,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1740,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1756,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:1926,1
    - Dst: utext_openUTF8
      Src: /src/icu/source/test/cintltst/reapits.c:1837,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1478,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1580,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1761,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1978,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2142,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1893,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1501,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1618,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:1646,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1747,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1776,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:1899,1
    - Dst: testUTextEqual
      Src: /src/icu/source/test/cintltst/reapits.c:1642,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1541,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1548,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1441,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:2181,1
    - Dst: utext_getNativeIndex
      Src: /src/icu/source/test/cintltst/reapits.c:1791,1
    - Dst: uregex_pattern
      Src: /src/icu/source/test/cintltst/reapits.c:1520,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1515,1
    - Dst: utext_setNativeIndex
      Src: /src/icu/source/test/cintltst/reapits.c:1630,1
    - Dst: uregex_end
      Src: /src/icu/source/test/cintltst/reapits.c:1722,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2017,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:1843,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/reapits.c:1543,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2019,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1678,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1472,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1932,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:2023,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1792,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/reapits.c:1544,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1587,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1680,1
    - Dst: uregex_matches
      Src: /src/icu/source/test/cintltst/reapits.c:1693,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1699,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2066,1
    - Dst: utext_openUTF8
      Src: /src/icu/source/test/cintltst/reapits.c:1421,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/reapits.c:1526,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1543,1
    - Dst: uregex_setUText
      Src: /src/icu/source/test/cintltst/reapits.c:1691,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1739,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1755,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:1861,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1729,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1836,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1638,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/reapits.c:1424,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1538,1
    - Dst: uregex_reset
      Src: /src/icu/source/test/cintltst/reapits.c:1736,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1802,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1714,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1746,1
    - Dst: uregex_openUText
      Src: /src/icu/source/test/cintltst/reapits.c:1463,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:1779,1
    - Dst: uregex_groupUText
      Src: /src/icu/source/test/cintltst/reapits.c:1813,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2113,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:1721,1
    - Dst: uregex_clone
      Src: /src/icu/source/test/cintltst/reapits.c:1465,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1473,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1495,1
    - Dst: uregex_openUText
      Src: /src/icu/source/test/cintltst/reapits.c:1674,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1698,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2111,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2105,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1480,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:1892,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:1976,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1835,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2082,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2109,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1654,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1902,1
    - Dst: uregex_appendReplacement
      Src: /src/icu/source/test/cintltst/reapits.c:1930,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1722,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2062,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2131,1
    - Dst: uregex_appendReplacement
      Src: /src/icu/source/test/cintltst/reapits.c:1940,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:1725,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1886,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1809,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1860,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:2002,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2060,1
    - Dst: uregex_openUText
      Src: /src/icu/source/test/cintltst/reapits.c:1569,1
    - Dst: uregex_getUText
      Src: /src/icu/source/test/cintltst/reapits.c:1626,1
    - Dst: utext_openUTF8
      Src: /src/icu/source/test/cintltst/reapits.c:1673,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1754,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1963,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2176,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1745,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:1496,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1515,1
    - Dst: utext_setNativeIndex
      Src: /src/icu/source/test/cintltst/reapits.c:1641,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1942,1
    - Dst: uregex_reset
      Src: /src/icu/source/test/cintltst/reapits.c:1751,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1854,1
    - Dst: uregex_open
      Src: /src/icu/source/test/cintltst/reapits.c:1519,1
    - Dst: uregex_patternUText
      Src: /src/icu/source/test/cintltst/reapits.c:1529,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1695,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2014,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2064,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1891,1
    - Dst: utext_openUTF8
      Src: /src/icu/source/test/cintltst/reapits.c:1518,1
    - Dst: utext_extract
      Src: /src/icu/source/test/cintltst/reapits.c:1793,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1815,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2079,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1864,1
    - Dst: utext_openUTF8
      Src: /src/icu/source/test/cintltst/reapits.c:1568,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1477,1
    - Dst: utext_setNativeIndex
      Src: /src/icu/source/test/cintltst/reapits.c:1649,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:1718,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2128,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2170,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1791,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1652,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1721,1
    - Dst: uregex_splitUText
      Src: /src/icu/source/test/cintltst/reapits.c:1977,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:1986,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/reapits.c:1992,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2088,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:2157,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:1782,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1803,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1714,1
    - Dst: uregex_end
      Src: /src/icu/source/test/cintltst/reapits.c:1728,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/reapits.c:1424,1
    - Dst: uregex_setUText
      Src: /src/icu/source/test/cintltst/reapits.c:1584,1
    - Dst: utext_openUTF8
      Src: /src/icu/source/test/cintltst/reapits.c:1617,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2086,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/reapits.c:1423,1
    - Dst: uregex_patternUText
      Src: /src/icu/source/test/cintltst/reapits.c:1547,1
    - Dst: utext_openUTF8
      Src: /src/icu/source/test/cintltst/reapits.c:1672,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1763,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:1988,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:2001,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:1923,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1502,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1488,1
    - Dst: uregex_matches
      Src: /src/icu/source/test/cintltst/reapits.c:1685,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1760,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2011,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2172,1
    - Dst: TEST_ASSERT_UTEXT
      Src: /src/icu/source/test/cintltst/reapits.c:2173,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 640
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2188
      start: 1413
    functionDepth: 0
    functionLinenumber: 1413
    functionLinenumberEnd: 2188
    functionName: TestUTextAPI
    functionSourceFile: /src/icu/source/test/cintltst/reapits.c
    functionUses: []
    functionsReached:
    - uregex_replaceFirstUText
    - utext_close
    - U_SUCCESS
    - uregex_groupUText
    - uregex_matches
    - uregex_clone
    - uregex_openC
    - uregex_splitUText
    - u_errorName
    - uregex_patternUText
    - uregex_getText
    - TEST_ASSERT_UTEXT
    - uregex_findNext
    - TEST_ASSERT_STRING
    - uregex_replaceAllUText
    - U_FAILURE
    - log_data_err
    - utext_openUTF8
    - utext_getNativeIndex
    - uregex_appendReplacement
    - u_strlen
    - u_strncmp
    - TEST_ASSERT
    - uregex_setUText
    - UPRV_LENGTHOF
    - uregex_close
    - uregex_start
    - uregex_end
    - memset
    - uregex_pattern
    - uregex_open
    - uregex_getUText
    - utext_openUChars
    - TEST_ASSERT_SUCCESS
    - strlen
    - uregex_setText
    - utext_setNativeIndex
    - u_uastrncpy
    - testUTextEqual
    - utext_extract
    - uregex_openUText
    - uregex_lookingAt
    - uregex_find
    - uregex_reset
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestUTextAPI(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2210,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2216,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:2230,1
    - Dst: uregex_findNext
      Src: /src/icu/source/test/cintltst/reapits.c:2231,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2231,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:2206,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2212,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2215,1
    - Dst: uregex_findNext
      Src: /src/icu/source/test/cintltst/reapits.c:2227,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/reapits.c:2219,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/reapits.c:2220,1
    - Dst: uregex_refreshUText
      Src: /src/icu/source/test/cintltst/reapits.c:2223,1
    - Dst: u_memset
      Src: /src/icu/source/test/cintltst/reapits.c:2220,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:2228,1
    - Dst: uregex_findNext
      Src: /src/icu/source/test/cintltst/reapits.c:2229,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2207,1
    - Dst: utext_openUChars
      Src: /src/icu/source/test/cintltst/reapits.c:2209,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2222,1
    - Dst: utext_openUChars
      Src: /src/icu/source/test/cintltst/reapits.c:2221,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2228,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2229,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2230,1
    - Dst: uregex_setUText
      Src: /src/icu/source/test/cintltst/reapits.c:2211,1
    - Dst: uregex_findNext
      Src: /src/icu/source/test/cintltst/reapits.c:2215,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:2216,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2224,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2227,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:2233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2234
      start: 2191
    functionDepth: 0
    functionLinenumber: 2191
    functionLinenumberEnd: 2234
    functionName: TestRefreshInput
    functionSourceFile: /src/icu/source/test/cintltst/reapits.c
    functionUses: []
    functionsReached:
    - uregex_findNext
    - uregex_refreshUText
    - u_memset
    - uregex_close
    - u_strcpy
    - u_strlen
    - utext_openUChars
    - uregex_setUText
    - TEST_ASSERT
    - TEST_ASSERT_SUCCESS
    - uregex_openC
    - uregex_start
    linkageType: ''
    returnType: void
    signature: 'static void TestRefreshInput(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - context
    - matchIndex
    argTypes:
    - void*
    - int64_t
    constantsTouched: []
    func_position:
      end: 2266
      start: 2261
    functionDepth: 0
    functionLinenumber: 2261
    functionLinenumberEnd: 2266
    functionName: FindCallback
    functionSourceFile: /src/icu/source/test/cintltst/reapits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool U_CALLCONV FindCallback(const void* context , int64_t
      matchIndex) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uregex_setFindProgressCallback
      Src: /src/icu/source/test/cintltst/reapits.c:2293,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:2304,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2311,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:2309,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:2319,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:2286,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:2290,1
    - Dst: uregex_findNext
      Src: /src/icu/source/test/cintltst/reapits.c:2296,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2297,1
    - Dst: uregex_setMatchCallback
      Src: /src/icu/source/test/cintltst/reapits.c:2313,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2305,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:2289,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2294,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:2309,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:2310,1
    - Dst: uregex_findNext
      Src: /src/icu/source/test/cintltst/reapits.c:2316,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2317,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:2289,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2287,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2291,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2314,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:2299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2320
      start: 2275
    functionDepth: 0
    functionLinenumber: 2275
    functionLinenumberEnd: 2320
    functionName: TestBug10815
    functionSourceFile: /src/icu/source/test/cintltst/reapits.c
    functionUses: []
    functionsReached:
    - uregex_findNext
    - uregex_setText
    - uregex_setFindProgressCallback
    - u_uastrncpy
    - TEST_ASSERT_SUCCESS
    - TEST_ASSERT
    - UPRV_LENGTHOF
    - uregex_close
    - uregex_openC
    - uregex_setMatchCallback
    linkageType: ''
    returnType: void
    signature: 'static void TestBug10815() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utext_setNativeIndex
      Src: /src/icu/source/test/cintltst/reapits.c:152,1
    - Dst: utext_next32
      Src: /src/icu/source/test/cintltst/reapits.c:155,1
    - Dst: utext_next32
      Src: /src/icu/source/test/cintltst/reapits.c:156,1
    - Dst: utext_setNativeIndex
      Src: /src/icu/source/test/cintltst/reapits.c:153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - uta
    - utb
    argTypes:
    - UText*
    - UText*
    constantsTouched: []
    func_position:
      end: 162
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 162
    functionName: testUTextEqual
    functionSourceFile: /src/icu/source/test/cintltst/reapits.c
    functionUses: []
    functionsReached:
    - utext_setNativeIndex
    - utext_next32
    linkageType: ''
    returnType: UBool
    signature: 'static UBool testUTextEqual(UText *uta, UText *utb) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utext_setNativeIndex
      Src: /src/icu/source/test/cintltst/reapits.c:126,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/reapits.c:129,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/reapits.c:133,1
    - Dst: equals_utf8_utext
      Src: /src/icu/source/test/cintltst/reapits.c:127,1
    - Dst: utext_next32From
      Src: /src/icu/source/test/cintltst/reapits.c:130,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/reapits.c:135,1
    - Dst: UTEXT_NEXT32
      Src: /src/icu/source/test/cintltst/reapits.c:137,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/reapits.c:139,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - expected
    - actual
    - file
    - line
    argTypes:
    - char*
    - UText*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: test_assert_utext
    functionSourceFile: /src/icu/source/test/cintltst/reapits.c
    functionUses: []
    functionsReached:
    - UTEXT_NEXT32
    - equals_utf8_utext
    - utext_setNativeIndex
    - log_err
    - utext_next32From
    linkageType: ''
    returnType: void
    signature: 'static void test_assert_utext(const char *expected, UText *actual,
      const char *file, int line) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/reapits.c:178,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/reapits.c:179,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/reapits.c:182,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/reapits.c:180,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/reapits.c:181,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/reapits.c:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 184
    functionName: addURegexTest
    functionSourceFile: /src/icu/source/test/cintltst/reapits.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addURegexTest(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:2245,1
    - Dst: uregex_getTimeLimit
      Src: /src/icu/source/test/cintltst/reapits.c:2248,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2246,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2249,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2250,1
    - Dst: uregex_setTimeLimit
      Src: /src/icu/source/test/cintltst/reapits.c:2252,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2253,1
    - Dst: uregex_getTimeLimit
      Src: /src/icu/source/test/cintltst/reapits.c:2254,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:2255,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:2256,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:2258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2259
      start: 2237
    functionDepth: 0
    functionLinenumber: 2237
    functionLinenumberEnd: 2259
    functionName: TestBug8421
    functionSourceFile: /src/icu/source/test/cintltst/reapits.c
    functionUses: []
    functionsReached:
    - uregex_setTimeLimit
    - uregex_getTimeLimit
    - TEST_ASSERT
    - TEST_ASSERT_SUCCESS
    - uregex_openC
    - uregex_close
    linkageType: ''
    returnType: void
    signature: 'static void TestBug8421(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - context
    - steps
    argTypes:
    - void*
    - int32_t
    constantsTouched: []
    func_position:
      end: 2273
      start: 2268
    functionDepth: 0
    functionLinenumber: 2268
    functionLinenumberEnd: 2273
    functionName: MatchCallback
    functionSourceFile: /src/icu/source/test/cintltst/reapits.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool U_CALLCONV MatchCallback(const void *context, int32_t
      steps) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:272,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:435,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:447,1
    - Dst: TEST_SETUP
      Src: /src/icu/source/test/cintltst/reapits.c:713,1
    - Dst: uregex_end
      Src: /src/icu/source/test/cintltst/reapits.c:562,1
    - Dst: uregex_replaceFirst
      Src: /src/icu/source/test/cintltst/reapits.c:859,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:976,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1070,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1145,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1280,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1038,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:818,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:1181,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:816,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:527,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:538,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:623,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:671,1
    - Dst: uregex_setRegion
      Src: /src/icu/source/test/cintltst/reapits.c:722,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:751,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:796,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:818,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:832,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:998,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:1019,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:917,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:972,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1201,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/reapits.c:223,1
    - Dst: uregex_open
      Src: /src/icu/source/test/cintltst/reapits.c:346,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:423,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:415,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:569,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:775,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:841,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1087,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1147,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1209,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1284,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1354,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1281,1
    - Dst: uregex_setRegion
      Src: /src/icu/source/test/cintltst/reapits.c:704,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:522,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:554,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:586,1
    - Dst: TEST_SETUP
      Src: /src/icu/source/test/cintltst/reapits.c:765,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:774,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:819,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:869,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:912,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1115,1
    - Dst: uregex_setMatchCallback
      Src: /src/icu/source/test/cintltst/reapits.c:1344,1
    - Dst: uregex_lookingAt
      Src: /src/icu/source/test/cintltst/reapits.c:442,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:595,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:252,1
    - Dst: uregex_open
      Src: /src/icu/source/test/cintltst/reapits.c:359,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:579,1
    - Dst: uregex_end
      Src: /src/icu/source/test/cintltst/reapits.c:761,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1101,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1192,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:233,1
    - Dst: uregex_clone
      Src: /src/icu/source/test/cintltst/reapits.c:308,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:510,1
    - Dst: uregex_matches
      Src: /src/icu/source/test/cintltst/reapits.c:529,1
    - Dst: uregex_reset
      Src: /src/icu/source/test/cintltst/reapits.c:576,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:620,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:800,1
    - Dst: uregex_hasTransparentBounds
      Src: /src/icu/source/test/cintltst/reapits.c:809,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:852,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:861,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1123,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/reapits.c:1128,1
    - Dst: uregex_setStackLimit
      Src: /src/icu/source/test/cintltst/reapits.c:1317,1
    - Dst: TEST_SETUP
      Src: /src/icu/source/test/cintltst/reapits.c:784,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1037,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:624,1
    - Dst: uregex_useTransparentBounds
      Src: /src/icu/source/test/cintltst/reapits.c:813,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1194,1
    - Dst: uregex_setTimeLimit
      Src: /src/icu/source/test/cintltst/reapits.c:1300,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1340,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1349,1
    - Dst: uregex_getMatchCallback
      Src: /src/icu/source/test/cintltst/reapits.c:1352,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:561,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:652,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:707,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:317,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:226,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:330,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:452,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:659,1
    - Dst: uregex_findNext
      Src: /src/icu/source/test/cintltst/reapits.c:731,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:785,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1253,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1132,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:1271,1
    - Dst: uregex_getMatchCallback
      Src: /src/icu/source/test/cintltst/reapits.c:1337,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:565,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:366,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:437,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:449,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:750,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:809,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:932,1
    - Dst: uregex_replaceAll
      Src: /src/icu/source/test/cintltst/reapits.c:953,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1153,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:680,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:562,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:690,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:844,1
    - Dst: uregex_replaceFirst
      Src: /src/icu/source/test/cintltst/reapits.c:850,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:921,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:928,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:945,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:963,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1112,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/reapits.c:936,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1154,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:425,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:709,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:468,1
    - Dst: uregex_reset
      Src: /src/icu/source/test/cintltst/reapits.c:591,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:585,1
    - Dst: uregex_clone
      Src: /src/icu/source/test/cintltst/reapits.c:302,1
    - Dst: uregex_open
      Src: /src/icu/source/test/cintltst/reapits.c:244,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:413,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:731,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:768,1
    - Dst: uregex_group
      Src: /src/icu/source/test/cintltst/reapits.c:657,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:594,1
    - Dst: uregex_group
      Src: /src/icu/source/test/cintltst/reapits.c:650,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:466,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:526,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:616,1
    - Dst: uregex_group
      Src: /src/icu/source/test/cintltst/reapits.c:664,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:356,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:258,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:319,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1214,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1255,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:272,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:332,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:391,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:774,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:1031,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:1110,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1251,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1152,1
    - Dst: uregex_end
      Src: /src/icu/source/test/cintltst/reapits.c:804,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:558,1
    - Dst: uregex_open
      Src: /src/icu/source/test/cintltst/reapits.c:238,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:471,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:478,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:485,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:531,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:761,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:832,1
    - Dst: uregex_replaceFirst
      Src: /src/icu/source/test/cintltst/reapits.c:842,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:955,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1347,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:1079,1
    - Dst: uregex_replaceFirst
      Src: /src/icu/source/test/cintltst/reapits.c:870,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1292,1
    - Dst: uregex_split
      Src: /src/icu/source/test/cintltst/reapits.c:1188,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/reapits.c:223,1
    - Dst: TEST_SETUP
      Src: /src/icu/source/test/cintltst/reapits.c:740,1
    - Dst: TEST_SETUP
      Src: /src/icu/source/test/cintltst/reapits.c:795,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:800,1
    - Dst: uregex_replaceFirst
      Src: /src/icu/source/test/cintltst/reapits.c:885,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:1259,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:554,1
    - Dst: uregex_end
      Src: /src/icu/source/test/cintltst/reapits.c:568,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:613,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:313,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/reapits.c:222,1
    - Dst: uregex_setRegion
      Src: /src/icu/source/test/cintltst/reapits.c:749,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1199,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/reapits.c:1257,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1273,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1015,1
    - Dst: uregex_open
      Src: /src/icu/source/test/cintltst/reapits.c:469,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1080,1
    - Dst: uregex_open
      Src: /src/icu/source/test/cintltst/reapits.c:388,1
    - Dst: uregex_open
      Src: /src/icu/source/test/cintltst/reapits.c:395,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:617,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:685,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:504,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:603,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:561,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:871,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1027,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1304,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:1186,1
    - Dst: uregex_replaceAll
      Src: /src/icu/source/test/cintltst/reapits.c:933,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/reapits.c:273,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:298,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:371,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:392,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:502,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:670,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:507,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:519,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:600,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:637,1
    - Dst: uregex_lookingAt
      Src: /src/icu/source/test/cintltst/reapits.c:430,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:760,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1071,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1182,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:641,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:246,1
    - Dst: uregex_lookingAt
      Src: /src/icu/source/test/cintltst/reapits.c:325,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:353,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:384,1
    - Dst: uregex_end
      Src: /src/icu/source/test/cintltst/reapits.c:717,1
    - Dst: uregex_lookingAt
      Src: /src/icu/source/test/cintltst/reapits.c:759,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:941,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1239,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1286,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:880,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1176,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:323,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:277,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:432,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:444,1
    - Dst: uregex_regionEnd
      Src: /src/icu/source/test/cintltst/reapits.c:703,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:874,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:887,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:915,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1236,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1279,1
    - Dst: uregex_getStackLimit
      Src: /src/icu/source/test/cintltst/reapits.c:1320,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1025,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:684,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:677,1
    - Dst: uregex_setRegion
      Src: /src/icu/source/test/cintltst/reapits.c:730,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:760,1
    - Dst: uregex_useTransparentBounds
      Src: /src/icu/source/test/cintltst/reapits.c:817,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:870,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:935,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1216,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1250,1
    - Dst: uregex_getTimeLimit
      Src: /src/icu/source/test/cintltst/reapits.c:1306,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:992,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1283,1
    - Dst: uregex_open
      Src: /src/icu/source/test/cintltst/reapits.c:414,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:680,1
    - Dst: TEST_SETUP
      Src: /src/icu/source/test/cintltst/reapits.c:808,1
    - Dst: uregex_split
      Src: /src/icu/source/test/cintltst/reapits.c:1086,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:1116,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:1140,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:888,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1234,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:915,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:1265,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1017,1
    - Dst: TEST_SETUP
      Src: /src/icu/source/test/cintltst/reapits.c:721,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/reapits.c:528,1
    - Dst: uregex_findNext
      Src: /src/icu/source/test/cintltst/reapits.c:707,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:539,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:567,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:703,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:296,1
    - Dst: uregex_open
      Src: /src/icu/source/test/cintltst/reapits.c:381,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:413,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:468,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:622,1
    - Dst: uregex_split
      Src: /src/icu/source/test/cintltst/reapits.c:1143,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:466,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:556,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:571,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:250,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:240,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:274,1
    - Dst: uregex_group
      Src: /src/icu/source/test/cintltst/reapits.c:708,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:560,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:385,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:411,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1023,1
    - Dst: uregex_split
      Src: /src/icu/source/test/cintltst/reapits.c:1118,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/reapits.c:990,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:1225,1
    - Dst: uregex_open
      Src: /src/icu/source/test/cintltst/reapits.c:230,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:523,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:568,1
    - Dst: uregex_hasAnchoringBounds
      Src: /src/icu/source/test/cintltst/reapits.c:798,1
    - Dst: uregex_replaceAll
      Src: /src/icu/source/test/cintltst/reapits.c:988,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1094,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1348,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:716,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:509,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:521,1
    - Dst: uregex_findNext
      Src: /src/icu/source/test/cintltst/reapits.c:735,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:884,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:891,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:962,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1086,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1193,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/reapits.c:1217,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1353,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:645,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:234,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:1022,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:1111,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1247,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1260,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1282,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1346,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1105,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1047,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:313,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:410,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:465,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:480,1
    - Dst: uregex_open
      Src: /src/icu/source/test/cintltst/reapits.c:505,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:473,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:717,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:759,1
    - Dst: uregex_requireEnd
      Src: /src/icu/source/test/cintltst/reapits.c:791,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:798,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/reapits.c:1286,1
    - Dst: uregex_matches
      Src: /src/icu/source/test/cintltst/reapits.c:514,1
    - Dst: uregex_lookingAt
      Src: /src/icu/source/test/cintltst/reapits.c:318,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:329,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:351,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:368,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:399,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:504,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:735,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:920,1
    - Dst: uregex_setTimeLimit
      Src: /src/icu/source/test/cintltst/reapits.c:1303,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:502,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:637,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:266,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:316,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:487,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:687,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:734,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:803,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:873,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1125,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1231,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:916,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1126,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:537,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:925,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1274,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1316,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:256,1
    - Dst: uregex_findNext
      Src: /src/icu/source/test/cintltst/reapits.c:599,1
    - Dst: uregex_hitEnd
      Src: /src/icu/source/test/cintltst/reapits.c:780,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:791,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:860,1
    - Dst: uregex_setStackLimit
      Src: /src/icu/source/test/cintltst/reapits.c:1314,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:567,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:312,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:271,1
    - Dst: TEST_SETUP
      Src: /src/icu/source/test/cintltst/reapits.c:748,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:790,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:804,1
    - Dst: uregex_hasTransparentBounds
      Src: /src/icu/source/test/cintltst/reapits.c:811,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:863,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:926,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1028,1
    - Dst: uregex_getStackLimit
      Src: /src/icu/source/test/cintltst/reapits.c:1315,1
    - Dst: uregex_replaceAll
      Src: /src/icu/source/test/cintltst/reapits.c:925,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:310,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:475,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:482,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:715,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:582,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:615,1
    - Dst: uregex_end
      Src: /src/icu/source/test/cintltst/reapits.c:744,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:769,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:993,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1196,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1217,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/reapits.c:1135,1
    - Dst: uregex_matches
      Src: /src/icu/source/test/cintltst/reapits.c:1347,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:333,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:390,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:429,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:441,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:573,1
    - Dst: TEST_SETUP
      Src: /src/icu/source/test/cintltst/reapits.c:700,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:780,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:834,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:1042,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1188,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:411,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1124,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:348,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:489,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:716,1
    - Dst: uregex_setRegion
      Src: /src/icu/source/test/cintltst/reapits.c:758,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:779,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:811,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:859,1
    - Dst: uregex_appendReplacement
      Src: /src/icu/source/test/cintltst/reapits.c:1046,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1213,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1299,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1320,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1035,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:274,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:397,1
    - Dst: uregex_lookingAt
      Src: /src/icu/source/test/cintltst/reapits.c:419,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:530,1
    - Dst: uregex_regionStart
      Src: /src/icu/source/test/cintltst/reapits.c:702,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:708,1
    - Dst: uregex_lookingAt
      Src: /src/icu/source/test/cintltst/reapits.c:767,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:879,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:914,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:1084,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1278,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1043,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1150,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:914,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:970,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:361,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:516,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:535,1
    - Dst: TEST_SETUP
      Src: /src/icu/source/test/cintltst/reapits.c:729,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:838,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1071,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/reapits.c:1126,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1220,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1235,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1288,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:1207,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:640,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:679,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:675,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:688,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:268,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:304,1
    - Dst: uregex_end
      Src: /src/icu/source/test/cintltst/reapits.c:725,1
    - Dst: uregex_useAnchoringBounds
      Src: /src/icu/source/test/cintltst/reapits.c:797,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:934,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:975,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/reapits.c:1097,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:588,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:665,1
    - Dst: uregex_regionEnd
      Src: /src/icu/source/test/cintltst/reapits.c:706,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:566,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:702,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:344,1
    - Dst: uregex_findNext
      Src: /src/icu/source/test/cintltst/reapits.c:578,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:734,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:803,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:954,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1035,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1256,1
    - Dst: uregex_getTimeLimit
      Src: /src/icu/source/test/cintltst/reapits.c:1299,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:465,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:383,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:410,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:597,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:743,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:768,1
    - Dst: uregex_replaceFirst
      Src: /src/icu/source/test/cintltst/reapits.c:878,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:913,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:924,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:957,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1227,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:1287,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:245,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:790,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1233,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1318,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:706,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:715,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:295,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:431,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:443,1
    - Dst: uregex_groupCount
      Src: /src/icu/source/test/cintltst/reapits.c:621,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:687,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:744,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:862,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:873,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1338,1
    - Dst: uregex_lookingAt
      Src: /src/icu/source/test/cintltst/reapits.c:436,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:305,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:327,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:273,1
    - Dst: uregex_clone
      Src: /src/icu/source/test/cintltst/reapits.c:297,1
    - Dst: uregex_lookingAt
      Src: /src/icu/source/test/cintltst/reapits.c:448,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:816,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:885,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:953,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:977,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:312,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:779,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:927,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1093,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1210,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1254,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1313,1
    - Dst: uregex_lookingAt
      Src: /src/icu/source/test/cintltst/reapits.c:424,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:724,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:767,1
    - Dst: uregex_useTransparentBounds
      Src: /src/icu/source/test/cintltst/reapits.c:810,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:853,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:886,1
    - Dst: uregex_replaceAll
      Src: /src/icu/source/test/cintltst/reapits.c:942,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1228,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1267,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1345,1
    - Dst: uregex_replaceAll
      Src: /src/icu/source/test/cintltst/reapits.c:971,1
    - Dst: TEST_SETUP
      Src: /src/icu/source/test/cintltst/reapits.c:773,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1252,1
    - Dst: uregex_end
      Src: /src/icu/source/test/cintltst/reapits.c:581,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:239,1
    - Dst: uregex_findNext
      Src: /src/icu/source/test/cintltst/reapits.c:593,1
    - Dst: uregex_setRegion
      Src: /src/icu/source/test/cintltst/reapits.c:802,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:834,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1095,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1146,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/reapits.c:973,1
    - Dst: uregex_split
      Src: /src/icu/source/test/cintltst/reapits.c:1246,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1270,1
    - Dst: uregex_findNext
      Src: /src/icu/source/test/cintltst/reapits.c:584,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:653,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:660,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:725,1
    - Dst: uregex_matches
      Src: /src/icu/source/test/cintltst/reapits.c:742,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:850,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:944,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1122,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1159,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1049,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1215,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1315,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:1244,1
    - Dst: uregex_getTimeLimit
      Src: /src/icu/source/test/cintltst/reapits.c:1301,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:328,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:398,1
    - Dst: TEST_SETUP
      Src: /src/icu/source/test/cintltst/reapits.c:789,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:889,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1148,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1246,1
    - Dst: TEST_SETUP
      Src: /src/icu/source/test/cintltst/reapits.c:1298,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1339,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1091,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:989,1
    - Dst: uregex_end
      Src: /src/icu/source/test/cintltst/reapits.c:769,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:265,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:365,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:644,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:664,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:657,1
    - Dst: uregex_setRegion
      Src: /src/icu/source/test/cintltst/reapits.c:714,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:650,1
    - Dst: uregex_findNext
      Src: /src/icu/source/test/cintltst/reapits.c:733,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:743,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:845,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1189,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:352,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:833,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:956,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1018,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:1238,1
    - Dst: TEST_SETUP
      Src: /src/icu/source/test/cintltst/reapits.c:1312,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1118,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:858,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:994,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1083,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:344,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:220,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:309,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:513,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:438,1
    - Dst: uregex_group
      Src: /src/icu/source/test/cintltst/reapits.c:684,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:450,1
    - Dst: TEST_SETUP
      Src: /src/icu/source/test/cintltst/reapits.c:757,1
    - Dst: TEST_SETUP
      Src: /src/icu/source/test/cintltst/reapits.c:778,1
    - Dst: uregex_setRegion
      Src: /src/icu/source/test/cintltst/reapits.c:815,1
    - Dst: TEST_SETUP
      Src: /src/icu/source/test/cintltst/reapits.c:1331,1
    - Dst: uregex_end
      Src: /src/icu/source/test/cintltst/reapits.c:587,1
    - Dst: uregex_groupCount
      Src: /src/icu/source/test/cintltst/reapits.c:614,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:563,1
    - Dst: uregex_group
      Src: /src/icu/source/test/cintltst/reapits.c:669,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:723,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:733,1
    - Dst: uregex_end
      Src: /src/icu/source/test/cintltst/reapits.c:752,1
    - Dst: uregex_setRegion
      Src: /src/icu/source/test/cintltst/reapits.c:766,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:913,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:946,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:1014,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:952,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1185,1
    - Dst: uregex_flags
      Src: /src/icu/source/test/cintltst/reapits.c:389,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:426,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:580,1
    - Dst: uregex_end
      Src: /src/icu/source/test/cintltst/reapits.c:596,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:732,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1070,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1119,1
    - Dst: uregex_appendReplacement
      Src: /src/icu/source/test/cintltst/reapits.c:1036,1
    - Dst: uregex_pattern
      Src: /src/icu/source/test/cintltst/reapits.c:347,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/reapits.c:367,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:671,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:572,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:724,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:837,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:862,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:880,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1176,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:1219,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1285,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1197,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1302,1
    - Dst: uregex_split
      Src: /src/icu/source/test/cintltst/reapits.c:1227,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:334,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:320,1
    - Dst: uregex_flags
      Src: /src/icu/source/test/cintltst/reapits.c:396,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:474,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:581,1
    - Dst: uregex_group
      Src: /src/icu/source/test/cintltst/reapits.c:676,1
    - Dst: uregex_regionStart
      Src: /src/icu/source/test/cintltst/reapits.c:705,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:481,1
    - Dst: uregex_requireEnd
      Src: /src/icu/source/test/cintltst/reapits.c:786,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:814,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:1266,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:943,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:303,1
    - Dst: uregex_pattern
      Src: /src/icu/source/test/cintltst/reapits.c:360,1
    - Dst: uregex_open
      Src: /src/icu/source/test/cintltst/reapits.c:221,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:490,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:742,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:912,1
    - Dst: uregex_getStackLimit
      Src: /src/icu/source/test/cintltst/reapits.c:1313,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/reapits.c:1236,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:651,1
    - Dst: uregex_pattern
      Src: /src/icu/source/test/cintltst/reapits.c:267,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:367,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:488,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:646,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:658,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:751,1
    - Dst: uregex_useAnchoringBounds
      Src: /src/icu/source/test/cintltst/reapits.c:801,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:853,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:1074,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:1179,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/reapits.c:353,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:362,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/reapits.c:368,1
    - Dst: uregex_matches
      Src: /src/icu/source/test/cintltst/reapits.c:536,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:559,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:686,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:705,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:857,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:872,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:888,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:842,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:586,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:660,1
    - Dst: uregex_flags
      Src: /src/icu/source/test/cintltst/reapits.c:382,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:515,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:534,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:653,1
    - Dst: uregex_end
      Src: /src/icu/source/test/cintltst/reapits.c:819,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:843,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:940,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1198,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1032,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1195,1
    - Dst: uregex_start
      Src: /src/icu/source/test/cintltst/reapits.c:595,1
    - Dst: uregex_matches
      Src: /src/icu/source/test/cintltst/reapits.c:508,1
    - Dst: uregex_matches
      Src: /src/icu/source/test/cintltst/reapits.c:520,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:601,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:678,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:849,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:933,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:936,1
    - Dst: uregex_replaceAll
      Src: /src/icu/source/test/cintltst/reapits.c:961,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1232,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:587,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:723,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:752,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:845,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1090,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:1200,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1301,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:580,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:596,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:324,1
    - Dst: uregex_getText
      Src: /src/icu/source/test/cintltst/reapits.c:472,1
    - Dst: uregex_getText
      Src: /src/icu/source/test/cintltst/reapits.c:479,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:732,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:833,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:956,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/reapits.c:963,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:1018,1
    - Dst: uregex_appendReplacement
      Src: /src/icu/source/test/cintltst/reapits.c:1026,1
    - Dst: uregex_split
      Src: /src/icu/source/test/cintltst/reapits.c:1273,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1257,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:688,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/reapits.c:220,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:420,1
    - Dst: uregex_setRegion
      Src: /src/icu/source/test/cintltst/reapits.c:741,1
    - Dst: uregex_find
      Src: /src/icu/source/test/cintltst/reapits.c:785,1
    - Dst: uregex_hasAnchoringBounds
      Src: /src/icu/source/test/cintltst/reapits.c:796,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:987,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1017,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1092,1
    - Dst: uregex_split
      Src: /src/icu/source/test/cintltst/reapits.c:1209,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:708,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:326,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:299,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/reapits.c:217,1
    - Dst: uregex_getText
      Src: /src/icu/source/test/cintltst/reapits.c:486,1
    - Dst: uregex_matches
      Src: /src/icu/source/test/cintltst/reapits.c:750,1
    - Dst: uregex_hitEnd
      Src: /src/icu/source/test/cintltst/reapits.c:775,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:786,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:814,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/reapits.c:1034,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1277,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:851,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1306,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 1153
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1357
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 1357
    functionName: TestRegexCAPI
    functionSourceFile: /src/icu/source/test/cintltst/reapits.c
    functionUses: []
    functionsReached:
    - uregex_replaceFirst
    - uregex_requireEnd
    - U_SUCCESS
    - uregex_matches
    - uregex_getStackLimit
    - uregex_clone
    - uregex_openC
    - uregex_hitEnd
    - u_errorName
    - uregex_getText
    - uregex_flags
    - uregex_regionEnd
    - uregex_setTimeLimit
    - uregex_getMatchCallback
    - uregex_findNext
    - TEST_ASSERT_STRING
    - uregex_setMatchCallback
    - uregex_getTimeLimit
    - U_FAILURE
    - uregex_hasTransparentBounds
    - log_data_err
    - strcpy
    - uregex_appendReplacement
    - uregex_reset
    - uregex_useTransparentBounds
    - u_strlen
    - u_strncmp
    - TEST_ASSERT
    - uregex_group
    - uregex_groupCount
    - UPRV_LENGTHOF
    - uregex_close
    - uregex_start
    - uregex_hasAnchoringBounds
    - memcmp
    - uregex_replaceAll
    - TEST_SETUP
    - uregex_end
    - memset
    - uregex_split
    - uregex_pattern
    - uregex_open
    - TEST_ASSERT_SUCCESS
    - uregex_setRegion
    - uregex_setStackLimit
    - uregex_setText
    - uregex_useAnchoringBounds
    - uregex_regionStart
    - u_uastrncpy
    - uregex_lookingAt
    - uregex_find
    - strlen
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestRegexCAPI(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/reapits.c:1382,1
    - Dst: uregex_setText
      Src: /src/icu/source/test/cintltst/reapits.c:1382,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1405,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1379,1
    - Dst: uregex_split
      Src: /src/icu/source/test/cintltst/reapits.c:1388,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1392,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1400,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1406,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1391,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/reapits.c:1402,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1403,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/reapits.c:1407,1
    - Dst: uregex_close
      Src: /src/icu/source/test/cintltst/reapits.c:1409,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/reapits.c:1375,1
    - Dst: uregex_openC
      Src: /src/icu/source/test/cintltst/reapits.c:1378,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1383,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/reapits.c:1397,1
    - Dst: TEST_ASSERT_STRING
      Src: /src/icu/source/test/cintltst/reapits.c:1404,1
    - Dst: uregex_split
      Src: /src/icu/source/test/cintltst/reapits.c:1398,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/reapits.c:1401,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1410
      start: 1361
    functionDepth: 0
    functionLinenumber: 1361
    functionLinenumberEnd: 1410
    functionName: TestBug4315
    functionSourceFile: /src/icu/source/test/cintltst/reapits.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - malloc
    - TEST_ASSERT_STRING
    - uregex_split
    - u_strlen
    - free
    - TEST_ASSERT_SUCCESS
    - TEST_ASSERT
    - uregex_openC
    - uregex_close
    - uregex_setText
    linkageType: ''
    returnType: void
    signature: 'static void TestBug4315(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/sorttest.c:131,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 3
    argNames:
    - context
    - left
    - right
    argTypes:
    - void*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 132
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 132
    functionName: linesComparator
    functionSourceFile: /src/icu/source/test/cintltst/sorttest.c
    functionUses: []
    functionsReached:
    - ucol_strcoll
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t U_EXPORT2 linesComparator(const void *context, const
      void *left, const void *right) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: uprv_sortArray
      Src: /src/icu/source/test/cintltst/sorttest.c:41,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/sorttest.c:41,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/sorttest.c:74,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/sorttest.c:61,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/sorttest.c:75,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/sorttest.c:80,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/sorttest.c:42,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/sorttest.c:43,1
    - Dst: uprv_sortArray
      Src: /src/icu/source/test/cintltst/sorttest.c:59,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/sorttest.c:59,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/sorttest.c:64,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/sorttest.c:75,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/sorttest.c:43,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/sorttest.c:54,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/sorttest.c:78,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/sorttest.c:46,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/sorttest.c:48,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/sorttest.c:60,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/sorttest.c:66,1
    - Dst: uprv_sortArray
      Src: /src/icu/source/test/cintltst/sorttest.c:73,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/sorttest.c:73,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/sorttest.c:61,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 58
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 84
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 84
    functionName: SortTest
    functionSourceFile: /src/icu/source/test/cintltst/sorttest.c
    functionUses: []
    functionsReached:
    - uprv_sortArray
    - U_FAILURE
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void SortTest(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/sorttest.c:210,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/sorttest.c:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 214
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 214
    functionName: addSortTest
    functionSourceFile: /src/icu/source/test/cintltst/sorttest.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addSortTest(TestNode** root) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/sorttest.c:143,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/sorttest.c:169,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/sorttest.c:200,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/sorttest.c:148,1
    - Dst: puts
      Src: /src/icu/source/test/cintltst/sorttest.c:163,1
    - Dst: printLines
      Src: /src/icu/source/test/cintltst/sorttest.c:173,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/sorttest.c:189,1
    - Dst: u_memcpy
      Src: /src/icu/source/test/cintltst/sorttest.c:154,1
    - Dst: uprv_sortArray
      Src: /src/icu/source/test/cintltst/sorttest.c:166,1
    - Dst: u_strCompare
      Src: /src/icu/source/test/cintltst/sorttest.c:180,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/sorttest.c:183,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/sorttest.c:191,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/sorttest.c:141,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/sorttest.c:143,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/sorttest.c:142,1
    - Dst: uprv_malloc
      Src: /src/icu/source/test/cintltst/sorttest.c:147,1
    - Dst: printLines
      Src: /src/icu/source/test/cintltst/sorttest.c:164,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/sorttest.c:169,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/sorttest.c:168,1
    - Dst: puts
      Src: /src/icu/source/test/cintltst/sorttest.c:172,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/sorttest.c:199,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 201
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 201
    functionName: StableSortTest
    functionSourceFile: /src/icu/source/test/cintltst/sorttest.c
    functionUses: []
    functionsReached:
    - ucol_close
    - uprv_malloc
    - uprv_sortArray
    - ucol_open
    - puts
    - U_FAILURE
    - log_data_err
    - u_strCompare
    - uprv_free
    - u_memcpy
    - log_err
    - ucol_strcoll
    - u_errorName
    - printLines
    - uprv_memset
    linkageType: ''
    returnType: void
    signature: 'static void StableSortTest(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/source/test/cintltst/sorttest.c:117,1
    - Dst: printf
      Src: /src/icu/source/test/cintltst/sorttest.c:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - lines
    argTypes:
    - Line*
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: printLines
    functionSourceFile: /src/icu/source/test/cintltst/sorttest.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void printLines(const Line *lines) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/icu/source/test/cintltst/cintltst.c:442,1
    - Dst: ctest_dataOutDir
      Src: /src/icu/source/test/cintltst/cintltst.c:444,1
    - Dst: u_setDataDirectory
      Src: /src/icu/source/test/cintltst/cintltst.c:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 446
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 446
    functionName: ctest_setICU_DATA
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - u_setDataDirectory
    - ctest_dataOutDir
    - getenv
    linkageType: ''
    returnType: void
    signature: 'void ctest_setICU_DATA() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cintltst.c:394,1
    - Dst: fclose
      Src: /src/icu/source/test/cintltst/cintltst.c:415,1
    - Dst: strrchr
      Src: /src/icu/source/test/cintltst/cintltst.c:398,1
    - Dst: fopen
      Src: /src/icu/source/test/cintltst/cintltst.c:413,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cintltst.c:408,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 426
    functionName: ctest_dataOutDir
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - fclose
    - strrchr
    - strcpy
    - fopen
    linkageType: ''
    returnType: char*
    signature: 'const char *ctest_dataOutDir() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cintltst.c:594,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cintltst.c:599,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cintltst.c:598,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cintltst.c:600,1
    - Dst: ucal_getDefaultTimeZone
      Src: /src/icu/source/test/cintltst/cintltst.c:597,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/cintltst.c:604,1
    - Dst: ucal_setDefaultTimeZone
      Src: /src/icu/source/test/cintltst/cintltst.c:606,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cintltst.c:607,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cintltst.c:608,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cintltst.c:609,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - optionalTimeZone
    - status
    argTypes:
    - char*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 612
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 612
    functionName: ctest_setTimeZone
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_data_err
    - u_uastrncpy
    - log_err
    - ucal_getDefaultTimeZone
    - u_errorName
    - ucal_setDefaultTimeZone
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void ctest_setTimeZone(const char *optionalTimeZone, UErrorCode
      *status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/icu/source/test/cintltst/cintltst.c:649,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cintltst.c:654,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 660
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 660
    functionName: ctst_freeAll
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void ctst_freeAll() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cintltst.c:715,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cintltst.c:716,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cintltst.c:716,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cintltst.c:726,1
    - Dst: U_ASSERT
      Src: /src/icu/source/test/cintltst/cintltst.c:720,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cintltst.c:726,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - message
    - expected
    - actual
    argTypes:
    - char*
    - UChar*
    - UChar*
    constantsTouched: []
    func_position:
      end: 729
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 729
    functionName: assertUEquals
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - austrdup
    - log_verbose
    - U_ASSERT
    - log_err
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC UBool assertUEquals(const char* message, const UChar* expected,
      const UChar* actual) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cintltst.c:686,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cintltst.c:690,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - msg
    - condition
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 694
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 694
    functionName: assertTrue
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - log_verbose
    - log_err
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC UBool assertTrue(const char* msg, int /*not UBool*/ condition) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cintltst.c:698,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cintltst.c:699,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cintltst.c:705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - message
    - expected
    - actual
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 709
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 709
    functionName: assertEquals
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - uprv_strcmp
    - log_verbose
    - log_err
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC UBool assertEquals(const char* message, const char* expected,
      const char* actual) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cintltst.c:733,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cintltst.c:739,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - message
    - expected
    - actual
    argTypes:
    - char*
    - int64_t
    - int64_t
    constantsTouched: []
    func_position:
      end: 743
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 743
    functionName: assertIntEquals
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - log_verbose
    - log_err
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC UBool assertIntEquals(const char* message, int64_t expected,
      int64_t actual) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cintltst.c:327,1
    - Dst: fopen
      Src: /src/icu/source/test/cintltst/cintltst.c:346,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cintltst.c:341,1
    - Dst: fclose
      Src: /src/icu/source/test/cintltst/cintltst.c:348,1
    - Dst: strrchr
      Src: /src/icu/source/test/cintltst/cintltst.c:331,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 360
    functionName: ctest_dataSrcDir
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - fclose
    - strrchr
    - strcpy
    - fopen
    linkageType: ''
    returnType: char*
    signature: 'const char * ctest_dataSrcDir() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_getDataDirectory
      Src: /src/icu/source/test/cintltst/cintltst.c:453,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cintltst.c:457,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cintltst.c:456,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cintltst.c:456,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 460
    functionName: safeGetICUDataDirectory
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - strlen
    - u_getDataDirectory
    - strcpy
    - malloc
    linkageType: ''
    returnType: char*
    signature: 'static char *safeGetICUDataDirectory() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cintltst.c:495,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cintltst.c:502,1
    - Dst: ctst_malloc
      Src: /src/icu/source/test/cintltst/cintltst.c:497,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - unichars
    argTypes:
    - UChar*
    constantsTouched: []
    func_position:
      end: 505
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 505
    functionName: austrdup
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - u_strlen
    - ctst_malloc
    - u_austrcpy
    linkageType: ''
    returnType: char*
    signature: 'char *austrdup(const UChar* unichars) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_ASSERT
      Src: /src/icu/source/test/cintltst/cintltst.c:665,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cintltst.c:668,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cintltst.c:670,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cintltst.c:668,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cintltst.c:666,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cintltst.c:670,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - msg
    - ec
    - possibleDataError
    argTypes:
    - char*
    - UErrorCode*
    - UBool
    constantsTouched: []
    func_position:
      end: 675
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 675
    functionName: assertSuccessCheck
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - U_ASSERT
    - U_FAILURE
    - log_err_status
    - log_data_err
    - u_errorName
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC UBool assertSuccessCheck(const char* msg, UErrorCode* ec,
      UBool possibleDataError) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cintltst.c:483,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cintltst.c:485,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cintltst.c:486,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 488
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 488
    functionName: CharsToUChars
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - malloc
    - u_unescape
    linkageType: ''
    returnType: UChar*
    signature: 'UChar * CharsToUChars(const char* str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/cintltst.c:521,1
    - Dst: ctst_malloc
      Src: /src/icu/source/test/cintltst/cintltst.c:525,1
    - Dst: ucnv_setFromUCallBack
      Src: /src/icu/source/test/cintltst/cintltst.c:528,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/cintltst.c:529,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cintltst.c:523,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/cintltst.c:530,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - unichars
    - length
    argTypes:
    - UChar*
    - int32_t
    constantsTouched: []
    func_position:
      end: 533
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 533
    functionName: aescstrdup
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - ucnv_open
    - ucnv_setFromUCallBack
    - u_strlen
    - ctst_malloc
    - ucnv_fromUnicode
    linkageType: ''
    returnType: char*
    signature: 'char *aescstrdup(const UChar* unichars,int32_t length) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U_ASSERT
      Src: /src/icu/source/test/cintltst/cintltst.c:678,1
    - Dst: assertSuccessCheck
      Src: /src/icu/source/test/cintltst/cintltst.c:679,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - msg
    - ec
    argTypes:
    - char*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 680
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 680
    functionName: assertSuccess
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - U_ASSERT
    - assertSuccessCheck
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC UBool assertSuccess(const char* msg, UErrorCode* ec) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucal_setDefaultTimeZone
      Src: /src/icu/source/test/cintltst/cintltst.c:621,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cintltst.c:623,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cintltst.c:622,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cintltst.c:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 629
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 629
    functionName: ctest_resetTimeZone
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - u_errorName
    - ucal_setDefaultTimeZone
    - log_err
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void ctest_resetTimeZone(void) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: uprv_getRawUTCtime
      Src: /src/icu/source/test/cintltst/cintltst.c:97,1
    - Dst: ures_dumpCacheContents
      Src: /src/icu/source/test/cintltst/cintltst.c:123,1
    - Dst: u_init
      Src: /src/icu/source/test/cintltst/cintltst.c:138,1
    - Dst: ctest_setICU_DATA
      Src: /src/icu/source/test/cintltst/cintltst.c:136,1
    - Dst: u_cleanup
      Src: /src/icu/source/test/cintltst/cintltst.c:146,1
    - Dst: u_cleanup
      Src: /src/icu/source/test/cintltst/cintltst.c:165,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/cintltst.c:170,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cintltst.c:173,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cintltst.c:175,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/cintltst.c:179,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/cintltst/cintltst.c:197,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/cintltst.c:226,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cintltst.c:234,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cintltst.c:227,1
    - Dst: u_init
      Src: /src/icu/source/test/cintltst/cintltst.c:115,1
    - Dst: initArgs
      Src: /src/icu/source/test/cintltst/cintltst.c:101,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cintltst.c:145,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/cintltst.c:126,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cintltst.c:143,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/cintltst.c:154,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cintltst.c:171,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/cintltst.c:187,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cintltst.c:188,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cintltst.c:194,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cintltst.c:231,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cintltst.c:180,1
    - Dst: addAllTests
      Src: /src/icu/source/test/cintltst/cintltst.c:210,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cintltst.c:196,1
    - Dst: ctst_freeAll
      Src: /src/icu/source/test/cintltst/cintltst.c:222,1
    - Dst: ures_dumpCacheContents
      Src: /src/icu/source/test/cintltst/cintltst.c:230,1
    - Dst: u_cleanup
      Src: /src/icu/source/test/cintltst/cintltst.c:121,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/cintltst.c:144,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/cintltst.c:163,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cintltst.c:164,1
    - Dst: u_cleanup
      Src: /src/icu/source/test/cintltst/cintltst.c:181,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cintltst.c:191,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/cintltst/cintltst.c:192,1
    - Dst: u_cleanup
      Src: /src/icu/source/test/cintltst/cintltst.c:201,1
    - Dst: printf
      Src: /src/icu/source/test/cintltst/cintltst.c:217,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/cintltst.c:217,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cintltst.c:199,1
    - Dst: runTestRequest
      Src: /src/icu/source/test/cintltst/cintltst.c:213,1
    - Dst: uprv_getRawUTCtime
      Src: /src/icu/source/test/cintltst/cintltst.c:245,1
    - Dst: setTestOption
      Src: /src/icu/source/test/cintltst/cintltst.c:215,1
    - Dst: u_cleanup
      Src: /src/icu/source/test/cintltst/cintltst.c:224,1
    - Dst: U_MAIN_INIT_ARGS
      Src: /src/icu/source/test/cintltst/cintltst.c:95,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cintltst.c:116,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cintltst.c:117,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cintltst.c:118,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cintltst.c:123,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cintltst.c:139,1
    - Dst: initArgs
      Src: /src/icu/source/test/cintltst/cintltst.c:128,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cintltst.c:140,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/cintltst.c:157,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cintltst.c:159,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/cintltst.c:198,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cintltst.c:205,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/cintltst/cintltst.c:205,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/cintltst.c:216,1
    - Dst: unistr_printLengths
      Src: /src/icu/source/test/cintltst/cintltst.c:242,1
    - Dst: cleanUpTestTree
      Src: /src/icu/source/test/cintltst/cintltst.c:219,1
    - Dst: printf
      Src: /src/icu/source/test/cintltst/cintltst.c:247,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 121
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 254
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 254
    functionName: main
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - ures_dumpCacheContents
    - uprv_getRawUTCtime
    - ctest_setICU_DATA
    - addAllTests
    - U_MAIN_INIT_ARGS
    - ucnv_open
    - U_SUCCESS
    - cleanUpTestTree
    - u_init
    - u_errorName
    - printf
    - ctst_freeAll
    - initArgs
    - setTestOption
    - U_FAILURE
    - unistr_printLengths
    - ures_close
    - getTestOption
    - runTestRequest
    - ures_open
    - ucnv_close
    - u_cleanup
    - uloc_getDefault
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, const char* const argv[]) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/icu/source/test/cintltst/cintltst.c:639,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cintltst.c:641,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 642
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 642
    functionName: ctst_malloc
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - malloc
    - free
    linkageType: ''
    returnType: void*
    signature: 'void *ctst_malloc(size_t size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cintltst.c:747,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cintltst.c:753,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - message
    - expected
    - actual
    argTypes:
    - char*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 757
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 757
    functionName: assertPtrEquals
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - log_verbose
    - log_err
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC UBool assertPtrEquals(const char* message, const void* expected,
      const void* actual) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: safeGetICUDataDirectory
      Src: /src/icu/source/test/cintltst/cintltst.c:464,1
    - Dst: initArgs
      Src: /src/icu/source/test/cintltst/cintltst.c:467,1
    - Dst: u_setDataDirectory
      Src: /src/icu/source/test/cintltst/cintltst.c:471,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cintltst.c:472,1
    - Dst: u_cleanup
      Src: /src/icu/source/test/cintltst/cintltst.c:466,1
    - Dst: u_init
      Src: /src/icu/source/test/cintltst/cintltst.c:473,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cintltst.c:474,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cintltst.c:475,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cintltst.c:475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 479
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 479
    functionName: ctest_resetICU
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - initArgs
    - u_cleanup
    - safeGetICUDataDirectory
    - u_setDataDirectory
    - U_FAILURE
    - log_err_status
    - free
    - u_init
    - u_errorName
    linkageType: ''
    returnType: UBool
    signature: 'UBool ctest_resetICU() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ctest_dataOutDir
      Src: /src/icu/source/test/cintltst/cintltst.c:546,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cintltst.c:558,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cintltst.c:549,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cintltst.c:549,1
    - Dst: ctst_malloc
      Src: /src/icu/source/test/cintltst/cintltst.c:549,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/cintltst.c:559,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/cintltst.c:560,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/cintltst.c:563,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cintltst.c:566,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cintltst.c:568,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cintltst.c:571,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cintltst.c:568,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - err
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 576
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 576
    functionName: loadTestData
    functionSourceFile: /src/icu/source/test/cintltst/cintltst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - strcpy
    - log_data_err
    - u_errorName
    - ctest_dataOutDir
    - ctst_malloc
    - ures_close
    - strlen
    - strcat
    - ures_open
    linkageType: ''
    returnType: char*
    signature: 'const char * loadTestData(UErrorCode* err) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: srand
      Src: /src/icu/source/test/cintltst/creststn.c:59,1
    - Dst: time
      Src: /src/icu/source/test/cintltst/creststn.c:59,1
    - Dst: rand
      Src: /src/icu/source/test/cintltst/creststn.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 67
    functionName: randul
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - srand
    - rand
    - time
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t randul() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:378,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:392,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/creststn.c:388,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:391,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:376,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:398,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:379,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:379,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:377,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:381,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:384,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:384,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:393,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:397,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:386,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:399,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:401,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/test/cintltst/creststn.c:382,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:383,1
    - Dst: ures_getLocale
      Src: /src/icu/source/test/cintltst/creststn.c:396,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:393,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 403
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 403
    functionName: TestAliasConflict
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_err_status
    - strcmp
    - log_data_err
    - ures_getLocale
    - myErrorName
    - ures_getStringByKey
    - log_verbose
    - ures_close
    - UPRV_LENGTHOF
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestAliasConflict(void) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/creststn.c:1025,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1028,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1059,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1111,1
    - Dst: ures_getString
      Src: /src/icu/source/test/cintltst/creststn.c:1115,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:1152,1
    - Dst: ures_getLocale
      Src: /src/icu/source/test/cintltst/creststn.c:1164,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1115,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/creststn.c:1034,1
    - Dst: ures_openU
      Src: /src/icu/source/test/cintltst/creststn.c:1064,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/creststn.c:1081,1
    - Dst: ures_getLocale
      Src: /src/icu/source/test/cintltst/creststn.c:1128,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1096,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1131,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1065,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1167,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1097,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:1071,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1108,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:1150,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1054,1
    - Dst: u_memset
      Src: /src/icu/source/test/cintltst/creststn.c:1046,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1138,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1142,1
    - Dst: ures_getByIndex
      Src: /src/icu/source/test/cintltst/creststn.c:1109,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:1113,1
    - Dst: ures_resetIterator
      Src: /src/icu/source/test/cintltst/creststn.c:1090,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/creststn.c:1031,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/creststn.c:1071,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1087,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1121,1
    - Dst: ures_getLocale
      Src: /src/icu/source/test/cintltst/creststn.c:1153,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:1162,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/creststn.c:1169,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/creststn.c:1115,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/creststn.c:1032,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/creststn.c:1034,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1129,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:1133,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1161,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:1148,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1103,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1023,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1070,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1071,1
    - Dst: ures_getLocale
      Src: /src/icu/source/test/cintltst/creststn.c:1077,1
    - Dst: ures_openFillIn
      Src: /src/icu/source/test/cintltst/creststn.c:1123,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:1165,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1026,1
    - Dst: u_strchr
      Src: /src/icu/source/test/cintltst/creststn.c:1040,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/creststn.c:1046,1
    - Dst: ures_resetIterator
      Src: /src/icu/source/test/cintltst/creststn.c:1084,1
    - Dst: ures_getLocale
      Src: /src/icu/source/test/cintltst/creststn.c:1152,1
    - Dst: ures_getNextResource
      Src: /src/icu/source/test/cintltst/creststn.c:1095,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1124,1
    - Dst: ures_openU
      Src: /src/icu/source/test/cintltst/creststn.c:1052,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:1060,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1080,1
    - Dst: ures_getNextString
      Src: /src/icu/source/test/cintltst/creststn.c:1085,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1088,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:1150,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:1162,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1143,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:1028,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1058,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:1164,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/creststn.c:1047,1
    - Dst: ures_getLocale
      Src: /src/icu/source/test/cintltst/creststn.c:1076,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/creststn.c:1099,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1110,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:1113,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1125,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:1153,1
    - Dst: ures_getLocale
      Src: /src/icu/source/test/cintltst/creststn.c:1165,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1052,1
    - Dst: ures_openU
      Src: /src/icu/source/test/cintltst/creststn.c:1058,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1065,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1075,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:1076,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1139,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1155,1
    - Dst: ures_getNextResource
      Src: /src/icu/source/test/cintltst/creststn.c:1136,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1134,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1060,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1077,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:1128,1
    - Dst: ures_getNextResource
      Src: /src/icu/source/test/cintltst/creststn.c:1132,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1144,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:1160,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1113,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1054,1
    - Dst: ures_openU
      Src: /src/icu/source/test/cintltst/creststn.c:1069,1
    - Dst: ures_getNextString
      Src: /src/icu/source/test/cintltst/creststn.c:1082,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:1102,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1149,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 166
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1170
    functionName: TestAPI
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - ures_getNextString
    - ures_getByKey
    - ures_getKey
    - ures_openFillIn
    - ures_getByIndex
    - log_err_status
    - free
    - u_errorName
    - tres_getString
    - U_FAILURE
    - u_strchr
    - loadTestData
    - log_data_err
    - log_verbose
    - ures_close
    - ures_getType
    - UPRV_LENGTHOF
    - u_charsToUChars
    - u_austrcpy
    - ures_resetIterator
    - strcmp
    - u_memset
    - ures_openU
    - log_err
    - ures_getString
    - ures_open
    - ures_getNextResource
    - malloc
    - ures_getLocale
    - austrdup
    - myErrorName
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestAPI() '
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:1191,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1209,1
    - Dst: ures_getLocale
      Src: /src/icu/source/test/cintltst/creststn.c:1237,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/creststn.c:1243,1
    - Dst: ures_hasNext
      Src: /src/icu/source/test/cintltst/creststn.c:1259,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1310,1
    - Dst: ures_hasNext
      Src: /src/icu/source/test/cintltst/creststn.c:1258,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1328,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1189,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/creststn.c:1205,1
    - Dst: ures_getLocale
      Src: /src/icu/source/test/cintltst/creststn.c:1232,1
    - Dst: ures_getString
      Src: /src/icu/source/test/cintltst/creststn.c:1292,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1282,1
    - Dst: ures_getNextString
      Src: /src/icu/source/test/cintltst/creststn.c:1335,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1377,1
    - Dst: ures_getStringByIndex
      Src: /src/icu/source/test/cintltst/creststn.c:1381,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1264,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1214,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1228,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1271,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/creststn.c:1333,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1348,1
    - Dst: ures_countArrayItems
      Src: /src/icu/source/test/cintltst/creststn.c:1349,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1361,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1397,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1275,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1206,1
    - Dst: ures_openDirectFillIn
      Src: /src/icu/source/test/cintltst/creststn.c:1219,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/creststn.c:1244,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1344,1
    - Dst: ures_getStringByIndex
      Src: /src/icu/source/test/cintltst/creststn.c:1368,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1196,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1221,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:1248,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1305,1
    - Dst: ures_getNextResource
      Src: /src/icu/source/test/cintltst/creststn.c:1320,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1316,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1288,1
    - Dst: ures_getByIndex
      Src: /src/icu/source/test/cintltst/creststn.c:1353,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1384,1
    - Dst: ures_openU
      Src: /src/icu/source/test/cintltst/creststn.c:1226,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/creststn.c:1228,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1286,1
    - Dst: ures_getInt
      Src: /src/icu/source/test/cintltst/creststn.c:1388,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1400,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1283,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1202,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1238,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1329,1
    - Dst: ures_getByIndex
      Src: /src/icu/source/test/cintltst/creststn.c:1359,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1389,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1309,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1293,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1199,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:1249,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1254,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1298,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1394,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1205,1
    - Dst: ures_openFillIn
      Src: /src/icu/source/test/cintltst/creststn.c:1211,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/creststn.c:1253,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1277,1
    - Dst: ures_getStringByIndex
      Src: /src/icu/source/test/cintltst/creststn.c:1374,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1376,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1401,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/creststn.c:1188,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1191,1
    - Dst: ures_getBinary
      Src: /src/icu/source/test/cintltst/creststn.c:1314,1
    - Dst: ures_getBinary
      Src: /src/icu/source/test/cintltst/creststn.c:1303,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1398,1
    - Dst: ures_getNextResource
      Src: /src/icu/source/test/cintltst/creststn.c:1326,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/creststn.c:1194,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1233,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1244,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1343,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1350,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1366,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1272,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1311,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/creststn.c:1195,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1259,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1265,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1281,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1362,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1217,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1263,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1299,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/creststn.c:1254,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1294,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1337,1
    - Dst: ures_getNextString
      Src: /src/icu/source/test/cintltst/creststn.c:1341,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1399,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1213,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1222,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1227,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1322,1
    - Dst: ures_getString
      Src: /src/icu/source/test/cintltst/creststn.c:1297,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1332,1
    - Dst: ures_openU
      Src: /src/icu/source/test/cintltst/creststn.c:1201,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1203,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1228,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1249,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1355,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1370,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1287,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1239,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1304,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1269,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1383,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1390,1
    - Dst: ures_getInt
      Src: /src/icu/source/test/cintltst/creststn.c:1393,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/creststn.c:1402,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 251
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1405
    functionName: TestErrorConditions
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - ures_getNextString
    - ures_getKey
    - ures_openDirectFillIn
    - ures_getByKey
    - ures_openFillIn
    - ures_getByIndex
    - ures_getInt
    - ures_getStringByIndex
    - free
    - ures_getBinary
    - U_FAILURE
    - loadTestData
    - log_data_err
    - log_verbose
    - ures_close
    - ures_getType
    - u_uastrcpy
    - ures_hasNext
    - ures_openU
    - log_err
    - ures_getString
    - ures_getSize
    - ures_getNextResource
    - malloc
    - ures_countArrayItems
    - ures_getLocale
    - austrdup
    - myErrorName
    - ures_getStringByKey
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestErrorConditions() '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/creststn.c:1553,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/creststn.c:1550,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1554,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1556,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:1562,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1563,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1584,1
    - Dst: ures_getVersionNumber
      Src: /src/icu/source/test/cintltst/creststn.c:1605,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1605,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1609,1
    - Dst: ures_getVersion
      Src: /src/icu/source/test/cintltst/creststn.c:1599,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/creststn.c:1551,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1560,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1576,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:1575,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:1581,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:1582,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1583,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1584,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1587,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1588,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:1604,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/creststn.c:1547,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1572,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1587,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1588,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:1589,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:1589,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1590,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1595,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1596,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1598,1
    - Dst: u_versionToString
      Src: /src/icu/source/test/cintltst/creststn.c:1600,1
    - Dst: ures_getVersionNumber
      Src: /src/icu/source/test/cintltst/creststn.c:1604,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1602,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1608,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/creststn.c:1548,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:1556,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:1568,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1566,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1570,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1572,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1564,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1578,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1578,1
    - Dst: ures_getVersionNumber
      Src: /src/icu/source/test/cintltst/creststn.c:1596,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1611
    functionName: TestConstruction1
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - tres_getString
    - U_STRING_DECL
    - U_FAILURE
    - ures_getVersionNumber
    - u_versionToString
    - loadTestData
    - log_data_err
    - strcmp
    - u_austrcpy
    - U_STRING_INIT
    - myErrorName
    - log_verbose
    - log_err
    - ures_close
    - ures_getVersion
    - u_strcmp
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestConstruction1() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:2886,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2888,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2889,1
    - Dst: ures_initStackObject
      Src: /src/icu/source/test/cintltst/creststn.c:2892,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2889,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2893,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2894,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2895,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2897
      start: 2883
    functionDepth: 0
    functionLinenumber: 2883
    functionLinenumberEnd: 2897
    functionName: TestStackReuse
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_data_err
    - ures_getByKeyWithFallback
    - myErrorName
    - ures_initStackObject
    - ures_close
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestStackReuse(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/creststn.c:3027,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:3029,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:3028,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:3033,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:3029,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:3034,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:3035,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:3035,1
    - Dst: ures_getUTF8StringByKey
      Src: /src/icu/source/test/cintltst/creststn.c:3042,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:3045,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:3045,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:3061,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:3053,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:3061,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:3053,1
    - Dst: ures_getUTF8StringByKey
      Src: /src/icu/source/test/cintltst/creststn.c:3059,1
    - Dst: ures_getUTF8StringByKey
      Src: /src/icu/source/test/cintltst/creststn.c:3051,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:3064,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3065
      start: 3017
    functionDepth: 0
    functionLinenumber: 3017
    functionLinenumberEnd: 3065
    functionName: TestGetUTF8String
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - ures_getUTF8StringByKey
    - U_FAILURE
    - loadTestData
    - log_data_err
    - log_err
    - ures_close
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestGetUTF8String() '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: u_versionFromString
      Src: /src/icu/source/test/cintltst/creststn.c:3076,1
    - Dst: ulocdata_getCLDRVersion
      Src: /src/icu/source/test/cintltst/creststn.c:3079,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:3082,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:3082,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:3104,1
    - Dst: ures_getVersionByKey
      Src: /src/icu/source/test/cintltst/creststn.c:3109,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:3111,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:3119,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/creststn.c:3120,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:3124,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:3098,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:3103,1
    - Dst: ures_openDirect
      Src: /src/icu/source/test/cintltst/creststn.c:3102,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:3112,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:3080,1
    - Dst: u_versionToString
      Src: /src/icu/source/test/cintltst/creststn.c:3085,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/creststn.c:3086,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/creststn.c:3096,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:3097,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:3110,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:3098,1
    - Dst: ures_getVersionByKey
      Src: /src/icu/source/test/cintltst/creststn.c:3108,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:3112,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:3121,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/creststn.c:3128,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:3104,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:3115,1
    - Dst: u_versionToString
      Src: /src/icu/source/test/cintltst/creststn.c:3118,1
    - Dst: u_versionToString
      Src: /src/icu/source/test/cintltst/creststn.c:3123,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/creststn.c:3127,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/creststn.c:3125,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3131
      start: 3067
    functionDepth: 0
    functionLinenumber: 3067
    functionLinenumberEnd: 3131
    functionName: TestCLDRVersion
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - ulocdata_getCLDRVersion
    - log_info
    - ures_openDirect
    - U_FAILURE
    - log_err_status
    - u_versionToString
    - u_errorName
    - loadTestData
    - log_data_err
    - ures_getVersionByKey
    - log_verbose
    - log_err
    - ures_close
    - memcmp
    - u_versionFromString
    linkageType: ''
    returnType: void
    signature: 'static void TestCLDRVersion(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:278,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:282,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:279,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:282,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - line
    - expected
    - status
    argTypes:
    - int32_t
    - UErrorCode
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 284
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 284
    functionName: checkStatus
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_err_status
    - log_data_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void checkStatus(int32_t line, UErrorCode expected, UErrorCode
      status) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:800,1
    - Dst: ures_getInt
      Src: /src/icu/source/test/cintltst/creststn.c:849,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:871,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:896,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:893,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:904,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:798,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:855,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:859,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:862,1
    - Dst: ures_getByIndex
      Src: /src/icu/source/test/cintltst/creststn.c:918,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:877,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:847,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:838,1
    - Dst: CONFIRM_INT_NE
      Src: /src/icu/source/test/cintltst/creststn.c:808,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:817,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:835,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:841,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:851,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:819,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:831,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:833,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:924,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:806,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:879,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:910,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:895,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:899,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:912,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:919,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:833,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:861,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:881,1
    - Dst: ures_getIntVector
      Src: /src/icu/source/test/cintltst/creststn.c:868,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:865,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:914,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:887,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:796,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:876,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:899,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:837,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:925,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:865,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:850,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/creststn.c:823,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:821,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:830,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:920,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:826,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:879,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:909,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:912,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/creststn.c:797,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:800,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:888,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:846,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:816,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:818,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:834,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:864,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:848,1
    - Dst: ures_getByIndex
      Src: /src/icu/source/test/cintltst/creststn.c:902,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:852,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:820,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:823,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:832,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:804,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:878,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:896,1
    - Dst: ures_getBinary
      Src: /src/icu/source/test/cintltst/creststn.c:885,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:882,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:894,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:911,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:915,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:862,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:860,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:898,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/creststn.c:838,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:882,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:815,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:818,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:836,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:848,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:903,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:845,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:915,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:870,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:822,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 143
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 926
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 926
    functionName: TestEmptyTypes
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - ures_getByKey
    - ures_getInt
    - ures_getByIndex
    - U_SUCCESS
    - ures_getIntVector
    - u_errorName
    - ures_getBinary
    - CONFIRM_INT_EQ
    - tres_getString
    - U_FAILURE
    - loadTestData
    - strcpy
    - log_data_err
    - u_strlen
    - ures_close
    - ures_getType
    - log_err
    - ures_open
    - CONFIRM_INT_NE
    - myErrorName
    - CONFIRM_ErrorCode
    linkageType: ''
    returnType: void
    signature: 'static void TestEmptyTypes() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:976,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:982,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:983,1
    - Dst: ures_getBinary
      Src: /src/icu/source/test/cintltst/creststn.c:989,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:991,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:992,1
    - Dst: CONFIRM_INT_GE
      Src: /src/icu/source/test/cintltst/creststn.c:993,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1001,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:974,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:975,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1006,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:964,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:969,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:988,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:981,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:988,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:997,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1004,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1005,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/creststn.c:966,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:969,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:967,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:976,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:980,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:984,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:986,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:984,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:987,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:985,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 1008
    functionName: TestBinaryCollationData
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - ures_getType
    - ures_getByKey
    - U_FAILURE
    - loadTestData
    - log_data_err
    - U_SUCCESS
    - ures_getBinary
    - myErrorName
    - log_verbose
    - log_err
    - ures_close
    - CONFIRM_ErrorCode
    - CONFIRM_INT_GE
    - ures_open
    - CONFIRM_INT_EQ
    linkageType: ''
    returnType: void
    signature: 'static void TestBinaryCollationData() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/creststn.c:1512,1
    - Dst: testTag
      Src: /src/icu/source/test/cintltst/creststn.c:1518,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:1514,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:1514,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1513,1
    - Dst: testTag
      Src: /src/icu/source/test/cintltst/creststn.c:1519,1
    - Dst: testTag
      Src: /src/icu/source/test/cintltst/creststn.c:1520,1
    - Dst: testTag
      Src: /src/icu/source/test/cintltst/creststn.c:1521,1
    - Dst: testTag
      Src: /src/icu/source/test/cintltst/creststn.c:1522,1
    - Dst: testTag
      Src: /src/icu/source/test/cintltst/creststn.c:1523,1
    - Dst: testTag
      Src: /src/icu/source/test/cintltst/creststn.c:1525,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1527,1
    - Dst: testTag
      Src: /src/icu/source/test/cintltst/creststn.c:1524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1509
    functionDepth: 0
    functionLinenumber: 1509
    functionLinenumberEnd: 1529
    functionName: TestResourceBundles
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - loadTestData
    - log_data_err
    - log_verbose
    - testTag
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestResourceBundles() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/creststn.c:933,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:936,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:934,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:936,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:939,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:941,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:942,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:944,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:945,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:945,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:949,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:948,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 950
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 950
    functionName: TestEmptyBundle
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - ures_getByKey
    - U_FAILURE
    - loadTestData
    - log_data_err
    - U_SUCCESS
    - myErrorName
    - log_err
    - ures_close
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestEmptyBundle() '
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2269,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2273,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2291,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/creststn.c:2354,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2335,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/creststn.c:2296,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2349,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2377,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2378,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/creststn.c:2263,1
    - Dst: checkStatus
      Src: /src/icu/source/test/cintltst/creststn.c:2278,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2307,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2254,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2261,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/creststn.c:2355,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2383,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2405,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2373,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/creststn.c:2282,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2340,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/creststn.c:2366,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2388,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2389,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2408,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2245,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2294,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2394,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2401,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2411,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2280,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2372,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2378,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:2220,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2224,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2228,1
    - Dst: checkStatus
      Src: /src/icu/source/test/cintltst/creststn.c:2276,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/creststn.c:2359,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/creststn.c:2365,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/creststn.c:2375,1
    - Dst: ures_findSubResource
      Src: /src/icu/source/test/cintltst/creststn.c:2290,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2214,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:2287,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2356,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2389,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/creststn.c:2405,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2412,1
    - Dst: ures_findResource
      Src: /src/icu/source/test/cintltst/creststn.c:2306,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2335,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2351,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2304,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2333,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2350,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2235,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2247,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2267,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/creststn.c:2268,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2277,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/creststn.c:2348,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/creststn.c:2382,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2281,1
    - Dst: ures_getNextString
      Src: /src/icu/source/test/cintltst/creststn.c:2360,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2309,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2302,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2216,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2230,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2260,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/creststn.c:2344,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/creststn.c:2343,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2409,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2399,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/creststn.c:2404,1
    - Dst: ures_findResource
      Src: /src/icu/source/test/cintltst/creststn.c:2252,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2264,1
    - Dst: checkStatus
      Src: /src/icu/source/test/cintltst/creststn.c:2272,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2361,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2362,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/creststn.c:2393,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2401,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2362,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2310,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2338,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2351,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2296,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2241,1
    - Dst: checkStatus
      Src: /src/icu/source/test/cintltst/creststn.c:2274,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2293,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2367,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/creststn.c:2381,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/creststn.c:2386,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2224,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2237,1
    - Dst: ures_getByIndex
      Src: /src/icu/source/test/cintltst/creststn.c:2275,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2281,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2371,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2373,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2410,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2222,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2242,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:2254,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2297,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2376,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/creststn.c:2392,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/creststn.c:2309,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2339,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/creststn.c:2213,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2216,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2253,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2258,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2345,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2340,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:2288,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/creststn.c:2337,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2303,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2334,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2283,1
    - Dst: ures_getNextString
      Src: /src/icu/source/test/cintltst/creststn.c:2387,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2400,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:2404,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 254
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2413
      start: 2202
    functionDepth: 0
    functionLinenumber: 2202
    functionLinenumberEnd: 2413
    functionName: TestResourceLevelAliasing
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - ures_getNextString
    - ures_findSubResource
    - ures_getByKey
    - ures_getKey
    - ures_getByIndex
    - log_err_status
    - u_errorName
    - tres_getString
    - checkStatus
    - U_FAILURE
    - loadTestData
    - log_data_err
    - strcpy
    - u_strncmp
    - ures_close
    - UPRV_LENGTHOF
    - u_unescape
    - strcmp
    - log_err
    - ures_open
    - myErrorName
    - ures_findResource
    linkageType: ''
    returnType: void
    signature: 'static void TestResourceLevelAliasing(void) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/creststn.c:2433,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2430,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2445,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2456,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2451,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/creststn.c:2454,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:2468,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:2476,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2484,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2499,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:2490,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2520,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2526,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2497,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:2517,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2430,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2429,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2440,1
    - Dst: ures_findResource
      Src: /src/icu/source/test/cintltst/creststn.c:2449,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2451,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/creststn.c:2443,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2450,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:2460,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2461,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2463,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2498,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2522,1
    - Dst: ures_findResource
      Src: /src/icu/source/test/cintltst/creststn.c:2489,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2518,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:2500,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:2512,1
    - Dst: ures_findResource
      Src: /src/icu/source/test/cintltst/creststn.c:2428,1
    - Dst: ures_findResource
      Src: /src/icu/source/test/cintltst/creststn.c:2438,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2439,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2440,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:2455,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2472,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/creststn.c:2475,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2477,1
    - Dst: ures_findResource
      Src: /src/icu/source/test/cintltst/creststn.c:2482,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:2483,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:2506,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2511,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2527,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2516,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2495,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2435,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:2462,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2462,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:2467,1
    - Dst: ures_findSubResource
      Src: /src/icu/source/test/cintltst/creststn.c:2470,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2471,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2472,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2491,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:2496,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2505,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2508,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2501,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2519,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2510,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2509,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:2521,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 119
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2528
      start: 2415
    functionDepth: 0
    functionLinenumber: 2415
    functionLinenumberEnd: 2528
    functionName: TestDirectAccess
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - ures_findSubResource
    - ures_getKey
    - ures_close
    - U_FAILURE
    - log_err_status
    - log_data_err
    - strcmp
    - strcpy
    - U_SUCCESS
    - ures_getByKeyWithFallback
    - ures_findResource
    - log_err
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestDirectAccess(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:2636,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:2641,1
    - Dst: ures_getFunctionalEquivalent
      Src: /src/icu/source/test/cintltst/creststn.c:2637,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2640,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2642,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:2645,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:2647,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2648,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 5
    argNames:
    - path
    - resName
    - keyword
    - truncate
    - testCases
    argTypes:
    - char*
    - char*
    - char*
    - UBool
    - char*
    constantsTouched: []
    func_position:
      end: 2656
      start: 2626
    functionDepth: 0
    functionLinenumber: 2626
    functionLinenumberEnd: 2656
    functionName: TestGetFunctionalEquivalentOf
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - ures_getFunctionalEquivalent
    - U_FAILURE
    - log_err_status
    - strcmp
    - log_verbose
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestGetFunctionalEquivalentOf(const char *path, const
      char *resName, const char *keyword, UBool truncate, const char * const testCases[]) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:295,1
    - Dst: checkStatus
      Src: /src/icu/source/test/cintltst/creststn.c:300,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:306,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:309,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:313,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:320,1
    - Dst: checkStatus
      Src: /src/icu/source/test/cintltst/creststn.c:347,1
    - Dst: checkStatus
      Src: /src/icu/source/test/cintltst/creststn.c:359,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:299,1
    - Dst: checkStatus
      Src: /src/icu/source/test/cintltst/creststn.c:307,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:329,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:318,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:327,1
    - Dst: checkStatus
      Src: /src/icu/source/test/cintltst/creststn.c:314,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:333,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:337,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:361,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:293,1
    - Dst: checkStatus
      Src: /src/icu/source/test/cintltst/creststn.c:294,1
    - Dst: checkStatus
      Src: /src/icu/source/test/cintltst/creststn.c:319,1
    - Dst: checkStatus
      Src: /src/icu/source/test/cintltst/creststn.c:334,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:339,1
    - Dst: checkStatus
      Src: /src/icu/source/test/cintltst/creststn.c:353,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:355,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:360,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:304,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:315,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:321,1
    - Dst: checkStatus
      Src: /src/icu/source/test/cintltst/creststn.c:328,1
    - Dst: checkStatus
      Src: /src/icu/source/test/cintltst/creststn.c:340,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:342,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:346,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:350,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:352,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:358,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 66
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 363
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 363
    functionName: TestErrorCodes
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - checkStatus
    - ures_getByKey
    - U_SUCCESS
    - ures_close
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestErrorCodes(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:2533,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2536,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2539,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2534,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:2535,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:2540,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2541,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2542,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:2543,1
    - Dst: ures_getLocaleByType
      Src: /src/icu/source/test/cintltst/creststn.c:2545,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2551,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2547,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:2546,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2552
      start: 2530
    functionDepth: 0
    functionLinenumber: 2530
    functionLinenumberEnd: 2552
    functionName: TestTicket9804
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_err_status
    - U_SUCCESS
    - ures_getByKeyWithFallback
    - ures_getLocaleByType
    - uprv_strcmp
    - log_err
    - ures_close
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestTicket9804(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TestGetFunctionalEquivalentOf
      Src: /src/icu/source/test/cintltst/creststn.c:2712,1
    - Dst: TestGetFunctionalEquivalentOf
      Src: /src/icu/source/test/cintltst/creststn.c:2714,1
    - Dst: ures_getFunctionalEquivalent
      Src: /src/icu/source/test/cintltst/creststn.c:2724,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:2730,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:2717,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2732,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2733,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2737
      start: 2658
    functionDepth: 0
    functionLinenumber: 2658
    functionLinenumberEnd: 2737
    functionName: TestGetFunctionalEquivalent
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - ures_getFunctionalEquivalent
    - log_verbose
    - log_err
    - u_errorName
    - TestGetFunctionalEquivalentOf
    linkageType: ''
    returnType: void
    signature: 'static void TestGetFunctionalEquivalent(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/creststn.c:2847,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:2849,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2859,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2853,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2856,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2859,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2863,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2866,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2866,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2870,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2879,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2873,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2878,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2873,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2877,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2880
      start: 2845
    functionDepth: 0
    functionLinenumber: 2845
    functionLinenumberEnd: 2880
    functionName: TestFallbackCodes
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - ures_getByKey
    - loadTestData
    - log_data_err
    - ures_getByKeyWithFallback
    - ures_close
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestFallbackCodes(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randul
      Src: /src/icu/source/test/cintltst/creststn.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: randd
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - randul
    linkageType: ''
    returnType: double
    signature: 'static double randd() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/creststn.c:458,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:460,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:461,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:459,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:462,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:462,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:463,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/creststn.c:466,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:467,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:471,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/creststn.c:475,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:478,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:476,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 479
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 479
    functionName: TestDecodedBundle
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - tres_getString
    - U_FAILURE
    - loadTestData
    - log_data_err
    - u_strlen
    - u_strncmp
    - log_err
    - ures_close
    - log_verbose
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestDecodedBundle() '
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:508,1
    - Dst: CONFIRM_INT_NE
      Src: /src/icu/source/test/cintltst/creststn.c:515,1
    - Dst: CONFIRM_INT_NE
      Src: /src/icu/source/test/cintltst/creststn.c:585,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:611,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/creststn.c:652,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:691,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/creststn.c:696,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:721,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:751,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:765,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:772,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:564,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:527,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:538,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:566,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:602,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:540,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:578,1
    - Dst: ucbuf_close
      Src: /src/icu/source/test/cintltst/creststn.c:770,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:510,1
    - Dst: CONFIRM_INT_NE
      Src: /src/icu/source/test/cintltst/creststn.c:529,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:550,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:553,1
    - Dst: ures_getUInt
      Src: /src/icu/source/test/cintltst/creststn.c:580,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:605,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:684,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/creststn.c:698,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:702,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/creststn.c:727,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/creststn.c:699,1
    - Dst: ures_getInt
      Src: /src/icu/source/test/cintltst/creststn.c:579,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:591,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:596,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:588,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:537,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:571,1
    - Dst: ures_getInt
      Src: /src/icu/source/test/cintltst/creststn.c:603,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:667,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/creststn.c:669,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:687,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:768,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:522,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:524,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:543,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:615,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:713,1
    - Dst: ucbuf_getBuffer
      Src: /src/icu/source/test/cintltst/creststn.c:720,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:772,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:712,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:601,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/creststn.c:498,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:502,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:526,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:577,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:566,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:563,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:540,1
    - Dst: ures_getInt
      Src: /src/icu/source/test/cintltst/creststn.c:592,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:643,1
    - Dst: ucbuf_open
      Src: /src/icu/source/test/cintltst/creststn.c:717,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:688,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:597,1
    - Dst: ures_getUInt
      Src: /src/icu/source/test/cintltst/creststn.c:593,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:582,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:552,1
    - Dst: ures_getUInt
      Src: /src/icu/source/test/cintltst/creststn.c:568,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:572,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:604,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:616,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:650,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/creststn.c:669,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:590,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:556,1
    - Dst: ures_getInt
      Src: /src/icu/source/test/cintltst/creststn.c:567,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/creststn.c:614,1
    - Dst: ctest_dataSrcDir
      Src: /src/icu/source/test/cintltst/creststn.c:695,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:709,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/creststn.c:730,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:768,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/creststn.c:776,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:778,1
    - Dst: ucbuf_close
      Src: /src/icu/source/test/cintltst/creststn.c:737,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:719,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:506,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:524,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:542,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/creststn.c:662,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:671,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:687,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/creststn.c:711,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:750,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:757,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/creststn.c:764,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:734,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:528,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:539,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:565,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:613,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:653,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:710,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:759,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:779,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:739,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:762,1
    - Dst: ucbuf_getBuffer
      Src: /src/icu/source/test/cintltst/creststn.c:758,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:570,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:581,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:595,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:606,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:689,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:724,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:746,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:686,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:731,1
    - Dst: ucbuf_open
      Src: /src/icu/source/test/cintltst/creststn.c:755,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:584,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:555,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:683,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:734,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/creststn.c:748,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:751,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:502,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:523,1
    - Dst: ures_getBinary
      Src: /src/icu/source/test/cintltst/creststn.c:554,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:559,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:544,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:612,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/creststn.c:614,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:636,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:658,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:685,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:713,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:500,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:521,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:525,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:600,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:576,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:546,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:578,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:602,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/creststn.c:649,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:670,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:739,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:747,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:583,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:551,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:553,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:569,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:594,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/creststn.c:648,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:728,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:704,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:589,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:575,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:591,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:513,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:533,1
    - Dst: ures_getBinary
      Src: /src/icu/source/test/cintltst/creststn.c:541,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:557,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:630,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/creststn.c:651,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:672,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 286
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 781
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 781
    functionName: TestNewTypes
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - ures_getByKey
    - ures_getInt
    - U_SUCCESS
    - free
    - u_errorName
    - ures_getBinary
    - CONFIRM_INT_EQ
    - tres_getString
    - U_FAILURE
    - uprv_strlen
    - loadTestData
    - log_data_err
    - strcpy
    - u_strlen
    - log_verbose
    - u_strncmp
    - ures_close
    - ures_getType
    - ctest_dataSrcDir
    - u_charsToUChars
    - strcat
    - u_unescape
    - ucbuf_close
    - log_err
    - ures_open
    - malloc
    - CONFIRM_INT_NE
    - ures_getUInt
    - ucbuf_getBuffer
    - myErrorName
    - CONFIRM_ErrorCode
    - strlen
    - u_strcmp
    - ucbuf_open
    linkageType: ''
    returnType: void
    signature: 'static void TestNewTypes() '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:1463,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/creststn.c:1465,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:1461,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1466,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1482,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/creststn.c:1496,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1497,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:1498,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/creststn.c:1505,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:1460,1
    - Dst: ures_openAvailableLocales
      Src: /src/icu/source/test/cintltst/creststn.c:1471,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1472,1
    - Dst: ures_getVersion
      Src: /src/icu/source/test/cintltst/creststn.c:1485,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1468,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1473,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1480,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:1479,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:1473,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1490,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1462,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1470,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1481,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1478,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1481,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1495,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1498,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1507
    functionName: TestGetVersionColl
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - tres_getString
    - ures_openAvailableLocales
    - uenum_next
    - U_FAILURE
    - log_err_status
    - log_data_err
    - u_strlen
    - myErrorName
    - log_verbose
    - log_err
    - ures_close
    - ures_getVersion
    - uenum_close
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestGetVersionColl() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 2038
    functionDepth: 0
    functionLinenumber: 2038
    functionLinenumberEnd: 2041
    functionName: record_pass
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void record_pass() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:2120,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2120,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2151,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2163,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2170,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2173,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/creststn.c:2178,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2179,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2185,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2187,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2189,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2128,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2130,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2140,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2157,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2185,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2190,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2183,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:2116,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2118,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:2117,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2132,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2137,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2141,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2145,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:2162,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2148,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:2174,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2170,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/creststn.c:2177,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2188,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:2182,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2108
    functionDepth: 0
    functionLinenumber: 2108
    functionLinenumberEnd: 2193
    functionName: TestFallback
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - tres_getString
    - ures_getByKey
    - U_FAILURE
    - log_err_status
    - log_data_err
    - u_austrcpy
    - log_verbose
    - log_err
    - ures_close
    - u_strcmp
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestFallback() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:2560,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2561,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2563,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2564,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2562,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:2565,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2571
      start: 2554
    functionDepth: 0
    functionLinenumber: 2554
    functionLinenumberEnd: 2571
    functionName: TestJB3763
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_err_status
    - ures_getByKeyWithFallback
    - ures_close
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestJB3763(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:2584,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2613,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:2609,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:2605,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2621,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:2622,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2622,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:2585,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2589,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2597,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:2598,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/creststn.c:2598,1
    - Dst: ures_getKeywordValues
      Src: /src/icu/source/test/cintltst/creststn.c:2579,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/creststn.c:2583,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/creststn.c:2620,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:2618,1
    - Dst: ures_getKeywordValues
      Src: /src/icu/source/test/cintltst/creststn.c:2603,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:2581,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:2594,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/creststn.c:2596,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/creststn.c:2607,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:2608,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2624
      start: 2573
    functionDepth: 0
    functionLinenumber: 2573
    functionLinenumberEnd: 2624
    functionName: TestGetKeywordValues
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - uenum_next
    - U_FAILURE
    - ures_getKeywordValues
    - strcmp
    - log_err_status
    - log_verbose
    - log_err
    - uenum_close
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestGetKeywordValues(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randd
      Src: /src/icu/source/test/cintltst/creststn.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: randi
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - randd
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t randi(int32_t n) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ures_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2926,1
    - Dst: ures_getUTF8String
      Src: /src/icu/source/test/cintltst/creststn.c:2942,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/creststn.c:2950,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2977,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2962,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2992,1
    - Dst: U16_NEXT
      Src: /src/icu/source/test/cintltst/creststn.c:2983,1
    - Dst: ures_getUTF8StringByIndex
      Src: /src/icu/source/test/cintltst/creststn.c:2938,1
    - Dst: ures_getUTF8StringByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2940,1
    - Dst: ures_getUTF8StringByIndex
      Src: /src/icu/source/test/cintltst/creststn.c:2955,1
    - Dst: ures_getUTF8StringByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2957,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2971,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/creststn.c:2965,1
    - Dst: U8_NEXT
      Src: /src/icu/source/test/cintltst/creststn.c:2984,1
    - Dst: ures_getUTF8String
      Src: /src/icu/source/test/cintltst/creststn.c:2959,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/creststn.c:3002,1
    - Dst: ures_getStringByIndex
      Src: /src/icu/source/test/cintltst/creststn.c:2922,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2928,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2924,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2986,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2996,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 90
    argCount: 5
    argNames:
    - resB
    - idx
    - key
    - length
    - status
    argTypes:
    - UResourceBundle*
    - int32_t
    - char*
    - int32_t*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 3006
      start: 2905
    functionDepth: 0
    functionLinenumber: 2905
    functionLinenumberEnd: 3006
    functionName: tres_getString
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - malloc
    - ures_getUTF8StringByKey
    - U_FAILURE
    - U16_NEXT
    - ures_getStringByIndex
    - free
    - ures_getStringByKey
    - U8_NEXT
    - log_err
    - ures_getString
    - ures_getUTF8StringByIndex
    - ures_getUTF8String
    linkageType: ''
    returnType: UChar*
    signature: 'extern const UChar *tres_getString(const UResourceBundle *resB, int32_t
      idx, const char *key, int32_t *length, UErrorCode *status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: record_pass
      Src: /src/icu/source/test/cintltst/creststn.c:172,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:176,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:176,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:176,1
    - Dst: record_fail
      Src: /src/icu/source/test/cintltst/creststn.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - actual
    - expected
    argTypes:
    - UErrorCode
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 178
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 178
    functionName: CONFIRM_ErrorCode
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - myErrorName
    - record_pass
    - record_fail
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void CONFIRM_ErrorCode(UErrorCode actual,UErrorCode expected) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - i
    - buf
    argTypes:
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 117
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 117
    functionName: itoa1
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static char *itoa1(int32_t i, char* buf) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uloc_countAvailable
      Src: /src/icu/source/test/cintltst/creststn.c:1414,1
    - Dst: uloc_getAvailable
      Src: /src/icu/source/test/cintltst/creststn.c:1421,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1423,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1417,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:1424,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1425,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/creststn.c:1426,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1426,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1427,1
    - Dst: ures_getVersion
      Src: /src/icu/source/test/cintltst/creststn.c:1430,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:1435,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1440,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1407
    functionDepth: 0
    functionLinenumber: 1407
    functionLinenumberEnd: 1442
    functionName: TestGetVersion
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - uloc_getAvailable
    - U_FAILURE
    - log_err_status
    - ures_getVersion
    - myErrorName
    - log_verbose
    - log_err
    - ures_close
    - uloc_countAvailable
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestGetVersion() '
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1721,1
    - Dst: CONFIRM_INT_GE
      Src: /src/icu/source/test/cintltst/creststn.c:1787,1
    - Dst: CONFIRM_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:1795,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1772,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1823,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:1914,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1970,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2030,1
    - Dst: CONFIRM_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:1937,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1883,1
    - Dst: record_pass
      Src: /src/icu/source/test/cintltst/creststn.c:1972,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2028,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:1784,1
    - Dst: itoa1
      Src: /src/icu/source/test/cintltst/creststn.c:1791,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1813,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1738,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:1802,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1780,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:1864,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:1874,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:1886,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:1887,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1991,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1829,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1668,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/creststn.c:1730,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/creststn.c:1720,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/creststn.c:1727,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:1749,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1756,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:1782,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1830,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1882,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:1997,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/creststn.c:1717,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/creststn.c:1786,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:1838,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:1925,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1933,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1944,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/creststn.c:1968,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/creststn.c:1971,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/creststn.c:1971,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:1999,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1930,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:1958,1
    - Dst: record_fail
      Src: /src/icu/source/test/cintltst/creststn.c:1974,1
    - Dst: ures_getNextString
      Src: /src/icu/source/test/cintltst/creststn.c:1969,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/creststn.c:1652,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:1655,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:1673,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/creststn.c:1751,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:1795,1
    - Dst: itoa1
      Src: /src/icu/source/test/cintltst/creststn.c:1881,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1995,1
    - Dst: record_fail
      Src: /src/icu/source/test/cintltst/creststn.c:2002,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:2010,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2031,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1663,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1741,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/creststn.c:1751,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1846,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1858,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:1864,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:1874,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1921,1
    - Dst: itoa1
      Src: /src/icu/source/test/cintltst/creststn.c:1932,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1947,1
    - Dst: CONFIRM_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:2018,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/creststn.c:2017,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:1955,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1768,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/creststn.c:1753,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1852,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:1861,1
    - Dst: CONFIRM_INT_GE
      Src: /src/icu/source/test/cintltst/creststn.c:1866,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:1872,1
    - Dst: CONFIRM_INT_GE
      Src: /src/icu/source/test/cintltst/creststn.c:1876,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1892,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:1956,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1996,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/creststn.c:1999,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/creststn.c:2016,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2022,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1809,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1833,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:1753,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:1794,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1849,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/creststn.c:1865,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:1871,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/creststn.c:1875,1
    - Dst: ures_getByIndex
      Src: /src/icu/source/test/cintltst/creststn.c:1913,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1935,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1989,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/creststn.c:2034,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:1957,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1759,1
    - Dst: CONFIRM_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:1762,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1771,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1822,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1790,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1815,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1791,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1851,1
    - Dst: ures_getByIndex
      Src: /src/icu/source/test/cintltst/creststn.c:1870,1
    - Dst: randi
      Src: /src/icu/source/test/cintltst/creststn.c:1906,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:1992,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:1911,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2033,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1737,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1812,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1831,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:1801,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:1781,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1826,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1884,1
    - Dst: ures_getNextResource
      Src: /src/icu/source/test/cintltst/creststn.c:1885,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1910,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1929,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1990,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1814,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:1750,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/creststn.c:1755,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:1896,1
    - Dst: randi
      Src: /src/icu/source/test/cintltst/creststn.c:1906,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:1976,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:2025,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2032,1
    - Dst: itoa1
      Src: /src/icu/source/test/cintltst/creststn.c:1830,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1698,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1774,1
    - Dst: itoa1
      Src: /src/icu/source/test/cintltst/creststn.c:1883,1
    - Dst: randi
      Src: /src/icu/source/test/cintltst/creststn.c:1905,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:1917,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1943,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/creststn.c:1960,1
    - Dst: itoa1
      Src: /src/icu/source/test/cintltst/creststn.c:1990,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2005,1
    - Dst: record_pass
      Src: /src/icu/source/test/cintltst/creststn.c:2000,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/creststn.c:2027,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:1653,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/creststn.c:1720,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1743,1
    - Dst: CONFIRM_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:1839,1
    - Dst: ures_getStringByIndex
      Src: /src/icu/source/test/cintltst/creststn.c:1825,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/creststn.c:1927,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1931,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1932,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1949,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:1970,1
    - Dst: ures_getByIndex
      Src: /src/icu/source/test/cintltst/creststn.c:1967,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:2015,1
    - Dst: randi
      Src: /src/icu/source/test/cintltst/creststn.c:1905,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1773,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/creststn.c:1784,1
    - Dst: randi
      Src: /src/icu/source/test/cintltst/creststn.c:1819,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1667,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:1674,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1740,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1752,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/creststn.c:1755,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1847,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:1860,1
    - Dst: CONFIRM_INT_GE
      Src: /src/icu/source/test/cintltst/creststn.c:1961,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:1954,1
    - Dst: strncmp
      Src: /src/icu/source/test/cintltst/creststn.c:1971,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:1998,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1769,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1742,1
    - Dst: ures_getStringByIndex
      Src: /src/icu/source/test/cintltst/creststn.c:1916,1
    - Dst: itoa1
      Src: /src/icu/source/test/cintltst/creststn.c:1930,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1948,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2004,1
    - Dst: itoa1
      Src: /src/icu/source/test/cintltst/creststn.c:2016,1
    - Dst: CONFIRM_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:1888,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1810,1
    - Dst: randi
      Src: /src/icu/source/test/cintltst/creststn.c:1819,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:1655,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/creststn.c:1761,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1792,1
    - Dst: ures_getNextResource
      Src: /src/icu/source/test/cintltst/creststn.c:1793,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/creststn.c:1850,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1880,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1881,1
    - Dst: CONFIRM_INT_EQ
      Src: /src/icu/source/test/cintltst/creststn.c:1895,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/creststn.c:1946,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 373
    argCount: 4
    argNames:
    - frag
    - in_Root
    - in_te
    - in_te_IN
    argTypes:
    - char*
    - UBool
    - UBool
    - UBool
    constantsTouched: []
    func_position:
      end: 2036
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 2036
    functionName: testTag
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - ures_getNextString
    - ures_getByKey
    - ures_getKey
    - ures_getByIndex
    - U_SUCCESS
    - ures_getStringByIndex
    - free
    - randi
    - record_fail
    - itoa1
    - CONFIRM_INT_EQ
    - tres_getString
    - CONFIRM_EQ
    - U_FAILURE
    - strcpy
    - loadTestData
    - log_data_err
    - u_strcpy
    - u_strlen
    - log_verbose
    - u_strncmp
    - ures_close
    - ures_getType
    - strcat
    - u_austrcpy
    - u_uastrcpy
    - strcmp
    - record_pass
    - strncmp
    - u_strcat
    - ures_open
    - ures_getSize
    - ures_getNextResource
    - malloc
    - myErrorName
    - CONFIRM_ErrorCode
    - strlen
    - CONFIRM_INT_GE
    linkageType: ''
    returnType: UBool
    signature: 'static UBool testTag(const char* frag, UBool in_Root, UBool in_te,
      UBool in_te_IN) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2043
    functionDepth: 0
    functionLinenumber: 2043
    functionLinenumberEnd: 2046
    functionName: record_fail
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void record_fail() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/creststn.c:2054,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2055,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2057,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2074,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2097,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2066,1
    - Dst: ures_getStringByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2079,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2091,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2095,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2097,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2100,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2064,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2066,1
    - Dst: ures_getStringByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2071,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2082,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2091,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2089,1
    - Dst: ures_getStringByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2094,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2057,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:2063,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2082,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:2088,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2080,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2085,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2048
    functionDepth: 0
    functionLinenumber: 2048
    functionLinenumberEnd: 2101
    functionName: TestPreventFallback
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - loadTestData
    - log_data_err
    - myErrorName
    - log_err
    - ures_close
    - ures_getStringByKeyWithFallback
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestPreventFallback() '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2750,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2758,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2763,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2787,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2787,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2786,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:2781,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/creststn.c:2747,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2750,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2748,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:2756,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2757,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2758,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2761,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2764,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2763,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2762,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2797,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2775,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2785,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:2754,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2770,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:2769,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2773,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2774,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2775,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2776,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2780,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2781,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2782,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2794,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2788,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2768,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2769,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2770,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2782,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2792,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2793,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2794,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2798,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:2793,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 66
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2799
      start: 2739
    functionDepth: 0
    functionLinenumber: 2739
    functionLinenumberEnd: 2799
    functionName: TestXPath
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - tres_getString
    - ures_getByKey
    - U_FAILURE
    - loadTestData
    - log_data_err
    - myErrorName
    - log_verbose
    - log_err
    - ures_close
    - u_strcmp
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestXPath(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:224,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:227,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:231,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:233,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:241,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:237,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:245,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:249,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:230,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:236,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:240,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:248,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:252,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:226,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:229,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:239,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:235,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:243,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:247,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:251,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:228,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:232,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:234,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:238,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:242,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:246,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/creststn.c:250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 253
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 253
    functionName: addNEWResourceBundleTest
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addNEWResourceBundleTest(TestNode** root) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/creststn.c:2808,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/creststn.c:2810,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2817,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2822,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/creststn.c:2833,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/creststn.c:2834,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2841,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2810,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2809,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/creststn.c:2815,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2816,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2817,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/creststn.c:2820,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2821,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2822,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2823,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/creststn.c:2835,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/creststn.c:2813,1
    - Dst: tres_getString
      Src: /src/icu/source/test/cintltst/creststn.c:2832,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/creststn.c:2834,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/creststn.c:2835,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/creststn.c:2831,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/creststn.c:2833,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2840,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/creststn.c:2842,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2843
      start: 2800
    functionDepth: 0
    functionLinenumber: 2800
    functionLinenumberEnd: 2843
    functionName: TestCLDRStyleAliases
    functionSourceFile: /src/icu/source/test/cintltst/creststn.c
    functionUses: []
    functionsReached:
    - tres_getString
    - ures_getByKey
    - U_FAILURE
    - loadTestData
    - log_data_err
    - ures_getByKeyWithFallback
    - myErrorName
    - log_verbose
    - log_err
    - ures_close
    - strlen
    - u_strcmp
    - u_charsToUChars
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestCLDRStyleAliases(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/tracetst.c:81,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/tracetst.c:90,1
    - Dst: va_start
      Src: /src/icu/source/test/cintltst/tracetst.c:94,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/tracetst.c:85,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/tracetst.c:84,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/tracetst.c:95,1
    - Dst: utrace_vformat
      Src: /src/icu/source/test/cintltst/tracetst.c:96,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/tracetst.c:100,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/tracetst.c:101,1
    - Dst: va_end
      Src: /src/icu/source/test/cintltst/tracetst.c:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - format
    - bufCap
    - indent
    - result
    - line
    - '...'
    argTypes:
    - char*
    - int32_t
    - int32_t
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 105
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 105
    functionName: test_format
    functionSourceFile: /src/icu/source/test/cintltst/tracetst.c
    functionUses: []
    functionsReached:
    - memset
    - strcpy
    - strcmp
    - va_end
    - va_start
    - utrace_vformat
    - log_err
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void test_format(const char *format, int32_t bufCap, int32_t
      indent, const char *result, int32_t line, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utrace_functionName
      Src: /src/icu/source/test/cintltst/tracetst.c:125,1
    - Dst: utrace_functionName
      Src: /src/icu/source/test/cintltst/tracetst.c:126,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/tracetst.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - context
    - fnNumber
    argTypes:
    - void*
    - int32_t
    constantsTouched: []
    func_position:
      end: 132
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 132
    functionName: testTraceEntry
    functionSourceFile: /src/icu/source/test/cintltst/tracetst.c
    functionUses: []
    functionsReached:
    - strcmp
    - utrace_functionName
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV testTraceEntry(const void *context, int32_t
      fnNumber) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utrace_functionName
      Src: /src/icu/source/test/cintltst/tracetst.c:173,1
    - Dst: utrace_vformat
      Src: /src/icu/source/test/cintltst/tracetst.c:181,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/tracetst.c:182,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/tracetst.c:175,1
    - Dst: utrace_functionName
      Src: /src/icu/source/test/cintltst/tracetst.c:174,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - context
    - fnNumber
    - level
    - fmt
    - args
    argTypes:
    - void*
    - int32_t
    - int32_t
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 187
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 187
    functionName: testTraceData
    functionSourceFile: /src/icu/source/test/cintltst/tracetst.c
    functionUses: []
    functionsReached:
    - utrace_vformat
    - strcmp
    - strlen
    - utrace_functionName
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV testTraceData(const void *context, int32_t
      fnNumber, int32_t level, const char *fmt, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTRACE_ENTRY_OC
      Src: /src/icu/source/test/cintltst/tracetst.c:192,1
    - Dst: UTRACE_DATA2
      Src: /src/icu/source/test/cintltst/tracetst.c:194,1
    - Dst: UTRACE_EXIT_PTR_STATUS
      Src: /src/icu/source/test/cintltst/tracetst.c:196,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/tracetst.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - name
    - err
    argTypes:
    - char*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 198
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 198
    functionName: pseudo_ucnv_open
    functionSourceFile: /src/icu/source/test/cintltst/tracetst.c
    functionUses: []
    functionsReached:
    - UTRACE_DATA2
    - UTRACE_ENTRY_OC
    - u_errorName
    - UTRACE_EXIT_PTR_STATUS
    linkageType: ''
    returnType: UConverter*
    signature: 'static UConverter * pseudo_ucnv_open(const char *name, UErrorCode
      * err) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utrace_functionName
      Src: /src/icu/source/test/cintltst/tracetst.c:144,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/tracetst.c:153,1
    - Dst: utrace_vformat
      Src: /src/icu/source/test/cintltst/tracetst.c:152,1
    - Dst: utrace_functionName
      Src: /src/icu/source/test/cintltst/tracetst.c:145,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/tracetst.c:146,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - context
    - fnNumber
    - fmt
    - args
    argTypes:
    - void*
    - int32_t
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 159
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 159
    functionName: testTraceExit
    functionSourceFile: /src/icu/source/test/cintltst/tracetst.c
    functionUses: []
    functionsReached:
    - utrace_vformat
    - strcmp
    - strlen
    - utrace_functionName
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV testTraceExit(const void *context, int32_t
      fnNumber, const char *fmt, va_list args) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTRACE_ENTRY_OC
      Src: /src/icu/source/test/cintltst/tracetst.c:201,1
    - Dst: UTRACE_DATA1
      Src: /src/icu/source/test/cintltst/tracetst.c:202,1
    - Dst: UTRACE_EXIT_VALUE
      Src: /src/icu/source/test/cintltst/tracetst.c:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cnv
    argTypes:
    - UConverter*
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: pseudo_ucnv_close
    functionSourceFile: /src/icu/source/test/cintltst/tracetst.c
    functionUses: []
    functionsReached:
    - UTRACE_DATA1
    - UTRACE_EXIT_VALUE
    - UTRACE_ENTRY_OC
    linkageType: ''
    returnType: void
    signature: 'static void pseudo_ucnv_close(UConverter * cnv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/tracetst.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: addUTraceTest
    functionSourceFile: /src/icu/source/test/cintltst/tracetst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addUTraceTest(TestNode** root) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:237,1
    - Dst: utrace_getFunctions
      Src: /src/icu/source/test/cintltst/tracetst.c:240,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:256,1
    - Dst: utrace_getLevel
      Src: /src/icu/source/test/cintltst/tracetst.c:258,1
    - Dst: utrace_getLevel
      Src: /src/icu/source/test/cintltst/tracetst.c:255,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:259,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:244,1
    - Dst: utrace_setLevel
      Src: /src/icu/source/test/cintltst/tracetst.c:262,1
    - Dst: utrace_setLevel
      Src: /src/icu/source/test/cintltst/tracetst.c:279,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/tracetst.c:282,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:310,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:336,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:348,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:323,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:316,1
    - Dst: utrace_setLevel
      Src: /src/icu/source/test/cintltst/tracetst.c:384,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/tracetst.c:373,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:347,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:349,1
    - Dst: utrace_setFunctions
      Src: /src/icu/source/test/cintltst/tracetst.c:383,1
    - Dst: utrace_format
      Src: /src/icu/source/test/cintltst/tracetst.c:362,1
    - Dst: utrace_getLevel
      Src: /src/icu/source/test/cintltst/tracetst.c:224,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:241,1
    - Dst: utrace_setLevel
      Src: /src/icu/source/test/cintltst/tracetst.c:261,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/tracetst.c:281,1
    - Dst: pseudo_ucnv_close
      Src: /src/icu/source/test/cintltst/tracetst.c:287,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:289,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:291,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:292,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:307,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:308,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:313,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:318,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:344,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:350,1
    - Dst: INT64_C
      Src: /src/icu/source/test/cintltst/tracetst.c:319,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:317,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:364,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/tracetst.c:375,1
    - Dst: INT64_C
      Src: /src/icu/source/test/cintltst/tracetst.c:325,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:373,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:351,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/tracetst.c:363,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:311,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:235,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:242,1
    - Dst: utrace_setLevel
      Src: /src/icu/source/test/cintltst/tracetst.c:254,1
    - Dst: utrace_setLevel
      Src: /src/icu/source/test/cintltst/tracetst.c:260,1
    - Dst: utrace_setLevel
      Src: /src/icu/source/test/cintltst/tracetst.c:257,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/tracetst.c:283,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:293,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:312,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:340,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:342,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:363,1
    - Dst: utrace_functionName
      Src: /src/icu/source/test/cintltst/tracetst.c:372,1
    - Dst: pseudo_ucnv_open
      Src: /src/icu/source/test/cintltst/tracetst.c:285,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:334,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/tracetst.c:377,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:375,1
    - Dst: utrace_getFunctions
      Src: /src/icu/source/test/cintltst/tracetst.c:222,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:236,1
    - Dst: utrace_setFunctions
      Src: /src/icu/source/test/cintltst/tracetst.c:239,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:243,1
    - Dst: utrace_setLevel
      Src: /src/icu/source/test/cintltst/tracetst.c:263,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:282,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:286,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:290,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:306,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:315,1
    - Dst: utrace_functionName
      Src: /src/icu/source/test/cintltst/tracetst.c:374,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/tracetst.c:377,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:326,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/tracetst.c:286,1
    - Dst: test_format
      Src: /src/icu/source/test/cintltst/tracetst.c:341,1
    - Dst: utrace_functionName
      Src: /src/icu/source/test/cintltst/tracetst.c:376,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 127
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 385
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 385
    functionName: TestTraceAPI
    functionSourceFile: /src/icu/source/test/cintltst/tracetst.c
    functionUses: []
    functionsReached:
    - INT64_C
    - utrace_setFunctions
    - ucnv_close
    - pseudo_ucnv_open
    - ucnv_open
    - utrace_format
    - strcmp
    - test_format
    - U_SUCCESS
    - TEST_ASSERT
    - utrace_functionName
    - utrace_getFunctions
    - utrace_getLevel
    - pseudo_ucnv_close
    - utrace_setLevel
    linkageType: ''
    returnType: void
    signature: 'static void TestTraceAPI() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utexttst.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: addUTextTest
    functionSourceFile: /src/icu/source/test/cintltst/utexttst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addUTextTest(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:80,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:105,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:126,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:151,1
    - Dst: utext_previous32
      Src: /src/icu/source/test/cintltst/utexttst.c:143,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:133,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:178,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:130,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:165,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:206,1
    - Dst: TEST_SUCCESS
      Src: /src/icu/source/test/cintltst/utexttst.c:250,1
    - Dst: utext_next32From
      Src: /src/icu/source/test/cintltst/utexttst.c:150,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:156,1
    - Dst: TEST_SUCCESS
      Src: /src/icu/source/test/cintltst/utexttst.c:78,1
    - Dst: TEST_SUCCESS
      Src: /src/icu/source/test/cintltst/utexttst.c:124,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:139,1
    - Dst: UTEXT_NEXT32
      Src: /src/icu/source/test/cintltst/utexttst.c:199,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/utexttst.c:201,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:239,1
    - Dst: utext_moveIndex32
      Src: /src/icu/source/test/cintltst/utexttst.c:164,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:86,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/utexttst.c:88,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/utexttst.c:107,1
    - Dst: utext_isLengthExpensive
      Src: /src/icu/source/test/cintltst/utexttst.c:129,1
    - Dst: TEST_SUCCESS
      Src: /src/icu/source/test/cintltst/utexttst.c:204,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/utexttst.c:231,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/utexttst.c:234,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/utexttst.c:254,1
    - Dst: utext_next32
      Src: /src/icu/source/test/cintltst/utexttst.c:79,1
    - Dst: TEST_SUCCESS
      Src: /src/icu/source/test/cintltst/utexttst.c:85,1
    - Dst: TEST_SUCCESS
      Src: /src/icu/source/test/cintltst/utexttst.c:103,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:107,1
    - Dst: utext_isLengthExpensive
      Src: /src/icu/source/test/cintltst/utexttst.c:125,1
    - Dst: utext_char32At
      Src: /src/icu/source/test/cintltst/utexttst.c:132,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:231,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/utexttst.c:240,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/utexttst.c:251,1
    - Dst: utext_current32
      Src: /src/icu/source/test/cintltst/utexttst.c:177,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:146,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:167,1
    - Dst: utext_getNativeIndex
      Src: /src/icu/source/test/cintltst/utexttst.c:171,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:183,1
    - Dst: UTEXT_NEXT32
      Src: /src/icu/source/test/cintltst/utexttst.c:205,1
    - Dst: utext_extract
      Src: /src/icu/source/test/cintltst/utexttst.c:235,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:251,1
    - Dst: utext_replace
      Src: /src/icu/source/test/cintltst/utexttst.c:277,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:281,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:128,1
    - Dst: utext_next32
      Src: /src/icu/source/test/cintltst/utexttst.c:138,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:149,1
    - Dst: utext_openUChars
      Src: /src/icu/source/test/cintltst/utexttst.c:268,1
    - Dst: utext_hasMetaData
      Src: /src/icu/source/test/cintltst/utexttst.c:274,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:275,1
    - Dst: TEST_SUCCESS
      Src: /src/icu/source/test/cintltst/utexttst.c:245,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:154,1
    - Dst: UTEXT_PREVIOUS32
      Src: /src/icu/source/test/cintltst/utexttst.c:182,1
    - Dst: utext_openUTF8
      Src: /src/icu/source/test/cintltst/utexttst.c:84,1
    - Dst: utext_clone
      Src: /src/icu/source/test/cintltst/utexttst.c:102,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:289,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:123,1
    - Dst: utext_next32From
      Src: /src/icu/source/test/cintltst/utexttst.c:148,1
    - Dst: utext_moveIndex32
      Src: /src/icu/source/test/cintltst/utexttst.c:169,1
    - Dst: utext_moveIndex32
      Src: /src/icu/source/test/cintltst/utexttst.c:159,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:170,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:176,1
    - Dst: TEST_SUCCESS
      Src: /src/icu/source/test/cintltst/utexttst.c:198,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:200,1
    - Dst: TEST_SUCCESS
      Src: /src/icu/source/test/cintltst/utexttst.c:226,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:230,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/utexttst.c:150,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:136,1
    - Dst: utext_current32
      Src: /src/icu/source/test/cintltst/utexttst.c:145,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:162,1
    - Dst: utext_setNativeIndex
      Src: /src/icu/source/test/cintltst/utexttst.c:174,1
    - Dst: utext_openUChars
      Src: /src/icu/source/test/cintltst/utexttst.c:225,1
    - Dst: utext_openUChars
      Src: /src/icu/source/test/cintltst/utexttst.c:244,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:253,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:272,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/utexttst.c:291,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:181,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:104,1
    - Dst: utext_extract
      Src: /src/icu/source/test/cintltst/utexttst.c:229,1
    - Dst: TEST_SUCCESS
      Src: /src/icu/source/test/cintltst/utexttst.c:236,1
    - Dst: utext_previous32From
      Src: /src/icu/source/test/cintltst/utexttst.c:153,1
    - Dst: utext_getNativeIndex
      Src: /src/icu/source/test/cintltst/utexttst.c:161,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/utexttst.c:172,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/utexttst.c:109,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:141,1
    - Dst: utext_openUChars
      Src: /src/icu/source/test/cintltst/utexttst.c:197,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/utexttst.c:207,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/utexttst.c:252,1
    - Dst: TEST_SUCCESS
      Src: /src/icu/source/test/cintltst/utexttst.c:269,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/utexttst.c:167,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:172,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/utexttst.c:164,1
    - Dst: UTEXT_NEXT32
      Src: /src/icu/source/test/cintltst/utexttst.c:175,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:144,1
    - Dst: utext_getNativeIndex
      Src: /src/icu/source/test/cintltst/utexttst.c:155,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/utexttst.c:238,1
    - Dst: utext_extract
      Src: /src/icu/source/test/cintltst/utexttst.c:249,1
    - Dst: utext_copy
      Src: /src/icu/source/test/cintltst/utexttst.c:284,1
    - Dst: utext_openUChars
      Src: /src/icu/source/test/cintltst/utexttst.c:77,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/utexttst.c:81,1
    - Dst: TEST_SUCCESS
      Src: /src/icu/source/test/cintltst/utexttst.c:101,1
    - Dst: utext_nativeLength
      Src: /src/icu/source/test/cintltst/utexttst.c:106,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/utexttst.c:128,1
    - Dst: utext_current32
      Src: /src/icu/source/test/cintltst/utexttst.c:135,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/utexttst.c:237,1
    - Dst: utext_isWritable
      Src: /src/icu/source/test/cintltst/utexttst.c:271,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:160,1
    - Dst: utext_getNativeIndex
      Src: /src/icu/source/test/cintltst/utexttst.c:166,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:82,1
    - Dst: utext_openUChars
      Src: /src/icu/source/test/cintltst/utexttst.c:100,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/utexttst.c:108,1
    - Dst: UTEXT_PREVIOUS32
      Src: /src/icu/source/test/cintltst/utexttst.c:180,1
    - Dst: utext_openUTF8
      Src: /src/icu/source/test/cintltst/utexttst.c:203,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:237,1
    - Dst: utext_current32
      Src: /src/icu/source/test/cintltst/utexttst.c:140,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/utexttst.c:89,1
    - Dst: utext_openUChars
      Src: /src/icu/source/test/cintltst/utexttst.c:122,1
    - Dst: utext_nativeLength
      Src: /src/icu/source/test/cintltst/utexttst.c:127,1
    - Dst: utext_setNativeIndex
      Src: /src/icu/source/test/cintltst/utexttst.c:158,1
    - Dst: utext_close
      Src: /src/icu/source/test/cintltst/utexttst.c:186,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/utexttst.c:248,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 231
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 295
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 295
    functionName: TestAPI
    functionSourceFile: /src/icu/source/test/cintltst/utexttst.c
    functionUses: []
    functionsReached:
    - utext_copy
    - utext_close
    - utext_current32
    - utext_char32At
    - utext_moveIndex32
    - TEST_SUCCESS
    - utext_getNativeIndex
    - utext_openUTF8
    - u_strlen
    - utext_next32
    - utext_nativeLength
    - TEST_ASSERT
    - utext_next32From
    - utext_hasMetaData
    - memset
    - utext_clone
    - utext_openUChars
    - utext_isLengthExpensive
    - utext_isWritable
    - UTEXT_NEXT32
    - utext_previous32
    - utext_setNativeIndex
    - utext_extract
    - utext_replace
    - u_strcmp
    - UTEXT_PREVIOUS32
    - utext_previous32From
    linkageType: ''
    returnType: void
    signature: 'static void TestAPI(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u_memset
      Src: /src/icu/source/test/cintltst/callcoll.c:1250,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:1254,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/callcoll.c:1254,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/callcoll.c:1253,1
    - Dst: u_memset
      Src: /src/icu/source/test/cintltst/callcoll.c:1251,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:1255,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/callcoll.c:1256,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/callcoll.c:1256,1
    - Dst: u_UCharsToChars
      Src: /src/icu/source/test/cintltst/callcoll.c:1259,1
    - Dst: u_UCharsToChars
      Src: /src/icu/source/test/cintltst/callcoll.c:1260,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/callcoll.c:1268,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:1269,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:1261,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1219
    functionDepth: 0
    functionLinenumber: 1219
    functionLinenumberEnd: 1271
    functionName: TestJitterbug1098
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - U_FAILURE
    - log_err_status
    - u_memset
    - u_UCharsToChars
    - doTest
    - u_strlen
    - log_verbose
    - u_errorName
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestJitterbug1098() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/callcoll.c:1281,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/callcoll.c:1283,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:1282,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:1286,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/callcoll.c:1283,1
    - Dst: ctest_resetICU
      Src: /src/icu/source/test/cintltst/callcoll.c:1288,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/callcoll.c:1289,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:1290,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/callcoll.c:1291,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/callcoll.c:1291,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/callcoll.c:1294,1
    - Dst: genericOrderingTest
      Src: /src/icu/source/test/cintltst/callcoll.c:1295,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:1296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1297
      start: 1273
    functionDepth: 0
    functionLinenumber: 1273
    functionLinenumberEnd: 1297
    functionName: TestFCDCrash
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - ctest_resetICU
    - log_err_status
    - ucol_setAttribute
    - u_errorName
    - genericOrderingTest
    linkageType: ''
    returnType: void
    signature: 'static void TestFCDCrash(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/callcoll.c:1369,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/callcoll.c:1370,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:1372,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:1376,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:1374,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1379
      start: 1363
    functionDepth: 0
    functionLinenumber: 1363
    functionLinenumberEnd: 1379
    functionName: TestBadKey
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - U_SUCCESS
    - ucol_open
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestBadKey(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucol_countAvailable
      Src: /src/icu/source/test/cintltst/callcoll.c:1323,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:1327,1
    - Dst: uenum_reset
      Src: /src/icu/source/test/cintltst/callcoll.c:1331,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/callcoll.c:1333,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/callcoll.c:1336,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/callcoll.c:1340,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/callcoll.c:1345,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/callcoll.c:1335,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/callcoll.c:1334,1
    - Dst: strncmp
      Src: /src/icu/source/test/cintltst/callcoll.c:1326,1
    - Dst: ucol_countAvailable
      Src: /src/icu/source/test/cintltst/callcoll.c:1330,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/callcoll.c:1332,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:1341,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:1346,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:1323,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/callcoll.c:1325,1
    - Dst: ucol_getKeywordValues
      Src: /src/icu/source/test/cintltst/callcoll.c:1324,1
    - Dst: ucol_getFunctionalEquivalent
      Src: /src/icu/source/test/cintltst/callcoll.c:1339,1
    - Dst: ucol_getAvailable
      Src: /src/icu/source/test/cintltst/callcoll.c:1333,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1347
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1347
    functionName: TestJ5298
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_getFunctionalEquivalent
    - uenum_reset
    - uenum_next
    - ucol_getAvailable
    - strcpy
    - strcmp
    - ucol_countAvailable
    - strncmp
    - log_verbose
    - log_err
    - uenum_close
    - ucol_getKeywordValues
    - strcat
    linkageType: ''
    returnType: void
    signature: 'static void TestJ5298(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/callcoll.c:158,1
    - Dst: uprv_appendByteToHexString
      Src: /src/icu/source/test/cintltst/callcoll.c:165,1
    - Dst: ucol_getStrength
      Src: /src/icu/source/test/cintltst/callcoll.c:160,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/callcoll.c:166,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/callcoll.c:162,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/callcoll.c:168,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/callcoll.c:170,1
    - Dst: uprv_appendByteToHexString
      Src: /src/icu/source/test/cintltst/callcoll.c:174,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/callcoll.c:176,1
    - Dst: ucol_getStrength
      Src: /src/icu/source/test/cintltst/callcoll.c:181,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/callcoll.c:182,1
    - Dst: uprv_appendByteToHexString
      Src: /src/icu/source/test/cintltst/callcoll.c:188,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/callcoll.c:190,1
    - Dst: uprv_appendByteToHexString
      Src: /src/icu/source/test/cintltst/callcoll.c:184,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/callcoll.c:185,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 50
    argCount: 4
    argNames:
    - coll
    - sortkey
    - buffer
    - len
    argTypes:
    - UCollator*
    - uint8_t*
    - char*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 197
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 197
    functionName: sortKeyToString
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_getStrength
    - uprv_strcat
    - ucol_getAttribute
    - uprv_appendByteToHexString
    - uprv_strcpy
    linkageType: ''
    returnType: char*
    signature: 'static char * U_EXPORT2 sortKeyToString(const UCollator *coll, const
      uint8_t *sortkey, char *buffer, uint32_t *len) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:799,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/callcoll.c:802,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/callcoll.c:804,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/callcoll.c:800,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:803,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/callcoll.c:804,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/callcoll.c:807,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/callcoll.c:810,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:812,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 814
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 814
    functionName: TestSecondary
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - strlen
    - ucol_setStrength
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestSecondary() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:848,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/callcoll.c:849,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/callcoll.c:851,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:852,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/callcoll.c:853,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/callcoll.c:853,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/callcoll.c:856,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/callcoll.c:862,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:865,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 867
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 867
    functionName: TestExtra
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - strlen
    - ucol_setStrength
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestExtra() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:1040,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/callcoll.c:1039,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:1048,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/callcoll.c:1065,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/callcoll.c:1081,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/callcoll.c:1079,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:1027,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/callcoll.c:1045,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:1047,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/callcoll.c:1060,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/callcoll.c:1041,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/callcoll.c:1037,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/callcoll.c:1042,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:1049,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/callcoll.c:1054,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:1062,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/callcoll.c:1069,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/callcoll.c:1055,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/callcoll.c:1072,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:1073,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:1089,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/callcoll.c:1050,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:1061,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/callcoll.c:1057,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:1088,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:1082,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1093
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1093
    functionName: TestVariableTop
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - ucol_open
    - ucol_getSortKey
    - U_FAILURE
    - log_err_status
    - ucol_getAttribute
    - ucol_setAttribute
    - myErrorName
    - log_err
    - strlen
    - uprv_memcmp
    - ucol_setStrength
    - ucol_openRules
    - uprv_memset
    linkageType: ''
    returnType: void
    signature: 'static void TestVariableTop(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/callcoll.c:201,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/callcoll.c:204,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/callcoll.c:202,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/callcoll.c:205,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/callcoll.c:203,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/callcoll.c:206,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/callcoll.c:207,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/callcoll.c:208,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/callcoll.c:209,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/callcoll.c:210,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/callcoll.c:211,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/callcoll.c:213,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/callcoll.c:212,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/callcoll.c:214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 215
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 215
    functionName: addAllCollTest
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addAllCollTest(TestNode** root) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/callcoll.c:481,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/callcoll.c:483,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/callcoll.c:487,1
    - Dst: memcpy
      Src: /src/icu/source/test/cintltst/callcoll.c:494,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/callcoll.c:492,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/callcoll.c:495,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/callcoll.c:503,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/callcoll.c:509,1
    - Dst: memcpy
      Src: /src/icu/source/test/cintltst/callcoll.c:511,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/callcoll.c:512,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - iter
    - orderLength
    argTypes:
    - UCollationElements*
    - int32_t*
    constantsTouched: []
    func_position:
      end: 520
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 520
    functionName: getOrders
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - malloc
    - memcpy
    - ucol_next
    - ucol_getOffset
    - free
    linkageType: ''
    returnType: OrderAndOffset*
    signature: 'OrderAndOffset * getOrders(UCollationElements *iter, int32_t *orderLength) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/callcoll.c:671,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:676,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:679,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/callcoll.c:674,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/callcoll.c:678,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/callcoll.c:681,1
    - Dst: genericOrderingTestWithResult
      Src: /src/icu/source/test/cintltst/callcoll.c:684,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/callcoll.c:686,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:688,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 7
    argNames:
    - rules
    - s
    - size
    - attrs
    - values
    - attsize
    - result
    argTypes:
    - char*
    - char*
    - uint32_t
    - UColAttribute*
    - UColAttributeValue*
    - uint32_t
    - UCollationResult
    constantsTouched: []
    func_position:
      end: 689
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 689
    functionName: genericRulesStarterWithOptionsAndResult
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_unescape
    - log_err_status
    - U_SUCCESS
    - ucol_setAttribute
    - log_verbose
    - genericOrderingTestWithResult
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'void genericRulesStarterWithOptionsAndResult(const char *rules, const
      char * const s[], uint32_t size, const UColAttribute *attrs, const UColAttributeValue
      *values, uint32_t attsize, UCollationResult result) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:938,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/callcoll.c:968,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/callcoll.c:987,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:995,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/callcoll.c:1004,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/callcoll.c:933,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/callcoll.c:933,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/callcoll.c:980,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:981,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/callcoll.c:978,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/callcoll.c:1003,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:937,1
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/callcoll.c:957,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:959,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/callcoll.c:967,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:960,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/callcoll.c:1002,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:1007,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/callcoll.c:931,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:932,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/callcoll.c:936,1
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/callcoll.c:958,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/callcoll.c:979,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:982,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/callcoll.c:969,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/callcoll.c:988,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/callcoll.c:989,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:990,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:991,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1008
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 1008
    functionName: TestJB1401
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - unorm_normalize
    - ucol_next
    - U_FAILURE
    - log_err_status
    - ucol_openElements
    - ucol_setAttribute
    - doTest
    - ucol_closeElements
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestJB1401(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/callcoll.c:1121,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:1122,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/callcoll.c:1119,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:1130,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/callcoll.c:1156,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/callcoll.c:1127,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:1129,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/callcoll.c:1151,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:1140,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/callcoll.c:1145,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/callcoll.c:1123,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/callcoll.c:1124,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:1131,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/callcoll.c:1157,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/callcoll.c:1159,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/callcoll.c:1142,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:1147,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:1164,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:1104,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/callcoll.c:1132,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:1160,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:1163,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1167
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1167
    functionName: TestSurrogates
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - ucol_getSortKey
    - u_unescape
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - log_verbose
    - log_err
    - strlen
    - uprv_memcmp
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestSurrogates(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/callcoll.c:221,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/callcoll.c:223,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/callcoll.c:225,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/callcoll.c:226,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - locName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 232
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 232
    functionName: hasCollationElements
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - U_SUCCESS
    - ures_getByKey
    - ures_open
    - ures_close
    linkageType: ''
    returnType: UBool
    signature: 'UBool hasCollationElements(const char *locName) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:278,1
    - Dst: ucol_strcollIter
      Src: /src/icu/source/test/cintltst/callcoll.c:342,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:434,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:383,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:302,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/callcoll.c:310,1
    - Dst: ucol_strcollIter
      Src: /src/icu/source/test/cintltst/callcoll.c:347,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:354,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:430,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/callcoll.c:400,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:324,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:290,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:294,1
    - Dst: uiter_setString
      Src: /src/icu/source/test/cintltst/callcoll.c:298,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:354,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:421,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:393,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:332,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/callcoll.c:287,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/callcoll.c:314,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:327,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/callcoll.c:371,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:354,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/callcoll.c:415,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/callcoll.c:408,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:426,1
    - Dst: compareUsingPartials
      Src: /src/icu/source/test/cintltst/callcoll.c:389,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/callcoll.c:283,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:295,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/callcoll.c:420,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/callcoll.c:447,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/callcoll.c:410,1
    - Dst: ucol_strcollUTF8
      Src: /src/icu/source/test/cintltst/callcoll.c:318,1
    - Dst: uiter_setUTF8
      Src: /src/icu/source/test/cintltst/callcoll.c:341,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/callcoll.c:388,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/callcoll.c:450,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:279,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/callcoll.c:292,1
    - Dst: uiter_setString
      Src: /src/icu/source/test/cintltst/callcoll.c:299,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:312,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:320,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:351,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:392,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/callcoll.c:390,1
    - Dst: compareUsingPartials
      Src: /src/icu/source/test/cintltst/callcoll.c:379,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:393,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:351,1
    - Dst: ucol_strcollIter
      Src: /src/icu/source/test/cintltst/callcoll.c:300,1
    - Dst: uiter_setUTF8
      Src: /src/icu/source/test/cintltst/callcoll.c:340,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:383,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/callcoll.c:412,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/callcoll.c:414,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:360,1
    - Dst: sortKeyToString
      Src: /src/icu/source/test/cintltst/callcoll.c:434,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/callcoll.c:448,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:429,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:324,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/callcoll.c:344,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:290,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:311,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:319,1
    - Dst: sortKeyToString
      Src: /src/icu/source/test/cintltst/callcoll.c:430,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/callcoll.c:409,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/callcoll.c:413,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/callcoll.c:386,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/callcoll.c:315,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:328,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:332,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/callcoll.c:349,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/callcoll.c:419,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:351,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/callcoll.c:449,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:302,1
    - Dst: ucol_strcollUTF8
      Src: /src/icu/source/test/cintltst/callcoll.c:326,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:433,1
    - Dst: reportCResult
      Src: /src/icu/source/test/cintltst/callcoll.c:446,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:381,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:289,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:295,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:302,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:323,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/callcoll.c:401,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/callcoll.c:407,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/callcoll.c:425,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:331,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:358,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:361,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:427,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 184
    argCount: 4
    argNames:
    - myCollation
    - source
    - target
    - result
    argTypes:
    - UCollator*
    - UChar
    - UChar
    - UCollationResult
    constantsTouched: []
    func_position:
      end: 452
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 452
    functionName: doTestVariant
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - compareUsingPartials
    - U_SUCCESS
    - ucol_setAttribute
    - free
    - ucol_strcoll
    - aescstrdup
    - reportCResult
    - uiter_setString
    - U_FAILURE
    - uprv_strlen
    - uiter_setUTF8
    - u_strlen
    - uprv_strcmp
    - log_verbose
    - sortKeyToString
    - ucol_strcollIter
    - getTestOption
    - ucol_getSortKey
    - ucol_strcollUTF8
    - u_strToUTF8
    - log_err
    - malloc
    - ucol_getAttribute
    linkageType: ''
    returnType: void
    signature: 'static void doTestVariant(UCollator* myCollation, const UChar source[],
      const UChar target[], UCollationResult result) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOrderingTestWithResult
      Src: /src/icu/source/test/cintltst/callcoll.c:630,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - coll
    - s
    - size
    argTypes:
    - UCollator*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 631
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 631
    functionName: genericOrderingTest
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - genericOrderingTestWithResult
    linkageType: ''
    returnType: void
    signature: 'void genericOrderingTest(UCollator *coll, const char * const s[],
      uint32_t size) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/callcoll.c:652,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/callcoll.c:656,1
    - Dst: genericOrderingTestWithResult
      Src: /src/icu/source/test/cintltst/callcoll.c:657,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:654,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/callcoll.c:659,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:662,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:664,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 4
    argNames:
    - locale
    - s
    - size
    - result
    argTypes:
    - char*
    - char*
    - uint32_t
    - UCollationResult
    constantsTouched: []
    func_position:
      end: 665
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 665
    functionName: genericLocaleStarterWithResult
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - log_data_err
    - U_SUCCESS
    - log_verbose
    - log_err
    - genericOrderingTestWithResult
    linkageType: ''
    returnType: void
    signature: 'void genericLocaleStarterWithResult(const char *locale, const char
      * const s[], uint32_t size, UCollationResult result) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/callcoll.c:695,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/callcoll.c:703,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:697,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:701,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/callcoll.c:699,1
    - Dst: genericOrderingTestWithResult
      Src: /src/icu/source/test/cintltst/callcoll.c:706,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/callcoll.c:708,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:710,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 7
    argNames:
    - locale
    - s
    - size
    - attrs
    - values
    - attsize
    - result
    argTypes:
    - char*
    - char*
    - uint32_t
    - UColAttribute*
    - UColAttributeValue*
    - uint32_t
    - UCollationResult
    constantsTouched: []
    func_position:
      end: 711
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 711
    functionName: genericLocaleStarterWithOptionsAndResult
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - log_err_status
    - U_SUCCESS
    - ucol_setAttribute
    - log_verbose
    - genericOrderingTestWithResult
    linkageType: ''
    returnType: void
    signature: 'void genericLocaleStarterWithOptionsAndResult(const char *locale,
      const char * const s[], uint32_t size, const UColAttribute *attrs, const UColAttributeValue
      *values, uint32_t attsize, UCollationResult result) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/callcoll.c:720,1
    - Dst: genericOrderingTestWithResult
      Src: /src/icu/source/test/cintltst/callcoll.c:727,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:724,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/callcoll.c:726,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/callcoll.c:723,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:728,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/callcoll.c:730,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:732,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - rules
    - s
    - size
    - result
    argTypes:
    - char*
    - char*
    - uint32_t
    - UCollationResult
    constantsTouched: []
    func_position:
      end: 734
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 734
    functionName: genericRulesStarterWithResult
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_unescape
    - log_data_err
    - U_SUCCESS
    - log_verbose
    - log_err
    - genericOrderingTestWithResult
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'void genericRulesStarterWithResult(const char *rules, const char *
      const s[], uint32_t size, UCollationResult result) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:824,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/callcoll.c:829,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/callcoll.c:825,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/callcoll.c:827,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:828,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/callcoll.c:829,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/callcoll.c:834,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:836,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 838
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 838
    functionName: TestIdentical
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - strlen
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestIdentical() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/callcoll.c:1199,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/callcoll.c:1201,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:1199,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:1200,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/callcoll.c:1200,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:1201,1
    - Dst: u_memset
      Src: /src/icu/source/test/cintltst/callcoll.c:1203,1
    - Dst: u_memset
      Src: /src/icu/source/test/cintltst/callcoll.c:1204,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/callcoll.c:1206,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:1206,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:1210,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/callcoll.c:1209,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/callcoll.c:1213,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/callcoll.c:1212,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/callcoll.c:1214,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/callcoll.c:1208,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1217
    functionName: TestInvalidRules
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - uprv_strlen
    - log_err_status
    - u_memset
    - u_strlen
    - u_strcmp
    - u_charsToUChars
    - aescstrdup
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestInvalidRules() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:242,1
    - Dst: uiter_setString
      Src: /src/icu/source/test/cintltst/callcoll.c:251,1
    - Dst: ucol_nextSortKeyPart
      Src: /src/icu/source/test/cintltst/callcoll.c:252,1
    - Dst: ucol_nextSortKeyPart
      Src: /src/icu/source/test/cintltst/callcoll.c:253,1
    - Dst: uiter_setString
      Src: /src/icu/source/test/cintltst/callcoll.c:250,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/callcoll.c:260,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 7
    argNames:
    - coll
    - source
    - sLen
    - target
    - tLen
    - pieceSize
    - status
    argTypes:
    - UCollator*
    - UChar
    - int32_t
    - UChar
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 270
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 270
    functionName: compareUsingPartials
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_nextSortKeyPart
    - memcmp
    - log_err
    - uiter_setString
    linkageType: ''
    returnType: UCollationResult
    signature: 'static UCollationResult compareUsingPartials(UCollator *coll, const
      UChar source[], int32_t sLen, const UChar target[], int32_t tLen, int32_t pieceSize,
      UErrorCode *status) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: doTestVariant
      Src: /src/icu/source/test/cintltst/callcoll.c:457,1
    - Dst: doTestVariant
      Src: /src/icu/source/test/cintltst/callcoll.c:463,1
    - Dst: doTestVariant
      Src: /src/icu/source/test/cintltst/callcoll.c:459,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/callcoll.c:466,1
    - Dst: doTestVariant
      Src: /src/icu/source/test/cintltst/callcoll.c:461,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - myCollation
    - source
    - target
    - result
    argTypes:
    - UCollator*
    - UChar
    - UChar
    - UCollationResult
    constantsTouched: []
    func_position:
      end: 468
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 468
    functionName: doTest
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - doTestVariant
    - log_data_err
    linkageType: ''
    returnType: void
    signature: 'void doTest(UCollator* myCollation, const UChar source[], const UChar
      target[], UCollationResult result) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/callcoll.c:635,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/callcoll.c:639,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/callcoll.c:642,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:637,1
    - Dst: genericOrderingTest
      Src: /src/icu/source/test/cintltst/callcoll.c:640,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:645,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:647,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - locale
    - s
    - size
    argTypes:
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 648
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 648
    functionName: genericLocaleStarter
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - log_data_err
    - U_SUCCESS
    - log_verbose
    - log_err
    - genericOrderingTest
    linkageType: ''
    returnType: void
    signature: 'void genericLocaleStarter(const char *locale, const char * const s[],
      uint32_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericLocaleStarterWithOptionsAndResult
      Src: /src/icu/source/test/cintltst/callcoll.c:714,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 6
    argNames:
    - locale
    - s
    - size
    - attrs
    - values
    - attsize
    argTypes:
    - char*
    - char*
    - uint32_t
    - UColAttribute*
    - UColAttributeValue*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 715
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 715
    functionName: genericLocaleStarterWithOptions
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - genericLocaleStarterWithOptionsAndResult
    linkageType: ''
    returnType: void
    signature: 'void genericLocaleStarterWithOptions(const char *locale, const char
      * const s[], uint32_t size, const UColAttribute *attrs, const UColAttributeValue
      *values, uint32_t attsize) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericRulesStarterWithResult
      Src: /src/icu/source/test/cintltst/callcoll.c:737,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - rules
    - s
    - size
    argTypes:
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 738
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 738
    functionName: genericRulesStarter
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - genericRulesStarterWithResult
    linkageType: ''
    returnType: void
    signature: 'void genericRulesStarter(const char *rules, const char * const s[],
      uint32_t size) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/callcoll.c:884,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/callcoll.c:889,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:888,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/callcoll.c:887,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/callcoll.c:885,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/callcoll.c:889,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/callcoll.c:892,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:896,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/callcoll.c:899,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/callcoll.c:900,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:904,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:915,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/callcoll.c:907,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/callcoll.c:911,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/callcoll.c:909,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:913,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 916
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 916
    functionName: TestJB581
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - ucol_open
    - ucol_getSortKey
    - U_FAILURE
    - log_err_status
    - ucol_setStrength
    - log_err
    - memcmp
    - ucol_strcoll
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestJB581(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:605,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/callcoll.c:607,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/callcoll.c:610,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:611,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:610,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/callcoll.c:612,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/callcoll.c:616,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/callcoll.c:617,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/callcoll.c:618,1
    - Dst: ucol_setText
      Src: /src/icu/source/test/cintltst/callcoll.c:620,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:620,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:622,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/callcoll.c:626,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/callcoll.c:621,1
    - Dst: ucol_setText
      Src: /src/icu/source/test/cintltst/callcoll.c:622,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/callcoll.c:623,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - coll
    - s
    - size
    - result
    argTypes:
    - UCollator*
    - char*
    - uint32_t
    - UCollationResult
    constantsTouched: []
    func_position:
      end: 627
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 627
    functionName: genericOrderingTestWithResult
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - u_unescape
    - U_FAILURE
    - ucol_openElements
    - backAndForth
    - doTest
    - u_strlen
    - log_verbose
    - log_err
    - ucol_closeElements
    - ucol_setText
    linkageType: ''
    returnType: void
    signature: 'void genericOrderingTestWithResult(UCollator *coll, const char * const
      s[], uint32_t size, UCollationResult result) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:747,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:751,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/callcoll.c:752,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/callcoll.c:748,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/callcoll.c:750,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/callcoll.c:752,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/callcoll.c:756,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/callcoll.c:759,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 763
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 763
    functionName: TestTertiary
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - strlen
    - ucol_setStrength
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestTertiary() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:772,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/callcoll.c:775,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/callcoll.c:777,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/callcoll.c:776,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/callcoll.c:773,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/callcoll.c:777,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/callcoll.c:780,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/callcoll.c:785,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/callcoll.c:787,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 789
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 789
    functionName: TestPrimary
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - strlen
    - ucol_setStrength
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestPrimary( ) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/callcoll.c:142,1
    - Dst: T_CString_itosOffset
      Src: /src/icu/source/test/cintltst/callcoll.c:143,1
    - Dst: T_CString_itosOffset
      Src: /src/icu/source/test/cintltst/callcoll.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - dst
    - val
    argTypes:
    - char*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: uprv_appendByteToHexString
    functionSourceFile: /src/icu/source/test/cintltst/callcoll.c
    functionUses: []
    functionsReached:
    - T_CString_itosOffset
    - uprv_strlen
    linkageType: ''
    returnType: void
    signature: 'static void uprv_appendByteToHexString(char *dst, uint8_t val) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:610,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cloctst.c:643,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 4
    argNames:
    - utext
    - len
    - resultChars
    - buflen
    argTypes:
    - UChar*
    - int32_t
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 666
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 666
    functionName: UCharsToEscapedAscii
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - u_austrncpy
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t UCharsToEscapedAscii(const UChar* utext, int32_t len,
      char* resultChars, int32_t buflen) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: doTestDisplayNames
      Src: /src/icu/source/test/cintltst/cloctst.c:686,1
    - Dst: uloc_getDisplayLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:692,1
    - Dst: uloc_getDisplayName
      Src: /src/icu/source/test/cintltst/cloctst.c:707,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:693,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:700,1
    - Dst: uloc_getDisplayName
      Src: /src/icu/source/test/cintltst/cloctst.c:727,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:729,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:729,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:737,1
    - Dst: uloc_getDisplayName
      Src: /src/icu/source/test/cintltst/cloctst.c:759,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:797,1
    - Dst: UCharsToEscapedAscii
      Src: /src/icu/source/test/cintltst/cloctst.c:776,1
    - Dst: CharsToUChars
      Src: /src/icu/source/test/cintltst/cloctst.c:764,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:683,1
    - Dst: doTestDisplayNames
      Src: /src/icu/source/test/cintltst/cloctst.c:688,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:692,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:695,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:707,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:709,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:727,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:735,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:759,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:760,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:780,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:805,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:681,1
    - Dst: doTestDisplayNames
      Src: /src/icu/source/test/cintltst/cloctst.c:682,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:685,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:702,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:695,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:709,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:725,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:732,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:733,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:733,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:762,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:765,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:783,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:761,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:778,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:679,1
    - Dst: doTestDisplayNames
      Src: /src/icu/source/test/cintltst/cloctst.c:684,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:687,1
    - Dst: uloc_getDisplayLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:700,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:702,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:728,1
    - Dst: CharsToUChars
      Src: /src/icu/source/test/cintltst/cloctst.c:731,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:768,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:771,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cloctst.c:773,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cloctst.c:775,1
    - Dst: uloc_getDisplayName
      Src: /src/icu/source/test/cintltst/cloctst.c:788,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:793,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:792,1
    - Dst: uloc_getDisplayName
      Src: /src/icu/source/test/cintltst/cloctst.c:754,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:793,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 121
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 808
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 808
    functionName: TestDisplayNames
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - malloc
    - CharsToUChars
    - U_FAILURE
    - uloc_getDisplayName
    - log_data_err
    - u_errorName
    - uloc_getDisplayLanguage
    - austrdup
    - free
    - u_strlen
    - log_verbose
    - log_err
    - u_strncmp
    - UCharsToEscapedAscii
    - UPRV_LENGTHOF
    - u_strcmp
    - doTestDisplayNames
    linkageType: ''
    returnType: void
    signature: 'static void TestDisplayNames() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uloc_getDisplayLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:1412,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:1418,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cloctst.c:1418,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cloctst.c:1415,1
    - Dst: uloc_getDisplayLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:1416,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cloctst.c:1419,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1420,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1421,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1422,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:1423,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:1424,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1427
    functionName: TestSimpleDisplayNames
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - malloc
    - log_data_err
    - uloc_getDisplayLanguage
    - austrdup
    - free
    - strlen
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestSimpleDisplayNames() '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cloctst.c:1484,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1491,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1492,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1492,1
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cloctst.c:1498,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1505,1
    - Dst: uloc_getDisplayVariant
      Src: /src/icu/source/test/cintltst/cloctst.c:1515,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1507,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1522,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1524,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1553,1
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cloctst.c:1546,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1550,1
    - Dst: uloc_getDisplayVariant
      Src: /src/icu/source/test/cintltst/cloctst.c:1561,1
    - Dst: uloc_getDisplayVariant
      Src: /src/icu/source/test/cintltst/cloctst.c:1481,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1488,1
    - Dst: uloc_getDisplayName
      Src: /src/icu/source/test/cintltst/cloctst.c:1495,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1502,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1524,1
    - Dst: uloc_getDisplayVariant
      Src: /src/icu/source/test/cintltst/cloctst.c:1529,1
    - Dst: uloc_getDisplayVariant
      Src: /src/icu/source/test/cintltst/cloctst.c:1533,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1538,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1539,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1552,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1566,1
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cloctst.c:1532,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1538,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1566,1
    - Dst: uloc_getDisplayVariant
      Src: /src/icu/source/test/cintltst/cloctst.c:1557,1
    - Dst: uloc_getDisplayVariant
      Src: /src/icu/source/test/cintltst/cloctst.c:1519,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1525,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1539,1
    - Dst: uloc_getDisplayVariant
      Src: /src/icu/source/test/cintltst/cloctst.c:1547,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1552,1
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cloctst.c:1560,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1567,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:1569,1
    - Dst: uloc_getDisplayVariant
      Src: /src/icu/source/test/cintltst/cloctst.c:1543,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cloctst.c:1490,1
    - Dst: uloc_getDisplayVariant
      Src: /src/icu/source/test/cintltst/cloctst.c:1485,1
    - Dst: uloc_getDisplayName
      Src: /src/icu/source/test/cintltst/cloctst.c:1499,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cloctst.c:1504,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1509,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1507,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1509,1
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cloctst.c:1518,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1525,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1536,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1553,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1564,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1567,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 130
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1465
    functionDepth: 0
    functionLinenumber: 1465
    functionLinenumberEnd: 1570
    functionName: TestVariantParsing
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - realloc
    - u_uastrcpy
    - uloc_getDisplayName
    - log_data_err
    - strcmp
    - uloc_getDisplayVariant
    - austrdup
    - free
    - log_err
    - u_strcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestVariantParsing() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _loccmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2687,1
    - Dst: _loccmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2688,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2692,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:2689,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - label
    - req
    - valid
    - actual
    argTypes:
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2695
      start: 2681
    functionDepth: 0
    functionLinenumber: 2681
    functionLinenumberEnd: 2695
    functionName: _checklocs
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - _loccmp
    - log_verbose
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void _checklocs(const char* label, const char* req, const char*
      valid, const char* actual) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ures_openAvailableLocales
      Src: /src/icu/source/test/cintltst/cloctst.c:3042,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cloctst.c:3046,1
    - Dst: acceptResult
      Src: /src/icu/source/test/cintltst/cloctst.c:3057,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/cloctst.c:3056,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/cloctst.c:3061,1
    - Dst: acceptResult
      Src: /src/icu/source/test/cintltst/cloctst.c:3047,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:3049,1
    - Dst: acceptResult
      Src: /src/icu/source/test/cintltst/cloctst.c:3054,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3049,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:3060,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:3039,1
    - Dst: uloc_acceptLanguageFromHTTP
      Src: /src/icu/source/test/cintltst/cloctst.c:3044,1
    - Dst: acceptResult
      Src: /src/icu/source/test/cintltst/cloctst.c:3040,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:3059,1
    - Dst: acceptResult
      Src: /src/icu/source/test/cintltst/cloctst.c:3062,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:3001,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:3047,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3047,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3049,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cloctst.c:3050,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:3053,1
    - Dst: acceptResult
      Src: /src/icu/source/test/cintltst/cloctst.c:3055,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3066
      start: 2973
    functionDepth: 0
    functionLinenumber: 2973
    functionLinenumberEnd: 3066
    functionName: TestAcceptLanguage
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - acceptResult
    - ures_openAvailableLocales
    - log_info
    - uloc_acceptLanguageFromHTTP
    - log_err_status
    - U_SUCCESS
    - uprv_strcmp
    - log_verbose
    - uenum_close
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestAcceptLanguage(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ures_getStringByKey
      Src: /src/icu/source/test/cintltst/cloctst.c:3085,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3086,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - resIndex
    - loc
    argTypes:
    - UResourceBundle*
    - char*
    constantsTouched: []
    func_position:
      end: 3090
      start: 3082
    functionDepth: 0
    functionLinenumber: 3082
    functionLinenumberEnd: 3090
    functionName: isLocaleAvailable
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - ures_getStringByKey
    linkageType: ''
    returnType: UBool
    signature: 'static UBool isLocaleAvailable(UResourceBundle* resIndex, const char*
      loc) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cloctst.c:3148,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cloctst.c:3149,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3150,1
    - Dst: udat_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:3155,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3151,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:3160,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:3160,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cloctst.c:3164,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3151,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cloctst.c:3165,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3133,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:3137,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3158,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3161,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3157,1
    - Dst: udat_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:3156,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:3163,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/cloctst.c:3132,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:3134,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3134,1
    - Dst: isLocaleAvailable
      Src: /src/icu/source/test/cintltst/cloctst.c:3145,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3158,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cloctst.c:3167,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3169
      start: 3128
    functionDepth: 0
    functionLinenumber: 3128
    functionLinenumberEnd: 3169
    functionName: TestDateFormat
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - udat_open
    - ures_close
    - isLocaleAvailable
    - U_FAILURE
    - log_err_status
    - strcmp
    - udat_getLocaleByType
    - log_err
    - log_verbose
    - udat_close
    - UPRV_LENGTHOF
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestDateFormat() '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1012,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1028,1
    - Dst: uloc_getDisplayCountry
      Src: /src/icu/source/test/cintltst/cloctst.c:1016,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1060,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:1072,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1084,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1084,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1087,1
    - Dst: uloc_getDisplayName
      Src: /src/icu/source/test/cintltst/cloctst.c:1053,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1096,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:1116,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1083,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1088,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1096,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1095,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:995,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cloctst.c:996,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cloctst.c:1020,1
    - Dst: uloc_getDisplayCountry
      Src: /src/icu/source/test/cintltst/cloctst.c:1021,1
    - Dst: uloc_getDisplayScript
      Src: /src/icu/source/test/cintltst/cloctst.c:1005,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:1043,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1044,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:1076,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1092,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1096,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:1110,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:1113,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:1104,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:1080,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1088,1
    - Dst: setUpDataTable
      Src: /src/icu/source/test/cintltst/cloctst.c:975,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:981,1
    - Dst: uloc_getDisplayLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:984,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:996,1
    - Dst: uloc_getDisplayScript
      Src: /src/icu/source/test/cintltst/cloctst.c:1000,1
    - Dst: uloc_getDisplayVariant
      Src: /src/icu/source/test/cintltst/cloctst.c:1032,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1044,1
    - Dst: uloc_getDisplayName
      Src: /src/icu/source/test/cintltst/cloctst.c:1048,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:1059,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:1064,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1100,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:1107,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1100,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1091,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1092,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1060,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1099,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1084,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cloctst.c:988,1
    - Dst: uloc_getDisplayLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:989,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cloctst.c:1004,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1012,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:1027,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:1011,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1028,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cloctst.c:1036,1
    - Dst: uloc_getDisplayVariant
      Src: /src/icu/source/test/cintltst/cloctst.c:1037,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cloctst.c:1052,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:1068,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1092,1
    - Dst: cleanUpDataTable
      Src: /src/icu/source/test/cintltst/cloctst.c:1119,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:1088,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1100,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 167
    argCount: 2
    argNames:
    - displayLocale
    - compareIndex
    argTypes:
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1120
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 1120
    functionName: doTestDisplayNames
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - malloc
    - setUpDataTable
    - U_FAILURE
    - uloc_getDisplayCountry
    - uloc_getDisplayName
    - log_data_err
    - uloc_getDisplayVariant
    - cleanUpDataTable
    - uloc_getDisplayLanguage
    - austrdup
    - u_strlen
    - myErrorName
    - log_verbose
    - log_err
    - uloc_getDisplayScript
    - free
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void doTestDisplayNames(const char* displayLocale, int32_t
      compareIndex) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:3259,1
    - Dst: uloc_getCharacterOrientation
      Src: /src/icu/source/test/cintltst/cloctst.c:3263,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3267,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:3268,1
    - Dst: uloc_getLineOrientation
      Src: /src/icu/source/test/cintltst/cloctst.c:3265,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3271,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3274,1
    - Dst: ULayoutTypeToString
      Src: /src/icu/source/test/cintltst/cloctst.c:3277,1
    - Dst: ULayoutTypeToString
      Src: /src/icu/source/test/cintltst/cloctst.c:3278,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3280,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3284,1
    - Dst: ULayoutTypeToString
      Src: /src/icu/source/test/cintltst/cloctst.c:3290,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3287,1
    - Dst: ULayoutTypeToString
      Src: /src/icu/source/test/cintltst/cloctst.c:3291,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:3281,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3294
      start: 3243
    functionDepth: 0
    functionLinenumber: 3243
    functionLinenumberEnd: 3294
    functionName: TestOrientation
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uloc_getLineOrientation
    - U_FAILURE
    - ULayoutTypeToString
    - log_err_status
    - uloc_getCharacterOrientation
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestOrientation() '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3435,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cloctst.c:3457,1
    - Dst: sscanf
      Src: /src/icu/source/test/cintltst/cloctst.c:3469,1
    - Dst: uloc_getLocaleForLCID
      Src: /src/icu/source/test/cintltst/cloctst.c:3456,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3472,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3472,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:3477,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:3482,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3483,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3502,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3501,1
    - Dst: uloc_getScript
      Src: /src/icu/source/test/cintltst/cloctst.c:3491,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3502,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:3505,1
    - Dst: uloc_getLocaleForLCID
      Src: /src/icu/source/test/cintltst/cloctst.c:3438,1
    - Dst: uloc_getLocaleForLCID
      Src: /src/icu/source/test/cintltst/cloctst.c:3446,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3447,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3448,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:3456,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3478,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:3478,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:3487,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3493,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3493,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3492,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3497,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3440,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:3446,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3448,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:3462,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3458,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3458,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3453,1
    - Dst: uloc_getLocaleForLCID
      Src: /src/icu/source/test/cintltst/cloctst.c:3470,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3471,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:3487,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3506,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3488,1
    - Dst: uloc_getLCID
      Src: /src/icu/source/test/cintltst/cloctst.c:3433,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3440,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:3467,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:3470,1
    - Dst: uloc_getLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:3482,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3484,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3484,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:3487,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:3491,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:3496,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:3505,1
    - Dst: uloc_getCountry
      Src: /src/icu/source/test/cintltst/cloctst.c:3500,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:3500,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3510
      start: 3426
    functionDepth: 0
    functionLinenumber: 3426
    functionLinenumberEnd: 3510
    functionName: TestGetLocaleForLCID
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uloc_getLanguage
    - uloc_getScript
    - U_FAILURE
    - uloc_getLocaleForLCID
    - sscanf
    - uprv_strlen
    - U_SUCCESS
    - uprv_strcmp
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    - uloc_getCountry
    - uloc_getLCID
    linkageType: ''
    returnType: void
    signature: 'static void TestGetLocaleForLCID() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:6367,1
    - Dst: uloc_toUnicodeLocaleKey
      Src: /src/icu/source/test/cintltst/cloctst.c:6369,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6371,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:6378,1
    - Dst: uloc_toUnicodeLocaleKey
      Src: /src/icu/source/test/cintltst/cloctst.c:6380,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6382,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 6385
      start: 6354
    functionDepth: 0
    functionLinenumber: 6354
    functionLinenumberEnd: 6385
    functionName: TestBug20321UnicodeLocaleKey
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - uloc_toUnicodeLocaleKey
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestBug20321UnicodeLocaleKey(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:818,1
    - Dst: uloc_countAvailable
      Src: /src/icu/source/test/cintltst/cloctst.c:819,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/cloctst.c:828,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:825,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:821,1
    - Dst: uloc_getAvailable
      Src: /src/icu/source/test/cintltst/cloctst.c:831,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:833,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 835
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 835
    functionName: TestGetAvailableLocales
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - log_info
    - uloc_getAvailable
    - log_data_err
    - log_verbose
    - uloc_countAvailable
    linkageType: ''
    returnType: void
    signature: 'static void TestGetAvailableLocales() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uloc_getISO3Language
      Src: /src/icu/source/test/cintltst/cloctst.c:1449,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1452,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:1450,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1451,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1450,1
    - Dst: uloc_getISO3Country
      Src: /src/icu/source/test/cintltst/cloctst.c:1457,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1458,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:1458,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1459,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1460,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1432
    functionDepth: 0
    functionLinenumber: 1432
    functionLinenumberEnd: 1462
    functionName: TestUninstalledISO3Names
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uloc_getISO3Country
    - U_FAILURE
    - strcmp
    - myErrorName
    - log_err
    - uloc_getISO3Language
    linkageType: ''
    returnType: void
    signature: 'static void TestUninstalledISO3Names() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uloc_getISO3Language
      Src: /src/icu/source/test/cintltst/cloctst.c:1371,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1376,1
    - Dst: uloc_getISO3Country
      Src: /src/icu/source/test/cintltst/cloctst.c:1378,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1381,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1382
    functionName: TestISO3Fallback
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uloc_getISO3Language
    - uloc_getISO3Country
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestISO3Fallback() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: uloc_getDisplayName
      Src: /src/icu/source/test/cintltst/cloctst.c:1166,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:1167,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1168,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cloctst.c:1156,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cloctst.c:1157,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:1161,1
    - Dst: uloc_getDisplayCountry
      Src: /src/icu/source/test/cintltst/cloctst.c:1160,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1162,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1162,1
    - Dst: uldn_regionDisplayName
      Src: /src/icu/source/test/cintltst/cloctst.c:1176,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1178,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1178,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:1177,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1184,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1184,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1167,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1168,1
    - Dst: uldn_localeDisplayName
      Src: /src/icu/source/test/cintltst/cloctst.c:1182,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:1183,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1161,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cloctst.c:1174,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1177,1
    - Dst: uldn_open
      Src: /src/icu/source/test/cintltst/cloctst.c:1173,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1183,1
    - Dst: uldn_close
      Src: /src/icu/source/test/cintltst/cloctst.c:1187,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1189,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1189,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1145
    functionDepth: 0
    functionLinenumber: 1145
    functionLinenumberEnd: 1194
    functionName: TestDisplayNameBrackets
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uldn_localeDisplayName
    - u_unescape
    - U_FAILURE
    - uldn_close
    - uloc_getDisplayCountry
    - log_data_err
    - uloc_getDisplayName
    - U_SUCCESS
    - myErrorName
    - uldn_regionDisplayName
    - uldn_open
    - u_strcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestDisplayNameBrackets() '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2118,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2147,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:2150,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:2143,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:2169,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:2176,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:2179,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:2129,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:2133,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:2155,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:2142,1
    - Dst: uloc_setKeywordValue
      Src: /src/icu/source/test/cintltst/cloctst.c:2159,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:2168,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2172,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2126,1
    - Dst: uloc_setKeywordValue
      Src: /src/icu/source/test/cintltst/cloctst.c:2116,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/cloctst.c:2134,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cloctst.c:2135,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2143,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2139,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/cloctst.c:2156,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cloctst.c:2157,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2161,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2169,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/cloctst.c:2114,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2118,1
    - Dst: uloc_setKeywordValue
      Src: /src/icu/source/test/cintltst/cloctst.c:2137,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2139,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2161,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2165,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:2172,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:2174,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2173,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 75
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2181
      start: 2103
    functionDepth: 0
    functionLinenumber: 2103
    functionLinenumberEnd: 2181
    functionName: TestKeywordSetError
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - memset
    - strcpy
    - uloc_setKeywordValue
    - strcmp
    - log_verbose
    - log_err
    - strlen
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestKeywordSetError(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:2300,1
    - Dst: _canonicalize
      Src: /src/icu/source/test/cintltst/cloctst.c:2311,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2313,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/cintltst/cloctst.c:2307,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2314,1
    - Dst: _canonicalize
      Src: /src/icu/source/test/cintltst/cloctst.c:2318,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2319,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2320,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2321,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2324,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2332,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:2333,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2336,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2325,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:2328,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:2331,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2341
      start: 2199
    functionDepth: 0
    functionLinenumber: 2199
    functionLinenumberEnd: 2341
    functionName: TestCanonicalization
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - _canonicalize
    - U_FAILURE
    - uprv_strcmp
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - uloc_getDefault
    - u_errorName
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestCanonicalization(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:2615,1
    - Dst: uloc_getBaseName
      Src: /src/icu/source/test/cintltst/cloctst.c:2616,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2619,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2618,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2624
      start: 2601
    functionDepth: 0
    functionLinenumber: 2601
    functionLinenumberEnd: 2624
    functionName: TestGetBaseName
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - strcmp
    - uloc_getBaseName
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestGetBaseName(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uloc_getDisplayLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:2653,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2656,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2657,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:2653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2659
      start: 2648
    functionDepth: 0
    functionLinenumber: 2648
    functionLinenumberEnd: 2659
    functionName: TestDisplayNameWarning
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uloc_getDisplayLanguage
    - u_errorName
    - log_err
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestDisplayNameWarning(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uloc_getName
      Src: /src/icu/source/test/cintltst/cloctst.c:2191,1
    - Dst: uloc_canonicalize
      Src: /src/icu/source/test/cintltst/cloctst.c:2193,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 5
    argNames:
    - selector
    - /* 0==getName, 1==canonicalize */
    - localeID
    - result
    - resultCapacity
    - ec
    argTypes:
    - int32_t
    - char*
    - char*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 2197
      start: 2183
    functionDepth: 0
    functionLinenumber: 2183
    functionLinenumberEnd: 2197
    functionName: _canonicalize
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uloc_getName
    - uloc_canonicalize
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _canonicalize(int32_t selector, /* 0==getName, 1==canonicalize
      */ const char* localeID, char* result, int32_t resultCapacity, UErrorCode* ec) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uloc_canonicalize
      Src: /src/icu/source/test/cintltst/cloctst.c:2358,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2367,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2360,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2361,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2362,1
    - Dst: uprv_strncmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2372,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2377
      start: 2343
    functionDepth: 0
    functionLinenumber: 2343
    functionLinenumberEnd: 2377
    functionName: TestCanonicalizationBuffer
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - uprv_strncmp
    - log_err
    - uloc_canonicalize
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestCanonicalizationBuffer(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uloc_getDisplayName
      Src: /src/icu/source/test/cintltst/cloctst.c:2633,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2641,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2635,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2645
      start: 2626
    functionDepth: 0
    functionLinenumber: 2626
    functionLinenumberEnd: 2645
    functionName: TestTrailingNull
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uloc_getDisplayName
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestTrailingNull(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:5800,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - errorData*
    constantsTouched: []
    func_position:
      end: 5806
      start: 5795
    functionDepth: 0
    functionLinenumber: 5795
    functionLinenumberEnd: 5806
    functionName: getExpectedReturnValue
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t getExpectedReturnValue(const errorData* data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:6540,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6543,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/cloctst.c:6541,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:6545,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - namech
    - ch
    - nameu
    - uch
    argTypes:
    - char*
    - char
    - char*
    - UChar
    constantsTouched: []
    func_position:
      end: 6547
      start: 6536
    functionDepth: 0
    functionLinenumber: 6536
    functionLinenumberEnd: 6547
    functionName: test_unicode_define
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - u_charsToUChars
    - log_verbose
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void test_unicode_define(const char *namech, char ch, const
      char *nameu, UChar uch) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:6300,1
    - Dst: uloc_toLanguageTag
      Src: /src/icu/source/test/cintltst/cloctst.c:6304,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:6306,1
    - Dst: uloc_forLanguageTag
      Src: /src/icu/source/test/cintltst/cloctst.c:6303,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:6305,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:6307,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:6310,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6311,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 6316
      start: 6295
    functionDepth: 0
    functionLinenumber: 6295
    functionLinenumberEnd: 6316
    functionName: TestLangAndRegionCanonicalize
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_err_status
    - log_data_err
    - u_errorName
    - uprv_strcmp
    - UPRV_LENGTHOF
    - uloc_forLanguageTag
    - uloc_toLanguageTag
    linkageType: ''
    returnType: void
    signature: 'static void TestLangAndRegionCanonicalize(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uloc_getLCID
      Src: /src/icu/source/test/cintltst/cloctst.c:6605,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6609
      start: 6603
    functionDepth: 0
    functionLinenumber: 6603
    functionLinenumberEnd: 6609
    functionName: TestBug20370
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - log_err
    - uloc_getLCID
    linkageType: ''
    returnType: void
    signature: 'static void TestBug20370() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uloc_forLanguageTag
      Src: /src/icu/source/test/cintltst/cloctst.c:6619,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6622,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:6621,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:6620,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cloctst.c:6622,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6624
      start: 6613
    functionDepth: 0
    functionLinenumber: 6613
    functionLinenumberEnd: 6624
    functionName: TestBug20149
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - strcmp
    - myErrorName
    - log_err
    - uloc_forLanguageTag
    linkageType: ''
    returnType: void
    signature: 'static void TestBug20149() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: uloc_toUnicodeLocaleKey
      Src: /src/icu/source/test/cintltst/cloctst.c:6337,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:6344,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6340,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6343,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6346,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:6348,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6349,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 6352
      start: 6318
    functionDepth: 0
    functionLinenumber: 6318
    functionLinenumberEnd: 6352
    functionName: TestToUnicodeLocaleKey
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - log_data_err
    - uprv_strcmp
    - uloc_toUnicodeLocaleKey
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestToUnicodeLocaleKey(void) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:469,1
    - Dst: uloc_getCountry
      Src: /src/icu/source/test/cintltst/cloctst.c:492,1
    - Dst: uloc_getScript
      Src: /src/icu/source/test/cintltst/cloctst.c:488,1
    - Dst: uloc_getVariant
      Src: /src/icu/source/test/cintltst/cloctst.c:496,1
    - Dst: uloc_getLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:484,1
    - Dst: uloc_getName
      Src: /src/icu/source/test/cintltst/cloctst.c:500,1
    - Dst: uloc_canonicalize
      Src: /src/icu/source/test/cintltst/cloctst.c:504,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cloctst.c:508,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:512,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:513,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:516,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:520,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:527,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:521,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:514,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:537,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:536,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:519,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 544
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 544
    functionName: TestPrefixes
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uloc_getLanguage
    - uloc_getScript
    - U_FAILURE
    - strcpy
    - u_errorName
    - strcmp
    - log_verbose
    - log_err
    - uloc_canonicalize
    - uloc_getCountry
    - uloc_getVariant
    - uloc_getName
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestPrefixes() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cloctst.c:563,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:568,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:571,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:572,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:579,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:589,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cloctst.c:555,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:559,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:562,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:565,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:571,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cloctst.c:577,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:578,1
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cloctst.c:562,1
    - Dst: setUpDataTable
      Src: /src/icu/source/test/cintltst/cloctst.c:558,1
    - Dst: uloc_getISO3Language
      Src: /src/icu/source/test/cintltst/cloctst.c:567,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:570,1
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cloctst.c:576,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cloctst.c:569,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/cloctst.c:582,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:584,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cloctst.c:556,1
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cloctst.c:568,1
    - Dst: uloc_getISO3Country
      Src: /src/icu/source/test/cintltst/cloctst.c:575,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:576,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:579,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cloctst.c:580,1
    - Dst: uloc_getLCID
      Src: /src/icu/source/test/cintltst/cloctst.c:582,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:583,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:588,1
    - Dst: cleanUpDataTable
      Src: /src/icu/source/test/cintltst/cloctst.c:590,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 591
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 591
    functionName: TestSimpleResourceInfo
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - sprintf
    - realloc
    - malloc
    - u_uastrcpy
    - uloc_getISO3Country
    - setUpDataTable
    - strcmp
    - cleanUpDataTable
    - austrdup
    - u_strlen
    - free
    - log_verbose
    - log_err
    - uloc_getISO3Language
    - strlen
    - u_strcmp
    - u_austrcpy
    - uloc_getLCID
    linkageType: ''
    returnType: void
    signature: 'static void TestSimpleResourceInfo() '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cloctst.c:306,1
    - Dst: uloc_getCountry
      Src: /src/icu/source/test/cintltst/cloctst.c:303,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:313,1
    - Dst: uloc_getVariant
      Src: /src/icu/source/test/cintltst/cloctst.c:321,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:338,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cloctst.c:339,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:336,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:348,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:345,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:283,1
    - Dst: uloc_getLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:289,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:309,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cloctst.c:310,1
    - Dst: uloc_getVariant
      Src: /src/icu/source/test/cintltst/cloctst.c:317,1
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cloctst.c:320,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:339,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:341,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cloctst.c:333,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:342,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:285,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cloctst.c:286,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cloctst.c:285,1
    - Dst: uloc_getLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:293,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:295,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:310,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cloctst.c:296,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:312,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:323,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cloctst.c:324,1
    - Dst: uloc_getName
      Src: /src/icu/source/test/cintltst/cloctst.c:334,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:346,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:288,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cloctst.c:292,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:296,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:298,1
    - Dst: uloc_getCountry
      Src: /src/icu/source/test/cintltst/cloctst.c:307,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:299,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:324,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:326,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:327,1
    - Dst: uloc_getName
      Src: /src/icu/source/test/cintltst/cloctst.c:330,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 350
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 350
    functionName: TestBasicGetters
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - realloc
    - malloc
    - uloc_getLanguage
    - U_FAILURE
    - strcpy
    - strcmp
    - free
    - myErrorName
    - log_verbose
    - log_err
    - strlen
    - uloc_getVariant
    - uloc_getName
    - uloc_getCountry
    linkageType: ''
    returnType: void
    signature: 'static void TestBasicGetters() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: uloc_countAvailable
      Src: /src/icu/source/test/cintltst/cloctst.c:844,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cloctst.c:857,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cloctst.c:871,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:852,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:864,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cloctst.c:873,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/cloctst.c:897,1
    - Dst: uloc_getAvailable
      Src: /src/icu/source/test/cintltst/cloctst.c:848,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/cloctst.c:850,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:867,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/cloctst.c:863,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/cloctst.c:900,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/cloctst.c:901,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cloctst.c:841,1
    - Dst: assertEquals
      Src: /src/icu/source/test/cintltst/cloctst.c:851,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/cloctst.c:852,1
    - Dst: assertPtrEquals
      Src: /src/icu/source/test/cintltst/cloctst.c:854,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/cloctst.c:855,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cloctst.c:872,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:881,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cloctst.c:889,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cloctst.c:890,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/cloctst.c:891,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cloctst.c:905,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/cloctst.c:892,1
    - Dst: uloc_openAvailableByType
      Src: /src/icu/source/test/cintltst/cloctst.c:840,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/cloctst.c:845,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/cloctst.c:843,1
    - Dst: uloc_countAvailable
      Src: /src/icu/source/test/cintltst/cloctst.c:847,1
    - Dst: uloc_openAvailableByType
      Src: /src/icu/source/test/cintltst/cloctst.c:859,1
    - Dst: uloc_openAvailableByType
      Src: /src/icu/source/test/cintltst/cloctst.c:875,1
    - Dst: uenum_unext
      Src: /src/icu/source/test/cintltst/cloctst.c:880,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:884,1
    - Dst: uenum_reset
      Src: /src/icu/source/test/cintltst/cloctst.c:895,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cloctst.c:903,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 906
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 906
    functionName: TestGetAvailableLocalesByType
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - assertIntEquals
    - assertEquals
    - assertTrue
    - assertPtrEquals
    - uenum_next
    - uenum_unext
    - uenum_reset
    - uloc_getAvailable
    - assertSuccess
    - uprv_strlen
    - uenum_count
    - uprv_strcmp
    - uloc_openAvailableByType
    - uenum_close
    - u_strcmp
    - uloc_countAvailable
    linkageType: ''
    returnType: void
    signature: 'static void TestGetAvailableLocalesByType() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:921,1
    - Dst: uloc_getISO3Language
      Src: /src/icu/source/test/cintltst/cloctst.c:920,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:924,1
    - Dst: u_setDataDirectory
      Src: /src/icu/source/test/cintltst/cloctst.c:929,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:930,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:943,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:923,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:928,1
    - Dst: uloc_getISO3Language
      Src: /src/icu/source/test/cintltst/cloctst.c:935,1
    - Dst: uloc_getISO3Language
      Src: /src/icu/source/test/cintltst/cloctst.c:939,1
    - Dst: u_getDataDirectory
      Src: /src/icu/source/test/cintltst/cloctst.c:933,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:936,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:916,1
    - Dst: u_getDataDirectory
      Src: /src/icu/source/test/cintltst/cloctst.c:917,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cloctst.c:918,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:940,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:933,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:931,1
    - Dst: u_setDataDirectory
      Src: /src/icu/source/test/cintltst/cloctst.c:938,1
    - Dst: u_getDataDirectory
      Src: /src/icu/source/test/cintltst/cloctst.c:930,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:942,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 945
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 945
    functionName: TestDataDirectory
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - u_setDataDirectory
    - u_getDataDirectory
    - strcpy
    - strcmp
    - log_verbose
    - log_err
    - uloc_getISO3Language
    linkageType: ''
    returnType: void
    signature: 'static void TestDataDirectory() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:1353,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:1355,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:1357,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1347
    functionDepth: 0
    functionLinenumber: 1347
    functionLinenumberEnd: 1360
    functionName: cleanUpDataTable
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void cleanUpDataTable() '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: uloc_openKeywords
      Src: /src/icu/source/test/cintltst/cloctst.c:1823,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1826,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1828,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1833,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/cloctst.c:1837,1
    - Dst: uloc_getName
      Src: /src/icu/source/test/cintltst/cloctst.c:1856,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1847,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1897,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1906,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/cloctst.c:1832,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1839,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cloctst.c:1852,1
    - Dst: U_ASSERT
      Src: /src/icu/source/test/cintltst/cloctst.c:1858,1
    - Dst: uloc_getBaseName
      Src: /src/icu/source/test/cintltst/cloctst.c:1875,1
    - Dst: U_ASSERT
      Src: /src/icu/source/test/cintltst/cloctst.c:1876,1
    - Dst: uloc_canonicalize
      Src: /src/icu/source/test/cintltst/cloctst.c:1893,1
    - Dst: U_ASSERT
      Src: /src/icu/source/test/cintltst/cloctst.c:1894,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1888,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1905,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1899,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:1820,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1828,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1846,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cloctst.c:1859,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1864,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cloctst.c:1877,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1882,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cloctst.c:1895,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1900,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1838,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1861,1
    - Dst: uenum_reset
      Src: /src/icu/source/test/cintltst/cloctst.c:1844,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/cloctst.c:1845,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1863,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1869,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1870,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1879,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1881,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1887,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 97
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1910
      start: 1762
    functionDepth: 0
    functionLinenumber: 1762
    functionLinenumberEnd: 1910
    functionName: TestKeywordVariants
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uenum_reset
    - U_ASSERT
    - uenum_next
    - uloc_canonicalize
    - strcmp
    - uloc_openKeywords
    - U_SUCCESS
    - uenum_count
    - uprv_strcmp
    - uloc_getName
    - log_err
    - uenum_close
    - uloc_getBaseName
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestKeywordVariants(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2421,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2421,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cloctst.c:2441,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2408,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/cloctst.c:2406,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2408,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/cloctst.c:2412,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:2431,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2425,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:2398,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2407,1
    - Dst: uloc_getDisplayKeyword
      Src: /src/icu/source/test/cintltst/cloctst.c:2414,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cloctst.c:2418,1
    - Dst: uloc_getDisplayKeyword
      Src: /src/icu/source/test/cintltst/cloctst.c:2419,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2420,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2427,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2427,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2435,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:2438,1
    - Dst: uloc_openKeywords
      Src: /src/icu/source/test/cintltst/cloctst.c:2405,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2429,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:2422,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2435,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2443
      start: 2379
    functionDepth: 0
    functionLinenumber: 2379
    functionLinenumberEnd: 2443
    functionName: TestDisplayKeywords
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - malloc
    - uenum_next
    - U_FAILURE
    - log_data_err
    - uloc_openKeywords
    - uloc_getDisplayKeyword
    - uenum_count
    - free
    - u_strncmp
    - log_err
    - uenum_close
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestDisplayKeywords(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:223,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:228,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:232,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:236,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:239,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:244,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:250,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:254,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:255,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:258,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:260,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:265,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:270,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:214,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:217,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:225,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:229,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:233,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:237,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:241,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:245,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:251,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:253,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:263,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:268,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:256,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:215,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:216,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:218,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:220,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:226,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:230,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:234,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:242,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:246,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:248,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:261,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:266,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:272,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:259,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:271,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:213,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:219,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:221,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:227,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:231,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:235,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:243,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:247,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:249,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:252,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:264,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:257,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:269,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:262,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cloctst.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 61
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 273
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 273
    functionName: addLocaleTest
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - TESTCASE
    linkageType: ''
    returnType: void
    signature: 'void addLocaleTest(TestNode** root) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:1930,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:1937,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1939,1
    - Dst: uloc_getKeywordValue
      Src: /src/icu/source/test/cintltst/cloctst.c:1933,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1938,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1940,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1941,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cloctst.c:1944,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1946,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1951
      start: 1912
    functionDepth: 0
    functionLinenumber: 1912
    functionLinenumberEnd: 1951
    functionName: TestKeywordVariantParsing
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - U_SUCCESS
    - uprv_strcmp
    - uloc_getKeywordValue
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestKeywordVariantParsing(void) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:2482,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2491,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cloctst.c:2503,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2506,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2506,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2520,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:2522,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/cloctst.c:2543,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/cloctst.c:2551,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cloctst.c:2579,1
    - Dst: uloc_getDisplayKeywordValue
      Src: /src/icu/source/test/cintltst/cloctst.c:2554,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2593,1
    - Dst: uloc_openKeywords
      Src: /src/icu/source/test/cintltst/cloctst.c:2489,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2492,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2492,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/cloctst.c:2496,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2510,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2520,1
    - Dst: uloc_openKeywords
      Src: /src/icu/source/test/cintltst/cloctst.c:2541,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2546,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2547,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2547,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2593,1
    - Dst: uloc_getDisplayKeywordValue
      Src: /src/icu/source/test/cintltst/cloctst.c:2591,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2575,1
    - Dst: uloc_getDisplayKeywordValue
      Src: /src/icu/source/test/cintltst/cloctst.c:2499,1
    - Dst: uloc_getDisplayKeywordValue
      Src: /src/icu/source/test/cintltst/cloctst.c:2504,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2505,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2512,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2512,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cloctst.c:2524,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:2562,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2565,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2567,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2567,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2569,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2595,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/cloctst.c:2490,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2514,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2514,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:2507,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:2516,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cloctst.c:2558,1
    - Dst: uloc_getDisplayKeywordValue
      Src: /src/icu/source/test/cintltst/cloctst.c:2559,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2560,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2561,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2561,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2575,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2592,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:2571,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cloctst.c:2577,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 99
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2598
      start: 2445
    functionDepth: 0
    functionLinenumber: 2445
    functionLinenumberEnd: 2598
    functionName: TestDisplayKeywordValues
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - malloc
    - uenum_next
    - uloc_getDisplayKeywordValue
    - U_FAILURE
    - log_data_err
    - uloc_openKeywords
    - uenum_count
    - free
    - u_strncmp
    - log_err
    - uenum_close
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestDisplayKeywordValues(void) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: udat_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:2715,1
    - Dst: _checklocs
      Src: /src/icu/source/test/cintltst/cloctst.c:2721,1
    - Dst: _checklocs
      Src: /src/icu/source/test/cintltst/cloctst.c:2745,1
    - Dst: ucal_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:2739,1
    - Dst: unum_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:2763,1
    - Dst: umsg_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:2789,1
    - Dst: _loccmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2804,1
    - Dst: ubrk_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:2831,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cloctst.c:2847,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2848,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2849,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2828,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2791,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cloctst.c:2838,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2855,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cloctst.c:2859,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2718,1
    - Dst: ucal_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:2740,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2741,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cloctst.c:2755,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2759,1
    - Dst: unum_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:2764,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2765,1
    - Dst: umsg_open
      Src: /src/icu/source/test/cintltst/cloctst.c:2782,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2785,1
    - Dst: umsg_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:2790,1
    - Dst: ucol_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:2853,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2810,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2828,1
    - Dst: _checklocs
      Src: /src/icu/source/test/cintltst/cloctst.c:2858,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cloctst.c:2707,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2712,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2711,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cloctst.c:2722,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cloctst.c:2731,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2736,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2735,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/cloctst.c:2746,1
    - Dst: _checklocs
      Src: /src/icu/source/test/cintltst/cloctst.c:2769,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cloctst.c:2770,1
    - Dst: umsg_close
      Src: /src/icu/source/test/cintltst/cloctst.c:2812,1
    - Dst: _loccmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2807,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2834,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2854,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/cloctst.c:2822,1
    - Dst: ucol_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:2852,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2849,1
    - Dst: ubrk_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:2832,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2712,1
    - Dst: udat_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:2716,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2717,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2742,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2736,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2760,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2766,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2786,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2792,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:2808,1
    - Dst: _checklocs
      Src: /src/icu/source/test/cintltst/cloctst.c:2837,1
    - Dst: _cmpversion
      Src: /src/icu/source/test/cintltst/cloctst.c:2800,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2827,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2833,1
    - Dst: _loccmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2802,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 114
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2862
      start: 2697
    functionDepth: 0
    functionLinenumber: 2697
    functionLinenumberEnd: 2862
    functionName: TestGetLocale
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - umsg_open
    - ucol_open
    - _checklocs
    - unum_close
    - udat_getLocaleByType
    - unum_open
    - udat_close
    - u_errorName
    - umsg_close
    - ubrk_getLocaleByType
    - udat_open
    - ucol_close
    - U_FAILURE
    - log_data_err
    - _cmpversion
    - ucal_close
    - umsg_getLocaleByType
    - log_verbose
    - ucal_getLocaleByType
    - ubrk_open
    - ubrk_close
    - ucal_open
    - log_err
    - unum_getLocaleByType
    - _loccmp
    - ucol_getLocaleByType
    linkageType: ''
    returnType: void
    signature: 'static void TestGetLocale(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: udbg_enumName
      Src: /src/icu/source/test/cintltst/cloctst.c:2970,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - uar
    argTypes:
    - UAcceptResult
    constantsTouched: []
    func_position:
      end: 2971
      start: 2969
    functionDepth: 0
    functionLinenumber: 2969
    functionLinenumberEnd: 2971
    functionName: acceptResult
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - udbg_enumName
    linkageType: ''
    returnType: char*
    signature: 'static const char *acceptResult(UAcceptResult uar) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:5816,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - data
    - actualSize
    argTypes:
    - errorData*
    - int32_t
    constantsTouched: []
    func_position:
      end: 5822
      start: 5808
    functionDepth: 0
    functionLinenumber: 5808
    functionLinenumberEnd: 5822
    functionName: getBufferSize
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t getBufferSize(const errorData* data, int32_t actualSize) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: uloc_toLanguageTag
      Src: /src/icu/source/test/cintltst/cloctst.c:6080,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6089,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:6085,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6084,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:6082,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:6091,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6092,1
    - Dst: uloc_toLanguageTag
      Src: /src/icu/source/test/cintltst/cloctst.c:6102,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:6103,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6105,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6113,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:6106,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6110,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:6112,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 6118
      start: 6064
    functionDepth: 0
    functionLinenumber: 6064
    functionLinenumberEnd: 6118
    functionName: TestToLanguageTag
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_data_err
    - uprv_strcmp
    - log_err
    - u_errorName
    - uloc_toLanguageTag
    linkageType: ''
    returnType: void
    signature: 'static void TestToLanguageTag(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:6257,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:6262,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:6266,1
    - Dst: uloc_forLanguageTag
      Src: /src/icu/source/test/cintltst/cloctst.c:6264,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:6265,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:6267,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:6269,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6270,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6274,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 6279
      start: 6250
    functionDepth: 0
    functionLinenumber: 6250
    functionLinenumberEnd: 6279
    functionName: TestForLanguageTag
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - uprv_strlen
    - log_err_status
    - log_data_err
    - u_errorName
    - uprv_strcmp
    - log_err
    - UPRV_LENGTHOF
    - uloc_forLanguageTag
    linkageType: ''
    returnType: void
    signature: 'static void TestForLanguageTag(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:2668,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2672,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:2669,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2673,1
    - Dst: uprv_strncmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2670,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - string
    - prefix
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2679
      start: 2667
    functionDepth: 0
    functionLinenumber: 2667
    functionLinenumberEnd: 2679
    functionName: _loccmp
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uprv_strlen
    - uprv_strcmp
    - uprv_strncmp
    linkageType: ''
    returnType: UBool
    signature: 'static UBool _loccmp(const char* string, const char* prefix) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:6127,1
    - Dst: uloc_toLanguageTag
      Src: /src/icu/source/test/cintltst/cloctst.c:6134,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6137,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:6138,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:6136,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6142,1
    - Dst: uloc_toLanguageTag
      Src: /src/icu/source/test/cintltst/cloctst.c:6146,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:6148,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6149,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:6150,1
    - Dst: uprv_strncmp
      Src: /src/icu/source/test/cintltst/cloctst.c:6155,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6156,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6154,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 6159
      start: 6120
    functionDepth: 0
    functionLinenumber: 6120
    functionLinenumberEnd: 6159
    functionName: TestBug20132
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uprv_strlen
    - U_FAILURE
    - log_data_err
    - uprv_strncmp
    - log_err
    - u_errorName
    - uloc_toLanguageTag
    linkageType: ''
    returnType: void
    signature: 'static void TestBug20132(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:3350,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/cloctst.c:3357,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3358,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3346,1
    - Dst: ures_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:3369,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3372,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3366,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/cloctst.c:3365,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:3375,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3345,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3346,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3359,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3359,1
    - Dst: ures_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:3362,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cloctst.c:3378,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cloctst.c:3381,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/cloctst.c:3349,1
    - Dst: isLocaleAvailable
      Src: /src/icu/source/test/cintltst/cloctst.c:3354,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:3371,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3367,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3367,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:3371,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cloctst.c:3376,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3382
      start: 3336
    functionDepth: 0
    functionLinenumber: 3336
    functionLinenumberEnd: 3382
    functionName: TestUResourceBundle
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - isLocaleAvailable
    - U_FAILURE
    - strcmp
    - ures_getLocaleByType
    - log_verbose
    - log_err
    - ures_close
    - UPRV_LENGTHOF
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestUResourceBundle() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: uloc_toLegacyKey
      Src: /src/icu/source/test/cintltst/cloctst.c:6407,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6416,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6413,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:6414,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6410,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:6418,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6419,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 6422
      start: 6387
    functionDepth: 0
    functionLinenumber: 6387
    functionLinenumberEnd: 6422
    functionName: TestToLegacyKey
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uloc_toLegacyKey
    - log_data_err
    - uprv_strcmp
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestToLegacyKey(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: uloc_toLegacyType
      Src: /src/icu/source/test/cintltst/cloctst.c:6515,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6524,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6518,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6521,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:6522,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:6526,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6527,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:6529,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 6532
      start: 6477
    functionDepth: 0
    functionLinenumber: 6477
    functionLinenumberEnd: 6532
    functionName: TestToLegacyType
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uloc_toLegacyType
    - log_data_err
    - uprv_strcmp
    - log_verbose
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestToLegacyType(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:3395,1
    - Dst: uloc_getAvailable
      Src: /src/icu/source/test/cintltst/cloctst.c:3403,1
    - Dst: uloc_getDisplayCountry
      Src: /src/icu/source/test/cintltst/cloctst.c:3404,1
    - Dst: uloc_getDisplayCountry
      Src: /src/icu/source/test/cintltst/cloctst.c:3405,1
    - Dst: uloc_countAvailable
      Src: /src/icu/source/test/cintltst/cloctst.c:3399,1
    - Dst: uloc_getDisplayLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:3406,1
    - Dst: uloc_getDisplayLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:3407,1
    - Dst: uloc_getCountry
      Src: /src/icu/source/test/cintltst/cloctst.c:3409,1
    - Dst: uloc_getLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:3410,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cloctst.c:3413,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3414,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cloctst.c:3419,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3420,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3424
      start: 3384
    functionDepth: 0
    functionLinenumber: 3384
    functionLinenumberEnd: 3424
    functionName: TestDisplayName
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uloc_getLanguage
    - uloc_getAvailable
    - uloc_getDisplayCountry
    - uloc_getDisplayLanguage
    - u_strncmp
    - log_err
    - UPRV_LENGTHOF
    - uloc_countAvailable
    - uloc_getCountry
    linkageType: ''
    returnType: void
    signature: 'static void TestDisplayName() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uloc_isRightToLeft
      Src: /src/icu/source/test/cintltst/cloctst.c:6559,1
    - Dst: uloc_isRightToLeft
      Src: /src/icu/source/test/cintltst/cloctst.c:6559,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6560,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6562
      start: 6557
    functionDepth: 0
    functionLinenumber: 6557
    functionLinenumberEnd: 6562
    functionName: TestIsRightToLeft
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uloc_isRightToLeft
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestIsRightToLeft() '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: uloc_setDefault
      Src: /src/icu/source/test/cintltst/cloctst.c:361,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:362,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/cintltst/cloctst.c:362,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:363,1
    - Dst: uloc_setDefault
      Src: /src/icu/source/test/cintltst/cloctst.c:381,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/cintltst/cloctst.c:392,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:394,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/cintltst/cloctst.c:359,1
    - Dst: uloc_setDefault
      Src: /src/icu/source/test/cintltst/cloctst.c:375,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/cintltst/cloctst.c:382,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:388,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:393,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:400,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/cloctst.c:356,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/cintltst/cloctst.c:358,1
    - Dst: uloc_setDefault
      Src: /src/icu/source/test/cintltst/cloctst.c:357,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:359,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:378,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:383,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/cintltst/cloctst.c:376,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:397,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:401,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/cintltst/cloctst.c:356,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:358,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:377,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:384,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:387,1
    - Dst: uloc_setDefault
      Src: /src/icu/source/test/cintltst/cloctst.c:391,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:401,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 406
    functionName: TestNullDefault
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - uloc_setDefault
    - strcmp
    - uprv_strcmp
    - log_err
    - uprv_strcpy
    - uloc_getDefault
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestNullDefault() '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/cloctst.c:1220,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:1221,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1243,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1257,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1262,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/cloctst.c:1273,1
    - Dst: ures_getNextString
      Src: /src/icu/source/test/cintltst/cloctst.c:1284,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:1286,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1291,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1299,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cloctst.c:1329,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:1322,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1311,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cloctst.c:1322,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/cloctst.c:1219,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1251,1
    - Dst: ures_getNextString
      Src: /src/icu/source/test/cintltst/cloctst.c:1236,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1243,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1255,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1260,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1263,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1270,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1291,1
    - Dst: ures_getNextString
      Src: /src/icu/source/test/cintltst/cloctst.c:1292,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1305,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1302,1
    - Dst: ures_getNextString
      Src: /src/icu/source/test/cintltst/cloctst.c:1310,1
    - Dst: ures_getNextString
      Src: /src/icu/source/test/cintltst/cloctst.c:1320,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1327,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cloctst.c:1330,1
    - Dst: uloc_getISOLanguages
      Src: /src/icu/source/test/cintltst/cloctst.c:1204,1
    - Dst: uloc_getISOCountries
      Src: /src/icu/source/test/cintltst/cloctst.c:1205,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:1216,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1222,1
    - Dst: ures_getNextString
      Src: /src/icu/source/test/cintltst/cloctst.c:1244,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1249,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1243,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1258,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1261,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1303,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1307,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1304,1
    - Dst: ures_openDirect
      Src: /src/icu/source/test/cintltst/cloctst.c:1219,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1222,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/cloctst.c:1226,1
    - Dst: strchr
      Src: /src/icu/source/test/cintltst/cloctst.c:1238,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1256,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1259,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1264,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:1274,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/cloctst.c:1276,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1291,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1297,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1312,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1306,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 133
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1202
    functionDepth: 0
    functionLinenumber: 1202
    functionLinenumberEnd: 1331
    functionName: TestISOFunctions
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - ures_getNextString
    - ures_getByKey
    - ures_openDirect
    - U_FAILURE
    - loadTestData
    - log_data_err
    - strchr
    - strcmp
    - uloc_getISOLanguages
    - U_SUCCESS
    - log_verbose
    - log_err
    - ures_close
    - strlen
    - uloc_getISOCountries
    - u_errorName
    - ures_getSize
    linkageType: ''
    returnType: void
    signature: 'static void TestISOFunctions() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/icu/source/test/cintltst/cloctst.c:1337,1
    - Dst: CharsToUChars
      Src: /src/icu/source/test/cintltst/cloctst.c:1342,1
    - Dst: calloc
      Src: /src/icu/source/test/cintltst/cloctst.c:1340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1334
    functionDepth: 0
    functionLinenumber: 1334
    functionLinenumberEnd: 1345
    functionName: setUpDataTable
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - calloc
    - CharsToUChars
    linkageType: ''
    returnType: void
    signature: 'static void setUpDataTable() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ulocdata_open
      Src: /src/icu/source/test/cintltst/cloctst.c:2873,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2875,1
    - Dst: ulocdata_getExemplarSet
      Src: /src/icu/source/test/cintltst/cloctst.c:2880,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2875,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2874,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2881,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:2882,1
    - Dst: uset_contains
      Src: /src/icu/source/test/cintltst/cloctst.c:2886,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2887,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cloctst.c:2891,1
    - Dst: ulocdata_close
      Src: /src/icu/source/test/cintltst/cloctst.c:2892,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2893
      start: 2863
    functionDepth: 0
    functionLinenumber: 2863
    functionLinenumberEnd: 2893
    functionName: TestEnglishExemplarCharacters
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_err_status
    - log_data_err
    - u_errorName
    - ulocdata_open
    - ulocdata_close
    - uset_contains
    - log_err
    - uset_close
    - ulocdata_getExemplarSet
    linkageType: ''
    returnType: void
    signature: 'static void TestEnglishExemplarCharacters(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ulocdata_open
      Src: /src/icu/source/test/cintltst/cloctst.c:2909,1
    - Dst: ulocdata_getPaperSize
      Src: /src/icu/source/test/cintltst/cloctst.c:2913,1
    - Dst: ulocdata_getDelimiter
      Src: /src/icu/source/test/cintltst/cloctst.c:2911,1
    - Dst: ulocdata_getExemplarSet
      Src: /src/icu/source/test/cintltst/cloctst.c:2910,1
    - Dst: ulocdata_getMeasurementSystem
      Src: /src/icu/source/test/cintltst/cloctst.c:2912,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2915,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2915,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2917
      start: 2907
    functionDepth: 0
    functionLinenumber: 2907
    functionLinenumberEnd: 2917
    functionName: TestLocDataErrorCodeChaining
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - ulocdata_getPaperSize
    - ulocdata_open
    - ulocdata_getMeasurementSystem
    - u_errorName
    - log_err
    - ulocdata_getDelimiter
    - ulocdata_getExemplarSet
    linkageType: ''
    returnType: void
    signature: 'static void TestLocDataErrorCodeChaining(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ulocdata_open
      Src: /src/icu/source/test/cintltst/cloctst.c:2952,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:2955,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2956,1
    - Dst: ulocdata_getExemplarSet
      Src: /src/icu/source/test/cintltst/cloctst.c:2953,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cloctst.c:2953,1
    - Dst: ulocdata_close
      Src: /src/icu/source/test/cintltst/cloctst.c:2958,1
    - Dst: ulocdata_open
      Src: /src/icu/source/test/cintltst/cloctst.c:2960,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cloctst.c:2961,1
    - Dst: ulocdata_getExemplarSet
      Src: /src/icu/source/test/cintltst/cloctst.c:2961,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:2963,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2964,1
    - Dst: ulocdata_close
      Src: /src/icu/source/test/cintltst/cloctst.c:2966,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2967
      start: 2949
    functionDepth: 0
    functionLinenumber: 2949
    functionLinenumberEnd: 2967
    functionName: TestLanguageExemplarsFallbacks
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - log_err_status
    - ulocdata_open
    - u_errorName
    - ulocdata_close
    - uset_close
    - ulocdata_getExemplarSet
    linkageType: ''
    returnType: void
    signature: 'static void TestLanguageExemplarsFallbacks(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/cloctst.c:3096,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:3098,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:3101,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3097,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3098,1
    - Dst: ucal_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:3108,1
    - Dst: ucal_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:3109,1
    - Dst: isLocaleAvailable
      Src: /src/icu/source/test/cintltst/cloctst.c:3111,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cloctst.c:3114,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cloctst.c:3115,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:3117,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:3120,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/cloctst.c:3121,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/cloctst.c:3122,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cloctst.c:3124,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3118,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:3117,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3126
      start: 3092
    functionDepth: 0
    functionLinenumber: 3092
    functionLinenumberEnd: 3126
    functionName: TestCalendar
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - ures_close
    - isLocaleAvailable
    - U_FAILURE
    - log_err_status
    - strcmp
    - ucal_open
    - ucal_close
    - log_verbose
    - log_err
    - ucal_getLocaleByType
    - UPRV_LENGTHOF
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestCalendar() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/cloctst.c:3175,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3192,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3193,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cloctst.c:3208,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3193,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cloctst.c:3196,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3201,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3200,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3204,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cloctst.c:3197,1
    - Dst: ucol_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:3199,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:3206,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:3177,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3177,1
    - Dst: ucol_getLocaleByType
      Src: /src/icu/source/test/cintltst/cloctst.c:3198,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3201,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cloctst.c:3210,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3176,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:3180,1
    - Dst: isLocaleAvailable
      Src: /src/icu/source/test/cintltst/cloctst.c:3189,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:3203,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:3203,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cloctst.c:3207,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3212
      start: 3171
    functionDepth: 0
    functionLinenumber: 3171
    functionLinenumberEnd: 3212
    functionName: TestCollation
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - isLocaleAvailable
    - U_FAILURE
    - log_err_status
    - ucol_getLocaleByType
    - strcmp
    - log_verbose
    - log_err
    - ures_close
    - UPRV_LENGTHOF
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestCollation() '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1653,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1662,1
    - Dst: uloc_getISO3Country
      Src: /src/icu/source/test/cintltst/cloctst.c:1665,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1683,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:1688,1
    - Dst: uloc_getLCID
      Src: /src/icu/source/test/cintltst/cloctst.c:1693,1
    - Dst: uloc_getLCID
      Src: /src/icu/source/test/cintltst/cloctst.c:1694,1
    - Dst: uloc_getLCID
      Src: /src/icu/source/test/cintltst/cloctst.c:1697,1
    - Dst: uloc_getLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:1703,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:1711,1
    - Dst: uloc_getISO3Country
      Src: /src/icu/source/test/cintltst/cloctst.c:1739,1
    - Dst: uloc_getCountry
      Src: /src/icu/source/test/cintltst/cloctst.c:1751,1
    - Dst: uloc_getLCID
      Src: /src/icu/source/test/cintltst/cloctst.c:1697,1
    - Dst: printf
      Src: /src/icu/source/test/cintltst/cloctst.c:1728,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1721,1
    - Dst: printf
      Src: /src/icu/source/test/cintltst/cloctst.c:1754,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1713,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1624,1
    - Dst: uloc_getISO3Language
      Src: /src/icu/source/test/cintltst/cloctst.c:1651,1
    - Dst: uloc_getISO3Language
      Src: /src/icu/source/test/cintltst/cloctst.c:1659,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1641,1
    - Dst: uloc_getISO3Country
      Src: /src/icu/source/test/cintltst/cloctst.c:1670,1
    - Dst: uloc_getCountry
      Src: /src/icu/source/test/cintltst/cloctst.c:1674,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1698,1
    - Dst: uloc_getLCID
      Src: /src/icu/source/test/cintltst/cloctst.c:1698,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:1704,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1706,1
    - Dst: uloc_getLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:1732,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cloctst.c:1749,1
    - Dst: uloc_getLCID
      Src: /src/icu/source/test/cintltst/cloctst.c:1698,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/cloctst.c:1750,1
    - Dst: uloc_getISO3Language
      Src: /src/icu/source/test/cintltst/cloctst.c:1716,1
    - Dst: uloc_getLCID
      Src: /src/icu/source/test/cintltst/cloctst.c:1694,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1726,1
    - Dst: uloc_getCountry
      Src: /src/icu/source/test/cintltst/cloctst.c:1742,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1752,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1719,1
    - Dst: printf
      Src: /src/icu/source/test/cintltst/cloctst.c:1735,1
    - Dst: uloc_getISO3Language
      Src: /src/icu/source/test/cintltst/cloctst.c:1622,1
    - Dst: uloc_getISO3Language
      Src: /src/icu/source/test/cintltst/cloctst.c:1630,1
    - Dst: uloc_getLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:1634,1
    - Dst: uloc_getISO3Language
      Src: /src/icu/source/test/cintltst/cloctst.c:1654,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:1658,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1651,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1664,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:1669,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:1675,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1677,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1681,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1694,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1713,1
    - Dst: uloc_getISO3Language
      Src: /src/icu/source/test/cintltst/cloctst.c:1731,1
    - Dst: uloc_getLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:1710,1
    - Dst: printf
      Src: /src/icu/source/test/cintltst/cloctst.c:1745,1
    - Dst: uloc_getISO3Country
      Src: /src/icu/source/test/cintltst/cloctst.c:1748,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/cloctst.c:1741,1
    - Dst: uloc_getISO3Language
      Src: /src/icu/source/test/cintltst/cloctst.c:1724,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:1619,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1622,1
    - Dst: uloc_getISO3Language
      Src: /src/icu/source/test/cintltst/cloctst.c:1625,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:1629,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:1635,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1637,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:1643,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:1648,1
    - Dst: uloc_getISO3Country
      Src: /src/icu/source/test/cintltst/cloctst.c:1662,1
    - Dst: uloc_getLCID
      Src: /src/icu/source/test/cintltst/cloctst.c:1693,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cloctst.c:1740,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1733,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:1706,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:1743,1
    - Dst: uloc_getLanguage
      Src: /src/icu/source/test/cintltst/cloctst.c:1725,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 121
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1760
      start: 1573
    functionDepth: 0
    functionLinenumber: 1573
    functionLinenumberEnd: 1760
    functionName: TestObsoleteNames
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uloc_getISO3Country
    - uloc_getLanguage
    - U_FAILURE
    - strcmp
    - printf
    - strcpy
    - log_verbose
    - log_err
    - uloc_getISO3Language
    - uloc_getCountry
    - u_errorName
    - strcat
    - uloc_getLCID
    linkageType: ''
    returnType: void
    signature: 'static void TestObsoleteNames(void) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:2054,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2067,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:2068,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:2078,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/cloctst.c:2048,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cloctst.c:2049,1
    - Dst: uloc_setKeywordValue
      Src: /src/icu/source/test/cintltst/cloctst.c:2063,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:2066,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2064,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2077,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2077,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2078,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2079,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:2080,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2096,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:2046,1
    - Dst: uloc_canonicalize
      Src: /src/icu/source/test/cintltst/cloctst.c:2052,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2053,1
    - Dst: uloc_canonicalize
      Src: /src/icu/source/test/cintltst/cloctst.c:2057,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2059,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:2070,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cloctst.c:2093,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2058,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2065,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2065,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:2066,1
    - Dst: uloc_getKeywordValue
      Src: /src/icu/source/test/cintltst/cloctst.c:2075,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2076,1
    - Dst: uloc_setKeywordValue
      Src: /src/icu/source/test/cintltst/cloctst.c:2086,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2088,1
    - Dst: uloc_getKeywordValue
      Src: /src/icu/source/test/cintltst/cloctst.c:2094,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cloctst.c:2095,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cloctst.c:2087,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 68
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2101
      start: 2038
    functionDepth: 0
    functionLinenumber: 2038
    functionLinenumberEnd: 2101
    functionName: TestKeywordSet
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - memset
    - U_FAILURE
    - uprv_strlen
    - strcpy
    - strcmp
    - uloc_setKeywordValue
    - U_SUCCESS
    - uprv_strcmp
    - log_verbose
    - log_err
    - uloc_canonicalize
    - uloc_getKeywordValue
    - UPRV_LENGTHOF
    - u_errorName
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestKeywordSet(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ulocdata_open
      Src: /src/icu/source/test/cintltst/cloctst.c:2898,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:2900,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cloctst.c:2903,1
    - Dst: ulocdata_getExemplarSet
      Src: /src/icu/source/test/cintltst/cloctst.c:2903,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2901,1
    - Dst: ulocdata_close
      Src: /src/icu/source/test/cintltst/cloctst.c:2904,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2905
      start: 2895
    functionDepth: 0
    functionLinenumber: 2895
    functionLinenumberEnd: 2905
    functionName: TestNonexistentLanguageExemplars
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - ulocdata_getExemplarSet
    - log_err_status
    - ulocdata_open
    - ulocdata_close
    - uset_close
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestNonexistentLanguageExemplars(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ulocdata_getMeasurementSystem
      Src: /src/icu/source/test/cintltst/cloctst.c:2938,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:2939,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2940,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:2943,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:2941,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2947
      start: 2934
    functionDepth: 0
    functionLinenumber: 2934
    functionLinenumberEnd: 2947
    functionName: TestLocDataWithRgTag
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_data_err
    - ulocdata_getMeasurementSystem
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestLocDataWithRgTag(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - ULayoutType
    constantsTouched: []
    func_position:
      end: 3241
      start: 3220
    functionDepth: 0
    functionLinenumber: 3220
    functionLinenumberEnd: 3241
    functionName: ULayoutTypeToString
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char * ULayoutTypeToString(ULayoutType type) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isLocaleAvailable
      Src: /src/icu/source/test/cintltst/cloctst.c:3312,1
    - Dst: uloc_getDisplayName
      Src: /src/icu/source/test/cintltst/cloctst.c:3315,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cloctst.c:3330,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3321,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cloctst.c:3329,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3300,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:3316,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cloctst.c:3328,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/cloctst.c:3299,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:3301,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3301,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3322,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3326,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3322,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:3304,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:3317,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:3317,1
    - Dst: uloc_getDisplayName
      Src: /src/icu/source/test/cintltst/cloctst.c:3320,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:3325,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cloctst.c:3332,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3334
      start: 3296
    functionDepth: 0
    functionLinenumber: 3296
    functionLinenumberEnd: 3334
    functionName: TestULocale
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - isLocaleAvailable
    - U_FAILURE
    - log_err_status
    - uloc_getDisplayName
    - u_austrcpy
    - log_verbose
    - log_err
    - ures_close
    - UPRV_LENGTHOF
    - u_strcmp
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestULocale() '
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:5842,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:5842,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:5845,1
    - Dst: uprv_stricmp
      Src: /src/icu/source/test/cintltst/cloctst.c:5846,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:5882,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:5900,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:5923,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:5929,1
    - Dst: getBufferSize
      Src: /src/icu/source/test/cintltst/cloctst.c:5945,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:5972,1
    - Dst: getExpectedReturnValue
      Src: /src/icu/source/test/cintltst/cloctst.c:5978,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:5962,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:5996,1
    - Dst: uprv_stricmp
      Src: /src/icu/source/test/cintltst/cloctst.c:5932,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:5955,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:5955,1
    - Dst: uloc_addLikelySubtags
      Src: /src/icu/source/test/cintltst/cloctst.c:5948,1
    - Dst: uloc_addLikelySubtags
      Src: /src/icu/source/test/cintltst/cloctst.c:5836,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:5847,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:5869,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:5872,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:5869,1
    - Dst: uprv_stricmp
      Src: /src/icu/source/test/cintltst/cloctst.c:5873,1
    - Dst: uprv_stricmp
      Src: /src/icu/source/test/cintltst/cloctst.c:5903,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:5914,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:5924,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:5924,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:5908,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6000,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:5829,1
    - Dst: uprv_stricmp
      Src: /src/icu/source/test/cintltst/cloctst.c:5850,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:5851,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:5868,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:5874,1
    - Dst: uloc_minimizeSubtags
      Src: /src/icu/source/test/cintltst/cloctst.c:5862,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:5904,1
    - Dst: uloc_minimizeSubtags
      Src: /src/icu/source/test/cintltst/cloctst.c:5917,1
    - Dst: getExpectedReturnValue
      Src: /src/icu/source/test/cintltst/cloctst.c:5944,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:5959,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:5933,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:5959,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:5989,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:5993,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:5993,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:5927,1
    - Dst: uloc_minimizeSubtags
      Src: /src/icu/source/test/cintltst/cloctst.c:5982,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:5938,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:5989,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:5841,1
    - Dst: uprv_stricmp
      Src: /src/icu/source/test/cintltst/cloctst.c:5877,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cloctst.c:5855,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:5878,1
    - Dst: uloc_addLikelySubtags
      Src: /src/icu/source/test/cintltst/cloctst.c:5889,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cloctst.c:5894,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cloctst.c:5895,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:5895,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cloctst.c:5898,1
    - Dst: uprv_stricmp
      Src: /src/icu/source/test/cintltst/cloctst.c:5899,1
    - Dst: uprv_stricmp
      Src: /src/icu/source/test/cintltst/cloctst.c:5928,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:5993,1
    - Dst: uprv_strnicmp
      Src: /src/icu/source/test/cintltst/cloctst.c:5999,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:5966,1
    - Dst: uprv_strnicmp
      Src: /src/icu/source/test/cintltst/cloctst.c:5965,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:5959,1
    - Dst: getBufferSize
      Src: /src/icu/source/test/cintltst/cloctst.c:5979,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 145
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6005
      start: 5824
    functionDepth: 0
    functionLinenumber: 5824
    functionLinenumberEnd: 6005
    functionName: TestLikelySubtags
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uloc_addLikelySubtags
    - getExpectedReturnValue
    - U_FAILURE
    - uprv_strlen
    - log_err_status
    - uprv_stricmp
    - uprv_strnicmp
    - getBufferSize
    - uloc_minimizeSubtags
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestLikelySubtags() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_UNICODE_DEFINE
      Src: /src/icu/source/test/cintltst/cloctst.c:6552,1
    - Dst: TEST_UNICODE_DEFINE
      Src: /src/icu/source/test/cintltst/cloctst.c:6554,1
    - Dst: TEST_UNICODE_DEFINE
      Src: /src/icu/source/test/cintltst/cloctst.c:6553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 6555
      start: 6551
    functionDepth: 0
    functionLinenumber: 6551
    functionLinenumberEnd: 6555
    functionName: TestUnicodeDefines
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - TEST_UNICODE_DEFINE
    linkageType: ''
    returnType: void
    signature: 'static void TestUnicodeDefines(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cloctst.c:6584,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cloctst.c:6587,1
    - Dst: uloc_getDisplayName
      Src: /src/icu/source/test/cintltst/cloctst.c:6585,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cloctst.c:6587,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cloctst.c:6589,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cloctst.c:6590,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6591,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:6595,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cloctst.c:6596,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6599
      start: 6579
    functionDepth: 0
    functionLinenumber: 6579
    functionLinenumberEnd: 6599
    functionName: TestBadLocaleIDs
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - u_unescape
    - uloc_getDisplayName
    - u_austrncpy
    - U_SUCCESS
    - u_strncmp
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestBadLocaleIDs() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: uloc_toUnicodeLocaleType
      Src: /src/icu/source/test/cintltst/cloctst.c:6460,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6466,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6469,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:6467,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6463,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cloctst.c:6471,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cloctst.c:6472,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 6475
      start: 6424
    functionDepth: 0
    functionLinenumber: 6424
    functionLinenumberEnd: 6475
    functionName: TestToUnicodeLocaleType
    functionSourceFile: /src/icu/source/test/cintltst/cloctst.c
    functionUses: []
    functionsReached:
    - uloc_toUnicodeLocaleType
    - uprv_strcmp
    - log_data_err
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestToUnicodeLocaleType(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addUtility
      Src: /src/icu/source/test/cintltst/calltest.c:55,1
    - Dst: addUCharTransformTest
      Src: /src/icu/source/test/cintltst/calltest.c:59,1
    - Dst: addIDNATest
      Src: /src/icu/source/test/cintltst/calltest.c:67,1
    - Dst: addUStringPrepTest
      Src: /src/icu/source/test/cintltst/calltest.c:66,1
    - Dst: addBidiTransformTest
      Src: /src/icu/source/test/cintltst/calltest.c:63,1
    - Dst: addCollTest
      Src: /src/icu/source/test/cintltst/calltest.c:79,1
    - Dst: addUSpoofTest
      Src: /src/icu/source/test/cintltst/calltest.c:85,1
    - Dst: addGendInfoForTest
      Src: /src/icu/source/test/cintltst/calltest.c:89,1
    - Dst: addUDataTest
      Src: /src/icu/source/test/cintltst/calltest.c:51,1
    - Dst: addUTF16Test
      Src: /src/icu/source/test/cintltst/calltest.c:53,1
    - Dst: addUTraceTest
      Src: /src/icu/source/test/cintltst/calltest.c:56,1
    - Dst: addStandardNamesTest
      Src: /src/icu/source/test/cintltst/calltest.c:60,1
    - Dst: addUSetTest
      Src: /src/icu/source/test/cintltst/calltest.c:64,1
    - Dst: addFormatTest
      Src: /src/icu/source/test/cintltst/calltest.c:76,1
    - Dst: addPUtilTest
      Src: /src/icu/source/test/cintltst/calltest.c:87,1
    - Dst: addHeapMutexTest
      Src: /src/icu/source/test/cintltst/calltest.c:52,1
    - Dst: addUTextTest
      Src: /src/icu/source/test/cintltst/calltest.c:57,1
    - Dst: addURegexTest
      Src: /src/icu/source/test/cintltst/calltest.c:70,1
    - Dst: addBreakIter
      Src: /src/icu/source/test/cintltst/calltest.c:73,1
    - Dst: addUCsdetTest
      Src: /src/icu/source/test/cintltst/calltest.c:61,1
    - Dst: addCnvSelTest
      Src: /src/icu/source/test/cintltst/calltest.c:50,1
    - Dst: addUTF8Test
      Src: /src/icu/source/test/cintltst/calltest.c:54,1
    - Dst: addConvert
      Src: /src/icu/source/test/cintltst/calltest.c:58,1
    - Dst: addComplexTest
      Src: /src/icu/source/test/cintltst/calltest.c:62,1
    - Dst: addUTransTest
      Src: /src/icu/source/test/cintltst/calltest.c:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 91
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 91
    functionName: addAllTests
    functionSourceFile: /src/icu/source/test/cintltst/calltest.c
    functionUses: []
    functionsReached:
    - addUTF8Test
    - addURegexTest
    - addUTraceTest
    - addUSetTest
    - addHeapMutexTest
    - addUTF16Test
    - addIDNATest
    - addUTransTest
    - addFormatTest
    - addUtility
    - addStandardNamesTest
    - addComplexTest
    - addUCsdetTest
    - addPUtilTest
    - addBreakIter
    - addGendInfoForTest
    - addBidiTransformTest
    - addConvert
    - addUTextTest
    - addCnvSelTest
    - addUDataTest
    - addUCharTransformTest
    - addCollTest
    - addUStringPrepTest
    - addUSpoofTest
    linkageType: ''
    returnType: void
    signature: 'void addAllTests(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:34,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: addUFormattedValueTest
    functionSourceFile: /src/icu/source/test/cintltst/uformattedvaluetst.c
    functionUses: []
    functionsReached:
    - TESTCASE
    linkageType: ''
    returnType: void
    signature: 'void addUFormattedValueTest(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ucfpos_open
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:41,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:43,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:42,1
    - Dst: AssertAllPartsEqual
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:45,1
    - Dst: ucfpos_close
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 56
    functionName: TestBasic
    functionSourceFile: /src/icu/source/test/cintltst/uformattedvaluetst.c
    functionUses: []
    functionsReached:
    - assertTrue
    - assertSuccess
    - AssertAllPartsEqual
    - ucfpos_close
    - ucfpos_open
    linkageType: ''
    returnType: void
    signature: 'static void TestBasic() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ufmtval_getString
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:195,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:197,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:202,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:196,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:200,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:203,1
    - Dst: assertUEquals
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:204,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 4
    argNames:
    - message
    - fv
    - expectedString
    - ec
    argTypes:
    - char*
    - UFormattedValue*
    - UChar*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 205
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 205
    functionName: checkFormattedValueString
    functionSourceFile: /src/icu/source/test/cintltst/uformattedvaluetst.c
    functionUses: []
    functionsReached:
    - assertIntEquals
    - assertUEquals
    - U_FAILURE
    - assertSuccess
    - ufmtval_getString
    - u_strlen
    linkageType: ''
    returnType: void
    signature: 'static void checkFormattedValueString( const char* message, const
      UFormattedValue* fv, const UChar* expectedString, UErrorCode* ec) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ucfpos_constrainField
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:76,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:77,1
    - Dst: AssertAllPartsEqual
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:78,1
    - Dst: ucfpos_close
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:124,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:61,1
    - Dst: ucfpos_setInt64IterationContext
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:88,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:89,1
    - Dst: AssertAllPartsEqual
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:90,1
    - Dst: ucfpos_reset
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:112,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:113,1
    - Dst: AssertAllPartsEqual
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:114,1
    - Dst: ucfpos_open
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:60,1
    - Dst: ucfpos_constrainCategory
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:64,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:62,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:65,1
    - Dst: AssertAllPartsEqual
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:66,1
    - Dst: ucfpos_setState
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:100,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:101,1
    - Dst: AssertAllPartsEqual
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 125
    functionName: TestSetters
    functionSourceFile: /src/icu/source/test/cintltst/uformattedvaluetst.c
    functionUses: []
    functionsReached:
    - assertTrue
    - assertSuccess
    - AssertAllPartsEqual
    - ucfpos_reset
    - ucfpos_close
    - ucfpos_setState
    - ucfpos_constrainCategory
    - ucfpos_setInt64IterationContext
    - ucfpos_open
    - ucfpos_constrainField
    linkageType: ''
    returnType: void
    signature: 'void TestSetters() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: checkFormattedValueString
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:249,1
    - Dst: ucfpos_open
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:253,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:250,1
    - Dst: ufmtval_nextPosition
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:255,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:256,1
    - Dst: ucfpos_getCategory
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:257,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:258,1
    - Dst: ucfpos_getField
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:259,1
    - Dst: ucfpos_getIndexes
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:261,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:262,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:268,1
    - Dst: ucfpos_close
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:270,1
    - Dst: ufmtval_nextPosition
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:268,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:264,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:269,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 5
    argNames:
    - message
    - fv
    - expectedString
    - expectedFieldPositions
    - length
    argTypes:
    - char*
    - UFormattedValue*
    - UChar*
    - UFieldPositionWithCategory*
    - int32_t
    constantsTouched: []
    func_position:
      end: 271
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 271
    functionName: checkMixedFormattedValue
    functionSourceFile: /src/icu/source/test/cintltst/uformattedvaluetst.c
    functionUses: []
    functionsReached:
    - assertIntEquals
    - assertTrue
    - ucfpos_getCategory
    - ucfpos_getField
    - checkFormattedValueString
    - U_FAILURE
    - ufmtval_nextPosition
    - ucfpos_getIndexes
    - assertSuccess
    - ucfpos_close
    - ucfpos_open
    linkageType: ''
    returnType: void
    signature: 'void checkMixedFormattedValue( const char* message, const UFormattedValue*
      fv, const UChar* expectedString, const UFieldPositionWithCategory* expectedFieldPositions,
      int32_t length) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AAPE_MSG
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:155,1
    - Dst: ucfpos_getInt64IterationContext
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:168,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:174,1
    - Dst: uprv_strncpy
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:146,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:147,1
    - Dst: ucfpos_getField
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:158,1
    - Dst: ucfpos_getIndexes
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:163,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:169,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:170,1
    - Dst: AAPE_MSG
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:170,1
    - Dst: ucfpos_matchesField
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:172,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:178,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:179,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:184,1
    - Dst: AAPE_MSG
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:174,1
    - Dst: AAPE_MSG
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:178,1
    - Dst: ucfpos_getCategory
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:154,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:159,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:160,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:164,1
    - Dst: AAPE_MSG
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:165,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:166,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:165,1
    - Dst: AAPE_MSG
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:160,1
    - Dst: AAPE_MSG
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:166,1
    - Dst: AAPE_MSG
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:169,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:173,1
    - Dst: ucfpos_matchesField
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:177,1
    - Dst: U_ASSERT
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:150,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:155,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:156,1
    - Dst: AAPE_MSG
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:156,1
    - Dst: AAPE_MSG
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:159,1
    - Dst: AAPE_MSG
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:164,1
    - Dst: AAPE_MSG
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:173,1
    - Dst: AAPE_MSG
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:183,1
    - Dst: ucfpos_matchesField
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:182,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:183,1
    - Dst: AAPE_MSG
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:184,1
    - Dst: AAPE_MSG
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 53
    argCount: 8
    argNames:
    - messagePrefix
    - ucfpos
    - matching
    - category
    - field
    - start
    - limit
    - context
    argTypes:
    - char*
    - UConstrainedFieldPosition*
    - int32_t
    - UFieldCategory
    - int32_t
    - int32_t
    - int32_t
    - int64_t
    constantsTouched: []
    func_position:
      end: 186
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 186
    functionName: AssertAllPartsEqual
    functionSourceFile: /src/icu/source/test/cintltst/uformattedvaluetst.c
    functionUses: []
    functionsReached:
    - assertIntEquals
    - U_ASSERT
    - ucfpos_getCategory
    - assertTrue
    - ucfpos_getField
    - AAPE_MSG
    - ucfpos_matchesField
    - uprv_strlen
    - assertSuccess
    - ucfpos_getIndexes
    - ucfpos_getInt64IterationContext
    - uprv_strncpy
    linkageType: ''
    returnType: void
    signature: 'static void AssertAllPartsEqual( const char* messagePrefix, const
      UConstrainedFieldPosition* ucfpos, int32_t matching, UFieldCategory category,
      int32_t field, int32_t start, int32_t limit, int64_t context) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: checkFormattedValueString
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:217,1
    - Dst: ufmtval_nextPosition
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:223,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:224,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:218,1
    - Dst: ucfpos_open
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:221,1
    - Dst: ucfpos_getCategory
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:225,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:226,1
    - Dst: ucfpos_getField
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:227,1
    - Dst: ucfpos_getIndexes
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:229,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:230,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:236,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:237,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:232,1
    - Dst: ucfpos_close
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:238,1
    - Dst: ufmtval_nextPosition
      Src: /src/icu/source/test/cintltst/uformattedvaluetst.c:236,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 6
    argNames:
    - message
    - fv
    - expectedString
    - expectedCategory
    - expectedFieldPositions
    - expectedFieldPositionsLength
    argTypes:
    - char*
    - UFormattedValue*
    - UChar*
    - UFieldCategory
    - UFieldPosition*
    - int32_t
    constantsTouched: []
    func_position:
      end: 239
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 239
    functionName: checkFormattedValue
    functionSourceFile: /src/icu/source/test/cintltst/uformattedvaluetst.c
    functionUses: []
    functionsReached:
    - assertIntEquals
    - assertTrue
    - ucfpos_getCategory
    - ucfpos_getField
    - checkFormattedValueString
    - U_FAILURE
    - ufmtval_nextPosition
    - ucfpos_getIndexes
    - assertSuccess
    - ucfpos_close
    - ucfpos_open
    linkageType: ''
    returnType: void
    signature: 'void checkFormattedValue( const char* message, const UFormattedValue*
      fv, const UChar* expectedString, UFieldCategory expectedCategory, const UFieldPosition*
      expectedFieldPositions, int32_t expectedFieldPositionsLength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_compareChars
      Src: /src/icu/source/test/cintltst/chashtst.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: _compareChars
    functionSourceFile: /src/icu/source/test/cintltst/chashtst.c
    functionUses: []
    functionsReached:
    - uhash_compareChars
    linkageType: ''
    returnType: UBool
    signature: 'static UBool _compareChars(const void* a, const void* b) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_compareUChars
      Src: /src/icu/source/test/cintltst/chashtst.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: _compareUChars
    functionSourceFile: /src/icu/source/test/cintltst/chashtst.c
    functionUses: []
    functionsReached:
    - uhash_compareUChars
    linkageType: ''
    returnType: UBool
    signature: 'static UBool _compareUChars(const void* a, const void* b) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/chashtst.c:88,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/chashtst.c:89,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/chashtst.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: addHashtableTest
    functionSourceFile: /src/icu/source/test/cintltst/chashtst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addHashtableTest(TestNode** root) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: uhash_open
      Src: /src/icu/source/test/cintltst/chashtst.c:167,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:184,1
    - Dst: uhash_puti
      Src: /src/icu/source/test/cintltst/chashtst.c:189,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:255,1
    - Dst: uhash_put
      Src: /src/icu/source/test/cintltst/chashtst.c:210,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:271,1
    - Dst: uhash_removeAll
      Src: /src/icu/source/test/cintltst/chashtst.c:233,1
    - Dst: uhash_setResizePolicy
      Src: /src/icu/source/test/cintltst/chashtst.c:250,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:169,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:222,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:267,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:180,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:206,1
    - Dst: _compareLong
      Src: /src/icu/source/test/cintltst/chashtst.c:244,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:277,1
    - Dst: uhash_close
      Src: /src/icu/source/test/cintltst/chashtst.c:280,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:235,1
    - Dst: uhash_iputi
      Src: /src/icu/source/test/cintltst/chashtst.c:253,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/chashtst.c:170,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:212,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:268,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:230,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:277,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:181,1
    - Dst: uhash_puti
      Src: /src/icu/source/test/cintltst/chashtst.c:188,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:192,1
    - Dst: uhash_geti
      Src: /src/icu/source/test/cintltst/chashtst.c:195,1
    - Dst: uhash_setKeyHasher
      Src: /src/icu/source/test/cintltst/chashtst.c:239,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:207,1
    - Dst: _compareUChars
      Src: /src/icu/source/test/cintltst/chashtst.c:227,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:274,1
    - Dst: uhash_iputi
      Src: /src/icu/source/test/cintltst/chashtst.c:242,1
    - Dst: uhash_removeAll
      Src: /src/icu/source/test/cintltst/chashtst.c:264,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:200,1
    - Dst: uhash_removei
      Src: /src/icu/source/test/cintltst/chashtst.c:203,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:216,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:261,1
    - Dst: uhash_iremovei
      Src: /src/icu/source/test/cintltst/chashtst.c:257,1
    - Dst: uhash_iputi
      Src: /src/icu/source/test/cintltst/chashtst.c:252,1
    - Dst: uhash_iput
      Src: /src/icu/source/test/cintltst/chashtst.c:266,1
    - Dst: uhash_puti
      Src: /src/icu/source/test/cintltst/chashtst.c:187,1
    - Dst: uhash_puti
      Src: /src/icu/source/test/cintltst/chashtst.c:221,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:234,1
    - Dst: uhash_puti
      Src: /src/icu/source/test/cintltst/chashtst.c:179,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:255,1
    - Dst: _compareLong
      Src: /src/icu/source/test/cintltst/chashtst.c:245,1
    - Dst: uhash_puti
      Src: /src/icu/source/test/cintltst/chashtst.c:186,1
    - Dst: uhash_iputi
      Src: /src/icu/source/test/cintltst/chashtst.c:241,1
    - Dst: uhash_iput
      Src: /src/icu/source/test/cintltst/chashtst.c:265,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/chashtst.c:177,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:223,1
    - Dst: uhash_iremove
      Src: /src/icu/source/test/cintltst/chashtst.c:270,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:276,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:268,1
    - Dst: _compareLong
      Src: /src/icu/source/test/cintltst/chashtst.c:243,1
    - Dst: uhash_puti
      Src: /src/icu/source/test/cintltst/chashtst.c:215,1
    - Dst: _compareUChars
      Src: /src/icu/source/test/cintltst/chashtst.c:226,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:235,1
    - Dst: uhash_iputi
      Src: /src/icu/source/test/cintltst/chashtst.c:251,1
    - Dst: uhash_iputi
      Src: /src/icu/source/test/cintltst/chashtst.c:240,1
    - Dst: _compareUChars
      Src: /src/icu/source/test/cintltst/chashtst.c:228,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/chashtst.c:168,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:174,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:181,1
    - Dst: uhash_find
      Src: /src/icu/source/test/cintltst/chashtst.c:183,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:191,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:207,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:211,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:196,1
    - Dst: uhash_find
      Src: /src/icu/source/test/cintltst/chashtst.c:199,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:246,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:192,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:204,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:217,1
    - Dst: uhash_iremovei
      Src: /src/icu/source/test/cintltst/chashtst.c:260,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:258,1
    - Dst: _compareUChars
      Src: /src/icu/source/test/cintltst/chashtst.c:229,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:254,1
    - Dst: uhash_setKeyComparator
      Src: /src/icu/source/test/cintltst/chashtst.c:238,1
    - Dst: uhash_iremove
      Src: /src/icu/source/test/cintltst/chashtst.c:273,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 137
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 282
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 282
    functionName: TestOtherAPI
    functionSourceFile: /src/icu/source/test/cintltst/chashtst.c
    functionUses: []
    functionsReached:
    - uhash_puti
    - _compareLong
    - uhash_find
    - u_errorName
    - uhash_setKeyComparator
    - uhash_close
    - U_FAILURE
    - uhash_count
    - log_verbose
    - _compareUChars
    - uhash_setResizePolicy
    - uhash_iput
    - uhash_removeAll
    - uhash_iremove
    - uhash_iputi
    - uhash_iremovei
    - uhash_removei
    - log_err
    - uhash_geti
    - uhash_put
    - uhash_setKeyHasher
    - uhash_open
    linkageType: ''
    returnType: void
    signature: 'static void TestOtherAPI(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uhash_puti
      Src: /src/icu/source/test/cintltst/chashtst.c:343,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/chashtst.c:344,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/chashtst.c:346,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:348,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:345,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/chashtst.c:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - hash
    - key
    - value
    - expectedOldValue
    argTypes:
    - UHashtable*
    - char*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 354
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 354
    functionName: _put
    functionSourceFile: /src/icu/source/test/cintltst/chashtst.c
    functionUses: []
    functionsReached:
    - uhash_puti
    - U_FAILURE
    - log_verbose
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void _put(UHashtable* hash, const char* key, int32_t value,
      int32_t expectedOldValue) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_compareLong
      Src: /src/icu/source/test/cintltst/chashtst.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: _compareLong
    functionSourceFile: /src/icu/source/test/cintltst/chashtst.c
    functionUses: []
    functionsReached:
    - uhash_compareLong
    linkageType: ''
    returnType: UBool
    signature: 'static UBool _compareLong(int32_t a, int32_t b) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_compareIChars
      Src: /src/icu/source/test/cintltst/chashtst.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: _compareIChars
    functionSourceFile: /src/icu/source/test/cintltst/chashtst.c
    functionUses: []
    functionsReached:
    - uhash_compareIChars
    linkageType: ''
    returnType: UBool
    signature: 'static UBool _compareIChars(const void* a, const void* b) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uhash_open
      Src: /src/icu/source/test/cintltst/chashtst.c:291,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:293,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/chashtst.c:292,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:298,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/chashtst.c:294,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/chashtst.c:301,1
    - Dst: _put
      Src: /src/icu/source/test/cintltst/chashtst.c:303,1
    - Dst: _put
      Src: /src/icu/source/test/cintltst/chashtst.c:304,1
    - Dst: _put
      Src: /src/icu/source/test/cintltst/chashtst.c:305,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:306,1
    - Dst: uhash_count
      Src: /src/icu/source/test/cintltst/chashtst.c:307,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:307,1
    - Dst: _remove
      Src: /src/icu/source/test/cintltst/chashtst.c:309,1
    - Dst: uhash_close
      Src: /src/icu/source/test/cintltst/chashtst.c:311,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 312
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 312
    functionName: hashIChars
    functionSourceFile: /src/icu/source/test/cintltst/chashtst.c
    functionUses: []
    functionsReached:
    - uhash_close
    - U_FAILURE
    - uhash_open
    - uhash_count
    - _put
    - _remove
    - log_verbose
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void hashIChars(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - UHashTok
    constantsTouched: []
    func_position:
      end: 325
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 325
    functionName: hashChars
    functionSourceFile: /src/icu/source/test/cintltst/chashtst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_CALLCONV
    signature: 'U_CALLCONV hashChars(const UHashTok key) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/chashtst.c:330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - UHashTok
    - UHashTok
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: isEqualChars
    functionSourceFile: /src/icu/source/test/cintltst/chashtst.c
    functionUses: []
    functionsReached:
    - uprv_strcmp
    linkageType: ''
    returnType: U_CALLCONV
    signature: 'U_CALLCONV isEqualChars(const UHashTok key1, const UHashTok key2) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uhash_geti
      Src: /src/icu/source/test/cintltst/chashtst.c:360,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:365,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/chashtst.c:363,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:362,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/chashtst.c:361,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/chashtst.c:368,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - hash
    - key
    - expectedValue
    argTypes:
    - UHashtable*
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 371
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 371
    functionName: _get
    functionSourceFile: /src/icu/source/test/cintltst/chashtst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_verbose
    - log_err
    - uhash_geti
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void _get(UHashtable* hash, const char* key, int32_t expectedValue) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uhash_removei
      Src: /src/icu/source/test/cintltst/chashtst.c:376,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:378,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/chashtst.c:381,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - hash
    - key
    - expectedValue
    argTypes:
    - UHashtable*
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 384
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 384
    functionName: _remove
    functionSourceFile: /src/icu/source/test/cintltst/chashtst.c
    functionUses: []
    functionsReached:
    - log_verbose
    - uhash_removei
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void _remove(UHashtable* hash, const char* key, int32_t expectedValue) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: uhash_open
      Src: /src/icu/source/test/cintltst/chashtst.c:107,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/chashtst.c:108,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/chashtst.c:110,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:114,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/chashtst.c:117,1
    - Dst: _put
      Src: /src/icu/source/test/cintltst/chashtst.c:122,1
    - Dst: _compareChars
      Src: /src/icu/source/test/cintltst/chashtst.c:135,1
    - Dst: _compareIChars
      Src: /src/icu/source/test/cintltst/chashtst.c:141,1
    - Dst: _compareIChars
      Src: /src/icu/source/test/cintltst/chashtst.c:142,1
    - Dst: _compareIChars
      Src: /src/icu/source/test/cintltst/chashtst.c:144,1
    - Dst: _put
      Src: /src/icu/source/test/cintltst/chashtst.c:121,1
    - Dst: _put
      Src: /src/icu/source/test/cintltst/chashtst.c:131,1
    - Dst: _get
      Src: /src/icu/source/test/cintltst/chashtst.c:132,1
    - Dst: _get
      Src: /src/icu/source/test/cintltst/chashtst.c:133,1
    - Dst: _compareChars
      Src: /src/icu/source/test/cintltst/chashtst.c:137,1
    - Dst: _compareIChars
      Src: /src/icu/source/test/cintltst/chashtst.c:143,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:145,1
    - Dst: uhash_close
      Src: /src/icu/source/test/cintltst/chashtst.c:148,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:109,1
    - Dst: _put
      Src: /src/icu/source/test/cintltst/chashtst.c:120,1
    - Dst: _remove
      Src: /src/icu/source/test/cintltst/chashtst.c:128,1
    - Dst: _get
      Src: /src/icu/source/test/cintltst/chashtst.c:129,1
    - Dst: _get
      Src: /src/icu/source/test/cintltst/chashtst.c:130,1
    - Dst: _get
      Src: /src/icu/source/test/cintltst/chashtst.c:127,1
    - Dst: _put
      Src: /src/icu/source/test/cintltst/chashtst.c:124,1
    - Dst: _put
      Src: /src/icu/source/test/cintltst/chashtst.c:126,1
    - Dst: _compareChars
      Src: /src/icu/source/test/cintltst/chashtst.c:136,1
    - Dst: _compareChars
      Src: /src/icu/source/test/cintltst/chashtst.c:138,1
    - Dst: _put
      Src: /src/icu/source/test/cintltst/chashtst.c:119,1
    - Dst: _put
      Src: /src/icu/source/test/cintltst/chashtst.c:125,1
    - Dst: _put
      Src: /src/icu/source/test/cintltst/chashtst.c:123,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/chashtst.c:139,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 150
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 150
    functionName: TestBasic
    functionSourceFile: /src/icu/source/test/cintltst/chashtst.c
    functionUses: []
    functionsReached:
    - uhash_close
    - _compareChars
    - _compareIChars
    - U_FAILURE
    - uhash_open
    - _put
    - _remove
    - log_verbose
    - log_err
    - _get
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestBasic(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:39,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: addCnvSelTest
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addCnvSelTest(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - pCount
    argTypes:
    - int32_t*
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: getNoEncodings
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char**
    signature: 'static const char **getNoEncodings(int32_t *pCount) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getEncodings
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - pCount
    argTypes:
    - int32_t*
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: getMiddleEncodings
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - getEncodings
    linkageType: ''
    returnType: char**
    signature: 'static const char **getMiddleEncodings(int32_t *pCount) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uprv_malloc
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:328,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:335,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:334,1
    - Dst: findIndex
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:336,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:340,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:345,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:346,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - res
    - resultsManually
    argTypes:
    - UEnumeration*
    - UBool*
    constantsTouched: []
    func_position:
      end: 347
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 347
    functionName: verifyResult
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - uprv_malloc
    - uenum_next
    - uprv_free
    - findIndex
    - log_err
    - uenum_close
    - uprv_memset
    linkageType: ''
    returnType: void
    signature: 'static void verifyResult(UEnumeration* res, const UBool *resultsManually) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getEncodings
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - pCount
    argTypes:
    - int32_t*
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: getLastEncodings
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - getEncodings
    linkageType: ''
    returnType: char**
    signature: 'static const char **getLastEncodings(int32_t *pCount) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ctest_dataSrcDir
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:167,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:170,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:168,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:168,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:168,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:175,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:176,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:177,1
    - Dst: fopen
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:179,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 185
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 185
    functionName: fopenOrError
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - fopen
    - uprv_strlen
    - strcpy
    - log_data_err
    - log_err
    - ctest_dataSrcDir
    - strcat
    linkageType: ''
    returnType: FILE*
    signature: 'static FILE *fopenOrError(const char *filename) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uprv_malloc
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:278,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:290,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:279,1
    - Dst: uset_openEmpty
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:289,1
    - Dst: ucnv_getUnicodeSet
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:291,1
    - Dst: uset_addAll
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:294,1
    - Dst: uset_freeze
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:296,1
    - Dst: findIndex
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:300,1
    - Dst: U8_NEXT
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:314,1
    - Dst: uset_contains
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:315,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:320,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:321,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 6
    argNames:
    - encodings
    - num_encodings
    - utf8
    - length
    - excludedCodePoints
    - whichSet
    argTypes:
    - char**
    - int32_t
    - char*
    - int32_t
    - USet*
    - UConverterUnicodeSet
    constantsTouched: []
    func_position:
      end: 324
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 324
    functionName: getResultsManually
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - uprv_malloc
    - ucnv_getUnicodeSet
    - uset_openEmpty
    - ucnv_close
    - uset_addAll
    - ucnv_open
    - findIndex
    - U8_NEXT
    - uset_contains
    - uset_close
    - uset_freeze
    - uprv_memset
    linkageType: ''
    returnType: UBool*
    signature: 'static UBool *getResultsManually(const char** encodings, int32_t num_encodings,
      const char *utf8, int32_t length, const USet* excludedCodePoints, const UConverterUnicodeSet
      whichSet) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getEncodings
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - pCount
    argTypes:
    - int32_t*
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: getAllEncodings
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - getEncodings
    linkageType: ''
    returnType: char**
    signature: 'static const char **getAllEncodings(int32_t *pCount) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucnvsel_serialize
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:354,1
    - Dst: ucnvsel_serialize
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:361,1
    - Dst: uprv_malloc
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:359,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:356,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:356,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:362,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:363,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:363,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:364,1
    - Dst: ucnvsel_close
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:367,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:372,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:368,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:372,1
    - Dst: ucnvsel_openFromSerialized
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:370,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:371,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - sel
    - buffer
    - status
    argTypes:
    - UConverterSelector*
    - char**
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 376
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 376
    functionName: serializeAndUnserialize
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - uprv_malloc
    - ucnvsel_openFromSerialized
    - U_FAILURE
    - ucnvsel_serialize
    - uprv_free
    - ucnvsel_close
    - log_err
    - u_errorName
    linkageType: ''
    returnType: UConverterSelector*
    signature: 'static UConverterSelector *serializeAndUnserialize(UConverterSelector
      *sel, char **buffer, UErrorCode *status) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: upvec_open
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:510,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:518,1
    - Dst: upvec_open
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:516,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:512,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:517,1
    - Dst: upvec_open
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:522,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:523,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:524,1
    - Dst: upvec_getValue
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:528,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:529,1
    - Dst: upvec_getArray
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:534,1
    - Dst: upvec_close
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:538,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:535,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:532,1
    - Dst: upvec_getRow
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:531,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 539
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 539
    functionName: TestUPropsVector
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - upvec_close
    - U_SUCCESS
    - upvec_getArray
    - log_err
    - upvec_getValue
    - upvec_open
    - upvec_getRow
    linkageType: ''
    returnType: void
    signature: 'static void TestUPropsVector() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: uprv_malloc
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:85,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:87,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 4
    argNames:
    - start
    - step
    - count
    - pCount
    argTypes:
    - int32_t
    - int32_t
    - int32_t
    - int32_t*
    constantsTouched: []
    func_position:
      end: 101
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 101
    functionName: getEncodings
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - uprv_malloc
    - log_err
    linkageType: ''
    returnType: char**
    signature: 'static const char **getEncodings(int32_t start, int32_t step, int32_t
      count, int32_t *pCount) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getEncodings
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - pCount
    argTypes:
    - int32_t*
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: getOneEncoding
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - getEncodings
    linkageType: ''
    returnType: char**
    signature: 'static const char **getOneEncoding(int32_t *pCount) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getEncodings
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - pCount
    argTypes:
    - int32_t*
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: getSomeEncodings
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - getEncodings
    linkageType: ''
    returnType: char**
    signature: 'static const char **getSomeEncodings(int32_t *pCount) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strchr
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:219,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - tt
    - pLength
    argTypes:
    - TestText*
    - int32_t*
    constantsTouched: []
    func_position:
      end: 222
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 222
    functionName: text_nextString
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - uprv_strchr
    linkageType: ''
    returnType: char*
    signature: 'static char *text_nextString(TestText *tt, int32_t *pLength) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: text_open
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:387,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:414,1
    - Dst: ucnvsel_open
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:424,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:438,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:438,1
    - Dst: verifyResult
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:469,1
    - Dst: ucnvsel_selectForUTF8
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:469,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:472,1
    - Dst: ucnvsel_selectForUTF8
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:470,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:473,1
    - Dst: verifyResult
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:486,1
    - Dst: ucnvsel_selectForString
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:486,1
    - Dst: getResultsManually
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:460,1
    - Dst: serializeAndUnserialize
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:478,1
    - Dst: text_close
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:501,1
    - Dst: getAvailableNames
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:384,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:402,1
    - Dst: text_nextString
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:451,1
    - Dst: verifyResult
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:467,1
    - Dst: ucnvsel_selectForUTF8
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:467,1
    - Dst: verifyResult
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:483,1
    - Dst: ucnvsel_selectForString
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:483,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:490,1
    - Dst: u_strFromUTF8
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:472,1
    - Dst: ucnvsel_close
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:493,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:497,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:491,1
    - Dst: releaseAvailableNames
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:388,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:396,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:401,1
    - Dst: uset_isEmpty
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:427,1
    - Dst: ucnvsel_open
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:429,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:437,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:480,1
    - Dst: verifyResult
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:482,1
    - Dst: verifyResult
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:466,1
    - Dst: ucnvsel_selectForString
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:482,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:503,1
    - Dst: releaseAvailableNames
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:500,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:474,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:475,1
    - Dst: ucnvsel_close
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:494,1
    - Dst: uset_openEmpty
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:391,1
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:393,1
    - Dst: ucnvsel_open
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:433,1
    - Dst: ucnvsel_open
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:419,1
    - Dst: ucnvsel_close
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:439,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:440,1
    - Dst: text_reset
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:444,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:452,1
    - Dst: getResultsManually
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:456,1
    - Dst: ucnvsel_selectForUTF8
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:466,1
    - Dst: verifyResult
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:485,1
    - Dst: ucnvsel_selectForString
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:485,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:495,1
    - Dst: verifyResult
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:470,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 107
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 505
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 505
    functionName: TestSelector
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - ucnvsel_selectForString
    - getAvailableNames
    - text_nextString
    - uprv_free
    - ucnvsel_open
    - text_reset
    - U_SUCCESS
    - uset_open
    - u_errorName
    - uset_isEmpty
    - serializeAndUnserialize
    - U_FAILURE
    - ucnvsel_selectForUTF8
    - getResultsManually
    - ucnvsel_close
    - UPRV_LENGTHOF
    - text_open
    - u_strFromUTF8
    - releaseAvailableNames
    - getTestOption
    - uset_openEmpty
    - verifyResult
    - log_err
    - text_close
    - uset_close
    linkageType: ''
    returnType: void
    signature: 'static void TestSelector() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getEncodings
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - pCount
    argTypes:
    - int32_t*
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: getFirstEvenEncodings
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - getEncodings
    linkageType: ''
    returnType: char**
    signature: 'static const char **getFirstEvenEncodings(int32_t *pCount) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getEncodings
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - pCount
    argTypes:
    - int32_t*
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: getEveryThirdEncoding
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - getEncodings
    linkageType: ''
    returnType: char**
    signature: 'static const char **getEveryThirdEncoding(int32_t *pCount) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - tt
    argTypes:
    - TestText*
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: text_reset
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void text_reset(TestText *tt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:229,1
    - Dst: fopenOrError
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:230,1
    - Dst: fseek
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:234,1
    - Dst: fseek
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:236,1
    - Dst: ftell
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:235,1
    - Dst: uprv_malloc
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:237,1
    - Dst: fclose
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:239,1
    - Dst: fread
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:242,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:243,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:245,1
    - Dst: text_reset
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:252,1
    - Dst: uprv_strchr
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:251,1
    - Dst: fclose
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:247,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - tt
    argTypes:
    - TestText*
    constantsTouched: []
    func_position:
      end: 254
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 254
    functionName: text_open
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - uprv_malloc
    - fclose
    - uprv_strchr
    - fopenOrError
    - uprv_free
    - ftell
    - text_reset
    - fread
    - log_err
    - fseek
    - uprv_memset
    linkageType: ''
    returnType: UBool
    signature: 'static UBool text_open(TestText *tt) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_countAvailable
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:52,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:54,1
    - Dst: ucnv_getAvailableName
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:64,1
    - Dst: uprv_malloc
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:57,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 67
    functionName: getAvailableNames
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - ucnv_countAvailable
    - uprv_malloc
    - ucnv_getAvailableName
    - log_data_err
    - log_err
    linkageType: ''
    returnType: UBool
    signature: 'static UBool getAvailableNames() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: releaseAvailableNames
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - uprv_free
    linkageType: ''
    returnType: void
    signature: 'static void releaseAvailableNames() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - tt
    argTypes:
    - TestText*
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: text_close
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - uprv_free
    linkageType: ''
    returnType: void
    signature: 'static void text_close(TestText *tt) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_compareNames
      Src: /src/icu/source/test/cintltst/ucnvseltst.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - converterName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 269
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 269
    functionName: findIndex
    functionSourceFile: /src/icu/source/test/cintltst/ucnvseltst.c
    functionUses: []
    functionsReached:
    - ucnv_compareNames
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t findIndex(const char* converterName) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: UTRIE_GET16
      Src: /src/icu/source/test/cintltst/sprpdata.c:163,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/sprpdata.c:202,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/sprpdata.c:209,1
    - Dst: getValues
      Src: /src/icu/source/test/cintltst/sprpdata.c:164,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/sprpdata.c:169,1
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/sprpdata.c:212,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/sprpdata.c:213,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/sprpdata.c:216,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/sprpdata.c:222,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 75
    argCount: 5
    argNames:
    - data
    - codepoint
    - mapping
    - mapLength
    - type
    argTypes:
    - UStringPrepProfile*
    - uint32_t
    - uint32_t*
    - int32_t
    - UStringPrepType
    constantsTouched: []
    func_position:
      end: 226
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 226
    functionName: compareMapping
    functionSourceFile: /src/icu/source/test/cintltst/sprpdata.c
    functionUses: []
    functionsReached:
    - U16_TRAIL
    - getValues
    - UTRIE_GET16
    - log_err
    - U16_LEAD
    linkageType: ''
    returnType: void
    signature: 'static void compareMapping(UStringPrepProfile* data, uint32_t codepoint,
      uint32_t* mapping,int32_t mapLength, UStringPrepType type) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/sprpdata.c:98,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/sprpdata.c:107,1
    - Dst: u_parseDelimitedFile
      Src: /src/icu/source/test/cintltst/sprpdata.c:102,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/sprpdata.c:106,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/sprpdata.c:107,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 4
    argNames:
    - filename
    - data
    - reportError
    - pErrorCode
    argTypes:
    - char*
    - UStringPrepProfile*
    - UBool
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 109
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 109
    functionName: parseMappings
    functionSourceFile: /src/icu/source/test/cintltst/sprpdata.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_err
    - u_errorName
    - u_parseDelimitedFile
    linkageType: ''
    returnType: void
    signature: 'static void parseMappings(const char *filename, UStringPrepProfile*
      data, UBool reportError, UErrorCode *pErrorCode) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/sprpdata.c:63,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/sprpdata.c:70,1
    - Dst: u_parseCodePointRange
      Src: /src/icu/source/test/cintltst/sprpdata.c:72,1
    - Dst: u_parseCodePointRange
      Src: /src/icu/source/test/cintltst/sprpdata.c:65,1
    - Dst: compareFlagsForRange
      Src: /src/icu/source/test/cintltst/sprpdata.c:68,1
    - Dst: compareFlagsForRange
      Src: /src/icu/source/test/cintltst/sprpdata.c:75,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/sprpdata.c:77,1
    - Dst: uprv_strtoul
      Src: /src/icu/source/test/cintltst/sprpdata.c:79,1
    - Dst: u_parseCodePoints
      Src: /src/icu/source/test/cintltst/sprpdata.c:82,1
    - Dst: compareMapping
      Src: /src/icu/source/test/cintltst/sprpdata.c:85,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 4
    argNames:
    - context
    - fields
    - fieldCount
    - pErrorCode
    argTypes:
    - void*
    - char*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 90
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 90
    functionName: strprepProfileLineFn
    functionSourceFile: /src/icu/source/test/cintltst/sprpdata.c
    functionUses: []
    functionsReached:
    - compareFlagsForRange
    - uprv_strtoul
    - compareMapping
    - u_parseCodePoints
    - u_parseCodePointRange
    - strstr
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV strprepProfileLineFn(void *context, char *fields[][2],
      int32_t fieldCount, UErrorCode *pErrorCode) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UTRIE_GET16
      Src: /src/icu/source/test/cintltst/sprpdata.c:257,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/sprpdata.c:261,1
    - Dst: getValues
      Src: /src/icu/source/test/cintltst/sprpdata.c:258,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/sprpdata.c:265,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - data
    - start
    - end
    - type
    argTypes:
    - UStringPrepProfile*
    - uint32_t
    - uint32_t
    - UStringPrepType
    constantsTouched: []
    func_position:
      end: 272
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 272
    functionName: compareFlagsForRange
    functionSourceFile: /src/icu/source/test/cintltst/sprpdata.c
    functionUses: []
    functionsReached:
    - UTRIE_GET16
    - getValues
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void compareFlagsForRange(UStringPrepProfile* data, uint32_t
      start, uint32_t end, UStringPrepType type) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - result
    - value
    - isIndex
    argTypes:
    - uint32_t
    - int32_t*
    - UBool*
    constantsTouched: []
    func_position:
      end: 146
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 146
    functionName: getValues
    functionSourceFile: /src/icu/source/test/cintltst/sprpdata.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UStringPrepType
    signature: 'static UStringPrepType getValues(uint32_t result, int32_t* value,
      UBool* isIndex) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/sprpdata.c:277,1
    - Dst: usprep_open
      Src: /src/icu/source/test/cintltst/sprpdata.c:291,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/sprpdata.c:294,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/sprpdata.c:294,1
    - Dst: ctest_dataOutDir
      Src: /src/icu/source/test/cintltst/sprpdata.c:287,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/sprpdata.c:296,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/sprpdata.c:297,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/sprpdata.c:297,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/sprpdata.c:300,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/sprpdata.c:300,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/sprpdata.c:300,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/sprpdata.c:303,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/sprpdata.c:308,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/sprpdata.c:304,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/sprpdata.c:302,1
    - Dst: parseMappings
      Src: /src/icu/source/test/cintltst/sprpdata.c:306,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/sprpdata.c:300,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - binFileName
    - txtFileName
    - options
    - errorCode
    argTypes:
    - char*
    - char*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 309
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 309
    functionName: doStringPrepTest
    functionSourceFile: /src/icu/source/test/cintltst/sprpdata.c
    functionUses: []
    functionsReached:
    - malloc
    - usprep_open
    - U_FAILURE
    - parseMappings
    - loadTestData
    - log_data_err
    - strcpy
    - ctest_dataOutDir
    - free
    - log_err
    - strlen
    - u_errorName
    - strcat
    linkageType: ''
    returnType: void
    signature: 'void doStringPrepTest(const char* binFileName, const char* txtFileName,
      int32_t options, UErrorCode* errorCode) '
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:392,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:415,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:418,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:441,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:481,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:509,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:533,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:559,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:567,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:598,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:422,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:349,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:361,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:397,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:462,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:484,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:513,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:563,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:601,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:625,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:608,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:425,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:352,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:365,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:402,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:465,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:532,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:566,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:605,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:618,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:613,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:598,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:346,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:358,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:394,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:407,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:444,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:469,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:535,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:571,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:624,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:539,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:576,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:615,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:349,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:435,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:475,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:518,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:526,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:615,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:625,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:618,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:352,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:402,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:430,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:439,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:479,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:521,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:530,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:556,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:557,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:605,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:346,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:395,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:407,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:434,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:442,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:474,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:482,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:525,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:561,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:571,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:399,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:410,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:437,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:477,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:506,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:528,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:564,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:574,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:617,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:622,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:358,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:439,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:420,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:428,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:469,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:479,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:511,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:557,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:600,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:608,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:363,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:395,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:424,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:464,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:472,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:482,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:515,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:561,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:603,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:526,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:610,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:367,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:399,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:417,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:427,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:467,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:519,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:530,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:554,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:564,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:607,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:611,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:432,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:471,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:360,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:392,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:442,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:523,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:533,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:567,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:580,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:611,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:622,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:601,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:351,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:371,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:401,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:410,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:506,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:516,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:574,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:627,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:620,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:336,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:404,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:415,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:428,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:418,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:488,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:509,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:519,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:554,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:569,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:462,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:348,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:361,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:432,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:409,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:472,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:422,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:513,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:523,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:573,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:412,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:425,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:448,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:354,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:365,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:465,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:435,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:475,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:508,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:516,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 227
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 630
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 630
    functionName: TestErrorBehaviour
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - convertFromU
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestErrorBehaviour() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ncnvtst.c:673,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:675,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:675,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:674,1
    - Dst: ucnv_getNextUChar
      Src: /src/icu/source/test/cintltst/ncnvtst.c:678,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:680,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:680,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ncnvtst.c:682,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 683
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 683
    functionName: TestGetNextErrorBehaviour
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - ucnv_getNextUChar
    - myErrorName
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestGetNextErrorBehaviour() '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/icu/source/test/cintltst/ncnvtst.c:791,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:814,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:816,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:824,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ncnvtst.c:840,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:856,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:857,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ncnvtst.c:859,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ncnvtst.c:883,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:885,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ncnvtst.c:765,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ncnvtst.c:766,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:817,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:819,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ncnvtst.c:845,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:847,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ncnvtst.c:851,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:853,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/ncnvtst.c:856,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ncnvtst.c:872,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:889,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ncnvtst.c:891,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/ncnvtst.c:888,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:821,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:823,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:817,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ncnvtst.c:877,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:879,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:888,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:778,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:782,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:784,1
    - Dst: convertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:786,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:788,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ncnvtst.c:792,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:814,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:821,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:824,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:826,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 111
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 894
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 894
    functionName: TestRegressionUTF32
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - convertFromU
    - malloc
    - ucnv_close
    - ucnv_toUnicode
    - U_FAILURE
    - ucnv_open
    - free
    - U16_APPEND_UNSAFE
    - u_strncmp
    - log_err
    - convertToU
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestRegressionUTF32() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestWithBufferSize
      Src: /src/icu/source/test/cintltst/ncnvtst.c:915,1
    - Dst: TestWithBufferSize
      Src: /src/icu/source/test/cintltst/ncnvtst.c:917,1
    - Dst: TestWithBufferSize
      Src: /src/icu/source/test/cintltst/ncnvtst.c:918,1
    - Dst: TestWithBufferSize
      Src: /src/icu/source/test/cintltst/ncnvtst.c:916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 919
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 919
    functionName: TestFlushInternalBuffer
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - TestWithBufferSize
    linkageType: ''
    returnType: void
    signature: 'static void TestFlushInternalBuffer() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_countAvailable
      Src: /src/icu/source/test/cintltst/ncnvtst.c:901,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ncnvtst.c:903,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:905,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:904,1
    - Dst: ucnv_getAvailableName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:903,1
    - Dst: ucnv_getAvailableName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:906,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:906,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ncnvtst.c:909,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 912
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 912
    functionName: TestAvailableConverters
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_countAvailable
    - ucnv_getAvailableName
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - myErrorName
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestAvailableConverters() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ncnvtst.c:123,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ncnvtst.c:131,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ncnvtst.c:128,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ncnvtst.c:124,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ncnvtst.c:127,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ncnvtst.c:132,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ncnvtst.c:133,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ncnvtst.c:134,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ncnvtst.c:135,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ncnvtst.c:136,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ncnvtst.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 138
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 138
    functionName: addExtraTests
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addExtraTests(TestNode** root) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1784,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1785,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1791,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1792,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1804,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1812,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1826,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1827,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1831,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1789,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1805,1
    - Dst: ucnv_resetToUnicode
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1819,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1814,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1786,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1786,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1790,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1800,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1803,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1815,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1793,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1806,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1824,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 3
    argNames:
    - cnvName
    - bytes
    - length
    argTypes:
    - char*
    - uint8_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1832
      start: 1773
    functionDepth: 0
    functionLinenumber: 1773
    functionLinenumberEnd: 1832
    functionName: doTestTruncated
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - ucnv_toUnicode
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - ucnv_setToUCallBack
    - ucnv_resetToUnicode
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void doTestTruncated(const char *cnvName, const uint8_t *bytes,
      int32_t length) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:155,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:157,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:172,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:174,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:179,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:198,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:228,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:255,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:283,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:293,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:308,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:326,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:227,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:230,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:258,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:314,1
    - Dst: convertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:318,1
    - Dst: convertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:327,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:142,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:155,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:169,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:176,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:178,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:172,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:195,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:197,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:203,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:225,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:233,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:283,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:285,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:310,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:311,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:329,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:322,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:260,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:149,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:169,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:171,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:176,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:195,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:225,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:258,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:286,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:305,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:307,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:314,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:320,1
    - Dst: convertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:321,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:313,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:325,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:305,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:308,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:319,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:263,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:286,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:149,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:151,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:162,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:179,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:181,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:184,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:198,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:200,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:228,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:255,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:288,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:323,1
    - Dst: convertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:324,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:316,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:328,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:311,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:257,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 105
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 332
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 332
    functionName: TestSurrogateBehaviour
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - convertFromU
    - log_verbose
    - log_err
    - convertToU
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestSurrogateBehaviour() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ncnvtst.c:695,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ncnvtst.c:721,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ncnvtst.c:735,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:751,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ncnvtst.c:754,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:752,1
    - Dst: convertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:711,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:713,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ncnvtst.c:722,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:742,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ncnvtst.c:746,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:748,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ncnvtst.c:740,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/ncnvtst.c:751,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ncnvtst.c:694,1
    - Dst: U8_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:708,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:707,1
    - Dst: convertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:715,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:717,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 756
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 756
    functionName: TestRegressionUTF8
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - convertFromU
    - malloc
    - ucnv_close
    - ucnv_toUnicode
    - U_FAILURE
    - U8_APPEND_UNSAFE
    - ucnv_open
    - free
    - U16_APPEND_UNSAFE
    - u_strncmp
    - log_err
    - convertToU
    linkageType: ''
    returnType: void
    signature: 'static void TestRegressionUTF8() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1874,1
    - Dst: doTestTruncated
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1875,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 1834
    functionDepth: 0
    functionLinenumber: 1834
    functionLinenumberEnd: 1877
    functionName: TestTruncated
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - doTestTruncated
    linkageType: ''
    returnType: void
    signature: 'static void TestTruncated() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:926,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:944,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:938,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:938,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:940,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:954,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:954,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:957,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:961,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:968,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:970,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:969,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:986,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:985,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:974,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:988,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - insize
    - outsize
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 992
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 992
    functionName: TestWithBufferSize
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - log_verbose
    - log_err
    - testConvertToU
    - UPRV_LENGTHOF
    - testConvertFromU
    linkageType: ''
    returnType: void
    signature: 'static void TestWithBufferSize(int32_t insize, int32_t outsize) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/ncnvtst.c:113,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/ncnvtst.c:116,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/ncnvtst.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - len
    argTypes:
    - UChar*
    - int
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: printUSeqErr
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void printUSeqErr(const UChar* a, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:96,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:98,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - len
    argTypes:
    - UChar*
    - int
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: printUSeq
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - log_verbose
    linkageType: ''
    returnType: void
    signature: 'static void printUSeq(const UChar* a, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:87,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:89,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - len
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: printSeq
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - log_verbose
    linkageType: ''
    returnType: void
    signature: 'static void printSeq(const unsigned char* a, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/ncnvtst.c:105,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/ncnvtst.c:107,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/ncnvtst.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - len
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: printSeqErr
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void printSeqErr(const unsigned char* a, int len) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1951,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1952,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1958,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1972,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1973,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1969,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1982,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1983,1
    - Dst: uset_containsRange
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1984,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1988,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2041,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2051,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2006,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2012,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1999,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2057,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2005,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2021,1
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1943,1
    - Dst: uset_clear
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1956,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1962,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1965,1
    - Dst: ucnv_getUnicodeSet
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1980,1
    - Dst: uset_containsRange
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1984,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1993,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1996,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1998,1
    - Dst: ucnv_getUnicodeSet
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2004,1
    - Dst: uset_containsRange
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2008,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2009,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2020,1
    - Dst: ucnv_getUnicodeSet
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2028,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2036,1
    - Dst: ucnv_countAvailable
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1945,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1949,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1950,1
    - Dst: ucnv_getAvailableName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1948,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1960,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1974,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1959,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1975,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1981,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1985,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2031,1
    - Dst: uset_containsRange
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2033,1
    - Dst: ucnv_getUnicodeSet
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2049,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1997,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2060,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2051,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2030,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2045,1
    - Dst: ucnv_getUnicodeSet
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1957,1
    - Dst: uset_size
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1961,1
    - Dst: uset_clear
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1979,1
    - Dst: uset_clear
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2003,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2017,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2023,1
    - Dst: uset_clear
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2027,1
    - Dst: uset_containsRange
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2034,1
    - Dst: uset_complement
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2039,1
    - Dst: uset_containsRange
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2040,1
    - Dst: uset_containsRange
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2008,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2029,1
    - Dst: ucnv_getUnicodeSet
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2055,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2057,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2022,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:2007,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 133
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 1884
    functionDepth: 0
    functionLinenumber: 1884
    functionLinenumberEnd: 2061
    functionName: TestUnicodeSet
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_countAvailable
    - ucnv_getAvailableName
    - ucnv_getUnicodeSet
    - ucnv_close
    - uset_size
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - uset_complement
    - uset_clear
    - uset_open
    - log_err
    - uset_close
    - UPRV_LENGTHOF
    - uset_containsRange
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUnicodeSet() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:636,1
    - Dst: convertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:644,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:643,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:642,1
    - Dst: convertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:641,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:645,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:646,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:648,1
    - Dst: convertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:656,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:657,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:658,1
    - Dst: convertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:659,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:661,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:660,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 664
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 664
    functionName: TestToUnicodeErrorBehaviour
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - convertToU
    - UPRV_LENGTHOF
    - log_verbose
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestToUnicodeErrorBehaviour() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1009,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1012,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1015,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1010,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1027,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1049,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1046,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1041,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1072,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1015,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1037,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1067,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1068,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1069,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1035,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1054,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1055,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1053,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1047,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1057,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1062,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1070,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1073,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1037,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1037,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1048,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1056,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1058,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1066,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1075,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 69
    argCount: 8
    argNames:
    - source
    - sourceLen
    - expect
    - expectLen
    - codepage
    - expectOffsets
    - doFlush
    - expectedStatus
    argTypes:
    - UChar*
    - int
    - uint8_t*
    - int
    - char*
    - int32_t*
    - UBool
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 1080
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 1080
    functionName: convertFromU
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - log_info
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - printSeqErr
    - myErrorName
    - log_verbose
    - log_err
    - memcmp
    - ucnv_getName
    - ucnv_fromUnicode
    linkageType: ''
    returnType: UBool
    signature: 'static UBool convertFromU( const UChar *source, int sourceLen, const
      uint8_t *expect, int expectLen, const char *codepage, const int32_t *expectOffsets,
      UBool doFlush, UErrorCode expectedStatus) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1210,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1275,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1291,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1295,1
    - Dst: printSeq
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1296,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1302,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1304,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1311,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1313,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1320,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1343,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1323,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1292,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1336,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1213,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1215,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1212,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1222,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1223,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1253,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1259,1
    - Dst: ucnv_resetToUnicode
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1268,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1243,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1231,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1300,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1312,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1346,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1326,1
    - Dst: setNuConvTestName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1208,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1223,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1250,1
    - Dst: ucnv_resetToUnicode
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1270,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1244,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1281,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1299,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1321,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1333,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1334,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1291,1
    - Dst: printUSeqErr
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1342,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1344,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1292,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1345,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1310,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1219,1
    - Dst: ucnv_setFromUCallBack
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1221,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1272,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1275,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1309,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1322,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1324,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1327,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1329,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1341,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1274,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1314,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1279,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 138
    argCount: 8
    argNames:
    - source
    - sourceLen
    - expect
    - expectLen
    - codepage
    - callback
    - expectOffsets
    - testReset
    argTypes:
    - UChar*
    - int
    - uint8_t*
    - int
    - char*
    - UConverterFromUCallback
    - int32_t*
    - UBool
    constantsTouched: []
    func_position:
      end: 1350
      start: 1180
    functionDepth: 0
    functionLinenumber: 1180
    functionLinenumberEnd: 1350
    functionName: testConvertFromU
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - ucnv_open
    - ucnv_setFromUCallBack
    - U_SUCCESS
    - nct_min
    - ucnv_fromUnicode
    - log_info
    - U_FAILURE
    - log_data_err
    - log_verbose
    - memcmp
    - UPRV_LENGTHOF
    - getTestOption
    - printUSeqErr
    - log_err
    - sprintf
    - setNuConvTestName
    - ucnv_close
    - printSeqErr
    - printSeq
    - myErrorName
    - ucnv_resetToUnicode
    - strlen
    linkageType: ''
    returnType: UBool
    signature: 'static UBool testConvertFromU( const UChar *source, int sourceLen,
      const uint8_t *expect, int expectLen, const char *codepage, UConverterFromUCallback
      callback , const int32_t *expectOffsets, UBool testReset) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1553,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1581,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1629,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1680,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1726,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1544,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1558,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1634,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1685,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1762,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1676,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1550,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1626,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1743,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1758,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1754,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1539,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1593,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1548,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1624,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1675,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1748,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1763,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1722,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1538,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1551,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1627,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1682,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1759,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1751,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1546,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1584,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1755,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1589,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1719,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1766,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1539,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1551,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1579,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1627,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1723,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1743,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1555,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1631,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1756,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1717,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1749,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1548,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1579,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1624,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1678,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1720,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1752,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1745,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1752,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1541,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1582,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1760,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1587,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1673,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1731,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1746,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1761,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1765,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1637,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1720,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1536,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1562,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1679,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1724,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1749,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1746,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1632,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1524,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1543,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1556,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1582,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1673,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1757,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1536,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1586,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1676,1
    - Dst: testConvertFromU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1717,1
    - Dst: testConvertToU
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1764,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 118
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1770
      start: 1522
    functionDepth: 0
    functionLinenumber: 1522
    functionLinenumberEnd: 1770
    functionName: TestResetBehaviour
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - log_verbose
    - log_err
    - testConvertToU
    - UPRV_LENGTHOF
    - testConvertFromU
    linkageType: ''
    returnType: void
    signature: 'static void TestResetBehaviour(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/ncnvtst.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - codepage
    - direction
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: setNuConvTestName
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: void
    signature: 'static void setNuConvTestName(const char *codepage, const char *direction) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1100,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1101,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1103,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1106,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1134,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1134,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1155,1
    - Dst: printUSeqErr
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1167,1
    - Dst: printUSeqErr
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1169,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1106,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1123,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1137,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1143,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1151,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1152,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1157,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1168,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1173,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1134,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1154,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1161,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1132,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1149,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1148,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1146,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1158,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1160,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1164,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1165,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1166,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 8
    argNames:
    - source
    - sourceLen
    - expect
    - expectLen
    - codepage
    - expectOffsets
    - doFlush
    - expectedStatus
    argTypes:
    - uint8_t*
    - int
    - UChar*
    - int
    - char*
    - int32_t*
    - UBool
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 1177
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1177
    functionName: convertToU
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - log_info
    - ucnv_close
    - ucnv_toUnicode
    - printUSeqErr
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - myErrorName
    - log_verbose
    - log_err
    - memcmp
    - ucnv_getName
    linkageType: ''
    returnType: UBool
    signature: 'static UBool convertToU( const uint8_t *source, int sourceLen, const
      UChar *expect, int expectLen, const char *codepage, const int32_t *expectOffsets,
      UBool doFlush, UErrorCode expectedStatus) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1389,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1387,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1396,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1397,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1425,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1446,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1450,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1454,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1468,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1479,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1498,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1384,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1397,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1405,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1417,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1448,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1456,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1472,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1477,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1483,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1489,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1497,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1491,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1513,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1386,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1393,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1395,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1432,1
    - Dst: ucnv_resetFromUnicode
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1441,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1418,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1468,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1469,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1469,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1487,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1495,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1512,1
    - Dst: setNuConvTestName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1382,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1422,1
    - Dst: ucnv_resetToUnicode
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1443,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1450,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1476,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1494,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1515,1
    - Dst: printUSeq
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1516,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1481,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1500,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1511,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1504,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1492,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1506,1
    - Dst: printUSeq
      Src: /src/icu/source/test/cintltst/ncnvtst.c:1514,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 131
    argCount: 8
    argNames:
    - source
    - sourcelen
    - expect
    - expectlen
    - codepage
    - callback
    - expectOffsets
    - testReset
    argTypes:
    - uint8_t*
    - int
    - UChar*
    - int
    - char*
    - UConverterToUCallback
    - int32_t*
    - UBool
    constantsTouched: []
    func_position:
      end: 1519
      start: 1352
    functionDepth: 0
    functionLinenumber: 1352
    functionLinenumberEnd: 1519
    functionName: testConvertToU
    functionSourceFile: /src/icu/source/test/cintltst/ncnvtst.c
    functionUses: []
    functionsReached:
    - printUSeq
    - ucnv_open
    - U_SUCCESS
    - nct_min
    - ucnv_resetFromUnicode
    - log_info
    - U_FAILURE
    - log_data_err
    - log_verbose
    - memcmp
    - UPRV_LENGTHOF
    - getTestOption
    - ucnv_toUnicode
    - log_err
    - sprintf
    - setNuConvTestName
    - ucnv_close
    - ucnv_setToUCallBack
    - myErrorName
    - ucnv_resetToUnicode
    - strlen
    linkageType: ''
    returnType: UBool
    signature: 'static UBool testConvertToU( const uint8_t *source, int sourcelen,
      const UChar *expect, int expectlen, const char *codepage, UConverterToUCallback
      callback, const int32_t *expectOffsets, UBool testReset) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/nccbtst.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - codepage
    - direction
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: setNuConvTestName
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: void
    signature: 'static void setNuConvTestName(const char *codepage, const char *direction) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestStop
      Src: /src/icu/source/test/cintltst/nccbtst.c:115,1
    - Dst: TestStop
      Src: /src/icu/source/test/cintltst/nccbtst.c:118,1
    - Dst: TestStop
      Src: /src/icu/source/test/cintltst/nccbtst.c:117,1
    - Dst: TestStop
      Src: /src/icu/source/test/cintltst/nccbtst.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: TestStopCallBack
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - TestStop
    linkageType: ''
    returnType: void
    signature: 'static void TestStopCallBack() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nccbtst.c:92,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nccbtst.c:95,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nccbtst.c:94,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nccbtst.c:93,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nccbtst.c:98,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nccbtst.c:99,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/nccbtst.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 103
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 103
    functionName: addTestConvertErrorCallBack
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addTestConvertErrorCallBack(TestNode** root) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_cbFromUWriteBytes
      Src: /src/icu/source/test/cintltst/nccbtst.c:3370,1
    - Dst: ucnv_cbFromUWriteUChars
      Src: /src/icu/source/test/cintltst/nccbtst.c:3374,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3372,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3376,1
    - Dst: ucnv_cbFromUWriteSub
      Src: /src/icu/source/test/cintltst/nccbtst.c:3378,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3380,1
    - Dst: ucnv_cbToUWriteUChars
      Src: /src/icu/source/test/cintltst/nccbtst.c:3382,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3386
      start: 3368
    functionDepth: 0
    functionLinenumber: 3368
    functionLinenumberEnd: 3386
    functionName: TestCallBackFailure
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - ucnv_cbFromUWriteBytes
    - ucnv_cbFromUWriteSub
    - log_err
    - ucnv_cbToUWriteUChars
    - ucnv_cbFromUWriteUChars
    linkageType: ''
    returnType: void
    signature: 'static void TestCallBackFailure(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSub
      Src: /src/icu/source/test/cintltst/nccbtst.c:123,1
    - Dst: TestSub
      Src: /src/icu/source/test/cintltst/nccbtst.c:125,1
    - Dst: TestSub
      Src: /src/icu/source/test/cintltst/nccbtst.c:126,1
    - Dst: TestEBCDIC_STATEFUL_Sub
      Src: /src/icu/source/test/cintltst/nccbtst.c:129,1
    - Dst: TestSub
      Src: /src/icu/source/test/cintltst/nccbtst.c:124,1
    - Dst: TestEBCDIC_STATEFUL_Sub
      Src: /src/icu/source/test/cintltst/nccbtst.c:130,1
    - Dst: TestEBCDIC_STATEFUL_Sub
      Src: /src/icu/source/test/cintltst/nccbtst.c:131,1
    - Dst: TestEBCDIC_STATEFUL_Sub
      Src: /src/icu/source/test/cintltst/nccbtst.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 134
    functionName: TestSubCallBack
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - TestSub
    - TestEBCDIC_STATEFUL_Sub
    linkageType: ''
    returnType: void
    signature: 'static void TestSubCallBack() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestLegalAndOthers
      Src: /src/icu/source/test/cintltst/nccbtst.c:147,1
    - Dst: TestLegalAndOthers
      Src: /src/icu/source/test/cintltst/nccbtst.c:150,1
    - Dst: TestLegalAndOthers
      Src: /src/icu/source/test/cintltst/nccbtst.c:148,1
    - Dst: TestLegalAndOthers
      Src: /src/icu/source/test/cintltst/nccbtst.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: TestLegalAndOtherCallBack
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - TestLegalAndOthers
    linkageType: ''
    returnType: void
    signature: 'static void TestLegalAndOtherCallBack() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2551,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2551,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2557,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2554,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2552,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2557,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2558,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2560,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2562,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2562,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2568,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2568,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2565,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2563,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2571,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2569,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - inputsize
    - outputsize
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 2573
      start: 2531
    functionDepth: 0
    functionLinenumber: 2531
    functionLinenumberEnd: 2573
    functionName: TestLegalAndOthers
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - testConvertFromUnicode
    - log_err
    - testConvertToUnicode
    linkageType: ''
    returnType: void
    signature: 'static void TestLegalAndOthers(int32_t inputsize, int32_t outputsize) '
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1810,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2070,1
    - Dst: testConvertFromUnicodeWithContext
      Src: /src/icu/source/test/cintltst/nccbtst.c:2104,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2253,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2214,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2265,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2448,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2508,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1811,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2052,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2249,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2254,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2268,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2449,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2493,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2503,1
    - Dst: testConvertFromUnicodeWithContext
      Src: /src/icu/source/test/cintltst/nccbtst.c:2131,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2258,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1808,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1816,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2057,1
    - Dst: testConvertFromUnicodeWithContext
      Src: /src/icu/source/test/cintltst/nccbtst.c:2237,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2155,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2273,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2441,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2454,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2158,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2105,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2178,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2211,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1805,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2054,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2069,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2270,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2438,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2511,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2060,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2077,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2244,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2436,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2444,1
    - Dst: testConvertToUnicodeWithContext
      Src: /src/icu/source/test/cintltst/nccbtst.c:2453,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2498,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2513,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2519,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2524,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2237,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1818,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2074,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2131,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2245,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2260,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2514,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2520,1
    - Dst: testConvertToUnicodeWithContext
      Src: /src/icu/source/test/cintltst/nccbtst.c:2523,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2049,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2064,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2250,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2264,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2277,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2468,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2480,1
    - Dst: testConvertToUnicodeWithContext
      Src: /src/icu/source/test/cintltst/nccbtst.c:2492,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2506,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2181,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1821,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2059,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2065,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2261,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2433,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2443,1
    - Dst: testConvertToUnicodeWithContext
      Src: /src/icu/source/test/cintltst/nccbtst.c:2467,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2483,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2501,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1813,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2069,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2107,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2256,1
    - Dst: testConvertFromUnicodeWithContext
      Src: /src/icu/source/test/cintltst/nccbtst.c:2211,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2266,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2451,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2509,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1810,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2049,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2253,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2265,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2448,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2492,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2504,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2134,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2156,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2241,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1805,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1815,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2054,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2257,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2270,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2438,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2453,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2104,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2179,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2212,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1806,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2055,1
    - Dst: testConvertFromUnicodeWithContext
      Src: /src/icu/source/test/cintltst/nccbtst.c:2155,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2072,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2271,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2439,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2508,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2059,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2074,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2247,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2443,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2456,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2499,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2516,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2522,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2238,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2132,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1815,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2075,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2244,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2257,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2513,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2519,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2526,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2050,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2067,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2249,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2261,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2433,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2467,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2481,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2495,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2503,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2523,1
    - Dst: testConvertFromUnicodeWithContext
      Src: /src/icu/source/test/cintltst/nccbtst.c:2178,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2252,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2062,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2064,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2262,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2434,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2446,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2470,1
    - Dst: testConvertToUnicodeWithContext
      Src: /src/icu/source/test/cintltst/nccbtst.c:2480,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2498,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 201
    argCount: 2
    argNames:
    - inputsize
    - outputsize
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 2528
      start: 1779
    functionDepth: 0
    functionLinenumber: 1779
    functionLinenumberEnd: 2528
    functionName: TestSubWithValue
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - testConvertFromUnicode
    - testConvertFromUnicodeWithContext
    - testConvertToUnicodeWithContext
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - testConvertToUnicode
    linkageType: ''
    returnType: void
    signature: 'static void TestSubWithValue(int32_t inputsize, int32_t outputsize) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2586,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2587,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2589,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - inputsize
    - outputsize
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 2590
      start: 2575
    functionDepth: 0
    functionLinenumber: 2575
    functionLinenumberEnd: 2590
    functionName: TestSingleByte
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - log_err
    - testConvertToUnicode
    linkageType: ''
    returnType: void
    signature: 'static void TestSingleByte(int32_t inputsize, int32_t outputsize) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSubWithValue
      Src: /src/icu/source/test/cintltst/nccbtst.c:138,1
    - Dst: TestSubWithValue
      Src: /src/icu/source/test/cintltst/nccbtst.c:139,1
    - Dst: TestSubWithValue
      Src: /src/icu/source/test/cintltst/nccbtst.c:140,1
    - Dst: TestSubWithValue
      Src: /src/icu/source/test/cintltst/nccbtst.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: TestSubWithValueCallBack
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - TestSubWithValue
    linkageType: ''
    returnType: void
    signature: 'static void TestSubWithValueCallBack() '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1218,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1233,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1267,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1255,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1264,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1120,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1122,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1198,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1213,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1228,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1315,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1272,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1203,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1305,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1341,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1254,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1234,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1204,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1221,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1116,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1208,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1223,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1310,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1268,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1332,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1113,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1269,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1305,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1224,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1329,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1343,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1229,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1109,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1117,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1193,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1199,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1273,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1216,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1316,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1311,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1194,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1211,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1198,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1213,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1219,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1236,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1264,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1254,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1265,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1275,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1117,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1201,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1214,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1231,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1318,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1306,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1206,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1340,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1257,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1110,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1203,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1218,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1233,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1277,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1113,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1209,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1226,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1313,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1242,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1271,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1329,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1114,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1223,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1308,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1322,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1330,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1340,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1315,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1272,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1112,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1109,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1118,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1196,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1228,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1334,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1310,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1193,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1208,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1268,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 120
    argCount: 2
    argNames:
    - inputsize
    - outputsize
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1346
      start: 1076
    functionDepth: 0
    functionLinenumber: 1076
    functionLinenumberEnd: 1346
    functionName: TestStop
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - testConvertFromUnicode
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - testConvertToUnicode
    linkageType: ''
    returnType: void
    signature: 'static void TestStop(int32_t inputsize, int32_t outputsize) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: setNuConvTestName
      Src: /src/icu/source/test/cintltst/nccbtst.c:2652,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2705,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/nccbtst.c:2699,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/nccbtst.c:2721,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/nccbtst.c:2743,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2747,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nccbtst.c:2756,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2764,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2765,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2775,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2792,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/nccbtst.c:2813,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2807,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2790,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2788,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2812,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2786,1
    - Dst: printUSeqErr
      Src: /src/icu/source/test/cintltst/nccbtst.c:2809,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2660,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nccbtst.c:2668,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/nccbtst.c:2670,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nccbtst.c:2676,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/nccbtst.c:2677,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2686,1
    - Dst: ucnv_getInvalidUChars
      Src: /src/icu/source/test/cintltst/nccbtst.c:2729,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/nccbtst.c:2736,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/nccbtst.c:2749,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2802,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nccbtst.c:2769,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nccbtst.c:2757,1
    - Dst: printSeq
      Src: /src/icu/source/test/cintltst/nccbtst.c:2761,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2654,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2670,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2677,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2713,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nccbtst.c:2730,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nccbtst.c:2731,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2736,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nccbtst.c:2740,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2743,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/nccbtst.c:2756,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2774,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/nccbtst.c:2800,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2808,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/nccbtst.c:2811,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/nccbtst.c:2776,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2795,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nccbtst.c:2658,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nccbtst.c:2657,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2664,1
    - Dst: ucnv_setFromUCallBack
      Src: /src/icu/source/test/cintltst/nccbtst.c:2667,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/nccbtst.c:2698,1
    - Dst: ucnv_setSubstChars
      Src: /src/icu/source/test/cintltst/nccbtst.c:2675,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2708,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2731,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/nccbtst.c:2735,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2760,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2767,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2785,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/nccbtst.c:2777,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2791,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2794,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/nccbtst.c:2757,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/nccbtst.c:2784,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2810,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2783,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/nccbtst.c:2787,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 159
    argCount: 9
    argNames:
    - source
    - sourceLen
    - expect
    - expectLen
    - codepage
    - callback
    - expectOffsets
    - mySubChar
    - len
    argTypes:
    - UChar*
    - int
    - uint8_t*
    - int
    - char*
    - UConverterFromUCallback
    - int32_t*
    - char*
    - int8_t
    constantsTouched: []
    func_position:
      end: 2816
      start: 2620
    functionDepth: 0
    functionLinenumber: 2620
    functionLinenumberEnd: 2816
    functionName: testConvertFromUnicode
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - ucnv_open
    - ucnv_setFromUCallBack
    - U_SUCCESS
    - nct_min
    - ucnv_fromUnicode
    - u_errorName
    - ucnv_setSubstChars
    - U_FAILURE
    - log_data_err
    - log_verbose
    - u_strncmp
    - memcmp
    - UPRV_LENGTHOF
    - ucnv_getInvalidUChars
    - getTestOption
    - printUSeqErr
    - log_err
    - sprintf
    - setNuConvTestName
    - ucnv_close
    - printSeqErr
    - printSeq
    - myErrorName
    - ucnv_getName
    - strlen
    linkageType: ''
    returnType: UBool
    signature: 'UBool testConvertFromUnicode(const UChar *source, int sourceLen, const
      uint8_t *expect, int expectLen, const char *codepage, UConverterFromUCallback
      callback , const int32_t *expectOffsets, const char *mySubChar, int8_t len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSingleByte
      Src: /src/icu/source/test/cintltst/nccbtst.c:155,1
    - Dst: TestSingleByte
      Src: /src/icu/source/test/cintltst/nccbtst.c:156,1
    - Dst: TestSingleByte
      Src: /src/icu/source/test/cintltst/nccbtst.c:157,1
    - Dst: TestSingleByte
      Src: /src/icu/source/test/cintltst/nccbtst.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: TestSingleByteCallBack
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - TestSingleByte
    linkageType: ''
    returnType: void
    signature: 'static void TestSingleByteCallBack() '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: setNuConvTestName
      Src: /src/icu/source/test/cintltst/nccbtst.c:3043,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nccbtst.c:3059,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/nccbtst.c:3061,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/nccbtst.c:3068,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nccbtst.c:3067,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3117,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nccbtst.c:3130,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3148,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3157,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3159,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3160,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/nccbtst.c:3131,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3139,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/nccbtst.c:3158,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3184,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/nccbtst.c:3187,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3055,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3061,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3068,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/nccbtst.c:3112,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3134,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3141,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nccbtst.c:3143,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/nccbtst.c:3161,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3162,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/nccbtst.c:3174,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/nccbtst.c:3185,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3181,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3149,1
    - Dst: printUSeqErr
      Src: /src/icu/source/test/cintltst/nccbtst.c:3183,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3045,1
    - Dst: ucnv_setFromUCallBack
      Src: /src/icu/source/test/cintltst/nccbtst.c:3058,1
    - Dst: ucnv_setSubstChars
      Src: /src/icu/source/test/cintltst/nccbtst.c:3066,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:3077,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/nccbtst.c:3089,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3099,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nccbtst.c:3115,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/nccbtst.c:3117,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3121,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/nccbtst.c:3130,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3176,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3169,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3168,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nccbtst.c:3131,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3186,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nccbtst.c:3048,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nccbtst.c:3049,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3051,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/nccbtst.c:3090,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3096,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:3104,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/nccbtst.c:3123,1
    - Dst: printSeq
      Src: /src/icu/source/test/cintltst/nccbtst.c:3135,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3138,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/nccbtst.c:3151,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3182,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3166,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3165,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/nccbtst.c:3150,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3164,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 139
    argCount: 11
    argNames:
    - source
    - sourceLen
    - expect
    - expectLen
    - codepage
    - callback
    - expectOffsets
    - mySubChar
    - len
    - context
    - expectedError
    argTypes:
    - UChar*
    - int
    - uint8_t*
    - int
    - char*
    - UConverterFromUCallback
    - int32_t*
    - char*
    - int8_t
    - void*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 3190
      start: 3011
    functionDepth: 0
    functionLinenumber: 3011
    functionLinenumberEnd: 3190
    functionName: testConvertFromUnicodeWithContext
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - ucnv_open
    - ucnv_setFromUCallBack
    - U_SUCCESS
    - nct_min
    - ucnv_fromUnicode
    - ucnv_setSubstChars
    - U_FAILURE
    - log_data_err
    - log_verbose
    - memcmp
    - UPRV_LENGTHOF
    - getTestOption
    - printUSeqErr
    - log_err
    - sprintf
    - setNuConvTestName
    - ucnv_close
    - printSeqErr
    - printSeq
    - myErrorName
    - strlen
    linkageType: ''
    returnType: UBool
    signature: 'UBool testConvertFromUnicodeWithContext(const UChar *source, int sourceLen,
      const uint8_t *expect, int expectLen, const char *codepage, UConverterFromUCallback
      callback , const int32_t *expectOffsets, const char *mySubChar, int8_t len,
      const void* context, UErrorCode expectedError) '
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1424,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1460,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1602,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1630,1
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/nccbtst.c:1743,1
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/nccbtst.c:1744,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1753,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1759,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1765,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1384,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1423,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1463,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1558,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1599,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1624,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1633,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1753,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1759,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1765,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/nccbtst.c:1743,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1538,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1508,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1605,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1380,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1388,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1428,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1484,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1619,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1677,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1690,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1465,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1534,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1383,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1389,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1429,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1481,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/nccbtst.c:1744,1
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/nccbtst.c:1745,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1771,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1393,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1553,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1590,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1552,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1647,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1653,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1672,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1714,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1720,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1726,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1488,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1511,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1549,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1587,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1619,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1693,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1726,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/nccbtst.c:1745,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1545,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1385,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1418,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1593,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1608,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1660,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/nccbtst.c:1742,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1771,1
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/nccbtst.c:1742,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1468,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1596,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1419,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1546,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1556,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1647,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1653,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1669,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1714,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1720,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1733,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1423,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1461,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1599,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1631,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1756,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1762,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1768,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1723,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1387,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1426,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1600,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1759,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1765,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1771,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1481,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1606,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1381,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1391,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1431,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1534,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1507,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1612,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1620,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1690,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1726,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1482,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1471,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1466,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1535,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1380,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1388,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1428,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1460,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1630,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1753,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1515,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1554,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1549,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1587,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1647,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1653,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1669,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1697,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1714,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1720,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1507,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1550,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1588,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1622,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1690,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1729,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1435,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1594,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1548,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1384,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1421,1
    - Dst: testConvertToUnicodeWithContext
      Src: /src/icu/source/test/cintltst/nccbtst.c:1605,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1774,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1553,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1545,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:1593,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1418,1
    - Dst: testConvertFromUnicodeWithContext
      Src: /src/icu/source/test/cintltst/nccbtst.c:1465,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:1637,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1650,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1656,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:1669,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:1717,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 209
    argCount: 2
    argNames:
    - inputsize
    - outputsize
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1777
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1777
    functionName: TestSub
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - testConvertFromUnicode
    - U16_TRAIL
    - testConvertFromUnicodeWithContext
    - testConvertToUnicodeWithContext
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - testConvertToUnicode
    - U16_LEAD
    linkageType: ''
    returnType: void
    signature: 'static void TestSub(int32_t inputsize, int32_t outputsize) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2608,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2613,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2608,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2611,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2609,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2613,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2614,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2616,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - inputsize
    - outputsize
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 2617
      start: 2592
    functionDepth: 0
    functionLinenumber: 2592
    functionLinenumberEnd: 2617
    functionName: TestEBCDIC_STATEFUL_Sub
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - testConvertFromUnicode
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestEBCDIC_STATEFUL_Sub(int32_t inputsize, int32_t outputsize) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2861,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nccbtst.c:2872,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/nccbtst.c:2881,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/nccbtst.c:2874,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nccbtst.c:2880,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/nccbtst.c:2896,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2903,1
    - Dst: ucnv_getInvalidChars
      Src: /src/icu/source/test/cintltst/nccbtst.c:2924,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/nccbtst.c:2931,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/nccbtst.c:2938,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2956,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2974,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2976,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2986,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3004,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2985,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/nccbtst.c:2971,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/nccbtst.c:2953,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2981,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2984,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3002,1
    - Dst: setNuConvTestName
      Src: /src/icu/source/test/cintltst/nccbtst.c:2850,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2852,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:2867,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2874,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:2909,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nccbtst.c:2925,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/nccbtst.c:2926,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2931,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/nccbtst.c:2944,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/nccbtst.c:2952,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nccbtst.c:2952,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2960,1
    - Dst: printUSeqErr
      Src: /src/icu/source/test/cintltst/nccbtst.c:3003,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2977,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2982,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2980,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2978,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2995,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3000,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3006,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nccbtst.c:2855,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nccbtst.c:2854,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2857,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/nccbtst.c:2871,1
    - Dst: ucnv_setSubstChars
      Src: /src/icu/source/test/cintltst/nccbtst.c:2879,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2926,1
    - Dst: uprv_strncmp
      Src: /src/icu/source/test/cintltst/nccbtst.c:2930,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nccbtst.c:2935,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2938,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2942,1
    - Dst: printUSeqErr
      Src: /src/icu/source/test/cintltst/nccbtst.c:3005,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2967,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2961,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nccbtst.c:2953,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2900,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2881,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/nccbtst.c:2895,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/nccbtst.c:2917,1
    - Dst: printUSeq
      Src: /src/icu/source/test/cintltst/nccbtst.c:2957,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:2963,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nccbtst.c:2965,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2973,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2989,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/nccbtst.c:2993,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:2988,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3001,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 160
    argCount: 9
    argNames:
    - source
    - sourcelen
    - expect
    - expectlen
    - codepage
    - callback
    - expectOffsets
    - mySubChar
    - len
    argTypes:
    - uint8_t*
    - int
    - UChar*
    - int
    - char*
    - UConverterToUCallback
    - int32_t*
    - char*
    - int8_t
    constantsTouched: []
    func_position:
      end: 3009
      start: 2818
    functionDepth: 0
    functionLinenumber: 2818
    functionLinenumberEnd: 3009
    functionName: testConvertToUnicode
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - printUSeq
    - ucnv_open
    - ucnv_getInvalidChars
    - U_SUCCESS
    - nct_min
    - u_errorName
    - ucnv_setSubstChars
    - U_FAILURE
    - log_data_err
    - log_verbose
    - memcmp
    - UPRV_LENGTHOF
    - getTestOption
    - ucnv_toUnicode
    - printUSeqErr
    - uprv_strncmp
    - log_err
    - sprintf
    - setNuConvTestName
    - ucnv_close
    - ucnv_setToUCallBack
    - myErrorName
    - ucnv_getName
    - strlen
    linkageType: ''
    returnType: UBool
    signature: 'UBool testConvertToUnicode( const uint8_t *source, int sourcelen,
      const UChar *expect, int expectlen, const char *codepage, UConverterToUCallback
      callback, const int32_t *expectOffsets, const char *mySubChar, int8_t len) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: setNuConvTestName
      Src: /src/icu/source/test/cintltst/nccbtst.c:3223,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nccbtst.c:3240,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nccbtst.c:3245,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nccbtst.c:3253,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3276,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/nccbtst.c:3254,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/nccbtst.c:3247,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nccbtst.c:3293,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/nccbtst.c:3295,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3299,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nccbtst.c:3309,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3357,1
    - Dst: printUSeqErr
      Src: /src/icu/source/test/cintltst/nccbtst.c:3360,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3318,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/nccbtst.c:3350,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3335,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3352,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3363,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3234,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3247,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/nccbtst.c:3268,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3254,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/nccbtst.c:3282,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/nccbtst.c:3301,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3313,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3317,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/nccbtst.c:3328,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3225,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/nccbtst.c:3244,1
    - Dst: ucnv_setSubstChars
      Src: /src/icu/source/test/cintltst/nccbtst.c:3252,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/nccbtst.c:3269,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3295,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/nccbtst.c:3309,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/nccbtst.c:3310,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nccbtst.c:3310,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3324,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3331,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3345,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3342,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3346,1
    - Dst: printUSeqErr
      Src: /src/icu/source/test/cintltst/nccbtst.c:3362,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/nccbtst.c:3227,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nccbtst.c:3228,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3230,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3273,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/nccbtst.c:3290,1
    - Dst: printUSeq
      Src: /src/icu/source/test/cintltst/nccbtst.c:3314,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3320,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/nccbtst.c:3322,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3333,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3343,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3330,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3361,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3339,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:3358,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3338,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3341,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3359,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3334,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/nccbtst.c:3337,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 138
    argCount: 11
    argNames:
    - source
    - sourcelen
    - expect
    - expectlen
    - codepage
    - callback
    - expectOffsets
    - mySubChar
    - len
    - context
    - expectedError
    argTypes:
    - uint8_t*
    - int
    - UChar*
    - int
    - char*
    - UConverterToUCallback
    - int32_t*
    - char*
    - int8_t
    - void*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 3366
      start: 3191
    functionDepth: 0
    functionLinenumber: 3191
    functionLinenumberEnd: 3366
    functionName: testConvertToUnicodeWithContext
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - printUSeq
    - ucnv_open
    - U_SUCCESS
    - nct_min
    - ucnv_setSubstChars
    - U_FAILURE
    - log_data_err
    - log_verbose
    - memcmp
    - UPRV_LENGTHOF
    - getTestOption
    - ucnv_toUnicode
    - printUSeqErr
    - log_err
    - sprintf
    - setNuConvTestName
    - ucnv_close
    - ucnv_setToUCallBack
    - myErrorName
    - strlen
    linkageType: ''
    returnType: UBool
    signature: 'UBool testConvertToUnicodeWithContext( const uint8_t *source, int
      sourcelen, const UChar *expect, int expectlen, const char *codepage, UConverterToUCallback
      callback, const int32_t *expectOffsets, const char *mySubChar, int8_t len, const
      void* context, UErrorCode expectedError) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:43,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:45,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - len
    argTypes:
    - uint8_t*
    - int
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: printSeq
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - log_verbose
    linkageType: ''
    returnType: void
    signature: 'static void printSeq(const uint8_t* a, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/nccbtst.c:61,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/nccbtst.c:64,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/nccbtst.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - len
    argTypes:
    - uint8_t*
    - int
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: printSeqErr
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void printSeqErr(const uint8_t* a, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSkip
      Src: /src/icu/source/test/cintltst/nccbtst.c:107,1
    - Dst: TestSkip
      Src: /src/icu/source/test/cintltst/nccbtst.c:110,1
    - Dst: TestSkip
      Src: /src/icu/source/test/cintltst/nccbtst.c:108,1
    - Dst: TestSkip
      Src: /src/icu/source/test/cintltst/nccbtst.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: TestSkipCallBack
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - TestSkip
    linkageType: ''
    returnType: void
    signature: 'static void TestSkipCallBack() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:52,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:55,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/nccbtst.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - len
    argTypes:
    - UChar*
    - int
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: printUSeq
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - log_verbose
    linkageType: ''
    returnType: void
    signature: 'static void printUSeq(const UChar* a, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/nccbtst.c:70,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/nccbtst.c:72,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/nccbtst.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - len
    argTypes:
    - UChar*
    - int
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: printUSeqErr
    functionSourceFile: /src/icu/source/test/cintltst/nccbtst.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void printUSeqErr(const UChar* a, int len) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:393,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:397,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsccoll.c:401,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:395,1
    - Dst: ures_getLocaleByType
      Src: /src/icu/source/test/cintltst/cmsccoll.c:399,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:402,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:403,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:407,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:409,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 411
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 411
    functionName: BillFairmanTest
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ures_getByKey
    - strcmp
    - U_SUCCESS
    - ures_getLocaleByType
    - log_verbose
    - log_err
    - ures_close
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void BillFairmanTest(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1375,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1379
      start: 1358
    functionDepth: 0
    functionLinenumber: 1358
    functionLinenumberEnd: 1379
    functionName: TestCyrillicTailoring
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - genericRulesStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestCyrillicTailoring(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3460,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3463,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3464,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3464,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3461,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3466,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3469,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3473,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3474
      start: 3449
    functionDepth: 0
    functionLinenumber: 3449
    functionLinenumberEnd: 3474
    functionName: TestTailorNULL
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_unescape
    - U_FAILURE
    - log_err_status
    - log_err
    - ucol_strcoll
    - u_errorName
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestTailorNULL( void ) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucol_openFromShortString
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4034,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4037,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4050,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4037,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4035,1
    - Dst: uiter_setString
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4053,1
    - Dst: ucol_nextSortKeyPart
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4054,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4055,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4057,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4058,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4074,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4072,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4081,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4082
      start: 4023
    functionDepth: 0
    functionLinenumber: 4023
    functionLinenumberEnd: 4082
    functionName: TestSortKeyConsistency
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_getSortKey
    - ucol_openFromShortString
    - uiter_setString
    - U_FAILURE
    - ucol_nextSortKeyPart
    - log_err_status
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestSortKeyConsistency(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - scripts
    - length
    - expectedScript
    argTypes:
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4949
      start: 4943
    functionDepth: 0
    functionLinenumber: 4943
    functionLinenumberEnd: 4949
    functionName: containsExpectedScript
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool containsExpectedScript(const int32_t scripts[], int32_t
      length, int32_t expectedScript) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1394,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1396
      start: 1381
    functionDepth: 0
    functionLinenumber: 1381
    functionLinenumberEnd: 1396
    functionName: TestSuppressContractions
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - genericRulesStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestSuppressContractions(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericLocaleStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3482,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3482,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3483
      start: 3476
    functionDepth: 0
    functionLinenumber: 3476
    functionLinenumberEnd: 3483
    functionName: TestUpperFirstQuaternary
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericLocaleStarterWithOptions
    linkageType: ''
    returnType: void
    signature: 'static void TestUpperFirstQuaternary(void) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4969,1
    - Dst: ucol_getEquivalentReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4980,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4982,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4989,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5009,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5009,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5013,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5017,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5029,1
    - Dst: ucol_getEquivalentReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5032,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5041,1
    - Dst: ucol_getEquivalentReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5044,1
    - Dst: ucol_getEquivalentReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5051,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5027,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5060,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4970,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4981,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4986,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4999,1
    - Dst: containsExpectedScript
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5018,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5019,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5033,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5045,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5052,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5034,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5046,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5053,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4975,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4983,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5001,1
    - Dst: ucol_getEquivalentReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5006,1
    - Dst: containsExpectedScript
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5000,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4987,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4983,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5008,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5015,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5025,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5047,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5054,1
    - Dst: ucol_getEquivalentReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5057,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5035,1
    - Dst: ucol_getEquivalentReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5038,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5058,1
    - Dst: ucol_getEquivalentReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4968,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4971,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4971,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4995,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5007,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5012,1
    - Dst: ucol_getEquivalentReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5024,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5026,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5026,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5039,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5059,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5040,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 112
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 5063
      start: 4951
    functionDepth: 0
    functionLinenumber: 4951
    functionLinenumberEnd: 5063
    functionName: TestEquivalentReorderingScripts
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - containsExpectedScript
    - U_FAILURE
    - log_err_status
    - ucol_getEquivalentReorderCodes
    - myErrorName
    - log_err
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestEquivalentReorderingScripts(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ucol_setReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4635,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4658,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4662,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4664,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4665,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4666,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4666,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4669,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4629,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4627,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4633,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4635,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4640,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4636,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4656,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4657,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4672,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4682,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4624,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4628,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4643,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4653,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4659,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4659,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4662,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4669,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4678,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4630,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4630,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4633,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4637,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4637,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4649,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4640,1
    - Dst: ucol_setReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4664,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 60
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4683
      start: 4608
    functionDepth: 0
    functionLinenumber: 4608
    functionLinenumberEnd: 4683
    functionName: TestNonLeadBytesDuringCollationReordering
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - ucol_getSortKey
    - U_FAILURE
    - log_err_status
    - ucol_setReorderCodes
    - myErrorName
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestNonLeadBytesDuringCollationReordering(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3905,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3919,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3918,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3912,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3950,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3957,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3976,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3986,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3948,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3966,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3970,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3955,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3898,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3898,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3904,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3908,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3925,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3924,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3910,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3917,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3936,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3943,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3973,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3977,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3927,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3934,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3939,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3941,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3942,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3964,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3965,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3972,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3971,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3980,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3982,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3959,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3953,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3947,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3895,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3897,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3896,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3902,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3903,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3914,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3920,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3926,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3930,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3932,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3949,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3984,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3940,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3963,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3962,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 126
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3987
      start: 3869
    functionDepth: 0
    functionLinenumber: 3869
    functionLinenumberEnd: 3987
    functionName: TestUCAPrecontext
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - uprv_memcpy
    - ucol_close
    - ucol_open
    - ucol_getSortKey
    - U_FAILURE
    - log_err_status
    - strcmp
    - u_strlen
    - log_verbose
    - log_err
    - u_errorName
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestUCAPrecontext(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3994,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4001,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4002,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4002,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4000,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4005,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4006,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4007,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4008,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4009,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4013,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4018,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4015,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4017,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4019
      start: 3989
    functionDepth: 0
    functionLinenumber: 3989
    functionLinenumberEnd: 4019
    functionName: TestOutOfBuffer5468
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - ucol_getSortKey
    - u_unescape
    - U_FAILURE
    - log_err_status
    - ucol_setStrength
    - ucol_setAttribute
    - log_verbose
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestOutOfBuffer5468(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4093,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4101,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4102,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4102,1
    - Dst: ucol_openFromShortString
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4100,1
    - Dst: uiter_setString
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4106,1
    - Dst: ucol_nextSortKeyPart
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4108,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4114,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4118
      start: 4085
    functionDepth: 0
    functionLinenumber: 4085
    functionLinenumberEnd: 4118
    functionName: TestCroatianSortKey
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_openFromShortString
    - uiter_setString
    - U_FAILURE
    - ucol_nextSortKeyPart
    - log_err_status
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestCroatianSortKey(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:537,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:541,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:538,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:539,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:542,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:544,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:545,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:547,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 548
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 548
    functionName: TestFCDProblem
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - u_unescape
    - ucol_setAttribute
    - doTest
    linkageType: ''
    returnType: void
    signature: 'static void TestFCDProblem(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericLocaleStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:804,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 805
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 805
    functionName: TestUpperCaseFirst
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericLocaleStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestUpperCaseFirst(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3443,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3444,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3446
      start: 3403
    functionDepth: 0
    functionLinenumber: 3403
    functionLinenumberEnd: 3446
    functionName: TestMoreBefore
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericRulesStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestMoreBefore(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4321,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4322
      start: 4312
    functionDepth: 0
    functionLinenumber: 4312
    functionLinenumberEnd: 4322
    functionName: TestSameStrengthList
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestSameStrengthList(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5175,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5175,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5175,1
    - Dst: doTestOneReorderingAPITestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5178,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5178,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 5179
      start: 5155
    functionDepth: 0
    functionLinenumber: 5155
    functionLinenumberEnd: 5179
    functionName: TestGreekFirstReorder
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - doTestOneReorderingAPITestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestGreekFirstReorder(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5419,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5419,1
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5420,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5420,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5419,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 5421
      start: 5397
    functionDepth: 0
    functionLinenumber: 5397
    functionLinenumberEnd: 5421
    functionName: TestImportRulesDeWithPhonebook
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestImportRulesDeWithPhonebook(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericLocaleStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:824,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:825,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:825,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 826
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 826
    functionName: TestJ815
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericRulesStarter
    - genericLocaleStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestJ815(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4337,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4338
      start: 4324
    functionDepth: 0
    functionLinenumber: 4324
    functionLinenumberEnd: 4338
    functionName: TestSameStrengthListQuoted
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestSameStrengthListQuoted(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5200,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5200,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5203,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5200,1
    - Dst: doTestOneReorderingAPITestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5203,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 5204
      start: 5181
    functionDepth: 0
    functionLinenumber: 5181
    functionLinenumberEnd: 5204
    functionName: TestGreekLastReorder
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - doTestOneReorderingAPITestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestGreekLastReorder(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5892,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5937,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5923,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5929,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5915,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5933,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5889,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5897,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5903,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5912,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5926,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5966,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5909,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5870,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5886,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5900,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5947,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5963,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5944,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5875,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5883,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5960,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5880,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5919,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5941,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5957,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5924,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5930,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5938,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5894,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5954,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5916,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5869,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5890,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5906,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5913,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5927,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5934,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5968,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5948,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5887,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5895,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5901,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5910,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5964,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5877,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5884,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5898,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5907,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5945,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5961,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5873,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5881,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5920,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5942,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5958,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5917,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5878,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5931,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5939,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5955,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5928,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5935,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5891,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5914,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5969,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5888,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5896,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5902,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5925,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5932,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5951,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5911,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5965,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5885,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5899,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5908,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5946,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5962,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5922,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5943,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5952,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5872,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5871,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5874,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5882,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5959,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5940,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5879,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5918,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5956,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 92
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 5970
      start: 5867
    functionDepth: 0
    functionLinenumber: 5867
    functionLinenumberEnd: 5970
    functionName: addMiscCollTest
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - TEST
    linkageType: ''
    returnType: void
    signature: 'void addMiscCollTest(TestNode** root) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1203,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1210,1
    - Dst: ucol_uprv_getCaseBits
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1208,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1206,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1213
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1213
    functionName: TestGetCaseBit
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_open
    - ucol_uprv_getCaseBits
    - u_unescape
    - log_err
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestGetCaseBit(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5474,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5474,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5475,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5474,1
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5475,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5475,1
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5476,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5476,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5476,1
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5477,1
    - Dst: log_knownIssue
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5479,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5477,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5477,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 5490
      start: 5424
    functionDepth: 0
    functionLinenumber: 5424
    functionLinenumberEnd: 5490
    functionName: TestImportRulesFiWithEor
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - log_knownIssue
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestImportRulesFiWithEor(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1938,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1942,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1940,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1945,1
    - Dst: genericOrderingTestWithResult
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1943,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1948,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1949
      start: 1914
    functionDepth: 0
    functionLinenumber: 1914
    functionLinenumberEnd: 1949
    functionName: TestNonChars
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - log_err_status
    - U_SUCCESS
    - log_verbose
    - genericOrderingTestWithResult
    linkageType: ''
    returnType: void
    signature: 'static void TestNonChars(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2477,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2478,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2480
      start: 2355
    functionDepth: 0
    functionLinenumber: 2355
    functionLinenumberEnd: 2480
    functionName: TestRuleOptions
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericRulesStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestRuleOptions(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1956,1
    - Dst: genericLocaleStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1965,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1961,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1970,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1972
      start: 1951
    functionDepth: 0
    functionLinenumber: 1951
    functionLinenumberEnd: 1972
    functionName: TestExtremeCompression
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - free
    - malloc
    - genericLocaleStarter
    - uprv_memset
    linkageType: ''
    returnType: void
    signature: 'static void TestExtremeCompression(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2500,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2501,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2503
      start: 2483
    functionDepth: 0
    functionLinenumber: 2483
    functionLinenumberEnd: 2503
    functionName: TestOptimize
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericRulesStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestOptimize(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3044,1
    - Dst: genericLocaleStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3049,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3050,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3052,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3057,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3060,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3043,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3049,1
    - Dst: genericLocaleStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3054,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3059,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3068,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3070,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3045,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3046,1
    - Dst: genericLocaleStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3051,1
    - Dst: genericLocaleStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3053,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3058,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3054,1
    - Dst: genericOrderingTestWithResult
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3068,1
    - Dst: genericLocaleStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3050,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3051,1
    - Dst: genericLocaleStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3052,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3053,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3071
      start: 2953
    functionDepth: 0
    functionLinenumber: 2953
    functionLinenumberEnd: 3071
    functionName: TestNumericCollation
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - genericLocaleStarterWithOptions
    - U_FAILURE
    - log_err_status
    - ucol_setAttribute
    - myErrorName
    - log_err
    - genericOrderingTestWithResult
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestNumericCollation(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4397,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4398
      start: 4391
    functionDepth: 0
    functionLinenumber: 4391
    functionLinenumberEnd: 4398
    functionName: TestSameStrengthListSupplementalRanges
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestSameStrengthListSupplementalRanges(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5227,1
    - Dst: doTestOneReorderingAPITestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5230,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5230,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5227,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5227,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 5231
      start: 5206
    functionDepth: 0
    functionLinenumber: 5206
    functionLinenumberEnd: 5231
    functionName: TestNonScriptReorder
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - doTestOneReorderingAPITestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestNonScriptReorder(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/cmsccoll.c:582,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:587,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:588,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:589,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:590,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsccoll.c:599,1
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/cmsccoll.c:608,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:651,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:668,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:675,1
    - Dst: ucol_setText
      Src: /src/icu/source/test/cintltst/cmsccoll.c:675,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:683,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:589,1
    - Dst: uset_size
      Src: /src/icu/source/test/cintltst/cmsccoll.c:593,1
    - Dst: uset_charAt
      Src: /src/icu/source/test/cintltst/cmsccoll.c:604,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:601,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:610,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsccoll.c:600,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:623,1
    - Dst: uloc_getAvailable
      Src: /src/icu/source/test/cintltst/cmsccoll.c:654,1
    - Dst: hasCollationElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:655,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:678,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/cmsccoll.c:679,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsccoll.c:687,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsccoll.c:689,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:673,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:677,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:674,1
    - Dst: uloc_countAvailable
      Src: /src/icu/source/test/cintltst/cmsccoll.c:585,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:596,1
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/cmsccoll.c:607,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:613,1
    - Dst: u_strncpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:614,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:628,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:629,1
    - Dst: uloc_getDisplayName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:658,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:664,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:671,1
    - Dst: ucol_setText
      Src: /src/icu/source/test/cintltst/cmsccoll.c:678,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:682,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:595,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:606,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:611,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsccoll.c:618,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/cmsccoll.c:619,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:622,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:627,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:649,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:666,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:667,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:668,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:672,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/cmsccoll.c:676,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 114
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 690
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 690
    functionName: TestComposeDecompose
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - uset_openPattern
    - ucol_open
    - unorm_normalize
    - uloc_getDisplayName
    - u_strncpy
    - doTest
    - free
    - ucol_equal
    - u_errorName
    - uloc_countAvailable
    - ucol_close
    - uset_size
    - uloc_getAvailable
    - U_FAILURE
    - log_data_err
    - u_strlen
    - log_verbose
    - uset_charAt
    - hasCollationElements
    - backAndForth
    - U16_APPEND_UNSAFE
    - log_err
    - uprv_memcmp
    - ucol_setStrength
    - uprv_memset
    - malloc
    - ucol_openElements
    - ucol_closeElements
    - uset_close
    - ucol_setText
    linkageType: ''
    returnType: void
    signature: 'static void TestComposeDecompose(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1331,1
    - Dst: uprv_strrchr
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1318,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1331,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1344,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1344,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1323,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1283,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1286,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1285,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1310,1
    - Dst: uprv_strchr
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1332,1
    - Dst: uprv_strchr
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1305,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1317,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1317,1
    - Dst: uprv_strrchr
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1345,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1350,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1355,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1303,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1286,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1303,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1337,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 64
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1356
      start: 1273
    functionDepth: 0
    functionLinenumber: 1273
    functionLinenumberEnd: 1356
    functionName: TestCompressOverlap
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_getSortKey
    - ucol_open
    - uprv_strchr
    - U_FAILURE
    - log_err_status
    - uprv_strrchr
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestCompressOverlap(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3081,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3088,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3087,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3086,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3085,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3089,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3090,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3091,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3093,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3096,1
    - Dst: genericLocaleStarterWithResult
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3098,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3099
      start: 3073
    functionDepth: 0
    functionLinenumber: 3073
    functionLinenumberEnd: 3099
    functionName: TestTibetanConformance
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - u_unescape
    - genericLocaleStarterWithResult
    - ucol_setAttribute
    - U_SUCCESS
    - doTest
    - log_verbose
    - log_err
    - ucol_strcoll
    linkageType: ''
    returnType: void
    signature: 'static void TestTibetanConformance(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4419,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4419,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4420
      start: 4400
    functionDepth: 0
    functionLinenumber: 4400
    functionLinenumberEnd: 4420
    functionName: TestSpecialCharacters
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestSpecialCharacters(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5253,1
    - Dst: doTestOneReorderingAPITestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5256,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5253,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5253,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5256,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 5257
      start: 5233
    functionDepth: 0
    functionLinenumber: 5233
    functionLinenumberEnd: 5257
    functionName: TestHaniReorder
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - doTestOneReorderingAPITestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestHaniReorder(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1695,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1700,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1701,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1699,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1703,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1706,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1708,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1710
      start: 1691
    functionDepth: 0
    functionLinenumber: 1691
    functionLinenumberEnd: 1710
    functionName: TestBocsuCoverage
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_getSortKey
    - ucol_open
    - u_unescape
    - log_data_err
    - U_SUCCESS
    - ucol_setAttribute
    linkageType: ''
    returnType: void
    signature: 'static void TestBocsuCoverage(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:493,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:494,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 527
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 527
    functionName: TestImplicitTailoring
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericRulesStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestImplicitTailoring(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:771,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 779
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 779
    functionName: TestBefore
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericRulesStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestBefore(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericLocaleStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:793,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 794
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 794
    functionName: TestJ784
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericLocaleStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestJ784(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:441,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:448,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:447,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:444,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsccoll.c:443,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:449,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:454,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:456,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 457
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 457
    functionName: TestChMove
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - u_unescape
    - log_data_err
    - U_SUCCESS
    - doTest
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestChMove(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4223,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4230,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4229,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4225,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4228,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4230,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4231,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4233,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4234,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4237,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4241,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4238,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4239,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4247,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - testcases
    - n_testcases
    - str_rules
    - n_rules
    argTypes:
    - OneTestCase
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 4249
      start: 4209
    functionDepth: 0
    functionLinenumber: 4209
    functionLinenumberEnd: 4249
    functionName: doTestOneTestCase
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - log_info
    - u_unescape
    - U_FAILURE
    - log_err_status
    - ucol_setAttribute
    - doTest
    - myErrorName
    - log_verbose
    - log_err
    - ucol_setStrength
    - aescstrdup
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void doTestOneTestCase(const OneTestCase testcases[], int n_testcases,
      const char* str_rules[], int n_rules) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1979,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1994,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1981,1
    - Dst: genericLocaleStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1990,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1985,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1999,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2001
      start: 1975
    functionDepth: 0
    functionLinenumber: 1975
    functionLinenumberEnd: 2001
    functionName: TestExtremeCompression
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - malloc
    - ucol_open
    - free
    - uprv_memset
    - genericLocaleStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestExtremeCompression(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:264,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:269,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:266,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:265,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:266,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:270,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:271,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:274,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 277
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 277
    functionName: FunkyATest
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - ucol_setAttribute
    - doTest
    - myErrorName
    - log_verbose
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void FunkyATest(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2237,1
    - Dst: genericRulesStarterWithResult
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2238,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2240
      start: 2223
    functionDepth: 0
    functionLinenumber: 2223
    functionLinenumberEnd: 2240
    functionName: TestContractionClosure
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericRulesStarterWithResult
    linkageType: ''
    returnType: void
    signature: 'static void TestContractionClosure(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericRulesStarterWithResult
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2219,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2220
      start: 2213
    functionDepth: 0
    functionLinenumber: 2213
    functionLinenumberEnd: 2220
    functionName: TestStrCollIdenticalPrefix
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericRulesStarterWithResult
    linkageType: ''
    returnType: void
    signature: 'static void TestStrCollIdenticalPrefix(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5800,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5809,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5803,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5801,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5802,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5811,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5813,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5817,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5819,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5824,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5828,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5826,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5824,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5828,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 5830
      start: 5797
    functionDepth: 0
    functionLinenumber: 5797
    functionLinenumberEnd: 5830
    functionName: TestCaseLevelBufferOverflow
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_getSortKey
    - ucol_open
    - log_err_status
    - U_SUCCESS
    - ucol_setAttribute
    - uprv_strcmp
    - myErrorName
    - log_err
    - uprv_strcpy
    linkageType: ''
    returnType: void
    signature: 'static void TestCaseLevelBufferOverflow(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2717,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2729,1
    - Dst: ucol_nextSortKeyPart
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2731,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2727,1
    - Dst: uiter_setString
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2730,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2734,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2737,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2738
      start: 2707
    functionDepth: 0
    functionLinenumber: 2707
    functionLinenumberEnd: 2738
    functionName: TestPartialSortKeyTermination
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - uiter_setString
    - ucol_nextSortKeyPart
    - u_unescape
    - log_verbose
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestPartialSortKeyTermination(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ucol_equals
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2782,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2783,1
    - Dst: ucol_safeClone
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2788,1
    - Dst: ucol_getRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2815,1
    - Dst: ucol_getLocaleByType
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2787,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2789,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2795,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2802,1
    - Dst: ucol_equals
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2809,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2813,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2805,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2818,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2827,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2787,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2786,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2800,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2818,1
    - Dst: ucol_equals
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2823,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2824,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2790,1
    - Dst: ucol_equals
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2794,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2798,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2810,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2804,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2816,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2817,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 3
    argNames:
    - locName
    - source
    - target
    argTypes:
    - char*
    - UCollator*
    - UCollator*
    constantsTouched: []
    func_position:
      end: 2830
      start: 2774
    functionDepth: 0
    functionLinenumber: 2774
    functionLinenumberEnd: 2830
    functionName: TestEqualsForCollator
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_getRules
    - ucol_safeClone
    - U_FAILURE
    - ucol_getLocaleByType
    - ucol_getAttribute
    - ucol_equals
    - ucol_setAttribute
    - uprv_strcmp
    - log_err
    - u_errorName
    - ucol_openRules
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t TestEqualsForCollator(const char* locName, UCollator
      *source, UCollator *target) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericLocaleStarterWithOptionsAndResult
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3497,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3497,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3500,1
    - Dst: genericLocaleStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3500,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3497,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3500,1
    - Dst: genericRulesStarterWithOptionsAndResult
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3502,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3502,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3502,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3503
      start: 3485
    functionDepth: 0
    functionLinenumber: 3485
    functionLinenumberEnd: 3503
    functionName: TestJ4960
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericLocaleStarterWithOptionsAndResult
    - genericRulesStarterWithOptionsAndResult
    - genericLocaleStarterWithOptions
    linkageType: ''
    returnType: void
    signature: 'static void TestJ4960(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5134,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5135,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5136,1
    - Dst: ucol_setReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5139,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5136,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5140,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5141,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5141,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5146,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - testCases
    - testCasesLen
    - reorderTokens
    - reorderTokensLen
    argTypes:
    - OneTestCase
    - uint32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 5153
      start: 5128
    functionDepth: 0
    functionLinenumber: 5128
    functionLinenumberEnd: 5153
    functionName: doTestOneReorderingAPITestCase
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - ucol_setReorderCodes
    - doTest
    - myErrorName
    linkageType: ''
    returnType: void
    signature: 'static void doTestOneReorderingAPITestCase(const OneTestCase testCases[],
      uint32_t testCasesLen, const int32_t reorderTokens[], int32_t reorderTokensLen) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2759,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2763,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2761,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2762,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2760,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2764,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2766,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2768,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2770,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2772
      start: 2740
    functionDepth: 0
    functionLinenumber: 2740
    functionLinenumberEnd: 2772
    functionName: TestSettings
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - u_unescape
    - ucol_setAttribute
    - doTest
    - UPRV_LENGTHOF
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestSettings(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2862,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2866,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2873,1
    - Dst: ucol_equals
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2878,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2879,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2881,1
    - Dst: TestEqualsForCollator
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2906,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2885,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2891,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2893,1
    - Dst: uloc_getAvailable
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2897,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2899,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2903,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2903,1
    - Dst: uloc_countAvailable
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2840,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2865,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2871,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2874,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2877,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2888,1
    - Dst: ucol_equals
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2887,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2907,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2909,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2869,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2882,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2886,1
    - Dst: TestEqualsForCollator
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2890,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2884,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2900,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2901,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2902,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 64
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2912
      start: 2833
    functionDepth: 0
    functionLinenumber: 2833
    functionLinenumberEnd: 2912
    functionName: TestEquals
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - TestEqualsForCollator
    - ucol_open
    - u_unescape
    - uloc_getAvailable
    - U_FAILURE
    - log_data_err
    - u_errorName
    - ucol_equals
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - uloc_countAvailable
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestEquals(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3510,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3517,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3516,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3517,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3515,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3520,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3521,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3522,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3523,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3524,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3539,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3546,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3554,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3534,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3551,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3527,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3555
      start: 3505
    functionDepth: 0
    functionLinenumber: 3505
    functionLinenumberEnd: 3555
    functionName: TestJ5223
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - ucol_getSortKey
    - u_unescape
    - U_FAILURE
    - log_err_status
    - ucol_setStrength
    - ucol_setAttribute
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestJ5223(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5566,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5582,1
    - Dst: ucol_getTailoredSet
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5586,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5574,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5580,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5582,1
    - Dst: ucol_getTailoredSet
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5587,1
    - Dst: uset_getItem
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5598,1
    - Dst: compare_uint8_t_arrays
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5606,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5612,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5559,1
    - Dst: ucol_getRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5563,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5559,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5565,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5569,1
    - Dst: ucol_getRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5570,1
    - Dst: uprv_malloc
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5571,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5579,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5573,1
    - Dst: uset_getItemCount
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5595,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5626,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5615,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5581,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5576,1
    - Dst: uset_equals
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5589,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5604,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5607,1
    - Dst: compare_uint8_t_arrays
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5614,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5622,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5628,1
    - Dst: U16_APPEND
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5602,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5605,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5627,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5557,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5558,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5590,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5593,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5613,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5624,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5629,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 78
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 5630
      start: 5525
    functionDepth: 0
    functionLinenumber: 5525
    functionLinenumberEnd: 5630
    functionName: TestImport
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_open
    - compare_uint8_t_arrays
    - log_err_status
    - uprv_free
    - ucol_close
    - uprv_malloc
    - ucol_getRules
    - U_FAILURE
    - uset_getItemCount
    - log_data_err
    - ucol_getTailoredSet
    - ucol_getSortKey
    - uset_equals
    - u_unescape
    - log_err
    - u_strcat
    - ucol_openRules
    - myErrorName
    - uset_getItem
    - U16_APPEND
    - uset_close
    linkageType: ''
    returnType: void
    signature: 'static void TestImport(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5095,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5101,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5095,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5100,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5118,1
    - Dst: ucol_setReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5086,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5088,1
    - Dst: ucol_safeClone
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5093,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5088,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5105,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5106,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5106,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5078,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5081,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5080,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5081,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5086,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5102,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5094,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5102,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5117,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5075,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5079,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5087,1
    - Dst: ucol_getReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5100,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5111,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 5119
      start: 5065
    functionDepth: 0
    functionLinenumber: 5065
    functionLinenumberEnd: 5119
    functionName: TestReorderingAcrossCloning
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - ucol_safeClone
    - U_FAILURE
    - log_err_status
    - ucol_setReorderCodes
    - ucol_getReorderCodes
    - myErrorName
    - log_verbose
    - UPRV_LENGTHOF
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestReorderingAcrossCloning(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:192,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:199,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:205,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsccoll.c:208,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:209,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsccoll.c:194,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:195,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:200,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:212,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:219,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:223,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:198,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsccoll.c:220,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:221,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:214,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:225,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:229,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:189,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:191,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:206,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:213,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:224,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 230
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 230
    functionName: BlackBirdTest
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - ucol_open
    - ucol_setAttribute
    - U_SUCCESS
    - doTest
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void BlackBirdTest(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:865,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:865,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:872,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:873,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:881,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:884,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:883,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:889,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:885,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:896,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:898,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:948,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:948,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:877,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:885,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:892,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:893,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:898,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/cmsccoll.c:899,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:901,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:943,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:944,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:944,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:897,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:862,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:864,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:868,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:874,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:900,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:901,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/cmsccoll.c:902,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:941,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:942,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:942,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:869,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:883,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:888,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:903,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:940,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:947,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:946,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:946,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:907,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:945,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 78
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 951
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 951
    functionName: TestCase
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - genericRulesStarter
    - U_FAILURE
    - log_err_status
    - ucol_openElements
    - backAndForth
    - ucol_setAttribute
    - doTest
    - u_strlen
    - myErrorName
    - log_verbose
    - log_err
    - ucol_closeElements
    - UPRV_LENGTHOF
    - ucol_setStrength
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestCase(void) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1443,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1446,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1446,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1449,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1450,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1455,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1474,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1475,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1485,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1499,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1528,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1535,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1526,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1545,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1460,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1463,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1478,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1482,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1490,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1496,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1507,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1511,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1517,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1520,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1530,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1543,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1539,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1533,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1439,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1442,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1451,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1465,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1466,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1479,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1483,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1491,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1498,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1506,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1522,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1534,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1515,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1516,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1544,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1540,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1444,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1445,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1459,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1469,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1472,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1484,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1509,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1510,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1514,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1508,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1546,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1521,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 107
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1549
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1549
    functionName: TestContraction
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_next
    - u_unescape
    - U_FAILURE
    - log_err_status
    - ucol_openElements
    - log_verbose
    - log_err
    - ucol_closeElements
    - UPRV_LENGTHOF
    - ucol_strcoll
    - u_errorName
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestContraction(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: U_ASSERT
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3120,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3125,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3121,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3123,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3122,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3126,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3127,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3128,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3132,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3138,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3143,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3145,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3139,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 4
    argNames:
    - msg
    - iter
    - expected
    - expectedCount
    argTypes:
    - char*
    - UEnumeration*
    - char**
    - int32_t
    constantsTouched: []
    func_position:
      end: 3149
      start: 3112
    functionDepth: 0
    functionLinenumber: 3112
    functionLinenumberEnd: 3149
    functionName: checkUEnumeration
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - U_ASSERT
    - assertTrue
    - uenum_next
    - assertSuccess
    - uenum_count
    - uprv_strcmp
    - log_verbose
    - log_err
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t checkUEnumeration(const char* msg, UEnumeration* iter,
      const char** expected, int32_t expectedCount) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3649,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3667,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3671,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3691,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3688,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3759,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3704,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3635,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3636,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3641,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3646,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3697,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3721,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3692,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3738,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3748,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3720,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3685,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3737,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3698,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3707,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3649,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3654,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3668,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3673,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3724,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3643,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3646,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3658,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3719,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3736,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3656,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3703,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3741,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3670,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3673,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3678,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3748,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3706,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3717,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3728,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3723,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3640,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3643,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3649,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3711,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3739,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3754,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3646,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3690,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3692,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3747,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3756,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3682,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3715,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3655,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3665,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3667,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3718,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3734,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3735,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3670,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3739,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3639,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3640,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3650,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3666,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3673,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3680,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3745,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3732,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3647,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3643,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3695,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3699,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3634,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3667,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3679,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3754,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3674,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3636,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3662,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3670,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3689,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3709,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3640,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3644,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3726,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3744,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3708,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3725,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3750,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 191
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3760
      start: 3577
    functionDepth: 0
    functionLinenumber: 3577
    functionLinenumberEnd: 3760
    functionName: TestVI5913
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - ucol_getSortKey
    - U_FAILURE
    - log_err_status
    - u_strlen
    - log_verbose
    - log_err
    - ucol_equal
    - uprv_memcmp
    - u_errorName
    - aescstrdup
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestVI5913(void) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/cmsccoll.c:975,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1012,1
    - Dst: setTestOption
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1018,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1028,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1041,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1064,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1087,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1091,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1095,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1099,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1142,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1157,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1127,1
    - Dst: setTestOption
      Src: /src/icu/source/test/cintltst/cmsccoll.c:978,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:989,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1011,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1058,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1060,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1027,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1062,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1067,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1069,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1070,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1085,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1124,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1128,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1129,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1175,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1177,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1122,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1138,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1163,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1153,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1183,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1136,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1097,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1151,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:987,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1014,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1013,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1074,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1078,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1082,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1086,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1088,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1089,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1103,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1149,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1161,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1159,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/cmsccoll.c:977,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:991,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:992,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:995,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1042,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1068,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1072,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1076,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1080,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1093,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1120,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1132,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1146,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1118,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1147,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1173,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1140,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1101,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1145,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1148,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1155,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1130,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1134,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1179,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 159
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1184
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 1184
    functionName: TestIncrementalNormalize
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - setTestOption
    - getTestOption
    - ucol_open
    - ucol_getSortKey
    - U_FAILURE
    - log_data_err
    - strcmp
    - ucol_setAttribute
    - doTest
    - log_err
    - ucol_strcoll
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestIncrementalNormalize(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1237,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1241,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1239,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1244,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1243,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1248,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1250,1
    - Dst: genericOrderingTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1251,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1251,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1253,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1256,1
    - Dst: genericLocaleStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1259,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1259,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1258,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1260
      start: 1216
    functionDepth: 0
    functionLinenumber: 1216
    functionLinenumberEnd: 1260
    functionName: TestHangulTailoring
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_unescape
    - U_FAILURE
    - log_data_err
    - U_SUCCESS
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - genericOrderingTest
    - ucol_openRules
    - genericLocaleStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestHangulTailoring(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1582,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1586,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1587,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1584,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1585,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1588,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1588,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1593,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1595,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1597
      start: 1551
    functionDepth: 0
    functionLinenumber: 1551
    functionLinenumberEnd: 1597
    functionName: TestExpansion
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_unescape
    - U_FAILURE
    - log_err_status
    - doTest
    - log_verbose
    - UPRV_LENGTHOF
    - u_errorName
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestExpansion(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3810,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3811,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3829,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3828,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3822,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3841,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3842,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3843,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3845,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3848,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3814,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3814,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3819,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3831,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3839,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3843,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3853,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3859,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3859,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3860,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3864,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3851,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3866,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3818,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3828,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3824,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3826,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3835,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3840,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3850,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3858,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3862,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3855,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3813,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3812,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3817,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3819,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3827,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3820,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3833,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3844,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3845,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3849,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3850,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3857,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 88
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3867
      start: 3762
    functionDepth: 0
    functionLinenumber: 3762
    functionLinenumberEnd: 3867
    functionName: TestTailor6179
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_getSortKey
    - log_info
    - U_FAILURE
    - log_err_status
    - u_strlen
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - uprv_memcmp
    - u_errorName
    - aescstrdup
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestTailor6179(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericLocaleStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3103,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3104
      start: 3101
    functionDepth: 0
    functionLinenumber: 3101
    functionLinenumberEnd: 3104
    functionName: TestPinyinProblem
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericLocaleStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestPinyinProblem(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4478,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4478,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4479
      start: 4461
    functionDepth: 0
    functionLinenumber: 4461
    functionLinenumberEnd: 4479
    functionName: TestPrivateUseCharactersInRange
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestPrivateUseCharactersInRange(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5349,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5355,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5356,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5351,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5350,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5357,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5351,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5358,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5364,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5364,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5383,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5339,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5337,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5339,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5361,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5364,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5365,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5365,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5384,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5333,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5348,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5355,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5356,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5357,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5358,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5379,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5330,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5338,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5344,1
    - Dst: ucol_setReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5349,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5365,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 52
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 5385
      start: 5309
    functionDepth: 0
    functionLinenumber: 5309
    functionLinenumberEnd: 5385
    functionName: TestReorderWithNumericCollation
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - ucol_getSortKey
    - U_FAILURE
    - log_err_status
    - ucol_setReorderCodes
    - ucol_setAttribute
    - myErrorName
    - log_verbose
    - UPRV_LENGTHOF
    - ucol_strcoll
    linkageType: ''
    returnType: void
    signature: 'static void TestReorderWithNumericCollation(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5519,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5519,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5520,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5519,1
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5520,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5520,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 5522
      start: 5499
    functionDepth: 0
    functionLinenumber: 5499
    functionLinenumberEnd: 5522
    functionName: TestImportRulesCJKWithUnihan
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestImportRulesCJKWithUnihan(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2022,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2023
      start: 2004
    functionDepth: 0
    functionLinenumber: 2004
    functionLinenumberEnd: 2023
    functionName: TestSurrogates
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - genericRulesStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestSurrogates(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4504,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4518,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4513,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4516,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4511,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4519,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4523
      start: 4481
    functionDepth: 0
    functionLinenumber: 4481
    functionLinenumberEnd: 4523
    functionName: TestInvalidListsAndRanges
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - u_unescape
    - U_FAILURE
    - log_err
    - UPRV_LENGTHOF
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestInvalidListsAndRanges(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5395
      start: 5387
    functionDepth: 0
    functionLinenumber: 5387
    functionLinenumberEnd: 5395
    functionName: compare_uint8_t_arrays
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int compare_uint8_t_arrays(const uint8_t* a, const uint8_t*
      b) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3327,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3328,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3329,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3331,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3332,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3332,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3334,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3338
      start: 3298
    functionDepth: 0
    functionLinenumber: 3298
    functionLinenumberEnd: 3338
    functionName: TestBeforeTightening
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_unescape
    - log_err_status
    - UPRV_LENGTHOF
    - u_errorName
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestBeforeTightening(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2542,1
    - Dst: uiter_setUTF16BE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2560,1
    - Dst: uiter_setUTF16BE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2561,1
    - Dst: uiter_setUTF8
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2563,1
    - Dst: uiter_setUTF8
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2564,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2566,1
    - Dst: ucol_strcollIter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2568,1
    - Dst: ucol_strcollIter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2569,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2573,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2577
      start: 2540
    functionDepth: 0
    functionLinenumber: 2540
    functionLinenumberEnd: 2577
    functionName: Alexis
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - uiter_setUTF16BE
    - ucol_open
    - uiter_setUTF8
    - ucol_setAttribute
    - log_err
    - ucol_strcollIter
    linkageType: ''
    returnType: void
    signature: 'static void Alexis(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4438,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4438,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4439
      start: 4422
    functionDepth: 0
    functionLinenumber: 4422
    functionLinenumberEnd: 4439
    functionName: TestPrivateUseCharacters
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestPrivateUseCharacters(void) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4709,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4709,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4714,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4723,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4723,1
    - Dst: ucol_getReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4721,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4727,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4734,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4734,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4747,1
    - Dst: ucol_setReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4774,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4791,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4783,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4804,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4756,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4715,1
    - Dst: ucol_getReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4732,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4738,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4738,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4747,1
    - Dst: ucol_getReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4761,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4763,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4767,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4769,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4756,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4775,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4790,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4708,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4706,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4728,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4728,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4732,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4733,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4755,1
    - Dst: ucol_setReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4790,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4792,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4799,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4800,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4703,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4707,1
    - Dst: ucol_setReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4714,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4716,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4716,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4737,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4743,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4749,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4767,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4776,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4747,1
    - Dst: ucol_setReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4754,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4767,1
    - Dst: ucol_setReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4798,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4798,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4776,1
    - Dst: ucol_getReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4781,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 93
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4805
      start: 4688
    functionDepth: 0
    functionLinenumber: 4688
    functionLinenumberEnd: 4805
    functionName: TestReorderingAPI
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - ucol_setReorderCodes
    - ucol_getReorderCodes
    - myErrorName
    - log_verbose
    - UPRV_LENGTHOF
    - ucol_strcoll
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestReorderingAPI(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4147,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4147,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4187,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4153,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4155,1
    - Dst: uiter_setString
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4169,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4181,1
    - Dst: ucol_nextSortKeyPart
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4170,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4189,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4192,1
    - Dst: ucol_openFromShortString
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4144,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4146,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4163,1
    - Dst: uiter_setString
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4172,1
    - Dst: ucol_nextSortKeyPart
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4173,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4174,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4177,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4181,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4131,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4132,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4159,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4193
      start: 4125
    functionDepth: 0
    functionLinenumber: 4125
    functionLinenumberEnd: 4193
    functionName: TestHiragana
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_getSortKey
    - ucol_openFromShortString
    - uiter_setString
    - U_FAILURE
    - ucol_nextSortKeyPart
    - log_err_status
    - U_SUCCESS
    - log_err
    - UPRV_LENGTHOF
    - ucol_strcoll
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestHiragana(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4458,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4458,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4459
      start: 4441
    functionDepth: 0
    functionLinenumber: 4441
    functionLinenumberEnd: 4459
    functionName: TestPrivateUseCharactersInList
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestPrivateUseCharactersInList(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1715,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1727,1
    - Dst: ucol_getVariableTop
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1725,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1746,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1747,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1770,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1773,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1775,1
    - Dst: ucol_setVariableTop
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1789,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1792,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1805,1
    - Dst: ucol_restoreVariableTop
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1813,1
    - Dst: ucol_restoreVariableTop
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1810,1
    - Dst: ucol_setVariableTop
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1768,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1763,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1815,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1758,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1778,1
    - Dst: ucol_getVariableTop
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1801,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1797,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1726,1
    - Dst: ucol_setVariableTop
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1729,1
    - Dst: ucol_getVariableTop
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1730,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1731,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1734,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1752,1
    - Dst: ucol_setVariableTop
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1755,1
    - Dst: ucol_getVariableTop
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1756,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1757,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1759,1
    - Dst: ucol_getVariableTop
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1769,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1772,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1774,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1791,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1765,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1776,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1732,1
    - Dst: ucol_setVariableTop
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1742,1
    - Dst: ucol_getVariableTop
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1743,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1739,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1744,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1748,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1749,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1750,1
    - Dst: ucol_greaterOrEqual
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1751,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1752,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1761,1
    - Dst: ucol_setVariableTop
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1811,1
    - Dst: ucol_greaterOrEqual
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1764,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1817,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1771,1
    - Dst: ucol_getVariableTop
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1812,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1802,1
    - Dst: ucol_setVariableTop
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1808,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1781,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1716,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1733,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1735,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1737,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1739,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1736,1
    - Dst: ucol_greaterOrEqual
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1738,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1745,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1760,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1762,1
    - Dst: ucol_greaterOrEqual
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1777,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1778,1
    - Dst: ucol_restoreVariableTop
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1800,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1765,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1819,1
    - Dst: ucol_getVariableTop
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1809,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 145
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1821
      start: 1712
    functionDepth: 0
    functionLinenumber: 1712
    functionLinenumberEnd: 1821
    functionName: TestVariableTopSetting
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - ucol_setVariableTop
    - U_FAILURE
    - log_data_err
    - U_SUCCESS
    - ucol_setAttribute
    - ucol_greaterOrEqual
    - ucol_restoreVariableTop
    - log_verbose
    - log_err
    - ucol_equal
    - u_errorName
    - ucol_getVariableTop
    linkageType: ''
    returnType: void
    signature: 'static void TestVariableTopSetting(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2612,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2626,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2628,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2644,1
    - Dst: uiter_setUTF16BE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2637,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2648,1
    - Dst: uiter_setUTF8
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2651,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2661,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2614,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2617,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2620,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2621,1
    - Dst: ucnv_fromUChars
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2631,1
    - Dst: uiter_setUTF16BE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2636,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2641,1
    - Dst: ucnv_fromUChars
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2630,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2647,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2656,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2622,1
    - Dst: uiter_setUTF8
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2650,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2662,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2616,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2623,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2624,1
    - Dst: ucol_strcollIter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2639,1
    - Dst: ucol_strcollIter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2653,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2663
      start: 2581
    functionDepth: 0
    functionLinenumber: 2581
    functionLinenumberEnd: 2663
    functionName: Alexis2
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - uiter_setUTF16BE
    - ucol_open
    - ucnv_close
    - u_unescape
    - ucnv_fromUChars
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - uiter_setUTF8
    - ucol_setAttribute
    - u_strToUTF8
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - ucol_strcoll
    - ucol_strcollIter
    linkageType: ''
    returnType: void
    signature: 'static void Alexis2(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericLocaleStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3566,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3567
      start: 3558
    functionDepth: 0
    functionLinenumber: 3558
    functionLinenumberEnd: 3567
    functionName: TestJ5232
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericLocaleStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestJ5232(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5845,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5846,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5848,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5848,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5847,1
    - Dst: uiter_setString
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5852,1
    - Dst: ucol_nextSortKeyPart
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5855,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5856,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5857,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5857,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5862,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 5863
      start: 5836
    functionDepth: 0
    functionLinenumber: 5836
    functionLinenumberEnd: 5863
    functionName: TestNextSortKeyPartJaIdentical
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - uiter_setString
    - ucol_nextSortKeyPart
    - U_FAILURE
    - log_err_status
    - ucol_setAttribute
    - myErrorName
    linkageType: ''
    returnType: void
    signature: 'static void TestNextSortKeyPartJaIdentical(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1836,1
    - Dst: ucol_getMaxVariable
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1846,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1847,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1851,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1850,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1861,1
    - Dst: ucol_getMaxVariable
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1872,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1873,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1876,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1877,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1894,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1878,1
    - Dst: ucol_getMaxVariable
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1885,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1909,1
    - Dst: ucol_greaterOrEqual
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1880,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1835,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1843,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1848,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1855,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1862,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1864,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1874,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1881,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1888,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1889,1
    - Dst: ucol_setMaxVariable
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1899,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1904,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1890,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1891,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1892,1
    - Dst: ucol_getMaxVariable
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1900,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1881,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1842,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1837,1
    - Dst: ucol_getMaxVariable
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1841,1
    - Dst: ucol_greaterOrEqual
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1854,1
    - Dst: ucol_setMaxVariable
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1858,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1849,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1853,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1855,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1852,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1868,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1897,1
    - Dst: ucol_setMaxVariable
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1906,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1886,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1911,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1879,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1894,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1875,1
    - Dst: ucol_setMaxVariable
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1845,1
    - Dst: ucol_getMaxVariable
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1859,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1860,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1863,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1865,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1866,1
    - Dst: ucol_greaterOrEqual
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1867,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1868,1
    - Dst: ucol_setMaxVariable
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1871,1
    - Dst: ucol_setMaxVariable
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1884,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1901,1
    - Dst: ucol_greaterOrEqual
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1893,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1887,1
    - Dst: ucol_getMaxVariable
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1907,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 126
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1912
      start: 1823
    functionDepth: 0
    functionLinenumber: 1823
    functionLinenumberEnd: 1912
    functionName: TestMaxVariable
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - ucol_setMaxVariable
    - log_data_err
    - ucol_setAttribute
    - ucol_greaterOrEqual
    - log_verbose
    - log_err
    - ucol_equal
    - ucol_getMaxVariable
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestMaxVariable(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2680,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2681,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2682,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2687,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2682,1
    - Dst: u_parseUTF8
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2688,1
    - Dst: u_strFromUTF8
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2689,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2690,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2693,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2695,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2698,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2699,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2703,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2697,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2705
      start: 2665
    functionDepth: 0
    functionLinenumber: 2665
    functionLinenumberEnd: 2705
    functionName: TestHebrewUCA
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - u_parseUTF8
    - doTest
    - log_verbose
    - UPRV_LENGTHOF
    - u_errorName
    - u_strFromUTF8
    linkageType: ''
    returnType: void
    signature: 'static void TestHebrewUCA(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3574,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3575
      start: 3569
    functionDepth: 0
    functionLinenumber: 3569
    functionLinenumberEnd: 3575
    functionName: TestJ5367
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericRulesStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestJ5367(void) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4826,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4829,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4831,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4830,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4837,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4838,1
    - Dst: ucol_setReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4859,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4861,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4861,1
    - Dst: ucol_getReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4877,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4912,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4921,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4921,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4935,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4848,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4842,1
    - Dst: ucol_getReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4866,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4868,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4868,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4873,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4873,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4877,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4878,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4892,1
    - Dst: ucol_setReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4899,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4920,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4926,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4926,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4924,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4940,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4930,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4830,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4832,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4832,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4839,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4852,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4839,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4852,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4860,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4882,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4883,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4883,1
    - Dst: ucol_getReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4906,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4908,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4914,1
    - Dst: ucol_getReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4924,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4894,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4925,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4929,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4901,1
    - Dst: ucol_setReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4919,1
    - Dst: ucol_getReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4837,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4852,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4843,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4843,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4854,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4859,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4872,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4879,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4879,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4892,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4901,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4912,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4888,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4900,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4930,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4892,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4912,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 119
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4941
      start: 4810
    functionDepth: 0
    functionLinenumber: 4810
    functionLinenumberEnd: 4941
    functionName: TestReorderingAPIWithRuleCreatedCollator
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - U_FAILURE
    - log_err_status
    - ucol_setReorderCodes
    - ucol_getReorderCodes
    - u_strlen
    - myErrorName
    - log_verbose
    - UPRV_LENGTHOF
    - ucol_strcoll
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestReorderingAPIWithRuleCreatedCollator(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1610,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1610,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1619,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1619,1
    - Dst: genericRulesStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1633,1
    - Dst: genericRulesStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1648,1
    - Dst: genericRulesStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1650,1
    - Dst: genericRulesStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1666,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1666,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1666,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1682,1
    - Dst: genericRulesStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1632,1
    - Dst: genericRulesStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1634,1
    - Dst: genericRulesStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1647,1
    - Dst: genericRulesStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1667,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1667,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1667,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1670,1
    - Dst: genericRulesStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1683,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1683,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1683,1
    - Dst: genericRulesStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1682,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1682,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1608,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1617,1
    - Dst: genericRulesStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1631,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1646,1
    - Dst: genericRulesStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1668,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1668,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1668,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1670,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1681,1
    - Dst: genericRulesStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1670,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1609,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1609,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1618,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1618,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1630,1
    - Dst: genericRulesStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1649,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1665,1
    - Dst: genericRulesStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1669,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1669,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:1669,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 50
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1688
      start: 1602
    functionDepth: 0
    functionLinenumber: 1602
    functionLinenumberEnd: 1688
    functionName: TestLimitations
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericRulesStarterWithOptions
    - log_verbose
    - genericRulesStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestLimitations(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:92,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:100,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:105,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:126,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:132,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:101,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:103,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:118,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:117,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/cmsccoll.c:108,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:127,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:130,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/cmsccoll.c:135,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:95,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:92,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsccoll.c:94,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:103,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:104,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:109,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:125,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:130,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:131,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:136,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:90,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:99,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:118,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsccoll.c:120,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:114,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:121,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:141,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 144
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 144
    functionName: IncompleteCntTest
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - U_FAILURE
    - ucol_openElements
    - backAndForth
    - U_SUCCESS
    - doTest
    - u_strlen
    - ucol_closeElements
    - log_err
    - UPRV_LENGTHOF
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void IncompleteCntTest(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cmsccoll.c:351,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsccoll.c:345,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:369,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cmsccoll.c:361,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsccoll.c:344,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:342,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:368,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:367,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cmsccoll.c:371,1
    - Dst: ucol_sortKeyToString
      Src: /src/icu/source/test/cintltst/cmsccoll.c:371,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cmsccoll.c:353,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:355,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:356,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:363,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:364,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cmsccoll.c:370,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:336,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cmsccoll.c:357,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:359,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:360,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/cmsccoll.c:365,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 379
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 379
    functionName: PrintMarkDavis
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - ucol_open
    - ucol_getSortKey
    - ucol_setAttribute
    - u_strlen
    - log_verbose
    - UPRV_LENGTHOF
    - fprintf
    - ucol_sortKeyToString
    linkageType: ''
    returnType: void
    signature: 'static void PrintMarkDavis(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2046,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2047,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2049
      start: 2026
    functionDepth: 0
    functionLinenumber: 2026
    functionLinenumberEnd: 2049
    functionName: TestPrefix
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericRulesStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestPrefix(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3292,1
    - Dst: genericLocaleStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3293,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3292,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3293,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3294,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3294,1
    - Dst: genericLocaleStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3295,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3296
      start: 3238
    functionDepth: 0
    functionLinenumber: 3238
    functionLinenumberEnd: 3296
    functionName: TestBeforePinyin
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericRulesStarter
    - genericLocaleStarter
    linkageType: ''
    returnType: void
    signature: 'static void TestBeforePinyin(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5280,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5280,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 5281
      start: 5259
    functionDepth: 0
    functionLinenumber: 5259
    functionLinenumberEnd: 5281
    functionName: TestHaniReorderWithOtherRules
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestHaniReorderWithOtherRules(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5300,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5303,1
    - Dst: doTestOneReorderingAPITestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5303,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5300,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5300,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 5304
      start: 5283
    functionDepth: 0
    functionLinenumber: 5283
    functionLinenumberEnd: 5304
    functionName: TestMultipleReorder
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - doTestOneReorderingAPITestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestMultipleReorder(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ucol_openAvailableLocales
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3168,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3170,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3175,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3189,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3194,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3187,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3207,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3224,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3230,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3222,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3171,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3183,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3189,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3195,1
    - Dst: ucol_getKeywordValues
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3192,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3200,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3206,1
    - Dst: ucol_getFunctionalEquivalent
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3228,1
    - Dst: assertEquals
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3231,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3232,1
    - Dst: checkUEnumeration
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3172,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3172,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3177,1
    - Dst: ucol_getKeywords
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3181,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3184,1
    - Dst: checkUEnumeration
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3196,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3196,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3200,1
    - Dst: ucol_getKeywordValues
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3205,1
    - Dst: checkUEnumeration
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3208,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3177,1
    - Dst: checkUEnumeration
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3185,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3185,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3198,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3210,1
    - Dst: assertEquals
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3223,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3208,1
    - Dst: ucol_getFunctionalEquivalent
      Src: /src/icu/source/test/cintltst/cmsccoll.c:3220,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 69
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3235
      start: 3154
    functionDepth: 0
    functionLinenumber: 3154
    functionLinenumberEnd: 3235
    functionName: TestSeparateTrees
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_getFunctionalEquivalent
    - assertEquals
    - ucol_openAvailableLocales
    - assertTrue
    - assertSuccess
    - log_data_err
    - ucol_getKeywords
    - ucol_getKeywordValues
    - uenum_close
    - UPRV_LENGTHOF
    - checkUEnumeration
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestSeparateTrees(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4380,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4381
      start: 4370
    functionDepth: 0
    functionLinenumber: 4370
    functionLinenumberEnd: 4381
    functionName: TestSameStrengthListQuotedQwerty
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestSameStrengthListQuotedQwerty(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2264,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2281,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2282,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2265,1
    - Dst: genericRulesStarter
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2281,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2282,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2295,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2297,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2300,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2302,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2304,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2308,1
    - Dst: ucol_setText
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2305,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2303,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2307,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2314,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2315,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2310,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2318
      start: 2243
    functionDepth: 0
    functionLinenumber: 2243
    functionLinenumberEnd: 2318
    functionName: TestBeforePrefixFailure
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - genericRulesStarter
    - ucol_next
    - u_unescape
    - ucol_openElements
    - log_verbose
    - ucol_closeElements
    - UPRV_LENGTHOF
    - ucol_setText
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestBeforePrefixFailure(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5664,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5664,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5670,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5676,1
    - Dst: ucol_getRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5681,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5676,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5685,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5693,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5693,1
    - Dst: ucol_getTailoredSet
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5697,1
    - Dst: ucol_getTailoredSet
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5698,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5725,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5722,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5732,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5669,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5674,1
    - Dst: uprv_malloc
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5682,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5684,1
    - Dst: uset_getItemCount
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5706,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5713,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5715,1
    - Dst: compare_uint8_t_arrays
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5716,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5738,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5739,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5662,1
    - Dst: ucol_getRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5667,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5663,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5675,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5691,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5692,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5687,1
    - Dst: uset_equals
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5700,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5717,1
    - Dst: compare_uint8_t_arrays
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5724,1
    - Dst: uset_getItem
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5709,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5690,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5701,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5704,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5714,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5723,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5734,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5737,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:5736,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 82
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 5740
      start: 5632
    functionDepth: 0
    functionLinenumber: 5632
    functionLinenumberEnd: 5740
    functionName: TestImportWithType
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_open
    - compare_uint8_t_arrays
    - log_err_status
    - uprv_free
    - ucol_close
    - uprv_malloc
    - ucol_getRules
    - U_FAILURE
    - uset_getItemCount
    - log_data_err
    - ucol_getTailoredSet
    - ucol_getSortKey
    - uset_equals
    - u_unescape
    - U16_APPEND_UNSAFE
    - log_err
    - u_strcat
    - ucol_openRules
    - myErrorName
    - uset_getItem
    - uset_close
    linkageType: ''
    returnType: void
    signature: 'static void TestImportWithType(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2338,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2340,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2345
      start: 2320
    functionDepth: 0
    functionLinenumber: 2320
    functionLinenumberEnd: 2345
    functionName: TestPrefixCompose
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_openRules
    - u_unescape
    linkageType: ''
    returnType: void
    signature: 'static void TestPrefixCompose(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4388,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4389
      start: 4383
    functionDepth: 0
    functionLinenumber: 4383
    functionLinenumberEnd: 4389
    functionName: TestSameStrengthListRanges
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestSameStrengthListRanges(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericLocaleStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2206,1
    - Dst: genericLocaleStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2209,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2206,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2207,1
    - Dst: genericLocaleStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2207,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2209,1
    - Dst: genericLocaleStarterWithOptions
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2210,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2211
      start: 2053
    functionDepth: 0
    functionLinenumber: 2053
    functionLinenumberEnd: 2211
    functionName: TestNewJapanese
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - genericLocaleStarterWithOptions
    linkageType: ''
    returnType: void
    signature: 'static void TestNewJapanese(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:695,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:697,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 698
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 698
    functionName: TestEmptyRule
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestEmptyRule(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2919,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2921,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2923,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2922,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2920,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2924,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2925,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2926,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2927,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2928,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2929
      start: 2914
    functionDepth: 0
    functionLinenumber: 2914
    functionLinenumberEnd: 2929
    functionName: TestJ2726
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_setAttribute
    - doTest
    - ucol_open
    linkageType: ''
    returnType: void
    signature: 'static void TestJ2726(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4348,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4349
      start: 4340
    functionDepth: 0
    functionLinenumber: 4340
    functionLinenumberEnd: 4349
    functionName: TestSameStrengthListSupplemental
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestSameStrengthListSupplemental(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4546,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4562,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4562,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4565,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4565,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4584,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4597,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4554,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4570,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4577,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4592,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4596,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4560,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4563,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4564,1
    - Dst: ucol_setReorderCodes
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4583,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4585,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4585,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4549,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4576,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4579,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4572,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4590,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4599,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4602,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4603
      start: 4529
    functionDepth: 0
    functionLinenumber: 4529
    functionLinenumberEnd: 4603
    functionName: TestBeforeRuleWithScriptReordering
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_getSortKey
    - u_unescape
    - U_FAILURE
    - log_err_status
    - ucol_setReorderCodes
    - myErrorName
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - ucol_strcoll
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestBeforeRuleWithScriptReordering(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cmsccoll.c:706,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:708,1
    - Dst: ucol_getRulesEx
      Src: /src/icu/source/test/cintltst/cmsccoll.c:714,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:711,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:710,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:716,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsccoll.c:718,1
    - Dst: ucol_getRulesEx
      Src: /src/icu/source/test/cintltst/cmsccoll.c:719,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:721,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:722,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsccoll.c:726,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsccoll.c:734,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsccoll.c:723,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:724,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:732,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 736
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 736
    functionName: TestUCARules
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - malloc
    - ucol_open
    - U_FAILURE
    - log_data_err
    - U_SUCCESS
    - free
    - ucol_getRulesEx
    - log_err
    - log_verbose
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestUCARules(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2934,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2935,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2941,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2937,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2936,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2942,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2943,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2943,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cmsccoll.c:2945,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2947
      start: 2931
    functionDepth: 0
    functionLinenumber: 2931
    functionLinenumberEnd: 2947
    functionName: NullRule
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - U_FAILURE
    - log_err_status
    - U_SUCCESS
    - log_err
    - u_errorName
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void NullRule(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestOneTestCase
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4367,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsccoll.c:4367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4368
      start: 4351
    functionDepth: 0
    functionLinenumber: 4351
    functionLinenumberEnd: 4368
    functionName: TestSameStrengthListQwerty
    functionSourceFile: /src/icu/source/test/cintltst/cmsccoll.c
    functionUses: []
    functionsReached:
    - doTestOneTestCase
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestSameStrengthListQwerty(void) '
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:525,1
    - Dst: u_strcspn
      Src: /src/icu/source/test/cintltst/custrtst.c:578,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:603,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:643,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:660,1
    - Dst: u_strcspn
      Src: /src/icu/source/test/cintltst/custrtst.c:608,1
    - Dst: u_strcspn
      Src: /src/icu/source/test/cintltst/custrtst.c:605,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:615,1
    - Dst: u_strspn
      Src: /src/icu/source/test/cintltst/custrtst.c:633,1
    - Dst: u_strspn
      Src: /src/icu/source/test/cintltst/custrtst.c:645,1
    - Dst: u_strspn
      Src: /src/icu/source/test/cintltst/custrtst.c:662,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:606,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:503,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:528,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:533,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:540,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:546,1
    - Dst: u_strcspn
      Src: /src/icu/source/test/cintltst/custrtst.c:572,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:597,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:609,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:631,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:576,1
    - Dst: u_strcspn
      Src: /src/icu/source/test/cintltst/custrtst.c:599,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:512,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:542,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:548,1
    - Dst: u_strcspn
      Src: /src/icu/source/test/cintltst/custrtst.c:611,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:668,1
    - Dst: u_strspn
      Src: /src/icu/source/test/cintltst/custrtst.c:677,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:515,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:521,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:588,1
    - Dst: u_strspn
      Src: /src/icu/source/test/cintltst/custrtst.c:653,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:669,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:675,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:678,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:536,1
    - Dst: u_strcspn
      Src: /src/icu/source/test/cintltst/custrtst.c:569,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:581,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:584,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:594,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:657,1
    - Dst: u_strspn
      Src: /src/icu/source/test/cintltst/custrtst.c:671,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:591,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:504,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:534,1
    - Dst: u_strcspn
      Src: /src/icu/source/test/cintltst/custrtst.c:617,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:637,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:646,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:666,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:587,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:501,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:506,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:513,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:519,1
    - Dst: u_strspn
      Src: /src/icu/source/test/cintltst/custrtst.c:639,1
    - Dst: u_strspn
      Src: /src/icu/source/test/cintltst/custrtst.c:648,1
    - Dst: u_strspn
      Src: /src/icu/source/test/cintltst/custrtst.c:668,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:509,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:554,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:555,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:579,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:582,1
    - Dst: u_strcspn
      Src: /src/icu/source/test/cintltst/custrtst.c:602,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:563,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:623,1
    - Dst: u_strspn
      Src: /src/icu/source/test/cintltst/custrtst.c:642,1
    - Dst: u_strspn
      Src: /src/icu/source/test/cintltst/custrtst.c:659,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:530,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:537,1
    - Dst: u_strcspn
      Src: /src/icu/source/test/cintltst/custrtst.c:581,1
    - Dst: u_strcspn
      Src: /src/icu/source/test/cintltst/custrtst.c:584,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:634,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:652,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:663,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:672,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:573,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:585,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:543,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:549,1
    - Dst: u_strcspn
      Src: /src/icu/source/test/cintltst/custrtst.c:596,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:618,1
    - Dst: u_strspn
      Src: /src/icu/source/test/cintltst/custrtst.c:630,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:552,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:551,1
    - Dst: u_strcspn
      Src: /src/icu/source/test/cintltst/custrtst.c:575,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:600,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:561,1
    - Dst: u_strcspn
      Src: /src/icu/source/test/cintltst/custrtst.c:587,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:507,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:545,1
    - Dst: u_strcspn
      Src: /src/icu/source/test/cintltst/custrtst.c:620,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:640,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:510,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:518,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:524,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:564,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:560,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:612,1
    - Dst: u_strcspn
      Src: /src/icu/source/test/cintltst/custrtst.c:623,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:654,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:605,1
    - Dst: u_strcspn
      Src: /src/icu/source/test/cintltst/custrtst.c:593,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:531,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:570,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:608,1
    - Dst: u_strcspn
      Src: /src/icu/source/test/cintltst/custrtst.c:614,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:624,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:645,1
    - Dst: u_strspn
      Src: /src/icu/source/test/cintltst/custrtst.c:656,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:567,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:539,1
    - Dst: u_strspn
      Src: /src/icu/source/test/cintltst/custrtst.c:636,1
    - Dst: u_strspn
      Src: /src/icu/source/test/cintltst/custrtst.c:665,1
    - Dst: u_strspn
      Src: /src/icu/source/test/cintltst/custrtst.c:674,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:558,1
    - Dst: u_strpbrk
      Src: /src/icu/source/test/cintltst/custrtst.c:557,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:611,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:522,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:516,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:621,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:628,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:649,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 232
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 680
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 680
    functionName: TestStringSearching
    functionSourceFile: /src/icu/source/test/cintltst/custrtst.c
    functionUses: []
    functionsReached:
    - u_strspn
    - u_strcspn
    - u_strlen
    - u_strpbrk
    - log_verbose
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestStringSearching() '
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:145,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:245,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:267,1
    - Dst: u_memchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:309,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:383,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:435,1
    - Dst: u_strCompare
      Src: /src/icu/source/test/cintltst/custrtst.c:446,1
    - Dst: u_strCompare
      Src: /src/icu/source/test/cintltst/custrtst.c:447,1
    - Dst: uiter_setString
      Src: /src/icu/source/test/cintltst/custrtst.c:463,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/custrtst.c:228,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:113,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:176,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/custrtst.c:243,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:250,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:259,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:265,1
    - Dst: u_strchr
      Src: /src/icu/source/test/cintltst/custrtst.c:278,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:372,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/custrtst.c:456,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:399,1
    - Dst: u_memset
      Src: /src/icu/source/test/cintltst/custrtst.c:234,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/custrtst.c:216,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:111,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:170,1
    - Dst: u_memchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:305,1
    - Dst: u_strchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:328,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:339,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:375,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/custrtst.c:468,1
    - Dst: u_strCompareIter
      Src: /src/icu/source/test/cintltst/custrtst.c:464,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:187,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:206,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:112,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:115,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:185,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:295,1
    - Dst: u_memchr
      Src: /src/icu/source/test/cintltst/custrtst.c:300,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:352,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:370,1
    - Dst: u_strCompare
      Src: /src/icu/source/test/cintltst/custrtst.c:455,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:465,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:311,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:129,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:156,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:198,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/custrtst.c:235,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:275,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:366,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:400,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:404,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:430,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:440,1
    - Dst: u_strCompare
      Src: /src/icu/source/test/cintltst/custrtst.c:449,1
    - Dst: u_strtok_r
      Src: /src/icu/source/test/cintltst/custrtst.c:402,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/custrtst.c:194,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/custrtst.c:202,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/custrtst.c:205,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/custrtst.c:251,1
    - Dst: u_memset
      Src: /src/icu/source/test/cintltst/custrtst.c:250,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/custrtst.c:252,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:240,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:389,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:392,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:445,1
    - Dst: u_strtok_r
      Src: /src/icu/source/test/cintltst/custrtst.c:388,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:444,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:237,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:112,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:121,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/custrtst.c:132,1
    - Dst: u_memcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:124,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:181,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:329,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:337,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:395,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:401,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:432,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:201,1
    - Dst: setUpDataTable
      Src: /src/icu/source/test/cintltst/custrtst.c:109,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:178,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:280,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/custrtst.c:359,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:380,1
    - Dst: u_strCompareIter
      Src: /src/icu/source/test/cintltst/custrtst.c:467,1
    - Dst: u_strtok_r
      Src: /src/icu/source/test/cintltst/custrtst.c:391,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:135,1
    - Dst: u_memset
      Src: /src/icu/source/test/cintltst/custrtst.c:138,1
    - Dst: u_memcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:151,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/custrtst.c:193,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:232,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/custrtst.c:244,1
    - Dst: u_strchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:273,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:302,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:356,1
    - Dst: u_strtok_r
      Src: /src/icu/source/test/cintltst/custrtst.c:379,1
    - Dst: u_strncmpCodePointOrder
      Src: /src/icu/source/test/cintltst/custrtst.c:439,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:229,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:127,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:242,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:270,1
    - Dst: u_strchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:283,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/custrtst.c:338,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:342,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:360,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:367,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/custrtst.c:403,1
    - Dst: u_strncmpCodePointOrder
      Src: /src/icu/source/test/cintltst/custrtst.c:434,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:217,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:153,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:162,1
    - Dst: u_strncat
      Src: /src/icu/source/test/cintltst/custrtst.c:216,1
    - Dst: u_memchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:331,1
    - Dst: u_strtok_r
      Src: /src/icu/source/test/cintltst/custrtst.c:371,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:451,1
    - Dst: cleanUpDataTable
      Src: /src/icu/source/test/cintltst/custrtst.c:474,1
    - Dst: uiter_setString
      Src: /src/icu/source/test/cintltst/custrtst.c:462,1
    - Dst: u_strCompare
      Src: /src/icu/source/test/cintltst/custrtst.c:448,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:191,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:112,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:166,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/custrtst.c:184,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:267,1
    - Dst: u_strtok_r
      Src: /src/icu/source/test/cintltst/custrtst.c:406,1
    - Dst: _SIGN
      Src: /src/icu/source/test/cintltst/custrtst.c:457,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:407,1
    - Dst: _SIGN
      Src: /src/icu/source/test/cintltst/custrtst.c:468,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/custrtst.c:128,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/custrtst.c:152,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:234,1
    - Dst: u_strncpy
      Src: /src/icu/source/test/cintltst/custrtst.c:225,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:224,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:212,1
    - Dst: u_strchr
      Src: /src/icu/source/test/cintltst/custrtst.c:264,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:290,1
    - Dst: u_memchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:331,1
    - Dst: u_strtok_r
      Src: /src/icu/source/test/cintltst/custrtst.c:362,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:469,1
    - Dst: u_memcmpCodePointOrder
      Src: /src/icu/source/test/cintltst/custrtst.c:439,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:248,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:253,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:195,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:203,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:209,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:221,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:214,1
    - Dst: u_strchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:328,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:353,1
    - Dst: u_strtok_r
      Src: /src/icu/source/test/cintltst/custrtst.c:355,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/custrtst.c:180,1
    - Dst: u_memmove
      Src: /src/icu/source/test/cintltst/custrtst.c:160,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:112,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:133,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:141,1
    - Dst: u_memset
      Src: /src/icu/source/test/cintltst/custrtst.c:148,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/custrtst.c:236,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:176,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:256,1
    - Dst: u_memchr
      Src: /src/icu/source/test/cintltst/custrtst.c:288,1
    - Dst: _SIGN
      Src: /src/icu/source/test/cintltst/custrtst.c:468,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:458,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:387,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:307,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:192,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:121,1
    - Dst: u_memset
      Src: /src/icu/source/test/cintltst/custrtst.c:242,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:285,1
    - Dst: u_memchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:293,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:336,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:358,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:378,1
    - Dst: u_strcmpCodePointOrder
      Src: /src/icu/source/test/cintltst/custrtst.c:431,1
    - Dst: _SIGN
      Src: /src/icu/source/test/cintltst/custrtst.c:457,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:332,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 403
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 475
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 475
    functionName: TestStringFunctions
    functionSourceFile: /src/icu/source/test/cintltst/custrtst.c
    functionUses: []
    functionsReached:
    - setUpDataTable
    - u_strCompareIter
    - u_strncpy
    - u_strtok_r
    - u_strcmpCodePointOrder
    - _SIGN
    - uiter_setString
    - u_strchr
    - u_strCompare
    - u_memcpy
    - u_strcpy
    - u_strlen
    - log_verbose
    - u_strncmp
    - UPRV_LENGTHOF
    - u_memchr32
    - u_austrcpy
    - u_uastrcpy
    - strcmp
    - u_memset
    - cleanUpDataTable
    - u_strncmpCodePointOrder
    - log_err
    - u_strcat
    - u_strncat
    - u_strchr32
    - u_uastrncpy
    - u_memcmpCodePointOrder
    - u_memmove
    - u_memchr
    - u_memcmp
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestStringFunctions() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/icu/source/test/cintltst/custrtst.c:91,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/custrtst.c:93,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/custrtst.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: cleanUpDataTable
    functionSourceFile: /src/icu/source/test/cintltst/custrtst.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void cleanUpDataTable() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/icu/source/test/cintltst/custrtst.c:73,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:79,1
    - Dst: calloc
      Src: /src/icu/source/test/cintltst/custrtst.c:76,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:78,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/custrtst.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 83
    functionName: setUpDataTable
    functionSourceFile: /src/icu/source/test/cintltst/custrtst.c
    functionUses: []
    functionsReached:
    - calloc
    - strlen
    - malloc
    - u_uastrcpy
    linkageType: ''
    returnType: void
    signature: 'static void setUpDataTable() '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:737,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:742,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:759,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/custrtst.c:840,1
    - Dst: u_memrchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:848,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:852,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:874,1
    - Dst: u_memchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:882,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:941,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:954,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:781,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:735,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/custrtst.c:734,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:742,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/custrtst.c:756,1
    - Dst: u_memrchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:764,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:784,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:816,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:830,1
    - Dst: u_strrstr
      Src: /src/icu/source/test/cintltst/custrtst.c:849,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:865,1
    - Dst: u_strchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:897,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/custrtst.c:918,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:957,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:962,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/custrtst.c:815,1
    - Dst: u_memchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:755,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:768,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:738,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:745,1
    - Dst: u_memrchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:823,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:827,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:909,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:922,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/custrtst.c:951,1
    - Dst: u_memchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:898,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:959,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:855,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:890,1
    - Dst: u_strrstr
      Src: /src/icu/source/test/cintltst/custrtst.c:940,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:782,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:792,1
    - Dst: u_strchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:800,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:771,1
    - Dst: u_memchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:723,1
    - Dst: u_memrchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:727,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:737,1
    - Dst: u_strrstr
      Src: /src/icu/source/test/cintltst/custrtst.c:739,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:818,1
    - Dst: u_strrstr
      Src: /src/icu/source/test/cintltst/custrtst.c:824,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:944,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:736,1
    - Dst: u_memchr
      Src: /src/icu/source/test/cintltst/custrtst.c:754,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:757,1
    - Dst: u_memrchr
      Src: /src/icu/source/test/cintltst/custrtst.c:822,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:850,1
    - Dst: u_strrstr
      Src: /src/icu/source/test/cintltst/custrtst.c:871,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:910,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:924,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:937,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:919,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:939,1
    - Dst: u_strchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:721,1
    - Dst: u_strrchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:725,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:741,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:783,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:795,1
    - Dst: u_strrchr
      Src: /src/icu/source/test/cintltst/custrtst.c:785,1
    - Dst: u_memchr
      Src: /src/icu/source/test/cintltst/custrtst.c:838,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:867,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:889,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:892,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/custrtst.c:899,1
    - Dst: u_memchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:839,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:805,1
    - Dst: u_memchr
      Src: /src/icu/source/test/cintltst/custrtst.c:722,1
    - Dst: u_memrchr
      Src: /src/icu/source/test/cintltst/custrtst.c:726,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:740,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:825,1
    - Dst: u_strchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:862,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:866,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:875,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:887,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:903,1
    - Dst: u_strrstr
      Src: /src/icu/source/test/cintltst/custrtst.c:923,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:901,1
    - Dst: u_memrchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:788,1
    - Dst: u_memchr
      Src: /src/icu/source/test/cintltst/custrtst.c:813,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:723,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:727,1
    - Dst: u_strrchr
      Src: /src/icu/source/test/cintltst/custrtst.c:761,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:841,1
    - Dst: u_memrchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:870,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:883,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:900,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:942,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:819,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:844,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:868,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:908,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:920,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:921,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:927,1
    - Dst: u_strchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:812,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:760,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:791,1
    - Dst: u_strrchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:786,1
    - Dst: u_memchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:801,1
    - Dst: u_strrchr
      Src: /src/icu/source/test/cintltst/custrtst.c:820,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:828,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:853,1
    - Dst: u_strrchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:869,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:884,1
    - Dst: u_strrchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:904,1
    - Dst: u_memrchr
      Src: /src/icu/source/test/cintltst/custrtst.c:787,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:722,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:726,1
    - Dst: u_memrchr
      Src: /src/icu/source/test/cintltst/custrtst.c:847,1
    - Dst: u_memrchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:885,1
    - Dst: u_memrchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:905,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:943,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:955,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:902,1
    - Dst: u_memrchr
      Src: /src/icu/source/test/cintltst/custrtst.c:763,1
    - Dst: u_memchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:779,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:766,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:729,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:769,1
    - Dst: u_strrstr
      Src: /src/icu/source/test/cintltst/custrtst.c:789,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:872,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:925,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:938,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:953,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:843,1
    - Dst: u_memrchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:888,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:743,1
    - Dst: u_strchr
      Src: /src/icu/source/test/cintltst/custrtst.c:752,1
    - Dst: u_strchr
      Src: /src/icu/source/test/cintltst/custrtst.c:776,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:817,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:842,1
    - Dst: u_strrchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:846,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/custrtst.c:864,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:886,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:912,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:743,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:758,1
    - Dst: u_strrchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:802,1
    - Dst: u_strrchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:762,1
    - Dst: u_strchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:777,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:793,1
    - Dst: u_memchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:814,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:790,1
    - Dst: u_strchr
      Src: /src/icu/source/test/cintltst/custrtst.c:836,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:851,1
    - Dst: u_strrstr
      Src: /src/icu/source/test/cintltst/custrtst.c:956,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/custrtst.c:935,1
    - Dst: u_memrchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:803,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtst.c:717,1
    - Dst: u_strrchr
      Src: /src/icu/source/test/cintltst/custrtst.c:724,1
    - Dst: u_strchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:753,1
    - Dst: u_memchr
      Src: /src/icu/source/test/cintltst/custrtst.c:778,1
    - Dst: u_strrchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:821,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:873,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:877,1
    - Dst: u_strrstr
      Src: /src/icu/source/test/cintltst/custrtst.c:906,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:926,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:946,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:960,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:958,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:907,1
    - Dst: u_strrstr
      Src: /src/icu/source/test/cintltst/custrtst.c:765,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:767,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/custrtst.c:780,1
    - Dst: u_strchr
      Src: /src/icu/source/test/cintltst/custrtst.c:720,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:738,1
    - Dst: u_strchr
      Src: /src/icu/source/test/cintltst/custrtst.c:811,1
    - Dst: u_strFindLast
      Src: /src/icu/source/test/cintltst/custrtst.c:826,1
    - Dst: u_strchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:837,1
    - Dst: u_strrchr
      Src: /src/icu/source/test/cintltst/custrtst.c:845,1
    - Dst: u_memchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:863,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:936,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/custrtst.c:952,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:929,1
    CyclomaticComplexity: 164
    EdgeCount: 164
    ICount: 672
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 964
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 964
    functionName: TestSurrogateSearching
    functionSourceFile: /src/icu/source/test/cintltst/custrtst.c
    functionUses: []
    functionsReached:
    - u_strrchr32
    - u_strrstr
    - u_strchr
    - u_memchr32
    - u_strchr32
    - u_strFindLast
    - u_strlen
    - u_memrchr
    - u_strstr
    - u_memchr
    - log_err
    - u_strrchr
    - UPRV_LENGTHOF
    - u_strFindFirst
    - u_memrchr32
    linkageType: ''
    returnType: void
    signature: 'static void TestSurrogateSearching() '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:975,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/custrtst.c:978,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:989,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/custrtst.c:1008,1
    - Dst: strncmp
      Src: /src/icu/source/test/cintltst/custrtst.c:1009,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:992,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/custrtst.c:989,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1028,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/custrtst.c:1035,1
    - Dst: u_memchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:1068,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:977,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:979,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/custrtst.c:979,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/custrtst.c:989,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1010,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/custrtst.c:1010,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:1031,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/custrtst.c:1039,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1041,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1045,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1070,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1078,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1066,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/custrtst.c:979,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1013,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/custrtst.c:1010,1
    - Dst: u_strchr
      Src: /src/icu/source/test/cintltst/custrtst.c:1026,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1037,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:1049,1
    - Dst: u_memchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:1076,1
    - Dst: u_strchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:1050,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/custrtst.c:987,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/custrtst.c:988,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtst.c:1017,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/custrtst.c:1043,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1052,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1056,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1060,1
    - Dst: u_memchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:1064,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1074,1
    - Dst: u_strchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:1058,1
    - Dst: u_memchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:1072,1
    - Dst: u_strchr32
      Src: /src/icu/source/test/cintltst/custrtst.c:1054,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 130
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 1080
    functionName: TestStringCopy
    functionSourceFile: /src/icu/source/test/cintltst/custrtst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - u_strchr
    - u_memchr32
    - u_austrncpy
    - u_strchr32
    - u_uastrncpy
    - austrdup
    - log_verbose
    - log_err
    - u_strncmp
    - strncmp
    - u_strstr
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestStringCopy() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:1097,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:1101,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1103,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/custrtst.c:1102,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/custrtst.c:1101,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/custrtst.c:1108,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:1108,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/custrtst.c:1109,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1114
    functionName: TestUnescape
    functionSourceFile: /src/icu/source/test/cintltst/custrtst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - u_strcmp
    - log_err
    - u_unescape
    linkageType: ''
    returnType: void
    signature: 'static void TestUnescape() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_strHasMoreChar32Than
      Src: /src/icu/source/test/cintltst/custrtst.c:1128,1
    - Dst: _refStrHasMoreChar32Than
      Src: /src/icu/source/test/cintltst/custrtst.c:1128,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1129,1
    - Dst: u_strHasMoreChar32Than
      Src: /src/icu/source/test/cintltst/custrtst.c:1130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - s
    - i
    - length
    - number
    argTypes:
    - UChar*
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1132
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1132
    functionName: _testStrHasMoreChar32Than
    functionSourceFile: /src/icu/source/test/cintltst/custrtst.c
    functionUses: []
    functionsReached:
    - _refStrHasMoreChar32Than
    - u_strHasMoreChar32Than
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void _testStrHasMoreChar32Than(const UChar *s, int32_t i, int32_t
      length, int32_t number) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtst.c:45,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtst.c:46,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtst.c:47,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtst.c:48,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtst.c:49,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtst.c:50,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtst.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: addUStringTest
    functionSourceFile: /src/icu/source/test/cintltst/custrtst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addUStringTest(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_countChar32
      Src: /src/icu/source/test/cintltst/custrtst.c:1121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - s
    - length
    - number
    argTypes:
    - UChar*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1123
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1123
    functionName: _refStrHasMoreChar32Than
    functionSourceFile: /src/icu/source/test/cintltst/custrtst.c
    functionUses: []
    functionsReached:
    - u_countChar32
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t _refStrHasMoreChar32Than(const UChar *s, int32_t length,
      int32_t number) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uiter_setString
      Src: /src/icu/source/test/cintltst/custrtst.c:1459,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1467,1
    - Dst: compareIterators
      Src: /src/icu/source/test/cintltst/custrtst.c:1473,1
    - Dst: ucnv_fromUChars
      Src: /src/icu/source/test/cintltst/custrtst.c:1488,1
    - Dst: uiter_setString
      Src: /src/icu/source/test/cintltst/custrtst.c:1498,1
    - Dst: uiter_setUTF16BE
      Src: /src/icu/source/test/cintltst/custrtst.c:1508,1
    - Dst: uiter_setString
      Src: /src/icu/source/test/cintltst/custrtst.c:1471,1
    - Dst: uiter_setUTF8
      Src: /src/icu/source/test/cintltst/custrtst.c:1472,1
    - Dst: testIteratorState
      Src: /src/icu/source/test/cintltst/custrtst.c:1482,1
    - Dst: testIteratorState
      Src: /src/icu/source/test/cintltst/custrtst.c:1483,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/custrtst.c:1487,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/custrtst.c:1489,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtst.c:1491,1
    - Dst: compareIterators
      Src: /src/icu/source/test/cintltst/custrtst.c:1500,1
    - Dst: compareIterators
      Src: /src/icu/source/test/cintltst/custrtst.c:1509,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1491,1
    - Dst: uiter_setUTF16BE
      Src: /src/icu/source/test/cintltst/custrtst.c:1499,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:1457,1
    - Dst: uiter_setString
      Src: /src/icu/source/test/cintltst/custrtst.c:1458,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/custrtst.c:1465,1
    - Dst: testIteratorState
      Src: /src/icu/source/test/cintltst/custrtst.c:1460,1
    - Dst: testIteratorState
      Src: /src/icu/source/test/cintltst/custrtst.c:1461,1
    - Dst: uiter_setUTF8
      Src: /src/icu/source/test/cintltst/custrtst.c:1476,1
    - Dst: compareIterators
      Src: /src/icu/source/test/cintltst/custrtst.c:1477,1
    - Dst: uiter_setString
      Src: /src/icu/source/test/cintltst/custrtst.c:1448,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1453,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtst.c:1467,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtst.c:1466,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:1480,1
    - Dst: uiter_setUTF8
      Src: /src/icu/source/test/cintltst/custrtst.c:1481,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtst.c:1490,1
    - Dst: uiter_setUTF16BE
      Src: /src/icu/source/test/cintltst/custrtst.c:1503,1
    - Dst: compareIterators
      Src: /src/icu/source/test/cintltst/custrtst.c:1504,1
    - Dst: memmove
      Src: /src/icu/source/test/cintltst/custrtst.c:1507,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1435
    functionDepth: 0
    functionLinenumber: 1435
    functionLinenumberEnd: 1512
    functionName: TestUCharIterator
    functionSourceFile: /src/icu/source/test/cintltst/custrtst.c
    functionUses: []
    functionsReached:
    - uiter_setUTF16BE
    - ucnv_close
    - uiter_setString
    - ucnv_fromUChars
    - U_FAILURE
    - compareIterators
    - ucnv_open
    - uiter_setUTF8
    - memmove
    - u_strToUTF8
    - log_err
    - testIteratorState
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUCharIterator() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:1147,1
    - Dst: _testStrHasMoreChar32Than
      Src: /src/icu/source/test/cintltst/custrtst.c:1164,1
    - Dst: u_memcpy
      Src: /src/icu/source/test/cintltst/custrtst.c:1159,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtst.c:1158,1
    - Dst: _testStrHasMoreChar32Than
      Src: /src/icu/source/test/cintltst/custrtst.c:1151,1
    - Dst: _testStrHasMoreChar32Than
      Src: /src/icu/source/test/cintltst/custrtst.c:1174,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1134
    functionDepth: 0
    functionLinenumber: 1134
    functionLinenumberEnd: 1178
    functionName: TestCountChar32
    functionSourceFile: /src/icu/source/test/cintltst/custrtst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - _testStrHasMoreChar32Than
    - u_memcpy
    linkageType: ''
    returnType: void
    signature: 'static void TestCountChar32() '
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1206,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1269,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1279,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1292,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1305,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1340,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1239,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1197,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1212,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1220,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1229,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1251,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1261,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1322,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1275,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1247,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1299,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1316,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1326,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1334,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1257,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1344,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1286,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1312,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 137
    argCount: 4
    argNames:
    - iter1
    - n1
    - iter2
    - n2
    argTypes:
    - UCharIterator*
    - char*
    - UCharIterator*
    - char*
    constantsTouched: []
    func_position:
      end: 1347
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1347
    functionName: compareIterators
    functionSourceFile: /src/icu/source/test/cintltst/custrtst.c
    functionUses: []
    functionsReached:
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void compareIterators(UCharIterator *iter1, const char *n1,
      UCharIterator *iter2, const char *n2) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: uiter_setState
      Src: /src/icu/source/test/cintltst/custrtst.c:1385,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1387,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtst.c:1387,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1404,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1421,1
    - Dst: uiter_getState
      Src: /src/icu/source/test/cintltst/custrtst.c:1381,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtst.c:1386,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1431,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1424,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1373,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1398,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1410,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtst.c:1393,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 67
    argCount: 4
    argNames:
    - iter1
    - iter2
    - n
    - middle
    argTypes:
    - UCharIterator*
    - UCharIterator*
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1433
      start: 1358
    functionDepth: 0
    functionLinenumber: 1358
    functionLinenumberEnd: 1433
    functionName: testIteratorState
    functionSourceFile: /src/icu/source/test/cintltst/custrtst.c
    functionUses: []
    functionsReached:
    - uiter_getState
    - U_FAILURE
    - uiter_setState
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void testIteratorState(UCharIterator *iter1, UCharIterator
      *iter2, const char *n, int32_t middle) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/spooftest.c:87,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/spooftest.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: addUSpoofTest
    functionSourceFile: /src/icu/source/test/cintltst/spooftest.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addUSpoofTest(TestNode** root) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:231,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:252,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:262,1
    - Dst: uspoof_setAllowedChars
      Src: /src/icu/source/test/cintltst/spooftest.c:279,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:346,1
    - Dst: uspoof_getAllowedLocales
      Src: /src/icu/source/test/cintltst/spooftest.c:377,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/spooftest.c:380,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:397,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:424,1
    - Dst: uset_remove
      Src: /src/icu/source/test/cintltst/spooftest.c:427,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:598,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/spooftest.c:492,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:404,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:519,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:309,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:352,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:388,1
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/spooftest.c:419,1
    - Dst: uset_equals
      Src: /src/icu/source/test/cintltst/spooftest.c:420,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/spooftest.c:430,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:462,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:472,1
    - Dst: uspoof_check
      Src: /src/icu/source/test/cintltst/spooftest.c:502,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:570,1
    - Dst: uspoof_setChecks
      Src: /src/icu/source/test/cintltst/spooftest.c:423,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:574,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/spooftest.c:589,1
    - Dst: uset_isFrozen
      Src: /src/icu/source/test/cintltst/spooftest.c:612,1
    - Dst: uspoof_check2
      Src: /src/icu/source/test/cintltst/spooftest.c:497,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:573,1
    - Dst: uspoof_checkUTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:456,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:276,1
    - Dst: uspoof_getAllowedLocales
      Src: /src/icu/source/test/cintltst/spooftest.c:370,1
    - Dst: uspoof_check
      Src: /src/icu/source/test/cintltst/spooftest.c:436,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:441,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:508,1
    - Dst: uspoof_checkUTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:517,1
    - Dst: uspoof_areConfusable
      Src: /src/icu/source/test/cintltst/spooftest.c:532,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:563,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:571,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/spooftest.c:590,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:498,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:588,1
    - Dst: uspoof_check
      Src: /src/icu/source/test/cintltst/spooftest.c:330,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:297,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:280,1
    - Dst: uspoof_check
      Src: /src/icu/source/test/cintltst/spooftest.c:322,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/spooftest.c:380,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:401,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:499,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:505,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:594,1
    - Dst: uspoof_getCheckResultChecks
      Src: /src/icu/source/test/cintltst/spooftest.c:508,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:537,1
    - Dst: uspoof_check
      Src: /src/icu/source/test/cintltst/spooftest.c:471,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:538,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:504,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:211,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/spooftest.c:216,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:221,1
    - Dst: uspoof_getChecks
      Src: /src/icu/source/test/cintltst/spooftest.c:251,1
    - Dst: uspoof_check
      Src: /src/icu/source/test/cintltst/spooftest.c:311,1
    - Dst: uspoof_check
      Src: /src/icu/source/test/cintltst/spooftest.c:307,1
    - Dst: uspoof_check
      Src: /src/icu/source/test/cintltst/spooftest.c:387,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:405,1
    - Dst: uspoof_getAllowedChars
      Src: /src/icu/source/test/cintltst/spooftest.c:417,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:418,1
    - Dst: uspoof_getCheckResultRestrictionLevel
      Src: /src/icu/source/test/cintltst/spooftest.c:511,1
    - Dst: uspoof_openCheckResult
      Src: /src/icu/source/test/cintltst/spooftest.c:486,1
    - Dst: uspoof_setChecks
      Src: /src/icu/source/test/cintltst/spooftest.c:485,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:250,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:358,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:396,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:487,1
    - Dst: uspoof_check
      Src: /src/icu/source/test/cintltst/spooftest.c:496,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:557,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:567,1
    - Dst: uspoof_getRecommendedSet
      Src: /src/icu/source/test/cintltst/spooftest.c:615,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:562,1
    - Dst: uset_isFrozen
      Src: /src/icu/source/test/cintltst/spooftest.c:617,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/spooftest.c:282,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:308,1
    - Dst: uspoof_check
      Src: /src/icu/source/test/cintltst/spooftest.c:230,1
    - Dst: uspoof_check
      Src: /src/icu/source/test/cintltst/spooftest.c:234,1
    - Dst: uspoof_getAllowedChars
      Src: /src/icu/source/test/cintltst/spooftest.c:275,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:328,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:350,1
    - Dst: uspoof_check2UTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:518,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:542,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:555,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:474,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:569,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:556,1
    - Dst: uspoof_check
      Src: /src/icu/source/test/cintltst/spooftest.c:440,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/spooftest.c:284,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:331,1
    - Dst: uspoof_setChecks
      Src: /src/icu/source/test/cintltst/spooftest.c:254,1
    - Dst: uspoof_getAllowedChars
      Src: /src/icu/source/test/cintltst/spooftest.c:281,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:392,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:457,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:461,1
    - Dst: uspoof_checkUTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:463,1
    - Dst: uspoof_getSkeleton
      Src: /src/icu/source/test/cintltst/spooftest.c:587,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/spooftest.c:587,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:468,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:541,1
    - Dst: uspoof_areConfusableUTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:565,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:512,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:560,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/spooftest.c:212,1
    - Dst: uspoof_openFromSerialized
      Src: /src/icu/source/test/cintltst/spooftest.c:224,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:312,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/spooftest.c:277,1
    - Dst: uspoof_close
      Src: /src/icu/source/test/cintltst/spooftest.c:314,1
    - Dst: TEST_ASSERT_NE
      Src: /src/icu/source/test/cintltst/spooftest.c:298,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:357,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:378,1
    - Dst: uspoof_check
      Src: /src/icu/source/test/cintltst/spooftest.c:395,1
    - Dst: uspoof_setAllowedLocales
      Src: /src/icu/source/test/cintltst/spooftest.c:400,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:612,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:393,1
    - Dst: uspoof_closeCheckResult
      Src: /src/icu/source/test/cintltst/spooftest.c:523,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:516,1
    - Dst: uspoof_areConfusableUTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:572,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:227,1
    - Dst: TEST_ASSERT_NE
      Src: /src/icu/source/test/cintltst/spooftest.c:226,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:236,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:345,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:255,1
    - Dst: uspoof_check
      Src: /src/icu/source/test/cintltst/spooftest.c:326,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:376,1
    - Dst: uspoof_check
      Src: /src/icu/source/test/cintltst/spooftest.c:403,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:459,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:465,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:473,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:611,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:437,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:324,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:323,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:332,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:225,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:235,1
    - Dst: uspoof_close
      Src: /src/icu/source/test/cintltst/spooftest.c:238,1
    - Dst: uspoof_clone
      Src: /src/icu/source/test/cintltst/spooftest.c:300,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/spooftest.c:372,1
    - Dst: uspoof_setAllowedLocales
      Src: /src/icu/source/test/cintltst/spooftest.c:375,1
    - Dst: uspoof_check
      Src: /src/icu/source/test/cintltst/spooftest.c:391,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:564,1
    - Dst: uspoof_getAllowedChars
      Src: /src/icu/source/test/cintltst/spooftest.c:282,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/spooftest.c:191,1
    - Dst: uspoof_getChecks
      Src: /src/icu/source/test/cintltst/spooftest.c:256,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:264,1
    - Dst: uset_equals
      Src: /src/icu/source/test/cintltst/spooftest.c:282,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:464,1
    - Dst: uspoof_checkUTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:470,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:590,1
    - Dst: uspoof_getSkeleton
      Src: /src/icu/source/test/cintltst/spooftest.c:596,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:597,1
    - Dst: uspoof_areConfusable
      Src: /src/icu/source/test/cintltst/spooftest.c:536,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:454,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:533,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/spooftest.c:217,1
    - Dst: uspoof_serialize
      Src: /src/icu/source/test/cintltst/spooftest.c:219,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:327,1
    - Dst: uspoof_setChecks
      Src: /src/icu/source/test/cintltst/spooftest.c:259,1
    - Dst: uspoof_setChecks
      Src: /src/icu/source/test/cintltst/spooftest.c:349,1
    - Dst: uspoof_getChecks
      Src: /src/icu/source/test/cintltst/spooftest.c:351,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:371,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/spooftest.c:379,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:389,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/spooftest.c:420,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:520,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:453,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:566,1
    - Dst: TEST_ASSERT_NE
      Src: /src/icu/source/test/cintltst/spooftest.c:302,1
    - Dst: uspoof_open
      Src: /src/icu/source/test/cintltst/spooftest.c:189,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:190,1
    - Dst: uspoof_close
      Src: /src/icu/source/test/cintltst/spooftest.c:196,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:232,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/spooftest.c:239,1
    - Dst: uspoof_setChecks
      Src: /src/icu/source/test/cintltst/spooftest.c:249,1
    - Dst: uspoof_getChecks
      Src: /src/icu/source/test/cintltst/spooftest.c:263,1
    - Dst: uspoof_clone
      Src: /src/icu/source/test/cintltst/spooftest.c:296,1
    - Dst: uset_isFrozen
      Src: /src/icu/source/test/cintltst/spooftest.c:277,1
    - Dst: uspoof_check2
      Src: /src/icu/source/test/cintltst/spooftest.c:503,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/spooftest.c:593,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:475,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:616,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:301,1
    - Dst: uspoof_close
      Src: /src/icu/source/test/cintltst/spooftest.c:304,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:220,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:257,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:265,1
    - Dst: uspoof_getChecks
      Src: /src/icu/source/test/cintltst/spooftest.c:344,1
    - Dst: uspoof_check
      Src: /src/icu/source/test/cintltst/spooftest.c:356,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/spooftest.c:379,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:385,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:429,1
    - Dst: uspoof_areConfusable
      Src: /src/icu/source/test/cintltst/spooftest.c:540,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:617,1
    - Dst: uspoof_getSkeletonUTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:592,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:589,1
    - Dst: uspoof_areConfusableUTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:558,1
    - Dst: uspoof_setAllowedChars
      Src: /src/icu/source/test/cintltst/spooftest.c:428,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:515,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:534,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:283,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:313,1
    - Dst: uspoof_serialize
      Src: /src/icu/source/test/cintltst/spooftest.c:210,1
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/spooftest.c:278,1
    - Dst: TEST_ASSERT_NE
      Src: /src/icu/source/test/cintltst/spooftest.c:281,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/spooftest.c:372,1
    - Dst: uspoof_setChecks
      Src: /src/icu/source/test/cintltst/spooftest.c:384,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:442,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:458,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/spooftest.c:467,1
    - Dst: uspoof_getInclusionSet
      Src: /src/icu/source/test/cintltst/spooftest.c:610,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:559,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:438,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 303
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 620
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 620
    functionName: TestUSpoofCAPI
    functionSourceFile: /src/icu/source/test/cintltst/spooftest.c
    functionUses: []
    functionsReached:
    - TEST_ASSERT_NE
    - uset_isFrozen
    - uspoof_setAllowedChars
    - uspoof_serialize
    - u_strcmp
    - uspoof_open
    - free
    - uspoof_getChecks
    - uset_open
    - uspoof_areConfusableUTF8
    - uspoof_getInclusionSet
    - strstr
    - U_FAILURE
    - uspoof_setAllowedLocales
    - uspoof_checkUTF8
    - uspoof_check2
    - uspoof_getRecommendedSet
    - u_strlen
    - uspoof_check
    - TEST_ASSERT
    - UPRV_LENGTHOF
    - TEST_ASSERT_EQ
    - uspoof_areConfusable
    - uspoof_setChecks
    - uset_remove
    - uspoof_openCheckResult
    - uspoof_getSkeletonUTF8
    - uspoof_openFromSerialized
    - uset_equals
    - uspoof_close
    - uspoof_check2UTF8
    - uspoof_getAllowedLocales
    - strcmp
    - uspoof_closeCheckResult
    - u_strToUTF8
    - TEST_ASSERT_SUCCESS
    - uspoof_clone
    - malloc
    - uspoof_getSkeleton
    - uspoof_getCheckResultChecks
    - uspoof_getCheckResultRestrictionLevel
    - uset_close
    - uspoof_getAllowedChars
    linkageType: ''
    returnType: void
    signature: 'static void TestUSpoofCAPI(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ctest_dataSrcDir
      Src: /src/icu/source/test/cintltst/spooftest.c:138,1
    - Dst: TEST_ASSERT_NE
      Src: /src/icu/source/test/cintltst/spooftest.c:143,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/spooftest.c:150,1
    - Dst: fclose
      Src: /src/icu/source/test/cintltst/spooftest.c:157,1
    - Dst: uspoof_close
      Src: /src/icu/source/test/cintltst/spooftest.c:174,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/spooftest.c:173,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/spooftest.c:141,1
    - Dst: fopen
      Src: /src/icu/source/test/cintltst/spooftest.c:142,1
    - Dst: fread
      Src: /src/icu/source/test/cintltst/spooftest.c:146,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/spooftest.c:154,1
    - Dst: uspoof_check
      Src: /src/icu/source/test/cintltst/spooftest.c:167,1
    - Dst: fclose
      Src: /src/icu/source/test/cintltst/spooftest.c:147,1
    - Dst: TEST_ASSERT_NE
      Src: /src/icu/source/test/cintltst/spooftest.c:153,1
    - Dst: uspoof_openFromSource
      Src: /src/icu/source/test/cintltst/spooftest.c:160,1
    - Dst: TEST_ASSERT_EQ
      Src: /src/icu/source/test/cintltst/spooftest.c:169,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/spooftest.c:172,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/spooftest.c:140,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/spooftest.c:139,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/spooftest.c:139,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/spooftest.c:144,1
    - Dst: fopen
      Src: /src/icu/source/test/cintltst/spooftest.c:152,1
    - Dst: fread
      Src: /src/icu/source/test/cintltst/spooftest.c:156,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/spooftest.c:151,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:163,1
    - Dst: TEST_ASSERT_SUCCESS
      Src: /src/icu/source/test/cintltst/spooftest.c:168,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/spooftest.c:171,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 176
    functionName: TestOpenFromSource
    functionSourceFile: /src/icu/source/test/cintltst/spooftest.c
    functionUses: []
    functionsReached:
    - malloc
    - TEST_ASSERT_NE
    - fclose
    - fopen
    - uspoof_close
    - strcpy
    - uspoof_openFromSource
    - free
    - fread
    - uspoof_check
    - TEST_ASSERT_SUCCESS
    - ctest_dataSrcDir
    - strlen
    - TEST_ASSERT_EQ
    - strcat
    linkageType: ''
    returnType: void
    signature: 'static void TestOpenFromSource() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:47,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:51,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:50,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:49,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: addDateTimePatternGeneratorTest
    functionSourceFile: /src/icu/source/test/cintltst/udatpg_test.c
    functionUses: []
    functionsReached:
    - TESTCASE
    linkageType: ''
    returnType: void
    signature: 'void addDateTimePatternGeneratorTest(TestNode** root) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: udatpg_clone
      Src: /src/icu/source/test/cintltst/udatpg_test.c:101,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:103,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/udatpg_test.c:85,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:85,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:102,1
    - Dst: udatpg_getDecimal
      Src: /src/icu/source/test/cintltst/udatpg_test.c:108,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/udatpg_test.c:109,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:103,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:110,1
    - Dst: udatpg_open
      Src: /src/icu/source/test/cintltst/udatpg_test.c:83,1
    - Dst: udatpg_close
      Src: /src/icu/source/test/cintltst/udatpg_test.c:88,1
    - Dst: udatpg_open
      Src: /src/icu/source/test/cintltst/udatpg_test.c:91,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:92,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:93,1
    - Dst: udatpg_setDecimal
      Src: /src/icu/source/test/cintltst/udatpg_test.c:98,1
    - Dst: udatpg_close
      Src: /src/icu/source/test/cintltst/udatpg_test.c:114,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:84,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:93,1
    - Dst: udatpg_close
      Src: /src/icu/source/test/cintltst/udatpg_test.c:115,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 116
    functionName: TestOpenClose
    functionSourceFile: /src/icu/source/test/cintltst/udatpg_test.c
    functionUses: []
    functionsReached:
    - udatpg_open
    - udatpg_close
    - udatpg_setDecimal
    - udatpg_getDecimal
    - U_FAILURE
    - log_err_status
    - udatpg_clone
    - log_err
    - u_memcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestOpenClose() '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:271,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:272,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:296,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:302,1
    - Dst: udatpg_openSkeletons
      Src: /src/icu/source/test/cintltst/udatpg_test.c:310,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:311,1
    - Dst: uenum_unext
      Src: /src/icu/source/test/cintltst/udatpg_test.c:315,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:318,1
    - Dst: udatpg_openBaseSkeletons
      Src: /src/icu/source/test/cintltst/udatpg_test.c:326,1
    - Dst: uenum_unext
      Src: /src/icu/source/test/cintltst/udatpg_test.c:328,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/udatpg_test.c:345,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:330,1
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/udatpg_test.c:365,1
    - Dst: udatpg_openEmpty
      Src: /src/icu/source/test/cintltst/udatpg_test.c:262,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:272,1
    - Dst: udatpg_addPattern
      Src: /src/icu/source/test/cintltst/udatpg_test.c:276,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:279,1
    - Dst: udatpg_addPattern
      Src: /src/icu/source/test/cintltst/udatpg_test.c:293,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:295,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:287,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:296,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:312,1
    - Dst: udatpg_getPatternForSkeleton
      Src: /src/icu/source/test/cintltst/udatpg_test.c:316,1
    - Dst: udatpg_close
      Src: /src/icu/source/test/cintltst/udatpg_test.c:375,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/udatpg_test.c:340,1
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/udatpg_test.c:370,1
    - Dst: udatpg_close
      Src: /src/icu/source/test/cintltst/udatpg_test.c:342,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:264,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:263,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:286,1
    - Dst: udatpg_addPattern
      Src: /src/icu/source/test/cintltst/udatpg_test.c:284,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:317,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/udatpg_test.c:317,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/udatpg_test.c:330,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:336,1
    - Dst: udatpg_close
      Src: /src/icu/source/test/cintltst/udatpg_test.c:359,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/udatpg_test.c:323,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/udatpg_test.c:355,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/udatpg_test.c:376,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:264,1
    - Dst: udatpg_addPattern
      Src: /src/icu/source/test/cintltst/udatpg_test.c:269,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:301,1
    - Dst: udatpg_replaceFieldTypes
      Src: /src/icu/source/test/cintltst/udatpg_test.c:299,1
    - Dst: udatpg_getPatternForSkeleton
      Src: /src/icu/source/test/cintltst/udatpg_test.c:329,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:331,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:337,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:358,1
    - Dst: ucal_getNow
      Src: /src/icu/source/test/cintltst/udatpg_test.c:365,1
    - Dst: udatpg_getBestPattern
      Src: /src/icu/source/test/cintltst/udatpg_test.c:353,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/udatpg_test.c:372,1
    - Dst: udatpg_open
      Src: /src/icu/source/test/cintltst/udatpg_test.c:347,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/udatpg_test.c:364,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:373,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:348,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 120
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 377
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 377
    functionName: TestBuilder
    functionSourceFile: /src/icu/source/test/cintltst/udatpg_test.c
    functionUses: []
    functionsReached:
    - udatpg_open
    - udat_close
    - u_errorName
    - udatpg_openSkeletons
    - udat_open
    - udatpg_close
    - udat_format
    - U_FAILURE
    - udatpg_replaceFieldTypes
    - udatpg_openEmpty
    - UPRV_LENGTHOF
    - udatpg_getPatternForSkeleton
    - u_memcmp
    - log_err
    - uenum_close
    - ucal_getNow
    - udatpg_addPattern
    - udatpg_openBaseSkeletons
    - uenum_unext
    - udatpg_getBestPattern
    linkageType: ''
    returnType: void
    signature: 'static void TestBuilder() '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:150,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:154,1
    - Dst: udatpg_getSkeleton
      Src: /src/icu/source/test/cintltst/udatpg_test.c:168,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/udatpg_test.c:173,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:163,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:189,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:193,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:211,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:219,1
    - Dst: udatpg_setAppendItemName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:224,1
    - Dst: udatpg_getAppendItemFormat
      Src: /src/icu/source/test/cintltst/udatpg_test.c:207,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/udatpg_test.c:218,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:237,1
    - Dst: udatpg_open
      Src: /src/icu/source/test/cintltst/udatpg_test.c:142,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:143,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:169,1
    - Dst: udatpg_getBestPattern
      Src: /src/icu/source/test/cintltst/udatpg_test.c:161,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:170,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:162,1
    - Dst: udatpg_getSkeleton
      Src: /src/icu/source/test/cintltst/udatpg_test.c:180,1
    - Dst: udatpg_setDateTimeFormat
      Src: /src/icu/source/test/cintltst/udatpg_test.c:233,1
    - Dst: udatpg_close
      Src: /src/icu/source/test/cintltst/udatpg_test.c:240,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/udatpg_test.c:227,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/udatpg_test.c:153,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:170,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:174,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:182,1
    - Dst: udatpg_getBaseSkeleton
      Src: /src/icu/source/test/cintltst/udatpg_test.c:187,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/udatpg_test.c:192,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:201,1
    - Dst: udatpg_setAppendItemFormat
      Src: /src/icu/source/test/cintltst/udatpg_test.c:206,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/udatpg_test.c:210,1
    - Dst: udatpg_getAppendItemName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:217,1
    - Dst: udatpg_getDateTimeFormat
      Src: /src/icu/source/test/cintltst/udatpg_test.c:234,1
    - Dst: udatpg_getBestPattern
      Src: /src/icu/source/test/cintltst/udatpg_test.c:147,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:144,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/udatpg_test.c:144,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:149,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:150,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:181,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:188,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:189,1
    - Dst: udatpg_getBaseSkeleton
      Src: /src/icu/source/test/cintltst/udatpg_test.c:199,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:200,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/udatpg_test.c:236,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:228,1
    - Dst: udatpg_getAppendItemName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:225,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 114
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 241
    functionName: TestUsage
    functionSourceFile: /src/icu/source/test/cintltst/udatpg_test.c
    functionUses: []
    functionsReached:
    - udatpg_open
    - udatpg_getSkeleton
    - udatpg_getBaseSkeleton
    - udatpg_getAppendItemFormat
    - udatpg_close
    - U_FAILURE
    - log_err_status
    - udatpg_setDateTimeFormat
    - u_memcmp
    - udatpg_getAppendItemName
    - udatpg_setAppendItemFormat
    - udatpg_getDateTimeFormat
    - u_strncmp
    - log_err
    - udatpg_getBestPattern
    - udatpg_setAppendItemName
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUsage() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/udatpg_test.c:415,1
    - Dst: udatpg_open
      Src: /src/icu/source/test/cintltst/udatpg_test.c:420,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/udatpg_test.c:421,1
    - Dst: udatpg_getBestPatternWithOptions
      Src: /src/icu/source/test/cintltst/udatpg_test.c:423,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:426,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/udatpg_test.c:426,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:430,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/udatpg_test.c:431,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/udatpg_test.c:432,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/udatpg_test.c:433,1
    - Dst: udatpg_close
      Src: /src/icu/source/test/cintltst/udatpg_test.c:435,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:437,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:437,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 440
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 440
    functionName: TestOptions
    functionSourceFile: /src/icu/source/test/cintltst/udatpg_test.c
    functionUses: []
    functionsReached:
    - udatpg_open
    - udatpg_close
    - U_FAILURE
    - log_data_err
    - u_austrncpy
    - U_SUCCESS
    - myErrorName
    - udatpg_getBestPatternWithOptions
    - u_strncmp
    - log_err
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestOptions() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:473,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:472,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:497,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:498,1
    - Dst: udatpg_close
      Src: /src/icu/source/test/cintltst/udatpg_test.c:507,1
    - Dst: udatpg_open
      Src: /src/icu/source/test/cintltst/udatpg_test.c:471,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:481,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:487,1
    - Dst: udatpg_getFieldDisplayName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:495,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatpg_test.c:496,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:490,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:473,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/udatpg_test.c:477,1
    - Dst: udatpg_getFieldDisplayName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:479,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:483,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/udatpg_test.c:489,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/udatpg_test.c:467,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:482,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/udatpg_test.c:484,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/udatpg_test.c:490,1
    - Dst: udatpg_getFieldDisplayName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:501,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatpg_test.c:503,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatpg_test.c:504,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 510
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 510
    functionName: TestGetFieldDisplayNames
    functionSourceFile: /src/icu/source/test/cintltst/udatpg_test.c
    functionUses: []
    functionsReached:
    - udatpg_open
    - udatpg_close
    - u_unescape
    - U_FAILURE
    - log_data_err
    - u_austrncpy
    - myErrorName
    - u_strncmp
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    - udatpg_getFieldDisplayName
    linkageType: ''
    returnType: void
    signature: 'static void TestGetFieldDisplayNames() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/crestst.c:112,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/crestst.c:113,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/crestst.c:115,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/crestst.c:114,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/crestst.c:116,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/crestst.c:117,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/crestst.c:118,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/crestst.c:119,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/crestst.c:121,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/crestst.c:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 124
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 124
    functionName: addResourceBundleTest
    functionSourceFile: /src/icu/source/test/cintltst/crestst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addResourceBundleTest(TestNode** root) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/crestst.c:287,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:288,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/crestst.c:300,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/crestst.c:358,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/crestst.c:359,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/crestst.c:381,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/crestst.c:382,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:291,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:294,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/crestst.c:301,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/crestst.c:306,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crestst.c:335,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/crestst.c:376,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/crestst.c:377,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/crestst.c:401,1
    - Dst: CONFIRM_EQ
      Src: /src/icu/source/test/cintltst/crestst.c:412,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:415,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/crestst.c:284,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/crestst.c:358,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/crestst.c:365,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/crestst.c:309,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/crestst.c:368,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/crestst.c:389,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/test/cintltst/crestst.c:392,1
    - Dst: CONFIRM_ErrorCode
      Src: /src/icu/source/test/cintltst/crestst.c:397,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/crestst.c:401,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/crestst.c:402,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/crestst.c:417,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/crestst.c:407,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/crestst.c:414,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/crestst.c:278,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:290,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/crestst.c:354,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/crestst.c:379,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/crestst.c:380,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/test/cintltst/crestst.c:388,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crestst.c:395,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/crestst.c:400,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/crestst.c:407,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/crestst.c:408,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 103
    argCount: 4
    argNames:
    - frag
    - in_Root
    - in_te
    - in_te_IN
    argTypes:
    - char*
    - UBool
    - UBool
    - UBool
    constantsTouched: []
    func_position:
      end: 419
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 419
    functionName: testTag
    functionSourceFile: /src/icu/source/test/cintltst/crestst.c
    functionUses: []
    functionsReached:
    - malloc
    - u_uastrcpy
    - CONFIRM_EQ
    - U_FAILURE
    - strcpy
    - loadTestData
    - U_SUCCESS
    - u_strcpy
    - free
    - ures_getStringByKey
    - log_verbose
    - log_err
    - ures_close
    - CONFIRM_ErrorCode
    - strlen
    - u_strlen
    - strcat
    - ures_open
    linkageType: ''
    returnType: UBool
    signature: 'UBool testTag(const char* frag, UBool in_Root, UBool in_te, UBool
      in_te_IN) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/crestst.c:152,1
    - Dst: testTag
      Src: /src/icu/source/test/cintltst/crestst.c:158,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:154,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:154,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:153,1
    - Dst: testTag
      Src: /src/icu/source/test/cintltst/crestst.c:159,1
    - Dst: testTag
      Src: /src/icu/source/test/cintltst/crestst.c:160,1
    - Dst: testTag
      Src: /src/icu/source/test/cintltst/crestst.c:161,1
    - Dst: testTag
      Src: /src/icu/source/test/cintltst/crestst.c:162,1
    - Dst: testTag
      Src: /src/icu/source/test/cintltst/crestst.c:163,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crestst.c:167,1
    - Dst: testTag
      Src: /src/icu/source/test/cintltst/crestst.c:164,1
    - Dst: testTag
      Src: /src/icu/source/test/cintltst/crestst.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 168
    functionName: TestResourceBundles
    functionSourceFile: /src/icu/source/test/cintltst/crestst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - loadTestData
    - log_data_err
    - log_verbose
    - testTag
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'void TestResourceBundles() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:194,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/crestst.c:194,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:210,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/test/cintltst/crestst.c:205,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/crestst.c:216,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crestst.c:224,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crestst.c:227,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crestst.c:231,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crestst.c:234,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crestst.c:241,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/crestst.c:241,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crestst.c:181,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:187,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/crestst.c:191,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:192,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:209,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/crestst.c:210,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:202,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/crestst.c:202,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/crestst.c:214,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/test/cintltst/crestst.c:206,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:185,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/crestst.c:187,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/crestst.c:184,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/crestst.c:221,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/crestst.c:222,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crestst.c:240,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crestst.c:245,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crestst.c:236,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/crestst.c:199,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:200,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:220,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crestst.c:229,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/crestst.c:240,1
    - Dst: ures_getVersionNumber
      Src: /src/icu/source/test/cintltst/crestst.c:245,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crestst.c:244,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:248,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:247,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 249
    functionName: TestConstruction1
    functionSourceFile: /src/icu/source/test/cintltst/crestst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - getTestOption
    - log_info
    - ures_close
    - U_FAILURE
    - ures_getVersionNumber
    - loadTestData
    - log_data_err
    - austrdup
    - myErrorName
    - log_verbose
    - log_err
    - ures_getStringByKey
    - u_strcmp
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'void TestConstruction1() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 424
    functionName: record_pass
    functionSourceFile: /src/icu/source/test/cintltst/crestst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void record_pass() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: record_fail
    functionSourceFile: /src/icu/source/test/cintltst/crestst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void record_fail() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crestst.c:444,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/crestst.c:445,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:446,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/crestst.c:448,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:448,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/test/cintltst/crestst.c:456,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/test/cintltst/crestst.c:459,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/test/cintltst/crestst.c:461,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/crestst.c:465,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:468,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:479,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/test/cintltst/crestst.c:475,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:478,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:484,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:471,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:469,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 485
    functionName: TestFallback
    functionSourceFile: /src/icu/source/test/cintltst/crestst.c
    functionUses: []
    functionsReached:
    - ures_getByKey
    - U_FAILURE
    - log_err_status
    - log_data_err
    - ures_getStringByKey
    - log_verbose
    - ures_close
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestFallback() '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/crestst.c:498,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:505,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:512,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:539,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:543,1
    - Dst: ures_openDirect
      Src: /src/icu/source/test/cintltst/crestst.c:551,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:552,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:553,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:582,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:591,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:603,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:606,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/crestst.c:612,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:556,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:621,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:630,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:583,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/crestst.c:504,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:511,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:515,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:523,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:526,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:512,1
    - Dst: ures_openDirect
      Src: /src/icu/source/test/cintltst/crestst.c:542,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:546,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/crestst.c:590,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:591,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:603,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/crestst.c:605,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:627,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:606,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:576,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:614,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/crestst.c:589,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:613,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:621,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:500,1
    - Dst: ures_getLocale
      Src: /src/icu/source/test/cintltst/crestst.c:504,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/crestst.c:510,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/crestst.c:530,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:524,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:520,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:531,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/crestst.c:534,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:537,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:548,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:583,1
    - Dst: ures_openDirect
      Src: /src/icu/source/test/cintltst/crestst.c:619,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/crestst.c:626,1
    - Dst: ures_getLocale
      Src: /src/icu/source/test/cintltst/crestst.c:605,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:608,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:602,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:592,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:627,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/crestst.c:625,1
    - Dst: ures_openDirect
      Src: /src/icu/source/test/cintltst/crestst.c:498,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:500,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:499,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/crestst.c:519,1
    - Dst: ures_getLocale
      Src: /src/icu/source/test/cintltst/crestst.c:534,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:537,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:553,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/crestst.c:574,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:575,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:576,1
    - Dst: ures_openDirect
      Src: /src/icu/source/test/cintltst/crestst.c:611,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:585,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:620,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/crestst.c:601,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:594,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/crestst.c:581,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:628,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 130
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 631
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 631
    functionName: TestOpenDirect
    functionSourceFile: /src/icu/source/test/cintltst/crestst.c
    functionUses: []
    functionsReached:
    - ures_getByKey
    - ures_openDirect
    - U_FAILURE
    - loadTestData
    - log_data_err
    - ures_getLocale
    - U_SUCCESS
    - uprv_strcmp
    - log_err
    - ures_close
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestOpenDirect(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:645,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:650,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/crestst.c:655,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:671,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/crestst.c:664,1
    - Dst: ures_initStackObject
      Src: /src/icu/source/test/cintltst/crestst.c:641,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:644,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:645,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/crestst.c:649,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:660,1
    - Dst: ures_openDirectFillIn
      Src: /src/icu/source/test/cintltst/crestst.c:643,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/crestst.c:643,1
    - Dst: ures_getLocale
      Src: /src/icu/source/test/cintltst/crestst.c:649,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:657,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:668,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:669,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:656,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:665,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:657,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 672
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 672
    functionName: TestOpenDirectFillIn
    functionSourceFile: /src/icu/source/test/cintltst/crestst.c
    functionUses: []
    functionsReached:
    - ures_getByKey
    - ures_openDirectFillIn
    - U_FAILURE
    - log_data_err
    - loadTestData
    - ures_getLocale
    - uprv_strcmp
    - log_err
    - ures_close
    - u_errorName
    - ures_initStackObject
    linkageType: ''
    returnType: void
    signature: 'static void TestOpenDirectFillIn(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 687
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 687
    functionName: parseTable32Key
    functionSourceFile: /src/icu/source/test/cintltst/crestst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t parseTable32Key(const char *key) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/crestst.c:721,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/crestst.c:724,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:733,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:770,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/crestst.c:777,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:779,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:780,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/crestst.c:784,1
    - Dst: ures_getString
      Src: /src/icu/source/test/cintltst/crestst.c:786,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:788,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/crestst.c:817,1
    - Dst: U16_NEXT
      Src: /src/icu/source/test/cintltst/crestst.c:793,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/crestst.c:715,1
    - Dst: ures_getByIndex
      Src: /src/icu/source/test/cintltst/crestst.c:732,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:735,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:745,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/crestst.c:739,1
    - Dst: parseTable32Key
      Src: /src/icu/source/test/cintltst/crestst.c:740,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:734,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/crestst.c:742,1
    - Dst: ures_getInt
      Src: /src/icu/source/test/cintltst/crestst.c:755,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:778,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:799,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:800,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:805,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:824,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:806,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:717,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/crestst.c:720,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:757,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:758,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:763,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:764,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:787,1
    - Dst: ures_getInt
      Src: /src/icu/source/test/cintltst/crestst.c:797,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/crestst.c:764,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:798,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:789,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/crestst.c:715,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:716,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:717,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:721,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:726,1
    - Dst: ures_getString
      Src: /src/icu/source/test/cintltst/crestst.c:744,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:746,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:747,1
    - Dst: U16_NEXT
      Src: /src/icu/source/test/cintltst/crestst.c:751,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:756,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:812,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:818,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/crestst.c:816,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:823,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/crestst.c:776,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/crestst.c:806,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 111
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 825
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 825
    functionName: TestTable32
    functionSourceFile: /src/icu/source/test/cintltst/crestst.c
    functionUses: []
    functionsReached:
    - ures_getKey
    - ures_getSize
    - ures_getInt
    - ures_getByKey
    - ures_getByIndex
    - U_FAILURE
    - U16_NEXT
    - log_data_err
    - loadTestData
    - parseTable32Key
    - uprv_strcmp
    - log_err
    - ures_close
    - ures_getType
    - UPRV_LENGTHOF
    - u_errorName
    - ures_open
    - ures_getString
    linkageType: ''
    returnType: void
    signature: 'static void TestTable32(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:986,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:1000,1
    - Dst: ures_getByIndex
      Src: /src/icu/source/test/cintltst/crestst.c:1002,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:995,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/crestst.c:973,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/crestst.c:998,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:1009,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:979,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/crestst.c:983,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:984,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/crestst.c:990,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:992,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:1003,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:1008,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:979,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:977,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:986,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/crestst.c:991,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:994,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:994,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/crestst.c:1003,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:1007,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1010
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 1010
    functionName: TestGetSize
    functionSourceFile: /src/icu/source/test/cintltst/crestst.c
    functionUses: []
    functionsReached:
    - ures_getByKey
    - ures_getSize
    - ures_getKey
    - ures_getByIndex
    - U_FAILURE
    - loadTestData
    - log_data_err
    - log_err
    - ures_close
    - UPRV_LENGTHOF
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestGetSize(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/crestst.c:1031,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:1066,1
    - Dst: ures_getLocaleByType
      Src: /src/icu/source/test/cintltst/crestst.c:1068,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/crestst.c:1069,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/crestst.c:1041,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/crestst.c:1050,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:1051,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:1070,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:1072,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:1074,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:1037,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:1043,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:1053,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:1053,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:1061,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:1037,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:1035,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/crestst.c:1042,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:1045,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crestst.c:1045,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/crestst.c:1060,1
    - Dst: ures_getLocaleByType
      Src: /src/icu/source/test/cintltst/crestst.c:1064,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:1054,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/crestst.c:1065,1
    - Dst: ures_getLocaleByType
      Src: /src/icu/source/test/cintltst/crestst.c:1059,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1075
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1075
    functionName: TestGetLocaleByType
    functionSourceFile: /src/icu/source/test/cintltst/crestst.c
    functionUses: []
    functionsReached:
    - ures_getByKey
    - U_FAILURE
    - loadTestData
    - log_data_err
    - strcmp
    - U_SUCCESS
    - ures_getLocaleByType
    - log_err
    - ures_close
    - UPRV_LENGTHOF
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestGetLocaleByType(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/crestst.c:135,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/crestst.c:138,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:137,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/crestst.c:136,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/crestst.c:138,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:140,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/test/cintltst/crestst.c:141,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crestst.c:142,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/crestst.c:143,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/crestst.c:143,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/crestst.c:145,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 146
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 146
    functionName: TestAliasConflict
    functionSourceFile: /src/icu/source/test/cintltst/crestst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_err_status
    - myErrorName
    - ures_getStringByKey
    - ures_close
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'void TestAliasConflict(void) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/crestst.c:831,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/crestst.c:854,1
    - Dst: T_FileStream_rewind
      Src: /src/icu/source/test/cintltst/crestst.c:869,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:877,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:882,1
    - Dst: T_FileStream_error
      Src: /src/icu/source/test/cintltst/crestst.c:888,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:889,1
    - Dst: T_FileStream_error
      Src: /src/icu/source/test/cintltst/crestst.c:895,1
    - Dst: T_FileStream_putc
      Src: /src/icu/source/test/cintltst/crestst.c:916,1
    - Dst: T_FileStream_rewind
      Src: /src/icu/source/test/cintltst/crestst.c:917,1
    - Dst: T_FileStream_writeLine
      Src: /src/icu/source/test/cintltst/crestst.c:923,1
    - Dst: T_FileStream_rewind
      Src: /src/icu/source/test/cintltst/crestst.c:924,1
    - Dst: uprv_strncmp
      Src: /src/icu/source/test/cintltst/crestst.c:926,1
    - Dst: T_FileStream_rewind
      Src: /src/icu/source/test/cintltst/crestst.c:930,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:935,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/crestst.c:946,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/crestst.c:931,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/crestst.c:926,1
    - Dst: T_FileStream_stdout
      Src: /src/icu/source/test/cintltst/crestst.c:836,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:848,1
    - Dst: T_FileStream_file_exists
      Src: /src/icu/source/test/cintltst/crestst.c:860,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:872,1
    - Dst: T_FileStream_rewind
      Src: /src/icu/source/test/cintltst/crestst.c:874,1
    - Dst: T_FileStream_getc
      Src: /src/icu/source/test/cintltst/crestst.c:879,1
    - Dst: T_FileStream_ungetc
      Src: /src/icu/source/test/cintltst/crestst.c:880,1
    - Dst: T_FileStream_size
      Src: /src/icu/source/test/cintltst/crestst.c:885,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/crestst.c:909,1
    - Dst: T_FileStream_open
      Src: /src/icu/source/test/cintltst/crestst.c:910,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/crestst.c:945,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:927,1
    - Dst: T_FileStream_readLine
      Src: /src/icu/source/test/cintltst/crestst.c:925,1
    - Dst: T_FileStream_write
      Src: /src/icu/source/test/cintltst/crestst.c:931,1
    - Dst: T_FileStream_rewind
      Src: /src/icu/source/test/cintltst/crestst.c:922,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:913,1
    - Dst: T_FileStream_stdin
      Src: /src/icu/source/test/cintltst/crestst.c:835,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/crestst.c:840,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/crestst.c:855,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:858,1
    - Dst: T_FileStream_read
      Src: /src/icu/source/test/cintltst/crestst.c:864,1
    - Dst: T_FileStream_open
      Src: /src/icu/source/test/cintltst/crestst.c:856,1
    - Dst: T_FileStream_error
      Src: /src/icu/source/test/cintltst/crestst.c:891,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:892,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crestst.c:901,1
    - Dst: T_FileStream_close
      Src: /src/icu/source/test/cintltst/crestst.c:904,1
    - Dst: T_FileStream_read
      Src: /src/icu/source/test/cintltst/crestst.c:933,1
    - Dst: T_FileStream_rewind
      Src: /src/icu/source/test/cintltst/crestst.c:932,1
    - Dst: T_FileStream_getc
      Src: /src/icu/source/test/cintltst/crestst.c:881,1
    - Dst: T_FileStream_close
      Src: /src/icu/source/test/cintltst/crestst.c:938,1
    - Dst: uprv_strncmp
      Src: /src/icu/source/test/cintltst/crestst.c:934,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/crestst.c:832,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/crestst.c:832,1
    - Dst: T_FileStream_stderr
      Src: /src/icu/source/test/cintltst/crestst.c:837,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/crestst.c:841,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:845,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crestst.c:851,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:861,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:866,1
    - Dst: T_FileStream_read
      Src: /src/icu/source/test/cintltst/crestst.c:870,1
    - Dst: T_FileStream_peek
      Src: /src/icu/source/test/cintltst/crestst.c:875,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:941,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:919,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/crestst.c:908,1
    - Dst: T_FileStream_putc
      Src: /src/icu/source/test/cintltst/crestst.c:894,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crestst.c:886,1
    - Dst: T_FileStream_remove
      Src: /src/icu/source/test/cintltst/crestst.c:940,1
    - Dst: T_FileStream_getc
      Src: /src/icu/source/test/cintltst/crestst.c:918,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 115
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 948
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 948
    functionName: TestFileStream
    functionSourceFile: /src/icu/source/test/cintltst/crestst.c
    functionUses: []
    functionsReached:
    - T_FileStream_file_exists
    - T_FileStream_stdout
    - uprv_strcat
    - T_FileStream_putc
    - T_FileStream_peek
    - T_FileStream_stdin
    - free
    - uprv_strlen
    - T_FileStream_open
    - loadTestData
    - log_data_err
    - T_FileStream_readLine
    - T_FileStream_size
    - T_FileStream_writeLine
    - T_FileStream_stderr
    - log_verbose
    - T_FileStream_write
    - T_FileStream_ungetc
    - T_FileStream_close
    - T_FileStream_remove
    - uprv_strncmp
    - log_err
    - uprv_strcpy
    - T_FileStream_read
    - T_FileStream_rewind
    - malloc
    - T_FileStream_error
    - T_FileStream_getc
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestFileStream(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:79,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:85,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:90,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 7
    argNames:
    - name
    - variant
    - start
    - end
    - value
    - expEnd
    - expValue
    argTypes:
    - char*
    - char*
    - UChar32
    - UChar32
    - uint32_t
    - UChar32
    - uint32_t
    constantsTouched: []
    func_position:
      end: 97
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 97
    functionName: doCheckRange
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - log_err
    linkageType: ''
    returnType: UBool
    signature: 'static UBool doCheckRange(const char *name, const char *variant, UChar32
      start, UChar32 end, uint32_t value, UChar32 expEnd, uint32_t expValue) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getSpecialValues
      Src: /src/icu/source/test/cintltst/ucptrietest.c:352,1
    - Dst: umutablecptrie_get
      Src: /src/icu/source/test/cintltst/ucptrietest.c:375,1
    - Dst: umutablecptrie_get
      Src: /src/icu/source/test/cintltst/ucptrietest.c:360,1
    - Dst: umutablecptrie_get
      Src: /src/icu/source/test/cintltst/ucptrietest.c:374,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:362,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:377,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - testName
    - mutableTrie
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UMutableCPTrie*
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 380
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 380
    functionName: testBuilderGetters
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - umutablecptrie_get
    - getSpecialValues
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void testBuilderGetters(const char *testName, const UMutableCPTrie
      *mutableTrie, const CheckRange checkRanges[], int32_t countCheckRanges) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ucptrie_get
      Src: /src/icu/source/test/cintltst/ucptrietest.c:393,1
    - Dst: U_ASSERT
      Src: /src/icu/source/test/cintltst/ucptrietest.c:408,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:405,1
    - Dst: skipSpecialValues
      Src: /src/icu/source/test/cintltst/ucptrietest.c:401,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:408,1
    - Dst: U16_NEXT
      Src: /src/icu/source/test/cintltst/ucptrietest.c:437,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:424,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:446,1
    - Dst: U16_PREV
      Src: /src/icu/source/test/cintltst/ucptrietest.c:465,1
    - Dst: UCPTRIE_FAST_U16_PREV
      Src: /src/icu/source/test/cintltst/ucptrietest.c:472,1
    - Dst: ACCIDENTAL_SURROGATE_PAIR
      Src: /src/icu/source/test/cintltst/ucptrietest.c:404,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:412,1
    - Dst: UCPTRIE_FAST_U16_NEXT
      Src: /src/icu/source/test/cintltst/ucptrietest.c:440,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:428,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:423,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:418,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:427,1
    - Dst: UCPTRIE_FAST_U16_NEXT
      Src: /src/icu/source/test/cintltst/ucptrietest.c:442,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:448,1
    - Dst: UCPTRIE_FAST_U16_PREV
      Src: /src/icu/source/test/cintltst/ucptrietest.c:468,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:408,1
    - Dst: ACCIDENTAL_SURROGATE_PAIR
      Src: /src/icu/source/test/cintltst/ucptrietest.c:411,1
    - Dst: ACCIDENTAL_SURROGATE_PAIR
      Src: /src/icu/source/test/cintltst/ucptrietest.c:417,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:428,1
    - Dst: UCPTRIE_FAST_U16_NEXT
      Src: /src/icu/source/test/cintltst/ucptrietest.c:444,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:474,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:424,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:452,1
    - Dst: UCPTRIE_FAST_U16_PREV
      Src: /src/icu/source/test/cintltst/ucptrietest.c:470,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:480,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:476,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 96
    argCount: 5
    argNames:
    - testName
    - trie
    - valueWidth
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UCPTrie*
    - UCPTrieValueWidth
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 484
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 484
    functionName: testTrieUTF16
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - ucptrie_get
    - U_ASSERT
    - UPRV_LENGTHOF
    - UCPTRIE_FAST_U16_NEXT
    - U16_NEXT
    - ACCIDENTAL_SURROGATE_PAIR
    - U16_PREV
    - UCPTRIE_FAST_U16_PREV
    - U16_APPEND_UNSAFE
    - log_err
    - skipSpecialValues
    - U_IS_SURROGATE
    linkageType: ''
    returnType: void
    signature: 'static void testTrieUTF16(const char *testName, const UCPTrie *trie,
      UCPTrieValueWidth valueWidth, const CheckRange checkRanges[], int32_t countCheckRanges) '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ucptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:846,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:839,1
    - Dst: umutablecptrie_set
      Src: /src/icu/source/test/cintltst/ucptrietest.c:869,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:843,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:860,1
    - Dst: umutablecptrie_set
      Src: /src/icu/source/test/cintltst/ucptrietest.c:867,1
    - Dst: umutablecptrie_buildImmutable
      Src: /src/icu/source/test/cintltst/ucptrietest.c:733,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:722,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:752,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:786,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:814,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:822,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:872,1
    - Dst: testTrie
      Src: /src/icu/source/test/cintltst/ucptrietest.c:762,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/ucptrietest.c:792,1
    - Dst: ucptrie_getType
      Src: /src/icu/source/test/cintltst/ucptrietest.c:817,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:797,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:813,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:735,1
    - Dst: udata_closeSwapper
      Src: /src/icu/source/test/cintltst/ucptrietest.c:780,1
    - Dst: udata_openSwapper
      Src: /src/icu/source/test/cintltst/ucptrietest.c:793,1
    - Dst: ucptrie_swap
      Src: /src/icu/source/test/cintltst/ucptrietest.c:803,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:862,1
    - Dst: ucptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:880,1
    - Dst: ucptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:763,1
    - Dst: ucptrie_swap
      Src: /src/icu/source/test/cintltst/ucptrietest.c:775,1
    - Dst: ucptrie_swap
      Src: /src/icu/source/test/cintltst/ucptrietest.c:783,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:879,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:850,1
    - Dst: ucptrie_getValueWidth
      Src: /src/icu/source/test/cintltst/ucptrietest.c:842,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:796,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:749,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/ucptrietest.c:772,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:814,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:871,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/ucptrietest.c:831,1
    - Dst: ucptrie_getType
      Src: /src/icu/source/test/cintltst/ucptrietest.c:838,1
    - Dst: testBuilder
      Src: /src/icu/source/test/cintltst/ucptrietest.c:874,1
    - Dst: ucptrie_toBinary
      Src: /src/icu/source/test/cintltst/ucptrietest.c:747,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:779,1
    - Dst: udata_closeSwapper
      Src: /src/icu/source/test/cintltst/ucptrietest.c:804,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:818,1
    - Dst: umutablecptrie_fromUCPTrie
      Src: /src/icu/source/test/cintltst/ucptrietest.c:859,1
    - Dst: umutablecptrie_clone
      Src: /src/icu/source/test/cintltst/ucptrietest.c:720,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:753,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:861,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:743,1
    - Dst: udata_closeSwapper
      Src: /src/icu/source/test/cintltst/ucptrietest.c:800,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:805,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:848,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:826,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:875,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:734,1
    - Dst: umutablecptrie_get
      Src: /src/icu/source/test/cintltst/ucptrietest.c:866,1
    - Dst: udata_openSwapper
      Src: /src/icu/source/test/cintltst/ucptrietest.c:773,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:777,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:807,1
    - Dst: umutablecptrie_get
      Src: /src/icu/source/test/cintltst/ucptrietest.c:868,1
    - Dst: ucptrie_openFromBinary
      Src: /src/icu/source/test/cintltst/ucptrietest.c:812,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:753,1
    - Dst: udata_closeSwapper
      Src: /src/icu/source/test/cintltst/ucptrietest.c:784,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ucptrietest.c:837,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:742,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:757,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:776,1
    - Dst: ucptrie_getValueWidth
      Src: /src/icu/source/test/cintltst/ucptrietest.c:821,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:723,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:785,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:787,1
    - Dst: ucptrie_swap
      Src: /src/icu/source/test/cintltst/ucptrietest.c:795,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:806,1
    - Dst: ucptrie_openFromBinary
      Src: /src/icu/source/test/cintltst/ucptrietest.c:835,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:799,1
    - Dst: testTrie
      Src: /src/icu/source/test/cintltst/ucptrietest.c:855,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:870,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:721,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:736,1
    - Dst: ucptrie_toBinary
      Src: /src/icu/source/test/cintltst/ucptrietest.c:740,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 145
    argCount: 7
    argNames:
    - testName
    - mutableTrie
    - type
    - valueWidth
    - withSwap
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UMutableCPTrie*
    - UCPTrieType
    - UCPTrieValueWidth
    - UBool
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 881
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 881
    functionName: testTrieSerialize
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - umutablecptrie_fromUCPTrie
    - udata_openSwapper
    - udata_closeSwapper
    - ucptrie_close
    - U_SUCCESS
    - umutablecptrie_clone
    - u_errorName
    - umutablecptrie_get
    - U_FAILURE
    - ucptrie_toBinary
    - ucptrie_swap
    - ucptrie_getType
    - testBuilder
    - ucptrie_getValueWidth
    - umutablecptrie_close
    - log_err
    - testTrie
    - uprv_memset
    - ucptrie_openFromBinary
    - umutablecptrie_buildImmutable
    - umutablecptrie_set
    linkageType: ''
    returnType: void
    signature: 'static void testTrieSerialize(const char *testName, UMutableCPTrie
      *mutableTrie, UCPTrieType type, UCPTrieValueWidth valueWidth, UBool withSwap,
      const CheckRange checkRanges[], int32_t countCheckRanges) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: getSpecialValues
      Src: /src/icu/source/test/cintltst/ucptrietest.c:524,1
    - Dst: U8_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:561,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:592,1
    - Dst: U8_FWD_1
      Src: /src/icu/source/test/cintltst/ucptrietest.c:581,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:593,1
    - Dst: UCPTRIE_FAST_U8_NEXT
      Src: /src/icu/source/test/cintltst/ucptrietest.c:606,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:627,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:547,1
    - Dst: U_ASSERT
      Src: /src/icu/source/test/cintltst/ucptrietest.c:547,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:539,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:547,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:551,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:593,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:633,1
    - Dst: U8_PREV
      Src: /src/icu/source/test/cintltst/ucptrietest.c:648,1
    - Dst: UCPTRIE_FAST_U8_PREV
      Src: /src/icu/source/test/cintltst/ucptrietest.c:654,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:673,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:562,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:588,1
    - Dst: U8_NEXT
      Src: /src/icu/source/test/cintltst/ucptrietest.c:602,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:589,1
    - Dst: UCPTRIE_FAST_U8_NEXT
      Src: /src/icu/source/test/cintltst/ucptrietest.c:608,1
    - Dst: UCPTRIE_FAST_U8_PREV
      Src: /src/icu/source/test/cintltst/ucptrietest.c:650,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:679,1
    - Dst: U8_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:538,1
    - Dst: U8_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:550,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:589,1
    - Dst: U8_FWD_1
      Src: /src/icu/source/test/cintltst/ucptrietest.c:572,1
    - Dst: UCPTRIE_FAST_U8_NEXT
      Src: /src/icu/source/test/cintltst/ucptrietest.c:604,1
    - Dst: UCPTRIE_FAST_U8_PREV
      Src: /src/icu/source/test/cintltst/ucptrietest.c:652,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 175
    argCount: 5
    argNames:
    - testName
    - trie
    - valueWidth
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UCPTrie*
    - UCPTrieValueWidth
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 686
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 686
    functionName: testTrieUTF8
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - U_ASSERT
    - UCPTRIE_FAST_U8_NEXT
    - U8_APPEND_UNSAFE
    - U8_PREV
    - U8_NEXT
    - UCPTRIE_FAST_U8_PREV
    - log_err
    - U8_FWD_1
    - UPRV_LENGTHOF
    - U_IS_SURROGATE
    - getSpecialValues
    linkageType: ''
    returnType: void
    signature: 'static void testTrieUTF8(const char *testName, const UCPTrie *trie,
      UCPTrieValueWidth valueWidth, const CheckRange checkRanges[], int32_t countCheckRanges) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: testBuilder
      Src: /src/icu/source/test/cintltst/ucptrietest.c:894,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/ucptrietest.c:897,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/ucptrietest.c:904,1
    - Dst: testTrieSerialize
      Src: /src/icu/source/test/cintltst/ucptrietest.c:899,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/ucptrietest.c:898,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/ucptrietest.c:905,1
    - Dst: testTrieSerialize
      Src: /src/icu/source/test/cintltst/ucptrietest.c:906,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/ucptrietest.c:911,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/ucptrietest.c:912,1
    - Dst: testTrieSerialize
      Src: /src/icu/source/test/cintltst/ucptrietest.c:913,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/ucptrietest.c:919,1
    - Dst: testTrieSerialize
      Src: /src/icu/source/test/cintltst/ucptrietest.c:921,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/ucptrietest.c:920,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - testName
    - mutableTrie
    - withClone
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UMutableCPTrie*
    - UBool
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 927
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 927
    functionName: testTrieSerializeAllValueWidth
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - uprv_strcpy
    - testBuilder
    - uprv_strcat
    - testTrieSerialize
    linkageType: ''
    returnType: UMutableCPTrie*
    signature: 'static UMutableCPTrie *testTrieSerializeAllValueWidth(const char *testName,
      UMutableCPTrie *mutableTrie, UBool withClone, const CheckRange checkRanges[],
      int32_t countCheckRanges) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1564,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1568,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1565,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1567,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1566,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1569,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1570,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1571,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1572,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1573,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1575,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1576,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 1577
      start: 1562
    functionDepth: 0
    functionLinenumber: 1562
    functionLinenumberEnd: 1577
    functionName: addUCPTrieTest
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addUCPTrieTest(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testTrieRanges
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1158,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1159,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1161
      start: 1156
    functionDepth: 0
    functionLinenumber: 1156
    functionLinenumberEnd: 1161
    functionName: TrieTestSetSingleValue
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - testTrieRanges
    linkageType: ''
    returnType: void
    signature: 'static void TrieTestSetSingleValue(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: umutablecptrie_open
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1282,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1284,1
    - Dst: umutablecptrie_setRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1293,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1284,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1283,1
    - Dst: umutablecptrie_get
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1299,1
    - Dst: umutablecptrie_get
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1300,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1302,1
    - Dst: testTrieSerializeAllValueWidth
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1306,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1307,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1308,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1309
      start: 1272
    functionDepth: 0
    functionLinenumber: 1272
    functionLinenumberEnd: 1309
    functionName: ManyAllSameBlocksTest
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - umutablecptrie_get
    - U_FAILURE
    - testTrieSerializeAllValueWidth
    - umutablecptrie_close
    - umutablecptrie_open
    - log_err
    - UPRV_LENGTHOF
    - umutablecptrie_setRange
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void ManyAllSameBlocksTest(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: testTrieGetRanges
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1371,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1375,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1376,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1376,1
    - Dst: umutablecptrie_clone
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1373,1
    - Dst: umutablecptrie_buildImmutable
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1379,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1380,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1381,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1382,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1382,1
    - Dst: testTrieGetRanges
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1385,1
    - Dst: ucptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1386,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 5
    argNames:
    - testName
    - mutableTrie
    - option
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UMutableCPTrie*
    - UCPMapRangeOption
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 1387
      start: 1368
    functionDepth: 0
    functionLinenumber: 1368
    functionLinenumberEnd: 1387
    functionName: testGetRangesFixedSurr
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - testTrieGetRanges
    - U_FAILURE
    - umutablecptrie_buildImmutable
    - ucptrie_close
    - umutablecptrie_close
    - umutablecptrie_clone
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void testGetRangesFixedSurr(const char *testName, const UMutableCPTrie
      *mutableTrie, UCPMapRangeOption option, const CheckRange checkRanges[], int32_t
      countCheckRanges) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - checkRanges
    - countCheckRanges
    argTypes:
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: skipSpecialValues
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t skipSpecialValues(const CheckRange checkRanges[], int32_t
      countCheckRanges) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testTrieRanges
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1165,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1166,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1168
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1168
    functionName: TrieTestSet2OverlapWithClone
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - testTrieRanges
    linkageType: ''
    returnType: void
    signature: 'static void TrieTestSet2OverlapWithClone(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: umutablecptrie_open
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1320,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1322,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1322,1
    - Dst: umutablecptrie_setRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1333,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1321,1
    - Dst: umutablecptrie_setRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1341,1
    - Dst: umutablecptrie_setRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1345,1
    - Dst: umutablecptrie_setRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1348,1
    - Dst: umutablecptrie_setRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1351,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1354,1
    - Dst: U_ASSERT
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1360,1
    - Dst: testBuilder
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1362,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1365,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1356,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1360,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1355,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1357,1
    - Dst: testTrieSerialize
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1363,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 56
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1366
      start: 1311
    functionDepth: 0
    functionLinenumber: 1311
    functionLinenumberEnd: 1366
    functionName: MuchDataTest
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - U_ASSERT
    - U_FAILURE
    - testBuilder
    - umutablecptrie_close
    - umutablecptrie_open
    - log_err
    - testTrieSerialize
    - UPRV_LENGTHOF
    - umutablecptrie_setRange
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void MuchDataTest(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1452,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1458,1
    - Dst: testGetRangesFixedSurr
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1457,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1463,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1472,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1465,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1464,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1483,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1484,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1485,1
    - Dst: makeTrieWithRanges
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1450,1
    - Dst: testGetRangesFixedSurr
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1468,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1473,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1469,1
    - Dst: testGetRangesFixedSurr
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1479,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1480,1
    - Dst: testGetRangesFixedSurr
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1488,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1489,1
    - Dst: testGetRangesFixedSurr
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1459,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1460,1
    - Dst: umutablecptrie_setRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1462,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1473,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1474,1
    - Dst: umutablecptrie_set
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1471,1
    - Dst: umutablecptrie_set
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1482,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1451,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1464,1
    - Dst: testGetRangesFixedSurr
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1477,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1478,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1484,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1490,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1491
      start: 1389
    functionDepth: 0
    functionLinenumber: 1389
    functionLinenumberEnd: 1491
    functionName: TrieTestGetRangesFixedSurr
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - umutablecptrie_set
    - makeTrieWithRanges
    - testGetRangesFixedSurr
    - umutablecptrie_close
    - log_err
    - UPRV_LENGTHOF
    - umutablecptrie_setRange
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TrieTestGetRangesFixedSurr(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testTrieRanges
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1130,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1131,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1133
      start: 1128
    functionDepth: 0
    functionLinenumber: 1128
    functionLinenumberEnd: 1133
    functionName: TrieTestSet1
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - testTrieRanges
    linkageType: ''
    returnType: void
    signature: 'static void TrieTestSet1(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testTrieRanges
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1137,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1139,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1140
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1140
    functionName: TrieTestSet2Overlap
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - testTrieRanges
    linkageType: ''
    returnType: void
    signature: 'static void TrieTestSet2Overlap(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - context
    - value
    argTypes:
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: testFilter
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t U_CALLCONV testFilter(const void *context, uint32_t
      value) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:117,1
    - Dst: umutablecptrie_getRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:141,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/ucptrietest.c:125,1
    - Dst: ucptrie_getRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:140,1
    - Dst: doCheckRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:142,1
    - Dst: ucptrie_getRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:157,1
    - Dst: umutablecptrie_getRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:158,1
    - Dst: doCheckRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:160,1
    - Dst: ucptrie_getRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:173,1
    - Dst: umutablecptrie_getRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:174,1
    - Dst: doCheckRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:175,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 91
    argCount: 7
    argNames:
    - testName
    - trie
    - mutableTrie
    - option
    - surrValue
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UCPTrie*
    - UMutableCPTrie*
    - UCPMapRangeOption
    - uint32_t
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 181
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 181
    functionName: testTrieGetRanges
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - sprintf
    - doCheckRange
    - ucptrie_getRange
    - umutablecptrie_getRange
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void testTrieGetRanges(const char *testName, const UCPTrie
      *trie, const UMutableCPTrie *mutableTrie, UCPMapRangeOption option, uint32_t
      surrValue, const CheckRange checkRanges[], int32_t countCheckRanges) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testTrieGetters
      Src: /src/icu/source/test/cintltst/ucptrietest.c:692,1
    - Dst: testTrieUTF16
      Src: /src/icu/source/test/cintltst/ucptrietest.c:695,1
    - Dst: testTrieGetRanges
      Src: /src/icu/source/test/cintltst/ucptrietest.c:693,1
    - Dst: testTrieUTF8
      Src: /src/icu/source/test/cintltst/ucptrietest.c:696,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 6
    argNames:
    - testName
    - trie
    - type
    - valueWidth
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UCPTrie*
    - UCPTrieType
    - UCPTrieValueWidth
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 698
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 698
    functionName: testTrie
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - testTrieUTF16
    - testTrieGetters
    - testTrieUTF8
    - testTrieGetRanges
    linkageType: ''
    returnType: void
    signature: 'static void testTrie(const char *testName, const UCPTrie *trie, UCPTrieType
      type, UCPTrieValueWidth valueWidth, const CheckRange checkRanges[], int32_t
      countCheckRanges) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ucptrietest.c:940,1
    - Dst: umutablecptrie_open
      Src: /src/icu/source/test/cintltst/ucptrietest.c:943,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:945,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:944,1
    - Dst: getSpecialValues
      Src: /src/icu/source/test/cintltst/ucptrietest.c:942,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:945,1
    - Dst: umutablecptrie_clone
      Src: /src/icu/source/test/cintltst/ucptrietest.c:953,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:954,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:955,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:956,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:977,1
    - Dst: umutablecptrie_set
      Src: /src/icu/source/test/cintltst/ucptrietest.c:967,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:959,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:978,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:976,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ucptrietest.c:973,1
    - Dst: umutablecptrie_setRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:969,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 6
    argNames:
    - testName
    - withClone
    - setRanges
    - countSetRanges
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UBool
    - SetRange
    - int32_t
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 981
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 981
    functionName: makeTrieWithRanges
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - umutablecptrie_set
    - u_errorName
    - U_SUCCESS
    - umutablecptrie_close
    - umutablecptrie_open
    - log_verbose
    - log_err
    - umutablecptrie_clone
    - umutablecptrie_setRange
    - getSpecialValues
    linkageType: ''
    returnType: UMutableCPTrie*
    signature: 'static UMutableCPTrie *makeTrieWithRanges(const char *testName, UBool
      withClone, const SetRange setRanges[], int32_t countSetRanges, const CheckRange
      checkRanges[], int32_t countCheckRanges) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testTrieRanges
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1144,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1145,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1147
      start: 1142
    functionDepth: 0
    functionLinenumber: 1142
    functionLinenumberEnd: 1147
    functionName: TrieTestSet3Initial9
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - testTrieRanges
    linkageType: ''
    returnType: void
    signature: 'static void TrieTestSet3Initial9(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: umutablecptrie_open
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1189,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1191,1
    - Dst: umutablecptrie_setRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1200,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1191,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1190,1
    - Dst: umutablecptrie_setRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1201,1
    - Dst: umutablecptrie_setRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1202,1
    - Dst: umutablecptrie_setRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1203,1
    - Dst: umutablecptrie_setRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1206,1
    - Dst: umutablecptrie_setRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1207,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1211,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1218,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1217,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1209,1
    - Dst: testTrieSerializeAllValueWidth
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1216,1
    - Dst: umutablecptrie_setRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1208,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1210,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1212,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1219
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1219
    functionName: FreeBlocksTest
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - testTrieSerializeAllValueWidth
    - umutablecptrie_close
    - umutablecptrie_open
    - log_err
    - UPRV_LENGTHOF
    - umutablecptrie_setRange
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void FreeBlocksTest(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testTrieRanges
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1524,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1526,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1527
      start: 1493
    functionDepth: 0
    functionLinenumber: 1493
    functionLinenumberEnd: 1527
    functionName: TestSmallNullBlockMatchesFast
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - testTrieRanges
    linkageType: ''
    returnType: void
    signature: 'static void TestSmallNullBlockMatchesFast(void) '
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: UCPTRIE_ASCII_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:209,1
    - Dst: UCPTRIE_FAST_BMP_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:220,1
    - Dst: UCPTRIE_FAST_BMP_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:222,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:227,1
    - Dst: UCPTRIE_FAST_SUPP_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:233,1
    - Dst: UCPTRIE_FAST_SUPP_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:235,1
    - Dst: UCPTRIE_FAST_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:248,1
    - Dst: UCPTRIE_SMALL_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:258,1
    - Dst: UCPTRIE_FAST_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:246,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:294,1
    - Dst: getSpecialValues
      Src: /src/icu/source/test/cintltst/ucptrietest.c:195,1
    - Dst: UCPTRIE_FAST_BMP_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:224,1
    - Dst: UCPTRIE_FAST_SUPP_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:237,1
    - Dst: UCPTRIE_FAST_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:250,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:262,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:268,1
    - Dst: UCPTRIE_FAST_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:314,1
    - Dst: UCPTRIE_FAST_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:315,1
    - Dst: UCPTRIE_SMALL_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:320,1
    - Dst: ucptrie_get
      Src: /src/icu/source/test/cintltst/ucptrietest.c:333,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:240,1
    - Dst: ucptrie_get
      Src: /src/icu/source/test/cintltst/ucptrietest.c:266,1
    - Dst: UCPTRIE_FAST_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:308,1
    - Dst: UCPTRIE_FAST_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:309,1
    - Dst: UCPTRIE_SMALL_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:322,1
    - Dst: UCPTRIE_SMALL_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:323,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:330,1
    - Dst: UCPTRIE_SMALL_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:325,1
    - Dst: UCPTRIE_ASCII_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:207,1
    - Dst: UCPTRIE_ASCII_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:205,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:212,1
    - Dst: UCPTRIE_SMALL_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:254,1
    - Dst: UCPTRIE_SMALL_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:256,1
    - Dst: UCPTRIE_FAST_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:311,1
    - Dst: UCPTRIE_FAST_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:312,1
    - Dst: UCPTRIE_SMALL_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:319,1
    - Dst: ucptrie_get
      Src: /src/icu/source/test/cintltst/ucptrietest.c:334,1
    - Dst: UCPTRIE_SMALL_GET
      Src: /src/icu/source/test/cintltst/ucptrietest.c:326,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:336,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 169
    argCount: 6
    argNames:
    - testName
    - trie
    - type
    - valueWidth
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UCPTrie*
    - UCPTrieType
    - UCPTrieValueWidth
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 339
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 339
    functionName: testTrieGetters
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - ucptrie_get
    - UCPTRIE_ASCII_GET
    - UCPTRIE_FAST_GET
    - UCPTRIE_FAST_BMP_GET
    - log_err
    - UCPTRIE_SMALL_GET
    - getSpecialValues
    - UCPTRIE_FAST_SUPP_GET
    linkageType: ''
    returnType: void
    signature: 'static void testTrieGetters(const char *testName, const UCPTrie *trie,
      UCPTrieType type, UCPTrieValueWidth valueWidth, const CheckRange checkRanges[],
      int32_t countCheckRanges) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testBuilderGetters
      Src: /src/icu/source/test/cintltst/ucptrietest.c:703,1
    - Dst: testTrieGetRanges
      Src: /src/icu/source/test/cintltst/ucptrietest.c:704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 4
    argNames:
    - testName
    - mutableTrie
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UMutableCPTrie*
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 705
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 705
    functionName: testBuilder
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - testBuilderGetters
    - testTrieGetRanges
    linkageType: ''
    returnType: void
    signature: 'static void testBuilder(const char *testName, const UMutableCPTrie
      *mutableTrie, const CheckRange checkRanges[], int32_t countCheckRanges) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: makeTrieWithRanges
      Src: /src/icu/source/test/cintltst/ucptrietest.c:987,1
    - Dst: testTrieSerializeAllValueWidth
      Src: /src/icu/source/test/cintltst/ucptrietest.c:990,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:992,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 6
    argNames:
    - testName
    - withClone
    - setRanges
    - countSetRanges
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UBool
    - SetRange
    - int32_t
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 994
      start: 983
    functionDepth: 0
    functionLinenumber: 983
    functionLinenumberEnd: 994
    functionName: testTrieRanges
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - testTrieSerializeAllValueWidth
    - umutablecptrie_close
    - makeTrieWithRanges
    linkageType: ''
    returnType: void
    signature: 'static void testTrieRanges(const char *testName, UBool withClone,
      const SetRange setRanges[], int32_t countSetRanges, const CheckRange checkRanges[],
      int32_t countCheckRanges) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testTrieRanges
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1151,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1154
      start: 1149
    functionDepth: 0
    functionLinenumber: 1149
    functionLinenumberEnd: 1154
    functionName: TrieTestSetEmpty
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - testTrieRanges
    linkageType: ''
    returnType: void
    signature: 'static void TrieTestSetEmpty(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: umutablecptrie_open
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1238,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1239,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1240,1
    - Dst: umutablecptrie_set
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1249,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1240,1
    - Dst: umutablecptrie_set
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1252,1
    - Dst: umutablecptrie_set
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1255,1
    - Dst: umutablecptrie_set
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1258,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1260,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1261,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1268,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1269,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1262,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1263,1
    - Dst: testTrieSerializeAllValueWidth
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1267,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1270
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1270
    functionName: GrowDataArrayTest
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - testTrieSerializeAllValueWidth
    - umutablecptrie_set
    - umutablecptrie_close
    - umutablecptrie_open
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void GrowDataArrayTest(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: umutablecptrie_open
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1535,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1539,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1538,1
    - Dst: umutablecptrie_setRange
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1544,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1539,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1550,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1551,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1552,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1553,1
    - Dst: testTrieSerializeAllValueWidth
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1557,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1558,1
    - Dst: umutablecptrie_close
      Src: /src/icu/source/test/cintltst/ucptrietest.c:1559,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1560
      start: 1529
    functionDepth: 0
    functionLinenumber: 1529
    functionLinenumberEnd: 1560
    functionName: ShortAllSameBlocksTest
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - testTrieSerializeAllValueWidth
    - umutablecptrie_close
    - umutablecptrie_open
    - log_err
    - UPRV_LENGTHOF
    - umutablecptrie_setRange
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void ShortAllSameBlocksTest(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - checkRanges
    - countCheckRanges
    - pInitialValue
    - pErrorValue
    argTypes:
    - CheckRange
    - int32_t
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 64
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 64
    functionName: getSpecialValues
    functionSourceFile: /src/icu/source/test/cintltst/ucptrietest.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t getSpecialValues(const CheckRange checkRanges[], int32_t
      countCheckRanges, uint32_t *pInitialValue, uint32_t *pErrorValue) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/icu/source/test/cintltst/udatatst.c:110,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/udatatst.c:111,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/udatatst.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: lots_of_mallocs
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - malloc
    - free
    linkageType: ''
    returnType: void
    signature: 'static void lots_of_mallocs() '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:140,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:149,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:261,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/udatatst.c:302,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:354,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:366,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:384,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:387,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:176,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:187,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/udatatst.c:190,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:197,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/udatatst.c:205,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:299,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:332,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:248,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/udatatst.c:135,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:219,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/udatatst.c:232,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:257,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:269,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/udatatst.c:331,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:339,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:369,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:376,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:177,1
    - Dst: uprv_fileExists
      Src: /src/icu/source/test/cintltst/udatatst.c:254,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:206,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:152,1
    - Dst: ctest_dataOutDir
      Src: /src/icu/source/test/cintltst/udatatst.c:157,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:171,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:324,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:327,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:358,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:379,1
    - Dst: uprv_fileExists
      Src: /src/icu/source/test/cintltst/udatatst.c:168,1
    - Dst: ctest_dataOutDir
      Src: /src/icu/source/test/cintltst/udatatst.c:246,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:330,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:356,1
    - Dst: udata_open
      Src: /src/icu/source/test/cintltst/udatatst.c:363,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:365,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/udatatst.c:375,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/udatatst.c:134,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/udatatst.c:172,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:180,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/udatatst.c:246,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:299,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:301,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:259,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/udatatst.c:142,1
    - Dst: ctest_dataOutDir
      Src: /src/icu/source/test/cintltst/udatatst.c:194,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:380,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/udatatst.c:204,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:211,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:227,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:266,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:216,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:195,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:177,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:249,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:276,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/udatatst.c:280,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:141,1
    - Dst: udata_open
      Src: /src/icu/source/test/cintltst/udatatst.c:148,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:147,1
    - Dst: uprv_malloc
      Src: /src/icu/source/test/cintltst/udatatst.c:164,1
    - Dst: uprv_fileExists
      Src: /src/icu/source/test/cintltst/udatatst.c:208,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/udatatst.c:245,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:361,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/udatatst.c:390,1
    - Dst: udata_open
      Src: /src/icu/source/test/cintltst/udatatst.c:175,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:217,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:262,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/udatatst.c:212,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:267,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/udatatst.c:357,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:368,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:150,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/udatatst.c:164,1
    - Dst: udata_open
      Src: /src/icu/source/test/cintltst/udatatst.c:297,1
    - Dst: udata_open
      Src: /src/icu/source/test/cintltst/udatatst.c:325,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/udatatst.c:204,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/udatatst.c:263,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:260,1
    - Dst: ctest_dataOutDir
      Src: /src/icu/source/test/cintltst/udatatst.c:133,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/udatatst.c:157,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:220,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:270,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:153,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:179,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/udatatst.c:194,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/udatatst.c:245,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:250,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:196,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:359,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:364,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:385,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/udatatst.c:133,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/udatatst.c:165,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:267,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:217,1
    - Dst: ctest_dataOutDir
      Src: /src/icu/source/test/cintltst/udatatst.c:258,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:247,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:330,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:337,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:362,1
    - Dst: udata_open
      Src: /src/icu/source/test/cintltst/udatatst.c:382,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:251,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/udatatst.c:133,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:150,1
    - Dst: ctest_dataOutDir
      Src: /src/icu/source/test/cintltst/udatatst.c:245,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/udatatst.c:258,1
    - Dst: udata_open
      Src: /src/icu/source/test/cintltst/udatatst.c:215,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/udatatst.c:139,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:141,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:157,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:166,1
    - Dst: udata_open
      Src: /src/icu/source/test/cintltst/udatatst.c:265,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:294,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:377,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 192
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 391
    functionName: TestUDataOpen
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - uprv_free
    - U_SUCCESS
    - free
    - u_errorName
    - uprv_malloc
    - U_FAILURE
    - udata_open
    - uprv_fileExists
    - loadTestData
    - log_data_err
    - strcpy
    - udata_close
    - log_verbose
    - UPRV_LENGTHOF
    - strcat
    - ctest_dataOutDir
    - log_err
    - malloc
    - myErrorName
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestUDataOpen() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u_init
      Src: /src/icu/source/test/cintltst/udatatst.c:518,1
    - Dst: u_cleanup
      Src: /src/icu/source/test/cintltst/udatatst.c:516,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:520,1
    - Dst: u_cleanup
      Src: /src/icu/source/test/cintltst/udatatst.c:525,1
    - Dst: u_init
      Src: /src/icu/source/test/cintltst/udatatst.c:527,1
    - Dst: u_setDataDirectory
      Src: /src/icu/source/test/cintltst/udatatst.c:546,1
    - Dst: udata_setFileAccess
      Src: /src/icu/source/test/cintltst/udatatst.c:539,1
    - Dst: u_cleanup
      Src: /src/icu/source/test/cintltst/udatatst.c:544,1
    - Dst: u_init
      Src: /src/icu/source/test/cintltst/udatatst.c:547,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:548,1
    - Dst: ctest_resetICU
      Src: /src/icu/source/test/cintltst/udatatst.c:552,1
    - Dst: safeGetICUDataDirectory
      Src: /src/icu/source/test/cintltst/udatatst.c:511,1
    - Dst: udata_setFileAccess
      Src: /src/icu/source/test/cintltst/udatatst.c:533,1
    - Dst: u_cleanup
      Src: /src/icu/source/test/cintltst/udatatst.c:538,1
    - Dst: udata_setFileAccess
      Src: /src/icu/source/test/cintltst/udatatst.c:545,1
    - Dst: u_init
      Src: /src/icu/source/test/cintltst/udatatst.c:540,1
    - Dst: udata_setFileAccess
      Src: /src/icu/source/test/cintltst/udatatst.c:517,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:519,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:520,1
    - Dst: udata_setFileAccess
      Src: /src/icu/source/test/cintltst/udatatst.c:526,1
    - Dst: u_cleanup
      Src: /src/icu/source/test/cintltst/udatatst.c:532,1
    - Dst: u_init
      Src: /src/icu/source/test/cintltst/udatatst.c:534,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/udatatst.c:549,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:549,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/udatatst.c:551,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 553
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 553
    functionName: TestUDataFileAccess
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - u_cleanup
    - safeGetICUDataDirectory
    - U_FAILURE
    - u_setDataDirectory
    - log_err_status
    - log_data_err
    - ctest_resetICU
    - free
    - u_init
    - udata_setFileAccess
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUDataFileAccess() '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/udatatst.c:657,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:659,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:665,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:665,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:677,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:677,1
    - Dst: udata_openChoice
      Src: /src/icu/source/test/cintltst/udatatst.c:689,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:690,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:658,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:659,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:667,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:681,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:681,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:694,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:702,1
    - Dst: udata_openChoice
      Src: /src/icu/source/test/cintltst/udatatst.c:707,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:709,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:709,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:668,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:685,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:698,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:698,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/udatatst.c:701,1
    - Dst: udata_openChoice
      Src: /src/icu/source/test/cintltst/udatatst.c:713,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:715,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:715,1
    - Dst: udata_openChoice
      Src: /src/icu/source/test/cintltst/udatatst.c:663,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:664,1
    - Dst: udata_openChoice
      Src: /src/icu/source/test/cintltst/udatatst.c:672,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:676,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/udatatst.c:684,1
    - Dst: udata_openChoice
      Src: /src/icu/source/test/cintltst/udatatst.c:675,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:673,1
    - Dst: udata_openChoice
      Src: /src/icu/source/test/cintltst/udatatst.c:692,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:693,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:694,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 717
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 717
    functionName: TestUDataOpenChoiceDemo1
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - loadTestData
    - log_data_err
    - U_SUCCESS
    - myErrorName
    - log_verbose
    - udata_close
    - udata_openChoice
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUDataOpenChoiceDemo1() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vlog_info
      Src: /src/icu/source/test/cintltst/udatatst.c:1402,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 3
    argNames:
    - context
    - fmt
    - args
    argTypes:
    - void*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 1404
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1404
    functionName: printError
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - vlog_info
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV printError(void *context, const char *fmt,
      va_list args) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1050,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1049,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/udatatst.c:1054,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1079,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1081,1
    - Dst: ures_getString
      Src: /src/icu/source/test/cintltst/udatatst.c:1078,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/udatatst.c:1071,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1081,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1088,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1090,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/udatatst.c:1118,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1066,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1066,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/udatatst.c:1087,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1090,1
    - Dst: ures_getString
      Src: /src/icu/source/test/cintltst/udatatst.c:1094,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1095,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1097,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1097,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/udatatst.c:1107,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1106,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/udatatst.c:1117,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1055,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1057,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1057,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/udatatst.c:1063,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1064,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/udatatst.c:1106,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:1111,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/udatatst.c:1112,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/udatatst.c:1112,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/udatatst.c:1115,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/udatatst.c:1048,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1050,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1074,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1074,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1072,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/udatatst.c:1104,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/udatatst.c:1116,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1119
    functionName: TestAppData
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - ures_getByKey
    - U_FAILURE
    - loadTestData
    - log_data_err
    - u_austrcpy
    - austrdup
    - log_verbose
    - log_err
    - ures_close
    - ures_getString
    - u_strcmp
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestAppData() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:733,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:737,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 4
    argNames:
    - context
    - type
    - name
    - pInfo
    argTypes:
    - void*
    - char*
    - char*
    - UDataInfo*
    constantsTouched: []
    func_position:
      end: 740
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 740
    functionName: isAcceptable
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - log_verbose
    linkageType: ''
    returnType: UBool
    signature: 'static UBool U_CALLCONV isAcceptable(void *context, const char *type,
      const char *name, const UDataInfo *pInfo) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1424,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1424,1
    - Dst: udata_closeSwapper
      Src: /src/icu/source/test/cintltst/udatatst.c:1468,1
    - Dst: udata_openSwapper
      Src: /src/icu/source/test/cintltst/udatatst.c:1469,1
    - Dst: swapFn
      Src: /src/icu/source/test/cintltst/udatatst.c:1482,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1495,1
    - Dst: udata_closeSwapper
      Src: /src/icu/source/test/cintltst/udatatst.c:1506,1
    - Dst: udata_closeSwapper
      Src: /src/icu/source/test/cintltst/udatatst.c:1512,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1530,1
    - Dst: swapFn
      Src: /src/icu/source/test/cintltst/udatatst.c:1565,1
    - Dst: udata_closeSwapper
      Src: /src/icu/source/test/cintltst/udatatst.c:1566,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1541,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1515,1
    - Dst: swapFn
      Src: /src/icu/source/test/cintltst/udatatst.c:1422,1
    - Dst: swapFn
      Src: /src/icu/source/test/cintltst/udatatst.c:1427,1
    - Dst: udata_openSwapperForInputData
      Src: /src/icu/source/test/cintltst/udatatst.c:1452,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1455,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1454,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1484,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1485,1
    - Dst: swapFn
      Src: /src/icu/source/test/cintltst/udatatst.c:1494,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1514,1
    - Dst: udata_openSwapper
      Src: /src/icu/source/test/cintltst/udatatst.c:1527,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/udatatst.c:1581,1
    - Dst: swapFn
      Src: /src/icu/source/test/cintltst/udatatst.c:1538,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1557,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/udatatst.c:1595,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/udatatst.c:1612,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1567,1
    - Dst: udata_openSwapper
      Src: /src/icu/source/test/cintltst/udatatst.c:1554,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1429,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1429,1
    - Dst: udata_getRawMemory
      Src: /src/icu/source/test/cintltst/udatatst.c:1447,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1472,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1471,1
    - Dst: udata_closeSwapper
      Src: /src/icu/source/test/cintltst/udatatst.c:1486,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1496,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1497,1
    - Dst: swapFn
      Src: /src/icu/source/test/cintltst/udatatst.c:1511,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1513,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/udatatst.c:1599,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/udatatst.c:1620,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/udatatst.c:1616,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1586,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1540,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1575,1
    - Dst: udata_getMemory
      Src: /src/icu/source/test/cintltst/udatatst.c:1435,1
    - Dst: udata_getLength
      Src: /src/icu/source/test/cintltst/udatatst.c:1441,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1470,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1456,1
    - Dst: udata_closeSwapper
      Src: /src/icu/source/test/cintltst/udatatst.c:1498,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1504,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1521,1
    - Dst: udata_closeSwapper
      Src: /src/icu/source/test/cintltst/udatatst.c:1539,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1558,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1559,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1568,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1532,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1569,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1548,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/udatatst.c:1608,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1542,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1531,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 161
    argCount: 5
    argNames:
    - pData
    - name
    - swapFn
    - buffer
    - buffer2
    argTypes:
    - UDataMemory*
    - char*
    - UDataSwapFn*
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1623
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1623
    functionName: TestSwapCase
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - uprv_memcmp
    - udata_openSwapper
    - udata_getMemory
    - log_info
    - U_FAILURE
    - swapFn
    - udata_closeSwapper
    - udata_getRawMemory
    - udata_openSwapperForInputData
    - log_err
    - udata_getLength
    - u_errorName
    - uprv_memset
    linkageType: ''
    returnType: void
    signature: 'static void TestSwapCase(UDataMemory *pData, const char *name, UDataSwapFn
      *swapFn, uint8_t *buffer, uint8_t *buffer2) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ucal_getTZDataVersion
      Src: /src/icu/source/test/cintltst/udatatst.c:1845,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1848,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1847,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1848,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/udatatst.c:1850,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1851,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/udatatst.c:1854,1
    - Dst: ctest_resetICU
      Src: /src/icu/source/test/cintltst/udatatst.c:1860,1
    - Dst: u_setTimeZoneFilesDirectory
      Src: /src/icu/source/test/cintltst/udatatst.c:1861,1
    - Dst: ucal_getTZDataVersion
      Src: /src/icu/source/test/cintltst/udatatst.c:1862,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1864,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/udatatst.c:1870,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1871,1
    - Dst: ctest_resetICU
      Src: /src/icu/source/test/cintltst/udatatst.c:1867,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/udatatst.c:1863,1
    - Dst: ucal_getTZDataVersion
      Src: /src/icu/source/test/cintltst/udatatst.c:1868,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1874
      start: 1838
    functionDepth: 0
    functionLinenumber: 1838
    functionLinenumberEnd: 1874
    functionName: TestTZDataDir
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - ctest_resetICU
    - strcmp
    - log_data_err
    - loadTestData
    - ucal_getTZDataVersion
    - u_setTimeZoneFilesDirectory
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestTZDataDir(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:571,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:574,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:584,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 4
    argNames:
    - context
    - type
    - name
    - pInfo
    argTypes:
    - void*
    - char*
    - char*
    - UDataInfo*
    constantsTouched: []
    func_position:
      end: 587
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 587
    functionName: isAcceptable1
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - log_verbose
    linkageType: ''
    returnType: UBool
    signature: 'static UBool U_CALLCONV isAcceptable1(void *context, const char *type,
      const char *name, const UDataInfo *pInfo) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:633,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:637,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 4
    argNames:
    - context
    - type
    - name
    - pInfo
    argTypes:
    - void*
    - char*
    - char*
    - UDataInfo*
    constantsTouched: []
    func_position:
      end: 642
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 642
    functionName: isAcceptable3
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - log_verbose
    linkageType: ''
    returnType: UBool
    signature: 'static UBool U_CALLCONV isAcceptable3(void *context, const char *type,
      const char *name, const UDataInfo *pInfo) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_getUnicodeVersion
      Src: /src/icu/source/test/cintltst/udatatst.c:596,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:611,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:608,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 4
    argNames:
    - context
    - type
    - name
    - pInfo
    argTypes:
    - void*
    - char*
    - char*
    - UDataInfo*
    constantsTouched: []
    func_position:
      end: 617
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 617
    functionName: isAcceptable2
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - u_getUnicodeVersion
    - log_verbose
    linkageType: ''
    returnType: UBool
    signature: 'static UBool U_CALLCONV isAcceptable2(void *context, const char *type,
      const char *name, const UDataInfo *pInfo) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: udata_printError
      Src: /src/icu/source/test/cintltst/udatatst.c:1666,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/udatatst.c:1668,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:1728,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:1737,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1740,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:1730,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1739,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1643,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1676,1
    - Dst: udata_openSwapperForInputData
      Src: /src/icu/source/test/cintltst/udatatst.c:1687,1
    - Dst: udata_openSwapperForInputData
      Src: /src/icu/source/test/cintltst/udatatst.c:1672,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1691,1
    - Dst: ucol_swap
      Src: /src/icu/source/test/cintltst/udatatst.c:1697,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/udatatst.c:1721,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:1729,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/udatatst.c:1731,1
    - Dst: udata_open
      Src: /src/icu/source/test/cintltst/udatatst.c:1733,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/udatatst.c:1641,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1649,1
    - Dst: udata_openSwapper
      Src: /src/icu/source/test/cintltst/udatatst.c:1654,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1658,1
    - Dst: udata_closeSwapper
      Src: /src/icu/source/test/cintltst/udatatst.c:1667,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1699,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/udatatst.c:1710,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/udatatst.c:1711,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/udatatst.c:1712,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/udatatst.c:1717,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/udatatst.c:1744,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/udatatst.c:1735,1
    - Dst: TestSwapCase
      Src: /src/icu/source/test/cintltst/udatatst.c:1736,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1648,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/udatatst.c:1647,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1649,1
    - Dst: udata_openSwapper
      Src: /src/icu/source/test/cintltst/udatatst.c:1661,1
    - Dst: udata_openSwapperForInputData
      Src: /src/icu/source/test/cintltst/udatatst.c:1679,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/udatatst.c:1686,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1669,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1683,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/udatatst.c:1704,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/udatatst.c:1715,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/udatatst.c:1726,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/udatatst.c:1718,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 121
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1631
    functionDepth: 0
    functionLinenumber: 1631
    functionLinenumberEnd: 1745
    functionName: TestSwapData
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - udata_openSwapper
    - uprv_strcat
    - ucol_swap
    - udata_closeSwapper
    - U_SUCCESS
    - udata_openSwapperForInputData
    - free
    - u_errorName
    - U_FAILURE
    - udata_open
    - TestSwapCase
    - loadTestData
    - log_data_err
    - uprv_strcmp
    - udata_close
    - UPRV_LENGTHOF
    - memset
    - strcmp
    - log_err
    - uprv_strcpy
    - malloc
    - udata_printError
    linkageType: ''
    returnType: void
    signature: 'static void TestSwapData() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/udatatst.c:85,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/udatatst.c:87,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/udatatst.c:88,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/udatatst.c:86,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/udatatst.c:89,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/udatatst.c:90,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/udatatst.c:91,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/udatatst.c:92,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/udatatst.c:94,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/udatatst.c:95,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/udatatst.c:96,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/udatatst.c:97,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/udatatst.c:98,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/udatatst.c:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 102
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 102
    functionName: addUDataTest
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addUDataTest(TestNode** root) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/udatatst.c:939,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:941,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:951,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:965,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:963,1
    - Dst: udata_openChoice
      Src: /src/icu/source/test/cintltst/udatatst.c:976,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:978,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:985,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:992,1
    - Dst: udata_getInfo
      Src: /src/icu/source/test/cintltst/udatatst.c:1008,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1020,1
    - Dst: udata_openChoice
      Src: /src/icu/source/test/cintltst/udatatst.c:1015,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:941,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:940,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:961,1
    - Dst: udata_open
      Src: /src/icu/source/test/cintltst/udatatst.c:960,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:963,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:968,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:979,1
    - Dst: udata_openChoice
      Src: /src/icu/source/test/cintltst/udatatst.c:987,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:988,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:992,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1010,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:1014,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:1029,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:954,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:969,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:990,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:996,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1003,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:1017,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1020,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:1022,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1027,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:995,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/udatatst.c:1021,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:947,1
    - Dst: udata_open
      Src: /src/icu/source/test/cintltst/udatatst.c:948,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:950,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:958,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:974,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:965,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:981,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:990,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:1000,1
    - Dst: udata_getMemory
      Src: /src/icu/source/test/cintltst/udatatst.c:1001,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 1031
    functionName: TestErrorConditions
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - udata_getMemory
    - U_FAILURE
    - udata_open
    - loadTestData
    - log_data_err
    - U_SUCCESS
    - udata_getInfo
    - udata_close
    - log_verbose
    - log_err
    - myErrorName
    - u_errorName
    - udata_openChoice
    linkageType: ''
    returnType: void
    signature: 'static void TestErrorConditions() '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/udatatst.c:753,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:755,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/udatatst.c:763,1
    - Dst: udata_openChoice
      Src: /src/icu/source/test/cintltst/udatatst.c:769,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:777,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:782,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:755,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:754,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:772,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:777,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:785,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:782,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:781,1
    - Dst: udata_openChoice
      Src: /src/icu/source/test/cintltst/udatatst.c:759,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:760,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:772,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:771,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:786,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:761,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:764,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 790
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 790
    functionName: TestUDataOpenChoiceDemo2
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - loadTestData
    - log_data_err
    - U_SUCCESS
    - udata_close
    - log_verbose
    - myErrorName
    - udata_openChoice
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUDataOpenChoiceDemo2() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/udatatst.c:880,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:882,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/udatatst.c:910,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:913,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:882,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:881,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:890,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:890,1
    - Dst: udata_getMemory
      Src: /src/icu/source/test/cintltst/udatatst.c:893,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:905,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:905,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:897,1
    - Dst: udata_openChoice
      Src: /src/icu/source/test/cintltst/udatatst.c:888,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:889,1
    - Dst: ucnv_countAvailable
      Src: /src/icu/source/test/cintltst/udatatst.c:897,1
    - Dst: ucnv_countAvailable
      Src: /src/icu/source/test/cintltst/udatatst.c:896,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:911,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:887,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:899,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:902,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:904,1
    - Dst: udata_openChoice
      Src: /src/icu/source/test/cintltst/udatatst.c:903,1
    - Dst: udata_getMemory
      Src: /src/icu/source/test/cintltst/udatatst.c:908,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 915
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 915
    functionName: TestUDataGetMemory
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - ucnv_countAvailable
    - udata_getMemory
    - U_FAILURE
    - loadTestData
    - log_data_err
    - strcmp
    - myErrorName
    - log_verbose
    - log_err
    - udata_openChoice
    - udata_close
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUDataGetMemory() '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1772,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:1781,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1790,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1794,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1759,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1772,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:1774,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:1786,1
    - Dst: udata_open
      Src: /src/icu/source/test/cintltst/udatatst.c:1788,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/udatatst.c:1789,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1790,1
    - Dst: udata_open
      Src: /src/icu/source/test/cintltst/udatatst.c:1792,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/udatatst.c:1793,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1794,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1760,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1766,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:1769,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1784,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1778,1
    - Dst: udata_setAppData
      Src: /src/icu/source/test/cintltst/udatatst.c:1757,1
    - Dst: udata_open
      Src: /src/icu/source/test/cintltst/udatatst.c:1764,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1765,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1766,1
    - Dst: udata_getMemory
      Src: /src/icu/source/test/cintltst/udatatst.c:1768,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:1777,1
    - Dst: udata_open
      Src: /src/icu/source/test/cintltst/udatatst.c:1776,1
    - Dst: udata_getMemory
      Src: /src/icu/source/test/cintltst/udatatst.c:1780,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1778,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:1784,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1748
    functionDepth: 0
    functionLinenumber: 1748
    functionLinenumberEnd: 1797
    functionName: PointerTableOfContents
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - udata_getMemory
    - U_FAILURE
    - udata_setAppData
    - udata_open
    - U_SUCCESS
    - udata_close
    - log_verbose
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void PointerTableOfContents() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: udata_setAppData
      Src: /src/icu/source/test/cintltst/udatatst.c:453,1
    - Dst: udata_setAppData
      Src: /src/icu/source/test/cintltst/udatatst.c:461,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:455,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:456,1
    - Dst: udata_setAppData
      Src: /src/icu/source/test/cintltst/udatatst.c:468,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:470,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:471,1
    - Dst: udata_setAppData
      Src: /src/icu/source/test/cintltst/udatatst.c:475,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:477,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:478,1
    - Dst: udata_setAppData
      Src: /src/icu/source/test/cintltst/udatatst.c:485,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:487,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:488,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 496
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 496
    functionName: TestUDataSetAppData
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - udata_setAppData
    - u_errorName
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestUDataSetAppData() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_getDataDirectory
      Src: /src/icu/source/test/cintltst/udatatst.c:499,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/udatatst.c:502,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/udatatst.c:503,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/udatatst.c:502,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 506
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 506
    functionName: safeGetICUDataDirectory
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - strlen
    - u_getDataDirectory
    - strcpy
    - malloc
    linkageType: ''
    returnType: char*
    signature: 'static char *safeGetICUDataDirectory() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:815,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/udatatst.c:816,1
    - Dst: udata_open
      Src: /src/icu/source/test/cintltst/udatatst.c:821,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:822,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:841,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:864,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/udatatst.c:814,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:820,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:844,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:847,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:847,1
    - Dst: udata_getInfo
      Src: /src/icu/source/test/cintltst/udatatst.c:850,1
    - Dst: udata_close
      Src: /src/icu/source/test/cintltst/udatatst.c:866,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:837,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:816,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/udatatst.c:823,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/udatatst.c:823,1
    - Dst: udata_getInfo
      Src: /src/icu/source/test/cintltst/udatatst.c:826,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:839,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/udatatst.c:846,1
    - Dst: udata_open
      Src: /src/icu/source/test/cintltst/udatatst.c:845,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:862,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 867
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 867
    functionName: TestUDataGetInfo
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - udata_open
    - loadTestData
    - log_data_err
    - udata_getInfo
    - myErrorName
    - log_verbose
    - log_err
    - udata_close
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUDataGetInfo() '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:1131,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/udatatst.c:1158,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:1163,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1148,1
    - Dst: u_getVersion
      Src: /src/icu/source/test/cintltst/udatatst.c:1134,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/udatatst.c:1164,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1166,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/udatatst.c:1167,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/udatatst.c:1170,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1172,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1186,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/udatatst.c:1191,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/udatatst.c:1173,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/udatatst.c:1184,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1178,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/udatatst.c:1176,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1195
    functionName: TestICUDataName
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - sprintf
    - uprv_strlen
    - uprv_strcmp
    - log_verbose
    - log_err
    - u_getVersion
    linkageType: ''
    returnType: void
    signature: 'static void TestICUDataName() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vsprintf
      Src: /src/icu/source/test/cintltst/udatatst.c:1627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - context
    - fmt
    - args
    argTypes:
    - void*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 1628
      start: 1625
    functionDepth: 0
    functionLinenumber: 1625
    functionLinenumberEnd: 1628
    functionName: printErrorToString
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - vsprintf
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV printErrorToString(void *context, const char
      *fmt, va_list args) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/icu/source/test/cintltst/udatatst.c:1805,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1812,1
    - Dst: udata_setCommonData
      Src: /src/icu/source/test/cintltst/udatatst.c:1816,1
    - Dst: udata_setCommonData
      Src: /src/icu/source/test/cintltst/udatatst.c:1810,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/udatatst.c:1806,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1818,1
    - Dst: udata_setAppData
      Src: /src/icu/source/test/cintltst/udatatst.c:1823,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/udatatst.c:1825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1827
      start: 1799
    functionDepth: 0
    functionLinenumber: 1799
    functionLinenumberEnd: 1827
    functionName: SetBadCommonData
    functionSourceFile: /src/icu/source/test/cintltst/udatatst.c
    functionUses: []
    functionsReached:
    - memset
    - udata_setAppData
    - strcpy
    - log_err
    - udata_setCommonData
    linkageType: ''
    returnType: void
    signature: 'static void SetBadCommonData(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:465,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:469,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:466,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/idnatest.c:467,1
    - Dst: func
      Src: /src/icu/source/test/cintltst/idnatest.c:468,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:470,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:470,1
    - Dst: testAPI
      Src: /src/icu/source/test/cintltst/idnatest.c:473,1
    - Dst: testAPI
      Src: /src/icu/source/test/cintltst/idnatest.c:475,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:476,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:477,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:477,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 482
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 482
    functionName: TestIDNToUnicode
    functionSourceFile: /src/icu/source/test/cintltst/idnatest.c
    functionUses: []
    functionsReached:
    - u_unescape
    - U_FAILURE
    - log_err_status
    - testAPI
    - func
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestIDNToUnicode() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:434,1
    - Dst: testAPI
      Src: /src/icu/source/test/cintltst/idnatest.c:436,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:435,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/idnatest.c:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 439
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 439
    functionName: TestToASCII
    functionSourceFile: /src/icu/source/test/cintltst/idnatest.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - u_charsToUChars
    - testAPI
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestToASCII() '
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:80,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/idnatest.c:88,1
    - Dst: memcpy
      Src: /src/icu/source/test/cintltst/idnatest.c:89,1
    - Dst: func
      Src: /src/icu/source/test/cintltst/idnatest.c:94,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/idnatest.c:101,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/idnatest.c:123,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:124,1
    - Dst: func
      Src: /src/icu/source/test/cintltst/idnatest.c:121,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:133,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:133,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:217,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:191,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:195,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:173,1
    - Dst: u_strCaseCompare
      Src: /src/icu/source/test/cintltst/idnatest.c:101,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:110,1
    - Dst: func
      Src: /src/icu/source/test/cintltst/idnatest.c:116,1
    - Dst: u_strCaseCompare
      Src: /src/icu/source/test/cintltst/idnatest.c:123,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:110,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:128,1
    - Dst: func
      Src: /src/icu/source/test/cintltst/idnatest.c:145,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:145,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/idnatest.c:147,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:148,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:156,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:156,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:211,1
    - Dst: func
      Src: /src/icu/source/test/cintltst/idnatest.c:99,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:102,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/idnatest.c:111,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:133,1
    - Dst: func
      Src: /src/icu/source/test/cintltst/idnatest.c:140,1
    - Dst: u_strCaseCompare
      Src: /src/icu/source/test/cintltst/idnatest.c:147,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:151,1
    - Dst: func
      Src: /src/icu/source/test/cintltst/idnatest.c:167,1
    - Dst: u_strCaseCompare
      Src: /src/icu/source/test/cintltst/idnatest.c:169,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:170,1
    - Dst: func
      Src: /src/icu/source/test/cintltst/idnatest.c:188,1
    - Dst: u_strCaseCompare
      Src: /src/icu/source/test/cintltst/idnatest.c:190,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:200,1
    - Dst: u_strCaseCompare
      Src: /src/icu/source/test/cintltst/idnatest.c:213,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:214,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:222,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:178,1
    - Dst: func
      Src: /src/icu/source/test/cintltst/idnatest.c:183,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:222,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:200,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:178,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:87,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:105,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:110,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:156,1
    - Dst: func
      Src: /src/icu/source/test/cintltst/idnatest.c:161,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:167,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:178,1
    - Dst: func
      Src: /src/icu/source/test/cintltst/idnatest.c:205,1
    - Dst: func
      Src: /src/icu/source/test/cintltst/idnatest.c:211,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/idnatest.c:213,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/idnatest.c:190,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/idnatest.c:169,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/idnatest.c:224,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:222,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:200,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 203
    argCount: 8
    argNames:
    - src
    - expected
    - testName
    - useSTD3ASCIIRules
    - expectedStatus
    - doCompare
    - testUnassigned
    - func
    argTypes:
    - UChar*
    - UChar*
    - char*
    - UBool
    - UErrorCode
    - UBool
    - UBool
    - TestFunc
    constantsTouched: []
    func_position:
      end: 225
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 225
    functionName: testAPI
    functionSourceFile: /src/icu/source/test/cintltst/idnatest.c
    functionUses: []
    functionsReached:
    - malloc
    - memcpy
    - log_err_status
    - func
    - U_SUCCESS
    - u_strCaseCompare
    - u_strlen
    - free
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void testAPI(const UChar* src, const UChar* expected, const
      char* testName, UBool useSTD3ASCIIRules,UErrorCode expectedStatus, UBool doCompare,
      UBool testUnassigned, TestFunc func) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:448,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/idnatest.c:449,1
    - Dst: testAPI
      Src: /src/icu/source/test/cintltst/idnatest.c:450,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 452
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 452
    functionName: TestToUnicode
    functionSourceFile: /src/icu/source/test/cintltst/idnatest.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - u_charsToUChars
    - testAPI
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestToUnicode() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:495,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:499,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:496,1
    - Dst: func
      Src: /src/icu/source/test/cintltst/idnatest.c:498,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/idnatest.c:497,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:500,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:500,1
    - Dst: testAPI
      Src: /src/icu/source/test/cintltst/idnatest.c:503,1
    - Dst: testAPI
      Src: /src/icu/source/test/cintltst/idnatest.c:505,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:506,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:507,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:507,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 513
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 513
    functionName: TestIDNToASCII
    functionSourceFile: /src/icu/source/test/cintltst/idnatest.c
    functionUses: []
    functionsReached:
    - u_unescape
    - U_FAILURE
    - log_err_status
    - testAPI
    - func
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestIDNToASCII() '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:528,1
    - Dst: func
      Src: /src/icu/source/test/cintltst/idnatest.c:543,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:559,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:548,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:529,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:529,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:549,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:549,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:559,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:536,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:539,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:539,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:556,1
    - Dst: func
      Src: /src/icu/source/test/cintltst/idnatest.c:523,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:526,1
    - Dst: func
      Src: /src/icu/source/test/cintltst/idnatest.c:533,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:538,1
    - Dst: func
      Src: /src/icu/source/test/cintltst/idnatest.c:553,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:546,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:558,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 7
    argNames:
    - s1
    - s1Len
    - s2
    - s2Len
    - testName
    - func
    - isEqual
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - char*
    - CompareFunc
    - UBool
    constantsTouched: []
    func_position:
      end: 561
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 561
    functionName: testCompareWithSrc
    functionSourceFile: /src/icu/source/test/cintltst/idnatest.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_err_status
    - func
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void testCompareWithSrc(const UChar* s1, int32_t s1Len, const
      UChar* s2, int32_t s2Len, const char* testName, CompareFunc func, UBool isEqual) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:588,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/idnatest.c:595,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:594,1
    - Dst: testCompareWithSrc
      Src: /src/icu/source/test/cintltst/idnatest.c:621,1
    - Dst: testCompareWithSrc
      Src: /src/icu/source/test/cintltst/idnatest.c:628,1
    - Dst: testCompareWithSrc
      Src: /src/icu/source/test/cintltst/idnatest.c:636,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:636,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/idnatest.c:583,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/idnatest.c:588,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/idnatest.c:586,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/idnatest.c:594,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/idnatest.c:596,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:601,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:614,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/idnatest.c:582,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/idnatest.c:585,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/idnatest.c:589,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:607,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/idnatest.c:599,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/idnatest.c:608,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/idnatest.c:615,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:624,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:630,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:634,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/idnatest.c:590,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/idnatest.c:592,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/idnatest.c:607,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/idnatest.c:605,1
    - Dst: u_strncat
      Src: /src/icu/source/test/cintltst/idnatest.c:614,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:619,1
    - Dst: testCompareWithSrc
      Src: /src/icu/source/test/cintltst/idnatest.c:624,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:628,1
    - Dst: testCompareWithSrc
      Src: /src/icu/source/test/cintltst/idnatest.c:630,1
    - Dst: testCompareWithSrc
      Src: /src/icu/source/test/cintltst/idnatest.c:634,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 640
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 640
    functionName: TestCompare
    functionSourceFile: /src/icu/source/test/cintltst/idnatest.c
    functionUses: []
    functionsReached:
    - u_strncat
    - memset
    - testCompareWithSrc
    - u_strlen
    - u_strcat
    - UPRV_LENGTHOF
    - u_charsToUChars
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestCompare() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:650,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:663,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:662,1
    - Dst: uidna_toASCII
      Src: /src/icu/source/test/cintltst/idnatest.c:661,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:652,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:663,1
    - Dst: uidna_toUnicode
      Src: /src/icu/source/test/cintltst/idnatest.c:667,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:668,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:669,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:669,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 672
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 672
    functionName: TestJB4490
    functionSourceFile: /src/icu/source/test/cintltst/idnatest.c
    functionUses: []
    functionsReached:
    - uidna_toUnicode
    - U_FAILURE
    - log_err_status
    - u_strlen
    - uidna_toASCII
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestJB4490() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/idnatest.c:59,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/idnatest.c:63,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/idnatest.c:60,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/idnatest.c:61,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/idnatest.c:62,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/idnatest.c:64,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/idnatest.c:65,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/idnatest.c:66,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/idnatest.c:67,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/idnatest.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: addIDNATest
    functionSourceFile: /src/icu/source/test/cintltst/idnatest.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addIDNATest(TestNode** root) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:682,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:691,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:684,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:692,1
    - Dst: uidna_toASCII
      Src: /src/icu/source/test/cintltst/idnatest.c:690,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:692,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/idnatest.c:695,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:696,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 699
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 699
    functionName: TestJB4475
    functionSourceFile: /src/icu/source/test/cintltst/idnatest.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_err_status
    - u_strlen
    - uidna_toASCII
    - u_strncmp
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestJB4475() '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:913,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:922,1
    - Dst: uidna_nameToASCII
      Src: /src/icu/source/test/cintltst/idnatest.c:952,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/idnatest.c:936,1
    - Dst: uidna_labelToUnicode
      Src: /src/icu/source/test/cintltst/idnatest.c:978,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:1006,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/idnatest.c:945,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:984,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:975,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:887,1
    - Dst: uidna_nameToUnicodeUTF8
      Src: /src/icu/source/test/cintltst/idnatest.c:942,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:978,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:981,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:998,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:890,1
    - Dst: uidna_nameToASCII
      Src: /src/icu/source/test/cintltst/idnatest.c:898,1
    - Dst: uidna_labelToUnicodeUTF8
      Src: /src/icu/source/test/cintltst/idnatest.c:925,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:930,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:1000,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:892,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/idnatest.c:901,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:939,1
    - Dst: uidna_nameToUnicode
      Src: /src/icu/source/test/cintltst/idnatest.c:990,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:1009,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:1018,1
    - Dst: uidna_close
      Src: /src/icu/source/test/cintltst/idnatest.c:1021,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:877,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:895,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/idnatest.c:910,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:948,1
    - Dst: uidna_nameToASCII
      Src: /src/icu/source/test/cintltst/idnatest.c:984,1
    - Dst: uidna_nameToASCII_UTF8
      Src: /src/icu/source/test/cintltst/idnatest.c:1009,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:967,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:987,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:958,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:876,1
    - Dst: uidna_nameToUnicode
      Src: /src/icu/source/test/cintltst/idnatest.c:907,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:919,1
    - Dst: uidna_nameToUnicodeUTF8
      Src: /src/icu/source/test/cintltst/idnatest.c:1015,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:979,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:1003,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:993,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:883,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:922,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:884,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:891,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:904,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:918,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:975,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:973,1
    - Dst: uidna_labelToUnicodeUTF8
      Src: /src/icu/source/test/cintltst/idnatest.c:1003,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:1012,1
    - Dst: uidna_labelToASCII_UTF8
      Src: /src/icu/source/test/cintltst/idnatest.c:997,1
    - Dst: uidna_openUTS46
      Src: /src/icu/source/test/cintltst/idnatest.c:874,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:877,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:887,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:913,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:927,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:1006,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/idnatest.c:892,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:930,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:981,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:939,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:925,1
    - Dst: uidna_labelToUnicode
      Src: /src/icu/source/test/cintltst/idnatest.c:890,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/idnatest.c:919,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:1000,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:948,1
    - Dst: uidna_nameToUnicode
      Src: /src/icu/source/test/cintltst/idnatest.c:961,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:967,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:987,1
    - Dst: uidna_labelToASCII
      Src: /src/icu/source/test/cintltst/idnatest.c:882,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:926,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:1018,1
    - Dst: uidna_labelToASCII
      Src: /src/icu/source/test/cintltst/idnatest.c:972,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/idnatest.c:884,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:895,1
    - Dst: uidna_labelToASCII_UTF8
      Src: /src/icu/source/test/cintltst/idnatest.c:917,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:933,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:993,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/idnatest.c:964,1
    - Dst: uidna_nameToASCII_UTF8
      Src: /src/icu/source/test/cintltst/idnatest.c:933,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:958,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:898,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:904,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/idnatest.c:927,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/idnatest.c:1012,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 235
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 1022
    functionName: TestUTS46
    functionSourceFile: /src/icu/source/test/cintltst/idnatest.c
    functionUses: []
    functionsReached:
    - log_err_status
    - uidna_labelToUnicodeUTF8
    - uidna_close
    - u_errorName
    - uidna_labelToASCII
    - U_FAILURE
    - uidna_nameToUnicode
    - u_strlen
    - memcmp
    - UPRV_LENGTHOF
    - uidna_labelToASCII_UTF8
    - uidna_labelToUnicode
    - uidna_nameToASCII_UTF8
    - log_err
    - uidna_nameToASCII
    - uidna_openUTS46
    - uidna_nameToUnicodeUTF8
    - u_memcmp
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestUTS46() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/idnatest.c:827,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:827,1
    - Dst: uidna_toUnicode
      Src: /src/icu/source/test/cintltst/idnatest.c:831,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:833,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:834,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:834,1
    - Dst: uidna_toUnicode
      Src: /src/icu/source/test/cintltst/idnatest.c:837,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:838,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:839,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:839,1
    - Dst: uidna_IDNToUnicode
      Src: /src/icu/source/test/cintltst/idnatest.c:848,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:850,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:849,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:845,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:850,1
    - Dst: uidna_IDNToUnicode
      Src: /src/icu/source/test/cintltst/idnatest.c:843,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/idnatest.c:844,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:845,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 852
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 852
    functionName: TestJB5273
    functionSourceFile: /src/icu/source/test/cintltst/idnatest.c
    functionUses: []
    functionsReached:
    - uidna_toUnicode
    - u_unescape
    - U_FAILURE
    - log_err_status
    - uidna_IDNToUnicode
    - strlen
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestJB5273() '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: uidna_toUnicode
      Src: /src/icu/source/test/cintltst/idnatest.c:731,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:726,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/idnatest.c:730,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:741,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:741,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:756,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:745,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:756,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:760,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:767,1
    - Dst: uidna_IDNToASCII
      Src: /src/icu/source/test/cintltst/idnatest.c:800,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:820,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:733,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:733,1
    - Dst: uidna_toUnicode
      Src: /src/icu/source/test/cintltst/idnatest.c:739,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:752,1
    - Dst: uidna_toASCII
      Src: /src/icu/source/test/cintltst/idnatest.c:761,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:781,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:790,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:802,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:802,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:778,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:816,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:820,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:799,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:816,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:725,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:744,1
    - Dst: uidna_toASCII
      Src: /src/icu/source/test/cintltst/idnatest.c:746,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:763,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:763,1
    - Dst: uidna_toASCII
      Src: /src/icu/source/test/cintltst/idnatest.c:769,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/idnatest.c:782,1
    - Dst: uidna_IDNToUnicode
      Src: /src/icu/source/test/cintltst/idnatest.c:784,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:798,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:810,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:794,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:806,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:810,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/idnatest.c:729,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/idnatest.c:737,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:748,1
    - Dst: uidna_toASCII
      Src: /src/icu/source/test/cintltst/idnatest.c:754,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:748,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:771,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:771,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:786,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/idnatest.c:786,1
    - Dst: uidna_IDNToUnicode
      Src: /src/icu/source/test/cintltst/idnatest.c:792,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/idnatest.c:794,1
    - Dst: uidna_compare
      Src: /src/icu/source/test/cintltst/idnatest.c:818,1
    - Dst: uidna_IDNToASCII
      Src: /src/icu/source/test/cintltst/idnatest.c:808,1
    - Dst: uidna_compare
      Src: /src/icu/source/test/cintltst/idnatest.c:814,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 117
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 823
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 823
    functionName: TestLength
    functionSourceFile: /src/icu/source/test/cintltst/idnatest.c
    functionUses: []
    functionsReached:
    - uidna_toUnicode
    - uidna_IDNToASCII
    - log_err_status
    - uidna_compare
    - uidna_toASCII
    - uidna_IDNToUnicode
    - UPRV_LENGTHOF
    - u_charsToUChars
    - u_errorName
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestLength() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cfintst.c:69,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cfintst.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: addFinnishCollTest
    functionSourceFile: /src/icu/source/test/cintltst/cfintst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addFinnishCollTest(TestNode** root) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cfintst.c:82,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cfintst.c:84,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cfintst.c:86,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cfintst.c:84,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cfintst.c:83,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cfintst.c:87,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cfintst.c:90,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cfintst.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 93
    functionName: TestTertiary
    functionSourceFile: /src/icu/source/test/cintltst/cfintst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - log_verbose
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestTertiary( ) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cfintst.c:100,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cfintst.c:102,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cfintst.c:101,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cfintst.c:102,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cfintst.c:104,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cfintst.c:105,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cfintst.c:108,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cfintst.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 111
    functionName: TestPrimary
    functionSourceFile: /src/icu/source/test/cintltst/cfintst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - log_verbose
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestPrimary() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:31,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:32,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:33,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: addRelativeDateFormatTest
    functionSourceFile: /src/icu/source/test/cintltst/crelativedateformattest.c
    functionUses: []
    functionsReached:
    - TESTCASE
    linkageType: ''
    returnType: void
    signature: 'void addRelativeDateFormatTest(TestNode** root) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:610,1
    - Dst: ureldatefmt_combineDateAndTime
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:612,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:613,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:621,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:630,1
    - Dst: ureldatefmt_combineDateAndTime
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:628,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:631,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:636,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:604,1
    - Dst: ureldatefmt_open
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:603,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:622,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:619,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:594,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:606,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:605,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:611,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:618,1
    - Dst: ureldatefmt_close
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:641,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:614,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:615,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:634,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 643
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 643
    functionName: TestCombineDateTime
    functionSourceFile: /src/icu/source/test/cintltst/crelativedateformattest.c
    functionUses: []
    functionsReached:
    - u_unescape
    - ureldatefmt_combineDateAndTime
    - U_FAILURE
    - log_data_err
    - u_austrncpy
    - myErrorName
    - log_verbose
    - log_err
    - u_strncmp
    - ureldatefmt_close
    - ureldatefmt_open
    linkageType: ''
    returnType: void
    signature: 'static void TestCombineDateTime() '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:446,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:447,1
    - Dst: ureldatefmt_open
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:449,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:450,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:471,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:473,1
    - Dst: ufmtval_getString
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:478,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:480,1
    - Dst: ureldatefmt_resultAsValue
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:486,1
    - Dst: ucfpos_getField
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:491,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:526,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:535,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:528,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:531,1
    - Dst: assertUEquals
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:534,1
    - Dst: ucfpos_close
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:514,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:432,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:440,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:445,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:466,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:470,1
    - Dst: assertUEquals
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:479,1
    - Dst: ucfpos_open
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:483,1
    - Dst: ufmtval_nextPosition
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:486,1
    - Dst: ucfpos_getIndexes
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:497,1
    - Dst: ureldatefmt_closeResult
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:518,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:550,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:525,1
    - Dst: ucfpos_getIndexes
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:552,1
    - Dst: ucfpos_close
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:568,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:441,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:465,1
    - Dst: ureldatefmt_formatToResult
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:469,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:466,1
    - Dst: ucfpos_getCategory
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:490,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:500,1
    - Dst: ucfpos_getField
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:502,1
    - Dst: ureldatefmt_resultAsValue
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:541,1
    - Dst: ucfpos_getCategory
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:545,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:555,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:562,1
    - Dst: ufmtval_getString
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:533,1
    - Dst: ufmtval_nextPosition
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:541,1
    - Dst: ureldatefmt_close
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:573,1
    - Dst: ureldatefmt_resultAsValue
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:533,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:442,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:442,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:453,1
    - Dst: ureldatefmt_openResult
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:464,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:451,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:476,1
    - Dst: ureldatefmt_resultAsValue
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:478,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:508,1
    - Dst: ureldatefmt_formatNumericToResult
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:524,1
    - Dst: ucfpos_open
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:538,1
    - Dst: ucfpos_getField
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:546,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:495,1
    - Dst: ucfpos_getField
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:565,1
    - Dst: ucfpos_getField
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:557,1
    - Dst: ureldatefmt_closeResult
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:570,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 137
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 575
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 575
    functionName: TestNumericField
    functionSourceFile: /src/icu/source/test/cintltst/crelativedateformattest.c
    functionUses: []
    functionsReached:
    - ureldatefmt_openResult
    - unum_open
    - u_errorName
    - U_FAILURE
    - unum_setAttribute
    - ureldatefmt_formatToResult
    - log_data_err
    - ufmtval_getString
    - log_verbose
    - assertIntEquals
    - ucfpos_getField
    - u_unescape
    - ucfpos_getIndexes
    - ucfpos_close
    - log_err
    - ureldatefmt_formatNumericToResult
    - ureldatefmt_close
    - ureldatefmt_open
    - ureldatefmt_resultAsValue
    - ucfpos_getCategory
    - assertUEquals
    - assertSuccess
    - ufmtval_nextPosition
    - myErrorName
    - ureldatefmt_closeResult
    - ucfpos_open
    linkageType: ''
    returnType: void
    signature: 'static void TestNumericField() '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:361,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:361,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:372,1
    - Dst: ureldatefmt_format
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:385,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:386,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:370,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:392,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:408,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:414,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:365,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:366,1
    - Dst: ureldatefmt_open
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:368,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:369,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:387,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:389,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:396,1
    - Dst: ureldatefmt_close
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:425,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:351,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:359,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:364,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:395,1
    - Dst: ureldatefmt_formatNumeric
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:407,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:417,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:360,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:393,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:409,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:411,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:415,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:418,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 427
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 427
    functionName: TestRelDateFmt
    functionSourceFile: /src/icu/source/test/cintltst/crelativedateformattest.c
    functionUses: []
    functionsReached:
    - ureldatefmt_formatNumeric
    - ureldatefmt_format
    - u_unescape
    - U_FAILURE
    - unum_setAttribute
    - log_data_err
    - u_austrncpy
    - myErrorName
    - unum_open
    - log_verbose
    - log_err
    - u_strncmp
    - ureldatefmt_close
    - ureldatefmt_open
    linkageType: ''
    returnType: void
    signature: 'static void TestRelDateFmt() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ureldatefmt_open
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:647,1
    - Dst: ureldatefmt_openResult
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:654,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:655,1
    - Dst: ureldatefmt_formatNumericToResult
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:657,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:653,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:658,1
    - Dst: ureldatefmt_resultAsValue
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:660,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:661,1
    - Dst: checkMixedFormattedValue
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:667,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:672,1
    - Dst: checkMixedFormattedValue
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:683,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:676,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:688,1
    - Dst: ureldatefmt_formatToResult
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:675,1
    - Dst: ureldatefmt_closeResult
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:691,1
    - Dst: ureldatefmt_resultAsValue
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:678,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:679,1
    - Dst: ureldatefmt_close
      Src: /src/icu/source/test/cintltst/crelativedateformattest.c:692,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 693
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 693
    functionName: TestFields
    functionSourceFile: /src/icu/source/test/cintltst/crelativedateformattest.c
    functionUses: []
    functionsReached:
    - ureldatefmt_resultAsValue
    - UPRV_LENGTHOF
    - assertSuccess
    - ureldatefmt_formatToResult
    - checkMixedFormattedValue
    - ureldatefmt_openResult
    - ureldatefmt_close
    - ureldatefmt_formatNumericToResult
    - ureldatefmt_closeResult
    - ureldatefmt_open
    linkageType: ''
    returnType: void
    signature: 'static void TestFields() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: udat_toPattern
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:250,1
    - Dst: udat_toPattern
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:256,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:258,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:259,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:255,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:259,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:261,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:261,1
    - Dst: myFormatit
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:264,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:265,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:266,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:266,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:266,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:268,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - fmt
    - str
    argTypes:
    - UDateFormat*
    - UChar*
    constantsTouched: []
    func_position:
      end: 269
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 269
    functionName: aux917
    functionSourceFile: /src/icu/source/test/cintltst/cdtrgtst.c
    functionUses: []
    functionsReached:
    - malloc
    - udat_toPattern
    - U_FAILURE
    - myFormatit
    - austrdup
    - free
    - myErrorName
    - log_verbose
    - log_err
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'void aux917( UDateFormat *fmt, UChar* str) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:214,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:215,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:228,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:238,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:216,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:217,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:219,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:222,1
    - Dst: aux917
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:236,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:212,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:213,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:216,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:219,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:226,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:230,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:229,1
    - Dst: aux917
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:225,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:232,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:235,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:215,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:232,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:229,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:223,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:237,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 239
    functionName: Test4059917
    functionSourceFile: /src/icu/source/test/cintltst/cdtrgtst.c
    functionUses: []
    functionsReached:
    - udat_open
    - u_uastrcpy
    - malloc
    - U_FAILURE
    - log_data_err
    - austrdup
    - u_strlen
    - myErrorName
    - log_verbose
    - log_err
    - udat_close
    - free
    - aux917
    linkageType: ''
    returnType: void
    signature: 'void Test4059917() '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:150,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:157,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:160,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:164,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:173,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:174,1
    - Dst: udat_get2DigitYearStart
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:175,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:176,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:180,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:191,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:147,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:145,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:146,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:153,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:159,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:164,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:165,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:167,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:168,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:174,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:190,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:147,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:153,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:156,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:167,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:187,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:190,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:191,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:196,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:189,1
    - Dst: myFormatit
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:183,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:195,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:144,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:151,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:152,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:155,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:163,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:158,1
    - Dst: udat_set2DigitYearStart
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:172,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:182,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:182,1
    - Dst: myFormatit
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:184,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 197
    functionName: Test4056591
    functionSourceFile: /src/icu/source/test/cintltst/cdtrgtst.c
    functionUses: []
    functionsReached:
    - ucal_setDateTime
    - myFormatit
    - udat_close
    - ucal_getMillis
    - udat_open
    - U_FAILURE
    - log_data_err
    - u_strlen
    - ucal_close
    - log_verbose
    - u_uastrcpy
    - udat_parse
    - ucal_open
    - log_err
    - udat_get2DigitYearStart
    - udat_set2DigitYearStart
    - austrdup
    - myErrorName
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'void Test4056591() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:61,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:65,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:64,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:67,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:85,1
    - Dst: myFormatit
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:95,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:101,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:107,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:110,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:110,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:98,1
    - Dst: myFormatit
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:104,1
    - Dst: ucal_getNow
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:62,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:67,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:76,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:80,1
    - Dst: myFormatit
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:83,1
    - Dst: udat_applyPattern
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:93,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:87,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:92,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:93,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:85,1
    - Dst: udat_toPattern
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:71,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:80,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:96,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:105,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:114,1
    - Dst: udat_toPattern
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:77,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:91,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:96,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:98,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:99,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:101,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:107,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:109,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:110,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:113,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:105,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:115,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:117,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 119
    functionName: Test4029195
    functionSourceFile: /src/icu/source/test/cintltst/cdtrgtst.c
    functionUses: []
    functionsReached:
    - udat_open
    - malloc
    - u_uastrcpy
    - udat_toPattern
    - udat_parse
    - U_FAILURE
    - ucal_getNow
    - log_data_err
    - myFormatit
    - austrdup
    - u_strlen
    - myErrorName
    - log_verbose
    - udat_applyPattern
    - log_err
    - udat_close
    - free
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'void Test4029195() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:288,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:286,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:290,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:292,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:295,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:296,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:305,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:299,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:306,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:310,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:286,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:284,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:298,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:309,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:314,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:313,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:292,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:304,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:315,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:283,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:290,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:306,1
    - Dst: myFormatit
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:302,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:304,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:308,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:310,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 317
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 317
    functionName: Test4060212
    functionSourceFile: /src/icu/source/test/cintltst/cdtrgtst.c
    functionUses: []
    functionsReached:
    - udat_open
    - u_uastrcpy
    - udat_parse
    - U_FAILURE
    - log_data_err
    - ucal_get
    - myFormatit
    - austrdup
    - u_strlen
    - myErrorName
    - log_verbose
    - ucal_open
    - log_err
    - udat_close
    - ucal_close
    - ucal_setMillis
    linkageType: ''
    returnType: void
    signature: 'void Test4060212() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:331,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:335,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:335,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:334,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:332,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:336,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:337,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:337,1
    - Dst: udat_setLenient
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:343,1
    - Dst: udat_isLenient
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:344,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:348,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:353,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:348,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:355,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:346,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:350,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 357
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 357
    functionName: Test4061287
    functionSourceFile: /src/icu/source/test/cintltst/cdtrgtst.c
    functionUses: []
    functionsReached:
    - udat_open
    - u_uastrcpy
    - udat_setLenient
    - udat_parse
    - U_FAILURE
    - log_data_err
    - u_strlen
    - myErrorName
    - log_verbose
    - log_err
    - udat_close
    - udat_isLenient
    linkageType: ''
    returnType: void
    signature: 'void Test4061287() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:393,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:411,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:408,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:419,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:419,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:421,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:429,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:430,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:430,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:433,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:433,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:402,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:403,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:412,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:406,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:417,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:426,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:430,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:433,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:418,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:413,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:412,1
    - Dst: myFormatit
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:423,1
    - Dst: myFormatit
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:424,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:437,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:417,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:390,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:394,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:391,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:397,1
    - Dst: udat_applyPattern
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:398,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:398,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:402,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:408,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:407,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:406,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 438
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 438
    functionName: Test4073003
    functionSourceFile: /src/icu/source/test/cintltst/cdtrgtst.c
    functionUses: []
    functionsReached:
    - udat_open
    - u_uastrcpy
    - malloc
    - udat_parse
    - U_FAILURE
    - udat_close
    - log_data_err
    - myFormatit
    - austrdup
    - u_strlen
    - myErrorName
    - free
    - udat_applyPattern
    - log_err
    - log_verbose
    - strlen
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'void Test4073003() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:451,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:456,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:455,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:455,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:452,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:457,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:457,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:461,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:461,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:463,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:467,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:464,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:467,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:464,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:464,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 471
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 471
    functionName: Test4162071
    functionSourceFile: /src/icu/source/test/cintltst/cdtrgtst.c
    functionUses: []
    functionsReached:
    - udat_open
    - u_uastrcpy
    - udat_parse
    - U_FAILURE
    - log_data_err
    - austrdup
    - u_strlen
    - myErrorName
    - log_verbose
    - udat_close
    linkageType: ''
    returnType: void
    signature: 'void Test4162071() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ctest_setTimeZone
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:482,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:484,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:487,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:485,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:488,1
    - Dst: myFormatit
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:491,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:493,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:496,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:497,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:498,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:501,1
    - Dst: ctest_resetTimeZone
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:506,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:504,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:498,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:501,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 507
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 507
    functionName: Test714
    functionSourceFile: /src/icu/source/test/cintltst/cdtrgtst.c
    functionUses: []
    functionsReached:
    - udat_open
    - u_uastrcpy
    - ctest_setTimeZone
    - U_FAILURE
    - log_data_err
    - myFormatit
    - austrdup
    - myErrorName
    - log_verbose
    - log_err
    - udat_close
    - u_strcmp
    - ctest_resetTimeZone
    linkageType: ''
    returnType: void
    signature: 'void Test714(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:569,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:581,1
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:579,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:570,1
    - Dst: udat_applyPattern
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:578,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:582,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:582,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:584,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:585,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:585,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:588,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:590,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:596,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:598,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:598,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:589,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:590,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:593,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 600
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 600
    functionName: Test_GEec
    functionSourceFile: /src/icu/source/test/cintltst/cdtrgtst.c
    functionUses: []
    functionsReached:
    - udat_open
    - udat_parse
    - udat_format
    - U_FAILURE
    - log_data_err
    - U_SUCCESS
    - myErrorName
    - udat_applyPattern
    - log_err
    - udat_close
    - u_strcmp
    - u_austrcpy
    linkageType: ''
    returnType: void
    signature: 'void Test_GEec(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:36,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:38,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:40,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:37,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:39,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:41,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:42,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:43,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: addDateForRgrTest
    functionSourceFile: /src/icu/source/test/cintltst/cdtrgtst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addDateForRgrTest(TestNode** root) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:611,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:620,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:622,1
    - Dst: ctst_malloc
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:617,1
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:618,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdtrgtst.c:622,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - datdef
    - d1
    argTypes:
    - UDateFormat*
    - UDate
    constantsTouched: []
    func_position:
      end: 629
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 629
    functionName: myFormatit
    functionSourceFile: /src/icu/source/test/cintltst/cdtrgtst.c
    functionUses: []
    functionsReached:
    - udat_format
    - U_FAILURE
    - myErrorName
    - ctst_malloc
    - log_err
    linkageType: ''
    returnType: UChar*
    signature: 'UChar * myFormatit(UDateFormat* datdef, UDate d1) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:296,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:302,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:305,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:302,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:320,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:333,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:341,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:342,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:349,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:360,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:342,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:364,1
    - Dst: ctest_resetTimeZone
      Src: /src/icu/source/test/cintltst/cmsgtst.c:373,1
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:357,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:291,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:293,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:294,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:315,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:316,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:322,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:335,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:336,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:338,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:339,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:370,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:318,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:363,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:348,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:371,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:358,1
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:301,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:310,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:311,1
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:332,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:317,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:336,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:352,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:352,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:358,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:366,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:347,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:367,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:361,1
    - Dst: ctest_setTimeZone
      Src: /src/icu/source/test/cintltst/cmsgtst.c:286,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:288,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:289,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:292,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:296,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:304,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:305,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:308,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:311,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:307,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:333,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:361,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:366,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:350,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 98
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 374
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 374
    functionName: TestSampleMessageFormat
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - realloc
    - u_uastrcpy
    - malloc
    - u_formatMessage
    - ctest_setTimeZone
    - U_FAILURE
    - log_data_err
    - austrdup
    - u_strlen
    - myErrorName
    - log_verbose
    - log_err
    - free
    - u_strcmp
    - ctest_resetTimeZone
    linkageType: ''
    returnType: void
    signature: 'static void TestSampleMessageFormat(void) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:500,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:502,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/cmsgtst.c:507,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:510,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:517,1
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:523,1
    - Dst: u_parseMessageWithError
      Src: /src/icu/source/test/cintltst/cmsgtst.c:543,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:543,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:548,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:551,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:555,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:535,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:557,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:563,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:546,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:564,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:573,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cmsgtst.c:554,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:503,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:510,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:514,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/cmsgtst.c:508,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:509,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:513,1
    - Dst: u_formatMessageWithError
      Src: /src/icu/source/test/cintltst/cmsgtst.c:518,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:527,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:528,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsgtst.c:542,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cmsgtst.c:560,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:545,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cmsgtst.c:568,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/cmsgtst.c:569,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:499,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:497,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:501,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cmsgtst.c:503,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:504,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:505,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:518,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:524,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:528,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:534,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cmsgtst.c:564,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:571,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:549,1
    - Dst: ctest_resetTimeZone
      Src: /src/icu/source/test/cintltst/cmsgtst.c:575,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:572,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cmsgtst.c:560,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:561,1
    - Dst: ctest_setTimeZone
      Src: /src/icu/source/test/cintltst/cmsgtst.c:495,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:505,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:515,1
    - Dst: u_formatMessageWithError
      Src: /src/icu/source/test/cintltst/cmsgtst.c:524,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:531,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:532,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:534,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:540,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:543,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:546,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cmsgtst.c:564,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:557,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:560,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:564,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 96
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 576
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 576
    functionName: TestSampleFormatAndParseWithError
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - u_formatMessageWithError
    - ucal_setDateTime
    - U_SUCCESS
    - free
    - udat_close
    - ucal_getMillis
    - ctest_resetTimeZone
    - udat_open
    - U_FAILURE
    - log_data_err
    - u_strlen
    - ucal_close
    - log_verbose
    - u_parseMessageWithError
    - myDateFormat
    - realloc
    - u_uastrcpy
    - ctest_setTimeZone
    - ucal_open
    - log_err
    - malloc
    - austrdup
    - myErrorName
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestSampleFormatAndParseWithError(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ctest_setTimeZone
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1006,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1014,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1008,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1014,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1013,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1020,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1027,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1028,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1030,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1030,1
    - Dst: ctest_resetTimeZone
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1033,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1034
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1034
    functionName: TestJ904
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - u_formatMessage
    - ctest_setTimeZone
    - strcmp
    - u_austrncpy
    - log_data_err
    - u_strlen
    - log_verbose
    - u_errorName
    - ctest_resetTimeZone
    linkageType: ''
    returnType: void
    signature: 'static void TestJ904(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1122,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1123,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1122,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1123,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1125,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1125,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1126,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1127,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1127,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1129,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1132
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1132
    functionName: MessageLength
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - u_formatMessage
    - U_FAILURE
    - u_uastrncpy
    - log_err
    - UPRV_LENGTHOF
    - u_strcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void MessageLength(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: umsg_open
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1052,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1084,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1075,1
    - Dst: umsg_toPattern
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1096,1
    - Dst: umsg_close
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1108,1
    - Dst: u_UCharsToChars
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1101,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1054,1
    - Dst: umsg_open
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1062,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1064,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1082,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1089,1
    - Dst: umsg_close
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1109,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1092,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1049,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1049,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1090,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1092,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1097,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1098,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1100,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1102,1
    - Dst: umsg_close
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1107,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1098,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1056,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1056,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1066,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1066,1
    - Dst: umsg_clone
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1072,1
    - Dst: umsg_applyPattern
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1089,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1073,1
    - Dst: umsg_getLocale
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1081,1
    - Dst: umsg_setLocale
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1079,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1075,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1110
      start: 1036
    functionDepth: 0
    functionLinenumber: 1036
    functionLinenumberEnd: 1110
    functionName: OpenMessageFormatTest
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - umsg_open
    - umsg_toPattern
    - umsg_close
    - umsg_clone
    - U_FAILURE
    - umsg_setLocale
    - strcmp
    - log_data_err
    - u_UCharsToChars
    - u_uastrncpy
    - umsg_getLocale
    - umsg_applyPattern
    - log_err
    - UPRV_LENGTHOF
    - u_strcmp
    - u_errorName
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void OpenMessageFormatTest(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1136,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1144,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1143,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1145,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1139,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1145,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1146,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1146,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1146,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1147,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1150
      start: 1134
    functionDepth: 0
    functionLinenumber: 1134
    functionLinenumberEnd: 1150
    functionName: TestMessageWithUnusedArgNumber
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - u_formatMessage
    - U_STRING_DECL
    - U_FAILURE
    - U_STRING_INIT
    - u_strlen
    - log_err
    - UPRV_LENGTHOF
    - u_strcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestMessageWithUnusedArgNumber(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1194,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1198,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1197,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1196,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1195,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1199,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1200,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1201,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1202,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1203,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1208,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1205,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1207,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1206,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 1209
      start: 1192
    functionDepth: 0
    functionLinenumber: 1192
    functionLinenumberEnd: 1209
    functionName: addMsgForTest
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addMsgForTest(TestNode** root) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:118,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:121,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:125,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:126,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:133,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:137,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:140,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:137,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:156,1
    - Dst: u_formatMessageWithError
      Src: /src/icu/source/test/cintltst/cmsgtst.c:158,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:179,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:203,1
    - Dst: umsg_format
      Src: /src/icu/source/test/cintltst/cmsgtst.c:212,1
    - Dst: umsg_open
      Src: /src/icu/source/test/cintltst/cmsgtst.c:187,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:229,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:261,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:265,1
    - Dst: ctest_resetTimeZone
      Src: /src/icu/source/test/cintltst/cmsgtst.c:272,1
    - Dst: umsg_close
      Src: /src/icu/source/test/cintltst/cmsgtst.c:191,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:260,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:219,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:229,1
    - Dst: InitStrings
      Src: /src/icu/source/test/cintltst/cmsgtst.c:122,1
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:132,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:164,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:176,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:177,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:177,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:185,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:206,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:207,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:215,1
    - Dst: umsg_close
      Src: /src/icu/source/test/cintltst/cmsgtst.c:220,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:165,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:249,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:225,1
    - Dst: umsg_parse
      Src: /src/icu/source/test/cintltst/cmsgtst.c:259,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:172,1
    - Dst: umsg_applyPattern
      Src: /src/icu/source/test/cintltst/cmsgtst.c:205,1
    - Dst: FreeStrings
      Src: /src/icu/source/test/cintltst/cmsgtst.c:270,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:136,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:141,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:150,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:168,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:173,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:190,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:233,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:235,1
    - Dst: returnsNullForType
      Src: /src/icu/source/test/cintltst/cmsgtst.c:237,1
    - Dst: umsg_parse
      Src: /src/icu/source/test/cintltst/cmsgtst.c:247,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:249,1
    - Dst: umsg_close
      Src: /src/icu/source/test/cintltst/cmsgtst.c:268,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:217,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:224,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:265,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:261,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:263,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:190,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:255,1
    - Dst: ctest_setTimeZone
      Src: /src/icu/source/test/cintltst/cmsgtst.c:115,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:117,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:120,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:145,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:148,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:145,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:144,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:169,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:189,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:169,1
    - Dst: umsg_format
      Src: /src/icu/source/test/cintltst/cmsgtst.c:216,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:218,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:218,1
    - Dst: umsg_close
      Src: /src/icu/source/test/cintltst/cmsgtst.c:208,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:228,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 150
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 273
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 273
    functionName: MessageFormatTest
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - u_formatMessageWithError
    - umsg_open
    - u_formatMessage
    - free
    - umsg_applyPattern
    - u_errorName
    - ctest_resetTimeZone
    - umsg_close
    - U_FAILURE
    - log_data_err
    - u_strlen
    - log_verbose
    - FreeStrings
    - realloc
    - umsg_parse
    - InitStrings
    - ctest_setTimeZone
    - log_err
    - malloc
    - u_uastrncpy
    - umsg_format
    - austrdup
    - myErrorName
    - returnsNullForType
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void MessageFormatTest( void ) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:399,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:402,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/cmsgtst.c:405,1
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:428,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:433,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:435,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:438,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:439,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:444,1
    - Dst: umsg_parse
      Src: /src/icu/source/test/cintltst/cmsgtst.c:446,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:447,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:456,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cmsgtst.c:461,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:464,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:450,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cmsgtst.c:455,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:465,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:400,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:402,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/cmsgtst.c:406,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:412,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:407,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:413,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:408,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:421,1
    - Dst: umsg_format
      Src: /src/icu/source/test/cintltst/cmsgtst.c:423,1
    - Dst: u_formatMessageWithError
      Src: /src/icu/source/test/cintltst/cmsgtst.c:429,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:461,1
    - Dst: umsg_close
      Src: /src/icu/source/test/cintltst/cmsgtst.c:469,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:458,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cmsgtst.c:465,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cmsgtst.c:470,1
    - Dst: ctest_resetTimeZone
      Src: /src/icu/source/test/cintltst/cmsgtst.c:475,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cmsgtst.c:400,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:398,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:396,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:401,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:408,1
    - Dst: umsg_open
      Src: /src/icu/source/test/cintltst/cmsgtst.c:416,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:417,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:418,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:429,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:448,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/cmsgtst.c:471,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:462,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:438,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:473,1
    - Dst: ctest_setTimeZone
      Src: /src/icu/source/test/cintltst/cmsgtst.c:394,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:416,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:414,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:418,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:432,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:433,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:446,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:451,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:453,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:458,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:436,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cmsgtst.c:461,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cmsgtst.c:465,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:448,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:465,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 92
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 476
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 476
    functionName: TestNewFormatAndParseAPI
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - umsg_open
    - u_formatMessageWithError
    - ucal_setDateTime
    - free
    - udat_close
    - u_errorName
    - ucal_getMillis
    - umsg_close
    - ctest_resetTimeZone
    - udat_open
    - U_FAILURE
    - log_data_err
    - u_strlen
    - ucal_close
    - log_verbose
    - myDateFormat
    - realloc
    - u_uastrcpy
    - umsg_parse
    - ctest_setTimeZone
    - ucal_open
    - log_err
    - malloc
    - umsg_format
    - austrdup
    - myErrorName
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestNewFormatAndParseAPI(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:906,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:909,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:913,1
    - Dst: CallFormatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:914,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:924,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:925,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:925,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:932,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:931,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:932,1
    - Dst: InitStrings
      Src: /src/icu/source/test/cintltst/cmsgtst.c:910,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:927,1
    - Dst: ctest_setTimeZone
      Src: /src/icu/source/test/cintltst/cmsgtst.c:903,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:905,1
    - Dst: CallFormatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:921,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:935,1
    - Dst: FreeStrings
      Src: /src/icu/source/test/cintltst/cmsgtst.c:937,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:908,1
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:920,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:928,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:936,1
    - Dst: ctest_resetTimeZone
      Src: /src/icu/source/test/cintltst/cmsgtst.c:939,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 940
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 940
    functionName: TestMessageFormatWithValist
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - realloc
    - u_uastrcpy
    - malloc
    - InitStrings
    - CallFormatMessage
    - ctest_setTimeZone
    - U_FAILURE
    - log_data_err
    - austrdup
    - u_strlen
    - myErrorName
    - log_verbose
    - log_err
    - free
    - u_strcmp
    - ctest_resetTimeZone
    - FreeStrings
    linkageType: ''
    returnType: void
    signature: 'static void TestMessageFormatWithValist( void ) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:767,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:775,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:782,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:796,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:799,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:800,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:802,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:807,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:808,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:811,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:832,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:829,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:766,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:757,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:758,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:769,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:779,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:780,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:785,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:797,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:812,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:814,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:825,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:835,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:774,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:776,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:779,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:785,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:777,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:784,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:788,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:789,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:797,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:805,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:823,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:756,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:769,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:775,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:791,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:791,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:802,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:803,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:808,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:814,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:820,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:822,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:825,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:831,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:832,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:819,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:820,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:826,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 91
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 837
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 837
    functionName: TestMsgFormatChoice
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - malloc
    - u_formatMessage
    - U_FAILURE
    - log_data_err
    - austrdup
    - u_strlen
    - free
    - log_verbose
    - log_err
    - myErrorName
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestMsgFormatChoice(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/icu/source/test/cintltst/cmsgtst.c:99,1
    - Dst: va_end
      Src: /src/icu/source/test/cintltst/cmsgtst.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - firstParam
    - '...'
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: returnsNullForType
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - va_start
    - va_end
    linkageType: ''
    returnType: UBool
    signature: 'static UBool returnsNullForType(int firstParam, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:84,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: FreeStrings
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void FreeStrings( void ) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/icu/source/test/cintltst/cmsgtst.c:946,1
    - Dst: va_end
      Src: /src/icu/source/test/cintltst/cmsgtst.c:948,1
    - Dst: u_vparseMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:947,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 6
    argNames:
    - locale
    - pattern
    - patternLength
    - source
    - sourceLength
    - status
    - '...'
    argTypes:
    - char*
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 949
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 949
    functionName: CallParseMessage
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - u_vparseMessage
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: 'static void CallParseMessage(const char* locale, UChar* pattern, int32_t
      patternLength, UChar* source, int32_t sourceLength, UErrorCode *status, ...) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: umsg_applyPattern
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1156,1
    - Dst: umsg_format
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1159,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1165,1
    - Dst: umsg_applyPattern
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1174,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1176,1
    - Dst: umsg_parse
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1160,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1171,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1176,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1181,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1186,1
    - Dst: umsg_close
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1161,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1181,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1171,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1186,1
    - Dst: umsg_open
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1155,1
    - Dst: umsg_clone
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1158,1
    - Dst: umsg_toPattern
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1157,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1165,1
    - Dst: umsg_open
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1169,1
    - Dst: umsg_toPattern
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1179,1
    - Dst: umsg_clone
      Src: /src/icu/source/test/cintltst/cmsgtst.c:1184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1188
      start: 1152
    functionDepth: 0
    functionLinenumber: 1152
    functionLinenumberEnd: 1188
    functionName: TestErrorChaining
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - umsg_open
    - umsg_toPattern
    - umsg_parse
    - umsg_close
    - umsg_clone
    - umsg_format
    - umsg_applyPattern
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestErrorChaining(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:64,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:65,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:69,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:66,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:70,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 75
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 75
    functionName: InitStrings
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - strlen
    - malloc
    - u_uastrncpy
    linkageType: ''
    returnType: void
    signature: 'static void InitStrings( void ) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:849,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:853,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:851,1
    - Dst: u_parseMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:855,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:855,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:856,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:857,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:870,1
    - Dst: u_parseMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:872,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:866,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:868,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:852,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:855,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:857,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:859,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:872,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:873,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:874,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:877,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:879,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:862,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:869,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:860,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:872,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:874,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:876,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 880
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 880
    functionName: TestParseMessage
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - U_FAILURE
    - u_parseMessage
    - log_data_err
    - u_strlen
    - myErrorName
    - log_verbose
    - log_err
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestParseMessage(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:694,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:705,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:700,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:704,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:710,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:717,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:719,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:720,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:721,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:731,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:732,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:743,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:740,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:687,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:692,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:709,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:700,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:702,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:704,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:710,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:712,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:716,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:730,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:730,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:734,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:739,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:694,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:713,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:718,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:722,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:724,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:737,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:740,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:742,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:735,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:686,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:690,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:689,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:688,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:691,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:699,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:707,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:701,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:724,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:729,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:734,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 79
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 744
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 744
    functionName: TestMsgFormatSelect
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - malloc
    - u_formatMessage
    - U_FAILURE
    - log_data_err
    - austrdup
    - u_strlen
    - free
    - log_verbose
    - log_err
    - myErrorName
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestMsgFormatSelect(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/icu/source/test/cintltst/cmsgtst.c:887,1
    - Dst: va_end
      Src: /src/icu/source/test/cintltst/cmsgtst.c:889,1
    - Dst: u_vformatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:888,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 6
    argNames:
    - locale
    - testCasePattern
    - patternLength
    - result
    - resultLength
    - status
    - '...'
    argTypes:
    - char*
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 891
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 891
    functionName: CallFormatMessage
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - u_vformatMessage
    - va_start
    - va_end
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t CallFormatMessage(const char* locale, UChar* testCasePattern,
      int32_t patternLength, UChar* result, int32_t resultLength, UErrorCode *status,
      ...) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:601,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:603,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:609,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:616,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:617,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:627,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:630,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:631,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:633,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:639,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cmsgtst.c:658,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cmsgtst.c:662,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/cmsgtst.c:666,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:668,1
    - Dst: ctest_resetTimeZone
      Src: /src/icu/source/test/cintltst/cmsgtst.c:672,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:662,1
    - Dst: u_parseMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:642,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:595,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:597,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:599,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:612,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:613,1
    - Dst: u_formatMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:623,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:623,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:646,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:658,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:659,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:670,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:633,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cmsgtst.c:658,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:661,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:662,1
    - Dst: ctest_setTimeZone
      Src: /src/icu/source/test/cintltst/cmsgtst.c:593,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/cmsgtst.c:606,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:617,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:627,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cmsgtst.c:641,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:642,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:643,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:644,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cmsgtst.c:634,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:647,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:655,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:644,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:642,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:649,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:626,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:598,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:600,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cmsgtst.c:601,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:602,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/cmsgtst.c:607,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:608,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:614,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:609,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:603,1
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/cmsgtst.c:622,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:653,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:655,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cmsgtst.c:662,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cmsgtst.c:669,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cmsgtst.c:665,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cmsgtst.c:652,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 96
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 673
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 673
    functionName: TestSampleFormatAndParse
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - u_formatMessage
    - ucal_setDateTime
    - U_SUCCESS
    - free
    - udat_close
    - ucal_getMillis
    - ctest_resetTimeZone
    - udat_open
    - U_FAILURE
    - log_data_err
    - u_strlen
    - ucal_close
    - log_verbose
    - myDateFormat
    - realloc
    - u_uastrcpy
    - ctest_setTimeZone
    - ucal_open
    - log_err
    - malloc
    - u_parseMessage
    - austrdup
    - myErrorName
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestSampleFormatAndParse(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:961,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:963,1
    - Dst: CallParseMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:967,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:965,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:967,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:968,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:969,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:977,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:981,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:979,1
    - Dst: CallParseMessage
      Src: /src/icu/source/test/cintltst/cmsgtst.c:983,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:964,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:967,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:969,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:971,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:983,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cmsgtst.c:984,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cmsgtst.c:985,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:988,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:990,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cmsgtst.c:972,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cmsgtst.c:983,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:974,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cmsgtst.c:980,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cmsgtst.c:985,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cmsgtst.c:987,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 991
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 991
    functionName: TestParseMessageWithValist
    functionSourceFile: /src/icu/source/test/cintltst/cmsgtst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - U_FAILURE
    - log_data_err
    - u_strlen
    - myErrorName
    - log_verbose
    - log_err
    - u_strcmp
    - CallParseMessage
    linkageType: ''
    returnType: void
    signature: 'static void TestParseMessageWithValist(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utrie_get32
      Src: /src/icu/source/test/cintltst/trietest.c:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - trie
    - start
    - offset
    argTypes:
    - UNewTrie*
    - UChar32
    - int32_t
    constantsTouched: []
    func_position:
      end: 78
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 78
    functionName: _testFoldedValue32
    functionSourceFile: /src/icu/source/test/cintltst/trietest.c
    functionUses: []
    functionsReached:
    - utrie_get32
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t U_CALLCONV _testFoldedValue32(UNewTrie *trie, UChar32
      start, int32_t offset) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - context
    - value
    argTypes:
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: _testEnumValue
    functionSourceFile: /src/icu/source/test/cintltst/trietest.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t U_CALLCONV _testEnumValue(const void *context, uint32_t
      value) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utrie_get32
      Src: /src/icu/source/test/cintltst/trietest.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - trie
    - start
    - offset
    argTypes:
    - UNewTrie*
    - UChar32
    - int32_t
    constantsTouched: []
    func_position:
      end: 109
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 109
    functionName: _testFoldedValue16
    functionSourceFile: /src/icu/source/test/cintltst/trietest.c
    functionUses: []
    functionsReached:
    - utrie_get32
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t U_CALLCONV _testFoldedValue16(UNewTrie *trie, UChar32
      start, int32_t offset) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/trietest.c:160,1
    - Dst: UTRIE_NEXT32
      Src: /src/icu/source/test/cintltst/trietest.c:172,1
    - Dst: U16_IS_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:183,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:177,1
    - Dst: UTRIE_GET32_FROM_PAIR
      Src: /src/icu/source/test/cintltst/trietest.c:219,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:241,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:249,1
    - Dst: UTRIE_NEXT16
      Src: /src/icu/source/test/cintltst/trietest.c:174,1
    - Dst: UTRIE_GET16_FROM_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:193,1
    - Dst: UTRIE_GET16_FROM_OFFSET_TRAIL
      Src: /src/icu/source/test/cintltst/trietest.c:196,1
    - Dst: UTRIE_GET32_FROM_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:201,1
    - Dst: UTRIE_PREVIOUS16
      Src: /src/icu/source/test/cintltst/trietest.c:238,1
    - Dst: U16_IS_TRAIL
      Src: /src/icu/source/test/cintltst/trietest.c:247,1
    - Dst: U16_IS_TRAIL
      Src: /src/icu/source/test/cintltst/trietest.c:183,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:185,1
    - Dst: UTRIE_PREVIOUS32
      Src: /src/icu/source/test/cintltst/trietest.c:236,1
    - Dst: UTRIE_GET32_FROM_OFFSET_TRAIL
      Src: /src/icu/source/test/cintltst/trietest.c:204,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:222,1
    - Dst: UTRIE_GET16_FROM_PAIR
      Src: /src/icu/source/test/cintltst/trietest.c:217,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:210,1
    - Dst: U16_IS_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:247,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 110
    argCount: 4
    argNames:
    - testName
    - trie
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UTrie*
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 253
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 253
    functionName: testTrieIteration
    functionSourceFile: /src/icu/source/test/cintltst/trietest.c
    functionUses: []
    functionsReached:
    - UTRIE_GET16_FROM_PAIR
    - UTRIE_PREVIOUS32
    - U16_IS_LEAD
    - UTRIE_GET32_FROM_PAIR
    - UTRIE_GET16_FROM_LEAD
    - UTRIE_NEXT32
    - UTRIE_PREVIOUS16
    - U16_APPEND_UNSAFE
    - log_err
    - UTRIE_GET16_FROM_OFFSET_TRAIL
    - UTRIE_GET32_FROM_LEAD
    - UTRIE_GET32_FROM_OFFSET_TRAIL
    - U16_IS_TRAIL
    - UTRIE_NEXT16
    linkageType: ''
    returnType: void
    signature: 'static void testTrieIteration(const char *testName, const UTrie *trie,
      const CheckRange checkRanges[], int32_t countCheckRanges) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:525,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trietest.c:525,1
    - Dst: utrie_close
      Src: /src/icu/source/test/cintltst/trietest.c:556,1
    - Dst: utrie_close
      Src: /src/icu/source/test/cintltst/trietest.c:531,1
    - Dst: utrie_unserialize
      Src: /src/icu/source/test/cintltst/trietest.c:559,1
    - Dst: utrie_getData
      Src: /src/icu/source/test/cintltst/trietest.c:540,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:604,1
    - Dst: UTRIE_GET16
      Src: /src/icu/source/test/cintltst/trietest.c:612,1
    - Dst: UTRIE_GET32_FROM_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:632,1
    - Dst: UTRIE_GET16_FROM_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:643,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:483,1
    - Dst: utrie_open
      Src: /src/icu/source/test/cintltst/trietest.c:465,1
    - Dst: utrie_set32
      Src: /src/icu/source/test/cintltst/trietest.c:477,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:548,1
    - Dst: utrie_close
      Src: /src/icu/source/test/cintltst/trietest.c:526,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:530,1
    - Dst: U16_IS_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:597,1
    - Dst: UTRIE_GET32_FROM_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:634,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:642,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:594,1
    - Dst: UTRIE_GET32
      Src: /src/icu/source/test/cintltst/trietest.c:610,1
    - Dst: UTRIE_GET16_LATIN1
      Src: /src/icu/source/test/cintltst/trietest.c:638,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/trietest.c:464,1
    - Dst: utrie_setRange32
      Src: /src/icu/source/test/cintltst/trietest.c:479,1
    - Dst: utrie_get32
      Src: /src/icu/source/test/cintltst/trietest.c:494,1
    - Dst: utrie_get32
      Src: /src/icu/source/test/cintltst/trietest.c:496,1
    - Dst: utrie_serialize
      Src: /src/icu/source/test/cintltst/trietest.c:520,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trietest.c:524,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trietest.c:560,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:571,1
    - Dst: UTRIE_GET32_FROM_BMP
      Src: /src/icu/source/test/cintltst/trietest.c:589,1
    - Dst: UTRIE_GET16_FROM_BMP
      Src: /src/icu/source/test/cintltst/trietest.c:591,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:615,1
    - Dst: UTRIE_GET16_FROM_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:601,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:495,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:560,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:568,1
    - Dst: utrie_enum
      Src: /src/icu/source/test/cintltst/trietest.c:624,1
    - Dst: UTRIE_GET32_LATIN1
      Src: /src/icu/source/test/cintltst/trietest.c:629,1
    - Dst: UTRIE_GET16_FROM_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:641,1
    - Dst: testTrieIteration
      Src: /src/icu/source/test/cintltst/trietest.c:649,1
    - Dst: UTRIE_GET32_FROM_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:599,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:633,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 165
    argCount: 7
    argNames:
    - testName
    - setRanges
    - countSetRanges
    - checkRanges
    - countCheckRanges
    - dataIs32
    - latin1Linear
    argTypes:
    - char*
    - SetRange
    - int32_t
    - CheckRange
    - int32_t
    - UBool
    - UBool
    constantsTouched: []
    func_position:
      end: 650
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 650
    functionName: testTrieRanges
    functionSourceFile: /src/icu/source/test/cintltst/trietest.c
    functionUses: []
    functionsReached:
    - UTRIE_GET32_FROM_BMP
    - utrie_unserialize
    - UTRIE_GET16_LATIN1
    - UTRIE_GET32
    - u_errorName
    - U_FAILURE
    - UTRIE_GET16_FROM_LEAD
    - log_verbose
    - utrie_open
    - utrie_close
    - UTRIE_GET16
    - utrie_get32
    - utrie_setRange32
    - log_err
    - utrie_getData
    - UTRIE_GET32_FROM_LEAD
    - UTRIE_GET32_LATIN1
    - U16_IS_LEAD
    - UTRIE_GET16_FROM_BMP
    - testTrieIteration
    - utrie_enum
    - utrie_serialize
    - utrie_set32
    linkageType: ''
    returnType: void
    signature: 'static void testTrieRanges(const char *testName, const SetRange setRanges[],
      int32_t countSetRanges, const CheckRange checkRanges[], int32_t countCheckRanges,
      UBool dataIs32, UBool latin1Linear) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 820
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 820
    functionName: dummyGetFoldingOffset
    functionSourceFile: /src/icu/source/test/cintltst/trietest.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t U_CALLCONV dummyGetFoldingOffset(uint32_t data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dummyTest
      Src: /src/icu/source/test/cintltst/trietest.c:877,1
    - Dst: dummyTest
      Src: /src/icu/source/test/cintltst/trietest.c:878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: DummyTrieTest
    functionSourceFile: /src/icu/source/test/cintltst/trietest.c
    functionUses: []
    functionsReached:
    - dummyTest
    linkageType: ''
    returnType: void
    signature: 'static void DummyTrieTest(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: _testFoldingOffset16
    functionSourceFile: /src/icu/source/test/cintltst/trietest.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t U_CALLCONV _testFoldingOffset16(uint32_t data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: _testFoldingOffset32
    functionSourceFile: /src/icu/source/test/cintltst/trietest.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t U_CALLCONV _testFoldingOffset32(uint32_t data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:133,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 4
    argNames:
    - context
    - start
    - limit
    - value
    argTypes:
    - void*
    - UChar32
    - UChar32
    - uint32_t
    constantsTouched: []
    func_position:
      end: 138
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 138
    functionName: _testEnumRange
    functionSourceFile: /src/icu/source/test/cintltst/trietest.c
    functionUses: []
    functionsReached:
    - log_err
    linkageType: ''
    returnType: UBool
    signature: 'static UBool U_CALLCONV _testEnumRange(const void *context, UChar32
      start, UChar32 limit, uint32_t value) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: utrie_set32
      Src: /src/icu/source/test/cintltst/trietest.c:286,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:292,1
    - Dst: utrie_close
      Src: /src/icu/source/test/cintltst/trietest.c:324,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:353,1
    - Dst: utrie_getData
      Src: /src/icu/source/test/cintltst/trietest.c:333,1
    - Dst: U16_IS_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:388,1
    - Dst: utrie_enum
      Src: /src/icu/source/test/cintltst/trietest.c:415,1
    - Dst: UTRIE_GET32_FROM_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:425,1
    - Dst: UTRIE_GET16_LATIN1
      Src: /src/icu/source/test/cintltst/trietest.c:429,1
    - Dst: UTRIE_GET16_FROM_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:434,1
    - Dst: testTrieIteration
      Src: /src/icu/source/test/cintltst/trietest.c:440,1
    - Dst: uprv_malloc
      Src: /src/icu/source/test/cintltst/trietest.c:271,1
    - Dst: utrie_setRange32
      Src: /src/icu/source/test/cintltst/trietest.c:288,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trietest.c:323,1
    - Dst: utrie_unserialize
      Src: /src/icu/source/test/cintltst/trietest.c:352,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:323,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:362,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:385,1
    - Dst: UTRIE_GET32_FROM_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:390,1
    - Dst: UTRIE_GET16_FROM_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:392,1
    - Dst: UTRIE_GET32
      Src: /src/icu/source/test/cintltst/trietest.c:401,1
    - Dst: UTRIE_GET32_FROM_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:423,1
    - Dst: utrie_open
      Src: /src/icu/source/test/cintltst/trietest.c:274,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:304,1
    - Dst: utrie_close
      Src: /src/icu/source/test/cintltst/trietest.c:349,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:359,1
    - Dst: UTRIE_GET32_LATIN1
      Src: /src/icu/source/test/cintltst/trietest.c:420,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:424,1
    - Dst: UTRIE_GET16_FROM_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:432,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:433,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/trietest.c:441,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:406,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/trietest.c:273,1
    - Dst: utrie_get32
      Src: /src/icu/source/test/cintltst/trietest.c:303,1
    - Dst: utrie_get32
      Src: /src/icu/source/test/cintltst/trietest.c:305,1
    - Dst: utrie_serialize
      Src: /src/icu/source/test/cintltst/trietest.c:318,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trietest.c:322,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:341,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trietest.c:353,1
    - Dst: UTRIE_GET32_FROM_BMP
      Src: /src/icu/source/test/cintltst/trietest.c:380,1
    - Dst: UTRIE_GET16_FROM_BMP
      Src: /src/icu/source/test/cintltst/trietest.c:382,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:395,1
    - Dst: UTRIE_GET16
      Src: /src/icu/source/test/cintltst/trietest.c:403,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 156
    argCount: 7
    argNames:
    - testName
    - setRanges
    - countSetRanges
    - checkRanges
    - countCheckRanges
    - dataIs32
    - latin1Linear
    argTypes:
    - char*
    - SetRange
    - int32_t
    - CheckRange
    - int32_t
    - UBool
    - UBool
    constantsTouched: []
    func_position:
      end: 442
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 442
    functionName: testTrieRangesWithMalloc
    functionSourceFile: /src/icu/source/test/cintltst/trietest.c
    functionUses: []
    functionsReached:
    - UTRIE_GET32_FROM_BMP
    - uprv_free
    - utrie_unserialize
    - UTRIE_GET16_LATIN1
    - UTRIE_GET32
    - u_errorName
    - uprv_malloc
    - U_FAILURE
    - UTRIE_GET16_FROM_LEAD
    - log_verbose
    - utrie_open
    - utrie_close
    - UTRIE_GET16
    - utrie_get32
    - utrie_setRange32
    - log_err
    - utrie_getData
    - UTRIE_GET32_FROM_LEAD
    - UTRIE_GET32_LATIN1
    - U16_IS_LEAD
    - UTRIE_GET16_FROM_BMP
    - testTrieIteration
    - utrie_enum
    - utrie_serialize
    - utrie_set32
    linkageType: ''
    returnType: void
    signature: 'static void testTrieRangesWithMalloc(const char *testName, const SetRange
      setRanges[], int32_t countSetRanges, const CheckRange checkRanges[], int32_t
      countCheckRanges, UBool dataIs32, UBool latin1Linear) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testTrieRanges
      Src: /src/icu/source/test/cintltst/trietest.c:659,1
    - Dst: testTrieRangesWithMalloc
      Src: /src/icu/source/test/cintltst/trietest.c:663,1
    - Dst: testTrieRanges
      Src: /src/icu/source/test/cintltst/trietest.c:670,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/trietest.c:669,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/trietest.c:668,1
    - Dst: testTrieRangesWithMalloc
      Src: /src/icu/source/test/cintltst/trietest.c:674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - testName
    - setRanges
    - countSetRanges
    - checkRanges
    - countCheckRanges
    - dataIs32
    argTypes:
    - char*
    - SetRange
    - int32_t
    - CheckRange
    - int32_t
    - UBool
    constantsTouched: []
    func_position:
      end: 678
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 678
    functionName: testTrieRanges2
    functionSourceFile: /src/icu/source/test/cintltst/trietest.c
    functionUses: []
    functionsReached:
    - uprv_strcpy
    - testTrieRanges
    - uprv_strcat
    - testTrieRangesWithMalloc
    linkageType: ''
    returnType: void
    signature: 'static void testTrieRanges2(const char *testName, const SetRange setRanges[],
      int32_t countSetRanges, const CheckRange checkRanges[], int32_t countCheckRanges,
      UBool dataIs32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testTrieRanges4
      Src: /src/icu/source/test/cintltst/trietest.c:803,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trietest.c:805,1
    - Dst: testTrieRanges4
      Src: /src/icu/source/test/cintltst/trietest.c:806,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trietest.c:804,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trietest.c:807,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trietest.c:808,1
    - Dst: testTrieRanges4
      Src: /src/icu/source/test/cintltst/trietest.c:809,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trietest.c:810,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trietest.c:811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 812
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 812
    functionName: TrieTest
    functionSourceFile: /src/icu/source/test/cintltst/trietest.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - testTrieRanges4
    linkageType: ''
    returnType: void
    signature: 'static void TrieTest(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: utrie_unserializeDummy
      Src: /src/icu/source/test/cintltst/trietest.c:841,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trietest.c:843,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trietest.c:842,1
    - Dst: UTRIE_GET16
      Src: /src/icu/source/test/cintltst/trietest.c:851,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:843,1
    - Dst: UTRIE_GET32
      Src: /src/icu/source/test/cintltst/trietest.c:853,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:856,1
    - Dst: UTRIE_GET16_FROM_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:864,1
    - Dst: UTRIE_GET32_FROM_LEAD
      Src: /src/icu/source/test/cintltst/trietest.c:866,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trietest.c:869,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 1
    argNames:
    - make16BitTrie
    argTypes:
    - UBool
    constantsTouched: []
    func_position:
      end: 873
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 873
    functionName: dummyTest
    functionSourceFile: /src/icu/source/test/cintltst/trietest.c
    functionUses: []
    functionsReached:
    - utrie_unserializeDummy
    - UTRIE_GET32
    - U_FAILURE
    - UTRIE_GET16
    - UTRIE_GET16_FROM_LEAD
    - log_err
    - UTRIE_GET32_FROM_LEAD
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void dummyTest(UBool make16BitTrie) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/trietest.c:886,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/trietest.c:887,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 888
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 888
    functionName: addTrieTest
    functionSourceFile: /src/icu/source/test/cintltst/trietest.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addTrieTest(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/trietest.c:686,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/trietest.c:687,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/trietest.c:693,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/trietest.c:694,1
    - Dst: testTrieRanges2
      Src: /src/icu/source/test/cintltst/trietest.c:688,1
    - Dst: testTrieRanges2
      Src: /src/icu/source/test/cintltst/trietest.c:695,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - testName
    - setRanges
    - countSetRanges
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - SetRange
    - int32_t
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 699
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 699
    functionName: testTrieRanges4
    functionSourceFile: /src/icu/source/test/cintltst/trietest.c
    functionUses: []
    functionsReached:
    - uprv_strcpy
    - uprv_strcat
    - testTrieRanges2
    linkageType: ''
    returnType: void
    signature: 'static void testTrieRanges4(const char *testName, const SetRange setRanges[],
      int32_t countSetRanges, const CheckRange checkRanges[], int32_t countCheckRanges) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccurrtst.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: addCurrencyCollTest
    functionSourceFile: /src/icu/source/test/cintltst/ccurrtst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addCurrencyCollTest(TestNode** root) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccurrtst.c:119,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccurrtst.c:143,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ccurrtst.c:159,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/ccurrtst.c:113,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccurrtst.c:113,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/ccurrtst.c:124,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/ccurrtst.c:147,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ccurrtst.c:158,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccurrtst.c:149,1
    - Dst: reportCResult
      Src: /src/icu/source/test/cintltst/ccurrtst.c:156,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccurrtst.c:121,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccurrtst.c:139,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccurrtst.c:147,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ccurrtst.c:144,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ccurrtst.c:148,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/ccurrtst.c:163,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccurrtst.c:109,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/ccurrtst.c:110,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccurrtst.c:111,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/ccurrtst.c:123,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/ccurrtst.c:139,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/ccurrtst.c:145,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccurrtst.c:139,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/ccurrtst.c:143,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccurrtst.c:145,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/ccurrtst.c:149,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/ccurrtst.c:151,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 164
    functionName: currTest
    functionSourceFile: /src/icu/source/test/cintltst/ccurrtst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - malloc
    - ucol_open
    - ucol_getSortKey
    - reportCResult
    - U_FAILURE
    - log_err_status
    - u_strcpy
    - u_strlen
    - myErrorName
    - log_verbose
    - free
    - UPRV_LENGTHOF
    - ucol_strcoll
    - uprv_memcmp
    linkageType: ''
    returnType: void
    signature: 'void currTest() '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:805,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:820,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:824,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:836,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:850,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:854,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:827,1
    - Dst: verify1
      Src: /src/icu/source/test/cintltst/ccaltst.c:883,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:896,1
    - Dst: verify1
      Src: /src/icu/source/test/cintltst/ccaltst.c:904,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:857,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:813,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:886,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:889,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:871,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:841,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:862,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:891,1
    - Dst: ucal_clearField
      Src: /src/icu/source/test/cintltst/ccaltst.c:912,1
    - Dst: verify1
      Src: /src/icu/source/test/cintltst/ccaltst.c:858,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:866,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:790,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:793,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:812,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:801,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:810,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:808,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:828,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:835,1
    - Dst: verify1
      Src: /src/icu/source/test/cintltst/ccaltst.c:838,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:903,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:859,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:831,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:799,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:856,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:890,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:898,1
    - Dst: ucal_isSet
      Src: /src/icu/source/test/cintltst/ccaltst.c:908,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:911,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:870,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:795,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:815,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:842,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:846,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:861,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:882,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:916,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:920,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:845,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:867,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:811,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:822,1
    - Dst: verify1
      Src: /src/icu/source/test/cintltst/ccaltst.c:832,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:887,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:812,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:813,1
    - Dst: verify1
      Src: /src/icu/source/test/cintltst/ccaltst.c:864,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:893,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:901,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:909,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:833,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:860,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:795,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:811,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:879,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:855,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:830,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:874,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:837,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:869,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:881,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:884,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:844,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:807,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:814,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:823,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:894,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:793,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:806,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:853,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:825,1
    - Dst: verify1
      Src: /src/icu/source/test/cintltst/ccaltst.c:892,1
    - Dst: ucal_isSet
      Src: /src/icu/source/test/cintltst/ccaltst.c:913,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:834,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:791,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:798,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:801,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:810,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:808,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:814,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:821,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:872,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:829,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:921,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:863,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:794,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:817,1
    - Dst: verify1
      Src: /src/icu/source/test/cintltst/ccaltst.c:826,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:868,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:885,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:914,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:880,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:848,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:876,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:843,1
    - Dst: verify1
      Src: /src/icu/source/test/cintltst/ccaltst.c:888,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 144
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 922
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 922
    functionName: TestFieldGetSet
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - ucal_setDateTime
    - ucal_get
    - udat_close
    - u_errorName
    - ucal_getMillis
    - ucal_set
    - udat_open
    - verify1
    - ucal_isSet
    - U_FAILURE
    - log_data_err
    - u_strcpy
    - u_strlen
    - ucal_close
    - log_verbose
    - ucal_clear
    - ucal_open
    - ucal_clearField
    - log_err
    - ucal_setAttribute
    linkageType: ''
    returnType: void
    signature: 'static void TestFieldGetSet() '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1148,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1161,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:1159,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1178,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1190,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1192,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1206,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:1214,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1210,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:1184,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:1201,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1195,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1147,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:1146,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1148,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1157,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1166,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:1170,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1172,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1168,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1163,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:1181,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:1199,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1207,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1216,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:1200,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:1197,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:1198,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:1182,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:1144,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:1146,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:1158,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1162,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1174,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1187,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:1196,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1205,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:1221,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1152,1
    - Dst: ucal_setDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:1156,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:1169,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1173,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:1180,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:1183,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:1185,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1186,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1187,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:1194,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 124
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1222
    functionName: TestGetLimits
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - U_FAILURE
    - ucal_setDate
    - log_data_err
    - ucal_setDateTime
    - ucal_get
    - ucal_open
    - u_strlen
    - ucal_close
    - log_verbose
    - log_err
    - u_errorName
    - ucal_getLimit
    linkageType: ''
    returnType: void
    signature: 'static void TestGetLimits() '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:1242,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1246,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:1268,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1269,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1269,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:1270,1
    - Dst: ucal_add
      Src: /src/icu/source/test/cintltst/ccaltst.c:1272,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1276,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1245,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1246,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1252,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1258,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1267,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/ccaltst.c:1270,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1275,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1276,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1276,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1279,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:1290,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1281,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:1282,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:1289,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:1244,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:1250,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1251,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1252,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1262,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1273,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:1278,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1279,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1279,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/ccaltst.c:1282,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:1244,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1260,1
    - Dst: ucal_setDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:1256,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1261,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1262,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1269,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1270,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1273,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1273,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1291
    functionName: TestDOWProgression
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - udat_open
    - U_FAILURE
    - ucal_setDate
    - log_data_err
    - ucal_add
    - ucal_get
    - u_strcpy
    - ucal_open
    - u_strlen
    - ucal_close
    - log_verbose
    - log_err
    - udat_close
    - myDateFormat
    - u_errorName
    - u_austrcpy
    - ucal_getMillis
    linkageType: ''
    returnType: void
    signature: 'static void TestDOWProgression() '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:1326,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1327,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1328,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:1332,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1333,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:1337,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1334,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1345,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1353,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1358,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1382,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1360,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1322,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:1325,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:1343,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1344,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1345,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1348,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1357,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1361,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1379,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1371,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1372,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1321,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:1320,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1322,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:1342,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1339,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:1348,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1352,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1369,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1370,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1368,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:1386,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:1387,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:1385,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1372,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:1319,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1328,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1334,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1338,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1339,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/ccaltst.c:1348,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:1351,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1353,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1361,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1367,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 89
    argCount: 6
    argNames:
    - yr
    - mo
    - dt
    - hr
    - mn
    - sc
    argTypes:
    - int32_t
    - int32_t
    - int32_t
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1388
      start: 1308
    functionDepth: 0
    functionLinenumber: 1308
    functionLinenumberEnd: 1388
    functionName: testZones
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - ucal_set
    - u_uastrcpy
    - udat_open
    - U_FAILURE
    - log_data_err
    - ucal_setDateTime
    - ucal_get
    - u_strcpy
    - ucal_open
    - ucal_close
    - log_verbose
    - log_err
    - udat_close
    - myDateFormat
    - u_errorName
    - ucal_setMillis
    - u_austrcpy
    - ucal_getMillis
    linkageType: ''
    returnType: void
    signature: 'static void testZones(int32_t yr, int32_t mo, int32_t dt, int32_t
      hr, int32_t mn, int32_t sc) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:1917,1
    - Dst: ucal_getFieldDifference
      Src: /src/icu/source/test/cintltst/ccaltst.c:1924,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1931,1
    - Dst: ucal_getFieldDifference
      Src: /src/icu/source/test/cintltst/ccaltst.c:1948,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1932,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:1949,1
    - Dst: ucal_getFieldDifference
      Src: /src/icu/source/test/cintltst/ccaltst.c:1952,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:1953,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1955,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1972,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1918,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1919,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1919,1
    - Dst: ucal_getFieldDifference
      Src: /src/icu/source/test/cintltst/ccaltst.c:1927,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:1945,1
    - Dst: ucal_getFieldDifference
      Src: /src/icu/source/test/cintltst/ccaltst.c:1929,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1930,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:1968,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1979,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1973,1
    - Dst: ucal_getFieldDifference
      Src: /src/icu/source/test/cintltst/ccaltst.c:1926,1
    - Dst: ucal_getFieldDifference
      Src: /src/icu/source/test/cintltst/ccaltst.c:1928,1
    - Dst: ucal_getFieldDifference
      Src: /src/icu/source/test/cintltst/ccaltst.c:1946,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:1947,1
    - Dst: ucal_getFieldDifference
      Src: /src/icu/source/test/cintltst/ccaltst.c:1950,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:1951,1
    - Dst: ucal_getFieldDifference
      Src: /src/icu/source/test/cintltst/ccaltst.c:1954,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1963,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1978,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:1923,1
    - Dst: ucal_getFieldDifference
      Src: /src/icu/source/test/cintltst/ccaltst.c:1925,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1939,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1956,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1957,1
    - Dst: ucal_getFieldDifference
      Src: /src/icu/source/test/cintltst/ccaltst.c:1969,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1971,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1975,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:1983,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1913
    functionDepth: 0
    functionLinenumber: 1913
    functionLinenumberEnd: 1986
    functionName: TestFieldDifference
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_data_err
    - ucal_open
    - ucal_getFieldDifference
    - ucal_close
    - log_err
    - u_errorName
    - ucal_setMillis
    linkageType: ''
    returnType: void
    signature: 'void TestFieldDifference() '
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:2123,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2181,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:2200,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:2204,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2260,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2286,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2195,1
    - Dst: ucal_roll
      Src: /src/icu/source/test/cintltst/ccaltst.c:2239,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2136,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2151,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2167,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:2236,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:2194,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2215,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2257,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:2274,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2278,1
    - Dst: ucal_roll
      Src: /src/icu/source/test/cintltst/ccaltst.c:2177,1
    - Dst: ucal_roll
      Src: /src/icu/source/test/cintltst/ccaltst.c:2225,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2139,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2154,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:2223,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2241,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2270,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2180,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2228,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2259,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:2130,1
    - Dst: ucal_add
      Src: /src/icu/source/test/cintltst/ccaltst.c:2132,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:2145,1
    - Dst: ucal_roll
      Src: /src/icu/source/test/cintltst/ccaltst.c:2147,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2163,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2178,1
    - Dst: ucal_add
      Src: /src/icu/source/test/cintltst/ccaltst.c:2211,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:2209,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2226,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:2201,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2195,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2214,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2135,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2150,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2166,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2244,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2248,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:2269,1
    - Dst: ucal_roll
      Src: /src/icu/source/test/cintltst/ccaltst.c:2294,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2213,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2134,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2149,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2165,1
    - Dst: ucal_getType
      Src: /src/icu/source/test/cintltst/ccaltst.c:2193,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2231,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:2183,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:2221,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:2190,1
    - Dst: ucal_getNow
      Src: /src/icu/source/test/cintltst/ccaltst.c:2269,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2280,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2295,1
    - Dst: ucal_getType
      Src: /src/icu/source/test/cintltst/ccaltst.c:2176,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:2203,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2217,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2240,1
    - Dst: ucal_roll
      Src: /src/icu/source/test/cintltst/ccaltst.c:2256,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:2158,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2243,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2282,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2296,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2298,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:2160,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2242,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:2271,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2224,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:2238,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:2222,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:2128,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:2143,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2179,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:2207,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2258,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:2276,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2299,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2184,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2182,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2227,1
    - Dst: ucal_getLimit
      Src: /src/icu/source/test/cintltst/ccaltst.c:2192,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2261,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2263,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2301,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:2308,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:2235,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:2202,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:2124,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:2159,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:2273,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2281,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2290,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2310,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2210,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2131,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2133,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2148,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2146,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2164,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2170,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:2237,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2212,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:2275,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2229,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:2129,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:2144,1
    - Dst: ucal_roll
      Src: /src/icu/source/test/cintltst/ccaltst.c:2162,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:2208,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2252,1
    - Dst: ucal_roll
      Src: /src/icu/source/test/cintltst/ccaltst.c:2277,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2279,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2297,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 236
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2119
    functionDepth: 0
    functionLinenumber: 2119
    functionLinenumberEnd: 2313
    functionName: TestAddRollEra0AndEraBounds
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - ucal_set
    - U_FAILURE
    - ucal_getType
    - ucal_roll
    - ucal_getNow
    - ucal_add
    - ucal_get
    - log_data_err
    - U_SUCCESS
    - ucal_open
    - uprv_strcmp
    - ucal_close
    - log_err
    - ucal_clear
    - u_errorName
    - ucal_setMillis
    - ucal_getLimit
    linkageType: ''
    returnType: void
    signature: 'void TestAddRollEra0AndEraBounds() '
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:546,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:552,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:579,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:582,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:593,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/ccaltst.c:629,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:623,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccaltst.c:648,1
    - Dst: ctest_resetTimeZone
      Src: /src/icu/source/test/cintltst/ccaltst.c:701,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:746,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:760,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:534,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:543,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:562,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/ccaltst.c:567,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:640,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/ccaltst.c:629,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:651,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:657,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:659,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:698,1
    - Dst: verify2
      Src: /src/icu/source/test/cintltst/ccaltst.c:765,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:568,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:560,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:628,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:592,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:636,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:686,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:688,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/ccaltst.c:716,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:723,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:743,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:755,1
    - Dst: verify2
      Src: /src/icu/source/test/cintltst/ccaltst.c:761,1
    - Dst: verify2
      Src: /src/icu/source/test/cintltst/ccaltst.c:767,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:635,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:530,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:566,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/ccaltst.c:567,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:580,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:590,1
    - Dst: ucal_setTimeZone
      Src: /src/icu/source/test/cintltst/ccaltst.c:667,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:671,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:681,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:739,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:672,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:534,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:593,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:634,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:614,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/ccaltst.c:652,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:662,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:691,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:693,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:695,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:747,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:775,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:716,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:545,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:559,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:581,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:629,1
    - Dst: ucal_getTimeZoneID
      Src: /src/icu/source/test/cintltst/ccaltst.c:648,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:650,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:686,1
    - Dst: ucal_setDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:724,1
    - Dst: verify1
      Src: /src/icu/source/test/cintltst/ccaltst.c:727,1
    - Dst: verify1
      Src: /src/icu/source/test/cintltst/ccaltst.c:729,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:750,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:583,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:627,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:541,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:553,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:555,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccaltst.c:624,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:643,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:669,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:674,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:676,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:772,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:642,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:587,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:589,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:591,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/ccaltst.c:652,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:712,1
    - Dst: verify1
      Src: /src/icu/source/test/cintltst/ccaltst.c:725,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:678,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/ccaltst.c:747,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:762,1
    - Dst: ucal_setTimeZone
      Src: /src/icu/source/test/cintltst/ccaltst.c:641,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:652,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:666,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:774,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:764,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:773,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:627,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:533,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:555,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:561,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:611,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:669,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:678,1
    - Dst: ucal_setDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:728,1
    - Dst: ucal_setDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:730,1
    - Dst: verify1
      Src: /src/icu/source/test/cintltst/ccaltst.c:733,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:740,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:756,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:758,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:583,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:608,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:567,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:535,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:562,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:685,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:711,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:742,1
    - Dst: verify2
      Src: /src/icu/source/test/cintltst/ccaltst.c:757,1
    - Dst: ucal_getTimeZoneID
      Src: /src/icu/source/test/cintltst/ccaltst.c:624,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:636,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:535,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:540,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:610,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:646,1
    - Dst: ucal_setDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:726,1
    - Dst: verify1
      Src: /src/icu/source/test/cintltst/ccaltst.c:731,1
    - Dst: verify2
      Src: /src/icu/source/test/cintltst/ccaltst.c:759,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:766,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:533,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:609,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:638,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:650,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:658,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:660,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:689,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:694,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:712,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:715,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:748,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:576,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:611,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:601,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:649,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:654,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:709,1
    - Dst: ucal_setDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:734,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:741,1
    - Dst: verify2
      Src: /src/icu/source/test/cintltst/ccaltst.c:763,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:708,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:717,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:626,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:631,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:531,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:543,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:554,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:544,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:605,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:607,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:665,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:668,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:719,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:743,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:677,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:615,1
    - Dst: ctest_setTimeZone
      Src: /src/icu/source/test/cintltst/ccaltst.c:620,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:547,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:599,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:596,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:643,1
    - Dst: ucal_setTimeZone
      Src: /src/icu/source/test/cintltst/ccaltst.c:684,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:695,1
    - Dst: ucal_setDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:710,1
    - Dst: ucal_setDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:732,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 234
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 776
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 776
    functionName: TestGetSetDateAPI
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - ucal_setDate
    - ucal_setDateTime
    - ucal_get
    - ucal_getTimeZoneID
    - udat_close
    - u_errorName
    - ucal_getMillis
    - ctest_resetTimeZone
    - udat_open
    - verify1
    - U_FAILURE
    - log_data_err
    - u_strcpy
    - u_strlen
    - ucal_close
    - log_verbose
    - myDateFormat
    - UPRV_LENGTHOF
    - ucal_setMillis
    - u_uastrcpy
    - ctest_setTimeZone
    - ucal_open
    - log_err
    - ucal_setAttribute
    - verify2
    - ucal_setTimeZone
    - austrdup
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestGetSetDateAPI() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1300,1
    - Dst: testZones
      Src: /src/icu/source/test/cintltst/ccaltst.c:1301,1
    - Dst: testZones
      Src: /src/icu/source/test/cintltst/ccaltst.c:1302,1
    - Dst: testZones
      Src: /src/icu/source/test/cintltst/ccaltst.c:1303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1298
    functionDepth: 0
    functionLinenumber: 1298
    functionLinenumberEnd: 1304
    functionName: TestGMTvsLocal
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - testZones
    - log_verbose
    linkageType: ''
    returnType: void
    signature: 'static void TestGMTvsLocal() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1506,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1504,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1508,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1509,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:1515,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1516,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1517,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1514,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1523,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1520,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/ccaltst.c:1529,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1507,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1505,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1511,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:1520,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1526,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1503,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1510,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1511,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1517,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/ccaltst.c:1520,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:1524,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1525,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1526,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1529,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/ccaltst.c:1529,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 10
    argNames:
    - msg
    - c
    - dat
    - year
    - month
    - day
    - hour
    - min
    - sec
    - am_pm
    argTypes:
    - char*
    - UCalendar*
    - UDateFormat*
    - int32_t
    - int32_t
    - int32_t
    - int32_t
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1536
      start: 1496
    functionDepth: 0
    functionLinenumber: 1496
    functionLinenumberEnd: 1536
    functionName: verify2
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - ucal_get
    - austrdup
    - log_verbose
    - log_err
    - myDateFormat
    - u_errorName
    - u_austrcpy
    - ucal_getMillis
    linkageType: ''
    returnType: void
    signature: 'static void verify2(const char* msg, UCalendar* c, UDateFormat* dat,
      int32_t year, int32_t month, int32_t day, int32_t hour, int32_t min, int32_t
      sec, int32_t am_pm) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:1994,1
    - Dst: ucal_getAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:2001,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:2011,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:2012,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2015,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2016,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2032,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:2037,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:2038,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2058,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:2064,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:2079,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:2085,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:2050,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1996,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2006,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2019,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2042,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2054,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2055,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:2065,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2068,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:2076,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:2039,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:2062,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1997,1
    - Dst: ucal_getAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:2005,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:2023,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:2026,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2029,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2041,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2042,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:2049,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2045,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:2052,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:2063,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2055,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2071,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2067,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:1995,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2002,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:2010,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:2013,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:2024,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:2025,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2016,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2028,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2029,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:2036,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2068,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:2075,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:2051,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2081,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:2078,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:2077,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 101
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 1988
    functionDepth: 0
    functionLinenumber: 1988
    functionLinenumberEnd: 2086
    functionName: TestAmbiguousWallTime
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - U_FAILURE
    - log_data_err
    - ucal_setDateTime
    - ucal_getAttribute
    - U_SUCCESS
    - ucal_open
    - ucal_close
    - log_err
    - ucal_setAttribute
    - ucal_clear
    - u_errorName
    - ucal_getMillis
    linkageType: ''
    returnType: void
    signature: 'void TestAmbiguousWallTime() '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:2351,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:2362,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2392,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2392,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:2344,1
    - Dst: ucal_setTimeZone
      Src: /src/icu/source/test/cintltst/ccaltst.c:2349,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:2350,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2359,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2366,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2372,1
    - Dst: ucal_getTimeZoneTransitionDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:2371,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:2376,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2386,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:2345,1
    - Dst: ucal_getTimeZoneTransitionDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:2357,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2358,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2360,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2364,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2365,1
    - Dst: ucal_getTimeZoneTransitionDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:2363,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2373,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2380,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2385,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:2353,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2374,1
    - Dst: ucal_getTimeZoneTransitionDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:2377,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2378,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2379,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:2390,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2394
      start: 2342
    functionDepth: 0
    functionLinenumber: 2342
    functionLinenumberEnd: 2394
    functionName: TestGetTZTransition
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - ucal_setTimeZone
    - U_FAILURE
    - log_data_err
    - ucal_getTimeZoneTransitionDate
    - ucal_setDateTime
    - U_SUCCESS
    - ucal_open
    - ucal_close
    - log_err
    - u_errorName
    - ucal_setMillis
    - ucal_getMillis
    linkageType: ''
    returnType: void
    signature: 'void TestGetTZTransition() '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:2456,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:2462,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccaltst.c:2462,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2464,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:2465,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:2471,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccaltst.c:2471,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2473,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:2474,1
    - Dst: ucal_getTimeZoneIDForWindowsID
      Src: /src/icu/source/test/cintltst/ccaltst.c:2480,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2457,1
    - Dst: ucal_getTimeZoneIDForWindowsID
      Src: /src/icu/source/test/cintltst/ccaltst.c:2462,1
    - Dst: ucal_getTimeZoneIDForWindowsID
      Src: /src/icu/source/test/cintltst/ccaltst.c:2471,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2463,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2464,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2472,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2473,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2455,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccaltst.c:2453,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:2456,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:2465,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:2474,1
    - Dst: ucal_getTimeZoneIDForWindowsID
      Src: /src/icu/source/test/cintltst/ccaltst.c:2493,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2481,1
    - Dst: ucal_getTimeZoneIDForWindowsID
      Src: /src/icu/source/test/cintltst/ccaltst.c:2453,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2455,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2454,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2466,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2475,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccaltst.c:2480,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2482,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2484,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccaltst.c:2493,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2482,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2496
      start: 2446
    functionDepth: 0
    functionLinenumber: 2446
    functionLinenumberEnd: 2496
    functionName: TestGetTimeZoneIDByWindowsID
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_data_err
    - u_strlen
    - u_strncmp
    - log_err
    - UPRV_LENGTHOF
    - ucal_getTimeZoneIDForWindowsID
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'void TestGetTimeZoneIDByWindowsID() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1468,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:1474,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1475,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1482,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1488,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/ccaltst.c:1488,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1476,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1473,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1485,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1470,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1467,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:1483,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1484,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/ccaltst.c:1488,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1485,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1466,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1469,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1470,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1476,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 6
    argNames:
    - msg
    - c
    - dat
    - year
    - month
    - day
    argTypes:
    - char*
    - UCalendar*
    - UDateFormat*
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1493
      start: 1462
    functionDepth: 0
    functionLinenumber: 1462
    functionLinenumberEnd: 1493
    functionName: verify1
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - ucal_get
    - austrdup
    - log_verbose
    - log_err
    - myDateFormat
    - u_errorName
    - ucal_getMillis
    linkageType: ''
    returnType: void
    signature: 'static void verify1(const char* msg, UCalendar* c, UDateFormat* dat,
      int32_t year, int32_t month, int32_t day) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1438,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1442,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1439,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1443,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1440,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1444,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1445,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1447,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1448,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1448,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1453,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - c
    - y
    - m
    - d
    argTypes:
    - UCalendar*
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1456
      start: 1435
    functionDepth: 0
    functionLinenumber: 1435
    functionLinenumberEnd: 1456
    functionName: checkDate
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - ucal_get
    - log_verbose
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void checkDate(UCalendar* c, int32_t y, int32_t m, int32_t
      d) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:2422,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:2431,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:2437,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccaltst.c:2437,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2439,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2441,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2423,1
    - Dst: ucal_getWindowsTimeZoneID
      Src: /src/icu/source/test/cintltst/ccaltst.c:2437,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2432,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2438,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2439,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccaltst.c:2419,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2421,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:2419,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:2422,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccaltst.c:2428,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2430,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:2431,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:2428,1
    - Dst: ucal_getWindowsTimeZoneID
      Src: /src/icu/source/test/cintltst/ccaltst.c:2419,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2420,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2421,1
    - Dst: ucal_getWindowsTimeZoneID
      Src: /src/icu/source/test/cintltst/ccaltst.c:2428,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2429,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2430,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2444
      start: 2412
    functionDepth: 0
    functionLinenumber: 2412
    functionLinenumberEnd: 2444
    functionName: TestGetWindowsTimeZoneID
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - ucal_getWindowsTimeZoneID
    - U_FAILURE
    - log_data_err
    - u_strlen
    - u_strncmp
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'void TestGetWindowsTimeZoneID() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccaltst.c:49,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccaltst.c:50,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccaltst.c:52,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccaltst.c:51,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccaltst.c:53,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccaltst.c:54,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccaltst.c:55,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccaltst.c:56,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccaltst.c:57,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccaltst.c:58,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccaltst.c:61,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccaltst.c:63,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccaltst.c:65,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccaltst.c:60,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccaltst.c:62,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccaltst.c:64,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccaltst.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 66
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: addCalTest
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addCalTest(TestNode** root) '
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:188,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:217,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:224,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:310,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:326,1
    - Dst: ucal_equivalentTo
      Src: /src/icu/source/test/cintltst/ccaltst.c:344,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:383,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:396,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:400,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:442,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:363,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:306,1
    - Dst: ucal_getAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:429,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:457,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:482,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:257,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:236,1
    - Dst: ucal_countAvailableTZIDs
      Src: /src/icu/source/test/cintltst/ccaltst.c:127,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:137,1
    - Dst: ucal_openTimeZones
      Src: /src/icu/source/test/cintltst/ccaltst.c:156,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:254,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:291,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:309,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:312,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:316,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ccaltst.c:507,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ccaltst.c:394,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:248,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:253,1
    - Dst: ucal_countAvailable
      Src: /src/icu/source/test/cintltst/ccaltst.c:327,1
    - Dst: ucal_getTimeZoneDisplayName
      Src: /src/icu/source/test/cintltst/ccaltst.c:381,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:388,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:434,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:453,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:467,1
    - Dst: ucal_inDaylightTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:468,1
    - Dst: ucal_getTimeZoneDisplayName
      Src: /src/icu/source/test/cintltst/ccaltst.c:415,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:469,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:410,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:435,1
    - Dst: ucal_setDefaultTimeZone
      Src: /src/icu/source/test/cintltst/ccaltst.c:265,1
    - Dst: ucal_getAvailableTZIDs
      Src: /src/icu/source/test/cintltst/ccaltst.c:139,1
    - Dst: ucal_openTimeZoneIDEnumeration
      Src: /src/icu/source/test/cintltst/ccaltst.c:164,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:181,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:218,1
    - Dst: ucal_getDefaultTimeZone
      Src: /src/icu/source/test/cintltst/ccaltst.c:243,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:225,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:300,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:354,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:384,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:497,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/ccaltst.c:418,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:397,1
    - Dst: ucal_getType
      Src: /src/icu/source/test/cintltst/ccaltst.c:490,1
    - Dst: ucal_getAvailableTZIDs
      Src: /src/icu/source/test/cintltst/ccaltst.c:135,1
    - Dst: ucal_openTimeZoneIDEnumeration
      Src: /src/icu/source/test/cintltst/ccaltst.c:172,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/ccaltst.c:185,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:191,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:207,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:271,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:284,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:322,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:359,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:367,1
    - Dst: ucal_getAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:425,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:432,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:459,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:449,1
    - Dst: ucal_getAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:443,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:423,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:493,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:186,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccaltst.c:233,1
    - Dst: ucal_setDefaultTimeZone
      Src: /src/icu/source/test/cintltst/ccaltst.c:238,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:221,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:234,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:273,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:283,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:298,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:305,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:307,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:357,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:473,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:462,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/ccaltst.c:418,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:342,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:240,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:258,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:136,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:246,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:305,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:315,1
    - Dst: ucal_equivalentTo
      Src: /src/icu/source/test/cintltst/ccaltst.c:345,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/ccaltst.c:400,1
    - Dst: ucal_getAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:436,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:470,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:417,1
    - Dst: ucal_getHostTimeZone
      Src: /src/icu/source/test/cintltst/ccaltst.c:252,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:239,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:130,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:133,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:144,1
    - Dst: ucal_openCountryTimeZones
      Src: /src/icu/source/test/cintltst/ccaltst.c:160,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/ccaltst.c:180,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:302,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:310,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:337,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:478,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:387,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/ccaltst.c:367,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:437,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:491,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:444,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/ccaltst.c:412,1
    - Dst: ucal_getDSTSavings
      Src: /src/icu/source/test/cintltst/ccaltst.c:216,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:219,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:226,1
    - Dst: ucal_getDSTSavings
      Src: /src/icu/source/test/cintltst/ccaltst.c:223,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:228,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:312,1
    - Dst: ucal_equivalentTo
      Src: /src/icu/source/test/cintltst/ccaltst.c:344,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:361,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:384,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/ccaltst.c:406,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:489,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:411,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:358,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ccaltst.c:508,1
    - Dst: ucal_equivalentTo
      Src: /src/icu/source/test/cintltst/ccaltst.c:345,1
    - Dst: ucal_clone
      Src: /src/icu/source/test/cintltst/ccaltst.c:320,1
    - Dst: uenum_reset
      Src: /src/icu/source/test/cintltst/ccaltst.c:190,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:199,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:245,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:286,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:287,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:311,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:331,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:371,1
    - Dst: ucal_getTimeZoneDisplayName
      Src: /src/icu/source/test/cintltst/ccaltst.c:374,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/ccaltst.c:406,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ccaltst.c:380,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:479,1
    - Dst: ucal_getTimeZoneDisplayName
      Src: /src/icu/source/test/cintltst/ccaltst.c:409,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:359,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:406,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:249,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:126,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:139,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:179,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:193,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:235,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:256,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:211,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:272,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:405,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:470,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:416,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccaltst.c:243,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:197,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccaltst.c:282,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:301,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:314,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:330,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:346,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:364,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:395,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:404,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:360,1
    - Dst: ucal_getAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:455,1
    - Dst: ucal_getTimeZoneDisplayName
      Src: /src/icu/source/test/cintltst/ccaltst.c:403,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:466,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:427,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:430,1
    - Dst: ucal_getAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:458,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:501,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:188,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/ccaltst.c:196,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:201,1
    - Dst: ucal_getTZDataVersion
      Src: /src/icu/source/test/cintltst/ccaltst.c:270,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:276,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:300,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:302,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:307,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:321,1
    - Dst: ucal_getAvailable
      Src: /src/icu/source/test/cintltst/ccaltst.c:337,1
    - Dst: ucal_inDaylightTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:472,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:397,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:506,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:128,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:139,1
    - Dst: ucal_openTimeZoneIDEnumeration
      Src: /src/icu/source/test/cintltst/ccaltst.c:176,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:198,1
    - Dst: ucal_getDefaultTimeZone
      Src: /src/icu/source/test/cintltst/ccaltst.c:233,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:258,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:274,1
    - Dst: ucal_getCanonicalTimeZoneID
      Src: /src/icu/source/test/cintltst/ccaltst.c:281,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:284,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:299,1
    - Dst: ucal_getAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:424,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:481,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/ccaltst.c:412,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:322,1
    - Dst: ucal_getNow
      Src: /src/icu/source/test/cintltst/ccaltst.c:355,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:492,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:499,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:475,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:254,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:137,1
    - Dst: ucal_getAvailableTZIDs
      Src: /src/icu/source/test/cintltst/ccaltst.c:142,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:144,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:192,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/ccaltst.c:205,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:244,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/ccaltst.c:272,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:314,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:316,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:362,1
    - Dst: ucal_getAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:429,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:348,1
    - Dst: ucal_getAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:440,1
    - Dst: ucal_getAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:447,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:426,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccaltst.c:252,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:241,1
    - Dst: ucal_openTimeZoneIDEnumeration
      Src: /src/icu/source/test/cintltst/ccaltst.c:168,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:333,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:367,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:412,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:418,1
    - Dst: ucal_getAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:428,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:480,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:488,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 419
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 509
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 509
    functionName: TestCalendar
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - ucal_countAvailableTZIDs
    - log_err_status
    - ucal_setDateTime
    - ucal_getAttribute
    - ucal_getCanonicalTimeZoneID
    - U_SUCCESS
    - free
    - udat_close
    - ucal_getDSTSavings
    - ucal_getAvailableTZIDs
    - u_errorName
    - ucal_setDefaultTimeZone
    - ucal_equivalentTo
    - udat_open
    - ucal_openTimeZones
    - U_FAILURE
    - uprv_strlen
    - ucal_getType
    - log_data_err
    - u_strcpy
    - u_strlen
    - ucal_close
    - log_verbose
    - uprv_strcmp
    - ucal_inDaylightTime
    - UPRV_LENGTHOF
    - ucal_openCountryTimeZones
    - myDateFormat
    - ucal_getAvailable
    - u_austrcpy
    - u_uastrcpy
    - ucal_clone
    - uenum_count
    - ucal_open
    - ucal_countAvailable
    - log_err
    - uenum_close
    - ucal_getTimeZoneDisplayName
    - ucal_setAttribute
    - ucal_getDefaultTimeZone
    - uenum_reset
    - ucal_openTimeZoneIDEnumeration
    - malloc
    - uenum_next
    - ucal_getNow
    - ucal_getHostTimeZone
    - ucal_getTZDataVersion
    - austrdup
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestCalendar() '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:960,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1002,1
    - Dst: checkDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:1017,1
    - Dst: ucal_roll
      Src: /src/icu/source/test/cintltst/ccaltst.c:1003,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1012,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:1035,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1051,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:1058,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:1062,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1076,1
    - Dst: checkDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:979,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:981,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:985,1
    - Dst: ucal_add
      Src: /src/icu/source/test/cintltst/ccaltst.c:992,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1023,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1012,1
    - Dst: ucal_add
      Src: /src/icu/source/test/cintltst/ccaltst.c:1039,1
    - Dst: ucal_add
      Src: /src/icu/source/test/cintltst/ccaltst.c:1041,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1065,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1116,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1019,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:965,1
    - Dst: checkDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:971,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:973,1
    - Dst: ucal_add
      Src: /src/icu/source/test/cintltst/ccaltst.c:980,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1111,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:1114,1
    - Dst: ucal_add
      Src: /src/icu/source/test/cintltst/ccaltst.c:1122,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1125,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:1130,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1118,1
    - Dst: checkDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:1006,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1030,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:996,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:977,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1052,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1124,1
    - Dst: ucal_add
      Src: /src/icu/source/test/cintltst/ccaltst.c:1074,1
    - Dst: ucal_add
      Src: /src/icu/source/test/cintltst/ccaltst.c:976,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:989,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1008,1
    - Dst: checkDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:1040,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:1057,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:1061,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1088,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:973,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1008,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1016,1
    - Dst: checkDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:1014,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1019,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:1050,1
    - Dst: checkDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:1080,1
    - Dst: ucal_roll
      Src: /src/icu/source/test/cintltst/ccaltst.c:1094,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:1109,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:985,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1023,1
    - Dst: ucal_roll
      Src: /src/icu/source/test/cintltst/ccaltst.c:1015,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:964,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:1034,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1096,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:1109,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1125,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:954,1
    - Dst: ucal_add
      Src: /src/icu/source/test/cintltst/ccaltst.c:988,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1004,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1037,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1095,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:1108,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:959,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:970,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:981,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1030,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1048,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:1050,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1052,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:1056,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:1060,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1075,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1012,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:981,1
    - Dst: checkDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:1010,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1071,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1117,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1127,1
    - Dst: checkDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:1100,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1120,1
    - Dst: ucal_roll
      Src: /src/icu/source/test/cintltst/ccaltst.c:1011,1
    - Dst: checkDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:1025,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:996,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:973,1
    - Dst: ucal_setAttribute
      Src: /src/icu/source/test/cintltst/ccaltst.c:967,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1019,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1028,1
    - Dst: checkDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:987,1
    - Dst: ucal_roll
      Src: /src/icu/source/test/cintltst/ccaltst.c:1087,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1105,1
    - Dst: ucal_roll
      Src: /src/icu/source/test/cintltst/ccaltst.c:1022,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:960,1
    - Dst: checkDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:975,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:977,1
    - Dst: ucal_add
      Src: /src/icu/source/test/cintltst/ccaltst.c:984,1
    - Dst: checkDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:1042,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1076,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1123,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:977,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:989,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1016,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:1055,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:1059,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1082,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1111,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1118,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:958,1
    - Dst: checkDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:991,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:994,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1016,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1008,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:1044,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:1103,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1110,1
    - Dst: ucal_roll
      Src: /src/icu/source/test/cintltst/ccaltst.c:1007,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:985,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:958,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:966,1
    - Dst: checkDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:983,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1023,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1004,1
    - Dst: ucal_roll
      Src: /src/icu/source/test/cintltst/ccaltst.c:1026,1
    - Dst: checkDate
      Src: /src/icu/source/test/cintltst/ccaltst.c:1021,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1037,1
    - Dst: ucal_roll
      Src: /src/icu/source/test/cintltst/ccaltst.c:1018,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1004,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:956,1
    - Dst: ucal_add
      Src: /src/icu/source/test/cintltst/ccaltst.c:972,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:989,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1036,1
    - Dst: ucal_add
      Src: /src/icu/source/test/cintltst/ccaltst.c:1070,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1096,1
    - Dst: ucal_add
      Src: /src/icu/source/test/cintltst/ccaltst.c:1115,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 238
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 1132
    functionName: TestAddRollExtensive
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - ucal_set
    - u_uastrcpy
    - U_FAILURE
    - log_data_err
    - ucal_roll
    - ucal_add
    - ucal_setDateTime
    - checkDateTime
    - checkDate
    - ucal_open
    - u_strlen
    - ucal_close
    - log_verbose
    - log_err
    - ucal_setAttribute
    - ucal_get
    - ucal_clear
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestAddRollExtensive() '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:1628,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/ccaltst.c:1628,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/ccaltst.c:1631,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/ccaltst.c:1632,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:1648,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/ccaltst.c:1654,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/ccaltst.c:1678,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1678,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1645,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/ccaltst.c:1659,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1672,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:1675,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:1680,1
    - Dst: ucal_getKeywordValuesForLocale
      Src: /src/icu/source/test/cintltst/ccaltst.c:1615,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/cintltst/ccaltst.c:1615,1
    - Dst: ulist_getListFromEnum
      Src: /src/icu/source/test/cintltst/ccaltst.c:1656,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:1658,1
    - Dst: ulist_containsString
      Src: /src/icu/source/test/cintltst/ccaltst.c:1659,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/cintltst/ccaltst.c:1678,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:1616,1
    - Dst: ucal_getKeywordValuesForLocale
      Src: /src/icu/source/test/cintltst/ccaltst.c:1621,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:1631,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1638,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:1654,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/ccaltst.c:1658,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/ccaltst.c:1652,1
    - Dst: ucal_getKeywordValuesForLocale
      Src: /src/icu/source/test/cintltst/ccaltst.c:1650,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1660,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1666,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1584
    functionDepth: 0
    functionLinenumber: 1584
    functionLinenumberEnd: 1681
    functionName: TestGetKeywordValuesForLocale
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - uenum_next
    - ulist_containsString
    - uprv_strlen
    - ucal_getKeywordValuesForLocale
    - log_err_status
    - U_SUCCESS
    - uenum_count
    - ulist_getListFromEnum
    - uprv_strcmp
    - log_err
    - uenum_close
    - uloc_getDefault
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestGetKeywordValuesForLocale() '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:1779,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1783,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1789,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:1797,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/ccaltst.c:1800,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1813,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:1826,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:1832,1
    - Dst: ucal_getDayOfWeekType
      Src: /src/icu/source/test/cintltst/ccaltst.c:1838,1
    - Dst: ucal_getWeekendTransition
      Src: /src/icu/source/test/cintltst/ccaltst.c:1840,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1783,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:1780,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccaltst.c:1786,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:1788,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/ccaltst.c:1798,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1818,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1843,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1843,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1848,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1853,1
    - Dst: udat_applyPattern
      Src: /src/icu/source/test/cintltst/ccaltst.c:1781,1
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/ccaltst.c:1804,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1813,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:1805,1
    - Dst: ucal_isWeekend
      Src: /src/icu/source/test/cintltst/ccaltst.c:1801,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1812,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:1802,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:1834,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1842,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1846,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1853,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccaltst.c:1790,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/ccaltst.c:1806,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1816,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:1821,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1823,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1823,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:1827,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccaltst.c:1830,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1833,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:1851,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1856
      start: 1773
    functionDepth: 0
    functionLinenumber: 1773
    functionLinenumberEnd: 1856
    functionName: TestWeekend
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - ucal_getDayOfWeekType
    - ucal_setDateTime
    - U_SUCCESS
    - udat_close
    - u_errorName
    - ucal_getMillis
    - ucal_getWeekendTransition
    - udat_open
    - udat_format
    - U_FAILURE
    - log_data_err
    - u_austrncpy
    - ucal_close
    - log_verbose
    - UPRV_LENGTHOF
    - ucal_clear
    - ucal_open
    - udat_applyPattern
    - log_err
    - ucal_isWeekend
    linkageType: ''
    returnType: void
    signature: 'static void TestWeekend() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1549,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1548,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:1547,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1557,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:1565,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1558,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1566,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1567,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1573,1
    - Dst: ucal_getGregorianChange
      Src: /src/icu/source/test/cintltst/ccaltst.c:1556,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1578,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:1581,1
    - Dst: INT64_C
      Src: /src/icu/source/test/cintltst/ccaltst.c:1540,1
    - Dst: ucal_setGregorianChange
      Src: /src/icu/source/test/cintltst/ccaltst.c:1552,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1554,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1558,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:1561,1
    - Dst: ucal_setGregorianChange
      Src: /src/icu/source/test/cintltst/ccaltst.c:1570,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1579,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1549,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1553,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1554,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1567,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1572,1
    - Dst: ucal_getGregorianChange
      Src: /src/icu/source/test/cintltst/ccaltst.c:1576,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1582
    functionName: TestGregorianChange
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - INT64_C
    - ucal_setGregorianChange
    - ucal_getGregorianChange
    - U_FAILURE
    - log_data_err
    - ucal_open
    - ucal_close
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'void TestGregorianChange() '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2504,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2508,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2521,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2519,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2517,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2519,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2529,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2529,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2534,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:2506,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2509,1
    - Dst: ucal_add
      Src: /src/icu/source/test/cintltst/ccaltst.c:2523,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2525,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2525,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/ccaltst.c:2541,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/ccaltst.c:2502,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2507,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:2509,1
    - Dst: ucal_set
      Src: /src/icu/source/test/cintltst/ccaltst.c:2516,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2518,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2528,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2503,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:2504,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/ccaltst.c:2515,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:2524,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:2527,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2543
      start: 2500
    functionDepth: 0
    functionLinenumber: 2500
    functionLinenumberEnd: 2543
    functionName: TestJpnCalAddSetNextEra
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - ucal_set
    - U_FAILURE
    - log_data_err
    - ucal_add
    - ucal_get
    - ucal_open
    - ucal_close
    - log_err
    - ucal_clear
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'void TestJpnCalAddSetNextEra() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1406,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1416,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1418,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1424,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1407,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1410,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1408,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1412,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccaltst.c:1424,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccaltst.c:1430,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1419,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccaltst.c:1423,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1420,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1409,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1411,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccaltst.c:1413,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1415,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1417,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/ccaltst.c:1421,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 9
    argNames:
    - c
    - y
    - m
    - d
    - hr
    - min
    - sec
    - ms
    - field
    argTypes:
    - UCalendar*
    - int32_t
    - int32_t
    - int32_t
    - int32_t
    - int32_t
    - int32_t
    - int32_t
    - UCalendarDateFields
    constantsTouched: []
    func_position:
      end: 1432
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1432
    functionName: checkDateTime
    functionSourceFile: /src/icu/source/test/cintltst/ccaltst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - ucal_get
    - log_verbose
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void checkDateTime(UCalendar* c, int32_t y, int32_t m, int32_t
      d, int32_t hr, int32_t min, int32_t sec, int32_t ms, UCalendarDateFields field) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:132,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:135,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:148,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccapitst.c:155,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:167,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:184,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:185,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:187,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:200,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:201,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ccapitst.c:202,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:222,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ccapitst.c:228,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:216,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:222,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:134,1
    - Dst: ucnv_openAllNames
      Src: /src/icu/source/test/cintltst/ccapitst.c:133,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:135,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/ccapitst.c:143,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:147,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:155,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:148,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:159,1
    - Dst: ucnv_getAvailableName
      Src: /src/icu/source/test/cintltst/ccapitst.c:177,1
    - Dst: ucnv_countAliases
      Src: /src/icu/source/test/cintltst/ccapitst.c:183,1
    - Dst: ucnv_getAlias
      Src: /src/icu/source/test/cintltst/ccapitst.c:199,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccapitst.c:209,1
    - Dst: ucnv_getAliases
      Src: /src/icu/source/test/cintltst/ccapitst.c:214,1
    - Dst: ucnv_getAlias
      Src: /src/icu/source/test/cintltst/ccapitst.c:220,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ccapitst.c:212,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:221,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:216,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/ccapitst.c:142,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/ccapitst.c:152,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:154,1
    - Dst: uenum_reset
      Src: /src/icu/source/test/cintltst/ccapitst.c:151,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/ccapitst.c:170,1
    - Dst: ucnv_getAvailableName
      Src: /src/icu/source/test/cintltst/ccapitst.c:174,1
    - Dst: ucnv_getAlias
      Src: /src/icu/source/test/cintltst/ccapitst.c:191,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:192,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:193,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:201,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:206,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:224,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:194,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:145,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:154,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:162,1
    - Dst: ucnv_countAvailable
      Src: /src/icu/source/test/cintltst/ccapitst.c:169,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:172,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:176,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:179,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:185,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:193,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:195,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:215,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:204,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 109
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 233
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 233
    functionName: ListNames
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_open
    - U_SUCCESS
    - free
    - ucnv_getAliases
    - ucnv_openAllNames
    - u_errorName
    - ucnv_countAvailable
    - log_info
    - U_FAILURE
    - log_data_err
    - log_verbose
    - ucnv_countAliases
    - ucnv_getAvailableName
    - ucnv_getAlias
    - strcmp
    - uenum_count
    - log_err
    - uenum_close
    - uenum_reset
    - malloc
    - uenum_next
    - ucnv_close
    - myErrorName
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void ListNames(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ccapitst.c:1352,1
    - Dst: TSCC_nextSerial
      Src: /src/icu/source/test/cintltst/ccapitst.c:1354,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1358,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TSCCContext*
    constantsTouched: []
    func_position:
      end: 1361
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1361
    functionName: TSCC_clone
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - malloc
    - log_verbose
    - TSCC_nextSerial
    linkageType: ''
    returnType: TSCCContext*
    signature: 'static TSCCContext *TSCC_clone(TSCCContext *ctx) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convertExStreaming
      Src: /src/icu/source/test/cintltst/ccapitst.c:2243,1
    - Dst: convertExStreaming
      Src: /src/icu/source/test/cintltst/ccapitst.c:2247,1
    - Dst: convertExStreaming
      Src: /src/icu/source/test/cintltst/ccapitst.c:2251,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 8
    argNames:
    - srcCnv
    - targetCnv
    - src
    - srcLength
    - expectTarget
    - expectTargetLength
    - testName
    - expectCode
    argTypes:
    - UConverter*
    - UConverter*
    - char*
    - int32_t
    - char*
    - int32_t
    - char*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 2255
      start: 2237
    functionDepth: 0
    functionLinenumber: 2237
    functionLinenumberEnd: 2255
    functionName: convertExMultiStreaming
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - convertExStreaming
    linkageType: ''
    returnType: void
    signature: 'static void convertExMultiStreaming(UConverter *srcCnv, UConverter
      *targetCnv, const char *src, int32_t srcLength, const char *expectTarget, int32_t
      expectTargetLength, const char *testName, UErrorCode expectCode) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2816,1
    - Dst: memcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:2821,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2838,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:2848,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2889,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2896,1
    - Dst: ucnv_fromAlgorithmic
      Src: /src/icu/source/test/cintltst/ccapitst.c:2901,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:2817,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2816,1
    - Dst: memcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:2823,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2839,1
    - Dst: ucnv_toAlgorithmic
      Src: /src/icu/source/test/cintltst/ccapitst.c:2845,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2861,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2871,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2881,1
    - Dst: ucnv_fromAlgorithmic
      Src: /src/icu/source/test/cintltst/ccapitst.c:2887,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2896,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:2836,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2850,1
    - Dst: ucnv_toAlgorithmic
      Src: /src/icu/source/test/cintltst/ccapitst.c:2856,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/ccapitst.c:2843,1
    - Dst: ucnv_fromAlgorithmic
      Src: /src/icu/source/test/cintltst/ccapitst.c:2866,1
    - Dst: ucnv_fromAlgorithmic
      Src: /src/icu/source/test/cintltst/ccapitst.c:2876,1
    - Dst: ucnv_fromAlgorithmic
      Src: /src/icu/source/test/cintltst/ccapitst.c:2894,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2903,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:2905,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:2814,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:2815,1
    - Dst: ucnv_fromAlgorithmic
      Src: /src/icu/source/test/cintltst/ccapitst.c:2833,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2851,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2860,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2870,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2880,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2889,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2903,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2907
      start: 2779
    functionDepth: 0
    functionLinenumber: 2779
    functionLinenumberEnd: 2907
    functionName: TestConvertAlgorithmic
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - memcpy
    - ucnv_close
    - ucnv_toAlgorithmic
    - ucnv_fromAlgorithmic
    - U_FAILURE
    - memset
    - ucnv_open
    - log_data_err
    - log_err
    - memcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestConvertAlgorithmic() '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3103,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3103,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3109,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3116,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:3123,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:3128,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:3128,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3132,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3132,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3138,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:3199,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:3096,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/ccapitst.c:3097,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3108,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:3123,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:3161,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3191,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3110,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3110,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3131,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:3166,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3170,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:3166,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3170,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3176,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:3198,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:3100,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:3101,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3102,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:3128,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:3123,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/ccapitst.c:3114,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3153,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:3161,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3169,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 102
    argCount: 2
    argNames:
    - name
    - swap
    argTypes:
    - char*
    - UBool
    constantsTouched: []
    func_position:
      end: 3200
      start: 3068
    functionDepth: 0
    functionLinenumber: 3068
    functionLinenumberEnd: 3200
    functionName: testSwap
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - ucnv_toUnicode
    - UPRV_LENGTHOF
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - strcpy
    - u_errorName
    - log_err
    - ucnv_getName
    - ucnv_fromUnicode
    - strstr
    - strcat
    linkageType: ''
    returnType: void
    signature: 'static void testSwap(const char *name, UBool swap) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3225
      start: 3222
    functionDepth: 0
    functionLinenumber: 3222
    functionLinenumberEnd: 3225
    functionName: TestEBCDICSwapLFNL
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void TestEBCDICSwapLFNL() '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_fromUChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:3561,1
    - Dst: ucnv_detectUnicodeSignature
      Src: /src/icu/source/test/cintltst/ccapitst.c:3565,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3567,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:3587,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3588,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3589,1
    - Dst: ucnv_setSubstString
      Src: /src/icu/source/test/cintltst/ccapitst.c:3592,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3593,1
    - Dst: ucnv_getSubstChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:3597,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3600,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3563,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:3577,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3599,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:3607,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3608,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3609,1
    - Dst: ucnv_setSubstString
      Src: /src/icu/source/test/cintltst/ccapitst.c:3612,1
    - Dst: ucnv_getSubstChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:3617,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3620,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:3612,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3558,1
    - Dst: ucnv_fromUChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:3576,1
    - Dst: ucnv_detectUnicodeSignature
      Src: /src/icu/source/test/cintltst/ccapitst.c:3580,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3582,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3573,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3594,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:3599,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:3603,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3614,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3619,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3613,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3600,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:3623,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3620,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:3556,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3558,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3557,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:3562,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:3571,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3578,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3572,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3573,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3589,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:3592,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3594,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3609,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3614,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3631
      start: 3542
    functionDepth: 0
    functionLinenumber: 3542
    functionLinenumberEnd: 3631
    functionName: TestSubstString
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_getSubstChars
    - ucnv_setSubstString
    - ucnv_close
    - ucnv_fromUChars
    - U_FAILURE
    - ucnv_detectUnicodeSignature
    - ucnv_open
    - log_data_err
    - log_err
    - UPRV_LENGTHOF
    - uprv_memcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestSubstString() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_getStandardName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1317,1
    - Dst: ucnv_getStandardName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1322,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:1323,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:1318,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1319,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1324,1
    - Dst: ucnv_getStandardName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1327,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1329,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1331
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1331
    functionName: TestDuplicateAlias
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_getStandardName
    - strcmp
    - log_data_err
    linkageType: ''
    returnType: void
    signature: 'static void TestDuplicateAlias(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3500
      start: 3491
    functionDepth: 0
    functionLinenumber: 3491
    functionLinenumberEnd: 3500
    functionName: sign
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int sign(int n) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/ccapitst.c:3255,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:3291,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccapitst.c:3301,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3305,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3315,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3321,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:3313,1
    - Dst: ucnv_openPackage
      Src: /src/icu/source/test/cintltst/ccapitst.c:3243,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:3248,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/ccapitst.c:3290,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3259,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3298,1
    - Dst: ucnv_fromUCountPending
      Src: /src/icu/source/test/cintltst/ccapitst.c:3303,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3304,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3305,1
    - Dst: ucnv_fromUCountPending
      Src: /src/icu/source/test/cintltst/ccapitst.c:3318,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3320,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/ccapitst.c:3243,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3245,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3244,1
    - Dst: ucnv_fromUCountPending
      Src: /src/icu/source/test/cintltst/ccapitst.c:3257,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3258,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3259,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3264,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3294,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:3302,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccapitst.c:3312,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3245,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:3256,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/ccapitst.c:3288,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3293,1
    - Dst: ucnv_fromUCountPending
      Src: /src/icu/source/test/cintltst/ccapitst.c:3292,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3294,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3309,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3315,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3321,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3324,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:3327,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3329
      start: 3228
    functionDepth: 0
    functionLinenumber: 3228
    functionLinenumberEnd: 3329
    functionName: TestFromUCountPending
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - ucnv_fromUCountPending
    - U_FAILURE
    - loadTestData
    - log_data_err
    - ucnv_openPackage
    - u_strlen
    - ucnv_reset
    - log_err
    - ucnv_fromUnicode
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestFromUCountPending() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compareNames
      Src: /src/icu/source/test/cintltst/ccapitst.c:3536,1
    - Dst: compareNames
      Src: /src/icu/source/test/cintltst/ccapitst.c:3538,1
    - Dst: compareNames
      Src: /src/icu/source/test/cintltst/ccapitst.c:3537,1
    - Dst: compareNames
      Src: /src/icu/source/test/cintltst/ccapitst.c:3539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3540
      start: 3529
    functionDepth: 0
    functionLinenumber: 3529
    functionLinenumberEnd: 3540
    functionName: TestCompareNames
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - compareNames
    linkageType: ''
    returnType: void
    signature: 'static void TestCompareNames() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1336
    functionDepth: 0
    functionLinenumber: 1336
    functionLinenumberEnd: 1341
    functionName: TSCC_nextSerial
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t TSCC_nextSerial() '
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:1499,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:1501,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1502,1
    - Dst: TSCC_init
      Src: /src/icu/source/test/cintltst/ccapitst.c:1508,1
    - Dst: ucnv_setFromUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:1514,1
    - Dst: TSCC_print_log
      Src: /src/icu/source/test/cintltst/ccapitst.c:1534,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1551,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1575,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1588,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1598,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1609,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1642,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1638,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ccapitst.c:1646,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ccapitst.c:1649,1
    - Dst: TSCC_print_log
      Src: /src/icu/source/test/cintltst/ccapitst.c:1635,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1631,1
    - Dst: TSCC_init
      Src: /src/icu/source/test/cintltst/ccapitst.c:1509,1
    - Dst: TSCC_print_log
      Src: /src/icu/source/test/cintltst/ccapitst.c:1511,1
    - Dst: TSCC_print_log
      Src: /src/icu/source/test/cintltst/ccapitst.c:1512,1
    - Dst: TSCC_print_log
      Src: /src/icu/source/test/cintltst/ccapitst.c:1516,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1524,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1515,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1527,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1555,1
    - Dst: ucnv_getToUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:1563,1
    - Dst: ucnv_getToUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:1564,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1592,1
    - Dst: TSCC_print_log
      Src: /src/icu/source/test/cintltst/ccapitst.c:1599,1
    - Dst: TSCC_print_log
      Src: /src/icu/source/test/cintltst/ccapitst.c:1601,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1613,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:1523,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1524,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:1518,1
    - Dst: ucnv_safeClone
      Src: /src/icu/source/test/cintltst/ccapitst.c:1522,1
    - Dst: ucnv_getFromUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:1530,1
    - Dst: ucnv_getFromUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:1531,1
    - Dst: TSCC_print_log
      Src: /src/icu/source/test/cintltst/ccapitst.c:1533,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1559,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1570,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1580,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1605,1
    - Dst: TSCC_print_log
      Src: /src/icu/source/test/cintltst/ccapitst.c:1602,1
    - Dst: TSCC_print_log
      Src: /src/icu/source/test/cintltst/ccapitst.c:1600,1
    - Dst: TSCC_print_log
      Src: /src/icu/source/test/cintltst/ccapitst.c:1623,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1506,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1502,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1519,1
    - Dst: TSCC_print_log
      Src: /src/icu/source/test/cintltst/ccapitst.c:1520,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1537,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1542,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1547,1
    - Dst: TSCC_print_log
      Src: /src/icu/source/test/cintltst/ccapitst.c:1566,1
    - Dst: TSCC_print_log
      Src: /src/icu/source/test/cintltst/ccapitst.c:1567,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1584,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1617,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1621,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1627,1
    - Dst: TSCC_print_log
      Src: /src/icu/source/test/cintltst/ccapitst.c:1634,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:1597,1
    - Dst: TSCC_print_log
      Src: /src/icu/source/test/cintltst/ccapitst.c:1624,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:1620,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 105
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1651
    functionName: TestConvertSafeCloneCallback
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_safeClone
    - ucnv_close
    - U_FAILURE
    - ucnv_getToUCallBack
    - ucnv_open
    - log_data_err
    - ucnv_setFromUCallBack
    - TSCC_init
    - ucnv_setToUCallBack
    - log_verbose
    - log_err
    - ucnv_getFromUCallBack
    - free
    - u_errorName
    - TSCC_print_log
    linkageType: ''
    returnType: void
    signature: 'static void TestConvertSafeCloneCallback() '
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:1693,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:1717,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1744,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1758,1
    - Dst: ucnv_safeClone
      Src: /src/icu/source/test/cintltst/ccapitst.c:1761,1
    - Dst: ucnv_safeClone
      Src: /src/icu/source/test/cintltst/ccapitst.c:1751,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1753,1
    - Dst: ucnv_safeClone
      Src: /src/icu/source/test/cintltst/ccapitst.c:1771,1
    - Dst: ucnv_safeClone
      Src: /src/icu/source/test/cintltst/ccapitst.c:1794,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:1807,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1813,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1889,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1813,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:1723,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccapitst.c:1724,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1731,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1737,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:1742,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:1751,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1773,1
    - Dst: ucnv_safeClone
      Src: /src/icu/source/test/cintltst/ccapitst.c:1783,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:1811,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:1812,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:1891,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:1872,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1883,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1889,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:1719,1
    - Dst: ucnv_safeClone
      Src: /src/icu/source/test/cintltst/ccapitst.c:1729,1
    - Dst: ucnv_safeClone
      Src: /src/icu/source/test/cintltst/ccapitst.c:1735,1
    - Dst: ucnv_safeClone
      Src: /src/icu/source/test/cintltst/ccapitst.c:1742,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1763,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:1766,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:1776,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1785,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:1788,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:1799,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1895,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:1861,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1870,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:1869,1
    - Dst: containsAnyOtherByte
      Src: /src/icu/source/test/cintltst/ccapitst.c:1852,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1847,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1853,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:1710,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:1746,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:1761,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1796,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:1808,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/ccapitst.c:1827,1
    - Dst: ucnv_safeClone
      Src: /src/icu/source/test/cintltst/ccapitst.c:1820,1
    - Dst: containsAnyOtherByte
      Src: /src/icu/source/test/cintltst/ccapitst.c:1844,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:1882,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1883,1
    - Dst: containsAnyOtherByte
      Src: /src/icu/source/test/cintltst/ccapitst.c:1845,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1898,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:1833,1
    - Dst: ALIGNOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:1835,1
    - Dst: ucnv_safeClone
      Src: /src/icu/source/test/cintltst/ccapitst.c:1830,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1870,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1838,1
    - Dst: ucnv_getNextUChar
      Src: /src/icu/source/test/cintltst/ccapitst.c:1887,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 165
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1666
    functionDepth: 0
    functionLinenumber: 1666
    functionLinenumberEnd: 1901
    functionName: TestConvertSafeClone
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_safeClone
    - containsAnyOtherByte
    - ALIGNOF
    - ucnv_close
    - ucnv_toUnicode
    - U_FAILURE
    - memset
    - ucnv_open
    - log_data_err
    - ucnv_getNextUChar
    - U_SUCCESS
    - log_verbose
    - log_err
    - ucnv_fromUnicode
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestConvertSafeClone() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:1910,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:1915,1
    - Dst: ucnv_openCCSID
      Src: /src/icu/source/test/cintltst/ccapitst.c:1914,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1916,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1916,1
    - Dst: ucnv_getCCSID
      Src: /src/icu/source/test/cintltst/ccapitst.c:1920,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1921,1
    - Dst: ucnv_getCCSID
      Src: /src/icu/source/test/cintltst/ccapitst.c:1921,1
    - Dst: ucnv_getPlatform
      Src: /src/icu/source/test/cintltst/ccapitst.c:1925,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1926,1
    - Dst: ucnv_getPlatform
      Src: /src/icu/source/test/cintltst/ccapitst.c:1926,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:1929,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1903
    functionDepth: 0
    functionLinenumber: 1903
    functionLinenumberEnd: 1932
    functionName: TestCCSID
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - log_data_err
    - ucnv_openCCSID
    - ucnv_getCCSID
    - ucnv_getPlatform
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestCCSID() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/icu/source/test/cintltst/ccapitst.c:1990,1
    - Dst: ucnv_convert
      Src: /src/icu/source/test/cintltst/ccapitst.c:1994,1
    - Dst: memcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:1991,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2006,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 1967
    functionDepth: 0
    functionLinenumber: 1967
    functionLinenumberEnd: 2010
    functionName: bug1
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - memset
    - memcpy
    - ucnv_convert
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void bug1() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:2559,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ccapitst.c:2565,1
    - Dst: memcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:2561,1
    - Dst: isOneTruncatedUTF8
      Src: /src/icu/source/test/cintltst/ccapitst.c:2566,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:2563,1
    - Dst: memcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:2571,1
    - Dst: ucnv_convertEx
      Src: /src/icu/source/test/cintltst/ccapitst.c:2579,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:2582,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2588,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2588,1
    - Dst: ucnv_getInvalidChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:2594,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:2595,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2596,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 9
    argNames:
    - utf8Cnv
    - cnv
    - converterName
    - charUTF8
    - charUTF8Length
    - char0
    - char0Length
    - char1
    - char1Length
    argTypes:
    - UConverter*
    - UConverter*
    - char*
    - char
    - int32_t
    - char
    - int32_t
    - char
    - int32_t
    constantsTouched: []
    func_position:
      end: 2599
      start: 2529
    functionDepth: 0
    functionLinenumber: 2529
    functionLinenumberEnd: 2599
    functionName: testFromTruncatedUTF8
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - memcpy
    - ucnv_convertEx
    - ucnv_getInvalidChars
    - ucnv_setToUCallBack
    - log_err
    - memcmp
    - UPRV_LENGTHOF
    - u_errorName
    - strlen
    - isOneTruncatedUTF8
    linkageType: ''
    returnType: void
    signature: 'static void testFromTruncatedUTF8(UConverter *utf8Cnv, UConverter
      *cnv, const char *converterName, char charUTF8[4], int32_t charUTF8Length, char
      char0[8], int32_t char0Length, char char1[8], int32_t char1Length) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:3697,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:3699,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3701,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3702,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccapitst.c:3700,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:3702,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3703,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3704,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:3706,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3709
      start: 3687
    functionDepth: 0
    functionLinenumber: 3687
    functionLinenumberEnd: 3709
    functionName: TestGetName
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - strcmp
    - U_SUCCESS
    - log_err
    - ucnv_getName
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestGetName() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:92,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:100,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:108,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:114,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:116,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:118,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:91,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:95,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:99,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:111,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:107,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:121,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:94,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:97,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:106,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:110,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:113,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:103,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:120,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:90,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:93,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:101,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:109,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:105,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:117,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ccapitst.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 122
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 122
    functionName: addTestConvert
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addTestConvert(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bug1
      Src: /src/icu/source/test/cintltst/ccapitst.c:1946,1
    - Dst: bug2
      Src: /src/icu/source/test/cintltst/ccapitst.c:1947,1
    - Dst: bug3
      Src: /src/icu/source/test/cintltst/ccapitst.c:1948,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1949
      start: 1943
    functionDepth: 0
    functionLinenumber: 1943
    functionLinenumberEnd: 1949
    functionName: TestJ932
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - bug3
    - bug1
    - bug2
    linkageType: ''
    returnType: void
    signature: 'static void TestJ932(void) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_resetToUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:2180,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:2213,1
    - Dst: ucnv_convertEx
      Src: /src/icu/source/test/cintltst/ccapitst.c:2194,1
    - Dst: ucnv_resetFromUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:2181,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2201,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2226,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2227,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2227,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2229,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:2231,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2232,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 67
    argCount: 9
    argNames:
    - srcCnv
    - targetCnv
    - src
    - srcLength
    - expectTarget
    - expectTargetLength
    - chunkSize
    - testName
    - expectCode
    argTypes:
    - UConverter*
    - UConverter*
    - char*
    - int32_t
    - char*
    - int32_t
    - int32_t
    - char*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 2235
      start: 2147
    functionDepth: 0
    functionLinenumber: 2147
    functionLinenumberEnd: 2235
    functionName: convertExStreaming
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_resetFromUnicode
    - ucnv_convertEx
    - U_FAILURE
    - ucnv_resetToUnicode
    - log_err
    - memcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void convertExStreaming(UConverter *srcCnv, UConverter *targetCnv,
      const char *src, int32_t srcLength, const char *expectTarget, int32_t expectTargetLength,
      int32_t chunkSize, const char *testName, UErrorCode expectCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:2614,1
    - Dst: memcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:2624,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ccapitst.c:2628,1
    - Dst: memcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:2621,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:2627,1
    - Dst: memcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:2629,1
    - Dst: memcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:2632,1
    - Dst: memcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:2635,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:2640,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/ccapitst.c:2641,1
    - Dst: convertExMultiStreaming
      Src: /src/icu/source/test/cintltst/ccapitst.c:2643,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 9
    argNames:
    - utf8Cnv
    - cnv
    - converterName
    - charUTF8
    - charUTF8Length
    - char0
    - char0Length
    - char1
    - char1Length
    argTypes:
    - UConverter*
    - UConverter*
    - char*
    - char
    - int32_t
    - char
    - int32_t
    - char
    - int32_t
    constantsTouched: []
    func_position:
      end: 2648
      start: 2601
    functionDepth: 0
    functionLinenumber: 2601
    functionLinenumberEnd: 2648
    functionName: testFromBadUTF8
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - memcpy
    - strcpy
    - convertExMultiStreaming
    - ucnv_setToUCallBack
    - UPRV_LENGTHOF
    - strcat
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void testFromBadUTF8(UConverter *utf8Cnv, UConverter *cnv,
      const char *converterName, char charUTF8[4], int32_t charUTF8Length, char char0[8],
      int32_t char0Length, char char1[8], int32_t char1Length) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_setDefaultName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3447,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:3449,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:3448,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3451,1
    - Dst: ucnv_getDefaultName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3448,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:3452,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3453,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3454,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:3457,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3457,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:3458,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3460,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:3461,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - name
    - expected
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3462
      start: 3444
    functionDepth: 0
    functionLinenumber: 3444
    functionLinenumberEnd: 3462
    functionName: TestOneDefaultNameChange
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_getDefaultName
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - strcmp
    - log_verbose
    - log_err
    - ucnv_setDefaultName
    - ucnv_getName
    linkageType: ''
    returnType: void
    signature: 'static void TestOneDefaultNameChange(const char *name, const char
      *expected) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:3644,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3645,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3646,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:3652,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3646,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3654,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3654,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:3659,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3661,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3661,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3675,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3681,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3675,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3668,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:3673,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:3684,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3668,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:3666,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3685
      start: 3633
    functionDepth: 0
    functionLinenumber: 3633
    functionLinenumberEnd: 3685
    functionName: InvalidArguments
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - ucnv_toUnicode
    - U_FAILURE
    - ucnv_open
    - log_err
    - ucnv_fromUnicode
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void InvalidArguments() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:2961,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2968,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:2964,1
    - Dst: ucnv_getMaxCharSize
      Src: /src/icu/source/test/cintltst/ccapitst.c:2967,1
    - Dst: cnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:2963,1
    - Dst: ucnv_getMaxCharSize
      Src: /src/icu/source/test/cintltst/ccapitst.c:2969,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:2971,1
    - Dst: UCNV_GET_MAX_BYTES_FOR_STRING
      Src: /src/icu/source/test/cintltst/ccapitst.c:2975,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2976,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2978
      start: 2910
    functionDepth: 0
    functionLinenumber: 2910
    functionLinenumberEnd: 2978
    functionName: TestLMBCSMaxChar
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - UCNV_GET_MAX_BYTES_FOR_STRING
    - cnv_open
    - ucnv_close
    - U_FAILURE
    - log_err
    - UPRV_LENGTHOF
    - ucnv_getMaxCharSize
    linkageType: ''
    returnType: void
    signature: 'static void TestLMBCSMaxChar(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_openPackage
      Src: /src/icu/source/test/cintltst/ccapitst.c:49,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:51,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/ccapitst.c:49,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - name
    - pErrorCode
    argTypes:
    - char*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: cnv_open
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_openPackage
    - loadTestData
    - ucnv_open
    linkageType: ''
    returnType: UConverter*
    signature: 'static UConverter *cnv_open(const char *name, UErrorCode *pErrorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - MIA
    argTypes:
    - UConverterFromUCallback
    constantsTouched: []
    func_position:
      end: 1059
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1059
    functionName: otherUnicodeAction
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UConverterFromUCallback
    signature: 'static UConverterFromUCallback otherUnicodeAction(UConverterFromUCallback
      MIA) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1380,1
    - Dst: TSCC_clone
      Src: /src/icu/source/test/cintltst/ccapitst.c:1395,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1398,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1394,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1383,1
    - Dst: ucnv_getFromUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:1402,1
    - Dst: ucnv_setFromUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:1403,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:1405,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1411,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 22
    argCount: 7
    argNames:
    - context
    - fromUArgs
    - codeUnits
    - length
    - codePoint
    - reason
    - err
    argTypes:
    - void*
    - UConverterFromUnicodeArgs*
    - UChar*
    - int32_t
    - UChar32
    - UConverterCallbackReason
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 1414
      start: 1364
    functionDepth: 0
    functionLinenumber: 1364
    functionLinenumberEnd: 1414
    functionName: TSCC_fromU
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - ucnv_setFromUCallBack
    - log_verbose
    - log_err
    - TSCC_clone
    - ucnv_getFromUCallBack
    linkageType: ''
    returnType: void
    signature: 'static void TSCC_fromU(const void *context, UConverterFromUnicodeArgs
      *fromUArgs, const UChar* codeUnits, int32_t length, UChar32 codePoint, UConverterCallbackReason
      reason, UErrorCode * err) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - p
    - length
    - b
    argTypes:
    - uint8_t*
    - int32_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1664
      start: 1654
    functionDepth: 0
    functionLinenumber: 1654
    functionLinenumberEnd: 1664
    functionName: containsAnyOtherByte
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool containsAnyOtherByte(uint8_t *p, int32_t length, uint8_t
      b) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_convert
      Src: /src/icu/source/test/cintltst/ccapitst.c:2037,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2063,1
    - Dst: ucnv_convert
      Src: /src/icu/source/test/cintltst/ccapitst.c:2068,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2047,1
    - Dst: ucnv_convert
      Src: /src/icu/source/test/cintltst/ccapitst.c:2053,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2078,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2013
    functionDepth: 0
    functionLinenumber: 2013
    functionLinenumberEnd: 2081
    functionName: bug2
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - log_data_err
    - ucnv_convert
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void bug2() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:2671,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2673,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2673,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:2672,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:2677,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:2679,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:2680,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2681,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2681,1
    - Dst: getTestChar
      Src: /src/icu/source/test/cintltst/ccapitst.c:2684,1
    - Dst: testFromTruncatedUTF8
      Src: /src/icu/source/test/cintltst/ccapitst.c:2687,1
    - Dst: testFromBadUTF8
      Src: /src/icu/source/test/cintltst/ccapitst.c:2688,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:2689,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:2691,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2692
      start: 2651
    functionDepth: 0
    functionLinenumber: 2651
    functionLinenumberEnd: 2692
    functionName: TestConvertExFromUTF8
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - testFromTruncatedUTF8
    - ucnv_open
    - log_data_err
    - getTestChar
    - testFromBadUTF8
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestConvertExFromUTF8() '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:2989,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3002,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3025,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:3016,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:3038,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3040,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:3060,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3062,1
    - Dst: strncpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:3037,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3040,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:3053,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3055,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3062,1
    - Dst: ucnv_openU
      Src: /src/icu/source/test/cintltst/ccapitst.c:2993,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2995,1
    - Dst: ucnv_openU
      Src: /src/icu/source/test/cintltst/ccapitst.c:3007,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3009,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3018,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3032,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:3030,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:3046,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3048,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3055,1
    - Dst: ucnv_openU
      Src: /src/icu/source/test/cintltst/ccapitst.c:3000,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2995,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3002,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3009,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3018,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:3023,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3032,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3025,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3048,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 99
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3065
      start: 2981
    functionDepth: 0
    functionLinenumber: 2981
    functionLinenumberEnd: 3065
    functionName: TestJ1968
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_openU
    - ucnv_open
    - strncpy
    - log_err
    - u_charsToUChars
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestJ1968(void) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:3354,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:3362,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/ccapitst.c:3398,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3417,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3420,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:3426,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3437,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3434,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:3439,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3407,1
    - Dst: ucnv_openPackage
      Src: /src/icu/source/test/cintltst/ccapitst.c:3348,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/ccapitst.c:3361,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:3374,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3400,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:3403,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3407,1
    - Dst: ucnv_toUCountPending
      Src: /src/icu/source/test/cintltst/ccapitst.c:3415,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3416,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3417,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3428,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3434,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3428,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3350,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/ccapitst.c:3348,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3349,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:3353,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3365,1
    - Dst: ucnv_openPackage
      Src: /src/icu/source/test/cintltst/ccapitst.c:3398,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3399,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ccapitst.c:3396,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3400,1
    - Dst: ucnv_toUCountPending
      Src: /src/icu/source/test/cintltst/ccapitst.c:3405,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:3414,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3350,1
    - Dst: ucnv_toUCountPending
      Src: /src/icu/source/test/cintltst/ccapitst.c:3363,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3364,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3365,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3370,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:3404,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3410,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ccapitst.c:3424,1
    - Dst: ucnv_toUCountPending
      Src: /src/icu/source/test/cintltst/ccapitst.c:3431,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3433,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3406,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ccapitst.c:3413,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 86
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3442
      start: 3331
    functionDepth: 0
    functionLinenumber: 3331
    functionLinenumberEnd: 3442
    functionName: TestToUCountPending
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - ucnv_toUnicode
    - U_FAILURE
    - loadTestData
    - log_data_err
    - ucnv_toUCountPending
    - ucnv_openPackage
    - ucnv_setToUCallBack
    - ucnv_reset
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestToUCountPending() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - MIA
    argTypes:
    - UConverterToUCallback
    constantsTouched: []
    func_position:
      end: 1064
      start: 1061
    functionDepth: 0
    functionLinenumber: 1061
    functionLinenumberEnd: 1064
    functionName: otherCharAction
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UConverterToUCallback
    signature: 'static UConverterToUCallback otherCharAction(UConverterToUCallback
      MIA) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1430,1
    - Dst: TSCC_clone
      Src: /src/icu/source/test/cintltst/ccapitst.c:1445,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1444,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1433,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1448,1
    - Dst: ucnv_getToUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:1452,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:1453,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:1455,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1461,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 22
    argCount: 6
    argNames:
    - context
    - toUArgs
    - codeUnits
    - length
    - reason
    - err
    argTypes:
    - void*
    - UConverterToUnicodeArgs*
    - char*
    - int32_t
    - UConverterCallbackReason
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 1464
      start: 1416
    functionDepth: 0
    functionLinenumber: 1416
    functionLinenumberEnd: 1464
    functionName: TSCC_toU
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - ucnv_getToUCallBack
    - ucnv_setToUCallBack
    - log_verbose
    - log_err
    - TSCC_clone
    linkageType: ''
    returnType: void
    signature: 'static void TSCC_toU(const void *context, UConverterToUnicodeArgs
      *toUArgs, const char* codeUnits, int32_t length, UConverterCallbackReason reason,
      UErrorCode * err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:3467,1
    - Dst: TestOneDefaultNameChange
      Src: /src/icu/source/test/cintltst/ccapitst.c:3472,1
    - Dst: ucnv_getDefaultName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3467,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:3469,1
    - Dst: TestOneDefaultNameChange
      Src: /src/icu/source/test/cintltst/ccapitst.c:3474,1
    - Dst: TestOneDefaultNameChange
      Src: /src/icu/source/test/cintltst/ccapitst.c:3475,1
    - Dst: TestOneDefaultNameChange
      Src: /src/icu/source/test/cintltst/ccapitst.c:3476,1
    - Dst: TestOneDefaultNameChange
      Src: /src/icu/source/test/cintltst/ccapitst.c:3479,1
    - Dst: TestOneDefaultNameChange
      Src: /src/icu/source/test/cintltst/ccapitst.c:3480,1
    - Dst: TestOneDefaultNameChange
      Src: /src/icu/source/test/cintltst/ccapitst.c:3482,1
    - Dst: ucnv_setDefaultName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3487
      start: 3464
    functionDepth: 0
    functionLinenumber: 3464
    functionLinenumberEnd: 3487
    functionName: TestDefaultName
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_getDefaultName
    - strcpy
    - log_verbose
    - ucnv_setDefaultName
    - TestOneDefaultNameChange
    linkageType: ''
    returnType: void
    signature: 'static void TestDefaultName(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:3740,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/ccapitst.c:3746,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3745,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3746,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:3742,1
    - Dst: ucnv_fromUChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:3749,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:3751,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:3751,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3752,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:3753,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:3755,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3757
      start: 3711
    functionDepth: 0
    functionLinenumber: 3711
    functionLinenumberEnd: 3757
    functionName: TestUTFBOM
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - ucnv_fromUChars
    - U_FAILURE
    - ucnv_open
    - log_err_status
    - log_err
    - memcmp
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUTFBOM() '
  - BBCount: 81
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:383,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:497,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:658,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:915,1
    - Dst: ucnv_getMaxCharSize
      Src: /src/icu/source/test/cintltst/ccapitst.c:589,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:564,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/ccapitst.c:578,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:998,1
    - Dst: ucnv_flushCache
      Src: /src/icu/source/test/cintltst/ccapitst.c:352,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:663,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:681,1
    - Dst: fclose
      Src: /src/icu/source/test/cintltst/ccapitst.c:851,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:1023,1
    - Dst: ucnv_setSubstChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:617,1
    - Dst: otherUnicodeAction
      Src: /src/icu/source/test/cintltst/ccapitst.c:760,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:733,1
    - Dst: ucnv_getFromUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:727,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:992,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:411,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:364,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:403,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:631,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:837,1
    - Dst: ucnv_getFromUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:736,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:1035,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ccapitst.c:1050,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:370,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:409,1
    - Dst: ucnv_openCCSID
      Src: /src/icu/source/test/cintltst/ccapitst.c:489,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:795,1
    - Dst: ucnv_getDisplayName
      Src: /src/icu/source/test/cintltst/ccapitst.c:699,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:805,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:929,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:455,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/ccapitst.c:569,1
    - Dst: ucnv_getSubstChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:661,1
    - Dst: otherCharAction
      Src: /src/icu/source/test/cintltst/ccapitst.c:777,1
    - Dst: ucnv_openCCSID
      Src: /src/icu/source/test/cintltst/ccapitst.c:479,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:780,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:959,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:502,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/ccapitst.c:537,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:577,1
    - Dst: ucnv_getDisplayName
      Src: /src/icu/source/test/cintltst/ccapitst.c:720,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:592,1
    - Dst: ucnv_getSubstChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:642,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:649,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:742,1
    - Dst: u_strncpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:873,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:783,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:432,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:486,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:476,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:691,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:722,1
    - Dst: ucnv_toUChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:967,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ccapitst.c:1043,1
    - Dst: ucnv_setFromUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:758,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:828,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:773,1
    - Dst: ucnv_convert
      Src: /src/icu/source/test/cintltst/ccapitst.c:429,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/ccapitst.c:562,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:654,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ccapitst.c:1048,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:738,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:499,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:646,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:771,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:789,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:807,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:437,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:443,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:555,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:570,1
    - Dst: ucnv_setSubstChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:659,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:701,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:490,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:462,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:522,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:606,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:1042,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ccapitst.c:1049,1
    - Dst: ucnv_getSubstChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:652,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:918,1
    - Dst: ucnv_setFromUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:730,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ccapitst.c:907,1
    - Dst: ucnv_toUChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:952,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:392,1
    - Dst: ucnv_convert
      Src: /src/icu/source/test/cintltst/ccapitst.c:424,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:969,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ccapitst.c:967,1
    - Dst: ucnv_convert
      Src: /src/icu/source/test/cintltst/ccapitst.c:464,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ccapitst.c:469,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:509,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:819,1
    - Dst: ucnv_fromUChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:936,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:676,1
    - Dst: otherUnicodeAction
      Src: /src/icu/source/test/cintltst/ccapitst.c:744,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ccapitst.c:871,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1026,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1038,1
    - Dst: otherUnicodeAction
      Src: /src/icu/source/test/cintltst/ccapitst.c:730,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:466,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:496,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:432,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:544,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ccapitst.c:698,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ccapitst.c:957,1
    - Dst: ucnv_convert
      Src: /src/icu/source/test/cintltst/ccapitst.c:441,1
    - Dst: ucnv_openU
      Src: /src/icu/source/test/cintltst/ccapitst.c:376,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:716,1
    - Dst: ucnv_openCCSID
      Src: /src/icu/source/test/cintltst/ccapitst.c:490,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:620,1
    - Dst: ucnv_toUChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:896,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:932,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/ccapitst.c:499,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:561,1
    - Dst: ucnv_getSubstChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:622,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:646,1
    - Dst: ucnv_fromUChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:947,1
    - Dst: ucnv_convert
      Src: /src/icu/source/test/cintltst/ccapitst.c:449,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:491,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:670,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:677,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:710,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:832,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:921,1
    - Dst: ucnv_getMinCharSize
      Src: /src/icu/source/test/cintltst/ccapitst.c:595,1
    - Dst: ucnv_setSubstChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:650,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:701,1
    - Dst: ucnv_toUChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:908,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ccapitst.c:341,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:746,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:598,1
    - Dst: strncmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:662,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:770,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:935,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:970,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:682,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:753,1
    - Dst: ucnv_openU
      Src: /src/icu/source/test/cintltst/ccapitst.c:396,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:525,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:555,1
    - Dst: uprv_stricmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:569,1
    - Dst: ucnv_getSubstChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:636,1
    - Dst: ucnv_getFromUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:759,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:782,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:990,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:761,1
    - Dst: ucnv_getPlatform
      Src: /src/icu/source/test/cintltst/ccapitst.c:836,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:938,1
    - Dst: ucnv_openU
      Src: /src/icu/source/test/cintltst/ccapitst.c:363,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:371,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:511,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:614,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:629,1
    - Dst: fclose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1041,1
    - Dst: ucnv_getToUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:767,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:885,1
    - Dst: ucnv_openU
      Src: /src/icu/source/test/cintltst/ccapitst.c:369,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:520,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:567,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:773,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:877,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1011,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:890,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:946,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:382,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:588,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:620,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:685,1
    - Dst: otherUnicodeAction
      Src: /src/icu/source/test/cintltst/ccapitst.c:758,1
    - Dst: ucnv_getToUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:776,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1017,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:778,1
    - Dst: strrchr
      Src: /src/icu/source/test/cintltst/ccapitst.c:530,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:832,1
    - Dst: otherCharAction
      Src: /src/icu/source/test/cintltst/ccapitst.c:798,1
    - Dst: ucnv_getDisplayName
      Src: /src/icu/source/test/cintltst/ccapitst.c:695,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:710,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:625,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:491,1
    - Dst: ucnv_convert
      Src: /src/icu/source/test/cintltst/ccapitst.c:456,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:420,1
    - Dst: ucnv_openU
      Src: /src/icu/source/test/cintltst/ccapitst.c:384,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:444,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:378,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:408,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:625,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:648,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:954,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:978,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:746,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:826,1
    - Dst: ucnv_getFromUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:749,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:365,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:524,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:590,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:744,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:980,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:682,1
    - Dst: ucnv_fromUChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:942,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:480,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ccapitst.c:343,1
    - Dst: strncmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:653,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:487,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:814,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ccapitst.c:1044,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1011,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:824,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/ccapitst.c:721,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:995,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1031,1
    - Dst: ucnv_setToUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:796,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:916,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ccapitst.c:342,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:634,1
    - Dst: ucnv_getCCSID
      Src: /src/icu/source/test/cintltst/ccapitst.c:806,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ccapitst.c:1051,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:941,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:916,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:572,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:850,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:1001,1
    - Dst: ucnv_getCCSID
      Src: /src/icu/source/test/cintltst/ccapitst.c:818,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1024,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/ccapitst.c:684,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:757,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:643,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:678,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:785,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ccapitst.c:900,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:386,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:431,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/ccapitst.c:522,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ccapitst.c:532,1
    - Dst: otherUnicodeAction
      Src: /src/icu/source/test/cintltst/ccapitst.c:737,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:365,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:373,1
    - Dst: ucnv_getNextUChar
      Src: /src/icu/source/test/cintltst/ccapitst.c:680,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:704,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1036,1
    - Dst: otherCharAction
      Src: /src/icu/source/test/cintltst/ccapitst.c:770,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:809,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:949,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:371,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:563,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:594,1
    - Dst: ucnv_toUChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:962,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ccapitst.c:952,1
    - Dst: otherCharAction
      Src: /src/icu/source/test/cintltst/ccapitst.c:784,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:920,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/ccapitst.c:501,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:700,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:729,1
    - Dst: fread
      Src: /src/icu/source/test/cintltst/ccapitst.c:845,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:638,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:656,1
    - Dst: ucnv_reset
      Src: /src/icu/source/test/cintltst/ccapitst.c:671,1
    - Dst: otherCharAction
      Src: /src/icu/source/test/cintltst/ccapitst.c:796,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:451,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:465,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ccapitst.c:344,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:380,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:458,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:485,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:553,1
    - Dst: ucnv_getSubstChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:604,1
    - Dst: fread
      Src: /src/icu/source/test/cintltst/ccapitst.c:857,1
    - Dst: u_strncpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:878,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:638,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:799,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:887,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:893,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:491,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:505,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:596,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:883,1
    - Dst: u_strncpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:1020,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:367,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:580,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:731,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:751,1
    - Dst: feof
      Src: /src/icu/source/test/cintltst/ccapitst.c:857,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:409,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:612,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:678,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:785,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:740,1
    - Dst: ucnv_fromUChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:884,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:508,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:525,1
    - Dst: fopen
      Src: /src/icu/source/test/cintltst/ccapitst.c:541,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:552,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/ccapitst.c:567,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:791,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:925,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:503,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:618,1
    - Dst: strncmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:628,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:809,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:872,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:477,1
    - Dst: ucnv_getToUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:797,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:830,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:488,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:407,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:623,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ccapitst.c:706,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:887,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:944,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:474,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:733,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:769,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:992,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1014,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/ccapitst.c:505,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/ccapitst.c:539,1
    - Dst: ucnv_getDisplayName
      Src: /src/icu/source/test/cintltst/ccapitst.c:714,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:964,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ccapitst.c:876,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:442,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/ccapitst.c:1045,1
    - Dst: ucnv_getToUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:787,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:812,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:784,1
    - Dst: ucnv_toUChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:957,1
    - Dst: ucnv_openU
      Src: /src/icu/source/test/cintltst/ccapitst.c:390,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:602,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:1009,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ccapitst.c:912,1
    - Dst: ucnv_fromUChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:930,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:398,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/ccapitst.c:428,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/ccapitst.c:495,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:510,1
    - Dst: ucnv_setSubstChars
      Src: /src/icu/source/test/cintltst/ccapitst.c:644,1
    - Dst: ucnv_setFromUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:743,1
    - Dst: ucnv_getPlatform
      Src: /src/icu/source/test/cintltst/ccapitst.c:825,1
    - Dst: fclose
      Src: /src/icu/source/test/cintltst/ccapitst.c:556,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:616,1
    CyclomaticComplexity: 148
    EdgeCount: 148
    ICount: 690
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 1053
    functionName: TestConvert
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_getSubstChars
    - fclose
    - ucnv_getToUCallBack
    - ucnv_open
    - ucnv_getMinCharSize
    - ucnv_setFromUCallBack
    - u_strncpy
    - U_SUCCESS
    - free
    - otherCharAction
    - ucnv_fromUnicode
    - u_errorName
    - ucnv_setSubstChars
    - fopen
    - ucnv_openU
    - U_FAILURE
    - log_data_err
    - strcpy
    - loadTestData
    - uprv_stricmp
    - ucnv_getNextUChar
    - ucnv_getCCSID
    - ucnv_getPlatform
    - log_verbose
    - fread
    - UPRV_LENGTHOF
    - strcat
    - ucnv_convert
    - ucnv_getDisplayName
    - u_uastrcpy
    - ucnv_flushCache
    - ucnv_toUnicode
    - ucnv_fromUChars
    - feof
    - ucnv_toUChars
    - strrchr
    - ucnv_openCCSID
    - strncmp
    - log_err
    - ucnv_reset
    - ucnv_getFromUCallBack
    - ucnv_getMaxCharSize
    - malloc
    - ucnv_close
    - otherUnicodeAction
    - myErrorName
    - ucnv_setToUCallBack
    - ucnv_getName
    - strlen
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestConvert() '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_countAliases
      Src: /src/icu/source/test/cintltst/ccapitst.c:1182,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1199,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/ccapitst.c:1200,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1194,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:1240,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1275,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1301,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:1304,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:1157,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1178,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:1173,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1187,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:1192,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:1193,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1220,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1224,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1233,1
    - Dst: ucnv_getAlias
      Src: /src/icu/source/test/cintltst/ccapitst.c:1269,1
    - Dst: ucnv_getAlias
      Src: /src/icu/source/test/cintltst/ccapitst.c:1299,1
    - Dst: ucnv_getAlias
      Src: /src/icu/source/test/cintltst/ccapitst.c:1282,1
    - Dst: ucnv_countAvailable
      Src: /src/icu/source/test/cintltst/ccapitst.c:1177,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:1161,1
    - Dst: ucnv_getAvailableName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1180,1
    - Dst: ucnv_getAlias
      Src: /src/icu/source/test/cintltst/ccapitst.c:1209,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:1206,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:1199,1
    - Dst: ucnv_getAlias
      Src: /src/icu/source/test/cintltst/ccapitst.c:1218,1
    - Dst: ucnv_getAlias
      Src: /src/icu/source/test/cintltst/ccapitst.c:1230,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:1247,1
    - Dst: ucnv_getAlias
      Src: /src/icu/source/test/cintltst/ccapitst.c:1247,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1288,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1271,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/ccapitst.c:1200,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1201,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1203,1
    - Dst: ucnv_countAliases
      Src: /src/icu/source/test/cintltst/ccapitst.c:1246,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1256,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:1274,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1284,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1305,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:1287,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 105
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1148
    functionDepth: 0
    functionLinenumber: 1148
    functionLinenumberEnd: 1310
    functionName: TestAlias
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_countAvailable
    - ucnv_getAvailableName
    - ucnv_getAlias
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - strcmp
    - log_verbose
    - ucnv_countAliases
    - log_err
    - ucnv_getName
    - UPRV_LENGTHOF
    - strstr
    linkageType: ''
    returnType: void
    signature: 'static void TestAlias() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TSCC_nextSerial
      Src: /src/icu/source/test/cintltst/ccapitst.c:1469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - q
    argTypes:
    - TSCCContext*
    constantsTouched: []
    func_position:
      end: 1471
      start: 1466
    functionDepth: 0
    functionLinenumber: 1466
    functionLinenumberEnd: 1471
    functionName: TSCC_init
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - TSCC_nextSerial
    linkageType: ''
    returnType: void
    signature: 'static void TSCC_init(TSCCContext *q) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/icu/source/test/cintltst/ccapitst.c:2099,1
    - Dst: ucnv_convert
      Src: /src/icu/source/test/cintltst/ccapitst.c:2102,1
    - Dst: ucnv_convert
      Src: /src/icu/source/test/cintltst/ccapitst.c:2128,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2117,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/ccapitst.c:2124,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2087
    functionDepth: 0
    functionLinenumber: 2087
    functionLinenumberEnd: 2145
    functionName: bug3
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - memset
    - log_data_err
    - ucnv_convert
    linkageType: ''
    returnType: void
    signature: 'static void bug3() '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: convertExMultiStreaming
      Src: /src/icu/source/test/cintltst/ccapitst.c:2305,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/ccapitst.c:2335,1
    - Dst: ucnv_convertEx
      Src: /src/icu/source/test/cintltst/ccapitst.c:2353,1
    - Dst: ucnv_convertEx
      Src: /src/icu/source/test/cintltst/ccapitst.c:2371,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2374,1
    - Dst: ucnv_convertEx
      Src: /src/icu/source/test/cintltst/ccapitst.c:2381,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2384,1
    - Dst: ucnv_convertEx
      Src: /src/icu/source/test/cintltst/ccapitst.c:2391,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:2398,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:2327,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2289,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2295,1
    - Dst: convertExMultiStreaming
      Src: /src/icu/source/test/cintltst/ccapitst.c:2301,1
    - Dst: memcpy
      Src: /src/icu/source/test/cintltst/ccapitst.c:2318,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2329,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2356,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2365,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2394,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:2397,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2356,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:2287,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:2288,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2289,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:2293,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:2294,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2295,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:2296,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2330,1
    - Dst: convertExMultiStreaming
      Src: /src/icu/source/test/cintltst/ccapitst.c:2310,1
    - Dst: ucnv_convertEx
      Src: /src/icu/source/test/cintltst/ccapitst.c:2322,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:2343,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2365,1
    - Dst: ucnv_convertEx
      Src: /src/icu/source/test/cintltst/ccapitst.c:2338,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2345,1
    - Dst: ucnv_convertEx
      Src: /src/icu/source/test/cintltst/ccapitst.c:2362,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2374,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2384,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2394,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2346,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 107
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2400
      start: 2257
    functionDepth: 0
    functionLinenumber: 2257
    functionLinenumberEnd: 2400
    functionName: TestConvertEx
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - memcpy
    - ucnv_close
    - U_FAILURE
    - ucnv_convertEx
    - ucnv_open
    - log_data_err
    - memset
    - convertExMultiStreaming
    - log_err
    - memcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestConvertEx() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:2476,1
    - Dst: uset_charAt
      Src: /src/icu/source/test/cintltst/ccapitst.c:2478,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:2479,1
    - Dst: ucnv_getUnicodeSet
      Src: /src/icu/source/test/cintltst/ccapitst.c:2477,1
    - Dst: uset_size
      Src: /src/icu/source/test/cintltst/ccapitst.c:2478,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/ccapitst.c:2482,1
    - Dst: U8_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/ccapitst.c:2484,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:2488,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/ccapitst.c:2496,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:2502,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2503,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2503,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 8
    argNames:
    - cnv
    - converterName
    - charUTF8
    - pCharUTF8Length
    - char0
    - pChar0Length
    - char1
    - pChar1Length
    argTypes:
    - UConverter*
    - char*
    - char
    - int32_t*
    - char
    - int32_t*
    - char
    - int32_t*
    constantsTouched: []
    func_position:
      end: 2507
      start: 2461
    functionDepth: 0
    functionLinenumber: 2461
    functionLinenumberEnd: 2507
    functionName: getTestChar
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_getUnicodeSet
    - uset_size
    - U_FAILURE
    - U8_APPEND_UNSAFE
    - u_errorName
    - U16_APPEND_UNSAFE
    - uset_open
    - log_err
    - uset_charAt
    - ucnv_fromUnicode
    - uset_close
    linkageType: ''
    returnType: UBool
    signature: 'static UBool getTestChar(UConverter *cnv, const char *converterName,
      char charUTF8[4], int32_t *pCharUTF8Length, char char0[ARG_CHAR_ARR_SIZE], int32_t
      *pChar0Length, char char1[ARG_CHAR_ARR_SIZE], int32_t *pChar1Length) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:2730,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:2736,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2732,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2732,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:2731,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:2738,1
    - Dst: ucnv_setFromUCallBack
      Src: /src/icu/source/test/cintltst/ccapitst.c:2739,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:2741,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2742,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:2743,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/ccapitst.c:2748,1
    - Dst: ucnv_convertEx
      Src: /src/icu/source/test/cintltst/ccapitst.c:2762,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/ccapitst.c:2769,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:2776,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:2774,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:2772,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:2749,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:2766,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2777
      start: 2694
    functionDepth: 0
    functionLinenumber: 2694
    functionLinenumberEnd: 2777
    functionName: TestConvertExFromUTF8_C5F0
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_convertEx
    - ucnv_open
    - log_data_err
    - ucnv_setFromUCallBack
    - log_err
    - UPRV_LENGTHOF
    - uprv_memcmp
    - u_errorName
    - uprv_memset
    linkageType: ''
    returnType: void
    signature: 'static void TestConvertExFromUTF8_C5F0() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ccapitst.c:3217,1
    - Dst: testSwap
      Src: /src/icu/source/test/cintltst/ccapitst.c:3218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3220
      start: 3202
    functionDepth: 0
    functionLinenumber: 3202
    functionLinenumberEnd: 3220
    functionName: TestEBCDICSwapLFNL
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - testSwap
    linkageType: ''
    returnType: void
    signature: 'static void TestEBCDICSwapLFNL() '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1083,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:1086,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:1087,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1088,1
    - Dst: ucnv_flushCache
      Src: /src/icu/source/test/cintltst/ccapitst.c:1109,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1121,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1127,1
    - Dst: ucnv_flushCache
      Src: /src/icu/source/test/cintltst/ccapitst.c:1074,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1083,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:1082,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1098,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:1115,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:1116,1
    - Dst: ucnv_flushCache
      Src: /src/icu/source/test/cintltst/ccapitst.c:1126,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1129,1
    - Dst: ucnv_flushCache
      Src: /src/icu/source/test/cintltst/ccapitst.c:1134,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1137,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1135,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:1081,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:1096,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1098,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:1097,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1093,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1103,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1108,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1110,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1119,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:1123,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1088,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:1091,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1093,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ccapitst.c:1101,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:1102,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ccapitst.c:1092,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ccapitst.c:1103,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1112,1
    - Dst: ucnv_flushCache
      Src: /src/icu/source/test/cintltst/ccapitst.c:1118,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:1124,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ccapitst.c:1133,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 59
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1139
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1139
    functionName: TestFlushCache
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_flushCache
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - myErrorName
    - log_verbose
    linkageType: ''
    returnType: void
    signature: 'static void TestFlushCache(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1476,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccapitst.c:1482,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:1479,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - q
    - name
    argTypes:
    - TSCCContext*
    - char*
    constantsTouched: []
    func_position:
      end: 1485
      start: 1473
    functionDepth: 0
    functionLinenumber: 1473
    functionLinenumberEnd: 1485
    functionName: TSCC_print_log
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - log_verbose
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TSCC_print_log(TSCCContext *q, const char *name) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U8_IS_LEAD
      Src: /src/icu/source/test/cintltst/ccapitst.c:2513,1
    - Dst: U8_COUNT_TRAIL_BYTES
      Src: /src/icu/source/test/cintltst/ccapitst.c:2515,1
    - Dst: U8_FWD_1
      Src: /src/icu/source/test/cintltst/ccapitst.c:2519,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - s
    - length
    argTypes:
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 2527
      start: 2509
    functionDepth: 0
    functionLinenumber: 2509
    functionLinenumberEnd: 2527
    functionName: isOneTruncatedUTF8
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - U8_IS_LEAD
    - U8_FWD_1
    - U8_COUNT_TRAIL_BYTES
    linkageType: ''
    returnType: UBool
    signature: 'static UBool isOneTruncatedUTF8(const char *s, int32_t length) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_compareNames
      Src: /src/icu/source/test/cintltst/ccapitst.c:3521,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccapitst.c:3523,1
    - Dst: sign
      Src: /src/icu/source/test/cintltst/ccapitst.c:3522,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - names
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 3527
      start: 3502
    functionDepth: 0
    functionLinenumber: 3502
    functionLinenumberEnd: 3527
    functionName: compareNames
    functionSourceFile: /src/icu/source/test/cintltst/ccapitst.c
    functionUses: []
    functionsReached:
    - ucnv_compareNames
    - log_err
    - sign
    linkageType: ''
    returnType: void
    signature: 'static void compareNames(const char **names) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucurr_openISOCurrencies
      Src: /src/icu/source/test/cintltst/currtest.c:21,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/currtest.c:22,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/currtest.c:27,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/currtest.c:23,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/currtest.c:23,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/currtest.c:28,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/currtest.c:35,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/currtest.c:38,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - isoCurrency
    - currencyType
    - isExpected
    argTypes:
    - char*
    - uint32_t
    - UBool
    constantsTouched: []
    func_position:
      end: 39
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 39
    functionName: expectInList
    functionSourceFile: /src/icu/source/test/cintltst/currtest.c
    functionUses: []
    functionsReached:
    - uenum_next
    - U_FAILURE
    - strcmp
    - ucurr_openISOCurrencies
    - myErrorName
    - log_err
    - uenum_close
    linkageType: ''
    returnType: void
    signature: 'static void expectInList(const char *isoCurrency, uint32_t currencyType,
      UBool isExpected) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucurr_openISOCurrencies
      Src: /src/icu/source/test/cintltst/currtest.c:91,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/currtest.c:92,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/currtest.c:93,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/currtest.c:97,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/currtest.c:93,1
    - Dst: uenum_reset
      Src: /src/icu/source/test/cintltst/currtest.c:98,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/currtest.c:99,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/currtest.c:100,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/currtest.c:101,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/currtest.c:101,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/currtest.c:108,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/currtest.c:106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 109
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 109
    functionName: TestEnumListReset
    functionSourceFile: /src/icu/source/test/cintltst/currtest.c
    functionUses: []
    functionsReached:
    - uenum_reset
    - uenum_next
    - U_FAILURE
    - ucurr_openISOCurrencies
    - myErrorName
    - log_err
    - uenum_close
    linkageType: ''
    returnType: void
    signature: 'static void TestEnumListReset(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: checkItemCount
      Src: /src/icu/source/test/cintltst/currtest.c:141,1
    - Dst: checkItemCount
      Src: /src/icu/source/test/cintltst/currtest.c:145,1
    - Dst: checkItemCount
      Src: /src/icu/source/test/cintltst/currtest.c:144,1
    - Dst: checkItemCount
      Src: /src/icu/source/test/cintltst/currtest.c:143,1
    - Dst: checkItemCount
      Src: /src/icu/source/test/cintltst/currtest.c:142,1
    - Dst: checkItemCount
      Src: /src/icu/source/test/cintltst/currtest.c:146,1
    - Dst: checkItemCount
      Src: /src/icu/source/test/cintltst/currtest.c:147,1
    - Dst: checkItemCount
      Src: /src/icu/source/test/cintltst/currtest.c:148,1
    - Dst: checkItemCount
      Src: /src/icu/source/test/cintltst/currtest.c:149,1
    - Dst: checkItemCount
      Src: /src/icu/source/test/cintltst/currtest.c:151,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/currtest.c:155,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/currtest.c:152,1
    - Dst: checkItemCount
      Src: /src/icu/source/test/cintltst/currtest.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 157
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 157
    functionName: TestEnumListCount
    functionSourceFile: /src/icu/source/test/cintltst/currtest.c
    functionUses: []
    functionsReached:
    - checkItemCount
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestEnumListCount(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/currtest.c:206,1
    - Dst: unum_parseDoubleCurrency
      Src: /src/icu/source/test/cintltst/currtest.c:214,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/currtest.c:207,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/currtest.c:208,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/currtest.c:208,1
    - Dst: unum_setTextAttribute
      Src: /src/icu/source/test/cintltst/currtest.c:216,1
    - Dst: unum_setTextAttribute
      Src: /src/icu/source/test/cintltst/currtest.c:217,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/currtest.c:218,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/currtest.c:219,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/currtest.c:219,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/currtest.c:226,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/currtest.c:229,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/currtest.c:227,1
    - Dst: unum_parseDoubleCurrency
      Src: /src/icu/source/test/cintltst/currtest.c:224,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/currtest.c:225,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 230
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 230
    functionName: TestPrefixSuffix
    functionSourceFile: /src/icu/source/test/cintltst/currtest.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_data_err
    - unum_close
    - unum_parseDoubleCurrency
    - unum_setTextAttribute
    - unum_open
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestPrefixSuffix(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ucurr_openISOCurrencies
      Src: /src/icu/source/test/cintltst/currtest.c:114,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/currtest.c:121,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/currtest.c:117,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/currtest.c:116,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/currtest.c:117,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/currtest.c:123,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/currtest.c:124,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/currtest.c:130,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/currtest.c:133,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/currtest.c:134,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/currtest.c:136,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/currtest.c:134,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - currencyType
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 138
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 138
    functionName: checkItemCount
    functionSourceFile: /src/icu/source/test/cintltst/currtest.c
    functionUses: []
    functionsReached:
    - uenum_next
    - U_FAILURE
    - ucurr_openISOCurrencies
    - uenum_count
    - myErrorName
    - log_err
    - uenum_close
    - strlen
    - u_errorName
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t checkItemCount(uint32_t currencyType) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:49,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:51,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:56,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:62,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:67,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:71,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:76,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:78,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:80,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:83,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:48,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:52,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:55,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:59,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:66,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:72,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:75,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:77,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:81,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:79,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:47,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:58,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:60,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:53,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:65,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:69,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:73,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:82,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:42,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:46,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:45,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:43,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:50,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:61,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:57,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:63,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:68,1
    - Dst: expectInList
      Src: /src/icu/source/test/cintltst/currtest.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 55
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 85
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 85
    functionName: TestEnumList
    functionSourceFile: /src/icu/source/test/cintltst/currtest.c
    functionUses: []
    functionsReached:
    - expectInList
    linkageType: ''
    returnType: void
    signature: 'static void TestEnumList(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/currtest.c:168,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/currtest.c:167,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/currtest.c:173,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/currtest.c:181,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/currtest.c:180,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/currtest.c:185,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/currtest.c:187,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/currtest.c:168,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/currtest.c:175,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/currtest.c:180,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/currtest.c:179,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/currtest.c:189,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/currtest.c:191,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/currtest.c:172,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/currtest.c:179,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/currtest.c:182,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/currtest.c:186,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/currtest.c:161,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/currtest.c:172,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/currtest.c:173,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/currtest.c:174,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/currtest.c:178,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/currtest.c:186,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/currtest.c:187,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/currtest.c:188,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 192
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 192
    functionName: TestFractionDigitOverride
    functionSourceFile: /src/icu/source/test/cintltst/currtest.c
    functionUses: []
    functionsReached:
    - u_unescape
    - U_FAILURE
    - unum_setAttribute
    - log_data_err
    - unum_close
    - myErrorName
    - unum_formatDouble
    - unum_open
    - log_err
    - UPRV_LENGTHOF
    - u_strcmp
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestFractionDigitOverride(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/currtest.c:254,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/currtest.c:255,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/currtest.c:258,1
    - Dst: ucurr_getNumericCode
      Src: /src/icu/source/test/cintltst/currtest.c:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 262
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 262
    functionName: TestNumericCode
    functionSourceFile: /src/icu/source/test/cintltst/currtest.c
    functionUses: []
    functionsReached:
    - uprv_strlen
    - u_charsToUChars
    - log_data_err
    - ucurr_getNumericCode
    linkageType: ''
    returnType: void
    signature: 'static void TestNumericCode(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/currtest.c:270,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/currtest.c:273,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/currtest.c:271,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/currtest.c:272,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/currtest.c:274,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/currtest.c:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 276
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 276
    functionName: addCurrencyTest
    functionSourceFile: /src/icu/source/test/cintltst/currtest.c
    functionUses: []
    functionsReached:
    - TESTCASE
    linkageType: ''
    returnType: void
    signature: 'void addCurrencyTest(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/uregiontest.c:38,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/uregiontest.c:41,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/uregiontest.c:42,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/uregiontest.c:39,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/uregiontest.c:40,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/uregiontest.c:43,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/uregiontest.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: addURegionTest
    functionSourceFile: /src/icu/source/test/cintltst/uregiontest.c
    functionUses: []
    functionsReached:
    - TESTCASE
    linkageType: ''
    returnType: void
    signature: 'void addURegionTest(TestNode** root) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: uregion_getRegionFromCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:449,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:454,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/uregiontest.c:450,1
    - Dst: uregion_getContainingRegion
      Src: /src/icu/source/test/cintltst/uregiontest.c:451,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:454,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:454,1
    - Dst: uregion_getRegionFromCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:457,1
    - Dst: uregion_areEqual
      Src: /src/icu/source/test/cintltst/uregiontest.c:458,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:459,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:460,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:464,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:460,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:460,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 467
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 467
    functionName: TestGetContainingRegion
    functionSourceFile: /src/icu/source/test/cintltst/uregiontest.c
    functionUses: []
    functionsReached:
    - uregion_getContainingRegion
    - uregion_getRegionCode
    - log_data_err
    - U_SUCCESS
    - uregion_getRegionFromCode
    - log_err
    - uregion_areEqual
    linkageType: ''
    returnType: void
    signature: 'static void TestGetContainingRegion() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: uregion_getRegionFromCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:420,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/uregiontest.c:421,1
    - Dst: uregion_getType
      Src: /src/icu/source/test/cintltst/uregiontest.c:424,1
    - Dst: uregion_getContainedRegionsOfType
      Src: /src/icu/source/test/cintltst/uregiontest.c:427,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/uregiontest.c:429,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/uregiontest.c:429,1
    - Dst: uregion_getRegionFromCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:430,1
    - Dst: uregion_getContainingRegionOfType
      Src: /src/icu/source/test/cintltst/uregiontest.c:431,1
    - Dst: uregion_areEqual
      Src: /src/icu/source/test/cintltst/uregiontest.c:432,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:433,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:440,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:434,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:434,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/uregiontest.c:437,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:434,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 443
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 443
    functionName: TestGetContainedRegionsWithType
    functionSourceFile: /src/icu/source/test/cintltst/uregiontest.c
    functionUses: []
    functionsReached:
    - uregion_getContainingRegionOfType
    - uenum_next
    - uregion_getRegionCode
    - uregion_getType
    - log_data_err
    - uregion_getContainedRegionsOfType
    - U_SUCCESS
    - uregion_getRegionFromCode
    - log_err
    - uenum_close
    - uregion_areEqual
    linkageType: ''
    returnType: void
    signature: 'static void TestGetContainedRegionsWithType() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: uregion_getRegionFromCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:391,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/uregiontest.c:392,1
    - Dst: uregion_getContainedRegions
      Src: /src/icu/source/test/cintltst/uregiontest.c:398,1
    - Dst: uregion_getType
      Src: /src/icu/source/test/cintltst/uregiontest.c:395,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/uregiontest.c:400,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/uregiontest.c:400,1
    - Dst: uregion_getRegionFromCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:401,1
    - Dst: uregion_getContainingRegion
      Src: /src/icu/source/test/cintltst/uregiontest.c:402,1
    - Dst: uregion_areEqual
      Src: /src/icu/source/test/cintltst/uregiontest.c:403,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:404,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:405,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:411,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/uregiontest.c:408,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:405,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:405,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 414
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 414
    functionName: TestGetContainedRegions
    functionSourceFile: /src/icu/source/test/cintltst/uregiontest.c
    functionUses: []
    functionsReached:
    - uregion_getContainingRegion
    - uregion_getRegionCode
    - uenum_next
    - uregion_getType
    - log_data_err
    - U_SUCCESS
    - uregion_getRegionFromCode
    - log_err
    - uenum_close
    - uregion_areEqual
    - uregion_getContainedRegions
    linkageType: ''
    returnType: void
    signature: 'static void TestGetContainedRegions() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: uregion_getRegionFromCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:364,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:369,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:369,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/uregiontest.c:365,1
    - Dst: uregion_getNumericCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:366,1
    - Dst: uregion_getType
      Src: /src/icu/source/test/cintltst/uregiontest.c:371,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:372,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:372,1
    - Dst: uregion_getType
      Src: /src/icu/source/test/cintltst/uregiontest.c:372,1
    - Dst: uregion_getRegionFromNumericCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:375,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:377,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:378,1
    - Dst: uregion_areEqual
      Src: /src/icu/source/test/cintltst/uregiontest.c:376,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:382,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:378,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 385
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 385
    functionName: TestKnownRegions
    functionSourceFile: /src/icu/source/test/cintltst/uregiontest.c
    functionUses: []
    functionsReached:
    - uregion_getRegionCode
    - uregion_getRegionFromNumericCode
    - uregion_getType
    - log_data_err
    - U_SUCCESS
    - uregion_getRegionFromCode
    - log_err
    - uregion_getNumericCode
    - uregion_areEqual
    linkageType: ''
    returnType: void
    signature: 'static void TestKnownRegions() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: uregion_getRegionFromCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:473,1
    - Dst: uregion_getContainingRegionOfType
      Src: /src/icu/source/test/cintltst/uregiontest.c:475,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:478,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:478,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/uregiontest.c:474,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:478,1
    - Dst: uregion_getRegionFromCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:481,1
    - Dst: uregion_areEqual
      Src: /src/icu/source/test/cintltst/uregiontest.c:482,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:483,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:484,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:484,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:484,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:488,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 491
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 491
    functionName: TestGetContainingRegionWithType
    functionSourceFile: /src/icu/source/test/cintltst/uregiontest.c
    functionUses: []
    functionsReached:
    - uregion_getContainingRegionOfType
    - uregion_getRegionCode
    - log_data_err
    - U_SUCCESS
    - uregion_getRegionFromCode
    - log_err
    - uregion_areEqual
    linkageType: ''
    returnType: void
    signature: 'static void TestGetContainingRegionWithType() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: uregion_getRegionFromCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:515,1
    - Dst: uenum_reset
      Src: /src/icu/source/test/cintltst/uregiontest.c:524,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/uregiontest.c:518,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/uregiontest.c:516,1
    - Dst: uregion_getPreferredValues
      Src: /src/icu/source/test/cintltst/uregiontest.c:517,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/uregiontest.c:525,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/uregiontest.c:525,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/uregiontest.c:526,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:532,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:532,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/uregiontest.c:535,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:538,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:538,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:541,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 544
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 544
    functionName: TestGetPreferredValues
    functionSourceFile: /src/icu/source/test/cintltst/uregiontest.c
    functionUses: []
    functionsReached:
    - uenum_reset
    - uregion_getRegionCode
    - uenum_next
    - uregion_getPreferredValues
    - log_data_err
    - U_SUCCESS
    - uregion_getRegionFromCode
    - uprv_strcmp
    - log_err
    - uenum_close
    linkageType: ''
    returnType: void
    signature: 'static void TestGetPreferredValues() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uregion_getRegionFromCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:550,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/uregiontest.c:551,1
    - Dst: uregion_contains
      Src: /src/icu/source/test/cintltst/uregiontest.c:554,1
    - Dst: uregion_getContainingRegion
      Src: /src/icu/source/test/cintltst/uregiontest.c:552,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:555,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:555,1
    - Dst: uregion_getRegionCode
      Src: /src/icu/source/test/cintltst/uregiontest.c:555,1
    - Dst: uregion_getContainingRegion
      Src: /src/icu/source/test/cintltst/uregiontest.c:557,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/uregiontest.c:560,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 563
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 563
    functionName: TestContains
    functionSourceFile: /src/icu/source/test/cintltst/uregiontest.c
    functionUses: []
    functionsReached:
    - uregion_getContainingRegion
    - uregion_getRegionCode
    - log_data_err
    - U_SUCCESS
    - uregion_getRegionFromCode
    - log_err
    - uregion_contains
    linkageType: ''
    returnType: void
    signature: 'static void TestContains() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cgendtst.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: addGendInfoForTest
    functionSourceFile: /src/icu/source/test/cintltst/cgendtst.c
    functionUses: []
    functionsReached:
    - TESTCASE
    linkageType: ''
    returnType: void
    signature: 'void addGendInfoForTest(TestNode** root) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ugender_getInstance
      Src: /src/icu/source/test/cintltst/cgendtst.c:37,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cgendtst.c:40,1
    - Dst: ugender_getListGender
      Src: /src/icu/source/test/cintltst/cgendtst.c:43,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cgendtst.c:40,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cgendtst.c:39,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cgendtst.c:43,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cgendtst.c:44,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cgendtst.c:45,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cgendtst.c:45,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cgendtst.c:49,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 51
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 51
    functionName: TestGenderInfo
    functionSourceFile: /src/icu/source/test/cintltst/cgendtst.c
    functionUses: []
    functionsReached:
    - ugender_getInstance
    - U_FAILURE
    - log_err_status
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    - ugender_getListGender
    linkageType: ''
    returnType: void
    signature: 'static void TestGenderInfo(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: buildPseudoTables
      Src: /src/icu/source/test/cintltst/cbiditst.c:367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - length
    - input
    - output
    argTypes:
    - int
    - char*
    - UChar*
    constantsTouched: []
    func_position:
      end: 373
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 373
    functionName: pseudoToU16
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - buildPseudoTables
    linkageType: ''
    returnType: int
    signature: 'static int pseudoToU16(const int length, const char * input, UChar
      * output) /* This function converts a pseudo-Bidi string into a UChar string.
      It returns the length of the UChar string.*/ '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_getLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:399,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cbiditst.c:405,1
    - Dst: ubidi_getLength
      Src: /src/icu/source/test/cintltst/cbiditst.c:400,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:404,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - bidi
    - buffer
    argTypes:
    - UBiDi*
    - char*
    constantsTouched: []
    func_position:
      end: 418
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 418
    functionName: formatLevels
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - ubidi_getLevels
    - strcpy
    - ubidi_getLength
    linkageType: ''
    returnType: char*
    signature: 'static char * formatLevels(UBiDi *bidi, char *buffer) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:821,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:832,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:869,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:859,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:835,1
    - Dst: ubidi_open
      Src: /src/icu/source/test/cintltst/cbiditst.c:736,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:793,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:803,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:816,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:854,1
    - Dst: pseudoToU16
      Src: /src/icu/source/test/cintltst/cbiditst.c:849,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:868,1
    - Dst: formatLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:806,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:758,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:769,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:751,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:776,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:788,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:893,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:897,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:888,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:750,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:905,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:747,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:758,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:820,1
    - Dst: formatLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:837,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:853,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:826,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:802,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:882,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:764,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:760,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:777,1
    - Dst: pseudoToU16
      Src: /src/icu/source/test/cintltst/cbiditst.c:783,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:828,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:885,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:891,1
    - Dst: formatLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:902,1
    - Dst: ubidi_setInverse
      Src: /src/icu/source/test/cintltst/cbiditst.c:819,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:841,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:857,1
    - Dst: formatLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:771,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:787,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:795,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:741,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:753,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:756,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:870,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:852,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:875,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:834,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:893,1
    - Dst: u16ToPseudo
      Src: /src/icu/source/test/cintltst/cbiditst.c:898,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:804,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:811,1
    - Dst: u16ToPseudo
      Src: /src/icu/source/test/cintltst/cbiditst.c:833,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:823,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:859,1
    - Dst: u16ToPseudo
      Src: /src/icu/source/test/cintltst/cbiditst.c:866,1
    - Dst: u16ToPseudo
      Src: /src/icu/source/test/cintltst/cbiditst.c:800,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:739,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:768,1
    - Dst: checkWhatYouCan
      Src: /src/icu/source/test/cintltst/cbiditst.c:773,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:786,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:810,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:842,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:793,1
    - Dst: pseudoToU16
      Src: /src/icu/source/test/cintltst/cbiditst.c:883,1
    - Dst: pseudoToU16
      Src: /src/icu/source/test/cintltst/cbiditst.c:817,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:767,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:899,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:752,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:782,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:865,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:799,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:822,1
    - Dst: formatLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:872,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:848,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:851,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:861,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:886,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:900,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:907,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:887,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:828,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:876,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:791,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:742,1
    - Dst: pseudoToU16
      Src: /src/icu/source/test/cintltst/cbiditst.c:748,1
    - Dst: u16ToPseudo
      Src: /src/icu/source/test/cintltst/cbiditst.c:765,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:785,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 186
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 908
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 908
    functionName: testReorder
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - pseudoToU16
    - ubidi_close
    - UPRV_LENGTHOF
    - formatLevels
    - ubidi_open
    - U_FAILURE
    - strcmp
    - checkWhatYouCan
    - ubidi_setInverse
    - log_verbose
    - log_err
    - ubidi_writeReordered
    - strlen
    - u_errorName
    - ubidi_setPara
    - u16ToPseudo
    linkageType: ''
    returnType: void
    signature: 'static void testReorder(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1365,1
    - Dst: ubidi_getBaseDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:1383,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1385,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1390,1
    - Dst: ubidi_getBaseDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:1398,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1400,1
    - Dst: ubidi_getBaseDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:1408,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1410,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1405,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1342,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1344,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1346,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1348,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1352,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1350,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:1366,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1372,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1339,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1340,1
    - Dst: ubidi_getBaseDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:1369,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:1368,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1370,1
    - Dst: ubidi_getBaseDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:1378,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1380,1
    - Dst: ubidi_getBaseDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:1388,1
    - Dst: ubidi_getBaseDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:1393,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1395,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1343,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1341,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1345,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1347,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1349,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1351,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1353,1
    - Dst: ubidi_getBaseDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:1403,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1413
      start: 1298
    functionDepth: 0
    functionLinenumber: 1298
    functionLinenumberEnd: 1413
    functionName: testGetBaseDirection
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_getBaseDirection
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - STRING_TEST_CASE
    linkageType: ''
    returnType: void
    signature: 'static void testGetBaseDirection(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2292,1
    - Dst: ubidi_setInverse
      Src: /src/icu/source/test/cintltst/cbiditst.c:2297,1
    - Dst: ubidi_isInverse
      Src: /src/icu/source/test/cintltst/cbiditst.c:2298,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:2301,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2299,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:2315,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2325,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2328,1
    - Dst: printUnicode
      Src: /src/icu/source/test/cintltst/cbiditst.c:2329,1
    - Dst: ubidi_getLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:2329,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2279,1
    - Dst: ubidi_getLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:2293,1
    - Dst: printUnicode
      Src: /src/icu/source/test/cintltst/cbiditst.c:2293,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2294,1
    - Dst: ubidi_writeReverse
      Src: /src/icu/source/test/cintltst/cbiditst.c:2308,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2309,1
    - Dst: ubidi_setInverse
      Src: /src/icu/source/test/cintltst/cbiditst.c:2314,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:2324,1
    - Dst: printUnicode
      Src: /src/icu/source/test/cintltst/cbiditst.c:2332,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2333,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2344,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:2316,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2331,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2288,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2305,1
    - Dst: printUnicode
      Src: /src/icu/source/test/cintltst/cbiditst.c:2310,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2311,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2318,1
    - Dst: ubidi_setInverse
      Src: /src/icu/source/test/cintltst/cbiditst.c:2323,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:2325,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2336,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2337,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2345,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2320,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2330,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2316,1
    - Dst: ubidi_isInverse
      Src: /src/icu/source/test/cintltst/cbiditst.c:2283,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2284,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:2286,1
    - Dst: ubidi_setInverse
      Src: /src/icu/source/test/cintltst/cbiditst.c:2282,1
    - Dst: ubidi_getText
      Src: /src/icu/source/test/cintltst/cbiditst.c:2287,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:2290,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2290,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:2302,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2302,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2308,1
    - Dst: printUnicode
      Src: /src/icu/source/test/cintltst/cbiditst.c:2319,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:2338,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2339,1
    - Dst: ubidi_getLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:2319,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2341,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 77
    argCount: 5
    argNames:
    - pBiDi
    - src
    - srcLength
    - direction
    - pErrorCode
    argTypes:
    - UBiDi*
    - UChar*
    - int32_t
    - UBiDiLevel
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 2348
      start: 2272
    functionDepth: 0
    functionLinenumber: 2272
    functionLinenumberEnd: 2348
    functionName: _testInverseBidi
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - printUnicode
    - ubidi_writeReverse
    - U_FAILURE
    - ubidi_getLevels
    - ubidi_getText
    - log_verbose
    - log_err
    - ubidi_writeReordered
    - ubidi_isInverse
    - UPRV_LENGTHOF
    - memcmp
    - u_errorName
    - ubidi_setPara
    - ubidi_setInverse
    linkageType: ''
    returnType: void
    signature: 'static void _testInverseBidi(UBiDi *pBiDi, const UChar *src, int32_t
      srcLength, UBiDiLevel direction, UErrorCode *pErrorCode) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2928,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2932,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:2943,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2947,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2942,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2954,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2956,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2930,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2935,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2959,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:2960,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2934,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2932,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:2935,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2938,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2938,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2952,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2937,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2939,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2949,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2951,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2949,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:2952,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2955,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2955,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2962
      start: 2919
    functionDepth: 0
    functionLinenumber: 2919
    functionLinenumberEnd: 2962
    functionName: doTailTest
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - u_shapeArabic
    - log_verbose
    - log_err
    - u_strncmp
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void doTailTest(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3623,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3624,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:3624,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - message
    - rc
    argTypes:
    - char*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 3628
      start: 3621
    functionDepth: 0
    functionLinenumber: 3621
    functionLinenumberEnd: 3628
    functionName: assertSuccessful
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - myErrorName
    - log_err
    linkageType: ''
    returnType: UBool
    signature: 'static UBool assertSuccessful(const char* message, UErrorCode* rc) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:4286,1
    - Dst: pseudoToU16
      Src: /src/icu/source/test/cintltst/cbiditst.c:4296,1
    - Dst: ubidi_getReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:4310,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4321,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:4320,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4326,1
    - Dst: u16ToPseudo
      Src: /src/icu/source/test/cintltst/cbiditst.c:4327,1
    - Dst: checkWhatYouCan
      Src: /src/icu/source/test/cintltst/cbiditst.c:4330,1
    - Dst: checkResultLength
      Src: /src/icu/source/test/cintltst/cbiditst.c:4354,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:4375,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:4280,1
    - Dst: ubidi_setInverse
      Src: /src/icu/source/test/cintltst/cbiditst.c:4291,1
    - Dst: ubidi_setReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:4309,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4303,1
    - Dst: assertRoundTrip
      Src: /src/icu/source/test/cintltst/cbiditst.c:4349,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:4374,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:4373,1
    - Dst: getBiDiObject
      Src: /src/icu/source/test/cintltst/cbiditst.c:4283,1
    - Dst: getBiDiObject
      Src: /src/icu/source/test/cintltst/cbiditst.c:4284,1
    - Dst: getBiDiObject
      Src: /src/icu/source/test/cintltst/cbiditst.c:4282,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:4287,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:4295,1
    - Dst: ubidi_setReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:4300,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:4317,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4312,1
    - Dst: inverseBasic
      Src: /src/icu/source/test/cintltst/cbiditst.c:4335,1
    - Dst: assertStringsEqual
      Src: /src/icu/source/test/cintltst/cbiditst.c:4342,1
    - Dst: checkMaps
      Src: /src/icu/source/test/cintltst/cbiditst.c:4360,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:4324,1
    - Dst: ubidi_getReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:4301,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:4377,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:4371,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 92
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4378
      start: 4266
    functionDepth: 0
    functionLinenumber: 4266
    functionLinenumberEnd: 4378
    functionName: testReorderingMode
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_setReorderingOptions
    - checkWhatYouCan
    - getBiDiObject
    - ubidi_setInverse
    - checkResultLength
    - ubidi_getReorderingMode
    - log_verbose
    - ubidi_setReorderingMode
    - pseudoToU16
    - checkMaps
    - log_err
    - ubidi_getReorderingOptions
    - inverseBasic
    - ubidi_setPara
    - u16ToPseudo
    - ubidi_close
    - assertRoundTrip
    - assertStringsEqual
    - assertSuccessful
    - ubidi_writeReordered
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void testReorderingMode(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1009,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1011,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:1012,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:1033,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:1017,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1019,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:1023,1
    - Dst: formatLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:1029,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:1003,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1025,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:1026,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1035,1
    - Dst: ubidi_open
      Src: /src/icu/source/test/cintltst/cbiditst.c:998,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:1004,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:1015,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1007,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1001,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1010,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1027,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1017,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1036
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 1036
    functionName: testReorderArabicMathSymbols
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_close
    - formatLevels
    - ubidi_open
    - U_FAILURE
    - u_strlen
    - log_verbose
    - log_err
    - ubidi_writeReordered
    - memcmp
    - UPRV_LENGTHOF
    - u_errorName
    - ubidi_setPara
    linkageType: ''
    returnType: void
    signature: 'static void testReorderArabicMathSymbols(void) '
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1430,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1441,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1479,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1515,1
    - Dst: ubidi_getDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:1503,1
    - Dst: ubidi_countRuns
      Src: /src/icu/source/test/cintltst/cbiditst.c:1511,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1513,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1563,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:1592,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:1594,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1680,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:1698,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:1642,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1664,1
    - Dst: ubidi_getLevelAt
      Src: /src/icu/source/test/cintltst/cbiditst.c:1458,1
    - Dst: ubidi_getLevelAt
      Src: /src/icu/source/test/cintltst/cbiditst.c:1482,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1496,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1501,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1510,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1522,1
    - Dst: ubidi_countRuns
      Src: /src/icu/source/test/cintltst/cbiditst.c:1520,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1581,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:1610,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1622,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1654,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1666,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1613,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:1671,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:1678,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1684,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1518,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1560,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:1447,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:1577,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1587,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1614,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1649,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:1660,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1673,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1690,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1691,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1657,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1605,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1643,1
    - Dst: ubidi_getLevelAt
      Src: /src/icu/source/test/cintltst/cbiditst.c:1682,1
    - Dst: ubidi_setLine
      Src: /src/icu/source/test/cintltst/cbiditst.c:1528,1
    - Dst: ubidi_setReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:1490,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1491,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1531,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1578,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1583,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:1601,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:1603,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:1619,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1637,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1667,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1452,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1466,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1476,1
    - Dst: ubidi_setLine
      Src: /src/icu/source/test/cintltst/cbiditst.c:1480,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1488,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:1546,1
    - Dst: ubidi_countRuns
      Src: /src/icu/source/test/cintltst/cbiditst.c:1539,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1492,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1541,1
    - Dst: ubidi_getDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:1534,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:1669,1
    - Dst: ubidi_setLine
      Src: /src/icu/source/test/cintltst/cbiditst.c:1502,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1568,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1586,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1596,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1614,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1639,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1645,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1655,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1658,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1663,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:1651,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:1662,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1435,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1444,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1449,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1460,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1455,1
    - Dst: ubidi_setLine
      Src: /src/icu/source/test/cintltst/cbiditst.c:1519,1
    - Dst: ubidi_invertMap
      Src: /src/icu/source/test/cintltst/cbiditst.c:1545,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1574,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1625,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:1653,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1668,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1694,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:1635,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1547,1
    - Dst: ubidi_getResultLength
      Src: /src/icu/source/test/cintltst/cbiditst.c:1494,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1498,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1524,1
    - Dst: ubidi_setReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:1567,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:1584,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1627,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1636,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1637,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1650,1
    - Dst: ubidi_open
      Src: /src/icu/source/test/cintltst/cbiditst.c:1679,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1652,1
    - Dst: ubidi_setLine
      Src: /src/icu/source/test/cintltst/cbiditst.c:1493,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1579,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1604,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1611,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1630,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1640,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1670,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:1699,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1508,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1467,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1517,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:1569,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1571,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1573,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:1585,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1595,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1598,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1605,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1620,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1659,1
    - Dst: ubidi_setReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:1689,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1543,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1555,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1526,1
    - Dst: ubidi_setLine
      Src: /src/icu/source/test/cintltst/cbiditst.c:1456,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1599,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1616,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1617,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1646,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1664,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1561,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1505,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1575,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1589,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1590,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:1621,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1623,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1632,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1646,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1648,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1655,1
    - Dst: ubidi_open
      Src: /src/icu/source/test/cintltst/cbiditst.c:1433,1
    - Dst: ubidi_writeReverse
      Src: /src/icu/source/test/cintltst/cbiditst.c:1439,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1551,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1556,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1500,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1591,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1602,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1623,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:1631,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:1644,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1661,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1673,1
    - Dst: ubidi_countRuns
      Src: /src/icu/source/test/cintltst/cbiditst.c:1692,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1454,1
    - Dst: ubidi_setLine
      Src: /src/icu/source/test/cintltst/cbiditst.c:1468,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1478,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:1559,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1593,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1609,1
    - Dst: ubidi_orderParagraphsLTR
      Src: /src/icu/source/test/cintltst/cbiditst.c:1626,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1641,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1672,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1675,1
    - Dst: ubidi_getDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:1529,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:1557,1
    - Dst: ubidi_openSized
      Src: /src/icu/source/test/cintltst/cbiditst.c:1428,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1446,1
    - Dst: ubidi_getLevelAt
      Src: /src/icu/source/test/cintltst/cbiditst.c:1470,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1549,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1582,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:1596,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1607,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1608,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1681,1
    - Dst: ubidi_setReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:1566,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1536,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1527,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1464,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1472,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1484,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:1576,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1600,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:1612,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1618,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1686,1
    - Dst: RETURN_IF_BAD_ERRCODE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1696,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 349
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1700
      start: 1416
    functionDepth: 0
    functionLinenumber: 1416
    functionLinenumberEnd: 1700
    functionName: doMisc
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_writeReverse
    - ubidi_getLevelAt
    - ubidi_setReorderingOptions
    - ubidi_setLine
    - ubidi_openSized
    - aescstrdup
    - ubidi_countRuns
    - ubidi_orderParagraphsLTR
    - ubidi_getResultLength
    - memcmp
    - ubidi_setReorderingMode
    - u_unescape
    - RETURN_IF_BAD_ERRCODE
    - log_err
    - ubidi_setPara
    - ubidi_close
    - ubidi_open
    - ubidi_getDirection
    - ubidi_invertMap
    - ubidi_writeReordered
    linkageType: ''
    returnType: void
    signature: 'static void doMisc(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_writeReverse
      Src: /src/icu/source/test/cintltst/cbiditst.c:2366,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2366,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2367,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2370,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/cbiditst.c:2375,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2381,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2384,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2370,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2371,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:2372,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2370,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2377,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2378,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2381,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2382,1
    - Dst: ubidi_writeReverse
      Src: /src/icu/source/test/cintltst/cbiditst.c:2377,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2375,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:2384,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2372,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2381,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2386
      start: 2350
    functionDepth: 0
    functionLinenumber: 2350
    functionLinenumberEnd: 2386
    functionName: _testWriteReverse
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_writeReverse
    - U_FAILURE
    - memset
    - log_err
    - memcmp
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void _testWriteReverse(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2993,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2998,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3010,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3022,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2998,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3004,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3010,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3010,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3023,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3028,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3028,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3029,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3034,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2994,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2993,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2998,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3016,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3016,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3022,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3017,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3011,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3034,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3035,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2999,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3004,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3005,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3022,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3034,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 69
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3037
      start: 2964
    functionDepth: 0
    functionLinenumber: 2964
    functionLinenumberEnd: 3037
    functionName: doArabicShapingTestForBug5421
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - u_shapeArabic
    - log_err
    - memcmp
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void doArabicShapingTestForBug5421(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3633,1
    - Dst: ubidi_getReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:3641,1
    - Dst: ubidi_getParaLevel
      Src: /src/icu/source/test/cintltst/cbiditst.c:3642,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3635,1
    - Dst: formatLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:3640,1
    - Dst: ubidi_getReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:3643,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 6
    argNames:
    - expected
    - actual
    - src
    - mode
    - option
    - pBiDi
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - UBiDi*
    constantsTouched: []
    func_position:
      end: 3647
      start: 3630
    functionDepth: 0
    functionLinenumber: 3630
    functionLinenumberEnd: 3647
    functionName: assertStringsEqual
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - formatLevels
    - ubidi_getReorderingMode
    - uprv_strcmp
    - log_err
    - ubidi_getReorderingOptions
    - ubidi_getParaLevel
    linkageType: ''
    returnType: UBool
    signature: 'static UBool assertStringsEqual(const char* expected, const char*
      actual, const char* src, const char* mode, const char* option, UBiDi* pBiDi) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_setReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:4389,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:4391,1
    - Dst: pseudoToU16
      Src: /src/icu/source/test/cintltst/cbiditst.c:4390,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4392,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:4395,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4397,1
    - Dst: u16ToPseudo
      Src: /src/icu/source/test/cintltst/cbiditst.c:4398,1
    - Dst: checkWhatYouCan
      Src: /src/icu/source/test/cintltst/cbiditst.c:4400,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 6
    argNames:
    - pBiDi
    - srcChars
    - srcLen
    - option
    - level
    - result
    argTypes:
    - UBiDi*
    - char*
    - int32_t
    - uint32_t
    - UBiDiLevel
    - char*
    constantsTouched: []
    func_position:
      end: 4403
      start: 4380
    functionDepth: 0
    functionLinenumber: 4380
    functionLinenumberEnd: 4403
    functionName: inverseBasic
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - pseudoToU16
    - assertSuccessful
    - ubidi_setReorderingOptions
    - checkWhatYouCan
    - ubidi_writeReordered
    - ubidi_setPara
    - u16ToPseudo
    linkageType: ''
    returnType: char*
    signature: 'static const char * inverseBasic(UBiDi *pBiDi, const char *srcChars,
      int32_t srcLen, uint32_t option, UBiDiLevel level, char *result) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:3604,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:3609,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:3612,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:3607,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - s
    - length
    - levels
    argTypes:
    - UChar*
    - int32_t
    - UBiDiLevel*
    constantsTouched: []
    func_position:
      end: 3613
      start: 3601
    functionDepth: 0
    functionLinenumber: 3601
    functionLinenumberEnd: 3613
    functionName: printUnicode
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - log_verbose
    linkageType: ''
    returnType: void
    signature: 'static void printUnicode(const UChar *s, int32_t length, const UBiDiLevel
      *levels) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:130,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:132,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:136,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:140,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:147,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:145,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:151,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:131,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:133,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:137,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:141,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:148,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:152,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:134,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:143,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:138,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:149,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:128,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:129,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:135,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:146,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:139,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:144,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 153
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 153
    functionName: addComplexTest
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addComplexTest(TestNode** root) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/cbiditst.c:431,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/cbiditst.c:434,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/cbiditst.c:437,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - buffer
    - options
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 440
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 440
    functionName: reorderingOptionNames
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - strcat
    linkageType: ''
    returnType: char*
    signature: 'static char *reorderingOptionNames(char *buffer, int options) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _testReordering
      Src: /src/icu/source/test/cintltst/cbiditst.c:1060,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1063,1
    - Dst: ubidi_getVisualIndex
      Src: /src/icu/source/test/cintltst/cbiditst.c:1066,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1082,1
    - Dst: ubidi_getDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:1086,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1096,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1103,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:1104,1
    - Dst: ubidi_countRuns
      Src: /src/icu/source/test/cintltst/cbiditst.c:1114,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1130,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1125,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1048,1
    - Dst: ubidi_getLevelAt
      Src: /src/icu/source/test/cintltst/cbiditst.c:1064,1
    - Dst: ubidi_getLevelAt
      Src: /src/icu/source/test/cintltst/cbiditst.c:1064,1
    - Dst: ubidi_getVisualIndex
      Src: /src/icu/source/test/cintltst/cbiditst.c:1082,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1091,1
    - Dst: ubidi_getParaLevel
      Src: /src/icu/source/test/cintltst/cbiditst.c:1091,1
    - Dst: ubidi_getLevelAt
      Src: /src/icu/source/test/cintltst/cbiditst.c:1095,1
    - Dst: ubidi_getVisualIndex
      Src: /src/icu/source/test/cintltst/cbiditst.c:1102,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1116,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:1116,1
    - Dst: ubidi_getLevelAt
      Src: /src/icu/source/test/cintltst/cbiditst.c:1096,1
    - Dst: ubidi_countRuns
      Src: /src/icu/source/test/cintltst/cbiditst.c:1132,1
    - Dst: ubidi_getLength
      Src: /src/icu/source/test/cintltst/cbiditst.c:1043,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1057,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1072,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1077,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1074,1
    - Dst: ubidi_getParaLevel
      Src: /src/icu/source/test/cintltst/cbiditst.c:1090,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1108,1
    - Dst: ubidi_getLogicalRun
      Src: /src/icu/source/test/cintltst/cbiditst.c:1123,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1115,1
    - Dst: ubidi_countRuns
      Src: /src/icu/source/test/cintltst/cbiditst.c:1050,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1053,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1052,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:1053,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1069,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1080,1
    - Dst: ubidi_getLevelAt
      Src: /src/icu/source/test/cintltst/cbiditst.c:1074,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1084,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1087,1
    - Dst: ubidi_getDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:1087,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1137,1
    - Dst: ubidi_countRuns
      Src: /src/icu/source/test/cintltst/cbiditst.c:1139,1
    - Dst: ubidi_getLevelAt
      Src: /src/icu/source/test/cintltst/cbiditst.c:1122,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1104,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1143,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 96
    argCount: 5
    argNames:
    - pBiDi
    - testNumber
    - test
    - lineStart
    - countRunsFirst
    argTypes:
    - UBiDi*
    - int
    - BiDiTestData*
    - int32_t
    - UBool
    constantsTouched: []
    func_position:
      end: 1144
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1144
    functionName: doTest
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - ubidi_getLevelAt
    - _testReordering
    - ubidi_getLogicalRun
    - ubidi_getLength
    - ubidi_getDirection
    - myErrorName
    - log_verbose
    - log_err
    - ubidi_getVisualIndex
    - ubidi_getParaLevel
    - ubidi_countRuns
    linkageType: ''
    returnType: void
    signature: 'static void doTest(UBiDi *pBiDi, int testNumber, const BiDiTestData
      *test, int32_t lineStart, UBool countRunsFirst) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2190,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2214,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2213,1
    - Dst: _testManyInverseBidi
      Src: /src/icu/source/test/cintltst/cbiditst.c:2219,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2224,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2232,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2187,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2188,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2205,1
    - Dst: _testInverseBidi
      Src: /src/icu/source/test/cintltst/cbiditst.c:2209,1
    - Dst: _testManyInverseBidi
      Src: /src/icu/source/test/cintltst/cbiditst.c:2220,1
    - Dst: _testMisc
      Src: /src/icu/source/test/cintltst/cbiditst.c:2230,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2189,1
    - Dst: STRING_TEST_CASE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2191,1
    - Dst: ubidi_open
      Src: /src/icu/source/test/cintltst/cbiditst.c:2199,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2201,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2205,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2212,1
    - Dst: _testInverseBidi
      Src: /src/icu/source/test/cintltst/cbiditst.c:2216,1
    - Dst: _testManyAddedPoints
      Src: /src/icu/source/test/cintltst/cbiditst.c:2228,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2198,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2206,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2207,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2212,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:2222,1
    - Dst: _testWriteReverse
      Src: /src/icu/source/test/cintltst/cbiditst.c:2226,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2233
      start: 2174
    functionDepth: 0
    functionLinenumber: 2174
    functionLinenumberEnd: 2233
    functionName: testInverse
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_close
    - _testMisc
    - ubidi_open
    - _testManyAddedPoints
    - _testInverseBidi
    - _testWriteReverse
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - _testManyInverseBidi
    - STRING_TEST_CASE
    linkageType: ''
    returnType: void
    signature: 'static void testInverse(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2817,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2818,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2823,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2817,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2823,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2823,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2824,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2829,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2829,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2830,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2835,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2835,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2836,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2835,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2838
      start: 2788
    functionDepth: 0
    functionLinenumber: 2788
    functionLinenumberEnd: 2838
    functionName: doTashkeelSpecialVLTRArabicShapingTest
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - u_shapeArabic
    - log_err
    - memcmp
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void doTashkeelSpecialVLTRArabicShapingTest(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4551,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4554,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:4557,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4558,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 5
    argNames:
    - fn
    - context
    - expectedFn
    - expectedContext
    - sizeOfContext
    argTypes:
    - UBiDiClassCallback*
    - void*
    - UBiDiClassCallback*
    - void*
    - int32_t
    constantsTouched: []
    func_position:
      end: 4560
      start: 4544
    functionDepth: 0
    functionLinenumber: 4544
    functionLinenumberEnd: 4560
    functionName: verifyCallbackParams
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - memcmp
    - log_err
    linkageType: ''
    returnType: U_CDECL_END
    signature: 'U_CDECL_END static void verifyCallbackParams(UBiDiClassCallback* fn,
      const void* context, UBiDiClassCallback* expectedFn, const void* expectedContext,
      int32_t sizeOfContext) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:458,1
    - Dst: ubidi_getLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:457,1
    - Dst: fputs
      Src: /src/icu/source/test/cintltst/cbiditst.c:475,1
    - Dst: fputs
      Src: /src/icu/source/test/cintltst/cbiditst.c:479,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:481,1
    - Dst: reorderingOptionNames
      Src: /src/icu/source/test/cintltst/cbiditst.c:481,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:487,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:492,1
    - Dst: ubidi_getProcessedLength
      Src: /src/icu/source/test/cintltst/cbiditst.c:450,1
    - Dst: fputs
      Src: /src/icu/source/test/cintltst/cbiditst.c:456,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cbiditst.c:459,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:461,1
    - Dst: fputs
      Src: /src/icu/source/test/cintltst/cbiditst.c:472,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:476,1
    - Dst: fputs
      Src: /src/icu/source/test/cintltst/cbiditst.c:473,1
    - Dst: fputs
      Src: /src/icu/source/test/cintltst/cbiditst.c:474,1
    - Dst: ubidi_getReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:480,1
    - Dst: ubidi_countRuns
      Src: /src/icu/source/test/cintltst/cbiditst.c:483,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:484,1
    - Dst: fputs
      Src: /src/icu/source/test/cintltst/cbiditst.c:461,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:475,1
    - Dst: ubidi_getParaLevel
      Src: /src/icu/source/test/cintltst/cbiditst.c:476,1
    - Dst: ubidi_getReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:477,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:478,1
    - Dst: fputs
      Src: /src/icu/source/test/cintltst/cbiditst.c:482,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:485,1
    - Dst: fputs
      Src: /src/icu/source/test/cintltst/cbiditst.c:495,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:456,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:472,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:473,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:474,1
    - Dst: ubidi_getDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:475,1
    - Dst: fputs
      Src: /src/icu/source/test/cintltst/cbiditst.c:476,1
    - Dst: ubidi_getVisualRun
      Src: /src/icu/source/test/cintltst/cbiditst.c:491,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 3
    argNames:
    - bidi
    - src
    - dst
    argTypes:
    - UBiDi*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 496
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 496
    functionName: printCaseInfo
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_getProcessedLength
    - U_FAILURE
    - ubidi_getLevels
    - strcpy
    - ubidi_countRuns
    - ubidi_getDirection
    - ubidi_getReorderingMode
    - ubidi_getVisualRun
    - log_err
    - fputs
    - ubidi_getReorderingOptions
    - ubidi_getParaLevel
    - reorderingOptionNames
    linkageType: ''
    returnType: void
    signature: 'static void printCaseInfo(UBiDi *bidi, const char *src, const char
      *dst) /* src and dst are char arrays encoded as pseudo Bidi */ '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_getLogicalMap
      Src: /src/icu/source/test/cintltst/cbiditst.c:1163,1
    - Dst: ubidi_getResultLength
      Src: /src/icu/source/test/cintltst/cbiditst.c:1154,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1165,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:1165,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1171,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:1171,1
    - Dst: ubidi_invertMap
      Src: /src/icu/source/test/cintltst/cbiditst.c:1177,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1183,1
    - Dst: ubidi_countRuns
      Src: /src/icu/source/test/cintltst/cbiditst.c:1191,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:1183,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1225,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1242,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1240,1
    - Dst: ubidi_invertMap
      Src: /src/icu/source/test/cintltst/cbiditst.c:1176,1
    - Dst: ubidi_reorderVisual
      Src: /src/icu/source/test/cintltst/cbiditst.c:1188,1
    - Dst: ubidi_reorderLogical
      Src: /src/icu/source/test/cintltst/cbiditst.c:1187,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1192,1
    - Dst: ubidi_getVisualRun
      Src: /src/icu/source/test/cintltst/cbiditst.c:1199,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1200,1
    - Dst: ubidi_getLogicalIndex
      Src: /src/icu/source/test/cintltst/cbiditst.c:1278,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1274,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1279,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1230,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1236,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1266,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1283,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1217,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1262,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1244,1
    - Dst: ubidi_getLength
      Src: /src/icu/source/test/cintltst/cbiditst.c:1153,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1164,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1170,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1182,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1212,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1219,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1221,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1223,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1232,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1234,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1282,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1271,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:1283,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1258,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1253,1
    - Dst: ubidi_getVisualMap
      Src: /src/icu/source/test/cintltst/cbiditst.c:1169,1
    - Dst: ubidi_getLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:1180,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1193,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:1193,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1196,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1215,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1228,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1249,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1275,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:1275,1
    - Dst: ubidi_getVisualIndex
      Src: /src/icu/source/test/cintltst/cbiditst.c:1270,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1238,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 120
    argCount: 2
    argNames:
    - pBiDi
    - testNumber
    argTypes:
    - UBiDi*
    - int
    constantsTouched: []
    func_position:
      end: 1287
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1287
    functionName: _testReordering
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_getLogicalMap
    - ubidi_getVisualMap
    - U_FAILURE
    - ubidi_getLevels
    - ubidi_getLength
    - myErrorName
    - ubidi_invertMap
    - log_err
    - log_verbose
    - ubidi_getResultLength
    - ubidi_getLogicalIndex
    - ubidi_reorderVisual
    - ubidi_reorderLogical
    - ubidi_getVisualIndex
    - ubidi_getVisualRun
    - ubidi_countRuns
    linkageType: ''
    returnType: void
    signature: 'static void _testReordering(UBiDi *pBiDi, int testNumber) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2871,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2877,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2871,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2872,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2889,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2895,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2895,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2901,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2896,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2914,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2877,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2901,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2889,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2877,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2890,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2901,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2913,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2878,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2883,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2883,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2884,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2889,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2902,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2907,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2907,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2908,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2913,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 66
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2917
      start: 2840
    functionDepth: 0
    functionLinenumber: 2840
    functionLinenumberEnd: 2917
    functionName: doLOGICALArabicDeShapingTest
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - u_shapeArabic
    - log_err
    - memcmp
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void doLOGICALArabicDeShapingTest(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_setClassCallback
      Src: /src/icu/source/test/cintltst/cbiditst.c:4586,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4587,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4605,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:4604,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:4607,1
    - Dst: ubidi_setClassCallback
      Src: /src/icu/source/test/cintltst/cbiditst.c:4596,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:4612,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4613,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:4619,1
    - Dst: ubidi_getClassCallback
      Src: /src/icu/source/test/cintltst/cbiditst.c:4583,1
    - Dst: verifyCallbackParams
      Src: /src/icu/source/test/cintltst/cbiditst.c:4584,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:4588,1
    - Dst: verifyCallbackParams
      Src: /src/icu/source/test/cintltst/cbiditst.c:4594,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4609,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:4621,1
    - Dst: getBiDiObject
      Src: /src/icu/source/test/cintltst/cbiditst.c:4578,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4597,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:4611,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:4622,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:4573,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:4576,1
    - Dst: verifyCallbackParams
      Src: /src/icu/source/test/cintltst/cbiditst.c:4591,1
    - Dst: ubidi_getClassCallback
      Src: /src/icu/source/test/cintltst/cbiditst.c:4593,1
    - Dst: verifyCallbackParams
      Src: /src/icu/source/test/cintltst/cbiditst.c:4601,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:4603,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:4598,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4623
      start: 4562
    functionDepth: 0
    functionLinenumber: 4562
    functionLinenumberEnd: 4623
    functionName: testClassOverride
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_close
    - verifyCallbackParams
    - ubidi_getClassCallback
    - uprv_strlen
    - assertSuccessful
    - u_unescape
    - aescstrdup
    - uprv_strcmp
    - log_verbose
    - log_err
    - ubidi_writeReordered
    - ubidi_setPara
    - getBiDiObject
    - ubidi_setClassCallback
    linkageType: ''
    returnType: void
    signature: 'static void testClassOverride(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_open
      Src: /src/icu/source/test/cintltst/cbiditst.c:4935,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:4936,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4938,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:4938,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:4937,1
    - Dst: ubidi_getLevelAt
      Src: /src/icu/source/test/cintltst/cbiditst.c:4940,1
    - Dst: ubidi_getLevelAt
      Src: /src/icu/source/test/cintltst/cbiditst.c:4941,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4943,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4946,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:4949,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4950
      start: 4930
    functionDepth: 0
    functionLinenumber: 4930
    functionLinenumberEnd: 4950
    functionName: TestExplicitLevel0
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_close
    - ubidi_open
    - U_FAILURE
    - ubidi_getLevelAt
    - log_err
    - u_errorName
    - ubidi_setPara
    linkageType: ''
    returnType: void
    signature: 'static void TestExplicitLevel0(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:160,1
    - Dst: u_charDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:164,1
    - Dst: initCharFromDirProps
      Src: /src/icu/source/test/cintltst/cbiditst.c:161,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:165,1
    - Dst: u_charDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:166,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 170
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 170
    functionName: testCharFromDirProp
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - initCharFromDirProps
    - u_charDirection
    - log_verbose
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void testCharFromDirProp(void) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:1714,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1715,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:1721,1
    - Dst: ubidi_open
      Src: /src/icu/source/test/cintltst/cbiditst.c:1736,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1740,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiditst.c:1729,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1747,1
    - Dst: ubidi_openSized
      Src: /src/icu/source/test/cintltst/cbiditst.c:1751,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiditst.c:1752,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1759,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:1770,1
    - Dst: ubidi_getDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:1786,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1787,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1791,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1798,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1775,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1793,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1712,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1726,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1728,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiditst.c:1739,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1744,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:1750,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1758,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiditst.c:1767,1
    - Dst: ubidi_setReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:1777,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:1796,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1779,1
    - Dst: ubidi_getReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:1774,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1768,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1785,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1722,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1743,1
    - Dst: ubidi_setLine
      Src: /src/icu/source/test/cintltst/cbiditst.c:1738,1
    - Dst: ubidi_getLevelAt
      Src: /src/icu/source/test/cintltst/cbiditst.c:1745,1
    - Dst: ubidi_openSized
      Src: /src/icu/source/test/cintltst/cbiditst.c:1756,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1761,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1764,1
    - Dst: ubidi_countRuns
      Src: /src/icu/source/test/cintltst/cbiditst.c:1766,1
    - Dst: ubidi_open
      Src: /src/icu/source/test/cintltst/cbiditst.c:1771,1
    - Dst: ubidi_setReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:1773,1
    - Dst: ubidi_getReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:1778,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1790,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiditst.c:1792,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1718,1
    - Dst: ubidi_writeReverse
      Src: /src/icu/source/test/cintltst/cbiditst.c:1717,1
    - Dst: ubidi_open
      Src: /src/icu/source/test/cintltst/cbiditst.c:1725,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1734,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1730,1
    - Dst: ubidi_writeReverse
      Src: /src/icu/source/test/cintltst/cbiditst.c:1733,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1753,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:1755,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiditst.c:1760,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1765,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1784,1
    - Dst: ubidi_getReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:1772,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:1795,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 111
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1799
      start: 1702
    functionDepth: 0
    functionLinenumber: 1702
    functionLinenumberEnd: 1799
    functionName: testFailureRecovery
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_close
    - u_unescape
    - ubidi_writeReverse
    - ubidi_open
    - ubidi_getLevelAt
    - ubidi_countRuns
    - ubidi_getDirection
    - U_SUCCESS
    - ubidi_setLine
    - ubidi_getReorderingMode
    - log_verbose
    - log_err
    - ubidi_writeReordered
    - ubidi_openSized
    - ubidi_setReorderingMode
    - ubidi_setPara
    linkageType: ''
    returnType: void
    signature: 'static void testFailureRecovery(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_open
      Src: /src/icu/source/test/cintltst/cbiditst.c:2390,1
    - Dst: ubidi_setReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:2398,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:2400,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2393,1
    - Dst: ubidi_setReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:2399,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2400,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:2401,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2402,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2408,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2409,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2411,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:2412,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:2414,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:2411,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2415
      start: 2388
    functionDepth: 0
    functionLinenumber: 2388
    functionLinenumberEnd: 2415
    functionName: _testManyAddedPoints
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_close
    - ubidi_open
    - ubidi_setReorderingOptions
    - log_err
    - ubidi_writeReordered
    - memcmp
    - UPRV_LENGTHOF
    - ubidi_setReorderingMode
    - aescstrdup
    - ubidi_setPara
    linkageType: ''
    returnType: void
    signature: 'static void _testManyAddedPoints(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3082,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3082,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3087,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3083,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3087,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3104,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3109,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3105,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3099,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3104,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3153,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3142,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3087,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3088,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3093,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3093,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3094,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3098,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3109,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3115,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3115,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3116,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3127,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3159,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3143,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3153,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3154,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3148,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3137,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3159,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3098,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3109,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3120,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3126,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3131,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3142,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3153,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3164,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3164,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3098,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3110,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3120,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3120,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3131,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3132,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3137,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3138,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3142,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3149,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3160,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3164,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3165,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3121,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3131,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3126,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3148,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 137
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3167
      start: 3039
    functionDepth: 0
    functionLinenumber: 3039
    functionLinenumberEnd: 3167
    functionName: doArabicShapingTestForBug8703
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - u_shapeArabic
    - log_err
    - memcmp
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void doArabicShapingTestForBug8703(void) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3351,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3347,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3355,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3409,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3422,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3426,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3430,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3434,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3450,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3454,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3464,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3476,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3458,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3364,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3368,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3369,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3386,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3377,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3393,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3446,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3459,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3472,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3343,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3348,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3356,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3404,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3408,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3412,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3416,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3417,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3427,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3435,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3469,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3451,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3477,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3372,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3376,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3389,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3385,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3381,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3394,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3468,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 190
    argCount: 1
    argNames:
    - in
    argTypes:
    - UChar*
    constantsTouched: []
    func_position:
      end: 3480
      start: 3330
    functionDepth: 0
    functionLinenumber: 3330
    functionLinenumberEnd: 3480
    functionName: _testPresentationForms
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - u_shapeArabic
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void _testPresentationForms(const UChar* in) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initCharFromDirProps
      Src: /src/icu/source/test/cintltst/cbiditst.c:3591,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - dirProps
    - length
    - buffer
    argTypes:
    - uint8_t*
    - int32_t
    - UChar*
    constantsTouched: []
    func_position:
      end: 3599
      start: 3587
    functionDepth: 0
    functionLinenumber: 3587
    functionLinenumberEnd: 3599
    functionName: getStringFromDirProps
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - initCharFromDirProps
    linkageType: ''
    returnType: UChar*
    signature: 'static UChar *getStringFromDirProps(const uint8_t *dirProps, int32_t
      length, UChar *buffer) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:177,1
    - Dst: ubidi_openSized
      Src: /src/icu/source/test/cintltst/cbiditst.c:179,1
    - Dst: doTests
      Src: /src/icu/source/test/cintltst/cbiditst.c:183,1
    - Dst: doTests
      Src: /src/icu/source/test/cintltst/cbiditst.c:184,1
    - Dst: ubidi_open
      Src: /src/icu/source/test/cintltst/cbiditst.c:181,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:186,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:189,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:189,1
    - Dst: doMisc
      Src: /src/icu/source/test/cintltst/cbiditst.c:191,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:194,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:197,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:200,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 201
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 201
    functionName: testBidi
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_close
    - doTests
    - ubidi_open
    - myErrorName
    - log_verbose
    - log_err
    - doMisc
    - ubidi_openSized
    linkageType: ''
    returnType: void
    signature: 'static void testBidi(void) '
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1925,1
    - Dst: ubidi_getParagraph
      Src: /src/icu/source/test/cintltst/cbiditst.c:2015,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:2128,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1906,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:1947,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:2057,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2062,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:2103,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:2112,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1993,1
    - Dst: ubidi_getParagraphByIndex
      Src: /src/icu/source/test/cintltst/cbiditst.c:1873,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1884,1
    - Dst: ubidi_getParaLevel
      Src: /src/icu/source/test/cintltst/cbiditst.c:1926,1
    - Dst: ubidi_open
      Src: /src/icu/source/test/cintltst/cbiditst.c:1933,1
    - Dst: ubidi_isOrderParagraphsLTR
      Src: /src/icu/source/test/cintltst/cbiditst.c:1991,1
    - Dst: ubidi_getLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:2085,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:2110,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2114,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:2125,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:2143,1
    - Dst: ubidi_setReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:2101,1
    - Dst: ubidi_getLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:2150,1
    - Dst: ubidi_getLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:1978,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:1981,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:1863,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:1972,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:1980,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:2105,1
    - Dst: ubidi_setReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:2121,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2151,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2107,1
    - Dst: ubidi_getParaLevel
      Src: /src/icu/source/test/cintltst/cbiditst.c:1914,1
    - Dst: ubidi_getLength
      Src: /src/icu/source/test/cintltst/cbiditst.c:2017,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:2001,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1955,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2024,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:2037,1
    - Dst: ubidi_getLevelAt
      Src: /src/icu/source/test/cintltst/cbiditst.c:2045,1
    - Dst: ubidi_orderParagraphsLTR
      Src: /src/icu/source/test/cintltst/cbiditst.c:2077,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2127,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:2136,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1954,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1916,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1946,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2006,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:2104,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:2128,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:2147,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2022,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1998,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1860,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:1858,1
    - Dst: ubidi_countParagraphs
      Src: /src/icu/source/test/cintltst/cbiditst.c:1889,1
    - Dst: ubidi_setLine
      Src: /src/icu/source/test/cintltst/cbiditst.c:1936,1
    - Dst: ubidi_orderParagraphsLTR
      Src: /src/icu/source/test/cintltst/cbiditst.c:2036,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2061,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:2113,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:2123,1
    - Dst: ubidi_orderParagraphsLTR
      Src: /src/icu/source/test/cintltst/cbiditst.c:1995,1
    - Dst: ubidi_getParagraph
      Src: /src/icu/source/test/cintltst/cbiditst.c:1977,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1862,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1896,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1971,1
    - Dst: ubidi_getLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:2038,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:2056,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:2108,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:2111,1
    - Dst: ubidi_open
      Src: /src/icu/source/test/cintltst/cbiditst.c:2141,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1883,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1890,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1902,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1910,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1928,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:1957,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1951,1
    - Dst: ubidi_isOrderParagraphsLTR
      Src: /src/icu/source/test/cintltst/cbiditst.c:1996,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1945,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:2108,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2145,1
    - Dst: ubidi_getParagraphByIndex
      Src: /src/icu/source/test/cintltst/cbiditst.c:1894,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1987,1
    - Dst: ubidi_getLength
      Src: /src/icu/source/test/cintltst/cbiditst.c:1985,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:2034,1
    - Dst: ubidi_orderParagraphsLTR
      Src: /src/icu/source/test/cintltst/cbiditst.c:2058,1
    - Dst: ubidi_countParagraphs
      Src: /src/icu/source/test/cintltst/cbiditst.c:2130,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2132,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:2135,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:2153,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2156,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:1939,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:1857,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1980,1
    - Dst: ubidi_getLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:2003,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1970,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2026,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:2116,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:2124,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1979,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2019,1
    - Dst: ubidi_countParagraphs
      Src: /src/icu/source/test/cintltst/cbiditst.c:1868,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:1886,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:1974,1
    - Dst: ubidi_setLine
      Src: /src/icu/source/test/cintltst/cbiditst.c:2014,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:2035,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:2043,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2067,1
    - Dst: u_memset
      Src: /src/icu/source/test/cintltst/cbiditst.c:2075,1
    - Dst: ubidi_open
      Src: /src/icu/source/test/cintltst/cbiditst.c:1851,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:1864,1
    - Dst: ubidi_getParagraph
      Src: /src/icu/source/test/cintltst/cbiditst.c:1904,1
    - Dst: ubidi_getLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:2016,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:1973,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2046,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:2084,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:2102,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2146,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:2163,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:1859,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:1861,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1869,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:1882,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiditst.c:1937,1
    - Dst: ubidi_setLine
      Src: /src/icu/source/test/cintltst/cbiditst.c:1944,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:1956,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:1955,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2088,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2152,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1938,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:1982,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:1885,1
    - Dst: ubidi_getLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:1953,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1962,1
    - Dst: ubidi_getLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:2060,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:2062,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2115,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:2122,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2126,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2137,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:1875,1
    - Dst: ubidi_setLine
      Src: /src/icu/source/test/cintltst/cbiditst.c:1969,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:2059,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2106,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:2116,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2158,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2143,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 329
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2165
      start: 1801
    functionDepth: 0
    functionLinenumber: 1801
    functionLinenumberEnd: 2165
    functionName: testMultipleParagraphs
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_getLevelAt
    - ubidi_setLine
    - U_SUCCESS
    - ubidi_getParagraph
    - u_errorName
    - aescstrdup
    - ubidi_getParagraphByIndex
    - U_FAILURE
    - ubidi_getLevels
    - ubidi_getLength
    - ubidi_orderParagraphsLTR
    - u_strlen
    - log_verbose
    - ubidi_countParagraphs
    - memcmp
    - UPRV_LENGTHOF
    - ubidi_setReorderingMode
    - ubidi_getParaLevel
    - ubidi_isOrderParagraphsLTR
    - u_unescape
    - u_memset
    - log_err
    - ubidi_setPara
    - ubidi_close
    - ubidi_open
    - ubidi_writeReordered
    linkageType: ''
    returnType: void
    signature: 'static void testMultipleParagraphs(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_open
      Src: /src/icu/source/test/cintltst/cbiditst.c:2419,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:2424,1
    - Dst: ubidi_setInverse
      Src: /src/icu/source/test/cintltst/cbiditst.c:2422,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2424,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:2425,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:2428,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2429,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2430,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:2432,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2432,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditst.c:2433,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:2435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2436
      start: 2417
    functionDepth: 0
    functionLinenumber: 2417
    functionLinenumberEnd: 2436
    functionName: _testMisc
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_close
    - u_unescape
    - ubidi_open
    - log_err
    - ubidi_writeReordered
    - memcmp
    - UPRV_LENGTHOF
    - aescstrdup
    - ubidi_setPara
    - ubidi_setInverse
    linkageType: ''
    returnType: void
    signature: 'static void _testMisc(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3264,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3265,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3269,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3264,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3269,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3286,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3287,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3281,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3286,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3291,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3309,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3325,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3319,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3308,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3270,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3275,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3275,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3276,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3280,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3291,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3292,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3297,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3297,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3298,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3313,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3302,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3280,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3291,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3302,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3313,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3320,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3324,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3303,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3313,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:3308,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3319,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3269,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3280,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3302,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3314,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3324,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:3324,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 103
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3328
      start: 3169
    functionDepth: 0
    functionLinenumber: 3169
    functionLinenumberEnd: 3328
    functionName: doArabicShapingTestForBug9024
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - u_shapeArabic
    - log_err
    - memcmp
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void doArabicShapingTestForBug9024(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:3563,1
    - Dst: _testPresentationForms
      Src: /src/icu/source/test/cintltst/cbiditst.c:3564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3566
      start: 3482
    functionDepth: 0
    functionLinenumber: 3482
    functionLinenumberEnd: 3566
    functionName: doArabicShapingTestForNewCharacters
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - _testPresentationForms
    linkageType: ''
    returnType: void
    signature: 'static void doArabicShapingTestForNewCharacters(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:4537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - context
    - c
    argTypes:
    - void*
    - UChar32
    constantsTouched: []
    func_position:
      end: 4542
      start: 4513
    functionDepth: 0
    functionLinenumber: 4513
    functionLinenumberEnd: 4542
    functionName: overrideBidiClass
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: U_CALLCONV
    signature: 'U_CALLCONV overrideBidiClass(const void *context, UChar32 c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 124
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 356
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 356
    functionName: buildPseudoTables
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void buildPseudoTables(void) /* The rules for pseudo-Bidi are
      as follows: - [ == LRE - ] == RLE - { == LRO - } == RLO - ^ == PDF - @ == LRM
      - & == RLM - A-F == Arabic Letters 0631-0636 - G-V == Hebrew letters 05d7-05e6
      - W-Z == Unassigned RTL 08d0-08d3 Unicode 6.1 changes U+08A0..U+08FF from R
      to AL which works ok. Unicode 11 adds U+08D3 ARABIC SMALL LOW WAW which has
      bc=NSM so we stop using Z in this test. - 0-5 == western digits 0030-0035 -
      6-9 == Arabic-Indic digits 0666-0669 - ` == Combining Grave Accent 0300 (NSM)
      - ~ == Delete 007f (BN) - | == Paragraph Separator 2029 (B) - _ == Info Separator
      1 001f (S) All other characters represent themselves as Latin-1, with the corresponding
      Bidi properties.*/ '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u_getUnicodeVersion
      Src: /src/icu/source/test/cintltst/cbiditst.c:3579,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:3580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3584
      start: 3570
    functionDepth: 0
    functionLinenumber: 3570
    functionLinenumberEnd: 3584
    functionName: initCharFromDirProps
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - u_getUnicodeVersion
    - memcmp
    linkageType: ''
    returnType: void
    signature: 'static void initCharFromDirProps(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_open
      Src: /src/icu/source/test/cintltst/cbiditst.c:4919,1
    - Dst: pseudoToU16
      Src: /src/icu/source/test/cintltst/cbiditst.c:4921,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:4923,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:4922,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:4920,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4924,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:4924,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:4927,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4928
      start: 4911
    functionDepth: 0
    functionLinenumber: 4911
    functionLinenumberEnd: 4928
    functionName: testBracketOverflow
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - pseudoToU16
    - ubidi_close
    - ubidi_open
    - U_FAILURE
    - uprv_strlen
    - log_err
    - u_errorName
    - ubidi_setPara
    linkageType: ''
    returnType: void
    signature: 'static void testBracketOverflow(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getStringFromDirProps
      Src: /src/icu/source/test/cintltst/cbiditst.c:213,1
    - Dst: ubidi_getDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:218,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:217,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:215,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiditst.c:216,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:221,1
    - Dst: ubidi_setLine
      Src: /src/icu/source/test/cintltst/cbiditst.c:223,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cbiditst.c:224,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:225,1
    - Dst: ubidi_getDirection
      Src: /src/icu/source/test/cintltst/cbiditst.c:226,1
    - Dst: ubidi_getParaLevel
      Src: /src/icu/source/test/cintltst/cbiditst.c:226,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cbiditst.c:227,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:230,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:234,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:235,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:229,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - pBiDi
    - pLine
    - countRunsFirst
    argTypes:
    - UBiDi*
    - UBiDi*
    - UBool
    constantsTouched: []
    func_position:
      end: 238
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 238
    functionName: doTests
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - getStringFromDirProps
    - ubidi_getDirection
    - U_SUCCESS
    - doTest
    - ubidi_setLine
    - myErrorName
    - log_verbose
    - log_err
    - ubidi_getParaLevel
    - ubidi_setPara
    linkageType: ''
    returnType: void
    signature: 'static void doTests(UBiDi *pBiDi, UBiDi *pLine, UBool countRunsFirst) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_getLogicalRun
      Src: /src/icu/source/test/cintltst/cbiditst.c:512,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:516,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - bidi
    - i
    - c1
    - c2
    argTypes:
    - UBiDi*
    - int32_t
    - char
    - char
    constantsTouched: []
    func_position:
      end: 523
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 523
    functionName: matchingPair
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - strlen
    - ubidi_getLogicalRun
    linkageType: ''
    returnType: UBool
    signature: 'static UBool matchingPair(UBiDi *bidi, int32_t i, char c1, char c2) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2488,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2495,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2504,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2525,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2564,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2535,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:2559,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2528,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2524,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2518,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2573,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2474,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2478,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2631,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2591,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:2548,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2583,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2484,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2498,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2508,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2514,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2515,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2559,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2587,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2548,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2596,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2474,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2498,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2600,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2479,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2508,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2553,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2557,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:2578,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2544,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2582,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2538,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2489,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2508,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2519,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2529,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2538,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2591,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2609,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2564,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2558,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2547,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2548,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:2569,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2509,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2539,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2609,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2538,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2478,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2485,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2494,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2498,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2524,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2534,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2553,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:2596,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2627,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2628,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2475,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2582,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2578,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:2623,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:2633,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2627,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2488,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2494,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2505,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2514,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2518,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2528,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:2614,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2618,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:2605,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2631,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2478,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:2488,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2518,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2528,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:2587,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2601,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2605,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2632,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2633,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2504,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2534,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2499,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2600,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2610,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2614,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2618,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2619,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2569,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2543,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2565,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2574,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2623,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 222
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2635
      start: 2440
    functionDepth: 0
    functionLinenumber: 2440
    functionLinenumberEnd: 2635
    functionName: doArabicShapingTest
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - u_shapeArabic
    - u_strlen
    - log_err
    - memcmp
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void doArabicShapingTest(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_open
      Src: /src/icu/source/test/cintltst/cbiditst.c:3651,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:3653,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3656
      start: 3649
    functionDepth: 0
    functionLinenumber: 3649
    functionLinenumberEnd: 3656
    functionName: getBiDiObject
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_open
    - log_err
    linkageType: ''
    returnType: UBiDi*
    signature: 'static UBiDi *getBiDiObject(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:4128,1
    - Dst: ubidi_getResultLength
      Src: /src/icu/source/test/cintltst/cbiditst.c:4131,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4133,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:4129,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 7
    argNames:
    - pBiDi
    - srcChars
    - destChars
    - destLen
    - mode
    - option
    - level
    argTypes:
    - UBiDi*
    - char*
    - char*
    - int32_t
    - char*
    - char*
    - UBiDiLevel
    constantsTouched: []
    func_position:
      end: 4142
      start: 4123
    functionDepth: 0
    functionLinenumber: 4123
    functionLinenumberEnd: 4142
    functionName: checkResultLength
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_getResultLength
    - strlen
    - strcmp
    - log_err
    linkageType: ''
    returnType: UBool
    signature: 'static UBool checkResultLength(UBiDi *pBiDi, const char *srcChars,
      const char *destChars, int32_t destLen, const char* mode, const char* option,
      UBiDiLevel level) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - map
    - len
    - buffer
    argTypes:
    - int32_t*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 4641
      start: 4625
    functionDepth: 0
    functionLinenumber: 4625
    functionLinenumberEnd: 4641
    functionName: formatMap
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static char * formatMap(const int32_t * map, int len, char * buffer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4783,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cbiditst.c:4783,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - message
    - rc
    argTypes:
    - char*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 4787
      start: 4780
    functionDepth: 0
    functionLinenumber: 4780
    functionLinenumberEnd: 4787
    functionName: assertIllegalArgument
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - myErrorName
    - log_err
    linkageType: ''
    returnType: UBool
    signature: 'static UBool assertIllegalArgument(const char* message, UErrorCode*
      rc) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_setContext
      Src: /src/icu/source/test/cintltst/cbiditst.c:4858,1
    - Dst: ubidi_setContext
      Src: /src/icu/source/test/cintltst/cbiditst.c:4874,1
    - Dst: assertIllegalArgument
      Src: /src/icu/source/test/cintltst/cbiditst.c:4859,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4875,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:4869,1
    - Dst: ubidi_setContext
      Src: /src/icu/source/test/cintltst/cbiditst.c:4876,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4877,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:4882,1
    - Dst: formatLevels
      Src: /src/icu/source/test/cintltst/cbiditst.c:4895,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4883,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:4885,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4887,1
    - Dst: ubidi_getReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:4896,1
    - Dst: ubidi_getReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:4898,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:4903,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:4905,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:4907,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:4838,1
    - Dst: ubidi_setContext
      Src: /src/icu/source/test/cintltst/cbiditst.c:4850,1
    - Dst: assertIllegalArgument
      Src: /src/icu/source/test/cintltst/cbiditst.c:4851,1
    - Dst: ubidi_setContext
      Src: /src/icu/source/test/cintltst/cbiditst.c:4854,1
    - Dst: assertIllegalArgument
      Src: /src/icu/source/test/cintltst/cbiditst.c:4855,1
    - Dst: pseudoToU16
      Src: /src/icu/source/test/cintltst/cbiditst.c:4868,1
    - Dst: assertIllegalArgument
      Src: /src/icu/source/test/cintltst/cbiditst.c:4863,1
    - Dst: ubidi_setContext
      Src: /src/icu/source/test/cintltst/cbiditst.c:4862,1
    - Dst: pseudoToU16
      Src: /src/icu/source/test/cintltst/cbiditst.c:4879,1
    - Dst: ubidi_getParaLevel
      Src: /src/icu/source/test/cintltst/cbiditst.c:4897,1
    - Dst: assertIllegalArgument
      Src: /src/icu/source/test/cintltst/cbiditst.c:4843,1
    - Dst: ubidi_setContext
      Src: /src/icu/source/test/cintltst/cbiditst.c:4842,1
    - Dst: ubidi_orderParagraphsLTR
      Src: /src/icu/source/test/cintltst/cbiditst.c:4846,1
    - Dst: getBiDiObject
      Src: /src/icu/source/test/cintltst/cbiditst.c:4845,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:4867,1
    - Dst: pseudoToU16
      Src: /src/icu/source/test/cintltst/cbiditst.c:4870,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:4878,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:4880,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4881,1
    - Dst: u16ToPseudo
      Src: /src/icu/source/test/cintltst/cbiditst.c:4884,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 65
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4908
      start: 4827
    functionDepth: 0
    functionLinenumber: 4827
    functionLinenumberEnd: 4908
    functionName: testContext
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - pseudoToU16
    - ubidi_close
    - formatLevels
    - assertSuccessful
    - ubidi_setPara
    - ubidi_orderParagraphsLTR
    - ubidi_setContext
    - ubidi_getReorderingMode
    - uprv_strcmp
    - log_verbose
    - log_err
    - ubidi_writeReordered
    - strlen
    - ubidi_getReorderingOptions
    - ubidi_getParaLevel
    - assertIllegalArgument
    - getBiDiObject
    - u16ToPseudo
    linkageType: ''
    returnType: void
    signature: 'static void testContext(void) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:537,1
    - Dst: ubidi_getVisualIndex
      Src: /src/icu/source/test/cintltst/cbiditst.c:550,1
    - Dst: printCaseInfo
      Src: /src/icu/source/test/cintltst/cbiditst.c:589,1
    - Dst: printCaseInfo
      Src: /src/icu/source/test/cintltst/cbiditst.c:620,1
    - Dst: ubidi_getLogicalIndex
      Src: /src/icu/source/test/cintltst/cbiditst.c:631,1
    - Dst: printCaseInfo
      Src: /src/icu/source/test/cintltst/cbiditst.c:637,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:614,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:641,1
    - Dst: ubidi_getProcessedLength
      Src: /src/icu/source/test/cintltst/cbiditst.c:544,1
    - Dst: ubidi_getLogicalMap
      Src: /src/icu/source/test/cintltst/cbiditst.c:536,1
    - Dst: ubidi_getResultLength
      Src: /src/icu/source/test/cintltst/cbiditst.c:545,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:578,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:581,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:566,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:583,1
    - Dst: fputs
      Src: /src/icu/source/test/cintltst/cbiditst.c:580,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:575,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:576,1
    - Dst: fputs
      Src: /src/icu/source/test/cintltst/cbiditst.c:642,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:538,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/cbiditst.c:546,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/cbiditst.c:547,1
    - Dst: matchingPair
      Src: /src/icu/source/test/cintltst/cbiditst.c:561,1
    - Dst: printCaseInfo
      Src: /src/icu/source/test/cintltst/cbiditst.c:572,1
    - Dst: ubidi_getVisualIndex
      Src: /src/icu/source/test/cintltst/cbiditst.c:583,1
    - Dst: ubidi_getLogicalIndex
      Src: /src/icu/source/test/cintltst/cbiditst.c:598,1
    - Dst: matchingPair
      Src: /src/icu/source/test/cintltst/cbiditst.c:609,1
    - Dst: fputs
      Src: /src/icu/source/test/cintltst/cbiditst.c:633,1
    - Dst: ubidi_getVisualMap
      Src: /src/icu/source/test/cintltst/cbiditst.c:535,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:567,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:592,1
    - Dst: fputs
      Src: /src/icu/source/test/cintltst/cbiditst.c:593,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:615,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:623,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:624,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:626,1
    - Dst: fputs
      Src: /src/icu/source/test/cintltst/cbiditst.c:628,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:629,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:640,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:631,1
    - Dst: fputs
      Src: /src/icu/source/test/cintltst/cbiditst.c:585,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:593,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 109
    argCount: 3
    argNames:
    - bidi
    - srcChars
    - dstChars
    argTypes:
    - UBiDi*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 645
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 645
    functionName: checkWhatYouCan
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_getLogicalMap
    - ubidi_getProcessedLength
    - printCaseInfo
    - ubidi_getVisualMap
    - matchingPair
    - U_FAILURE
    - memset
    - ubidi_getLogicalIndex
    - log_err
    - fputs
    - ubidi_getResultLength
    - ubidi_getVisualIndex
    linkageType: ''
    returnType: UBool
    signature: 'static UBool checkWhatYouCan(UBiDi *bidi, const char *srcChars, const
      char *dstChars) /* srcChars and dstChars are char arrays encoded as pseudo Bidi
      */ '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2252,1
    - Dst: _testInverseBidi
      Src: /src/icu/source/test/cintltst/cbiditst.c:2266,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:2265,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - pBiDi
    - direction
    argTypes:
    - UBiDi*
    - UBiDiLevel
    constantsTouched: []
    func_position:
      end: 2270
      start: 2246
    functionDepth: 0
    functionLinenumber: 2246
    functionLinenumberEnd: 2270
    functionName: _testManyInverseBidi
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - _testInverseBidi
    - log_verbose
    linkageType: ''
    returnType: void
    signature: 'static void _testManyInverseBidi(UBiDi *pBiDi, UBiDiLevel direction) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2697,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2721,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2733,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2741,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2742,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2747,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2754,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2760,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2765,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2765,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2766,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2772,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2777,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2753,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2698,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2703,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2703,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2704,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2709,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2722,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2727,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2727,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2728,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2733,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2734,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2783,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2759,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2771,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2784,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2778,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2747,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2691,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2697,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2692,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2691,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2715,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2715,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2721,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2716,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2710,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2709,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:2748,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2759,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2753,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2777,1
    - Dst: u_shapeArabic
      Src: /src/icu/source/test/cintltst/cbiditst.c:2741,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2697,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2709,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2721,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2747,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:2759,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:2771,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2783,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cbiditst.c:2771,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 131
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2786
      start: 2637
    functionDepth: 0
    functionLinenumber: 2637
    functionLinenumberEnd: 2786
    functionName: doLamAlefSpecialVLTRArabicShapingTest
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - u_shapeArabic
    - log_err
    - memcmp
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void doLamAlefSpecialVLTRArabicShapingTest(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_setReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:4074,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4081,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:4079,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:4076,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4077,1
    - Dst: u16ToPseudo
      Src: /src/icu/source/test/cintltst/cbiditst.c:4083,1
    - Dst: u16ToPseudo
      Src: /src/icu/source/test/cintltst/cbiditst.c:4084,1
    - Dst: checkWhatYouCan
      Src: /src/icu/source/test/cintltst/cbiditst.c:4085,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:4086,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4088,1
    - Dst: checkMaps
      Src: /src/icu/source/test/cintltst/cbiditst.c:4115,1
    - Dst: checkResultLength
      Src: /src/icu/source/test/cintltst/cbiditst.c:4111,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:4099,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 10
    argNames:
    - pBiDi
    - tc
    - outIndex
    - srcChars
    - destChars
    - dest
    - destLen
    - mode
    - option
    - level
    argTypes:
    - UBiDi*
    - int32_t
    - int32_t
    - char*
    - char*
    - UChar*
    - int32_t
    - int
    - int
    - UBiDiLevel
    constantsTouched: []
    func_position:
      end: 4121
      start: 3946
    functionDepth: 0
    functionLinenumber: 3946
    functionLinenumberEnd: 4121
    functionName: assertRoundTrip
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - checkMaps
    - checkResultLength
    - assertSuccessful
    - ubidi_setReorderingOptions
    - strcmp
    - checkWhatYouCan
    - log_verbose
    - log_err
    - ubidi_writeReordered
    - ubidi_setPara
    - u16ToPseudo
    linkageType: ''
    returnType: UBool
    signature: 'static UBool assertRoundTrip(UBiDi *pBiDi, int32_t tc, int32_t outIndex,
      const char *srcChars, const char *destChars, const UChar *dest, int32_t destLen,
      int mode, int option, UBiDiLevel level) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4216,1
    - Dst: assertStringsEqual
      Src: /src/icu/source/test/cintltst/cbiditst.c:4222,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:4215,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4219,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:4230,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4231,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4234,1
    - Dst: u16ToPseudo
      Src: /src/icu/source/test/cintltst/cbiditst.c:4235,1
    - Dst: ubidi_countParagraphs
      Src: /src/icu/source/test/cintltst/cbiditst.c:4255,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4257,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:4196,1
    - Dst: getBiDiObject
      Src: /src/icu/source/test/cintltst/cbiditst.c:4189,1
    - Dst: ubidi_setReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:4202,1
    - Dst: ubidi_setReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:4206,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:4208,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cbiditst.c:4209,1
    - Dst: pseudoToU16
      Src: /src/icu/source/test/cintltst/cbiditst.c:4210,1
    - Dst: checkWhatYouCan
      Src: /src/icu/source/test/cintltst/cbiditst.c:4221,1
    - Dst: checkWhatYouCan
      Src: /src/icu/source/test/cintltst/cbiditst.c:4236,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4254,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:4260,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:4199,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:4212,1
    - Dst: u16ToPseudo
      Src: /src/icu/source/test/cintltst/cbiditst.c:4220,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:4240,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:4253,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:4263,1
    - Dst: getBiDiObject
      Src: /src/icu/source/test/cintltst/cbiditst.c:4188,1
    - Dst: ubidi_setReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:4203,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:4218,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditst.c:4233,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:4237,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4238,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4241,1
    - Dst: u16ToPseudo
      Src: /src/icu/source/test/cintltst/cbiditst.c:4242,1
    - Dst: checkWhatYouCan
      Src: /src/icu/source/test/cintltst/cbiditst.c:4243,1
    - Dst: assertStringsEqual
      Src: /src/icu/source/test/cintltst/cbiditst.c:4244,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:4261,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 69
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4264
      start: 4144
    functionDepth: 0
    functionLinenumber: 4144
    functionLinenumberEnd: 4264
    functionName: testReorderRunsOnly
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_close
    - pseudoToU16
    - assertStringsEqual
    - assertSuccessful
    - ubidi_setReorderingOptions
    - ubidi_setPara
    - checkWhatYouCan
    - log_verbose
    - log_err
    - ubidi_writeReordered
    - ubidi_countParagraphs
    - UPRV_LENGTHOF
    - ubidi_setReorderingMode
    - strlen
    - getBiDiObject
    - u16ToPseudo
    linkageType: ''
    returnType: void
    signature: 'static void testReorderRunsOnly(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getBiDiObject
      Src: /src/icu/source/test/cintltst/cbiditst.c:4453,1
    - Dst: ubidi_orderParagraphsLTR
      Src: /src/icu/source/test/cintltst/cbiditst.c:4455,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditst.c:4472,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4473,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4494,1
    - Dst: ubidi_setReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:4479,1
    - Dst: ubidi_setReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:4483,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:4447,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditst.c:4459,1
    - Dst: ubidi_getProcessedLength
      Src: /src/icu/source/test/cintltst/cbiditst.c:4477,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/cbiditst.c:4488,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cbiditst.c:4447,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditst.c:4504,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:4451,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:4464,1
    - Dst: ubidi_setReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:4468,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:4508,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cbiditst.c:4506,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 4509
      start: 4407
    functionDepth: 0
    functionLinenumber: 4407
    functionLinenumberEnd: 4509
    functionName: testStreaming
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - sprintf
    - ubidi_close
    - ubidi_getProcessedLength
    - u_unescape
    - assertSuccessful
    - ubidi_setReorderingOptions
    - ubidi_orderParagraphsLTR
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - ubidi_setPara
    - getBiDiObject
    linkageType: ''
    returnType: void
    signature: 'static void testStreaming(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_getLogicalMap
      Src: /src/icu/source/test/cintltst/cbiditst.c:4663,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4664,1
    - Dst: formatMap
      Src: /src/icu/source/test/cintltst/cbiditst.c:4683,1
    - Dst: ubidi_getParaLevel
      Src: /src/icu/source/test/cintltst/cbiditst.c:4685,1
    - Dst: ubidi_getResultLength
      Src: /src/icu/source/test/cintltst/cbiditst.c:4692,1
    - Dst: formatMap
      Src: /src/icu/source/test/cintltst/cbiditst.c:4711,1
    - Dst: ubidi_getVisualIndex
      Src: /src/icu/source/test/cintltst/cbiditst.c:4720,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4721,1
    - Dst: formatMap
      Src: /src/icu/source/test/cintltst/cbiditst.c:4739,1
    - Dst: ubidi_getParaLevel
      Src: /src/icu/source/test/cintltst/cbiditst.c:4741,1
    - Dst: ubidi_getProcessedLength
      Src: /src/icu/source/test/cintltst/cbiditst.c:4667,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4671,1
    - Dst: ubidi_getReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:4686,1
    - Dst: formatMap
      Src: /src/icu/source/test/cintltst/cbiditst.c:4710,1
    - Dst: ubidi_getParaLevel
      Src: /src/icu/source/test/cintltst/cbiditst.c:4712,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4727,1
    - Dst: ubidi_getReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:4742,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:4753,1
    - Dst: ubidi_getReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:4772,1
    - Dst: ubidi_getReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:4771,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:4668,1
    - Dst: ubidi_getReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:4687,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4698,1
    - Dst: ubidi_getReorderingMode
      Src: /src/icu/source/test/cintltst/cbiditst.c:4713,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:4724,1
    - Dst: ubidi_getReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:4743,1
    - Dst: formatMap
      Src: /src/icu/source/test/cintltst/cbiditst.c:4769,1
    - Dst: formatMap
      Src: /src/icu/source/test/cintltst/cbiditst.c:4684,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cbiditst.c:4695,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4694,1
    - Dst: ubidi_getVisualMap
      Src: /src/icu/source/test/cintltst/cbiditst.c:4693,1
    - Dst: ubidi_getReorderingOptions
      Src: /src/icu/source/test/cintltst/cbiditst.c:4714,1
    - Dst: formatMap
      Src: /src/icu/source/test/cintltst/cbiditst.c:4740,1
    - Dst: ubidi_getLogicalIndex
      Src: /src/icu/source/test/cintltst/cbiditst.c:4749,1
    - Dst: assertSuccessful
      Src: /src/icu/source/test/cintltst/cbiditst.c:4750,1
    - Dst: formatMap
      Src: /src/icu/source/test/cintltst/cbiditst.c:4768,1
    - Dst: ubidi_getParaLevel
      Src: /src/icu/source/test/cintltst/cbiditst.c:4770,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditst.c:4756,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 72
    argCount: 8
    argNames:
    - pBiDi
    - stringIndex
    - src
    - dest
    - mode
    - option
    - level
    - forward
    argTypes:
    - UBiDi*
    - int32_t
    - char*
    - char*
    - char*
    - char*
    - UBiDiLevel
    - UBool
    constantsTouched: []
    func_position:
      end: 4778
      start: 4643
    functionDepth: 0
    functionLinenumber: 4643
    functionLinenumberEnd: 4778
    functionName: checkMaps
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - ubidi_getLogicalMap
    - ubidi_getProcessedLength
    - ubidi_getVisualMap
    - assertSuccessful
    - formatMap
    - ubidi_getResultLength
    - ubidi_getReorderingMode
    - ubidi_getLogicalIndex
    - log_err
    - memcmp
    - ubidi_getReorderingOptions
    - ubidi_getVisualIndex
    - ubidi_getParaLevel
    linkageType: ''
    returnType: UBool
    signature: 'static UBool checkMaps(UBiDi *pBiDi, int32_t stringIndex, const char
      *src, const char *dest, const char *mode, const char* option, UBiDiLevel level,
      UBool forward) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: buildPseudoTables
      Src: /src/icu/source/test/cintltst/cbiditst.c:385,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - length
    - input
    - output
    argTypes:
    - int
    - UChar*
    - char*
    constantsTouched: []
    func_position:
      end: 395
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 395
    functionName: u16ToPseudo
    functionSourceFile: /src/icu/source/test/cintltst/cbiditst.c
    functionUses: []
    functionsReached:
    - buildPseudoTables
    linkageType: ''
    returnType: int
    signature: 'static int u16ToPseudo(const int length, const UChar * input, char
      * output) /* This function converts a UChar string into a pseudo-Bidi string.
      It returns the length of the pseudo-Bidi string.*/ '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:54,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:61,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:75,1
    - Dst: u_strToLower
      Src: /src/icu/source/test/cintltst/cstrcase.c:71,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:80,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:77,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:98,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:100,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:106,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:107,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:127,1
    - Dst: u_strToLower
      Src: /src/icu/source/test/cintltst/cstrcase.c:49,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:53,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:49,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:55,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:60,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/test/cintltst/cstrcase.c:68,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:83,1
    - Dst: u_strToLower
      Src: /src/icu/source/test/cintltst/cstrcase.c:89,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:94,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:101,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:119,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:82,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:95,1
    - Dst: u_strToLower
      Src: /src/icu/source/test/cintltst/cstrcase.c:106,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:113,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:111,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:50,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:58,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cstrcase.c:63,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:71,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:69,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:76,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cstrcase.c:64,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:90,1
    - Dst: u_strToLower
      Src: /src/icu/source/test/cintltst/cstrcase.c:118,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:125,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 96
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 130
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 130
    functionName: TestCaseLower
    functionSourceFile: /src/icu/source/test/cintltst/cstrcase.c
    functionUses: []
    functionsReached:
    - uprv_memcpy
    - u_strToLower
    - U_FAILURE
    - log_err
    - UPRV_LENGTHOF
    - uprv_memcmp
    - u_errorName
    - aescstrdup
    linkageType: ''
    returnType: void
    signature: 'static void TestCaseLower(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:242,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/test/cintltst/cstrcase.c:249,1
    - Dst: u_strToTitle
      Src: /src/icu/source/test/cintltst/cstrcase.c:251,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:251,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:252,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:255,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:260,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:257,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:274,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:281,1
    - Dst: u_strToTitle
      Src: /src/icu/source/test/cintltst/cstrcase.c:316,1
    - Dst: u_strToTitle
      Src: /src/icu/source/test/cintltst/cstrcase.c:301,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cstrcase.c:244,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:244,1
    - Dst: u_strToTitle
      Src: /src/icu/source/test/cintltst/cstrcase.c:269,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:273,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:263,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:275,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:280,1
    - Dst: u_strToTitle
      Src: /src/icu/source/test/cintltst/cstrcase.c:286,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:291,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:302,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cstrcase.c:329,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:270,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:269,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:262,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:287,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:301,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:308,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:325,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/cstrcase.c:242,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:243,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:256,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:278,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:295,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:310,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:316,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:323,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:293,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 92
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 330
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 330
    functionName: TestCaseTitle
    functionSourceFile: /src/icu/source/test/cintltst/cstrcase.c
    functionUses: []
    functionsReached:
    - uprv_memcpy
    - U_FAILURE
    - log_err_status
    - ubrk_open
    - log_err
    - UPRV_LENGTHOF
    - ubrk_close
    - uprv_memcmp
    - u_errorName
    - u_strToTitle
    linkageType: ''
    returnType: void
    signature: 'static void TestCaseTitle(void) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:446,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:452,1
    - Dst: u_strFoldCase
      Src: /src/icu/source/test/cintltst/cstrcase.c:461,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:461,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:462,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:470,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:467,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:465,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:492,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:512,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:530,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:549,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:550,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:568,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:602,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:596,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:520,1
    - Dst: u_getUnicodeVersion
      Src: /src/icu/source/test/cintltst/cstrcase.c:439,1
    - Dst: u_foldCase
      Src: /src/icu/source/test/cintltst/cstrcase.c:445,1
    - Dst: u_foldCase
      Src: /src/icu/source/test/cintltst/cstrcase.c:447,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:440,1
    - Dst: u_foldCase
      Src: /src/icu/source/test/cintltst/cstrcase.c:453,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:473,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:491,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:498,1
    - Dst: u_strFoldCase
      Src: /src/icu/source/test/cintltst/cstrcase.c:500,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:500,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/test/cintltst/cstrcase.c:517,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:524,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:528,1
    - Dst: u_strFoldCase
      Src: /src/icu/source/test/cintltst/cstrcase.c:538,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:543,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:544,1
    - Dst: u_strFoldCase
      Src: /src/icu/source/test/cintltst/cstrcase.c:595,1
    - Dst: u_strFoldCase
      Src: /src/icu/source/test/cintltst/cstrcase.c:519,1
    - Dst: u_foldCase
      Src: /src/icu/source/test/cintltst/cstrcase.c:451,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:472,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:485,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:505,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:525,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:519,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:547,1
    - Dst: u_strFoldCase
      Src: /src/icu/source/test/cintltst/cstrcase.c:554,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:559,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:561,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:511,1
    - Dst: u_strFoldCase
      Src: /src/icu/source/test/cintltst/cstrcase.c:568,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:589,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:531,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:610,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:555,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:563,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:619,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:523,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:581,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:617,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:587,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:466,1
    - Dst: u_strFoldCase
      Src: /src/icu/source/test/cintltst/cstrcase.c:480,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:480,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:481,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:484,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:486,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:489,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/test/cintltst/cstrcase.c:497,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:504,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:506,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:509,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:569,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:573,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:595,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:604,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:575,1
    - Dst: u_strFoldCase
      Src: /src/icu/source/test/cintltst/cstrcase.c:610,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:539,1
    - Dst: u_strFoldCase
      Src: /src/icu/source/test/cintltst/cstrcase.c:580,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 199
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 622
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 622
    functionName: TestCaseFolding
    functionSourceFile: /src/icu/source/test/cintltst/cstrcase.c
    functionUses: []
    functionsReached:
    - u_getUnicodeVersion
    - uprv_memcpy
    - U_FAILURE
    - log_err
    - u_foldCase
    - UPRV_LENGTHOF
    - uprv_memcmp
    - u_errorName
    - u_strFoldCase
    linkageType: ''
    returnType: void
    signature: 'static void TestCaseFolding(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:159,1
    - Dst: u_strToUpper
      Src: /src/icu/source/test/cintltst/cstrcase.c:165,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:169,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:171,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:176,1
    - Dst: u_strToUpper
      Src: /src/icu/source/test/cintltst/cstrcase.c:182,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:187,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:198,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:206,1
    - Dst: u_strToUpper
      Src: /src/icu/source/test/cintltst/cstrcase.c:212,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:219,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:158,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:165,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:166,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:183,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:197,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:204,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:221,1
    - Dst: u_strToUpper
      Src: /src/icu/source/test/cintltst/cstrcase.c:197,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:152,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:174,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:191,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:212,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/test/cintltst/cstrcase.c:145,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:147,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:148,1
    - Dst: u_strToUpper
      Src: /src/icu/source/test/cintltst/cstrcase.c:147,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:151,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:153,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:156,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:170,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:177,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:189,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 83
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 224
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 224
    functionName: TestCaseUpper
    functionSourceFile: /src/icu/source/test/cintltst/cstrcase.c
    functionUses: []
    functionsReached:
    - uprv_memcpy
    - U_FAILURE
    - u_strToUpper
    - log_err
    - UPRV_LENGTHOF
    - uprv_memcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestCaseUpper(void) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ucasemap_setLocale
      Src: /src/icu/source/test/cintltst/cstrcase.c:748,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:766,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:782,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:783,1
    - Dst: ucasemap_utf8ToUpper
      Src: /src/icu/source/test/cintltst/cstrcase.c:789,1
    - Dst: ucasemap_utf8ToUpper
      Src: /src/icu/source/test/cintltst/cstrcase.c:797,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:815,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:791,1
    - Dst: ucasemap_utf8ToLower
      Src: /src/icu/source/test/cintltst/cstrcase.c:821,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:830,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:838,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:823,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:855,1
    - Dst: ucasemap_utf8ToLower
      Src: /src/icu/source/test/cintltst/cstrcase.c:829,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:822,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:854,1
    - Dst: ucasemap_getOptions
      Src: /src/icu/source/test/cintltst/cstrcase.c:759,1
    - Dst: ucasemap_utf8ToLower
      Src: /src/icu/source/test/cintltst/cstrcase.c:773,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:774,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cstrcase.c:780,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cstrcase.c:796,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cstrcase.c:804,1
    - Dst: ucasemap_utf8ToLower
      Src: /src/icu/source/test/cintltst/cstrcase.c:805,1
    - Dst: ucasemap_utf8ToLower
      Src: /src/icu/source/test/cintltst/cstrcase.c:813,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cstrcase.c:828,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cstrcase.c:844,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:798,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:831,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cstrcase.c:836,1
    - Dst: ucasemap_utf8FoldCase
      Src: /src/icu/source/test/cintltst/cstrcase.c:853,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:839,1
    - Dst: ucasemap_open
      Src: /src/icu/source/test/cintltst/cstrcase.c:738,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:739,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:740,1
    - Dst: ucasemap_getLocale
      Src: /src/icu/source/test/cintltst/cstrcase.c:749,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:754,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:761,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:774,1
    - Dst: ucasemap_setOptions
      Src: /src/icu/source/test/cintltst/cstrcase.c:763,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:775,1
    - Dst: ucasemap_utf8ToLower
      Src: /src/icu/source/test/cintltst/cstrcase.c:781,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:799,1
    - Dst: ucasemap_utf8ToUpper
      Src: /src/icu/source/test/cintltst/cstrcase.c:837,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:846,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cstrcase.c:812,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:854,1
    - Dst: ucasemap_close
      Src: /src/icu/source/test/cintltst/cstrcase.c:858,1
    - Dst: ucasemap_getLocale
      Src: /src/icu/source/test/cintltst/cstrcase.c:743,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:740,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:744,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:745,1
    - Dst: strncmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:753,1
    - Dst: ucasemap_getOptions
      Src: /src/icu/source/test/cintltst/cstrcase.c:764,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cstrcase.c:788,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:806,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:807,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:814,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cstrcase.c:820,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:790,1
    - Dst: ucasemap_utf8ToUpper
      Src: /src/icu/source/test/cintltst/cstrcase.c:845,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:847,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 155
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 859
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 859
    functionName: TestUCaseMap
    functionSourceFile: /src/icu/source/test/cintltst/cstrcase.c
    functionUses: []
    functionsReached:
    - ucasemap_close
    - ucasemap_utf8ToUpper
    - ucasemap_utf8FoldCase
    - U_FAILURE
    - ucasemap_getLocale
    - ucasemap_open
    - strcmp
    - ucasemap_getOptions
    - strcpy
    - strncmp
    - log_err
    - ucasemap_setLocale
    - ucasemap_setOptions
    - u_errorName
    - ucasemap_utf8ToLower
    linkageType: ''
    returnType: void
    signature: 'static void TestUCaseMap(void) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:899,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cstrcase.c:907,1
    - Dst: ucasemap_getBreakIterator
      Src: /src/icu/source/test/cintltst/cstrcase.c:908,1
    - Dst: ucasemap_setOptions
      Src: /src/icu/source/test/cintltst/cstrcase.c:915,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cstrcase.c:917,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:917,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:924,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:925,1
    - Dst: ucasemap_setBreakIterator
      Src: /src/icu/source/test/cintltst/cstrcase.c:939,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:941,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:953,1
    - Dst: ucasemap_close
      Src: /src/icu/source/test/cintltst/cstrcase.c:954,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:963,1
    - Dst: ucasemap_setOptions
      Src: /src/icu/source/test/cintltst/cstrcase.c:951,1
    - Dst: ucasemap_close
      Src: /src/icu/source/test/cintltst/cstrcase.c:996,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:969,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:992,1
    - Dst: ucasemap_toTitle
      Src: /src/icu/source/test/cintltst/cstrcase.c:968,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:968,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:970,1
    - Dst: ucasemap_open
      Src: /src/icu/source/test/cintltst/cstrcase.c:887,1
    - Dst: ucasemap_getBreakIterator
      Src: /src/icu/source/test/cintltst/cstrcase.c:893,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:888,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:895,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cstrcase.c:905,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:905,1
    - Dst: ucasemap_close
      Src: /src/icu/source/test/cintltst/cstrcase.c:918,1
    - Dst: ucasemap_toTitle
      Src: /src/icu/source/test/cintltst/cstrcase.c:922,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:923,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/cstrcase.c:933,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:971,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:974,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/cstrcase.c:984,1
    - Dst: ucasemap_close
      Src: /src/icu/source/test/cintltst/cstrcase.c:943,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:963,1
    - Dst: ucasemap_close
      Src: /src/icu/source/test/cintltst/cstrcase.c:936,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:959,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:987,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:889,1
    - Dst: ucasemap_toTitle
      Src: /src/icu/source/test/cintltst/cstrcase.c:899,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:916,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:901,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:902,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:922,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:928,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:928,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:935,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:952,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/cstrcase.c:983,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:983,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:974,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:984,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:889,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:899,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:900,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:910,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:922,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:940,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:941,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cstrcase.c:942,1
    - Dst: ucasemap_getBreakIterator
      Src: /src/icu/source/test/cintltst/cstrcase.c:946,1
    - Dst: ucasemap_toTitle
      Src: /src/icu/source/test/cintltst/cstrcase.c:959,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:935,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:968,1
    - Dst: ucasemap_utf8ToTitle
      Src: /src/icu/source/test/cintltst/cstrcase.c:986,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:989,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:992,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:934,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:961,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:953,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:948,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 132
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 997
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 997
    functionName: TestUCaseMapToTitle
    functionSourceFile: /src/icu/source/test/cintltst/cstrcase.c
    functionUses: []
    functionsReached:
    - ucasemap_close
    - ucasemap_setOptions
    - ucasemap_getBreakIterator
    - U_FAILURE
    - ucasemap_open
    - log_err_status
    - u_memcmp
    - U_SUCCESS
    - ubrk_open
    - u_strToUTF8
    - log_err
    - ucasemap_utf8ToTitle
    - ucasemap_toTitle
    - UPRV_LENGTHOF
    - ubrk_close
    - uprv_memcmp
    - u_errorName
    - ucasemap_setBreakIterator
    linkageType: ''
    returnType: void
    signature: 'static void TestUCaseMapToTitle(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cstrcase.c:1029,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cstrcase.c:1030,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:1033,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:1034,1
    - Dst: u_caseInsensitivePrefixMatch
      Src: /src/icu/source/test/cintltst/cstrcase.c:1032,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:1034,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:1036,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1042
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1042
    functionName: TestUCaseInsensitivePrefixMatch
    functionSourceFile: /src/icu/source/test/cintltst/cstrcase.c
    functionUses: []
    functionsReached:
    - u_unescape
    - U_FAILURE
    - u_errorName
    - log_err
    - u_caseInsensitivePrefixMatch
    linkageType: ''
    returnType: void
    signature: 'static void TestUCaseInsensitivePrefixMatch(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:346,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:360,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:366,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:369,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:347,1
    - Dst: u_strToTitle
      Src: /src/icu/source/test/cintltst/cstrcase.c:355,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:359,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:361,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:368,1
    - Dst: u_UCharsToChars
      Src: /src/icu/source/test/cintltst/cstrcase.c:384,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/cstrcase.c:391,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:355,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:356,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:379,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:385,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:388,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/cstrcase.c:346,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cstrcase.c:348,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:348,1
    - Dst: u_UCharsToChars
      Src: /src/icu/source/test/cintltst/cstrcase.c:365,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:375,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrcase.c:374,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrcase.c:378,1
    - Dst: u_strToTitle
      Src: /src/icu/source/test/cintltst/cstrcase.c:374,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:380,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrcase.c:387,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 60
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 392
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 392
    functionName: TestCaseDutchTitle
    functionSourceFile: /src/icu/source/test/cintltst/cstrcase.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_err_status
    - u_UCharsToChars
    - ubrk_open
    - log_err
    - UPRV_LENGTHOF
    - ubrk_close
    - uprv_memcmp
    - u_errorName
    - u_strToTitle
    linkageType: ''
    returnType: void
    signature: 'static void TestCaseDutchTitle(void) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cstrcase.c:641,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cstrcase.c:642,1
    - Dst: u_strCaseCompare
      Src: /src/icu/source/test/cintltst/cstrcase.c:667,1
    - Dst: u_strCaseCompare
      Src: /src/icu/source/test/cintltst/cstrcase.c:677,1
    - Dst: u_strncasecmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:683,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:689,1
    - Dst: u_strCaseCompare
      Src: /src/icu/source/test/cintltst/cstrcase.c:697,1
    - Dst: u_memcasecmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:703,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cstrcase.c:644,1
    - Dst: u_strcasecmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:653,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:679,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:675,1
    - Dst: u_strcasecmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:663,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:669,1
    - Dst: u_strCaseCompare
      Src: /src/icu/source/test/cintltst/cstrcase.c:687,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:695,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:699,1
    - Dst: u_memcasecmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:709,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cstrcase.c:645,1
    - Dst: u_strCaseCompare
      Src: /src/icu/source/test/cintltst/cstrcase.c:657,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:685,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:705,1
    - Dst: u_getUnicodeVersion
      Src: /src/icu/source/test/cintltst/cstrcase.c:648,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:649,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:655,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:659,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:665,1
    - Dst: u_strcasecmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:673,1
    - Dst: u_strncasecmp
      Src: /src/icu/source/test/cintltst/cstrcase.c:693,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrcase.c:711,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 74
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 713
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 713
    functionName: TestCaseCompare
    functionSourceFile: /src/icu/source/test/cintltst/cstrcase.c
    functionUses: []
    functionsReached:
    - u_getUnicodeVersion
    - u_memcasecmp
    - u_strncasecmp
    - u_strcasecmp
    - u_strCaseCompare
    - u_strlen
    - log_err
    - uprv_memcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestCaseCompare(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cstrcase.c:1048,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cstrcase.c:1049,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cstrcase.c:1051,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cstrcase.c:1054,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cstrcase.c:1052,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cstrcase.c:1055,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cstrcase.c:1056,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cstrcase.c:1058,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cstrcase.c:1060,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 1061
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1061
    functionName: addCaseTest
    functionSourceFile: /src/icu/source/test/cintltst/cstrcase.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addCaseTest(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNormCases
      Src: /src/icu/source/test/cintltst/cnormtst.c:220,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: TestCanonDecompCompose
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - TestNormCases
    linkageType: ''
    returnType: void
    signature: 'void TestCanonDecompCompose() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CharsToUChars
      Src: /src/icu/source/test/cintltst/cnormtst.c:233,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:235,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnormtst.c:236,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnormtst.c:238,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnormtst.c:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - result
    - expected
    - index
    argTypes:
    - UChar*
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: assertEqual
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - CharsToUChars
    - austrdup
    - free
    - log_err
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void assertEqual(const UChar* result, const char* expected,
      int32_t index) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:340,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:349,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:352,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:346,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:343,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:355,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:358,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:361,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 365
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 365
    functionName: TestQuickCheckResultNO
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - unorm_quickCheck
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestQuickCheckResultNO() '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/cnormtst.c:824,1
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/cnormtst.c:825,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/cnormtst.c:826,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:839,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:840,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:847,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:851,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:852,1
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/cnormtst.c:888,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:909,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/cnormtst.c:933,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:952,1
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:947,1
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/cnormtst.c:930,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:836,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:847,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:839,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:844,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:848,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:851,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/cnormtst.c:889,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:902,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/cnormtst.c:913,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:917,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:923,1
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/cnormtst.c:932,1
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/cnormtst.c:939,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/cnormtst.c:940,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:951,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:952,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:912,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:902,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/cnormtst.c:953,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:957,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:835,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:836,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:844,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:843,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:848,1
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/cnormtst.c:879,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/cnormtst.c:880,1
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/cnormtst.c:881,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/cnormtst.c:882,1
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/cnormtst.c:884,1
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/cnormtst.c:935,1
    - Dst: u_memcpy
      Src: /src/icu/source/test/cintltst/cnormtst.c:927,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/cnormtst.c:936,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:949,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:912,1
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/cnormtst.c:820,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/cnormtst.c:821,1
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/cnormtst.c:823,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:835,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:843,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:840,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:852,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/cnormtst.c:885,1
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:907,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:911,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:914,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:954,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/cnormtst.c:931,1
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:897,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 206
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 962
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 962
    functionName: TestNormCoverage
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - U16_TRAIL
    - unorm_normalize
    - U_FAILURE
    - log_data_err
    - u_memcpy
    - log_err
    - u_memcmp
    - UPRV_LENGTHOF
    - unorm_quickCheck
    - u_errorName
    - U16_LEAD
    linkageType: ''
    returnType: void
    signature: 'static void TestNormCoverage() '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cnormtst.c:1371,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cnormtst.c:1373,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cnormtst.c:1375,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cnormtst.c:1375,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1377,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1405,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1393,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1411,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1416,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1416,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cnormtst.c:1370,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cnormtst.c:1390,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:1391,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:1403,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cnormtst.c:1396,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cnormtst.c:1408,1
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:1414,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1415,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cnormtst.c:1426,1
    - Dst: u_getCombiningClass
      Src: /src/icu/source/test/cintltst/cnormtst.c:1427,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1430,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cnormtst.c:1374,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cnormtst.c:1372,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cnormtst.c:1374,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1388,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1399,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1414,1
    - Dst: U16_GET
      Src: /src/icu/source/test/cintltst/cnormtst.c:1422,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cnormtst.c:1402,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:1397,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:1409,1
    - Dst: U16_GET
      Src: /src/icu/source/test/cintltst/cnormtst.c:1421,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cnormtst.c:1424,1
    - Dst: u_getCombiningClass
      Src: /src/icu/source/test/cintltst/cnormtst.c:1425,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1434,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1361
    functionDepth: 0
    functionLinenumber: 1361
    functionLinenumberEnd: 1441
    functionName: TestQuickCheckPerCP
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - unorm_normalize
    - U_FAILURE
    - log_data_err
    - u_getIntPropertyValue
    - u_getIntPropertyMaxValue
    - U16_APPEND_UNSAFE
    - u_getCombiningClass
    - log_err
    - U16_GET
    - UPRV_LENGTHOF
    - unorm_quickCheck
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestQuickCheckPerCP() '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1647,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1648,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1653,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1654,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1657,1
    - Dst: unorm2_getNFDInstance
      Src: /src/icu/source/test/cintltst/cnormtst.c:1652,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnormtst.c:1654,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnormtst.c:1678,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1678,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1681,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1693,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1696,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1694,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1695,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1693,1
    - Dst: unorm2_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:1645,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1641,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1646,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1659,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1660,1
    - Dst: unorm2_getNFKCInstance
      Src: /src/icu/source/test/cintltst/cnormtst.c:1664,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1665,1
    - Dst: unorm2_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:1669,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1683,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1684,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1689,1
    - Dst: unorm2_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:1693,1
    - Dst: unorm2_getNFCInstance
      Src: /src/icu/source/test/cintltst/cnormtst.c:1640,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1645,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1658,1
    - Dst: unorm2_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:1657,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1669,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1671,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1672,1
    - Dst: unorm2_getNFKDInstance
      Src: /src/icu/source/test/cintltst/cnormtst.c:1676,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1677,1
    - Dst: unorm2_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:1681,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1690,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnormtst.c:1690,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1642,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnormtst.c:1642,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1645,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1657,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnormtst.c:1666,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1666,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1669,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1670,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1681,1
    - Dst: unorm2_getNFKCCasefoldInstance
      Src: /src/icu/source/test/cintltst/cnormtst.c:1688,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1682,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1630
    functionDepth: 0
    functionLinenumber: 1630
    functionLinenumberEnd: 1698
    functionName: TestGetEasyToUseInstance
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - unorm2_normalize
    - U_FAILURE
    - unorm2_getNFKCCasefoldInstance
    - log_err_status
    - unorm2_getNFDInstance
    - unorm2_getNFKDInstance
    - log_err
    - unorm2_getNFCInstance
    - UPRV_LENGTHOF
    - u_errorName
    - unorm2_getNFKCInstance
    linkageType: ''
    returnType: void
    signature: 'static void TestGetEasyToUseInstance() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:259,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:264,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:262,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:261,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:262,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:270,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnormtst.c:277,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnormtst.c:281,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 6
    argNames:
    - src
    - srcLen
    - exp
    - expLen
    - mode
    - name
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - UNormalizationMode
    - char*
    constantsTouched: []
    func_position:
      end: 282
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 282
    functionName: TestNull_check
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - unorm_normalize
    - U_FAILURE
    - log_data_err
    - log_verbose
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestNull_check(UChar *src, int32_t srcLen, UChar *exp,
      int32_t expLen, UNormalizationMode mode, const char *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNormCases
      Src: /src/icu/source/test/cintltst/cnormtst.c:216,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: TestCompatDecomp
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - TestNormCases
    linkageType: ''
    returnType: void
    signature: 'void TestCompatDecomp() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CharsToUChars
      Src: /src/icu/source/test/cintltst/cnormtst.c:181,1
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:193,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:194,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnormtst.c:196,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:202,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:203,1
    - Dst: assertEqual
      Src: /src/icu/source/test/cintltst/cnormtst.c:205,1
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:182,1
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:183,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnormtst.c:193,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:193,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnormtst.c:177,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnormtst.c:182,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:185,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:195,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:201,1
    - Dst: assertEqual
      Src: /src/icu/source/test/cintltst/cnormtst.c:198,1
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:200,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:196,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnormtst.c:203,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:200,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnormtst.c:207,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 3
    argNames:
    - mode
    - cases
    - lengthOfCases
    argTypes:
    - UNormalizationMode
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 209
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 209
    functionName: TestNormCases
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - unorm_normalize
    - CharsToUChars
    - assertEqual
    - U_FAILURE
    - log_data_err
    - austrdup
    - u_strlen
    - myErrorName
    - log_verbose
    - log_err
    - free
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestNormCases(UNormalizationMode mode, const char* const
      cases[][3], int32_t lengthOfCases) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:386,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:397,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:394,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:391,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:388,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:399,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:402,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:405,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:413,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:416,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:431,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:434,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:425,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:428,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:419,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:422,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 438
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 438
    functionName: TestQuickCheckResultYES
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - unorm_quickCheck
    - log_data_err
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestQuickCheckResultYES() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:456,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:462,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:459,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:465,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 469
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 469
    functionName: TestQuickCheckResultMAYBE
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - unorm_quickCheck
    - log_data_err
    linkageType: ''
    returnType: void
    signature: 'static void TestQuickCheckResultMAYBE() '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1089,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1119,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1064,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1124,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1115,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1114,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/cnormtst.c:1104,1
    - Dst: unorm_previous
      Src: /src/icu/source/test/cintltst/cnormtst.c:1088,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1129,1
    - Dst: unorm_next
      Src: /src/icu/source/test/cintltst/cnormtst.c:1063,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/cnormtst.c:1078,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/cnormtst.c:1128,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1113,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 97
    argCount: 9
    argNames:
    - src
    - srcLength
    - iter
    - mode
    - forward
    - out
    - outLength
    - srcIndexes
    - srcIndexesLength
    argTypes:
    - UChar*
    - int32_t
    - UCharIterator*
    - UNormalizationMode
    - UBool
    - UChar*
    - int32_t
    - int32_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1144
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1144
    functionName: _testIter
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - unorm_next
    - U_FAILURE
    - log_data_err
    - unorm_previous
    - log_err
    - u_memcmp
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void _testIter(const UChar *src, int32_t srcLength, UCharIterator
      *iter, UNormalizationMode mode, UBool forward, const UChar *out, int32_t outLength,
      const int32_t *srcIndexes, int32_t srcIndexesLength) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: unorm2_getNFKCInstance
      Src: /src/icu/source/test/cintltst/cnormtst.c:1534,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1546,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1555,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1563,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1568,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1572,1
    - Dst: unorm2_getRawDecomposition
      Src: /src/icu/source/test/cintltst/cnormtst.c:1587,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1589,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnormtst.c:1536,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1536,1
    - Dst: unorm2_getRawDecomposition
      Src: /src/icu/source/test/cintltst/cnormtst.c:1544,1
    - Dst: unorm2_getRawDecomposition
      Src: /src/icu/source/test/cintltst/cnormtst.c:1582,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1544,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1545,1
    - Dst: unorm2_getRawDecomposition
      Src: /src/icu/source/test/cintltst/cnormtst.c:1549,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1551,1
    - Dst: unorm2_getRawDecomposition
      Src: /src/icu/source/test/cintltst/cnormtst.c:1561,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1550,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1562,1
    - Dst: unorm2_getRawDecomposition
      Src: /src/icu/source/test/cintltst/cnormtst.c:1566,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1567,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1579,1
    - Dst: unorm2_getRawDecomposition
      Src: /src/icu/source/test/cintltst/cnormtst.c:1577,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1535,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1549,1
    - Dst: unorm2_getRawDecomposition
      Src: /src/icu/source/test/cintltst/cnormtst.c:1555,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1557,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1561,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1556,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1566,1
    - Dst: unorm2_getRawDecomposition
      Src: /src/icu/source/test/cintltst/cnormtst.c:1572,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1573,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1574,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1584,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 107
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1528
    functionDepth: 0
    functionLinenumber: 1528
    functionLinenumberEnd: 1591
    functionName: TestGetRawDecomposition
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - unorm2_getRawDecomposition
    - U_FAILURE
    - log_err_status
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    - unorm2_getNFKCInstance
    linkageType: ''
    returnType: void
    signature: 'static void TestGetRawDecomposition() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:142,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:140,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:146,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:156,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:150,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:138,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:141,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:143,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:147,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:153,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:151,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:157,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:144,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:152,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:154,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:148,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:139,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:145,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:149,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnormtst.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 158
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 158
    functionName: addNormTest
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addNormTest(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNormCases
      Src: /src/icu/source/test/cintltst/cnormtst.c:212,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: TestDecomp
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - TestNormCases
    linkageType: ''
    returnType: void
    signature: 'void TestDecomp() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNormCases
      Src: /src/icu/source/test/cintltst/cnormtst.c:228,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: TestFCD
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - TestNormCases
    linkageType: ''
    returnType: void
    signature: 'void TestFCD() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnormtst.c:482,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:490,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:509,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnormtst.c:510,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnormtst.c:514,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:478,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:482,1
    - Dst: CharsToUChars
      Src: /src/icu/source/test/cintltst/cnormtst.c:480,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnormtst.c:494,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnormtst.c:498,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnormtst.c:506,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:514,1
    - Dst: CharsToUChars
      Src: /src/icu/source/test/cintltst/cnormtst.c:481,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnormtst.c:486,1
    - Dst: CharsToUChars
      Src: /src/icu/source/test/cintltst/cnormtst.c:504,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:506,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnormtst.c:499,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnormtst.c:494,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:493,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnormtst.c:518,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnormtst.c:522,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:485,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnormtst.c:486,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnormtst.c:490,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:502,1
    - Dst: CharsToUChars
      Src: /src/icu/source/test/cintltst/cnormtst.c:505,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnormtst.c:510,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:517,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnormtst.c:518,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnormtst.c:523,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 525
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 525
    functionName: TestQuickCheckStringResult
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - CharsToUChars
    - log_data_err
    - u_strlen
    - free
    - log_err
    - UPRV_LENGTHOF
    - unorm_quickCheck
    linkageType: ''
    returnType: void
    signature: 'static void TestQuickCheckStringResult() '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:561,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:568,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:575,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:582,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:561,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:560,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:588,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:582,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:586,1
    - Dst: unorm_isNormalized
      Src: /src/icu/source/test/cintltst/cnormtst.c:588,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:596,1
    - Dst: unorm_isNormalized
      Src: /src/icu/source/test/cintltst/cnormtst.c:598,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:598,1
    - Dst: unorm_isNormalized
      Src: /src/icu/source/test/cintltst/cnormtst.c:566,1
    - Dst: unorm_isNormalized
      Src: /src/icu/source/test/cintltst/cnormtst.c:573,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:589,1
    - Dst: unorm_isNormalized
      Src: /src/icu/source/test/cintltst/cnormtst.c:592,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:589,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:592,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:599,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:599,1
    - Dst: unorm_isNormalized
      Src: /src/icu/source/test/cintltst/cnormtst.c:560,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:568,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:575,1
    - Dst: unorm_isNormalized
      Src: /src/icu/source/test/cintltst/cnormtst.c:580,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:593,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:593,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 602
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 602
    functionName: TestIsNormalized
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_data_err
    - log_err
    - unorm_isNormalized
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestIsNormalized(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unorm_concatenate
      Src: /src/icu/source/test/cintltst/cnormtst.c:1015,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/cnormtst.c:986,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:987,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:987,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:994,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:994,1
    - Dst: unorm_concatenate
      Src: /src/icu/source/test/cintltst/cnormtst.c:999,1
    - Dst: unorm_concatenate
      Src: /src/icu/source/test/cintltst/cnormtst.c:1007,1
    - Dst: unorm_concatenate
      Src: /src/icu/source/test/cintltst/cnormtst.c:992,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1001,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1009,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1023,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1009,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1001,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1023,1
    - Dst: unorm_concatenate
      Src: /src/icu/source/test/cintltst/cnormtst.c:985,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:986,1
    - Dst: unorm_concatenate
      Src: /src/icu/source/test/cintltst/cnormtst.c:1021,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1017,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1017,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 61
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1025
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 1025
    functionName: TestConcatenate
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - unorm_concatenate
    - log_data_err
    - log_err
    - u_memcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestConcatenate(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1200,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1206,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1209,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1213,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1217,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1223,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1227,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1232,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1240,1
    - Dst: unorm_next
      Src: /src/icu/source/test/cintltst/cnormtst.c:1246,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1229,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1310,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1238,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1250,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1261,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1234,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1221,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1273,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1232,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1240,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1246,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1298,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1200,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1206,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1206,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1209,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1204,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1213,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1213,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1215,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1221,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1225,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1294,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1298,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1234,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1310,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1225,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1217,1
    - Dst: unorm_next
      Src: /src/icu/source/test/cintltst/cnormtst.c:1294,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1250,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1261,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1236,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1198,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1200,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1202,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1204,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1204,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1211,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1215,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1217,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1223,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1227,1
    - Dst: unorm_next
      Src: /src/icu/source/test/cintltst/cnormtst.c:1269,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1286,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1282,1
    - Dst: uiter_setString
      Src: /src/icu/source/test/cintltst/cnormtst.c:1194,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1198,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1194,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1198,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1202,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1202,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1209,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1211,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1211,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1215,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1236,1
    - Dst: unorm_next
      Src: /src/icu/source/test/cintltst/cnormtst.c:1257,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1273,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1229,1
    - Dst: _testIter
      Src: /src/icu/source/test/cintltst/cnormtst.c:1238,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1286,1
    - Dst: unorm_next
      Src: /src/icu/source/test/cintltst/cnormtst.c:1306,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1306,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1249,1
    - Dst: unorm_next
      Src: /src/icu/source/test/cintltst/cnormtst.c:1282,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 171
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1313
    functionName: TestNextPrevious
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - unorm_next
    - uiter_setString
    - U_FAILURE
    - log_data_err
    - _testIter
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestNextPrevious() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1469,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnormtst.c:1477,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1474,1
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:1471,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1476,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/cnormtst.c:1478,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1480,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1483
      start: 1443
    functionDepth: 0
    functionLinenumber: 1443
    functionLinenumberEnd: 1483
    functionName: TestComposition
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - unorm_normalize
    - U_FAILURE
    - log_data_err
    - u_strlen
    - u_memcmp
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestComposition(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unorm2_getNFCInstance
      Src: /src/icu/source/test/cintltst/cnormtst.c:1601,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1602,1
    - Dst: unorm2_append
      Src: /src/icu/source/test/cintltst/cnormtst.c:1612,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnormtst.c:1603,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1603,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1613,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1614,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1619,1
    - Dst: unorm2_append
      Src: /src/icu/source/test/cintltst/cnormtst.c:1623,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1623,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/cnormtst.c:1624,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1625,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1624,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1625,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1624,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1593
    functionDepth: 0
    functionLinenumber: 1593
    functionLinenumberEnd: 1628
    functionName: TestAppendRestoreMiddle
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - unorm2_append
    - log_err_status
    - u_memcmp
    - log_err
    - unorm2_getNFCInstance
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestAppendRestoreMiddle() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNormCases
      Src: /src/icu/source/test/cintltst/cnormtst.c:224,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: TestCompatDecompCompose
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - TestNormCases
    linkageType: ''
    returnType: void
    signature: 'void TestCompatDecompCompose() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNull_check
      Src: /src/icu/source/test/cintltst/cnormtst.c:297,1
    - Dst: TestNull_check
      Src: /src/icu/source/test/cintltst/cnormtst.c:304,1
    - Dst: TestNull_check
      Src: /src/icu/source/test/cintltst/cnormtst.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 319
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 319
    functionName: TestNull
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - TestNull_check
    linkageType: ''
    returnType: void
    signature: 'void TestNull() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestQuickCheckResultNO
      Src: /src/icu/source/test/cintltst/cnormtst.c:529,1
    - Dst: TestQuickCheckResultYES
      Src: /src/icu/source/test/cintltst/cnormtst.c:530,1
    - Dst: TestQuickCheckStringResult
      Src: /src/icu/source/test/cintltst/cnormtst.c:532,1
    - Dst: TestQuickCheckResultMAYBE
      Src: /src/icu/source/test/cintltst/cnormtst.c:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 533
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 533
    functionName: TestQuickCheck
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - TestQuickCheckResultNO
    - TestQuickCheckResultYES
    - TestQuickCheckStringResult
    - TestQuickCheckResultMAYBE
    linkageType: ''
    returnType: void
    signature: 'void TestQuickCheck() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:718,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:720,1
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:725,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:720,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:726,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:727,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:727,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:731,1
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:734,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:735,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:736,1
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:739,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:741,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:741,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:736,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:740,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 744
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 744
    functionName: TestAPI
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - unorm_normalize
    - U_FAILURE
    - log_data_err
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestAPI() '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:634,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:636,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:637,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:635,1
    - Dst: rand
      Src: /src/icu/source/test/cintltst/cnormtst.c:675,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:675,1
    - Dst: srand
      Src: /src/icu/source/test/cintltst/cnormtst.c:662,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:680,1
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:687,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:689,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnormtst.c:697,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:704,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:646,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:648,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:647,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:653,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:703,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:638,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:639,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:641,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:642,1
    - Dst: unorm_normalize
      Src: /src/icu/source/test/cintltst/cnormtst.c:677,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnormtst.c:676,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:679,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnormtst.c:685,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:642,1
    - Dst: time
      Src: /src/icu/source/test/cintltst/cnormtst.c:662,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/cnormtst.c:693,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnormtst.c:700,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/cintltst/cnormtst.c:703,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:690,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 707
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 707
    functionName: TestCheckFCD
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - unorm_normalize
    - U_FAILURE
    - rand
    - log_data_err
    - time
    - srand
    - log_verbose
    - log_err
    - u_memcmp
    - UPRV_LENGTHOF
    - unorm_quickCheck
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'void TestCheckFCD() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1340,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1343,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1342,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnormtst.c:1343,1
    - Dst: u_getFC_NFKC_Closure
      Src: /src/icu/source/test/cintltst/cnormtst.c:1342,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnormtst.c:1343,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1344,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1344,1
    - Dst: u_getFC_NFKC_Closure
      Src: /src/icu/source/test/cintltst/cnormtst.c:1350,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1350,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1352,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1352,1
    - Dst: u_getFC_NFKC_Closure
      Src: /src/icu/source/test/cintltst/cnormtst.c:1355,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1357,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1355,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1357,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1359
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1359
    functionName: TestFCNFKCClosure
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - u_getFC_NFKC_Closure
    - U_FAILURE
    - log_data_err
    - u_strlen
    - log_err
    - UPRV_LENGTHOF
    - u_strcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestFCNFKCClosure(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1507,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1492,1
    - Dst: unorm2_getDecomposition
      Src: /src/icu/source/test/cintltst/cnormtst.c:1497,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnormtst.c:1493,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnormtst.c:1493,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1498,1
    - Dst: unorm2_getDecomposition
      Src: /src/icu/source/test/cintltst/cnormtst.c:1502,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1503,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1504,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1524,1
    - Dst: unorm2_getInstance
      Src: /src/icu/source/test/cintltst/cnormtst.c:1491,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1497,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnormtst.c:1502,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1514,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1519,1
    - Dst: unorm2_getDecomposition
      Src: /src/icu/source/test/cintltst/cnormtst.c:1522,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1499,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnormtst.c:1508,1
    - Dst: unorm2_getDecomposition
      Src: /src/icu/source/test/cintltst/cnormtst.c:1512,1
    - Dst: unorm2_getDecomposition
      Src: /src/icu/source/test/cintltst/cnormtst.c:1517,1
    - Dst: unorm2_getDecomposition
      Src: /src/icu/source/test/cintltst/cnormtst.c:1507,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnormtst.c:1509,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1526
    functionName: TestGetDecomposition
    functionSourceFile: /src/icu/source/test/cintltst/cnormtst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_err_status
    - unorm2_getInstance
    - log_err
    - unorm2_getDecomposition
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestGetDecomposition() '
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:106,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:129,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:140,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cdattst.c:196,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:232,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cdattst.c:215,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cdattst.c:241,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:287,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:293,1
    - Dst: udat_set2DigitYearStart
      Src: /src/icu/source/test/cintltst/cdattst.c:320,1
    - Dst: udat_getNumberFormat
      Src: /src/icu/source/test/cintltst/cdattst.c:354,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdattst.c:364,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:205,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:234,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdattst.c:202,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdattst.c:175,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:180,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:270,1
    - Dst: udat_toPattern
      Src: /src/icu/source/test/cintltst/cdattst.c:279,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdattst.c:355,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:358,1
    - Dst: udat_setNumberFormat
      Src: /src/icu/source/test/cintltst/cdattst.c:362,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:365,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:387,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:226,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:94,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:126,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:155,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:245,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:255,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:261,1
    - Dst: udat_toPattern
      Src: /src/icu/source/test/cintltst/cdattst.c:285,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:305,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:327,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:388,1
    - Dst: udat_adoptNumberFormat
      Src: /src/icu/source/test/cintltst/cdattst.c:353,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cdattst.c:217,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:156,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:276,1
    - Dst: udat_getNumberFormat
      Src: /src/icu/source/test/cintltst/cdattst.c:342,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdattst.c:345,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:348,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:378,1
    - Dst: udat_get2DigitYearStart
      Src: /src/icu/source/test/cintltst/cdattst.c:324,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:372,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:389,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:97,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdattst.c:163,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdattst.c:172,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdattst.c:241,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:237,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:275,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:308,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:331,1
    - Dst: udat_get2DigitYearStart
      Src: /src/icu/source/test/cintltst/cdattst.c:333,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:336,1
    - Dst: udat_getCalendar
      Src: /src/icu/source/test/cintltst/cdattst.c:373,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:178,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:117,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:125,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:249,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:267,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:322,1
    - Dst: udat_get2DigitYearStart
      Src: /src/icu/source/test/cintltst/cdattst.c:324,1
    - Dst: myNumformat
      Src: /src/icu/source/test/cintltst/cdattst.c:364,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:231,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:120,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:113,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:144,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:146,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:184,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:147,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdattst.c:284,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:290,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:316,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:321,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdattst.c:208,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdattst.c:185,1
    - Dst: ctest_setTimeZone
      Src: /src/icu/source/test/cintltst/cdattst.c:90,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:110,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:139,1
    - Dst: udat_getAvailable
      Src: /src/icu/source/test/cintltst/cdattst.c:145,1
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/cdattst.c:176,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:263,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:264,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:317,1
    - Dst: udat_countAvailable
      Src: /src/icu/source/test/cintltst/cdattst.c:136,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:234,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdattst.c:231,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cdattst.c:216,1
    - Dst: udat_applyPattern
      Src: /src/icu/source/test/cintltst/cdattst.c:275,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdattst.c:292,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:295,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:314,1
    - Dst: myNumformat
      Src: /src/icu/source/test/cintltst/cdattst.c:345,1
    - Dst: myNumformat
      Src: /src/icu/source/test/cintltst/cdattst.c:355,1
    - Dst: myNumformat
      Src: /src/icu/source/test/cintltst/cdattst.c:345,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:367,1
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/cdattst.c:166,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:104,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:128,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:153,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:203,1
    - Dst: udat_set2DigitYearStart
      Src: /src/icu/source/test/cintltst/cdattst.c:329,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:356,1
    - Dst: udat_getNumberFormat
      Src: /src/icu/source/test/cintltst/cdattst.c:344,1
    - Dst: udat_getCalendar
      Src: /src/icu/source/test/cintltst/cdattst.c:377,1
    - Dst: udat_clone
      Src: /src/icu/source/test/cintltst/cdattst.c:154,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:180,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:149,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:93,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:92,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:156,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cdattst.c:190,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:147,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:263,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:325,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:341,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:219,1
    - Dst: udat_isLenient
      Src: /src/icu/source/test/cintltst/cdattst.c:307,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:346,1
    - Dst: ucal_equivalentTo
      Src: /src/icu/source/test/cintltst/cdattst.c:377,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:380,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdattst.c:383,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:390,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:391,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cdattst.c:352,1
    - Dst: myNumformat
      Src: /src/icu/source/test/cintltst/cdattst.c:364,1
    - Dst: udat_setNumberFormat
      Src: /src/icu/source/test/cintltst/cdattst.c:343,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:103,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdattst.c:218,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:242,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdattst.c:249,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdattst.c:298,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:310,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:330,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:334,1
    - Dst: udat_getCalendar
      Src: /src/icu/source/test/cintltst/cdattst.c:377,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:393,1
    - Dst: udat_setCalendar
      Src: /src/icu/source/test/cintltst/cdattst.c:376,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:392,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:192,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:96,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:114,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:121,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:118,1
    - Dst: udat_getAvailable
      Src: /src/icu/source/test/cintltst/cdattst.c:144,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cdattst.c:191,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdattst.c:198,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:221,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:274,1
    - Dst: udat_getNumberFormat
      Src: /src/icu/source/test/cintltst/cdattst.c:363,1
    - Dst: udat_getAvailable
      Src: /src/icu/source/test/cintltst/cdattst.c:147,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:135,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:145,1
    - Dst: myDateFormat
      Src: /src/icu/source/test/cintltst/cdattst.c:201,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:266,1
    - Dst: udat_setLenient
      Src: /src/icu/source/test/cintltst/cdattst.c:306,1
    - Dst: udat_get2DigitYearStart
      Src: /src/icu/source/test/cintltst/cdattst.c:315,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:317,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:322,1
    - Dst: myNumformat
      Src: /src/icu/source/test/cintltst/cdattst.c:355,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:351,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:186,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdattst.c:227,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:107,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:111,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:162,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdattst.c:246,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:252,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:289,1
    - Dst: udat_isLenient
      Src: /src/icu/source/test/cintltst/cdattst.c:306,1
    - Dst: udat_isLenient
      Src: /src/icu/source/test/cintltst/cdattst.c:307,1
    - Dst: ctest_resetTimeZone
      Src: /src/icu/source/test/cintltst/cdattst.c:395,1
    - Dst: udat_getNumberFormat
      Src: /src/icu/source/test/cintltst/cdattst.c:361,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:331,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 270
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 396
    functionName: TestDateFormat
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - udat_adoptNumberFormat
    - myNumformat
    - free
    - unum_open
    - udat_close
    - udat_clone
    - udat_getCalendar
    - u_errorName
    - ucal_equivalentTo
    - ctest_resetTimeZone
    - udat_open
    - udat_format
    - U_FAILURE
    - log_data_err
    - u_strlen
    - log_verbose
    - myDateFormat
    - udat_isLenient
    - u_austrcpy
    - u_uastrcpy
    - udat_setLenient
    - udat_parse
    - udat_toPattern
    - ctest_setTimeZone
    - udat_getAvailable
    - u_unescape
    - udat_setCalendar
    - udat_getNumberFormat
    - log_err
    - udat_applyPattern
    - udat_setNumberFormat
    - udat_get2DigitYearStart
    - udat_set2DigitYearStart
    - malloc
    - myErrorName
    - u_strcmp
    - udat_countAvailable
    linkageType: ''
    returnType: void
    signature: 'static void TestDateFormat() '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:628,1
    - Dst: udat_toPattern
      Src: /src/icu/source/test/cintltst/cdattst.c:698,1
    - Dst: udat_applyPattern
      Src: /src/icu/source/test/cintltst/cdattst.c:712,1
    - Dst: udat_toPattern
      Src: /src/icu/source/test/cintltst/cdattst.c:714,1
    - Dst: udat_getSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:748,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:593,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:601,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:631,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdattst.c:644,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:680,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:756,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:650,1
    - Dst: udat_countSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:618,1
    - Dst: udat_countSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:619,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdattst.c:744,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:758,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:771,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdattst.c:774,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:777,1
    - Dst: VerifygetsetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:811,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:586,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:598,1
    - Dst: udat_countSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:621,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdattst.c:720,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:782,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:783,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:819,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:584,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:607,1
    - Dst: udat_countSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:618,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdattst.c:633,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:675,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdattst.c:693,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:674,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:677,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:676,1
    - Dst: udat_getSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:645,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:609,1
    - Dst: udat_countSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:620,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdattst.c:703,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:706,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:728,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:761,1
    - Dst: VerifygetsetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:813,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:597,1
    - Dst: udat_countSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:621,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdattst.c:632,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdattst.c:641,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:679,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdattst.c:731,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:734,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdattst.c:736,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:751,1
    - Dst: VerifygetsetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:810,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdattst.c:690,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:656,1
    - Dst: udat_countSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:623,1
    - Dst: udat_toPattern
      Src: /src/icu/source/test/cintltst/cdattst.c:704,1
    - Dst: udat_getSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:739,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:752,1
    - Dst: VerifygetsetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:806,1
    - Dst: VerifygetsetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:812,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:664,1
    - Dst: udat_countSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:620,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:662,1
    - Dst: udat_toPattern
      Src: /src/icu/source/test/cintltst/cdattst.c:724,1
    - Dst: VerifygetsetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:809,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdattst.c:826,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:801,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:585,1
    - Dst: udat_countSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:622,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:695,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:758,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdattst.c:768,1
    - Dst: udat_getSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:764,1
    - Dst: VerifygetsetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:808,1
    - Dst: VerifygetsetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:814,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:794,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:663,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:671,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:666,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:665,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:668,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:600,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:616,1
    - Dst: udat_countSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:623,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:648,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:667,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:793,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:661,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:709,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:589,1
    - Dst: udat_getSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:635,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:650,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:800,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdattst.c:823,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:673,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:672,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:588,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:610,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:606,1
    - Dst: udat_countSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:622,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:681,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:708,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:712,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:729,1
    - Dst: udat_getSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:769,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:772,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:792,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:678,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:625,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdattst.c:747,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:784,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:785,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:786,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:787,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:788,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:789,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:790,1
    - Dst: VerifygetsetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:807,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:791,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:805,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:685,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:653,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdattst.c:723,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:726,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:732,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:752,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:781,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:670,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdattst.c:655,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:683,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:658,1
    - Dst: udat_countSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:619,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:605,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:795,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:796,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:797,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:798,1
    - Dst: VerifysetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:799,1
    - Dst: VerifygetSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:669,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:775,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:821,1
    - Dst: udat_setSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:755,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:820,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 247
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 828
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 828
    functionName: TestSymbols
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - free
    - udat_close
    - udat_open
    - VerifygetsetSymbols
    - VerifysetSymbols
    - U_FAILURE
    - log_data_err
    - u_strlen
    - log_verbose
    - u_uastrcpy
    - VerifygetSymbols
    - udat_toPattern
    - udat_setSymbols
    - log_err
    - udat_applyPattern
    - udat_getSymbols
    - malloc
    - udat_countSymbols
    - myErrorName
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestSymbols() '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:851,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:857,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:865,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/cdattst.c:881,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cdattst.c:873,1
    - Dst: udat_parseCalendar
      Src: /src/icu/source/test/cintltst/cdattst.c:884,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:894,1
    - Dst: udat_parseCalendar
      Src: /src/icu/source/test/cintltst/cdattst.c:907,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:917,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/cdattst.c:928,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:947,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:929,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:858,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:860,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:868,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:866,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:876,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:874,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:885,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:901,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:908,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cdattst.c:915,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/cdattst.c:950,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:949,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cdattst.c:923,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:909,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:918,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:948,1
    - Dst: ctest_resetTimeZone
      Src: /src/icu/source/test/cintltst/cdattst.c:952,1
    - Dst: ctest_setTimeZone
      Src: /src/icu/source/test/cintltst/cdattst.c:846,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:849,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:859,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:867,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:875,1
    - Dst: udat_formatCalendar
      Src: /src/icu/source/test/cintltst/cdattst.c:892,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:900,1
    - Dst: udat_formatCalendar
      Src: /src/icu/source/test/cintltst/cdattst.c:915,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:923,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:930,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:924,1
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/cdattst.c:933,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdattst.c:905,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:935,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:910,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:916,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:852,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:850,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdattst.c:882,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:886,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:887,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cdattst.c:892,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:893,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:895,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdattst.c:899,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cdattst.c:900,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:930,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:941,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:943,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdattst.c:922,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:934,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:935,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cdattst.c:938,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 953
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 953
    functionName: TestDateFormatCalendar
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - udat_close
    - u_errorName
    - ucal_getMillis
    - ctest_resetTimeZone
    - udat_open
    - udat_format
    - U_FAILURE
    - log_data_err
    - u_strlen
    - ucal_close
    - u_strncmp
    - log_verbose
    - UPRV_LENGTHOF
    - ucal_clear
    - u_austrcpy
    - u_uastrcpy
    - ctest_setTimeZone
    - udat_parseCalendar
    - ucal_open
    - log_err
    - udat_formatCalendar
    linkageType: ''
    returnType: void
    signature: 'static void TestDateFormatCalendar() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uloc_countAvailable
      Src: /src/icu/source/test/cintltst/cdattst.c:1302,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cdattst.c:1304,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1307,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1307,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cdattst.c:1305,1
    - Dst: uloc_getAvailable
      Src: /src/icu/source/test/cintltst/cdattst.c:1308,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1309,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1310,1
    - Dst: uloc_getAvailable
      Src: /src/icu/source/test/cintltst/cdattst.c:1311,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1311,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1316
      start: 1297
    functionDepth: 0
    functionLinenumber: 1297
    functionLinenumberEnd: 1316
    functionName: TestAllLocales
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - udat_open
    - uloc_getAvailable
    - U_FAILURE
    - u_errorName
    - log_err
    - udat_close
    - UPRV_LENGTHOF
    - uloc_countAvailable
    linkageType: ''
    returnType: void
    signature: 'static void TestAllLocales(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1102,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1104,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cdattst.c:1124,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1123,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdattst.c:1130,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdattst.c:1122,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdattst.c:1099,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1104,1
    - Dst: udat_getSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:1109,1
    - Dst: udat_getSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:1114,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1118,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdattst.c:1113,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1117,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:1097,1
    - Dst: udat_setSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:1101,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cdattst.c:1100,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1116,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1127,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdattst.c:1129,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - datfor
    - type
    - idx
    - expected
    argTypes:
    - UDateFormat*
    - UDateFormatSymbolType
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 1131
      start: 1091
    functionDepth: 0
    functionLinenumber: 1091
    functionLinenumberEnd: 1131
    functionName: VerifysetSymbols
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - malloc
    - u_unescape
    - U_FAILURE
    - udat_setSymbols
    - u_strcmp
    - free
    - myErrorName
    - log_verbose
    - log_err
    - strlen
    - udat_getSymbols
    - aescstrdup
    linkageType: ''
    returnType: void
    signature: 'static void VerifysetSymbols(UDateFormat* datfor, UDateFormatSymbolType
      type, int32_t idx, const char* expected) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exp
      Src: /src/icu/source/test/cintltst/cdattst.c:1249,1
    - Dst: log
      Src: /src/icu/source/test/cintltst/cdattst.c:1249,1
    - Dst: _aux2ExtremeDates
      Src: /src/icu/source/test/cintltst/cdattst.c:1255,1
    - Dst: log
      Src: /src/icu/source/test/cintltst/cdattst.c:1249,1
    - Dst: _aux1ExtremeDates
      Src: /src/icu/source/test/cintltst/cdattst.c:1254,1
    - Dst: _aux2ExtremeDates
      Src: /src/icu/source/test/cintltst/cdattst.c:1256,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 8
    argNames:
    - fmt
    - small
    - large
    - buf
    - buflen
    - cbuf
    - count
    - ec
    argTypes:
    - UDateFormat*
    - UDate
    - UDate
    - UChar*
    - int32_t
    - char*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 1257
      start: 1244
    functionDepth: 0
    functionLinenumber: 1244
    functionLinenumberEnd: 1257
    functionName: _aux2ExtremeDates
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - _aux2ExtremeDates
    - exp
    - _aux1ExtremeDates
    - log
    linkageType: ''
    returnType: UBool
    signature: 'static UBool _aux2ExtremeDates(UDateFormat* fmt, UDate small, UDate
      large, UChar* buf, int32_t buflen, char* cbuf, int32_t count, UErrorCode* ec) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1729,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdattst.c:1739,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cdattst.c:1735,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1734,1
    - Dst: assertSuccessCheck
      Src: /src/icu/source/test/cintltst/cdattst.c:1730,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1741,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1741,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1741,1
    - Dst: udat_parseCalendar
      Src: /src/icu/source/test/cintltst/cdattst.c:1745,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1747,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1747,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1751,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1750,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1747,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1752
      start: 1723
    functionDepth: 0
    functionLinenumber: 1723
    functionLinenumberEnd: 1752
    functionName: TestParseErrorReturnValue
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - udat_open
    - udat_parse
    - assertSuccess
    - udat_parseCalendar
    - ucal_open
    - ucal_close
    - log_err
    - assertSuccessCheck
    - udat_close
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestParseErrorReturnValue(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1149,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1150,1
    - Dst: udat_getSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:1163,1
    - Dst: udat_getSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:1168,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1172,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdattst.c:1184,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1150,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1156,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1158,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1171,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdattst.c:1167,1
    - Dst: udat_getSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:1142,1
    - Dst: udat_getSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:1147,1
    - Dst: udat_setSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:1155,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1158,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1177,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1170,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdattst.c:1178,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdattst.c:1146,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cdattst.c:1177,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdattst.c:1176,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1181,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdattst.c:1183,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 4
    argNames:
    - from
    - to
    - type
    - idx
    argTypes:
    - UDateFormat*
    - UDateFormat*
    - UDateFormatSymbolType
    - int32_t
    constantsTouched: []
    func_position:
      end: 1185
      start: 1134
    functionDepth: 0
    functionLinenumber: 1134
    functionLinenumberEnd: 1185
    functionName: VerifygetsetSymbols
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - malloc
    - U_FAILURE
    - log_data_err
    - udat_setSymbols
    - u_strcmp
    - austrdup
    - myErrorName
    - log_verbose
    - log_err
    - free
    - udat_getSymbols
    linkageType: ''
    returnType: void
    signature: 'static void VerifygetsetSymbols(UDateFormat* from, UDateFormat* to,
      UDateFormatSymbolType type, int32_t idx) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdattst.c:1628,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cdattst.c:1632,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cdattst.c:1641,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1669,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1659,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1675,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cdattst.c:1680,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cdattst.c:1680,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdattst.c:1687,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cdattst.c:1690,1
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/cdattst.c:1708,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1715,1
    - Dst: udat_adoptNumberFormatForFields
      Src: /src/icu/source/test/cintltst/cdattst.c:1697,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cdattst.c:1693,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1631,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1640,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cdattst.c:1644,1
    - Dst: udat_getNumberFormatForField
      Src: /src/icu/source/test/cintltst/cdattst.c:1646,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cdattst.c:1655,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:1669,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdattst.c:1679,1
    - Dst: udat_adoptNumberFormat
      Src: /src/icu/source/test/cintltst/cdattst.c:1683,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cdattst.c:1684,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1689,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cdattst.c:1696,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cdattst.c:1713,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:1631,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cdattst.c:1629,1
    - Dst: udat_setNumberFormat
      Src: /src/icu/source/test/cintltst/cdattst.c:1657,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cdattst.c:1663,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cdattst.c:1656,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1654,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1672,1
    - Dst: udat_adoptNumberFormat
      Src: /src/icu/source/test/cintltst/cdattst.c:1695,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1699,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1712,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cdattst.c:1711,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cdattst.c:1713,1
    - Dst: udat_adoptNumberFormatForFields
      Src: /src/icu/source/test/cintltst/cdattst.c:1642,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1648,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1661,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cdattst.c:1670,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cdattst.c:1673,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cdattst.c:1682,1
    - Dst: udat_adoptNumberFormatForFields
      Src: /src/icu/source/test/cintltst/cdattst.c:1692,1
    - Dst: udat_adoptNumberFormatForFields
      Src: /src/icu/source/test/cintltst/cdattst.c:1704,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cdattst.c:1705,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cdattst.c:1709,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 84
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1717
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1717
    functionName: TestOverrideNumberFormat
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - udat_adoptNumberFormat
    - unum_close
    - U_SUCCESS
    - unum_open
    - udat_close
    - udat_open
    - udat_format
    - U_FAILURE
    - u_austrncpy
    - u_strlen
    - u_strncmp
    - UPRV_LENGTHOF
    - u_uastrcpy
    - u_unescape
    - strcmp
    - log_err
    - udat_setNumberFormat
    - udat_adoptNumberFormatForFields
    - assertSuccess
    - udat_getNumberFormatForField
    linkageType: ''
    returnType: void
    signature: 'static void TestOverrideNumberFormat(void) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1793,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1813,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1807,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cdattst.c:1814,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1830,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1831,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1837,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cdattst.c:1838,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cdattst.c:1841,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1793,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1795,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1792,1
    - Dst: ufieldpositer_next
      Src: /src/icu/source/test/cintltst/cdattst.c:1834,1
    - Dst: ufieldpositer_next
      Src: /src/icu/source/test/cintltst/cdattst.c:1857,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1859,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cdattst.c:1860,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1864,1
    - Dst: ufieldpositer_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1791,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1797,1
    - Dst: udat_applyPattern
      Src: /src/icu/source/test/cintltst/cdattst.c:1851,1
    - Dst: udat_formatForFields
      Src: /src/icu/source/test/cintltst/cdattst.c:1853,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1854,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1855,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1865,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1831,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1796,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1798,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1798,1
    - Dst: udat_formatForFields
      Src: /src/icu/source/test/cintltst/cdattst.c:1805,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1806,1
    - Dst: ufieldpositer_next
      Src: /src/icu/source/test/cintltst/cdattst.c:1810,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1816,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cdattst.c:1817,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/cdattst.c:1827,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1807,1
    - Dst: udat_formatCalendarForFields
      Src: /src/icu/source/test/cintltst/cdattst.c:1829,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1840,1
    - Dst: ufieldpositer_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1867,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1855,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 91
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1869
      start: 1789
    functionDepth: 0
    functionLinenumber: 1789
    functionLinenumberEnd: 1869
    functionName: TestFormatForFields
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - udat_open
    - ufieldpositer_close
    - udat_formatCalendarForFields
    - U_FAILURE
    - ufieldpositer_next
    - ufieldpositer_open
    - log_data_err
    - aescstrdup
    - ucal_setMillis
    - ucal_open
    - ucal_close
    - log_err
    - udat_applyPattern
    - udat_close
    - u_errorName
    - udat_formatForFields
    linkageType: ''
    returnType: void
    signature: 'static void TestFormatForFields(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cdattst.c:52,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cdattst.c:55,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cdattst.c:53,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cdattst.c:54,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cdattst.c:56,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cdattst.c:57,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cdattst.c:58,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cdattst.c:59,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cdattst.c:60,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cdattst.c:61,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cdattst.c:62,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cdattst.c:64,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cdattst.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: addDateForTest
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - TESTCASE
    linkageType: ''
    returnType: void
    signature: 'void addDateForTest(TestNode** root) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:1062,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cdattst.c:1065,1
    - Dst: udat_getSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:1067,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdattst.c:1072,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cdattst.c:1064,1
    - Dst: udat_getSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:1073,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1076,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1078,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1078,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdattst.c:1081,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cdattst.c:1085,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdattst.c:1088,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1082,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1084,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cdattst.c:1087,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - datfor
    - type
    - idx
    - expected
    argTypes:
    - UDateFormat*
    - UDateFormatSymbolType
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 1089
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1089
    functionName: VerifygetSymbols
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - malloc
    - u_unescape
    - U_FAILURE
    - log_data_err
    - u_strcmp
    - free
    - myErrorName
    - log_verbose
    - log_err
    - strlen
    - udat_getSymbols
    - aescstrdup
    linkageType: ''
    returnType: void
    signature: 'static void VerifygetSymbols(UDateFormat* datfor, UDateFormatSymbolType
      type, int32_t idx, const char* expected) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cdattst.c:1195,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cdattst.c:1202,1
    - Dst: ctst_malloc
      Src: /src/icu/source/test/cintltst/cdattst.c:1201,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1204,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1206,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1206,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - numfor
    - d
    argTypes:
    - UNumberFormat*
    - double
    constantsTouched: []
    func_position:
      end: 1211
      start: 1188
    functionDepth: 0
    functionLinenumber: 1188
    functionLinenumberEnd: 1211
    functionName: myNumformat
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - myErrorName
    - unum_formatDouble
    - ctst_malloc
    - log_err
    linkageType: ''
    returnType: UChar*
    signature: 'static UChar * myNumformat(const UNumberFormat* numfor, double d) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/cdattst.c:1227,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1233,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cdattst.c:1229,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cdattst.c:1228,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1231,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 6
    argNames:
    - fmt
    - date
    - buf
    - buflen
    - cbuf
    - ec
    argTypes:
    - UDateFormat*
    - UDate
    - UChar*
    - int32_t
    - char*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 1236
      start: 1224
    functionDepth: 0
    functionLinenumber: 1224
    functionLinenumberEnd: 1236
    functionName: _aux1ExtremeDates
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - udat_format
    - assertSuccess
    - u_austrncpy
    - log_verbose
    - log_err
    linkageType: ''
    returnType: UBool
    signature: 'static UBool _aux1ExtremeDates(UDateFormat* fmt, UDate date, UChar*
      buf, int32_t buflen, char* cbuf, UErrorCode* ec) '
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/cdattst.c:436,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:440,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:485,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:530,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/cdattst.c:492,1
    - Dst: ucal_getNow
      Src: /src/icu/source/test/cintltst/cdattst.c:431,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:456,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:457,1
    - Dst: udat_applyPatternRelative
      Src: /src/icu/source/test/cintltst/cdattst.c:508,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:502,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:495,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:497,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:462,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:483,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:496,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:505,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:538,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:540,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:478,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:516,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:524,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/cdattst.c:434,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:470,1
    - Dst: udat_toPatternRelativeDate
      Src: /src/icu/source/test/cintltst/cdattst.c:474,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:522,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:466,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:468,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:469,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:530,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:529,1
    - Dst: udat_applyPatternRelative
      Src: /src/icu/source/test/cintltst/cdattst.c:495,1
    - Dst: udat_toPattern
      Src: /src/icu/source/test/cintltst/cdattst.c:500,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:533,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdattst.c:536,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:546,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:557,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:560,1
    - Dst: udat_toPattern
      Src: /src/icu/source/test/cintltst/cdattst.c:488,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:461,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:462,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:482,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:483,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:547,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:516,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:515,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/cdattst.c:431,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/cdattst.c:435,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:476,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:501,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:550,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:567,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:439,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/cdattst.c:485,1
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/cdattst.c:545,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/cdattst.c:549,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/cdattst.c:432,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:455,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:539,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:523,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cdattst.c:429,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/cdattst.c:437,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:493,1
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/cdattst.c:514,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:490,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:566,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/cdattst.c:504,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/cdattst.c:478,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/cdattst.c:492,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:508,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:475,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:476,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:467,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:486,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:502,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:457,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:463,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:468,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:547,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:565,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:489,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:497,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/cdattst.c:433,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:460,1
    - Dst: udat_toPatternRelativeTime
      Src: /src/icu/source/test/cintltst/cdattst.c:481,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:490,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:492,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:508,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/cdattst.c:532,1
    - Dst: u_strstr
      Src: /src/icu/source/test/cintltst/cdattst.c:553,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:495,1
    - Dst: udat_parse
      Src: /src/icu/source/test/cintltst/cdattst.c:520,1
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/cdattst.c:528,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cdattst.c:428,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdattst.c:440,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:479,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 189
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 569
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 569
    functionName: TestRelativeDateFormat
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - udat_toPatternRelativeDate
    - ucal_setDateTime
    - ucal_get
    - U_SUCCESS
    - udat_applyPatternRelative
    - u_strstr
    - udat_close
    - ucal_getMillis
    - udat_open
    - udat_format
    - U_FAILURE
    - log_data_err
    - u_strlen
    - ucal_close
    - ucal_setMillis
    - udat_toPattern
    - udat_parse
    - ucal_open
    - log_err
    - udat_toPatternRelativeTime
    - ucal_getNow
    - myErrorName
    linkageType: ''
    returnType: void
    signature: 'static void TestRelativeDateFormat() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cdattst.c:977,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cdattst.c:974,1
    - Dst: udat_setLenient
      Src: /src/icu/source/test/cintltst/cdattst.c:986,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/cdattst.c:999,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1007,1
    - Dst: udat_applyPattern
      Src: /src/icu/source/test/cintltst/cdattst.c:1017,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:1017,1
    - Dst: udat_parseCalendar
      Src: /src/icu/source/test/cintltst/cdattst.c:1018,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1023,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1033,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1023,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1007,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cdattst.c:973,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:980,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:981,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:982,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/cdattst.c:994,1
    - Dst: getCurrentYear
      Src: /src/icu/source/test/cintltst/cdattst.c:989,1
    - Dst: udat_set2DigitYearStart
      Src: /src/icu/source/test/cintltst/cdattst.c:996,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/cdattst.c:996,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:1002,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/cdattst.c:1005,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1035,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1034,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cdattst.c:972,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:982,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cdattst.c:993,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/cdattst.c:995,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1006,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:1018,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/cdattst.c:1021,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1028,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cdattst.c:976,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cdattst.c:978,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cdattst.c:985,1
    - Dst: udat_applyPattern
      Src: /src/icu/source/test/cintltst/cdattst.c:985,1
    - Dst: getCurrentYear
      Src: /src/icu/source/test/cintltst/cdattst.c:988,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cdattst.c:998,1
    - Dst: ucal_setDateTime
      Src: /src/icu/source/test/cintltst/cdattst.c:1000,1
    - Dst: udat_parseCalendar
      Src: /src/icu/source/test/cintltst/cdattst.c:1002,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1012,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1022,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 1036
    functionName: TestCalendarDateParse
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - ucal_setDateTime
    - ucal_get
    - U_STRING_INIT
    - udat_close
    - u_errorName
    - ucal_getMillis
    - udat_open
    - U_STRING_DECL
    - U_FAILURE
    - log_data_err
    - u_strlen
    - ucal_setMillis
    - udat_setLenient
    - udat_parseCalendar
    - ucal_open
    - udat_applyPattern
    - log_err
    - udat_set2DigitYearStart
    - getCurrentYear
    linkageType: ''
    returnType: void
    signature: 'static void TestCalendarDateParse() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1285,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1288,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1288,1
    - Dst: _aux2ExtremeDates
      Src: /src/icu/source/test/cintltst/cdattst.c:1292,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1287,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cdattst.c:1292,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1273
    functionDepth: 0
    functionLinenumber: 1273
    functionLinenumberEnd: 1295
    functionName: TestExtremeDates
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - _aux2ExtremeDates
    - udat_open
    - U_FAILURE
    - log_data_err
    - udat_close
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestExtremeDates() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1044,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1048,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1045,1
    - Dst: ucal_get
      Src: /src/icu/source/test/cintltst/cdattst.c:1047,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1053
    functionName: getCurrentYear
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - ucal_open
    - ucal_close
    - ucal_get
    linkageType: ''
    returnType: int
    signature: 'static int getCurrentYear() '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1332,1
    - Dst: udat_clone
      Src: /src/icu/source/test/cintltst/cdattst.c:1346,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1349,1
    - Dst: udat_toPattern
      Src: /src/icu/source/test/cintltst/cdattst.c:1370,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1386,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1422,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1393,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1396,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1410,1
    - Dst: udat_countSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:1417,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1396,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1428,1
    - Dst: udat_setSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:1406,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1408,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1405,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1337,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1348,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1357,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1351,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1362,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1369,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1374,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1380,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1384,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1384,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1398,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1422,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1410,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1428,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1326,1
    - Dst: udat_set2DigitYearStart
      Src: /src/icu/source/test/cintltst/cdattst.c:1333,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cdattst.c:1327,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1335,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1335,1
    - Dst: udat_get2DigitYearStart
      Src: /src/icu/source/test/cintltst/cdattst.c:1358,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1360,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1360,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1372,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1372,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1386,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1408,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cdattst.c:1394,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1398,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1416,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1422,1
    - Dst: udat_getSymbols
      Src: /src/icu/source/test/cintltst/cdattst.c:1394,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1410,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1426,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1337,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1337,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1345,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1351,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1351,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1348,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1362,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1362,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1374,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1374,1
    - Dst: udat_applyPattern
      Src: /src/icu/source/test/cintltst/cdattst.c:1381,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1420,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdattst.c:1420,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1386,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 109
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1430
      start: 1318
    functionDepth: 0
    functionLinenumber: 1318
    functionLinenumberEnd: 1430
    functionName: TestRelativeCrash
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - udat_open
    - udat_toPattern
    - UPRV_LENGTHOF
    - log_data_err
    - udat_setSymbols
    - U_SUCCESS
    - udat_countSymbols
    - log_verbose
    - log_err
    - udat_close
    - udat_clone
    - udat_applyPattern
    - udat_getSymbols
    - udat_get2DigitYearStart
    - u_errorName
    - udat_set2DigitYearStart
    linkageType: ''
    returnType: void
    signature: 'static void TestRelativeCrash(void) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: udatpg_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1506,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cdattst.c:1510,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cdattst.c:1514,1
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/cdattst.c:1516,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1517,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1524,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cdattst.c:1526,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cdattst.c:1521,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1533,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cdattst.c:1557,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1581,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cdattst.c:1559,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1580,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1597,1
    - Dst: udatpg_getBestPattern
      Src: /src/icu/source/test/cintltst/cdattst.c:1509,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1511,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1530,1
    - Dst: udat_getContext
      Src: /src/icu/source/test/cintltst/cdattst.c:1528,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1531,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1540,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1542,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1542,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1556,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1570,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1584,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1590,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cdattst.c:1578,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1582,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/test/cintltst/cdattst.c:1575,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cdattst.c:1512,1
    - Dst: udat_setContext
      Src: /src/icu/source/test/cintltst/cdattst.c:1513,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1519,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1518,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1537,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1538,1
    - Dst: udatpg_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1547,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1549,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1549,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cdattst.c:1555,1
    - Dst: udat_setContext
      Src: /src/icu/source/test/cintltst/cdattst.c:1558,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cdattst.c:1572,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cdattst.c:1572,1
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/cdattst.c:1579,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cdattst.c:1583,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cdattst.c:1586,1
    - Dst: ucal_add
      Src: /src/icu/source/test/cintltst/cdattst.c:1576,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/cdattst.c:1577,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1595,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1595,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cdattst.c:1586,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cdattst.c:1507,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1529,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cdattst.c:1526,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1545,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1545,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1554,1
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/cdattst.c:1564,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1566,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1567,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1568,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1599,1
    - Dst: ucal_getNow
      Src: /src/icu/source/test/cintltst/cdattst.c:1560,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1591,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1599,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cdattst.c:1569,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1593,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 106
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1602
      start: 1501
    functionDepth: 0
    functionLinenumber: 1501
    functionLinenumberEnd: 1602
    functionName: TestContext
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - udatpg_open
    - ucal_add
    - U_SUCCESS
    - udat_close
    - u_errorName
    - ucal_getMillis
    - udat_open
    - udatpg_close
    - udat_format
    - U_FAILURE
    - log_data_err
    - u_austrncpy
    - ucal_close
    - u_strncmp
    - ucal_setMillis
    - udat_setContext
    - ucal_open
    - log_err
    - udat_getContext
    - ucal_getNow
    - udatpg_getBestPattern
    linkageType: ''
    returnType: void
    signature: 'static void TestContext(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: udatpg_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1879,1
    - Dst: udatpg_getBestPattern
      Src: /src/icu/source/test/cintltst/cdattst.c:1884,1
    - Dst: udat_open
      Src: /src/icu/source/test/cintltst/cdattst.c:1888,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1895,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1895,1
    - Dst: udatpg_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1904,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1881,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1881,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1894,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1886,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1886,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdattst.c:1890,1
    - Dst: udat_format
      Src: /src/icu/source/test/cintltst/cdattst.c:1893,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cdattst.c:1898,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1899,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdattst.c:1890,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1880,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1885,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdattst.c:1889,1
    - Dst: udat_close
      Src: /src/icu/source/test/cintltst/cdattst.c:1901,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1906
      start: 1871
    functionDepth: 0
    functionLinenumber: 1871
    functionLinenumberEnd: 1906
    functionName: TestForceGannenNumbering
    functionSourceFile: /src/icu/source/test/cintltst/cdattst.c
    functionUses: []
    functionsReached:
    - udatpg_open
    - udat_open
    - udatpg_close
    - udat_format
    - U_FAILURE
    - log_data_err
    - u_austrncpy
    - log_err
    - udat_close
    - udatpg_getBestPattern
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestForceGannenNumbering(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utmscale_toInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:103,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:106,1
    - Dst: utmscale_fromInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - value
    - scale
    argTypes:
    - int64_t
    - UDateTimeScale
    constantsTouched: []
    func_position:
      end: 108
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 108
    functionName: roundTripTest
    functionSourceFile: /src/icu/source/test/cintltst/utmstest.c
    functionUses: []
    functionsReached:
    - utmscale_fromInt64
    - utmscale_toInt64
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void roundTripTest(int64_t value, UDateTimeScale scale) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - min
    - max
    argTypes:
    - int64_t
    - int64_t
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: initRandom
    functionSourceFile: /src/icu/source/test/cintltst/utmstest.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void initRandom(int64_t min, int64_t max) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: srand
      Src: /src/icu/source/test/cintltst/utmstest.c:49,1
    - Dst: rand
      Src: /src/icu/source/test/cintltst/utmstest.c:55,1
    - Dst: time
      Src: /src/icu/source/test/cintltst/utmstest.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 59
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 59
    functionName: randomInt64
    functionSourceFile: /src/icu/source/test/cintltst/utmstest.c
    functionUses: []
    functionsReached:
    - srand
    - rand
    - time
    linkageType: ''
    returnType: uint64_t
    signature: 'static uint64_t randomInt64(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: utmscale_toInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:126,1
    - Dst: utmscale_fromInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:138,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:129,1
    - Dst: utmscale_toInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:132,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:135,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:141,1
    - Dst: utmscale_fromInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:144,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - epochOffset
    - units
    - scale
    argTypes:
    - int64_t
    - int64_t
    - UDateTimeScale
    constantsTouched: []
    func_position:
      end: 149
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 149
    functionName: epochOffsetTest
    functionSourceFile: /src/icu/source/test/cintltst/utmstest.c
    functionUses: []
    functionsReached:
    - utmscale_fromInt64
    - utmscale_toInt64
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void epochOffsetTest(int64_t epochOffset, int64_t units, UDateTimeScale
      scale) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utmscale_getTimeScaleValue
      Src: /src/icu/source/test/cintltst/utmstest.c:170,1
    - Dst: roundTripTest
      Src: /src/icu/source/test/cintltst/utmstest.c:174,1
    - Dst: utmscale_getTimeScaleValue
      Src: /src/icu/source/test/cintltst/utmstest.c:171,1
    - Dst: roundTripTest
      Src: /src/icu/source/test/cintltst/utmstest.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 176
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 176
    functionName: TestFromLimits
    functionSourceFile: /src/icu/source/test/cintltst/utmstest.c
    functionUses: []
    functionsReached:
    - roundTripTest
    - utmscale_getTimeScaleValue
    linkageType: ''
    returnType: void
    signature: 'static void TestFromLimits(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: utmscale_fromInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:200,1
    - Dst: utmscale_fromInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:214,1
    - Dst: utmscale_getTimeScaleValue
      Src: /src/icu/source/test/cintltst/utmstest.c:210,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:203,1
    - Dst: utmscale_getTimeScaleValue
      Src: /src/icu/source/test/cintltst/utmstest.c:211,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:216,1
    - Dst: utmscale_fromInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:220,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:222,1
    - Dst: utmscale_fromInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:227,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:229,1
    - Dst: utmscale_fromInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:241,1
    - Dst: utmscale_fromInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:234,1
    - Dst: utmscale_fromInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:249,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:251,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:243,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:236,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 57
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 253
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 253
    functionName: TestFromInt64
    functionSourceFile: /src/icu/source/test/cintltst/utmstest.c
    functionUses: []
    functionsReached:
    - utmscale_getTimeScaleValue
    - utmscale_fromInt64
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestFromInt64(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFromInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:319,1
    - Dst: TestToInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: TestAPI
    functionSourceFile: /src/icu/source/test/cintltst/utmstest.c
    functionUses: []
    functionsReached:
    - TestFromInt64
    - TestToInt64
    linkageType: ''
    returnType: void
    signature: 'static void TestAPI(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utmscale_getTimeScaleValue
      Src: /src/icu/source/test/cintltst/utmstest.c:336,1
    - Dst: initRandom
      Src: /src/icu/source/test/cintltst/utmstest.c:340,1
    - Dst: roundTripTest
      Src: /src/icu/source/test/cintltst/utmstest.c:345,1
    - Dst: utmscale_getTimeScaleValue
      Src: /src/icu/source/test/cintltst/utmstest.c:337,1
    - Dst: randomInRange
      Src: /src/icu/source/test/cintltst/utmstest.c:343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 348
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 348
    functionName: TestMonkey
    functionSourceFile: /src/icu/source/test/cintltst/utmstest.c
    functionUses: []
    functionsReached:
    - initRandom
    - roundTripTest
    - randomInRange
    - utmscale_getTimeScaleValue
    linkageType: ''
    returnType: void
    signature: 'static void TestMonkey(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utmstest.c:33,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utmstest.c:34,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utmstest.c:36,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utmstest.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: addUtmsTest
    functionSourceFile: /src/icu/source/test/cintltst/utmstest.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addUtmsTest(TestNode** root) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: randomInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:84,1
    - Dst: randomInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 98
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 98
    functionName: randomInRange
    functionSourceFile: /src/icu/source/test/cintltst/utmstest.c
    functionUses: []
    functionsReached:
    - randomInt64
    linkageType: ''
    returnType: int64_t
    signature: 'static int64_t randomInRange(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utmscale_toInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:113,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - toLimit
    - fromLimit
    - scale
    argTypes:
    - int64_t
    - int64_t
    - UDateTimeScale
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: toLimitTest
    functionSourceFile: /src/icu/source/test/cintltst/utmstest.c
    functionUses: []
    functionsReached:
    - utmscale_toInt64
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void toLimitTest(int64_t toLimit, int64_t fromLimit, UDateTimeScale
      scale) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utmscale_getTimeScaleValue
      Src: /src/icu/source/test/cintltst/utmstest.c:157,1
    - Dst: utmscale_getTimeScaleValue
      Src: /src/icu/source/test/cintltst/utmstest.c:158,1
    - Dst: epochOffsetTest
      Src: /src/icu/source/test/cintltst/utmstest.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 162
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 162
    functionName: TestEpochOffsets
    functionSourceFile: /src/icu/source/test/cintltst/utmstest.c
    functionUses: []
    functionsReached:
    - epochOffsetTest
    - utmscale_getTimeScaleValue
    linkageType: ''
    returnType: void
    signature: 'static void TestEpochOffsets(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utmscale_getTimeScaleValue
      Src: /src/icu/source/test/cintltst/utmstest.c:184,1
    - Dst: utmscale_getTimeScaleValue
      Src: /src/icu/source/test/cintltst/utmstest.c:186,1
    - Dst: utmscale_getTimeScaleValue
      Src: /src/icu/source/test/cintltst/utmstest.c:187,1
    - Dst: toLimitTest
      Src: /src/icu/source/test/cintltst/utmstest.c:189,1
    - Dst: utmscale_getTimeScaleValue
      Src: /src/icu/source/test/cintltst/utmstest.c:185,1
    - Dst: toLimitTest
      Src: /src/icu/source/test/cintltst/utmstest.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 192
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 192
    functionName: TestToLimits
    functionSourceFile: /src/icu/source/test/cintltst/utmstest.c
    functionUses: []
    functionsReached:
    - toLimitTest
    - utmscale_getTimeScaleValue
    linkageType: ''
    returnType: void
    signature: 'static void TestToLimits(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: utmscale_toInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:261,1
    - Dst: utmscale_toInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:275,1
    - Dst: utmscale_getTimeScaleValue
      Src: /src/icu/source/test/cintltst/utmstest.c:271,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:264,1
    - Dst: utmscale_getTimeScaleValue
      Src: /src/icu/source/test/cintltst/utmstest.c:272,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:277,1
    - Dst: utmscale_toInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:281,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:283,1
    - Dst: utmscale_toInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:288,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:290,1
    - Dst: utmscale_toInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:296,1
    - Dst: utmscale_toInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:303,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:313,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:298,1
    - Dst: utmscale_toInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:311,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:305,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 57
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 315
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 315
    functionName: TestToInt64
    functionSourceFile: /src/icu/source/test/cintltst/utmstest.c
    functionUses: []
    functionsReached:
    - utmscale_getTimeScaleValue
    - utmscale_toInt64
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestToInt64(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEpochOffsets
      Src: /src/icu/source/test/cintltst/utmstest.c:325,1
    - Dst: TestFromLimits
      Src: /src/icu/source/test/cintltst/utmstest.c:326,1
    - Dst: TestToLimits
      Src: /src/icu/source/test/cintltst/utmstest.c:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: TestData
    functionSourceFile: /src/icu/source/test/cintltst/utmstest.c
    functionUses: []
    functionsReached:
    - TestEpochOffsets
    - TestFromLimits
    - TestToLimits
    linkageType: ''
    returnType: void
    signature: 'static void TestData(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INT64_C
      Src: /src/icu/source/test/cintltst/utmstest.c:446,1
    - Dst: INT64_C
      Src: /src/icu/source/test/cintltst/utmstest.c:447,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/utmstest.c:459,1
    - Dst: ucal_open
      Src: /src/icu/source/test/cintltst/utmstest.c:457,1
    - Dst: ucal_setGregorianChange
      Src: /src/icu/source/test/cintltst/utmstest.c:458,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/utmstest.c:460,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/utmstest.c:460,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/utmstest.c:461,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utmstest.c:464,1
    - Dst: utmscale_toInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:467,1
    - Dst: ucal_clear
      Src: /src/icu/source/test/cintltst/utmstest.c:468,1
    - Dst: ucal_setDate
      Src: /src/icu/source/test/cintltst/utmstest.c:469,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:473,1
    - Dst: ucal_close
      Src: /src/icu/source/test/cintltst/utmstest.c:486,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utmstest.c:481,1
    - Dst: utmscale_fromInt64
      Src: /src/icu/source/test/cintltst/utmstest.c:478,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/test/cintltst/utmstest.c:470,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 487
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 487
    functionName: TestDotNet
    functionSourceFile: /src/icu/source/test/cintltst/utmstest.c
    functionUses: []
    functionsReached:
    - INT64_C
    - ucal_setGregorianChange
    - utmscale_toInt64
    - U_FAILURE
    - utmscale_fromInt64
    - ucal_setDate
    - log_data_err
    - ucal_open
    - ucal_close
    - log_err
    - UPRV_LENGTHOF
    - ucal_clear
    - u_errorName
    - ucal_getMillis
    linkageType: ''
    returnType: void
    signature: 'static void TestDotNet() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/hpmufn.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: addHeapMutexTest
    functionSourceFile: /src/icu/source/test/cintltst/hpmufn.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addHeapMutexTest(TestNode** root) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/icu/source/test/cintltst/hpmufn.c:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - context
    - mem
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: myMemFree
    functionSourceFile: /src/icu/source/test/cintltst/hpmufn.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV myMemFree(const void *context, void *mem) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/hpmufn.c:89,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - context
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: myMemAlloc
    functionSourceFile: /src/icu/source/test/cintltst/hpmufn.c
    functionUses: []
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void*
    signature: 'static void * U_CALLCONV myMemAlloc(const void *context, size_t size) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/icu/source/test/cintltst/hpmufn.c:116,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 3
    argNames:
    - context
    - mem
    - size
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 121
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 121
    functionName: myMemRealloc
    functionSourceFile: /src/icu/source/test/cintltst/hpmufn.c
    functionUses: []
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void*
    signature: 'static void * U_CALLCONV myMemRealloc(const void *context, void *mem,
      size_t size) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: safeGetICUDataDirectory
      Src: /src/icu/source/test/cintltst/hpmufn.c:130,1
    - Dst: u_cleanup
      Src: /src/icu/source/test/cintltst/hpmufn.c:140,1
    - Dst: ctest_resetICU
      Src: /src/icu/source/test/cintltst/hpmufn.c:137,1
    - Dst: u_setMemoryFunctions
      Src: /src/icu/source/test/cintltst/hpmufn.c:150,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/hpmufn.c:173,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/hpmufn.c:175,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/hpmufn.c:181,1
    - Dst: u_init
      Src: /src/icu/source/test/cintltst/hpmufn.c:184,1
    - Dst: TEST_STATUS
      Src: /src/icu/source/test/cintltst/hpmufn.c:191,1
    - Dst: u_setMemoryFunctions
      Src: /src/icu/source/test/cintltst/hpmufn.c:147,1
    - Dst: TEST_STATUS
      Src: /src/icu/source/test/cintltst/hpmufn.c:151,1
    - Dst: TEST_STATUS
      Src: /src/icu/source/test/cintltst/hpmufn.c:165,1
    - Dst: u_init
      Src: /src/icu/source/test/cintltst/hpmufn.c:164,1
    - Dst: TEST_STATUS
      Src: /src/icu/source/test/cintltst/hpmufn.c:185,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/hpmufn.c:195,1
    - Dst: ctest_resetICU
      Src: /src/icu/source/test/cintltst/hpmufn.c:198,1
    - Dst: u_setMemoryFunctions
      Src: /src/icu/source/test/cintltst/hpmufn.c:144,1
    - Dst: TEST_STATUS
      Src: /src/icu/source/test/cintltst/hpmufn.c:148,1
    - Dst: u_setMemoryFunctions
      Src: /src/icu/source/test/cintltst/hpmufn.c:155,1
    - Dst: u_setDataDirectory
      Src: /src/icu/source/test/cintltst/hpmufn.c:163,1
    - Dst: TEST_STATUS
      Src: /src/icu/source/test/cintltst/hpmufn.c:158,1
    - Dst: TEST_STATUS
      Src: /src/icu/source/test/cintltst/hpmufn.c:171,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/hpmufn.c:170,1
    - Dst: ctest_resetICU
      Src: /src/icu/source/test/cintltst/hpmufn.c:178,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/hpmufn.c:190,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/hpmufn.c:193,1
    - Dst: TEST_STATUS
      Src: /src/icu/source/test/cintltst/hpmufn.c:145,1
    - Dst: TEST_STATUS
      Src: /src/icu/source/test/cintltst/hpmufn.c:156,1
    - Dst: u_setMemoryFunctions
      Src: /src/icu/source/test/cintltst/hpmufn.c:157,1
    - Dst: u_getUnicodeVersion
      Src: /src/icu/source/test/cintltst/hpmufn.c:179,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/hpmufn.c:196,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 199
    functionName: TestHeapFunctions
    functionSourceFile: /src/icu/source/test/cintltst/hpmufn.c
    functionUses: []
    functionsReached:
    - u_setMemoryFunctions
    - TEST_STATUS
    - u_getUnicodeVersion
    - ures_close
    - u_cleanup
    - safeGetICUDataDirectory
    - u_setDataDirectory
    - ctest_resetICU
    - free
    - u_init
    - log_err
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestHeapFunctions() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_getDataDirectory
      Src: /src/icu/source/test/cintltst/hpmufn.c:65,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/hpmufn.c:68,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/hpmufn.c:69,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/hpmufn.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: safeGetICUDataDirectory
    functionSourceFile: /src/icu/source/test/cintltst/hpmufn.c
    functionUses: []
    functionsReached:
    - strlen
    - u_getDataDirectory
    - strcpy
    - malloc
    linkageType: ''
    returnType: char*
    signature: 'static char *safeGetICUDataDirectory() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdapi.c:36,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:37,1
    - Dst: scriptsToString
      Src: /src/icu/source/test/cintltst/cucdapi.c:41,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:37,1
    - Dst: scriptsToString
      Src: /src/icu/source/test/cintltst/cucdapi.c:40,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cucdapi.c:42,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 6
    argNames:
    - msg
    - scripts1
    - length1
    - scripts2
    - length2
    - errorCode
    argTypes:
    - char*
    - UScriptCode
    - int32_t
    - UScriptCode
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: assertEqualScripts
    functionSourceFile: /src/icu/source/test/cintltst/cucdapi.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - strcmp
    - log_data_err
    - log_err
    - scriptsToString
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void assertEqualScripts(const char *msg, const UScriptCode
      scripts1[], int32_t length1, const UScriptCode scripts2[], int32_t length2,
      UErrorCode errorCode) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:518,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:529,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:527,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:534,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:545,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:508,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:513,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:509,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:511,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:519,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:521,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:532,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:533,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:537,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:547,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:510,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:524,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:525,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:540,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:541,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:543,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:516,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:517,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:526,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:535,1
    - Dst: uscript_hasScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:542,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:549,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 551
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 551
    functionName: TestHasScript
    functionSourceFile: /src/icu/source/test/cintltst/cucdapi.c
    functionUses: []
    functionsReached:
    - uscript_hasScript
    - log_err
    linkageType: ''
    returnType: void
    signature: 'void TestHasScript() '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:130,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:174,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:247,1
    - Dst: uscript_getName
      Src: /src/icu/source/test/cintltst/cucdapi.c:209,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cucdapi.c:250,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:484,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:107,1
    - Dst: uscript_getName
      Src: /src/icu/source/test/cintltst/cucdapi.c:137,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:181,1
    - Dst: assertEqualScripts
      Src: /src/icu/source/test/cintltst/cucdapi.c:182,1
    - Dst: uscript_getCode
      Src: /src/icu/source/test/cintltst/cucdapi.c:189,1
    - Dst: uscript_getScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:321,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:461,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdapi.c:480,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:481,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:142,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:357,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:462,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:475,1
    - Dst: uscript_getScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:497,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:326,1
    - Dst: uscript_getScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:354,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:129,1
    - Dst: uscript_getScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:498,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:113,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cucdapi.c:471,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:216,1
    - Dst: uscript_getCode
      Src: /src/icu/source/test/cintltst/cucdapi.c:181,1
    - Dst: uscript_getShortName
      Src: /src/icu/source/test/cintltst/cucdapi.c:470,1
    - Dst: uscript_getScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:343,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:135,1
    - Dst: assertEqualScripts
      Src: /src/icu/source/test/cintltst/cucdapi.c:171,1
    - Dst: uscript_getCode
      Src: /src/icu/source/test/cintltst/cucdapi.c:174,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:251,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:361,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:178,1
    - Dst: assertEqualScripts
      Src: /src/icu/source/test/cintltst/cucdapi.c:179,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:211,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:479,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdapi.c:499,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cucdapi.c:367,1
    - Dst: uscript_getCode
      Src: /src/icu/source/test/cintltst/cucdapi.c:162,1
    - Dst: uscript_getCode
      Src: /src/icu/source/test/cintltst/cucdapi.c:165,1
    - Dst: uscript_getCode
      Src: /src/icu/source/test/cintltst/cucdapi.c:170,1
    - Dst: uscript_getCode
      Src: /src/icu/source/test/cintltst/cucdapi.c:184,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cucdapi.c:215,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cucdapi.c:467,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:487,1
    - Dst: uscript_getScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:496,1
    - Dst: uscript_getCode
      Src: /src/icu/source/test/cintltst/cucdapi.c:128,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:256,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:468,1
    - Dst: uscript_getCode
      Src: /src/icu/source/test/cintltst/cucdapi.c:178,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:208,1
    - Dst: uscript_getCode
      Src: /src/icu/source/test/cintltst/cucdapi.c:479,1
    - Dst: uscript_getShortName
      Src: /src/icu/source/test/cintltst/cucdapi.c:248,1
    - Dst: uscript_getName
      Src: /src/icu/source/test/cintltst/cucdapi.c:136,1
    - Dst: uscript_getName
      Src: /src/icu/source/test/cintltst/cucdapi.c:466,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:331,1
    - Dst: uscript_getName
      Src: /src/icu/source/test/cintltst/cucdapi.c:366,1
    - Dst: assertEqualScripts
      Src: /src/icu/source/test/cintltst/cucdapi.c:175,1
    - Dst: uscript_getCode
      Src: /src/icu/source/test/cintltst/cucdapi.c:123,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:131,1
    - Dst: assertEqualScripts
      Src: /src/icu/source/test/cintltst/cucdapi.c:163,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:165,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:162,1
    - Dst: assertEqualScripts
      Src: /src/icu/source/test/cintltst/cucdapi.c:166,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:170,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:176,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:184,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:345,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:472,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:481,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:501,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cucdapi.c:324,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:133,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:144,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:172,1
    - Dst: assertEqualScripts
      Src: /src/icu/source/test/cintltst/cucdapi.c:185,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:189,1
    - Dst: assertEqualScripts
      Src: /src/icu/source/test/cintltst/cucdapi.c:190,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdapi.c:322,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:337,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:368,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:330,1
    - Dst: uscript_getCode
      Src: /src/icu/source/test/cintltst/cucdapi.c:105,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:221,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:320,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 223
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 504
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 504
    functionName: TestUScriptCodeAPI
    functionSourceFile: /src/icu/source/test/cintltst/cucdapi.c
    functionUses: []
    functionsReached:
    - uscript_getScript
    - U_FAILURE
    - uscript_getShortName
    - uscript_getName
    - log_data_err
    - strcmp
    - assertEqualScripts
    - u_getIntPropertyValue
    - U_SUCCESS
    - log_err
    - UPRV_LENGTHOF
    - uscript_getCode
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'void TestUScriptCodeAPI() '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:575,1
    - Dst: uscript_getScriptExtensions
      Src: /src/icu/source/test/cintltst/cucdapi.c:579,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:587,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:614,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:615,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:628,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:629,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:641,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:647,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:649,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:650,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:643,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:579,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:582,1
    - Dst: uscript_getScriptExtensions
      Src: /src/icu/source/test/cintltst/cucdapi.c:612,1
    - Dst: uscript_getScriptExtensions
      Src: /src/icu/source/test/cintltst/cucdapi.c:618,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdapi.c:619,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdapi.c:642,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdapi.c:648,1
    - Dst: scriptsContain
      Src: /src/icu/source/test/cintltst/cucdapi.c:636,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:644,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:620,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:618,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdapi.c:633,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:621,1
    - Dst: uscript_getScriptExtensions
      Src: /src/icu/source/test/cintltst/cucdapi.c:641,1
    - Dst: uscript_getScriptExtensions
      Src: /src/icu/source/test/cintltst/cucdapi.c:573,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:581,1
    - Dst: uscript_getScriptExtensions
      Src: /src/icu/source/test/cintltst/cucdapi.c:585,1
    - Dst: uscript_getScriptExtensions
      Src: /src/icu/source/test/cintltst/cucdapi.c:591,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:594,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:600,1
    - Dst: uscript_getScriptExtensions
      Src: /src/icu/source/test/cintltst/cucdapi.c:597,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:593,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:599,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:612,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:632,1
    - Dst: scriptsContain
      Src: /src/icu/source/test/cintltst/cucdapi.c:635,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:576,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:573,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:588,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:606,1
    - Dst: uscript_getScriptExtensions
      Src: /src/icu/source/test/cintltst/cucdapi.c:604,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:607,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdapi.c:613,1
    - Dst: uscript_getScriptExtensions
      Src: /src/icu/source/test/cintltst/cucdapi.c:626,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdapi.c:627,1
    - Dst: uscript_getScriptExtensions
      Src: /src/icu/source/test/cintltst/cucdapi.c:632,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:637,1
    - Dst: scriptsContain
      Src: /src/icu/source/test/cintltst/cucdapi.c:634,1
    - Dst: uscript_getScriptExtensions
      Src: /src/icu/source/test/cintltst/cucdapi.c:647,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:638,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 133
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 652
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 652
    functionName: TestGetScriptExtensions
    functionSourceFile: /src/icu/source/test/cintltst/cucdapi.c
    functionUses: []
    functionsReached:
    - uscript_getScriptExtensions
    - U_FAILURE
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    - scriptsContain
    linkageType: ''
    returnType: void
    signature: 'void TestGetScriptExtensions() '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:663,1
    - Dst: uscript_getScript
      Src: /src/icu/source/test/cintltst/cucdapi.c:661,1
    - Dst: uscript_getSampleString
      Src: /src/icu/source/test/cintltst/cucdapi.c:678,1
    - Dst: uscript_getUsage
      Src: /src/icu/source/test/cintltst/cucdapi.c:684,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdapi.c:673,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:681,1
    - Dst: uscript_getUsage
      Src: /src/icu/source/test/cintltst/cucdapi.c:688,1
    - Dst: uscript_isRightToLeft
      Src: /src/icu/source/test/cintltst/cucdapi.c:697,1
    - Dst: uscript_breaksBetweenLetters
      Src: /src/icu/source/test/cintltst/cucdapi.c:704,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:706,1
    - Dst: uscript_getSampleString
      Src: /src/icu/source/test/cintltst/cucdapi.c:659,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:675,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:681,1
    - Dst: uscript_getUsage
      Src: /src/icu/source/test/cintltst/cucdapi.c:689,1
    - Dst: uscript_isRightToLeft
      Src: /src/icu/source/test/cintltst/cucdapi.c:695,1
    - Dst: uscript_isRightToLeft
      Src: /src/icu/source/test/cintltst/cucdapi.c:696,1
    - Dst: uscript_breaksBetweenLetters
      Src: /src/icu/source/test/cintltst/cucdapi.c:702,1
    - Dst: uscript_breaksBetweenLetters
      Src: /src/icu/source/test/cintltst/cucdapi.c:703,1
    - Dst: uscript_breaksBetweenLetters
      Src: /src/icu/source/test/cintltst/cucdapi.c:705,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:659,1
    - Dst: uscript_getSampleString
      Src: /src/icu/source/test/cintltst/cucdapi.c:666,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:669,1
    - Dst: uscript_getSampleString
      Src: /src/icu/source/test/cintltst/cucdapi.c:672,1
    - Dst: uscript_getUsage
      Src: /src/icu/source/test/cintltst/cucdapi.c:686,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:675,1
    - Dst: uscript_getUsage
      Src: /src/icu/source/test/cintltst/cucdapi.c:690,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:692,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:699,1
    - Dst: uscript_isCased
      Src: /src/icu/source/test/cintltst/cucdapi.c:711,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:713,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdapi.c:660,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdapi.c:663,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:669,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:672,1
    - Dst: uscript_getUsage
      Src: /src/icu/source/test/cintltst/cucdapi.c:687,1
    - Dst: uscript_getUsage
      Src: /src/icu/source/test/cintltst/cucdapi.c:691,1
    - Dst: uscript_isRightToLeft
      Src: /src/icu/source/test/cintltst/cucdapi.c:698,1
    - Dst: uscript_isCased
      Src: /src/icu/source/test/cintltst/cucdapi.c:709,1
    - Dst: uscript_isCased
      Src: /src/icu/source/test/cintltst/cucdapi.c:710,1
    - Dst: uscript_isCased
      Src: /src/icu/source/test/cintltst/cucdapi.c:712,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 715
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 715
    functionName: TestScriptMetadataAPI
    functionSourceFile: /src/icu/source/test/cintltst/cucdapi.c
    functionUses: []
    functionsReached:
    - uscript_getScript
    - uscript_breaksBetweenLetters
    - U_FAILURE
    - uscript_getSampleString
    - uscript_getUsage
    - uscript_isCased
    - uscript_isRightToLeft
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'void TestScriptMetadataAPI() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:725,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:727,1
    - Dst: u_getPropertyValueEnum
      Src: /src/icu/source/test/cintltst/cucdapi.c:726,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdapi.c:730,1
    - Dst: u_getPropertyValueEnum
      Src: /src/icu/source/test/cintltst/cucdapi.c:731,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:732,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 735
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 735
    functionName: TestBinaryValues
    functionSourceFile: /src/icu/source/test/cintltst/cucdapi.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - u_getPropertyValueEnum
    - log_data_err
    linkageType: ''
    returnType: void
    signature: 'void TestBinaryValues() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cucdapi.c:18,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/cucdapi.c:24,1
    - Dst: uscript_getShortName
      Src: /src/icu/source/test/cintltst/cucdapi.c:26,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/cucdapi.c:26,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - scripts
    - length
    - s
    argTypes:
    - UScriptCode
    - int32_t
    - char
    constantsTouched: []
    func_position:
      end: 28
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 28
    functionName: scriptsToString
    functionSourceFile: /src/icu/source/test/cintltst/cucdapi.c
    functionUses: []
    functionsReached:
    - uscript_getShortName
    - strcpy
    - strcat
    linkageType: ''
    returnType: void
    signature: 'static void scriptsToString(const UScriptCode scripts[], int32_t length,
      char s[]) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdapi.c:559,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - scripts
    - length
    - script
    argTypes:
    - UScriptCode
    - int32_t
    - UScriptCode
    constantsTouched: []
    func_position:
      end: 564
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 564
    functionName: scriptsContain
    functionSourceFile: /src/icu/source/test/cintltst/cucdapi.c
    functionUses: []
    functionsReached:
    - log_err
    linkageType: ''
    returnType: UBool
    signature: 'static UBool scriptsContain(UScriptCode scripts[], int32_t length,
      UScriptCode script) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/cctest.c:24,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cctest.c:26,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cctest.c:27,1
    - Dst: u_getDefaultConverter
      Src: /src/icu/source/test/cintltst/cctest.c:24,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cctest.c:27,1
    - Dst: u_getDefaultConverter
      Src: /src/icu/source/test/cintltst/cctest.c:33,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cctest.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: TestDefaultConverterError
    functionSourceFile: /src/icu/source/test/cintltst/cctest.c
    functionUses: []
    functionsReached:
    - u_getDefaultConverter
    - ucnv_close
    - U_FAILURE
    - myErrorName
    - log_err
    linkageType: ''
    returnType: void
    signature: 'void TestDefaultConverterError(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cctest.c:73,1
    - Dst: copyDefaultConverterName
      Src: /src/icu/source/test/cintltst/cctest.c:79,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cctest.c:83,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cctest.c:84,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cctest.c:86,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cctest.c:90,1
    - Dst: u_flushDefaultConverter
      Src: /src/icu/source/test/cintltst/cctest.c:71,1
    - Dst: ucnv_setDefaultName
      Src: /src/icu/source/test/cintltst/cctest.c:75,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cctest.c:77,1
    - Dst: u_flushDefaultConverter
      Src: /src/icu/source/test/cintltst/cctest.c:81,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cctest.c:92,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cctest.c:68,1
    - Dst: ucnv_getDefaultName
      Src: /src/icu/source/test/cintltst/cctest.c:66,1
    - Dst: copyDefaultConverterName
      Src: /src/icu/source/test/cintltst/cctest.c:76,1
    - Dst: ucnv_getDefaultName
      Src: /src/icu/source/test/cintltst/cctest.c:77,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cctest.c:80,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/cctest.c:87,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cctest.c:66,1
    - Dst: copyDefaultConverterName
      Src: /src/icu/source/test/cintltst/cctest.c:72,1
    - Dst: u_flushDefaultConverter
      Src: /src/icu/source/test/cintltst/cctest.c:74,1
    - Dst: ucnv_setDefaultName
      Src: /src/icu/source/test/cintltst/cctest.c:78,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cctest.c:84,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cctest.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 96
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 96
    functionName: TestDefaultConverterSet
    functionSourceFile: /src/icu/source/test/cintltst/cctest.c
    functionUses: []
    functionsReached:
    - log_info
    - ucnv_getDefaultName
    - U_FAILURE
    - strcpy
    - strcmp
    - u_flushDefaultConverter
    - log_verbose
    - log_err
    - ucnv_setDefaultName
    - u_errorName
    - copyDefaultConverterName
    linkageType: ''
    returnType: void
    signature: 'void TestDefaultConverterSet(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cctest.c:43,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cctest.c:47,1
    - Dst: u_getDefaultConverter
      Src: /src/icu/source/test/cintltst/cctest.c:44,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/cintltst/cctest.c:46,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cctest.c:48,1
    - Dst: u_releaseDefaultConverter
      Src: /src/icu/source/test/cintltst/cctest.c:50,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - out
    - status
    argTypes:
    - char*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 51
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 51
    functionName: copyDefaultConverterName
    functionSourceFile: /src/icu/source/test/cintltst/cctest.c
    functionUses: []
    functionsReached:
    - u_getDefaultConverter
    - u_releaseDefaultConverter
    - U_FAILURE
    - strcpy
    - ucnv_getName
    linkageType: ''
    returnType: void
    signature: 'static void copyDefaultConverterName(char *out, UErrorCode *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/encoll.c:258,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/encoll.c:260,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/encoll.c:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: addEnglishCollTest
    functionSourceFile: /src/icu/source/test/cintltst/encoll.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addEnglishCollTest(TestNode** root) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/encoll.c:312,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/encoll.c:313,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/encoll.c:314,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/encoll.c:317,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/encoll.c:314,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/encoll.c:318,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/encoll.c:321,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/encoll.c:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 324
    functionName: TestPrimary
    functionSourceFile: /src/icu/source/test/cintltst/encoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - log_verbose
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestPrimary() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/encoll.c:331,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/encoll.c:336,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/encoll.c:333,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/encoll.c:332,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/encoll.c:333,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/encoll.c:337,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/encoll.c:340,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/encoll.c:345,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/encoll.c:353,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/encoll.c:356,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 357
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 357
    functionName: TestSecondary
    functionSourceFile: /src/icu/source/test/cintltst/encoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - log_verbose
    - UPRV_LENGTHOF
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestSecondary() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/encoll.c:270,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/encoll.c:275,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/encoll.c:272,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/encoll.c:272,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/encoll.c:271,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/encoll.c:277,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/encoll.c:280,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/encoll.c:289,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/encoll.c:293,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/encoll.c:301,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/encoll.c:304,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 305
    functionName: TestTertiary
    functionSourceFile: /src/icu/source/test/cintltst/encoll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - log_verbose
    - UPRV_LENGTHOF
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestTertiary( ) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - keyword
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 172
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 172
    functionName: getKeywordIndex
    functionSourceFile: /src/icu/source/test/cintltst/cpluralrulestest.c
    functionUses: []
    functionsReached:
    - uprv_strcmp
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t getKeywordIndex(const char* keyword) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:131,1
    - Dst: uplrules_openForType
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:135,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:136,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:137,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:137,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:140,1
    - Dst: uplrules_select
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:141,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:142,1
    - Dst: u_strCompare
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:142,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:143,1
    - Dst: uplrules_close
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:145,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 146
    functionName: TestOrdinalRules
    functionSourceFile: /src/icu/source/test/cintltst/cpluralrulestest.c
    functionUses: []
    functionsReached:
    - U_STRING_DECL
    - U_FAILURE
    - u_strCompare
    - log_data_err
    - uplrules_select
    - uplrules_close
    - U_STRING_INIT
    - log_err
    - u_errorName
    - uplrules_openForType
    linkageType: ''
    returnType: void
    signature: 'static void TestOrdinalRules() '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:76,1
    - Dst: uplrules_select
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:84,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:101,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:107,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:102,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:115,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:116,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:88,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:80,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:96,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:97,1
    - Dst: uplrules_open
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:79,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:109,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:111,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:112,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:108,1
    - Dst: uplrules_close
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:123,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:125,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:125,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:89,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:90,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:92,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:93,1
    - Dst: uplrules_selectWithFormat
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:103,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:118,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:120,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:120,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 128
    functionName: TestPluralRules
    functionSourceFile: /src/icu/source/test/cintltst/cpluralrulestest.c
    functionUses: []
    functionsReached:
    - uplrules_open
    - u_unescape
    - log_data_err
    - uplrules_select
    - unum_close
    - U_SUCCESS
    - uplrules_close
    - myErrorName
    - log_verbose
    - log_err
    - unum_open
    - uplrules_selectWithFormat
    - u_strcmp
    - u_austrcpy
    linkageType: ''
    returnType: void
    signature: 'static void TestPluralRules() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getKeywordIndex
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:214,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:222,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:221,1
    - Dst: uplrules_openForType
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:220,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:222,1
    - Dst: uplrules_getKeywords
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:225,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:226,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:227,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:227,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:231,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:241,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:244,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:231,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:243,1
    - Dst: uplrules_close
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:253,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:234,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:250,1
    - Dst: getKeywordIndex
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:232,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 255
    functionName: TestGetKeywords
    functionSourceFile: /src/icu/source/test/cintltst/cpluralrulestest.c
    functionUses: []
    functionsReached:
    - uenum_next
    - U_FAILURE
    - U_SUCCESS
    - uplrules_close
    - myErrorName
    - uplrules_getKeywords
    - log_err
    - getKeywordIndex
    - uenum_close
    - uprv_memcmp
    - uplrules_openForType
    linkageType: ''
    returnType: void
    signature: 'static void TestGetKeywords() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: uplrules_open
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:263,1
    - Dst: unumf_openResult
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:273,1
    - Dst: unumf_openForSkeletonAndLocale
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:268,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:264,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:269,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:274,1
    - Dst: unumf_formatDouble
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:278,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:279,1
    - Dst: uplrules_selectFormatted
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:284,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:285,1
    - Dst: assertUEquals
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:289,1
    - Dst: unumf_close
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:293,1
    - Dst: uplrules_close
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:292,1
    - Dst: unumf_closeResult
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:294,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 295
    functionName: TestFormatted
    functionSourceFile: /src/icu/source/test/cintltst/cpluralrulestest.c
    functionUses: []
    functionsReached:
    - unumf_closeResult
    - unumf_close
    - uplrules_open
    - assertUEquals
    - unumf_openResult
    - unumf_formatDouble
    - assertSuccess
    - uplrules_selectFormatted
    - uplrules_close
    - unumf_openForSkeletonAndLocale
    linkageType: ''
    returnType: void
    signature: 'static void TestFormatted() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:31,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:34,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:32,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cpluralrulestest.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: addPluralRulesTest
    functionSourceFile: /src/icu/source/test/cintltst/cpluralrulestest.c
    functionUses: []
    functionsReached:
    - TESTCASE
    linkageType: ''
    returnType: void
    signature: 'void addPluralRulesTest(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:30,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:31,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: addDateIntervalFormatTest
    functionSourceFile: /src/icu/source/test/cintltst/cdateintervalformattest.c
    functionUses: []
    functionsReached:
    - TESTCASE
    linkageType: ''
    returnType: void
    signature: 'void addDateIntervalFormatTest(TestNode** root) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:287,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:291,1
    - Dst: udtitvfmt_open
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:288,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:290,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:289,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:301,1
    - Dst: udtitvfmt_format
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:302,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:303,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:304,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:305,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:306,1
    - Dst: udtitvfmt_close
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:316,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:310,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:308,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:309,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 319
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 319
    functionName: TestFPos_SkelWithSeconds
    functionSourceFile: /src/icu/source/test/cintltst/cdateintervalformattest.c
    functionUses: []
    functionsReached:
    - u_unescape
    - udtitvfmt_open
    - U_FAILURE
    - log_data_err
    - udtitvfmt_close
    - u_strToUTF8
    - u_strncmp
    - log_err
    - udtitvfmt_format
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestFPos_SkelWithSeconds() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: udtitvfmt_open
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:323,1
    - Dst: udtitvfmt_formatToResult
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:330,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:325,1
    - Dst: udtitvfmt_openResult
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:324,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:331,1
    - Dst: checkMixedFormattedValue
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:346,1
    - Dst: udtitvfmt_resultAsValue
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:348,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:351,1
    - Dst: udtitvfmt_formatToResult
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:356,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:357,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:375,1
    - Dst: checkMixedFormattedValue
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:370,1
    - Dst: udtitvfmt_closeResult
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:379,1
    - Dst: udtitvfmt_close
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:378,1
    - Dst: udtitvfmt_resultAsValue
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:372,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 380
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 380
    functionName: TestFormatToResult
    functionSourceFile: /src/icu/source/test/cintltst/cdateintervalformattest.c
    functionUses: []
    functionsReached:
    - udtitvfmt_formatToResult
    - udtitvfmt_closeResult
    - udtitvfmt_open
    - udtitvfmt_openResult
    - assertSuccess
    - checkMixedFormattedValue
    - udtitvfmt_close
    - udtitvfmt_resultAsValue
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestFormatToResult() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ctest_setTimeZone
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:75,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:85,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:76,1
    - Dst: udtitvfmt_open
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:92,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:87,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:93,1
    - Dst: udtitvfmt_format
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:96,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:100,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:101,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:102,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:109,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:115,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:106,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:114,1
    - Dst: ctest_resetTimeZone
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:118,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:104,1
    - Dst: udtitvfmt_close
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:112,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdateintervalformattest.c:110,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 119
    functionName: TestDateIntervalFormat
    functionSourceFile: /src/icu/source/test/cintltst/cdateintervalformattest.c
    functionUses: []
    functionsReached:
    - u_unescape
    - ctest_setTimeZone
    - udtitvfmt_open
    - log_data_err
    - udtitvfmt_close
    - U_SUCCESS
    - u_strcmp
    - myErrorName
    - log_verbose
    - log_err
    - udtitvfmt_format
    - u_austrcpy
    - ctest_resetTimeZone
    linkageType: ''
    returnType: void
    signature: 'static void TestDateIntervalFormat() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTestConvert
      Src: /src/icu/source/test/cintltst/cconvtst.c:33,1
    - Dst: addBOCU1Tests
      Src: /src/icu/source/test/cintltst/cconvtst.c:35,1
    - Dst: addTestNewConvert
      Src: /src/icu/source/test/cintltst/cconvtst.c:34,1
    - Dst: addTestEuroRegression
      Src: /src/icu/source/test/cintltst/cconvtst.c:37,1
    - Dst: addTestConvertErrorCallBack
      Src: /src/icu/source/test/cintltst/cconvtst.c:36,1
    - Dst: addTestConverterFallBack
      Src: /src/icu/source/test/cintltst/cconvtst.c:39,1
    - Dst: addExtraTests
      Src: /src/icu/source/test/cintltst/cconvtst.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: addConvert
    functionSourceFile: /src/icu/source/test/cintltst/cconvtst.c
    functionUses: []
    functionsReached:
    - addTestConvertErrorCallBack
    - addTestConverterFallBack
    - addTestConvert
    - addBOCU1Tests
    - addTestNewConvert
    - addExtraTests
    - addTestEuroRegression
    linkageType: ''
    returnType: void
    signature: 'void addConvert(TestNode** root) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:637,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:653,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:667,1
    - Dst: compareArrays
      Src: /src/icu/source/test/cintltst/cldrtest.c:669,1
    - Dst: compareArrays
      Src: /src/icu/source/test/cintltst/cldrtest.c:671,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:673,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:677,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:675,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/cldrtest.c:623,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:638,1
    - Dst: compareArrays
      Src: /src/icu/source/test/cintltst/cldrtest.c:641,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:643,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:674,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:678,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:626,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:627,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:627,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:630,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/cldrtest.c:631,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:633,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/cldrtest.c:634,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:636,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:647,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:644,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:680,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/cldrtest.c:622,1
    - Dst: compareArrays
      Src: /src/icu/source/test/cintltst/cldrtest.c:650,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:648,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:652,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:666,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:676,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:681,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:665,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:646,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 2
    argNames:
    - fromLocale
    - toLocale
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 682
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 682
    functionName: compareConsistentCountryInfo
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached:
    - ures_getByKey
    - U_FAILURE
    - strcmp
    - ures_getByKeyWithFallback
    - log_err
    - ures_close
    - compareArrays
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void compareConsistentCountryInfo(const char *fromLocale, const
      char *toLocale) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/cldrtest.c:808,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cldrtest.c:837,1
    - Dst: uset_getItem
      Src: /src/icu/source/test/cintltst/cldrtest.c:836,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:854,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:857,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/cldrtest.c:810,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/cldrtest.c:811,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:812,1
    - Dst: myUCharsToChars
      Src: /src/icu/source/test/cintltst/cldrtest.c:851,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cldrtest.c:862,1
    - Dst: uset_containsString
      Src: /src/icu/source/test/cintltst/cldrtest.c:868,1
    - Dst: uscript_getShortName
      Src: /src/icu/source/test/cintltst/cldrtest.c:807,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cldrtest.c:822,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:818,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:852,1
    - Dst: uset_indexOf
      Src: /src/icu/source/test/cintltst/cldrtest.c:852,1
    - Dst: uset_getItem
      Src: /src/icu/source/test/cintltst/cldrtest.c:863,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:873,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/cldrtest.c:807,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cldrtest.c:809,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:813,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:813,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:818,1
    - Dst: uset_toPattern
      Src: /src/icu/source/test/cintltst/cldrtest.c:850,1
    - Dst: uset_containsRange
      Src: /src/icu/source/test/cintltst/cldrtest.c:842,1
    - Dst: uset_getItemCount
      Src: /src/icu/source/test/cintltst/cldrtest.c:828,1
    - Dst: uset_add
      Src: /src/icu/source/test/cintltst/cldrtest.c:820,1
    - Dst: uset_indexOf
      Src: /src/icu/source/test/cintltst/cldrtest.c:852,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:883,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 78
    argCount: 4
    argNames:
    - scriptCodes
    - scriptsLen
    - exemplarSet
    - locale
    argTypes:
    - UScriptCode*
    - int32_t
    - USet*
    - char*
    constantsTouched: []
    func_position:
      end: 885
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 885
    functionName: findSetMatch
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached:
    - uset_openPattern
    - uset_containsString
    - uscript_getShortName
    - U_SUCCESS
    - u_errorName
    - myUCharsToChars
    - uset_add
    - U_FAILURE
    - uset_getItemCount
    - u_charsToUChars
    - strcat
    - uset_containsRange
    - strcmp
    - uset_toPattern
    - log_err
    - uset_indexOf
    - malloc
    - uset_getItem
    - uset_close
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void findSetMatch( UScriptCode *scriptCodes, int32_t scriptsLen,
      USet *exemplarSet, const char *locale) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1526,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1530,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1527,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1529,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1531,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1532,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1533,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1534,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1535,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 1536
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1536
    functionName: addCLDRTest
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached:
    - TESTCASE
    linkageType: ''
    returnType: void
    signature: 'void addCLDRTest(TestNode** root) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: uloc_getLCID
      Src: /src/icu/source/test/cintltst/cldrtest.c:462,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cldrtest.c:470,1
    - Dst: uprv_convertToPosix
      Src: /src/icu/source/test/cintltst/cldrtest.c:470,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:471,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cldrtest.c:464,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:472,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:473,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:477,1
    - Dst: uloc_getLanguage
      Src: /src/icu/source/test/cintltst/cldrtest.c:480,1
    - Dst: uloc_getLanguage
      Src: /src/icu/source/test/cintltst/cldrtest.c:481,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:483,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:487,1
    - Dst: log_knownIssue
      Src: /src/icu/source/test/cintltst/cldrtest.c:487,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:488,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cldrtest.c:484,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - currentBundle
    - localeName
    argTypes:
    - UResourceBundle*
    - char*
    constantsTouched: []
    func_position:
      end: 492
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 492
    functionName: testLCID
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached:
    - uprv_convertToPosix
    - log_knownIssue
    - uloc_getLanguage
    - U_FAILURE
    - strcmp
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    - uloc_getLCID
    linkageType: ''
    returnType: void
    signature: 'static void testLCID(UResourceBundle *currentBundle, const char *localeName) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/cldrtest.c:590,1
    - Dst: ures_getStringByIndex
      Src: /src/icu/source/test/cintltst/cldrtest.c:604,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/cldrtest.c:591,1
    - Dst: ures_getStringByIndex
      Src: /src/icu/source/test/cintltst/cldrtest.c:603,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:597,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:605,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:607,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cldrtest.c:611,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cldrtest.c:613,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 7
    argNames:
    - keyName
    - fromArray
    - fromLocale
    - toArray
    - toLocale
    - start
    - end
    argTypes:
    - char*
    - UResourceBundle*
    - char*
    - UResourceBundle*
    - char*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 616
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 616
    functionName: compareArrays
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached:
    - ures_getStringByIndex
    - austrdup
    - log_err
    - u_strcmp
    - ures_getSize
    linkageType: ''
    returnType: void
    signature: 'static void compareArrays(const char *keyName, UResourceBundle *fromArray,
      const char *fromLocale, UResourceBundle *toArray, const char *toLocale, int32_t
      start, int32_t end) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: uloc_countAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:687,1
    - Dst: uloc_getCountry
      Src: /src/icu/source/test/cintltst/cldrtest.c:702,1
    - Dst: uloc_getVariant
      Src: /src/icu/source/test/cintltst/cldrtest.c:707,1
    - Dst: uloc_getAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:699,1
    - Dst: uloc_getAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:716,1
    - Dst: uloc_getCountry
      Src: /src/icu/source/test/cintltst/cldrtest.c:718,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:719,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:720,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:721,1
    - Dst: uloc_getVariant
      Src: /src/icu/source/test/cintltst/cldrtest.c:729,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:735,1
    - Dst: compareConsistentCountryInfo
      Src: /src/icu/source/test/cintltst/cldrtest.c:738,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cldrtest.c:736,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 742
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 742
    functionName: TestConsistentCountryInfo
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached:
    - uloc_getAvailable
    - U_FAILURE
    - strcmp
    - u_errorName
    - log_verbose
    - log_err
    - uloc_getCountry
    - uloc_getVariant
    - uloc_countAvailable
    - compareConsistentCountryInfo
    linkageType: ''
    returnType: void
    signature: 'static void TestConsistentCountryInfo(void) '
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: uloc_getAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:922,1
    - Dst: ulocdata_open
      Src: /src/icu/source/test/cintltst/cldrtest.c:929,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:938,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/cldrtest.c:994,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:1022,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/cldrtest.c:1020,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1044,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cldrtest.c:1050,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:1075,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1077,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1115,1
    - Dst: uloc_countAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:889,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:900,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:905,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/cldrtest.c:912,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:921,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1114,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1117,1
    - Dst: ures_getStringByIndex
      Src: /src/icu/source/test/cintltst/cldrtest.c:1032,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:924,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1110,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1113,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/cldrtest.c:1028,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1113,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1113,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1114,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1112,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:951,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:988,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1010,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:967,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:904,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cldrtest.c:932,1
    - Dst: ulocdata_getExemplarSet
      Src: /src/icu/source/test/cintltst/cldrtest.c:935,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:947,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/cldrtest.c:985,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1015,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1131,1
    - Dst: ulocdata_getExemplarSet
      Src: /src/icu/source/test/cintltst/cldrtest.c:931,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cldrtest.c:965,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1016,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/cldrtest.c:1024,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/cldrtest.c:1019,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1034,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1100,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1103,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1109,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1114,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:934,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:944,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/cldrtest.c:984,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/cldrtest.c:990,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1045,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1055,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1094,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:978,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:981,1
    - Dst: uloc_getAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:911,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cldrtest.c:914,1
    - Dst: ulocdata_getExemplarSet
      Src: /src/icu/source/test/cintltst/cldrtest.c:941,1
    - Dst: uloc_getDisplayCountry
      Src: /src/icu/source/test/cintltst/cldrtest.c:976,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1039,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1074,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1091,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:1110,1
    - Dst: uprv_strncmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:997,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/cldrtest.c:983,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1005,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:917,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cldrtest.c:930,1
    - Dst: uset_addAll
      Src: /src/icu/source/test/cintltst/cldrtest.c:937,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:947,1
    - Dst: ulocdata_getPaperSize
      Src: /src/icu/source/test/cintltst/cldrtest.c:1108,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1114,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:967,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:988,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1021,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/cldrtest.c:1018,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:1034,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1094,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1115,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1126,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1098,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:972,1
    - Dst: ures_getByKeyWithFallback
      Src: /src/icu/source/test/cintltst/cldrtest.c:982,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1004,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1022,1
    - Dst: ulocdata_getExemplarSet
      Src: /src/icu/source/test/cintltst/cldrtest.c:1063,1
    - Dst: findSetMatch
      Src: /src/icu/source/test/cintltst/cldrtest.c:1065,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1078,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1094,1
    - Dst: uset_addAll
      Src: /src/icu/source/test/cintltst/cldrtest.c:943,1
    - Dst: log_knownIssue
      Src: /src/icu/source/test/cintltst/cldrtest.c:1051,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1066,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1096,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cldrtest.c:976,1
    - Dst: findStringSetMismatch
      Src: /src/icu/source/test/cintltst/cldrtest.c:1008,1
    - Dst: uprv_strncmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:997,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:987,1
    - Dst: ures_openDirect
      Src: /src/icu/source/test/cintltst/cldrtest.c:903,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cldrtest.c:936,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:966,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:1005,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cldrtest.c:955,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1057,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:920,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:1051,1
    - Dst: ulocdata_open
      Src: /src/icu/source/test/cintltst/cldrtest.c:1062,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1075,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1092,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:1092,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1112,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1112,1
    - Dst: findStringSetMismatch
      Src: /src/icu/source/test/cintltst/cldrtest.c:970,1
    - Dst: ures_getStringByIndex
      Src: /src/icu/source/test/cintltst/cldrtest.c:1003,1
    - Dst: ulocdata_getPaperSize
      Src: /src/icu/source/test/cintltst/cldrtest.c:1073,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1113,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1120,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:977,1
    - Dst: uloc_getAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:918,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cldrtest.c:942,1
    - Dst: ulocdata_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:949,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1014,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1033,1
    - Dst: findStringSetMismatch
      Src: /src/icu/source/test/cintltst/cldrtest.c:1037,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1046,1
    - Dst: uloc_addLikelySubtags
      Src: /src/icu/source/test/cintltst/cldrtest.c:1087,1
    - Dst: ulocdata_getMeasurementSystem
      Src: /src/icu/source/test/cintltst/cldrtest.c:1090,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1128,1
    - Dst: log_knownIssue
      Src: /src/icu/source/test/cintltst/cldrtest.c:998,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:951,1
    - Dst: uset_cloneAsThawed
      Src: /src/icu/source/test/cintltst/cldrtest.c:933,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:978,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1043,1
    - Dst: uscript_getCode
      Src: /src/icu/source/test/cintltst/cldrtest.c:1050,1
    - Dst: ulocdata_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1067,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cldrtest.c:1112,1
    - Dst: uloc_getDisplayLanguage
      Src: /src/icu/source/test/cintltst/cldrtest.c:965,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1047,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 292
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1132
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 1132
    functionName: VerifyTranslation
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached:
    - ulocdata_getPaperSize
    - uloc_addLikelySubtags
    - ures_getByKey
    - uset_addAll
    - uloc_getDisplayCountry
    - U_SUCCESS
    - ures_getStringByIndex
    - strstr
    - u_errorName
    - uloc_countAvailable
    - uloc_getAvailable
    - U_FAILURE
    - log_data_err
    - ulocdata_close
    - uloc_getDisplayLanguage
    - log_verbose
    - ures_close
    - findStringSetMismatch
    - UPRV_LENGTHOF
    - getTestOption
    - ures_openDirect
    - strcmp
    - uset_cloneAsThawed
    - ures_getByKeyWithFallback
    - uprv_strncmp
    - log_err
    - findSetMatch
    - uscript_getCode
    - ures_open
    - ures_getSize
    - log_knownIssue
    - ulocdata_open
    - ulocdata_getMeasurementSystem
    - uset_close
    - ulocdata_getExemplarSet
    linkageType: ''
    returnType: void
    signature: 'static void VerifyTranslation(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ures_openDirect
      Src: /src/icu/source/test/cintltst/cldrtest.c:534,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:535,1
    - Dst: uloc_getAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:541,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/cldrtest.c:542,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:547,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:548,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:567,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:580,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:531,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cldrtest.c:544,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:550,1
    - Dst: uloc_getAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:548,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:554,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:559,1
    - Dst: uloc_getAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:552,1
    - Dst: TestKeyInRootRecursive
      Src: /src/icu/source/test/cintltst/cldrtest.c:573,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/cldrtest.c:534,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:536,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:551,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:562,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cldrtest.c:563,1
    - Dst: ures_getLocaleByType
      Src: /src/icu/source/test/cintltst/cldrtest.c:566,1
    - Dst: testLCID
      Src: /src/icu/source/test/cintltst/cldrtest.c:575,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:577,1
    - Dst: uloc_countAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:504,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:557,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:570,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 581
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 581
    functionName: TestLocaleStructure
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached:
    - ures_openDirect
    - uloc_getAvailable
    - U_FAILURE
    - testLCID
    - loadTestData
    - log_data_err
    - u_errorName
    - strcmp
    - U_SUCCESS
    - ures_getStringByKey
    - log_verbose
    - log_err
    - ures_close
    - ures_getLocaleByType
    - uloc_countAvailable
    - TestKeyInRootRecursive
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void TestLocaleStructure(void) '
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:91,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/cldrtest.c:187,1
    - Dst: isCurrencyPreEuro
      Src: /src/icu/source/test/cintltst/cldrtest.c:179,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:349,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:434,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:447,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:229,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:145,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:151,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:235,1
    - Dst: TestKeyInRootRecursive
      Src: /src/icu/source/test/cintltst/cldrtest.c:422,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:129,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:182,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/cldrtest.c:180,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:92,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:95,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:102,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:234,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:302,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:398,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:255,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:99,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:341,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:346,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:365,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:382,1
    - Dst: ures_resetIterator
      Src: /src/icu/source/test/cintltst/cldrtest.c:81,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/cldrtest.c:108,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:109,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:233,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:252,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:217,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:397,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cldrtest.c:203,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:105,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:155,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/cldrtest.c:159,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/cldrtest.c:164,1
    - Dst: TestKeyInRootRecursive
      Src: /src/icu/source/test/cintltst/cldrtest.c:167,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:185,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:214,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:338,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:347,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:343,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/cldrtest.c:188,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:215,1
    - Dst: ures_hasNext
      Src: /src/icu/source/test/cintltst/cldrtest.c:83,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/cldrtest.c:119,1
    - Dst: ures_getIntVector
      Src: /src/icu/source/test/cintltst/cldrtest.c:125,1
    - Dst: ures_getByIndex
      Src: /src/icu/source/test/cintltst/cldrtest.c:160,1
    - Dst: u_charDigitValue
      Src: /src/icu/source/test/cintltst/cldrtest.c:313,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:400,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:402,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:440,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:237,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/cldrtest.c:108,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/cldrtest.c:170,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:329,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:351,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:399,1
    - Dst: ures_resetIterator
      Src: /src/icu/source/test/cintltst/cldrtest.c:82,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/cldrtest.c:115,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/cldrtest.c:164,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/cldrtest.c:222,1
    - Dst: ures_getStringByIndex
      Src: /src/icu/source/test/cintltst/cldrtest.c:201,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:330,1
    - Dst: ures_getString
      Src: /src/icu/source/test/cintltst/cldrtest.c:334,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:374,1
    - Dst: ures_getString
      Src: /src/icu/source/test/cintltst/cldrtest.c:396,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:403,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cldrtest.c:432,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:406,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:131,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cldrtest.c:163,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:286,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:443,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:266,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:142,1
    - Dst: ures_getByIndex
      Src: /src/icu/source/test/cintltst/cldrtest.c:161,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:88,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/cldrtest.c:114,1
    - Dst: ures_getIntVector
      Src: /src/icu/source/test/cintltst/cldrtest.c:124,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:404,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cldrtest.c:413,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:258,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:98,1
    - Dst: ures_getStringByIndex
      Src: /src/icu/source/test/cintltst/cldrtest.c:232,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:262,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:312,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:335,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:407,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:420,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:100,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:139,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:226,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/cldrtest.c:175,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:259,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:405,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/cldrtest.c:419,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/cldrtest.c:174,1
    - Dst: ures_getStringByIndex
      Src: /src/icu/source/test/cintltst/cldrtest.c:202,1
    - Dst: ures_getByIndex
      Src: /src/icu/source/test/cintltst/cldrtest.c:213,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:403,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cldrtest.c:425,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/cldrtest.c:428,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/cldrtest.c:441,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/cldrtest.c:180,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:204,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:92,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:223,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:153,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/cldrtest.c:222,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:151,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:315,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/cldrtest.c:332,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:336,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:245,1
    - Dst: ures_getNextResource
      Src: /src/icu/source/test/cintltst/cldrtest.c:90,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:112,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:116,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:179,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:243,1
    - Dst: ures_getType
      Src: /src/icu/source/test/cintltst/cldrtest.c:428,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:431,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:446,1
    CyclomaticComplexity: 117
    EdgeCount: 117
    ICount: 337
    argCount: 4
    argNames:
    - root
    - rootName
    - currentBundle
    - locale
    argTypes:
    - UResourceBundle*
    - char*
    - UResourceBundle*
    - char*
    constantsTouched: []
    func_position:
      end: 449
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 449
    functionName: TestKeyInRootRecursive
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached:
    - ures_getKey
    - ures_getByKey
    - u_charDigitValue
    - ures_getByIndex
    - U_SUCCESS
    - ures_getStringByIndex
    - ures_getIntVector
    - u_errorName
    - U_FAILURE
    - log_verbose
    - ures_close
    - ures_getType
    - TestKeyInRootRecursive
    - ures_resetIterator
    - ures_hasNext
    - strcmp
    - log_err
    - ures_getString
    - ures_getSize
    - ures_getNextResource
    - isCurrencyPreEuro
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestKeyInRootRecursive(UResourceBundle *root, const char
      *rootName, UResourceBundle *currentBundle, const char *locale) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ures_openDirect
      Src: /src/icu/source/test/cintltst/cldrtest.c:1390,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1392,1
    - Dst: ures_resetIterator
      Src: /src/icu/source/test/cintltst/cldrtest.c:1401,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:1406,1
    - Dst: ures_getKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:1404,1
    - Dst: ures_hasNext
      Src: /src/icu/source/test/cintltst/cldrtest.c:1402,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/cldrtest.c:1395,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/cldrtest.c:1396,1
    - Dst: ures_getSize
      Src: /src/icu/source/test/cintltst/cldrtest.c:1397,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/cldrtest.c:1402,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1405,1
    - Dst: ucurr_openISOCurrencies
      Src: /src/icu/source/test/cintltst/cldrtest.c:1387,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1413,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1407,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1391,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/cldrtest.c:1390,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1399,1
    - Dst: ures_getNextResource
      Src: /src/icu/source/test/cintltst/cldrtest.c:1403,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1414,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1416
      start: 1383
    functionDepth: 0
    functionLinenumber: 1383
    functionLinenumberEnd: 1416
    functionName: TestCurrencyList
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached:
    - ures_getNextResource
    - ures_resetIterator
    - ures_getByKey
    - uenum_next
    - ures_getKey
    - ures_openDirect
    - ures_hasNext
    - U_FAILURE
    - loadTestData
    - log_data_err
    - strcmp
    - ucurr_openISOCurrencies
    - uenum_count
    - log_err
    - ures_close
    - uenum_close
    - ures_getSize
    linkageType: ''
    returnType: void
    signature: 'static void TestCurrencyList(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ulocdata_open
      Src: /src/icu/source/test/cintltst/cldrtest.c:1323,1
    - Dst: ulocdata_getDelimiter
      Src: /src/icu/source/test/cintltst/cldrtest.c:1334,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1325,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1326,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/cintltst/cldrtest.c:1323,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1335,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1336,1
    - Dst: ulocdata_getNoSubstitute
      Src: /src/icu/source/test/cintltst/cldrtest.c:1340,1
    - Dst: ulocdata_setNoSubstitute
      Src: /src/icu/source/test/cintltst/cldrtest.c:1341,1
    - Dst: ulocdata_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1342,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1343
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1343
    functionName: TestCoverage
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached:
    - ulocdata_getNoSubstitute
    - U_FAILURE
    - log_data_err
    - ulocdata_open
    - ulocdata_setNoSubstitute
    - ulocdata_close
    - ulocdata_getDelimiter
    - log_err
    - uloc_getDefault
    linkageType: ''
    returnType: void
    signature: 'static void TestCoverage(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ulocdata_open
      Src: /src/icu/source/test/cintltst/cldrtest.c:1354,1
    - Dst: ulocdata_getExemplarSet
      Src: /src/icu/source/test/cintltst/cldrtest.c:1358,1
    - Dst: uset_openEmpty
      Src: /src/icu/source/test/cintltst/cldrtest.c:1355,1
    - Dst: ulocdata_getExemplarSet
      Src: /src/icu/source/test/cintltst/cldrtest.c:1357,1
    - Dst: uset_openEmpty
      Src: /src/icu/source/test/cintltst/cldrtest.c:1356,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1359,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1360,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:1360,1
    - Dst: uset_contains
      Src: /src/icu/source/test/cintltst/cldrtest.c:1365,1
    - Dst: uset_contains
      Src: /src/icu/source/test/cintltst/cldrtest.c:1365,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1370,1
    - Dst: ulocdata_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1377,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1366,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1376,1
    - Dst: uset_contains
      Src: /src/icu/source/test/cintltst/cldrtest.c:1369,1
    - Dst: uset_contains
      Src: /src/icu/source/test/cintltst/cldrtest.c:1369,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1375,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1378
      start: 1345
    functionDepth: 0
    functionLinenumber: 1345
    functionLinenumberEnd: 1378
    functionName: TestIndexChars
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached:
    - uset_openEmpty
    - U_FAILURE
    - log_data_err
    - ulocdata_open
    - u_errorName
    - ulocdata_close
    - uset_contains
    - log_err
    - uset_close
    - ulocdata_getExemplarSet
    linkageType: ''
    returnType: void
    signature: 'static void TestIndexChars(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:35,1
    - Dst: uset_getItemCount
      Src: /src/icu/source/test/cintltst/cldrtest.c:40,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:36,1
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/cldrtest.c:39,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:36,1
    - Dst: uset_getItem
      Src: /src/icu/source/test/cintltst/cldrtest.c:42,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cldrtest.c:44,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:46,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:47,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:47,1
    - Dst: uset_closeOver
      Src: /src/icu/source/test/cintltst/cldrtest.c:57,1
    - Dst: uset_addRange
      Src: /src/icu/source/test/cintltst/cldrtest.c:54,1
    - Dst: uset_addAllCodePoints
      Src: /src/icu/source/test/cintltst/cldrtest.c:51,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - origSet
    - status
    argTypes:
    - USet*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 59
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 59
    functionName: createFlattenSet
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - uset_getItemCount
    - uset_getItem
    - uset_open
    - log_err
    - UPRV_LENGTHOF
    - uset_addRange
    - uset_closeOver
    - u_errorName
    - uset_addAllCodePoints
    linkageType: ''
    returnType: USet*
    signature: 'static USet *createFlattenSet(USet *origSet, UErrorCode *status) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cldrtest.c:1432,1
    - Dst: ucurr_isAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:1436,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/cldrtest.c:1440,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1447,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1459,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1463,1
    - Dst: ucurr_isAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:1471,1
    - Dst: ucurr_isAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:1475,1
    - Dst: ucurr_isAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:1484,1
    - Dst: ucurr_isAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:1488,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1505,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cldrtest.c:1515,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cldrtest.c:1435,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1442,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cldrtest.c:1450,1
    - Dst: ucurr_isAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:1451,1
    - Dst: ucurr_isAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:1466,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1480,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1493,1
    - Dst: ucurr_isAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:1500,1
    - Dst: ucurr_isAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:1509,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1512,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/cldrtest.c:1435,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1437,1
    - Dst: ucurr_isAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:1446,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/cldrtest.c:1450,1
    - Dst: ucurr_isAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:1458,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cldrtest.c:1445,1
    - Dst: ucurr_isAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:1462,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1472,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1476,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1485,1
    - Dst: ucurr_isAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:1496,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1510,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cldrtest.c:1432,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cldrtest.c:1440,1
    - Dst: ucurr_isAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:1441,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/cldrtest.c:1445,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1452,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1467,1
    - Dst: ucurr_isAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:1479,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1489,1
    - Dst: ucurr_isAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:1492,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1501,1
    - Dst: ucurr_isAvailable
      Src: /src/icu/source/test/cintltst/cldrtest.c:1504,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1497,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 91
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1517
      start: 1419
    functionDepth: 0
    functionLinenumber: 1419
    functionLinenumberEnd: 1517
    functionName: TestAvailableIsoCodes
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached:
    - malloc
    - uprv_strlen
    - log_data_err
    - ucurr_isAvailable
    - free
    - log_err
    - u_charsToUChars
    linkageType: ''
    returnType: void
    signature: 'static void TestAvailableIsoCodes(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:63,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:65,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:66,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:67,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:64,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:68,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:69,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - currencyKey
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: isCurrencyPreEuro
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: UBool
    signature: 'static UBool isCurrencyPreEuro(const char* currencyKey) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cldrtest.c:1166,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cldrtest.c:1162,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/cldrtest.c:1167,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cldrtest.c:1173,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1178,1
    - Dst: log_knownIssue
      Src: /src/icu/source/test/cintltst/cldrtest.c:1187,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/cldrtest.c:1197,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/cldrtest.c:1202,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/cldrtest.c:1203,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cldrtest.c:1213,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1252,1
    - Dst: ures_openAvailableLocales
      Src: /src/icu/source/test/cintltst/cldrtest.c:1161,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cldrtest.c:1172,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cldrtest.c:1181,1
    - Dst: uscript_getCode
      Src: /src/icu/source/test/cintltst/cldrtest.c:1186,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cldrtest.c:1190,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/cldrtest.c:1205,1
    - Dst: uset_getItemCount
      Src: /src/icu/source/test/cintltst/cldrtest.c:1210,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cldrtest.c:1215,1
    - Dst: uset_containsString
      Src: /src/icu/source/test/cintltst/cldrtest.c:1225,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1234,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1250,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1254,1
    - Dst: uset_equals
      Src: /src/icu/source/test/cintltst/cldrtest.c:1239,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cldrtest.c:1164,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/cldrtest.c:1171,1
    - Dst: ulocdata_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1179,1
    - Dst: uset_containsSome
      Src: /src/icu/source/test/cintltst/cldrtest.c:1183,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:1187,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1184,1
    - Dst: uset_containsRange
      Src: /src/icu/source/test/cintltst/cldrtest.c:1218,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1249,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/cldrtest.c:1163,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cldrtest.c:1168,1
    - Dst: ulocdata_open
      Src: /src/icu/source/test/cintltst/cldrtest.c:1176,1
    - Dst: ulocdata_getExemplarSet
      Src: /src/icu/source/test/cintltst/cldrtest.c:1177,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1193,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1199,1
    - Dst: uscript_getShortName
      Src: /src/icu/source/test/cintltst/cldrtest.c:1202,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cldrtest.c:1204,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cldrtest.c:1207,1
    - Dst: uset_getItem
      Src: /src/icu/source/test/cintltst/cldrtest.c:1212,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cldrtest.c:1245,1
    - Dst: uset_containsAll
      Src: /src/icu/source/test/cintltst/cldrtest.c:1238,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1251,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cldrtest.c:1237,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 125
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1256
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1256
    functionName: TestExemplarSet
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached:
    - ures_openAvailableLocales
    - uset_openPattern
    - uprv_strcat
    - uset_containsString
    - uscript_getShortName
    - assertTrue
    - uset_containsAll
    - uset_getItemCount
    - ulocdata_close
    - log_verbose
    - UPRV_LENGTHOF
    - uset_containsRange
    - u_uastrcpy
    - uset_equals
    - strcmp
    - uenum_count
    - log_err
    - uenum_close
    - uprv_strcpy
    - uscript_getCode
    - uenum_next
    - log_knownIssue
    - assertSuccess
    - ulocdata_open
    - uset_containsSome
    - uset_getItem
    - uset_close
    - ulocdata_getExemplarSet
    linkageType: ''
    returnType: void
    signature: 'static void TestExemplarSet(void) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1272,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1282,1
    - Dst: ulocdata_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1287,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1293,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1303,1
    - Dst: ulocdata_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:1308,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1306,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1275,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:1283,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:1284,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1296,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:1304,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:1305,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1304,1
    - Dst: ulocdata_open
      Src: /src/icu/source/test/cintltst/cldrtest.c:1270,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1271,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:1276,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:1277,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1283,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:1292,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1285,1
    - Dst: ulocdata_open
      Src: /src/icu/source/test/cintltst/cldrtest.c:1291,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:1297,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cldrtest.c:1298,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:1272,1
    - Dst: ulocdata_getLocaleDisplayPattern
      Src: /src/icu/source/test/cintltst/cldrtest.c:1274,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1276,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1278,1
    - Dst: ulocdata_getLocaleSeparator
      Src: /src/icu/source/test/cintltst/cldrtest.c:1281,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:1293,1
    - Dst: ulocdata_getLocaleDisplayPattern
      Src: /src/icu/source/test/cintltst/cldrtest.c:1295,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1297,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:1299,1
    - Dst: ulocdata_getLocaleSeparator
      Src: /src/icu/source/test/cintltst/cldrtest.c:1302,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1310
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1310
    functionName: TestLocaleDisplayPattern
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached:
    - ulocdata_getLocaleDisplayPattern
    - ulocdata_getLocaleSeparator
    - U_FAILURE
    - log_data_err
    - ulocdata_open
    - ulocdata_close
    - log_err
    - u_strcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestLocaleDisplayPattern(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - us
    - cs
    - len
    argTypes:
    - UChar*
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 793
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 793
    functionName: myUCharsToChars
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t myUCharsToChars(const UChar* us, char* cs, int32_t
      len) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: createFlattenSet
      Src: /src/icu/source/test/cintltst/cldrtest.c:754,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cldrtest.c:756,1
    - Dst: U16_NEXT
      Src: /src/icu/source/test/cintltst/cldrtest.c:762,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cldrtest.c:756,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cldrtest.c:755,1
    - Dst: uset_contains
      Src: /src/icu/source/test/cintltst/cldrtest.c:763,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:767,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cldrtest.c:775,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 53
    argCount: 6
    argNames:
    - currLoc
    - string
    - langSize
    - mergedExemplarSet
    - ignoreNumbers
    - badCharPtr
    argTypes:
    - char*
    - UChar*
    - int32_t
    - USet*
    - UBool
    - UChar32*
    constantsTouched: []
    func_position:
      end: 780
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 780
    functionName: findStringSetMismatch
    functionSourceFile: /src/icu/source/test/cintltst/cldrtest.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - U16_NEXT
    - createFlattenSet
    - uset_contains
    - log_err
    - uset_close
    - u_errorName
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t findStringSetMismatch(const char *currLoc, const UChar
      *string, int32_t langSize, USet * mergedExemplarSet, UBool ignoreNumbers, UChar32*
      badCharPtr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addBrkIterAPITest
      Src: /src/icu/source/test/cintltst/cbkittst.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: addBreakIter
    functionSourceFile: /src/icu/source/test/cintltst/cbkittst.c
    functionUses: []
    functionsReached:
    - addBrkIterAPITest
    linkageType: ''
    returnType: void
    signature: 'void addBreakIter(TestNode** root) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cg7coll.c:202,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cg7coll.c:211,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cg7coll.c:207,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cg7coll.c:209,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cg7coll.c:205,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cg7coll.c:213,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cg7coll.c:213,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cg7coll.c:221,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cg7coll.c:225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 226
    functionName: TestDemo1
    functionSourceFile: /src/icu/source/test/cintltst/cg7coll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - log_verbose
    - strlen
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestDemo1() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cg7coll.c:262,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cg7coll.c:271,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cg7coll.c:265,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cg7coll.c:269,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cg7coll.c:267,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cg7coll.c:273,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cg7coll.c:273,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cg7coll.c:281,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cg7coll.c:284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 285
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 285
    functionName: TestDemo3
    functionSourceFile: /src/icu/source/test/cintltst/cg7coll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - log_verbose
    - strlen
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestDemo3() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cg7coll.c:233,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cg7coll.c:242,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cg7coll.c:240,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cg7coll.c:236,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cg7coll.c:238,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cg7coll.c:244,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cg7coll.c:244,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cg7coll.c:251,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cg7coll.c:254,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 255
    functionName: TestDemo2
    functionSourceFile: /src/icu/source/test/cintltst/cg7coll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - log_verbose
    - strlen
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestDemo2() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cg7coll.c:143,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cg7coll.c:148,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cg7coll.c:149,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cg7coll.c:152,1
    - Dst: ucol_getRules
      Src: /src/icu/source/test/cintltst/cg7coll.c:159,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cg7coll.c:174,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cg7coll.c:161,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cg7coll.c:174,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cg7coll.c:181,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cg7coll.c:150,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cg7coll.c:154,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cg7coll.c:154,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cg7coll.c:163,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cg7coll.c:193,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cg7coll.c:144,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cg7coll.c:155,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cg7coll.c:169,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cg7coll.c:160,1
    - Dst: log_knownIssue
      Src: /src/icu/source/test/cintltst/cg7coll.c:162,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cg7coll.c:172,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cg7coll.c:171,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cg7coll.c:160,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cg7coll.c:180,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cg7coll.c:189,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 195
    functionName: TestG7Locales
    functionSourceFile: /src/icu/source/test/cintltst/cg7coll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_getRules
    - ucol_open
    - log_knownIssue
    - U_FAILURE
    - log_err_status
    - strcmp
    - log_data_err
    - ucol_setAttribute
    - doTest
    - myErrorName
    - log_verbose
    - UPRV_LENGTHOF
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestG7Locales() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cg7coll.c:292,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cg7coll.c:301,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cg7coll.c:297,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cg7coll.c:295,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/cg7coll.c:299,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cg7coll.c:303,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cg7coll.c:303,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cg7coll.c:310,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cg7coll.c:313,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 314
    functionName: TestDemo4
    functionSourceFile: /src/icu/source/test/cintltst/cg7coll.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - log_verbose
    - strlen
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestDemo4() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cg7coll.c:128,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cg7coll.c:130,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cg7coll.c:132,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cg7coll.c:131,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cg7coll.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 135
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 135
    functionName: addRuleBasedCollTest
    functionSourceFile: /src/icu/source/test/cintltst/cg7coll.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addRuleBasedCollTest(TestNode** root) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:90,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 4
    argNames:
    - context
    - start
    - end
    - value
    argTypes:
    - void*
    - UChar32
    - UChar32
    - uint32_t
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: testEnumRange
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - log_err
    linkageType: ''
    returnType: UBool
    signature: 'static UBool U_CALLCONV testEnumRange(const void *context, UChar32
      start, UChar32 end, uint32_t value) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: getSpecialValues
      Src: /src/icu/source/test/cintltst/trie2test.c:388,1
    - Dst: U8_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/trie2test.c:413,1
    - Dst: UTRIE2_U8_PREV32
      Src: /src/icu/source/test/cintltst/trie2test.c:494,1
    - Dst: UTRIE2_U8_NEXT32
      Src: /src/icu/source/test/cintltst/trie2test.c:461,1
    - Dst: U8_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/trie2test.c:402,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/trie2test.c:425,1
    - Dst: U8_FWD_1
      Src: /src/icu/source/test/cintltst/trie2test.c:444,1
    - Dst: U8_PREV
      Src: /src/icu/source/test/cintltst/trie2test.c:490,1
    - Dst: UTRIE2_U8_NEXT16
      Src: /src/icu/source/test/cintltst/trie2test.c:459,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/trie2test.c:414,1
    - Dst: U8_FWD_1
      Src: /src/icu/source/test/cintltst/trie2test.c:435,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:510,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:471,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/trie2test.c:403,1
    - Dst: U8_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/trie2test.c:424,1
    - Dst: U8_NEXT
      Src: /src/icu/source/test/cintltst/trie2test.c:457,1
    - Dst: UTRIE2_U8_PREV16
      Src: /src/icu/source/test/cintltst/trie2test.c:492,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:477,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:504,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 129
    argCount: 5
    argNames:
    - testName
    - trie
    - valueBits
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UTrie2*
    - UTrie2ValueBits
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 515
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 515
    functionName: testTrieUTF8
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - UTRIE2_U8_PREV16
    - UTRIE2_U8_NEXT32
    - U8_APPEND_UNSAFE
    - UTRIE2_U8_NEXT16
    - U_IS_SURROGATE
    - U8_PREV
    - U8_NEXT
    - log_err
    - UTRIE2_U8_PREV32
    - U8_FWD_1
    - getSpecialValues
    linkageType: ''
    returnType: void
    signature: 'static void testTrieUTF8(const char *testName, const UTrie2 *trie,
      UTrie2ValueBits valueBits, const CheckRange checkRanges[], int32_t countCheckRanges) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: makeNewTrie1WithRanges
      Src: /src/icu/source/test/cintltst/trie2test.c:1352,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:1374,1
    - Dst: testFrozenTrie
      Src: /src/icu/source/test/cintltst/trie2test.c:1384,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:1373,1
    - Dst: getSpecialValues
      Src: /src/icu/source/test/cintltst/trie2test.c:1378,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/trie2test.c:1399,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/trie2test.c:1400,1
    - Dst: UTRIE2_GET32_FROM_U16_SINGLE_LEAD
      Src: /src/icu/source/test/cintltst/trie2test.c:1407,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:1409,1
    - Dst: utrie_unserialize
      Src: /src/icu/source/test/cintltst/trie2test.c:1369,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/trie2test.c:1381,1
    - Dst: UTRIE2_GET16_FROM_U16_SINGLE_LEAD
      Src: /src/icu/source/test/cintltst/trie2test.c:1388,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:1390,1
    - Dst: testFrozenTrie
      Src: /src/icu/source/test/cintltst/trie2test.c:1403,1
    - Dst: utrie2_close
      Src: /src/icu/source/test/cintltst/trie2test.c:1416,1
    - Dst: utrie_close
      Src: /src/icu/source/test/cintltst/trie2test.c:1360,1
    - Dst: utrie_serialize
      Src: /src/icu/source/test/cintltst/trie2test.c:1366,1
    - Dst: utrie_serialize
      Src: /src/icu/source/test/cintltst/trie2test.c:1364,1
    - Dst: utrie_unserialize
      Src: /src/icu/source/test/cintltst/trie2test.c:1368,1
    - Dst: utrie_close
      Src: /src/icu/source/test/cintltst/trie2test.c:1371,1
    - Dst: utrie2_close
      Src: /src/icu/source/test/cintltst/trie2test.c:1397,1
    - Dst: utrie2_fromUTrie
      Src: /src/icu/source/test/cintltst/trie2test.c:1401,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/trie2test.c:1402,1
    - Dst: UTRIE_GET32_FROM_LEAD
      Src: /src/icu/source/test/cintltst/trie2test.c:1406,1
    - Dst: utrie_clone
      Src: /src/icu/source/test/cintltst/trie2test.c:1358,1
    - Dst: utrie_close
      Src: /src/icu/source/test/cintltst/trie2test.c:1370,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:1372,1
    - Dst: utrie2_fromUTrie
      Src: /src/icu/source/test/cintltst/trie2test.c:1382,1
    - Dst: UTRIE_GET16_FROM_LEAD
      Src: /src/icu/source/test/cintltst/trie2test.c:1387,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/trie2test.c:1380,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/trie2test.c:1383,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 5
    argNames:
    - testName
    - setRanges
    - countSetRanges
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - SetRange
    - int32_t
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 1417
      start: 1336
    functionDepth: 0
    functionLinenumber: 1336
    functionLinenumberEnd: 1417
    functionName: testTrie2FromTrie1
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - uprv_strcat
    - testFrozenTrie
    - utrie2_close
    - UTRIE2_GET16_FROM_U16_SINGLE_LEAD
    - utrie_unserialize
    - U_SUCCESS
    - u_errorName
    - U_FAILURE
    - UTRIE_GET16_FROM_LEAD
    - utrie2_fromUTrie
    - utrie_close
    - makeNewTrie1WithRanges
    - utrie_clone
    - UTRIE2_GET32_FROM_U16_SINGLE_LEAD
    - log_err
    - uprv_strcpy
    - UTRIE_GET32_FROM_LEAD
    - getSpecialValues
    - utrie_serialize
    linkageType: ''
    returnType: void
    signature: 'static void testTrie2FromTrie1(const char *testName, const SetRange
      setRanges[], int32_t countSetRanges, const CheckRange checkRanges[], int32_t
      countCheckRanges) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utrie2_enum
      Src: /src/icu/source/test/cintltst/trie2test.c:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 4
    argNames:
    - testName
    - trie
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UTrie2*
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: testTrieEnum
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - utrie2_enum
    linkageType: ''
    returnType: void
    signature: 'static void testTrieEnum(const char *testName, const UTrie2 *trie,
      const CheckRange checkRanges[], int32_t countCheckRanges) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: testTrieGetters
      Src: /src/icu/source/test/cintltst/trie2test.c:530,1
    - Dst: utrie2_setRange32
      Src: /src/icu/source/test/cintltst/trie2test.c:546,1
    - Dst: utrie2_get32FromLeadSurrogateCodeUnit
      Src: /src/icu/source/test/cintltst/trie2test.c:557,1
    - Dst: testTrieUTF16
      Src: /src/icu/source/test/cintltst/trie2test.c:532,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:525,1
    - Dst: utrie2_get32
      Src: /src/icu/source/test/cintltst/trie2test.c:536,1
    - Dst: utrie2_set32
      Src: /src/icu/source/test/cintltst/trie2test.c:537,1
    - Dst: utrie2_get32
      Src: /src/icu/source/test/cintltst/trie2test.c:547,1
    - Dst: utrie2_get32FromLeadSurrogateCodeUnit
      Src: /src/icu/source/test/cintltst/trie2test.c:555,1
    - Dst: utrie2_get32
      Src: /src/icu/source/test/cintltst/trie2test.c:538,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:550,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:549,1
    - Dst: utrie2_isFrozen
      Src: /src/icu/source/test/cintltst/trie2test.c:524,1
    - Dst: testTrieEnum
      Src: /src/icu/source/test/cintltst/trie2test.c:531,1
    - Dst: testTrieUTF8
      Src: /src/icu/source/test/cintltst/trie2test.c:533,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:540,1
    - Dst: utrie2_set32ForLeadSurrogateCodeUnit
      Src: /src/icu/source/test/cintltst/trie2test.c:556,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:559,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:541,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:561,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 5
    argNames:
    - testName
    - trie
    - valueBits
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UTrie2*
    - UTrie2ValueBits
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 564
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 564
    functionName: testFrozenTrie
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - testTrieUTF16
    - utrie2_isFrozen
    - utrie2_get32
    - testTrieEnum
    - utrie2_set32ForLeadSurrogateCodeUnit
    - log_err
    - utrie2_set32
    - utrie2_get32FromLeadSurrogateCodeUnit
    - testTrieGetters
    - u_errorName
    - utrie2_setRange32
    - testTrieUTF8
    linkageType: ''
    returnType: void
    signature: 'static void testFrozenTrie(const char *testName, UTrie2 *trie, UTrie2ValueBits
      valueBits, const CheckRange checkRanges[], int32_t countCheckRanges) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testTrieRanges
      Src: /src/icu/source/test/cintltst/trie2test.c:1069,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trie2test.c:1073,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trie2test.c:1070,1
    - Dst: testTrieRanges
      Src: /src/icu/source/test/cintltst/trie2test.c:1072,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trie2test.c:1071,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trie2test.c:1074,1
    - Dst: testTrieRanges
      Src: /src/icu/source/test/cintltst/trie2test.c:1075,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trie2test.c:1076,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trie2test.c:1077,1
    - Dst: testTrieRanges
      Src: /src/icu/source/test/cintltst/trie2test.c:1078,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trie2test.c:1080,1
    - Dst: testTrieRanges
      Src: /src/icu/source/test/cintltst/trie2test.c:1081,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trie2test.c:1087,1
    - Dst: testTrieRanges
      Src: /src/icu/source/test/cintltst/trie2test.c:1085,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trie2test.c:1083,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trie2test.c:1086,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trie2test.c:1082,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1088
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1088
    functionName: TrieTest
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - testTrieRanges
    linkageType: ''
    returnType: void
    signature: 'static void TrieTest(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testTrie2FromTrie1
      Src: /src/icu/source/test/cintltst/trie2test.c:1421,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trie2test.c:1422,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trie2test.c:1423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1424
      start: 1419
    functionDepth: 0
    functionLinenumber: 1419
    functionLinenumberEnd: 1424
    functionName: Trie12ConversionTest
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - testTrie2FromTrie1
    linkageType: ''
    returnType: void
    signature: 'static void Trie12ConversionTest(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/trie2test.c:1303,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:1309,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:1310,1
    - Dst: getSpecialValues
      Src: /src/icu/source/test/cintltst/trie2test.c:1305,1
    - Dst: utrie_open
      Src: /src/icu/source/test/cintltst/trie2test.c:1306,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:1310,1
    - Dst: utrie_set32
      Src: /src/icu/source/test/cintltst/trie2test.c:1322,1
    - Dst: utrie_setRange32
      Src: /src/icu/source/test/cintltst/trie2test.c:1324,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:1330,1
    - Dst: utrie_close
      Src: /src/icu/source/test/cintltst/trie2test.c:1331,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - testName
    - setRanges
    - countSetRanges
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - SetRange
    - int32_t
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 1334
      start: 1291
    functionDepth: 0
    functionLinenumber: 1291
    functionLinenumberEnd: 1334
    functionName: makeNewTrie1WithRanges
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - utrie_close
    - U_FAILURE
    - u_errorName
    - utrie_setRange32
    - log_verbose
    - log_err
    - getSpecialValues
    - utrie_open
    - utrie_set32
    linkageType: ''
    returnType: UNewTrie*
    signature: 'static UNewTrie *makeNewTrie1WithRanges(const char *testName, const
      SetRange setRanges[], int32_t countSetRanges, const CheckRange checkRanges[],
      int32_t countCheckRanges) '
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: utrie2_get32
      Src: /src/icu/source/test/cintltst/trie2test.c:165,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:236,1
    - Dst: utrie2_get32
      Src: /src/icu/source/test/cintltst/trie2test.c:263,1
    - Dst: utrie2_isFrozen
      Src: /src/icu/source/test/cintltst/trie2test.c:120,1
    - Dst: UTRIE2_GET16_FROM_U16_SINGLE_LEAD
      Src: /src/icu/source/test/cintltst/trie2test.c:135,1
    - Dst: UTRIE2_GET32_FROM_SUPP
      Src: /src/icu/source/test/cintltst/trie2test.c:148,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:167,1
    - Dst: U_IS_LEAD
      Src: /src/icu/source/test/cintltst/trie2test.c:229,1
    - Dst: UTRIE2_GET32
      Src: /src/icu/source/test/cintltst/trie2test.c:158,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:188,1
    - Dst: UTRIE2_GET32_FROM_U16_SINGLE_LEAD
      Src: /src/icu/source/test/cintltst/trie2test.c:233,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:242,1
    - Dst: UTRIE2_GET16
      Src: /src/icu/source/test/cintltst/trie2test.c:251,1
    - Dst: U_IS_LEAD
      Src: /src/icu/source/test/cintltst/trie2test.c:133,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:140,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:151,1
    - Dst: utrie2_get32FromLeadSurrogateCodeUnit
      Src: /src/icu/source/test/cintltst/trie2test.c:240,1
    - Dst: UTRIE2_GET16
      Src: /src/icu/source/test/cintltst/trie2test.c:252,1
    - Dst: UTRIE2_GET32
      Src: /src/icu/source/test/cintltst/trie2test.c:255,1
    - Dst: utrie2_get32
      Src: /src/icu/source/test/cintltst/trie2test.c:262,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:265,1
    - Dst: UTRIE2_GET32
      Src: /src/icu/source/test/cintltst/trie2test.c:254,1
    - Dst: UTRIE2_GET32_FROM_U16_SINGLE_LEAD
      Src: /src/icu/source/test/cintltst/trie2test.c:137,1
    - Dst: getSpecialValues
      Src: /src/icu/source/test/cintltst/trie2test.c:123,1
    - Dst: UTRIE2_GET16_FROM_SUPP
      Src: /src/icu/source/test/cintltst/trie2test.c:146,1
    - Dst: UTRIE2_GET16
      Src: /src/icu/source/test/cintltst/trie2test.c:156,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:161,1
    - Dst: strncmp
      Src: /src/icu/source/test/cintltst/trie2test.c:208,1
    - Dst: strncmp
      Src: /src/icu/source/test/cintltst/trie2test.c:208,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:201,1
    - Dst: UTRIE2_GET16_FROM_U16_SINGLE_LEAD
      Src: /src/icu/source/test/cintltst/trie2test.c:231,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:258,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 144
    argCount: 5
    argNames:
    - testName
    - trie
    - valueBits
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UTrie2*
    - UTrie2ValueBits
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 268
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 268
    functionName: testTrieGetters
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - utrie2_isFrozen
    - UTRIE2_GET16_FROM_SUPP
    - UTRIE2_GET32
    - utrie2_get32
    - UTRIE2_GET16_FROM_U16_SINGLE_LEAD
    - UTRIE2_GET16
    - UTRIE2_GET32_FROM_U16_SINGLE_LEAD
    - log_err
    - strncmp
    - utrie2_get32FromLeadSurrogateCodeUnit
    - U_IS_LEAD
    - getSpecialValues
    - UTRIE2_GET32_FROM_SUPP
    linkageType: ''
    returnType: void
    signature: 'static void testTrieGetters(const char *testName, const UTrie2 *trie,
      UTrie2ValueBits valueBits, const CheckRange checkRanges[], int32_t countCheckRanges) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: testNewTrie
      Src: /src/icu/source/test/cintltst/trie2test.c:790,1
    - Dst: utrie2_cloneAsThawed
      Src: /src/icu/source/test/cintltst/trie2test.c:808,1
    - Dst: testTrieSerialize
      Src: /src/icu/source/test/cintltst/trie2test.c:798,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/trie2test.c:797,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/trie2test.c:796,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:809,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:810,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:811,1
    - Dst: utrie2_close
      Src: /src/icu/source/test/cintltst/trie2test.c:813,1
    - Dst: testNewTrie
      Src: /src/icu/source/test/cintltst/trie2test.c:816,1
    - Dst: testTrieSerialize
      Src: /src/icu/source/test/cintltst/trie2test.c:822,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/trie2test.c:820,1
    - Dst: uprv_strcat
      Src: /src/icu/source/test/cintltst/trie2test.c:821,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 5
    argNames:
    - testName
    - trie
    - withClone
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UTrie2*
    - UBool
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 827
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 827
    functionName: testTrieSerializeAllValueBits
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - uprv_strcat
    - U_FAILURE
    - utrie2_close
    - utrie2_cloneAsThawed
    - testTrieSerialize
    - log_err
    - uprv_strcpy
    - u_errorName
    - testNewTrie
    linkageType: ''
    returnType: UTrie2*
    signature: 'static UTrie2 *testTrieSerializeAllValueBits(const char *testName,
      UTrie2 *trie, UBool withClone, const CheckRange checkRanges[], int32_t countCheckRanges) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utrie2_set32
      Src: /src/icu/source/test/cintltst/trie2test.c:1265,1
    - Dst: utrie2_open
      Src: /src/icu/source/test/cintltst/trie2test.c:1248,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:1249,1
    - Dst: utrie2_set32
      Src: /src/icu/source/test/cintltst/trie2test.c:1259,1
    - Dst: utrie2_set32
      Src: /src/icu/source/test/cintltst/trie2test.c:1262,1
    - Dst: utrie2_set32ForLeadSurrogateCodeUnit
      Src: /src/icu/source/test/cintltst/trie2test.c:1274,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:1277,1
    - Dst: utrie2_close
      Src: /src/icu/source/test/cintltst/trie2test.c:1286,1
    - Dst: utrie2_set32ForLeadSurrogateCodeUnit
      Src: /src/icu/source/test/cintltst/trie2test.c:1275,1
    - Dst: utrie2_set32ForLeadSurrogateCodeUnit
      Src: /src/icu/source/test/cintltst/trie2test.c:1271,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trie2test.c:1285,1
    - Dst: testTrieSerializeAllValueBits
      Src: /src/icu/source/test/cintltst/trie2test.c:1284,1
    - Dst: utrie2_set32ForLeadSurrogateCodeUnit
      Src: /src/icu/source/test/cintltst/trie2test.c:1276,1
    - Dst: utrie2_close
      Src: /src/icu/source/test/cintltst/trie2test.c:1280,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:1250,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:1250,1
    - Dst: utrie2_set32
      Src: /src/icu/source/test/cintltst/trie2test.c:1268,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:1279,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:1278,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1287
      start: 1231
    functionDepth: 0
    functionLinenumber: 1231
    functionLinenumberEnd: 1287
    functionName: GrowDataArrayTest
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - utrie2_close
    - testTrieSerializeAllValueBits
    - utrie2_set32ForLeadSurrogateCodeUnit
    - log_err
    - utrie2_set32
    - UPRV_LENGTHOF
    - u_errorName
    - utrie2_open
    linkageType: ''
    returnType: void
    signature: 'static void GrowDataArrayTest(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: skipSpecialValues
      Src: /src/icu/source/test/cintltst/trie2test.c:286,1
    - Dst: U16_NEXT
      Src: /src/icu/source/test/cintltst/trie2test.c:307,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/trie2test.c:293,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/trie2test.c:289,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/trie2test.c:297,1
    - Dst: UTRIE2_U16_NEXT16
      Src: /src/icu/source/test/cintltst/trie2test.c:310,1
    - Dst: UTRIE2_U16_NEXT32
      Src: /src/icu/source/test/cintltst/trie2test.c:312,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:315,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:319,1
    - Dst: U16_PREV
      Src: /src/icu/source/test/cintltst/trie2test.c:332,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:344,1
    - Dst: UTRIE2_U16_PREV32
      Src: /src/icu/source/test/cintltst/trie2test.c:337,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:340,1
    - Dst: UTRIE2_U16_PREV16
      Src: /src/icu/source/test/cintltst/trie2test.c:335,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 5
    argNames:
    - testName
    - trie
    - valueBits
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UTrie2*
    - UTrie2ValueBits
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 348
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 348
    functionName: testTrieUTF16
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - U16_NEXT
    - U16_PREV
    - UTRIE2_U16_NEXT16
    - UTRIE2_U16_NEXT32
    - U16_APPEND_UNSAFE
    - UTRIE2_U16_PREV32
    - log_err
    - skipSpecialValues
    - UTRIE2_U16_PREV16
    linkageType: ''
    returnType: void
    signature: 'static void testTrieUTF16(const char *testName, const UTrie2 *trie,
      UTrie2ValueBits valueBits, const CheckRange checkRanges[], int32_t countCheckRanges) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/trie2test.c:841,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:846,1
    - Dst: getSpecialValues
      Src: /src/icu/source/test/cintltst/trie2test.c:843,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:846,1
    - Dst: utrie2_clone
      Src: /src/icu/source/test/cintltst/trie2test.c:854,1
    - Dst: utrie2_set32ForLeadSurrogateCodeUnit
      Src: /src/icu/source/test/cintltst/trie2test.c:878,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:882,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:883,1
    - Dst: utrie2_set32
      Src: /src/icu/source/test/cintltst/trie2test.c:869,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:855,1
    - Dst: utrie2_setRange32
      Src: /src/icu/source/test/cintltst/trie2test.c:871,1
    - Dst: utrie2_close
      Src: /src/icu/source/test/cintltst/trie2test.c:884,1
    - Dst: utrie2_open
      Src: /src/icu/source/test/cintltst/trie2test.c:844,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:845,1
    - Dst: utrie2_close
      Src: /src/icu/source/test/cintltst/trie2test.c:860,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:856,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:857,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/trie2test.c:879,1
    - Dst: utrie2_set32ForLeadSurrogateCodeUnit
      Src: /src/icu/source/test/cintltst/trie2test.c:876,1
    - Dst: utrie2_set32ForLeadSurrogateCodeUnit
      Src: /src/icu/source/test/cintltst/trie2test.c:877,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 6
    argNames:
    - testName
    - withClone
    - setRanges
    - countSetRanges
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UBool
    - SetRange
    - int32_t
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 887
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 887
    functionName: makeTrieWithRanges
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - utrie2_setRange32
    - utrie2_clone
    - U_FAILURE
    - utrie2_close
    - u_errorName
    - U_SUCCESS
    - log_verbose
    - log_err
    - utrie2_set32ForLeadSurrogateCodeUnit
    - utrie2_set32
    - getSpecialValues
    - utrie2_open
    linkageType: ''
    returnType: UTrie2*
    signature: 'static UTrie2 *makeTrieWithRanges(const char *testName, UBool withClone,
      const SetRange setRanges[], int32_t countSetRanges, const CheckRange checkRanges[],
      int32_t countCheckRanges) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/trie2test.c:1428,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/trie2test.c:1432,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/trie2test.c:1433,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/trie2test.c:1429,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/trie2test.c:1431,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/trie2test.c:1434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 1435
      start: 1426
    functionDepth: 0
    functionLinenumber: 1426
    functionLinenumberEnd: 1435
    functionName: addTrie2Test
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addTrie2Test(TestNode** root) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utrie2_openDummy
      Src: /src/icu/source/test/cintltst/trie2test.c:1160,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:1162,1
    - Dst: testFrozenTrie
      Src: /src/icu/source/test/cintltst/trie2test.c:1166,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:1161,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:1162,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trie2test.c:1166,1
    - Dst: utrie2_close
      Src: /src/icu/source/test/cintltst/trie2test.c:1167,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - valueBits
    argTypes:
    - UTrie2ValueBits
    constantsTouched: []
    func_position:
      end: 1168
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1168
    functionName: dummyTest
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - testFrozenTrie
    - U_FAILURE
    - utrie2_close
    - utrie2_openDummy
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void dummyTest(UTrie2ValueBits valueBits) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utrie2_open
      Src: /src/icu/source/test/cintltst/trie2test.c:1195,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:1196,1
    - Dst: utrie2_setRange32
      Src: /src/icu/source/test/cintltst/trie2test.c:1212,1
    - Dst: utrie2_setRange32
      Src: /src/icu/source/test/cintltst/trie2test.c:1213,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:1220,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:1221,1
    - Dst: utrie2_setRange32
      Src: /src/icu/source/test/cintltst/trie2test.c:1206,1
    - Dst: utrie2_setRange32
      Src: /src/icu/source/test/cintltst/trie2test.c:1207,1
    - Dst: utrie2_setRange32
      Src: /src/icu/source/test/cintltst/trie2test.c:1209,1
    - Dst: utrie2_setRange32
      Src: /src/icu/source/test/cintltst/trie2test.c:1214,1
    - Dst: utrie2_close
      Src: /src/icu/source/test/cintltst/trie2test.c:1222,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:1197,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:1197,1
    - Dst: utrie2_setRange32
      Src: /src/icu/source/test/cintltst/trie2test.c:1208,1
    - Dst: utrie2_set32ForLeadSurrogateCodeUnit
      Src: /src/icu/source/test/cintltst/trie2test.c:1216,1
    - Dst: utrie2_set32ForLeadSurrogateCodeUnit
      Src: /src/icu/source/test/cintltst/trie2test.c:1217,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:1219,1
    - Dst: utrie2_close
      Src: /src/icu/source/test/cintltst/trie2test.c:1228,1
    - Dst: utrie2_set32ForLeadSurrogateCodeUnit
      Src: /src/icu/source/test/cintltst/trie2test.c:1218,1
    - Dst: testTrieSerializeAllValueBits
      Src: /src/icu/source/test/cintltst/trie2test.c:1226,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trie2test.c:1227,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1229
      start: 1178
    functionDepth: 0
    functionLinenumber: 1178
    functionLinenumberEnd: 1229
    functionName: FreeBlocksTest
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - utrie2_close
    - u_errorName
    - testTrieSerializeAllValueBits
    - utrie2_set32ForLeadSurrogateCodeUnit
    - log_err
    - UPRV_LENGTHOF
    - utrie2_setRange32
    - utrie2_open
    linkageType: ''
    returnType: void
    signature: 'static void FreeBlocksTest(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testTrieGetters
      Src: /src/icu/source/test/cintltst/trie2test.c:570,1
    - Dst: testTrieEnum
      Src: /src/icu/source/test/cintltst/trie2test.c:571,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 4
    argNames:
    - testName
    - trie
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UTrie2*
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 572
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 572
    functionName: testNewTrie
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - testTrieEnum
    - testTrieGetters
    linkageType: ''
    returnType: void
    signature: 'static void testNewTrie(const char *testName, const UTrie2 *trie,
      const CheckRange checkRanges[], int32_t countCheckRanges) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: makeTrieWithRanges
      Src: /src/icu/source/test/cintltst/trie2test.c:1093,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trie2test.c:1095,1
    - Dst: utrie2_enumForLeadSurrogate
      Src: /src/icu/source/test/cintltst/trie2test.c:1100,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/trie2test.c:1094,1
    - Dst: utrie2_enumForLeadSurrogate
      Src: /src/icu/source/test/cintltst/trie2test.c:1104,1
    - Dst: utrie2_enumForLeadSurrogate
      Src: /src/icu/source/test/cintltst/trie2test.c:1108,1
    - Dst: utrie2_enumForLeadSurrogate
      Src: /src/icu/source/test/cintltst/trie2test.c:1112,1
    - Dst: utrie2_isFrozen
      Src: /src/icu/source/test/cintltst/trie2test.c:1115,1
    - Dst: utrie2_freeze
      Src: /src/icu/source/test/cintltst/trie2test.c:1117,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:1118,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:1119,1
    - Dst: utrie2_close
      Src: /src/icu/source/test/cintltst/trie2test.c:1120,1
    - Dst: utrie2_close
      Src: /src/icu/source/test/cintltst/trie2test.c:1124,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1128
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1128
    functionName: EnumNewTrieForLeadSurrogateTest
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - utrie2_isFrozen
    - utrie2_freeze
    - U_FAILURE
    - utrie2_close
    - utrie2_enumForLeadSurrogate
    - makeTrieWithRanges
    - log_err
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void EnumNewTrieForLeadSurrogateTest(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dummyTest
      Src: /src/icu/source/test/cintltst/trie2test.c:1172,1
    - Dst: dummyTest
      Src: /src/icu/source/test/cintltst/trie2test.c:1173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1174
      start: 1170
    functionDepth: 0
    functionLinenumber: 1170
    functionLinenumberEnd: 1174
    functionName: DummyTrieTest
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - dummyTest
    linkageType: ''
    returnType: void
    signature: 'static void DummyTrieTest(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - checkRanges
    - countCheckRanges
    argTypes:
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: skipSpecialValues
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t skipSpecialValues(const CheckRange checkRanges[], int32_t
      countCheckRanges) '
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:589,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:645,1
    - Dst: udata_closeSwapper
      Src: /src/icu/source/test/cintltst/trie2test.c:694,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:707,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:740,1
    - Dst: utrie2_freeze
      Src: /src/icu/source/test/cintltst/trie2test.c:723,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:755,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:774,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:601,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:609,1
    - Dst: utrie2_freeze
      Src: /src/icu/source/test/cintltst/trie2test.c:729,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:733,1
    - Dst: utrie2_set32
      Src: /src/icu/source/test/cintltst/trie2test.c:771,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:708,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:742,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:700,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:646,1
    - Dst: utrie2_set32
      Src: /src/icu/source/test/cintltst/trie2test.c:769,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:608,1
    - Dst: utrie2_serialize
      Src: /src/icu/source/test/cintltst/trie2test.c:640,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:693,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:758,1
    - Dst: utrie2_close
      Src: /src/icu/source/test/cintltst/trie2test.c:761,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:588,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:607,1
    - Dst: utrie2_clone
      Src: /src/icu/source/test/cintltst/trie2test.c:623,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:670,1
    - Dst: testFrozenTrie
      Src: /src/icu/source/test/cintltst/trie2test.c:751,1
    - Dst: utrie2_isFrozen
      Src: /src/icu/source/test/cintltst/trie2test.c:755,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:773,1
    - Dst: udata_closeSwapper
      Src: /src/icu/source/test/cintltst/trie2test.c:674,1
    - Dst: utrie2_swap
      Src: /src/icu/source/test/cintltst/trie2test.c:697,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:681,1
    - Dst: utrie2_swap
      Src: /src/icu/source/test/cintltst/trie2test.c:689,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:712,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:679,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:731,1
    - Dst: utrie2_isFrozen
      Src: /src/icu/source/test/cintltst/trie2test.c:758,1
    - Dst: utrie2_get32
      Src: /src/icu/source/test/cintltst/trie2test.c:768,1
    - Dst: utrie2_isFrozen
      Src: /src/icu/source/test/cintltst/trie2test.c:726,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:708,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:741,1
    - Dst: utrie2_clone
      Src: /src/icu/source/test/cintltst/trie2test.c:586,1
    - Dst: utrie2_close
      Src: /src/icu/source/test/cintltst/trie2test.c:629,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:642,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:646,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/trie2test.c:686,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:756,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/trie2test.c:721,1
    - Dst: udata_openSwapper
      Src: /src/icu/source/test/cintltst/trie2test.c:687,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:691,1
    - Dst: utrie2_get32
      Src: /src/icu/source/test/cintltst/trie2test.c:770,1
    - Dst: utrie2_isFrozen
      Src: /src/icu/source/test/cintltst/trie2test.c:607,1
    - Dst: testFrozenTrie
      Src: /src/icu/source/test/cintltst/trie2test.c:655,1
    - Dst: udata_closeSwapper
      Src: /src/icu/source/test/cintltst/trie2test.c:698,1
    - Dst: utrie2_openFromSerialized
      Src: /src/icu/source/test/cintltst/trie2test.c:706,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:726,1
    - Dst: utrie2_close
      Src: /src/icu/source/test/cintltst/trie2test.c:780,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:680,1
    - Dst: utrie2_freeze
      Src: /src/icu/source/test/cintltst/trie2test.c:606,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:624,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:636,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:725,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:617,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:673,1
    - Dst: utrie2_clone
      Src: /src/icu/source/test/cintltst/trie2test.c:739,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:626,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:724,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/trie2test.c:748,1
    - Dst: utrie2_cloneAsThawed
      Src: /src/icu/source/test/cintltst/trie2test.c:754,1
    - Dst: testNewTrie
      Src: /src/icu/source/test/cintltst/trie2test.c:777,1
    - Dst: utrie2_freeze
      Src: /src/icu/source/test/cintltst/trie2test.c:613,1
    - Dst: utrie2_serialize
      Src: /src/icu/source/test/cintltst/trie2test.c:633,1
    - Dst: utrie2_swap
      Src: /src/icu/source/test/cintltst/trie2test.c:669,1
    - Dst: utrie2_swap
      Src: /src/icu/source/test/cintltst/trie2test.c:677,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:716,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:772,1
    - Dst: utrie2_serialize
      Src: /src/icu/source/test/cintltst/trie2test.c:599,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:602,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:635,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:650,1
    - Dst: uprv_memset
      Src: /src/icu/source/test/cintltst/trie2test.c:666,1
    - Dst: utrie2_close
      Src: /src/icu/source/test/cintltst/trie2test.c:746,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:690,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/trie2test.c:701,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:587,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:615,1
    - Dst: utrie2_close
      Src: /src/icu/source/test/cintltst/trie2test.c:656,1
    - Dst: udata_openSwapper
      Src: /src/icu/source/test/cintltst/trie2test.c:667,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/trie2test.c:699,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:671,1
    - Dst: utrie2_isFrozen
      Src: /src/icu/source/test/cintltst/trie2test.c:609,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/trie2test.c:625,1
    - Dst: udata_closeSwapper
      Src: /src/icu/source/test/cintltst/trie2test.c:678,1
    - Dst: utrie2_isFrozen
      Src: /src/icu/source/test/cintltst/trie2test.c:724,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 183
    argCount: 6
    argNames:
    - testName
    - trie
    - valueBits
    - withSwap
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UTrie2*
    - UTrie2ValueBits
    - UBool
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 781
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 781
    functionName: testTrieSerialize
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - utrie2_serialize
    - utrie2_clone
    - utrie2_freeze
    - utrie2_isFrozen
    - testFrozenTrie
    - udata_openSwapper
    - U_FAILURE
    - utrie2_openFromSerialized
    - utrie2_get32
    - utrie2_close
    - udata_closeSwapper
    - testNewTrie
    - utrie2_cloneAsThawed
    - log_err
    - utrie2_set32
    - utrie2_swap
    - u_errorName
    - uprv_memset
    linkageType: ''
    returnType: void
    signature: 'static void testTrieSerialize(const char *testName, UTrie2 *trie,
      UTrie2ValueBits valueBits, UBool withSwap, const CheckRange checkRanges[], int32_t
      countCheckRanges) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - context
    - value
    argTypes:
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: testEnumValue
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t U_CALLCONV testEnumValue(const void *context, uint32_t
      value) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - checkRanges
    - countCheckRanges
    - pInitialValue
    - pErrorValue
    argTypes:
    - CheckRange
    - int32_t
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 72
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 72
    functionName: getSpecialValues
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t getSpecialValues(const CheckRange checkRanges[], int32_t
      countCheckRanges, uint32_t *pInitialValue, uint32_t *pErrorValue) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: makeTrieWithRanges
      Src: /src/icu/source/test/cintltst/trie2test.c:893,1
    - Dst: utrie2_close
      Src: /src/icu/source/test/cintltst/trie2test.c:899,1
    - Dst: testTrieSerializeAllValueBits
      Src: /src/icu/source/test/cintltst/trie2test.c:897,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 6
    argNames:
    - testName
    - withClone
    - setRanges
    - countSetRanges
    - checkRanges
    - countCheckRanges
    argTypes:
    - char*
    - UBool
    - SetRange
    - int32_t
    - CheckRange
    - int32_t
    constantsTouched: []
    func_position:
      end: 901
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 901
    functionName: testTrieRanges
    functionSourceFile: /src/icu/source/test/cintltst/trie2test.c
    functionUses: []
    functionsReached:
    - utrie2_close
    - makeTrieWithRanges
    - testTrieSerializeAllValueBits
    linkageType: ''
    returnType: void
    signature: 'static void testTrieRanges(const char *testName, UBool withClone,
      const SetRange setRanges[], int32_t countSetRanges, const CheckRange checkRanges[],
      int32_t countCheckRanges) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:68,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:70,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - len
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: printSeqErr
    functionSourceFile: /src/icu/source/test/cintltst/ncnvfbts.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void printSeqErr(const unsigned char* a, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:50,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:53,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - len
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: printSeq
    functionSourceFile: /src/icu/source/test/cintltst/ncnvfbts.c
    functionUses: []
    functionsReached:
    - log_verbose
    linkageType: ''
    returnType: void
    signature: 'static void printSeq(const unsigned char* a, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestConvertFallBackWithBufferSizes
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:85,1
    - Dst: TestConvertFallBackWithBufferSizes
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:88,1
    - Dst: TestConvertFallBackWithBufferSizes
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:89,1
    - Dst: TestConvertFallBackWithBufferSizes
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:87,1
    - Dst: TestConvertFallBackWithBufferSizes
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:86,1
    - Dst: TestConvertFallBackWithBufferSizes
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:90,1
    - Dst: TestConvertFallBackWithBufferSizes
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:91,1
    - Dst: TestConvertFallBackWithBufferSizes
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:92,1
    - Dst: TestConvertFallBackWithBufferSizes
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:93,1
    - Dst: TestConvertFallBackWithBufferSizes
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:94,1
    - Dst: TestConvertFallBackWithBufferSizes
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:97,1
    - Dst: TestConvertFallBackWithBufferSizes
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:98,1
    - Dst: TestConvertFallBackWithBufferSizes
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:99,1
    - Dst: TestConvertFallBackWithBufferSizes
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:96,1
    - Dst: TestConvertFallBackWithBufferSizes
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 101
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 101
    functionName: TestConverterFallBack
    functionSourceFile: /src/icu/source/test/cintltst/ncnvfbts.c
    functionUses: []
    functionsReached:
    - TestConvertFallBackWithBufferSizes
    linkageType: ''
    returnType: void
    signature: 'static void TestConverterFallBack(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: addTestConverterFallBack
    functionSourceFile: /src/icu/source/test/cintltst/ncnvfbts.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addTestConverterFallBack(TestNode** root) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:160,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:175,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:237,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:238,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:238,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:246,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:256,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:264,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:285,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:288,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:267,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:277,1
    - Dst: my_ucnv_open
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:163,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:170,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:182,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:194,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:222,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:245,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:250,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:257,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:266,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:268,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:286,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:270,1
    - Dst: setNuConvTestName
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:158,1
    - Dst: ucnv_setFallback
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:172,1
    - Dst: ucnv_usesFallback
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:173,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:201,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:195,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:209,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:226,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:237,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:248,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:255,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:258,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:278,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:280,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:265,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:164,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:166,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:175,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:204,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:220,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:222,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:228,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:241,1
    - Dst: printSeq
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:242,1
    - Dst: printSeqErr
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:287,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:273,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:271,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 125
    argCount: 7
    argNames:
    - source
    - sourceLen
    - expect
    - expectLen
    - codepage
    - fallback
    - expectOffsets
    argTypes:
    - UChar*
    - int
    - uint8_t*
    - int
    - char*
    - UBool
    - int32_t*
    constantsTouched: []
    func_position:
      end: 291
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 291
    functionName: testConvertFromUnicode
    functionSourceFile: /src/icu/source/test/cintltst/ncnvfbts.c
    functionUses: []
    functionsReached:
    - ucnv_setFallback
    - nct_min
    - ucnv_fromUnicode
    - U_FAILURE
    - uprv_strlen
    - log_data_err
    - log_verbose
    - memcmp
    - UPRV_LENGTHOF
    - getTestOption
    - log_err
    - uprv_memcmp
    - sprintf
    - my_ucnv_open
    - setNuConvTestName
    - ucnv_close
    - printSeqErr
    - printSeq
    - myErrorName
    - strlen
    - ucnv_usesFallback
    linkageType: ''
    returnType: UBool
    signature: 'static UBool testConvertFromUnicode(const UChar *source, int sourceLen,
      const uint8_t *expect, int expectLen, const char *codepage, UBool fallback,
      const int32_t *expectOffsets) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_openPackage
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:40,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:42,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - cnv
    - err
    argTypes:
    - char*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: my_ucnv_open
    functionSourceFile: /src/icu/source/test/cintltst/ncnvfbts.c
    functionUses: []
    functionsReached:
    - ucnv_openPackage
    - ucnv_open
    linkageType: ''
    returnType: UConverter*
    signature: 'static UConverter *my_ucnv_open(const char *cnv, UErrorCode *err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:59,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:61,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - len
    argTypes:
    - UChar*
    - int
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: printUSeq
    functionSourceFile: /src/icu/source/test/cintltst/ncnvfbts.c
    functionUses: []
    functionsReached:
    - log_verbose
    linkageType: ''
    returnType: void
    signature: 'static void printUSeq(const UChar* a, int len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:77,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:80,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - a
    - len
    argTypes:
    - UChar*
    - int
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: printUSeqErr
    functionSourceFile: /src/icu/source/test/cintltst/ncnvfbts.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void printUSeqErr(const UChar* a, int len) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: setNuConvTestName
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:323,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:340,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:347,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:391,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:403,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:407,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:418,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:423,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:429,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:443,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:432,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:400,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:444,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:385,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:399,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:400,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:414,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:426,1
    - Dst: printf
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:446,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:430,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:436,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:408,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:325,1
    - Dst: ucnv_setFallback
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:344,1
    - Dst: ucnv_usesFallback
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:345,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:358,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:363,1
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:372,1
    - Dst: printUSeq
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:404,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:410,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:412,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:424,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:427,1
    - Dst: printUSeqErr
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:445,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:438,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:328,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:330,1
    - Dst: my_ucnv_open
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:327,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:334,1
    - Dst: nct_min
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:359,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:366,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:383,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:347,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:385,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:389,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:399,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:420,1
    - Dst: printUSeqErr
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:447,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:421,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 123
    argCount: 7
    argNames:
    - source
    - sourcelen
    - expect
    - expectlen
    - codepage
    - fallback
    - expectOffsets
    argTypes:
    - uint8_t*
    - int
    - UChar*
    - int
    - char*
    - UBool
    - int32_t*
    constantsTouched: []
    func_position:
      end: 450
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 450
    functionName: testConvertToUnicode
    functionSourceFile: /src/icu/source/test/cintltst/ncnvfbts.c
    functionUses: []
    functionsReached:
    - printUSeq
    - ucnv_setFallback
    - nct_min
    - printf
    - U_FAILURE
    - log_data_err
    - log_verbose
    - memcmp
    - UPRV_LENGTHOF
    - getTestOption
    - ucnv_toUnicode
    - printUSeqErr
    - log_err
    - sprintf
    - my_ucnv_open
    - setNuConvTestName
    - ucnv_close
    - myErrorName
    - strlen
    - ucnv_usesFallback
    linkageType: ''
    returnType: UBool
    signature: 'static UBool testConvertToUnicode( const uint8_t *source, int sourcelen,
      const UChar *expect, int expectlen, const char *codepage, UBool fallback, const
      int32_t *expectOffsets) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:546,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:554,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:563,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:568,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:587,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:589,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:607,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:610,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:612,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:616,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:638,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:631,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:638,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:742,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:688,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:742,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:695,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:744,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:592,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:693,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:728,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:746,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:553,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:558,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:560,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:573,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:643,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:661,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:688,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:690,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:723,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:725,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:729,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:640,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:748,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:730,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:723,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:694,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:747,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:666,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:611,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:548,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:547,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:552,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:562,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:564,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:568,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:570,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:588,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:590,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:591,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:631,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:595,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:663,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:548,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:550,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:558,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:572,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:574,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:577,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:642,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:644,1
    - Dst: testConvertFromUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:661,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:633,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:668,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:667,1
    - Dst: testConvertToUnicode
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:606,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:608,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 102
    argCount: 2
    argNames:
    - outsize
    - insize
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 751
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 751
    functionName: TestConvertFallBackWithBufferSizes
    functionSourceFile: /src/icu/source/test/cintltst/ncnvfbts.c
    functionUses: []
    functionsReached:
    - testConvertFromUnicode
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - testConvertToUnicode
    linkageType: ''
    returnType: void
    signature: 'static void TestConvertFallBackWithBufferSizes(int32_t outsize, int32_t
      insize ) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/ncnvfbts.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - codepage
    - direction
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: setNuConvTestName
    functionSourceFile: /src/icu/source/test/cintltst/ncnvfbts.c
    functionUses: []
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: void
    signature: 'static void setNuConvTestName(const char *codepage, const char *direction) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cjaptst.c:109,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cjaptst.c:112,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cjaptst.c:110,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cjaptst.c:113,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cjaptst.c:111,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cjaptst.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: addKannaCollTest
    functionSourceFile: /src/icu/source/test/cintltst/cjaptst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addKannaCollTest(TestNode** root) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cjaptst.c:121,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cjaptst.c:126,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cjaptst.c:123,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cjaptst.c:123,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cjaptst.c:122,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cjaptst.c:127,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cjaptst.c:128,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cjaptst.c:131,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cjaptst.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 134
    functionName: TestTertiary
    functionSourceFile: /src/icu/source/test/cintltst/cjaptst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - ucol_setAttribute
    - doTest
    - myErrorName
    - log_verbose
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestTertiary( ) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cjaptst.c:186,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cjaptst.c:190,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cjaptst.c:189,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cjaptst.c:187,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cjaptst.c:194,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cjaptst.c:195,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cjaptst.c:196,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cjaptst.c:198,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cjaptst.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 202
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 202
    functionName: TestSmallLarge
    functionSourceFile: /src/icu/source/test/cintltst/cjaptst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - ucol_setAttribute
    - doTest
    - myErrorName
    - log_verbose
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestSmallLarge(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cjaptst.c:141,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cjaptst.c:144,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cjaptst.c:142,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cjaptst.c:149,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cjaptst.c:145,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cjaptst.c:150,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cjaptst.c:152,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cjaptst.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 155
    functionName: TestBase
    functionSourceFile: /src/icu/source/test/cintltst/cjaptst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - log_verbose
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestBase() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cjaptst.c:237,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cjaptst.c:241,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cjaptst.c:245,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cjaptst.c:240,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cjaptst.c:238,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cjaptst.c:246,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cjaptst.c:247,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cjaptst.c:249,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cjaptst.c:253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 254
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 254
    functionName: TestChooonKigoo
    functionSourceFile: /src/icu/source/test/cintltst/cjaptst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - ucol_setAttribute
    - doTest
    - myErrorName
    - log_verbose
    linkageType: ''
    returnType: void
    signature: 'static void TestChooonKigoo(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cjaptst.c:162,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cjaptst.c:165,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cjaptst.c:163,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cjaptst.c:166,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cjaptst.c:170,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cjaptst.c:171,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cjaptst.c:173,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cjaptst.c:176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 177
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 177
    functionName: TestPlainDakutenHandakuten
    functionSourceFile: /src/icu/source/test/cintltst/cjaptst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - log_verbose
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestPlainDakutenHandakuten(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cjaptst.c:211,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cjaptst.c:214,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cjaptst.c:212,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cjaptst.c:219,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cjaptst.c:215,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cjaptst.c:220,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cjaptst.c:221,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cjaptst.c:223,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cjaptst.c:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 228
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 228
    functionName: TestKatakanaHiragana
    functionSourceFile: /src/icu/source/test/cintltst/cjaptst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - ucol_setAttribute
    - doTest
    - myErrorName
    - log_verbose
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestKatakanaHiragana(void) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:235,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:247,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:254,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:254,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:262,1
    - Dst: usearch_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:275,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:280,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:293,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:297,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:268,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:223,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:234,1
    - Dst: usearch_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:233,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:226,1
    - Dst: usearch_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:245,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:246,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:258,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:260,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:264,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:277,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:289,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:206,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:212,1
    - Dst: usearch_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:210,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:217,1
    - Dst: usearch_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:221,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:222,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:229,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:241,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:250,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:253,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:295,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:211,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:215,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:216,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:238,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:228,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:240,1
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:252,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:276,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:283,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:285,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:287,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 106
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 298
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 298
    functionName: TestOpenClose
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - usearch_close
    - U_FAILURE
    - log_err_status
    - open
    - log_data_err
    - U_SUCCESS
    - ubrk_open
    - log_err
    - ubrk_close
    - usearch_open
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestOpenClose(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:832,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:833,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:834,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:837,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:834,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:838,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:839,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:840,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/usrchtst.c:843,1
    - Dst: assertEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:844,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:849,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:845,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:851,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 852
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 852
    functionName: TestVariable
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - assertEqual
    - U_FAILURE
    - log_err_status
    - open
    - ucol_setAttribute
    - log_verbose
    - log_err
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestVariable(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:1592,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1600,1
    - Dst: usearch_getAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1616,1
    - Dst: usearch_getAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1615,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1607,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:1625,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1594,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1597,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:1594,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1599,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1600,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1602,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1611,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:1620,1
    - Dst: usearch_previous
      Src: /src/icu/source/test/cintltst/usrchtst.c:1623,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1626,1
    - Dst: usearch_setOffset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1609,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:1619,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1621,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:1624,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1629,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1593,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1606,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1610,1
    - Dst: usearch_getOffset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1618,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1614,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1630,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1631
      start: 1584
    functionDepth: 0
    functionLinenumber: 1584
    functionLinenumberEnd: 1631
    functionName: TestReset
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - usearch_previous
    - usearch_getAttribute
    - usearch_getOffset
    - usearch_getMatchedStart
    - usearch_close
    - U_FAILURE
    - usearch_setOffset
    - log_err_status
    - open
    - usearch_getMatchedLength
    - log_err
    - usearch_reset
    - usearch_setAttribute
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestReset(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:1813,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1814,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1815,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1818,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:1815,1
    - Dst: assertCanonicalEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:1821,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1822,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1826,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1827,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1828
      start: 1809
    functionDepth: 0
    functionLinenumber: 1809
    functionLinenumberEnd: 1828
    functionName: TestNormCanonical
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - assertCanonicalEqual
    - U_FAILURE
    - log_err_status
    - open
    - ucol_setAttribute
    - log_err
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestNormCanonical(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:1961,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1961,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1967,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1988,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2001,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1990,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2007,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2012,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:2017,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2018,1
    - Dst: getCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1984,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1989,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1993,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1996,1
    - Dst: usearch_getAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2003,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2011,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1960,1
    - Dst: assertEqualWithAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1965,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2004,1
    - Dst: usearch_getAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2013,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2025,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2023,1
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:1959,1
    - Dst: assertCanonicalEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:1973,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1974,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1995,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1999,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2002,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:2006,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2014,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2016,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2019,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2026
      start: 1955
    functionDepth: 0
    functionLinenumber: 1955
    functionLinenumberEnd: 2026
    functionName: TestOverlapCanonical
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - assertEqualWithUStringSearch
    - usearch_getAttribute
    - assertCanonicalEqual
    - u_unescape
    - usearch_close
    - U_FAILURE
    - log_err_status
    - open
    - getCollator
    - log_data_err
    - assertEqualWithAttribute
    - log_err
    - usearch_reset
    - usearch_setAttribute
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestOverlapCanonical(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:3010,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:3011,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:3016,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:3025,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:3019,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/usrchtst.c:2970,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/usrchtst.c:2971,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2985,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:3005,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:3024,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2978,1
    - Dst: ucol_getLocaleByType
      Src: /src/icu/source/test/cintltst/usrchtst.c:2981,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2984,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2985,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:3004,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:2997,1
    - Dst: usearch_first
      Src: /src/icu/source/test/cintltst/usrchtst.c:3008,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2994,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:3005,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/usrchtst.c:3014,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:3023,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2977,1
    - Dst: ucol_openFromShortString
      Src: /src/icu/source/test/cintltst/usrchtst.c:2973,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2978,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2994,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2993,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:2988,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:3011,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3026
      start: 2955
    functionDepth: 0
    functionLinenumber: 2955
    functionLinenumberEnd: 3026
    functionName: TestMatchFollowedByIgnorables
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - ucol_close
    - ucol_openFromShortString
    - usearch_close
    - U_FAILURE
    - log_data_err
    - ucol_getLocaleByType
    - usearch_getMatchedLength
    - ubrk_open
    - usearch_first
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - ubrk_close
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestMatchFollowedByIgnorables(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:311,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:313,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:313,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:316,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:312,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:318,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:319,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:319,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:321,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:328,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:331,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:330,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:331,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:333,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:334,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 335
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 335
    functionName: TestInitialization
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - usearch_close
    - U_FAILURE
    - log_err_status
    - open
    - log_err
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestInitialization(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:859,1
    - Dst: assertEqualWithAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:864,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:866,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:899,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:903,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:911,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:913,1
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:858,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:873,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:895,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:898,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:892,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:904,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:909,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:914,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:920,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:860,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:860,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:887,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:889,1
    - Dst: usearch_getAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:900,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:908,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:916,1
    - Dst: assertEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:872,1
    - Dst: getCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:883,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:888,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:894,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:901,1
    - Dst: usearch_getAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:910,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:915,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:922,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 923
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 923
    functionName: TestOverlap
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - assertEqualWithUStringSearch
    - usearch_getAttribute
    - assertEqual
    - u_unescape
    - usearch_close
    - U_FAILURE
    - log_err_status
    - open
    - getCollator
    - log_data_err
    - assertEqualWithAttribute
    - log_err
    - usearch_reset
    - usearch_setAttribute
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestOverlap(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:1637,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1638,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1639,1
    - Dst: assertEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:1643,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:1639,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1644,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1648,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1649
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1649
    functionName: TestSupplementary
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - assertEqual
    - U_FAILURE
    - log_err_status
    - open
    - log_err
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestSupplementary(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:1834,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1836,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:1836,1
    - Dst: assertCanonicalEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:1840,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1835,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1841,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1845,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1846
      start: 1830
    functionDepth: 0
    functionLinenumber: 1830
    functionLinenumberEnd: 1846
    functionName: TestStrengthCanonical
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - assertCanonicalEqual
    - U_FAILURE
    - log_err_status
    - open
    - log_err
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestStrengthCanonical(void) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2052,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2055,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2068,1
    - Dst: usearch_setCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:2071,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2073,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2076,1
    - Dst: usearch_setCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:2082,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2084,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2087,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2094,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2039,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:2046,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2067,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/usrchtst.c:2065,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2068,1
    - Dst: usearch_getCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:2086,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:2089,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2098,1
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:2038,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:2044,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2049,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2051,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2058,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:2064,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2075,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2083,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2096,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:2040,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2040,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:2043,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2057,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:2060,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2058,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2072,1
    - Dst: usearch_getCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:2072,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:2078,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2086,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2099
      start: 2028
    functionDepth: 0
    functionLinenumber: 2028
    functionLinenumberEnd: 2099
    functionName: TestCollatorCanonical
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - assertEqualWithUStringSearch
    - ucol_close
    - u_unescape
    - usearch_getCollator
    - U_FAILURE
    - usearch_close
    - log_err_status
    - open
    - log_data_err
    - usearch_setCollator
    - close
    - log_err
    - usearch_reset
    - usearch_setAttribute
    - u_errorName
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestCollatorCanonical(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:3032,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:3033,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:3034,1
    - Dst: assertEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:3038,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:3034,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:3039,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:3043,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3044
      start: 3028
    functionDepth: 0
    functionLinenumber: 3028
    functionLinenumberEnd: 3044
    functionName: TestIndicPrefixMatch
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - assertEqual
    - U_FAILURE
    - log_err_status
    - open
    - log_err
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestIndicPrefixMatch(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/usrchtst.c:140,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/usrchtst.c:148,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - unichars
    argTypes:
    - UChar*
    constantsTouched: []
    func_position:
      end: 155
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 155
    functionName: toCharString
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - sprintf
    - u_strlen
    linkageType: ''
    returnType: char*
    signature: 'static char *toCharString(const UChar* unichars) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: TestEnd
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestEnd(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:709,1
    - Dst: assertEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:715,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:710,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:711,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:711,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:716,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:720,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 721
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 721
    functionName: TestStrength
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - assertEqual
    - U_FAILURE
    - log_err_status
    - open
    - log_err
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestStrength(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1660,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1664,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1670,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1671,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1677,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1681,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1690,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/usrchtst.c:1665,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1661,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/usrchtst.c:1665,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1676,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1674,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:1685,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1677,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1662,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1668,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1682,1
    - Dst: usearch_setPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:1684,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1671,1
    - Dst: usearch_setText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1683,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1686,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1691,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1692
      start: 1651
    functionDepth: 0
    functionLinenumber: 1651
    functionLinenumberEnd: 1692
    functionName: TestContraction
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - assertEqualWithUStringSearch
    - ucol_close
    - u_unescape
    - usearch_close
    - memset
    - U_FAILURE
    - log_data_err
    - usearch_setText
    - u_strlen
    - log_err
    - usearch_setPattern
    - u_errorName
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestContraction(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: usearch_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:1751,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1752,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:1763,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:1764,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1766,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1777,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1773,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:1781,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1748,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/cintltst/usrchtst.c:1751,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1778,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1773,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1772,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1788,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1749,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:1753,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1753,1
    - Dst: usearch_setCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1771,1
    - Dst: usearch_setText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1779,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1782,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1784,1
    - Dst: ucol_openFromShortString
      Src: /src/icu/source/test/cintltst/usrchtst.c:1760,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1767,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1767,1
    - Dst: usearch_setPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:1780,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1789
      start: 1738
    functionDepth: 0
    functionLinenumber: 1738
    functionLinenumberEnd: 1789
    functionName: TestDiacriticMatch
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - assertEqualWithUStringSearch
    - ucol_close
    - ucol_open
    - ucol_openFromShortString
    - u_unescape
    - memset
    - U_FAILURE
    - log_err_status
    - ucol_setStrength
    - usearch_setCollator
    - usearch_close
    - usearch_setText
    - log_err
    - usearch_setPattern
    - uloc_getDefault
    - usearch_open
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestDiacriticMatch(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:2365,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:2367,1
    - Dst: assertCanonicalEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:2371,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2366,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2367,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2372,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2376,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2377
      start: 2361
    functionDepth: 0
    functionLinenumber: 2361
    functionLinenumberEnd: 2377
    functionName: TestSupplementaryCanonical
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - assertCanonicalEqual
    - U_FAILURE
    - log_err_status
    - open
    - log_err
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestSupplementaryCanonical(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2472,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/usrchtst.c:2474,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2492,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2483,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:2467,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2467,1
    - Dst: usearch_last
      Src: /src/icu/source/test/cintltst/usrchtst.c:2494,1
    - Dst: usearch_first
      Src: /src/icu/source/test/cintltst/usrchtst.c:2485,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2496,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2487,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2478,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2501,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2470,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/usrchtst.c:2475,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:2477,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2479,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:2465,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2466,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2471,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2479,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2504,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2506
      start: 2457
    functionDepth: 0
    functionLinenumber: 2457
    functionLinenumberEnd: 2506
    functionName: TestForwardBackward
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - ucol_close
    - u_uastrcpy
    - ucol_open
    - usearch_close
    - U_FAILURE
    - usearch_last
    - log_err_status
    - ucol_setAttribute
    - usearch_first
    - log_err
    - usearch_reset
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestForwardBackward(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/usrchtst.c:2610,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/usrchtst.c:2622,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:2624,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:2619,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/usrchtst.c:2611,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:2627,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/usrchtst.c:2628,1
    - Dst: usearch_first
      Src: /src/icu/source/test/cintltst/usrchtst.c:2631,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:2632,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2635,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2654,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:2643,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2650,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2639,1
    - Dst: usearch_first
      Src: /src/icu/source/test/cintltst/usrchtst.c:2646,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:2647,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2644,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2655,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2656
      start: 2602
    functionDepth: 0
    functionLinenumber: 2602
    functionLinenumberEnd: 2656
    functionName: TestStrengthIdentical
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - ucol_close
    - ucol_open
    - usearch_close
    - usearch_getMatchedLength
    - usearch_reset
    - usearch_first
    - TEST_ASSERT
    - log_err
    - UPRV_LENGTHOF
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestStrengthIdentical(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3056,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3060,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3067,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3072,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3062,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3079,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3087,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3098,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3102,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3103,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3107,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3105,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3106,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3052,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3055,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3059,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3066,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3071,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3077,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3085,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3092,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3096,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3101,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3054,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3058,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3070,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3064,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3074,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3076,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3083,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3090,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3094,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3100,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3053,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3057,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3061,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3063,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3069,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3073,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3075,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3081,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3089,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3099,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3104,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3109,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/usrchtst.c:3108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 47
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 3110
      start: 3050
    functionDepth: 0
    functionLinenumber: 3050
    functionLinenumberEnd: 3110
    functionName: addSearchTest
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addSearchTest(TestNode** root) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:741,1
    - Dst: usearch_setBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:750,1
    - Dst: usearch_setBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:756,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:764,1
    - Dst: usearch_getBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:765,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:766,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:792,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:787,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:808,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:811,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:817,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:802,1
    - Dst: usearch_getBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:800,1
    - Dst: usearch_setBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:799,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:806,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:735,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:735,1
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:733,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:746,1
    - Dst: usearch_setBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:763,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:783,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:785,1
    - Dst: usearch_getBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:786,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:794,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:800,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:801,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:824,1
    - Dst: CHECK_BREAK
      Src: /src/icu/source/test/cintltst/usrchtst.c:730,1
    - Dst: usearch_getBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:738,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:743,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:746,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:752,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:745,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:770,1
    - Dst: getBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:777,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:779,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:781,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:807,1
    - Dst: assertEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:816,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:734,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:739,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:742,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:751,1
    - Dst: usearch_getBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:751,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:757,1
    - Dst: usearch_getBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:758,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:759,1
    - Dst: getCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:776,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:780,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:793,1
    - Dst: getBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:798,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:789,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:805,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 94
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 826
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 826
    functionName: TestBreakIterator
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - assertEqualWithUStringSearch
    - usearch_setBreakIterator
    - assertEqual
    - u_unescape
    - usearch_close
    - U_FAILURE
    - log_err_status
    - open
    - CHECK_BREAK
    - getCollator
    - ucol_setStrength
    - usearch_getBreakIterator
    - usearch_reset
    - log_err
    - getBreakIterator
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestBreakIterator(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1704,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1708,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/usrchtst.c:1709,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1721,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1720,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:1729,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1718,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1705,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1712,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1726,1
    - Dst: usearch_setPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:1728,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1706,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1715,1
    - Dst: usearch_setText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1727,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1730,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1735,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/usrchtst.c:1709,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1714,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1715,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1725,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1721,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1734,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1736
      start: 1694
    functionDepth: 0
    functionLinenumber: 1694
    functionLinenumberEnd: 1736
    functionName: TestIgnorable
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - assertEqualWithUStringSearch
    - ucol_close
    - u_unescape
    - usearch_close
    - memset
    - U_FAILURE
    - log_data_err
    - usearch_setText
    - u_strlen
    - log_err
    - usearch_setPattern
    - u_errorName
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestIgnorable(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:1795,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:1797,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1797,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1796,1
    - Dst: assertCanonicalEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:1801,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1802,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1806,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1807
      start: 1791
    functionDepth: 0
    functionLinenumber: 1791
    functionLinenumberEnd: 1807
    functionName: TestCanonical
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - assertCanonicalEqual
    - U_FAILURE
    - log_err_status
    - open
    - log_err
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestCanonical(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:2392,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2396,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2407,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2406,1
    - Dst: usearch_setText
      Src: /src/icu/source/test/cintltst/usrchtst.c:2413,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:2415,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2389,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/usrchtst.c:2393,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2399,1
    - Dst: usearch_setPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:2414,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2404,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:2411,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2388,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2390,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2398,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2399,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2417,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2422,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/usrchtst.c:2393,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:2402,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2407,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:2412,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2421,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2423
      start: 2379
    functionDepth: 0
    functionLinenumber: 2379
    functionLinenumberEnd: 2423
    functionName: TestContractionCanonical
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - assertEqualWithUStringSearch
    - ucol_close
    - u_unescape
    - usearch_close
    - memset
    - U_FAILURE
    - log_data_err
    - usearch_setText
    - u_strlen
    - log_err
    - usearch_setPattern
    - usearch_setAttribute
    - u_errorName
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestContractionCanonical(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:110,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:111,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:115,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:113,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:112,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 120
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 120
    functionName: close
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ubrk_close
    linkageType: ''
    returnType: void
    signature: 'static void close(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2432,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2437,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:2435,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2433,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2436,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2441,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:2443,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:2445,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2446,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2446,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2452,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2448,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2454
      start: 2425
    functionDepth: 0
    functionLinenumber: 2425
    functionLinenumberEnd: 2454
    functionName: TestNumeric
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - ucol_close
    - ucol_open
    - usearch_close
    - memset
    - U_FAILURE
    - log_data_err
    - ucol_setAttribute
    - U_SUCCESS
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestNumeric(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:96,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:97,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:98,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: TestStart
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_err_status
    - open
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestStart(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - breaker
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 197
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 197
    functionName: getBreakIterator
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: UBreakIterator*
    signature: 'static UBreakIterator *getBreakIterator(const char *breaker) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:363,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:368,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:370,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:429,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:409,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:484,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:504,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:419,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:360,1
    - Dst: usearch_next
      Src: /src/icu/source/test/cintltst/usrchtst.c:386,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:433,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:435,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:469,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:475,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:476,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:478,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:508,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:369,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:454,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:486,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:504,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:526,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:431,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:349,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:378,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:391,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:530,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:367,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:407,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:422,1
    - Dst: usearch_previous
      Src: /src/icu/source/test/cintltst/usrchtst.c:404,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:456,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:524,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:389,1
    - Dst: usearch_previous
      Src: /src/icu/source/test/cintltst/usrchtst.c:428,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:474,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:483,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:507,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:409,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:420,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:351,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:365,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:381,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:486,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:433,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:418,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:356,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:390,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:472,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:505,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:523,1
    - Dst: usearch_next
      Src: /src/icu/source/test/cintltst/usrchtst.c:362,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:379,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:388,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:394,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:454,1
    - Dst: usearch_following
      Src: /src/icu/source/test/cintltst/usrchtst.c:450,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:461,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:526,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:431,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:355,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:377,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:392,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:395,1
    - Dst: usearch_getMatchedText
      Src: /src/icu/source/test/cintltst/usrchtst.c:417,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:455,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:408,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:406,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:457,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:367,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:387,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:407,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:460,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:471,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:498,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:453,1
    - Dst: usearch_getMatchedText
      Src: /src/icu/source/test/cintltst/usrchtst.c:376,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:412,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:432,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:474,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:507,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:357,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:365,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:410,1
    - Dst: usearch_getAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:442,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:412,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:436,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:405,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:458,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:522,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:525,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:512,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:539,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:351,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:391,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:393,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:402,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:437,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:434,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:453,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:472,1
    - Dst: usearch_preceding
      Src: /src/icu/source/test/cintltst/usrchtst.c:501,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:505,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:509,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:456,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:411,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:350,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:364,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:366,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:430,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:521,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:527,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:528,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:530,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:370,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:389,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:470,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:473,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:478,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:506,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:511,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:524,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 228
    argCount: 2
    argNames:
    - strsrch
    - search
    argTypes:
    - UStringSearch*
    - SearchData
    constantsTouched: []
    func_position:
      end: 541
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 541
    functionName: assertEqualWithUStringSearch
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_previous
    - usearch_following
    - usearch_next
    - usearch_getAttribute
    - toCharString
    - usearch_getMatchedStart
    - usearch_getPattern
    - usearch_preceding
    - U_FAILURE
    - usearch_getMatchedLength
    - U_SUCCESS
    - usearch_getMatchedText
    - log_err
    - usearch_getText
    - memcmp
    - usearch_setAttribute
    - u_errorName
    linkageType: ''
    returnType: UBool
    signature: 'static UBool assertEqualWithUStringSearch( UStringSearch *strsrch,
      const SearchData search) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:579,1
    - Dst: CHECK_BREAK_BOOL
      Src: /src/icu/source/test/cintltst/usrchtst.c:584,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:585,1
    - Dst: getBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:580,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:586,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:587,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:588,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:589,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:591,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:593,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:599,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:601,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:607,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:609,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:594,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:594,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:608,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:600,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - search
    argTypes:
    - SearchData
    constantsTouched: []
    func_position:
      end: 611
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 611
    functionName: assertCanonicalEqual
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - assertEqualWithUStringSearch
    - u_unescape
    - usearch_close
    - U_FAILURE
    - CHECK_BREAK_BOOL
    - getCollator
    - u_errorName
    - ucol_setAttribute
    - getBreakIterator
    - log_err
    - usearch_setAttribute
    - ucol_setStrength
    linkageType: ''
    returnType: UBool
    signature: 'static UBool assertCanonicalEqual(const SearchData search) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:653,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:655,1
    - Dst: assertEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:659,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:654,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:655,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:660,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:664,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 665
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 665
    functionName: TestBasic
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - assertEqual
    - U_FAILURE
    - log_err_status
    - open
    - log_err
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestBasic(void) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:1132,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1128,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1132,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1150,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:1157,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:1164,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1165,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1182,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1183,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:1185,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1190,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1127,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1136,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:1141,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1149,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1150,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1146,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:1154,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1175,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1177,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1179,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1131,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1137,1
    - Dst: usearch_setText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1140,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1161,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1163,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1169,1
    - Dst: usearch_setText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1176,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1192,1
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:1130,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1155,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1142,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1153,1
    - Dst: usearch_setText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1162,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1168,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1169,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:1171,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:1178,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1183,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1193
      start: 1118
    functionDepth: 0
    functionLinenumber: 1118
    functionLinenumberEnd: 1193
    functionName: TestText
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - assertEqualWithUStringSearch
    - u_unescape
    - usearch_close
    - U_FAILURE
    - log_err_status
    - open
    - usearch_setText
    - U_SUCCESS
    - log_err
    - usearch_getText
    - u_strcmp
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestText(void) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:1416,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1416,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:1421,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1426,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1428,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1430,1
    - Dst: usearch_getMatchedText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1455,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:1461,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1467,1
    - Dst: usearch_getMatchedText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1470,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1477,1
    - Dst: usearch_next
      Src: /src/icu/source/test/cintltst/usrchtst.c:1488,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:1489,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1496,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:1478,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:1420,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1422,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1427,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1431,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:1441,1
    - Dst: usearch_next
      Src: /src/icu/source/test/cintltst/usrchtst.c:1440,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:1443,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1444,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:1445,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1457,1
    - Dst: usearch_getMatchedText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1476,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1498,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1482,1
    - Dst: usearch_getMatchedText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1494,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1491,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1415,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:1438,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1431,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1433,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:1448,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:1456,1
    - Dst: usearch_getMatchedText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1460,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1472,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1479,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:1490,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:1466,1
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:1414,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:1442,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1443,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:1445,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1446,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1447,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:1449,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1462,1
    - Dst: usearch_getMatchedText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1465,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1473,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1499,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 108
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1500
      start: 1402
    functionDepth: 0
    functionLinenumber: 1402
    functionLinenumberEnd: 1500
    functionName: TestGetMatch
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - usearch_next
    - toCharString
    - usearch_getMatchedStart
    - u_unescape
    - usearch_close
    - U_FAILURE
    - usearch_getPattern
    - log_err_status
    - open
    - usearch_getMatchedLength
    - U_SUCCESS
    - usearch_getMatchedText
    - log_err
    - usearch_getText
    - memcmp
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestGetMatch(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/usrchtst.c:2939,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/usrchtst.c:2940,1
    - Dst: TestPCEBuffer_with
      Src: /src/icu/source/test/cintltst/usrchtst.c:2941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2942
      start: 2934
    functionDepth: 0
    functionLinenumber: 2934
    functionLinenumberEnd: 2942
    functionName: TestPCEBuffer_100df
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - TestPCEBuffer_with
    linkageType: ''
    returnType: void
    signature: 'static void TestPCEBuffer_100df(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:548,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:554,1
    - Dst: CHECK_BREAK_BOOL
      Src: /src/icu/source/test/cintltst/usrchtst.c:552,1
    - Dst: getBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:549,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:555,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:556,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:557,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:559,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:560,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:560,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:565,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:569,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:570,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:564,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:566,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - search
    argTypes:
    - SearchData
    constantsTouched: []
    func_position:
      end: 572
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 572
    functionName: assertEqual
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - assertEqualWithUStringSearch
    - u_unescape
    - usearch_close
    - U_FAILURE
    - CHECK_BREAK_BOOL
    - getCollator
    - u_errorName
    - getBreakIterator
    - log_err
    - ucol_setStrength
    linkageType: ''
    returnType: UBool
    signature: 'static UBool assertEqual(const SearchData search) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:620,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:626,1
    - Dst: getBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:621,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:625,1
    - Dst: CHECK_BREAK_BOOL
      Src: /src/icu/source/test/cintltst/usrchtst.c:624,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:627,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:628,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:630,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:632,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:634,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:639,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:641,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:645,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:644,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:635,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:640,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:635,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - search
    - canonical
    - overlap
    argTypes:
    - SearchData
    - USearchAttributeValue
    - USearchAttributeValue
    constantsTouched: []
    func_position:
      end: 647
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 647
    functionName: assertEqualWithAttribute
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - assertEqualWithUStringSearch
    - u_unescape
    - usearch_close
    - U_FAILURE
    - CHECK_BREAK_BOOL
    - getCollator
    - u_errorName
    - getBreakIterator
    - log_err
    - usearch_setAttribute
    - ucol_setStrength
    linkageType: ''
    returnType: UBool
    signature: 'static UBool assertEqualWithAttribute(const SearchData search, USearchAttributeValue
      canonical, USearchAttributeValue overlap) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:671,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:673,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:676,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:673,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:672,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:677,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:678,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:679,1
    - Dst: assertEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:682,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:683,1
    - Dst: assertEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:697,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:694,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:698,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:702,1
    - Dst: assertEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:689,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:690,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 703
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 703
    functionName: TestNormExact
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - assertEqual
    - U_FAILURE
    - log_err_status
    - open
    - ucol_setAttribute
    - log_err
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestNormExact(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:1199,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/usrchtst.c:1205,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1201,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1200,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:1201,1
    - Dst: assertEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:1206,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1207,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1212
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1212
    functionName: TestCompositeBoundaries
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - assertEqual
    - U_FAILURE
    - log_err_status
    - open
    - log_verbose
    - log_err
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestCompositeBoundaries(void) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: usearch_last
      Src: /src/icu/source/test/cintltst/usrchtst.c:1521,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1524,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1526,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1529,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1528,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1547,1
    - Dst: usearch_preceding
      Src: /src/icu/source/test/cintltst/usrchtst.c:1560,1
    - Dst: usearch_first
      Src: /src/icu/source/test/cintltst/usrchtst.c:1520,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1522,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1525,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1543,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1546,1
    - Dst: usearch_first
      Src: /src/icu/source/test/cintltst/usrchtst.c:1541,1
    - Dst: usearch_following
      Src: /src/icu/source/test/cintltst/usrchtst.c:1571,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/usrchtst.c:1571,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1573,1
    - Dst: usearch_preceding
      Src: /src/icu/source/test/cintltst/usrchtst.c:1575,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1576,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:1508,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1508,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1507,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1531,1
    - Dst: usearch_last
      Src: /src/icu/source/test/cintltst/usrchtst.c:1545,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1542,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1554,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1555,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1581,1
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:1506,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1529,1
    - Dst: usearch_following
      Src: /src/icu/source/test/cintltst/usrchtst.c:1552,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1563,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1564,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1579,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 88
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1582
      start: 1502
    functionDepth: 0
    functionLinenumber: 1502
    functionLinenumberEnd: 1582
    functionName: TestSetMatch
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - usearch_following
    - usearch_preceding
    - u_unescape
    - usearch_close
    - U_FAILURE
    - usearch_last
    - log_err_status
    - open
    - u_strlen
    - usearch_first
    - log_err
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestSetMatch(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/usrchtst.c:2532,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/usrchtst.c:2536,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:2562,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:2567,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/usrchtst.c:2572,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:2576,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2598,1
    - Dst: usearch_first
      Src: /src/icu/source/test/cintltst/usrchtst.c:2575,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2594,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2583,1
    - Dst: TEST_ASSERT
      Src: /src/icu/source/test/cintltst/usrchtst.c:2565,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:2570,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2578,1
    - Dst: usearch_first
      Src: /src/icu/source/test/cintltst/usrchtst.c:2587,1
    - Dst: usearch_next
      Src: /src/icu/source/test/cintltst/usrchtst.c:2588,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/usrchtst.c:2531,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/usrchtst.c:2535,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/usrchtst.c:2589,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2599,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 63
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2600
      start: 2514
    functionDepth: 0
    functionLinenumber: 2514
    functionLinenumberEnd: 2600
    functionName: TestSearchForNull
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - ucol_close
    - usearch_next
    - ucol_open
    - U_STRING_DECL
    - usearch_close
    - usearch_getMatchedLength
    - U_STRING_INIT
    - usearch_first
    - log_verbose
    - TEST_ASSERT
    - log_err
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestSearchForNull(void) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:2743,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2758,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2790,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2779,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2798,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2812,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2814,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2814,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:2741,1
    - Dst: usearch_setPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:2747,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:2744,1
    - Dst: usearch_next
      Src: /src/icu/source/test/cintltst/usrchtst.c:2757,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2784,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2775,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2805,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2805,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2808,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2810,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:2742,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2763,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2773,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2773,1
    - Dst: usearch_previous
      Src: /src/icu/source/test/cintltst/usrchtst.c:2783,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2769,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2801,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:2748,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2753,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2772,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2795,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2799,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2799,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2810,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 80
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2817
      start: 2736
    functionDepth: 0
    functionLinenumber: 2736
    functionLinenumberEnd: 2817
    functionName: TestUsingSearchCollator
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - usearch_previous
    - ucol_close
    - usearch_next
    - ucol_open
    - usearch_close
    - U_FAILURE
    - log_data_err
    - U_SUCCESS
    - usearch_setPattern
    - log_err
    - usearch_reset
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUsingSearchCollator(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/usrchtst.c:2950,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/usrchtst.c:2951,1
    - Dst: TestPCEBuffer_with
      Src: /src/icu/source/test/cintltst/usrchtst.c:2952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2953
      start: 2945
    functionDepth: 0
    functionLinenumber: 2945
    functionLinenumberEnd: 2953
    functionName: TestPCEBuffer_2surr
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - TestPCEBuffer_with
    linkageType: ''
    returnType: void
    signature: 'static void TestPCEBuffer_2surr(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:165,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:171,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:168,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - collator
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 177
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 177
    functionName: getCollator
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: UCollator*
    signature: 'static UCollator *getCollator(const char *collator) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:59,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:61,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/usrchtst.c:68,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:69,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:78,1
    - Dst: ucol_getRules
      Src: /src/icu/source/test/cintltst/usrchtst.c:68,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/usrchtst.c:79,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/usrchtst.c:73,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:82,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:60,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:65,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:71,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:76,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/usrchtst.c:79,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/usrchtst.c:75,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:64,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:66,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/usrchtst.c:73,1
    - Dst: ucol_getRules
      Src: /src/icu/source/test/cintltst/usrchtst.c:75,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 88
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 88
    functionName: open
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_getRules
    - ucol_open
    - u_unescape
    - U_FAILURE
    - log_err_status
    - u_strcpy
    - u_strlen
    - ubrk_open
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void open(UErrorCode* status) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: usearch_getCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:950,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:946,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:944,1
    - Dst: usearch_next
      Src: /src/icu/source/test/cintltst/usrchtst.c:951,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:952,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:964,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:967,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:972,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:978,1
    - Dst: usearch_getCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:996,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:997,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:996,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:954,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:955,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:966,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:957,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:969,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:971,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:959,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:972,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:974,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:986,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1008,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:947,1
    - Dst: usearch_next
      Src: /src/icu/source/test/cintltst/usrchtst.c:956,1
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:961,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:982,1
    - Dst: usearch_setCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:985,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:987,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:989,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1006,1
    - Dst: usearch_getCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:986,1
    - Dst: usearch_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:942,1
    - Dst: usearch_getCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:963,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/usrchtst.c:979,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:981,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:982,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:990,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:995,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1004,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:999,1
    - Dst: usearch_setCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:994,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 79
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1009
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 1009
    functionName: TestCollator
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - assertEqualWithUStringSearch
    - ucol_close
    - usearch_next
    - u_unescape
    - usearch_close
    - U_FAILURE
    - close
    - log_data_err
    - open
    - u_errorName
    - usearch_setCollator
    - ucol_openRules
    - log_err
    - usearch_reset
    - usearch_open
    - ucol_setStrength
    - usearch_getCollator
    linkageType: ''
    returnType: void
    signature: 'static void TestCollator(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: usearch_getOffset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1229,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1230,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:1236,1
    - Dst: usearch_getCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1254,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:1260,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1261,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:1264,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:1261,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1265,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1266,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1275,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:1303,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1304,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:1306,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1302,1
    - Dst: usearch_getOffset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1291,1
    - Dst: usearch_next
      Src: /src/icu/source/test/cintltst/usrchtst.c:1299,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1292,1
    - Dst: usearch_getCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1311,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:1303,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1225,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1232,1
    - Dst: usearch_setText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1252,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:1240,1
    - Dst: usearch_previous
      Src: /src/icu/source/test/cintltst/usrchtst.c:1272,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:1273,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:1275,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:1278,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1277,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1279,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:1281,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:1301,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1312,1
    - Dst: usearch_setOffset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1289,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1263,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1221,1
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:1224,1
    - Dst: usearch_setOffset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1235,1
    - Dst: usearch_setOffset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1239,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1237,1
    - Dst: usearch_setPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:1253,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1249,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1255,1
    - Dst: usearch_next
      Src: /src/icu/source/test/cintltst/usrchtst.c:1258,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:1259,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:1278,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:1307,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1305,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:1264,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:1226,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1222,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1226,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1241,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1250,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:1254,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:1256,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:1267,1
    - Dst: usearch_setOffset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1271,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:1274,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:1300,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:1311,1
    - Dst: usearch_setOffset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1285,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1280,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:1268,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1313,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:1282,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:1301,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 111
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1314
      start: 1214
    functionDepth: 0
    functionLinenumber: 1214
    functionLinenumberEnd: 1314
    functionName: TestGetSetOffset
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_next
    - toCharString
    - usearch_getPattern
    - usearch_close
    - log_err_status
    - U_SUCCESS
    - usearch_reset
    - u_errorName
    - usearch_previous
    - usearch_getCollator
    - usearch_getMatchedStart
    - U_FAILURE
    - usearch_setText
    - u_unescape
    - usearch_setOffset
    - memset
    - open
    - usearch_getMatchedLength
    - log_err
    - usearch_setPattern
    - usearch_getText
    - ucol_setStrength
    - close
    - usearch_openFromCollator
    - usearch_getOffset
    linkageType: ''
    returnType: void
    signature: 'static void TestGetSetOffset(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1857,1
    - Dst: getCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1866,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1888,1
    - Dst: usearch_getBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1886,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1879,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1885,1
    - Dst: getBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1897,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1901,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1904,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1909,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1905,1
    - Dst: assertEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:1917,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1912,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1870,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1883,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1887,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:1891,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:1907,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1925,1
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:1856,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1858,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:1858,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1871,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:1872,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1880,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1874,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1893,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1899,1
    - Dst: usearch_getBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1899,1
    - Dst: CHECK_BREAK
      Src: /src/icu/source/test/cintltst/usrchtst.c:1852,1
    - Dst: getBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1867,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1877,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:1892,1
    - Dst: usearch_setBreakIterator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1898,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1900,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1908,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1918,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1927
      start: 1848
    functionDepth: 0
    functionLinenumber: 1848
    functionLinenumberEnd: 1927
    functionName: TestBreakIteratorCanonical
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - assertEqual
    - usearch_close
    - log_err_status
    - CHECK_BREAK
    - getCollator
    - getBreakIterator
    - usearch_reset
    - u_errorName
    - assertEqualWithUStringSearch
    - U_FAILURE
    - log_data_err
    - usearch_setBreakIterator
    - u_unescape
    - open
    - log_err
    - usearch_setAttribute
    - ucol_setStrength
    - close
    - usearch_openFromCollator
    - usearch_getBreakIterator
    linkageType: ''
    returnType: void
    signature: 'static void TestBreakIteratorCanonical(void) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2129,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:2127,1
    - Dst: usearch_setPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:2136,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2145,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2146,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:2148,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:2154,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2159,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2163,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2171,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2111,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:2119,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:2131,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2124,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:2138,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2139,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2143,1
    - Dst: usearch_setPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:2153,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2162,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2163,1
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:2110,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:2116,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:2118,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2123,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:2128,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2124,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:2152,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:2155,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2156,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2160,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2112,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:2112,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:2115,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2121,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:2135,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:2137,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2142,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2146,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:2169,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2173,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:2165,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2174
      start: 2101
    functionDepth: 0
    functionLinenumber: 2101
    functionLinenumberEnd: 2174
    functionName: TestPatternCanonical
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - assertEqualWithUStringSearch
    - usearch_getPattern
    - u_unescape
    - usearch_close
    - U_FAILURE
    - log_err_status
    - open
    - ucol_setStrength
    - usearch_reset
    - log_err
    - usearch_setPattern
    - u_strcmp
    - usearch_setAttribute
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestPatternCanonical(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:2248,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:2250,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2249,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/usrchtst.c:2254,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2250,1
    - Dst: assertCanonicalEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:2255,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2256,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2261
      start: 2244
    functionDepth: 0
    functionLinenumber: 2244
    functionLinenumberEnd: 2261
    functionName: TestCompositeBoundariesCanonical
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - assertCanonicalEqual
    - U_FAILURE
    - log_err_status
    - open
    - log_verbose
    - log_err
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestCompositeBoundariesCanonical(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2835,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2878,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2888,1
    - Dst: ucol_openFromShortString
      Src: /src/icu/source/test/cintltst/usrchtst.c:2829,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2833,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2835,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2876,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2857,1
    - Dst: usearch_first
      Src: /src/icu/source/test/cintltst/usrchtst.c:2874,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2878,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2885,1
    - Dst: ucol_getLocaleByType
      Src: /src/icu/source/test/cintltst/usrchtst.c:2839,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2842,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2844,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/usrchtst.c:2848,1
    - Dst: ubrk_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:2850,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2857,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2870,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2855,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/usrchtst.c:2883,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2890,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2844,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2870,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2868,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:2861,1
    - Dst: ubrk_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2889,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 40
    argCount: 4
    argNames:
    - search
    - searchLen
    - source
    - sourceLen
    argTypes:
    - UChar*
    - uint32_t
    - UChar*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2894
      start: 2820
    functionDepth: 0
    functionLinenumber: 2820
    functionLinenumberEnd: 2894
    functionName: TestPCEBuffer_with
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - ucol_close
    - ucol_openFromShortString
    - usearch_close
    - U_FAILURE
    - ucol_getLocaleByType
    - log_data_err
    - ubrk_open
    - log_verbose
    - log_err
    - usearch_first
    - ubrk_close
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestPCEBuffer_with(const UChar *search, uint32_t searchLen,
      const UChar *source, uint32_t sourceLen) '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1031,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1038,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:1050,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1060,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1071,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:1074,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1075,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1079,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1086,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:1088,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:1111,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1090,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:1097,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1095,1
    - Dst: usearch_setPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:1087,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1022,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/usrchtst.c:1037,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1044,1
    - Dst: usearch_setPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:1049,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1035,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1041,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:1055,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1059,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1060,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:1064,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1094,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1065,1
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:1021,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:1026,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:1030,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:1034,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1051,1
    - Dst: usearch_setPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:1054,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:1067,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:1073,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1078,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1080,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1106,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1115,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:1082,1
    - Dst: usearch_setPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:1072,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:1023,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1023,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1027,1
    - Dst: usearch_setPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:1029,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1043,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1056,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:1063,1
    - Dst: usearch_reset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1093,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1095,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1107,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1113,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1080,1
    - Dst: usearch_setPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:1105,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1108,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:1089,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 97
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1116
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1116
    functionName: TestPattern
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - assertEqualWithUStringSearch
    - usearch_getPattern
    - u_unescape
    - usearch_close
    - U_FAILURE
    - log_err_status
    - open
    - ucol_setStrength
    - log_data_err
    - U_SUCCESS
    - usearch_reset
    - log_err
    - usearch_setPattern
    - u_strcmp
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestPattern(void) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1327,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:1337,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1349,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1340,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1345,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1339,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1355,1
    - Dst: usearch_getAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1368,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1377,1
    - Dst: usearch_getAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1382,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1381,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1395,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1399,1
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:1326,1
    - Dst: usearch_getAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1331,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1344,1
    - Dst: usearch_getAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1351,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1354,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:1361,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1370,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1374,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1384,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1389,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:1388,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1324,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:1328,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1328,1
    - Dst: usearch_getAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1332,1
    - Dst: usearch_getAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1346,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1352,1
    - Dst: usearch_getAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1356,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1359,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1367,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1372,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1392,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:1394,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1386,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1398,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:1323,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1334,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1347,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1350,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1340,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1357,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1362,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1365,1
    - Dst: usearch_getAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1375,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1379,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 81
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1400
      start: 1316
    functionDepth: 0
    functionLinenumber: 1316
    functionLinenumberEnd: 1400
    functionName: TestGetSetAttribute
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - usearch_getAttribute
    - usearch_close
    - memset
    - U_FAILURE
    - log_err_status
    - open
    - U_SUCCESS
    - log_err
    - usearch_setAttribute
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestGetSetAttribute(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:1933,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:1935,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1934,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1935,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1938,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:1939,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1940,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:1941,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/usrchtst.c:1944,1
    - Dst: assertCanonicalEqual
      Src: /src/icu/source/test/cintltst/usrchtst.c:1945,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:1950,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:1952,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:1946,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1953
      start: 1929
    functionDepth: 0
    functionLinenumber: 1929
    functionLinenumberEnd: 1953
    functionName: TestVariableCanonical
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - assertCanonicalEqual
    - U_FAILURE
    - log_err_status
    - open
    - ucol_setAttribute
    - log_verbose
    - log_err
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestVariableCanonical(void) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2198,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2199,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2204,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:2203,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:2224,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:2226,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2239,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2241,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2189,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:2186,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2195,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:2212,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:2210,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2218,1
    - Dst: usearch_setText
      Src: /src/icu/source/test/cintltst/usrchtst.c:2225,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:2185,1
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:2188,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:2202,1
    - Dst: usearch_setText
      Src: /src/icu/source/test/cintltst/usrchtst.c:2211,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2217,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2218,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:2220,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:2227,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2228,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2232,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:2190,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2190,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:2193,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2199,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:2206,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/usrchtst.c:2213,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2214,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2231,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2232,1
    - Dst: assertEqualWithUStringSearch
      Src: /src/icu/source/test/cintltst/usrchtst.c:2234,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2242
      start: 2176
    functionDepth: 0
    functionLinenumber: 2176
    functionLinenumberEnd: 2242
    functionName: TestTextCanonical
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_openFromCollator
    - assertEqualWithUStringSearch
    - u_unescape
    - usearch_close
    - U_FAILURE
    - log_err_status
    - open
    - usearch_setText
    - log_err
    - usearch_getText
    - u_strcmp
    - usearch_setAttribute
    - u_errorName
    - close
    linkageType: ''
    returnType: void
    signature: 'static void TestTextCanonical(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2273,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/usrchtst.c:2277,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2277,1
    - Dst: usearch_openFromCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:2280,1
    - Dst: usearch_getCollator
      Src: /src/icu/source/test/cintltst/usrchtst.c:2283,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:2310,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2296,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:2314,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:2322,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:2325,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2357,1
    - Dst: usearch_setOffset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2332,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2348,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2356,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:2350,1
    - Dst: usearch_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2286,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:2291,1
    - Dst: usearch_setPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:2313,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:2318,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:2319,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:2322,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2323,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2324,1
    - Dst: usearch_getMatchedLength
      Src: /src/icu/source/test/cintltst/usrchtst.c:2326,1
    - Dst: usearch_getOffset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2334,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:2344,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:2346,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usrchtst.c:2276,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/usrchtst.c:2284,1
    - Dst: usearch_setText
      Src: /src/icu/source/test/cintltst/usrchtst.c:2312,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:2295,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2335,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:2349,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2347,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:2343,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2345,1
    - Dst: usearch_next
      Src: /src/icu/source/test/cintltst/usrchtst.c:2342,1
    - Dst: close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2358,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2272,1
    - Dst: open
      Src: /src/icu/source/test/cintltst/usrchtst.c:2275,1
    - Dst: usearch_setOffset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2294,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2292,1
    - Dst: usearch_setOffset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2290,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usrchtst.c:2309,1
    - Dst: usearch_next
      Src: /src/icu/source/test/cintltst/usrchtst.c:2316,1
    - Dst: usearch_getMatchedStart
      Src: /src/icu/source/test/cintltst/usrchtst.c:2317,1
    - Dst: toCharString
      Src: /src/icu/source/test/cintltst/usrchtst.c:2319,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2321,1
    - Dst: usearch_getText
      Src: /src/icu/source/test/cintltst/usrchtst.c:2344,1
    - Dst: usearch_getPattern
      Src: /src/icu/source/test/cintltst/usrchtst.c:2346,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 88
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2359
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2359
    functionName: TestGetSetOffsetCanonical
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - usearch_next
    - toCharString
    - usearch_getPattern
    - usearch_close
    - log_err_status
    - ucol_setAttribute
    - U_SUCCESS
    - u_errorName
    - usearch_getCollator
    - usearch_getMatchedStart
    - U_FAILURE
    - usearch_setText
    - u_unescape
    - usearch_setOffset
    - memset
    - open
    - usearch_getMatchedLength
    - log_err
    - usearch_setPattern
    - usearch_getText
    - usearch_setAttribute
    - close
    - usearch_openFromCollator
    - usearch_getOffset
    linkageType: ''
    returnType: void
    signature: 'static void TestGetSetOffsetCanonical(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: uprv_malloc
      Src: /src/icu/source/test/cintltst/usrchtst.c:2898,1
    - Dst: usearch_open
      Src: /src/icu/source/test/cintltst/usrchtst.c:2908,1
    - Dst: u_memset
      Src: /src/icu/source/test/cintltst/usrchtst.c:2904,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2901,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:2910,1
    - Dst: usearch_first
      Src: /src/icu/source/test/cintltst/usrchtst.c:2912,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usrchtst.c:2914,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2918,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2923,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2923,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usrchtst.c:2929,1
    - Dst: usearch_close
      Src: /src/icu/source/test/cintltst/usrchtst.c:2925,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usrchtst.c:2929,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/usrchtst.c:2931,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2932
      start: 2896
    functionDepth: 0
    functionLinenumber: 2896
    functionLinenumberEnd: 2932
    functionName: TestUInt16Overflow
    functionSourceFile: /src/icu/source/test/cintltst/usrchtst.c
    functionUses: []
    functionsReached:
    - uprv_malloc
    - usearch_close
    - uprv_free
    - u_memset
    - U_SUCCESS
    - usearch_first
    - log_err
    - usearch_open
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUInt16Overflow(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cposxtst.c:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: addPosixTest
    functionSourceFile: /src/icu/source/test/cintltst/cposxtst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addPosixTest(TestNode** root) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cposxtst.c:62,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cposxtst.c:61,1
    - Dst: T_CString_stringToInteger
      Src: /src/icu/source/test/cintltst/cposxtst.c:74,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cposxtst.c:92,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cposxtst.c:97,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cposxtst.c:96,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cposxtst.c:81,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cposxtst.c:91,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cposxtst.c:98,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/cposxtst.c:59,1
    - Dst: u_catopen
      Src: /src/icu/source/test/cintltst/cposxtst.c:66,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cposxtst.c:62,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cposxtst.c:67,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cposxtst.c:68,1
    - Dst: T_CString_stringToInteger
      Src: /src/icu/source/test/cintltst/cposxtst.c:73,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cposxtst.c:86,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cposxtst.c:88,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cposxtst.c:101,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cposxtst.c:68,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cposxtst.c:85,1
    - Dst: u_catgets
      Src: /src/icu/source/test/cintltst/cposxtst.c:84,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cposxtst.c:102,1
    - Dst: u_catclose
      Src: /src/icu/source/test/cintltst/cposxtst.c:107,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 108
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 108
    functionName: TestMessageCatalog
    functionSourceFile: /src/icu/source/test/cintltst/cposxtst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - T_CString_stringToInteger
    - U_FAILURE
    - uprv_strlen
    - loadTestData
    - log_data_err
    - u_catgets
    - u_catclose
    - u_strcmp
    - uprv_strcmp
    - log_verbose
    - log_err
    - u_catopen
    - u_errorName
    - u_austrcpy
    linkageType: ''
    returnType: void
    signature: 'void TestMessageCatalog(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:131,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnmdptst.c:143,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:143,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:149,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnmdptst.c:174,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnmdptst.c:175,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:178,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:179,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:176,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:181,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:132,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnmdptst.c:131,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnmdptst.c:146,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:148,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnmdptst.c:147,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnmdptst.c:153,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:157,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:168,1
    - Dst: unum_format
      Src: /src/icu/source/test/cintltst/cnmdptst.c:169,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:172,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:174,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:139,1
    - Dst: unum_format
      Src: /src/icu/source/test/cintltst/cnmdptst.c:140,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:146,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:142,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:147,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:152,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:160,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:162,1
    - Dst: unum_format
      Src: /src/icu/source/test/cintltst/cnmdptst.c:165,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:172,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnmdptst.c:182,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnmdptst.c:129,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:130,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnmdptst.c:133,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:133,1
    - Dst: unum_format
      Src: /src/icu/source/test/cintltst/cnmdptst.c:136,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:150,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:156,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnmdptst.c:160,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:161,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:171,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:175,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:177,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 73
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 183
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 183
    functionName: TestQuotes
    functionSourceFile: /src/icu/source/test/cintltst/cnmdptst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - malloc
    - U_FAILURE
    - log_err_status
    - unum_close
    - u_austrcpy
    - u_strlen
    - myErrorName
    - unum_open
    - log_verbose
    - log_err
    - free
    - u_strcmp
    - u_errorName
    - unum_format
    linkageType: ''
    returnType: void
    signature: 'static void TestQuotes(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:104,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:105,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:107,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:110,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnmdptst.c:110,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:113,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:78,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnmdptst.c:80,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:80,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:87,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:91,1
    - Dst: unum_format
      Src: /src/icu/source/test/cintltst/cnmdptst.c:98,1
    - Dst: unum_toPattern
      Src: /src/icu/source/test/cintltst/cnmdptst.c:88,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:108,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnmdptst.c:115,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:77,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnmdptst.c:78,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnmdptst.c:73,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:79,1
    - Dst: unum_toPattern
      Src: /src/icu/source/test/cintltst/cnmdptst.c:84,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:95,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:101,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnmdptst.c:95,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:93,1
    - Dst: unum_format
      Src: /src/icu/source/test/cintltst/cnmdptst.c:102,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnmdptst.c:72,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:94,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:90,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:105,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:114,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 61
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 117
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 117
    functionName: TestPatterns
    functionSourceFile: /src/icu/source/test/cintltst/cnmdptst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - malloc
    - U_FAILURE
    - log_err_status
    - unum_close
    - austrdup
    - u_strlen
    - unum_toPattern
    - unum_open
    - log_verbose
    - log_err
    - myErrorName
    - UPRV_LENGTHOF
    - u_strcmp
    - free
    - u_errorName
    - unum_format
    linkageType: ''
    returnType: void
    signature: 'static void TestPatterns(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnmdptst.c:422,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:430,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:428,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnmdptst.c:426,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:429,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:433,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:436,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:438,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:441,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:442,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:446,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:453,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cnmdptst.c:444,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:447,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:444,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cnmdptst.c:447,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:442,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnmdptst.c:452,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 455
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 455
    functionName: TestCurrency
    functionSourceFile: /src/icu/source/test/cintltst/cnmdptst.c
    functionUses: []
    functionsReached:
    - malloc
    - u_unescape
    - U_FAILURE
    - log_data_err
    - unum_close
    - free
    - myErrorName
    - unum_open
    - log_verbose
    - unum_formatDouble
    - log_err
    - strlen
    - u_strcmp
    - aescstrdup
    linkageType: ''
    returnType: void
    signature: 'static void TestCurrency(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnmdptst.c:553,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:556,1
    - Dst: roundingTest
      Src: /src/icu/source/test/cintltst/cnmdptst.c:558,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:556,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:555,1
    - Dst: roundingTest
      Src: /src/icu/source/test/cintltst/cnmdptst.c:559,1
    - Dst: roundingTest
      Src: /src/icu/source/test/cintltst/cnmdptst.c:561,1
    - Dst: roundingTest
      Src: /src/icu/source/test/cintltst/cnmdptst.c:563,1
    - Dst: roundingTest
      Src: /src/icu/source/test/cintltst/cnmdptst.c:564,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnmdptst.c:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 568
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 568
    functionName: TestRounding487
    functionSourceFile: /src/icu/source/test/cintltst/cnmdptst.c
    functionUses: []
    functionsReached:
    - roundingTest
    - U_FAILURE
    - log_data_err
    - unum_close
    - myErrorName
    - unum_open
    linkageType: ''
    returnType: void
    signature: 'static void TestRounding487(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnmdptst.c:617,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:621,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:621,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnmdptst.c:618,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:620,1
    - Dst: unum_getDoubleAttribute
      Src: /src/icu/source/test/cintltst/cnmdptst.c:624,1
    - Dst: unum_setDoubleAttribute
      Src: /src/icu/source/test/cintltst/cnmdptst.c:628,1
    - Dst: unum_getDoubleAttribute
      Src: /src/icu/source/test/cintltst/cnmdptst.c:629,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:630,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnmdptst.c:632,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnmdptst.c:636,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 637
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 637
    functionName: TestDoubleAttribute
    functionSourceFile: /src/icu/source/test/cintltst/cnmdptst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_data_err
    - unum_close
    - unum_open
    - log_verbose
    - unum_setDoubleAttribute
    - log_err
    - unum_getDoubleAttribute
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestDoubleAttribute(void) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:656,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnmdptst.c:655,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:657,1
    - Dst: unum_toPattern
      Src: /src/icu/source/test/cintltst/cnmdptst.c:672,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:673,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:674,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:666,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/cnmdptst.c:692,1
    - Dst: unum_toPattern
      Src: /src/icu/source/test/cintltst/cnmdptst.c:693,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:694,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:733,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:664,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnmdptst.c:666,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/cnmdptst.c:678,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:679,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:681,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnmdptst.c:685,1
    - Dst: unum_format
      Src: /src/icu/source/test/cintltst/cnmdptst.c:686,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:690,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/cnmdptst.c:699,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:701,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:703,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnmdptst.c:736,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:710,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnmdptst.c:645,1
    - Dst: unum_format
      Src: /src/icu/source/test/cintltst/cnmdptst.c:662,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:663,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:664,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:676,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/cnmdptst.c:671,1
    - Dst: unum_applyPattern
      Src: /src/icu/source/test/cintltst/cnmdptst.c:680,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:688,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnmdptst.c:690,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:697,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnmdptst.c:707,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnmdptst.c:735,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:695,1
    - Dst: unum_format
      Src: /src/icu/source/test/cintltst/cnmdptst.c:706,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:657,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:654,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:674,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:669,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnmdptst.c:676,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:683,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:687,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:688,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:695,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnmdptst.c:697,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:713,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnmdptst.c:700,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 95
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 737
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 737
    functionName: TestSecondaryGrouping
    functionSourceFile: /src/icu/source/test/cintltst/cnmdptst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - unum_applyPattern
    - U_FAILURE
    - memset
    - unum_setAttribute
    - log_data_err
    - unum_close
    - austrdup
    - u_strlen
    - unum_toPattern
    - unum_open
    - log_err
    - u_strcmp
    - u_errorName
    - unum_format
    linkageType: ''
    returnType: void
    signature: 'static void TestSecondaryGrouping(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnmdptst.c:958,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:961,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:983,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:986,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnmdptst.c:965,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:966,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:967,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:968,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:969,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:970,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:972,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:973,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:975,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:982,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:985,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:989,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:977,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:981,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:978,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:976,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnmdptst.c:997,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:987,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:971,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:961,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:960,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:990,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:991,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:992,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:993,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:994,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:995,1
    - Dst: roundingTest2
      Src: /src/icu/source/test/cintltst/cnmdptst.c:984,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 998
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 998
    functionName: TestRounding5350
    functionSourceFile: /src/icu/source/test/cintltst/cnmdptst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - unum_setAttribute
    - log_data_err
    - unum_close
    - myErrorName
    - unum_open
    - roundingTest2
    linkageType: ''
    returnType: void
    signature: 'static void TestRounding5350(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnmdptst.c:1010,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:1019,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:1017,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:1015,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:1012,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:1020,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:1020,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:1024,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:1024,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:1025,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:1026,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:1027,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:1030,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:1028,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnmdptst.c:1027,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - nf
    - x
    - roundingMode
    - expected
    argTypes:
    - UNumberFormat*
    - double
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 1032
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1032
    functionName: roundingTest2
    functionSourceFile: /src/icu/source/test/cintltst/cnmdptst.c
    functionUses: []
    functionsReached:
    - malloc
    - u_uastrcpy
    - unum_setAttribute
    - U_FAILURE
    - austrdup
    - free
    - unum_formatDouble
    - myErrorName
    - log_err
    - strlen
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void roundingTest2(UNumberFormat* nf, double x, int32_t roundingMode,
      const char* expected) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uloc_countAvailable
      Src: /src/icu/source/test/cintltst/cnmdptst.c:781,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:791,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnmdptst.c:790,1
    - Dst: uloc_getAvailable
      Src: /src/icu/source/test/cintltst/cnmdptst.c:789,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:789,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/cnmdptst.c:792,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/cnmdptst.c:793,1
    - Dst: ucurr_forLocale
      Src: /src/icu/source/test/cintltst/cnmdptst.c:794,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/cnmdptst.c:795,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:797,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:798,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 803
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 803
    functionName: TestCurrencyKeywords
    functionSourceFile: /src/icu/source/test/cintltst/cnmdptst.c
    functionUses: []
    functionsReached:
    - ucurr_forLocale
    - uloc_getAvailable
    - strcpy
    - log_err
    - UPRV_LENGTHOF
    - u_strcmp
    - u_charsToUChars
    - uloc_countAvailable
    - strcat
    linkageType: ''
    returnType: void
    signature: 'static void TestCurrencyKeywords(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnmdptst.c:43,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnmdptst.c:44,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnmdptst.c:46,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnmdptst.c:45,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnmdptst.c:47,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnmdptst.c:48,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnmdptst.c:49,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnmdptst.c:50,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnmdptst.c:51,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnmdptst.c:52,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnmdptst.c:54,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cnmdptst.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: addNumFrDepTest
    functionSourceFile: /src/icu/source/test/cintltst/cnmdptst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addNumFrDepTest(TestNode** root) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:353,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnmdptst.c:355,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:355,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:358,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:371,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:372,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:374,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:375,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:377,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:379,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:394,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:402,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:400,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:351,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:350,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:364,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:378,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:379,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:384,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:388,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:399,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:401,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:406,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnmdptst.c:405,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:385,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:398,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:354,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnmdptst.c:376,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:377,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:383,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:391,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:392,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnmdptst.c:395,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:395,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:398,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:400,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:350,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnmdptst.c:353,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:361,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:362,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnmdptst.c:365,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnmdptst.c:374,1
    - Dst: unum_toPattern
      Src: /src/icu/source/test/cintltst/cnmdptst.c:368,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:365,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnmdptst.c:375,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnmdptst.c:381,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:381,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 96
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 407
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 407
    functionName: TestCurrencySign
    functionSourceFile: /src/icu/source/test/cintltst/cnmdptst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - malloc
    - U_FAILURE
    - log_err_status
    - log_data_err
    - unum_close
    - U_SUCCESS
    - u_strlen
    - unum_formatDouble
    - unum_open
    - myErrorName
    - unum_toPattern
    - log_verbose
    - strlen
    - u_strcmp
    - free
    - u_errorName
    - u_austrcpy
    linkageType: ''
    returnType: void
    signature: 'static void TestCurrencySign(void) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:254,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnmdptst.c:255,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:256,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:258,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:262,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:273,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnmdptst.c:264,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:264,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:281,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:288,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnmdptst.c:331,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:321,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:253,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnmdptst.c:248,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:276,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:282,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnmdptst.c:283,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:283,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:287,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:301,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:308,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:311,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:317,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:305,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:312,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:272,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:275,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:276,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:293,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:295,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:304,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:307,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:308,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:317,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:324,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:326,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:332,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:318,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnmdptst.c:246,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:253,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnmdptst.c:247,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:255,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnmdptst.c:257,1
    - Dst: unum_toPattern
      Src: /src/icu/source/test/cintltst/cnmdptst.c:263,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:257,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:269,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:287,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:290,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnmdptst.c:313,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:313,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 117
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 334
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 334
    functionName: TestExponential
    functionSourceFile: /src/icu/source/test/cintltst/cnmdptst.c
    functionUses: []
    functionsReached:
    - log_err_status
    - unum_close
    - free
    - unum_open
    - u_errorName
    - U_FAILURE
    - unum_parseDouble
    - u_strlen
    - log_verbose
    - UPRV_LENGTHOF
    - u_austrcpy
    - u_uastrcpy
    - unum_toPattern
    - unum_formatDouble
    - log_err
    - malloc
    - austrdup
    - myErrorName
    - strlen
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestExponential(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnmdptst.c:485,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnmdptst.c:513,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:514,1
    - Dst: unum_getTextAttribute
      Src: /src/icu/source/test/cintltst/cnmdptst.c:505,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:524,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:529,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cnmdptst.c:530,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:529,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:538,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:492,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:496,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:501,1
    - Dst: u_UCharsToChars
      Src: /src/icu/source/test/cintltst/cnmdptst.c:512,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:522,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:527,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:539,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:531,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:493,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:491,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnmdptst.c:490,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:498,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:500,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:501,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:509,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:515,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:519,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:526,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:530,1
    - Dst: unum_setTextAttribute
      Src: /src/icu/source/test/cintltst/cnmdptst.c:497,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:509,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:512,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:508,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:532,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cnmdptst.c:532,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnmdptst.c:537,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:527,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 541
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 541
    functionName: TestCurrencyObject
    functionSourceFile: /src/icu/source/test/cintltst/cnmdptst.c
    functionUses: []
    functionsReached:
    - unum_getTextAttribute
    - unum_close
    - free
    - unum_open
    - aescstrdup
    - U_FAILURE
    - log_data_err
    - u_strlen
    - uprv_strcmp
    - log_verbose
    - u_uastrcpy
    - u_unescape
    - unum_setTextAttribute
    - unum_formatDouble
    - log_err
    - malloc
    - u_UCharsToChars
    - myErrorName
    - strlen
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestCurrencyObject(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnmdptst.c:580,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:589,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:587,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:585,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnmdptst.c:582,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:590,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:590,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnmdptst.c:594,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:594,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnmdptst.c:595,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:596,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:598,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnmdptst.c:600,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnmdptst.c:597,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:597,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - nf
    - x
    - maxFractionDigits
    - expected
    argTypes:
    - UNumberFormat*
    - double
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 602
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 602
    functionName: roundingTest
    functionSourceFile: /src/icu/source/test/cintltst/cnmdptst.c
    functionUses: []
    functionsReached:
    - malloc
    - u_uastrcpy
    - unum_setAttribute
    - U_FAILURE
    - austrdup
    - free
    - unum_formatDouble
    - myErrorName
    - log_err
    - strlen
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void roundingTest(UNumberFormat* nf, double x, int32_t maxFractionDigits,
      const char* expected) '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ucurr_getKeywordValuesForLocale
      Src: /src/icu/source/test/cintltst/cnmdptst.c:846,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/cintltst/cnmdptst.c:846,1
    - Dst: ucurr_getKeywordValuesForLocale
      Src: /src/icu/source/test/cintltst/cnmdptst.c:860,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnmdptst.c:848,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:848,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/cnmdptst.c:869,1
    - Dst: ulist_getListFromEnum
      Src: /src/icu/source/test/cintltst/cnmdptst.c:898,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:913,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:919,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/cnmdptst.c:919,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cnmdptst.c:923,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnmdptst.c:869,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnmdptst.c:896,1
    - Dst: ucurr_getKeywordValuesForLocale
      Src: /src/icu/source/test/cintltst/cnmdptst.c:892,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/cnmdptst.c:894,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/cnmdptst.c:900,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/cnmdptst.c:901,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:902,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:908,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:917,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/cnmdptst.c:918,1
    - Dst: ucurr_forLocale
      Src: /src/icu/source/test/cintltst/cnmdptst.c:926,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:933,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:927,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/cnmdptst.c:864,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:870,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/cnmdptst.c:896,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cnmdptst.c:890,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:883,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnmdptst.c:900,1
    - Dst: ulist_containsString
      Src: /src/icu/source/test/cintltst/cnmdptst.c:901,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnmdptst.c:916,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:917,1
    - Dst: uprv_strncmp
      Src: /src/icu/source/test/cintltst/cnmdptst.c:938,1
    - Dst: u_UCharsToChars
      Src: /src/icu/source/test/cintltst/cnmdptst.c:937,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cnmdptst.c:944,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:871,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:887,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:878,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:929,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnmdptst.c:929,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnmdptst.c:939,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 115
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 946
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 946
    functionName: TestGetKeywordValuesForLocale
    functionSourceFile: /src/icu/source/test/cintltst/cnmdptst.c
    functionUses: []
    functionsReached:
    - uenum_next
    - ucurr_forLocale
    - ulist_containsString
    - uprv_strlen
    - U_FAILURE
    - log_err_status
    - ucurr_getKeywordValuesForLocale
    - u_UCharsToChars
    - U_SUCCESS
    - uenum_count
    - ulist_getListFromEnum
    - uprv_strcmp
    - uprv_strncmp
    - log_err
    - uenum_close
    - uloc_getDefault
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestGetKeywordValuesForLocale(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - c
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 269
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 269
    functionName: bocu1Prev
    functionSourceFile: /src/icu/source/test/cintltst/bocu1tst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t bocu1Prev(int32_t c) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NEGDIVMOD
      Src: /src/icu/source/test/cintltst/bocu1tst.c:340,1
    - Dst: BOCU1_TRAIL_TO_BYTE
      Src: /src/icu/source/test/cintltst/bocu1tst.c:341,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 57
    argCount: 1
    argNames:
    - diff
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 349
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 349
    functionName: packDiff
    functionSourceFile: /src/icu/source/test/cintltst/bocu1tst.c
    functionUses: []
    functionsReached:
    - BOCU1_TRAIL_TO_BYTE
    - NEGDIVMOD
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC int32_t packDiff(int32_t diff) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bocu1Prev
      Src: /src/icu/source/test/cintltst/bocu1tst.c:495,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - pRx
    - b
    argTypes:
    - Bocu1Rx*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 514
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 514
    functionName: decodeBocu1TrailByte
    functionSourceFile: /src/icu/source/test/cintltst/bocu1tst.c
    functionUses: []
    functionsReached:
    - bocu1Prev
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t decodeBocu1TrailByte(Bocu1Rx *pRx, uint8_t b) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bocu1Prev
      Src: /src/icu/source/test/cintltst/bocu1tst.c:574,1
    - Dst: decodeBocu1TrailByte
      Src: /src/icu/source/test/cintltst/bocu1tst.c:585,1
    - Dst: decodeBocu1LeadByte
      Src: /src/icu/source/test/cintltst/bocu1tst.c:581,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - pRx
    - b
    argTypes:
    - Bocu1Rx*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 587
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 587
    functionName: decodeBocu1
    functionSourceFile: /src/icu/source/test/cintltst/bocu1tst.c
    functionUses: []
    functionsReached:
    - decodeBocu1LeadByte
    - decodeBocu1TrailByte
    - bocu1Prev
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC int32_t decodeBocu1(Bocu1Rx *pRx, uint8_t b) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BOCU1_LENGTH_FROM_PACKED
      Src: /src/icu/source/test/cintltst/bocu1tst.c:611,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - packed
    - p
    argTypes:
    - int32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 626
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 626
    functionName: writePacked
    functionSourceFile: /src/icu/source/test/cintltst/bocu1tst.c
    functionUses: []
    functionsReached:
    - BOCU1_LENGTH_FROM_PACKED
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t writePacked(int32_t packed, uint8_t *p) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U16_NEXT
      Src: /src/icu/source/test/cintltst/bocu1tst.c:718,1
    - Dst: writePacked
      Src: /src/icu/source/test/cintltst/bocu1tst.c:719,1
    - Dst: encodeBocu1
      Src: /src/icu/source/test/cintltst/bocu1tst.c:719,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - s
    - length
    - p
    argTypes:
    - UChar*
    - int32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 722
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 722
    functionName: writeString
    functionSourceFile: /src/icu/source/test/cintltst/bocu1tst.c
    functionUses: []
    functionsReached:
    - writePacked
    - U16_NEXT
    - encodeBocu1
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t writeString(const UChar *s, int32_t length, uint8_t
      *p) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: decodeBocu1
      Src: /src/icu/source/test/cintltst/bocu1tst.c:740,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/bocu1tst.c:746,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/bocu1tst.c:742,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - p
    - length
    - s
    argTypes:
    - uint8_t*
    - int32_t
    - UChar*
    constantsTouched: []
    func_position:
      end: 750
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 750
    functionName: readString
    functionSourceFile: /src/icu/source/test/cintltst/bocu1tst.c
    functionUses: []
    functionsReached:
    - log_err
    - U16_APPEND_UNSAFE
    - decodeBocu1
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t readString(const uint8_t *p, int32_t length, UChar
      *s) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hexDigit
      Src: /src/icu/source/test/cintltst/bocu1tst.c:771,1
    - Dst: hexDigit
      Src: /src/icu/source/test/cintltst/bocu1tst.c:772,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - bytes
    - out
    argTypes:
    - uint8_t*
    - char*
    constantsTouched: []
    func_position:
      end: 781
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 781
    functionName: printBytes
    functionSourceFile: /src/icu/source/test/cintltst/bocu1tst.c
    functionUses: []
    functionsReached:
    - hexDigit
    linkageType: ''
    returnType: void
    signature: 'static void printBytes(uint8_t *bytes, char *out) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - digit
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 755
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 755
    functionName: hexDigit
    functionSourceFile: /src/icu/source/test/cintltst/bocu1tst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'static char hexDigit(uint8_t digit) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/bocu1tst.c:985,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/bocu1tst.c:987,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/bocu1tst.c:987,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/bocu1tst.c:986,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/bocu1tst.c:991,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/bocu1tst.c:995,1
    - Dst: u_memcpy
      Src: /src/icu/source/test/cintltst/bocu1tst.c:996,1
    - Dst: roundtripBOCU1
      Src: /src/icu/source/test/cintltst/bocu1tst.c:999,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/bocu1tst.c:1003,1
    - Dst: u_memcpy
      Src: /src/icu/source/test/cintltst/bocu1tst.c:1004,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/bocu1tst.c:1015,1
    - Dst: u_memcpy
      Src: /src/icu/source/test/cintltst/bocu1tst.c:1017,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/bocu1tst.c:1022,1
    - Dst: u_memcpy
      Src: /src/icu/source/test/cintltst/bocu1tst.c:1006,1
    - Dst: roundtripBOCU1
      Src: /src/icu/source/test/cintltst/bocu1tst.c:1020,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/bocu1tst.c:1023,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/bocu1tst.c:1014,1
    - Dst: roundtripBOCU1
      Src: /src/icu/source/test/cintltst/bocu1tst.c:1009,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1024
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 1024
    functionName: TestBOCU1
    functionSourceFile: /src/icu/source/test/cintltst/bocu1tst.c
    functionUses: []
    functionsReached:
    - roundtripBOCU1
    - malloc
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - log_data_err
    - u_memcpy
    - free
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestBOCU1(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/bocu1tst.c:1030,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/bocu1tst.c:1031,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 1032
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1032
    functionName: addBOCU1Tests
    functionSourceFile: /src/icu/source/test/cintltst/bocu1tst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void addBOCU1Tests(TestNode** root) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 2
    argNames:
    - pRx
    - b
    argTypes:
    - Bocu1Rx*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 454
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 454
    functionName: decodeBocu1LeadByte
    functionSourceFile: /src/icu/source/test/cintltst/bocu1tst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t decodeBocu1LeadByte(Bocu1Rx *pRx, uint8_t b) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bocu1Prev
      Src: /src/icu/source/test/cintltst/bocu1tst.c:400,1
    - Dst: packDiff
      Src: /src/icu/source/test/cintltst/bocu1tst.c:401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - pPrev
    - c
    argTypes:
    - int32_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 402
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 402
    functionName: encodeBocu1
    functionSourceFile: /src/icu/source/test/cintltst/bocu1tst.c
    functionUses: []
    functionsReached:
    - bocu1Prev
    - packDiff
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC int32_t encodeBocu1(int32_t *pPrev, int32_t c) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BOCU1_LENGTH_FROM_PACKED
      Src: /src/icu/source/test/cintltst/bocu1tst.c:648,1
    - Dst: decodeBocu1
      Src: /src/icu/source/test/cintltst/bocu1tst.c:651,1
    - Dst: decodeBocu1
      Src: /src/icu/source/test/cintltst/bocu1tst.c:655,1
    - Dst: decodeBocu1
      Src: /src/icu/source/test/cintltst/bocu1tst.c:653,1
    - Dst: decodeBocu1
      Src: /src/icu/source/test/cintltst/bocu1tst.c:658,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - initialPrev
    - packed
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 662
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 662
    functionName: unpackDiff
    functionSourceFile: /src/icu/source/test/cintltst/bocu1tst.c
    functionUses: []
    functionsReached:
    - BOCU1_LENGTH_FROM_PACKED
    - decodeBocu1
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t unpackDiff(int32_t initialPrev, int32_t packed) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: packDiff
      Src: /src/icu/source/test/cintltst/bocu1tst.c:681,1
    - Dst: unpackDiff
      Src: /src/icu/source/test/cintltst/bocu1tst.c:695,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/bocu1tst.c:694,1
    - Dst: writePacked
      Src: /src/icu/source/test/cintltst/bocu1tst.c:697,1
    - Dst: unpackDiff
      Src: /src/icu/source/test/cintltst/bocu1tst.c:693,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - diff
    - p
    argTypes:
    - int32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 698
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 698
    functionName: writeDiff
    functionSourceFile: /src/icu/source/test/cintltst/bocu1tst.c
    functionUses: []
    functionsReached:
    - writePacked
    - unpackDiff
    - log_err
    - packDiff
    linkageType: ''
    returnType: uint8_t*
    signature: 'static uint8_t *writeDiff(int32_t diff, uint8_t *p) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/bocu1tst.c:794,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/bocu1tst.c:800,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/bocu1tst.c:804,1
    - Dst: writeDiff
      Src: /src/icu/source/test/cintltst/bocu1tst.c:815,1
    - Dst: writeDiff
      Src: /src/icu/source/test/cintltst/bocu1tst.c:811,1
    - Dst: writeDiff
      Src: /src/icu/source/test/cintltst/bocu1tst.c:828,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/bocu1tst.c:831,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/bocu1tst.c:835,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/bocu1tst.c:842,1
    - Dst: printBytes
      Src: /src/icu/source/test/cintltst/bocu1tst.c:847,1
    - Dst: memcpy
      Src: /src/icu/source/test/cintltst/bocu1tst.c:851,1
    - Dst: printBytes
      Src: /src/icu/source/test/cintltst/bocu1tst.c:855,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/bocu1tst.c:798,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/bocu1tst.c:803,1
    - Dst: writeDiff
      Src: /src/icu/source/test/cintltst/bocu1tst.c:807,1
    - Dst: writeDiff
      Src: /src/icu/source/test/cintltst/bocu1tst.c:808,1
    - Dst: writeDiff
      Src: /src/icu/source/test/cintltst/bocu1tst.c:816,1
    - Dst: writeDiff
      Src: /src/icu/source/test/cintltst/bocu1tst.c:812,1
    - Dst: printBytes
      Src: /src/icu/source/test/cintltst/bocu1tst.c:824,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/bocu1tst.c:829,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/bocu1tst.c:832,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/bocu1tst.c:835,1
    - Dst: printBytes
      Src: /src/icu/source/test/cintltst/bocu1tst.c:846,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/bocu1tst.c:857,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/bocu1tst.c:862,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/bocu1tst.c:848,1
    - Dst: writeDiff
      Src: /src/icu/source/test/cintltst/bocu1tst.c:809,1
    - Dst: writeDiff
      Src: /src/icu/source/test/cintltst/bocu1tst.c:813,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/bocu1tst.c:825,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/bocu1tst.c:830,1
    - Dst: BOCU1_LENGTH_FROM_LEAD
      Src: /src/icu/source/test/cintltst/bocu1tst.c:832,1
    - Dst: writePacked
      Src: /src/icu/source/test/cintltst/bocu1tst.c:867,1
    - Dst: encodeBocu1
      Src: /src/icu/source/test/cintltst/bocu1tst.c:867,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/bocu1tst.c:868,1
    - Dst: printBytes
      Src: /src/icu/source/test/cintltst/bocu1tst.c:856,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/bocu1tst.c:796,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/bocu1tst.c:799,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/bocu1tst.c:795,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/bocu1tst.c:802,1
    - Dst: writeDiff
      Src: /src/icu/source/test/cintltst/bocu1tst.c:814,1
    - Dst: writeDiff
      Src: /src/icu/source/test/cintltst/bocu1tst.c:810,1
    - Dst: writeDiff
      Src: /src/icu/source/test/cintltst/bocu1tst.c:821,1
    - Dst: BOCU1_LENGTH_FROM_LEAD
      Src: /src/icu/source/test/cintltst/bocu1tst.c:830,1
    - Dst: printBytes
      Src: /src/icu/source/test/cintltst/bocu1tst.c:840,1
    - Dst: printBytes
      Src: /src/icu/source/test/cintltst/bocu1tst.c:841,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/bocu1tst.c:860,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 78
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 870
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 870
    functionName: TestBOCU1RefDiff
    functionSourceFile: /src/icu/source/test/cintltst/bocu1tst.c
    functionUses: []
    functionsReached:
    - BOCU1_LENGTH_FROM_LEAD
    - memcpy
    - printBytes
    - strcmp
    - writeDiff
    - encodeBocu1
    - log_verbose
    - log_err
    - strlen
    - writePacked
    linkageType: ''
    returnType: void
    signature: 'static void TestBOCU1RefDiff(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/bocu1tst.c:887,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/bocu1tst.c:888,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/bocu1tst.c:889,1
    - Dst: ucnv_fromUChars
      Src: /src/icu/source/test/cintltst/bocu1tst.c:895,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/bocu1tst.c:896,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/bocu1tst.c:902,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/bocu1tst.c:914,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/bocu1tst.c:914,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/bocu1tst.c:918,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/bocu1tst.c:928,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/bocu1tst.c:897,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/bocu1tst.c:897,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/bocu1tst.c:901,1
    - Dst: readString
      Src: /src/icu/source/test/cintltst/bocu1tst.c:907,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/bocu1tst.c:927,1
    - Dst: writeString
      Src: /src/icu/source/test/cintltst/bocu1tst.c:892,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/bocu1tst.c:922,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/bocu1tst.c:919,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/bocu1tst.c:923,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/bocu1tst.c:930,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/bocu1tst.c:886,1
    - Dst: ucnv_toUChars
      Src: /src/icu/source/test/cintltst/bocu1tst.c:912,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/bocu1tst.c:913,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/bocu1tst.c:929,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 4
    argNames:
    - bocu1
    - number
    - text
    - length
    argTypes:
    - UConverter*
    - int32_t
    - UChar*
    - int32_t
    constantsTouched: []
    func_position:
      end: 931
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 931
    functionName: roundtripBOCU1
    functionSourceFile: /src/icu/source/test/cintltst/bocu1tst.c
    functionUses: []
    functionsReached:
    - malloc
    - ucnv_fromUChars
    - writeString
    - U_FAILURE
    - ucnv_toUChars
    - readString
    - free
    - log_err
    - u_memcmp
    - uprv_memcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void roundtripBOCU1(UConverter *bocu1, int32_t number, const
      UChar *text, int32_t length) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: showADiffB
      Src: /src/icu/source/test/cintltst/cucdtst.c:424,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 5
    argNames:
    - a
    - b
    - a_name
    - b_name
    - diffIsError
    argTypes:
    - USet*
    - USet*
    - char*
    - char*
    - UBool
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: showAIntersectB
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - showADiffB
    linkageType: ''
    returnType: UBool
    signature: 'static UBool showAIntersectB(const USet *a, const USet *b, const char
      *a_name, const char *b_name, UBool diffIsError) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:830,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:833,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 839
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 839
    functionName: TestPOSIX
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestPOSIX() '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:850,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:851,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:850,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:851,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:853,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:854,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:855,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:856,1
    - Dst: u_iscntrl
      Src: /src/icu/source/test/cintltst/cucdtst.c:864,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:865,1
    - Dst: u_isISOControl
      Src: /src/icu/source/test/cintltst/cucdtst.c:867,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:868,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:884,1
    - Dst: u_isprint
      Src: /src/icu/source/test/cintltst/cucdtst.c:883,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:871,1
    - Dst: u_isprint
      Src: /src/icu/source/test/cintltst/cucdtst.c:870,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 887
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 887
    functionName: TestControlPrint
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - u_iscntrl
    - u_isprint
    - u_isISOControl
    - testSampleCharProps
    - log_err
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestControlPrint() '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cucdtst.c:1688,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1700,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:1695,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:1699,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1690,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:1704,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1705,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:1710,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1711,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:1716,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1717,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 38
    argCount: 5
    argNames:
    - context
    - code
    - nameChoice
    - name
    - length
    argTypes:
    - void*
    - UChar32
    - UCharNameChoice
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1727
      start: 1680
    functionDepth: 0
    functionLinenumber: 1680
    functionLinenumberEnd: 1727
    functionName: enumCharNamesFn
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - strlen
    - strcmp
    - log_err
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: UBool
    signature: 'static UBool enumCharNamesFn(void *context, UChar32 code, UCharNameChoice
      nameChoice, const char *name, int32_t length) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cucdtst.c:2080,1
    - Dst: u_isMirrored
      Src: /src/icu/source/test/cintltst/cucdtst.c:2085,1
    - Dst: u_isMirrored
      Src: /src/icu/source/test/cintltst/cucdtst.c:2086,1
    - Dst: u_charMirror
      Src: /src/icu/source/test/cintltst/cucdtst.c:2094,1
    - Dst: u_charMirror
      Src: /src/icu/source/test/cintltst/cucdtst.c:2095,1
    - Dst: u_charMirror
      Src: /src/icu/source/test/cintltst/cucdtst.c:2097,1
    - Dst: u_charMirror
      Src: /src/icu/source/test/cintltst/cucdtst.c:2113,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2118,1
    - Dst: u_charMirror
      Src: /src/icu/source/test/cintltst/cucdtst.c:2112,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:2107,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2089,1
    - Dst: u_isMirrored
      Src: /src/icu/source/test/cintltst/cucdtst.c:2086,1
    - Dst: u_charMirror
      Src: /src/icu/source/test/cintltst/cucdtst.c:2094,1
    - Dst: u_charMirror
      Src: /src/icu/source/test/cintltst/cucdtst.c:2093,1
    - Dst: u_charMirror
      Src: /src/icu/source/test/cintltst/cucdtst.c:2095,1
    - Dst: u_charMirror
      Src: /src/icu/source/test/cintltst/cucdtst.c:2097,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2100,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2108,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2115,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2120,1
    - Dst: uset_getItem
      Src: /src/icu/source/test/cintltst/cucdtst.c:2110,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:2084,1
    - Dst: u_isMirrored
      Src: /src/icu/source/test/cintltst/cucdtst.c:2086,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:2092,1
    - Dst: u_charMirror
      Src: /src/icu/source/test/cintltst/cucdtst.c:2093,1
    - Dst: u_charMirror
      Src: /src/icu/source/test/cintltst/cucdtst.c:2094,1
    - Dst: u_charMirror
      Src: /src/icu/source/test/cintltst/cucdtst.c:2095,1
    - Dst: u_getBidiPairedBracket
      Src: /src/icu/source/test/cintltst/cucdtst.c:2117,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2125,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:2133,1
    - Dst: u_isMirrored
      Src: /src/icu/source/test/cintltst/cucdtst.c:2085,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cucdtst.c:2082,1
    - Dst: u_isMirrored
      Src: /src/icu/source/test/cintltst/cucdtst.c:2085,1
    - Dst: u_isMirrored
      Src: /src/icu/source/test/cintltst/cucdtst.c:2085,1
    - Dst: u_isMirrored
      Src: /src/icu/source/test/cintltst/cucdtst.c:2086,1
    - Dst: u_charMirror
      Src: /src/icu/source/test/cintltst/cucdtst.c:2093,1
    - Dst: u_charMirror
      Src: /src/icu/source/test/cintltst/cucdtst.c:2093,1
    - Dst: u_charMirror
      Src: /src/icu/source/test/cintltst/cucdtst.c:2095,1
    - Dst: u_charMirror
      Src: /src/icu/source/test/cintltst/cucdtst.c:2097,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/cucdtst.c:2105,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 104
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2072
    functionDepth: 0
    functionLinenumber: 2072
    functionLinenumberEnd: 2134
    functionName: TestMirroring
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - uset_openPattern
    - U_STRING_DECL
    - u_charMirror
    - U_FAILURE
    - u_getBidiPairedBracket
    - u_isMirrored
    - log_data_err
    - u_getIntPropertyValue
    - U_STRING_INIT
    - log_verbose
    - log_err
    - uset_getItem
    - uset_close
    linkageType: ''
    returnType: void
    signature: 'static void TestMirroring() '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cucdtst.c:3216,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cucdtst.c:3220,1
    - Dst: showAIntersectB
      Src: /src/icu/source/test/cintltst/cucdtst.c:3268,1
    - Dst: uset_retainAll
      Src: /src/icu/source/test/cintltst/cucdtst.c:3327,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:3338,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/cucdtst.c:3323,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3294,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cucdtst.c:3228,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/cucdtst.c:3342,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cucdtst.c:3213,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:3248,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/cucdtst.c:3264,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:3271,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:3317,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3334,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:3275,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cucdtst.c:3226,1
    - Dst: uset_remove
      Src: /src/icu/source/test/cintltst/cucdtst.c:3257,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3349,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cucdtst.c:3225,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/cucdtst.c:3265,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3317,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:3304,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/cucdtst.c:3325,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cucdtst.c:3210,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cucdtst.c:3235,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:3277,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cucdtst.c:3308,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/cucdtst.c:3324,1
    - Dst: uset_complement
      Src: /src/icu/source/test/cintltst/cucdtst.c:3328,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:3352,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:3274,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cucdtst.c:3222,1
    - Dst: showAIntersectB
      Src: /src/icu/source/test/cintltst/cucdtst.c:3269,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/cucdtst.c:3343,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/cucdtst.c:3286,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:3319,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cucdtst.c:3233,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:3254,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3260,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cucdtst.c:3230,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:3276,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:3311,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:3351,1
    - Dst: compareUSets
      Src: /src/icu/source/test/cintltst/cucdtst.c:3330,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cucdtst.c:3214,1
    - Dst: uset_getItem
      Src: /src/icu/source/test/cintltst/cucdtst.c:3289,1
    - Dst: compareUSets
      Src: /src/icu/source/test/cintltst/cucdtst.c:3345,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:3334,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cucdtst.c:3227,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/cucdtst.c:3252,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:3305,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:3349,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cucdtst.c:3309,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3271,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:3337,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cucdtst.c:3212,1
    - Dst: uset_remove
      Src: /src/icu/source/test/cintltst/cucdtst.c:3256,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cucdtst.c:3211,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cucdtst.c:3236,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:3266,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:3295,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:3326,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cucdtst.c:3224,1
    - Dst: showAMinusB
      Src: /src/icu/source/test/cintltst/cucdtst.c:3258,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:3344,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:3293,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cucdtst.c:3234,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:3260,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:3287,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:3336,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3305,1
    - Dst: uset_retainAll
      Src: /src/icu/source/test/cintltst/cucdtst.c:3329,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cucdtst.c:3308,1
    - Dst: showAIntersectB
      Src: /src/icu/source/test/cintltst/cucdtst.c:3267,1
    - Dst: u_charName
      Src: /src/icu/source/test/cintltst/cucdtst.c:3303,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cucdtst.c:3219,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cucdtst.c:3221,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/cucdtst.c:3253,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 123
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3353
      start: 3201
    functionDepth: 0
    functionLinenumber: 3201
    functionLinenumberEnd: 3353
    functionName: TestConsistency
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - uset_openPattern
    - showAMinusB
    - U_SUCCESS
    - U_STRING_INIT
    - strstr
    - u_errorName
    - U_STRING_DECL
    - U_FAILURE
    - log_data_err
    - log_verbose
    - uset_remove
    - showAIntersectB
    - uset_retainAll
    - compareUSets
    - log_err
    - uset_complement
    - u_charName
    - uset_getItem
    - uset_close
    linkageType: ''
    returnType: void
    signature: 'static void TestConsistency() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/cucdtst.c:3407,1
    - Dst: testFold
      Src: /src/icu/source/test/cintltst/cucdtst.c:3408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - c
    - which
    argTypes:
    - UChar32
    - int
    constantsTouched: []
    func_position:
      end: 3409
      start: 3401
    functionDepth: 0
    functionLinenumber: 3401
    functionLinenumberEnd: 3409
    functionName: testFoldToSelf
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - U16_APPEND_UNSAFE
    - testFold
    linkageType: ''
    returnType: void
    signature: 'static void testFoldToSelf(UChar32 c, int which) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: showAMinusB
      Src: /src/icu/source/test/cintltst/cucdtst.c:436,1
    - Dst: showAMinusB
      Src: /src/icu/source/test/cintltst/cucdtst.c:437,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 5
    argNames:
    - a
    - b
    - a_name
    - b_name
    - diffIsError
    argTypes:
    - USet*
    - USet*
    - char*
    - char*
    - UBool
    constantsTouched: []
    func_position:
      end: 438
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 438
    functionName: compareUSets
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - showAMinusB
    linkageType: ''
    returnType: UBool
    signature: 'static UBool compareUSets(const USet *a, const USet *b, const char
      *a_name, const char *b_name, UBool diffIsError) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: u_skipWhitespace
      Src: /src/icu/source/test/cintltst/cucdtst.c:3435,1
    - Dst: strtoul
      Src: /src/icu/source/test/cintltst/cucdtst.c:3444,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3447,1
    - Dst: u_skipWhitespace
      Src: /src/icu/source/test/cintltst/cucdtst.c:3445,1
    - Dst: strncmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:3436,1
    - Dst: u_skipWhitespace
      Src: /src/icu/source/test/cintltst/cucdtst.c:3453,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3455,1
    - Dst: u_parseString
      Src: /src/icu/source/test/cintltst/cucdtst.c:3461,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:3462,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3463,1
    - Dst: u_memcpy
      Src: /src/icu/source/test/cintltst/cucdtst.c:3502,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/cucdtst.c:3482,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/cucdtst.c:3489,1
    - Dst: testFold
      Src: /src/icu/source/test/cintltst/cucdtst.c:3522,1
    - Dst: uset_remove
      Src: /src/icu/source/test/cintltst/cucdtst.c:3528,1
    - Dst: u_memcpy
      Src: /src/icu/source/test/cintltst/cucdtst.c:3511,1
    - Dst: U16_IS_SINGLE
      Src: /src/icu/source/test/cintltst/cucdtst.c:3468,1
    - Dst: testFold
      Src: /src/icu/source/test/cintltst/cucdtst.c:3483,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 71
    argCount: 4
    argNames:
    - context
    - fields
    - fieldCount
    - pErrorCode
    argTypes:
    - void*
    - char*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 3529
      start: 3420
    functionDepth: 0
    functionLinenumber: 3420
    functionLinenumberEnd: 3529
    functionName: caseFoldingLineFn
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - strtoul
    - uset_remove
    - U_FAILURE
    - u_parseString
    - u_memcpy
    - U16_APPEND_UNSAFE
    - strncmp
    - log_err
    - u_skipWhitespace
    - U16_IS_SINGLE
    - testFold
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV caseFoldingLineFn(void *context, char *fields[][2],
      int32_t fieldCount, UErrorCode *pErrorCode) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: u_getIntPropertyMinValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:3145,1
    - Dst: u_getPropertyName
      Src: /src/icu/source/test/cintltst/cucdtst.c:3152,1
    - Dst: u_getIntPropertyMinValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:3161,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:3162,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3155,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3163,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:3167,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3169,1
    - Dst: uscript_getScript
      Src: /src/icu/source/test/cintltst/cucdtst.c:3180,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:3184,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3188,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3194,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3198
      start: 3136
    functionDepth: 0
    functionLinenumber: 3136
    functionLinenumberEnd: 3198
    functionName: TestPropertyValues
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - uscript_getScript
    - u_getPropertyName
    - u_getIntPropertyValue
    - u_getIntPropertyMaxValue
    - u_getIntPropertyMinValue
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestPropertyValues(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: uset_containsAll
      Src: /src/icu/source/test/cintltst/cucdtst.c:354,1
    - Dst: uset_containsNone
      Src: /src/icu/source/test/cintltst/cucdtst.c:354,1
    - Dst: uset_addAll
      Src: /src/icu/source/test/cintltst/cucdtst.c:364,1
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/cucdtst.c:359,1
    - Dst: uset_removeAll
      Src: /src/icu/source/test/cintltst/cucdtst.c:369,1
    - Dst: uset_retainAll
      Src: /src/icu/source/test/cintltst/cucdtst.c:372,1
    - Dst: uset_getItem
      Src: /src/icu/source/test/cintltst/cucdtst.c:379,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:383,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:384,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:385,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:396,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:409,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:400,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:394,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:402,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 6
    argNames:
    - a
    - b
    - a_name
    - b_name
    - expect
    - diffIsError
    argTypes:
    - USet*
    - USet*
    - char*
    - char*
    - UBool
    - UBool
    constantsTouched: []
    func_position:
      end: 411
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 411
    functionName: showADiffB
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - uset_removeAll
    - uset_addAll
    - uset_containsAll
    - U_FAILURE
    - uset_close
    - uset_retainAll
    - uset_getItem
    - uset_open
    - log_err
    - log_verbose
    - uset_containsNone
    - u_errorName
    linkageType: ''
    returnType: UBool
    signature: 'static UBool showADiffB(const USet *a, const USet *b, const char *a_name,
      const char *b_name, UBool expect, UBool diffIsError) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:177,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:181,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:185,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:187,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:191,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:195,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:202,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:178,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:182,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:188,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:192,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:186,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:196,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:198,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:179,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:183,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:193,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:189,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:197,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:199,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:175,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:176,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:180,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:184,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:190,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:194,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cucdtst.c:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 204
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 204
    functionName: addUnicodeTest
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addUnicodeTest(TestNode** root) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: parseUCDFile
      Src: /src/icu/source/test/cintltst/cucdtst.c:1352,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:1360,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1364,1
    - Dst: u_charType
      Src: /src/icu/source/test/cintltst/cucdtst.c:1364,1
    - Dst: u_charType
      Src: /src/icu/source/test/cintltst/cucdtst.c:1375,1
    - Dst: U_MASK
      Src: /src/icu/source/test/cintltst/cucdtst.c:1376,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:1382,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:1376,1
    - Dst: u_versionFromString
      Src: /src/icu/source/test/cintltst/cucdtst.c:1323,1
    - Dst: u_getUnicodeVersion
      Src: /src/icu/source/test/cintltst/cucdtst.c:1324,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:1325,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1335,1
    - Dst: ublock_getCode
      Src: /src/icu/source/test/cintltst/cucdtst.c:1339,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:1339,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1347,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1353,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1348,1
    - Dst: unorm2_getNFKCInstance
      Src: /src/icu/source/test/cintltst/cucdtst.c:1346,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1327,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1340,1
    - Dst: ublock_getCode
      Src: /src/icu/source/test/cintltst/cucdtst.c:1340,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1348,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1361,1
    - Dst: u_enumCharTypes
      Src: /src/icu/source/test/cintltst/cucdtst.c:1397,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:1333,1
    - Dst: u_charType
      Src: /src/icu/source/test/cintltst/cucdtst.c:1359,1
    - Dst: unorm2_getNFCInstance
      Src: /src/icu/source/test/cintltst/cucdtst.c:1345,1
    - Dst: U_MASK
      Src: /src/icu/source/test/cintltst/cucdtst.c:1360,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1377,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1380,1
    - Dst: u_enumCharTypes
      Src: /src/icu/source/test/cintltst/cucdtst.c:1394,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1398
    functionName: TestUnicodeData
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - u_getUnicodeVersion
    - u_enumCharTypes
    - U_FAILURE
    - strcmp
    - unorm2_getNFCInstance
    - u_getIntPropertyValue
    - log_data_err
    - u_errorName
    - parseUCDFile
    - ublock_getCode
    - u_charType
    - U_MASK
    - log_verbose
    - log_err
    - memcmp
    - u_versionFromString
    - unorm2_getNFKCInstance
    linkageType: ''
    returnType: void
    signature: 'static void TestUnicodeData() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:1273,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1274,1
    - Dst: U_IS_UNICODE_NONCHAR
      Src: /src/icu/source/test/cintltst/cucdtst.c:1290,1
    - Dst: u_hasBinaryProperty
      Src: /src/icu/source/test/cintltst/cucdtst.c:1290,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:1287,1
    - Dst: u_charDirection
      Src: /src/icu/source/test/cintltst/cucdtst.c:1296,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:1297,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1299,1
    - Dst: u_charDirection
      Src: /src/icu/source/test/cintltst/cucdtst.c:1300,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 4
    argNames:
    - context
    - start
    - limit
    - type
    argTypes:
    - void*
    - UChar32
    - UChar32
    - UCharCategory
    constantsTouched: []
    func_position:
      end: 1309
      start: 1218
    functionDepth: 0
    functionLinenumber: 1218
    functionLinenumberEnd: 1309
    functionName: enumDefaultsRange
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - u_getIntPropertyValue
    - U_IS_UNICODE_NONCHAR
    - u_charDirection
    - u_hasBinaryProperty
    - log_err
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: UBool
    signature: 'static UBool U_CALLCONV enumDefaultsRange(const void *context, UChar32
      start, UChar32 limit, UCharCategory type) '
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:988,1
    - Dst: unorm2_getCombiningClass
      Src: /src/icu/source/test/cintltst/cucdtst.c:1017,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1071,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:1075,1
    - Dst: U16_NEXT
      Src: /src/icu/source/test/cintltst/cucdtst.c:1103,1
    - Dst: u_tolower
      Src: /src/icu/source/test/cintltst/cucdtst.c:1153,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1132,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1124,1
    - Dst: u_toupper
      Src: /src/icu/source/test/cintltst/cucdtst.c:1135,1
    - Dst: u_getCombiningClass
      Src: /src/icu/source/test/cintltst/cucdtst.c:1013,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1084,1
    - Dst: unorm2_getRawDecomposition
      Src: /src/icu/source/test/cintltst/cucdtst.c:1092,1
    - Dst: u_toupper
      Src: /src/icu/source/test/cintltst/cucdtst.c:1136,1
    - Dst: unorm2_composePair
      Src: /src/icu/source/test/cintltst/cucdtst.c:1106,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:1025,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1170,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1175,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1158,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1018,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1077,1
    - Dst: u_totitle
      Src: /src/icu/source/test/cintltst/cucdtst.c:1169,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1166,1
    - Dst: u_hasBinaryProperty
      Src: /src/icu/source/test/cintltst/cucdtst.c:1100,1
    - Dst: U16_NEXT
      Src: /src/icu/source/test/cintltst/cucdtst.c:1104,1
    - Dst: strtoul
      Src: /src/icu/source/test/cintltst/cucdtst.c:1003,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1082,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cucdtst.c:1122,1
    - Dst: u_totitle
      Src: /src/icu/source/test/cintltst/cucdtst.c:1170,1
    - Dst: strtoul
      Src: /src/icu/source/test/cintltst/cucdtst.c:982,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:996,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1149,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:999,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:1013,1
    - Dst: strchr
      Src: /src/icu/source/test/cintltst/cucdtst.c:1043,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:1081,1
    - Dst: u_tolower
      Src: /src/icu/source/test/cintltst/cucdtst.c:1152,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1093,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:984,1
    - Dst: u_getPropertyValueEnum
      Src: /src/icu/source/test/cintltst/cucdtst.c:1046,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:1121,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1123,1
    - Dst: u_toupper
      Src: /src/icu/source/test/cintltst/cucdtst.c:1141,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:1093,1
    - Dst: u_getISOComment
      Src: /src/icu/source/test/cintltst/cucdtst.c:1120,1
    - Dst: strtoul
      Src: /src/icu/source/test/cintltst/cucdtst.c:1147,1
    - Dst: u_charType
      Src: /src/icu/source/test/cintltst/cucdtst.c:996,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1070,1
    - Dst: strtoul
      Src: /src/icu/source/test/cintltst/cucdtst.c:1130,1
    - Dst: unorm2_getRawDecomposition
      Src: /src/icu/source/test/cintltst/cucdtst.c:1080,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1096,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1005,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1014,1
    - Dst: u_parseString
      Src: /src/icu/source/test/cintltst/cucdtst.c:1065,1
    - Dst: U_MASK
      Src: /src/icu/source/test/cintltst/cucdtst.c:998,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1009,1
    - Dst: MakeDir
      Src: /src/icu/source/test/cintltst/cucdtst.c:1026,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1141,1
    - Dst: u_totitle
      Src: /src/icu/source/test/cintltst/cucdtst.c:1174,1
    - Dst: u_charType
      Src: /src/icu/source/test/cintltst/cucdtst.c:995,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:998,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1026,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1081,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1153,1
    - Dst: u_getCombiningClass
      Src: /src/icu/source/test/cintltst/cucdtst.c:1014,1
    - Dst: MakeDir
      Src: /src/icu/source/test/cintltst/cucdtst.c:1024,1
    - Dst: u_charDirection
      Src: /src/icu/source/test/cintltst/cucdtst.c:1026,1
    - Dst: u_skipWhitespace
      Src: /src/icu/source/test/cintltst/cucdtst.c:1047,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1108,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1136,1
    - Dst: strtoul
      Src: /src/icu/source/test/cintltst/cucdtst.c:1164,1
    - Dst: u_tolower
      Src: /src/icu/source/test/cintltst/cucdtst.c:1157,1
    - Dst: u_totitle
      Src: /src/icu/source/test/cintltst/cucdtst.c:1175,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1094,1
    - Dst: u_tolower
      Src: /src/icu/source/test/cintltst/cucdtst.c:1158,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1121,1
    - Dst: MakeProp
      Src: /src/icu/source/test/cintltst/cucdtst.c:994,1
    - Dst: unorm2_getCombiningClass
      Src: /src/icu/source/test/cintltst/cucdtst.c:1018,1
    - Dst: u_charDirection
      Src: /src/icu/source/test/cintltst/cucdtst.c:1025,1
    - Dst: u_toupper
      Src: /src/icu/source/test/cintltst/cucdtst.c:1140,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 229
    argCount: 4
    argNames:
    - context
    - fields
    - fieldCount
    - pErrorCode
    argTypes:
    - void*
    - char*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 1178
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 1178
    functionName: unicodeDataLineFn
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - u_totitle
    - strtoul
    - log_err_status
    - unorm2_composePair
    - u_charDirection
    - u_errorName
    - u_getISOComment
    - unorm2_getRawDecomposition
    - U_FAILURE
    - strchr
    - u_parseString
    - u_getPropertyValueEnum
    - u_skipWhitespace
    - MakeProp
    - U16_NEXT
    - strcmp
    - u_getIntPropertyValue
    - u_charType
    - log_err
    - u_tolower
    - U_MASK
    - u_getCombiningClass
    - u_hasBinaryProperty
    - u_toupper
    - unorm2_getCombiningClass
    - u_strcmp
    - MakeDir
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV unicodeDataLineFn(void *context, char *fields[][2],
      int32_t fieldCount, UErrorCode *pErrorCode) '
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: u_getUnicodeVersion
      Src: /src/icu/source/test/cintltst/cucdtst.c:2809,1
    - Dst: u_getIntPropertyMinValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2834,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2845,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2851,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2857,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2863,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2866,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2872,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2878,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2887,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2888,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2944,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2874,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2924,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2922,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2938,1
    - Dst: u_charAge
      Src: /src/icu/source/test/cintltst/cucdtst.c:2821,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:2820,1
    - Dst: u_getIntPropertyMinValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2831,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2841,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2850,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2856,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2862,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2865,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2871,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2877,1
    - Dst: u_isUAlphabetic
      Src: /src/icu/source/test/cintltst/cucdtst.c:2931,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:2898,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2932,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2950,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2893,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2815,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2823,1
    - Dst: u_getIntPropertyMinValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2832,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2839,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2838,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2844,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2848,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2854,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2860,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2894,1
    - Dst: u_getPropertyName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2912,1
    - Dst: u_isULowercase
      Src: /src/icu/source/test/cintltst/cucdtst.c:2937,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2890,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2875,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2869,1
    - Dst: u_charAge
      Src: /src/icu/source/test/cintltst/cucdtst.c:2812,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:2822,1
    - Dst: u_getIntPropertyMinValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2830,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2842,1
    - Dst: u_getIntPropertyMinValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2833,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2836,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2847,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2853,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2859,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2868,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2881,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2891,1
    - Dst: u_isUWhiteSpace
      Src: /src/icu/source/test/cintltst/cucdtst.c:2949,1
    - Dst: u_getIntPropertyMaxValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:2884,1
    - Dst: u_hasBinaryProperty
      Src: /src/icu/source/test/cintltst/cucdtst.c:2915,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2885,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2917,1
    - Dst: u_isUUppercase
      Src: /src/icu/source/test/cintltst/cucdtst.c:2943,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2882,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 172
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2958
      start: 2348
    functionDepth: 0
    functionLinenumber: 2348
    functionLinenumberEnd: 2958
    functionName: TestAdditionalProperties
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - u_getUnicodeVersion
    - u_isUWhiteSpace
    - u_isUUppercase
    - u_getPropertyName
    - log_data_err
    - u_isUAlphabetic
    - u_getIntPropertyValue
    - u_getIntPropertyMaxValue
    - u_getIntPropertyMinValue
    - u_hasBinaryProperty
    - log_err
    - u_charAge
    - memcmp
    - UPRV_LENGTHOF
    - u_isULowercase
    linkageType: ''
    returnType: void
    signature: 'static void TestAdditionalProperties() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: showADiffB
      Src: /src/icu/source/test/cintltst/cucdtst.c:417,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 5
    argNames:
    - a
    - b
    - a_name
    - b_name
    - diffIsError
    argTypes:
    - USet*
    - USet*
    - char*
    - char*
    - UBool
    constantsTouched: []
    func_position:
      end: 418
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 418
    functionName: showAMinusB
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - showADiffB
    linkageType: ''
    returnType: UBool
    signature: 'static UBool showAMinusB(const USet *a, const USet *b, const char
      *a_name, const char *b_name, UBool diffIsError) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:1192,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1210,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1201,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1193,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:1197,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - context
    - start
    - limit
    - type
    argTypes:
    - void*
    - UChar32
    - UChar32
    - UCharCategory
    constantsTouched: []
    func_position:
      end: 1216
      start: 1180
    functionDepth: 0
    functionLinenumber: 1180
    functionLinenumberEnd: 1216
    functionName: enumTypeRange
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - strcmp
    - log_err
    linkageType: ''
    returnType: UBool
    signature: 'static UBool U_CALLCONV enumTypeRange(const void *context, UChar32
      start, UChar32 limit, UCharCategory type) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/cucdtst.c:3377,1
    - Dst: u_foldCase
      Src: /src/icu/source/test/cintltst/cucdtst.c:3379,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:3383,1
    - Dst: u_strFoldCase
      Src: /src/icu/source/test/cintltst/cucdtst.c:3383,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3380,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:3384,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3385,1
    - Dst: u_foldCase
      Src: /src/icu/source/test/cintltst/cucdtst.c:3389,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3390,1
    - Dst: u_strFoldCase
      Src: /src/icu/source/test/cintltst/cucdtst.c:3393,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3395,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:3394,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:3393,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 8
    argNames:
    - c
    - which
    - simple
    - turkic
    - full
    - fullLength
    - turkicFull
    - turkicFullLength
    argTypes:
    - UChar32
    - int
    - UChar32
    - UChar32
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    constantsTouched: []
    func_position:
      end: 3398
      start: 3365
    functionDepth: 0
    functionLinenumber: 3365
    functionLinenumberEnd: 3398
    functionName: testFold
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - U16_APPEND_UNSAFE
    - log_err
    - u_foldCase
    - u_memcmp
    - UPRV_LENGTHOF
    - u_strFoldCase
    linkageType: ''
    returnType: void
    signature: 'static void testFold(UChar32 c, int which, UChar32 simple, UChar32
      turkic, const UChar *full, int32_t fullLength, const UChar *turkicFull, int32_t
      turkicFullLength) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/cucdtst.c:1628,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1632,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1631,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1637
      start: 1623
    functionDepth: 0
    functionLinenumber: 1623
    functionLinenumberEnd: 1637
    functionName: MakeProp
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - strstr
    - log_err
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t MakeProp(char* str) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cucdtst.c:213,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:230,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:232,1
    - Dst: u_isalpha
      Src: /src/icu/source/test/cintltst/cucdtst.c:249,1
    - Dst: u_islower
      Src: /src/icu/source/test/cintltst/cucdtst.c:245,1
    - Dst: u_tolower
      Src: /src/icu/source/test/cintltst/cucdtst.c:238,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:238,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:270,1
    - Dst: u_istitle
      Src: /src/icu/source/test/cintltst/cucdtst.c:332,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:333,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cucdtst.c:236,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:251,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:247,1
    - Dst: u_tolower
      Src: /src/icu/source/test/cintltst/cucdtst.c:253,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:255,1
    - Dst: u_toupper
      Src: /src/icu/source/test/cintltst/cucdtst.c:257,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:259,1
    - Dst: u_tolower
      Src: /src/icu/source/test/cintltst/cucdtst.c:261,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:330,1
    - Dst: u_tolower
      Src: /src/icu/source/test/cintltst/cucdtst.c:229,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cucdtst.c:217,1
    - Dst: u_toupper
      Src: /src/icu/source/test/cintltst/cucdtst.c:231,1
    - Dst: u_isalpha
      Src: /src/icu/source/test/cintltst/cucdtst.c:245,1
    - Dst: u_isupper
      Src: /src/icu/source/test/cintltst/cucdtst.c:249,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:263,1
    - Dst: u_toupper
      Src: /src/icu/source/test/cintltst/cucdtst.c:265,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cucdtst.c:218,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cucdtst.c:214,1
    - Dst: u_tolower
      Src: /src/icu/source/test/cintltst/cucdtst.c:237,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:242,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:267,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:272,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 338
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 338
    functionName: TestUpperLower
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - u_istitle
    - U_STRING_DECL
    - u_isalpha
    - U_STRING_INIT
    - u_strlen
    - log_verbose
    - log_err
    - u_toupper
    - UPRV_LENGTHOF
    - u_tolower
    - u_isupper
    - u_islower
    linkageType: ''
    returnType: void
    signature: 'static void TestUpperLower() '
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1481,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1484,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1491,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1498,1
    - Dst: UTF_IS_VALID
      Src: /src/icu/source/test/cintltst/cucdtst.c:1513,1
    - Dst: UTF_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1536,1
    - Dst: UTF_IS_VALID
      Src: /src/icu/source/test/cintltst/cucdtst.c:1539,1
    - Dst: U_IS_BMP
      Src: /src/icu/source/test/cintltst/cucdtst.c:1568,1
    - Dst: U_IS_BMP
      Src: /src/icu/source/test/cintltst/cucdtst.c:1570,1
    - Dst: UTF_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1523,1
    - Dst: UTF_IS_VALID
      Src: /src/icu/source/test/cintltst/cucdtst.c:1526,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1543,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1557,1
    - Dst: U_IS_SUPPLEMENTARY
      Src: /src/icu/source/test/cintltst/cucdtst.c:1576,1
    - Dst: U_IS_SUPPLEMENTARY
      Src: /src/icu/source/test/cintltst/cucdtst.c:1579,1
    - Dst: U_IS_BMP
      Src: /src/icu/source/test/cintltst/cucdtst.c:1570,1
    - Dst: U_IS_UNICODE_CHAR
      Src: /src/icu/source/test/cintltst/cucdtst.c:1490,1
    - Dst: U_IS_UNICODE_CHAR
      Src: /src/icu/source/test/cintltst/cucdtst.c:1497,1
    - Dst: U_IS_BMP
      Src: /src/icu/source/test/cintltst/cucdtst.c:1567,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1487,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1494,1
    - Dst: UTF_IS_UNICODE_CHAR
      Src: /src/icu/source/test/cintltst/cucdtst.c:1516,1
    - Dst: UTF_IS_UNICODE_CHAR
      Src: /src/icu/source/test/cintltst/cucdtst.c:1542,1
    - Dst: U_IS_BMP
      Src: /src/icu/source/test/cintltst/cucdtst.c:1570,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1501,1
    - Dst: UTF_IS_ERROR
      Src: /src/icu/source/test/cintltst/cucdtst.c:1559,1
    - Dst: U_IS_SUPPLEMENTARY
      Src: /src/icu/source/test/cintltst/cucdtst.c:1576,1
    - Dst: U_IS_SUPPLEMENTARY
      Src: /src/icu/source/test/cintltst/cucdtst.c:1578,1
    - Dst: U_IS_BMP
      Src: /src/icu/source/test/cintltst/cucdtst.c:1568,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1560,1
    - Dst: UTF_IS_ERROR
      Src: /src/icu/source/test/cintltst/cucdtst.c:1545,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1581,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1480,1
    - Dst: U_IS_UNICODE_CHAR
      Src: /src/icu/source/test/cintltst/cucdtst.c:1504,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1533,1
    - Dst: U_IS_BMP
      Src: /src/icu/source/test/cintltst/cucdtst.c:1567,1
    - Dst: U_IS_SUPPLEMENTARY
      Src: /src/icu/source/test/cintltst/cucdtst.c:1576,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1554,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1520,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1551,1
    - Dst: U16_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1480,1
    - Dst: U16_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1487,1
    - Dst: U16_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1494,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1527,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:1477,1
    - Dst: U_IS_UNICODE_CHAR
      Src: /src/icu/source/test/cintltst/cucdtst.c:1483,1
    - Dst: U16_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1501,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1511,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1530,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1537,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1514,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1540,1
    - Dst: U_IS_SUPPLEMENTARY
      Src: /src/icu/source/test/cintltst/cucdtst.c:1578,1
    - Dst: U_IS_SUPPLEMENTARY
      Src: /src/icu/source/test/cintltst/cucdtst.c:1577,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1524,1
    - Dst: UTF_IS_UNICODE_CHAR
      Src: /src/icu/source/test/cintltst/cucdtst.c:1556,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1488,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1495,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:1500,1
    - Dst: UTF_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1510,1
    - Dst: UTF_IS_UNICODE_CHAR
      Src: /src/icu/source/test/cintltst/cucdtst.c:1529,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1546,1
    - Dst: U_IS_SUPPLEMENTARY
      Src: /src/icu/source/test/cintltst/cucdtst.c:1577,1
    - Dst: U_IS_BMP
      Src: /src/icu/source/test/cintltst/cucdtst.c:1567,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1517,1
    - Dst: U_IS_SUPPLEMENTARY
      Src: /src/icu/source/test/cintltst/cucdtst.c:1577,1
    - Dst: U_IS_BMP
      Src: /src/icu/source/test/cintltst/cucdtst.c:1569,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:1549,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1502,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1505,1
    - Dst: UTF_IS_ERROR
      Src: /src/icu/source/test/cintltst/cucdtst.c:1532,1
    - Dst: U_IS_BMP
      Src: /src/icu/source/test/cintltst/cucdtst.c:1569,1
    - Dst: U_IS_SUPPLEMENTARY
      Src: /src/icu/source/test/cintltst/cucdtst.c:1579,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1572,1
    - Dst: UTF_IS_VALID
      Src: /src/icu/source/test/cintltst/cucdtst.c:1553,1
    - Dst: UTF_IS_ERROR
      Src: /src/icu/source/test/cintltst/cucdtst.c:1519,1
    - Dst: UTF_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1550,1
    - Dst: U_IS_BMP
      Src: /src/icu/source/test/cintltst/cucdtst.c:1569,1
    - Dst: U_IS_SUPPLEMENTARY
      Src: /src/icu/source/test/cintltst/cucdtst.c:1579,1
    - Dst: U_IS_BMP
      Src: /src/icu/source/test/cintltst/cucdtst.c:1568,1
    - Dst: U_IS_SUPPLEMENTARY
      Src: /src/icu/source/test/cintltst/cucdtst.c:1578,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 185
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1447
    functionDepth: 0
    functionLinenumber: 1447
    functionLinenumberEnd: 1583
    functionName: TestCodePoint
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - UTF_IS_SURROGATE
    - U16_IS_SURROGATE
    - UTF_IS_ERROR
    - UTF_IS_VALID
    - U_IS_UNICODE_CHAR
    - U_IS_SUPPLEMENTARY
    - log_err
    - UPRV_LENGTHOF
    - U_IS_BMP
    - U_IS_SURROGATE
    - UTF_IS_UNICODE_CHAR
    linkageType: ''
    returnType: void
    signature: 'static void TestCodePoint() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:1643,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1648
      start: 1639
    functionDepth: 0
    functionLinenumber: 1639
    functionLinenumberEnd: 1648
    functionName: MakeDir
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t MakeDir(char* str) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1742,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1750,1
    - Dst: enumCharNamesFn
      Src: /src/icu/source/test/cintltst/cucdtst.c:1753,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1744,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 5
    argNames:
    - context
    - code
    - nameChoice
    - name
    - length
    argTypes:
    - void*
    - UChar32
    - UCharNameChoice
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1754
      start: 1734
    functionDepth: 0
    functionLinenumber: 1734
    functionLinenumberEnd: 1754
    functionName: enumExtCharNamesFn
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - enumCharNamesFn
    - log_err
    linkageType: ''
    returnType: UBool
    signature: 'static UBool enumExtCharNamesFn(void *context, UChar32 code, UCharNameChoice
      nameChoice, const char *name, int32_t length) '
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: uprv_getMaxCharNameLength
      Src: /src/icu/source/test/cintltst/cucdtst.c:1779,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1793,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1805,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1826,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1929,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:1932,1
    - Dst: uprv_getMaxCharNameLength
      Src: /src/icu/source/test/cintltst/cucdtst.c:1956,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cucdtst.c:1998,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1816,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1837,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cucdtst.c:1996,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:1797,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1831,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1930,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/cucdtst.c:1997,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1794,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1827,1
    - Dst: u_charName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1836,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1855,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cucdtst.c:1996,1
    - Dst: u_charFromName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1882,1
    - Dst: uset_contains
      Src: /src/icu/source/test/cintltst/cucdtst.c:1965,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cucdtst.c:1797,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1804,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1877,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1883,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1978,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1995,1
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/cucdtst.c:1899,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1785,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1815,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1853,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1859,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1870,1
    - Dst: uset_contains
      Src: /src/icu/source/test/cintltst/cucdtst.c:1966,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1878,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1979,1
    - Dst: uset_contains
      Src: /src/icu/source/test/cintltst/cucdtst.c:1965,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:1789,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1809,1
    - Dst: u_enumCharNames
      Src: /src/icu/source/test/cintltst/cucdtst.c:1868,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:2001,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1820,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1838,1
    - Dst: u_charToUChar
      Src: /src/icu/source/test/cintltst/cucdtst.c:1941,1
    - Dst: u_enumCharNames
      Src: /src/icu/source/test/cintltst/cucdtst.c:1876,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1854,1
    - Dst: u_charName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1814,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:1819,1
    - Dst: u_charFromName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1852,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1870,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:1931,1
    - Dst: uset_contains
      Src: /src/icu/source/test/cintltst/cucdtst.c:1966,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:1998,1
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/cucdtst.c:1898,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:1790,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cucdtst.c:1819,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1846,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:1778,1
    - Dst: u_charName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1792,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1798,1
    - Dst: u_charFromName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1825,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:1981,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1805,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1838,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:1845,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1883,1
    - Dst: u_charName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1927,1
    - Dst: uset_add
      Src: /src/icu/source/test/cintltst/cucdtst.c:1941,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:2002,1
    - Dst: uprv_getCharNameCharacters
      Src: /src/icu/source/test/cintltst/cucdtst.c:1917,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1816,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cucdtst.c:1845,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1953,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/cucdtst.c:1887,1
    - Dst: uset_toPattern
      Src: /src/icu/source/test/cintltst/cucdtst.c:1977,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1958,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1948,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1869,1
    - Dst: u_charFromName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1803,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:1980,1
    - Dst: uset_toPattern
      Src: /src/icu/source/test/cintltst/cucdtst.c:1976,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1878,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1794,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:1827,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 228
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 1768
    functionDepth: 0
    functionLinenumber: 1768
    functionLinenumberEnd: 2006
    functionName: TestCharNames
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - uprv_getCharNameCharacters
    - uset_open
    - uprv_getMaxCharNameLength
    - u_errorName
    - aescstrdup
    - u_charFromName
    - uset_add
    - U_FAILURE
    - u_charToUChar
    - uset_contains
    - log_verbose
    - UPRV_LENGTHOF
    - getTestOption
    - strcmp
    - uset_toPattern
    - log_err
    - u_charName
    - uset_close
    - strlen
    - u_enumCharNames
    linkageType: ''
    returnType: void
    signature: 'static void TestCharNames() '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2032,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2040,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2041,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2033,1
    - Dst: u_charFromName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2055,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2057,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2058,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2065,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2066,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2015,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2016,1
    - Dst: u_charFromName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2030,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:2031,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:2039,1
    - Dst: u_charFromName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2038,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2049,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2050,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:2056,1
    - Dst: u_charFromName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2063,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:2014,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2024,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2025,1
    - Dst: u_charFromName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2047,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:2048,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:2064,1
    - Dst: u_charFromName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2013,1
    - Dst: u_charFromName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2022,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:2023,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2008
    functionDepth: 0
    functionLinenumber: 2008
    functionLinenumberEnd: 2068
    functionName: TestUCharFromNameUnderflow
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - u_charFromName
    - U_SUCCESS
    - u_errorName
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestUCharFromNameUnderflow() '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:2209,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2250,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2294,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2305,1
    - Dst: uscript_setRunText
      Src: /src/icu/source/test/cintltst/cucdtst.c:2313,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:2329,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2330,1
    - Dst: uscript_closeRun
      Src: /src/icu/source/test/cintltst/cucdtst.c:2343,1
    - Dst: uscript_resetRun
      Src: /src/icu/source/test/cintltst/cucdtst.c:2338,1
    - Dst: CheckScriptRuns
      Src: /src/icu/source/test/cintltst/cucdtst.c:2340,1
    - Dst: uscript_openRun
      Src: /src/icu/source/test/cintltst/cucdtst.c:2243,1
    - Dst: uscript_openRun
      Src: /src/icu/source/test/cintltst/cucdtst.c:2259,1
    - Dst: uscript_closeRun
      Src: /src/icu/source/test/cintltst/cucdtst.c:2267,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2262,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2283,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2294,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2305,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:2315,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2316,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2330,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:2208,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cucdtst.c:2231,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2246,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2262,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2278,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:2277,1
    - Dst: uscript_openRun
      Src: /src/icu/source/test/cintltst/cucdtst.c:2275,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2266,1
    - Dst: uscript_setRunText
      Src: /src/icu/source/test/cintltst/cucdtst.c:2291,1
    - Dst: uscript_setRunText
      Src: /src/icu/source/test/cintltst/cucdtst.c:2302,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2316,1
    - Dst: CheckScriptRuns
      Src: /src/icu/source/test/cintltst/cucdtst.c:2332,1
    - Dst: uscript_closeRun
      Src: /src/icu/source/test/cintltst/cucdtst.c:2321,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:2212,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2246,1
    - Dst: uscript_closeRun
      Src: /src/icu/source/test/cintltst/cucdtst.c:2251,1
    - Dst: uscript_nextRun
      Src: /src/icu/source/test/cintltst/cucdtst.c:2282,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2278,1
    - Dst: CheckScriptRuns
      Src: /src/icu/source/test/cintltst/cucdtst.c:2318,1
    - Dst: uscript_openRun
      Src: /src/icu/source/test/cintltst/cucdtst.c:2327,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2345
      start: 2184
    functionDepth: 0
    functionLinenumber: 2184
    functionLinenumberEnd: 2345
    functionName: TestUScriptRunAPI
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - uscript_closeRun
    - u_unescape
    - uscript_openRun
    - U_FAILURE
    - CheckScriptRuns
    - uscript_resetRun
    - uscript_nextRun
    - uscript_setRunText
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestUScriptRunAPI() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:3030,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3036,1
    - Dst: fabs
      Src: /src/icu/source/test/cintltst/cucdtst.c:3038,1
    - Dst: u_getNumericValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:3033,1
    - Dst: u_getIntPropertyValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:3032,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3039,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3042
      start: 2960
    functionDepth: 0
    functionLinenumber: 2960
    functionLinenumberEnd: 3042
    functionName: TestNumericProperties
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - fabs
    - u_getNumericValue
    - u_getIntPropertyValue
    - log_err
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestNumericProperties(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: uscript_nextRun
      Src: /src/icu/source/test/cintltst/cucdtst.c:2154,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2166,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2156,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2161,1
    - Dst: uscript_getName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2167,1
    - Dst: uscript_getName
      Src: /src/icu/source/test/cintltst/cucdtst.c:2167,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:2180,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 5
    argNames:
    - scriptRun
    - runStarts
    - testData
    - nRuns
    - prefix
    argTypes:
    - UScriptRun*
    - int32_t*
    - RunTestData*
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 2182
      start: 2145
    functionDepth: 0
    functionLinenumber: 2145
    functionLinenumberEnd: 2182
    functionName: CheckScriptRuns
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - uscript_nextRun
    - uscript_getName
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void CheckScriptRuns(UScriptRun *scriptRun, int32_t *runStarts,
      const RunTestData *testData, int32_t nRuns, const char *prefix) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/cucdtst.c:3541,1
    - Dst: parseUCDFile
      Src: /src/icu/source/test/cintltst/cucdtst.c:3544,1
    - Dst: caseFoldingLineFn
      Src: /src/icu/source/test/cintltst/cucdtst.c:3555,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:3545,1
    - Dst: uset_getItem
      Src: /src/icu/source/test/cintltst/cucdtst.c:3559,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:3560,1
    - Dst: testFoldToSelf
      Src: /src/icu/source/test/cintltst/cucdtst.c:3564,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:3569,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3570
      start: 3531
    functionDepth: 0
    functionLinenumber: 3531
    functionLinenumberEnd: 3570
    functionName: TestCaseFolding
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - caseFoldingLineFn
    - U_SUCCESS
    - uset_getItem
    - uset_open
    - testFoldToSelf
    - uset_close
    - parseUCDFile
    linkageType: ''
    returnType: void
    signature: 'static void TestCaseFolding() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:80,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cucdtst.c:85,1
    - Dst: u_getDataDirectory
      Src: /src/icu/source/test/cintltst/cucdtst.c:85,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/cucdtst.c:87,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/cucdtst.c:86,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/cucdtst.c:92,1
    - Dst: ctest_dataSrcDir
      Src: /src/icu/source/test/cintltst/cucdtst.c:92,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/cucdtst.c:93,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/cucdtst.c:94,1
    - Dst: strcat
      Src: /src/icu/source/test/cintltst/cucdtst.c:95,1
    - Dst: u_parseDelimitedFile
      Src: /src/icu/source/test/cintltst/cucdtst.c:97,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cucdtst.c:103,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cucdtst.c:103,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cucdtst.c:102,1
    - Dst: u_parseDelimitedFile
      Src: /src/icu/source/test/cintltst/cucdtst.c:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 6
    argNames:
    - filename
    - fields
    - fieldCount
    - lineFn
    - context
    - pErrorCode
    argTypes:
    - char*
    - char*
    - int32_t
    - UParseLineFn*
    - void*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 105
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 105
    functionName: parseUCDFile
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - u_parseDelimitedFile
    - U_FAILURE
    - u_getDataDirectory
    - log_err_status
    - strcpy
    - u_errorName
    - ctest_dataSrcDir
    - strcat
    linkageType: ''
    returnType: void
    signature: 'static void parseUCDFile(const char *filename, char *fields[][2],
      int32_t fieldCount, UParseLineFn *lineFn, void *context, UErrorCode *pErrorCode) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:449,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:459,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:467,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cucdtst.c:514,1
    - Dst: u_isalnum
      Src: /src/icu/source/test/cintltst/cucdtst.c:475,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:489,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/cucdtst.c:517,1
    - Dst: compareUSets
      Src: /src/icu/source/test/cintltst/cucdtst.c:521,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:524,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:445,1
    - Dst: u_isalpha
      Src: /src/icu/source/test/cintltst/cucdtst.c:453,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:455,1
    - Dst: u_isdigit
      Src: /src/icu/source/test/cintltst/cucdtst.c:461,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:463,1
    - Dst: u_isalnum
      Src: /src/icu/source/test/cintltst/cucdtst.c:469,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cucdtst.c:508,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/cucdtst.c:509,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/cucdtst.c:518,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:520,1
    - Dst: u_isalpha
      Src: /src/icu/source/test/cintltst/cucdtst.c:447,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:477,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:471,1
    - Dst: u_getUnicodeVersion
      Src: /src/icu/source/test/cintltst/cucdtst.c:488,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/cucdtst.c:515,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/cucdtst.c:525,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 527
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 527
    functionName: TestLetterNumber
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - u_getUnicodeVersion
    - u_isdigit
    - uset_openPattern
    - U_STRING_DECL
    - u_isalpha
    - U_SUCCESS
    - compareUSets
    - U_STRING_INIT
    - log_verbose
    - log_err
    - memcmp
    - u_isalnum
    - uset_close
    linkageType: ''
    returnType: void
    signature: 'static void TestLetterNumber() '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:567,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:571,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:578,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:583,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:586,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:589,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:593,1
    - Dst: u_versionToString
      Src: /src/icu/source/test/cintltst/cucdtst.c:600,1
    - Dst: strncmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:601,1
    - Dst: uprv_min
      Src: /src/icu/source/test/cintltst/cucdtst.c:601,1
    - Dst: U_GET_GC_MASK
      Src: /src/icu/source/test/cintltst/cucdtst.c:618,1
    - Dst: U_MASK
      Src: /src/icu/source/test/cintltst/cucdtst.c:678,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cucdtst.c:607,1
    - Dst: u_digit
      Src: /src/icu/source/test/cintltst/cucdtst.c:734,1
    - Dst: U_GET_GC_MASK
      Src: /src/icu/source/test/cintltst/cucdtst.c:617,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:679,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:567,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:570,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:572,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:577,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:582,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:586,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:591,1
    - Dst: u_charDigitValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:594,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:609,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:622,1
    - Dst: u_digit
      Src: /src/icu/source/test/cintltst/cucdtst.c:730,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:731,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:568,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:573,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:581,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:585,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:576,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:588,1
    - Dst: u_getVersion
      Src: /src/icu/source/test/cintltst/cucdtst.c:599,1
    - Dst: U_GET_GC_MASK
      Src: /src/icu/source/test/cintltst/cucdtst.c:615,1
    - Dst: U_GET_GC_MASK
      Src: /src/icu/source/test/cintltst/cucdtst.c:616,1
    - Dst: U_MASK
      Src: /src/icu/source/test/cintltst/cucdtst.c:665,1
    - Dst: U_GET_GC_MASK
      Src: /src/icu/source/test/cintltst/cucdtst.c:619,1
    - Dst: u_forDigit
      Src: /src/icu/source/test/cintltst/cucdtst.c:685,1
    - Dst: u_forDigit
      Src: /src/icu/source/test/cintltst/cucdtst.c:684,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:685,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:729,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/cucdtst.c:565,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:568,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:575,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:580,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:585,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:588,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:589,1
    - Dst: u_charDigitValue
      Src: /src/icu/source/test/cintltst/cucdtst.c:592,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cucdtst.c:601,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:603,1
    - Dst: U_GET_GC_MASK
      Src: /src/icu/source/test/cintltst/cucdtst.c:620,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cucdtst.c:601,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:666,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 247
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 739
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 739
    functionName: TestMisc
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - U_GET_GC_MASK
    - u_charDigitValue
    - memset
    - u_versionToString
    - strcmp
    - U_MASK
    - u_forDigit
    - testSampleCharProps
    - strncmp
    - log_err
    - u_digit
    - uprv_min
    - UPRV_LENGTHOF
    - u_getVersion
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestMisc() '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1409,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1410,1
    - Dst: U16_IS_SINGLE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1415,1
    - Dst: U16_IS_SINGLE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1421,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1417,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1423,1
    - Dst: UTF_IS_SINGLE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1428,1
    - Dst: UTF_IS_SINGLE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1434,1
    - Dst: UTF_IS_TRAIL
      Src: /src/icu/source/test/cintltst/cucdtst.c:1434,1
    - Dst: UTF_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1434,1
    - Dst: UTF_IS_SINGLE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1439,1
    - Dst: U16_IS_TRAIL
      Src: /src/icu/source/test/cintltst/cucdtst.c:1408,1
    - Dst: U16_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1409,1
    - Dst: U16_IS_TRAIL
      Src: /src/icu/source/test/cintltst/cucdtst.c:1415,1
    - Dst: U16_IS_LEAD
      Src: /src/icu/source/test/cintltst/cucdtst.c:1421,1
    - Dst: U16_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1416,1
    - Dst: U16_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1422,1
    - Dst: UTF_IS_LEAD
      Src: /src/icu/source/test/cintltst/cucdtst.c:1428,1
    - Dst: UTF_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1428,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1429,1
    - Dst: UTF_IS_LEAD
      Src: /src/icu/source/test/cintltst/cucdtst.c:1434,1
    - Dst: U16_IS_SINGLE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1408,1
    - Dst: U16_IS_LEAD
      Src: /src/icu/source/test/cintltst/cucdtst.c:1415,1
    - Dst: U16_IS_TRAIL
      Src: /src/icu/source/test/cintltst/cucdtst.c:1421,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1416,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1422,1
    - Dst: UTF_IS_LEAD
      Src: /src/icu/source/test/cintltst/cucdtst.c:1439,1
    - Dst: UTF_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/cucdtst.c:1439,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:1405,1
    - Dst: U16_IS_LEAD
      Src: /src/icu/source/test/cintltst/cucdtst.c:1408,1
    - Dst: UTF_IS_TRAIL
      Src: /src/icu/source/test/cintltst/cucdtst.c:1428,1
    - Dst: UTF_IS_TRAIL
      Src: /src/icu/source/test/cintltst/cucdtst.c:1439,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1440,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1435,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 98
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1445
    functionName: TestCodeUnit
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - UTF_IS_SURROGATE
    - U16_IS_SURROGATE
    - U16_IS_LEAD
    - UTF_IS_SINGLE
    - UTF_IS_LEAD
    - U_IS_SURROGATE
    - UTF_IS_TRAIL
    - U16_IS_SINGLE
    - log_err
    - UPRV_LENGTHOF
    - U16_IS_TRAIL
    linkageType: ''
    returnType: void
    signature: 'static void TestCodeUnit() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:906,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:909,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:915,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:917,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:922,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:928,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:932,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:905,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:908,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:914,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:925,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:920,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:931,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:904,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:911,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:919,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:924,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:934,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:903,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:910,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:918,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:923,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:929,1
    - Dst: testSampleCharProps
      Src: /src/icu/source/test/cintltst/cucdtst.c:933,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 935
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 935
    functionName: TestIdentifier
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - testSampleCharProps
    linkageType: ''
    returnType: void
    signature: 'static void TestIdentifier() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cucdtst.c:1604,1
    - Dst: U16_LENGTH
      Src: /src/icu/source/test/cintltst/cucdtst.c:1610,1
    - Dst: UTF_CHAR_LENGTH
      Src: /src/icu/source/test/cintltst/cucdtst.c:1608,1
    - Dst: U16_LENGTH
      Src: /src/icu/source/test/cintltst/cucdtst.c:1611,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1611,1
    - Dst: UTF_NEED_MULTIPLE_UCHAR
      Src: /src/icu/source/test/cintltst/cucdtst.c:1615,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:1616,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1585
    functionDepth: 0
    functionLinenumber: 1585
    functionLinenumberEnd: 1620
    functionName: TestCharLength
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - U16_LENGTH
    - UTF_CHAR_LENGTH
    - log_err
    - UPRV_LENGTHOF
    - UTF_NEED_MULTIPLE_UCHAR
    linkageType: ''
    returnType: void
    signature: 'static void TestCharLength() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: u_getBinaryPropertySet
      Src: /src/icu/source/test/cintltst/cucdtst.c:3575,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:3576,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:3581,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3577,1
    - Dst: u_getBinaryPropertySet
      Src: /src/icu/source/test/cintltst/cucdtst.c:3580,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3582,1
    - Dst: u_getBinaryPropertySet
      Src: /src/icu/source/test/cintltst/cucdtst.c:3585,1
    - Dst: uset_contains
      Src: /src/icu/source/test/cintltst/cucdtst.c:3586,1
    - Dst: uset_contains
      Src: /src/icu/source/test/cintltst/cucdtst.c:3586,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3587,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3589
      start: 3572
    functionDepth: 0
    functionLinenumber: 3572
    functionLinenumberEnd: 3589
    functionName: TestBinaryCharacterPropertiesAPI
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - U_SUCCESS
    - log_err
    - uset_contains
    - u_getBinaryPropertySet
    linkageType: ''
    returnType: void
    signature: 'static void TestBinaryCharacterPropertiesAPI() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: propFn
      Src: /src/icu/source/test/cintltst/cucdtst.c:534,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:536,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 5
    argNames:
    - propFn
    - propName
    - sampleChars
    - sampleCharsLength
    - expected
    argTypes:
    - UBool
    - char*
    - UChar32*
    - int32_t
    - UBool
    constantsTouched: []
    func_position:
      end: 540
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 540
    functionName: testSampleCharProps
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - log_err
    - propFn
    linkageType: ''
    returnType: void
    signature: 'static void testSampleCharProps(UBool propFn(UChar32), const char
      *propName, const UChar32 *sampleChars, int32_t sampleCharsLength, UBool expected) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: u_getIntPropertyMap
      Src: /src/icu/source/test/cintltst/cucdtst.c:3594,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3596,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:3600,1
    - Dst: u_getIntPropertyMap
      Src: /src/icu/source/test/cintltst/cucdtst.c:3599,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cucdtst.c:3595,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3601,1
    - Dst: u_getIntPropertyMap
      Src: /src/icu/source/test/cintltst/cucdtst.c:3604,1
    - Dst: ucpmap_get
      Src: /src/icu/source/test/cintltst/cucdtst.c:3605,1
    - Dst: ucpmap_get
      Src: /src/icu/source/test/cintltst/cucdtst.c:3605,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3606,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3608
      start: 3591
    functionDepth: 0
    functionLinenumber: 3591
    functionLinenumberEnd: 3608
    functionName: TestIntCharacterPropertiesAPI
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - ucpmap_get
    - U_SUCCESS
    - u_getIntPropertyMap
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestIntCharacterPropertiesAPI() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/cucdtst.c:1764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 1766
      start: 1761
    functionDepth: 0
    functionLinenumber: 1761
    functionLinenumberEnd: 1766
    functionName: u_charToUChar
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - u_charsToUChars
    linkageType: ''
    returnType: UChar
    signature: 'static UChar u_charToUChar(char c) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3056,1
    - Dst: u_getPropertyName
      Src: /src/icu/source/test/cintltst/cucdtst.c:3061,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:3065,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:3064,1
    - Dst: u_getPropertyEnum
      Src: /src/icu/source/test/cintltst/cucdtst.c:3070,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3072,1
    - Dst: u_getPropertyName
      Src: /src/icu/source/test/cintltst/cucdtst.c:3080,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:3092,1
    - Dst: u_getPropertyValueName
      Src: /src/icu/source/test/cintltst/cucdtst.c:3096,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:3098,1
    - Dst: u_getPropertyValueEnum
      Src: /src/icu/source/test/cintltst/cucdtst.c:3103,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cucdtst.c:3105,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:3112,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cucdtst.c:3099,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 83
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3131
      start: 3047
    functionDepth: 0
    functionLinenumber: 3047
    functionLinenumberEnd: 3131
    functionName: TestPropertyNames
    functionSourceFile: /src/icu/source/test/cintltst/cucdtst.c
    functionUses: []
    functionsReached:
    - u_getPropertyEnum
    - u_getPropertyName
    - log_data_err
    - u_getPropertyValueName
    - u_getPropertyValueEnum
    - log_verbose
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestPropertyNames(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: uset_openEmpty
      Src: /src/icu/source/test/cintltst/usettest.c:87,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/usettest.c:89,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/usettest.c:93,1
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/usettest.c:101,1
    - Dst: uset_remove
      Src: /src/icu/source/test/cintltst/usettest.c:122,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:128,1
    - Dst: uset_complement
      Src: /src/icu/source/test/cintltst/usettest.c:131,1
    - Dst: uset_complement
      Src: /src/icu/source/test/cintltst/usettest.c:135,1
    - Dst: uset_addRange
      Src: /src/icu/source/test/cintltst/usettest.c:136,1
    - Dst: uset_removeRange
      Src: /src/icu/source/test/cintltst/usettest.c:140,1
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/usettest.c:179,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:203,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:207,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:184,1
    - Dst: uset_clear
      Src: /src/icu/source/test/cintltst/usettest.c:180,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:199,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:165,1
    - Dst: uset_containsSome
      Src: /src/icu/source/test/cintltst/usettest.c:192,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/usettest.c:214,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/usettest.c:98,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:102,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/usettest.c:103,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:115,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:124,1
    - Dst: uset_removeString
      Src: /src/icu/source/test/cintltst/usettest.c:127,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:141,1
    - Dst: uset_set
      Src: /src/icu/source/test/cintltst/usettest.c:144,1
    - Dst: uset_charAt
      Src: /src/icu/source/test/cintltst/usettest.c:151,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:160,1
    - Dst: uset_removeAll
      Src: /src/icu/source/test/cintltst/usettest.c:202,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:173,1
    - Dst: uset_containsSome
      Src: /src/icu/source/test/cintltst/usettest.c:196,1
    - Dst: uset_set
      Src: /src/icu/source/test/cintltst/usettest.c:187,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:92,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:88,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usettest.c:109,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usettest.c:108,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:113,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/usettest.c:107,1
    - Dst: uset_resemblesPattern
      Src: /src/icu/source/test/cintltst/usettest.c:112,1
    - Dst: uset_add
      Src: /src/icu/source/test/cintltst/usettest.c:118,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:132,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:137,1
    - Dst: uset_clear
      Src: /src/icu/source/test/cintltst/usettest.c:171,1
    - Dst: uset_addAllCodePoints
      Src: /src/icu/source/test/cintltst/usettest.c:172,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:175,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:193,1
    - Dst: uset_retainAll
      Src: /src/icu/source/test/cintltst/usettest.c:210,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usettest.c:165,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/usettest.c:213,1
    - Dst: uset_addAll
      Src: /src/icu/source/test/cintltst/usettest.c:206,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:197,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usettest.c:164,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:152,1
    - Dst: uset_retain
      Src: /src/icu/source/test/cintltst/usettest.c:159,1
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/usettest.c:91,1
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/usettest.c:95,1
    - Dst: uset_clear
      Src: /src/icu/source/test/cintltst/usettest.c:96,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:97,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:109,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:119,1
    - Dst: uset_addString
      Src: /src/icu/source/test/cintltst/usettest.c:123,1
    - Dst: uset_indexOf
      Src: /src/icu/source/test/cintltst/usettest.c:147,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:148,1
    - Dst: uset_compact
      Src: /src/icu/source/test/cintltst/usettest.c:156,1
    - Dst: uset_applyIntPropertyValue
      Src: /src/icu/source/test/cintltst/usettest.c:163,1
    - Dst: uset_applyPropertyAlias
      Src: /src/icu/source/test/cintltst/usettest.c:183,1
    - Dst: uset_containsAllCodePoints
      Src: /src/icu/source/test/cintltst/usettest.c:174,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:145,1
    - Dst: uset_set
      Src: /src/icu/source/test/cintltst/usettest.c:189,1
    - Dst: uset_complementAll
      Src: /src/icu/source/test/cintltst/usettest.c:195,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:211,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:168,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 215
    functionName: TestAPI
    functionSourceFile: /src/icu/source/test/cintltst/usettest.c
    functionUses: []
    functionsReached:
    - expect
    - uset_openPattern
    - uset_addAll
    - uset_compact
    - uset_open
    - uset_retain
    - uset_set
    - u_errorName
    - uset_addAllCodePoints
    - uset_add
    - U_FAILURE
    - uset_resemblesPattern
    - uset_removeRange
    - uset_applyIntPropertyValue
    - uset_clear
    - uset_charAt
    - uset_complementAll
    - uset_openEmpty
    - uset_remove
    - uset_containsAllCodePoints
    - uset_removeAll
    - uset_retainAll
    - log_err
    - uset_complement
    - uset_removeString
    - uset_applyPropertyAlias
    - uset_indexOf
    - uset_addString
    - uset_containsSome
    - uset_close
    - uset_addRange
    linkageType: ''
    returnType: void
    signature: 'static void TestAPI() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/usettest.c:56,1
    - Dst: expect
      Src: /src/icu/source/test/cintltst/usettest.c:59,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/usettest.c:60,1
    - Dst: uset_addString
      Src: /src/icu/source/test/cintltst/usettest.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: Testj2269
    functionSourceFile: /src/icu/source/test/cintltst/usettest.c
    functionUses: []
    functionsReached:
    - uset_close
    - uset_addString
    - uset_open
    - expect
    linkageType: ''
    returnType: void
    signature: 'static void Testj2269() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_UCharsToChars
      Src: /src/icu/source/test/cintltst/usettest.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 353
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 353
    functionName: oneUCharToChar
    functionSourceFile: /src/icu/source/test/cintltst/usettest.c
    functionUses: []
    functionsReached:
    - u_UCharsToChars
    linkageType: ''
    returnType: char
    signature: 'static char oneUCharToChar(UChar32 c) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:371,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/usettest.c:376,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/usettest.c:379,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/usettest.c:383,1
    - Dst: oneUCharToChar
      Src: /src/icu/source/test/cintltst/usettest.c:407,1
    - Dst: strncpy
      Src: /src/icu/source/test/cintltst/usettest.c:426,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:439,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usettest.c:370,1
    - Dst: uset_toPattern
      Src: /src/icu/source/test/cintltst/usettest.c:369,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usettest.c:377,1
    - Dst: uset_getItem
      Src: /src/icu/source/test/cintltst/usettest.c:398,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usettest.c:401,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usettest.c:400,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/usettest.c:429,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/usettest.c:438,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:452,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/usettest.c:468,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/usettest.c:374,1
    - Dst: uset_isEmpty
      Src: /src/icu/source/test/cintltst/usettest.c:376,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:401,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/usettest.c:406,1
    - Dst: oneUCharToChar
      Src: /src/icu/source/test/cintltst/usettest.c:408,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usettest.c:394,1
    - Dst: u_UCharsToChars
      Src: /src/icu/source/test/cintltst/usettest.c:411,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/usettest.c:412,1
    - Dst: uset_size
      Src: /src/icu/source/test/cintltst/usettest.c:467,1
    - Dst: uset_size
      Src: /src/icu/source/test/cintltst/usettest.c:471,1
    - Dst: uset_getItemCount
      Src: /src/icu/source/test/cintltst/usettest.c:363,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usettest.c:371,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:433,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/usettest.c:448,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:458,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:470,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 2
    argNames:
    - set
    - items
    argTypes:
    - USet*
    - char*
    constantsTouched: []
    func_position:
      end: 473
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 473
    functionName: expectItems
    functionSourceFile: /src/icu/source/test/cintltst/usettest.c
    functionUses: []
    functionsReached:
    - uset_isEmpty
    - uset_size
    - U_FAILURE
    - uset_getItemCount
    - log_data_err
    - oneUCharToChar
    - uset_toPattern
    - u_UCharsToChars
    - strncpy
    - u_strlen
    - uset_getItem
    - log_err
    - log_verbose
    - strlen
    - u_strcmp
    - u_charsToUChars
    - u_errorName
    - aescstrdup
    linkageType: ''
    returnType: void
    signature: 'static void expectItems(const USet* set, const char* items) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/usettest.c:485,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usettest.c:490,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/usettest.c:486,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/usettest.c:489,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usettest.c:491,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usettest.c:491,1
    - Dst: uset_serialize
      Src: /src/icu/source/test/cintltst/usettest.c:495,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/usettest.c:495,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usettest.c:496,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:497,1
    - Dst: uset_getSerializedSet
      Src: /src/icu/source/test/cintltst/usettest.c:502,1
    - Dst: uset_serializedContains
      Src: /src/icu/source/test/cintltst/usettest.c:504,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/usettest.c:510,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:505,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usettest.c:497,1
    - Dst: uset_contains
      Src: /src/icu/source/test/cintltst/usettest.c:504,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/usettest.c:498,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 511
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 511
    functionName: TestSerialized
    functionSourceFile: /src/icu/source/test/cintltst/usettest.c
    functionUses: []
    functionsReached:
    - uset_openPattern
    - U_STRING_DECL
    - UPRV_LENGTHOF
    - U_FAILURE
    - log_data_err
    - uset_getSerializedSet
    - U_STRING_INIT
    - uset_contains
    - log_err
    - uset_close
    - uset_serialize
    - u_errorName
    - uset_serializedContains
    linkageType: ''
    returnType: void
    signature: 'static void TestSerialized() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/usettest.c:525,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/usettest.c:529,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/usettest.c:530,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 531
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 531
    functionName: TestNonInvariantPattern
    functionSourceFile: /src/icu/source/test/cintltst/usettest.c
    functionUses: []
    functionsReached:
    - uset_close
    - uset_openPattern
    - u_unescape
    linkageType: ''
    returnType: void
    signature: 'static void TestNonInvariantPattern() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/usettest.c:546,1
    - Dst: uset_openPattern
      Src: /src/icu/source/test/cintltst/usettest.c:548,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/usettest.c:547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 549
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 549
    functionName: openIDSet
    functionSourceFile: /src/icu/source/test/cintltst/usettest.c
    functionUses: []
    functionsReached:
    - U_STRING_INIT
    - uset_openPattern
    - U_STRING_DECL
    linkageType: ''
    returnType: USet*
    signature: 'static USet *openIDSet() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usettest.c:559,1
    - Dst: uset_addRange
      Src: /src/icu/source/test/cintltst/usettest.c:591,1
    - Dst: uset_cloneAsThawed
      Src: /src/icu/source/test/cintltst/usettest.c:582,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:594,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/usettest.c:599,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:567,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:579,1
    - Dst: uset_isFrozen
      Src: /src/icu/source/test/cintltst/usettest.c:593,1
    - Dst: uset_containsRange
      Src: /src/icu/source/test/cintltst/usettest.c:593,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/usettest.c:598,1
    - Dst: openIDSet
      Src: /src/icu/source/test/cintltst/usettest.c:556,1
    - Dst: uset_clone
      Src: /src/icu/source/test/cintltst/usettest.c:564,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/usettest.c:586,1
    - Dst: uset_equals
      Src: /src/icu/source/test/cintltst/usettest.c:578,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/usettest.c:597,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/usettest.c:560,1
    - Dst: uset_equals
      Src: /src/icu/source/test/cintltst/usettest.c:571,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:572,1
    - Dst: uset_freeze
      Src: /src/icu/source/test/cintltst/usettest.c:575,1
    - Dst: uset_addRange
      Src: /src/icu/source/test/cintltst/usettest.c:576,1
    - Dst: uset_isFrozen
      Src: /src/icu/source/test/cintltst/usettest.c:578,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:585,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/usettest.c:587,1
    - Dst: uset_isFrozen
      Src: /src/icu/source/test/cintltst/usettest.c:578,1
    - Dst: uset_equals
      Src: /src/icu/source/test/cintltst/usettest.c:593,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 600
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 600
    functionName: TestFreezable
    functionSourceFile: /src/icu/source/test/cintltst/usettest.c
    functionUses: []
    functionsReached:
    - uset_addRange
    - uset_equals
    - uset_isFrozen
    - openIDSet
    - log_data_err
    - uset_cloneAsThawed
    - log_err
    - uset_close
    - uset_clone
    - uset_containsRange
    - uset_freeze
    linkageType: ''
    returnType: void
    signature: 'static void TestFreezable() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usettest.c:240,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usettest.c:241,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:241,1
    - Dst: expectContainment
      Src: /src/icu/source/test/cintltst/usettest.c:248,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:245,1
    - Dst: expectContainment
      Src: /src/icu/source/test/cintltst/usettest.c:249,1
    - Dst: expectItems
      Src: /src/icu/source/test/cintltst/usettest.c:250,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 4
    argNames:
    - set
    - inList
    - outList
    - ec
    argTypes:
    - USet*
    - char*
    - char*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 251
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 251
    functionName: expect
    functionSourceFile: /src/icu/source/test/cintltst/usettest.c
    functionUses: []
    functionsReached:
    - expectItems
    - U_FAILURE
    - expectContainment
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void expect(const USet* set, const char* inList, const char*
      outList, UErrorCode* ec) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/cintltst/usettest.c:536,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/usettest.c:538,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/cintltst/usettest.c:537,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/usettest.c:539,1
    - Dst: uset_openPatternOptions
      Src: /src/icu/source/test/cintltst/usettest.c:538,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:540,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usettest.c:540,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 542
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 542
    functionName: TestBadPattern
    functionSourceFile: /src/icu/source/test/cintltst/usettest.c
    functionUses: []
    functionsReached:
    - uset_openPatternOptions
    - U_STRING_DECL
    - U_SUCCESS
    - U_STRING_INIT
    - u_strlen
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestBadPattern(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/usettest.c:40,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/usettest.c:42,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/usettest.c:43,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/usettest.c:41,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/usettest.c:44,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/usettest.c:45,1
    - Dst: TEST
      Src: /src/icu/source/test/cintltst/usettest.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: addUSetTest
    functionSourceFile: /src/icu/source/test/cintltst/usettest.c
    functionUses: []
    functionsReached:
    - TEST
    linkageType: ''
    returnType: void
    signature: 'void addUSetTest(TestNode** root) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:265,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/usettest.c:282,1
    - Dst: uset_containsString
      Src: /src/icu/source/test/cintltst/usettest.c:284,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usettest.c:289,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usettest.c:306,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usettest.c:339,1
    - Dst: strncpy
      Src: /src/icu/source/test/cintltst/usettest.c:279,1
    - Dst: uset_contains
      Src: /src/icu/source/test/cintltst/usettest.c:301,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/usettest.c:302,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/usettest.c:317,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/usettest.c:298,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/usettest.c:268,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/usettest.c:335,1
    - Dst: uset_containsRange
      Src: /src/icu/source/test/cintltst/usettest.c:316,1
    - Dst: uset_toPattern
      Src: /src/icu/source/test/cintltst/usettest.c:263,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/usettest.c:265,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/usettest.c:264,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/usettest.c:285,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usettest.c:321,1
    - Dst: uset_containsRange
      Src: /src/icu/source/test/cintltst/usettest.c:334,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 3
    argNames:
    - set
    - list
    - isIn
    argTypes:
    - USet*
    - char*
    - UBool
    constantsTouched: []
    func_position:
      end: 344
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 344
    functionName: expectContainment
    functionSourceFile: /src/icu/source/test/cintltst/usettest.c
    functionUses: []
    functionsReached:
    - uset_containsString
    - U_FAILURE
    - log_data_err
    - strncpy
    - uset_toPattern
    - uset_containsRange
    - uset_contains
    - log_verbose
    - log_err
    - u_charsToUChars
    - u_errorName
    - aescstrdup
    linkageType: ''
    returnType: void
    signature: 'static void expectContainment(const USet* set, const char* list, UBool
      isIn) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: openIDSet
      Src: /src/icu/source/test/cintltst/usettest.c:606,1
    - Dst: uset_span
      Src: /src/icu/source/test/cintltst/usettest.c:614,1
    - Dst: uset_spanBack
      Src: /src/icu/source/test/cintltst/usettest.c:617,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:619,1
    - Dst: uset_spanUTF8
      Src: /src/icu/source/test/cintltst/usettest.c:623,1
    - Dst: uset_freeze
      Src: /src/icu/source/test/cintltst/usettest.c:631,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:628,1
    - Dst: uset_spanBackUTF8
      Src: /src/icu/source/test/cintltst/usettest.c:626,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/usettest.c:609,1
    - Dst: uset_span
      Src: /src/icu/source/test/cintltst/usettest.c:635,1
    - Dst: uset_spanUTF8
      Src: /src/icu/source/test/cintltst/usettest.c:643,1
    - Dst: uset_span
      Src: /src/icu/source/test/cintltst/usettest.c:615,1
    - Dst: uset_spanUTF8
      Src: /src/icu/source/test/cintltst/usettest.c:624,1
    - Dst: uset_spanBack
      Src: /src/icu/source/test/cintltst/usettest.c:636,1
    - Dst: uset_spanBackUTF8
      Src: /src/icu/source/test/cintltst/usettest.c:645,1
    - Dst: uset_spanBack
      Src: /src/icu/source/test/cintltst/usettest.c:616,1
    - Dst: uset_spanBackUTF8
      Src: /src/icu/source/test/cintltst/usettest.c:625,1
    - Dst: uset_span
      Src: /src/icu/source/test/cintltst/usettest.c:634,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:639,1
    - Dst: uset_spanBack
      Src: /src/icu/source/test/cintltst/usettest.c:637,1
    - Dst: uset_spanUTF8
      Src: /src/icu/source/test/cintltst/usettest.c:644,1
    - Dst: uset_spanBackUTF8
      Src: /src/icu/source/test/cintltst/usettest.c:646,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/usettest.c:648,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/usettest.c:651,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 652
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 652
    functionName: TestSpan
    functionSourceFile: /src/icu/source/test/cintltst/usettest.c
    functionUses: []
    functionsReached:
    - uset_spanBackUTF8
    - uset_spanUTF8
    - uset_spanBack
    - openIDSet
    - uset_span
    - log_data_err
    - log_err
    - uset_close
    - uset_freeze
    linkageType: ''
    returnType: void
    signature: 'static void TestSpan() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_open
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:168,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:175,1
    - Dst: ubiditransform_open
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:171,1
    - Dst: ubiditransform_transform
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:179,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:176,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:183,1
    - Dst: ubidi_writeReordered
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:184,1
    - Dst: ubidi_writeReverse
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:186,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:186,1
    - Dst: logResultsForDir
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:188,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:195,1
    - Dst: logResultsForDir
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:190,1
    - Dst: ubiditransform_close
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:196,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 197
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 197
    functionName: testAutoDirection
    functionSourceFile: /src/icu/source/test/cintltst/cbiditransformtst.c
    functionUses: []
    functionsReached:
    - ubidi_close
    - u_unescape
    - ubidi_writeReverse
    - ubidi_open
    - ubiditransform_open
    - u_strlen
    - ubiditransform_close
    - ubiditransform_transform
    - ubidi_writeReordered
    - ubidi_setPara
    - logResultsForDir
    linkageType: ''
    returnType: void
    signature: 'static void testAutoDirection(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:217,1
    - Dst: U16_NEXT
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:221,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - str
    - from
    - to
    argTypes:
    - UChar*
    - UChar*
    - UChar*
    constantsTouched: []
    func_position:
      end: 229
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 229
    functionName: shapeLetters
    functionSourceFile: /src/icu/source/test/cintltst/cbiditransformtst.c
    functionUses: []
    functionsReached:
    - U16_NEXT
    - u_strlen
    linkageType: ''
    returnType: void
    signature: 'static void shapeLetters(UChar *str, const UChar *from, const UChar
      *to) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ubiditransform_open
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:396,1
    - Dst: ubiditransform_transform
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:403,1
    - Dst: verifyResultsForAllOpt
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:407,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:398,1
    - Dst: ubiditransform_transform
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:415,1
    - Dst: verifyResultsForAllOpt
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:420,1
    - Dst: ubiditransform_close
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:425,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 426
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 426
    functionName: testAllTransformOptions
    functionSourceFile: /src/icu/source/test/cintltst/cbiditransformtst.c
    functionUses: []
    functionsReached:
    - u_unescape
    - verifyResultsForAllOpt
    - ubiditransform_open
    - ubiditransform_close
    - ubiditransform_transform
    linkageType: ''
    returnType: void
    signature: 'static void testAllTransformOptions(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: u_charDirection
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:101,1
    - Dst: substituteByPseudoChar
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:103,1
    - Dst: substituteByPseudoChar
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:109,1
    - Dst: substituteByPseudoChar
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:113,1
    - Dst: substituteByPseudoChar
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:107,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 1
    argNames:
    - str
    argTypes:
    - UChar*
    constantsTouched: []
    func_position:
      end: 123
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 123
    functionName: pseudoScript
    functionSourceFile: /src/icu/source/test/cintltst/cbiditransformtst.c
    functionUses: []
    functionsReached:
    - u_charDirection
    - substituteByPseudoChar
    linkageType: ''
    returnType: char*
    signature: 'static char *pseudoScript(const UChar *str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:135,1
    - Dst: pseudoScript
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:137,1
    - Dst: pseudoScript
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:137,1
    - Dst: pseudoScript
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:137,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 5
    argNames:
    - srcTxt
    - destTxt
    - expectedTxt
    - inLevel
    - outLevel
    argTypes:
    - UChar*
    - UChar*
    - UChar*
    - UBiDiLevel
    - UBiDiLevel
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: logResultsForDir
    functionSourceFile: /src/icu/source/test/cintltst/cbiditransformtst.c
    functionUses: []
    functionsReached:
    - u_strcmp
    - pseudoScript
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void logResultsForDir(const UChar *srcTxt, const UChar *destTxt,
      const UChar *expectedTxt, UBiDiLevel inLevel, UBiDiLevel outLevel) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - UChar*
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: pseudoScript
    functionSourceFile: /src/icu/source/test/cintltst/cbiditransformtst.c
    functionUses: []
    functionsReached:
    - aescstrdup
    linkageType: ''
    returnType: char*
    signature: 'static char *pseudoScript(const UChar *str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:203,1
    - Dst: U16_NEXT
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - str
    - srcZero
    - destZero
    argTypes:
    - UChar*
    - UChar
    - UChar
    constantsTouched: []
    func_position:
      end: 212
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 212
    functionName: shapeDigits
    functionSourceFile: /src/icu/source/test/cintltst/cbiditransformtst.c
    functionUses: []
    functionsReached:
    - U16_NEXT
    - u_strlen
    linkageType: ''
    returnType: void
    signature: 'static void shapeDigits(UChar *str, UChar srcZero, UChar destZero) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:235,1
    - Dst: shapeLetters
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:252,1
    - Dst: shapeDigits
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:239,1
    - Dst: shapeLetters
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:249,1
    - Dst: shapeDigits
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:242,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:255,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:256,1
    - Dst: pseudoScript
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:257,1
    - Dst: pseudoScript
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:257,1
    - Dst: pseudoScript
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:257,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 14
    argCount: 6
    argNames:
    - pTest
    - srcTxt
    - destTxt
    - expectedChars
    - digits
    - letters
    argTypes:
    - UBidiTestCases*
    - UChar*
    - UChar*
    - char*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 259
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 259
    functionName: verifyResultsForAllOpt
    functionSourceFile: /src/icu/source/test/cintltst/cbiditransformtst.c
    functionUses: []
    functionsReached:
    - shapeDigits
    - pseudoScript
    - u_unescape
    - shapeLetters
    - log_err
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void verifyResultsForAllOpt(const UBidiTestCases *pTest, const
      UChar *srcTxt, const UChar *destTxt, const char *expectedChars, uint32_t digits,
      uint32_t letters) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:431,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cbiditransformtst.c:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 433
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 433
    functionName: addBidiTransformTest
    functionSourceFile: /src/icu/source/test/cintltst/cbiditransformtst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addBidiTransformTest(TestNode** root) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 5
    argNames:
    - src
    - dest
    - baseReal
    - basePseudo
    - max
    argTypes:
    - UChar*
    - char*
    - UChar
    - char
    - char
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: substituteByPseudoChar
    functionSourceFile: /src/icu/source/test/cintltst/cbiditransformtst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void substituteByPseudoChar(const UChar *src, char *dest, const
      UChar baseReal, const char basePseudo, const char max) '
  - BBCount: 103
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:366,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:646,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:757,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:783,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:260,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:338,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:351,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:411,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnumtst.c:576,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:543,1
    - Dst: unum_setTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:743,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:777,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:989,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:304,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:508,1
    - Dst: unum_toPattern
      Src: /src/icu/source/test/cintltst/cnumtst.c:535,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:585,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:711,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:795,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnumtst.c:631,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:250,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:764,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:813,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:851,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:877,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:926,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:726,1
    - Dst: unum_setTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:673,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:720,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:735,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:771,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:894,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:916,1
    - Dst: unum_format
      Src: /src/icu/source/test/cintltst/cnumtst.c:289,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:243,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:276,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:327,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:552,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:430,1
    - Dst: unum_getTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:698,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:587,1
    - Dst: unum_getTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:668,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:692,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:976,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:738,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:220,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:333,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:352,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:845,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:992,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:457,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:484,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:686,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:995,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:964,1
    - Dst: unum_format
      Src: /src/icu/source/test/cintltst/cnumtst.c:461,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:482,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:527,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:813,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:948,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:963,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:423,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:928,1
    - Dst: unum_getSymbol
      Src: /src/icu/source/test/cintltst/cnumtst.c:971,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:565,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:716,1
    - Dst: unum_getAvailable
      Src: /src/icu/source/test/cintltst/cnumtst.c:267,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:295,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:502,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:532,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:660,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:872,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnumtst.c:654,1
    - Dst: unum_getTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:749,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:696,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:203,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:881,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:886,1
    - Dst: unum_getSymbol
      Src: /src/icu/source/test/cintltst/cnumtst.c:967,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:742,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnumtst.c:555,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnumtst.c:319,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnumtst.c:446,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:766,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:878,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:898,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:666,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:298,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:368,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:701,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:938,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:593,1
    - Dst: unum_getTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:678,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:223,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:356,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:432,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:846,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:934,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:796,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:656,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:650,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:746,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:263,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnumtst.c:806,1
    - Dst: unum_setSymbol
      Src: /src/icu/source/test/cintltst/cnumtst.c:975,1
    - Dst: unum_setSymbol
      Src: /src/icu/source/test/cintltst/cnumtst.c:979,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:401,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:498,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:696,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:795,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:878,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:225,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:230,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:236,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:752,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:451,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:780,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:798,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:895,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:917,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnumtst.c:307,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:402,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:676,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnumtst.c:644,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:773,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:821,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:295,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:565,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:671,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:660,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:793,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:965,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:681,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:705,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:727,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:211,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnumtst.c:360,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:388,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:442,1
    - Dst: unum_toPattern
      Src: /src/icu/source/test/cintltst/cnumtst.c:516,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:598,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:723,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:365,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:406,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:611,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:841,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:885,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:214,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:239,1
    - Dst: unum_formatDoubleCurrency
      Src: /src/icu/source/test/cintltst/cnumtst.c:371,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:579,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:624,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:269,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:384,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:450,1
    - Dst: unum_setTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:710,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:520,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:784,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:988,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:638,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:222,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:232,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:390,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnumtst.c:418,1
    - Dst: unum_format
      Src: /src/icu/source/test/cintltst/cnumtst.c:469,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:671,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:693,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:755,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:474,1
    - Dst: unum_formatDoubleCurrency
      Src: /src/icu/source/test/cintltst/cnumtst.c:376,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:410,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:775,1
    - Dst: unum_setSymbol
      Src: /src/icu/source/test/cintltst/cnumtst.c:842,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:907,1
    - Dst: unum_parseDecimal
      Src: /src/icu/source/test/cintltst/cnumtst.c:915,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:997,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnumtst.c:515,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnumtst.c:286,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:329,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:584,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:432,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:701,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:676,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:249,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:333,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:790,1
    - Dst: unum_formatDecimal
      Src: /src/icu/source/test/cintltst/cnumtst.c:876,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:991,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:733,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:520,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:593,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:246,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:743,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:760,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:785,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:847,1
    - Dst: unum_formatDecimal
      Src: /src/icu/source/test/cintltst/cnumtst.c:893,1
    - Dst: unum_setTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:689,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:713,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:325,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:242,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:343,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:550,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:681,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:895,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:917,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:655,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:752,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:737,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:226,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:352,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:379,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:400,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:402,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:843,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:939,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:684,1
    - Dst: unum_getTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:715,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:382,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnumtst.c:528,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:782,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:965,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:218,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:428,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:492,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:525,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:545,1
    - Dst: unum_format
      Src: /src/icu/source/test/cintltst/cnumtst.c:571,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:812,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:874,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:232,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnumtst.c:540,1
    - Dst: unum_applyPattern
      Src: /src/icu/source/test/cintltst/cnumtst.c:587,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:980,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:311,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:253,1
    - Dst: unum_parse
      Src: /src/icu/source/test/cintltst/cnumtst.c:482,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:500,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:709,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:645,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:200,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:349,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:385,1
    - Dst: unum_toPattern
      Src: /src/icu/source/test/cintltst/cnumtst.c:541,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:673,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnumtst.c:811,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:887,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:920,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:278,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:765,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:802,1
    - Dst: unum_parseDecimal
      Src: /src/icu/source/test/cintltst/cnumtst.c:937,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:976,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:980,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:718,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:688,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:297,1
    - Dst: unum_countAvailable
      Src: /src/icu/source/test/cintltst/cnumtst.c:258,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:818,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:486,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:474,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:505,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:880,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:949,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:972,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:352,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:379,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:923,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:968,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:694,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:942,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:450,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:262,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:314,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:235,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:402,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnumtst.c:466,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:499,1
    - Dst: unum_setTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:726,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:545,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:205,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:413,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:713,1
    - Dst: unum_parse
      Src: /src/icu/source/test/cintltst/cnumtst.c:820,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:939,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:432,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:293,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:347,1
    - Dst: unum_parseDoubleCurrency
      Src: /src/icu/source/test/cintltst/cnumtst.c:400,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:453,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:563,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:897,1
    - Dst: unum_getSymbol
      Src: /src/icu/source/test/cintltst/cnumtst.c:654,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:704,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:210,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:271,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:625,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:721,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:744,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:945,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:990,1
    - Dst: unum_setSymbol
      Src: /src/icu/source/test/cintltst/cnumtst.c:637,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:822,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:874,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:993,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:549,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:740,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:903,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:994,1
    - Dst: unum_format
      Src: /src/icu/source/test/cintltst/cnumtst.c:604,1
    - Dst: unum_getAvailable
      Src: /src/icu/source/test/cintltst/cnumtst.c:268,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:486,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:794,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:228,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:237,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnumtst.c:494,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:699,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:669,1
    - Dst: unum_format
      Src: /src/icu/source/test/cintltst/cnumtst.c:577,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:658,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:754,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:919,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:394,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:424,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:581,1
    - Dst: unum_getTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:732,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:927,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:718,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:639,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:710,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:996,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:674,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:205,1
    - Dst: unum_clone
      Src: /src/icu/source/test/cintltst/cnumtst.c:248,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:595,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:849,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:385,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:613,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:646,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:768,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:972,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:968,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:478,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:585,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:217,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:241,1
    - Dst: unum_getAvailable
      Src: /src/icu/source/test/cintltst/cnumtst.c:271,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:300,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:549,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:679,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnumtst.c:375,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:762,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:224,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:358,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:402,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:750,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:914,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:953,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:746,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:683,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:729,1
    - Dst: unum_getSymbol
      Src: /src/icu/source/test/cintltst/cnumtst.c:592,1
    - Dst: unum_format
      Src: /src/icu/source/test/cintltst/cnumtst.c:281,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:212,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:453,1
    - Dst: unum_toPattern
      Src: /src/icu/source/test/cintltst/cnumtst.c:510,1
    - Dst: unum_format
      Src: /src/icu/source/test/cintltst/cnumtst.c:609,1
    - Dst: unum_getSymbol
      Src: /src/icu/source/test/cintltst/cnumtst.c:644,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:774,1
    - Dst: unum_getSymbol
      Src: /src/icu/source/test/cintltst/cnumtst.c:561,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:689,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:490,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:524,1
    - Dst: unum_getSymbol
      Src: /src/icu/source/test/cintltst/cnumtst.c:591,1
    - Dst: unum_format
      Src: /src/icu/source/test/cintltst/cnumtst.c:811,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:824,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:873,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:497,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:302,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:219,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:231,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:237,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:830,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:874,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:941,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:499,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:518,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:725,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:310,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:332,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:250,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:352,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:381,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:822,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:882,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:257,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:234,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:336,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:982,1
    - Dst: unum_setSymbol
      Src: /src/icu/source/test/cintltst/cnumtst.c:562,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:552,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:707,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:729,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:209,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:212,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:243,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:327,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:444,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:840,1
    - Dst: unum_setTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:693,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:613,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:267,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:347,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:502,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:639,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:581,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:408,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:448,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:472,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:818,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:950,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:735,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:330,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:322,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:199,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:378,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:397,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:787,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:899,1
    CyclomaticComplexity: 138
    EdgeCount: 138
    ICount: 748
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 999
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 999
    functionName: TestNumberFormat
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - unum_getTextAttribute
    - unum_formatDecimal
    - unum_close
    - U_SUCCESS
    - free
    - unum_open
    - unum_parse
    - u_errorName
    - aescstrdup
    - unum_format
    - unum_getAttribute
    - unum_getAvailable
    - U_FAILURE
    - unum_parseDouble
    - unum_formatDoubleCurrency
    - log_data_err
    - unum_setAttribute
    - u_austrncpy
    - unum_parseDoubleCurrency
    - u_strlen
    - uprv_strcmp
    - log_verbose
    - unum_setSymbol
    - UPRV_LENGTHOF
    - unum_clone
    - u_uastrcpy
    - unum_parseDecimal
    - unum_countAvailable
    - strcmp
    - unum_setTextAttribute
    - unum_formatDouble
    - unum_toPattern
    - log_err
    - unum_getSymbol
    - malloc
    - unum_applyPattern
    - myErrorName
    - strlen
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestNumberFormat() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_fabs
      Src: /src/icu/source/test/cintltst/cnumtst.c:1411,1
    - Dst: uprv_fabs
      Src: /src/icu/source/test/cintltst/cnumtst.c:1411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - a
    - b
    - err
    argTypes:
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 1412
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1412
    functionName: withinErr
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - uprv_fabs
    linkageType: ''
    returnType: UBool
    signature: 'static UBool withinErr(double a, double b, double err) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2281,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2288,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:2291,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2289,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2292,1
    - Dst: assertUEquals
      Src: /src/icu/source/test/cintltst/cnumtst.c:2293,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2295
      start: 2279
    functionDepth: 0
    functionLinenumber: 2279
    functionLinenumberEnd: 2295
    functionName: TestSignAlwaysShown
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - assertUEquals
    - assertSuccess
    - unum_setAttribute
    - unum_close
    - unum_formatDouble
    - unum_open
    linkageType: ''
    returnType: void
    signature: 'static void TestSignAlwaysShown(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2299,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2307,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:2309,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2306,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2310,1
    - Dst: assertUEquals
      Src: /src/icu/source/test/cintltst/cnumtst.c:2311,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:2312,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2313,1
    - Dst: assertUEquals
      Src: /src/icu/source/test/cintltst/cnumtst.c:2314,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2316
      start: 2297
    functionDepth: 0
    functionLinenumber: 2297
    functionLinenumberEnd: 2316
    functionName: TestMinimumGroupingDigits
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - assertUEquals
    - assertSuccess
    - unum_setAttribute
    - unum_close
    - unum_formatDouble
    - unum_open
    linkageType: ''
    returnType: void
    signature: 'static void TestMinimumGroupingDigits(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3203,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3203,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:3202,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3210,1
    - Dst: unum_parseDecimal
      Src: /src/icu/source/test/cintltst/cnumtst.c:3239,1
    - Dst: unum_parse
      Src: /src/icu/source/test/cintltst/cnumtst.c:3214,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:3217,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3218,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3220,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:3241,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3233,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3244,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3246,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:3243,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:3250,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:3201,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3209,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:3226,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3232,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3221,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:3229,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3230,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3247,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3252
      start: 3197
    functionDepth: 0
    functionLinenumber: 3197
    functionLinenumberEnd: 3252
    functionName: TestParseCases
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - unum_parseDecimal
    - U_FAILURE
    - unum_setAttribute
    - unum_parseDouble
    - log_data_err
    - unum_close
    - uprv_strcmp
    - unum_open
    - unum_parse
    - log_err
    - u_errorName
    - u_austrcpy
    linkageType: ''
    returnType: void
    signature: 'static void TestParseCases(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:81,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:82,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:83,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:84,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:87,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:91,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:99,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:95,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:103,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:109,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:113,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:86,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:90,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:94,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:98,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:102,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:106,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:108,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:112,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:85,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:89,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:93,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:97,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:101,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:105,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:107,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:111,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:115,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:88,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:96,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:92,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:100,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:104,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:110,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/cnumtst.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 116
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 116
    functionName: addNumForTest
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - TESTCASE
    linkageType: ''
    returnType: void
    signature: 'void addNumForTest(TestNode** root) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/cnumtst.c:135,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:140,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:140,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:138,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:136,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:144,1
    - Dst: unum_parseInt64
      Src: /src/icu/source/test/cintltst/cnumtst.c:146,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:150,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:152,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:152,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:159,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 161
    functionName: TestInt64Parse
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_data_err
    - unum_close
    - unum_parseInt64
    - myErrorName
    - unum_open
    - log_verbose
    - log_err
    - u_charsToUChars
    linkageType: ''
    returnType: void
    signature: 'static void TestInt64Parse() '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1099,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1097,1
    - Dst: unum_parseDoubleCurrency
      Src: /src/icu/source/test/cintltst/cnumtst.c:1105,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1109,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1116,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:1114,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1116,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1130,1
    - Dst: unum_parseDoubleCurrency
      Src: /src/icu/source/test/cintltst/cnumtst.c:1135,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1142,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1146,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:1144,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1106,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1111,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1136,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1146,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1095,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1100,1
    - Dst: strncmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:1108,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:1122,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1121,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1129,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1139,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1141,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1090,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:1091,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1127,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1112,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1125,1
    - Dst: strncmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:1138,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1078
    functionDepth: 0
    functionLinenumber: 1078
    functionLinenumberEnd: 1150
    functionName: TestParseCurrency
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - unum_parseDouble
    - log_data_err
    - u_austrncpy
    - unum_close
    - U_SUCCESS
    - unum_parseDoubleCurrency
    - unum_open
    - log_err
    - strncmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestParseCurrency() '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnumtst.c:1729,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1726,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1729,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1743,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnumtst.c:1743,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnumtst.c:1797,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1797,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1812,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1813,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1818,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnumtst.c:1717,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnumtst.c:1736,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1736,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnumtst.c:1750,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1750,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnumtst.c:1794,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1794,1
    - Dst: test_fmt
      Src: /src/icu/source/test/cintltst/cnumtst.c:1803,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1728,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1727,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1741,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1742,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/cnumtst.c:1791,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1796,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1802,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnumtst.c:1814,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1814,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:1817,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:1824,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1734,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1735,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1755,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1748,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1749,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1771,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1792,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1793,1
    - Dst: uprv_getNaN
      Src: /src/icu/source/test/cintltst/cnumtst.c:1810,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1711
    functionDepth: 0
    functionLinenumber: 1711
    functionLinenumberEnd: 1826
    functionName: TestRBNFFormat
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - test_fmt
    - uprv_getNaN
    - U_FAILURE
    - log_err_status
    - unum_close
    - unum_formatDouble
    - unum_open
    - log_verbose
    - u_strcat
    - log_err
    - UPRV_LENGTHOF
    - u_strcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestRBNFFormat() '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1555,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1559,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1568,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1571,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1579,1
    - Dst: unum_getDoubleAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1595,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1597,1
    - Dst: unum_setDoubleAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1599,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1610,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:1612,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1620,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1633,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1634,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1646,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:1663,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1637,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1650,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1638,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1682,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1620,1
    - Dst: unum_getTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1636,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnumtst.c:1553,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1560,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1593,1
    - Dst: unum_getDoubleAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1600,1
    - Dst: unum_getTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1608,1
    - Dst: unum_setTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1632,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1640,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1645,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1647,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1649,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1677,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1634,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1681,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1638,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1641,1
    - Dst: unum_toPattern
      Src: /src/icu/source/test/cintltst/cnumtst.c:1662,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1664,1
    - Dst: unum_getSymbol
      Src: /src/icu/source/test/cintltst/cnumtst.c:1675,1
    - Dst: unum_setSymbol
      Src: /src/icu/source/test/cintltst/cnumtst.c:1680,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1677,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnumtst.c:1547,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1576,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1577,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1585,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1582,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1602,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1614,1
    - Dst: unum_getTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1618,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnumtst.c:1643,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1667,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1623,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1665,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1619,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1647,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:1622,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1667,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1556,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1557,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1557,1
    - Dst: unum_applyPattern
      Src: /src/icu/source/test/cintltst/cnumtst.c:1569,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1571,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1570,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1583,1
    - Dst: unum_getDoubleAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1591,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1609,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1610,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1669,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1624,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1676,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1682,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1613,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 141
    argCount: 2
    argNames:
    - fmt
    - isDecimal
    argTypes:
    - UNumberFormat*
    - UBool
    constantsTouched: []
    func_position:
      end: 1685
      start: 1544
    functionDepth: 0
    functionLinenumber: 1544
    functionLinenumberEnd: 1685
    functionName: test_fmt
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - unum_getTextAttribute
    - U_SUCCESS
    - unum_getDoubleAttribute
    - u_errorName
    - unum_getAttribute
    - U_FAILURE
    - unum_setAttribute
    - log_verbose
    - unum_setSymbol
    - UPRV_LENGTHOF
    - u_austrcpy
    - u_uastrcpy
    - unum_setTextAttribute
    - unum_formatDouble
    - unum_toPattern
    - log_err
    - unum_getSymbol
    - unum_applyPattern
    - unum_setDoubleAttribute
    linkageType: ''
    returnType: void
    signature: 'static void test_fmt(UNumberFormat* fmt, UBool isDecimal) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1900,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1904,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1901,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1904,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1903,1
    - Dst: unum_parseDoubleCurrency
      Src: /src/icu/source/test/cintltst/cnumtst.c:1911,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1918,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1920,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1921,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1922,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:1927,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1924,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1924,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1928
      start: 1873
    functionDepth: 0
    functionLinenumber: 1873
    functionLinenumberEnd: 1928
    functionName: TestCurrencyRegression
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - U_FAILURE
    - log_data_err
    - unum_close
    - unum_parseDoubleCurrency
    - unum_open
    - log_err
    - log_verbose
    - u_errorName
    - u_austrcpy
    linkageType: ''
    returnType: void
    signature: 'static void TestCurrencyRegression(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2006,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2007,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cnumtst.c:2018,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnumtst.c:2018,1
    - Dst: unum_applyPattern
      Src: /src/icu/source/test/cintltst/cnumtst.c:2019,1
    - Dst: TestNBSPPatternRT
      Src: /src/icu/source/test/cintltst/cnumtst.c:2023,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2040,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2040,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2008,1
    - Dst: TestNBSPPatternRT
      Src: /src/icu/source/test/cintltst/cnumtst.c:2011,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2008,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2021,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2027,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2032,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2032,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2021,1
    - Dst: TestNBSPPatternRT
      Src: /src/icu/source/test/cintltst/cnumtst.c:2042,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2043,1
    - Dst: TestNBSPPatternRT
      Src: /src/icu/source/test/cintltst/cnumtst.c:2034,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2035,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2038,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2039,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2020,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2030,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2031,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2047
      start: 1999
    functionDepth: 0
    functionLinenumber: 1999
    functionLinenumberEnd: 2047
    functionName: TestNBSPInPattern
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - unum_applyPattern
    - u_unescape
    - U_FAILURE
    - log_data_err
    - unum_close
    - unum_open
    - log_err
    - UPRV_LENGTHOF
    - TestNBSPPatternRT
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestNBSPInPattern(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:3025,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:3026,1
    - Dst: unum_applyPattern
      Src: /src/icu/source/test/cintltst/cnumtst.c:3029,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3027,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3027,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:3030,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnumtst.c:3031,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3031,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:3034,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:3035,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnumtst.c:3036,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:3039,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3036,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3041
      start: 3023
    functionDepth: 0
    functionLinenumber: 3023
    functionLinenumberEnd: 3041
    functionName: TestParseCurrPatternWithDecStyle
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - unum_applyPattern
    - U_FAILURE
    - unum_parseDouble
    - log_err_status
    - log_data_err
    - unum_close
    - U_SUCCESS
    - unum_open
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestParseCurrPatternWithDecStyle() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:3154,1
    - Dst: assertSuccessCheck
      Src: /src/icu/source/test/cintltst/cnumtst.c:3155,1
    - Dst: assertEquals
      Src: /src/icu/source/test/cintltst/cnumtst.c:3160,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3157,1
    - Dst: unum_parseDoubleCurrency
      Src: /src/icu/source/test/cintltst/cnumtst.c:3159,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3160,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:3161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3162
      start: 3150
    functionDepth: 0
    functionLinenumber: 3150
    functionLinenumberEnd: 3162
    functionName: Test12052_NullPointer
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - assertEquals
    - unum_setAttribute
    - unum_close
    - unum_parseDoubleCurrency
    - unum_open
    - assertSuccessCheck
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void Test12052_NullPointer() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1936,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1954,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1958,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:1957,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1938,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1937,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1948,1
    - Dst: exit
      Src: /src/icu/source/test/cintltst/cnumtst.c:1949,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1952,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1954,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1951,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1953,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1962,1
    - Dst: unum_setTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1941,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1938,1
    - Dst: unum_getTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1946,1
    - Dst: unum_setTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1947,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1960,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1961,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1962,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1949,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:1965,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1966,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:1968,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1969
      start: 1930
    functionDepth: 0
    functionLinenumber: 1930
    functionLinenumberEnd: 1969
    functionName: TestTextAttributeCrash
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - unum_getTextAttribute
    - U_FAILURE
    - log_data_err
    - exit
    - unum_close
    - unum_setTextAttribute
    - unum_formatDouble
    - unum_open
    - log_err
    - log_verbose
    - u_strcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestTextAttributeCrash(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:2059,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:2080,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:2099,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2098,1
    - Dst: u_strcat
      Src: /src/icu/source/test/cintltst/cnumtst.c:2096,1
    - Dst: unum_clone
      Src: /src/icu/source/test/cintltst/cnumtst.c:2101,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:2102,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2104,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2105,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:2107,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:2108,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2108,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:2108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2110
      start: 2048
    functionDepth: 0
    functionLinenumber: 2048
    functionLinenumberEnd: 2110
    functionName: TestCloneWithRBNF
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - log_data_err
    - unum_close
    - u_austrcpy
    - unum_formatDouble
    - unum_open
    - u_strcat
    - u_strcmp
    - unum_clone
    linkageType: ''
    returnType: void
    signature: 'static void TestCloneWithRBNF(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: unumsys_isAlgorithmic
      Src: /src/icu/source/test/cintltst/cnumtst.c:2490,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:2492,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2498,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/cnumtst.c:2517,1
    - Dst: unumsys_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2524,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2536,1
    - Dst: unumsys_getName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2491,1
    - Dst: unumsys_getDescription
      Src: /src/icu/source/test/cintltst/cnumtst.c:2496,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:2517,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2499,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2530,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2532,1
    - Dst: unumsys_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2486,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:2487,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2493,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2499,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2503,1
    - Dst: unumsys_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2501,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2503,1
    - Dst: unumsys_openByName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2519,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:2520,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:2522,1
    - Dst: unumsys_getRadix
      Src: /src/icu/source/test/cintltst/cnumtst.c:2489,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:2498,1
    - Dst: unumsys_openAvailableNames
      Src: /src/icu/source/test/cintltst/cnumtst.c:2511,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:2512,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:2523,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2526,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2527,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2536,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 73
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2539
      start: 2477
    functionDepth: 0
    functionLinenumber: 2477
    functionLinenumberEnd: 2539
    functionName: TestUNumberingSystem
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - unumsys_openByName
    - unumsys_open
    - unumsys_isAlgorithmic
    - uenum_next
    - U_FAILURE
    - unumsys_getRadix
    - log_data_err
    - unumsys_openAvailableNames
    - U_SUCCESS
    - unumsys_getDescription
    - unumsys_close
    - uprv_strcmp
    - myErrorName
    - log_err
    - uenum_close
    - unumsys_getName
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestUNumberingSystem(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2798,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2807,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:2811,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2807,1
    - Dst: unum_setSymbol
      Src: /src/icu/source/test/cintltst/cnumtst.c:2809,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2821,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2823,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2821,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:2801,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:2799,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2818,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2825,1
    - Dst: unum_toPattern
      Src: /src/icu/source/test/cintltst/cnumtst.c:2803,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2805,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2813,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2815,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2815,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2818,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2825,1
    - Dst: unum_applyPattern
      Src: /src/icu/source/test/cintltst/cnumtst.c:2800,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2804,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2805,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:2806,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2807,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:2810,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2813,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2812,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:2814,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2815,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2827
      start: 2796
    functionDepth: 0
    functionLinenumber: 2796
    functionLinenumberEnd: 2827
    functionName: TestCurrFmtNegSameAsPositive
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - unum_applyPattern
    - U_FAILURE
    - log_data_err
    - unum_close
    - U_SUCCESS
    - unum_toPattern
    - unum_open
    - log_err
    - myErrorName
    - unum_setSymbol
    - unum_formatDouble
    - u_strcmp
    - aescstrdup
    linkageType: ''
    returnType: void
    signature: 'static void TestCurrFmtNegSameAsPositive(void) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1308,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1322,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1327,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:1324,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnumtst.c:1327,1
    - Dst: unum_toPattern
      Src: /src/icu/source/test/cintltst/cnumtst.c:1341,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1361,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnumtst.c:1369,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1372,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1374,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1393,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1395,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1401,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1390,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1307,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1313,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1313,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1324,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1325,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1330,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1345,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:1349,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:1353,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1364,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:1378,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1395,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:1310,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1333,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnumtst.c:1340,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1343,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1345,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1356,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnumtst.c:1359,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1370,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1399,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1379,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:1406,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1383,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnumtst.c:1402,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:1311,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1310,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:1317,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1321,1
    - Dst: unum_toPattern
      Src: /src/icu/source/test/cintltst/cnumtst.c:1335,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1350,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:1354,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1374,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1392,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:1392,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1381,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1385,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1291
    functionDepth: 0
    functionLinenumber: 1291
    functionLinenumberEnd: 1407
    functionName: TestNumberFormatPadding
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - log_err_status
    - unum_close
    - U_SUCCESS
    - free
    - unum_open
    - U_FAILURE
    - unum_parseDouble
    - log_data_err
    - u_strlen
    - log_verbose
    - u_strncmp
    - u_uastrcpy
    - unum_toPattern
    - unum_formatDouble
    - log_err
    - malloc
    - austrdup
    - myErrorName
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestNumberFormatPadding() '
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: unum_parse
      Src: /src/icu/source/test/cintltst/cnumtst.c:1441,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1445,1
    - Dst: unum_parse
      Src: /src/icu/source/test/cintltst/cnumtst.c:1473,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1484,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1469,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1428,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1437,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1459,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1461,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1475,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1491,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:1533,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1483,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1516,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1477,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1509,1
    - Dst: unum_formatInt64
      Src: /src/icu/source/test/cintltst/cnumtst.c:1435,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1463,1
    - Dst: unum_formatInt64
      Src: /src/icu/source/test/cintltst/cnumtst.c:1467,1
    - Dst: unum_parse
      Src: /src/icu/source/test/cintltst/cnumtst.c:1505,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1501,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1534,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:1430,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1434,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:1450,1
    - Dst: withinErr
      Src: /src/icu/source/test/cintltst/cnumtst.c:1526,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1503,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1525,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1430,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1432,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1452,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1523,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:1514,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1443,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1451,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:1482,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1493,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1437,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1461,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1469,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1475,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1493,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1507,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:1505,1
    - Dst: withinErr
      Src: /src/icu/source/test/cintltst/cnumtst.c:1536,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:1540,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1484,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1525,1
    - Dst: unum_parseInt64
      Src: /src/icu/source/test/cintltst/cnumtst.c:1514,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1432,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1436,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1460,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1492,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1468,1
    - Dst: unum_parseInt64
      Src: /src/icu/source/test/cintltst/cnumtst.c:1482,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1454,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1501,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1507,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1486,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1527,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1518,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1533,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1500,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1531,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1439,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1471,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1535,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1429,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:1523,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1495,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1499,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1535,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1524,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:1473,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1431,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1443,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:1441,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1516,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1537,1
    - Dst: unum_parseInt64
      Src: /src/icu/source/test/cintltst/cnumtst.c:1450,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1452,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:1459,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:1491,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 154
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1541
    functionName: TestInt64Format
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - withinErr
    - unum_formatInt64
    - U_FAILURE
    - unum_setAttribute
    - unum_parseDouble
    - log_data_err
    - unum_close
    - unum_parseInt64
    - u_strlen
    - myErrorName
    - unum_open
    - log_verbose
    - log_err
    - unum_parse
    - unum_formatDouble
    linkageType: ''
    returnType: void
    signature: 'static void TestInt64Format() '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2138,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:2140,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:2146,1
    - Dst: ASSERT_TRUE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2143,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2154,1
    - Dst: ASSERT_TRUE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2158,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2179,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:2181,1
    - Dst: ASSERT_TRUE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2187,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2196,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:2201,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2187,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2122,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:2130,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2124,1
    - Dst: ASSERT_TRUE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2134,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2143,1
    - Dst: unum_parse
      Src: /src/icu/source/test/cintltst/cnumtst.c:2152,1
    - Dst: ASSERT_TRUE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2168,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:2171,1
    - Dst: ASSERT_TRUE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2175,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2184,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2197,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2204,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2135,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2136,1
    - Dst: ASSERT_TRUE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2148,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2165,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2166,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2168,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2176,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2177,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:2185,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2199,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2197,1
    - Dst: ASSERT_TRUE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2195,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:2191,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2125,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2125,1
    - Dst: unum_parse
      Src: /src/icu/source/test/cintltst/cnumtst.c:2133,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2136,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2145,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2148,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:2156,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2162,1
    - Dst: unum_parse
      Src: /src/icu/source/test/cintltst/cnumtst.c:2174,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2177,1
    - Dst: unum_parse
      Src: /src/icu/source/test/cintltst/cnumtst.c:2194,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 94
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2205
      start: 2113
    functionDepth: 0
    functionLinenumber: 2113
    functionLinenumberEnd: 2205
    functionName: TestNoExponent
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - unum_getAttribute
    - U_FAILURE
    - unum_setAttribute
    - assertSuccess
    - log_data_err
    - unum_close
    - unum_open
    - unum_parse
    - log_verbose
    - log_err
    - ASSERT_TRUE
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestNoExponent(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - roundIncr
    - maxFrac
    argTypes:
    - double
    - int32_t
    constantsTouched: []
    func_position:
      end: 3320
      start: 3312
    functionDepth: 0
    functionLinenumber: 3312
    functionLinenumberEnd: 3320
    functionName: ignoreRoundingIncrement
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool ignoreRoundingIncrement(double roundIncr, int32_t maxFrac) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1009,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1015,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1016,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1011,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1014,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1016,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1018,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:1020,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1021
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1021
    functionName: TestParseZero
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - unum_parseDouble
    - U_FAILURE
    - log_data_err
    - unum_close
    - unum_open
    - log_verbose
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestParseZero(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2220,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2239,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2240,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2232,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2240,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2264,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:2269,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:2271,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2272,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2272,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2276,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2221,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2221,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/cnumtst.c:2216,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2231,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2232,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2240,1
    - Dst: ASSERT_TRUE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2246,1
    - Dst: unum_formatInt64
      Src: /src/icu/source/test/cintltst/cnumtst.c:2254,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2263,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2264,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2225,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:2237,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2240,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:2239,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2246,1
    - Dst: ASSERT_TRUE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2250,1
    - Dst: ASSERT_TRUE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2255,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2271,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2272,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2272,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2264,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2213,1
    - Dst: unum_formatInt64
      Src: /src/icu/source/test/cintltst/cnumtst.c:2229,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:2231,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2232,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2232,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2248,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2250,1
    - Dst: unum_formatInt64
      Src: /src/icu/source/test/cintltst/cnumtst.c:2261,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:2263,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2264,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 71
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2277
      start: 2207
    functionDepth: 0
    functionLinenumber: 2207
    functionLinenumberEnd: 2277
    functionName: TestMaxInt
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - unum_formatInt64
    - unum_getAttribute
    - ASSERT_TRUE
    - U_FAILURE
    - unum_setAttribute
    - log_data_err
    - unum_close
    - austrdup
    - u_strlen
    - unum_formatDouble
    - unum_open
    - log_err
    - u_strcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestMaxInt(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ufieldpositer_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:3105,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:3114,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:3115,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3117,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3117,1
    - Dst: unum_formatDoubleForFields
      Src: /src/icu/source/test/cintltst/cnumtst.c:3120,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3122,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:3131,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3122,1
    - Dst: ufieldpositer_next
      Src: /src/icu/source/test/cintltst/cnumtst.c:3127,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:3106,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3107,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:3116,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:3121,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3130,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:3134,1
    - Dst: ufieldpositer_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:3146,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3107,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3133,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:3143,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3148
      start: 3103
    functionDepth: 0
    functionLinenumber: 3103
    functionLinenumberEnd: 3148
    functionName: TestFormatForFields
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - ufieldpositer_close
    - U_FAILURE
    - unum_formatDoubleForFields
    - ufieldpositer_open
    - log_data_err
    - ufieldpositer_next
    - unum_close
    - unum_open
    - log_err
    - u_errorName
    - aescstrdup
    linkageType: ''
    returnType: void
    signature: 'static void TestFormatForFields(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3333,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:3332,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3333,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3339,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3349,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3374,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3374,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3384,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3384,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3388,1
    - Dst: unum_setDoubleAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3340,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3344,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3355,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3359,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:3373,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:3376,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:3377,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:3382,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:3383,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:3386,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3337,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3346,1
    - Dst: unum_toPattern
      Src: /src/icu/source/test/cintltst/cnumtst.c:3371,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:3375,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3378,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:3385,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:3331,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3338,1
    - Dst: ignoreRoundingIncrement
      Src: /src/icu/source/test/cintltst/cnumtst.c:3342,1
    - Dst: unum_getDoubleAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3362,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3351,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3366,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:3391,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:3387,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3393
      start: 3323
    functionDepth: 0
    functionLinenumber: 3323
    functionLinenumberEnd: 3393
    functionName: TestSetMaxFracAndRoundIncr
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - unum_getAttribute
    - U_FAILURE
    - unum_setAttribute
    - ignoreRoundingIncrement
    - log_data_err
    - unum_close
    - unum_toPattern
    - unum_open
    - unum_setDoubleAttribute
    - log_err
    - unum_formatDouble
    - u_strcmp
    - unum_getDoubleAttribute
    - u_errorName
    - u_austrcpy
    linkageType: ''
    returnType: void
    signature: 'static void TestSetMaxFracAndRoundIncr(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/cnumtst.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - f
    - l
    - msg
    argTypes:
    - char*
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: tagAssert
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: char*
    signature: 'static const char *tagAssert(const char *f, int32_t l, const char
      *msg) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1195,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1197,1
    - Dst: unum_parse
      Src: /src/icu/source/test/cintltst/cnumtst.c:1201,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnumtst.c:1197,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1196,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1203,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1205,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1206,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:1208,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1210
    functionName: TestSpelloutNumberParse
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_err_status
    - unum_close
    - myErrorName
    - unum_open
    - unum_parse
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestSpelloutNumberParse() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1239,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:1251,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1223,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:1246,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1247,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/cnumtst.c:1250,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1243,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1249,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1222,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1225,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/cnumtst.c:1238,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1241,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1243,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1225,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1224,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1228,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1229,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1231,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1233,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1212
    functionDepth: 0
    functionLinenumber: 1212
    functionLinenumberEnd: 1252
    functionName: TestSignificantDigits
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - malloc
    - U_FAILURE
    - unum_setAttribute
    - log_data_err
    - unum_close
    - free
    - unum_formatDouble
    - unum_open
    - log_err
    - myErrorName
    - log_verbose
    - u_strcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestSignificantDigits() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1271,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1274,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1277,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1280,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1284,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1278,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1266,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:1288,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1264,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1266,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1265,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1269,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1270,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1286,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1286,1
    - Dst: unum_setDoubleAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1275,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnumtst.c:1277,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1280,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1286,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:1285,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1289
    functionName: TestSigDigRounding
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - U_FAILURE
    - unum_setAttribute
    - log_data_err
    - unum_close
    - unum_formatDouble
    - unum_open
    - unum_setDoubleAttribute
    - log_err
    - myErrorName
    - UPRV_LENGTHOF
    - u_strcmp
    - u_errorName
    - u_austrcpy
    linkageType: ''
    returnType: void
    signature: 'static void TestSigDigRounding() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1694,1
    - Dst: unum_getSymbol
      Src: /src/icu/source/test/cintltst/cnumtst.c:1699,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1696,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1696,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1695,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnumtst.c:1702,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:1704,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1705,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:1708,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1687
    functionDepth: 0
    functionLinenumber: 1687
    functionLinenumberEnd: 1709
    functionName: TestNonExistentCurrency
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_data_err
    - unum_close
    - unum_open
    - unum_getSymbol
    - log_err
    - UPRV_LENGTHOF
    - u_strcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestNonExistentCurrency() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1976,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1979,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1977,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1978,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1977,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1979,1
    - Dst: unum_parse
      Src: /src/icu/source/test/cintltst/cnumtst.c:1982,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1983,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1984,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1984,1
    - Dst: uprv_fabs
      Src: /src/icu/source/test/cintltst/cnumtst.c:1987,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1988,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:1990,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - testcase
    - line
    - nf
    - myNumber
    argTypes:
    - char*
    - int
    - UNumberFormat*
    - double
    constantsTouched: []
    func_position:
      end: 1992
      start: 1971
    functionDepth: 0
    functionLinenumber: 1971
    functionLinenumberEnd: 1992
    functionName: TestNBSPPatternRtNum
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - uprv_fabs
    - unum_formatDouble
    - log_verbose
    - log_err
    - unum_parse
    - u_errorName
    - u_austrcpy
    linkageType: ''
    returnType: void
    signature: 'static void TestNBSPPatternRtNum(const char *testcase, int line, UNumberFormat
      *nf, double myNumber) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1848,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1853,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1850,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1859,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:1865,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1868,1
    - Dst: U_ASSERT
      Src: /src/icu/source/test/cintltst/cnumtst.c:1839,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnumtst.c:1842,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1842,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1849,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1850,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1853,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1852,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1861,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1864,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:1833,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnumtst.c:1835,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1835,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:1845,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1846,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1855,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:1857,1
    - Dst: U_ASSERT
      Src: /src/icu/source/test/cintltst/cnumtst.c:1860,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:1838,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1834,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:1841,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1844,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1856,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:1857,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cnumtst.c:1862,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:1862,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:1867,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:1870,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1828
    functionDepth: 0
    functionLinenumber: 1828
    functionLinenumberEnd: 1871
    functionName: TestRBNFRounding
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - U_ASSERT
    - u_uastrcpy
    - unum_getAttribute
    - U_FAILURE
    - unum_setAttribute
    - log_err_status
    - unum_close
    - unum_formatDouble
    - unum_open
    - log_err
    - u_strcmp
    - u_errorName
    - u_austrcpy
    linkageType: ''
    returnType: void
    signature: 'static void TestRBNFRounding() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2320,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2329,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/cnumtst.c:2330,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:2328,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2327,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2331,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:2333,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2334,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/cnumtst.c:2335,1
    - Dst: assertIntEquals
      Src: /src/icu/source/test/cintltst/cnumtst.c:2336,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2338
      start: 2318
    functionDepth: 0
    functionLinenumber: 2318
    functionLinenumberEnd: 2338
    functionName: TestParseCaseSensitive
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - assertIntEquals
    - assertSuccess
    - unum_setAttribute
    - unum_parseDouble
    - unum_close
    - unum_open
    linkageType: ''
    returnType: void
    signature: 'static void TestParseCaseSensitive(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestNBSPPatternRtNum
      Src: /src/icu/source/test/cintltst/cnumtst.c:1995,1
    - Dst: TestNBSPPatternRtNum
      Src: /src/icu/source/test/cintltst/cnumtst.c:1996,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - testcase
    - nf
    argTypes:
    - char*
    - UNumberFormat*
    constantsTouched: []
    func_position:
      end: 1997
      start: 1994
    functionDepth: 0
    functionLinenumber: 1994
    functionLinenumberEnd: 1997
    functionName: TestNBSPPatternRT
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - TestNBSPPatternRtNum
    linkageType: ''
    returnType: void
    signature: 'static void TestNBSPPatternRT(const char *testcase, UNumberFormat
      *nf) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: unum_parseToUFormattable
      Src: /src/icu/source/test/cintltst/cnumtst.c:2351,1
    - Dst: ufmt_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2355,1
    - Dst: ufmt_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2369,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:2374,1
    - Dst: ufmt_getType
      Src: /src/icu/source/test/cintltst/cnumtst.c:2379,1
    - Dst: ufmt_getLong
      Src: /src/icu/source/test/cintltst/cnumtst.c:2380,1
    - Dst: unum_parseToUFormattable
      Src: /src/icu/source/test/cintltst/cnumtst.c:2391,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2392,1
    - Dst: ufmt_getDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:2393,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cnumtst.c:2395,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2432,1
    - Dst: withinErr
      Src: /src/icu/source/test/cintltst/cnumtst.c:2393,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:2415,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2441,1
    - Dst: unum_formatUFormattable
      Src: /src/icu/source/test/cintltst/cnumtst.c:2426,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:2434,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2400,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2427,1
    - Dst: ufmt_getDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:2431,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2345,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cnumtst.c:2357,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2359,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cnumtst.c:2379,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2385,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:2389,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2394,1
    - Dst: unum_formatUFormattable
      Src: /src/icu/source/test/cintltst/cnumtst.c:2398,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2399,1
    - Dst: assertEquals
      Src: /src/icu/source/test/cintltst/cnumtst.c:2400,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2418,1
    - Dst: assertEquals
      Src: /src/icu/source/test/cintltst/cnumtst.c:2428,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:2424,1
    - Dst: ufmt_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2442,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2428,1
    - Dst: ufmt_getLong
      Src: /src/icu/source/test/cintltst/cnumtst.c:2434,1
    - Dst: ufmt_getLong
      Src: /src/icu/source/test/cintltst/cnumtst.c:2378,1
    - Dst: unum_formatUFormattable
      Src: /src/icu/source/test/cintltst/cnumtst.c:2383,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2384,1
    - Dst: assertEquals
      Src: /src/icu/source/test/cintltst/cnumtst.c:2385,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2385,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:2390,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cnumtst.c:2393,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:2396,1
    - Dst: ufmt_getDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:2396,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2400,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cnumtst.c:2425,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cnumtst.c:2435,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:2380,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2423,1
    - Dst: unum_parseToUFormattable
      Src: /src/icu/source/test/cintltst/cnumtst.c:2421,1
    - Dst: ufmt_isNumeric
      Src: /src/icu/source/test/cintltst/cnumtst.c:2352,1
    - Dst: assertSuccessCheck
      Src: /src/icu/source/test/cintltst/cnumtst.c:2346,1
    - Dst: ufmt_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2350,1
    - Dst: ufmt_getLong
      Src: /src/icu/source/test/cintltst/cnumtst.c:2353,1
    - Dst: assertSuccessCheck
      Src: /src/icu/source/test/cintltst/cnumtst.c:2371,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:2375,1
    - Dst: assertTrue
      Src: /src/icu/source/test/cintltst/cnumtst.c:2378,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2370,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2377,1
    - Dst: unum_parseToUFormattable
      Src: /src/icu/source/test/cintltst/cnumtst.c:2376,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2428,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cnumtst.c:2431,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2381,1
    - Dst: ufmt_isNumeric
      Src: /src/icu/source/test/cintltst/cnumtst.c:2425,1
    - Dst: assertSuccessCheck
      Src: /src/icu/source/test/cintltst/cnumtst.c:2419,1
    - Dst: ufmt_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2403,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2435,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:2416,1
    - Dst: ufmt_getType
      Src: /src/icu/source/test/cintltst/cnumtst.c:2395,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2404,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 95
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2444
      start: 2340
    functionDepth: 0
    functionLinenumber: 2340
    functionLinenumberEnd: 2444
    functionName: TestUFormattable
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - unum_close
    - unum_open
    - assertTrue
    - U_FAILURE
    - ufmt_isNumeric
    - log_verbose
    - ufmt_getLong
    - assertEquals
    - u_uastrcpy
    - withinErr
    - ufmt_open
    - assertSuccessCheck
    - assertSuccess
    - ufmt_getDouble
    - unum_formatUFormattable
    - austrdup
    - ufmt_close
    - ufmt_getType
    - unum_parseToUFormattable
    linkageType: ''
    returnType: void
    signature: 'static void TestUFormattable(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnumtst.c:2593,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2606,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2613,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2607,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2607,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2612,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2621,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2625,1
    - Dst: atof
      Src: /src/icu/source/test/cintltst/cnumtst.c:2595,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnumtst.c:2597,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/cnumtst.c:2610,1
    - Dst: unum_setTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2611,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cnumtst.c:2619,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:2615,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2616,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:2620,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2605,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2617,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2617,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2628
      start: 2543
    functionDepth: 0
    functionLinenumber: 2543
    functionLinenumberEnd: 2628
    functionName: TestCurrencyIsoPluralFormat
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - u_unescape
    - U_FAILURE
    - log_data_err
    - unum_close
    - unum_setTextAttribute
    - myErrorName
    - unum_open
    - log_err
    - unum_formatDouble
    - atof
    - UPRV_LENGTHOF
    - u_strncmp
    - u_charsToUChars
    linkageType: ''
    returnType: void
    signature: 'static void TestCurrencyIsoPluralFormat(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2732,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2734,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2733,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2735,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2744,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2747,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2748,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnumtst.c:2751,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/cnumtst.c:2759,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:2765,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2776,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnumtst.c:2760,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:2769,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2767,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cnumtst.c:2760,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2770,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2771,1
    - Dst: unum_getAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2740,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2741,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cnumtst.c:2765,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/cnumtst.c:2763,1
    - Dst: unum_setTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2762,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/cnumtst.c:2771,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2778
      start: 2703
    functionDepth: 0
    functionLinenumber: 2703
    functionLinenumberEnd: 2778
    functionName: TestCurrencyUsage
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - unum_getAttribute
    - u_unescape
    - U_FAILURE
    - unum_setAttribute
    - assertSuccess
    - log_data_err
    - unum_close
    - unum_setTextAttribute
    - myErrorName
    - unum_open
    - log_err
    - unum_formatDouble
    - UPRV_LENGTHOF
    - u_strcmp
    - u_charsToUChars
    - aescstrdup
    linkageType: ''
    returnType: void
    signature: 'static void TestCurrencyUsage(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2983,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2985,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2989,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2985,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2984,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:2993,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cnumtst.c:3001,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:3002,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:3003,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3004,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3005,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/cnumtst.c:3009,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3011,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:3015,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:3006,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/cnumtst.c:3010,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3018
      start: 2979
    functionDepth: 0
    functionLinenumber: 2979
    functionLinenumberEnd: 3018
    functionName: TestVariousStylesAndAttributes
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - u_unescape
    - U_FAILURE
    - unum_setAttribute
    - log_data_err
    - unum_close
    - unum_formatDouble
    - unum_open
    - log_err
    - u_strncmp
    - u_strToUTF8
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestVariousStylesAndAttributes(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3405,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3407,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:3421,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:3425,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3426,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3430,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:3433,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:3397,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3402,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:3404,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3405,1
    - Dst: unum_applyPattern
      Src: /src/icu/source/test/cintltst/cnumtst.c:3424,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:3431,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:3439,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3399,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3401,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:3398,1
    - Dst: unum_setTextAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3403,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3416,1
    - Dst: unum_toPattern
      Src: /src/icu/source/test/cintltst/cnumtst.c:3414,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3422,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:3429,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3434,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3399,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3408,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3416,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:3415,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3409,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3411,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3410,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3426,1
    - Dst: unum_formatDecimal
      Src: /src/icu/source/test/cintltst/cnumtst.c:3428,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3430,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 54
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3441
      start: 3395
    functionDepth: 0
    functionLinenumber: 3395
    functionLinenumberEnd: 3441
    functionName: TestIgnorePadding
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - unum_applyPattern
    - U_FAILURE
    - unum_setAttribute
    - unum_formatDecimal
    - log_data_err
    - u_austrncpy
    - unum_close
    - unum_setTextAttribute
    - unum_toPattern
    - unum_open
    - log_err
    - u_strcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestIgnorePadding(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:3446,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:3447,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3448,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3455,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3448,1
    - Dst: unum_setAttribute
      Src: /src/icu/source/test/cintltst/cnumtst.c:3456,1
    - Dst: unum_toPattern
      Src: /src/icu/source/test/cintltst/cnumtst.c:3457,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:3458,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:3459,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/cnumtst.c:3460,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:3465,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:3466,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:3467,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:3473,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3470,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:3469,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:3468,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:3467,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 3475
      start: 3443
    functionDepth: 0
    functionLinenumber: 3443
    functionLinenumberEnd: 3475
    functionName: TestSciNotationMaxFracCap
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - log_info
    - U_FAILURE
    - unum_setAttribute
    - log_data_err
    - u_austrncpy
    - unum_close
    - U_SUCCESS
    - unum_toPattern
    - unum_open
    - unum_formatDouble
    - log_err
    - u_strncmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestSciNotationMaxFracCap(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/cnumtst.c:2655,1
    - Dst: unum_setContext
      Src: /src/icu/source/test/cintltst/cnumtst.c:2661,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2664,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2666,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2678,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2668,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2679,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2668,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/cnumtst.c:2689,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/cintltst/cnumtst.c:2692,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2658,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/cnumtst.c:2690,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2693,1
    - Dst: unum_close
      Src: /src/icu/source/test/cintltst/cnumtst.c:2698,1
    - Dst: unum_getContext
      Src: /src/icu/source/test/cintltst/cnumtst.c:2662,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2663,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2676,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/test/cintltst/cnumtst.c:2683,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2677,1
    - Dst: unum_setContext
      Src: /src/icu/source/test/cintltst/cnumtst.c:2682,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2684,1
    - Dst: unum_open
      Src: /src/icu/source/test/cintltst/cnumtst.c:2654,1
    - Dst: unum_getContext
      Src: /src/icu/source/test/cintltst/cnumtst.c:2656,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cnumtst.c:2657,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cnumtst.c:2685,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cnumtst.c:2686,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2701
      start: 2650
    functionDepth: 0
    functionLinenumber: 2650
    functionLinenumberEnd: 2701
    functionName: TestContext
    functionSourceFile: /src/icu/source/test/cintltst/cnumtst.c
    functionUses: []
    functionsReached:
    - unum_getContext
    - u_unescape
    - U_FAILURE
    - log_data_err
    - u_austrncpy
    - unum_close
    - U_SUCCESS
    - myErrorName
    - unum_open
    - log_err
    - unum_formatDouble
    - u_strncmp
    - unum_setContext
    linkageType: ''
    returnType: void
    signature: 'static void TestContext(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cdetst.c:94,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cdetst.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: addGermanCollTest
    functionSourceFile: /src/icu/source/test/cintltst/cdetst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addGermanCollTest(TestNode** root) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cdetst.c:126,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cdetst.c:128,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdetst.c:128,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdetst.c:131,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdetst.c:127,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cdetst.c:132,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cdetst.c:135,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cdetst.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 138
    functionName: TestPrimary
    functionSourceFile: /src/icu/source/test/cintltst/cdetst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - log_verbose
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestPrimary() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cdetst.c:106,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cdetst.c:108,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cdetst.c:111,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cdetst.c:108,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cdetst.c:107,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/cdetst.c:112,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cdetst.c:113,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cdetst.c:116,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cdetst.c:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 119
    functionName: TestTertiary
    functionSourceFile: /src/icu/source/test/cintltst/cdetst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - ucol_setAttribute
    - doTest
    - myErrorName
    - log_verbose
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestTertiary( ) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/icu/source/test/cintltst/nfsprep.c:161,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - sortedArr
    - sortedArrLen
    - target
    - targetLen
    argTypes:
    - char**
    - int32_t
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 172
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 172
    functionName: findStringIndex
    functionSourceFile: /src/icu/source/test/cintltst/nfsprep.c
    functionUses: []
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: 'static int findStringIndex(const char* const *sortedArr, int32_t sortedArrLen,
      const char* target, int32_t targetLen) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nfsprep.c:222,1
    - Dst: getPrefixSuffix
      Src: /src/icu/source/test/cintltst/nfsprep.c:232,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/nfsprep.c:230,1
    - Dst: nfs4_prepare
      Src: /src/icu/source/test/cintltst/nfsprep.c:235,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nfsprep.c:238,1
    - Dst: nfs4_prepare
      Src: /src/icu/source/test/cintltst/nfsprep.c:243,1
    - Dst: nfs4_prepare
      Src: /src/icu/source/test/cintltst/nfsprep.c:248,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nfsprep.c:251,1
    - Dst: nfs4_prepare
      Src: /src/icu/source/test/cintltst/nfsprep.c:256,1
    - Dst: memmove
      Src: /src/icu/source/test/cintltst/nfsprep.c:261,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nfsprep.c:271,1
    - Dst: memmove
      Src: /src/icu/source/test/cintltst/nfsprep.c:265,1
    - Dst: u_terminateChars
      Src: /src/icu/source/test/cintltst/nfsprep.c:277,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nfsprep.c:274,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 67
    argCount: 6
    argNames:
    - src
    - srcLength
    - dest
    - destCapacity
    - parseError
    - status
    argTypes:
    - char*
    - int32_t
    - char*
    - int32_t
    - UParseError*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 278
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 278
    functionName: nfs4_mixed_prepare
    functionSourceFile: /src/icu/source/test/cintltst/nfsprep.c
    functionUses: []
    functionsReached:
    - getPrefixSuffix
    - malloc
    - U_FAILURE
    - nfs4_prepare
    - memmove
    - free
    - u_terminateChars
    - strlen
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t nfs4_mixed_prepare( const char* src, int32_t srcLength, char*
      dest, int32_t destCapacity, UParseError* parseError, UErrorCode* status) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: findStringIndex
      Src: /src/icu/source/test/cintltst/nfsprep.c:199,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/nfsprep.c:199,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 7
    argNames:
    - src
    - srcLength
    - prefix
    - prefixLen
    - suffix
    - suffixLen
    - status
    argTypes:
    - char*
    - int32_t
    - char**
    - int32_t*
    - char**
    - int32_t*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 204
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 204
    functionName: getPrefixSuffix
    functionSourceFile: /src/icu/source/test/cintltst/nfsprep.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - findStringIndex
    linkageType: ''
    returnType: void
    signature: 'static void getPrefixSuffix(const char *src, int32_t srcLength, const
      char **prefix, int32_t *prefixLen, const char **suffix, int32_t *suffixLen,
      UErrorCode *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nfs4_prepare
      Src: /src/icu/source/test/cintltst/nfsprep.c:285,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 6
    argNames:
    - src
    - srcLength
    - dest
    - destCapacity
    - parseError
    - status
    argTypes:
    - char*
    - int32_t
    - char*
    - int32_t
    - UParseError*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 286
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 286
    functionName: nfs4_cis_prepare
    functionSourceFile: /src/icu/source/test/cintltst/nfsprep.c
    functionUses: []
    functionsReached:
    - nfs4_prepare
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t nfs4_cis_prepare( const char* src, int32_t srcLength, char*
      dest, int32_t destCapacity, UParseError* parseError, UErrorCode* status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nfs4_prepare
      Src: /src/icu/source/test/cintltst/nfsprep.c:296,1
    - Dst: nfs4_prepare
      Src: /src/icu/source/test/cintltst/nfsprep.c:298,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 7
    argNames:
    - src
    - srcLength
    - dest
    - destCapacity
    - isCaseSensitive
    - parseError
    - status
    argTypes:
    - char*
    - int32_t
    - char*
    - int32_t
    - UBool
    - UParseError*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 300
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 300
    functionName: nfs4_cs_prepare
    functionSourceFile: /src/icu/source/test/cintltst/nfsprep.c
    functionUses: []
    functionsReached:
    - nfs4_prepare
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t nfs4_cs_prepare( const char* src, int32_t srcLength, char*
      dest, int32_t destCapacity, UBool isCaseSensitive, UParseError* parseError,
      UErrorCode* status) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/nfsprep.c:64,1
    - Dst: u_strFromUTF8
      Src: /src/icu/source/test/cintltst/nfsprep.c:87,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/nfsprep.c:71,1
    - Dst: u_strFromUTF8
      Src: /src/icu/source/test/cintltst/nfsprep.c:74,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nfsprep.c:80,1
    - Dst: usprep_open
      Src: /src/icu/source/test/cintltst/nfsprep.c:91,1
    - Dst: usprep_prepare
      Src: /src/icu/source/test/cintltst/nfsprep.c:93,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nfsprep.c:96,1
    - Dst: usprep_prepare
      Src: /src/icu/source/test/cintltst/nfsprep.c:101,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/nfsprep.c:105,1
    - Dst: memmove
      Src: /src/icu/source/test/cintltst/nfsprep.c:119,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nfsprep.c:124,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nfsprep.c:127,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/nfsprep.c:108,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/nfsprep.c:114,1
    - Dst: u_terminateChars
      Src: /src/icu/source/test/cintltst/nfsprep.c:133,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/nfsprep.c:130,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 72
    argCount: 7
    argNames:
    - src
    - srcLength
    - dest
    - destCapacity
    - state
    - parseError
    - status
    argTypes:
    - char*
    - int32_t
    - char*
    - int32_t
    - NFS4ProfileState
    - UParseError*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 134
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 134
    functionName: nfs4_prepare
    functionSourceFile: /src/icu/source/test/cintltst/nfsprep.c
    functionUses: []
    functionsReached:
    - malloc
    - usprep_open
    - U_FAILURE
    - loadTestData
    - usprep_prepare
    - memmove
    - u_strToUTF8
    - free
    - u_terminateChars
    - u_strFromUTF8
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t nfs4_prepare( const char* src, int32_t srcLength, char* dest,
      int32_t destCapacity, NFS4ProfileState state, UParseError* parseError, UErrorCode*
      status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:125,1
    - Dst: UTF16_CHAR_LENGTH
      Src: /src/icu/source/test/cintltst/utf16tst.c:129,1
    - Dst: U16_LENGTH
      Src: /src/icu/source/test/cintltst/utf16tst.c:132,1
    - Dst: U16_LENGTH
      Src: /src/icu/source/test/cintltst/utf16tst.c:131,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:132,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/utf16tst.c:134,1
    - Dst: U16_LENGTH
      Src: /src/icu/source/test/cintltst/utf16tst.c:134,1
    - Dst: UTF16_NEED_MULTIPLE_UCHAR
      Src: /src/icu/source/test/cintltst/utf16tst.c:138,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 143
    functionName: TestCharLength
    functionSourceFile: /src/icu/source/test/cintltst/utf16tst.c
    functionUses: []
    functionsReached:
    - UTF16_NEED_MULTIPLE_UCHAR
    - U16_LENGTH
    - log_verbose
    - log_err
    - UTF16_CHAR_LENGTH
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestCharLength() '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: U16_GET_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:192,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:194,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:206,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:215,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:209,1
    - Dst: UTF16_GET_CHAR_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:187,1
    - Dst: UTF16_GET_CHAR_SAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:199,1
    - Dst: U16_GET_OR_FFFD
      Src: /src/icu/source/test/cintltst/utf16tst.c:209,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:204,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:184,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:185,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:189,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:201,1
    - Dst: U16_GET
      Src: /src/icu/source/test/cintltst/utf16tst.c:204,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/utf16tst.c:210,1
    - Dst: UTF16_GET_CHAR_SAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:215,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:212,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:199,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:217,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 222
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 222
    functionName: TestGetChar
    functionSourceFile: /src/icu/source/test/cintltst/utf16tst.c
    functionUses: []
    functionsReached:
    - UTF16_GET_CHAR_UNSAFE
    - U16_GET_OR_FFFD
    - UTF16_GET_CHAR_SAFE
    - log_err
    - U16_GET
    - UPRV_LENGTHOF
    - U16_GET_UNSAFE
    - U_IS_SURROGATE
    linkageType: ''
    returnType: void
    signature: 'static void TestGetChar() '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:267,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:277,1
    - Dst: UTF16_NEXT_CHAR_SAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:286,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:288,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:302,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/utf16tst.c:311,1
    - Dst: U16_NEXT
      Src: /src/icu/source/test/cintltst/utf16tst.c:296,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:334,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:344,1
    - Dst: UTF16_PREV_CHAR_SAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:352,1
    - Dst: U16_PREV_OR_FFFD
      Src: /src/icu/source/test/cintltst/utf16tst.c:373,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:348,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:369,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:358,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:308,1
    - Dst: UTF16_NEXT_CHAR_SAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:317,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:323,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:338,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:364,1
    - Dst: UTF16_PREV_CHAR_SAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:384,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:390,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:262,1
    - Dst: U16_NEXT_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:275,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:271,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:281,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:286,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:292,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:306,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:298,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:313,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:329,1
    - Dst: U16_PREV_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:342,1
    - Dst: UTF16_NEXT_CHAR_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:265,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:296,1
    - Dst: U16_NEXT_OR_FFFD
      Src: /src/icu/source/test/cintltst/utf16tst.c:306,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:317,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:319,1
    - Dst: UTF16_PREV_CHAR_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:332,1
    - Dst: U16_PREV
      Src: /src/icu/source/test/cintltst/utf16tst.c:362,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/utf16tst.c:378,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:380,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:386,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:375,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:354,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 160
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 396
    functionName: TestNextPrevChar
    functionSourceFile: /src/icu/source/test/cintltst/utf16tst.c
    functionUses: []
    functionsReached:
    - U16_PREV_OR_FFFD
    - UTF16_PREV_CHAR_UNSAFE
    - U16_NEXT_OR_FFFD
    - U16_NEXT
    - U16_PREV
    - U16_PREV_UNSAFE
    - U16_NEXT_UNSAFE
    - UTF16_PREV_CHAR_SAFE
    - log_err
    - UTF16_NEXT_CHAR_UNSAFE
    - UTF16_NEXT_CHAR_SAFE
    - UPRV_LENGTHOF
    - U_IS_SURROGATE
    linkageType: ''
    returnType: void
    signature: 'static void TestNextPrevChar() '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: U16_NEXT
      Src: /src/icu/source/test/cintltst/utf16tst.c:423,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:432,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:426,1
    - Dst: U16_NEXT_OR_FFFD
      Src: /src/icu/source/test/cintltst/utf16tst.c:429,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/utf16tst.c:430,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:435,1
    - Dst: U16_FWD_1
      Src: /src/icu/source/test/cintltst/utf16tst.c:438,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:440,1
    - Dst: U16_FWD_N
      Src: /src/icu/source/test/cintltst/utf16tst.c:449,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:451,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/utf16tst.c:465,1
    - Dst: U16_GET
      Src: /src/icu/source/test/cintltst/utf16tst.c:460,1
    - Dst: U16_GET_OR_FFFD
      Src: /src/icu/source/test/cintltst/utf16tst.c:464,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:462,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:467,1
    - Dst: U16_SET_CP_LIMIT
      Src: /src/icu/source/test/cintltst/utf16tst.c:471,1
    - Dst: U16_NEXT
      Src: /src/icu/source/test/cintltst/utf16tst.c:458,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:473,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 477
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 477
    functionName: TestNulTerminated
    functionSourceFile: /src/icu/source/test/cintltst/utf16tst.c
    functionUses: []
    functionsReached:
    - U16_FWD_N
    - U16_NEXT_OR_FFFD
    - U16_FWD_1
    - U16_NEXT
    - U16_GET_OR_FFFD
    - U16_SET_CP_LIMIT
    - log_err
    - U16_GET
    - U_IS_SURROGATE
    linkageType: ''
    returnType: void
    signature: 'static void TestNulTerminated() '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:505,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:567,1
    - Dst: U16_FWD_N_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:589,1
    - Dst: UTF16_FWD_N_SAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:597,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:599,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:611,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:627,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:591,1
    - Dst: UTF16_BACK_N_SAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:629,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:631,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:620,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:639,1
    - Dst: UTF16_FWD_1_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:496,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:508,1
    - Dst: U16_FWD_1
      Src: /src/icu/source/test/cintltst/utf16tst.c:526,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:528,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:526,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:533,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:550,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:555,1
    - Dst: UTF16_BACK_1_SAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:559,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:561,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:596,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:636,1
    - Dst: U16_BACK_N_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:621,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:628,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:583,1
    - Dst: U16_FWD_N
      Src: /src/icu/source/test/cintltst/utf16tst.c:605,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:495,1
    - Dst: UTF16_FWD_1_SAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:516,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:516,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:518,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:525,1
    - Dst: UTF16_BACK_1_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:537,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:539,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:534,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:556,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:566,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:597,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:612,1
    - Dst: UTF16_BACK_N_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:613,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:615,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:619,1
    - Dst: U16_FWD_1_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:506,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:498,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:515,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:544,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:545,1
    - Dst: U16_BACK_1_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:548,1
    - Dst: U16_BACK_1
      Src: /src/icu/source/test/cintltst/utf16tst.c:570,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:572,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:604,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:605,1
    - Dst: U16_BACK_N
      Src: /src/icu/source/test/cintltst/utf16tst.c:637,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:580,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:623,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:635,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:588,1
    - Dst: UTF16_FWD_N_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:581,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:607,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 175
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 642
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 642
    functionName: TestFwdBack
    functionSourceFile: /src/icu/source/test/cintltst/utf16tst.c
    functionUses: []
    functionsReached:
    - UTF16_BACK_N_UNSAFE
    - UTF16_FWD_N_UNSAFE
    - U16_FWD_N
    - U16_FWD_1
    - U16_BACK_N
    - U16_BACK_N_UNSAFE
    - UTF16_FWD_1_SAFE
    - UTF16_BACK_1_UNSAFE
    - U16_FWD_1_UNSAFE
    - U16_FWD_N_UNSAFE
    - log_err
    - UTF16_FWD_N_SAFE
    - UTF16_BACK_N_SAFE
    - UPRV_LENGTHOF
    - UTF16_FWD_1_UNSAFE
    - U16_BACK_1_UNSAFE
    - UTF16_BACK_1_SAFE
    - U16_BACK_1
    linkageType: ''
    returnType: void
    signature: 'static void TestFwdBack() '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:653,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:658,1
    - Dst: U16_SET_CP_START_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:662,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:664,1
    - Dst: UTF16_SET_CHAR_START_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:656,1
    - Dst: UTF16_SET_CHAR_START_SAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:668,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:670,1
    - Dst: U16_SET_CP_START
      Src: /src/icu/source/test/cintltst/utf16tst.c:674,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:676,1
    - Dst: UTF16_SET_CHAR_LIMIT_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:682,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:690,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:697,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:695,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:684,1
    - Dst: U16_SET_CP_LIMIT_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:688,1
    - Dst: U16_SET_CP_LIMIT
      Src: /src/icu/source/test/cintltst/utf16tst.c:695,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 702
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 702
    functionName: TestSetChar
    functionSourceFile: /src/icu/source/test/cintltst/utf16tst.c
    functionUses: []
    functionsReached:
    - U16_SET_CP_START_UNSAFE
    - UTF16_SET_CHAR_START_UNSAFE
    - U16_SET_CP_LIMIT
    - UTF16_SET_CHAR_START_SAFE
    - UTF16_SET_CHAR_LIMIT_UNSAFE
    - log_err
    - U16_SET_CP_START
    - UPRV_LENGTHOF
    - U16_SET_CP_LIMIT_UNSAFE
    linkageType: ''
    returnType: void
    signature: 'static void TestSetChar() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:764,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/utf16tst.c:766,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/utf16tst.c:762,1
    - Dst: printUChars
      Src: /src/icu/source/test/cintltst/utf16tst.c:776,1
    - Dst: printUChars
      Src: /src/icu/source/test/cintltst/utf16tst.c:778,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:791,1
    - Dst: u_strcpy
      Src: /src/icu/source/test/cintltst/utf16tst.c:782,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/utf16tst.c:784,1
    - Dst: UTF16_APPEND_CHAR_SAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:784,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/utf16tst.c:762,1
    - Dst: UTF16_APPEND_CHAR_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:768,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/utf16tst.c:790,1
    - Dst: printUChars
      Src: /src/icu/source/test/cintltst/utf16tst.c:792,1
    - Dst: printUChars
      Src: /src/icu/source/test/cintltst/utf16tst.c:794,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/utf16tst.c:800,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/utf16tst.c:774,1
    - Dst: printf
      Src: /src/icu/source/test/cintltst/utf16tst.c:777,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:786,1
    - Dst: printf
      Src: /src/icu/source/test/cintltst/utf16tst.c:779,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:770,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:775,1
    - Dst: printf
      Src: /src/icu/source/test/cintltst/utf16tst.c:793,1
    - Dst: printf
      Src: /src/icu/source/test/cintltst/utf16tst.c:795,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 802
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 802
    functionName: TestAppendChar
    functionSourceFile: /src/icu/source/test/cintltst/utf16tst.c
    functionUses: []
    functionsReached:
    - malloc
    - UTF16_APPEND_CHAR_UNSAFE
    - u_strcpy
    - u_strlen
    - printUChars
    - free
    - log_err
    - UPRV_LENGTHOF
    - u_strcmp
    - printf
    - UTF16_APPEND_CHAR_SAFE
    linkageType: ''
    returnType: void
    signature: 'static void TestAppendChar() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:835,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/utf16tst.c:841,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:843,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/utf16tst.c:843,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:844,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:849,1
    - Dst: U16_APPEND
      Src: /src/icu/source/test/cintltst/utf16tst.c:854,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:854,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:858,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf16tst.c:860,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:861,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/utf16tst.c:860,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 863
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 863
    functionName: TestAppend
    functionSourceFile: /src/icu/source/test/cintltst/utf16tst.c
    functionUses: []
    functionsReached:
    - U16_APPEND_UNSAFE
    - U16_APPEND
    - log_err
    - memcmp
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestAppend() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf16tst.c:56,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf16tst.c:57,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf16tst.c:60,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf16tst.c:58,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf16tst.c:59,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf16tst.c:61,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf16tst.c:62,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf16tst.c:63,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf16tst.c:64,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf16tst.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: addUTF16Test
    functionSourceFile: /src/icu/source/test/cintltst/utf16tst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addUTF16Test(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U16_LEAD
      Src: /src/icu/source/test/cintltst/utf16tst.c:869,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/test/cintltst/utf16tst.c:870,1
    - Dst: UTF16_LEAD
      Src: /src/icu/source/test/cintltst/utf16tst.c:877,1
    - Dst: UTF_FIRST_SURROGATE
      Src: /src/icu/source/test/cintltst/utf16tst.c:877,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:880,1
    - Dst: UTF16_TRAIL
      Src: /src/icu/source/test/cintltst/utf16tst.c:885,1
    - Dst: UTF_SECOND_SURROGATE
      Src: /src/icu/source/test/cintltst/utf16tst.c:885,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf16tst.c:888,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 893
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 893
    functionName: TestSurrogate
    functionSourceFile: /src/icu/source/test/cintltst/utf16tst.c
    functionUses: []
    functionsReached:
    - U16_TRAIL
    - UTF16_LEAD
    - UTF16_TRAIL
    - UTF_SECOND_SURROGATE
    - log_err
    - UTF_FIRST_SURROGATE
    - U16_LEAD
    linkageType: ''
    returnType: void
    signature: 'static void TestSurrogate() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/utf16tst.c:34,1
    - Dst: printf
      Src: /src/icu/source/test/cintltst/utf16tst.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - uchars
    argTypes:
    - UChar*
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: printUChars
    functionSourceFile: /src/icu/source/test/cintltst/utf16tst.c
    functionUses: []
    functionsReached:
    - u_strlen
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void printUChars(const UChar *uchars) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucsdetst.c:38,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucsdetst.c:40,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucsdetst.c:41,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucsdetst.c:42,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucsdetst.c:39,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucsdetst.c:43,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucsdetst.c:44,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucsdetst.c:46,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/ucsdetst.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: addUCsdetTest
    functionSourceFile: /src/icu/source/test/cintltst/ucsdetst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addUCsdetTest(TestNode** root) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/ucsdetst.c:72,1
    - Dst: NEW_ARRAY
      Src: /src/icu/source/test/cintltst/ucsdetst.c:75,1
    - Dst: preflight
      Src: /src/icu/source/test/cintltst/ucsdetst.c:73,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/ucsdetst.c:78,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/ucsdetst.c:79,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 4
    argNames:
    - src
    - length
    - codepage
    - byteLength
    argTypes:
    - UChar*
    - int32_t
    - char*
    - int32_t*
    constantsTouched: []
    func_position:
      end: 83
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 83
    functionName: extractBytes
    functionSourceFile: /src/icu/source/test/cintltst/ucsdetst.c
    functionUses: []
    functionsReached:
    - preflight
    - ucnv_close
    - ucnv_open
    - ucnv_fromUnicode
    - NEW_ARRAY
    linkageType: ''
    returnType: char*
    signature: 'static char *extractBytes(const UChar *src, int32_t length, const
      char *codepage, int32_t *byteLength) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucsdet_open
      Src: /src/icu/source/test/cintltst/ucsdetst.c:93,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/ucsdetst.c:96,1
    - Dst: ucsdet_getAllDetectableCharsets
      Src: /src/icu/source/test/cintltst/ucsdetst.c:94,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:103,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/ucsdetst.c:100,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/ucsdetst.c:107,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucsdetst.c:108,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:109,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/ucsdetst.c:112,1
    - Dst: ucsdet_close
      Src: /src/icu/source/test/cintltst/ucsdetst.c:113,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 114
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 114
    functionName: TestConstruction
    functionSourceFile: /src/icu/source/test/cintltst/ucsdetst.c
    functionUses: []
    functionsReached:
    - uenum_next
    - ucsdet_getAllDetectableCharsets
    - U_FAILURE
    - uenum_count
    - ucsdet_close
    - log_err
    - uenum_close
    - ucsdet_open
    linkageType: ''
    returnType: void
    signature: 'static void TestConstruction(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: extractBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:170,1
    - Dst: ucsdet_open
      Src: /src/icu/source/test/cintltst/ucsdetst.c:172,1
    - Dst: ucsdet_getName
      Src: /src/icu/source/test/cintltst/ucsdetst.c:185,1
    - Dst: ucsdet_getConfidence
      Src: /src/icu/source/test/cintltst/ucsdetst.c:186,1
    - Dst: ucsdet_detect
      Src: /src/icu/source/test/cintltst/ucsdetst.c:198,1
    - Dst: ucsdet_setText
      Src: /src/icu/source/test/cintltst/ucsdetst.c:197,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ucsdetst.c:209,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:214,1
    - Dst: freeBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:219,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ucsdetst.c:188,1
    - Dst: ucsdet_close
      Src: /src/icu/source/test/cintltst/ucsdetst.c:220,1
    - Dst: ucsdet_setText
      Src: /src/icu/source/test/cintltst/ucsdetst.c:177,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:201,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:210,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucsdetst.c:169,1
    - Dst: extractBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:171,1
    - Dst: ucsdet_detect
      Src: /src/icu/source/test/cintltst/ucsdetst.c:178,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:181,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:193,1
    - Dst: ucsdet_getName
      Src: /src/icu/source/test/cintltst/ucsdetst.c:205,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:189,1
    - Dst: ucsdet_getConfidence
      Src: /src/icu/source/test/cintltst/ucsdetst.c:206,1
    - Dst: freeBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:218,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 221
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 221
    functionName: TestUTF16
    functionSourceFile: /src/icu/source/test/cintltst/ucsdetst.c
    functionUses: []
    functionsReached:
    - ucsdet_detect
    - ucsdet_getConfidence
    - ucsdet_open
    - strcmp
    - extractBytes
    - ucsdet_getName
    - freeBytes
    - ucsdet_close
    - log_err
    - UPRV_LENGTHOF
    - ucsdet_setText
    linkageType: ''
    returnType: void
    signature: 'static void TestUTF16(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ucsdet_isInputFilterEnabled
      Src: /src/icu/source/test/cintltst/ucsdetst.c:297,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:298,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:306,1
    - Dst: ucsdet_enableInputFilter
      Src: /src/icu/source/test/cintltst/ucsdetst.c:323,1
    - Dst: ucsdet_getLanguage
      Src: /src/icu/source/test/cintltst/ucsdetst.c:315,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:335,1
    - Dst: ucsdet_enableInputFilter
      Src: /src/icu/source/test/cintltst/ucsdetst.c:295,1
    - Dst: extractBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:293,1
    - Dst: ucsdet_setText
      Src: /src/icu/source/test/cintltst/ucsdetst.c:302,1
    - Dst: ucsdet_getName
      Src: /src/icu/source/test/cintltst/ucsdetst.c:310,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:318,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:328,1
    - Dst: ucsdet_getLanguage
      Src: /src/icu/source/test/cintltst/ucsdetst.c:337,1
    - Dst: freeBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:345,1
    - Dst: ucsdet_open
      Src: /src/icu/source/test/cintltst/ucsdetst.c:288,1
    - Dst: ucsdet_detect
      Src: /src/icu/source/test/cintltst/ucsdetst.c:303,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ucsdetst.c:317,1
    - Dst: ucsdet_setText
      Src: /src/icu/source/test/cintltst/ucsdetst.c:324,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ucsdetst.c:312,1
    - Dst: ucsdet_getName
      Src: /src/icu/source/test/cintltst/ucsdetst.c:332,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:340,1
    - Dst: ucsdet_close
      Src: /src/icu/source/test/cintltst/ucsdetst.c:346,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/ucsdetst.c:292,1
    - Dst: ucsdet_detect
      Src: /src/icu/source/test/cintltst/ucsdetst.c:325,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:313,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ucsdetst.c:334,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ucsdetst.c:339,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 347
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 347
    functionName: TestInputFilter
    functionSourceFile: /src/icu/source/test/cintltst/ucsdetst.c
    functionUses: []
    functionsReached:
    - ucsdet_detect
    - ucsdet_enableInputFilter
    - u_unescape
    - strcmp
    - ucsdet_isInputFilterEnabled
    - extractBytes
    - ucsdet_getName
    - ucsdet_getLanguage
    - freeBytes
    - log_err
    - ucsdet_close
    - ucsdet_setText
    - ucsdet_open
    linkageType: ''
    returnType: void
    signature: 'static void TestInputFilter(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ucsdet_open
      Src: /src/icu/source/test/cintltst/ucsdetst.c:393,1
    - Dst: ucsdet_setDeclaredEncoding
      Src: /src/icu/source/test/cintltst/ucsdetst.c:396,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucsdetst.c:398,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:399,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucsdetst.c:399,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucsdetst.c:403,1
    - Dst: ucsdet_setText
      Src: /src/icu/source/test/cintltst/ucsdetst.c:404,1
    - Dst: ucsdet_detect
      Src: /src/icu/source/test/cintltst/ucsdetst.c:405,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:409,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ucsdetst.c:412,1
    - Dst: ucsdet_getName
      Src: /src/icu/source/test/cintltst/ucsdetst.c:419,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ucsdetst.c:417,1
    - Dst: ucsdet_getConfidence
      Src: /src/icu/source/test/cintltst/ucsdetst.c:419,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:418,1
    - Dst: ucsdet_close
      Src: /src/icu/source/test/cintltst/ucsdetst.c:425,1
    - Dst: ucsdet_getName
      Src: /src/icu/source/test/cintltst/ucsdetst.c:417,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 426
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 426
    functionName: TestBufferOverflow
    functionSourceFile: /src/icu/source/test/cintltst/ucsdetst.c
    functionUses: []
    functionsReached:
    - ucsdet_detect
    - ucsdet_setDeclaredEncoding
    - ucsdet_getConfidence
    - U_FAILURE
    - strcmp
    - ucsdet_getName
    - ucsdet_close
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - ucsdet_setText
    - u_errorName
    - ucsdet_open
    linkageType: ''
    returnType: void
    signature: 'static void TestBufferOverflow(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DELETE_ARRAY
      Src: /src/icu/source/test/cintltst/ucsdetst.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: freeBytes
    functionSourceFile: /src/icu/source/test/cintltst/ucsdetst.c
    functionUses: []
    functionsReached:
    - DELETE_ARRAY
    linkageType: ''
    returnType: void
    signature: 'static void freeBytes(char *bytes) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/cintltst/ucsdetst.c:62,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 3
    argNames:
    - src
    - length
    - cnv
    argTypes:
    - UChar*
    - int32_t
    - UConverter*
    constantsTouched: []
    func_position:
      end: 67
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 67
    functionName: preflight
    functionSourceFile: /src/icu/source/test/cintltst/ucsdetst.c
    functionUses: []
    functionsReached:
    - ucnv_fromUnicode
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t preflight(const UChar *src, int32_t length, UConverter
      *cnv) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucsdet_open
      Src: /src/icu/source/test/cintltst/ucsdetst.c:126,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/ucsdetst.c:130,1
    - Dst: ucsdet_setText
      Src: /src/icu/source/test/cintltst/ucsdetst.c:133,1
    - Dst: extractBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:131,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ucsdetst.c:134,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:135,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucsdetst.c:135,1
    - Dst: ucsdet_detect
      Src: /src/icu/source/test/cintltst/ucsdetst.c:139,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:142,1
    - Dst: ucsdet_getUChars
      Src: /src/icu/source/test/cintltst/ucsdetst.c:146,1
    - Dst: u_strCompare
      Src: /src/icu/source/test/cintltst/ucsdetst.c:148,1
    - Dst: freeBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:155,1
    - Dst: ucsdet_close
      Src: /src/icu/source/test/cintltst/ucsdetst.c:156,1
    - Dst: ucsdet_setDeclaredEncoding
      Src: /src/icu/source/test/cintltst/ucsdetst.c:152,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:149,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 157
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 157
    functionName: TestUTF8
    functionSourceFile: /src/icu/source/test/cintltst/ucsdetst.c
    functionUses: []
    functionsReached:
    - ucsdet_detect
    - ucsdet_setDeclaredEncoding
    - ucsdet_open
    - u_unescape
    - U_FAILURE
    - u_strCompare
    - extractBytes
    - freeBytes
    - ucsdet_close
    - log_err
    - ucsdet_getUChars
    - u_errorName
    - ucsdet_setText
    linkageType: ''
    returnType: void
    signature: 'static void TestUTF8(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/ucsdetst.c:240,1
    - Dst: extractBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:241,1
    - Dst: ucsdet_detect
      Src: /src/icu/source/test/cintltst/ucsdetst.c:245,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ucsdetst.c:254,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:269,1
    - Dst: ucsdet_detect
      Src: /src/icu/source/test/cintltst/ucsdetst.c:259,1
    - Dst: freeBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:274,1
    - Dst: ucsdet_open
      Src: /src/icu/source/test/cintltst/ucsdetst.c:235,1
    - Dst: extractBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:242,1
    - Dst: ucsdet_getName
      Src: /src/icu/source/test/cintltst/ucsdetst.c:266,1
    - Dst: ucsdet_close
      Src: /src/icu/source/test/cintltst/ucsdetst.c:276,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/ucsdetst.c:239,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:248,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ucsdetst.c:268,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:262,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:255,1
    - Dst: ucsdet_setText
      Src: /src/icu/source/test/cintltst/ucsdetst.c:244,1
    - Dst: ucsdet_getName
      Src: /src/icu/source/test/cintltst/ucsdetst.c:252,1
    - Dst: ucsdet_setText
      Src: /src/icu/source/test/cintltst/ucsdetst.c:258,1
    - Dst: freeBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:273,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 278
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 278
    functionName: TestC1Bytes
    functionSourceFile: /src/icu/source/test/cintltst/ucsdetst.c
    functionUses: []
    functionsReached:
    - ucsdet_detect
    - ucsdet_open
    - u_unescape
    - strcmp
    - log_data_err
    - extractBytes
    - ucsdet_getName
    - freeBytes
    - ucsdet_close
    - log_err
    - ucsdet_setText
    linkageType: ''
    returnType: void
    signature: 'static void TestC1Bytes(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucsdet_open
      Src: /src/icu/source/test/cintltst/ucsdetst.c:352,1
    - Dst: ucsdet_getName
      Src: /src/icu/source/test/cintltst/ucsdetst.c:354,1
    - Dst: ucsdet_getConfidence
      Src: /src/icu/source/test/cintltst/ucsdetst.c:355,1
    - Dst: ucsdet_setText
      Src: /src/icu/source/test/cintltst/ucsdetst.c:353,1
    - Dst: ucsdet_getLanguage
      Src: /src/icu/source/test/cintltst/ucsdetst.c:356,1
    - Dst: ucsdet_detect
      Src: /src/icu/source/test/cintltst/ucsdetst.c:357,1
    - Dst: ucsdet_setDeclaredEncoding
      Src: /src/icu/source/test/cintltst/ucsdetst.c:358,1
    - Dst: ucsdet_detectAll
      Src: /src/icu/source/test/cintltst/ucsdetst.c:359,1
    - Dst: ucsdet_getUChars
      Src: /src/icu/source/test/cintltst/ucsdetst.c:360,1
    - Dst: ucsdet_getUChars
      Src: /src/icu/source/test/cintltst/ucsdetst.c:361,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ucsdetst.c:366,1
    - Dst: ucsdet_close
      Src: /src/icu/source/test/cintltst/ucsdetst.c:362,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 368
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 368
    functionName: TestChaining
    functionSourceFile: /src/icu/source/test/cintltst/ucsdetst.c
    functionUses: []
    functionsReached:
    - ucsdet_detect
    - ucsdet_setDeclaredEncoding
    - ucsdet_getConfidence
    - ucsdet_open
    - ucsdet_detectAll
    - ucsdet_getName
    - ucsdet_close
    - ucsdet_getUChars
    - log_err
    - ucsdet_getLanguage
    - u_errorName
    - ucsdet_setText
    linkageType: ''
    returnType: void
    signature: 'static void TestChaining(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucsdetst.c:473,1
    - Dst: extractBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:475,1
    - Dst: ucsdet_open
      Src: /src/icu/source/test/cintltst/ucsdetst.c:478,1
    - Dst: ucsdet_getName
      Src: /src/icu/source/test/cintltst/ucsdetst.c:503,1
    - Dst: ucsdet_close
      Src: /src/icu/source/test/cintltst/ucsdetst.c:511,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:486,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ucsdetst.c:504,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:492,1
    - Dst: ucsdet_detect
      Src: /src/icu/source/test/cintltst/ucsdetst.c:496,1
    - Dst: ucsdet_setText
      Src: /src/icu/source/test/cintltst/ucsdetst.c:482,1
    - Dst: ucsdet_getName
      Src: /src/icu/source/test/cintltst/ucsdetst.c:490,1
    - Dst: ucsdet_setText
      Src: /src/icu/source/test/cintltst/ucsdetst.c:495,1
    - Dst: freeBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:509,1
    - Dst: extractBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:476,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucsdetst.c:473,1
    - Dst: ucsdet_detect
      Src: /src/icu/source/test/cintltst/ucsdetst.c:483,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ucsdetst.c:491,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:505,1
    - Dst: freeBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:510,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:499,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 512
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 512
    functionName: TestIBM424
    functionSourceFile: /src/icu/source/test/cintltst/ucsdetst.c
    functionUses: []
    functionsReached:
    - ucsdet_detect
    - ucsdet_open
    - strcmp
    - log_data_err
    - extractBytes
    - ucsdet_getName
    - freeBytes
    - ucsdet_close
    - log_err
    - UPRV_LENGTHOF
    - ucsdet_setText
    linkageType: ''
    returnType: void
    signature: 'static void TestIBM424(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: extractBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:553,1
    - Dst: ucsdet_open
      Src: /src/icu/source/test/cintltst/ucsdetst.c:556,1
    - Dst: ucsdet_setText
      Src: /src/icu/source/test/cintltst/ucsdetst.c:573,1
    - Dst: ucsdet_getName
      Src: /src/icu/source/test/cintltst/ucsdetst.c:581,1
    - Dst: ucsdet_close
      Src: /src/icu/source/test/cintltst/ucsdetst.c:589,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:564,1
    - Dst: ucsdet_detect
      Src: /src/icu/source/test/cintltst/ucsdetst.c:574,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ucsdetst.c:582,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:570,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucsdetst.c:551,1
    - Dst: ucsdet_setText
      Src: /src/icu/source/test/cintltst/ucsdetst.c:560,1
    - Dst: ucsdet_getName
      Src: /src/icu/source/test/cintltst/ucsdetst.c:568,1
    - Dst: freeBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:587,1
    - Dst: extractBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:554,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ucsdetst.c:551,1
    - Dst: ucsdet_detect
      Src: /src/icu/source/test/cintltst/ucsdetst.c:561,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/ucsdetst.c:569,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:583,1
    - Dst: freeBytes
      Src: /src/icu/source/test/cintltst/ucsdetst.c:588,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ucsdetst.c:577,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 590
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 590
    functionName: TestIBM420
    functionSourceFile: /src/icu/source/test/cintltst/ucsdetst.c
    functionUses: []
    functionsReached:
    - ucsdet_detect
    - ucsdet_open
    - strcmp
    - log_data_err
    - extractBytes
    - ucsdet_getName
    - freeBytes
    - ucsdet_close
    - log_err
    - UPRV_LENGTHOF
    - ucsdet_setText
    linkageType: ''
    returnType: void
    signature: 'static void TestIBM420(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:28,1
    - Dst: TESTCASE
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: addUListFmtTest
    functionSourceFile: /src/icu/source/test/cintltst/ulistfmttest.c
    functionUses: []
    functionsReached:
    - TESTCASE
    linkageType: ''
    returnType: void
    signature: 'void addUListFmtTest(TestNode** root) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ulistfmt_format
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:74,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:76,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:76,1
    - Dst: ulistfmt_format
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:87,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:88,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:92,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:94,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:95,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:95,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:105,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:116,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:108,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:89,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:89,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:102,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:102,1
    - Dst: ulistfmt_format
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:114,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:108,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:122,1
    - Dst: ulistfmt_close
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:126,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:107,1
    - Dst: ulistfmt_open
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:69,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:80,1
    - Dst: ulistfmt_format
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:100,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:101,1
    - Dst: ulistfmt_format
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:120,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:123,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:117,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:71,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:70,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:71,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:75,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:79,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:93,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:82,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:81,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:82,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:106,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 129
    functionName: TestUListFmt
    functionSourceFile: /src/icu/source/test/cintltst/ulistfmttest.c
    functionUses: []
    functionsReached:
    - ulistfmt_close
    - u_unescape
    - U_FAILURE
    - log_data_err
    - ulistfmt_open
    - u_strncmp
    - log_err
    - u_errorName
    - aescstrdup
    - ulistfmt_format
    linkageType: ''
    returnType: void
    signature: 'static void TestUListFmt() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ulistfmt_open
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:133,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:145,1
    - Dst: ulistfmt_formatStringsToResult
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:145,1
    - Dst: ulistfmt_openResult
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:134,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:135,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:146,1
    - Dst: checkMixedFormattedValue
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:157,1
    - Dst: ulistfmt_resultAsValue
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:159,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:162,1
    - Dst: ulistfmt_formatStringsToResult
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:176,1
    - Dst: checkMixedFormattedValue
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:200,1
    - Dst: assertSuccess
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:177,1
    - Dst: ulistfmt_closeResult
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:209,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:176,1
    - Dst: ulistfmt_resultAsValue
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:202,1
    - Dst: ulistfmt_close
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:208,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/ulistfmttest.c:205,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 210
    functionName: TestUListFmtToValue
    functionSourceFile: /src/icu/source/test/cintltst/ulistfmttest.c
    functionUses: []
    functionsReached:
    - ulistfmt_close
    - ulistfmt_resultAsValue
    - assertSuccess
    - ulistfmt_closeResult
    - ulistfmt_open
    - ulistfmt_openResult
    - checkMixedFormattedValue
    - ulistfmt_formatStringsToResult
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestUListFmtToValue() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addCollAPITest
      Src: /src/icu/source/test/cintltst/ccolltst.c:32,1
    - Dst: addSpanishCollTest
      Src: /src/icu/source/test/cintltst/ccolltst.c:38,1
    - Dst: addGermanCollTest
      Src: /src/icu/source/test/cintltst/ccolltst.c:37,1
    - Dst: addCurrencyCollTest
      Src: /src/icu/source/test/cintltst/ccolltst.c:33,1
    - Dst: addNormTest
      Src: /src/icu/source/test/cintltst/ccolltst.c:35,1
    - Dst: addFrenchCollTest
      Src: /src/icu/source/test/cintltst/ccolltst.c:39,1
    - Dst: addKannaCollTest
      Src: /src/icu/source/test/cintltst/ccolltst.c:40,1
    - Dst: addTurkishCollTest
      Src: /src/icu/source/test/cintltst/ccolltst.c:41,1
    - Dst: addEnglishCollTest
      Src: /src/icu/source/test/cintltst/ccolltst.c:42,1
    - Dst: addFinnishCollTest
      Src: /src/icu/source/test/cintltst/ccolltst.c:43,1
    - Dst: addMiscCollTest
      Src: /src/icu/source/test/cintltst/ccolltst.c:49,1
    - Dst: addRuleBasedCollTest
      Src: /src/icu/source/test/cintltst/ccolltst.c:46,1
    - Dst: addSearchTest
      Src: /src/icu/source/test/cintltst/ccolltst.c:51,1
    - Dst: addAllCollTest
      Src: /src/icu/source/test/cintltst/ccolltst.c:48,1
    - Dst: addCollIterTest
      Src: /src/icu/source/test/cintltst/ccolltst.c:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 53
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 53
    functionName: addCollTest
    functionSourceFile: /src/icu/source/test/cintltst/ccolltst.c
    functionUses: []
    functionsReached:
    - addNormTest
    - addFrenchCollTest
    - addMiscCollTest
    - addSearchTest
    - addEnglishCollTest
    - addFinnishCollTest
    - addTurkishCollTest
    - addRuleBasedCollTest
    - addCollAPITest
    - addSpanishCollTest
    - addCurrencyCollTest
    - addCollIterTest
    - addAllCollTest
    - addKannaCollTest
    - addGermanCollTest
    linkageType: ''
    returnType: void
    signature: 'void addCollTest(TestNode** root) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - result
    argTypes:
    - UCollationResult
    constantsTouched: []
    func_position:
      end: 85
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 85
    functionName: getCompareResult
    functionSourceFile: /src/icu/source/test/cintltst/ccolltst.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *getCompareResult(UCollationResult result) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/ccolltst.c:59,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/ccolltst.c:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - sourceKey
    - sk
    argTypes:
    - uint8_t*
    - char*
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: dumpSk
    functionSourceFile: /src/icu/source/test/cintltst/ccolltst.c
    functionUses: []
    functionsReached:
    - sprintf
    - strlen
    linkageType: ''
    returnType: char*
    signature: 'static char * dumpSk(uint8_t *sourceKey, char *sk) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccolltst.c:96,1
    - Dst: getCompareResult
      Src: /src/icu/source/test/cintltst/ccolltst.c:109,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/ccolltst.c:120,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccolltst.c:120,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/ccolltst.c:114,1
    - Dst: getCompareResult
      Src: /src/icu/source/test/cintltst/ccolltst.c:121,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccolltst.c:127,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/ccolltst.c:128,1
    - Dst: getCompareResult
      Src: /src/icu/source/test/cintltst/ccolltst.c:103,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/ccolltst.c:108,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccolltst.c:114,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/ccolltst.c:114,1
    - Dst: getCompareResult
      Src: /src/icu/source/test/cintltst/ccolltst.c:115,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/ccolltst.c:102,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccolltst.c:108,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/ccolltst.c:108,1
    - Dst: getCompareResult
      Src: /src/icu/source/test/cintltst/ccolltst.c:109,1
    - Dst: getCompareResult
      Src: /src/icu/source/test/cintltst/ccolltst.c:121,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/ccolltst.c:102,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/ccolltst.c:102,1
    - Dst: getCompareResult
      Src: /src/icu/source/test/cintltst/ccolltst.c:103,1
    - Dst: getCompareResult
      Src: /src/icu/source/test/cintltst/ccolltst.c:115,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/ccolltst.c:120,1
    - Dst: dumpSk
      Src: /src/icu/source/test/cintltst/ccolltst.c:127,1
    - Dst: dumpSk
      Src: /src/icu/source/test/cintltst/ccolltst.c:128,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 8
    argNames:
    - source
    - target
    - sourceKey
    - targetKey
    - compareResult
    - keyResult
    - incResult
    - expectedResult
    argTypes:
    - UChar
    - UChar
    - uint8_t*
    - uint8_t*
    - UCollationResult
    - UCollationResult
    - UCollationResult
    - UCollationResult
    constantsTouched: []
    func_position:
      end: 130
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 130
    functionName: reportCResult
    functionSourceFile: /src/icu/source/test/cintltst/ccolltst.c
    functionUses: []
    functionsReached:
    - dumpSk
    - getCompareResult
    - log_verbose
    - log_err
    - aescstrdup
    linkageType: ''
    returnType: void
    signature: 'void reportCResult( const UChar source[], const UChar target[], uint8_t
      *sourceKey, uint8_t *targetKey, UCollationResult compareResult, UCollationResult
      keyResult, UCollationResult incResult, UCollationResult expectedResult ) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:203,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:204,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/cstrtest.c:218,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrtest.c:250,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:252,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrtest.c:251,1
    - Dst: uprv_isInvariantString
      Src: /src/icu/source/test/cintltst/cstrtest.c:269,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:270,1
    - Dst: uprv_isInvariantString
      Src: /src/icu/source/test/cintltst/cstrtest.c:280,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/test/cintltst/cstrtest.c:202,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:208,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:209,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:219,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:220,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:251,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:247,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:253,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrtest.c:257,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:261,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:281,1
    - Dst: u_UCharsToChars
      Src: /src/icu/source/test/cintltst/cstrtest.c:207,1
    - Dst: ucnv_toUChars
      Src: /src/icu/source/test/cintltst/cstrtest.c:257,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrtest.c:258,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/cstrtest.c:259,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:260,1
    - Dst: uprv_isInvariantUString
      Src: /src/icu/source/test/cintltst/cstrtest.c:272,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:273,1
    - Dst: uprv_isInvariantString
      Src: /src/icu/source/test/cintltst/cstrtest.c:275,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrtest.c:288,1
    - Dst: uprv_isInvariantUString
      Src: /src/icu/source/test/cintltst/cstrtest.c:289,1
    - Dst: uprv_isInvariantUString
      Src: /src/icu/source/test/cintltst/cstrtest.c:283,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:276,1
    - Dst: u_UCharsToChars
      Src: /src/icu/source/test/cintltst/cstrtest.c:228,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cstrtest.c:246,1
    - Dst: ucnv_fromUChars
      Src: /src/icu/source/test/cintltst/cstrtest.c:249,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:231,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/cintltst/cstrtest.c:245,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:259,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrtest.c:260,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/cintltst/cstrtest.c:264,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/cstrtest.c:275,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:284,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:290,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 293
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 293
    functionName: TestInvariant
    functionSourceFile: /src/icu/source/test/cintltst/cstrtest.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - ucnv_fromUChars
    - ucnv_toUChars
    - U_FAILURE
    - ucnv_open
    - strcmp
    - u_UCharsToChars
    - log_err
    - uprv_isInvariantUString
    - uprv_isInvariantString
    - UPRV_LENGTHOF
    - u_strcmp
    - u_charsToUChars
    - u_errorName
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestInvariant() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/cstrtest.c:331,1
    - Dst: uprv_compareInvEbcdicAsAscii
      Src: /src/icu/source/test/cintltst/cstrtest.c:334,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:336,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:335,1
    - Dst: getSign
      Src: /src/icu/source/test/cintltst/cstrtest.c:334,1
    - Dst: getSign
      Src: /src/icu/source/test/cintltst/cstrtest.c:340,1
    - Dst: uprv_compareInvEbcdicAsAscii
      Src: /src/icu/source/test/cintltst/cstrtest.c:340,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:342,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 346
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 346
    functionName: TestCompareInvEbcdicAsAscii
    functionSourceFile: /src/icu/source/test/cintltst/cstrtest.c
    functionUses: []
    functionsReached:
    - getSign
    - uprv_strcmp
    - log_err
    - UPRV_LENGTHOF
    - uprv_compareInvEbcdicAsAscii
    linkageType: ''
    returnType: void
    signature: 'static void TestCompareInvEbcdicAsAscii() '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 303
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 303
    functionName: getSign
    functionSourceFile: /src/icu/source/test/cintltst/cstrtest.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t getSign(int32_t n) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uprv_isAtSign
      Src: /src/icu/source/test/cintltst/cstrtest.c:365,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 370
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 370
    functionName: TestLocaleAtSign
    functionSourceFile: /src/icu/source/test/cintltst/cstrtest.c
    functionUses: []
    functionsReached:
    - uprv_isAtSign
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestLocaleAtSign() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uprv_isAtSign
      Src: /src/icu/source/test/cintltst/cstrtest.c:377,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:379,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 383
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 383
    functionName: TestNoInvariantAtSign
    functionSourceFile: /src/icu/source/test/cintltst/cstrtest.c
    functionUses: []
    functionsReached:
    - uprv_isAtSign
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestNoInvariantAtSign() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uprv_invCharToAscii
      Src: /src/icu/source/test/cintltst/cstrtest.c:390,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 396
    functionName: TestInvCharToAscii
    functionSourceFile: /src/icu/source/test/cintltst/cstrtest.c
    functionUses: []
    functionsReached:
    - uprv_invCharToAscii
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestInvCharToAscii() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cstrtest.c:34,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cstrtest.c:37,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cstrtest.c:36,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cstrtest.c:35,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cstrtest.c:38,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cstrtest.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: addCStringTest
    functionSourceFile: /src/icu/source/test/cintltst/cstrtest.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addCStringTest(TestNode** root) '
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cstrtest.c:50,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:54,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:68,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:76,1
    - Dst: uprv_toupper
      Src: /src/icu/source/test/cintltst/cstrtest.c:73,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:99,1
    - Dst: T_CString_int64ToString
      Src: /src/icu/source/test/cintltst/cstrtest.c:105,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:107,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:116,1
    - Dst: uprv_stricmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:127,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:134,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:139,1
    - Dst: uprv_strnicmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:147,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:151,1
    - Dst: uprv_free
      Src: /src/icu/source/test/cintltst/cstrtest.c:141,1
    - Dst: uprv_strnicmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:162,1
    - Dst: T_CString_integerToString
      Src: /src/icu/source/test/cintltst/cstrtest.c:97,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:128,1
    - Dst: uprv_stricmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:118,1
    - Dst: uprv_tolower
      Src: /src/icu/source/test/cintltst/cstrtest.c:52,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:55,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:61,1
    - Dst: uprv_toupper
      Src: /src/icu/source/test/cintltst/cstrtest.c:66,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:69,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cstrtest.c:79,1
    - Dst: T_CString_toUpperCase
      Src: /src/icu/source/test/cintltst/cstrtest.c:84,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:81,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:86,1
    - Dst: T_CString_stringToInteger
      Src: /src/icu/source/test/cintltst/cstrtest.c:89,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:119,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:138,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:148,1
    - Dst: uprv_stricmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:133,1
    - Dst: uprv_strnicmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:153,1
    - Dst: uprv_strnicmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:156,1
    - Dst: uprv_stricmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:124,1
    - Dst: uprv_strnicmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:144,1
    - Dst: uprv_tolower
      Src: /src/icu/source/test/cintltst/cstrtest.c:59,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:62,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:91,1
    - Dst: T_CString_stringToInteger
      Src: /src/icu/source/test/cintltst/cstrtest.c:93,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:98,1
    - Dst: T_CString_integerToString
      Src: /src/icu/source/test/cintltst/cstrtest.c:101,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:106,1
    - Dst: T_CString_int64ToString
      Src: /src/icu/source/test/cintltst/cstrtest.c:109,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:111,1
    - Dst: uprv_stricmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:121,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:131,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:122,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:154,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:157,1
    - Dst: uprv_strnicmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:159,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:75,1
    - Dst: T_CString_toLowerCase
      Src: /src/icu/source/test/cintltst/cstrtest.c:80,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:82,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:85,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:95,1
    - Dst: uprv_stricmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:102,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:103,1
    - Dst: uprv_stricmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:110,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/cstrtest.c:114,1
    - Dst: uprv_stricmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:115,1
    - Dst: uprv_strdup
      Src: /src/icu/source/test/cintltst/cstrtest.c:137,1
    - Dst: uprv_stricmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:130,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:160,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:125,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:163,1
    - Dst: uprv_strnicmp
      Src: /src/icu/source/test/cintltst/cstrtest.c:150,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/test/cintltst/cstrtest.c:143,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/cstrtest.c:145,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 168
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 166
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 166
    functionName: TestAPI
    functionSourceFile: /src/icu/source/test/cintltst/cstrtest.c
    functionUses: []
    functionsReached:
    - uprv_toupper
    - T_CString_toUpperCase
    - uprv_strdup
    - T_CString_stringToInteger
    - uprv_tolower
    - strcmp
    - T_CString_integerToString
    - uprv_stricmp
    - uprv_free
    - uprv_strnicmp
    - T_CString_toLowerCase
    - uprv_strcmp
    - log_verbose
    - log_err
    - uprv_strcpy
    - T_CString_int64ToString
    linkageType: ''
    returnType: void
    signature: 'static void TestAPI(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtrn.c:50,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtrn.c:51,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtrn.c:53,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtrn.c:52,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtrn.c:54,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtrn.c:55,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtrn.c:56,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtrn.c:57,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtrn.c:58,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtrn.c:60,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtrn.c:63,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtrn.c:64,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/custrtrn.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 65
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 65
    functionName: addUCharTransformTest
    functionSourceFile: /src/icu/source/test/cintltst/custrtrn.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addUCharTransformTest(TestNode** root) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: u_strFromUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:445,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:439,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:447,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:448,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:455,1
    - Dst: u_strFromUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:461,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:464,1
    - Dst: u_strFromUTF32WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:471,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:474,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:479,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:489,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:498,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:401,1
    - Dst: u_strFromUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:420,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:422,1
    - Dst: u_strFromUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:428,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:440,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:423,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:445,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:456,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:461,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:482,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:490,1
    - Dst: u_strFromUTF32WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:495,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:412,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:428,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:480,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:481,1
    - Dst: u_strFromUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:453,1
    - Dst: u_strFromUTF32WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:487,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:495,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:496,1
    - Dst: u_strFromUTF32WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:479,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:497,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:462,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:473,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:406,1
    - Dst: u_strFromUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:404,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:407,1
    - Dst: u_strFromUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:412,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:414,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:415,1
    - Dst: u_strFromUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:437,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:431,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:430,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:446,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:463,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 133
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 501
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 501
    functionName: Test_strFromUTF32_surrogates
    functionSourceFile: /src/icu/source/test/cintltst/custrtrn.c
    functionUses: []
    functionsReached:
    - u_strFromUTF32
    - u_strFromUTF32WithSub
    - log_err
    - u_memcmp
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void Test_strFromUTF32_surrogates() '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:220,1
    - Dst: u_strToUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:223,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:225,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:226,1
    - Dst: u_strToUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:239,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:241,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:242,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:259,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:264,1
    - Dst: u_strToUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:272,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:280,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:281,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:231,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:247,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:274,1
    - Dst: u_strToUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:280,1
    - Dst: u_strToUTF32WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:290,1
    - Dst: u_strToUTF32WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:306,1
    - Dst: u_strToUTF32WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:314,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:315,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:316,1
    - Dst: u_strToUTF32WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:298,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:292,1
    - Dst: u_strToUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:231,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:233,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:234,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:250,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:249,1
    - Dst: u_strToUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:256,1
    - Dst: u_strToUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:247,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:265,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:266,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:275,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:301,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:282,1
    - Dst: u_strToUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:264,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:258,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:267,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:283,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:293,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:298,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:299,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:300,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:309,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:314,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:308,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:317,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 137
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 320
    functionName: Test_strToUTF32_surrogates
    functionSourceFile: /src/icu/source/test/cintltst/custrtrn.c
    functionUses: []
    functionsReached:
    - log_err
    - u_strToUTF32
    - UPRV_LENGTHOF
    - u_strToUTF32WithSub
    - uprv_memcmp
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void Test_strToUTF32_surrogates() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: u_strFromUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:895,1
    - Dst: u_strFromUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:904,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:897,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:906,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:898,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:907,1
    - Dst: u_strFromUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:913,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:915,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:916,1
    - Dst: u_strFromUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:923,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:923,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:924,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:925,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:926,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 928
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 928
    functionName: Test_FromUTF8
    functionSourceFile: /src/icu/source/test/cintltst/custrtrn.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    - u_strFromUTF8
    linkageType: ''
    returnType: void
    signature: 'static void Test_FromUTF8(void) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: u_strFromUTF8Lenient
      Src: /src/icu/source/test/cintltst/custrtrn.c:997,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1015,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1036,1
    - Dst: u_strFromUTF8Lenient
      Src: /src/icu/source/test/cintltst/custrtrn.c:1056,1
    - Dst: equalAnyFFFD
      Src: /src/icu/source/test/cintltst/custrtrn.c:1059,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1084,1
    - Dst: u_strFromUTF8Lenient
      Src: /src/icu/source/test/cintltst/custrtrn.c:1104,1
    - Dst: equalAnyFFFD
      Src: /src/icu/source/test/cintltst/custrtrn.c:1107,1
    - Dst: u_strFromUTF8Lenient
      Src: /src/icu/source/test/cintltst/custrtrn.c:1116,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1122,1
    - Dst: u_strFromUTF8Lenient
      Src: /src/icu/source/test/cintltst/custrtrn.c:1013,1
    - Dst: u_strFromUTF8Lenient
      Src: /src/icu/source/test/cintltst/custrtrn.c:1005,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1048,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1056,1
    - Dst: u_strFromUTF8Lenient
      Src: /src/icu/source/test/cintltst/custrtrn.c:1068,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1096,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1104,1
    - Dst: equalAnyFFFD
      Src: /src/icu/source/test/cintltst/custrtrn.c:1120,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1007,1
    - Dst: u_strFromUTF8Lenient
      Src: /src/icu/source/test/cintltst/custrtrn.c:1032,1
    - Dst: u_strFromUTF8Lenient
      Src: /src/icu/source/test/cintltst/custrtrn.c:1044,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1073,1
    - Dst: u_strFromUTF8Lenient
      Src: /src/icu/source/test/cintltst/custrtrn.c:1080,1
    - Dst: u_strFromUTF8Lenient
      Src: /src/icu/source/test/cintltst/custrtrn.c:1092,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1129,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:999,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/custrtrn.c:1025,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtrn.c:1026,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1061,1
    - Dst: equalAnyFFFD
      Src: /src/icu/source/test/cintltst/custrtrn.c:1071,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1109,1
    - Dst: equalAnyFFFD
      Src: /src/icu/source/test/cintltst/custrtrn.c:1127,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 196
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1133
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 1133
    functionName: Test_FromUTF8Lenient
    functionSourceFile: /src/icu/source/test/cintltst/custrtrn.c
    functionUses: []
    functionsReached:
    - equalAnyFFFD
    - u_strFromUTF8Lenient
    - uprv_strlen
    - u_strlen
    - log_err
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void Test_FromUTF8Lenient(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1387,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1402,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1395,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1389,1
    - Dst: u_strToWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1401,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1403,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1404,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1407,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/custrtrn.c:1407,1
    - Dst: uprv_wcslen
      Src: /src/icu/source/test/cintltst/custrtrn.c:1410,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1414,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1418,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/custrtrn.c:1421,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/cintltst/custrtrn.c:1418,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1413,1
    - Dst: u_strFromWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1411,1
    - Dst: fprintf
      Src: /src/icu/source/test/cintltst/custrtrn.c:1415,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1382
    functionDepth: 0
    functionLinenumber: 1382
    functionLinenumberEnd: 1423
    functionName: Test_widestrs
    functionSourceFile: /src/icu/source/test/cintltst/custrtrn.c
    functionUses: []
    functionsReached:
    - log_info
    - fprintf
    - U_FAILURE
    - u_strFromWCS
    - uprv_wcslen
    - log_err
    - u_strToWCS
    - UPRV_LENGTHOF
    - u_errorName
    - u_austrcpy
    linkageType: ''
    returnType: void
    signature: 'static void Test_widestrs() '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/custrtrn.c:1430,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1444,1
    - Dst: u_strToWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1449,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/custrtrn.c:1474,1
    - Dst: u_memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1475,1
    - Dst: u_strFromWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1477,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1443,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1444,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/custrtrn.c:1453,1
    - Dst: u_strFromWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1471,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1489,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1499,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/custrtrn.c:1508,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/custrtrn.c:1510,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:1441,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/test/cintltst/custrtrn.c:1432,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:1463,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/custrtrn.c:1506,1
    - Dst: loadTestData
      Src: /src/icu/source/test/cintltst/custrtrn.c:1429,1
    - Dst: u_strToWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1455,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:1481,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:1483,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:1478,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:1456,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:1485,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:1494,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1503,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/custrtrn.c:1505,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1425
    functionDepth: 0
    functionLinenumber: 1425
    functionLinenumberEnd: 1512
    functionName: Test_WCHART_LongString
    functionSourceFile: /src/icu/source/test/cintltst/custrtrn.c
    functionUses: []
    functionsReached:
    - malloc
    - log_info
    - U_FAILURE
    - loadTestData
    - log_data_err
    - u_memset
    - free
    - ures_getStringByKey
    - log_verbose
    - log_err
    - ures_close
    - u_strToWCS
    - u_strFromWCS
    - u_errorName
    - ures_open
    linkageType: ''
    returnType: void
    signature: 'static void Test_WCHART_LongString() '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1564,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1664,1
    - Dst: u_strToJavaModifiedUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:1595,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1628,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1554,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1569,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1656,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1670,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1662,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:1597,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1600,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1622,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1626,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1618,1
    - Dst: u_strToJavaModifiedUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:1659,1
    - Dst: u_strToJavaModifiedUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:1605,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1652,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1586,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1612,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:1628,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1631,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1660,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:1639,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1620,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1642,1
    - Dst: u_strToJavaModifiedUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:1683,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1616,1
    - Dst: strstr
      Src: /src/icu/source/test/cintltst/custrtrn.c:1547,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1565,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1592,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1638,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1678,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1606,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1649,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1610,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:1566,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1574,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1672,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1627,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1560,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1580,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1590,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1608,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1686,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1571,1
    - Dst: u_strToJavaModifiedUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:1574,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1569,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1577,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1652,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1596,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1670,1
    - Dst: u_strToJavaModifiedUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:1552,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1558,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1605,1
    - Dst: u_strToJavaModifiedUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:1667,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1553,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1555,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1566,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1608,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1680,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1602,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1662,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:1577,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1582,1
    - Dst: u_strToJavaModifiedUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:1585,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:1587,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1590,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1668,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1678,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1686,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1620,1
    - Dst: u_strToJavaModifiedUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:1636,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1633,1
    - Dst: u_strToJavaModifiedUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:1563,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1567,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1600,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1644,1
    - Dst: u_strToJavaModifiedUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:1675,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:1555,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1558,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1580,1
    - Dst: u_strToJavaModifiedUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:1615,1
    - Dst: u_strToJavaModifiedUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:1647,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1639,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1676,1
    - Dst: u_strToJavaModifiedUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:1625,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1642,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1575,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1610,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1631,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 232
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1688
    functionName: Test_strToJavaModifiedUTF8
    functionSourceFile: /src/icu/source/test/cintltst/custrtrn.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - memset
    - u_strToJavaModifiedUTF8
    - log_err
    - memcmp
    - UPRV_LENGTHOF
    - strstr
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void Test_strToJavaModifiedUTF8() '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:334,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:341,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:343,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:377,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:330,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:331,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:339,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:343,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:365,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:373,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:375,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:377,1
    - Dst: u_strFromUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:330,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:339,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:340,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:359,1
    - Dst: u_strFromUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:364,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:368,1
    - Dst: u_strFromUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:373,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:332,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:334,1
    - Dst: u_strFromUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:339,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:366,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:355,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:368,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:374,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:383,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 67
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 386
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 386
    functionName: Test_strFromUTF32
    functionSourceFile: /src/icu/source/test/cintltst/custrtrn.c
    functionUses: []
    functionsReached:
    - u_strFromUTF32
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void Test_strFromUTF32(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:153,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:155,1
    - Dst: u_strToUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:160,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:164,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:188,1
    - Dst: u_strToUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:193,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:197,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:201,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:155,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:161,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:186,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:185,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:188,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:195,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:197,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:151,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:152,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:160,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:179,1
    - Dst: u_strToUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:184,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:173,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:203,1
    - Dst: u_strToUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:151,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:160,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:175,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:162,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:164,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:193,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:194,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 69
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 206
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 206
    functionName: Test_strToUTF32
    functionSourceFile: /src/icu/source/test/cintltst/custrtrn.c
    functionUses: []
    functionsReached:
    - log_verbose
    - log_err
    - u_strToUTF32
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void Test_strToUTF32(void) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:541,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:613,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/custrtrn.c:610,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:688,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:723,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:710,1
    - Dst: u_strToUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:807,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:690,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:738,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:766,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:525,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:688,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:844,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtrn.c:707,1
    - Dst: u_strFromUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:718,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtrn.c:747,1
    - Dst: u_strFromUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:564,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/custrtrn.c:567,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:584,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/custrtrn.c:668,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:797,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:814,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:782,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/custrtrn.c:765,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:761,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/custrtrn.c:598,1
    - Dst: u_strToUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:839,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:575,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:648,1
    - Dst: u_strToUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:776,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:688,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:725,1
    - Dst: u_strFromUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:824,1
    - Dst: u_strFromUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:857,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:589,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:689,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:690,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:707,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:768,1
    - Dst: u_strFromUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:792,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:829,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:846,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:535,1
    - Dst: u_strFromUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:572,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtrn.c:722,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:799,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:843,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:691,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:659,1
    - Dst: u_strToUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:746,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:811,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:607,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/custrtrn.c:704,1
    - Dst: u_strToUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:761,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:796,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:857,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:859,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:703,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:722,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:831,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/custrtrn.c:780,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:751,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:718,1
    - Dst: u_strFromUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:691,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:750,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:839,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:533,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/custrtrn.c:642,1
    - Dst: u_strFromUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:645,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:689,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:807,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:828,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/custrtrn.c:528,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/custrtrn.c:597,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:594,1
    - Dst: u_memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:708,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/custrtrn.c:737,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:792,1
    - Dst: u_strFromUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:733,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:746,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/custrtrn.c:750,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:534,1
    - Dst: u_strFromUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:639,1
    - Dst: u_strFromUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:690,1
    - Dst: u_strFromUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:703,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:753,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:812,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:824,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:693,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:765,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:535,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:617,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:664,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/custrtrn.c:667,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 305
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 862
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 862
    functionName: Test_UChar_UTF8_API
    functionSourceFile: /src/icu/source/test/cintltst/custrtrn.c
    functionUses: []
    functionsReached:
    - malloc
    - U_FAILURE
    - uprv_strlen
    - u_strToUTF8WithSub
    - u_strFromUTF8WithSub
    - free
    - u_strToUTF8
    - log_verbose
    - log_err
    - u_strlen
    - u_memcmp
    - UPRV_LENGTHOF
    - uprv_memcmp
    - u_errorName
    - u_strFromUTF8
    linkageType: ''
    returnType: void
    signature: 'static void Test_UChar_UTF8_API(void) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: u_strToWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1182,1
    - Dst: u_strToWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1200,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:1226,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1231,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/custrtrn.c:1253,1
    - Dst: u_strToWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1255,1
    - Dst: u_strFromWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1259,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1277,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/custrtrn.c:1283,1
    - Dst: u_strFromWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1308,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/custrtrn.c:1284,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1350,1
    - Dst: u_terminateWChars
      Src: /src/icu/source/test/cintltst/custrtrn.c:1355,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1365,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/custrtrn.c:1302,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1349,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1366,1
    - Dst: u_strFromWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1179,1
    - Dst: u_strFromWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1188,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1183,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1195,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/custrtrn.c:1204,1
    - Dst: u_strFromWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1210,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1220,1
    - Dst: u_strToWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1206,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/custrtrn.c:1238,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/custrtrn.c:1263,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1327,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/custrtrn.c:1312,1
    - Dst: u_terminateWChars
      Src: /src/icu/source/test/cintltst/custrtrn.c:1347,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1318,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1331,1
    - Dst: u_terminateWChars
      Src: /src/icu/source/test/cintltst/custrtrn.c:1363,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1363,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1347,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1180,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1190,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1195,1
    - Dst: u_strFromWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1217,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1218,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/custrtrn.c:1215,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1220,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1235,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/custrtrn.c:1237,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:1271,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/custrtrn.c:1333,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/custrtrn.c:1334,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1374,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/custrtrn.c:1321,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1190,1
    - Dst: u_strToWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1193,1
    - Dst: u_strToWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1249,1
    - Dst: u_strFromWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1265,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1268,1
    - Dst: u_strToWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1304,1
    - Dst: u_strFromWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1314,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1357,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1358,1
    - Dst: u_terminateWChars
      Src: /src/icu/source/test/cintltst/custrtrn.c:1371,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1373,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/custrtrn.c:1378,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1281,1
    - Dst: u_strToWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:1298,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 220
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1380
      start: 1165
    functionDepth: 0
    functionLinenumber: 1165
    functionLinenumberEnd: 1380
    functionName: Test_UChar_WCHART_API
    functionSourceFile: /src/icu/source/test/cintltst/custrtrn.c
    functionUses: []
    functionsReached:
    - malloc
    - log_info
    - UPRV_LENGTHOF
    - U_FAILURE
    - free
    - log_verbose
    - log_err
    - u_terminateWChars
    - u_strToWCS
    - u_strFromWCS
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void Test_UChar_WCHART_API(void) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1838,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1870,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1880,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1892,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1897,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1917,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1930,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1949,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1970,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1976,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1985,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1944,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1797,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1747,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1753,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1756,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1778,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1849,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1844,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1807,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:1785,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1855,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1910,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1843,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1854,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1781,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1829,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1877,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1891,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1907,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1967,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1979,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1833,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:1811,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1751,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1761,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1766,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1769,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1770,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1776,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1802,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1886,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1746,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1773,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1789,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1827,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1832,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1875,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1923,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1927,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1988,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1888,1
    - Dst: u_strchr
      Src: /src/icu/source/test/cintltst/custrtrn.c:1739,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:1747,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1764,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1832,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1953,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1959,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1975,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1984,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1847,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1787,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1817,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1849,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1912,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1921,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1933,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1941,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1958,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1950,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1955,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1823,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1858,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:1798,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1862,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1895,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1901,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1962,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:1908,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1944,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1988,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1751,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:1773,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1776,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1782,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1804,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1836,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1815,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1867,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1882,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1886,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1933,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1838,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1744,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1759,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1794,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1810,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1899,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1905,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1926,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1953,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1749,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:1760,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1764,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1802,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1857,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1894,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1904,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:1858,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/custrtrn.c:1772,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:1895,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1912,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1940,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1972,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1981,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1743,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1757,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1762,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1864,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1964,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:1824,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1781,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1791,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1827,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1785,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1871,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1875,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1930,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1970,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1979,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1760,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1862,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1840,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1899,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1962,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1946,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1815,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1836,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1851,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:1789,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:1820,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1908,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1914,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:1918,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/custrtrn.c:1921,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/custrtrn.c:1937,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/custrtrn.c:1871,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 414
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1690
    functionDepth: 0
    functionLinenumber: 1690
    functionLinenumberEnd: 1990
    functionName: Test_strFromJavaModifiedUTF8
    functionSourceFile: /src/icu/source/test/cintltst/custrtrn.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - u_strchr
    - memset
    - u_strFromJavaModifiedUTF8WithSub
    - log_err
    - memcmp
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void Test_strFromJavaModifiedUTF8() '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:2025,1
    - Dst: u_strFromUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:2033,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:2035,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:2051,1
    - Dst: u_strFromJavaModifiedUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:2049,1
    - Dst: u_strToUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:2067,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:2069,1
    - Dst: u_strToUTF32
      Src: /src/icu/source/test/cintltst/custrtrn.c:2075,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:2077,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:2109,1
    - Dst: u_strFromUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:2009,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:2017,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:2059,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:2067,1
    - Dst: u_strToUTF32WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:2083,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:2085,1
    - Dst: u_strToJavaModifiedUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:2091,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:2093,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:2111,1
    - Dst: u_strFromUTF8WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:2017,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:2019,1
    - Dst: u_strFromUTF8Lenient
      Src: /src/icu/source/test/cintltst/custrtrn.c:2025,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:2027,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:2033,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:2041,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:2075,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:2083,1
    - Dst: u_strFromWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:2101,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:2101,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:2103,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:2009,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:2011,1
    - Dst: u_strFromUTF32WithSub
      Src: /src/icu/source/test/cintltst/custrtrn.c:2041,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:2043,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/custrtrn.c:2059,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:2049,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/custrtrn.c:2061,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/custrtrn.c:2091,1
    - Dst: u_strToWCS
      Src: /src/icu/source/test/cintltst/custrtrn.c:2109,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 193
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2115
      start: 1993
    functionDepth: 0
    functionLinenumber: 1993
    functionLinenumberEnd: 2115
    functionName: TestNullEmptySource
    functionSourceFile: /src/icu/source/test/cintltst/custrtrn.c
    functionUses: []
    functionsReached:
    - u_strFromUTF8Lenient
    - u_strFromUTF32
    - u_strToUTF8WithSub
    - u_strToJavaModifiedUTF8
    - u_strFromJavaModifiedUTF8WithSub
    - u_strFromUTF8WithSub
    - u_strToUTF8
    - u_strFromUTF32WithSub
    - log_err
    - u_strToUTF32
    - u_strFromWCS
    - UPRV_LENGTHOF
    - u_strToUTF32WithSub
    - u_strToWCS
    - u_strFromUTF8
    linkageType: ''
    returnType: void
    signature: 'static void TestNullEmptySource() '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - s
    - t
    - length
    argTypes:
    - UChar*
    - UChar*
    - int32_t
    constantsTouched: []
    func_position:
      end: 878
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 878
    functionName: equalAnyFFFD
    functionSourceFile: /src/icu/source/test/cintltst/custrtrn.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool equalAnyFFFD(const UChar *s, const UChar *t, int32_t
      length) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - condition
    - message
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: doAssert
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void doAssert(int condition, const char *message) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1446,1
    - Dst: ucol_getLocaleByType
      Src: /src/icu/source/test/cintltst/capitst.c:1460,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1461,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/capitst.c:1471,1
    - Dst: ucol_getLocaleByType
      Src: /src/icu/source/test/cintltst/capitst.c:1480,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1482,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:1495,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1466,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:1493,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/capitst.c:1403,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/capitst.c:1435,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1437,1
    - Dst: ucol_getLocaleByType
      Src: /src/icu/source/test/cintltst/capitst.c:1444,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1442,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:1453,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:1469,1
    - Dst: ucol_getLocaleByType
      Src: /src/icu/source/test/cintltst/capitst.c:1485,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1487,1
    - Dst: ucol_getLocaleByType
      Src: /src/icu/source/test/cintltst/capitst.c:1489,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/capitst.c:1478,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/capitst.c:1495,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1426,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1425,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:1424,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:1426,1
    - Dst: ucol_getLocaleByType
      Src: /src/icu/source/test/cintltst/capitst.c:1434,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1436,1
    - Dst: ucol_getLocaleByType
      Src: /src/icu/source/test/cintltst/capitst.c:1440,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1445,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1436,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:1448,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/capitst.c:1455,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1491,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:1468,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:1422,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:1427,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1441,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:1454,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1462,1
    - Dst: ucol_getLocaleByType
      Src: /src/icu/source/test/cintltst/capitst.c:1464,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1465,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/capitst.c:1481,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1497
    functionName: TestGetLocale
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - u_unescape
    - U_FAILURE
    - log_err_status
    - ucol_getLocaleByType
    - strcmp
    - log_data_err
    - U_SUCCESS
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'void TestGetLocale() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_countAvailable
      Src: /src/icu/source/test/cintltst/capitst.c:1503,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1509,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1512,1
    - Dst: ucol_getAvailable
      Src: /src/icu/source/test/cintltst/capitst.c:1512,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1500
    functionDepth: 0
    functionLinenumber: 1500
    functionLinenumberEnd: 1515
    functionName: TestGetAll
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_getAvailable
    - ucol_countAvailable
    - log_verbose
    - log_err
    linkageType: ''
    returnType: void
    signature: 'void TestGetAll() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:1716,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/capitst.c:1719,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1720,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1721,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/capitst.c:1717,1
    - Dst: doOverrunTest
      Src: /src/icu/source/test/cintltst/capitst.c:1722,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1724,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1725,1
    - Dst: doOverrunTest
      Src: /src/icu/source/test/cintltst/capitst.c:1726,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1728,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1733,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:1739,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1734,1
    - Dst: doOverrunTest
      Src: /src/icu/source/test/cintltst/capitst.c:1730,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1729,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1732,1
    - Dst: doOverrunTest
      Src: /src/icu/source/test/cintltst/capitst.c:1736,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1735,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1740
      start: 1711
    functionDepth: 0
    functionLinenumber: 1711
    functionLinenumberEnd: 1740
    functionName: TestSortKeyBufferOverrun
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - u_unescape
    - doOverrunTest
    - U_SUCCESS
    - ucol_setAttribute
    - log_verbose
    linkageType: ''
    returnType: void
    signature: 'void TestSortKeyBufferOverrun(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:1864,1
    - Dst: ucol_getTailoredSet
      Src: /src/icu/source/test/cintltst/capitst.c:1868,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/capitst.c:1866,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/capitst.c:1865,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/capitst.c:1867,1
    - Dst: uset_size
      Src: /src/icu/source/test/cintltst/capitst.c:1869,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1870,1
    - Dst: uset_size
      Src: /src/icu/source/test/cintltst/capitst.c:1870,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/capitst.c:1873,1
    - Dst: uset_containsString
      Src: /src/icu/source/test/cintltst/capitst.c:1874,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1875,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1880,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/capitst.c:1878,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:1882,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1884
      start: 1845
    functionDepth: 0
    functionLinenumber: 1845
    functionLinenumberEnd: 1884
    functionName: TestGetTailoredSet
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - uset_containsString
    - uset_size
    - u_unescape
    - log_err_status
    - U_SUCCESS
    - log_err
    - ucol_getTailoredSet
    - UPRV_LENGTHOF
    - uset_close
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'void TestGetTailoredSet() '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:2081,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:2097,1
    - Dst: ucol_openFromShortString
      Src: /src/icu/source/test/cintltst/capitst.c:2094,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:2070,1
    - Dst: ucol_normalizeShortDefinitionString
      Src: /src/icu/source/test/cintltst/capitst.c:2093,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:2109,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:2080,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/capitst.c:2085,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:2088,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2089,1
    - Dst: ucol_equals
      Src: /src/icu/source/test/cintltst/capitst.c:2103,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2104,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2113,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:2108,1
    - Dst: ucol_openFromShortString
      Src: /src/icu/source/test/cintltst/capitst.c:2078,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:2081,1
    - Dst: ucol_getShortDefinitionString
      Src: /src/icu/source/test/cintltst/capitst.c:2086,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2098,1
    - Dst: ucol_getShortDefinitionString
      Src: /src/icu/source/test/cintltst/capitst.c:2095,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2119
      start: 2022
    functionDepth: 0
    functionLinenumber: 2022
    functionLinenumberEnd: 2119
    functionName: TestShortString
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_getShortDefinitionString
    - ucol_openFromShortString
    - log_err_status
    - strcmp
    - ucol_normalizeShortDefinitionString
    - U_SUCCESS
    - ucol_equals
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestShortString(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:2226,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:2228,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:2229,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/capitst.c:2236,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:2247,1
    - Dst: ucol_getUnsafeSet
      Src: /src/icu/source/test/cintltst/capitst.c:2251,1
    - Dst: doSetsTest
      Src: /src/icu/source/test/cintltst/capitst.c:2253,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:2256,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/capitst.c:2256,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/capitst.c:2267,1
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/capitst.c:2219,1
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/capitst.c:2220,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:2230,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:2230,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:2239,1
    - Dst: uset_toPattern
      Src: /src/icu/source/test/cintltst/capitst.c:2254,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/capitst.c:2255,1
    - Dst: uset_getItemCount
      Src: /src/icu/source/test/cintltst/capitst.c:2256,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2258,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/capitst.c:2266,1
    - Dst: ucol_getContractionsAndExpansions
      Src: /src/icu/source/test/cintltst/capitst.c:2233,1
    - Dst: doSetsTest
      Src: /src/icu/source/test/cintltst/capitst.c:2234,1
    - Dst: uset_toPattern
      Src: /src/icu/source/test/cintltst/capitst.c:2235,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2247,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:2227,1
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/capitst.c:2221,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/capitst.c:2244,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2239,1
    - Dst: uset_toPattern
      Src: /src/icu/source/test/cintltst/capitst.c:2243,1
    - Dst: doSetsTest
      Src: /src/icu/source/test/cintltst/capitst.c:2242,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:2258,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:2262,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/capitst.c:2268,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2269
      start: 2157
    functionDepth: 0
    functionLinenumber: 2157
    functionLinenumberEnd: 2269
    functionName: TestGetContractionsAndUnsafes
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - doSetsTest
    - ucol_open
    - U_FAILURE
    - ucol_getContractionsAndExpansions
    - log_err_status
    - uset_getItemCount
    - uset_toPattern
    - U_SUCCESS
    - ucol_getUnsafeSet
    - log_verbose
    - uset_open
    - log_err
    - uset_close
    - UPRV_LENGTHOF
    - u_errorName
    - aescstrdup
    linkageType: ''
    returnType: void
    signature: 'static void TestGetContractionsAndUnsafes(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2130,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:2129,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:2130,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2134,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/capitst.c:2139,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/capitst.c:2139,1
    - Dst: uset_toPattern
      Src: /src/icu/source/test/cintltst/capitst.c:2136,1
    - Dst: uset_getItemCount
      Src: /src/icu/source/test/cintltst/capitst.c:2139,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:2138,1
    - Dst: uset_clear
      Src: /src/icu/source/test/cintltst/capitst.c:2142,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/capitst.c:2143,1
    - Dst: uset_applyPattern
      Src: /src/icu/source/test/cintltst/capitst.c:2144,1
    - Dst: uset_containsNone
      Src: /src/icu/source/test/cintltst/capitst.c:2149,1
    - Dst: uset_removeAll
      Src: /src/icu/source/test/cintltst/capitst.c:2135,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/capitst.c:2137,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:2145,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2146,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:2146,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2150,1
    - Dst: uset_clear
      Src: /src/icu/source/test/cintltst/capitst.c:2126,1
    - Dst: uset_applyPattern
      Src: /src/icu/source/test/cintltst/capitst.c:2128,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/capitst.c:2127,1
    - Dst: uset_containsAll
      Src: /src/icu/source/test/cintltst/capitst.c:2133,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:2136,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/capitst.c:2137,1
    - Dst: uset_toPattern
      Src: /src/icu/source/test/cintltst/capitst.c:2138,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 6
    argNames:
    - locale
    - ref
    - set
    - inSet
    - outSet
    - status
    argTypes:
    - char*
    - USet*
    - USet*
    - char*
    - char*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 2152
      start: 2121
    functionDepth: 0
    functionLinenumber: 2121
    functionLinenumberEnd: 2152
    functionName: doSetsTest
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - log_info
    - uset_applyPattern
    - uset_removeAll
    - u_unescape
    - U_FAILURE
    - uset_containsAll
    - uset_getItemCount
    - uset_toPattern
    - uset_clear
    - log_err
    - UPRV_LENGTHOF
    - uset_containsNone
    - u_errorName
    - aescstrdup
    linkageType: ''
    returnType: void
    signature: 'static void doSetsTest(const char *locale, const USet *ref, USet *set,
      const char* inSet, const char* outSet, UErrorCode *status) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/capitst.c:2304,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:2320,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:2322,1
    - Dst: genericOrderingTest
      Src: /src/icu/source/test/cintltst/capitst.c:2345,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:2345,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:2353,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:2319,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:2349,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:2352,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/capitst.c:2302,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/capitst.c:2315,1
    - Dst: ucol_cloneBinary
      Src: /src/icu/source/test/cintltst/capitst.c:2329,1
    - Dst: ucol_openBinary
      Src: /src/icu/source/test/cintltst/capitst.c:2334,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2337,1
    - Dst: genericOrderingTest
      Src: /src/icu/source/test/cintltst/capitst.c:2343,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:2343,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:2351,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:2354,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:2314,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:2316,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/capitst.c:2321,1
    - Dst: ucol_cloneBinary
      Src: /src/icu/source/test/cintltst/capitst.c:2325,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:2327,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:2326,1
    - Dst: ucol_openBinary
      Src: /src/icu/source/test/cintltst/capitst.c:2333,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:2341,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:2337,1
    - Dst: genericOrderingTest
      Src: /src/icu/source/test/cintltst/capitst.c:2341,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2355
      start: 2271
    functionDepth: 0
    functionLinenumber: 2271
    functionLinenumberEnd: 2355
    functionName: TestOpenBinary
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_openBinary
    - malloc
    - ucol_cloneBinary
    - ucol_open
    - u_unescape
    - U_FAILURE
    - log_data_err
    - free
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    - genericOrderingTest
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestOpenBinary(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/capitst.c:184,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:190,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:185,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:189,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/capitst.c:188,1
    - Dst: u_strToUTF8
      Src: /src/icu/source/test/cintltst/capitst.c:196,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:197,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:198,1
    - Dst: ucol_strcollUTF8
      Src: /src/icu/source/test/cintltst/capitst.c:205,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:206,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:207,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 7
    argNames:
    - coll
    - src
    - srcLen
    - tgt
    - tgtLen
    - expected
    - message
    argTypes:
    - UCollator*
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - UCollationResult
    - char*
    constantsTouched: []
    func_position:
      end: 209
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 209
    functionName: doStrcoll
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - ucol_strcollUTF8
    - u_strToUTF8
    - log_err
    - ucol_strcoll
    linkageType: ''
    returnType: void
    signature: 'static void doStrcoll(const UCollator* coll, const UChar* src, int32_t
      srcLen, const UChar* tgt, int32_t tgtLen, UCollationResult expected, const char
      *message) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:306,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:343,1
    - Dst: ucol_getDisplayName
      Src: /src/icu/source/test/cintltst/capitst.c:366,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/capitst.c:305,1
    - Dst: doStrcoll
      Src: /src/icu/source/test/cintltst/capitst.c:335,1
    - Dst: u_strFindFirst
      Src: /src/icu/source/test/cintltst/capitst.c:388,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:398,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:409,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:443,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:345,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:365,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:342,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:382,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:370,1
    - Dst: ucol_getRulesEx
      Src: /src/icu/source/test/cintltst/capitst.c:402,1
    - Dst: ucol_getDisplayName
      Src: /src/icu/source/test/cintltst/capitst.c:362,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:388,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:298,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:325,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/capitst.c:367,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:391,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:436,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:318,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:325,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:333,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:340,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:355,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:360,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:376,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:440,1
    - Dst: ucol_getStrength
      Src: /src/icu/source/test/cintltst/capitst.c:355,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:413,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:415,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/capitst.c:424,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:428,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:437,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:357,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:371,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:294,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/capitst.c:317,1
    - Dst: ucol_getUCAVersion
      Src: /src/icu/source/test/cintltst/capitst.c:316,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:332,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:335,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:347,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:425,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:426,1
    - Dst: ucol_getStrength
      Src: /src/icu/source/test/cintltst/capitst.c:356,1
    - Dst: ucol_getStrength
      Src: /src/icu/source/test/cintltst/capitst.c:357,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:296,1
    - Dst: doStrcoll
      Src: /src/icu/source/test/cintltst/capitst.c:325,1
    - Dst: ucol_getStrength
      Src: /src/icu/source/test/cintltst/capitst.c:425,1
    - Dst: ucol_getStrength
      Src: /src/icu/source/test/cintltst/capitst.c:426,1
    - Dst: ucol_getStrength
      Src: /src/icu/source/test/cintltst/capitst.c:427,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:427,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:374,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/capitst.c:418,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:421,1
    - Dst: austrdup
      Src: /src/icu/source/test/cintltst/capitst.c:436,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:297,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:337,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:345,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:356,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:393,1
    - Dst: ucol_getStrength
      Src: /src/icu/source/test/cintltst/capitst.c:420,1
    - Dst: ucol_getStrength
      Src: /src/icu/source/test/cintltst/capitst.c:421,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:434,1
    - Dst: ucol_getDisplayName
      Src: /src/icu/source/test/cintltst/capitst.c:435,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:378,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:323,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:322,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:330,1
    - Dst: doStrcoll
      Src: /src/icu/source/test/cintltst/capitst.c:340,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:367,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/capitst.c:385,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:379,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:399,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:406,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:340,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/capitst.c:354,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:349,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:295,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:396,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/capitst.c:404,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:419,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:439,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:309,1
    - Dst: u_getUnicodeVersion
      Src: /src/icu/source/test/cintltst/capitst.c:315,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:353,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:368,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:407,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:410,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:415,1
    - Dst: ucol_getRules
      Src: /src/icu/source/test/cintltst/capitst.c:383,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:328,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:335,1
    - Dst: doStrcoll
      Src: /src/icu/source/test/cintltst/capitst.c:345,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/capitst.c:378,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:414,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:377,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:350,1
    - Dst: doStrcoll
      Src: /src/icu/source/test/cintltst/capitst.c:330,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:351,1
    - Dst: ucol_getRulesEx
      Src: /src/icu/source/test/cintltst/capitst.c:397,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:412,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:420,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:423,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:430,1
    - Dst: ucol_getDisplayName
      Src: /src/icu/source/test/cintltst/capitst.c:431,1
    - Dst: ucol_getStrength
      Src: /src/icu/source/test/cintltst/capitst.c:350,1
    - Dst: ucol_getStrength
      Src: /src/icu/source/test/cintltst/capitst.c:351,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:371,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:298,1
    - Dst: ucol_getVersion
      Src: /src/icu/source/test/cintltst/capitst.c:302,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:327,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:330,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:338,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:401,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:440,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 171
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 445
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 445
    functionName: TestProperty
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_getStrength
    - ucol_open
    - ucol_getVersion
    - log_err_status
    - free
    - u_strFindFirst
    - u_errorName
    - u_getUnicodeVersion
    - ucol_close
    - ucol_getRules
    - U_FAILURE
    - doStrcoll
    - log_data_err
    - u_strlen
    - log_verbose
    - ucol_getUCAVersion
    - doAssert
    - u_uastrcpy
    - ucol_getRulesEx
    - log_err
    - uprv_memcmp
    - ucol_setStrength
    - ucol_getDisplayName
    - malloc
    - austrdup
    - myErrorName
    linkageType: ''
    returnType: void
    signature: 'void TestProperty() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:576,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:578,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:583,1
    - Dst: ucol_greaterOrEqual
      Src: /src/icu/source/test/cintltst/capitst.c:584,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:584,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:587,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:591,1
    - Dst: ucol_greaterOrEqual
      Src: /src/icu/source/test/cintltst/capitst.c:591,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:591,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:594,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/capitst.c:596,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:603,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:597,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:597,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:602,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:572,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:572,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:580,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:582,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:583,1
    - Dst: ucol_greater
      Src: /src/icu/source/test/cintltst/capitst.c:583,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:589,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:589,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:590,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:590,1
    - Dst: ucol_greaterOrEqual
      Src: /src/icu/source/test/cintltst/capitst.c:598,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/capitst.c:593,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:568,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:575,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:577,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/capitst.c:582,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:582,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:582,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:583,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/capitst.c:586,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/capitst.c:589,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:589,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:596,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:590,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:604,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:598,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:570,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:571,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:584,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:584,1
    - Dst: ucol_greater
      Src: /src/icu/source/test/cintltst/capitst.c:590,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:591,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:596,1
    - Dst: ucol_greater
      Src: /src/icu/source/test/cintltst/capitst.c:597,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:598,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:601,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:596,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:598,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:597,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 606
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 606
    functionName: TestCompare
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - malloc
    - u_uastrcpy
    - ucol_open
    - ucol_greater
    - U_FAILURE
    - log_err_status
    - ucol_setStrength
    - ucol_greaterOrEqual
    - u_strlen
    - myErrorName
    - log_verbose
    - free
    - ucol_equal
    - doAssert
    linkageType: ''
    returnType: void
    signature: 'void TestCompare() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:809,1
    - Dst: ucol_cloneBinary
      Src: /src/icu/source/test/cintltst/capitst.c:819,1
    - Dst: ucol_cloneBinary
      Src: /src/icu/source/test/cintltst/capitst.c:827,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:843,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:844,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:849,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:850,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:852,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:857,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/capitst.c:815,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:826,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:838,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:848,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:856,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:814,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:815,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:821,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:829,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:837,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:838,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:845,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:855,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:821,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:828,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:829,1
    - Dst: ucol_openBinary
      Src: /src/icu/source/test/cintltst/capitst.c:836,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:830,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:846,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:847,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:853,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 858
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 858
    functionName: TestCloneBinary
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_openBinary
    - malloc
    - ucol_cloneBinary
    - ucol_open
    - ucol_getSortKey
    - U_FAILURE
    - log_data_err
    - strcmp
    - free
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'void TestCloneBinary() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/icu/source/test/cintltst/capitst.c:1140,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1179,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1197,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1094,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1163,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1185,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1146,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1100,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1114,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1130,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/capitst.c:1163,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1174,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1191,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1199,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1202,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1208,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/capitst.c:1118,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1128,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1150,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1183,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1211,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1086,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1113,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1135,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1138,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1181,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1187,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1210,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/capitst.c:1116,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1180,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1147,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1185,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1145,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1089,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1107,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/capitst.c:1117,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1130,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1143,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1183,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1181,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/capitst.c:1177,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/capitst.c:1129,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1133,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1138,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/capitst.c:1164,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1173,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:1207,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1209,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1085,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1099,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1127,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1135,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1172,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1168,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1192,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1180,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:1078,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1110,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:1122,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1127,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/capitst.c:1134,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1141,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1146,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1167,1
    - Dst: ucol_sortKeyToString
      Src: /src/icu/source/test/cintltst/capitst.c:1149,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1164,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1193,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:1121,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1186,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1190,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1200,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1112,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1132,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1176,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1178,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1187,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1145,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:1098,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1132,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1141,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1206,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/capitst.c:1159,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:1100,1
    - Dst: ucol_getStrength
      Src: /src/icu/source/test/cintltst/capitst.c:1105,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1125,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1182,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1139,1
    - Dst: strcpy
      Src: /src/icu/source/test/cintltst/capitst.c:1158,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1147,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1189,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1212,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:1123,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1178,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1186,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1195,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 174
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1070
    functionDepth: 0
    functionLinenumber: 1070
    functionLinenumberEnd: 1214
    functionName: TestSortKey
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_getStrength
    - ucol_open
    - log_err_status
    - ucol_setAttribute
    - free
    - ucol_close
    - U_FAILURE
    - strcpy
    - u_strlen
    - log_verbose
    - memcmp
    - UPRV_LENGTHOF
    - doAssert
    - u_uastrcpy
    - ucol_getSortKey
    - memset
    - strcmp
    - log_err
    - ucol_setStrength
    - sprintf
    - malloc
    - myErrorName
    - strlen
    - ucol_sortKeyToString
    linkageType: ''
    returnType: void
    signature: 'void TestSortKey() '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1326,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1350,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1368,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1387,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:1394,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1294,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/capitst.c:1300,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:1302,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:1303,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1310,1
    - Dst: ucol_primaryOrder
      Src: /src/icu/source/test/cintltst/capitst.c:1364,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/capitst.c:1323,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:1356,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1352,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/capitst.c:1354,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:1320,1
    - Dst: ucol_primaryOrder
      Src: /src/icu/source/test/cintltst/capitst.c:1350,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1396,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:1278,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/capitst.c:1335,1
    - Dst: ucol_secondaryOrder
      Src: /src/icu/source/test/cintltst/capitst.c:1351,1
    - Dst: ucol_tertiaryOrder
      Src: /src/icu/source/test/cintltst/capitst.c:1365,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1369,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/capitst.c:1372,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:1374,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/capitst.c:1391,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:1281,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1331,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/capitst.c:1337,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:1339,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1365,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1390,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:1287,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1292,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1308,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1320,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/capitst.c:1359,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:1361,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1336,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1356,1
    - Dst: ucol_secondaryOrder
      Src: /src/icu/source/test/cintltst/capitst.c:1351,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/capitst.c:1393,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1280,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1293,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1306,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1309,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1344,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1343,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1364,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1277,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1286,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1332,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1281,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1302,1
    - Dst: ucol_setOffset
      Src: /src/icu/source/test/cintltst/capitst.c:1318,1
    - Dst: ucol_primaryOrder
      Src: /src/icu/source/test/cintltst/capitst.c:1350,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/capitst.c:1367,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:1369,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/capitst.c:1326,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1285,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1301,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1389,1
    - Dst: ucol_tertiaryOrder
      Src: /src/icu/source/test/cintltst/capitst.c:1352,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1319,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1290,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1355,1
    - Dst: ucol_tertiaryOrder
      Src: /src/icu/source/test/cintltst/capitst.c:1365,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1374,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1351,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1279,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:1288,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1324,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1373,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1300,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/capitst.c:1330,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:1332,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1338,1
    - Dst: ucol_tertiaryOrder
      Src: /src/icu/source/test/cintltst/capitst.c:1352,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1361,1
    - Dst: ucol_setOffset
      Src: /src/icu/source/test/cintltst/capitst.c:1329,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1360,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1348,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:1311,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:1294,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:1295,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/capitst.c:1292,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/capitst.c:1308,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:1310,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/capitst.c:1316,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/capitst.c:1392,1
    - Dst: ucol_primaryOrder
      Src: /src/icu/source/test/cintltst/capitst.c:1364,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1339,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1298,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1314,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:1344,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/capitst.c:1342,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 139
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1269
    functionDepth: 0
    functionLinenumber: 1269
    functionLinenumberEnd: 1397
    functionName: TestElemIter
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_open
    - log_err_status
    - ucol_setAttribute
    - ucol_getOffset
    - free
    - ucol_close
    - ucol_tertiaryOrder
    - U_FAILURE
    - u_strlen
    - log_verbose
    - ucol_primaryOrder
    - doAssert
    - u_uastrcpy
    - ucol_secondaryOrder
    - log_err
    - malloc
    - ucol_setOffset
    - ucol_next
    - ucol_openElements
    - myErrorName
    - ucol_closeElements
    linkageType: ''
    returnType: void
    signature: 'void TestElemIter() '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:1530,1
    - Dst: ucol_getBound
      Src: /src/icu/source/test/cintltst/capitst.c:1622,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1630,1
    - Dst: rand
      Src: /src/icu/source/test/cintltst/capitst.c:1640,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1648,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/capitst.c:1662,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1663,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1668,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1669,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/capitst.c:1614,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1628,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1650,1
    - Dst: ucol_getBound
      Src: /src/icu/source/test/cintltst/capitst.c:1644,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:1661,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1673,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/capitst.c:1679,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:1610,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1615,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1631,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1647,1
    - Dst: rand
      Src: /src/icu/source/test/cintltst/capitst.c:1641,1
    - Dst: ucol_getBound
      Src: /src/icu/source/test/cintltst/capitst.c:1665,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/capitst.c:1667,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1672,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/capitst.c:1612,1
    - Dst: qsort
      Src: /src/icu/source/test/cintltst/capitst.c:1618,1
    - Dst: ucol_getBound
      Src: /src/icu/source/test/cintltst/capitst.c:1623,1
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1627,1
    - Dst: ucol_getBound
      Src: /src/icu/source/test/cintltst/capitst.c:1643,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1651,1
    - Dst: ucol_getBound
      Src: /src/icu/source/test/cintltst/capitst.c:1664,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:1666,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1670,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:1677,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1527
    functionDepth: 0
    functionLinenumber: 1527
    functionLinenumberEnd: 1682
    functionName: TestBounds
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_getSortKey
    - ucol_open
    - u_unescape
    - rand
    - qsort
    - strcmp
    - ucol_getBound
    - log_data_err
    - U_SUCCESS
    - log_err
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'void TestBounds() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1887,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1889,1
    - Dst: uprv_min
      Src: /src/icu/source/test/cintltst/capitst.c:1889,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1888,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1890
      start: 1886
    functionDepth: 0
    functionLinenumber: 1886
    functionLinenumberEnd: 1890
    functionName: tMemCmp
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - memcmp
    - strlen
    - uprv_min
    linkageType: ''
    returnType: int
    signature: 'static int tMemCmp(const uint8_t *first, const uint8_t *second) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:66,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:70,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:74,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:80,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:84,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:90,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:69,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:79,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:83,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:87,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:89,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:65,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:68,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:73,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:82,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:76,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:78,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:86,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:88,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:67,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:71,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:75,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:77,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:81,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:85,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/capitst.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 92
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 92
    functionName: addCollAPITest
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addCollAPITest(TestNode** root) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:238,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:244,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:253,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:259,1
    - Dst: ures_getBinary
      Src: /src/icu/source/test/cintltst/capitst.c:243,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:256,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/capitst.c:228,1
    - Dst: ucol_cloneRuleData
      Src: /src/icu/source/test/cintltst/capitst.c:230,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/capitst.c:229,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:226,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:238,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:248,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:262,1
    - Dst: ucol_getDefaultRulesArray
      Src: /src/icu/source/test/cintltst/capitst.c:225,1
    - Dst: ures_open
      Src: /src/icu/source/test/cintltst/capitst.c:236,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:237,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:245,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/capitst.c:255,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/capitst.c:261,1
    - Dst: ures_getByKey
      Src: /src/icu/source/test/cintltst/capitst.c:241,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/capitst.c:242,1
    - Dst: ures_close
      Src: /src/icu/source/test/cintltst/capitst.c:260,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 264
    functionName: TestGetDefaultRules
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ures_getByKey
    - ures_close
    - ucol_getDefaultRulesArray
    - ucol_cloneRuleData
    - U_FAILURE
    - U_SUCCESS
    - ures_getBinary
    - myErrorName
    - log_verbose
    - log_err
    - free
    - memcmp
    - ures_open
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'void TestGetDefaultRules() '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:458,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:473,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:477,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:494,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:494,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:506,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:511,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/capitst.c:515,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:516,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:517,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:527,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:528,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:536,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:551,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:556,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:505,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:503,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:535,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/capitst.c:462,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:463,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:462,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/capitst.c:471,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:472,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:473,1
    - Dst: ucol_getRules
      Src: /src/icu/source/test/cintltst/capitst.c:489,1
    - Dst: ucol_getRules
      Src: /src/icu/source/test/cintltst/capitst.c:490,1
    - Dst: ucol_getRules
      Src: /src/icu/source/test/cintltst/capitst.c:491,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:497,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/capitst.c:552,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:540,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:558,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:528,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:520,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:536,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:459,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:487,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:483,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:493,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:493,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:495,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:495,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:499,1
    - Dst: ucol_getRules
      Src: /src/icu/source/test/cintltst/capitst.c:502,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:508,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:522,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/capitst.c:547,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:517,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/capitst.c:533,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/capitst.c:534,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:548,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:554,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/capitst.c:525,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:515,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:521,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:552,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:464,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:464,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:468,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:471,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:481,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:482,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:483,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/capitst.c:497,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:498,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:499,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:522,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/capitst.c:526,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:503,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:507,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:549,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/capitst.c:546,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 111
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 559
    functionName: TestRuleBasedColl
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - ucol_getRules
    - ucol_open
    - ucol_next
    - U_FAILURE
    - log_err_status
    - ucol_openElements
    - u_strlen
    - myErrorName
    - log_verbose
    - log_err
    - ucol_closeElements
    - u_strcmp
    - doAssert
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'void TestRuleBasedColl() '
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:666,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:676,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:687,1
    - Dst: ucol_safeClone
      Src: /src/icu/source/test/cintltst/capitst.c:698,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:715,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:720,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:729,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:741,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:756,1
    - Dst: ucol_greater
      Src: /src/icu/source/test/cintltst/capitst.c:757,1
    - Dst: ucol_greater
      Src: /src/icu/source/test/cintltst/capitst.c:801,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:667,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:670,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/capitst.c:673,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:674,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:693,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:702,1
    - Dst: ucol_safeClone
      Src: /src/icu/source/test/cintltst/capitst.c:685,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:718,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:722,1
    - Dst: ucol_safeClone
      Src: /src/icu/source/test/cintltst/capitst.c:745,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:747,1
    - Dst: ucol_equals
      Src: /src/icu/source/test/cintltst/capitst.c:758,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:759,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:762,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:775,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:803,1
    - Dst: ucol_equal
      Src: /src/icu/source/test/cintltst/capitst.c:794,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:787,1
    - Dst: ucol_safeClone
      Src: /src/icu/source/test/cintltst/capitst.c:773,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:797,1
    - Dst: ucol_greater
      Src: /src/icu/source/test/cintltst/capitst.c:756,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:761,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:665,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:672,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/capitst.c:678,1
    - Dst: ucol_safeClone
      Src: /src/icu/source/test/cintltst/capitst.c:691,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:700,1
    - Dst: ucol_safeClone
      Src: /src/icu/source/test/cintltst/capitst.c:707,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:710,1
    - Dst: ucol_safeClone
      Src: /src/icu/source/test/cintltst/capitst.c:718,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:731,1
    - Dst: ucol_safeClone
      Src: /src/icu/source/test/cintltst/capitst.c:737,1
    - Dst: ucol_safeClone
      Src: /src/icu/source/test/cintltst/capitst.c:781,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:783,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:800,1
    - Dst: ucol_equals
      Src: /src/icu/source/test/cintltst/capitst.c:786,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:801,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:794,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:757,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:783,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/capitst.c:799,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:801,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/capitst.c:770,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:671,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:698,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:708,1
    - Dst: ucol_safeClone
      Src: /src/icu/source/test/cintltst/capitst.c:727,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:739,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:753,1
    - Dst: ucol_safeClone
      Src: /src/icu/source/test/cintltst/capitst.c:755,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:756,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:756,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:757,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:773,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:801,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/capitst.c:791,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:782,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:792,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:776,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:757,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:794,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:794,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 146
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 805
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 805
    functionName: TestSafeClone
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - ucol_open
    - ucol_safeClone
    - ucol_greater
    - U_FAILURE
    - ucol_setStrength
    - log_data_err
    - u_errorName
    - ucol_equals
    - ucol_setAttribute
    - u_strlen
    - log_err
    - ucol_equal
    - doAssert
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'void TestSafeClone() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1228,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1230,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:1232,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1236,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1243,1
    - Dst: ucol_keyHashCode
      Src: /src/icu/source/test/cintltst/capitst.c:1251,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:1254,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1258,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1259,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1260,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1225,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:1225,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1235,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1242,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1244,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1244,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1257,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1256,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1250,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1229,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:1231,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1239,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/capitst.c:1233,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1237,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1240,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1242,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1247,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1249,1
    - Dst: ucol_keyHashCode
      Src: /src/icu/source/test/cintltst/capitst.c:1249,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1253,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1255,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1222,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:1223,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1224,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1239,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1238,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1236,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1238,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1241,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1241,1
    - Dst: ucol_keyHashCode
      Src: /src/icu/source/test/cintltst/capitst.c:1249,1
    - Dst: ucol_keyHashCode
      Src: /src/icu/source/test/cintltst/capitst.c:1250,1
    - Dst: ucol_keyHashCode
      Src: /src/icu/source/test/cintltst/capitst.c:1251,1
    - Dst: ucol_keyHashCode
      Src: /src/icu/source/test/cintltst/capitst.c:1250,1
    - Dst: doAssert
      Src: /src/icu/source/test/cintltst/capitst.c:1251,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1263
    functionName: TestHashCode
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - malloc
    - u_uastrcpy
    - ucol_open
    - ucol_getSortKey
    - U_FAILURE
    - log_err_status
    - u_strlen
    - myErrorName
    - log_verbose
    - free
    - doAssert
    - ucol_keyHashCode
    linkageType: ''
    returnType: void
    signature: 'void TestHashCode() '
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1747,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1755,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1761,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1767,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1791,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1797,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1803,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1806,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1809,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1833,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:1842,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1789,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1824,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1800,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1807,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1831,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1818,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1753,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1748,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1759,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1765,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1770,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1772,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1776,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1778,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1782,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1784,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1796,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1820,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1788,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1814,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1838,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1790,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1830,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1773,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1779,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1785,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1815,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1821,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1827,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1832,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1837,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1808,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1813,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1826,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1802,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:1745,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1752,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1754,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1758,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1760,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1771,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1764,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:1766,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1777,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1783,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1794,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1801,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1825,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1812,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1836,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:1839,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1795,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1819,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 111
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1742
    functionDepth: 0
    functionLinenumber: 1742
    functionLinenumberEnd: 1843
    functionName: TestAttribute
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - ucol_getAttribute
    - ucol_setAttribute
    linkageType: ''
    returnType: void
    signature: 'static void TestAttribute() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:2360,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/capitst.c:2362,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:2369,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2367,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:2367,1
    - Dst: ucol_getKeywordValues
      Src: /src/icu/source/test/cintltst/capitst.c:2370,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2371,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2374,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:2374,1
    - Dst: ucol_getKeywordValues
      Src: /src/icu/source/test/cintltst/capitst.c:2376,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2377,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2379
      start: 2357
    functionDepth: 0
    functionLinenumber: 2357
    functionLinenumberEnd: 2379
    functionName: TestDefault
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - log_data_err
    - log_err
    - ucol_getKeywordValues
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestDefault(void) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:96,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:117,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:122,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:117,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:127,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:128,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:135,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/capitst.c:141,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:135,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:148,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:149,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/capitst.c:155,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:124,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:124,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:134,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:129,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:140,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:147,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/capitst.c:160,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:142,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:129,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:156,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:159,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:164,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:120,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:123,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:133,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:149,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:161,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:154,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 165
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 165
    functionName: TestGetSetAttr
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - ucol_getAttribute
    - ucol_setAttribute
    - U_SUCCESS
    - log_err
    - UPRV_LENGTHOF
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'void TestGetSetAttr(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:884,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:877,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/capitst.c:886,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:887,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:893,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:899,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/capitst.c:908,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/capitst.c:910,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/capitst.c:912,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:913,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:919,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/capitst.c:884,1
    - Dst: ucol_sortKeyToString
      Src: /src/icu/source/test/cintltst/capitst.c:895,1
    - Dst: ucol_sortKeyToString
      Src: /src/icu/source/test/cintltst/capitst.c:902,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/capitst.c:910,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/capitst.c:912,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/capitst.c:914,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:917,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:875,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/capitst.c:888,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:888,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:892,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:900,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:908,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:898,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:894,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/capitst.c:909,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:914,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/capitst.c:906,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/capitst.c:908,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/capitst.c:909,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:912,1
    - Dst: aescstrdup
      Src: /src/icu/source/test/cintltst/capitst.c:913,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:918,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 921
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 921
    functionName: TestBengaliSortKey
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - malloc
    - ucol_getSortKey
    - log_info
    - U_FAILURE
    - log_data_err
    - free
    - myErrorName
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - ucol_strcoll
    - aescstrdup
    - ucol_openRules
    - ucol_sortKeyToString
    linkageType: ''
    returnType: void
    signature: 'static void TestBengaliSortKey(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1690,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1694,1
    - Dst: memset
      Src: /src/icu/source/test/cintltst/capitst.c:1693,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1700,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1696,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - coll
    - uString
    - strLen
    argTypes:
    - UCollator*
    - UChar*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1705
      start: 1684
    functionDepth: 0
    functionLinenumber: 1684
    functionLinenumberEnd: 1705
    functionName: doOverrunTest
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - memset
    - ucol_getSortKey
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void doOverrunTest(UCollator *coll, const UChar *uString, int32_t
      strLen) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1914,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/capitst.c:1902,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:1909,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1925,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/capitst.c:1934,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/capitst.c:1937,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1930,1
    - Dst: ucol_mergeSortkeys
      Src: /src/icu/source/test/cintltst/capitst.c:1949,1
    - Dst: tMemCmp
      Src: /src/icu/source/test/cintltst/capitst.c:1951,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1953,1
    - Dst: ucol_sortKeyToString
      Src: /src/icu/source/test/cintltst/capitst.c:1955,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1987,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1978,1
    - Dst: ucol_mergeSortkeys
      Src: /src/icu/source/test/cintltst/capitst.c:2000,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2002,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1915,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1917,1
    - Dst: genericLocaleStarter
      Src: /src/icu/source/test/cintltst/capitst.c:1926,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1938,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1943,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:1944,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1947,1
    - Dst: ucol_mergeSortkeys
      Src: /src/icu/source/test/cintltst/capitst.c:1948,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1952,1
    - Dst: ucol_sortKeyToString
      Src: /src/icu/source/test/cintltst/capitst.c:1954,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:2009,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:2016,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1959,1
    - Dst: ucol_sortKeyToString
      Src: /src/icu/source/test/cintltst/capitst.c:1961,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1916,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1929,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1958,1
    - Dst: ucol_sortKeyToString
      Src: /src/icu/source/test/cintltst/capitst.c:1960,1
    - Dst: ucol_mergeSortkeys
      Src: /src/icu/source/test/cintltst/capitst.c:1976,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1990,1
    - Dst: ucol_mergeSortkeys
      Src: /src/icu/source/test/cintltst/capitst.c:1991,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1998,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:2013,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:2015,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1988,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:2012,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:2014,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1993,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:1901,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1924,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1935,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1940,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1931,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/capitst.c:1946,1
    - Dst: tMemCmp
      Src: /src/icu/source/test/cintltst/capitst.c:1957,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1975,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/capitst.c:1989,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:2008,1
    - Dst: ucol_mergeSortkeys
      Src: /src/icu/source/test/cintltst/capitst.c:1996,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/capitst.c:2019,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:2010,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 126
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2021
      start: 1899
    functionDepth: 0
    functionLinenumber: 1899
    functionLinenumberEnd: 2021
    functionName: TestMergeSortKeys
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - malloc
    - ucol_open
    - ucol_getSortKey
    - u_unescape
    - ucol_mergeSortkeys
    - log_data_err
    - U_SUCCESS
    - ucol_setAttribute
    - ucol_sortKeyToString
    - free
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - tMemCmp
    - genericLocaleStarter
    linkageType: ''
    returnType: void
    signature: 'void TestMergeSortKeys(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:2385,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:2386,1
    - Dst: log_info
      Src: /src/icu/source/test/cintltst/capitst.c:2387,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2391,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:2387,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:2391,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:2394,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2395
      start: 2381
    functionDepth: 0
    functionLinenumber: 2381
    functionLinenumberEnd: 2395
    functionName: TestDefaultKeyword
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - log_info
    - U_FAILURE
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestDefaultKeyword(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:614,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:615,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:616,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:618,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:619,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:619,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:623,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:624,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:626,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:630,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:633,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:643,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:645,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:638,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:631,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:644,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:640,1
    - Dst: ucol_getAttribute
      Src: /src/icu/source/test/cintltst/capitst.c:637,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 646
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 646
    functionName: TestDecomposition
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - ucol_getAttribute
    - myErrorName
    - log_err
    linkageType: ''
    returnType: void
    signature: 'void TestDecomposition() '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: uset_addRange
      Src: /src/icu/source/test/cintltst/capitst.c:957,1
    - Dst: uset_open
      Src: /src/icu/source/test/cintltst/capitst.c:956,1
    - Dst: uset_addRange
      Src: /src/icu/source/test/cintltst/capitst.c:958,1
    - Dst: uloc_getAvailable
      Src: /src/icu/source/test/cintltst/capitst.c:969,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:970,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:989,1
    - Dst: rand
      Src: /src/icu/source/test/cintltst/capitst.c:1009,1
    - Dst: rand
      Src: /src/icu/source/test/cintltst/capitst.c:1018,1
    - Dst: rand
      Src: /src/icu/source/test/cintltst/capitst.c:1021,1
    - Dst: uset_charAt
      Src: /src/icu/source/test/cintltst/capitst.c:1022,1
    - Dst: ucol_sortKeyToString
      Src: /src/icu/source/test/cintltst/capitst.c:1039,1
    - Dst: ulocdata_close
      Src: /src/icu/source/test/cintltst/capitst.c:1059,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1054,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/capitst.c:1064,1
    - Dst: uset_charAt
      Src: /src/icu/source/test/cintltst/capitst.c:1020,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1049,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1029,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:943,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/capitst.c:988,1
    - Dst: ulocdata_open
      Src: /src/icu/source/test/cintltst/capitst.c:995,1
    - Dst: uset_charAt
      Src: /src/icu/source/test/cintltst/capitst.c:1009,1
    - Dst: uset_charAt
      Src: /src/icu/source/test/cintltst/capitst.c:1018,1
    - Dst: rand
      Src: /src/icu/source/test/cintltst/capitst.c:1020,1
    - Dst: uset_charAt
      Src: /src/icu/source/test/cintltst/capitst.c:1021,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1029,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1032,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1032,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1038,1
    - Dst: uset_close
      Src: /src/icu/source/test/cintltst/capitst.c:1056,1
    - Dst: uloc_countAvailable
      Src: /src/icu/source/test/cintltst/capitst.c:930,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:944,1
    - Dst: getTestOption
      Src: /src/icu/source/test/cintltst/capitst.c:963,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:975,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:974,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:975,1
    - Dst: ucol_getRules
      Src: /src/icu/source/test/cintltst/capitst.c:980,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:990,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:990,1
    - Dst: uset_size
      Src: /src/icu/source/test/cintltst/capitst.c:1003,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1035,1
    - Dst: ucol_getSortKey
      Src: /src/icu/source/test/cintltst/capitst.c:1038,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:1061,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/capitst.c:1035,1
    - Dst: ucol_sortKeyToString
      Src: /src/icu/source/test/cintltst/capitst.c:1033,1
    - Dst: rand
      Src: /src/icu/source/test/cintltst/capitst.c:1019,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/capitst.c:1026,1
    - Dst: uset_size
      Src: /src/icu/source/test/cintltst/capitst.c:959,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:973,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:983,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:991,1
    - Dst: ulocdata_getExemplarSet
      Src: /src/icu/source/test/cintltst/capitst.c:1002,1
    - Dst: rand
      Src: /src/icu/source/test/cintltst/capitst.c:1006,1
    - Dst: uset_removeAll
      Src: /src/icu/source/test/cintltst/capitst.c:1013,1
    - Dst: uset_size
      Src: /src/icu/source/test/cintltst/capitst.c:1014,1
    - Dst: uset_charAt
      Src: /src/icu/source/test/cintltst/capitst.c:1019,1
    - Dst: rand
      Src: /src/icu/source/test/cintltst/capitst.c:1022,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1030,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1048,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/capitst.c:1036,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/capitst.c:1055,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:1060,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:1043,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 128
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 1065
    functionName: TestOpenVsOpenRules
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_open
    - free
    - uset_open
    - uloc_countAvailable
    - ucol_close
    - ucol_getRules
    - uset_size
    - uloc_getAvailable
    - U_FAILURE
    - ulocdata_close
    - u_strlen
    - log_verbose
    - uset_charAt
    - UPRV_LENGTHOF
    - memcmp
    - getTestOption
    - ucol_getSortKey
    - uset_removeAll
    - log_err
    - ucol_openRules
    - malloc
    - rand
    - ulocdata_open
    - myErrorName
    - uset_close
    - uset_addRange
    - ulocdata_getExemplarSet
    - ucol_sortKeyToString
    linkageType: ''
    returnType: void
    signature: 'void TestOpenVsOpenRules() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uenum_reset
      Src: /src/icu/source/test/cintltst/capitst.c:2399,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/capitst.c:2400,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/capitst.c:2400,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:2401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 3
    argNames:
    - e
    - s
    - status
    argTypes:
    - UEnumeration*
    - char*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 2406
      start: 2397
    functionDepth: 0
    functionLinenumber: 2397
    functionLinenumberEnd: 2406
    functionName: uenum_contains
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - uenum_reset
    - U_SUCCESS
    - uenum_next
    - uprv_strcmp
    linkageType: ''
    returnType: UBool
    signature: 'static UBool uenum_contains(UEnumeration *e, const char *s, UErrorCode
      *status) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/capitst.c:49,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/capitst.c:52,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/capitst.c:54,1
    - Dst: sprintf
      Src: /src/icu/source/test/cintltst/capitst.c:58,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - coll
    - sortkey
    - buffer
    - len
    argTypes:
    - UCollator*
    - uint8_t*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 60
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 60
    functionName: ucol_sortKeyToString
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: char*
    signature: 'static char * U_EXPORT2 ucol_sortKeyToString(const UCollator *coll,
      const uint8_t *sortkey, char *buffer, uint32_t len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/icu/source/test/cintltst/capitst.c:1524,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - string1
    - string2
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 1525
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1525
    functionName: compare_teststruct
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: 'static int compare_teststruct(const void *string1, const void *string2) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/capitst.c:2435,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:2442,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:2441,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:2442,1
    - Dst: ucol_getKeywordValuesForLocale
      Src: /src/icu/source/test/cintltst/capitst.c:2440,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/capitst.c:2445,1
    - Dst: uenum_contains
      Src: /src/icu/source/test/cintltst/capitst.c:2449,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/capitst.c:2450,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2451,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2453,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/capitst.c:2462,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/capitst.c:2453,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/capitst.c:2459,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2463
      start: 2408
    functionDepth: 0
    functionLinenumber: 2408
    functionLinenumberEnd: 2463
    functionName: TestGetKeywordValuesForLocale
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - log_err_status
    - ucol_getKeywordValuesForLocale
    - U_SUCCESS
    - uenum_count
    - log_err
    - uenum_close
    - UPRV_LENGTHOF
    - u_errorName
    - uenum_contains
    linkageType: ''
    returnType: void
    signature: 'static void TestGetKeywordValuesForLocale(void) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/capitst.c:2488,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/capitst.c:2515,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/capitst.c:2518,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:2524,1
    - Dst: ucol_strcollUTF8
      Src: /src/icu/source/test/cintltst/capitst.c:2533,1
    - Dst: ucol_strcollUTF8
      Src: /src/icu/source/test/cintltst/capitst.c:2539,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2540,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:2547,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:2556,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2557,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2548,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/capitst.c:2481,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:2482,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2494,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2499,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2506,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2509,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2503,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2513,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2530,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2535,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/capitst.c:2564,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/capitst.c:2492,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/capitst.c:2497,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/capitst.c:2508,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/capitst.c:2502,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/capitst.c:2512,1
    - Dst: ucol_strcoll
      Src: /src/icu/source/test/cintltst/capitst.c:2505,1
    - Dst: ucol_strcollUTF8
      Src: /src/icu/source/test/cintltst/capitst.c:2524,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2525,1
    - Dst: ucol_strcollUTF8
      Src: /src/icu/source/test/cintltst/capitst.c:2528,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:2539,1
    - Dst: ucol_strcollUTF8
      Src: /src/icu/source/test/cintltst/capitst.c:2560,1
    - Dst: ucol_strcollUTF8
      Src: /src/icu/source/test/cintltst/capitst.c:2552,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/capitst.c:2483,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/capitst.c:2483,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2489,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2516,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2519,1
    - Dst: ucol_strcollUTF8
      Src: /src/icu/source/test/cintltst/capitst.c:2543,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2544,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2553,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:2560,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/capitst.c:2561,1
    - Dst: ucol_strcollUTF8
      Src: /src/icu/source/test/cintltst/capitst.c:2556,1
    - Dst: ucol_strcollUTF8
      Src: /src/icu/source/test/cintltst/capitst.c:2547,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:2552,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/capitst.c:2543,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 103
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2565
      start: 2465
    functionDepth: 0
    functionLinenumber: 2465
    functionLinenumberEnd: 2565
    functionName: TestStrcollNull
    functionSourceFile: /src/icu/source/test/cintltst/capitst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - ucol_strcollUTF8
    - myErrorName
    - log_err
    - ucol_strcoll
    linkageType: ''
    returnType: void
    signature: 'static void TestStrcollNull(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cturtst.c:86,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/cturtst.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: addTurkishCollTest
    functionSourceFile: /src/icu/source/test/cintltst/cturtst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addTurkishCollTest(TestNode** root) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cturtst.c:98,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cturtst.c:99,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cturtst.c:100,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cturtst.c:103,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cturtst.c:100,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cturtst.c:104,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cturtst.c:107,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cturtst.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 110
    functionName: TestTertiary
    functionSourceFile: /src/icu/source/test/cintltst/cturtst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - log_verbose
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestTertiary( ) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/cturtst.c:118,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/cturtst.c:120,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/cturtst.c:119,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/cturtst.c:123,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/cturtst.c:120,1
    - Dst: ucol_setStrength
      Src: /src/icu/source/test/cintltst/cturtst.c:124,1
    - Dst: doTest
      Src: /src/icu/source/test/cintltst/cturtst.c:127,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/cturtst.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 130
    functionName: TestPrimary
    functionSourceFile: /src/icu/source/test/cintltst/cturtst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - doTest
    - myErrorName
    - log_verbose
    - ucol_setStrength
    linkageType: ''
    returnType: void
    signature: 'static void TestPrimary() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/citertst.c:47,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/citertst.c:51,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/citertst.c:49,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/citertst.c:50,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/citertst.c:48,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/citertst.c:52,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/citertst.c:54,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/citertst.c:55,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/citertst.c:56,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/citertst.c:57,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/citertst.c:58,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/citertst.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: addCollIterTest
    functionSourceFile: /src/icu/source/test/cintltst/citertst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addCollIterTest(TestNode** root) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:88,1
    - Dst: ucol_reset
      Src: /src/icu/source/test/cintltst/citertst.c:98,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:115,1
    - Dst: ucol_setOffset
      Src: /src/icu/source/test/cintltst/citertst.c:116,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:118,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/citertst.c:122,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:123,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/citertst.c:129,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:78,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/citertst.c:74,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:101,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/citertst.c:91,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:94,1
    - Dst: ucol_previous
      Src: /src/icu/source/test/cintltst/citertst.c:110,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:117,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/citertst.c:116,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:119,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/citertst.c:130,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:131,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:126,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:80,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/citertst.c:77,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/citertst.c:83,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:84,1
    - Dst: ucol_setOffset
      Src: /src/icu/source/test/cintltst/citertst.c:100,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:102,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:93,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:95,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:100,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/citertst.c:106,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:107,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:124,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/citertst.c:73,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:82,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/citertst.c:90,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:103,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/citertst.c:111,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:112,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:125,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 133
    functionName: TestBug672
    functionSourceFile: /src/icu/source/test/cintltst/citertst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - ucol_open
    - ucol_next
    - ucol_setOffset
    - ucol_reset
    - U_FAILURE
    - log_err_status
    - ucol_openElements
    - U_SUCCESS
    - ucol_getOffset
    - u_strlen
    - myErrorName
    - log_verbose
    - log_err
    - ucol_previous
    - ucol_closeElements
    - uprv_memcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestBug672() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/citertst.c:146,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/citertst.c:154,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/citertst.c:166,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/citertst.c:187,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:188,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/citertst.c:150,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:157,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:158,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:164,1
    - Dst: ucol_reset
      Src: /src/icu/source/test/cintltst/citertst.c:174,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:178,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/citertst.c:182,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:191,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:194,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/citertst.c:198,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/citertst.c:205,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:207,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:199,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/citertst.c:147,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:170,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:177,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/citertst.c:167,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:179,1
    - Dst: ucol_previous
      Src: /src/icu/source/test/cintltst/citertst.c:186,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:193,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:195,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:201,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/citertst.c:206,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:202,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:200,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:156,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/citertst.c:159,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:160,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:169,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:171,1
    - Dst: ucol_setOffset
      Src: /src/icu/source/test/cintltst/citertst.c:176,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:176,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:183,1
    - Dst: ucol_setOffset
      Src: /src/icu/source/test/cintltst/citertst.c:192,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/citertst.c:192,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 209
    functionName: TestBug672Normalize
    functionSourceFile: /src/icu/source/test/cintltst/citertst.c
    functionUses: []
    functionsReached:
    - ucol_open
    - log_err_status
    - ucol_setAttribute
    - U_SUCCESS
    - ucol_getOffset
    - ucol_previous
    - ucol_close
    - U_FAILURE
    - u_strlen
    - log_verbose
    - u_uastrcpy
    - ucol_reset
    - log_err
    - uprv_memcmp
    - ucol_setOffset
    - ucol_next
    - ucol_openElements
    - myErrorName
    - ucol_closeElements
    linkageType: ''
    returnType: void
    signature: 'static void TestBug672Normalize() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/citertst.c:227,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/citertst.c:229,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:228,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:230,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:252,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:253,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:260,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:262,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/citertst.c:273,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:277,1
    - Dst: u_isdefined
      Src: /src/icu/source/test/cintltst/citertst.c:245,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:254,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:266,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/citertst.c:261,1
    - Dst: u_isdefined
      Src: /src/icu/source/test/cintltst/citertst.c:240,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:255,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:256,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:265,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:267,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:274,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:252,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:268,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:269,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 278
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 278
    functionName: TestUnicodeChar
    functionSourceFile: /src/icu/source/test/cintltst/citertst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - ucol_openElements
    - backAndForth
    - u_isdefined
    - myErrorName
    - u_strlen
    - log_err
    - log_verbose
    - ucol_closeElements
    linkageType: ''
    returnType: void
    signature: 'static void TestUnicodeChar() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:321,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/citertst.c:327,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/citertst.c:338,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/citertst.c:296,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:297,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:295,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:322,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:331,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:330,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:342,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/citertst.c:294,1
    - Dst: u_isdefined
      Src: /src/icu/source/test/cintltst/citertst.c:312,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:319,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:332,1
    - Dst: u_isdefined
      Src: /src/icu/source/test/cintltst/citertst.c:307,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:319,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:320,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:333,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:323,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:334,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:328,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:339,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 343
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 343
    functionName: TestNormalizedUnicodeChar
    functionSourceFile: /src/icu/source/test/cintltst/citertst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - U_FAILURE
    - log_err_status
    - ucol_openElements
    - backAndForth
    - u_isdefined
    - myErrorName
    - u_strlen
    - log_err
    - ucol_closeElements
    linkageType: ''
    returnType: void
    signature: 'static void TestNormalizedUnicodeChar() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:371,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/citertst.c:372,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:373,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/citertst.c:379,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:383,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/citertst.c:388,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:392,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:399,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:401,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/citertst.c:406,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/citertst.c:370,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/citertst.c:369,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:378,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:393,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:389,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:391,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:402,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:385,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/citertst.c:382,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:397,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:403,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/citertst.c:355,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/citertst.c:377,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:380,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/citertst.c:384,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/citertst.c:396,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:407,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:410,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 411
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 411
    functionName: TestNormalization
    functionSourceFile: /src/icu/source/test/cintltst/citertst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_unescape
    - U_FAILURE
    - log_err_status
    - ucol_openElements
    - backAndForth
    - ucol_setAttribute
    - myErrorName
    - ucol_closeElements
    - log_err
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestNormalization() '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:469,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:482,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:504,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/citertst.c:509,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:439,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/citertst.c:448,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:455,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/citertst.c:492,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:531,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:506,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/citertst.c:430,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:449,1
    - Dst: malloc
      Src: /src/icu/source/test/cintltst/citertst.c:459,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:461,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:493,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:503,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:445,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:463,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:490,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:498,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/citertst.c:549,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/citertst.c:431,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:438,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/citertst.c:460,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/citertst.c:553,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:468,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:482,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:544,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/citertst.c:530,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:511,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:434,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:525,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:484,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/citertst.c:541,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:478,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/citertst.c:481,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:546,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:436,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/citertst.c:437,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:444,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:475,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:503,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:527,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:489,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:543,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:524,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/citertst.c:473,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:542,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:505,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:551,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/citertst.c:502,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/citertst.c:432,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/citertst.c:443,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:456,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:462,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/citertst.c:467,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/citertst.c:522,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:434,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:453,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:474,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:510,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/citertst.c:449,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:464,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:499,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:523,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:532,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/citertst.c:493,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:435,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:461,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:483,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/citertst.c:488,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:496,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:543,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:524,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:477,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/citertst.c:472,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:451,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:494,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:545,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:550,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:473,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:485,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:526,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 127
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 554
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 554
    functionName: TestPrevious
    functionSourceFile: /src/icu/source/test/cintltst/citertst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - malloc
    - ucol_open
    - U_FAILURE
    - ucol_openElements
    - log_err_status
    - backAndForth
    - u_strlen
    - myErrorName
    - log_verbose
    - ucol_closeElements
    - log_err
    - free
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestPrevious() '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:575,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/citertst.c:572,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:574,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:576,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:578,1
    - Dst: ucol_setOffset
      Src: /src/icu/source/test/cintltst/citertst.c:584,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:591,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:590,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/citertst.c:590,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/citertst.c:599,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:652,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:686,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:642,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:693,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:640,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/citertst.c:671,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/citertst.c:675,1
    - Dst: ucol_setOffset
      Src: /src/icu/source/test/cintltst/citertst.c:589,1
    - Dst: getOrders
      Src: /src/icu/source/test/cintltst/citertst.c:597,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:601,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:608,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:609,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:610,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:611,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:612,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:620,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/citertst.c:629,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:641,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/citertst.c:647,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:657,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:698,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/citertst.c:651,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/citertst.c:571,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/citertst.c:573,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/citertst.c:577,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:585,1
    - Dst: ucol_previous
      Src: /src/icu/source/test/cintltst/citertst.c:585,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:586,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:608,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:618,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:620,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:628,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:639,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/citertst.c:656,1
    - Dst: ucol_reset
      Src: /src/icu/source/test/cintltst/citertst.c:668,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:694,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:697,1
    - Dst: assertEqual
      Src: /src/icu/source/test/cintltst/citertst.c:624,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:692,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:575,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:579,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:589,1
    - Dst: ucol_setOffset
      Src: /src/icu/source/test/cintltst/citertst.c:617,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:627,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/citertst.c:648,1
    - Dst: ucol_previous
      Src: /src/icu/source/test/cintltst/citertst.c:670,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:676,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/citertst.c:685,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:604,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:681,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/citertst.c:661,1
    - Dst: ucol_setAttribute
      Src: /src/icu/source/test/cintltst/citertst.c:637,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/citertst.c:680,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:662,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:638,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:603,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 699
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 699
    functionName: TestOffset
    functionSourceFile: /src/icu/source/test/cintltst/citertst.c
    functionUses: []
    functionsReached:
    - ucol_open
    - assertEqual
    - log_err_status
    - ucol_setAttribute
    - ucol_getOffset
    - free
    - U_SUCCESS
    - ucol_previous
    - ucol_close
    - U_FAILURE
    - u_strlen
    - log_verbose
    - u_uastrcpy
    - getOrders
    - ucol_reset
    - log_err
    - ucol_setOffset
    - ucol_next
    - ucol_openElements
    - myErrorName
    - ucol_closeElements
    linkageType: ''
    returnType: void
    signature: 'static void TestOffset() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/citertst.c:713,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/citertst.c:715,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:717,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:718,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/citertst.c:719,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:720,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/citertst.c:733,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:724,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:725,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:743,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:771,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:717,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:721,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:740,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:726,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:742,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:752,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:754,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:770,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:716,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/citertst.c:714,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:728,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:738,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:727,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:740,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:741,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:751,1
    - Dst: ucol_setText
      Src: /src/icu/source/test/cintltst/citertst.c:762,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:765,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:724,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/citertst.c:747,1
    - Dst: ucol_setText
      Src: /src/icu/source/test/cintltst/citertst.c:751,1
    - Dst: assertEqual
      Src: /src/icu/source/test/cintltst/citertst.c:758,1
    - Dst: myErrorName
      Src: /src/icu/source/test/cintltst/citertst.c:766,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:754,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:769,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 772
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 772
    functionName: TestSetText
    functionSourceFile: /src/icu/source/test/cintltst/citertst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - ucol_open
    - ucol_next
    - assertEqual
    - U_FAILURE
    - ucol_openElements
    - log_err_status
    - u_strlen
    - myErrorName
    - log_verbose
    - log_err
    - ucol_closeElements
    - ucol_setText
    linkageType: ''
    returnType: void
    signature: 'static void TestSetText() '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:817,1
    - Dst: ucol_previous
      Src: /src/icu/source/test/cintltst/citertst.c:829,1
    - Dst: ucol_getMaxExpansion
      Src: /src/icu/source/test/cintltst/citertst.c:816,1
    - Dst: ucol_setText
      Src: /src/icu/source/test/cintltst/citertst.c:839,1
    - Dst: ucol_getMaxExpansion
      Src: /src/icu/source/test/cintltst/citertst.c:851,1
    - Dst: ucol_previous
      Src: /src/icu/source/test/cintltst/citertst.c:859,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:861,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:862,1
    - Dst: ucol_getMaxExpansion
      Src: /src/icu/source/test/cintltst/citertst.c:871,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:872,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:896,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:795,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:792,1
    - Dst: ucol_previous
      Src: /src/icu/source/test/cintltst/citertst.c:809,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/citertst.c:811,1
    - Dst: ucol_setText
      Src: /src/icu/source/test/cintltst/citertst.c:828,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:832,1
    - Dst: ucol_previous
      Src: /src/icu/source/test/cintltst/citertst.c:812,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:843,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:877,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/citertst.c:904,1
    - Dst: ucol_getMaxExpansion
      Src: /src/icu/source/test/cintltst/citertst.c:896,1
    - Dst: u_strlen
      Src: /src/icu/source/test/cintltst/citertst.c:891,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:901,1
    - Dst: ucol_previous
      Src: /src/icu/source/test/cintltst/citertst.c:895,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/citertst.c:904,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/cintltst/citertst.c:791,1
    - Dst: ucol_previous
      Src: /src/icu/source/test/cintltst/citertst.c:805,1
    - Dst: ucol_getMaxExpansion
      Src: /src/icu/source/test/cintltst/citertst.c:830,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:831,1
    - Dst: ucol_previous
      Src: /src/icu/source/test/cintltst/citertst.c:849,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:851,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:852,1
    - Dst: U16_APPEND
      Src: /src/icu/source/test/cintltst/citertst.c:856,1
    - Dst: ucol_setText
      Src: /src/icu/source/test/cintltst/citertst.c:858,1
    - Dst: ucol_getMaxExpansion
      Src: /src/icu/source/test/cintltst/citertst.c:861,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:871,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:897,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/citertst.c:891,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:893,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/citertst.c:794,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/citertst.c:792,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/citertst.c:797,1
    - Dst: ucol_setText
      Src: /src/icu/source/test/cintltst/citertst.c:804,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:818,1
    - Dst: ucol_previous
      Src: /src/icu/source/test/cintltst/citertst.c:840,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:842,1
    - Dst: ucol_getMaxExpansion
      Src: /src/icu/source/test/cintltst/citertst.c:842,1
    - Dst: ucol_setText
      Src: /src/icu/source/test/cintltst/citertst.c:848,1
    - Dst: ucol_setText
      Src: /src/icu/source/test/cintltst/citertst.c:869,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:876,1
    - Dst: ucol_previous
      Src: /src/icu/source/test/cintltst/citertst.c:870,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:902,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 907
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 907
    functionName: TestMaxExpansion
    functionSourceFile: /src/icu/source/test/cintltst/citertst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - u_uastrcpy
    - U_FAILURE
    - ucol_openElements
    - ucol_getMaxExpansion
    - log_err_status
    - U_SUCCESS
    - u_strlen
    - ucol_previous
    - log_err
    - U16_APPEND
    - ucol_closeElements
    - ucol_setText
    - u_errorName
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestMaxExpansion() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/citertst.c:918,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:923,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/citertst.c:919,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - i1
    - i2
    argTypes:
    - UCollationElements*
    - UCollationElements*
    constantsTouched: []
    func_position:
      end: 930
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 930
    functionName: assertEqual
    functionSourceFile: /src/icu/source/test/cintltst/citertst.c
    functionUses: []
    functionsReached:
    - ucol_next
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void assertEqual(UCollationElements *i1, UCollationElements
      *i2) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ucol_setText
      Src: /src/icu/source/test/cintltst/citertst.c:1083,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:1091,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:1097,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:1111,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:1053,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:1055,1
    - Dst: ucol_openRules
      Src: /src/icu/source/test/cintltst/citertst.c:1051,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/citertst.c:1063,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:1067,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:1086,1
    - Dst: backAndForth
      Src: /src/icu/source/test/cintltst/citertst.c:1107,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:1110,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/citertst.c:1012,1
    - Dst: ucol_setText
      Src: /src/icu/source/test/cintltst/citertst.c:1066,1
    - Dst: u_unescape
      Src: /src/icu/source/test/cintltst/citertst.c:1072,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:1075,1
    - Dst: u_strchr
      Src: /src/icu/source/test/cintltst/citertst.c:1081,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/citertst.c:1095,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:1096,1
    - Dst: ucol_reset
      Src: /src/icu/source/test/cintltst/citertst.c:1106,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:1052,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/citertst.c:1056,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/citertst.c:1056,1
    - Dst: u_strchr
      Src: /src/icu/source/test/cintltst/citertst.c:1079,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/citertst.c:1084,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/citertst.c:1085,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:1068,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/citertst.c:1090,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:1092,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:1112,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1113
    functionName: TestDiscontiguos
    functionSourceFile: /src/icu/source/test/cintltst/citertst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_next
    - u_unescape
    - ucol_reset
    - U_FAILURE
    - u_strchr
    - ucol_openElements
    - log_err_status
    - backAndForth
    - log_verbose
    - log_err
    - ucol_closeElements
    - ucol_setText
    - u_errorName
    - ucol_openRules
    linkageType: ''
    returnType: void
    signature: 'static void TestDiscontiguos() '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/citertst.c:1191,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/citertst.c:1193,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:1220,1
    - Dst: ucol_previous
      Src: /src/icu/source/test/cintltst/citertst.c:1229,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:1231,1
    - Dst: ucol_setOffset
      Src: /src/icu/source/test/cintltst/citertst.c:1223,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:1253,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/citertst.c:1255,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/citertst.c:1255,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:1205,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/citertst.c:1228,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/citertst.c:1244,1
    - Dst: ucol_getOffset
      Src: /src/icu/source/test/cintltst/citertst.c:1201,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/citertst.c:1203,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:1242,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/citertst.c:1218,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/citertst.c:1190,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:1192,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/citertst.c:1202,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:1209,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:1216,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:1236,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:1246,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:1249,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:1251,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/citertst.c:1251,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1258
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1258
    functionName: TestSearchCollatorElements
    functionSourceFile: /src/icu/source/test/cintltst/citertst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - ucol_open
    - ucol_next
    - ucol_setOffset
    - ucol_openElements
    - log_data_err
    - U_SUCCESS
    - ucol_getOffset
    - log_verbose
    - log_err
    - ucol_previous
    - ucol_closeElements
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestSearchCollatorElements(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getOrders
      Src: /src/icu/source/test/cintltst/citertst.c:965,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/citertst.c:989,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/citertst.c:996,1
    - Dst: ucol_open
      Src: /src/icu/source/test/cintltst/citertst.c:960,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:962,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/cintltst/citertst.c:961,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:967,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/citertst.c:1001,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/citertst.c:1001,1
    - Dst: ucol_next
      Src: /src/icu/source/test/cintltst/citertst.c:995,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:998,1
    - Dst: ucol_openElements
      Src: /src/icu/source/test/cintltst/citertst.c:963,1
    - Dst: getOrders
      Src: /src/icu/source/test/cintltst/citertst.c:974,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:977,1
    - Dst: ucol_reset
      Src: /src/icu/source/test/cintltst/citertst.c:992,1
    - Dst: ucol_close
      Src: /src/icu/source/test/cintltst/citertst.c:999,1
    - Dst: ucol_closeElements
      Src: /src/icu/source/test/cintltst/citertst.c:997,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/citertst.c:984,1
    - Dst: free
      Src: /src/icu/source/test/cintltst/citertst.c:990,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 1003
    functionName: TestSmallBuffer
    functionSourceFile: /src/icu/source/test/cintltst/citertst.c
    functionUses: []
    functionsReached:
    - ucol_close
    - getOrders
    - ucol_open
    - ucol_next
    - ucol_reset
    - ucol_openElements
    - log_err_status
    - U_SUCCESS
    - free
    - ucol_closeElements
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestSmallBuffer() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addCStringTest
      Src: /src/icu/source/test/cintltst/cutiltst.c:38,1
    - Dst: addLocaleTest
      Src: /src/icu/source/test/cintltst/cutiltst.c:42,1
    - Dst: addTrieTest
      Src: /src/icu/source/test/cintltst/cutiltst.c:39,1
    - Dst: addTrie2Test
      Src: /src/icu/source/test/cintltst/cutiltst.c:40,1
    - Dst: addUCPTrieTest
      Src: /src/icu/source/test/cintltst/cutiltst.c:41,1
    - Dst: addCLDRTest
      Src: /src/icu/source/test/cintltst/cutiltst.c:43,1
    - Dst: addUnicodeTest
      Src: /src/icu/source/test/cintltst/cutiltst.c:44,1
    - Dst: addUStringTest
      Src: /src/icu/source/test/cintltst/cutiltst.c:45,1
    - Dst: addCaseTest
      Src: /src/icu/source/test/cintltst/cutiltst.c:46,1
    - Dst: addResourceBundleTest
      Src: /src/icu/source/test/cintltst/cutiltst.c:47,1
    - Dst: addHashtableTest
      Src: /src/icu/source/test/cintltst/cutiltst.c:49,1
    - Dst: addEnumerationTest
      Src: /src/icu/source/test/cintltst/cutiltst.c:50,1
    - Dst: addSortTest
      Src: /src/icu/source/test/cintltst/cutiltst.c:52,1
    - Dst: addNEWResourceBundleTest
      Src: /src/icu/source/test/cintltst/cutiltst.c:48,1
    - Dst: addPosixTest
      Src: /src/icu/source/test/cintltst/cutiltst.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 53
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 53
    functionName: addUtility
    functionSourceFile: /src/icu/source/test/cintltst/cutiltst.c
    functionUses: []
    functionsReached:
    - addNEWResourceBundleTest
    - addTrieTest
    - addResourceBundleTest
    - addUCPTrieTest
    - addUnicodeTest
    - addHashtableTest
    - addLocaleTest
    - addCaseTest
    - addPosixTest
    - addSortTest
    - addUStringTest
    - addCStringTest
    - addCLDRTest
    - addEnumerationTest
    - addTrie2Test
    linkageType: ''
    returnType: void
    signature: 'void addUtility(TestNode** root) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_GET_CHAR_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:249,1
    - Dst: U8_GET_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:256,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:258,1
    - Dst: UTF8_GET_CHAR_SAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:265,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:251,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:267,1
    - Dst: U8_GET
      Src: /src/icu/source/test/cintltst/utf8tst.c:270,1
    - Dst: UTF_IS_ERROR
      Src: /src/icu/source/test/cintltst/utf8tst.c:271,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:273,1
    - Dst: U8_GET_OR_FFFD
      Src: /src/icu/source/test/cintltst/utf8tst.c:276,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:279,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:284,1
    - Dst: UTF8_GET_CHAR_SAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:282,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 289
    functionName: TestGetChar
    functionSourceFile: /src/icu/source/test/cintltst/utf8tst.c
    functionUses: []
    functionsReached:
    - UTF8_GET_CHAR_UNSAFE
    - UTF_IS_ERROR
    - U8_GET
    - U8_GET_UNSAFE
    - log_err
    - U8_GET_OR_FFFD
    - UTF8_GET_CHAR_SAFE
    linkageType: ''
    returnType: void
    signature: 'static void TestGetChar() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:185,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:192,1
    - Dst: U8_LENGTH
      Src: /src/icu/source/test/cintltst/utf8tst.c:191,1
    - Dst: U8_LENGTH
      Src: /src/icu/source/test/cintltst/utf8tst.c:192,1
    - Dst: UTF8_CHAR_LENGTH
      Src: /src/icu/source/test/cintltst/utf8tst.c:189,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/utf8tst.c:194,1
    - Dst: U8_LENGTH
      Src: /src/icu/source/test/cintltst/utf8tst.c:194,1
    - Dst: UTF8_NEED_MULTIPLE_UCHAR
      Src: /src/icu/source/test/cintltst/utf8tst.c:198,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 203
    functionName: TestCharLength
    functionSourceFile: /src/icu/source/test/cintltst/utf8tst.c
    functionUses: []
    functionsReached:
    - UTF8_CHAR_LENGTH
    - UTF8_NEED_MULTIPLE_UCHAR
    - log_verbose
    - log_err
    - U8_LENGTH
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestCharLength() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/utf8tst.c:130,1
    - Dst: UTF8_IS_SINGLE
      Src: /src/icu/source/test/cintltst/utf8tst.c:134,1
    - Dst: U8_IS_SINGLE
      Src: /src/icu/source/test/cintltst/utf8tst.c:136,1
    - Dst: U8_IS_TRAIL
      Src: /src/icu/source/test/cintltst/utf8tst.c:136,1
    - Dst: U8_IS_TRAIL
      Src: /src/icu/source/test/cintltst/utf8tst.c:145,1
    - Dst: UTF8_IS_SINGLE
      Src: /src/icu/source/test/cintltst/utf8tst.c:143,1
    - Dst: UTF8_IS_SINGLE
      Src: /src/icu/source/test/cintltst/utf8tst.c:152,1
    - Dst: U8_IS_LEAD
      Src: /src/icu/source/test/cintltst/utf8tst.c:154,1
    - Dst: U8_IS_SINGLE
      Src: /src/icu/source/test/cintltst/utf8tst.c:156,1
    - Dst: U8_IS_TRAIL
      Src: /src/icu/source/test/cintltst/utf8tst.c:156,1
    - Dst: UTF8_IS_TRAIL
      Src: /src/icu/source/test/cintltst/utf8tst.c:134,1
    - Dst: U8_IS_LEAD
      Src: /src/icu/source/test/cintltst/utf8tst.c:136,1
    - Dst: U8_IS_SINGLE
      Src: /src/icu/source/test/cintltst/utf8tst.c:145,1
    - Dst: U8_IS_SINGLE
      Src: /src/icu/source/test/cintltst/utf8tst.c:154,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:155,1
    - Dst: U8_IS_LEAD
      Src: /src/icu/source/test/cintltst/utf8tst.c:156,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:128,1
    - Dst: UTF8_IS_LEAD
      Src: /src/icu/source/test/cintltst/utf8tst.c:134,1
    - Dst: U8_IS_SINGLE
      Src: /src/icu/source/test/cintltst/utf8tst.c:138,1
    - Dst: U8_IS_TRAIL
      Src: /src/icu/source/test/cintltst/utf8tst.c:138,1
    - Dst: UTF8_IS_LEAD
      Src: /src/icu/source/test/cintltst/utf8tst.c:143,1
    - Dst: U8_IS_LEAD
      Src: /src/icu/source/test/cintltst/utf8tst.c:145,1
    - Dst: U8_IS_SINGLE
      Src: /src/icu/source/test/cintltst/utf8tst.c:147,1
    - Dst: U8_IS_TRAIL
      Src: /src/icu/source/test/cintltst/utf8tst.c:147,1
    - Dst: UTF8_IS_TRAIL
      Src: /src/icu/source/test/cintltst/utf8tst.c:152,1
    - Dst: U8_IS_TRAIL
      Src: /src/icu/source/test/cintltst/utf8tst.c:154,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:137,1
    - Dst: U8_IS_LEAD
      Src: /src/icu/source/test/cintltst/utf8tst.c:138,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:146,1
    - Dst: UTF8_IS_TRAIL
      Src: /src/icu/source/test/cintltst/utf8tst.c:143,1
    - Dst: U8_IS_LEAD
      Src: /src/icu/source/test/cintltst/utf8tst.c:147,1
    - Dst: UTF8_IS_LEAD
      Src: /src/icu/source/test/cintltst/utf8tst.c:152,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 160
    functionName: TestCodeUnitValues
    functionSourceFile: /src/icu/source/test/cintltst/utf8tst.c
    functionUses: []
    functionsReached:
    - UTF8_IS_TRAIL
    - U8_IS_LEAD
    - UTF8_IS_LEAD
    - U8_IS_SINGLE
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - U8_IS_TRAIL
    - UTF8_IS_SINGLE
    linkageType: ''
    returnType: void
    signature: 'static void TestCodeUnitValues() '
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_NEXT_CHAR_SAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:349,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:355,1
    - Dst: UTF_IS_ERROR
      Src: /src/icu/source/test/cintltst/utf8tst.c:364,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:383,1
    - Dst: UTF_IS_ERROR
      Src: /src/icu/source/test/cintltst/utf8tst.c:416,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:418,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:424,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:429,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:361,1
    - Dst: U8_NEXT_OR_FFFD
      Src: /src/icu/source/test/cintltst/utf8tst.c:370,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:403,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:413,1
    - Dst: U8_PREV
      Src: /src/icu/source/test/cintltst/utf8tst.c:411,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:351,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:366,1
    - Dst: UTF8_NEXT_CHAR_SAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:381,1
    - Dst: U8_PREV_OR_FFFD
      Src: /src/icu/source/test/cintltst/utf8tst.c:422,1
    - Dst: UTF8_PREV_CHAR_SAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:433,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:435,1
    - Dst: U8_NEXT
      Src: /src/icu/source/test/cintltst/utf8tst.c:359,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:372,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:377,1
    - Dst: UTF8_PREV_CHAR_SAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:401,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:407,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:388,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:440,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 447
    functionName: TestNextPrevChar
    functionSourceFile: /src/icu/source/test/cintltst/utf8tst.c
    functionUses: []
    functionsReached:
    - UTF8_PREV_CHAR_SAFE
    - UTF_IS_ERROR
    - UTF8_NEXT_CHAR_SAFE
    - U8_PREV
    - U8_NEXT
    - log_err
    - U8_NEXT_OR_FFFD
    - U8_PREV_OR_FFFD
    linkageType: ''
    returnType: void
    signature: 'static void TestNextPrevChar() '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: U8_NEXT
      Src: /src/icu/source/test/cintltst/utf8tst.c:488,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:500,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:491,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:497,1
    - Dst: U8_NEXT_OR_FFFD
      Src: /src/icu/source/test/cintltst/utf8tst.c:494,1
    - Dst: U8_FWD_1
      Src: /src/icu/source/test/cintltst/utf8tst.c:503,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:505,1
    - Dst: U8_FWD_N
      Src: /src/icu/source/test/cintltst/utf8tst.c:514,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:516,1
    - Dst: U8_NEXT
      Src: /src/icu/source/test/cintltst/utf8tst.c:523,1
    - Dst: U8_SET_CP_LIMIT
      Src: /src/icu/source/test/cintltst/utf8tst.c:536,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:538,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:532,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:527,1
    - Dst: U8_GET_OR_FFFD
      Src: /src/icu/source/test/cintltst/utf8tst.c:529,1
    - Dst: U8_GET
      Src: /src/icu/source/test/cintltst/utf8tst.c:525,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 542
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 542
    functionName: TestNulTerminated
    functionSourceFile: /src/icu/source/test/cintltst/utf8tst.c
    functionUses: []
    functionsReached:
    - U8_SET_CP_LIMIT
    - U8_GET
    - U8_FWD_N
    - U8_NEXT
    - log_err
    - U8_FWD_1
    - U8_GET_OR_FFFD
    - U8_NEXT_OR_FFFD
    linkageType: ''
    returnType: void
    signature: 'static void TestNulTerminated() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: U8_NEXT
      Src: /src/icu/source/test/cintltst/utf8tst.c:558,1
    - Dst: U_IS_UNICODE_NONCHAR
      Src: /src/icu/source/test/cintltst/utf8tst.c:559,1
    - Dst: U8_PREV
      Src: /src/icu/source/test/cintltst/utf8tst.c:564,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:560,1
    - Dst: U_IS_UNICODE_NONCHAR
      Src: /src/icu/source/test/cintltst/utf8tst.c:565,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:566,1
    - Dst: UTF8_NEXT_CHAR_SAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:572,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:574,1
    - Dst: UTF8_PREV_CHAR_SAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:578,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:581,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 585
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 585
    functionName: TestNextPrevNonCharacters
    functionSourceFile: /src/icu/source/test/cintltst/utf8tst.c
    functionUses: []
    functionsReached:
    - UTF8_PREV_CHAR_SAFE
    - UTF8_NEXT_CHAR_SAFE
    - U_IS_UNICODE_NONCHAR
    - U8_PREV
    - U8_NEXT
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestNextPrevNonCharacters() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_NEXT_CHAR_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:616,1
    - Dst: U8_NEXT_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:630,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:633,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:638,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:619,1
    - Dst: UTF8_PREV_CHAR_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:639,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:642,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:647,1
    - Dst: U8_PREV_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:648,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:651,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 655
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 655
    functionName: TestNextPrevCharUnsafe
    functionSourceFile: /src/icu/source/test/cintltst/utf8tst.c
    functionUses: []
    functionsReached:
    - UTF8_PREV_CHAR_UNSAFE
    - U8_PREV_UNSAFE
    - log_err
    - U8_NEXT_UNSAFE
    - UPRV_LENGTHOF
    - UTF8_NEXT_CHAR_UNSAFE
    linkageType: ''
    returnType: void
    signature: 'static void TestNextPrevCharUnsafe() '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:699,1
    - Dst: UTF8_BACK_1_SAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:707,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:709,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:743,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:737,1
    - Dst: UTF8_FWD_1_SAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:687,1
    - Dst: U8_BACK_N
      Src: /src/icu/source/test/cintltst/utf8tst.c:752,1
    - Dst: U8_FWD_N
      Src: /src/icu/source/test/cintltst/utf8tst.c:735,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:689,1
    - Dst: U8_BACK_1
      Src: /src/icu/source/test/cintltst/utf8tst.c:717,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:719,1
    - Dst: UTF8_FWD_N_SAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:726,1
    - Dst: UTF8_BACK_N_SAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:744,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:734,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:754,1
    - Dst: U8_FWD_1
      Src: /src/icu/source/test/cintltst/utf8tst.c:697,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:725,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:751,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:746,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:728,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 757
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 757
    functionName: TestFwdBack
    functionSourceFile: /src/icu/source/test/cintltst/utf8tst.c
    functionUses: []
    functionsReached:
    - U8_BACK_N
    - UTF8_BACK_1_SAFE
    - U8_BACK_1
    - UTF8_FWD_1_SAFE
    - UTF8_FWD_N_SAFE
    - U8_FWD_N
    - UTF8_BACK_N_SAFE
    - log_err
    - UPRV_LENGTHOF
    - U8_FWD_1
    linkageType: ''
    returnType: void
    signature: 'static void TestFwdBack() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf8tst.c:106,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf8tst.c:109,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf8tst.c:108,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf8tst.c:107,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf8tst.c:110,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf8tst.c:111,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf8tst.c:112,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf8tst.c:113,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf8tst.c:114,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf8tst.c:115,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf8tst.c:117,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf8tst.c:119,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf8tst.c:116,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf8tst.c:118,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/utf8tst.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 121
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 121
    functionName: addUTF8Test
    functionSourceFile: /src/icu/source/test/cintltst/utf8tst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addUTF8Test(TestNode** root) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:796,1
    - Dst: U8_FWD_1_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:797,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:799,1
    - Dst: UTF8_BACK_1_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:804,1
    - Dst: UTF8_FWD_N_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:819,1
    - Dst: U8_BACK_1_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:811,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:829,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:834,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:835,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:843,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:844,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:847,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:792,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:817,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:821,1
    - Dst: U8_FWD_N_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:827,1
    - Dst: U8_BACK_N_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:845,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:803,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:806,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:813,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:825,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:810,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:838,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:789,1
    - Dst: UTF8_FWD_1_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:790,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:803,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:810,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:833,1
    - Dst: UTF8_BACK_N_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:836,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:842,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 850
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 850
    functionName: TestFwdBackUnsafe
    functionSourceFile: /src/icu/source/test/cintltst/utf8tst.c
    functionUses: []
    functionsReached:
    - U8_FWD_N_UNSAFE
    - UTF8_FWD_N_UNSAFE
    - U8_FWD_1_UNSAFE
    - UTF8_FWD_1_UNSAFE
    - U8_BACK_1_UNSAFE
    - UTF8_BACK_N_UNSAFE
    - UTF8_BACK_1_UNSAFE
    - log_err
    - U8_BACK_N_UNSAFE
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'static void TestFwdBackUnsafe() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:991,1
    - Dst: U8_TRUNCATE_IF_INCOMPLETE
      Src: /src/icu/source/test/cintltst/utf8tst.c:996,1
    - Dst: strlen
      Src: /src/icu/source/test/cintltst/utf8tst.c:994,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:998,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 1002
    functionName: TestTruncateIfIncomplete
    functionSourceFile: /src/icu/source/test/cintltst/utf8tst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - strlen
    - log_err
    - U8_TRUNCATE_IF_INCOMPLETE
    linkageType: ''
    returnType: void
    signature: 'static void TestTruncateIfIncomplete() '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: U8_NEXT
      Src: /src/icu/source/test/cintltst/utf8tst.c:1259,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1282,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1313,1
    - Dst: U8_PREV
      Src: /src/icu/source/test/cintltst/utf8tst.c:1300,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1323,1
    - Dst: U8_NEXT_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:1255,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/utf8tst.c:1271,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1277,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/utf8tst.c:1281,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/utf8tst.c:1312,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:1252,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1267,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1272,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1308,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1285,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1326,1
    - Dst: L8_NEXT
      Src: /src/icu/source/test/cintltst/utf8tst.c:1263,1
    - Dst: U8_PREV_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:1296,1
    - Dst: L8_PREV
      Src: /src/icu/source/test/cintltst/utf8tst.c:1304,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1318,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/utf8tst.c:1322,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1331
    functionName: TestSurrogates
    functionSourceFile: /src/icu/source/test/cintltst/utf8tst.c
    functionUses: []
    functionsReached:
    - L8_NEXT
    - U8_PREV_UNSAFE
    - U8_PREV
    - L8_PREV
    - U8_NEXT
    - log_err
    - U8_NEXT_UNSAFE
    - UPRV_LENGTHOF
    - U_IS_SURROGATE
    linkageType: ''
    returnType: void
    signature: 'static void TestSurrogates() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:869,1
    - Dst: UTF8_SET_CHAR_START_SAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:873,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:870,1
    - Dst: U8_SET_CP_START
      Src: /src/icu/source/test/cintltst/utf8tst.c:879,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:875,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:881,1
    - Dst: UTF8_SET_CHAR_LIMIT_SAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:886,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:888,1
    - Dst: U8_SET_CP_LIMIT
      Src: /src/icu/source/test/cintltst/utf8tst.c:892,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:894,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 899
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 899
    functionName: TestSetChar
    functionSourceFile: /src/icu/source/test/cintltst/utf8tst.c
    functionUses: []
    functionsReached:
    - UTF8_SET_CHAR_START_SAFE
    - U8_SET_CP_LIMIT
    - UTF8_SET_CHAR_LIMIT_SAFE
    - log_err
    - UPRV_LENGTHOF
    - U8_SET_CP_START
    linkageType: ''
    returnType: void
    signature: 'static void TestSetChar() '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_APPEND_CHAR_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:1118,1
    - Dst: printUChars
      Src: /src/icu/source/test/cintltst/utf8tst.c:1126,1
    - Dst: printUChars
      Src: /src/icu/source/test/cintltst/utf8tst.c:1128,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1141,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1120,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/test/cintltst/utf8tst.c:1115,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/utf8tst.c:1124,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1143,1
    - Dst: printUChars
      Src: /src/icu/source/test/cintltst/utf8tst.c:1140,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:1113,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1125,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/test/cintltst/utf8tst.c:1138,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1134,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1129,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:1114,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1127,1
    - Dst: printUChars
      Src: /src/icu/source/test/cintltst/utf8tst.c:1142,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1139,1
    - Dst: UTF8_APPEND_CHAR_SAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:1132,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1171
    functionName: TestAppendChar
    functionSourceFile: /src/icu/source/test/cintltst/utf8tst.c
    functionUses: []
    functionsReached:
    - uprv_memcpy
    - UTF8_APPEND_CHAR_SAFE
    - UTF8_APPEND_CHAR_UNSAFE
    - printUChars
    - log_err
    - UPRV_LENGTHOF
    - uprv_memcmp
    linkageType: ''
    returnType: void
    signature: 'static void TestAppendChar() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - uchars
    - len
    argTypes:
    - uint8_t*
    - int16_t
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: printUChars
    functionSourceFile: /src/icu/source/test/cintltst/utf8tst.c
    functionUses: []
    functionsReached:
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void printUChars(const uint8_t *uchars, int16_t len) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:911,1
    - Dst: UTF8_SET_CHAR_START_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:915,1
    - Dst: U8_SET_CP_START_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:921,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:912,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:917,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:923,1
    - Dst: UTF8_SET_CHAR_LIMIT_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:930,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:932,1
    - Dst: U8_SET_CP_LIMIT_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:936,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:938,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 944
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 944
    functionName: TestSetCharUnsafe
    functionSourceFile: /src/icu/source/test/cintltst/utf8tst.c
    functionUses: []
    functionsReached:
    - UTF8_SET_CHAR_LIMIT_UNSAFE
    - U8_SET_CP_LIMIT_UNSAFE
    - log_err
    - UTF8_SET_CHAR_START_UNSAFE
    - UPRV_LENGTHOF
    - U8_SET_CP_START_UNSAFE
    linkageType: ''
    returnType: void
    signature: 'static void TestSetCharUnsafe() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:1204,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1213,1
    - Dst: U8_APPEND_UNSAFE
      Src: /src/icu/source/test/cintltst/utf8tst.c:1210,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:1212,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/utf8tst.c:1212,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:1218,1
    - Dst: U_IS_SURROGATE
      Src: /src/icu/source/test/cintltst/utf8tst.c:1220,1
    - Dst: U8_APPEND
      Src: /src/icu/source/test/cintltst/utf8tst.c:1223,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:1223,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1227,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/utf8tst.c:1229,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/utf8tst.c:1230,1
    - Dst: memcmp
      Src: /src/icu/source/test/cintltst/utf8tst.c:1229,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1232
    functionName: TestAppend
    functionSourceFile: /src/icu/source/test/cintltst/utf8tst.c
    functionUses: []
    functionsReached:
    - U8_APPEND
    - U8_APPEND_UNSAFE
    - log_err
    - memcmp
    - UPRV_LENGTHOF
    - U_IS_SURROGATE
    linkageType: ''
    returnType: void
    signature: 'static void TestAppend() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_getCanonicalName
      Src: /src/icu/source/test/cintltst/stdnmtst.c:121,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/stdnmtst.c:127,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/stdnmtst.c:130,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:123,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:131,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/stdnmtst.c:135,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 3
    argNames:
    - name
    - standard
    - expected
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 139
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 139
    functionName: dotestconv
    functionSourceFile: /src/icu/source/test/cintltst/stdnmtst.c
    functionUses: []
    functionsReached:
    - log_err_status
    - uprv_strcmp
    - log_verbose
    - log_err
    - ucnv_getCanonicalName
    linkageType: ''
    returnType: int
    signature: 'static int dotestconv(const char *name, const char *standard, const
      char *expected) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_getStandardName
      Src: /src/icu/source/test/cintltst/stdnmtst.c:45,1
    - Dst: log_err_status
      Src: /src/icu/source/test/cintltst/stdnmtst.c:47,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:50,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/stdnmtst.c:49,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 3
    argNames:
    - name
    - standard
    - expected
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 55
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 55
    functionName: dotestname
    functionSourceFile: /src/icu/source/test/cintltst/stdnmtst.c
    functionUses: []
    functionsReached:
    - ucnv_getStandardName
    - log_err_status
    - uprv_strcmp
    - log_err
    linkageType: ''
    returnType: int
    signature: 'static int dotestname(const char *name, const char *standard, const
      char *expected) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:147,1
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:151,1
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:160,1
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:148,1
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:152,1
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:154,1
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:158,1
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:156,1
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:161,1
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:149,1
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:155,1
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:159,1
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:162,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/stdnmtst.c:165,1
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:145,1
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:146,1
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:150,1
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:153,1
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:163,1
    - Dst: dotestconv
      Src: /src/icu/source/test/cintltst/stdnmtst.c:157,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 167
    functionName: TestCanonicalName
    functionSourceFile: /src/icu/source/test/cintltst/stdnmtst.c
    functionUses: []
    functionsReached:
    - log_verbose
    - dotestconv
    linkageType: ''
    returnType: void
    signature: 'static void TestCanonicalName() '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/stdnmtst.c:94,1
    - Dst: dotestname
      Src: /src/icu/source/test/cintltst/stdnmtst.c:104,1
    - Dst: dotestname
      Src: /src/icu/source/test/cintltst/stdnmtst.c:108,1
    - Dst: ucnv_getStandard
      Src: /src/icu/source/test/cintltst/stdnmtst.c:69,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/stdnmtst.c:70,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:74,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:82,1
    - Dst: ucnv_getStandard
      Src: /src/icu/source/test/cintltst/stdnmtst.c:88,1
    - Dst: dotestname
      Src: /src/icu/source/test/cintltst/stdnmtst.c:99,1
    - Dst: dotestname
      Src: /src/icu/source/test/cintltst/stdnmtst.c:101,1
    - Dst: dotestname
      Src: /src/icu/source/test/cintltst/stdnmtst.c:105,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:89,1
    - Dst: ucnv_getStandard
      Src: /src/icu/source/test/cintltst/stdnmtst.c:83,1
    - Dst: dotestname
      Src: /src/icu/source/test/cintltst/stdnmtst.c:106,1
    - Dst: dotestname
      Src: /src/icu/source/test/cintltst/stdnmtst.c:102,1
    - Dst: ucnv_countStandards
      Src: /src/icu/source/test/cintltst/stdnmtst.c:65,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:71,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/stdnmtst.c:71,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:84,1
    - Dst: dotestname
      Src: /src/icu/source/test/cintltst/stdnmtst.c:103,1
    - Dst: dotestname
      Src: /src/icu/source/test/cintltst/stdnmtst.c:107,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/stdnmtst.c:110,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 112
    functionName: TestStandardName
    functionSourceFile: /src/icu/source/test/cintltst/stdnmtst.c
    functionUses: []
    functionsReached:
    - dotestname
    - U_FAILURE
    - log_data_err
    - ucnv_countStandards
    - log_verbose
    - log_err
    - u_errorName
    - ucnv_getStandard
    linkageType: ''
    returnType: void
    signature: 'static void TestStandardName() '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_openStandardNames
      Src: /src/icu/source/test/cintltst/stdnmtst.c:172,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/stdnmtst.c:174,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/stdnmtst.c:194,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/stdnmtst.c:195,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/stdnmtst.c:206,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/stdnmtst.c:210,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:178,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:186,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/stdnmtst.c:189,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:207,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/stdnmtst.c:207,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/stdnmtst.c:205,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/stdnmtst.c:218,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:182,1
    - Dst: uenum_next
      Src: /src/icu/source/test/cintltst/stdnmtst.c:192,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/test/cintltst/stdnmtst.c:194,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:197,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/stdnmtst.c:198,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/stdnmtst.c:212,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/stdnmtst.c:200,1
    - Dst: uenum_reset
      Src: /src/icu/source/test/cintltst/stdnmtst.c:211,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:213,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/stdnmtst.c:214,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 4
    argNames:
    - name
    - standard
    - expected
    - size
    argTypes:
    - char*
    - char*
    - char**
    - int32_t
    constantsTouched: []
    func_position:
      end: 220
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 220
    functionName: doTestNames
    functionSourceFile: /src/icu/source/test/cintltst/stdnmtst.c
    functionUses: []
    functionsReached:
    - uenum_reset
    - uenum_next
    - U_FAILURE
    - uprv_strlen
    - log_data_err
    - ucnv_openStandardNames
    - uenum_count
    - uprv_strcmp
    - log_verbose
    - log_err
    - uenum_close
    - u_errorName
    linkageType: ''
    returnType: UBool
    signature: 'static UBool doTestNames(const char *name, const char *standard, const
      char **expected, int32_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doTestNames
      Src: /src/icu/source/test/cintltst/stdnmtst.c:292,1
    - Dst: doTestNames
      Src: /src/icu/source/test/cintltst/stdnmtst.c:294,1
    - Dst: doTestNames
      Src: /src/icu/source/test/cintltst/stdnmtst.c:293,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/stdnmtst.c:292,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/stdnmtst.c:293,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/stdnmtst.c:294,1
    - Dst: doTestNames
      Src: /src/icu/source/test/cintltst/stdnmtst.c:295,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/stdnmtst.c:295,1
    - Dst: doTestNames
      Src: /src/icu/source/test/cintltst/stdnmtst.c:297,1
    - Dst: doTestNames
      Src: /src/icu/source/test/cintltst/stdnmtst.c:298,1
    - Dst: doTestNames
      Src: /src/icu/source/test/cintltst/stdnmtst.c:300,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/stdnmtst.c:306,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/stdnmtst.c:303,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/stdnmtst.c:302,1
    - Dst: doTestUCharNames
      Src: /src/icu/source/test/cintltst/stdnmtst.c:306,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/stdnmtst.c:305,1
    - Dst: doTestNames
      Src: /src/icu/source/test/cintltst/stdnmtst.c:303,1
    - Dst: doTestNames
      Src: /src/icu/source/test/cintltst/stdnmtst.c:302,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 308
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 308
    functionName: TestStandardNames
    functionSourceFile: /src/icu/source/test/cintltst/stdnmtst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - doTestNames
    - log_verbose
    - doTestUCharNames
    linkageType: ''
    returnType: void
    signature: 'static void TestStandardNames() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/stdnmtst.c:33,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/stdnmtst.c:34,1
    - Dst: addTest
      Src: /src/icu/source/test/cintltst/stdnmtst.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: addStandardNamesTest
    functionSourceFile: /src/icu/source/test/cintltst/stdnmtst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: void
    signature: 'void addStandardNamesTest(TestNode** root) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: uenum_unext
      Src: /src/icu/source/test/cintltst/stdnmtst.c:246,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/cintltst/stdnmtst.c:248,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/stdnmtst.c:259,1
    - Dst: uprv_strlen
      Src: /src/icu/source/test/cintltst/stdnmtst.c:249,1
    - Dst: log_data_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:229,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/stdnmtst.c:254,1
    - Dst: uenum_reset
      Src: /src/icu/source/test/cintltst/stdnmtst.c:258,1
    - Dst: ucnv_openStandardNames
      Src: /src/icu/source/test/cintltst/stdnmtst.c:224,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:238,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/stdnmtst.c:241,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/stdnmtst.c:252,1
    - Dst: log_verbose
      Src: /src/icu/source/test/cintltst/stdnmtst.c:257,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/cintltst/stdnmtst.c:248,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:251,1
    - Dst: uenum_count
      Src: /src/icu/source/test/cintltst/stdnmtst.c:225,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:234,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/cintltst/stdnmtst.c:247,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/cintltst/stdnmtst.c:247,1
    - Dst: log_err
      Src: /src/icu/source/test/cintltst/stdnmtst.c:260,1
    - Dst: u_errorName
      Src: /src/icu/source/test/cintltst/stdnmtst.c:261,1
    - Dst: uenum_close
      Src: /src/icu/source/test/cintltst/stdnmtst.c:265,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 4
    argNames:
    - name
    - standard
    - expected
    - size
    argTypes:
    - char*
    - char*
    - char**
    - int32_t
    constantsTouched: []
    func_position:
      end: 267
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 267
    functionName: doTestUCharNames
    functionSourceFile: /src/icu/source/test/cintltst/stdnmtst.c
    functionUses: []
    functionsReached:
    - uenum_reset
    - U_FAILURE
    - uprv_strlen
    - log_data_err
    - ucnv_openStandardNames
    - u_uastrncpy
    - uenum_count
    - log_verbose
    - log_err
    - uenum_unext
    - uenum_close
    - UPRV_LENGTHOF
    - u_strcmp
    - u_errorName
    linkageType: ''
    returnType: UBool
    signature: 'static UBool doTestUCharNames(const char *name, const char *standard,
      const char **expected, int32_t size) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/test/compat/tzdate.c:48,1
    - Dst: atoi
      Src: /src/icu/source/test/compat/tzdate.c:54,1
    - Dst: atoi
      Src: /src/icu/source/test/compat/tzdate.c:52,1
    - Dst: atoi
      Src: /src/icu/source/test/compat/tzdate.c:55,1
    - Dst: atoi
      Src: /src/icu/source/test/compat/tzdate.c:53,1
    - Dst: atoi
      Src: /src/icu/source/test/compat/tzdate.c:56,1
    - Dst: atoi
      Src: /src/icu/source/test/compat/tzdate.c:57,1
    - Dst: getSystemCurrentTime
      Src: /src/icu/source/test/compat/tzdate.c:62,1
    - Dst: getICUCurrentTime
      Src: /src/icu/source/test/compat/tzdate.c:63,1
    - Dst: strcmp
      Src: /src/icu/source/test/compat/tzdate.c:66,1
    - Dst: printTime
      Src: /src/icu/source/test/compat/tzdate.c:68,1
    - Dst: printf
      Src: /src/icu/source/test/compat/tzdate.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 72
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 72
    functionName: main
    functionSourceFile: /src/icu/source/test/compat/tzdate.c
    functionUses: []
    functionsReached:
    - atoi
    - getSystemCurrentTime
    - getICUCurrentTime
    - strcmp
    - printf
    - printTime
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char** argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/source/test/compat/tzdate.c:137,1
    - Dst: uprv_tzname
      Src: /src/icu/source/test/compat/tzdate.c:139,1
    - Dst: printf
      Src: /src/icu/source/test/compat/tzdate.c:138,1
    - Dst: uprv_tzname
      Src: /src/icu/source/test/compat/tzdate.c:139,1
    - Dst: printf
      Src: /src/icu/source/test/compat/tzdate.c:139,1
    - Dst: uprv_timezone
      Src: /src/icu/source/test/compat/tzdate.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - systime
    - icutime
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: printTime
    functionSourceFile: /src/icu/source/test/compat/tzdate.c
    functionUses: []
    functionsReached:
    - uprv_tzname
    - printf
    - uprv_timezone
    linkageType: ''
    returnType: void
    signature: 'void printTime(char* systime, char* icutime) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: udat_open
      Src: /src/icu/source/test/compat/tzdate.c:83,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/compat/tzdate.c:97,1
    - Dst: udat_format
      Src: /src/icu/source/test/compat/tzdate.c:85,1
    - Dst: malloc
      Src: /src/icu/source/test/compat/tzdate.c:90,1
    - Dst: udat_format
      Src: /src/icu/source/test/compat/tzdate.c:95,1
    - Dst: udat_close
      Src: /src/icu/source/test/compat/tzdate.c:106,1
    - Dst: free
      Src: /src/icu/source/test/compat/tzdate.c:107,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 2
    argNames:
    - icutime
    - timeToCheck
    argTypes:
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 108
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 108
    functionName: getICUCurrentTime
    functionSourceFile: /src/icu/source/test/compat/tzdate.c
    functionUses: []
    functionsReached:
    - udat_open
    - malloc
    - udat_format
    - U_FAILURE
    - free
    - udat_close
    linkageType: ''
    returnType: void
    signature: 'void getICUCurrentTime(char* icutime, double timeToCheck) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/icu/source/test/compat/tzdate.c:115,1
    - Dst: localtime
      Src: /src/icu/source/test/compat/tzdate.c:127,1
    - Dst: localtime
      Src: /src/icu/source/test/compat/tzdate.c:116,1
    - Dst: mktime
      Src: /src/icu/source/test/compat/tzdate.c:126,1
    - Dst: memset
      Src: /src/icu/source/test/compat/tzdate.c:119,1
    - Dst: strftime
      Src: /src/icu/source/test/compat/tzdate.c:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 7
    argNames:
    - systime
    - year
    - month
    - day
    - hour
    - minute
    - useCurrentTime
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 134
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 134
    functionName: getSystemCurrentTime
    functionSourceFile: /src/icu/source/test/compat/tzdate.c
    functionUses: []
    functionsReached:
    - localtime
    - mktime
    - memset
    - time
    - strftime
    linkageType: ''
    returnType: int64_t
    signature: 'int64_t getSystemCurrentTime(char* systime, int year, int month, int
      day, int hour, int minute, int useCurrentTime) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/test/letest/FontObject.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat2Encoding
    signature: 'struct CMAPFormat2Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/test/letest/FontObject.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat6Encoding
    signature: 'struct CMAPFormat6Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/test/letest/FontObject.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat4Encoding
    signature: 'struct CMAPFormat4Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/test/letest/FontObject.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat0Encoding
    signature: 'struct CMAPFormat0Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FontObject
      Src: /src/icu/source/test/letest/FontObject.h:185,1
    - Dst: FontObject
      Src: /src/icu/source/test/letest/FontObject.h:203,1
    - Dst: FontObject
      Src: /src/icu/source/test/letest/FontObject.h:186,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 233
    functionName: FontObject
    functionSourceFile: /src/icu/source/test/letest/FontObject.h
    functionUses: []
    functionsReached:
    - FontObject
    linkageType: ''
    returnType: class
    signature: 'class FontObject '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:60,1
    - Dst: le_create
      Src: /src/icu/source/test/letest/cletest.c:44,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:98,1
    - Dst: le_getCharIndicesWithBase
      Src: /src/icu/source/test/letest/cletest.c:95,1
    - Dst: le_getCharIndicesWithBase
      Src: /src/icu/source/test/letest/cletest.c:102,1
    - Dst: le_getCharIndices
      Src: /src/icu/source/test/letest/cletest.c:81,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:105,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:84,1
    - Dst: DELETE_ARRAY
      Src: /src/icu/source/test/letest/cletest.c:123,1
    - Dst: le_layoutChars
      Src: /src/icu/source/test/letest/cletest.c:148,1
    - Dst: le_layoutChars
      Src: /src/icu/source/test/letest/cletest.c:162,1
    - Dst: le_getGlyphPosition
      Src: /src/icu/source/test/letest/cletest.c:169,1
    - Dst: LE_FAILURE
      Src: /src/icu/source/test/letest/cletest.c:164,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:179,1
    - Dst: le_simpleFontOpen
      Src: /src/icu/source/test/letest/cletest.c:43,1
    - Dst: NEW_ARRAY
      Src: /src/icu/source/test/letest/cletest.c:63,1
    - Dst: le_getGlyphCount
      Src: /src/icu/source/test/letest/cletest.c:58,1
    - Dst: NEW_ARRAY
      Src: /src/icu/source/test/letest/cletest.c:64,1
    - Dst: NEW_ARRAY
      Src: /src/icu/source/test/letest/cletest.c:65,1
    - Dst: le_getGlyphs
      Src: /src/icu/source/test/letest/cletest.c:67,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:70,1
    - Dst: DELETE_ARRAY
      Src: /src/icu/source/test/letest/cletest.c:122,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:151,1
    - Dst: le_layoutChars
      Src: /src/icu/source/test/letest/cletest.c:155,1
    - Dst: le_getGlyphPosition
      Src: /src/icu/source/test/letest/cletest.c:176,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:158,1
    - Dst: le_getGlyphs
      Src: /src/icu/source/test/letest/cletest.c:74,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:77,1
    - Dst: le_getGlyphPositions
      Src: /src/icu/source/test/letest/cletest.c:109,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:112,1
    - Dst: le_layoutChars
      Src: /src/icu/source/test/letest/cletest.c:127,1
    - Dst: le_layoutChars
      Src: /src/icu/source/test/letest/cletest.c:134,1
    - Dst: le_layoutChars
      Src: /src/icu/source/test/letest/cletest.c:141,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:165,1
    - Dst: le_close
      Src: /src/icu/source/test/letest/cletest.c:183,1
    - Dst: le_fontClose
      Src: /src/icu/source/test/letest/cletest.c:184,1
    - Dst: le_getCharIndices
      Src: /src/icu/source/test/letest/cletest.c:88,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:91,1
    - Dst: le_getGlyphPositions
      Src: /src/icu/source/test/letest/cletest.c:116,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:119,1
    - Dst: DELETE_ARRAY
      Src: /src/icu/source/test/letest/cletest.c:124,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:130,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:137,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:144,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:172,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 107
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 185
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 185
    functionName: ParamTest
    functionSourceFile: /src/icu/source/test/letest/cletest.c
    functionUses: []
    functionsReached:
    - le_getGlyphCount
    - le_create
    - le_getCharIndices
    - le_getGlyphs
    - le_simpleFontOpen
    - le_getCharIndicesWithBase
    - le_layoutChars
    - le_close
    - DELETE_ARRAY
    - le_fontClose
    - log_err
    - le_getGlyphPosition
    - NEW_ARRAY
    - le_getGlyphPositions
    - LE_FAILURE
    linkageType: ''
    returnType: U_CALLCONV
    signature: 'U_CALLCONV ParamTest(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: le_simpleFontOpen
      Src: /src/icu/source/test/letest/cletest.c:192,1
    - Dst: LE_FAILURE
      Src: /src/icu/source/test/letest/cletest.c:200,1
    - Dst: uscript_getShortName
      Src: /src/icu/source/test/letest/cletest.c:201,1
    - Dst: le_create
      Src: /src/icu/source/test/letest/cletest.c:198,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:201,1
    - Dst: le_close
      Src: /src/icu/source/test/letest/cletest.c:204,1
    - Dst: le_fontClose
      Src: /src/icu/source/test/letest/cletest.c:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 208
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 208
    functionName: FactoryTest
    functionSourceFile: /src/icu/source/test/letest/cletest.c
    functionUses: []
    functionsReached:
    - le_create
    - le_simpleFontOpen
    - uscript_getShortName
    - le_close
    - le_fontClose
    - log_err
    - LE_FAILURE
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV FactoryTest(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: le_simpleFontOpen
      Src: /src/icu/source/test/letest/cletest.c:215,1
    - Dst: LE_FAILURE
      Src: /src/icu/source/test/letest/cletest.c:227,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:235,1
    - Dst: le_getCharIndices
      Src: /src/icu/source/test/letest/cletest.c:240,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:252,1
    - Dst: le_fontClose
      Src: /src/icu/source/test/letest/cletest.c:283,1
    - Dst: LE_FAILURE
      Src: /src/icu/source/test/letest/cletest.c:269,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:270,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:256,1
    - Dst: LE_FAILURE
      Src: /src/icu/source/test/letest/cletest.c:243,1
    - Dst: le_close
      Src: /src/icu/source/test/letest/cletest.c:282,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:228,1
    - Dst: le_layoutChars
      Src: /src/icu/source/test/letest/cletest.c:232,1
    - Dst: LE_FAILURE
      Src: /src/icu/source/test/letest/cletest.c:234,1
    - Dst: le_getGlyphs
      Src: /src/icu/source/test/letest/cletest.c:239,1
    - Dst: le_getGlyphPositions
      Src: /src/icu/source/test/letest/cletest.c:241,1
    - Dst: LE_FAILURE
      Src: /src/icu/source/test/letest/cletest.c:251,1
    - Dst: le_getGlyphPosition
      Src: /src/icu/source/test/letest/cletest.c:267,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:275,1
    - Dst: le_create
      Src: /src/icu/source/test/letest/cletest.c:216,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:244,1
    - Dst: le_getCharIndicesWithBase
      Src: /src/icu/source/test/letest/cletest.c:249,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 284
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 284
    functionName: AccessTest
    functionSourceFile: /src/icu/source/test/letest/cletest.c
    functionUses: []
    functionsReached:
    - le_create
    - le_getCharIndices
    - le_getGlyphs
    - le_simpleFontOpen
    - le_getCharIndicesWithBase
    - le_layoutChars
    - le_close
    - le_fontClose
    - log_err
    - le_getGlyphPosition
    - LE_FAILURE
    - le_getGlyphPositions
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV AccessTest(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: le_getFontChecksum
      Src: /src/icu/source/test/letest/cletest.c:341,1
    - Dst: le_getNameString
      Src: /src/icu/source/test/letest/cletest.c:344,1
    - Dst: log_info
      Src: /src/icu/source/test/letest/cletest.c:356,1
    - Dst: le_getUnicodeNameString
      Src: /src/icu/source/test/letest/cletest.c:349,1
    - Dst: log_info
      Src: /src/icu/source/test/letest/cletest.c:353,1
    - Dst: le_deleteUnicodeNameString
      Src: /src/icu/source/test/letest/cletest.c:357,1
    - Dst: log_info
      Src: /src/icu/source/test/letest/cletest.c:359,1
    - Dst: le_deleteNameString
      Src: /src/icu/source/test/letest/cletest.c:360,1
    - Dst: log_info
      Src: /src/icu/source/test/letest/cletest.c:363,1
    - Dst: log_info
      Src: /src/icu/source/test/letest/cletest.c:364,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - font
    - testVersionString
    - testChecksum
    - testID
    argTypes:
    - le_font*
    - char*
    - le_uint32
    - char*
    constantsTouched: []
    func_position:
      end: 366
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 366
    functionName: checkFontVersion
    functionSourceFile: /src/icu/source/test/letest/cletest.c
    functionUses: []
    functionsReached:
    - le_getFontChecksum
    - log_info
    - le_getNameString
    - le_getUnicodeNameString
    - le_deleteNameString
    - le_deleteUnicodeNameString
    linkageType: ''
    returnType: void
    signature: 'static void checkFontVersion(le_font *font, const char *testVersionString,
      le_uint32 testChecksum, const char *testID) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getSourceTestData
      Src: /src/icu/source/test/letest/cletest.c:389,1
    - Dst: strcat
      Src: /src/icu/source/test/letest/cletest.c:392,1
    - Dst: strcpy
      Src: /src/icu/source/test/letest/cletest.c:391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - buffer
    - filename
    argTypes:
    - char
    - char*
    constantsTouched: []
    func_position:
      end: 395
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 395
    functionName: getPath
    functionSourceFile: /src/icu/source/test/letest/cletest.c
    functionUses: []
    functionsReached:
    - strcpy
    - strcat
    - getSourceTestData
    linkageType: ''
    returnType: char*
    signature: 'static const char *getPath(char buffer[2048], const char *filename) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_openSized
      Src: /src/icu/source/test/letest/cletest.c:429,1
    - Dst: ubidi_setPara
      Src: /src/icu/source/test/letest/cletest.c:431,1
    - Dst: ubidi_getLogicalRun
      Src: /src/icu/source/test/letest/cletest.c:434,1
    - Dst: ubidi_close
      Src: /src/icu/source/test/letest/cletest.c:436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - text
    - charCount
    argTypes:
    - LEUnicode*
    - le_int32
    constantsTouched: []
    func_position:
      end: 439
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 439
    functionName: getRTL
    functionSourceFile: /src/icu/source/test/letest/cletest.c
    functionUses: []
    functionsReached:
    - ubidi_close
    - ubidi_openSized
    - ubidi_getLogicalRun
    - ubidi_setPara
    linkageType: ''
    returnType: le_bool
    signature: 'static le_bool getRTL(const LEUnicode *text, le_int32 charCount) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: le_simpleFontOpen
      Src: /src/icu/source/test/letest/cletest.c:644,1
    - Dst: LE_FAILURE
      Src: /src/icu/source/test/letest/cletest.c:646,1
    - Dst: pl_getVisualRunGlyphToCharMap
      Src: /src/icu/source/test/letest/cletest.c:670,1
    - Dst: pl_reflow
      Src: /src/icu/source/test/letest/cletest.c:663,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:647,1
    - Dst: pl_closeFontRuns
      Src: /src/icu/source/test/letest/cletest.c:656,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:659,1
    - Dst: pl_nextLine
      Src: /src/icu/source/test/letest/cletest.c:664,1
    - Dst: pl_getVisualRunDirection
      Src: /src/icu/source/test/letest/cletest.c:672,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:684,1
    - Dst: pl_getLineVisualRun
      Src: /src/icu/source/test/letest/cletest.c:668,1
    - Dst: pl_getVisualRunGlyphCount
      Src: /src/icu/source/test/letest/cletest.c:669,1
    - Dst: pl_openEmptyFontRuns
      Src: /src/icu/source/test/letest/cletest.c:651,1
    - Dst: pl_create
      Src: /src/icu/source/test/letest/cletest.c:654,1
    - Dst: pl_countLineRuns
      Src: /src/icu/source/test/letest/cletest.c:665,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:715,1
    - Dst: LE_ARRAY_SIZE
      Src: /src/icu/source/test/letest/cletest.c:639,1
    - Dst: pl_addFontRun
      Src: /src/icu/source/test/letest/cletest.c:652,1
    - Dst: LE_FAILURE
      Src: /src/icu/source/test/letest/cletest.c:658,1
    - Dst: pl_close
      Src: /src/icu/source/test/letest/cletest.c:728,1
    - Dst: le_fontClose
      Src: /src/icu/source/test/letest/cletest.c:731,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 65
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 736
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 736
    functionName: GlyphToCharTest
    functionSourceFile: /src/icu/source/test/letest/cletest.c
    functionUses: []
    functionsReached:
    - pl_openEmptyFontRuns
    - pl_countLineRuns
    - pl_create
    - le_simpleFontOpen
    - LE_ARRAY_SIZE
    - pl_reflow
    - pl_close
    - pl_addFontRun
    - pl_getVisualRunGlyphCount
    - pl_getLineVisualRun
    - pl_getVisualRunDirection
    - le_fontClose
    - log_err
    - LE_FAILURE
    - pl_getVisualRunGlyphToCharMap
    - pl_nextLine
    - pl_closeFontRuns
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV GlyphToCharTest(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:293,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:300,1
    - Dst: uprv_fabs
      Src: /src/icu/source/test/letest/cletest.c:315,1
    - Dst: uprv_fabs
      Src: /src/icu/source/test/letest/cletest.c:316,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:308,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:319,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:329,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 3
    argNames:
    - testID
    - expected
    - actual
    argTypes:
    - char*
    - TestResult*
    - TestResult*
    constantsTouched: []
    func_position:
      end: 336
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 336
    functionName: compareResults
    functionSourceFile: /src/icu/source/test/letest/cletest.c
    functionUses: []
    functionsReached:
    - uprv_fabs
    - log_err
    linkageType: ''
    returnType: U_CDECL_END
    signature: 'U_CDECL_END static le_bool compareResults(const char *testID, TestResult
      *expected, TestResult *actual) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: le_portableFontOpen
      Src: /src/icu/source/test/letest/cletest.c:404,1
    - Dst: LE_FAILURE
      Src: /src/icu/source/test/letest/cletest.c:406,1
    - Dst: log_info
      Src: /src/icu/source/test/letest/cletest.c:407,1
    - Dst: le_fontClose
      Src: /src/icu/source/test/letest/cletest.c:408,1
    - Dst: getPath
      Src: /src/icu/source/test/letest/cletest.c:404,1
    - Dst: sscanf
      Src: /src/icu/source/test/letest/cletest.c:413,1
    - Dst: checkFontVersion
      Src: /src/icu/source/test/letest/cletest.c:415,1
    - Dst: le_simpleFontOpen
      Src: /src/icu/source/test/letest/cletest.c:418,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - fontName
    - checksum
    - version
    - testID
    argTypes:
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 422
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 422
    functionName: openFont
    functionSourceFile: /src/icu/source/test/letest/cletest.c
    functionUses: []
    functionsReached:
    - getPath
    - log_info
    - le_simpleFontOpen
    - le_portableFontOpen
    - le_fontClose
    - checkFontVersion
    - LE_FAILURE
    - sscanf
    linkageType: ''
    returnType: le_font*
    signature: 'static le_font *openFont(const char *fontName, const char *checksum,
      const char *version, const char *testID) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: openFont
      Src: /src/icu/source/test/letest/cletest.c:453,1
    - Dst: le_layoutChars
      Src: /src/icu/source/test/letest/cletest.c:473,1
    - Dst: LE_FAILURE
      Src: /src/icu/source/test/letest/cletest.c:468,1
    - Dst: le_create
      Src: /src/icu/source/test/letest/cletest.c:466,1
    - Dst: log_err
      Src: /src/icu/source/test/letest/cletest.c:469,1
    - Dst: getRTL
      Src: /src/icu/source/test/letest/cletest.c:473,1
    - Dst: NEW_ARRAY
      Src: /src/icu/source/test/letest/cletest.c:475,1
    - Dst: NEW_ARRAY
      Src: /src/icu/source/test/letest/cletest.c:476,1
    - Dst: NEW_ARRAY
      Src: /src/icu/source/test/letest/cletest.c:477,1
    - Dst: le_getGlyphs
      Src: /src/icu/source/test/letest/cletest.c:479,1
    - Dst: DELETE_ARRAY
      Src: /src/icu/source/test/letest/cletest.c:485,1
    - Dst: DELETE_ARRAY
      Src: /src/icu/source/test/letest/cletest.c:487,1
    - Dst: le_close
      Src: /src/icu/source/test/letest/cletest.c:489,1
    - Dst: compareResults
      Src: /src/icu/source/test/letest/cletest.c:483,1
    - Dst: le_fontClose
      Src: /src/icu/source/test/letest/cletest.c:492,1
    - Dst: DELETE_ARRAY
      Src: /src/icu/source/test/letest/cletest.c:486,1
    - Dst: le_getGlyphPositions
      Src: /src/icu/source/test/letest/cletest.c:481,1
    - Dst: le_getCharIndices
      Src: /src/icu/source/test/letest/cletest.c:480,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 9
    argNames:
    - testID
    - fontName
    - fontVersion
    - fontChecksum
    - scriptCode
    - languageCode
    - text
    - charCount
    - expected
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - le_int32
    - le_int32
    - LEUnicode*
    - le_int32
    - TestResult*
    constantsTouched: []
    func_position:
      end: 493
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 493
    functionName: doTestCase
    functionSourceFile: /src/icu/source/test/letest/cletest.c
    functionUses: []
    functionsReached:
    - le_create
    - compareResults
    - le_getCharIndices
    - le_getGlyphs
    - le_layoutChars
    - le_close
    - DELETE_ARRAY
    - openFont
    - le_fontClose
    - log_err
    - NEW_ARRAY
    - LE_FAILURE
    - le_getGlyphPositions
    - getRTL
    linkageType: ''
    returnType: void
    signature: "static void doTestCase (const char *testID,\t\t\t\t const char *fontName,\t\t\t\t
      const char *fontVersion,\t\t\t\t const char *fontChecksum,\t\t\t\t le_int32
      scriptCode,\t\t\t\t le_int32 languageCode,\t\t\t\t const LEUnicode *text,\t\t\t\t
      le_int32 charCount,\t\t\t\t TestResult *expected) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/letest/cletest.c:740,1
    - Dst: addTest
      Src: /src/icu/source/test/letest/cletest.c:742,1
    - Dst: addTest
      Src: /src/icu/source/test/letest/cletest.c:743,1
    - Dst: addTest
      Src: /src/icu/source/test/letest/cletest.c:744,1
    - Dst: addTest
      Src: /src/icu/source/test/letest/cletest.c:741,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 745
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 745
    functionName: addCTests
    functionSourceFile: /src/icu/source/test/letest/cletest.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void addCTests(TestNode **root) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/icu/source/test/letest/cletest.c:374,1
    - Dst: fclose
      Src: /src/icu/source/test/letest/cletest.c:378,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 386
    functionName: getSourceTestData
    functionSourceFile: /src/icu/source/test/letest/cletest.c
    functionUses: []
    functionsReached:
    - fclose
    - fopen
    linkageType: ''
    returnType: char*
    signature: 'static const char *getSourceTestData() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getPath
      Src: /src/icu/source/test/letest/cletest.c:498,1
    - Dst: readTestFile
      Src: /src/icu/source/test/letest/cletest.c:500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 501
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 501
    functionName: DataDrivenTest
    functionSourceFile: /src/icu/source/test/letest/cletest.c
    functionUses: []
    functionsReached:
    - readTestFile
    - getPath
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV DataDrivenTest(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LE_DELETE_ARRAY
      Src: /src/icu/source/test/letest/cmaps.h:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: CMAPMapper
    functionSourceFile: /src/icu/source/test/letest/cmaps.h
    functionUses: []
    functionsReached:
    - LE_DELETE_ARRAY
    linkageType: ''
    returnType: CMAPMapper
    signature: 'inline CMAPMapper ::~ CMAPMapper() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 33
    functionName: CMAPMapper
    functionSourceFile: /src/icu/source/test/letest/cmaps.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CMAPMapper '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMAPFormat4Mapper
      Src: /src/icu/source/test/letest/cmaps.h:45,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 54
    functionName: CMAPFormat4Mapper
    functionSourceFile: /src/icu/source/test/letest/cmaps.h
    functionUses: []
    functionsReached:
    - CMAPFormat4Mapper
    linkageType: ''
    returnType: class
    signature: 'class CMAPFormat4Mapper : public CMAPMapper '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fcmap
      Src: /src/icu/source/test/letest/cmaps.h:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - cmap
    argTypes:
    - CMAPTable*
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: CMAPMapper
    functionSourceFile: /src/icu/source/test/letest/cmaps.h
    functionUses: []
    functionsReached:
    - fcmap
    linkageType: ''
    returnType: CMAPMapper
    signature: 'inline CMAPMapper :: CMAPMapper(const CMAPTable *cmap) : fcmap(cmap) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMAPGroupMapper
      Src: /src/icu/source/test/letest/cmaps.h:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 72
    functionName: CMAPGroupMapper
    functionSourceFile: /src/icu/source/test/letest/cmaps.h
    functionUses: []
    functionsReached:
    - CMAPGroupMapper
    linkageType: ''
    returnType: class
    signature: 'class CMAPGroupMapper : public CMAPMapper '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FontTableCache
      Src: /src/icu/source/test/letest/FontTableCache.h:22,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 39
    functionName: FontTableCache
    functionSourceFile: /src/icu/source/test/letest/FontTableCache.h
    functionUses: []
    functionsReached:
    - FontTableCache
    linkageType: ''
    returnType: class
    signature: 'class FontTableCache '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/test/letest/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat0Encoding
    signature: 'struct CMAPFormat0Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/test/letest/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat2Encoding
    signature: 'struct CMAPFormat2Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 141
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/test/letest/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat4Encoding
    signature: 'struct CMAPFormat4Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 212
    functionName: CMAPEncodingSubtable32
    functionSourceFile: /src/icu/source/test/letest/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat8Encoding
    signature: 'struct CMAPFormat8Encoding : CMAPEncodingSubtable32 '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/test/letest/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat6Encoding
    signature: 'struct CMAPFormat6Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: CMAPEncodingSubtable32
    functionSourceFile: /src/icu/source/test/letest/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat10Encoding
    signature: 'struct CMAPFormat10Encoding : CMAPEncodingSubtable32 '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: CMAPEncodingSubtable32
    functionSourceFile: /src/icu/source/test/letest/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat12Encoding
    signature: 'struct CMAPFormat12Encoding : CMAPEncodingSubtable32 '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 86
    functionName: IntlTestWithFieldPosition
    functionSourceFile: /src/icu/source/test/intltest/dtifmtts.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class DateIntervalFormatTest: public IntlTestWithFieldPosition '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getInstance
      Src: /src/icu/source/test/intltest/testidna.h:68,1
    - Dst: TestIDNA
      Src: /src/icu/source/test/intltest/testidna.h:70,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 115
    functionName: TestIDNA
    functionSourceFile: /src/icu/source/test/intltest/testidna.h
    functionUses: []
    functionsReached:
    - getInstance
    - TestIDNA
    linkageType: ''
    returnType: class
    signature: 'class TestIDNA : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: (nullptr)
    functionSourceFile: /src/icu/source/test/intltest/testidna.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: gPrep
    signature: 'gPrep (nullptr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegexTest
      Src: /src/icu/source/test/intltest/regextst.h:23,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 80
    functionName: RegexTest
    functionSourceFile: /src/icu/source/test/intltest/regextst.h
    functionUses: []
    functionsReached:
    - RegexTest
    linkageType: ''
    returnType: class
    signature: 'class RegexTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 46
    functionName: CollationTurkishTest
    functionSourceFile: /src/icu/source/test/intltest/trcoll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CollationTurkishTest : public IntlTestCollator '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 37
    functionName: LotusCollationKoreanTest
    functionSourceFile: /src/icu/source/test/intltest/lcukocol.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class LotusCollationKoreanTest : public IntlTestCollator '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 45
    functionName: CollationEnglishTest
    functionSourceFile: /src/icu/source/test/intltest/encoll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CollationEnglishTest : public IntlTestCollator '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringTest
      Src: /src/icu/source/test/intltest/strtest.h:29,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 57
    functionName: StringTest
    functionSourceFile: /src/icu/source/test/intltest/strtest.h
    functionUses: []
    functionsReached:
    - StringTest
    linkageType: ''
    returnType: class
    signature: 'class StringTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 49
    functionName: CollationFrenchTest
    functionSourceFile: /src/icu/source/test/intltest/frcoll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CollationFrenchTest : public IntlTestCollator '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 54
    functionName: CollationDummyTest
    functionSourceFile: /src/icu/source/test/intltest/allcoll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CollationDummyTest : public IntlTestCollator '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NewResourceBundleTest
      Src: /src/icu/source/test/intltest/restsnew.h:18,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 52
    functionName: NewResourceBundleTest
    functionSourceFile: /src/icu/source/test/intltest/restsnew.h
    functionUses: []
    functionsReached:
    - NewResourceBundleTest
    linkageType: ''
    returnType: class
    signature: 'class NewResourceBundleTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 51
    functionName: CollationMonkeyTest
    functionSourceFile: /src/icu/source/test/intltest/mnkytst.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CollationMonkeyTest : public IntlTestCollator '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: TimeZoneOffsetLocalTest
    functionSourceFile: /src/icu/source/test/intltest/tzoffloc.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class TimeZoneOffsetLocalTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parseFrom
      Src: /src/icu/source/test/intltest/fldset.h:68,1
    - Dst: parseFrom
      Src: /src/icu/source/test/intltest/fldset.h:82,1
    - Dst: FieldsSet
      Src: /src/icu/source/test/intltest/fldset.h:160,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 217
    functionName: FieldsSet
    functionSourceFile: /src/icu/source/test/intltest/fldset.h
    functionUses: []
    functionsReached:
    - parseFrom
    - FieldsSet
    linkageType: ''
    returnType: class
    signature: 'class FieldsSet '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CalendarFieldsSet
      Src: /src/icu/source/test/intltest/fldset.h:225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 258
    functionName: CalendarFieldsSet
    functionSourceFile: /src/icu/source/test/intltest/fldset.h
    functionUses: []
    functionsReached:
    - CalendarFieldsSet
    linkageType: ''
    returnType: class
    signature: 'class CalendarFieldsSet : public FieldsSet '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parseFrom
      Src: /src/icu/source/test/intltest/fldset.h:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - UnicodeString
    - '& str'
    - inheritFrom
    - status
    argTypes:
    - U_NAMESPACE_QUALIFIER
    - FieldsSet
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: parseFrom
    functionSourceFile: /src/icu/source/test/intltest/fldset.h
    functionUses: []
    functionsReached:
    - parseFrom
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t parseFrom(const U_NAMESPACE_QUALIFIER UnicodeString& str,
      const FieldsSet& inheritFrom, UErrorCode& status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DateTimeStyleSet
      Src: /src/icu/source/test/intltest/fldset.h:268,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 289
    functionName: DateTimeStyleSet
    functionSourceFile: /src/icu/source/test/intltest/fldset.h
    functionUses: []
    functionsReached:
    - DateTimeStyleSet
    linkageType: ''
    returnType: class
    signature: 'class DateTimeStyleSet : public FieldsSet '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 79
    functionName: IntlTestDateFormat
    functionSourceFile: /src/icu/source/test/intltest/tsdate.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntlTestDateFormat : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: IntlTestFormat
    functionSourceFile: /src/icu/source/test/intltest/itformat.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntlTestFormat : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 51
    functionName: IntlTestWithFieldPosition
    functionSourceFile: /src/icu/source/test/intltest/itformat.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntlTestWithFieldPosition : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: IntlTestUtilities
    functionSourceFile: /src/icu/source/test/intltest/itutil.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntlTestUtilities : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: ErrorCodeTest
    functionSourceFile: /src/icu/source/test/intltest/itutil.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class ErrorCodeTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 103
    functionName: NumberFormatRegressionTest
    functionSourceFile: /src/icu/source/test/intltest/numrgts.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class NumberFormatRegressionTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CanonicalIteratorTest
      Src: /src/icu/source/test/intltest/canittst.h:37,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 56
    functionName: CanonicalIteratorTest
    functionSourceFile: /src/icu/source/test/intltest/canittst.h
    functionUses: []
    functionsReached:
    - CanonicalIteratorTest
    linkageType: ''
    returnType: class
    signature: 'class CanonicalIteratorTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LocaleBuilderTest
      Src: /src/icu/source/test/intltest/localebuildertest.h:12,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 50
    functionName: LocaleBuilderTest
    functionSourceFile: /src/icu/source/test/intltest/localebuildertest.h
    functionUses: []
    functionsReached:
    - LocaleBuilderTest
    linkageType: ''
    returnType: class
    signature: 'class LocaleBuilderTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 63
    functionName: DateFormatRegressionTest
    functionSourceFile: /src/icu/source/test/intltest/dtfmrgts.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class DateFormatRegressionTest : public CalendarTimeZoneTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntlTest
      Src: /src/icu/source/test/intltest/intltest.h:141,1
    - Dst: toHex
      Src: /src/icu/source/test/intltest/intltest.h:376,1
    - Dst: callTest
      Src: /src/icu/source/test/intltest/intltest.h:334,1
    - Dst: runTest
      Src: /src/icu/source/test/intltest/intltest.h:144,1
    - Dst: icu_rand
      Src: /src/icu/source/test/intltest/intltest.h:266,1
    CyclomaticComplexity: 130
    EdgeCount: 130
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 377
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 377
    functionName: IntlTest
    functionSourceFile: /src/icu/source/test/intltest/intltest.h
    functionUses: []
    functionsReached:
    - runTest
    - toHex
    - icu_rand
    - callTest
    - IntlTest
    linkageType: ''
    returnType: class
    signature: 'class IntlTest : public TestLog '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: icu_rand
      Src: /src/icu/source/test/intltest/intltest.h:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 277
    functionName: icu_rand
    functionSourceFile: /src/icu/source/test/intltest/intltest.h
    functionUses: []
    functionsReached:
    - icu_rand
    linkageType: ''
    returnType: class
    signature: 'class icu_rand '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LocaleTest
      Src: /src/icu/source/test/intltest/loctest.h:16,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 224
    functionName: LocaleTest
    functionSourceFile: /src/icu/source/test/intltest/loctest.h
    functionUses: []
    functionsReached:
    - LocaleTest
    linkageType: ''
    returnType: class
    signature: 'class LocaleTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randLong
      Src: /src/icu/source/test/intltest/tsnmfmt.h:83,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 86
    functionName: IntlTestNumberFormat
    functionSourceFile: /src/icu/source/test/intltest/tsnmfmt.h
    functionUses: []
    functionsReached:
    - randLong
    linkageType: ''
    returnType: class
    signature: 'class IntlTestNumberFormat : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randLong
      Src: /src/icu/source/test/intltest/tsnmfmt.h:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: randFraction
    functionSourceFile: /src/icu/source/test/intltest/tsnmfmt.h
    functionUses: []
    functionsReached:
    - randLong
    linkageType: ''
    returnType: double
    signature: 'static double randFraction() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 39
    functionName: CollationServiceTest
    functionSourceFile: /src/icu/source/test/intltest/svccoll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CollationServiceTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CharsetDetectionTest
      Src: /src/icu/source/test/intltest/csdetest.h:20,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 42
    functionName: CharsetDetectionTest
    functionSourceFile: /src/icu/source/test/intltest/csdetest.h
    functionUses: []
    functionsReached:
    - CharsetDetectionTest
    linkageType: ''
    returnType: class
    signature: 'class CharsetDetectionTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 184
    functionName: IntlTestCollator
    functionSourceFile: /src/icu/source/test/intltest/apicoll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CollationAPITest: public IntlTestCollator '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlphabeticIndexTest
      Src: /src/icu/source/test/intltest/alphaindextst.h:20,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 55
    functionName: AlphabeticIndexTest
    functionSourceFile: /src/icu/source/test/intltest/alphaindextst.h
    functionUses: []
    functionsReached:
    - AlphabeticIndexTest
    linkageType: ''
    returnType: class
    signature: 'class AlphabeticIndexTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleThread
      Src: /src/icu/source/test/intltest/simplethread.h:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: SimpleThread
    functionSourceFile: /src/icu/source/test/intltest/simplethread.h
    functionUses: []
    functionsReached:
    - SimpleThread
    linkageType: ''
    returnType: class
    signature: 'class SimpleThread '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: ThreadPool
    functionSourceFile: /src/icu/source/test/intltest/simplethread.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual ~ ThreadPool() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadPoolBase
      Src: /src/icu/source/test/intltest/simplethread.h:56,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 69
    functionName: ThreadPoolBase
    functionSourceFile: /src/icu/source/test/intltest/simplethread.h
    functionUses: []
    functionsReached:
    - ThreadPoolBase
    linkageType: ''
    returnType: class
    signature: 'class ThreadPoolBase '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTextTest
      Src: /src/icu/source/test/intltest/utxttest.h:28,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 64
    functionName: UTextTest
    functionSourceFile: /src/icu/source/test/intltest/utxttest.h
    functionUses: []
    functionsReached:
    - UTextTest
    linkageType: ''
    returnType: class
    signature: 'class UTextTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 259
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 259
    functionName: CollationRegressionTest
    functionSourceFile: /src/icu/source/test/intltest/regcoll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CollationRegressionTest : public IntlTestCollator '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 60
    functionName: DataDrivenNumberFormatTestSuite
    functionSourceFile: /src/icu/source/test/intltest/numfmtst.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class NumberFormatDataDrivenTest : public DataDrivenNumberFormatTestSuite '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect2
      Src: /src/icu/source/test/intltest/numfmtst.h:326,1
    - Dst: UnicodeString
      Src: /src/icu/source/test/intltest/numfmtst.h:326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 4
    argNames:
    - fmt
    - n
    - str
    - ec
    argTypes:
    - NumberFormat*
    - Formattable
    - char*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 327
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 327
    functionName: expect2
    functionSourceFile: /src/icu/source/test/intltest/numfmtst.h
    functionUses: []
    functionsReached:
    - expect2
    - UnicodeString
    linkageType: ''
    returnType: void
    signature: 'void expect2(NumberFormat* fmt, const Formattable& n, const char*
      str, UErrorCode ec) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect2
      Src: /src/icu/source/test/intltest/numfmtst.h:320,1
    - Dst: UnicodeString
      Src: /src/icu/source/test/intltest/numfmtst.h:326,1
    - Dst: expect2
      Src: /src/icu/source/test/intltest/numfmtst.h:326,1
    - Dst: expect
      Src: /src/icu/source/test/intltest/numfmtst.h:332,1
    - Dst: UnicodeString
      Src: /src/icu/source/test/intltest/numfmtst.h:320,1
    - Dst: UnicodeString
      Src: /src/icu/source/test/intltest/numfmtst.h:332,1
    - Dst: expect
      Src: /src/icu/source/test/intltest/numfmtst.h:340,1
    - Dst: UnicodeString
      Src: /src/icu/source/test/intltest/numfmtst.h:340,1
    CyclomaticComplexity: 168
    EdgeCount: 168
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 341
    functionName: CalendarTimeZoneTest
    functionSourceFile: /src/icu/source/test/intltest/numfmtst.h
    functionUses: []
    functionsReached:
    - expect2
    - UnicodeString
    - expect
    linkageType: ''
    returnType: class
    signature: 'class NumberFormatTest: public CalendarTimeZoneTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect2
      Src: /src/icu/source/test/intltest/numfmtst.h:320,1
    - Dst: UnicodeString
      Src: /src/icu/source/test/intltest/numfmtst.h:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - fmt
    - n
    - str
    argTypes:
    - NumberFormat
    - Formattable
    - char*
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: expect2
    functionSourceFile: /src/icu/source/test/intltest/numfmtst.h
    functionUses: []
    functionsReached:
    - expect2
    - UnicodeString
    linkageType: ''
    returnType: void
    signature: 'void expect2(NumberFormat& fmt, const Formattable& n, const char*
      str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect
      Src: /src/icu/source/test/intltest/numfmtst.h:332,1
    - Dst: UnicodeString
      Src: /src/icu/source/test/intltest/numfmtst.h:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - fmt
    - str
    - n
    argTypes:
    - NumberFormat
    - char*
    - Formattable
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: expect
    functionSourceFile: /src/icu/source/test/intltest/numfmtst.h
    functionUses: []
    functionsReached:
    - expect
    - UnicodeString
    linkageType: ''
    returnType: void
    signature: 'void expect(NumberFormat& fmt, const char *str, const Formattable&
      n) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect
      Src: /src/icu/source/test/intltest/numfmtst.h:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 4
    argNames:
    - fmt
    - n
    - exp
    - errorCode
    argTypes:
    - NumberFormat*
    - Formattable
    - UnicodeString
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: expect
    functionSourceFile: /src/icu/source/test/intltest/numfmtst.h
    functionUses: []
    functionsReached:
    - expect
    linkageType: ''
    returnType: void
    signature: 'void expect(NumberFormat* fmt, const Formattable& n, const UnicodeString&
      exp, UErrorCode errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expectPad
      Src: /src/icu/source/test/intltest/numfmtst.h:369,1
    - Dst: UnicodeString
      Src: /src/icu/source/test/intltest/numfmtst.h:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 5
    argNames:
    - fmt
    - pat
    - pos
    - width
    - pad
    argTypes:
    - DecimalFormat
    - char*
    - int32_t
    - int32_t
    - UChar
    constantsTouched: []
    func_position:
      end: 370
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 370
    functionName: expectPad
    functionSourceFile: /src/icu/source/test/intltest/numfmtst.h
    functionUses: []
    functionsReached:
    - UnicodeString
    - expectPad
    linkageType: ''
    returnType: void
    signature: 'void expectPad(DecimalFormat& fmt, const char *pat, int32_t pos, int32_t
      width, UChar pad) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expectPad
      Src: /src/icu/source/test/intltest/numfmtst.h:377,1
    - Dst: UnicodeString
      Src: /src/icu/source/test/intltest/numfmtst.h:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 5
    argNames:
    - fmt
    - pat
    - pos
    - width
    - pad
    argTypes:
    - DecimalFormat
    - char*
    - int32_t
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: expectPad
    functionSourceFile: /src/icu/source/test/intltest/numfmtst.h
    functionUses: []
    functionsReached:
    - UnicodeString
    - expectPad
    linkageType: ''
    returnType: void
    signature: 'void expectPad(DecimalFormat& fmt, const char *pat, int32_t pos, int32_t
      width, const UnicodeString& pad) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect
      Src: /src/icu/source/test/intltest/numfmtst.h:348,1
    - Dst: UnicodeString
      Src: /src/icu/source/test/intltest/numfmtst.h:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 5
    argNames:
    - fmt
    - n
    - exp
    - rt
    - errorCode
    argTypes:
    - NumberFormat*
    - Formattable
    - char*
    - UBool
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: expect
    functionSourceFile: /src/icu/source/test/intltest/numfmtst.h
    functionUses: []
    functionsReached:
    - expect
    - UnicodeString
    linkageType: ''
    returnType: void
    signature: 'void expect(NumberFormat* fmt, const Formattable& n, const char *exp,
      UBool rt, UErrorCode errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect
      Src: /src/icu/source/test/intltest/numfmtst.h:358,1
    - Dst: UnicodeString
      Src: /src/icu/source/test/intltest/numfmtst.h:358,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 4
    argNames:
    - fmt
    - n
    - exp
    - errorCode
    argTypes:
    - NumberFormat*
    - Formattable
    - char*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: expect
    functionSourceFile: /src/icu/source/test/intltest/numfmtst.h
    functionUses: []
    functionsReached:
    - expect
    - UnicodeString
    linkageType: ''
    returnType: void
    signature: 'void expect(NumberFormat* fmt, const Formattable& n, const char *exp,
      UErrorCode errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expectPad
      Src: /src/icu/source/test/intltest/numfmtst.h:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - fmt
    - pat
    - pos
    argTypes:
    - DecimalFormat
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 392
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 392
    functionName: expectPad
    functionSourceFile: /src/icu/source/test/intltest/numfmtst.h
    functionUses: []
    functionsReached:
    - expectPad
    linkageType: ''
    returnType: void
    signature: 'void expectPad(DecimalFormat& fmt, const char *pat, int32_t pos) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expectPat
      Src: /src/icu/source/test/intltest/numfmtst.h:383,1
    - Dst: UnicodeString
      Src: /src/icu/source/test/intltest/numfmtst.h:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - fmt
    - exp
    argTypes:
    - DecimalFormat
    - char*
    constantsTouched: []
    func_position:
      end: 384
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 384
    functionName: expectPat
    functionSourceFile: /src/icu/source/test/intltest/numfmtst.h
    functionUses: []
    functionsReached:
    - UnicodeString
    - expectPat
    linkageType: ''
    returnType: void
    signature: 'void expectPat(DecimalFormat& fmt, const char *exp) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 46
    functionName: TransliteratorRoundTripTest
    functionSourceFile: /src/icu/source/test/intltest/transrt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class TransliteratorRoundTripTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 67
    functionName: TextFile
    functionSourceFile: /src/icu/source/test/intltest/textfile.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class TextFile '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: getLineNumber
    functionSourceFile: /src/icu/source/test/intltest/textfile.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t TextFile:: getLineNumber() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CEList
      Src: /src/icu/source/test/intltest/colldata.h:69,1
    - Dst: CEList
      Src: /src/icu/source/test/intltest/colldata.h:74,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 119
    functionName: CEList
    functionSourceFile: /src/icu/source/test/intltest/colldata.h
    functionUses: []
    functionsReached:
    - CEList
    linkageType: ''
    returnType: U_NAMESPACE_USE
    signature: 'U_NAMESPACE_USE /** * This object holds a list of CEs generated from
      a particular * <code>UnicodeString</code> * */ class CEList '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CollData
      Src: /src/icu/source/test/intltest/colldata.h:217,1
    - Dst: CollData
      Src: /src/icu/source/test/intltest/colldata.h:222,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 300
    functionName: CollData
    functionSourceFile: /src/icu/source/test/intltest/colldata.h
    functionUses: []
    functionsReached:
    - CollData
    linkageType: ''
    returnType: class
    signature: 'class CollData '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringList
      Src: /src/icu/source/test/intltest/colldata.h:138,1
    - Dst: StringList
      Src: /src/icu/source/test/intltest/colldata.h:143,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 183
    functionName: StringList
    functionSourceFile: /src/icu/source/test/intltest/colldata.h
    functionUses: []
    functionsReached:
    - StringList
    linkageType: ''
    returnType: class
    signature: 'class StringList '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 63
    functionName: CalendarCaseTest
    functionSourceFile: /src/icu/source/test/intltest/calcasts.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CalendarCaseTest : public CalendarTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: IntlTestSimpleDateFormatAPI
    functionSourceFile: /src/icu/source/test/intltest/sdtfmtts.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntlTestSimpleDateFormatAPI : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 53
    functionName: MessageFormatRegressionTest
    functionSourceFile: /src/icu/source/test/intltest/msfmrgts.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class MessageFormatRegressionTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getOrders
      Src: /src/icu/source/test/intltest/tscoll.h:52,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 55
    functionName: IntlTestCollator
    functionSourceFile: /src/icu/source/test/intltest/tscoll.h
    functionUses: []
    functionsReached:
    - getOrders
    linkageType: ''
    returnType: class
    signature: 'class IntlTestCollator : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecimalFormatTest
      Src: /src/icu/source/test/intltest/dcfmtest.h:28,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 59
    functionName: DecimalFormatTest
    functionSourceFile: /src/icu/source/test/intltest/dcfmtest.h
    functionUses: []
    functionsReached:
    - DecimalFormatTest
    linkageType: ''
    returnType: class
    signature: 'class DecimalFormatTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ListFormatterTest
      Src: /src/icu/source/test/intltest/listformattertest.h:30,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 127
    functionName: IntlTestWithFieldPosition
    functionSourceFile: /src/icu/source/test/intltest/listformattertest.h
    functionUses: []
    functionsReached:
    - ListFormatterTest
    linkageType: ''
    returnType: class
    signature: 'class ListFormatterTest : public IntlTestWithFieldPosition '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: ListFormatterTest
    functionSourceFile: /src/icu/source/test/intltest/listformattertest.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual ~ ListFormatterTest() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegionTest
      Src: /src/icu/source/test/intltest/regiontst.h:26,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 44
    functionName: RegionTest
    functionSourceFile: /src/icu/source/test/intltest/regiontst.h
    functionUses: []
    functionsReached:
    - RegionTest
    linkageType: ''
    returnType: class
    signature: 'class RegionTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DataDrivenFormatTest
      Src: /src/icu/source/test/intltest/dadrfmt.h:35,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 49
    functionName: DataDrivenFormatTest
    functionSourceFile: /src/icu/source/test/intltest/dadrfmt.h
    functionUses: []
    functionsReached:
    - DataDrivenFormatTest
    linkageType: ''
    returnType: class
    signature: 'class DataDrivenFormatTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 35
    functionName: TimeZoneFormatTest
    functionSourceFile: /src/icu/source/test/intltest/tzfmttst.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class TimeZoneFormatTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Win32DateTimeTest
      Src: /src/icu/source/test/intltest/windttst.h:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: Win32DateTimeTest
    functionSourceFile: /src/icu/source/test/intltest/windttst.h
    functionUses: []
    functionsReached:
    - Win32DateTimeTest
    linkageType: ''
    returnType: class
    signature: 'class Win32DateTimeTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 39
    functionName: IntlTestDateFormatSymbols
    functionSourceFile: /src/icu/source/test/intltest/tsdtfmsy.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntlTestDateFormatSymbols : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NormalizerConformanceTest
      Src: /src/icu/source/test/intltest/normconf.h:27,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 109
    functionName: NormalizerConformanceTest
    functionSourceFile: /src/icu/source/test/intltest/normconf.h
    functionUses: []
    functionsReached:
    - NormalizerConformanceTest
    linkageType: ''
    returnType: class
    signature: 'class NormalizerConformanceTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: SelectFormatTest
    functionSourceFile: /src/icu/source/test/intltest/selfmts.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class SelectFormatTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ymdToString
      Src: /src/icu/source/test/intltest/callimts.h:85,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 86
    functionName: CalendarTimeZoneTest
    functionSourceFile: /src/icu/source/test/intltest/callimts.h
    functionUses: []
    functionsReached:
    - ymdToString
    linkageType: ''
    returnType: class
    signature: 'class CalendarLimitTest: public CalendarTimeZoneTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 42
    functionName: UObjectTest
    functionSourceFile: /src/icu/source/test/intltest/uobjtest.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class UObjectTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 163
    functionName: IntlTestRBNF
    functionSourceFile: /src/icu/source/test/intltest/itrbnf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntlTestRBNF : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 49
    functionName: PluralFormatTest
    functionSourceFile: /src/icu/source/test/intltest/plurfmts.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class PluralFormatTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 47
    functionName: CollationGermanTest
    functionSourceFile: /src/icu/source/test/intltest/decoll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CollationGermanTest : public IntlTestCollator '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: TestFormatSmallClasses
    functionSourceFile: /src/icu/source/test/intltest/tfsmalls.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class TestFormatSmallClasses : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: IntlTestNumberFormatAPI
    functionSourceFile: /src/icu/source/test/intltest/nmfmapts.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntlTestNumberFormatAPI : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnicodeSetTest
      Src: /src/icu/source/test/intltest/usettest.h:31,1
    - Dst: UnicodeSetTest
      Src: /src/icu/source/test/intltest/usettest.h:32,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 199
    functionName: UnicodeSetTest
    functionSourceFile: /src/icu/source/test/intltest/usettest.h
    functionUses: []
    functionsReached:
    - UnicodeSetTest
    linkageType: ''
    returnType: class
    signature: 'class UnicodeSetTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DateFormatRoundTripTest
      Src: /src/icu/source/test/intltest/dtfmtrtts.h:30,1
    - Dst: escape
      Src: /src/icu/source/test/intltest/dtfmtrtts.h:38,1
    - Dst: random
      Src: /src/icu/source/test/intltest/dtfmtrtts.h:53,1
    - Dst: random
      Src: /src/icu/source/test/intltest/dtfmtrtts.h:54,1
    - Dst: randLong
      Src: /src/icu/source/test/intltest/dtfmtrtts.h:62,1
    - Dst: randFraction
      Src: /src/icu/source/test/intltest/dtfmtrtts.h:70,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 92
    functionName: DateFormatRoundTripTest
    functionSourceFile: /src/icu/source/test/intltest/dtfmtrtts.h
    functionUses: []
    functionsReached:
    - random
    - DateFormatRoundTripTest
    - randFraction
    - randLong
    - escape
    linkageType: ''
    returnType: class
    signature: 'class DateFormatRoundTripTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randLong
      Src: /src/icu/source/test/intltest/dtfmtrtts.h:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: randFraction
    functionSourceFile: /src/icu/source/test/intltest/dtfmtrtts.h
    functionUses: []
    functionsReached:
    - randLong
    linkageType: ''
    returnType: double
    signature: 'static double randFraction() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randFraction
      Src: /src/icu/source/test/intltest/dtfmtrtts.h:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - range
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: randDouble
    functionSourceFile: /src/icu/source/test/intltest/dtfmtrtts.h
    functionUses: []
    functionsReached:
    - randFraction
    linkageType: ''
    returnType: double
    signature: 'static double randDouble(double range) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/icu/source/test/intltest/dtfmtrtts.h:53,1
    - Dst: random
      Src: /src/icu/source/test/intltest/dtfmtrtts.h:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: randLong
    functionSourceFile: /src/icu/source/test/intltest/dtfmtrtts.h
    functionUses: []
    functionsReached:
    - random
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t randLong() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: MajorTestLevel
    functionSourceFile: /src/icu/source/test/intltest/itmajor.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class MajorTestLevel : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: IntlTestNormalize
    functionSourceFile: /src/icu/source/test/intltest/itmajor.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntlTestNormalize : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: TransliteratorErrorTest
    functionSourceFile: /src/icu/source/test/intltest/trnserr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class TransliteratorErrorTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: AffixUtilsTest
    functionSourceFile: /src/icu/source/test/intltest/numbertest.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class AffixUtilsTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 221
    functionName: NumberParserTest
    functionSourceFile: /src/icu/source/test/intltest/numbertest.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class NumberParserTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 238
    functionName: NumberSkeletonTest
    functionSourceFile: /src/icu/source/test/intltest/numbertest.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class NumberSkeletonTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NumberRangeFormatterTest
      Src: /src/icu/source/test/intltest/numbertest.h:242,1
    - Dst: NumberRangeFormatterTest
      Src: /src/icu/source/test/intltest/numbertest.h:243,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 288
    functionName: IntlTestWithFieldPosition
    functionSourceFile: /src/icu/source/test/intltest/numbertest.h
    functionUses: []
    functionsReached:
    - NumberRangeFormatterTest
    linkageType: ''
    returnType: class
    signature: 'class NumberRangeFormatterTest : public IntlTestWithFieldPosition '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: NumberPermutationTest
    functionSourceFile: /src/icu/source/test/intltest/numbertest.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class NumberPermutationTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 155
    functionName: DecimalQuantityTest
    functionSourceFile: /src/icu/source/test/intltest/numbertest.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class DecimalQuantityTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 181
    functionName: ModifiersTest
    functionSourceFile: /src/icu/source/test/intltest/numbertest.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class ModifiersTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NumberFormatterApiTest
      Src: /src/icu/source/test/intltest/numbertest.h:48,1
    - Dst: NumberFormatterApiTest
      Src: /src/icu/source/test/intltest/numbertest.h:49,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 133
    functionName: IntlTestWithFieldPosition
    functionSourceFile: /src/icu/source/test/intltest/numbertest.h
    functionUses: []
    functionsReached:
    - NumberFormatterApiTest
    linkageType: ''
    returnType: class
    signature: 'class NumberFormatterApiTest : public IntlTestWithFieldPosition '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: DoubleConversionTest
    functionSourceFile: /src/icu/source/test/intltest/numbertest.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class DoubleConversionTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 194
    functionName: PatternModifierTest
    functionSourceFile: /src/icu/source/test/intltest/numbertest.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class PatternModifierTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NumberFormatTestTuple
      Src: /src/icu/source/test/intltest/numberformattesttuple.h:181,1
    - Dst: clear
      Src: /src/icu/source/test/intltest/numberformattesttuple.h:182,1
    - Dst: toString
      Src: /src/icu/source/test/intltest/numberformattesttuple.h:217,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 231
    functionName: NumberFormatTestTuple
    functionSourceFile: /src/icu/source/test/intltest/numberformattesttuple.h
    functionUses: []
    functionsReached:
    - NumberFormatTestTuple
    - toString
    - clear
    linkageType: ''
    returnType: class
    signature: 'class NumberFormatTestTuple '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ICUServiceTest
      Src: /src/icu/source/test/intltest/icusvtst.h:25,1
    - Dst: lrmsg
      Src: /src/icu/source/test/intltest/icusvtst.h:39,1
    - Dst: msgstr
      Src: /src/icu/source/test/intltest/icusvtst.h:54,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 56
    functionName: ICUServiceTest
    functionSourceFile: /src/icu/source/test/intltest/icusvtst.h
    functionUses: []
    functionsReached:
    - lrmsg
    - msgstr
    - ICUServiceTest
    linkageType: ''
    returnType: class
    signature: 'class ICUServiceTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msgstr
      Src: /src/icu/source/test/intltest/icusvtst.h:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - message
    - obj
    argTypes:
    - UnicodeString
    - UObject*
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: logstr
    functionSourceFile: /src/icu/source/test/intltest/icusvtst.h
    functionUses: []
    functionsReached:
    - msgstr
    linkageType: ''
    returnType: void
    signature: 'void logstr(const UnicodeString& message, UObject* obj) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 102
    functionName: RBBIAPITest
    functionSourceFile: /src/icu/source/test/intltest/rbbiapts.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class RBBIAPITest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 95
    functionName: RbnfRoundTripTest
    functionSourceFile: /src/icu/source/test/intltest/itrbnfrt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class RbnfRoundTripTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: appendHex
      Src: /src/icu/source/test/intltest/testutil.h:29,1
    - Dst: TestUtility
      Src: /src/icu/source/test/intltest/testutil.h:49,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 50
    functionName: TestUtility
    functionSourceFile: /src/icu/source/test/intltest/testutil.h
    functionUses: []
    functionsReached:
    - appendHex
    - TestUtility
    linkageType: ''
    returnType: class
    signature: 'class TestUtility '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 75
    functionName: TransliteratorAPITest
    functionSourceFile: /src/icu/source/test/intltest/transapi.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class TransliteratorAPITest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 62
    functionName: CompoundTransliteratorTest
    functionSourceFile: /src/icu/source/test/intltest/cpdtrtst.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CompoundTransliteratorTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 99
    functionName: CalendarRegressionTest
    functionSourceFile: /src/icu/source/test/intltest/calregts.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CalendarRegressionTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 48
    functionName: PluralRulesTest
    functionSourceFile: /src/icu/source/test/intltest/plurults.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class PluralRulesTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LocaleAliasTest
      Src: /src/icu/source/test/intltest/aliastst.h:23,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 29
    functionName: LocaleAliasTest
    functionSourceFile: /src/icu/source/test/intltest/aliastst.h
    functionUses: []
    functionsReached:
    - LocaleAliasTest
    linkageType: ''
    returnType: class
    signature: 'class LocaleAliasTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 61
    functionName: IntlTestSpoof
    functionSourceFile: /src/icu/source/test/intltest/itspoof.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntlTestSpoof : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 50
    functionName: CalendarTimeZoneTest
    functionSourceFile: /src/icu/source/test/intltest/incaltst.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntlCalendarTest: public CalendarTimeZoneTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: G7CollationTest
      Src: /src/icu/source/test/intltest/g7coll.h:52,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 74
    functionName: IntlTestCollator
    functionSourceFile: /src/icu/source/test/intltest/g7coll.h
    functionUses: []
    functionsReached:
    - G7CollationTest
    linkageType: ''
    returnType: class
    signature: 'class G7CollationTest: public IntlTestCollator '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ResourceBundleTest
      Src: /src/icu/source/test/intltest/restest.h:18,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 42
    functionName: ResourceBundleTest
    functionSourceFile: /src/icu/source/test/intltest/restest.h
    functionUses: []
    functionsReached:
    - ResourceBundleTest
    linkageType: ''
    returnType: class
    signature: 'class ResourceBundleTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 55
    functionName: TestChoiceFormat
    functionSourceFile: /src/icu/source/test/intltest/tchcfmt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class TestChoiceFormat : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 33
    functionName: ParsePositionTest
    functionSourceFile: /src/icu/source/test/intltest/pptest.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class ParsePositionTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: orderString
      Src: /src/icu/source/test/intltest/itercoll.h:108,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 116
    functionName: CollationIteratorTest
    functionSourceFile: /src/icu/source/test/intltest/itercoll.h
    functionUses: []
    functionsReached:
    - orderString
    linkageType: ''
    returnType: class
    signature: 'class CollationIteratorTest : public IntlTestCollator '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleFwdCharIterator
      Src: /src/icu/source/test/intltest/sfwdchit.h:17,1
    - Dst: SimpleFwdCharIterator
      Src: /src/icu/source/test/intltest/sfwdchit.h:64,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 67
    functionName: ForwardCharacterIterator
    functionSourceFile: /src/icu/source/test/intltest/sfwdchit.h
    functionUses: []
    functionsReached:
    - SimpleFwdCharIterator
    linkageType: ''
    returnType: class
    signature: 'class SimpleFwdCharIterator : public ForwardCharacterIterator '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames:
    - other
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: ForwardCharacterIterator
    functionSourceFile: /src/icu/source/test/intltest/sfwdchit.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: SimpleFwdCharIterator(const SimpleFwdCharIterator &other)
    signature: 'SimpleFwdCharIterator(const SimpleFwdCharIterator &other) : ForwardCharacterIterator(other) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: escape
      Src: /src/icu/source/test/intltest/nmfmtrt.h:47,1
    - Dst: randLong
      Src: /src/icu/source/test/intltest/nmfmtrt.h:67,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 73
    functionName: NumberFormatRoundTripTest
    functionSourceFile: /src/icu/source/test/intltest/nmfmtrt.h
    functionUses: []
    functionsReached:
    - randLong
    - escape
    linkageType: ''
    returnType: class
    signature: 'class NumberFormatRoundTripTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randLong
      Src: /src/icu/source/test/intltest/nmfmtrt.h:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: randFraction
    functionSourceFile: /src/icu/source/test/intltest/nmfmtrt.h
    functionUses: []
    functionsReached:
    - randLong
    linkageType: ''
    returnType: double
    signature: 'static double randFraction() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - Formattable
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: isLong
    functionSourceFile: /src/icu/source/test/intltest/nmfmtrt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isLong(const Formattable& n) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - Formattable
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: isDouble
    functionSourceFile: /src/icu/source/test/intltest/nmfmtrt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isDouble(const Formattable& n) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DataDrivenNumberFormatTestSuite
      Src: /src/icu/source/test/intltest/datadrivennumberformattestsuite.h:30,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/intltest/datadrivennumberformattestsuite.h:31,1
    - Dst: newFormatter
      Src: /src/icu/source/test/intltest/datadrivennumberformattestsuite.h:87,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 141
    functionName: DataDrivenNumberFormatTestSuite
    functionSourceFile: /src/icu/source/test/intltest/datadrivennumberformattestsuite.h
    functionUses: []
    functionsReached:
    - DataDrivenNumberFormatTestSuite
    - UPRV_LENGTHOF
    - newFormatter
    linkageType: ''
    returnType: class
    signature: 'class DataDrivenNumberFormatTestSuite : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 41
    functionName: IntlTestDecimalFormatAPI
    functionSourceFile: /src/icu/source/test/intltest/dcfmapts.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntlTestDecimalFormatAPI : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: CollationCurrencyTest
    functionSourceFile: /src/icu/source/test/intltest/currcoll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CollationCurrencyTest : public IntlTestCollator '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CharIterTest
      Src: /src/icu/source/test/intltest/citrtest.h:19,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 44
    functionName: CharIterTest
    functionSourceFile: /src/icu/source/test/intltest/citrtest.h
    functionUses: []
    functionsReached:
    - CharIterTest
    linkageType: ''
    returnType: class
    signature: 'class CharIterTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dateToString
      Src: /src/icu/source/test/intltest/caltztst.h:36,1
    - Dst: dateToString
      Src: /src/icu/source/test/intltest/caltztst.h:37,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 61
    functionName: CalendarTimeZoneTest
    functionSourceFile: /src/icu/source/test/intltest/caltztst.h
    functionUses: []
    functionsReached:
    - dateToString
    linkageType: ''
    returnType: class
    signature: 'class CalendarTimeZoneTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 62
    functionName: CollationKanaTest
    functionSourceFile: /src/icu/source/test/intltest/jacoll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CollationKanaTest : public IntlTestCollator '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: ReplaceableTest
    functionSourceFile: /src/icu/source/test/intltest/reptest.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class ReplaceableTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MultithreadTest
      Src: /src/icu/source/test/intltest/tsmthred.h:23,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 51
    functionName: MultithreadTest
    functionSourceFile: /src/icu/source/test/intltest/tsmthred.h
    functionUses: []
    functionsReached:
    - MultithreadTest
    linkageType: ''
    returnType: class
    signature: 'class MultithreadTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DataDrivenCalendarTest
      Src: /src/icu/source/test/intltest/dadrcal.h:35,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 49
    functionName: DataDrivenCalendarTest
    functionSourceFile: /src/icu/source/test/intltest/dadrcal.h
    functionUses: []
    functionsReached:
    - DataDrivenCalendarTest
    linkageType: ''
    returnType: class
    signature: 'class DataDrivenCalendarTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MonkeyTestData
      Src: /src/icu/source/test/intltest/rbbimonkeytest.h:150,1
    - Dst: MonkeyTestData
      Src: /src/icu/source/test/intltest/rbbimonkeytest.h:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 168
    functionName: MonkeyTestData
    functionSourceFile: /src/icu/source/test/intltest/rbbimonkeytest.h
    functionUses: []
    functionsReached:
    - MonkeyTestData
    linkageType: ''
    returnType: class
    signature: 'class MonkeyTestData : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BreakRule
      Src: /src/icu/source/test/intltest/rbbimonkeytest.h:98,1
    - Dst: BreakRule
      Src: /src/icu/source/test/intltest/rbbimonkeytest.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: BreakRule
    functionSourceFile: /src/icu/source/test/intltest/rbbimonkeytest.h
    functionUses: []
    functionsReached:
    - BreakRule
    linkageType: ''
    returnType: class
    signature: 'class BreakRule : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fName
      Src: /src/icu/source/test/intltest/rbbimonkeytest.h:88,1
    - Dst: fSet
      Src: /src/icu/source/test/intltest/rbbimonkeytest.h:88,1
    - Dst: fOriginalDef
      Src: /src/icu/source/test/intltest/rbbimonkeytest.h:88,1
    - Dst: fExpandedDef
      Src: /src/icu/source/test/intltest/rbbimonkeytest.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: CharClass
    functionSourceFile: /src/icu/source/test/intltest/rbbimonkeytest.h
    functionUses: []
    functionsReached:
    - fSet
    - fExpandedDef
    - fOriginalDef
    - fName
    linkageType: ''
    returnType: class
    signature: 'class CharClass : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RBBIMonkeyImpl
      Src: /src/icu/source/test/intltest/rbbimonkeytest.h:181,1
    - Dst: RBBIMonkeyImpl
      Src: /src/icu/source/test/intltest/rbbimonkeytest.h:182,1
    - Dst: RBBIMonkeyThread
      Src: /src/icu/source/test/intltest/rbbimonkeytest.h:218,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 225
    functionName: RBBIMonkeyImpl
    functionSourceFile: /src/icu/source/test/intltest/rbbimonkeytest.h
    functionUses: []
    functionsReached:
    - RBBIMonkeyThread
    - RBBIMonkeyImpl
    linkageType: ''
    returnType: class
    signature: 'class RBBIMonkeyImpl : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RBBIMonkeyThread
      Src: /src/icu/source/test/intltest/rbbimonkeytest.h:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: RBBIMonkeyThread
    functionSourceFile: /src/icu/source/test/intltest/rbbimonkeytest.h
    functionUses: []
    functionsReached:
    - RBBIMonkeyThread
    linkageType: ''
    returnType: class
    signature: 'class RBBIMonkeyThread : public SimpleThread '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: run
    functionSourceFile: /src/icu/source/test/intltest/rbbimonkeytest.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void run() U_OVERRIDE '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RBBIMonkeyTest
      Src: /src/icu/source/test/intltest/rbbimonkeytest.h:55,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 71
    functionName: RBBIMonkeyTest
    functionSourceFile: /src/icu/source/test/intltest/rbbimonkeytest.h
    functionUses: []
    functionsReached:
    - RBBIMonkeyTest
    linkageType: ''
    returnType: class
    signature: 'class RBBIMonkeyTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BreakRules
      Src: /src/icu/source/test/intltest/rbbimonkeytest.h:113,1
    - Dst: createICUBreakIterator
      Src: /src/icu/source/test/intltest/rbbimonkeytest.h:135,1
    - Dst: BreakRules
      Src: /src/icu/source/test/intltest/rbbimonkeytest.h:114,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 141
    functionName: BreakRules
    functionSourceFile: /src/icu/source/test/intltest/rbbimonkeytest.h
    functionUses: []
    functionsReached:
    - BreakRules
    - createICUBreakIterator
    linkageType: ''
    returnType: class
    signature: 'class BreakRules : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: EraRulesTest
    functionSourceFile: /src/icu/source/test/intltest/erarulestest.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class EraRulesTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 44
    functionName: IntlTestRBNFParse
    functionSourceFile: /src/icu/source/test/intltest/itrbnfp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntlTestRBNFParse : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 36
    functionName: IntlTestDecimalFormatSymbols
    functionSourceFile: /src/icu/source/test/intltest/tsdcfmsy.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntlTestDecimalFormatSymbols : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Win32NumberTest
      Src: /src/icu/source/test/intltest/winnmtst.h:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: Win32NumberTest
    functionSourceFile: /src/icu/source/test/intltest/winnmtst.h
    functionUses: []
    functionsReached:
    - Win32NumberTest
    linkageType: ''
    returnType: class
    signature: 'class Win32NumberTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: escape
      Src: /src/icu/source/test/intltest/dtfmttst.h:47,1
    - Dst: testIt917
      Src: /src/icu/source/test/intltest/dtfmttst.h:87,1
    - Dst: parse2DigitYear
      Src: /src/icu/source/test/intltest/dtfmttst.h:132,1
    - Dst: tryPattern
      Src: /src/icu/source/test/intltest/dtfmttst.h:106,1
    CyclomaticComplexity: 97
    EdgeCount: 97
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 290
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 290
    functionName: CalendarTimeZoneTest
    functionSourceFile: /src/icu/source/test/intltest/dtfmttst.h
    functionUses: []
    functionsReached:
    - testIt917
    - parse2DigitYear
    - tryPattern
    - escape
    linkageType: ''
    returnType: class
    signature: 'class DateFormatTest: public CalendarTimeZoneTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UVector32Test
      Src: /src/icu/source/test/intltest/v32test.h:23,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: UVector32Test
    functionSourceFile: /src/icu/source/test/intltest/v32test.h
    functionUses: []
    functionsReached:
    - UVector32Test
    linkageType: ''
    returnType: class
    signature: 'class UVector32Test : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TransliteratorTest
      Src: /src/icu/source/test/intltest/transtst.h:28,1
    - Dst: formatInput
      Src: /src/icu/source/test/intltest/transtst.h:409,1
    CyclomaticComplexity: 106
    EdgeCount: 106
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 424
    functionName: TransliteratorTest
    functionSourceFile: /src/icu/source/test/intltest/transtst.h
    functionUses: []
    functionsReached:
    - TransliteratorTest
    - formatInput
    linkageType: ''
    returnType: class
    signature: 'class TransliteratorTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LocaleDisplayNamesTest
      Src: /src/icu/source/test/intltest/locnmtst.h:16,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 45
    functionName: LocaleDisplayNamesTest
    functionSourceFile: /src/icu/source/test/intltest/locnmtst.h
    functionUses: []
    functionsReached:
    - LocaleDisplayNamesTest
    linkageType: ''
    returnType: class
    signature: 'class LocaleDisplayNamesTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UCAConformanceTest
      Src: /src/icu/source/test/intltest/ucaconf.h:28,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 50
    functionName: UCAConformanceTest
    functionSourceFile: /src/icu/source/test/intltest/ucaconf.h
    functionUses: []
    functionsReached:
    - UCAConformanceTest
    linkageType: ''
    returnType: class
    signature: 'class UCAConformanceTest : public IntlTestCollator '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 33
    functionName: DateFormatMiscTests
    functionSourceFile: /src/icu/source/test/intltest/miscdtfm.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class DateFormatMiscTests : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 37
    functionName: IntlTestDateTimePatternGeneratorAPI
    functionSourceFile: /src/icu/source/test/intltest/dtptngts.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntlTestDateTimePatternGeneratorAPI : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NamePrepTransform
      Src: /src/icu/source/test/intltest/nptrans.h:43,1
    - Dst: getStaticClassID
      Src: /src/icu/source/test/intltest/nptrans.h:58,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 125
    functionName: NamePrepTransform
    functionSourceFile: /src/icu/source/test/intltest/nptrans.h
    functionUses: []
    functionsReached:
    - getStaticClassID
    - NamePrepTransform
    linkageType: ''
    returnType: class
    signature: 'class NamePrepTransform '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: getStaticClassID
    functionSourceFile: /src/icu/source/test/intltest/nptrans.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UClassID
    signature: 'static inline UClassID getStaticClassID() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getStaticClassID
      Src: /src/icu/source/test/intltest/nptrans.h:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: getDynamicClassID
    functionSourceFile: /src/icu/source/test/intltest/nptrans.h
    functionUses: []
    functionsReached:
    - getStaticClassID
    linkageType: ''
    returnType: UClassID
    signature: 'inline UClassID getDynamicClassID() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: NamePrepTransform
    functionSourceFile: /src/icu/source/test/intltest/nptrans.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class NamePrepTransform '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 1
    argNames:
    - ch
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 141
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 141
    functionName: isLDHChar
    functionSourceFile: /src/icu/source/test/intltest/nptrans.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool NamePrepTransform:: isLDHChar(UChar32 ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 51
    functionName: CalendarTimeZoneTest
    functionSourceFile: /src/icu/source/test/intltest/tzrulets.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class TimeZoneRuleTest : public CalendarTimeZoneTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 58
    functionName: TimeZoneRegressionTest
    functionSourceFile: /src/icu/source/test/intltest/tzregts.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class TimeZoneRegressionTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JamoTest
      Src: /src/icu/source/test/intltest/jamotest.h:29,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 57
    functionName: TransliteratorTest
    functionSourceFile: /src/icu/source/test/intltest/jamotest.h
    functionUses: []
    functionsReached:
    - JamoTest
    linkageType: ''
    returnType: class
    signature: 'class JamoTest : public TransliteratorTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Win32Utilities
      Src: /src/icu/source/test/intltest/winutil.h:40,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: Win32Utilities
    functionSourceFile: /src/icu/source/test/intltest/winutil.h
    functionUses: []
    functionsReached:
    - Win32Utilities
    linkageType: ''
    returnType: class
    signature: 'class Win32Utilities '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 45
    functionName: IntlTestDateFormatAPI
    functionSourceFile: /src/icu/source/test/intltest/dtfmapts.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntlTestDateFormatAPI : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 132
    functionName: TestMessageFormat
    functionSourceFile: /src/icu/source/test/intltest/tmsgfmt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class TestMessageFormat : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 257
    functionName: CalendarTimeZoneTest
    functionSourceFile: /src/icu/source/test/intltest/caltest.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CalendarTest: public CalendarTimeZoneTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 45
    functionName: CollationFinnishTest
    functionSourceFile: /src/icu/source/test/intltest/ficoll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CollationFinnishTest : public IntlTestCollator '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BasicNormalizerTest
      Src: /src/icu/source/test/intltest/tstnorm.h:24,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 91
    functionName: BasicNormalizerTest
    functionSourceFile: /src/icu/source/test/intltest/tstnorm.h
    functionUses: []
    functionsReached:
    - BasicNormalizerTest
    linkageType: ''
    returnType: class
    signature: 'class BasicNormalizerTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 120
    functionName: CalendarTimeZoneTest
    functionSourceFile: /src/icu/source/test/intltest/tztest.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class TimeZoneTest: public CalendarTimeZoneTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSearchTest
      Src: /src/icu/source/test/intltest/ssearch.h:28,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 46
    functionName: SSearchTest
    functionSourceFile: /src/icu/source/test/intltest/ssearch.h
    functionUses: []
    functionsReached:
    - SSearchTest
    linkageType: ''
    returnType: class
    signature: 'class SSearchTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSearchTest
      Src: /src/icu/source/test/intltest/srchtest.h:26,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 94
    functionName: StringSearchTest
    functionSourceFile: /src/icu/source/test/intltest/srchtest.h
    functionUses: []
    functionsReached:
    - StringSearchTest
    linkageType: ''
    returnType: class
    signature: 'class StringSearchTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: IntlTestTransliterator
    functionSourceFile: /src/icu/source/test/intltest/ittrans.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntlTestTransliterator : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AstroTest
      Src: /src/icu/source/test/intltest/astrotst.h:26,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 48
    functionName: CalendarTimeZoneTest
    functionSourceFile: /src/icu/source/test/intltest/astrotst.h
    functionUses: []
    functionsReached:
    - AstroTest
    linkageType: ''
    returnType: class
    signature: 'class AstroTest: public CalendarTimeZoneTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 46
    functionName: CollationSpanishTest
    functionSourceFile: /src/icu/source/test/intltest/escoll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CollationSpanishTest : public IntlTestCollator '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdnaConfTest
      Src: /src/icu/source/test/intltest/idnaconf.h:24,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 48
    functionName: IdnaConfTest
    functionSourceFile: /src/icu/source/test/intltest/idnaconf.h
    functionUses: []
    functionsReached:
    - IdnaConfTest
    linkageType: ''
    returnType: class
    signature: 'class IdnaConfTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TimeZoneBoundaryTest
      Src: /src/icu/source/test/intltest/tzbdtest.h:28,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 96
    functionName: CalendarTimeZoneTest
    functionSourceFile: /src/icu/source/test/intltest/tzbdtest.h
    functionUses: []
    functionsReached:
    - TimeZoneBoundaryTest
    linkageType: ''
    returnType: class
    signature: 'class TimeZoneBoundaryTest: public CalendarTimeZoneTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 44
    functionName: PUtilTest
    functionSourceFile: /src/icu/source/test/intltest/tsputil.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class PUtilTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: IntlTestRBBI
    functionSourceFile: /src/icu/source/test/intltest/itrbbi.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntlTestRBBI : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TokenIterator
      Src: /src/icu/source/test/intltest/tokiter.h:35,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 70
    functionName: TokenIterator
    functionSourceFile: /src/icu/source/test/intltest/tokiter.h
    functionUses: []
    functionsReached:
    - TokenIterator
    linkageType: ''
    returnType: class
    signature: 'class TokenIterator '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UVectorTest
      Src: /src/icu/source/test/intltest/uvectest.h:23,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 33
    functionName: UVectorTest
    functionSourceFile: /src/icu/source/test/intltest/uvectest.h
    functionUses: []
    functionsReached:
    - UVectorTest
    linkageType: ''
    returnType: class
    signature: 'class UVectorTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CollationThaiTest
      Src: /src/icu/source/test/intltest/thcoll.h:26,1
    - Dst: parseChars
      Src: /src/icu/source/test/intltest/thcoll.h:75,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 77
    functionName: CollationThaiTest
    functionSourceFile: /src/icu/source/test/intltest/thcoll.h
    functionUses: []
    functionsReached:
    - parseChars
    - CollationThaiTest
    linkageType: ''
    returnType: class
    signature: 'class CollationThaiTest : public IntlTestCollator '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConversionTest
      Src: /src/icu/source/test/intltest/convtest.h:68,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 104
    functionName: ConversionTest
    functionSourceFile: /src/icu/source/test/intltest/convtest.h
    functionUses: []
    functionsReached:
    - ConversionTest
    linkageType: ''
    returnType: class
    signature: 'class ConversionTest : public IntlTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_isupper
      Src: /src/icu/source/test/perf/charperf/charperf.h:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: isUpper
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - u_isupper
    linkageType: ''
    returnType: void
    signature: 'inline void isUpper(UChar32 ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_isalnum
      Src: /src/icu/source/test/perf/charperf/charperf.h:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: isAlphaNumeric
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - u_isalnum
    linkageType: ''
    returnType: void
    signature: 'inline void isAlphaNumeric(UChar32 ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iswprint
      Src: /src/icu/source/test/perf/charperf/charperf.h:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - wchar_t
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: StdLibIsPrint
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - iswprint
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibIsPrint(wchar_t ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: towlower
      Src: /src/icu/source/test/perf/charperf/charperf.h:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - wchar_t
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: StdLibToLower
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - towlower
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibToLower(wchar_t ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_islower
      Src: /src/icu/source/test/perf/charperf/charperf.h:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: isLower
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - u_islower
    linkageType: ''
    returnType: void
    signature: 'inline void isLower(UChar32 ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iswcntrl
      Src: /src/icu/source/test/perf/charperf/charperf.h:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - wchar_t
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: StdLibIsControl
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - iswcntrl
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibIsControl(wchar_t ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: towupper
      Src: /src/icu/source/test/perf/charperf/charperf.h:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - wchar_t
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: StdLibToUpper
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - towupper
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibToUpper(wchar_t ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 74
    functionName: StdLibCharPerfFunction
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class StdLibCharPerfFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_iscntrl
      Src: /src/icu/source/test/perf/charperf/charperf.h:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: isControl
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - u_iscntrl
    linkageType: ''
    returnType: void
    signature: 'inline void isControl(UChar32 ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_toupper
      Src: /src/icu/source/test/perf/charperf/charperf.h:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: toUpper
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - u_toupper
    linkageType: ''
    returnType: void
    signature: 'inline void toUpper(UChar32 ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iswlower
      Src: /src/icu/source/test/perf/charperf/charperf.h:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - wchar_t
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: StdLibIsLower
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - iswlower
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibIsLower(wchar_t ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_tolower
      Src: /src/icu/source/test/perf/charperf/charperf.h:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: toLower
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - u_tolower
    linkageType: ''
    returnType: void
    signature: 'inline void toLower(UChar32 ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_isWhitespace
      Src: /src/icu/source/test/perf/charperf/charperf.h:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: isWhiteSpace
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - u_isWhitespace
    linkageType: ''
    returnType: void
    signature: 'inline void isWhiteSpace(UChar32 ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iswdigit
      Src: /src/icu/source/test/perf/charperf/charperf.h:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - wchar_t
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: StdLibIsDigit
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - iswdigit
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibIsDigit(wchar_t ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iswspace
      Src: /src/icu/source/test/perf/charperf/charperf.h:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - wchar_t
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: StdLibIsWhiteSpace
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - iswspace
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibIsWhiteSpace(wchar_t ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_isdigit
      Src: /src/icu/source/test/perf/charperf/charperf.h:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: isDigit
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - u_isdigit
    linkageType: ''
    returnType: void
    signature: 'inline void isDigit(UChar32 ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_isalpha
      Src: /src/icu/source/test/perf/charperf/charperf.h:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: isAlpha
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - u_isalpha
    linkageType: ''
    returnType: void
    signature: 'inline void isAlpha(UChar32 ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_isspace
      Src: /src/icu/source/test/perf/charperf/charperf.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: isSpace
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - u_isspace
    linkageType: ''
    returnType: void
    signature: 'inline void isSpace(UChar32 ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iswalpha
      Src: /src/icu/source/test/perf/charperf/charperf.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - wchar_t
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: StdLibIsAlpha
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - iswalpha
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibIsAlpha(wchar_t ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iswspace
      Src: /src/icu/source/test/perf/charperf/charperf.h:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - wchar_t
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: StdLibIsSpace
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - iswspace
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibIsSpace(wchar_t ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 44
    functionName: CharPerfFunction
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharPerfFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CharPerformanceTest
      Src: /src/icu/source/test/perf/charperf/charperf.h:90,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 120
    functionName: CharPerformanceTest
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - CharPerformanceTest
    linkageType: ''
    returnType: class
    signature: 'class CharPerformanceTest : public UPerfTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iswupper
      Src: /src/icu/source/test/perf/charperf/charperf.h:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - wchar_t
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: StdLibIsUpper
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - iswupper
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibIsUpper(wchar_t ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iswalnum
      Src: /src/icu/source/test/perf/charperf/charperf.h:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - wchar_t
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: StdLibIsAlphaNumeric
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - iswalnum
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibIsAlphaNumeric(wchar_t ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_isprint
      Src: /src/icu/source/test/perf/charperf/charperf.h:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: isPrint
    functionSourceFile: /src/icu/source/test/perf/charperf/charperf.h
    functionUses: []
    functionsReached:
    - u_isprint
    linkageType: ''
    returnType: void
    signature: 'inline void isPrint(UChar32 ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - UChar*
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: assign2
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void assign2(const UChar* src,int32_t srcLen, UnicodeString
      s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - wchar_t*
    - int32_t
    - stlstring
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: StdLibCtor
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibCtor(const wchar_t* src,int32_t srcLen, stlstring
      s0) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stlstring
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - src
    - srcLen
    argTypes:
    - wchar_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 502
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 502
    functionName: stl_assign_helper
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached:
    - stlstring
    linkageType: ''
    returnType: stlstring
    signature: 'inline stlstring stl_assign_helper(const wchar_t* src,int32_t srcLen) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - wchar_t*
    - int32_t
    - stlstring
    constantsTouched: []
    func_position:
      end: 513
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 513
    functionName: StdLibAssign1
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibAssign1(const wchar_t* src,int32_t srcLen, stlstring
      s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - wchar_t*
    - int32_t
    - stlstring
    constantsTouched: []
    func_position:
      end: 523
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 523
    functionName: StdLibGetch
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibGetch(const wchar_t* src,int32_t srcLen, stlstring
      s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringPerformanceTest
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:351,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 387
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 387
    functionName: StringPerformanceTest
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached:
    - StringPerformanceTest
    linkageType: ''
    returnType: class
    signature: 'class StringPerformanceTest : public UPerfTest '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: u_strToWCS
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:286,1
    - Dst: malloc
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:290,1
    - Dst: u_strToWCS
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:292,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:295,1
    - Dst: stlstring
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:298,1
    - Dst: u_strToWCS
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:303,1
    - Dst: malloc
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:307,1
    - Dst: u_strToWCS
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:309,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:312,1
    - Dst: stlstring
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:315,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 320
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 320
    functionName: prepareBulkForStd
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached:
    - u_strToWCS
    - U_SUCCESS
    - malloc
    - stlstring
    linkageType: ''
    returnType: void
    signature: 'void prepareBulkForStd(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - UChar*
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: getch
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void getch(const UChar* src,int32_t srcLen, UnicodeString s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - wchar_t*
    - int32_t
    - stlstring
    constantsTouched: []
    func_position:
      end: 482
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 482
    functionName: StdLibCtor1
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibCtor1(const wchar_t* src,int32_t srcLen, stlstring
      s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stl_assign_helper
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - wchar_t*
    - int32_t
    - stlstring
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: StdLibAssign
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached:
    - stl_assign_helper
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibAssign(const wchar_t* src,int32_t srcLen, stlstring
      s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - wchar_t*
    - int32_t
    - stlstring
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: StdLibAssign2
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibAssign2(const wchar_t* src,int32_t srcLen, stlstring
      s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utimer_getTime
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:528,1
    - Dst: utimer_getDeltaSeconds
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:534,1
    - Dst: utimer_getTime
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:533,1
    - Dst: printf
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - wchar_t*
    - int32_t
    - stlstring
    constantsTouched: []
    func_position:
      end: 537
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 537
    functionName: StdLibCatenate
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached:
    - utimer_getTime
    - utimer_getDeltaSeconds
    - printf
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibCatenate(const wchar_t* src,int32_t srcLen, stlstring
      s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - wchar_t*
    - int32_t
    - stlstring
    constantsTouched: []
    func_position:
      end: 552
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 552
    functionName: StdLibScan2
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibScan2(const wchar_t* src,int32_t srcLen, stlstring
      s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - UChar*
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 398
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 398
    functionName: ctor1
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void ctor1(const UChar* src,int32_t srcLen, UnicodeString s0) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 127
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 127
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - UChar*
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: ctor2
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void ctor2(const UChar* src,int32_t srcLen, UnicodeString s0) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: UnicodeString
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:78,1
    - Dst: stlstring
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:81,1
    - Dst: UnicodeString
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:85,1
    - Dst: stlstring
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:86,1
    - Dst: UnicodeString
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:155,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 160
    functionName: StringPerfFunction
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached:
    - stlstring
    - UnicodeString
    linkageType: ''
    returnType: class
    signature: 'class StringPerfFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - UChar*
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 458
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 458
    functionName: scan
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void scan(const UChar* src,int32_t srcLen, UnicodeString s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - UChar*
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: ctor3
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void ctor3(const UChar* src,int32_t srcLen, UnicodeString s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: icu_assign_helper
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - UChar*
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: assign
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached:
    - icu_assign_helper
    linkageType: ''
    returnType: void
    signature: 'inline void assign(const UChar* src,int32_t srcLen, UnicodeString
      s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utimer_getTime
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:440,1
    - Dst: utimer_getDeltaSeconds
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:445,1
    - Dst: utimer_getTime
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:444,1
    - Dst: printf
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - UChar*
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 449
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 449
    functionName: catenate
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached:
    - utimer_getTime
    - utimer_getDeltaSeconds
    - printf
    linkageType: ''
    returnType: void
    signature: 'inline void catenate(const UChar* src,int32_t srcLen, UnicodeString
      s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - UChar*
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 463
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 463
    functionName: scan1
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void scan1(const UChar* src,int32_t srcLen, UnicodeString s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - wchar_t*
    - int32_t
    - stlstring
    constantsTouched: []
    func_position:
      end: 487
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 487
    functionName: StdLibCtor2
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibCtor2(const wchar_t* src,int32_t srcLen, stlstring
      s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - wchar_t*
    - int32_t
    - stlstring
    constantsTouched: []
    func_position:
      end: 542
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 542
    functionName: StdLibScan
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibScan(const wchar_t* src,int32_t srcLen, stlstring
      s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - UChar*
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: ctor
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void ctor(const UChar* src,int32_t srcLen, UnicodeString s0) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UnicodeString
      Src: /src/icu/source/test/perf/ustrperf/stringperf.h:413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - src
    - srcLen
    argTypes:
    - UChar*
    - int32_t
    constantsTouched: []
    func_position:
      end: 414
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 414
    functionName: icu_assign_helper
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached:
    - UnicodeString
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString icu_assign_helper(const UChar* src,int32_t srcLen) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - UChar*
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 424
    functionName: assign1
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void assign1(const UChar* src,int32_t srcLen, UnicodeString
      s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - UChar*
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 471
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 471
    functionName: scan2
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void scan2(const UChar* src,int32_t srcLen, UnicodeString s0) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - wchar_t*
    - int32_t
    - stlstring
    constantsTouched: []
    func_position:
      end: 496
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 496
    functionName: StdLibCtor3
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibCtor3(const wchar_t* src,int32_t srcLen, stlstring
      s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - src
    - srcLen
    - s0
    argTypes:
    - wchar_t*
    - int32_t
    - stlstring
    constantsTouched: []
    func_position:
      end: 547
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 547
    functionName: StdLibScan1
    functionSourceFile: /src/icu/source/test/perf/ustrperf/stringperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void StdLibScan1(const wchar_t* src,int32_t srcLen, stlstring
      s0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/test/perf/leperf/FontObject.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat2Encoding
    signature: 'struct CMAPFormat2Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/test/perf/leperf/FontObject.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat6Encoding
    signature: 'struct CMAPFormat6Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/test/perf/leperf/FontObject.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat4Encoding
    signature: 'struct CMAPFormat4Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/test/perf/leperf/FontObject.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat0Encoding
    signature: 'struct CMAPFormat0Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FontObject
      Src: /src/icu/source/test/perf/leperf/FontObject.h:189,1
    - Dst: FontObject
      Src: /src/icu/source/test/perf/leperf/FontObject.h:207,1
    - Dst: FontObject
      Src: /src/icu/source/test/perf/leperf/FontObject.h:190,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 237
    functionName: FontObject
    functionSourceFile: /src/icu/source/test/perf/leperf/FontObject.h
    functionUses: []
    functionsReached:
    - FontObject
    linkageType: ''
    returnType: class
    signature: 'class FontObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LE_DELETE_ARRAY
      Src: /src/icu/source/test/perf/leperf/cmaps.h:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: CMAPMapper
    functionSourceFile: /src/icu/source/test/perf/leperf/cmaps.h
    functionUses: []
    functionsReached:
    - LE_DELETE_ARRAY
    linkageType: ''
    returnType: CMAPMapper
    signature: 'inline CMAPMapper ::~ CMAPMapper() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 37
    functionName: CMAPMapper
    functionSourceFile: /src/icu/source/test/perf/leperf/cmaps.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CMAPMapper '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fcmap
      Src: /src/icu/source/test/perf/leperf/cmaps.h:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - cmap
    argTypes:
    - CMAPTable*
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: CMAPMapper
    functionSourceFile: /src/icu/source/test/perf/leperf/cmaps.h
    functionUses: []
    functionsReached:
    - fcmap
    linkageType: ''
    returnType: CMAPMapper
    signature: 'inline CMAPMapper :: CMAPMapper(const CMAPTable *cmap) : fcmap(cmap) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMAPFormat4Mapper
      Src: /src/icu/source/test/perf/leperf/cmaps.h:49,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 58
    functionName: CMAPFormat4Mapper
    functionSourceFile: /src/icu/source/test/perf/leperf/cmaps.h
    functionUses: []
    functionsReached:
    - CMAPFormat4Mapper
    linkageType: ''
    returnType: class
    signature: 'class CMAPFormat4Mapper : public CMAPMapper '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMAPGroupMapper
      Src: /src/icu/source/test/perf/leperf/cmaps.h:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 76
    functionName: CMAPGroupMapper
    functionSourceFile: /src/icu/source/test/perf/leperf/cmaps.h
    functionUses: []
    functionsReached:
    - CMAPGroupMapper
    linkageType: ''
    returnType: class
    signature: 'class CMAPGroupMapper : public CMAPMapper '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FontTableCache
      Src: /src/icu/source/test/perf/leperf/FontTableCache.h:24,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: FontTableCache
    functionSourceFile: /src/icu/source/test/perf/leperf/FontTableCache.h
    functionUses: []
    functionsReached:
    - FontTableCache
    linkageType: ''
    returnType: class
    signature: 'class FontTableCache '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/test/perf/leperf/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat0Encoding
    signature: 'struct CMAPFormat0Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/test/perf/leperf/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat2Encoding
    signature: 'struct CMAPFormat2Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: CMAPEncodingSubtable32
    functionSourceFile: /src/icu/source/test/perf/leperf/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat8Encoding
    signature: 'struct CMAPFormat8Encoding : CMAPEncodingSubtable32 '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/test/perf/leperf/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat6Encoding
    signature: 'struct CMAPFormat6Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 145
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/test/perf/leperf/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat4Encoding
    signature: 'struct CMAPFormat4Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: CMAPEncodingSubtable32
    functionSourceFile: /src/icu/source/test/perf/leperf/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat10Encoding
    signature: 'struct CMAPFormat10Encoding : CMAPEncodingSubtable32 '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: CMAPEncodingSubtable32
    functionSourceFile: /src/icu/source/test/perf/leperf/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat12Encoding
    signature: 'struct CMAPFormat12Encoding : CMAPEncodingSubtable32 '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DTPatternGeneratorBestValueFunction
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:518,1
    - Dst: strcpy
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 527
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 527
    functionName: DTPatternGeneratorBestValueFunction
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - strcpy
    - DTPatternGeneratorBestValueFunction
    linkageType: ''
    returnType: class
    signature: 'class DTPatternGeneratorBestValueFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StdioNumFmtFunction
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:695,1
    - Dst: strcpy
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 704
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 704
    functionName: StdioNumFmtFunction
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - StdioNumFmtFunction
    - strcpy
    linkageType: ''
    returnType: class
    signature: 'class StdioNumFmtFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:758,1
    - Dst: CollationFunction
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:767,1
    - Dst: CollationFunction
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:774,1
    - Dst: init
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:771,1
    - Dst: strcpy
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:781,1
    - Dst: init
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:782,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 783
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 783
    functionName: CollationFunction
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - CollationFunction
    - strcpy
    - init
    linkageType: ''
    returnType: class
    signature: 'class CollationFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DateFormatPerfTest
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:818,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 846
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 846
    functionName: DateFormatPerfTest
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - DateFormatPerfTest
    linkageType: ''
    returnType: class
    signature: 'class DateFormatPerfTest : public UPerfTest '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:366,1
    - Dst: exit
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:368,1
    - Dst: printf
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:367,1
    - Dst: u_errorName
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - status
    - msg
    argTypes:
    - UErrorCode
    - char*
    constantsTouched: []
    func_position:
      end: 370
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 370
    functionName: check
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - printf
    - u_errorName
    - exit
    linkageType: ''
    returnType: void
    signature: 'void check(UErrorCode& status, const char* msg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:410,1
    - Dst: printf
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:411,1
    - Dst: u_errorName
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:411,1
    - Dst: exit
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - status
    - msg
    argTypes:
    - UErrorCode
    - char*
    constantsTouched: []
    func_position:
      end: 414
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 414
    functionName: check
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - printf
    - u_errorName
    - exit
    linkageType: ''
    returnType: void
    signature: 'void check(UErrorCode& status, const char* msg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:550,1
    - Dst: u_errorName
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:551,1
    - Dst: exit
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:552,1
    - Dst: printf
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:551,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - status
    - msg
    argTypes:
    - UErrorCode
    - char*
    constantsTouched: []
    func_position:
      end: 554
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 554
    functionName: check
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - printf
    - u_errorName
    - exit
    linkageType: ''
    returnType: void
    signature: 'void check(UErrorCode& status, const char* msg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: createWordInstance
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:71,1
    - Dst: printTextRange
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:79,1
    - Dst: getUS
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:88,1
    - Dst: printTextRange
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:96,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 102
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 102
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - printTextRange
    - createWordInstance
    - getUS
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode * status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 140
    functionName: uprintf
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'void uprintf(const UnicodeString &str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 226
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 226
    functionName: uprintf
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'void uprintf(const UnicodeString &str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:311,1
    - Dst: printf
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:312,1
    - Dst: exit
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:313,1
    - Dst: u_errorName
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - status
    - msg
    argTypes:
    - UErrorCode
    - char*
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 315
    functionName: check
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - printf
    - u_errorName
    - exit
    linkageType: ''
    returnType: void
    signature: 'void check(UErrorCode& status, const char* msg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: createInstance
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:344,1
    - Dst: fmt
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:353,1
    - Dst: createTimeZone
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:346,1
    - Dst: check
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:345,1
    - Dst: createInstance
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:353,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - '*'
    - /* status */
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 357
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 357
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - fmt
    - createInstance
    - createTimeZone
    - check
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* /* status */) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:533,1
    - Dst: createInstance
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:533,1
    - Dst: check
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:539,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - '*'
    - /* status */
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 541
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 541
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - createInstance
    - gen
    - check
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* /* status */) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:676,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - str
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 680
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 680
    functionName: uprintf
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'void uprintf(const UnicodeString &str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:230,1
    - Dst: exit
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:232,1
    - Dst: printf
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:231,1
    - Dst: u_errorName
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - status
    - msg
    argTypes:
    - UErrorCode
    - char*
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: check
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - printf
    - u_errorName
    - exit
    linkageType: ''
    returnType: void
    signature: 'void check(UErrorCode& status, const char* msg) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:628,1
    - Dst: UNICODE_STRING_SIMPLE
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:624,1
    - Dst: UnicodeString
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:629,1
    - Dst: sprintf
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:635,1
    - Dst: UnicodeString
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:636,1
    - Dst: UnicodeString
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:639,1
    - Dst: UNICODE_STRING_SIMPLE
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:655,1
    - Dst: formattableToString
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:649,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 1
    argNames:
    - f
    argTypes:
    - Formattable
    constantsTouched: []
    func_position:
      end: 657
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 657
    functionName: formattableToString
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - sprintf
    - formattableToString
    - UnicodeString
    - UNICODE_STRING_SIMPLE
    linkageType: ''
    returnType: UnicodeString
    signature: 'UnicodeString formattableToString(const Formattable& f) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 742
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 742
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DateFmtCopyFunction
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:280,1
    - Dst: strcpy
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 289
    functionName: DateFmtCopyFunction
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - strcpy
    - DateFmtCopyFunction
    linkageType: ''
    returnType: class
    signature: 'class DateFmtCopyFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:443,1
    - Dst: createInstance
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - '*'
    - /* status */
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 446
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 446
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - createInstance
    - gen
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* /* status */) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:455,1
    - Dst: exit
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:457,1
    - Dst: printf
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:456,1
    - Dst: u_errorName
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - status
    - msg
    argTypes:
    - UErrorCode
    - char*
    constantsTouched: []
    func_position:
      end: 459
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 459
    functionName: check
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - printf
    - u_errorName
    - exit
    linkageType: ''
    returnType: void
    signature: 'void check(UErrorCode& status, const char* msg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DTPatternGeneratorCopyFunction
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:471,1
    - Dst: strcpy
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 480
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 480
    functionName: DTPatternGeneratorCopyFunction
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - strcpy
    - DTPatternGeneratorCopyFunction
    linkageType: ''
    returnType: class
    signature: 'class DTPatternGeneratorCopyFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 498
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 498
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 662
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 662
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:720,1
    - Dst: sprintf
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:726,1
    - Dst: strcmp
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:733,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - status2
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 737
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 737
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - sprintf
    - strcmp
    - sscanf
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* status2) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 808
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 808
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: createDateTimeInstance
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:295,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - '*'
    - /* status */
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 302
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 302
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - createDateTimeInstance
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* /* status */) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:486,1
    - Dst: createInstance
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:486,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - '*'
    - /* status */
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 493
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 493
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - createInstance
    - gen
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* /* status */) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: printUnicodeString
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'void printUnicodeString(const UnicodeString &s) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DateFmtFunction
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:152,1
    - Dst: strcpy
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 161
    functionName: DateFmtFunction
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - DateFmtFunction
    - strcpy
    linkageType: ''
    returnType: class
    signature: 'class DateFmtFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 250
    functionName: DateFmtCreateFunction
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - strcpy
    linkageType: ''
    returnType: class
    signature: 'class DateFmtCreateFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TimeZoneCreateFunction
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:382,1
    - Dst: strcpy
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 391
    functionName: TimeZoneCreateFunction
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - TimeZoneCreateFunction
    - strcpy
    linkageType: ''
    returnType: class
    signature: 'class TimeZoneCreateFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 406
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NumFmtFunction
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:566,1
    - Dst: strcpy
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 575
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 575
    functionName: NumFmtFunction
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - strcpy
    - NumFmtFunction
    linkageType: ''
    returnType: class
    signature: 'class NumFmtFunction : public UPerfFunction '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:787,1
    - Dst: createInstance
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:789,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:789,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - status2
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 803
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 803
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - createInstance
    - Locale
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* status2) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BreakItFunction
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: BreakItFunction
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - BreakItFunction
    linkageType: ''
    returnType: class
    signature: 'class BreakItFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - iterator
    - start
    - end
    argTypes:
    - BreakIterator
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: printTextRange
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void printTextRange( BreakIterator& iterator, \t\t\t\t\t\tint32_t
      start, int32_t end ) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: createInstance
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:172,1
    - Dst: createTimeZone
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:174,1
    - Dst: check
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:173,1
    - Dst: check
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 208
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 208
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - createInstance
    - createTimeZone
    - check
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - '*'
    - /* status */
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 263
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 263
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* /* status */) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DIFCreateFunction
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:327,1
    - Dst: strcpy
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 336
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 336
    functionName: DIFCreateFunction
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - DIFCreateFunction
    - strcpy
    linkageType: ''
    returnType: class
    signature: 'class DIFCreateFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tz
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:398,1
    - Dst: createTimeZone
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - '*'
    - /* status */
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 401
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 401
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - tz
    - createTimeZone
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* /* status */) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DTPatternGeneratorCreateFunction
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:426,1
    - Dst: strcpy
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 435
    functionName: DTPatternGeneratorCreateFunction
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - DTPatternGeneratorCreateFunction
    - strcpy
    linkageType: ''
    returnType: class
    signature: 'class DTPatternGeneratorCreateFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: createInstance
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:583,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - status2
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 607
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 607
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - createInstance
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* status2) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:502,1
    - Dst: printf
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:503,1
    - Dst: u_errorName
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:503,1
    - Dst: exit
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - status
    - msg
    argTypes:
    - UErrorCode
    - char*
    constantsTouched: []
    func_position:
      end: 506
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 506
    functionName: check
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - printf
    - u_errorName
    - exit
    linkageType: ''
    returnType: void
    signature: 'void check(UErrorCode& status, const char* msg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 764
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 764
    functionName: init
    functionSourceFile: /src/icu/source/test/perf/DateFmtPerf/DateFmtPerf.h
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'void init() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BitSet
      Src: /src/icu/source/test/perf/usetperf/bitset.h:28,1
    - Dst: BitSet
      Src: /src/icu/source/test/perf/usetperf/bitset.h:29,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 39
    functionName: BitSet
    functionSourceFile: /src/icu/source/test/perf/usetperf/bitset.h
    functionUses: []
    functionsReached:
    - BitSet
    linkageType: ''
    returnType: class
    signature: 'class BitSet '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DateTimeRoundTripFunction
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: DateTimeRoundTripFunction
    functionSourceFile: /src/icu/source/test/perf/normperf/dtfmtrtperf.h
    functionUses: []
    functionsReached:
    - DateTimeRoundTripFunction
    linkageType: ''
    returnType: class
    signature: 'class DateTimeRoundTripFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/normperf/dtfmtrtperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DateTimeRoundTripPerfTest
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:223,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: DateTimeRoundTripPerfTest
    functionSourceFile: /src/icu/source/test/perf/normperf/dtfmtrtperf.h
    functionUses: []
    functionsReached:
    - DateTimeRoundTripPerfTest
    linkageType: ''
    returnType: class
    signature: 'class DateTimeRoundTripPerfTest : public UPerfTest '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:86,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:97,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:103,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:118,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:121,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:125,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:131,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:135,1
    - Dst: createInstance
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:85,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:109,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:120,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:124,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:130,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:134,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:138,1
    - Dst: createEnumeration
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:145,1
    - Dst: SimpleDateFormat
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:154,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:155,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:183,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:119,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:123,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:128,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:133,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:137,1
    - Dst: createInstance
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:182,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:146,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:104,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:122,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:117,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:126,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:132,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:136,1
    - Dst: createTimeZone
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:165,1
    - Dst: Locale
      Src: /src/icu/source/test/perf/normperf/dtfmtrtperf.h:139,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 75
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 207
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 207
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/normperf/dtfmtrtperf.h
    functionUses: []
    functionsReached:
    - Locale
    - createTimeZone
    - U_FAILURE
    - createInstance
    - UPRV_LENGTHOF
    - SimpleDateFormat
    - createEnumeration
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 6
    argNames:
    - src
    - srcLen
    - dest
    - dstLen
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: WinNormNFD
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t WinNormNFD(const UChar* src, int32_t srcLen, UChar* dest,
      int32_t dstLen, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unorm_isNormalized
      Src: /src/icu/source/test/perf/normperf/normperf.h:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 5
    argNames:
    - src
    - srcLen
    - mode
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UNormalizationMode
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: ICUIsNormalized
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached:
    - unorm_isNormalized
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t ICUIsNormalized(const UChar* src,int32_t srcLen, UNormalizationMode
      mode, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 6
    argNames:
    - src
    - srcLen
    - dest
    - dstLen
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 344
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 344
    functionName: WinNormNFC
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t WinNormNFC(const UChar* src, int32_t srcLen, UChar* dest,
      int32_t dstLen, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unorm_normalize
      Src: /src/icu/source/test/perf/normperf/normperf.h:302,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 6
    argNames:
    - src
    - srcLen
    - dest
    - dstLen
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 303
    functionName: ICUNormNFKD
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached:
    - unorm_normalize
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t ICUNormNFKD(const UChar* src, int32_t srcLen,UChar* dest,
      int32_t dstLen, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FoldStringW
      Src: /src/icu/source/test/perf/normperf/normperf.h:324,1
    - Dst: toOldUCharPtr
      Src: /src/icu/source/test/perf/normperf/normperf.h:324,1
    - Dst: toOldUCharPtr
      Src: /src/icu/source/test/perf/normperf/normperf.h:324,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 6
    argNames:
    - src
    - srcLen
    - dest
    - dstLen
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 325
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 325
    functionName: WinNormNFD
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached:
    - FoldStringW
    - toOldUCharPtr
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t WinNormNFD(const UChar* src, int32_t srcLen, UChar* dest,
      int32_t dstLen, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: normalizeInput
      Src: /src/icu/source/test/perf/normperf/normperf.h:193,1
    - Dst: NormalizerPerformanceTest
      Src: /src/icu/source/test/perf/normperf/normperf.h:198,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 251
    functionName: NormalizerPerformanceTest
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached:
    - normalizeInput
    - NormalizerPerformanceTest
    linkageType: ''
    returnType: class
    signature: 'class NormalizerPerformanceTest : public UPerfTest '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 159
    functionName: NormPerfFunction
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class NormPerfFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unorm_normalize
      Src: /src/icu/source/test/perf/normperf/normperf.h:305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 6
    argNames:
    - src
    - srcLen
    - dest
    - dstLen
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: ICUNormNFKC
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached:
    - unorm_normalize
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t ICUNormNFKC(const UChar* src, int32_t srcLen,UChar* dest,
      int32_t dstLen, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FoldStringW
      Src: /src/icu/source/test/perf/normperf/normperf.h:328,1
    - Dst: toOldUCharPtr
      Src: /src/icu/source/test/perf/normperf/normperf.h:328,1
    - Dst: toOldUCharPtr
      Src: /src/icu/source/test/perf/normperf/normperf.h:328,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 6
    argNames:
    - src
    - srcLen
    - dest
    - dstLen
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 329
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 329
    functionName: WinNormNFC
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached:
    - FoldStringW
    - toOldUCharPtr
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t WinNormNFC(const UChar* src, int32_t srcLen, UChar* dest,
      int32_t dstLen, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FoldStringW
      Src: /src/icu/source/test/perf/normperf/normperf.h:335,1
    - Dst: toOldUCharPtr
      Src: /src/icu/source/test/perf/normperf/normperf.h:335,1
    - Dst: toOldUCharPtr
      Src: /src/icu/source/test/perf/normperf/normperf.h:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 6
    argNames:
    - src
    - srcLen
    - dest
    - dstLen
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 336
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 336
    functionName: WinNormNFKC
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached:
    - FoldStringW
    - toOldUCharPtr
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t WinNormNFKC(const UChar* src, int32_t srcLen, UChar* dest,
      int32_t dstLen, int32_t options, UErrorCode* status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unorm_normalize
      Src: /src/icu/source/test/perf/normperf/normperf.h:261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 6
    argNames:
    - src
    - srcLen
    - dest
    - dstLen
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 262
    functionName: ICUNormNFD
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached:
    - unorm_normalize
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t ICUNormNFD(const UChar* src, int32_t srcLen,UChar* dest, int32_t
      dstLen, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unorm_normalize
      Src: /src/icu/source/test/perf/normperf/normperf.h:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 6
    argNames:
    - src
    - srcLen
    - dest
    - dstLen
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: ICUNormNFKD
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached:
    - unorm_normalize
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t ICUNormNFKD(const UChar* src, int32_t srcLen,UChar* dest,
      int32_t dstLen, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unorm_normalize
      Src: /src/icu/source/test/perf/normperf/normperf.h:309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 6
    argNames:
    - src
    - srcLen
    - dest
    - dstLen
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: ICUNormFCD
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached:
    - unorm_normalize
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t ICUNormFCD(const UChar* src, int32_t srcLen,UChar* dest, int32_t
      dstLen, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unorm_normalize
      Src: /src/icu/source/test/perf/normperf/normperf.h:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 6
    argNames:
    - src
    - srcLen
    - dest
    - dstLen
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: ICUNormNFC
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached:
    - unorm_normalize
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t ICUNormNFC(const UChar* src, int32_t srcLen,UChar* dest, int32_t
      dstLen, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unorm_normalize
      Src: /src/icu/source/test/perf/normperf/normperf.h:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 6
    argNames:
    - src
    - srcLen
    - dest
    - dstLen
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 273
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 273
    functionName: ICUNormNFKC
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached:
    - unorm_normalize
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t ICUNormNFKC(const UChar* src, int32_t srcLen,UChar* dest,
      int32_t dstLen, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/perf/normperf/normperf.h:313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 5
    argNames:
    - src
    - srcLen
    - mode
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UNormalizationMode
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 314
    functionName: ICUQuickCheck
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached:
    - unorm_quickCheck
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t ICUQuickCheck(const UChar* src,int32_t srcLen, UNormalizationMode
      mode, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 5
    argNames:
    - src
    - srcLen
    - mode
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UNormalizationMode
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 318
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 318
    functionName: ICUIsNormalized
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t ICUIsNormalized(const UChar* src,int32_t srcLen, UNormalizationMode
      mode, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 6
    argNames:
    - src
    - srcLen
    - dest
    - dstLen
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: WinNormNFKD
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t WinNormNFKD(const UChar* src, int32_t srcLen, UChar* dest,
      int32_t dstLen, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 6
    argNames:
    - src
    - srcLen
    - dest
    - dstLen
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: WinNormNFKC
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t WinNormNFKC(const UChar* src, int32_t srcLen, UChar* dest,
      int32_t dstLen, int32_t options, UErrorCode* status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unorm_normalize
      Src: /src/icu/source/test/perf/normperf/normperf.h:276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 6
    argNames:
    - src
    - srcLen
    - dest
    - dstLen
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: ICUNormFCD
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached:
    - unorm_normalize
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t ICUNormFCD(const UChar* src, int32_t srcLen,UChar* dest, int32_t
      dstLen, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unorm_normalize
      Src: /src/icu/source/test/perf/normperf/normperf.h:294,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 6
    argNames:
    - src
    - srcLen
    - dest
    - dstLen
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 295
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 295
    functionName: ICUNormNFD
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached:
    - unorm_normalize
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t ICUNormNFD(const UChar* src, int32_t srcLen,UChar* dest, int32_t
      dstLen, int32_t options, UErrorCode* status) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 89
    functionName: QuickCheckPerfFunction
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class QuickCheckPerfFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unorm_quickCheckWithOptions
      Src: /src/icu/source/test/perf/normperf/normperf.h:281,1
    - Dst: unorm_quickCheck
      Src: /src/icu/source/test/perf/normperf/normperf.h:283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 5
    argNames:
    - src
    - srcLen
    - mode
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UNormalizationMode
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 285
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 285
    functionName: ICUQuickCheck
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached:
    - unorm_quickCheckWithOptions
    - unorm_quickCheck
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t ICUQuickCheck(const UChar* src,int32_t srcLen, UNormalizationMode
      mode, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unorm_normalize
      Src: /src/icu/source/test/perf/normperf/normperf.h:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 6
    argNames:
    - src
    - srcLen
    - dest
    - dstLen
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 299
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 299
    functionName: ICUNormNFC
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached:
    - unorm_normalize
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t ICUNormNFC(const UChar* src, int32_t srcLen,UChar* dest, int32_t
      dstLen, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FoldStringW
      Src: /src/icu/source/test/perf/normperf/normperf.h:332,1
    - Dst: toOldUCharPtr
      Src: /src/icu/source/test/perf/normperf/normperf.h:332,1
    - Dst: toOldUCharPtr
      Src: /src/icu/source/test/perf/normperf/normperf.h:332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 6
    argNames:
    - src
    - srcLen
    - dest
    - dstLen
    - options
    - status
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: WinNormNFKD
    functionSourceFile: /src/icu/source/test/perf/normperf/normperf.h
    functionUses: []
    functionsReached:
    - FoldStringW
    - toOldUCharPtr
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t WinNormNFKD(const UChar* src, int32_t srcLen, UChar* dest,
      int32_t dstLen, int32_t options, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/strsrchperf/strsrchperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 45
    functionName: StringSearchPerfFunction
    functionSourceFile: /src/icu/source/test/perf/strsrchperf/strsrchperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class StringSearchPerfFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: usearch_first
      Src: /src/icu/source/test/perf/strsrchperf/strsrchperf.h:68,1
    - Dst: usearch_next
      Src: /src/icu/source/test/perf/strsrchperf/strsrchperf.h:70,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 6
    argNames:
    - srch
    - source
    - sourceLen
    - pattern
    - patternLen
    - status
    argTypes:
    - UStringSearch*
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: ICUForwardSearch
    functionSourceFile: /src/icu/source/test/perf/strsrchperf/strsrchperf.h
    functionUses: []
    functionsReached:
    - usearch_next
    - usearch_first
    linkageType: ''
    returnType: void
    signature: 'void ICUForwardSearch(UStringSearch *srch, const UChar* source, int32_t
      sourceLen, const UChar* pattern, int32_t patternLen, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: usearch_last
      Src: /src/icu/source/test/perf/strsrchperf/strsrchperf.h:77,1
    - Dst: usearch_previous
      Src: /src/icu/source/test/perf/strsrchperf/strsrchperf.h:79,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 6
    argNames:
    - srch
    - source
    - sourceLen
    - pattern
    - patternLen
    - status
    argTypes:
    - UStringSearch*
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: ICUBackwardSearch
    functionSourceFile: /src/icu/source/test/perf/strsrchperf/strsrchperf.h
    functionUses: []
    functionsReached:
    - usearch_last
    - usearch_previous
    linkageType: ''
    returnType: void
    signature: 'void ICUBackwardSearch(UStringSearch *srch, const UChar* source, int32_t
      sourceLen, const UChar* pattern, int32_t patternLen, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSearchPerformanceTest
      Src: /src/icu/source/test/perf/strsrchperf/strsrchperf.h:58,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: StringSearchPerformanceTest
    functionSourceFile: /src/icu/source/test/perf/strsrchperf/strsrchperf.h
    functionUses: []
    functionsReached:
    - StringSearchPerformanceTest
    linkageType: ''
    returnType: class
    signature: 'class StringSearchPerformanceTest : public UPerfTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: getStatus
    functionSourceFile: /src/icu/source/test/perf/ubrkperf/ubrkperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UErrorCode getStatus() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/ubrkperf/ubrkperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: getEventsPerIteration
    functionSourceFile: /src/icu/source/test/perf/ubrkperf/ubrkperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getEventsPerIteration() '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/ubrkperf/ubrkperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnicodeString
      Src: /src/icu/source/test/perf/ubrkperf/ubrkperf.h:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 98
    functionName: ICUBreakFunction
    functionSourceFile: /src/icu/source/test/perf/ubrkperf/ubrkperf.h
    functionUses: []
    functionsReached:
    - UnicodeString
    linkageType: ''
    returnType: class
    signature: 'class ICUForward : public ICUBreakFunction '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: createCharacterInstance
      Src: /src/icu/source/test/perf/ubrkperf/ubrkperf.h:35,1
    - Dst: createLineInstance
      Src: /src/icu/source/test/perf/ubrkperf/ubrkperf.h:41,1
    - Dst: createSentenceInstance
      Src: /src/icu/source/test/perf/ubrkperf/ubrkperf.h:44,1
    - Dst: createWordInstance
      Src: /src/icu/source/test/perf/ubrkperf/ubrkperf.h:38,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 50
    functionName: ICUBreakFunction
    functionSourceFile: /src/icu/source/test/perf/ubrkperf/ubrkperf.h
    functionUses: []
    functionsReached:
    - createSentenceInstance
    - createCharacterInstance
    - createLineInstance
    - createWordInstance
    linkageType: ''
    returnType: class
    signature: 'class ICUBreakFunction : public UPerfFunction '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UnicodeString
      Src: /src/icu/source/test/perf/ubrkperf/ubrkperf.h:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 74
    functionName: ICUBreakFunction
    functionSourceFile: /src/icu/source/test/perf/ubrkperf/ubrkperf.h
    functionUses: []
    functionsReached:
    - UnicodeString
    linkageType: ''
    returnType: class
    signature: 'class ICUIsBound : public ICUBreakFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/ubrkperf/ubrkperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: DarwinBreakFunction
    functionSourceFile: /src/icu/source/test/perf/ubrkperf/ubrkperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class DarwinBreakFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BreakIteratorPerformanceTest
      Src: /src/icu/source/test/perf/ubrkperf/ubrkperf.h:122,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 133
    functionName: BreakIteratorPerformanceTest
    functionSourceFile: /src/icu/source/test/perf/ubrkperf/ubrkperf.h
    functionUses: []
    functionsReached:
    - BreakIteratorPerformanceTest
    linkageType: ''
    returnType: class
    signature: 'class BreakIteratorPerformanceTest : public UPerfTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 37
    functionName: UnicodeContainable
    functionSourceFile: /src/icu/source/test/perf/unisetperf/draft/unicont.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class UnicodeContainable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/perf/convperf/convperf.h:219,1
    - Dst: CoInitialize
      Src: /src/icu/source/test/perf/convperf/convperf.h:229,1
    - Dst: __uuidof
      Src: /src/icu/source/test/perf/convperf/convperf.h:233,1
    - Dst: __uuidof
      Src: /src/icu/source/test/perf/convperf/convperf.h:236,1
    - Dst: CoCreateInstance
      Src: /src/icu/source/test/perf/convperf/convperf.h:232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 248
    functionName: WinANSIFromUnicodePerfFunction
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - CoInitialize
    - UPRV_LENGTHOF
    - __uuidof
    - CoCreateInstance
    linkageType: ''
    returnType: class
    signature: 'class WinANSIFromUnicodePerfFunction : public UPerfFunction '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - err
    - status
    argTypes:
    - HRESULT
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 270
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 270
    functionName: getErr
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static inline void getErr(HRESULT err, UErrorCode& status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WideCharToMultiByte
      Src: /src/icu/source/test/perf/convperf/convperf.h:251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - WideCharToMultiByte
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CoCreateInstance
      Src: /src/icu/source/test/perf/convperf/convperf.h:288,1
    - Dst: __uuidof
      Src: /src/icu/source/test/perf/convperf/convperf.h:289,1
    - Dst: __uuidof
      Src: /src/icu/source/test/perf/convperf/convperf.h:292,1
    - Dst: getErr
      Src: /src/icu/source/test/perf/convperf/convperf.h:311,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/perf/convperf/convperf.h:314,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 316
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 316
    functionName: WinIMultiLanguageToUnicodePerfFunction
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - __uuidof
    - getErr
    - CoCreateInstance
    linkageType: ''
    returnType: class
    signature: 'class WinIMultiLanguageToUnicodePerfFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/perf/convperf/convperf.h:165,1
    - Dst: __uuidof
      Src: /src/icu/source/test/perf/convperf/convperf.h:181,1
    - Dst: CoInitialize
      Src: /src/icu/source/test/perf/convperf/convperf.h:174,1
    - Dst: CoCreateInstance
      Src: /src/icu/source/test/perf/convperf/convperf.h:177,1
    - Dst: __uuidof
      Src: /src/icu/source/test/perf/convperf/convperf.h:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 194
    functionName: WinANSIToUnicodePerfFunction
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - CoInitialize
    - UPRV_LENGTHOF
    - __uuidof
    - CoCreateInstance
    linkageType: ''
    returnType: class
    signature: 'class WinANSIToUnicodePerfFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getErr
      Src: /src/icu/source/test/perf/convperf/convperf.h:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 430
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 430
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - getErr
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MultiByteToWideChar
      Src: /src/icu/source/test/perf/convperf/convperf.h:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - MultiByteToWideChar
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CoCreateInstance
      Src: /src/icu/source/test/perf/convperf/convperf.h:344,1
    - Dst: __uuidof
      Src: /src/icu/source/test/perf/convperf/convperf.h:345,1
    - Dst: __uuidof
      Src: /src/icu/source/test/perf/convperf/convperf.h:348,1
    - Dst: getErr
      Src: /src/icu/source/test/perf/convperf/convperf.h:367,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/perf/convperf/convperf.h:370,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 373
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 373
    functionName: WinIMultiLanguageFromUnicodePerfFunction
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - __uuidof
    - getErr
    - CoCreateInstance
    linkageType: ''
    returnType: class
    signature: 'class WinIMultiLanguageFromUnicodePerfFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 433
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 433
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CoCreateInstance
      Src: /src/icu/source/test/perf/convperf/convperf.h:454,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/perf/convperf/convperf.h:471,1
    - Dst: __uuidof
      Src: /src/icu/source/test/perf/convperf/convperf.h:455,1
    - Dst: __uuidof
      Src: /src/icu/source/test/perf/convperf/convperf.h:458,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 480
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 480
    functionName: WinIMultiLanguage2FromUnicodePerfFunction
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - __uuidof
    - CoCreateInstance
    linkageType: ''
    returnType: class
    signature: 'class WinIMultiLanguage2FromUnicodePerfFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration(void) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/perf/convperf/convperf.h:83,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/perf/convperf/convperf.h:86,1
    - Dst: ucnv_fromUChars
      Src: /src/icu/source/test/perf/convperf/convperf.h:92,1
    - Dst: malloc
      Src: /src/icu/source/test/perf/convperf/convperf.h:96,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 103
    functionName: ICUFromUnicodePerfFunction
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - malloc
    - ucnv_open
    - ucnv_fromUChars
    linkageType: ''
    returnType: class
    signature: 'class ICUFromUnicodePerfFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getErr
      Src: /src/icu/source/test/perf/convperf/convperf.h:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - getErr
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/test/perf/convperf/convperf.h:108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - ucnv_fromUnicode
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CoCreateInstance
      Src: /src/icu/source/test/perf/convperf/convperf.h:400,1
    - Dst: __uuidof
      Src: /src/icu/source/test/perf/convperf/convperf.h:404,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/perf/convperf/convperf.h:410,1
    - Dst: __uuidof
      Src: /src/icu/source/test/perf/convperf/convperf.h:401,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 424
    functionName: WinIMultiLanguage2ToUnicodePerfFunction
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - __uuidof
    - CoCreateInstance
    linkageType: ''
    returnType: class
    signature: 'class WinIMultiLanguage2ToUnicodePerfFunction : public UPerfFunction '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/test/perf/convperf/convperf.h:37,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/perf/convperf/convperf.h:40,1
    - Dst: malloc
      Src: /src/icu/source/test/perf/convperf/convperf.h:50,1
    - Dst: ucnv_toUChars
      Src: /src/icu/source/test/perf/convperf/convperf.h:46,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 57
    functionName: ICUToUnicodePerfFunction
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - malloc
    - ucnv_open
    - ucnv_toUChars
    linkageType: ''
    returnType: class
    signature: 'class ICUToUnicodePerfFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_countAvailable
      Src: /src/icu/source/test/perf/convperf/convperf.h:128,1
    - Dst: ucnv_getAvailableName
      Src: /src/icu/source/test/perf/convperf/convperf.h:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 133
    functionName: ICUOpenAllConvertersFunction
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - ucnv_countAvailable
    - ucnv_getAvailableName
    linkageType: ''
    returnType: class
    signature: 'class ICUOpenAllConvertersFunction : public UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getErr
      Src: /src/icu/source/test/perf/convperf/convperf.h:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - getErr
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getErr
      Src: /src/icu/source/test/perf/convperf/convperf.h:485,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 486
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 486
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - getErr
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_toUnicode
      Src: /src/icu/source/test/perf/convperf/convperf.h:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - ucnv_toUnicode
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_cleanup
      Src: /src/icu/source/test/perf/convperf/convperf.h:137,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/perf/convperf/convperf.h:140,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/perf/convperf/convperf.h:140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: call
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - ucnv_open
    - ucnv_close
    - u_cleanup
    linkageType: ''
    returnType: virtual
    signature: 'virtual void call(UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 324
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 324
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 489
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 489
    functionName: getOperationsPerIteration
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getOperationsPerIteration(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConverterPerformanceTest
      Src: /src/icu/source/test/perf/convperf/convperf.h:497,1
    CyclomaticComplexity: 117
    EdgeCount: 117
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 568
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 568
    functionName: ConverterPerformanceTest
    functionSourceFile: /src/icu/source/test/perf/convperf/convperf.h
    functionUses: []
    functionsReached:
    - ConverterPerformanceTest
    linkageType: ''
    returnType: class
    signature: 'class ConverterPerformanceTest : public UPerfTest '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:428,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:440,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:451,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:398,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:468,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:479,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:490,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/strtst.c:502,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:467,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:478,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:410,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:489,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:446,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:457,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:397,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:407,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:415,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:434,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:412,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:414,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:433,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:445,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:456,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:499,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:439,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:450,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:473,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:484,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:393,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:401,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:402,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:426,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:494,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:404,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:425,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:438,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:449,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:461,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:472,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:483,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:493,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:500,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:488,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:477,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:409,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:466,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:465,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:476,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:487,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:395,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:413,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:432,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:444,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:455,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:454,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:411,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:430,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:442,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/strtst.c:500,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:503,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:471,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:481,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:399,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:492,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:480,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:470,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:491,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/strtst.c:463,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:475,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:408,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:424,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:486,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:436,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:448,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:460,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:496,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:459,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:447,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:422,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:423,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:435,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:474,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:485,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:495,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:453,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:394,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:405,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:429,1
    - Dst: TestSPrintFormat
      Src: /src/icu/source/test/iotest/strtst.c:441,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 93
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 506
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 506
    functionName: TestSprintfFormat
    functionSourceFile: /src/icu/source/test/iotest/strtst.c
    functionUses: []
    functionsReached:
    - strcmp
    - u_austrncpy
    - TestSPrintFormat
    - log_verbose
    - log_err
    - UPRV_LENGTHOF
    - u_sprintf
    linkageType: ''
    returnType: UPRV_BLOCK_MACRO_END
    signature: 'UPRV_BLOCK_MACRO_END static void TestSprintfFormat(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/strtst.c:518,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:518,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/strtst.c:547,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:547,1
    - Dst: sprintf
      Src: /src/icu/source/test/iotest/strtst.c:559,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:560,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/strtst.c:562,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:563,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:582,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:584,1
    - Dst: sprintf
      Src: /src/icu/source/test/iotest/strtst.c:587,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/strtst.c:590,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:602,1
    - Dst: sprintf
      Src: /src/icu/source/test/iotest/strtst.c:523,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:524,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/strtst.c:526,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:527,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:538,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/strtst.c:540,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:541,1
    - Dst: sprintf
      Src: /src/icu/source/test/iotest/strtst.c:552,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/strtst.c:561,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:561,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:599,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:588,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/strtst.c:525,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:525,1
    - Dst: sprintf
      Src: /src/icu/source/test/iotest/strtst.c:537,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/strtst.c:539,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/strtst.c:533,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:534,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:531,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:539,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:553,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/strtst.c:555,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/strtst.c:583,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:581,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/strtst.c:589,1
    - Dst: sprintf
      Src: /src/icu/source/test/iotest/strtst.c:580,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/strtst.c:600,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:591,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:589,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/strtst.c:519,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:519,1
    - Dst: sprintf
      Src: /src/icu/source/test/iotest/strtst.c:530,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:532,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/strtst.c:532,1
    - Dst: sprintf
      Src: /src/icu/source/test/iotest/strtst.c:545,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:546,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/strtst.c:548,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:549,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/strtst.c:554,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:600,1
    - Dst: sprintf
      Src: /src/icu/source/test/iotest/strtst.c:598,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:556,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/strtst.c:582,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:554,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 88
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 606
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 606
    functionName: TestStringCompatibility
    functionSourceFile: /src/icu/source/test/iotest/strtst.c
    functionUses: []
    functionsReached:
    - sprintf
    - strcmp
    - u_memset
    - u_austrncpy
    - log_err
    - UPRV_LENGTHOF
    - u_sprintf
    linkageType: ''
    returnType: void
    signature: 'static void TestStringCompatibility(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: u_fstropen
      Src: /src/icu/source/test/iotest/strtst.c:256,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:256,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/iotest/strtst.c:266,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:277,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:282,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/strtst.c:289,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:299,1
    - Dst: u_frewind
      Src: /src/icu/source/test/iotest/strtst.c:301,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/strtst.c:303,1
    - Dst: u_fstropen
      Src: /src/icu/source/test/iotest/strtst.c:308,1
    - Dst: u_frewind
      Src: /src/icu/source/test/iotest/strtst.c:263,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:259,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/strtst.c:264,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/iotest/strtst.c:265,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/iotest/strtst.c:267,1
    - Dst: u_frewind
      Src: /src/icu/source/test/iotest/strtst.c:274,1
    - Dst: u_fgetlocale
      Src: /src/icu/source/test/iotest/strtst.c:280,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/strtst.c:285,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/iotest/strtst.c:292,1
    - Dst: u_fstropen
      Src: /src/icu/source/test/iotest/strtst.c:299,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/strtst.c:276,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/strtst.c:281,1
    - Dst: u_fsetlocale
      Src: /src/icu/source/test/iotest/strtst.c:279,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/strtst.c:288,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/iotest/strtst.c:290,1
    - Dst: u_austrcpy
      Src: /src/icu/source/test/iotest/strtst.c:291,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/strtst.c:304,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:309,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:306,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/strtst.c:262,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:268,1
    - Dst: u_fgetlocale
      Src: /src/icu/source/test/iotest/strtst.c:275,1
    - Dst: u_fgetlocale
      Src: /src/icu/source/test/iotest/strtst.c:277,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:271,1
    - Dst: u_fgetlocale
      Src: /src/icu/source/test/iotest/strtst.c:282,1
    - Dst: u_frewind
      Src: /src/icu/source/test/iotest/strtst.c:286,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:293,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:296,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/strtst.c:300,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 68
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 312
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 312
    functionName: TestLocalizedString
    functionSourceFile: /src/icu/source/test/iotest/strtst.c
    functionUses: []
    functionsReached:
    - u_fgetlocale
    - u_uastrcpy
    - u_fsetlocale
    - u_frewind
    - u_fstropen
    - strcmp
    - log_err
    - u_fprintf
    - UPRV_LENGTHOF
    - u_strcmp
    - u_fclose
    - u_fscanf
    - u_austrcpy
    linkageType: ''
    returnType: void
    signature: 'static void TestLocalizedString(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:336,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:338,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:339,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:337,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:344,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:354,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:355,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:356,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:357,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:343,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:342,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:346,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:347,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:352,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:353,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:348,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:349,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:350,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:351,1
    - Dst: Test_u_snprintf
      Src: /src/icu/source/test/iotest/strtst.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 359
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 359
    functionName: TestSnprintf
    functionSourceFile: /src/icu/source/test/iotest/strtst.c
    functionUses: []
    functionsReached:
    - Test_u_snprintf
    linkageType: ''
    returnType: void
    signature: 'static void TestSnprintf(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:661,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:662,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:664,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:667,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:670,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:663,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:665,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:668,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:673,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:680,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:676,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:649,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:650,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:653,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:652,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:655,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:656,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:658,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:659,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:681,1
    - Dst: TestSScanSetFormat
      Src: /src/icu/source/test/iotest/strtst.c:679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 687
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 687
    functionName: TestSScanset
    functionSourceFile: /src/icu/source/test/iotest/strtst.c
    functionUses: []
    functionsReached:
    - TestSScanSetFormat
    linkageType: ''
    returnType: void
    signature: 'static void TestSScanset(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBadSScanfFormat
      Src: /src/icu/source/test/iotest/strtst.c:711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 713
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 713
    functionName: TestBadScanfFormat
    functionSourceFile: /src/icu/source/test/iotest/strtst.c
    functionUses: []
    functionsReached:
    - TestBadSScanfFormat
    linkageType: ''
    returnType: void
    signature: 'static void TestBadScanfFormat(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_u_vfprintf
      Src: /src/icu/source/test/iotest/strtst.c:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 746
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 746
    functionName: TestVargs
    functionSourceFile: /src/icu/source/test/iotest/strtst.c
    functionUses: []
    functionsReached:
    - Test_u_vfprintf
    linkageType: ''
    returnType: void
    signature: 'static void TestVargs(void) '
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/strtst.c:37,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:57,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:68,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:89,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/strtst.c:163,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:188,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:150,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:153,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:120,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:106,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:142,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/strtst.c:177,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/strtst.c:207,1
    - Dst: strlen
      Src: /src/icu/source/test/iotest/strtst.c:211,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:212,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/iotest/strtst.c:224,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:227,1
    - Dst: strlen
      Src: /src/icu/source/test/iotest/strtst.c:235,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:53,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:124,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:215,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/strtst.c:216,1
    - Dst: strlen
      Src: /src/icu/source/test/iotest/strtst.c:220,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:221,1
    - Dst: u_snprintf_u
      Src: /src/icu/source/test/iotest/strtst.c:241,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:171,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/strtst.c:38,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:73,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:94,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:122,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:174,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:206,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/iotest/strtst.c:34,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:110,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:168,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:190,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/strtst.c:208,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/iotest/strtst.c:242,1
    - Dst: INT64_C
      Src: /src/icu/source/test/iotest/strtst.c:44,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:78,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:108,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:169,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:147,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:156,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:209,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:75,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:96,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:218,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/iotest/strtst.c:232,1
    - Dst: strlen
      Src: /src/icu/source/test/iotest/strtst.c:236,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:138,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:127,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:192,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:240,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:135,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:141,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:136,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:164,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:230,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:239,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/strtst.c:169,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:59,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:64,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:80,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:85,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:159,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:178,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:113,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:161,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/strtst.c:217,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:181,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:175,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:61,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:82,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:131,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/strtst.c:137,1
    - Dst: u_sprintf_u
      Src: /src/icu/source/test/iotest/strtst.c:225,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:236,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/iotest/strtst.c:226,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:176,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/strtst.c:170,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:144,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:154,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:99,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:129,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:233,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/iotest/strtst.c:240,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:37,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:103,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:117,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:148,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:183,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:196,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/iotest/strtst.c:230,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/strtst.c:239,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:66,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:87,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:101,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/strtst.c:155,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:167,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:115,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:207,1
    - Dst: strlen
      Src: /src/icu/source/test/iotest/strtst.c:212,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:224,1
    - Dst: u_sprintf_u
      Src: /src/icu/source/test/iotest/strtst.c:231,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:162,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:216,1
    - Dst: strlen
      Src: /src/icu/source/test/iotest/strtst.c:221,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:243,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/strtst.c:176,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:185,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/iotest/strtst.c:36,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:38,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:71,1
    - Dst: u_sprintf
      Src: /src/icu/source/test/iotest/strtst.c:92,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:198,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 212
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 247
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 247
    functionName: TestString
    functionSourceFile: /src/icu/source/test/iotest/strtst.c
    functionUses: []
    functionsReached:
    - INT64_C
    - U_STRING_DECL
    - u_sscanf
    - strcmp
    - u_memset
    - u_austrncpy
    - u_uastrncpy
    - u_sprintf_u
    - u_snprintf_u
    - U_STRING_INIT
    - u_strlen
    - u_strncmp
    - log_err
    - UPRV_LENGTHOF
    - u_strcmp
    - u_sprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestString(void) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/strtst.c:617,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:618,1
    - Dst: memset
      Src: /src/icu/source/test/iotest/strtst.c:619,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:617,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:619,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:620,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:622,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/strtst.c:624,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:624,1
    - Dst: sscanf
      Src: /src/icu/source/test/iotest/strtst.c:625,1
    - Dst: strncmp
      Src: /src/icu/source/test/iotest/strtst.c:626,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:633,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:626,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:638,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/strtst.c:632,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:630,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:627,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 4
    argNames:
    - format
    - uValue
    - cValue
    - expectedToPass
    argTypes:
    - char*
    - UChar*
    - char*
    - UBool
    constantsTouched: []
    func_position:
      end: 642
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 642
    functionName: TestSScanSetFormat
    functionSourceFile: /src/icu/source/test/iotest/strtst.c
    functionUses: []
    functionsReached:
    - u_sscanf
    - memset
    - u_memset
    - u_austrncpy
    - u_strlen
    - strncmp
    - log_err
    - UPRV_LENGTHOF
    - sscanf
    linkageType: ''
    returnType: void
    signature: 'static void TestSScanSetFormat(const char *format, const UChar *uValue,
      const char *cValue, UBool expectedToPass) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/strtst.c:696,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:699,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:697,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:701,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/strtst.c:696,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - format
    - uValue
    - cValue
    argTypes:
    - char*
    - UChar*
    - char*
    constantsTouched: []
    func_position:
      end: 704
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 704
    functionName: TestBadSScanfFormat
    functionSourceFile: /src/icu/source/test/iotest/strtst.c
    functionUses: []
    functionsReached:
    - u_sscanf
    - UPRV_LENGTHOF
    - u_memset
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestBadSScanfFormat(const char *format, const UChar *uValue,
      const char *cValue) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/icu/source/test/iotest/strtst.c:722,1
    - Dst: va_end
      Src: /src/icu/source/test/iotest/strtst.c:725,1
    - Dst: u_vsprintf
      Src: /src/icu/source/test/iotest/strtst.c:723,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/iotest/strtst.c:727,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/iotest/strtst.c:726,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:728,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/iotest/strtst.c:731,1
    - Dst: va_start
      Src: /src/icu/source/test/iotest/strtst.c:732,1
    - Dst: u_vsprintf_u
      Src: /src/icu/source/test/iotest/strtst.c:733,1
    - Dst: va_end
      Src: /src/icu/source/test/iotest/strtst.c:734,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/iotest/strtst.c:735,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:737,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/iotest/strtst.c:736,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - expectedResult
    - format
    - '...'
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 740
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 740
    functionName: Test_u_vfprintf
    functionSourceFile: /src/icu/source/test/iotest/strtst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - u_vsprintf_u
    - va_end
    - u_vsprintf
    - va_start
    - log_err
    - u_strcmp
    linkageType: ''
    returnType: void
    signature: 'static void Test_u_vfprintf(const char *expectedResult, const char
      *format, ...) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/iotest/strtst.c:756,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:761,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:763,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:757,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:758,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:764,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:767,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:769,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:770,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:773,1
    - Dst: u_sscanf
      Src: /src/icu/source/test/iotest/strtst.c:775,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:780,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:786,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:777,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/strtst.c:783,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 789
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 789
    functionName: TestCount
    functionSourceFile: /src/icu/source/test/iotest/strtst.c
    functionUses: []
    functionsReached:
    - u_sscanf
    - u_uastrcpy
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void TestCount(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/iotest/strtst.c:794,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/strtst.c:797,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/strtst.c:798,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/strtst.c:795,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/strtst.c:796,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/strtst.c:799,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/strtst.c:800,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/strtst.c:801,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/strtst.c:802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 804
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 804
    functionName: addStringTest
    functionSourceFile: /src/icu/source/test/iotest/strtst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void addStringTest(TestNode** root) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:852,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:857,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:864,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:873,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:873,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:875,1
    - Dst: u_fgetConverter
      Src: /src/icu/source/test/iotest/filetst.c:879,1
    - Dst: u_fgetConverter
      Src: /src/icu/source/test/iotest/filetst.c:880,1
    - Dst: u_fgetConverter
      Src: /src/icu/source/test/iotest/filetst.c:885,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/iotest/filetst.c:886,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:903,1
    - Dst: u_fsetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:898,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:916,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:889,1
    - Dst: u_frewind
      Src: /src/icu/source/test/iotest/filetst.c:908,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:914,1
    - Dst: u_file_write
      Src: /src/icu/source/test/iotest/filetst.c:860,1
    - Dst: u_file_read
      Src: /src/icu/source/test/iotest/filetst.c:868,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:869,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/iotest/filetst.c:869,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:860,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:870,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:878,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:885,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:886,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:888,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/iotest/filetst.c:889,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:895,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:899,1
    - Dst: u_file_read
      Src: /src/icu/source/test/iotest/filetst.c:909,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:901,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/iotest/filetst.c:910,1
    - Dst: u_file_read
      Src: /src/icu/source/test/iotest/filetst.c:897,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:890,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:845,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:849,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:854,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:858,1
    - Dst: u_fsetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:865,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:866,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/iotest/filetst.c:879,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/iotest/filetst.c:880,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/iotest/filetst.c:885,1
    - Dst: u_fgetConverter
      Src: /src/icu/source/test/iotest/filetst.c:886,1
    - Dst: u_file_read
      Src: /src/icu/source/test/iotest/filetst.c:901,1
    - Dst: strcpy
      Src: /src/icu/source/test/iotest/filetst.c:896,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:910,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:913,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:906,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:840,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:848,1
    - Dst: u_fgetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:857,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:861,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:868,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:872,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:879,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:880,1
    - Dst: u_fsetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:882,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:883,1
    - Dst: u_fgetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:896,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:906,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:909,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:892,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:914,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:902,1
    - Dst: u_file_read
      Src: /src/icu/source/test/iotest/filetst.c:888,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:911,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:905,1
    - Dst: u_strncmp
      Src: /src/icu/source/test/iotest/filetst.c:902,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 112
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 918
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 918
    functionName: TestCodepage
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - u_frewind
    - u_fgetcodepage
    - strcmp
    - strcpy
    - u_file_write
    - u_strlen
    - u_file_read
    - u_fsetcodepage
    - log_err
    - u_strncmp
    - ucnv_getName
    - UPRV_LENGTHOF
    - u_fgetConverter
    - u_fclose
    - u_fopen
    linkageType: ''
    returnType: void
    signature: 'static void TestCodepage(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:1424,1
    - Dst: u_vfprintf_u
      Src: /src/icu/source/test/iotest/filetst.c:1459,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:1451,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:1465,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1473,1
    - Dst: u_vfprintf
      Src: /src/icu/source/test/iotest/filetst.c:1431,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:1435,1
    - Dst: va_end
      Src: /src/icu/source/test/iotest/filetst.c:1460,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:1475,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1440,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:1443,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:1443,1
    - Dst: va_start
      Src: /src/icu/source/test/iotest/filetst.c:1458,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1446,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/iotest/filetst.c:1445,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:1448,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:1462,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/iotest/filetst.c:1471,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/iotest/filetst.c:1472,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1426,1
    - Dst: va_start
      Src: /src/icu/source/test/iotest/filetst.c:1430,1
    - Dst: va_end
      Src: /src/icu/source/test/iotest/filetst.c:1433,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:1438,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1453,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/iotest/filetst.c:1456,1
    - Dst: u_uastrcpy
      Src: /src/icu/source/test/iotest/filetst.c:1444,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1467,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:1470,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:1470,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 2
    argNames:
    - expectedResult
    - format
    - '...'
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1476
      start: 1417
    functionDepth: 0
    functionLinenumber: 1417
    functionLinenumberEnd: 1476
    functionName: Test_u_vfprintf
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - va_end
    - u_vfprintf_u
    - u_fgets
    - va_start
    - log_err
    - UPRV_LENGTHOF
    - u_strcmp
    - u_fclose
    - u_fopen
    - u_vfprintf
    linkageType: ''
    returnType: void
    signature: 'static void Test_u_vfprintf(const char *expectedResult, const char
      *format, ...) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:1492,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:1494,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:1492,1
    - Dst: u_fprintf_u
      Src: /src/icu/source/test/iotest/filetst.c:1499,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1496,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:1500,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:1502,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1504,1
    - Dst: u_fscanf_u
      Src: /src/icu/source/test/iotest/filetst.c:1507,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:1508,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/iotest/filetst.c:1509,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1510,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1513
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1513
    functionName: TestUnicodeFormat
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - u_fprintf_u
    - u_memset
    - u_fscanf_u
    - log_err
    - UPRV_LENGTHOF
    - u_strcmp
    - u_fclose
    - u_fopen
    linkageType: ''
    returnType: void
    signature: 'static void TestUnicodeFormat(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/filetst.c:334,1
    - Dst: TestFileFromICU
      Src: /src/icu/source/test/iotest/filetst.c:336,1
    - Dst: u_fadopt
      Src: /src/icu/source/test/iotest/filetst.c:336,1
    - Dst: fopen
      Src: /src/icu/source/test/iotest/filetst.c:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 337
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 337
    functionName: TestFadopt
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - TestFileFromICU
    - u_fadopt
    - log_verbose
    - fopen
    linkageType: ''
    returnType: void
    signature: 'static void TestFadopt(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/filetst.c:922,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:928,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:934,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:938,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:939,1
    - Dst: fopen
      Src: /src/icu/source/test/iotest/filetst.c:942,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:944,1
    - Dst: fread
      Src: /src/icu/source/test/iotest/filetst.c:948,1
    - Dst: fclose
      Src: /src/icu/source/test/iotest/filetst.c:949,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:952,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/filetst.c:970,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:974,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:966,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/filetst.c:976,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:968,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 981
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 981
    functionName: TestCodepageFlush
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - fclose
    - fopen
    - fread
    - log_verbose
    - log_err
    - u_fprintf
    - u_fclose
    - u_fopen
    linkageType: ''
    returnType: void
    signature: 'static void TestCodepageFlush(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_u_vfprintf
      Src: /src/icu/source/test/iotest/filetst.c:1479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1480
      start: 1478
    functionDepth: 0
    functionLinenumber: 1478
    functionLinenumberEnd: 1480
    functionName: TestVargs
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - Test_u_vfprintf
    linkageType: ''
    returnType: void
    signature: 'static void TestVargs(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1528,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1536,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1544,1
    - Dst: free
      Src: /src/icu/source/test/iotest/filetst.c:1548,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:1561,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:1552,1
    - Dst: free
      Src: /src/icu/source/test/iotest/filetst.c:1535,1
    - Dst: free
      Src: /src/icu/source/test/iotest/filetst.c:1543,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1560,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:1570,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:1522,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:1533,1
    - Dst: malloc
      Src: /src/icu/source/test/iotest/filetst.c:1526,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:1539,1
    - Dst: u_file_write
      Src: /src/icu/source/test/iotest/filetst.c:1540,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1554,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:1567,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:1541,1
    - Dst: u_fgetc
      Src: /src/icu/source/test/iotest/filetst.c:1558,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1566,1
    - Dst: u_fgetc
      Src: /src/icu/source/test/iotest/filetst.c:1565,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 1
    argNames:
    - a_pszEncoding
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1571
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1571
    functionName: TestFileWriteRetval
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - malloc
    - strcmp
    - u_memset
    - u_file_write
    - u_fgetc
    - free
    - log_err
    - u_fclose
    - u_fopen
    linkageType: ''
    returnType: void
    signature: 'static void TestFileWriteRetval(const char * a_pszEncoding) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1172,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1241,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1252,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1262,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1178,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1196,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1208,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1219,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:1274,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1218,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1177,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1194,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1207,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1279,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1213,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1224,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1235,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1246,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1257,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1166,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1165,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1182,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1201,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1179,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1197,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1209,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1221,1
    - Dst: sprintf
      Src: /src/icu/source/test/iotest/filetst.c:1277,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1173,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1190,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1191,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1203,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1215,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1227,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1167,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1183,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1202,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1214,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1225,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1236,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1247,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1258,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:1278,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1242,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1253,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1263,1
    - Dst: memset
      Src: /src/icu/source/test/iotest/filetst.c:1269,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:1275,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1175,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1192,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1204,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1216,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1228,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1162,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1170,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1233,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1244,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1255,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:1266,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:1268,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:1273,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:1274,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/filetst.c:1231,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1243,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1254,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1161,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1264,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1238,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1248,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1169,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1180,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1198,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1210,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1222,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1259,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:1269,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1282,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1163,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1256,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1234,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1245,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:1271,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1240,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1251,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1261,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:1268,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1285,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1181,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1200,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1212,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1239,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1249,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1223,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1260,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:1276,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1229,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1217,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1176,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1193,1
    - Dst: TestFPrintFormat
      Src: /src/icu/source/test/iotest/filetst.c:1206,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:1272,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/filetst.c:1276,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 114
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1287
      start: 1151
    functionDepth: 0
    functionLinenumber: 1151
    functionLinenumberEnd: 1287
    functionName: TestFprintfFormat
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - sprintf
    - memset
    - strcmp
    - u_memset
    - u_austrncpy
    - u_fgets
    - log_verbose
    - log_err
    - u_fprintf
    - UPRV_LENGTHOF
    - u_fclose
    - u_fopen
    - TestFPrintFormat
    linkageType: ''
    returnType: void
    signature: 'static void TestFprintfFormat(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:1301,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1303,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:1307,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:1307,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1321,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:1308,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:1312,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:1326,1
    - Dst: memset
      Src: /src/icu/source/test/iotest/filetst.c:1309,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:1309,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:1310,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:1315,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/filetst.c:1318,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1324,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1332,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:1313,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:1314,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:1318,1
    - Dst: strncmp
      Src: /src/icu/source/test/iotest/filetst.c:1320,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:1320,1
    - Dst: sscanf
      Src: /src/icu/source/test/iotest/filetst.c:1319,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:1316,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1327,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 4
    argNames:
    - format
    - uValue
    - cValue
    - expectedToPass
    argTypes:
    - char*
    - UChar*
    - char*
    - UBool
    constantsTouched: []
    func_position:
      end: 1335
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1335
    functionName: TestFScanSetFormat
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - memset
    - u_memset
    - u_austrncpy
    - u_strlen
    - strncmp
    - log_err
    - u_fprintf
    - UPRV_LENGTHOF
    - u_fclose
    - u_fopen
    - u_fscanf
    - sscanf
    linkageType: ''
    returnType: void
    signature: 'static void TestFScanSetFormat(const char *format, const UChar *uValue,
      const char *cValue, UBool expectedToPass) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1000,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:995,1
    - Dst: fopen
      Src: /src/icu/source/test/iotest/filetst.c:1026,1
    - Dst: u_fputs
      Src: /src/icu/source/test/iotest/filetst.c:1016,1
    - Dst: sprintf
      Src: /src/icu/source/test/iotest/filetst.c:1035,1
    - Dst: fscanf
      Src: /src/icu/source/test/iotest/filetst.c:1040,1
    - Dst: sprintf
      Src: /src/icu/source/test/iotest/filetst.c:1054,1
    - Dst: fscanf
      Src: /src/icu/source/test/iotest/filetst.c:1059,1
    - Dst: sprintf
      Src: /src/icu/source/test/iotest/filetst.c:1060,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:1061,1
    - Dst: fscanf
      Src: /src/icu/source/test/iotest/filetst.c:1098,1
    - Dst: fscanf
      Src: /src/icu/source/test/iotest/filetst.c:1065,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:1085,1
    - Dst: sprintf
      Src: /src/icu/source/test/iotest/filetst.c:1084,1
    - Dst: fscanf
      Src: /src/icu/source/test/iotest/filetst.c:1089,1
    - Dst: sprintf
      Src: /src/icu/source/test/iotest/filetst.c:1066,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:985,1
    - Dst: u_fgetlocale
      Src: /src/icu/source/test/iotest/filetst.c:999,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:999,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:1009,1
    - Dst: u_fprintf_u
      Src: /src/icu/source/test/iotest/filetst.c:1019,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:1048,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1049,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:1067,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1068,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:1091,1
    - Dst: strlen
      Src: /src/icu/source/test/iotest/filetst.c:1103,1
    - Dst: sprintf
      Src: /src/icu/source/test/iotest/filetst.c:1090,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1114,1
    - Dst: fscanf
      Src: /src/icu/source/test/iotest/filetst.c:1112,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1062,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:1008,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:1014,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:1022,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:1011,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:1025,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:1010,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1028,1
    - Dst: fscanf
      Src: /src/icu/source/test/iotest/filetst.c:1034,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:1042,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1043,1
    - Dst: fclose
      Src: /src/icu/source/test/iotest/filetst.c:1118,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1086,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1106,1
    - Dst: u_fgetlocale
      Src: /src/icu/source/test/iotest/filetst.c:1000,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:1006,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:1007,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:1015,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:1036,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1037,1
    - Dst: sprintf
      Src: /src/icu/source/test/iotest/filetst.c:1041,1
    - Dst: fscanf
      Src: /src/icu/source/test/iotest/filetst.c:1046,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:1055,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1056,1
    - Dst: fscanf
      Src: /src/icu/source/test/iotest/filetst.c:1083,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1092,1
    - Dst: strlen
      Src: /src/icu/source/test/iotest/filetst.c:1097,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1100,1
    - Dst: fscanf
      Src: /src/icu/source/test/iotest/filetst.c:1104,1
    - Dst: sprintf
      Src: /src/icu/source/test/iotest/filetst.c:1047,1
    - Dst: fscanf
      Src: /src/icu/source/test/iotest/filetst.c:1053,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 124
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1119
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 1119
    functionName: TestFilePrintCompatibility
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - u_fgetlocale
    - sprintf
    - u_fputs
    - u_fprintf_u
    - fclose
    - fopen
    - strcmp
    - fscanf
    - log_err
    - u_fprintf
    - strlen
    - u_fclose
    - u_fopen
    linkageType: ''
    returnType: void
    signature: 'static void TestFilePrintCompatibility(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1353,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1355,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1356,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1358,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1361,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1364,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1357,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1359,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1362,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1367,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1374,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1343,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1349,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1344,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1347,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1346,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1350,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1352,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1375,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1370,1
    - Dst: TestFScanSetFormat
      Src: /src/icu/source/test/iotest/filetst.c:1373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1380
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1380
    functionName: TestFScanset
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - TestFScanSetFormat
    linkageType: ''
    returnType: void
    signature: 'static void TestFScanset(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:1389,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:1395,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:1395,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1391,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:1396,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:1398,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:1399,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:1400,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:1401,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:1402,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:1404,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - format
    - uValue
    - cValue
    argTypes:
    - char*
    - UChar*
    - char*
    constantsTouched: []
    func_position:
      end: 1406
      start: 1383
    functionDepth: 0
    functionLinenumber: 1383
    functionLinenumberEnd: 1406
    functionName: TestBadFScanfFormat
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - u_memset
    - log_err
    - u_fprintf
    - UPRV_LENGTHOF
    - u_fclose
    - u_fopen
    - u_fscanf
    linkageType: ''
    returnType: void
    signature: 'static void TestBadFScanfFormat(const char *format, const UChar *uValue,
      const char *cValue) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestBadFScanfFormat
      Src: /src/icu/source/test/iotest/filetst.c:1413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1414
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1414
    functionName: TestBadScanfFormat
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - TestBadFScanfFormat
    linkageType: ''
    returnType: void
    signature: 'static void TestBadScanfFormat(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:576,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:580,1
    - Dst: u_file_write
      Src: /src/icu/source/test/iotest/filetst.c:582,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:582,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:580,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:585,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:586,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:586,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:587,1
    - Dst: u_file_read
      Src: /src/icu/source/test/iotest/filetst.c:588,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:592,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:590,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 593
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 593
    functionName: TestFileReadBuffering
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - u_memset
    - u_file_write
    - u_file_read
    - log_err
    - UPRV_LENGTHOF
    - u_fclose
    - u_fopen
    linkageType: ''
    returnType: void
    signature: 'static void TestFileReadBuffering(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/icu/source/test/iotest/filetst.c:601,1
    - Dst: fopen
      Src: /src/icu/source/test/iotest/filetst.c:621,1
    - Dst: strlen
      Src: /src/icu/source/test/iotest/filetst.c:639,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:610,1
    - Dst: strlen
      Src: /src/icu/source/test/iotest/filetst.c:602,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:610,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:607,1
    - Dst: fwrite
      Src: /src/icu/source/test/iotest/filetst.c:613,1
    - Dst: fwrite
      Src: /src/icu/source/test/iotest/filetst.c:615,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:629,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/iotest/filetst.c:639,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:628,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:641,1
    - Dst: fclose
      Src: /src/icu/source/test/iotest/filetst.c:618,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:636,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:627,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:627,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:648,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:652,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:620,1
    - Dst: fgets
      Src: /src/icu/source/test/iotest/filetst.c:628,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:629,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/iotest/filetst.c:644,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:645,1
    - Dst: fclose
      Src: /src/icu/source/test/iotest/filetst.c:651,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:647,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 653
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 653
    functionName: TestfgetsLineCount
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - fwrite
    - fclose
    - fgets
    - fopen
    - u_memset
    - u_uastrncpy
    - u_fgets
    - u_strlen
    - log_err
    - UPRV_LENGTHOF
    - u_strcmp
    - u_fclose
    - u_fopen
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void TestfgetsLineCount(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1592,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1596,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1600,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1606,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1612,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1597,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1601,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1607,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1610,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1613,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1593,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1598,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1602,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1604,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1608,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1614,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1616,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1594,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1599,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1611,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1605,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1603,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/filetst.c:1615,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 1618
      start: 1589
    functionDepth: 0
    functionLinenumber: 1589
    functionLinenumberEnd: 1618
    functionName: addFileTest
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void addFileTest(TestNode** root) '
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:88,1
    - Dst: fprintf
      Src: /src/icu/source/test/iotest/filetst.c:102,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:151,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:146,1
    - Dst: u_fungetc
      Src: /src/icu/source/test/iotest/filetst.c:138,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:123,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:186,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:216,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/filetst.c:220,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:264,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:307,1
    - Dst: U_STRING_DECL
      Src: /src/icu/source/test/iotest/filetst.c:41,1
    - Dst: memset
      Src: /src/icu/source/test/iotest/filetst.c:46,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:77,1
    - Dst: u_fungetc
      Src: /src/icu/source/test/iotest/filetst.c:139,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:184,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:245,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/filetst.c:251,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:267,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:272,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:309,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:237,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:259,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:302,1
    - Dst: u_fgetcx
      Src: /src/icu/source/test/iotest/filetst.c:132,1
    - Dst: memset
      Src: /src/icu/source/test/iotest/filetst.c:47,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:227,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:249,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:268,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:273,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:288,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:292,1
    - Dst: u_feof
      Src: /src/icu/source/test/iotest/filetst.c:298,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:281,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:276,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:83,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:113,1
    - Dst: u_fungetc
      Src: /src/icu/source/test/iotest/filetst.c:120,1
    - Dst: u_fungetc
      Src: /src/icu/source/test/iotest/filetst.c:137,1
    - Dst: u_fgetc
      Src: /src/icu/source/test/iotest/filetst.c:133,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:80,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:85,1
    - Dst: u_fungetc
      Src: /src/icu/source/test/iotest/filetst.c:130,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:261,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/filetst.c:287,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:304,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:45,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:90,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:171,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:232,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:248,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:257,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:280,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:287,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/filetst.c:301,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:72,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:46,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:50,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:67,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:79,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:82,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:144,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:149,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:189,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:201,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:203,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:240,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:264,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:269,1
    - Dst: u_fgetc
      Src: /src/icu/source/test/iotest/filetst.c:116,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:166,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:47,1
    - Dst: INT64_C
      Src: /src/icu/source/test/iotest/filetst.c:58,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:84,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:105,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:161,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:156,1
    - Dst: u_fgetc
      Src: /src/icu/source/test/iotest/filetst.c:126,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:199,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:310,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:87,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:221,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/filetst.c:279,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/filetst.c:292,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:295,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:169,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:313,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/test/iotest/filetst.c:43,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:45,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:101,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:176,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:128,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:118,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:135,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:217,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:219,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/filetst.c:225,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:230,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:215,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:251,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:265,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:108,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:86,1
    - Dst: u_feof
      Src: /src/icu/source/test/iotest/filetst.c:92,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:174,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:220,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:235,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/filetst.c:243,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:253,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:301,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:97,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:98,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:191,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:226,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:289,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:104,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:99,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:154,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:159,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:164,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:44,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:73,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:75,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:76,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:74,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:213,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:252,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:292,1
    - Dst: u_feof
      Src: /src/icu/source/test/iotest/filetst.c:306,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:277,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:299,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:181,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:211,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:225,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:256,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:294,1
    - Dst: u_feof
      Src: /src/icu/source/test/iotest/filetst.c:112,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:179,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:243,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/filetst.c:267,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:285,1
    - Dst: u_austrncpy
      Src: /src/icu/source/test/iotest/filetst.c:259,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:284,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:71,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:89,1
    - Dst: u_fgetfile
      Src: /src/icu/source/test/iotest/filetst.c:102,1
    - Dst: u_fgetc
      Src: /src/icu/source/test/iotest/filetst.c:131,1
    - Dst: u_fgetc
      Src: /src/icu/source/test/iotest/filetst.c:121,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:196,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:209,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:212,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:244,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:256,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:293,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:279,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:93,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:44,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:78,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:81,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:194,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:205,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:207,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:222,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:224,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:248,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:260,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:301,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:303,1
    - Dst: u_fungetc
      Src: /src/icu/source/test/iotest/filetst.c:125,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 294
    argCount: 1
    argNames:
    - myFile
    argTypes:
    - UFILE*
    constantsTouched: []
    func_position:
      end: 314
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 314
    functionName: TestFileFromICU
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - u_fopen
    - u_fgetfile
    - U_STRING_INIT
    - u_feof
    - u_fscanf
    - INT64_C
    - U_STRING_DECL
    - u_austrncpy
    - u_fgets
    - UPRV_LENGTHOF
    - memset
    - strcmp
    - u_memset
    - u_fungetc
    - log_err
    - u_fprintf
    - u_fclose
    - u_fgetc
    - u_fgetcx
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void TestFileFromICU(UFILE *myFile) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFileWriteRetval
      Src: /src/icu/source/test/iotest/filetst.c:1574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1575
      start: 1573
    functionDepth: 0
    functionLinenumber: 1573
    functionLinenumberEnd: 1575
    functionName: TestFileWriteRetvalUTF16
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - TestFileWriteRetval
    linkageType: ''
    returnType: void
    signature: 'static void TestFileWriteRetvalUTF16(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/filetst.c:325,1
    - Dst: fclose
      Src: /src/icu/source/test/iotest/filetst.c:328,1
    - Dst: fopen
      Src: /src/icu/source/test/iotest/filetst.c:326,1
    - Dst: u_finit
      Src: /src/icu/source/test/iotest/filetst.c:327,1
    - Dst: TestFileFromICU
      Src: /src/icu/source/test/iotest/filetst.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 329
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 329
    functionName: TestFinit
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - TestFileFromICU
    - fclose
    - fopen
    - log_verbose
    - u_finit
    linkageType: ''
    returnType: void
    signature: 'static void TestFinit(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_finit
      Src: /src/icu/source/test/iotest/filetst.c:346,1
    - Dst: u_finit
      Src: /src/icu/source/test/iotest/filetst.c:347,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:353,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:354,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:353,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:355,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:356,1
    - Dst: u_fscanf
      Src: /src/icu/source/test/iotest/filetst.c:357,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/filetst.c:358,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/filetst.c:360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 362
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 362
    functionName: StdinBuffering
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - u_fgets
    - log_verbose
    - u_fprintf
    - UPRV_LENGTHOF
    - u_fscanf
    - u_finit
    linkageType: ''
    returnType: void
    signature: 'static void StdinBuffering(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/filetst.c:318,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:319,1
    - Dst: TestFileFromICU
      Src: /src/icu/source/test/iotest/filetst.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 320
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 320
    functionName: TestFile
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - TestFileFromICU
    - u_fopen
    - log_verbose
    linkageType: ''
    returnType: void
    signature: 'static void TestFile(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFileWriteRetval
      Src: /src/icu/source/test/iotest/filetst.c:1578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1579
      start: 1577
    functionDepth: 0
    functionLinenumber: 1577
    functionLinenumberEnd: 1579
    functionName: TestFileWriteRetvalUTF8
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - TestFileWriteRetval
    linkageType: ''
    returnType: void
    signature: 'static void TestFileWriteRetvalUTF8(void) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:365,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:378,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:380,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:384,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/iotest/filetst.c:381,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:397,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:401,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:405,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:412,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/iotest/filetst.c:415,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:424,1
    - Dst: u_fgetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:421,1
    - Dst: u_fgetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:405,1
    - Dst: u_fgetlocale
      Src: /src/icu/source/test/iotest/filetst.c:432,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:422,1
    - Dst: u_fgetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:371,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:367,1
    - Dst: ucnv_getDefaultName
      Src: /src/icu/source/test/iotest/filetst.c:371,1
    - Dst: u_fgetlocale
      Src: /src/icu/source/test/iotest/filetst.c:381,1
    - Dst: u_fgetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:387,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:386,1
    - Dst: u_fgetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:388,1
    - Dst: ucnv_getDefaultName
      Src: /src/icu/source/test/iotest/filetst.c:388,1
    - Dst: u_fgetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:391,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:403,1
    - Dst: u_fgetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:422,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:371,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:373,1
    - Dst: ucnv_getDefaultName
      Src: /src/icu/source/test/iotest/filetst.c:374,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:388,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:390,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:395,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:407,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:414,1
    - Dst: u_fgetlocale
      Src: /src/icu/source/test/iotest/filetst.c:415,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:418,1
    - Dst: u_fgetlocale
      Src: /src/icu/source/test/iotest/filetst.c:428,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:431,1
    - Dst: u_fgetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:408,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:429,1
    - Dst: u_fgetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:370,1
    - Dst: u_fgetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:374,1
    - Dst: u_fgetlocale
      Src: /src/icu/source/test/iotest/filetst.c:377,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/iotest/filetst.c:378,1
    - Dst: u_fgetlocale
      Src: /src/icu/source/test/iotest/filetst.c:378,1
    - Dst: u_fgetlocale
      Src: /src/icu/source/test/iotest/filetst.c:394,1
    - Dst: u_fgetlocale
      Src: /src/icu/source/test/iotest/filetst.c:395,1
    - Dst: u_fgetlocale
      Src: /src/icu/source/test/iotest/filetst.c:398,1
    - Dst: u_fgetlocale
      Src: /src/icu/source/test/iotest/filetst.c:411,1
    - Dst: u_fgetlocale
      Src: /src/icu/source/test/iotest/filetst.c:412,1
    - Dst: u_fgetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:425,1
    - Dst: u_fgetlocale
      Src: /src/icu/source/test/iotest/filetst.c:429,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/test/iotest/filetst.c:412,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:420,1
    - Dst: u_fgetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:404,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:435,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 98
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 436
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 436
    functionName: TestCodepageAndLocale
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - u_fgetlocale
    - ucnv_getDefaultName
    - u_fgetcodepage
    - strcmp
    - log_err
    - uloc_getDefault
    - u_fclose
    - u_fopen
    linkageType: ''
    returnType: void
    signature: 'static void TestCodepageAndLocale(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:692,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:702,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:722,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:718,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:704,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:707,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:707,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:708,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:715,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:724,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:694,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:725,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:727,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:698,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:697,1
    - Dst: u_file_write
      Src: /src/icu/source/test/iotest/filetst.c:698,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:700,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:721,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:724,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:708,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:717,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/iotest/filetst.c:714,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 728
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 728
    functionName: TestfgetsNewLineHandling
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - u_memset
    - u_file_write
    - u_fgets
    - u_strlen
    - log_err
    - UPRV_LENGTHOF
    - u_strcmp
    - u_fclose
    - u_fopen
    linkageType: ''
    returnType: void
    signature: 'static void TestfgetsNewLineHandling(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestLineCount
      Src: /src/icu/source/test/iotest/filetst.c:788,1
    - Dst: TestLineCount
      Src: /src/icu/source/test/iotest/filetst.c:791,1
    - Dst: TestLineCount
      Src: /src/icu/source/test/iotest/filetst.c:792,1
    - Dst: TestLineCount
      Src: /src/icu/source/test/iotest/filetst.c:790,1
    - Dst: TestLineCount
      Src: /src/icu/source/test/iotest/filetst.c:789,1
    - Dst: TestLineCount
      Src: /src/icu/source/test/iotest/filetst.c:793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 794
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 794
    functionName: TestfgetsNewLineCount
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - TestLineCount
    linkageType: ''
    returnType: void
    signature: 'static void TestfgetsNewLineCount(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFileWriteRetval
      Src: /src/icu/source/test/iotest/filetst.c:1582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1583
      start: 1581
    functionDepth: 0
    functionLinenumber: 1581
    functionLinenumberEnd: 1583
    functionName: TestFileWriteRetvalASCII
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - TestFileWriteRetval
    linkageType: ''
    returnType: void
    signature: 'static void TestFileWriteRetvalASCII(void) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:461,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:478,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:535,1
    - Dst: u_fgetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:514,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/filetst.c:497,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:537,1
    - Dst: u_strcat
      Src: /src/icu/source/test/iotest/filetst.c:466,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:490,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:499,1
    - Dst: u_fgetc
      Src: /src/icu/source/test/iotest/filetst.c:517,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/iotest/filetst.c:505,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:512,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:529,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:443,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:458,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:478,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:492,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/iotest/filetst.c:547,1
    - Dst: u_fputc
      Src: /src/icu/source/test/iotest/filetst.c:501,1
    - Dst: strcmp
      Src: /src/icu/source/test/iotest/filetst.c:514,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:512,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:449,1
    - Dst: u_fputc
      Src: /src/icu/source/test/iotest/filetst.c:460,1
    - Dst: u_file_write
      Src: /src/icu/source/test/iotest/filetst.c:465,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:484,1
    - Dst: u_fgetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:492,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:523,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:554,1
    - Dst: u_fputc
      Src: /src/icu/source/test/iotest/filetst.c:454,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:470,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:504,1
    - Dst: u_fgetc
      Src: /src/icu/source/test/iotest/filetst.c:520,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:546,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:557,1
    - Dst: u_fgetc
      Src: /src/icu/source/test/iotest/filetst.c:475,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:493,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:495,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:513,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:552,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:555,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:562,1
    - Dst: u_fgetc
      Src: /src/icu/source/test/iotest/filetst.c:472,1
    - Dst: strlen
      Src: /src/icu/source/test/iotest/filetst.c:444,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/iotest/filetst.c:463,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:470,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:479,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:504,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/iotest/filetst.c:534,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:546,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:560,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:556,1
    - Dst: u_fputc
      Src: /src/icu/source/test/iotest/filetst.c:453,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:462,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:518,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:565,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:568,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:570,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:515,1
    - Dst: u_fputc
      Src: /src/icu/source/test/iotest/filetst.c:457,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:487,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:529,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:524,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:545,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:510,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:532,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:503,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:484,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/iotest/filetst.c:489,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:562,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:455,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:461,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:468,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:482,1
    - Dst: u_fgetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:493,1
    - Dst: u_strcat
      Src: /src/icu/source/test/iotest/filetst.c:508,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:521,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:542,1
    - Dst: u_strcat
      Src: /src/icu/source/test/iotest/filetst.c:550,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:554,1
    - Dst: u_fgetcodepage
      Src: /src/icu/source/test/iotest/filetst.c:515,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:523,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:462,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:476,1
    - Dst: u_fputc
      Src: /src/icu/source/test/iotest/filetst.c:502,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:471,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:473,1
    - Dst: u_file_write
      Src: /src/icu/source/test/iotest/filetst.c:507,1
    - Dst: u_fputc
      Src: /src/icu/source/test/iotest/filetst.c:544,1
    - Dst: u_file_write
      Src: /src/icu/source/test/iotest/filetst.c:549,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/filetst.c:540,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:545,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:527,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:503,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 166
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 572
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 572
    functionName: TestfgetsBuffers
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - u_fgetcodepage
    - strcmp
    - u_memset
    - u_fputc
    - u_uastrncpy
    - u_file_write
    - u_fgetc
    - u_fgets
    - u_strlen
    - log_verbose
    - log_err
    - u_strcat
    - strlen
    - u_strcmp
    - u_fclose
    - u_fopen
    linkageType: ''
    returnType: void
    signature: 'static void TestfgetsBuffers(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/test/iotest/filetst.c:733,1
    - Dst: fwrite
      Src: /src/icu/source/test/iotest/filetst.c:746,1
    - Dst: fclose
      Src: /src/icu/source/test/iotest/filetst.c:748,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/iotest/filetst.c:759,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:767,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:774,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:740,1
    - Dst: strlen
      Src: /src/icu/source/test/iotest/filetst.c:744,1
    - Dst: fopen
      Src: /src/icu/source/test/iotest/filetst.c:737,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:750,1
    - Dst: strlen
      Src: /src/icu/source/test/iotest/filetst.c:764,1
    - Dst: strlen
      Src: /src/icu/source/test/iotest/filetst.c:757,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:781,1
    - Dst: fwrite
      Src: /src/icu/source/test/iotest/filetst.c:744,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/iotest/filetst.c:757,1
    - Dst: u_uastrncpy
      Src: /src/icu/source/test/iotest/filetst.c:764,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:758,1
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:766,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:766,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:758,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:767,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/iotest/filetst.c:773,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:776,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:752,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:760,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:777,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:783,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 3
    argNames:
    - prefixLine
    - line
    - numRepititions
    argTypes:
    - char*
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 784
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 784
    functionName: TestLineCount
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - fwrite
    - fclose
    - fopen
    - UPRV_LENGTHOF
    - u_memset
    - u_uastrncpy
    - u_fgets
    - u_strlen
    - log_err
    - strlen
    - u_strcmp
    - u_fclose
    - u_fopen
    linkageType: ''
    returnType: void
    signature: 'static void TestLineCount(const char *prefixLine, const char *line,
      int32_t numRepititions) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: u_memset
      Src: /src/icu/source/test/iotest/filetst.c:807,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/filetst.c:815,1
    - Dst: u_fgets
      Src: /src/icu/source/test/iotest/filetst.c:822,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:822,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:829,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:825,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:824,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/filetst.c:823,1
    - Dst: fopen
      Src: /src/icu/source/test/iotest/filetst.c:801,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:807,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:804,1
    - Dst: fwrite
      Src: /src/icu/source/test/iotest/filetst.c:811,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/filetst.c:817,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:825,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:810,1
    - Dst: fclose
      Src: /src/icu/source/test/iotest/filetst.c:813,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:823,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/filetst.c:832,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/filetst.c:828,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 833
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 833
    functionName: TestFgetsLineBuffering
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - fwrite
    - fclose
    - fopen
    - u_memset
    - u_fgets
    - u_strlen
    - log_err
    - UPRV_LENGTHOF
    - u_fclose
    - u_fopen
    linkageType: ''
    returnType: void
    signature: 'static void TestFgetsLineBuffering(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFileWriteRetval
      Src: /src/icu/source/test/iotest/filetst.c:1586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1587
      start: 1585
    functionDepth: 0
    functionLinenumber: 1585
    functionLinenumberEnd: 1587
    functionName: TestFileWriteRetvalNONE
    functionSourceFile: /src/icu/source/test/iotest/filetst.c
    functionUses: []
    functionsReached:
    - TestFileWriteRetval
    linkageType: ''
    returnType: void
    signature: 'static void TestFileWriteRetvalNONE(void) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/test/iotest/trnstst.c:34,1
    - Dst: utrans_open
      Src: /src/icu/source/test/iotest/trnstst.c:33,1
    - Dst: u_errorName
      Src: /src/icu/source/test/iotest/trnstst.c:36,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/trnstst.c:37,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/trnstst.c:111,1
    - Dst: u_fsettransliterator
      Src: /src/icu/source/test/iotest/trnstst.c:96,1
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/trnstst.c:26,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:36,1
    - Dst: u_fsettransliterator
      Src: /src/icu/source/test/iotest/trnstst.c:43,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/iotest/trnstst.c:44,1
    - Dst: u_errorName
      Src: /src/icu/source/test/iotest/trnstst.c:46,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/trnstst.c:47,1
    - Dst: u_fsettransliterator
      Src: /src/icu/source/test/iotest/trnstst.c:56,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:64,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:53,1
    - Dst: u_fsettransliterator
      Src: /src/icu/source/test/iotest/trnstst.c:68,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/trnstst.c:86,1
    - Dst: u_errorName
      Src: /src/icu/source/test/iotest/trnstst.c:105,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/trnstst.c:24,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/trnstst.c:42,1
    - Dst: u_errorName
      Src: /src/icu/source/test/iotest/trnstst.c:59,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:46,1
    - Dst: u_errorName
      Src: /src/icu/source/test/iotest/trnstst.c:71,1
    - Dst: u_fsettransliterator
      Src: /src/icu/source/test/iotest/trnstst.c:82,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:85,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:92,1
    - Dst: u_errorName
      Src: /src/icu/source/test/iotest/trnstst.c:99,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/trnstst.c:100,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/iotest/trnstst.c:83,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:29,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:59,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:71,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:76,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/trnstst.c:81,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/trnstst.c:95,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:99,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/trnstst.c:105,1
    - Dst: utrans_close
      Src: /src/icu/source/test/iotest/trnstst.c:110,1
    - Dst: u_errorName
      Src: /src/icu/source/test/iotest/trnstst.c:85,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 71
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 113
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 113
    functionName: TestTranslitOps
    functionSourceFile: /src/icu/source/test/iotest/trnstst.c
    functionUses: []
    functionsReached:
    - utrans_open
    - U_FAILURE
    - u_fsettransliterator
    - u_errorName
    - utrans_close
    - log_verbose
    - log_err
    - u_fclose
    - u_fopen
    linkageType: ''
    returnType: void
    signature: 'static void TestTranslitOps(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addTest
      Src: /src/icu/source/test/iotest/trnstst.c:312,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/trnstst.c:314,1
    - Dst: addTest
      Src: /src/icu/source/test/iotest/trnstst.c:315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode**
    constantsTouched: []
    func_position:
      end: 318
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 318
    functionName: addTranslitTest
    functionSourceFile: /src/icu/source/test/iotest/trnstst.c
    functionUses: []
    functionsReached:
    - addTest
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void addTranslitTest(TestNode** root) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:237,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/iotest/trnstst.c:251,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/trnstst.c:263,1
    - Dst: u_fsettransliterator
      Src: /src/icu/source/test/iotest/trnstst.c:250,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/trnstst.c:254,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/iotest/trnstst.c:266,1
    - Dst: u_errorName
      Src: /src/icu/source/test/iotest/trnstst.c:253,1
    - Dst: utrans_open
      Src: /src/icu/source/test/iotest/trnstst.c:265,1
    - Dst: u_errorName
      Src: /src/icu/source/test/iotest/trnstst.c:268,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/trnstst.c:269,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/trnstst.c:303,1
    - Dst: utrans_close
      Src: /src/icu/source/test/iotest/trnstst.c:286,1
    - Dst: utrans_open
      Src: /src/icu/source/test/iotest/trnstst.c:241,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/test/iotest/trnstst.c:234,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/iotest/trnstst.c:242,1
    - Dst: u_errorName
      Src: /src/icu/source/test/iotest/trnstst.c:244,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/trnstst.c:245,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/trnstst.c:249,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:253,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:268,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:277,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/trnstst.c:290,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/iotest/trnstst.c:297,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/trnstst.c:273,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/trnstst.c:232,1
    - Dst: u_fstropen
      Src: /src/icu/source/test/iotest/trnstst.c:234,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:244,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:260,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/trnstst.c:288,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/trnstst.c:292,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:299,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/trnstst.c:292,1
    - Dst: u_fsettransliterator
      Src: /src/icu/source/test/iotest/trnstst.c:274,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/iotest/trnstst.c:275,1
    - Dst: u_errorName
      Src: /src/icu/source/test/iotest/trnstst.c:277,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/trnstst.c:278,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:294,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/trnstst.c:294,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:284,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/trnstst.c:294,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 307
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 307
    functionName: TestTranslitStringOut
    functionSourceFile: /src/icu/source/test/iotest/trnstst.c
    functionUses: []
    functionsReached:
    - utrans_open
    - U_FAILURE
    - u_fstropen
    - u_fsettransliterator
    - utrans_close
    - u_strlen
    - log_verbose
    - log_err
    - u_fprintf
    - UPRV_LENGTHOF
    - u_strcmp
    - u_fclose
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void TestTranslitStringOut(void) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: u_fopen
      Src: /src/icu/source/test/iotest/trnstst.c:129,1
    - Dst: u_fsettransliterator
      Src: /src/icu/source/test/iotest/trnstst.c:145,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/trnstst.c:149,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:155,1
    - Dst: u_errorName
      Src: /src/icu/source/test/iotest/trnstst.c:148,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/iotest/trnstst.c:146,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/trnstst.c:168,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:172,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:179,1
    - Dst: utrans_close
      Src: /src/icu/source/test/iotest/trnstst.c:181,1
    - Dst: fclose
      Src: /src/icu/source/test/iotest/trnstst.c:217,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/trnstst.c:205,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/trnstst.c:197,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/iotest/trnstst.c:137,1
    - Dst: u_errorName
      Src: /src/icu/source/test/iotest/trnstst.c:139,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/trnstst.c:140,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/trnstst.c:144,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:148,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:191,1
    - Dst: fread
      Src: /src/icu/source/test/iotest/trnstst.c:195,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/trnstst.c:199,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/trnstst.c:203,1
    - Dst: u_strcmp
      Src: /src/icu/source/test/iotest/trnstst.c:208,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/trnstst.c:196,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/trnstst.c:127,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:132,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:139,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/trnstst.c:158,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/iotest/trnstst.c:161,1
    - Dst: utrans_open
      Src: /src/icu/source/test/iotest/trnstst.c:160,1
    - Dst: u_errorName
      Src: /src/icu/source/test/iotest/trnstst.c:163,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/trnstst.c:164,1
    - Dst: u_fprintf
      Src: /src/icu/source/test/iotest/trnstst.c:183,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/trnstst.c:187,1
    - Dst: utrans_open
      Src: /src/icu/source/test/iotest/trnstst.c:136,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:163,1
    - Dst: u_fsettransliterator
      Src: /src/icu/source/test/iotest/trnstst.c:169,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/iotest/trnstst.c:170,1
    - Dst: u_errorName
      Src: /src/icu/source/test/iotest/trnstst.c:172,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/trnstst.c:173,1
    - Dst: u_fclose
      Src: /src/icu/source/test/iotest/trnstst.c:185,1
    - Dst: fopen
      Src: /src/icu/source/test/iotest/trnstst.c:188,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:199,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/trnstst.c:203,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:205,1
    - Dst: log_verbose
      Src: /src/icu/source/test/iotest/trnstst.c:214,1
    - Dst: log_err
      Src: /src/icu/source/test/iotest/trnstst.c:210,1
    - Dst: u_strlen
      Src: /src/icu/source/test/iotest/trnstst.c:195,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 77
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 220
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 220
    functionName: TestTranslitFileOut
    functionSourceFile: /src/icu/source/test/iotest/trnstst.c
    functionUses: []
    functionsReached:
    - utrans_open
    - fclose
    - fopen
    - U_FAILURE
    - u_fsettransliterator
    - u_errorName
    - utrans_close
    - u_strlen
    - fread
    - log_verbose
    - log_err
    - u_fprintf
    - u_strcmp
    - u_fclose
    - u_fopen
    linkageType: ''
    returnType: void
    signature: 'static void TestTranslitFileOut(void) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/source/test/testmap/testmap.c:34,1
    - Dst: printf
      Src: /src/icu/source/test/testmap/testmap.c:37,1
    - Dst: u_errorName
      Src: /src/icu/source/test/testmap/testmap.c:34,1
    - Dst: ucnv_close
      Src: /src/icu/source/test/testmap/testmap.c:61,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/testmap/testmap.c:67,1
    - Dst: printf
      Src: /src/icu/source/test/testmap/testmap.c:73,1
    - Dst: printf
      Src: /src/icu/source/test/testmap/testmap.c:52,1
    - Dst: printf
      Src: /src/icu/source/test/testmap/testmap.c:66,1
    - Dst: udata_setCommonData
      Src: /src/icu/source/test/testmap/testmap.c:65,1
    - Dst: u_errorName
      Src: /src/icu/source/test/testmap/testmap.c:66,1
    - Dst: udata_setCommonData
      Src: /src/icu/source/test/testmap/testmap.c:33,1
    - Dst: udata_setCommonData
      Src: /src/icu/source/test/testmap/testmap.c:42,1
    - Dst: printf
      Src: /src/icu/source/test/testmap/testmap.c:43,1
    - Dst: u_errorName
      Src: /src/icu/source/test/testmap/testmap.c:43,1
    - Dst: U_FAILURE
      Src: /src/icu/source/test/testmap/testmap.c:44,1
    - Dst: u_errorName
      Src: /src/icu/source/test/testmap/testmap.c:53,1
    - Dst: printf
      Src: /src/icu/source/test/testmap/testmap.c:46,1
    - Dst: ucnv_open
      Src: /src/icu/source/test/testmap/testmap.c:51,1
    - Dst: printf
      Src: /src/icu/source/test/testmap/testmap.c:56,1
    - Dst: ucnv_getName
      Src: /src/icu/source/test/testmap/testmap.c:53,1
    - Dst: printf
      Src: /src/icu/source/test/testmap/testmap.c:69,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 75
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 75
    functionName: main
    functionSourceFile: /src/icu/source/test/testmap/testmap.c
    functionUses: []
    functionsReached:
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - u_errorName
    - udata_setCommonData
    - ucnv_getName
    - printf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/icu/source/tools/gencnval/gencnval.c:438,1
    - Dst: isspace
      Src: /src/icu/source/tools/gencnval/gencnval.c:468,1
    - Dst: allocString
      Src: /src/icu/source/tools/gencnval/gencnval.c:445,1
    - Dst: isspace
      Src: /src/icu/source/tools/gencnval/gencnval.c:457,1
    - Dst: addToKnownAliases
      Src: /src/icu/source/tools/gencnval/gencnval.c:484,1
    - Dst: isspace
      Src: /src/icu/source/tools/gencnval/gencnval.c:490,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:518,1
    - Dst: addAlias
      Src: /src/icu/source/tools/gencnval/gencnval.c:507,1
    - Dst: allocString
      Src: /src/icu/source/tools/gencnval/gencnval.c:481,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:519,1
    - Dst: addConverter
      Src: /src/icu/source/tools/gencnval/gencnval.c:448,1
    - Dst: addAlias
      Src: /src/icu/source/tools/gencnval/gencnval.c:478,1
    - Dst: addAlias
      Src: /src/icu/source/tools/gencnval/gencnval.c:482,1
    - Dst: isspace
      Src: /src/icu/source/tools/gencnval/gencnval.c:499,1
    - Dst: isspace
      Src: /src/icu/source/tools/gencnval/gencnval.c:510,1
    - Dst: addAlias
      Src: /src/icu/source/tools/gencnval/gencnval.c:522,1
    - Dst: getTagNumber
      Src: /src/icu/source/tools/gencnval/gencnval.c:506,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 83
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 525
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 525
    functionName: parseLine
    functionSourceFile: /src/icu/source/tools/gencnval/gencnval.c
    functionUses: []
    functionsReached:
    - addToKnownAliases
    - isspace
    - allocString
    - exit
    - addAlias
    - addConverter
    - getTagNumber
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void parseLine(const char *line) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/icu/source/tools/gencnval/gencnval.c:407,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 417
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 417
    functionName: chomp
    functionSourceFile: /src/icu/source/tools/gencnval/gencnval.c
    functionUses: []
    functionsReached:
    - isspace
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t chomp(char *line) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:591,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:597,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:598,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:592,1
    - Dst: strchr
      Src: /src/icu/source/tools/gencnval/gencnval.c:594,1
    - Dst: strchr
      Src: /src/icu/source/tools/gencnval/gencnval.c:601,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:603,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:604,1
    - Dst: strtok
      Src: /src/icu/source/tools/gencnval/gencnval.c:608,1
    - Dst: allocString
      Src: /src/icu/source/tools/gencnval/gencnval.c:613,1
    - Dst: strtok
      Src: /src/icu/source/tools/gencnval/gencnval.c:621,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - line
    - lineLen
    argTypes:
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 623
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 623
    functionName: addOfficialTaggedStandards
    functionSourceFile: /src/icu/source/tools/gencnval/gencnval.c
    functionUses: []
    functionsReached:
    - strtok
    - strchr
    - allocString
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void addOfficialTaggedStandards(char *line, int32_t lineLen) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:680,1
    - Dst: ucnv_compareNames
      Src: /src/icu/source/tools/gencnval/gencnval.c:713,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:702,1
    - Dst: uprv_strchr
      Src: /src/icu/source/tools/gencnval/gencnval.c:695,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:722,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:725,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:729,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:767,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:772,1
    - Dst: GET_ALIAS_NUM
      Src: /src/icu/source/tools/gencnval/gencnval.c:775,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:691,1
    - Dst: uprv_strchr
      Src: /src/icu/source/tools/gencnval/gencnval.c:700,1
    - Dst: GET_TAG_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:724,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:728,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:732,1
    - Dst: GET_TAG_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:771,1
    - Dst: GET_ALIAS_NUM
      Src: /src/icu/source/tools/gencnval/gencnval.c:777,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:674,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:671,1
    - Dst: strchr
      Src: /src/icu/source/tools/gencnval/gencnval.c:679,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:687,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:721,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:723,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:731,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:770,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:670,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:675,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:685,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:686,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:697,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/tools/gencnval/gencnval.c:721,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:713,1
    - Dst: GET_TAG_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:730,1
    - Dst: uprv_realloc
      Src: /src/icu/source/tools/gencnval/gencnval.c:761,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:773,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 84
    argCount: 4
    argNames:
    - alias
    - standard
    - converter
    - defaultName
    argTypes:
    - char*
    - uint16_t
    - uint16_t
    - UBool
    constantsTouched: []
    func_position:
      end: 785
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 785
    functionName: addAlias
    functionSourceFile: /src/icu/source/tools/gencnval/gencnval.c
    functionUses: []
    functionsReached:
    - uprv_realloc
    - uprv_strchr
    - strchr
    - exit
    - ucnv_compareNames
    - GET_TAG_STR
    - uprv_strcmp
    - GET_ALIAS_STR
    - fprintf
    - GET_ALIAS_NUM
    linkageType: ''
    returnType: uint16_t
    signature: 'static uint16_t addAlias(const char *alias, uint16_t standard, uint16_t
      converter, UBool defaultName) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: resolveAliasToConverter
      Src: /src/icu/source/tools/gencnval/gencnval.c:857,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:866,1
    - Dst: ucnv_compareNames
      Src: /src/icu/source/tools/gencnval/gencnval.c:866,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:862,1
    - Dst: resolveAliasToConverter
      Src: /src/icu/source/tools/gencnval/gencnval.c:865,1
    - Dst: printf
      Src: /src/icu/source/tools/gencnval/gencnval.c:874,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:875,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:877,1
    - Dst: printf
      Src: /src/icu/source/tools/gencnval/gencnval.c:879,1
    - Dst: puts
      Src: /src/icu/source/tools/gencnval/gencnval.c:881,1
    - Dst: printf
      Src: /src/icu/source/tools/gencnval/gencnval.c:887,1
    - Dst: printf
      Src: /src/icu/source/tools/gencnval/gencnval.c:892,1
    - Dst: puts
      Src: /src/icu/source/tools/gencnval/gencnval.c:894,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:890,1
    - Dst: uprv_strchr
      Src: /src/icu/source/tools/gencnval/gencnval.c:910,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:888,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:906,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:910,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 3
    argNames:
    - uniqueAliasArr
    - uniqueAliasToConverterArr
    - aliasOffset
    argTypes:
    - uint16_t*
    - uint16_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 916
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 916
    functionName: resolveAliases
    functionSourceFile: /src/icu/source/tools/gencnval/gencnval.c
    functionUses: []
    functionsReached:
    - puts
    - uprv_strchr
    - ucnv_compareNames
    - GET_ALIAS_STR
    - printf
    - resolveAliasToConverter
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t resolveAliases(uint16_t *uniqueAliasArr, uint16_t
      *uniqueAliasToConverterArr, uint16_t aliasOffset) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:944,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:947,1
    - Dst: GET_TAG_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:946,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:953,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:952,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - aliasArrLists
    - tag
    - converter
    - offset
    argTypes:
    - uint16_t*
    - uint32_t
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 958
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 958
    functionName: createOneAliasList
    functionSourceFile: /src/icu/source/tools/gencnval/gencnval.c
    functionUses: []
    functionsReached:
    - GET_TAG_STR
    - fprintf
    - exit
    - GET_ALIAS_STR
    linkageType: ''
    returnType: void
    signature: 'static void createOneAliasList(uint16_t *aliasArrLists, uint32_t tag,
      uint32_t converter, uint16_t offset) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uprv_malloc
      Src: /src/icu/source/tools/gencnval/gencnval.c:986,1
    - Dst: createOneAliasList
      Src: /src/icu/source/tools/gencnval/gencnval.c:998,1
    - Dst: udata_write32
      Src: /src/icu/source/tools/gencnval/gencnval.c:1015,1
    - Dst: udata_write16
      Src: /src/icu/source/tools/gencnval/gencnval.c:1027,1
    - Dst: udata_write32
      Src: /src/icu/source/tools/gencnval/gencnval.c:1016,1
    - Dst: udata_write32
      Src: /src/icu/source/tools/gencnval/gencnval.c:1019,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/gencnval/gencnval.c:1043,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/gencnval/gencnval.c:1048,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/gencnval/gencnval.c:1054,1
    - Dst: udata_writeString
      Src: /src/icu/source/tools/gencnval/gencnval.c:1060,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/gencnval/gencnval.c:1057,1
    - Dst: uprv_free
      Src: /src/icu/source/tools/gencnval/gencnval.c:1077,1
    - Dst: uprv_malloc
      Src: /src/icu/source/tools/gencnval/gencnval.c:987,1
    - Dst: udata_write32
      Src: /src/icu/source/tools/gencnval/gencnval.c:1007,1
    - Dst: udata_write32
      Src: /src/icu/source/tools/gencnval/gencnval.c:1014,1
    - Dst: uprv_free
      Src: /src/icu/source/tools/gencnval/gencnval.c:1076,1
    - Dst: createNormalizedAliasStrings
      Src: /src/icu/source/tools/gencnval/gencnval.c:1068,1
    - Dst: qsort
      Src: /src/icu/source/tools/gencnval/gencnval.c:989,1
    - Dst: resolveAliases
      Src: /src/icu/source/tools/gencnval/gencnval.c:990,1
    - Dst: udata_write32
      Src: /src/icu/source/tools/gencnval/gencnval.c:1004,1
    - Dst: udata_write32
      Src: /src/icu/source/tools/gencnval/gencnval.c:1012,1
    - Dst: udata_write32
      Src: /src/icu/source/tools/gencnval/gencnval.c:1013,1
    - Dst: udata_write32
      Src: /src/icu/source/tools/gencnval/gencnval.c:1017,1
    - Dst: udata_write32
      Src: /src/icu/source/tools/gencnval/gencnval.c:1018,1
    - Dst: udata_write32
      Src: /src/icu/source/tools/gencnval/gencnval.c:1021,1
    - Dst: udata_write16
      Src: /src/icu/source/tools/gencnval/gencnval.c:1036,1
    - Dst: udata_write16
      Src: /src/icu/source/tools/gencnval/gencnval.c:1051,1
    - Dst: uprv_malloc
      Src: /src/icu/source/tools/gencnval/gencnval.c:985,1
    - Dst: udata_write16
      Src: /src/icu/source/tools/gencnval/gencnval.c:1033,1
    - Dst: udata_write16
      Src: /src/icu/source/tools/gencnval/gencnval.c:1037,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/gencnval/gencnval.c:1040,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/gencnval/gencnval.c:1046,1
    - Dst: udata_writeString
      Src: /src/icu/source/tools/gencnval/gencnval.c:1063,1
    - Dst: createNormalizedAliasStrings
      Src: /src/icu/source/tools/gencnval/gencnval.c:1069,1
    - Dst: udata_writeString
      Src: /src/icu/source/tools/gencnval/gencnval.c:1072,1
    - Dst: uprv_free
      Src: /src/icu/source/tools/gencnval/gencnval.c:1073,1
    - Dst: uprv_free
      Src: /src/icu/source/tools/gencnval/gencnval.c:1078,1
    - Dst: uprv_malloc
      Src: /src/icu/source/tools/gencnval/gencnval.c:1067,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 86
    argCount: 1
    argNames:
    - out
    argTypes:
    - UNewDataMemory*
    constantsTouched: []
    func_position:
      end: 1079
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 1079
    functionName: writeAliasTable
    functionSourceFile: /src/icu/source/tools/gencnval/gencnval.c
    functionUses: []
    functionsReached:
    - uprv_malloc
    - udata_writeBlock
    - udata_writeString
    - qsort
    - udata_write32
    - createOneAliasList
    - uprv_free
    - udata_write16
    - resolveAliases
    - createNormalizedAliasStrings
    linkageType: ''
    returnType: void
    signature: 'static void writeAliasTable(UNewDataMemory *out) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/tools/gencnval/gencnval.c:234,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:238,1
    - Dst: u_getDataDirectory
      Src: /src/icu/source/tools/gencnval/gencnval.c:233,1
    - Dst: uprv_strchr
      Src: /src/icu/source/tools/gencnval/gencnval.c:275,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/tools/gencnval/gencnval.c:279,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:294,1
    - Dst: T_FileStream_open
      Src: /src/icu/source/tools/gencnval/gencnval.c:291,1
    - Dst: uprv_memset
      Src: /src/icu/source/tools/gencnval/gencnval.c:287,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:303,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/gencnval/gencnval.c:303,1
    - Dst: u_parseArgs
      Src: /src/icu/source/tools/gencnval/gencnval.c:234,1
    - Dst: uprv_memset
      Src: /src/icu/source/tools/gencnval/gencnval.c:284,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:293,1
    - Dst: uprv_memset
      Src: /src/icu/source/tools/gencnval/gencnval.c:288,1
    - Dst: writeAliasTable
      Src: /src/icu/source/tools/gencnval/gencnval.c:308,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:314,1
    - Dst: uprv_free
      Src: /src/icu/source/tools/gencnval/gencnval.c:321,1
    - Dst: uprv_memset
      Src: /src/icu/source/tools/gencnval/gencnval.c:285,1
    - Dst: parseFile
      Src: /src/icu/source/tools/gencnval/gencnval.c:296,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gencnval/gencnval.c:302,1
    - Dst: udata_finish
      Src: /src/icu/source/tools/gencnval/gencnval.c:311,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:313,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/gencnval/gencnval.c:313,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gencnval/gencnval.c:312,1
    - Dst: U_MAIN_INIT_ARGS
      Src: /src/icu/source/tools/gencnval/gencnval.c:230,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:243,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/tools/gencnval/gencnval.c:274,1
    - Dst: uprv_memset
      Src: /src/icu/source/tools/gencnval/gencnval.c:283,1
    - Dst: uprv_memset
      Src: /src/icu/source/tools/gencnval/gencnval.c:286,1
    - Dst: T_FileStream_close
      Src: /src/icu/source/tools/gencnval/gencnval.c:297,1
    - Dst: udata_create
      Src: /src/icu/source/tools/gencnval/gencnval.c:300,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:304,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 77
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 327
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 327
    functionName: main
    functionSourceFile: /src/icu/source/tools/gencnval/gencnval.c
    functionUses: []
    functionsReached:
    - parseFile
    - udata_finish
    - u_parseArgs
    - writeAliasTable
    - U_MAIN_INIT_ARGS
    - uprv_strchr
    - U_FAILURE
    - u_getDataDirectory
    - T_FileStream_open
    - T_FileStream_close
    - udata_create
    - exit
    - u_errorName
    - uprv_free
    - uprv_strcpy
    - UPRV_LENGTHOF
    - fprintf
    - uprv_memset
    linkageType: ''
    returnType: int
    signature: 'extern int main(int argc, char* argv[]) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:534,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:535,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/gencnval/gencnval.c:545,1
    - Dst: GET_TAG_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:544,1
    - Dst: uprv_strnicmp
      Src: /src/icu/source/tools/gencnval/gencnval.c:545,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:552,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:553,1
    - Dst: allocString
      Src: /src/icu/source/tools/gencnval/gencnval.c:557,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:560,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:562,1
    - Dst: strcmp
      Src: /src/icu/source/tools/gencnval/gencnval.c:564,1
    - Dst: GET_TAG_NUM
      Src: /src/icu/source/tools/gencnval/gencnval.c:570,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:565,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - tag
    - tagLen
    argTypes:
    - char*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 574
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 574
    functionName: getTagNumber
    functionSourceFile: /src/icu/source/tools/gencnval/gencnval.c
    functionUses: []
    functionsReached:
    - uprv_strlen
    - allocString
    - strcmp
    - exit
    - uprv_strnicmp
    - GET_TAG_NUM
    - GET_TAG_STR
    - fprintf
    linkageType: ''
    returnType: uint16_t
    signature: 'static uint16_t getTagNumber(const char *tag, uint16_t tagLen) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:652,1
    - Dst: GET_ALIAS_NUM
      Src: /src/icu/source/tools/gencnval/gencnval.c:657,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - alias
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 658
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 658
    functionName: addToKnownAliases
    functionSourceFile: /src/icu/source/tools/gencnval/gencnval.c
    functionUses: []
    functionsReached:
    - fprintf
    - exit
    - GET_ALIAS_NUM
    linkageType: ''
    returnType: uint16_t
    signature: 'static uint16_t addToKnownAliases(const char *alias) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:791,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:796,1
    - Dst: ucnv_compareNames
      Src: /src/icu/source/tools/gencnval/gencnval.c:796,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:797,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:792,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:798,1
    - Dst: GET_ALIAS_NUM
      Src: /src/icu/source/tools/gencnval/gencnval.c:803,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - converter
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 807
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 807
    functionName: addConverter
    functionSourceFile: /src/icu/source/tools/gencnval/gencnval.c
    functionUses: []
    functionsReached:
    - exit
    - ucnv_compareNames
    - GET_ALIAS_STR
    - fprintf
    - GET_ALIAS_NUM
    linkageType: ''
    returnType: uint16_t
    signature: 'static uint16_t addConverter(const char *converter) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memcpy
      Src: /src/icu/source/tools/gencnval/gencnval.c:963,1
    - Dst: uprv_memset
      Src: /src/icu/source/tools/gencnval/gencnval.c:971,1
    - Dst: ucnv_io_stripForCompare
      Src: /src/icu/source/tools/gencnval/gencnval.c:968,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/gencnval/gencnval.c:964,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/gencnval/gencnval.c:969,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - normalizedStrings
    - origStringBlock
    - stringBlockLength
    argTypes:
    - char*
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 978
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 978
    functionName: createNormalizedAliasStrings
    functionSourceFile: /src/icu/source/tools/gencnval/gencnval.c
    functionUses: []
    functionsReached:
    - uprv_memcpy
    - uprv_strlen
    - ucnv_io_stripForCompare
    - uprv_memset
    linkageType: ''
    returnType: void
    signature: 'static void createNormalizedAliasStrings(char *normalizedStrings,
      const char *origStringBlock, int32_t stringBlockLength) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/gencnval/gencnval.c:1087,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/tools/gencnval/gencnval.c:1104,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:1099,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:1098,1
    - Dst: uprv_isInvariantString
      Src: /src/icu/source/tools/gencnval/gencnval.c:1111,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:1112,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:1113,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - block
    - s
    - length
    argTypes:
    - StringBlock*
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1118
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1118
    functionName: allocString
    functionSourceFile: /src/icu/source/tools/gencnval/gencnval.c
    functionUses: []
    functionsReached:
    - uprv_memcpy
    - uprv_strlen
    - exit
    - uprv_isInvariantString
    - fprintf
    linkageType: ''
    returnType: char*
    signature: 'static char *allocString(StringBlock *block, const char *s, int32_t
      length) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_compareNames
      Src: /src/icu/source/tools/gencnval/gencnval.c:1123,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/gencnval/gencnval.c:1126,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:1126,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:1123,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:1123,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/gencnval/gencnval.c:1126,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:1126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - alias1
    - alias2
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 1129
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1129
    functionName: compareAliases
    functionSourceFile: /src/icu/source/tools/gencnval/gencnval.c
    functionUses: []
    functionsReached:
    - uprv_strlen
    - ucnv_compareNames
    - GET_ALIAS_STR
    linkageType: ''
    returnType: int
    signature: 'static int compareAliases(const void *alias1, const void *alias2) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getTagNumber
      Src: /src/icu/source/tools/gencnval/gencnval.c:340,1
    - Dst: T_FileStream_readLine
      Src: /src/icu/source/tools/gencnval/gencnval.c:349,1
    - Dst: chomp
      Src: /src/icu/source/tools/gencnval/gencnval.c:350,1
    - Dst: getTagNumber
      Src: /src/icu/source/tools/gencnval/gencnval.c:341,1
    - Dst: allocString
      Src: /src/icu/source/tools/gencnval/gencnval.c:342,1
    - Dst: isspace
      Src: /src/icu/source/tools/gencnval/gencnval.c:351,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/tools/gencnval/gencnval.c:352,1
    - Dst: isspace
      Src: /src/icu/source/tools/gencnval/gencnval.c:362,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:363,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:364,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:367,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:378,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/tools/gencnval/gencnval.c:383,1
    - Dst: addOfficialTaggedStandards
      Src: /src/icu/source/tools/gencnval/gencnval.c:370,1
    - Dst: parseLine
      Src: /src/icu/source/tools/gencnval/gencnval.c:374,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:377,1
    - Dst: exit
      Src: /src/icu/source/tools/gencnval/gencnval.c:368,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 1
    argNames:
    - in
    argTypes:
    - FileStream*
    constantsTouched: []
    func_position:
      end: 392
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 392
    functionName: parseFile
    functionSourceFile: /src/icu/source/tools/gencnval/gencnval.c
    functionUses: []
    functionsReached:
    - addOfficialTaggedStandards
    - isspace
    - allocString
    - T_FileStream_readLine
    - chomp
    - exit
    - getTagNumber
    - uprv_strcpy
    - fprintf
    - parseLine
    linkageType: ''
    returnType: void
    signature: 'static void parseFile(FileStream *in) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/gencnval/gencnval.c:841,1
    - Dst: GET_ALIAS_STR
      Src: /src/icu/source/tools/gencnval/gencnval.c:843,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - alias
    - tagNum
    - converterNum
    argTypes:
    - uint16_t
    - uint16_t*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 845
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 845
    functionName: resolveAliasToConverter
    functionSourceFile: /src/icu/source/tools/gencnval/gencnval.c
    functionUses: []
    functionsReached:
    - fprintf
    - GET_ALIAS_STR
    linkageType: ''
    returnType: void
    signature: 'static void resolveAliasToConverter(uint16_t alias, uint16_t *tagNum,
      uint16_t *converterNum) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: U_MAIN_INIT_ARGS
      Src: /src/icu/source/tools/gencmn/gencmn.c:54,1
    - Dst: u_parseArgs
      Src: /src/icu/source/tools/gencmn/gencmn.c:57,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencmn/gencmn.c:61,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/tools/gencmn/gencmn.c:57,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencmn/gencmn.c:75,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencmn/gencmn.c:78,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencmn/gencmn.c:81,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gencmn/gencmn.c:88,1
    - Dst: uprv_strtoul
      Src: /src/icu/source/tools/gencmn/gencmn.c:105,1
    - Dst: createCommonDataFile
      Src: /src/icu/source/tools/gencmn/gencmn.c:107,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 117
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 117
    functionName: main
    functionSourceFile: /src/icu/source/tools/gencmn/gencmn.c
    functionUses: []
    functionsReached:
    - u_parseArgs
    - createCommonDataFile
    - uprv_strtoul
    - U_MAIN_INIT_ARGS
    - UPRV_LENGTHOF
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'extern int main(int argc, char* argv[]) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: U_MAIN_INIT_ARGS
      Src: /src/icu/source/tools/genccode/genccode.c:99,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/tools/genccode/genccode.c:104,1
    - Dst: u_parseArgs
      Src: /src/icu/source/tools/genccode/genccode.c:104,1
    - Dst: fprintf
      Src: /src/icu/source/tools/genccode/genccode.c:113,1
    - Dst: fprintf
      Src: /src/icu/source/tools/genccode/genccode.c:108,1
    - Dst: fprintf
      Src: /src/icu/source/tools/genccode/genccode.c:126,1
    - Dst: fprintf
      Src: /src/icu/source/tools/genccode/genccode.c:131,1
    - Dst: printAssemblyHeadersToStdErr
      Src: /src/icu/source/tools/genccode/genccode.c:135,1
    - Dst: checkAssemblyHeaderName
      Src: /src/icu/source/tools/genccode/genccode.c:145,1
    - Dst: fprintf
      Src: /src/icu/source/tools/genccode/genccode.c:146,1
    - Dst: getLongPathname
      Src: /src/icu/source/tools/genccode/genccode.c:168,1
    - Dst: writeObjectCode
      Src: /src/icu/source/tools/genccode/genccode.c:190,1
    - Dst: fprintf
      Src: /src/icu/source/tools/genccode/genccode.c:170,1
    - Dst: writeCCode
      Src: /src/icu/source/tools/genccode/genccode.c:175,1
    - Dst: writeAssemblyCode
      Src: /src/icu/source/tools/genccode/genccode.c:182,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 204
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 204
    functionName: main
    functionSourceFile: /src/icu/source/tools/genccode/genccode.c
    functionUses: []
    functionsReached:
    - u_parseArgs
    - U_MAIN_INIT_ARGS
    - writeCCode
    - checkAssemblyHeaderName
    - printAssemblyHeadersToStdErr
    - getLongPathname
    - UPRV_LENGTHOF
    - writeObjectCode
    - fprintf
    - writeAssemblyCode
    linkageType: ''
    returnType: int
    signature: 'extern int main(int argc, char* argv[]) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - '[kOptObject]'
    - .doesOccur
    argTypes:
    - options
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: if
    functionSourceFile: /src/icu/source/tools/genccode/genccode.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: else
    signature: 'else if(options[kOptObject].doesOccur) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: struct
    functionSourceFile: /src/icu/source/tools/toolutil/package.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN struct Item '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: setAutoPrefixWithType
    functionSourceFile: /src/icu/source/tools/toolutil/package.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setAutoPrefixWithType() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: setAutoPrefix
    functionSourceFile: /src/icu/source/tools/toolutil/package.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setAutoPrefix() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CollationInfo
      Src: /src/icu/source/tools/toolutil/collationinfo.h:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: CollationInfo
    functionSourceFile: /src/icu/source/tools/toolutil/collationinfo.h
    functionUses: []
    functionsReached:
    - CollationInfo
    linkageType: ''
    returnType: class
    signature: 'class U_TOOLUTIL_API CollationInfo /* all static */ '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: IcuToolErrorCode
    functionSourceFile: /src/icu/source/tools/toolutil/toolutil.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_TOOLUTIL_API
    signature: 'U_TOOLUTIL_API IcuToolErrorCode : public ErrorCode '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: PropertyNames
    functionSourceFile: /src/icu/source/tools/toolutil/ppucd.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_TOOLUTIL_API
    signature: 'U_TOOLUTIL_API PropertyNames '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UniProps
      Src: /src/icu/source/tools/toolutil/ppucd.h:43,1
    - Dst: UniProps
      Src: /src/icu/source/tools/toolutil/ppucd.h:44,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 60
    functionName: UniProps
    functionSourceFile: /src/icu/source/tools/toolutil/ppucd.h
    functionUses: []
    functionsReached:
    - UniProps
    linkageType: ''
    returnType: struct U_TOOLUTIL_API
    signature: 'struct U_TOOLUTIL_API UniProps '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - prop
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: getIntProp
    functionSourceFile: /src/icu/source/tools/toolutil/ppucd.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getIntProp(int32_t prop) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PreparsedUCD
      Src: /src/icu/source/tools/toolutil/ppucd.h:102,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 176
    functionName: U_TOOLUTIL_API
    functionSourceFile: /src/icu/source/tools/toolutil/ppucd.h
    functionUses: []
    functionsReached:
    - PreparsedUCD
    linkageType: ''
    returnType: class
    signature: 'class U_TOOLUTIL_API PreparsedUCD '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: getLineNumber
    functionSourceFile: /src/icu/source/tools/toolutil/ppucd.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getLineNumber() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: getUnicodeVersion
    functionSourceFile: /src/icu/source/tools/toolutil/ppucd.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UVersionInfo
    signature: 'const UVersionInfo & getUnicodeVersion() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: lineHasPropertyValues
    functionSourceFile: /src/icu/source/tools/toolutil/ppucd.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool lineHasPropertyValues() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - pn
    argTypes:
    - PropertyNames*
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: setPropertyNames
    functionSourceFile: /src/icu/source/tools/toolutil/ppucd.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setPropertyNames(const PropertyNames *pn) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - key
    - limit
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 40
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 40
    functionName: incKey
    functionSourceFile: /src/icu/source/tools/gentest/genres32.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void incKey(char *key, char *limit) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strcpy
      Src: /src/icu/source/tools/gentest/genres32.c:57,1
    - Dst: uprv_strcat
      Src: /src/icu/source/tools/gentest/genres32.c:61,1
    - Dst: strlen
      Src: /src/icu/source/tools/gentest/genres32.c:58,1
    - Dst: uprv_strcat
      Src: /src/icu/source/tools/gentest/genres32.c:59,1
    - Dst: fopen
      Src: /src/icu/source/tools/gentest/genres32.c:62,1
    - Dst: puts
      Src: /src/icu/source/tools/gentest/genres32.c:64,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/genres32.c:66,1
    - Dst: fputs
      Src: /src/icu/source/tools/gentest/genres32.c:76,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/genres32.c:87,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/genres32.c:90,1
    - Dst: incKey
      Src: /src/icu/source/tools/gentest/genres32.c:93,1
    - Dst: fputs
      Src: /src/icu/source/tools/gentest/genres32.c:97,1
    - Dst: fclose
      Src: /src/icu/source/tools/gentest/genres32.c:101,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - prog
    - path
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 103
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 103
    functionName: genres32
    functionSourceFile: /src/icu/source/tools/gentest/genres32.c
    functionUses: []
    functionsReached:
    - fclose
    - puts
    - uprv_strcat
    - fopen
    - incKey
    - fputs
    - uprv_strcpy
    - strlen
    - fprintf
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC int genres32(const char *prog, const char *path) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: u_getDataDirectory
      Src: /src/icu/source/tools/gentest/gentest.c:68,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:78,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/tools/gentest/gentest.c:69,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:73,1
    - Dst: u_parseArgs
      Src: /src/icu/source/tools/gentest/gentest.c:69,1
    - Dst: outputJavaStuff
      Src: /src/icu/source/tools/gentest/gentest.c:91,1
    - Dst: genres32
      Src: /src/icu/source/tools/gentest/gentest.c:93,1
    - Dst: createData
      Src: /src/icu/source/tools/gentest/gentest.c:96,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gentest/gentest.c:98,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 99
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 99
    functionName: main
    functionSourceFile: /src/icu/source/tools/gentest/gentest.c
    functionUses: []
    functionsReached:
    - u_parseArgs
    - U_FAILURE
    - u_getDataDirectory
    - createData
    - genres32
    - outputJavaStuff
    - UPRV_LENGTHOF
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'extern int main(int argc, char* argv[]) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strcat
      Src: /src/icu/source/tools/gentest/gentest.c:152,1
    - Dst: uprv_strcat
      Src: /src/icu/source/tools/gentest/gentest.c:150,1
    - Dst: fopen
      Src: /src/icu/source/tools/gentest/gentest.c:153,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:168,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:176,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:165,1
    - Dst: udbg_enumName
      Src: /src/icu/source/tools/gentest/gentest.c:187,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:189,1
    - Dst: udbg_enumCount
      Src: /src/icu/source/tools/gentest/gentest.c:195,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/tools/gentest/gentest.c:147,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:169,1
    - Dst: udbg_enumName
      Src: /src/icu/source/tools/gentest/gentest.c:176,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:172,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:180,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:183,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:197,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:199,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:207,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:209,1
    - Dst: udbg_enumName
      Src: /src/icu/source/tools/gentest/gentest.c:215,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:217,1
    - Dst: strlen
      Src: /src/icu/source/tools/gentest/gentest.c:149,1
    - Dst: udbg_enumName
      Src: /src/icu/source/tools/gentest/gentest.c:172,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:174,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:178,1
    - Dst: udbg_enumName
      Src: /src/icu/source/tools/gentest/gentest.c:183,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:184,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:193,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:196,1
    - Dst: udbg_enumName
      Src: /src/icu/source/tools/gentest/gentest.c:207,1
    - Dst: udbg_enumName
      Src: /src/icu/source/tools/gentest/gentest.c:209,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:219,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:222,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:221,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:215,1
    - Dst: fclose
      Src: /src/icu/source/tools/gentest/gentest.c:224,1
    - Dst: printf
      Src: /src/icu/source/tools/gentest/gentest.c:155,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:157,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:162,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:163,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:164,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:170,1
    - Dst: udbg_enumCount
      Src: /src/icu/source/tools/gentest/gentest.c:182,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:186,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:191,1
    - Dst: udbg_enumName
      Src: /src/icu/source/tools/gentest/gentest.c:196,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 81
    argCount: 2
    argNames:
    - progname
    - outputDir
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 228
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 228
    functionName: outputJavaStuff
    functionSourceFile: /src/icu/source/tools/gentest/gentest.c
    functionUses: []
    functionsReached:
    - udbg_enumName
    - udbg_enumCount
    - fclose
    - uprv_strcat
    - fopen
    - fprintf
    - uprv_strcpy
    - strlen
    - printf
    linkageType: ''
    returnType: int
    signature: 'static int outputJavaStuff(const char* progname, const char *outputDir) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: udata_create
      Src: /src/icu/source/tools/gentest/gentest.c:111,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:114,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gentest/gentest.c:113,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/gentest/gentest.c:114,1
    - Dst: exit
      Src: /src/icu/source/tools/gentest/gentest.c:115,1
    - Dst: udata_write16
      Src: /src/icu/source/tools/gentest/gentest.c:120,1
    - Dst: udata_writeString
      Src: /src/icu/source/tools/gentest/gentest.c:121,1
    - Dst: udata_finish
      Src: /src/icu/source/tools/gentest/gentest.c:124,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gentest/gentest.c:125,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:126,1
    - Dst: exit
      Src: /src/icu/source/tools/gentest/gentest.c:135,1
    - Dst: exit
      Src: /src/icu/source/tools/gentest/gentest.c:127,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gentest/gentest.c:133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - outputDirectory
    - errorCode
    argTypes:
    - char*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 137
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 137
    functionName: createData
    functionSourceFile: /src/icu/source/tools/gentest/gentest.c
    functionUses: []
    functionsReached:
    - udata_writeString
    - U_FAILURE
    - udata_create
    - u_errorName
    - exit
    - udata_write16
    - fprintf
    - udata_finish
    linkageType: ''
    returnType: void
    signature: 'static void createData(const char* outputDirectory, UErrorCode *errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/tools/icuinfo/testplug.c:162,1
    - Dst: fprintf
      Src: /src/icu/source/tools/icuinfo/testplug.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - context
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: myMemAlloc
    functionSourceFile: /src/icu/source/tools/icuinfo/testplug.c
    functionUses: []
    functionsReached:
    - malloc
    - fprintf
    linkageType: ''
    returnType: void*
    signature: 'static void * U_CALLCONV myMemAlloc(const void *context, size_t size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/icu/source/tools/icuinfo/testplug.c:183,1
    - Dst: fprintf
      Src: /src/icu/source/tools/icuinfo/testplug.c:185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - context
    - mem
    - size
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 187
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 187
    functionName: myMemRealloc
    functionSourceFile: /src/icu/source/tools/icuinfo/testplug.c
    functionUses: []
    functionsReached:
    - realloc
    - fprintf
    linkageType: ''
    returnType: void*
    signature: 'static void * U_CALLCONV myMemRealloc(const void *context, void *mem,
      size_t size) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/icuinfo/testplug.c:55,1
    - Dst: uplug_setPlugLevel
      Src: /src/icu/source/tools/icuinfo/testplug.c:59,1
    - Dst: uplug_setPlugName
      Src: /src/icu/source/tools/icuinfo/testplug.c:58,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/icuinfo/testplug.c:55,1
    - Dst: udbg_enumName
      Src: /src/icu/source/tools/icuinfo/testplug.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - data
    - reason
    - status
    argTypes:
    - UPlugData*
    - UPlugReason
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: myPlugin
    functionSourceFile: /src/icu/source/tools/icuinfo/testplug.c
    functionUses: []
    functionsReached:
    - udbg_enumName
    - uplug_setPlugName
    - u_errorName
    - uplug_setPlugLevel
    - fprintf
    linkageType: ''
    returnType: U_EXPORT2
    signature: 'U_EXPORT2 myPlugin ( UPlugData *data, UPlugReason reason, UErrorCode
      *status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/icuinfo/testplug.c:104,1
    - Dst: udbg_enumName
      Src: /src/icu/source/tools/icuinfo/testplug.c:104,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/icuinfo/testplug.c:104,1
    - Dst: uplug_setPlugName
      Src: /src/icu/source/tools/icuinfo/testplug.c:107,1
    - Dst: uplug_setPlugLevel
      Src: /src/icu/source/tools/icuinfo/testplug.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - data
    - reason
    - status
    argTypes:
    - UPlugData*
    - UPlugReason
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 112
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 112
    functionName: myPluginFailToken
    functionSourceFile: /src/icu/source/tools/icuinfo/testplug.c
    functionUses: []
    functionsReached:
    - udbg_enumName
    - uplug_setPlugName
    - u_errorName
    - uplug_setPlugLevel
    - fprintf
    linkageType: ''
    returnType: U_EXPORT2
    signature: 'U_EXPORT2 myPluginFailToken ( UPlugData *data, UPlugReason reason,
      UErrorCode *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/icuinfo/testplug.c:89,1
    - Dst: udbg_enumName
      Src: /src/icu/source/tools/icuinfo/testplug.c:89,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/icuinfo/testplug.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - data
    - reason
    - status
    argTypes:
    - UPlugData*
    - UPlugReason
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: myPluginFailQuery
    functionSourceFile: /src/icu/source/tools/icuinfo/testplug.c
    functionUses: []
    functionsReached:
    - udbg_enumName
    - fprintf
    - u_errorName
    linkageType: ''
    returnType: U_EXPORT2
    signature: 'U_EXPORT2 myPluginFailQuery ( UPlugData *data, UPlugReason reason,
      UErrorCode *status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/icuinfo/testplug.c:71,1
    - Dst: uplug_setPlugName
      Src: /src/icu/source/tools/icuinfo/testplug.c:74,1
    - Dst: uplug_setPlugLevel
      Src: /src/icu/source/tools/icuinfo/testplug.c:75,1
    - Dst: udbg_enumName
      Src: /src/icu/source/tools/icuinfo/testplug.c:71,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/icuinfo/testplug.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - data
    - reason
    - status
    argTypes:
    - UPlugData*
    - UPlugReason
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: myPluginLow
    functionSourceFile: /src/icu/source/tools/icuinfo/testplug.c
    functionUses: []
    functionsReached:
    - udbg_enumName
    - uplug_setPlugName
    - u_errorName
    - uplug_setPlugLevel
    - fprintf
    linkageType: ''
    returnType: U_EXPORT2
    signature: 'U_EXPORT2 myPluginLow ( UPlugData *data, UPlugReason reason, UErrorCode
      *status) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/icuinfo/testplug.c:124,1
    - Dst: uplug_setPlugName
      Src: /src/icu/source/tools/icuinfo/testplug.c:127,1
    - Dst: uplug_setPlugLevel
      Src: /src/icu/source/tools/icuinfo/testplug.c:128,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/icuinfo/testplug.c:124,1
    - Dst: udbg_enumName
      Src: /src/icu/source/tools/icuinfo/testplug.c:124,1
    - Dst: uprv_malloc
      Src: /src/icu/source/tools/icuinfo/testplug.c:130,1
    - Dst: uplug_setContext
      Src: /src/icu/source/tools/icuinfo/testplug.c:132,1
    - Dst: fprintf
      Src: /src/icu/source/tools/icuinfo/testplug.c:133,1
    - Dst: uplug_getContext
      Src: /src/icu/source/tools/icuinfo/testplug.c:135,1
    - Dst: uprv_free
      Src: /src/icu/source/tools/icuinfo/testplug.c:137,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - data
    - reason
    - status
    argTypes:
    - UPlugData*
    - UPlugReason
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 142
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 142
    functionName: myPluginBad
    functionSourceFile: /src/icu/source/tools/icuinfo/testplug.c
    functionUses: []
    functionsReached:
    - uprv_malloc
    - uplug_setContext
    - udbg_enumName
    - uplug_getContext
    - uplug_setPlugName
    - u_errorName
    - uprv_free
    - uplug_setPlugLevel
    - fprintf
    linkageType: ''
    returnType: U_EXPORT2
    signature: 'U_EXPORT2 myPluginBad ( UPlugData *data, UPlugReason reason, UErrorCode
      *status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/icuinfo/testplug.c:149,1
    - Dst: uplug_setPlugLevel
      Src: /src/icu/source/tools/icuinfo/testplug.c:153,1
    - Dst: udbg_enumName
      Src: /src/icu/source/tools/icuinfo/testplug.c:149,1
    - Dst: uplug_setPlugName
      Src: /src/icu/source/tools/icuinfo/testplug.c:152,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/icuinfo/testplug.c:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - data
    - reason
    - status
    argTypes:
    - UPlugData*
    - UPlugReason
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 157
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 157
    functionName: myPluginHigh
    functionSourceFile: /src/icu/source/tools/icuinfo/testplug.c
    functionUses: []
    functionsReached:
    - udbg_enumName
    - uplug_setPlugName
    - u_errorName
    - uplug_setPlugLevel
    - fprintf
    linkageType: ''
    returnType: U_EXPORT2
    signature: 'U_EXPORT2 myPluginHigh ( UPlugData *data, UPlugReason reason, UErrorCode
      *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/icu/source/tools/icuinfo/testplug.c:171,1
    - Dst: fprintf
      Src: /src/icu/source/tools/icuinfo/testplug.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - context
    - mem
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: myMemFree
    functionSourceFile: /src/icu/source/tools/icuinfo/testplug.c
    functionUses: []
    functionsReached:
    - free
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV myMemFree(const void *context, void *mem) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/icuinfo/testplug.c:194,1
    - Dst: uplug_setPlugName
      Src: /src/icu/source/tools/icuinfo/testplug.c:198,1
    - Dst: uplug_setPlugLevel
      Src: /src/icu/source/tools/icuinfo/testplug.c:197,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/icuinfo/testplug.c:194,1
    - Dst: udbg_enumName
      Src: /src/icu/source/tools/icuinfo/testplug.c:194,1
    - Dst: u_setMemoryFunctions
      Src: /src/icu/source/tools/icuinfo/testplug.c:200,1
    - Dst: uplug_getContext
      Src: /src/icu/source/tools/icuinfo/testplug.c:200,1
    - Dst: fprintf
      Src: /src/icu/source/tools/icuinfo/testplug.c:201,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/icuinfo/testplug.c:201,1
    - Dst: fprintf
      Src: /src/icu/source/tools/icuinfo/testplug.c:203,1
    - Dst: uplug_setPlugNoUnload
      Src: /src/icu/source/tools/icuinfo/testplug.c:204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - data
    - reason
    - status
    argTypes:
    - UPlugData*
    - UPlugReason
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 208
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 208
    functionName: debugMemoryPlugin
    functionSourceFile: /src/icu/source/tools/icuinfo/testplug.c
    functionUses: []
    functionsReached:
    - u_setMemoryFunctions
    - uplug_getContext
    - udbg_enumName
    - uplug_setPlugName
    - u_errorName
    - uplug_setPlugLevel
    - uplug_setPlugNoUnload
    - fprintf
    linkageType: ''
    returnType: U_EXPORT2
    signature: 'U_EXPORT2 debugMemoryPlugin ( UPlugData *data, UPlugReason reason,
      UErrorCode *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 59
    functionName: NewConverter
    functionSourceFile: /src/icu/source/tools/makeconv/makeconv.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_CDECL_BEGIN
    signature: 'U_CDECL_BEGIN struct NewConverter '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uprv_malloc
      Src: /src/icu/source/tools/makeconv/gencnvex.c:76,1
    - Dst: exit
      Src: /src/icu/source/tools/makeconv/gencnvex.c:79,1
    - Dst: printf
      Src: /src/icu/source/tools/makeconv/gencnvex.c:78,1
    - Dst: uprv_memset
      Src: /src/icu/source/tools/makeconv/gencnvex.c:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - ucm
    argTypes:
    - UCMFile*
    constantsTouched: []
    func_position:
      end: 90
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 90
    functionName: CnvExtOpen
    functionSourceFile: /src/icu/source/tools/makeconv/gencnvex.c
    functionUses: []
    functionsReached:
    - uprv_malloc
    - printf
    - exit
    - uprv_memset
    linkageType: ''
    returnType: NewConverter*
    signature: 'NewConverter *CnvExtOpen(UCMFile *ucm) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 3
    argNames:
    - cnvData
    - bytes
    - length
    argTypes:
    - NewConverter*
    - uint8_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: CnvExtIsValid
    functionSourceFile: /src/icu/source/tools/makeconv/gencnvex.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool CnvExtIsValid(NewConverter *cnvData, const uint8_t *bytes,
      int32_t length) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - table
    argTypes:
    - UCMTable*
    constantsTouched: []
    func_position:
      end: 329
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 329
    functionName: reduceToUMappings
    functionSourceFile: /src/icu/source/tools/makeconv/gencnvex.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t reduceToUMappings(UCMTable *table) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduceToUMappings
      Src: /src/icu/source/tools/makeconv/gencnvex.c:556,1
    - Dst: utm_open
      Src: /src/icu/source/tools/makeconv/gencnvex.c:558,1
    - Dst: utm_open
      Src: /src/icu/source/tools/makeconv/gencnvex.c:559,1
    - Dst: generateToUTable
      Src: /src/icu/source/tools/makeconv/gencnvex.c:561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - extData
    - table
    argTypes:
    - CnvExtData*
    - UCMTable*
    constantsTouched: []
    func_position:
      end: 562
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 562
    functionName: makeToUTable
    functionSourceFile: /src/icu/source/tools/makeconv/gencnvex.c
    functionUses: []
    functionsReached:
    - reduceToUMappings
    - utm_open
    - generateToUTable
    linkageType: ''
    returnType: UBool
    signature: 'static UBool makeToUTable(CnvExtData *extData, UCMTable *table) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UCM_GET_CODE_POINTS
      Src: /src/icu/source/tools/makeconv/gencnvex.c:622,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/tools/makeconv/gencnvex.c:626,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 1
    argNames:
    - table
    argTypes:
    - UCMTable*
    constantsTouched: []
    func_position:
      end: 636
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 636
    functionName: prepareFromUMappings
    functionSourceFile: /src/icu/source/tools/makeconv/gencnvex.c
    functionUses: []
    functionsReached:
    - UCM_GET_CODE_POINTS
    - U16_APPEND_UNSAFE
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t prepareFromUMappings(UCMTable *table) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/tools/makeconv/gencnvex.c:855,1
    - Dst: fprintf
      Src: /src/icu/source/tools/makeconv/gencnvex.c:878,1
    - Dst: exit
      Src: /src/icu/source/tools/makeconv/gencnvex.c:857,1
    - Dst: fprintf
      Src: /src/icu/source/tools/makeconv/gencnvex.c:856,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/tools/makeconv/gencnvex.c:877,1
    - Dst: exit
      Src: /src/icu/source/tools/makeconv/gencnvex.c:879,1
    - Dst: uprv_memset
      Src: /src/icu/source/tools/makeconv/gencnvex.c:913,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/tools/makeconv/gencnvex.c:921,1
    - Dst: fprintf
      Src: /src/icu/source/tools/makeconv/gencnvex.c:922,1
    - Dst: exit
      Src: /src/icu/source/tools/makeconv/gencnvex.c:923,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 94
    argCount: 3
    argNames:
    - extData
    - c
    - value
    argTypes:
    - CnvExtData*
    - UChar32
    - uint32_t
    constantsTouched: []
    func_position:
      end: 930
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 930
    functionName: addFromUTrieEntry
    functionSourceFile: /src/icu/source/tools/makeconv/gencnvex.c
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - fprintf
    - exit
    - uprv_memset
    linkageType: ''
    returnType: void
    signature: 'static void addFromUTrieEntry(CnvExtData *extData, UChar32 c, uint32_t
      value) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UCM_GET_CODE_POINTS
      Src: /src/icu/source/tools/makeconv/gencnvex.c:956,1
    - Dst: UCM_GET_CODE_POINTS
      Src: /src/icu/source/tools/makeconv/gencnvex.c:965,1
    - Dst: ucm_printMapping
      Src: /src/icu/source/tools/makeconv/gencnvex.c:984,1
    - Dst: UCM_GET_CODE_POINTS
      Src: /src/icu/source/tools/makeconv/gencnvex.c:976,1
    - Dst: fprintf
      Src: /src/icu/source/tools/makeconv/gencnvex.c:983,1
    - Dst: ucm_printMapping
      Src: /src/icu/source/tools/makeconv/gencnvex.c:985,1
    - Dst: getFromUBytesValue
      Src: /src/icu/source/tools/makeconv/gencnvex.c:989,1
    - Dst: addFromUTrieEntry
      Src: /src/icu/source/tools/makeconv/gencnvex.c:994,1
    - Dst: addFromUTrieEntry
      Src: /src/icu/source/tools/makeconv/gencnvex.c:997,1
    - Dst: utm_countItems
      Src: /src/icu/source/tools/makeconv/gencnvex.c:997,1
    - Dst: generateFromUTable
      Src: /src/icu/source/tools/makeconv/gencnvex.c:1000,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 3
    argNames:
    - extData
    - table
    - mapLength
    argTypes:
    - CnvExtData*
    - UCMTable*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1006
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 1006
    functionName: generateFromUTrie
    functionSourceFile: /src/icu/source/tools/makeconv/gencnvex.c
    functionUses: []
    functionsReached:
    - utm_countItems
    - UCM_GET_CODE_POINTS
    - generateFromUTable
    - ucm_printMapping
    - getFromUBytesValue
    - addFromUTrieEntry
    - fprintf
    linkageType: ''
    returnType: UBool
    signature: 'static UBool generateFromUTrie(CnvExtData *extData, UCMTable *table,
      int32_t mapLength) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/makeconv/gencnvex.c:1064,1
    - Dst: makeToUTable
      Src: /src/icu/source/tools/makeconv/gencnvex.c:1080,1
    - Dst: makeFromUTable
      Src: /src/icu/source/tools/makeconv/gencnvex.c:1081,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - cnvData
    - table
    - staticData
    argTypes:
    - NewConverter*
    - UCMTable*
    - UConverterStaticData*
    constantsTouched: []
    func_position:
      end: 1082
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1082
    functionName: CnvExtAddTable
    functionSourceFile: /src/icu/source/tools/makeconv/gencnvex.c
    functionUses: []
    functionsReached:
    - makeFromUTable
    - fprintf
    - makeToUTable
    linkageType: ''
    returnType: UBool
    signature: 'static UBool CnvExtAddTable(NewConverter *cnvData, UCMTable *table,
      UConverterStaticData *staticData) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utm_close
      Src: /src/icu/source/tools/makeconv/gencnvex.c:96,1
    - Dst: utm_close
      Src: /src/icu/source/tools/makeconv/gencnvex.c:98,1
    - Dst: utm_close
      Src: /src/icu/source/tools/makeconv/gencnvex.c:97,1
    - Dst: utm_close
      Src: /src/icu/source/tools/makeconv/gencnvex.c:99,1
    - Dst: utm_close
      Src: /src/icu/source/tools/makeconv/gencnvex.c:100,1
    - Dst: uprv_free
      Src: /src/icu/source/tools/makeconv/gencnvex.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - cnvData
    argTypes:
    - NewConverter*
    constantsTouched: []
    func_position:
      end: 103
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 103
    functionName: CnvExtClose
    functionSourceFile: /src/icu/source/tools/makeconv/gencnvex.c
    functionUses: []
    functionsReached:
    - uprv_free
    - utm_close
    linkageType: ''
    returnType: void
    signature: 'static void CnvExtClose(NewConverter *cnvData) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/makeconv/gencnvex.c:146,1
    - Dst: utm_countItems
      Src: /src/icu/source/tools/makeconv/gencnvex.c:156,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/makeconv/gencnvex.c:229,1
    - Dst: utm_getStart
      Src: /src/icu/source/tools/makeconv/gencnvex.c:229,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/makeconv/gencnvex.c:231,1
    - Dst: utm_getStart
      Src: /src/icu/source/tools/makeconv/gencnvex.c:231,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/makeconv/gencnvex.c:232,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/makeconv/gencnvex.c:227,1
    - Dst: utm_getStart
      Src: /src/icu/source/tools/makeconv/gencnvex.c:232,1
    - Dst: utm_getStart
      Src: /src/icu/source/tools/makeconv/gencnvex.c:233,1
    - Dst: printf
      Src: /src/icu/source/tools/makeconv/gencnvex.c:249,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/makeconv/gencnvex.c:131,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/makeconv/gencnvex.c:145,1
    - Dst: utm_alloc
      Src: /src/icu/source/tools/makeconv/gencnvex.c:169,1
    - Dst: utm_alloc
      Src: /src/icu/source/tools/makeconv/gencnvex.c:170,1
    - Dst: utm_alloc
      Src: /src/icu/source/tools/makeconv/gencnvex.c:185,1
    - Dst: printf
      Src: /src/icu/source/tools/makeconv/gencnvex.c:259,1
    - Dst: printf
      Src: /src/icu/source/tools/makeconv/gencnvex.c:277,1
    - Dst: utm_countItems
      Src: /src/icu/source/tools/makeconv/gencnvex.c:160,1
    - Dst: utm_countItems
      Src: /src/icu/source/tools/makeconv/gencnvex.c:164,1
    - Dst: utm_countItems
      Src: /src/icu/source/tools/makeconv/gencnvex.c:180,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/makeconv/gencnvex.c:228,1
    - Dst: utm_getStart
      Src: /src/icu/source/tools/makeconv/gencnvex.c:228,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/makeconv/gencnvex.c:233,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/makeconv/gencnvex.c:235,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/makeconv/gencnvex.c:236,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/makeconv/gencnvex.c:237,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/makeconv/gencnvex.c:238,1
    - Dst: printf
      Src: /src/icu/source/tools/makeconv/gencnvex.c:245,1
    - Dst: printf
      Src: /src/icu/source/tools/makeconv/gencnvex.c:255,1
    - Dst: printf
      Src: /src/icu/source/tools/makeconv/gencnvex.c:264,1
    - Dst: printf
      Src: /src/icu/source/tools/makeconv/gencnvex.c:284,1
    - Dst: printf
      Src: /src/icu/source/tools/makeconv/gencnvex.c:268,1
    - Dst: printf
      Src: /src/icu/source/tools/makeconv/gencnvex.c:273,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 157
    argCount: 4
    argNames:
    - cnvData
    - staticData
    - pData
    - tableType
    argTypes:
    - NewConverter*
    - UConverterStaticData*
    - UNewDataMemory*
    - int32_t
    constantsTouched: []
    func_position:
      end: 289
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 289
    functionName: CnvExtWrite
    functionSourceFile: /src/icu/source/tools/makeconv/gencnvex.c
    functionUses: []
    functionsReached:
    - udata_writeBlock
    - uprv_strlen
    - utm_countItems
    - utm_getStart
    - utm_alloc
    - printf
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t CnvExtWrite(NewConverter *cnvData, const UConverterStaticData
      *staticData, UNewDataMemory *pData, int32_t tableType) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: U16_LENGTH
      Src: /src/icu/source/tools/makeconv/gencnvex.c:341,1
    - Dst: u_strFromUTF32
      Src: /src/icu/source/tools/makeconv/gencnvex.c:349,1
    - Dst: UCM_GET_CODE_POINTS
      Src: /src/icu/source/tools/makeconv/gencnvex.c:347,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/makeconv/gencnvex.c:350,1
    - Dst: exit
      Src: /src/icu/source/tools/makeconv/gencnvex.c:351,1
    - Dst: utm_countItems
      Src: /src/icu/source/tools/makeconv/gencnvex.c:357,1
    - Dst: utm_allocN
      Src: /src/icu/source/tools/makeconv/gencnvex.c:358,1
    - Dst: u_strFromUTF32
      Src: /src/icu/source/tools/makeconv/gencnvex.c:362,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/makeconv/gencnvex.c:363,1
    - Dst: exit
      Src: /src/icu/source/tools/makeconv/gencnvex.c:364,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - extData
    - table
    - m
    argTypes:
    - CnvExtData*
    - UCMTable*
    - UCMapping*
    constantsTouched: []
    func_position:
      end: 385
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 385
    functionName: getToUnicodeValue
    functionSourceFile: /src/icu/source/tools/makeconv/gencnvex.c
    functionUses: []
    functionsReached:
    - u_strFromUTF32
    - U_FAILURE
    - utm_countItems
    - utm_allocN
    - UCM_GET_CODE_POINTS
    - exit
    - U16_LENGTH
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t getToUnicodeValue(CnvExtData *extData, UCMTable *table,
      UCMapping *m) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: UCM_GET_BYTES
      Src: /src/icu/source/tools/makeconv/gencnvex.c:656,1
    - Dst: U16_LENGTH
      Src: /src/icu/source/tools/makeconv/gencnvex.c:684,1
    - Dst: utm_countItems
      Src: /src/icu/source/tools/makeconv/gencnvex.c:670,1
    - Dst: utm_allocN
      Src: /src/icu/source/tools/makeconv/gencnvex.c:671,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/tools/makeconv/gencnvex.c:672,1
    - Dst: U16_LENGTH
      Src: /src/icu/source/tools/makeconv/gencnvex.c:686,1
    - Dst: UCM_GET_CODE_POINTS
      Src: /src/icu/source/tools/makeconv/gencnvex.c:686,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 3
    argNames:
    - extData
    - table
    - m
    argTypes:
    - CnvExtData*
    - UCMTable*
    - UCMapping*
    constantsTouched: []
    func_position:
      end: 703
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 703
    functionName: getFromUBytesValue
    functionSourceFile: /src/icu/source/tools/makeconv/gencnvex.c
    functionUses: []
    functionsReached:
    - uprv_memcpy
    - utm_allocN
    - utm_countItems
    - UCM_GET_CODE_POINTS
    - U16_LENGTH
    - UCM_GET_BYTES
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t getFromUBytesValue(CnvExtData *extData, UCMTable *table,
      UCMapping *m) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: UCM_GET_BYTES
      Src: /src/icu/source/tools/makeconv/gencnvex.c:432,1
    - Dst: utm_allocN
      Src: /src/icu/source/tools/makeconv/gencnvex.c:469,1
    - Dst: fprintf
      Src: /src/icu/source/tools/makeconv/gencnvex.c:464,1
    - Dst: UCM_GET_BYTES
      Src: /src/icu/source/tools/makeconv/gencnvex.c:479,1
    - Dst: UCM_GET_BYTES
      Src: /src/icu/source/tools/makeconv/gencnvex.c:439,1
    - Dst: UCNV_EXT_TO_U_GET_VALUE
      Src: /src/icu/source/tools/makeconv/gencnvex.c:500,1
    - Dst: UCNV_EXT_TO_U_GET_VALUE
      Src: /src/icu/source/tools/makeconv/gencnvex.c:503,1
    - Dst: fprintf
      Src: /src/icu/source/tools/makeconv/gencnvex.c:522,1
    - Dst: ucm_printMapping
      Src: /src/icu/source/tools/makeconv/gencnvex.c:523,1
    - Dst: ucm_printMapping
      Src: /src/icu/source/tools/makeconv/gencnvex.c:524,1
    - Dst: getToUnicodeValue
      Src: /src/icu/source/tools/makeconv/gencnvex.c:528,1
    - Dst: generateToUTable
      Src: /src/icu/source/tools/makeconv/gencnvex.c:539,1
    - Dst: utm_countItems
      Src: /src/icu/source/tools/makeconv/gencnvex.c:536,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 112
    argCount: 6
    argNames:
    - extData
    - table
    - start
    - limit
    - unitIndex
    - defaultValue
    argTypes:
    - CnvExtData*
    - UCMTable*
    - int32_t
    - int32_t
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 545
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 545
    functionName: generateToUTable
    functionSourceFile: /src/icu/source/tools/makeconv/gencnvex.c
    functionUses: []
    functionsReached:
    - getToUnicodeValue
    - generateToUTable
    - UCNV_EXT_TO_U_GET_VALUE
    - utm_allocN
    - utm_countItems
    - UCM_GET_BYTES
    - ucm_printMapping
    - fprintf
    linkageType: ''
    returnType: UBool
    signature: 'static UBool generateToUTable(CnvExtData *extData, UCMTable *table,
      int32_t start, int32_t limit, int32_t unitIndex, uint32_t defaultValue) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UCM_GET_CODE_POINTS
      Src: /src/icu/source/tools/makeconv/gencnvex.c:732,1
    - Dst: utm_allocN
      Src: /src/icu/source/tools/makeconv/gencnvex.c:754,1
    - Dst: UCM_GET_CODE_POINTS
      Src: /src/icu/source/tools/makeconv/gencnvex.c:765,1
    - Dst: UCM_GET_CODE_POINTS
      Src: /src/icu/source/tools/makeconv/gencnvex.c:739,1
    - Dst: utm_allocN
      Src: /src/icu/source/tools/makeconv/gencnvex.c:753,1
    - Dst: fprintf
      Src: /src/icu/source/tools/makeconv/gencnvex.c:795,1
    - Dst: ucm_printMapping
      Src: /src/icu/source/tools/makeconv/gencnvex.c:796,1
    - Dst: ucm_printMapping
      Src: /src/icu/source/tools/makeconv/gencnvex.c:797,1
    - Dst: getFromUBytesValue
      Src: /src/icu/source/tools/makeconv/gencnvex.c:801,1
    - Dst: utm_countItems
      Src: /src/icu/source/tools/makeconv/gencnvex.c:809,1
    - Dst: generateFromUTable
      Src: /src/icu/source/tools/makeconv/gencnvex.c:812,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 84
    argCount: 6
    argNames:
    - extData
    - table
    - start
    - limit
    - unitIndex
    - defaultValue
    argTypes:
    - CnvExtData*
    - UCMTable*
    - int32_t
    - int32_t
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 818
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 818
    functionName: generateFromUTable
    functionSourceFile: /src/icu/source/tools/makeconv/gencnvex.c
    functionUses: []
    functionsReached:
    - utm_allocN
    - utm_countItems
    - UCM_GET_CODE_POINTS
    - generateFromUTable
    - ucm_printMapping
    - getFromUBytesValue
    - fprintf
    linkageType: ''
    returnType: UBool
    signature: 'static UBool generateFromUTable(CnvExtData *extData, UCMTable *table,
      int32_t start, int32_t limit, int32_t unitIndex, uint32_t defaultValue) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepareFromUMappings
      Src: /src/icu/source/tools/makeconv/gencnvex.c:1018,1
    - Dst: utm_open
      Src: /src/icu/source/tools/makeconv/gencnvex.c:1021,1
    - Dst: utm_open
      Src: /src/icu/source/tools/makeconv/gencnvex.c:1022,1
    - Dst: utm_open
      Src: /src/icu/source/tools/makeconv/gencnvex.c:1020,1
    - Dst: utm_alloc
      Src: /src/icu/source/tools/makeconv/gencnvex.c:1037,1
    - Dst: utm_alloc
      Src: /src/icu/source/tools/makeconv/gencnvex.c:1038,1
    - Dst: generateFromUTrie
      Src: /src/icu/source/tools/makeconv/gencnvex.c:1040,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - extData
    - table
    argTypes:
    - CnvExtData*
    - UCMTable*
    constantsTouched: []
    func_position:
      end: 1055
      start: 1013
    functionDepth: 0
    functionLinenumber: 1013
    functionLinenumberEnd: 1055
    functionName: makeFromUTable
    functionSourceFile: /src/icu/source/tools/makeconv/gencnvex.c
    functionUses: []
    functionsReached:
    - generateFromUTrie
    - utm_open
    - prepareFromUMappings
    - utm_alloc
    linkageType: ''
    returnType: UBool
    signature: 'static UBool makeFromUTable(CnvExtData *extData, UCMTable *table) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ResKeyPath
      Src: /src/icu/source/tools/genrb/filterrb.h:22,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 34
    functionName: ResKeyPath
    functionSourceFile: /src/icu/source/tools/genrb/filterrb.h
    functionUses: []
    functionsReached:
    - ResKeyPath
    linkageType: ''
    returnType: class
    signature: 'class ResKeyPath '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 63
    functionName: PathFilter
    functionSourceFile: /src/icu/source/tools/genrb/filterrb.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class PathFilter '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 174
    functionName: SimpleRuleBasedPathFilter
    functionSourceFile: /src/icu/source/tools/genrb/filterrb.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class SimpleRuleBasedPathFilter : public PathFilter '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/rle.c:66,1
    - Dst: appendEncodedByte
      Src: /src/icu/source/tools/genrb/rle.c:73,1
    - Dst: appendEncodedByte
      Src: /src/icu/source/tools/genrb/rle.c:83,1
    - Dst: appendEncodedByte
      Src: /src/icu/source/tools/genrb/rle.c:75,1
    - Dst: appendEncodedByte
      Src: /src/icu/source/tools/genrb/rle.c:81,1
    - Dst: appendEncodedByte
      Src: /src/icu/source/tools/genrb/rle.c:86,1
    - Dst: appendEncodedByte
      Src: /src/icu/source/tools/genrb/rle.c:87,1
    - Dst: appendEncodedByte
      Src: /src/icu/source/tools/genrb/rle.c:88,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 6
    argNames:
    - buffer
    - bufLimit
    - value
    - length
    - state
    - status
    argTypes:
    - uint16_t*
    - uint16_t*
    - uint8_t
    - int32_t
    - uint8_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 91
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 91
    functionName: encodeRunByte
    functionSourceFile: /src/icu/source/tools/genrb/rle.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - appendEncodedByte
    linkageType: ''
    returnType: uint16_t*
    signature: 'static uint16_t *encodeRunByte(uint16_t* buffer,uint16_t* bufLimit,
      uint8_t value, int32_t length, uint8_t state[], UErrorCode* status) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: APPEND
      Src: /src/icu/source/tools/genrb/rle.c:113,1
    - Dst: APPEND
      Src: /src/icu/source/tools/genrb/rle.c:128,1
    - Dst: APPEND
      Src: /src/icu/source/tools/genrb/rle.c:122,1
    - Dst: APPEND
      Src: /src/icu/source/tools/genrb/rle.c:116,1
    - Dst: APPEND
      Src: /src/icu/source/tools/genrb/rle.c:125,1
    - Dst: APPEND
      Src: /src/icu/source/tools/genrb/rle.c:129,1
    - Dst: APPEND
      Src: /src/icu/source/tools/genrb/rle.c:130,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 5
    argNames:
    - buffer
    - bufLimit
    - value
    - length
    - status
    argTypes:
    - uint16_t*
    - uint16_t*
    - uint16_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 133
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 133
    functionName: encodeRunShort
    functionSourceFile: /src/icu/source/tools/genrb/rle.c
    functionUses: []
    functionsReached:
    - APPEND
    linkageType: ''
    returnType: uint16_t*
    signature: 'static uint16_t *encodeRunShort(uint16_t* buffer,uint16_t* bufLimit,
      uint16_t value, int32_t length,UErrorCode* status) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: encodeRunByte
      Src: /src/icu/source/tools/genrb/rle.c:213,1
    - Dst: appendEncodedByte
      Src: /src/icu/source/tools/genrb/rle.c:224,1
    - Dst: encodeRunByte
      Src: /src/icu/source/tools/genrb/rle.c:218,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 5
    argNames:
    - src
    - srcLen
    - buffer
    - bufLen
    - status
    argTypes:
    - uint8_t*
    - int32_t
    - uint16_t*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 233
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 233
    functionName: byteArrayToRLEString
    functionSourceFile: /src/icu/source/tools/genrb/rle.c
    functionUses: []
    functionsReached:
    - appendEncodedByte
    - encodeRunByte
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t byteArrayToRLEString(const uint8_t* src,int32_t srcLen, uint16_t*
      buffer,int32_t bufLen, UErrorCode* status) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/rle.c:41,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 5
    argNames:
    - buffer
    - buffLimit
    - value
    - state
    - status
    argTypes:
    - uint16_t*
    - uint16_t*
    - uint8_t
    - uint8_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 59
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 59
    functionName: appendEncodedByte
    functionSourceFile: /src/icu/source/tools/genrb/rle.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    linkageType: ''
    returnType: uint16_t*
    signature: 'static uint16_t *appendEncodedByte(uint16_t* buffer, uint16_t* buffLimit,
      uint8_t value, uint8_t state[],UErrorCode* status) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: encodeRunShort
      Src: /src/icu/source/tools/genrb/rle.c:165,1
    - Dst: encodeRunShort
      Src: /src/icu/source/tools/genrb/rle.c:170,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 5
    argNames:
    - src
    - srcLen
    - buffer
    - bufLen
    - status
    argTypes:
    - uint16_t*
    - int32_t
    - uint16_t*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 178
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 178
    functionName: usArrayToRLEString
    functionSourceFile: /src/icu/source/tools/genrb/rle.c
    functionUses: []
    functionsReached:
    - encodeRunShort
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t usArrayToRLEString(const uint16_t* src,int32_t srcLen,uint16_t*
      buffer, int32_t bufLen,UErrorCode* status) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/rle.c:245,1
    - Dst: u_strlen
      Src: /src/icu/source/tools/genrb/rle.c:250,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 5
    argNames:
    - src
    - srcLen
    - target
    - tgtLen
    - status
    argTypes:
    - uint16_t*
    - int32_t
    - uint16_t*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 290
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 290
    functionName: rleStringToUCharArray
    functionSourceFile: /src/icu/source/tools/genrb/rle.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - u_strlen
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t rleStringToUCharArray(uint16_t* src, int32_t srcLen, uint16_t*
      target, int32_t tgtLen, UErrorCode* status) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/rle.c:306,1
    - Dst: u_strlen
      Src: /src/icu/source/tools/genrb/rle.c:311,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 5
    argNames:
    - src
    - srcLen
    - target
    - tgtLen
    - status
    argTypes:
    - uint16_t*
    - int32_t
    - uint8_t*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 405
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 405
    functionName: rleStringToByteArray
    functionSourceFile: /src/icu/source/tools/genrb/rle.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - u_strlen
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t rleStringToByteArray(uint16_t* src, int32_t srcLen, uint8_t*
      target, int32_t tgtLen, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ContainerResource
      Src: /src/icu/source/tools/genrb/reslist.h:244,1
    - Dst: fFirst
      Src: /src/icu/source/tools/genrb/reslist.h:247,1
    - Dst: SResource
      Src: /src/icu/source/tools/genrb/reslist.h:246,1
    - Dst: fCount
      Src: /src/icu/source/tools/genrb/reslist.h:247,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 264
    functionName: ContainerResource
    functionSourceFile: /src/icu/source/tools/genrb/reslist.h
    functionUses: []
    functionsReached:
    - SResource
    - fCount
    - ContainerResource
    - fFirst
    linkageType: ''
    returnType: class
    signature: 'class ContainerResource : public SResource '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TableResource
      Src: /src/icu/source/tools/genrb/reslist.h:268,1
    - Dst: fTableType
      Src: /src/icu/source/tools/genrb/reslist.h:271,1
    - Dst: fRoot
      Src: /src/icu/source/tools/genrb/reslist.h:271,1
    - Dst: ContainerResource
      Src: /src/icu/source/tools/genrb/reslist.h:270,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 284
    functionName: ContainerResource
    functionSourceFile: /src/icu/source/tools/genrb/reslist.h
    functionUses: []
    functionsReached:
    - TableResource
    - fRoot
    - ContainerResource
    - fTableType
    linkageType: ''
    returnType: class
    signature: 'class TableResource : public ContainerResource '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArrayResource
      Src: /src/icu/source/tools/genrb/reslist.h:288,1
    - Dst: fLast
      Src: /src/icu/source/tools/genrb/reslist.h:291,1
    - Dst: ContainerResource
      Src: /src/icu/source/tools/genrb/reslist.h:290,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 301
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 301
    functionName: ContainerResource
    functionSourceFile: /src/icu/source/tools/genrb/reslist.h
    functionUses: []
    functionsReached:
    - fLast
    - ArrayResource
    - ContainerResource
    linkageType: ''
    returnType: class
    signature: 'class ArrayResource : public ContainerResource '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringBaseResource
      Src: /src/icu/source/tools/genrb/reslist.h:320,1
    - Dst: StringBaseResource
      Src: /src/icu/source/tools/genrb/reslist.h:323,1
    - Dst: toUCharPtr
      Src: /src/icu/source/tools/genrb/reslist.h:328,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 336
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 336
    functionName: StringBaseResource
    functionSourceFile: /src/icu/source/tools/genrb/reslist.h
    functionUses: []
    functionsReached:
    - StringBaseResource
    - toUCharPtr
    linkageType: ''
    returnType: class
    signature: 'class StringBaseResource : public SResource '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PseudoListResource
      Src: /src/icu/source/tools/genrb/reslist.h:309,1
    - Dst: ContainerResource
      Src: /src/icu/source/tools/genrb/reslist.h:310,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 316
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: PseudoListResource
    functionSourceFile: /src/icu/source/tools/genrb/reslist.h
    functionUses: []
    functionsReached:
    - PseudoListResource
    - ContainerResource
    linkageType: ''
    returnType: class
    signature: 'class PseudoListResource : public ContainerResource '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUCharPtr
      Src: /src/icu/source/tools/genrb/reslist.h:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 328
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 328
    functionName: getBuffer
    functionSourceFile: /src/icu/source/tools/genrb/reslist.h
    functionUses: []
    functionsReached:
    - toUCharPtr
    linkageType: ''
    returnType: UChar*
    signature: 'const UChar *getBuffer() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 329
    functionName: length
    functionSourceFile: /src/icu/source/tools/genrb/reslist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t length() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fSame
      Src: /src/icu/source/tools/genrb/reslist.h:347,1
    - Dst: fNumCharsForLength
      Src: /src/icu/source/tools/genrb/reslist.h:348,1
    - Dst: StringBaseResource
      Src: /src/icu/source/tools/genrb/reslist.h:342,1
    - Dst: StringBaseResource
      Src: /src/icu/source/tools/genrb/reslist.h:346,1
    - Dst: fSuffixOffset
      Src: /src/icu/source/tools/genrb/reslist.h:347,1
    - Dst: StringResource
      Src: /src/icu/source/tools/genrb/reslist.h:349,1
    - Dst: StringBaseResource
      Src: /src/icu/source/tools/genrb/reslist.h:352,1
    - Dst: URES_MAKE_RESOURCE
      Src: /src/icu/source/tools/genrb/reslist.h:356,1
    - Dst: StringResource
      Src: /src/icu/source/tools/genrb/reslist.h:345,1
    - Dst: fSame
      Src: /src/icu/source/tools/genrb/reslist.h:353,1
    - Dst: fSuffixOffset
      Src: /src/icu/source/tools/genrb/reslist.h:353,1
    - Dst: fNumCopies
      Src: /src/icu/source/tools/genrb/reslist.h:354,1
    - Dst: fNumUnitsSaved
      Src: /src/icu/source/tools/genrb/reslist.h:348,1
    - Dst: fNumCopies
      Src: /src/icu/source/tools/genrb/reslist.h:348,1
    - Dst: fNumUnitsSaved
      Src: /src/icu/source/tools/genrb/reslist.h:354,1
    - Dst: StringResource
      Src: /src/icu/source/tools/genrb/reslist.h:340,1
    - Dst: fSame
      Src: /src/icu/source/tools/genrb/reslist.h:343,1
    - Dst: fSuffixOffset
      Src: /src/icu/source/tools/genrb/reslist.h:343,1
    - Dst: fNumCopies
      Src: /src/icu/source/tools/genrb/reslist.h:344,1
    - Dst: fNumUnitsSaved
      Src: /src/icu/source/tools/genrb/reslist.h:344,1
    - Dst: fNumCharsForLength
      Src: /src/icu/source/tools/genrb/reslist.h:344,1
    - Dst: fNumCharsForLength
      Src: /src/icu/source/tools/genrb/reslist.h:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 358
    functionName: StringBaseResource
    functionSourceFile: /src/icu/source/tools/genrb/reslist.h
    functionUses: []
    functionsReached:
    - fNumCharsForLength
    - fSame
    - StringResource
    - StringBaseResource
    - fNumCopies
    - URES_MAKE_RESOURCE
    - fSuffixOffset
    - fNumUnitsSaved
    linkageType: ''
    returnType: class
    signature: 'class StringResource : public StringBaseResource '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/icu/source/tools/genrb/reslist.h:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 363
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 363
    functionName: get16BitStringsLength
    functionSourceFile: /src/icu/source/tools/genrb/reslist.h
    functionUses: []
    functionsReached:
    - length
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t get16BitStringsLength() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AliasResource
      Src: /src/icu/source/tools/genrb/reslist.h:379,1
    - Dst: StringBaseResource
      Src: /src/icu/source/tools/genrb/reslist.h:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 383
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 383
    functionName: StringBaseResource
    functionSourceFile: /src/icu/source/tools/genrb/reslist.h
    functionUses: []
    functionsReached:
    - StringBaseResource
    - AliasResource
    linkageType: ''
    returnType: class
    signature: 'class AliasResource : public StringBaseResource '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntResource
      Src: /src/icu/source/tools/genrb/reslist.h:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 393
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 393
    functionName: IntResource
    functionSourceFile: /src/icu/source/tools/genrb/reslist.h
    functionUses: []
    functionsReached:
    - IntResource
    linkageType: ''
    returnType: class
    signature: 'class IntResource : public SResource '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntVectorResource
      Src: /src/icu/source/tools/genrb/reslist.h:397,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 409
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 409
    functionName: IntVectorResource
    functionSourceFile: /src/icu/source/tools/genrb/reslist.h
    functionUses: []
    functionsReached:
    - IntVectorResource
    linkageType: ''
    returnType: class
    signature: 'class IntVectorResource : public SResource '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BinaryResource
      Src: /src/icu/source/tools/genrb/reslist.h:413,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 426
    functionName: BinaryResource
    functionSourceFile: /src/icu/source/tools/genrb/reslist.h
    functionUses: []
    functionsReached:
    - BinaryResource
    linkageType: ''
    returnType: class
    signature: 'class BinaryResource : public SResource '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strrchr
      Src: /src/icu/source/tools/genrb/rbutil.c:32,1
    - Dst: uprv_strncpy
      Src: /src/icu/source/tools/genrb/rbutil.c:35,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - dirname
    - filename
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: get_dirname
    functionSourceFile: /src/icu/source/tools/genrb/rbutil.c
    functionUses: []
    functionsReached:
    - uprv_strncpy
    - uprv_strrchr
    linkageType: ''
    returnType: void
    signature: 'void get_dirname(char *dirname, const char *filename) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strrchr
      Src: /src/icu/source/tools/genrb/rbutil.c:48,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/tools/genrb/rbutil.c:52,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/tools/genrb/rbutil.c:54,1
    - Dst: uprv_strrchr
      Src: /src/icu/source/tools/genrb/rbutil.c:58,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - basename
    - filename
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 63
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 63
    functionName: get_basename
    functionSourceFile: /src/icu/source/tools/genrb/rbutil.c
    functionUses: []
    functionsReached:
    - uprv_strcpy
    - uprv_strrchr
    linkageType: ''
    returnType: void
    signature: 'void get_basename(char *basename, const char *filename) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 4
    argNames:
    - buffer
    - i
    - radix
    - pad
    argTypes:
    - char*
    - int32_t
    - uint32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 112
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 112
    functionName: itostr
    functionSourceFile: /src/icu/source/tools/genrb/rbutil.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t itostr(char * buffer, int32_t i, uint32_t radix, int32_t pad) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: resetLineNumber
    functionSourceFile: /src/icu/source/tools/genrb/read.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void resetLineNumber() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/read.c:382,1
    - Dst: ustr_u32cat
      Src: /src/icu/source/tools/genrb/read.c:390,1
    - Dst: ucbuf_getc
      Src: /src/icu/source/tools/genrb/read.c:387,1
    - Dst: isNewline
      Src: /src/icu/source/tools/genrb/read.c:392,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 3
    argNames:
    - buf
    - token
    - status
    argTypes:
    - UCHARBUF*
    - struct UString*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 393
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 393
    functionName: seekUntilNewline
    functionSourceFile: /src/icu/source/tools/genrb/read.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - isNewline
    - ustr_u32cat
    - ucbuf_getc
    linkageType: ''
    returnType: void
    signature: 'static void seekUntilNewline(UCHARBUF* buf, struct UString *token,
      UErrorCode *status) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/read.c:326,1
    - Dst: seekUntilNewline
      Src: /src/icu/source/tools/genrb/read.c:354,1
    - Dst: ucbuf_getc
      Src: /src/icu/source/tools/genrb/read.c:331,1
    - Dst: isWhitespace
      Src: /src/icu/source/tools/genrb/read.c:337,1
    - Dst: ucbuf_getc
      Src: /src/icu/source/tools/genrb/read.c:346,1
    - Dst: ucbuf_getc
      Src: /src/icu/source/tools/genrb/read.c:358,1
    - Dst: seekUntilEndOfComment
      Src: /src/icu/source/tools/genrb/read.c:361,1
    - Dst: ucbuf_ungetc
      Src: /src/icu/source/tools/genrb/read.c:363,1
    - Dst: seekUntilEndOfComment
      Src: /src/icu/source/tools/genrb/read.c:364,1
    - Dst: ucbuf_ungetc
      Src: /src/icu/source/tools/genrb/read.c:369,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 4
    argNames:
    - buf
    - skipwhite
    - token
    - status
    argTypes:
    - UCHARBUF*
    - UBool
    - struct UString*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 375
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 375
    functionName: getNextChar
    functionSourceFile: /src/icu/source/tools/genrb/read.c
    functionUses: []
    functionsReached:
    - seekUntilEndOfComment
    - U_FAILURE
    - ucbuf_getc
    - ucbuf_ungetc
    - seekUntilNewline
    - isWhitespace
    linkageType: ''
    returnType: UChar32
    signature: 'static UChar32 getNextChar(UCHARBUF* buf, UBool skipwhite, struct
      UString *token, UErrorCode *status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/read.c:435,1
    - Dst: ucbuf_getcx32
      Src: /src/icu/source/tools/genrb/read.c:443,1
    - Dst: ucbuf_ungetc
      Src: /src/icu/source/tools/genrb/read.c:441,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - status
    argTypes:
    - UCHARBUF*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 444
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 444
    functionName: unescape
    functionSourceFile: /src/icu/source/tools/genrb/read.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - ucbuf_ungetc
    - ucbuf_getcx32
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC UChar32 unescape(UCHARBUF *buf, UErrorCode *status) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/read.c:73,1
    - Dst: getNextChar
      Src: /src/icu/source/tools/genrb/read.c:78,1
    - Dst: getStringToken
      Src: /src/icu/source/tools/genrb/read.c:101,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/read.c:80,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 12
    argCount: 5
    argNames:
    - buf
    - token
    - linenumber
    - '/* out: linenumber of token */'
    - comment
    - status
    argTypes:
    - UCHARBUF*
    - struct UString*
    - uint32_t*
    - struct UString*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 106
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 106
    functionName: getNextToken
    functionSourceFile: /src/icu/source/tools/genrb/read.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - getNextChar
    - getStringToken
    linkageType: ''
    returnType: ETokenType
    signature: 'ETokenType getNextToken(UCHARBUF* buf, struct UString *token, uint32_t
      *linenumber, /* out: linenumber of token */ struct UString *comment, UErrorCode
      *status) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/read.c:401,1
    - Dst: ucbuf_getc
      Src: /src/icu/source/tools/genrb/read.c:411,1
    - Dst: ustr_u32cat
      Src: /src/icu/source/tools/genrb/read.c:421,1
    - Dst: ucbuf_getc
      Src: /src/icu/source/tools/genrb/read.c:408,1
    - Dst: ucbuf_ungetc
      Src: /src/icu/source/tools/genrb/read.c:414,1
    - Dst: isNewline
      Src: /src/icu/source/tools/genrb/read.c:424,1
    - Dst: error
      Src: /src/icu/source/tools/genrb/read.c:430,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 3
    argNames:
    - buf
    - token
    - status
    argTypes:
    - UCHARBUF*
    - struct UString*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 432
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 432
    functionName: seekUntilEndOfComment
    functionSourceFile: /src/icu/source/tools/genrb/read.c
    functionUses: []
    functionsReached:
    - isNewline
    - ustr_u32cat
    - U_FAILURE
    - ucbuf_getc
    - ucbuf_ungetc
    - error
    linkageType: ''
    returnType: void
    signature: 'static void seekUntilEndOfComment(UCHARBUF *buf, struct UString *token,
      UErrorCode *status) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 461
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 461
    functionName: isWhitespace
    functionSourceFile: /src/icu/source/tools/genrb/read.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool isWhitespace(UChar32 c) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 475
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 475
    functionName: isNewline
    functionSourceFile: /src/icu/source/tools/genrb/read.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool isNewline(UChar32 c) '
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/read.c:146,1
    - Dst: getShowWarning
      Src: /src/icu/source/tools/genrb/read.c:222,1
    - Dst: ustr_ucat
      Src: /src/icu/source/tools/genrb/read.c:214,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/read.c:216,1
    - Dst: ucbuf_ungetc
      Src: /src/icu/source/tools/genrb/read.c:264,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/read.c:307,1
    - Dst: ucbuf_ungetc
      Src: /src/icu/source/tools/genrb/read.c:312,1
    - Dst: ustr_setlen
      Src: /src/icu/source/tools/genrb/read.c:144,1
    - Dst: isStrict
      Src: /src/icu/source/tools/genrb/read.c:225,1
    - Dst: unescape
      Src: /src/icu/source/tools/genrb/read.c:241,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/read.c:254,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/read.c:268,1
    - Dst: ucbuf_ungetc
      Src: /src/icu/source/tools/genrb/read.c:277,1
    - Dst: unescape
      Src: /src/icu/source/tools/genrb/read.c:287,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/read.c:298,1
    - Dst: getNextChar
      Src: /src/icu/source/tools/genrb/read.c:305,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/read.c:155,1
    - Dst: ustr_ucat
      Src: /src/icu/source/tools/genrb/read.c:153,1
    - Dst: unescape
      Src: /src/icu/source/tools/genrb/read.c:181,1
    - Dst: U_APPEND_CHAR32
      Src: /src/icu/source/tools/genrb/read.c:194,1
    - Dst: getNextChar
      Src: /src/icu/source/tools/genrb/read.c:260,1
    - Dst: ustr_uscat
      Src: /src/icu/source/tools/genrb/read.c:296,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/read.c:137,1
    - Dst: ucbuf_getc
      Src: /src/icu/source/tools/genrb/read.c:163,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/read.c:171,1
    - Dst: ustr_uscat
      Src: /src/icu/source/tools/genrb/read.c:196,1
    - Dst: warning
      Src: /src/icu/source/tools/genrb/read.c:223,1
    - Dst: ustr_uscat
      Src: /src/icu/source/tools/genrb/read.c:251,1
    - Dst: U_APPEND_CHAR32
      Src: /src/icu/source/tools/genrb/read.c:249,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/read.c:207,1
    - Dst: isWhitespace
      Src: /src/icu/source/tools/genrb/read.c:281,1
    - Dst: U_APPEND_CHAR32
      Src: /src/icu/source/tools/genrb/read.c:294,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 140
    argCount: 4
    argNames:
    - buf
    - initialChar
    - token
    - status
    argTypes:
    - UCHARBUF*
    - UChar32
    - struct UString*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 316
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 316
    functionName: getStringToken
    functionSourceFile: /src/icu/source/tools/genrb/read.c
    functionUses: []
    functionsReached:
    - unescape
    - ustr_uscat
    - getNextChar
    - ustr_setlen
    - U_FAILURE
    - ucbuf_getc
    - U_APPEND_CHAR32
    - getShowWarning
    - ucbuf_ungetc
    - isStrict
    - isWhitespace
    - ustr_ucat
    - warning
    linkageType: ''
    returnType: enum ETokenType
    signature: 'static enum ETokenType getStringToken(UCHARBUF* buf, UChar32 initialChar,
      struct UString *token, UErrorCode *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/icu/source/tools/genrb/errmsg.c:28,1
    - Dst: fprintf
      Src: /src/icu/source/tools/genrb/errmsg.c:31,1
    - Dst: va_end
      Src: /src/icu/source/tools/genrb/errmsg.c:32,1
    - Dst: vfprintf
      Src: /src/icu/source/tools/genrb/errmsg.c:30,1
    - Dst: fprintf
      Src: /src/icu/source/tools/genrb/errmsg.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - linenumber
    - msg
    - '...'
    argTypes:
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: error
    functionSourceFile: /src/icu/source/tools/genrb/errmsg.c
    functionUses: []
    functionsReached:
    - va_start
    - vfprintf
    - fprintf
    - va_end
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void error(uint32_t linenumber, const char *msg, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - UBool
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: setStrict
    functionSourceFile: /src/icu/source/tools/genrb/errmsg.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void setStrict(UBool val) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: isStrict
    functionSourceFile: /src/icu/source/tools/genrb/errmsg.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC UBool isStrict() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: getShowWarning
    functionSourceFile: /src/icu/source/tools/genrb/errmsg.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC UBool getShowWarning() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - UBool
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: setShowWarning
    functionSourceFile: /src/icu/source/tools/genrb/errmsg.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void setShowWarning(UBool val) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: isVerbose
    functionSourceFile: /src/icu/source/tools/genrb/errmsg.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC UBool isVerbose() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - UBool
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: setVerbose
    functionSourceFile: /src/icu/source/tools/genrb/errmsg.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void setVerbose(UBool val) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/icu/source/tools/genrb/errmsg.c:66,1
    - Dst: vfprintf
      Src: /src/icu/source/tools/genrb/errmsg.c:68,1
    - Dst: fprintf
      Src: /src/icu/source/tools/genrb/errmsg.c:69,1
    - Dst: fprintf
      Src: /src/icu/source/tools/genrb/errmsg.c:67,1
    - Dst: va_end
      Src: /src/icu/source/tools/genrb/errmsg.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - linenumber
    - msg
    - '...'
    argTypes:
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: warning
    functionSourceFile: /src/icu/source/tools/genrb/errmsg.c
    functionUses: []
    functionsReached:
    - va_start
    - vfprintf
    - fprintf
    - va_end
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void warning(uint32_t linenumber, const char *msg, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct UString*
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: ustr_init
    functionSourceFile: /src/icu/source/tools/genrb/ustr.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void ustr_init(struct UString *s) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uprv_free
      Src: /src/icu/source/tools/genrb/ustr.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct UString*
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: ustr_deinit
    functionSourceFile: /src/icu/source/tools/genrb/ustr.c
    functionUses: []
    functionsReached:
    - uprv_free
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void ustr_deinit(struct UString *s) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/ustr.c:106,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/ustr.c:111,1
    - Dst: ustr_resize
      Src: /src/icu/source/tools/genrb/ustr.c:110,1
    - Dst: ALLOCATION
      Src: /src/icu/source/tools/genrb/ustr.c:110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 3
    argNames:
    - s
    - len
    - status
    argTypes:
    - struct UString*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 117
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 117
    functionName: ustr_setlen
    functionSourceFile: /src/icu/source/tools/genrb/ustr.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - ustr_resize
    - ALLOCATION
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void ustr_setlen(struct UString *s, int32_t len, UErrorCode
      *status) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/ustr.c:133,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/ustr.c:138,1
    - Dst: ustr_resize
      Src: /src/icu/source/tools/genrb/ustr.c:137,1
    - Dst: ALLOCATION
      Src: /src/icu/source/tools/genrb/ustr.c:137,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/tools/genrb/ustr.c:142,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 4
    argNames:
    - dst
    - src
    - n
    - status
    argTypes:
    - struct UString*
    - struct UString*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 146
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 146
    functionName: ustr_ncat
    functionSourceFile: /src/icu/source/tools/genrb/ustr.c
    functionUses: []
    functionsReached:
    - uprv_memcpy
    - U_FAILURE
    - ustr_resize
    - ALLOCATION
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void ustr_ncat(struct UString *dst, const struct UString *src,
      int32_t n, UErrorCode *status) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ustr_ucat
      Src: /src/icu/source/tools/genrb/ustr.c:174,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/tools/genrb/ustr.c:175,1
    - Dst: U16_LEAD
      Src: /src/icu/source/tools/genrb/ustr.c:174,1
    - Dst: ustr_ucat
      Src: /src/icu/source/tools/genrb/ustr.c:177,1
    - Dst: ustr_ucat
      Src: /src/icu/source/tools/genrb/ustr.c:175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - dst
    - c
    - status
    argTypes:
    - struct UString*
    - UChar32
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 179
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 179
    functionName: ustr_u32cat
    functionSourceFile: /src/icu/source/tools/genrb/ustr.c
    functionUses: []
    functionsReached:
    - U16_TRAIL
    - ustr_ucat
    - U16_LEAD
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void ustr_u32cat(struct UString *dst, UChar32 c, UErrorCode
      *status) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/ustr.c:43,1
    - Dst: ustr_resize
      Src: /src/icu/source/tools/genrb/ustr.c:50,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/ustr.c:51,1
    - Dst: ALLOCATION
      Src: /src/icu/source/tools/genrb/ustr.c:50,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/genrb/ustr.c:47,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/tools/genrb/ustr.c:56,1
    - Dst: ustr_ucat
      Src: /src/icu/source/tools/genrb/ustr.c:57,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 4
    argNames:
    - s
    - source
    - length
    - status
    argTypes:
    - struct UString*
    - char*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 68
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 68
    functionName: ustr_initChars
    functionSourceFile: /src/icu/source/tools/genrb/ustr.c
    functionUses: []
    functionsReached:
    - ustr_resize
    - U_FAILURE
    - uprv_strlen
    - ALLOCATION
    - u_charsToUChars
    - ustr_ucat
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void ustr_initChars(struct UString *s, const char* source,
      int32_t length, UErrorCode *status) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/ustr.c:85,1
    - Dst: ustr_resize
      Src: /src/icu/source/tools/genrb/ustr.c:89,1
    - Dst: u_memcpy
      Src: /src/icu/source/tools/genrb/ustr.c:96,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/ustr.c:90,1
    - Dst: ALLOCATION
      Src: /src/icu/source/tools/genrb/ustr.c:89,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 3
    argNames:
    - dst
    - src
    - status
    argTypes:
    - struct UString*
    - struct UString*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 99
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 99
    functionName: ustr_cpy
    functionSourceFile: /src/icu/source/tools/genrb/ustr.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - ustr_resize
    - u_memcpy
    - ALLOCATION
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void ustr_cpy(struct UString *dst, const struct UString *src,
      UErrorCode *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ustr_ncat
      Src: /src/icu/source/tools/genrb/ustr.c:124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 3
    argNames:
    - dst
    - src
    - status
    argTypes:
    - struct UString*
    - struct UString*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: ustr_cat
    functionSourceFile: /src/icu/source/tools/genrb/ustr.c
    functionUses: []
    functionsReached:
    - ustr_ncat
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void ustr_cat(struct UString *dst, const struct UString *src,
      UErrorCode *status) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/ustr.c:153,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/ustr.c:158,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/tools/genrb/ustr.c:162,1
    - Dst: ALLOCATION
      Src: /src/icu/source/tools/genrb/ustr.c:157,1
    - Dst: ustr_resize
      Src: /src/icu/source/tools/genrb/ustr.c:157,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - dst
    - c
    - status
    argTypes:
    - struct UString*
    - UChar
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 166
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: ustr_ucat
    functionSourceFile: /src/icu/source/tools/genrb/ustr.c
    functionUses: []
    functionsReached:
    - uprv_memcpy
    - U_FAILURE
    - ustr_resize
    - ALLOCATION
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void ustr_ucat(struct UString *dst, UChar c, UErrorCode *status) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/ustr.c:185,1
    - Dst: ALLOCATION
      Src: /src/icu/source/tools/genrb/ustr.c:189,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/tools/genrb/ustr.c:194,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/ustr.c:190,1
    - Dst: ustr_resize
      Src: /src/icu/source/tools/genrb/ustr.c:189,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 4
    argNames:
    - dst
    - src
    - len
    - status
    argTypes:
    - struct UString*
    - UChar*
    - int
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 198
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 198
    functionName: ustr_uscat
    functionSourceFile: /src/icu/source/tools/genrb/ustr.c
    functionUses: []
    functionsReached:
    - uprv_memcpy
    - U_FAILURE
    - ustr_resize
    - ALLOCATION
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC void ustr_uscat(struct UString *dst, const UChar* src,int
      len, UErrorCode *status) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/genrb/ustr.c:206,1
    - Dst: uprv_realloc
      Src: /src/icu/source/tools/genrb/ustr.c:210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - s
    - len
    - status
    argTypes:
    - struct UString*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 218
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 218
    functionName: ustr_resize
    functionSourceFile: /src/icu/source/tools/genrb/ustr.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - uprv_realloc
    linkageType: ''
    returnType: void
    signature: 'static void ustr_resize(struct UString *s, int32_t len, UErrorCode
      *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Normalizer2DataBuilder
      Src: /src/icu/source/tools/gennorm2/n2builder.h:38,1
    - Dst: Normalizer2DataBuilder
      Src: /src/icu/source/tools/gennorm2/n2builder.h:39,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 115
    functionName: Normalizer2DataBuilder
    functionSourceFile: /src/icu/source/tools/gennorm2/n2builder.h
    functionUses: []
    functionsReached:
    - Normalizer2DataBuilder
    linkageType: ''
    returnType: class
    signature: 'class Normalizer2DataBuilder '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - opt
    argTypes:
    - Optimization
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: setOptimization
    functionSourceFile: /src/icu/source/tools/gennorm2/n2builder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setOptimization(Optimization opt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: getMinNoNoDelta
    functionSourceFile: /src/icu/source/tools/gennorm2/n2builder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getMinNoNoDelta() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: length
    functionSourceFile: /src/icu/source/tools/gennorm2/norms.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t length() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: lastStarterIndex
    functionSourceFile: /src/icu/source/tools/gennorm2/norms.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t lastStarterIndex() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: isEmpty
    functionSourceFile: /src/icu/source/tools/gennorm2/norms.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isEmpty() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: reset
    functionSourceFile: /src/icu/source/tools/gennorm2/norms.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void reset() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: charAt
    functionSourceFile: /src/icu/source/tools/gennorm2/norms.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UChar32
    signature: 'UChar32 charAt(int32_t i) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: didReorder
    functionSourceFile: /src/icu/source/tools/gennorm2/norms.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool didReorder() const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U16_LENGTH
      Src: /src/icu/source/tools/gennorm2/norms.h:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: setMappingCP
    functionSourceFile: /src/icu/source/tools/gennorm2/norms.h
    functionUses: []
    functionsReached:
    - U16_LENGTH
    linkageType: ''
    returnType: "struct Norm {\n    enum MappingType { NONE, REMOVED, ROUND_TRIP,
      ONE_WAY };\n\n    UBool hasMapping() const { return mappingType>REMOVED; }"
    signature: 'struct Norm { enum MappingType { NONE, REMOVED, ROUND_TRIP, ONE_WAY
      }; UBool hasMapping() const { return mappingType>REMOVED; } // Requires hasMapping()
      and well-formed mapping. void setMappingCP() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Norms
      Src: /src/icu/source/tools/gennorm2/norms.h:147,1
    - Dst: utm_countItems
      Src: /src/icu/source/tools/gennorm2/norms.h:150,1
    - Dst: getNormRef
      Src: /src/icu/source/tools/gennorm2/norms.h:162,1
    - Dst: Norms
      Src: /src/icu/source/tools/gennorm2/norms.h:148,1
    - Dst: getNormRefByIndex
      Src: /src/icu/source/tools/gennorm2/norms.h:152,1
    - Dst: isJamoV
      Src: /src/icu/source/tools/gennorm2/norms.h:164,1
    - Dst: isJamoT
      Src: /src/icu/source/tools/gennorm2/norms.h:164,1
    - Dst: getNormRef
      Src: /src/icu/source/tools/gennorm2/norms.h:164,1
    - Dst: Enumerator
      Src: /src/icu/source/tools/gennorm2/norms.h:174,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 193
    functionName: Norms
    functionSourceFile: /src/icu/source/tools/gennorm2/norms.h
    functionUses: []
    functionsReached:
    - utm_countItems
    - isJamoT
    - getNormRef
    - Norms
    - Enumerator
    - getNormRefByIndex
    - isJamoV
    linkageType: ''
    returnType: class
    signature: 'class Norms '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BuilderReorderingBuffer
      Src: /src/icu/source/tools/gennorm2/norms.h:29,1
    - Dst: fDidReorder
      Src: /src/icu/source/tools/gennorm2/norms.h:29,1
    - Dst: fLastStarterIndex
      Src: /src/icu/source/tools/gennorm2/norms.h:29,1
    - Dst: fLength
      Src: /src/icu/source/tools/gennorm2/norms.h:29,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 50
    functionName: BuilderReorderingBuffer
    functionSourceFile: /src/icu/source/tools/gennorm2/norms.h
    functionUses: []
    functionsReached:
    - fLength
    - fLastStarterIndex
    - fDidReorder
    - BuilderReorderingBuffer
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN class BuilderReorderingBuffer '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - i
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: ccAt
    functionSourceFile: /src/icu/source/tools/gennorm2/norms.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t ccAt(int32_t i) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - length
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: getCompositionPairs
    functionSourceFile: /src/icu/source/tools/gennorm2/norms.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: CompositionPair*
    signature: 'const CompositionPair *getCompositionPairs(int32_t &length) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - i
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: getNormRefByIndex
    functionSourceFile: /src/icu/source/tools/gennorm2/norms.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Norm
    signature: 'const Norm & getNormRefByIndex(int32_t i) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isJamoV
      Src: /src/icu/source/tools/gennorm2/norms.h:164,1
    - Dst: isJamoT
      Src: /src/icu/source/tools/gennorm2/norms.h:164,1
    - Dst: getNormRef
      Src: /src/icu/source/tools/gennorm2/norms.h:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: combinesBack
    functionSourceFile: /src/icu/source/tools/gennorm2/norms.h
    functionUses: []
    functionsReached:
    - isJamoV
    - getNormRef
    - isJamoT
    linkageType: ''
    returnType: UBool
    signature: 'UBool combinesBack(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Enumerator
      Src: /src/icu/source/tools/gennorm2/norms.h:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: Enumerator
    functionSourceFile: /src/icu/source/tools/gennorm2/norms.h
    functionUses: []
    functionsReached:
    - Enumerator
    linkageType: ''
    returnType: class
    signature: 'class Enumerator '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompositionBuilder
      Src: /src/icu/source/tools/gennorm2/norms.h:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: CompositionBuilder
    functionSourceFile: /src/icu/source/tools/gennorm2/norms.h
    functionUses: []
    functionsReached:
    - CompositionBuilder
    linkageType: ''
    returnType: class
    signature: 'class CompositionBuilder : public Norms::Enumerator '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getNormRef
      Src: /src/icu/source/tools/gennorm2/norms.h:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: getCC
    functionSourceFile: /src/icu/source/tools/gennorm2/norms.h
    functionUses: []
    functionsReached:
    - getNormRef
    linkageType: ''
    returnType: Norm
    signature: 'const Norm &getNormRef(UChar32 c) const; uint8_t getCC(UChar32 c)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Decomposer
      Src: /src/icu/source/tools/gennorm2/norms.h:204,1
    - Dst: Enumerator
      Src: /src/icu/source/tools/gennorm2/norms.h:204,1
    - Dst: didDecompose
      Src: /src/icu/source/tools/gennorm2/norms.h:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: Decomposer
    functionSourceFile: /src/icu/source/tools/gennorm2/norms.h
    functionUses: []
    functionsReached:
    - Decomposer
    - Enumerator
    - didDecompose
    linkageType: ''
    returnType: class
    signature: 'class Decomposer : public Norms::Enumerator '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utm_countItems
      Src: /src/icu/source/tools/gennorm2/norms.h:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: length
    functionSourceFile: /src/icu/source/tools/gennorm2/norms.h
    functionUses: []
    functionsReached:
    - utm_countItems
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t length() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: uprv_dummyFunction_CT
    functionSourceFile: /src/icu/source/tools/ctestfw/ucln_ct.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int uprv_dummyFunction_CT(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/tools/ctestfw/ctest.c:175,1
    - Dst: strncpy
      Src: /src/icu/source/tools/ctestfw/ctest.c:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - name
    - nameLen
    argTypes:
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 185
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 185
    functionName: createTestNode
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - malloc
    - strncpy
    linkageType: ''
    returnType: TestNode*
    signature: 'static TestNode *createTestNode(const char* name, int32_t nameLen) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: uprv_floor
      Src: /src/icu/source/tools/ctestfw/ctest.c:297,1
    - Dst: sprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:304,1
    - Dst: sprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:298,1
    - Dst: sprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:300,1
    - Dst: sprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:302,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - str
    - deltaTime
    argTypes:
    - char*
    - UDate
    constantsTouched: []
    func_position:
      end: 308
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 308
    functionName: str_timeDelta
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - sprintf
    - uprv_floor
    linkageType: ''
    returnType: void
    signature: 'void T_CTEST_EXPORT2 str_timeDelta(char *str, UDate deltaTime) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 572
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 572
    functionName: (void)
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: getTestName
    signature: 'getTestName (void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: go_offline
      Src: /src/icu/source/tools/ctestfw/ctest.c:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 657
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 657
    functionName: go_offline_err
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - go_offline
    linkageType: ''
    returnType: void
    signature: 'static void go_offline_err() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1265
      start: 1260
    functionDepth: 0
    functionLinenumber: 1260
    functionLinenumberEnd: 1265
    functionName: ctest_xml_setFileName
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t T_CTEST_EXPORT2 ctest_xml_setFileName(const char *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cleanUpTestTree
      Src: /src/icu/source/tools/ctestfw/ctest.c:191,1
    - Dst: free
      Src: /src/icu/source/tools/ctestfw/ctest.c:197,1
    - Dst: cleanUpTestTree
      Src: /src/icu/source/tools/ctestfw/ctest.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - tn
    argTypes:
    - TestNode*
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: cleanUpTestTree
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - free
    - cleanUpTestTree
    linkageType: ''
    returnType: void
    signature: 'void T_CTEST_EXPORT2 cleanUpTestTree(TestNode *tn) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: str_timeDelta
      Src: /src/icu/source/tools/ctestfw/ctest.c:312,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - deltaTime
    argTypes:
    - UDate
    constantsTouched: []
    func_position:
      end: 316
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 316
    functionName: print_timeDelta
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - str_timeDelta
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void print_timeDelta(UDate deltaTime) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/tools/ctestfw/ctest.c:583,1
    - Dst: getNextLevel
      Src: /src/icu/source/tools/ctestfw/ctest.c:597,1
    - Dst: strncmp_nullcheck
      Src: /src/icu/source/tools/ctestfw/ctest.c:609,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 2
    argNames:
    - root
    - name
    argTypes:
    - TestNode*
    - char*
    constantsTouched: []
    func_position:
      end: 632
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 632
    functionName: getTest
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - getNextLevel
    - strncmp_nullcheck
    - log_err
    linkageType: ''
    returnType: TestNode*
    signature: 'const TestNode * T_CTEST_EXPORT2getTest(const TestNode* root, const
      char* name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/icu/source/tools/ctestfw/ctest.c:1272,1
    - Dst: perror
      Src: /src/icu/source/tools/ctestfw/ctest.c:1274,1
    - Dst: isalnum
      Src: /src/icu/source/tools/ctestfw/ctest.c:1278,1
    - Dst: strcpy
      Src: /src/icu/source/tools/ctestfw/ctest.c:1281,1
    - Dst: fprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1275,1
    - Dst: strlen
      Src: /src/icu/source/tools/ctestfw/ctest.c:1283,1
    - Dst: isalnum
      Src: /src/icu/source/tools/ctestfw/ctest.c:1284,1
    - Dst: fprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1289,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - rootName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1292
      start: 1268
    functionDepth: 0
    functionLinenumber: 1268
    functionLinenumberEnd: 1292
    functionName: ctest_xml_init
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - fopen
    - strcpy
    - strlen
    - isalnum
    - fprintf
    - perror
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t T_CTEST_EXPORT2 ctest_xml_init(const char *rootName) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/icu/source/tools/ctestfw/ctest.c:870,1
    - Dst: vlog_info
      Src: /src/icu/source/tools/ctestfw/ctest.c:882,1
    - Dst: go_offline_err
      Src: /src/icu/source/tools/ctestfw/ctest.c:872,1
    - Dst: strchr
      Src: /src/icu/source/tools/ctestfw/ctest.c:877,1
    - Dst: vlog_err
      Src: /src/icu/source/tools/ctestfw/ctest.c:880,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - pattern
    - '...'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 884
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 884
    functionName: log_data_err
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - vlog_info
    - strchr
    - go_offline_err
    - vlog_err
    - va_start
    linkageType: ''
    returnType: void
    signature: 'void T_CTEST_EXPORT2 log_data_err(const char* pattern, ...) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getNextLevel
      Src: /src/icu/source/tools/ctestfw/ctest.c:238,1
    - Dst: createTestNode
      Src: /src/icu/source/tools/ctestfw/ctest.c:253,1
    - Dst: getNextLevel
      Src: /src/icu/source/tools/ctestfw/ctest.c:250,1
    - Dst: strncmp_nullcheck
      Src: /src/icu/source/tools/ctestfw/ctest.c:264,1
    - Dst: createTestNode
      Src: /src/icu/source/tools/ctestfw/ctest.c:272,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 2
    argNames:
    - root
    - name
    argTypes:
    - TestNode*
    - char*
    constantsTouched: []
    func_position:
      end: 289
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 289
    functionName: addTestNode
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - getNextLevel
    - strncmp_nullcheck
    - createTestNode
    linkageType: ''
    returnType: TestNode*
    signature: 'static TestNode *addTestNode ( TestNode *root, const char *name ) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/tools/ctestfw/ctest.c:513,1
    - Dst: udbg_knownIssue_print
      Src: /src/icu/source/tools/ctestfw/ctest.c:523,1
    - Dst: fprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:524,1
    - Dst: iterateTestsWithLevel
      Src: /src/icu/source/tools/ctestfw/ctest.c:516,1
    - Dst: udbg_knownIssue_close
      Src: /src/icu/source/tools/ctestfw/ctest.c:526,1
    - Dst: fprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:532,1
    - Dst: fflush
      Src: /src/icu/source/tools/ctestfw/ctest.c:533,1
    - Dst: fprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:534,1
    - Dst: fflush
      Src: /src/icu/source/tools/ctestfw/ctest.c:535,1
    - Dst: fprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:536,1
    - Dst: fclose
      Src: /src/icu/source/tools/ctestfw/ctest.c:544,1
    - Dst: log_testinfo
      Src: /src/icu/source/tools/ctestfw/ctest.c:559,1
    - Dst: fopen
      Src: /src/icu/source/tools/ctestfw/ctest.c:540,1
    - Dst: fprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:538,1
    - Dst: log_testinfo
      Src: /src/icu/source/tools/ctestfw/ctest.c:550,1
    - Dst: fprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:543,1
    - Dst: log_testinfo
      Src: /src/icu/source/tools/ctestfw/ctest.c:555,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode*
    constantsTouched: []
    func_position:
      end: 562
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 562
    functionName: T_CTEST_EXPORT2
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - iterateTestsWithLevel
    - udbg_knownIssue_print
    - fclose
    - udbg_knownIssue_close
    - fopen
    - log_err
    - log_testinfo
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'void T_CTEST_EXPORT2runTests ( const TestNode *root ) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_testinfo
      Src: /src/icu/source/tools/ctestfw/ctest.c:640,1
    - Dst: fputs
      Src: /src/icu/source/tools/ctestfw/ctest.c:646,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - mrk
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 649
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 649
    functionName: go_offline_with_marker
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - log_testinfo
    - fputs
    linkageType: ''
    returnType: void
    signature: 'static void go_offline_with_marker(const char *mrk) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: go_offline_with_marker
      Src: /src/icu/source/tools/ctestfw/ctest.c:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 661
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 661
    functionName: first_line_verbose
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - go_offline_with_marker
    linkageType: ''
    returnType: void
    signature: 'static void first_line_verbose() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/icu/source/tools/ctestfw/ctest.c:810,1
    - Dst: vlog_knownIssue
      Src: /src/icu/source/tools/ctestfw/ctest.c:811,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - ticket
    - pattern
    - '...'
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 812
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 812
    functionName: log_knownIssue
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - vlog_knownIssue
    - va_start
    linkageType: ''
    returnType: UBool
    signature: 'UBool T_CTEST_EXPORT2 log_knownIssue(const char *ticket, const char
      *pattern, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/icu/source/tools/ctestfw/ctest.c:852,1
    - Dst: vlog_info
      Src: /src/icu/source/tools/ctestfw/ctest.c:853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - pattern
    - '...'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 854
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 854
    functionName: log_info
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - vlog_info
    - va_start
    linkageType: ''
    returnType: void
    signature: 'void T_CTEST_EXPORT2 log_info(const char* pattern, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1185,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1190,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1189,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1192,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1191,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1193,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1194,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1195,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1196,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1197,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1199,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1205,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1200,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1201,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1204,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1202,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1206
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1206
    functionName: help
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void help ( const char *argv0 ) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 1
    argNames:
    - testOption
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 1226
      start: 1208
    functionDepth: 0
    functionLinenumber: 1208
    functionLinenumberEnd: 1226
    functionName: T_CTEST_EXPORT2
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t T_CTEST_EXPORT2getTestOption ( int32_t testOption ) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/icu/source/tools/ctestfw/ctest.c:681,1
    - Dst: fflush
      Src: /src/icu/source/tools/ctestfw/ctest.c:687,1
    - Dst: vfprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:686,1
    - Dst: fprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:682,1
    - Dst: fputs
      Src: /src/icu/source/tools/ctestfw/ctest.c:684,1
    - Dst: va_end
      Src: /src/icu/source/tools/ctestfw/ctest.c:688,1
    - Dst: strlen
      Src: /src/icu/source/tools/ctestfw/ctest.c:689,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - prefix
    - pattern
    - ap
    argTypes:
    - char*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 695
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 695
    functionName: vlog_err
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - vfprintf
    - va_end
    - fputs
    - strlen
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void vlog_err(const char *prefix, const char *pattern, va_list
      ap) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/icu/source/tools/ctestfw/ctest.c:818,1
    - Dst: first_line_err
      Src: /src/icu/source/tools/ctestfw/ctest.c:824,1
    - Dst: strchr
      Src: /src/icu/source/tools/ctestfw/ctest.c:826,1
    - Dst: vlog_info
      Src: /src/icu/source/tools/ctestfw/ctest.c:833,1
    - Dst: vlog_err
      Src: /src/icu/source/tools/ctestfw/ctest.c:831,1
    - Dst: first_line_err
      Src: /src/icu/source/tools/ctestfw/ctest.c:836,1
    - Dst: strchr
      Src: /src/icu/source/tools/ctestfw/ctest.c:838,1
    - Dst: vlog_err
      Src: /src/icu/source/tools/ctestfw/ctest.c:843,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - status
    - pattern
    - '...'
    argTypes:
    - UErrorCode
    - char*
    constantsTouched: []
    func_position:
      end: 845
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 845
    functionName: log_err_status
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - vlog_info
    - first_line_err
    - strchr
    - vlog_err
    - va_start
    linkageType: ''
    returnType: void
    signature: 'void T_CTEST_EXPORT2 log_err_status(UErrorCode status, const char*
      pattern, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/icu/source/tools/ctestfw/ctest.c:861,1
    - Dst: vlog_verbose
      Src: /src/icu/source/tools/ctestfw/ctest.c:862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - pattern
    - '...'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 863
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 863
    functionName: log_verbose
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - vlog_verbose
    - va_start
    linkageType: ''
    returnType: void
    signature: 'void T_CTEST_EXPORT2 log_verbose(const char* pattern, ...) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getTestOption
      Src: /src/icu/source/tools/ctestfw/ctest.c:1231,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 2
    argNames:
    - testOption
    - value
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1253
      start: 1228
    functionDepth: 0
    functionLinenumber: 1228
    functionLinenumberEnd: 1253
    functionName: T_CTEST_EXPORT2
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - getTestOption
    linkageType: ''
    returnType: void
    signature: 'void T_CTEST_EXPORT2setTestOption ( int32_t testOption, int32_t value) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1299,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1301,1
    - Dst: fclose
      Src: /src/icu/source/tools/ctestfw/ctest.c:1300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1296
    functionDepth: 0
    functionLinenumber: 1296
    functionLinenumberEnd: 1304
    functionName: (void)
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - fclose
    - fprintf
    - printf
    linkageType: ''
    returnType: ctest_xml_fini
    signature: 'ctest_xml_fini (void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: createTestNode
      Src: /src/icu/source/tools/ctestfw/ctest.c:211,1
    - Dst: assert
      Src: /src/icu/source/tools/ctestfw/ctest.c:214,1
    - Dst: addTestNode
      Src: /src/icu/source/tools/ctestfw/ctest.c:213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - root
    - test
    - name
    argTypes:
    - TestNode**
    - TestFunctionPtr
    - char*
    constantsTouched: []
    func_position:
      end: 218
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 218
    functionName: addTest
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - createTestNode
    - addTestNode
    - assert
    linkageType: ''
    returnType: void
    signature: 'void T_CTEST_EXPORT2 addTest(TestNode** root, TestFunctionPtr test,
      const char* name ) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ctest_xml_init
      Src: /src/icu/source/tools/ctestfw/ctest.c:1112,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1129,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1120,1
    - Dst: showTests
      Src: /src/icu/source/tools/ctestfw/ctest.c:1136,1
    - Dst: getTest
      Src: /src/icu/source/tools/ctestfw/ctest.c:1125,1
    - Dst: runTests
      Src: /src/icu/source/tools/ctestfw/ctest.c:1138,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:1145,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:1145,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:1147,1
    - Dst: showTests
      Src: /src/icu/source/tools/ctestfw/ctest.c:1157,1
    - Dst: runTests
      Src: /src/icu/source/tools/ctestfw/ctest.c:1159,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1167,1
    - Dst: ctest_xml_fini
      Src: /src/icu/source/tools/ctestfw/ctest.c:1172,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 3
    argNames:
    - root
    - argc
    - argv
    argTypes:
    - TestNode*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 1177
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1177
    functionName: runTestRequest
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - ctest_xml_fini
    - showTests
    - strcmp
    - ctest_xml_init
    - runTests
    - getTest
    - printf
    linkageType: ''
    returnType: int
    signature: 'int T_CTEST_EXPORT2 runTestRequest(const TestNode* root, int argc,
      const char* const argv[]) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/tools/ctestfw/ctest.c:142,1
    - Dst: strncmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:146,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: strncmp_nullcheck
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - strlen
    - strncmp
    linkageType: ''
    returnType: int
    signature: 'static int strncmp_nullcheck( const char* s1, const char* s2, int
      n ) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: go_offline_with_marker
      Src: /src/icu/source/tools/ctestfw/ctest.c:652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 653
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 653
    functionName: go_offline
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - go_offline_with_marker
    linkageType: ''
    returnType: void
    signature: 'static void go_offline() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: go_offline_with_marker
      Src: /src/icu/source/tools/ctestfw/ctest.c:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 665
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 665
    functionName: first_line_err
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - go_offline_with_marker
    linkageType: ''
    returnType: void
    signature: 'static void first_line_err() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/icu/source/tools/ctestfw/ctest.c:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 673
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 673
    functionName: first_line_test
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - fputs
    linkageType: ''
    returnType: void
    signature: 'static void first_line_test() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vsprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:706,1
    - Dst: log_info
      Src: /src/icu/source/tools/ctestfw/ctest.c:711,1
    - Dst: log_verbose
      Src: /src/icu/source/tools/ctestfw/ctest.c:713,1
    - Dst: udbg_knownIssue_open
      Src: /src/icu/source/tools/ctestfw/ctest.c:707,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 3
    argNames:
    - ticket
    - pattern
    - ap
    argTypes:
    - char*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 717
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 717
    functionName: vlog_knownIssue
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - udbg_knownIssue_open
    - vsprintf
    - log_info
    - log_verbose
    linkageType: ''
    returnType: UBool
    signature: 'static UBool vlog_knownIssue(const char *ticket, const char *pattern,
      va_list ap) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: first_line_verbose
      Src: /src/icu/source/tools/ctestfw/ctest.c:772,1
    - Dst: fputs
      Src: /src/icu/source/tools/ctestfw/ctest.c:775,1
    - Dst: vfprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:777,1
    - Dst: fprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:773,1
    - Dst: fflush
      Src: /src/icu/source/tools/ctestfw/ctest.c:778,1
    - Dst: va_end
      Src: /src/icu/source/tools/ctestfw/ctest.c:779,1
    - Dst: strlen
      Src: /src/icu/source/tools/ctestfw/ctest.c:781,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - prefix
    - pattern
    - ap
    argTypes:
    - char*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 786
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 786
    functionName: vlog_verbose
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - vfprintf
    - va_end
    - first_line_verbose
    - fputs
    - strlen
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void vlog_verbose(const char *prefix, const char *pattern,
      va_list ap) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/icu/source/tools/ctestfw/ctest.c:155,1
    - Dst: strncpy
      Src: /src/icu/source/tools/ctestfw/ctest.c:162,1
    - Dst: strlen
      Src: /src/icu/source/tools/ctestfw/ctest.c:167,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - name
    - nameLen
    - nextName
    argTypes:
    - char*
    - int*
    - char**
    constantsTouched: []
    func_position:
      end: 169
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 169
    functionName: getNextLevel
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - strlen
    - strchr
    - strncpy
    linkageType: ''
    returnType: void
    signature: 'static void getNextLevel( const char* name, int* nameLen, const char**
      nextName ) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: first_line_info
      Src: /src/icu/source/tools/ctestfw/ctest.c:723,1
    - Dst: fflush
      Src: /src/icu/source/tools/ctestfw/ctest.c:729,1
    - Dst: fputs
      Src: /src/icu/source/tools/ctestfw/ctest.c:726,1
    - Dst: vfprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:728,1
    - Dst: fprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:724,1
    - Dst: va_end
      Src: /src/icu/source/tools/ctestfw/ctest.c:730,1
    - Dst: strlen
      Src: /src/icu/source/tools/ctestfw/ctest.c:731,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - prefix
    - pattern
    - ap
    argTypes:
    - char*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 737
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 737
    functionName: vlog_info
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - vfprintf
    - va_end
    - first_line_info
    - fputs
    - strlen
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'void T_CTEST_EXPORT2 vlog_info(const char *prefix, const char *pattern,
      va_list ap) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: first_line_err
      Src: /src/icu/source/tools/ctestfw/ctest.c:792,1
    - Dst: va_start
      Src: /src/icu/source/tools/ctestfw/ctest.c:803,1
    - Dst: vlog_err
      Src: /src/icu/source/tools/ctestfw/ctest.c:804,1
    - Dst: strchr
      Src: /src/icu/source/tools/ctestfw/ctest.c:793,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pattern
    - '...'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 805
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 805
    functionName: log_err
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - vlog_err
    - first_line_err
    - strchr
    - va_start
    linkageType: ''
    returnType: void
    signature: 'void T_CTEST_EXPORT2 log_err(const char* pattern, ...) '
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: strcat
      Src: /src/icu/source/tools/ctestfw/ctest.c:353,1
    - Dst: log_testinfo
      Src: /src/icu/source/tools/ctestfw/ctest.c:394,1
    - Dst: ctest_xml_testcase
      Src: /src/icu/source/tools/ctestfw/ctest.c:408,1
    - Dst: sprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:406,1
    - Dst: strcpy
      Src: /src/icu/source/tools/ctestfw/ctest.c:412,1
    - Dst: log_testinfo
      Src: /src/icu/source/tools/ctestfw/ctest.c:439,1
    - Dst: log_testinfo_i
      Src: /src/icu/source/tools/ctestfw/ctest.c:457,1
    - Dst: print_timeDelta
      Src: /src/icu/source/tools/ctestfw/ctest.c:476,1
    - Dst: log_testinfo
      Src: /src/icu/source/tools/ctestfw/ctest.c:481,1
    - Dst: log_testinfo_i
      Src: /src/icu/source/tools/ctestfw/ctest.c:361,1
    - Dst: uprv_getRawUTCtime
      Src: /src/icu/source/tools/ctestfw/ctest.c:391,1
    - Dst: log_testinfo
      Src: /src/icu/source/tools/ctestfw/ctest.c:424,1
    - Dst: log_testinfo
      Src: /src/icu/source/tools/ctestfw/ctest.c:449,1
    - Dst: iterateTestsWithLevel
      Src: /src/icu/source/tools/ctestfw/ctest.c:453,1
    - Dst: log_testinfo
      Src: /src/icu/source/tools/ctestfw/ctest.c:462,1
    - Dst: uprv_getRawUTCtime
      Src: /src/icu/source/tools/ctestfw/ctest.c:475,1
    - Dst: uprv_getRawUTCtime
      Src: /src/icu/source/tools/ctestfw/ctest.c:340,1
    - Dst: strcat
      Src: /src/icu/source/tools/ctestfw/ctest.c:356,1
    - Dst: strcat
      Src: /src/icu/source/tools/ctestfw/ctest.c:354,1
    - Dst: log_testinfo_i
      Src: /src/icu/source/tools/ctestfw/ctest.c:411,1
    - Dst: strlen
      Src: /src/icu/source/tools/ctestfw/ctest.c:422,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:429,1
    - Dst: log_testinfo_i
      Src: /src/icu/source/tools/ctestfw/ctest.c:363,1
    - Dst: uprv_getRawUTCtime
      Src: /src/icu/source/tools/ctestfw/ctest.c:386,1
    - Dst: strcpy
      Src: /src/icu/source/tools/ctestfw/ctest.c:388,1
    - Dst: str_timeDelta
      Src: /src/icu/source/tools/ctestfw/ctest.c:405,1
    - Dst: log_testinfo
      Src: /src/icu/source/tools/ctestfw/ctest.c:418,1
    - Dst: log_testinfo_i
      Src: /src/icu/source/tools/ctestfw/ctest.c:416,1
    - Dst: log_testinfo
      Src: /src/icu/source/tools/ctestfw/ctest.c:459,1
    - Dst: log_testinfo
      Src: /src/icu/source/tools/ctestfw/ctest.c:464,1
    - Dst: iterateTestsWithLevel
      Src: /src/icu/source/tools/ctestfw/ctest.c:485,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 127
    argCount: 4
    argNames:
    - root
    - depth
    - nodeList
    - mode
    argTypes:
    - TestNode*
    - int
    - TestNode**
    - TestMode
    constantsTouched: []
    func_position:
      end: 487
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 487
    functionName: iterateTestsWithLevel
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - sprintf
    - iterateTestsWithLevel
    - uprv_getRawUTCtime
    - str_timeDelta
    - strcpy
    - printf
    - print_timeDelta
    - log_testinfo_i
    - log_testinfo
    - ctest_xml_testcase
    - strcat
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void iterateTestsWithLevel ( const TestNode* root, int depth,
      const TestNode** nodeList, TestMode mode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: go_offline_with_marker
      Src: /src/icu/source/tools/ctestfw/ctest.c:668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 669
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 669
    functionName: first_line_info
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - go_offline_with_marker
    linkageType: ''
    returnType: void
    signature: 'static void first_line_info() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/icu/source/tools/ctestfw/ctest.c:758,1
    - Dst: va_end
      Src: /src/icu/source/tools/ctestfw/ctest.c:762,1
    - Dst: vfprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:760,1
    - Dst: first_line_test
      Src: /src/icu/source/tools/ctestfw/ctest.c:759,1
    - Dst: fflush
      Src: /src/icu/source/tools/ctestfw/ctest.c:761,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pattern
    - '...'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 764
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 764
    functionName: log_testinfo
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - vfprintf
    - first_line_test
    - va_end
    - va_start
    - fflush
    linkageType: ''
    returnType: void
    signature: 'static void log_testinfo(const char *pattern, ...) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utrace_format
      Src: /src/icu/source/tools/ctestfw/ctest.c:907,1
    - Dst: fputs
      Src: /src/icu/source/tools/ctestfw/ctest.c:909,1
    - Dst: utrace_vformat
      Src: /src/icu/source/tools/ctestfw/ctest.c:910,1
    - Dst: utrace_functionName
      Src: /src/icu/source/tools/ctestfw/ctest.c:907,1
    - Dst: fputs
      Src: /src/icu/source/tools/ctestfw/ctest.c:912,1
    - Dst: putc
      Src: /src/icu/source/tools/ctestfw/ctest.c:913,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - context
    - fnNumber
    - fmt
    - args
    argTypes:
    - void*
    - int32_t
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 914
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 914
    functionName: TraceExit
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - putc
    - utrace_format
    - utrace_vformat
    - fputs
    - utrace_functionName
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV TraceExit(const void *context, int32_t fnNumber,
      const char *fmt, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/tools/ctestfw/ctest.c:937,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - context
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 938
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 938
    functionName: ctest_libMalloc
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void*
    signature: 'static void *U_CALLCONV ctest_libMalloc(const void *context, size_t
      size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/icu/source/tools/ctestfw/ctest.c:952,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - context
    - mem
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 953
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 953
    functionName: ctest_libFree
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV ctest_libFree(const void *context, void *mem) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/tools/ctestfw/ctest.c:498,1
    - Dst: iterateTestsWithLevel
      Src: /src/icu/source/tools/ctestfw/ctest.c:500,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - root
    argTypes:
    - TestNode*
    constantsTouched: []
    func_position:
      end: 502
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 502
    functionName: T_CTEST_EXPORT2
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - iterateTestsWithLevel
    - log_err
    linkageType: ''
    returnType: void
    signature: 'void T_CTEST_EXPORT2showTests ( const TestNode *root ) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utrace_format
      Src: /src/icu/source/tools/ctestfw/ctest.c:895,1
    - Dst: fputs
      Src: /src/icu/source/tools/ctestfw/ctest.c:897,1
    - Dst: utrace_functionName
      Src: /src/icu/source/tools/ctestfw/ctest.c:895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - context
    - fnNumber
    argTypes:
    - void*
    - int32_t
    constantsTouched: []
    func_position:
      end: 899
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 899
    functionName: TraceEntry
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - utrace_format
    - fputs
    - utrace_functionName
    linkageType: ''
    returnType: U_CALLCONV
    signature: 'U_CALLCONV TraceEntry(const void *context, int32_t fnNumber) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utrace_vformat
      Src: /src/icu/source/tools/ctestfw/ctest.c:923,1
    - Dst: putc
      Src: /src/icu/source/tools/ctestfw/ctest.c:926,1
    - Dst: fputs
      Src: /src/icu/source/tools/ctestfw/ctest.c:925,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - context
    - fnNumber
    - level
    - fmt
    - args
    argTypes:
    - void*
    - int32_t
    - int32_t
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 927
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 927
    functionName: TraceData
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - putc
    - utrace_vformat
    - fputs
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV TraceData(const void *context, int32_t fnNumber,
      int32_t level, const char *fmt, va_list args) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/icu/source/tools/ctestfw/ctest.c:948,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - context
    - mem
    - size
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 949
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 949
    functionName: ctest_libRealloc
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void*
    signature: 'static void *U_CALLCONV ctest_libRealloc(const void *context, void
      *mem, size_t size) '
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:982,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:986,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:990,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:994,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/ctestfw/ctest.c:1031,1
    - Dst: help
      Src: /src/icu/source/tools/ctestfw/ctest.c:1024,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/ctestfw/ctest.c:1032,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:1036,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1082,1
    - Dst: help
      Src: /src/icu/source/tools/ctestfw/ctest.c:1083,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:973,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:973,1
    - Dst: strncmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:998,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:1002,1
    - Dst: help
      Src: /src/icu/source/tools/ctestfw/ctest.c:1015,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:1006,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1032,1
    - Dst: ctest_xml_setFileName
      Src: /src/icu/source/tools/ctestfw/ctest.c:1052,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:1071,1
    - Dst: help
      Src: /src/icu/source/tools/ctestfw/ctest.c:1073,1
    - Dst: argHandler
      Src: /src/icu/source/tools/ctestfw/ctest.c:1076,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:978,1
    - Dst: u_setMemoryFunctions
      Src: /src/icu/source/tools/ctestfw/ctest.c:1030,1
    - Dst: strtol
      Src: /src/icu/source/tools/ctestfw/ctest.c:1012,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1014,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1049,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:1056,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:1059,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:1062,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:1065,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:1068,1
    - Dst: utrace_setFunctions
      Src: /src/icu/source/tools/ctestfw/ctest.c:1088,1
    - Dst: utrace_setLevel
      Src: /src/icu/source/tools/ctestfw/ctest.c:1089,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:978,1
    - Dst: strtol
      Src: /src/icu/source/tools/ctestfw/ctest.c:1021,1
    - Dst: printf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1023,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:1036,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:1040,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:1046,1
    - Dst: strcmp
      Src: /src/icu/source/tools/ctestfw/ctest.c:1071,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 135
    argCount: 4
    argNames:
    - argc
    - argv
    - argHandler
    - context
    argTypes:
    - int
    - char*
    - ArgHandlerPtr
    - void*
    constantsTouched: []
    func_position:
      end: 1093
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 1093
    functionName: initArgs
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - u_setMemoryFunctions
    - utrace_setFunctions
    - U_FAILURE
    - strcmp
    - u_errorName
    - ctest_xml_setFileName
    - argHandler
    - help
    - strncmp
    - strtol
    - printf
    - utrace_setLevel
    linkageType: ''
    returnType: int
    signature: 'int T_CTEST_EXPORT2 initArgs( int argc, const char* const argv[],
      ArgHandlerPtr argHandler, void *context) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1312,1
    - Dst: fprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1314,1
    - Dst: fprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:1316,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 4
    argNames:
    - classname
    - name
    - timeSeconds
    - failMsg
    argTypes:
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1320
      start: 1307
    functionDepth: 0
    functionLinenumber: 1307
    functionLinenumberEnd: 1320
    functionName: ctest_xml_testcase
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t T_CTEST_EXPORT2 ctest_xml_testcase(const char *classname,
      const char *name, const char *timeSeconds, const char *failMsg) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: first_line_test
      Src: /src/icu/source/tools/ctestfw/ctest.c:744,1
    - Dst: va_start
      Src: /src/icu/source/tools/ctestfw/ctest.c:746,1
    - Dst: fflush
      Src: /src/icu/source/tools/ctestfw/ctest.c:748,1
    - Dst: fprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:745,1
    - Dst: vfprintf
      Src: /src/icu/source/tools/ctestfw/ctest.c:747,1
    - Dst: va_end
      Src: /src/icu/source/tools/ctestfw/ctest.c:749,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pattern
    - '...'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 751
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 751
    functionName: log_testinfo_i
    functionSourceFile: /src/icu/source/tools/ctestfw/ctest.c
    functionUses: []
    functionsReached:
    - vfprintf
    - first_line_test
    - va_end
    - va_start
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void log_testinfo_i(const char *pattern, ...) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getTestDataPath
      Src: /src/icu/source/tools/ctestfw/unicode/testlog.h:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: T_CTEST_EXPORT_API
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/testlog.h
    functionUses: []
    functionsReached:
    - getTestDataPath
    linkageType: ''
    returnType: class
    signature: 'class T_CTEST_EXPORT_API TestLog '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 84
    functionName: T_CTEST_EXPORT_API
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/testdata.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class T_CTEST_EXPORT_API TestData '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utimer_getTime
      Src: /src/icu/source/tools/ctestfw/unicode/uperf.h:121,1
    - Dst: utimer_getTime
      Src: /src/icu/source/tools/ctestfw/unicode/uperf.h:125,1
    - Dst: utimer_getDeltaSeconds
      Src: /src/icu/source/tools/ctestfw/unicode/uperf.h:126,1
    - Dst: call
      Src: /src/icu/source/tools/ctestfw/unicode/uperf.h:123,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 129
    functionName: T_CTEST_EXPORT_API
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/uperf.h
    functionUses: []
    functionsReached:
    - utimer_getTime
    - utimer_getDeltaSeconds
    - call
    linkageType: ''
    returnType: class
    signature: 'class T_CTEST_EXPORT_API UPerfFunction '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utimer_getTime
      Src: /src/icu/source/tools/ctestfw/unicode/uperf.h:121,1
    - Dst: utimer_getTime
      Src: /src/icu/source/tools/ctestfw/unicode/uperf.h:125,1
    - Dst: utimer_getDeltaSeconds
      Src: /src/icu/source/tools/ctestfw/unicode/uperf.h:126,1
    - Dst: call
      Src: /src/icu/source/tools/ctestfw/unicode/uperf.h:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - n
    - status
    argTypes:
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: time
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/uperf.h
    functionUses: []
    functionsReached:
    - utimer_getTime
    - utimer_getDeltaSeconds
    - call
    linkageType: ''
    returnType: virtual
    signature: 'virtual double time(int32_t n, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: getEventsPerIteration
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/uperf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual long
    signature: 'virtual long getEventsPerIteration() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getLines
      Src: /src/icu/source/tools/ctestfw/unicode/uperf.h:145,1
    - Dst: callTest
      Src: /src/icu/source/tools/ctestfw/unicode/uperf.h:164,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 195
    functionName: T_CTEST_EXPORT_API
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/uperf.h
    functionUses: []
    functionsReached:
    - callTest
    - getLines
    linkageType: ''
    returnType: class
    signature: 'class T_CTEST_EXPORT_API UPerfTest '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DataMap
      Src: /src/icu/source/tools/ctestfw/unicode/datamap.h:33,1
    - Dst: getIntArray
      Src: /src/icu/source/tools/ctestfw/unicode/datamap.h:97,1
    - Dst: getIntVector
      Src: /src/icu/source/tools/ctestfw/unicode/datamap.h:74,1
    - Dst: getBinary
      Src: /src/icu/source/tools/ctestfw/unicode/datamap.h:83,1
    - Dst: getStringArray
      Src: /src/icu/source/tools/ctestfw/unicode/datamap.h:90,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 100
    functionName: DataMap
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/datamap.h
    functionUses: []
    functionsReached:
    - DataMap
    - getIntVector
    - getStringArray
    - getBinary
    - getIntArray
    linkageType: ''
    returnType: T_CTEST_EXPORT_API
    signature: 'T_CTEST_EXPORT_API DataMap '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 84
    functionName: T_CTEST_EXPORT_API
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/tstdtmod.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class T_CTEST_EXPORT_API TestDataModule '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QueryPerformanceCounter
      Src: /src/icu/source/tools/ctestfw/unicode/utimer.h:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - timer
    argTypes:
    - UTimer*
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: uprv_start
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/utimer.h
    functionUses: []
    functionsReached:
    - QueryPerformanceCounter
    linkageType: ''
    returnType: void
    signature: 'static void uprv_start(UTimer* timer) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/icu/source/tools/ctestfw/unicode/utimer.h:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - timer
    argTypes:
    - UTimer*
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: uprv_start
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/utimer.h
    functionUses: []
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: 'static void uprv_start(UTimer* timer) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uprv_compareFrequency
      Src: /src/icu/source/tools/ctestfw/unicode/utimer.h:234,1
    - Dst: uprv_delta
      Src: /src/icu/source/tools/ctestfw/unicode/utimer.h:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - timer1
    - timer2
    argTypes:
    - UTimer*
    - UTimer*
    constantsTouched: []
    func_position:
      end: 239
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 239
    functionName: utimer_getDeltaSeconds
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/utimer.h
    functionUses: []
    functionsReached:
    - uprv_delta
    - uprv_compareFrequency
    linkageType: ''
    returnType: double
    signature: 'static inline double U_EXPORT2 utimer_getDeltaSeconds(UTimer* timer1,
      UTimer* timer2) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utimer_getTime
      Src: /src/icu/source/tools/ctestfw/unicode/utimer.h:271,1
    - Dst: fn
      Src: /src/icu/source/tools/ctestfw/unicode/utimer.h:273,1
    - Dst: utimer_getElapsedSeconds
      Src: /src/icu/source/tools/ctestfw/unicode/utimer.h:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - thresholdTimeVal
    - loopCount
    - fn
    - param
    argTypes:
    - double
    - int32_t*
    - FuntionToBeTimed
    - void*
    constantsTouched: []
    func_position:
      end: 278
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 278
    functionName: utimer_loopUntilDone
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/utimer.h
    functionUses: []
    functionsReached:
    - utimer_getTime
    - fn
    - utimer_getElapsedSeconds
    linkageType: ''
    returnType: double
    signature: 'static inline double U_EXPORT2 utimer_loopUntilDone(double thresholdTimeVal,
      int32_t* loopCount, FuntionToBeTimed fn, void* param) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QueryPerformanceFrequency
      Src: /src/icu/source/tools/ctestfw/unicode/utimer.h:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - timer
    argTypes:
    - UTimer*
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: uprv_initFrequency
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/utimer.h
    functionUses: []
    functionsReached:
    - QueryPerformanceFrequency
    linkageType: ''
    returnType: int
    signature: 'static int uprv_initFrequency(UTimer* timer) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - timer1
    - timer2
    argTypes:
    - UTimer*
    - UTimer*
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: uprv_compareFrequency
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/utimer.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool uprv_compareFrequency(UTimer* timer1, UTimer* timer2) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - timer1
    - timer2
    argTypes:
    - UTimer*
    - UTimer*
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: uprv_delta
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/utimer.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: 'static double uprv_delta(UTimer* timer1, UTimer* timer2) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - '*'
    - /*timer*/
    argTypes:
    - UTimer
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: uprv_initFrequency
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/utimer.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t uprv_initFrequency(UTimer* /*timer*/) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - timer1
    - timer2
    argTypes:
    - UTimer*
    - UTimer*
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: uprv_delta
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/utimer.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: 'static double uprv_delta(UTimer* timer1, UTimer* timer2) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - '*'
    - /*timer1*/
    - '*'
    - /*timer2*/
    argTypes:
    - UTimer
    - UTimer
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: uprv_compareFrequency
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/utimer.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool uprv_compareFrequency(UTimer* /*timer1*/, UTimer* /*timer2*/) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_initFrequency
      Src: /src/icu/source/tools/ctestfw/unicode/utimer.h:220,1
    - Dst: uprv_start
      Src: /src/icu/source/tools/ctestfw/unicode/utimer.h:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - timer
    argTypes:
    - UTimer*
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: utimer_getTime
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/utimer.h
    functionUses: []
    functionsReached:
    - uprv_initFrequency
    - uprv_start
    linkageType: ''
    returnType: void
    signature: 'static inline void U_EXPORT2 utimer_getTime(UTimer* timer) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utimer_getTime
      Src: /src/icu/source/tools/ctestfw/unicode/utimer.h:250,1
    - Dst: uprv_delta
      Src: /src/icu/source/tools/ctestfw/unicode/utimer.h:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - timer
    argTypes:
    - UTimer*
    constantsTouched: []
    func_position:
      end: 252
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 252
    functionName: utimer_getElapsedSeconds
    functionSourceFile: /src/icu/source/tools/ctestfw/unicode/utimer.h
    functionUses: []
    functionsReached:
    - utimer_getTime
    - uprv_delta
    linkageType: ''
    returnType: double
    signature: 'static inline double U_EXPORT2 utimer_getElapsedSeconds(UTimer* timer) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pkg_prependToList
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:180,1
    - Dst: pkg_prependToList
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:184,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 3
    argNames:
    - l
    - end
    - str
    argTypes:
    - CharList*
    - CharList**
    - char*
    constantsTouched: []
    func_position:
      end: 198
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 198
    functionName: pkg_appendToList
    functionSourceFile: /src/icu/source/tools/pkgdata/pkgtypes.c
    functionUses: []
    functionsReached:
    - pkg_prependToList
    linkageType: ''
    returnType: CharList*
    signature: 'CharList *pkg_appendToList(CharList *l, CharList** end, const char
      *str) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strncpy
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:81,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:83,1
    - Dst: exit
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:87,1
    - Dst: fprintf
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:85,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:90,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:91,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:94,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:98,1
    - Dst: uprv_strcat
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:99,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:101,1
    - Dst: T_FileStream_write
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:105,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:110,1
    - Dst: T_FileStream_write
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:110,1
    - Dst: uprv_strcat
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:102,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:105,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 4
    argNames:
    - s
    - l
    - delim
    - quote
    argTypes:
    - FileStream*
    - CharList*
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 115
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 115
    functionName: pkg_writeCharList
    functionSourceFile: /src/icu/source/tools/pkgdata/pkgtypes.c
    functionUses: []
    functionsReached:
    - uprv_strcat
    - uprv_strlen
    - exit
    - uprv_strncpy
    - uprv_strcpy
    - T_FileStream_write
    - fprintf
    linkageType: ''
    returnType: char*
    signature: 'const char *pkg_writeCharList(FileStream *s, CharList *l, const char
      *delim, int32_t quote) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strchr
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:203,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: convertToNativePathSeparators
    functionSourceFile: /src/icu/source/tools/pkgdata/pkgtypes.c
    functionUses: []
    functionsReached:
    - uprv_strchr
    linkageType: ''
    returnType: char*
    signature: 'char * convertToNativePathSeparators(char *path) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strncpy
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:36,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:41,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:48,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:40,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:44,1
    - Dst: uprv_strncat
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:49,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:51,1
    - Dst: uprv_strcat
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:52,1
    - Dst: T_FileStream_write
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:55,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:55,1
    - Dst: T_FileStream_write
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:64,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:66,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:64,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:57,1
    - Dst: T_FileStream_write
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:66,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 5
    argNames:
    - s
    - l
    - delim
    - brk
    - quote
    argTypes:
    - FileStream*
    - CharList*
    - char*
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 71
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 71
    functionName: pkg_writeCharListWrap
    functionSourceFile: /src/icu/source/tools/pkgdata/pkgtypes.c
    functionUses: []
    functionsReached:
    - uprv_strcat
    - uprv_strlen
    - uprv_strncat
    - uprv_strncpy
    - uprv_strcpy
    - T_FileStream_write
    linkageType: ''
    returnType: char*
    signature: 'const char *pkg_writeCharListWrap(FileStream *s, CharList *l, const
      char *delim, const char *brk, int32_t quote) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strrchr
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:213,1
    - Dst: uprv_strrchr
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:216,1
    - Dst: fprintf
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:228,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:227,1
    - Dst: strncpy
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:231,1
    - Dst: convertToNativePathSeparators
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:233,1
    - Dst: pkg_listContains
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:235,1
    - Dst: pkg_appendToList
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:236,1
    - Dst: uprv_strdup
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:236,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 3
    argNames:
    - l
    - end
    - strAlias
    argTypes:
    - CharList*
    - CharList**
    - char*
    constantsTouched: []
    func_position:
      end: 240
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 240
    functionName: pkg_appendUniqueDirToList
    functionSourceFile: /src/icu/source/tools/pkgdata/pkgtypes.c
    functionUses: []
    functionsReached:
    - uprv_strdup
    - uprv_strrchr
    - strncpy
    - convertToNativePathSeparators
    - UPRV_LENGTHOF
    - fprintf
    - pkg_appendToList
    - pkg_listContains
    linkageType: ''
    returnType: CharList*
    signature: 'CharList *pkg_appendUniqueDirToList(CharList *l, CharList** end, const
      char *strAlias) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strcmp
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:295,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - l
    - str
    argTypes:
    - CharList*
    - char*
    constantsTouched: []
    func_position:
      end: 301
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 301
    functionName: pkg_listContains
    functionSourceFile: /src/icu/source/tools/pkgdata/pkgtypes.c
    functionUses: []
    functionsReached:
    - uprv_strcmp
    linkageType: ''
    returnType: UBool
    signature: 'UBool pkg_listContains(CharList *l, const char *str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uprv_malloc
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:139,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - l
    - str
    argTypes:
    - CharList*
    - char*
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: pkg_prependToList
    functionSourceFile: /src/icu/source/tools/pkgdata/pkgtypes.c
    functionUses: []
    functionsReached:
    - uprv_malloc
    linkageType: ''
    returnType: CharList*
    signature: 'CharList *pkg_prependToList(CharList *l, const char *str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - l
    argTypes:
    - CharList*
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: pkg_countCharList
    functionSourceFile: /src/icu/source/tools/pkgdata/pkgtypes.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t pkg_countCharList(CharList *l) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_free
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:285,1
    - Dst: uprv_free
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - l
    argTypes:
    - CharList*
    constantsTouched: []
    func_position:
      end: 290
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 290
    functionName: pkg_deleteList
    functionSourceFile: /src/icu/source/tools/pkgdata/pkgtypes.c
    functionUses: []
    functionsReached:
    - uprv_free
    linkageType: ''
    returnType: void
    signature: 'void pkg_deleteList(CharList *l) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:255,1
    - Dst: uprv_malloc
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:263,1
    - Dst: uprv_strncpy
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:264,1
    - Dst: isspace
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:261,1
    - Dst: isspace
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:260,1
    - Dst: pkg_appendToList
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:266,1
    - Dst: fprintf
      Src: /src/icu/source/tools/pkgdata/pkgtypes.c:267,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 35
    argCount: 4
    argNames:
    - l
    - end
    - s
    - len
    argTypes:
    - CharList*
    - CharList**
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 273
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 273
    functionName: pkg_appendFromStrings
    functionSourceFile: /src/icu/source/tools/pkgdata/pkgtypes.c
    functionUses: []
    functionsReached:
    - uprv_malloc
    - isspace
    - uprv_strlen
    - uprv_strncpy
    - fprintf
    - pkg_appendToList
    linkageType: ''
    returnType: CharList*
    signature: 'static CharList *pkg_appendFromStrings(CharList *l, CharList** end,
      const char *s, int32_t len) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INT_STRLEN_MAXIMUM
      Src: /src/icu/source/tools/tzcode/asctime.c:82,1
    - Dst: strftime
      Src: /src/icu/source/tools/tzcode/asctime.c:101,1
    - Dst: sprintf
      Src: /src/icu/source/tools/tzcode/asctime.c:105,1
    - Dst: strcpy
      Src: /src/icu/source/tools/tzcode/asctime.c:87,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/asctime.c:106,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/asctime.c:111,1
    - Dst: strcpy
      Src: /src/icu/source/tools/tzcode/asctime.c:112,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 2
    argNames:
    - timeptr
    - buf
    argTypes:
    - struct tm*
    - char*
    constantsTouched: []
    func_position:
      end: 121
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 121
    functionName: asctime_r
    functionSourceFile: /src/icu/source/tools/tzcode/asctime.c
    functionUses: []
    functionsReached:
    - sprintf
    - strcpy
    - INT_STRLEN_MAXIMUM
    - strftime
    - strlen
    linkageType: ''
    returnType: char*
    signature: 'char *asctime_r(register const struct tm *timeptr, char *buf) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asctime_r
      Src: /src/icu/source/tools/tzcode/asctime.c:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - timeptr
    argTypes:
    - struct tm*
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: asctime
    functionSourceFile: /src/icu/source/tools/tzcode/asctime.c
    functionUses: []
    functionsReached:
    - asctime_r
    linkageType: ''
    returnType: char*
    signature: 'char *asctime(register const struct tm *timeptr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - codep
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 236
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 236
    functionName: detzcode
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int_fast32_t
    signature: 'static int_fast32_t detzcode(const char *const codep) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_digit
      Src: /src/icu/source/tools/tzcode/localtime.c:652,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - strp
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 656
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 656
    functionName: getzname
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - is_digit
    linkageType: ''
    returnType: char*
    signature: 'static const char *getzname(register const char *strp) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getnum
      Src: /src/icu/source/tools/tzcode/localtime.c:724,1
    - Dst: getnum
      Src: /src/icu/source/tools/tzcode/localtime.c:737,1
    - Dst: getnum
      Src: /src/icu/source/tools/tzcode/localtime.c:730,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - strp
    - secsp
    argTypes:
    - char*
    - int_fast32_t*
    constantsTouched: []
    func_position:
      end: 744
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 744
    functionName: getsecs
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - getnum
    linkageType: ''
    returnType: char*
    signature: 'static const char *getsecs(register const char *strp, int_fast32_t
      *const secsp) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INITIALIZE
      Src: /src/icu/source/tools/tzcode/localtime.c:838,1
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/localtime.c:839,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 3
    argNames:
    - year
    - rulep
    - offset
    argTypes:
    - int
    - struct rule*
    - int_fast32_t
    constantsTouched: []
    func_position:
      end: 913
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 913
    functionName: transtime
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - INITIALIZE
    - isleap
    linkageType: ''
    returnType: int_fast32_t
    signature: "static int_fast32_t transtime(const int year, register const struct
      rule *const rulep,\t const int_fast32_t offset) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asctime_r
      Src: /src/icu/source/tools/tzcode/localtime.c:1560,1
    - Dst: localtime_r
      Src: /src/icu/source/tools/tzcode/localtime.c:1560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 2
    argNames:
    - timep
    - buf
    argTypes:
    - time_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1561
      start: 1555
    functionDepth: 0
    functionLinenumber: 1555
    functionLinenumberEnd: 1561
    functionName: ctime_r
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - localtime_r
    - asctime_r
    linkageType: ''
    returnType: char*
    signature: 'char *ctime_r(const time_t *const timep, char *buf) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: increment_overflow32
      Src: /src/icu/source/tools/tzcode/localtime.c:1646,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - tensptr
    - unitsptr
    - base
    argTypes:
    - int_fast32_t*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 1647
      start: 1636
    functionDepth: 0
    functionLinenumber: 1636
    functionLinenumberEnd: 1647
    functionName: normalize_overflow32
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - increment_overflow32
    linkageType: ''
    returnType: int
    signature: "static int normalize_overflow32(int_fast32_t *const tensptr, int *const
      unitsptr,\t\t const int base) "
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mktime
      Src: /src/icu/source/tools/tzcode/localtime.c:1944,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - tmp
    argTypes:
    - struct tm*
    constantsTouched: []
    func_position:
      end: 1945
      start: 1939
    functionDepth: 0
    functionLinenumber: 1939
    functionLinenumberEnd: 1945
    functionName: timelocal
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - mktime
    linkageType: ''
    returnType: time_t
    signature: 'time_t timelocal(struct tm *const tmp) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - codep
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 248
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 248
    functionName: detzcode64
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int_fast64_t
    signature: 'static int_fast64_t detzcode64(const char *const codep) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - atmp
    - btmp
    argTypes:
    - struct tm*
    - struct tm*
    constantsTouched: []
    func_position:
      end: 1663
      start: 1649
    functionDepth: 0
    functionLinenumber: 1649
    functionLinenumberEnd: 1663
    functionName: tmcomp
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int tmcomp(register const struct tm *const atmp, register const
      struct tm *const btmp) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time1
      Src: /src/icu/source/tools/tzcode/localtime.c:1952,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - tmp
    argTypes:
    - struct tm*
    constantsTouched: []
    func_position:
      end: 1953
      start: 1947
    functionDepth: 0
    functionLinenumber: 1947
    functionLinenumberEnd: 1953
    functionName: timegm
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - time1
    linkageType: ''
    returnType: time_t
    signature: 'time_t timegm(struct tm *const tmp) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tzset
      Src: /src/icu/source/tools/tzcode/localtime.c:2028,1
    - Dst: leapcorr
      Src: /src/icu/source/tools/tzcode/localtime.c:2047,1
    - Dst: leapcorr
      Src: /src/icu/source/tools/tzcode/localtime.c:2036,1
    - Dst: leapcorr
      Src: /src/icu/source/tools/tzcode/localtime.c:2040,1
    - Dst: leapcorr
      Src: /src/icu/source/tools/tzcode/localtime.c:2035,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - t
    argTypes:
    - time_t
    constantsTouched: []
    func_position:
      end: 2053
      start: 2022
    functionDepth: 0
    functionLinenumber: 2022
    functionLinenumberEnd: 2053
    functionName: posix2time
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - leapcorr
    - tzset
    linkageType: ''
    returnType: time_t
    signature: 'time_t posix2time(time_t t) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_digit
      Src: /src/icu/source/tools/tzcode/localtime.c:690,1
    - Dst: is_digit
      Src: /src/icu/source/tools/tzcode/localtime.c:698,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 4
    argNames:
    - strp
    - nump
    - min
    - max
    argTypes:
    - char*
    - int*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 703
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 703
    functionName: getnum
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - is_digit
    linkageType: ''
    returnType: char*
    signature: 'static const char *getnum(register const char *strp, int *const nump,
      const int min, const int max) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gmtsub
      Src: /src/icu/source/tools/tzcode/localtime.c:1390,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 2
    argNames:
    - timep
    - tmp
    argTypes:
    - time_t*
    - struct tm*
    constantsTouched: []
    func_position:
      end: 1391
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1391
    functionName: gmtime_r
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - gmtsub
    linkageType: ''
    returnType: struct tm*
    signature: 'struct tm *gmtime_r(const time_t *const timep, struct tm *tmp) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: leaps_thru_end_of
      Src: /src/icu/source/tools/tzcode/localtime.c:1412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - y
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1413
      start: 1408
    functionDepth: 0
    functionLinenumber: 1408
    functionLinenumberEnd: 1413
    functionName: leaps_thru_end_of
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - leaps_thru_end_of
    linkageType: ''
    returnType: int
    signature: 'static int leaps_thru_end_of(register const int y) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mktime
      Src: /src/icu/source/tools/tzcode/localtime.c:1975,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - tmp
    argTypes:
    - struct tm*
    constantsTouched: []
    func_position:
      end: 1980
      start: 1972
    functionDepth: 0
    functionLinenumber: 1972
    functionLinenumberEnd: 1980
    functionName: gtime
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - mktime
    linkageType: ''
    returnType: long
    signature: 'long gtime(struct tm *const tmp) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/icu/source/tools/tzcode/localtime.c:299,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/localtime.c:308,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/localtime.c:309,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 39
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 312
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 312
    functionName: settzname
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - strlen
    - strchr
    - strcmp
    linkageType: ''
    returnType: void
    signature: 'static void settzname(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: localsub
      Src: /src/icu/source/tools/tzcode/localtime.c:1344,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 2
    argNames:
    - timep
    - tmp
    argTypes:
    - time_t*
    - struct tm*
    constantsTouched: []
    func_position:
      end: 1345
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1345
    functionName: localtime_r
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - localsub
    linkageType: ''
    returnType: struct tm*
    signature: 'struct tm *localtime_r(const time_t *const timep, struct tm *tmp) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/localtime.c:1456,1
    - Dst: TYPE_SIGNED
      Src: /src/icu/source/tools/tzcode/localtime.c:1463,1
    - Dst: leaps_thru_end_of
      Src: /src/icu/source/tools/tzcode/localtime.c:1473,1
    - Dst: increment_overflow
      Src: /src/icu/source/tools/tzcode/localtime.c:1470,1
    - Dst: leaps_thru_end_of
      Src: /src/icu/source/tools/tzcode/localtime.c:1472,1
    - Dst: increment_overflow
      Src: /src/icu/source/tools/tzcode/localtime.c:1499,1
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/localtime.c:1501,1
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/localtime.c:1503,1
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/localtime.c:1504,1
    - Dst: increment_overflow
      Src: /src/icu/source/tools/tzcode/localtime.c:1505,1
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/localtime.c:1532,1
    - Dst: leaps_thru_end_of
      Src: /src/icu/source/tools/tzcode/localtime.c:1518,1
    - Dst: increment_overflow
      Src: /src/icu/source/tools/tzcode/localtime.c:1509,1
    - Dst: leaps_thru_end_of
      Src: /src/icu/source/tools/tzcode/localtime.c:1519,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 132
    argCount: 4
    argNames:
    - timep
    - offset
    - sp
    - tmp
    argTypes:
    - time_t*
    - int_fast32_t
    - struct state*
    - struct tm*
    constantsTouched: []
    func_position:
      end: 1541
      start: 1415
    functionDepth: 0
    functionLinenumber: 1415
    functionLinenumberEnd: 1541
    functionName: timesub
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - TYPE_SIGNED
    - increment_overflow
    - leaps_thru_end_of
    - isleap
    linkageType: ''
    returnType: struct tm*
    signature: "static struct tm *timesub(const time_t *const timep, const int_fast32_t
      offset,\tregister const struct state *const sp,\tregister struct tm *const tmp) "
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 1
    argNames:
    - timep
    argTypes:
    - time_t*
    constantsTouched: []
    func_position:
      end: 2013
      start: 1998
    functionDepth: 0
    functionLinenumber: 1998
    functionLinenumberEnd: 2013
    functionName: leapcorr
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int_fast64_t
    signature: 'static int_fast64_t leapcorr(time_t *timep) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TYPE_BIT
      Src: /src/icu/source/tools/tzcode/localtime.c:317,1
    - Dst: TYPE_SIGNED
      Src: /src/icu/source/tools/tzcode/localtime.c:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - t1
    - t0
    argTypes:
    - time_t
    - time_t
    constantsTouched: []
    func_position:
      end: 320
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 320
    functionName: differ_by_repeat
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - TYPE_SIGNED
    - TYPE_BIT
    linkageType: ''
    returnType: int
    signature: 'static int differ_by_repeat(const time_t t1, const time_t t0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asctime
      Src: /src/icu/source/tools/tzcode/localtime.c:1552,1
    - Dst: localtime
      Src: /src/icu/source/tools/tzcode/localtime.c:1552,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - timep
    argTypes:
    - time_t*
    constantsTouched: []
    func_position:
      end: 1553
      start: 1543
    functionDepth: 0
    functionLinenumber: 1543
    functionLinenumberEnd: 1553
    functionName: ctime
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - localtime
    - asctime
    linkageType: ''
    returnType: char*
    signature: 'char *ctime(const time_t *const timep) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tzset
      Src: /src/icu/source/tools/tzcode/localtime.c:2018,1
    - Dst: leapcorr
      Src: /src/icu/source/tools/tzcode/localtime.c:2019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - time_t
    constantsTouched: []
    func_position:
      end: 2020
      start: 2015
    functionDepth: 0
    functionLinenumber: 2015
    functionLinenumberEnd: 2020
    functionName: time2posix
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - leapcorr
    - tzset
    linkageType: ''
    returnType: time_t
    signature: 'time_t time2posix(time_t t) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - strp
    - delim
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 675
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 675
    functionName: getqzname
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *getqzname(register const char *strp, const int
      delim) '
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: getqzname
      Src: /src/icu/source/tools/tzcode/localtime.c:946,1
    - Dst: getzname
      Src: /src/icu/source/tools/tzcode/localtime.c:952,1
    - Dst: getzname
      Src: /src/icu/source/tools/tzcode/localtime.c:974,1
    - Dst: transtime
      Src: /src/icu/source/tools/tzcode/localtime.c:1019,1
    - Dst: strncpy
      Src: /src/icu/source/tools/tzcode/localtime.c:1160,1
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/localtime.c:1021,1
    - Dst: increment_overflow_time
      Src: /src/icu/source/tools/tzcode/localtime.c:1048,1
    - Dst: transtime
      Src: /src/icu/source/tools/tzcode/localtime.c:1018,1
    - Dst: strncpy
      Src: /src/icu/source/tools/tzcode/localtime.c:1156,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/localtime.c:937,1
    - Dst: tzload
      Src: /src/icu/source/tools/tzcode/localtime.c:961,1
    - Dst: getoffset
      Src: /src/icu/source/tools/tzcode/localtime.c:978,1
    - Dst: increment_overflow_time
      Src: /src/icu/source/tools/tzcode/localtime.c:1043,1
    - Dst: INITIALIZE
      Src: /src/icu/source/tools/tzcode/localtime.c:934,1
    - Dst: getoffset
      Src: /src/icu/source/tools/tzcode/localtime.c:957,1
    - Dst: getrule
      Src: /src/icu/source/tools/tzcode/localtime.c:993,1
    - Dst: increment_overflow_time
      Src: /src/icu/source/tools/tzcode/localtime.c:1038,1
    - Dst: getrule
      Src: /src/icu/source/tools/tzcode/localtime.c:997,1
    - Dst: getqzname
      Src: /src/icu/source/tools/tzcode/localtime.c:967,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 206
    argCount: 3
    argNames:
    - name
    - sp
    - lastditch
    argTypes:
    - char*
    - struct state*
    - int
    constantsTouched: []
    func_position:
      end: 1164
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 1164
    functionName: tzparse
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - getoffset
    - tzload
    - strncpy
    - getqzname
    - increment_overflow_time
    - INITIALIZE
    - isleap
    - strlen
    - transtime
    - getrule
    - getzname
    linkageType: ''
    returnType: int
    signature: "static int tzparse(const char *name, register struct state *const
      sp,\tconst int lastditch) "
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getsecs
      Src: /src/icu/source/tools/tzcode/localtime.c:763,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - strp
    - offsetp
    argTypes:
    - char*
    - int_fast32_t*
    constantsTouched: []
    func_position:
      end: 769
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 769
    functionName: getoffset
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - getsecs
    linkageType: ''
    returnType: char*
    signature: 'static const char *getoffset(register const char *strp, int_fast32_t
      *const offsetp) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/tools/tzcode/localtime.c:1189,1
    - Dst: gmtload
      Src: /src/icu/source/tools/tzcode/localtime.c:1197,1
    - Dst: tzload
      Src: /src/icu/source/tools/tzcode/localtime.c:1196,1
    - Dst: settzname
      Src: /src/icu/source/tools/tzcode/localtime.c:1191,1
    - Dst: settzname
      Src: /src/icu/source/tools/tzcode/localtime.c:1198,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1199
      start: 1180
    functionDepth: 0
    functionLinenumber: 1180
    functionLinenumberEnd: 1199
    functionName: tzsetwall
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - tzload
    - malloc
    - gmtload
    - settzname
    linkageType: ''
    returnType: void
    signature: 'void tzsetwall(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gmtsub
      Src: /src/icu/source/tools/tzcode/localtime.c:1398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - timep
    - offset
    argTypes:
    - time_t*
    - long
    constantsTouched: []
    func_position:
      end: 1399
      start: 1395
    functionDepth: 0
    functionLinenumber: 1395
    functionLinenumberEnd: 1399
    functionName: offtime
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - gmtsub
    linkageType: ''
    returnType: struct tm*
    signature: 'struct tm *offtime(const time_t *const timep, const long offset) '
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: normalize_overflow
      Src: /src/icu/source/tools/tzcode/localtime.c:1691,1
    - Dst: normalize_overflow32
      Src: /src/icu/source/tools/tzcode/localtime.c:1696,1
    - Dst: increment_overflow32
      Src: /src/icu/source/tools/tzcode/localtime.c:1727,1
    - Dst: increment_overflow
      Src: /src/icu/source/tools/tzcode/localtime.c:1743,1
    - Dst: increment_overflow32
      Src: /src/icu/source/tools/tzcode/localtime.c:1713,1
    - Dst: TYPE_SIGNED
      Src: /src/icu/source/tools/tzcode/localtime.c:1754,1
    - Dst: tmcomp
      Src: /src/icu/source/tools/tzcode/localtime.c:1818,1
    - Dst: normalize_overflow
      Src: /src/icu/source/tools/tzcode/localtime.c:1687,1
    - Dst: normalize_overflow
      Src: /src/icu/source/tools/tzcode/localtime.c:1693,1
    - Dst: increment_overflow32
      Src: /src/icu/source/tools/tzcode/localtime.c:1702,1
    - Dst: increment_overflow32
      Src: /src/icu/source/tools/tzcode/localtime.c:1705,1
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/localtime.c:1708,1
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/localtime.c:1712,1
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/localtime.c:1717,1
    - Dst: TYPE_BIT
      Src: /src/icu/source/tools/tzcode/localtime.c:1759,1
    - Dst: increment_overflow32
      Src: /src/icu/source/tools/tzcode/localtime.c:1723,1
    - Dst: tmcomp
      Src: /src/icu/source/tools/tzcode/localtime.c:1776,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 131
    argCount: 5
    argNames:
    - tmp
    - (*const funcp)
    - offset
    - okayp
    - do_norm_secs
    argTypes:
    - struct tm*
    - struct tm*
    - int_fast32_t
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 1839
      start: 1665
    functionDepth: 0
    functionLinenumber: 1665
    functionLinenumberEnd: 1839
    functionName: time2sub
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - increment_overflow32
    - normalize_overflow
    - TYPE_BIT
    - normalize_overflow32
    - tmcomp
    - increment_overflow
    - isleap
    - TYPE_SIGNED
    linkageType: ''
    returnType: time_t
    signature: "static time_t time2sub(struct tm *const tmp,\t struct tm *(*const
      funcp)(const time_t *, int_fast32_t, struct tm *),\t const int_fast32_t offset,\t
      int *const okayp,\t const int do_norm_secs) "
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: time2
      Src: /src/icu/source/tools/tzcode/localtime.c:1879,1
    - Dst: time2
      Src: /src/icu/source/tools/tzcode/localtime.c:1919,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 44
    argCount: 3
    argNames:
    - tmp
    - (*const funcp)
    - offset
    argTypes:
    - struct tm*
    - struct tm*
    - int_fast32_t
    constantsTouched: []
    func_position:
      end: 1928
      start: 1858
    functionDepth: 0
    functionLinenumber: 1858
    functionLinenumberEnd: 1928
    functionName: time1
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - time2
    linkageType: ''
    returnType: time_t
    signature: 'static time_t time1(struct tm *const tmp, struct tm *(*const funcp)
      (const time_t *, int_fast32_t, struct tm *), const int_fast32_t offset) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/icu/source/tools/tzcode/localtime.c:1206,1
    - Dst: strcpy
      Src: /src/icu/source/tools/tzcode/localtime.c:1216,1
    - Dst: tzsetwall
      Src: /src/icu/source/tools/tzcode/localtime.c:1208,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/localtime.c:1212,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/localtime.c:1214,1
    - Dst: malloc
      Src: /src/icu/source/tools/tzcode/localtime.c:1220,1
    - Dst: settzname
      Src: /src/icu/source/tools/tzcode/localtime.c:1222,1
    - Dst: strcpy
      Src: /src/icu/source/tools/tzcode/localtime.c:1237,1
    - Dst: tzload
      Src: /src/icu/source/tools/tzcode/localtime.c:1238,1
    - Dst: tzparse
      Src: /src/icu/source/tools/tzcode/localtime.c:1239,1
    - Dst: settzname
      Src: /src/icu/source/tools/tzcode/localtime.c:1241,1
    - Dst: gmtload
      Src: /src/icu/source/tools/tzcode/localtime.c:1240,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1242
      start: 1201
    functionDepth: 0
    functionLinenumber: 1201
    functionLinenumberEnd: 1242
    functionName: tzset
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - malloc
    - tzload
    - tzsetwall
    - strcpy
    - strcmp
    - tzparse
    - gmtload
    - settzname
    - strlen
    - getenv
    linkageType: ''
    returnType: void
    signature: 'void tzset(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time2sub
      Src: /src/icu/source/tools/tzcode/localtime.c:1854,1
    - Dst: time2sub
      Src: /src/icu/source/tools/tzcode/localtime.c:1855,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 4
    argCount: 4
    argNames:
    - tmp
    - (*const funcp)
    - offset
    - okayp
    argTypes:
    - struct tm*
    - struct tm*
    - int_fast32_t
    - int*
    constantsTouched: []
    func_position:
      end: 1856
      start: 1841
    functionDepth: 0
    functionLinenumber: 1841
    functionLinenumberEnd: 1856
    functionName: time2
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - time2sub
    linkageType: ''
    returnType: time_t
    signature: "static time_t time2(struct tm * const\ttmp, struct tm * (*const funcp)(const
      time_t *, int_fast32_t, struct tm *), const int_fast32_t offset, int *const
      okayp) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tzset
      Src: /src/icu/source/tools/tzcode/localtime.c:1933,1
    - Dst: time1
      Src: /src/icu/source/tools/tzcode/localtime.c:1934,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - tmp
    argTypes:
    - struct tm*
    constantsTouched: []
    func_position:
      end: 1935
      start: 1930
    functionDepth: 0
    functionLinenumber: 1930
    functionLinenumberEnd: 1935
    functionName: mktime
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - tzset
    - time1
    linkageType: ''
    returnType: time_t
    signature: 'time_t mktime(struct tm *const tmp) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time1
      Src: /src/icu/source/tools/tzcode/localtime.c:1960,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - tmp
    - offset
    argTypes:
    - struct tm*
    - long
    constantsTouched: []
    func_position:
      end: 1961
      start: 1955
    functionDepth: 0
    functionLinenumber: 1955
    functionLinenumberEnd: 1961
    functionName: timeoff
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - time1
    linkageType: ''
    returnType: time_t
    signature: 'time_t timeoff(struct tm *const tmp, const long offset) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/tools/tzcode/localtime.c:1360,1
    - Dst: timesub
      Src: /src/icu/source/tools/tzcode/localtime.c:1365,1
    - Dst: gmtload
      Src: /src/icu/source/tools/tzcode/localtime.c:1363,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 3
    argNames:
    - timep
    - offset
    - tmp
    argTypes:
    - time_t*
    - int_fast32_t
    - struct tm*
    constantsTouched: []
    func_position:
      end: 1375
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1375
    functionName: gmtsub
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - malloc
    - gmtload
    - timesub
    linkageType: ''
    returnType: struct tm*
    signature: 'static struct tm *gmtsub(const time_t *const timep, const int_fast32_t
      offset, struct tm *const tmp) '
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/icu/source/tools/tzcode/localtime.c:380,1
    - Dst: open
      Src: /src/icu/source/tools/tzcode/localtime.c:382,1
    - Dst: detzcode
      Src: /src/icu/source/tools/tzcode/localtime.c:394,1
    - Dst: detzcode
      Src: /src/icu/source/tools/tzcode/localtime.c:398,1
    - Dst: detzcode
      Src: /src/icu/source/tools/tzcode/localtime.c:419,1
    - Dst: detzcode64
      Src: /src/icu/source/tools/tzcode/localtime.c:419,1
    - Dst: detzcode
      Src: /src/icu/source/tools/tzcode/localtime.c:396,1
    - Dst: TYPE_SIGNED
      Src: /src/icu/source/tools/tzcode/localtime.c:511,1
    - Dst: typesequiv
      Src: /src/icu/source/tools/tzcode/localtime.c:557,1
    - Dst: malloc
      Src: /src/icu/source/tools/tzcode/localtime.c:338,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/localtime.c:368,1
    - Dst: strcat
      Src: /src/icu/source/tools/tzcode/localtime.c:371,1
    - Dst: strcat
      Src: /src/icu/source/tools/tzcode/localtime.c:372,1
    - Dst: detzcode
      Src: /src/icu/source/tools/tzcode/localtime.c:451,1
    - Dst: tzparse
      Src: /src/icu/source/tools/tzcode/localtime.c:521,1
    - Dst: differ_by_repeat
      Src: /src/icu/source/tools/tzcode/localtime.c:559,1
    - Dst: strcpy
      Src: /src/icu/source/tools/tzcode/localtime.c:370,1
    - Dst: read
      Src: /src/icu/source/tools/tzcode/localtime.c:385,1
    - Dst: detzcode
      Src: /src/icu/source/tools/tzcode/localtime.c:397,1
    - Dst: close
      Src: /src/icu/source/tools/tzcode/localtime.c:386,1
    - Dst: detzcode
      Src: /src/icu/source/tools/tzcode/localtime.c:395,1
    - Dst: TYPE_SIGNED
      Src: /src/icu/source/tools/tzcode/localtime.c:420,1
    - Dst: detzcode
      Src: /src/icu/source/tools/tzcode/localtime.c:471,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/localtime.c:368,1
    - Dst: strchr
      Src: /src/icu/source/tools/tzcode/localtime.c:376,1
    - Dst: detzcode
      Src: /src/icu/source/tools/tzcode/localtime.c:393,1
    - Dst: detzcode
      Src: /src/icu/source/tools/tzcode/localtime.c:469,1
    - Dst: detzcode64
      Src: /src/icu/source/tools/tzcode/localtime.c:469,1
    - Dst: typesequiv
      Src: /src/icu/source/tools/tzcode/localtime.c:551,1
    - Dst: differ_by_repeat
      Src: /src/icu/source/tools/tzcode/localtime.c:552,1
    - Dst: free
      Src: /src/icu/source/tools/tzcode/localtime.c:600,1
    CyclomaticComplexity: 118
    EdgeCount: 118
    ICount: 276
    argCount: 3
    argNames:
    - name
    - sp
    - doextend
    argTypes:
    - char*
    - struct state*
    - int
    constantsTouched: []
    func_position:
      end: 608
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 608
    functionName: tzload
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - malloc
    - detzcode64
    - detzcode
    - strcpy
    - strchr
    - open
    - tzparse
    - TYPE_SIGNED
    - free
    - access
    - differ_by_repeat
    - strlen
    - read
    - strcat
    - typesequiv
    - close
    linkageType: ''
    returnType: int
    signature: 'static int tzload(register const char *name, register struct state
      *const sp, register const int doextend) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tzload
      Src: /src/icu/source/tools/tzcode/localtime.c:1169,1
    - Dst: tzparse
      Src: /src/icu/source/tools/tzcode/localtime.c:1170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - sp
    argTypes:
    - struct state*
    constantsTouched: []
    func_position:
      end: 1171
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1171
    functionName: gmtload
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - tzload
    - tzparse
    linkageType: ''
    returnType: void
    signature: 'static void gmtload(struct state *const sp) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: gmtsub
      Src: /src/icu/source/tools/tzcode/localtime.c:1266,1
    - Dst: timesub
      Src: /src/icu/source/tools/tzcode/localtime.c:1321,1
    - Dst: localsub
      Src: /src/icu/source/tools/tzcode/localtime.c:1285,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 62
    argCount: 3
    argNames:
    - timep
    - offset
    - tmp
    argTypes:
    - time_t*
    - int_fast32_t
    - struct tm*
    constantsTouched: []
    func_position:
      end: 1328
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1328
    functionName: localsub
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - localsub
    - timesub
    - gmtsub
    linkageType: ''
    returnType: struct tm*
    signature: "static struct tm *localsub(const time_t *const timep, const int_fast32_t
      offset,\t struct tm *const tmp) "
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gmtsub
      Src: /src/icu/source/tools/tzcode/localtime.c:1380,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - timep
    argTypes:
    - time_t*
    constantsTouched: []
    func_position:
      end: 1381
      start: 1377
    functionDepth: 0
    functionLinenumber: 1377
    functionLinenumberEnd: 1381
    functionName: gmtime
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - gmtsub
    linkageType: ''
    returnType: struct tm*
    signature: 'struct tm *gmtime(const time_t *const timep) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ip
    - j
    argTypes:
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 1595
      start: 1580
    functionDepth: 0
    functionLinenumber: 1580
    functionLinenumberEnd: 1595
    functionName: increment_overflow
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int increment_overflow(int *const ip, int j) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TYPE_SIGNED
      Src: /src/icu/source/tools/tzcode/localtime.c:1617,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - tp
    - j
    argTypes:
    - time_t*
    - int_fast32_t
    constantsTouched: []
    func_position:
      end: 1622
      start: 1608
    functionDepth: 0
    functionLinenumber: 1608
    functionLinenumberEnd: 1622
    functionName: increment_overflow_time
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - TYPE_SIGNED
    linkageType: ''
    returnType: int
    signature: 'static int increment_overflow_time(time_t *tp, int_fast32_t j) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/localtime.c:626,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 23
    argCount: 3
    argNames:
    - sp
    - a
    - b
    argTypes:
    - struct state*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 630
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 630
    functionName: typesequiv
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: 'static int typesequiv(const struct state *const sp, const int a, const
      int b) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tzset
      Src: /src/icu/source/tools/tzcode/localtime.c:1333,1
    - Dst: localsub
      Src: /src/icu/source/tools/tzcode/localtime.c:1334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - timep
    argTypes:
    - time_t*
    constantsTouched: []
    func_position:
      end: 1335
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1335
    functionName: localtime
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - localsub
    - tzset
    linkageType: ''
    returnType: struct tm*
    signature: 'struct tm *localtime(const time_t *const timep) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - lp
    - m
    argTypes:
    - int_fast32_t*
    - int
    constantsTouched: []
    func_position:
      end: 1606
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1606
    functionName: increment_overflow32
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int increment_overflow32(int_fast32_t *const lp, int const
      m) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: increment_overflow
      Src: /src/icu/source/tools/tzcode/localtime.c:1633,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - tensptr
    - unitsptr
    - base
    argTypes:
    - int*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 1634
      start: 1624
    functionDepth: 0
    functionLinenumber: 1624
    functionLinenumberEnd: 1634
    functionName: normalize_overflow
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - increment_overflow
    linkageType: ''
    returnType: int
    signature: 'static int normalize_overflow(int *const tensptr, int *const unitsptr,
      const int base) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: getnum
      Src: /src/icu/source/tools/tzcode/localtime.c:787,1
    - Dst: getnum
      Src: /src/icu/source/tools/tzcode/localtime.c:794,1
    - Dst: is_digit
      Src: /src/icu/source/tools/tzcode/localtime.c:805,1
    - Dst: getnum
      Src: /src/icu/source/tools/tzcode/localtime.c:804,1
    - Dst: getnum
      Src: /src/icu/source/tools/tzcode/localtime.c:799,1
    - Dst: getnum
      Src: /src/icu/source/tools/tzcode/localtime.c:810,1
    - Dst: getoffset
      Src: /src/icu/source/tools/tzcode/localtime.c:819,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 2
    argNames:
    - strp
    - rulep
    argTypes:
    - char*
    - struct rule*
    constantsTouched: []
    func_position:
      end: 822
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 822
    functionName: getrule
    functionSourceFile: /src/icu/source/tools/tzcode/localtime.c
    functionUses: []
    functionsReached:
    - getnum
    - getoffset
    - is_digit
    linkageType: ''
    returnType: char*
    signature: 'static const char *getrule(const char *strp, register struct rule
      *const rulep) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/icu/source/tools/tzcode/zic.c:502,1
    - Dst: va_end
      Src: /src/icu/source/tools/tzcode/zic.c:504,1
    - Dst: warning
      Src: /src/icu/source/tools/tzcode/zic.c:508,1
    - Dst: verror
      Src: /src/icu/source/tools/tzcode/zic.c:503,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:539,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:542,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:511,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:511,1
    - Dst: verror
      Src: /src/icu/source/tools/tzcode/zic.c:513,1
    - Dst: va_end
      Src: /src/icu/source/tools/tzcode/zic.c:514,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:521,1
    - Dst: usage
      Src: /src/icu/source/tools/tzcode/zic.c:519,1
    - Dst: va_start
      Src: /src/icu/source/tools/tzcode/zic.c:512,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 0
    argNames:
    - printf
    - ', 1, 0)'
    argTypes: []
    constantsTouched: []
    func_position:
      end: 545
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 545
    functionName: ATTRIBUTE_FORMAT
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - usage
    - va_end
    - verror
    - va_start
    - _
    - fprintf
    - warning
    linkageType: ''
    returnType: void
    signature: "static void ATTRIBUTE_FORMAT((printf, 1, 0)) verror(const char *const
      string, va_list args){\t/*\t** Match the format of \"cc\" to allow sh users
      to\t**\tzic ... 2>&1 | error -t \"*\" -v\t** on BSD systems.\t*/\tfprintf(stderr,
      _(\"\\\"%s\\\", line %d: \"), filename, linenum); vfprintf(stderr, string, args);
      if (rfilename != NULL)\t\t(void) fprintf(stderr, _(\" (rule from \\\"%s\\\",
      line %d)\"),\t\t\trfilename, rlinenum); \t(void) fprintf(stderr, \"\"); ++errors;}static
      void ATTRIBUTE_FORMAT((printf, 1, 2))error(const char *const string, ...){\tva_list
      args;\tva_start(args, string);\tverror(string, args);\tva_end(args);}static
      void ATTRIBUTE_FORMAT((printf, 1, 2))warning(const char *const string, ...){\tva_list
      args;\tfprintf(stderr, _(\"warning: \"));\tva_start(args, string);\tverror(string,
      args);\tva_end(args);\t--errors;}static _Noreturn voidusage(FILE *stream, int
      status){\t(void) fprintf(stream, _(\"%s: usage is %s \\[ --version ] [ --help
      ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\\\\\\t[ -d directory ] [ -L leapseconds
      ] [ -y yearistype ] [ filename ... ]\\\\Report bugs to %s.\"),\t\t progname,
      progname, REPORT_BUGS_TO);\texit(status);}#ifdef ICU /* File into which we will
      write supplemental ICU data. */ static FILE *\ticuFile; static voidemit_icu_zone(FILE*
      f, const char* zoneName, int zoneOffset,\t\t\t\t\tconst struct rule* rule,\t\t\t\t\tint
      ruleIndex, int startYear) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - zic_t
    constantsTouched: []
    func_position:
      end: 1594
      start: 1590
    functionDepth: 0
    functionLinenumber: 1590
    functionLinenumberEnd: 1594
    functionName: is32
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int is32(const zic_t x) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/zic.c:2995,1
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/zic.c:2999,1
    - Dst: oadd
      Src: /src/icu/source/tools/tzcode/zic.c:3001,1
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/zic.c:3004,1
    - Dst: oadd
      Src: /src/icu/source/tools/tzcode/zic.c:3005,1
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/zic.c:3009,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:3013,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:3013,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:3014,1
    - Dst: oadd
      Src: /src/icu/source/tools/tzcode/zic.c:3018,1
    - Dst: oadd
      Src: /src/icu/source/tools/tzcode/zic.c:3041,1
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/zic.c:3046,1
    - Dst: tadd
      Src: /src/icu/source/tools/tzcode/zic.c:3057,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:3048,1
    - Dst: oadd
      Src: /src/icu/source/tools/tzcode/zic.c:3036,1
    - Dst: warning
      Src: /src/icu/source/tools/tzcode/zic.c:3048,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 81
    argCount: 2
    argNames:
    - rp
    - wantedy
    argTypes:
    - struct rule*
    - zic_t
    constantsTouched: []
    func_position:
      end: 3058
      start: 2979
    functionDepth: 0
    functionLinenumber: 2979
    functionLinenumberEnd: 3058
    functionName: rpytime
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - oadd
    - exit
    - _
    - isleap
    - tadd
    - error
    - warning
    linkageType: ''
    returnType: zic_t
    signature: 'static zic_t rpytime(register const struct rule *const rp, register
      const zic_t wantedy) '
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/zic.c:1686,1
    - Dst: strerror
      Src: /src/icu/source/tools/tzcode/zic.c:1692,1
    - Dst: strerror
      Src: /src/icu/source/tools/tzcode/zic.c:1702,1
    - Dst: strcpy
      Src: /src/icu/source/tools/tzcode/zic.c:1848,1
    - Dst: convert
      Src: /src/icu/source/tools/tzcode/zic.c:1863,1
    - Dst: convert
      Src: /src/icu/source/tools/tzcode/zic.c:1864,1
    - Dst: convert
      Src: /src/icu/source/tools/tzcode/zic.c:1866,1
    - Dst: convert
      Src: /src/icu/source/tools/tzcode/zic.c:1868,1
    - Dst: DO
      Src: /src/icu/source/tools/tzcode/zic.c:1869,1
    - Dst: DO
      Src: /src/icu/source/tools/tzcode/zic.c:1873,1
    - Dst: ferror
      Src: /src/icu/source/tools/tzcode/zic.c:1936,1
    - Dst: putc
      Src: /src/icu/source/tools/tzcode/zic.c:1933,1
    - Dst: fclose
      Src: /src/icu/source/tools/tzcode/zic.c:1936,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1937,1
    - Dst: puttzcode
      Src: /src/icu/source/tools/tzcode/zic.c:1893,1
    - Dst: fwrite
      Src: /src/icu/source/tools/tzcode/zic.c:1901,1
    - Dst: puttzcode
      Src: /src/icu/source/tools/tzcode/zic.c:1895,1
    - Dst: free
      Src: /src/icu/source/tools/tzcode/zic.c:1941,1
    - Dst: qsort
      Src: /src/icu/source/tools/tzcode/zic.c:1615,1
    - Dst: is32
      Src: /src/icu/source/tools/tzcode/zic.c:1673,1
    - Dst: is32
      Src: /src/icu/source/tools/tzcode/zic.c:1681,1
    - Dst: remove
      Src: /src/icu/source/tools/tzcode/zic.c:1691,1
    - Dst: mkdirs
      Src: /src/icu/source/tools/tzcode/zic.c:1699,1
    - Dst: fopen
      Src: /src/icu/source/tools/tzcode/zic.c:1701,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:1845,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/zic.c:1850,1
    - Dst: strncpy
      Src: /src/icu/source/tools/tzcode/zic.c:1858,1
    - Dst: DO
      Src: /src/icu/source/tools/tzcode/zic.c:1870,1
    - Dst: puttzcode
      Src: /src/icu/source/tools/tzcode/zic.c:1881,1
    - Dst: puttzcode64
      Src: /src/icu/source/tools/tzcode/zic.c:1925,1
    - Dst: DO
      Src: /src/icu/source/tools/tzcode/zic.c:1871,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:1935,1
    - Dst: convert
      Src: /src/icu/source/tools/tzcode/zic.c:1867,1
    - Dst: size_product
      Src: /src/icu/source/tools/tzcode/zic.c:1607,1
    - Dst: is32
      Src: /src/icu/source/tools/tzcode/zic.c:1675,1
    - Dst: is32
      Src: /src/icu/source/tools/tzcode/zic.c:1679,1
    - Dst: erealloc
      Src: /src/icu/source/tools/tzcode/zic.c:1685,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/zic.c:1686,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1694,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:1694,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:1704,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1704,1
    - Dst: addtype
      Src: /src/icu/source/tools/tzcode/zic.c:1799,1
    - Dst: convert
      Src: /src/icu/source/tools/tzcode/zic.c:1865,1
    - Dst: strncpy
      Src: /src/icu/source/tools/tzcode/zic.c:1860,1
    - Dst: puttzcode64
      Src: /src/icu/source/tools/tzcode/zic.c:1882,1
    - Dst: puttzcode
      Src: /src/icu/source/tools/tzcode/zic.c:1924,1
    - Dst: DO
      Src: /src/icu/source/tools/tzcode/zic.c:1875,1
    - Dst: DO
      Src: /src/icu/source/tools/tzcode/zic.c:1874,1
    - Dst: putc
      Src: /src/icu/source/tools/tzcode/zic.c:1898,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:1937,1
    - Dst: putc
      Src: /src/icu/source/tools/tzcode/zic.c:1897,1
    - Dst: putc
      Src: /src/icu/source/tools/tzcode/zic.c:1930,1
    - Dst: emalloc
      Src: /src/icu/source/tools/tzcode/zic.c:1607,1
    - Dst: tadd
      Src: /src/icu/source/tools/tzcode/zic.c:1662,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:1696,1
    - Dst: sprintf
      Src: /src/icu/source/tools/tzcode/zic.c:1687,1
    - Dst: itsdir
      Src: /src/icu/source/tools/tzcode/zic.c:1691,1
    - Dst: fopen
      Src: /src/icu/source/tools/tzcode/zic.c:1698,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:1700,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:1706,1
    - Dst: addtype
      Src: /src/icu/source/tools/tzcode/zic.c:1785,1
    - Dst: DO
      Src: /src/icu/source/tools/tzcode/zic.c:1872,1
    - Dst: tadd
      Src: /src/icu/source/tools/tzcode/zic.c:1921,1
    - Dst: puttzcode
      Src: /src/icu/source/tools/tzcode/zic.c:1926,1
    - Dst: fwrite
      Src: /src/icu/source/tools/tzcode/zic.c:1887,1
    - Dst: DO
      Src: /src/icu/source/tools/tzcode/zic.c:1877,1
    - Dst: DO
      Src: /src/icu/source/tools/tzcode/zic.c:1876,1
    - Dst: puttzcode
      Src: /src/icu/source/tools/tzcode/zic.c:1892,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:1939,1
    CyclomaticComplexity: 97
    EdgeCount: 97
    ICount: 313
    argCount: 3
    argNames:
    - name
    - string
    - version
    argTypes:
    - char*
    - char*
    - char
    constantsTouched: []
    func_position:
      end: 1942
      start: 1596
    functionDepth: 0
    functionLinenumber: 1596
    functionLinenumberEnd: 1942
    functionName: writezone
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - erealloc
    - fclose
    - convert
    - remove
    - emalloc
    - qsort
    - DO
    - free
    - _
    - addtype
    - itsdir
    - fwrite
    - puttzcode
    - putc
    - fopen
    - strcpy
    - exit
    - ferror
    - is32
    - strerror
    - strcmp
    - strncpy
    - tadd
    - mkdirs
    - sprintf
    - puttzcode64
    - strlen
    - fprintf
    - size_product
    linkageType: ''
    returnType: void
    signature: 'static void writezone(const char *const name, const char *const string,
      char version) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:3065,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:3081,1
    - Dst: isascii
      Src: /src/icu/source/tools/tzcode/zic.c:3075,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:3079,1
    - Dst: isalpha
      Src: /src/icu/source/tools/tzcode/zic.c:3076,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:3083,1
    - Dst: isascii
      Src: /src/icu/source/tools/tzcode/zic.c:3086,1
    - Dst: isdigit
      Src: /src/icu/source/tools/tzcode/zic.c:3087,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:3093,1
    - Dst: warning
      Src: /src/icu/source/tools/tzcode/zic.c:3095,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:3099,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:3099,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/zic.c:3097,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:3100,1
    - Dst: strcpy
      Src: /src/icu/source/tools/tzcode/zic.c:3102,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3104
      start: 3060
    functionDepth: 0
    functionLinenumber: 3060
    functionLinenumberEnd: 3104
    functionName: newabbr
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - strcmp
    - strcpy
    - exit
    - isalpha
    - isdigit
    - _
    - strlen
    - isascii
    - error
    - warning
    linkageType: ''
    returnType: void
    signature: 'static void newabbr(const char *const string) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:422,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:423,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 424
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 424
    functionName: memory_exhausted
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - fprintf
    - _
    - exit
    linkageType: ''
    returnType: void
    signature: 'static _Noreturn void memory_exhausted(const char *msg) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lowerit
      Src: /src/icu/source/tools/tzcode/zic.c:2862,1
    - Dst: lowerit
      Src: /src/icu/source/tools/tzcode/zic.c:2862,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - ap
    - bp
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2866
      start: 2859
    functionDepth: 0
    functionLinenumber: 2859
    functionLinenumberEnd: 2866
    functionName: ciequal
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - lowerit
    linkageType: ''
    returnType: ATTRIBUTE_PURE
    signature: 'static ATTRIBUTE_PURE int ciequal(register const char *ap, register
      const char *bp) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/icu/source/tools/tzcode/zic.c:1088,1
    - Dst: scheck
      Src: /src/icu/source/tools/tzcode/zic.c:1090,1
    - Dst: sscanf
      Src: /src/icu/source/tools/tzcode/zic.c:1092,1
    - Dst: scheck
      Src: /src/icu/source/tools/tzcode/zic.c:1088,1
    - Dst: sscanf
      Src: /src/icu/source/tools/tzcode/zic.c:1090,1
    - Dst: scheck
      Src: /src/icu/source/tools/tzcode/zic.c:1092,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1094,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1100,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1104,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1104,1
    - Dst: warning
      Src: /src/icu/source/tools/tzcode/zic.c:1108,1
    - Dst: warning
      Src: /src/icu/source/tools/tzcode/zic.c:1111,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1111,1
    - Dst: oadd
      Src: /src/icu/source/tools/tzcode/zic.c:1112,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1108,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 64
    argCount: 3
    argNames:
    - string
    - errstring
    - signable
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1114
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1114
    functionName: gethms
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - scheck
    - oadd
    - sscanf
    - _
    - error
    - warning
    linkageType: ''
    returnType: zic_t
    signature: 'static zic_t gethms(const char *string, const char *const errstring,
      const int signable) '
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: byword
      Src: /src/icu/source/tools/tzcode/zic.c:1405,1
    - Dst: ecpyalloc
      Src: /src/icu/source/tools/tzcode/zic.c:1412,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1435,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1452,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:1454,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1478,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1482,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1489,1
    - Dst: strchr
      Src: /src/icu/source/tools/tzcode/zic.c:1510,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1519,1
    - Dst: sscanf
      Src: /src/icu/source/tools/tzcode/zic.c:1455,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1474,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:1476,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1482,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1489,1
    - Dst: ecpyalloc
      Src: /src/icu/source/tools/tzcode/zic.c:1492,1
    - Dst: ecpyalloc
      Src: /src/icu/source/tools/tzcode/zic.c:1502,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1519,1
    - Dst: byword
      Src: /src/icu/source/tools/tzcode/zic.c:1523,1
    - Dst: free
      Src: /src/icu/source/tools/tzcode/zic.c:1538,1
    - Dst: free
      Src: /src/icu/source/tools/tzcode/zic.c:1525,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1406,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/zic.c:1414,1
    - Dst: lowerit
      Src: /src/icu/source/tools/tzcode/zic.c:1415,1
    - Dst: gethms
      Src: /src/icu/source/tools/tzcode/zic.c:1435,1
    - Dst: byword
      Src: /src/icu/source/tools/tzcode/zic.c:1441,1
    - Dst: scheck
      Src: /src/icu/source/tools/tzcode/zic.c:1455,1
    - Dst: byword
      Src: /src/icu/source/tools/tzcode/zic.c:1460,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:1451,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1456,1
    - Dst: sscanf
      Src: /src/icu/source/tools/tzcode/zic.c:1477,1
    - Dst: free
      Src: /src/icu/source/tools/tzcode/zic.c:1520,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1524,1
    - Dst: sscanf
      Src: /src/icu/source/tools/tzcode/zic.c:1530,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1533,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1406,1
    - Dst: free
      Src: /src/icu/source/tools/tzcode/zic.c:1436,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1456,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:1473,1
    - Dst: scheck
      Src: /src/icu/source/tools/tzcode/zic.c:1477,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1478,1
    - Dst: strchr
      Src: /src/icu/source/tools/tzcode/zic.c:1508,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1524,1
    - Dst: scheck
      Src: /src/icu/source/tools/tzcode/zic.c:1530,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1533,1
    - Dst: free
      Src: /src/icu/source/tools/tzcode/zic.c:1534,1
    - Dst: byword
      Src: /src/icu/source/tools/tzcode/zic.c:1503,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 132
    argCount: 7
    argNames:
    - rp
    - loyearp
    - hiyearp
    - typep
    - monthp
    - dayp
    - timep
    argTypes:
    - struct rule*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1539
      start: 1391
    functionDepth: 0
    functionLinenumber: 1391
    functionLinenumberEnd: 1539
    functionName: rulesub
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - byword
    - lowerit
    - scheck
    - gethms
    - strchr
    - exit
    - ecpyalloc
    - free
    - _
    - strlen
    - fprintf
    - error
    - sscanf
    linkageType: ''
    returnType: void
    signature: "static void rulesub(register struct rule *const rp,\tconst char *const
      loyearp,\tconst char *const hiyearp,\tconst char *const typep,\tconst char *const
      monthp,\tconst char *const dayp,\tconst char *const timep) "
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/icu/source/tools/tzcode/zic.c:1952,1
    - Dst: strcpy
      Src: /src/icu/source/tools/tzcode/zic.c:1955,1
    - Dst: strcpy
      Src: /src/icu/source/tools/tzcode/zic.c:1958,1
    - Dst: sprintf
      Src: /src/icu/source/tools/tzcode/zic.c:1956,1
    - Dst: strncpy
      Src: /src/icu/source/tools/tzcode/zic.c:1961,1
    - Dst: strchr
      Src: /src/icu/source/tools/tzcode/zic.c:1967,1
    - Dst: strchr
      Src: /src/icu/source/tools/tzcode/zic.c:1968,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/zic.c:1970,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 5
    argNames:
    - abbr
    - format
    - letters
    - isdst
    - doquotes
    argTypes:
    - char*
    - char*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1978
      start: 1944
    functionDepth: 0
    functionLinenumber: 1944
    functionLinenumberEnd: 1978
    functionName: doabbr
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - sprintf
    - strcpy
    - strchr
    - strncpy
    - strlen
    linkageType: ''
    returnType: void
    signature: 'static void doabbr(char *const abbr, const char *const format, const
      char *const letters, const int isdst, const int doquotes) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/icu/source/tools/tzcode/zic.c:1998,1
    - Dst: end
      Src: /src/icu/source/tools/tzcode/zic.c:2012,1
    - Dst: sprintf
      Src: /src/icu/source/tools/tzcode/zic.c:2010,1
    - Dst: end
      Src: /src/icu/source/tools/tzcode/zic.c:2010,1
    - Dst: sprintf
      Src: /src/icu/source/tools/tzcode/zic.c:2012,1
    - Dst: sprintf
      Src: /src/icu/source/tools/tzcode/zic.c:2014,1
    - Dst: end
      Src: /src/icu/source/tools/tzcode/zic.c:2014,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - result
    - offset
    argTypes:
    - char*
    - zic_t
    constantsTouched: []
    func_position:
      end: 2017
      start: 1989
    functionDepth: 0
    functionLinenumber: 1989
    functionLinenumberEnd: 2017
    functionName: stringoffset
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - sprintf
    - strcpy
    - end
    linkageType: ''
    returnType: int
    signature: 'static int stringoffset(char *result, zic_t offset) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct rule*
    - struct rule*
    constantsTouched: []
    func_position:
      end: 2100
      start: 2088
    functionDepth: 0
    functionLinenumber: 2088
    functionLinenumberEnd: 2100
    functionName: rule_cmp
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int rule_cmp(struct rule const *a, struct rule const *b) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecpyalloc
      Src: /src/icu/source/tools/tzcode/zic.c:874,1
    - Dst: free
      Src: /src/icu/source/tools/tzcode/zic.c:877,1
    - Dst: ecatalloc
      Src: /src/icu/source/tools/tzcode/zic.c:875,1
    - Dst: access
      Src: /src/icu/source/tools/tzcode/zic.c:876,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 879
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 879
    functionName: itsdir
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - ecpyalloc
    - ecatalloc
    - free
    - access
    linkageType: ''
    returnType: int
    signature: 'static int itsdir(const char *const name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - val
    - buf
    argTypes:
    - int_fast32_t
    - char*
    constantsTouched: []
    func_position:
      end: 1550
      start: 1541
    functionDepth: 0
    functionLinenumber: 1541
    functionLinenumberEnd: 1550
    functionName: convert
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void convert(const int_fast32_t val, char *const buf) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - zic_t
    constantsTouched: []
    func_position:
      end: 1987
      start: 1980
    functionDepth: 0
    functionLinenumber: 1980
    functionLinenumberEnd: 1987
    functionName: updateminmax
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void updateminmax(const zic_t x) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/icu/source/tools/tzcode/zic.c:2026,1
    - Dst: strcat
      Src: /src/icu/source/tools/tzcode/zic.c:2074,1
    - Dst: sprintf
      Src: /src/icu/source/tools/tzcode/zic.c:2066,1
    - Dst: sprintf
      Src: /src/icu/source/tools/tzcode/zic.c:2037,1
    - Dst: sprintf
      Src: /src/icu/source/tools/tzcode/zic.c:2039,1
    - Dst: stringoffset
      Src: /src/icu/source/tools/tzcode/zic.c:2075,1
    - Dst: end
      Src: /src/icu/source/tools/tzcode/zic.c:2075,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 69
    argCount: 4
    argNames:
    - result
    - rp
    - dstoff
    - gmtoff
    argTypes:
    - char*
    - struct rule*
    - zic_t
    - zic_t
    constantsTouched: []
    func_position:
      end: 2086
      start: 2019
    functionDepth: 0
    functionLinenumber: 2019
    functionLinenumberEnd: 2086
    functionName: stringrule
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - end
    - sprintf
    - strcat
    - stringoffset
    linkageType: ''
    returnType: int
    signature: "static int stringrule(char *result, const struct rule *const rp, const
      zic_t dstoff,\t const zic_t gmtoff) "
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:2788,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:2789,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:2788,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:2794,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:2794,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:2795,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - t
    - positive
    - rolling
    - count
    argTypes:
    - zic_t
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2810
      start: 2782
    functionDepth: 0
    functionLinenumber: 2782
    functionLinenumberEnd: 2810
    functionName: leapadd
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - _
    - error
    - exit
    linkageType: ''
    returnType: void
    signature: 'static void leapadd(const zic_t t, const int positive, const int rolling,
      int count) '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strerror
      Src: /src/icu/source/tools/tzcode/zic.c:987,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:989,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:1009,1
    - Dst: inzcont
      Src: /src/icu/source/tools/tzcode/zic.c:1016,1
    - Dst: getfields
      Src: /src/icu/source/tools/tzcode/zic.c:1004,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:1035,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:1042,1
    - Dst: ferror
      Src: /src/icu/source/tools/tzcode/zic.c:1050,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:1058,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1058,1
    - Dst: fclose
      Src: /src/icu/source/tools/tzcode/zic.c:1055,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:991,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1020,1
    - Dst: inzone
      Src: /src/icu/source/tools/tzcode/zic.c:1027,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1036,1
    - Dst: free
      Src: /src/icu/source/tools/tzcode/zic.c:1048,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:1051,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:1060,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1063,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1063,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:983,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:989,1
    - Dst: eat
      Src: /src/icu/source/tools/tzcode/zic.c:995,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1000,1
    - Dst: byword
      Src: /src/icu/source/tools/tzcode/zic.c:1018,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:1001,1
    - Dst: inrule
      Src: /src/icu/source/tools/tzcode/zic.c:1023,1
    - Dst: inlink
      Src: /src/icu/source/tools/tzcode/zic.c:1030,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1043,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:1045,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1051,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:984,1
    - Dst: fopen
      Src: /src/icu/source/tools/tzcode/zic.c:986,1
    - Dst: fgets
      Src: /src/icu/source/tools/tzcode/zic.c:996,1
    - Dst: strchr
      Src: /src/icu/source/tools/tzcode/zic.c:998,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1020,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1000,1
    - Dst: inleap
      Src: /src/icu/source/tools/tzcode/zic.c:1038,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:1053,1
    - Dst: strerror
      Src: /src/icu/source/tools/tzcode/zic.c:1056,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 79
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1064
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 1064
    functionName: infile
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - fclose
    - inrule
    - free
    - _
    - inleap
    - fopen
    - inlink
    - strchr
    - exit
    - ferror
    - byword
    - getfields
    - strerror
    - strcmp
    - eat
    - inzcont
    - fgets
    - inzone
    - fprintf
    - error
    linkageType: ''
    returnType: void
    signature: 'static void infile(const char *name) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/icu/source/tools/tzcode/zic.c:2691,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/zic.c:2693,1
    - Dst: growalloc
      Src: /src/icu/source/tools/tzcode/zic.c:2698,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - starttime
    - type
    argTypes:
    - zic_t
    - int
    constantsTouched: []
    func_position:
      end: 2702
      start: 2677
    functionDepth: 0
    functionLinenumber: 2677
    functionLinenumberEnd: 2702
    functionName: addtt
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - strlen
    - strcpy
    - growalloc
    linkageType: ''
    returnType: void
    signature: 'static void addtt(const zic_t starttime, int type) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memory_exhausted
      Src: /src/icu/source/tools/tzcode/zic.c:455,1
    - Dst: erealloc
      Src: /src/icu/source/tools/tzcode/zic.c:457,1
    - Dst: size_product
      Src: /src/icu/source/tools/tzcode/zic.c:457,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - ptr
    - itemsize
    - nitems
    - nitems_alloc
    argTypes:
    - void*
    - size_t
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 459
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 459
    functionName: growalloc
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - erealloc
    - size_product
    - memory_exhausted
    linkageType: ''
    returnType: void*
    signature: 'static void *growalloc(void *ptr, size_t itemsize, int nitems, int
      *nitems_alloc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:550,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - f
    - from
    - to
    argTypes:
    - FILE*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 551
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 551
    functionName: emit_icu_link
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void emit_icu_link(FILE* f, const char* from, const char* to) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: warning
      Src: /src/icu/source/tools/tzcode/zic.c:558,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:564,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:574,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:559,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:572,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:575,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:577,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:579,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:580,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:581,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:582,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:583,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - f
    - r
    - ruleIndex
    argTypes:
    - FILE*
    - struct rule*
    - int
    constantsTouched: []
    func_position:
      end: 584
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 584
    functionName: emit_icu_rule
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - fprintf
    - warning
    linkageType: ''
    returnType: void
    signature: 'static void emit_icu_rule(FILE* f, const struct rule* r, int ruleIndex) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1122,1
    - Dst: gethms
      Src: /src/icu/source/tools/tzcode/zic.c:1131,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1122,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1126,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1126,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1131,1
    - Dst: rulesub
      Src: /src/icu/source/tools/tzcode/zic.c:1132,1
    - Dst: ecpyalloc
      Src: /src/icu/source/tools/tzcode/zic.c:1134,1
    - Dst: ecpyalloc
      Src: /src/icu/source/tools/tzcode/zic.c:1135,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/zic.c:1136,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/zic.c:1137,1
    - Dst: growalloc
      Src: /src/icu/source/tools/tzcode/zic.c:1138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - fields
    - nfields
    argTypes:
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 1140
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1140
    functionName: inrule
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - rulesub
    - growalloc
    - gethms
    - ecpyalloc
    - _
    - strlen
    - error
    linkageType: ''
    returnType: void
    signature: 'static void inrule(register char **const fields, const int nfields) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - val
    - buf
    argTypes:
    - zic_t
    - char*
    constantsTouched: []
    func_position:
      end: 1561
      start: 1552
    functionDepth: 0
    functionLinenumber: 1552
    functionLinenumberEnd: 1561
    functionName: convert64
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void convert64(const zic_t val, char *const buf) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert64
      Src: /src/icu/source/tools/tzcode/zic.c:1577,1
    - Dst: fwrite
      Src: /src/icu/source/tools/tzcode/zic.c:1578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - val
    - fp
    argTypes:
    - zic_t
    - FILE*
    constantsTouched: []
    func_position:
      end: 1579
      start: 1572
    functionDepth: 0
    functionLinenumber: 1572
    functionLinenumberEnd: 1579
    functionName: puttzcode64
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - fwrite
    - convert64
    linkageType: ''
    returnType: void
    signature: 'static void puttzcode64(const zic_t val, FILE *const fp) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: rule_cmp
      Src: /src/icu/source/tools/tzcode/zic.c:2145,1
    - Dst: doabbr
      Src: /src/icu/source/tools/tzcode/zic.c:2182,1
    - Dst: end
      Src: /src/icu/source/tools/tzcode/zic.c:2183,1
    - Dst: rule_cmp
      Src: /src/icu/source/tools/tzcode/zic.c:2147,1
    - Dst: stringoffset
      Src: /src/icu/source/tools/tzcode/zic.c:2183,1
    - Dst: doabbr
      Src: /src/icu/source/tools/tzcode/zic.c:2189,1
    - Dst: end
      Src: /src/icu/source/tools/tzcode/zic.c:2189,1
    - Dst: stringoffset
      Src: /src/icu/source/tools/tzcode/zic.c:2191,1
    - Dst: end
      Src: /src/icu/source/tools/tzcode/zic.c:2191,1
    - Dst: strcat
      Src: /src/icu/source/tools/tzcode/zic.c:2196,1
    - Dst: strcat
      Src: /src/icu/source/tools/tzcode/zic.c:2204,1
    - Dst: stringrule
      Src: /src/icu/source/tools/tzcode/zic.c:2197,1
    - Dst: stringrule
      Src: /src/icu/source/tools/tzcode/zic.c:2205,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 105
    argCount: 3
    argNames:
    - result
    - zpfirst
    - zonecount
    argTypes:
    - char*
    - struct zone*
    - int
    constantsTouched: []
    func_position:
      end: 2213
      start: 2104
    functionDepth: 0
    functionLinenumber: 2104
    functionLinenumberEnd: 2213
    functionName: stringzone
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - end
    - stringrule
    - doabbr
    - strcat
    - rule_cmp
    - stringoffset
    linkageType: ''
    returnType: int
    signature: 'static int stringzone(char *result, const struct zone *const zpfirst,
      const int zonecount) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tadd
      Src: /src/icu/source/tools/tzcode/zic.c:2822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 2825
      start: 2812
    functionDepth: 0
    functionLinenumber: 2812
    functionLinenumberEnd: 2825
    functionName: adjleap
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - tadd
    linkageType: ''
    returnType: void
    signature: 'static void adjleap(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: erealloc
      Src: /src/icu/source/tools/tzcode/zic.c:594,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - struct rule*
    - struct rule*
    constantsTouched: []
    func_position:
      end: 599
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 599
    functionName: add_icu_final_rules
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - erealloc
    linkageType: ''
    returnType: int
    signature: 'static int add_icu_final_rules(const struct rule* r1, const struct
      rule* r2) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1148,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:1151,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1153,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1152,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1148,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:1157,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1158,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1159,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:1165,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1166,1
    - Dst: inzsub
      Src: /src/icu/source/tools/tzcode/zic.c:1173,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1167,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - fields
    - nfields
    argTypes:
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 1174
      start: 1142
    functionDepth: 0
    functionLinenumber: 1142
    functionLinenumberEnd: 1174
    functionName: inzone
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - inzsub
    - _
    - strcmp
    - error
    linkageType: ''
    returnType: int
    signature: 'static int inzone(register char **const fields, const int nfields) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert
      Src: /src/icu/source/tools/tzcode/zic.c:1568,1
    - Dst: fwrite
      Src: /src/icu/source/tools/tzcode/zic.c:1569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - val
    - fp
    argTypes:
    - int_fast32_t
    - FILE*
    constantsTouched: []
    func_position:
      end: 1570
      start: 1563
    functionDepth: 0
    functionLinenumber: 1563
    functionLinenumberEnd: 1570
    functionName: puttzcode
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - fwrite
    - convert
    linkageType: ''
    returnType: void
    signature: 'static void puttzcode(const int_fast32_t val, FILE *const fp) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 2
    argNames:
    - avp
    - bvp
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 1588
      start: 1581
    functionDepth: 0
    functionLinenumber: 1581
    functionLinenumberEnd: 1588
    functionName: atcomp
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int atcomp(const void *avp, const void *bvp) '
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: updateminmax
      Src: /src/icu/source/tools/tzcode/zic.c:2282,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:2301,1
    - Dst: eat
      Src: /src/icu/source/tools/tzcode/zic.c:2364,1
    - Dst: warning
      Src: /src/icu/source/tools/tzcode/zic.c:2427,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:2385,1
    - Dst: add_icu_final_rules
      Src: /src/icu/source/tools/tzcode/zic.c:2446,1
    - Dst: eats
      Src: /src/icu/source/tools/tzcode/zic.c:2477,1
    - Dst: yearistype
      Src: /src/icu/source/tools/tzcode/zic.c:2481,1
    - Dst: addtt
      Src: /src/icu/source/tools/tzcode/zic.c:2467,1
    - Dst: rpytime
      Src: /src/icu/source/tools/tzcode/zic.c:2483,1
    - Dst: eats
      Src: /src/icu/source/tools/tzcode/zic.c:2580,1
    - Dst: eat
      Src: /src/icu/source/tools/tzcode/zic.c:2602,1
    - Dst: addtype
      Src: /src/icu/source/tools/tzcode/zic.c:2614,1
    - Dst: tadd
      Src: /src/icu/source/tools/tzcode/zic.c:2523,1
    - Dst: free
      Src: /src/icu/source/tools/tzcode/zic.c:2674,1
    - Dst: strchr
      Src: /src/icu/source/tools/tzcode/zic.c:2599,1
    - Dst: addtt
      Src: /src/icu/source/tools/tzcode/zic.c:2605,1
    - Dst: free
      Src: /src/icu/source/tools/tzcode/zic.c:2673,1
    - Dst: emalloc
      Src: /src/icu/source/tools/tzcode/zic.c:2247,1
    - Dst: emalloc
      Src: /src/icu/source/tools/tzcode/zic.c:2249,1
    - Dst: updateminmax
      Src: /src/icu/source/tools/tzcode/zic.c:2284,1
    - Dst: warning
      Src: /src/icu/source/tools/tzcode/zic.c:2300,1
    - Dst: INITIALIZE
      Src: /src/icu/source/tools/tzcode/zic.c:2490,1
    - Dst: doabbr
      Src: /src/icu/source/tools/tzcode/zic.c:2551,1
    - Dst: doabbr
      Src: /src/icu/source/tools/tzcode/zic.c:2582,1
    - Dst: strchr
      Src: /src/icu/source/tools/tzcode/zic.c:2600,1
    - Dst: tadd
      Src: /src/icu/source/tools/tzcode/zic.c:2628,1
    - Dst: tadd
      Src: /src/icu/source/tools/tzcode/zic.c:2630,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:2659,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:2604,1
    - Dst: addtt
      Src: /src/icu/source/tools/tzcode/zic.c:2593,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:2659,1
    - Dst: INITIALIZE
      Src: /src/icu/source/tools/tzcode/zic.c:2250,1
    - Dst: warning
      Src: /src/icu/source/tools/tzcode/zic.c:2307,1
    - Dst: doabbr
      Src: /src/icu/source/tools/tzcode/zic.c:2455,1
    - Dst: addtt
      Src: /src/icu/source/tools/tzcode/zic.c:2464,1
    - Dst: tadd
      Src: /src/icu/source/tools/tzcode/zic.c:2499,1
    - Dst: eats
      Src: /src/icu/source/tools/tzcode/zic.c:2514,1
    - Dst: emit_icu_zone
      Src: /src/icu/source/tools/tzcode/zic.c:2573,1
    - Dst: oadd
      Src: /src/icu/source/tools/tzcode/zic.c:2584,1
    - Dst: addtype
      Src: /src/icu/source/tools/tzcode/zic.c:2586,1
    - Dst: doabbr
      Src: /src/icu/source/tools/tzcode/zic.c:2542,1
    - Dst: free
      Src: /src/icu/source/tools/tzcode/zic.c:2672,1
    - Dst: rpytime
      Src: /src/icu/source/tools/tzcode/zic.c:2668,1
    - Dst: tadd
      Src: /src/icu/source/tools/tzcode/zic.c:2502,1
    - Dst: addtype
      Src: /src/icu/source/tools/tzcode/zic.c:2607,1
    - Dst: strcpy
      Src: /src/icu/source/tools/tzcode/zic.c:2601,1
    - Dst: emalloc
      Src: /src/icu/source/tools/tzcode/zic.c:2248,1
    - Dst: INITIALIZE
      Src: /src/icu/source/tools/tzcode/zic.c:2251,1
    - Dst: updateminmax
      Src: /src/icu/source/tools/tzcode/zic.c:2267,1
    - Dst: updateminmax
      Src: /src/icu/source/tools/tzcode/zic.c:2268,1
    - Dst: updateminmax
      Src: /src/icu/source/tools/tzcode/zic.c:2278,1
    - Dst: stringzone
      Src: /src/icu/source/tools/tzcode/zic.c:2292,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:2307,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:2386,1
    - Dst: addtype
      Src: /src/icu/source/tools/tzcode/zic.c:2457,1
    - Dst: oadd
      Src: /src/icu/source/tools/tzcode/zic.c:2457,1
    - Dst: oadd
      Src: /src/icu/source/tools/tzcode/zic.c:2518,1
    - Dst: oadd
      Src: /src/icu/source/tools/tzcode/zic.c:2540,1
    - Dst: addtt
      Src: /src/icu/source/tools/tzcode/zic.c:2668,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:2660,1
    - Dst: oadd
      Src: /src/icu/source/tools/tzcode/zic.c:2549,1
    - Dst: addtype
      Src: /src/icu/source/tools/tzcode/zic.c:2590,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:2604,1
    - Dst: rpytime
      Src: /src/icu/source/tools/tzcode/zic.c:2653,1
    - Dst: writezone
      Src: /src/icu/source/tools/tzcode/zic.c:2671,1
    CyclomaticComplexity: 100
    EdgeCount: 100
    ICount: 339
    argCount: 2
    argNames:
    - zpfirst
    - zonecount
    argTypes:
    - struct zone*
    - int
    constantsTouched: []
    func_position:
      end: 2675
      start: 2215
    functionDepth: 0
    functionLinenumber: 2215
    functionLinenumberEnd: 2675
    functionName: outzone
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - addtt
    - emalloc
    - rpytime
    - doabbr
    - free
    - _
    - addtype
    - stringzone
    - warning
    - yearistype
    - strchr
    - strcpy
    - exit
    - updateminmax
    - eats
    - eat
    - writezone
    - INITIALIZE
    - tadd
    - add_icu_final_rules
    - emit_icu_zone
    - oadd
    - error
    linkageType: ''
    returnType: void
    signature: 'static void outzone(const struct zone * const zpfirst, const int zonecount) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: erealloc
      Src: /src/icu/source/tools/tzcode/zic.c:2835,1
    - Dst: system
      Src: /src/icu/source/tools/tzcode/zic.c:2837,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/zic.c:2835,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/zic.c:2835,1
    - Dst: sprintf
      Src: /src/icu/source/tools/tzcode/zic.c:2836,1
    - Dst: WIFEXITED
      Src: /src/icu/source/tools/tzcode/zic.c:2838,1
    - Dst: WEXITSTATUS
      Src: /src/icu/source/tools/tzcode/zic.c:2838,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:2844,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:2844,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:2845,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:2845,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:2848,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - year
    - type
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 2849
      start: 2827
    functionDepth: 0
    functionLinenumber: 2827
    functionLinenumberEnd: 2849
    functionName: yearistype
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - sprintf
    - erealloc
    - system
    - exit
    - WIFEXITED
    - WEXITSTATUS
    - _
    - strlen
    - fprintf
    - error
    linkageType: ''
    returnType: int
    signature: 'static int yearistype(const int year, const char *const type) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: emalloc
      Src: /src/icu/source/tools/tzcode/zic.c:2919,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/zic.c:2919,1
    - Dst: size_product
      Src: /src/icu/source/tools/tzcode/zic.c:2919,1
    - Dst: isascii
      Src: /src/icu/source/tools/tzcode/zic.c:2922,1
    - Dst: isspace
      Src: /src/icu/source/tools/tzcode/zic.c:2923,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:2935,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:2935,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:2938,1
    - Dst: isascii
      Src: /src/icu/source/tools/tzcode/zic.c:2941,1
    - Dst: isspace
      Src: /src/icu/source/tools/tzcode/zic.c:2941,1
    - Dst: isascii
      Src: /src/icu/source/tools/tzcode/zic.c:2942,1
    - Dst: isspace
      Src: /src/icu/source/tools/tzcode/zic.c:2942,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 41
    argCount: 1
    argNames:
    - cp
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2948
      start: 2910
    functionDepth: 0
    functionLinenumber: 2910
    functionLinenumberEnd: 2948
    functionName: getfields
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - isspace
    - emalloc
    - exit
    - _
    - strlen
    - isascii
    - error
    - size_product
    linkageType: ''
    returnType: char**
    signature: 'static char **getfields(register char *cp) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ciequal
      Src: /src/icu/source/tools/tzcode/zic.c:2895,1
    - Dst: itsabbr
      Src: /src/icu/source/tools/tzcode/zic.c:2902,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 14
    argCount: 2
    argNames:
    - word
    - table
    argTypes:
    - char*
    - struct lookup*
    constantsTouched: []
    func_position:
      end: 2908
      start: 2882
    functionDepth: 0
    functionLinenumber: 2882
    functionLinenumberEnd: 2908
    functionName: byword
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - itsabbr
    - ciequal
    linkageType: ''
    returnType: lookup*
    signature: 'lookup *byword(register const char *const word, register const struct
      lookup *const table) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memory_exhausted
      Src: /src/icu/source/tools/tzcode/zic.c:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - nitems
    - itemsize
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 432
    functionName: size_product
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - memory_exhausted
    linkageType: ''
    returnType: ATTRIBUTE_PURE
    signature: 'static ATTRIBUTE_PURE size_t size_product(size_t nitems, size_t itemsize) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eats
      Src: /src/icu/source/tools/tzcode/zic.c:478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - name
    - num
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 479
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 479
    functionName: eat
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - eats
    linkageType: ''
    returnType: void
    signature: 'static void eat(const char *const name, const int num) '
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/icu/source/tools/tzcode/zic.c:616,1
    - Dst: usage
      Src: /src/icu/source/tools/tzcode/zic.c:636,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:649,1
    - Dst: getopt
      Src: /src/icu/source/tools/tzcode/zic.c:638,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:647,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:634,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:667,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:669,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:686,1
    - Dst: infile
      Src: /src/icu/source/tools/tzcode/zic.c:707,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:714,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:716,1
    - Dst: eat
      Src: /src/icu/source/tools/tzcode/zic.c:748,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:743,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:722,1
    - Dst: umask
      Src: /src/icu/source/tools/tzcode/zic.c:616,1
    - Dst: textdomain
      Src: /src/icu/source/tools/tzcode/zic.c:623,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:627,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:628,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:632,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:656,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:659,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:676,1
    - Dst: printf
      Src: /src/icu/source/tools/tzcode/zic.c:696,1
    - Dst: adjleap
      Src: /src/icu/source/tools/tzcode/zic.c:708,1
    - Dst: infile
      Src: /src/icu/source/tools/tzcode/zic.c:720,1
    - Dst: eat
      Src: /src/icu/source/tools/tzcode/zic.c:736,1
    - Dst: fopen
      Src: /src/icu/source/tools/tzcode/zic.c:712,1
    - Dst: eat
      Src: /src/icu/source/tools/tzcode/zic.c:752,1
    - Dst: setlocale
      Src: /src/icu/source/tools/tzcode/zic.c:619,1
    - Dst: printf
      Src: /src/icu/source/tools/tzcode/zic.c:633,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:646,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:666,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:687,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:689,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:699,1
    - Dst: outzone
      Src: /src/icu/source/tools/tzcode/zic.c:730,1
    - Dst: dolink
      Src: /src/icu/source/tools/tzcode/zic.c:737,1
    - Dst: warning
      Src: /src/icu/source/tools/tzcode/zic.c:745,1
    - Dst: dolink
      Src: /src/icu/source/tools/tzcode/zic.c:753,1
    - Dst: emit_icu_link
      Src: /src/icu/source/tools/tzcode/zic.c:739,1
    - Dst: dolink
      Src: /src/icu/source/tools/tzcode/zic.c:749,1
    - Dst: bindtextdomain
      Src: /src/icu/source/tools/tzcode/zic.c:621,1
    - Dst: TYPE_BIT
      Src: /src/icu/source/tools/tzcode/zic.c:626,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:629,1
    - Dst: usage
      Src: /src/icu/source/tools/tzcode/zic.c:641,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:635,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:657,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:677,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:679,1
    - Dst: usage
      Src: /src/icu/source/tools/tzcode/zic.c:700,1
    - Dst: strerror
      Src: /src/icu/source/tools/tzcode/zic.c:713,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:714,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:745,1
    - Dst: associate
      Src: /src/icu/source/tools/tzcode/zic.c:723,1
    - Dst: emit_icu_rule
      Src: /src/icu/source/tools/tzcode/zic.c:757,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 131
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 761
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 761
    functionName: main
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - getopt
    - TYPE_BIT
    - umask
    - infile
    - _
    - emit_icu_rule
    - printf
    - bindtextdomain
    - usage
    - warning
    - outzone
    - fopen
    - adjleap
    - exit
    - textdomain
    - setlocale
    - associate
    - strcmp
    - strerror
    - eat
    - dolink
    - emit_icu_link
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:892,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - cp1
    - cp2
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 894
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 894
    functionName: rcomp
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: 'static int rcomp(const void *cp1, const void *cp2) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1180,1
    - Dst: inzsub
      Src: /src/icu/source/tools/tzcode/zic.c:1183,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - fields
    - nfields
    argTypes:
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 1184
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1184
    functionName: inzcont
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - inzsub
    - _
    - error
    linkageType: ''
    returnType: int
    signature: 'static int inzcont(register char **const fields, const int nfields) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1275,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1284,1
    - Dst: byword
      Src: /src/icu/source/tools/tzcode/zic.c:1303,1
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/zic.c:1310,1
    - Dst: oadd
      Src: /src/icu/source/tools/tzcode/zic.c:1311,1
    - Dst: oadd
      Src: /src/icu/source/tools/tzcode/zic.c:1320,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1326,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1330,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:1340,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:1346,1
    - Dst: tadd
      Src: /src/icu/source/tools/tzcode/zic.c:1362,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1284,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1317,1
    - Dst: TYPE_SIGNED
      Src: /src/icu/source/tools/tzcode/zic.c:1321,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1322,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1326,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1334,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:1343,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:1349,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1353,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1357,1
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/zic.c:1295,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1317,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1304,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1322,1
    - Dst: byword
      Src: /src/icu/source/tools/tzcode/zic.c:1356,1
    - Dst: leapadd
      Src: /src/icu/source/tools/tzcode/zic.c:1362,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1353,1
    - Dst: sscanf
      Src: /src/icu/source/tools/tzcode/zic.c:1280,1
    - Dst: scheck
      Src: /src/icu/source/tools/tzcode/zic.c:1280,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1275,1
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/zic.c:1299,1
    - Dst: oadd
      Src: /src/icu/source/tools/tzcode/zic.c:1301,1
    - Dst: scheck
      Src: /src/icu/source/tools/tzcode/zic.c:1315,1
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/zic.c:1316,1
    - Dst: sscanf
      Src: /src/icu/source/tools/tzcode/zic.c:1315,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1304,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1330,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1357,1
    - Dst: gethms
      Src: /src/icu/source/tools/tzcode/zic.c:1334,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 119
    argCount: 2
    argNames:
    - fields
    - nfields
    argTypes:
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 1364
      start: 1263
    functionDepth: 0
    functionLinenumber: 1263
    functionLinenumberEnd: 1364
    functionName: inleap
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - byword
    - scheck
    - oadd
    - gethms
    - strcmp
    - leapadd
    - _
    - isleap
    - tadd
    - TYPE_SIGNED
    - error
    - sscanf
    linkageType: ''
    returnType: void
    signature: 'static void inleap(register char ** const fields, const int nfields) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isascii
      Src: /src/icu/source/tools/tzcode/zic.c:2855,1
    - Dst: isupper
      Src: /src/icu/source/tools/tzcode/zic.c:2855,1
    - Dst: tolower
      Src: /src/icu/source/tools/tzcode/zic.c:2855,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2856
      start: 2851
    functionDepth: 0
    functionLinenumber: 2851
    functionLinenumberEnd: 2856
    functionName: lowerit
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - isupper
    - isascii
    - tolower
    linkageType: ''
    returnType: int
    signature: 'static int lowerit(int a) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:2954,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:2954,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:2955,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - zic_t
    - zic_t
    constantsTouched: []
    func_position:
      end: 2958
      start: 2950
    functionDepth: 0
    functionLinenumber: 2950
    functionLinenumberEnd: 2958
    functionName: oadd
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - _
    - error
    - exit
    linkageType: ''
    returnType: ATTRIBUTE_PURE
    signature: 'static ATTRIBUTE_PURE zic_t oadd(const zic_t t1, const zic_t t2) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memory_exhausted
      Src: /src/icu/source/tools/tzcode/zic.c:438,1
    - Dst: strerror
      Src: /src/icu/source/tools/tzcode/zic.c:438,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 440
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 440
    functionName: memcheck
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - strerror
    - memory_exhausted
    linkageType: ''
    returnType: ATTRIBUTE_PURE*
    signature: 'static ATTRIBUTE_PURE void *memcheck(void *const ptr) '
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: itsdir
      Src: /src/icu/source/tools/tzcode/zic.c:790,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:794,1
    - Dst: symlink
      Src: /src/icu/source/tools/tzcode/zic.c:815,1
    - Dst: free
      Src: /src/icu/source/tools/tzcode/zic.c:818,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:827,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:829,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:837,1
    - Dst: fclose
      Src: /src/icu/source/tools/tzcode/zic.c:847,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:848,1
    - Dst: warning
      Src: /src/icu/source/tools/tzcode/zic.c:853,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:842,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:834,1
    - Dst: ecatalloc
      Src: /src/icu/source/tools/tzcode/zic.c:773,1
    - Dst: ecatalloc
      Src: /src/icu/source/tools/tzcode/zic.c:780,1
    - Dst: strchr
      Src: /src/icu/source/tools/tzcode/zic.c:809,1
    - Dst: ecatalloc
      Src: /src/icu/source/tools/tzcode/zic.c:812,1
    - Dst: warning
      Src: /src/icu/source/tools/tzcode/zic.c:817,1
    - Dst: strerror
      Src: /src/icu/source/tools/tzcode/zic.c:825,1
    - Dst: fopen
      Src: /src/icu/source/tools/tzcode/zic.c:831,1
    - Dst: strerror
      Src: /src/icu/source/tools/tzcode/zic.c:833,1
    - Dst: putc
      Src: /src/icu/source/tools/tzcode/zic.c:840,1
    - Dst: ferror
      Src: /src/icu/source/tools/tzcode/zic.c:841,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:855,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:835,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:849,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:845,1
    - Dst: ecpyalloc
      Src: /src/icu/source/tools/tzcode/zic.c:770,1
    - Dst: ecpyalloc
      Src: /src/icu/source/tools/tzcode/zic.c:777,1
    - Dst: link
      Src: /src/icu/source/tools/tzcode/zic.c:796,1
    - Dst: strchr
      Src: /src/icu/source/tools/tzcode/zic.c:804,1
    - Dst: mkdirs
      Src: /src/icu/source/tools/tzcode/zic.c:793,1
    - Dst: ecatalloc
      Src: /src/icu/source/tools/tzcode/zic.c:814,1
    - Dst: fopen
      Src: /src/icu/source/tools/tzcode/zic.c:823,1
    - Dst: getc
      Src: /src/icu/source/tools/tzcode/zic.c:839,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:843,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:851,1
    - Dst: fclose
      Src: /src/icu/source/tools/tzcode/zic.c:841,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:826,1
    - Dst: ecatalloc
      Src: /src/icu/source/tools/tzcode/zic.c:774,1
    - Dst: ecpyalloc
      Src: /src/icu/source/tools/tzcode/zic.c:772,1
    - Dst: ecpyalloc
      Src: /src/icu/source/tools/tzcode/zic.c:779,1
    - Dst: ecatalloc
      Src: /src/icu/source/tools/tzcode/zic.c:781,1
    - Dst: itsdir
      Src: /src/icu/source/tools/tzcode/zic.c:787,1
    - Dst: remove
      Src: /src/icu/source/tools/tzcode/zic.c:788,1
    - Dst: strncmp
      Src: /src/icu/source/tools/tzcode/zic.c:805,1
    - Dst: access
      Src: /src/icu/source/tools/tzcode/zic.c:790,1
    - Dst: link
      Src: /src/icu/source/tools/tzcode/zic.c:789,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:817,1
    - Dst: ferror
      Src: /src/icu/source/tools/tzcode/zic.c:847,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:853,1
    - Dst: free
      Src: /src/icu/source/tools/tzcode/zic.c:860,1
    - Dst: free
      Src: /src/icu/source/tools/tzcode/zic.c:859,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 103
    argCount: 2
    argNames:
    - fromfield
    - tofield
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 861
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 861
    functionName: dolink
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - fclose
    - remove
    - free
    - _
    - itsdir
    - warning
    - putc
    - fopen
    - ecatalloc
    - strchr
    - getc
    - exit
    - access
    - ferror
    - strerror
    - link
    - strncmp
    - mkdirs
    - symlink
    - ecpyalloc
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void dolink(const char *const fromfield, const char *const
      tofield) '
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:907,1
    - Dst: warning
      Src: /src/icu/source/tools/tzcode/zic.c:914,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:921,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:924,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:968,1
    - Dst: qsort
      Src: /src/icu/source/tools/tzcode/zic.c:905,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:910,1
    - Dst: eat
      Src: /src/icu/source/tools/tzcode/zic.c:915,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:916,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:918,1
    - Dst: eat
      Src: /src/icu/source/tools/tzcode/zic.c:956,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:964,1
    - Dst: warning
      Src: /src/icu/source/tools/tzcode/zic.c:916,1
    - Dst: gethms
      Src: /src/icu/source/tools/tzcode/zic.c:957,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:940,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:957,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:964,1
    - Dst: eat
      Src: /src/icu/source/tools/tzcode/zic.c:913,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:914,1
    - Dst: strchr
      Src: /src/icu/source/tools/tzcode/zic.c:963,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zic.c:944,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 75
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 969
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 969
    functionName: associate
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - gethms
    - eat
    - qsort
    - strcmp
    - strchr
    - exit
    - _
    - error
    - warning
    linkageType: ''
    returnType: void
    signature: 'static void associate(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ecpyalloc
      Src: /src/icu/source/tools/tzcode/zic.c:1213,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1217,1
    - Dst: strchr
      Src: /src/icu/source/tools/tzcode/zic.c:1219,1
    - Dst: gethms
      Src: /src/icu/source/tools/tzcode/zic.c:1217,1
    - Dst: strchr
      Src: /src/icu/source/tools/tzcode/zic.c:1218,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1220,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1220,1
    - Dst: ecpyalloc
      Src: /src/icu/source/tools/tzcode/zic.c:1224,1
    - Dst: ecpyalloc
      Src: /src/icu/source/tools/tzcode/zic.c:1225,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/zic.c:1226,1
    - Dst: rulesub
      Src: /src/icu/source/tools/tzcode/zic.c:1232,1
    - Dst: rpytime
      Src: /src/icu/source/tools/tzcode/zic.c:1240,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/zic.c:1227,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1248,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1248,1
    - Dst: growalloc
      Src: /src/icu/source/tools/tzcode/zic.c:1254,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 76
    argCount: 3
    argNames:
    - fields
    - nfields
    - iscont
    argTypes:
    - char**
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1261
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1261
    functionName: inzsub
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - rulesub
    - growalloc
    - gethms
    - rpytime
    - strchr
    - ecpyalloc
    - _
    - strlen
    - error
    linkageType: ''
    returnType: int
    signature: 'static int inzsub(register char **const fields, const int nfields,
      const int iscont) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1372,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1376,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1376,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1372,1
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:1380,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:1380,1
    - Dst: ecpyalloc
      Src: /src/icu/source/tools/tzcode/zic.c:1385,1
    - Dst: ecpyalloc
      Src: /src/icu/source/tools/tzcode/zic.c:1386,1
    - Dst: growalloc
      Src: /src/icu/source/tools/tzcode/zic.c:1387,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - fields
    - nfields
    argTypes:
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 1389
      start: 1366
    functionDepth: 0
    functionLinenumber: 1366
    functionLinenumberEnd: 1389
    functionName: inlink
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - ecpyalloc
    - _
    - growalloc
    - error
    linkageType: ''
    returnType: void
    signature: 'static void inlink(register char **const fields, const int nfields) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/icu/source/tools/tzcode/zic.c:2968,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:2968,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zic.c:2969,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - zic_t
    - zic_t
    constantsTouched: []
    func_position:
      end: 2972
      start: 2960
    functionDepth: 0
    functionLinenumber: 2960
    functionLinenumberEnd: 2972
    functionName: tadd
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - _
    - error
    - exit
    linkageType: ''
    returnType: ATTRIBUTE_PURE
    signature: 'static ATTRIBUTE_PURE zic_t tadd(const zic_t t1, const zic_t t2) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ecpyalloc
      Src: /src/icu/source/tools/tzcode/zic.c:3114,1
    - Dst: mkdir
      Src: /src/icu/source/tools/tzcode/zic.c:3134,1
    - Dst: strchr
      Src: /src/icu/source/tools/tzcode/zic.c:3115,1
    - Dst: itsdir
      Src: /src/icu/source/tools/tzcode/zic.c:3127,1
    - Dst: isalpha
      Src: /src/icu/source/tools/tzcode/zic.c:3121,1
    - Dst: strerror
      Src: /src/icu/source/tools/tzcode/zic.c:3135,1
    - Dst: itsdir
      Src: /src/icu/source/tools/tzcode/zic.c:3137,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zic.c:3138,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zic.c:3139,1
    - Dst: free
      Src: /src/icu/source/tools/tzcode/zic.c:3141,1
    - Dst: free
      Src: /src/icu/source/tools/tzcode/zic.c:3148,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 1
    argNames:
    - argname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3150
      start: 3106
    functionDepth: 0
    functionLinenumber: 3106
    functionLinenumberEnd: 3150
    functionName: mkdirs
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - mkdir
    - strchr
    - strerror
    - ecpyalloc
    - isalpha
    - free
    - _
    - itsdir
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int mkdirs(char *argname) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 4
    argNames:
    - name
    - num
    - rname
    - rnum
    argTypes:
    - char*
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 473
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 473
    functionName: eats
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void eats(const char *const name, const int num, const char
      *const rname, const int rnum) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lowerit
      Src: /src/icu/source/tools/tzcode/zic.c:2871,1
    - Dst: lowerit
      Src: /src/icu/source/tools/tzcode/zic.c:2871,1
    - Dst: lowerit
      Src: /src/icu/source/tools/tzcode/zic.c:2878,1
    - Dst: lowerit
      Src: /src/icu/source/tools/tzcode/zic.c:2878,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - abbr
    - word
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2880
      start: 2868
    functionDepth: 0
    functionLinenumber: 2868
    functionLinenumberEnd: 2880
    functionName: itsabbr
    functionSourceFile: /src/icu/source/tools/tzcode/zic.c
    functionUses: []
    functionsReached:
    - lowerit
    linkageType: ''
    returnType: ATTRIBUTE_PURE
    signature: 'static ATTRIBUTE_PURE int itsabbr(register const char *abbr, register
      const char *word) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/icu/source/tools/tzcode/private.h:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - time_t*
    constantsTouched: []
    func_position:
      end: 255
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 255
    functionName: sys_time
    functionSourceFile: /src/icu/source/tools/tzcode/private.h
    functionUses: []
    functionsReached:
    - time
    linkageType: ''
    returnType: time_t
    signature: 'static time_t sys_time(time_t *x) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sys_time
      Src: /src/icu/source/tools/tzcode/private.h:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - time_t*
    constantsTouched: []
    func_position:
      end: 296
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 296
    functionName: time
    functionSourceFile: /src/icu/source/tools/tzcode/private.h
    functionUses: []
    functionsReached:
    - sys_time
    linkageType: ''
    returnType: time_t
    signature: 'static time_t time(time_t *p) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: isascii
      Src: /src/icu/source/tools/tzcode/zdump.c:297,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zdump.c:302,1
    - Dst: isalpha
      Src: /src/icu/source/tools/tzcode/zdump.c:297,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zdump.c:300,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zdump.c:304,1
    - Dst: isascii
      Src: /src/icu/source/tools/tzcode/zdump.c:307,1
    - Dst: isdigit
      Src: /src/icu/source/tools/tzcode/zdump.c:308,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zdump.c:312,1
    - Dst: fflush
      Src: /src/icu/source/tools/tzcode/zdump.c:316,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:317,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zdump.c:318,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 2
    argNames:
    - abbrp
    - zone
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 321
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 321
    functionName: abbrok
    functionSourceFile: /src/icu/source/tools/tzcode/zdump.c
    functionUses: []
    functionsReached:
    - fprintf
    - isalpha
    - isdigit
    - _
    - fflush
    - isascii
    linkageType: ''
    returnType: void
    signature: 'static void abbrok(const char *const abbrp, const char *const zone) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: delta
      Src: /src/icu/source/tools/tzcode/zdump.c:784,1
    - Dst: isleap_sum
      Src: /src/icu/source/tools/tzcode/zdump.c:787,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - newp
    - oldp
    argTypes:
    - struct tm*
    - struct tm*
    constantsTouched: []
    func_position:
      end: 796
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 796
    functionName: delta
    functionSourceFile: /src/icu/source/tools/tzcode/zdump.c
    functionUses: []
    functionsReached:
    - isleap_sum
    - delta
    linkageType: ''
    returnType: intmax_t
    signature: 'static intmax_t delta(struct tm * newp, struct tm *oldp) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/source/tools/tzcode/zdump.c:803,1
    - Dst: gmtime
      Src: /src/icu/source/tools/tzcode/zdump.c:805,1
    - Dst: tformat
      Src: /src/icu/source/tools/tzcode/zdump.c:807,1
    - Dst: printf
      Src: /src/icu/source/tools/tzcode/zdump.c:807,1
    - Dst: dumptime
      Src: /src/icu/source/tools/tzcode/zdump.c:809,1
    - Dst: printf
      Src: /src/icu/source/tools/tzcode/zdump.c:810,1
    - Dst: printf
      Src: /src/icu/source/tools/tzcode/zdump.c:812,1
    - Dst: my_localtime
      Src: /src/icu/source/tools/tzcode/zdump.c:814,1
    - Dst: dumptime
      Src: /src/icu/source/tools/tzcode/zdump.c:815,1
    - Dst: abbr
      Src: /src/icu/source/tools/tzcode/zdump.c:817,1
    - Dst: abbr
      Src: /src/icu/source/tools/tzcode/zdump.c:818,1
    - Dst: printf
      Src: /src/icu/source/tools/tzcode/zdump.c:820,1
    - Dst: abbr
      Src: /src/icu/source/tools/tzcode/zdump.c:827,1
    - Dst: abbrok
      Src: /src/icu/source/tools/tzcode/zdump.c:828,1
    - Dst: printf
      Src: /src/icu/source/tools/tzcode/zdump.c:822,1
    - Dst: abbr
      Src: /src/icu/source/tools/tzcode/zdump.c:828,1
    - Dst: printf
      Src: /src/icu/source/tools/tzcode/zdump.c:818,1
    - Dst: printf
      Src: /src/icu/source/tools/tzcode/zdump.c:826,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - zone
    - t
    - v
    argTypes:
    - char*
    - time_t
    - int
    constantsTouched: []
    func_position:
      end: 829
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 829
    functionName: show
    functionSourceFile: /src/icu/source/tools/tzcode/zdump.c
    functionUses: []
    functionsReached:
    - dumptime
    - my_localtime
    - gmtime
    - abbr
    - abbrok
    - tformat
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void show(char *zone, time_t t, int v) '
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 869
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 869
    functionName: tformat
    functionSourceFile: /src/icu/source/tools/tzcode/zdump.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static const char *tformat(void) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: my_localtime
      Src: /src/icu/source/tools/tzcode/zdump.c:936,1
    - Dst: delta
      Src: /src/icu/source/tools/tzcode/zdump.c:957,1
    - Dst: strncpy
      Src: /src/icu/source/tools/tzcode/zdump.c:939,1
    - Dst: abbr
      Src: /src/icu/source/tools/tzcode/zdump.c:939,1
    - Dst: my_localtime
      Src: /src/icu/source/tools/tzcode/zdump.c:951,1
    - Dst: showICU
      Src: /src/icu/source/tools/tzcode/zdump.c:964,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 4
    argNames:
    - name
    - lot
    - hit
    - fp
    argTypes:
    - char*
    - time_t
    - time_t
    - FILE*
    constantsTouched: []
    func_position:
      end: 966
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 966
    functionName: huntICU
    functionSourceFile: /src/icu/source/tools/tzcode/zdump.c
    functionUses: []
    functionsReached:
    - abbr
    - strncpy
    - showICU
    - my_localtime
    - delta
    linkageType: ''
    returnType: time_t
    signature: 'static time_t huntICU(char *name, time_t lot, time_t hit, FILE * fp) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: my_localtime
      Src: /src/icu/source/tools/tzcode/zdump.c:991,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:1005,1
    - Dst: gmtime
      Src: /src/icu/source/tools/tzcode/zdump.c:1008,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:1006,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:1004,1
    - Dst: delta
      Src: /src/icu/source/tools/tzcode/zdump.c:1009,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:1012,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:1014,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:1022,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:1023,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:1024,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:1025,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 2
    argNames:
    - fp
    - t
    argTypes:
    - FILE*
    - time_t
    constantsTouched: []
    func_position:
      end: 1026
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 1026
    functionName: dumptimeICU
    functionSourceFile: /src/icu/source/tools/tzcode/zdump.c
    functionUses: []
    functionsReached:
    - my_localtime
    - fprintf
    - delta
    - gmtime
    linkageType: ''
    returnType: void
    signature: 'static void dumptimeICU(FILE * fp, time_t t) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:326,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zdump.c:331,1
    - Dst: _
      Src: /src/icu/source/tools/tzcode/zdump.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - stream
    - status
    argTypes:
    - FILE*
    - int
    constantsTouched: []
    func_position:
      end: 332
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 332
    functionName: usage
    functionSourceFile: /src/icu/source/tools/tzcode/zdump.c
    functionUses: []
    functionsReached:
    - fprintf
    - _
    - exit
    linkageType: ''
    returnType: void
    signature: 'static void usage(FILE * const stream, const int status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - tmp
    argTypes:
    - struct tm*
    constantsTouched: []
    func_position:
      end: 841
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 841
    functionName: abbr
    functionSourceFile: /src/icu/source/tools/tzcode/zdump.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'static char *abbr(struct tm *tmp) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/source/tools/tzcode/zdump.c:887,1
    - Dst: printf
      Src: /src/icu/source/tools/tzcode/zdump.c:921,1
    - Dst: printf
      Src: /src/icu/source/tools/tzcode/zdump.c:903,1
    - Dst: printf
      Src: /src/icu/source/tools/tzcode/zdump.c:920,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 1
    argNames:
    - timeptr
    argTypes:
    - struct tm*
    constantsTouched: []
    func_position:
      end: 922
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 922
    functionName: dumptime
    functionSourceFile: /src/icu/source/tools/tzcode/zdump.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void dumptime(register const struct tm *timeptr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dumptimeICU
      Src: /src/icu/source/tools/tzcode/zdump.c:973,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:976,1
    - Dst: dumptimeICU
      Src: /src/icu/source/tools/tzcode/zdump.c:975,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:974,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - fp
    - zone
    - t1
    - t2
    argTypes:
    - FILE*
    - char*
    - time_t
    - time_t
    constantsTouched: []
    func_position:
      end: 977
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 977
    functionName: showICU
    functionSourceFile: /src/icu/source/tools/tzcode/zdump.c
    functionUses: []
    functionsReached:
    - dumptimeICU
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void showICU(FILE * fp, char *zone, time_t t1, time_t t2) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getzones
      Src: /src/icu/source/tools/tzcode/zdump.c:1033,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 1
    argNames:
    - namelist
    argTypes:
    - struct listentry**
    constantsTouched: []
    func_position:
      end: 1039
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1039
    functionName: getall
    functionSourceFile: /src/icu/source/tools/tzcode/zdump.c
    functionUses: []
    functionsReached:
    - getzones
    linkageType: ''
    returnType: int
    signature: 'static int getall(struct listentry ** namelist) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zdump.c:1054,1
    - Dst: readdir
      Src: /src/icu/source/tools/tzcode/zdump.c:1075,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zdump.c:1079,1
    - Dst: strcpy
      Src: /src/icu/source/tools/tzcode/zdump.c:1083,1
    - Dst: malloc
      Src: /src/icu/source/tools/tzcode/zdump.c:1058,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/zdump.c:1058,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zdump.c:1059,1
    - Dst: strcat
      Src: /src/icu/source/tools/tzcode/zdump.c:1085,1
    - Dst: strcpy
      Src: /src/icu/source/tools/tzcode/zdump.c:1046,1
    - Dst: opendir
      Src: /src/icu/source/tools/tzcode/zdump.c:1052,1
    - Dst: strcat
      Src: /src/icu/source/tools/tzcode/zdump.c:1049,1
    - Dst: strstr
      Src: /src/icu/source/tools/tzcode/zdump.c:1054,1
    - Dst: strcat
      Src: /src/icu/source/tools/tzcode/zdump.c:1048,1
    - Dst: strcpy
      Src: /src/icu/source/tools/tzcode/zdump.c:1061,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zdump.c:1078,1
    - Dst: malloc
      Src: /src/icu/source/tools/tzcode/zdump.c:1063,1
    - Dst: strcpy
      Src: /src/icu/source/tools/tzcode/zdump.c:1087,1
    - Dst: getzones
      Src: /src/icu/source/tools/tzcode/zdump.c:1089,1
    - Dst: closedir
      Src: /src/icu/source/tools/tzcode/zdump.c:1091,1
    - Dst: exit
      Src: /src/icu/source/tools/tzcode/zdump.c:1064,1
    - Dst: strcat
      Src: /src/icu/source/tools/tzcode/zdump.c:1084,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 4
    argNames:
    - basedir
    - relpath
    - last
    - count
    argTypes:
    - char*
    - char*
    - struct listentry**
    - int*
    constantsTouched: []
    func_position:
      end: 1093
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1093
    functionName: getzones
    functionSourceFile: /src/icu/source/tools/tzcode/zdump.c
    functionUses: []
    functionsReached:
    - malloc
    - getzones
    - strcpy
    - strcmp
    - exit
    - readdir
    - opendir
    - strlen
    - strstr
    - strcat
    - closedir
    linkageType: ''
    returnType: void
    signature: 'static void getzones(char * basedir, char * relpath, struct listentry
      ** last, int * count) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: localtime
      Src: /src/icu/source/tools/tzcode/zdump.c:259,1
    - Dst: mktime
      Src: /src/icu/source/tools/tzcode/zdump.c:265,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:269,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:268,1
    - Dst: fflush
      Src: /src/icu/source/tools/tzcode/zdump.c:267,1
    - Dst: tformat
      Src: /src/icu/source/tools/tzcode/zdump.c:269,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:270,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:271,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:272,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:273,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:275,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:277,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:279,1
    - Dst: tformat
      Src: /src/icu/source/tools/tzcode/zdump.c:279,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:274,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:278,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:280,1
    - Dst: fprintf
      Src: /src/icu/source/tools/tzcode/zdump.c:276,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - tp
    argTypes:
    - time_t*
    constantsTouched: []
    func_position:
      end: 284
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 284
    functionName: my_localtime
    functionSourceFile: /src/icu/source/tools/tzcode/zdump.c
    functionUses: []
    functionsReached:
    - localtime
    - mktime
    - tformat
    - fflush
    - fprintf
    linkageType: ''
    returnType: struct tm*
    signature: 'static struct tm *my_localtime(time_t *tp) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/zdump.c:704,1
    - Dst: isleap
      Src: /src/icu/source/tools/tzcode/zdump.c:720,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 1
    argNames:
    - y
    argTypes:
    - intmax_t
    constantsTouched: []
    func_position:
      end: 729
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 729
    functionName: yeartot
    functionSourceFile: /src/icu/source/tools/tzcode/zdump.c
    functionUses: []
    functionsReached:
    - isleap
    linkageType: ''
    returnType: time_t
    signature: 'static time_t yeartot(const intmax_t y) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: my_localtime
      Src: /src/icu/source/tools/tzcode/zdump.c:741,1
    - Dst: abbr
      Src: /src/icu/source/tools/tzcode/zdump.c:744,1
    - Dst: delta
      Src: /src/icu/source/tools/tzcode/zdump.c:760,1
    - Dst: strncpy
      Src: /src/icu/source/tools/tzcode/zdump.c:744,1
    - Dst: my_localtime
      Src: /src/icu/source/tools/tzcode/zdump.c:756,1
    - Dst: strcmp
      Src: /src/icu/source/tools/tzcode/zdump.c:762,1
    - Dst: abbr
      Src: /src/icu/source/tools/tzcode/zdump.c:762,1
    - Dst: show
      Src: /src/icu/source/tools/tzcode/zdump.c:768,1
    - Dst: show
      Src: /src/icu/source/tools/tzcode/zdump.c:769,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 3
    argNames:
    - name
    - lot
    - hit
    argTypes:
    - char*
    - time_t
    - time_t
    constantsTouched: []
    func_position:
      end: 771
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 771
    functionName: hunt
    functionSourceFile: /src/icu/source/tools/tzcode/zdump.c
    functionUses: []
    functionsReached:
    - abbr
    - strcmp
    - strncpy
    - show
    - my_localtime
    - delta
    linkageType: ''
    returnType: time_t
    signature: 'static time_t hunt(char *name, time_t lot, time_t hit) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/tools/tzcode/scheck.c:22,1
    - Dst: is_digit
      Src: /src/icu/source/tools/tzcode/scheck.c:38,1
    - Dst: sscanf
      Src: /src/icu/source/tools/tzcode/scheck.c:59,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/scheck.c:22,1
    - Dst: is_digit
      Src: /src/icu/source/tools/tzcode/scheck.c:43,1
    - Dst: free
      Src: /src/icu/source/tools/tzcode/scheck.c:61,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 2
    argNames:
    - string
    - format
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 63
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 63
    functionName: scheck
    functionSourceFile: /src/icu/source/tools/tzcode/scheck.c
    functionUses: []
    functionsReached:
    - malloc
    - is_digit
    - free
    - strlen
    - sscanf
    linkageType: ''
    returnType: char*
    signature: 'const char *scheck(const char *const string, const char *const format) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/ialloc.c:15,1
    - Dst: realloc
      Src: /src/icu/source/tools/tzcode/ialloc.c:21,1
    - Dst: strcpy
      Src: /src/icu/source/tools/tzcode/ialloc.c:23,1
    - Dst: strlen
      Src: /src/icu/source/tools/tzcode/ialloc.c:20,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - old
    - new
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 25
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 25
    functionName: icatalloc
    functionSourceFile: /src/icu/source/tools/tzcode/ialloc.c
    functionUses: []
    functionsReached:
    - realloc
    - strlen
    - strcpy
    linkageType: ''
    returnType: char*
    signature: 'char *icatalloc(char *const old, const char *const new) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: icatalloc
      Src: /src/icu/source/tools/tzcode/ialloc.c:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: icpyalloc
    functionSourceFile: /src/icu/source/tools/tzcode/ialloc.c
    functionUses: []
    functionsReached:
    - icatalloc
    linkageType: ''
    returnType: char*
    signature: 'char *icpyalloc(const char *const string) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:100,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:107,1
    - Dst: u_getDataDirectory
      Src: /src/icu/source/tools/gensprep/gensprep.c:118,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:119,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:112,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:123,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 133
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 133
    functionName: printHelp
    functionSourceFile: /src/icu/source/tools/gensprep/gensprep.c
    functionUses: []
    functionsReached:
    - u_getDataDirectory
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'static int printHelp(int argc, char* argv[]) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strtoul
      Src: /src/icu/source/tools/gensprep/gensprep.c:290,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:292,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/gensprep.c:293,1
    - Dst: u_parseCodePoints
      Src: /src/icu/source/tools/gensprep/gensprep.c:299,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gensprep/gensprep.c:291,1
    - Dst: u_versionFromString
      Src: /src/icu/source/tools/gensprep/gensprep.c:303,1
    - Dst: u_versionFromString
      Src: /src/icu/source/tools/gensprep/gensprep.c:304,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gensprep/gensprep.c:308,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:309,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/gensprep/gensprep.c:310,1
    - Dst: storeMapping
      Src: /src/icu/source/tools/gensprep/gensprep.c:318,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/gensprep.c:311,1
    - Dst: setUnicodeVersionNC
      Src: /src/icu/source/tools/gensprep/gensprep.c:320,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - context
    - fields
    - fieldCount
    - pErrorCode
    argTypes:
    - void*
    - char*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 321
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 321
    functionName: normalizationCorrectionsLineFn
    functionSourceFile: /src/icu/source/tools/gensprep/gensprep.c
    functionUses: []
    functionsReached:
    - storeMapping
    - setUnicodeVersionNC
    - uprv_strtoul
    - U_FAILURE
    - u_versionFromString
    - u_errorName
    - exit
    - u_parseCodePoints
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV normalizationCorrectionsLineFn(void *context,
      char *fields[][2], int32_t fieldCount, UErrorCode *pErrorCode) '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printHelp
      Src: /src/icu/source/tools/gensprep/gensprep.c:184,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:196,1
    - Dst: setUnicodeVersion
      Src: /src/icu/source/tools/gensprep/gensprep.c:204,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/tools/gensprep/gensprep.c:241,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gensprep/gensprep.c:244,1
    - Dst: generateData
      Src: /src/icu/source/tools/gensprep/gensprep.c:260,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/tools/gensprep/gensprep.c:258,1
    - Dst: uprv_free
      Src: /src/icu/source/tools/gensprep/gensprep.c:265,1
    - Dst: u_setDataDirectory
      Src: /src/icu/source/tools/gensprep/gensprep.c:192,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/gensprep/gensprep.c:205,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/tools/gensprep/gensprep.c:211,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/tools/gensprep/gensprep.c:213,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/gensprep/gensprep.c:216,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/tools/gensprep/gensprep.c:225,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/gensprep/gensprep.c:235,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:245,1
    - Dst: setOptions
      Src: /src/icu/source/tools/gensprep/gensprep.c:255,1
    - Dst: cleanUpData
      Src: /src/icu/source/tools/gensprep/gensprep.c:262,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:161,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/tools/gensprep/gensprep.c:157,1
    - Dst: printHelp
      Src: /src/icu/source/tools/gensprep/gensprep.c:189,1
    - Dst: generateData
      Src: /src/icu/source/tools/gensprep/gensprep.c:200,1
    - Dst: uprv_malloc
      Src: /src/icu/source/tools/gensprep/gensprep.c:205,1
    - Dst: uprv_strchr
      Src: /src/icu/source/tools/gensprep/gensprep.c:208,1
    - Dst: parseMappings
      Src: /src/icu/source/tools/gensprep/gensprep.c:226,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:228,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/gensprep/gensprep.c:228,1
    - Dst: uprv_strcpy
      Src: /src/icu/source/tools/gensprep/gensprep.c:234,1
    - Dst: u_cleanup
      Src: /src/icu/source/tools/gensprep/gensprep.c:267,1
    - Dst: U_MAIN_INIT_ARGS
      Src: /src/icu/source/tools/gensprep/gensprep.c:148,1
    - Dst: u_parseArgs
      Src: /src/icu/source/tools/gensprep/gensprep.c:157,1
    - Dst: u_getDataDirectory
      Src: /src/icu/source/tools/gensprep/gensprep.c:151,1
    - Dst: printHelp
      Src: /src/icu/source/tools/gensprep/gensprep.c:166,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/gensprep/gensprep.c:205,1
    - Dst: uprv_strchr
      Src: /src/icu/source/tools/gensprep/gensprep.c:208,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/gensprep/gensprep.c:205,1
    - Dst: init
      Src: /src/icu/source/tools/gensprep/gensprep.c:222,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gensprep/gensprep.c:227,1
    - Dst: parseNormalizationCorrections
      Src: /src/icu/source/tools/gensprep/gensprep.c:243,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 107
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 272
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 272
    functionName: main
    functionSourceFile: /src/icu/source/tools/gensprep/gensprep.c
    functionUses: []
    functionsReached:
    - setUnicodeVersion
    - U_MAIN_INIT_ARGS
    - parseMappings
    - uprv_free
    - parseNormalizationCorrections
    - U_SUCCESS
    - printHelp
    - u_errorName
    - uprv_malloc
    - u_parseArgs
    - u_setDataDirectory
    - uprv_strlen
    - U_FAILURE
    - cleanUpData
    - init
    - UPRV_LENGTHOF
    - uprv_strcpy
    - generateData
    - u_cleanup
    - uprv_strchr
    - u_getDataDirectory
    - setOptions
    - fprintf
    linkageType: ''
    returnType: int
    signature: 'extern int main(int argc, char* argv[]) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strncmp
      Src: /src/icu/source/tools/gensprep/gensprep.c:362,1
    - Dst: u_parseCodePointRange
      Src: /src/icu/source/tools/gensprep/gensprep.c:381,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gensprep/gensprep.c:382,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:383,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/gensprep/gensprep.c:383,1
    - Dst: storeRange
      Src: /src/icu/source/tools/gensprep/gensprep.c:388,1
    - Dst: storeRange
      Src: /src/icu/source/tools/gensprep/gensprep.c:399,1
    - Dst: u_skipWhitespace
      Src: /src/icu/source/tools/gensprep/gensprep.c:356,1
    - Dst: uprv_strstr
      Src: /src/icu/source/tools/gensprep/gensprep.c:390,1
    - Dst: uprv_strstr
      Src: /src/icu/source/tools/gensprep/gensprep.c:401,1
    - Dst: uprv_strtoul
      Src: /src/icu/source/tools/gensprep/gensprep.c:404,1
    - Dst: storeMapping
      Src: /src/icu/source/tools/gensprep/gensprep.c:415,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/gensprep/gensprep.c:423,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/gensprep.c:424,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:372,1
    - Dst: uprv_strncmp
      Src: /src/icu/source/tools/gensprep/gensprep.c:367,1
    - Dst: u_parseCodePointRange
      Src: /src/icu/source/tools/gensprep/gensprep.c:392,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:394,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/gensprep/gensprep.c:394,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gensprep/gensprep.c:393,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gensprep/gensprep.c:421,1
    - Dst: uprv_strstr
      Src: /src/icu/source/tools/gensprep/gensprep.c:379,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:406,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/gensprep.c:408,1
    - Dst: u_parseCodePoints
      Src: /src/icu/source/tools/gensprep/gensprep.c:412,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:422,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 64
    argCount: 4
    argNames:
    - context
    - fields
    - fieldCount
    - pErrorCode
    argTypes:
    - void*
    - char*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 427
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 427
    functionName: strprepProfileLineFn
    functionSourceFile: /src/icu/source/tools/gensprep/gensprep.c
    functionUses: []
    functionsReached:
    - storeMapping
    - storeRange
    - uprv_strtoul
    - U_FAILURE
    - uprv_strstr
    - u_errorName
    - exit
    - uprv_strncmp
    - u_parseCodePoints
    - u_skipWhitespace
    - u_parseCodePointRange
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV strprepProfileLineFn(void *context, char *fields[][2],
      int32_t fieldCount, UErrorCode *pErrorCode) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gensprep/gensprep.c:327,1
    - Dst: u_parseDelimitedFile
      Src: /src/icu/source/tools/gensprep/gensprep.c:331,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:336,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gensprep/gensprep.c:335,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/gensprep/gensprep.c:336,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/gensprep.c:337,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - filename
    - pErrorCode
    argTypes:
    - char*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 339
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 339
    functionName: parseNormalizationCorrections
    functionSourceFile: /src/icu/source/tools/gensprep/gensprep.c
    functionUses: []
    functionsReached:
    - u_parseDelimitedFile
    - U_FAILURE
    - u_errorName
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void parseNormalizationCorrections(const char *filename, UErrorCode
      *pErrorCode) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gensprep/gensprep.c:433,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/gensprep.c:442,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/gensprep/gensprep.c:442,1
    - Dst: u_parseDelimitedFile
      Src: /src/icu/source/tools/gensprep/gensprep.c:437,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gensprep/gensprep.c:441,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/gensprep.c:443,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 3
    argNames:
    - filename
    - reportError
    - pErrorCode
    argTypes:
    - char*
    - UBool
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 445
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 445
    functionName: parseMappings
    functionSourceFile: /src/icu/source/tools/gensprep/gensprep.c
    functionUses: []
    functionsReached:
    - u_parseDelimitedFile
    - U_FAILURE
    - u_errorName
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void parseMappings(const char *filename, UBool reportError,
      UErrorCode *pErrorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_versionFromString
      Src: /src/icu/source/tools/gensprep/store.c:177,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/tools/gensprep/store.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: setUnicodeVersion
    functionSourceFile: /src/icu/source/tools/gensprep/store.c
    functionUses: []
    functionsReached:
    - uprv_memcpy
    - u_versionFromString
    linkageType: ''
    returnType: void
    signature: 'void setUnicodeVersion(const char *v) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_free
      Src: /src/icu/source/tools/gensprep/store.c:222,1
    - Dst: uprv_free
      Src: /src/icu/source/tools/gensprep/store.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: valueDeleter
    functionSourceFile: /src/icu/source/tools/gensprep/store.c
    functionUses: []
    functionsReached:
    - uprv_free
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV valueDeleter(void* obj) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uprv_calloc
      Src: /src/icu/source/tools/gensprep/store.c:201,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:206,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:205,1
    - Dst: utrie_open
      Src: /src/icu/source/tools/gensprep/store.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 208
    functionName: init
    functionSourceFile: /src/icu/source/tools/gensprep/store.c
    functionUses: []
    functionsReached:
    - exit
    - fprintf
    - uprv_calloc
    - utrie_open
    linkageType: ''
    returnType: void
    signature: 'extern void init() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - UHashTok
    - UHashTok
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: compareEntries
    functionSourceFile: /src/icu/source/tools/gensprep/store.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool U_CALLCONV compareEntries(const UHashTok p1, const UHashTok
      p2) '
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: uhash_count
      Src: /src/icu/source/tools/gensprep/store.c:254,1
    - Dst: uhash_nextElement
      Src: /src/icu/source/tools/gensprep/store.c:261,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:288,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:289,1
    - Dst: uprv_calloc
      Src: /src/icu/source/tools/gensprep/store.c:257,1
    - Dst: utrie_get32
      Src: /src/icu/source/tools/gensprep/store.c:292,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:302,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:303,1
    - Dst: utrie_set32
      Src: /src/icu/source/tools/gensprep/store.c:308,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:309,1
    - Dst: u_memmove
      Src: /src/icu/source/tools/gensprep/store.c:330,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:318,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:334,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:320,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:335,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:310,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 349
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 349
    functionName: storeMappingData
    functionSourceFile: /src/icu/source/tools/gensprep/store.c
    functionUses: []
    functionsReached:
    - uhash_nextElement
    - uprv_calloc
    - exit
    - uhash_count
    - utrie_get32
    - u_memmove
    - fprintf
    - utrie_set32
    linkageType: ''
    returnType: void
    signature: 'static void storeMappingData() '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: uhash_open
      Src: /src/icu/source/tools/gensprep/store.c:367,1
    - Dst: utrie_get32
      Src: /src/icu/source/tools/gensprep/store.c:372,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:383,1
    - Dst: U16_LENGTH
      Src: /src/icu/source/tools/gensprep/store.c:389,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:398,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:419,1
    - Dst: uprv_calloc
      Src: /src/icu/source/tools/gensprep/store.c:439,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:427,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:382,1
    - Dst: uhash_setValueDeleter
      Src: /src/icu/source/tools/gensprep/store.c:368,1
    - Dst: uprv_malloc
      Src: /src/icu/source/tools/gensprep/store.c:445,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:426,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:420,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:460,1
    - Dst: utrie_set32
      Src: /src/icu/source/tools/gensprep/store.c:397,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/tools/gensprep/store.c:442,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:405,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:399,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:404,1
    - Dst: utrie_set32
      Src: /src/icu/source/tools/gensprep/store.c:425,1
    - Dst: uhash_iput
      Src: /src/icu/source/tools/gensprep/store.c:455,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gensprep/store.c:458,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:459,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/gensprep/store.c:459,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 82
    argCount: 5
    argNames:
    - codepoint
    - mapping
    - length
    - type
    - status
    argTypes:
    - uint32_t
    - uint32_t*
    - int32_t
    - UStringPrepType
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 462
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 462
    functionName: storeMapping
    functionSourceFile: /src/icu/source/tools/gensprep/store.c
    functionUses: []
    functionsReached:
    - uprv_malloc
    - uhash_setValueDeleter
    - uhash_iput
    - U_FAILURE
    - uhash_open
    - utrie_get32
    - uprv_calloc
    - exit
    - U16_LENGTH
    - u_errorName
    - U16_APPEND_UNSAFE
    - fprintf
    - utrie_set32
    linkageType: ''
    returnType: void
    signature: 'extern void storeMapping(uint32_t codepoint, uint32_t* mapping,int32_t
      length, UStringPrepType type, UErrorCode* status) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utrie_get32
      Src: /src/icu/source/tools/gensprep/store.c:534,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - trie
    - start
    - offset
    argTypes:
    - UNewTrie*
    - UChar32
    - int32_t
    constantsTouched: []
    func_position:
      end: 545
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 545
    functionName: getFoldedValue
    functionSourceFile: /src/icu/source/tools/gensprep/store.c
    functionUses: []
    functionsReached:
    - utrie_get32
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t U_CALLCONV getFoldedValue(UNewTrie *trie, UChar32
      start, int32_t offset) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: storeMappingData
      Src: /src/icu/source/tools/gensprep/store.c:567,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:592,1
    - Dst: printf
      Src: /src/icu/source/tools/gensprep/store.c:580,1
    - Dst: utrie_serialize
      Src: /src/icu/source/tools/gensprep/store.c:569,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gensprep/store.c:570,1
    - Dst: printf
      Src: /src/icu/source/tools/gensprep/store.c:577,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/gensprep/store.c:603,1
    - Dst: udata_finish
      Src: /src/icu/source/tools/gensprep/store.c:609,1
    - Dst: uprv_malloc
      Src: /src/icu/source/tools/gensprep/store.c:556,1
    - Dst: uprv_strlen
      Src: /src/icu/source/tools/gensprep/store.c:556,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:572,1
    - Dst: printf
      Src: /src/icu/source/tools/gensprep/store.c:581,1
    - Dst: udata_create
      Src: /src/icu/source/tools/gensprep/store.c:589,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/gensprep/store.c:601,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gensprep/store.c:610,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:612,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:616,1
    - Dst: uhash_close
      Src: /src/icu/source/tools/gensprep/store.c:624,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:571,1
    - Dst: u_errorName
      Src: /src/icu/source/tools/gensprep/store.c:571,1
    - Dst: printf
      Src: /src/icu/source/tools/gensprep/store.c:578,1
    - Dst: printf
      Src: /src/icu/source/tools/gensprep/store.c:579,1
    - Dst: uprv_strcat
      Src: /src/icu/source/tools/gensprep/store.c:587,1
    - Dst: U_FAILURE
      Src: /src/icu/source/tools/gensprep/store.c:591,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:593,1
    - Dst: udata_writeBlock
      Src: /src/icu/source/tools/gensprep/store.c:602,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:611,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:618,1
    - Dst: uprv_free
      Src: /src/icu/source/tools/gensprep/store.c:628,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 2
    argNames:
    - dataDir
    - bundleName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 629
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 629
    functionName: generateData
    functionSourceFile: /src/icu/source/tools/gensprep/store.c
    functionUses: []
    functionsReached:
    - uprv_malloc
    - udata_writeBlock
    - uhash_close
    - uprv_strcat
    - U_FAILURE
    - uprv_strlen
    - udata_create
    - uprv_free
    - u_errorName
    - exit
    - printf
    - storeMappingData
    - fprintf
    - utrie_serialize
    - udata_finish
    linkageType: ''
    returnType: void
    signature: 'extern void generateData(const char *dataDir, const char* bundleName) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - version
    argTypes:
    - UVersionInfo
    constantsTouched: []
    func_position:
      end: 188
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 188
    functionName: setUnicodeVersionNC
    functionSourceFile: /src/icu/source/tools/gensprep/store.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setUnicodeVersionNC(UVersionInfo version) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - options
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: setOptions
    functionSourceFile: /src/icu/source/tools/gensprep/store.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'extern void setOptions(int32_t options) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:471,1
    - Dst: utrie_get32
      Src: /src/icu/source/tools/gensprep/store.c:476,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:496,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:472,1
    - Dst: utrie_set32
      Src: /src/icu/source/tools/gensprep/store.c:495,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:497,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:502,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:503,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:507,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:508,1
    - Dst: utrie_setRange32
      Src: /src/icu/source/tools/gensprep/store.c:517,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:518,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:519,1
    - Dst: fprintf
      Src: /src/icu/source/tools/gensprep/store.c:513,1
    - Dst: utrie_set32
      Src: /src/icu/source/tools/gensprep/store.c:512,1
    - Dst: exit
      Src: /src/icu/source/tools/gensprep/store.c:514,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 4
    argNames:
    - start
    - end
    - type
    - status
    argTypes:
    - uint32_t
    - uint32_t
    - UStringPrepType
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 523
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 523
    functionName: storeRange
    functionSourceFile: /src/icu/source/tools/gensprep/store.c
    functionUses: []
    functionsReached:
    - utrie_get32
    - exit
    - utrie_setRange32
    - fprintf
    - utrie_set32
    linkageType: ''
    returnType: void
    signature: 'extern void storeRange(uint32_t start, uint32_t end, UStringPrepType
      type, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - parm
    argTypes:
    - UHashTok
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: hashEntry
    functionSourceFile: /src/icu/source/tools/gensprep/store.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t U_CALLCONV hashEntry(const UHashTok parm) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_free
      Src: /src/icu/source/tools/gensprep/store.c:635,1
    - Dst: uprv_free
      Src: /src/icu/source/tools/gensprep/store.c:637,1
    - Dst: utrie_close
      Src: /src/icu/source/tools/gensprep/store.c:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 638
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 638
    functionName: cleanUpData
    functionSourceFile: /src/icu/source/tools/gensprep/store.c
    functionUses: []
    functionsReached:
    - uprv_free
    - utrie_close
    linkageType: ''
    returnType: void
    signature: 'extern void cleanUpData(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TransliterationRuleSet
      Src: /src/icu/source/i18n/rbt_set.h:71,1
    - Dst: addRule
      Src: /src/icu/source/i18n/rbt_set.h:105,1
    - Dst: toRules
      Src: /src/icu/source/i18n/rbt_set.h:147,1
    - Dst: getSourceTargetSet
      Src: /src/icu/source/i18n/rbt_set.h:154,1
    - Dst: freeze
      Src: /src/icu/source/i18n/rbt_set.h:121,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 160
    functionName: TransliterationRuleSet
    functionSourceFile: /src/icu/source/i18n/rbt_set.h
    functionUses: []
    functionsReached:
    - TransliterationRuleSet
    - addRule
    - getSourceTargetSet
    - freeze
    - toRules
    linkageType: ''
    returnType: class
    signature: 'class TransliterationRuleSet : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TransliterationRuleData
      Src: /src/icu/source/i18n/rbt_data.h:106,1
    - Dst: TransliterationRuleData
      Src: /src/icu/source/i18n/rbt_data.h:116,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 147
    functionName: TransliterationRuleData
    functionSourceFile: /src/icu/source/i18n/rbt_data.h
    functionUses: []
    functionsReached:
    - TransliterationRuleData
    linkageType: ''
    returnType: class
    signature: 'class TransliterationRuleData : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IgnorablesMatcher
      Src: /src/icu/source/i18n/numparse_symbols.h:50,1
    - Dst: MinusSignMatcher
      Src: /src/icu/source/i18n/numparse_symbols.h:81,1
    - Dst: PaddingMatcher
      Src: /src/icu/source/i18n/numparse_symbols.h:110,1
    - Dst: NanMatcher
      Src: /src/icu/source/i18n/numparse_symbols.h:97,1
    - Dst: PlusSignMatcher
      Src: /src/icu/source/i18n/numparse_symbols.h:153,1
    - Dst: PercentMatcher
      Src: /src/icu/source/i18n/numparse_symbols.h:126,1
    - Dst: PermilleMatcher
      Src: /src/icu/source/i18n/numparse_symbols.h:139,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 168
    functionName: toString
    functionSourceFile: /src/icu/source/i18n/numparse_symbols.h
    functionUses: []
    functionsReached:
    - MinusSignMatcher
    - PlusSignMatcher
    - IgnorablesMatcher
    - PaddingMatcher
    - PermilleMatcher
    - NanMatcher
    - PercentMatcher
    linkageType: ''
    returnType: UnicodeString
    signature: 'UnicodeString toString() const override; virtual bool isDisabled(const
      ParsedNumber& result) const = 0; virtual void accept(StringSegment& segment,
      ParsedNumber& result) const = 0; protected: UnicodeString fString; const UnicodeSet*
      fUniSet; // a reference from numparse_unisets.h; never owned SymbolMatcher(const
      UnicodeString& symbolString, unisets::Key key);};// Exported as U_I18N_API for
      testsclass U_I18N_API IgnorablesMatcher : public SymbolMatcher '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NanMatcher
      Src: /src/icu/source/i18n/numparse_symbols.h:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: SymbolMatcher
    functionSourceFile: /src/icu/source/i18n/numparse_symbols.h
    functionUses: []
    functionsReached:
    - NanMatcher
    linkageType: ''
    returnType: class
    signature: 'class NanMatcher : public SymbolMatcher '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PercentMatcher
      Src: /src/icu/source/i18n/numparse_symbols.h:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 134
    functionName: isFlexible
    functionSourceFile: /src/icu/source/i18n/numparse_symbols.h
    functionUses: []
    functionsReached:
    - PercentMatcher
    linkageType: ''
    returnType: bool
    signature: 'bool isFlexible() const override; protected: bool isDisabled(const
      ParsedNumber& result) const override; void accept(StringSegment& segment, ParsedNumber&
      result) const override;};// Exported as U_I18N_API for testsclass U_I18N_API
      PercentMatcher : public SymbolMatcher '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MinusSignMatcher
      Src: /src/icu/source/i18n/numparse_symbols.h:81,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 92
    functionName: isFlexible
    functionSourceFile: /src/icu/source/i18n/numparse_symbols.h
    functionUses: []
    functionsReached:
    - MinusSignMatcher
    linkageType: ''
    returnType: bool
    signature: 'bool isFlexible() const override; UnicodeString toString() const override;
      protected: bool isDisabled(const ParsedNumber& result) const override; void
      accept(StringSegment& segment, ParsedNumber& result) const override;};class
      InfinityMatcher : public SymbolMatcher { public: InfinityMatcher() = default;
      // WARNING: Leaves the object in an unusable state InfinityMatcher(const DecimalFormatSymbols&
      dfs); protected: bool isDisabled(const ParsedNumber& result) const override;
      void accept(StringSegment& segment, ParsedNumber& result) const override;};//
      Exported as U_I18N_API for testsclass U_I18N_API MinusSignMatcher : public SymbolMatcher '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PaddingMatcher
      Src: /src/icu/source/i18n/numparse_symbols.h:110,1
    - Dst: PlusSignMatcher
      Src: /src/icu/source/i18n/numparse_symbols.h:153,1
    - Dst: PermilleMatcher
      Src: /src/icu/source/i18n/numparse_symbols.h:139,1
    - Dst: PercentMatcher
      Src: /src/icu/source/i18n/numparse_symbols.h:126,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 167
    functionName: PaddingMatcher
    functionSourceFile: /src/icu/source/i18n/numparse_symbols.h
    functionUses: []
    functionsReached:
    - PlusSignMatcher
    - PaddingMatcher
    - PermilleMatcher
    - PercentMatcher
    linkageType: ''
    returnType: class
    signature: 'class PaddingMatcher : public SymbolMatcher '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 82
    functionName: TransliteratorIDParser
    functionSourceFile: /src/icu/source/i18n/tridpars.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class TransliteratorIDParser /* not : public UObject because all methods
      are static */ '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 113
    functionName: SingleID
    functionSourceFile: /src/icu/source/i18n/tridpars.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class SingleID : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UFormattedNumberData
      Src: /src/icu/source/i18n/number_utypes.h:35,1
    - Dst: FormattedValueStringBuilderImpl
      Src: /src/icu/source/i18n/number_utypes.h:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 43
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/number_utypes.h
    functionUses: []
    functionsReached:
    - UFormattedNumberData
    - FormattedValueStringBuilderImpl
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace number '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UFormattedNumberData
      Src: /src/icu/source/i18n/number_utypes.h:35,1
    - Dst: FormattedValueStringBuilderImpl
      Src: /src/icu/source/i18n/number_utypes.h:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 42
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/number_utypes.h
    functionUses: []
    functionsReached:
    - UFormattedNumberData
    - FormattedValueStringBuilderImpl
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UFormattedNumberData
      Src: /src/icu/source/i18n/number_utypes.h:35,1
    - Dst: FormattedValueStringBuilderImpl
      Src: /src/icu/source/i18n/number_utypes.h:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: FormattedValueStringBuilderImpl
    functionSourceFile: /src/icu/source/i18n/number_utypes.h
    functionUses: []
    functionsReached:
    - UFormattedNumberData
    - FormattedValueStringBuilderImpl
    linkageType: ''
    returnType: class
    signature: 'class UFormattedNumberData : public FormattedValueStringBuilderImpl '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: getNumberOfEras
    functionSourceFile: /src/icu/source/i18n/erarules.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t getNumberOfEras() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: getCurrentEraIndex
    functionSourceFile: /src/icu/source/i18n/erarules.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t getCurrentEraIndex() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 95
    functionName: double_conversion
    functionSourceFile: /src/icu/source/i18n/double-conversion-bignum-dtoa.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace double_conversion '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: getTable
    functionSourceFile: /src/icu/source/i18n/collationfastlatinbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint16_t*
    signature: 'const uint16_t *getTable() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ce
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: isContractionCharCE
    functionSourceFile: /src/icu/source/i18n/collationfastlatinbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool isContractionCharCE(int64_t ce) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: lengthOfTable
    functionSourceFile: /src/icu/source/i18n/collationfastlatinbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t lengthOfTable() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SPUStringPool
      Src: /src/icu/source/i18n/uspoof_conf.h:60,1
    - Dst: SPUStringPool
      Src: /src/icu/source/i18n/uspoof_conf.h:61,1
    - Dst: addString
      Src: /src/icu/source/i18n/uspoof_conf.h:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 80
    functionName: SPUStringPool
    functionSourceFile: /src/icu/source/i18n/uspoof_conf.h
    functionUses: []
    functionsReached:
    - addString
    - SPUStringPool
    linkageType: ''
    returnType: class
    signature: 'class SPUStringPool : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConfusabledataBuilder
      Src: /src/icu/source/i18n/uspoof_conf.h:106,1
    - Dst: ConfusabledataBuilder
      Src: /src/icu/source/i18n/uspoof_conf.h:107,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 128
    functionName: ConfusabledataBuilder
    functionSourceFile: /src/icu/source/i18n/uspoof_conf.h
    functionUses: []
    functionsReached:
    - ConfusabledataBuilder
    linkageType: ''
    returnType: class
    signature: 'class ConfusabledataBuilder : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UCollationPCE
      Src: /src/icu/source/i18n/usrchimp.h:88,1
    - Dst: UCollationPCE
      Src: /src/icu/source/i18n/usrchimp.h:90,1
    - Dst: UCollationPCE
      Src: /src/icu/source/i18n/usrchimp.h:89,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 124
    functionName: UCollationPCE
    functionSourceFile: /src/icu/source/i18n/usrchimp.h
    functionUses: []
    functionsReached:
    - UCollationPCE
    linkageType: ''
    returnType: class
    signature: 'class UCollationPCE : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 58
    functionName: ParsedSubpatternInfo
    functionSourceFile: /src/icu/source/i18n/number_patternstring.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct U_I18N_API
    signature: 'struct U_I18N_API ParsedSubpatternInfo '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pattern
      Src: /src/icu/source/i18n/number_patternstring.h:100,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 116
    functionName: positiveHasPlusSign
    functionSourceFile: /src/icu/source/i18n/number_patternstring.h
    functionUses: []
    functionsReached:
    - pattern
    linkageType: ''
    returnType: bool
    signature: 'bool positiveHasPlusSign() const U_OVERRIDE; bool hasNegativeSubpattern()
      const U_OVERRIDE; bool negativeHasMinusSign() const U_OVERRIDE; bool hasCurrencySign()
      const U_OVERRIDE; bool containsSymbolType(AffixPatternType type, UErrorCode&
      status) const U_OVERRIDE; bool hasBody() const U_OVERRIDE; private: struct U_I18N_API
      ParserState '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pattern
      Src: /src/icu/source/i18n/number_patternstring.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - _pattern
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: ParserState
    functionSourceFile: /src/icu/source/i18n/number_patternstring.h
    functionUses: []
    functionsReached:
    - pattern
    linkageType: ''
    returnType: explicit
    signature: 'explicit ParserState(const UnicodeString& _pattern) : pattern(_pattern) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsedPatternInfo
      Src: /src/icu/source/i18n/number_patternstring.h:66,1
    - Dst: state
      Src: /src/icu/source/i18n/number_patternstring.h:67,1
    - Dst: currentSubpattern
      Src: /src/icu/source/i18n/number_patternstring.h:67,1
    - Dst: ParsedPatternInfo
      Src: /src/icu/source/i18n/number_patternstring.h:69,1
    - Dst: pattern
      Src: /src/icu/source/i18n/number_patternstring.h:100,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 308
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 308
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/number_patternstring.h
    functionUses: []
    functionsReached:
    - state
    - currentSubpattern
    - pattern
    - ParsedPatternInfo
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace number '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - message
    argTypes:
    - char16_t*
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: toParseException
    functionSourceFile: /src/icu/source/i18n/number_patternstring.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void toParseException(const char16_t* message) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 220
    functionName: PatternParser
    functionSourceFile: /src/icu/source/i18n/number_patternstring.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API PatternParser '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 305
    functionName: PatternStringUtils
    functionSourceFile: /src/icu/source/i18n/number_patternstring.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API PatternStringUtils '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: Endpoints
    functionSourceFile: /src/icu/source/i18n/number_patternstring.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct U_I18N_API
    signature: 'struct U_I18N_API Endpoints '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsedPatternInfo
      Src: /src/icu/source/i18n/number_patternstring.h:66,1
    - Dst: state
      Src: /src/icu/source/i18n/number_patternstring.h:67,1
    - Dst: currentSubpattern
      Src: /src/icu/source/i18n/number_patternstring.h:67,1
    - Dst: ParsedPatternInfo
      Src: /src/icu/source/i18n/number_patternstring.h:69,1
    - Dst: pattern
      Src: /src/icu/source/i18n/number_patternstring.h:100,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 307
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 307
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/number_patternstring.h
    functionUses: []
    functionsReached:
    - state
    - currentSubpattern
    - pattern
    - ParsedPatternInfo
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CollationWeights
      Src: /src/icu/source/i18n/collationweights.h:35,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 107
    functionName: CollationWeights
    functionSourceFile: /src/icu/source/i18n/collationweights.h
    functionUses: []
    functionsReached:
    - CollationWeights
    linkageType: ''
    returnType: U_I18N_API
    signature: 'U_I18N_API CollationWeights : public UMemory '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - weight
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: lengthOfWeight
    functionSourceFile: /src/icu/source/i18n/collationweights.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t lengthOfWeight(uint32_t weight) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: emptyStrongModifier
    functionSourceFile: /src/icu/source/i18n/number_microprops.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: EmptyModifier
    signature: 'EmptyModifier emptyStrongModifier '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MicroProps
      Src: /src/icu/source/i18n/number_microprops.h:52,1
    - Dst: U_ASSERT
      Src: /src/icu/source/i18n/number_microprops.h:62,1
    - Dst: U_ASSERT
      Src: /src/icu/source/i18n/number_microprops.h:64,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 74
    functionName: MicroPropsGenerator
    functionSourceFile: /src/icu/source/i18n/number_microprops.h
    functionUses: []
    functionsReached:
    - U_ASSERT
    - MicroProps
    linkageType: ''
    returnType: struct MicroProps
    signature: 'struct MicroProps : public MicroPropsGenerator '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MicroProps
      Src: /src/icu/source/i18n/number_microprops.h:52,1
    - Dst: U_ASSERT
      Src: /src/icu/source/i18n/number_microprops.h:62,1
    - Dst: U_ASSERT
      Src: /src/icu/source/i18n/number_microprops.h:64,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 77
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/number_microprops.h
    functionUses: []
    functionsReached:
    - U_ASSERT
    - MicroProps
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace number '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MicroProps
      Src: /src/icu/source/i18n/number_microprops.h:52,1
    - Dst: U_ASSERT
      Src: /src/icu/source/i18n/number_microprops.h:62,1
    - Dst: U_ASSERT
      Src: /src/icu/source/i18n/number_microprops.h:64,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 76
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/number_microprops.h
    functionUses: []
    functionsReached:
    - U_ASSERT
    - MicroProps
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_ASSERT
      Src: /src/icu/source/i18n/number_microprops.h:62,1
    - Dst: U_ASSERT
      Src: /src/icu/source/i18n/number_microprops.h:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - micros
    - status
    argTypes:
    - DecimalQuantity
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: processQuantity
    functionSourceFile: /src/icu/source/i18n/number_microprops.h
    functionUses: []
    functionsReached:
    - U_ASSERT
    linkageType: ''
    returnType: void
    signature: 'void processQuantity(DecimalQuantity&, MicroProps& micros, UErrorCode&
      status) const U_OVERRIDE '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: makeIntoFractionRuleSet
    functionSourceFile: /src/icu/source/i18n/nfrs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void makeIntoFractionRuleSet() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: isPublic
    functionSourceFile: /src/icu/source/i18n/nfrs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isPublic() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: isParseable
    functionSourceFile: /src/icu/source/i18n/nfrs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isParseable() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: isFractionRuleSet
    functionSourceFile: /src/icu/source/i18n/nfrs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isFractionRuleSet() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - _name
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: isNamed
    functionSourceFile: /src/icu/source/i18n/nfrs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isNamed(const UnicodeString& _name) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: getOwner
    functionSourceFile: /src/icu/source/i18n/nfrs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: RuleBasedNumberFormat*
    signature: 'const RuleBasedNumberFormat *getOwner() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: rhs
    functionSourceFile: /src/icu/source/i18n/nfrs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool operator!=(const NFRuleSet& rhs ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: getName
    functionSourceFile: /src/icu/source/i18n/nfrs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void getName(UnicodeString& result) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UFormattedNumberRangeData
      Src: /src/icu/source/i18n/numrange_impl.h:33,1
    - Dst: FormattedValueStringBuilderImpl
      Src: /src/icu/source/i18n/numrange_impl.h:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: FormattedValueStringBuilderImpl
    functionSourceFile: /src/icu/source/i18n/numrange_impl.h
    functionUses: []
    functionsReached:
    - UFormattedNumberRangeData
    - FormattedValueStringBuilderImpl
    linkageType: ''
    returnType: class
    signature: 'class UFormattedNumberRangeData : public FormattedValueStringBuilderImpl '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UFormattedNumberRangeData
      Src: /src/icu/source/i18n/numrange_impl.h:33,1
    - Dst: FormattedValueStringBuilderImpl
      Src: /src/icu/source/i18n/numrange_impl.h:33,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 108
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/numrange_impl.h
    functionUses: []
    functionsReached:
    - UFormattedNumberRangeData
    - FormattedValueStringBuilderImpl
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace number '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 69
    functionName: StandardPluralRanges
    functionSourceFile: /src/icu/source/i18n/numrange_impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class StandardPluralRanges : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 104
    functionName: NumberRangeFormatterImpl
    functionSourceFile: /src/icu/source/i18n/numrange_impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class NumberRangeFormatterImpl : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UFormattedNumberRangeData
      Src: /src/icu/source/i18n/numrange_impl.h:33,1
    - Dst: FormattedValueStringBuilderImpl
      Src: /src/icu/source/i18n/numrange_impl.h:33,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 107
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/numrange_impl.h
    functionUses: []
    functionsReached:
    - UFormattedNumberRangeData
    - FormattedValueStringBuilderImpl
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 63
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/number_longnames.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace number '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 61
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/number_longnames.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 1
    argNames:
    - roundingMode
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: roundsAtMidpoint
    functionSourceFile: /src/icu/source/i18n/number_roundingutils.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'inline bool roundsAtMidpoint(int roundingMode) '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: RoundingImpl
      Src: /src/icu/source/i18n/number_roundingutils.h:152,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 193
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/number_roundingutils.h
    functionUses: []
    functionsReached:
    - RoundingImpl
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace number '
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: RoundingImpl
      Src: /src/icu/source/i18n/number_roundingutils.h:152,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 192
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/number_roundingutils.h
    functionUses: []
    functionsReached:
    - RoundingImpl
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RoundingImpl
      Src: /src/icu/source/i18n/number_roundingutils.h:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 189
    functionName: RoundingImpl
    functionSourceFile: /src/icu/source/i18n/number_roundingutils.h
    functionUses: []
    functionsReached:
    - RoundingImpl
    linkageType: ''
    returnType: class
    signature: 'class RoundingImpl '
  - BBCount: 26
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 142
    functionName: roundingutils
    functionSourceFile: /src/icu/source/i18n/number_roundingutils.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace roundingutils '
  - BBCount: 21
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 7
    argCount: 5
    argNames:
    - isEven
    - isNegative
    - section
    - roundingMode
    - status
    argTypes:
    - bool
    - bool
    - Section
    - RoundingMode
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 108
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 108
    functionName: getRoundingDirection
    functionSourceFile: /src/icu/source/i18n/number_roundingutils.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'inline bool getRoundingDirection(bool isEven, bool isNegative, Section
      section, RoundingMode roundingMode, UErrorCode &status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleModifier
      Src: /src/icu/source/i18n/number_modifiers.h:64,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 129
    functionName: getPrefixLength
    functionSourceFile: /src/icu/source/i18n/number_modifiers.h
    functionUses: []
    functionsReached:
    - SimpleModifier
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getPrefixLength() const U_OVERRIDE; int32_t getCodePointCount()
      const U_OVERRIDE; bool isStrong() const U_OVERRIDE; bool containsField(UNumberFormatFields
      field) const U_OVERRIDE; void getParameters(Parameters& output) const U_OVERRIDE;
      bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE; private:
      UnicodeString fPrefix; UnicodeString fSuffix; Field fField; bool fStrong; };
      /** * The second primary implementation of {@link Modifier}, this one consuming
      a {@link SimpleFormatter} * pattern. */ class U_I18N_API SimpleModifier : public
      Modifier, public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fStrong
      Src: /src/icu/source/i18n/number_modifiers.h:234,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 272
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 272
    functionName: getPrefixLength
    functionSourceFile: /src/icu/source/i18n/number_modifiers.h
    functionUses: []
    functionsReached:
    - fStrong
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getPrefixLength() const U_OVERRIDE; int32_t getCodePointCount()
      const U_OVERRIDE; bool isStrong() const U_OVERRIDE; bool containsField(UNumberFormatFields
      field) const U_OVERRIDE; void getParameters(Parameters& output) const U_OVERRIDE;
      bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE; protected:
      // NOTE: In Java, these are stored as array pointers. In C++, the FormattedStringBuilder
      is stored by // value and is treated internally as immutable. FormattedStringBuilder
      fPrefix; FormattedStringBuilder fSuffix; bool fOverwrite; bool fStrong; Modifier::Parameters
      fParameters; }; /** Identical to {@link ConstantMultiFieldModifier}, but supports
      currency spacing. */ class U_I18N_API CurrencySpacingEnabledModifier : public
      ConstantMultiFieldModifier { public: /** Safe code path */ CurrencySpacingEnabledModifier(
      const FormattedStringBuilder &prefix, const FormattedStringBuilder &suffix,
      bool overwrite, bool strong, const DecimalFormatSymbols &symbols, UErrorCode
      &status); int32_t apply(FormattedStringBuilder &output, int32_t leftIndex, int32_t
      rightIndex, UErrorCode &status) const U_OVERRIDE; /** Unsafe code path */ static
      int32_t applyCurrencySpacing(FormattedStringBuilder &output, int32_t prefixStart,
      int32_t prefixLen, int32_t suffixStart, int32_t suffixLen, const DecimalFormatSymbols
      &symbols, UErrorCode &status); private: UnicodeSet fAfterPrefixUnicodeSet; UnicodeString
      fAfterPrefixInsert; UnicodeSet fBeforeSuffixUnicodeSet; UnicodeString fBeforeSuffixInsert;
      enum EAffix { PREFIX, SUFFIX }; enum EPosition { IN_CURRENCY, IN_NUMBER }; /**
      Unsafe code path */ static int32_t applyCurrencySpacingAffix(FormattedStringBuilder
      &output, int32_t index, EAffix affix, const DecimalFormatSymbols &symbols, UErrorCode
      &status); static UnicodeSet getUnicodeSet(const DecimalFormatSymbols &symbols,
      EPosition position, EAffix affix, UErrorCode &status); static UnicodeString
      getInsertString(const DecimalFormatSymbols &symbols, EAffix affix, UErrorCode
      &status); }; /** A Modifier that does not do anything. */ class U_I18N_API EmptyModifier
      : public Modifier, public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: getPrefixLength
    functionSourceFile: /src/icu/source/i18n/number_modifiers.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getPrefixLength() const U_OVERRIDE '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: getCodePointCount
    functionSourceFile: /src/icu/source/i18n/number_modifiers.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getCodePointCount() const U_OVERRIDE '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: isStrong
    functionSourceFile: /src/icu/source/i18n/number_modifiers.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool isStrong() const U_OVERRIDE '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - Parameters
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: getParameters
    functionSourceFile: /src/icu/source/i18n/number_modifiers.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void getParameters(Parameters& output) const U_OVERRIDE '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getModIndex
      Src: /src/icu/source/i18n/number_modifiers.h:307,1
    - Dst: getModIndex
      Src: /src/icu/source/i18n/number_modifiers.h:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - signum
    - plural
    argTypes:
    - Signum
    - StandardPlural
    constantsTouched: []
    func_position:
      end: 312
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 312
    functionName: getModifier
    functionSourceFile: /src/icu/source/i18n/number_modifiers.h
    functionUses: []
    functionsReached:
    - getModIndex
    linkageType: ''
    returnType: Modifier*
    signature: 'const Modifier *getModifier(Signum signum, StandardPlural::Form plural)
      const U_OVERRIDE '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getModIndex
      Src: /src/icu/source/i18n/number_modifiers.h:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - signum
    argTypes:
    - Signum
    constantsTouched: []
    func_position:
      end: 317
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 317
    functionName: getModifierWithoutPlural
    functionSourceFile: /src/icu/source/i18n/number_modifiers.h
    functionUses: []
    functionsReached:
    - getModIndex
    linkageType: ''
    returnType: Modifier*
    signature: 'const Modifier *getModifierWithoutPlural(Signum signum) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - output
    - leftIndex
    - rightIndex
    - status
    argTypes:
    - FormattedStringBuilder
    - int32_t
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: apply
    functionSourceFile: /src/icu/source/i18n/number_modifiers.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t apply(FormattedStringBuilder &output, int32_t leftIndex, int32_t
      rightIndex, UErrorCode &status) const U_OVERRIDE '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - field
    argTypes:
    - UNumberFormatFields
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: containsField
    functionSourceFile: /src/icu/source/i18n/number_modifiers.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool containsField(UNumberFormatFields field) const U_OVERRIDE '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - Modifier
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: semanticallyEquivalent
    functionSourceFile: /src/icu/source/i18n/number_modifiers.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U_ASSERT
      Src: /src/icu/source/i18n/number_modifiers.h:324,1
    - Dst: U_ASSERT
      Src: /src/icu/source/i18n/number_modifiers.h:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - signum
    - plural
    argTypes:
    - Signum
    - StandardPlural
    constantsTouched: []
    func_position:
      end: 327
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 327
    functionName: getModIndex
    functionSourceFile: /src/icu/source/i18n/number_modifiers.h
    functionUses: []
    functionsReached:
    - U_ASSERT
    linkageType: ''
    returnType: int32_t
    signature: 'inline static int32_t getModIndex(Signum signum, StandardPlural::Form
      plural) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U_ASSERT
      Src: /src/icu/source/i18n/number_modifiers.h:292,1
    - Dst: getModIndex
      Src: /src/icu/source/i18n/number_modifiers.h:293,1
    - Dst: getModIndex
      Src: /src/icu/source/i18n/number_modifiers.h:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - signum
    - plural
    - mod
    argTypes:
    - Signum
    - StandardPlural
    - Modifier*
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: adoptModifier
    functionSourceFile: /src/icu/source/i18n/number_modifiers.h
    functionUses: []
    functionsReached:
    - U_ASSERT
    - getModIndex
    linkageType: ''
    returnType: void
    signature: 'void adoptModifier(Signum signum, StandardPlural::Form plural, const
      Modifier *mod) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U_ASSERT
      Src: /src/icu/source/i18n/number_modifiers.h:301,1
    - Dst: getModIndex
      Src: /src/icu/source/i18n/number_modifiers.h:302,1
    - Dst: getModIndex
      Src: /src/icu/source/i18n/number_modifiers.h:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - signum
    - mod
    argTypes:
    - Signum
    - Modifier*
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: adoptModifierWithoutPlural
    functionSourceFile: /src/icu/source/i18n/number_modifiers.h
    functionUses: []
    functionsReached:
    - U_ASSERT
    - getModIndex
    linkageType: ''
    returnType: void
    signature: 'void adoptModifierWithoutPlural(Signum signum, const Modifier *mod) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/icu/source/i18n/windtfmt.h:54,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 130
    functionName: Win32DateFormat
    functionSourceFile: /src/icu/source/i18n/windtfmt.h
    functionUses: []
    functionsReached:
    - format
    linkageType: ''
    returnType: class
    signature: 'class Win32DateFormat : public DateFormat '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isSpecialCE32
      Src: /src/icu/source/i18n/collation.h:361,1
    - Dst: tagFromCE32
      Src: /src/icu/source/i18n/collation.h:364,1
    - Dst: tagFromCE32
      Src: /src/icu/source/i18n/collation.h:362,1
    - Dst: tagFromCE32
      Src: /src/icu/source/i18n/collation.h:363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 365
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 365
    functionName: isSelfContainedCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached:
    - tagFromCE32
    - isSpecialCE32
    linkageType: ''
    returnType: UBool
    signature: 'static UBool isSelfContainedCE32(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasCE32Tag
      Src: /src/icu/source/i18n/collation.h:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 369
    functionName: isPrefixCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached:
    - hasCE32Tag
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isPrefixCE32(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - p
    - s
    - t
    - q
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 454
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 454
    functionName: makeCE
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'static inline int64_t makeCE(uint32_t p, uint32_t s, uint32_t t, uint32_t
      q) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 317
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 317
    functionName: ceFromLongPrimaryCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'static inline int64_t ceFromLongPrimaryCE32(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - tag
    - index
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: makeCE32FromTagAndIndex
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t makeCE32FromTagAndIndex(int32_t tag, int32_t index) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasCE32Tag
      Src: /src/icu/source/i18n/collation.h:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 373
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 373
    functionName: isContractionCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached:
    - hasCE32Tag
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isContractionCE32(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 395
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 395
    functionName: latinCE1FromCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'static inline int64_t latinCE1FromCE32(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 409
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 409
    functionName: lengthFromCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t lengthFromCE32(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - lower32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: makeLongSecondaryCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t makeLongSecondaryCE32(uint32_t lower32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 337
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 337
    functionName: isSpecialCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isSpecialCE32(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isSpecialCE32
      Src: /src/icu/source/i18n/collation.h:376,1
    - Dst: tagFromCE32
      Src: /src/icu/source/i18n/collation.h:378,1
    - Dst: tagFromCE32
      Src: /src/icu/source/i18n/collation.h:377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 379
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 379
    functionName: ce32HasContext
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached:
    - tagFromCE32
    - isSpecialCE32
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool ce32HasContext(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: makeCE
      Src: /src/icu/source/i18n/collation.h:489,1
    - Dst: unassignedPrimaryFromCodePoint
      Src: /src/icu/source/i18n/collation.h:489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 490
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 490
    functionName: unassignedCEFromCodePoint
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached:
    - unassignedPrimaryFromCodePoint
    - makeCE
    linkageType: ''
    returnType: int64_t
    signature: 'static inline int64_t unassignedCEFromCodePoint(UChar32 c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 387
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: latinCE0FromCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'static inline int64_t latinCE0FromCE32(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 402
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 402
    functionName: indexFromCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t indexFromCE32(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 314
    functionName: primaryFromLongPrimaryCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static inline uint32_t primaryFromLongPrimaryCE32(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: tagFromCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t tagFromCE32(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasCE32Tag
      Src: /src/icu/source/i18n/collation.h:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 349
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 349
    functionName: isLongPrimaryCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached:
    - hasCE32Tag
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isLongPrimaryCE32(uint32_t ce32) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hasCE32Tag
      Src: /src/icu/source/i18n/collation.h:348,1
    - Dst: isSpecialCE32
      Src: /src/icu/source/i18n/collation.h:352,1
    - Dst: isSpecialCE32
      Src: /src/icu/source/i18n/collation.h:361,1
    - Dst: isSpecialCE32
      Src: /src/icu/source/i18n/collation.h:376,1
    - Dst: tagFromCE32
      Src: /src/icu/source/i18n/collation.h:364,1
    - Dst: INT64_C
      Src: /src/icu/source/i18n/collation.h:123,1
    - Dst: tagFromCE32
      Src: /src/icu/source/i18n/collation.h:354,1
    - Dst: tagFromCE32
      Src: /src/icu/source/i18n/collation.h:363,1
    - Dst: unassignedPrimaryFromCodePoint
      Src: /src/icu/source/i18n/collation.h:489,1
    - Dst: Collation
      Src: /src/icu/source/i18n/collation.h:493,1
    - Dst: tagFromCE32
      Src: /src/icu/source/i18n/collation.h:378,1
    - Dst: tagFromCE32
      Src: /src/icu/source/i18n/collation.h:353,1
    - Dst: tagFromCE32
      Src: /src/icu/source/i18n/collation.h:362,1
    - Dst: tagFromCE32
      Src: /src/icu/source/i18n/collation.h:377,1
    - Dst: hasCE32Tag
      Src: /src/icu/source/i18n/collation.h:372,1
    - Dst: hasCE32Tag
      Src: /src/icu/source/i18n/collation.h:368,1
    - Dst: isSpecialCE32
      Src: /src/icu/source/i18n/collation.h:344,1
    - Dst: tagFromCE32
      Src: /src/icu/source/i18n/collation.h:344,1
    - Dst: makeCE
      Src: /src/icu/source/i18n/collation.h:489,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 141
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 494
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 494
    functionName: Collation
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached:
    - unassignedPrimaryFromCodePoint
    - INT64_C
    - isSpecialCE32
    - tagFromCE32
    - makeCE
    - hasCE32Tag
    - Collation
    linkageType: ''
    returnType: U_I18N_API
    signature: 'U_I18N_API Collation '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 278
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 278
    functionName: isAssignedCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool isAssignedCE32(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isSpecialCE32
      Src: /src/icu/source/i18n/collation.h:344,1
    - Dst: tagFromCE32
      Src: /src/icu/source/i18n/collation.h:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ce32
    - tag
    argTypes:
    - uint32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: hasCE32Tag
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached:
    - tagFromCE32
    - isSpecialCE32
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool hasCE32Tag(uint32_t ce32, int32_t tag) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isSpecialCE32
      Src: /src/icu/source/i18n/collation.h:352,1
    - Dst: tagFromCE32
      Src: /src/icu/source/i18n/collation.h:353,1
    - Dst: tagFromCE32
      Src: /src/icu/source/i18n/collation.h:354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 355
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 355
    functionName: isSimpleOrLongCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached:
    - tagFromCE32
    - isSpecialCE32
    linkageType: ''
    returnType: UBool
    signature: 'static UBool isSimpleOrLongCE32(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 309
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 309
    functionName: makeLongPrimaryCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t makeLongPrimaryCE32(uint32_t p) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - tag
    - index
    - length
    argTypes:
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 329
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 329
    functionName: makeCE32FromTagIndexAndLength
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t makeCE32FromTagIndexAndLength(int32_t tag, int32_t
      index, int32_t length) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 324
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 324
    functionName: ceFromLongSecondaryCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'static inline int64_t ceFromLongSecondaryCE32(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 423
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 423
    functionName: ceFromSimpleCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'static inline int64_t ceFromSimpleCE32(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 447
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 447
    functionName: makeCE
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'static inline int64_t makeCE(uint32_t p) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 416
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 416
    functionName: digitFromCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'static inline char digitFromCE32(uint32_t ce32) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 442
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 442
    functionName: ceFromCE32
    functionSourceFile: /src/icu/source/i18n/collation.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'static inline int64_t ceFromCE32(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - sinkAlias
    argTypes:
    - Sink*
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: setSink
    functionSourceFile: /src/icu/source/i18n/collationruleparser.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setSink(Sink *sinkAlias) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - importerAlias
    argTypes:
    - Importer*
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: setImporter
    functionSourceFile: /src/icu/source/i18n/collationruleparser.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setImporter(Importer *importerAlias) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: getErrorReason
    functionSourceFile: /src/icu/source/i18n/collationruleparser.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *getErrorReason() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ScientificModifier
      Src: /src/icu/source/i18n/number_scientific.h:19,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 62
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/number_scientific.h
    functionUses: []
    functionsReached:
    - ScientificModifier
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 59
    functionName: getPrefixLength
    functionSourceFile: /src/icu/source/i18n/number_scientific.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getPrefixLength() const U_OVERRIDE; int32_t getCodePointCount()
      const U_OVERRIDE; bool isStrong() const U_OVERRIDE; bool containsField(UNumberFormatFields
      field) const U_OVERRIDE; void getParameters(Parameters& output) const U_OVERRIDE;
      bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE; private:
      int32_t fExponent; const ScientificHandler *fHandler; };class ScientificHandler
      : public UMemory, public MicroPropsGenerator, public MultiplierProducer '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/icu/source/i18n/double-conversion-utils.h:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: abort_noreturn
    functionSourceFile: /src/icu/source/i18n/double-conversion-utils.h
    functionUses: []
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: 'inline void abort_noreturn() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: is_empty
    functionSourceFile: /src/icu/source/i18n/double-conversion-utils.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool is_empty() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 216
    functionName: length
    functionSourceFile: /src/icu/source/i18n/double-conversion-utils.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int length() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: start
    functionSourceFile: /src/icu/source/i18n/double-conversion-utils.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: T*
    signature: 'T * start() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:235,1
    - Dst: is_empty
      Src: /src/icu/source/i18n/double-conversion-utils.h:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: pop_back
    functionSourceFile: /src/icu/source/i18n/double-conversion-utils.h
    functionUses: []
    functionsReached:
    - DOUBLE_CONVERSION_ASSERT
    - is_empty
    linkageType: ''
    returnType: void
    signature: 'void pop_back() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:270,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:284,1
    - Dst: AddSubstring
      Src: /src/icu/source/i18n/double-conversion-utils.h:278,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:285,1
    - Dst: is_finalized
      Src: /src/icu/source/i18n/double-conversion-utils.h:284,1
    - Dst: memmove
      Src: /src/icu/source/i18n/double-conversion-utils.h:286,1
    - Dst: is_finalized
      Src: /src/icu/source/i18n/double-conversion-utils.h:307,1
    - Dst: is_finalized
      Src: /src/icu/source/i18n/double-conversion-utils.h:271,1
    - Dst: StrLength
      Src: /src/icu/source/i18n/double-conversion-utils.h:278,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:271,1
    - Dst: AddCharacter
      Src: /src/icu/source/i18n/double-conversion-utils.h:295,1
    - Dst: strlen
      Src: /src/icu/source/i18n/double-conversion-utils.h:305,1
    - Dst: DOUBLE_CONVERSION_DISALLOW_IMPLICIT_CONSTRUCTORS
      Src: /src/icu/source/i18n/double-conversion-utils.h:317,1
    - Dst: StringBuilder
      Src: /src/icu/source/i18n/double-conversion-utils.h:250,1
    - Dst: is_finalized
      Src: /src/icu/source/i18n/double-conversion-utils.h:253,1
    - Dst: is_finalized
      Src: /src/icu/source/i18n/double-conversion-utils.h:259,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:307,1
    - Dst: position_
      Src: /src/icu/source/i18n/double-conversion-utils.h:251,1
    - Dst: StringBuilder
      Src: /src/icu/source/i18n/double-conversion-utils.h:253,1
    - Dst: buffer_
      Src: /src/icu/source/i18n/double-conversion-utils.h:251,1
    - Dst: Finalize
      Src: /src/icu/source/i18n/double-conversion-utils.h:253,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:259,1
    - Dst: strlen
      Src: /src/icu/source/i18n/double-conversion-utils.h:285,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:301,1
    - Dst: is_finalized
      Src: /src/icu/source/i18n/double-conversion-utils.h:301,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:305,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 318
    functionName: StringBuilder
    functionSourceFile: /src/icu/source/i18n/double-conversion-utils.h
    functionUses: []
    functionsReached:
    - is_finalized
    - buffer_
    - memmove
    - AddCharacter
    - Finalize
    - DOUBLE_CONVERSION_DISALLOW_IMPLICIT_CONSTRUCTORS
    - AddSubstring
    - strlen
    - DOUBLE_CONVERSION_ASSERT
    - position_
    - StrLength
    - StringBuilder
    linkageType: ''
    returnType: class
    signature: 'class StringBuilder '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 255
    functionName: size
    functionSourceFile: /src/icu/source/i18n/double-conversion-utils.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int size() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:259,1
    - Dst: is_finalized
      Src: /src/icu/source/i18n/double-conversion-utils.h:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: position
    functionSourceFile: /src/icu/source/i18n/double-conversion-utils.h
    functionUses: []
    functionsReached:
    - DOUBLE_CONVERSION_ASSERT
    - is_finalized
    linkageType: ''
    returnType: int
    signature: 'int position() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 264
    functionName: Reset
    functionSourceFile: /src/icu/source/i18n/double-conversion-utils.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void Reset() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddSubstring
      Src: /src/icu/source/i18n/double-conversion-utils.h:278,1
    - Dst: StrLength
      Src: /src/icu/source/i18n/double-conversion-utils.h:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 279
    functionName: AddString
    functionSourceFile: /src/icu/source/i18n/double-conversion-utils.h
    functionUses: []
    functionsReached:
    - AddSubstring
    - StrLength
    linkageType: ''
    returnType: void
    signature: 'void AddString(const char* s) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:284,1
    - Dst: is_finalized
      Src: /src/icu/source/i18n/double-conversion-utils.h:284,1
    - Dst: strlen
      Src: /src/icu/source/i18n/double-conversion-utils.h:285,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:285,1
    - Dst: memmove
      Src: /src/icu/source/i18n/double-conversion-utils.h:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: AddSubstring
    functionSourceFile: /src/icu/source/i18n/double-conversion-utils.h
    functionUses: []
    functionsReached:
    - strlen
    - DOUBLE_CONVERSION_ASSERT
    - memmove
    - is_finalized
    linkageType: ''
    returnType: void
    signature: 'void AddSubstring(const char* s, int n) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 315
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 315
    functionName: is_finalized
    functionSourceFile: /src/icu/source/i18n/double-conversion-utils.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool is_finalized() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/i18n/double-conversion-utils.h:192,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: StrLength
    functionSourceFile: /src/icu/source/i18n/double-conversion-utils.h
    functionUses: []
    functionsReached:
    - strlen
    - DOUBLE_CONVERSION_ASSERT
    linkageType: ''
    returnType: int
    signature: 'inline int StrLength(const char* string) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: length_
      Src: /src/icu/source/i18n/double-conversion-utils.h:202,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:226,1
    - Dst: start
      Src: /src/icu/source/i18n/double-conversion-utils.h:212,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:209,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:270,1
    - Dst: AddSubstring
      Src: /src/icu/source/i18n/double-conversion-utils.h:278,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:284,1
    - Dst: is_finalized
      Src: /src/icu/source/i18n/double-conversion-utils.h:284,1
    - Dst: AddCharacter
      Src: /src/icu/source/i18n/double-conversion-utils.h:295,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:301,1
    - Dst: strlen
      Src: /src/icu/source/i18n/double-conversion-utils.h:285,1
    - Dst: strlen
      Src: /src/icu/source/i18n/double-conversion-utils.h:305,1
    - Dst: length_
      Src: /src/icu/source/i18n/double-conversion-utils.h:201,1
    - Dst: Vector
      Src: /src/icu/source/i18n/double-conversion-utils.h:202,1
    - Dst: start_
      Src: /src/icu/source/i18n/double-conversion-utils.h:202,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:211,1
    - Dst: first
      Src: /src/icu/source/i18n/double-conversion-utils.h:230,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:235,1
    - Dst: is_empty
      Src: /src/icu/source/i18n/double-conversion-utils.h:235,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:271,1
    - Dst: is_finalized
      Src: /src/icu/source/i18n/double-conversion-utils.h:271,1
    - Dst: StrLength
      Src: /src/icu/source/i18n/double-conversion-utils.h:278,1
    - Dst: SubVector
      Src: /src/icu/source/i18n/double-conversion-utils.h:208,1
    - Dst: last
      Src: /src/icu/source/i18n/double-conversion-utils.h:232,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:210,1
    - Dst: StringBuilder
      Src: /src/icu/source/i18n/double-conversion-utils.h:250,1
    - Dst: is_finalized
      Src: /src/icu/source/i18n/double-conversion-utils.h:253,1
    - Dst: is_finalized
      Src: /src/icu/source/i18n/double-conversion-utils.h:259,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:307,1
    - Dst: memmove
      Src: /src/icu/source/i18n/double-conversion-utils.h:357,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:285,1
    - Dst: is_finalized
      Src: /src/icu/source/i18n/double-conversion-utils.h:307,1
    - Dst: BitCast
      Src: /src/icu/source/i18n/double-conversion-utils.h:362,1
    - Dst: strlen
      Src: /src/icu/source/i18n/double-conversion-utils.h:192,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:193,1
    - Dst: Vector
      Src: /src/icu/source/i18n/double-conversion-utils.h:201,1
    - Dst: start_
      Src: /src/icu/source/i18n/double-conversion-utils.h:201,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:203,1
    - Dst: buffer_
      Src: /src/icu/source/i18n/double-conversion-utils.h:251,1
    - Dst: position_
      Src: /src/icu/source/i18n/double-conversion-utils.h:251,1
    - Dst: StringBuilder
      Src: /src/icu/source/i18n/double-conversion-utils.h:253,1
    - Dst: Finalize
      Src: /src/icu/source/i18n/double-conversion-utils.h:253,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:259,1
    - Dst: memmove
      Src: /src/icu/source/i18n/double-conversion-utils.h:286,1
    - Dst: is_finalized
      Src: /src/icu/source/i18n/double-conversion-utils.h:301,1
    - Dst: DOUBLE_CONVERSION_DISALLOW_IMPLICIT_CONSTRUCTORS
      Src: /src/icu/source/i18n/double-conversion-utils.h:317,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:305,1
    - Dst: static_assert
      Src: /src/icu/source/i18n/double-conversion-utils.h:349,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 158
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 366
    functionName: double_conversion
    functionSourceFile: /src/icu/source/i18n/double-conversion-utils.h
    functionUses: []
    functionsReached:
    - Vector
    - last
    - static_assert
    - is_empty
    - Finalize
    - BitCast
    - length_
    - start
    - SubVector
    - buffer_
    - AddCharacter
    - DOUBLE_CONVERSION_ASSERT
    - StrLength
    - is_finalized
    - memmove
    - first
    - position_
    - StringBuilder
    - start_
    - DOUBLE_CONVERSION_DISALLOW_IMPLICIT_CONSTRUCTORS
    - AddSubstring
    - strlen
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace double_conversion '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:270,1
    - Dst: is_finalized
      Src: /src/icu/source/i18n/double-conversion-utils.h:271,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: AddCharacter
    functionSourceFile: /src/icu/source/i18n/double-conversion-utils.h
    functionUses: []
    functionsReached:
    - DOUBLE_CONVERSION_ASSERT
    - is_finalized
    linkageType: ''
    returnType: void
    signature: 'void AddCharacter(char c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddCharacter
      Src: /src/icu/source/i18n/double-conversion-utils.h:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - c
    - count
    argTypes:
    - char
    - int
    constantsTouched: []
    func_position:
      end: 297
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 297
    functionName: AddPadding
    functionSourceFile: /src/icu/source/i18n/double-conversion-utils.h
    functionUses: []
    functionsReached:
    - AddCharacter
    linkageType: ''
    returnType: void
    signature: 'void AddPadding(char c, int count) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:301,1
    - Dst: is_finalized
      Src: /src/icu/source/i18n/double-conversion-utils.h:301,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:305,1
    - Dst: strlen
      Src: /src/icu/source/i18n/double-conversion-utils.h:305,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-utils.h:307,1
    - Dst: is_finalized
      Src: /src/icu/source/i18n/double-conversion-utils.h:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 309
    functionName: Finalize
    functionSourceFile: /src/icu/source/i18n/double-conversion-utils.h
    functionUses: []
    functionsReached:
    - strlen
    - DOUBLE_CONVERSION_ASSERT
    - is_finalized
    linkageType: ''
    returnType: char*
    signature: 'char * Finalize() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: getType
    functionSourceFile: /src/icu/source/i18n/nfrule.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: ERuleType
    signature: 'ERuleType getType() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: getDecimalPoint
    functionSourceFile: /src/icu/source/i18n/nfrule.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UChar
    signature: 'UChar getDecimalPoint() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: getBaseValue
    functionSourceFile: /src/icu/source/i18n/nfrule.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'int64_t getBaseValue() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: operator
    functionSourceFile: /src/icu/source/i18n/nfrule.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool operator !=(const NFRule& rhs) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ruleType
    argTypes:
    - ERuleType
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: setType
    functionSourceFile: /src/icu/source/i18n/nfrule.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setType(ERuleType ruleType) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CurrencySymbols
      Src: /src/icu/source/i18n/number_currencysymbols.h:20,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 60
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/number_currencysymbols.h
    functionUses: []
    functionsReached:
    - CurrencySymbols
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace number '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CurrencySymbols
      Src: /src/icu/source/i18n/number_currencysymbols.h:20,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 59
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/number_currencysymbols.h
    functionUses: []
    functionsReached:
    - CurrencySymbols
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: isBogus
    functionSourceFile: /src/icu/source/i18n/collationtailoring.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isBogus() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validLocale
      Src: /src/icu/source/i18n/collationtailoring.h:96,1
    - Dst: CollationCacheEntry
      Src: /src/icu/source/i18n/collationtailoring.h:101,1
    - Dst: tailoring
      Src: /src/icu/source/i18n/collationtailoring.h:96,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 105
    functionName: getUCAVersion
    functionSourceFile: /src/icu/source/i18n/collationtailoring.h
    functionUses: []
    functionsReached:
    - validLocale
    - CollationCacheEntry
    - tailoring
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getUCAVersion() const; // data for sorting etc. const CollationData
      *data; // == base data or ownedData const CollationSettings *settings; // reference-counted
      UnicodeString rules; // The locale is bogus when built from rules or constructed
      from a binary blob. // It can then be set by the service registration code which
      is thread-safe. mutable Locale actualLocale; // UCA version u.v.w & rules version
      r.s.t.q: // version[0]: builder version (runtime version is mixed in at runtime)
      // version[1]: bits 7..3=u, bits 2..0=v // version[2]: bits 7..6=w, bits 5..0=r
      // version[3]= (s<<5)+(s>>3)+t+(q<<4)+(q>>4) UVersionInfo version; // owned
      objects CollationData *ownedData; UObject *builder; UDataMemory *memory; UResourceBundle
      *bundle; UTrie2 *trie; UnicodeSet *unsafeBackwardSet; mutable UHashtable *maxExpansions;
      mutable UInitOnce maxExpansionsInitOnce; private: /** * No copy constructor:
      A CollationTailoring cannot be copied. * It is immutable, and the data trie
      cannot be copied either. */ CollationTailoring(const CollationTailoring &other);
      };struct CollationCacheEntry : public SharedObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U_ASSERT
      Src: /src/icu/source/i18n/formatted_string_builder.h:72,1
    - Dst: getFieldPtr
      Src: /src/icu/source/i18n/formatted_string_builder.h:74,1
    - Dst: U_ASSERT
      Src: /src/icu/source/i18n/formatted_string_builder.h:73,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: length
    functionSourceFile: /src/icu/source/i18n/formatted_string_builder.h
    functionUses: []
    functionsReached:
    - U_ASSERT
    - getFieldPtr
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t length() const; int32_t codePointCount() const; inline char16_t
      charAt(int32_t index) const { U_ASSERT(index >= 0); U_ASSERT(index < fLength);
      return getCharPtr()[fZero + index]; } inline Field fieldAt(int32_t index) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insertCodePoint
      Src: /src/icu/source/i18n/formatted_string_builder.h:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - index
    - codeUnit
    - field
    - status
    argTypes:
    - int32_t
    - char16_t
    - Field
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: insertChar16
    functionSourceFile: /src/icu/source/i18n/formatted_string_builder.h
    functionUses: []
    functionsReached:
    - insertCodePoint
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t insertChar16(int32_t index, char16_t codeUnit, Field
      field, UErrorCode& status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insertCodePoint
      Src: /src/icu/source/i18n/formatted_string_builder.h:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: getFirstCodePoint
    functionSourceFile: /src/icu/source/i18n/formatted_string_builder.h
    functionUses: []
    functionsReached:
    - insertCodePoint
    linkageType: ''
    returnType: UChar32
    signature: 'UChar32 getFirstCodePoint() const; UChar32 getLastCodePoint() const;
      UChar32 codePointAt(int32_t index) const; UChar32 codePointBefore(int32_t index)
      const; FormattedStringBuilder &clear(); /** Appends a UTF-16 code unit. */ inline
      int32_t appendChar16(char16_t codeUnit, Field field, UErrorCode& status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 179
    functionName: toUnicodeString
    functionSourceFile: /src/icu/source/i18n/formatted_string_builder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: 'UnicodeString toUnicodeString() const; /** * Gets an "unsafe" UnicodeString
      that is valid only as long as the FormattedStringBuilder is alive and * unchanged.
      Slightly faster than toUnicodeString(). */ const UnicodeString toTempUnicodeString()
      const; UnicodeString toDebugString() const; const char16_t *chars() const; bool
      contentEquals(const FormattedStringBuilder &other) const; bool containsField(Field
      field) const; private: bool fUsingHeap = false; ValueOrHeapArray<char16_t> fChars;
      ValueOrHeapArray<Field> fFields; int32_t fZero = DEFAULT_CAPACITY / 2; int32_t
      fLength = 0; inline char16_t *getCharPtr() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: getFieldPtr
    functionSourceFile: /src/icu/source/i18n/formatted_string_builder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Field*
    signature: 'inline Field *getFieldPtr() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: getCapacity
    functionSourceFile: /src/icu/source/i18n/formatted_string_builder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t getCapacity() const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_assert
      Src: /src/icu/source/i18n/formatted_string_builder.h:220,1
    - Dst: static_assert
      Src: /src/icu/source/i18n/formatted_string_builder.h:222,1
    - Dst: static_assert
      Src: /src/icu/source/i18n/formatted_string_builder.h:221,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 245
    functionName: StringBuilderFieldUtils
    functionSourceFile: /src/icu/source/i18n/formatted_string_builder.h
    functionUses: []
    functionsReached:
    - static_assert
    linkageType: ''
    returnType: class
    signature: 'class StringBuilderFieldUtils '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_assert
      Src: /src/icu/source/i18n/formatted_string_builder.h:220,1
    - Dst: static_assert
      Src: /src/icu/source/i18n/formatted_string_builder.h:222,1
    - Dst: static_assert
      Src: /src/icu/source/i18n/formatted_string_builder.h:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: compress
    functionSourceFile: /src/icu/source/i18n/formatted_string_builder.h
    functionUses: []
    functionsReached:
    - static_assert
    linkageType: ''
    returnType: FormattedStringBuilder
    signature: 'constexpr FormattedStringBuilder ::Field compress() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: getCharPtr
    functionSourceFile: /src/icu/source/i18n/formatted_string_builder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char16_t*
    signature: 'inline const char16_t *getCharPtr() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: getFieldPtr
    functionSourceFile: /src/icu/source/i18n/formatted_string_builder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Field*
    signature: 'inline const Field *getFieldPtr() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - field
    argTypes:
    - FormattedStringBuilder
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: isNumericField
    functionSourceFile: /src/icu/source/i18n/formatted_string_builder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'static inline bool isNumericField(FormattedStringBuilder::Field field) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insertCodePoint
      Src: /src/icu/source/i18n/formatted_string_builder.h:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - codePoint
    - field
    - status
    argTypes:
    - UChar32
    - Field
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: appendCodePoint
    functionSourceFile: /src/icu/source/i18n/formatted_string_builder.h
    functionUses: []
    functionsReached:
    - insertCodePoint
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t appendCodePoint(UChar32 codePoint, Field field, UErrorCode
      &status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/icu/source/i18n/formatted_string_builder.h:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - unistr
    - field
    - status
    argTypes:
    - UnicodeString
    - Field
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: append
    functionSourceFile: /src/icu/source/i18n/formatted_string_builder.h
    functionUses: []
    functionsReached:
    - insert
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t append(const UnicodeString &unistr, Field field, UErrorCode
      &status) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - field
    argTypes:
    - FormattedStringBuilder
    constantsTouched: []
    func_position:
      end: 239
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 239
    functionName: expand
    functionSourceFile: /src/icu/source/i18n/formatted_string_builder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: CategoryFieldPair
    signature: 'static inline CategoryFieldPair expand(FormattedStringBuilder::Field
      field) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: enableFastLatin
    functionSourceFile: /src/icu/source/i18n/collationdatabuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void enableFastLatin() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getConditionalCE32
      Src: /src/icu/source/i18n/collationdatabuilder.h:182,1
    - Dst: indexFromCE32
      Src: /src/icu/source/i18n/collationdatabuilder.h:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: getConditionalCE32ForCE32
    functionSourceFile: /src/icu/source/i18n/collationdatabuilder.h
    functionUses: []
    functionsReached:
    - indexFromCE32
    - getConditionalCE32
    linkageType: ''
    returnType: ConditionalCE32*
    signature: 'inline ConditionalCE32 *getConditionalCE32ForCE32(uint32_t ce32) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: hasMappings
    functionSourceFile: /src/icu/source/i18n/collationdatabuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool hasMappings() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasCE32Tag
      Src: /src/icu/source/i18n/collationdatabuilder.h:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: isBuilderContextCE32
    functionSourceFile: /src/icu/source/i18n/collationdatabuilder.h
    functionUses: []
    functionsReached:
    - hasCE32Tag
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isBuilderContextCE32(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isCompressibleLeadByte
      Src: /src/icu/source/i18n/collationdatabuilder.h:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: isCompressiblePrimary
    functionSourceFile: /src/icu/source/i18n/collationdatabuilder.h
    functionUses: []
    functionsReached:
    - isCompressibleLeadByte
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool isCompressiblePrimary(uint32_t p) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: getConditionalCE32
    functionSourceFile: /src/icu/source/i18n/collationdatabuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: ConditionalCE32*
    signature: 'inline ConditionalCE32 *getConditionalCE32(int32_t index) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: makeCE32FromTagAndIndex
      Src: /src/icu/source/i18n/collationdatabuilder.h:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: makeBuilderContextCE32
    functionSourceFile: /src/icu/source/i18n/collationdatabuilder.h
    functionUses: []
    functionsReached:
    - makeCE32FromTagAndIndex
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t makeBuilderContextCE32(int32_t index) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - i
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 230
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 230
    functionName: jamoCpFromIndex
    functionSourceFile: /src/icu/source/i18n/collationdatabuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UChar32
    signature: 'static UChar32 jamoCpFromIndex(int32_t i) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Compare
      Src: /src/icu/source/i18n/double-conversion-bignum.h:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Bignum
    - Bignum
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Equal
    functionSourceFile: /src/icu/source/i18n/double-conversion-bignum.h
    functionUses: []
    functionsReached:
    - Compare
    linkageType: ''
    returnType: bool
    signature: 'static bool Equal(const Bignum& a, const Bignum& b) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MultiplyByUInt32
      Src: /src/icu/source/i18n/double-conversion-bignum.h:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Times10
    functionSourceFile: /src/icu/source/i18n/double-conversion-bignum.h
    functionUses: []
    functionsReached:
    - MultiplyByUInt32
    linkageType: ''
    returnType: void
    signature: 'void Times10() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Bignum
      Src: /src/icu/source/i18n/double-conversion-bignum.h:55,1
    - Dst: exponent_
      Src: /src/icu/source/i18n/double-conversion-bignum.h:55,1
    - Dst: Compare
      Src: /src/icu/source/i18n/double-conversion-bignum.h:91,1
    - Dst: MultiplyByUInt32
      Src: /src/icu/source/i18n/double-conversion-bignum.h:76,1
    - Dst: used_bigits_
      Src: /src/icu/source/i18n/double-conversion-bignum.h:55,1
    - Dst: Compare
      Src: /src/icu/source/i18n/double-conversion-bignum.h:94,1
    - Dst: Compare
      Src: /src/icu/source/i18n/double-conversion-bignum.h:97,1
    - Dst: PlusCompare
      Src: /src/icu/source/i18n/double-conversion-bignum.h:103,1
    - Dst: PlusCompare
      Src: /src/icu/source/i18n/double-conversion-bignum.h:107,1
    - Dst: PlusCompare
      Src: /src/icu/source/i18n/double-conversion-bignum.h:111,1
    - Dst: DOUBLE_CONVERSION_UNREACHABLE
      Src: /src/icu/source/i18n/double-conversion-bignum.h:129,1
    - Dst: DOUBLE_CONVERSION_DISALLOW_COPY_AND_ASSIGN
      Src: /src/icu/source/i18n/double-conversion-bignum.h:160,1
    - Dst: RawBigit
      Src: /src/icu/source/i18n/double-conversion-bignum.h:147,1
    - Dst: RawBigit
      Src: /src/icu/source/i18n/double-conversion-bignum.h:135,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 161
    functionName: Bignum
    functionSourceFile: /src/icu/source/i18n/double-conversion-bignum.h
    functionUses: []
    functionsReached:
    - Bignum
    - DOUBLE_CONVERSION_UNREACHABLE
    - RawBigit
    - used_bigits_
    - Compare
    - PlusCompare
    - DOUBLE_CONVERSION_DISALLOW_COPY_AND_ASSIGN
    - exponent_
    - MultiplyByUInt32
    linkageType: ''
    returnType: class
    signature: 'class Bignum '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PlusCompare
      Src: /src/icu/source/i18n/double-conversion-bignum.h:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - Bignum
    - Bignum
    - Bignum
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: PlusLessEqual
    functionSourceFile: /src/icu/source/i18n/double-conversion-bignum.h
    functionUses: []
    functionsReached:
    - PlusCompare
    linkageType: ''
    returnType: bool
    signature: 'static bool PlusLessEqual(const Bignum& a, const Bignum& b, const
      Bignum& c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PlusCompare
      Src: /src/icu/source/i18n/double-conversion-bignum.h:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - Bignum
    - Bignum
    - Bignum
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: PlusLess
    functionSourceFile: /src/icu/source/i18n/double-conversion-bignum.h
    functionUses: []
    functionsReached:
    - PlusCompare
    linkageType: ''
    returnType: bool
    signature: 'static bool PlusLess(const Bignum& a, const Bignum& b, const Bignum&
      c) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOUBLE_CONVERSION_UNREACHABLE
      Src: /src/icu/source/i18n/double-conversion-bignum.h:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: EnsureCapacity
    functionSourceFile: /src/icu/source/i18n/double-conversion-bignum.h
    functionUses: []
    functionsReached:
    - DOUBLE_CONVERSION_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: 'static void EnsureCapacity(const int size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawBigit
      Src: /src/icu/source/i18n/double-conversion-bignum.h:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: IsClamped
    functionSourceFile: /src/icu/source/i18n/double-conversion-bignum.h
    functionUses: []
    functionsReached:
    - RawBigit
    linkageType: ''
    returnType: bool
    signature: 'bool IsClamped() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: Zero
    functionSourceFile: /src/icu/source/i18n/double-conversion-bignum.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void Zero() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Compare
      Src: /src/icu/source/i18n/double-conversion-bignum.h:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Bignum
    - Bignum
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: LessEqual
    functionSourceFile: /src/icu/source/i18n/double-conversion-bignum.h
    functionUses: []
    functionsReached:
    - Compare
    linkageType: ''
    returnType: bool
    signature: 'static bool LessEqual(const Bignum& a, const Bignum& b) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: BigitLength
    functionSourceFile: /src/icu/source/i18n/double-conversion-bignum.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int BigitLength() const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Bignum
      Src: /src/icu/source/i18n/double-conversion-bignum.h:55,1
    - Dst: exponent_
      Src: /src/icu/source/i18n/double-conversion-bignum.h:55,1
    - Dst: Compare
      Src: /src/icu/source/i18n/double-conversion-bignum.h:91,1
    - Dst: MultiplyByUInt32
      Src: /src/icu/source/i18n/double-conversion-bignum.h:76,1
    - Dst: used_bigits_
      Src: /src/icu/source/i18n/double-conversion-bignum.h:55,1
    - Dst: Compare
      Src: /src/icu/source/i18n/double-conversion-bignum.h:94,1
    - Dst: Compare
      Src: /src/icu/source/i18n/double-conversion-bignum.h:97,1
    - Dst: PlusCompare
      Src: /src/icu/source/i18n/double-conversion-bignum.h:103,1
    - Dst: PlusCompare
      Src: /src/icu/source/i18n/double-conversion-bignum.h:107,1
    - Dst: PlusCompare
      Src: /src/icu/source/i18n/double-conversion-bignum.h:111,1
    - Dst: DOUBLE_CONVERSION_UNREACHABLE
      Src: /src/icu/source/i18n/double-conversion-bignum.h:129,1
    - Dst: DOUBLE_CONVERSION_DISALLOW_COPY_AND_ASSIGN
      Src: /src/icu/source/i18n/double-conversion-bignum.h:160,1
    - Dst: RawBigit
      Src: /src/icu/source/i18n/double-conversion-bignum.h:147,1
    - Dst: RawBigit
      Src: /src/icu/source/i18n/double-conversion-bignum.h:135,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 163
    functionName: double_conversion
    functionSourceFile: /src/icu/source/i18n/double-conversion-bignum.h
    functionUses: []
    functionsReached:
    - Bignum
    - DOUBLE_CONVERSION_UNREACHABLE
    - RawBigit
    - used_bigits_
    - Compare
    - PlusCompare
    - DOUBLE_CONVERSION_DISALLOW_COPY_AND_ASSIGN
    - exponent_
    - MultiplyByUInt32
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace double_conversion '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Compare
      Src: /src/icu/source/i18n/double-conversion-bignum.h:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Bignum
    - Bignum
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: Less
    functionSourceFile: /src/icu/source/i18n/double-conversion-bignum.h
    functionUses: []
    functionsReached:
    - Compare
    linkageType: ''
    returnType: bool
    signature: 'static bool Less(const Bignum& a, const Bignum& b) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PlusCompare
      Src: /src/icu/source/i18n/double-conversion-bignum.h:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - Bignum
    - Bignum
    - Bignum
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: PlusEqual
    functionSourceFile: /src/icu/source/i18n/double-conversion-bignum.h
    functionUses: []
    functionsReached:
    - PlusCompare
    linkageType: ''
    returnType: bool
    signature: 'static bool PlusEqual(const Bignum& a, const Bignum& b, const Bignum&
      c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: get
    functionSourceFile: /src/icu/source/i18n/sharednumberformat.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: NumberFormat*
    signature: 'const NumberFormat *get() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: operator
    functionSourceFile: /src/icu/source/i18n/sharednumberformat.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: NumberFormat*
    signature: 'const NumberFormat *operator ->() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 279
    functionName: nodeHasBefore3
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool nodeHasBefore3(int64_t node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INT64_C
      Src: /src/icu/source/i18n/collationbuilder.h:291,1
    - Dst: nodeFromNextIndex
      Src: /src/icu/source/i18n/collationbuilder.h:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - node
    - next
    argTypes:
    - int64_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: changeNodeNextIndex
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached:
    - INT64_C
    - nodeFromNextIndex
    linkageType: ''
    returnType: int64_t
    signature: 'static inline int64_t changeNodeNextIndex(int64_t node, int32_t next) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: nodeHasAnyBefore
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool nodeHasAnyBefore(int64_t node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: disableFastLatin
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void disableFastLatin() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - tempCE
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: strengthFromTempCE
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t strengthFromTempCE(int64_t tempCE) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - weight16
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: nodeFromWeight16
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'static inline int64_t nodeFromWeight16(uint32_t weight16) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - next
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: nodeFromNextIndex
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'static inline int64_t nodeFromNextIndex(int32_t next) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: previousIndexFromNode
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t previousIndexFromNode(int64_t node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: strengthFromNode
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t strengthFromNode(int64_t node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 285
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: isTailoredNode
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isTailoredNode(int64_t node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ce
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: isTempCE
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isTempCE(int64_t ce) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - weight32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: nodeFromWeight32
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'static inline int64_t nodeFromWeight32(uint32_t weight32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - previous
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: nodeFromPreviousIndex
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'static inline int64_t nodeFromPreviousIndex(int32_t previous) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - strength
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: nodeFromStrength
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'static inline int64_t nodeFromStrength(int32_t strength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: nextIndexFromNode
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t nextIndexFromNode(int64_t node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: nodeHasBefore2
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool nodeHasBefore2(int64_t node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INT64_C
      Src: /src/icu/source/i18n/collationbuilder.h:288,1
    - Dst: nodeFromPreviousIndex
      Src: /src/icu/source/i18n/collationbuilder.h:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - node
    - previous
    argTypes:
    - int64_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: changeNodePreviousIndex
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached:
    - INT64_C
    - nodeFromPreviousIndex
    linkageType: ''
    returnType: int64_t
    signature: 'static inline int64_t changeNodePreviousIndex(int64_t node, int32_t
      previous) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - tempCE32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: indexFromTempCE32
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t indexFromTempCE32(uint32_t tempCE32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: getErrorReason
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *getErrorReason() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ce32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 220
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 220
    functionName: isTempCE32
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isTempCE32(uint32_t ce32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INT64_C
      Src: /src/icu/source/i18n/collationbuilder.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - index
    - strength
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 193
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 193
    functionName: tempCEFromIndexAndStrength
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached:
    - INT64_C
    linkageType: ''
    returnType: int64_t
    signature: 'static inline int64_t tempCEFromIndexAndStrength(int32_t index, int32_t
      strength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: weight32FromNode
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static inline uint32_t weight32FromNode(int64_t node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INT64_C
      Src: /src/icu/source/i18n/collationbuilder.h:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - tempCE
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: indexFromTempCE
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached:
    - INT64_C
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t indexFromTempCE(int64_t tempCE) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: weight16FromNode
    functionSourceFile: /src/icu/source/i18n/collationbuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static inline uint32_t weight16FromNode(int64_t node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: preProcessUnsafe
      Src: /src/icu/source/i18n/number_formatimpl.h:109,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 147
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/number_formatimpl.h
    functionUses: []
    functionsReached:
    - preProcessUnsafe
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace number '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: preProcessUnsafe
      Src: /src/icu/source/i18n/number_formatimpl.h:109,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 144
    functionName: NumberFormatterImpl
    functionSourceFile: /src/icu/source/i18n/number_formatimpl.h
    functionUses: []
    functionsReached:
    - preProcessUnsafe
    linkageType: ''
    returnType: class
    signature: 'class NumberFormatterImpl : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: getRawMicroProps
    functionSourceFile: /src/icu/source/i18n/number_formatimpl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getPrefixSuffix(Signum signum, StandardPlural::Form plural,
      FormattedStringBuilder& outString, UErrorCode& status) const; const MicroProps&
      getRawMicroProps() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: preProcessUnsafe
      Src: /src/icu/source/i18n/number_formatimpl.h:109,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 146
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/number_formatimpl.h
    functionUses: []
    functionsReached:
    - preProcessUnsafe
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - UnicodeSet*
    - UnicodeSet*
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: putLeadCodePoints
    functionSourceFile: /src/icu/source/i18n/numparse_utils.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline static void putLeadCodePoints(const UnicodeSet* input, UnicodeSet*
      output) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memcpy
      Src: /src/icu/source/i18n/numparse_utils.h:31,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 38
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/numparse_utils.h
    functionUses: []
    functionsReached:
    - uprv_memcpy
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace numparse '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - UnicodeString
    - UnicodeSet*
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: putLeadCodePoint
    functionSourceFile: /src/icu/source/i18n/numparse_utils.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline static void putLeadCodePoint(const UnicodeString& input, UnicodeSet*
      output) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memcpy
      Src: /src/icu/source/i18n/numparse_utils.h:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - UChar*
    - UChar*
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: copyCurrencyCode
    functionSourceFile: /src/icu/source/i18n/numparse_utils.h
    functionUses: []
    functionsReached:
    - uprv_memcpy
    linkageType: ''
    returnType: void
    signature: 'inline static void copyCurrencyCode(UChar* dest, const UChar* src) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memcpy
      Src: /src/icu/source/i18n/numparse_utils.h:31,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 37
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/numparse_utils.h
    functionUses: []
    functionsReached:
    - uprv_memcpy
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memcpy
      Src: /src/icu/source/i18n/numparse_utils.h:31,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 36
    functionName: utils
    functionSourceFile: /src/icu/source/i18n/numparse_utils.h
    functionUses: []
    functionsReached:
    - uprv_memcpy
    linkageType: ''
    returnType: namespace
    signature: 'namespace utils '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: CollationCompare
    functionSourceFile: /src/icu/source/i18n/collationcompare.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API CollationCompare /* not : public UObject because
      all methods are static */ '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isLeapYear
      Src: /src/icu/source/i18n/gregoimp.h:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - year
    - month
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: monthLength
    functionSourceFile: /src/icu/source/i18n/gregoimp.h
    functionUses: []
    functionsReached:
    - isLeapYear
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t Grego:: monthLength(int32_t year, int32_t month) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 264
    functionName: Grego
    functionSourceFile: /src/icu/source/i18n/gregoimp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class Grego '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_floor
      Src: /src/icu/source/i18n/gregoimp.h:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: floorDivide
    functionSourceFile: /src/icu/source/i18n/gregoimp.h
    functionUses: []
    functionsReached:
    - uprv_floor
    linkageType: ''
    returnType: double
    signature: 'inline double ClockMath:: floorDivide(double numerator, double denominator) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dayToFields
      Src: /src/icu/source/i18n/gregoimp.h:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - day
    - year
    - month
    - dom
    - dow
    argTypes:
    - double
    - int32_t
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: dayToFields
    functionSourceFile: /src/icu/source/i18n/gregoimp.h
    functionUses: []
    functionsReached:
    - dayToFields
    linkageType: ''
    returnType: void
    signature: 'inline void Grego:: dayToFields(double day, int32_t& year, int32_t&
      month, int32_t& dom, int32_t& dow) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: floorDivide
      Src: /src/icu/source/i18n/gregoimp.h:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - millis
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: millisToJulianDay
    functionSourceFile: /src/icu/source/i18n/gregoimp.h
    functionUses: []
    functionsReached:
    - floorDivide
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t Grego:: millisToJulianDay(double millis) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 94
    functionName: ClockMath
    functionSourceFile: /src/icu/source/i18n/gregoimp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN /** * A utility class providing mathematical functions
      used by time zone * and calendar code. Do not instantiate. Formerly just named
      ''Math''. * @internal */ class ClockMath '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - year
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: isLeapYear
    functionSourceFile: /src/icu/source/i18n/gregoimp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool Grego:: isLeapYear(int32_t year) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monthLength
      Src: /src/icu/source/i18n/gregoimp.h:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - y
    - m
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 283
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 283
    functionName: previousMonthLength
    functionSourceFile: /src/icu/source/i18n/gregoimp.h
    functionUses: []
    functionsReached:
    - monthLength
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t Grego:: previousMonthLength(int y, int m) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - julian
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: julianDayToMillis
    functionSourceFile: /src/icu/source/i18n/gregoimp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: 'inline double Grego:: julianDayToMillis(int32_t julian) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: floorDivide
      Src: /src/icu/source/i18n/gregoimp.h:302,1
    - Dst: floorDivide
      Src: /src/icu/source/i18n/gregoimp.h:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - eyear
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: gregorianShift
    functionSourceFile: /src/icu/source/i18n/gregoimp.h
    functionUses: []
    functionsReached:
    - floorDivide
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t Grego:: gregorianShift(int32_t eyear) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZoneMeta
      Src: /src/icu/source/i18n/zonemeta.h:115,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 119
    functionName: U_I18N_API
    functionSourceFile: /src/icu/source/i18n/zonemeta.h
    functionUses: []
    functionsReached:
    - ZoneMeta
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API ZoneMeta '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indexFromString
      Src: /src/icu/source/i18n/standardplural.h:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - keyword
    - errorCode
    argTypes:
    - char*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: fromString
    functionSourceFile: /src/icu/source/i18n/standardplural.h
    functionUses: []
    functionsReached:
    - indexFromString
    linkageType: ''
    returnType: Form
    signature: 'static Form fromString(const char *keyword, UErrorCode &errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indexOrOtherIndexFromString
      Src: /src/icu/source/i18n/standardplural.h:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - keyword
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: orOtherFromString
    functionSourceFile: /src/icu/source/i18n/standardplural.h
    functionUses: []
    functionsReached:
    - indexOrOtherIndexFromString
    linkageType: ''
    returnType: Form
    signature: 'static Form orOtherFromString(const char *keyword) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indexOrNegativeFromString
      Src: /src/icu/source/i18n/standardplural.h:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - keyword
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: indexOrOtherIndexFromString
    functionSourceFile: /src/icu/source/i18n/standardplural.h
    functionUses: []
    functionsReached:
    - indexOrNegativeFromString
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t indexOrOtherIndexFromString(const UnicodeString &keyword) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indexOrOtherIndexFromString
      Src: /src/icu/source/i18n/standardplural.h:50,1
    - Dst: indexFromString
      Src: /src/icu/source/i18n/standardplural.h:68,1
    - Dst: indexOrNegativeFromString
      Src: /src/icu/source/i18n/standardplural.h:98,1
    - Dst: indexOrOtherIndexFromString
      Src: /src/icu/source/i18n/standardplural.h:58,1
    - Dst: indexFromString
      Src: /src/icu/source/i18n/standardplural.h:78,1
    - Dst: indexOrNegativeFromString
      Src: /src/icu/source/i18n/standardplural.h:107,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 126
    functionName: StandardPlural
    functionSourceFile: /src/icu/source/i18n/standardplural.h
    functionUses: []
    functionsReached:
    - indexOrOtherIndexFromString
    - indexOrNegativeFromString
    - indexFromString
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API StandardPlural '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indexOrOtherIndexFromString
      Src: /src/icu/source/i18n/standardplural.h:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - keyword
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: orOtherFromString
    functionSourceFile: /src/icu/source/i18n/standardplural.h
    functionUses: []
    functionsReached:
    - indexOrOtherIndexFromString
    linkageType: ''
    returnType: Form
    signature: 'static Form orOtherFromString(const UnicodeString &keyword) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indexFromString
      Src: /src/icu/source/i18n/standardplural.h:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - keyword
    - errorCode
    argTypes:
    - UnicodeString
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: fromString
    functionSourceFile: /src/icu/source/i18n/standardplural.h
    functionUses: []
    functionsReached:
    - indexFromString
    linkageType: ''
    returnType: Form
    signature: 'static Form fromString(const UnicodeString &keyword, UErrorCode &errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indexOrNegativeFromString
      Src: /src/icu/source/i18n/standardplural.h:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - keyword
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: indexOrOtherIndexFromString
    functionSourceFile: /src/icu/source/i18n/standardplural.h
    functionUses: []
    functionsReached:
    - indexOrNegativeFromString
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t indexOrOtherIndexFromString(const char *keyword) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 75
    functionName: double_conversion
    functionSourceFile: /src/icu/source/i18n/double-conversion-cached-powers.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace double_conversion '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 73
    functionName: PowersOfTenCache
    functionSourceFile: /src/icu/source/i18n/double-conversion-cached-powers.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace PowersOfTenCache '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 108
    functionName: pluralimpl
    functionSourceFile: /src/icu/source/i18n/plurrule_impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace pluralimpl '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OrConstraint
      Src: /src/icu/source/i18n/plurrule_impl.h:338,1
    - Dst: add
      Src: /src/icu/source/i18n/plurrule_impl.h:341,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 344
    functionName: OrConstraint
    functionSourceFile: /src/icu/source/i18n/plurrule_impl.h
    functionUses: []
    functionsReached:
    - add
    - OrConstraint
    linkageType: ''
    returnType: class
    signature: 'class OrConstraint : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RuleChain
      Src: /src/icu/source/i18n/plurrule_impl.h:358,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 366
    functionName: RuleChain
    functionSourceFile: /src/icu/source/i18n/plurrule_impl.h
    functionUses: []
    functionsReached:
    - RuleChain
    linkageType: ''
    returnType: class
    signature: 'class RuleChain : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AndConstraint
      Src: /src/icu/source/i18n/plurrule_impl.h:323,1
    - Dst: add
      Src: /src/icu/source/i18n/plurrule_impl.h:326,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 329
    functionName: isNaN
    functionSourceFile: /src/icu/source/i18n/plurrule_impl.h
    functionUses: []
    functionsReached:
    - AndConstraint
    - add
    linkageType: ''
    returnType: bool
    signature: 'bool isNaN() const U_OVERRIDE; bool isInfinite() const U_OVERRIDE;
      bool hasIntegerValue() const U_OVERRIDE; bool isNanOrInfinity() const; // used
      in decimfmtimpl.cpp int32_t getVisibleFractionDigitCount() const; void init(double
      n, int32_t v, int64_t f); void init(double n); UBool quickInit(double n); //
      Try a fast-path only initialization, // return TRUE if successful. void adjustForMinFractionDigits(int32_t
      min); static int64_t getFractionalDigits(double n, int32_t v); static int32_t
      decimals(double n); double source; int32_t visibleDecimalDigitCount; int64_t
      decimalDigits; int64_t decimalDigitsWithoutTrailingZeros; int64_t intValue;
      UBool _hasIntegerValue; UBool isNegative; UBool _isNaN; UBool _isInfinite; };class
      AndConstraint : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PluralKeywordEnumeration
      Src: /src/icu/source/i18n/plurrule_impl.h:370,1
    - Dst: reset
      Src: /src/icu/source/i18n/plurrule_impl.h:375,1
    - Dst: count
      Src: /src/icu/source/i18n/plurrule_impl.h:376,1
    - Dst: snext
      Src: /src/icu/source/i18n/plurrule_impl.h:374,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 380
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 380
    functionName: PluralKeywordEnumeration
    functionSourceFile: /src/icu/source/i18n/plurrule_impl.h
    functionUses: []
    functionsReached:
    - reset
    - snext
    - PluralKeywordEnumeration
    - count
    linkageType: ''
    returnType: class
    signature: 'class PluralKeywordEnumeration : public StringEnumeration '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PluralRuleParser
      Src: /src/icu/source/i18n/plurrule_impl.h:148,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 183
    functionName: PluralRuleParser
    functionSourceFile: /src/icu/source/i18n/plurrule_impl.h
    functionUses: []
    functionsReached:
    - PluralRuleParser
    linkageType: ''
    returnType: class
    signature: 'class PluralRuleParser : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RequireDecimalSeparatorValidator
      Src: /src/icu/source/i18n/numparse_validators.h:50,1
    - Dst: MultiplierParseHandler
      Src: /src/icu/source/i18n/numparse_validators.h:76,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 90
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/numparse_validators.h
    functionUses: []
    functionsReached:
    - MultiplierParseHandler
    - RequireDecimalSeparatorValidator
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: NumberParseMatcher
    functionSourceFile: /src/icu/source/i18n/numparse_validators.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class ValidationMatcher : public NumberParseMatcher '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - const StringSegment
    - '&'
    argTypes:
    - StringSegment
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: smokeTest
    functionSourceFile: /src/icu/source/i18n/numparse_validators.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool smokeTest(const StringSegment&) const U_OVERRIDE '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: toString
    functionSourceFile: /src/icu/source/i18n/numparse_validators.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: 'UnicodeString toString() const U_OVERRIDE; private: bool fPatternHasDecimalSeparator;
      };class RequireNumberValidator : public ValidationMatcher, public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memcmp
      Src: /src/icu/source/i18n/dtptngen_impl.h:145,1
    - Dst: uprv_memcmp
      Src: /src/icu/source/i18n/dtptngen_impl.h:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 147
    functionName: getFirstChar
    functionSourceFile: /src/icu/source/i18n/dtptngen_impl.h
    functionUses: []
    functionsReached:
    - uprv_memcmp
    linkageType: ''
    returnType: UChar
    signature: 'UChar getFirstChar() const; inline UBool operator==(const SkeletonFields&
      other) const; inline UBool operator!=(const SkeletonFields& other) const; private:
      int8_t chars[UDATPG_FIELD_COUNT]; int8_t lengths[UDATPG_FIELD_COUNT]; };inline
      UBool SkeletonFields::operator==(const SkeletonFields& other) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 184
    functionName: getSkeleton
    functionSourceFile: /src/icu/source/i18n/dtptngen_impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: 'UnicodeString getSkeleton() const; UnicodeString getBaseSkeleton()
      const; UChar getFirstChar() const; // TODO: Why is this virtual, as well as
      the other destructors in this file? We don''t want // vtables when we don''t
      use class objects polymorphically. virtual ~PtnSkeleton(); };class PtnElem :
      public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: clear
    functionSourceFile: /src/icu/source/i18n/dtptngen_impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void clear() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DTRedundantEnumeration
      Src: /src/icu/source/i18n/dtptngen_impl.h:292,1
    - Dst: snext
      Src: /src/icu/source/i18n/dtptngen_impl.h:296,1
    - Dst: reset
      Src: /src/icu/source/i18n/dtptngen_impl.h:297,1
    - Dst: count
      Src: /src/icu/source/i18n/dtptngen_impl.h:298,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 304
    functionName: DTRedundantEnumeration
    functionSourceFile: /src/icu/source/i18n/dtptngen_impl.h
    functionUses: []
    functionsReached:
    - DTRedundantEnumeration
    - snext
    - reset
    - count
    linkageType: ''
    returnType: class
    signature: 'class DTRedundantEnumeration : public StringEnumeration '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FormatParser
      Src: /src/icu/source/i18n/dtptngen_impl.h:191,1
    - Dst: getCanonicalIndex
      Src: /src/icu/source/i18n/dtptngen_impl.h:197,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 210
    functionName: FormatParser
    functionSourceFile: /src/icu/source/i18n/dtptngen_impl.h
    functionUses: []
    functionsReached:
    - FormatParser
    - getCanonicalIndex
    linkageType: ''
    returnType: class
    signature: 'class FormatParser : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: other
    functionSourceFile: /src/icu/source/i18n/dtptngen_impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool SkeletonFields::operator!=(const SkeletonFields& other
      ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getCanonicalIndex
      Src: /src/icu/source/i18n/dtptngen_impl.h:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: getCanonicalIndex
    functionSourceFile: /src/icu/source/i18n/dtptngen_impl.h
    functionUses: []
    functionsReached:
    - getCanonicalIndex
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t getCanonicalIndex(const UnicodeString& s) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DistanceInfo
      Src: /src/icu/source/i18n/dtptngen_impl.h:217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 223
    functionName: DistanceInfo
    functionSourceFile: /src/icu/source/i18n/dtptngen_impl.h
    functionUses: []
    functionsReached:
    - DistanceInfo
    linkageType: ''
    returnType: class
    signature: 'class DistanceInfo : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - field
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: addMissing
    functionSourceFile: /src/icu/source/i18n/dtptngen_impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void addMissing(int32_t field) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - field
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: addExtra
    functionSourceFile: /src/icu/source/i18n/dtptngen_impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void addExtra(int32_t field) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 242
    functionName: DateTimeMatcher
    functionSourceFile: /src/icu/source/i18n/dtptngen_impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class DateTimeMatcher : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PatternMap
      Src: /src/icu/source/i18n/dtptngen_impl.h:247,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 258
    functionName: PatternMap
    functionSourceFile: /src/icu/source/i18n/dtptngen_impl.h
    functionUses: []
    functionsReached:
    - PatternMap
    linkageType: ''
    returnType: class
    signature: 'class PatternMap : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PatternMapIterator
      Src: /src/icu/source/i18n/dtptngen_impl.h:262,1
    - Dst: next
      Src: /src/icu/source/i18n/dtptngen_impl.h:267,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 273
    functionName: PatternMapIterator
    functionSourceFile: /src/icu/source/i18n/dtptngen_impl.h
    functionUses: []
    functionsReached:
    - next
    - PatternMapIterator
    linkageType: ''
    returnType: class
    signature: 'class PatternMapIterator : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DTSkeletonEnumeration
      Src: /src/icu/source/i18n/dtptngen_impl.h:277,1
    - Dst: count
      Src: /src/icu/source/i18n/dtptngen_impl.h:283,1
    - Dst: reset
      Src: /src/icu/source/i18n/dtptngen_impl.h:282,1
    - Dst: snext
      Src: /src/icu/source/i18n/dtptngen_impl.h:281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 288
    functionName: DTSkeletonEnumeration
    functionSourceFile: /src/icu/source/i18n/dtptngen_impl.h
    functionUses: []
    functionsReached:
    - DTSkeletonEnumeration
    - count
    - snext
    - reset
    linkageType: ''
    returnType: class
    signature: 'class DTSkeletonEnumeration : public StringEnumeration '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 91
    functionName: CharsetRecog_mbcs
    functionSourceFile: /src/icu/source/i18n/csrmbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_mbcs : public CharsetRecognizer '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 134
    functionName: CharsetRecog_mbcs
    functionSourceFile: /src/icu/source/i18n/csrmbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_euc : public CharsetRecog_mbcs '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 149
    functionName: CharsetRecog_euc_jp
    functionSourceFile: /src/icu/source/i18n/csrmbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_euc_jp : public CharsetRecog_euc '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: CharsetRecog_sjis
    functionSourceFile: /src/icu/source/i18n/csrmbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_sjis : public CharsetRecog_mbcs '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: CharsetRecog_euc_kr
    functionSourceFile: /src/icu/source/i18n/csrmbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_euc_kr : public CharsetRecog_euc '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 182
    functionName: CharsetRecog_big5
    functionSourceFile: /src/icu/source/i18n/csrmbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_big5 : public CharsetRecog_mbcs '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 201
    functionName: CharsetRecog_gb_18030
    functionSourceFile: /src/icu/source/i18n/csrmbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_gb_18030 : public CharsetRecog_mbcs '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - output
    - index
    - digit
    - symbols
    - field
    - status
    argTypes:
    - FormattedStringBuilder
    - int32_t
    - int8_t
    - DecimalFormatSymbols
    - Field
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: insertDigitFromSymbols
    functionSourceFile: /src/icu/source/i18n/number_utils.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t insertDigitFromSymbols(FormattedStringBuilder& output,
      int32_t index, int8_t digit, const DecimalFormatSymbols& symbols, Field field,
      UErrorCode& status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strcmp
      Src: /src/icu/source/i18n/number_utils.h:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - unit
    argTypes:
    - MeasureUnit
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: unitIsPercent
    functionSourceFile: /src/icu/source/i18n/number_utils.h
    functionUses: []
    functionsReached:
    - uprv_strcmp
    linkageType: ''
    returnType: bool
    signature: 'inline bool unitIsPercent(const MeasureUnit& unit) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strcmp
      Src: /src/icu/source/i18n/number_utils.h:48,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/i18n/number_utils.h:52,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/i18n/number_utils.h:56,1
    - Dst: orOtherFromString
      Src: /src/icu/source/i18n/number_utils.h:81,1
    - Dst: getStandardPlural
      Src: /src/icu/source/i18n/number_utils.h:99,1
    - Dst: U_FAILURE
      Src: /src/icu/source/i18n/number_utils.h:96,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/i18n/number_utils.h:60,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 105
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/number_utils.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - getStandardPlural
    - uprv_strcmp
    - orOtherFromString
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace number '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strcmp
      Src: /src/icu/source/i18n/number_utils.h:48,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/i18n/number_utils.h:52,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/i18n/number_utils.h:56,1
    - Dst: orOtherFromString
      Src: /src/icu/source/i18n/number_utils.h:81,1
    - Dst: getStandardPlural
      Src: /src/icu/source/i18n/number_utils.h:99,1
    - Dst: U_FAILURE
      Src: /src/icu/source/i18n/number_utils.h:96,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/i18n/number_utils.h:60,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 104
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/number_utils.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - getStandardPlural
    - uprv_strcmp
    - orOtherFromString
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strcmp
      Src: /src/icu/source/i18n/number_utils.h:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - unit
    argTypes:
    - MeasureUnit
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: unitIsCurrency
    functionSourceFile: /src/icu/source/i18n/number_utils.h
    functionUses: []
    functionsReached:
    - uprv_strcmp
    linkageType: ''
    returnType: bool
    signature: 'inline bool unitIsCurrency(const MeasureUnit& unit) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strcmp
      Src: /src/icu/source/i18n/number_utils.h:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - unit
    argTypes:
    - MeasureUnit
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: unitIsNoUnit
    functionSourceFile: /src/icu/source/i18n/number_utils.h
    functionUses: []
    functionsReached:
    - uprv_strcmp
    linkageType: ''
    returnType: bool
    signature: 'inline bool unitIsNoUnit(const MeasureUnit& unit) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strcmp
      Src: /src/icu/source/i18n/number_utils.h:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - unit
    argTypes:
    - MeasureUnit
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: unitIsPermille
    functionSourceFile: /src/icu/source/i18n/number_utils.h
    functionUses: []
    functionsReached:
    - uprv_strcmp
    linkageType: ''
    returnType: bool
    signature: 'inline bool unitIsPermille(const MeasureUnit& unit) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strcmp
      Src: /src/icu/source/i18n/number_utils.h:48,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/i18n/number_utils.h:52,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/i18n/number_utils.h:56,1
    - Dst: orOtherFromString
      Src: /src/icu/source/i18n/number_utils.h:81,1
    - Dst: getStandardPlural
      Src: /src/icu/source/i18n/number_utils.h:99,1
    - Dst: U_FAILURE
      Src: /src/icu/source/i18n/number_utils.h:96,1
    - Dst: uprv_strcmp
      Src: /src/icu/source/i18n/number_utils.h:60,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 102
    functionName: utils
    functionSourceFile: /src/icu/source/i18n/number_utils.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - getStandardPlural
    - uprv_strcmp
    - orOtherFromString
    linkageType: ''
    returnType: namespace
    signature: 'namespace utils '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: orOtherFromString
      Src: /src/icu/source/i18n/number_utils.h:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - rules
    - fdec
    argTypes:
    - PluralRules*
    - IFixedDecimal
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: getStandardPlural
    functionSourceFile: /src/icu/source/i18n/number_utils.h
    functionUses: []
    functionsReached:
    - orOtherFromString
    linkageType: ''
    returnType: StandardPlural
    signature: 'inline StandardPlural ::Form getStandardPlural(const PluralRules *rules,
      const IFixedDecimal &fdec) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getStandardPlural
      Src: /src/icu/source/i18n/number_utils.h:99,1
    - Dst: U_FAILURE
      Src: /src/icu/source/i18n/number_utils.h:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 4
    argNames:
    - rounder
    - rules
    - dq
    - status
    argTypes:
    - RoundingImpl
    - PluralRules*
    - DecimalQuantity
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 100
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 100
    functionName: getPluralSafe
    functionSourceFile: /src/icu/source/i18n/number_utils.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - getStandardPlural
    linkageType: ''
    returnType: StandardPlural
    signature: 'inline StandardPlural ::Form getPluralSafe( const RoundingImpl& rounder,
      const PluralRules* rules, const DecimalQuantity& dq, UErrorCode& status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apply
      Src: /src/icu/source/i18n/number_types.h:166,1
    - Dst: getParameters
      Src: /src/icu/source/i18n/number_types.h:214,1
    - Dst: Parameters
      Src: /src/icu/source/i18n/number_types.h:205,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 221
    functionName: hasCurrencySign
    functionSourceFile: /src/icu/source/i18n/number_types.h
    functionUses: []
    functionsReached:
    - Parameters
    - getParameters
    - apply
    linkageType: ''
    returnType: virtual
    signature: 'virtual bool hasCurrencySign() const = 0; virtual bool positiveHasPlusSign()
      const = 0; virtual bool hasNegativeSubpattern() const = 0; virtual bool negativeHasMinusSign()
      const = 0; virtual bool containsSymbolType(AffixPatternType, UErrorCode&) const
      = 0; /** * True if the pattern has a number placeholder like "0" or "#,##0.00";
      false if the pattern does not * have one. This is used in cases like compact
      notation, where the pattern replaces the entire * number instead of rendering
      the number. */ virtual bool hasBody() const = 0; }; /** * A Modifier is an object
      that can be passed through the formatting pipeline until it is finally applied
      to the string * builder. A Modifier usually contains a prefix and a suffix that
      are applied, but it could contain something else, * like a {@link com.ibm.icu.text.SimpleFormatter}
      pattern. * * A Modifier is usually immutable, except in cases such as {@link
      MutablePatternModifier}, which are mutable for performance * reasons. * * Exported
      as U_I18N_API because it is a base class for other exported types */ class U_I18N_API
      Modifier '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Parameters
      Src: /src/icu/source/i18n/number_types.h:205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 207
    functionName: getPrefixLength
    functionSourceFile: /src/icu/source/i18n/number_types.h
    functionUses: []
    functionsReached:
    - Parameters
    linkageType: ''
    returnType: virtual
    signature: 'virtual int32_t getPrefixLength() const = 0; /** * Returns the number
      of code points in the modifier, prefix plus suffix. */ virtual int32_t getCodePointCount()
      const = 0; /** * Whether this modifier is strong. If a modifier is strong, it
      should always be applied immediately and not allowed * to bubble up. With regard
      to padding, strong modifiers are considered to be on the inside of the prefix
      and * suffix. * * @return Whether the modifier is strong. */ virtual bool isStrong()
      const = 0; /** * Whether the modifier contains at least one occurrence of the
      given field. */ virtual bool containsField(UNumberFormatFields field) const
      = 0; /** * A fill-in for getParameters(). obj will always be set; if non-null,
      the other * two fields are also safe to read. */ struct U_I18N_API Parameters '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 238
    functionName: ModifierStore
    functionSourceFile: /src/icu/source/i18n/number_types.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API ModifierStore '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: processQuantity
      Src: /src/icu/source/i18n/number_types.h:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 274
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 274
    functionName: MicroPropsGenerator
    functionSourceFile: /src/icu/source/i18n/number_types.h
    functionUses: []
    functionsReached:
    - processQuantity
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API MicroPropsGenerator '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 292
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 292
    functionName: MultiplierProducer
    functionSourceFile: /src/icu/source/i18n/number_types.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class MultiplierProducer '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: nullify
    functionSourceFile: /src/icu/source/i18n/number_types.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void nullify() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 334
    functionName: isNull
    functionSourceFile: /src/icu/source/i18n/number_types.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool isNull() const '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: get
    functionSourceFile: /src/icu/source/i18n/number_types.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: 'T get(UErrorCode& status) const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apply
      Src: /src/icu/source/i18n/number_types.h:166,1
    - Dst: processQuantity
      Src: /src/icu/source/i18n/number_types.h:272,1
    - Dst: NullableValue
      Src: /src/icu/source/i18n/number_types.h:298,1
    - Dst: Parameters
      Src: /src/icu/source/i18n/number_types.h:205,1
    - Dst: getParameters
      Src: /src/icu/source/i18n/number_types.h:214,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 357
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 357
    functionName: AffixPatternProvider
    functionSourceFile: /src/icu/source/i18n/number_types.h
    functionUses: []
    functionsReached:
    - Parameters
    - getParameters
    - NullableValue
    - apply
    - processQuantity
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API AffixPatternProvider '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NullableValue
      Src: /src/icu/source/i18n/number_types.h:298,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 354
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 354
    functionName: NullableValue
    functionSourceFile: /src/icu/source/i18n/number_types.h
    functionUses: []
    functionsReached:
    - NullableValue
    linkageType: ''
    returnType: U_I18N_API
    signature: 'U_I18N_API NullableValue '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: NullableValue
    functionSourceFile: /src/icu/source/i18n/number_types.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: explicit
    signature: 'explicit NullableValue(const T& other) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: getNoError
    functionSourceFile: /src/icu/source/i18n/number_types.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: 'T getNoError() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - defaultValue
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 349
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 349
    functionName: getOrDefault
    functionSourceFile: /src/icu/source/i18n/number_types.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: 'T getOrDefault(T defaultValue) const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apply
      Src: /src/icu/source/i18n/number_types.h:166,1
    - Dst: processQuantity
      Src: /src/icu/source/i18n/number_types.h:272,1
    - Dst: NullableValue
      Src: /src/icu/source/i18n/number_types.h:298,1
    - Dst: Parameters
      Src: /src/icu/source/i18n/number_types.h:205,1
    - Dst: getParameters
      Src: /src/icu/source/i18n/number_types.h:214,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 358
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/number_types.h
    functionUses: []
    functionsReached:
    - Parameters
    - getParameters
    - NullableValue
    - apply
    - processQuantity
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnicodeString
      Src: /src/icu/source/i18n/numparse_types.h:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: toAliasedUnicodeString
    functionSourceFile: /src/icu/source/i18n/numparse_types.h
    functionUses: []
    functionsReached:
    - UnicodeString
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString toAliasedUnicodeString() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: isFlexible
    functionSourceFile: /src/icu/source/i18n/numparse_types.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual bool isFlexible() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompactUnicodeString
      Src: /src/icu/source/i18n/numparse_types.h:61,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/i18n/numparse_types.h:68,1
    - Dst: static_assert
      Src: /src/icu/source/i18n/numparse_types.h:62,1
    - Dst: UnicodeString
      Src: /src/icu/source/i18n/numparse_types.h:73,1
    - Dst: toAliasedUnicodeString
      Src: /src/icu/source/i18n/numparse_types.h:78,1
    - Dst: toString
      Src: /src/icu/source/i18n/numparse_types.h:245,1
    - Dst: addMatcher
      Src: /src/icu/source/i18n/numparse_types.h:261,1
    - Dst: match
      Src: /src/icu/source/i18n/numparse_types.h:216,1
    - Dst: NumberParseMatcher
      Src: /src/icu/source/i18n/numparse_types.h:249,1
    - Dst: postProcess
      Src: /src/icu/source/i18n/numparse_types.h:240,1
    - Dst: ParsedNumber
      Src: /src/icu/source/i18n/numparse_types.h:128,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 266
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/numparse_types.h
    functionUses: []
    functionsReached:
    - uprv_memcpy
    - postProcess
    - match
    - toAliasedUnicodeString
    - static_assert
    - ParsedNumber
    - toString
    - NumberParseMatcher
    - UnicodeString
    - addMatcher
    - CompactUnicodeString
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace numparse '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompactUnicodeString
      Src: /src/icu/source/i18n/numparse_types.h:61,1
    - Dst: uprv_memcpy
      Src: /src/icu/source/i18n/numparse_types.h:68,1
    - Dst: static_assert
      Src: /src/icu/source/i18n/numparse_types.h:62,1
    - Dst: UnicodeString
      Src: /src/icu/source/i18n/numparse_types.h:73,1
    - Dst: toAliasedUnicodeString
      Src: /src/icu/source/i18n/numparse_types.h:78,1
    - Dst: toString
      Src: /src/icu/source/i18n/numparse_types.h:245,1
    - Dst: addMatcher
      Src: /src/icu/source/i18n/numparse_types.h:261,1
    - Dst: match
      Src: /src/icu/source/i18n/numparse_types.h:216,1
    - Dst: NumberParseMatcher
      Src: /src/icu/source/i18n/numparse_types.h:249,1
    - Dst: postProcess
      Src: /src/icu/source/i18n/numparse_types.h:240,1
    - Dst: ParsedNumber
      Src: /src/icu/source/i18n/numparse_types.h:128,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 265
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/numparse_types.h
    functionUses: []
    functionsReached:
    - uprv_memcpy
    - postProcess
    - match
    - toAliasedUnicodeString
    - static_assert
    - ParsedNumber
    - toString
    - NumberParseMatcher
    - UnicodeString
    - addMatcher
    - CompactUnicodeString
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsedNumber
      Src: /src/icu/source/i18n/numparse_types.h:128,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 170
    functionName: ParsedNumber
    functionSourceFile: /src/icu/source/i18n/numparse_types.h
    functionUses: []
    functionsReached:
    - ParsedNumber
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API ParsedNumber '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memcpy
      Src: /src/icu/source/i18n/numparse_types.h:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - length
    - + 1
    argTypes:
    - text
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: fBuffer
    functionSourceFile: /src/icu/source/i18n/numparse_types.h
    functionUses: []
    functionsReached:
    - uprv_memcpy
    linkageType: ''
    returnType: CompactUnicodeString(const UnicodeString& text)
    signature: 'CompactUnicodeString(const UnicodeString& text) : fBuffer(text.length()
      + 1) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match
      Src: /src/icu/source/i18n/numparse_types.h:216,1
    - Dst: NumberParseMatcher
      Src: /src/icu/source/i18n/numparse_types.h:249,1
    - Dst: postProcess
      Src: /src/icu/source/i18n/numparse_types.h:240,1
    - Dst: toString
      Src: /src/icu/source/i18n/numparse_types.h:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 250
    functionName: NumberParseMatcher
    functionSourceFile: /src/icu/source/i18n/numparse_types.h
    functionUses: []
    functionsReached:
    - toString
    - postProcess
    - NumberParseMatcher
    - match
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API NumberParseMatcher '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addMatcher
      Src: /src/icu/source/i18n/numparse_types.h:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 262
    functionName: MutableMatcherCollection
    functionSourceFile: /src/icu/source/i18n/numparse_types.h
    functionUses: []
    functionsReached:
    - addMatcher
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API MutableMatcherCollection '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TransliterationRule
      Src: /src/icu/source/i18n/rbt_rule.h:195,1
    - Dst: toRule
      Src: /src/icu/source/i18n/rbt_rule.h:283,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 303
    functionName: TransliterationRule
    functionSourceFile: /src/icu/source/i18n/rbt_rule.h
    functionUses: []
    functionsReached:
    - TransliterationRule
    - toRule
    linkageType: ''
    returnType: class
    signature: 'class TransliterationRule : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CodePointMatcher
      Src: /src/icu/source/i18n/numparse_affixes.h:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 47
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/numparse_affixes.h
    functionUses: []
    functionsReached:
    - CodePointMatcher
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace numparse '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AffixMatcherWarehouse
      Src: /src/icu/source/i18n/numparse_affixes.h:196,1
    - Dst: AffixMatcherWarehouse
      Src: /src/icu/source/i18n/numparse_affixes.h:198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 216
    functionName: toString
    functionSourceFile: /src/icu/source/i18n/numparse_affixes.h
    functionUses: []
    functionsReached:
    - AffixMatcherWarehouse
    linkageType: ''
    returnType: UnicodeString
    signature: 'UnicodeString toString() const override; private: AffixPatternMatcher*
      fPrefix; AffixPatternMatcher* fSuffix; result_flags_t fFlags; }; /** * A C++-only
      class to retain ownership of the AffixMatchers needed for parsing. */ class
      AffixMatcherWarehouse '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AffixMatcher
      Src: /src/icu/source/i18n/numparse_affixes.h:170,1
    - Dst: AffixMatcher
      Src: /src/icu/source/i18n/numparse_affixes.h:172,1
    - Dst: AffixMatcherWarehouse
      Src: /src/icu/source/i18n/numparse_affixes.h:198,1
    - Dst: AffixMatcherWarehouse
      Src: /src/icu/source/i18n/numparse_affixes.h:196,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 219
    functionName: getPattern
    functionSourceFile: /src/icu/source/i18n/numparse_affixes.h
    functionUses: []
    functionsReached:
    - AffixMatcherWarehouse
    - AffixMatcher
    linkageType: ''
    returnType: UnicodeString
    signature: 'UnicodeString getPattern() const; bool operator==(const AffixPatternMatcher&
      other) const; private: CompactUnicodeString<4> fPattern; AffixPatternMatcher(MatcherArray&
      matchers, int32_t matchersLen, const UnicodeString& pattern); friend class AffixPatternMatcherBuilder;
      };class AffixMatcher : public NumberParseMatcher, public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CodePointMatcher
      Src: /src/icu/source/i18n/numparse_affixes.h:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 46
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/numparse_affixes.h
    functionUses: []
    functionsReached:
    - CodePointMatcher
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TransliteratorParser
      Src: /src/icu/source/i18n/rbt_pars.h:139,1
    - Dst: TransliteratorParser
      Src: /src/icu/source/i18n/rbt_pars.h:144,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 335
    functionName: TransliteratorParser
    functionSourceFile: /src/icu/source/i18n/rbt_pars.h
    functionUses: []
    functionsReached:
    - TransliteratorParser
    linkageType: ''
    returnType: class
    signature: 'class TransliteratorParser : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U_ASSERT
      Src: /src/icu/source/i18n/uspoof_impl.h:185,1
    - Dst: U_ASSERT
      Src: /src/icu/source/i18n/uspoof_impl.h:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 189
    functionName: ConfusableDataUtils
    functionSourceFile: /src/icu/source/i18n/uspoof_impl.h
    functionUses: []
    functionsReached:
    - U_ASSERT
    linkageType: ''
    returnType: class
    signature: 'class ConfusableDataUtils '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: keyToLength
    functionSourceFile: /src/icu/source/i18n/uspoof_impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline static int32_t keyToLength(int32_t key) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U_ASSERT
      Src: /src/icu/source/i18n/uspoof_impl.h:185,1
    - Dst: U_ASSERT
      Src: /src/icu/source/i18n/uspoof_impl.h:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - codePoint
    - length
    argTypes:
    - UChar32
    - int32_t
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: codePointAndLengthToKey
    functionSourceFile: /src/icu/source/i18n/uspoof_impl.h
    functionUses: []
    functionsReached:
    - U_ASSERT
    linkageType: ''
    returnType: int32_t
    signature: 'inline static int32_t codePointAndLengthToKey(UChar32 codePoint, int32_t
      length) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 160
    functionName: skeleton
    functionSourceFile: /src/icu/source/i18n/number_skeletons.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace skeleton '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 300
    functionName: GeneratorHelpers
    functionSourceFile: /src/icu/source/i18n/number_skeletons.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class GeneratorHelpers '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 323
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 323
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/number_skeletons.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace number '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 257
    functionName: blueprint_helpers
    functionSourceFile: /src/icu/source/i18n/number_skeletons.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace blueprint_helpers '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 203
    functionName: enum_to_stem_string
    functionSourceFile: /src/icu/source/i18n/number_skeletons.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace enum_to_stem_string '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 322
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 322
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/number_skeletons.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 185
    functionName: stem_to_object
    functionSourceFile: /src/icu/source/i18n/number_skeletons.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace stem_to_object '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flags_
      Src: /src/icu/source/i18n/double-conversion-double-to-string.h:136,1
    - Dst: ToShortestIeeeNumber
      Src: /src/icu/source/i18n/double-conversion-double-to-string.h:180,1
    - Dst: DOUBLE_CONVERSION_DISALLOW_IMPLICIT_CONSTRUCTORS
      Src: /src/icu/source/i18n/double-conversion-double-to-string.h:409,1
    - Dst: ToShortestIeeeNumber
      Src: /src/icu/source/i18n/double-conversion-double-to-string.h:185,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 410
    functionName: double_conversion
    functionSourceFile: /src/icu/source/i18n/double-conversion-double-to-string.h
    functionUses: []
    functionsReached:
    - DOUBLE_CONVERSION_DISALLOW_IMPLICIT_CONSTRUCTORS
    - flags_
    - ToShortestIeeeNumber
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace double_conversion '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flags_
      Src: /src/icu/source/i18n/double-conversion-double-to-string.h:136,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 151
    functionName: DoubleToStringConverter
    functionSourceFile: /src/icu/source/i18n/double-conversion-double-to-string.h
    functionUses: []
    functionsReached:
    - flags_
    linkageType: ''
    returnType: class
    signature: 'class DoubleToStringConverter '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToShortestIeeeNumber
      Src: /src/icu/source/i18n/double-conversion-double-to-string.h:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - value
    - result_builder
    argTypes:
    - double
    - StringBuilder*
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: ToShortest
    functionSourceFile: /src/icu/source/i18n/double-conversion-double-to-string.h
    functionUses: []
    functionsReached:
    - ToShortestIeeeNumber
    linkageType: ''
    returnType: bool
    signature: 'bool ToShortest(double value, StringBuilder* result_builder) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToShortestIeeeNumber
      Src: /src/icu/source/i18n/double-conversion-double-to-string.h:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - value
    - result_builder
    argTypes:
    - float
    - StringBuilder*
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: ToShortestSingle
    functionSourceFile: /src/icu/source/i18n/double-conversion-double-to-string.h
    functionUses: []
    functionsReached:
    - ToShortestIeeeNumber
    linkageType: ''
    returnType: bool
    signature: 'bool ToShortestSingle(float value, StringBuilder* result_builder)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: get
    functionSourceFile: /src/icu/source/i18n/sharedbreakiterator.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: BreakIterator*
    signature: 'BreakIterator *get() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 61
    functionName: double_conversion
    functionSourceFile: /src/icu/source/i18n/double-conversion-strtod.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace double_conversion '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:82,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:84,1
    - Dst: value
      Src: /src/icu/source/i18n/double-conversion-ieee.h:82,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:83,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 95
    functionName: AsNormalizedDiyFp
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - Exponent
    - DiyFp
    - Significand
    - DOUBLE_CONVERSION_ASSERT
    - value
    linkageType: ''
    returnType: DiyFp
    signature: 'DiyFp AsNormalizedDiyFp() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: IsSpecial
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - AsUint64
    linkageType: ''
    returnType: bool
    signature: 'bool IsSpecial() const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsDenormal
      Src: /src/icu/source/i18n/double-conversion-ieee.h:303,1
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 309
    functionName: Exponent
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - IsDenormal
    - AsUint32
    linkageType: ''
    returnType: int
    signature: 'int Exponent() const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:312,1
    - Dst: IsDenormal
      Src: /src/icu/source/i18n/double-conversion-ieee.h:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 319
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 319
    functionName: Significand
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - IsDenormal
    - AsUint32
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t Significand() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: Sign
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - AsUint32
    linkageType: ''
    returnType: int
    signature: 'int Sign() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: d64_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - d64
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Double
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - d64_
    linkageType: ''
    returnType: explicit
    signature: 'explicit Double(uint64_t d64) : d64_(d64) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:75,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:75,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:76,1
    - Dst: IsSpecial
      Src: /src/icu/source/i18n/double-conversion-ieee.h:76,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:77,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:77,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: AsDiyFp
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - Exponent
    - DiyFp
    - Significand
    - DOUBLE_CONVERSION_ASSERT
    - IsSpecial
    - Sign
    linkageType: ''
    returnType: DiyFp
    signature: 'DiyFp AsDiyFp() const '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Infinity
      Src: /src/icu/source/i18n/double-conversion-ieee.h:117,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:121,1
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:119,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:118,1
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: PreviousDouble
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - Infinity
    - Double
    - Sign
    - Significand
    linkageType: ''
    returnType: double
    signature: 'double PreviousDouble() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: IsDenormal
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - AsUint64
    linkageType: ''
    returnType: bool
    signature: 'bool IsDenormal() const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsDenormal
      Src: /src/icu/source/i18n/double-conversion-ieee.h:127,1
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: Exponent
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - IsDenormal
    - AsUint64
    linkageType: ''
    returnType: int
    signature: 'int Exponent() const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:136,1
    - Dst: IsDenormal
      Src: /src/icu/source/i18n/double-conversion-ieee.h:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: Significand
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - IsDenormal
    - AsUint64
    linkageType: ''
    returnType: uint64_t
    signature: 'uint64_t Significand() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 300
    functionName: AsUint32
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t AsUint32() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: IsSpecial
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - AsUint32
    linkageType: ''
    returnType: bool
    signature: 'bool IsSpecial() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: d64_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:70,1
    - Dst: DiyFpToUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - diy_fp
    argTypes:
    - DiyFp
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: Double
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - d64_
    - DiyFpToUint64
    linkageType: ''
    returnType: explicit
    signature: 'explicit Double(DiyFp diy_fp) : d64_(DiyFpToUint64(diy_fp)) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:187,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:194,1
    - Dst: Normalize
      Src: /src/icu/source/i18n/double-conversion-ieee.h:189,1
    - Dst: value
      Src: /src/icu/source/i18n/double-conversion-ieee.h:187,1
    - Dst: LowerBoundaryIsCloser
      Src: /src/icu/source/i18n/double-conversion-ieee.h:191,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:189,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 2
    argNames:
    - out_m_minus
    - out_m_plus
    argTypes:
    - DiyFp*
    - DiyFp*
    constantsTouched: []
    func_position:
      end: 200
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 200
    functionName: NormalizedBoundaries
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - Normalize
    - DiyFp
    - LowerBoundaryIsCloser
    - DOUBLE_CONVERSION_ASSERT
    - value
    linkageType: ''
    returnType: void
    signature: 'void NormalizedBoundaries(DiyFp* out_m_minus, DiyFp* out_m_plus) const '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - diy_fp
    argTypes:
    - DiyFp
    constantsTouched: []
    func_position:
      end: 271
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 271
    functionName: DiyFpToUint64
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: 'static uint64_t DiyFpToUint64(DiyFp diy_fp) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: d32_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:286,1
    - Dst: float_to_uint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: Single
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - d32_
    - float_to_uint32
    linkageType: ''
    returnType: explicit
    signature: 'explicit Single(float f) : d32_(float_to_uint32(f)) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint32_to_float
      Src: /src/icu/source/i18n/double-conversion-ieee.h:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 391
    functionName: value
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - uint32_to_float
    linkageType: ''
    returnType: float
    signature: 'float value() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: d32_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - d32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: Single
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - d32_
    linkageType: ''
    returnType: explicit
    signature: 'explicit Single(uint32_t d32) : d32_(d32) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:356,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:363,1
    - Dst: Normalize
      Src: /src/icu/source/i18n/double-conversion-ieee.h:358,1
    - Dst: value
      Src: /src/icu/source/i18n/double-conversion-ieee.h:356,1
    - Dst: LowerBoundaryIsCloser
      Src: /src/icu/source/i18n/double-conversion-ieee.h:360,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:358,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:361,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 2
    argNames:
    - out_m_minus
    - out_m_plus
    argTypes:
    - DiyFp*
    - DiyFp*
    constantsTouched: []
    func_position:
      end: 369
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 369
    functionName: NormalizedBoundaries
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - Normalize
    - DiyFp
    - LowerBoundaryIsCloser
    - DOUBLE_CONVERSION_ASSERT
    - value
    linkageType: ''
    returnType: void
    signature: 'void NormalizedBoundaries(DiyFp* out_m_minus, DiyFp* out_m_plus) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Single
      Src: /src/icu/source/i18n/double-conversion-ieee.h:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 399
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 399
    functionName: NaN
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - Single
    linkageType: ''
    returnType: float
    signature: 'static float NaN() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: double_to_uint64
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: 'static uint64_t double_to_uint64(double d) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: AsUint64
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: 'uint64_t AsUint64() const '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:104,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:105,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:109,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:105,1
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:110,1
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:112,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: NextDouble
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - Significand
    - Double
    - Sign
    linkageType: ''
    returnType: double
    signature: 'double NextDouble() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: IsNan
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - AsUint64
    linkageType: ''
    returnType: bool
    signature: 'bool IsNan() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: Sign
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - AsUint64
    linkageType: ''
    returnType: int
    signature: 'int Sign() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:178,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:178,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:179,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:179,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: UpperBoundary
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - Exponent
    - DiyFp
    - Significand
    - DOUBLE_CONVERSION_ASSERT
    - Sign
    linkageType: ''
    returnType: DiyFp
    signature: 'DiyFp UpperBoundary() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:211,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 213
    functionName: LowerBoundaryIsCloser
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - AsUint64
    - Exponent
    linkageType: ''
    returnType: bool
    signature: 'bool LowerBoundaryIsCloser() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint64_to_double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: value
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - uint64_to_double
    linkageType: ''
    returnType: double
    signature: 'double value() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d64
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: uint64_to_double
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: 'static double uint64_to_double(uint64_t d64) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - float
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: float_to_uint32
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t float_to_uint32(float f) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: d64_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:67,1
    - Dst: double_to_uint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Double
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - d64_
    - double_to_uint64
    linkageType: ''
    returnType: explicit
    signature: 'explicit Double(double d) : d64_(double_to_uint64(d)) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: IsDenormal
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - AsUint32
    linkageType: ''
    returnType: bool
    signature: 'bool IsDenormal() const '
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:104,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:105,1
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:159,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:194,1
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:112,1
    - Dst: DOUBLE_CONVERSION_DISALLOW_COPY_AND_ASSIGN
      Src: /src/icu/source/i18n/double-conversion-ieee.h:273,1
    - Dst: d64_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:67,1
    - Dst: DOUBLE_CONVERSION_UINT64_2PART_C
      Src: /src/icu/source/i18n/double-conversion-ieee.h:57,1
    - Dst: value
      Src: /src/icu/source/i18n/double-conversion-ieee.h:82,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:94,1
    - Dst: IsSpecial
      Src: /src/icu/source/i18n/double-conversion-ieee.h:76,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:83,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:105,1
    - Dst: DOUBLE_CONVERSION_UINT64_2PART_C
      Src: /src/icu/source/i18n/double-conversion-ieee.h:241,1
    - Dst: DOUBLE_CONVERSION_UINT64_2PART_C
      Src: /src/icu/source/i18n/double-conversion-ieee.h:58,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:178,1
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:110,1
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:136,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:187,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:212,1
    - Dst: double_to_uint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:67,1
    - Dst: DiyFpToUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:70,1
    - Dst: DOUBLE_CONVERSION_UINT64_2PART_C
      Src: /src/icu/source/i18n/double-conversion-ieee.h:59,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:77,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:82,1
    - Dst: value
      Src: /src/icu/source/i18n/double-conversion-ieee.h:187,1
    - Dst: Normalize
      Src: /src/icu/source/i18n/double-conversion-ieee.h:189,1
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:211,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:77,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:179,1
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:154,1
    - Dst: DOUBLE_CONVERSION_UINT64_2PART_C
      Src: /src/icu/source/i18n/double-conversion-ieee.h:60,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:75,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:118,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:84,1
    - Dst: d64_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:66,1
    - Dst: IsDenormal
      Src: /src/icu/source/i18n/double-conversion-ieee.h:127,1
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:236,1
    - Dst: d64_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:70,1
    - Dst: LowerBoundaryIsCloser
      Src: /src/icu/source/i18n/double-conversion-ieee.h:191,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:76,1
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:171,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:189,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:192,1
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:66,1
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:129,1
    - Dst: DOUBLE_CONVERSION_UINT64_2PART_C
      Src: /src/icu/source/i18n/double-conversion-ieee.h:242,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:75,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:109,1
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:147,1
    - Dst: uint64_to_double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:215,1
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:232,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:77,1
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:165,1
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:122,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:179,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:179,1
    - Dst: Infinity
      Src: /src/icu/source/i18n/double-conversion-ieee.h:117,1
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:119,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:121,1
    - Dst: IsDenormal
      Src: /src/icu/source/i18n/double-conversion-ieee.h:138,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:178,1
    - Dst: d64_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:68,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 229
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 274
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 274
    functionName: Double
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - IsDenormal
    - Normalize
    - DOUBLE_CONVERSION_UINT64_2PART_C
    - d64_
    - Significand
    - double_to_uint64
    - uint64_to_double
    - Double
    - DOUBLE_CONVERSION_DISALLOW_COPY_AND_ASSIGN
    - DOUBLE_CONVERSION_ASSERT
    - Exponent
    - DiyFp
    - AsUint64
    - IsSpecial
    - Sign
    - Infinity
    - DiyFpToUint64
    - LowerBoundaryIsCloser
    - value
    linkageType: ''
    returnType: class
    signature: 'class Double '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 344
    functionName: IsInfinite
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - AsUint32
    linkageType: ''
    returnType: bool
    signature: 'bool IsInfinite() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 338
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 338
    functionName: IsNan
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - AsUint32
    linkageType: ''
    returnType: bool
    signature: 'bool IsNan() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d32
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: uint32_to_float
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: 'static float uint32_to_float(uint32_t d32) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: IsInfinite
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - AsUint64
    linkageType: ''
    returnType: bool
    signature: 'bool IsInfinite() const '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - order
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: SignificandSizeForOrderOfMagnitude
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int SignificandSizeForOrderOfMagnitude(int order) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: NaN
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - Double
    linkageType: ''
    returnType: double
    signature: 'static double NaN() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:292,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:293,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:294,1
    - Dst: IsSpecial
      Src: /src/icu/source/i18n/double-conversion-ieee.h:293,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:292,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:294,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: AsDiyFp
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - Exponent
    - DiyFp
    - Significand
    - DOUBLE_CONVERSION_ASSERT
    - IsSpecial
    - Sign
    linkageType: ''
    returnType: DiyFp
    signature: 'DiyFp AsDiyFp() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:374,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:375,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:375,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:375,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 376
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 376
    functionName: UpperBoundary
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - Exponent
    - DiyFp
    - Significand
    - DOUBLE_CONVERSION_ASSERT
    - Sign
    linkageType: ''
    returnType: DiyFp
    signature: 'DiyFp UpperBoundary() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:387,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 389
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 389
    functionName: LowerBoundaryIsCloser
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - AsUint32
    - Exponent
    linkageType: ''
    returnType: bool
    signature: 'bool LowerBoundaryIsCloser() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Single
      Src: /src/icu/source/i18n/double-conversion-ieee.h:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 395
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 395
    functionName: Infinity
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - Single
    linkageType: ''
    returnType: float
    signature: 'static float Infinity() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:294,1
    - Dst: IsDenormal
      Src: /src/icu/source/i18n/double-conversion-ieee.h:303,1
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:330,1
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:341,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:356,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:363,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:375,1
    - Dst: d32_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:287,1
    - Dst: Single
      Src: /src/icu/source/i18n/double-conversion-ieee.h:394,1
    - Dst: Single
      Src: /src/icu/source/i18n/double-conversion-ieee.h:285,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:293,1
    - Dst: IsSpecial
      Src: /src/icu/source/i18n/double-conversion-ieee.h:293,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:294,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:294,1
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:323,1
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:347,1
    - Dst: value
      Src: /src/icu/source/i18n/double-conversion-ieee.h:356,1
    - Dst: Normalize
      Src: /src/icu/source/i18n/double-conversion-ieee.h:358,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:375,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:292,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:292,1
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:305,1
    - Dst: IsDenormal
      Src: /src/icu/source/i18n/double-conversion-ieee.h:314,1
    - Dst: LowerBoundaryIsCloser
      Src: /src/icu/source/i18n/double-conversion-ieee.h:360,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:374,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:374,1
    - Dst: DOUBLE_CONVERSION_DISALLOW_COPY_AND_ASSIGN
      Src: /src/icu/source/i18n/double-conversion-ieee.h:410,1
    - Dst: d32_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:286,1
    - Dst: float_to_uint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:286,1
    - Dst: d32_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:285,1
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:312,1
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:335,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:358,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:361,1
    - Dst: uint32_to_float
      Src: /src/icu/source/i18n/double-conversion-ieee.h:391,1
    - Dst: Single
      Src: /src/icu/source/i18n/double-conversion-ieee.h:398,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:388,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:375,1
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:387,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 131
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 411
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 411
    functionName: Single
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - Single
    - IsDenormal
    - uint32_to_float
    - Normalize
    - LowerBoundaryIsCloser
    - Exponent
    - DiyFp
    - AsUint32
    - Significand
    - DOUBLE_CONVERSION_DISALLOW_COPY_AND_ASSIGN
    - d32_
    - DOUBLE_CONVERSION_ASSERT
    - value
    - IsSpecial
    - float_to_uint32
    - Sign
    linkageType: ''
    returnType: class
    signature: 'class Single '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:104,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:105,1
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:159,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:194,1
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:112,1
    - Dst: DOUBLE_CONVERSION_DISALLOW_COPY_AND_ASSIGN
      Src: /src/icu/source/i18n/double-conversion-ieee.h:273,1
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:330,1
    - Dst: d64_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:67,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:363,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:375,1
    - Dst: d32_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:287,1
    - Dst: DOUBLE_CONVERSION_UINT64_2PART_C
      Src: /src/icu/source/i18n/double-conversion-ieee.h:57,1
    - Dst: value
      Src: /src/icu/source/i18n/double-conversion-ieee.h:82,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:94,1
    - Dst: Single
      Src: /src/icu/source/i18n/double-conversion-ieee.h:285,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:294,1
    - Dst: IsSpecial
      Src: /src/icu/source/i18n/double-conversion-ieee.h:76,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:83,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:105,1
    - Dst: DOUBLE_CONVERSION_UINT64_2PART_C
      Src: /src/icu/source/i18n/double-conversion-ieee.h:241,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:292,1
    - Dst: Normalize
      Src: /src/icu/source/i18n/double-conversion-ieee.h:358,1
    - Dst: float_to_uint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:286,1
    - Dst: DOUBLE_CONVERSION_UINT64_2PART_C
      Src: /src/icu/source/i18n/double-conversion-ieee.h:58,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:178,1
    - Dst: Single
      Src: /src/icu/source/i18n/double-conversion-ieee.h:398,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:361,1
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:110,1
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:136,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:187,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:212,1
    - Dst: IsDenormal
      Src: /src/icu/source/i18n/double-conversion-ieee.h:303,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:356,1
    - Dst: double_to_uint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:67,1
    - Dst: DiyFpToUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:70,1
    - Dst: DOUBLE_CONVERSION_UINT64_2PART_C
      Src: /src/icu/source/i18n/double-conversion-ieee.h:59,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:77,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:82,1
    - Dst: value
      Src: /src/icu/source/i18n/double-conversion-ieee.h:187,1
    - Dst: Normalize
      Src: /src/icu/source/i18n/double-conversion-ieee.h:189,1
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:211,1
    - Dst: IsSpecial
      Src: /src/icu/source/i18n/double-conversion-ieee.h:293,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:294,1
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:323,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:77,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:179,1
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:305,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:374,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:375,1
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:154,1
    - Dst: DOUBLE_CONVERSION_UINT64_2PART_C
      Src: /src/icu/source/i18n/double-conversion-ieee.h:60,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:75,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:118,1
    - Dst: uint32_to_float
      Src: /src/icu/source/i18n/double-conversion-ieee.h:391,1
    - Dst: Single
      Src: /src/icu/source/i18n/double-conversion-ieee.h:394,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:84,1
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:341,1
    - Dst: d64_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:66,1
    - Dst: IsDenormal
      Src: /src/icu/source/i18n/double-conversion-ieee.h:127,1
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:236,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:293,1
    - Dst: d64_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:70,1
    - Dst: LowerBoundaryIsCloser
      Src: /src/icu/source/i18n/double-conversion-ieee.h:191,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:76,1
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:171,1
    - Dst: IsDenormal
      Src: /src/icu/source/i18n/double-conversion-ieee.h:314,1
    - Dst: LowerBoundaryIsCloser
      Src: /src/icu/source/i18n/double-conversion-ieee.h:360,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:374,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:189,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:192,1
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:66,1
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:129,1
    - Dst: DOUBLE_CONVERSION_UINT64_2PART_C
      Src: /src/icu/source/i18n/double-conversion-ieee.h:242,1
    - Dst: d32_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:285,1
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:335,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:358,1
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:347,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-ieee.h:75,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:109,1
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:147,1
    - Dst: uint64_to_double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:215,1
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:232,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:294,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:77,1
    - Dst: AsUint64
      Src: /src/icu/source/i18n/double-conversion-ieee.h:165,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:375,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:388,1
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:122,1
    - Dst: Exponent
      Src: /src/icu/source/i18n/double-conversion-ieee.h:179,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:292,1
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:387,1
    - Dst: value
      Src: /src/icu/source/i18n/double-conversion-ieee.h:356,1
    - Dst: DOUBLE_CONVERSION_DISALLOW_COPY_AND_ASSIGN
      Src: /src/icu/source/i18n/double-conversion-ieee.h:410,1
    - Dst: d32_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:286,1
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-ieee.h:179,1
    - Dst: Infinity
      Src: /src/icu/source/i18n/double-conversion-ieee.h:117,1
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:119,1
    - Dst: Significand
      Src: /src/icu/source/i18n/double-conversion-ieee.h:121,1
    - Dst: IsDenormal
      Src: /src/icu/source/i18n/double-conversion-ieee.h:138,1
    - Dst: Sign
      Src: /src/icu/source/i18n/double-conversion-ieee.h:178,1
    - Dst: AsUint32
      Src: /src/icu/source/i18n/double-conversion-ieee.h:312,1
    - Dst: d64_
      Src: /src/icu/source/i18n/double-conversion-ieee.h:68,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 373
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 413
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 413
    functionName: double_conversion
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - IsDenormal
    - Normalize
    - DOUBLE_CONVERSION_UINT64_2PART_C
    - AsUint32
    - d64_
    - Significand
    - d32_
    - float_to_uint32
    - double_to_uint64
    - uint64_to_double
    - Double
    - DOUBLE_CONVERSION_DISALLOW_COPY_AND_ASSIGN
    - DOUBLE_CONVERSION_ASSERT
    - Single
    - uint32_to_float
    - Exponent
    - DiyFp
    - AsUint64
    - IsSpecial
    - Sign
    - Infinity
    - DiyFpToUint64
    - LowerBoundaryIsCloser
    - value
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace double_conversion '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Double
      Src: /src/icu/source/i18n/double-conversion-ieee.h:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: Infinity
    functionSourceFile: /src/icu/source/i18n/double-conversion-ieee.h
    functionUses: []
    functionsReached:
    - Double
    linkageType: ''
    returnType: double
    signature: 'static double Infinity() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensureAppendCapacity
      Src: /src/icu/source/i18n/collationiterator.h:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ce
    - errorCode
    argTypes:
    - int64_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: append
    functionSourceFile: /src/icu/source/i18n/collationiterator.h
    functionUses: []
    functionsReached:
    - ensureAppendCapacity
    linkageType: ''
    returnType: void
    signature: 'inline void append(int64_t ce, UErrorCode &errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - i
    - ce
    argTypes:
    - int32_t
    - int64_t
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: set
    functionSourceFile: /src/icu/source/i18n/collationiterator.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'inline int64_t set(int32_t i, int64_t ce) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: getCEs
    functionSourceFile: /src/icu/source/i18n/collationiterator.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t*
    signature: 'const int64_t *getCEs() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ce
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: setCurrentCE
    functionSourceFile: /src/icu/source/i18n/collationiterator.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setCurrentCE(int64_t ce) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: getCEsLength
    functionSourceFile: /src/icu/source/i18n/collationiterator.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t getCEsLength() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: getCEs
    functionSourceFile: /src/icu/source/i18n/collationiterator.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t*
    signature: 'const int64_t *getCEs() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: clearCEs
    functionSourceFile: /src/icu/source/i18n/collationiterator.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void clearCEs() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clearCEs
      Src: /src/icu/source/i18n/collationiterator.h:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: clearCEsIfNoneRemaining
    functionSourceFile: /src/icu/source/i18n/collationiterator.h
    functionUses: []
    functionsReached:
    - clearCEs
    linkageType: ''
    returnType: void
    signature: 'void clearCEsIfNoneRemaining() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensureAppendCapacity
      Src: /src/icu/source/i18n/collationiterator.h:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - errorCode
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 82
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 82
    functionName: incLength
    functionSourceFile: /src/icu/source/i18n/collationiterator.h
    functionUses: []
    functionsReached:
    - ensureAppendCapacity
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool incLength(UErrorCode &errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - i
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: get
    functionSourceFile: /src/icu/source/i18n/collationiterator.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'inline int64_t get(int32_t i) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ce
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: appendUnsafe
    functionSourceFile: /src/icu/source/i18n/collationiterator.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void appendUnsafe(int64_t ce) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: other
    functionSourceFile: /src/icu/source/i18n/collationiterator.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool operator!=(const CollationIterator & other ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: getCE
    functionSourceFile: /src/icu/source/i18n/collationiterator.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'inline int64_t getCE(int32_t i) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 236
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/number_affixutils.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace number '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: SymbolProvider
    functionSourceFile: /src/icu/source/i18n/number_affixutils.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API SymbolProvider '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 233
    functionName: AffixUtils
    functionSourceFile: /src/icu/source/i18n/number_affixutils.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API AffixUtils '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 234
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/number_affixutils.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flags_
      Src: /src/icu/source/i18n/double-conversion-string-to-double.h:186,1
    - Dst: StringToIeee
      Src: /src/icu/source/i18n/double-conversion-string-to-double.h:229,1
    - Dst: DOUBLE_CONVERSION_DISALLOW_IMPLICIT_CONSTRUCTORS
      Src: /src/icu/source/i18n/double-conversion-string-to-double.h:234,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 237
    functionName: double_conversion
    functionSourceFile: /src/icu/source/i18n/double-conversion-string-to-double.h
    functionUses: []
    functionsReached:
    - StringToIeee
    - DOUBLE_CONVERSION_DISALLOW_IMPLICIT_CONSTRUCTORS
    - flags_
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace double_conversion '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flags_
      Src: /src/icu/source/i18n/double-conversion-string-to-double.h:186,1
    - Dst: StringToIeee
      Src: /src/icu/source/i18n/double-conversion-string-to-double.h:229,1
    - Dst: DOUBLE_CONVERSION_DISALLOW_IMPLICIT_CONSTRUCTORS
      Src: /src/icu/source/i18n/double-conversion-string-to-double.h:234,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 235
    functionName: StringToDoubleConverter
    functionSourceFile: /src/icu/source/i18n/double-conversion-string-to-double.h
    functionUses: []
    functionsReached:
    - StringToIeee
    - DOUBLE_CONVERSION_DISALLOW_IMPLICIT_CONSTRUCTORS
    - flags_
    linkageType: ''
    returnType: class
    signature: 'class StringToDoubleConverter '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 329
    functionName: UMemory
    functionSourceFile: /src/icu/source/i18n/regeximp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct Regex8BitSet
    signature: 'struct Regex8BitSet : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memset
      Src: /src/icu/source/i18n/regeximp.h:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: Regex8BitSet
    functionSourceFile: /src/icu/source/i18n/regeximp.h
    functionUses: []
    functionsReached:
    - uprv_memset
    linkageType: ''
    returnType: Regex8BitSet
    signature: 'inline Regex8BitSet :: Regex8BitSet() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 342
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 342
    functionName: add
    functionSourceFile: /src/icu/source/i18n/regeximp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void Regex8BitSet:: add(UChar32 c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CaseFoldingUTextIterator
      Src: /src/icu/source/i18n/regeximp.h:366,1
    - Dst: CaseFoldingUTextIterator
      Src: /src/icu/source/i18n/regeximp.h:367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 380
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 380
    functionName: CaseFoldingUTextIterator
    functionSourceFile: /src/icu/source/i18n/regeximp.h
    functionUses: []
    functionsReached:
    - CaseFoldingUTextIterator
    linkageType: ''
    returnType: class
    signature: 'class CaseFoldingUTextIterator : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CaseFoldingUCharIterator
      Src: /src/icu/source/i18n/regeximp.h:391,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 409
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 409
    functionName: CaseFoldingUCharIterator
    functionSourceFile: /src/icu/source/i18n/regeximp.h
    functionUses: []
    functionsReached:
    - CaseFoldingUCharIterator
    linkageType: ''
    returnType: class
    signature: 'class CaseFoldingUCharIterator : public UMemory '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - UnicodeSet*
    constantsTouched: []
    func_position:
      end: 352
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 352
    functionName: init
    functionSourceFile: /src/icu/source/i18n/regeximp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void Regex8BitSet:: init(const UnicodeSet *s) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: contains
    functionSourceFile: /src/icu/source/i18n/regeximp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool Regex8BitSet:: contains(UChar32 c) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CollationFastLatin
      Src: /src/icu/source/i18n/collationfastlatin.h:251,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 252
    functionName: CollationFastLatin
    functionSourceFile: /src/icu/source/i18n/collationfastlatin.h
    functionUses: []
    functionsReached:
    - CollationFastLatin
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API CollationFastLatin /* all static */ '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar
    constantsTouched: []
    func_position:
      end: 201
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 201
    functionName: getCharIndex
    functionSourceFile: /src/icu/source/i18n/collationfastlatin.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t getCharIndex(UChar c) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ce
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 244
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 244
    functionName: getSecondariesFromOneShortCE
    functionSourceFile: /src/icu/source/i18n/collationfastlatin.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static inline uint32_t getSecondariesFromOneShortCE(uint32_t ce) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - variableTop
    - pair
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 236
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 236
    functionName: getPrimaries
    functionSourceFile: /src/icu/source/i18n/collationfastlatin.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static inline uint32_t getPrimaries(uint32_t variableTop, uint32_t
      pair) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegexStaticSets
      Src: /src/icu/source/i18n/regexst.h:38,1
    - Dst: RegexStaticSets
      Src: /src/icu/source/i18n/regexst.h:39,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 53
    functionName: RegexStaticSets
    functionSourceFile: /src/icu/source/i18n/regexst.h
    functionUses: []
    functionsReached:
    - RegexStaticSets
    linkageType: ''
    returnType: class
    signature: 'class RegexStaticSets : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: getStringRef
    functionSourceFile: /src/icu/source/i18n/formattedval_impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: FormattedStringBuilder
    signature: 'inline FormattedStringBuilder & getStringRef() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: getStringRef
    functionSourceFile: /src/icu/source/i18n/formattedval_impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: FormattedStringBuilder
    signature: 'inline const FormattedStringBuilder & getStringRef() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - ScriptSet
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: operator
    functionSourceFile: /src/icu/source/i18n/scriptset.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool operator != (const ScriptSet &other) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 128
    functionName: CalendarAstronomer
    functionSourceFile: /src/icu/source/i18n/astro.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_I18N_API
    signature: 'U_I18N_API CalendarAstronomer : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - alt
    - azim
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: set
    functionSourceFile: /src/icu/source/i18n/astro.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void set(double alt, double azim) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setTime
      Src: /src/icu/source/i18n/astro.h:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 352
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 352
    functionName: toString
    functionSourceFile: /src/icu/source/i18n/astro.h
    functionUses: []
    functionsReached:
    - setTime
    linkageType: ''
    returnType: UnicodeString
    signature: 'UnicodeString toString() const; /** * The object''s altitude above
      the horizon, in radians. * @internal */ double altitude; /** * The object''s
      direction, in radians clockwise from north. * @internal */ double azimuth; };
      public: //-------------------------------------------------------------------------
      // Assorted private data used for conversions //-------------------------------------------------------------------------
      // My own copies of these so compilers are more likely to optimize them away
      static const double PI; /** * The average number of solar days from one new
      moon to the next. This is the time * it takes for the moon to return the same
      ecliptic longitude as the sun. * It is longer than the sidereal month because
      the sun''s longitude increases * during the year due to the revolution of the
      earth around the sun. * Approximately 29.53. * * @see #SIDEREAL_MONTH * @internal
      * @deprecated ICU 2.4. This class may be removed or modified. */ static const
      double SYNODIC_MONTH; //-------------------------------------------------------------------------
      // Constructors //-------------------------------------------------------------------------
      /** * Construct a new <code>CalendarAstronomer</code> object that is initialized
      to * the current date and time. * @internal */ CalendarAstronomer(); /** * Construct
      a new <code>CalendarAstronomer</code> object that is initialized to * the specified
      date and time. * @internal */ CalendarAstronomer(UDate d); /** * Construct a
      new <code>CalendarAstronomer</code> object with the given * latitude and longitude.
      The object''s time is set to the current * date and time. * <p> * @param longitude
      The desired longitude, in <em>degrees</em> east of * the Greenwich meridian.
      * * @param latitude The desired latitude, in <em>degrees</em>. Positive * values
      signify North, negative South. * * @see java.util.Date#getTime() * @internal
      */ CalendarAstronomer(double longitude, double latitude); /** * Destructor *
      @internal */ ~CalendarAstronomer(); //-------------------------------------------------------------------------
      // Time and date getters and setters //-------------------------------------------------------------------------
      /** * Set the current date and time of this <code>CalendarAstronomer</code>
      object. All * astronomical calculations are performed based on this time setting.
      * * @param aTime the date and time, expressed as the number of milliseconds
      since * 1/1/1970 0:00 GMT (Gregorian). * * @see #setDate * @see #getTime * @internal
      */ void setTime(UDate aTime); /** * Set the current date and time of this <code>CalendarAstronomer</code>
      object. All * astronomical calculations are performed based on this time setting.
      * * @param aTime the date and time, expressed as the number of milliseconds
      since * 1/1/1970 0:00 GMT (Gregorian). * * @see #getTime * @internal */ void
      setDate(UDate aDate) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 591
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 591
    functionName: set
    functionSourceFile: /src/icu/source/i18n/astro.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void set(double l) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eval
      Src: /src/icu/source/i18n/astro.h:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 651
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 651
    functionName: AngleFunc
    functionSourceFile: /src/icu/source/i18n/astro.h
    functionUses: []
    functionsReached:
    - eval
    linkageType: ''
    returnType: class
    signature: 'class AngleFunc : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eval
      Src: /src/icu/source/i18n/astro.h:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 661
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 661
    functionName: CoordFunc
    functionSourceFile: /src/icu/source/i18n/astro.h
    functionUses: []
    functionsReached:
    - eval
    linkageType: ''
    returnType: class
    signature: 'class CoordFunc : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - lat
    - lon
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: set
    functionSourceFile: /src/icu/source/i18n/astro.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void set(double lat, double lon) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - asc
    - dec
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: set
    functionSourceFile: /src/icu/source/i18n/astro.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void set(double asc, double dec) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleDateFormatStaticSets
      Src: /src/icu/source/i18n/smpdtfst.h:33,1
    - Dst: SimpleDateFormatStaticSets
      Src: /src/icu/source/i18n/smpdtfst.h:34,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: SimpleDateFormatStaticSets
    functionSourceFile: /src/icu/source/i18n/smpdtfst.h
    functionUses: []
    functionsReached:
    - SimpleDateFormatStaticSets
    linkageType: ''
    returnType: class
    signature: 'class SimpleDateFormatStaticSets : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 51
    functionName: CharsetRecognizer
    functionSourceFile: /src/icu/source/i18n/csrecog.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecognizer : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 406
    functionName: getDynamicClassID
    functionSourceFile: /src/icu/source/i18n/olsontz.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UClassID getDynamicClassID() const; /** * TimeZone API. Do
      not call this; prefer getOffset(UDate,...). */ virtual int32_t getOffset(uint8_t
      era, int32_t year, int32_t month, int32_t day, uint8_t dayOfWeek, int32_t millis,
      UErrorCode& ec) const; /** * TimeZone API. Do not call this; prefer getOffset(UDate,...).
      */ virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t
      day, uint8_t dayOfWeek, int32_t millis, int32_t monthLength, UErrorCode& ec)
      const; /** * TimeZone API. */ virtual void getOffset(UDate date, UBool local,
      int32_t& rawOffset, int32_t& dstOffset, UErrorCode& ec) const; /** * BasicTimeZone
      API. */ virtual void getOffsetFromLocal(UDate date, int32_t nonExistingTimeOpt,
      int32_t duplicatedTimeOpt, int32_t& rawoff, int32_t& dstoff, UErrorCode& ec)
      const; /** * TimeZone API. This method has no effect since objects of this *
      class are quasi-immutable (the base class allows the ID to be * changed). */
      virtual void setRawOffset(int32_t offsetMillis); /** * TimeZone API. For a historical
      zone, the raw offset can change * over time, so this API is not useful. In order
      to approximate * expected behavior, this method returns the raw offset for the
      * current moment in time. */ virtual int32_t getRawOffset() const; /** * TimeZone
      API. For a historical zone, whether DST is used or * not varies over time. In
      order to approximate expected * behavior, this method returns TRUE if DST is
      observed at any * point in the current year. */ virtual UBool useDaylightTime()
      const; /** * TimeZone API. */ virtual UBool inDaylightTime(UDate date, UErrorCode&
      ec) const; /** * TimeZone API. */ virtual int32_t getDSTSavings() const; /**
      * TimeZone API. Also comare historic transitions. */ virtual UBool hasSameRules(const
      TimeZone& other) const; /** * BasicTimeZone API. * Gets the first time zone
      transition after the base time. * @param base The base time. * @param inclusive
      Whether the base time is inclusive or not. * @param result Receives the first
      transition after the base time. * @return TRUE if the transition is found. */
      virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition&
      result) const; /** * BasicTimeZone API. * Gets the most recent time zone transition
      before the base time. * @param base The base time. * @param inclusive Whether
      the base time is inclusive or not. * @param result Receives the most recent
      transition before the base time. * @return TRUE if the transition is found.
      */ virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition&
      result) const; /** * BasicTimeZone API. * Returns the number of <code>TimeZoneRule</code>s
      which represents time transitions, * for this time zone, that is, all <code>TimeZoneRule</code>s
      for this time zone except * <code>InitialTimeZoneRule</code>. The return value
      range is 0 or any positive value. * @param status Receives error status code.
      * @return The number of <code>TimeZoneRule</code>s representing time transitions.
      */ virtual int32_t countTransitionRules(UErrorCode& status) const; /** * Gets
      the <code>InitialTimeZoneRule</code> and the set of <code>TimeZoneRule</code>
      * which represent time transitions for this time zone. On successful return,
      * the argument initial points to non-NULL <code>InitialTimeZoneRule</code> and
      * the array trsrules is filled with 0 or multiple <code>TimeZoneRule</code>
      * instances up to the size specified by trscount. The results are referencing
      the * rule instance held by this time zone instance. Therefore, after this time
      zone * is destructed, they are no longer available. * @param initial Receives
      the initial timezone rule * @param trsrules Receives the timezone transition
      rules * @param trscount On input, specify the size of the array ''transitions''
      receiving * the timezone transition rules. On output, actual number of * rules
      filled in the array will be set. * @param status Receives error status code.
      */ virtual void getTimeZoneRules(const InitialTimeZoneRule*& initial, const
      TimeZoneRule* trsrules[], int32_t& trscount, UErrorCode& status) const; /**
      * Internal API returning the canonical ID of this zone. * This ID won''t be
      affected by setID(). */ const UChar *getCanonicalID() const; private: /** *
      Default constructor. Creates a time zone with an empty ID and * a fixed GMT
      offset of zero. */ OlsonTimeZone(); private: void constructEmpty(); void getHistoricalOffset(UDate
      date, UBool local, int32_t NonExistingTimeOpt, int32_t DuplicatedTimeOpt, int32_t&
      rawoff, int32_t& dstoff) const; int16_t transitionCount() const; int64_t transitionTimeInSeconds(int16_t
      transIdx) const; double transitionTime(int16_t transIdx) const; /* * Following
      3 methods return an offset at the given transition time index. * When the index
      is negative, return the initial offset. */ int32_t zoneOffsetAt(int16_t transIdx)
      const; int32_t rawOffsetAt(int16_t transIdx) const; int32_t dstOffsetAt(int16_t
      transIdx) const; /* * Following methods return the initial offset. */ int32_t
      initialRawOffset() const; int32_t initialDstOffset() const; /** * Number of
      transitions in each time range */ int16_t transitionCountPre32; int16_t transitionCount32;
      int16_t transitionCountPost32; /** * Time of each transition in seconds from
      1970 epoch before 32bit second range (<= 1900). * Each transition in this range
      is represented by a pair of int32_t. * Length is transitionCount int32_t''s.
      NULL if no transitions in this range. */ const int32_t *transitionTimesPre32;
      // alias into res; do not delete /** * Time of each transition in seconds from
      1970 epoch in 32bit second range. * Length is transitionCount int32_t''s. NULL
      if no transitions in this range. */ const int32_t *transitionTimes32; // alias
      into res; do not delete /** * Time of each transition in seconds from 1970 epoch
      after 32bit second range (>= 2038). * Each transition in this range is represented
      by a pair of int32_t. * Length is transitionCount int32_t''s. NULL if no transitions
      in this range. */ const int32_t *transitionTimesPost32; // alias into res; do
      not delete /** * Number of types, 1..255 */ int16_t typeCount; /** * Offset
      from GMT in seconds for each type. * Length is typeCount int32_t''s. At least
      one type (a pair of int32_t) * is required. */ const int32_t *typeOffsets; //
      alias into res; do not delete /** * Type description data, consisting of transitionCount
      uint8_t * type indices (from 0..typeCount-1). * Length is transitionCount int16_t''s.
      NULL if no transitions. */ const uint8_t *typeMapData; // alias into res; do
      not delete /** * A SimpleTimeZone that governs the behavior for date >= finalMillis.
      */ SimpleTimeZone *finalZone; // owned, may be NULL /** * For date >= finalMillis,
      the finalZone will be used. */ double finalStartMillis; /** * For year >= finalYear,
      the finalZone will be used. */ int32_t finalStartYear; /* * Canonical (CLDR)
      ID of this zone */ const UChar *canonicalID; /* BasicTimeZone support */ void
      clearTransitionRules(void); void deleteTransitionRules(void); void checkTransitionRules(UErrorCode&
      status) const; public: // Internal, for access from plain C code void initTransitionRules(UErrorCode&
      status); private: InitialTimeZoneRule *initialRule; TimeZoneTransition *firstTZTransition;
      int16_t firstTZTransitionIdx; TimeZoneTransition *firstFinalTZTransition; TimeArrayTimeZoneRule
      **historicRules; int16_t historicRuleCount; SimpleTimeZone *finalZoneWithStartYear;
      // hack UInitOnce transitionRulesInitOnce = U_INITONCE_INITIALIZER; };inline
      int16_tOlsonTimeZone::transitionCount() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: transitionTimeInSeconds
      Src: /src/icu/source/i18n/olsontz.h:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - transIdx
    argTypes:
    - int16_t
    constantsTouched: []
    func_position:
      end: 411
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 411
    functionName: transitionTime
    functionSourceFile: /src/icu/source/i18n/olsontz.h
    functionUses: []
    functionsReached:
    - transitionTimeInSeconds
    linkageType: ''
    returnType: double
    signature: 'inline double OlsonTimeZone:: transitionTime(int16_t transIdx) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - transIdx
    argTypes:
    - int16_t
    constantsTouched: []
    func_position:
      end: 423
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 423
    functionName: rawOffsetAt
    functionSourceFile: /src/icu/source/i18n/olsontz.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t OlsonTimeZone:: rawOffsetAt(int16_t transIdx) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: initialRawOffset
    functionSourceFile: /src/icu/source/i18n/olsontz.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t OlsonTimeZone:: initialRawOffset() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 439
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 439
    functionName: initialDstOffset
    functionSourceFile: /src/icu/source/i18n/olsontz.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t OlsonTimeZone:: initialDstOffset() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - transIdx
    argTypes:
    - int16_t
    constantsTouched: []
    func_position:
      end: 429
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 429
    functionName: dstOffsetAt
    functionSourceFile: /src/icu/source/i18n/olsontz.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t OlsonTimeZone:: dstOffsetAt(int16_t transIdx) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - transIdx
    argTypes:
    - int16_t
    constantsTouched: []
    func_position:
      end: 417
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 417
    functionName: zoneOffsetAt
    functionSourceFile: /src/icu/source/i18n/olsontz.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t OlsonTimeZone:: zoneOffsetAt(int16_t transIdx) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 444
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 444
    functionName: getCanonicalID
    functionSourceFile: /src/icu/source/i18n/olsontz.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UChar*
    signature: 'inline const UChar *OlsonTimeZone::getCanonicalID() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handleTransliterate
      Src: /src/icu/source/i18n/rbt.h:153,1
    - Dst: handleGetSourceSet
      Src: /src/icu/source/i18n/rbt.h:176,1
    - Dst: toRules
      Src: /src/icu/source/i18n/rbt.h:169,1
    - Dst: getTargetSet
      Src: /src/icu/source/i18n/rbt.h:182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 215
    functionName: RuleBasedTransliterator
    functionSourceFile: /src/icu/source/i18n/rbt.h
    functionUses: []
    functionsReached:
    - toRules
    - handleTransliterate
    - getTargetSet
    - handleGetSourceSet
    linkageType: ''
    returnType: class
    signature: 'class RuleBasedTransliterator : public Transliterator '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: CharsetRecog_IBM424_he
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_IBM424_he : public CharsetRecog_sbcs '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 210
    functionName: CharsetRecog_windows_1256
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_windows_1256 : public CharsetRecog_sbcs '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: CharsetRecog_8859_5
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_8859_5 : public CharsetRecog_sbcs '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: CharsetRecog_8859_6
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_8859_6 : public CharsetRecog_sbcs '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: CharsetRecog_8859_7
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_8859_7 : public CharsetRecog_sbcs '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 280
    functionName: CharsetRecog_IBM420_ar_rtl
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_IBM420_ar_rtl : public CharsetRecog_IBM420_ar '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NGramParser_IBM420
      Src: /src/icu/source/i18n/csrsbcs.h:60,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 67
    functionName: NGramParser_IBM420
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached:
    - NGramParser_IBM420
    linkageType: ''
    returnType: class
    signature: 'class NGramParser_IBM420 : public NGramParser '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CharsetRecog_sbcs
      Src: /src/icu/source/i18n/csrsbcs.h:74,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: CharsetRecog_sbcs
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached:
    - CharsetRecog_sbcs
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_sbcs : public CharsetRecognizer '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: CharsetRecog_8859_2
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_8859_2 : public CharsetRecog_sbcs '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: CharsetRecog_8859_8
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_8859_8 : public CharsetRecog_sbcs '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: CharsetRecog_8859_7_el
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_8859_7_el : public CharsetRecog_8859_7 '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: CharsetRecog_8859_9
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_8859_9 : public CharsetRecog_sbcs '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: CharsetRecog_8859_5_ru
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_8859_5_ru : public CharsetRecog_8859_5 '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 178
    functionName: CharsetRecog_8859_8_I_he
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_8859_8_I_he : public CharsetRecog_8859_8 '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: CharsetRecog_IBM424_he_ltr
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_IBM424_he_ltr : public CharsetRecog_IBM424_he '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 271
    functionName: CharsetRecog_IBM420_ar
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_IBM420_ar : public CharsetRecog_sbcs '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: CharsetRecog_8859_1
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_8859_1 : public CharsetRecog_sbcs '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: CharsetRecog_8859_6_ar
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_8859_6_ar : public CharsetRecog_8859_6 '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 198
    functionName: CharsetRecog_8859_9_tr
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_8859_9_tr : public CharsetRecog_8859_9 '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 222
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 222
    functionName: CharsetRecog_windows_1251
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_windows_1251 : public CharsetRecog_sbcs '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 235
    functionName: CharsetRecog_KOI8_R
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_KOI8_R : public CharsetRecog_sbcs '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 188
    functionName: CharsetRecog_8859_8_he
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_8859_8_he : public CharsetRecog_8859_8 '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 253
    functionName: CharsetRecog_IBM424_he_rtl
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_IBM424_he_rtl : public CharsetRecog_IBM424_he '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 288
    functionName: CharsetRecog_IBM420_ar_ltr
    functionSourceFile: /src/icu/source/i18n/csrsbcs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_IBM420_ar_ltr : public CharsetRecog_IBM420_ar '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CollationDataWriter
      Src: /src/icu/source/i18n/collationdatawriter.h:41,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 51
    functionName: CollationDataWriter
    functionSourceFile: /src/icu/source/i18n/collationdatawriter.h
    functionUses: []
    functionsReached:
    - CollationDataWriter
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API CollationDataWriter /* all static */ '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: get
    functionSourceFile: /src/icu/source/i18n/sharedcalendar.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Calendar*
    signature: 'const Calendar *get() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: operator
    functionSourceFile: /src/icu/source/i18n/sharedcalendar.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Calendar*
    signature: 'const Calendar *operator ->() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dfs
      Src: /src/icu/source/i18n/shareddateformatsymbols.h:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: SharedDateFormatSymbols
    functionSourceFile: /src/icu/source/i18n/shareddateformatsymbols.h
    functionUses: []
    functionsReached:
    - dfs
    linkageType: ''
    returnType: U_I18N_API
    signature: 'U_I18N_API SharedDateFormatSymbols : public SharedObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: get
    functionSourceFile: /src/icu/source/i18n/shareddateformatsymbols.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: DateFormatSymbols
    signature: 'const DateFormatSymbols & get() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/icu/source/i18n/collationroot.h:38,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: CollationRoot
    functionSourceFile: /src/icu/source/i18n/collationroot.h
    functionUses: []
    functionsReached:
    - load
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API CollationRoot '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 81
    functionName: hasCurrencySign
    functionSourceFile: /src/icu/source/i18n/number_mapper.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool hasCurrencySign() const U_OVERRIDE; bool positiveHasPlusSign()
      const U_OVERRIDE; bool hasNegativeSubpattern() const U_OVERRIDE; bool negativeHasMinusSign()
      const U_OVERRIDE; bool containsSymbolType(AffixPatternType, UErrorCode&) const
      U_OVERRIDE; bool hasBody() const U_OVERRIDE; private: UnicodeString posPrefix;
      UnicodeString posSuffix; UnicodeString negPrefix; UnicodeString negSuffix; bool
      isCurrencyPattern; const UnicodeString& getStringInternal(int32_t flags) const;
      bool fBogus{true};};class CurrencyPluralInfoAffixProvider : public AffixPatternProvider,
      public UMemory { public: bool isBogus() const { return fBogus; } void setToBogus() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: setToBogus
    functionSourceFile: /src/icu/source/i18n/number_mapper.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setToBogus() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: properties
      Src: /src/icu/source/i18n/number_mapper.h:132,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 132
    functionName: hasCurrencySign
    functionSourceFile: /src/icu/source/i18n/number_mapper.h
    functionUses: []
    functionsReached:
    - properties
    linkageType: ''
    returnType: bool
    signature: 'bool hasCurrencySign() const U_OVERRIDE; bool positiveHasPlusSign()
      const U_OVERRIDE; bool hasNegativeSubpattern() const U_OVERRIDE; bool negativeHasMinusSign()
      const U_OVERRIDE; bool containsSymbolType(AffixPatternType, UErrorCode&) const
      U_OVERRIDE; bool hasBody() const U_OVERRIDE; private: PropertiesAffixPatternProvider
      affixesByPlural[StandardPlural::COUNT]; bool fBogus{true};}; /** * A struct
      for ownership of a few objects needed for formatting. */ struct DecimalFormatWarehouse
      { PropertiesAffixPatternProvider propertiesAPP; CurrencyPluralInfoAffixProvider
      currencyPluralInfoAPP; CurrencySymbols currencySymbols;}; /*** Internal fields
      for DecimalFormat.* TODO: Make some of these fields by value instead of by LocalPointer?*/
      struct DecimalFormatFields : public UMemory { DecimalFormatFields() {} DecimalFormatFields(const
      DecimalFormatProperties& propsToCopy) : properties(propsToCopy) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 204
    functionName: NumberPropertyMapper
    functionSourceFile: /src/icu/source/i18n/number_mapper.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class NumberPropertyMapper '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PropertiesAffixPatternProvider
      Src: /src/icu/source/i18n/number_mapper.h:34,1
    - Dst: properties
      Src: /src/icu/source/i18n/number_mapper.h:132,1
    - Dst: setTo
      Src: /src/icu/source/i18n/number_mapper.h:37,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 208
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/number_mapper.h
    functionUses: []
    functionsReached:
    - setTo
    - PropertiesAffixPatternProvider
    - properties
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace number '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PropertiesAffixPatternProvider
      Src: /src/icu/source/i18n/number_mapper.h:34,1
    - Dst: properties
      Src: /src/icu/source/i18n/number_mapper.h:132,1
    - Dst: setTo
      Src: /src/icu/source/i18n/number_mapper.h:37,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 207
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/number_mapper.h
    functionUses: []
    functionsReached:
    - setTo
    - PropertiesAffixPatternProvider
    - properties
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecimalQuantity
      Src: /src/icu/source/i18n/number_decimalquantity.h:38,1
    - Dst: DecimalQuantity
      Src: /src/icu/source/i18n/number_decimalquantity.h:42,1
    - Dst: DecimalQuantity
      Src: /src/icu/source/i18n/number_decimalquantity.h:40,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 485
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/number_decimalquantity.h
    functionUses: []
    functionsReached:
    - DecimalQuantity
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace number '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: other
    functionSourceFile: /src/icu/source/i18n/number_decimalquantity.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'inline bool operator!=(const DecimalQuantity& other ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecimalQuantity
      Src: /src/icu/source/i18n/number_decimalquantity.h:38,1
    - Dst: DecimalQuantity
      Src: /src/icu/source/i18n/number_decimalquantity.h:42,1
    - Dst: DecimalQuantity
      Src: /src/icu/source/i18n/number_decimalquantity.h:40,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 484
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 484
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/number_decimalquantity.h
    functionUses: []
    functionsReached:
    - DecimalQuantity
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 280
    functionName: getMagnitude
    functionSourceFile: /src/icu/source/i18n/number_decimalquantity.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getMagnitude() const; /** * @return Whether the value represented
      by this {@link DecimalQuantity} is * zero, infinity, or NaN. */ bool isZeroish()
      const; /** @return Whether the value represented by this {@link DecimalQuantity}
      is less than zero. */ bool isNegative() const; /** @return The appropriate value
      from the Signum enum. */ Signum signum() const; /** @return Whether the value
      represented by this {@link DecimalQuantity} is infinite. */ bool isInfinite()
      const U_OVERRIDE; /** @return Whether the value represented by this {@link DecimalQuantity}
      is not a number. */ bool isNaN() const U_OVERRIDE; /** @param truncateIfOverflow
      if false and the number does NOT fit, fails with an assertion error. */ int64_t
      toLong(bool truncateIfOverflow = false) const; uint64_t toFractionLong(bool
      includeTrailingZeros) const; /** * Returns whether or not a Long can fully represent
      the value stored in this DecimalQuantity. * @param ignoreFraction if true, silently
      ignore digits after the decimal place. */ bool fitsInLong(bool ignoreFraction
      = false) const; /** @return The value contained in this {@link DecimalQuantity}
      approximated as a double. */ double toDouble() const; /** Computes a DecNum
      representation of this DecimalQuantity, saving it to the output parameter. */
      void toDecNum(DecNum& output, UErrorCode& status) const; DecimalQuantity &setToInt(int32_t
      n); DecimalQuantity &setToLong(int64_t n); DecimalQuantity &setToDouble(double
      n); /** decNumber is similar to BigDecimal in Java. */ DecimalQuantity &setToDecNumber(StringPiece
      n, UErrorCode& status); /** Internal method if the caller already has a DecNum.
      */ DecimalQuantity &setToDecNum(const DecNum& n, UErrorCode& status); /** *
      Appends a digit, optionally with one or more leading zeros, to the end of the
      value represented * by this DecimalQuantity. * * <p>The primary use of this
      method is to construct numbers during a parsing loop. It allows * parsing to
      take advantage of the digit list infrastructure primarily designed for formatting.
      * * @param value The digit to append. * @param leadingZeros The number of zeros
      to append before the digit. For example, if the value * in this instance starts
      as 12.3, and you append a 4 with 1 leading zero, the value becomes * 12.304.
      * @param appendAsInteger If true, increase the magnitude of existing digits
      to make room for the * new digit. If false, append to the end like a fraction
      digit. If true, there must not be * any fraction digits already in the number.
      * @internal * @deprecated This API is ICU internal only. */ void appendDigit(int8_t
      value, int32_t leadingZeros, bool appendAsInteger); double getPluralOperand(PluralOperand
      operand) const U_OVERRIDE; bool hasIntegerValue() const U_OVERRIDE; /** * Gets
      the digit at the specified magnitude. For example, if the represented number
      is 12.3, * getDigit(-1) returns 3, since 3 is the digit corresponding to 10^-1.
      * * @param magnitude The magnitude of the digit. * @return The digit at the
      specified magnitude. */ int8_t getDigit(int32_t magnitude) const; /** * Gets
      the largest power of ten that needs to be displayed. The value returned by this
      function * will be bounded between minInt and maxInt. * * @return The highest-magnitude
      digit to be displayed. */ int32_t getUpperDisplayMagnitude() const; /** * Gets
      the smallest power of ten that needs to be displayed. The value returned by
      this function * will be bounded between -minFrac and -maxFrac. * * @return The
      lowest-magnitude digit to be displayed. */ int32_t getLowerDisplayMagnitude()
      const; int32_t fractionCount() const; int32_t fractionCountWithoutTrailingZeros()
      const; void clear(); /** This method is for internal testing only. */ uint64_t
      getPositionFingerprint() const; // /** // * If the given {@link FieldPosition}
      is a {@link UFieldPosition}, populates it with the fraction // * length and
      fraction long value. If the argument is not a {@link UFieldPosition}, nothing
      // * happens. // * // * @param fp The {@link UFieldPosition} to populate. //
      */ // void populateUFieldPosition(FieldPosition fp); /** * Checks whether the
      bytes stored in this instance are all valid. For internal unit testing only.
      * * @return An error message if this instance is invalid, or null if this instance
      is healthy. */ const char16_t* checkHealth() const; UnicodeString toString()
      const; /** Returns the string in standard exponential notation. */ UnicodeString
      toScientificString() const; /** Returns the string without exponential notation.
      Slightly slower than toScientificString(). */ UnicodeString toPlainString()
      const; /** Visible for testing */ inline bool isUsingBytes() { return usingBytes;
      } /** Visible for testing */ inline bool isExplicitExactDouble() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TransliteratorAlias
      Src: /src/icu/source/i18n/transreg.h:64,1
    - Dst: create
      Src: /src/icu/source/i18n/transreg.h:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 120
    functionName: TransliteratorAlias
    functionSourceFile: /src/icu/source/i18n/transreg.h
    functionUses: []
    functionsReached:
    - TransliteratorAlias
    - create
    linkageType: ''
    returnType: class
    signature: 'class TransliteratorAlias : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TransliteratorRegistry
      Src: /src/icu/source/i18n/transreg.h:149,1
    - Dst: getAvailableTarget
      Src: /src/icu/source/i18n/transreg.h:321,1
    - Dst: getAvailableVariant
      Src: /src/icu/source/i18n/transreg.h:352,1
    - Dst: TransliteratorRegistry
      Src: /src/icu/source/i18n/transreg.h:154,1
    - Dst: getAvailableSource
      Src: /src/icu/source/i18n/transreg.h:299,1
    - Dst: find
      Src: /src/icu/source/i18n/transreg.h:365,1
    - Dst: count
      Src: /src/icu/source/i18n/transreg.h:419,1
    - Dst: snext
      Src: /src/icu/source/i18n/transreg.h:420,1
    - Dst: reset
      Src: /src/icu/source/i18n/transreg.h:421,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 458
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 458
    functionName: TransliteratorRegistry
    functionSourceFile: /src/icu/source/i18n/transreg.h
    functionUses: []
    functionsReached:
    - count
    - snext
    - find
    - getAvailableSource
    - TransliteratorRegistry
    - getAvailableTarget
    - getAvailableVariant
    - reset
    linkageType: ''
    returnType: class
    signature: 'class TransliteratorRegistry : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/icu/source/i18n/transreg.h:419,1
    - Dst: snext
      Src: /src/icu/source/i18n/transreg.h:420,1
    - Dst: reset
      Src: /src/icu/source/i18n/transreg.h:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 427
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 427
    functionName: StringEnumeration
    functionSourceFile: /src/icu/source/i18n/transreg.h
    functionUses: []
    functionsReached:
    - reset
    - count
    - snext
    linkageType: ''
    returnType: class
    signature: 'class Enumeration : public StringEnumeration '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: CharsetRecog_UTF_16_BE
    functionSourceFile: /src/icu/source/i18n/csrucode.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_UTF_16_BE : public CharsetRecog_Unicode '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: CharsetRecog_UTF_32_LE
    functionSourceFile: /src/icu/source/i18n/csrucode.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_UTF_32_LE : public CharsetRecog_UTF_32 '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: CharsetRecog_UTF_32_BE
    functionSourceFile: /src/icu/source/i18n/csrucode.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_UTF_32_BE : public CharsetRecog_UTF_32 '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 77
    functionName: CharsetRecog_Unicode
    functionSourceFile: /src/icu/source/i18n/csrucode.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_UTF_32 : public CharsetRecog_Unicode '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: CharsetRecog_UTF_16_LE
    functionSourceFile: /src/icu/source/i18n/csrucode.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_UTF_16_LE : public CharsetRecog_Unicode '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CurrencyPluralInfoWrapper
      Src: /src/icu/source/i18n/number_decimfmtprops.h:45,1
    - Dst: CurrencyPluralInfo
      Src: /src/icu/source/i18n/number_decimfmtprops.h:49,1
    - Dst: CurrencyPluralInfo
      Src: /src/icu/source/i18n/number_decimfmtprops.h:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 59
    functionName: CurrencyPluralInfoWrapper
    functionSourceFile: /src/icu/source/i18n/number_decimfmtprops.h
    functionUses: []
    functionsReached:
    - CurrencyPluralInfoWrapper
    - CurrencyPluralInfo
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API CurrencyPluralInfoWrapper '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _equals
      Src: /src/icu/source/i18n/number_decimfmtprops.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: other
    functionSourceFile: /src/icu/source/i18n/number_decimfmtprops.h
    functionUses: []
    functionsReached:
    - _equals
    linkageType: ''
    returnType: bool
    signature: 'inline bool operator==(const DecimalFormatProperties& other ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CollationDataReader
      Src: /src/icu/source/i18n/collationdatareader.h:108,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 109
    functionName: CollationDataReader
    functionSourceFile: /src/icu/source/i18n/collationdatareader.h
    functionUses: []
    functionsReached:
    - CollationDataReader
    linkageType: ''
    returnType: struct U_I18N_API
    signature: 'struct U_I18N_API CollationDataReader /* all static */ '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: operator
    functionSourceFile: /src/icu/source/i18n/sharedpluralrules.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: PluralRules*
    signature: 'const PluralRules *operator ->() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: operator
    functionSourceFile: /src/icu/source/i18n/nfrlist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: NFRule*
    signature: 'NFRule * operator[](uint32_t index) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: last
    functionSourceFile: /src/icu/source/i18n/nfrlist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: NFRule*
    signature: 'NFRule * last() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: size
    functionSourceFile: /src/icu/source/i18n/nfrlist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t size() const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uprv_realloc
      Src: /src/icu/source/i18n/nfrlist.h:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - thing
    argTypes:
    - NFRule*
    constantsTouched: []
    func_position:
      end: 75
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 75
    functionName: add
    functionSourceFile: /src/icu/source/i18n/nfrlist.h
    functionUses: []
    functionsReached:
    - uprv_realloc
    linkageType: ''
    returnType: void
    signature: 'void add(NFRule* thing) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/icu/source/i18n/nfrlist.h:90,1
    - Dst: uprv_free
      Src: /src/icu/source/i18n/nfrlist.h:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 98
    functionName: deleteAll
    functionSourceFile: /src/icu/source/i18n/nfrlist.h
    functionUses: []
    functionsReached:
    - release
    - uprv_free
    linkageType: ''
    returnType: void
    signature: 'void deleteAll() '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: remove
    functionSourceFile: /src/icu/source/i18n/nfrlist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: NFRule*
    signature: 'NFRule * remove(uint32_t index) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/icu/source/i18n/nfrlist.h:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: release
    functionSourceFile: /src/icu/source/i18n/nfrlist.h
    functionUses: []
    functionsReached:
    - add
    linkageType: ''
    returnType: NFRule**
    signature: 'NFRule ** release() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 129
    functionName: CECalendar
    functionSourceFile: /src/icu/source/i18n/cecal.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_I18N_API
    signature: 'U_I18N_API CECalendar : public Calendar '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 99
    functionName: double_conversion
    functionSourceFile: /src/icu/source/i18n/double-conversion-fast-dtoa.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace double_conversion '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:58,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:67,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:66,1
    - Dst: f_
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:58,1
    - Dst: e_
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:58,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:110,1
    - Dst: DOUBLE_CONVERSION_UINT64_2PART_C
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:116,1
    - Dst: DOUBLE_CONVERSION_UINT64_2PART_C
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:142,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 148
    functionName: double_conversion
    functionSourceFile: /src/icu/source/i18n/double-conversion-diy-fp.h
    functionUses: []
    functionsReached:
    - f_
    - DOUBLE_CONVERSION_UINT64_2PART_C
    - DiyFp
    - e_
    - DOUBLE_CONVERSION_ASSERT
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace double_conversion '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - other
    argTypes:
    - DiyFp
    constantsTouched: []
    func_position:
      end: 100
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 100
    functionName: Multiply
    functionSourceFile: /src/icu/source/i18n/double-conversion-diy-fp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void Multiply(const DiyFp& other) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DiyFp
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:58,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:67,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:66,1
    - Dst: f_
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:58,1
    - Dst: e_
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:58,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:110,1
    - Dst: DOUBLE_CONVERSION_UINT64_2PART_C
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:116,1
    - Dst: DOUBLE_CONVERSION_UINT64_2PART_C
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:142,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 146
    functionName: DiyFp
    functionSourceFile: /src/icu/source/i18n/double-conversion-diy-fp.h
    functionUses: []
    functionsReached:
    - f_
    - DOUBLE_CONVERSION_UINT64_2PART_C
    - DiyFp
    - e_
    - DOUBLE_CONVERSION_ASSERT
    linkageType: ''
    returnType: class
    signature: 'class DiyFp '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - DiyFp
    - DiyFp
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: Minus
    functionSourceFile: /src/icu/source/i18n/double-conversion-diy-fp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: DiyFp
    signature: 'static DiyFp Minus(const DiyFp& a, const DiyFp& b) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:66,1
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - other
    argTypes:
    - DiyFp
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: Subtract
    functionSourceFile: /src/icu/source/i18n/double-conversion-diy-fp.h
    functionUses: []
    functionsReached:
    - DOUBLE_CONVERSION_ASSERT
    linkageType: ''
    returnType: void
    signature: 'void Subtract(const DiyFp& other) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOUBLE_CONVERSION_ASSERT
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:110,1
    - Dst: DOUBLE_CONVERSION_UINT64_2PART_C
      Src: /src/icu/source/i18n/double-conversion-diy-fp.h:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 127
    functionName: Normalize
    functionSourceFile: /src/icu/source/i18n/double-conversion-diy-fp.h
    functionUses: []
    functionsReached:
    - DOUBLE_CONVERSION_ASSERT
    - DOUBLE_CONVERSION_UINT64_2PART_C
    linkageType: ''
    returnType: void
    signature: 'void Normalize() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: f
    functionSourceFile: /src/icu/source/i18n/double-conversion-diy-fp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: 'uint64_t f() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: e
    functionSourceFile: /src/icu/source/i18n/double-conversion-diy-fp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t e() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - DiyFp
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: Normalize
    functionSourceFile: /src/icu/source/i18n/double-conversion-diy-fp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: DiyFp
    signature: 'static DiyFp Normalize(const DiyFp& a) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - new_value
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: set_f
    functionSourceFile: /src/icu/source/i18n/double-conversion-diy-fp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void set_f(uint64_t new_value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - new_value
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: set_e
    functionSourceFile: /src/icu/source/i18n/double-conversion-diy-fp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void set_e(int32_t new_value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - DiyFp
    - DiyFp
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: Times
    functionSourceFile: /src/icu/source/i18n/double-conversion-diy-fp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: DiyFp
    signature: 'static DiyFp Times(const DiyFp& a, const DiyFp& b) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: makeCE
      Src: /src/icu/source/i18n/collationrootelements.h:152,1
    - Dst: getFirstPrimary
      Src: /src/icu/source/i18n/collationrootelements.h:152,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 270
    functionName: CollationRootElements
    functionSourceFile: /src/icu/source/i18n/collationrootelements.h
    functionUses: []
    functionsReached:
    - getFirstPrimary
    - makeCE
    linkageType: ''
    returnType: U_I18N_API
    signature: 'U_I18N_API CollationRootElements : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: getFirstTertiaryCE
    functionSourceFile: /src/icu/source/i18n/collationrootelements.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t getFirstTertiaryCE() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: getLastCommonSecondary
    functionSourceFile: /src/icu/source/i18n/collationrootelements.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t getLastCommonSecondary() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: getTertiaryBoundary
    functionSourceFile: /src/icu/source/i18n/collationrootelements.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t getTertiaryBoundary() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: getLastTertiaryCE
    functionSourceFile: /src/icu/source/i18n/collationrootelements.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t getLastTertiaryCE() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: getSecondaryBoundary
    functionSourceFile: /src/icu/source/i18n/collationrootelements.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t getSecondaryBoundary() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: getFirstSecondaryCE
    functionSourceFile: /src/icu/source/i18n/collationrootelements.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t getFirstSecondaryCE() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: getLastSecondaryCE
    functionSourceFile: /src/icu/source/i18n/collationrootelements.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t getLastSecondaryCE() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: getFirstPrimary
    functionSourceFile: /src/icu/source/i18n/collationrootelements.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t getFirstPrimary() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: makeCE
      Src: /src/icu/source/i18n/collationrootelements.h:152,1
    - Dst: getFirstPrimary
      Src: /src/icu/source/i18n/collationrootelements.h:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: getFirstPrimaryCE
    functionSourceFile: /src/icu/source/i18n/collationrootelements.h
    functionUses: []
    functionsReached:
    - getFirstPrimary
    - makeCE
    linkageType: ''
    returnType: int64_t
    signature: 'int64_t getFirstPrimaryCE() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - q
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: isEndOfPrimaryRange
    functionSourceFile: /src/icu/source/i18n/collationrootelements.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isEndOfPrimaryRange(uint32_t q) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompactData
      Src: /src/icu/source/i18n/number_compact.h:23,1
    - Dst: CompactHandler
      Src: /src/icu/source/i18n/number_compact.h:63,1
    - Dst: data
      Src: /src/icu/source/i18n/number_compact.h:42,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 84
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/number_compact.h
    functionUses: []
    functionsReached:
    - CompactData
    - CompactHandler
    - data
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace number '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompactData
      Src: /src/icu/source/i18n/number_compact.h:23,1
    - Dst: data
      Src: /src/icu/source/i18n/number_compact.h:42,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 49
    functionName: MultiplierProducer
    functionSourceFile: /src/icu/source/i18n/number_compact.h
    functionUses: []
    functionsReached:
    - CompactData
    - data
    linkageType: ''
    returnType: class
    signature: 'class CompactData : public MultiplierProducer '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompactData
      Src: /src/icu/source/i18n/number_compact.h:23,1
    - Dst: CompactHandler
      Src: /src/icu/source/i18n/number_compact.h:63,1
    - Dst: data
      Src: /src/icu/source/i18n/number_compact.h:42,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 83
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/number_compact.h
    functionUses: []
    functionsReached:
    - CompactData
    - CompactHandler
    - data
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/icu/source/i18n/number_compact.h:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: CompactDataSink
    functionSourceFile: /src/icu/source/i18n/number_compact.h
    functionUses: []
    functionsReached:
    - data
    linkageType: ''
    returnType: class
    signature: 'class CompactDataSink : public ResourceSink '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loadRootRules
      Src: /src/icu/source/i18n/ucol_imp.h:80,1
    - Dst: CollationLoader
      Src: /src/icu/source/i18n/ucol_imp.h:89,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 130
    functionName: CollationLoader
    functionSourceFile: /src/icu/source/i18n/ucol_imp.h
    functionUses: []
    functionsReached:
    - loadRootRules
    - CollationLoader
    linkageType: ''
    returnType: class
    signature: 'class CollationLoader '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: hasValues
    functionSourceFile: /src/icu/source/i18n/tznames_impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool CharacterNode:: hasValues() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: countValues
    functionSourceFile: /src/icu/source/i18n/tznames_impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t CharacterNode:: countValues() const '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: getValue
    functionSourceFile: /src/icu/source/i18n/tznames_impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'inline const void *CharacterNode::getValue(int32_t index) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getAvailableMetaZoneIDs
      Src: /src/icu/source/i18n/tznames_impl.h:240,1
    - Dst: getReferenceZoneID
      Src: /src/icu/source/i18n/tznames_impl.h:244,1
    - Dst: getTimeZoneDisplayName
      Src: /src/icu/source/i18n/tznames_impl.h:247,1
    - Dst: getMetaZoneID
      Src: /src/icu/source/i18n/tznames_impl.h:243,1
    - Dst: getMetaZoneDisplayName
      Src: /src/icu/source/i18n/tznames_impl.h:246,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 258
    functionName: TZDBTimeZoneNames
    functionSourceFile: /src/icu/source/i18n/tznames_impl.h
    functionUses: []
    functionsReached:
    - getMetaZoneID
    - getTimeZoneDisplayName
    - getReferenceZoneID
    - getAvailableMetaZoneIDs
    - getMetaZoneDisplayName
    linkageType: ''
    returnType: class
    signature: 'class TZDBTimeZoneNames : public TimeZoneNames '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getAvailableMetaZoneIDs
      Src: /src/icu/source/i18n/tznames_impl.h:178,1
    - Dst: getTimeZoneDisplayName
      Src: /src/icu/source/i18n/tznames_impl.h:185,1
    - Dst: getMetaZoneDisplayName
      Src: /src/icu/source/i18n/tznames_impl.h:184,1
    - Dst: getMetaZoneID
      Src: /src/icu/source/i18n/tznames_impl.h:181,1
    - Dst: getReferenceZoneID
      Src: /src/icu/source/i18n/tznames_impl.h:182,1
    - Dst: getExemplarLocationName
      Src: /src/icu/source/i18n/tznames_impl.h:187,1
    - Dst: doFind
      Src: /src/icu/source/i18n/tznames_impl.h:221,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 228
    functionName: TimeZoneNamesImpl
    functionSourceFile: /src/icu/source/i18n/tznames_impl.h
    functionUses: []
    functionsReached:
    - getExemplarLocationName
    - getMetaZoneID
    - getTimeZoneDisplayName
    - getReferenceZoneID
    - getAvailableMetaZoneIDs
    - getMetaZoneDisplayName
    - doFind
    linkageType: ''
    returnType: class
    signature: 'class TimeZoneNamesImpl : public TimeZoneNames '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: TextTrieMapSearchResultHandler
    functionSourceFile: /src/icu/source/i18n/tznames_impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class TextTrieMapSearchResultHandler : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: getRuleSet
    functionSourceFile: /src/icu/source/i18n/nfsubs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: NFRuleSet*
    signature: 'const NFRuleSet * getRuleSet() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 229
    functionName: getPos
    functionSourceFile: /src/icu/source/i18n/nfsubs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getPos() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: rhs
    functionSourceFile: /src/icu/source/i18n/nfsubs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool operator!=(const NFSubstitution& rhs ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: getNumberFormat
    functionSourceFile: /src/icu/source/i18n/nfsubs.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: DecimalFormat*
    signature: 'const DecimalFormat * getNumberFormat() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/icu/source/i18n/reldtfmt.h:103,1
    - Dst: toPattern
      Src: /src/icu/source/i18n/reldtfmt.h:198,1
    - Dst: toPatternDate
      Src: /src/icu/source/i18n/reldtfmt.h:206,1
    - Dst: toPatternTime
      Src: /src/icu/source/i18n/reldtfmt.h:214,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 330
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 330
    functionName: RelativeDateFormat
    functionSourceFile: /src/icu/source/i18n/reldtfmt.h
    functionUses: []
    functionsReached:
    - toPatternDate
    - toPatternTime
    - toPattern
    - format
    linkageType: ''
    returnType: class
    signature: 'class RelativeDateFormat : public DateFormat '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: FieldPositionHandler
    functionSourceFile: /src/icu/source/i18n/fphdlimp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_I18N_API
    signature: 'U_I18N_API FieldPositionHandler : public UMemory '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_SUCCESS
      Src: /src/icu/source/i18n/fphdlimp.h:93,1
    - Dst: U_FAILURE
      Src: /src/icu/source/i18n/fphdlimp.h:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - _status
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: getError
    functionSourceFile: /src/icu/source/i18n/fphdlimp.h
    functionUses: []
    functionsReached:
    - U_SUCCESS
    - U_FAILURE
    linkageType: ''
    returnType: void
    signature: 'inline void getError(UErrorCode& _status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FieldPositionOnlyHandler
      Src: /src/icu/source/i18n/fphdlimp.h:47,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 60
    functionName: FieldPositionOnlyHandler
    functionSourceFile: /src/icu/source/i18n/fphdlimp.h
    functionUses: []
    functionsReached:
    - FieldPositionOnlyHandler
    linkageType: ''
    returnType: class
    signature: 'class FieldPositionOnlyHandler : public FieldPositionHandler '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FieldPositionIteratorHandler
      Src: /src/icu/source/i18n/fphdlimp.h:82,1
    - Dst: U_FAILURE
      Src: /src/icu/source/i18n/fphdlimp.h:93,1
    - Dst: FieldPositionIteratorHandler
      Src: /src/icu/source/i18n/fphdlimp.h:85,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/i18n/fphdlimp.h:93,1
    - Dst: FieldPositionIteratorHandler
      Src: /src/icu/source/i18n/fphdlimp.h:84,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 101
    functionName: FieldPositionIteratorHandler
    functionSourceFile: /src/icu/source/i18n/fphdlimp.h
    functionUses: []
    functionsReached:
    - U_SUCCESS
    - FieldPositionIteratorHandler
    - U_FAILURE
    linkageType: ''
    returnType: class
    signature: 'class FieldPositionIteratorHandler : public FieldPositionHandler '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - category
    argTypes:
    - UFieldCategory
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: setCategory
    functionSourceFile: /src/icu/source/i18n/fphdlimp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void setCategory(UFieldCategory category) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 57
    functionName: CharsetRecog_2022
    functionSourceFile: /src/icu/source/i18n/csr2022.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_2022 : public CharsetRecognizer '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: CharsetRecog_2022JP
    functionSourceFile: /src/icu/source/i18n/csr2022.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_2022JP :public CharsetRecog_2022 '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: CharsetRecog_2022KR
    functionSourceFile: /src/icu/source/i18n/csr2022.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_2022KR :public CharsetRecog_2022 '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: CharsetRecog_2022CN
    functionSourceFile: /src/icu/source/i18n/csr2022.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CharsetRecog_2022CN :public CharsetRecog_2022 '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/icu/source/i18n/winnmfmt.h:149,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 158
    functionName: Win32NumberFormat
    functionSourceFile: /src/icu/source/i18n/winnmfmt.h
    functionUses: []
    functionsReached:
    - format
    linkageType: ''
    returnType: class
    signature: 'class Win32NumberFormat : public NumberFormat '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: powerOfTen
      Src: /src/icu/source/i18n/number_multiplier.h:42,1
    - Dst: byDoubleAndPowerOfTen
      Src: /src/icu/source/i18n/number_multiplier.h:40,1
    - Dst: none
      Src: /src/icu/source/i18n/number_multiplier.h:46,1
    - Dst: byDouble
      Src: /src/icu/source/i18n/number_multiplier.h:44,1
    - Dst: MultiplierFormatHandler
      Src: /src/icu/source/i18n/number_multiplier.h:22,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 52
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/number_multiplier.h
    functionUses: []
    functionsReached:
    - byDouble
    - none
    - MultiplierFormatHandler
    - byDoubleAndPowerOfTen
    - powerOfTen
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace number '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: byDoubleAndPowerOfTen
      Src: /src/icu/source/i18n/number_multiplier.h:40,1
    - Dst: powerOfTen
      Src: /src/icu/source/i18n/number_multiplier.h:42,1
    - Dst: byDouble
      Src: /src/icu/source/i18n/number_multiplier.h:44,1
    - Dst: none
      Src: /src/icu/source/i18n/number_multiplier.h:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - properties
    argTypes:
    - DecimalFormatProperties
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: scaleFromProperties
    functionSourceFile: /src/icu/source/i18n/number_multiplier.h
    functionUses: []
    functionsReached:
    - byDoubleAndPowerOfTen
    - none
    - byDouble
    - powerOfTen
    linkageType: ''
    returnType: Scale
    signature: 'static inline Scale scaleFromProperties(const DecimalFormatProperties&
      properties) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: powerOfTen
      Src: /src/icu/source/i18n/number_multiplier.h:42,1
    - Dst: byDoubleAndPowerOfTen
      Src: /src/icu/source/i18n/number_multiplier.h:40,1
    - Dst: none
      Src: /src/icu/source/i18n/number_multiplier.h:46,1
    - Dst: byDouble
      Src: /src/icu/source/i18n/number_multiplier.h:44,1
    - Dst: MultiplierFormatHandler
      Src: /src/icu/source/i18n/number_multiplier.h:22,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 51
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/number_multiplier.h
    functionUses: []
    functionsReached:
    - byDouble
    - none
    - MultiplierFormatHandler
    - byDoubleAndPowerOfTen
    - powerOfTen
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U16_LEAD
      Src: /src/icu/source/i18n/collationfcd.h:87,1
    - Dst: CollationFCD
      Src: /src/icu/source/i18n/collationfcd.h:125,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 131
    functionName: CollationFCD
    functionSourceFile: /src/icu/source/i18n/collationfcd.h
    functionUses: []
    functionsReached:
    - CollationFCD
    - U16_LEAD
    linkageType: ''
    returnType: U_I18N_API
    signature: 'U_I18N_API CollationFCD '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: maybeTibetanCompositeVowel
    functionSourceFile: /src/icu/source/i18n/collationfcd.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool maybeTibetanCompositeVowel(UChar32 c) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U16_LEAD
      Src: /src/icu/source/i18n/collationfcd.h:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: mayHaveLccc
    functionSourceFile: /src/icu/source/i18n/collationfcd.h
    functionUses: []
    functionsReached:
    - U16_LEAD
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool mayHaveLccc(UChar32 c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: hasTccc
    functionSourceFile: /src/icu/source/i18n/collationfcd.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool hasTccc(UChar32 c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - fcd16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: isFCD16OfTibetanCompositeVowel
    functionSourceFile: /src/icu/source/i18n/collationfcd.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isFCD16OfTibetanCompositeVowel(uint16_t fcd16) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CollationSettings
      Src: /src/icu/source/i18n/collationsettings.h:104,1
    - Dst: minHighNoReorder
      Src: /src/icu/source/i18n/collationsettings.h:109,1
    - Dst: reorderTable
      Src: /src/icu/source/i18n/collationsettings.h:108,1
    - Dst: options
      Src: /src/icu/source/i18n/collationsettings.h:105,1
    - Dst: variableTop
      Src: /src/icu/source/i18n/collationsettings.h:107,1
    - Dst: reorderRanges
      Src: /src/icu/source/i18n/collationsettings.h:110,1
    - Dst: reorderRangesLength
      Src: /src/icu/source/i18n/collationsettings.h:110,1
    - Dst: reorderCodes
      Src: /src/icu/source/i18n/collationsettings.h:111,1
    - Dst: reorderCodesLength
      Src: /src/icu/source/i18n/collationsettings.h:111,1
    - Dst: reorderCodesCapacity
      Src: /src/icu/source/i18n/collationsettings.h:111,1
    - Dst: reorderEx
      Src: /src/icu/source/i18n/collationsettings.h:140,1
    - Dst: isTertiaryWithCaseBits
      Src: /src/icu/source/i18n/collationsettings.h:191,1
    - Dst: CollationSettings
      Src: /src/icu/source/i18n/collationsettings.h:114,1
    - Dst: fastLatinOptions
      Src: /src/icu/source/i18n/collationsettings.h:112,1
    - Dst: getStrength
      Src: /src/icu/source/i18n/collationsettings.h:151,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 268
    functionName: CollationSettings
    functionSourceFile: /src/icu/source/i18n/collationsettings.h
    functionUses: []
    functionsReached:
    - reorderRangesLength
    - getStrength
    - reorderTable
    - reorderEx
    - reorderRanges
    - reorderCodes
    - CollationSettings
    - fastLatinOptions
    - reorderCodesCapacity
    - options
    - isTertiaryWithCaseBits
    - variableTop
    - reorderCodesLength
    - minHighNoReorder
    linkageType: ''
    returnType: struct U_I18N_API
    signature: 'struct U_I18N_API CollationSettings : public SharedObject '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reorderEx
      Src: /src/icu/source/i18n/collationsettings.h:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: reorder
    functionSourceFile: /src/icu/source/i18n/collationsettings.h
    functionUses: []
    functionsReached:
    - reorderEx
    linkageType: ''
    returnType: uint32_t
    signature: 'inline uint32_t reorder(uint32_t p) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: hashCode
    functionSourceFile: /src/icu/source/i18n/collationsettings.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t hashCode() const; void resetReordering(); void aliasReordering(const
      CollationData &data, const int32_t *codes, int32_t length, const uint32_t *ranges,
      int32_t rangesLength, const uint8_t *table, UErrorCode &errorCode); void setReordering(const
      CollationData &data, const int32_t *codes, int32_t codesLength, UErrorCode &errorCode);
      void copyReorderingFrom(const CollationSettings &other, UErrorCode &errorCode);
      inline UBool hasReordering() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - options
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: getStrength
    functionSourceFile: /src/icu/source/i18n/collationsettings.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t getStrength(int32_t options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getStrength
      Src: /src/icu/source/i18n/collationsettings.h:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: getStrength
    functionSourceFile: /src/icu/source/i18n/collationsettings.h
    functionUses: []
    functionsReached:
    - getStrength
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getStrength() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: getCaseFirst
    functionSourceFile: /src/icu/source/i18n/collationsettings.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UColAttributeValue
    signature: 'UColAttributeValue getCaseFirst() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: getAlternateHandling
    functionSourceFile: /src/icu/source/i18n/collationsettings.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UColAttributeValue
    signature: 'UColAttributeValue getAlternateHandling() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: getMaxVariable
    functionSourceFile: /src/icu/source/i18n/collationsettings.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: MaxVariable
    signature: 'MaxVariable getMaxVariable() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: other
    functionSourceFile: /src/icu/source/i18n/collationsettings.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool operator!=(const CollationSettings & other ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - bit
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: getFlag
    functionSourceFile: /src/icu/source/i18n/collationsettings.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UColAttributeValue
    signature: 'UColAttributeValue getFlag(int32_t bit) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isTertiaryWithCaseBits
      Src: /src/icu/source/i18n/collationsettings.h:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - options
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: getTertiaryMask
    functionSourceFile: /src/icu/source/i18n/collationsettings.h
    functionUses: []
    functionsReached:
    - isTertiaryWithCaseBits
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t getTertiaryMask(int32_t options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - options
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: isTertiaryWithCaseBits
    functionSourceFile: /src/icu/source/i18n/collationsettings.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isTertiaryWithCaseBits(int32_t options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: hasBackwardSecondary
    functionSourceFile: /src/icu/source/i18n/collationsettings.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool hasBackwardSecondary() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - options
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: sortsTertiaryUpperCaseFirst
    functionSourceFile: /src/icu/source/i18n/collationsettings.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool sortsTertiaryUpperCaseFirst(int32_t options) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: dontCheckFCD
    functionSourceFile: /src/icu/source/i18n/collationsettings.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool dontCheckFCD() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: isNumeric
    functionSourceFile: /src/icu/source/i18n/collationsettings.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool isNumeric() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DayPeriodRules
      Src: /src/icu/source/i18n/dayperiodrules.h:58,1
    - Dst: load
      Src: /src/icu/source/i18n/dayperiodrules.h:63,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 84
    functionName: DayPeriodRules
    functionSourceFile: /src/icu/source/i18n/dayperiodrules.h
    functionUses: []
    functionsReached:
    - load
    - DayPeriodRules
    linkageType: ''
    returnType: class
    signature: 'class DayPeriodRules : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - hour
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: getDayPeriodForHour
    functionSourceFile: /src/icu/source/i18n/dayperiodrules.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: DayPeriod
    signature: 'DayPeriod getDayPeriodForHour(int32_t hour) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: hasNoon
    functionSourceFile: /src/icu/source/i18n/dayperiodrules.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool hasNoon() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: hasMidnight
    functionSourceFile: /src/icu/source/i18n/dayperiodrules.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool hasMidnight() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 69
    functionName: CollationData
    functionSourceFile: /src/icu/source/i18n/collationdata.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct U_I18N_API
    signature: 'struct U_I18N_API CollationData : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasCE32Tag
      Src: /src/icu/source/i18n/collationdata.h:77,1
    - Dst: getCE32
      Src: /src/icu/source/i18n/collationdata.h:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: isDigit
    functionSourceFile: /src/icu/source/i18n/collationdata.h
    functionUses: []
    functionsReached:
    - hasCE32Tag
    - getCE32
    linkageType: ''
    returnType: UBool
    signature: 'UBool isDigit(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: isCompressibleLeadByte
    functionSourceFile: /src/icu/source/i18n/collationdata.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isCompressibleLeadByte(uint32_t b) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indexFromCE32
      Src: /src/icu/source/i18n/collationdata.h:115,1
    - Dst: getThreeBytePrimaryForOffsetData
      Src: /src/icu/source/i18n/collationdata.h:116,1
    - Dst: makeCE
      Src: /src/icu/source/i18n/collationdata.h:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - c
    - ce32
    argTypes:
    - UChar32
    - uint32_t
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: getCEFromOffsetCE32
    functionSourceFile: /src/icu/source/i18n/collationdata.h
    functionUses: []
    functionsReached:
    - getThreeBytePrimaryForOffsetData
    - indexFromCE32
    - makeCE
    linkageType: ''
    returnType: int64_t
    signature: 'int64_t getCEFromOffsetCE32(UChar32 c, uint32_t ce32) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isDigit
      Src: /src/icu/source/i18n/collationdata.h:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - c
    - numeric
    argTypes:
    - UChar32
    - UBool
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: isUnsafeBackward
    functionSourceFile: /src/icu/source/i18n/collationdata.h
    functionUses: []
    functionsReached:
    - isDigit
    linkageType: ''
    returnType: UBool
    signature: 'UBool isUnsafeBackward(UChar32 c, UBool numeric) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTRIE2_GET32_FROM_SUPP
      Src: /src/icu/source/i18n/collationdata.h:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: getCE32FromSupplementary
    functionSourceFile: /src/icu/source/i18n/collationdata.h
    functionUses: []
    functionsReached:
    - UTRIE2_GET32_FROM_SUPP
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t getCE32FromSupplementary(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isCompressibleLeadByte
      Src: /src/icu/source/i18n/collationdata.h:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: isCompressiblePrimary
    functionSourceFile: /src/icu/source/i18n/collationdata.h
    functionUses: []
    functionsReached:
    - isCompressibleLeadByte
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool isCompressiblePrimary(uint32_t p) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - UChar*
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: readCE32
    functionSourceFile: /src/icu/source/i18n/collationdata.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t readCE32(const UChar *p) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: getFCD16
    functionSourceFile: /src/icu/source/i18n/collationdata.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: 'uint16_t getFCD16(UChar32 c) const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SortKeyByteSink
      Src: /src/icu/source/i18n/collationkeys.h:33,1
    - Dst: ignore_
      Src: /src/icu/source/i18n/collationkeys.h:35,1
    - Dst: buffer_
      Src: /src/icu/source/i18n/collationkeys.h:34,1
    - Dst: appended_
      Src: /src/icu/source/i18n/collationkeys.h:35,1
    - Dst: capacity_
      Src: /src/icu/source/i18n/collationkeys.h:34,1
    - Dst: Resize
      Src: /src/icu/source/i18n/collationkeys.h:45,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 87
    functionName: SortKeyByteSink
    functionSourceFile: /src/icu/source/i18n/collationkeys.h
    functionUses: []
    functionsReached:
    - appended_
    - ignore_
    - buffer_
    - SortKeyByteSink
    - capacity_
    - Resize
    linkageType: ''
    returnType: class
    signature: 'class SortKeyByteSink : public ByteSink '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Resize
      Src: /src/icu/source/i18n/collationkeys.h:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: Append
    functionSourceFile: /src/icu/source/i18n/collationkeys.h
    functionUses: []
    functionsReached:
    - Resize
    linkageType: ''
    returnType: void
    signature: 'void Append(uint32_t b) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: NumberOfBytesAppended
    functionSourceFile: /src/icu/source/i18n/collationkeys.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t NumberOfBytesAppended() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - numIgnore
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: IgnoreBytes
    functionSourceFile: /src/icu/source/i18n/collationkeys.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void IgnoreBytes(int32_t numIgnore) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: GetRemainingCapacity
    functionSourceFile: /src/icu/source/i18n/collationkeys.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t GetRemainingCapacity() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Overflowed
    functionSourceFile: /src/icu/source/i18n/collationkeys.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool Overflowed() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: IsOk
    functionSourceFile: /src/icu/source/i18n/collationkeys.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool IsOk() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: SetNotOk
    functionSourceFile: /src/icu/source/i18n/collationkeys.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void SetNotOk() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CollationKeys
      Src: /src/icu/source/i18n/collationkeys.h:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 163
    functionName: CollationKeys
    functionSourceFile: /src/icu/source/i18n/collationkeys.h
    functionUses: []
    functionsReached:
    - CollationKeys
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API CollationKeys /* not : public UObject because all
      methods are static */ '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TailoredSet
      Src: /src/icu/source/i18n/collationsets.h:44,1
    - Dst: suffix
      Src: /src/icu/source/i18n/collationsets.h:47,1
    - Dst: baseData
      Src: /src/icu/source/i18n/collationsets.h:45,1
    - Dst: data
      Src: /src/icu/source/i18n/collationsets.h:45,1
    - Dst: tailored
      Src: /src/icu/source/i18n/collationsets.h:46,1
    - Dst: errorCode
      Src: /src/icu/source/i18n/collationsets.h:48,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 84
    functionName: TailoredSet
    functionSourceFile: /src/icu/source/i18n/collationsets.h
    functionUses: []
    functionsReached:
    - baseData
    - errorCode
    - TailoredSet
    - data
    - suffix
    - tailored
    linkageType: ''
    returnType: class
    signature: 'class TailoredSet : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ContractionsAndExpansions
      Src: /src/icu/source/i18n/collationsets.h:95,1
    - Dst: sink
      Src: /src/icu/source/i18n/collationsets.h:98,1
    - Dst: data
      Src: /src/icu/source/i18n/collationsets.h:96,1
    - Dst: contractions
      Src: /src/icu/source/i18n/collationsets.h:97,1
    - Dst: expansions
      Src: /src/icu/source/i18n/collationsets.h:97,1
    - Dst: addPrefixes
      Src: /src/icu/source/i18n/collationsets.h:99,1
    - Dst: checkTailored
      Src: /src/icu/source/i18n/collationsets.h:100,1
    - Dst: suffix
      Src: /src/icu/source/i18n/collationsets.h:101,1
    - Dst: errorCode
      Src: /src/icu/source/i18n/collationsets.h:102,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 138
    functionName: ContractionsAndExpansions
    functionSourceFile: /src/icu/source/i18n/collationsets.h
    functionUses: []
    functionsReached:
    - suffix
    - contractions
    - sink
    - errorCode
    - data
    - ContractionsAndExpansions
    - addPrefixes
    - checkTailored
    - expansions
    linkageType: ''
    returnType: class
    signature: 'class ContractionsAndExpansions : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: resetPrefix
    functionSourceFile: /src/icu/source/i18n/collationsets.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void resetPrefix() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pfx
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: setPrefix
    functionSourceFile: /src/icu/source/i18n/collationsets.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setPrefix(const UnicodeString &pfx) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: resetPrefix
    functionSourceFile: /src/icu/source/i18n/collationsets.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void resetPrefix() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pfx
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: setPrefix
    functionSourceFile: /src/icu/source/i18n/collationsets.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setPrefix(const UnicodeString &pfx) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: TimeUnitFormat
    functionSourceFile: /src/icu/source/i18n/unicode/tmutfmt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool TimeUnitFormat ::operator!=(const Format& other) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: operator
    functionSourceFile: /src/icu/source/i18n/unicode/measunit.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool operator !=(const UObject& other) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DateTimeRule
      Src: /src/icu/source/i18n/unicode/dtrule.h:122,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 246
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 246
    functionName: DateTimeRule
    functionSourceFile: /src/icu/source/i18n/unicode/dtrule.h
    functionUses: []
    functionsReached:
    - DateTimeRule
    linkageType: ''
    returnType: U_I18N_API
    signature: 'U_I18N_API DateTimeRule : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: getCategory
    functionSourceFile: /src/icu/source/i18n/unicode/formattedvalue.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t getCategory() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: getLimit
    functionSourceFile: /src/icu/source/i18n/unicode/formattedvalue.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t getLimit() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: getInt64IterationContext
    functionSourceFile: /src/icu/source/i18n/unicode/formattedvalue.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'inline int64_t getInt64IterationContext() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: getStart
    functionSourceFile: /src/icu/source/i18n/unicode/formattedvalue.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t getStart() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: getField
    functionSourceFile: /src/icu/source/i18n/unicode/formattedvalue.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t getField() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toString
      Src: /src/icu/source/i18n/unicode/formattedvalue.h:268,1
    - Dst: toTempString
      Src: /src/icu/source/i18n/unicode/formattedvalue.h:284,1
    - Dst: nextPosition
      Src: /src/icu/source/i18n/unicode/formattedvalue.h:321,1
    - Dst: appendTo
      Src: /src/icu/source/i18n/unicode/formattedvalue.h:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 322
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 322
    functionName: FormattedValue
    functionSourceFile: /src/icu/source/i18n/unicode/formattedvalue.h
    functionUses: []
    functionsReached:
    - nextPosition
    - appendTo
    - toString
    - toTempString
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API FormattedValue /* not : public UObject because this
      is an interface/mixin class */ '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: twoPattern
      Src: /src/icu/source/i18n/unicode/listformatter.h:54,1
    - Dst: endPattern
      Src: /src/icu/source/i18n/unicode/listformatter.h:54,1
    - Dst: middlePattern
      Src: /src/icu/source/i18n/unicode/listformatter.h:54,1
    - Dst: startPattern
      Src: /src/icu/source/i18n/unicode/listformatter.h:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: UMemory
    functionSourceFile: /src/icu/source/i18n/unicode/listformatter.h
    functionUses: []
    functionsReached:
    - middlePattern
    - twoPattern
    - endPattern
    - startPattern
    linkageType: ''
    returnType: struct ListFormatData
    signature: 'struct ListFormatData : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/icu/source/i18n/unicode/listformatter.h:219,1
    - Dst: format
      Src: /src/icu/source/i18n/unicode/listformatter.h:267,1
    - Dst: format
      Src: /src/icu/source/i18n/unicode/listformatter.h:238,1
    - Dst: format_
      Src: /src/icu/source/i18n/unicode/listformatter.h:290,1
    - Dst: ListFormatter
      Src: /src/icu/source/i18n/unicode/listformatter.h:294,1
    - Dst: fData
      Src: /src/icu/source/i18n/unicode/listformatter.h:131,1
    - Dst: fData
      Src: /src/icu/source/i18n/unicode/listformatter.h:133,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 298
    functionName: FormattedList
    functionSourceFile: /src/icu/source/i18n/unicode/listformatter.h
    functionUses: []
    functionsReached:
    - fData
    - ListFormatter
    - format_
    - format
    linkageType: ''
    returnType: virtual
    signature: 'virtual ~ FormattedList() U_OVERRIDE; /** Copying not supported; use
      move constructor instead. */ FormattedList(const FormattedList&) = delete; /**
      Copying not supported; use move assignment instead. */ FormattedList& operator=(const
      FormattedList&) = delete; /** * Move assignment: Leaves the source FormattedList
      in an undefined state. * @draft ICU 64 */ FormattedList& operator=(FormattedList&&
      src) U_NOEXCEPT; /** @copydoc FormattedValue::toString() */ UnicodeString toString(UErrorCode&
      status) const U_OVERRIDE; /** @copydoc FormattedValue::toTempString() */ UnicodeString
      toTempString(UErrorCode& status) const U_OVERRIDE; /** @copydoc FormattedValue::appendTo()
      */ Appendable &appendTo(Appendable& appendable, UErrorCode& status) const U_OVERRIDE;
      /** @copydoc FormattedValue::nextPosition() */ UBool nextPosition(ConstrainedFieldPosition&
      cfpos, UErrorCode& status) const U_OVERRIDE; private: FormattedListData *fData;
      UErrorCode fErrorCode; explicit FormattedList(FormattedListData *results) :
      fData(results), fErrorCode(U_ZERO_ERROR) {} explicit FormattedList(UErrorCode
      errorCode) : fData(nullptr), fErrorCode(errorCode) {} friend class ListFormatter;
      };#endif /* U_HIDE_DRAFT_API */#endif // !UCONFIG_NO_FORMATTING /** * An immutable
      class for formatting a list, using data from CLDR (or supplied * separately).
      * * Example: Input data ["Alice", "Bob", "Charlie", "Delta"] will be formatted
      * as "Alice, Bob, Charlie and Delta" in English. * * The ListFormatter class
      is not intended for public subclassing. * @stable ICU 50 */ class U_I18N_API
      ListFormatter : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1565
      start: 1563
    functionDepth: 0
    functionLinenumber: 1563
    functionLinenumberEnd: 1565
    functionName: getMaximumContextLength
    functionSourceFile: /src/icu/source/i18n/unicode/translit.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t Transliterator:: getMaximumContextLength(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - id
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 1572
      start: 1567
    functionDepth: 0
    functionLinenumber: 1567
    functionLinenumberEnd: 1572
    functionName: setID
    functionSourceFile: /src/icu/source/i18n/unicode/translit.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void Transliterator:: setID(const UnicodeString& id) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: rhs
    functionSourceFile: /src/icu/source/i18n/unicode/fpositer.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool operator!=(const FieldPositionIterator& rhs ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fromUCollator
      Src: /src/icu/source/i18n/unicode/tblcoll.h:786,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 787
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 787
    functionName: getRules
    functionSourceFile: /src/icu/source/i18n/unicode/tblcoll.h
    functionUses: []
    functionsReached:
    - fromUCollator
    linkageType: ''
    returnType: UnicodeString
    signature: 'const UnicodeString & getRules() const; /** * Gets the version information
      for a Collator. * @param info the version # information, the result will be
      filled in * @stable ICU 2.0 */ virtual void getVersion(UVersionInfo info) const;#ifndef
      U_HIDE_DEPRECATED_API /** * Returns the maximum length of any expansion sequences
      that end with the * specified comparison order. * * This is specific to the
      kind of collation element values and sequences * returned by the CollationElementIterator.
      * Call CollationElementIterator::getMaxExpansion() instead. * * @param order
      a collation order returned by CollationElementIterator::previous * or CollationElementIterator::next.
      * @return maximum size of the expansion sequences ending with the collation
      * element, or 1 if the collation element does not occur at the end of * any
      expansion sequence * @see CollationElementIterator#getMaxExpansion * @deprecated
      ICU 51 Use CollationElementIterator::getMaxExpansion() instead. */ int32_t getMaxExpansion(int32_t
      order) const;#endif /* U_HIDE_DEPRECATED_API */ /** * Returns a unique class
      ID POLYMORPHICALLY. Pure virtual override. This * method is to implement a simple
      version of RTTI, since not all C++ * compilers support genuine RTTI. Polymorphic
      operator==() and clone() * methods call this method. * @return The class ID
      for this object. All objects of a given class have * the same class ID. Objects
      of other classes have different class * IDs. * @stable ICU 2.0 */ virtual UClassID
      getDynamicClassID(void) const; /** * Returns the class ID for this class. This
      is useful only for comparing to * a return value from getDynamicClassID(). For
      example: * <pre> * Base* polymorphic_pointer = createPolymorphicObject(); *
      if (polymorphic_pointer->getDynamicClassID() == * Derived::getStaticClassID())
      ... * </pre> * @return The class ID for all objects of this class. * @stable
      ICU 2.0 */ static UClassID U_EXPORT2 getStaticClassID(void); #ifndef U_HIDE_DEPRECATED_API
      /** * Do not use this method: The caller and the ICU library might use different
      heaps. * Use cloneBinary() instead which writes to caller-provided memory. *
      * Returns a binary format of this collator. * @param length Returns the length
      of the data, in bytes * @param status the error code status. * @return memory,
      owned by the caller, of size ''length'' bytes. * @deprecated ICU 52. Use cloneBinary()
      instead. */ uint8_t *cloneRuleData(int32_t &length, UErrorCode &status) const;
      #endif /* U_HIDE_DEPRECATED_API */ /** Creates a binary image of a collator.
      This binary image can be stored and * later used to instantiate a collator using
      ucol_openBinary. * This API supports preflighting. * @param buffer a fill-in
      buffer to receive the binary image * @param capacity capacity of the destination
      buffer * @param status for catching errors * @return size of the image * @see
      ucol_openBinary * @stable ICU 3.4 */ int32_t cloneBinary(uint8_t *buffer, int32_t
      capacity, UErrorCode &status) const; /** * Returns current rules. Delta defines
      whether full rules are returned or * just the tailoring. * * getRules(void)
      should normally be used instead. * See http://userguide.icu-project.org/collation/customization#TOC-Building-on-Existing-Locales
      * @param delta one of UCOL_TAILORING_ONLY, UCOL_FULL_RULES. * @param buffer
      UnicodeString to store the result rules * @stable ICU 2.2 * @see UCOL_FULL_RULES
      */ void getRules(UColRuleOption delta, UnicodeString &buffer) const; /** * Universal
      attribute setter * @param attr attribute type * @param value attribute value
      * @param status to indicate whether the operation went on smoothly or there
      were errors * @stable ICU 2.2 */ virtual void setAttribute(UColAttribute attr,
      UColAttributeValue value, UErrorCode &status); /** * Universal attribute getter.
      * @param attr attribute type * @param status to indicate whether the operation
      went on smoothly or there were errors * @return attribute value * @stable ICU
      2.2 */ virtual UColAttributeValue getAttribute(UColAttribute attr, UErrorCode
      &status) const; /** * Sets the variable top to the top of the specified reordering
      group. * The variable top determines the highest-sorting character * which is
      affected by UCOL_ALTERNATE_HANDLING. * If that attribute is set to UCOL_NON_IGNORABLE,
      then the variable top has no effect. * @param group one of UCOL_REORDER_CODE_SPACE,
      UCOL_REORDER_CODE_PUNCTUATION, * UCOL_REORDER_CODE_SYMBOL, UCOL_REORDER_CODE_CURRENCY;
      * or UCOL_REORDER_CODE_DEFAULT to restore the default max variable group * @param
      errorCode Standard ICU error code. Its input value must * pass the U_SUCCESS()
      test, or else the function returns * immediately. Check for U_FAILURE() on output
      or use with * function chaining. (See User Guide for details.) * @return *this
      * @see getMaxVariable * @stable ICU 53 */ virtual Collator &setMaxVariable(UColReorderCode
      group, UErrorCode &errorCode); /** * Returns the maximum reordering group whose
      characters are affected by UCOL_ALTERNATE_HANDLING. * @return the maximum variable
      reordering group. * @see setMaxVariable * @stable ICU 53 */ virtual UColReorderCode
      getMaxVariable() const;#ifndef U_FORCE_HIDE_DEPRECATED_API /** * Sets the variable
      top to the primary weight of the specified string. * * Beginning with ICU 53,
      the variable top is pinned to * the top of one of the supported reordering groups,
      * and it must not be beyond the last of those groups. * See setMaxVariable().
      * @param varTop one or more (if contraction) char16_ts to which the variable
      top should be set * @param len length of variable top string. If -1 it is considered
      to be zero terminated. * @param status error code. If error code is set, the
      return value is undefined. Errors set by this function are: <br> * U_CE_NOT_FOUND_ERROR
      if more than one character was passed and there is no such contraction<br> *
      U_ILLEGAL_ARGUMENT_ERROR if the variable top is beyond * the last reordering
      group supported by setMaxVariable() * @return variable top primary weight *
      @deprecated ICU 53 Call setMaxVariable() instead. */ virtual uint32_t setVariableTop(const
      char16_t *varTop, int32_t len, UErrorCode &status); /** * Sets the variable
      top to the primary weight of the specified string. * * Beginning with ICU 53,
      the variable top is pinned to * the top of one of the supported reordering groups,
      * and it must not be beyond the last of those groups. * See setMaxVariable().
      * @param varTop a UnicodeString size 1 or more (if contraction) of char16_ts
      to which the variable top should be set * @param status error code. If error
      code is set, the return value is undefined. Errors set by this function are:
      <br> * U_CE_NOT_FOUND_ERROR if more than one character was passed and there
      is no such contraction<br> * U_ILLEGAL_ARGUMENT_ERROR if the variable top is
      beyond * the last reordering group supported by setMaxVariable() * @return variable
      top primary weight * @deprecated ICU 53 Call setMaxVariable() instead. */ virtual
      uint32_t setVariableTop(const UnicodeString &varTop, UErrorCode &status); /**
      * Sets the variable top to the specified primary weight. * * Beginning with
      ICU 53, the variable top is pinned to * the top of one of the supported reordering
      groups, * and it must not be beyond the last of those groups. * See setMaxVariable().
      * @param varTop primary weight, as returned by setVariableTop or ucol_getVariableTop
      * @param status error code * @deprecated ICU 53 Call setMaxVariable() instead.
      */ virtual void setVariableTop(uint32_t varTop, UErrorCode &status); #endif
      // U_FORCE_HIDE_DEPRECATED_API /** * Gets the variable top value of a Collator.
      * @param status error code (not changed by function). If error code is set,
      the return value is undefined. * @return the variable top primary weight * @see
      getMaxVariable * @stable ICU 2.0 */ virtual uint32_t getVariableTop(UErrorCode
      &status) const; /** * Get a UnicodeSet that contains all the characters and
      sequences tailored in * this collator. * @param status error code of the operation
      * @return a pointer to a UnicodeSet object containing all the * code points
      and sequences that may sort differently than * in the root collator. The object
      must be disposed of by using delete * @stable ICU 2.4 */ virtual UnicodeSet
      *getTailoredSet(UErrorCode &status) const; /** * Get the sort key as an array
      of bytes from a UnicodeString. * * Note that sort keys are often less efficient
      than simply doing comparison. * For more details, see the ICU User Guide. *
      * @param source string to be processed. * @param result buffer to store result
      in. If NULL, number of bytes needed * will be returned. * @param resultLength
      length of the result buffer. If if not enough the * buffer will be filled to
      capacity. * @return Number of bytes needed for storing the sort key * @stable
      ICU 2.0 */ virtual int32_t getSortKey(const UnicodeString& source, uint8_t *result,
      int32_t resultLength) const; /** * Get the sort key as an array of bytes from
      a char16_t buffer. * * Note that sort keys are often less efficient than simply
      doing comparison. * For more details, see the ICU User Guide. * * @param source
      string to be processed. * @param sourceLength length of string to be processed.
      If -1, the string * is 0 terminated and length will be decided by the function.
      * @param result buffer to store result in. If NULL, number of bytes needed *
      will be returned. * @param resultLength length of the result buffer. If if not
      enough the * buffer will be filled to capacity. * @return Number of bytes needed
      for storing the sort key * @stable ICU 2.2 */ virtual int32_t getSortKey(const
      char16_t *source, int32_t sourceLength, uint8_t *result, int32_t resultLength)
      const; /** * Retrieves the reordering codes for this collator. * @param dest
      The array to fill with the script ordering. * @param destCapacity The length
      of dest. If it is 0, then dest may be NULL and the function * will only return
      the length of the result without writing any codes (pre-flighting). * @param
      status A reference to an error code value, which must not indicate * a failure
      before the function call. * @return The length of the script ordering array.
      * @see ucol_setReorderCodes * @see Collator#getEquivalentReorderCodes * @see
      Collator#setReorderCodes * @stable ICU 4.8 */ virtual int32_t getReorderCodes(int32_t
      *dest, int32_t destCapacity, UErrorCode& status) const; /** * Sets the ordering
      of scripts for this collator. * @param reorderCodes An array of script codes
      in the new order. This can be NULL if the * length is also set to 0. An empty
      array will clear any reordering codes on the collator. * @param reorderCodesLength
      The length of reorderCodes. * @param status error code * @see ucol_setReorderCodes
      * @see Collator#getReorderCodes * @see Collator#getEquivalentReorderCodes *
      @stable ICU 4.8 */ virtual void setReorderCodes(const int32_t* reorderCodes,
      int32_t reorderCodesLength, UErrorCode& status) ; /** * Implements ucol_strcollUTF8().
      * @internal */ virtual UCollationResult internalCompareUTF8( const char *left,
      int32_t leftLength, const char *right, int32_t rightLength, UErrorCode &errorCode)
      const; /** Get the short definition string for a collator. This internal API
      harvests the collator''s * locale and the attribute set and produces a string
      that can be used for opening * a collator with the same attributes using the
      ucol_openFromShortString API. * This string will be normalized. * The structure
      and the syntax of the string is defined in the "Naming collators" * section
      of the users guide: * http://userguide.icu-project.org/collation/concepts#TOC-Collator-naming-scheme
      * This function supports preflighting. * * This is internal, and intended to
      be used with delegate converters. * * @param locale a locale that will appear
      as a collators locale in the resulting * short string definition. If NULL, the
      locale will be harvested * from the collator. * @param buffer space to hold
      the resulting string * @param capacity capacity of the buffer * @param status
      for returning errors. All the preflighting errors are featured * @return length
      of the resulting string * @see ucol_openFromShortString * @see ucol_normalizeShortDefinitionString
      * @see ucol_getShortDefinitionString * @internal */ virtual int32_t internalGetShortDefinitionString(const
      char *locale, char *buffer, int32_t capacity, UErrorCode &status) const; /**
      * Implements ucol_nextSortKeyPart(). * @internal */ virtual int32_t internalNextSortKeyPart(
      UCharIterator *iter, uint32_t state[2], uint8_t *dest, int32_t count, UErrorCode
      &errorCode) const; // Do not enclose the default constructor with #ifndef U_HIDE_INTERNAL_API
      /** * Only for use in ucol_openRules(). * @internal */ RuleBasedCollator();
      #ifndef U_HIDE_INTERNAL_API /** * Implements ucol_getLocaleByType(). * Needed
      because the lifetime of the locale ID string must match that of the collator.
      * getLocale() returns a copy of a Locale, with minimal lifetime in a C wrapper.
      * @internal */ const char *internalGetLocaleID(ULocDataLocaleType type, UErrorCode
      &errorCode) const; /** * Implements ucol_getContractionsAndExpansions(). * Gets
      this collator''s sets of contraction strings and/or * characters and strings
      that map to multiple collation elements (expansions). * If addPrefixes is TRUE,
      then contractions that are expressed as * prefix/pre-context rules are included.
      * @param contractions if not NULL, the set to hold the contractions * @param
      expansions if not NULL, the set to hold the expansions * @param addPrefixes
      include prefix contextual mappings * @param errorCode in/out ICU error code
      * @internal */ void internalGetContractionsAndExpansions( UnicodeSet *contractions,
      UnicodeSet *expansions, UBool addPrefixes, UErrorCode &errorCode) const; /**
      * Adds the contractions that start with character c to the set. * Ignores prefixes.
      Used by AlphabeticIndex. * @internal */ void internalAddContractions(UChar32
      c, UnicodeSet &set, UErrorCode &errorCode) const; /** * Implements from-rule
      constructors, and ucol_openRules(). * @internal */ void internalBuildTailoring(
      const UnicodeString &rules, int32_t strength, UColAttributeValue decompositionMode,
      UParseError *outParseError, UnicodeString *outReason, UErrorCode &errorCode);
      /** @internal */ static inline RuleBasedCollator *rbcFromUCollator(UCollator
      *uc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 846
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 846
    functionName: getDefaultSettings
    functionSourceFile: /src/icu/source/i18n/unicode/tblcoll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: CollationSettings
    signature: 'const CollationSettings & getDefaultSettings() const; void setAttributeDefault(int32_t
      attribute) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - attribute
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 849
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 849
    functionName: setAttributeExplicitly
    functionSourceFile: /src/icu/source/i18n/unicode/tblcoll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setAttributeExplicitly(int32_t attribute) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - attribute
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 853
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 853
    functionName: attributeHasBeenSetExplicitly
    functionSourceFile: /src/icu/source/i18n/unicode/tblcoll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool attributeHasBeenSetExplicitly(int32_t attribute) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fromUCollator
      Src: /src/icu/source/i18n/unicode/tblcoll.h:790,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - uc
    argTypes:
    - UCollator*
    constantsTouched: []
    func_position:
      end: 791
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 791
    functionName: rbcFromUCollator
    functionSourceFile: /src/icu/source/i18n/unicode/tblcoll.h
    functionUses: []
    functionsReached:
    - fromUCollator
    linkageType: ''
    returnType: RuleBasedCollator*
    signature: 'static inline const RuleBasedCollator *rbcFromUCollator(const UCollator
      *uc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 501
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 501
    functionName: getApostropheMode
    functionSourceFile: /src/icu/source/i18n/unicode/msgfmt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UMessagePatternApostropheMode
    signature: 'UMessagePatternApostropheMode getApostropheMode() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - listCount
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 1077
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1077
    functionName: getArgTypeList
    functionSourceFile: /src/icu/source/i18n/unicode/msgfmt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Formattable*
    signature: 'const Formattable ::Type * getArgTypeList(int32_t& listCount) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1253
    functionDepth: 0
    functionLinenumber: 1253
    functionLinenumberEnd: 1257
    functionName: isParseIntegerOnly
    functionSourceFile: /src/icu/source/i18n/unicode/numfmt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool NumberFormat:: isParseIntegerOnly() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1263
    functionName: isLenient
    functionSourceFile: /src/icu/source/i18n/unicode/numfmt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool NumberFormat:: isLenient() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 512
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 512
    functionName: getDefaultOrder
    functionSourceFile: /src/icu/source/i18n/unicode/dtitvinf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool getDefaultOrder() const; /** * ICU "poor man''s RTTI", returns
      a UClassID for the actual class. * * @stable ICU 4.0 */ virtual UClassID getDynamicClassID()
      const; /** * ICU "poor man''s RTTI", returns a UClassID for this class. * *
      @stable ICU 4.0 */ static UClassID U_EXPORT2 getStaticClassID(); private: /**
      * DateIntervalFormat will need access to * getBestSkeleton(), parseSkeleton(),
      enum IntervalPatternIndex, * and calendarFieldToPatternIndex(). * * Instead
      of making above public, * make DateIntervalFormat a friend of DateIntervalInfo.
      */ friend class DateIntervalFormat; /** * Internal struct used to load resource
      bundle data. */ struct DateIntervalSink; /** * Following is for saving the interval
      patterns. * We only support interval patterns on * ERA, YEAR, MONTH, DAY, AM_PM,
      HOUR, and MINUTE */ enum IntervalPatternIndex { kIPI_ERA, kIPI_YEAR, kIPI_MONTH,
      kIPI_DATE, kIPI_AM_PM, kIPI_HOUR, kIPI_MINUTE, kIPI_SECOND, kIPI_MAX_INDEX };public:#ifndef
      U_HIDE_INTERNAL_API /** * Max index for stored interval patterns * @internal
      ICU 4.4 */ enum { kMaxIntervalPatternIndex = kIPI_MAX_INDEX };#endif /* U_HIDE_INTERNAL_API
      */private: /** * Initialize the DateIntervalInfo from locale * @param locale
      the given locale. * @param status output param set to success/failure code on
      exit */ void initializeData(const Locale& locale, UErrorCode& status); /* Set
      Interval pattern. * * It sets interval pattern into the hash map. * * @param
      skeleton skeleton on which the interval pattern based * @param lrgDiffCalUnit
      the largest different calendar unit. * @param intervalPattern the interval pattern
      on the largest different * calendar unit. * @param status output param set to
      success/failure code on exit */ void setIntervalPatternInternally(const UnicodeString&
      skeleton, UCalendarDateFields lrgDiffCalUnit, const UnicodeString& intervalPattern,
      UErrorCode& status); /**given an input skeleton, get the best match skeleton
      * which has pre-defined interval pattern in resource file. * Also return the
      difference between the input skeleton * and the best match skeleton. * * TODO
      (xji): set field weight or * isolate the funtionality in DateTimePatternGenerator
      * @param skeleton input skeleton * @param bestMatchDistanceInfo the difference
      between input skeleton * and best match skeleton. * 0, if there is exact match
      for input skeleton * 1, if there is only field width difference between * the
      best match and the input skeleton * 2, the only field difference is ''v'' and
      ''z'' * -1, if there is calendar field difference between * the best match and
      the input skeleton * @return best match skeleton */ const UnicodeString* getBestSkeleton(const
      UnicodeString& skeleton, int8_t& bestMatchDistanceInfo) const; /** * Parse skeleton,
      save each field''s width. * It is used for looking for best match skeleton,
      * and adjust pattern field width. * @param skeleton skeleton to be parsed *
      @param skeletonFieldWidth parsed skeleton field width */ static void U_EXPORT2
      parseSkeleton(const UnicodeString& skeleton, int32_t* skeletonFieldWidth); /**
      * Check whether one field width is numeric while the other is string. * * TODO
      (xji): make it general * * @param fieldWidth one field width * @param anotherFieldWidth
      another field width * @param patternLetter pattern letter char * @return true
      if one field width is numeric and the other is string, * false otherwise. */
      static UBool U_EXPORT2 stringNumeric(int32_t fieldWidth, int32_t anotherFieldWidth,
      char patternLetter); /** * Convert calendar field to the interval pattern index
      in * hash table. * * Since we only support the following calendar fields: *
      ERA, YEAR, MONTH, DATE, DAY_OF_MONTH, DAY_OF_WEEK, * AM_PM, HOUR, HOUR_OF_DAY,
      and MINUTE, * We reserve only 4 interval patterns for a skeleton. * * @param
      field calendar field * @param status output param set to success/failure code
      on exit * @return interval pattern index in hash table */ static IntervalPatternIndex
      U_EXPORT2 calendarFieldToIntervalIndex( UCalendarDateFields field, UErrorCode&
      status); /** * delete hash table (of type fIntervalPatterns). * * @param hTable
      hash table to be deleted */ void deleteHash(Hashtable* hTable); /** * initialize
      hash table (of type fIntervalPatterns). * * @param status output param set to
      success/failure code on exit * @return hash table initialized */ Hashtable*
      initHash(UErrorCode& status); /** * copy hash table (of type fIntervalPatterns).
      * * @param source the source to copy from * @param target the target to copy
      to * @param status output param set to success/failure code on exit */ void
      copyHash(const Hashtable* source, Hashtable* target, UErrorCode& status); //
      data members // fallback interval pattern UnicodeString fFallbackIntervalPattern;
      // default order UBool fFirstDateInPtnIsLaterDate; // HashMap<UnicodeString,
      UnicodeString[kIPI_MAX_INDEX]> // HashMap( skeleton, pattern[largest_different_field]
      ) Hashtable* fIntervalPatterns; }; // end class DateIntervalInfo inline UBoolDateIntervalInfo::operator!=(const
      DateIntervalInfo& other) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: other
    functionSourceFile: /src/icu/source/i18n/unicode/tznames.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool operator!=(const TimeZoneNames& other ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: other
    functionSourceFile: /src/icu/source/i18n/unicode/dtfmtsym.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool operator!=(const DateFormatSymbols& other ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/icu/source/i18n/unicode/format.h:142,1
    - Dst: Format
      Src: /src/icu/source/i18n/unicode/format.h:273,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 301
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 301
    functionName: UObject
    functionSourceFile: /src/icu/source/i18n/unicode/format.h
    functionUses: []
    functionsReached:
    - Format
    - format
    linkageType: ''
    returnType: U_I18N_API
    signature: 'U_I18N_API Format : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: operator
    functionSourceFile: /src/icu/source/i18n/unicode/format.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool operator !=(const Format& other) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: number
    functionSourceFile: /src/icu/source/i18n/unicode/smpdtfmt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace number '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - UErrorCode
    - '&'
    - /*status*/
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 1654
      start: 1650
    functionDepth: 0
    functionLinenumber: 1650
    functionLinenumberEnd: 1654
    functionName: get2DigitYearStart
    functionSourceFile: /src/icu/source/i18n/unicode/smpdtfmt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UDate
    signature: 'inline UDate SimpleDateFormat:: get2DigitYearStart(UErrorCode& /*status*/)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSOverride
      Src: /src/icu/source/i18n/unicode/smpdtfmt.h:1620,1
    - Dst: next
      Src: /src/icu/source/i18n/unicode/smpdtfmt.h:1620,1
    - Dst: snf
      Src: /src/icu/source/i18n/unicode/smpdtfmt.h:1620,1
    - Dst: NSOverride
      Src: /src/icu/source/i18n/unicode/smpdtfmt.h:1622,1
    - Dst: hash
      Src: /src/icu/source/i18n/unicode/smpdtfmt.h:1620,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1615
    functionDepth: 0
    functionLinenumber: 1615
    functionLinenumberEnd: 1623
    functionName: UMemory
    functionSourceFile: /src/icu/source/i18n/unicode/smpdtfmt.h
    functionUses: []
    functionsReached:
    - next
    - hash
    - snf
    - NSOverride
    linkageType: ''
    returnType: struct NSOverride
    signature: 'struct NSOverride : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 104
    functionName: MeasureUnit
    functionSourceFile: /src/icu/source/i18n/unicode/nounit.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_I18N_API
    signature: 'U_I18N_API NoUnit: public MeasureUnit '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ScientificNumberFormatter
      Src: /src/icu/source/i18n/unicode/scientificnumberformatter.h:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: clone
    functionSourceFile: /src/icu/source/i18n/unicode/scientificnumberformatter.h
    functionUses: []
    functionsReached:
    - ScientificNumberFormatter
    linkageType: ''
    returnType: ScientificNumberFormatter*
    signature: 'ScientificNumberFormatter *clone() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 237
    functionName: RangeMacroProps
    functionSourceFile: /src/icu/source/i18n/unicode/numberrangeformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct U_I18N_API
    signature: 'struct U_I18N_API RangeMacroProps : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: numberFormatterBoth
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:283,1
    - Dst: numberFormatterFirst
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:329,1
    - Dst: numberFormatterSecond
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:364,1
    - Dst: numberFormatterSecond
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:375,1
    - Dst: identityFallback
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:438,1
    - Dst: clone
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:472,1
    - Dst: numberFormatterFirst
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:307,1
    - Dst: numberFormatterBoth
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:294,1
    - Dst: numberFormatterFirst
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:340,1
    - Dst: numberFormatterSecond
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:353,1
    - Dst: numberFormatterSecond
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:386,1
    - Dst: collapse
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:405,1
    - Dst: identityFallback
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:449,1
    - Dst: copyErrorTo
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:481,1
    - Dst: numberFormatterBoth
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:272,1
    - Dst: numberFormatterFirst
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:318,1
    - Dst: collapse
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:416,1
    - Dst: clone
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:463,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 500
    functionName: NumberRangeFormatterSettings
    functionSourceFile: /src/icu/source/i18n/unicode/numberrangeformatter.h
    functionUses: []
    functionsReached:
    - identityFallback
    - numberFormatterBoth
    - numberFormatterSecond
    - collapse
    - clone
    - copyErrorTo
    - numberFormatterFirst
    linkageType: ''
    returnType: U_I18N_API
    signature: 'U_I18N_API NumberRangeFormatterSettings '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fData
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:861,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames:
    - U_ZERO_ERROR
    argTypes: []
    constantsTouched: []
    func_position:
      end: 861
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 861
    functionName: fErrorCode
    functionSourceFile: /src/icu/source/i18n/unicode/numberrangeformatter.h
    functionUses: []
    functionsReached:
    - fData
    linkageType: ''
    returnType: explicit
    signature: 'explicit FormattedNumberRange(impl::UFormattedNumberRangeData *results)
      : fData(results), fErrorCode(U_ZERO_ERROR) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fData
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames:
    - errorCode
    argTypes: []
    constantsTouched: []
    func_position:
      end: 864
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 864
    functionName: fErrorCode
    functionSourceFile: /src/icu/source/i18n/unicode/numberrangeformatter.h
    functionUses: []
    functionsReached:
    - fData
    linkageType: ''
    returnType: explicit
    signature: 'explicit FormattedNumberRange(UErrorCode errorCode) : fData(nullptr),
      fErrorCode(errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NumberRangeFormatter
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:902,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 903
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 903
    functionName: final
    functionSourceFile: /src/icu/source/i18n/unicode/numberrangeformatter.h
    functionUses: []
    functionsReached:
    - NumberRangeFormatter
    linkageType: ''
    returnType: NumberRangeFormatter
    signature: 'NumberRangeFormatter final '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/unicode/numberrangeformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: numberFormatterBoth
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:283,1
    - Dst: numberFormatterSecond
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:364,1
    - Dst: numberFormatterSecond
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:375,1
    - Dst: clone
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:472,1
    - Dst: UnlocalizedNumberRangeFormatter
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:554,1
    - Dst: numberFormatterFirst
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:307,1
    - Dst: numberFormatterFirst
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:340,1
    - Dst: copyErrorTo
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:481,1
    - Dst: locale
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:534,1
    - Dst: clone
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:463,1
    - Dst: UnlocalizedNumberRangeFormatter
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:541,1
    - Dst: numberFormatterFirst
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:329,1
    - Dst: numberFormatterBoth
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:294,1
    - Dst: numberFormatterSecond
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:353,1
    - Dst: numberFormatterSecond
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:386,1
    - Dst: collapse
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:405,1
    - Dst: numberFormatterFirst
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:318,1
    - Dst: identityFallback
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:438,1
    - Dst: identityFallback
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:449,1
    - Dst: numberFormatterBoth
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:272,1
    - Dst: collapse
      Src: /src/icu/source/i18n/unicode/numberrangeformatter.h:416,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 581
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 581
    functionName: namespace
    functionSourceFile: /src/icu/source/i18n/unicode/numberrangeformatter.h
    functionUses: []
    functionsReached:
    - identityFallback
    - numberFormatterBoth
    - UnlocalizedNumberRangeFormatter
    - numberFormatterSecond
    - collapse
    - locale
    - clone
    - copyErrorTo
    - numberFormatterFirst
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace number '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 239
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/unicode/numberrangeformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: copyErrorTo
    functionSourceFile: /src/icu/source/i18n/unicode/numberrangeformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool copyErrorTo(UErrorCode &status) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setStartRule
      Src: /src/icu/source/i18n/unicode/simpletz.h:900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - month
    - dayOfMonth
    - time
    - status
    argTypes:
    - int32_t
    - int32_t
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 901
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 901
    functionName: setStartRule
    functionSourceFile: /src/icu/source/i18n/unicode/simpletz.h
    functionUses: []
    functionsReached:
    - setStartRule
    linkageType: ''
    returnType: void
    signature: 'inline void SimpleTimeZone:: setStartRule(int32_t month, int32_t dayOfMonth,
      int32_t time, UErrorCode& status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setEndRule
      Src: /src/icu/source/i18n/unicode/simpletz.h:912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - month
    - dayOfWeekInMonth
    - dayOfWeek
    - time
    - status
    argTypes:
    - int32_t
    - int32_t
    - int32_t
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 913
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 913
    functionName: setEndRule
    functionSourceFile: /src/icu/source/i18n/unicode/simpletz.h
    functionUses: []
    functionsReached:
    - setEndRule
    linkageType: ''
    returnType: void
    signature: 'inline void SimpleTimeZone:: setEndRule(int32_t month, int32_t dayOfWeekInMonth,
      int32_t dayOfWeek, int32_t time, UErrorCode& status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setEndRule
      Src: /src/icu/source/i18n/unicode/simpletz.h:922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 6
    argNames:
    - month
    - dayOfMonth
    - dayOfWeek
    - time
    - after
    - status
    argTypes:
    - int32_t
    - int32_t
    - int32_t
    - int32_t
    - UBool
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 923
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 923
    functionName: setEndRule
    functionSourceFile: /src/icu/source/i18n/unicode/simpletz.h
    functionUses: []
    functionsReached:
    - setEndRule
    linkageType: ''
    returnType: void
    signature: 'inline void SimpleTimeZone:: setEndRule(int32_t month, int32_t dayOfMonth,
      int32_t dayOfWeek, int32_t time, UBool after, UErrorCode& status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setStartRule
      Src: /src/icu/source/i18n/unicode/simpletz.h:894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - month
    - dayOfWeekInMonth
    - dayOfWeek
    - time
    - status
    argTypes:
    - int32_t
    - int32_t
    - int32_t
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 895
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 895
    functionName: setStartRule
    functionSourceFile: /src/icu/source/i18n/unicode/simpletz.h
    functionUses: []
    functionsReached:
    - setStartRule
    linkageType: ''
    returnType: void
    signature: 'inline void SimpleTimeZone:: setStartRule(int32_t month, int32_t dayOfWeekInMonth,
      int32_t dayOfWeek, int32_t time, UErrorCode& status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setStartRule
      Src: /src/icu/source/i18n/unicode/simpletz.h:906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 6
    argNames:
    - month
    - dayOfMonth
    - dayOfWeek
    - time
    - after
    - status
    argTypes:
    - int32_t
    - int32_t
    - int32_t
    - int32_t
    - UBool
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 907
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 907
    functionName: setStartRule
    functionSourceFile: /src/icu/source/i18n/unicode/simpletz.h
    functionUses: []
    functionsReached:
    - setStartRule
    linkageType: ''
    returnType: void
    signature: 'inline void SimpleTimeZone:: setStartRule(int32_t month, int32_t dayOfMonth,
      int32_t dayOfWeek, int32_t time, UBool after, UErrorCode& status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setEndRule
      Src: /src/icu/source/i18n/unicode/simpletz.h:917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - month
    - dayOfMonth
    - time
    - status
    argTypes:
    - int32_t
    - int32_t
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 918
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 918
    functionName: setEndRule
    functionSourceFile: /src/icu/source/i18n/unicode/simpletz.h
    functionUses: []
    functionsReached:
    - setEndRule
    linkageType: ''
    returnType: void
    signature: 'inline void SimpleTimeZone:: setEndRule(int32_t month, int32_t dayOfMonth,
      int32_t time, UErrorCode& status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getOffset
      Src: /src/icu/source/i18n/unicode/simpletz.h:928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - date
    - local
    - rawOffsetRef
    - dstOffsetRef
    - ec
    argTypes:
    - UDate
    - UBool
    - int32_t
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 929
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 929
    functionName: getOffset
    functionSourceFile: /src/icu/source/i18n/unicode/simpletz.h
    functionUses: []
    functionsReached:
    - getOffset
    linkageType: ''
    returnType: void
    signature: 'inline void SimpleTimeZone:: getOffset(UDate date, UBool local, int32_t&
      rawOffsetRef, int32_t& dstOffsetRef, UErrorCode& ec) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getUnit
      Src: /src/icu/source/i18n/unicode/curramt.h:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: getCurrency
    functionSourceFile: /src/icu/source/i18n/unicode/curramt.h
    functionUses: []
    functionsReached:
    - getUnit
    linkageType: ''
    returnType: CurrencyUnit
    signature: 'inline const CurrencyUnit & getCurrency() const; /** * Return the
      ISO currency code of this object. * @stable ICU 3.0 */ inline const char16_t*
      getISOCurrency() const; };inline const CurrencyUnit& CurrencyAmount::getCurrency()
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getCurrency
      Src: /src/icu/source/i18n/unicode/curramt.h:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: getISOCurrency
    functionSourceFile: /src/icu/source/i18n/unicode/curramt.h
    functionUses: []
    functionsReached:
    - getCurrency
    linkageType: ''
    returnType: char16_t*
    signature: 'inline const char16_t * CurrencyAmount::getISOCurrency() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 264
    functionName: getDynamicClassID
    functionSourceFile: /src/icu/source/i18n/unicode/currpinf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UClassID getDynamicClassID() const; /** * ICU "poor man''s
      RTTI", returns a UClassID for this class. * * @stable ICU 4.2 */ static UClassID
      U_EXPORT2 getStaticClassID(); private: friend class DecimalFormat; friend class
      DecimalFormatImpl; void initialize(const Locale& loc, UErrorCode& status); void
      setupCurrencyPluralPattern(const Locale& loc, UErrorCode& status); /* * delete
      hash table * * @param hTable hash table to be deleted */ void deleteHash(Hashtable*
      hTable); /* * initialize hash table * * @param status output param set to success/failure
      code on exit * @return hash table initialized */ Hashtable* initHash(UErrorCode&
      status); /** * copy hash table * * @param source the source to copy from * @param
      target the target to copy to * @param status error code */ void copyHash(const
      Hashtable* source, Hashtable* target, UErrorCode& status); //--------------------
      private data member --------------------- // map from plural count to currency
      plural pattern, for example // a plural pattern defined in "CurrencyUnitPatterns"
      is // "one{{0} {1}}", in which "one" is a plural count // and "{0} {1}" is a
      currency plural pattern". // The currency plural pattern saved in this mapping
      is the pattern // defined in "CurrencyUnitPattern" by replacing // {0} with
      the number format pattern, // and {1} with 3 currency sign. Hashtable* fPluralCountToCurrencyUnitPattern;
      /* * The plural rule is used to format currency plural name, * for example:
      "3.00 US Dollars". * If there are 3 currency signs in the currency pattern,
      * the 3 currency signs will be replaced by currency plural name. */ PluralRules*
      fPluralRules; // locale Locale* fLocale; private: /** * An internal status variable
      used to indicate that the object is in an ''invalid'' state. * Used by copy
      constructor, the assignment operator and the clone method. */ UErrorCode fInternalStatus;
      };inline UBoolCurrencyPluralInfo::operator!=(const CurrencyPluralInfo& info)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: number
    functionSourceFile: /src/icu/source/i18n/unicode/decimfmt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace number '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/unicode/decimfmt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/unicode/decimfmt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: numparse
    functionSourceFile: /src/icu/source/i18n/unicode/decimfmt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace numparse '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CollationElementIterator
      Src: /src/icu/source/i18n/unicode/coleitr.h:353,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 380
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 380
    functionName: U_FINAL
    functionSourceFile: /src/icu/source/i18n/unicode/coleitr.h
    functionUses: []
    functionsReached:
    - CollationElementIterator
    linkageType: ''
    returnType: CollationElementIterator
    signature: 'CollationElementIterator U_FINAL : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 294
    functionName: getDynamicClassID
    functionSourceFile: /src/icu/source/i18n/unicode/coleitr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UClassID getDynamicClassID() const; /** * ICU "poor man''s
      RTTI", returns a UClassID for this class. * * @stable ICU 2.2 */ static UClassID
      U_EXPORT2 getStaticClassID(); #ifndef U_HIDE_INTERNAL_API /** @internal */ static
      inline CollationElementIterator *fromUCollationElements(UCollationElements *uc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - uc
    argTypes:
    - UCollationElements*
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: fromUCollationElements
    functionSourceFile: /src/icu/source/i18n/unicode/coleitr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: CollationElementIterator*
    signature: 'static inline const CollationElementIterator *fromUCollationElements(const
      UCollationElements *uc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: toUCollationElements
    functionSourceFile: /src/icu/source/i18n/unicode/coleitr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UCollationElements*
    signature: 'inline const UCollationElements *toUCollationElements() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 356
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 356
    functionName: normalizeDir
    functionSourceFile: /src/icu/source/i18n/unicode/coleitr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t normalizeDir() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - order
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: primaryOrder
    functionSourceFile: /src/icu/source/i18n/unicode/coleitr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t CollationElementIterator:: primaryOrder(int32_t order) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - order
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 397
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 397
    functionName: tertiaryOrder
    functionSourceFile: /src/icu/source/i18n/unicode/coleitr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t CollationElementIterator:: tertiaryOrder(int32_t order) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - order
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 392
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 392
    functionName: secondaryOrder
    functionSourceFile: /src/icu/source/i18n/unicode/coleitr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t CollationElementIterator:: secondaryOrder(int32_t order) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - order
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: isIgnorable
    functionSourceFile: /src/icu/source/i18n/unicode/coleitr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool CollationElementIterator:: isIgnorable(int32_t order) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: toUCollationElements
    functionSourceFile: /src/icu/source/i18n/unicode/coleitr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UCollationElements*
    signature: 'inline UCollationElements *toUCollationElements() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 458
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 458
    functionName: that
    functionSourceFile: /src/icu/source/i18n/unicode/timezone.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool operator!=(const TimeZone& that ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ID
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 967
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 967
    functionName: setID
    functionSourceFile: /src/icu/source/i18n/unicode/timezone.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void TimeZone:: setID(const UnicodeString& ID) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ID
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 959
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 959
    functionName: getID
    functionSourceFile: /src/icu/source/i18n/unicode/timezone.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &TimeZone:: getID(UnicodeString& ID) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 153
    functionName: getNumber
    functionSourceFile: /src/icu/source/i18n/unicode/measure.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Formattable
    signature: 'inline const Formattable & getNumber() const; /** * Return a reference
      to the unit of this object. * @stable ICU 3.0 */ inline const MeasureUnit& getUnit()
      const; /** * Return the class ID for this class. This is useful only for comparing
      to * a return value from getDynamicClassID(). For example: * <pre> * . Base*
      polymorphic_pointer = createPolymorphicObject(); * . if (polymorphic_pointer->getDynamicClassID()
      == * . erived::getStaticClassID()) ... * </pre> * @return The class ID for all
      objects of this class. * @stable ICU 53 */ static UClassID U_EXPORT2 getStaticClassID(void);
      /** * Returns a unique class ID POLYMORPHICALLY. Pure virtual override. This
      * method is to implement a simple version of RTTI, since not all C++ * compilers
      support genuine RTTI. Polymorphic operator==() and clone() * methods call this
      method. * * @return The class ID for this object. All objects of a * given class
      have the same class ID. Objects of * other classes have different class IDs.
      * @stable ICU 53 */ virtual UClassID getDynamicClassID(void) const; protected:
      /** * Default constructor. * @stable ICU 3.0 */ Measure(); private: /** * The
      numeric value of this object, e.g. 2.54 or 100. */ Formattable number; /** *
      The unit of this object, e.g., "millimeter" or "JPY". This is * owned by this
      object. */ MeasureUnit* unit; };inline const Formattable& Measure::getNumber()
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: getUnit
    functionSourceFile: /src/icu/source/i18n/unicode/measure.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: MeasureUnit
    signature: 'inline const MeasureUnit & Measure:: getUnit() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: replace
      Src: /src/icu/source/i18n/unicode/unirepl.h:67,1
    - Dst: addReplacementSetTo
      Src: /src/icu/source/i18n/unicode/unirepl.h:95,1
    - Dst: toReplacerPattern
      Src: /src/icu/source/i18n/unicode/unirepl.h:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 96
    functionName: UnicodeReplacer
    functionSourceFile: /src/icu/source/i18n/unicode/unirepl.h
    functionUses: []
    functionsReached:
    - toReplacerPattern
    - replace
    - addReplacementSetTo
    linkageType: ''
    returnType: class
    signature: 'class U_I18N_API UnicodeReplacer /* not : public UObject because this
      is an interface/mixin class */ '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 1103
    functionName: getRules
    functionSourceFile: /src/icu/source/i18n/unicode/rbnf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UnicodeString getRules() const; /** * Return the number of
      public rule set names. * @return the number of public rule set names. * @stable
      ICU 2.0 */ virtual int32_t getNumberOfRuleSetNames() const; /** * Return the
      name of the index''th public ruleSet. If index is not valid, * the function
      returns null. * @param index the index of the ruleset * @return the name of
      the index''th public ruleSet. * @stable ICU 2.0 */ virtual UnicodeString getRuleSetName(int32_t
      index) const; /** * Return the number of locales for which we have localized
      rule set display names. * @return the number of locales for which we have localized
      rule set display names. * @stable ICU 3.2 */ virtual int32_t getNumberOfRuleSetDisplayNameLocales(void)
      const; /** * Return the index''th display name locale. * @param index the index
      of the locale * @param status set to a failure code when this function fails
      * @return the locale * @see #getNumberOfRuleSetDisplayNameLocales * @stable
      ICU 3.2 */ virtual Locale getRuleSetDisplayNameLocale(int32_t index, UErrorCode&
      status) const; /** * Return the rule set display names for the provided locale.
      These are in the same order * as those returned by getRuleSetName. The locale
      is matched against the locales for * which there is display name data, using
      normal fallback rules. If no locale matches, * the default display names are
      returned. (These are the internal rule set names minus * the leading ''%''.)
      * @param index the index of the rule set * @param locale the locale (returned
      by getRuleSetDisplayNameLocales) for which the localized * display name is desired
      * @return the display name for the given index, which might be bogus if there
      is an error * @see #getRuleSetName * @stable ICU 3.2 */ virtual UnicodeString
      getRuleSetDisplayName(int32_t index, const Locale& locale = Locale::getDefault());
      /** * Return the rule set display name for the provided rule set and locale.
      * The locale is matched against the locales for which there is display name
      data, using * normal fallback rules. If no locale matches, the default display
      name is returned. * @return the display name for the rule set * @stable ICU
      3.2 * @see #getRuleSetDisplayName */ virtual UnicodeString getRuleSetDisplayName(const
      UnicodeString& ruleSetName, const Locale& locale = Locale::getDefault()); using
      NumberFormat::format; /** * Formats the specified 32-bit number using the default
      ruleset. * @param number The number to format. * @param toAppendTo the string
      that will hold the (appended) result * @param pos the fieldposition * @return
      A textual representation of the number. * @stable ICU 2.0 */ virtual UnicodeString&
      format(int32_t number, UnicodeString& toAppendTo, FieldPosition& pos) const;
      /** * Formats the specified 64-bit number using the default ruleset. * @param
      number The number to format. * @param toAppendTo the string that will hold the
      (appended) result * @param pos the fieldposition * @return A textual representation
      of the number. * @stable ICU 2.1 */ virtual UnicodeString& format(int64_t number,
      UnicodeString& toAppendTo, FieldPosition& pos) const; /** * Formats the specified
      number using the default ruleset. * @param number The number to format. * @param
      toAppendTo the string that will hold the (appended) result * @param pos the
      fieldposition * @return A textual representation of the number. * @stable ICU
      2.0 */ virtual UnicodeString& format(double number, UnicodeString& toAppendTo,
      FieldPosition& pos) const; /** * Formats the specified number using the named
      ruleset. * @param number The number to format. * @param ruleSetName The name
      of the rule set to format the number with. * This must be the name of a valid
      public rule set for this formatter. * @param toAppendTo the string that will
      hold the (appended) result * @param pos the fieldposition * @param status the
      status * @return A textual representation of the number. * @stable ICU 2.0 */
      virtual UnicodeString& format(int32_t number, const UnicodeString& ruleSetName,
      UnicodeString& toAppendTo, FieldPosition& pos, UErrorCode& status) const; /**
      * Formats the specified 64-bit number using the named ruleset. * @param number
      The number to format. * @param ruleSetName The name of the rule set to format
      the number with. * This must be the name of a valid public rule set for this
      formatter. * @param toAppendTo the string that will hold the (appended) result
      * @param pos the fieldposition * @param status the status * @return A textual
      representation of the number. * @stable ICU 2.1 */ virtual UnicodeString& format(int64_t
      number, const UnicodeString& ruleSetName, UnicodeString& toAppendTo, FieldPosition&
      pos, UErrorCode& status) const; /** * Formats the specified number using the
      named ruleset. * @param number The number to format. * @param ruleSetName The
      name of the rule set to format the number with. * This must be the name of a
      valid public rule set for this formatter. * @param toAppendTo the string that
      will hold the (appended) result * @param pos the fieldposition * @param status
      the status * @return A textual representation of the number. * @stable ICU 2.0
      */ virtual UnicodeString& format(double number, const UnicodeString& ruleSetName,
      UnicodeString& toAppendTo, FieldPosition& pos, UErrorCode& status) const;protected:
      /** * Format a decimal number. * The number is a DigitList wrapper onto a floating
      point decimal number. * The default implementation in NumberFormat converts
      the decimal number * to a double and formats that. Subclasses of NumberFormat
      that want * to specifically handle big decimal numbers must override this method.
      * class DecimalFormat does so. * * @param number The number, a DigitList format
      Decimal Floating Point. * @param appendTo Output parameter to receive result.
      * Result is appended to existing contents. * @param pos On input: an alignment
      field, if desired. * On output: the offsets of the alignment field. * @param
      status Output param filled with success/failure status. * @return Reference
      to ''appendTo'' parameter. * @internal */ virtual UnicodeString& format(const
      number::impl::DecimalQuantity &number, UnicodeString& appendTo, FieldPosition&
      pos, UErrorCode& status) const;public: using NumberFormat::parse; /** * Parses
      the specfied string, beginning at the specified position, according * to this
      formatter''s rules. This will match the string against all of the * formatter''s
      public rule sets and return the value corresponding to the longest * parseable
      substring. This function''s behavior is affected by the lenient * parse mode.
      * @param text The string to parse * @param result the result of the parse, either
      a double or a long. * @param parsePosition On entry, contains the position of
      the first character * in "text" to examine. On exit, has been updated to contain
      the position * of the first character in "text" that wasn''t consumed by the
      parse. * @see #setLenient * @stable ICU 2.0 */ virtual void parse(const UnicodeString&
      text, Formattable& result, ParsePosition& parsePosition) const;#if !UCONFIG_NO_COLLATION
      /** * Turns lenient parse mode on and off. * * When in lenient parse mode, the
      formatter uses a Collator for parsing the text. * Only primary differences are
      treated as significant. This means that case * differences, accent differences,
      alternate spellings of the same letter * (e.g., ae and a-umlaut in German),
      ignorable characters, etc. are ignored in * matching the text. In many cases,
      numerals will be accepted in place of words * or phrases as well. * * For example,
      all of the following will correctly parse as 255 in English in * lenient-parse
      mode: * <br>"two hundred fifty-five" * <br>"two hundred fifty five" * <br>"TWO
      HUNDRED FIFTY-FIVE" * <br>"twohundredfiftyfive" * <br>"2 hundred fifty-5" *
      * The Collator used is determined by the locale that was * passed to this object
      on construction. The description passed to this object * on construction may
      supply additional collation rules that are appended to the * end of the default
      collator for the locale, enabling additional equivalences * (such as adding
      more ignorable characters or permitting spelled-out version of * symbols; see
      the demo program for examples). * * It''s important to emphasize that even strict
      parsing is relatively lenient: it * will accept some text that it won''t produce
      as output. In English, for example, * it will correctly parse "two hundred zero"
      and "fifteen hundred". * * @param enabled If true, turns lenient-parse mode
      on; if false, turns it off. * @see RuleBasedCollator * @stable ICU 2.0 */ virtual
      void setLenient(UBool enabled); /** * Returns true if lenient-parse mode is
      turned on. Lenient parsing is off * by default. * @return true if lenient-parse
      mode is turned on. * @see #setLenient * @stable ICU 2.0 */ virtual inline UBool
      isLenient(void) const;#endif /** * Override the default rule set to use. If
      ruleSetName is null, reset * to the initial default rule set. If the rule set
      is not a public rule set name, * U_ILLEGAL_ARGUMENT_ERROR is returned in status.
      * @param ruleSetName the name of the rule set, or null to reset the initial
      default. * @param status set to failure code when a problem occurs. * @stable
      ICU 2.6 */ virtual void setDefaultRuleSet(const UnicodeString& ruleSetName,
      UErrorCode& status); /** * Return the name of the current default rule set.
      If the current rule set is * not public, returns a bogus (and empty) UnicodeString.
      * @return the name of the current default rule set * @stable ICU 3.0 */ virtual
      UnicodeString getDefaultRuleSetName() const; /** * Set a particular UDisplayContext
      value in the formatter, such as * UDISPCTX_CAPITALIZATION_FOR_STANDALONE. Note:
      For getContext, see * NumberFormat. * @param value The UDisplayContext value
      to set. * @param status Input/output status. If at entry this indicates a failure
      * status, the function will do nothing; otherwise this will be * updated with
      any new status from the function. * @stable ICU 53 */ virtual void setContext(UDisplayContext
      value, UErrorCode& status); /** * Get the rounding mode. * @return A rounding
      mode * @stable ICU 60 */ virtual ERoundingMode getRoundingMode(void) const;
      /** * Set the rounding mode. * @param roundingMode A rounding mode * @stable
      ICU 60 */ virtual void setRoundingMode(ERoundingMode roundingMode); public:
      /** * ICU "poor man''s RTTI", returns a UClassID for this class. * * @stable
      ICU 2.8 */ static UClassID U_EXPORT2 getStaticClassID(void); /** * ICU "poor
      man''s RTTI", returns a UClassID for the actual class. * * @stable ICU 2.8 */
      virtual UClassID getDynamicClassID(void) const; /** * Sets the decimal format
      symbols, which is generally not changed * by the programmer or user. The formatter
      takes ownership of * symbolsToAdopt; the client must not delete it. * * @param
      symbolsToAdopt DecimalFormatSymbols to be adopted. * @stable ICU 49 */ virtual
      void adoptDecimalFormatSymbols(DecimalFormatSymbols* symbolsToAdopt); /** *
      Sets the decimal format symbols, which is generally not changed * by the programmer
      or user. A clone of the symbols is created and * the symbols is _not_ adopted;
      the client is still responsible for * deleting it. * * @param symbols DecimalFormatSymbols.
      * @stable ICU 49 */ virtual void setDecimalFormatSymbols(const DecimalFormatSymbols&
      symbols); private: RuleBasedNumberFormat(); // default constructor not implemented
      // this will ref the localizations if they are not NULL // caller must deref
      to get adoption RuleBasedNumberFormat(const UnicodeString& description, LocalizationInfo*
      localizations, const Locale& locale, UParseError& perror, UErrorCode& status);
      void init(const UnicodeString& rules, LocalizationInfo* localizations, UParseError&
      perror, UErrorCode& status); void initCapitalizationContextInfo(const Locale&
      thelocale); void dispose(); void stripWhitespace(UnicodeString& src); void initDefaultRuleSet();
      NFRuleSet* findRuleSet(const UnicodeString& name, UErrorCode& status) const;
      /* friend access */ friend class NFSubstitution; friend class NFRule; friend
      class NFRuleSet; friend class FractionalPartSubstitution; inline NFRuleSet *
      getDefaultRuleSet() const; const RuleBasedCollator * getCollator() const; DecimalFormatSymbols
      * initializeDecimalFormatSymbols(UErrorCode &status); const DecimalFormatSymbols
      * getDecimalFormatSymbols() const; NFRule * initializeDefaultInfinityRule(UErrorCode
      &status); const NFRule * getDefaultInfinityRule() const; NFRule * initializeDefaultNaNRule(UErrorCode
      &status); const NFRule * getDefaultNaNRule() const; PluralFormat *createPluralFormat(UPluralType
      pluralType, const UnicodeString &pattern, UErrorCode& status) const; UnicodeString&
      adjustForCapitalizationContext(int32_t startPos, UnicodeString& currentResult,
      UErrorCode& status) const; UnicodeString& format(int64_t number, NFRuleSet *ruleSet,
      UnicodeString& toAppendTo, UErrorCode& status) const; void format(double number,
      NFRuleSet& rs, UnicodeString& toAppendTo, UErrorCode& status) const;private:
      NFRuleSet **fRuleSets; UnicodeString* ruleSetDescriptions; int32_t numRuleSets;
      NFRuleSet *defaultRuleSet; Locale locale; RuleBasedCollator* collator; DecimalFormatSymbols*
      decimalFormatSymbols; NFRule *defaultInfinityRule; NFRule *defaultNaNRule; ERoundingMode
      fRoundingMode; UBool lenient; UnicodeString* lenientParseRules; LocalizationInfo*
      localizations; UnicodeString originalDescription; UBool capitalizationInfoSet;
      UBool capitalizationForUIListMenu; UBool capitalizationForStandAlone; BreakIterator*
      capitalizationBrkIter; };// ---------------#if !UCONFIG_NO_COLLATIONinline UBoolRuleBasedNumberFormat::isLenient(void)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1110
    functionName: getDefaultRuleSet
    functionSourceFile: /src/icu/source/i18n/unicode/rbnf.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: NFRuleSet*
    signature: 'inline NFRuleSet *RuleBasedNumberFormat::getDefaultRuleSet() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - uc
    argTypes:
    - UCollator*
    constantsTouched: []
    func_position:
      end: 1185
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1185
    functionName: fromUCollator
    functionSourceFile: /src/icu/source/i18n/unicode/coll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Collator*
    signature: 'static inline Collator *fromUCollator(UCollator *uc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1197
    functionName: toUCollator
    functionSourceFile: /src/icu/source/i18n/unicode/coll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UCollator*
    signature: 'inline const UCollator *toUCollator() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1191
    functionDepth: 0
    functionLinenumber: 1191
    functionLinenumberEnd: 1193
    functionName: toUCollator
    functionSourceFile: /src/icu/source/i18n/unicode/coll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UCollator*
    signature: 'inline UCollator *toUCollator() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - uc
    argTypes:
    - UCollator*
    constantsTouched: []
    func_position:
      end: 1189
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1189
    functionName: fromUCollator
    functionSourceFile: /src/icu/source/i18n/unicode/coll.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Collator*
    signature: 'static inline const Collator *fromUCollator(const UCollator *uc) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1149
    functionName: DateIntervalFormat
    functionSourceFile: /src/icu/source/i18n/unicode/dtitvfmt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool DateIntervalFormat ::operator!=(const Format& other)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: numparse
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace numparse '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames:
    - RND_ERROR
    argTypes: []
    constantsTouched: []
    func_position:
      end: 714
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 714
    functionName: fType
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Precision(UErrorCode errorCode)
    signature: 'Precision(UErrorCode errorCode) : fType(RND_ERROR) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 728
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 728
    functionName: copyErrorTo
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool copyErrorTo(UErrorCode &status) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 1096
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1096
    functionName: copyErrorTo
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool copyErrorTo(UErrorCode &status) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1272
    functionDepth: 0
    functionLinenumber: 1272
    functionLinenumberEnd: 1274
    functionName: isBogus
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool isBogus() const '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 972
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 972
    functionName: copyErrorTo
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool copyErrorTo(UErrorCode &status) const '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fType
      Src: /src/icu/source/i18n/unicode/numberformatter.h:360,1
    - Dst: fUnion
      Src: /src/icu/source/i18n/unicode/numberformatter.h:360,1
    - Dst: fType
      Src: /src/icu/source/i18n/unicode/numberformatter.h:366,1
    - Dst: Notation
      Src: /src/icu/source/i18n/unicode/numberformatter.h:366,1
    - Dst: fUnion
      Src: /src/icu/source/i18n/unicode/numberformatter.h:366,1
    - Dst: fType
      Src: /src/icu/source/i18n/unicode/numberformatter.h:710,1
    - Dst: fUnion
      Src: /src/icu/source/i18n/unicode/numberformatter.h:710,1
    - Dst: fRoundingMode
      Src: /src/icu/source/i18n/unicode/numberformatter.h:710,1
    - Dst: Precision
      Src: /src/icu/source/i18n/unicode/numberformatter.h:716,1
    - Dst: IntegerWidth
      Src: /src/icu/source/i18n/unicode/numberformatter.h:953,1
    - Dst: fMagnitude
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1084,1
    - Dst: zeroFillTo
      Src: /src/icu/source/i18n/unicode/numberformatter.h:959,1
    - Dst: Scale
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1070,1
    - Dst: Scale
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1064,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 1118
    functionName: number
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached:
    - fType
    - IntegerWidth
    - Notation
    - Precision
    - Scale
    - fUnion
    - fMagnitude
    - zeroFillTo
    - fRoundingMode
    linkageType: ''
    returnType: namespace
    signature: 'namespace number '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 166
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1363
    functionDepth: 0
    functionLinenumber: 1363
    functionLinenumberEnd: 1431
    functionName: MacroProps
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct U_I18N_API
    signature: 'struct U_I18N_API MacroProps : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames:
    - NTN_ERROR
    argTypes: []
    constantsTouched: []
    func_position:
      end: 364
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 364
    functionName: fType
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Notation(UErrorCode errorCode)
    signature: 'Notation(UErrorCode errorCode) : fType(NTN_ERROR) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 716
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 716
    functionName: (RND_BOGUS)
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: fType
    signature: 'fType (RND_BOGUS) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames:
    - '-3'
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1324
    functionDepth: 0
    functionLinenumber: 1324
    functionLinenumberEnd: 1326
    functionName: fWidth
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Padder(UErrorCode errorCode)
    signature: 'Padder(UErrorCode errorCode) : fWidth(-3) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fData
      Src: /src/icu/source/i18n/unicode/numberformatter.h:2579,1
    - Dst: fData
      Src: /src/icu/source/i18n/unicode/numberformatter.h:2582,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2432
    functionDepth: 0
    functionLinenumber: 2432
    functionLinenumberEnd: 2582
    functionName: FormattedNumber
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached:
    - fData
    linkageType: ''
    returnType: virtual
    signature: 'virtual ~ FormattedNumber() U_OVERRIDE; /** Copying not supported;
      use move constructor instead. */ FormattedNumber(const FormattedNumber&) = delete;
      /** Copying not supported; use move assignment instead. */ FormattedNumber&
      operator=(const FormattedNumber&) = delete; /** * Move assignment: Leaves the
      source FormattedNumber in an undefined state. * @stable ICU 62 */ FormattedNumber&
      operator=(FormattedNumber&& src) U_NOEXCEPT; // Copybrief: this method is older
      than the parent method /** * @copybrief FormattedValue::toString() * * For more
      information, see FormattedValue::toString() * * @stable ICU 62 */ UnicodeString
      toString(UErrorCode& status) const U_OVERRIDE; // Copydoc: this method is new
      in ICU 64 /** @copydoc FormattedValue::toTempString() */ UnicodeString toTempString(UErrorCode&
      status) const U_OVERRIDE; // Copybrief: this method is older than the parent
      method /** * @copybrief FormattedValue::appendTo() * * For more information,
      see FormattedValue::appendTo() * * @stable ICU 62 */ Appendable &appendTo(Appendable&
      appendable, UErrorCode& status) const U_OVERRIDE; // Copydoc: this method is
      new in ICU 64 /** @copydoc FormattedValue::nextPosition() */ UBool nextPosition(ConstrainedFieldPosition&
      cfpos, UErrorCode& status) const U_OVERRIDE;#ifndef U_HIDE_DRAFT_API /** * Determines
      the start (inclusive) and end (exclusive) indices of the next occurrence of
      the given * <em>field</em> in the output string. This allows you to determine
      the locations of, for example, * the integer part, fraction part, or symbols.
      * * This is a simpler but less powerful alternative to {@link #nextPosition}.
      * * If a field occurs just once, calling this method will find that occurrence
      and return it. If a * field occurs multiple times, this method may be called
      repeatedly with the following pattern: * * <pre> * FieldPosition fpos(UNUM_GROUPING_SEPARATOR_FIELD);
      * while (formattedNumber.nextFieldPosition(fpos, status)) { * // do something
      with fpos. * } * </pre> * * This method is useful if you know which field to
      query. If you want all available field position * information, use {@link #nextPosition}
      or {@link #getAllFieldPositions}. * * @param fieldPosition * Input+output variable.
      On input, the "field" property determines which field to look * up, and the
      "beginIndex" and "endIndex" properties determine where to begin the search.
      * On output, the "beginIndex" is set to the beginning of the first occurrence
      of the * field with either begin or end indices after the input indices; "endIndex"
      is set to * the end of that occurrence of the field (exclusive index). If a
      field position is not * found, the method returns FALSE and the FieldPosition
      may or may not be changed. * @param status * Set if an error occurs while populating
      the FieldPosition. * @return TRUE if a new occurrence of the field was found;
      FALSE otherwise. * @draft ICU 62 * @see UNumberFormatFields */ UBool nextFieldPosition(FieldPosition&
      fieldPosition, UErrorCode& status) const; /** * Export the formatted number
      to a FieldPositionIterator. This allows you to determine which characters in
      * the output string correspond to which <em>fields</em>, such as the integer
      part, fraction part, and sign. * * This is an alternative to the more powerful
      #nextPosition() API. * * If information on only one field is needed, use #nextPosition()
      or #nextFieldPosition() instead. * * @param iterator * The FieldPositionIterator
      to populate with all of the fields present in the formatted number. * @param
      status * Set if an error occurs while populating the FieldPositionIterator.
      * @draft ICU 62 * @see UNumberFormatFields */ void getAllFieldPositions(FieldPositionIterator
      &iterator, UErrorCode &status) const;#endif /* U_HIDE_DRAFT_API */#ifndef U_HIDE_DRAFT_API
      /** * Export the formatted number as a "numeric string" conforming to the *
      syntax defined in the Decimal Arithmetic Specification, available at * http://speleotrove.com/decimal
      * * This endpoint is useful for obtaining the exact number being printed * after
      scaling and rounding have been applied by the number formatter. * * Example
      call site: * * auto decimalNumber = fn.toDecimalNumber<std::string>(status);
      * * @tparam StringClass A string class compatible with StringByteSink; * for
      example, std::string. * @param status Set if an error occurs. * @return A StringClass
      containing the numeric string. * @draft ICU 65 */ template<typename StringClass>
      inline StringClass toDecimalNumber(UErrorCode& status) const;#endif // U_HIDE_DRAFT_API#ifndef
      U_HIDE_INTERNAL_API /** * Gets the raw DecimalQuantity for plural rule selection.
      * @internal */ void getDecimalQuantity(impl::DecimalQuantity& output, UErrorCode&
      status) const; /** * Populates the mutable builder type FieldPositionIteratorHandler.
      * @internal */ void getAllFieldPositionsImpl(FieldPositionIteratorHandler& fpih,
      UErrorCode& status) const;#endif /* U_HIDE_INTERNAL_API */ private: // Can''t
      use LocalPointer because UFormattedNumberData is forward-declared const impl::UFormattedNumberData
      *fData; // Error code for the terminal methods UErrorCode fErrorCode; /** *
      Internal constructor from data type. Adopts the data pointer. * @internal */
      explicit FormattedNumber(impl::UFormattedNumberData *results) : fData(results),
      fErrorCode(U_ZERO_ERROR) {} explicit FormattedNumber(UErrorCode errorCode) :
      fData(nullptr), fErrorCode(errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 374
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 374
    functionName: copyErrorTo
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool copyErrorTo(UErrorCode &status) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: integerWidth
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1775,1
    - Dst: unit
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1538,1
    - Dst: precision
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1668,1
    - Dst: scale
      Src: /src/icu/source/i18n/unicode/numberformatter.h:2014,1
    - Dst: adoptSymbols
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1874,1
    - Dst: perUnit
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1588,1
    - Dst: precision
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1657,1
    - Dst: scale
      Src: /src/icu/source/i18n/unicode/numberformatter.h:2025,1
    - Dst: symbols
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1828,1
    - Dst: padding
      Src: /src/icu/source/i18n/unicode/numberformatter.h:2034,1
    - Dst: threshold
      Src: /src/icu/source/i18n/unicode/numberformatter.h:2048,1
    - Dst: macros
      Src: /src/icu/source/i18n/unicode/numberformatter.h:2064,1
    - Dst: roundingMode
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1698,1
    - Dst: adoptUnit
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1564,1
    - Dst: adoptPerUnit
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1625,1
    - Dst: symbols
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1817,1
    - Dst: padding
      Src: /src/icu/source/i18n/unicode/numberformatter.h:2037,1
    - Dst: threshold
      Src: /src/icu/source/i18n/unicode/numberformatter.h:2045,1
    - Dst: macros
      Src: /src/icu/source/i18n/unicode/numberformatter.h:2061,1
    - Dst: adoptUnit
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1553,1
    - Dst: perUnit
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1599,1
    - Dst: adoptPerUnit
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1614,1
    - Dst: roundingMode
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1688,1
    - Dst: integerWidth
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1764,1
    - Dst: sign
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1939,1
    - Dst: toSkeleton
      Src: /src/icu/source/i18n/unicode/numberformatter.h:2082,1
    - Dst: sign
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1950,1
    - Dst: notation
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1482,1
    - Dst: unit
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1527,1
    - Dst: grouping
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1727,1
    - Dst: unitWidth
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1901,1
    - Dst: decimal
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1977,1
    - Dst: macros
      Src: /src/icu/source/i18n/unicode/numberformatter.h:2058,1
    - Dst: grouping
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1738,1
    - Dst: adoptSymbols
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1863,1
    - Dst: unitWidth
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1912,1
    - Dst: decimal
      Src: /src/icu/source/i18n/unicode/numberformatter.h:1988,1
    - Dst: macros
      Src: /src/icu/source/i18n/unicode/numberformatter.h:2055,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2137
      start: 1441
    functionDepth: 0
    functionLinenumber: 1441
    functionLinenumberEnd: 2137
    functionName: NumberFormatterSettings
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached:
    - toSkeleton
    - sign
    - adoptUnit
    - macros
    - perUnit
    - adoptPerUnit
    - precision
    - threshold
    - notation
    - padding
    - symbols
    - roundingMode
    - adoptSymbols
    - unitWidth
    - unit
    - scale
    - decimal
    - integerWidth
    - grouping
    linkageType: ''
    returnType: U_I18N_API
    signature: 'U_I18N_API NumberFormatterSettings '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 720
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 720
    functionName: isBogus
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool isBogus() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zeroFillTo
      Src: /src/icu/source/i18n/unicode/numberformatter.h:959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 960
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 960
    functionName: standard
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached:
    - zeroFillTo
    linkageType: ''
    returnType: IntegerWidth
    signature: 'static IntegerWidth standard() '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 1340
      start: 1334
    functionDepth: 0
    functionLinenumber: 1334
    functionLinenumberEnd: 1340
    functionName: copyErrorTo
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool copyErrorTo(UErrorCode &status) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1332
    functionName: isBogus
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool isBogus() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 964
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 964
    functionName: isBogus
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool isBogus() const '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1194
    functionName: isDecimalFormatSymbols
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool isDecimalFormatSymbols() const; /** * Whether the object is currently
      holding a NumberingSystem. * @internal */ bool isNumberingSystem() const; /**
      * Get the DecimalFormatSymbols pointer. No ownership change. * @internal */
      const DecimalFormatSymbols *getDecimalFormatSymbols() const; /** * Get the NumberingSystem
      pointer. No ownership change. * @internal */ const NumberingSystem *getNumberingSystem()
      const; #endif // U_HIDE_INTERNAL_API /** @internal */ UBool copyErrorTo(UErrorCode
      &status) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1342
    functionDepth: 0
    functionLinenumber: 1342
    functionLinenumberEnd: 1344
    functionName: isValid
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool isValid() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NumberFormatter
      Src: /src/icu/source/i18n/unicode/numberformatter.h:2673,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2674
      start: 2610
    functionDepth: 0
    functionLinenumber: 2610
    functionLinenumberEnd: 2674
    functionName: final
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached:
    - NumberFormatter
    linkageType: ''
    returnType: NumberFormatter
    signature: 'NumberFormatter final '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 1430
      start: 1426
    functionDepth: 0
    functionLinenumber: 1426
    functionLinenumberEnd: 1430
    functionName: copyErrorTo
    functionSourceFile: /src/icu/source/i18n/unicode/numberformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool copyErrorTo(UErrorCode &status) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setText
      Src: /src/icu/source/i18n/unicode/search.h:255,1
    - Dst: SearchIterator
      Src: /src/icu/source/i18n/unicode/search.h:481,1
    - Dst: SearchIterator
      Src: /src/icu/source/i18n/unicode/search.h:442,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 566
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 566
    functionName: SearchIterator
    functionSourceFile: /src/icu/source/i18n/unicode/search.h
    functionUses: []
    functionsReached:
    - SearchIterator
    - setText
    linkageType: ''
    returnType: U_I18N_API
    signature: 'U_I18N_API SearchIterator : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 571
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 571
    functionName: that
    functionSourceFile: /src/icu/source/i18n/unicode/search.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool SearchIterator::operator!=(const SearchIterator & that
      ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: getField
    functionSourceFile: /src/icu/source/i18n/unicode/fieldpos.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getField(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - bi
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: setBeginIndex
    functionSourceFile: /src/icu/source/i18n/unicode/fieldpos.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setBeginIndex(int32_t bi) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 217
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 217
    functionName: setField
    functionSourceFile: /src/icu/source/i18n/unicode/fieldpos.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setField(int32_t f) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 274
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 274
    functionName: getDynamicClassID
    functionSourceFile: /src/icu/source/i18n/unicode/fieldpos.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UClassID getDynamicClassID() const; /** * ICU "poor man''s
      RTTI", returns a UClassID for this class. * * @stable ICU 2.2 */ static UClassID
      U_EXPORT2 getStaticClassID(); private: /** * Input: Desired field to determine
      start and end offsets for. * The meaning depends on the subclass of Format.
      */ int32_t fField; /** * Output: Start offset of field in text. * If the field
      does not occur in the text, 0 is returned. */ int32_t fBeginIndex; /** * Output:
      End offset of field in text. * If the field does not occur in the text, 0 is
      returned. */ int32_t fEndIndex; }; inline FieldPosition&FieldPosition::operator=(const
      FieldPosition& copy) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: copy
    functionSourceFile: /src/icu/source/i18n/unicode/fieldpos.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool FieldPosition::operator==(const FieldPosition& copy )
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: copy
    functionSourceFile: /src/icu/source/i18n/unicode/fieldpos.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool FieldPosition::operator!=(const FieldPosition& copy )
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: getBeginIndex
    functionSourceFile: /src/icu/source/i18n/unicode/fieldpos.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getBeginIndex(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: getEndIndex
    functionSourceFile: /src/icu/source/i18n/unicode/fieldpos.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getEndIndex(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ei
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 231
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 231
    functionName: setEndIndex
    functionSourceFile: /src/icu/source/i18n/unicode/fieldpos.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setEndIndex(int32_t ei) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CurrencyUnit
      Src: /src/icu/source/i18n/unicode/currunit.h:44,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 135
    functionName: CurrencyUnit
    functionSourceFile: /src/icu/source/i18n/unicode/currunit.h
    functionUses: []
    functionsReached:
    - CurrencyUnit
    linkageType: ''
    returnType: U_I18N_API
    signature: 'U_I18N_API CurrencyUnit : public MeasureUnit '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: getISOCurrency
    functionSourceFile: /src/icu/source/i18n/unicode/currunit.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char16_t*
    signature: 'inline const char16_t * CurrencyUnit::getISOCurrency() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getName
      Src: /src/icu/source/i18n/unicode/tzrule.h:75,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 193
    functionName: TimeZoneRule
    functionSourceFile: /src/icu/source/i18n/unicode/tzrule.h
    functionUses: []
    functionsReached:
    - getName
    linkageType: ''
    returnType: U_I18N_API
    signature: 'U_I18N_API TimeZoneRule : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: other
    functionSourceFile: /src/icu/source/i18n/unicode/fmtable.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool operator!=(const Formattable& other ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 314
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 314
    functionName: getLong
    functionSourceFile: /src/icu/source/i18n/unicode/fmtable.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getLong(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 365
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 365
    functionName: getDate
    functionSourceFile: /src/icu/source/i18n/unicode/fmtable.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UDate
    signature: 'UDate getDate() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - count
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 443
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 443
    functionName: getArray
    functionSourceFile: /src/icu/source/i18n/unicode/fmtable.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Formattable*
    signature: 'const Formattable * getArray(int32_t& count) const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_SUCCESS
      Src: /src/icu/source/i18n/unicode/fmtable.h:713,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 719
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 719
    functionName: getDynamicClassID
    functionSourceFile: /src/icu/source/i18n/unicode/fmtable.h
    functionUses: []
    functionsReached:
    - U_SUCCESS
    linkageType: ''
    returnType: virtual
    signature: 'virtual UClassID getDynamicClassID() const; /** * ICU "poor man''s
      RTTI", returns a UClassID for this class. * * @stable ICU 2.2 */ static UClassID
      U_EXPORT2 getStaticClassID(); /** * Convert the UFormattable to a Formattable.
      Internally, this is a reinterpret_cast. * @param fmt a valid UFormattable *
      @return the UFormattable as a Formattable object pointer. This is an alias to
      the original * UFormattable, and so is only valid while the original argument
      remains in scope. * @stable ICU 52 */ static inline Formattable *fromUFormattable(UFormattable
      *fmt); /** * Convert the const UFormattable to a const Formattable. Internally,
      this is a reinterpret_cast. * @param fmt a valid UFormattable * @return the
      UFormattable as a Formattable object pointer. This is an alias to the original
      * UFormattable, and so is only valid while the original argument remains in
      scope. * @stable ICU 52 */ static inline const Formattable *fromUFormattable(const
      UFormattable *fmt); /** * Convert this object pointer to a UFormattable. * @return
      this object as a UFormattable pointer. This is an alias to this object, * and
      so is only valid while this object remains in scope. * @stable ICU 52 */ inline
      UFormattable *toUFormattable(); /** * Convert this object pointer to a UFormattable.
      * @return this object as a UFormattable pointer. This is an alias to this object,
      * and so is only valid while this object remains in scope. * @stable ICU 52
      */ inline const UFormattable *toUFormattable() const; #ifndef U_HIDE_DEPRECATED_API
      /** * Deprecated variant of getLong(UErrorCode&). * @param status the error
      code * @return the long value of this object. * @deprecated ICU 3.0 use getLong(UErrorCode&)
      instead */ inline int32_t getLong(UErrorCode* status) const;#endif /* U_HIDE_DEPRECATED_API
      */#ifndef U_HIDE_INTERNAL_API /** * Internal function, do not use. * TODO: figure
      out how to make this be non-public. * NumberFormat::format(Formattable, ...
      * needs to get at the DecimalQuantity, if it exists, for * big decimal formatting.
      * @internal */ number::impl::DecimalQuantity *getDecimalQuantity() const { return
      fDecimalQuantity; } /** * Export the value of this Formattable to a DecimalQuantity.
      * @internal */ void populateDecimalQuantity(number::impl::DecimalQuantity& output,
      UErrorCode& status) const; /** * Adopt, and set value from, a DecimalQuantity
      * Internal Function, do not use. * @param dq the DecimalQuantity to be adopted
      * @internal */ void adoptDecimalQuantity(number::impl::DecimalQuantity *dq);
      /** * Internal function to return the CharString pointer. * @param status error
      code * @return pointer to the CharString - may become invalid if the object
      is modified * @internal */ CharString *internalGetCharString(UErrorCode &status);
      #endif /* U_HIDE_INTERNAL_API */ private: /** * Cleans up the memory for unwanted
      values. For example, the adopted * string or array objects. */ void dispose(void);
      /** * Common initialization, for use by constructors. */ void init(); UnicodeString*
      getBogus() const; union { UObject* fObject; UnicodeString* fString; double fDouble;
      int64_t fInt64; UDate fDate; struct { Formattable* fArray; int32_t fCount; }
      fArrayAndCount; } fValue; CharString *fDecimalStr; number::impl::DecimalQuantity
      *fDecimalQuantity; Type fType; UnicodeString fBogus; // Bogus string when it''s
      needed. };inline UDate Formattable::getDate(UErrorCode& status) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 723
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 723
    functionName: getString
    functionSourceFile: /src/icu/source/i18n/unicode/fmtable.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline const UnicodeString & Formattable:: getString(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 741
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 741
    functionName: toUFormattable
    functionSourceFile: /src/icu/source/i18n/unicode/fmtable.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UFormattable*
    signature: 'inline const UFormattable * Formattable::toUFormattable() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: number
    functionSourceFile: /src/icu/source/i18n/unicode/fmtable.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace number '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 727
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 727
    functionName: getString
    functionSourceFile: /src/icu/source/i18n/unicode/fmtable.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString & Formattable:: getString(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - UFormattable*
    constantsTouched: []
    func_position:
      end: 745
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 745
    functionName: fromUFormattable
    functionSourceFile: /src/icu/source/i18n/unicode/fmtable.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Formattable*
    signature: 'inline Formattable * Formattable::fromUFormattable(UFormattable *fmt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - UFormattable*
    constantsTouched: []
    func_position:
      end: 749
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 749
    functionName: fromUFormattable
    functionSourceFile: /src/icu/source/i18n/unicode/fmtable.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Formattable*
    signature: 'inline const Formattable * Formattable::fromUFormattable(const UFormattable
      *fmt) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: getDouble
    functionSourceFile: /src/icu/source/i18n/unicode/fmtable.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: 'double getDouble(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 340
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 340
    functionName: getInt64
    functionSourceFile: /src/icu/source/i18n/unicode/fmtable.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'int64_t getInt64(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getLong
      Src: /src/icu/source/i18n/unicode/fmtable.h:731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 732
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 732
    functionName: getLong
    functionSourceFile: /src/icu/source/i18n/unicode/fmtable.h
    functionUses: []
    functionsReached:
    - getLong
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t Formattable:: getLong(UErrorCode* status) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 737
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 737
    functionName: toUFormattable
    functionSourceFile: /src/icu/source/i18n/unicode/fmtable.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UFormattable*
    signature: 'inline UFormattable * Formattable::toUFormattable() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: impl
    functionSourceFile: /src/icu/source/i18n/unicode/fmtable.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: that
    functionSourceFile: /src/icu/source/i18n/unicode/regex.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool operator!=(const RegexPattern& that ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookingAt
      Src: /src/icu/source/i18n/unicode/regex.h:804,1
    - Dst: start
      Src: /src/icu/source/i18n/unicode/regex.h:950,1
    - Dst: end
      Src: /src/icu/source/i18n/unicode/regex.h:1005,1
    - Dst: reset
      Src: /src/icu/source/i18n/unicode/regex.h:1069,1
    - Dst: reset
      Src: /src/icu/source/i18n/unicode/regex.h:1123,1
    - Dst: appendReplacement
      Src: /src/icu/source/i18n/unicode/regex.h:1483,1
    - Dst: getInput
      Src: /src/icu/source/i18n/unicode/regex.h:1197,1
    - Dst: appendReplacement
      Src: /src/icu/source/i18n/unicode/regex.h:1514,1
    - Dst: RegexMatcher
      Src: /src/icu/source/i18n/unicode/regex.h:696,1
    - Dst: start64
      Src: /src/icu/source/i18n/unicode/regex.h:959,1
    - Dst: end64
      Src: /src/icu/source/i18n/unicode/regex.h:1020,1
    - Dst: replaceFirst
      Src: /src/icu/source/i18n/unicode/regex.h:1453,1
    - Dst: appendTail
      Src: /src/icu/source/i18n/unicode/regex.h:1544,1
    - Dst: getFindProgressCallback
      Src: /src/icu/source/i18n/unicode/regex.h:1729,1
    - Dst: RegexMatcher
      Src: /src/icu/source/i18n/unicode/regex.h:741,1
    - Dst: find
      Src: /src/icu/source/i18n/unicode/regex.h:852,1
    - Dst: group
      Src: /src/icu/source/i18n/unicode/regex.h:875,1
    - Dst: refreshInputText
      Src: /src/icu/source/i18n/unicode/regex.h:1150,1
    - Dst: replaceAll
      Src: /src/icu/source/i18n/unicode/regex.h:1403,1
    - Dst: appendTail
      Src: /src/icu/source/i18n/unicode/regex.h:1528,1
    - Dst: getMatchCallback
      Src: /src/icu/source/i18n/unicode/regex.h:1696,1
    - Dst: matches
      Src: /src/icu/source/i18n/unicode/regex.h:775,1
    - Dst: group
      Src: /src/icu/source/i18n/unicode/regex.h:919,1
    - Dst: reset
      Src: /src/icu/source/i18n/unicode/regex.h:1165,1
    - Dst: RegexMatcher
      Src: /src/icu/source/i18n/unicode/regex.h:1759,1
    CyclomaticComplexity: 101
    EdgeCount: 101
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 1877
    functionName: getDynamicClassID
    functionSourceFile: /src/icu/source/i18n/unicode/regex.h
    functionUses: []
    functionsReached:
    - end
    - start
    - replaceFirst
    - refreshInputText
    - getInput
    - end64
    - start64
    - appendTail
    - matches
    - group
    - RegexMatcher
    - lookingAt
    - find
    - reset
    - appendReplacement
    - getFindProgressCallback
    - getMatchCallback
    - replaceAll
    linkageType: ''
    returnType: virtual
    signature: 'virtual UClassID getDynamicClassID() const; /** * ICU "poor man''s
      RTTI", returns a UClassID for this class. * * @stable ICU 2.4 */ static UClassID
      U_EXPORT2 getStaticClassID(); private: // // Implementation Data // UText *fPattern;
      // The original pattern string. UnicodeString *fPatternString; // The original
      pattern UncodeString if relevant uint32_t fFlags; // The flags used when compiling
      the pattern. // UVector64 *fCompiledPat; // The compiled pattern p-code. UnicodeString
      fLiteralText; // Any literal string data from the pattern, // after un-escaping,
      for use during the match. UVector *fSets; // Any UnicodeSets referenced from
      the pattern. Regex8BitSet *fSets8; // (and fast sets for latin-1 range.) UErrorCode
      fDeferredStatus; // status if some prior error has left this // RegexPattern
      in an unusable state. int32_t fMinMatchLen; // Minimum Match Length. All matches
      will have length // >= this value. For some patterns, this calculated // value
      may be less than the true shortest // possible match. int32_t fFrameSize; //
      Size of a state stack frame in the // execution engine. int32_t fDataSize; //
      The size of the data needed by the pattern that // does not go on the state
      stack, but has just // a single copy per matcher. UVector32 *fGroupMap; // Map
      from capture group number to position of // the group''s variables in the matcher
      stack frame. UnicodeSet **fStaticSets; // Ptr to static (shared) sets for predefined
      // regex character classes, e.g. Word. Regex8BitSet *fStaticSets8; // Ptr to
      the static (shared) latin-1 only // sets for predefined regex classes. int32_t
      fStartType; // Info on how a match must start. int32_t fInitialStringIdx; //
      int32_t fInitialStringLen; UnicodeSet *fInitialChars; UChar32 fInitialChar;
      Regex8BitSet *fInitialChars8; UBool fNeedsAltInput; UHashtable *fNamedCaptureMap;
      // Map from capture group names to numbers. friend class RegexCompile; friend
      class RegexMatcher; friend class RegexCImpl; // // Implementation Methods //
      void init(); // Common initialization, for use by constructors. bool initNamedCaptureMap();
      // Lazy init for fNamedCaptureMap. void zap(); // Common cleanup void dumpOp(int32_t
      index) const; public:#ifndef U_HIDE_INTERNAL_API /** * Dump a compiled pattern.
      Internal debug function. * @internal */ void dumpPattern() const;#endif /* U_HIDE_INTERNAL_API
      */};/** * class RegexMatcher bundles together a regular expression pattern and
      * input text to which the expression can be applied. It includes methods * for
      testing for matches, and for find and replace operations. * * <p>Class RegexMatcher
      is not intended to be subclassed.</p> * * @stable ICU 2.4 */class U_I18N_API
      RegexMatcher U_FINAL : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: getLabel
    functionSourceFile: /src/icu/source/i18n/unicode/alphaindex.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: 'const UnicodeString & getLabel() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: getLabelType
    functionSourceFile: /src/icu/source/i18n/unicode/alphaindex.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UAlphabeticIndexLabelType
    signature: 'UAlphabeticIndexLabelType getLabelType() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Record
      Src: /src/icu/source/i18n/unicode/alphaindex.h:715,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 716
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 716
    functionName: getBucketLabel
    functionSourceFile: /src/icu/source/i18n/unicode/alphaindex.h
    functionUses: []
    functionsReached:
    - Record
    linkageType: ''
    returnType: virtual
    signature: 'virtual const UnicodeString & getBucketLabel() const; /** * Return
      the type of the label for the current Bucket (selected by the * iteration over
      Buckets.) * * @return the label type. * @stable ICU 4.8 */ virtual UAlphabeticIndexLabelType
      getBucketLabelType() const; /** * Get the number of <name, data> Records in
      the current Bucket. * If the current bucket iteration position is before the
      first label or after the * last, return 0. * * @return the number of Records.
      * @stable ICU 4.8 */ virtual int32_t getBucketRecordCount() const; /** * Reset
      the Bucket iteration for this index. The next call to nextBucket() * will restart
      the iteration at the first label. * * @param status Error code, will be set
      with the reason if the operation fails. * @return this, for chaining. * @stable
      ICU 4.8 */ virtual AlphabeticIndex &resetBucketIterator(UErrorCode &status);
      /** * Advance to the next record in the current Bucket. * When nextBucket()
      is called, Record iteration is reset to just before the * first Record in the
      new Bucket. * * @param status Error code, will be set with the reason if the
      operation fails. * U_ENUM_OUT_OF_SYNC_ERROR will be reported if the index is
      modified while * an enumeration of its contents are in process. * @return TRUE
      if successful, FALSE when the iteration advances past the last item. * @stable
      ICU 4.8 */ virtual UBool nextRecord(UErrorCode &status); /** * Get the name
      of the current Record. * Return an empty string if the Record iteration position
      is before first * or after the last. * * @return The name of the current index
      item. * @stable ICU 4.8 */ virtual const UnicodeString &getRecordName() const;
      /** * Return the data pointer of the Record currently being iterated over. *
      Return NULL if the current iteration position before the first item in this
      Bucket, * or after the last. * * @return The current Record''s data pointer.
      * @stable ICU 4.8 */ virtual const void *getRecordData() const; /** * Reset
      the Record iterator position to before the first Record in the current Bucket.
      * * @return This, for chaining. * @stable ICU 4.8 */ virtual AlphabeticIndex
      &resetRecordIterator(); private: /** * No Copy constructor. * @internal */ AlphabeticIndex(const
      AlphabeticIndex &other); /** * No assignment. */ AlphabeticIndex &operator =(const
      AlphabeticIndex & /*other*/) { return *this;} /** * No Equality operators. *
      @internal */ virtual UBool operator==(const AlphabeticIndex& other) const; /**
      * Inequality operator. * @internal */ virtual UBool operator!=(const AlphabeticIndex&
      other) const; // Common initialization, for use from all constructors. void
      init(const Locale *locale, UErrorCode &status); /** * This method is called
      to get the index exemplars. Normally these come from the locale directly, *
      but if they aren''t available, we have to synthesize them. */ void addIndexExemplars(const
      Locale &locale, UErrorCode &status); /** * Add Chinese index characters from
      the tailoring. */ UBool addChineseIndexCharacters(UErrorCode &errorCode); UVector
      *firstStringsInScript(UErrorCode &status); static UnicodeString separated(const
      UnicodeString &item); /** * Determine the best labels to use. * This is based
      on the exemplars, but we also process to make sure that they are unique, * and
      sort differently, and that the overall list is small enough. */ void initLabels(UVector
      &indexCharacters, UErrorCode &errorCode) const; BucketList *createBucketList(UErrorCode
      &errorCode) const; void initBuckets(UErrorCode &errorCode); void clearBuckets();
      void internalResetBucketIterator(); public: // The Record is declared public
      only to allow access from // implementation code written in plain C. // It is
      not intended for public use.#ifndef U_HIDE_INTERNAL_API /** * A (name, data)
      pair, to be sorted by name into one of the index buckets. * The user data is
      not used by the index implementation. * \cond * @internal */ struct Record:
      public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getTimeInMillis
      Src: /src/icu/source/i18n/unicode/calendar.h:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 428
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 428
    functionName: getTime
    functionSourceFile: /src/icu/source/i18n/unicode/calendar.h
    functionUses: []
    functionsReached:
    - getTimeInMillis
    linkageType: ''
    returnType: UDate
    signature: 'inline UDate getTime(UErrorCode& status) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - field
    - defaultValue
    argTypes:
    - UCalendarDateFields
    - int32_t
    constantsTouched: []
    func_position:
      end: 1560
      start: 1560
    functionDepth: 0
    functionLinenumber: 1560
    functionLinenumberEnd: 1560
    functionName: internalGet
    functionSourceFile: /src/icu/source/i18n/unicode/calendar.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t internalGet(UCalendarDateFields field, int32_t defaultValue)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1897
      start: 1897
    functionDepth: 0
    functionLinenumber: 1897
    functionLinenumberEnd: 1897
    functionName: internalGetTime
    functionSourceFile: /src/icu/source/i18n/unicode/calendar.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UDate
    signature: 'UDate internalGetTime(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1971
    functionDepth: 0
    functionLinenumber: 1971
    functionLinenumberEnd: 1973
    functionName: getGregorianYear
    functionSourceFile: /src/icu/source/i18n/unicode/calendar.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getGregorianYear() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1980
    functionDepth: 0
    functionLinenumber: 1980
    functionLinenumberEnd: 1982
    functionName: getGregorianMonth
    functionSourceFile: /src/icu/source/i18n/unicode/calendar.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getGregorianMonth() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1989
    functionDepth: 0
    functionLinenumber: 1989
    functionLinenumberEnd: 1991
    functionName: getGregorianDayOfYear
    functionSourceFile: /src/icu/source/i18n/unicode/calendar.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getGregorianDayOfYear() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1998
    functionDepth: 0
    functionLinenumber: 1998
    functionLinenumberEnd: 2000
    functionName: getGregorianDayOfMonth
    functionSourceFile: /src/icu/source/i18n/unicode/calendar.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getGregorianDayOfMonth() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: createInstance
      Src: /src/icu/source/i18n/unicode/calendar.h:2501,1
    - Dst: getDefault
      Src: /src/icu/source/i18n/unicode/calendar.h:2501,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2409
    functionDepth: 0
    functionLinenumber: 2409
    functionLinenumberEnd: 2502
    functionName: defaultCenturyStart
    functionSourceFile: /src/icu/source/i18n/unicode/calendar.h
    functionUses: []
    functionsReached:
    - getDefault
    - createInstance
    linkageType: ''
    returnType: virtual
    signature: 'virtual UDate defaultCenturyStart() const = 0; /** * @return the beginning
      year of the default century, as a year * @internal */ virtual int32_t defaultCenturyStartYear()
      const = 0; /** Get the locale for this calendar object. You can choose between
      valid and actual locale. * @param type type of the locale we''re looking for
      (valid or actual) * @param status error code for the operation * @return the
      locale * @stable ICU 2.8 */ Locale getLocale(ULocDataLocaleType type, UErrorCode
      &status) const; /** * @return The related Gregorian year; will be obtained by
      modifying the value * obtained by get from UCAL_EXTENDED_YEAR field * @internal
      */ virtual int32_t getRelatedYear(UErrorCode &status) const; /** * @param year
      The related Gregorian year to set; will be modified as necessary then * set
      in UCAL_EXTENDED_YEAR field * @internal */ virtual void setRelatedYear(int32_t
      year); #ifndef U_HIDE_INTERNAL_API /** Get the locale for this calendar object.
      You can choose between valid and actual locale. * @param type type of the locale
      we''re looking for (valid or actual) * @param status error code for the operation
      * @return the locale * @internal */ const char* getLocaleID(ULocDataLocaleType
      type, UErrorCode &status) const; #endif /* U_HIDE_INTERNAL_API */ private: /**
      * Cast TimeZone used by this object to BasicTimeZone, or NULL if the TimeZone
      * is not an instance of BasicTimeZone. */ BasicTimeZone* getBasicTimeZone()
      const; /** * Find the previous zone transition near the given time. * @param
      base The base time, inclusive * @param transitionTime Receives the result time
      * @param status The error status * @return TRUE if a transition is found. */
      UBool getImmediatePreviousZoneTransition(UDate base, UDate *transitionTime,
      UErrorCode& status) const;public:#ifndef U_HIDE_INTERNAL_API /** * Creates a
      new Calendar from a Locale for the cache. * This method does not set the time
      or timezone in returned calendar. * @param locale the locale. * @param status
      any error returned here. * @return the new Calendar object with no time or timezone
      set. * @internal For ICU use only. */ static Calendar * U_EXPORT2 makeInstance(
      const Locale &locale, UErrorCode &status); /** * Get the calendar type for given
      locale. * @param locale the locale * @param typeBuffer calendar type returned
      here * @param typeBufferSize The size of typeBuffer in bytes. If the type *
      can''t fit in the buffer, this method sets status to * U_BUFFER_OVERFLOW_ERROR
      * @param status error, if any, returned here. * @internal For ICU use only.
      */ static void U_EXPORT2 getCalendarTypeFromLocale( const Locale &locale, char
      *typeBuffer, int32_t typeBufferSize, UErrorCode &status); #endif /* U_HIDE_INTERNAL_API
      */}; // ------------------------------------- inline Calendar*Calendar::createInstance(TimeZone*
      zone, UErrorCode& errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: roll
      Src: /src/icu/source/i18n/unicode/calendar.h:2509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - field
    - up
    - status
    argTypes:
    - UCalendarDateFields
    - UBool
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 2510
      start: 2506
    functionDepth: 0
    functionLinenumber: 2506
    functionLinenumberEnd: 2510
    functionName: roll
    functionSourceFile: /src/icu/source/i18n/unicode/calendar.h
    functionUses: []
    functionsReached:
    - roll
    linkageType: ''
    returnType: void
    signature: 'inline void Calendar:: roll(UCalendarDateFields field, UBool up, UErrorCode&
      status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - field
    - value
    argTypes:
    - UCalendarDateFields
    - int32_t
    constantsTouched: []
    func_position:
      end: 2534
      start: 2528
    functionDepth: 0
    functionLinenumber: 2528
    functionLinenumberEnd: 2534
    functionName: internalSet
    functionSourceFile: /src/icu/source/i18n/unicode/calendar.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void Calendar:: internalSet(UCalendarDateFields field, int32_t
      value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setTimeInMillis
      Src: /src/icu/source/i18n/unicode/calendar.h:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - date
    - status
    argTypes:
    - UDate
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 440
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 440
    functionName: setTime
    functionSourceFile: /src/icu/source/i18n/unicode/calendar.h
    functionUses: []
    functionsReached:
    - setTimeInMillis
    linkageType: ''
    returnType: void
    signature: 'inline void setTime(UDate date, UErrorCode& status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 463
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 463
    functionName: that
    functionSourceFile: /src/icu/source/i18n/unicode/calendar.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool operator!=(const Calendar& that ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - field
    argTypes:
    - UCalendarDateFields
    constantsTouched: []
    func_position:
      end: 1570
      start: 1570
    functionDepth: 0
    functionLinenumber: 1570
    functionLinenumberEnd: 1570
    functionName: internalGet
    functionSourceFile: /src/icu/source/i18n/unicode/calendar.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t internalGet(UCalendarDateFields field) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - time
    argTypes:
    - UDate
    constantsTouched: []
    func_position:
      end: 1906
      start: 1906
    functionDepth: 0
    functionLinenumber: 1906
    functionLinenumberEnd: 1906
    functionName: internalSetTime
    functionSourceFile: /src/icu/source/i18n/unicode/calendar.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void internalSetTime(UDate time) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: roll
      Src: /src/icu/source/i18n/unicode/calendar.h:2516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - field
    - up
    - status
    argTypes:
    - EDateFields
    - UBool
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 2517
      start: 2513
    functionDepth: 0
    functionLinenumber: 2513
    functionLinenumberEnd: 2517
    functionName: roll
    functionSourceFile: /src/icu/source/i18n/unicode/calendar.h
    functionUses: []
    functionsReached:
    - roll
    linkageType: ''
    returnType: void
    signature: 'inline void Calendar:: roll(EDateFields field, UBool up, UErrorCode&
      status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: weekNumber
      Src: /src/icu/source/i18n/unicode/calendar.h:2540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - dayOfPeriod
    - dayOfWeek
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 2541
      start: 2538
    functionDepth: 0
    functionLinenumber: 2538
    functionLinenumberEnd: 2541
    functionName: weekNumber
    functionSourceFile: /src/icu/source/i18n/unicode/calendar.h
    functionUses: []
    functionsReached:
    - weekNumber
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t Calendar:: weekNumber(int32_t dayOfPeriod, int32_t
      dayOfWeek) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - field
    argTypes:
    - EDateFields
    constantsTouched: []
    func_position:
      end: 1546
      start: 1546
    functionDepth: 0
    functionLinenumber: 1546
    functionLinenumberEnd: 1546
    functionName: internalGet
    functionSourceFile: /src/icu/source/i18n/unicode/calendar.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t internalGet(EDateFields field) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: number
    functionSourceFile: /src/icu/source/i18n/unicode/plurrule.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace number '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 496
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 496
    functionName: other
    functionSourceFile: /src/icu/source/i18n/unicode/plurrule.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool operator!=(const PluralRules& other ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecimalFormatSymbols
      Src: /src/icu/source/i18n/unicode/dcfmtsym.h:213,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 493
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 493
    functionName: DecimalFormatSymbols
    functionSourceFile: /src/icu/source/i18n/unicode/dcfmtsym.h
    functionUses: []
    functionsReached:
    - DecimalFormatSymbols
    linkageType: ''
    returnType: U_I18N_API
    signature: 'U_I18N_API DecimalFormatSymbols : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 386
    functionName: getDynamicClassID
    functionSourceFile: /src/icu/source/i18n/unicode/dcfmtsym.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UClassID getDynamicClassID() const; /** * ICU "poor man''s
      RTTI", returns a UClassID for this class. * * @stable ICU 2.2 */ static UClassID
      U_EXPORT2 getStaticClassID(); private: DecimalFormatSymbols(); /** * Initializes
      the symbols from the LocaleElements resource bundle. * Note: The organization
      of LocaleElements badly needs to be * cleaned up. * * @param locale The locale
      to get symbols for. * @param success Input/output parameter, set to success
      or * failure code upon return. * @param useLastResortData determine if use last
      resort data * @param ns The NumberingSystem to use; otherwise, fall * back to
      the locale. */ void initialize(const Locale& locale, UErrorCode& success, UBool
      useLastResortData = FALSE, const NumberingSystem* ns = nullptr); /** * Initialize
      the symbols with default values. */ void initialize(); void setCurrencyForSymbols();
      public:#ifndef U_HIDE_INTERNAL_API /** * @internal For ICU use only */ inline
      UBool isCustomCurrencySymbol() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: getCodePointZero
    functionSourceFile: /src/icu/source/i18n/unicode/dcfmtsym.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UChar32
    signature: 'inline UChar32 getCodePointZero() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 393
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 393
    functionName: isCustomIntlCurrencySymbol
    functionSourceFile: /src/icu/source/i18n/unicode/dcfmtsym.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool isCustomIntlCurrencySymbol() const '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - symbol
    argTypes:
    - ENumberFormatSymbol
    constantsTouched: []
    func_position:
      end: 506
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 506
    functionName: getSymbol
    functionSourceFile: /src/icu/source/i18n/unicode/dcfmtsym.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString DecimalFormatSymbols:: getSymbol(ENumberFormatSymbol
      symbol) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 571
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 571
    functionName: getLocale
    functionSourceFile: /src/icu/source/i18n/unicode/dcfmtsym.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Locale
    signature: 'inline Locale DecimalFormatSymbols:: getLocale() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 577
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 577
    functionName: getCurrencyPattern
    functionSourceFile: /src/icu/source/i18n/unicode/dcfmtsym.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char16_t*
    signature: 'inline const char16_t *DecimalFormatSymbols::getCurrencyPattern()
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 266
    functionName: other
    functionSourceFile: /src/icu/source/i18n/unicode/dcfmtsym.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool operator!=(const DecimalFormatSymbols& other ) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - symbol
    argTypes:
    - ENumberFormatSymbol
    constantsTouched: []
    func_position:
      end: 518
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 518
    functionName: getConstSymbol
    functionSourceFile: /src/icu/source/i18n/unicode/dcfmtsym.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline const UnicodeString &DecimalFormatSymbols:: getConstSymbol(ENumberFormatSymbol
      symbol) const '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - digit
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 530
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 530
    functionName: getConstDigitSymbol
    functionSourceFile: /src/icu/source/i18n/unicode/dcfmtsym.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline const UnicodeString & DecimalFormatSymbols:: getConstDigitSymbol(int32_t
      digit) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 261
    functionName: getDynamicClassID
    functionSourceFile: /src/icu/source/i18n/unicode/sortkey.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UClassID getDynamicClassID() const; /** * ICU "poor man''s
      RTTI", returns a UClassID for this class. * @stable ICU 2.2 */ static UClassID
      U_EXPORT2 getStaticClassID(); private: /** * Replaces the current bytes buffer
      with a new one of newCapacity * and copies length bytes from the old buffer
      to the new one. * @return the new buffer, or NULL if the allocation failed */
      uint8_t *reallocate(int32_t newCapacity, int32_t length); /** * Set a new length
      for a new sort key in the existing fBytes. */ void setLength(int32_t newLength);
      uint8_t *getBytes() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: getCapacity
    functionSourceFile: /src/icu/source/i18n/unicode/sortkey.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getCapacity() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: getLength
    functionSourceFile: /src/icu/source/i18n/unicode/sortkey.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getLength() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 328
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 328
    functionName: isBogus
    functionSourceFile: /src/icu/source/i18n/unicode/sortkey.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool CollationKey:: isBogus() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: getBytes
    functionSourceFile: /src/icu/source/i18n/unicode/sortkey.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint8_t*
    signature: 'const uint8_t *getBytes() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: other
    functionSourceFile: /src/icu/source/i18n/unicode/sortkey.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool CollationKey::operator!=(const CollationKey& other )
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getLength
      Src: /src/icu/source/i18n/unicode/sortkey.h:333,1
    - Dst: getBytes
      Src: /src/icu/source/i18n/unicode/sortkey.h:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - count
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 335
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 335
    functionName: getByteArray
    functionSourceFile: /src/icu/source/i18n/unicode/sortkey.h
    functionUses: []
    functionsReached:
    - getLength
    - getBytes
    linkageType: ''
    returnType: uint8_t*
    signature: 'inline const uint8_t *CollationKey::getByteArray(int32_t &count) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 24
    functionName: LXUtilities
    functionSourceFile: /src/icu/source/layoutex/LXUtilities.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN class LXUtilities '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Line
      Src: /src/icu/source/layoutex/layout/ParagraphLayout.h:77,1
    - Dst: getStaticClassID
      Src: /src/icu/source/layoutex/layout/ParagraphLayout.h:158,1
    - Dst: getStaticClassID
      Src: /src/icu/source/layoutex/layout/ParagraphLayout.h:321,1
    - Dst: VisualRun
      Src: /src/icu/source/layoutex/layout/ParagraphLayout.h:349,1
    - Dst: ParagraphLayout
      Src: /src/icu/source/layoutex/layout/ParagraphLayout.h:409,1
    - Dst: getStaticClassID
      Src: /src/icu/source/layoutex/layout/ParagraphLayout.h:552,1
    - Dst: ParagraphLayout
      Src: /src/icu/source/layoutex/layout/ParagraphLayout.h:578,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 645
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 645
    functionName: ParagraphLayout
    functionSourceFile: /src/icu/source/layoutex/layout/ParagraphLayout.h
    functionUses: []
    functionsReached:
    - ParagraphLayout
    - VisualRun
    - getStaticClassID
    - Line
    linkageType: ''
    returnType: U_LAYOUTEX_API
    signature: 'U_LAYOUTEX_API ParagraphLayout : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 579
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 579
    functionName: UObject
    functionSourceFile: /src/icu/source/layoutex/layout/ParagraphLayout.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: ParagraphLayout(const ParagraphLayout & /*other*/)
    signature: 'ParagraphLayout(const ParagraphLayout & /*other*/) : UObject( ) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getStaticClassID
      Src: /src/icu/source/layoutex/layout/ParagraphLayout.h:552,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 552
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 552
    functionName: getLeading
    functionSourceFile: /src/icu/source/layoutex/layout/ParagraphLayout.h
    functionUses: []
    functionsReached:
    - getStaticClassID
    linkageType: ''
    returnType: virtual
    signature: 'virtual le_int32 getLeading() const; /** * Reset line breaking to
      start from the beginning of the paragraph. * * * @stable ICU 3.2 */ inline void
      reflow(); #ifndef U_HIDE_INTERNAL_API /** * * Convenience method for determining
      if paragraph layout processing is complete ( i.e. there * are no more lines
      left to process. ) * * @return true if there are no more lines to be processed
      * * @internal */ inline le_bool isDone() const;#endif /* U_HIDE_INTERNAL_API
      */ /** * Return a <code>ParagraphLayout::Line</code> object which represents
      next line * in the paragraph. The width of the line is specified each time so
      that it can * be varied to support arbitrary paragraph shapes. * * @param width
      is the width of the line. If <code>width</code> is less than or equal * to zero,
      a <code>ParagraphLayout::Line</code> object representing the * rest of the paragraph
      will be returned. * * @return a <code>ParagraphLayout::Line</code> object which
      represents the line. The caller * is responsible for deleting the object. Returns
      <code>NULL</code> if there are no * more lines in the paragraph. * * @see ParagraphLayout::Line
      * * @stable ICU 3.2 */ Line *nextLine(float width); /** * ICU "poor man''s RTTI",
      returns a UClassID for this class. * * @stable ICU 3.2 */ static inline UClassID
      getStaticClassID() { return (UClassID)&fgClassID; } /** * ICU "poor man''s RTTI",
      returns a UClassID for the actual class. * * @stable ICU 3.2 */ virtual inline
      UClassID getDynamicClassID() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getStaticClassID
      Src: /src/icu/source/layoutex/layout/ParagraphLayout.h:158,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 158
    functionName: countRuns
    functionSourceFile: /src/icu/source/layoutex/layout/ParagraphLayout.h
    functionUses: []
    functionsReached:
    - getStaticClassID
    linkageType: ''
    returnType: le_int32
    signature: 'inline le_int32 countRuns() const; /** * Get the ascent of the line.
      This is the maximum ascent * of all the fonts on the line. * * @return the ascent
      of the line. * * @stable ICU 3.2 */ le_int32 getAscent() const; /** * Get the
      descent of the line. This is the maximum descent * of all the fonts on the line.
      * * @return the descent of the line. * * @stable ICU 3.2 */ le_int32 getDescent()
      const; /** * Get the leading of the line. This is the maximum leading * of all
      the fonts on the line. * * @return the leading of the line. * * @stable ICU
      3.2 */ le_int32 getLeading() const; /** * Get the width of the line. This is
      a convenience method * which returns the last X position of the last visual
      run * in the line. * * @return the width of the line. * * @stable ICU 2.8 */
      le_int32 getWidth() const; /** * Get a <code>ParagraphLayout::VisualRun</code>
      object for a given * visual run in the line. * * @param runIndex is the index
      of the run, in visual order. * * @return the <code>ParagraphLayout::VisualRun</code>
      object representing the * visual run. This object is owned by the <code>Line</code>
      object which * created it, and will remain valid for as long as the <code>Line</code>
      * object is valid. * * @see ParagraphLayout::VisualRun * * @stable ICU 3.2 */
      const VisualRun *getVisualRun(le_int32 runIndex) const; /** * ICU "poor man''s
      RTTI", returns a UClassID for this class. * * @stable ICU 3.2 */ static inline
      UClassID getStaticClassID() { return (UClassID)&fgClassID; } /** * ICU "poor
      man''s RTTI", returns a UClassID for the actual class. * * @stable ICU 3.2 */
      virtual inline UClassID getDynamicClassID() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getStaticClassID
      Src: /src/icu/source/layoutex/layout/ParagraphLayout.h:321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 321
    functionName: getLeading
    functionSourceFile: /src/icu/source/layoutex/layout/ParagraphLayout.h
    functionUses: []
    functionsReached:
    - getStaticClassID
    linkageType: ''
    returnType: le_int32
    signature: 'inline le_int32 getLeading() const; /** * ICU "poor man''s RTTI",
      returns a UClassID for this class. * * @stable ICU 3.2 */ static inline UClassID
      getStaticClassID() { return (UClassID)&fgClassID; } /** * ICU "poor man''s RTTI",
      returns a UClassID for the actual class. * * @stable ICU 3.2 */ virtual inline
      UClassID getDynamicClassID() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_getParaLevel
      Src: /src/icu/source/layoutex/layout/ParagraphLayout.h:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 650
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 650
    functionName: getParagraphLevel
    functionSourceFile: /src/icu/source/layoutex/layout/ParagraphLayout.h
    functionUses: []
    functionsReached:
    - ubidi_getParaLevel
    linkageType: ''
    returnType: UBiDiLevel
    signature: 'inline UBiDiLevel ParagraphLayout:: getParagraphLevel() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_getDirection
      Src: /src/icu/source/layoutex/layout/ParagraphLayout.h:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 655
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 655
    functionName: getTextDirection
    functionSourceFile: /src/icu/source/layoutex/layout/ParagraphLayout.h
    functionUses: []
    functionsReached:
    - ubidi_getDirection
    linkageType: ''
    returnType: UBiDiDirection
    signature: 'inline UBiDiDirection ParagraphLayout:: getTextDirection() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 660
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 660
    functionName: reflow
    functionSourceFile: /src/icu/source/layoutex/layout/ParagraphLayout.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void ParagraphLayout:: reflow() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getStaticClassID
      Src: /src/icu/source/layoutex/layout/RunArrays.h:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 363
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 363
    functionName: getDynamicClassID
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached:
    - getStaticClassID
    linkageType: ''
    returnType: virtual
    signature: 'virtual inline UClassID getDynamicClassID() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunArray
      Src: /src/icu/source/layoutex/layout/RunArrays.h:531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames:
    - 'NULL'
    argTypes: []
    constantsTouched: []
    func_position:
      end: 534
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 534
    functionName: fLocales
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached:
    - RunArray
    linkageType: ''
    returnType: LocaleRuns
    signature: 'inline LocaleRuns ::LocaleRuns(const LocaleRuns & /*other*/) : RunArray(0),
      fLocales(NULL) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunArray
      Src: /src/icu/source/layoutex/layout/RunArrays.h:537,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames:
    - locales
    argTypes: []
    constantsTouched: []
    func_position:
      end: 540
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 540
    functionName: fLocales
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached:
    - RunArray
    linkageType: ''
    returnType: LocaleRuns
    signature: 'inline LocaleRuns ::LocaleRuns(const Locale **locales, const le_int32
      *limits, le_int32 count) : RunArray(limits, count), fLocales(locales) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunArray
      Src: /src/icu/source/layoutex/layout/RunArrays.h:397,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames:
    - fonts
    argTypes: []
    constantsTouched: []
    func_position:
      end: 400
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 400
    functionName: fFonts
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached:
    - RunArray
    linkageType: ''
    returnType: FontRuns
    signature: 'inline FontRuns ::FontRuns(const LEFontInstance **fonts, const le_int32
      *limits, le_int32 count) : RunArray(limits, count), fFonts(fonts) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 662
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 662
    functionName: ValueRuns
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: ValueRuns
    signature: 'inline ValueRuns :: ValueRuns() : RunArray(0), fValues(NULL) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 528
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 528
    functionName: LocaleRuns
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: LocaleRuns
    signature: 'inline LocaleRuns :: LocaleRuns() : RunArray(0), fLocales(NULL) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 493
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 493
    functionName: getStaticClassID
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UClassID
    signature: 'static inline UClassID getStaticClassID() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getStaticClassID
      Src: /src/icu/source/layoutex/layout/RunArrays.h:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: getDynamicClassID
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached:
    - getStaticClassID
    linkageType: ''
    returnType: virtual
    signature: 'virtual inline UClassID getDynamicClassID() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: reset
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void RunArray:: reset() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getLimit
      Src: /src/icu/source/layoutex/layout/RunArrays.h:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: getLimit
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached:
    - getLimit
    linkageType: ''
    returnType: le_int32
    signature: 'inline le_int32 RunArray:: getLimit() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: FontRuns
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: FontRuns
    signature: 'inline FontRuns :: FontRuns() : RunArray(0), fFonts(NULL) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getStaticClassID
      Src: /src/icu/source/layoutex/layout/RunArrays.h:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 500
    functionName: getDynamicClassID
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached:
    - getStaticClassID
    linkageType: ''
    returnType: virtual
    signature: 'virtual inline UClassID getDynamicClassID() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunArray
      Src: /src/icu/source/layoutex/layout/RunArrays.h:665,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames:
    - 'NULL'
    argTypes: []
    constantsTouched: []
    func_position:
      end: 668
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 668
    functionName: fValues
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached:
    - RunArray
    linkageType: ''
    returnType: ValueRuns
    signature: 'inline ValueRuns ::ValueRuns(const ValueRuns & /*other*/) : RunArray(0),
      fValues(NULL) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunArray
      Src: /src/icu/source/layoutex/layout/RunArrays.h:671,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames:
    - values
    argTypes: []
    constantsTouched: []
    func_position:
      end: 674
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 674
    functionName: fValues
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached:
    - RunArray
    linkageType: ''
    returnType: ValueRuns
    signature: 'inline ValueRuns ::ValueRuns(const le_int32 *values, const le_int32
      *limits, le_int32 count) : RunArray(limits, count), fValues(values) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - run
    argTypes:
    - le_int32
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: getLimit
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: le_int32
    signature: 'inline le_int32 RunArray:: getLimit(le_int32 run) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunArray
      Src: /src/icu/source/layoutex/layout/RunArrays.h:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames:
    - 'NULL'
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 394
    functionName: fFonts
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached:
    - RunArray
    linkageType: ''
    returnType: FontRuns
    signature: 'inline FontRuns ::FontRuns(const FontRuns & /*other*/) : RunArray(0),
      fFonts(NULL) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: getStaticClassID
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UClassID
    signature: 'static inline UClassID getStaticClassID() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: RunArray
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: RunArray
    signature: 'inline RunArray :: RunArray() : UObject(), fClientArrays(FALSE), fLimits(NULL),
      fCount(0), fCapacity(0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 356
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 356
    functionName: getStaticClassID
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UClassID
    signature: 'static inline UClassID getStaticClassID() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 630
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 630
    functionName: getStaticClassID
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UClassID
    signature: 'static inline UClassID getStaticClassID() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getStaticClassID
      Src: /src/icu/source/layoutex/layout/RunArrays.h:637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 637
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 637
    functionName: getDynamicClassID
    functionSourceFile: /src/icu/source/layoutex/layout/RunArrays.h
    functionUses: []
    functionsReached:
    - getStaticClassID
    linkageType: ''
    returnType: virtual
    signature: 'virtual inline UClassID getDynamicClassID() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/samples/ucnv/flagcb.c:160,1
    - Dst: debugCB_nextSerial
      Src: /src/icu/source/samples/ucnv/flagcb.c:162,1
    - Dst: printf
      Src: /src/icu/source/samples/ucnv/flagcb.c:169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - debugCBContext*
    constantsTouched: []
    func_position:
      end: 173
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 173
    functionName: debugCB_clone
    functionSourceFile: /src/icu/source/samples/ucnv/flagcb.c
    functionUses: []
    functionsReached:
    - debugCB_nextSerial
    - malloc
    - printf
    linkageType: ''
    returnType: debugCBContext*
    signature: 'static debugCBContext *debugCB_clone(debugCBContext *ctx) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: debugCB_nextSerial
    functionSourceFile: /src/icu/source/samples/ucnv/flagcb.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t debugCB_nextSerial() '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/source/samples/ucnv/flagcb.c:56,1
    - Dst: printf
      Src: /src/icu/source/samples/ucnv/flagcb.c:66,1
    - Dst: flagCB_fromU_openContext
      Src: /src/icu/source/samples/ucnv/flagcb.c:59,1
    - Dst: memcpy
      Src: /src/icu/source/samples/ucnv/flagcb.c:61,1
    - Dst: printf
      Src: /src/icu/source/samples/ucnv/flagcb.c:64,1
    - Dst: ucnv_setFromUCallBack
      Src: /src/icu/source/samples/ucnv/flagcb.c:87,1
    - Dst: ucnv_setFromUCallBack
      Src: /src/icu/source/samples/ucnv/flagcb.c:100,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/ucnv/flagcb.c:107,1
    - Dst: free
      Src: /src/icu/source/samples/ucnv/flagcb.c:128,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 7
    argNames:
    - context
    - fromUArgs
    - codeUnits
    - length
    - codePoint
    - reason
    - err
    argTypes:
    - void*
    - UConverterFromUnicodeArgs*
    - UChar*
    - int32_t
    - UChar32
    - UConverterCallbackReason
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 130
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 130
    functionName: flagCB_fromU
    functionSourceFile: /src/icu/source/samples/ucnv/flagcb.c
    functionUses: []
    functionsReached:
    - memcpy
    - flagCB_fromU_openContext
    - U_FAILURE
    - ucnv_setFromUCallBack
    - free
    - printf
    linkageType: ''
    returnType: U_EXPORT2
    signature: "U_EXPORT2 flagCB_fromU( const void *context, UConverterFromUnicodeArgs
      *fromUArgs, const UChar* codeUnits, int32_t length, UChar32 codePoint, UConverterCallbackReason
      reason,\t\t\t\t UErrorCode * err) "
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/source/samples/ucnv/flagcb.c:146,1
    - Dst: printf
      Src: /src/icu/source/samples/ucnv/flagcb.c:152,1
    - Dst: fprintf
      Src: /src/icu/source/samples/ucnv/flagcb.c:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - q
    - name
    argTypes:
    - debugCBContext*
    - char*
    constantsTouched: []
    func_position:
      end: 155
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 155
    functionName: debugCB_print_log
    functionSourceFile: /src/icu/source/samples/ucnv/flagcb.c
    functionUses: []
    functionsReached:
    - printf
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void debugCB_print_log(debugCBContext *q, const char *name) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/source/samples/ucnv/flagcb.c:187,1
    - Dst: fprintf
      Src: /src/icu/source/samples/ucnv/flagcb.c:191,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/ucnv/flagcb.c:187,1
    - Dst: printf
      Src: /src/icu/source/samples/ucnv/flagcb.c:205,1
    - Dst: debugCB_clone
      Src: /src/icu/source/samples/ucnv/flagcb.c:207,1
    - Dst: fprintf
      Src: /src/icu/source/samples/ucnv/flagcb.c:210,1
    - Dst: ucnv_setFromUCallBack
      Src: /src/icu/source/samples/ucnv/flagcb.c:215,1
    - Dst: printf
      Src: /src/icu/source/samples/ucnv/flagcb.c:224,1
    - Dst: printf
      Src: /src/icu/source/samples/ucnv/flagcb.c:230,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/ucnv/flagcb.c:241,1
    - Dst: free
      Src: /src/icu/source/samples/ucnv/flagcb.c:263,1
    - Dst: printf
      Src: /src/icu/source/samples/ucnv/flagcb.c:267,1
    - Dst: ucnv_setFromUCallBack
      Src: /src/icu/source/samples/ucnv/flagcb.c:234,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/ucnv/flagcb.c:267,1
    - Dst: printf
      Src: /src/icu/source/samples/ucnv/flagcb.c:261,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 7
    argNames:
    - context
    - fromUArgs
    - codeUnits
    - length
    - codePoint
    - reason
    - err
    argTypes:
    - void*
    - UConverterFromUnicodeArgs*
    - UChar*
    - int32_t
    - UChar32
    - UConverterCallbackReason
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 269
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 269
    functionName: debugCB_fromU
    functionSourceFile: /src/icu/source/samples/ucnv/flagcb.c
    functionUses: []
    functionsReached:
    - fprintf
    - U_FAILURE
    - u_errorName
    - ucnv_setFromUCallBack
    - free
    - debugCB_clone
    - printf
    linkageType: ''
    returnType: void
    signature: 'void debugCB_fromU(const void *context, UConverterFromUnicodeArgs
      *fromUArgs, const UChar* codeUnits, int32_t length, UChar32 codePoint, UConverterCallbackReason
      reason, UErrorCode * err) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/samples/ucnv/flagcb.c:275,1
    - Dst: fprintf
      Src: /src/icu/source/samples/ucnv/flagcb.c:284,1
    - Dst: debugCB_nextSerial
      Src: /src/icu/source/samples/ucnv/flagcb.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 291
    functionName: debugCB_openContext
    functionSourceFile: /src/icu/source/samples/ucnv/flagcb.c
    functionUses: []
    functionsReached:
    - debugCB_nextSerial
    - malloc
    - fprintf
    linkageType: ''
    returnType: debugCBContext*
    signature: 'debugCBContext *debugCB_openContext() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: u_toupper
      Src: /src/icu/source/samples/case/ucase.c:43,1
    - Dst: u_totitle
      Src: /src/icu/source/samples/case/ucase.c:47,1
    - Dst: u_strToLower
      Src: /src/icu/source/samples/case/ucase.c:55,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/case/ucase.c:70,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/case/ucase.c:86,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/case/ucase.c:87,1
    - Dst: printf
      Src: /src/icu/source/samples/case/ucase.c:40,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/case/ucase.c:44,1
    - Dst: u_strToUpper
      Src: /src/icu/source/samples/case/ucase.c:68,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/case/ucase.c:62,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/case/ucase.c:83,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/case/ucase.c:84,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/case/ucase.c:46,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/case/ucase.c:48,1
    - Dst: u_foldCase
      Src: /src/icu/source/samples/case/ucase.c:49,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/case/ucase.c:59,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/case/ucase.c:74,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/case/ucase.c:58,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/case/ucase.c:82,1
    - Dst: u_tolower
      Src: /src/icu/source/samples/case/ucase.c:45,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/case/ucase.c:50,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/case/ucase.c:57,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/case/ucase.c:71,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/case/ucase.c:72,1
    - Dst: u_strFoldCase
      Src: /src/icu/source/samples/case/ucase.c:79,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 1
    argNames:
    - out
    argTypes:
    - UFILE*
    constantsTouched: []
    func_position:
      end: 90
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 90
    functionName: c_main
    functionSourceFile: /src/icu/source/samples/case/ucase.c
    functionUses: []
    functionsReached:
    - u_totitle
    - u_strToLower
    - U_FAILURE
    - u_errorName
    - u_strToUpper
    - u_toupper
    - u_foldCase
    - u_fprintf
    - u_tolower
    - printf
    - u_strFoldCase
    linkageType: ''
    returnType: int
    signature: 'int c_main(UFILE *out) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _getcwd
      Src: /src/icu/source/samples/udata/writer.c:74,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/udata/writer.c:87,1
    - Dst: getcwd
      Src: /src/icu/source/samples/udata/writer.c:76,1
    - Dst: udata_create
      Src: /src/icu/source/samples/udata/writer.c:79,1
    - Dst: free
      Src: /src/icu/source/samples/udata/writer.c:83,1
    - Dst: fprintf
      Src: /src/icu/source/samples/udata/writer.c:88,1
    - Dst: exit
      Src: /src/icu/source/samples/udata/writer.c:89,1
    - Dst: printf
      Src: /src/icu/source/samples/udata/writer.c:94,1
    - Dst: udata_write16
      Src: /src/icu/source/samples/udata/writer.c:95,1
    - Dst: printf
      Src: /src/icu/source/samples/udata/writer.c:96,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/udata/writer.c:101,1
    - Dst: fprintf
      Src: /src/icu/source/samples/udata/writer.c:102,1
    - Dst: udata_writeString
      Src: /src/icu/source/samples/udata/writer.c:97,1
    - Dst: udata_finish
      Src: /src/icu/source/samples/udata/writer.c:100,1
    - Dst: fprintf
      Src: /src/icu/source/samples/udata/writer.c:109,1
    - Dst: exit
      Src: /src/icu/source/samples/udata/writer.c:110,1
    - Dst: exit
      Src: /src/icu/source/samples/udata/writer.c:103,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 113
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 113
    functionName: main
    functionSourceFile: /src/icu/source/samples/udata/writer.c
    functionUses: []
    functionsReached:
    - udata_writeString
    - U_FAILURE
    - udata_create
    - printf
    - _getcwd
    - exit
    - free
    - udata_write16
    - getcwd
    - fprintf
    - udata_finish
    linkageType: ''
    returnType: int
    signature: 'extern int main(int argc, const char *argv[]) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 20
    argCount: 4
    argNames:
    - context
    - type
    - name
    - pInfo
    argTypes:
    - void*
    - char*
    - char*
    - UDataInfo*
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: isAcceptable
    functionSourceFile: /src/icu/source/samples/udata/reader.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool isAcceptable(void *context, const char *type, const char
      *name, const UDataInfo *pInfo) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _getcwd
      Src: /src/icu/source/samples/udata/reader.c:93,1
    - Dst: getcwd
      Src: /src/icu/source/samples/udata/reader.c:95,1
    - Dst: free
      Src: /src/icu/source/samples/udata/reader.c:104,1
    - Dst: udata_openChoice
      Src: /src/icu/source/samples/udata/reader.c:101,1
    - Dst: strcpy
      Src: /src/icu/source/samples/udata/reader.c:99,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/udata/reader.c:107,1
    - Dst: printf
      Src: /src/icu/source/samples/udata/reader.c:108,1
    - Dst: udata_getMemory
      Src: /src/icu/source/samples/udata/reader.c:112,1
    - Dst: printf
      Src: /src/icu/source/samples/udata/reader.c:116,1
    - Dst: printf
      Src: /src/icu/source/samples/udata/reader.c:120,1
    - Dst: udata_close
      Src: /src/icu/source/samples/udata/reader.c:123,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/samples/udata/reader.c:122,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 127
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 127
    functionName: main
    functionSourceFile: /src/icu/source/samples/udata/reader.c
    functionUses: []
    functionsReached:
    - udata_getMemory
    - U_FAILURE
    - strcpy
    - _getcwd
    - U_SUCCESS
    - free
    - udata_close
    - udata_openChoice
    - getcwd
    - printf
    linkageType: ''
    returnType: int
    signature: 'extern int main(int argc, const char *argv[]) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/source/samples/csdet/csdet.c:25,1
    - Dst: printf
      Src: /src/icu/source/samples/csdet/csdet.c:44,1
    - Dst: printf
      Src: /src/icu/source/samples/csdet/csdet.c:38,1
    - Dst: printf
      Src: /src/icu/source/samples/csdet/csdet.c:48,1
    - Dst: fopen
      Src: /src/icu/source/samples/csdet/csdet.c:41,1
    - Dst: fread
      Src: /src/icu/source/samples/csdet/csdet.c:50,1
    - Dst: fclose
      Src: /src/icu/source/samples/csdet/csdet.c:52,1
    - Dst: ucsdet_open
      Src: /src/icu/source/samples/csdet/csdet.c:54,1
    - Dst: ucsdet_setText
      Src: /src/icu/source/samples/csdet/csdet.c:55,1
    - Dst: ucsdet_detectAll
      Src: /src/icu/source/samples/csdet/csdet.c:57,1
    - Dst: ucsdet_getName
      Src: /src/icu/source/samples/csdet/csdet.c:60,1
    - Dst: printf
      Src: /src/icu/source/samples/csdet/csdet.c:68,1
    - Dst: ucsdet_getConfidence
      Src: /src/icu/source/samples/csdet/csdet.c:62,1
    - Dst: strlen
      Src: /src/icu/source/samples/csdet/csdet.c:64,1
    - Dst: ucsdet_close
      Src: /src/icu/source/samples/csdet/csdet.c:71,1
    - Dst: ucsdet_getLanguage
      Src: /src/icu/source/samples/csdet/csdet.c:61,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 75
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 75
    functionName: main
    functionSourceFile: /src/icu/source/samples/csdet/csdet.c
    functionUses: []
    functionsReached:
    - fclose
    - ucsdet_getConfidence
    - fopen
    - ucsdet_detectAll
    - ucsdet_getName
    - fread
    - ucsdet_getLanguage
    - ucsdet_close
    - strlen
    - ucsdet_setText
    - printf
    - ucsdet_open
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char *argv[]) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/source/samples/date/date.c:223,1
    - Dst: puts
      Src: /src/icu/source/samples/date/date.c:216,1
    - Dst: printf
      Src: /src/icu/source/samples/date/date.c:222,1
    - Dst: ucal_getDefaultTimeZone
      Src: /src/icu/source/samples/date/date.c:229,1
    - Dst: fprintf
      Src: /src/icu/source/samples/date/date.c:231,1
    - Dst: printf
      Src: /src/icu/source/samples/date/date.c:226,1
    - Dst: printf
      Src: /src/icu/source/samples/date/date.c:225,1
    - Dst: uprint
      Src: /src/icu/source/samples/date/date.c:233,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/date/date.c:230,1
    - Dst: ucal_getTZDataVersion
      Src: /src/icu/source/samples/date/date.c:217,1
    - Dst: printf
      Src: /src/icu/source/samples/date/date.c:221,1
    - Dst: printf
      Src: /src/icu/source/samples/date/date.c:224,1
    - Dst: printf
      Src: /src/icu/source/samples/date/date.c:234,1
    - Dst: printf
      Src: /src/icu/source/samples/date/date.c:214,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/date/date.c:219,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/date/date.c:218,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/samples/date/date.c:224,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/date/date.c:231,1
    - Dst: u_init
      Src: /src/icu/source/samples/date/date.c:228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 235
    functionName: version
    functionSourceFile: /src/icu/source/samples/date/date.c
    functionUses: []
    functionsReached:
    - puts
    - fprintf
    - uprint
    - U_FAILURE
    - u_errorName
    - ucal_getDefaultTimeZone
    - ucal_getTZDataVersion
    - u_init
    - uloc_getDefault
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void version() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/icu/source/samples/date/date.c:189,1
    - Dst: puts
      Src: /src/icu/source/samples/date/date.c:190,1
    - Dst: puts
      Src: /src/icu/source/samples/date/date.c:191,1
    - Dst: puts
      Src: /src/icu/source/samples/date/date.c:193,1
    - Dst: puts
      Src: /src/icu/source/samples/date/date.c:192,1
    - Dst: puts
      Src: /src/icu/source/samples/date/date.c:194,1
    - Dst: puts
      Src: /src/icu/source/samples/date/date.c:195,1
    - Dst: puts
      Src: /src/icu/source/samples/date/date.c:196,1
    - Dst: puts
      Src: /src/icu/source/samples/date/date.c:197,1
    - Dst: puts
      Src: /src/icu/source/samples/date/date.c:198,1
    - Dst: puts
      Src: /src/icu/source/samples/date/date.c:201,1
    - Dst: puts
      Src: /src/icu/source/samples/date/date.c:202,1
    - Dst: puts
      Src: /src/icu/source/samples/date/date.c:200,1
    - Dst: puts
      Src: /src/icu/source/samples/date/date.c:199,1
    - Dst: puts
      Src: /src/icu/source/samples/date/date.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 204
    functionName: usage
    functionSourceFile: /src/icu/source/samples/date/date.c
    functionUses: []
    functionsReached:
    - puts
    linkageType: ''
    returnType: void
    signature: 'static void usage() '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/date/date.c:263,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:269,1
    - Dst: printf
      Src: /src/icu/source/samples/date/date.c:270,1
    - Dst: printf
      Src: /src/icu/source/samples/date/date.c:267,1
    - Dst: udat_close
      Src: /src/icu/source/samples/date/date.c:299,1
    - Dst: udat_format
      Src: /src/icu/source/samples/date/date.c:285,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/date/date.c:287,1
    - Dst: uprint
      Src: /src/icu/source/samples/date/date.c:290,1
    - Dst: udat_open
      Src: /src/icu/source/samples/date/date.c:275,1
    - Dst: malloc
      Src: /src/icu/source/samples/date/date.c:283,1
    - Dst: free
      Src: /src/icu/source/samples/date/date.c:300,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:266,1
    - Dst: charsToUCharsDefault
      Src: /src/icu/source/samples/date/date.c:277,1
    - Dst: udat_applyPattern
      Src: /src/icu/source/samples/date/date.c:278,1
    - Dst: udat_format
      Src: /src/icu/source/samples/date/date.c:280,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/date/date.c:296,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/date/date.c:297,1
    - Dst: printf
      Src: /src/icu/source/samples/date/date.c:293,1
    - Dst: fprintf
      Src: /src/icu/source/samples/date/date.c:297,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 6
    argNames:
    - when
    - tz
    - style
    - format
    - locale
    - status
    argTypes:
    - UDate
    - UChar*
    - UDateFormatStyle
    - char*
    - char*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 301
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 301
    functionName: date
    functionSourceFile: /src/icu/source/samples/date/date.c
    functionUses: []
    functionsReached:
    - udat_open
    - malloc
    - fprintf
    - uprint
    - udat_format
    - charsToUCharsDefault
    - U_FAILURE
    - strcmp
    - u_errorName
    - free
    - udat_applyPattern
    - udat_close
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void date(UDate when, const UChar *tz, UDateFormatStyle style,
      const char *format, const char *locale, UErrorCode *status ) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:124,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:114,1
    - Dst: usage
      Src: /src/icu/source/samples/date/date.c:160,1
    - Dst: version
      Src: /src/icu/source/samples/date/date.c:166,1
    - Dst: u_cleanup
      Src: /src/icu/source/samples/date/date.c:181,1
    - Dst: printf
      Src: /src/icu/source/samples/date/date.c:149,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:129,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:111,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:114,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:142,1
    - Dst: getWhen
      Src: /src/icu/source/samples/date/date.c:171,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:87,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:91,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:95,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:99,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:103,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:107,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:111,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:135,1
    - Dst: strncmp
      Src: /src/icu/source/samples/date/date.c:148,1
    - Dst: strlen
      Src: /src/icu/source/samples/date/date.c:148,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:91,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:87,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:95,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:99,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:103,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:107,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:119,1
    - Dst: date
      Src: /src/icu/source/samples/date/date.c:177,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/date/date.c:182,1
    - Dst: ucnv_close
      Src: /src/icu/source/samples/date/date.c:179,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 116
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 183
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 183
    functionName: main
    functionSourceFile: /src/icu/source/samples/date/date.c
    functionUses: []
    functionsReached:
    - usage
    - version
    - getWhen
    - ucnv_close
    - u_cleanup
    - U_FAILURE
    - strcmp
    - date
    - strncmp
    - strlen
    - printf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/icu/source/samples/date/date.c:312,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:324,1
    - Dst: sscanf
      Src: /src/icu/source/samples/date/date.c:315,1
    - Dst: sscanf
      Src: /src/icu/source/samples/date/date.c:322,1
    - Dst: strcmp
      Src: /src/icu/source/samples/date/date.c:321,1
    - Dst: sscanf
      Src: /src/icu/source/samples/date/date.c:325,1
    - Dst: udat_open
      Src: /src/icu/source/samples/date/date.c:330,1
    - Dst: charsToUCharsDefault
      Src: /src/icu/source/samples/date/date.c:332,1
    - Dst: udat_applyPattern
      Src: /src/icu/source/samples/date/date.c:333,1
    - Dst: charsToUCharsDefault
      Src: /src/icu/source/samples/date/date.c:336,1
    - Dst: fprintf
      Src: /src/icu/source/samples/date/date.c:339,1
    - Dst: fprintf
      Src: /src/icu/source/samples/date/date.c:341,1
    - Dst: strlen
      Src: /src/icu/source/samples/date/date.c:340,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/date/date.c:338,1
    - Dst: ucal_getNow
      Src: /src/icu/source/samples/date/date.c:351,1
    - Dst: udat_parse
      Src: /src/icu/source/samples/date/date.c:337,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/date/date.c:339,1
    - Dst: udat_close
      Src: /src/icu/source/samples/date/date.c:348,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 8
    argNames:
    - millis
    - seconds
    - format
    - locale
    - style
    - parse
    - tz
    - status
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - UDateFormatStyle
    - char*
    - UChar*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 353
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 353
    functionName: getWhen
    functionSourceFile: /src/icu/source/samples/date/date.c
    functionUses: []
    functionsReached:
    - udat_open
    - udat_parse
    - charsToUCharsDefault
    - U_FAILURE
    - ucal_getNow
    - strcmp
    - u_errorName
    - udat_applyPattern
    - udat_close
    - strlen
    - fprintf
    - sscanf
    linkageType: ''
    returnType: UDate
    signature: 'static UDate getWhen(const char *millis, const char *seconds, const
      char *format, const char *locale, UDateFormatStyle style, const char *parse,
      const UChar *tz, UErrorCode *status) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/date/date.c:239,1
    - Dst: ucnv_toUChars
      Src: /src/icu/source/samples/date/date.c:244,1
    - Dst: ucnv_open
      Src: /src/icu/source/samples/date/date.c:241,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/samples/date/date.c:243,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 5
    argNames:
    - uchars
    - ucharsSize
    - chars
    - charsSize
    - status
    argTypes:
    - UChar*
    - int32_t
    - char*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 247
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 247
    functionName: charsToUCharsDefault
    functionSourceFile: /src/icu/source/samples/date/date.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - U_SUCCESS
    - ucnv_open
    - ucnv_toUChars
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t charsToUCharsDefault(UChar *uchars, int32_t ucharsSize,
      const char*chars, int32_t charsSize, UErrorCode *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/source/samples/date/date.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: main
    functionSourceFile: /src/icu/source/samples/date/date.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/samples/date/uprint.c:44,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/samples/date/uprint.c:62,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/date/uprint.c:54,1
    - Dst: fwrite
      Src: /src/icu/source/samples/date/uprint.c:67,1
    - Dst: ucnv_open
      Src: /src/icu/source/samples/date/uprint.c:51,1
    - Dst: ucnv_close
      Src: /src/icu/source/samples/date/uprint.c:78,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 3
    argNames:
    - s
    - f
    - status
    argTypes:
    - UChar*
    - FILE*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 79
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 79
    functionName: uprint
    functionSourceFile: /src/icu/source/samples/date/uprint.c
    functionUses: []
    functionsReached:
    - fwrite
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - u_strlen
    - ucnv_fromUnicode
    linkageType: ''
    returnType: void
    signature: "void uprint(const UChar *s,\t FILE *f,\t UErrorCode *status) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - UCharIterator*
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: lenient8IteratorHasPrevious
    functionSourceFile: /src/icu/source/samples/uciter8/uit_len8.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool U_CALLCONV lenient8IteratorHasPrevious(UCharIterator
      *iter) '
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: L8_NEXT
      Src: /src/icu/source/samples/uciter8/uit_len8.c:318,1
    - Dst: L8_PREV
      Src: /src/icu/source/samples/uciter8/uit_len8.c:348,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 141
    argCount: 3
    argNames:
    - iter
    - delta
    - origin
    argTypes:
    - UCharIterator*
    - int32_t
    - UCharIteratorOrigin
    constantsTouched: []
    func_position:
      end: 377
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 377
    functionName: lenient8IteratorMove
    functionSourceFile: /src/icu/source/samples/uciter8/uit_len8.c
    functionUses: []
    functionsReached:
    - L8_NEXT
    - L8_PREV
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t U_CALLCONV lenient8IteratorMove(UCharIterator *iter,
      int32_t delta, UCharIteratorOrigin origin) '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: U16_TRAIL
      Src: /src/icu/source/samples/uciter8/uit_len8.c:416,1
    - Dst: L8_NEXT
      Src: /src/icu/source/samples/uciter8/uit_len8.c:426,1
    - Dst: U16_LEAD
      Src: /src/icu/source/samples/uciter8/uit_len8.c:441,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 1
    argNames:
    - iter
    argTypes:
    - UCharIterator*
    constantsTouched: []
    func_position:
      end: 446
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 446
    functionName: lenient8IteratorNext
    functionSourceFile: /src/icu/source/samples/uciter8/uit_len8.c
    functionUses: []
    functionsReached:
    - L8_NEXT
    - U16_TRAIL
    - U16_LEAD
    linkageType: ''
    returnType: UChar32
    signature: 'static UChar32 U_CALLCONV lenient8IteratorNext(UCharIterator *iter) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - iter
    argTypes:
    - UCharIterator*
    constantsTouched: []
    func_position:
      end: 491
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 491
    functionName: lenient8IteratorGetState
    functionSourceFile: /src/icu/source/samples/uciter8/uit_len8.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'static uint32_t U_CALLCONV lenient8IteratorGetState(const UCharIterator
      *iter) '
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: L8_NEXT
      Src: /src/icu/source/samples/uciter8/uit_len8.c:131,1
    - Dst: L8_NEXT
      Src: /src/icu/source/samples/uciter8/uit_len8.c:167,1
    - Dst: L8_NEXT
      Src: /src/icu/source/samples/uciter8/uit_len8.c:189,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 55
    argCount: 2
    argNames:
    - iter
    - origin
    argTypes:
    - UCharIterator*
    - UCharIteratorOrigin
    constantsTouched: []
    func_position:
      end: 204
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 204
    functionName: lenient8IteratorGetIndex
    functionSourceFile: /src/icu/source/samples/uciter8/uit_len8.c
    functionUses: []
    functionsReached:
    - L8_NEXT
    linkageType: ''
    returnType: int32_t
    signature: 'static int32_t U_CALLCONV lenient8IteratorGetIndex(UCharIterator *iter,
      UCharIteratorOrigin origin) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - iter
    argTypes:
    - UCharIterator*
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 382
    functionName: lenient8IteratorHasNext
    functionSourceFile: /src/icu/source/samples/uciter8/uit_len8.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool U_CALLCONV lenient8IteratorHasNext(UCharIterator *iter) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: U16_TRAIL
      Src: /src/icu/source/samples/uciter8/uit_len8.c:392,1
    - Dst: L8_NEXT
      Src: /src/icu/source/samples/uciter8/uit_len8.c:398,1
    - Dst: U16_LEAD
      Src: /src/icu/source/samples/uciter8/uit_len8.c:404,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - iter
    argTypes:
    - UCharIterator*
    constantsTouched: []
    func_position:
      end: 409
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 409
    functionName: lenient8IteratorCurrent
    functionSourceFile: /src/icu/source/samples/uciter8/uit_len8.c
    functionUses: []
    functionsReached:
    - L8_NEXT
    - U16_TRAIL
    - U16_LEAD
    linkageType: ''
    returnType: UChar32
    signature: 'static UChar32 U_CALLCONV lenient8IteratorCurrent(UCharIterator *iter) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: U16_LEAD
      Src: /src/icu/source/samples/uciter8/uit_len8.c:453,1
    - Dst: L8_PREV
      Src: /src/icu/source/samples/uciter8/uit_len8.c:464,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/samples/uciter8/uit_len8.c:477,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - iter
    argTypes:
    - UCharIterator*
    constantsTouched: []
    func_position:
      end: 482
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 482
    functionName: lenient8IteratorPrevious
    functionSourceFile: /src/icu/source/samples/uciter8/uit_len8.c
    functionUses: []
    functionsReached:
    - U16_TRAIL
    - L8_PREV
    - U16_LEAD
    linkageType: ''
    returnType: UChar32
    signature: 'static UChar32 U_CALLCONV lenient8IteratorPrevious(UCharIterator *iter) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/uciter8/uit_len8.c:495,1
    - Dst: L8_PREV
      Src: /src/icu/source/samples/uciter8/uit_len8.c:519,1
    - Dst: lenient8IteratorGetState
      Src: /src/icu/source/samples/uciter8/uit_len8.c:499,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - iter
    - state
    - pErrorCode
    argTypes:
    - UCharIterator*
    - uint32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 528
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 528
    functionName: lenient8IteratorSetState
    functionSourceFile: /src/icu/source/samples/uciter8/uit_len8.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - lenient8IteratorGetState
    - L8_PREV
    linkageType: ''
    returnType: void
    signature: 'static void U_CALLCONV lenient8IteratorSetState(UCharIterator *iter,
      uint32_t state, UErrorCode *pErrorCode) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/icu/source/samples/uciter8/uit_len8.c:553,1
    - Dst: uiter_setString
      Src: /src/icu/source/samples/uciter8/uit_len8.c:558,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - iter
    - s
    - length
    argTypes:
    - UCharIterator*
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 561
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 561
    functionName: uiter_setLenient8
    functionSourceFile: /src/icu/source/samples/uciter8/uit_len8.c
    functionUses: []
    functionsReached:
    - strlen
    - uiter_setString
    linkageType: ''
    returnType: U_EXPORT2
    signature: 'U_EXPORT2 uiter_setLenient8(UCharIterator *iter, const char *s, int32_t
      length) '
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:61,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:76,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:103,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:93,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:121,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:186,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:204,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:115,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:125,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:143,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:150,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:176,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:84,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:111,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:163,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:180,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:190,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:208,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:169,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:156,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:198,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:70,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:133,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:139,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 137
    argCount: 4
    argNames:
    - iter1
    - n1
    - iter2
    - n2
    argTypes:
    - UCharIterator*
    - char*
    - UCharIterator*
    - char*
    constantsTouched: []
    func_position:
      end: 211
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 211
    functionName: compareIterators
    functionSourceFile: /src/icu/source/samples/uciter8/uciter8.c
    functionUses: []
    functionsReached:
    - log_err
    linkageType: ''
    returnType: void
    signature: 'static void compareIterators(UCharIterator *iter1, const char *n1,
      UCharIterator *iter2, const char *n2) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/uciter8/uciter8.c:250,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:295,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:288,1
    - Dst: uiter_getState
      Src: /src/icu/source/samples/uciter8/uciter8.c:245,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:237,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:257,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:262,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:274,1
    - Dst: uiter_setState
      Src: /src/icu/source/samples/uciter8/uciter8.c:249,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:251,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/uciter8/uciter8.c:251,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:268,1
    - Dst: log_err
      Src: /src/icu/source/samples/uciter8/uciter8.c:285,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 67
    argCount: 4
    argNames:
    - iter1
    - iter2
    - n
    - middle
    argTypes:
    - UCharIterator*
    - UCharIterator*
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 297
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 297
    functionName: testIteratorState
    functionSourceFile: /src/icu/source/samples/uciter8/uciter8.c
    functionUses: []
    functionsReached:
    - uiter_getState
    - U_FAILURE
    - uiter_setState
    - log_err
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'static void testIteratorState(UCharIterator *iter1, UCharIterator
      *iter2, const char *n, int32_t middle) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestLenient8Iterator
      Src: /src/icu/source/samples/uciter8/uciter8.c:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: main
    functionSourceFile: /src/icu/source/samples/uciter8/uciter8.c
    functionUses: []
    functionsReached:
    - TestLenient8Iterator
    linkageType: ''
    returnType: int
    signature: 'extern int main(int argc, const char *argv[]) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/samples/uciter8/uciter8.c:330,1
    - Dst: puts
      Src: /src/icu/source/samples/uciter8/uciter8.c:339,1
    - Dst: testIteratorState
      Src: /src/icu/source/samples/uciter8/uciter8.c:332,1
    - Dst: testIteratorState
      Src: /src/icu/source/samples/uciter8/uciter8.c:333,1
    - Dst: printf
      Src: /src/icu/source/samples/uciter8/uciter8.c:352,1
    - Dst: printf
      Src: /src/icu/source/samples/uciter8/uciter8.c:354,1
    - Dst: puts
      Src: /src/icu/source/samples/uciter8/uciter8.c:318,1
    - Dst: uiter_setString
      Src: /src/icu/source/samples/uciter8/uciter8.c:321,1
    - Dst: compareIterators
      Src: /src/icu/source/samples/uciter8/uciter8.c:323,1
    - Dst: uiter_setLenient8
      Src: /src/icu/source/samples/uciter8/uciter8.c:322,1
    - Dst: uiter_setString
      Src: /src/icu/source/samples/uciter8/uciter8.c:340,1
    - Dst: uiter_setLenient8
      Src: /src/icu/source/samples/uciter8/uciter8.c:326,1
    - Dst: compareIterators
      Src: /src/icu/source/samples/uciter8/uciter8.c:327,1
    - Dst: uiter_setLenient8
      Src: /src/icu/source/samples/uciter8/uciter8.c:331,1
    - Dst: printf
      Src: /src/icu/source/samples/uciter8/uciter8.c:350,1
    - Dst: puts
      Src: /src/icu/source/samples/uciter8/uciter8.c:337,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 357
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 357
    functionName: TestLenient8Iterator
    functionSourceFile: /src/icu/source/samples/uciter8/uciter8.c
    functionUses: []
    functionsReached:
    - uiter_setLenient8
    - puts
    - uiter_setString
    - compareIterators
    - testIteratorState
    - UPRV_LENGTHOF
    - printf
    linkageType: ''
    returnType: void
    signature: 'static void TestLenient8Iterator() '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/icu/source/samples/datecal/ccal.c:27,1
    - Dst: ucal_set
      Src: /src/icu/source/samples/datecal/ccal.c:32,1
    - Dst: ucal_set
      Src: /src/icu/source/samples/datecal/ccal.c:33,1
    - Dst: ucal_add
      Src: /src/icu/source/samples/datecal/ccal.c:52,1
    - Dst: ucal_close
      Src: /src/icu/source/samples/datecal/ccal.c:59,1
    - Dst: puts
      Src: /src/icu/source/samples/datecal/ccal.c:20,1
    - Dst: ucal_set
      Src: /src/icu/source/samples/datecal/ccal.c:34,1
    - Dst: ucal_set
      Src: /src/icu/source/samples/datecal/ccal.c:35,1
    - Dst: ucal_set
      Src: /src/icu/source/samples/datecal/ccal.c:36,1
    - Dst: ucal_set
      Src: /src/icu/source/samples/datecal/ccal.c:37,1
    - Dst: ucal_get
      Src: /src/icu/source/samples/datecal/ccal.c:44,1
    - Dst: ucal_get
      Src: /src/icu/source/samples/datecal/ccal.c:46,1
    - Dst: ucal_get
      Src: /src/icu/source/samples/datecal/ccal.c:43,1
    - Dst: printf
      Src: /src/icu/source/samples/datecal/ccal.c:42,1
    - Dst: puts
      Src: /src/icu/source/samples/datecal/ccal.c:55,1
    - Dst: puts
      Src: /src/icu/source/samples/datecal/ccal.c:21,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/datecal/ccal.c:26,1
    - Dst: ucal_get
      Src: /src/icu/source/samples/datecal/ccal.c:45,1
    - Dst: puts
      Src: /src/icu/source/samples/datecal/ccal.c:48,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/datecal/ccal.c:53,1
    - Dst: ucal_open
      Src: /src/icu/source/samples/datecal/ccal.c:25,1
    - Dst: ucal_set
      Src: /src/icu/source/samples/datecal/ccal.c:31,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/datecal/ccal.c:47,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 60
    functionName: c_main
    functionSourceFile: /src/icu/source/samples/datecal/ccal.c
    functionUses: []
    functionsReached:
    - ucal_set
    - puts
    - U_FAILURE
    - ucal_add
    - ucal_get
    - ucal_open
    - ucal_close
    - printf
    linkageType: ''
    returnType: void
    signature: 'void c_main() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/samples/cal/uprint.c:43,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/cal/uprint.c:53,1
    - Dst: fwrite
      Src: /src/icu/source/samples/cal/uprint.c:66,1
    - Dst: ucnv_open
      Src: /src/icu/source/samples/cal/uprint.c:50,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/samples/cal/uprint.c:61,1
    - Dst: ucnv_close
      Src: /src/icu/source/samples/cal/uprint.c:77,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 3
    argNames:
    - s
    - f
    - status
    argTypes:
    - UChar*
    - FILE*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 78
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 78
    functionName: uprint
    functionSourceFile: /src/icu/source/samples/cal/uprint.c
    functionUses: []
    functionsReached:
    - fwrite
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - u_strlen
    - ucnv_fromUnicode
    linkageType: ''
    returnType: void
    signature: 'void uprint(const UChar *s, FILE *f, UErrorCode *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/source/samples/cal/cal.c:223,1
    - Dst: puts
      Src: /src/icu/source/samples/cal/cal.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: version
    functionSourceFile: /src/icu/source/samples/cal/cal.c
    functionUses: []
    functionsReached:
    - printf
    - puts
    linkageType: ''
    returnType: void
    signature: 'static void version() '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/cal/cal.c:239,1
    - Dst: ucal_set
      Src: /src/icu/source/samples/cal/cal.c:250,1
    - Dst: ucal_open
      Src: /src/icu/source/samples/cal/cal.c:242,1
    - Dst: ucal_getAttribute
      Src: /src/icu/source/samples/cal/cal.c:253,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/samples/cal/cal.c:242,1
    - Dst: print_year
      Src: /src/icu/source/samples/cal/cal.c:256,1
    - Dst: ucal_set
      Src: /src/icu/source/samples/cal/cal.c:264,1
    - Dst: ucal_set
      Src: /src/icu/source/samples/cal/cal.c:266,1
    - Dst: ucal_getAttribute
      Src: /src/icu/source/samples/cal/cal.c:269,1
    - Dst: print_month
      Src: /src/icu/source/samples/cal/cal.c:272,1
    - Dst: ucal_close
      Src: /src/icu/source/samples/cal/cal.c:276,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 4
    argNames:
    - month
    - year
    - useLongNames
    - status
    argTypes:
    - int32_t
    - int32_t
    - UBool
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 277
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 277
    functionName: cal
    functionSourceFile: /src/icu/source/samples/cal/cal.c
    functionUses: []
    functionsReached:
    - ucal_set
    - U_FAILURE
    - ucal_getAttribute
    - print_month
    - ucal_open
    - ucal_close
    - print_year
    - uloc_getDefault
    linkageType: ''
    returnType: void
    signature: 'static void cal(int32_t month, int32_t year, UBool useLongNames, UErrorCode
      *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/icu/source/samples/cal/cal.c:205,1
    - Dst: puts
      Src: /src/icu/source/samples/cal/cal.c:208,1
    - Dst: puts
      Src: /src/icu/source/samples/cal/cal.c:207,1
    - Dst: puts
      Src: /src/icu/source/samples/cal/cal.c:206,1
    - Dst: puts
      Src: /src/icu/source/samples/cal/cal.c:209,1
    - Dst: puts
      Src: /src/icu/source/samples/cal/cal.c:210,1
    - Dst: puts
      Src: /src/icu/source/samples/cal/cal.c:211,1
    - Dst: puts
      Src: /src/icu/source/samples/cal/cal.c:212,1
    - Dst: puts
      Src: /src/icu/source/samples/cal/cal.c:213,1
    - Dst: puts
      Src: /src/icu/source/samples/cal/cal.c:214,1
    - Dst: puts
      Src: /src/icu/source/samples/cal/cal.c:216,1
    - Dst: puts
      Src: /src/icu/source/samples/cal/cal.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 217
    functionName: usage
    functionSourceFile: /src/icu/source/samples/cal/cal.c
    functionUses: []
    functionsReached:
    - puts
    linkageType: ''
    returnType: void
    signature: 'static void usage() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/cal/cal.c:344,1
    - Dst: get_symbols
      Src: /src/icu/source/samples/cal/cal.c:350,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 5
    argNames:
    - fmt
    - days
    - useLongNames
    - fdow
    - status
    argTypes:
    - UDateFormat*
    - UChar*
    - UBool
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 351
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 351
    functionName: get_days
    functionSourceFile: /src/icu/source/samples/cal/cal.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - get_symbols
    linkageType: ''
    returnType: void
    signature: 'static void get_days(const UDateFormat *fmt, UChar *days [], UBool
      useLongNames, int32_t fdow, UErrorCode *status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/cal/cal.c:368,1
    - Dst: get_symbols
      Src: /src/icu/source/samples/cal/cal.c:371,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 4
    argNames:
    - fmt
    - months
    - useLongNames
    - status
    argTypes:
    - UDateFormat*
    - UChar*
    - UBool
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 372
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 372
    functionName: get_months
    functionSourceFile: /src/icu/source/samples/cal/cal.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - get_symbols
    linkageType: ''
    returnType: void
    signature: 'static void get_months(const UDateFormat *fmt, UChar *months [], UBool
      useLongNames, UErrorCode *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_symbols
      Src: /src/icu/source/samples/cal/cal.c:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - months
    argTypes:
    - UChar*
    constantsTouched: []
    func_position:
      end: 377
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 377
    functionName: free_months
    functionSourceFile: /src/icu/source/samples/cal/cal.c
    functionUses: []
    functionsReached:
    - free_symbols
    linkageType: ''
    returnType: void
    signature: 'static void free_months(UChar *months[]) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/cal/cal.c:410,1
    - Dst: uprint
      Src: /src/icu/source/samples/cal/cal.c:414,1
    - Dst: putc
      Src: /src/icu/source/samples/cal/cal.c:415,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 3
    argNames:
    - days
    - f
    - status
    argTypes:
    - UChar*
    - FILE*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 417
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 417
    functionName: print_days
    functionSourceFile: /src/icu/source/samples/cal/cal.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - putc
    - uprint
    linkageType: ''
    returnType: void
    signature: 'static void print_days(UChar *days [], FILE *f, UErrorCode *status) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: version
      Src: /src/icu/source/samples/cal/cal.c:188,1
    - Dst: sscanf
      Src: /src/icu/source/samples/cal/cal.c:176,1
    - Dst: usage
      Src: /src/icu/source/samples/cal/cal.c:182,1
    - Dst: cal
      Src: /src/icu/source/samples/cal/cal.c:193,1
    - Dst: u_cleanup
      Src: /src/icu/source/samples/cal/cal.c:196,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/cal/cal.c:198,1
    - Dst: strcmp
      Src: /src/icu/source/samples/cal/cal.c:127,1
    - Dst: strcmp
      Src: /src/icu/source/samples/cal/cal.c:131,1
    - Dst: strcmp
      Src: /src/icu/source/samples/cal/cal.c:135,1
    - Dst: strcmp
      Src: /src/icu/source/samples/cal/cal.c:139,1
    - Dst: sscanf
      Src: /src/icu/source/samples/cal/cal.c:161,1
    - Dst: strcmp
      Src: /src/icu/source/samples/cal/cal.c:127,1
    - Dst: strcmp
      Src: /src/icu/source/samples/cal/cal.c:131,1
    - Dst: strcmp
      Src: /src/icu/source/samples/cal/cal.c:135,1
    - Dst: strncmp
      Src: /src/icu/source/samples/cal/cal.c:145,1
    - Dst: strlen
      Src: /src/icu/source/samples/cal/cal.c:145,1
    - Dst: printf
      Src: /src/icu/source/samples/cal/cal.c:146,1
    - Dst: sscanf
      Src: /src/icu/source/samples/cal/cal.c:160,1
    - Dst: printf
      Src: /src/icu/source/samples/cal/cal.c:165,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 199
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 199
    functionName: main
    functionSourceFile: /src/icu/source/samples/cal/cal.c
    functionUses: []
    functionsReached:
    - usage
    - version
    - u_cleanup
    - U_FAILURE
    - strcmp
    - strncmp
    - cal
    - strlen
    - printf
    - sscanf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/cal/cal.c:299,1
    - Dst: udat_getSymbols
      Src: /src/icu/source/samples/cal/cal.c:316,1
    - Dst: malloc
      Src: /src/icu/source/samples/cal/cal.c:313,1
    - Dst: udat_getSymbols
      Src: /src/icu/source/samples/cal/cal.c:311,1
    - Dst: udat_countSymbols
      Src: /src/icu/source/samples/cal/cal.c:303,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 7
    argNames:
    - fmt
    - type
    - array
    - arrayLength
    - lowestIndex
    - firstIndex
    - status
    argTypes:
    - UDateFormat*
    - UDateFormatSymbolType
    - UChar*
    - int32_t
    - int32_t
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 318
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 318
    functionName: get_symbols
    functionSourceFile: /src/icu/source/samples/cal/cal.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - udat_countSymbols
    - udat_getSymbols
    - malloc
    linkageType: ''
    returnType: void
    signature: 'static void get_symbols(const UDateFormat *fmt, UDateFormatSymbolType
      type, UChar *array[], int32_t arrayLength, int32_t lowestIndex, int32_t firstIndex,
      UErrorCode *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/icu/source/samples/cal/cal.c:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - array
    - arrayLength
    argTypes:
    - UChar*
    - int32_t
    constantsTouched: []
    func_position:
      end: 329
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 329
    functionName: free_symbols
    functionSourceFile: /src/icu/source/samples/cal/cal.c
    functionUses: []
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: 'static void free_symbols(UChar *array[], int32_t arrayLength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_symbols
      Src: /src/icu/source/samples/cal/cal.c:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - days
    argTypes:
    - UChar*
    constantsTouched: []
    func_position:
      end: 356
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 356
    functionName: free_days
    functionSourceFile: /src/icu/source/samples/cal/cal.c
    functionUses: []
    functionsReached:
    - free_symbols
    linkageType: ''
    returnType: void
    signature: 'static void free_days(UChar *days[]) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/icu/source/samples/cal/cal.c:392,1
    - Dst: fwrite
      Src: /src/icu/source/samples/cal/cal.c:393,1
    - Dst: putc
      Src: /src/icu/source/samples/cal/cal.c:398,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - count
    - f
    argTypes:
    - int32_t
    - FILE*
    constantsTouched: []
    func_position:
      end: 400
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 400
    functionName: indent
    functionSourceFile: /src/icu/source/samples/cal/cal.c
    functionUses: []
    functionsReached:
    - memset
    - putc
    - fwrite
    linkageType: ''
    returnType: void
    signature: 'static void indent(int32_t count, FILE *f) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: udat_open
      Src: /src/icu/source/samples/cal/cal.c:442,1
    - Dst: uprint
      Src: /src/icu/source/samples/cal/cal.c:463,1
    - Dst: indent
      Src: /src/icu/source/samples/cal/cal.c:495,1
    - Dst: ucal_get
      Src: /src/icu/source/samples/cal/cal.c:477,1
    - Dst: ucal_get
      Src: /src/icu/source/samples/cal/cal.c:523,1
    - Dst: putc
      Src: /src/icu/source/samples/cal/cal.c:528,1
    - Dst: free_days
      Src: /src/icu/source/samples/cal/cal.c:531,1
    - Dst: u_strlen
      Src: /src/icu/source/samples/cal/cal.c:456,1
    - Dst: putc
      Src: /src/icu/source/samples/cal/cal.c:464,1
    - Dst: ucal_get
      Src: /src/icu/source/samples/cal/cal.c:498,1
    - Dst: unum_open
      Src: /src/icu/source/samples/cal/cal.c:486,1
    - Dst: putc
      Src: /src/icu/source/samples/cal/cal.c:470,1
    - Dst: ucal_set
      Src: /src/icu/source/samples/cal/cal.c:476,1
    - Dst: print_days
      Src: /src/icu/source/samples/cal/cal.c:469,1
    - Dst: indent
      Src: /src/icu/source/samples/cal/cal.c:506,1
    - Dst: putc
      Src: /src/icu/source/samples/cal/cal.c:518,1
    - Dst: ucal_add
      Src: /src/icu/source/samples/cal/cal.c:522,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/cal/cal.c:436,1
    - Dst: udat_format
      Src: /src/icu/source/samples/cal/cal.c:445,1
    - Dst: u_strlen
      Src: /src/icu/source/samples/cal/cal.c:461,1
    - Dst: indent
      Src: /src/icu/source/samples/cal/cal.c:462,1
    - Dst: unum_format
      Src: /src/icu/source/samples/cal/cal.c:502,1
    - Dst: udat_close
      Src: /src/icu/source/samples/cal/cal.c:533,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/samples/cal/cal.c:445,1
    - Dst: get_days
      Src: /src/icu/source/samples/cal/cal.c:449,1
    - Dst: u_strlen
      Src: /src/icu/source/samples/cal/cal.c:505,1
    - Dst: uprint
      Src: /src/icu/source/samples/cal/cal.c:509,1
    - Dst: putc
      Src: /src/icu/source/samples/cal/cal.c:510,1
    - Dst: unum_close
      Src: /src/icu/source/samples/cal/cal.c:532,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 5
    argNames:
    - c
    - days
    - useLongNames
    - fdow
    - status
    argTypes:
    - UCalendar*
    - UChar*
    - UBool
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 534
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 534
    functionName: print_month
    functionSourceFile: /src/icu/source/samples/cal/cal.c
    functionUses: []
    functionsReached:
    - print_days
    - udat_open
    - ucal_set
    - putc
    - get_days
    - udat_format
    - U_FAILURE
    - indent
    - uprint
    - ucal_add
    - ucal_get
    - unum_close
    - u_strlen
    - unum_open
    - udat_close
    - free_days
    - unum_format
    - ucal_getMillis
    linkageType: ''
    returnType: void
    signature: 'static void print_month(UCalendar *c, UChar *days [], UBool useLongNames,
      int32_t fdow, UErrorCode *status) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/cal/cal.c:557,1
    - Dst: udat_format
      Src: /src/icu/source/samples/cal/cal.c:568,1
    - Dst: u_strlen
      Src: /src/icu/source/samples/cal/cal.c:579,1
    - Dst: ucal_open
      Src: /src/icu/source/samples/cal/cal.c:594,1
    - Dst: uprint
      Src: /src/icu/source/samples/cal/cal.c:606,1
    - Dst: putc
      Src: /src/icu/source/samples/cal/cal.c:617,1
    - Dst: ucal_set
      Src: /src/icu/source/samples/cal/cal.c:620,1
    - Dst: ucal_get
      Src: /src/icu/source/samples/cal/cal.c:626,1
    - Dst: ucal_get
      Src: /src/icu/source/samples/cal/cal.c:646,1
    - Dst: indent
      Src: /src/icu/source/samples/cal/cal.c:669,1
    - Dst: udat_close
      Src: /src/icu/source/samples/cal/cal.c:760,1
    - Dst: ucal_get
      Src: /src/icu/source/samples/cal/cal.c:692,1
    - Dst: unum_format
      Src: /src/icu/source/samples/cal/cal.c:721,1
    - Dst: ucal_get
      Src: /src/icu/source/samples/cal/cal.c:647,1
    - Dst: ucal_get
      Src: /src/icu/source/samples/cal/cal.c:740,1
    - Dst: unum_close
      Src: /src/icu/source/samples/cal/cal.c:761,1
    - Dst: get_days
      Src: /src/icu/source/samples/cal/cal.c:571,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/samples/cal/cal.c:568,1
    - Dst: get_months
      Src: /src/icu/source/samples/cal/cal.c:572,1
    - Dst: u_strlen
      Src: /src/icu/source/samples/cal/cal.c:587,1
    - Dst: indent
      Src: /src/icu/source/samples/cal/cal.c:588,1
    - Dst: uprint
      Src: /src/icu/source/samples/cal/cal.c:589,1
    - Dst: ucal_setMillis
      Src: /src/icu/source/samples/cal/cal.c:595,1
    - Dst: unum_open
      Src: /src/icu/source/samples/cal/cal.c:598,1
    - Dst: indent
      Src: /src/icu/source/samples/cal/cal.c:607,1
    - Dst: u_strlen
      Src: /src/icu/source/samples/cal/cal.c:608,1
    - Dst: indent
      Src: /src/icu/source/samples/cal/cal.c:725,1
    - Dst: u_strlen
      Src: /src/icu/source/samples/cal/cal.c:724,1
    - Dst: uprint
      Src: /src/icu/source/samples/cal/cal.c:728,1
    - Dst: uprint
      Src: /src/icu/source/samples/cal/cal.c:610,1
    - Dst: putc
      Src: /src/icu/source/samples/cal/cal.c:750,1
    - Dst: free_days
      Src: /src/icu/source/samples/cal/cal.c:759,1
    - Dst: free_months
      Src: /src/icu/source/samples/cal/cal.c:758,1
    - Dst: indent
      Src: /src/icu/source/samples/cal/cal.c:615,1
    - Dst: indent
      Src: /src/icu/source/samples/cal/cal.c:659,1
    - Dst: udat_open
      Src: /src/icu/source/samples/cal/cal.c:565,1
    - Dst: putc
      Src: /src/icu/source/samples/cal/cal.c:590,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/samples/cal/cal.c:594,1
    - Dst: u_strlen
      Src: /src/icu/source/samples/cal/cal.c:604,1
    - Dst: indent
      Src: /src/icu/source/samples/cal/cal.c:605,1
    - Dst: indent
      Src: /src/icu/source/samples/cal/cal.c:609,1
    - Dst: ucal_get
      Src: /src/icu/source/samples/cal/cal.c:649,1
    - Dst: u_strlen
      Src: /src/icu/source/samples/cal/cal.c:676,1
    - Dst: uprint
      Src: /src/icu/source/samples/cal/cal.c:680,1
    - Dst: putc
      Src: /src/icu/source/samples/cal/cal.c:681,1
    - Dst: ucal_add
      Src: /src/icu/source/samples/cal/cal.c:688,1
    - Dst: ucal_get
      Src: /src/icu/source/samples/cal/cal.c:689,1
    - Dst: indent
      Src: /src/icu/source/samples/cal/cal.c:717,1
    - Dst: putc
      Src: /src/icu/source/samples/cal/cal.c:729,1
    - Dst: ucal_set
      Src: /src/icu/source/samples/cal/cal.c:622,1
    - Dst: indent
      Src: /src/icu/source/samples/cal/cal.c:709,1
    - Dst: ucal_add
      Src: /src/icu/source/samples/cal/cal.c:736,1
    - Dst: ucal_get
      Src: /src/icu/source/samples/cal/cal.c:737,1
    - Dst: putc
      Src: /src/icu/source/samples/cal/cal.c:754,1
    - Dst: indent
      Src: /src/icu/source/samples/cal/cal.c:705,1
    - Dst: putc
      Src: /src/icu/source/samples/cal/cal.c:591,1
    - Dst: ucal_getMillis
      Src: /src/icu/source/samples/cal/cal.c:595,1
    - Dst: putc
      Src: /src/icu/source/samples/cal/cal.c:611,1
    - Dst: print_days
      Src: /src/icu/source/samples/cal/cal.c:614,1
    - Dst: print_days
      Src: /src/icu/source/samples/cal/cal.c:616,1
    - Dst: ucal_set
      Src: /src/icu/source/samples/cal/cal.c:621,1
    - Dst: ucal_set
      Src: /src/icu/source/samples/cal/cal.c:623,1
    - Dst: ucal_get
      Src: /src/icu/source/samples/cal/cal.c:625,1
    - Dst: ucal_get
      Src: /src/icu/source/samples/cal/cal.c:650,1
    - Dst: unum_format
      Src: /src/icu/source/samples/cal/cal.c:673,1
    - Dst: ucal_close
      Src: /src/icu/source/samples/cal/cal.c:762,1
    - Dst: indent
      Src: /src/icu/source/samples/cal/cal.c:677,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 159
    argCount: 6
    argNames:
    - c
    - days
    - months
    - useLongNames
    - fdow
    - status
    argTypes:
    - UCalendar*
    - UChar*
    - UChar*
    - UBool
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 763
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 763
    functionName: print_year
    functionSourceFile: /src/icu/source/samples/cal/cal.c
    functionUses: []
    functionsReached:
    - ucal_add
    - ucal_get
    - unum_close
    - unum_open
    - udat_close
    - free_days
    - unum_format
    - ucal_getMillis
    - ucal_set
    - udat_open
    - putc
    - udat_format
    - U_FAILURE
    - u_strlen
    - ucal_close
    - ucal_setMillis
    - get_days
    - get_months
    - free_months
    - ucal_open
    - print_days
    - uprint
    - indent
    - uloc_getDefault
    linkageType: ''
    returnType: void
    signature: 'static void print_year(UCalendar *c, UChar *days [], UChar *months
      [], UBool useLongNames, int32_t fdow, UErrorCode *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/icu/source/samples/cal/cal.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: main
    functionSourceFile: /src/icu/source/samples/cal/cal.c
    functionUses: []
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnaccentTransliterator
      Src: /src/icu/source/samples/translit/unaccent.h:22,1
    - Dst: handleTransliterate
      Src: /src/icu/source/samples/translit/unaccent.h:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 60
    functionName: UnaccentTransliterator
    functionSourceFile: /src/icu/source/samples/translit/unaccent.h
    functionUses: []
    functionsReached:
    - handleTransliterate
    - UnaccentTransliterator
    linkageType: ''
    returnType: class
    signature: 'class UnaccentTransliterator : public Transliterator '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getStaticClassID
      Src: /src/icu/source/samples/translit/unaccent.h:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: getDynamicClassID
    functionSourceFile: /src/icu/source/samples/translit/unaccent.h
    functionUses: []
    functionsReached:
    - getStaticClassID
    linkageType: ''
    returnType: virtual
    signature: 'virtual UClassID getDynamicClassID(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnaccentTransliterator
      Src: /src/icu/source/samples/translit/answers/unaccent.h:20,1
    - Dst: handleTransliterate
      Src: /src/icu/source/samples/translit/answers/unaccent.h:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 44
    functionName: UnaccentTransliterator
    functionSourceFile: /src/icu/source/samples/translit/answers/unaccent.h
    functionUses: []
    functionsReached:
    - handleTransliterate
    - UnaccentTransliterator
    linkageType: ''
    returnType: class
    signature: 'class UnaccentTransliterator : public Transliterator '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 117
    functionName: getUnitsPerEM
    functionSourceFile: /src/icu/source/samples/layout/GnomeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: "virtual le_int32 getUnitsPerEM() const; virtual le_int32 getAscent()
      const; virtual le_int32 getDescent() const; virtual le_int32 getLeading() const;
      virtual LEGlyphID mapCharToGlyph(LEUnicode32 ch) const; virtual void getGlyphAdvance(LEGlyphID
      glyph, LEPoint &advance) const; virtual le_bool getGlyphPoint(LEGlyphID glyph,
      le_int32 pointNumber, LEPoint &point) const; float getXPixelsPerEm() const;
      float getYPixelsPerEm() const; float getScaleFactorX() const; float getScaleFactorY()
      const; void rasterizeGlyphs(cairo_t *cairo, const LEGlyphID *glyphs, le_int32
      glyphCount, const float *positions,\t\t\t\t le_int32 x, le_int32 y) const;};inline
      GtkWidget *GnomeSurface::getWidget() const{ return fWidget; }inline void GnomeSurface::setWidget(GtkWidget
      *theWidget) "
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: getDescent
    functionSourceFile: /src/icu/source/samples/layout/GnomeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: le_int32
    signature: 'inline le_int32 GnomeFontInstance:: getDescent() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: getAscent
    functionSourceFile: /src/icu/source/samples/layout/GnomeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: le_int32
    signature: 'inline le_int32 GnomeFontInstance:: getAscent() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: getUnitsPerEM
    functionSourceFile: /src/icu/source/samples/layout/GnomeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: le_int32
    signature: 'inline le_int32 GnomeFontInstance:: getUnitsPerEM() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: getLeading
    functionSourceFile: /src/icu/source/samples/layout/GnomeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: le_int32
    signature: 'inline le_int32 GnomeFontInstance:: getLeading() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: getXPixelsPerEm
    functionSourceFile: /src/icu/source/samples/layout/GnomeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: 'inline float GnomeFontInstance:: getXPixelsPerEm() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: getYPixelsPerEm
    functionSourceFile: /src/icu/source/samples/layout/GnomeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: 'inline float GnomeFontInstance:: getYPixelsPerEm() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: getScaleFactorX
    functionSourceFile: /src/icu/source/samples/layout/GnomeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: 'inline float GnomeFontInstance:: getScaleFactorX() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GnomeSurface
      Src: /src/icu/source/samples/layout/GnomeFontInstance.h:39,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: RenderingSurface
    functionSourceFile: /src/icu/source/samples/layout/GnomeFontInstance.h
    functionUses: []
    functionsReached:
    - GnomeSurface
    linkageType: ''
    returnType: class
    signature: 'class GnomeSurface : public RenderingSurface '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - LEUnicode32
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: mapCharToGlyph
    functionSourceFile: /src/icu/source/samples/layout/GnomeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: LEGlyphID
    signature: 'inline LEGlyphID GnomeFontInstance:: mapCharToGlyph(LEUnicode32 ch)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: getScaleFactorY
    functionSourceFile: /src/icu/source/samples/layout/GnomeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: 'inline float GnomeFontInstance:: getScaleFactorY() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Surface
      Src: /src/icu/source/samples/layout/Surface.h:10,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 16
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 16
    functionName: Surface
    functionSourceFile: /src/icu/source/samples/layout/Surface.h
    functionUses: []
    functionsReached:
    - Surface
    linkageType: ''
    returnType: class
    signature: 'class Surface '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: GnomeFontMap
    functionSourceFile: /src/icu/source/samples/layout/GnomeFontMap.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class GnomeFontMap : public FontMap '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GUISupport
      Src: /src/icu/source/samples/layout/GUISupport.h:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: GUISupport
    functionSourceFile: /src/icu/source/samples/layout/GUISupport.h
    functionUses: []
    functionsReached:
    - GUISupport
    linkageType: ''
    returnType: class
    signature: 'class GUISupport '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: GUISupport
    functionSourceFile: /src/icu/source/samples/layout/GUISupport.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual ~ GUISupport() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnicodeReader
      Src: /src/icu/source/samples/layout/UnicodeReader.h:21,1
    - Dst: UnicodeReader
      Src: /src/icu/source/samples/layout/UnicodeReader.h:26,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: UnicodeReader
    functionSourceFile: /src/icu/source/samples/layout/UnicodeReader.h
    functionUses: []
    functionsReached:
    - UnicodeReader
    linkageType: ''
    returnType: class
    signature: 'class UnicodeReader '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GDIGUISupport
      Src: /src/icu/source/samples/layout/GDIGUISupport.h:27,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: GDIGUISupport
    functionSourceFile: /src/icu/source/samples/layout/GDIGUISupport.h
    functionUses: []
    functionsReached:
    - GDIGUISupport
    linkageType: ''
    returnType: class
    signature: 'class GDIGUISupport : public GUISupport '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: GDIGUISupport
    functionSourceFile: /src/icu/source/samples/layout/GDIGUISupport.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual ~ GDIGUISupport() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GnomeGUISupport
      Src: /src/icu/source/samples/layout/GnomeGUISupport.h:27,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: GnomeGUISupport
    functionSourceFile: /src/icu/source/samples/layout/GnomeGUISupport.h
    functionUses: []
    functionsReached:
    - GnomeGUISupport
    linkageType: ''
    returnType: class
    signature: 'class GnomeGUISupport : public GUISupport '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: GnomeGUISupport
    functionSourceFile: /src/icu/source/samples/layout/GnomeGUISupport.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual ~ GnomeGUISupport() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Paragraph
      Src: /src/icu/source/samples/layout/paragraph.h:43,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 74
    functionName: Paragraph
    functionSourceFile: /src/icu/source/samples/layout/paragraph.h
    functionUses: []
    functionsReached:
    - Paragraph
    linkageType: ''
    returnType: class
    signature: 'class Paragraph '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: getLineHeight
    functionSourceFile: /src/icu/source/samples/layout/paragraph.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: le_int32
    signature: 'inline le_int32 Paragraph:: getLineHeight() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: getLineCount
    functionSourceFile: /src/icu/source/samples/layout/paragraph.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: le_int32
    signature: 'inline le_int32 Paragraph:: getLineCount() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: getAscent
    functionSourceFile: /src/icu/source/samples/layout/paragraph.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: le_int32
    signature: 'inline le_int32 Paragraph:: getAscent() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/icu/source/samples/layout/clayout.c:51,1
    - Dst: SetWindowTextA
      Src: /src/icu/source/samples/layout/clayout.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - hwnd
    - fileName
    argTypes:
    - HWND
    - char*
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: PrettyTitle
    functionSourceFile: /src/icu/source/samples/layout/clayout.c
    functionUses: []
    functionsReached:
    - sprintf
    - SetWindowTextA
    linkageType: ''
    returnType: void
    signature: 'void PrettyTitle(HWND hwnd, char *fileName) '
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: pf_factory
      Src: /src/icu/source/samples/layout/clayout.c:155,1
    - Dst: SetWindowLongPtr
      Src: /src/icu/source/samples/layout/clayout.c:156,1
    - Dst: ReleaseDC
      Src: /src/icu/source/samples/layout/clayout.c:159,1
    - Dst: BeginPaint
      Src: /src/icu/source/samples/layout/clayout.c:240,1
    - Dst: SetBkMode
      Src: /src/icu/source/samples/layout/clayout.c:241,1
    - Dst: min
      Src: /src/icu/source/samples/layout/clayout.c:257,1
    - Dst: pf_draw
      Src: /src/icu/source/samples/layout/clayout.c:259,1
    - Dst: rs_gdiRenderingSurfaceSetHDC
      Src: /src/icu/source/samples/layout/clayout.c:302,1
    - Dst: InvalidateRect
      Src: /src/icu/source/samples/layout/clayout.c:316,1
    - Dst: SendMessage
      Src: /src/icu/source/samples/layout/clayout.c:328,1
    - Dst: rs_gdiRenderingSurfaceClose
      Src: /src/icu/source/samples/layout/clayout.c:354,1
    - Dst: gs_gdiGuiSupportClose
      Src: /src/icu/source/samples/layout/clayout.c:355,1
    - Dst: GetDC
      Src: /src/icu/source/samples/layout/clayout.c:301,1
    - Dst: DefWindowProc
      Src: /src/icu/source/samples/layout/clayout.c:364,1
    - Dst: GetDC
      Src: /src/icu/source/samples/layout/clayout.c:138,1
    - Dst: gs_gdiGuiSupportOpen
      Src: /src/icu/source/samples/layout/clayout.c:139,1
    - Dst: rs_gdiRenderingSurfaceOpen
      Src: /src/icu/source/samples/layout/clayout.c:140,1
    - Dst: GetWindowLongPtr
      Src: /src/icu/source/samples/layout/clayout.c:224,1
    - Dst: pf_getLineHeight
      Src: /src/icu/source/samples/layout/clayout.c:227,1
    - Dst: pf_getLineCount
      Src: /src/icu/source/samples/layout/clayout.c:257,1
    - Dst: LOWORD
      Src: /src/icu/source/samples/layout/clayout.c:267,1
    - Dst: GetOpenFileNameA
      Src: /src/icu/source/samples/layout/clayout.c:298,1
    - Dst: pf_factory
      Src: /src/icu/source/samples/layout/clayout.c:304,1
    - Dst: pf_close
      Src: /src/icu/source/samples/layout/clayout.c:310,1
    - Dst: InitParagraph
      Src: /src/icu/source/samples/layout/clayout.c:314,1
    - Dst: GetWindowLongPtr
      Src: /src/icu/source/samples/layout/clayout.c:307,1
    - Dst: DELETE_ARRAY
      Src: /src/icu/source/samples/layout/clayout.c:350,1
    - Dst: MessageBox
      Src: /src/icu/source/samples/layout/clayout.c:332,1
    - Dst: GetWindowLongPtr
      Src: /src/icu/source/samples/layout/clayout.c:167,1
    - Dst: PrettyTitle
      Src: /src/icu/source/samples/layout/clayout.c:161,1
    - Dst: InitParagraph
      Src: /src/icu/source/samples/layout/clayout.c:171,1
    - Dst: LOWORD
      Src: /src/icu/source/samples/layout/clayout.c:186,1
    - Dst: SetScrollInfo
      Src: /src/icu/source/samples/layout/clayout.c:221,1
    - Dst: HIWORD
      Src: /src/icu/source/samples/layout/clayout.c:169,1
    - Dst: GetScrollInfo
      Src: /src/icu/source/samples/layout/clayout.c:222,1
    - Dst: UpdateWindow
      Src: /src/icu/source/samples/layout/clayout.c:228,1
    - Dst: GetScrollInfo
      Src: /src/icu/source/samples/layout/clayout.c:245,1
    - Dst: EndPaint
      Src: /src/icu/source/samples/layout/clayout.c:262,1
    - Dst: pf_close
      Src: /src/icu/source/samples/layout/clayout.c:347,1
    - Dst: TEXT
      Src: /src/icu/source/samples/layout/clayout.c:334,1
    - Dst: le_scriptCompositeFontOpen
      Src: /src/icu/source/samples/layout/clayout.c:143,1
    - Dst: fm_gdiFontMapOpen
      Src: /src/icu/source/samples/layout/clayout.c:142,1
    - Dst: LE_FAILURE
      Src: /src/icu/source/samples/layout/clayout.c:145,1
    - Dst: ReleaseDC
      Src: /src/icu/source/samples/layout/clayout.c:146,1
    - Dst: NEW_ARRAY
      Src: /src/icu/source/samples/layout/clayout.c:150,1
    - Dst: LOWORD
      Src: /src/icu/source/samples/layout/clayout.c:168,1
    - Dst: GetScrollInfo
      Src: /src/icu/source/samples/layout/clayout.c:182,1
    - Dst: ScrollWindow
      Src: /src/icu/source/samples/layout/clayout.c:227,1
    - Dst: GetWindowLongPtr
      Src: /src/icu/source/samples/layout/clayout.c:249,1
    - Dst: rs_gdiRenderingSurfaceSetHDC
      Src: /src/icu/source/samples/layout/clayout.c:252,1
    - Dst: PrettyTitle
      Src: /src/icu/source/samples/layout/clayout.c:315,1
    - Dst: TEXT
      Src: /src/icu/source/samples/layout/clayout.c:333,1
    - Dst: GetWindowLongPtr
      Src: /src/icu/source/samples/layout/clayout.c:344,1
    - Dst: TEXT
      Src: /src/icu/source/samples/layout/clayout.c:332,1
    - Dst: PostQuitMessage
      Src: /src/icu/source/samples/layout/clayout.c:357,1
    - Dst: le_fontClose
      Src: /src/icu/source/samples/layout/clayout.c:353,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 147
    argCount: 4
    argNames:
    - hwnd
    - message
    - wParam
    - lParam
    argTypes:
    - HWND
    - UINT
    - WPARAM
    - LPARAM
    constantsTouched: []
    func_position:
      end: 368
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 368
    functionName: WndProc
    functionSourceFile: /src/icu/source/samples/layout/clayout.c
    functionUses: []
    functionsReached:
    - pf_draw
    - pf_factory
    - gs_gdiGuiSupportClose
    - HIWORD
    - GetOpenFileNameA
    - rs_gdiRenderingSurfaceOpen
    - fm_gdiFontMapOpen
    - DELETE_ARRAY
    - GetWindowLongPtr
    - le_scriptCompositeFontOpen
    - PrettyTitle
    - TEXT
    - ScrollWindow
    - SetBkMode
    - SetWindowLongPtr
    - MessageBox
    - GetDC
    - GetScrollInfo
    - UpdateWindow
    - pf_getLineCount
    - le_fontClose
    - pf_getLineHeight
    - DefWindowProc
    - NEW_ARRAY
    - InitParagraph
    - rs_gdiRenderingSurfaceClose
    - ReleaseDC
    - PostQuitMessage
    - pf_close
    - InvalidateRect
    - SendMessage
    - EndPaint
    - LOWORD
    - min
    - BeginPaint
    - gs_gdiGuiSupportOpen
    - rs_gdiRenderingSurfaceSetHDC
    - LE_FAILURE
    - SetScrollInfo
    linkageType: ''
    returnType: LRESULT
    signature: 'LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM
      lParam) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pf_breakLines
      Src: /src/icu/source/samples/layout/clayout.c:64,1
    - Dst: pf_getLineHeight
      Src: /src/icu/source/samples/layout/clayout.c:71,1
    - Dst: pf_getLineCount
      Src: /src/icu/source/samples/layout/clayout.c:70,1
    - Dst: SetScrollInfo
      Src: /src/icu/source/samples/layout/clayout.c:72,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - hwnd
    - context
    argTypes:
    - HWND
    - Context*
    constantsTouched: []
    func_position:
      end: 74
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 74
    functionName: InitParagraph
    functionSourceFile: /src/icu/source/samples/layout/clayout.c
    functionUses: []
    functionsReached:
    - pf_breakLines
    - SetScrollInfo
    - pf_getLineCount
    - pf_getLineHeight
    linkageType: ''
    returnType: void
    signature: 'void InitParagraph(HWND hwnd, Context *context) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LoadIcon
      Src: /src/icu/source/samples/layout/clayout.c:89,1
    - Dst: GetStockObject
      Src: /src/icu/source/samples/layout/clayout.c:91,1
    - Dst: RegisterClass
      Src: /src/icu/source/samples/layout/clayout.c:95,1
    - Dst: LoadCursor
      Src: /src/icu/source/samples/layout/clayout.c:90,1
    - Dst: MessageBox
      Src: /src/icu/source/samples/layout/clayout.c:96,1
    - Dst: TEXT
      Src: /src/icu/source/samples/layout/clayout.c:96,1
    - Dst: LoadAccelerators
      Src: /src/icu/source/samples/layout/clayout.c:101,1
    - Dst: CreateWindow
      Src: /src/icu/source/samples/layout/clayout.c:103,1
    - Dst: ShowWindow
      Src: /src/icu/source/samples/layout/clayout.c:109,1
    - Dst: UpdateWindow
      Src: /src/icu/source/samples/layout/clayout.c:110,1
    - Dst: GetMessage
      Src: /src/icu/source/samples/layout/clayout.c:112,1
    - Dst: TranslateMessage
      Src: /src/icu/source/samples/layout/clayout.c:114,1
    - Dst: TranslateAccelerator
      Src: /src/icu/source/samples/layout/clayout.c:113,1
    - Dst: UnregisterClass
      Src: /src/icu/source/samples/layout/clayout.c:119,1
    - Dst: DispatchMessage
      Src: /src/icu/source/samples/layout/clayout.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 4
    argNames:
    - hInstance
    - hPrevInstance
    - szCmdLine
    - iCmdShow
    argTypes:
    - HINSTANCE
    - HINSTANCE
    - PSTR
    - int
    constantsTouched: []
    func_position:
      end: 121
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 121
    functionName: WinMain
    functionSourceFile: /src/icu/source/samples/layout/clayout.c
    functionUses: []
    functionsReached:
    - RegisterClass
    - LoadCursor
    - GetMessage
    - DispatchMessage
    - MessageBox
    - ShowWindow
    - UpdateWindow
    - LoadIcon
    - UnregisterClass
    - GetStockObject
    - TranslateAccelerator
    - LoadAccelerators
    - CreateWindow
    - TranslateMessage
    - TEXT
    linkageType: ''
    returnType: int
    signature: 'int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR
      szCmdLine, int iCmdShow) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: getHDC
    functionSourceFile: /src/icu/source/samples/layout/GDIFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: HDC
    signature: 'HDC getHDC() const; void setHDC(HDC theHDC); private: HDC fHdc; const
      GDIFontInstance *fCurrentFont; };inline HDC GDISurface::getHDC() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: getDescent
    functionSourceFile: /src/icu/source/samples/layout/GDIFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: le_int32
    signature: 'inline le_int32 GDIFontInstance:: getDescent() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: getAscent
    functionSourceFile: /src/icu/source/samples/layout/GDIFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: le_int32
    signature: 'inline le_int32 GDIFontInstance:: getAscent() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: getLeading
    functionSourceFile: /src/icu/source/samples/layout/GDIFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: le_int32
    signature: 'inline le_int32 GDIFontInstance:: getLeading() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 119
    functionName: getFont
    functionSourceFile: /src/icu/source/samples/layout/GDIFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: HFONT
    signature: 'HFONT getFont() const; virtual const void *getFontTable(LETag tableTag)
      const; virtual le_int32 getUnitsPerEM() const; virtual le_int32 getAscent()
      const; virtual le_int32 getDescent() const; virtual le_int32 getLeading() const;
      virtual LEGlyphID mapCharToGlyph(LEUnicode32 ch) const; virtual void getGlyphAdvance(LEGlyphID
      glyph, LEPoint &advance) const; virtual le_bool getGlyphPoint(LEGlyphID glyph,
      le_int32 pointNumber, LEPoint &point) const; float getXPixelsPerEm() const;
      float getYPixelsPerEm() const; float getScaleFactorX() const; float getScaleFactorY()
      const;};inline HFONT GDIFontInstance::getFont() const{ return fFont; }inline
      le_int32 GDIFontInstance::getUnitsPerEM() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: getXPixelsPerEm
    functionSourceFile: /src/icu/source/samples/layout/GDIFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: 'inline float GDIFontInstance:: getXPixelsPerEm() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: getYPixelsPerEm
    functionSourceFile: /src/icu/source/samples/layout/GDIFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: 'inline float GDIFontInstance:: getYPixelsPerEm() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: getScaleFactorX
    functionSourceFile: /src/icu/source/samples/layout/GDIFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: 'inline float GDIFontInstance:: getScaleFactorX() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - LEUnicode32
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: mapCharToGlyph
    functionSourceFile: /src/icu/source/samples/layout/GDIFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: LEGlyphID
    signature: 'inline LEGlyphID GDIFontInstance:: mapCharToGlyph(LEUnicode32 ch)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: getScaleFactorY
    functionSourceFile: /src/icu/source/samples/layout/GDIFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: 'inline float GDIFontInstance:: getScaleFactorY() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gnome_about_new
      Src: /src/icu/source/samples/layout/cgnomelayout.c:54,1
    - Dst: gtk_widget_show
      Src: /src/icu/source/samples/layout/cgnomelayout.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - widget
    - data
    argTypes:
    - GtkWidget*
    - gpointer
    constantsTouched: []
    func_position:
      end: 64
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 64
    functionName: showabout
    functionSourceFile: /src/icu/source/samples/layout/cgnomelayout.c
    functionUses: []
    functionsReached:
    - gtk_widget_show
    - gnome_about_new
    linkageType: ''
    returnType: void
    signature: 'static void showabout(GtkWidget *widget, gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GTK_FILE_SELECTION
      Src: /src/icu/source/samples/layout/cgnomelayout.c:127,1
    - Dst: gtk_object_set_data
      Src: /src/icu/source/samples/layout/cgnomelayout.c:124,1
    - Dst: GTK_FILE_SELECTION
      Src: /src/icu/source/samples/layout/cgnomelayout.c:130,1
    - Dst: GTK_OBJECT
      Src: /src/icu/source/samples/layout/cgnomelayout.c:132,1
    - Dst: GTK_SIGNAL_FUNC
      Src: /src/icu/source/samples/layout/cgnomelayout.c:136,1
    - Dst: GTK_SIGNAL_FUNC
      Src: /src/icu/source/samples/layout/cgnomelayout.c:139,1
    - Dst: GTK_WINDOW
      Src: /src/icu/source/samples/layout/cgnomelayout.c:141,1
    - Dst: gtk_window_set_modal
      Src: /src/icu/source/samples/layout/cgnomelayout.c:141,1
    - Dst: gtk_main
      Src: /src/icu/source/samples/layout/cgnomelayout.c:143,1
    - Dst: GTK_SIGNAL_FUNC
      Src: /src/icu/source/samples/layout/cgnomelayout.c:133,1
    - Dst: gtk_widget_show
      Src: /src/icu/source/samples/layout/cgnomelayout.c:142,1
    - Dst: GTK_OBJECT
      Src: /src/icu/source/samples/layout/cgnomelayout.c:135,1
    - Dst: GTK_OBJECT
      Src: /src/icu/source/samples/layout/cgnomelayout.c:124,1
    - Dst: gtk_signal_connect
      Src: /src/icu/source/samples/layout/cgnomelayout.c:132,1
    - Dst: gtk_signal_connect
      Src: /src/icu/source/samples/layout/cgnomelayout.c:135,1
    - Dst: gtk_signal_connect_object
      Src: /src/icu/source/samples/layout/cgnomelayout.c:138,1
    - Dst: GTK_OBJECT
      Src: /src/icu/source/samples/layout/cgnomelayout.c:139,1
    - Dst: GTK_WIDGET
      Src: /src/icu/source/samples/layout/cgnomelayout.c:116,1
    - Dst: gtk_file_selection_new
      Src: /src/icu/source/samples/layout/cgnomelayout.c:122,1
    - Dst: GTK_OBJECT
      Src: /src/icu/source/samples/layout/cgnomelayout.c:138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - object
    - data
    argTypes:
    - GtkObject*
    - gpointer
    constantsTouched: []
    func_position:
      end: 144
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 144
    functionName: openfile
    functionSourceFile: /src/icu/source/samples/layout/cgnomelayout.c
    functionUses: []
    functionsReached:
    - gtk_widget_show
    - gtk_main
    - gtk_window_set_modal
    - GTK_FILE_SELECTION
    - GTK_SIGNAL_FUNC
    - GTK_WINDOW
    - GTK_OBJECT
    - GTK_WIDGET
    - gtk_file_selection_new
    - gtk_object_set_data
    - gtk_signal_connect
    - gtk_signal_connect_object
    linkageType: ''
    returnType: void
    signature: 'static void openfile(GtkObject *object, gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_basename
      Src: /src/icu/source/samples/layout/cgnomelayout.c:75,1
    - Dst: g_strconcat
      Src: /src/icu/source/samples/layout/cgnomelayout.c:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - gchar*
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: prettyTitle
    functionSourceFile: /src/icu/source/samples/layout/cgnomelayout.c
    functionUses: []
    functionsReached:
    - g_basename
    - g_strconcat
    linkageType: ''
    returnType: gchar*
    signature: 'static gchar *prettyTitle(const gchar *path) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GTK_WIDGET
      Src: /src/icu/source/samples/layout/cgnomelayout.c:155,1
    - Dst: closeSample
      Src: /src/icu/source/samples/layout/cgnomelayout.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - widget
    - data
    argTypes:
    - GtkWidget*
    - gpointer
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: closeapp
    functionSourceFile: /src/icu/source/samples/layout/cgnomelayout.c
    functionUses: []
    functionsReached:
    - GTK_WIDGET
    - closeSample
    linkageType: ''
    returnType: void
    signature: 'static void closeapp(GtkWidget *widget, gpointer data) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pf_breakLines
      Src: /src/icu/source/samples/layout/cgnomelayout.c:207,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 3
    argNames:
    - widget
    - event
    - context
    argTypes:
    - GtkWidget*
    - GdkEventConfigure*
    - Context*
    constantsTouched: []
    func_position:
      end: 212
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 212
    functionName: eventConfigure
    functionSourceFile: /src/icu/source/samples/layout/cgnomelayout.c
    functionUses: []
    functionsReached:
    - pf_breakLines
    linkageType: ''
    returnType: gint
    signature: 'static gint eventConfigure(GtkWidget *widget, GdkEventConfigure *event,
      Context *context) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GTK_OBJECT
      Src: /src/icu/source/samples/layout/cgnomelayout.c:245,1
    - Dst: GTK_WINDOW
      Src: /src/icu/source/samples/layout/cgnomelayout.c:247,1
    - Dst: GTK_OBJECT
      Src: /src/icu/source/samples/layout/cgnomelayout.c:251,1
    - Dst: gtk_drawing_area_new
      Src: /src/icu/source/samples/layout/cgnomelayout.c:254,1
    - Dst: gtk_signal_connect
      Src: /src/icu/source/samples/layout/cgnomelayout.c:267,1
    - Dst: GTK_SIGNAL_FUNC
      Src: /src/icu/source/samples/layout/cgnomelayout.c:269,1
    - Dst: gnome_app_new
      Src: /src/icu/source/samples/layout/cgnomelayout.c:243,1
    - Dst: gtk_window_set_default_size
      Src: /src/icu/source/samples/layout/cgnomelayout.c:247,1
    - Dst: GNOME_APP
      Src: /src/icu/source/samples/layout/cgnomelayout.c:249,1
    - Dst: GTK_OBJECT
      Src: /src/icu/source/samples/layout/cgnomelayout.c:255,1
    - Dst: GTK_SIGNAL_FUNC
      Src: /src/icu/source/samples/layout/cgnomelayout.c:252,1
    - Dst: GTK_OBJECT
      Src: /src/icu/source/samples/layout/cgnomelayout.c:272,1
    - Dst: g_free
      Src: /src/icu/source/samples/layout/cgnomelayout.c:279,1
    - Dst: gtk_object_set_data
      Src: /src/icu/source/samples/layout/cgnomelayout.c:245,1
    - Dst: prettyTitle
      Src: /src/icu/source/samples/layout/cgnomelayout.c:242,1
    - Dst: pf_factory
      Src: /src/icu/source/samples/layout/cgnomelayout.c:240,1
    - Dst: gnome_app_create_menus_with_data
      Src: /src/icu/source/samples/layout/cgnomelayout.c:249,1
    - Dst: gtk_signal_connect
      Src: /src/icu/source/samples/layout/cgnomelayout.c:251,1
    - Dst: gtk_object_set_data
      Src: /src/icu/source/samples/layout/cgnomelayout.c:255,1
    - Dst: gtk_widget_get_style
      Src: /src/icu/source/samples/layout/cgnomelayout.c:257,1
    - Dst: gtk_style_copy
      Src: /src/icu/source/samples/layout/cgnomelayout.c:257,1
    - Dst: gtk_signal_connect
      Src: /src/icu/source/samples/layout/cgnomelayout.c:272,1
    - Dst: GTK_SIGNAL_FUNC
      Src: /src/icu/source/samples/layout/cgnomelayout.c:274,1
    - Dst: g_slist_prepend
      Src: /src/icu/source/samples/layout/cgnomelayout.c:277,1
    - Dst: NEW_ARRAY
      Src: /src/icu/source/samples/layout/cgnomelayout.c:231,1
    - Dst: gtk_widget_set_style
      Src: /src/icu/source/samples/layout/cgnomelayout.c:263,1
    - Dst: gnome_app_set_contents
      Src: /src/icu/source/samples/layout/cgnomelayout.c:265,1
    - Dst: GNOME_APP
      Src: /src/icu/source/samples/layout/cgnomelayout.c:265,1
    - Dst: GTK_OBJECT
      Src: /src/icu/source/samples/layout/cgnomelayout.c:267,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 1
    argNames:
    - fileName
    argTypes:
    - gchar*
    constantsTouched: []
    func_position:
      end: 282
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 282
    functionName: newSample
    functionSourceFile: /src/icu/source/samples/layout/cgnomelayout.c
    functionUses: []
    functionsReached:
    - prettyTitle
    - g_slist_prepend
    - pf_factory
    - GTK_OBJECT
    - gtk_signal_connect
    - gtk_drawing_area_new
    - gnome_app_create_menus_with_data
    - GNOME_APP
    - g_free
    - NEW_ARRAY
    - gtk_object_set_data
    - gtk_style_copy
    - gtk_window_set_default_size
    - gnome_app_set_contents
    - GTK_WINDOW
    - gtk_widget_set_style
    - gnome_app_new
    - GTK_SIGNAL_FUNC
    - gtk_widget_get_style
    linkageType: ''
    returnType: GtkWidget*
    signature: 'GtkWidget *newSample(const gchar *fileName) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GTK_OBJECT
      Src: /src/icu/source/samples/layout/cgnomelayout.c:84,1
    - Dst: GTK_WIDGET
      Src: /src/icu/source/samples/layout/cgnomelayout.c:84,1
    - Dst: gtk_widget_destroy
      Src: /src/icu/source/samples/layout/cgnomelayout.c:89,1
    - Dst: gtk_window_set_title
      Src: /src/icu/source/samples/layout/cgnomelayout.c:102,1
    - Dst: prettyTitle
      Src: /src/icu/source/samples/layout/cgnomelayout.c:94,1
    - Dst: gtk_widget_show_all
      Src: /src/icu/source/samples/layout/cgnomelayout.c:106,1
    - Dst: gtk_object_get_data
      Src: /src/icu/source/samples/layout/cgnomelayout.c:84,1
    - Dst: GTK_OBJECT
      Src: /src/icu/source/samples/layout/cgnomelayout.c:85,1
    - Dst: GTK_WIDGET
      Src: /src/icu/source/samples/layout/cgnomelayout.c:89,1
    - Dst: g_free
      Src: /src/icu/source/samples/layout/cgnomelayout.c:111,1
    - Dst: GTK_FILE_SELECTION
      Src: /src/icu/source/samples/layout/cgnomelayout.c:83,1
    - Dst: gtk_object_get_data
      Src: /src/icu/source/samples/layout/cgnomelayout.c:85,1
    - Dst: g_strdup
      Src: /src/icu/source/samples/layout/cgnomelayout.c:86,1
    - Dst: GTK_WIDGET
      Src: /src/icu/source/samples/layout/cgnomelayout.c:95,1
    - Dst: GTK_OBJECT
      Src: /src/icu/source/samples/layout/cgnomelayout.c:95,1
    - Dst: GTK_WINDOW
      Src: /src/icu/source/samples/layout/cgnomelayout.c:102,1
    - Dst: pf_breakLines
      Src: /src/icu/source/samples/layout/cgnomelayout.c:105,1
    - Dst: gtk_file_selection_get_filename
      Src: /src/icu/source/samples/layout/cgnomelayout.c:86,1
    - Dst: pf_factory
      Src: /src/icu/source/samples/layout/cgnomelayout.c:91,1
    - Dst: pf_close
      Src: /src/icu/source/samples/layout/cgnomelayout.c:98,1
    - Dst: gtk_widget_hide
      Src: /src/icu/source/samples/layout/cgnomelayout.c:104,1
    - Dst: gtk_object_get_data
      Src: /src/icu/source/samples/layout/cgnomelayout.c:95,1
    - Dst: g_free
      Src: /src/icu/source/samples/layout/cgnomelayout.c:108,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - object
    - data
    argTypes:
    - GtkObject*
    - gpointer
    constantsTouched: []
    func_position:
      end: 112
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 112
    functionName: openOK
    functionSourceFile: /src/icu/source/samples/layout/cgnomelayout.c
    functionUses: []
    functionsReached:
    - prettyTitle
    - gtk_widget_destroy
    - pf_factory
    - gtk_widget_show_all
    - pf_close
    - pf_breakLines
    - GTK_FILE_SELECTION
    - gtk_file_selection_get_filename
    - GTK_WINDOW
    - GTK_OBJECT
    - g_strdup
    - g_free
    - GTK_WIDGET
    - gtk_object_get_data
    - gtk_widget_hide
    - gtk_window_set_title
    linkageType: ''
    returnType: void
    signature: 'static void openOK(GtkObject *object, gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newSample
      Src: /src/icu/source/samples/layout/cgnomelayout.c:148,1
    - Dst: gtk_widget_show_all
      Src: /src/icu/source/samples/layout/cgnomelayout.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - object
    - data
    argTypes:
    - GtkObject*
    - gpointer
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: newapp
    functionSourceFile: /src/icu/source/samples/layout/cgnomelayout.c
    functionUses: []
    functionsReached:
    - gtk_widget_show_all
    - newSample
    linkageType: ''
    returnType: void
    signature: 'static void newapp(GtkObject *object, gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtk_main_quit
      Src: /src/icu/source/samples/layout/cgnomelayout.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - object
    - data
    argTypes:
    - GtkObject*
    - gpointer
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: shutdown
    functionSourceFile: /src/icu/source/samples/layout/cgnomelayout.c
    functionUses: []
    functionsReached:
    - gtk_main_quit
    linkageType: ''
    returnType: void
    signature: 'static void shutdown(GtkObject *object, gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closeSample
      Src: /src/icu/source/samples/layout/cgnomelayout.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - widget
    - event
    - data
    argTypes:
    - GtkWidget*
    - GdkEvent*
    - gpointer
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: eventDelete
    functionSourceFile: /src/icu/source/samples/layout/cgnomelayout.c
    functionUses: []
    functionsReached:
    - closeSample
    linkageType: ''
    returnType: gint
    signature: 'static gint eventDelete(GtkWidget *widget, GdkEvent *event, gpointer
      data) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pf_getLineCount
      Src: /src/icu/source/samples/layout/cgnomelayout.c:217,1
    - Dst: pf_getLineHeight
      Src: /src/icu/source/samples/layout/cgnomelayout.c:218,1
    - Dst: rs_gnomeRenderingSurfaceClose
      Src: /src/icu/source/samples/layout/cgnomelayout.c:223,1
    - Dst: pf_draw
      Src: /src/icu/source/samples/layout/cgnomelayout.c:221,1
    - Dst: rs_gnomeRenderingSurfaceOpen
      Src: /src/icu/source/samples/layout/cgnomelayout.c:219,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - widget
    - event
    - context
    argTypes:
    - GtkWidget*
    - GdkEvent*
    - Context*
    constantsTouched: []
    func_position:
      end: 227
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 227
    functionName: eventExpose
    functionSourceFile: /src/icu/source/samples/layout/cgnomelayout.c
    functionUses: []
    functionsReached:
    - pf_draw
    - pf_getLineCount
    - pf_getLineHeight
    - rs_gnomeRenderingSurfaceOpen
    - rs_gnomeRenderingSurfaceClose
    linkageType: ''
    returnType: gint
    signature: 'static gint eventExpose(GtkWidget *widget, GdkEvent *event, Context
      *context) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gtk_object_get_data
      Src: /src/icu/source/samples/layout/cgnomelayout.c:286,1
    - Dst: g_slist_remove
      Src: /src/icu/source/samples/layout/cgnomelayout.c:294,1
    - Dst: DELETE_ARRAY
      Src: /src/icu/source/samples/layout/cgnomelayout.c:292,1
    - Dst: GTK_OBJECT
      Src: /src/icu/source/samples/layout/cgnomelayout.c:286,1
    - Dst: pf_close
      Src: /src/icu/source/samples/layout/cgnomelayout.c:289,1
    - Dst: gtk_widget_destroy
      Src: /src/icu/source/samples/layout/cgnomelayout.c:296,1
    - Dst: gtk_main_quit
      Src: /src/icu/source/samples/layout/cgnomelayout.c:299,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - app
    argTypes:
    - GtkWidget*
    constantsTouched: []
    func_position:
      end: 301
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 301
    functionName: closeSample
    functionSourceFile: /src/icu/source/samples/layout/cgnomelayout.c
    functionUses: []
    functionsReached:
    - gtk_main_quit
    - gtk_widget_destroy
    - pf_close
    - DELETE_ARRAY
    - GTK_OBJECT
    - gtk_object_get_data
    - g_slist_remove
    linkageType: ''
    returnType: void
    signature: 'void closeSample(GtkWidget *app) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FT_Init_FreeType
      Src: /src/icu/source/samples/layout/cgnomelayout.c:312,1
    - Dst: fm_gnomeFontMapOpen
      Src: /src/icu/source/samples/layout/cgnomelayout.c:317,1
    - Dst: gnome_init_with_popt_table
      Src: /src/icu/source/samples/layout/cgnomelayout.c:314,1
    - Dst: le_scriptCompositeFontOpen
      Src: /src/icu/source/samples/layout/cgnomelayout.c:318,1
    - Dst: gs_gnomeGuiSupportOpen
      Src: /src/icu/source/samples/layout/cgnomelayout.c:316,1
    - Dst: LE_FAILURE
      Src: /src/icu/source/samples/layout/cgnomelayout.c:320,1
    - Dst: FT_Done_FreeType
      Src: /src/icu/source/samples/layout/cgnomelayout.c:321,1
    - Dst: poptGetArgs
      Src: /src/icu/source/samples/layout/cgnomelayout.c:325,1
    - Dst: newSample
      Src: /src/icu/source/samples/layout/cgnomelayout.c:332,1
    - Dst: gtk_widget_show_all
      Src: /src/icu/source/samples/layout/cgnomelayout.c:334,1
    - Dst: poptFreeContext
      Src: /src/icu/source/samples/layout/cgnomelayout.c:337,1
    - Dst: gtk_main
      Src: /src/icu/source/samples/layout/cgnomelayout.c:339,1
    - Dst: gs_gnomeGuiSupportClose
      Src: /src/icu/source/samples/layout/cgnomelayout.c:342,1
    - Dst: exit
      Src: /src/icu/source/samples/layout/cgnomelayout.c:346,1
    - Dst: le_fontClose
      Src: /src/icu/source/samples/layout/cgnomelayout.c:341,1
    - Dst: FT_Done_FreeType
      Src: /src/icu/source/samples/layout/cgnomelayout.c:344,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 347
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 347
    functionName: main
    functionSourceFile: /src/icu/source/samples/layout/cgnomelayout.c
    functionUses: []
    functionsReached:
    - gs_gnomeGuiSupportOpen
    - FT_Init_FreeType
    - gtk_main
    - newSample
    - gtk_widget_show_all
    - poptGetArgs
    - exit
    - fm_gnomeFontMapOpen
    - gnome_init_with_popt_table
    - le_fontClose
    - poptFreeContext
    - le_scriptCompositeFontOpen
    - gs_gnomeGuiSupportClose
    - LE_FAILURE
    - FT_Done_FreeType
    linkageType: ''
    returnType: int
    signature: 'int main (int argc, char *argv[]) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gnome_ok_dialog
      Src: /src/icu/source/samples/layout/cgnomelayout.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - object
    - data
    argTypes:
    - GtkObject*
    - gpointer
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: notimpl
    functionSourceFile: /src/icu/source/samples/layout/cgnomelayout.c
    functionUses: []
    functionsReached:
    - gnome_ok_dialog
    linkageType: ''
    returnType: void
    signature: 'static void notimpl(GtkObject *object, gpointer data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LE_DELETE_ARRAY
      Src: /src/icu/source/samples/layout/cmaps.h:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: CMAPMapper
    functionSourceFile: /src/icu/source/samples/layout/cmaps.h
    functionUses: []
    functionsReached:
    - LE_DELETE_ARRAY
    linkageType: ''
    returnType: CMAPMapper
    signature: 'inline CMAPMapper ::~ CMAPMapper() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 41
    functionName: CMAPMapper
    functionSourceFile: /src/icu/source/samples/layout/cmaps.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class CMAPMapper '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMAPFormat4Mapper
      Src: /src/icu/source/samples/layout/cmaps.h:53,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 62
    functionName: CMAPFormat4Mapper
    functionSourceFile: /src/icu/source/samples/layout/cmaps.h
    functionUses: []
    functionsReached:
    - CMAPFormat4Mapper
    linkageType: ''
    returnType: class
    signature: 'class CMAPFormat4Mapper : public CMAPMapper '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fcmap
      Src: /src/icu/source/samples/layout/cmaps.h:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - cmap
    argTypes:
    - CMAPTable*
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: CMAPMapper
    functionSourceFile: /src/icu/source/samples/layout/cmaps.h
    functionUses: []
    functionsReached:
    - fcmap
    linkageType: ''
    returnType: CMAPMapper
    signature: 'inline CMAPMapper :: CMAPMapper(const CMAPTable *cmap) : fcmap(cmap) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMAPGroupMapper
      Src: /src/icu/source/samples/layout/cmaps.h:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: CMAPGroupMapper
    functionSourceFile: /src/icu/source/samples/layout/cmaps.h
    functionUses: []
    functionsReached:
    - CMAPGroupMapper
    linkageType: ''
    returnType: class
    signature: 'class CMAPGroupMapper : public CMAPMapper '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ScriptCompositeFontInstance
      Src: /src/icu/source/samples/layout/ScriptCompositeFontInstance.h:24,1
    - Dst: getStaticClassID
      Src: /src/icu/source/samples/layout/ScriptCompositeFontInstance.h:114,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 131
    functionName: ScriptCompositeFontInstance
    functionSourceFile: /src/icu/source/samples/layout/ScriptCompositeFontInstance.h
    functionUses: []
    functionsReached:
    - getStaticClassID
    - ScriptCompositeFontInstance
    linkageType: ''
    returnType: class
    signature: 'class ScriptCompositeFontInstance : public LEFontInstance '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: getStaticClassID
    functionSourceFile: /src/icu/source/samples/layout/ScriptCompositeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UClassID
    signature: 'static inline UClassID getStaticClassID() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: getUnitsPerEM
    functionSourceFile: /src/icu/source/samples/layout/ScriptCompositeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: le_int32
    signature: 'inline le_int32 ScriptCompositeFontInstance:: getUnitsPerEM() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getStaticClassID
      Src: /src/icu/source/samples/layout/ScriptCompositeFontInstance.h:114,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 114
    functionName: getUnitsPerEM
    functionSourceFile: /src/icu/source/samples/layout/ScriptCompositeFontInstance.h
    functionUses: []
    functionsReached:
    - getStaticClassID
    linkageType: ''
    returnType: virtual
    signature: 'virtual le_int32 getUnitsPerEM() const; virtual le_int32 getAscent()
      const; virtual le_int32 getDescent() const; virtual le_int32 getLeading() const;
      virtual void getGlyphAdvance(LEGlyphID glyph, LEPoint &advance) const; virtual
      le_bool getGlyphPoint(LEGlyphID glyph, le_int32 pointNumber, LEPoint &point)
      const; float getXPixelsPerEm() const; float getYPixelsPerEm() const; float getScaleFactorX()
      const; float getScaleFactorY() const; /** * ICU "poor man''s RTTI", returns
      a UClassID for the actual class. */ virtual inline UClassID getDynamicClassID()
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: getAscent
    functionSourceFile: /src/icu/source/samples/layout/ScriptCompositeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: le_int32
    signature: 'inline le_int32 ScriptCompositeFontInstance:: getAscent() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: getDescent
    functionSourceFile: /src/icu/source/samples/layout/ScriptCompositeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: le_int32
    signature: 'inline le_int32 ScriptCompositeFontInstance:: getDescent() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: getLeading
    functionSourceFile: /src/icu/source/samples/layout/ScriptCompositeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: le_int32
    signature: 'inline le_int32 ScriptCompositeFontInstance:: getLeading() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: getXPixelsPerEm
    functionSourceFile: /src/icu/source/samples/layout/ScriptCompositeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: 'inline float ScriptCompositeFontInstance:: getXPixelsPerEm() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: getYPixelsPerEm
    functionSourceFile: /src/icu/source/samples/layout/ScriptCompositeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: 'inline float ScriptCompositeFontInstance:: getYPixelsPerEm() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: getScaleFactorX
    functionSourceFile: /src/icu/source/samples/layout/ScriptCompositeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: 'inline float ScriptCompositeFontInstance:: getScaleFactorX() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - LETag
    - /*tableTag*/
    argTypes:
    - LETag
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: getFontTable
    functionSourceFile: /src/icu/source/samples/layout/ScriptCompositeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void*
    signature: 'inline const void *ScriptCompositeFontInstance::getFontTable(LETag
      /*tableTag*/) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: getScaleFactorY
    functionSourceFile: /src/icu/source/samples/layout/ScriptCompositeFontInstance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: 'inline float ScriptCompositeFontInstance:: getScaleFactorY() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GDIFontMap
      Src: /src/icu/source/samples/layout/GDIFontMap.h:30,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: GDIFontMap
    functionSourceFile: /src/icu/source/samples/layout/GDIFontMap.h
    functionUses: []
    functionsReached:
    - GDIFontMap
    linkageType: ''
    returnType: class
    signature: 'class GDIFontMap : public FontMap '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RenderingSurface
      Src: /src/icu/source/samples/layout/RenderingSurface.h:28,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: RenderingSurface
    functionSourceFile: /src/icu/source/samples/layout/RenderingSurface.h
    functionUses: []
    functionsReached:
    - RenderingSurface
    linkageType: ''
    returnType: class
    signature: 'class RenderingSurface '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: RenderingSurface
    functionSourceFile: /src/icu/source/samples/layout/RenderingSurface.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual ~ RenderingSurface() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FontTableCache
      Src: /src/icu/source/samples/layout/FontTableCache.h:22,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 39
    functionName: FontTableCache
    functionSourceFile: /src/icu/source/samples/layout/FontTableCache.h
    functionUses: []
    functionsReached:
    - FontTableCache
    linkageType: ''
    returnType: class
    signature: 'class FontTableCache '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pl_getFontRunCount
      Src: /src/icu/source/samples/layout/pflow.c:78,1
    - Dst: pl_getFontRunLimit
      Src: /src/icu/source/samples/layout/pflow.c:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - fontRuns
    - offset
    argTypes:
    - pl_fontRuns*
    - le_int32
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: findFontRun
    functionSourceFile: /src/icu/source/samples/layout/pflow.c
    functionUses: []
    functionsReached:
    - pl_getFontRunLimit
    - pl_getFontRunCount
    linkageType: ''
    returnType: le_int32
    signature: 'static le_int32 findFontRun(const pl_fontRuns *fontRuns, le_int32
      offset) '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pl_getAscent
      Src: /src/icu/source/samples/layout/pflow.c:184,1
    - Dst: pl_getParagraphLevel
      Src: /src/icu/source/samples/layout/pflow.c:181,1
    - Dst: LE_FAILURE
      Src: /src/icu/source/samples/layout/pflow.c:176,1
    - Dst: pl_closeLocaleRuns
      Src: /src/icu/source/samples/layout/pflow.c:218,1
    - Dst: pl_addLocaleRun
      Src: /src/icu/source/samples/layout/pflow.c:171,1
    - Dst: pl_create
      Src: /src/icu/source/samples/layout/pflow.c:174,1
    - Dst: GROW_ARRAY
      Src: /src/icu/source/samples/layout/pflow.c:202,1
    - Dst: pl_resetLocaleRuns
      Src: /src/icu/source/samples/layout/pflow.c:170,1
    - Dst: pl_getDescent
      Src: /src/icu/source/samples/layout/pflow.c:185,1
    - Dst: pl_openEmptyFontRuns
      Src: /src/icu/source/samples/layout/pflow.c:142,1
    - Dst: pl_openEmptyLocaleRuns
      Src: /src/icu/source/samples/layout/pflow.c:145,1
    - Dst: u_strpbrk
      Src: /src/icu/source/samples/layout/pflow.c:158,1
    - Dst: skipLineEnd
      Src: /src/icu/source/samples/layout/pflow.c:212,1
    - Dst: LE_FAILURE
      Src: /src/icu/source/samples/layout/pflow.c:121,1
    - Dst: NEW_ARRAY
      Src: /src/icu/source/samples/layout/pflow.c:148,1
    - Dst: NEW_ARRAY
      Src: /src/icu/source/samples/layout/pflow.c:125,1
    - Dst: NEW_ARRAY
      Src: /src/icu/source/samples/layout/pflow.c:149,1
    - Dst: NEW_ARRAY
      Src: /src/icu/source/samples/layout/pflow.c:151,1
    - Dst: LE_ARRAY_COPY
      Src: /src/icu/source/samples/layout/pflow.c:152,1
    - Dst: subsetFontRuns
      Src: /src/icu/source/samples/layout/pflow.c:167,1
    - Dst: pl_getLeading
      Src: /src/icu/source/samples/layout/pflow.c:186,1
    - Dst: pl_closeFontRuns
      Src: /src/icu/source/samples/layout/pflow.c:219,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 90
    argCount: 4
    argNames:
    - chars
    - charCount
    - fontRuns
    - status
    argTypes:
    - LEUnicode
    - le_int32
    - pl_fontRuns*
    - LEErrorCode*
    constantsTouched: []
    func_position:
      end: 222
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 222
    functionName: pf_create
    functionSourceFile: /src/icu/source/samples/layout/pflow.c
    functionUses: []
    functionsReached:
    - pl_addLocaleRun
    - pl_getLeading
    - pl_openEmptyFontRuns
    - LE_ARRAY_COPY
    - pl_getParagraphLevel
    - pl_create
    - pl_getAscent
    - pl_closeFontRuns
    - pl_resetLocaleRuns
    - pl_getDescent
    - pl_closeLocaleRuns
    - subsetFontRuns
    - skipLineEnd
    - u_strpbrk
    - NEW_ARRAY
    - LE_FAILURE
    - pl_openEmptyLocaleRuns
    - GROW_ARRAY
    linkageType: ''
    returnType: pf_flow*
    signature: 'pf_flow *pf_create(const LEUnicode chars[], le_int32 charCount, const
      pl_fontRuns *fontRuns, LEErrorCode *status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - flow
    argTypes:
    - pf_flow*
    constantsTouched: []
    func_position:
      end: 252
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 252
    functionName: pf_getAscent
    functionSourceFile: /src/icu/source/samples/layout/pflow.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: le_int32
    signature: 'le_int32 pf_getAscent(pf_flow *flow) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - flow
    argTypes:
    - pf_flow*
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: pf_getLineCount
    functionSourceFile: /src/icu/source/samples/layout/pflow.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: le_int32
    signature: 'le_int32 pf_getLineCount(pf_flow *flow) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pl_closeLine
      Src: /src/icu/source/samples/layout/pflow.c:298,1
    - Dst: addLine
      Src: /src/icu/source/samples/layout/pflow.c:312,1
    - Dst: addLine
      Src: /src/icu/source/samples/layout/pflow.c:309,1
    - Dst: pl_reflow
      Src: /src/icu/source/samples/layout/pflow.c:307,1
    - Dst: pl_nextLine
      Src: /src/icu/source/samples/layout/pflow.c:308,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - flow
    - width
    - height
    argTypes:
    - pf_flow*
    - le_int32
    - le_int32
    constantsTouched: []
    func_position:
      end: 315
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 315
    functionName: pf_breakLines
    functionSourceFile: /src/icu/source/samples/layout/pflow.c
    functionUses: []
    functionsReached:
    - pl_reflow
    - pl_nextLine
    - pl_closeLine
    - addLine
    linkageType: ''
    returnType: void
    signature: 'void pf_breakLines(pf_flow *flow, le_int32 width, le_int32 height) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - LEUnicode*
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: skipLineEnd
    functionSourceFile: /src/icu/source/samples/layout/pflow.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: LEUnicode*
    signature: 'static LEUnicode *skipLineEnd(LEUnicode *ptr) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: findFontRun
      Src: /src/icu/source/samples/layout/pflow.c:92,1
    - Dst: findFontRun
      Src: /src/icu/source/samples/layout/pflow.c:93,1
    - Dst: pl_resetFontRuns
      Src: /src/icu/source/samples/layout/pflow.c:96,1
    - Dst: pl_getFontRunFont
      Src: /src/icu/source/samples/layout/pflow.c:99,1
    - Dst: pl_getFontRunLimit
      Src: /src/icu/source/samples/layout/pflow.c:100,1
    - Dst: pl_addFontRun
      Src: /src/icu/source/samples/layout/pflow.c:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - fontRuns
    - start
    - limit
    - sub
    argTypes:
    - pl_fontRuns*
    - le_int32
    - le_int32
    - pl_fontRuns*
    constantsTouched: []
    func_position:
      end: 108
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 108
    functionName: subsetFontRuns
    functionSourceFile: /src/icu/source/samples/layout/pflow.c
    functionUses: []
    functionsReached:
    - pl_resetFontRuns
    - pl_getFontRunFont
    - pl_addFontRun
    - pl_getFontRunLimit
    - findFontRun
    linkageType: ''
    returnType: void
    signature: 'static void subsetFontRuns(const pl_fontRuns *fontRuns, le_int32 start,
      le_int32 limit, pl_fontRuns *sub) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DELETE_ARRAY
      Src: /src/icu/source/samples/layout/pflow.c:230,1
    - Dst: DELETE_ARRAY
      Src: /src/icu/source/samples/layout/pflow.c:239,1
    - Dst: DELETE_ARRAY
      Src: /src/icu/source/samples/layout/pflow.c:233,1
    - Dst: DELETE_ARRAY
      Src: /src/icu/source/samples/layout/pflow.c:241,1
    - Dst: pl_close
      Src: /src/icu/source/samples/layout/pflow.c:236,1
    - Dst: DELETE_ARRAY
      Src: /src/icu/source/samples/layout/pflow.c:243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - flow
    argTypes:
    - pf_flow*
    constantsTouched: []
    func_position:
      end: 244
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 244
    functionName: pf_close
    functionSourceFile: /src/icu/source/samples/layout/pflow.c
    functionUses: []
    functionsReached:
    - DELETE_ARRAY
    - pl_close
    linkageType: ''
    returnType: void
    signature: 'void pf_close(pf_flow *flow) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 1
    argCount: 1
    argNames:
    - flow
    argTypes:
    - pf_flow*
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: pf_getLineHeight
    functionSourceFile: /src/icu/source/samples/layout/pflow.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: le_int32
    signature: 'le_int32 pf_getLineHeight(pf_flow *flow) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GROW_ARRAY
      Src: /src/icu/source/samples/layout/pflow.c:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - obj
    - line
    argTypes:
    - pf_object*
    - pl_line*
    constantsTouched: []
    func_position:
      end: 276
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 276
    functionName: addLine
    functionSourceFile: /src/icu/source/samples/layout/pflow.c
    functionUses: []
    functionsReached:
    - GROW_ARRAY
    linkageType: ''
    returnType: void
    signature: 'static void addLine(pf_object *obj, pl_line *line) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pl_countLineRuns
      Src: /src/icu/source/samples/layout/pflow.c:329,1
    - Dst: pl_getVisualRunFont
      Src: /src/icu/source/samples/layout/pflow.c:342,1
    - Dst: pl_getLineVisualRun
      Src: /src/icu/source/samples/layout/pflow.c:340,1
    - Dst: pl_getVisualRunGlyphCount
      Src: /src/icu/source/samples/layout/pflow.c:341,1
    - Dst: pl_getLineWidth
      Src: /src/icu/source/samples/layout/pflow.c:333,1
    - Dst: pl_getVisualRunGlyphs
      Src: /src/icu/source/samples/layout/pflow.c:343,1
    - Dst: pl_getVisualRunPositions
      Src: /src/icu/source/samples/layout/pflow.c:344,1
    - Dst: rs_drawGlyphs
      Src: /src/icu/source/samples/layout/pflow.c:346,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 4
    argNames:
    - flow
    - surface
    - firstLine
    - lastLine
    argTypes:
    - pf_flow*
    - rs_surface*
    - le_int32
    - le_int32
    constantsTouched: []
    func_position:
      end: 352
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 352
    functionName: pf_draw
    functionSourceFile: /src/icu/source/samples/layout/pflow.c
    functionUses: []
    functionsReached:
    - pl_getLineWidth
    - pl_countLineRuns
    - rs_drawGlyphs
    - pl_getVisualRunPositions
    - pl_getVisualRunGlyphCount
    - pl_getLineVisualRun
    - pl_getVisualRunGlyphs
    - pl_getVisualRunFont
    linkageType: ''
    returnType: void
    signature: 'void pf_draw(pf_flow *flow, rs_surface *surface, le_int32 firstLine,
      le_int32 lastLine) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uc_readFile
      Src: /src/icu/source/samples/layout/pflow.c:358,1
    - Dst: LE_FAILURE
      Src: /src/icu/source/samples/layout/pflow.c:372,1
    - Dst: pl_openEmptyFontRuns
      Src: /src/icu/source/samples/layout/pflow.c:366,1
    - Dst: pl_addFontRun
      Src: /src/icu/source/samples/layout/pflow.c:368,1
    - Dst: pf_create
      Src: /src/icu/source/samples/layout/pflow.c:370,1
    - Dst: pf_close
      Src: /src/icu/source/samples/layout/pflow.c:373,1
    - Dst: pl_closeFontRuns
      Src: /src/icu/source/samples/layout/pflow.c:377,1
    - Dst: DELETE_ARRAY
      Src: /src/icu/source/samples/layout/pflow.c:379,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 3
    argNames:
    - fileName
    - font
    - guiSupport
    argTypes:
    - char*
    - le_font*
    - gs_guiSupport*
    constantsTouched: []
    func_position:
      end: 382
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 382
    functionName: pf_factory
    functionSourceFile: /src/icu/source/samples/layout/pflow.c
    functionUses: []
    functionsReached:
    - pl_openEmptyFontRuns
    - pl_closeFontRuns
    - pl_addFontRun
    - pf_close
    - DELETE_ARRAY
    - uc_readFile
    - LE_FAILURE
    - pf_create
    linkageType: ''
    returnType: pf_flow*
    signature: 'pf_flow *pf_factory(const char *fileName, const le_font *font, gs_guiSupport
      *guiSupport) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 66
    functionName: getPointSize
    functionSourceFile: /src/icu/source/samples/layout/FontMap.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual le_int16 getPointSize() const; virtual le_int32 getAscent()
      const; virtual le_int32 getDescent() const; virtual le_int32 getLeading() const;protected:
      virtual const LEFontInstance *openFont(const char *fontName, le_int16 pointSize,
      LEErrorCode &status) = 0; char errorMessage[256]; private: static char *strip(char
      *s); le_int32 getFontIndex(const char *fontName); void getMaxMetrics(); le_int16
      fPointSize; le_int32 fFontCount; le_int32 fAscent; le_int32 fDescent; le_int32
      fLeading; GUISupport *fGUISupport; const LEFontInstance *fFontInstances[scriptCodeCount];
      const char *fFontNames[scriptCodeCount]; le_int32 fFontIndices[scriptCodeCount];
      };inline le_int16 FontMap::getPointSize() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/samples/layout/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat6Encoding
    signature: 'struct CMAPFormat6Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: CMAPEncodingSubtable32
    functionSourceFile: /src/icu/source/samples/layout/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat8Encoding
    signature: 'struct CMAPFormat8Encoding : CMAPEncodingSubtable32 '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 100
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/samples/layout/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat4Encoding
    signature: 'struct CMAPFormat4Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/samples/layout/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat2Encoding
    signature: 'struct CMAPFormat2Encoding : CMAPEncodingSubtable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: CMAPEncodingSubtable32
    functionSourceFile: /src/icu/source/samples/layout/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat10Encoding
    signature: 'struct CMAPFormat10Encoding : CMAPEncodingSubtable32 '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: CMAPEncodingSubtable32
    functionSourceFile: /src/icu/source/samples/layout/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat12Encoding
    signature: 'struct CMAPFormat12Encoding : CMAPEncodingSubtable32 '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: CMAPEncodingSubtable
    functionSourceFile: /src/icu/source/samples/layout/sfnt.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: struct CMAPFormat0Encoding
    signature: 'struct CMAPFormat0Encoding : CMAPEncodingSubtable '
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/icu/source/samples/ufortune/ufortune.c:99,1
    - Dst: udata_setAppData
      Src: /src/icu/source/samples/ufortune/ufortune.c:123,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/ufortune/ufortune.c:124,1
    - Dst: fprintf
      Src: /src/icu/source/samples/ufortune/ufortune.c:125,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/ufortune/ufortune.c:125,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/ufortune/ufortune.c:133,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/ufortune/ufortune.c:148,1
    - Dst: u_file_write
      Src: /src/icu/source/samples/ufortune/ufortune.c:153,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/ufortune/ufortune.c:154,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/samples/ufortune/ufortune.c:161,1
    - Dst: ures_countArrayItems
      Src: /src/icu/source/samples/ufortune/ufortune.c:185,1
    - Dst: fprintf
      Src: /src/icu/source/samples/ufortune/ufortune.c:198,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/ufortune/ufortune.c:187,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/ufortune/ufortune.c:139,1
    - Dst: exit
      Src: /src/icu/source/samples/ufortune/ufortune.c:126,1
    - Dst: ures_getByKey
      Src: /src/icu/source/samples/ufortune/ufortune.c:174,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/ufortune/ufortune.c:175,1
    - Dst: fprintf
      Src: /src/icu/source/samples/ufortune/ufortune.c:176,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/ufortune/ufortune.c:176,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/ufortune/ufortune.c:186,1
    - Dst: fprintf
      Src: /src/icu/source/samples/ufortune/ufortune.c:149,1
    - Dst: ures_getStringByIndex
      Src: /src/icu/source/samples/ufortune/ufortune.c:196,1
    - Dst: u_file_write
      Src: /src/icu/source/samples/ufortune/ufortune.c:166,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/ufortune/ufortune.c:162,1
    - Dst: strcmp
      Src: /src/icu/source/samples/ufortune/ufortune.c:90,1
    - Dst: u_finit
      Src: /src/icu/source/samples/ufortune/ufortune.c:112,1
    - Dst: strcmp
      Src: /src/icu/source/samples/ufortune/ufortune.c:100,1
    - Dst: strcmp
      Src: /src/icu/source/samples/ufortune/ufortune.c:96,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/ufortune/ufortune.c:114,1
    - Dst: ures_open
      Src: /src/icu/source/samples/ufortune/ufortune.c:132,1
    - Dst: fprintf
      Src: /src/icu/source/samples/ufortune/ufortune.c:134,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/ufortune/ufortune.c:138,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/samples/ufortune/ufortune.c:147,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/ufortune/ufortune.c:134,1
    - Dst: u_file_write
      Src: /src/icu/source/samples/ufortune/ufortune.c:202,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/ufortune/ufortune.c:197,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/ufortune/ufortune.c:150,1
    - Dst: exit
      Src: /src/icu/source/samples/ufortune/ufortune.c:177,1
    - Dst: exit
      Src: /src/icu/source/samples/ufortune/ufortune.c:135,1
    - Dst: exit
      Src: /src/icu/source/samples/ufortune/ufortune.c:151,1
    - Dst: exit
      Src: /src/icu/source/samples/ufortune/ufortune.c:164,1
    - Dst: fprintf
      Src: /src/icu/source/samples/ufortune/ufortune.c:187,1
    - Dst: exit
      Src: /src/icu/source/samples/ufortune/ufortune.c:188,1
    - Dst: fprintf
      Src: /src/icu/source/samples/ufortune/ufortune.c:191,1
    - Dst: exit
      Src: /src/icu/source/samples/ufortune/ufortune.c:199,1
    - Dst: u_fputc
      Src: /src/icu/source/samples/ufortune/ufortune.c:203,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/ufortune/ufortune.c:198,1
    - Dst: fprintf
      Src: /src/icu/source/samples/ufortune/ufortune.c:163,1
    - Dst: exit
      Src: /src/icu/source/samples/ufortune/ufortune.c:192,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/ufortune/ufortune.c:163,1
    - Dst: time
      Src: /src/icu/source/samples/ufortune/ufortune.c:195,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 95
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 206
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 206
    functionName: main
    functionSourceFile: /src/icu/source/samples/ufortune/ufortune.c
    functionUses: []
    functionsReached:
    - ures_getByKey
    - ures_countArrayItems
    - U_FAILURE
    - udata_setAppData
    - strcmp
    - u_errorName
    - exit
    - u_file_write
    - time
    - ures_getStringByIndex
    - u_fputc
    - ures_getStringByKey
    - u_fprintf
    - fprintf
    - ures_open
    - u_finit
    linkageType: ''
    returnType: int
    signature: 'int main(int argc, char **argv) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_first
      Src: /src/icu/source/samples/break/ubreak.c:61,1
    - Dst: printTextRange
      Src: /src/icu/source/samples/break/ubreak.c:63,1
    - Dst: ubrk_next
      Src: /src/icu/source/samples/break/ubreak.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - boundary
    - str
    argTypes:
    - UBreakIterator*
    - UChar*
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: printFirst
    functionSourceFile: /src/icu/source/samples/break/ubreak.c
    functionUses: []
    functionsReached:
    - printTextRange
    - ubrk_first
    - ubrk_next
    linkageType: ''
    returnType: void
    signature: 'void printFirst(UBreakIterator* boundary, UChar* str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_first
      Src: /src/icu/source/samples/break/ubreak.c:40,1
    - Dst: ubrk_next
      Src: /src/icu/source/samples/break/ubreak.c:42,1
    - Dst: ubrk_next
      Src: /src/icu/source/samples/break/ubreak.c:41,1
    - Dst: printTextRange
      Src: /src/icu/source/samples/break/ubreak.c:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - boundary
    - str
    argTypes:
    - UBreakIterator*
    - UChar*
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: printEachForward
    functionSourceFile: /src/icu/source/samples/break/ubreak.c
    functionUses: []
    functionsReached:
    - printTextRange
    - ubrk_first
    - ubrk_next
    linkageType: ''
    returnType: void
    signature: 'void printEachForward( UBreakIterator* boundary, UChar* str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_following
      Src: /src/icu/source/samples/break/ubreak.c:78,1
    - Dst: ubrk_previous
      Src: /src/icu/source/samples/break/ubreak.c:79,1
    - Dst: printTextRange
      Src: /src/icu/source/samples/break/ubreak.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - boundary
    - pos
    - str
    argTypes:
    - UBreakIterator*
    - int32_t
    - UChar*
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: printAt
    functionSourceFile: /src/icu/source/samples/break/ubreak.c
    functionUses: []
    functionsReached:
    - ubrk_following
    - printTextRange
    - ubrk_previous
    linkageType: ''
    returnType: void
    signature: 'void printAt(UBreakIterator* boundary, int32_t pos , UChar* str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_austrncpy
      Src: /src/icu/source/samples/break/ubreak.c:29,1
    - Dst: printf
      Src: /src/icu/source/samples/break/ubreak.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - str
    - start
    - end
    argTypes:
    - UChar*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 33
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 33
    functionName: printTextRange
    functionSourceFile: /src/icu/source/samples/break/ubreak.c
    functionUses: []
    functionsReached:
    - printf
    - u_austrncpy
    linkageType: ''
    returnType: void
    signature: 'void printTextRange(UChar* str, int32_t start, int32_t end) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_last
      Src: /src/icu/source/samples/break/ubreak.c:69,1
    - Dst: printTextRange
      Src: /src/icu/source/samples/break/ubreak.c:71,1
    - Dst: ubrk_previous
      Src: /src/icu/source/samples/break/ubreak.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - boundary
    - str
    argTypes:
    - UBreakIterator*
    - UChar*
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: printLast
    functionSourceFile: /src/icu/source/samples/break/ubreak.c
    functionUses: []
    functionsReached:
    - printTextRange
    - ubrk_last
    - ubrk_previous
    linkageType: ''
    returnType: void
    signature: 'void printLast(UBreakIterator* boundary, UChar* str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_last
      Src: /src/icu/source/samples/break/ubreak.c:51,1
    - Dst: ubrk_previous
      Src: /src/icu/source/samples/break/ubreak.c:53,1
    - Dst: printTextRange
      Src: /src/icu/source/samples/break/ubreak.c:54,1
    - Dst: ubrk_previous
      Src: /src/icu/source/samples/break/ubreak.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - boundary
    - str
    argTypes:
    - UBreakIterator*
    - UChar*
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: printEachBackward
    functionSourceFile: /src/icu/source/samples/break/ubreak.c
    functionUses: []
    functionsReached:
    - printTextRange
    - ubrk_last
    - ubrk_previous
    linkageType: ''
    returnType: void
    signature: 'void printEachBackward( UBreakIterator* boundary, UChar* str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_uastrcpy
      Src: /src/icu/source/samples/break/ubreak.c:96,1
    - Dst: printf
      Src: /src/icu/source/samples/break/ubreak.c:106,1
    - Dst: printEachBackward
      Src: /src/icu/source/samples/break/ubreak.c:109,1
    - Dst: u_strlen
      Src: /src/icu/source/samples/break/ubreak.c:114,1
    - Dst: ubrk_close
      Src: /src/icu/source/samples/break/ubreak.c:110,1
    - Dst: printAt
      Src: /src/icu/source/samples/break/ubreak.c:127,1
    - Dst: printf
      Src: /src/icu/source/samples/break/ubreak.c:131,1
    - Dst: ubrk_open
      Src: /src/icu/source/samples/break/ubreak.c:99,1
    - Dst: exit
      Src: /src/icu/source/samples/break/ubreak.c:103,1
    - Dst: printEachForward
      Src: /src/icu/source/samples/break/ubreak.c:107,1
    - Dst: printf
      Src: /src/icu/source/samples/break/ubreak.c:115,1
    - Dst: printFirst
      Src: /src/icu/source/samples/break/ubreak.c:121,1
    - Dst: printf
      Src: /src/icu/source/samples/break/ubreak.c:123,1
    - Dst: printf
      Src: /src/icu/source/samples/break/ubreak.c:91,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/break/ubreak.c:101,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/break/ubreak.c:102,1
    - Dst: printEachForward
      Src: /src/icu/source/samples/break/ubreak.c:116,1
    - Dst: printf
      Src: /src/icu/source/samples/break/ubreak.c:117,1
    - Dst: ubrk_close
      Src: /src/icu/source/samples/break/ubreak.c:129,1
    - Dst: printf
      Src: /src/icu/source/samples/break/ubreak.c:95,1
    - Dst: printf
      Src: /src/icu/source/samples/break/ubreak.c:102,1
    - Dst: ubrk_open
      Src: /src/icu/source/samples/break/ubreak.c:113,1
    - Dst: printEachBackward
      Src: /src/icu/source/samples/break/ubreak.c:118,1
    - Dst: printf
      Src: /src/icu/source/samples/break/ubreak.c:108,1
    - Dst: printf
      Src: /src/icu/source/samples/break/ubreak.c:120,1
    - Dst: printLast
      Src: /src/icu/source/samples/break/ubreak.c:124,1
    - Dst: printf
      Src: /src/icu/source/samples/break/ubreak.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 133
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 133
    functionName: c_main
    functionSourceFile: /src/icu/source/samples/break/ubreak.c
    functionUses: []
    functionsReached:
    - u_uastrcpy
    - U_FAILURE
    - printFirst
    - u_errorName
    - exit
    - printAt
    - printLast
    - u_strlen
    - ubrk_open
    - printEachBackward
    - printEachForward
    - ubrk_close
    - printf
    linkageType: ''
    returnType: int
    signature: 'int c_main( void ) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_austrcpy
      Src: /src/icu/source/samples/numfmt/capi.c:17,1
    - Dst: printf
      Src: /src/icu/source/samples/numfmt/capi.c:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - UChar*
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: uprintf
    functionSourceFile: /src/icu/source/samples/numfmt/capi.c
    functionUses: []
    functionsReached:
    - printf
    - u_austrcpy
    linkageType: ''
    returnType: void
    signature: 'static void uprintf(const UChar* str) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unum_open
      Src: /src/icu/source/samples/numfmt/capi.c:32,1
    - Dst: printf
      Src: /src/icu/source/samples/numfmt/capi.c:69,1
    - Dst: printf
      Src: /src/icu/source/samples/numfmt/capi.c:76,1
    - Dst: printf
      Src: /src/icu/source/samples/numfmt/capi.c:74,1
    - Dst: exit
      Src: /src/icu/source/samples/numfmt/capi.c:41,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/numfmt/capi.c:39,1
    - Dst: printf
      Src: /src/icu/source/samples/numfmt/capi.c:51,1
    - Dst: uprintf
      Src: /src/icu/source/samples/numfmt/capi.c:75,1
    - Dst: unum_formatDouble
      Src: /src/icu/source/samples/numfmt/capi.c:67,1
    - Dst: unum_close
      Src: /src/icu/source/samples/numfmt/capi.c:79,1
    - Dst: unum_parseDouble
      Src: /src/icu/source/samples/numfmt/capi.c:49,1
    - Dst: uprintf
      Src: /src/icu/source/samples/numfmt/capi.c:57,1
    - Dst: printf
      Src: /src/icu/source/samples/numfmt/capi.c:58,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/numfmt/capi.c:68,1
    - Dst: exit
      Src: /src/icu/source/samples/numfmt/capi.c:70,1
    - Dst: printf
      Src: /src/icu/source/samples/numfmt/capi.c:40,1
    - Dst: u_strlen
      Src: /src/icu/source/samples/numfmt/capi.c:49,1
    - Dst: U_FAILURE
      Src: /src/icu/source/samples/numfmt/capi.c:50,1
    - Dst: exit
      Src: /src/icu/source/samples/numfmt/capi.c:52,1
    - Dst: printf
      Src: /src/icu/source/samples/numfmt/capi.c:56,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 80
    functionName: capi
    functionSourceFile: /src/icu/source/samples/numfmt/capi.c
    functionUses: []
    functionsReached:
    - uprintf
    - U_FAILURE
    - unum_parseDouble
    - exit
    - unum_close
    - u_strlen
    - unum_formatDouble
    - unum_open
    - printf
    linkageType: ''
    returnType: void
    signature: 'void capi() '
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:99,1
    - Dst: getcwd
      Src: /src/icu/source/samples/uresb/uresb.c:92,1
    - Dst: fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:104,1
    - Dst: atoi
      Src: /src/icu/source/samples/uresb/uresb.c:138,1
    - Dst: u_finit
      Src: /src/icu/source/samples/uresb/uresb.c:151,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:160,1
    - Dst: u_fclose
      Src: /src/icu/source/samples/uresb/uresb.c:172,1
    - Dst: printOutBundle
      Src: /src/icu/source/samples/uresb/uresb.c:161,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/samples/uresb/uresb.c:159,1
    - Dst: u_fclose
      Src: /src/icu/source/samples/uresb/uresb.c:171,1
    - Dst: ures_open
      Src: /src/icu/source/samples/uresb/uresb.c:158,1
    - Dst: _getcwd
      Src: /src/icu/source/samples/uresb/uresb.c:90,1
    - Dst: strcpy
      Src: /src/icu/source/samples/uresb/uresb.c:129,1
    - Dst: getLongPathname
      Src: /src/icu/source/samples/uresb/uresb.c:155,1
    - Dst: reportError
      Src: /src/icu/source/samples/uresb/uresb.c:163,1
    - Dst: u_parseArgs
      Src: /src/icu/source/samples/uresb/uresb.c:95,1
    - Dst: u_finit
      Src: /src/icu/source/samples/uresb/uresb.c:150,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:157,1
    - Dst: ures_close
      Src: /src/icu/source/samples/uresb/uresb.c:166,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 69
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 174
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 174
    functionName: main
    functionSourceFile: /src/icu/source/samples/uresb/uresb.c
    functionUses: []
    functionsReached:
    - atoi
    - u_parseArgs
    - ures_close
    - strcpy
    - _getcwd
    - printOutBundle
    - U_SUCCESS
    - getLongPathname
    - u_fclose
    - reportError
    - u_fprintf
    - getcwd
    - fprintf
    - ures_open
    - u_finit
    linkageType: ''
    returnType: int
    signature: 'extern int main(int argc, char* argv[]) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - out
    - what
    argTypes:
    - UFILE*
    - int8_t*
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: printHex
    functionSourceFile: /src/icu/source/samples/uresb/uresb.c
    functionUses: []
    functionsReached:
    - u_fprintf
    linkageType: ''
    returnType: void
    signature: 'void printHex(UFILE *out, const int8_t *what) '
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: quotedString
      Src: /src/icu/source/samples/uresb/uresb.c:235,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:261,1
    - Dst: printIndent
      Src: /src/icu/source/samples/uresb/uresb.c:259,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/samples/uresb/uresb.c:279,1
    - Dst: printIndent
      Src: /src/icu/source/samples/uresb/uresb.c:280,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:284,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/samples/uresb/uresb.c:303,1
    - Dst: printIndent
      Src: /src/icu/source/samples/uresb/uresb.c:304,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:308,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:338,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:343,1
    - Dst: printIndent
      Src: /src/icu/source/samples/uresb/uresb.c:245,1
    - Dst: ures_getString
      Src: /src/icu/source/samples/uresb/uresb.c:234,1
    - Dst: printIndent
      Src: /src/icu/source/samples/uresb/uresb.c:275,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:276,1
    - Dst: printHex
      Src: /src/icu/source/samples/uresb/uresb.c:286,1
    - Dst: ures_getIntVector
      Src: /src/icu/source/samples/uresb/uresb.c:302,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:313,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:315,1
    - Dst: ures_resetIterator
      Src: /src/icu/source/samples/uresb/uresb.c:330,1
    - Dst: printIndent
      Src: /src/icu/source/samples/uresb/uresb.c:331,1
    - Dst: ures_getType
      Src: /src/icu/source/samples/uresb/uresb.c:337,1
    - Dst: printIndent
      Src: /src/icu/source/samples/uresb/uresb.c:350,1
    - Dst: reportError
      Src: /src/icu/source/samples/uresb/uresb.c:322,1
    - Dst: reportError
      Src: /src/icu/source/samples/uresb/uresb.c:295,1
    - Dst: ures_getKey
      Src: /src/icu/source/samples/uresb/uresb.c:228,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:268,1
    - Dst: ures_getBinary
      Src: /src/icu/source/samples/uresb/uresb.c:273,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:282,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:290,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:292,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:306,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:310,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:317,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:319,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:335,1
    - Dst: ures_hasNext
      Src: /src/icu/source/samples/uresb/uresb.c:345,1
    - Dst: printOutBundle
      Src: /src/icu/source/samples/uresb/uresb.c:347,1
    - Dst: ures_getType
      Src: /src/icu/source/samples/uresb/uresb.c:230,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:247,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:249,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:252,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:254,1
    - Dst: free
      Src: /src/icu/source/samples/uresb/uresb.c:255,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:266,1
    - Dst: ures_getInt
      Src: /src/icu/source/samples/uresb/uresb.c:263,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:263,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:288,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:333,1
    - Dst: ures_close
      Src: /src/icu/source/samples/uresb/uresb.c:352,1
    - Dst: ures_getNextResource
      Src: /src/icu/source/samples/uresb/uresb.c:346,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:340,1
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:351,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 101
    argCount: 4
    argNames:
    - out
    - resource
    - indent
    - status
    argTypes:
    - UFILE*
    - UResourceBundle*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 359
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 359
    functionName: printOutBundle
    functionSourceFile: /src/icu/source/samples/uresb/uresb.c
    functionUses: []
    functionsReached:
    - ures_getNextResource
    - ures_resetIterator
    - ures_getKey
    - ures_getInt
    - ures_close
    - ures_hasNext
    - printHex
    - printOutBundle
    - u_fprintf
    - quotedString
    - printIndent
    - free
    - U_SUCCESS
    - reportError
    - ures_getType
    - ures_getIntVector
    - ures_getBinary
    - ures_getString
    linkageType: ''
    returnType: void
    signature: 'void printOutBundle(UFILE *out, UResourceBundle *resource, int32_t
      indent, UErrorCode *status) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/samples/uresb/uresb.c:191,1
    - Dst: malloc
      Src: /src/icu/source/samples/uresb/uresb.c:205,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 18
    argCount: 1
    argNames:
    - string
    argTypes:
    - UChar*
    constantsTouched: []
    func_position:
      end: 224
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 224
    functionName: quotedString
    functionSourceFile: /src/icu/source/samples/uresb/uresb.c
    functionUses: []
    functionsReached:
    - malloc
    - u_strlen
    linkageType: ''
    returnType: UChar*
    signature: 'static UChar *quotedString(const UChar *string) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - out
    - indent
    argTypes:
    - UFILE*
    - int32_t
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 184
    functionName: printIndent
    functionSourceFile: /src/icu/source/samples/uresb/uresb.c
    functionUses: []
    functionsReached:
    - u_fprintf
    linkageType: ''
    returnType: void
    signature: 'void printIndent(UFILE *out, int32_t indent) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_fprintf
      Src: /src/icu/source/samples/uresb/uresb.c:362,1
    - Dst: getErrorName
      Src: /src/icu/source/samples/uresb/uresb.c:362,1
    - Dst: u_errorName
      Src: /src/icu/source/samples/uresb/uresb.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 363
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 363
    functionName: reportError
    functionSourceFile: /src/icu/source/samples/uresb/uresb.c
    functionUses: []
    functionsReached:
    - u_fprintf
    - getErrorName
    - u_errorName
    linkageType: ''
    returnType: void
    signature: 'void reportError(UErrorCode *status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ures_open
      Src: /src/icu/source/samples/uresb/uresb.c:370,1
    - Dst: ures_close
      Src: /src/icu/source/samples/uresb/uresb.c:377,1
    - Dst: ures_getByKey
      Src: /src/icu/source/samples/uresb/uresb.c:372,1
    - Dst: ures_close
      Src: /src/icu/source/samples/uresb/uresb.c:376,1
    - Dst: ures_getStringByIndex
      Src: /src/icu/source/samples/uresb/uresb.c:374,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/samples/uresb/uresb.c:379,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - errorNumber
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 385
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 385
    functionName: getErrorName
    functionSourceFile: /src/icu/source/samples/uresb/uresb.c
    functionUses: []
    functionsReached:
    - ures_getByKey
    - ures_getStringByIndex
    - U_SUCCESS
    - ures_close
    - ures_open
    linkageType: ''
    returnType: UChar*
    signature: 'const UChar *getErrorName(UErrorCode errorNumber) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: typedef
    functionSourceFile: /src/icu/source/common/ucmndata.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_CDECL_END
    signature: 'U_CDECL_END typedef struct '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UTF8
      Src: /src/icu/source/common/ustr_imp.h:113,1
    - Dst: U8_IS_TRAIL
      Src: /src/icu/source/common/ustr_imp.h:129,1
    - Dst: U8_IS_VALID_LEAD3_AND_T1
      Src: /src/icu/source/common/ustr_imp.h:131,1
    - Dst: U8_IS_VALID_LEAD4_AND_T1
      Src: /src/icu/source/common/ustr_imp.h:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 136
    functionName: class
    functionSourceFile: /src/icu/source/common/ustr_imp.h
    functionUses: []
    functionsReached:
    - UTF8
    - U8_IS_VALID_LEAD4_AND_T1
    - U8_IS_TRAIL
    - U8_IS_VALID_LEAD3_AND_T1
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN class UTF8 '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U8_IS_TRAIL
      Src: /src/icu/source/common/ustr_imp.h:129,1
    - Dst: U8_IS_VALID_LEAD4_AND_T1
      Src: /src/icu/source/common/ustr_imp.h:133,1
    - Dst: U8_IS_VALID_LEAD3_AND_T1
      Src: /src/icu/source/common/ustr_imp.h:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - prev
    - t
    - i
    - length
    argTypes:
    - int32_t
    - uint8_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: isValidTrail
    functionSourceFile: /src/icu/source/common/ustr_imp.h
    functionUses: []
    functionsReached:
    - U8_IS_VALID_LEAD4_AND_T1
    - U8_IS_TRAIL
    - U8_IS_VALID_LEAD3_AND_T1
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isValidTrail(int32_t prev, uint8_t t, int32_t
      i, int32_t length) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ResourceArray
      Src: /src/icu/source/common/resource.h:47,1
    - Dst: items32
      Src: /src/icu/source/common/resource.h:47,1
    - Dst: items16
      Src: /src/icu/source/common/resource.h:47,1
    - Dst: length
      Src: /src/icu/source/common/resource.h:47,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: ResourceArray
    functionSourceFile: /src/icu/source/common/resource.h
    functionUses: []
    functionsReached:
    - items32
    - ResourceArray
    - length
    - items16
    linkageType: ''
    returnType: class
    signature: 'class U_COMMON_API ResourceArray '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getAliasString
      Src: /src/icu/source/common/resource.h:153,1
    - Dst: UnicodeString
      Src: /src/icu/source/common/resource.h:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - errorCode
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: getAliasUnicodeString
    functionSourceFile: /src/icu/source/common/resource.h
    functionUses: []
    functionsReached:
    - UnicodeString
    - getAliasString
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString getAliasUnicodeString(UErrorCode &errorCode)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ResourceTable
      Src: /src/icu/source/common/resource.h:82,1
    - Dst: keys16
      Src: /src/icu/source/common/resource.h:82,1
    - Dst: keys32
      Src: /src/icu/source/common/resource.h:82,1
    - Dst: items32
      Src: /src/icu/source/common/resource.h:82,1
    - Dst: items16
      Src: /src/icu/source/common/resource.h:82,1
    - Dst: length
      Src: /src/icu/source/common/resource.h:82,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 94
    functionName: ResourceTable
    functionSourceFile: /src/icu/source/common/resource.h
    functionUses: []
    functionsReached:
    - ResourceTable
    - keys16
    - length
    - items16
    - items32
    - keys32
    linkageType: ''
    returnType: class
    signature: 'class U_COMMON_API ResourceTable '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getString
      Src: /src/icu/source/common/resource.h:142,1
    - Dst: UnicodeString
      Src: /src/icu/source/common/resource.h:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - errorCode
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: getUnicodeString
    functionSourceFile: /src/icu/source/common/resource.h
    functionUses: []
    functionsReached:
    - getString
    - UnicodeString
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString getUnicodeString(UErrorCode &errorCode) const '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SharedObject
      Src: /src/icu/source/common/sharedobject.h:56,1
    - Dst: cachePtr
      Src: /src/icu/source/common/sharedobject.h:59,1
    - Dst: softRefCount
      Src: /src/icu/source/common/sharedobject.h:57,1
    - Dst: hardRefCount
      Src: /src/icu/source/common/sharedobject.h:58,1
    - Dst: getRefCount
      Src: /src/icu/source/common/sharedobject.h:95,1
    - Dst: getRefCount
      Src: /src/icu/source/common/sharedobject.h:101,1
    - Dst: T
      Src: /src/icu/source/common/sharedobject.h:126,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 179
    functionName: handleUnreferencedObject
    functionSourceFile: /src/icu/source/common/sharedobject.h
    functionUses: []
    functionsReached:
    - cachePtr
    - softRefCount
    - getRefCount
    - T
    - hardRefCount
    - SharedObject
    linkageType: ''
    returnType: virtual
    signature: 'virtual void handleUnreferencedObject() const = 0; virtual ~UnifiedCacheBase();
      private: UnifiedCacheBase(const UnifiedCacheBase &); UnifiedCacheBase &operator=(const
      UnifiedCacheBase &);};/** * Base class for shared, reference-counted, auto-deleted
      objects. * Subclasses can be immutable. * If they are mutable, then they must
      implement their copy constructor * so that copyOnWrite() works. * * Either stack-allocate,
      use LocalPointer, or use addRef()/removeRef(). * Sharing requires reference-counting.
      */class U_COMMON_API SharedObject : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getRefCount
      Src: /src/icu/source/common/sharedobject.h:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: removeRef
    functionSourceFile: /src/icu/source/common/sharedobject.h
    functionUses: []
    functionsReached:
    - getRefCount
    linkageType: ''
    returnType: void
    signature: 'void removeRef() const; /** * Returns the number of hard references
      for this object. * Uses a memory barrier. */ int32_t getRefCount() const; /**
      * If noHardReferences() == TRUE then this object has no hard references. * Must
      be called only from within the internals of UnifiedCache. */ inline UBool noHardReferences()
      const '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - T*
    - T*
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: copyPtr
    functionSourceFile: /src/icu/source/common/sharedobject.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void copyPtr(const T *src, const T *&dest) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getRefCount
      Src: /src/icu/source/common/sharedobject.h:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: hasHardReferences
    functionSourceFile: /src/icu/source/common/sharedobject.h
    functionUses: []
    functionsReached:
    - getRefCount
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool hasHardReferences() const '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: clearPtr
    functionSourceFile: /src/icu/source/common/sharedobject.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void clearPtr(const T *&ptr) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/icu/source/common/sharedobject.h:126,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    constantsTouched: []
    func_position:
      end: 132
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 132
    functionName: copyOnWrite
    functionSourceFile: /src/icu/source/common/sharedobject.h
    functionUses: []
    functionsReached:
    - T
    linkageType: ''
    returnType: T*
    signature: 'T *copyOnWrite(const T *&ptr) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 617
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 617
    functionName: BackwardUTrie2StringIterator
    functionSourceFile: /src/icu/source/common/utrie2.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class BackwardUTrie2StringIterator : public UTrie2StringIterator '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 629
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 629
    functionName: ForwardUTrie2StringIterator
    functionSourceFile: /src/icu/source/common/utrie2.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class ForwardUTrie2StringIterator : public UTrie2StringIterator '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: isEmpty
    functionSourceFile: /src/icu/source/common/uvectr64.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool isEmpty(void) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expandCapacity
      Src: /src/icu/source/common/uvectr64.h:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - minimumCapacity
    - status
    argTypes:
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: ensureCapacity
    functionSourceFile: /src/icu/source/common/uvectr64.h
    functionUses: []
    functionsReached:
    - expandCapacity
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UVector64:: ensureCapacity(int32_t minimumCapacity, UErrorCode
      &status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: elementAti
    functionSourceFile: /src/icu/source/common/uvectr64.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'inline int64_t UVector64:: elementAti(int32_t index) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensureCapacity
      Src: /src/icu/source/common/uvectr64.h:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - size
    - status
    argTypes:
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 230
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 230
    functionName: reserveBlock
    functionSourceFile: /src/icu/source/common/uvectr64.h
    functionUses: []
    functionsReached:
    - ensureCapacity
    linkageType: ''
    returnType: int64_t*
    signature: 'inline int64_t *UVector64::reserveBlock(int32_t size, UErrorCode &status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: size
    functionSourceFile: /src/icu/source/common/uvectr64.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UVector64:: size(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: other
    functionSourceFile: /src/icu/source/common/uvectr64.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UVector64::operator!=(const UVector64& other ) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addElement
      Src: /src/icu/source/common/uvectr64.h:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - i
    - status
    argTypes:
    - int64_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: push
    functionSourceFile: /src/icu/source/common/uvectr64.h
    functionUses: []
    functionsReached:
    - addElement
    linkageType: ''
    returnType: int64_t
    signature: 'inline int64_t UVector64:: push(int64_t i, UErrorCode &status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UVector64
      Src: /src/icu/source/common/uvectr64.h:70,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 198
    functionName: UVector64
    functionSourceFile: /src/icu/source/common/uvectr64.h
    functionUses: []
    functionsReached:
    - UVector64
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API UVector64 : public UObject '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensureCapacity
      Src: /src/icu/source/common/uvectr64.h:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - elem
    - status
    argTypes:
    - int64_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: addElement
    functionSourceFile: /src/icu/source/common/uvectr64.h
    functionUses: []
    functionsReached:
    - ensureCapacity
    linkageType: ''
    returnType: void
    signature: 'inline void UVector64:: addElement(int64_t elem, UErrorCode &status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_ASSERT
      Src: /src/icu/source/common/uvectr64.h:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - size
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 239
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 239
    functionName: popFrame
    functionSourceFile: /src/icu/source/common/uvectr64.h
    functionUses: []
    functionsReached:
    - U_ASSERT
    linkageType: ''
    returnType: int64_t*
    signature: 'inline int64_t *UVector64::popFrame(int32_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elementAti
      Src: /src/icu/source/common/uvectr64.h:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: lastElementi
    functionSourceFile: /src/icu/source/common/uvectr64.h
    functionUses: []
    functionsReached:
    - elementAti
    linkageType: ''
    returnType: int64_t
    signature: 'inline int64_t UVector64:: lastElementi(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: getBuffer
    functionSourceFile: /src/icu/source/common/uvectr64.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t*
    signature: 'inline int64_t *UVector64::getBuffer() const '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 274
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 274
    functionName: popi
    functionSourceFile: /src/icu/source/common/uvectr64.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: 'inline int64_t UVector64:: popi(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Hangul
      Src: /src/icu/source/common/normalizer2impl.h:133,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 134
    functionName: U_COMMON_API
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - Hangul
    linkageType: ''
    returnType: class
    signature: 'class U_COMMON_API Hangul '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: isJamoL
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isJamoL(UChar32 c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: isEmpty
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isEmpty() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: getStart
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UChar*
    signature: 'UChar *getStart() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - newLimit
    argTypes:
    - UChar*
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: setReorderingLimit
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setReorderingLimit(UChar *newLimit) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: norm16HasCompBoundaryBefore
      Src: /src/icu/source/common/normalizer2impl.h:528,1
    - Dst: getNorm16
      Src: /src/icu/source/common/normalizer2impl.h:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: hasCompBoundaryBefore
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - getNorm16
    - norm16HasCompBoundaryBefore
    linkageType: ''
    returnType: UBool
    signature: 'UBool hasCompBoundaryBefore(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 551
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 551
    functionName: isJamoVT
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool isJamoVT(uint16_t norm16) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 553
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 553
    functionName: isHangulLV
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isHangulLV(uint16_t norm16) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: isJamoV
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isJamoV(UChar32 c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: getLimit
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UChar*
    signature: 'UChar *getLimit() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConstChar16Ptr
      Src: /src/icu/source/common/normalizer2impl.h:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: copyReorderableSuffixTo
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - ConstChar16Ptr
    linkageType: ''
    returnType: void
    signature: 'void copyReorderableSuffixTo(UnicodeString &s) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: norm16HasCompBoundaryAfter
      Src: /src/icu/source/common/normalizer2impl.h:531,1
    - Dst: getNorm16
      Src: /src/icu/source/common/normalizer2impl.h:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - c
    - onlyContiguous
    argTypes:
    - UChar32
    - UBool
    constantsTouched: []
    func_position:
      end: 532
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 532
    functionName: hasCompBoundaryAfter
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - getNorm16
    - norm16HasCompBoundaryAfter
    linkageType: ''
    returnType: UBool
    signature: 'UBool hasCompBoundaryAfter(UChar32 c, UBool onlyContiguous) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hangulLVT
      Src: /src/icu/source/common/normalizer2impl.h:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 556
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 556
    functionName: isHangulLVT
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - hangulLVT
    linkageType: ''
    returnType: UBool
    signature: 'UBool isHangulLVT(uint16_t norm16) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - lead
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 367
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 367
    functionName: singleLeadMightHaveNonZeroFCD16
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool singleLeadMightHaveNonZeroFCD16(UChar32 lead) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: isJamoT
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isJamoT(UChar32 c) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - c
    - buffer
    argTypes:
    - UChar32
    - UChar
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: getRawDecomposition
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static inline void getRawDecomposition(UChar32 c, UChar buffer[2]) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: singleLeadMightHaveNonZeroFCD16
      Src: /src/icu/source/common/normalizer2impl.h:326,1
    - Dst: U16_GET_SUPPLEMENTARY
      Src: /src/icu/source/common/normalizer2impl.h:331,1
    - Dst: U16_IS_LEAD
      Src: /src/icu/source/common/normalizer2impl.h:330,1
    - Dst: U16_IS_TRAIL
      Src: /src/icu/source/common/normalizer2impl.h:330,1
    - Dst: getFCD16FromNormData
      Src: /src/icu/source/common/normalizer2impl.h:334,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - s
    - limit
    argTypes:
    - UChar*
    - UChar*
    constantsTouched: []
    func_position:
      end: 335
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 335
    functionName: nextFCD16
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - getFCD16FromNormData
    - U16_IS_LEAD
    - singleLeadMightHaveNonZeroFCD16
    - U16_GET_SUPPLEMENTARY
    - U16_IS_TRAIL
    linkageType: ''
    returnType: uint16_t
    signature: 'uint16_t nextFCD16(const UChar *&s, const UChar *limit) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 547
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 547
    functionName: isMaybe
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isMaybe(uint16_t norm16) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 579
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 579
    functionName: isMostDecompYesAndZeroCC
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isMostDecompYesAndZeroCC(uint16_t norm16) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - c
    - norm16
    argTypes:
    - UChar32
    - uint16_t
    constantsTouched: []
    func_position:
      end: 610
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 610
    functionName: mapAlgorithmic
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UChar32
    signature: 'UChar32 mapAlgorithmic(UChar32 c, uint16_t norm16) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 616
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 616
    functionName: getMapping
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint16_t*
    signature: 'const uint16_t *getMapping(uint16_t norm16) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isDecompYes
      Src: /src/icu/source/common/normalizer2impl.h:642,1
    - Dst: getCompositionsListForDecompYes
      Src: /src/icu/source/common/normalizer2impl.h:643,1
    - Dst: getCompositionsListForComposite
      Src: /src/icu/source/common/normalizer2impl.h:644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 645
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 645
    functionName: getCompositionsList
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - isDecompYes
    - getCompositionsListForDecompYes
    - getCompositionsListForComposite
    linkageType: ''
    returnType: uint16_t*
    signature: 'const uint16_t *getCompositionsList(uint16_t norm16) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: isHangul
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isHangul(UChar32 c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: isJamo
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool isJamo(UChar32 c) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/icu/source/common/normalizer2impl.h:172,1
    - Dst: insert
      Src: /src/icu/source/common/normalizer2impl.h:182,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - c
    - cc
    - errorCode
    argTypes:
    - UChar
    - uint8_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 186
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 186
    functionName: appendBMP
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - insert
    - resize
    linkageType: ''
    returnType: UBool
    signature: 'UBool appendBMP(UChar c, uint8_t cc, UErrorCode &errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isDecompYesAndZeroCC
      Src: /src/icu/source/common/normalizer2impl.h:525,1
    - Dst: getNorm16
      Src: /src/icu/source/common/normalizer2impl.h:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 525
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 525
    functionName: isDecompInert
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - isDecompYesAndZeroCC
    - getNorm16
    linkageType: ''
    returnType: UBool
    signature: 'UBool isDecompInert(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 548
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 548
    functionName: isMaybeOrNonZeroCC
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isMaybeOrNonZeroCC(uint16_t norm16) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 580
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 580
    functionName: isDecompNoAlgorithmic
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isDecompNoAlgorithmic(uint16_t norm16) const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getMapping
      Src: /src/icu/source/common/normalizer2impl.h:621,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 625
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 625
    functionName: getCompositionsListForDecompYes
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - getMapping
    linkageType: ''
    returnType: uint16_t*
    signature: 'const uint16_t *getCompositionsListForDecompYes(uint16_t norm16) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - c
    - buffer
    argTypes:
    - UChar32
    - UChar
    constantsTouched: []
    func_position:
      end: 113
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 113
    functionName: decompose
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t decompose(UChar32 c, UChar buffer[3]) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: norm16HasCompBoundaryBefore
      Src: /src/icu/source/common/normalizer2impl.h:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - c
    - norm16
    argTypes:
    - UChar32
    - uint16_t
    constantsTouched: []
    func_position:
      end: 668
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 668
    functionName: hasCompBoundaryBefore
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - norm16HasCompBoundaryBefore
    linkageType: ''
    returnType: UBool
    signature: 'UBool hasCompBoundaryBefore(UChar32 c, uint16_t norm16) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: getLastCC
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t getLastCC() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 232
    functionName: setIterator
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setIterator() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UCPTRIE_FAST_GET
      Src: /src/icu/source/common/normalizer2impl.h:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: getRawNorm16
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - UCPTRIE_FAST_GET
    linkageType: ''
    returnType: uint16_t
    signature: 'uint16_t getRawNorm16(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 279
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 279
    functionName: isAlgorithmicNoNo
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isAlgorithmicNoNo(uint16_t norm16) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: isDecompYes
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isDecompYes(uint16_t norm16) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: getCCFromNormalYesOrMaybe
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: 'static uint8_t getCCFromNormalYesOrMaybe(uint16_t norm16) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getCCFromYesOrMaybe
      Src: /src/icu/source/common/normalizer2impl.h:300,1
    - Dst: getNorm16
      Src: /src/icu/source/common/normalizer2impl.h:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: getCCFromYesOrMaybeCP
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - getCCFromYesOrMaybe
    - getNorm16
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t getCCFromYesOrMaybeCP(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 552
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 552
    functionName: hangulLVT
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: 'uint16_t hangulLVT() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: isHangulLV
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool isHangulLV(UChar32 c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: appendBMP
      Src: /src/icu/source/common/normalizer2impl.h:165,1
    - Dst: appendSupplementary
      Src: /src/icu/source/common/normalizer2impl.h:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - c
    - cc
    - errorCode
    argTypes:
    - UChar32
    - uint8_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: append
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - appendSupplementary
    - appendBMP
    linkageType: ''
    returnType: UBool
    signature: 'UBool append(UChar32 c, uint8_t cc, UErrorCode &errorCode) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 278
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 278
    functionName: getCompQuickCheck
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UNormalizationCheckResult
    signature: 'UNormalizationCheckResult getCompQuickCheck(uint16_t norm16) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 280
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 280
    functionName: isCompNo
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isCompNo(uint16_t norm16) const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getCCFromNormalYesOrMaybe
      Src: /src/icu/source/common/normalizer2impl.h:285,1
    - Dst: getCCFromNoNo
      Src: /src/icu/source/common/normalizer2impl.h:290,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 291
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 291
    functionName: getCC
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - getCCFromNormalYesOrMaybe
    - getCCFromNoNo
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t getCC(uint16_t norm16) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getCCFromNormalYesOrMaybe
      Src: /src/icu/source/common/normalizer2impl.h:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: getCCFromYesOrMaybe
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - getCCFromNormalYesOrMaybe
    linkageType: ''
    returnType: uint8_t
    signature: 'static uint8_t getCCFromYesOrMaybe(uint16_t norm16) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 613
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 613
    functionName: getAlgorithmicDelta
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UChar32
    signature: 'UChar32 getAlgorithmicDelta(uint16_t norm16) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isAlgorithmicNoNo
      Src: /src/icu/source/common/normalizer2impl.h:670,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 671
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 671
    functionName: norm16HasCompBoundaryBefore
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - isAlgorithmicNoNo
    linkageType: ''
    returnType: UBool
    signature: 'UBool norm16HasCompBoundaryBefore(uint16_t norm16) const '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: U16_IS_TRAIL
      Src: /src/icu/source/common/normalizer2impl.h:347,1
    - Dst: getFCD16FromNormData
      Src: /src/icu/source/common/normalizer2impl.h:358,1
    - Dst: U16_GET_SUPPLEMENTARY
      Src: /src/icu/source/common/normalizer2impl.h:354,1
    - Dst: U16_IS_LEAD
      Src: /src/icu/source/common/normalizer2impl.h:353,1
    - Dst: singleLeadMightHaveNonZeroFCD16
      Src: /src/icu/source/common/normalizer2impl.h:348,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - start
    - s
    argTypes:
    - UChar*
    - UChar*
    constantsTouched: []
    func_position:
      end: 359
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 359
    functionName: previousFCD16
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - getFCD16FromNormData
    - U16_IS_LEAD
    - singleLeadMightHaveNonZeroFCD16
    - U16_GET_SUPPLEMENTARY
    - U16_IS_TRAIL
    linkageType: ''
    returnType: uint16_t
    signature: 'uint16_t previousFCD16(const UChar *start, const UChar *&s) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 571
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 571
    functionName: isDecompYesAndZeroCC
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isDecompYesAndZeroCC(uint16_t norm16) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getMapping
      Src: /src/icu/source/common/normalizer2impl.h:588,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 594
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 594
    functionName: getCCFromNoNo
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - getMapping
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t getCCFromNoNo(uint16_t norm16) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isTrailCC01ForCompBoundaryAfter
      Src: /src/icu/source/common/normalizer2impl.h:680,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - norm16
    - onlyContiguous
    argTypes:
    - uint16_t
    - UBool
    constantsTouched: []
    func_position:
      end: 681
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 681
    functionName: norm16HasCompBoundaryAfter
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - isTrailCC01ForCompBoundaryAfter
    linkageType: ''
    returnType: UBool
    signature: 'UBool norm16HasCompBoundaryAfter(uint16_t norm16, UBool onlyContiguous)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isInert
      Src: /src/icu/source/common/normalizer2impl.h:684,1
    - Dst: isDecompNoAlgorithmic
      Src: /src/icu/source/common/normalizer2impl.h:684,1
    - Dst: getMapping
      Src: /src/icu/source/common/normalizer2impl.h:685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 686
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 686
    functionName: isTrailCC01ForCompBoundaryAfter
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - isInert
    - getMapping
    - isDecompNoAlgorithmic
    linkageType: ''
    returnType: UBool
    signature: 'UBool isTrailCC01ForCompBoundaryAfter(uint16_t norm16) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Normalizer2Factory
      Src: /src/icu/source/common/normalizer2impl.h:752,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 753
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 753
    functionName: Normalizer2Factory
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - Normalizer2Factory
    linkageType: ''
    returnType: class
    signature: 'class U_COMMON_API Normalizer2Factory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: length
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t length() const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U16_LEAD
      Src: /src/icu/source/common/normalizer2impl.h:219,1
    - Dst: U16_TRAIL
      Src: /src/icu/source/common/normalizer2impl.h:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - UChar*
    - UChar32
    constantsTouched: []
    func_position:
      end: 222
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 222
    functionName: writeCodePoint
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - U16_TRAIL
    - U16_LEAD
    linkageType: ''
    returnType: void
    signature: 'static void writeCodePoint(UChar *p, UChar32 c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getNorm16
      Src: /src/icu/source/common/normalizer2impl.h:534,1
    - Dst: isCompYesAndZeroCC
      Src: /src/icu/source/common/normalizer2impl.h:535,1
    - Dst: getMapping
      Src: /src/icu/source/common/normalizer2impl.h:537,1
    - Dst: isInert
      Src: /src/icu/source/common/normalizer2impl.h:537,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - c
    - onlyContiguous
    argTypes:
    - UChar32
    - UBool
    constantsTouched: []
    func_position:
      end: 538
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 538
    functionName: isCompInert
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - isInert
    - getNorm16
    - isCompYesAndZeroCC
    - getMapping
    linkageType: ''
    returnType: UBool
    signature: 'UBool isCompInert(UChar32 c, UBool onlyContiguous) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasDecompBoundaryAfter
      Src: /src/icu/source/common/normalizer2impl.h:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 541
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 541
    functionName: hasFCDBoundaryAfter
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - hasDecompBoundaryAfter
    linkageType: ''
    returnType: UBool
    signature: 'UBool hasFCDBoundaryAfter(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 549
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 549
    functionName: isInert
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool isInert(uint16_t norm16) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 557
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 557
    functionName: isCompYesAndZeroCC
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isCompYesAndZeroCC(uint16_t norm16) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMapping
      Src: /src/icu/source/common/normalizer2impl.h:628,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 632
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 632
    functionName: getCompositionsListForComposite
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - getMapping
    linkageType: ''
    returnType: uint16_t*
    signature: 'const uint16_t *getCompositionsListForComposite(uint16_t norm16) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasDecompBoundaryBefore
      Src: /src/icu/source/common/normalizer2impl.h:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 540
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 540
    functionName: hasFCDBoundaryBefore
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - hasDecompBoundaryBefore
    linkageType: ''
    returnType: UBool
    signature: 'UBool hasFCDBoundaryBefore(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getFCD16
      Src: /src/icu/source/common/normalizer2impl.h:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 542
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 542
    functionName: isFCDInert
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - getFCD16
    linkageType: ''
    returnType: UBool
    signature: 'UBool isFCDInert(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 550
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 550
    functionName: isJamoL
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool isJamoL(uint16_t norm16) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getMapping
      Src: /src/icu/source/common/normalizer2impl.h:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 603
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 603
    functionName: getTrailCCFromCompYesAndZeroCC
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - getMapping
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t getTrailCCFromCompYesAndZeroCC(uint16_t norm16) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - norm16
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 636
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 636
    functionName: getCompositionsListForMaybe
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint16_t*
    signature: 'const uint16_t *getCompositionsListForMaybe(uint16_t norm16) const '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: singleLeadMightHaveNonZeroFCD16
      Src: /src/icu/source/common/normalizer2impl.h:312,1
    - Dst: getFCD16FromNormData
      Src: /src/icu/source/common/normalizer2impl.h:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 315
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 315
    functionName: getFCD16
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - singleLeadMightHaveNonZeroFCD16
    - getFCD16FromNormData
    linkageType: ''
    returnType: uint16_t
    signature: 'uint16_t getFCD16(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U_IS_LEAD
      Src: /src/icu/source/common/normalizer2impl.h:264,1
    - Dst: UCPTRIE_FAST_GET
      Src: /src/icu/source/common/normalizer2impl.h:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 267
    functionName: getNorm16
    functionSourceFile: /src/icu/source/common/normalizer2impl.h
    functionUses: []
    functionsReached:
    - U_IS_LEAD
    - UCPTRIE_FAST_GET
    linkageType: ''
    returnType: uint16_t
    signature: 'uint16_t getNorm16(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: ucln_atexit_handler
    functionSourceFile: /src/icu/source/common/ucln_imp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void ucln_atexit_handler() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atexit
      Src: /src/icu/source/common/ucln_imp.h:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: ucln_registerAutomaticCleanup
    functionSourceFile: /src/icu/source/common/ucln_imp.h
    functionUses: []
    functionsReached:
    - atexit
    linkageType: ''
    returnType: void
    signature: 'static void ucln_registerAutomaticCleanup() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: UCLN_FINI
    functionSourceFile: /src/icu/source/common/ucln_imp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_EXPORT2
    signature: 'U_EXPORT2 UCLN_FINI () '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: ucln_unRegisterAutomaticCleanup
    functionSourceFile: /src/icu/source/common/ucln_imp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void ucln_unRegisterAutomaticCleanup () '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: ucln_destructor
    functionSourceFile: /src/icu/source/common/ucln_imp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void ucln_destructor() '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 3
    argNames:
    - hinstDLL
    - fdwReason
    - lpvReserved
    argTypes:
    - HINSTANCE
    - DWORD
    - LPVOID
    constantsTouched: []
    func_position:
      end: 164
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 164
    functionName: DllMain
    functionSourceFile: /src/icu/source/common/ucln_imp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ResourceTracer
      Src: /src/icu/source/common/restrace.h:115,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 132
    functionName: traceOpen
    functionSourceFile: /src/icu/source/common/restrace.h
    functionUses: []
    functionsReached:
    - ResourceTracer
    linkageType: ''
    returnType: void
    signature: 'void traceOpen() const; /** * Calls trace() if the resB or parent
      provided to the constructor was * non-null; otherwise, does nothing. */ void
      maybeTrace(const char* type) const { if (fResB || fParent) { trace(type); }
      } private: const UResourceBundle* fResB; const ResourceTracer* fParent; const
      char* fKey; int32_t fIndex; CharString& getFilePath(CharString& output, UErrorCode&
      status) const; CharString& getResPath(CharString& output, UErrorCode& status)
      const;};/** * This class provides methods to trace data file reads when ICU
      is built * with --enable-tracing. */class FileTracer {public: static void traceOpen(const
      char* path, const char* type, const char* name); private: static void traceOpenDataFile(const
      char* path, const char* type, const char* name); static void traceOpenResFile(const
      char* path, const char* name); }; U_NAMESPACE_END#else // U_ENABLE_TRACINGU_NAMESPACE_BEGIN/**
      * Default trivial implementation when --enable-tracing is not used. */ class
      U_COMMON_API ResourceTracer '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: traceOpen
    functionSourceFile: /src/icu/source/common/restrace.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void traceOpen() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: FileTracer
    functionSourceFile: /src/icu/source/common/restrace.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class FileTracer '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - '*'
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: trace
    functionSourceFile: /src/icu/source/common/restrace.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void trace(const char*) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - '*'
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: maybeTrace
    functionSourceFile: /src/icu/source/common/restrace.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void maybeTrace(const char*) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FullCaseFoldingIterator
      Src: /src/icu/source/common/ucase.h:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 149
    functionName: FullCaseFoldingIterator
    functionSourceFile: /src/icu/source/common/ucase.h
    functionUses: []
    functionsReached:
    - FullCaseFoldingIterator
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API FullCaseFoldingIterator '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 176
    functionName: LatinCase
    functionSourceFile: /src/icu/source/common/ucase.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace LatinCase '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 92
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 92
    functionName: uprv_upperOrdinal
    functionSourceFile: /src/icu/source/common/uinvchar.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN /** * Like U_UPPER_ORDINAL(x) but with validation.
      * Returns 0..25 for A..Z else a value outside 0..25. */ inline int32_t uprv_upperOrdinal(int32_t
      c) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 110
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 110
    functionName: uprv_lowerOrdinal
    functionSourceFile: /src/icu/source/common/uinvchar.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t uprv_lowerOrdinal(int32_t c) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BreakCache
      Src: /src/icu/source/common/rbbi_cache.h:87,1
    - Dst: nextOL
      Src: /src/icu/source/common/rbbi_cache.h:91,1
    - Dst: modChunkSize
      Src: /src/icu/source/common/rbbi_cache.h:93,1
    - Dst: static_assert
      Src: /src/icu/source/common/rbbi_cache.h:183,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 196
    functionName: RuleBasedBreakIterator
    functionSourceFile: /src/icu/source/common/rbbi_cache.h
    functionUses: []
    functionsReached:
    - static_assert
    - nextOL
    - BreakCache
    - modChunkSize
    linkageType: ''
    returnType: class
    signature: 'class RuleBasedBreakIterator ::BreakCache: public UMemory '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nextOL
      Src: /src/icu/source/common/rbbi_cache.h:91,1
    - Dst: modChunkSize
      Src: /src/icu/source/common/rbbi_cache.h:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: next
    functionSourceFile: /src/icu/source/common/rbbi_cache.h
    functionUses: []
    functionsReached:
    - nextOL
    - modChunkSize
    linkageType: ''
    returnType: void
    signature: 'void next() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: std
    functionSourceFile: /src/icu/source/common/utypeinfo.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace std '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uhash_init
      Src: /src/icu/source/common/hash.h:124,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/common/hash.h:125,1
    - Dst: uhash_setKeyDeleter
      Src: /src/icu/source/common/hash.h:127,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 129
    functionName: Hashtable
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - U_SUCCESS
    - uhash_init
    - uhash_setKeyDeleter
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API Hashtable : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/icu/source/common/hash.h:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: Hashtable
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - init
    linkageType: ''
    returnType: Hashtable
    signature: 'inline Hashtable :: Hashtable() : hash(0) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uhash_close
      Src: /src/icu/source/common/hash.h:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: Hashtable
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - uhash_close
    linkageType: ''
    returnType: Hashtable
    signature: 'inline Hashtable ::~ Hashtable() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_remove
      Src: /src/icu/source/common/hash.h:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: remove
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - uhash_remove
    linkageType: ''
    returnType: void*
    signature: 'inline void * Hashtable::remove(const UnicodeString& key) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_removeAll
      Src: /src/icu/source/common/hash.h:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: removeAll
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - uhash_removeAll
    linkageType: ''
    returnType: void
    signature: 'inline void Hashtable:: removeAll(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/common/hash.h:133,1
    - Dst: uhash_setKeyDeleter
      Src: /src/icu/source/common/hash.h:139,1
    - Dst: uhash_initSize
      Src: /src/icu/source/common/hash.h:136,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/common/hash.h:137,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 5
    argNames:
    - keyHash
    - keyComp
    - valueComp
    - size
    - status
    argTypes:
    - UHashFunction*
    - UKeyComparator*
    - UValueComparator*
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: initSize
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - U_SUCCESS
    - uhash_setKeyDeleter
    - uhash_initSize
    linkageType: ''
    returnType: void
    signature: 'inline void Hashtable:: initSize(UHashFunction *keyHash, UKeyComparator
      *keyComp, UValueComparator *valueComp, int32_t size, UErrorCode& status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_removei
      Src: /src/icu/source/common/hash.h:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: removei
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - uhash_removei
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t Hashtable:: removei(const UnicodeString& key) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_setKeyComparator
      Src: /src/icu/source/common/hash.h:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - keyComp
    argTypes:
    - UKeyComparator*
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: setKeyComparator
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - uhash_setKeyComparator
    linkageType: ''
    returnType: UKeyComparator*
    signature: 'inline UKeyComparator * Hashtable::setKeyComparator(UKeyComparator*keyComp) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/icu/source/common/hash.h:160,1
    - Dst: initSize
      Src: /src/icu/source/common/hash.h:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ignoreKeyCase
    - size
    - status
    argTypes:
    - UBool
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: Hashtable
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - hash
    - initSize
    linkageType: ''
    returnType: Hashtable
    signature: 'inline Hashtable :: Hashtable(UBool ignoreKeyCase, int32_t size, UErrorCode&
      status) : hash(0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_setValueDeleter
      Src: /src/icu/source/common/hash.h:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - fn
    argTypes:
    - UObjectDeleter*
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: setValueDeleter
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - uhash_setValueDeleter
    linkageType: ''
    returnType: UObjectDeleter*
    signature: 'inline UObjectDeleter *Hashtable::setValueDeleter(UObjectDeleter *fn) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_get
      Src: /src/icu/source/common/hash.h:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: get
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - uhash_get
    linkageType: ''
    returnType: void*
    signature: 'inline void * Hashtable::get(const UnicodeString& key) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_find
      Src: /src/icu/source/common/hash.h:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: find
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - uhash_find
    linkageType: ''
    returnType: UHashElement*
    signature: 'inline const UHashElement * Hashtable::find(const UnicodeString& key)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/icu/source/common/hash.h:171,1
    - Dst: init
      Src: /src/icu/source/common/hash.h:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: Hashtable
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - hash
    - init
    linkageType: ''
    returnType: Hashtable
    signature: 'inline Hashtable :: Hashtable(UErrorCode& status) : hash(0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_geti
      Src: /src/icu/source/common/hash.h:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: geti
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - uhash_geti
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t Hashtable:: geti(const UnicodeString& key) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_nextElement
      Src: /src/icu/source/common/hash.h:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: nextElement
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - uhash_nextElement
    linkageType: ''
    returnType: UHashElement*
    signature: 'inline const UHashElement * Hashtable::nextElement(int32_t& pos) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_count
      Src: /src/icu/source/common/hash.h:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: count
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - uhash_count
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t Hashtable:: count() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_put
      Src: /src/icu/source/common/hash.h:198,1
    - Dst: UnicodeString
      Src: /src/icu/source/common/hash.h:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 3
    argNames:
    - key
    - value
    - status
    argTypes:
    - UnicodeString
    - void*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: put
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - uhash_put
    - UnicodeString
    linkageType: ''
    returnType: void*
    signature: 'inline void * Hashtable::put(const UnicodeString& key, void* value,
      UErrorCode& status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_setValueComparator
      Src: /src/icu/source/common/hash.h:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - valueComp
    argTypes:
    - UValueComparator*
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: setValueComparator
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - uhash_setValueComparator
    linkageType: ''
    returnType: UValueComparator*
    signature: 'inline UValueComparator * Hashtable::setValueComparator(UValueComparator*
      valueComp) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_puti
      Src: /src/icu/source/common/hash.h:202,1
    - Dst: UnicodeString
      Src: /src/icu/source/common/hash.h:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - key
    - value
    - status
    argTypes:
    - UnicodeString
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: puti
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - uhash_puti
    - UnicodeString
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t Hashtable:: puti(const UnicodeString& key, int32_t
      value, UErrorCode& status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_equals
      Src: /src/icu/source/common/hash.h:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - that
    argTypes:
    - Hashtable
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: equals
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - uhash_equals
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool Hashtable:: equals(const Hashtable& that)const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/icu/source/common/hash.h:144,1
    - Dst: init
      Src: /src/icu/source/common/hash.h:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 3
    argNames:
    - keyComp
    - valueComp
    - status
    argTypes:
    - UKeyComparator*
    - UValueComparator*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: Hashtable
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - hash
    - init
    linkageType: ''
    returnType: Hashtable
    signature: 'inline Hashtable :: Hashtable(UKeyComparator *keyComp, UValueComparator
      *valueComp, UErrorCode& status) : hash(0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 123
    functionName: count
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t count() const; inline void* put(const UnicodeString&
      key, void* value, UErrorCode& status); inline int32_t puti(const UnicodeString&
      key, int32_t value, UErrorCode& status); inline void* get(const UnicodeString&
      key) const; inline int32_t geti(const UnicodeString& key) const; inline void*
      remove(const UnicodeString& key); inline int32_t removei(const UnicodeString&
      key); inline void removeAll(void); inline const UHashElement* find(const UnicodeString&
      key) const; /** * @param pos - must be UHASH_FIRST on first call, and untouched
      afterwards. * @see uhash_nextElement */ inline const UHashElement* nextElement(int32_t&
      pos) const; inline UKeyComparator* setKeyComparator(UKeyComparator*keyComp);
      inline UValueComparator* setValueComparator(UValueComparator* valueComp); inline
      UBool equals(const Hashtable& that) const;private: Hashtable(const Hashtable
      &other); // forbid copying of this class Hashtable &operator=(const Hashtable
      &other); // forbid copying of this class }; /*********************************************************************
      * Implementation ********************************************************************/
      inline void Hashtable::init(UHashFunction *keyHash, UKeyComparator *keyComp,
      UValueComparator *valueComp, UErrorCode& status) { if (U_FAILURE(status)) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/icu/source/common/hash.h:149,1
    - Dst: init
      Src: /src/icu/source/common/hash.h:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ignoreKeyCase
    - status
    argTypes:
    - UBool
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 157
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 157
    functionName: Hashtable
    functionSourceFile: /src/icu/source/common/hash.h
    functionUses: []
    functionsReached:
    - hash
    - init
    linkageType: ''
    returnType: Hashtable
    signature: 'inline Hashtable :: Hashtable(UBool ignoreKeyCase, UErrorCode& status)
      : hash(0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: findCodePoint
      Src: /src/icu/source/common/bmpset.h:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - c
    - lo
    - hi
    argTypes:
    - UChar32
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: containsSlow
    functionSourceFile: /src/icu/source/common/bmpset.h
    functionUses: []
    functionsReached:
    - findCodePoint
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool BMPSet:: containsSlow(UChar32 c, int32_t lo, int32_t
      hi) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memcpy
      Src: /src/icu/source/common/cpputils.h:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 3
    argNames:
    - src
    - dst
    - count
    argTypes:
    - double*
    - double*
    - int32_t
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: uprv_arrayCopy
    functionSourceFile: /src/icu/source/common/cpputils.h
    functionUses: []
    functionsReached:
    - uprv_memcpy
    linkageType: ''
    returnType: void
    signature: 'static inline void uprv_arrayCopy(const double* src, double* dst,
      int32_t count) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memcpy
      Src: /src/icu/source/common/cpputils.h:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 5
    argNames:
    - src
    - srcStart
    - dst
    - dstStart
    - count
    argTypes:
    - int8_t*
    - int32_t
    - int8_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: uprv_arrayCopy
    functionSourceFile: /src/icu/source/common/cpputils.h
    functionUses: []
    functionsReached:
    - uprv_memcpy
    linkageType: ''
    returnType: void
    signature: 'static inline void uprv_arrayCopy(const int8_t* src, int32_t srcStart,
      int8_t* dst, int32_t dstStart, int32_t count) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memcpy
      Src: /src/icu/source/common/cpputils.h:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 5
    argNames:
    - src
    - srcStart
    - dst
    - dstStart
    - count
    argTypes:
    - double*
    - int32_t
    - double*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: uprv_arrayCopy
    functionSourceFile: /src/icu/source/common/cpputils.h
    functionUses: []
    functionsReached:
    - uprv_memcpy
    linkageType: ''
    returnType: void
    signature: 'static inline void uprv_arrayCopy(const double* src, int32_t srcStart,
      double* dst, int32_t dstStart, int32_t count) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memcpy
      Src: /src/icu/source/common/cpputils.h:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 5
    argNames:
    - src
    - srcStart
    - dst
    - dstStart
    - count
    argTypes:
    - int16_t*
    - int32_t
    - int16_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: uprv_arrayCopy
    functionSourceFile: /src/icu/source/common/cpputils.h
    functionUses: []
    functionsReached:
    - uprv_memcpy
    linkageType: ''
    returnType: void
    signature: 'static inline void uprv_arrayCopy(const int16_t* src, int32_t srcStart,
      int16_t* dst, int32_t dstStart, int32_t count) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memcpy
      Src: /src/icu/source/common/cpputils.h:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 5
    argNames:
    - src
    - srcStart
    - dst
    - dstStart
    - count
    argTypes:
    - int32_t*
    - int32_t
    - int32_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: uprv_arrayCopy
    functionSourceFile: /src/icu/source/common/cpputils.h
    functionUses: []
    functionsReached:
    - uprv_memcpy
    linkageType: ''
    returnType: void
    signature: 'static inline void uprv_arrayCopy(const int32_t* src, int32_t srcStart,
      int32_t* dst, int32_t dstStart, int32_t count) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_arrayCopy
      Src: /src/icu/source/common/cpputils.h:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 5
    argNames:
    - src
    - srcStart
    - dst
    - dstStart
    - count
    argTypes:
    - icu*
    - int32_t
    - icu*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: uprv_arrayCopy
    functionSourceFile: /src/icu/source/common/cpputils.h
    functionUses: []
    functionsReached:
    - uprv_arrayCopy
    linkageType: ''
    returnType: void
    signature: 'static inline void uprv_arrayCopy(const icu::UnicodeString *src, int32_t
      srcStart, icu::UnicodeString *dst, int32_t dstStart, int32_t count) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_SUCCESS
      Src: /src/icu/source/common/cpputils.h:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - s
    - errorCode
    argTypes:
    - icu
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: uprv_checkCanGetBuffer
    functionSourceFile: /src/icu/source/common/cpputils.h
    functionUses: []
    functionsReached:
    - U_SUCCESS
    linkageType: ''
    returnType: void
    signature: 'inline void uprv_checkCanGetBuffer(const icu::UnicodeString &s, UErrorCode
      &errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memcpy
      Src: /src/icu/source/common/cpputils.h:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 3
    argNames:
    - src
    - dst
    - count
    argTypes:
    - int8_t*
    - int8_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: uprv_arrayCopy
    functionSourceFile: /src/icu/source/common/cpputils.h
    functionUses: []
    functionsReached:
    - uprv_memcpy
    linkageType: ''
    returnType: void
    signature: 'static inline void uprv_arrayCopy(const int8_t* src, int8_t* dst,
      int32_t count) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memcpy
      Src: /src/icu/source/common/cpputils.h:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 3
    argNames:
    - src
    - dst
    - count
    argTypes:
    - int16_t*
    - int16_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: uprv_arrayCopy
    functionSourceFile: /src/icu/source/common/cpputils.h
    functionUses: []
    functionsReached:
    - uprv_memcpy
    linkageType: ''
    returnType: void
    signature: 'static inline void uprv_arrayCopy(const int16_t* src, int16_t* dst,
      int32_t count) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memcpy
      Src: /src/icu/source/common/cpputils.h:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 3
    argNames:
    - src
    - dst
    - count
    argTypes:
    - int32_t*
    - int32_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: uprv_arrayCopy
    functionSourceFile: /src/icu/source/common/cpputils.h
    functionUses: []
    functionsReached:
    - uprv_memcpy
    linkageType: ''
    returnType: void
    signature: 'static inline void uprv_arrayCopy(const int32_t* src, int32_t* dst,
      int32_t count) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memcpy
      Src: /src/icu/source/common/cpputils.h:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 5
    argNames:
    - src
    - srcStart
    - dst
    - dstStart
    - count
    argTypes:
    - UChar*
    - int32_t
    - UChar*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: uprv_arrayCopy
    functionSourceFile: /src/icu/source/common/cpputils.h
    functionUses: []
    functionsReached:
    - uprv_memcpy
    linkageType: ''
    returnType: void
    signature: 'static inline void uprv_arrayCopy(const UChar *src, int32_t srcStart,
      UChar *dst, int32_t dstStart, int32_t count) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 3
    argNames:
    - src
    - dst
    - count
    argTypes:
    - icu*
    - icu*
    - int32_t
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: uprv_arrayCopy
    functionSourceFile: /src/icu/source/common/cpputils.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static inline void uprv_arrayCopy(const icu::UnicodeString *src, icu::UnicodeString
      *dst, int32_t count) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - var
    - val
    argTypes:
    - u_atomic_int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: umtx_storeRelease
    functionSourceFile: /src/icu/source/common/umutex.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void umtx_storeRelease(u_atomic_int32_t &var, int32_t val) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: umtx_loadAcquire
      Src: /src/icu/source/common/umutex.h:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: isReset
    functionSourceFile: /src/icu/source/common/umutex.h
    functionUses: []
    functionsReached:
    - umtx_loadAcquire
    linkageType: ''
    returnType: "struct UInitOnce {\n    u_atomic_int32_t   fState;\n    UErrorCode
      \      fErrCode;\n    void reset() {fState = 0;}"
    signature: 'struct UInitOnce { u_atomic_int32_t fState; UErrorCode fErrCode; void
      reset() {fState = 0;} UBool isReset() '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: umtx_loadAcquire
      Src: /src/icu/source/common/umutex.h:127,1
    - Dst: umtx_initImplPostInit
      Src: /src/icu/source/common/umutex.h:132,1
    - Dst: umtx_initImplPreInit
      Src: /src/icu/source/common/umutex.h:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - uio
    - (U_CALLCONV *fp)
    argTypes:
    - UInitOnce
    - void
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: umtx_initOnce
    functionSourceFile: /src/icu/source/common/umutex.h
    functionUses: []
    functionsReached:
    - umtx_initImplPreInit
    - umtx_initImplPostInit
    - umtx_loadAcquire
    linkageType: ''
    returnType: void
    signature: 'inline void umtx_initOnce(UInitOnce &uio, void (U_CALLCONV *fp)()) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getMutex
      Src: /src/icu/source/common/umutex.h:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: lock
    functionSourceFile: /src/icu/source/common/umutex.h
    functionUses: []
    functionsReached:
    - getMutex
    linkageType: ''
    returnType: void
    signature: 'void lock() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: unlock
    functionSourceFile: /src/icu/source/common/umutex.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void unlock() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - var
    argTypes:
    - u_atomic_int32_t
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: umtx_loadAcquire
    functionSourceFile: /src/icu/source/common/umutex.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t umtx_loadAcquire(u_atomic_int32_t &var) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - var
    argTypes:
    - u_atomic_int32_t*
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: umtx_atomic_inc
    functionSourceFile: /src/icu/source/common/umutex.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t umtx_atomic_inc(u_atomic_int32_t *var) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - var
    argTypes:
    - u_atomic_int32_t*
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: umtx_atomic_dec
    functionSourceFile: /src/icu/source/common/umutex.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t umtx_atomic_dec(u_atomic_int32_t *var) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 256
    functionName: fListLink
    functionSourceFile: /src/icu/source/common/umutex.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UMutex*
    signature: 'UMutex *fListLink '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/common/umutex.h:139,1
    - Dst: umtx_initImplPostInit
      Src: /src/icu/source/common/umutex.h:146,1
    - Dst: umtx_initImplPreInit
      Src: /src/icu/source/common/umutex.h:142,1
    - Dst: umtx_loadAcquire
      Src: /src/icu/source/common/umutex.h:142,1
    - Dst: U_FAILURE
      Src: /src/icu/source/common/umutex.h:149,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - uio
    - (U_CALLCONV *fp)
    - errCode
    argTypes:
    - UInitOnce
    - void
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 153
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 153
    functionName: umtx_initOnce
    functionSourceFile: /src/icu/source/common/umutex.h
    functionUses: []
    functionsReached:
    - umtx_initImplPreInit
    - U_FAILURE
    - umtx_loadAcquire
    - umtx_initImplPostInit
    linkageType: ''
    returnType: void
    signature: 'inline void umtx_initOnce(UInitOnce &uio, void (U_CALLCONV *fp)(UErrorCode
      &), UErrorCode &errCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: debug
      Src: /src/icu/source/common/servnotf.h:46,1
    - Dst: debugClass
      Src: /src/icu/source/common/servnotf.h:50,1
    - Dst: debugClass
      Src: /src/icu/source/common/servnotf.h:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 54
    functionName: EventListener
    functionSourceFile: /src/icu/source/common/servnotf.h
    functionUses: []
    functionsReached:
    - debug
    - debugClass
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API EventListener : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/icu/source/common/pluralmap.h:124,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/common/pluralmap.h:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: clear
    functionSourceFile: /src/icu/source/common/pluralmap.h
    functionUses: []
    functionsReached:
    - T
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'void clear() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/common/pluralmap.h:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - index
    argTypes:
    - Category
    constantsTouched: []
    func_position:
      end: 149
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 149
    functionName: next
    functionSourceFile: /src/icu/source/common/pluralmap.h
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: T*
    signature: 'const T *next(Category &index) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/icu/source/common/pluralmap.h:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: getOther
    functionSourceFile: /src/icu/source/common/pluralmap.h
    functionUses: []
    functionsReached:
    - get
    linkageType: ''
    returnType: T
    signature: 'const T & getOther() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/icu/source/common/pluralmap.h:185,1
    - Dst: toCategory
      Src: /src/icu/source/common/pluralmap.h:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - category
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: get
    functionSourceFile: /src/icu/source/common/pluralmap.h
    functionUses: []
    functionsReached:
    - toCategory
    - get
    linkageType: ''
    returnType: T
    signature: 'const T & get(const char *category) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMutable
      Src: /src/icu/source/common/pluralmap.h:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - category
    - status
    argTypes:
    - Category
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: getMutable
    functionSourceFile: /src/icu/source/common/pluralmap.h
    functionUses: []
    functionsReached:
    - getMutable
    linkageType: ''
    returnType: T*
    signature: 'T *getMutable( Category category, UErrorCode &status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMutable
      Src: /src/icu/source/common/pluralmap.h:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - category
    - defaultValue
    - status
    argTypes:
    - Category
    - T
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: getMutableWithDefault
    functionSourceFile: /src/icu/source/common/pluralmap.h
    functionUses: []
    functionsReached:
    - getMutable
    linkageType: ''
    returnType: T*
    signature: 'T *getMutableWithDefault( Category category, const T &defaultValue,
      UErrorCode &status) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/common/pluralmap.h:241,1
    - Dst: eqFunc
      Src: /src/icu/source/common/pluralmap.h:248,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - rhs
    - (*eqFunc)
    argTypes:
    - PluralMap
    - UBool
    constantsTouched: []
    func_position:
      end: 253
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 253
    functionName: equals
    functionSourceFile: /src/icu/source/common/pluralmap.h
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - eqFunc
    linkageType: ''
    returnType: UBool
    signature: 'UBool equals( const PluralMap<T> &rhs, UBool (*eqFunc)(const T &,
      const T &)) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/common/pluralmap.h:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 286
    functionName: initializeNew
    functionSourceFile: /src/icu/source/common/pluralmap.h
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'void initializeNew() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initializeNew
      Src: /src/icu/source/common/pluralmap.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: (otherVariant)
    functionSourceFile: /src/icu/source/common/pluralmap.h
    functionUses: []
    functionsReached:
    - initializeNew
    linkageType: ''
    returnType: fOtherVariant
    signature: 'fOtherVariant (otherVariant) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/common/pluralmap.h:263,1
    - Dst: T
      Src: /src/icu/source/common/pluralmap.h:273,1
    - Dst: T
      Src: /src/icu/source/common/pluralmap.h:273,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/common/pluralmap.h:267,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - category
    - defaultValue
    - status
    argTypes:
    - Category
    - T*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 279
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 279
    functionName: getMutable
    functionSourceFile: /src/icu/source/common/pluralmap.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - T
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: T*
    signature: 'T *getMutable( Category category, const T *defaultValue, UErrorCode
      &status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/common/pluralmap.h:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - Category
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: get
    functionSourceFile: /src/icu/source/common/pluralmap.h
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: T
    signature: 'const T & get(Category v) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/icu/source/common/pluralmap.h:193,1
    - Dst: toCategory
      Src: /src/icu/source/common/pluralmap.h:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - category
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: get
    functionSourceFile: /src/icu/source/common/pluralmap.h
    functionUses: []
    functionsReached:
    - toCategory
    - get
    linkageType: ''
    returnType: T
    signature: 'const T & get(const UnicodeString &category) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getMutable
      Src: /src/icu/source/common/pluralmap.h:220,1
    - Dst: toCategory
      Src: /src/icu/source/common/pluralmap.h:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - category
    - status
    argTypes:
    - char*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: getMutable
    functionSourceFile: /src/icu/source/common/pluralmap.h
    functionUses: []
    functionsReached:
    - getMutable
    - toCategory
    linkageType: ''
    returnType: T*
    signature: 'T *getMutable( const char *category, UErrorCode &status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RBBISymbolTableEntry
      Src: /src/icu/source/common/rbbirb.h:50,1
    - Dst: RBBISymbolTableEntry
      Src: /src/icu/source/common/rbbirb.h:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: RBBISymbolTableEntry
    functionSourceFile: /src/icu/source/common/rbbirb.h
    functionUses: []
    functionsReached:
    - RBBISymbolTableEntry
    linkageType: ''
    returnType: class
    signature: 'class RBBISymbolTableEntry : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: build
      Src: /src/icu/source/common/rbbirb.h:133,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 181
    functionName: RBBIRuleBuilder
    functionSourceFile: /src/icu/source/common/rbbirb.h
    functionUses: []
    functionsReached:
    - build
    linkageType: ''
    returnType: class
    signature: 'class RBBIRuleBuilder : public UMemory '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: next
    functionSourceFile: /src/icu/source/common/localeprioritylist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Locale
    signature: 'const Locale & next() override '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: getLengthIncludingRemoved
    functionSourceFile: /src/icu/source/common/localeprioritylist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getLengthIncludingRemoved() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: getLength
    functionSourceFile: /src/icu/source/common/localeprioritylist.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getLength() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Iterator
      Src: /src/icu/source/common/localeprioritylist.h:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: iterator
    functionSourceFile: /src/icu/source/common/localeprioritylist.h
    functionUses: []
    functionsReached:
    - Iterator
    linkageType: ''
    returnType: Iterator
    signature: 'Iterator iterator() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RBBINode
      Src: /src/icu/source/common/rbbinode.h:95,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 116
    functionName: RBBINode
    functionSourceFile: /src/icu/source/common/rbbinode.h
    functionUses: []
    functionsReached:
    - RBBINode
    linkageType: ''
    returnType: class
    signature: 'class RBBINode : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CStr
      Src: /src/icu/source/common/cstr.h:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: UMemory
    functionSourceFile: /src/icu/source/common/cstr.h
    functionUses: []
    functionsReached:
    - CStr
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API CStr : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LanguageBreakEngine
      Src: /src/icu/source/common/brkeng.h:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 77
    functionName: LanguageBreakEngine
    functionSourceFile: /src/icu/source/common/brkeng.h
    functionUses: []
    functionsReached:
    - LanguageBreakEngine
    linkageType: ''
    returnType: class
    signature: 'class LanguageBreakEngine : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnhandledEngine
      Src: /src/icu/source/common/brkeng.h:161,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 201
    functionName: LanguageBreakEngine
    functionSourceFile: /src/icu/source/common/brkeng.h
    functionUses: []
    functionsReached:
    - UnhandledEngine
    linkageType: ''
    returnType: class
    signature: 'class UnhandledEngine : public LanguageBreakEngine '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LanguageBreakFactory
      Src: /src/icu/source/common/brkeng.h:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 128
    functionName: LanguageBreakFactory
    functionSourceFile: /src/icu/source/common/brkeng.h
    functionUses: []
    functionsReached:
    - LanguageBreakFactory
    linkageType: ''
    returnType: class
    signature: 'class LanguageBreakFactory : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ICULanguageBreakFactory
      Src: /src/icu/source/common/brkeng.h:228,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 265
    functionName: ICULanguageBreakFactory
    functionSourceFile: /src/icu/source/common/brkeng.h
    functionUses: []
    functionsReached:
    - ICULanguageBreakFactory
    linkageType: ''
    returnType: class
    signature: 'class ICULanguageBreakFactory : public LanguageBreakFactory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PatternProps
      Src: /src/icu/source/common/patternprops.h:92,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 93
    functionName: PatternProps
    functionSourceFile: /src/icu/source/common/patternprops.h
    functionUses: []
    functionsReached:
    - PatternProps
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API PatternProps '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _UTRIE_GET_RAW
      Src: /src/icu/source/common/utrie.h:188,1
    - Dst: _UTRIE_GET_RAW
      Src: /src/icu/source/common/utrie.h:193,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 197
    functionName: enum
    functionSourceFile: /src/icu/source/common/utrie.h
    functionUses: []
    functionsReached:
    - _UTRIE_GET_RAW
    linkageType: ''
    returnType: U_CDECL_BEGIN
    signature: 'U_CDECL_BEGIN /** * \file * * This is a common implementation of a
      "folded" trie. * It is a kind of compressed, serializable table of 16- or 32-bit
      values associated with * Unicode code points (0..0x10ffff). * * This implementation
      is optimized for getting values while walking forward * through a UTF-16 string.
      * Therefore, the simplest and fastest access macros are the * _FROM_LEAD() and
      _FROM_OFFSET_TRAIL() macros. * * The _FROM_BMP() macros are a little more complicated;
      they get values * even for lead surrogate code _points_, while the _FROM_LEAD()
      macros * get special "folded" values for lead surrogate code _units_ if * there
      is relevant data associated with them. * From such a folded value, an offset
      needs to be extracted to supply * to the _FROM_OFFSET_TRAIL() macros. * * Most
      of the more complex (and more convenient) functions/macros call a callback function
      * to get that offset from the folded value for a lead surrogate unit. */ /**
      * Trie constants, defining shift widths, index array lengths, etc. */ enum '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U16_IS_SURROGATE
      Src: /src/icu/source/common/utrie.h:241,1
    - Dst: _UTRIE_GET_RAW
      Src: /src/icu/source/common/utrie.h:243,1
    - Dst: U16_IS_SURROGATE_LEAD
      Src: /src/icu/source/common/utrie.h:244,1
    - Dst: U16_IS_LEAD
      Src: /src/icu/source/common/utrie.h:246,1
    - Dst: _UTRIE_GET_FROM_PAIR
      Src: /src/icu/source/common/utrie.h:249,1
    - Dst: _UTRIE_GET_RAW
      Src: /src/icu/source/common/utrie.h:253,1
    - Dst: _UTRIE_GET_RAW
      Src: /src/icu/source/common/utrie.h:258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 8
    argNames:
    - trie
    - data
    - start
    - src
    - c
    - c2
    - result
    - resultType
    argTypes:
    - trie
    - data
    - start
    - src
    - c
    - c2
    - result
    - resultType
    constantsTouched: []
    func_position:
      end: 260
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 260
    functionName: _UTRIE_PREVIOUS
    functionSourceFile: /src/icu/source/common/utrie.h
    functionUses: []
    functionsReached:
    - U16_IS_SURROGATE
    - U16_IS_LEAD
    - _UTRIE_GET_FROM_PAIR
    - U16_IS_SURROGATE_LEAD
    - _UTRIE_GET_RAW
    linkageType: ''
    returnType: UPRV_BLOCK_MACRO_END
    signature: 'UPRV_BLOCK_MACRO_END /** Internal previous: get the previous code
      point (c, c2) and its data */ #define _UTRIE_PREVIOUS(trie, data, start, src,
      c, c2, result, resultType) UPRV_BLOCK_MACRO_BEGIN '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: appendNumber
      Src: /src/icu/source/common/util.h:44,1
    - Dst: ICU_Utility
      Src: /src/icu/source/common/util.h:250,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 251
    functionName: ICU_Utility
    functionSourceFile: /src/icu/source/common/util.h
    functionUses: []
    functionsReached:
    - ICU_Utility
    - appendNumber
    linkageType: ''
    returnType: class
    signature: 'class U_COMMON_API ICU_Utility /* not : public UObject because all
      methods are static */ '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: makeBogusString
    functionSourceFile: /src/icu/source/common/util.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: 'static inline UnicodeString makeBogusString() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteSinkUtil
      Src: /src/icu/source/common/bytesinkutil.h:20,1
    - Dst: appendCodePoint
      Src: /src/icu/source/common/bytesinkutil.h:38,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 39
    functionName: ByteSinkUtil
    functionSourceFile: /src/icu/source/common/bytesinkutil.h
    functionUses: []
    functionsReached:
    - ByteSinkUtil
    - appendCodePoint
    linkageType: ''
    returnType: class
    signature: 'class U_COMMON_API ByteSinkUtil '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/common/bytesinkutil.h:47,1
    - Dst: appendNonEmptyUnchanged
      Src: /src/icu/source/common/bytesinkutil.h:48,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 6
    argNames:
    - s
    - length
    - sink
    - options
    - edits
    - errorCode
    argTypes:
    - uint8_t*
    - int32_t
    - ByteSink
    - uint32_t
    - Edits*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: appendUnchanged
    functionSourceFile: /src/icu/source/common/bytesinkutil.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - appendNonEmptyUnchanged
    linkageType: ''
    returnType: UBool
    signature: 'static UBool appendUnchanged(const uint8_t *s, int32_t length, ByteSink
      &sink, uint32_t options, Edits *edits, UErrorCode &errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleLocaleKeyFactory
      Src: /src/icu/source/common/servloc.h:308,1
    - Dst: debug
      Src: /src/icu/source/common/servloc.h:351,1
    - Dst: SimpleLocaleKeyFactory
      Src: /src/icu/source/common/servloc.h:313,1
    - Dst: updateVisibleIDs
      Src: /src/icu/source/common/servloc.h:332,1
    - Dst: debugClass
      Src: /src/icu/source/common/servloc.h:352,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 355
    functionName: kind
    functionSourceFile: /src/icu/source/common/servloc.h
    functionUses: []
    functionsReached:
    - SimpleLocaleKeyFactory
    - updateVisibleIDs
    - debug
    - debugClass
    linkageType: ''
    returnType: virtual
    signature: 'virtual int32_t kind() const; /** * Return the canonicalID. */ virtual
      UnicodeString& canonicalID(UnicodeString& result) const; /** * Return the currentID.
      */ virtual UnicodeString& currentID(UnicodeString& result) const; /** * Return
      the (canonical) current descriptor, or null if no current id. */ virtual UnicodeString&
      currentDescriptor(UnicodeString& result) const; /** * Convenience method to
      return the locale corresponding to the (canonical) original ID. */ virtual Locale&
      canonicalLocale(Locale& result) const; /** * Convenience method to return the
      locale corresponding to the (canonical) current ID. */ virtual Locale& currentLocale(Locale&
      result) const; /** * If the key has a fallback, modify the key and return true,
      * otherwise return false.</p> * * <p>First falls back through the primary ID,
      then through * the fallbackID. The final fallback is the empty string, * unless
      the primary id was the empty string, in which case * there is no fallback. */
      virtual UBool fallback(); /** * Return true if a key created from id matches,
      or would eventually * fallback to match, the canonical ID of this key. */ virtual
      UBool isFallbackOf(const UnicodeString& id) const; public: /** * UObject boilerplate.
      */ static UClassID U_EXPORT2 getStaticClassID(); virtual UClassID getDynamicClassID()
      const; /** * Destructor. */ virtual ~LocaleKey(); #ifdef SERVICE_DEBUG public:
      virtual UnicodeString& debug(UnicodeString& result) const; virtual UnicodeString&
      debugClass(UnicodeString& result) const;#endif};/* ******************************************************************
      *//** * A subclass of ICUServiceFactory that uses LocaleKeys, and is able to
      * ''cover'' more specific locales with more general locales that it * supports.
      * * <p>Coverage may be either of the values VISIBLE or INVISIBLE. * * <p>''Visible''
      indicates that the specific locale(s) supported by * the factory are registered
      in getSupportedIDs, ''Invisible'' * indicates that they are not. * * <p>Localization
      of visible ids is handled * by the handling factory, regardless of kind. */class
      U_COMMON_API LocaleKeyFactory : public ICUServiceFactory {protected: const UnicodeString
      _name; const int32_t _coverage; public: enum { /** * Coverage value indicating
      that the factory makes * its locales visible, and does not cover more specific
      * locales. */ VISIBLE = 0, /** * Coverage value indicating that the factory
      does not make * its locales visible, and does not cover more specific * locales.
      */ INVISIBLE = 1 }; /** * Destructor. */ virtual ~LocaleKeyFactory(); protected:
      /** * Constructor used by subclasses. */ LocaleKeyFactory(int32_t coverage);
      /** * Constructor used by subclasses. */ LocaleKeyFactory(int32_t coverage,
      const UnicodeString& name); /** * Implement superclass abstract method. This
      checks the currentID of * the key against the supported IDs, and passes the
      canonicalLocale and * kind off to handleCreate (which subclasses must implement).
      */ public: virtual UObject* create(const ICUServiceKey& key, const ICUService*
      service, UErrorCode& status) const; protected: virtual UBool handlesKey(const
      ICUServiceKey& key, UErrorCode& status) const;public: /** * Override of superclass
      method. This adjusts the result based * on the coverage rule for this factory.
      */ virtual void updateVisibleIDs(Hashtable& result, UErrorCode& status) const;
      /** * Return a localized name for the locale represented by id. */ virtual UnicodeString&
      getDisplayName(const UnicodeString& id, const Locale& locale, UnicodeString&
      result) const;protected: /** * Utility method used by create(ICUServiceKey,
      ICUService). Subclasses can implement * this instead of create. The default
      returns NULL. */ virtual UObject* handleCreate(const Locale& loc, int32_t kind,
      const ICUService* service, UErrorCode& status) const; /** * Return true if this
      id is one the factory supports (visible or * otherwise). */ // virtual UBool
      isSupportedID(const UnicodeString& id, UErrorCode& status) const; /** * Return
      the set of ids that this factory supports (visible or * otherwise). This can
      be called often and might need to be * cached if it is expensive to create.
      */ virtual const Hashtable* getSupportedIDs(UErrorCode& status) const; public:
      /** * UObject boilerplate. */ static UClassID U_EXPORT2 getStaticClassID();
      virtual UClassID getDynamicClassID() const;#ifdef SERVICE_DEBUG public: virtual
      UnicodeString& debug(UnicodeString& result) const; virtual UnicodeString& debugClass(UnicodeString&
      result) const;#endif};/* ******************************************************************
      *//** * A LocaleKeyFactory that just returns a single object for a kind/locale.
      */class U_COMMON_API SimpleLocaleKeyFactory : public LocaleKeyFactory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/icu/source/common/servloc.h:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - descriptor
    - actualReturn
    - status
    argTypes:
    - UnicodeString
    - UnicodeString*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 456
    functionName: get
    functionSourceFile: /src/icu/source/common/servloc.h
    functionUses: []
    functionsReached:
    - get
    linkageType: ''
    returnType: UObject*
    signature: 'UObject * get(const UnicodeString& descriptor, UnicodeString* actualReturn,
      UErrorCode& status) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/icu/source/common/servloc.h:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - descriptor
    - status
    argTypes:
    - UnicodeString
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: get
    functionSourceFile: /src/icu/source/common/servloc.h
    functionUses: []
    functionsReached:
    - get
    linkageType: ''
    returnType: UObject*
    signature: 'UObject * get(const UnicodeString& descriptor, UErrorCode& status)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printStates
      Src: /src/icu/source/common/rbbitblb.h:158,1
    - Dst: printReverseTable
      Src: /src/icu/source/common/rbbitblb.h:160,1
    - Dst: printRuleStatusTable
      Src: /src/icu/source/common/rbbitblb.h:159,1
    - Dst: RBBIStateDescriptor
      Src: /src/icu/source/common/rbbitblb.h:202,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 207
    functionName: getTableSize
    functionSourceFile: /src/icu/source/common/rbbitblb.h
    functionUses: []
    functionsReached:
    - printRuleStatusTable
    - RBBIStateDescriptor
    - printStates
    - printReverseTable
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getTableSize() const; /** Fill in the runtime state table.
      Sufficient memory must exist at the specified location. */ void exportTable(void
      *where); /** * Find duplicate (redundant) character classes. Begin looking with
      categories.first. * Duplicate, if found are returned in the categories parameter.
      * This is an iterator-like function, used to identify character classes * (state
      table columns) that can be eliminated. * @param categories in/out parameter,
      specifies where to start looking for duplicates, * and returns the first pair
      of duplicates found, if any. * @return true if duplicate char classes were found,
      false otherwise. */ bool findDuplCharClassFrom(IntPair *categories); /** Remove
      a column from the state table. Used when two character categories * have been
      found equivalent, and merged together, to eliminate the uneeded table column.
      */ void removeColumn(int32_t column); /** * Check for, and remove dupicate states
      (table rows). * @return the number of states removed. */ int32_t removeDuplicateStates();
      /** Build the safe reverse table from the already-constructed forward table.
      */ void buildSafeReverseTable(UErrorCode &status); /** Return the runtime size
      in bytes of the built safe reverse state table. */ int32_t getSafeTableSize()
      const; /** Fill in the runtime safe state table. Sufficient memory must exist
      at the specified location. */ void exportSafeTable(void *where); private: void
      calcNullable(RBBINode *n); void calcFirstPos(RBBINode *n); void calcLastPos(RBBINode
      *n); void calcFollowPos(RBBINode *n); void calcChainedFollowPos(RBBINode *n);
      void bofFixup(); void buildStateTable(); void flagAcceptingStates(); void flagLookAheadStates();
      void flagTaggedStates(); void mergeRuleStatusVals(); /** * Merge redundant state
      table columns, eliminating character classes with identical behavior. * Done
      after the state tables are generated, just before converting to their run-time
      format. */ int32_t mergeColumns(); void addRuleRootNodes(UVector *dest, RBBINode
      *node); /** * Find duplicate (redundant) states, beginning at the specified
      pair, * within this state table. This is an iterator-like function, used to
      * identify states (state table rows) that can be eliminated. * @param states
      in/out parameter, specifies where to start looking for duplicates, * and returns
      the first pair of duplicates found, if any. * @return true if duplicate states
      were found, false otherwise. */ bool findDuplicateState(IntPair *states); /**
      Remove a duplicate state. * @param duplStates The duplicate states. The first
      is kept, the second is removed. * All references to the second in the state
      table are retargeted * to the first. */ void removeState(IntPair duplStates);
      /** Find the next duplicate state in the safe reverse table. An iterator function.
      * @param states in/out parameter, specifies where to start looking for duplicates,
      * and returns the first pair of duplicates found, if any. * @return true if
      a duplicate pair of states was found. */ bool findDuplicateSafeState(IntPair
      *states); /** Remove a duplicate state from the safe table. * @param duplStates
      The duplicate states. The first is kept, the second is removed. * All references
      to the second in the state table are retargeted * to the first. */ void removeSafeState(IntPair
      duplStates); // Set functions for UVector. // TODO: make a USet subclass of
      UVector void setAdd(UVector *dest, UVector *source); UBool setEquals(UVector
      *a, UVector *b); void sortedAdd(UVector **dest, int32_t val); public:#ifdef
      RBBI_DEBUG void printSet(UVector *s); void printPosSets(RBBINode *n /* = NULL*/);
      void printStates(); void printRuleStatusTable(); void printReverseTable(); #else
      #define printSet(s) #define printPosSets(n) #define printStates() #define printRuleStatusTable()
      #define printReverseTable()#endifprivate: RBBIRuleBuilder *fRB; RBBINode *&fTree;
      // The root node of the parse tree to build a // table for. UErrorCode *fStatus;
      /** State Descriptors, UVector<RBBIStateDescriptor> */ UVector *fDStates; //
      D states (Aho''s terminology) // Index is state number // Contents are RBBIStateDescriptor
      pointers. /** Synthesized safe table, UVector of UnicodeString, one string per
      table row. */ UVector *fSafeTable; RBBITableBuilder(const RBBITableBuilder &other);
      // forbid copying of this class RBBITableBuilder &operator=(const RBBITableBuilder
      &other); // forbid copying of this class }; // // RBBIStateDescriptor - The
      DFA is constructed as a set of these descriptors, // one for each state. class
      RBBIStateDescriptor : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: LocaleUtility
    functionSourceFile: /src/icu/source/common/locutil.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API LocaleUtility '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indexOf
      Src: /src/icu/source/common/uvector.h:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 362
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 362
    functionName: contains
    functionSourceFile: /src/icu/source/common/uvector.h
    functionUses: []
    functionsReached:
    - indexOf
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UVector:: contains(void* obj) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: size
    functionSourceFile: /src/icu/source/common/uvector.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UVector:: size(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elementAt
      Src: /src/icu/source/common/uvector.h:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 370
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 370
    functionName: firstElement
    functionSourceFile: /src/icu/source/common/uvector.h
    functionUses: []
    functionsReached:
    - elementAt
    linkageType: ''
    returnType: void*
    signature: 'inline void * UVector::firstElement(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elementAti
      Src: /src/icu/source/common/uvector.h:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: lastElementi
    functionSourceFile: /src/icu/source/common/uvector.h
    functionUses: []
    functionsReached:
    - elementAti
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UVector:: lastElementi(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isEmpty
      Src: /src/icu/source/common/uvector.h:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 392
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 392
    functionName: empty
    functionSourceFile: /src/icu/source/common/uvector.h
    functionUses: []
    functionsReached:
    - isEmpty
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UStack:: empty(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lastElement
      Src: /src/icu/source/common/uvector.h:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 396
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 396
    functionName: peek
    functionSourceFile: /src/icu/source/common/uvector.h
    functionUses: []
    functionsReached:
    - lastElement
    linkageType: ''
    returnType: void*
    signature: 'inline void * UStack::peek(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addElement
      Src: /src/icu/source/common/uvector.h:403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - status
    argTypes:
    - void*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: push
    functionSourceFile: /src/icu/source/common/uvector.h
    functionUses: []
    functionsReached:
    - addElement
    linkageType: ''
    returnType: void*
    signature: 'inline void * UStack::push(void* obj, UErrorCode &status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UVector
      Src: /src/icu/source/common/uvector.h:94,1
    - Dst: UVector
      Src: /src/icu/source/common/uvector.h:98,1
    - Dst: UVector
      Src: /src/icu/source/common/uvector.h:100,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 277
    functionName: UVector
    functionSourceFile: /src/icu/source/common/uvector.h
    functionUses: []
    functionsReached:
    - UVector
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API UVector : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 358
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 358
    functionName: isEmpty
    functionSourceFile: /src/icu/source/common/uvector.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UVector:: isEmpty(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indexOf
      Src: /src/icu/source/common/uvector.h:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 366
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 366
    functionName: contains
    functionSourceFile: /src/icu/source/common/uvector.h
    functionUses: []
    functionsReached:
    - indexOf
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UVector:: contains(int32_t obj) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elementAt
      Src: /src/icu/source/common/uvector.h:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 374
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 374
    functionName: lastElement
    functionSourceFile: /src/icu/source/common/uvector.h
    functionUses: []
    functionsReached:
    - elementAt
    linkageType: ''
    returnType: void*
    signature: 'inline void * UVector::lastElement(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elementAt
      Src: /src/icu/source/common/uvector.h:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 382
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 382
    functionName: operator
    functionSourceFile: /src/icu/source/common/uvector.h
    functionUses: []
    functionsReached:
    - elementAt
    linkageType: ''
    returnType: void*
    signature: 'inline void * UVector::operator[](int32_t index) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lastElementi
      Src: /src/icu/source/common/uvector.h:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: peeki
    functionSourceFile: /src/icu/source/common/uvector.h
    functionUses: []
    functionsReached:
    - lastElementi
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UStack:: peeki(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addElement
      Src: /src/icu/source/common/uvector.h:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - i
    - status
    argTypes:
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 410
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 410
    functionName: push
    functionSourceFile: /src/icu/source/common/uvector.h
    functionUses: []
    functionsReached:
    - addElement
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UStack:: push(int32_t i, UErrorCode &status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: other
    functionSourceFile: /src/icu/source/common/uvector.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UVector::operator!=(const UVector& other ) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 118
    functionName: PropNameData
    functionSourceFile: /src/icu/source/common/propname.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN class PropNameData '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: isEmpty
    functionSourceFile: /src/icu/source/common/charstr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isEmpty() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringPiece
      Src: /src/icu/source/common/charstr.h:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: toStringPiece
    functionSourceFile: /src/icu/source/common/charstr.h
    functionUses: []
    functionsReached:
    - StringPiece
    linkageType: ''
    returnType: StringPiece
    signature: 'StringPiece toStringPiece() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: length
    functionSourceFile: /src/icu/source/common/charstr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t length() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_memcmp
      Src: /src/icu/source/common/charstr.h:91,1
    - Dst: data
      Src: /src/icu/source/common/charstr.h:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: StringPiece
    functionSourceFile: /src/icu/source/common/charstr.h
    functionUses: []
    functionsReached:
    - uprv_memcmp
    - data
    linkageType: ''
    returnType: bool
    signature: 'bool operator==( StringPiece other) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: data
    functionSourceFile: /src/icu/source/common/charstr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *data() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - index
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: operator
    functionSourceFile: /src/icu/source/common/charstr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char operator[](int32_t index) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: StringPiece
    functionSourceFile: /src/icu/source/common/charstr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'bool operator!=( StringPiece other) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: data
    functionSourceFile: /src/icu/source/common/charstr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'char *data() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: UConverterTable
    functionSourceFile: /src/icu/source/common/ucnv_bld.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_CDECL_BEGIN
    signature: 'U_CDECL_BEGIN /* We must declare the following as ''extern "C"'' so
      that if ucnv itself is compiled under C++, the linkage of the funcptrs will
      work. */ union UConverterTable '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: getParadigmLSRsLength
    functionSourceFile: /src/icu/source/common/locdistance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getParadigmLSRsLength() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: getDefaultDemotionPerDesiredLocale
    functionSourceFile: /src/icu/source/common/locdistance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getDefaultDemotionPerDesiredLocale() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: getDefaultScriptDistance
    functionSourceFile: /src/icu/source/common/locdistance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getDefaultScriptDistance() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: getDefaultRegionDistance
    functionSourceFile: /src/icu/source/common/locdistance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getDefaultRegionDistance() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - lsr
    argTypes:
    - LSR
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: partitionsForRegion
    functionSourceFile: /src/icu/source/common/locdistance.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char *partitionsForRegion(const LSR &lsr) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: res_getStringNoTrace
      Src: /src/icu/source/common/uresdata.h:485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 4
    argNames:
    - traceInfo
    - pResData
    - res
    - pLength
    argTypes:
    - ResourceTracer
    - ResourceData*
    - Resource
    - int32_t*
    constantsTouched: []
    func_position:
      end: 486
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 486
    functionName: res_getString
    functionSourceFile: /src/icu/source/common/uresdata.h
    functionUses: []
    functionsReached:
    - res_getStringNoTrace
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN*
    signature: 'U_NAMESPACE_BEGIN inline const UChar * res_getString(const ResourceTracer&
      traceInfo, const ResourceData *pResData, Resource res, int32_t *pLength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: res_getIntVectorNoTrace
      Src: /src/icu/source/common/uresdata.h:497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 4
    argNames:
    - traceInfo
    - pResData
    - res
    - pLength
    argTypes:
    - ResourceTracer
    - ResourceData*
    - Resource
    - int32_t*
    constantsTouched: []
    func_position:
      end: 498
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 498
    functionName: res_getIntVector
    functionSourceFile: /src/icu/source/common/uresdata.h
    functionUses: []
    functionsReached:
    - res_getIntVectorNoTrace
    linkageType: ''
    returnType: int32_t*
    signature: 'inline const int32_t * res_getIntVector(const ResourceTracer& traceInfo,
      const ResourceData *pResData, Resource res, int32_t *pLength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - ResourceData*
    constantsTouched: []
    func_position:
      end: 519
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 519
    functionName: setData
    functionSourceFile: /src/icu/source/common/uresdata.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setData(const ResourceData *data) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 526
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 526
    functionName: getData
    functionSourceFile: /src/icu/source/common/uresdata.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: ResourceData
    signature: 'const ResourceData & getData() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RES_GET_INT_NO_TRACE
      Src: /src/icu/source/common/uresdata.h:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - traceInfo
    - res
    argTypes:
    - ResourceTracer
    - Resource
    constantsTouched: []
    func_position:
      end: 503
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 503
    functionName: res_getInt
    functionSourceFile: /src/icu/source/common/uresdata.h
    functionUses: []
    functionsReached:
    - RES_GET_INT_NO_TRACE
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t res_getInt(const ResourceTracer& traceInfo, Resource
      res) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: res_getBinaryNoTrace
      Src: /src/icu/source/common/uresdata.h:491,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 4
    argNames:
    - traceInfo
    - pResData
    - res
    - pLength
    argTypes:
    - ResourceTracer
    - ResourceData*
    - Resource
    - int32_t*
    constantsTouched: []
    func_position:
      end: 492
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 492
    functionName: res_getBinary
    functionSourceFile: /src/icu/source/common/uresdata.h
    functionUses: []
    functionsReached:
    - res_getBinaryNoTrace
    linkageType: ''
    returnType: uint8_t*
    signature: 'inline const uint8_t * res_getBinary(const ResourceTracer& traceInfo,
      const ResourceData *pResData, Resource res, int32_t *pLength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RES_GET_UINT_NO_TRACE
      Src: /src/icu/source/common/uresdata.h:507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - traceInfo
    - res
    argTypes:
    - ResourceTracer
    - Resource
    constantsTouched: []
    func_position:
      end: 508
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 508
    functionName: res_getUInt
    functionSourceFile: /src/icu/source/common/uresdata.h
    functionUses: []
    functionsReached:
    - RES_GET_UINT_NO_TRACE
    linkageType: ''
    returnType: uint32_t
    signature: 'inline uint32_t res_getUInt(const ResourceTracer& traceInfo, Resource
      res) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - r
    - traceInfo
    argTypes:
    - Resource
    - ResourceTracer
    constantsTouched: []
    func_position:
      end: 524
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 524
    functionName: setResource
    functionSourceFile: /src/icu/source/common/uresdata.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setResource(Resource r, ResourceTracer&& traceInfo) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 338
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 338
    functionName: hasBoundaryBefore
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UBool hasBoundaryBefore(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 339
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 339
    functionName: hasBoundaryAfter
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UBool hasBoundaryAfter(UChar32 c) const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/common/norm2allmodes.h:151,1
    - Dst: spanQuickCheckYes
      Src: /src/icu/source/common/norm2allmodes.h:160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - s
    - errorCode
    argTypes:
    - UnicodeString
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 161
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 161
    functionName: isNormalized
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - spanQuickCheckYes
    linkageType: ''
    returnType: virtual
    signature: 'virtual UBool isNormalized(const UnicodeString &s, UErrorCode &errorCode)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 217
    functionName: DecomposeNormalizer2
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class DecomposeNormalizer2 : public Normalizer2WithImpl '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/common/norm2allmodes.h:236,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - options
    - src
    - sink
    - edits
    - errorCode
    argTypes:
    - uint32_t
    - StringPiece
    - ByteSink
    - Edits*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 246
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 246
    functionName: normalizeUTF8
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    linkageType: ''
    returnType: void
    signature: 'void normalizeUTF8(uint32_t options, StringPiece src, ByteSink &sink,
      Edits *edits, UErrorCode &errorCode) const U_OVERRIDE '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: getQuickCheck
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UNormalizationCheckResult getQuickCheck(UChar32 c) const U_OVERRIDE '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: hasBoundaryAfter
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UBool hasBoundaryAfter(UChar32 c) const U_OVERRIDE '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Norm2AllModes
      Src: /src/icu/source/common/norm2allmodes.h:344,1
    - Dst: fcd
      Src: /src/icu/source/common/norm2allmodes.h:345,1
    - Dst: decomp
      Src: /src/icu/source/common/norm2allmodes.h:345,1
    - Dst: impl
      Src: /src/icu/source/common/norm2allmodes.h:345,1
    - Dst: comp
      Src: /src/icu/source/common/norm2allmodes.h:345,1
    - Dst: fcc
      Src: /src/icu/source/common/norm2allmodes.h:345,1
    - Dst: Norm2AllModes
      Src: /src/icu/source/common/norm2allmodes.h:346,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 363
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 363
    functionName: UMemory
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached:
    - Norm2AllModes
    - fcc
    - fcd
    - comp
    - decomp
    - impl
    linkageType: ''
    returnType: struct Norm2AllModes
    signature: 'struct Norm2AllModes : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - UChar32
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: getQuickCheck
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UNormalizationCheckResult getQuickCheck(UChar32) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 216
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 216
    functionName: isInert
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UBool isInert(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 6
    argNames:
    - src
    - limit
    - doNormalize
    - safeMiddle
    - buffer
    - errorCode
    argTypes:
    - UChar*
    - UChar*
    - UBool
    - UnicodeString
    - ReorderingBuffer
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 253
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 253
    functionName: normalizeAndAppend
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual void normalizeAndAppend(const UChar *src, const UChar *limit,
      UBool doNormalize, UnicodeString &safeMiddle, ReorderingBuffer &buffer, UErrorCode
      &errorCode) const U_OVERRIDE '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: hasBoundaryBefore
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UBool hasBoundaryBefore(UChar32 c) const U_OVERRIDE '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: isInert
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UBool isInert(UChar32 c) const U_OVERRIDE '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - UChar32
    - UChar32
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: composePair
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UChar32 composePair(UChar32 a, UChar32 b) const '
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/common/norm2allmodes.h:282,1
    - Dst: Normalizer2WithImpl
      Src: /src/icu/source/common/norm2allmodes.h:222,1
    - Dst: U_FAILURE
      Src: /src/icu/source/common/norm2allmodes.h:236,1
    - Dst: U_FAILURE
      Src: /src/icu/source/common/norm2allmodes.h:274,1
    - Dst: U_FAILURE
      Src: /src/icu/source/common/norm2allmodes.h:257,1
    - Dst: onlyContiguous
      Src: /src/icu/source/common/norm2allmodes.h:222,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 313
    functionName: Normalizer2WithImpl
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - onlyContiguous
    - Normalizer2WithImpl
    linkageType: ''
    returnType: class
    signature: 'class ComposeNormalizer2 : public Normalizer2WithImpl '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 341
    functionName: Normalizer2WithImpl
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class FCDNormalizer2 : public Normalizer2WithImpl '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - src
    - limit
    - errorCode
    argTypes:
    - UChar*
    - UChar*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: spanQuickCheckYes
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual*
    signature: 'virtual const UChar * spanQuickCheckYes(const UChar *src, const UChar
      *limit, UErrorCode &errorCode) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: getCombiningClass
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual uint8_t getCombiningClass(UChar32 c) const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/common/norm2allmodes.h:168,1
    - Dst: spanQuickCheckYes
      Src: /src/icu/source/common/norm2allmodes.h:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - s
    - errorCode
    argTypes:
    - UnicodeString
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: spanQuickCheckYes
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - spanQuickCheckYes
    linkageType: ''
    returnType: virtual
    signature: 'virtual int32_t spanQuickCheckYes(const UnicodeString &s, UErrorCode
      &errorCode) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 340
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 340
    functionName: isInert
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UBool isInert(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 6
    argNames:
    - src
    - limit
    - doNormalize
    - safeMiddle
    - buffer
    - errorCode
    argTypes:
    - UChar*
    - UChar*
    - UBool
    - UnicodeString
    - ReorderingBuffer
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: normalizeAndAppend
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual void normalizeAndAppend(const UChar *src, const UChar *limit,
      UBool doNormalize, UnicodeString &safeMiddle, ReorderingBuffer &buffer, UErrorCode
      &errorCode) const '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - c
    - decomposition
    argTypes:
    - UChar32
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 122
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 122
    functionName: getDecomposition
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UBool getDecomposition(UChar32 c, UnicodeString &decomposition)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 6
    argNames:
    - src
    - limit
    - doNormalize
    - safeMiddle
    - buffer
    - errorCode
    argTypes:
    - UChar*
    - UChar*
    - UBool
    - UnicodeString
    - ReorderingBuffer
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: normalizeAndAppend
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual void normalizeAndAppend(const UChar *src, const UChar *limit,
      UBool doNormalize, UnicodeString &safeMiddle, ReorderingBuffer &buffer, UErrorCode
      &errorCode) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: getQuickCheck
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UNormalizationCheckResult getQuickCheck(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 214
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 214
    functionName: hasBoundaryBefore
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UBool hasBoundaryBefore(UChar32 c) const '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/common/norm2allmodes.h:257,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - s
    - errorCode
    argTypes:
    - UnicodeString
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 271
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 271
    functionName: isNormalized
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    linkageType: ''
    returnType: virtual
    signature: 'virtual UBool isNormalized(const UnicodeString &s, UErrorCode &errorCode)
      const U_OVERRIDE '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - src
    - limit
    - UErrorCode
    - '&'
    argTypes:
    - UChar*
    - UChar*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: spanQuickCheckYes
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual*
    signature: 'virtual const UChar * spanQuickCheckYes(const UChar *src, const UChar
      *limit, UErrorCode &) const U_OVERRIDE '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - c
    - decomposition
    argTypes:
    - UChar32
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 137
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 137
    functionName: getRawDecomposition
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UBool getRawDecomposition(UChar32 c, UnicodeString &decomposition)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - src
    - limit
    - errorCode
    argTypes:
    - UChar*
    - UChar*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: spanQuickCheckYes
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual*
    signature: 'virtual const UChar * spanQuickCheckYes(const UChar *src, const UChar
      *limit, UErrorCode &errorCode) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: hasBoundaryAfter
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UBool hasBoundaryAfter(UChar32 c) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/common/norm2allmodes.h:274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - sp
    - errorCode
    argTypes:
    - StringPiece
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 279
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 279
    functionName: isNormalizedUTF8
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    linkageType: ''
    returnType: virtual
    signature: 'virtual UBool isNormalizedUTF8(StringPiece sp, UErrorCode &errorCode)
      const U_OVERRIDE '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/common/norm2allmodes.h:41,1
    - Dst: normalize
      Src: /src/icu/source/common/norm2allmodes.h:54,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - src
    - dest
    - errorCode
    argTypes:
    - UnicodeString
    - UnicodeString
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 57
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 57
    functionName: normalize
    functionSourceFile: /src/icu/source/common/norm2allmodes.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - normalize
    linkageType: ''
    returnType: virtual
    signature: 'virtual UnicodeString & normalize(const UnicodeString &src, UnicodeString
      &dest, UErrorCode &errorCode) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/common/unistrappender.h:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - UChar
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: append
    functionSourceFile: /src/icu/source/common/unistrappender.h
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    linkageType: ''
    returnType: void
    signature: 'inline void append(UChar x) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: flush
    functionSourceFile: /src/icu/source/common/unistrappender.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void flush() '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/common/unistrappender.h:56,1
    - Dst: U16_APPEND_UNSAFE
      Src: /src/icu/source/common/unistrappender.h:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - x
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: append
    functionSourceFile: /src/icu/source/common/unistrappender.h
    functionUses: []
    functionsReached:
    - UPRV_LENGTHOF
    - U16_APPEND_UNSAFE
    linkageType: ''
    returnType: void
    signature: 'inline void append(UChar32 x) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CjkBreakEngine
      Src: /src/icu/source/common/dictbe.h:372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 394
    functionName: DictionaryBreakEngine
    functionSourceFile: /src/icu/source/common/dictbe.h
    functionUses: []
    functionsReached:
    - CjkBreakEngine
    linkageType: ''
    returnType: class
    signature: 'class CjkBreakEngine : public DictionaryBreakEngine '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LaoBreakEngine
      Src: /src/icu/source/common/dictbe.h:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 218
    functionName: DictionaryBreakEngine
    functionSourceFile: /src/icu/source/common/dictbe.h
    functionUses: []
    functionsReached:
    - LaoBreakEngine
    linkageType: ''
    returnType: class
    signature: 'class LaoBreakEngine : public DictionaryBreakEngine '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DictionaryBreakEngine
      Src: /src/icu/source/common/dictbe.h:49,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 105
    functionName: DictionaryBreakEngine
    functionSourceFile: /src/icu/source/common/dictbe.h
    functionUses: []
    functionsReached:
    - DictionaryBreakEngine
    linkageType: ''
    returnType: class
    signature: 'class DictionaryBreakEngine : public LanguageBreakEngine '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThaiBreakEngine
      Src: /src/icu/source/common/dictbe.h:140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 162
    functionName: DictionaryBreakEngine
    functionSourceFile: /src/icu/source/common/dictbe.h
    functionUses: []
    functionsReached:
    - ThaiBreakEngine
    linkageType: ''
    returnType: class
    signature: 'class ThaiBreakEngine : public DictionaryBreakEngine '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BurmeseBreakEngine
      Src: /src/icu/source/common/dictbe.h:252,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 274
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 274
    functionName: DictionaryBreakEngine
    functionSourceFile: /src/icu/source/common/dictbe.h
    functionUses: []
    functionsReached:
    - BurmeseBreakEngine
    linkageType: ''
    returnType: class
    signature: 'class BurmeseBreakEngine : public DictionaryBreakEngine '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KhmerBreakEngine
      Src: /src/icu/source/common/dictbe.h:308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 330
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 330
    functionName: DictionaryBreakEngine
    functionSourceFile: /src/icu/source/common/dictbe.h
    functionUses: []
    functionsReached:
    - KhmerBreakEngine
    linkageType: ''
    returnType: class
    signature: 'class KhmerBreakEngine : public DictionaryBreakEngine '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: UElement
    functionSourceFile: /src/icu/source/common/uelement.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_CDECL_BEGIN
    signature: 'U_CDECL_BEGIN /** * A UVector element, or a key or value within a
      UHashtable. * It may be either a 32-bit integral value or an opaque void* pointer.
      * The void* pointer may be smaller than 32 bits (e.g. 24 bits) * or may be larger
      (e.g. 64 bits). * * Because a UElement is the size of a native pointer or a
      32-bit * integer, we pass it around by value. */ union UElement '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 87
    functionName: hashCode
    functionSourceFile: /src/icu/source/common/unifiedcache.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual int32_t hashCode() const = 0; /** * Clones this object polymorphically.
      Caller owns returned value. */ virtual CacheKeyBase *clone() const = 0; /**
      * Equality operator. */ virtual UBool operator == (const CacheKeyBase &other)
      const = 0; /** * Create a new object for this key. Called by cache on cache
      miss. * createObject must add a reference to the object it returns. Note * that
      getting an object from the cache and returning it without calling * removeRef
      on it satisfies this requirement. It can also return NULL * and set status to
      an error. * * @param creationContext the context in which the object is being
      * created. May be NULL. * @param status Implementations can return a failure
      here. * In addition, implementations may return a * non NULL object and set
      a warning status. */ virtual const SharedObject *createObject( const void *creationContext,
      UErrorCode &status) const = 0; /** * Writes a description of this key to buffer
      and returns buffer. Written * description is NULL terminated. */ virtual char
      *writeDescription(char *buffer, int32_t bufSize) const = 0; /** * Inequality
      operator. */ UBool operator != (const CacheKeyBase &other) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: LocaleCacheKey
    functionSourceFile: /src/icu/source/common/unifiedcache.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual ~ LocaleCacheKey() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typeid
      Src: /src/icu/source/common/unifiedcache.h:108,1
    - Dst: uprv_strlen
      Src: /src/icu/source/common/unifiedcache.h:109,1
    - Dst: ustr_hashCharsN
      Src: /src/icu/source/common/unifiedcache.h:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: hashCode
    functionSourceFile: /src/icu/source/common/unifiedcache.h
    functionUses: []
    functionsReached:
    - ustr_hashCharsN
    - typeid
    - uprv_strlen
    linkageType: ''
    returnType: virtual
    signature: 'virtual int32_t hashCode() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashCode
      Src: /src/icu/source/common/unifiedcache.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: hashCode
    functionSourceFile: /src/icu/source/common/unifiedcache.h
    functionUses: []
    functionsReached:
    - hashCode
    linkageType: ''
    returnType: virtual
    signature: 'virtual int32_t hashCode() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: clone
    functionSourceFile: /src/icu/source/common/unifiedcache.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual*
    signature: 'virtual CacheKeyBase *clone() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_strncpy
      Src: /src/icu/source/common/unifiedcache.h:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - buffer
    - bufLen
    argTypes:
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: writeDescription
    functionSourceFile: /src/icu/source/common/unifiedcache.h
    functionUses: []
    functionsReached:
    - uprv_strncpy
    linkageType: ''
    returnType: virtual*
    signature: 'virtual char *writeDescription(char *buffer, int32_t bufLen) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getInstance
      Src: /src/icu/source/common/unifiedcache.h:269,1
    - Dst: U_FAILURE
      Src: /src/icu/source/common/unifiedcache.h:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - loc
    - ptr
    - status
    argTypes:
    - Locale
    - T*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 274
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 274
    functionName: getByLocale
    functionSourceFile: /src/icu/source/common/unifiedcache.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    - getInstance
    linkageType: ''
    returnType: void
    signature: 'void getByLocale( const Locale &loc, const T *&ptr, UErrorCode &status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typeid
      Src: /src/icu/source/common/unifiedcache.h:116,1
    - Dst: uprv_strncpy
      Src: /src/icu/source/common/unifiedcache.h:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - buffer
    - bufLen
    argTypes:
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: writeDescription
    functionSourceFile: /src/icu/source/common/unifiedcache.h
    functionUses: []
    functionsReached:
    - uprv_strncpy
    - typeid
    linkageType: ''
    returnType: virtual*
    signature: 'virtual char *writeDescription(char *buffer, int32_t bufLen) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MessageImpl
      Src: /src/icu/source/common/messageimpl.h:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 58
    functionName: MessageImpl
    functionSourceFile: /src/icu/source/common/messageimpl.h
    functionUses: []
    functionsReached:
    - MessageImpl
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API MessageImpl '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_get
      Src: /src/icu/source/common/loclikelysubtags.h:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: get
    functionSourceFile: /src/icu/source/common/loclikelysubtags.h
    functionUses: []
    functionsReached:
    - uhash_get
    linkageType: ''
    returnType: char*
    signature: 'const char *get(const char *key) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: getDistanceData
    functionSourceFile: /src/icu/source/common/loclikelysubtags.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: LocaleDistanceData
    signature: 'const LocaleDistanceData & getDistanceData() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uhash_put
      Src: /src/icu/source/common/loclikelysubtags.h:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - key
    - value
    - errorCode
    argTypes:
    - char*
    - char*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: put
    functionSourceFile: /src/icu/source/common/loclikelysubtags.h
    functionUses: []
    functionsReached:
    - uhash_put
    linkageType: ''
    returnType: void
    signature: 'void put(const char *key, const char *value, UErrorCode &errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 92
    functionName: LocaleBased
    functionSourceFile: /src/icu/source/common/locbased.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API LocaleBased : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: valid
      Src: /src/icu/source/common/locbased.h:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames:
    - actualAlias
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: actual
    functionSourceFile: /src/icu/source/common/locbased.h
    functionUses: []
    functionsReached:
    - valid
    linkageType: ''
    returnType: LocaleBased
    signature: 'inline LocaleBased ::LocaleBased(char* validAlias, char* actualAlias)
      : valid(validAlias), actual(actualAlias) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - scriptX
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: uprops_mergeScriptCodeOrIndex
    functionSourceFile: /src/icu/source/common/uprops.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'inline uint32_t uprops_mergeScriptCodeOrIndex(uint32_t scriptX) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CharacterProperties
      Src: /src/icu/source/common/uprops.h:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 493
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 493
    functionName: CharacterProperties
    functionSourceFile: /src/icu/source/common/uprops.h
    functionUses: []
    functionsReached:
    - CharacterProperties
    linkageType: ''
    returnType: class
    signature: 'class CharacterProperties '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LSR
      Src: /src/icu/source/common/lsr.h:27,1
    - Dst: region
      Src: /src/icu/source/common/lsr.h:27,1
    - Dst: LSR
      Src: /src/icu/source/common/lsr.h:38,1
    - Dst: script
      Src: /src/icu/source/common/lsr.h:27,1
    - Dst: language
      Src: /src/icu/source/common/lsr.h:27,1
    - Dst: LSR
      Src: /src/icu/source/common/lsr.h:40,1
    - Dst: deleteOwned
      Src: /src/icu/source/common/lsr.h:43,1
    - Dst: setHashCode
      Src: /src/icu/source/common/lsr.h:63,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 67
    functionName: UMemory
    functionSourceFile: /src/icu/source/common/lsr.h
    functionUses: []
    functionsReached:
    - language
    - LSR
    - script
    - setHashCode
    - region
    - deleteOwned
    linkageType: ''
    returnType: LSR
    signature: 'LSR final : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: operator
    functionSourceFile: /src/icu/source/common/lsr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool operator !=(const LSR &other) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: needsStringSpanUTF16
    functionSourceFile: /src/icu/source/common/unisetspan.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool UnicodeSetStringSpan:: needsStringSpanUTF16() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: contains
    functionSourceFile: /src/icu/source/common/unisetspan.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool UnicodeSetStringSpan:: contains(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: needsStringSpanUTF8
    functionSourceFile: /src/icu/source/common/unisetspan.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool UnicodeSetStringSpan:: needsStringSpanUTF8() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 135
    functionName: namespace
    functionSourceFile: /src/icu/source/common/static_unicode_sets.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace unisets '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Mutex
      Src: /src/icu/source/common/mutex.h:57,1
    - Dst: Mutex
      Src: /src/icu/source/common/mutex.h:60,1
    - Dst: umtx_unlock
      Src: /src/icu/source/common/mutex.h:61,1
    - Dst: umtx_lock
      Src: /src/icu/source/common/mutex.h:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 70
    functionName: UMemory
    functionSourceFile: /src/icu/source/common/mutex.h
    functionUses: []
    functionsReached:
    - umtx_unlock
    - umtx_lock
    - Mutex
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API Mutex : public UMemory '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expandCapacity
      Src: /src/icu/source/common/uvectr32.h:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - minimumCapacity
    - status
    argTypes:
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: ensureCapacity
    functionSourceFile: /src/icu/source/common/uvectr32.h
    functionUses: []
    functionsReached:
    - expandCapacity
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UVector32:: ensureCapacity(int32_t minimumCapacity, UErrorCode
      &status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - index
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: elementAti
    functionSourceFile: /src/icu/source/common/uvectr32.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UVector32:: elementAti(int32_t index) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensureCapacity
      Src: /src/icu/source/common/uvectr32.h:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - size
    - status
    argTypes:
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: reserveBlock
    functionSourceFile: /src/icu/source/common/uvectr32.h
    functionUses: []
    functionsReached:
    - ensureCapacity
    linkageType: ''
    returnType: int32_t*
    signature: 'inline int32_t *UVector32::reserveBlock(int32_t size, UErrorCode &status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: size
    functionSourceFile: /src/icu/source/common/uvectr32.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UVector32:: size(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indexOf
      Src: /src/icu/source/common/uvectr32.h:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: contains
    functionSourceFile: /src/icu/source/common/uvectr32.h
    functionUses: []
    functionsReached:
    - indexOf
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UVector32:: contains(int32_t obj) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: other
    functionSourceFile: /src/icu/source/common/uvectr32.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UVector32::operator!=(const UVector32& other ) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isEmpty
      Src: /src/icu/source/common/uvectr32.h:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: empty
    functionSourceFile: /src/icu/source/common/uvectr32.h
    functionUses: []
    functionsReached:
    - isEmpty
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UVector32:: empty(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addElement
      Src: /src/icu/source/common/uvectr32.h:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - i
    - status
    argTypes:
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: push
    functionSourceFile: /src/icu/source/common/uvectr32.h
    functionUses: []
    functionsReached:
    - addElement
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UVector32:: push(int32_t i, UErrorCode &status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UVector32
      Src: /src/icu/source/common/uvectr32.h:71,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 209
    functionName: UVector32
    functionSourceFile: /src/icu/source/common/uvectr32.h
    functionUses: []
    functionsReached:
    - UVector32
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API UVector32 : public UObject '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensureCapacity
      Src: /src/icu/source/common/uvectr32.h:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - elem
    - status
    argTypes:
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: addElement
    functionSourceFile: /src/icu/source/common/uvectr32.h
    functionUses: []
    functionsReached:
    - ensureCapacity
    linkageType: ''
    returnType: void
    signature: 'inline void UVector32:: addElement(int32_t elem, UErrorCode &status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U_ASSERT
      Src: /src/icu/source/common/uvectr32.h:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - size
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: popFrame
    functionSourceFile: /src/icu/source/common/uvectr32.h
    functionUses: []
    functionsReached:
    - U_ASSERT
    linkageType: ''
    returnType: int32_t*
    signature: 'inline int32_t *UVector32::popFrame(int32_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: isEmpty
    functionSourceFile: /src/icu/source/common/uvectr32.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UVector32:: isEmpty(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elementAti
      Src: /src/icu/source/common/uvectr32.h:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: lastElementi
    functionSourceFile: /src/icu/source/common/uvectr32.h
    functionUses: []
    functionsReached:
    - elementAti
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UVector32:: lastElementi(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: getBuffer
    functionSourceFile: /src/icu/source/common/uvectr32.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t*
    signature: 'inline int32_t *UVector32::getBuffer() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lastElementi
      Src: /src/icu/source/common/uvectr32.h:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: peeki
    functionSourceFile: /src/icu/source/common/uvectr32.h
    functionUses: []
    functionsReached:
    - lastElementi
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UVector32:: peeki(void) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 301
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 301
    functionName: popi
    functionSourceFile: /src/icu/source/common/uvectr32.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UVector32:: popi(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: uprv_maximumPtr
      Src: /src/icu/source/common/putilimp.h:549,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - dest
    - capacity
    argTypes:
    - T*
    - int32_t
    constantsTouched: []
    func_position:
      end: 562
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 562
    functionName: pinCapacity
    functionSourceFile: /src/icu/source/common/putilimp.h
    functionUses: []
    functionsReached:
    - uprv_maximumPtr
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t pinCapacity(T *dest, int32_t capacity) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/common/ucasemap_imp.h:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - options
    - errorCode
    argTypes:
    - uint32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: ustrcase_checkTitleAdjustmentOptions
    functionSourceFile: /src/icu/source/common/ucasemap_imp.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool ustrcase_checkTitleAdjustmentOptions(uint32_t options,
      UErrorCode &errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_charType
      Src: /src/icu/source/common/ucasemap_imp.h:86,1
    - Dst: ucase_getType
      Src: /src/icu/source/common/ucasemap_imp.h:87,1
    - Dst: U_MASK
      Src: /src/icu/source/common/ucasemap_imp.h:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: ustrcase_isLNS
    functionSourceFile: /src/icu/source/common/ucasemap_imp.h
    functionUses: []
    functionsReached:
    - u_charType
    - ucase_getType
    - U_MASK
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool ustrcase_isLNS(UChar32 c) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 276
    functionName: GreekUpper
    functionSourceFile: /src/icu/source/common/ucasemap_imp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN namespace GreekUpper '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StackUResourceBundle
      Src: /src/icu/source/common/uresimp.h:120,1
    - Dst: StackUResourceBundle
      Src: /src/icu/source/common/uresimp.h:121,1
    - Dst: StackUResourceBundle
      Src: /src/icu/source/common/uresimp.h:131,1
    - Dst: ref
      Src: /src/icu/source/common/uresimp.h:125,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 136
    functionName: StackUResourceBundle
    functionSourceFile: /src/icu/source/common/uresimp.h
    functionUses: []
    functionsReached:
    - StackUResourceBundle
    - ref
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API StackUResourceBundle '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: getAlias
    functionSourceFile: /src/icu/source/common/uresimp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UResourceBundle*
    signature: 'UResourceBundle * getAlias() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: ref
    functionSourceFile: /src/icu/source/common/uresimp.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UResourceBundle
    signature: 'const UResourceBundle & ref() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 316
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 316
    functionName: getCapacity
    functionSourceFile: /src/icu/source/common/cmemory.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getCapacity() const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/icu/source/common/cmemory.h:298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 299
    functionName: MaybeStackArray
    functionSourceFile: /src/icu/source/common/cmemory.h
    functionUses: []
    functionsReached:
    - resize
    linkageType: ''
    returnType: MaybeStackArray(int32_t newCapacity)
    signature: 'MaybeStackArray(int32_t newCapacity) : MaybeStackArray() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uprv_free
      Src: /src/icu/source/common/cmemory.h:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: adoptInstead
    functionSourceFile: /src/icu/source/common/cmemory.h
    functionUses: []
    functionsReached:
    - uprv_free
    linkageType: ''
    returnType: void
    signature: 'void adoptInstead(T *p) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getAlias
      Src: /src/icu/source/common/cmemory.h:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 326
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 326
    functionName: getArrayLimit
    functionSourceFile: /src/icu/source/common/cmemory.h
    functionUses: []
    functionsReached:
    - getAlias
    linkageType: ''
    returnType: T*
    signature: 'T *getArrayLimit() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - i
    argTypes:
    - ptrdiff_t
    constantsTouched: []
    func_position:
      end: 335
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 335
    functionName: operator
    functionSourceFile: /src/icu/source/common/cmemory.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: 'const T & operator[](ptrdiff_t i) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uprv_free
      Src: /src/icu/source/common/cmemory.h:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: releaseArray
    functionSourceFile: /src/icu/source/common/cmemory.h
    functionUses: []
    functionsReached:
    - uprv_free
    linkageType: ''
    returnType: void
    signature: 'void releaseArray() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 393
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 393
    functionName: resetToStackArray
    functionSourceFile: /src/icu/source/common/cmemory.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void resetToStackArray() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 515
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 515
    functionName: getCapacity
    functionSourceFile: /src/icu/source/common/cmemory.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getCapacity() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getAlias
      Src: /src/icu/source/common/cmemory.h:525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 525
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 525
    functionName: getArrayStart
    functionSourceFile: /src/icu/source/common/cmemory.h
    functionUses: []
    functionsReached:
    - getAlias
    linkageType: ''
    returnType: T*
    signature: 'T *getArrayStart() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 536
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 536
    functionName: ''
    functionSourceFile: /src/icu/source/common/cmemory.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: operator*
    signature: 'operator H *() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - other
    argTypes:
    - LocalMemory
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: swap
    functionSourceFile: /src/icu/source/common/cmemory.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void swap(LocalMemory<T> &other) U_NOEXCEPT '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    functionName: getAlias
    functionSourceFile: /src/icu/source/common/cmemory.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: T*
    signature: 'T *getAlias() const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: releaseArray
      Src: /src/icu/source/common/cmemory.h:351,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - otherArray
    - otherCapacity
    argTypes:
    - T*
    - int32_t
    constantsTouched: []
    func_position:
      end: 356
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 356
    functionName: aliasInstead
    functionSourceFile: /src/icu/source/common/cmemory.h
    functionUses: []
    functionsReached:
    - releaseArray
    linkageType: ''
    returnType: void
    signature: 'void aliasInstead(T *otherArray, int32_t otherCapacity) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 520
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 520
    functionName: getAlias
    functionSourceFile: /src/icu/source/common/cmemory.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: H*
    signature: 'H *getAlias() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getArrayStart
      Src: /src/icu/source/common/cmemory.h:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 530
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 530
    functionName: getArrayLimit
    functionSourceFile: /src/icu/source/common/cmemory.h
    functionUses: []
    functionsReached:
    - getArrayStart
    linkageType: ''
    returnType: T*
    signature: 'T *getArrayLimit() const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: releaseMemory
      Src: /src/icu/source/common/cmemory.h:552,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - otherMemory
    - otherCapacity
    argTypes:
    - H*
    - int32_t
    constantsTouched: []
    func_position:
      end: 557
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 557
    functionName: aliasInstead
    functionSourceFile: /src/icu/source/common/cmemory.h
    functionUses: []
    functionsReached:
    - releaseMemory
    linkageType: ''
    returnType: void
    signature: 'void aliasInstead(H *otherMemory, int32_t otherCapacity) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uprv_free
      Src: /src/icu/source/common/cmemory.h:590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: releaseMemory
    functionSourceFile: /src/icu/source/common/cmemory.h
    functionUses: []
    functionsReached:
    - uprv_free
    linkageType: ''
    returnType: void
    signature: 'void releaseMemory() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 227
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 227
    functionName: inVariable
    functionSourceFile: /src/icu/source/common/ruleiter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool inVariable() const; /** * An opaque object representing
      the position of a RuleCharacterIterator. */ struct Pos : public UMemory { private:
      const UnicodeString* buf; int32_t pos; int32_t bufPos; friend class RuleCharacterIterator;
      }; /** * Sets an object which, when later passed to setPos(), will * restore
      this iterator''s position. Usage idiom: * * RuleCharacterIterator iterator =
      ...; * RuleCharacterIterator::Pos pos; * iterator.getPos(pos); * for (;;) {
      * iterator.getPos(pos); * int c = iterator.next(...); * ... * } * iterator.setPos(pos);
      * * @param p a position object to be set to this iterator''s * current position.
      */ void getPos(Pos& p) const; /** * Restores this iterator to the position it
      had when getPos() * set the given object. * @param p a position object previously
      set by getPos() */ void setPos(const Pos& p); /** * Skips ahead past any ignored
      characters, as indicated by the given * options. This is useful in conjunction
      with the lookahead() method. * * Currently, this only has an effect for SKIP_WHITESPACE.
      * @param options one or more of the following options, bitwise-OR-ed * together:
      PARSE_VARIABLES, PARSE_ESCAPES, SKIP_WHITESPACE. */ void skipIgnored(int32_t
      options); /** * Returns a string containing the remainder of the characters
      to be * returned by this iterator, without any option processing. If the * iterator
      is currently within a variable expansion, this will only * extend to the end
      of the variable expansion. This method is provided * so that iterators may interoperate
      with string-based APIs. The typical * sequence of calls is to call skipIgnored(),
      then call lookahead(), then * parse the string returned by lookahead(), then
      call jumpahead() to * resynchronize the iterator. * @param result a string to
      receive the characters to be returned * by future calls to next() * @param maxLookAhead
      The maximum to copy into the result. * @return a reference to result */ UnicodeString&
      lookahead(UnicodeString& result, int32_t maxLookAhead = -1) const; /** * Advances
      the position by the given number of 16-bit code units. * This is useful in conjunction
      with the lookahead() method. * @param count the number of 16-bit code units
      to jump over */ void jumpahead(int32_t count); /** * Returns a string representation
      of this object, consisting of the * characters being iterated, with a ''|''
      marking the current position. * Position within an expanded variable is <em>not</em>
      indicated. * @param result output parameter to receive a string * representation
      of this object */ // UnicodeString& toString(UnicodeString& result) const; private:
      /** * Returns the current 32-bit code point without parsing escapes, parsing
      * variables, or skipping whitespace. * @return the current 32-bit code point
      */ UChar32 _current() const; /** * Advances the position by the given amount.
      * @param count the number of 16-bit code units to advance past */ void _advance(int32_t
      count); };inline UBool RuleCharacterIterator::inVariable() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/icu/source/common/unicode/strenum.h:99,1
    - Dst: unext
      Src: /src/icu/source/common/unicode/strenum.h:156,1
    - Dst: snext
      Src: /src/icu/source/common/unicode/strenum.h:178,1
    - Dst: next
      Src: /src/icu/source/common/unicode/strenum.h:131,1
    - Dst: StringEnumeration
      Src: /src/icu/source/common/unicode/strenum.h:238,1
    - Dst: reset
      Src: /src/icu/source/common/unicode/strenum.h:192,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 273
    functionName: StringEnumeration
    functionSourceFile: /src/icu/source/common/unicode/strenum.h
    functionUses: []
    functionsReached:
    - next
    - count
    - unext
    - snext
    - reset
    - StringEnumeration
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API StringEnumeration : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: getAlias
    functionSourceFile: /src/icu/source/common/unicode/localpointer.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: T*
    signature: 'T *getAlias() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: isNull
    functionSourceFile: /src/icu/source/common/unicode/localpointer.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isNull() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: isValid
    functionSourceFile: /src/icu/source/common/unicode/localpointer.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isValid() const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_SUCCESS
      Src: /src/icu/source/common/unicode/localpointer.h:323,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - p
    - errorCode
    argTypes:
    - T*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 332
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 332
    functionName: adoptInsteadAndCheckErrorCode
    functionSourceFile: /src/icu/source/common/unicode/localpointer.h
    functionUses: []
    functionsReached:
    - U_SUCCESS
    linkageType: ''
    returnType: void
    signature: 'void adoptInsteadAndCheckErrorCode(T *p, UErrorCode &errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - other
    argTypes:
    - LocalPointer
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: swap
    functionSourceFile: /src/icu/source/common/unicode/localpointer.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void swap(LocalPointer<T> &other) U_NOEXCEPT '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: orphan
      Src: /src/icu/source/common/unicode/localpointer.h:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: T
    functionSourceFile: /src/icu/source/common/unicode/localpointer.h
    functionUses: []
    functionsReached:
    - orphan
    linkageType: ''
    returnType: operator
    signature: 'operator std::unique_ptr< T> () && '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - other
    argTypes:
    - LocalArray
    constantsTouched: []
    func_position:
      end: 468
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: swap
    functionSourceFile: /src/icu/source/common/unicode/localpointer.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void swap(LocalArray<T> &other) U_NOEXCEPT '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_SUCCESS
      Src: /src/icu/source/common/unicode/localpointer.h:504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - p
    - errorCode
    argTypes:
    - T*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 513
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 513
    functionName: adoptInsteadAndCheckErrorCode
    functionSourceFile: /src/icu/source/common/unicode/localpointer.h
    functionUses: []
    functionsReached:
    - U_SUCCESS
    linkageType: ''
    returnType: void
    signature: 'void adoptInsteadAndCheckErrorCode(T *p, UErrorCode &errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptr
      Src: /src/icu/source/common/unicode/localpointer.h:81,1
    - Dst: LocalPointerBase
      Src: /src/icu/source/common/unicode/localpointer.h:87,1
    - Dst: orphan
      Src: /src/icu/source/common/unicode/localpointer.h:140,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 169
    functionName: LocalPointerBase
    functionSourceFile: /src/icu/source/common/unicode/localpointer.h
    functionUses: []
    functionsReached:
    - LocalPointerBase
    - orphan
    - ptr
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN /** * "Smart pointer" base class; do not use directly:
      use LocalPointer etc. * * Base class for smart pointer classes that do not throw
      exceptions. * * Do not use this base class directly, since it does not delete
      its pointer. * A subclass must implement methods that delete the pointer: *
      Destructor and adoptInstead(). * * There is no operator T *() provided because
      the programmer must decide * whether to use getAlias() (without transfer of
      ownership) or orphan() * (with transfer of ownership and NULLing of the pointer).
      * * @see LocalPointer * @see LocalArray * @see U_DEFINE_LOCAL_OPEN_POINTER *
      @stable ICU 4.4 */ template<typename T>class LocalPointerBase '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: orphan
      Src: /src/icu/source/common/unicode/localpointer.h:536,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 537
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 537
    functionName: T
    functionSourceFile: /src/icu/source/common/unicode/localpointer.h
    functionUses: []
    functionsReached:
    - orphan
    linkageType: ''
    returnType: operator
    signature: 'operator std::unique_ptr< T[]> () && '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/icu/source/common/unicode/localpointer.h:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - Type
    - p
    argTypes:
    - std
    - decltype(&closeFunction)
    constantsTouched: []
    func_position:
      end: 573
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 573
    functionName: LocalPointerClassName
    functionSourceFile: /src/icu/source/common/unicode/localpointer.h
    functionUses: []
    functionsReached:
    - release
    linkageType: ''
    returnType: explicit
    signature: 'explicit LocalPointerClassName(std::unique_ptr<Type, decltype(&closeFunction)>
      &&p) \ : LocalPointerBase<Type>(p.release() ) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - other
    argTypes:
    - LocalPointerClassName
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 590
    functionName: swap
    functionSourceFile: /src/icu/source/common/unicode/localpointer.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void swap(LocalPointerClassName &other) U_NOEXCEPT '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: closeFunction
      Src: /src/icu/source/common/unicode/localpointer.h:595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - Type*
    constantsTouched: []
    func_position:
      end: 597
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 597
    functionName: adoptInstead
    functionSourceFile: /src/icu/source/common/unicode/localpointer.h
    functionUses: []
    functionsReached:
    - closeFunction
    linkageType: ''
    returnType: void
    signature: 'void adoptInstead(Type *p) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: adoptInstead
    functionSourceFile: /src/icu/source/common/unicode/localpointer.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void adoptInstead(T *p) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    constantsTouched: []
    func_position:
      end: 487
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 487
    functionName: adoptInstead
    functionSourceFile: /src/icu/source/common/unicode/localpointer.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void adoptInstead(T *p) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/icu/source/common/unicode/localpointer.h:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - std
    constantsTouched: []
    func_position:
      end: 420
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 420
    functionName: LocalArray
    functionSourceFile: /src/icu/source/common/unicode/localpointer.h
    functionUses: []
    functionsReached:
    - release
    linkageType: ''
    returnType: explicit
    signature: 'explicit LocalArray(std::unique_ptr<T[]> &&p) : LocalPointerBase<T>(p.release()
      ) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release
      Src: /src/icu/source/common/unicode/localpointer.h:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - std
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: LocalPointer
    functionSourceFile: /src/icu/source/common/unicode/localpointer.h
    functionUses: []
    functionsReached:
    - release
    linkageType: ''
    returnType: explicit
    signature: 'explicit LocalPointer(std::unique_ptr<T> &&p) : LocalPointerBase<T>(p.release()
      ) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 113
    functionName: SymbolTable
    functionSourceFile: /src/icu/source/common/unicode/symtable.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class U_COMMON_API SymbolTable /* not : public UObject because this
      is an interface/mixin class */ '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParsePosition
      Src: /src/icu/source/common/unicode/parsepos.h:57,1
    - Dst: UObject
      Src: /src/icu/source/common/unicode/parsepos.h:58,1
    - Dst: errorIndex
      Src: /src/icu/source/common/unicode/parsepos.h:60,1
    - Dst: index
      Src: /src/icu/source/common/unicode/parsepos.h:59,1
    - Dst: UObject
      Src: /src/icu/source/common/unicode/parsepos.h:80,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 184
    functionName: ParsePosition
    functionSourceFile: /src/icu/source/common/unicode/parsepos.h
    functionUses: []
    functionsReached:
    - UObject
    - ParsePosition
    - errorIndex
    - index
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API ParsePosition : public UObject '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 201
    functionName: copy
    functionSourceFile: /src/icu/source/common/unicode/parsepos.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool ParsePosition::operator==(const ParsePosition& copy )
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: getIndex
    functionSourceFile: /src/icu/source/common/unicode/parsepos.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t ParsePosition:: getIndex() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: getErrorIndex
    functionSourceFile: /src/icu/source/common/unicode/parsepos.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t ParsePosition:: getErrorIndex() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: setIndex
    functionSourceFile: /src/icu/source/common/unicode/parsepos.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void ParsePosition:: setIndex(int32_t offset) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: copy
    functionSourceFile: /src/icu/source/common/unicode/parsepos.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool ParsePosition::operator!=(const ParsePosition& copy )
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ei
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: setErrorIndex
    functionSourceFile: /src/icu/source/common/unicode/parsepos.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void ParsePosition:: setErrorIndex(int32_t ei) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - compiledPattern
    argTypes:
    - other
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: compiledPattern
    functionSourceFile: /src/icu/source/common/unicode/simpleformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: SimpleFormatter(const SimpleFormatter& other)
    signature: 'SimpleFormatter(const SimpleFormatter& other) : compiledPattern(other.compiledPattern) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applyPatternMinMaxArguments
      Src: /src/icu/source/common/unicode/simpleformatter.h:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - pattern
    - errorCode
    argTypes:
    - UnicodeString
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: applyPattern
    functionSourceFile: /src/icu/source/common/unicode/simpleformatter.h
    functionUses: []
    functionsReached:
    - applyPatternMinMaxArguments
    linkageType: ''
    returnType: UBool
    signature: 'UBool applyPattern(const UnicodeString &pattern, UErrorCode &errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleFormatter
      Src: /src/icu/source/common/unicode/simpleformatter.h:67,1
    - Dst: format
      Src: /src/icu/source/common/unicode/simpleformatter.h:189,1
    - Dst: compiledPattern
      Src: /src/icu/source/common/unicode/simpleformatter.h:67,1
    - Dst: getArgumentLimit
      Src: /src/icu/source/common/unicode/simpleformatter.h:157,1
    - Dst: getTextWithNoArguments
      Src: /src/icu/source/common/unicode/simpleformatter.h:294,1
    - Dst: applyPattern
      Src: /src/icu/source/common/unicode/simpleformatter.h:79,1
    - Dst: applyPatternMinMaxArguments
      Src: /src/icu/source/common/unicode/simpleformatter.h:131,1
    - Dst: format
      Src: /src/icu/source/common/unicode/simpleformatter.h:172,1
    - Dst: applyPatternMinMaxArguments
      Src: /src/icu/source/common/unicode/simpleformatter.h:98,1
    - Dst: SimpleFormatter
      Src: /src/icu/source/common/unicode/simpleformatter.h:118,1
    - Dst: formatAndAppend
      Src: /src/icu/source/common/unicode/simpleformatter.h:233,1
    - Dst: formatAndReplace
      Src: /src/icu/source/common/unicode/simpleformatter.h:259,1
    - Dst: getTextWithNoArguments
      Src: /src/icu/source/common/unicode/simpleformatter.h:270,1
    - Dst: format
      Src: /src/icu/source/common/unicode/simpleformatter.h:208,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 334
    functionName: U_FINAL
    functionSourceFile: /src/icu/source/common/unicode/simpleformatter.h
    functionUses: []
    functionsReached:
    - applyPattern
    - applyPatternMinMaxArguments
    - formatAndReplace
    - getArgumentLimit
    - getTextWithNoArguments
    - format
    - compiledPattern
    - formatAndAppend
    - SimpleFormatter
    linkageType: ''
    returnType: SimpleFormatter
    signature: 'SimpleFormatter U_FINAL : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getArgumentLimit
      Src: /src/icu/source/common/unicode/simpleformatter.h:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: getArgumentLimit
    functionSourceFile: /src/icu/source/common/unicode/simpleformatter.h
    functionUses: []
    functionsReached:
    - getArgumentLimit
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getArgumentLimit() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getTextWithNoArguments
      Src: /src/icu/source/common/unicode/simpleformatter.h:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 275
    functionName: getTextWithNoArguments
    functionSourceFile: /src/icu/source/common/unicode/simpleformatter.h
    functionUses: []
    functionsReached:
    - getTextWithNoArguments
    linkageType: ''
    returnType: UnicodeString
    signature: 'UnicodeString getTextWithNoArguments() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - compiledPattern
    - compiledPatternLength
    argTypes:
    - char16_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: getArgumentLimit
    functionSourceFile: /src/icu/source/common/unicode/simpleformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t getArgumentLimit(const char16_t *compiledPattern,
      int32_t compiledPatternLength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: namespace
    functionSourceFile: /src/icu/source/common/unicode/simpleformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN // Forward declaration: namespace number '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getTextWithNoArguments
      Src: /src/icu/source/common/unicode/simpleformatter.h:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - offsets
    - offsetsLength
    argTypes:
    - int32_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 299
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 299
    functionName: getTextWithNoArguments
    functionSourceFile: /src/icu/source/common/unicode/simpleformatter.h
    functionUses: []
    functionsReached:
    - getTextWithNoArguments
    linkageType: ''
    returnType: UnicodeString
    signature: 'UnicodeString getTextWithNoArguments(int32_t *offsets, int32_t offsetsLength)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: impl
    functionSourceFile: /src/icu/source/common/unicode/simpleformatter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace impl '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DateInterval
      Src: /src/icu/source/common/unicode/dtintrv.h:133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 138
    functionName: DateInterval
    functionSourceFile: /src/icu/source/common/unicode/dtintrv.h
    functionUses: []
    functionsReached:
    - DateInterval
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API DateInterval : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: getFromDate
    functionSourceFile: /src/icu/source/common/unicode/dtintrv.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UDate
    signature: 'inline UDate DateInterval:: getFromDate() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: getToDate
    functionSourceFile: /src/icu/source/common/unicode/dtintrv.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UDate
    signature: 'inline UDate DateInterval:: getToDate() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: other
    functionSourceFile: /src/icu/source/common/unicode/dtintrv.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool DateInterval::operator!=(const DateInterval& other )
      const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ures_getString
      Src: /src/icu/source/common/unicode/ures.h:811,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/common/unicode/ures.h:812,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - resB
    - status
    argTypes:
    - UResourceBundle*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 818
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 818
    functionName: ures_getUnicodeString
    functionSourceFile: /src/icu/source/common/unicode/ures.h
    functionUses: []
    functionsReached:
    - ures_getString
    - U_SUCCESS
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN /** * Returns the string value from a string resource
      bundle. * * @param resB a resource, should have type URES_STRING * @param status:
      fills in the outgoing error code * could be <TT>U_MISSING_RESOURCE_ERROR</TT>
      if the key is not found * could be a non-failing error * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING
      </TT> * @return The string value, or a bogus string if there is a failure UErrorCode.
      * @stable ICU 2.0 */ inline UnicodeString ures_getUnicodeString(const UResourceBundle
      *resB, UErrorCode* status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ures_getStringByIndex
      Src: /src/icu/source/common/unicode/ures.h:858,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/common/unicode/ures.h:859,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - resB
    - indexS
    - status
    argTypes:
    - UResourceBundle*
    - int32_t
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 865
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 865
    functionName: ures_getUnicodeStringByIndex
    functionSourceFile: /src/icu/source/common/unicode/ures.h
    functionUses: []
    functionsReached:
    - ures_getStringByIndex
    - U_SUCCESS
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString ures_getUnicodeStringByIndex(const UResourceBundle
      *resB, int32_t indexS, UErrorCode* status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ures_getNextString
      Src: /src/icu/source/common/unicode/ures.h:836,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/common/unicode/ures.h:837,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 3
    argNames:
    - resB
    - key
    - status
    argTypes:
    - UResourceBundle*
    - char**
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 843
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 843
    functionName: ures_getNextUnicodeString
    functionSourceFile: /src/icu/source/common/unicode/ures.h
    functionUses: []
    functionsReached:
    - U_SUCCESS
    - ures_getNextString
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString ures_getNextUnicodeString(UResourceBundle *resB,
      const char ** key, UErrorCode* status) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ures_getStringByKey
      Src: /src/icu/source/common/unicode/ures.h:881,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/common/unicode/ures.h:882,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 3
    argNames:
    - resB
    - key
    - status
    argTypes:
    - UResourceBundle*
    - char*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 888
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 888
    functionName: ures_getUnicodeStringByKey
    functionSourceFile: /src/icu/source/common/unicode/ures.h
    functionUses: []
    functionsReached:
    - U_SUCCESS
    - ures_getStringByKey
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString ures_getUnicodeStringByKey(const UResourceBundle
      *resB, const char* key, UErrorCode* status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 309
    functionName: isString
    functionSourceFile: /src/icu/source/common/unicode/usetiter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool isString() const; /** * Returns the current code point,
      if <tt>isString()</tt> returned * false. Otherwise returns an undefined result.
      * @stable ICU 2.4 */ inline UChar32 getCodepoint() const; /** * Returns the
      end of the current code point range, if * <tt>isString()</tt> returned false
      and <tt>nextRange()</tt> was * called. Otherwise returns an undefined result.
      * @stable ICU 2.4 */ inline UChar32 getCodepointEnd() const; /** * Returns the
      current string, if <tt>isString()</tt> returned * true. If the current iteration
      item is a code point, a UnicodeString * containing that single code point is
      returned. * * Ownership of the returned string remains with the iterator. *
      The string is guaranteed to remain valid only until the iterator is * advanced
      to the next item, or until the iterator is deleted. * * @stable ICU 2.4 */ const
      UnicodeString& getString(); /** * Advances the iteration position to the next
      element in the set, * which can be either a single code point or a string. *
      If there are no more elements in the set, return false. * * <p> * If <tt>isString()
      == TRUE</tt>, the value is a * string, otherwise the value is a * single code
      point. Elements of either type can be retrieved * with the function <tt>getString()</tt>,
      while elements of * consisting of a single code point can be retrieved with
      * <tt>getCodepoint()</tt> * * <p>The order of iteration is all code points in
      sorted order, * followed by all strings sorted order. Do not mix * calls to
      <tt>next()</tt> and <tt>nextRange()</tt> without * calling <tt>reset()</tt>
      between them. The results of doing so * are undefined. * * @return true if there
      was another element in the set. * @stable ICU 2.4 */ UBool next(); /** * Returns
      the next element in the set, either a code point range * or a string. If there
      are no more elements in the set, return * false. If <tt>isString() == TRUE</tt>,
      the value is a * string and can be accessed with <tt>getString()</tt>. Otherwise
      the value is a * range of one or more code points from <tt>getCodepoint()</tt>
      to * <tt>getCodepointeEnd()</tt> inclusive. * * <p>The order of iteration is
      all code points ranges in sorted * order, followed by all strings sorted order.
      Ranges are * disjoint and non-contiguous. The value returned from <tt>getString()</tt>
      * is undefined unless <tt>isString() == TRUE</tt>. Do not mix calls to * <tt>next()</tt>
      and <tt>nextRange()</tt> without calling * <tt>reset()</tt> between them. The
      results of doing so are * undefined. * * @return true if there was another element
      in the set. * @stable ICU 2.4 */ UBool nextRange(); /** * Sets this iterator
      to visit the elements of the given set and * resets it to the start of that
      set. The iterator is valid only * so long as <tt>set</tt> is valid. * @param
      set the set to iterate over. * @stable ICU 2.4 */ void reset(const UnicodeSet&
      set); /** * Resets this iterator to the start of the set. * @stable ICU 2.4
      */ void reset(); /** * ICU "poor man''s RTTI", returns a UClassID for this class.
      * * @stable ICU 2.4 */ static UClassID U_EXPORT2 getStaticClassID(); /** * ICU
      "poor man''s RTTI", returns a UClassID for the actual class. * * @stable ICU
      2.4 */ virtual UClassID getDynamicClassID() const; // =======================
      PRIVATES =========================== protected: // endElement and nextElements
      are really UChar32''s, but we keep // them as signed int32_t''s so we can do
      comparisons with // endElement set to -1. Leave them as int32_t''s. /** The
      set * @stable ICU 2.4 */ const UnicodeSet* set; /** End range * @stable ICU
      2.4 */ int32_t endRange; /** Range * @stable ICU 2.4 */ int32_t range; /** End
      element * @stable ICU 2.4 */ int32_t endElement; /** Next element * @stable
      ICU 2.4 */ int32_t nextElement; //UBool abbreviated; /** Next string * @stable
      ICU 2.4 */ int32_t nextString; /** String count * @stable ICU 2.4 */ int32_t
      stringCount; /** * Points to the string to use when the caller asks for a *
      string and the current iteration item is a code point, not a string. * @internal
      */ UnicodeString *cpString; /** Copy constructor. Disallowed. * @stable ICU
      2.4 */ UnicodeSetIterator(const UnicodeSetIterator&); // disallow /** Assignment
      operator. Disallowed. * @stable ICU 2.4 */ UnicodeSetIterator& operator=(const
      UnicodeSetIterator&); // disallow /** Load range * @stable ICU 2.4 */ virtual
      void loadRange(int32_t range); };inline UBool UnicodeSetIterator::isString()
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 317
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 317
    functionName: getCodepointEnd
    functionSourceFile: /src/icu/source/common/unicode/usetiter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UChar32
    signature: 'inline UChar32 UnicodeSetIterator:: getCodepointEnd() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: getCodepoint
    functionSourceFile: /src/icu/source/common/unicode/usetiter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UChar32
    signature: 'inline UChar32 UnicodeSetIterator:: getCodepoint() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doHashCode
      Src: /src/icu/source/common/unicode/unistr.h:3901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3901
      start: 3899
    functionDepth: 0
    functionLinenumber: 3899
    functionLinenumberEnd: 3901
    functionName: hashCode
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doHashCode
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: hashCode() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3905
      start: 3903
    functionDepth: 0
    functionLinenumber: 3903
    functionLinenumberEnd: 3905
    functionName: isBogus
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString:: isBogus() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCaseCompare
      Src: /src/icu/source/common/unicode/unistr.h:4129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 6
    argNames:
    - start
    - _length
    - srcText
    - srcStart
    - srcLength
    - options
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    - int32_t
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 4130
      start: 4122
    functionDepth: 0
    functionLinenumber: 4122
    functionLinenumberEnd: 4130
    functionName: caseCompare
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCaseCompare
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: caseCompare(int32_t start, int32_t _length,
      const UnicodeString &srcText, int32_t srcStart, int32_t srcLength, uint32_t
      options) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:4354,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - text
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 4355
      start: 4352
    functionDepth: 0
    functionLinenumber: 4352
    functionLinenumberEnd: 4355
    functionName: endsWith
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    - length
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString:: endsWith(const UnicodeString& text) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tempSubString
      Src: /src/icu/source/common/unicode/unistr.h:4502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - start
    - limit
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4503
      start: 4500
    functionDepth: 0
    functionLinenumber: 4500
    functionLinenumberEnd: 4503
    functionName: tempSubStringBetween
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - tempSubString
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString UnicodeString:: tempSubStringBetween(int32_t
      start, int32_t limit) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCaseCompare
      Src: /src/icu/source/common/unicode/unistr.h:4137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 4
    argNames:
    - start
    - _length
    - srcChars
    - options
    argTypes:
    - int32_t
    - int32_t
    - char16_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 4138
      start: 4132
    functionDepth: 0
    functionLinenumber: 4132
    functionLinenumberEnd: 4138
    functionName: caseCompare
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCaseCompare
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: caseCompare(int32_t start, int32_t _length,
      const char16_t *srcChars, uint32_t options) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:4362,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - srcText
    - srcStart
    - srcLength
    argTypes:
    - UnicodeString
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4364
      start: 4357
    functionDepth: 0
    functionLinenumber: 4357
    functionLinenumberEnd: 4364
    functionName: endsWith
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    - length
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString:: endsWith(const UnicodeString& srcText,
      int32_t srcStart, int32_t srcLength) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4508,1
    - Dst: getArrayStart
      Src: /src/icu/source/common/unicode/unistr.h:4509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - offset
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 4513
      start: 4505
    functionDepth: 0
    functionLinenumber: 4505
    functionLinenumberEnd: 4513
    functionName: doCharAt
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - length
    - getArrayStart
    linkageType: ''
    returnType: char16_t
    signature: 'inline char16_t UnicodeString:: doCharAt(int32_t offset) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnicodeString
      Src: /src/icu/source/common/unicode/unistr.h:3013,1
    - Dst: ConstChar16Ptr
      Src: /src/icu/source/common/unicode/unistr.h:3013,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - wchar_t*
    constantsTouched: []
    func_position:
      end: 3013
      start: 3012
    functionDepth: 0
    functionLinenumber: 3012
    functionLinenumberEnd: 3013
    functionName: UnicodeString
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - UnicodeString
    - ConstChar16Ptr
    linkageType: ''
    returnType: UNISTR_FROM_STRING_EXPLICIT
    signature: 'UNISTR_FROM_STRING_EXPLICIT UnicodeString(const wchar_t *text) : UnicodeString(ConstChar16Ptr(text)) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3879
      start: 3876
    functionDepth: 0
    functionLinenumber: 3876
    functionLinenumberEnd: 3879
    functionName: hasShortLength
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString:: hasShortLength() const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: doCompareCodePointOrder
      Src: /src/icu/source/common/unicode/unistr.h:4036,1
    - Dst: isBogus
      Src: /src/icu/source/common/unicode/unistr.h:4033,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - start
    - thisLength
    - srcText
    - srcStart
    - srcLength
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4038
      start: 4025
    functionDepth: 0
    functionLinenumber: 4025
    functionLinenumberEnd: 4038
    functionName: doCompareCodePointOrder
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompareCodePointOrder
    - isBogus
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: doCompareCodePointOrder(int32_t start,
      int32_t thisLength, const UnicodeString& srcText, int32_t srcStart, int32_t
      srcLength) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - start
    - _length
    - target
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 4460
      start: 4456
    functionDepth: 0
    functionLinenumber: 4456
    functionLinenumberEnd: 4460
    functionName: doExtract
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void UnicodeString:: doExtract(int32_t start, int32_t _length,
      UnicodeString& target) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - len
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 4542
      start: 4537
    functionDepth: 0
    functionLinenumber: 4537
    functionLinenumberEnd: 4542
    functionName: setShortLength
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void UnicodeString:: setShortLength(int32_t len) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: truncate
      Src: /src/icu/source/common/unicode/unistr.h:4724,1
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - start
    - limit
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4726
      start: 4722
    functionDepth: 0
    functionLinenumber: 4722
    functionLinenumberEnd: 4726
    functionName: retainBetween
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - truncate
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: retainBetween(int32_t start,
      int32_t limit) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompareCodePointOrder
      Src: /src/icu/source/common/unicode/unistr.h:4042,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - text
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 4042
      start: 4040
    functionDepth: 0
    functionLinenumber: 4040
    functionLinenumberEnd: 4042
    functionName: compareCodePointOrder
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - length
    - doCompareCodePointOrder
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: compareCodePointOrder(const UnicodeString&
      text) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setShortLength
      Src: /src/icu/source/common/unicode/unistr.h:4547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - len
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 4552
      start: 4544
    functionDepth: 0
    functionLinenumber: 4544
    functionLinenumberEnd: 4552
    functionName: setLength
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - setShortLength
    linkageType: ''
    returnType: void
    signature: 'inline void UnicodeString:: setLength(int32_t len) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isBogus
      Src: /src/icu/source/common/unicode/unistr.h:4731,1
    - Dst: unBogus
      Src: /src/icu/source/common/unicode/unistr.h:4733,1
    - Dst: setLength
      Src: /src/icu/source/common/unicode/unistr.h:4736,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4735,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - targetLength
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 4741
      start: 4728
    functionDepth: 0
    functionLinenumber: 4728
    functionLinenumberEnd: 4741
    functionName: truncate
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - setLength
    - length
    - unBogus
    - isBogus
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString:: truncate(int32_t targetLength) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isBogus
      Src: /src/icu/source/common/unicode/unistr.h:4095,1
    - Dst: doCaseCompare
      Src: /src/icu/source/common/unicode/unistr.h:4098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - start
    - thisLength
    - srcText
    - srcStart
    - srcLength
    - options
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    - int32_t
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 4100
      start: 4086
    functionDepth: 0
    functionLinenumber: 4086
    functionLinenumberEnd: 4100
    functionName: doCaseCompare
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCaseCompare
    - isBogus
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: doCaseCompare(int32_t start, int32_t
      thisLength, const UnicodeString &srcText, int32_t srcStart, int32_t srcLength,
      uint32_t options) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: findAndReplace
      Src: /src/icu/source/common/unicode/unistr.h:4450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - start
    - _length
    - oldText
    - newText
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 4451
      start: 4445
    functionDepth: 0
    functionLinenumber: 4445
    functionLinenumberEnd: 4451
    functionName: findAndReplace
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - findAndReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: findAndReplace(int32_t start,
      int32_t _length, const UnicodeString& oldText, const UnicodeString& newText) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doAppend
      Src: /src/icu/source/common/unicode/unistr.h:4647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char16_t
    constantsTouched: []
    func_position:
      end: 4647
      start: 4645
    functionDepth: 0
    functionLinenumber: 4645
    functionLinenumberEnd: 4647
    functionName: operator
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doAppend
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: operator+= (char16_t ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCaseCompare
      Src: /src/icu/source/common/unicode/unistr.h:4104,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - text
    - options
    argTypes:
    - UnicodeString
    - uint32_t
    constantsTouched: []
    func_position:
      end: 4105
      start: 4102
    functionDepth: 0
    functionLinenumber: 4102
    functionLinenumberEnd: 4105
    functionName: caseCompare
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCaseCompare
    - length
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: caseCompare(const UnicodeString &text,
      uint32_t options) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/icu/source/common/unicode/unistr.h:4651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 4652
      start: 4649
    functionDepth: 0
    functionLinenumber: 4649
    functionLinenumberEnd: 4652
    functionName: operator
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - append
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: operator+= (UChar32 ch) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doIndexOf
      Src: /src/icu/source/common/unicode/unistr.h:4212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - c
    - start
    - _length
    argTypes:
    - char16_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4212
      start: 4208
    functionDepth: 0
    functionLinenumber: 4208
    functionLinenumberEnd: 4212
    functionName: indexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doIndexOf
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: indexOf(char16_t c, int32_t start,
      int32_t _length) const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:3817,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:3818,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3820
      start: 3446
    functionDepth: 0
    functionLinenumber: 3446
    functionLinenumberEnd: 3820
    functionName: getDynamicClassID
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - length
    linkageType: ''
    returnType: virtual
    signature: 'virtual UClassID getDynamicClassID() const; //========================================
      // Implementation methods //========================================protected:
      /** * Implement Replaceable::getLength() (see jitterbug 1027). * @stable ICU
      2.4 */ virtual int32_t getLength() const; /** * The change in Replaceable to
      use virtual getCharAt() allows * UnicodeString::charAt() to be inline again
      (see jitterbug 709). * @stable ICU 2.4 */ virtual char16_t getCharAt(int32_t
      offset) const; /** * The change in Replaceable to use virtual getChar32At()
      allows * UnicodeString::char32At() to be inline again (see jitterbug 709). *
      @stable ICU 2.4 */ virtual UChar32 getChar32At(int32_t offset) const;private:
      // For char* constructors. Could be made public. UnicodeString &setToUTF8(StringPiece
      utf8); // For extract(char*). // We could make a toUTF8(target, capacity, errorCode)
      public but not // this version: New API will be cleaner if we make callers create
      substrings // rather than having start+length on every method, // and it should
      take a UErrorCode&. int32_t toUTF8(int32_t start, int32_t len, char *target,
      int32_t capacity) const; /** * Internal string contents comparison, called by
      operator==. * Requires: this & text not bogus and have same lengths. */ UBool
      doEquals(const UnicodeString &text, int32_t len) const; inline int8_t doCompare(int32_t
      start, int32_t length, const UnicodeString& srcText, int32_t srcStart, int32_t
      srcLength) const; int8_t doCompare(int32_t start, int32_t length, const char16_t
      *srcChars, int32_t srcStart, int32_t srcLength) const; inline int8_t doCompareCodePointOrder(int32_t
      start, int32_t length, const UnicodeString& srcText, int32_t srcStart, int32_t
      srcLength) const; int8_t doCompareCodePointOrder(int32_t start, int32_t length,
      const char16_t *srcChars, int32_t srcStart, int32_t srcLength) const; inline
      int8_t doCaseCompare(int32_t start, int32_t length, const UnicodeString &srcText,
      int32_t srcStart, int32_t srcLength, uint32_t options) const; int8_t doCaseCompare(int32_t
      start, int32_t length, const char16_t *srcChars, int32_t srcStart, int32_t srcLength,
      uint32_t options) const; int32_t doIndexOf(char16_t c, int32_t start, int32_t
      length) const; int32_t doIndexOf(UChar32 c, int32_t start, int32_t length) const;
      int32_t doLastIndexOf(char16_t c, int32_t start, int32_t length) const; int32_t
      doLastIndexOf(UChar32 c, int32_t start, int32_t length) const; void doExtract(int32_t
      start, int32_t length, char16_t *dst, int32_t dstStart) const; inline void doExtract(int32_t
      start, int32_t length, UnicodeString& target) const; inline char16_t doCharAt(int32_t
      offset) const; UnicodeString& doReplace(int32_t start, int32_t length, const
      UnicodeString& srcText, int32_t srcStart, int32_t srcLength); UnicodeString&
      doReplace(int32_t start, int32_t length, const char16_t *srcChars, int32_t srcStart,
      int32_t srcLength); UnicodeString& doAppend(const UnicodeString& src, int32_t
      srcStart, int32_t srcLength); UnicodeString& doAppend(const char16_t *srcChars,
      int32_t srcStart, int32_t srcLength); UnicodeString& doReverse(int32_t start,
      int32_t length); // calculate hash code int32_t doHashCode(void) const; // get
      pointer to start of array // these do not check for kOpenGetBuffer, unlike the
      public getBuffer() function inline char16_t* getArrayStart(void); inline const
      char16_t* getArrayStart(void) const; inline UBool hasShortLength() const; inline
      int32_t getShortLength() const; // A UnicodeString object (not necessarily its
      current buffer) // is writable unless it isBogus() or it has an "open" getBuffer(minCapacity).
      inline UBool isWritable() const; // Is the current buffer writable? inline UBool
      isBufferWritable() const; // None of the following does releaseArray(). inline
      void setZeroLength(); inline void setShortLength(int32_t len); inline void setLength(int32_t
      len); inline void setToEmpty(); inline void setArray(char16_t *array, int32_t
      len, int32_t capacity); // sets length but not flags // allocate the array;
      result may be the stack buffer // sets refCount to 1 if appropriate // sets
      fArray, fCapacity, and flags // sets length to 0 // returns boolean for success
      or failure UBool allocate(int32_t capacity); // release the array if owned void
      releaseArray(void); // turn a bogus string into an empty one void unBogus();
      // implements assigment operator, copy constructor, and fastCopyFrom() UnicodeString
      &copyFrom(const UnicodeString &src, UBool fastCopy=FALSE); // Copies just the
      fields without memory management. void copyFieldsFrom(UnicodeString &src, UBool
      setSrcToBogus) U_NOEXCEPT; // Pin start and limit to acceptable values. inline
      void pinIndex(int32_t& start) const; inline void pinIndices(int32_t& start,
      int32_t& length) const;#if !UCONFIG_NO_CONVERSION /* Internal extract() using
      UConverter. */ int32_t doExtract(int32_t start, int32_t length, char *dest,
      int32_t destCapacity, UConverter *cnv, UErrorCode &errorCode) const; /* * Real
      constructor for converting from codepage data. * It assumes that it is called
      with !fRefCounted. * * If `codepage==0`, then the default converter * is used
      for the platform encoding. * If `codepage` is an empty string (`""`), * then
      a simple conversion is performed on the codepage-invariant * subset ("invariant
      characters") of the platform encoding. See utypes.h. */ void doCodepageCreate(const
      char *codepageData, int32_t dataLength, const char *codepage); /* * Worker function
      for creating a UnicodeString from * a codepage string using a UConverter. */
      void doCodepageCreate(const char *codepageData, int32_t dataLength, UConverter
      *converter, UErrorCode &status); #endif /* * This function is called when write
      access to the array * is necessary. * * We need to make a copy of the array
      if * the buffer is read-only, or * the buffer is refCounted (shared), and refCount>1,
      or * the buffer is too small. * * Return FALSE if memory could not be allocated.
      */ UBool cloneArrayIfNeeded(int32_t newCapacity = -1, int32_t growCapacity =
      -1, UBool doCopyArray = TRUE, int32_t **pBufferToDelete = 0, UBool forceClone
      = FALSE); /** * Common function for UnicodeString case mappings. * The stringCaseMapper
      has the same type UStringCaseMapper * as in ustr_imp.h for ustrcase_map(). */
      UnicodeString & caseMap(int32_t caseLocale, uint32_t options,#if !UCONFIG_NO_BREAK_ITERATION
      BreakIterator *iter,#endif UStringCaseMapper *stringCaseMapper); // ref counting
      void addRef(void); int32_t removeRef(void); int32_t refCount(void) const; //
      constants enum { /** * Size of stack buffer for short strings. * Must be at
      least U16_MAX_LENGTH for the single-code point constructor to work. * @see UNISTR_OBJECT_SIZE
      */ US_STACKBUF_SIZE=(int32_t)(UNISTR_OBJECT_SIZE-sizeof(void *)-2)/U_SIZEOF_UCHAR,
      kInvalidUChar=0xffff, // U+FFFF returned by charAt(invalid index) kInvalidHashCode=0,
      // invalid hash code kEmptyHashCode=1, // hash code for empty string // bit
      flag values for fLengthAndFlags kIsBogus=1, // this string is bogus, i.e., not
      valid or NULL kUsingStackBuffer=2,// using fUnion.fStackFields instead of fUnion.fFields
      kRefCounted=4, // there is a refCount field before the characters in fArray
      kBufferIsReadonly=8,// do not write to this buffer kOpenGetBuffer=16, // getBuffer(minCapacity)
      was called (is "open"), // and releaseBuffer(newLength) must be called kAllStorageFlags=0x1f,
      kLengthShift=5, // remaining 11 bits for non-negative short length, or negative
      if long kLength1=1<<kLengthShift, kMaxShortLength=0x3ff, // max non-negative
      short length (leaves top bit 0) kLengthIsLarge=0xffe0, // short length < 0,
      real length is in fUnion.fFields.fLength // combined values for convenience
      kShortString=kUsingStackBuffer, kLongString=kRefCounted, kReadonlyAlias=kBufferIsReadonly,
      kWritableAlias=0 }; friend class UnicodeStringAppendable; union StackBufferOrFields;
      // forward declaration necessary before friend declaration friend union StackBufferOrFields;
      // make US_STACKBUF_SIZE visible inside fUnion /* * The following are all the
      class fields that are stored * in each UnicodeString object. * Note that UnicodeString
      has virtual functions, * therefore there is an implicit vtable pointer * as
      the first real field. * The fields should be aligned such that no padding is
      necessary. * On 32-bit machines, the size should be 32 bytes, * on 64-bit machines
      (8-byte pointers), it should be 40 bytes. * * We use a hack to achieve this.
      * * With at least some compilers, each of the following is forced to * a multiple
      of sizeof(pointer) [the largest field base unit here is a data pointer], * rounded
      up with additional padding if the fields do not already fit that requirement:
      * - sizeof(class UnicodeString) * - offsetof(UnicodeString, fUnion) * - sizeof(fUnion)
      * - sizeof(fStackFields) * * We optimize for the longest possible internal buffer
      for short strings. * fUnion.fStackFields begins with 2 bytes for storage flags
      * and the length of relatively short strings, * followed by the buffer for short
      string contents. * There is no padding inside fStackFields. * * Heap-allocated
      and aliased strings use fUnion.fFields. * Both fStackFields and fFields must
      begin with the same fields for flags and short length, * that is, those must
      have the same memory offsets inside the object, * because the flags must be
      inspected in order to decide which half of fUnion is being used. * We assume
      that the compiler does not reorder the fields. * * (Padding at the end of fFields
      is ok: * As long as it is no larger than fStackFields, it is not wasted space.)
      * * For some of the history of the UnicodeString class fields layout, see *
      - ICU ticket #11551 "longer UnicodeString contents in stack buffer" * - ICU
      ticket #11336 "UnicodeString: recombine stack buffer arrays" * - ICU ticket
      #8322 "why is sizeof(UnicodeString)==48?" */ // (implicit) *vtable; union StackBufferOrFields
      { // fStackFields is used iff (fLengthAndFlags&kUsingStackBuffer) else fFields
      is used. // Each struct of the union must begin with fLengthAndFlags. struct
      { int16_t fLengthAndFlags; // bit fields: see constants above char16_t fBuffer[US_STACKBUF_SIZE];
      // buffer for short strings } fStackFields; struct { int16_t fLengthAndFlags;
      // bit fields: see constants above int32_t fLength; // number of characters
      in fArray if >127; else undefined int32_t fCapacity; // capacity of fArray (in
      char16_ts) // array pointer last to minimize padding for machines with P128
      data model // or pointer sizes that are not a power of 2 char16_t *fArray; //
      the Unicode data } fFields; } fUnion; }; /** * Create a new UnicodeString with
      the concatenation of two others. * * @param s1 The first string to be copied
      to the new one. * @param s2 The second string to be copied to the new one, after
      s1. * @return UnicodeString(s1).append(s2) * @stable ICU 2.8 */ U_COMMON_API
      UnicodeString U_EXPORT2operator+ (const UnicodeString &s1, const UnicodeString
      &s2); //======================================== // Inline members //========================================
      //======================================== // Privates //========================================
      inline voidUnicodeString::pinIndex(int32_t& start) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unBogus
      Src: /src/icu/source/common/unicode/unistr.h:4587,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4589,1
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - srcText
    - srcStart
    argTypes:
    - UnicodeString
    - int32_t
    constantsTouched: []
    func_position:
      end: 4590
      start: 4583
    functionDepth: 0
    functionLinenumber: 4583
    functionLinenumberEnd: 4590
    functionName: setTo
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - length
    - unBogus
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: setTo(const UnicodeString& srcText,
      int32_t srcStart) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doIndexOf
      Src: /src/icu/source/common/unicode/unistr.h:4218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - c
    - start
    - _length
    argTypes:
    - UChar32
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4218
      start: 4214
    functionDepth: 0
    functionLinenumber: 4214
    functionLinenumberEnd: 4218
    functionName: indexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doIndexOf
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: indexOf(UChar32 c, int32_t start, int32_t
      _length) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pinIndex
      Src: /src/icu/source/common/unicode/unistr.h:4495,1
    - Dst: pinIndex
      Src: /src/icu/source/common/unicode/unistr.h:4496,1
    - Dst: doExtract
      Src: /src/icu/source/common/unicode/unistr.h:4497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - start
    - limit
    - dst
    - dstStart
    argTypes:
    - int32_t
    - int32_t
    - char16_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 4498
      start: 4490
    functionDepth: 0
    functionLinenumber: 4490
    functionLinenumberEnd: 4498
    functionName: extractBetween
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - pinIndex
    - doExtract
    linkageType: ''
    returnType: void
    signature: 'inline void UnicodeString:: extractBetween(int32_t start, int32_t
      limit, char16_t *dst, int32_t dstStart) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copyFrom
      Src: /src/icu/source/common/unicode/unistr.h:4595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - srcText
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 4596
      start: 4592
    functionDepth: 0
    functionLinenumber: 4592
    functionLinenumberEnd: 4596
    functionName: setTo
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - copyFrom
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: setTo(const UnicodeString& srcText) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3859
      start: 3856
    functionDepth: 0
    functionLinenumber: 3856
    functionLinenumberEnd: 3859
    functionName: UnicodeString
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString :: UnicodeString() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doAppend
      Src: /src/icu/source/common/unicode/unistr.h:4628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - srcText
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 4628
      start: 4626
    functionDepth: 0
    functionLinenumber: 4626
    functionLinenumberEnd: 4628
    functionName: append
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doAppend
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: append(const UnicodeString&
      srcText) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doAppend
      Src: /src/icu/source/common/unicode/unistr.h:4634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - srcChars
    - srcStart
    - srcLength
    argTypes:
    - char16_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4634
      start: 4630
    functionDepth: 0
    functionLinenumber: 4630
    functionLinenumberEnd: 4634
    functionName: append
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doAppend
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: append(const char16_t *srcChars,
      int32_t srcStart, int32_t srcLength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doLastIndexOf
      Src: /src/icu/source/common/unicode/unistr.h:4305,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - char16_t
    constantsTouched: []
    func_position:
      end: 4305
      start: 4303
    functionDepth: 0
    functionLinenumber: 4303
    functionLinenumberEnd: 4305
    functionName: lastIndexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doLastIndexOf
    - length
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: lastIndexOf(char16_t c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - start
    - _length
    - srcChars
    - srcLength
    argTypes:
    - int32_t
    - int32_t
    - ConstChar16Ptr
    - int32_t
    constantsTouched: []
    func_position:
      end: 4409
      start: 4404
    functionDepth: 0
    functionLinenumber: 4404
    functionLinenumberEnd: 4409
    functionName: replace
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: replace(int32_t start, int32_t
      _length, ConstChar16Ptr srcChars, int32_t srcLength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - start
    - limit
    - srcText
    - srcStart
    - srcLimit
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4437
      start: 4431
    functionDepth: 0
    functionLinenumber: 4431
    functionLinenumberEnd: 4437
    functionName: replaceBetween
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: replaceBetween(int32_t start,
      int32_t limit, const UnicodeString& srcText, int32_t srcStart, int32_t srcLimit) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lastIndexOf
      Src: /src/icu/source/common/unicode/unistr.h:4309,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 4310
      start: 4307
    functionDepth: 0
    functionLinenumber: 4307
    functionLinenumberEnd: 4310
    functionName: lastIndexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - lastIndexOf
    - length
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: lastIndexOf(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - start
    - _length
    - srcChars
    - srcStart
    - srcLength
    argTypes:
    - int32_t
    - int32_t
    - char16_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4417
      start: 4411
    functionDepth: 0
    functionLinenumber: 4411
    functionLinenumberEnd: 4417
    functionName: replace
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: replace(int32_t start, int32_t
      _length, const char16_t *srcChars, int32_t srcStart, int32_t srcLength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: findAndReplace
      Src: /src/icu/source/common/unicode/unistr.h:4442,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - oldText
    - newText
    argTypes:
    - UnicodeString
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 4443
      start: 4439
    functionDepth: 0
    functionLinenumber: 4439
    functionLinenumberEnd: 4443
    functionName: findAndReplace
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - findAndReplace
    - length
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: findAndReplace(const UnicodeString&
      oldText, const UnicodeString& newText) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extract
      Src: /src/icu/source/common/unicode/unistr.h:4485,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 4
    argNames:
    - start
    - _length
    - dst
    - codepage
    argTypes:
    - int32_t
    - int32_t
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 4486
      start: 4477
    functionDepth: 0
    functionLinenumber: 4477
    functionLinenumberEnd: 4486
    functionName: extract
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - extract
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: extract(int32_t start, int32_t _length,
      char *dst, const char *codepage) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3850
      start: 3846
    functionDepth: 0
    functionLinenumber: 3846
    functionLinenumberEnd: 3850
    functionName: getArrayStart
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char16_t*
    signature: 'inline const char16_t *UnicodeString::getArrayStart() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - start
    - _length
    - srcText
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 4394
      start: 4390
    functionDepth: 0
    functionLinenumber: 4390
    functionLinenumberEnd: 4394
    functionName: replace
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: replace(int32_t start, int32_t
      _length, const UnicodeString& srcText) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4535
      start: 4532
    functionDepth: 0
    functionLinenumber: 4532
    functionLinenumberEnd: 4535
    functionName: setZeroLength
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void UnicodeString:: setZeroLength() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - start
    - _length
    - srcText
    - srcStart
    - srcLength
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4402
      start: 4396
    functionDepth: 0
    functionLinenumber: 4396
    functionLinenumberEnd: 4402
    functionName: replace
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: replace(int32_t start, int32_t
      _length, const UnicodeString& srcText, int32_t srcStart, int32_t srcLength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pinIndex
      Src: /src/icu/source/common/unicode/unistr.h:4282,1
    - Dst: lastIndexOf
      Src: /src/icu/source/common/unicode/unistr.h:4283,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - text
    - start
    argTypes:
    - UnicodeString
    - int32_t
    constantsTouched: []
    func_position:
      end: 4284
      start: 4279
    functionDepth: 0
    functionLinenumber: 4279
    functionLinenumberEnd: 4284
    functionName: lastIndexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - lastIndexOf
    - length
    - pinIndex
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: lastIndexOf(const UnicodeString& text,
      int32_t start) const '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:3827,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - start
    - _length
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 3838
      start: 3822
    functionDepth: 0
    functionLinenumber: 3822
    functionLinenumberEnd: 3838
    functionName: pinIndices
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - length
    linkageType: ''
    returnType: void
    signature: 'inline void UnicodeString:: pinIndices(int32_t& start, int32_t& _length)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3909
      start: 3907
    functionDepth: 0
    functionLinenumber: 3907
    functionLinenumberEnd: 3909
    functionName: isWritable
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString:: isWritable() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refCount
      Src: /src/icu/source/common/unicode/unistr.h:3916,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3917
      start: 3911
    functionDepth: 0
    functionLinenumber: 3911
    functionLinenumberEnd: 3917
    functionName: isBufferWritable
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - refCount
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString:: isBufferWritable() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:3969,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:3969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - text
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 3969
      start: 3967
    functionDepth: 0
    functionLinenumber: 3967
    functionLinenumberEnd: 3969
    functionName: UnicodeString
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    - length
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString::operator< (const UnicodeString& text)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - start
    - srcChars
    - srcLength
    argTypes:
    - int32_t
    - ConstChar16Ptr
    - int32_t
    constantsTouched: []
    func_position:
      end: 4681
      start: 4677
    functionDepth: 0
    functionLinenumber: 4677
    functionLinenumberEnd: 4681
    functionName: insert
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: insert(int32_t start, ConstChar16Ptr
      srcChars, int32_t srcLength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lastIndexOf
      Src: /src/icu/source/common/unicode/unistr.h:4288,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - text
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 4288
      start: 4286
    functionDepth: 0
    functionLinenumber: 4286
    functionLinenumberEnd: 4288
    functionName: lastIndexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - lastIndexOf
    - length
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: lastIndexOf(const UnicodeString& text)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3844
      start: 3840
    functionDepth: 0
    functionLinenumber: 3840
    functionLinenumberEnd: 3844
    functionName: getArrayStart
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char16_t*
    signature: 'inline char16_t *UnicodeString::getArrayStart() '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3928
      start: 3919
    functionDepth: 0
    functionLinenumber: 3919
    functionLinenumberEnd: 3928
    functionName: getBuffer
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char16_t*
    signature: 'inline const char16_t *UnicodeString::getBuffer() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:3973,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:3973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - text
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 3973
      start: 3971
    functionDepth: 0
    functionLinenumber: 3971
    functionLinenumberEnd: 3973
    functionName: UnicodeString
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    - length
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString::operator>= (const UnicodeString& text)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setLength
      Src: /src/icu/source/common/unicode/unistr.h:4561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - array
    - len
    - capacity
    argTypes:
    - char16_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4564
      start: 4559
    functionDepth: 0
    functionLinenumber: 4559
    functionLinenumberEnd: 4564
    functionName: setArray
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - setLength
    linkageType: ''
    returnType: void
    signature: 'inline void UnicodeString:: setArray(char16_t *array, int32_t len,
      int32_t capacity) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - start
    - srcChar
    argTypes:
    - int32_t
    - char16_t
    constantsTouched: []
    func_position:
      end: 4686
      start: 4683
    functionDepth: 0
    functionLinenumber: 4683
    functionLinenumberEnd: 4686
    functionName: insert
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: insert(int32_t start, char16_t
      srcChar) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3886
      start: 3881
    functionDepth: 0
    functionLinenumber: 3881
    functionLinenumberEnd: 3886
    functionName: getShortLength
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: getShortLength() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pinIndex
      Src: /src/icu/source/common/unicode/unistr.h:4183,1
    - Dst: indexOf
      Src: /src/icu/source/common/unicode/unistr.h:4184,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - text
    - start
    argTypes:
    - UnicodeString
    - int32_t
    constantsTouched: []
    func_position:
      end: 4185
      start: 4180
    functionDepth: 0
    functionLinenumber: 4180
    functionLinenumberEnd: 4185
    functionName: indexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - indexOf
    - length
    - pinIndex
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: indexOf(const UnicodeString& text,
      int32_t start) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCharAt
      Src: /src/icu/source/common/unicode/unistr.h:4517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 4517
      start: 4515
    functionDepth: 0
    functionLinenumber: 4515
    functionLinenumberEnd: 4517
    functionName: charAt
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCharAt
    linkageType: ''
    returnType: char16_t
    signature: 'inline char16_t UnicodeString:: charAt(int32_t offset) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indexOf
      Src: /src/icu/source/common/unicode/unistr.h:4191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - text
    - start
    - _length
    argTypes:
    - UnicodeString
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4191
      start: 4187
    functionDepth: 0
    functionLinenumber: 4187
    functionLinenumberEnd: 4191
    functionName: indexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - indexOf
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: indexOf(const UnicodeString& text,
      int32_t start, int32_t _length) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCharAt
      Src: /src/icu/source/common/unicode/unistr.h:4521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 4521
      start: 4519
    functionDepth: 0
    functionLinenumber: 4519
    functionLinenumberEnd: 4521
    functionName: UnicodeString
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCharAt
    linkageType: ''
    returnType: char16_t
    signature: 'inline char16_t UnicodeString::operator[] (int32_t offset) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnicodeString
      Src: /src/icu/source/common/unicode/unistr.h:2997,1
    - Dst: ConstChar16Ptr
      Src: /src/icu/source/common/unicode/unistr.h:2997,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 2997
      start: 2996
    functionDepth: 0
    functionLinenumber: 2996
    functionLinenumberEnd: 2997
    functionName: UnicodeString
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - UnicodeString
    - ConstChar16Ptr
    linkageType: ''
    returnType: UNISTR_FROM_STRING_EXPLICIT
    signature: 'UNISTR_FROM_STRING_EXPLICIT UnicodeString(const uint16_t *text) :
      UnicodeString(ConstChar16Ptr(text)) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - const std::nullptr_t
    - /*text*/
    argTypes:
    - nullptr_t
    constantsTouched: []
    func_position:
      end: 3863
      start: 3861
    functionDepth: 0
    functionLinenumber: 3861
    functionLinenumberEnd: 3863
    functionName: UnicodeString
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString :: UnicodeString(const std::nullptr_t /*text*/) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3897
      start: 3893
    functionDepth: 0
    functionLinenumber: 3893
    functionLinenumberEnd: 3897
    functionName: getCapacity
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: getCapacity() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCaseCompare
      Src: /src/icu/source/common/unicode/unistr.h:4147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 6
    argNames:
    - start
    - _length
    - srcChars
    - srcStart
    - srcLength
    - options
    argTypes:
    - int32_t
    - int32_t
    - char16_t*
    - int32_t
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 4148
      start: 4140
    functionDepth: 0
    functionLinenumber: 4140
    functionLinenumberEnd: 4148
    functionName: caseCompare
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCaseCompare
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: caseCompare(int32_t start, int32_t _length,
      const char16_t *srcChars, int32_t srcStart, int32_t srcLength, uint32_t options)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doIndexOf
      Src: /src/icu/source/common/unicode/unistr.h:4222,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - char16_t
    constantsTouched: []
    func_position:
      end: 4222
      start: 4220
    functionDepth: 0
    functionLinenumber: 4220
    functionLinenumberEnd: 4222
    functionName: indexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - length
    - doIndexOf
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: indexOf(char16_t c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doReverse
      Src: /src/icu/source/common/unicode/unistr.h:4745,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4745
      start: 4743
    functionDepth: 0
    functionLinenumber: 4743
    functionLinenumberEnd: 4745
    functionName: reverse
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - length
    - doReverse
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: reverse() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - const std::nullptr_t
    - /*text*/
    - int32_t
    - /*length*/
    argTypes:
    - nullptr_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 3867
      start: 3865
    functionDepth: 0
    functionLinenumber: 3865
    functionLinenumberEnd: 3867
    functionName: UnicodeString
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString :: UnicodeString(const std::nullptr_t /*text*/,
      int32_t /*length*/) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCaseCompare
      Src: /src/icu/source/common/unicode/unistr.h:4157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - start
    - limit
    - srcText
    - srcStart
    - srcLimit
    - options
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    - int32_t
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 4158
      start: 4150
    functionDepth: 0
    functionLinenumber: 4150
    functionLinenumberEnd: 4158
    functionName: caseCompareBetween
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCaseCompare
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: caseCompareBetween(int32_t start, int32_t
      limit, const UnicodeString &srcText, int32_t srcStart, int32_t srcLimit, uint32_t
      options) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indexOf
      Src: /src/icu/source/common/unicode/unistr.h:4226,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 4226
      start: 4224
    functionDepth: 0
    functionLinenumber: 4224
    functionLinenumberEnd: 4226
    functionName: indexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - indexOf
    - length
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: indexOf(UChar32 c) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pinIndex
      Src: /src/icu/source/common/unicode/unistr.h:4315,1
    - Dst: doLastIndexOf
      Src: /src/icu/source/common/unicode/unistr.h:4316,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - c
    - start
    argTypes:
    - char16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4317
      start: 4312
    functionDepth: 0
    functionLinenumber: 4312
    functionLinenumberEnd: 4317
    functionName: lastIndexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doLastIndexOf
    - length
    - pinIndex
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: lastIndexOf(char16_t c, int32_t start)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - 'std::'
    - nullptr_t
    - /*buffer*/
    - int32_t
    - /*buffLength*/
    - int32_t
    - /*buffCapacity*/
    argTypes:
    - nullptr_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 3871
      start: 3869
    functionDepth: 0
    functionLinenumber: 3869
    functionLinenumberEnd: 3871
    functionName: UnicodeString
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString :: UnicodeString(std::nullptr_t /*buffer*/, int32_t
      /*buffLength*/, int32_t /*buffCapacity*/) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompareCodePointOrder
      Src: /src/icu/source/common/unicode/unistr.h:4048,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - start
    - _length
    - srcText
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 4048
      start: 4044
    functionDepth: 0
    functionLinenumber: 4044
    functionLinenumberEnd: 4048
    functionName: compareCodePointOrder
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompareCodePointOrder
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: compareCodePointOrder(int32_t start,
      int32_t _length, const UnicodeString& srcText) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompareCodePointOrder
      Src: /src/icu/source/common/unicode/unistr.h:4075,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - start
    - _length
    - srcChars
    - srcStart
    - srcLength
    argTypes:
    - int32_t
    - int32_t
    - char16_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4075
      start: 4069
    functionDepth: 0
    functionLinenumber: 4069
    functionLinenumberEnd: 4075
    functionName: compareCodePointOrder
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompareCodePointOrder
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: compareCodePointOrder(int32_t start,
      int32_t _length, const char16_t *srcChars, int32_t srcStart, int32_t srcLength)
      const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: indexOf
      Src: /src/icu/source/common/unicode/unistr.h:4170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - srcText
    - srcStart
    - srcLength
    - start
    - _length
    argTypes:
    - UnicodeString
    - int32_t
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4174
      start: 4160
    functionDepth: 0
    functionLinenumber: 4160
    functionLinenumberEnd: 4174
    functionName: indexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - indexOf
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: indexOf(const UnicodeString& srcText,
      int32_t srcStart, int32_t srcLength, int32_t start, int32_t _length) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isBogus
      Src: /src/icu/source/common/unicode/unistr.h:4698,1
    - Dst: setToEmpty
      Src: /src/icu/source/common/unicode/unistr.h:4699,1
    - Dst: setZeroLength
      Src: /src/icu/source/common/unicode/unistr.h:4701,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4704
      start: 4694
    functionDepth: 0
    functionLinenumber: 4694
    functionLinenumberEnd: 4704
    functionName: remove
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - setToEmpty
    - setZeroLength
    - isBogus
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: remove() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompareCodePointOrder
      Src: /src/icu/source/common/unicode/unistr.h:4053,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - srcChars
    - srcLength
    argTypes:
    - ConstChar16Ptr
    - int32_t
    constantsTouched: []
    func_position:
      end: 4053
      start: 4050
    functionDepth: 0
    functionLinenumber: 4050
    functionLinenumberEnd: 4053
    functionName: compareCodePointOrder
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - length
    - doCompareCodePointOrder
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: compareCodePointOrder(ConstChar16Ptr
      srcChars, int32_t srcLength) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompareCodePointOrder
      Src: /src/icu/source/common/unicode/unistr.h:4083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - start
    - limit
    - srcText
    - srcStart
    - srcLimit
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4084
      start: 4077
    functionDepth: 0
    functionLinenumber: 4077
    functionLinenumberEnd: 4084
    functionName: compareCodePointOrderBetween
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompareCodePointOrder
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: compareCodePointOrderBetween(int32_t
      start, int32_t limit, const UnicodeString& srcText, int32_t srcStart, int32_t
      srcLimit) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indexOf
      Src: /src/icu/source/common/unicode/unistr.h:4178,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - text
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 4178
      start: 4176
    functionDepth: 0
    functionLinenumber: 4176
    functionLinenumberEnd: 4178
    functionName: indexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - indexOf
    - length
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: indexOf(const UnicodeString& text)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pinIndex
      Src: /src/icu/source/common/unicode/unistr.h:4322,1
    - Dst: lastIndexOf
      Src: /src/icu/source/common/unicode/unistr.h:4323,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - c
    - start
    argTypes:
    - UChar32
    - int32_t
    constantsTouched: []
    func_position:
      end: 4324
      start: 4319
    functionDepth: 0
    functionLinenumber: 4319
    functionLinenumberEnd: 4324
    functionName: lastIndexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - lastIndexOf
    - length
    - pinIndex
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: lastIndexOf(UChar32 c, int32_t start)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lastIndexOf
      Src: /src/icu/source/common/unicode/unistr.h:4247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - srcChars
    - srcLength
    - start
    - _length
    argTypes:
    - ConstChar16Ptr
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4247
      start: 4242
    functionDepth: 0
    functionLinenumber: 4242
    functionLinenumberEnd: 4247
    functionName: lastIndexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - lastIndexOf
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: lastIndexOf(ConstChar16Ptr srcChars,
      int32_t srcLength, int32_t start, int32_t _length) const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lastIndexOf
      Src: /src/icu/source/common/unicode/unistr.h:4267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - srcText
    - srcStart
    - srcLength
    - start
    - _length
    argTypes:
    - UnicodeString
    - int32_t
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4271
      start: 4257
    functionDepth: 0
    functionLinenumber: 4257
    functionLinenumberEnd: 4271
    functionName: lastIndexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - lastIndexOf
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: lastIndexOf(const UnicodeString& srcText,
      int32_t srcStart, int32_t srcLength, int32_t start, int32_t _length) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:3977,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:3977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - text
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 3977
      start: 3975
    functionDepth: 0
    functionLinenumber: 3975
    functionLinenumberEnd: 3977
    functionName: UnicodeString
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    - length
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString::operator<= (const UnicodeString& text)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompareCodePointOrder
      Src: /src/icu/source/common/unicode/unistr.h:4061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - start
    - _length
    - srcText
    - srcStart
    - srcLength
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4061
      start: 4055
    functionDepth: 0
    functionLinenumber: 4055
    functionLinenumberEnd: 4061
    functionName: compareCodePointOrder
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompareCodePointOrder
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: compareCodePointOrder(int32_t start,
      int32_t _length, const UnicodeString& srcText, int32_t srcStart, int32_t srcLength)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pinIndex
      Src: /src/icu/source/common/unicode/unistr.h:4197,1
    - Dst: indexOf
      Src: /src/icu/source/common/unicode/unistr.h:4198,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - srcChars
    - srcLength
    - start
    argTypes:
    - char16_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4199
      start: 4193
    functionDepth: 0
    functionLinenumber: 4193
    functionLinenumberEnd: 4199
    functionName: indexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - indexOf
    - length
    - pinIndex
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: indexOf(const char16_t *srcChars, int32_t
      srcLength, int32_t start) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/common/unicode/unistr.h:4370,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4372,1
    - Dst: toUCharPtr
      Src: /src/icu/source/common/unicode/unistr.h:4370,1
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:4372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - srcChars
    - srcLength
    argTypes:
    - ConstChar16Ptr
    - int32_t
    constantsTouched: []
    func_position:
      end: 4374
      start: 4366
    functionDepth: 0
    functionLinenumber: 4366
    functionLinenumberEnd: 4374
    functionName: endsWith
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    - length
    - u_strlen
    - toUCharPtr
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString:: endsWith(ConstChar16Ptr srcChars, int32_t
      srcLength) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - start
    - _length
    - srcChar
    argTypes:
    - int32_t
    - int32_t
    - char16_t
    constantsTouched: []
    func_position:
      end: 4423
      start: 4419
    functionDepth: 0
    functionLinenumber: 4419
    functionLinenumberEnd: 4423
    functionName: replace
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: replace(int32_t start, int32_t
      _length, char16_t srcChar) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doAppend
      Src: /src/icu/source/common/unicode/unistr.h:4639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - srcChars
    - srcLength
    argTypes:
    - ConstChar16Ptr
    - int32_t
    constantsTouched: []
    func_position:
      end: 4639
      start: 4636
    functionDepth: 0
    functionLinenumber: 4636
    functionLinenumberEnd: 4639
    functionName: append
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doAppend
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: append(ConstChar16Ptr srcChars,
      int32_t srcLength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lastIndexOf
      Src: /src/icu/source/common/unicode/unistr.h:4277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - text
    - start
    - _length
    argTypes:
    - UnicodeString
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4277
      start: 4273
    functionDepth: 0
    functionLinenumber: 4273
    functionLinenumberEnd: 4277
    functionName: lastIndexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - lastIndexOf
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: lastIndexOf(const UnicodeString& text,
      int32_t start, int32_t _length) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:3981,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:3981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - text
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 3981
      start: 3979
    functionDepth: 0
    functionLinenumber: 3979
    functionLinenumberEnd: 3981
    functionName: compare
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    - length
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: compare(const UnicodeString& text) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompareCodePointOrder
      Src: /src/icu/source/common/unicode/unistr.h:4067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - start
    - _length
    - srcChars
    argTypes:
    - int32_t
    - int32_t
    - char16_t*
    constantsTouched: []
    func_position:
      end: 4067
      start: 4063
    functionDepth: 0
    functionLinenumber: 4063
    functionLinenumberEnd: 4067
    functionName: compareCodePointOrder
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompareCodePointOrder
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: compareCodePointOrder(int32_t start,
      int32_t _length, const char16_t *srcChars) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indexOf
      Src: /src/icu/source/common/unicode/unistr.h:4206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - srcChars
    - srcLength
    - start
    - _length
    argTypes:
    - ConstChar16Ptr
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4206
      start: 4201
    functionDepth: 0
    functionLinenumber: 4201
    functionLinenumberEnd: 4206
    functionName: indexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - indexOf
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: indexOf(ConstChar16Ptr srcChars, int32_t
      srcLength, int32_t start, int32_t _length) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pinIndex
      Src: /src/icu/source/common/unicode/unistr.h:4253,1
    - Dst: lastIndexOf
      Src: /src/icu/source/common/unicode/unistr.h:4254,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - srcChars
    - srcLength
    - start
    argTypes:
    - char16_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4255
      start: 4249
    functionDepth: 0
    functionLinenumber: 4249
    functionLinenumberEnd: 4255
    functionName: lastIndexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - lastIndexOf
    - length
    - pinIndex
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: lastIndexOf(const char16_t *srcChars,
      int32_t srcLength, int32_t start) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/common/unicode/unistr.h:4381,1
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:4383,1
    - Dst: toUCharPtr
      Src: /src/icu/source/common/unicode/unistr.h:4381,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4383,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - srcChars
    - srcStart
    - srcLength
    argTypes:
    - char16_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4385
      start: 4376
    functionDepth: 0
    functionLinenumber: 4376
    functionLinenumberEnd: 4385
    functionName: endsWith
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    - length
    - u_strlen
    - toUCharPtr
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString:: endsWith(const char16_t *srcChars, int32_t
      srcStart, int32_t srcLength) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - start
    - limit
    - srcText
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 4429
      start: 4425
    functionDepth: 0
    functionLinenumber: 4425
    functionLinenumberEnd: 4429
    functionName: replaceBetween
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: replaceBetween(int32_t start,
      int32_t limit, const UnicodeString& srcText) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doAppend
      Src: /src/icu/source/common/unicode/unistr.h:4643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - srcChar
    argTypes:
    - char16_t
    constantsTouched: []
    func_position:
      end: 4643
      start: 4641
    functionDepth: 0
    functionLinenumber: 4641
    functionLinenumberEnd: 4643
    functionName: append
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doAppend
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: append(char16_t srcChar) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doReverse
      Src: /src/icu/source/common/unicode/unistr.h:4750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - start
    - _length
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4750
      start: 4747
    functionDepth: 0
    functionLinenumber: 4747
    functionLinenumberEnd: 4750
    functionName: reverse
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doReverse
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: reverse(int32_t start, int32_t
      _length) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compare
      Src: /src/icu/source/common/unicode/unistr.h:4328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - text
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 4328
      start: 4326
    functionDepth: 0
    functionLinenumber: 4326
    functionLinenumberEnd: 4328
    functionName: startsWith
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - compare
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString:: startsWith(const UnicodeString& text)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doAppend
      Src: /src/icu/source/common/unicode/unistr.h:4656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - srcText
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 4656
      start: 4654
    functionDepth: 0
    functionLinenumber: 4654
    functionLinenumberEnd: 4656
    functionName: operator
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doAppend
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: operator+= (const UnicodeString&
      srcText) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:4334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - srcText
    - srcStart
    - srcLength
    argTypes:
    - UnicodeString
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4334
      start: 4330
    functionDepth: 0
    functionLinenumber: 4330
    functionLinenumberEnd: 4334
    functionName: startsWith
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString:: startsWith(const UnicodeString& srcText,
      int32_t srcStart, int32_t srcLength) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - start
    - srcText
    - srcStart
    - srcLength
    argTypes:
    - int32_t
    - UnicodeString
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4663
      start: 4658
    functionDepth: 0
    functionLinenumber: 4658
    functionLinenumberEnd: 4663
    functionName: insert
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: insert(int32_t start, const
      UnicodeString& srcText, int32_t srcStart, int32_t srcLength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 3961
      start: 3959
    functionDepth: 0
    functionLinenumber: 3959
    functionLinenumberEnd: 3961
    functionName: UnicodeString
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString::operator!= (const UnicodeString& text)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:4000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - start
    - _length
    - srcText
    - srcStart
    - srcLength
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4000
      start: 3994
    functionDepth: 0
    functionLinenumber: 3994
    functionLinenumberEnd: 4000
    functionName: compare
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: compare(int32_t start, int32_t _length,
      const UnicodeString& srcText, int32_t srcStart, int32_t srcLength) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/common/unicode/unistr.h:4339,1
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:4341,1
    - Dst: toUCharPtr
      Src: /src/icu/source/common/unicode/unistr.h:4339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - srcChars
    - srcLength
    argTypes:
    - ConstChar16Ptr
    - int32_t
    constantsTouched: []
    func_position:
      end: 4342
      start: 4336
    functionDepth: 0
    functionLinenumber: 4336
    functionLinenumberEnd: 4342
    functionName: startsWith
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    - u_strlen
    - toUCharPtr
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString:: startsWith(ConstChar16Ptr srcChars, int32_t
      srcLength) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doExtract
      Src: /src/icu/source/common/unicode/unistr.h:4467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - start
    - _length
    - target
    - targetStart
    argTypes:
    - int32_t
    - int32_t
    - Char16Ptr
    - int32_t
    constantsTouched: []
    func_position:
      end: 4467
      start: 4462
    functionDepth: 0
    functionLinenumber: 4462
    functionLinenumberEnd: 4467
    functionName: extract
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doExtract
    linkageType: ''
    returnType: void
    signature: 'inline void UnicodeString:: extract(int32_t start, int32_t _length,
      Char16Ptr target, int32_t targetStart) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4557
      start: 4554
    functionDepth: 0
    functionLinenumber: 4554
    functionLinenumberEnd: 4557
    functionName: setToEmpty
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void UnicodeString:: setToEmpty() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:3965,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:3965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - text
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 3965
      start: 3963
    functionDepth: 0
    functionLinenumber: 3963
    functionLinenumberEnd: 3965
    functionName: UnicodeString
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    - length
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString::operator> (const UnicodeString& text)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:4006,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - start
    - _length
    - srcChars
    argTypes:
    - int32_t
    - int32_t
    - char16_t*
    constantsTouched: []
    func_position:
      end: 4006
      start: 4002
    functionDepth: 0
    functionLinenumber: 4002
    functionLinenumberEnd: 4006
    functionName: compare
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: compare(int32_t start, int32_t _length,
      const char16_t *srcChars) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u_strlen
      Src: /src/icu/source/common/unicode/unistr.h:4347,1
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:4349,1
    - Dst: toUCharPtr
      Src: /src/icu/source/common/unicode/unistr.h:4347,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - srcChars
    - srcStart
    - srcLength
    argTypes:
    - char16_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4350
      start: 4344
    functionDepth: 0
    functionLinenumber: 4344
    functionLinenumberEnd: 4350
    functionName: startsWith
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    - u_strlen
    - toUCharPtr
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString:: startsWith(const char16_t *srcChars,
      int32_t srcStart, int32_t srcLength) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doExtract
      Src: /src/icu/source/common/unicode/unistr.h:4473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - start
    - _length
    - target
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 4473
      start: 4469
    functionDepth: 0
    functionLinenumber: 4469
    functionLinenumberEnd: 4473
    functionName: extract
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doExtract
    linkageType: ''
    returnType: void
    signature: 'inline void UnicodeString:: extract(int32_t start, int32_t _length,
      UnicodeString& target) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unBogus
      Src: /src/icu/source/common/unicode/unistr.h:4579,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4580,1
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - srcText
    - srcStart
    - srcLength
    argTypes:
    - UnicodeString
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4581
      start: 4574
    functionDepth: 0
    functionLinenumber: 4574
    functionLinenumberEnd: 4581
    functionName: setTo
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - length
    - unBogus
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: setTo(const UnicodeString& srcText,
      int32_t srcStart, int32_t srcLength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pinIndex
      Src: /src/icu/source/common/unicode/unistr.h:4231,1
    - Dst: doIndexOf
      Src: /src/icu/source/common/unicode/unistr.h:4232,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - c
    - start
    argTypes:
    - char16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4233
      start: 4228
    functionDepth: 0
    functionLinenumber: 4228
    functionLinenumberEnd: 4233
    functionName: indexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - length
    - pinIndex
    - doIndexOf
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: indexOf(char16_t c, int32_t start)
      const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isBogus
      Src: /src/icu/source/common/unicode/unistr.h:3941,1
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:3944,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - start
    - thisLength
    - srcText
    - srcStart
    - srcLength
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 3946
      start: 3933
    functionDepth: 0
    functionLinenumber: 3933
    functionLinenumberEnd: 3946
    functionName: doCompare
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    - isBogus
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: doCompare(int32_t start, int32_t thisLength,
      const UnicodeString& srcText, int32_t srcStart, int32_t srcLength) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:3987,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - start
    - _length
    - srcText
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 3987
      start: 3983
    functionDepth: 0
    functionLinenumber: 3983
    functionLinenumberEnd: 3987
    functionName: compare
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: compare(int32_t start, int32_t _length,
      const UnicodeString& srcText) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:4014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - start
    - _length
    - srcChars
    - srcStart
    - srcLength
    argTypes:
    - int32_t
    - int32_t
    - char16_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4014
      start: 4008
    functionDepth: 0
    functionLinenumber: 4008
    functionLinenumberEnd: 4014
    functionName: compare
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: compare(int32_t start, int32_t _length,
      const char16_t *srcChars, int32_t srcStart, int32_t srcLength) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4527
      start: 4523
    functionDepth: 0
    functionLinenumber: 4523
    functionLinenumberEnd: 4527
    functionName: isEmpty
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString:: isEmpty() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unBogus
      Src: /src/icu/source/common/unicode/unistr.h:4616,1
    - Dst: replace
      Src: /src/icu/source/common/unicode/unistr.h:4617,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - srcChar
    argTypes:
    - UChar32
    constantsTouched: []
    func_position:
      end: 4618
      start: 4613
    functionDepth: 0
    functionLinenumber: 4613
    functionLinenumberEnd: 4618
    functionName: setTo
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - length
    - unBogus
    - replace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: setTo(UChar32 srcChar) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isBogus
      Src: /src/icu/source/common/unicode/unistr.h:3951,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:3954,1
    - Dst: doEquals
      Src: /src/icu/source/common/unicode/unistr.h:3955,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - text
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 3957
      start: 3948
    functionDepth: 0
    functionLinenumber: 3948
    functionLinenumberEnd: 3957
    functionName: UnicodeString
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doEquals
    - length
    - isBogus
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeString::operator== (const UnicodeString& text)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:3992,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:3992,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - srcChars
    - srcLength
    argTypes:
    - ConstChar16Ptr
    - int32_t
    constantsTouched: []
    func_position:
      end: 3992
      start: 3989
    functionDepth: 0
    functionLinenumber: 3989
    functionLinenumberEnd: 3992
    functionName: compare
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    - length
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: compare(ConstChar16Ptr srcChars, int32_t
      srcLength) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCompare
      Src: /src/icu/source/common/unicode/unistr.h:4022,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - start
    - limit
    - srcText
    - srcStart
    - srcLimit
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4023
      start: 4016
    functionDepth: 0
    functionLinenumber: 4016
    functionLinenumberEnd: 4023
    functionName: compareBetween
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCompare
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: compareBetween(int32_t start, int32_t
      limit, const UnicodeString& srcText, int32_t srcStart, int32_t srcLimit) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pinIndex
      Src: /src/icu/source/common/unicode/unistr.h:4238,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4239,1
    - Dst: indexOf
      Src: /src/icu/source/common/unicode/unistr.h:4239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - c
    - start
    argTypes:
    - UChar32
    - int32_t
    constantsTouched: []
    func_position:
      end: 4240
      start: 4235
    functionDepth: 0
    functionLinenumber: 4235
    functionLinenumberEnd: 4240
    functionName: indexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - indexOf
    - length
    - pinIndex
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: indexOf(UChar32 c, int32_t start) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doAppend
      Src: /src/icu/source/common/unicode/unistr.h:4624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - srcText
    - srcStart
    - srcLength
    argTypes:
    - UnicodeString
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4624
      start: 4620
    functionDepth: 0
    functionLinenumber: 4620
    functionLinenumberEnd: 4624
    functionName: append
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doAppend
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: append(const UnicodeString&
      srcText, int32_t srcStart, int32_t srcLength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - UnicodeString
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 1925
      start: 1922
    functionDepth: 0
    functionLinenumber: 1922
    functionLinenumberEnd: 1925
    functionName: swap
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_EXPORT2
    signature: 'U_EXPORT2 swap(UnicodeString &s1, UnicodeString &s2) U_NOEXCEPT '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doLastIndexOf
      Src: /src/icu/source/common/unicode/unistr.h:4294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - c
    - start
    - _length
    argTypes:
    - char16_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4294
      start: 4290
    functionDepth: 0
    functionLinenumber: 4290
    functionLinenumberEnd: 4294
    functionName: lastIndexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doLastIndexOf
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: lastIndexOf(char16_t c, int32_t start,
      int32_t _length) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hasShortLength
      Src: /src/icu/source/common/unicode/unistr.h:3890,1
    - Dst: getShortLength
      Src: /src/icu/source/common/unicode/unistr.h:3890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3891
      start: 3888
    functionDepth: 0
    functionLinenumber: 3888
    functionLinenumberEnd: 3891
    functionName: length
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - hasShortLength
    - getShortLength
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: length() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCaseCompare
      Src: /src/icu/source/common/unicode/unistr.h:4112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - start
    - _length
    - srcText
    - options
    argTypes:
    - int32_t
    - int32_t
    - UnicodeString
    - uint32_t
    constantsTouched: []
    func_position:
      end: 4113
      start: 4107
    functionDepth: 0
    functionLinenumber: 4107
    functionLinenumberEnd: 4113
    functionName: caseCompare
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCaseCompare
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: caseCompare(int32_t start, int32_t _length,
      const UnicodeString &srcText, uint32_t options) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unBogus
      Src: /src/icu/source/common/unicode/unistr.h:4602,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4603,1
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - srcChars
    - srcLength
    argTypes:
    - char16_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 4604
      start: 4598
    functionDepth: 0
    functionLinenumber: 4598
    functionLinenumberEnd: 4604
    functionName: setTo
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - length
    - unBogus
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: setTo(const char16_t *srcChars,
      int32_t srcLength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - start
    - srcText
    argTypes:
    - int32_t
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 4668
      start: 4665
    functionDepth: 0
    functionLinenumber: 4665
    functionLinenumberEnd: 4668
    functionName: insert
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: insert(int32_t start, const
      UnicodeString& srcText) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: replace
      Src: /src/icu/source/common/unicode/unistr.h:4691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - start
    - srcChar
    argTypes:
    - int32_t
    - UChar32
    constantsTouched: []
    func_position:
      end: 4691
      start: 4688
    functionDepth: 0
    functionLinenumber: 4688
    functionLinenumberEnd: 4691
    functionName: insert
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - replace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: insert(int32_t start, UChar32
      srcChar) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remove
      Src: /src/icu/source/common/unicode/unistr.h:4712,1
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - start
    - _length
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4715
      start: 4706
    functionDepth: 0
    functionLinenumber: 4706
    functionLinenumberEnd: 4715
    functionName: remove
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - remove
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: remove(int32_t start, int32_t
      _length) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doLastIndexOf
      Src: /src/icu/source/common/unicode/unistr.h:4300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - c
    - start
    - _length
    argTypes:
    - UChar32
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4301
      start: 4296
    functionDepth: 0
    functionLinenumber: 4296
    functionLinenumberEnd: 4301
    functionName: lastIndexOf
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doLastIndexOf
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeString:: lastIndexOf(UChar32 c, int32_t start,
      int32_t _length) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doCaseCompare
      Src: /src/icu/source/common/unicode/unistr.h:4119,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - srcChars
    - srcLength
    - options
    argTypes:
    - ConstChar16Ptr
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 4120
      start: 4115
    functionDepth: 0
    functionLinenumber: 4115
    functionLinenumberEnd: 4120
    functionName: caseCompare
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doCaseCompare
    - length
    linkageType: ''
    returnType: int8_t
    signature: 'inline int8_t UnicodeString:: caseCompare(ConstChar16Ptr srcChars,
      int32_t srcLength, uint32_t options) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unBogus
      Src: /src/icu/source/common/unicode/unistr.h:4609,1
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4610,1
    - Dst: length
      Src: /src/icu/source/common/unicode/unistr.h:4610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - srcChar
    argTypes:
    - char16_t
    constantsTouched: []
    func_position:
      end: 4611
      start: 4606
    functionDepth: 0
    functionLinenumber: 4606
    functionLinenumberEnd: 4611
    functionName: setTo
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - length
    - unBogus
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: setTo(char16_t srcChar) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 4
    argNames:
    - start
    - srcChars
    - srcStart
    - srcLength
    argTypes:
    - int32_t
    - char16_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4675
      start: 4670
    functionDepth: 0
    functionLinenumber: 4670
    functionLinenumberEnd: 4675
    functionName: insert
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: insert(int32_t start, const
      char16_t *srcChars, int32_t srcStart, int32_t srcLength) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doReplace
      Src: /src/icu/source/common/unicode/unistr.h:4720,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - start
    - limit
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 4720
      start: 4717
    functionDepth: 0
    functionLinenumber: 4717
    functionLinenumberEnd: 4720
    functionName: removeBetween
    functionSourceFile: /src/icu/source/common/unicode/unistr.h
    functionUses: []
    functionsReached:
    - doReplace
    linkageType: ''
    returnType: UnicodeString
    signature: 'inline UnicodeString &UnicodeString:: removeBetween(int32_t start,
      int32_t limit) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/icu/source/common/unicode/locid.h:1017,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1018
    functionName: U_COMMON_API
    functionSourceFile: /src/icu/source/common/unicode/locid.h
    functionUses: []
    functionsReached:
    - next
    linkageType: ''
    returnType: class
    signature: 'class U_COMMON_API Iterator /* not : public UObject because this is
      an interface/mixin class */ '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1048
    functionName: next
    functionSourceFile: /src/icu/source/common/unicode/locid.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Locale
    signature: 'const Locale & next() override '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: converter_
      Src: /src/icu/source/common/unicode/locid.h:1086,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1086
    functionName: next
    functionSourceFile: /src/icu/source/common/unicode/locid.h
    functionUses: []
    functionsReached:
    - converter_
    linkageType: ''
    returnType: Locale
    signature: 'const Locale & next() override '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1170
    functionDepth: 0
    functionLinenumber: 1170
    functionLinenumberEnd: 1174
    functionName: getCountry
    functionSourceFile: /src/icu/source/common/unicode/locid.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'inline const char *Locale::getCountry() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1186
    functionName: getScript
    functionSourceFile: /src/icu/source/common/unicode/locid.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'inline const char *Locale::getScript() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1194
    functionDepth: 0
    functionLinenumber: 1194
    functionLinenumberEnd: 1198
    functionName: getName
    functionSourceFile: /src/icu/source/common/unicode/locid.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'inline const char *Locale::getName() const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: keys
      Src: /src/icu/source/common/unicode/locid.h:1203,1
    - Dst: createKeywords
      Src: /src/icu/source/common/unicode/locid.h:1203,1
    - Dst: U_FAILURE
      Src: /src/icu/source/common/unicode/locid.h:1204,1
    - Dst: U_FAILURE
      Src: /src/icu/source/common/unicode/locid.h:1210,1
    - Dst: StringClass
      Src: /src/icu/source/common/unicode/locid.h:1213,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - iterator
    - status
    argTypes:
    - OutputIterator
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 1215
      start: 1200
    functionDepth: 0
    functionLinenumber: 1200
    functionLinenumberEnd: 1215
    functionName: getKeywords
    functionSourceFile: /src/icu/source/common/unicode/locid.h
    functionUses: []
    functionsReached:
    - StringClass
    - U_FAILURE
    - keys
    - createKeywords
    linkageType: ''
    returnType: void
    signature: 'void Locale:: getKeywords(OutputIterator iterator, UErrorCode& status)
      const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: keys
      Src: /src/icu/source/common/unicode/locid.h:1220,1
    - Dst: U_FAILURE
      Src: /src/icu/source/common/unicode/locid.h:1221,1
    - Dst: createUnicodeKeywords
      Src: /src/icu/source/common/unicode/locid.h:1220,1
    - Dst: U_FAILURE
      Src: /src/icu/source/common/unicode/locid.h:1227,1
    - Dst: StringClass
      Src: /src/icu/source/common/unicode/locid.h:1230,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - iterator
    - status
    argTypes:
    - OutputIterator
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 1232
      start: 1217
    functionDepth: 0
    functionLinenumber: 1217
    functionLinenumberEnd: 1232
    functionName: getUnicodeKeywords
    functionSourceFile: /src/icu/source/common/unicode/locid.h
    functionUses: []
    functionsReached:
    - createUnicodeKeywords
    - U_FAILURE
    - keys
    - StringClass
    linkageType: ''
    returnType: void
    signature: 'void Locale:: getUnicodeKeywords(OutputIterator iterator, UErrorCode&
      status) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sink
      Src: /src/icu/source/common/unicode/locid.h:1165,1
    - Dst: toLanguageTag
      Src: /src/icu/source/common/unicode/locid.h:1166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - status
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 1168
      start: 1161
    functionDepth: 0
    functionLinenumber: 1161
    functionLinenumberEnd: 1168
    functionName: toLanguageTag
    functionSourceFile: /src/icu/source/common/unicode/locid.h
    functionUses: []
    functionsReached:
    - toLanguageTag
    - sink
    linkageType: ''
    returnType: StringClass
    signature: 'StringClass Locale:: toLanguageTag(UErrorCode& status) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1159
    functionName: other
    functionSourceFile: /src/icu/source/common/unicode/locid.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool Locale::operator!=(const Locale& other ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1180
    functionName: getLanguage
    functionSourceFile: /src/icu/source/common/unicode/locid.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'inline const char *Locale::getLanguage() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1188
    functionDepth: 0
    functionLinenumber: 1188
    functionLinenumberEnd: 1192
    functionName: getVariant
    functionSourceFile: /src/icu/source/common/unicode/locid.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'inline const char *Locale::getVariant() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 1255
      start: 1252
    functionDepth: 0
    functionLinenumber: 1252
    functionLinenumberEnd: 1255
    functionName: isBogus
    functionSourceFile: /src/icu/source/common/unicode/locid.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool Locale:: isBogus(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sink
      Src: /src/icu/source/common/unicode/locid.h:1238,1
    - Dst: getKeywordValue
      Src: /src/icu/source/common/unicode/locid.h:1239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - keywordName
    - status
    argTypes:
    - StringPiece
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 1241
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1241
    functionName: getKeywordValue
    functionSourceFile: /src/icu/source/common/unicode/locid.h
    functionUses: []
    functionsReached:
    - getKeywordValue
    - sink
    linkageType: ''
    returnType: StringClass
    signature: 'StringClass Locale:: getKeywordValue(StringPiece keywordName, UErrorCode&
      status) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sink
      Src: /src/icu/source/common/unicode/locid.h:1247,1
    - Dst: getUnicodeKeywordValue
      Src: /src/icu/source/common/unicode/locid.h:1248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - keywordName
    - status
    argTypes:
    - StringPiece
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 1250
      start: 1243
    functionDepth: 0
    functionLinenumber: 1243
    functionLinenumberEnd: 1250
    functionName: getUnicodeKeywordValue
    functionSourceFile: /src/icu/source/common/unicode/locid.h
    functionUses: []
    functionsReached:
    - getUnicodeKeywordValue
    - sink
    linkageType: ''
    returnType: StringClass
    signature: 'StringClass Locale:: getUnicodeKeywordValue(StringPiece keywordName,
      UErrorCode& status) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ErrorCode
      Src: /src/icu/source/common/unicode/errorcode.h:89,1
    - Dst: U_SUCCESS
      Src: /src/icu/source/common/unicode/errorcode.h:97,1
    - Dst: U_FAILURE
      Src: /src/icu/source/common/unicode/errorcode.h:99,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 137
    functionName: ErrorCode
    functionSourceFile: /src/icu/source/common/unicode/errorcode.h
    functionUses: []
    functionsReached:
    - ErrorCode
    - U_SUCCESS
    - U_FAILURE
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API ErrorCode : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: UErrorCode
    functionSourceFile: /src/icu/source/common/unicode/errorcode.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: operator
    signature: 'operator UErrorCode * () '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: UErrorCode
    functionSourceFile: /src/icu/source/common/unicode/errorcode.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: operator
    signature: 'operator UErrorCode & () '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/common/unicode/errorcode.h:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: isFailure
    functionSourceFile: /src/icu/source/common/unicode/errorcode.h
    functionUses: []
    functionsReached:
    - U_FAILURE
    linkageType: ''
    returnType: UBool
    signature: 'UBool isFailure() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U_SUCCESS
      Src: /src/icu/source/common/unicode/errorcode.h:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: isSuccess
    functionSourceFile: /src/icu/source/common/unicode/errorcode.h
    functionUses: []
    functionsReached:
    - U_SUCCESS
    linkageType: ''
    returnType: UBool
    signature: 'UBool isSuccess() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: get
    functionSourceFile: /src/icu/source/common/unicode/errorcode.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UErrorCode
    signature: 'UErrorCode get() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: set
    functionSourceFile: /src/icu/source/common/unicode/errorcode.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void set(UErrorCode value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 136
    functionName: assertSuccess
    functionSourceFile: /src/icu/source/common/unicode/errorcode.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void assertSuccess() const; /** * Return a string for the UErrorCode
      value. * The string will be the same as the name of the error code constant
      * in the UErrorCode enum. * @stable ICU 4.4 */ const char* errorName() const;
      protected: /** * Internal UErrorCode, accessible to subclasses. * @stable ICU
      4.2 */ UErrorCode errorCode; /** * Called by assertSuccess() if isFailure()
      is true. * A subclass should override this function to deal with a failure code:
      * Throw an exception, log an error, terminate the program, or similar. * @stable
      ICU 4.2 */ virtual void handleFailure() const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U8_IS_TRAIL
      Src: /src/icu/source/common/unicode/utf8.h:684,1
    - Dst: U8_MASK_LEAD_BYTE
      Src: /src/icu/source/common/unicode/utf8.h:692,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - s
    - i
    - c
    argTypes:
    - s
    - i
    - c
    constantsTouched: []
    func_position:
      end: 702
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 702
    functionName: U8_PREV_UNSAFE
    functionSourceFile: /src/icu/source/common/unicode/utf8.h
    functionUses: []
    functionsReached:
    - U8_MASK_LEAD_BYTE
    - U8_IS_TRAIL
    linkageType: ''
    returnType: UPRV_BLOCK_MACRO_END
    signature: 'UPRV_BLOCK_MACRO_END /* definitions with backward iteration --------------------------------------
      */ /** * Move the string offset from one code point boundary to the previous
      one * and get the code point between them. * (Pre-decrementing backward iteration.)
      * "Unsafe" macro, assumes well-formed UTF-8. * * The input offset may be the
      same as the string length. * If the offset is behind a multi-byte sequence,
      then the macro will read * the whole sequence. * If the offset is behind a lead
      byte, then that itself * will be returned as the code point. * The result is
      undefined if the offset is behind an illegal UTF-8 sequence. * * @param s const
      uint8_t * string * @param i string offset * @param c output UChar32 variable
      * @see U8_PREV * @stable ICU 2.4 */ #define U8_PREV_UNSAFE(s, i, c) UPRV_BLOCK_MACRO_BEGIN '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CaseMap
      Src: /src/icu/source/common/unicode/casemap.h:487,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 490
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 490
    functionName: U_FINAL
    functionSourceFile: /src/icu/source/common/unicode/casemap.h
    functionUses: []
    functionsReached:
    - CaseMap
    linkageType: ''
    returnType: CaseMap
    signature: 'CaseMap U_FINAL : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getUText
      Src: /src/icu/source/common/unicode/brkiter.h:171,1
    - Dst: getAvailableLocales
      Src: /src/icu/source/common/unicode/brkiter.h:473,1
    - Dst: setText
      Src: /src/icu/source/common/unicode/brkiter.h:204,1
    - Dst: createBufferClone
      Src: /src/icu/source/common/unicode/brkiter.h:519,1
    - Dst: refreshInputText
      Src: /src/icu/source/common/unicode/brkiter.h:622,1
    - Dst: BreakIterator
      Src: /src/icu/source/common/unicode/brkiter.h:636,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 651
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 651
    functionName: BreakIterator
    functionSourceFile: /src/icu/source/common/unicode/brkiter.h
    functionUses: []
    functionsReached:
    - refreshInputText
    - createBufferClone
    - getAvailableLocales
    - setText
    - getUText
    - BreakIterator
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API BreakIterator : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 658
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 658
    functionName: isBufferClone
    functionSourceFile: /src/icu/source/common/unicode/brkiter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool BreakIterator:: isBufferClone() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: rhs
    functionSourceFile: /src/icu/source/common/unicode/brkiter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool operator!=(const BreakIterator& rhs ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Normalizer
      Src: /src/icu/source/common/unicode/normlzr.h:742,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 772
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 772
    functionName: Normalizer
    functionSourceFile: /src/icu/source/common/unicode/normlzr.h
    functionUses: []
    functionsReached:
    - Normalizer
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API Normalizer : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - Normalizer
    constantsTouched: []
    func_position:
      end: 781
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 781
    functionName: Normalizer
    functionSourceFile: /src/icu/source/common/unicode/normlzr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool Normalizer::operator!= (const Normalizer& other) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unorm_compare
      Src: /src/icu/source/common/unicode/normlzr.h:803,1
    - Dst: toUCharPtr
      Src: /src/icu/source/common/unicode/normlzr.h:803,1
    - Dst: toUCharPtr
      Src: /src/icu/source/common/unicode/normlzr.h:804,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - s1
    - s2
    - options
    - errorCode
    argTypes:
    - UnicodeString
    - UnicodeString
    - uint32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 807
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 807
    functionName: compare
    functionSourceFile: /src/icu/source/common/unicode/normlzr.h
    functionUses: []
    functionsReached:
    - toUCharPtr
    - unorm_compare
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t Normalizer:: compare(const UnicodeString &s1, const
      UnicodeString &s2, uint32_t options, UErrorCode &errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isNormalized
      Src: /src/icu/source/common/unicode/normlzr.h:794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - source
    - mode
    - status
    argTypes:
    - UnicodeString
    - UNormalizationMode
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 795
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 795
    functionName: isNormalized
    functionSourceFile: /src/icu/source/common/unicode/normlzr.h
    functionUses: []
    functionsReached:
    - isNormalized
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool Normalizer:: isNormalized(const UnicodeString& source,
      UNormalizationMode mode, UErrorCode &status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quickCheck
      Src: /src/icu/source/common/unicode/normlzr.h:787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - source
    - mode
    - status
    argTypes:
    - UnicodeString
    - UNormalizationMode
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 788
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 788
    functionName: quickCheck
    functionSourceFile: /src/icu/source/common/unicode/normlzr.h
    functionUses: []
    functionsReached:
    - quickCheck
    linkageType: ''
    returnType: UNormalizationCheckResult
    signature: 'inline UNormalizationCheckResult Normalizer:: quickCheck(const UnicodeString&
      source, UNormalizationMode mode, UErrorCode &status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: hasErrors
    functionSourceFile: /src/icu/source/common/unicode/idna.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool hasErrors() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 288
    functionName: getErrors
    functionSourceFile: /src/icu/source/common/unicode/idna.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t getErrors() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: isTransitionalDifferent
    functionSourceFile: /src/icu/source/common/unicode/idna.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool isTransitionalDifferent() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 315
    functionName: reset
    functionSourceFile: /src/icu/source/common/unicode/idna.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void reset() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - code
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 691
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 691
    functionName: U_SUCCESS
    functionSourceFile: /src/icu/source/common/unicode/utypes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool U_SUCCESS(UErrorCode code) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - code
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 697
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 697
    functionName: U_FAILURE
    functionSourceFile: /src/icu/source/common/unicode/utypes.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static inline UBool U_FAILURE(UErrorCode code) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: hasChanges
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool hasChanges() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Iterator
      Src: /src/icu/source/common/unicode/edits.h:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 474
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 474
    functionName: getFineIterator
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached:
    - Iterator
    linkageType: ''
    returnType: Iterator
    signature: 'Iterator getFineIterator() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 511
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 511
    functionName: lastUnit
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t lastUnit() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 334
    functionName: hasChange
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool hasChange() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: newLength
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t newLength() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Iterator
      Src: /src/icu/source/common/unicode/edits.h:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 439
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 439
    functionName: getCoarseChangesIterator
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached:
    - Iterator
    linkageType: ''
    returnType: Iterator
    signature: 'Iterator getCoarseChangesIterator() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 382
    functionName: replacementIndex
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t replacementIndex() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Edits
      Src: /src/icu/source/common/unicode/edits.h:85,1
    - Dst: delta
      Src: /src/icu/source/common/unicode/edits.h:86,1
    - Dst: capacity
      Src: /src/icu/source/common/unicode/edits.h:86,1
    - Dst: array
      Src: /src/icu/source/common/unicode/edits.h:86,1
    - Dst: length
      Src: /src/icu/source/common/unicode/edits.h:86,1
    - Dst: numChanges
      Src: /src/icu/source/common/unicode/edits.h:86,1
    - Dst: errorCode_
      Src: /src/icu/source/common/unicode/edits.h:87,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 98
    functionName: U_FINAL
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached:
    - capacity
    - numChanges
    - errorCode_
    - length
    - array
    - Edits
    - delta
    linkageType: ''
    returnType: Edits
    signature: 'Edits U_FINAL : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 171
    functionName: reset
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void reset() U_NOEXCEPT; /** * Adds a no-change edit: a record for
      an unchanged segment of text. * Normally called from inside ICU string transformation
      functions, not user code. * @stable ICU 59 */ void addUnchanged(int32_t unchangedLength);
      /** * Adds a change edit: a record for a text replacement/insertion/deletion.
      * Normally called from inside ICU string transformation functions, not user
      code. * @stable ICU 59 */ void addReplace(int32_t oldLength, int32_t newLength);
      /** * Sets the UErrorCode if an error occurred while recording edits. * Preserves
      older error codes in the outErrorCode. * Normally called from inside ICU string
      transformation functions, not user code. * @param outErrorCode Set to an error
      code if it does not contain one already * and an error occurred while recording
      edits. * Otherwise unchanged. * @return TRUE if U_FAILURE(outErrorCode) * @stable
      ICU 59 */ UBool copyErrorTo(UErrorCode &outErrorCode) const; /** * How much
      longer is the new text compared with the old text? * @return new length minus
      old length * @stable ICU 59 */ int32_t lengthDelta() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: numberOfChanges
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t numberOfChanges() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Iterator
      Src: /src/icu/source/common/unicode/edits.h:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 451
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 451
    functionName: getCoarseIterator
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached:
    - Iterator
    linkageType: ''
    returnType: Iterator
    signature: 'Iterator getCoarseIterator() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/icu/source/common/unicode/edits.h:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - errorCode
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 231
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 231
    functionName: next
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached:
    - next
    linkageType: ''
    returnType: UBool
    signature: 'UBool next(UErrorCode &errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: findIndex
      Src: /src/icu/source/common/unicode/edits.h:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - i
    - errorCode
    argTypes:
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: findDestinationIndex
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached:
    - findIndex
    linkageType: ''
    returnType: UBool
    signature: 'UBool findDestinationIndex(int32_t i, UErrorCode &errorCode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 342
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 342
    functionName: oldLength
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t oldLength() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 362
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 362
    functionName: sourceIndex
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t sourceIndex() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Iterator
      Src: /src/icu/source/common/unicode/edits.h:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 463
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 463
    functionName: getFineChangesIterator
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached:
    - Iterator
    linkageType: ''
    returnType: Iterator
    signature: 'Iterator getFineChangesIterator() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 391
    functionName: destinationIndex
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t destinationIndex() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - last
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 510
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 510
    functionName: setLastUnit
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setLastUnit(int32_t last) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: findIndex
      Src: /src/icu/source/common/unicode/edits.h:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - i
    - errorCode
    argTypes:
    - int32_t
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: findSourceIndex
    functionSourceFile: /src/icu/source/common/unicode/edits.h
    functionUses: []
    functionsReached:
    - findIndex
    linkageType: ''
    returnType: UBool
    signature: 'UBool findSourceIndex(int32_t i, UErrorCode &errorCode) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringTrieBuilder
      Src: /src/icu/source/common/unicode/stringtriebuilder.h:80,1
    - Dst: write
      Src: /src/icu/source/common/unicode/stringtriebuilder.h:247,1
    - Dst: write
      Src: /src/icu/source/common/unicode/stringtriebuilder.h:237,1
    - Dst: hash
      Src: /src/icu/source/common/unicode/stringtriebuilder.h:201,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 254
    functionName: StringTrieBuilder
    functionSourceFile: /src/icu/source/common/unicode/stringtriebuilder.h
    functionUses: []
    functionsReached:
    - hash
    - write
    - StringTrieBuilder
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API StringTrieBuilder : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/icu/source/common/unicode/stringtriebuilder.h:201,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 201
    functionName: matchNodesCanHaveValues
    functionSourceFile: /src/icu/source/common/unicode/stringtriebuilder.h
    functionUses: []
    functionsReached:
    - hash
    linkageType: ''
    returnType: virtual
    signature: 'virtual UBool matchNodesCanHaveValues() const = 0; /** @internal */
      virtual int32_t getMaxBranchLinearSubNodeLength() const = 0; /** @internal */
      virtual int32_t getMinLinearMatch() const = 0; /** @internal */ virtual int32_t
      getMaxLinearMatchLength() const = 0; #ifndef U_HIDE_INTERNAL_API // max(BytesTrie::kMaxBranchLinearSubNodeLength,
      UCharsTrie::kMaxBranchLinearSubNodeLength). /** @internal */ static const int32_t
      kMaxBranchLinearSubNodeLength=5; // Maximum number of nested split-branch levels
      for a branch on all 2^16 possible char16_t units. // log2(2^16/kMaxBranchLinearSubNodeLength)
      rounded up. /** @internal */ static const int32_t kMaxSplitBranchLevels=14;
      /** * Makes sure that there is only one unique node registered that is * equivalent
      to newNode. * @param newNode Input node. The builder takes ownership. * @param
      errorCode ICU in/out UErrorCode. Set to U_MEMORY_ALLOCATION_ERROR if it was
      success but newNode==NULL. * @return newNode if it is the first of its kind,
      or * an equivalent node if newNode is a duplicate. * @internal */ Node *registerNode(Node
      *newNode, UErrorCode &errorCode); /** * Makes sure that there is only one unique
      FinalValueNode registered * with this value. * Avoids creating a node if the
      value is a duplicate. * @param value A final value. * @param errorCode ICU in/out
      UErrorCode. Set to U_MEMORY_ALLOCATION_ERROR if it was success but newNode==NULL.
      * @return A FinalValueNode with the given value. * @internal */ Node *registerFinalValue(int32_t
      value, UErrorCode &errorCode); #endif /* U_HIDE_INTERNAL_API */ /* * C++ note:
      * registerNode() and registerFinalValue() take ownership of their input nodes,
      * and only return owned nodes. * If they see a failure UErrorCode, they will
      delete the input node. * If they get a NULL pointer, they will record a U_MEMORY_ALLOCATION_ERROR.
      * If there is a failure, they return NULL. * * NULL Node pointers can be safely
      passed into other Nodes because * they call the static Node::hashCode() which
      checks for a NULL pointer first. * * Therefore, as long as builder functions
      register a new node, * they need to check for failures only before explicitly
      dereferencing * a Node pointer, or before setting a new UErrorCode. */ // Hash
      set of nodes, maps from nodes to integer 1. /** @internal */ UHashtable *nodes;
      // Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API, //
      it is needed for layout of other objects. /** * @internal * \cond */ class Node
      : public UObject { public: Node(int32_t initialHash) : hash(initialHash), offset(0) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: hashCode
    functionSourceFile: /src/icu/source/common/unicode/stringtriebuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t hashCode() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 250
    functionName: getOffset
    functionSourceFile: /src/icu/source/common/unicode/stringtriebuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t getOffset() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Node
      Src: /src/icu/source/common/unicode/stringtriebuilder.h:266,1
    - Dst: write
      Src: /src/icu/source/common/unicode/stringtriebuilder.h:268,1
    - Dst: value
      Src: /src/icu/source/common/unicode/stringtriebuilder.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: FinalValueNode
    functionSourceFile: /src/icu/source/common/unicode/stringtriebuilder.h
    functionUses: []
    functionsReached:
    - value
    - write
    - Node
    linkageType: ''
    returnType: class
    signature: 'class FinalValueNode : public Node '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: IntermediateValueNode
    functionSourceFile: /src/icu/source/common/unicode/stringtriebuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class IntermediateValueNode : public ValueNode '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 324
    functionName: LinearMatchNode
    functionSourceFile: /src/icu/source/common/unicode/stringtriebuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class LinearMatchNode : public ValueNode '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 335
    functionName: BranchNode
    functionSourceFile: /src/icu/source/common/unicode/stringtriebuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class BranchNode : public Node '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: operator
    functionSourceFile: /src/icu/source/common/unicode/stringtriebuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool operator !=(const Node &other) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 291
    functionName: ValueNode
    functionSourceFile: /src/icu/source/common/unicode/stringtriebuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: class
    signature: 'class ValueNode : public Node '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: setValue
    functionSourceFile: /src/icu/source/common/unicode/stringtriebuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void setValue(int32_t v) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ListBranchNode
      Src: /src/icu/source/common/unicode/stringtriebuilder.h:342,1
    - Dst: hashCode
      Src: /src/icu/source/common/unicode/stringtriebuilder.h:360,1
    - Dst: write
      Src: /src/icu/source/common/unicode/stringtriebuilder.h:345,1
    - Dst: BranchNode
      Src: /src/icu/source/common/unicode/stringtriebuilder.h:342,1
    - Dst: length
      Src: /src/icu/source/common/unicode/stringtriebuilder.h:342,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 367
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 367
    functionName: ListBranchNode
    functionSourceFile: /src/icu/source/common/unicode/stringtriebuilder.h
    functionUses: []
    functionsReached:
    - ListBranchNode
    - write
    - BranchNode
    - length
    - hashCode
    linkageType: ''
    returnType: class
    signature: 'class ListBranchNode : public BranchNode '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/icu/source/common/unicode/stringtriebuilder.h:396,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 400
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 400
    functionName: BranchHeadNode
    functionSourceFile: /src/icu/source/common/unicode/stringtriebuilder.h
    functionUses: []
    functionsReached:
    - write
    linkageType: ''
    returnType: class
    signature: 'class BranchHeadNode : public ValueNode '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - c
    - value
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 353
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 353
    functionName: add
    functionSourceFile: /src/icu/source/common/unicode/stringtriebuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void add(int32_t c, int32_t value) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - Node*
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: hashCode
    functionSourceFile: /src/icu/source/common/unicode/stringtriebuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t hashCode(const Node *node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/icu/source/common/unicode/stringtriebuilder.h:247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - firstRight
    - lastRight
    - builder
    argTypes:
    - int32_t
    - int32_t
    - StringTrieBuilder
    constantsTouched: []
    func_position:
      end: 249
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 249
    functionName: writeUnlessInsideRightEdge
    functionSourceFile: /src/icu/source/common/unicode/stringtriebuilder.h
    functionUses: []
    functionsReached:
    - write
    linkageType: ''
    returnType: void
    signature: 'inline void writeUnlessInsideRightEdge(int32_t firstRight, int32_t
      lastRight, StringTrieBuilder &builder) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashCode
      Src: /src/icu/source/common/unicode/stringtriebuilder.h:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - c
    - node
    argTypes:
    - int32_t
    - Node*
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: add
    functionSourceFile: /src/icu/source/common/unicode/stringtriebuilder.h
    functionUses: []
    functionsReached:
    - hashCode
    linkageType: ''
    returnType: void
    signature: 'void add(int32_t c, Node *node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/icu/source/common/unicode/stringtriebuilder.h:380,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 385
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 385
    functionName: SplitBranchNode
    functionSourceFile: /src/icu/source/common/unicode/stringtriebuilder.h
    functionUses: []
    functionsReached:
    - write
    linkageType: ''
    returnType: class
    signature: 'class SplitBranchNode : public BranchNode '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/icu/source/common/unicode/char16ptr.h:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: ''
    functionSourceFile: /src/icu/source/common/unicode/char16ptr.h
    functionUses: []
    functionsReached:
    - get
    linkageType: ''
    returnType: operator*
    signature: 'inline operator char16_t *() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/icu/source/common/unicode/char16ptr.h:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: ''
    functionSourceFile: /src/icu/source/common/unicode/char16ptr.h
    functionUses: []
    functionsReached:
    - get
    linkageType: ''
    returnType: operator*
    signature: 'inline operator const char16_t *() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U_ALIASING_BARRIER
      Src: /src/icu/source/common/unicode/char16ptr.h:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - char16_t*
    constantsTouched: []
    func_position:
      end: 264
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 264
    functionName: toUCharPtr
    functionSourceFile: /src/icu/source/common/unicode/char16ptr.h
    functionUses: []
    functionsReached:
    - U_ALIASING_BARRIER
    linkageType: ''
    returnType: UChar*
    signature: 'inline const UChar *toUCharPtr(const char16_t *p) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U_ALIASING_BARRIER
      Src: /src/icu/source/common/unicode/char16ptr.h:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - char16_t*
    constantsTouched: []
    func_position:
      end: 306
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 306
    functionName: toOldUCharPtr
    functionSourceFile: /src/icu/source/common/unicode/char16ptr.h
    functionUses: []
    functionsReached:
    - U_ALIASING_BARRIER
    linkageType: ''
    returnType: OldUChar*
    signature: 'inline OldUChar *toOldUCharPtr(char16_t *p) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Char16Ptr
      Src: /src/icu/source/common/unicode/char16ptr.h:76,1
    - Dst: get
      Src: /src/icu/source/common/unicode/char16ptr.h:89,1
    - Dst: U_ALIASING_BARRIER
      Src: /src/icu/source/common/unicode/char16ptr.h:96,1
    - Dst: Char16Ptr
      Src: /src/icu/source/common/unicode/char16ptr.h:92,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 108
    functionName: U_FINAL
    functionSourceFile: /src/icu/source/common/unicode/char16ptr.h
    functionUses: []
    functionsReached:
    - U_ALIASING_BARRIER
    - Char16Ptr
    - get
    linkageType: ''
    returnType: Char16Ptr
    signature: 'Char16Ptr U_FINAL '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: get
    functionSourceFile: /src/icu/source/common/unicode/char16ptr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char16_t*
    signature: 'char16_t *Char16Ptr::get() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U_ALIASING_BARRIER
      Src: /src/icu/source/common/unicode/char16ptr.h:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - T*
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: cast
    functionSourceFile: /src/icu/source/common/unicode/char16ptr.h
    functionUses: []
    functionsReached:
    - U_ALIASING_BARRIER
    linkageType: ''
    returnType: char16_t*
    signature: 'char16_t *cast(T *t) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: get
    functionSourceFile: /src/icu/source/common/unicode/char16ptr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char16_t*
    signature: 'char16_t *Char16Ptr::get() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConstChar16Ptr
      Src: /src/icu/source/common/unicode/char16ptr.h:184,1
    - Dst: U_ALIASING_BARRIER
      Src: /src/icu/source/common/unicode/char16ptr.h:204,1
    - Dst: get
      Src: /src/icu/source/common/unicode/char16ptr.h:197,1
    - Dst: ConstChar16Ptr
      Src: /src/icu/source/common/unicode/char16ptr.h:200,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 216
    functionName: U_FINAL
    functionSourceFile: /src/icu/source/common/unicode/char16ptr.h
    functionUses: []
    functionsReached:
    - U_ALIASING_BARRIER
    - get
    - ConstChar16Ptr
    linkageType: ''
    returnType: ConstChar16Ptr
    signature: 'ConstChar16Ptr U_FINAL '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U_ALIASING_BARRIER
      Src: /src/icu/source/common/unicode/char16ptr.h:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - T*
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: cast
    functionSourceFile: /src/icu/source/common/unicode/char16ptr.h
    functionUses: []
    functionsReached:
    - U_ALIASING_BARRIER
    linkageType: ''
    returnType: char16_t*
    signature: 'const char16_t *cast(const T *t) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: get
    functionSourceFile: /src/icu/source/common/unicode/char16ptr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char16_t*
    signature: 'const char16_t *ConstChar16Ptr::get() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 247
    functionName: get
    functionSourceFile: /src/icu/source/common/unicode/char16ptr.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char16_t*
    signature: 'const char16_t *ConstChar16Ptr::get() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U_ALIASING_BARRIER
      Src: /src/icu/source/common/unicode/char16ptr.h:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - char16_t*
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: toUCharPtr
    functionSourceFile: /src/icu/source/common/unicode/char16ptr.h
    functionUses: []
    functionsReached:
    - U_ALIASING_BARRIER
    linkageType: ''
    returnType: UChar*
    signature: 'inline UChar *toUCharPtr(char16_t *p) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U_ALIASING_BARRIER
      Src: /src/icu/source/common/unicode/char16ptr.h:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - char16_t*
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: toOldUCharPtr
    functionSourceFile: /src/icu/source/common/unicode/char16ptr.h
    functionUses: []
    functionsReached:
    - U_ALIASING_BARRIER
    linkageType: ''
    returnType: OldUChar*
    signature: 'inline const OldUChar *toOldUCharPtr(const char16_t *p) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 242
    functionName: Replaceable
    functionSourceFile: /src/icu/source/common/unicode/rep.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Replaceable
    signature: 'inline Replaceable :: Replaceable() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getLength
      Src: /src/icu/source/common/unicode/rep.h:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: length
    functionSourceFile: /src/icu/source/common/unicode/rep.h
    functionUses: []
    functionsReached:
    - getLength
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t Replaceable:: length() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getChar32At
      Src: /src/icu/source/common/unicode/rep.h:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: char32At
    functionSourceFile: /src/icu/source/common/unicode/rep.h
    functionUses: []
    functionsReached:
    - getChar32At
    linkageType: ''
    returnType: UChar32
    signature: 'inline UChar32 Replaceable:: char32At(int32_t offset) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getCharAt
      Src: /src/icu/source/common/unicode/rep.h:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: charAt
    functionSourceFile: /src/icu/source/common/unicode/rep.h
    functionUses: []
    functionsReached:
    - getCharAt
    linkageType: ''
    returnType: char16_t
    signature: 'inline char16_t Replaceable:: charAt(int32_t offset) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getText
      Src: /src/icu/source/common/unicode/uchriter.h:358,1
    - Dst: UCharCharacterIterator
      Src: /src/icu/source/common/unicode/uchriter.h:379,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 386
    functionName: UCharCharacterIterator
    functionSourceFile: /src/icu/source/common/unicode/uchriter.h
    functionUses: []
    functionsReached:
    - UCharCharacterIterator
    - getText
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API UCharCharacterIterator : public CharacterIterator '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: matchNodesCanHaveValues
    functionSourceFile: /src/icu/source/common/unicode/bytestriebuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UBool matchNodesCanHaveValues() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/icu/source/common/unicode/bytestriebuilder.h:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: BTLinearMatchNode
    functionSourceFile: /src/icu/source/common/unicode/bytestriebuilder.h
    functionUses: []
    functionsReached:
    - write
    linkageType: ''
    returnType: class
    signature: 'class BTLinearMatchNode : public LinearMatchNode '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: getMinLinearMatch
    functionSourceFile: /src/icu/source/common/unicode/bytestriebuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual int32_t getMinLinearMatch() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: getMaxLinearMatchLength
    functionSourceFile: /src/icu/source/common/unicode/bytestriebuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual int32_t getMaxLinearMatchLength() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: getMaxBranchLinearSubNodeLength
    functionSourceFile: /src/icu/source/common/unicode/bytestriebuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual int32_t getMaxBranchLinearSubNodeLength() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteSink
      Src: /src/icu/source/common/unicode/bytestream.h:58,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 133
    functionName: ByteSink
    functionSourceFile: /src/icu/source/common/unicode/bytestream.h
    functionUses: []
    functionsReached:
    - ByteSink
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API ByteSink : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: NumberOfBytesWritten
    functionSourceFile: /src/icu/source/common/unicode/bytestream.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t NumberOfBytesWritten() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: Overflowed
    functionSourceFile: /src/icu/source/common/unicode/bytestream.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool Overflowed() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: NumberOfBytesAppended
    functionSourceFile: /src/icu/source/common/unicode/bytestream.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t NumberOfBytesAppended() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - data
    - n
    argTypes:
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 261
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 261
    functionName: Append
    functionSourceFile: /src/icu/source/common/unicode/bytestream.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual void Append(const char* data, int32_t n) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 254
    functionName: (dest)
    functionSourceFile: /src/icu/source/common/unicode/bytestream.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: dest_
    signature: 'dest_ (dest) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 515
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 515
    functionName: std
    functionSourceFile: /src/icu/source/common/unicode/platform.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace std '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: permute
      Src: /src/icu/source/common/unicode/caniter.h:132,1
    - Dst: CanonicalIterator
      Src: /src/icu/source/common/unicode/caniter.h:152,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 205
    functionName: U_FINAL
    functionSourceFile: /src/icu/source/common/unicode/caniter.h
    functionUses: []
    functionsReached:
    - permute
    - CanonicalIterator
    linkageType: ''
    returnType: CanonicalIterator
    signature: 'CanonicalIterator U_FINAL : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: getState64
    functionSourceFile: /src/icu/source/common/unicode/bytestrie.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: 'uint64_t getState64() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readValue
      Src: /src/icu/source/common/unicode/bytestrie.h:249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 250
    functionName: getValue
    functionSourceFile: /src/icu/source/common/unicode/bytestrie.h
    functionUses: []
    functionsReached:
    - readValue
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t getValue() const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nextImpl
      Src: /src/icu/source/common/unicode/bytestrie.h:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - inByte
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: first
    functionSourceFile: /src/icu/source/common/unicode/bytestrie.h
    functionUses: []
    functionsReached:
    - nextImpl
    linkageType: ''
    returnType: UStringTrieResult
    signature: 'inline UStringTrieResult first(int32_t inByte) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 399
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 399
    functionName: getString
    functionSourceFile: /src/icu/source/common/unicode/bytestrie.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: StringPiece
    signature: 'StringPiece getString() const; /** * @return The value for the last
      successful next(). * @stable ICU 4.8 */ int32_t getValue() const { return value_;
      } private: UBool truncateAndStop(); const uint8_t *branchNext(const uint8_t
      *pos, int32_t length, UErrorCode &errorCode); const uint8_t *bytes_; const uint8_t
      *pos_; const uint8_t *initialPos_; int32_t remainingMatchLength_; int32_t initialRemainingMatchLength_;
      CharString *str_; int32_t maxLength_; int32_t value_; // The stack stores pairs
      of integers for backtracking to another // outbound edge of a branch node. //
      The first integer is an offset from bytes_. // The second integer has the str_->length()
      from before the node in bits 15..0, // and the remaining branch length in bits
      24..16. (Bits 31..25 are unused.) // (We could store the remaining branch length
      minus 1 in bits 23..16 and not use bits 31..24, // but the code looks more confusing
      that way.) UVector32 *stack_; }; private: friend class BytesTrieBuilder; /**
      * Constructs a BytesTrie reader instance. * Unlike the public constructor which
      just aliases an array, * this constructor adopts the builder''s array. * This
      constructor is only called by the builder. */ BytesTrie(void *adoptBytes, const
      void *trieBytes) : ownedArray_(static_cast<uint8_t *>(adoptBytes)), bytes_(static_cast<const
      uint8_t *>(trieBytes)), pos_(bytes_), remainingMatchLength_(-1) {} // No assignment
      operator. BytesTrie &operator=(const BytesTrie &other); inline void stop() '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - pos
    - leadByte
    argTypes:
    - uint8_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 416
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 416
    functionName: skipValue
    functionSourceFile: /src/icu/source/common/unicode/bytestrie.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint8_t*
    signature: 'static inline const uint8_t *skipValue(const uint8_t *pos, int32_t
      leadByte) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: State
      Src: /src/icu/source/common/unicode/bytestrie.h:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 152
    functionName: UMemory
    functionSourceFile: /src/icu/source/common/unicode/bytestrie.h
    functionUses: []
    functionsReached:
    - State
    linkageType: ''
    returnType: class
    signature: 'class State : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: skipValue
      Src: /src/icu/source/common/unicode/bytestrie.h:419,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 420
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 420
    functionName: skipValue
    functionSourceFile: /src/icu/source/common/unicode/bytestrie.h
    functionUses: []
    functionsReached:
    - skipValue
    linkageType: ''
    returnType: uint8_t*
    signature: 'static inline const uint8_t *skipValue(const uint8_t *pos) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - pos
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 437
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 437
    functionName: skipDelta
    functionSourceFile: /src/icu/source/common/unicode/bytestrie.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint8_t*
    signature: 'static inline const uint8_t *skipDelta(const uint8_t *pos) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: findUniqueValue
      Src: /src/icu/source/common/unicode/bytestrie.h:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - uniqueValue
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: hasUniqueValue
    functionSourceFile: /src/icu/source/common/unicode/bytestrie.h
    functionUses: []
    functionsReached:
    - findUniqueValue
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool hasUniqueValue(int32_t &uniqueValue) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 441
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 441
    functionName: valueResult
    functionSourceFile: /src/icu/source/common/unicode/bytestrie.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UStringTrieResult
    signature: 'static inline UStringTrieResult valueResult(int32_t node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: createInstance
      Src: /src/icu/source/common/unicode/locdspnm.h:201,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 202
    functionName: getLocale
    functionSourceFile: /src/icu/source/common/unicode/locdspnm.h
    functionUses: []
    functionsReached:
    - createInstance
    linkageType: ''
    returnType: virtual
    signature: 'virtual const Locale& getLocale() const = 0; /** * Returns the dialect
      handling used in the display names. * @return the dialect handling enum * @stable
      ICU 4.4 */ virtual UDialectHandling getDialectHandling() const = 0; /** * Returns
      the UDisplayContext value for the specified UDisplayContextType. * @param type
      the UDisplayContextType whose value to return * @return the UDisplayContext
      for the specified type. * @stable ICU 51 */ virtual UDisplayContext getContext(UDisplayContextType
      type) const = 0; // names for entire locales /** * Returns the display name
      of the provided locale. * @param locale the locale whose display name to return
      * @param result receives the locale''s display name * @return the display name
      of the provided locale * @stable ICU 4.4 */ virtual UnicodeString& localeDisplayName(const
      Locale& locale, UnicodeString& result) const = 0; /** * Returns the display
      name of the provided locale id. * @param localeId the id of the locale whose
      display name to return * @param result receives the locale''s display name *
      @return the display name of the provided locale * @stable ICU 4.4 */ virtual
      UnicodeString& localeDisplayName(const char* localeId, UnicodeString& result)
      const = 0; // names for components of a locale id /** * Returns the display
      name of the provided language code. * @param lang the language code * @param
      result receives the language code''s display name * @return the display name
      of the provided language code * @stable ICU 4.4 */ virtual UnicodeString& languageDisplayName(const
      char* lang, UnicodeString& result) const = 0; /** * Returns the display name
      of the provided script code. * @param script the script code * @param result
      receives the script code''s display name * @return the display name of the provided
      script code * @stable ICU 4.4 */ virtual UnicodeString& scriptDisplayName(const
      char* script, UnicodeString& result) const = 0; /** * Returns the display name
      of the provided script code. * @param scriptCode the script code number * @param
      result receives the script code''s display name * @return the display name of
      the provided script code * @stable ICU 4.4 */ virtual UnicodeString& scriptDisplayName(UScriptCode
      scriptCode, UnicodeString& result) const = 0; /** * Returns the display name
      of the provided region code. * @param region the region code * @param result
      receives the region code''s display name * @return the display name of the provided
      region code * @stable ICU 4.4 */ virtual UnicodeString& regionDisplayName(const
      char* region, UnicodeString& result) const = 0; /** * Returns the display name
      of the provided variant. * @param variant the variant string * @param result
      receives the variant''s display name * @return the display name of the provided
      variant * @stable ICU 4.4 */ virtual UnicodeString& variantDisplayName(const
      char* variant, UnicodeString& result) const = 0; /** * Returns the display name
      of the provided locale key. * @param key the locale key name * @param result
      receives the locale key''s display name * @return the display name of the provided
      locale key * @stable ICU 4.4 */ virtual UnicodeString& keyDisplayName(const
      char* key, UnicodeString& result) const = 0; /** * Returns the display name
      of the provided value (used with the provided key). * @param key the locale
      key name * @param value the locale key''s value * @param result receives the
      value''s display name * @return the display name of the provided value * @stable
      ICU 4.4 */ virtual UnicodeString& keyValueDisplayName(const char* key, const
      char* value, UnicodeString& result) const = 0; };inline LocaleDisplayNames*
      LocaleDisplayNames::createInstance(const Locale& locale) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set
      Src: /src/icu/source/common/unicode/enumset.h:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - toRemove
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: remove
    functionSourceFile: /src/icu/source/common/unicode/enumset.h
    functionUses: []
    functionsReached:
    - set
    linkageType: ''
    returnType: void
    signature: 'inline void remove(T toRemove) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag
      Src: /src/icu/source/common/unicode/enumset.h:43,1
    - Dst: flag
      Src: /src/icu/source/common/unicode/enumset.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - toSet
    - v
    argTypes:
    - T
    - int32_t
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: set
    functionSourceFile: /src/icu/source/common/unicode/enumset.h
    functionUses: []
    functionsReached:
    - flag
    linkageType: ''
    returnType: void
    signature: 'inline void set(T toSet, int32_t v) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - toCheck
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: isValidEnum
    functionSourceFile: /src/icu/source/common/unicode/enumset.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool isValidEnum(T toCheck) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: getAll
    functionSourceFile: /src/icu/source/common/unicode/enumset.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: 'inline uint32_t getAll() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/icu/source/common/unicode/enumset.h:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - toCheck
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: contains
    functionSourceFile: /src/icu/source/common/unicode/enumset.h
    functionUses: []
    functionsReached:
    - get
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t contains(T toCheck) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flag
      Src: /src/icu/source/common/unicode/enumset.h:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - toCheck
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: get
    functionSourceFile: /src/icu/source/common/unicode/enumset.h
    functionUses: []
    functionsReached:
    - flag
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t get(T toCheck) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: isValidValue
    functionSourceFile: /src/icu/source/common/unicode/enumset.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool isValidValue(int32_t v) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set
      Src: /src/icu/source/common/unicode/enumset.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - toAdd
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: add
    functionSourceFile: /src/icu/source/common/unicode/enumset.h
    functionUses: []
    functionsReached:
    - set
    linkageType: ''
    returnType: void
    signature: 'inline void add(T toAdd) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: getState64
    functionSourceFile: /src/icu/source/common/unicode/ucharstrie.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: 'uint64_t getState64() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nextImpl
      Src: /src/icu/source/common/unicode/ucharstrie.h:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - uchar
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: first
    functionSourceFile: /src/icu/source/common/unicode/ucharstrie.h
    functionUses: []
    functionsReached:
    - nextImpl
    linkageType: ''
    returnType: UStringTrieResult
    signature: 'inline UStringTrieResult first(int32_t uchar) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readValue
      Src: /src/icu/source/common/unicode/ucharstrie.h:264,1
    - Dst: readNodeValue
      Src: /src/icu/source/common/unicode/ucharstrie.h:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 265
    functionName: getValue
    functionSourceFile: /src/icu/source/common/unicode/ucharstrie.h
    functionUses: []
    functionsReached:
    - readNodeValue
    - readValue
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t getValue() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: findUniqueValue
      Src: /src/icu/source/common/unicode/ucharstrie.h:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - uniqueValue
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: hasUniqueValue
    functionSourceFile: /src/icu/source/common/unicode/ucharstrie.h
    functionUses: []
    functionsReached:
    - findUniqueValue
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool hasUniqueValue(int32_t &uniqueValue) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 362
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 362
    functionName: getString
    functionSourceFile: /src/icu/source/common/unicode/ucharstrie.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: 'const UnicodeString & getString() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 367
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 367
    functionName: getValue
    functionSourceFile: /src/icu/source/common/unicode/ucharstrie.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getValue() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 417
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 417
    functionName: stop
    functionSourceFile: /src/icu/source/common/unicode/ucharstrie.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void stop() '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - pos
    - leadUnit
    argTypes:
    - char16_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 431
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 431
    functionName: readValue
    functionSourceFile: /src/icu/source/common/unicode/ucharstrie.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t readValue(const char16_t *pos, int32_t leadUnit) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - pos
    - leadUnit
    argTypes:
    - char16_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 441
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 441
    functionName: skipValue
    functionSourceFile: /src/icu/source/common/unicode/ucharstrie.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char16_t*
    signature: 'static inline const char16_t *skipValue(const char16_t *pos, int32_t
      leadUnit) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: skipValue
      Src: /src/icu/source/common/unicode/ucharstrie.h:444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - pos
    argTypes:
    - char16_t*
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: skipValue
    functionSourceFile: /src/icu/source/common/unicode/ucharstrie.h
    functionUses: []
    functionsReached:
    - skipValue
    linkageType: ''
    returnType: char16_t*
    signature: 'static inline const char16_t *skipValue(const char16_t *pos) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - pos
    - leadUnit
    argTypes:
    - char16_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 458
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 458
    functionName: readNodeValue
    functionSourceFile: /src/icu/source/common/unicode/ucharstrie.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'static inline int32_t readNodeValue(const char16_t *pos, int32_t leadUnit) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - pos
    - leadUnit
    argTypes:
    - char16_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 469
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 469
    functionName: skipNodeValue
    functionSourceFile: /src/icu/source/common/unicode/ucharstrie.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char16_t*
    signature: 'static inline const char16_t *skipNodeValue(const char16_t *pos, int32_t
      leadUnit) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - pos
    argTypes:
    - char16_t*
    constantsTouched: []
    func_position:
      end: 482
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 482
    functionName: jumpByDelta
    functionSourceFile: /src/icu/source/common/unicode/ucharstrie.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char16_t*
    signature: 'static inline const char16_t *jumpByDelta(const char16_t *pos) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 498
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 498
    functionName: valueResult
    functionSourceFile: /src/icu/source/common/unicode/ucharstrie.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UStringTrieResult
    signature: 'static inline UStringTrieResult valueResult(int32_t node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: State
      Src: /src/icu/source/common/unicode/ucharstrie.h:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 152
    functionName: UMemory
    functionSourceFile: /src/icu/source/common/unicode/ucharstrie.h
    functionUses: []
    functionsReached:
    - State
    linkageType: ''
    returnType: class
    signature: 'class State : public UMemory '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - pos
    argTypes:
    - char16_t*
    constantsTouched: []
    func_position:
      end: 494
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 494
    functionName: skipDelta
    functionSourceFile: /src/icu/source/common/unicode/ucharstrie.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char16_t*
    signature: 'static const char16_t *skipDelta(const char16_t *pos) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: getDesiredLocale
    functionSourceFile: /src/icu/source/common/unicode/localematcher.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Locale*
    signature: 'inline const Locale *getDesiredLocale() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: getSupportedLocale
    functionSourceFile: /src/icu/source/common/unicode/localematcher.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Locale*
    signature: 'inline const Locale *getSupportedLocale() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: getDesiredIndex
    functionSourceFile: /src/icu/source/common/unicode/localematcher.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t getDesiredIndex() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 223
    functionName: getSupportedIndex
    functionSourceFile: /src/icu/source/common/unicode/localematcher.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t getSupportedIndex() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: U_ICU_NAMESPACE
    functionSourceFile: /src/icu/source/common/unicode/uversion.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace U_ICU_NAMESPACE '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: U_ICU_NAMESPACE
    functionSourceFile: /src/icu/source/common/unicode/uversion.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace U_ICU_NAMESPACE '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 617
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 617
    functionName: autoQuoteApostropheDeep
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: 'UnicodeString autoQuoteApostropheDeep() const; class Part; /** * Returns
      the number of "parts" created by parsing the pattern string. * Returns 0 if
      no pattern has been parsed or clear() was called. * @return the number of pattern
      parts. * @stable ICU 4.8 */ int32_t countParts() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getPart
      Src: /src/icu/source/common/unicode/messagepattern.h:648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - partIndex
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 649
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 649
    functionName: getPatternIndex
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached:
    - getPart
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getPatternIndex(int32_t partIndex) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 736
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 736
    functionName: getIndex
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getIndex() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - UMessagePatternPartType
    constantsTouched: []
    func_position:
      end: 792
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 792
    functionName: hasNumericValue
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'static UBool hasNumericValue(UMessagePatternPartType type) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 808
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 808
    functionName: operator
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool operator !=(const Part &other) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 537
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 537
    functionName: other
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool operator!=(const MessagePattern & other ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 580
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 580
    functionName: hasNumberedArguments
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool hasNumberedArguments() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 727
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 727
    functionName: getType
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UMessagePatternPartType
    signature: 'UMessagePatternPartType getType() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 766
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 766
    functionName: getValue
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getValue() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 816
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 816
    functionName: hashCode
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t hashCode() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parseArgNumber
      Src: /src/icu/source/common/unicode/messagepattern.h:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - start
    - limit
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 865
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 865
    functionName: parseArgNumber
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached:
    - parseArgNumber
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t parseArgNumber(int32_t start, int32_t limit) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - part
    argTypes:
    - Part
    constantsTouched: []
    func_position:
      end: 660
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 660
    functionName: getSubstring
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: 'UnicodeString getSubstring(const Part &part) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getPart
      Src: /src/icu/source/common/unicode/messagepattern.h:637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 638
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 638
    functionName: getPartType
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached:
    - getPart
    linkageType: ''
    returnType: UMessagePatternPartType
    signature: 'UMessagePatternPartType getPartType(int32_t i) const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getPart
      Src: /src/icu/source/common/unicode/messagepattern.h:698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - start
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 703
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 703
    functionName: getLimitPartIndex
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached:
    - getPart
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getLimitPartIndex(int32_t start) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/icu/source/common/unicode/messagepattern.h:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - mode
    argTypes:
    - UMessagePatternApostropheMode
    constantsTouched: []
    func_position:
      end: 521
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 521
    functionName: clearPatternAndSetApostropheMode
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: 'void clearPatternAndSetApostropheMode(UMessagePatternApostropheMode
      mode) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - i
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 627
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 627
    functionName: getPart
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: Part
    signature: 'const Part & getPart(int32_t i) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 571
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 571
    functionName: hashCode
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t hashCode() const; /** * @return this instance''s UMessagePatternApostropheMode.
      * @stable ICU 4.8 */ UMessagePatternApostropheMode getApostropheMode() const
      { return aposMode; } // Java has package-private jdkAposMode() here. // In C++,
      this is declared in the MessageImpl class. /** * @return the parsed pattern
      string (null if none was parsed). * @stable ICU 4.8 */ const UnicodeString &getPatternString()
      const { return msg; } /** * Does the parsed pattern have named arguments like
      {first_name}? * @return TRUE if the parsed pattern has at least one named argument.
      * @stable ICU 4.8 */ UBool hasNamedArguments() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - part
    - s
    argTypes:
    - Part
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 671
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 671
    functionName: partSubstringMatches
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool partSubstringMatches(const Part &part, const UnicodeString &s)
      const '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Part
      Src: /src/icu/source/common/unicode/messagepattern.h:718,1
    - Dst: getType
      Src: /src/icu/source/common/unicode/messagepattern.h:775,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 831
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 831
    functionName: UMemory
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached:
    - getType
    - Part
    linkageType: ''
    returnType: class
    signature: 'class Part : public UMemory '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getType
      Src: /src/icu/source/common/unicode/messagepattern.h:775,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 781
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 781
    functionName: getArgType
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached:
    - getType
    linkageType: ''
    returnType: UMessagePatternArgType
    signature: 'UMessagePatternArgType getArgType() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 756
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 756
    functionName: getLimit
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getLimit() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 746
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 746
    functionName: getLength
    functionSourceFile: /src/icu/source/common/unicode/messagepattern.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t getLength() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPattern
      Src: /src/icu/source/common/unicode/unimatch.h:142,1
    - Dst: addMatchSetTo
      Src: /src/icu/source/common/unicode/unimatch.h:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 161
    functionName: UnicodeMatcher
    functionSourceFile: /src/icu/source/common/unicode/unimatch.h
    functionUses: []
    functionsReached:
    - toPattern
    - addMatchSetTo
    linkageType: ''
    returnType: class
    signature: 'class U_COMMON_API UnicodeMatcher /* not : public UObject because
      this is an interface/mixin class */ '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: matchNodesCanHaveValues
    functionSourceFile: /src/icu/source/common/unicode/ucharstriebuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual UBool matchNodesCanHaveValues() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: getMaxLinearMatchLength
    functionSourceFile: /src/icu/source/common/unicode/ucharstriebuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual int32_t getMaxLinearMatchLength() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: getMaxBranchLinearSubNodeLength
    functionSourceFile: /src/icu/source/common/unicode/ucharstriebuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual int32_t getMaxBranchLinearSubNodeLength() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: getMinLinearMatch
    functionSourceFile: /src/icu/source/common/unicode/ucharstriebuilder.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: virtual
    signature: 'virtual int32_t getMinLinearMatch() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/icu/source/common/unicode/ucharstriebuilder.h:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: UCTLinearMatchNode
    functionSourceFile: /src/icu/source/common/unicode/ucharstriebuilder.h
    functionUses: []
    functionsReached:
    - write
    linkageType: ''
    returnType: class
    signature: 'class UCTLinearMatchNode : public LinearMatchNode '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: normalize
      Src: /src/icu/source/common/unicode/normalizer2.h:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - src
    - errorCode
    argTypes:
    - UnicodeString
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: normalize
    functionSourceFile: /src/icu/source/common/unicode/normalizer2.h
    functionUses: []
    functionsReached:
    - normalize
    linkageType: ''
    returnType: UnicodeString
    signature: 'UnicodeString normalize(const UnicodeString &src, UErrorCode &errorCode)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getText
      Src: /src/icu/source/common/unicode/schriter.h:151,1
    - Dst: StringCharacterIterator
      Src: /src/icu/source/common/unicode/schriter.h:172,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 188
    functionName: StringCharacterIterator
    functionSourceFile: /src/icu/source/common/unicode/schriter.h
    functionUses: []
    functionsReached:
    - StringCharacterIterator
    - getText
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API StringCharacterIterator : public UCharCharacterIterator '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 695
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 695
    functionName: RuleBasedBreakIterator
    functionSourceFile: /src/icu/source/common/unicode/rbbi.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool RuleBasedBreakIterator ::operator!=(const BreakIterator&
      that) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 204
    functionName: UMemory
    functionSourceFile: /src/icu/source/common/unicode/uobject.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - '*'
    - '*'
    argTypes:
    - void
    - void
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: delete
    functionSourceFile: /src/icu/source/common/unicode/uobject.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: operator
    signature: 'operator delete(void *, void *) U_NOEXCEPT '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - size_t
    - ptr
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: new
    functionSourceFile: /src/icu/source/common/unicode/uobject.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: operator
    signature: 'operator new(size_t, void *ptr) U_NOEXCEPT '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 265
    functionName: operator
    functionSourceFile: /src/icu/source/common/unicode/uobject.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool operator !=(const UObject &other) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: std
    functionSourceFile: /src/icu/source/common/unicode/std_string.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: namespace
    signature: 'namespace std '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addMatchSetTo
      Src: /src/icu/source/common/unicode/uniset.h:1053,1
    - Dst: add
      Src: /src/icu/source/common/unicode/uniset.h:1099,1
    - Dst: removeAll
      Src: /src/icu/source/common/unicode/uniset.h:1163,1
    - Dst: removeAllStrings
      Src: /src/icu/source/common/unicode/uniset.h:1382,1
    - Dst: compact
      Src: /src/icu/source/common/unicode/uniset.h:1467,1
    - Dst: applyPattern
      Src: /src/icu/source/common/unicode/uniset.h:652,1
    - Dst: applyIntPropertyValue
      Src: /src/icu/source/common/unicode/uniset.h:733,1
    - Dst: applyPropertyAlias
      Src: /src/icu/source/common/unicode/uniset.h:766,1
    - Dst: retain
      Src: /src/icu/source/common/unicode/uniset.h:1206,1
    - Dst: add
      Src: /src/icu/source/common/unicode/uniset.h:1112,1
    - Dst: complement
      Src: /src/icu/source/common/unicode/uniset.h:1250,1
    - Dst: clear
      Src: /src/icu/source/common/unicode/uniset.h:1347,1
    - Dst: copyFrom
      Src: /src/icu/source/common/unicode/uniset.h:1521,1
    - Dst: set
      Src: /src/icu/source/common/unicode/uniset.h:610,1
    - Dst: complement
      Src: /src/icu/source/common/unicode/uniset.h:1275,1
    - Dst: complement
      Src: /src/icu/source/common/unicode/uniset.h:1287,1
    - Dst: setPattern
      Src: /src/icu/source/common/unicode/uniset.h:1666,1
    - Dst: UnicodeSet
      Src: /src/icu/source/common/unicode/uniset.h:377,1
    - Dst: applyPattern
      Src: /src/icu/source/common/unicode/uniset.h:689,1
    - Dst: applyPattern
      Src: /src/icu/source/common/unicode/uniset.h:632,1
    - Dst: toPattern
      Src: /src/icu/source/common/unicode/uniset.h:708,1
    - Dst: addAll
      Src: /src/icu/source/common/unicode/uniset.h:1133,1
    - Dst: complementAll
      Src: /src/icu/source/common/unicode/uniset.h:1153,1
    - Dst: retainAll
      Src: /src/icu/source/common/unicode/uniset.h:1143,1
    - Dst: remove
      Src: /src/icu/source/common/unicode/uniset.h:1230,1
    - Dst: remove
      Src: /src/icu/source/common/unicode/uniset.h:1241,1
    - Dst: closeOver
      Src: /src/icu/source/common/unicode/uniset.h:1374,1
    CyclomaticComplexity: 123
    EdgeCount: 123
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 1675
    functionName: UnicodeFilter
    functionSourceFile: /src/icu/source/common/unicode/uniset.h
    functionUses: []
    functionsReached:
    - UnicodeSet
    - retain
    - setPattern
    - remove
    - complement
    - complementAll
    - toPattern
    - applyPropertyAlias
    - closeOver
    - clear
    - retainAll
    - copyFrom
    - set
    - removeAllStrings
    - addMatchSetTo
    - applyPattern
    - removeAll
    - add
    - addAll
    - compact
    - applyIntPropertyValue
    linkageType: ''
    returnType: UnicodeSet
    signature: 'UnicodeSet U_FINAL : public UnicodeFilter '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setPattern
      Src: /src/icu/source/common/unicode/uniset.h:1666,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1553
    functionDepth: 0
    functionLinenumber: 1553
    functionLinenumberEnd: 1667
    functionName: hasStrings
    functionSourceFile: /src/icu/source/common/unicode/uniset.h
    functionUses: []
    functionsReached:
    - setPattern
    linkageType: ''
    returnType: UBool
    signature: 'UBool hasStrings() const; int32_t stringsSize() const; UBool stringsContains(const
      UnicodeString &s) const; UnicodeString& _toPattern(UnicodeString& result, UBool
      escapeUnprintable) const; UnicodeString& _generatePattern(UnicodeString& result,
      UBool escapeUnprintable) const; static void _appendToPat(UnicodeString& buf,
      const UnicodeString& s, UBool escapeUnprintable); static void _appendToPat(UnicodeString&
      buf, UChar32 c, UBool escapeUnprintable); //----------------------------------------------------------------
      // Implementation: Fundamental operators //----------------------------------------------------------------
      void exclusiveOr(const UChar32* other, int32_t otherLen, int8_t polarity); void
      add(const UChar32* other, int32_t otherLen, int8_t polarity); void retain(const
      UChar32* other, int32_t otherLen, int8_t polarity); /** * Return true if the
      given position, in the given pattern, appears * to be the start of a property
      set pattern [:foo:], \\p{foo}, or * \\P{foo}, or \\N{name}. */ static UBool
      resemblesPropertyPattern(const UnicodeString& pattern, int32_t pos); static
      UBool resemblesPropertyPattern(RuleCharacterIterator& chars, int32_t iterOpts);
      /** * Parse the given property pattern at the given parse position * and set
      this UnicodeSet to the result. * * The original design document is out of date,
      but still useful. * Ignore the property and value names: * http://source.icu-project.org/repos/icu/icuhtml/trunk/design/unicodeset_properties.html
      * * Recognized syntax: * * [:foo:] [:^foo:] - white space not allowed within
      "[:" or ":]" * \\p{foo} \\P{foo} - white space not allowed within "\\p" or "\\P"
      * \\N{name} - white space not allowed within "\\N" * * Other than the above
      restrictions, Unicode Pattern_White_Space characters are ignored. * Case is
      ignored except in "\\p" and "\\P" and "\\N". In ''name'' leading * and trailing
      space is deleted, and internal runs of whitespace * are collapsed to a single
      space. * * We support binary properties, enumerated properties, and the * following
      non-enumerated properties: * * Numeric_Value * Name * Unicode_1_Name * * @param
      pattern the pattern string * @param ppos on entry, the position at which to
      begin parsing. * This should be one of the locations marked ''^'': * * [:blah:]
      \\p{blah} \\P{blah} \\N{name} * ^ % ^ % ^ % ^ % * * On return, the position
      after the last character parsed, that is, * the locations marked ''%''. If the
      parse fails, ppos is returned * unchanged. * @param ec status * @return a reference
      to this. */ UnicodeSet& applyPropertyPattern(const UnicodeString& pattern, ParsePosition&
      ppos, UErrorCode &ec); void applyPropertyPattern(RuleCharacterIterator& chars,
      UnicodeString& rebuiltPat, UErrorCode& ec); static const UnicodeSet* getInclusions(int32_t
      src, UErrorCode &status); /** * A filter that returns TRUE if the given code
      point should be * included in the UnicodeSet being constructed. */ typedef UBool
      (*Filter)(UChar32 codePoint, void* context); /** * Given a filter, set this
      UnicodeSet to the code points * contained by that filter. The filter MUST be
      * property-conformant. That is, if it returns value v for one * code point,
      then it must return v for all affiliated code * points, as defined by the inclusions
      list. See * getInclusions(). * src is a UPropertySource value. */ void applyFilter(Filter
      filter, void* context, const UnicodeSet* inclusions, UErrorCode &status); //
      UCPMap is now stable ICU 63 void applyIntPropertyValue(const UCPMap *map, UCPMapValueFilter
      *filter, const void *context, UErrorCode &errorCode); /** * Set the new pattern
      to cache. */ void setPattern(const UnicodeString& newPat) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1679
    functionDepth: 0
    functionLinenumber: 1679
    functionLinenumberEnd: 1681
    functionName: o
    functionSourceFile: /src/icu/source/common/unicode/uniset.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeSet::operator!=(const UnicodeSet& o ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1683
    functionDepth: 0
    functionLinenumber: 1683
    functionLinenumberEnd: 1685
    functionName: isFrozen
    functionSourceFile: /src/icu/source/common/unicode/uniset.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeSet:: isFrozen() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: containsNone
      Src: /src/icu/source/common/unicode/uniset.h:1688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - UChar32
    - UChar32
    constantsTouched: []
    func_position:
      end: 1689
      start: 1687
    functionDepth: 0
    functionLinenumber: 1687
    functionLinenumberEnd: 1689
    functionName: containsSome
    functionSourceFile: /src/icu/source/common/unicode/uniset.h
    functionUses: []
    functionsReached:
    - containsNone
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeSet:: containsSome(UChar32 start, UChar32 end)
      const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: containsNone
      Src: /src/icu/source/common/unicode/uniset.h:1696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - UnicodeString
    constantsTouched: []
    func_position:
      end: 1697
      start: 1695
    functionDepth: 0
    functionLinenumber: 1695
    functionLinenumberEnd: 1697
    functionName: containsSome
    functionSourceFile: /src/icu/source/common/unicode/uniset.h
    functionUses: []
    functionsReached:
    - containsNone
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeSet:: containsSome(const UnicodeString& s) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1699
    functionDepth: 0
    functionLinenumber: 1699
    functionLinenumberEnd: 1701
    functionName: isBogus
    functionSourceFile: /src/icu/source/common/unicode/uniset.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeSet:: isBogus() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - uset
    argTypes:
    - USet*
    constantsTouched: []
    func_position:
      end: 1705
      start: 1703
    functionDepth: 0
    functionLinenumber: 1703
    functionLinenumberEnd: 1705
    functionName: fromUSet
    functionSourceFile: /src/icu/source/common/unicode/uniset.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeSet*
    signature: 'inline UnicodeSet *UnicodeSet::fromUSet(USet *uset) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: containsNone
      Src: /src/icu/source/common/unicode/uniset.h:1692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - UnicodeSet
    constantsTouched: []
    func_position:
      end: 1693
      start: 1691
    functionDepth: 0
    functionLinenumber: 1691
    functionLinenumberEnd: 1693
    functionName: containsSome
    functionSourceFile: /src/icu/source/common/unicode/uniset.h
    functionUses: []
    functionsReached:
    - containsNone
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool UnicodeSet:: containsSome(const UnicodeSet& s) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - uset
    argTypes:
    - USet*
    constantsTouched: []
    func_position:
      end: 1709
      start: 1707
    functionDepth: 0
    functionLinenumber: 1707
    functionLinenumberEnd: 1709
    functionName: fromUSet
    functionSourceFile: /src/icu/source/common/unicode/uniset.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UnicodeSet*
    signature: 'inline const UnicodeSet *UnicodeSet::fromUSet(const USet *uset) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1711
    functionDepth: 0
    functionLinenumber: 1711
    functionLinenumberEnd: 1713
    functionName: toUSet
    functionSourceFile: /src/icu/source/common/unicode/uniset.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: USet*
    signature: 'inline USet *UnicodeSet::toUSet() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1715
    functionDepth: 0
    functionLinenumber: 1715
    functionLinenumberEnd: 1717
    functionName: toUSet
    functionSourceFile: /src/icu/source/common/unicode/uniset.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: USet*
    signature: 'inline const USet *UnicodeSet::toUSet() const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spanBack
      Src: /src/icu/source/common/unicode/uniset.h:1736,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - s
    - limit
    - spanCondition
    argTypes:
    - UnicodeString
    - int32_t
    - USetSpanCondition
    constantsTouched: []
    func_position:
      end: 1737
      start: 1729
    functionDepth: 0
    functionLinenumber: 1729
    functionLinenumberEnd: 1737
    functionName: spanBack
    functionSourceFile: /src/icu/source/common/unicode/uniset.h
    functionUses: []
    functionsReached:
    - spanBack
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeSet:: spanBack(const UnicodeString &s, int32_t
      limit, USetSpanCondition spanCondition) const '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: span
      Src: /src/icu/source/common/unicode/uniset.h:1726,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - s
    - start
    - spanCondition
    argTypes:
    - UnicodeString
    - int32_t
    - USetSpanCondition
    constantsTouched: []
    func_position:
      end: 1727
      start: 1719
    functionDepth: 0
    functionLinenumber: 1719
    functionLinenumberEnd: 1727
    functionName: span
    functionSourceFile: /src/icu/source/common/unicode/uniset.h
    functionUses: []
    functionsReached:
    - span
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t UnicodeSet:: span(const UnicodeString &s, int32_t start,
      USetSpanCondition spanCondition) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 697
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 697
    functionName: that
    functionSourceFile: /src/icu/source/common/unicode/chariter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'inline UBool ForwardCharacterIterator::operator!=(const ForwardCharacterIterator&
      that ) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: move
      Src: /src/icu/source/common/unicode/chariter.h:706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 707
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 707
    functionName: setToEnd
    functionSourceFile: /src/icu/source/common/unicode/chariter.h
    functionUses: []
    functionsReached:
    - move
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t CharacterIterator:: setToEnd() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 717
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 717
    functionName: endIndex
    functionSourceFile: /src/icu/source/common/unicode/chariter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t CharacterIterator:: endIndex(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: move
      Src: /src/icu/source/common/unicode/chariter.h:701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 702
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 702
    functionName: setToStart
    functionSourceFile: /src/icu/source/common/unicode/chariter.h
    functionUses: []
    functionsReached:
    - move
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t CharacterIterator:: setToStart() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 712
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 712
    functionName: startIndex
    functionSourceFile: /src/icu/source/common/unicode/chariter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t CharacterIterator:: startIndex(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 722
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 722
    functionName: getIndex
    functionSourceFile: /src/icu/source/common/unicode/chariter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t CharacterIterator:: getIndex(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 727
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 727
    functionName: getLength
    functionSourceFile: /src/icu/source/common/unicode/chariter.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t CharacterIterator:: getLength(void) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: empty
    functionSourceFile: /src/icu/source/common/unicode/stringpiece.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UBool
    signature: 'UBool empty() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: length
    functionSourceFile: /src/icu/source/common/unicode/stringpiece.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t length() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: size
    functionSourceFile: /src/icu/source/common/unicode/stringpiece.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'int32_t size() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: clear
    functionSourceFile: /src/icu/source/common/unicode/stringpiece.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void clear() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - xdata
    - len
    argTypes:
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: set
    functionSourceFile: /src/icu/source/common/unicode/stringpiece.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void set(const char* xdata, int32_t len) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - n
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: remove_prefix
    functionSourceFile: /src/icu/source/common/unicode/stringpiece.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void remove_prefix(int32_t n) '
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - n
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: remove_suffix
    functionSourceFile: /src/icu/source/common/unicode/stringpiece.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void remove_suffix(int32_t n) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: StringPiece
      Src: /src/icu/source/common/unicode/stringpiece.h:69,1
    - Dst: T
      Src: /src/icu/source/common/unicode/stringpiece.h:105,1
    - Dst: StringPiece
      Src: /src/icu/source/common/unicode/stringpiece.h:229,1
    - Dst: ptr_
      Src: /src/icu/source/common/unicode/stringpiece.h:69,1
    - Dst: decltype
      Src: /src/icu/source/common/unicode/stringpiece.h:104,1
    - Dst: length_
      Src: /src/icu/source/common/unicode/stringpiece.h:107,1
    - Dst: length_
      Src: /src/icu/source/common/unicode/stringpiece.h:81,1
    - Dst: T
      Src: /src/icu/source/common/unicode/stringpiece.h:104,1
    - Dst: ptr_
      Src: /src/icu/source/common/unicode/stringpiece.h:107,1
    - Dst: StringPiece
      Src: /src/icu/source/common/unicode/stringpiece.h:106,1
    - Dst: decltype
      Src: /src/icu/source/common/unicode/stringpiece.h:105,1
    - Dst: length_
      Src: /src/icu/source/common/unicode/stringpiece.h:69,1
    - Dst: ptr_
      Src: /src/icu/source/common/unicode/stringpiece.h:81,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 231
    functionName: StringPiece
    functionSourceFile: /src/icu/source/common/unicode/stringpiece.h
    functionUses: []
    functionsReached:
    - length_
    - ptr_
    - StringPiece
    - T
    - decltype
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API StringPiece : public UMemory '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringPiece
      Src: /src/icu/source/common/unicode/stringpiece.h:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - pos
    - npos
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: substr
    functionSourceFile: /src/icu/source/common/unicode/stringpiece.h
    functionUses: []
    functionsReached:
    - StringPiece
    linkageType: ''
    returnType: StringPiece
    signature: 'StringPiece substr(int32_t pos, int32_t len = npos) const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: data
    functionSourceFile: /src/icu/source/common/unicode/stringpiece.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: char*
    signature: 'const char * data() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: build
      Src: /src/icu/source/common/unicode/filteredbrk.h:116,1
    - Dst: FilteredBreakIteratorBuilder
      Src: /src/icu/source/common/unicode/filteredbrk.h:141,1
    - Dst: build
      Src: /src/icu/source/common/unicode/filteredbrk.h:133,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 142
    functionName: FilteredBreakIteratorBuilder
    functionSourceFile: /src/icu/source/common/unicode/filteredbrk.h
    functionUses: []
    functionsReached:
    - build
    - FilteredBreakIteratorBuilder
    linkageType: ''
    returnType: U_COMMON_API
    signature: 'U_COMMON_API FilteredBreakIteratorBuilder : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: build
      Src: /src/icu/source/common/unicode/filteredbrk.h:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - adoptBreakIterator
    - status
    argTypes:
    - BreakIterator*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: wrapIteratorWithFilter
    functionSourceFile: /src/icu/source/common/unicode/filteredbrk.h
    functionUses: []
    functionsReached:
    - build
    linkageType: ''
    returnType: BreakIterator*
    signature: 'inline BreakIterator *wrapIteratorWithFilter(BreakIterator* adoptBreakIterator,
      UErrorCode& status) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: ScriptRecord
    functionSourceFile: /src/icu/source/extra/scrptrun/scrptrun.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: U_NAMESPACE_BEGIN
    signature: 'U_NAMESPACE_BEGIN struct ScriptRecord '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getStaticClassID
      Src: /src/icu/source/extra/scrptrun/scrptrun.h:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: getDynamicClassID
    functionSourceFile: /src/icu/source/extra/scrptrun/scrptrun.h
    functionUses: []
    functionsReached:
    - getStaticClassID
    linkageType: ''
    returnType: virtual
    signature: 'virtual inline UClassID getDynamicClassID() const '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: getStaticClassID
    functionSourceFile: /src/icu/source/extra/scrptrun/scrptrun.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UClassID
    signature: 'static inline UClassID getStaticClassID() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/icu/source/extra/scrptrun/scrptrun.h:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: ScriptRun
    functionSourceFile: /src/icu/source/extra/scrptrun/scrptrun.h
    functionUses: []
    functionsReached:
    - reset
    linkageType: ''
    returnType: ScriptRun
    signature: 'inline ScriptRun :: ScriptRun() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/icu/source/extra/scrptrun/scrptrun.h:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - chars
    - length
    argTypes:
    - UChar
    - int32_t
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: ScriptRun
    functionSourceFile: /src/icu/source/extra/scrptrun/scrptrun.h
    functionUses: []
    functionsReached:
    - reset
    linkageType: ''
    returnType: ScriptRun
    signature: 'inline ScriptRun :: ScriptRun(const UChar chars[], int32_t length) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: getScriptStart
    functionSourceFile: /src/icu/source/extra/scrptrun/scrptrun.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t ScriptRun:: getScriptStart() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: getScriptEnd
    functionSourceFile: /src/icu/source/extra/scrptrun/scrptrun.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: 'inline int32_t ScriptRun:: getScriptEnd() '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: getScriptCode
    functionSourceFile: /src/icu/source/extra/scrptrun/scrptrun.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: UScriptCode
    signature: 'inline UScriptCode ScriptRun:: getScriptCode() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ScriptRun
      Src: /src/icu/source/extra/scrptrun/scrptrun.h:39,1
    - Dst: getStaticClassID
      Src: /src/icu/source/extra/scrptrun/scrptrun.h:64,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 101
    functionName: ScriptRun
    functionSourceFile: /src/icu/source/extra/scrptrun/scrptrun.h
    functionUses: []
    functionsReached:
    - ScriptRun
    - getStaticClassID
    linkageType: ''
    returnType: class
    signature: 'class ScriptRun : public UObject '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/icu/source/extra/scrptrun/scrptrun.h:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - chars
    - start
    - length
    argTypes:
    - UChar
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: ScriptRun
    functionSourceFile: /src/icu/source/extra/scrptrun/scrptrun.h
    functionUses: []
    functionsReached:
    - reset
    linkageType: ''
    returnType: ScriptRun
    signature: 'inline ScriptRun :: ScriptRun(const UChar chars[], int32_t start,
      int32_t length) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: reset
    functionSourceFile: /src/icu/source/extra/scrptrun/scrptrun.h
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'inline void ScriptRun:: reset() '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/icu/source/extra/scrptrun/scrptrun.h:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - start
    - length
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: reset
    functionSourceFile: /src/icu/source/extra/scrptrun/scrptrun.h
    functionUses: []
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: 'inline void ScriptRun:: reset(int32_t start, int32_t length) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/icu/source/extra/scrptrun/scrptrun.h:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - chars
    - start
    - length
    argTypes:
    - UChar
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: reset
    functionSourceFile: /src/icu/source/extra/scrptrun/scrptrun.h
    functionUses: []
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: 'inline void ScriptRun:: reset(const UChar chars[], int32_t start,
      int32_t length) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_open
      Src: /src/icu/source/extra/uconv/uwmsg.c:57,1
    - Dst: ucnv_fromUnicode
      Src: /src/icu/source/extra/uconv/uwmsg.c:68,1
    - Dst: ucnv_close
      Src: /src/icu/source/extra/uconv/uwmsg.c:84,1
    - Dst: U_FAILURE
      Src: /src/icu/source/extra/uconv/uwmsg.c:60,1
    - Dst: fwrite
      Src: /src/icu/source/extra/uconv/uwmsg.c:73,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 4
    argNames:
    - s
    - sourceLen
    - f
    - status
    argTypes:
    - UChar*
    - int32_t
    - FILE*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 85
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 85
    functionName: uprint
    functionSourceFile: /src/icu/source/extra/uconv/uwmsg.c
    functionUses: []
    functionsReached:
    - fwrite
    - ucnv_close
    - U_FAILURE
    - ucnv_open
    - ucnv_fromUnicode
    linkageType: ''
    returnType: void
    signature: 'static void uprint(const UChar *s, int32_t sourceLen, FILE *f, UErrorCode
      *status) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fetchErrorName
      Src: /src/icu/source/extra/uconv/uwmsg.c:224,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/extra/uconv/uwmsg.c:239,1
    - Dst: U_FAILURE
      Src: /src/icu/source/extra/uconv/uwmsg.c:240,1
    - Dst: u_errorName
      Src: /src/icu/source/extra/uconv/uwmsg.c:237,1
    - Dst: u_errorName
      Src: /src/icu/source/extra/uconv/uwmsg.c:250,1
    - Dst: sprintf
      Src: /src/icu/source/extra/uconv/uwmsg.c:252,1
    - Dst: malloc
      Src: /src/icu/source/extra/uconv/uwmsg.c:255,1
    - Dst: strlen
      Src: /src/icu/source/extra/uconv/uwmsg.c:255,1
    - Dst: u_charsToUChars
      Src: /src/icu/source/extra/uconv/uwmsg.c:256,1
    - Dst: strlen
      Src: /src/icu/source/extra/uconv/uwmsg.c:256,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - err
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 265
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 265
    functionName: u_wmsg_errorName
    functionSourceFile: /src/icu/source/extra/uconv/uwmsg.c
    functionUses: []
    functionsReached:
    - sprintf
    - fetchErrorName
    - malloc
    - U_FAILURE
    - ures_getStringByKey
    - strlen
    - u_charsToUChars
    - u_errorName
    linkageType: ''
    returnType: U_CFUNC*
    signature: 'U_CFUNC const UChar *u_wmsg_errorName(UErrorCode err) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/icu/source/extra/uconv/uwmsg.c:203,1
    - Dst: malloc
      Src: /src/icu/source/extra/uconv/uwmsg.c:207,1
    - Dst: memset
      Src: /src/icu/source/extra/uconv/uwmsg.c:204,1
    - Dst: memset
      Src: /src/icu/source/extra/uconv/uwmsg.c:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - err
    argTypes:
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 214
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 214
    functionName: fetchErrorName
    functionSourceFile: /src/icu/source/extra/uconv/uwmsg.c
    functionUses: []
    functionsReached:
    - memset
    - malloc
    linkageType: ''
    returnType: UChar*
    signature: 'static const UChar *fetchErrorName(UErrorCode err) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/extra/uconv/uwmsg.c:93,1
    - Dst: ures_open
      Src: /src/icu/source/extra/uconv/uwmsg.c:106,1
    - Dst: U_STRING_INIT
      Src: /src/icu/source/extra/uconv/uwmsg.c:114,1
    - Dst: U_FAILURE
      Src: /src/icu/source/extra/uconv/uwmsg.c:107,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - path
    - err
    argTypes:
    - char*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 118
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 118
    functionName: u_wmsg_setPath
    functionSourceFile: /src/icu/source/extra/uconv/uwmsg.c
    functionUses: []
    functionsReached:
    - U_FAILURE
    - U_STRING_INIT
    - ures_open
    linkageType: ''
    returnType: U_CFUNC*
    signature: 'U_CFUNC UResourceBundle *u_wmsg_setPath(const char *path, UErrorCode
      *err) '
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/icu/source/extra/uconv/uwmsg.c:142,1
    - Dst: fprintf
      Src: /src/icu/source/extra/uconv/uwmsg.c:135,1
    - Dst: ures_getStringByKey
      Src: /src/icu/source/extra/uconv/uwmsg.c:140,1
    - Dst: uprint
      Src: /src/icu/source/extra/uconv/uwmsg.c:153,1
    - Dst: va_start
      Src: /src/icu/source/extra/uconv/uwmsg.c:159,1
    - Dst: u_errorName
      Src: /src/icu/source/extra/uconv/uwmsg.c:171,1
    - Dst: fprintf
      Src: /src/icu/source/extra/uconv/uwmsg.c:168,1
    - Dst: uprint
      Src: /src/icu/source/extra/uconv/uwmsg.c:178,1
    - Dst: fprintf
      Src: /src/icu/source/extra/uconv/uwmsg.c:184,1
    - Dst: u_errorName
      Src: /src/icu/source/extra/uconv/uwmsg.c:187,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/extra/uconv/uwmsg.c:149,1
    - Dst: memcpy
      Src: /src/icu/source/extra/uconv/uwmsg.c:150,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/extra/uconv/uwmsg.c:161,1
    - Dst: va_end
      Src: /src/icu/source/extra/uconv/uwmsg.c:163,1
    - Dst: uprint
      Src: /src/icu/source/extra/uconv/uwmsg.c:174,1
    - Dst: U_FAILURE
      Src: /src/icu/source/extra/uconv/uwmsg.c:181,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/extra/uconv/uwmsg.c:148,1
    - Dst: memcpy
      Src: /src/icu/source/extra/uconv/uwmsg.c:151,1
    - Dst: uprint
      Src: /src/icu/source/extra/uconv/uwmsg.c:155,1
    - Dst: u_vformatMessage
      Src: /src/icu/source/extra/uconv/uwmsg.c:161,1
    - Dst: UPRV_LENGTHOF
      Src: /src/icu/source/extra/uconv/uwmsg.c:130,1
    - Dst: U_FAILURE
      Src: /src/icu/source/extra/uconv/uwmsg.c:165,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/extra/uconv/uwmsg.c:169,1
    - Dst: uloc_getDefault
      Src: /src/icu/source/extra/uconv/uwmsg.c:185,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 2
    argNames:
    - fp
    - tag
    - '...'
    argTypes:
    - FILE*
    - char*
    constantsTouched: []
    func_position:
      end: 193
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 193
    functionName: u_wmsg
    functionSourceFile: /src/icu/source/extra/uconv/uwmsg.c
    functionUses: []
    functionsReached:
    - memcpy
    - uprint
    - U_FAILURE
    - va_end
    - u_errorName
    - u_vformatMessage
    - ures_getStringByKey
    - va_start
    - UPRV_LENGTHOF
    - uloc_getDefault
    - fprintf
    linkageType: ''
    returnType: U_CFUNC
    signature: 'U_CFUNC int u_wmsg(FILE *fp, const char *tag, ... ) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFuzzXsltInit
      Src: /src/libxslt/tests/fuzz/xslt.c:12,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/libxslt/tests/fuzz/xslt.c
    functionUses: []
    functionsReached:
    - xsltFuzzXsltInit
    linkageType: ''
    returnType: int
    signature: 'int LLVMFuzzerInitialize(int *argc_p ATTRIBUTE_UNUSED, char ***argv_p
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsltFuzzXPathInit
      Src: /src/libxslt/tests/fuzz/xpath.c:11,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/libxslt/tests/fuzz/xpath.c
    functionUses: []
    functionsReached:
    - xsltFuzzXPathInit
    linkageType: ''
    returnType: int
    signature: 'int LLVMFuzzerInitialize(int *argc_p ATTRIBUTE_UNUSED, char ***argv_p
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMemSetup
      Src: /src/libxml2/fuzz/html.c:18,1
    - Dst: xmlCatalogSetDefaults
      Src: /src/libxml2/fuzz/html.c:22,1
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/fuzz/html.c:21,1
    - Dst: xmlInitParser
      Src: /src/libxml2/fuzz/html.c:19,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 26
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 26
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/libxml2/fuzz/html.c
    functionUses: []
    functionsReached:
    - xmlInitializeCatalog
    - xmlFuzzMemSetup
    - xmlInitParser
    - xmlCatalogSetDefaults
    linkageType: ''
    returnType: int
    signature: 'int LLVMFuzzerInitialize(int *argc ATTRIBUTE_UNUSED, char ***argv
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMutateChunks
      Src: /src/libxml2/fuzz/html.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - char*
    - size_t
    - size_t
    - unsigned
    constantsTouched: []
    func_position:
      end: 234
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 234
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/libxml2/fuzz/html.c
    functionUses: []
    functionsReached:
    - xmlFuzzMutateChunks
    linkageType: ''
    returnType: size_t
    signature: 'size_t LLVMFuzzerCustomMutator(char *data, size_t size, size_t maxSize,
      unsigned seed) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMemSetup
      Src: /src/libxml2/fuzz/xml.c:20,1
    - Dst: xmlCatalogSetDefaults
      Src: /src/libxml2/fuzz/xml.c:24,1
    - Dst: xmlInitParser
      Src: /src/libxml2/fuzz/xml.c:21,1
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/fuzz/xml.c:23,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 28
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 28
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/libxml2/fuzz/xml.c
    functionUses: []
    functionsReached:
    - xmlInitializeCatalog
    - xmlFuzzMemSetup
    - xmlInitParser
    - xmlCatalogSetDefaults
    linkageType: ''
    returnType: int
    signature: 'int LLVMFuzzerInitialize(int *argc ATTRIBUTE_UNUSED, char ***argv
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMutateChunks
      Src: /src/libxml2/fuzz/xml.c:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - char*
    - size_t
    - size_t
    - unsigned
    constantsTouched: []
    func_position:
      end: 261
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 261
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/libxml2/fuzz/xml.c
    functionUses: []
    functionsReached:
    - xmlFuzzMutateChunks
    linkageType: ''
    returnType: size_t
    signature: 'size_t LLVMFuzzerCustomMutator(char *data, size_t size, size_t maxSize,
      unsigned seed) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMemSetup
      Src: /src/libxml2/fuzz/regexp.c:14,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 17
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 17
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/libxml2/fuzz/regexp.c
    functionUses: []
    functionsReached:
    - xmlFuzzMemSetup
    linkageType: ''
    returnType: int
    signature: 'int LLVMFuzzerInitialize(int *argc ATTRIBUTE_UNUSED, char ***argv
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMutateChunks
      Src: /src/libxml2/fuzz/regexp.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - char*
    - size_t
    - size_t
    - unsigned
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/libxml2/fuzz/regexp.c
    functionUses: []
    functionsReached:
    - xmlFuzzMutateChunks
    linkageType: ''
    returnType: size_t
    signature: 'size_t LLVMFuzzerCustomMutator(char *data, size_t size, size_t maxSize,
      unsigned seed) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMemSetup
      Src: /src/libxml2/fuzz/schema.c:18,1
    - Dst: xmlCatalogSetDefaults
      Src: /src/libxml2/fuzz/schema.c:22,1
    - Dst: xmlInitParser
      Src: /src/libxml2/fuzz/schema.c:19,1
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/fuzz/schema.c:21,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 26
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 26
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/libxml2/fuzz/schema.c
    functionUses: []
    functionsReached:
    - xmlInitializeCatalog
    - xmlFuzzMemSetup
    - xmlInitParser
    - xmlCatalogSetDefaults
    linkageType: ''
    returnType: int
    signature: 'int LLVMFuzzerInitialize(int *argc ATTRIBUTE_UNUSED, char ***argv
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMutateChunks
      Src: /src/libxml2/fuzz/schema.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - char*
    - size_t
    - size_t
    - unsigned
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/libxml2/fuzz/schema.c
    functionUses: []
    functionsReached:
    - xmlFuzzMutateChunks
    linkageType: ''
    returnType: size_t
    signature: 'size_t LLVMFuzzerCustomMutator(char *data, size_t size, size_t maxSize,
      unsigned seed) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/libxml2/fuzz/api.c:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - offset
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 402
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 402
    functionName: getInt
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - DEBUG
    linkageType: ''
    returnType: int
    signature: 'static int getInt(int offset) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strndup
      Src: /src/libxml2/fuzz/api.c:467,1
    - Dst: abort
      Src: /src/libxml2/fuzz/api.c:470,1
    - Dst: fprintf
      Src: /src/libxml2/fuzz/api.c:469,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - str
    - size
    argTypes:
    - xmlChar*
    - int
    constantsTouched: []
    func_position:
      end: 474
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 474
    functionName: uncheckedStrndup
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - abort
    - strndup
    - fprintf
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *uncheckedStrndup(const xmlChar *str, int size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setStr
      Src: /src/libxml2/fuzz/api.c:483,1
    - Dst: uncheckedStrdup
      Src: /src/libxml2/fuzz/api.c:483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - offset
    - str
    argTypes:
    - int
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 484
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 484
    functionName: copyStr
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - setStr
    - uncheckedStrdup
    linkageType: ''
    returnType: void
    signature: 'static void copyStr(int offset, const xmlChar *str) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getNode
      Src: /src/libxml2/fuzz/api.c:532,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - offset
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 547
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 547
    functionName: getDtd
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - getNode
    linkageType: ''
    returnType: xmlDtdPtr
    signature: 'static xmlDtdPtr getDtd(int offset) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dropNode
      Src: /src/libxml2/fuzz/api.c:576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 578
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 578
    functionName: incNodeIdx
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - dropNode
    linkageType: ''
    returnType: void
    signature: 'static void incNodeIdx(void) '
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nodeGetTree
      Src: /src/libxml2/fuzz/api.c:656,1
    - Dst: isDtdChild
      Src: /src/libxml2/fuzz/api.c:675,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/fuzz/api.c:679,1
    - Dst: nodeGetTree
      Src: /src/libxml2/fuzz/api.c:669,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/fuzz/api.c:686,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 687
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 687
    functionName: dropNode
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - xmlFreeNode
    - nodeGetTree
    - xmlFreeDoc
    - isDtdChild
    linkageType: ''
    returnType: void
    signature: 'static void dropNode(xmlNodePtr node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uncheckedStrndup
      Src: /src/libxml2/fuzz/api.c:478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: uncheckedStrdup
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - uncheckedStrndup
    linkageType: ''
    returnType: xmlChar*
    signature: 'static xmlChar *uncheckedStrdup(const xmlChar *str) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 489
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 489
    functionName: incStrIdx
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void incStrIdx(void) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dropNode
      Src: /src/libxml2/fuzz/api.c:556,1
    - Dst: DEBUG
      Src: /src/libxml2/fuzz/api.c:560,1
    - Dst: DEBUG
      Src: /src/libxml2/fuzz/api.c:562,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - offset
    - node
    argTypes:
    - int
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 563
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 563
    functionName: setNode
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - dropNode
    - DEBUG
    linkageType: ''
    returnType: void
    signature: 'static void setNode(int offset, xmlNodePtr node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - parent
    - childType
    argTypes:
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 583
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 583
    functionName: isValidChildType
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int isValidChildType(xmlNodePtr parent, int childType) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/libxml2/fuzz/api.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: startOp
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - DEBUG
    linkageType: ''
    returnType: void
    signature: 'static void startOp(const char *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/libxml2/fuzz/api.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: endOp
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - DEBUG
    linkageType: ''
    returnType: void
    signature: 'static void endOp(void) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - offset
    - n
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: setInt
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void setInt(int offset, int n) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - void
    argTypes:
    - void
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: incIntIdx
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void incIntIdx(void) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/libxml2/fuzz/api.c:500,1
    - Dst: fflush
      Src: /src/libxml2/fuzz/api.c:503,1
    - Dst: DEBUG
      Src: /src/libxml2/fuzz/api.c:502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - offset
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 505
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 505
    functionName: getNode
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - fflush
    - DEBUG
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr getNode(int offset) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 703
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 703
    functionName: removeNode
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void removeNode(xmlNodePtr node) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/libxml2/fuzz/api.c:423,1
    - Dst: DEBUG
      Src: /src/libxml2/fuzz/api.c:425,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - offset
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 428
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 428
    functionName: getStr
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - DEBUG
    linkageType: ''
    returnType: xmlChar*
    signature: 'static const xmlChar *getStr(int offset) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlFree
      Src: /src/libxml2/fuzz/api.c:443,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - offset
    - str
    argTypes:
    - int
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 444
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 444
    functionName: setStr
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - xmlFree
    linkageType: ''
    returnType: void
    signature: 'static void setStr(int offset, xmlChar *str) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getNode
      Src: /src/libxml2/fuzz/api.c:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - offset
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 514
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 514
    functionName: getDoc
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - getNode
    linkageType: ''
    returnType: xmlDocPtr
    signature: 'static xmlDocPtr getDoc(int offset) '
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - parent
    - child
    argTypes:
    - xmlNodePtr
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 606
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 606
    functionName: isValidChild
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int isValidChild(xmlNodePtr parent, xmlNodePtr child) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrlen
      Src: /src/libxml2/fuzz/api.c:783,1
    - Dst: xmlNodeSetContent
      Src: /src/libxml2/fuzz/api.c:784,1
    - Dst: uncheckedStrdup
      Src: /src/libxml2/fuzz/api.c:785,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 787
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 787
    functionName: checkContent
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - xmlNodeSetContent
    - xmlStrlen
    - uncheckedStrdup
    linkageType: ''
    returnType: void
    signature: 'static void checkContent(xmlNodePtr node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlReconciliateNs
      Src: /src/libxml2/fuzz/api.c:849,1
    - Dst: xmlReconciliateNs
      Src: /src/libxml2/fuzz/api.c:854,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 860
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 860
    functionName: fixNs
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - xmlReconciliateNs
    linkageType: ''
    returnType: int
    signature: 'static int fixNs(xmlNodePtr node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getStr
      Src: /src/libxml2/fuzz/api.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: getCStr
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - getStr
    linkageType: ''
    returnType: char*
    signature: 'static const char *getCStr(int offset) '
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrlen
      Src: /src/libxml2/fuzz/api.c:448,1
    - Dst: setStr
      Src: /src/libxml2/fuzz/api.c:449,1
    - Dst: setStr
      Src: /src/libxml2/fuzz/api.c:452,1
    - Dst: xmlFree
      Src: /src/libxml2/fuzz/api.c:450,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - offset
    - str
    argTypes:
    - int
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 454
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 454
    functionName: moveStr
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - xmlFree
    - setStr
    - xmlStrlen
    linkageType: ''
    returnType: void
    signature: 'static void moveStr(int offset, xmlChar *str) '
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getNode
      Src: /src/libxml2/fuzz/api.c:518,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - offset
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 528
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 528
    functionName: getAttr
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - getNode
    linkageType: ''
    returnType: xmlAttrPtr
    signature: 'static xmlAttrPtr getAttr(int offset) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - child
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 614
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 614
    functionName: isTextContentNode
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int isTextContentNode(xmlNodePtr child) '
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 818
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 818
    functionName: countNodes
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int countNodes(xmlNodePtr node) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMutateChunks
      Src: /src/libxml2/fuzz/api.c:3610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - char*
    - size_t
    - size_t
    - unsigned
    constantsTouched: []
    func_position:
      end: 3612
      start: 3602
    functionDepth: 0
    functionLinenumber: 3602
    functionLinenumberEnd: 3612
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - xmlFuzzMutateChunks
    linkageType: ''
    returnType: size_t
    signature: 'size_t LLVMFuzzerCustomMutator(char *data, size_t size, size_t maxSize,
      unsigned seed) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: countNodes
      Src: /src/libxml2/fuzz/api.c:826,1
    - Dst: xmlFreeNode
      Src: /src/libxml2/fuzz/api.c:831,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/fuzz/api.c:829,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - copy
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 836
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 836
    functionName: checkCopy
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - countNodes
    - xmlFreeNode
    - xmlFreeDoc
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr checkCopy(xmlNodePtr copy) '
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - child
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 622
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 622
    functionName: isDtdChild
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'static int isDtdChild(xmlNodePtr child) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - parent
    - self
    argTypes:
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 729
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 729
    functionName: removeChildren
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void removeChildren(xmlNodePtr parent, int self) '
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: startOp
      Src: /src/libxml2/fuzz/api.c:870,1
    - Dst: startOp
      Src: /src/libxml2/fuzz/api.c:874,1
    - Dst: startOp
      Src: /src/libxml2/fuzz/api.c:876,1
    - Dst: startOp
      Src: /src/libxml2/fuzz/api.c:872,1
    - Dst: startOp
      Src: /src/libxml2/fuzz/api.c:878,1
    - Dst: startOp
      Src: /src/libxml2/fuzz/api.c:880,1
    - Dst: startOp
      Src: /src/libxml2/fuzz/api.c:882,1
    - Dst: incNodeIdx
      Src: /src/libxml2/fuzz/api.c:887,1
    - Dst: getNode
      Src: /src/libxml2/fuzz/api.c:888,1
    - Dst: xmlGetLastChild
      Src: /src/libxml2/fuzz/api.c:901,1
    - Dst: xmlDocGetRootElement
      Src: /src/libxml2/fuzz/api.c:905,1
    - Dst: xmlGetIntSubset
      Src: /src/libxml2/fuzz/api.c:903,1
    - Dst: setNode
      Src: /src/libxml2/fuzz/api.c:921,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 32
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 922
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 922
    functionName: opNodeAccessor
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - xmlDocGetRootElement
    - startOp
    - incNodeIdx
    - getNode
    - xmlGetLastChild
    - xmlGetIntSubset
    - setNode
    linkageType: ''
    returnType: void
    signature: 'static void opNodeAccessor(int op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMemSetup
      Src: /src/libxml2/fuzz/api.c:964,1
    - Dst: xmlInitParser
      Src: /src/libxml2/fuzz/api.c:965,1
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/fuzz/api.c:967,1
    - Dst: xmlSetGenericErrorFunc
      Src: /src/libxml2/fuzz/api.c:970,1
    - Dst: xmlCatalogSetDefaults
      Src: /src/libxml2/fuzz/api.c:968,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 973
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 973
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - xmlSetGenericErrorFunc
    - xmlCatalogSetDefaults
    - xmlInitParser
    - xmlFuzzMemSetup
    - xmlInitializeCatalog
    linkageType: ''
    returnType: int
    signature: 'int LLVMFuzzerInitialize(int *argc ATTRIBUTE_UNUSED, char ***argv
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNodePtr
    constantsTouched: []
    func_position:
      end: 631
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 631
    functionName: nodeGetTree
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNodePtr
    signature: 'static xmlNodePtr nodeGetTree(xmlNodePtr node) '
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - node
    - k
    argTypes:
    - xmlNodePtr
    - int
    constantsTouched: []
    func_position:
      end: 761
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 761
    functionName: nodeGetNs
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: xmlNsPtr
    signature: 'static xmlNsPtr nodeGetNs(xmlNodePtr node, int k) '
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: incIntIdx
      Src: /src/libxml2/fuzz/api.c:930,1
    - Dst: startOp
      Src: /src/libxml2/fuzz/api.c:942,1
    - Dst: incStrIdx
      Src: /src/libxml2/fuzz/api.c:932,1
    - Dst: xmlFuzzReadInt
      Src: /src/libxml2/fuzz/api.c:939,1
    - Dst: incNodeIdx
      Src: /src/libxml2/fuzz/api.c:934,1
    - Dst: setInt
      Src: /src/libxml2/fuzz/api.c:945,1
    - Dst: getInt
      Src: /src/libxml2/fuzz/api.c:945,1
    - Dst: endOp
      Src: /src/libxml2/fuzz/api.c:946,1
    - Dst: copyStr
      Src: /src/libxml2/fuzz/api.c:949,1
    - Dst: getStr
      Src: /src/libxml2/fuzz/api.c:949,1
    - Dst: endOp
      Src: /src/libxml2/fuzz/api.c:950,1
    - Dst: getNode
      Src: /src/libxml2/fuzz/api.c:953,1
    - Dst: setNode
      Src: /src/libxml2/fuzz/api.c:953,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 959
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 959
    functionName: opDup
    functionSourceFile: /src/libxml2/fuzz/api.c
    functionUses: []
    functionsReached:
    - startOp
    - incNodeIdx
    - getNode
    - incIntIdx
    - getInt
    - setInt
    - getStr
    - xmlFuzzReadInt
    - copyStr
    - incStrIdx
    - setNode
    - endOp
    linkageType: ''
    returnType: void
    signature: 'static void opDup(int op) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libxml2/fuzz/reader.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: startOp
    functionSourceFile: /src/libxml2/fuzz/reader.c
    functionUses: []
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'static void startOp(const char *name) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMutateChunks
      Src: /src/libxml2/fuzz/reader.c:564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - char*
    - size_t
    - size_t
    - unsigned
    constantsTouched: []
    func_position:
      end: 566
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 566
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/libxml2/fuzz/reader.c
    functionUses: []
    functionsReached:
    - xmlFuzzMutateChunks
    linkageType: ''
    returnType: size_t
    signature: 'size_t LLVMFuzzerCustomMutator(char *data, size_t size, size_t maxSize,
      unsigned seed) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMemSetup
      Src: /src/libxml2/fuzz/reader.c:92,1
    - Dst: xmlCatalogSetDefaults
      Src: /src/libxml2/fuzz/reader.c:96,1
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/fuzz/reader.c:95,1
    - Dst: xmlInitParser
      Src: /src/libxml2/fuzz/reader.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/libxml2/fuzz/reader.c
    functionUses: []
    functionsReached:
    - xmlInitializeCatalog
    - xmlFuzzMemSetup
    - xmlInitParser
    - xmlCatalogSetDefaults
    linkageType: ''
    returnType: int
    signature: 'int LLVMFuzzerInitialize(int *argc ATTRIBUTE_UNUSED, char ***argv
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMemSetup
      Src: /src/libxml2/fuzz/uri.c:12,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 15
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 15
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/libxml2/fuzz/uri.c
    functionUses: []
    functionsReached:
    - xmlFuzzMemSetup
    linkageType: ''
    returnType: int
    signature: 'int LLVMFuzzerInitialize(int *argc ATTRIBUTE_UNUSED, char ***argv
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMutateChunks
      Src: /src/libxml2/fuzz/uri.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - char*
    - size_t
    - size_t
    - unsigned
    constantsTouched: []
    func_position:
      end: 114
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 114
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/libxml2/fuzz/uri.c
    functionUses: []
    functionsReached:
    - xmlFuzzMutateChunks
    linkageType: ''
    returnType: size_t
    signature: 'size_t LLVMFuzzerCustomMutator(char *data, size_t size, size_t maxSize,
      unsigned seed) '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: pushArg
    functionSourceFile: /src/libxml2/fuzz/lint.c
    functionUses: []
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'static void pushArg(const char *str) '
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libxml2/fuzz/lint.c:109,1
    - Dst: perror
      Src: /src/libxml2/fuzz/lint.c:111,1
    - Dst: dup2
      Src: /src/libxml2/fuzz/lint.c:114,1
    - Dst: perror
      Src: /src/libxml2/fuzz/lint.c:115,1
    - Dst: abort
      Src: /src/libxml2/fuzz/lint.c:112,1
    - Dst: abort
      Src: /src/libxml2/fuzz/lint.c:116,1
    - Dst: close
      Src: /src/libxml2/fuzz/lint.c:118,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 121
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 121
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/libxml2/fuzz/lint.c
    functionUses: []
    functionsReached:
    - open
    - dup2
    - abort
    - perror
    - close
    linkageType: ''
    returnType: int
    signature: 'int LLVMFuzzerInitialize(int *argc ATTRIBUTE_UNUSED, char ***argv
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMutateChunks
      Src: /src/libxml2/fuzz/lint.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - char*
    - size_t
    - size_t
    - unsigned
    constantsTouched: []
    func_position:
      end: 254
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 254
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/libxml2/fuzz/lint.c
    functionUses: []
    functionsReached:
    - xmlFuzzMutateChunks
    linkageType: ''
    returnType: size_t
    signature: 'size_t LLVMFuzzerCustomMutator(char *data, size_t size, size_t maxSize,
      unsigned seed) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMemSetup
      Src: /src/libxml2/fuzz/xpath.c:14,1
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/fuzz/xpath.c:17,1
    - Dst: xmlSetGenericErrorFunc
      Src: /src/libxml2/fuzz/xpath.c:20,1
    - Dst: xmlCatalogSetDefaults
      Src: /src/libxml2/fuzz/xpath.c:18,1
    - Dst: xmlInitParser
      Src: /src/libxml2/fuzz/xpath.c:15,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 23
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 23
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/libxml2/fuzz/xpath.c
    functionUses: []
    functionsReached:
    - xmlSetGenericErrorFunc
    - xmlCatalogSetDefaults
    - xmlInitParser
    - xmlFuzzMemSetup
    - xmlInitializeCatalog
    linkageType: ''
    returnType: int
    signature: 'int LLVMFuzzerInitialize(int *argc ATTRIBUTE_UNUSED, char ***argv
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMutateChunks
      Src: /src/libxml2/fuzz/xpath.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - char*
    - size_t
    - size_t
    - unsigned
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/libxml2/fuzz/xpath.c
    functionUses: []
    functionsReached:
    - xmlFuzzMutateChunks
    linkageType: ''
    returnType: size_t
    signature: 'size_t LLVMFuzzerCustomMutator(char *data, size_t size, size_t maxSize,
      unsigned seed) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMemSetup
      Src: /src/libxml2/fuzz/xinclude.c:16,1
    - Dst: xmlInitParser
      Src: /src/libxml2/fuzz/xinclude.c:17,1
    - Dst: xmlCatalogSetDefaults
      Src: /src/libxml2/fuzz/xinclude.c:20,1
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/fuzz/xinclude.c:19,1
    - Dst: xmlSetGenericErrorFunc
      Src: /src/libxml2/fuzz/xinclude.c:22,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 25
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 25
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/libxml2/fuzz/xinclude.c
    functionUses: []
    functionsReached:
    - xmlSetGenericErrorFunc
    - xmlCatalogSetDefaults
    - xmlInitParser
    - xmlFuzzMemSetup
    - xmlInitializeCatalog
    linkageType: ''
    returnType: int
    signature: 'int LLVMFuzzerInitialize(int *argc ATTRIBUTE_UNUSED, char ***argv
      ATTRIBUTE_UNUSED) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMutateChunks
      Src: /src/libxml2/fuzz/xinclude.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - char*
    - size_t
    - size_t
    - unsigned
    constantsTouched: []
    func_position:
      end: 103
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 103
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/libxml2/fuzz/xinclude.c
    functionUses: []
    functionsReached:
    - xmlFuzzMutateChunks
    linkageType: ''
    returnType: size_t
    signature: 'size_t LLVMFuzzerCustomMutator(char *data, size_t size, size_t maxSize,
      unsigned seed) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMemSetup
      Src: /src/libxml2/fuzz/valid.c:15,1
    - Dst: xmlCatalogSetDefaults
      Src: /src/libxml2/fuzz/valid.c:19,1
    - Dst: xmlInitializeCatalog
      Src: /src/libxml2/fuzz/valid.c:18,1
    - Dst: xmlInitParser
      Src: /src/libxml2/fuzz/valid.c:16,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - ATTRIBUTE_UNUSED
    - ATTRIBUTE_UNUSED
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 23
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 23
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/libxml2/fuzz/valid.c
    functionUses: []
    functionsReached:
    - xmlInitializeCatalog
    - xmlFuzzMemSetup
    - xmlInitParser
    - xmlCatalogSetDefaults
    linkageType: ''
    returnType: int
    signature: 'int LLVMFuzzerInitialize(int *argc ATTRIBUTE_UNUSED, char ***argv
      ATTRIBUTE_UNUSED) '
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMainEntity
      Src: /src/libxml2/fuzz/valid.c:39,1
    - Dst: xmlFuzzReadInt
      Src: /src/libxml2/fuzz/valid.c:34,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/fuzz/valid.c:47,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/fuzz/valid.c:49,1
    - Dst: xmlCtxtSetResourceLoader
      Src: /src/libxml2/fuzz/valid.c:50,1
    - Dst: xmlCtxtSetResourceLoader
      Src: /src/libxml2/fuzz/valid.c:65,1
    - Dst: xmlCtxtReadMemory
      Src: /src/libxml2/fuzz/valid.c:66,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/fuzz/valid.c:55,1
    - Dst: xmlFuzzCheckFailureReport
      Src: /src/libxml2/fuzz/valid.c:68,1
    - Dst: xmlCtxtValidateDocument
      Src: /src/libxml2/fuzz/valid.c:72,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/fuzz/valid.c:106,1
    - Dst: xmlCreatePushParserCtxt
      Src: /src/libxml2/fuzz/valid.c:95,1
    - Dst: xmlFuzzMainUrl
      Src: /src/libxml2/fuzz/valid.c:40,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/fuzz/valid.c:56,1
    - Dst: xmlFuzzCheckFailureReport
      Src: /src/libxml2/fuzz/valid.c:52,1
    - Dst: xmlNewParserCtxt
      Src: /src/libxml2/fuzz/valid.c:62,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/fuzz/valid.c:113,1
    - Dst: xmlFuzzInjectFailure
      Src: /src/libxml2/fuzz/valid.c:120,1
    - Dst: xmlResetLastError
      Src: /src/libxml2/fuzz/valid.c:122,1
    - Dst: xmlFuzzInjectFailure
      Src: /src/libxml2/fuzz/valid.c:61,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/fuzz/valid.c:64,1
    - Dst: xmlFuzzCheckFailureReport
      Src: /src/libxml2/fuzz/valid.c:74,1
    - Dst: xmlFreeDoc
      Src: /src/libxml2/fuzz/valid.c:78,1
    - Dst: xmlFuzzInjectFailure
      Src: /src/libxml2/fuzz/valid.c:89,1
    - Dst: xmlCtxtSetErrorHandler
      Src: /src/libxml2/fuzz/valid.c:98,1
    - Dst: xmlCtxtSetResourceLoader
      Src: /src/libxml2/fuzz/valid.c:99,1
    - Dst: xmlParseChunk
      Src: /src/libxml2/fuzz/valid.c:109,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/fuzz/valid.c:114,1
    - Dst: xmlFuzzDataInit
      Src: /src/libxml2/fuzz/valid.c:33,1
    - Dst: xmlFuzzReadInt
      Src: /src/libxml2/fuzz/valid.c:36,1
    - Dst: xmlFuzzReadEntities
      Src: /src/libxml2/fuzz/valid.c:38,1
    - Dst: xmlFuzzInjectFailure
      Src: /src/libxml2/fuzz/valid.c:46,1
    - Dst: xmlCtxtReadMemory
      Src: /src/libxml2/fuzz/valid.c:51,1
    - Dst: xmlFreeParserCtxt
      Src: /src/libxml2/fuzz/valid.c:79,1
    - Dst: xmlSetGenericErrorFunc
      Src: /src/libxml2/fuzz/valid.c:94,1
    - Dst: xmlSetGenericErrorFunc
      Src: /src/libxml2/fuzz/valid.c:96,1
    - Dst: xmlCtxtUseOptions
      Src: /src/libxml2/fuzz/valid.c:100,1
    - Dst: xmlFuzzDataCleanup
      Src: /src/libxml2/fuzz/valid.c:121,1
    - Dst: xmlFuzzCheckFailureReport
      Src: /src/libxml2/fuzz/valid.c:110,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 89
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 124
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 124
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libxml2/fuzz/valid.c
    functionUses: []
    functionsReached:
    - xmlCtxtUseOptions
    - xmlResetLastError
    - xmlSetGenericErrorFunc
    - xmlCtxtReadMemory
    - xmlFuzzDataCleanup
    - xmlFreeDoc
    - xmlCtxtValidateDocument
    - xmlFuzzReadEntities
    - xmlCtxtSetErrorHandler
    - xmlFreeParserCtxt
    - xmlNewParserCtxt
    - xmlFuzzCheckFailureReport
    - xmlFuzzMainEntity
    - xmlParseChunk
    - xmlCtxtSetResourceLoader
    - xmlFuzzReadInt
    - xmlFuzzDataInit
    - xmlFuzzInjectFailure
    - xmlCreatePushParserCtxt
    - xmlFuzzMainUrl
    linkageType: ''
    returnType: int
    signature: 'int LLVMFuzzerTestOneInput(const char *data, size_t size) '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmlFuzzMutateChunks
      Src: /src/libxml2/fuzz/valid.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - char*
    - size_t
    - size_t
    - unsigned
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/libxml2/fuzz/valid.c
    functionUses: []
    functionsReached:
    - xmlFuzzMutateChunks
    linkageType: ''
    returnType: size_t
    signature: 'size_t LLVMFuzzerCustomMutator(char *data, size_t size, size_t maxSize,
      unsigned seed) '
Fuzzer filename: /src/libxml2/fuzz/valid.c
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- libxml/tree.h
- ../../crmcommon_private.h
- wctype.h
- limits.h
- crm/cluster/compat.h
- pacemaker-controld.h
- xinclude.c
- umapfile.h
- unicode/uchriter.h
- controld_timers.h
- libxml/xlink.h
- gcrypt.h
- numparse_decimal.h
- crm/common/resources_internal.h
- crm/common/rules_internal.h
- glob.h
- cpputils.h
- layout/LEFontInstance.h
- unicode/ustring.h
- ccapitst.h
- pcmki/pcmki_options.h
- sys/timeb.h
- crm/common/ipc_client_compat.h
- crm/common/output.h
- unicode/utf16.h
- triodef.h
- sys/epoll.h
- unicode/plurrule.h
- ucm.h
- xml.c
- sys/random.h
- unicode/usearch.h
- cairo.h
- crm/services.h
- pcmki/pcmki_scheduler.h
- mock_private.h
- unicode/bytestream.h
- private/buf.h
- unicode/uidna.h
- qb/qbatomic.h
- readline/readline.h
- crm/common/options_internal.h
- libxslt/numbersInternals.h
- number_types.h
- ucmndata.h
- sched.h
- unicode/rep.h
- caltztst.h
- valid.c
- number_scientific.h
- crm/common/util_compat.h
- errmsg.h
- util.h
- crm/common/roles_internal.h
- sys/endian.h
- keys.h
- unicode/unumberformatter.h
- unicode/utext.h
- pcmki/pcmki_output.h
- cbiditst.h
- ccaltst.h
- assert.h
- ccolltst.h
- chnsecal.h
- unicode/tmunit.h
- number_microprops.h
- layout/loengine.h
- gentest.h
- pcmki/pcmki_acl.h
- pthread.h
- unicode/ucnv.h
- winnls.h
- nucnvtst.h
- breakdata.h
- double-conversion-utils.h
- pe_status_private.h
- libxslt/xslt.h
- gnutls/x509.h
- unicode/errorcode.h
- private/io.h
- unicode/coleitr.h
- sys/uio.h
- unicode/fpositer.h
- unicode/gregocal.h
- xsltexports.h
- unicode/decimfmt.h
- unicode/simpletz.h
- loop_poll_int.h
- ipc_int.h
- ctype.h
- cstdint
- number_longnames.h
- atomic
- libxml/encoding.h
- uenumimp.h
- unicode/urename.h
- corosync/quorum.h
- libxslt/functions.h
- controld_callbacks.h
- ../lib/ipc_int.h
- pattern.h
- libxslt/pattern.h
- crm/pengine/rules_compat.h
- qb/qbipc_common.h
- ucnv_bld.h
- sys/ipc.h
- sys/signalfd.h
- uuid/uuid.h
- numparse_symbols.h
- crm/fencing/internal.h
- cstddef
- collationdata.h
- unicode/currpinf.h
- libxslt/imports.h
- cformtst.h
- parse.h
- numparse_currency.h
- unicode/utrans.h
- lsr.h
- unicode/ucnv_cb.h
- uassert.h
- condition_variable
- pkgtypes.h
- unicode/chariter.h
- readline/history.h
- libxslt/extra.h
- sharedobject.h
- crm/common/logging_compat.h
- unicode/uscript.h
- cstdlib
- arpa/inet.h
- collationiterator.h
- crm/common/xml.h
- libxml/entities.h
- gnutls/crypto.h
- crm/pengine/status_compat.h
- xsltutils.h
- unicode/rbnf.h
- fileobject.h
- crm/common/xml_comment_internal.h
- sys/isa_defs.h
- crm/common/ipc_internal.h
- libxml/schemasInternals.h
- ucasemap_imp.h
- libxml/globals.h
- setjmp.h
- nccbtst.h
- stdbool.h
- os_base.h
- resource.h
- crm/common/tickets_internal.h
- OpenTypeLayoutEngine.h
- features.h
- cloctst.h
- crm/common/results.h
- unicode/unum.h
- ucnv_io.h
- regeximp.h
- sys/ioctl.h
- windows.h
- xsltInternals.h
- functional
- unicode/normlzr.h
- ucptrie_impl.h
- libxml/pattern.h
- libxslt/keys.h
- html.c
- rbbirb.h
- imports.h
- crm/common/ipc.h
- libxml/xmlIO.h
- numparse_validators.h
- unicode/tztrans.h
- unicode/udatpg.h
- sys/stat.h
- formattedval_impl.h
- mutex.h
- controld_membership.h
- tlist.h
- qb/qbhdb.h
- portability.h
- ucred.h
- cmemory.h
- libgen.h
- unicode/ucptrie.h
- unicode/testdata.h
- map_int.h
- uvectr32.h
- cg7coll.h
- unicode/utypes.h
- libxslt/xsltlocale.h
- unicode/ubiditransform.h
- lzma.h
- number_decimfmtprops.h
- unicode/caniter.h
- libxslt/templates.h
- rpl_sem.h
- objbase.h
- libxml/parserInternals.h
- collationfastlatin.h
- rsurface.h
- libxml/dict.h
- usc_impl.h
- private/parser.h
- unicode/smpdtfmt.h
- crmcommon_private.h
- unicode/ucnvsel.h
- stdio.h
- numberformattesttuple.h
- link.h
- cucdapi.h
- cintltst.h
- cstring.h
- unicode/appendable.h
- crm/services_internal.h
- tsdate.h
- crm/common/failcounts_internal.h
- controld_throttle.h
- libxml/xmlregexp.h
- unicode/simpleformatter.h
- crm/common/strings.h
- crm/common/acl.h
- ostream
- direct.h
- crm/common/unittest_internal.h
- utypeinfo.h
- libxslt/preproc.h
- unicode/datefmt.h
- private/tree.h
- pacemaker-attrd.h
- schema.c
- ucln_imp.h
- gnome.h
- cfonts.h
- uchar.h
- locutil.h
- reader.c
- libxml2/libxml/relaxng.h
- pcmki/pcmki_fence.h
- libxml/xmlschemas.h
- libxml/hash.h
- crm/common/cib_internal.h
- fphdlimp.h
- crm/pengine/pe_types.h
- standardplural.h
- utrie.h
- iconv.h
- unicode/plurfmt.h
- unicode/utf8.h
- layout/LEScripts.h
- unicode/basictz.h
- ucol_swp.h
- number_modifiers.h
- unicode/stringpiece.h
- private/xzlib.h
- unicode/tzrule.h
- uparse.h
- ucln_local_hook.c
- libxslt/documents.h
- regexp.c
- libxml/xpath.h
- crm/common/messages_internal.h
- gio/gio.h
- crm/common/nvpair_internal.h
- private/entities.h
- syslog.h
- libxml/xmlreader.h
- callcoll.h
- win32config.h
- controld_fsa.h
- udbgutil.h
- stddef.h
- xsltlocale.h
- unicode/ures.h
- unicode/uformattedvalue.h
- unicode/dtrule.h
- _syslog_override.h
- ucreader.h
- trio.h
- rbbirpt.h
- sys/types.h
- cjaptst.h
- double-conversion-double-to-string.h
- cpdtrans.h
- crm/common/scores_compat.h
- pcmki/pcmki_simulate.h
- float.h
- nfsprep.h
- numparse_impl.h
- crm/lrmd.h
- unicode/measure.h
- unicode/putil.h
- unicode/uspoof.h
- crm/common/agents.h
- crm/cib_compat.h
- libxml/xmlsave.h
- unicode/calendar.h
- uprops.h
- xslt.h
- unicode/uregex.h
- numparse_scientific.h
- pwd.h
- _failure_injection.h
- stonith/stonith.h
- crestst.h
- crm/stonith-ng.h
- list
- crm/common/scheduler_types.h
- unicode/dtptngen.h
- pacemaker-internal.h
- crm/common/xml_element_compat.h
- mlang.h
- termios.h
- pcmki/pcmki_verify.h
- ubrkimpl.h
- crm/lrmd_internal.h
- unicode/urep.h
- uhash.h
- signal.h
- cwchar.h
- private/string.h
- console.h
- pcmki/pcmki_result_code.h
- uvector.h
- unicode/symtable.h
- rbt_set.h
- math.h
- letest.h
- crm/common/strings_internal.h
- libxml_wrap.h
- unicode/ucasemap.h
- package.h
- unicode/unifunct.h
- libxml/xmlversion.h
- unicode/platform.h
- grp.h
- unicode/datamap.h
- ncurses/ncurses.h
- itformat.h
- unicode/parsepos.h
- unicode/utf.h
- layout/LELanguages.h
- locbund.h
- unicode/ucsdet.h
- unicode/utmscale.h
- unewdata.h
- controld_globals.h
- unicode/enumset.h
- flagcb.h
- libxml/HTMLparser.h
- unicode/localebuilder.h
- unicode/utf_old.h
- fldset.h
- functions.h
- crm/pengine/remote_internal.h
- uit_len8.h
- ccurrtst.h
- unistd.h
- RenderingSurface.h
- sys/time.h
- unicode/udateintervalformat.h
- curses/curses.h
- libxslt/transform.h
- filestrm.h
- typeinfo
- unicode/dtitvfmt.h
- crm/services_compat.h
- gnutls/gnutls.h
- libxslt/xsltconfig.h
- controld_messages.h
- ../include/config.h
- libxml/xmlwriter.h
- private/regexp.h
- unicode/unistr.h
- uarrsort.h
- unicode/dtfmtsym.h
- corosync/hdb.h
- crm/crm_compat.h
- unicode/fmtable.h
- libxml/xinclude.h
- crm/common/mainloop.h
- unicode/uconfig.h
- sys/mman.h
- crm/common/scheduler_internal.h
- xpath.c
- services_private.h
- dirent.h
- double-conversion-diy-fp.h
- unicode/tmutamt.h
- libxml/relaxng.h
- unicode/rbbi.h
- private.h
- libxslt_wrap.h
- crm/cluster.h
- private/threads.h
- unicode/nounit.h
- unicode/stringoptions.h
- err.h
- libxslt/libxslt.h
- norms.h
- corosync/cmap.h
- loengine.h
- number_decimalquantity.h
- qb/qblog.h
- string_segment.h
- codegen/escape.inc
- pacemakerd.h
- libxml/xmlstring.h
- numparse_compositions.h
- regex.h
- gensprep.h
- dbgutil.h
- unicode/unimatch.h
- string.h
- varargs.h
- GDIFontInstance.h
- crm/common/health_internal.h
- unicode/uwmsg.h
- layout/LETypes.h
- crm_config.h
- libxml/DOCBparser.h
- number_patternmodifier.h
- ucnv_ext.h
- fencing_private.h
- ustr.h
- crm/common/internal.h
- crm/common/digest_internal.h
- collation.h
- number_roundingutils.h
- unicode/fieldpos.h
- codegen/unicode.inc
- unicode/numberformatter.h
- log_int.h
- crm/common/iso8601_internal.h
- unicode/timezone.h
- ucol_imp.h
- curses.h
- number_patternstring.h
- zlib.h
- controld_lrm.h
- uri.c
- private/html.h
- fuzz.h
- xlocale.h
- crm/pengine/internal.h
- libpacemaker_private.h
- numparse_affixes.h
- libexslt/exsltconfig.h
- Python.h
- exception
- crm/cib/cib_types.h
- gregoimp.h
- crm/common/action_relation_internal.h
- cestst.h
- ucnvseltst.h
- unicode/char16ptr.h
- bcrypt.h
- controld_utils.h
- crm/msg_xml_compat.h
- rbbidata.h
- sys/event.h
- getopt.h
- codegen/html5ent.inc
- creststn.h
- unicode/brkiter.h
- unicode/stringtriebuilder.h
- unicode/messagepattern.h
- crm/common/ipc_schedulerd.h
- charstr.h
- attributes.h
- crm_resource.h
- unicode/ctest.h
- crm/common/schemas.h
- unicode/locdspnm.h
- GUISupport.h
- memory.h
- libxml/xmlerror.h
- qb/qbipcs.h
- crm/common/actions.h
- controld_transition.h
- pacemaker-schedulerd.h
- unicode/msgfmt.h
- unicode/ulistformatter.h
- TargetConditionals.h
- vector
- pflow.h
- crm/common/results_internal.h
- private/xpath.h
- sys/shm.h
- crm/common/xml_io_internal.h
- extensions.h
- libexslt/libexslt.h
- based_transaction.h
- qb/qbipcc.h
- qb/qblist.h
- cnumtst.h
- crm/common/lists_internal.h
- controld_alerts.h
- cfrtst.h
- libxml/schematron.h
- crm/common/nodes.h
- extra.h
- sys/socket.h
- libxml/uri.h
- crm/common/probes.h
- libxml/xmlschemastypes.h
- unicode/udisplaycontext.h
- util_int.h
- unicode/umutablecptrie.h
- unicode/usprep.h
- unicode/upluralrules.h
- preproc.h
- unicode/ushape.h
- unicode/tstdtmod.h
- qb/qbutil.h
- unicode/ugender.h
- libxml/catalog.h
- double-conversion-string-to-double.h
- fstream
- hash.h
- decContext.h
- number_compact.h
- cdtdptst.h
- uresdata.h
- private/globals.h
- xmlreader.h
- libxml/xmlmemory.h
- atomic_int.h
- unicode/format.h
- cnmdptst.h
- ncurses.h
- transform.h
- propsvec.h
- uconfig_local.h
- controld_cib.h
- type_traits
- qb/qbdefs.h
- ucase.h
- unicode/uregion.h
- unicode/coll.h
- crm/common/remote_internal.h
- libxml/debugXML.h
- libxslt/xsltInternals.h
- utility
- dl.h
- corosync/corodefs.h
- crm/common/servers_internal.h
- pcmki/pcmki_status.h
- unicode/tblcoll.h
- codegen/ranges.inc
- libxml/SAX2.h
- ustr_imp.h
- libxslt.h
- libxml/nanohttp.h
- unicode/ubrk.h
- crm/common/cmdline_internal.h
- makeconv.h
- playout.h
- unicode/parseerr.h
- numrange_impl.h
- numbersInternals.h
- unicode/listformatter.h
- stdlib.h
- crm/common/scheduler.h
- nfrlist.h
- qp0z1170.h
- unicode/ulocdata.h
- netdb.h
- ustr_cnv.h
- netinet/ip.h
- private/error.h
- crm/pengine/common.h
- unicode/ucoleitr.h
- unicode/uset.h
- decNumber.h
- pcmki/pcmki_ticket.h
- libxslt/xsltutils.h
- io.h
- sys/wait.h
- cmaps.h
- crm/common/results_compat.h
- number_multiplier.h
- pcmki/pcmki_transition.h
- private/save.h
- pacemaker-fenced.h
- libxml/xmlautomata.h
- unicode/uchar.h
- ubidi_props.h
- uoptions.h
- casetrn.h
- unicode/ucpmap.h
- unicode/dtitvinf.h
- number_currencysymbols.h
- crm/common/util.h
- crm/common/attrs_internal.h
- timsort.h
- crm/common/iso8601.h
- pcmki/pcmki_rule.h
- formatted_string_builder.h
- crm/common/cib.h
- unicode/udat.h
- wincrypt.h
- collationruleparser.h
- ../lib/ringbuffer_int.h
- pcmki/pcmki_agents.h
- libxml/chvalid.h
- crm/common/logging.h
- inttypes.h
- crm/common/xml_names.h
- unicode/ucal.h
- sys/poll.h
- pcmk-dbus.h
- crm/common/output_internal.h
- pacemaker-based.h
- crm/common/xml_element.h
- unicode/uniset.h
- crm/pengine/status.h
- ucbuf.h
- nfrs.h
- pkg_genc.h
- tz2icu.h
- uset_imp.h
- pkg_gencmn.h
- caltest.h
- intltest.h
- cstring
- crtdbg.h
- unicode/unifilt.h
- crm/common/schemas_internal.h
- unicode/umachine.h
- rbutil.h
- loop_int.h
- crm/common/xml_internal.h
- crm/common/xml_compat.h
- private/xinclude.h
- libxml.h
- crm/common/alerts_internal.h
- unicode/ucol.h
- libxml/threads.h
- libxml/valid.h
- unicode/unirepl.h
- unicode/strenum.h
- crm/common/location_internal.h
- pcmki/pcmki_resource.h
- crm/common/ipc_attrd_internal.h
- unicode/tzfmt.h
- utracimp.h
- crm_mon.h
- private/lint.h
- unicode/dcfmtsym.h
- systemd.h
- crm/pengine/common_compat.h
- linux/swab.h
- udatamem.h
- astro.h
- unicode/uloc.h
- ureslocs.h
- version.h
- layout/LayoutEngine.h
- unicode/search.h
- unicode/umisc.h
- ztrans.h
- pacemaker-execd.h
- bzlib.h
- exsltexports.h
- unicode/ustdio.h
- semaphore.h
- layout/plruns.h
- corosync/cpg.h
- unicode/tznames.h
- corosync/corotypes.h
- restrace.h
- services_ocf.h
- unicode/ustringtrie.h
- locmap.h
- sfnt.h
- serv.h
- check.h
- FT_GLYPH_H
- brkeng.h
- ringbuffer_int.h
- uresimp.h
- unicode/icudataver.h
- cbiapts.h
- libexslt/exslt.h
- capi_helper.h
- genmbcs.h
- private/dict.h
- strings.h
- crm/crm.h
- poll.h
- unicode/unumsys.h
- crm/cib/util.h
- templates.h
- pils/plugin.h
- toolutil.h
- unicode/numsys.h
- private/memory.h
- variables.h
- capitst.h
- stdarg.h
- crm/common/scores_internal.h
- wchar.h
- nfrule.h
- unicode/curramt.h
- time.h
- libxml/xpathInternals.h
- unicode/locid.h
- unicode/ptypes.h
- glib.h
- fcntl.h
- wintz.h
- csrecog.h
- unicode/ubidi.h
- unicode/ucnv_err.h
- netinet/in.h
- note.h
- cturtst.h
- crm/common/rules.h
- crm/cluster/election_internal.h
- datadrivennumberformattestsuite.h
- plruns.h
- crm/common/tls_internal.h
- crm/common/xml_io.h
- namespaces.h
- unicode/localematcher.h
- libxml/xmlmodule.h
- rbbinode.h
- ucln.h
- security/pam_appl.h
- unicode/uobject.h
- collationsettings.h
- unicode/dtintrv.h
- pcmki/pcmki_cluster_queries.h
- mutex
- crm/common/resources.h
- services_lsb.h
- private/enc.h
- gsupport.h
- dlfcn.h
- datedata.h
- layout/RunArrays.h
- unicode/localpointer.h
- libxslt/extensions.h
- ulist.h
- calldata.h
- systemd/sd-journal.h
- uprint.h
- crm/common/ipc_controld.h
- unicode/uenum.h
- crm/common/actions_internal.h
- unicode/umsg.h
- cecal.h
- check_common.h
- unicode/unorm2.h
- unicode/regex.h
- libxslt/namespaces.h
- static_unicode_sets.h
- FT_FREETYPE_H
- encoll.h
- uspoof_impl.h
- gnomeglue.h
- pam/pam_appl.h
- crm/common/logging_internal.h
- cfintst.h
- crm/common/xml_element_internal.h
- thread
- unicode/uformattable.h
- unicode/uldnames.h
- crm/common/primitive_internal.h
- ../../libxml.h
- string
- crm/pengine/complex.h
- iostream
- security.h
- cdattst.h
- crm/cluster/internal.h
- layout/playout.h
- private/cata.h
- unicode/ucharstrie.h
- citertst.h
- unicode/uperf.h
- crm/common/history_internal.h
- normalizer2impl.h
- gdiglue.h
- unicode/ufieldpositer.h
- qb/qbarray.h
- unicode/translit.h
- number_affixutils.h
- crm/common/nvpair.h
- unicode/std_string.h
- libxml/xpointer.h
- crm/common/xml_names_internal.h
- controld_fencing.h
- inputext.h
- rle.h
- unicode/numberrangeformatter.h
- unicode/icuplug.h
- algorithm
- unicode/utimer.h
- sprpimpl.h
- ncnvfbts.h
- sys/un.h
- qb/qbmap.h
- simplethread.h
- sys/param.h
- crm/common/scores.h
- crm/common/bundles_internal.h
- unicode/testtype.h
- crm/common/clone_internal.h
- number_utils.h
- uvectr64.h
- unicode/resbund.h
- ufmt_cmn.h
- unicode/ucat.h
- crm/common/io_internal.h
- crm/common/nodes_internal.h
- crm/lrmd_events.h
- unicode/formattedvalue.h
- sys/sem.h
- map
- unicode/currunit.h
- libxml/HTMLtree.h
- controld_metadata.h
- pacemaker.h
- libxml2-py.h
- config.h
- sys/resource.h
- layout/ParagraphLayout.h
- unicode/uclean.h
- crm/common/group_internal.h
- crm/common/ipc_pacemakerd.h
- qb/qbrb.h
- memory
- unicode/schriter.h
- locale.h
- ft2build.h
- LETypes.h
- cdetst.h
- unicode/normalizer2.h
- documents.h
- libxml/c14n.h
- elf.h
- uelement.h
- sys/utsname.h
- unicode/uversion.h
- unicode/selfmt.h
- unicode/measfmt.h
- libxslt/attributes.h
- codegen/charset.inc
- crm/cib/internal.h
- crm/common/acl_internal.h
- libxml/list.h
- pcmkd_corosync.h
- unicode/numfmt.h
- crm/common/xpath_internal.h
- ucnvmbcs.h
- read.h
- FontTableCache.h
- libxml/xmlexports.h
- sys/select.h
- sys/reboot.h
- plurrule_impl.h
- libintl.h
- crm/common/options.h
- crm/common/nvpair_compat.h
- collationrootelements.h
- dbus/dbus.h
- unicode/bytestrie.h
- cnormtst.h
- unicode/uvernum.h
- putilimp.h
- unicode/unorm.h
- iotest.h
- qb/qbloop.h
- FontMap.h
- stdint.h
- unicode/testlog.h
- libxslt/variables.h
- libxslt/security.h
- number_formatimpl.h
- crm_internal.h
- netinet/tcp.h
- unicode/uiter.h
- cdtrgtst.h
- corosync/cfg.h
- rbt.h
- unicode/region.h
- udataswp.h
- gettext.h
- libxml/parser.h
- servnotf.h
- unicode/utrace.h
- crm/pengine/pe_types_compat.h
- crmcluster_private.h
- ftw.h
- qb/qbconfig.h
- uinvchar.h
- cmsgtst.h
- unicode/udata.h
- utrie2.h
- usrchdat.c
- tscoll.h
- unicode/edits.h
- unicode/ucurr.h
- libxslt-py.h
- errno.h
- ucnv_cnv.h
- cmocka.h
- exslt.h
- unicode/measunit.h
- umutex.h
- numparse_types.h
- crm/common/roles.h
- transtst.h
- unicode/ureldatefmt.h
- arraymem.h
- crm/common/xml_idref_internal.h
- android/api-level.h
- crm/cib.h
- tzfile.h
report: name
sources:
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/pacemaker/lib/common/fuzzers/iso8601_fuzzer.c
  types:
    structs: []
    typedefs: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/pacemaker/lib/common/fuzzers/scores_fuzzer.c
  types:
    structs: []
    typedefs: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/pacemaker/lib/common/fuzzers/strings_fuzzer.c
  types:
    structs: []
    typedefs: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/pacemaker/lib/cib/fuzzers/cib_file_fuzzer.c
  types:
    structs: []
    typedefs: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/libxslt/tests/fuzz/xslt.c
  types:
    structs: []
    typedefs: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/libxslt/tests/fuzz/xpath.c
  types:
    structs: []
    typedefs: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  - LLVMFuzzerCustomMutator
  source_file: /src/libxml2/fuzz/html.c
  types:
    structs: []
    typedefs: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  - LLVMFuzzerCustomMutator
  source_file: /src/libxml2/fuzz/xml.c
  types:
    structs: []
    typedefs: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  - LLVMFuzzerCustomMutator
  source_file: /src/libxml2/fuzz/regexp.c
  types:
    structs: []
    typedefs: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  - LLVMFuzzerCustomMutator
  source_file: /src/libxml2/fuzz/schema.c
  types:
    structs: []
    typedefs: []
- function_names:
  - getInt
  - uncheckedStrndup
  - copyStr
  - getDtd
  - incNodeIdx
  - dropNode
  - uncheckedStrdup
  - incStrIdx
  - setNode
  - isValidChildType
  - startOp
  - endOp
  - setInt
  - incIntIdx
  - getNode
  - removeNode
  - getStr
  - setStr
  - getDoc
  - isValidChild
  - checkContent
  - fixNs
  - getCStr
  - moveStr
  - getAttr
  - isTextContentNode
  - countNodes
  - LLVMFuzzerCustomMutator
  - checkCopy
  - isDtdChild
  - removeChildren
  - opNodeAccessor
  - LLVMFuzzerInitialize
  - nodeGetTree
  - nodeGetNs
  - opDup
  - LLVMFuzzerTestOneInput
  source_file: /src/libxml2/fuzz/api.c
  types:
    structs: []
    typedefs:
    - name: opType
      pos:
        line_end: 301
        line_start: 61
    - name: xmlFuzzApiVars
      pos:
        line_end: 377
        line_start: 363
- function_names:
  - startOp
  - LLVMFuzzerTestOneInput
  - LLVMFuzzerCustomMutator
  - LLVMFuzzerInitialize
  source_file: /src/libxml2/fuzz/reader.c
  types:
    structs: []
    typedefs:
    - name: opType
      pos:
        line_end: 79
        line_start: 20
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  - LLVMFuzzerCustomMutator
  source_file: /src/libxml2/fuzz/uri.c
  types:
    structs: []
    typedefs: []
- function_names:
  - pushArg
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  - LLVMFuzzerCustomMutator
  source_file: /src/libxml2/fuzz/lint.c
  types:
    structs: []
    typedefs: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerCustomMutator
  - LLVMFuzzerTestOneInput
  source_file: /src/libxml2/fuzz/xpath.c
  types:
    structs: []
    typedefs: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerCustomMutator
  - LLVMFuzzerTestOneInput
  source_file: /src/libxml2/fuzz/xinclude.c
  types:
    structs: []
    typedefs: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  - LLVMFuzzerCustomMutator
  source_file: /src/libxml2/fuzz/valid.c
  types:
    structs: []
    typedefs: []
